ATARI 800 EQUATE LISTING
This listing is based on the original release of Operating System,
version A. The vectors shown here were not changed in version B.
New equates for XL and XE models are included and noted. Changes
from version B to XL/XE are also noted.
Most of the equate names given below are the official Atari
names. They are in common use but are not mandatory.
{{{
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
}}}