************************** THESE EQUATES BELOW ARE GAME SPECIFIC ************* ***********************************BUT ONLY THESE!!!!!************************ * * CHECK TO SEE IF DEBUGGING DEBUG<>0 IS ROM VERSION IFN DEBUG TSTORG EQU $D000 YOUR TEMPORARY AREA FOR THE $F000 TEST ROM (4K BLOCK) ELSE TSTORG EQU $F000 THE ROM AREA FOR THE $F000 TEST ROM (4K BLOCK) ENDIF TSBORG EQU $3B10 EQUATE FOR THE AUDITING AND CMOS HANDLING (~4K BLOCK) MESS EQU $4A50 EQUATE FOR MESS ROUTINES AND CHARACTERS (4K+ BLOCK) RAMALS EQU $A0D0 RAM AREA FOR ALL ROUTINES MUST BE SACRED (49 BYTES) * * ************************** END OF CHANGABLE EQUATES ************************** * All equates and lables from this point forth CAN NOT BE CHANGED!!! LOWRAM EQU $9C00 DMAFIX EQU $0404 INVERTED DMA'S RAM EQU RAMALS HSTK EQU $BF00 STACK FOR DECON PCRAM EQU $C000 COLOR RAM ADDR CRAM EQU $C000 COLOR RAM ADDR WDOG EQU $CBFF WHERE THE DOG LIVES WDATA EQU $39 AND WHAT TO FEED HIM AEND EQU $1620 ATOP EQU $16CA CMOS EQU $CC00 CMOS MEMORY SOUND EQU $C80E SOUND SIDE OF PIA RED EQU $55 GREEN EQU $77 VERTCT EQU $CB00 6-BIT VERTICAL BEAM ADDR RWCNTL EQU $C900 (BIT 0: 1-ROM READ; 0-RAM READ) * (BIT 1: 1-INVERT; 0-NORMAL SCREEN) * *PIA DEFINITIONS * PIA0 EQU $C80C A. SIDE OF THE COIN DOOR PIA *B0 AUTO UP *B1 ADVANCE *B2 RCOIN *B3 HSRESET *B4 LCOIN *B5 CCOIN *B6 SLAM *B7 SOUND HANDSHAKE *CA2 LED3 *CA1 IRQ 240 (16 MS) (LINE 240) PIA1 EQU $C80E B. SIDE OF THE COIN DOOR PIA *B0-B5 SOUND *B6-B7 LED 0,1 *CB1 IRQ 4 MS (0,$40,$80,$C0) *CB2 LED2 PIA2 EQU $C804 A. SIDE OF THE WIDGET (STARGATE STYLE WIDGET) *B0 PLAYER 1 MOVE LEFT *B1 PLAYER 1 MOVE RIGHT *B2 *B3 *B4 START 2 *B5 START 1 *B6 *B7 * PIA3 EQU $C806 B. SIDE OF THE WIDGET *B0 PLAYER 2 MOVE LEFT *B1 PLAYER 2 MOVE RIGHT *B7 INPUT 1=COCKTAIL *CB2 OUTPUT SWITCH MUX CONTROL 1=PLAYER1,0=PLAYER2 * * 'ENTER' - ENTER CHARACTERS....ALL OFFSETS ARE FROM REG Y. * INDEXING OFFSET EQUATES .NUMLET EQU 0 NUMBER OF LETTERS TO GET .CURLET EQU 1 CURRENT LETTER POINTER INTO BUFFER .STCHR EQU 2 THE FIRST CHARACTER OF THE CHARACTER SET .NDCHR EQU 3 THE LAST CHARACTER OF THE CHARACTER SET .SIDE EQU 4 THE CONTROL BYTE FOR THE WIDGET (UP=$3C , CT=$34) .COLOR EQU 5 THE COLOR TO WRITE THE SCREEN ECHO IN .WAKUP EQU 6 THE WAKE UP ADDRESS OF THE SLEEP (BECAUSE OF DUAL USE) .XSAVE EQU 8 THE STARTING POSITION OF THE LINE TO BE INPUTED .CURPOS EQU 10 THE CURRENT CALCULATED CURSOR POSITION .RETURN EQU 12 RETURN ADDRESS .DEBONC EQU 14 THE CURRENT DEBOUNCE TIME ON THE ENTER SWITCH .CARAC EQU 15 THE START OF THE CHARACTER BUFFER * * CMOS RAM ALLOCATION * ORG CMOS+$100 WRITABLE CMOS CREDST RMB 2 CREDITS BACKUP SLOT1 RMB 6 LEFT COIN TOTAL RMB 6 CENTER COIN TOTAL RMB 6 RIGHT COIN TOTAL RMB 6 TOTAL PAID CREDITS RMB 6 TOTAL REPLAYS RMB 6 FLIGHT TIME IN MINS RMB 6 TOTAL SHIPS PLAYED RMB 6 TOTAL GAMES PLAYED RMB 6 TOTAL SINGLE PLAYER GAMES ENDBOK RMB 6 TOTAL DUAL PLAYER GAMES SCRSIZ EQU 14 NUMBER OF NIBBLES IN A SCORE ENTRY GODNAM RMB 40 GODS NAME GODINT RMB 6 GODS INITIALS GODSCR RMB 8 GODS SCORE CMSCOR RMB 40*SCRSIZ 40 BACKED UP SCORES, 39 OF WHICH ARE VISIBLE TODAYS RMB 6*SCRSIZ TODAYS GREATEST TODEND EQU * ORG CMOS ADEQUATE BIRTH CONTROL PROTECTION REPLAY RMB 2 REPLAY LEVEL NSHIP RMB 2 # OF SHIPS/1 CREDIT GAME N2SHIP RMB 2 # OF SHIPS/2 CREDIT GAME 0=NO TWO CREDIT GAME COINSL RMB 2 FOR COINAGE SELECT MODE SLOT1M RMB 2 LEFT COIN MULT SLOT2M RMB 2 CENTER COIN MULT SLOT3M RMB 2 RIGHT COIN MULT CUNITC RMB 2 COIN UNITS PER CREDIT CUNITB RMB 2 COIN UNITS FOR BONUS MINUNT RMB 2 MINIMUM REQD GA1 RMB 2 GAME DIFFICULTY CONTROL RMB 2 NUMBER OF LETTERS ALLOWED TO GOD SPECFN RMB 2 RESTORE FACTORY SETTINGS RMB 2 CLEAR AUDIT TOTALS RMB 2 INITIALIZE HIGH SCORE TABLE RMB 2 INTIATE AUTO CYCLE RMB 2 ENTER ATTRACT MODE MESSAGE RMB 2 ENTER HIGHEST SCORE NAME ENDADJ EQU * OPMESS RMB 100 2 LINES OF 25 CHARS EACH. OPL1 RMB 2 OPL2 RMB 2 ADJSUM RMB 2 OMESUM RMB 2 * RAM NECESSARY FOR ALL PACKAGE ROUTINES ORG RAMALS ASAVE RMB 1 A SAVE LOCATION XSAVE RMB 2 (2 BYTES) TO SAVE X (DURING ROUTINE EXECUTION) FONT RMB 2 (2 BYTES) TO SAVE THE SELECTED FONT TABLE 3X5 OR 5X7 XTEMP RMB 2 FDTEST RMB 1 INDIAG RMB 1 NON ZERO INDICATES IN DIAGNOSTICS SEED RMB 1 -------| HSEED RMB 1 -------|-- RAM FOR RANDOM NUMBER GENERATOR LSEED RMB 1 -------| BCDR RMB 3 BCD DIVIDES REMAINDER (BCDN FOLLOWS) BCDN RMB 3 BCD DIVIDES NUMERATOR * BCD DIVIDES RESULT BCDD RMB 3 BCD DIVIDES DENOMINATOR BCDCNT RMB 1 BCD DIVIDES NUMBER OF DIGITS LEFT BCDTMP RMB 3 BCD DIVIDES TEMPORARY AREA FOR SUBTRACTION COLR RMB 1 COLOR STORE AREA FOR OUTCMOS * HIGH SCORE TO DATE JOUST CHAMPIONS LOCATIONS HSPP1 RMB 2 PLAYER 1 CMOS ADDRESS FOR FLASHING DURING H.S. PAGE HSPP2 RMB 2 PLAYER 2 CMOS ADDRESS FOR FLASHING DURING H.S. PAGE * HIGH SCORE TO DATE DAILY BUZZARDS LOCATIONS HSPP12 RMB 2 PLAYER 1 CMOS ADDRESS FOR FLASHING DURING H.S. PAGE HSPP22 RMB 2 PLAYER 2 CMOS ADDRESS FOR FLASHING DURING H.S. PAGE * COIN SWITCH CREDIT RAM CREDIT RMB 1 CURRENT NUMBER OF CREDITS TO AWARD CUNITS RMB 1 CURRENT NUMBER OF CREDIT UNITS BUNITS RMB 1 CURRENT NUMBER OF BONUS UNITS ANYONE RMB 1 RAM FOR INDICATING IF ANYONE HAS MADE THE SCORE TABLES FLAG RMB 1 FLAG FOR ERASING TEXT (NON-ZERO IS TO ERASE) * RAM USED IN SWITCH TEST AND REUSED IN THE TESTS MULTIPLE TIMES * THIS IS DISPENSIBABLE BECAUSE IT IS USED ONLY WHEN SELF TEST * AND BY THAT TIME YOUR SYSTEM HAS RELAESED TOTAL CONTROL * SUCH THAT IF YOU DID USE IT, IT WON'T MATTER ANYMORE SW0ST RMB 1 SW0SCN RMB 1 SW2ST RMB 1 SW2SCN RMB 1 SW3ST RMB 1 SW3SCN RMB 1 SW2STI RMB 1 SW2SCI RMB 1 SW3STI RMB 1 SW3SCI RMB 1 * VECTOR EQUATES INTO THE DIFFERENT PARTS ORG TSTORG THE $F000 BLOCK POWRUP RMB 3 POWER UP TESTING (ROM AND RAM) ADVANC RMB 3 ENTRY POINT FOR WHEN THE ADVANCE SWITCH IS PRESSED * WHEN YOU JUMP HERE YOU HAVE RELEASED TOTAL CONTROL * AND ON COMPLETION YOUR SYSTEM WILL BE RESTARTED * MY INTERNAL VECTORS AUTOCY RMB 3 AUTO CYCLE TESTING (ROM, RAM, AND COLOR RAM) NAPV RMB 3 NAP TIMER (~16ms) A. CONTAINS THE NAP TIME RANDV RMB 3 DEFENDER STYLE RANDOM NUMBER GENERATOR (CAN BE USED) VTEST RMB 3 ROUTINE THAT PUTS THE BLOCKS AROUND THE H.S.T.D TABLE VCYCLE RMB 3 ROUTINE THAT CYCLES THE COLORS FOR THE H.S.T.D TABLE ORG TSBORG THE AUDITING AND CMOS BLOCK * MOST OF THESE ARE INTERNAL VECTORS CKCMSV RMB 3 THE POWER UP TESTING OF CMOS CHECKSUMS OPTSTV RMB 3 CHECK THE OPERATOR MESSAGE CMSMOV RMB 3 CMOS MOVE ROUTINE ADVSCV RMB 3 OTHER HALF OF ADJUSTMENTS CKHSV RMB 3 CHECK HIGH SCORES (POWER UP) RSHSV RMB 3 RESET HIGH SCORES CHKHSV RMB 3 CHECK HIGH SCORES AFTER FAC SET RESTORE RESHSB RMB 3 HIGH SCORE RESET BUTTON AUDIT RMB 3 ADD THE VALUE IN B TO THE AUDIT COUNTER IN A AUDIT1 RMB 3 INCREMENT THE AUDIT COUNTER IN B BY 1 SCCLR RMB 3 DMA SCREEN CLEAR RCMSA RMB 3 READ CMOS INTO A RCMSB RMB 3 READ COMS INTO B RCMSD RMB 3 READ CMOS INTO D WCMSA RMB 3 WRITE TO CMOS FROM A WCMSB RMB 3 WRITE TO CMOS FROM B WCMSD RMB 3 WRITE TO CMOS FROM D HIGH RMB 3 HIGH SCORE OUTPUT PAGE ROUTINE ACREDV RMB 3 ADD A CREDIT TO THE CURRENT NUMBER OF CREDITS COINLV RMB 3 LEFT COIN SWITCH COINCV RMB 3 CENTER COIN SWITCH COINRV RMB 3 RIGHT COIN SWITCH DIVABV RMB 3 DIVIDE A BY B BCDHX RMB 3 CONVERT BCD TO HEX HXBCD RMB 3 CONVERT HEX TO BCD ENTRY RMB 3 GENERAL CHARACTER ENTERING ROUTINE OPWRT RMB 3 OPERATOR MESSAGE OUTPUT ROUTINE GAMEND RMB 3 GAME OVER H.S.T.D. CHECK AND ENTER ROUTINE