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
software:system_rom [2016/06/05 14:36]
ex_writer [System ROM]
software:system_rom [2016/06/14 10:57] (current)
ex_writer [System RAM Memory Cells]
Line 12: Line 12:
 | [[Checkmate]] | 1–30 | $1328 | | [[Checkmate]] | 1–30 | $1328 |
 | [[:​Gunfight]] | 1–46 | $17 | [[:​Gunfight]] | 1–46 | $17
-===== On-Board Subroutines ===== 
  
-[[rom subroutines|Master list]] of Bally Arcade'​s On-Board ROM Subroutines.+===== System Dope Vector =====
  
- 
- 
-===== System RAM Memory Cells ===== 
- 
-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 84: Line 28:
 </​code>​ </​code>​
  
 +===== System RAM Memory Cells =====
 +
 +System RAM memory definitions are located at $4FC8–4FFD in the Nutting Manual source listing (p. 14–15).
 +
 +<wrap alert>So it's possible to squash these definitions if user program overwrites these RAM areas??</​wrap>​
 +
 +<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>​