📄 atari.inc
字号:
M3PF = $D003 ;missile 3 and playfield collisionP0PF = $D004 ;player 0 and playfield collisionP1PF = $D005 ;player 1 and playfield collisionP2PF = $D006 ;player 2 and playfield collisionP3PF = $D007 ;player 3 and playfield collisionM0PL = $D008 ;missile 0 and player collisionM1PL = $D009 ;missile 1 and player collisionM2PL = $D00A ;missile 2 and player collisionM3PL = $D00B ;missile 3 and player collisionP0PL = $D00C ;player 0 and player collisionP1PL = $D00D ;player 1 and player collisionP2PL = $D00E ;player 2 and player collisionP3PL = $D00F ;player 3 and player collisionTRIG0 = $D010 ;joystick trigger 0TRIG1 = $D011 ;joystick trigger 1TRIG2 = $D012 ;cartridge interlockTRIG3 = $D013 ;ACMI module interlockPAL = $D014 ;##rev2## PAL/NTSC indicator; Write AddressesHPOSP0 = $D000 ;player 0 horizontal positionHPOSP1 = $D001 ;player 1 horizontal positionHPOSP2 = $D002 ;player 2 horizontal positionHPOSP3 = $D003 ;player 3 horizontal positionHPOSM0 = $D004 ;missile 0 horizontal positionHPOSM1 = $D005 ;missile 1 horizontal positionHPOSM2 = $D006 ;missile 2 horizontal positionHPOSM3 = $D007 ;missile 3 horizontal positionSIZEP0 = $D008 ;player 0 sizeSIZEP1 = $D009 ;player 1 sizeSIZEP2 = $D00A ;player 2 sizeSIZEP3 = $D00B ;player 3 sizeSIZEM = $D00C ;missile sizesGRAFP0 = $D00D ;player 0 graphicsGRAFP1 = $D00E ;player 1 graphicsGRAFP2 = $D00F ;player 2 graphicsGRAFP3 = $D010 ;player 3 graphicsGRAFM = $D011 ;missile graphicsCOLPM0 = $D012 ;player-missile 0 color/luminanceCOLPM1 = $D013 ;player-missile 1 color/luminanceCOLPM2 = $D014 ;player-missile 2 color/luminanceCOLPM3 = $D015 ;player-missile 3 color/luminanceCOLPF0 = $D016 ;playfield 0 color/luminanceCOLPF1 = $D017 ;playfield 1 color/luminanceCOLPF2 = $D018 ;playfield 2 color/luminanceCOLPF3 = $D019 ;playfield 3 color/luminanceCOLBK = $D01A ;background color/luminancePRIOR = $D01B ;priority selectVDELAY = $D01C ;vertical delayGRACTL = $D01D ;graphic controlHITCLR = $D01E ;collision clear;-------------------------------------------------------------------------; PBI Address Equates;-------------------------------------------------------------------------PBI = $D100 ;##rev2## parallel bus interface area; Read AddressesPDVI = $D1FF ;##rev2## parallel device IRQ status; Write AddressesPDVS = $D1FF ;##rev2## parallel device select; PBI RAM Address EquatesPBIRAM = $D600 ;##rev2## parallel bus interface RAM area; Parallel Device Address EquatesPDID1 = $D803 ;##rev2## parallel device ID 1PDIDV = $D805 ;##rev2## parallel device I/O vectorPDIRQV = $D808 ;##rev2## parallel device IRQ vectorPDID2 = $D80B ;##rev2## parallel device ID 2PDVV = $D80D ;##rev2## parallel device vector table;-------------------------------------------------------------------------; POKEY Address Equates;-------------------------------------------------------------------------POKEY = $D200 ;POKEY area; Read AddressesPOT0 = $D200 ;potentiometer 0POT1 = $D201 ;potentiometer 1POT2 = $D202 ;potentiometer 2POT3 = $D203 ;potentiometer 3POT4 = $D204 ;potentiometer 4POT5 = $D205 ;potentiometer 5POT6 = $D206 ;potentiometer 6POT7 = $D207 ;potentiometer 7ALLPOT = $D208 ;potentiometer port statusKBCODE = $D209 ;keyboard codeRANDOM = $D20A ;random number generatorSERIN = $D20D ;serial port inputIRQST = $D20E ;IRQ interrupt statusSKSTAT = $D20F ;serial port and keyboard status; Write AddressesAUDF1 = $D200 ;channel 1 audio frequencyAUDC1 = $D201 ;channel 1 audio controlAUDF2 = $D202 ;channel 2 audio frequencyAUDC2 = $D203 ;channel 2 audio controlAUDF3 = $D204 ;channel 3 audio frequencyAUDC3 = $D205 ;channel 3 audio controlAUDF4 = $D206 ;channel 4 audio frequencyAUDC4 = $D207 ;channel 4 audio controlAUDCTL = $D208 ;audio controlSTIMER = $D209 ;start timersSKRES = $D20A ;reset SKSTAT statusPOTGO = $D20B ;start potentiometer scan sequenceSEROUT = $D20D ;serial port outputIRQEN = $D20E ;IRQ interrupt enableSKCTL = $D20F ;serial port and keyboard control;-------------------------------------------------------------------------; PIA Address Equates;-------------------------------------------------------------------------PIA = $D300 ;PIA areaPORTA = $D300 ;port A direction register or jacks one/twoPORTB = $D301 ;port B direction register or memory managementPACTL = $D302 ;port A controlPBCTL = $D303 ;port B control;-------------------------------------------------------------------------; ANTIC Address Equates;-------------------------------------------------------------------------ANTIC = $D400 ;ANTIC area; Read AddressesVCOUNT = $D40B ;vertical line counterPENH = $D40C ;light pen horizontal positionPENV = $D40D ;light pen vertical positionNMIST = $D40F ;NMI interrupt status; Write AddressesDMACTL = $D400 ;DMA controlCHACTL = $D401 ;character controlDLISTL = $D402 ;low display list addressDLISTH = $D403 ;high display list addressHSCROL = $D404 ;horizontal scrollVSCROL = $D405 ;vertical scrollPMBASE = $D407 ;player-missile base addressCHBASE = $D409 ;character base addressWSYNC = $D40A ;wait for HBLANK synchronizationNMIEN = $D40E ;NMI enableNMIRES = $D40F ;NMI iterrupt reset;-------------------------------------------------------------------------; Floating Point Package Address Equates;-------------------------------------------------------------------------AFP = $D800 ;convert ASCII to floating pointFASC = $D8E6 ;convert floating point to ASCIIIFP = $D9AA ;convert integer to floating pointFPI = $D9D2 ;convert floating point to integerZFR0 = $DA44 ;zero FR0ZF1 = $DA46 ;zero floating point numberFSUB = $DA60 ;subtract floating point numbersFADD = $DA66 ;add floating point numbersFMUL = $DADB ;multiply floating point numbersFDIV = $DB28 ;divide floating point numbersPLYEVL = $DD40 ;evaluate floating point polynomialFLD0R = $DD89 ;load floating point numberFLD0P = $DD8D ;load floating point numberFLD1R = $DD98 ;load floating point numberPLD1P = $DD9C ;load floating point numberFST0R = $DDA7 ;store floating point numberFST0P = $DDAB ;store floating point numberFMOVE = $DDB6 ;move floating point numberLOG = $DECD ;calculate floating point logarithmLOG10 = $DED1 ;calculate floating point base 10 logarithmEXP = $DDC0 ;calculate floating point exponentialEXP10 = $DDCC ;calculate floating point base 10 exponential;-------------------------------------------------------------------------; Device Handler Vector Table Address Equates;-------------------------------------------------------------------------EDITRV = $E400 ;editor handler vector tableSCRENV = $E410 ;screen handler vector tableKEYBDV = $E420 ;keyboard handler vector tablePRINTV = $E430 ;printer handler vector tableCASETV = $E440 ;cassette handler vector table;-------------------------------------------------------------------------; Jump Vector Address Equates;-------------------------------------------------------------------------DISKIV = $E450 ;vector to initialize DIODSKINV = $E453 ;vector to DIOCIOV = $E456 ;vector to CIOSIOV = $E459 ;vector to SIOSETVBV = $E45C ;vector to set VBLANK parametersSYSVBV = $E45F ;vector to process immediate VBLANKXITVBV = $E462 ;vector to process deferred VBLANKSIOINV = $E465 ;vector to initialize SIOSENDEV = $E468 ;vector to enable SENDINTINV = $E46B ;vector to initialize interrupt handlerCIOINV = $E46E ;vector to initialize CIOBLKBDV = $E471 ;vector to power-up displayWARMSV = $E474 ;vector to warmstartCOLDSV = $E477 ;vector to coldstartRBLOKV = $E47A ;vector to read cassette blockCSOPIV = $E47D ;vector to open cassette for inputVCTABL = $E480 ;RAM vector initial value tablePUPDIV = $E480 ;##rev2## vector to power-up displaySLFTSV = $E483 ;##rev2## vector to self-testPHENTV = $E486 ;##rev2## vector to enter peripheral handlerPHUNLV = $E489 ;##rev2## vector to unlink peripheral handlerPHINIV = $E48C ;##rev2## vector to initialize peripheral handlerGPDVV = $E48F ;##rev2## generic parallel device handler vector; NOTE: OS rom self-test labels are not included in this file;-------------------------------------------------------------------------; Some misc. stuff from the 400/800 rev.B source;-------------------------------------------------------------------------; THE FOLLOWING ARE IN BASIC CARTRIDGE:SIN = $BD81 ;FR0 <- SIN (FR0) DEGFLG (0=RAD,6=DEG) CARRYCOS = $BD73 ;FR0 <- COS (FR0) CARRYATAN = $BE43 ;FR0 <- ATAN(FR0) CARRYSQR = $BEB1 ;FR0 <- ROOT(FR0) CARRYRADON = 0 ;INDICATES RADIANSDEGON = 6 ;INDICATES DEGREESASCZER = '0' ;ASCII ZEROCOLON = $3A ;ASCII COLON CR = $9B ;SYSTEM EOL (CARRIAGE RETURN);-------------------------------------------------------------------------; 6502;-------------------------------------------------------------------------NMIVEC = $FFFARESVEC = $FFFCIRQVEC = $FFFE;-------------------------------------------------------------------------; BASIC;-------------------------------------------------------------------------LOMEM = $80 ;2-byte low memory pointerVNTP = $82 ;2-byte variable name table addressVNTD = $84 ;2-byte variable name table end + 1VVTP = $86 ;2-byte variable value tableSTMTAB = $88 ;2-byte statement table addressSTMCUR = $8A ;2-byte current statement pointerSTARP = $8C ;2-byte string and array table pointerRUNSTK = $8E ;2-byte runtime stack address;MEMTOP = $90 ;2-byte top of memory pointerSTOPLN = $BA ;2-byte stopped line numberERRSAVE = $C3 ;1-byte error codePTABW = $C9 ;1-byte tab width;-------------------------------------------------------------------------; DOS;-------------------------------------------------------------------------DOS = $0700RENAME = $20 ;RENAME DISK FILEDELETE = $21 ;DELETE DISK FILEFORMAT = $21 ;FORMATLOCKFL = $23 ;LOCK FILE TO READ ONLYUNLOCK = $24 ;UNLOCK LOCKED FILEPOINT = $25 ;POINT SECTORNOTE = $26 ;NOTE SECTOR; Command line table, Index values for (DOSVEC),Y -- COMTAB; Compatible with OS/A+, DOS XL and SpartaDOSCOMTAB = 0 ;DOS entry jump vectorZCRNAME = 3 ;file name crunch routine jump vectorBUFOFF = 10 ;next parameter buffer offsetCOMFNAM = 33 ;destination buffer for crunch routineLBUF = 63 ;command line input buffer;-------------------------------------------------------------------------; ATASCII CHARACTER DEFS;-------------------------------------------------------------------------ATCLR = $7D ;CLEAR SCREEN CHARACTERATRUB = $7E ;BACK SPACE (RUBOUT)ATTAB = $7F ;TABATEOL = $9B ;END-OF-LINEATDELL = $9C ;delete lineATINSL = $9D ;insert lineATCTAB = $9E ;clear TABATSTAB = $9F ;set TABATBEL = $FD ;CONSOLE BELLATDEL = $FE ;delete char.ATINS = $FF ;insert char.ATURW = $1C ;UP-ARROWATDRW = $1D ;DOWN-ARROWATLRW = $1E ;LEFT-ARROWATRRW = $1F ;RIGHT-ARROWATESC = $1B ;ESCAPE;-------------------------------------------------------------------------; OFFSETS INTO SECTSIZETAB (DIO functions);-------------------------------------------------------------------------sst_flag = 0 ; length 1sst_sectsize = 1 ; 2sst_driveno = 3 ; 1 (drive #)sst_size = 4 ; size of one entry ; if changed, adapt diopncls.s;-------------------------------------------------------------------------; OFFSETS INTO dio_phys_pos;-------------------------------------------------------------------------diopp_head = 0 ; headdiopp_track = 1 ; track / cylinderdiopp_sector = 3 ; sectordiopp_size = 5 ; size of structure;-------------------------------------------------------------------------; VALUES for dos_type;-------------------------------------------------------------------------ATARIDOS = 0SPARTADOS = 1OSADOS = 2 ; OS/A+MYDOS = 3NODOS = 255;-------------------------------------------------------------------------; End of atari.inc;-------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -