Sunday, August 11, 2024
Save capability added to C64 version of VWAS6502 monitor
Tuesday, July 16, 2024
6502 Help References included in 6502 monitor
![]() |
| 6502 mini-assembler help system |
The help system recently added to the 6502 monitor (vwas6502) includes
- help commands
- monitor commands reference
- 6502 instruction set mnemonics
- 6502 addressing modes references, listing valid instructions
- opcodes with addressing modes available for a specific instruction mnemonic
Friday, July 12, 2024
Mini-assembler with disassembler, display, edit, and run
| Sample assembly entry and run example |
Everyone (in a small corner of the retro programming community) has their favorite machine language monitor. Mine is HESMON for the Vic-20 which I got in the early 80s. I probably also used TinyMon, and have used SuperMon in recent years. The VICE monitor (ALT+H) is great, especially like the symbolic label support which I use to debug my programs assembled with ACME. Also the Commodore monitors are great too, including Commodore 128 and Plus/4 (and family).
But recently I've been playing with WozMon, both in a a minimal emulated 6502 system, and compiled for Commodore. But I didn't have a great disassembler and assembler to go with it. I looked around a little (probably not enough).
My programming brain and fingers were itching to build my own. So I set out to prototype the assembler portion in C#, the disassembler in 6502 using tables generated by the C# experience, and finally created a wozmon compatible monitor in 6502 with both disassembler and mini-assembler as we see here today.
Let's cover the syntax briefly.
Display memory is a single address (up to 4 hex characters) either by itself, or two addresses separated by a dot for a range of memory. Below we are looking at the C64 jiffy clock by entering "A0.A2". The result is the starting address followed by a colon and three bytes of memory from that range.
Tuesday, July 9, 2024
Disassembler for use with WozMon
| Disassembler disassembling WozMon |
WozMon is a great little monitor program in 256 bytes which Steve Wozniak wrote for his Apple 1 release in 1976. It was small but powerful allowing for memory inspection, entry of 6502 machine code programs and bytes, and launching of programs in ROM and RAM (jumping to address).
But being small, it is missing features that monitor users have learned to depend on, including a mini-assembler and disassembler.
So here I am today presenting a disassembler I wrote for 6502 which can be integrated with WozMon run command. Once the disassembler gets control, the Y register contains a pointer to the last character read from the input buffer, and continues parsing for a hex address. If not found, it simply returns to WozMon. But if found, it will disassemble 20 statements starting at that address. (Note: Vic-20 port above, changed to 17 statements due to the smaller screen size).
The syntax may be lengthier than other monitors, but it allows for an integration with the normally ROM based WozMon without modifications. Plus you get what you pay for. The disassembler is open source, so feel free to change it.
The disassembler came into being as part of developing a mini-assembler. First I'd written a prototype in C# .NET.
The assembler included tables of information for the 6502 instruction set and addressing modes that lent itself to be used as a disassembler (came second) which was prototyped as a 6502 program that disassembles itself. Third came the disassembler compatible for use with WozMon.
Each prototype and program is one step along the way for the goal of creating a mini-assembler for my 6502 minimal system. Not there yet, but getting closer with each step!
| Also works with original WozMon in Apple 1 style environment |
| Also works on C64 and C128 systems |






