Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
software:system_rom [2016/06/05 15:30] ex_writer [System ROM] |
software:system_rom [2016/06/14 10:53] ex_writer [System RAM Memory Cells] |
||
---|---|---|---|
Line 15: | Line 15: | ||
<WRAP todo>Better organization and context</WRAP> | <WRAP todo>Better organization and context</WRAP> | ||
- | ===== System RAM Memory Cells ===== | + | ===== System Dope Vector ===== |
- | + | ||
- | System RAM memory definitions are located at $4FC8–4FFD in the Nutting Manual source listing (p. 14–15). | + | |
- | + | ||
- | ^ Used by [[hardware:Music Processor]] ^^ | + | |
- | | MUZPC | Music Program Counter | | + | |
- | | MUZSP | Music Stack Pointer | | + | |
- | | PVOLAB | Preset Volume for Tones A & B | | + | |
- | | PVOLMC | Preset Volume for Master Oscillator | | + | |
- | | VOICES | Music Voices | | + | |
- | + | ||
- | ^ Counter Timers (used by [[system routines:interrupt scheduler#deccts|DECCTS]], [[system routines:interrupt scheduler#actint|ACTINT]], and [[system routines:interrupt scheduler#ctimer|CTIMER]]) ^^ | + | |
- | | CT0 | Counter Timer 0 | | + | |
- | | CT1 | Counter Timer 1 | | + | |
- | | CT2 | Counter Timer 2 | | + | |
- | | CT3 | Counter Timer 3 | | + | |
- | | CT4 | Counter Timer 4 | | + | |
- | | CT5 | Counter Timer 5 | | + | |
- | | CT6 | Counter Timer 6 | | + | |
- | | CT7 | Counter Timer 7 | | + | |
- | + | ||
- | ^ Used by [[system routines:human interface#sentry|SENTRY]] to Track Controls ^^ | + | |
- | | CNT | Counter Update & Number Tracking | | + | |
- | | SEMI4S | Flag Bits | | + | |
- | | OPOT0 | Pot 0 Tracking | | + | |
- | | OPOT1 | Pot 1 Tracking | | + | |
- | | OPOT2 | Pot 2 Tracking | | + | |
- | | OPOT3 | Pot 3 Tracking | | + | |
- | | KEYSEX | Keyboard Tracking Byte | | + | |
- | | OSW0 | Switch 0 Tracking | | + | |
- | | OSW1 | Switch 1 Tracking | | + | |
- | | OSW2 | Switch 2 Tracking | | + | |
- | | OSW3 | Switch 3 Tracking | | + | |
- | | COLLST | Color List Address for P. B. A | | + | |
- | + | ||
- | ^ Used by [[system routines:interrupt scheduler#stimer|STIMER]] ^^ | + | |
- | | DURAT | Note Duration | | + | |
- | | TMR60 | Sixtieths of a Second | | + | |
- | | TIMOUT | Blackout Timer | | + | |
- | | GTSECS | Game Time (Seconds) | | + | |
- | | GTMINS | Game Time (Minutes) | | + | |
- | + | ||
- | ^ Used by [[system routines:human interface#menu|MENU]] ^^ | + | |
- | | RANSHT | Random Number Shift Register | | + | |
- | | NUMPLY | Number of Players | | + | |
- | | ENDSCR | Score to Play to | | + | |
- | | MRLOCK | Magic Register Lockout Flag | | + | |
- | | GAMSTB | Game Status Byte | | + | |
- | | PRIOR | Music Protect Flag | | + | |
- | | SENFLAG | Sentry Control Seizure Flag | | + | |
- | | UMARGT | User Macro Argument Table [??] | | + | |
- | | USERTB | User Table [??] | | + | |
- | System [[:glossary#d|dope vector]] (valid for ALL system ROM programs) | ||
<code z80> | <code z80> | ||
+ | ; Stuff in SYSTEM DOPE VECTOR (valid for ALL system ROMs): | ||
STIMER EQU $0200 ; Seconds and game TIMER, music | STIMER EQU $0200 ; Seconds and game TIMER, music | ||
CTIMER EQU $0203 ; Custom TIMERs | CTIMER EQU $0203 ; Custom TIMERs | ||
Line 81: | Line 30: | ||
</code> | </code> | ||
+ | ===== System RAM Memory Cells ===== | ||
+ | |||
+ | System RAM memory definitions are located at $4FC8–4FFD in the Nutting Manual source listing (p. 14–15). | ||
+ | |||
+ | <code z80> | ||
+ | ; *************************** | ||
+ | ; * SYSTEM RAM MEMORY Cells * | ||
+ | ; *************************** | ||
+ | WASTE EQU $0FFF | ||
+ | WASTER EQU WASTE | ||
+ | ; | ||
+ | SYSRAM EQU $4FCE ; Resides at the highest possible address | ||
+ | BEGRAM EQU SYSRAM ; typically used for initial Stack Pointer | ||
+ | ; Used by MUSIC PROCESSOR: | ||
+ | MUZPC EQU $4FCE ; MUSic Program Counter | ||
+ | MUZSP EQU $4FD0 ; MUSic Stack Pointer | ||
+ | PVOLAB EQU $4FD2 ; Preset VOLume for tones A and B | ||
+ | PVOLMC EQU $4FD3 ; Preset VOLuMe for tone C and Noise Mode | ||
+ | VOICES EQU $4FD4 ; music VOICES mask | ||
+ | ; COUNTER TIMERS (used by DECCTS,ACTINT,CTIMER): | ||
+ | CT0 EQU $4FD5 ; Counter Timer 0 | ||
+ | CT1 EQU $4FD6 ; Counter Timer 1 | ||
+ | CT2 EQU $4FD7 ; Counter Timer 2 | ||
+ | CT3 EQU $4FD8 ; Counter Timer 3 | ||
+ | CT4 EQU $4FD9 ; Counter Timer 4 | ||
+ | CT5 EQU $4FDA ; Counter Timer 5 | ||
+ | CT6 EQU $4FDB ; Counter Timer 6 | ||
+ | CT7 EQU $4FDC ; Counter Timer 7 | ||
+ | ;Used by SENTRY to track controls: | ||
+ | CNT EQU $4FDD ; Counter update & Number Tracking | ||
+ | SEMI4S EQU $4FDE ; SEMAPHORE flag bitS | ||
+ | OPOT0 EQU $4FDF ; Old POT 0 tracking byte | ||
+ | OPOT1 EQU $4FE0 ; Old POT 1 tracking byte | ||
+ | OPOT2 EQU $4FE1 ; Old POT 2 tracking byte | ||
+ | OPOT3 EQU $4FE2 ; Old POT 3 tracking byte | ||
+ | KEYSEX EQU $4FE3 ; KEYS-EX tracking byte | ||
+ | OSW0 EQU $4FE4 ; Old SWitch 0 tracking byte | ||
+ | OSW1 EQU $4FE5 ; Old SWitch 1 tracking byte | ||
+ | OSW2 EQU $4FE6 ; Old SWitch 2 tracking byte | ||
+ | OSW3 EQU $4FE7 ; Old SWitch 3 tracking byte | ||
+ | COLLST EQU $4FE8 ; COLset LaST address for P.B. A | ||
+ | ; Used by STIMER: | ||
+ | DURAT EQU $4FEA ; note DURATion | ||
+ | TMR60 EQU $4FEB ; TiMeR for SIXTY'ths of sec | ||
+ | TIMOUT EQU $4FEC ; TIMer for blackOUT | ||
+ | GTSECS EQU $4FED ; Game Time SECondS | ||
+ | GTMINS EQU $4FEE ; Game Time MINuteS | ||
+ | ; Used by MENU: | ||
+ | RANSHT EQU $4FEF ; RANdom number SHifT register | ||
+ | NUMPLY EQU $4FF3 ; NUMber of PLaYers | ||
+ | ENDSCR EQU $4FF4 ; END SCoRe to 'play to' | ||
+ | MRLOCK EQU $4FF7 ; Magic Register LOCK out flag | ||
+ | GAMSTB EQU $4FF8 ; GAMe STatus Byte | ||
+ | PRIOR EQU $4FF9 ; PRIOR music protect flag | ||
+ | SENFLG EQU $4FFA ; SENtry control seizure FLaG | ||
+ | ; User UPI Routines, even numbers from $80 to $FE ( + 1 for SUCK): | ||
+ | UMARGT EQU $4FFB ; User Mask ARGument Table + (routine / 2) | ||
+ | USERTB EQU $4FFD ; USER Table Base + routine = JumP address | ||
+ | ; | ||
+ | URINAL EQU $4FFF ; WASTER flushes here! | ||
+ | </code> |