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