📄 atari.inc
字号:
FRMADR = $68 ;##rev2## 2-byte source addressRAMTOP = $6A ;RAM SIZE DEFINED BY POWER ON LOGICBUFCNT = $6B ;BUFFER COUNTBUFSTR = $6C ;EDITOR GETCH POINTERBITMSK = $6E ;BIT MASKSHFAMT = $6F ;1-byte shift amount for pixel justifucationROWAC = $70 ;2-byte draw working rowCOLAC = $72 ;2-byte draw working columnENDPT = $74 ;2-byte end pointDELTAR = $76 ;1-byte row differenceDELTAC = $77 ;2-byte column differenceKEYDEF = $79 ;##1200xl## 2-byte key definition table address;ROWINC = $79 ;##old##;COLINC = $7A ;##old##SWPFLG = $7B ;NON-0 1F TXT AND REGULAR RAM IS SWAPPEDHOLDCH = $7C ;CH IS MOVED HERE IN KGETCH BEFORE CNTL & SHINSDAT = $7D ;1-byte temporaryCOUNTR = $7E ;2-byte draw iteration count; Floating Point Package Page Zero Address EquatesFR0 = $D4 ;6-byte register 0FR0M = $D5 ;##rev2## 5-byte register 0 mantissaQTEMP = $D9 ;##rev2## 1-byte temporaryFRE = $DA ;6-byte (internal) register EFR1 = $E0 ;FP REG1FR1M = $E1 ;##rev2## 5-byte register 1 mantissaFR2 = $E6 ;6-byte (internal) register 2FRX = $EC ;1-byte temporaryEEXP = $ED ;VALUE OF EFRSIGN = $EE ;##rev2## 1-byte floating point signNSIGN = $EE ;SIGN OF #PLYCNT = $EF ;##rev2## 1-byte polynomial degreeESIGN = $EF ;SIGN OF EXPONENTSGNFLG = $F0 ;##rev2## 1-byte sign flagFCHRFLG = $F0 ;1ST CHAR FLAGXFMFLG = $F1 ;##rev2## 1-byte transform flagDIGRT = $F1 ;# OF DIGITS RIGHT OF DECIMALCIX = $F2 ;CURRENT INPUT INDEXINBUFF = $F3 ;POINTS TO USER'S LINE INPUT BUFFERZTEMP1 = $F5 ;2-byte temporaryZTEMP4 = $F7 ;2-byte temporaryZTEMP3 = $F9 ;2-byte temporary;DEGFLG = $FB ;##old## same as RADFLG;RADFLG = $FB ;##old## 0=RADIANS, 6=DEGREESFLPTR = $FC ;2-byte floating point number pointerFPTR2 = $FE ;2-byte floating point number pointer;-------------------------------------------------------------------------; Page Two Address Equates;-------------------------------------------------------------------------INTABS = $0200 ;INTERRUPT RAMVDSLST = $0200 ;DISPLAY LIST NMI VECTORVPRCED = $0202 ;PROCEED LINE IRQ VECTORVINTER = $0204 ;INTERRUPT LINE IRQ VECTORVBREAK = $0206 ;SOFTWARE BREAK (00) INSTRUCTION IRQ VECTORVKEYBD = $0208 ;POKEY KEYBOARD IRQ VECTORVSERIN = $020A ;POKEY SERIAL INPUT READY IRQVSEROR = $020C ;POKEY SERIAL OUTPUT READY IRQVSEROC = $020E ;POKEY SERIAL OUTPUT COMPLETE IRQVTIMR1 = $0210 ;POKEY TIMER 1 IRGVTIMR2 = $0212 ;POKEY TIMER 2 IRGVTIMR4 = $0214 ;POKEY TIMER 4 IRGVIMIRQ = $0216 ;IMMEDIATE IRG VECTORCDTMV1 = $0218 ;COUNT DOWN TIMER 1CDTMV2 = $021A ;COUNT DOWN TIMER 2CDTMV3 = $021C ;COUNT DOWN TIMER 3CDTMV4 = $021E ;COUNT DOWN TIMER 4CDTMV5 = $0220 ;COUNT DOWN TIMER 5VVBLKI = $0222 ;IMMEDIATE VERTICAL BLANK NMI VECTORVVBLKD = $0224 ;DEFERRED VERTICAL BLANK NMI VECTORCDTMA1 = $0226 ;COUNT DOWN TIMER 1 JSR ADDRESSCDTMA2 = $0228 ;COUNT DOWN TIMER 2 JSR ADDRESSCDTMF3 = $022A ;COUNT DOWN TIMER 3 FLAGSRTIMR = $022B ;SOFTWARE REPEAT TIMERCDTMF4 = $022C ;COUNT DOWN TIMER 4 FLAGINTEMP = $022D ;IAN'S TEMPCDTMF5 = $022E ;COUNT DOWN TIMER FLAG 5SDMCTL = $022F ;SAVE DMACTL REGISTERSDLSTL = $0230 ;SAVE DISPLAY LIST LOW BYTESDLSTH = $0231 ;SAVE DISPLAY LIST HI BYTESSKCTL = $0232 ;SKCTL REGISTER RAMLCOUNT = $0233 ;##1200xl## 1-byte relocating loader recordLPENH = $0234 ;LIGHT PEN HORIZONTAL VALUELPENV = $0235 ;LIGHT PEN VERTICAL VALUEBRKKY = $0236 ;BREAK KEY VECTOR;RELADR = $0238 ;##1200xl## 2-byte relocatable loader addressVPIRQ = $0238 ;##rev2## 2-byte parallel device IRQ vectorCDEVIC = $023A ;COMMAND FRAME BUFFER - DEVICECCOMND = $023B ;COMMANDCAUX1 = $023C ;COMMAND AUX BYTE 1CAUX2 = $023D ;COMMAND AUX BYTE 2TEMP = $023E ;TEMPORARY RAM CELLERRFLG = $023F ;ERROR FLAG - ANY DEVICE ERROR EXCEPT TIME OUTDFLAGS = $0240 ;DISK FLAGS FROM SECTOR ONEDBSECT = $0241 ;NUMBER OF DISK BOOT SECTORSBOOTAD = $0242 ;ADDRESS WHERE DISK BOOT LOADER WILL 13E PUTCOLDST = $0244 ;COLDSTART FLAG (1=IN MIDDLE OF COLDSTART>RECLEN = $0245 ;##1200xl## 1-byte relocating loader record lengthDSKTIM = $0246 ;DISK TIME OUT REGISTER;LINBUF = $0247 ;##old## CHAR LINE BUFFERPDVMSK = $0247 ;##rev2## 1-byte parallel device selection maskSHPDVS = $0248 ;##rev2## 1-byte PDVS (parallel device select)PDIMSK = $0249 ;##rev2## 1-byte parallel device IRQ selectionRELADR = $024A ;##rev2## 2-byte relocating loader relative adr.PPTMPA = $024C ;##rev2## 1-byte parallel device handler temporaryPPTMPX = $024D ;##rev2## 1-byte parallel device handler temporaryCHSALT = $026B ;##1200xl## 1-byte character set alternateVSFLAG = $026C ;##1200xl## 1-byte fine vertical scroll countKEYDIS = $026D ;##1200xl## 1-byte keyboard disableFINE = $026E ;##1200xl## 1-byte fine scrolling modeGPRIOR = $026F ;GLOBAL PRIORITY CELLPADDL0 = $0270 ;1-byte potentiometer 0PADDL1 = $0271 ;1-byte potentiometer 1PADDL2 = $0272 ;1-byte potentiometer 2PADDL3 = $0273 ;1-byte potentiometer 3PADDL4 = $0274 ;1-byte potentiometer 4PADDL5 = $0275 ;1-byte potentiometer 5PADDL6 = $0276 ;1-byte potentiometer 6PADDL7 = $0277 ;1-byte potentiometer 7STICK0 = $0278 ;1-byte joystick 0STICK1 = $0279 ;1-byte joystick 1STICK2 = $027A ;1-byte joystick 2STICK3 = $027B ;1-byte joystick 3PTRIG0 = $027C ;1-byte paddle trigger 0PTRIG1 = $027D ;1-byte paddle trigger 1PTRIG2 = $027E ;1-byte paddle trigger 2PTRIG3 = $027F ;1-byte paddle trigger 3PTRIG4 = $0280 ;1-byte paddle trigger 4PTRIG5 = $0281 ;1-byte paddle trigger 5PTRIG6 = $0281 ;1-byte paddle trigger 6PTRIG7 = $0283 ;1-byte paddle trigger 7STRIG0 = $0284 ;1-byte joystick trigger 0STRIG1 = $0285 ;1-byte joystick trigger 1STRIG2 = $0286 ;1-byte joystick trigger 2STRIG3 = $0287 ;1-byte joystick trigger 3;CSTAT = $0288 ;##old## cassette status registerHIBYTE = $0288 ;##1200xl## 1-byte relocating loader high byteWMODE = $0289 ;1-byte cassette WRITE modeBLIM = $028A ;1-byte cassette buffer limitIMASK = $028B ;##rev2## (not used)JVECK = $028C ;2-byte jump vector or temporaryNEWADR = $028E ;##1200xl## 2-byte relocating addressTXTROW = $0290 ;TEXT ROWCRSTXTCOL = $0291 ;TEXT COLCRSTINDEX = $0293 ;TEXT INDEXTXTMSC = $0294 ;FOOLS CONVRT INTO NEW MSCTXTOLD = $0296 ;OLDROW & OLDCOL FOR TEXT (AND THEN SOME);TMPX1 = $029C ;##old## 1-byte temporary registerCRETRY = $029C ;##1200xl## 1-byte number of command frame retriesHOLD3 = $029D ;1-byte temporarySUBTMP = $029E ;1-byte temporaryHOLD2 = $029F ;1-byte (not used)DMASK = $02A0 ;1-byte display (pixel location) maskTMPLBT = $02A1 ;1-byte (not used)ESCFLG = $02A2 ;ESCAPE FLAGTABMAP = $02A3 ;15-byte (120 bit) tab stop bit mapLOGMAP = $02B2 ;LOGICAL LINE START BIT MAPINVFLG = $02B6 ;INVERSE VIDEO FLAG (TOGGLED BY ATARI KEY)FILFLG = $02B7 ;RIGHT FILL FLAG FOR DRAWTMPROW = $02B8 ;1-byte temporary rowTMPCOL = $02B9 ;2-byte temporary columnSCRFLG = $02BB ;SET IF SCROLL OCCURSHOLD4 = $02BC ;TEMP CELL USED IN DRAW ONLY;HOLD5 = $02BD ;##old## DITTODRETRY = $02BD ;##1200xl## 1-byte number of device retriesSHFLOK = $02BE ;1-byte shift/control lock flagsBOTSCR = $02BF ;BOTTOM OF SCREEN 24 NORM 4 SPLITPCOLR0 = $02C0 ;1-byte player-missile 0 color/luminancePCOLR1 = $02C1 ;1-byte player-missile 1 color/luminancePCOLR2 = $02C2 ;1-byte player-missile 2 color/luminancePCOLR3 = $02C3 ;1-byte player-missile 3 color/luminanceCOLOR0 = $02C4 ;1-byte playfield 0 color/luminanceCOLOR1 = $02C5 ;1-byte playfield 1 color/luminanceCOLOR2 = $02C6 ;1-byte playfield 2 color/luminanceCOLOR3 = $02C7 ;1-byte playfield 3 color/luminanceCOLOR4 = $02C8 ;1-byte background color/luminancePARMBL = $02C9 ;##rev2## 6-byte relocating loader parameterRUNADR = $02C9 ;##1200xl## 2-byte run addressHIUSED = $02CB ;##1200xl## 2-byte highest non-zero page addressZHIUSE = $02CD ;##1200xl## 2-byte highest zero page addressOLDPAR = $02CF ;##rev2## 6-byte relocating loader parameterGBYTEA = $02CF ;##1200xl## 2-byte GET-BYTE routine addressLOADAD = $02D1 ;##1200xl## 2-byte non-zero page load addressZLOADA = $02D3 ;##1200xl## 2-byte zero page load addressDSCTLN = $02D5 ;##1200xl## 2-byte disk sector lengthACMISR = $02D7 ;##1200xl## 2-byte ACMI interrupt service routineKRPDEL = $02D9 ;##1200xl## 1-byte auto-repeat delayKEYREP = $02DA ;##1200xl## 1-byte auto-repeat rateNOCLIK = $02DB ;##1200xl## 1-byte key click disableHELPFG = $02DC ;##1200xl## 1-byte HELP key flag (0 = no HELP)DMASAV = $02DD ;##1200xl## 1-byte SDMCTL save/restorePBPNT = $02DE ;##1200xl## 1-byte printer buffer pointerPBUFSZ = $02DF ;##1200xl## 1-byte printer buffer sizeGLBABS = $02E0 ;4-byte global variables for non-DOS usersRUNAD = $02E0 ;##map## 2-byte binary file run addressINITAD = $02E2 ;##map## 2-byte binary file initialization addressRAMSIZ = $02E4 ;RAM SIZE (HI BYTE ONLY)MEMTOP = $02E5 ;TOP OF AVAILABLE USER MEMORYMEMLO = $02E7 ;BOTTOM OF AVAILABLE USER MEMORYHNDLOD = $02E9 ;##1200xl## 1-byte user load flagDVSTAT = $02EA ;STATUS BUFFERCBAUDL = $02EE ;1-byte low cassette baud rateCBAUDH = $02EF ;1-byte high cassette baud rateCRSINH = $02F0 ;CURSOR INHIBIT (00 = CURSOR ON)KEYDEL = $02F1 ;KEY DELAYCH1 = $02F2 ;1-byte prior keyboard characterCHACT = $02F3 ;CHACTL REGISTER RAMCHBAS = $02F4 ;CHBAS REGISTER RAMNEWROW = $02F5 ;##1200xl## 1-byte draw destination rowNEWCOL = $02F6 ;##1200xl## 2-byte draw destination columnROWINC = $02F8 ;##1200xl## 1-byte draw row incrementCOLINC = $02F9 ;##1200xl## 1-byte draw column incrementCHAR = $02FA ;1-byte internal characterATACHR = $02FB ;ATASCII CHARACTERCH = $02FC ;GLOBAL VARIABLE FOR KEYBOARDFILDAT = $02FD ;RIGHT FILL DATA <DRAW>DSPFLG = $02FE ;DISPLAY FLAG DISPLAY CNTLS IF NON-ZEROSSFLAG = $02FF ;START/STOP FLAG FOR PAGING (CNTL 1). CLEARE;-------------------------------------------------------------------------; Page Three Address Equates;-------------------------------------------------------------------------DCB = $0300 ;DEVICE CONTROL BLOCKDDEVIC = $0300 ;PERIPHERAL UNIT 1 BUS I.D. NUMBERDUNIT = $0301 ;UNIT NUMBERDCOMND = $0302 ;BUS COMMANDDSTATS = $0303 ;COMMAND TYPE/STATUS RETURNDBUFLO = $0304 ;1-byte low data buffer addressDBUFHI = $0305 ;1-byte high data buffer addressDTIMLO = $0306 ;DEVICE TIME OUT IN 1 SECOND UNITSDUNUSE = $0307 ;UNUSED BYTEDBYTLO = $0308 ;1-byte low number of bytes to transferDBYTHI = $0309 ;1-byte high number of bytes to transferDAUX1 = $030A ;1-byte first command auxiliaryDAUX2 = $030B ;1-byte second command auxiliaryTIMER1 = $030C ;INITIAL TIMER VALUE;ADDCOR = $030E ;##old## ADDITION CORRECTIONJMPERS = $030E ;##1200xl## 1-byte jumper optionsCASFLG = $030F ;CASSETTE MODE WHEN SETTIMER2 = $0310 ;2-byte final baud rate timer valueTEMP1 = $0312 ;TEMPORARY STORAGE REGISTER;TEMP2 = $0314 ;##old## TEMPORARY STORAGE REGISTERTEMP2 = $0313 ;##1200xl## 1-byte temporary PTIMOT = $0314 ;##1200xl## 1-byte printer timeoutTEMP3 = $0315 ;TEMPORARY STORAGE REGISTERSAVIO = $0316 ;SAVE SERIAL IN DATA PORTTIMFLG = $0317 ;TIME OUT FLAG FOR BAUD RATE CORRECTIONSTACKP = $0318 ;SIO STACK POINTER SAVE CELLTSTAT = $0319 ;TEMPORARY STATUS HOLDERHATABS = $031A ;35-byte handler address table (was 38 bytes)PUPBT1 = $033D ;##1200xl## 1-byte power-up validation byte 1PUPBT2 = $033E ;##1200xl## 1-byte power-up validation byte 2PUPBT3 = $033F ;##1200xl## 1-byte power-up validation byte 3IOCB = $0340 ;I/O CONTROL BLOCKSICHID = $0340 ;HANDLER INDEX NUMBER (FF=IOCB FREE)ICDNO = $0341 ;DEVICE NUMBER (DRIVE NUMBER)ICCOM = $0342 ;COMMAND CODEICSTA = $0343 ;STATUS OF LAST IOCB ACTIONICBAL = $0344 ;1-byte low buffer addressICBAH = $0345 ;1-byte high buffer addressICPTL = $0346 ;1-byte low PUT-BYTE routine address - 1ICPTH = $0347 ;1-byte high PUT-BYTE routine address - 1ICBLL = $0348 ;1-byte low buffer lengthICBLH = $0349 ;1-byte high buffer lengthICAX1 = $034A ;1-byte first auxiliary informationICAX2 = $034B ;1-byte second auxiliary informationICAX3 = $034C ;1-byte third auxiliary informationICAX4 = $034D ;1-byte fourth auxiliary informationICAX5 = $034E ;1-byte fifth auxiliary informationICSPR = $034F ;SPARE BYTEPRNBUF = $03C0 ;PRINTER BUFFERSUPERF = $03E8 ;##1200xl## 1-byte editor super function flagCKEY = $03E9 ;##1200xl## 1-byte cassette boot request flagCASSBT = $03EA ;##1200xl## 1-byte cassette boot flagCARTCK = $03EB ;##1200xl## 1-byte cartridge equivalence checkDERRF = $03EC ;##rev2## 1-byte screen OPEN error flag; Remainder of Page Three Not Cleared upon ResetACMVAR = $03ED ;##1200xl## 11 bytes reserved for ACMIBASICF = $03F8 ;##rev2## 1-byte BASIC switch flagMINTLK = $03F9 ;##1200xl## 1-byte ACMI module interlockGINTLK = $03FA ;##1200xl## 1-byte cartridge interlockCHLINK = $03FB ;##1200xl## 2-byte loaded handler chain linkCASBUF = $03FD ;CASSETTE BUFFER;-------------------------------------------------------------------------; Page Four/Five Address Equates;-------------------------------------------------------------------------; USER AREA STARTS HERE AND GOES TO END OF PAGE FIVEUSAREA = $0480 ;128 bytes reserved for applicationLBPR1 = $057E ;LBUFF PREFIX 1LBPR2 = $057F ;LBUFF PREFIX 2LBUFF = $0580 ;128-byte line bufferPLYARG = $05E0 ;6-byte floating point polynomial argumentFPSCR = $05E6 ;6-byte floating point temporaryFPSCR1 = $05EC ;6-byte floating point temporary;LBFEND = $05FF ;##old## END OF LBUFF;-------------------------------------------------------------------------; Cartridge Address Equates;-------------------------------------------------------------------------CARTCS = $BFFA ;##rev2## 2-byte cartridge coldstart addressCART = $BFFC ;##rev2## 1-byte cartridge present indicatorCARTFG = $BFFD ;##rev2## 1-byte cartridge flagsCARTAD = $BFFE ;##rev2## 2-byte cartridge start vector;-------------------------------------------------------------------------; CTIA/GTIA Address Equates;-------------------------------------------------------------------------GTIA = $D000 ;CTIA/GTIA area; Read/Write AddressesCONSOL = $D01F ;console switches and speaker control; Read AddressesM0PF = $D000 ;missile 0 and playfield collisionM1PF = $D001 ;missile 1 and playfield collisionM2PF = $D002 ;missile 2 and playfield collision
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -