22 Jan 2026
One of the most effective ways to learn 6502 assembly is to work directly at the machine level: assembling instructions by hand, stepping through execution, and inspecting registers and memory as the CPU runs. The VICE Monitor provides an excellent interactive environment for doing exactly that on the Commodore 64. This post is a practical guide to the subset of monitor commands you will actually use when practicing 6502 programming on the C64. It deliberately ignores advanced or peripheral features and concentrates on assembling code, disassembling it, stepping through instructions, inspecting state, and managing breakpoints. Top 10 Command Cheatsheet Command...
08 May 2025
I’ve been getting back into 65xx assembly, so I decided to buy a W65C816SXB SBC which is a development board designed for education from WDC. The specs for this and the 65C02 version look great, but I really should have tried their WDCTools development software before I impulse bought this board! Their software is terrible. I spent an evening last night trying to get it to work but so far have failed. Walking through their Getting Started page didn’t even work. Reading through the 6502 forums, I’m not the only person that ran into issues. Most other people that got...
26 Dec 2023
I’d managed to get colour working on the GBC using GDBK-2020 but for some reason I ran into a mental block setting the map attributes. I also had trouble exporting the palette and map attributes from the popular Game Boy Tile Designer (GBTD) and Game Boy Map Builder (GBMB). Source code from this post is on GitHub at rprouse/GBC-Samples. I won’t go into detail on using GBTD and GBMB, but I will highlight some of the export settings that I found non-intuitive. Game Boy Tile Designer Start by setting the Color set to Game Boy Color then editing the Palettes…...
13 Nov 2023
Supermon64 is a machine-language monitor for the Commodore 64 originally written by Jim Butterfield. The following was take and modified from the instructions at jblang/supermon64. I copied them here for my reference. Usage Instructions Number Bases Prefix Base $ Hex + Decimal & Octal % Binary Overview g go (run) j jump (subroutine) l load from tape or disk m memory display r register display s save to tape or disk x exit to basic a simple assembler d disassembler f fill memory h hunt memory t transfer memory c compare memory @ disk status/command Number Conversion $2000 $2000 +8192...
19 Jul 2023
Occasionally after playing a game or running a program that uses color in CP/M, my terminal isn’t reset and isn’t using my default colors. Even worse is when it leaves the terminal with dark text on a black background! CP/M has the CLS command, but it does not reset the default colors, so I decided to write a quick assembly program to reset the terminal using ANSI Escape Sequences. ; Clear the screen and reset colors org 100H ; CPM Program start address ; ============================================================================= ; Definitions and methods for CP/M development bdos equ $5 ; CP/M BDOS vector address...
15 Jun 2023
The HI-TECH C is a nearly ANSI C compliant compiler that runs on Z80 based CP/M machines. Version 3.09 was last released in March 1989 but the company has since made it freely available for both commercial and non-commercial use. Tony Nicholson has picked up development of the compiler and has released 17 patched versions of HI-TECH C on GitHub at agn453/HI-TECH-Z0-C. You can download the latest binary distrubtion from htc-bin.lbr. A Z280 version is also available, z280bin.lbr. Each of these are uncompressed LBR files, so you should be able to copy them to a disk and extract them using...
31 May 2023
As I am refreshing my Z80 assembly skills I realized that I don’t have a good understanding of some of the less popular instructions. To make sure that I understand how everything works I’ve gone through all of the instructions and made notes on how they work. This will be a living document that I will update as I find errors or ommisions. It is intended to be a quick reference. Each of the instructions has the information that I find useful, not a full explanation. I hope that others find it valuable too. Data Load Instruction Destination Source LD...
20 May 2023
I am reading Programming the Z80 by Rodnay Zaks to refresh my knowledge of Z80 assembly. I usually develop and compile the code on my laptop, but this time I wanted to experience writing and testing the code on my RC2014 computer running CP/M. The assembler that ships with CP/M uses 8080 instructions, so instead I am using Z80ASM by SLR Systems. I edit the files using ZDE 1.6. The book provides sample code like this for 8-bit addition, LD A,(ADR1) ; LOAD OP1 INTO A LD HL,ADR2 ; LOAD ADDRESS OF OP2 INTO HL ADD A,(HL) ; ADD OP2...