Copy Link
Add to Bookmark
Report

Commodore 64: Mikro-Gen loader

DrWatson's profile picture
Published in 
C64 tape formats
 · 3 years ago

Mikro-Gen Loader v1

These are amongst the first games released for the C64 and as such the loader is quite primitive. It doesn't even use CIAs for pulse timing.

Description:
(comming soon)

Pyjamarama (1984)
Pin it
Pyjamarama (1984)
Auto Mania (1985)
Pin it
Auto Mania (1985)

Mikro-Gen Loader v2 (aka Hyperload / Load'n Go)

Games using this loader aren't well known, and I'm not sure if it's a clone of the ones supported by FinalTAP, but it's a good one to begin learning about C64 tape loaders.

Description:
Short pulse = $38
Long pulse = $66
Bit 0 = Short
Bit 1 = Long
Threshold = $3F
Pilot = Bit 1 (at least*256) (exactly 2048 from TAPs)
Sync= Bit 0
Endianess : LSbF
Checksum : Yes, last byte contains complement to zero of all added bytes.

There are 2 blocks after the loader, one for the loading screen and another for the main game.
Start and end address+2 are loaded into ($00fd) and ($00f8) respectively before calling main read block routine.
These are set at the following loader addresses (they're all lowbyte/highbyte):

loading screen (all games except witch's cauldron)
-start ($082a,$082e); end+2 ($0832,$0836)

loading screen (witch's cauldron)
-start ($0822,$0826); end+2 ($082a,$082e)

main game (everyone's a wally/herbert's dummy run)
-start ($08ec,$08f0); end+2 ($08f4,$08f8)

main game (witch's cauldron)
-start ($08e4,$08e8); end+2 ($08ec,$08f0)

main game (battle of the planets/frost byte/equinox)
-start ($0908,$090c); end+2 ($0910,$0914)

The common way to indentify these addresses is searching the 2 occurrences of the following string in the loader, one for each block:
'a9 xxL 85 fd a9 xxH 85 fe a9 yyL 85 f8 a9 yyH 85 f9 ad 0e'
xxL, xxH - start address (low/high)
yyL, xxH - end address+2 (low/high)

At the end of each block there's a checksum byte.
After loading a block the checksum verification routine is called, that adds all bytes including the checksum byte containing the complement to zero of all added bytes.

Games using this loader (so far) :

Everyone's a Wally (1985)
Pin it
Everyone's a Wally (1985)
Herbert's Dummy Run (spanish) (1985)
Pin it
Herbert's Dummy Run (spanish) (1985)
Witch's Cauldron (1985)
Pin it
Witch's Cauldron (1985)
Battle of the Planets (1986)
Pin it
Battle of the Planets (1986)
Frost Byte (1986)
Pin it
Frost Byte (1986)
Equinox (1986)
Pin it
Equinox (1986)
← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT