|
Supercharger Tape Format Specification
Tone Specifications:
The Supercharger uses 2 distinct frequencies to store its data: A low frequency for a 1 bit and a high frequency for a 0 bit. To clarify this, let me state that the wavelength of the 0 bit is shorter than that of a 1 bit.
The specific frequencies of the tones are not important as long as they are distinct enough to be distinguished by the Supercharger. To the Supercharger, each sinewave is a data bit. In the remaining text, I will refer to the tones as simply "zero bit" and "one bit" and any "bytes" mentioned represent the 8 bits or tones that correspond to the byte's value. Now getting on with the actual format of the tape:
Tape Format:
Section: Header Tone
Contents: Series of alternating 1 bits and
0 bits. The end of the header tone
is marked by two 0 bits. The header
tone should last for a minimum of about
1 second.
Example: 1010101010....10100
Section: Data Header
Contents:
byte # Description
------ -----------
1 Start Address Lo-Byte
2 Start Address Hi-Byte
3 Control Byte
This is the control byte,
it determines the bankswitching
mode of the SC.
Bits Function
------ --------
D7-D5 Write Pulse Delay (Set to 0)
D4-D2 RAM/ROM Configuration
Value $f000 $f800
----- ----- -----
000 3 ROM
001 1 ROM
010 3 1
011 1 3
100 3 ROM
101 2 ROM
110 3 2
111 2 3
4 # of pages to load
(1 page = 256 bytes)
5 Data Header Checksum
The 8 bytes in the Data Header must
add up to #$55 (hex).
6 Multi-load byte
Zero for single-load games. For Multi-Load
games you need to know what value the game is
looking for. For Supercharger 8448 byte files
this value is contained in the file.
7 Lo-byte Bar Speed byte
This is the lo-byte of the speed at which
the bars move across the screen upon loading
the game. Supercharger Fastload uses #$42.
8 Hi-byte Bar Speed byte
This is the hi-byte of the speed at which
the bars move across the screen upon loading
the game. Supercharger Fastload uses #$02.
Section: Page Header
Contents:
byte # Description
------ -----------
1 Bank Byte - Tells Supercharger where to load
the current page (256 bytes) into. This is
determined as follows:
Bank Byte Bits: 7 6 5 4 3 2 1 0
\_______/ \/
Page # Bank #
For example, a page loaded into bank 3, page 4
would have a page # of 000100 and a bank # of
11, combining these together you get 00010010
for a Bank Byte of #$13. The simple formula to
calculate the Bank Byte is:
(Page # * 4) + Bank #
2 Page Checksum - This byte is equal to:
#$55 - (sum of all 256 bytes in page)
Section: Data Page
Contents: 256 bytes of data
.
.
.
The Page Header and Data Page sections are repeated
for each page in the file to be loaded.
Section: Footer Tone
Contents: Series of alternating 1 bits and
0 bits. The footer tone should be
about 1 second long.
Example: 1010101010....10100
|