diff --git a/C64/lib/C64_ATARISYS.ASM b/C64/lib/C64_ATARISYS.ASM new file mode 100644 index 0000000..26a00e5 --- /dev/null +++ b/C64/lib/C64_ATARISYS.ASM @@ -0,0 +1,632 @@ +;**************************************************************************** +;* ATARI PERSONAL COMPUTER * +;* SYSTEM EQUATES * +;**************************************************************************** + +FAKEADDR EQU $0100 + + +; +; OPERATING SYSTEM EQUATE FILE +; +; MODULE ORIGIN TABLE +; +; VECTOR TABLE +; +; HANDLER ENTRY POINTS ARE CALL- +; ED OUT IN THE FOLLOWING VECTOR +; TABLE. THESE ARE THE ADDRESSES +; MINUS ONE. +; +; EXAMPLE FOR EDITOR +; +; E400 OPEN +; 2 CLOSE +; 4 GET +; 6 PUT +; 8 STATUS +; A SPECIAL +; C JUMP TO POWER ON INIT +; F NOT USED +; +EDITRV EQU $E400 ;EDITOR +SCRENV EQU $E410 ;TV SCREEN +KEYBDV EQU $E420 ;KEYBOARD +PRINTV EQU $E430 ;PRINTER +CASETV EQU $E440 ;CASSETTE +; +; JUMP VECTOR TABLE +; +; THE FOLLOWING IS A TABLE OF +; JUMP INSTRUCTIONS TO VARIOUS +; ENTRY POINTS IN THE OPERATING +; SYSTEM +; +DISKIV EQU $E450 ;DISK INITIALIZATION +DSKINV EQU $E453 ;DISK INTERFACE +CIOV EQU $E456 ;CENTRAL I/O ROUTINE +SIOV EQU $E459 ;SERIAL I/O ROUTINE +SETVBV EQU $E45C ;SET SYSTEM TIMERS +SYSVBV EQU $E45F ;VBLANK CALCULATIONS +XITVBV EQU $E462 ;EXIT VBLANK +SIOINV EQU $E465 ;SIO INITIALIZATION +SENDEV EQU $E468 ;SEND ENABLE ROUTINE +INTINV EQU $E46B ;INTRPT HANDLER INIT +CIOINV EQU $E46E ;CIO INITIALIZATION +BLKBDV EQU $E471 ;BLACKBOARD MODE +WARMSV EQU $E474 ;WARM START VECTOR +COLDSV EQU $E477 ;COLD START VECTOR +RBLOKV EQU $E47A ;CASSETTE READ BLOCK +CSOPIV EQU $E47D ;CASSETTE INPUT OPEN +; +; VECTORS ADDED FOR 800XL +; +PUPDIV EQU $E480 ;POWER UP DISPLAY +SLFTSV EQU $E483 ;SELF TEST PROGRAM +PHENTV EQU $E486 ;UPLOADED HANDLER ENTER +PHULNV EQU $E489 ;UPLOADED HANDLER UNLINK +PHINIV EQU $E48C ;UPLOADED HANDLER INIT +; +; OPERATING SYSTEM EQUATES +; +; COMMAND CODES FOR IOCBS +; +OPEN EQU $03 ;OPEN FOR I/O +GETREC EQU $05 ;GET RECORD (TEXT) +GETCHR EQU $07 ;GET CHARACTER(S) +PUTREC EQU $09 ;PUT RECORD (TEXT) +PUTCHR EQU $0B ;PUT CHARACTER(S) +CLOSE EQU $0C ;CLOSE DEVICE +STATIS EQU $0D ;STATUS REQUEST +SPECIL EQU $0E ;SPECIAL ENTRY COMMAND +; +; SPECIAL ENTRY COMMANDS +; +DRAWLN EQU $11 ;DRAW LINE +FILLIN EQU $12 ;FILL +RENAME EQU $20 ;RENAME DISK FILE +DELETE EQU $21 ;DELETE DISK FILE +FORMAT EQU $22 ;FORMAT DISK +LOCKFL EQU $23 ;LOCK FILE +UNLOCK EQU $24 ;UNLOCK FILE +POINT EQU $25 ;POINT SECTOR +NOTE EQU $26 ;NOTE SECTOR +IOCFRE EQU $FF ;IOCB "FREE" +; +; AUX1 EQUATES +; () INDICATES WHICH DEVICES +; +APPEND EQU $01 ;WR APPEND(D)-SCN RD(E) +DIRECT EQU $02 ;OPEN DIRECTORY(D) +OPNIN EQU $04 ;OPEN FOR INPUT(ALL) +OPNOT EQU $08 ;OPEN FOR OUTPUT(ALL) +OPNINO EQU $0C ;OPEN INPUT&OUTPUT(ALL) +MXDMOD EQU $10 ;OPEN MIXED MODE(E,S) +INSCLR EQU $20 ;OPEN W/O CLEAR(E,S) +; +; DEVICE NAMES +; +SCREDT EQU 'E' ;SCREEN EDITOR (R/W) +KBD EQU 'K' ;KEYBOARD (R ONLY) +DISPLY EQU 'S' ;SCREEN DISPLAY (R/W) +PRINTR EQU 'P' ;PRINTER (W ONLY) +CASSET EQU 'C' ;CASSETTE (R/W) +RS232 EQU 'R' ;MODEM (R/W) +DISK EQU 'D' ;DISK (R/W) +; +; +; +; OPERATING SYSTEM STATUS CODES +; +SUCCES EQU $01 ;SUCCESSFUL OPERATION +BRKABT EQU $80 ;BREAK KEY ABORT +PRVOPN EQU $81 ;IOCB ALREADY OPEN +NONDEV EQU $82 ;NON-EXISTANT DEVICE +WRONLY EQU $83 ;IOCB OPEN FOR W ONLY +NVALID EQU $84 ;INVALID COMMAND +NOTOPN EQU $85 ;DEVICE/FILE NOT OPEN +BADIOC EQU $86 ;INVALID IOCB # +RDONLY EQU $87 ;IOCB OPEN FOR R ONLY +EOFERR EQU $88 ;END OF FILE +TRNRCD EQU $89 ;TRUNCATED RECORD +TIMOUT EQU $8A ;PERIPHERAL TIMEOUT +DNACK EQU $8B ;DEVICE NO ACKNOWLEDGE +FRMERR EQU $8C ;SERIAL BUS FRAME ERR +CRSROR EQU $8D ;CURSOR OVERRANGE +OVRRUN EQU $8E ;SERIAL DATA OVERRUN +CHKERR EQU $8F ;SERIAL CHECKSUM ERR +DERRER EQU $90 ;PERIPHRAL DEVICE ERR +BADMOD EQU $91 ;BAD SCREEN MODE # +FNCNOT EQU $92 ;NONEXISTANT FUNCTION +SCRMEM EQU $93 ;SCREEN MEM TOO SMALL +; +; PAGE ZERO RAM ASSIGNMENTS +; +LNFLG EQU $00 ;LINBUG RAM +NGFLAG EQU $01 ;POWER-UP SELF-TEST FLAG +; +; THESE LOCATIONS NOT CLEARED +; +CASINI EQU $02 ;CASSETTE INIT LOC +RAMLO EQU $04 ;RAM POINTER MEM TST +TRAMSZ EQU $06 ;TEMP REG RAM SIZE +TSTDAT EQU $07 ;RAM TEST DATA REG +; +;CLEARED ON COLDSTART ONLY +; +WARMST EQU $08 ;WARM START FLAG +BOOTQ EQU $09 ;SUCCESSFUL BOOT FLG +DOSVEC EQU $0A ;DOS START VECTOR +DOSINI EQU $0C ;DOS INIT ADDRESS +APPMHI EQU $0E ;APPL MEM HI LIMIT +; +;CLEARED ON COLD OR WARM START +; +POKMSK EQU $10 ;MASK POKEY IRQ +BRKKEY EQU $11 ;BREAK KEY FLAG +RTCLOK EQU $12 ;REAL TIME CLOCK +BUFADR EQU $15 ;INDIRECT BUFF ADDR +ICCOMT EQU $17 ;COMMAND FOR VECTOR +DSKFMS EQU $18 ;FMS POINTER +DSKUTL EQU $1A ;DISK UTILITIES PTR +ABUFPT EQU $1C ;RESERVED +ICHIDZ EQU $20 ;HANDLER INDEX # +ICDNOZ EQU $21 ;DEVICE NUMBER +ICCOMZ EQU $22 ;COMMAND CODE +ICSTAZ EQU $23 ;STATUS RETURN +ICBALZ EQU $24 ;BUFFER ADDRESS +ICBAHZ EQU $25 +ICPTLZ EQU $26 ;PUT BYTE ROUTINE-1 +ICPTHZ EQU $27 +ICBLLZ EQU $28 ;BUFFER LENGTH +ICBLHZ EQU $29 +ICAX1Z EQU $2A ;AUXILIARY BYTES +ICAX2Z EQU $2B +ICSPRZ EQU $2C ;SPARE BYTES +ICIDNO EQU $2E ;IOCB # X 16 +CIOCHR EQU $2F ;CIO CHARACTER BYTE +STATUS EQU $30 ;INTERNAL STATUS +CHKSUM EQU $31 ;CHECKSUM +BUFRLO EQU $32 ;DATA BUFFER LO BYTE +BUFRHI EQU $33 ;DATA BUFFER HI BYTE +BFENLO EQU $34 ;NEXT BYTE PAST DATA +BFENHI EQU $35 ;BUFFER (HI & LO) +LTEMP EQU $36 ;LOADER TEMP +BUFRFL EQU $38 ;DATA BUFFR FULL FLG +RECVDN EQU $39 ;RECIEVE DONE FLAG +XMTDON EQU $3A ;XMIT DONE FLAG +CHKSNT EQU $3B ;CHECKSUM SENT FLAG +NOCKSM EQU $3C ;NO CHKSUM SENT FLAG +;BPTR EQU $3D ;CASSETTE DATA INDEX +FTYPE EQU $3E ;INTERRECORD GAP TYPE +FEOF EQU $3F ;END OF FILE FLAG +FREQ EQU $40 ;BEEP COUNT +SOUNDR EQU $41 ;NOISY I/O FLAG +CRITIC EQU $42 ;CRITICAL MODE +FMSZPG EQU $43 ;FMS ZERO PAGE +ZCHAIN EQU $4A ;HANDLER LOADER TEMP +DSTAT EQU $4C ;DISPLAY STATUS +ATRACT EQU $4D ;ATTRACT FLAG +DRKMSK EQU $4E ;DARK ATTRACT MASK +COLRSH EQU $4F ;COLOR SHIFTER +TMPCHR EQU $50 ;TEMP STORAGE +HOLD1 EQU $51 ;TEMP STORAGE +LMARGN EQU $52 ;LEFT MARGIN (1) +RMARGN EQU $53 ;RIGHT MARGIN (38) +ROWCRS EQU $54 ;CURSOR COUNTERS +COLCRS EQU $55 +DINDEX EQU $57 ;DISPLAY MODE # +SAVMSC EQU $58 ;SCREEN MEM ADDR +OLDROW EQU $5A ;DRAW START POSIT +OLDCOL EQU $5B +OLDCHR EQU $5D ;DATA UNDER CURSOR +OLDADR EQU $5E ;CURSOR MEM ADDR +FKDEF EQU $60 ;FUNC KEY DEFEAT POINTER +PALNTS EQU $62 ;PAL/NTSC FLAG +LOGCOL EQU $63 ;COL IN LOGICAL LINE +ADRESS EQU $64 ;TEMP STORAGE +MLTEMP EQU $66 ;TEMP STORAGE +SAVADR EQU $68 ;TEMP STORAGE +RAMTOP EQU $6A ;AVAILABLE RAM PAGES +BUFCNT EQU $6B ;BUFFER COUNT +BUFSTR EQU $6C ;EDITOR GETCH POINTR +BITMSK EQU $6E ;BIT MASK +SHFAMT EQU $6F ;PIXEL JUSTIFICATION +ROWAC EQU $70 ;ROW ACCUMULATOR +COLAC EQU $72 ;COLUMN ACCUMULATOR +ENDPT EQU $74 ;LINE LENGTH +DELTAR EQU $76 ;DELTA ROW +DELTAC EQU $77 ;DELTA COLUMN +KEYDEF EQU $79 ;KEY DEFEAT POINTER +SWPFLG EQU $7B ;SPLIT SCN CURS CNTL +HOLDCH EQU $7C ;KB CHAR TEMP HOLD +INSDAT EQU $7D ;TEMP STORAGE +COUNTR EQU $7E ;DRAW ITERATION CNT +; +; 80-FF ARE RESERVED FOR USER +; +; NOTE: SEE FLOATING POINT +; SUBROUTINE AREA FOR ZERO +; PAGE CELLS +; +; PAGE 1 - HARDWARE STACK +; +; PAGE TWO RAM ASSIGNMENTS +; +VDSLST EQU FAKEADDR ;DSP LIST NMI VECTOR +VPRCED EQU FAKEADDR ;PROCEED IRQ VECTOR +VINTER EQU FAKEADDR ;INTERUPT IRQ VECTOR +VBREAK EQU FAKEADDR ;BRK INST IRQ VECTOR +VKEYBD EQU FAKEADDR ;POKEY KB IRQ VECTOR +VSERIN EQU FAKEADDR ;POKEY INPUT RDY IRQ +VSEROR EQU FAKEADDR ;POKEY OUTPUT RDY +VSEROC EQU FAKEADDR ;POKEY OUTPUT DONE +VTIMR1 EQU FAKEADDR ;POKEY TIMER 1 IRQ +VTIMR2 EQU FAKEADDR ;POKEY TIMER 2 IRQ +VTIMR4 EQU FAKEADDR ;POKEY TIMER 4 IRQ +VIMIRQ EQU FAKEADDR ;IMMED IRQ VECTOR +CDTMV1 EQU FAKEADDR ;COUNT DOWN TIMER 1 +CDTMV2 EQU FAKEADDR ;COUNT DOWN TIMER 2 +CDTMV3 EQU FAKEADDR ;COUNT DOWN TIMER 3 +CDTMV4 EQU FAKEADDR ;COUNT DOWN TIMER 4 +CDTMV5 EQU FAKEADDR ;COUNT DOWN TIMER 5 +VVBLKI EQU FAKEADDR ;IMM VBLK NMI VECTOR +VVBLKD EQU FAKEADDR ;DEF VBLK NMI VECTOR +CDTMA1 EQU FAKEADDR ;CDTMV1 JSR ADDRESS +CDTMA2 EQU FAKEADDR ;CDTMV2 JSR ADDRESS +CDTMF3 EQU FAKEADDR ;CDTMV3 FLAG +SRTIMR EQU FAKEADDR ;SOFTWARE REPEAT TMR +CDTMF4 EQU FAKEADDR ;CDTMV4 FLAG +INTEMP EQU FAKEADDR ;IAN'S TEMP +CDTMF5 EQU FAKEADDR ;CDTMV5 FLAG +DMACTLS EQU FAKEADDR ;SAVE DMACTL REG +DLPTRS EQU FAKEADDR ;SAVE DISP LIST LO +;SDLSTH EQU $0231 ;SAVE DISP LIST HI +SSKCTL EQU FAKEADDR ;SKCTL REGISTER RAM +LCOUNT EQU FAKEADDR ;LOADER TEMP +LPENH EQU FAKEADDR ;LIGHT PEN HORIZONTAL +LPENV EQU FAKEADDR ;LIGHT PEN VERTICAL +BRKKY EQU FAKEADDR ;BREAK KEY VECTOR +RELADR EQU FAKEADDR ;LOADER REL ADDR +CDEVIC EQU FAKEADDR ;COMMAND BUFFER-DEV +CCOMND EQU FAKEADDR ;COMMAND BUFFER-CMND +CAUX1 EQU FAKEADDR ;COMMAND BUFFER AUX1 +CAUX2 EQU FAKEADDR ;COMMAND BUFFER AUX2 +;TEMP EQU $023E ;TEMPORARY RAM CELL +ERRFLG EQU FAKEADDR ;DEVICE ERROR FLAG +DFLAGS EQU FAKEADDR ;DISK FLAGS(SECTOR1) +DBSECT EQU FAKEADDR ;# DISK BOOT SECTORS +BOOTAD EQU FAKEADDR ;DISK BOOT ADDRESS +COLDST EQU FAKEADDR ;COLDSTART FLAG 1=CS +RECLEN EQU FAKEADDR ;LOADER LENGTH +DSKTIM EQU FAKEADDR ;DISK TIME OUT REG +VSFLAG EQU FAKEADDR ;FINE SCROLL TEMP +KEYDIS EQU FAKEADDR ;KEY DISABLE FLAG +FINE EQU FAKEADDR ;FINE SCROLL ENABLE(A1200) +GPRIOR EQU FAKEADDR ;GLOBAL PRIORITY +PADDL0 EQU FAKEADDR ;POT 0 RAM CELL +PADDL1 EQU FAKEADDR +PADDL2 EQU FAKEADDR +PADDL3 EQU FAKEADDR +STICK0 EQU FAKEADDR ;JOYSTICK 0 RAM CELL +STICK1 EQU FAKEADDR +PTRIG0 EQU FAKEADDR ;PADDLE TRIGGER 0 +PTRIG1 EQU FAKEADDR +PTRIG2 EQU FAKEADDR +PTRIG3 EQU FAKEADDR +STRIG0 EQU FAKEADDR ;JOYSTICK TRIGGER 0 +STRIG1 EQU FAKEADDR +HIBYTE EQU FAKEADDR ;LOADER +WMODE EQU FAKEADDR ;CASSETTE R/W MODE +BLIM EQU FAKEADDR ;CASSETTE RECORD SIZE +IMASK EQU FAKEADDR +JVECK EQU FAKEADDR ;JUMP VECTOR +NEWADR EQU FAKEADDR ;LOADER NEW ADDRESS +TXTROW EQU FAKEADDR ;TEXT ROWCRS +TXTCOL EQU FAKEADDR ;TEXT COLCRS +TINDEX EQU FAKEADDR ;TEXT INDEX +TXTMSC EQU FAKEADDR ;TEXT WINDOW MEM ADD +TXTOLD EQU FAKEADDR ;TEXT OLDROW & COL +CRETRY EQU FAKEADDR ;# COMMAND RETRIES +HOLD3 EQU FAKEADDR +SUBTMP EQU FAKEADDR +HOLD2 EQU FAKEADDR +DMASK EQU FAKEADDR ;PIXEL LOCATION MASK +TMPLBT EQU FAKEADDR +ESCFLG EQU FAKEADDR ;ESCAPE FLAG +TABMAP EQU FAKEADDR ;TAB STOP MAP +LOGMAP EQU FAKEADDR ;LINE START BIT MAP +INVFLG EQU FAKEADDR ;INVERSE VIDEO FLAG +FILFLG EQU FAKEADDR ;FILL FLAG FOR DRAW +TMPROW EQU FAKEADDR +TMPCOL EQU FAKEADDR +SCRFLG EQU FAKEADDR ;SET IF SCROLLING +HOLD4 EQU FAKEADDR ;TEMP USED BY DRAW +DRETRY EQU FAKEADDR ;# OF DEVICE RETRIES +SHFLOK EQU FAKEADDR ;SHIFT/CTL LOCK FLAG +BOTSCR EQU FAKEADDR ;BOTTOM OF SCREEN +PCOLR0 EQU FAKEADDR ;P0 COLOR +PCOLR1 EQU FAKEADDR ;P1 COLOR +PCOLR2 EQU FAKEADDR ;P2 COLOR +PCOLR3 EQU FAKEADDR ;P3 COLOR +COLOR0 EQU FAKEADDR ;COLOR 0 +COLOR1 EQU FAKEADDR +COLOR2 EQU FAKEADDR +COLOR3 EQU FAKEADDR +COLOR4 EQU FAKEADDR +COLBAKS EQU COLOR4 +CHBAS EQU FAKEADDR ;CHBAS REGISTER RAM +; +; COLLEEN MNEMONICS +; +; --------------------------------------------------------------------------- +POKEY EQU FAKEADDR +; --------------------------------------------------------------------------- +; +; READ +; +POT0 EQU POKEY+$00 +POT1 EQU POKEY+$00 +POT2 EQU POKEY+$00 +POT3 EQU POKEY+$00 +POT4 EQU POKEY+$00 +POT5 EQU POKEY+$00 +POT6 EQU POKEY+$00 +POT7 EQU POKEY+$00 +ALLPOT EQU POKEY+$00 +KBCODE EQU POKEY+$00 +; !!!!! +RANDOM EQU POKEY+$00 +; +POTGO EQU POKEY+$00 +SERIN EQU POKEY+$00 +IRQST EQU POKEY+$00 +SKSTAT EQU POKEY+$00 +; +; WRITE +; +AUDF1 EQU POKEY+$00 +AUDC1 EQU POKEY+$00 +AUDF2 EQU POKEY+$00 +AUDC2 EQU POKEY+$00 +AUDF3 EQU POKEY+$00 +AUDC3 EQU POKEY+$00 +AUDF4 EQU POKEY+$00 +AUDC4 EQU POKEY+$00 +AUDCTL EQU POKEY+$00 +STIMER EQU POKEY+$00 +SKRES EQU POKEY+$00 +SEROUT EQU POKEY+$00 +IRQEN EQU POKEY+$00 +SKCTL EQU POKEY+$00 +; +; +; +; --------------------------------------------------------------------------- +GTIA EQU FAKEADDR +; --------------------------------------------------------------------------- +; +; WRITE +; +HPOSP0 EQU GTIA+$00 +HPOSP1 EQU GTIA+$00 +HPOSP2 EQU GTIA+$00 +HPOSP3 EQU GTIA+$00 +HPOSM0 EQU GTIA+$00 +HPOSM1 EQU GTIA+$00 +HPOSM2 EQU GTIA+$00 +HPOSM3 EQU GTIA+$00 +SIZEP0 EQU GTIA+$00 +SIZEP1 EQU GTIA+$00 +SIZEP2 EQU GTIA+$00 +SIZEP3 EQU GTIA+$00 +SIZEM EQU GTIA+$00 +GRAFP0 EQU GTIA+$00 +GRAFP1 EQU GTIA+$00 +GRAFP2 EQU GTIA+$00 +GRAFP3 EQU GTIA+$00 +GRAFM EQU GTIA+$00 +COLPM0 EQU GTIA+$00 +COLPM1 EQU GTIA+$00 +COLPM2 EQU GTIA+$00 +COLPM3 EQU GTIA+$00 +COLPF0 EQU GTIA+$00 +COLPF1 EQU GTIA+$00 +COLPF2 EQU GTIA+$00 +COLPF3 EQU GTIA+$00 +COLBAK EQU GTIA+$00 +PRIOR EQU GTIA+$00 +VDELAY EQU GTIA+$00 +GRACTL EQU GTIA+$00 +HITCLR EQU GTIA+$00 +CONSOL EQU GTIA+$00 +; +; READ +; +M0PF EQU GTIA+$00 +M1PF EQU GTIA+$00 +M2PF EQU GTIA+$00 +M3PF EQU GTIA+$00 +P0PF EQU GTIA+$00 +P1PF EQU GTIA+$00 +P2PF EQU GTIA+$00 +P3PF EQU GTIA+$00 +M0PL EQU GTIA+$00 +M1PL EQU GTIA+$00 +M2PL EQU GTIA+$00 +M3PL EQU GTIA+$00 +P0PL EQU GTIA+$00 +P1PL EQU GTIA+$00 +P2PL EQU GTIA+$00 +P3PL EQU GTIA+$00 +TRIG0 EQU GTIA+$00 +TRIG1 EQU GTIA+$00 +TRIG2 EQU GTIA+$00 +TRIG3 EQU GTIA+$00 +PAL EQU GTIA+$00 +; +; +; --------------------------------------------------------------------------- +ANTIC EQU FAKEADDR +; --------------------------------------------------------------------------- +; +DMACTL EQU ANTIC+$00 +CHACTL EQU ANTIC+$00 +DLPTR EQU ANTIC+$00 +;DLISTH EQU ANTIC+$00 +HSCROL EQU ANTIC+$00 +VSCROL EQU ANTIC+$00 +PMBASE EQU ANTIC+$00 +CHBASE EQU ANTIC+$00 +WSYNC EQU ANTIC+$00 +; !!!! +VCOUNT EQU ANTIC+$00 +; ---- +PENH EQU ANTIC+$00 +PENV EQU ANTIC+$00 +NMIEN EQU ANTIC+$00 +NMIRES EQU ANTIC+$00 +NMIST EQU ANTIC+$00 +; +; +; --------------------------------------------------------------------------- +PIA EQU FAKEADDR +; --------------------------------------------------------------------------- +; +PORTA EQU PIA+0 +PORTB EQU PIA+0 +PACTL EQU PIA+0 +PBCTL EQU PIA+0 +; +; --------------------------------------------------------------------------- +; Atari ANTIC chip display list equates +; --------------------------------------------------------------------------- +; +JUMP EQU $01 ; display list jump instruction (3 byte) +JVB EQU $41 ; display list jump and wait for vblank instruction (3) +; +SCH EQU $10 ; display list horizontal scrolling +SCV EQU $20 ; display list vertical scrolling +LMS EQU $40 ; display list load memory scan instruction (3 byte) +DLII EQU $80 ; display list interrupt instruction +; +SKIP1 EQU $00 ; display list skip 1 scan line instruction +SKIP2 EQU $10 ; display list skip 2 scan lines instruction +SKIP3 EQU $20 ; display list skip 3 scan lines instruction +SKIP4 EQU $30 ; display list skip 4 scan lines instruction +SKIP5 EQU $40 ; display list skip 5 scan lines instruction +SKIP6 EQU $50 ; display list skip 6 scan lines instruction +SKIP7 EQU $60 ; display list skip 7 scan lines instruction +SKIP8 EQU $70 ; display list skip 8 scan lines instruction +; +MODE2 EQU $02 ; display list mode 2 +MODE4 EQU $04 ; display list mode 4 +MODE8 EQU $08 ; display list mode 8 +MODEE EQU $0E ; display list mode E +MODEF EQU $0F ; display list mode F +; --------------------------------------------------------------------------- +; ENUMS +; --------------------------------------------------------------------------- + +.enum @dmactl + blank = %00 + narrow = %01 + standard= %10 + wide = %11 + missiles= %100 + players = %1000 + lineX1 = %10000 + lineX2 = %00000 + dma = %100000 +.ende + +scr48 = @dmactl(wide|dma|players|missiles|lineX1) +scr40 = @dmactl(standard|dma|players|missiles|lineX1) +scr32 = @dmactl(narrow|dma|players|missiles|lineX1) + +.enum @pmcntl + missiles= %1 + players = %10 + trigs = %100 +.ende + +.enum @gtictl + prior0 = %0 + prior1 = %1 + prior2 = %10 + prior4 = %100 + prior8 = %1000 + ply5 = %10000 ; Fifth Player Enable + mlc = %100000 ; Multiple Color Player Enable + mode9 = %01000000 + mode10 = %10000000 + mode11 = %11000000 +.ende +; --------------------------------------------------------------------------- +; KBCODEs +; --------------------------------------------------------------------------- +.enum @kbcode + _none = 255 + _esc = 28 + _1 = 31 + _2 = 30 + _3 = 26 + _4 = 24 + _5 = 29 + _6 = 27 + _7 = 51 + _8 = 53 + _9 = 48 + _0 = 50 + _lt = 54 + _gt = 55 + _del = 52 + _tab = 44 + _Q = 47 + _W = 46 + _E = 42 + _R = 40 + _T = 45 + _Y = 43 + _U = 11 + _I = 13 + _O = 8 + _P = 10 + _min = 14 + _up = 14 ; cursor function + _eq = 15 + _down = 15 ; cursor function + _ret = 12 + _A = 63 + _S = 62 + _D = 58 + _F = 56 + _G = 61 + _H = 57 + _J = 1 + _K = 5 + _L = 0 + _semicolon = 2 + _plus = 6 + _left = 6 ; cursor function + _asterisk = 7 + _right = 7 ; cursor function + _caps = 60 + _Z = 23 + _X = 22 + _C = 18 + _V = 16 + _B = 21 + _N = 36 + _M = 37 + _comma = 32 + _dot = 34 + _slash = 38 + _atari = 39 + _help = 17 + _F1 = 3 + _F2 = 4 + _F3 = 19 + _F4 = 20 + _space = 33 +.ende \ No newline at end of file diff --git a/scorchC64.asm b/scorchC64.asm index 854b222..d83175d 100644 --- a/scorchC64.asm +++ b/scorchC64.asm @@ -19,7 +19,7 @@ opt h-f+ org $801 org [a($801)],$801 - basic_start(START) + basic_start(FirstSTART) ;--------------------------------------------------- @@ -153,6 +153,7 @@ FirstZpageVariable = $57 ;----------------------------------------------- ; libraries ;----------------------------------------------- + icl 'C64/lib/C64_ATARISYS.ASM' icl 'C64/lib/C64SYS.ASM' icl 'C64/lib/MACRO.ASM'