8080js is Yet Another 8080 Emulator. But why?
Chris Double’s js8080 emulator is pretty good if you want to play around. But it has a really big issues – some instructions simply don’t work, some instructions set the flags totally bad and DAA instruction is probably guessing rather than computing. Stephan Tramm did a pretty good work with his i8080 CP/M emulator. But it is still slightly differrent from original (“silicon”) CPU.
The biggest challenge were two testing software: so-called “Kelly Smith Test” and – the greatest one – 8080 Exerciser (a.k.a. Sunhillow). The first one does some basic tests, it checks known border states and simply says: OK, or Error at… The second one does a lot of combinations of data manipulating instructions, and the result is a set of CRC codes (one for each test case). They are compared with CRCs from real “silicon” CPUs. It checks all non-standard states very well and deeply.
My emulator passed Kelly Smith test a long time ago. But Exerciser was a really big issue. It takes a lot of changes and tests and fixes, but – it works!
So I keep my promise and release this JS emulator as open source library. Here it is: 8080js
PS: Big thanks to Roman Borik for his help.