APPENDIX B
OPERATING SYSTEM EQUATES
0100 ;
0101 ; ATARI 800 EQUATE LISTING
0102 ;
0103 ;
0104 ;
0105 ;This listing is based on the original release of Operating System,
0106 ;version A. The vectors shown here were not changed in version B.
0107 ;New equates for XL and XE models are included and noted. Changes
0108 ;from version B to XL/XE are also noted.
0109 ;
0110 ;Most of the equate names given below are the official Atari
0111 ;names. They are in common use but are not mandatory.
0112 ;
0113 ;
0114 ; DEVICE NAMES
0115 ;
0116 ;
0117 ;SCREDT = "E" SCREEN EDITOR
0118 ;KBD = "K" KEYBOARD
0119 ;DISPLY = "S" DISPLAY
0120 ;PRINTR = "P" PRINTER
0121 ;CASSET = "C" CASSETTE
0122 ;DISK = "D" DISK DRIVE
0123 ;
0124 ;
0125 ;
0126 ; STATUS CODES
0127 ;
0128 ;
0129 SUCCES = $01 1
0130 BRKABT = $80 128 BREAK KEY ABORT
0131 PRVOPN = $82 130 IOCB ALREADY OPEN
0132 NONDEV = $82 130 NONEXISTANT DEVICE
0133 WRONLY = $83 131 OPENED FOR WRITE ONLY
0134 NVALID = $84 132 INVALID COMMAND
0135 NOTOPN = $85 133 DEVICE OR FILE NOT OPEN
0136 BADIOC = $86 134 INVALID IOCB NUMBER
0137 RDONLY = $87 135 OPENED FOR READ ONLY
0138 EOFERR = $88 136 END OF FILE
0139 TRNRCD = $89 137 TRUNCATED RECORD
0140 TIMOUT = $8A 138 PERIPHERAL TIME OUT
0141 DNACK = $8B 139 DEVICE DOES NOT ACKNOWLEDGE
0142 FRMERR = $8C 140 SERIAL BUS FRAMING ERROR
0143 CRSROR = $8D 141 CURSOR OUT OF RANGE
0144 OVRRUN = $8E 142 SERIAL BUS DATA OVERRUN
0145 CHKERR = $8F 143 SERIAL BUS CHECKSUM ERROR
0146 DERROR = $90 144 PERIPHERAL DEVICE ERROR
0147 BADMOD = $91 145 NON EXISTANT SCREEN MODE
0148 FNCNOT = $92 146 FUNCTION NOT IMPLEMENTED
0149 SCRMEM = $93 147 NOT ENOUGH MEMORY FOR SCREEN MODE
0150 ;
0151 ;
0152 ;
0153 ;
0154 ; COMMAND CODES FOR CIO
0155 ;
0156 ;
0157 OPEN = $03 3
0158 OPREAD = $04 4 OPEN FOR INPUT
0159 GETREC = $05 5 GET RECORD
0160 OPDIR = $06 6 OPEN TO DISK DIRECTORY
0161 GETCHR = $07 7 GET BYTE
0162 OWRITE = $08 8 OPEN FOR OUTPUT
0163 PUTREC = $09 9 WRITE RECORD
0164 APPEND = $09 9 OPEN TO APPEND TO END OF DISK FILE
0165 MXDMOD = $10 16 OPEN TO SPLIT SCREEN (MIXED MODE)
0166 PUTCHR = $0B 11 PUT-BYTE
0167 CLOSE = $0C 12
0168 OUPDAT = $0C 12 OPEN FOR INPUT AND OUTPUT AT THE SAME TIME
0169 STATUS = $0D 13
0170 SPECIL = $0E 14 BEGINNING OF SPECIAL COMMANDS
0171 DRAWLN = $11 17 SCREEN DRAW
0172 FILLIN = $12 18 SCREEN FILL
0173 RENAME = $20 32
0174 INSCLR = $20 32 OPEN TO SCREEN BUT DON'T ERASE
0175 DELETE = $21 33
0176 DFRMAT = $21 33 FORMAT DISK (RESIDENT DISK HANDLER (RDH))
0177 LOCK = $23 35
0178 UNLOCK = $24 36
0179 POINT = $25 37
0180 NOTE = $26 38
0181 PTSECT = $50 80 RDH PUT SECTOR
0182 GTSECT = $52 82 RDH GET SECTOR
0183 DSTAT = $53 83 RDH GET STATUS
0184 PSECTV = $57 87 RDH PUT SECTOR AND VERIFY
0185 NOIRG = $80 128 NO GAP CASSETTE MODE
0186 CR = $9B 155 CARRIAGE RETURN (EOL)
0187 ;
0188 IOCBSZ = $10 16 IOCB SIZE
0189 MAXIOC = $80 128 MAX IOCB BLOCK SIZE
0190 IOCBF = $FF 255 IOCB FREE
0191 ;
0192 LEDGE = $02 2 DEFAULT LEFT MARGIN
0193 REDGE = $27 39 DEFAULT RIGHT MARGIN
0194 ;
0195 ; OS VARIABLES
0196 ;
0197 ; PAGE 0
0198 ;
0199 LINZBS = $00 0 (800) FOR ORIGINAL DEBUGGER
0200 ; $00 0 (XL) RESERVED
0201 NGFLAG = $01 1 (XL) FOR POWER-UP SELF TEST
0202 CASINI = $02 2
0203 RAMLO = $04 4 POINTER FOR SELF TEST
0204 TRAMSZ = $06 6 TEMPORARY RAM SIZE
0205 TSTDAT = $07 7 TEST DATA
0206 WARMST = $08 8
0207 BOOT? = $09 9 SUCCESSFUL BOOT FLAG
0208 DOSVEC = $0A 10 PROGRAM RUN VECTOR
0209 DOSINI = $0C 12 PROGRAM INITIALIZATION
0210 APPMHI = $0E 14 DISPLAY LOW LIMIT
0211 POKMSK = $10 16 IRQ ENABLE FLAGS
0212 BRKKEY = $11 17 FLAG
0213 RTCLOK = $12 18 3 BYTES, MSB FIRST
0214 BUFADR = $15 21 INDIRECT BUFFER ADDRESS
0215 ICCOMT = $17 23 COMMAND FOR VECTOR
0216 DSKFMS = $18 24 DISK FILE MANAGER POINTER
0217 DSKUTL = $1A 26 DISK UTILITY POINTER (DUP.SYS)
0218 PTIMOT = $1C 28 (800) PRINTER TIME OUT REGISTER
0219 ABUFPT = $1C 28 (XL) RESERVED
0220 PBPNT = $1D 29 (800) PRINTER BUFFER POINTER
0221 ; $1D 29 (XL) RESERVED
0222 PBUFSZ = $1E 30 (800) PRINTER BUFFER SIZE
0223 ; $1E 30 (XL) RESERVED
0224 PTEMP = $1F 31 (800) TEMPORARY REGISTER
0225 ; $1F 31 (XL) RESERVED
0226 ZIOCB = $20 32 ZERO PAGE IOCB
0227 ICHIDZ = $20 32 HANDLER INDEX NUMBER (ID)
0228 ICDNOZ = $21 33 DEVICE NUMBER
0229 ICCOMZ = $22 34 COMMAND
0230 ICSTAZ = $23 35 STATUS
0231 ICBALZ = $24 36 BUFFER POINTER LOW BYTE
0232 ICBAHZ = $25 37 BUFFER POINTER HIGH BYTE
0233 ICPTLZ = $26 38 PUT ROUTINE POINTER LOW
0234 ICPTHZ = $27 39 PUT ROUTINE POINTER HIGH
0235 ICBLLZ = $28 40 BUFFER LENGTH LOW
0236 ICBLHZ = $29 41
0237 ICAX1Z = $2A 42 AUXILIARY INFORMATION BYTE 1
0238 ICAX2Z = $2B 43
0239 ICSPRZ = $2C 44 TWO SPARE BYTES (CIO USE)
0240 ICIDNO = $2E 46 IOCB NUMBER X 16
0241 CIOCHR = $2F 47 CHARACTER BYTE FOR CURRENT OPERATION
0242 ;
0243 STATUS = $30 48 STATUS STORAGE
0244 CHKSUM = $31 49 SUM WITH CARRY ADDED BACK
0245 BUFRLO = $32 50 DATA BUFFER LOW BYTE
0246 BUFRHI = $33 51
0247 BFENLO = $34 52 ADDRESS OF LAST BUFFER BYTE +1 (LOW)
0248 BFENHI = $35 53
0249 CRETRY = $36 54 (800) NUMBER OF COMMAND FRAME RETRIES
0250 LTEMP = $36 54 (XL) LOADER TEMPORARY STORAGE, 2 BYTES
0251 DRETRY = $37 55 (800) DEVICE RETRIES
0252 BUFRFL = $38 56 BUFFER FULL FLAG
0253 RECVDN = $39 57 RECEIVE DONE FLAG
0254 XMTDON = $3A 58 TRANSMISSION DONE FLAG
0255 CHKSNT = $3B 59 CHECKSUM-SENT FLAG
0256 NOCKSM = $3C 60 CHECKSUM-DOES-NOT-FOLLOW-DATA FLAG
0257 BPTR = $3D 61
0258 FTYPE = $3E 62
0259 FEOF = $3F 63
0260 FREQ = $40 64
0261 ;
0262 SOUNDR = $41 65 0=QUIET I/O
0263 CRITIC = $42 66 CRITICAL FUNCTION FLAG, NO DEFFERED VBI
0264 FMSZPG = $43 67 DOS ZERO PAGE, 7 BYTES
0265 CKEY = $4A 74 (800) START KEY FLAG
0266 ZCHAIN = $4A 74 (XL) HANDLER LOADER TEMP, 2 BYTES
0267 CASSBT = $4B 75 (800) CASSETTE BOOT FLAG
0268 DSTAT = $4C 76 DISPLAY STATUS
0269 ;
0270 ATRACT = $4D 77
0271 DRKMSK = $4E 78 ATTRACT MASK
0272 COLRSH = $4F 79 ATTRACT COLOR SHIFTER (EORed WITH
GRAPHICS)
0273 ;
0274 TMPCHR = $50 80
0275 HOLD1 = $51 81
0276 LMARGN = $52 82 SCREEN LEFT MARGIN REGISTER
0277 RMARGN = $53 83 SCREEN RIGHT MARGIN
0278 ROWCRS = $54 84 CURSOR ROW
0279 COLCRS = $55 85 CURSOR COLUMN, 2 BYTES
0280 DINDEX = $57 87 DISPLAY MODE
0281 SAVMSC = $58 88 SCREEN ADDRESS
0282 OLDROW = $5A 90 CURSOR BEFORE DRAW OR FILL
0283 OLDCOL = $5B 91
0284 OLDCHR = $5D 93 DATA UNDER CURSOR
0285 OLDADR = $5E 94 CURSOR ADDRESS
0286 NEWROW = $60 96 (800) DRAWTO DESTINATION
0287 FKDEF = $60 96 (XL) FUNCTION KEY DEFINATION POINTER
0288 NEWCOL = $61 97 (800) DRAWTO DESTINATION, 2 BYTES
0289 PALNTS = $62 98 (XL) EUROPE/NORTH AMERICA TV FLAG
0290 LOGCOL = $63 99 LOGICAL LINE COLUMN POINTER
0291 MLTTMP = $66 102
0292 OPNTMP = $66 102 TEMPORARY STORAGE FOR CHANNEL OPEN
0293 SAVADR = $68 104
0294 RAMTOP = $6A 106 START OF ROM (END OF RAM + 1), HIGH BYTE
ONLY
0295 BUFCNT = $6B 107 BUFFER COUNT
0296 BUFSTR = $6C 108 POINTER USED BY EDITOR
0297 BITMSK = $6E 110 POINTER USED BY EDITOR
0298 SHFAMT = $6F 111
0299 ROWAC = $70 112
0300 COLAC = $72 114
0301 ENDPT = $74 116
0302 DELTAR = $76 118
0303 DELTAC = $77 119
0304 ROWINC = $79 121 (800)
0305 KEYDEF = $79 121 (XL) KEY DEFINATION POINTER, 2 BYTES
0306 COLINC = $7A 122 (800)
0307 SWPFLG = $7B 123 NON 0 IF TEXT AND REGULAR RAM IS SWAPPED
0308 HOLDCH = $7C 124 CH MOVED HERE BEFORE CTRL AND SHIFT
0309 INSDAT = $7D 125
0310 COUNTR = $7E 126
0311 ;
0312 ZROFRE = $80 128 FREE ZERO PAGE, 84 BYTES
0313 FPZRO = $D4 212 FLOATING POINT RAM, 43 BYTES
0314 FR0 = $D4 212 FP REGISTER 0
0315 FRE = $DA 218
0316 FR1 = $E0 224 FP REGISTER 1
0317 FR2 = $E6 230 FP REGISTER 2
0318 FRX = $EC 236 SPARE
0319 EEXP = $ED 237 VALUE OF E
0320 NSIGN = $ED 237 SIGN OF FP NUMBER
0321 ESIGN = $EF 239 SIGN OF FP EXPONENT
0322 FCHFLG = $F0 240 FIRST CHARACTER FLAG
0323 DIGRT = $F1 241 NUMBER OF DIGITS RIGHT OF DECIMAL POINT
0324 CIX = $F2 242 INPUT INDEX
0325 INBUFF = $F3 243 POINTER TO ASCII FP NUMBER
0326 ZTEMP1 = $F5 245
0327 ZTEMP4 = $F7 247
0328 ZTEMP3 = $F9 249
0329 DEGFLG = $FB 251
0330 RADFLG = $FB 251 0=RADIANS, 6=DEGREES
0331 FLPTR = $FC 252 POINTER TO BCD FP NUMBER
0332 FPTR2 = $FE 254
0333 ;
0334 ;
0335 ; PAGE 1
0336 ;
0337 ; 65O2 STACK
0338 ;
0339 ;
0340 ;
0341 ;
0342 ; PAGE 2
0343 ;
0344 ;
0345 INTABS = $0200 512 INTERRUPT RAM
0346 VDSLST = $0200 512 NMI VECTOR
0347 VPRCED = $0202 514 PROCEED LINE IRQ VECTOR
0348 VINTER = $0204 516 INTERRUPT LINE IRQ VECTOR
0349 VBREAK = $0206 518
0350 VKEYBD = $0208 520
0351 VSERIN = $020A 522 SERIAL INPUT READY IRQ
0352 VSEROR = $020C 524 SERIAL OUTPUT READY IRQ
0353 VSEROC = $020E 526 SERIAL OUTPUT COMPLETE IRQ
0354 VTIMR1 = $0210 528 TIMER 1 IRQ
0355 VTIMR2 = $0212 530 TIMER 2 IRQ
0356 VTIMR4 = $0214 532 TIMER 4 IRQ
0357 VIMIRQ = $0216 534 IRQ VECTOR
0358 CDTMV1 = $0218 536 DOWN TIMER 1
0359 CDTMV2 = $021A 538 DOWN TIMER 2
0360 CDTMV3 = $021C 540 DOWN TIMER 3
0361 CDTMV4 = $021E 542 DOWN TIMER 4
0362 CDTMV5 = $0220 544 DOWN TIMER 5
0363 VVBLKI = $0222 546
0364 VVBLKD = $0224 548
0365 CDTMA1 = $0226 550 DOWN TIMER 1 JSR ADDRESS
0366 CDTMA2 = $0228 552 DOWN TIMER 2 JSR ADDRESS
0367 CDTMF3 = $022A 554 DOWN TIMER 3 FLAG
0368 SRTIMR = $022B 555 REPEAT TIMER
0369 CDTMF4 = $022C 556 DOWN TIMER 4 FLAG
0370 INTEMP = $022D 557 IAN'S TEMP
0371 CDTMF5 = $022E 558 DOWN TIMER FLAG 5
0372 SDMCTL = $022F 559 DMACTL SHADOW
0373 SDLSTL = $0230 560 DISPLAY LIST POINTER
0374 SSKCTL = $0232 562 SKCTL SHADOW
0375 ; $0233 563 (800) UNLISTED
0376 LCOUNT = $0233 563 (XL) LOADER TEMP
0377 LPENH = $0234 564 LIGHT PEN HORIZONTAL
0378 LPENV = $0235 565 LIGHT PEN VERTICAL
0379 ; $0236 566 2 SPARE BYTES
0380 ; $0238 568 (800) SPARE, 2 BYTES
0381 RELADR = $0238 568 (XL) LOADER
0382 CDEVIC = $023A 570 DEVICE COMMAND FRAME BUFFER
0383 CAUX1 = $023C 572 DEVICE COMMAND AUX 1
0384 CAUX2 = $023D 573 DEVICE COMMAND AUX 2
0385 TEMP = $023E 574 TEMPORARY STORAGE
0386 ERRFLG = $023F 575 DEVICE ERROR FLAG (EXCEPT TIMEOUT)
0387 DFLAGS = $0240 576 FLAGS FROM DISK SECTOR 1
0388 DBSECT = $0241 577 NUMBER OF BOOT DISK SECTORS
0389 BOOTAD = $0242 578 BOOT LOAD ADDRESS POINTER
0390 COLDST = $0244 580 COLD START FLAG, 1 = COLD START IN
PROGRESS
0391 ; $0245 581 (800) SPARE
0392 RECLEN = $0245 581 (XL) LOADER
0393 DSKTIM = $0246 582 (800) DISK TIME OUT REGISTER
0394 ; $0246 582 (XL) RESERVED, 39 BYTES
0395 LINBUF = $0247 583 (800) CHARACTER LINE BUFFER, 40 BYTES
0396 CHSALT = $026B 619 (XL) CHARACTER SET POINTER
0397 VSFLAG = $026C 620 (XL) FINE SCROLL TEMPORARY
0398 KEYDIS = $026D 621 (XL) KEYBOARD DISABLE
0399 FINE = $026E 622 (XL) FINE SCROLL FLAG
0400 GPRIOR = $026F 623 P/M PRIORITY AND GTIA MODES
0401 GTIA = $026F 623
0402 PADDL0 = $0270 624 (XL) 3 MORE PADDLES, (800) 6 MORE PADDLES
0403 STICK0 = $0278 632 (XL) 1 MORE STICK, (800) 3 MORE STICKS
0404 PTRIG0 = $027C 636 (XL) 3 MORE PADDLE TRIGGERS, (800) 6 MORE
0405 STRIG0 = $0284 644 (XL) 1 MORE STICK TRIGGER, (800) 3 MORE
0406 CSTAT = $0288 648 (800)
0407 WMODE = $0289 649
0408 BLIM = $028A 650
0409 ; $028B 651 5 SPARE BYTES
0410 NEWADR = $028E 654 (XL) LOADER RAM
0411 TXTROW = $0290 656
0412 TXTCOL = $0291 657
0413 TINDEX = $0293 659 TEXT INDEX
0414 TXTMSC = $0294 660
0415 TXTOLD = $0296 662 OLD ROW AND OLD COL FOR TEXT, 2 BYTES
0416 ; $0298 664 4 SPARE BYTES
0417 TMPX1 = $029C 668 (800)
0418 CRETRY = $029C 668 (XL) NUMBER OF COMMAND FRAME RETRIES
0419 SUBTMP = $029E 670
0420 HOLD2 = $029F 671
0421 DMASK = $02A0 672
0422 TMPLBT = $02A1 673
0423 ESCFLG = $02A2 674
0424 TABMAP = $02A3 675 15 BYTE BIT MAP FOR TAB SETTINGS
0425 LOGMAP = $02B2 690 4 BYTE LOGICAL LINE START BIT MAP
0426 INVFLG = $02B6 694
0427 FILFLG = $02B7 695 FILL DIRING DRAW FLAG
0428 TMPROW = $02B8 696
0429 TMPCOL = $02B9 697
0430 SCRFLG = $02BB 699 SCROLL FLAG
0431 HOLD4 = $02BC 700
0432 HOLD5 = $02BD 701 (800)
0433 DRETRY = $02BD 701 (XL) NUMBER OF DEVICE RETRIES
0434 SHFLOC = $02BE 702
0435 BOTSCR = $02BF 703 24 NORM, 4 SPLIT
0436 PCOLR0 = $02C0 704 3 MORE PLAYER COLOR REGISTERS
0437 COLOR0 = $02C4 708 4 MORE GRAPHICS COLOR REGISTERS
0438 ; $02C9 713 (800) 23 SPARE BYTES
0439 RUNADR = $02C9 713 (XL) LOADER VECTOR
0440 HIUSED = $02CB 715 (XL) LOADER VECTOR
0441 ZHIUSE = $02CD 717 (XL) LOADER VECTOR
0442 GBYTEA = $02CF 719 (XL) LOADER VECTOR
0443 LOADAD = $02D1 721 (XL) LOADER VECTOR
0444 ZLOADA = $02D3 723 (XL) LOADER VECTOR
0445 DSCTLN = $02D5 725 (XL) DISK SECTOR SIZ
0446 ACMISR = $02D7 727 (XL) RESERVED
0447 KRPDER = $02D9 729 (XL) KEY AUTO REPEAT DELAY
0448 KEYREP = $02DA 730 (XL) KEY AUTO REPEAT RATE
0449 NOCLIK = $02DB 731 (XL) KEY CLICK DISABLE
0450 HELPFG = $02DC 732 (XL) HELP KEY FLAG
0451 DMASAV = $02DD 733 (XL) SDMCTL (DMA) SAVE
0452 PBPNT = $02DE 734 (XL) PRINTER BUFFER POINTER
0453 PBUFSZ = $02DF 735 (XL) PRINTER BUFFER SIZE
0454 GLBABS = $02E0 736 GLOBAL VARIABLES, 4 SPARE BYTES
0455 RAMSIZ = $02E4 740 PERMANENT START OF ROM POINTER
0456 MEMTOP = $02E5 741 END OF FREE RAM
0457 MEMLO = $02E7 743
0458 ; $02E9 745 (800) SPARE
0459 HNDLOD = $02E9 745 (XL) HANDLER LOADER FLAG
0460 DVSTAT = $02EA 746 DEVICE STATUS BUFFER, 4 BYTES
0461 CBAUDL = $02EE 750 CASSETTE BAUD RATE, 2 BYTES
0462 CRSINH = $02F0 752 1 = INHIBIT CURSOR
0463 KEYDEL = $02F1 753 KEY DELAY AND RATE
0464 CH1 = $02F2 754
0465 CHACT = $02F3 755
0466 CHBAS = $02F4 756 CHARACTER SET POINTER
0467 NEWROW = $02F5 757 (XL) DRAW DESTINATION
0468 NEWCOL = $02F6 758 (XL) DRAW DESTINATION
0469 ROWINC = $02F8 760 (XL)
0470 COLINC = $02F9 761 (XL)
0471 CHAR = $02FA 762
0472 ATACHR = $02FB 763 ATASCII CHARACTER FOR CIO
0473 CH = $02FC 764
0474 FILDAT = $02FC 764 COLOR FOR SCREEN FILL
0475 DSPFLG = $02FE 766 DISPLAY CONTROL CHARACTERS FLAG
0476 SSFLAG = $02FF 767 DISPLAY START/STOP FLAFG
0477 ;
0478 ;
0479 ; PAGE 3
0480 ;
0481 ;
0482 ; RESIDENT DISK HANDLER/SIO INTERFACE
0483 ;
0484 DCB = $0300 768 DEVICE CONTROL BLOCK
0485 DDEVIC = $0300 768
0486 DUNIT = $0301 769
0487 DCOMND = $0302 770
0488 DSTATS = $0303 771
0489 DBUFLO = $0304 772
0490 DBUFHI = $0305 773
0491 DTIMLO = $0306 774
0492 DBYTLO = $0308 776
0493 DBYTHI = $0309 777
0494 DAUX1 = $030A 778
0495 DAUX2 = $030B 779
0496 TIMER1 = $030C 780 INITIAL TIMER VALUE
0497 ADDCOR = $030E 782 (800) ADDITION CORRECTION
0498 JMPERS = $030E 782 (XL) OPTION JUMPERS
0499 CASFLG = $030F 783 CASSETTE MODE WHEN SET
0500 TIMER2 = $0310 784 FINAL VALUE, TIMERS 1 & 2 DETERMINE BAUD
RATE
0501 TEMP1 = $0312 786
0502 TEMP2 = $0313 787 (XL)
0503 TEMP2 = $0314 788 (800)
0504 PTIMOT = $0314 788 (XL) PRINTER TIME OUT
0505 TEMP3 = $0315 789
0506 SAVIO = $0316 790 SAVE SERIAL IN DATA PORT
0507 TIMFLG = $0317 791 TIME OUT FLAG FOR BAUD RATE CORRECTION
0508 STACKP = $0318 792 SIO STACK POINTER SAVE
0509 TSTAT = $0319 793 TEMPORARY STATUS HOLDER
0510 HATABS = $031A 794 HANDLER ADDRESS TABLE, 38 BYTES
0511 MAXDEV = $0321 801 MAXIMUM HANDLER ADDRESS INDEX
0512 PUPBT1 = $033D 829 (XL) POWER-UP/RESET
0513 PUPBT2 = $033E 830 (XL) POWER-UP/RESET
0514 PUPBT3 = $033F 831 (XL) POWER-UP/RESET
0515 ;
0516 ;IOCB's
0517 ;
0518 IOCB = $0340 832
0519 ICHID = $0340 832
0520 ICDNO = $0341 833
0521 ICCOM = $0342 834
0522 ICSTA = $0343 835
0523 ICBAL = $0344 836
0524 ICBAH = $0345 837
0525 ICPTL = $0346 838
0526 ICPTH = $0347 839
0527 ICBLL = $0348 840
0528 ICBLH = $0349 841
0529 ICAX1 = $034A 842
0530 ICAX2 = $034B 843
0531 ICAX3 = $034C 844
0532 ICAX4 = $034D 845
0533 ICAX5 = $034E 846
0534 ICAX6 = $034F 847
0535 ; OTHER IOCB's, 112 BYTES
0536 PRNBUF = $03C0 960 PRINTER BUFFER, 40 BYTES
0537 ; $03E8 1000 (800) 21 SPARE BYTES
0538 SUPERF = $03E8 1000 (XL) SCREEN EDITOR
0539 CKEY = $03E9 1001 (XL) START KEY FLAG
0540 CASSBT = $03EA 1002 (XL) CASSETTE BOOT FLAG
0541 CARTCK = $03EB 1003 (XL) CARTRIDGE CHECKSUM
0542 ACMVAR = $03ED 1005 (XL) RESERVED, 6 BYTES
0543 MINTLK = $03F9 1017 (XL) RESERVED
0544 GINTLK = $03FA 1018 (XL) CARTRIDGE INTERLOCK
0545 CHLINK = $03FB 1019 (XL) HANDLER CHAIN, 2 BYTES
0546 CASBUF = $03FD 1021 CASSETTE BUFFER, 131 BYTES TO $047F
0547 ;
0548 ;
0549 ; PAGE 4
0550 ;
0551 ;
0552 USAREA = $0480 1152 128 SPARE BYTES
0553 ;
0554 ; SEE APPENDIX C FOR PAGES 4 AND 5 USAGE
0555 ;
0556 ;
0557 ;
0558 ;
0559 ; PAGE 5
0560 ;
0561 PAGE5 = $0500 1280 127 FREE BYTES
0562 ; $057E 1406 129 FREE BYTES IF FLOATING POINT ROUTINES
NOT USED
0563 ;
0564 ;FLOATING POINT NON-ZERO PAGE RAM, NEEDED ONLY IF FP IS USED
0565 ;
0566 LBPR1 = $057E 1406 LBUFF PREFIX 1
0567 LBPR2 = $05FE 1534 LBUFF PREFIX 2
0568 LBUFF = $0580 1408 LINE BUFFER
0569 PLYARG = $05E0 1504 POLYNOMIAL ARGUMENTS
0570 FPSCR = $05E6 1510 PLYARG+FPREC
0571 FPSCR1 = $05EC 1516 FPSCR+FPREC
0572 FSCR = $05E6 1510 =FPSCR
0573 FSCR1 = $05EC 1516 =FPSCR1
0574 LBFEND = $05FF 1535 END OF LBUFF
0575 ;
0576 ;
0577 ; PAGE 6
0578 ;
0579 ;
0580 PAGE6 = $0600 1536 256 FREE BYTES
0581 ;
0582 ;
0583 ; PAGE 7
0584 ;
0585 ;
0586 BOOTRG = $0700 1792 PROGRAM AREA
0587 ;
0588 ;
0589 ; UPPER ADDRESSES
0590 ;
0591 ;
0592 RITCAR = $8000 32768 RAM IF NO CARTRIDGE
0593 LFTCAR = $A000 40960 RAM IF NO CARTRIDGE
0594 C0PAGE = $C000 49152 (800) EMPTY, 4K BYTES
0595 C0PAGE = $C000 49152 (XL) 2K FREE RAM IF NO CARTRIDGE
0596 ; $C800 51200 (XL) START OF OS ROM
0597 CHORG2 = $CC00 52224 (XL) INTERNATIONAL CHARACTER SET
0598 ;
0599 ;
0600 ; HARDWARE REGISTERS
0601 ;
0602 ;
0603 ; SEE REGISTER LIST FOR MORE INFORMATION
0604 ;
0605 ;
0606 HPOSP0 = $D000 53248
0607 M0PF = $D000 53248
0608 SIZEP0 = $D008 53256
0609 M0PL = $D008 53256
0610 SIZEM = $D00C 53260
0611 GRAFP0 = $D00D 53261
0612 GRAFM = $D011 53265
0613 COLPM0 = $D012 53266
0614 COLPF0 = $D016 53270
0615 PRIOR = $D01B 53275
0616 GTIAR = $D01B 53275
0617 VDELAY = $D01C 53276
0618 GRACTL = $D01D 53277
0619 HITCLR = $D01E 53278
0620 CONSOL = $D01F 53279
0621 AUDF1 = $D200 53760
0622 AUDC1 = $D201 53761
0623 AUDCTL = $D208 53768
0624 RANDOM = $D20A 53770
0625 IRQEN = $D20E 53774
0626 SKCTL = $D20F 53775
0627 PORTA = $D300 54016
0628 PORTB = $D301 54017
0629 PACTL = $D302 54018
0630 PBCTL = $D303 54019
0631 DMACLT = $D400 54272
0632 DLISTL = $D402 54274
0633 HSCROL = $D404 54276
0634 VSCROL = $D405 54277
0635 CHBASE = $D409 54281
0636 WSYNC = $D40A 54282
0637 VCOUNT = $D40B 54283
0638 NMIEN = $D40E 54286
0639 ;
0640 ; FLOATING POINT MATH ROUTINES
0641 ;
0642 AFP = $D800 55296
0643 FASC = $D8E6 55526
0644 IFP = $D9AA 55722
0645 FPI = $D9D2 55762
0646 ZFR0 = $DA44 55876
0647 ZF1 = $DA46 55878
0648 FSUB = $DA60 55904
0649 FADD = $DA66 55910
0650 FMUL = $DADB 56027
0651 FDIV = $DB28 56104
0652 PLYEVL = $DD40 56640
0653 FLD0R = $DD89 56713
0654 FLD0P = $DD8D 56717
0655 FLD1R = $DD98 56728
0656 FLD1P = $DD9C 56732
0657 FSTOR = $DDA7 56743
0658 FSTOP = $DDAB 56747
0659 FMOVE = $DDB6 56758
0660 EXP = $DDC0 56768
0661 EXP10 = $DDCC 56780
0662 LOG = $DECD 57037
0663 LOG10 = $DED1 57041
0664 ;
0665 ;
0666 ; OPERATING SYSTEM
0667 ;
0668 ;
0669 ; MODULE ORIGIN TABLE
0670 ;
0671 CHORG = $E000 57344 CHARACTER SET, 1K
0672 VECTBL = $E400 58368 VECTOR TABLE
0673 VCTABL = $E480 58496 RAM VECTOR INITIAL VALUE TABLE
0674 CIOORG = $E4A6 58534 CIO HANDLER
0675 INTORG = $E6D5 59093 INTERRUPT HANDLER
0676 SIOORG = $E944 59716 SIO DRIVER
0677 DSKORT = $EDEA 60906 DISK HANDLER
0678 PRNORG = $EE78 61048 PRINTER HANDLER
0679 CASORG = $EE78 61048 CASSETTE HANDLER
0680 MONORG = $F0E3 61667 MONITOR/POWER UP MODULE
0681 KBDORG = $F3E4 62436 KEYBOARD/DISPLAY HANDLER
0682 ;
0683 ;
0684 ; VECTOR TABLE, CONTAINS ADDRESSES OF CIO ROUTINES IN THE
0685 ; FOLLOWING ORDER. THE ADDRESSES IN THE TABLE ARE TRUE ADDRESSES-1
0686 ;
0687 ; ADDRESS + 0 OPEN
0688 ; + 2 CLOSE
0689 ; + 4 GET
0690 ; + 6 PUT
0691 ; + 8 STATUS
0692 ; + A SPECIAL
0693 ; + C JMP TO INITIALIZATION
0694 ; + F NOT USED
0695 ;
0696 ;
0697 EDITRV = $E400 58368 EDITOR
0698 SCRENV = $E410 58384 SCREEN
0699 KEYBDV = $E420 58400 KEYBOARD
0700 PRINTV = $E430 58416 PRINTER
0701 CASETV = $E440 58432 CASSETTE
0702 ;
0703 ; ROM VECTORS
0704 ;
0705 DSKINV = $E453 58451
0706 CIOV = $E456 58454
0707 SIOV = $E459 58457
0708 SYSVBV = $E45F 58463
0709 VBIVAL = $E460 58464 ADR AT VVBLKI
0710 XITVBV = $E462 58466 EXIT VBI
0711 VBIXVL = $E463 58467 ADR AT VVBLKD
0712 BLKBDV = $E471 58481 MEMO PAD MODE
0713 WARMSV = $E474 58484
0714 COLDSV = $E477 58487
Craig Lisowski
(clisowsk@mcs.kent.edu)