The MOS 6502 Simulator is a chip emulator software that mimics MOS 6502 processor functionality.
However, there were a few design flaws that prevented me from continuing to use it. First, it was written in C++, and since the 6502 had no dedicated IO bus, everything was done via memory. While I had the idea of creating a pure virtual class to provide a generic interface, writing devices to sit in the memory space became tricky. I felt that I should have written the software in asm instead, particularly when manipulating flags and rotations.
Another issue was the sloppy instruction decoding. Although I originally set out to decode the instructions properly, there were too many exceptions to the system used (especially if I intended to support the 65C02). This led to a massive switch statement that was hard to manage. I tried to split it up into smaller files, but it still didn't compile to a jump table. I was disappointed because my main inspiration for the software was my BBC-B, and I wanted to write either an NES or BBC emulator.
The MOS 6502 Simulator uses a simple image format for the file, which must be equal to or greater than 65536 bytes (64k). This is simply the memory image of the system, with its 16-bit address bus. There is a strange sort of ASCII text display at 0x200 that can be used to spew strings, but it's not very thoroughly documented.
Overall, the MOS 6502 Simulator is an effective CPU-emulator, but its design flaws make it difficult to use, especially for documenting and compiling. Its image format is easy to handle, but a more advanced software would be necessary to get better results from the 6502 chip.
Version -: N/A