Code: Select all
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ;
; PROJECT: SEGA CHANNEL BIOS ;
; ;
; MODULE: HARDWARE.I ;
; ;
; MODULE CREATION DATE: August 1994 ;
; ;
; AUTHOR: D. Castelnuovo ;
; ;
; DEVELOPMENT SYSTEM: SIERRA SYSTEMS 3.1 ;
; ;
; COPYRIGHT (C)1994 PACIFIC SOFTSCAPE INC ;
; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
*
* Game Data Structure
*
offset 0
DownloadAddress ds.l 1 ; Address to download to
UncompSize ds.l 1 ; Uncompressed size in bytes
CompSize ds.l 1 ; Compressed size in bytes
SuperPackets ds.w 1 ; number of super packets
GameCRC ds.l 1
GameID ds.w 1 ; 0 for MenuData
GameServiceID ds.b 1
PacketID ds.b 1
StationNumber ds.b 1
LogicalChannel ds.b 1
GameTimeout ds.b 1
PPDSlot ds.b 1 ; Play-per-Day Game
HelpId ds.w 1
ClearSRAMFlag ds.b 1
SRAMPatternFill ds.b 1
CompressionFlag ds.b 1 ; 0=none,1=comp,2=newload
HelpFlag ds.b 1
DLIndicator ds.l 1 ; Lptr DownloadIndicatorTable
SIZEOF_GAMEDATA ds.w 0
*
*
* Hardware Control equates
*
*
REALHW EQU 0 ; Set to 1 for real hardware!
MenuData EQU $110000 ; Where the menu's are decompressed
SRAM_START EQU $200001
SRAM_LENGTH EQU $2000 ; 8k bytes of SRAM
DRAM_START EQU $100000
DRAM_LENGTH EQU $400000 ; 4MB's worth
TEST_PATTERN EQU $A125A125 ; DRAM Test Pattern
FIXIT_START EQU $100000 ; start of fixit buffer
FIXIT_BUFFER_ENTRIES EQU 32 ; number of fixit buffer entries
COUNT_PER_FRAME EQU 2048 ; look at 2k packets per frame
SIZEOF_PACKET EQU 246 ; current size of packet
*
* Fixit buffer structure
*
offset 0
fbData ds.b 26 ; Data buffer
fbS0 ds.b 1
fbS1 ds.b 1
fbPacketAddress ds.w 1
fbParity ds.b 1 ; Parity/Used buffer
fbPacketNumber ds.b 1
SIZEOF_FIXITBUFFER ds.w 0 ; Size of the buffer
*
* ASIC Registers
*
REGBASE EQU 0xA13000
TCU_STATUS EQU REGBASE+0x04
TCU_DATA EQU REGBASE+0x06
FIXIT_STARTADDR EQU REGBASE+0x10
FIXIT_WORKBOUND EQU REGBASE+0x12
GAME_TIMEOUT EQU REGBASE+0x20
GAME_ID EQU REGBASE+0x22
PKT_MATCHADDR EQU REGBASE+0x24
CURRENT_SPACKET EQU REGBASE+0x26
GEN_STATUS EQU REGBASE+0x30
GEN_CONTROL EQU REGBASE+0x32
ERROR_COUNTER EQU REGBASE+0x34
CRC_INPUT EQU REGBASE+0x40
CRC_LOWOUT EQU REGBASE+0x42
CRC_HIGHOUT EQU REGBASE+0x44
BANKSWITCH0 EQU REGBASE+0xF0
BANKSWITCH1 EQU REGBASE+0xF2
BANKSWITCH2 EQU REGBASE+0xF4
BANKSWITCH3 EQU REGBASE+0xF6
BANKSWITCH4 EQU REGBASE+0xF8
BANKSWITCH5 EQU REGBASE+0xFa
BANKSWITCH6 EQU REGBASE+0xFc
BANKSWITCH7 EQU REGBASE+0xFe
*
* TCU Registers
*
TCU_AUTHMAP EQU $00
TCU_FREEMAP EQU $10
TCU_P2PLAY EQU $20
TCU_P2PSERVID EQU $23
TCU_TRANSDATA EQU $A0
TCU_GAMETIME EQU $B1 ; b1-b2
TCU_RESETCOND EQU $B3
TCU_DAYOFWEEK EQU $B4
TCU_WEEK EQU $B5
TCU_TODTIMOUT EQU $B6
TCU_AUTHBYTE EQU $B7
TCU_CHECKSUM EQU $B8 ; Unit Address Checksum
TCU_PLLCONFIG EQU $B9
TCU_PLLDATA0 EQU $BA ; From BA to BD
TCU_PASSWORD EQU $C0 ; C0 and C1
TCU_CHANBITMAP EQU $C2
TCU_PCLEVEL EQU $CB ; current parental guidance level
TCU_INITIALIZED EQU $CC ; has the ASIC been Initialized
TCU_RANDOMSEED EQU $CD ; Random Number Seed (WORD)
TCU_NEXTTEST EQU $CF ; next DRAM test block
TCU_STATION EQU $E0
TCU_SLOT EQU $E1
TCU_SERVICEID EQU $E2
TCU_FILTERCODE EQU $E3 ; E3 and E4
TCU_CHANNELNO EQU $E5
TCU_UNITADDR EQU $F3 ; F3,f4,f5,f6
TCU_LANGUAGE EQU $1E0 ; 0=English
; 1=French
; 2=German
; 3=Spanish
TCU_HELPCOM EQU $1E1 ; help comunications port
TCU_MENULPTR EQU $1E2 ; Lptr to Menu Stack
TCU_TUNERTYPE EQU $1E6 ; 0=TD1A, 1=TD1B
TCU_BIOSNVM2 EQU $1E1 ; 1E1 through 1FF
HELP_DATA MACRO
dc.l $100000+$10007a ; DownloadAddress
dc.l $0009ce44 ; UncompSize
dc.l $0009ce44 ; CompSize
dc.w 2613 ; SuperPackets
dc.l $798361a0 ; GameCRC
dc.w 62 ; GameID
dc.b 1 ; GameServiceID
dc.b 0 ; PacketID
dc.b 1 ; PipeNumber
dc.b 0 ; LogicalChannel
dc.b 0 ; GameTimeout
dc.b -1 ; PPDSlot
dc.w \1 ; HelpID
dc.b 0 ; ClearSRAMFlag
dc.b 0 ; SRAMPatternFill
dc.b 5 ; CompressionFlag
dc.b 0 ; Help Flag
dc.l DownloadIndicator ; DLIndicator
dc.w 127 ; GIPackets
ENDM