Annotation of coco/zequates.src, revision 1.1.1.2

1.1       root        1:        PAGE
1.1.1.2 ! root        2:        ;SBTTL "--- MEMORY ORGANIZATION ---"
1.1       root        3: 
                      4: TRUE   EQU     $FF
                      5: FALSE  EQU     0
                      6: 
                      7: DSTART EQU     0               ; START OF DIRECT-PAGE RAM
                      8: 
                      9: MSTACK EQU     MSTART+$FE      ; TOP OF MACHINE STACK (254 BYTES)
                     10: IOBUFF EQU     MSTART+$100     ; 256-BYTE DISK I/O BUFFER
                     11: ZSTACK EQU     MSTART+$200     ; Z-STACK (255 WORDS)
                     12: ZSTAKL EQU     255             ; LENGTH OF Z-STACK IN WORDS
                     13: TOPSTA EQU     (2*ZSTAKL)+ZSTACK       ; TOP OF Z-STACK
                     14: PTABLE EQU     MSTART+$400     ; PAGING TABLE ($140 BYTES/$A0 WORDS)
                     15: LRUMAP EQU     MSTART+$550     ; TIMESTAMP MAP ($A0 BYTES)
                     16: LOCALS  EQU     MSTART+$600     ; LOCAL VARIABLE STORAGE (32 BYTES)
                     17: BUFFER  EQU     MSTART+$620     ; I/O LINE BUFFER (32 BYTES)
                     18: BUFSAV  EQU     MSTART+$640     ; I/O AUX BUFFER (32 BYTES)
                     19: ZIP    EQU     MSTART+$700     ; START OF EXECUTABLE CODE
                     20: ZCODE  EQU     ZIP+$1700       ; START OF Z-CODE (ASSUME 5.75K ZIP)
                     21: 
                     22:        ; Z-CODE HEADER OFFSETS
                     23: 
                     24: ZVERS  EQU     0               ; VERSION BYTE
                     25: ZMODE  EQU     1               ; MODE SELECT BYTE
                     26: ZID    EQU     2               ; GAME ID WORD
                     27: ZENDLD EQU     4               ; START OF NON-PRELOADED Z-CODE
                     28: ZBEGIN EQU     6               ; EXECUTION ADDRESS
                     29: ZVOCAB EQU     8               ; START OF VOCABULARY TABLE
                     30: ZOBJEC EQU     10              ; START OF OBJECT TABLE
                     31: ZGLOBA EQU     12              ; START OF GLOBAL VARIABLE TABLE
                     32: ZPURBT EQU     14              ; START OF "PURE" Z-CODE
                     33: ZSCRIP EQU     16              ; FLAG WORD
                     34: ZSERIA EQU     18              ; 3-WORD ASCII SERIAL NUMBER
                     35: ZFWORD EQU     24              ; START OF FWORDS TABLE
                     36: ZLENTH EQU     26              ; LENGTH OF Z-PROGRAM IN WORDS
                     37: ZCHKSM EQU     28              ; Z-CODE CHECKSUM WORD
                     38: 
                     39:        PAGE
