Commodore 64: CHR Tape loader
"CHR loader" is the name I recently began using for this loader/format in preference to the previous names of "Cauldron", "Hewson" and "Rainbird" loaders, my reasoning for this is simply that the 3 loaders are identical apart from the pulsewidth thresholds they each use and this is set by just ONE byte in the CBM header (at offset $19) for each loader.
In 'Final TAP' they will from now on be referred to as CHR loader T1, CHR loader T2 and CHR loader T3, where Tn is ordered by threshold.
------------
CHR loader T1 (Previously known as CAULDRON LOADER and also KETTLE LOADER)
------------
Threshold : $0107 (263) clock cycles (TAP byte = $20).
Bit 0 : $19
Bit 1 : $28
Endianess : MSbF
Pilot byte : $63
Sync : $64 up to $FF (156 bytes)
Then...
1 byte : $01
2 bytes : Start address (LSBF)
2 bytes : End address (LSBF)
6 bytes : Stored in zero Page
n bytes : Data
1 byte : Checksum (0 XOR all data bytes)
Notes: There is usually also a sequence of "pre-pilot" bytes, their value is $20.
CHR loader T2 (Previously known as HEWSON LOADER)
Threshold = $016E (366) microseconds (TAP byte = $2D).
Bit 0 : $26
Bit 1 : $36
CHR loader T3 (Previously known as RAINBIRD LOADER)
Threshold = $01FA (506) microseconds (TAP byte = $3E).
Bit 0 : $36
Bit 1 : $47