Annotation of coco/zequates.src, revision 1.1

1.1     ! root        1:        PAGE
        !             2:        SBTTL "--- MEMORY ORGANIZATION ---"
        !             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
        !            40:        SBTTL "--- ZIP D-PAGE VARIABLES ---"
        !            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: 
        !           121:        END
        !           122: 

unix.superglobalmegacorp.com

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