1.1.1.2 ! root       40:        ;SBTTL "--- ZIP D-PAGE VARIABLES ---"
1.1       root       41: 
                     42: OPCODE EQU     DSTART          ; CURRENT OPCODE
                     43: ARGCNT EQU     OPCODE+1        ; # ARGUMENTS
                     44: ARG1   EQU     OPCODE+2        ; ARGUMENT #1 (WORD)
                     45: ARG2   EQU     OPCODE+4        ; ARGUMENT #2 (WORD)
                     46: ARG3   EQU     OPCODE+6        ; ARGUMENT #3 (WORD)
                     47: ARG4   EQU     OPCODE+8        ; ARGUMENT #4 (WORD)
                     48: 
                     49: LRU    EQU     OPCODE+10       ; (BYTE) LEAST RECENTLY USED PAGE INDEX
                     50: ZPURE  EQU     LRU+1           ; (BYTE) 1ST VIRTUAL PAGE OF PURE Z-CODE
                     51: PMAX   EQU     LRU+2           ; (BYTE) MAXIMUM # SWAPPING PAGES
                     52: ZPAGE  EQU     LRU+3           ; (BYTE) CURRENT SWAPPING PAGE
                     53: PAGE0  EQU     LRU+4           ; (BYTE) 1ST ABS PAGE OF SWAPPING SPACE
                     54: TABTOP EQU     LRU+5           ; (WORD) ADDRESS OF LAST P-TABLE ENTRY
                     55: STAMP  EQU     LRU+7           ; (BYTE) CURRENT TIMESTAMP (BM 11/24/84)
                     56: SWAP   EQU     LRU+8           ; (BYTE) EARLIEST BUFFER (BM 11/24/84)
                     57: 
                     58: ZPCH   EQU     LRU+9           ; HIGHEST-ORDER BIT OF PC
                     59: ZPCM   EQU     ZPCH+1          ; MIDDLE 8 BITS OF PC
                     60: ZPCL   EQU     ZPCH+2          ; LOWER 8 BITS OF PC
                     61: ZPCPNT EQU     ZPCH+3          ; POINTER TO ACTUAL PC PAGE (WORD)
                     62: ZPCFLG EQU     ZPCH+5          ; FLAG: "TRUE" IF ZPCPNT VALID
                     63: 
                     64: MPCH   EQU     ZPCH+7          ; HIGHEST-ORDER BIT OF MEM POINTER
                     65: MPCM   EQU     MPCH+1          ; MIDDLE 8 BITS OF MEM POINTER
                     66: MPCL   EQU     MPCH+2          ; LOW-ORDER 8 BITS OF MEMORY POINTER
                     67: MPCPNT EQU     MPCH+3          ; ACTUAL POINTER TO MEMORY (WORD)
                     68: MPCFLG EQU     MPCH+5          ; FLAG: "TRUE" IF MPCPNT VALID
                     69: 
                     70: GLOBAL EQU     MPCH+7          ; GLOBAL VARIABLE POINTER (WORD)
                     71: VOCAB  EQU     GLOBAL+2        ; VOCAB TABLE POINTER (WORD)
                     72: FWORDS EQU     GLOBAL+4        ; FWORDS TABLE POINTER (WORD)
                     73: 
                     74: OZSTAK EQU     GLOBAL+6        ; ZSP SAVE REGISTER (FOR ZCALL)
                     75: 
                     76: CSTEMP EQU     OZSTAK+2        ; SET IF TEMP CHARSET IN EFFECT
                     77: CSPERM EQU     CSTEMP+1        ; CURRENT PERM CHARSET
                     78: STBYTF EQU     CSTEMP+2        ; 0=1ST, 1=2ND, 2=3RD, 0=LAST
                     79: 
                     80: ZSTWRD EQU     CSTEMP+3        ; WORD STORAGE (WORD)
                     81: ZSTBUI EQU     ZSTWRD+2        ; Z-STRING INPUT BUFFER (6 BYTES)
                     82: ZSTBUO EQU     ZSTWRD+8        ; Z-STRING OUTPUT BUFFER (6 BYTES)
                     83: RTABP  EQU     ZSTWRD+14       ; RESULT TABLE POINTER
                     84: STABP  EQU     ZSTWRD+15       ; SOURCE TABLE POINTER
                     85: PZSTFO EQU     ZSTWRD+16       ; FWORD TABLE BLOCK OFFSET
                     86: 
                     87: VAL    EQU     ZSTWRD+17       ; VALUE RETURN REGISTER (WORD)
                     88: TEMP   EQU     VAL+2           ; TEMPORARY REGISTER (WORD)
                     89: TEMP2  EQU     VAL+4           ; ANOTHER TEMPORARY REGISTER (WORD)
                     90: MASK   EQU     VAL+6           ; BIT-MASK REGISTER (WORD)
                     91: SQUOT  EQU     VAL+8           ; SIGN OF QUOTIENT
                     92: SREM   EQU     VAL+9           ; SIGN OF REMAINDER
                     93: MTEMP  EQU     VAL+10          ; MATH TEMP REGISTER (WORD)
                     94: 
                     95: DRIVE  EQU     VAL+12          ; DRIVE NUMBER
                     96: DBUFF  EQU     DRIVE+1         ; DISK I/O BUFFER POINTER (WORD)
                     97: DBLOCK EQU     DRIVE+3         ; Z-BLOCK # (WORD)
                     98: TRACK  EQU     DRIVE+5         ; TRACK/SECTOR ADDRESS (WORD)
                     99: 
                    100: TIMEFL EQU     DRIVE+7         ; "TRUE" IF TIME MODE
                    101: 
                    102: CHRPNT EQU     TIMEFL+1        ; I/O BUFFER INDEX
                    103: CPSAV  EQU     CHRPNT+1        ; SAVE REGISTER FOR [CHRPNT]
                    104: BINDEX EQU     CHRPNT+2        ; BUFFER DISPLAY INDEX
                    105: LINCNT EQU     CHRPNT+3        ; # LINES DISPLAYED SINCE LAST USL
                    106: IOCHAR EQU     CHRPNT+4        ; CURRENT I/O CHARACTER
                    107: GDRIVE EQU     CHRPNT+5        ; GAME-SAVE DEFAULT DRIVE #
                    108: GPOSIT EQU     CHRPNT+6        ; GAME-SAVE DEFAULT POSITION
                    109: RAND1  EQU     CHRPNT+7        ; RANDOM NUMBER REGISTER
                    110: RAND2  EQU     CHRPNT+8        ; DITTO
                    111: CYCLE  EQU     CHRPNT+9        ; TIMER FOR CURSOR BLINK (WORD)
                    112: BLINK  EQU     CHRPNT+11       ; MASK FOR CURSOR BLINK
                    113: CFLAG  EQU     CHRPNT+12       ; CURSOR ENABLE FLAG
                    114: SCRIPT EQU     CHRPNT+13       ; SCRIPTING ENABLE FLAG
                    115: IHOLD  EQU     CHRPNT+14       ; INTERRUPT HOLD
                    116: TPOSIT EQU     CHRPNT+15       ; TEMP GAME POSITION
                    117: TDRIVE EQU     CHRPNT+16       ; TEMP GAME DRIVE
                    118: 
                    119: ZPGTOP EQU     CHRPNT+15       ; END OF DIRECT-PAGE VARIABLES
                    120: 
1.1.1.2 ! root      121:        ;END
1.1       root      122: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.