Copy Link
Add to Bookmark
Report

Commodore 64: Bleepload + Bleepload Special loader

DrWatson's profile picture
Published in 
C64 tape formats
 · 28 May 2021

Can be found on...

  • Bubble Bobble
  • Druid
  • Gunstar
  • Headbanger
  • IO
  • Park Patrol
  • Sentinel
  • Thrust
  • Warhawk
  • etc..


Note : Most Bleepload tapes contain Bleepload AND Bleepload Special!

-----------------

Threshold = $232 (562) clock cycles (TAP byte $45).
Bit 0 : $2F
Bit 1 : $5A
Endianess : MSbF

Data is structured from sub-blocks, all consecutively numbered and there SHOULD be a short pause in between, on many taps i looked at these pauses are often corrupted or too small to register as a proper pause (20,000 cycles) which causes the 1st byte of the following blocks pilot to be corrupted.

Each sub-block has the following structure...

Pilot : pb (initial value is $0F, any number of them, usually 10)
Sync : pb XOR $FF, pb.

1 byte : Pilot byte (pb) for next block
1 byte : Block number (they begin at 0 and increase by 1)
2 bytes : Load address (LSBF)
n bytes : Data (default size is 256 bytes, but first block (number 0) is 64 bytes long)
1 byte : Dummy byte count (d)
d bytes : Dummies (all ignored)
1 byte : Checksum (XOR of all n data bytes)
2 bytes : Execution address (LSBF, CPU jumps here after block is loaded)
1 byte : unknown.


Notes:

The first block in a chain has pilot tone which is a number of bit 1's (around 2000) there is often corruption in this during first 100+ pulses.

The final block of a chain appears to have an extra 8 bytes (64 pulses) at the end before trailing tone begins, this is actually another file type, it consists of 8 bytes and usually

Has 2040(ish) pulses of trailing tone.

I call this small file "Bleepload Trigger".

Structure...

8 bytes...

!!!! <insert structure here> !!!!

This 8 byte file is read in when the final 'proper' block executes. it appears to be encrypted and is responsible for triggering some activity in the program, ie. displaying bitmap or starting the game. it is typically read into zero page for deciphering.


BLEEPLOAD SPECIAL


Threshold = $232 (562) clock cycles (TAP byte $45).
Bit 0 : $2F
Bit 1 : $5A
Endianess : MSbF

Data is structured as a chain of 256 byte sub-blocks, all consecutive and without pauses in between.

Each sub-block has the following structure ...

Pilot : pb (*10) (the value of 'pb' can vary between chains and tapes).
Sync : pb XOR $FF, pb.

1 byte : block no. (they start at 0)
2 bytes : load address (LSBF)
1 byte : ignored
1 byte : if equal to load address high +1, this is last block.
2 bytes : execution address (LSBF)
256 bytes : data.
1 byte : checksum (0 XOR all 256 data bytes)

Note: You can tell the difference between "Bleepload" and "Bleepload Special" by looking at the 1st byte after the 'sync byte 2' if its 0 then its Bleepload Special.

Example pb's...

  • Thrust : $50
  • Park Patrol : $2A

Notes:

The first block in a chain has leading tone which is a number of bit 1's (around 2000), it is often corrupted at the beginning.

← 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