mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-27 15:50:56 +00:00
93 lines
3.5 KiB
NASM
93 lines
3.5 KiB
NASM
//=============
|
|
// SNES Header
|
|
//=============
|
|
seek($FFC0)
|
|
// PROGRAM TITLE (21 Byte ASCII String, Use Spaces For Unused Bytes)
|
|
db "65816 CPU TEST STR "
|
|
// "123456789012345678901"
|
|
|
|
// ROM MODE/SPEED (Bits 7-4 = Speed, Bits 3-0 = Map Mode)
|
|
db $20
|
|
// ||___________________Map Mode:
|
|
// | $X0 = LoROM/32K Banks (Mode 20)
|
|
// | $X1 = HiROM/64K Banks (Mode 21)
|
|
// | $X2 = LoROM/32K Banks + S-DD1 (Mode 22 Mappable)
|
|
// Speed: $X3 = LoROM/32K Banks + SA-1 (Mode 23 Mappable)
|
|
// $2X = SlowROM (200ns) $X5 = HiROM/64K Banks (Mode 25 ExHiROM)
|
|
// $3X = FastROM (120ns) $XA = HiROM/64K Banks + SPC7110 (Mode 2A Mappable)
|
|
|
|
// ROM TYPE (Bits 7-4 = Co-processor, Bits 3-0 = Type)
|
|
db $00
|
|
// ||___________________Type:
|
|
// | $00 = ROM
|
|
// | $01 = ROM+RAM
|
|
// Co-processor: $02 = ROM+RAM+Battery
|
|
// $0X = DSP $X3 = ROM+Co-processor
|
|
// $1X = GSU $X4 = ROM+Co-processor+RAM
|
|
// $2X = OBC1 $X5 = ROM+Co-processor+RAM+Battery
|
|
// $3X = SA-1 $X6 = ROM+Co-processor+Battery
|
|
// $4X = S-DD1 $X9 = ROM+Co-processor+RAM+Battery+RTC-4513
|
|
// $5X = S-RTC $XA = ROM+Co-processor+RAM+Battery+Overclocked
|
|
|
|
// ROM SIZE (Values are rounded-up for carts with 10,12,20,24 Mbits)
|
|
db $01
|
|
// $01 = 1 Bank = 32Kb (0.25 Mbit), $07 = 7 Banks = 224Kb (1.75 Mbit)
|
|
// $02 = 2 Banks = 64Kb (0.50 Mbit), $08 = 8 Banks = 256Kb (2.00 Mbit)
|
|
// $03 = 3 Banks = 96Kb (0.75 Mbit), $09 = 16 Banks = 512Kb (4.00 Mbit)
|
|
// $04 = 4 Banks = 128Kb (1.00 Mbit), $0A = 32 Banks = 1024Kb (8.00 Mbit)
|
|
// $05 = 5 Banks = 160Kb (1.25 Mbit), $0B = 64 Banks = 2048Kb (16.00 Mbit)
|
|
// $06 = 6 Banks = 192Kb (1.50 Mbit), $0C = 128 Banks = 4096Kb (32.00 Mbit)
|
|
|
|
// RAM SIZE
|
|
db $00
|
|
// $00 = None, $04 = 16Kb
|
|
// $01 = 2Kb, $05 = 32Kb
|
|
// $02 = 4Kb, $06 = 64Kb
|
|
// $03 = 8Kb, $07 = 128Kb
|
|
|
|
// COUNTRY/VIDEO REFRESH (NTSC/PAL-M = 60 Hz, PAL/SECAM = 50 Hz)
|
|
db $00
|
|
// $00 = (J)apan (NTSC), $09 = (D)Germany, Austria, Switz (PAL)
|
|
// $01 = (E)USA, Canada (NTSC), $0A = (I)taly (PAL)
|
|
// $02 = Euro(P)e (PAL), $0B = (C)hina, Hong Kong (PAL)
|
|
// $03 = S(W)eden, Scandinavia (PAL), $0C = Indonesia (PAL)
|
|
// $04 = Finland (PAL), $0D = South (K)orea (NTSC)
|
|
// $05 = Denmark (PAL), $0E = (A)Common (ANY)
|
|
// $06 = (F)rance (SECAM), $0F = Ca(N)ada (NTSC)
|
|
// $07 = (H)olland (PAL), $10 = (B)razil (PAL-M)
|
|
// $08 = (S)pain (PAL), $11 = (U)Australia (PAL)
|
|
|
|
// DEVELOPER ID CODE
|
|
db $00
|
|
// $00 = None
|
|
// $01 = Nintendo
|
|
// $33 = New (Uses Extended Header)
|
|
|
|
// ROM VERSION NUMBER
|
|
db $00
|
|
// $00 = 1.00, $01 = 1.01
|
|
|
|
// COMPLEMENT CHECK
|
|
db "CC"
|
|
// CHECKSUM
|
|
db "CS"
|
|
|
|
// NATIVE VECTOR (65C816 Mode)
|
|
dw $0000 // RESERVED
|
|
dw $0000 // RESERVED
|
|
dw $0000 // COP VECTOR (COP Opcode)
|
|
dw $0000 // BRK VECTOR (BRK Opcode)
|
|
dw $0000 // ABORT VECTOR (Unused)
|
|
dw $0000 // NMI VECTOR (V-Blank Interrupt)
|
|
dw $0000 // RESET VECTOR (Unused)
|
|
dw $0000 // IRQ VECTOR (H/V-Timer/External Interrupt)
|
|
|
|
// EMU VECTOR (6502 Mode)
|
|
dw $0000 // RESERVED
|
|
dw $0000 // RESERVED
|
|
dw $0000 // COP VECTOR (COP Opcode)
|
|
dw $0000 // BRK VECTOR (Unused)
|
|
dw $0000 // ABORT VECTOR (Unused)
|
|
dw $0000 // NMI VECTOR (V-Blank Interrupt)
|
|
dw $8000 // RESET VECTOR (CPU is always in 6502 mode on RESET)
|
|
dw $0000 // IRQ/BRK VECTOR |