Skip to content
Going Digital (Peter Knight) edited this page Sep 9, 2013 · 5 revisions
Bytes Description Notes
2 Block number Starts at 0, increments each block. Used to handle rewind/retry mechanism.
2 Load address Address on CPU memory map. Paging is handled elsewhere.
1 Data length The length of the data block attached
1 Packet type 0: data block, 1: execute code, no payload
1 Data checksum 8 bit checksum of the following data
1 Checksum 8 bit checksum of the header packet
n Data payload Raw data.
- Padding '0' bits as required to complete the last modulation symbol.
? Delay Optional symbols to accommodate execution time of execution block.

Each payload will be followed by the next header block.

Normal data blocks

Most blocks in a loader will be data blocks. Data blocks should be short (typically 256 bytes) to allow frequent speed recalibration, and optimise the rewind/reload function.

Execution block

Execution blocks allow execution of code from within the loader, during loading. This allows operations such as:

  • Memory paging
  • Data decompression
  • Block memory copying
  • Altering the loading screen (progress bars, changing graphics or text)
  • Changes to loader appearance (eg. change border flash colours)

This is done by setting the block type to 1. The block should have no data suffix, but '1' bits should be added padded to allow for execution time.

Clone this wiki locally