Virtual 6502 Suite Update

During the last days, I updated the “Virtual 6502” suite of 6502-related tools. They have been around for a while (they may be even the oldest set of 6502 tools on the web still in existence), so they earned a bit of TLC.

Especially the assembler has been extended for a variety of syntax flavors and may therefore still have some function, especially, when it comes to legacy code. (E.g., it should be fully compatible with the original MOS cross-assembler.) However, it’s still a simple assembler, without any support for macros or complex value expressions. But, when it comes to a quick session with some trivial code of mixed or obscure origin (like bits of old and bits of modern code), there may be still a niche.

All the tools now support file-uploads and input via drag&drop, which may be especially useful with the disassembler (as this supports now binary files as a source).

Do two tools make already a suite? Well, there is also the emulator

(And, BTW, an 6502 Instruction Set Sheet, which is a bit better known.)

For details and links, see this blog post:


Excellent! I see I mailed you about this back in 2009 - it almost feels like the first time I reached out to someone on the internet. And look where we are now.

1 Like

And now with nicer buttons! :slight_smile:
(That is, the emulator.)


Another update to the emulator: there’s now a watchdog to optionally monitor breakpoints and other conditions.

Moreover, mostly on the cosmetic side, all the apps now use nicer custom dialogs instead of the generic ones.

An Update to the Documentation of the 6502 Instruction Set:

Something, I wanted to do for quite some time: I finally added – along with some other explanations – a documentation of illegal opcodes.

Illegal opcodes can be now optionally included in the table view (listing the opcodes by instruction code) and there is a new section listing them in detail.
Moreover, there are two update: three more tables in the section regarding the decoding scheme, which illustrate how and where these illegal opcodes fit in and provide deeper insights into the internal operations.

(The mnemonics are generally those used by the ACME and DASM assemblers, but differ in a few instances, where these are ambiguous, i.e. ANC and SBC, for which we use here the alternative labels “ANC2” for $2B and “USBC” for $EB, respectively.)

I think, the documentation is now quite complete… :slight_smile:

1 Like

And another related blog post, about “illegal” opcodes, what they are and what might be learned from this: