Disassembly Examples
Welcome to the Regenerator 2000 examples documentation. These HTML disassemblies are generated directly by Regenerator 2000 and showcase the auto-analysis, layout parity, and modern styling capabilities of our HTML exporter.
Below are the main examples available in this project:
Moving Tubes - Commodore 64

A disassembly of Moving Tubes intro, by Laxity.
Disassembly
Main takeaways:
- Great source to learn about different techniques (intermediate level).
- Clean code.
- How a SID player works: the SID player was disassembled in detail.
- Raster IRQ techniques
- Different tips & tricks:
- Convert
JMPintoBIT, and other self-modifying code techniques. - Double call with
JSRto next line - Background logo color in sync with SID music
- Sine table for scrolling speed
- Variable-width chars in scroller
- Convert
Source:
- CSDB: Moving Tubes (Laxity Intro #145)
- The original intro was packed. The disassembly contains the unpacked version. Unpacked with Unp64).
Lode Runner - Commodore PET

A disassembly of Lode Runner clone for Commodore PET, by jimbo.
Disassembly
- 🔗 pet_loderunner.html
Main takeaways:
- Clean code.
- Great place to learn about the PET programming.
Source:
- Itchio: Lode Runner for the PET by jimbo
- Since the game was not packed, this is a good example of how the disassembly looks like without any post-processing.
Omega Race - VIC-20

A disassembly of the game Omega Race for VIC-20.
Disassembly
Main takeaways:
- WIP
Source:
Kikstart - Commodore Plus/4

A disassembly of the Commodore Plus/4 motorcycle obstacle course game Kikstart.
Disassembly
Main takeaways:
- WIP
Source:
H.E.R.O is Back! - Commodore 128

A disassembly of the Commodore 128 game H.E.R.O is Back, by LC Games.
Disassembly
Main takeaways:
- WIP
Source:
Burnin' Rubber - Commodore 64

A disassembly of the Commodore 64 "Burnin' Rubber" game.
Disassembly
Main takeaways:
- The code was written in a monitor, not with an assembler. Evidence:
- Dead code / Dead tables: Although not uncommon to have some dead code / tables in a program, it is a lot more common when using a monitor.
- There is a
.T0400,07FF,2C00monitor command in the code. Which means " Transfer the bytes from $0400-$07FF to $2C00". Funny thing, that command is at$2C00, which makes sense. The programmer might have typed it at the top-left of the screen. - Functions that are split in multiple places, using
JMPto connect them. - Three
NOPopcodes padding at the beginning of some functions. Possibly to remove a possibleJSRto a debug routine. - Some ZP variables are accessed using the three-byte variant of
LDA. E.g.:LDA $F2translates toAD F2 00instead ofA5 F2 - Lack of a "clean" high level architecture: for example the main loop is split in multiple places.
- Good place to learn how early C64 games were programmed using a monitor, but not a good place to learn modern best
practices.
- Trivia: It is not possible to add comments when using a monitor, so, the developers might have used other tools, like a notebook, to document the code (that's what I used to do when I was a kid!).
Source:
- TAP file: Burnin' Rubber.tap
- The game was taken from the original TAP source.
- The game was encrypted. Part of the game code was in the loader, and part was in the main program.
- The disassembly contains a single file that includes the decrypted main program with part of the loader code.
- Part of the encrypted code is still present, but not used.
- Run it with:
SYS 4752