diff --git a/C64/lib/C64_ATARISYS.ASM b/C64/lib/C64_ATARISYS.ASM index 656ae8a..bb343bb 100644 --- a/C64/lib/C64_ATARISYS.ASM +++ b/C64/lib/C64_ATARISYS.ASM @@ -5,251 +5,8 @@ FAKEADDR EQU $0002 - -; -; 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 +ATRACT EQU FAKEADDR 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 ; @@ -524,44 +281,7 @@ 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 ; --------------------------------------------------------------------------- diff --git a/scorchC64.asm b/scorchC64.asm index 12f0d09..9eed48d 100644 --- a/scorchC64.asm +++ b/scorchC64.asm @@ -181,7 +181,7 @@ FirstSTART DisplayCopyPurchaseStart = 0 displayC64 = $2000 ; graphics screen memory start -; SEI ; disable IRQ + SEI ; disable IRQ LDA #$36 STA $0001 ; Turn Off BASIC ROM LDA #0 - no ;-------------------------------------------------- - lda SKSTAT - and #%00000100 - beq @+ lda #1 -@ and STRIG0 rts .endp ;-------------------------------------------------- @@ -308,7 +301,7 @@ MakeDarkScreen ;-------------------------------------------------- .proc WaitOneFrame ;-------------------------------------------------- - seq:wait ; or waitRTC ? + wait ; or waitRTC ? rts .endp diff --git a/scorchC64.prg b/scorchC64.prg index a06710b..ae26d50 100644 Binary files a/scorchC64.prg and b/scorchC64.prg differ