Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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>​