-
Notifications
You must be signed in to change notification settings - Fork 1
Payload
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.
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 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.