Michal Kowalski created the 6502 Simulator many years ago. It simulated the MOS 6502, CMOS 65C02, and the 6501. He released the source code for those interested. A few years ago, I was writing some code that needed super accurate cycle counting and was using the Kowalski Simulator to test the code. I discovered some of the counting was not accurate. So, having found the necessary Visual C++ tools, I set out to get the cycle counting fixed. Along the way, a few folks pointed out some other issues and I tried to correct those. After publishing my updates on the 6502.org forum, I had requests for a few enhancements along with more bugs to be fixed. I took those on and provided a few updates.

Then I thought, it would be nice if this platform could also support the 65816. Many folks are timid about using the 65816 and this might help those who are considering the jump. The first step was to expand the assembler to correctly assemble the new opcodes and addressing modes on the 65816. Since some now support 24 bit addresses, this required a significant upgrade. But, eventually, I had it ready and posted the updated program. There were a few minor issues, but I was able to resolve them. I also added a few more features requested from users.
The next step was to add support for a memory map all the way up to 16MB. That too was a major upgrade but eventually I got that done.
I disabled the Debugger for the 65816 as that will be another major upgrade. Along with the debugger comes the disassembler. One issue I have in the disassembler is it does not really know if immediate values are 8-bit or 16-bit. The author has to know when he writes the code what the register sizes are, but the disassembler itself does not have a clue. I need to add a flag that is controlled by the debugger so the disassembler can be triggered to show the right format in real-time during execution. That comes to the debugger. It also has to track status register flags to know what size the A,X,Y registers are and also needs to account for emulation mode vs. native mode.
Thanks to a few users, I have created plain HTML-based Help documents for those having trouble with the build-in Help system. You can now select which help version you want to use from the "General" tab of the "Options" menu. You can also open it by opening "6502.htm" or "6502_Help/_index.htm" This new help can be downloaded from the Executable Zip file below.
My final addition to the Kowalski simulator was to complete the Simulator/Debugger for the 65816. That was a major modification to the Simulation code but I worked through each opcode one at a time until I got it done. I even found and modified a 65816 Test Suite to test the simulation code. The Disassembler still has issues with 16 bit immediate values, but I decided I'd just live with its quirks.
I will no longer be adding new features, but will try to fix any bugs that crop up that others may find.
For those interested, here are the versions I have released and source code for the major changes.
| Executable | Source files | Description |
| 6502 v1.4.1.0.zip | 6502 source v1.4.1.0.zip | Latest Release including new 65816 Simulator. Fixed bug with Macro names. Please email me with any issues. |
| 6502 v1.3.5.3.zip | 6502 source v1.3.5.3.zip | 6502/65C02/65816 Assembler with 6502/65C02 simulator. Last version before 65816 Simulator was added. |
| 6502 v1.2.15.zip | 6502 source v1.2.15.zip | Converted Help system to htmlhelp (.chm) and English. Fixed a few other things also. |
| 6502 v1.2.14.zip | 6502 source v1.2.14.zip | Updates still using old winhelp (.hlp). All future updates will have htmlhelp (.chm) |
| 6502 v1.2.12.zip | 6502 source v1.2.12.zip | Michal Kowalski's last release. |
For MS Windows 10 & newer users, you may need to unblock the built-in security to use the program (6502.exe) and the help file (6502.chm). To do that,after unzipping to a folder of your choice, right-click and select properties. Look in the lower, right corner for the unblock check box. Select that then hit [Ok]. Do this for both files.

Enjoy!
| Home |