Audiogenic loader ===================== info by Fabrizio GennariUsed by Emlyn Hughes' International Soccer, Exile, Impact, Loopz, World Class Rugby... Encoding: --------- Threshold: $13F Bit 0: $1A TAP byte Bit 1: $37 TAP byte Data Endianess: MOST Significant bit First Structure: ---------- This loader stores data in a sequence of blocks. Blocks can be data blocks, which contain 256 data bytes and are loaded starting at a page boundary (address multiple of 256), or empty blocks. Each block has a pilot tone of $F0 bytes and a sync byte of $AA. If the first byte of a block is 0, 1 or 2, the block is an empty block. Otherwise, it is a data block: the byte is the page where the data are loaded (the start address is that byte * 256).Then come 256 data bytes and a checksum byte (XOR of the 256 data bytes). A trailing sequence of eight 0 bits ends each block. After a 1 block, loading continues but the following data block needn't be consecutive. After a 0 block or a 2 block, loading stops and code is executed. If that block is the very last, the code starts the program. Otherwise, it displays the loading screen or does other things then jumps to the loader again, so new data is loaded. Note that "empty" blocks (0, 1 and 2 blocks) are not actually empty, they are followed by 256 bytes and a checksum, but those bytes are ignored. Data blocks are stored consecutively, i.e. the page of a block is the page of the previous block + 1. Exception: if a block is stored in page $CF (i.e. at addresses $CF00-$CFFF), it can be followed by a data block starting anywhere. Typically, such block is the very first data block. Special Agent/Strike Force Cobra loader ======================================= Used by Special Agent and Strike Force Cobra. Very similar to the previous one. Differences are: * There are three types of pulses. Special Agent Strike Force Cobra Bit 0..................~512.........~368 Bit 1.................~1088.........~816 Very long pulse.......~1360........~1448 Threshold 0-1...........712..........594 Threshold 1-very long..1256.........1151 * Every block starts with a sequence of very long pulses (no less than 5 of them, typically 30-31 of them), followed by 3 normal pulses (0s or 1s). After that, comes the first byte of the block. * In Special Agent (but not in Strike Force Cobra), empty blocks cannot start with a 2 byte, only 0 and 1 are allowed
Text file Source (historic): geocities.com/siliconvalley/platform/8224/c64tape
geocities.com/siliconvalley/platform/8224geocities.com/siliconvalley/platform
geocities.com/siliconvalley
(to report bad content: archivehelp @ gmail)
|
|
|
|
|