;›; Defs for Atari OS. These defs were stolen from ALBUG's SYSMAC.SML.›; This file generates no code, just contains rom locations etc.›;››; VECTOR TABLE››EDITRV =$E400 ;EDITOR›SCRENV =$E410 ;TELEVISION SCREEN›KEYBDV =$E420 ;KEYBOARD›PRINTV =$E430 ;PRINTER›CASETV =$E440 ;CASSETTE››; JUMP VECTOR TABLE››DISKIV =$E450 ;DISK INITIALIZATION›DSKINV =$E453 ;DISK INTERFACE›CIOV =$E456 ;CIO ROUTINE›SIOV =$E459 ;SIO ROUTINE›SETVBV =$E45C ;SET VERTICAL BLANK VECTORS›SYSVBV =$E45F ;SYSTEM VERTICAL BLANK ROUTINE›XITVBV =$E462 ;EXIT VERTICAL BLANK ROUTINE›SIOINV =$E465 ;SIO INIT›SENDEV =$E468 ;SEND ENABLE ROUTINE›INTINV =$E46B ;INTERRUPT HANDLER INIT›CIOINV =$E46E ;CIO INIT›BLKBDV =$E471 ;BLACKBOARD MODE›WARMSV =$E474 ;WARM START ENTRY POINT›COLDSV =$E477 ;COLD START ENTRY POINT›RBLOKV =$E47D ;CASSETTE READ BLOCK VECTOR›DSOPIV =$E480 ;CASSETTE OPEN FOR INPUT VECTOR››; SOME USEFUL INTERNAL ROUTINES››;KGETCH =$F6E2 ;GET CHAR FROM KEYBOARD only on 800›EOUTCH =$F6A4 ;OUTPUT CHAR TO SCREEN›PUTLIN =$F385 ;OUTPUT LINE TO IOCB#0››; COMMAND CODES FOR IOCB››OPEN =$03 ;OPEN FOR INPUT/OUTPUT›GETREC =$05 ;GET RECORD (TEXT)›GETCHR =$07 ;GET CHARACTER(S)›PUTREC =$09 ;PUT RECORD (TEXT)›PUTCHR =$0B ;PUT CHARACTER(S)›CLOSE =$0C ;CLOSE DEVICE›STATIS =$0D ;STATUS REQUEST›SPECIL =$0E ;SPECIAL ENTRY COMMANDS››; SPECIAL ENTRY COMMANDS››DRAWLN =$11 ;DRAW LINE›FILLIN =$12 ;DRAW LINE WITH RIGHT FILL›RENAME =$20 ;RENAME DISK FILE›DELETE =$21 ;DELETE DISK FILE›FORMAT =$22 ;FORMAT DISK›LOCKFL =$23 ;LOCK FILE (READ ONLY)›UNLOCK =$24 ;UNLOCK FILE›POINT =$25 ;POINT SECTOR›NOTE =$26 ;NOTE SECTOR››CCIO =$28 ;CONCURRENT I/O MODE››IOCFRE =$FF ;IOCB "FREE"››; AUX1 VALUES FOR OPEN››APPEND =$01 ;OPEN FOR APPEND›DIRECT =$02 ;OPEN FOR DIRECTORY ACCESS›OPNIN =$04 ;OPEN FOR INPUT›OPNOT =$08 ;OPEN FOR OUTPUT›OPNINO =OPNIN!OPNOT ;OPEN FOR INPUT/OUTPUT›MXDMOD =$10 ;OPEN FOR MIXED MODE›INSCLR =$20 ;OPEN WITHOUT CLEARING SCREEN››; OS STATUS CODES››SUCCES =$01 ;SUCCESSFUL OPERATION›BRKABT =$80 ;(128) BREAK KEY ABORT›PRVOPN =$81 ;(129) IOCB ALREADY OPEN›NONDEV =$82 ;(130) NON-EX DEVICE›WRONLY =$83 ;(131) IOCB OPENED FOR WRITE ONLY›NVALID =$84 ;(132) INVALID COMMAND›NOTOPN =$85 ;(133) DEVICE OR FILE NOT OPEN›BADIOC =$86 ;(134) INVALID IOCB NUMBER›RDONLY =$87 ;(135) IOCB OPENED FOR READ ONLY›EOFERR =$88 ;(136) END OF FILE›TRNRCD =$89 ;(137) TRUNCATED RECORD›TIMOUT =$8A ;(138) DEVICE TIMEOUT›DNACK =$8B ;(139) DEVICE DOES NOT ACK COMMAND›FRMERR =$8C ;(140) SERIAL BUS FRAMING ERROR›CRSROR =$8D ;(141) CURSOR OUT OF RANGE›OVRRUN =$8E ;(142) SERIAL BUS DATA OVERRUN›CHKERR =$8F ;(143) SERIAL BUS CHECKSUM ERROR›DERROR =$90 ;(144) DEVICE ERROR (OPERATION INCOMPLETE)›BADMOD =$91 ;(145) BAD SCREEN MODE NUMBER›FNCNOT =$92 ;(146) FUNCTION NOT IN HANDLER›SCRMEM =$93 ;(147) INSUFFICIENT MEMORY FOR SCREEN MODE››; PAGE 0 LOCATIONS››LINZBS =$00 ;LINBUG STORAGE› ›; THESE LOCS ARE NOT CLEARED››CASINI =$02 ;CASSETTE INIT LOC›RAMLO =$04 ;RAM POINTER FOR MEM TEST›TRAMSZ =$06 ;TEMP LOC FOR RAM SIZE›TSTDAT =$07 ;RAM TEST DATA LOC››; CLEARED ON COLDSTART ONLY››WARMST =$08 ;WARM START FLAG›BOOTQ =$09 ;SUCCESSFUL BOOT FLAG›DOSVEC =$0A ;DOS START VECTOR›DOSINI =$0C ;DOS INIT ADDRESS›APPMHI =$0E ;APPLICATION MEM HI LIMIT››; CLEARED ON COLD OR WARM START››INTZBS =$10 ; START OF OS RAM CLEAR LOC => $7F›POKMSK =$10 ;SYSTEM MASK FOR POKEY IRQ ENABLE›BRKKEY =$11 ;BREAK KEY FLAG›RTCLOK =$12 ;REAL TIME CLOCK (60HZ OR 16.66666 MS)› ; 3 bytes; hi order, medium, low›BUFADR =$15 ;INDIRECT BUFFER ADDRESS REG›ICCOMT =$17 ;COMMAND FOR VECTOR HANDLER›DSKFMS =$18 ;DISK FILE MANAGER POINTER›DSKUTL =$1A ;DISK UTILITIES POINTER›PTIMOT =$1C ;PRINTER TIME OUT REGISTER›PBPNT =$1D ;PRINT BUFFER POINTER›PBUFSZ =$1E ;PRINT BUFFER SIZE›PTEMP =$1F ;TEMP REG›ZIOCB =$20 ;PAGE 0 I/O CONTROL BLOCK›IOCBSZ =16 ;NUMBER OF BYTES / IOCB›MAXIOC =8*IOCBSZ ;LENGTH OF IOCB AREA›IOCBAS =ZIOCB››ICHIDZ =$20 ;HANDLER INDEX NUMBER ($FF := IOCB FREE)›ICDNOZ =$21 ;DEVICE NUMBER (DRIVE NUMBER)›ICCOMZ =$22 ;COMMAND CODE›ICSTAZ =$23 ;STATUS OF LAST IOCB ACTION›ICBALZ =$24 ;BUFFER ADDRESS (LOW)›ICBAHZ =$25 ; " " (HIGH)›ICPTLZ =$26 ;PUT BYTE ROUTINE ADDRESS - 1›ICPTHZ =$27›ICBLLZ =$28 ;BUFFER LENGTH (LOW)›ICBLHZ =$29 ; " " (HIGH)›ICAX1Z =$2A ;AUX INFO›ICAX2Z =$2B›ICSPRZ =$2C ;SPARE BYTES (CIO LOCAL USE)›ICIDNO =ICSPRZ+2 ;IOCB LUMBER * 16›CIOCHR =ICSPRZ+3 ;CHARACTER BYTE FOR CURRENT OPERATION››OSSTATUS =$30 ;INTERNAL STATUS STORAGE›OSCHKSUM =$31 ;CHECKSUM (SINGLE BYTE SUM WITH CARRY)›BUNRLO =$32 ;POINTER TO DATA BUFFER (LO BYTE)›BUFRHI =$33 ;POINTER TO DATA BUFFER (HI BYTE)›BFENLO =$34 ;NEXT BYTE PAST END OF BUFFER (LO BYTE)›BNENHI =$35 ;NEXT BYTE PAST END OF BUFFER (HI BYTE)›CRETRY =$36 ;NUMBER OF COMMAND FRAM RETRIES›DRETRY =$39 ;NUMBER OF DEVICE RETRIES›BUFRFL =$38 ;DATA BUFFER FULL FLAG›RECVDN =$39 ;RECEIVE DONE FLAG›XMTDON =$3A ;XMIT DONE FLAG›CHKSNT =$3B ;CHECKSUM SENT FLAG›NOCKSM =$3C ;NO CHECKSUM FOLLOWS DATA FLAG››BPTR =$3D ;BUFFER POINTER (CASSETTE)›FTYPE =$3E ;FILE TYPE (SHORT IRG/LONG IRG)›FEOF =$3F ;END OF FILE FLAG (CASSETTE)›FREQ =$40 ;FREQ COUNTER FOR CONSOLE SPEAKER›SOUNDR =$41 ;NOISY I/O FLAG. (ZERO IS QUIET)›CRITIC =$42 ;CRITICAL CODE IF NON-ZERO)››FMSZPG =$43 ;DISK FILE MANAGER SYSTEM STORAGE (7 BYTES)››CKEY =$4A ;SET WHEN GAME START PRESSED›CASSBT =$4B ;CASSETTE BOOT FLAG›DSTAT =$4C ;DISPLAY STATUS›ATRACT =$4D ;ATTRACT MODE FLAG›DRKMSK =$4E ;DARK ATTRACT MASK›COLRSH =$4F ;ATTRACT COLOR SHIFTER (XOR'D WITH PLAYFIELD)››TMPCHR =$50 ;TEMP CHAR STORAGE (DISPLAY HANDLER)›HOLD1 =$51 ;TEMP STG (DISPLAY HANDLER)›LMARGN =$52 ;LEFT MARGIN›RMARGN =$53 ;RIGHT MARGIN›ROWCRS =$54 ;CURSOR COUNTERS›COLCRS =$55›DINDEX =$57 ;DISPLAY INDEX (VARIOUS QUANTS)›SAVMSC =$58›OLDROW =$5A ;PREVIOUS ROW/COL›OLDCOL =$5B›OLDCHR =$5D ;DATA UNDER CURSOR›OLDADR =$5E›NEWROW =$60 ;POINT DRAWS TO HERE›NEWCOL =$61›LOGCOL =$63 ;POINTS AT COLUMN IN LOGICAL LINE›ADRESS =$64 ;INDIRECT POINTER›MLTTMP =$66 ;MULTIPLY TEMP›OPNTMP =MLTTMP ;FIRST BYTE IS USED IN OPEN AS TEMP›SAVADR =$68›RAMTOP =$6A ;RAM SIZE DEFINED BY POWER ON LOGIC›BUFCNT =$6B ;BUFFER COUNT›BUFSTR =$6C ;EDITOR GETCH POINTER›BITMSK =$6E ;BIT MASK›SHFAMT =$6F ;OUTCHR SHIFT››ROWAC =$70 ;USED BY "DRAW"›COLAC =$72›ENDPT =$74›DELTAR =$76›DELTAC =$77›ROWINC =$79›COLINC =$7A›SWPFLG =$7B ;NON-0 IF TXT AND RAM SWAPPED›HOLDCH =$7C ;CH BEFORE CNTL & SHFT PROCESSING IN KGETCH›INSDAT =$7D ;INSERT CHAR SAVE›COUNTR =$7E ;DRAW COUNTER››;;; $80 TO $FF ARE RESERVED FOR USER APPLICATIONS››; PAGE 2 LOCATIONS››INTABS =$200 ;INTERRUPT TABLE›VDSLST =$200 ;DISPLAY LIST NMI VECTOR›VPRCED =$202 ;PROCEED LINE IRQ VECTOR›VINTER =$204 ;INTERRUPT LINE IRQ VECTOR›VBREAK =$206 ;"BRK" VECTOR›VKEYBD =$208 ;POKEY KEYBOARD IRQ VECTOR›VSERIN =$20A ;POKEY SERIAL INPUT READY›VSEROR =$20C ;POKEY SERIAL OUTPUT READY›VSEROC =$20E ;POKEY SERIAL OUTPUT DONE›VTIMR1 =$210 ;POKEY TIMER 1 IRQ›VTIMR2 =$212 ;POKEY TIMER 2 IRQ›VTIMR4 =$214 ;POKEY TIMER 4 IRQ (DO NOT USE)›VIMIRQ =$216 ;IMMEDIATE IRQ VECTOR›CDTMV1 =$218 ;COUNT DOWN TIMER 1›CDTMV2 =$21A ;COUNT DOWN TIMER 2›CDTMV3 =$21C ;COUNT DOWN TIMER 3›CDTMV4 =$21E ;COUNT DOWN TIMER 4›CDTMV5 =$220 ;COUNT DOWN TIMER 5›VVBLKI =$222 ;IMMEDIATE VERTICAL BLANK NMI VECTOR›VVBLKD =$224 ;DEFERRED VERTICAL BLANK NMI VECTOR›CDTMA1 =$226 ;COUNT DOWN TIMER 1 JSR ADDRESS›CDTMA2 =$228 ;COUNT DOWN TIMER 2 JSR ADDRESS›CDTMF3 =$22A ;COUNT DOWN TIMER 3 FLAG›SRTIMR =$22B ;SOFTWARE REPEAT TIMER›CDTMF4 =$22C ;COUNT DOWN TIMER 4 FLAG›INTEMP =$22D ;IAN'S TEMP (???)›CDTMF5 =$22E ;COUNT DOWN TIMER 5 FLAG›SDMCTL =$22F ;SAVE DMACTL REGISTER›DMACTL =$D400 ; the real DMA control reg›SDLSTL =$230 ;SAVE DISPLAY LIST (LOW)›SDLSTH =$231 ;SAVE DISPLAY LIST (HIGH)›SSKCTL =$232 ;SKCTL REGISTER RAM››LPENH =$234 ;LIGHT PEN HORIZ VALUE›LPENV =$235 ;LIGHT PEN VERT VALUE› ; ($236 - $239 SPARE)›CDEVIC =$23A ;COMMAND FRAME BUFFER - DEVICE›CCOMND =$23B ;COMMAND›CAUX1 =$23C ;COMMAND AUX BYTE 1›CAUX2 =$23D ;COMMAND AUX BYTE 2›TEMP =$23E ;YES›ERRFLG =$23F ;ERROR FLAG - ANY DEVICE ERROR EXCEPT TIMEOUT››DFLAGS =$240 ;DISK FLAGS FROM SECTOR ONE›DBSECT =$241 ;NUMBER OF DISK BOOT SECTORS›BOOTAD =$242 ;ADDRESS FOR DISK BOOT LOADER›COLDST =$244 ;COLDSTART FLAG (1 = DOING COLDSTART)› ;($245 SPARE)›DSKTIM =$246 ;DISK TIME OUT REG›LINBUF =$247 ;CHAR LINE BUFFER (40 BYTES)››GPRIOR =$26F ;GLOBAL PRIORITY CELL›PADDL0 =$270 ;POT 0 SHADOW›PADDL1 =$271 ;POT 1 SHADOW›PADDL2 =$272 ;POT 2 SHADOW›PADDL3 =$273 ;POT 3 SHADOW›PADDL4 =$274 ;POT 4 SHADOW›PADDL5 =$275 ;POT 5 SHADOW›PADDL6 =$276 ;POT 6 SHADOW›PADDL7 =$277 ;POT 7 SHADOW›STICK0 =$278 ;JOYSTICK 0 SHADOW›STICK1 =$279 ;JOYSTICK 1 SHADOW›STICK2 =$27A ;JOYSTICK 2 SHADOW›STICK3 =$27B ;JOYSTICK 3 SHADOW›PTRIG0 =$27C ;PADDLE 0 TRIGGER›PTRIG1 =$27D ;PADDLE 1 TRIGGER›PTRIG2 =$27E ;PADDLE 2 TRIGGER›PTRIG3 =$27F ;PADDLE 3 TRIGGER›PTRIG4 =$280 ;PADDLE 4 TRIGGER›PTRIG5 =$281 ;PADDLE 5 TRIGGER›PTRIG6 =$282 ;PADDLE 6 TRIGGER›PTRIG7 =$283 ;PADDLE 7 TRIGGER›STRIG0 =$284 ;JOYSTICK 0 TRIGGER›STRIG1 =$285 ;JOYSTICK 1 TRIGGER›STRIG2 =$286 ;JOYSTICK 2 TRIGGER›STRIG3 =$287 ;JOYSTICK 3 TRIGGER››CSTAT =$288 ;(UNUSED)›WMODE =$289 ;R/W FLAG FOR CASSETTE›BLIM =$28A ;BUFFER LIMIT (CASSETTE)› ;($28B - $28F SPARE)›TXTROW =$290 ;TEXT ROWCRS›TXTCOL =$291 ;TEXT ROWCOL›TINDEX =$293 ;TEXT INDEX›TXTMSC =$294 ;FOOLS CONVRT INTO NEW MSC›TXTOLD =$296 ;OLDROW & OLDCOL FOR TEXT (AND THEN SOME)›TMPX1 =$29C›HOLD3 =$29D›SUBTMP =$29E›HOLD2 =$29F›DMASK =$2A0›TMPLBT =$2A1›OSESCFLG =$2A2 ;ESCAPE FLAG›TABMAP =$2A3 ;TAB BUFFER›LOGMAP =$2B2 ;LOGICAL LINE START BIT MAP›INVFLG =$2B6 ;INVERSE VIDEO FLAG (ATARI KEY)›FILFLG =$2B7 ;RIGHT FILL FLAG FOR DRAW›TMPROW =$2B8›TMPCOL =$2B9›SCRFLG =$2BB ;SET IF SCROLL OCCURS›HOLD4 =$2BC ;MORE DRAW TEMPS›HOLD5 =$2BD›SHFLOK =$2BE ;SHIFT LOCK KEY›BOTSCR =$2BF ;BOTTOM OF SCREEN (24 NORM, 4 SPLIT)››PCOLR0 =$2C0 ;P0 COLOR›PCOLR1 =$2C1 ;P1 COLOR›PCOLR2 =$2C2 ;P2 COLOR›PCOLR3 =$2C3 ;P3 COLOR›COLOR0 =$2C4 ;COLOR 0›COLOR1 =$2C5›COLOR2 =$2C6›COLOR3 =$2C7›COLOR4 =$2C8 ;BACKGROUND› ;($2C9 - $2DF SPARE)›GLBABS =$2E0 ;GLOBAL VARIABLES› ;($2E0 - $2E3 SPARE)›RAMSIZ =$2E4 ;RAM SIZE (HI BYTE ONLY)›MEMTOP =$2E5 ;TOP OF AVAILABLE MEMORY›MEMLO =$2E7 ;BOTTOM OF AVAILABLE MEMORY› ;($2E9 SPARE)›DVSTAT =$2EA ;STATUS BUFFER›CBAUDL =$2EE ;CASSETTE BAUD RATE (LO BYTE)›CBAUDH =$2EF ; " " " (HI BYTE)›CRSINH =$2F0 ;CURSOR INHIBIT (00 = CURSOR ON)›KEYDEL =$2F1 ;KEY DELAY›CH1 =$2F2›CHACT =$2F3 ;CHACTL REGISTER (SHADOW)›CHBAS =$2F4 ;CHBAS REGISTER (SHADOW)› ;($2F5 - $2F9 SPARE)›OSCHAR =$2FA›ATACHR =$2FB ;ATASCII CHARACTER›CH =$2FC ;GLOBAL VARIABLE FOR KEYBOARD›FILDAT =$2FD ;RIGHT FILL DATA (DRAW)›DSPFLG =$2FE ;DISPLAY FLAG: DISP CONTROLS IF NON-ZERO›SSFLAG =$2FF ;START/STOP FLAG (CNTL-1) FOR PAGING››; PAGE 3 LOCATIONS››DCB =$300 ;DEVICE CONTROL BLOCK›DDEVIC =$300 ;BUS I.D. NUMBER›DUNIT =$301 ;UNIT NUMBER›DCOMND =$302 ;BUS COMMAND›DSTATS =$303 ;COMMAND TYPE/STATUS RETURN›DBUFLO =$304 ;DATA BUFFER POINTER›DBUFHI =$305 ; ...›DTIMLO =$306 ;DEVICE TIME OUT IN 1 SEC. UNITS›DUNUSE =$307 ;UNUSED›DBYTLO =$308 ;BYTE COUNT›DBYTHI =$309 ; ...›DAUX1 =$30A ;COMMAND AUXILLARY BYTES›DAUX2 =$30B ; ...››TIMER1 =$30C ;INITIAL TIMER VALUE›ADDCOR =$30E ;ADDITION CORRECTION›CASFLG =$30F ;CASSETTE MODE WHEN SET›TIMER2 =$310 ;FINAL TIME VALUE (USED TO COMPUTE BAUD RATE)›TEMP1 =$312 ;TEMP LOCATIONS›TEMP2 =$314 ; ...›TEMP3 =$315 ; ...›SAVIO =$316 ;SAVE SERIAL IN DATA PORT›TIMFLG =$317 ;TIME OUT FLAG FOR BAUD RATE CORRECTION›STACKP =$318 ;SIO STACK POINTER SAVE LOC›TSTAT =$319 ;TEMP STATUS LOC››HATABS =$31A ;HANDLER ADDRESS TABLE ›MAXDEV =$21 ;MAXIMUM HANDLER ADDRESS INDEX››; IOCB OFFSETS ››IOCB =$340 ;I/O CONTROL BLOCKS›ICHID =$340 ;HANDLER INDEX ($FF = FREE)›ICDNO =$341 ;DEVICE NUMBER (DRIVE NUMBER)›ICCOM =$342 ;COMMAND CODE›ICSTA =$343 ;STATUS›ICBAL =$344 ;BUFFER ADDRESS›ICBAH =$345 ; ...›ICPTL =$346 ;PUT BYTE ROUTINE ADDRESS - 1›ICPTH =$347 ; ...›ICBLL =$348 ;BUFFER LENGTH›ICBLH =$349 ; ...›ICAX1 =$34A ;AUXILLARY INFO›ICAX2 =$34B ; ...›ICSPR =$34C ;4 SPARE BYTES››PRNBUF =$3C0 ;PRINTER BUFFER› ;($3EA - $3FC SPARE)››; PAGE 4 LOCATIONS››CASBUF =$3FD ;CASSETTE BUFFER››; USER AREA STARTS HERE AND GOES TO THE END OF PAGE 5››USAREA =$480››;›; Other random stuff›;›CONSOL = $D01F ; console switches start, select, option›;ATASCII CHARACTER DEFS››ATCLR =$7D ;CLEAR SCREEN CHARACTER›ATRUB =$7E ;BACK SPACE (RUBOUT)›ATTAB =$7F ;TAB›ATEOL =$9B ;END-OF-LINE›ATDELL =$9C ; Delete line›ATBEL =$FD ;CONSOLE BELL›ATURW =$1C ;UP-ARROW›ATDRW =$1D ;DOWN-ARROW›ATLRW =$1E ;LEFT-ARROW›ATRRW =$1F ;RIGHT-ARROW››; USEFUL VALUES››LEDGE =2 ;LMARGN'S INITIAL VALUE›REDGE =39 ;RMARGN'S INITIAL VALUE››;›; End of SYSMAC.SML›;----------------------------------------------------------------›;›; defs from sysequ.asm›;›;›; EXECUTE FLAG DEFINES›;›EXCYES = $80 ; EXECUTE IN PROGRESS›EXCSCR = $40 ; ECHO EXCUTE INPUT TO SCREEN›EXCNEW = $10 ; EXECUTE START UP MODE›EXCSUP = $20 ; COLD START EXEC FLAG›;›; MISC ADDRESS EQUATES›;›CPALOC = $0A ; POINTER TO CP/A›WARMST = $08 ; WARM START (0=COLD)›MEMLO = $2E7 ; AVAIL MEM (LOW) PTR›MEMTOP = $2E5 ; AVAIL MEM (HIGH) PTR›APPMHI = $0E ; UPPER LIMIT OF APPLICATION MEMORY›INITADR = $2E2 ; ATARI LOAD/INIT ADR›GOADR = $2E0 ; ATARI LOAD/GO ADR›CARTLOC = $BFFA ; CARTRIDGE RUN LOCATION›CIO = $E456 ; CIO ENTRY ADR›EOL = $9B ; END OF LINE CHAR›;›;›; CP/A FUNCTION AND VALUE DISPLACEMSNT›; (INDIRECT THROUGH CPALOC)›; IE. (CPALOC),Y›;›CPGNFN = 3 ; GET NEXT FILE NAME›CPDFDV = $07 ; DEFAULT DRIVE (3 BYTES)›CPBUFP = $0A ; CMD BUFF NEXT CHAR POINTR (1 BYTE)›CPEXFL = $0B ; EXECUTE FLAG›CPEXFN = $0C ; EXECUTE FILE NAME (16 BYTES)›CPEXNP = $1C ; EXECUTE NOTE/POINT VALUES›CPFNAM = $21 ; FILENAME BUFFER›RUNLOC = $3D ; CP/A LOAD/RUN ADR›CPCMDB = $3F ; COMMAND BUFFER (60 BYTES)›;CPCMDGO = -6 ; CP SUBROUTINE VECTOR›;›;----------------------------------------------------------------›;›; Floating point defs›;›fr0 = $D4 ; float reg 0›fr1 = $E0 ; float reg 1›flptr = $FC ; pointer to a fp num›inbuff = $F3 ; pointer to ascii num››ifp = $D9AA ; int in fr0 -> float in fr0›fpi = $D9D2 ; float in fr0 -> int in fr0›fasc = $D8E6 ; fr0 -> (inbuff)›fmove = $DDB6 ; fr0 -> fr1›fadd = $DA66 ; fr0 + fr1 -> fr0›fsub = $DA60 ; fr0 - fr1 -> fr0›fmul = $DADB ; fr0 * fr1 -> fr0›fdiv = $DB28 ; fr0 / fr1 -> fr0›fld1r = $DD98 ; fr1 <- (XY)››; end of atari.m65›