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 [On-Board Subroutines]
software:system_rom [2016/06/14 10:52]
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
 +
 +<WRAP todo>​Better organization and context</​WRAP>​
  
 ===== System RAM Memory Cells ===== ===== System RAM Memory Cells =====
Line 17: Line 19:
 System RAM memory definitions are located at $4FC8–4FFD in the Nutting Manual source listing (p. 14–15). System RAM memory definitions are located at $4FC8–4FFD in the Nutting Manual source listing (p. 14–15).
  
-Used by [[hardware:Music Processor]] ^^ +<code z80> 
-MUZPC | Music Program Counter ​| +; *************************** 
-MUZSP | Music Stack Pointer ​| +; * SYSTEM RAM MEMORY Cells * 
-PVOLAB ​Preset ​Volume ​for Tones | +; *************************** 
-PVOLMC ​Preset ​Volume ​for Master Oscillator | +WASTE   ​EQU ​    ​$0FFF 
-VOICES ​| Music Voices | +WASTER ​ EQU     ​WASTE 
- +
-^ Counter Timers ​(used by [[system routines:​interrupt scheduler#​deccts|DECCTS]][[system routines:​interrupt scheduler#​actint|ACTINT]]and [[system routines:​interrupt scheduler#​ctimer|CTIMER]]^^ +SYSRAM ​ EQU     ​$4FCE ​  ; Resides at the highest possible address 
-CT0 Counter Timer 0 | +BEGRAM ​ EQU     ​SYSRAM ​ ; typically used for initial Stack Pointer 
-CT1 Counter Timer 1 | +Used by MUSIC PROCESSOR
-CT2 Counter Timer 2 | +MUZPC   EQU     ​$4FCE ​  ; MUSic Program Counter 
-CT3 Counter Timer 3 | +MUZSP   EQU     ​$4FD0 ​  ; MUSic Stack Pointer 
-CT4 Counter Timer 4 | +PVOLAB ​ ​EQU ​    ​$4FD2 ​  ; ​Preset ​VOLume ​for tones and 
-CT5 Counter Timer 5 | +PVOLMC ​ ​EQU ​    ​$4FD3 ​  ; ​Preset ​VOLuMe ​for tone C and Noise Mode 
-CT6 Counter Timer 6 | +VOICES ​ ​EQU ​    ​$4FD4 ​  ; music VOICES mask 
-CT7 Counter Timer 7 | +; COUNTER TIMERS ​(used by DECCTS,​ACTINT,​CTIMER): 
- +CT0     EQU     ​$4FD5 ​  ; ​Counter Timer 0 
-Used by [[system routines:​human interface#​sentry|SENTRY]] to Track Controls ^^ +CT1     EQU     ​$4FD6 ​  ; ​Counter Timer 1 
-CNT Counter ​Update ​& Number Tracking ​| +CT2     EQU     ​$4FD7 ​  ; ​Counter Timer 2 
-SEMI4S ​| Flag Bits | +CT3     EQU     ​$4FD8 ​  ; ​Counter Timer 3 
-OPOT0 | Pot Tracking | +CT4     EQU     ​$4FD9 ​  ; ​Counter Timer 4 
-OPOT1 | Pot Tracking | +CT5     EQU     ​$4FDA ​  ; ​Counter Timer 5 
-OPOT2 | Pot Tracking | +CT6     EQU     ​$4FDB ​  ; ​Counter Timer 6 
-OPOT3 | Pot Tracking | +CT7     EQU     ​$4FDC ​  ; ​Counter Timer 7 
-KEYSEX ​| Keyboard Tracking Byte | +;Used by SENTRY to track controls: 
-OSW0 | Switch ​Tracking | +CNT     EQU     ​$4FDD ​  ; ​Counter ​update ​& Number Tracking 
-OSW1 | Switch ​Tracking | +SEMI4S ​ ​EQU ​    ​$4FDE ​  ; SEMAPHORE flag bitS 
-OSW2 | Switch ​Tracking | +OPOT0   EQU     ​$4FDF ​  ; Old POT tracking byte 
-OSW3 | Switch ​Tracking | +OPOT1   EQU     ​$4FE0 ​  ; Old POT tracking byte 
-COLLST ​| Color List Address ​for P. B. A | +OPOT2   EQU     ​$4FE1 ​  ; Old POT tracking byte 
- +OPOT3   EQU     ​$4FE2 ​  ; Old POT tracking byte 
-Used by [[system routines:interrupt scheduler#​stimer|STIMER]] ^^ +KEYSEX ​ ​EQU ​    ​$4FE3 ​  ; KEYS-EX tracking byte 
-DURAT | Note Duration | +OSW0    ​EQU ​    ​$4FE4 ​  ; Old SWitch ​tracking byte 
-TMR60 | Sixtieths ​of a Second | +OSW1    ​EQU ​    ​$4FE5 ​  ; Old SWitch ​tracking byte 
-TIMOUT ​| Blackout Timer | +OSW2    ​EQU ​    ​$4FE6 ​  ; Old SWitch ​tracking byte 
-GTSECS ​Game Time (Seconds) | +OSW3    ​EQU ​    ​$4FE7 ​  ; Old SWitch ​tracking byte 
-GTMINS ​Game Time (Minutes) | +COLLST ​ ​EQU ​    ​$4FE8 ​  ; COLset LaST address ​for P.B. A 
- +Used by STIMER
-Used by [[system routines:human interface#​menu|MENU]] ^^ +DURAT   EQU     ​$4FEA ​  ; note DURATion 
-RANSHT ​| Random Number Shift Register | +TMR60   EQU     ​$4FEB ​  ; TiMeR for SIXTY'​ths ​of sec 
-NUMPLY ​| Number ​of Players | +TIMOUT ​ ​EQU ​    ​$4FEC ​  ; TIMer for blackOUT 
-ENDSCR ​| Score to Play to | +GTSECS ​ ​EQU ​    ​$4FED ​  ; ​Game Time SECondS 
-MRLOCK ​Magic Register ​Lockout Flag | +GTMINS ​ ​EQU ​    ​$4FEE ​  ; ​Game Time MINuteS 
-GAMSTB ​| Game Status ​Byte | +Used by MENU
-PRIOR | Music Protect Flag | +RANSHT ​ ​EQU ​    ​$4FEF ​  ; RANdom number SHifT register 
-| SENFLAG | Sentry Control Seizure Flag | +NUMPLY ​ ​EQU ​    ​$4FF3 ​  ; NUMber ​of PLaYers 
-UMARGT ​User Macro Argument ​Table [??] | +ENDSCR ​ ​EQU ​    ​$4FF4 ​  ; END SCoRe to '​play ​to' 
-USERTB ​| User Table [??] |+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>​
  
 System [[:​glossary#​d|dope vector]] (valid for ALL system ROM programs) System [[:​glossary#​d|dope vector]] (valid for ALL system ROM programs)
Line 78: Line 89:
 NOGAME ​ EQU     ​$0235 ​  ; address of '​Number Of GAMEs' string NOGAME ​ EQU     ​$0235 ​  ; address of '​Number Of GAMEs' string
 </​code>​ </​code>​
-