Music System

Found on:
"Music System"

Loader files:
ROM Header
Only Filename
ROM Data
Turbo loader

Application Loader
Encoding:
Endianess:MSbF
Threshold:0x01A9
Lead-in:7 x 0x0F
Sync:0xB0
Byte:8 bits
0-bit:Short

Structure:
Header:No
Checksum:Yes

Data/Song Loader
Encoding:
Endianess:LSbF
Threshold:0x01A2
Lead-in:256 x 0x01
Sync:None
Byte:8-16 bits
0-bit:Long

Structure:
Header:Yes
Checksum:Yes
Application Loader:
Checksum:
EOR of all data bytes including checksum byte afer data should cancel out to 0x00.

Data/Song Loader:
Data:
0-bits are long and 1-bits are short. All short bits are duplicated.
So a 0x00 byte will be 8 pulses, while a 0xff byte will be 16 pulses.

Structure:
 - Lead-in
 - Header
 - Lead-in
 - Data header
 - Data area #1
 - Lead-in
 - Data header
 - Data area #2

Header:
00-06   Signature "CMSTAPE"
07-0d   Song name
0e      " " (Single space)
0f-16   Artist name(?)

Data header:
00-04   Signature "BYTES"

Data area #1:
Always loads to 0xc600 - 0xc7ac (exclusive).
Last two bytes of this data are the end address of the next part, low/high order, exclusive.

Data area #2:
Load address is always 0x5400.

Checksum:
Sum of all data bytes within a data area, excluding data header.
When adding the bytes they should all be +1.