• Please review our updated Terms and Rules here

Compact fastloader

tech58761

Experienced Member
Joined
Nov 10, 2023
Messages
153
Location
Northern Plains, USA
When I still had my breadbin 64 and 1541, one of my favorite games was Spindizzy (an isometric puzzle / exploration game).
One side benefit was the built-in fastloader; if I took care to reset the 64 but not the 1541, that fastloader remained in memory.
I didn't have the resources to get one of the hardware solutions, so this was a quick solution for me.

I had always intended to break out the fastloader into its own program, but life, you know...

(I eventually figured out a way to get around the protection and make it so I could just copy the game with a standard file copier, which is another reason I eventually forgot to continue reverse engineering the fastloader)

I recently decided to go through the D64 image and pull out the hex dumps of the main loader application (file "1985" on the image) and the sectors that had machine code on them.

I don't have an easier way to get these back into 65xx assembly, so I am hoping that someone might be interested enough to lend a hand.
 

Attachments

And from the top of my head, here's a rundown of the files: I hope I still remember the details right!

Copyright
The 'boot' file - loads into the cassette buffer. Calls 1985 and jumps to $5600

1985
The main loader - a VERY devious bit of 65xx machine code!
Sets up fastloader, loads rest of game files, checksum1 generates key2, checksum2 generates key1, unscrambles two blocks of main executable using the keys if all checks out, pushes $75FF onto the stack, ends with an RTI.

Midblock and Activision
Two images of main executable. One may be an already-unscrambled version... never thought to check that.

The credit message states there is no cheat code, but if you look at the file in a hex editor there is this: I LIED!
(I THINK you had to poke a value into $02 to activate it, which simply disables the timer decrement routine by overwriting the jump call with $60)

Loader.bin
Title screen

Data
Map data - there is or was a document floating around on the 'net describing its structure (if found, it should be moved to bitsavers or IA)

Hiblock
Graphics

M-code6000
Theme song - patches in at $0314, there is a switch that turns it on and off but can't recall offhand.
Also a routine that sets internal pointers correctly - if patching it in without the call first, the music goes off the rails for a few minutes before steadying itself.
 
Back
Top