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