!!!Synapse Assembler Atari 800 OS Equates
General Information
Assembler: SynAssembler \\
Published: Synapse JUNE 1979 \\
The File can be used in the SynAssembler. It can also be used as a reference to the Atari OS System Equates
{{{
00010 *******************************
00020 * SUPPORTED LOCATIONS *
00030 * IN THE ATARI *
00040 * OPERATING SYSTEM *
00050 * JUNE 1979 *
00060 *******************************
00070 .LI OFF
00080 *******************************
00090 * MODULE ORIGIN TABLE *
00100 *******************************
00110 CHRORG .EQ $E000 CHARACTER SET
00120 VECTBL .EQ $E400 VECTOR TABLE
00130 VCTABL .EQ $E480 RAM VECTOR INITIAL VALUE
00140 CIOORG .EQ $E4A6 CENTRAL I/O HANDLER
00150 INTORG .EQ $E6D5 INTERUPT HANDLER
00160 SIOORG .EQ $E944 SERIAL I/O HANDLER
00170 DSKORG .EQ $EDEA DISK HANDLER
00180 PRNORG .EQ $EE78 PRINTER HANDLER
00190 CASORG .EQ $EF41 CASSETTE HANDLER
00200 MONORG .EQ $F0E3 MONITOR/POWER UP MODULE
00210 KBDORG .EQ $F3E4 KEYBOARD/DISPLAY HANDLER
00220 *******************************
00230 * VECTOR TABLE *
00240 *******************************
00250 EDITRV .EQ $E400 EDITOR
00260 SCRENV .EQ $E410 SCREEN
00270 KEYBDV .EQ $E420 KEYBOARD
00280 PRINTV .EQ $E430 PRINTER
00290 CASETV .EQ $E440 CASSETTE
00300 *******************************
00310 * JUMP VECTOR TABLE *
00320 *******************************
00330 DISKIV .EQ $E450 DISK INITIALIZATION
00340 DISKIN .EQ $E453 DISK INTERFACE
00350 CIOV .EQ $E456 CENTRAL I/O ROUTINE
00360 SIOV .EQ $E459 SERIAL I/O ROUTINE
00370 SETVBV .EQ $E45C SET SYSTEM TIMERS ROUTINE
00380 SYSBVB .EQ $E45F SYSTEM VBLANK CALCULATION
00390 XITVBV .EQ $E462 EXIT VBLANK CALCULATION
00400 SIOINV .EQ $E465 SERIAL I/O INIT
00410 SENDEV .EQ $E468 SEND ENABLE ROUTINE
00420 INTINV .EQ $E46B INTERUPT INIT
00430 CIOINV .EQ $E46E CENTRAL I/O INIT
00440 BLKBDV .EQ $E471 BLACKBOARD MODE
00450 WARMSV .EQ $E474 WARM START
00460 COLDSV .EQ $E477 COLD START
00470 RVLOKV .EQ $E47A CASSETTE READ BLOCK
00480 CSOPIV .EQ $E47D CASSETTE OPEN FOR INPUT
00490 *******************************
00500 * ZERO PAGE ASSIGNMENTS *
00510 *******************************
00520 LINZBS .EQ $0 MONITOR RAM
00530 CASINI .EQ $2 CASSETTE INIT LOCATION
00540 RAMLO .EQ $4 POINTER FOR MEMORY TEST
00550 TRAMSZ .EQ $6 REGISTER FOR RAM SIZE
00560 TSTDAT .EQ $7 TEST DATA REGISTER
00570 WARMST .EQ $8 WARM STAT FLAG
00580 BOOT .EQ $9 SUCCESSFUL BOOT FLAG
00590 DOSVEC .EQ $A DISK START VECTOR
00600 DOSINI .EQ $C DISK INIT ADDRESS
00610 APPMHI .EQ $E USER MEMORY HI LIMIT
00620 POKMSK .EQ $10 MASK FOR POKEY IRQ ENABLE
00630 BRKKEY .EQ $11 BREAK KEY FLAG
00640 RTCLOK .EQ $12 REAL TIME CLOCK
00650 BUFADR .EQ $15 INDIRECT BUFFER ADDRESS REGISTER
00660 ICCOMT .EQ $17 COMMAND FOR VECTOR
00670 DSKFMS .EQ $18 FILE MANAGER POINTER
00680 DSKUTL .EQ $1A DISK UTILITIES POINTER
00690 PTIMOT .EQ $1C PRINTER TIMEOUT REG.
00700 PBPNT .EQ $1D PRINTER BUFFER POINTER
00710 PBUFSZ .EQ $1E PRINTER BUFFER SIZE
00720 PTEMP .EQ $1F PRINTER TEMP REGISTER
00730 ZIOCB .EQ $20 ZERO PAGE IOCB
00740 IOCBSZ .EQ $10 NUMBER OF BYTES PER IOCB
00750
00760 ICHIDZ .EQ $20 HANDLER INDEX NUMBER
00770 ICDNOZ .EQ $21 DEVICE NUMBER
00780 ICCOMZ .EQ $22 COMMAND CODE
00790 ICSTAZ .EQ $23 STATUS
00800 ICBALZ .EQ $24 BUFFER ADDRESS LOW
00810 ICBAHZ .EQ $25 BUFFER ADDRESS HIGH
00820 ICPTLZ .EQ $26 PUT LOW
00830 ICPTHZ .EQ $27 PUT HIGH
00840 ICBLLZ .EQ $28 BUFFER LENGTH LOW
00850 ICBLHZ .EQ $29 BUFFER LENGTH HIGH
00860 ICAX1Z .EQ $2A AUX1
00870 ICAX2Z .EQ $2B AUX2
00880 ICIDNO .EQ $2E ICOB NUMBER
00890 CIOCHR .EQ $2F CHR FOR CURRENT OPERATION
00900 STATUS .EQ $30 STATUS STORAGE
00910 CHKSUM .EQ $31
00920 BUFRLO .EQ $32 DATA BUFFER POINTER LOW
00930 BUFRHI .EQ $33 DATA BUFFER POINTER HIGH
00940 BFENLO .EQ $34 BYTE PAST END BUFFER LOW
00950 BFENHI .EQ $35 BYTE PAST END BUFFER HIGH
00960 CRETRY .EQ $36 NUMBER OF COMMAND FRAME RETRIES
00970 DRETRY .EQ $37 DEVICE RETRIES
00980 BUFREF .EQ $38 DATA BUFFER FULL FLAG
00990 RECVDN .EQ $39 DONE FLAG
01000 XMTDON .EQ $3A TRANSMIT DONE FLAG
01010 CHKSNT .EQ $3B CHECKSUM SENT FLAG
01020 NOCKSM .EQ $3C NO CHECKSUM DATA FLAG
01030
01040 BPTR .EQ $3D CASSETTE DATA BYTE POINTER
01050 FTYPE .EQ $3E INTERRECORD GAP TYPE
01060 FEOF .EQ $3F CASSETTE EOF FLAG
01070 FREQ .EQ $40 BEEP COUNT
01080 SOUNDR .EQ $41 NOISY I/O FLAG
01090 CRITIC .EQ $42 CRITICAL SECTION ON NMI
01100 FMSZPO .EQ $43 FMS 0 PAGE
01110 CKEY .EQ $4A FLAG GAME START
01120 CASSBT .EQ $4B CASSETTE BOOT FLAG
01130 DSTAT .EQ $4C DISPLAY STATUS
01140 ATRACT .EQ $4D ATRACT MODE FLAG
01150 DRKMSK .EQ $4E DARK ATTRACT MASK
01160 COLRSH .EQ $4F ATTRACT COLOR SHIFTER
01170 TMPCHR .EQ $50 TEMP FOR SCREEN HANDLER
01180 HOLD1 .EQ $51 TEMP FOR SCREEN HANDLER
01190 LMARGN .EQ $52 LEFT MARGIN
01200 RMARGN .EQ $53 RIGHT MARGIN
01210 ROWCRS .EQ $54 CURSOR ROW NUMBER
01220 COLCRS .EQ $55 CURSOR COLUMN NUMBER
01230 DINDEX .EQ $57 CURRENT DISPLAY MODE
01240 SAVMSC .EQ $58 LOWEST ADDRESS OF SCREEN MEMORY
01250 OLDROW .EQ $5A USED FOR FILL COMMAND
01260 OLDCOL .EQ $5B USED FOR FILL COMMAND
01270 OLDCHR .EQ $5D CHARACTER UNDER CURSOR
01280 OLDADR .EQ $5E ADDRESS OF CHARACTER UNDER CURSOR
01290 NEWROW .EQ $60 DESTINATION ROW OF DRAWTO
01300 NEWCOL .EQ $61 DESTINATION COLUMN OF DRAWTO
01310 LOGCOL .EQ $63 COLUMN IN LOGICAL LINE
01320 ADRESS .EQ $64 TEMPORARY STORAGE
01330 MLTTMP .EQ $66
01340 SAVADR .EQ $68
01350 RAMTOP .EQ $6A RAM SIZE ON POWER UP
01360 BUFCNT .EQ $6B CURRENT LOGICAL LINE SIZE
01370 BUFSTR .EQ $6C EDIT GET CHR POINTER
01380 BITMSK .EQ $6E
01390 SHFAMT .EQ $6F
01400 ROWAC .EQ $70
01410 COLAC .EQ $72
01420 ENDPT .EQ $74
01430 DELTAR .EQ $76
01440 DELTAC .EQ $77
01450 ROWINC .EQ $79
01460 COLINC .EQ $7A
01470 SWPFLG .EQ $7B IF TEXT AND RAM IS SWAPPED
01480 HOLDCH .EQ $7C CNTL&SHIFT CHR TEMP
01490 INSDAT .EQ $7D
01500 COUNTR .EQ $7E
01510 *
01525 *******************************
01530 * 80-FF USER AND FP WORK SPACE*
01535 *******************************
01540 *
01550 *******************************
01570 * PAGE TWO RAM ASSIGNMENTS *
01580 *******************************
01600 VDSLST .EQ $200 DISPLAY LIST POINTER
01610 VPRCED .EQ $202 PROCEED LINE IRQ
01620 VINTER .EQ $204 INTERUPT LINE IRQ
01630 VBREAK .EQ $206 BRK INSTRUCTION IRQ VECTOR
01640 VKEYVD .EQ $208 POKEY KEYBOARD IRQ
01650 VSERIN .EQ $20A POKEY SERIAL READY INPUT
01660 VSEROR .EQ $20C POKEY SERIAL READY OUTPUT
01670 VSEROC .EQ $20E POKEY SERIAL COMPLETE IRQ
01680 VTIMR1 .EQ $210 POKEY TIMER 1 IRQ
01690 VTIMR2 .EQ $212 POKEY TIMER 2 IRQ
01700 VTIMR4 .EQ $214 POKEY TIMER 4 IRQ
01710 VIMIRQ .EQ $216 IMMEDIATE IRQ VECTOR
01720 CDTMV1 .EQ $218 COUNT DOWN TIMER 1
01730 CDTMV2 .EQ $21A COUNT DOWN TIMER 2
01740 CDTMV3 .EQ $21C COUNT DOWN TIMER 3
01750 CDTMV4 .EQ $21E COUNT DOWN TIMER 4
01760 CDTMV5 .EQ $220 COUNT DOWN TIMER 5
01770 VVBLKI .EQ $222 IMMEDIATE VBLANK IRQ
01780 VVBLKD .EQ $224 DEFERRED VBLANK IRQ
01790 SRTIMR .EQ $22B REPEAT TIMER
01800 SDMCTL .EQ $22F SAVE DMA CONTROL REGISTER
01810 SDLSTL .EQ $230 SAVE DISPLAY LIST LOW BYTE
01820 SDLSTH .EQ $231 SAVE DISPLAY LIST HI
01830 LPENH .EQ $234 LIGHT PEN HORZONTAL
01840 LPENV .EQ $235 LIGHT PEN VERTICAL
01850 CDEVIC .EQ $23A COMMAND FRAME BUFFER DEVICE
01860 CCOMHD .EQ $23B COMMAND
01870 CAUX1 .EQ $23C
01880 CAUX2 .EQ $23D
01890 DBSECT .EQ $241 NUMBER OF BOOT SECTORS
01900 BOOTAD .EQ $242 ADDRESS OF BOOT LOAD
01910 COLDST .EQ $244 COLD START FLAG
01920 DSKTIM .EQ $246 DISK TIME OUT REGISTER
01930 LINBUF .EQ $247 40 CHARACTER LINE BUFFER
01940 GPRIOR .EQ $26F GLOBAL PRIORITY REGISTER
01950 *******************************
01960 * USER I/O PORT AREA *
01970 *******************************
01980 PADDL0 .EQ $270 PADDLE 0
01990 PADDL1 .EQ $271 PADDLE 1
02000 PADDL2 .EQ $272 PADDLE 2
02010 PADDL3 .EQ $273 PADDLE 3
02020 PADDL4 .EQ $274 PADDLE 4
02030 PADDL5 .EQ $275 PADDLE 5
02040 PADDL6 .EQ $276 PADDLE 6
02050 PADDL7 .EQ $277 PADDLE 7
02060 STICK0 .EQ $278 JOYSTICK 0
02070 STICK1 .EQ $279 JOYSTICK 1
02080 STICK2 .EQ $27A JOYSTICK 2
02090 STICK3 .EQ $27B JOYSTICK 3
02100 PTRIG0 .EQ $27C PADDLE TRIGGER 0
02110 PTRIG1 .EQ $27D PADDLE TRIGGER 1
02120 PTRIG2 .EQ $27E PADDLE TRIGGER 2
02130 PTRIG3 .EQ $27F PADDLE TRIGGER 3
02140 PTRIG4 .EQ $280 PADDLE TRIGGER 4
02150 PTRIG5 .EQ $281 PADDLE TRIGGER 5
02160 PTRIG6 .EQ $282 PADDLE TRIGGER 6
02170 PTRIG7 .EQ $283 PADDLE TRIGGER 7
02180 STRIG0 .EQ $284 JOYSTICK TRIGGER 0
02190 STRIG1 .EQ $285 JOYSTICK TRIGGER 1
02200 STRIG2 .EQ $286 JOYSTICK TRIGGER 2
02210 STRIG3 .EQ $287 JOYSTICK TRIGGER 3
02220
02230 TXTROW .EQ $290 TEXT ROW
02240 TXTCOL .EQ $291 TEXT COLUMN
02250 TINDEX .EQ $293 TEXT INDEX
02260 BOTSCR .EQ $2BF BOTTOM OF SCREEN
02270 PCOLR0 .EQ $2C0 PLAYER 0 COLOR
02280 PCOLR1 .EQ $2C1 PLAYER 1 COLOR
02290 PCOLR2 .EQ $2C2 PLAYER 2 COLOR
02300 PCOLR3 .EQ $2C3 PLAYER 3 COLOR
02310 COLOR0 .EQ $2C4 COLOR REGISTER 0
02320 COLOR1 .EQ $2C5 COLOR REGISTER 1
02330 COLOR2 .EQ $2C6 COLOR REGISTER 2
02340 COLOR3 .EQ $2C7 COLOR REGISTER 3
02350 COLOR4 .EQ $2C8 COLOR REGISTER 4
02360 RAMSIZ .EQ $2E4 RAM SIZE HIGH BYTE ONLY
02370 MEMTOP .EQ $2E5 TOP OF USER MEMORY
02380 MEMLO .EQ $2E7 BOTTOM OF USER MEMORY
02390 DVSTAT .EQ $2EA
02400 CBAUDL .EQ $2EE CASSETTE BAUD RATE LOW
02410 CBAUDH .EQ $2EF CASSETTE BAUD RATE HI
02420 CRSINH .EQ $2F0 CURSOR INHIBIT
02430 KEYDEL .EQ $2F1 KEY DELAY
02440 CHACT .EQ $2F3 CHARACTER CONTROL REGISTER
02450 CHBAS .EQ $2F4 CHARACTER BASE REGISTER
02460 CHAR .EQ $2FA
02470 ATACHR .EQ $2FB ATASCII CHARACTER
02480 CH .EQ $2FC GLOBAL VARIABLE FROM KEYBOARD
02490 FILDAT .EQ $2FD COLOR FOR FILL COMMAND
02500 DSPFLG .EQ $2FE DISPLAY FLAG
02510 SSFLAG .EQ $2FF START/STOP FLAG FOR PAGING
02520 *******************************
02530 * PAGE THREE RAM ASSIGNMENTS *
02540 *******************************
02550 .OR $300
02560 DCB .EQ *
02570 DDEVIC .BS 1
02580 DUNIT .BS 1 DISK DEVICE NUMBER
02590 DCOMND .BS 1 DISK COMMAND
02600 DSTATS .BS 1 DISK STATUS
02610 DBUFLO .BS 1 DISK BUFFER LOW
02620 DBUFHI .BS 1 DISK BUFFER HIGH
02630 DTIMLO .BS 1 DISK TIMEOUT VALUE
02640 DUNUSE .BS 1
02650 DBYTLO .BS 1 NUMBER OF BYTES TRANSFERRED LOW
02660 DBYTHI .BS 1 NUMBER OF BYTES TRANSFERRED HIGH
02670 DAUX1 .BS 1
02680 DAUX2 .BS 1
02690 .OR $340
02700 IOCB .EQ *
02710 ICHID .BS 1
02720 ICDNO .BS 1
02730 ICCOM .BS 1
02740 ICSTA .BS 1
02750 ICBAL .BS 1
02760 ICBAH .BS 1
02770 ICPTL .BS 1
02780 ICPTH .BS 1
02790 ICBLL .BS 1
02800 ICBLH .BS 1
02810 ICAX1 .BS 1
02820 ICAX2 .BS 1
02830 ICSPR .BS 4
02840
02850 *******************************
02860 * BCD FLOATING POINT *
02870 * SUBROUTINES *
02880 *******************************
02900
02910 FPREC .EQ 6 :F.P. PRECISION # OF BYTES
02920
02930 AFP .EQ $D800 ASCII->F.P.
02940 FASC .EQ $D8E6 F.P.->ASCII
02950 IFP .EQ $D9AA INTERGER->F.P.
02960 * 0-FFFF (LSB,MSB) IN FR0,FR0
02970 FPI .EQ $D9D2 F.P.->INTEGER FR0->FR0,FR0
02980 FSUB .EQ $DA60 FR0<-FR0-FR1,CARRY
02990 FADD .EQ $DA66 FR0<-FR0+FR1,CARRY
03000 FMUL .EQ $DADB FR0<-FR0*FR1,CARRY
03010 FDIV .EQ $DB28 FR0<-FR0/FR1,CARRY
03020 FLD0R .EQ $DD89 F.P. LOAD REG0 FR0<-(X,Y)
03030 FLD0P .EQ $DD8D F.P. LOAD REG0 FR0<-(FLPTR
03040 FLD1R .EQ $DD98 F.P. LOAD REG1 FR1<-(X,Y)
03050 FLD1P .EQ $DD9C F.P. LOAD REG1 FR1<-(FLPTR
03060 FST0R .EQ $DDA7 F.P. STORE REG0 (X,Y)<-FR0
03070 FST0P .EQ $DDAB F.P. STORE REG0 (FLPTR)<-FR
03080 FMOVE .EQ $DDB6 FR1<-FR0
03090 PLYEVL .EQ $DD40
03100 EXP .EQ $DDC0 FR0<- E**FR0
03110 EXP10 .EQ $DDCC FR0<- 10**FR0 ,CARR
03120 LOG .EQ $DECD FR0<- LN(FR0)
03130 LOG10 .EQ $DED1 FR0<- LOG10(FR0) ,CARR
03140 *******************************
03150 * F.P. WORK SPACE *
03160 *******************************
03170 FR0 .EQ $D4
03180 FRE .EQ $DA
03190 FR1 .EQ $E0
03200 FR2 .EQ $E6
03210 FRX .EQ $EC
03220 EEXP .EQ $ED VALUE OF E
03230 NSIGN .EQ $EE SIGN OF #
03240 ESIGN .EQ $EF SIGN OF EXPONENT
03250 FCHFLG .EQ $F0
03260 DIGRT .EQ $F1 # OF DIGITS RIGHT OF DECIMAL PT.
03270 CIX .EQ $F2
03280 ZTEMP1 .EQ $F5
03290 ZTEMP4 .EQ $F7
03300 ZTEMP3 .EQ $F9
03310 DEGFLG .EQ $FB 0 RAD 6 DEG
03320 FLPTR .EQ $FC POINTER TO USER FP NUMBER
03330 FPTR2 .EQ $FE
03340
}}}