3365 lines
71 KiB
NASM
3365 lines
71 KiB
NASM
.MLIB "TROGMACS.LIB"
|
||
.FILE 'TROGDTST.ASM'
|
||
.TITLE "TROG DIAG TEST ROUTINES"
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COPYRIGHT (C) 1990 MIDWAY MANUFACTURING COMPANY, *
|
||
* MANUFACTURERS OF BALLY/MIDWAY AMUSEMENT GAMES. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
.INCLUDE "MPROCEQU.ASM" ;MPROC equates
|
||
.INCLUDE "DISPEQU.ASM" ;Display processor equates
|
||
.INCLUDE "GSPINC.ASM" ;GSP assembler equates
|
||
.INCLUDE "SYSINC.ASM" ;Zunit system equates
|
||
.INCLUDE "TROGEQU.ASM"
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "STRING.H"
|
||
.INCLUDE "TROGSEQU.ASM"
|
||
.INCLUDE "TROGMEQU.ASM"
|
||
.INCLUDE "TROGDIP.ASM"
|
||
.INCLUDE "TROGAUDN.ASM"
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DEFS AND REFS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
.DEF POWERTST
|
||
.DEF DIAGCPUTEST, POWERCMOS
|
||
.DEF READ_DIP, FORCEDIP
|
||
.DEF BURNIN
|
||
.DEF CHECKDIPFREE
|
||
|
||
.IF PRINTER
|
||
.ELSE
|
||
.DEF SWITCHTEST, CONV_PLOT, DIPTEST, COLORBAR
|
||
.ENDIF
|
||
|
||
|
||
.REF CIRCLE, HVLINE, STRING, RECTANGLE, POINT, DSCRCLR
|
||
.REF STRINGCENTER
|
||
.REF SNDRES,POWERRET, INITCOLR
|
||
|
||
.REF ROM_NAME, CMOS_VAL, FAC_SET, INIT_TAB, WARMSET, PCMOSRET
|
||
.REF INIT_TB, ALL_TAB, TOD_TAB
|
||
.REF GET_HSC, INIT_HSR, VAL_TAB
|
||
.REF CMOSLOCK, CMOSUNLOCK, CPU_RET, CLSCRACH, EXEC_LP, COLOR_START
|
||
.REF DIPINIT, CLRALLPD, SINTRAM, HSINTRAM, IRQLED, EXECLED
|
||
.REF WDOGRAM
|
||
.REF WC_BYTEI, RC_BYTEI, WIPEOUT, RC_LONGI, WC_LONGI
|
||
.REF CLR_AUD, STORE_AUDIT
|
||
.REF USA_1, USA_2, USA_3, USA_4, USA_ELECTITLE
|
||
.REF GERMAN_1, GERMAN_2, GERMAN_3, GERMAN_4, GERMAN_ELECTITLE
|
||
.REF FRENCH_1, FRENCH_2, FRENCH_3, FRENCH_4, FRENCH_ELECTITLE
|
||
|
||
.REF KILL_AUD, GET_AUD
|
||
.REF WDOGDIS, WDISTAB
|
||
.REF CKTEST, MAIN_INIT
|
||
|
||
.REF INITDATA, IDATAEND, IDATALEN
|
||
|
||
.REF DIPCOINTAB, SET_COIN_ADJ
|
||
.REF GET_CSPT, PUT_ADJ
|
||
.REF BLASTMESS
|
||
.REF CLEAR_HSCOLORS
|
||
.IF PRINTER
|
||
.REF OFFTIME,PBADGUY
|
||
.ENDIF
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SOME RAM FOR YOU *
|
||
* *
|
||
**************************************************************************
|
||
.BSS SWSET1,32 ; FOR SWITCH TEST
|
||
.BSS SWSET2,32
|
||
.BSS SWPREV1,32
|
||
.BSS SWPREV2,32
|
||
|
||
.BSS DIPVAL,16
|
||
|
||
.BSS FORCEDIP,16 ; FOR FORCING THE USE OF THE DIP
|
||
.BSS CERRORS,32
|
||
.BSS CPASSES,32
|
||
|
||
**************************************************************************
|
||
* *
|
||
* USEFUL MACROS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BUT_MAC $MACRO X,Y,RADIUS,COLOR,MASK,SHIFT,EXTEND
|
||
.WORD :X:
|
||
.WORD :Y:
|
||
.WORD :RADIUS:
|
||
.LONG :COLOR:
|
||
.LONG :MASK:
|
||
.WORD :SHIFT:
|
||
.WORD :EXTEND:
|
||
$END
|
||
|
||
STR_MAC $MACRO X,Y,STRING,COLOR,DIR
|
||
.WORD :X:
|
||
.WORD :Y:
|
||
.LONG :STRING:
|
||
.WORD :COLOR:
|
||
.WORD :DIR:
|
||
$END
|
||
|
||
VECMAC $MACRO COLOR,X1,Y1,X2,Y2
|
||
.WORD :COLOR:
|
||
.WORD :X1:
|
||
.WORD :Y1:
|
||
.WORD :X2:
|
||
.WORD :Y2:
|
||
$END
|
||
|
||
DOTMAC $MACRO COLOR,X,Y
|
||
.WORD :COLOR:
|
||
.WORD :X:
|
||
.WORD :Y:
|
||
$END
|
||
|
||
RECTMAC $MACRO COLOR,X,Y,W,H
|
||
.WORD :W:
|
||
.WORD :H:
|
||
.WORD :X:
|
||
.WORD :Y:
|
||
.WORD :COLOR:
|
||
$END
|
||
|
||
CHIPMAC $MACRO NUM,X1,Y1,X2,Y2,X3,Y3,STRING,DIR,X4,Y4,STUFFED
|
||
.WORD :NUM:
|
||
.WORD :X1:
|
||
.WORD :Y1:
|
||
.WORD :X2:
|
||
.WORD :Y2:
|
||
.WORD :X3:
|
||
.WORD :Y3:
|
||
.LONG :STRING:
|
||
.WORD :DIR:
|
||
.WORD :X4:
|
||
.WORD :Y4:
|
||
.WORD :STUFFED:
|
||
$END
|
||
|
||
CMNUM EQU 0
|
||
CMLOC EQU CMNUM+16
|
||
CMXLOC EQU CMLOC
|
||
CMYLOC EQU CMLOC+16
|
||
CMSIZE EQU CMLOC+32
|
||
CMXSIZE EQU CMSIZE
|
||
CMYSIZE EQU CMSIZE+16
|
||
CMOFFSET EQU CMSIZE+32
|
||
CMSTRING EQU CMOFFSET+32
|
||
CMDIR EQU CMSTRING+32
|
||
CMPINLOC EQU CMDIR+16
|
||
CMSTUFFED EQU CMPINLOC+32
|
||
CMEND EQU CMSTUFFED+16
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* RAM_CHIP: MACRO DEFINES A RAM CHIP RECORD. *
|
||
* *
|
||
* CHIP_NO -- CHIP NUMBER *
|
||
* WIDTH -- CHIP CELL SIZE IN BITS (MUST BE > 0) *
|
||
* INTERLEAVE -- DISTANCE BETWEEN ADJACENT CELLS ON CHIP (IN BITS) *
|
||
* START_ADDR -- ADDRESS OF FIRST CELL ON CHIP *
|
||
* END_ADDR -- ADDRESS OF LAST CELL ON CHIP *
|
||
* *
|
||
**************************************************************************
|
||
|
||
RAM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR
|
||
|
||
.WORD :WIDTH:
|
||
.WORD :INTERLEAVE:
|
||
.WORD :CHIP_NO:
|
||
.LONG :START_ADDR:
|
||
.LONG :END_ADDR:
|
||
.LONG :TAB_LINK:
|
||
$END
|
||
|
||
RAM_WDTH EQU 000H ; OFFSETS INTO RAM CHIP RECORD
|
||
RAM_ITLV EQU 010H
|
||
RAM_NMBR EQU 020H
|
||
RAM_SADR EQU 030H
|
||
RAM_EADR EQU 050H
|
||
RAM_LINK EQU 070H
|
||
RAM_SIZE EQU 090H
|
||
|
||
ROM_CKSM EQU 000H
|
||
ROM_WDTH EQU 010H ; OFFSETS INTO ROM CHIP RECORD
|
||
ROM_ITLV EQU 020H
|
||
ROM_NMBR EQU 030H
|
||
ROM_SADR EQU 040H
|
||
ROM_EADR EQU 060H
|
||
ROM_LINK EQU 080H
|
||
ROM_SIZE EQU 0A0H
|
||
|
||
;****************************************************************************
|
||
;* ROM_CHIP: MACRO DEFINES A ROM CHIP RECORD. *
|
||
;* *
|
||
;* CHIP_NO -- CHIP NUMBER *
|
||
;* WIDTH -- CHIP CELL SIZE IN BITS (MUST BE > 0) *
|
||
;* INTERLEAVE -- DISTANCE BETWEEN ADJACENT CELLS ON CHIP (IN BITS) *
|
||
;* START_ADDR -- ADDRESS OF FIRST CELL ON CHIP *
|
||
;* END_ADDR -- ADDRESS OF LAST CELL ON CHIP *
|
||
;* CHECK_SUM -- DATAIO CHECK SUM FOR CHIP *
|
||
;****************************************************************************
|
||
|
||
ROM_CHIP $MACRO TAB_LINK,CHIP_NO, WIDTH, INTERLEAVE, START_ADDR, END_ADDR, CHECK_SUM
|
||
|
||
.WORD :CHECK_SUM:
|
||
.WORD :WIDTH:
|
||
.WORD :INTERLEAVE:
|
||
.WORD :CHIP_NO:
|
||
.LONG :START_ADDR:
|
||
.LONG :END_ADDR:
|
||
.LONG :TAB_LINK:
|
||
|
||
$END
|
||
|
||
|
||
RANDOM_SEED EQU 5A5A5A5Ah ; RAM TESTS: PSEUDO-RANDOM SEQUENCE
|
||
ZERO_EXTEND EQU 1Fh ; PARAMETERS
|
||
SIGN_EXTEND EQU 20h
|
||
PAL_SELECT EQU 0FFDCH ; ENABLE VIDEO PALETTE MAP ACCESS
|
||
|
||
.TEXT
|
||
.EVEN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POWERCMOS *
|
||
* *
|
||
* CHECK THE CMOS AND DO A LOT OF OTHER STUFF -- SHOW THE *
|
||
* POWER UP MESSAGES *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
POWERCMOS:
|
||
DINT
|
||
MOVI SYSCINIT,A1
|
||
MOVE A1,@SYSCOPY,W
|
||
MOVE A1,@SYSCTRL,W
|
||
|
||
CALLA WDOGDIS ; GET RID OF WATCH DOG
|
||
|
||
CLR A13 ; USED TO DECIDE WHETHER PAUSE OR NOT
|
||
FCALL INITCOLR,B5 ; FIX UP THE COLORS
|
||
FCALL DSCRCLR,B6 ; MAKE SURE OF SCREEN
|
||
MOVI ROM_NAME,A0
|
||
FCALL STRINGCENTER,B6 ; GET WIDTH OF STRING
|
||
ADDI [30,0],A1
|
||
CLR A2
|
||
MOVI TROG_YELLOW,A3
|
||
FCALL STRING,B6
|
||
|
||
CALLA CMOS_VAL ; CHECKSUM AUDITS/ADJUSTMENTS
|
||
JREQ CMOSOK
|
||
|
||
CALLA FAC_SET ; BUMMER, BABY! RESET TO FACTORY
|
||
CALLA BLASTMESS
|
||
CALLA CLR_AUD
|
||
MOVI ALL_TAB,A8 ; ALWAYS CLEAR OUT TODAYS TABLE
|
||
CALLA INIT_TB
|
||
MOVI TOD_TAB,A8
|
||
CALLA INIT_TB
|
||
CALLA INIT_HSR ; RE-SET THE HIGH SCORE RESET COUNTER
|
||
|
||
MOVK 1,A13 ; FLAG ERROR
|
||
CALLA CMOS_VAL ; TRY AGAIN
|
||
JREQ CMOSB1
|
||
MOVI CMOS_BAD,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [50,0],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
MOVI CMOS_UNFAC,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [65,0],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
JRUC CMOS1
|
||
CMOSB1
|
||
MOVI CMOS_FACRES,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [50,0],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
JRUC CMOS1
|
||
CMOSOK
|
||
MOVI CMOS_OK,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [50,0],A1
|
||
CLR A2
|
||
MOVI TROG_GREEN,A3
|
||
FCALL STRING,B6
|
||
|
||
CMOS1
|
||
MOVI AUDONTIME,A0
|
||
.IF PRINTER
|
||
CALLA GET_AUD
|
||
MOVE A1,@OFFTIME,L ; SAVE THE LAST POWER TIME STUFF
|
||
.ENDIF
|
||
CLR A1
|
||
CALLA STORE_AUDIT
|
||
MOVI TOD_TAB,A8
|
||
CALLA INIT_TB ; LATER, ON TODAY'S TABLE
|
||
MOVI TOD_TAB,A8 ; OK, VALIDATE IT
|
||
CLR A2 ; FOR RECURSION
|
||
CALLA VAL_TAB
|
||
JRNC CTAGO
|
||
MOVK 1,A13 ; FLAG ERROR
|
||
MOVI CMOS_TBAD,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [77,0],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
CTAGO
|
||
MOVI ALL_TAB,A8
|
||
CALLA VAL_TAB ; VALIDATE THE ALLTIME TABLE
|
||
JRNC CTA1
|
||
MOVK 1,A13 ; FLAG ERROR
|
||
MOVI CMOS_ABAD,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [89,0],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
JRUC CMOS2
|
||
CTA1
|
||
CALLA CLEAR_HSCOLORS ; WIPE OUT ALL THE COLORATION
|
||
MOVE A2,A2
|
||
JRNZ CTA2 ; IT GOT INITIALIZED
|
||
CALLA GET_HSC ; GET HIGHSCORE COUNTER
|
||
JRNZ CMOS2 ; BR = NOT TIME YET
|
||
MOVI ADJHSRES,A0 ; GET ADJUSTED VALUE
|
||
CALLA GET_ADJ
|
||
JRZ CMOS2 ; TURNED OFF, NOTHING TO DO
|
||
|
||
MOVI ALL_TAB,A8
|
||
CALLA INIT_TB ; LATER ON ALLTIME TABLE
|
||
CTA2
|
||
MOVI CMOS_ALL,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [90,0],A1
|
||
CLR A2
|
||
MOVI TROG_GREEN,A3
|
||
FCALL STRING,B6
|
||
CALLA INIT_HSR ; RESET THE HIGHSCORE COUNTER
|
||
;
|
||
; BY HERE, THE CMOS SHOULD BE FIXED UP AS GOOD AS POSSIBLE -- NOTE
|
||
; THAT IF CMOS IS BUSTED, THE GUY IS FUCKED FOR COINAGE
|
||
;
|
||
; WITH SOME THOUGHT THAT MIGHT BE FIXABLE
|
||
;
|
||
CMOS2
|
||
CALLR READ_DIP
|
||
ANDI DPUSECMOS,A0
|
||
JRNZ CMOS3 ; BR = NOT USING CMOS COINAGE
|
||
MOVI CMOS_DIP,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [110,0],A1
|
||
CLR A2
|
||
MOVI TROG_WHITE,A3
|
||
FCALL STRING,B6
|
||
|
||
CALLR READ_DIP
|
||
MOVE A0,A2
|
||
ANDI DPCOUNTRY,A0
|
||
SRL 3,A0
|
||
ADDI DIPCOINTAB,A0
|
||
MOVE *A0,A1,L ; POINTER TO RIGHT COIN TABLE
|
||
ANDI DPCOINAGE,A2
|
||
CMPI DPCOINAGE,A2 ; CHECK FOR FREEPLAY
|
||
JRZ CMOS21
|
||
SLL 2,A2
|
||
ADD A2,A1
|
||
MOVE *A1,A1,W ; WHICH COIN TABLE TO USE
|
||
MOVI ADJPRICE,A0 ; MASTER PRICING
|
||
CALLA PUT_ADJ ; STUFF IT IN CMOS
|
||
MOVI ADJFREPL,A0
|
||
CLR A1 ; MAKE SURE NO FREEPLAY
|
||
CALLA PUT_ADJ
|
||
CMOS20
|
||
CALLA GET_CSPT
|
||
CALLA SET_COIN_ADJ ; SET THE ADJUSTMENTS UP IN CMOS
|
||
JRUC CMOS4
|
||
CMOS21
|
||
MOVI ADJFREPL,A0
|
||
MOVK 1,A1 ; FREEPLAY, DUDE!
|
||
CALLA PUT_ADJ
|
||
JRUC CMOS20
|
||
CMOS3
|
||
;
|
||
; NOT USING CMOS HERE
|
||
;
|
||
MOVI CMOS_CMOS,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [110,0],A1
|
||
CLR A2
|
||
MOVI TROG_WHITE,A3
|
||
FCALL STRING,B6
|
||
CMOS4
|
||
; CALLR PLOTCOINAGE ; PLOT SOME COINAGE
|
||
MOVE @SWITCH,A0,L ; CHECK SLAM SWITCH
|
||
NOT A0
|
||
ANDI 00080000H,A0
|
||
JRZ CMOSRET
|
||
MOVI CMOS_TILT,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [205,0],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
MOVK 1,A13 ; FLAG ERROR
|
||
CMOSRET
|
||
MOVE A13,A13
|
||
JRZ CTMP0
|
||
MOVI 0FD43H,A0
|
||
MOVE A0,@SOUND,W
|
||
MOVI 0FF43H,A0
|
||
MOVE A0,@SOUND,W ; LET HIM HEAR IT
|
||
MOVI CMOS_WAIT,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [230,0],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
CALLA WDOGDIS ; DISABLE WOOF WOOF
|
||
MOVE @SWITCH,A0,L ; HANGOUT FOR A WHILE
|
||
ANDI 86241010H,A0
|
||
MOVE A0,@SWSET1,L
|
||
MOVE @SWITCH+32,A0,L
|
||
ANDI 10H,A0
|
||
MOVE A0,@SWSET2,L
|
||
CTMP1
|
||
MOVE @SWITCH,A0,L ; GOTTA SEE IF TIME TO LEAVE
|
||
MOVE @SWSET1,A1,L
|
||
ANDI 86241010H,A0
|
||
CMP A0,A1
|
||
JRNZ CTMP2
|
||
MOVE @SWITCH+32,A0,L
|
||
MOVE @SWSET2,A1,L
|
||
ANDI 10H,A0
|
||
CMP A0,A1
|
||
JRZ CTMP1
|
||
JRUC CTMP2
|
||
CTMP0
|
||
PAUSE 200000H,B6
|
||
CTMP2
|
||
JAUC PCMOSRET
|
||
|
||
CMOS_TILT
|
||
.STRING "WARNING -- SLAM SWITCH CLOSED",0
|
||
.EVEN
|
||
|
||
CMOS_DIP
|
||
.STRING "USING DIPSWITCH COINAGE",0
|
||
.EVEN
|
||
|
||
CMOS_CMOS
|
||
.STRING "USING CMOS COINAGE",0
|
||
.EVEN
|
||
|
||
CMOS_WAIT
|
||
.STRING "ERRORS DETECTED -- ANY BUTTON TO CONTINUE",0
|
||
.EVEN
|
||
|
||
CMOS_FACRES
|
||
.STRING "CMOS INVALID -- FACTORY SETTINGS RESTORED",0
|
||
.EVEN
|
||
|
||
CMOS_BAD
|
||
.STRING "CMOS CHIP U49 BAD",0
|
||
.EVEN
|
||
|
||
CMOS_UNFAC
|
||
.STRING "UNABLE TO RESTORE FACTORY SETTINGS",0
|
||
.EVEN
|
||
|
||
CMOS_OK
|
||
.STRING "CMOS OK",0
|
||
.EVEN
|
||
|
||
CMOS_ALL
|
||
.STRING "TOP TROGS RESET",0
|
||
.EVEN
|
||
|
||
CMOS_ABAD
|
||
.STRING "UNABLE TO RESET ALLTIME HIGHSCORE TABLE",0
|
||
.EVEN
|
||
CMOS_TBAD
|
||
.STRING "UNABLE TO RESET DAILY HIGHSCORE TABLE",0
|
||
.EVEN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PLOTCOINAGE *
|
||
* *
|
||
* PLOT OUT THE CURRENT COINAGE ON THE SCREEN *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
PLOTCOINAGE:
|
||
.IF PRINTER
|
||
RETS
|
||
.ELSE
|
||
MOVI ADJFREPL,A0
|
||
CALLA GET_ADJ
|
||
JRNZ PCFREE
|
||
PC1
|
||
MOVI ADJPRICE,A0
|
||
CALLA GET_ADJ ; GET THE CURRENT PRICING
|
||
CALLA GET_CSPT
|
||
MOVE *A6(CS_LIST),A7,L
|
||
JRZ PCNOHEAD ; NO HEADER, BELIEVE IT OR NOT
|
||
MOVI [130,0],A8 ; BASE ADDRESS FOR STRING
|
||
PCNEXTHEAD
|
||
MOVE *A7+,A0,L ; PICKUP THE NEXT POINTER
|
||
JRZ PCNOHEAD
|
||
|
||
FCALL STRINGCENTER,B6
|
||
ADD A8,A1
|
||
CLR A2
|
||
MOVI TROG_YELLOW,A3
|
||
FCALL STRING,B6
|
||
ADDI [12,0],A8 ; MOVE DOWN A LINE
|
||
|
||
JRUC PCNEXTHEAD
|
||
JRUC PCNOHEAD
|
||
PCFREE
|
||
MOVI DUCOIN7,A0
|
||
FCALL STRINGCENTER,B6
|
||
ADDI [130,0],A1
|
||
CLR A2
|
||
MOVI TROG_YELLOW,A3
|
||
FCALL STRING,B6
|
||
|
||
PCNOHEAD
|
||
RETS
|
||
.ENDIF
|
||
|
||
**************************************************************************
|
||
* *
|
||
* *
|
||
* CPU TESTING ROUTINES *
|
||
* *
|
||
* *
|
||
**************************************************************************
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BURNIN *
|
||
* *
|
||
* FACTORY BURNIN TEST -- EXITS BY RESETING THE GAME *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
* CALL *
|
||
* JAUC *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BURNIN:
|
||
CALLA WDOGDIS ; LATER ON WOOF WOOF
|
||
DINT
|
||
MOVI AUDAUTO,A0 ; ZERO OUT BURNIN AUDIT
|
||
CALLA KILL_AUD
|
||
BURNLOOP
|
||
FCALL CPUTEST,SP
|
||
BURNSP:
|
||
SETF 16,1,0
|
||
SETF 32,1,1
|
||
MOVI STCKST,SP,L ; MIGHT HELP TO RESTORE THE STACK PTR
|
||
MOVI AUDAUTO,A0
|
||
CALLA AUD1 ; ANOTHER ONE WORKED
|
||
JRUC BURNLOOP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DIAGCPUTEST *
|
||
* *
|
||
* DIAGNOSTIC CALL FOR THE CPU TEST *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* JUMPS TO *EXEC_LP* AFTER SETTING EVERYTHING UP *
|
||
* *
|
||
* CALL *
|
||
* JAUC *
|
||
* *
|
||
**************************************************************************
|
||
|
||
DIAGCPUTEST:
|
||
CALLA WDOGDIS
|
||
DINT
|
||
FCALL CPUTEST,SP
|
||
DIAGSP:
|
||
;
|
||
SETF 16,1,0 ; WORD NO SIGN EXTEND
|
||
SETF 32,1,1 ; LONG WORD
|
||
MOVI STCKST,SP,L
|
||
CALLA CLSCRACH
|
||
MOVI SYSCINIT,A0
|
||
MOVE A0,@SYSCOPY,W
|
||
MOVE A0,@SYSCTRL,W ; GET EVERYBODY HAPPY
|
||
|
||
CALLA MAIN_INIT
|
||
|
||
CALLA COLOR_START ;FIRE UP THE COLORS
|
||
|
||
EINT ; ENABLE INTERRUPTS AND WE'RE OFF
|
||
DISPON ; ENABLE THE DISPLAY SYSTEM
|
||
CREATE DIAG_PID,CPU_RET
|
||
MOVI INDIAG,A0
|
||
MOVE A0,@GAME_STATE,W
|
||
JAUC EXEC_LP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POWERCPUTEST *
|
||
* *
|
||
* CHECK OUT THE CPU ON POWER ON *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* JUMPS TO *PONTEST* *
|
||
* *
|
||
* CALL *
|
||
* JAUC *
|
||
* *
|
||
**************************************************************************
|
||
|
||
POWERCPUTEST:
|
||
DINT
|
||
.IF YUNIT
|
||
MOVE @DIPSWITCH,A0,L ; CHECK FOR POWER ON BYPASS
|
||
NOT A0
|
||
ANDI 2000H,A0
|
||
JANZ PONTEST
|
||
.ELSE
|
||
JAUC PONTEST
|
||
.ENDIF
|
||
FCALL CPUTEST,SP
|
||
JAUC PONTEST
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CPUTEST *
|
||
* *
|
||
* THE ACTUAL CPU TEST STUFF *
|
||
* *
|
||
* ENTRY *
|
||
* SP RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* WHO KNOWS *
|
||
* *
|
||
* CALL *
|
||
* FCALL CPUTEST,SP *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CPUTEST:
|
||
CLR B0
|
||
MOVI 0FFFCH,A13
|
||
MOVE A13,@SYSCTRL,W ; MAKE SURE VIDEO PALETTE DISABLED
|
||
MOVI VRAMCHIPS, A14 ; VERIFY COLOR/VIDEO RAMS
|
||
FCALL RAMCHECK, B5
|
||
|
||
; ENABLE VIDEO PALETTE MAP ACCESS
|
||
|
||
MOVI PAL_SELECT, A13
|
||
MOVE A13,@SYSCTRL,W
|
||
MOVI PALCHIPS, A14 ; VERIFY VIDEO PALETTE MAP RAMS
|
||
FCALL RAMCHECK, B5
|
||
MOVE B0,A12
|
||
|
||
; DISABLE VIDEO PALETTE MAP ACCESS
|
||
|
||
MOVI 0FFFCH,A13
|
||
MOVE A13,@SYSCTRL,W
|
||
FCALL INITCOLR, B5 ; DISPLAY CPU BOARD
|
||
FCALL DSCRCLR,B6
|
||
|
||
FCALL CPUDRAW,B5
|
||
MOVI CPU,A10 ; WE GOT THIS FAR, CPU MUST BE OK
|
||
MOVI 1,A11
|
||
FCALL CHIPOUT,B5
|
||
|
||
MOVI VRAMTAB,A9
|
||
FCALL CHIPTABLE,B5 ; PLOT OUT THE CHIP TABLE
|
||
|
||
MOVE A12,A12
|
||
JRZ PDMACK
|
||
PBADRAM
|
||
MOVI RAMBADMESS,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
JRUC PCPUBAD
|
||
|
||
PDMACK
|
||
MOVI DMACMESS,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI TROG_YELLOW,A3
|
||
FCALL STRING,B6
|
||
|
||
FCALL DMACHECK,B5 ; CHECK THE DMA
|
||
MOVI DMA,A10
|
||
MOVE A0,A11
|
||
MOVE A0,A12
|
||
INC A11 ; GREEN/RED
|
||
FCALL CHIPOUT,B5
|
||
|
||
MOVI [128,130],A0
|
||
MOVI [10,260],A1
|
||
MOVI TROG_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
|
||
MOVE A12,A12
|
||
JRZ PSRAMCK
|
||
MOVI DMABADMESS,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
JRUC PCPUBAD
|
||
|
||
PSRAMCK
|
||
MOVI SRAMCHECK,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI TROG_YELLOW,A3
|
||
FCALL STRING,B6
|
||
|
||
CLR B0
|
||
MOVI SRAMCHIPS,A14 ; VERIFY SCRATCH RAMS
|
||
FCALL RAMCHECK, B5
|
||
MOVE B0,A12
|
||
|
||
MOVI [128,130],A0
|
||
MOVI [10,260],A1
|
||
MOVI TROG_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
|
||
MOVE A12,A12
|
||
JRNZ PBADRAM
|
||
|
||
PROMCK
|
||
MOVI ROMCMESS,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI TROG_YELLOW,A3
|
||
FCALL STRING,B6
|
||
|
||
CLR B0
|
||
MOVI PROMCHIPS,A14
|
||
FCALL ROMCHECK,B5
|
||
MOVE B0,B0
|
||
; JRNZ PBADROM ; FOR NOW, WOOF WOOF
|
||
|
||
CLR B0 ; CHECK ROMS
|
||
MOVI IROMCHIPS,A14
|
||
FCALL ROMCHECK,B5
|
||
|
||
MOVE B0,A12
|
||
MOVI [128,130],A0
|
||
MOVI [10,260],A1
|
||
MOVI TROG_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
|
||
MOVE A12,A12
|
||
JRZ PCPUGOOD
|
||
|
||
PBADROM
|
||
MOVI [128,130],A0
|
||
MOVI [10,260],A1
|
||
MOVI TROG_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
MOVI ROMBADMESS,A0
|
||
MOVI [128,130],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
|
||
PCPUBAD
|
||
MOVI CPUPAUSE,A0
|
||
MOVI [143,130],A1
|
||
CLR A2
|
||
MOVI TROG_RED,A3
|
||
FCALL STRING,B6
|
||
|
||
PCPUWAIT
|
||
MOVI 0FD43H,A0
|
||
MOVE A0,@SOUND,W
|
||
MOVI 0FF43H,A0
|
||
MOVE A0,@SOUND,W ; LET HIM HEAR IT
|
||
MOVE A13,B5
|
||
PAUSE 10000,B6
|
||
MOVE @SWITCH,A0,L
|
||
ANDI 86241010H,A0
|
||
MOVE A0,@SWSET1,L
|
||
MOVE @SWITCH+32,A0,L
|
||
ANDI 10H,A0
|
||
MOVE A0,@SWSET2,L
|
||
MOVI -1,B0 ; ASSUME DON'T TIMEOUT
|
||
CMPI DIAGSP,SP
|
||
JRZ PCPUTMP1
|
||
CMPI BURNSP,SP
|
||
JRZ PCPUTMP1
|
||
MOVI 200000H,B0
|
||
PCPUTMP1
|
||
MOVE B0,B0
|
||
JRN PCPUNOTIMEOUT
|
||
DEC B0
|
||
JRZ PCPURET ; TIMEOUT HERE
|
||
PCPUNOTIMEOUT
|
||
MOVE @SWITCH,A0,L ; GOTTA SEE IF TIME TO LEAVE
|
||
MOVE @SWSET1,A1,L
|
||
ANDI 86241010H,A0
|
||
CMP A0,A1
|
||
JRNZ PCPURET
|
||
MOVE @SWITCH+32,A0,L
|
||
ANDI 10H,A0
|
||
MOVE @SWSET2,A1,L
|
||
CMP A0,A1
|
||
JRNZ PCPURET
|
||
JRUC PCPUTMP1
|
||
|
||
PCPUGOOD
|
||
CLR A0
|
||
JRUC PCPUREALRET
|
||
PCPURET
|
||
MOVK 1,A0
|
||
PCPUREALRET
|
||
MOVE A0,A0
|
||
FRET SP
|
||
|
||
DMACMESS
|
||
.STRING "CHECKING CUSTOM",0
|
||
.EVEN
|
||
DMABADMESS
|
||
.STRING "CUSTOM CHIP U99 BAD",0
|
||
.EVEN
|
||
|
||
ROMCMESS
|
||
.STRING "CHECKING ROMS",0
|
||
.EVEN
|
||
ROMBADMESS
|
||
.STRING "ROM CHIPS BAD",0
|
||
.EVEN
|
||
|
||
RAMBADMESS
|
||
.STRING "RAM CHIPS BAD",0
|
||
.EVEN
|
||
|
||
CPUGOOD
|
||
.STRING "CPU BOARD OK",0
|
||
.EVEN
|
||
|
||
CPUWAIT1
|
||
CPUPAUSE
|
||
.STRING "PRESS ANY BUTTON",0
|
||
.EVEN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CPUDRAW *
|
||
* *
|
||
* PLOT THE CPU BOARD AND DRAW ALL THE CHIPS *
|
||
* *
|
||
* ENTRY *
|
||
* B5 RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CPUDRAW:
|
||
MOVI CPU_VECS,A9 ; POINT AT VECTOR TABLE
|
||
CPUDLP1
|
||
MOVE *A9+,A2,W ; GET COLOR
|
||
JRZ CPUD1
|
||
MOVE *A9+,A0,L ; START POINT
|
||
MOVE *A9+,A1,L ; END POINT
|
||
FCALL HVLINE,B6
|
||
JRUC CPUDLP1
|
||
CPUD1
|
||
MOVE B5,A13
|
||
FCALL CHIPPLOT,B5 ; PLOT ALL THE CHIPS
|
||
MOVI BOARDSTRING,A0
|
||
MOVI [25,11],A1
|
||
CLR A2
|
||
MOVI TROG_WHITE,A3
|
||
FCALL STRING,B6
|
||
MOVI BOARDSTRING2,A0
|
||
MOVI [37,13],A1
|
||
FCALL STRING,B6
|
||
MOVE A13,B5
|
||
FRET B5
|
||
|
||
BOARDSTRING
|
||
.STRING "C-13234-40003",0
|
||
.EVEN
|
||
|
||
BOARDSTRING2
|
||
.STRING " TROG",0
|
||
.EVEN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHIPTABLE *
|
||
* *
|
||
* UPDATE A LIST OF CHIPS, BASED ON THEIR VALUES IN A12 *
|
||
* *
|
||
* ENTRY *
|
||
* A9 POINTER TO TABLE *
|
||
* A12 LIST OF ON/OFF BITS *
|
||
* B5 RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHIPTABLE:
|
||
MOVE B5,A14
|
||
CTABLOOP
|
||
MOVE *A9+,A10,L ; GET POINTER TO CHIP RECORD
|
||
JRZ CTABDONE
|
||
MOVK 1,A11
|
||
MOVE *A10(CMNUM),A0,W ; GET THE BIT NUMBER
|
||
BTST A0,A12 ; CHECK BIT NUMBER
|
||
JRZ CTABL2
|
||
MOVK 2,A11
|
||
CTABL2
|
||
FCALL CHIPOUT,B5
|
||
JRUC CTABLOOP
|
||
|
||
CTABDONE
|
||
MOVE A14,B5
|
||
FRET B5
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHIPPLOT *
|
||
* *
|
||
* PLOT OUT THE CHIP LIST *
|
||
* *
|
||
* ENTRY *
|
||
* B5 RET VALUE *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
**************************************************************************
|
||
|
||
CHIPPLOT:
|
||
MOVE B5,A14
|
||
MOVI CPU_CHIPS,A10
|
||
CPPLOTLOOP
|
||
CLR A11
|
||
MOVE *A10,A0,L
|
||
JRZ CPPLOTDONE
|
||
FCALL CHIPOUT,B5
|
||
ADDI CMEND,A10
|
||
JRUC CPPLOTLOOP
|
||
|
||
CPPLOTDONE
|
||
MOVE A14,B5
|
||
FRET B5
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHIPOUT *
|
||
* *
|
||
* ACTUALLY PLOT THE CHIP *
|
||
* *
|
||
* ENTRY *
|
||
* A10 POINTS TO CHIP TO PLOT *
|
||
* A11 COLOR OF CHIP *
|
||
* 00 = OUTLINE *
|
||
* 01 = GREEN *
|
||
* 02 = RED *
|
||
* 03 = GREY *
|
||
* *
|
||
* EXIT *
|
||
* A10 IS INTACT *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHIPOUT:
|
||
MOVE *A10(CMLOC),A5,L ; CHIP OUTLINE
|
||
MOVE A5,A6
|
||
MOVE A5,A7
|
||
MOVE A5,A8
|
||
MOVE *A10(CMXSIZE),A0,W
|
||
ADD A0,A6
|
||
ADD A0,A7
|
||
MOVE *A10(CMYSIZE),A0,W
|
||
SLL 16,A0
|
||
ADD A0,A7
|
||
ADD A0,A8
|
||
MOVE A5,A0
|
||
MOVE A6,A1
|
||
MOVI TROG_WHITE,A2
|
||
FCALL HVLINE,B6
|
||
MOVE A6,A0
|
||
MOVE A7,A1
|
||
MOVI TROG_WHITE,A2
|
||
FCALL HVLINE,B6
|
||
MOVE A8,A0
|
||
MOVE A7,A1
|
||
MOVI TROG_WHITE,A2
|
||
FCALL HVLINE,B6
|
||
MOVE A5,A0
|
||
MOVE A8,A1
|
||
MOVI TROG_WHITE,A2
|
||
FCALL HVLINE,B6
|
||
;
|
||
MOVE *A10(CMSTUFFED),A0,W ; CHECK FOR STUFFED
|
||
JRNZ CONOSTUF
|
||
MOVK 3,A11 ; WANT IT GREY, DUDE
|
||
|
||
CONOSTUF
|
||
MOVE A11,A11 ; CHECK FOR FILLING THE CHIP
|
||
JRZ CONOFILL
|
||
MOVE *A10(CMLOC),A0,L
|
||
ADDI 00010001H,A0
|
||
MOVE *A10(CMSIZE),A1,L
|
||
SUBI 00010001H,A1 ; GET INTERNAL AREA
|
||
MOVE A11,A2
|
||
SLL 4,A2
|
||
ADDI CHIPCOLORS,A2
|
||
MOVE *A2,A2,W ; GET ME A COLOR
|
||
FCALL RECTANGLE,B6
|
||
CONOFILL
|
||
MOVE *A10(CMPINLOC),A1,L ; PIN LOCATION
|
||
MOVE A5,A0
|
||
ADD A1,A0
|
||
MOVI TROG_WHITE,A1
|
||
FCALL POINT,B6
|
||
|
||
MOVE *A10(CMSTRING),A0,L ; CHIP TEXT
|
||
MOVE A5,A1
|
||
MOVE *A10(CMOFFSET),A2,L
|
||
ADD A2,A1
|
||
MOVE *A10(CMDIR),A2,W
|
||
MOVI TROG_BLACK,A3
|
||
MOVE A11,A11 ; CHECK FOR COLOR
|
||
JRNZ COBLACK
|
||
MOVI TROG_WHITE,A3
|
||
COBLACK
|
||
FCALL STRING,B6
|
||
FRET B5
|
||
|
||
CHIPCOLORS:
|
||
.WORD TROG_BLACK
|
||
.WORD TROG_GREEN
|
||
.WORD TROG_RED
|
||
.WORD TROG_GREY
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DMACHECK *
|
||
* *
|
||
* CHECK THE DMA OUT *
|
||
* *
|
||
* ENTRY *
|
||
* B5 RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* A0 DMA STATUS *
|
||
* 0 = GOOD *
|
||
* 1 = BAD *
|
||
* *
|
||
**************************************************************************
|
||
|
||
DMACHECK
|
||
MOVI [1,448],A14,L ; BLOW OUT TRADEMARK
|
||
MOVE A14,@DMAHSIZE,1
|
||
|
||
CLR A14
|
||
MOVE A14,@DMAOFFST ; OFFSET
|
||
MOVE A14,@DMACONST,0 ; CONSTANT
|
||
MOVE A14,@DMAHORIZ,1 ; CLEAR DESTINATION ADDRESS
|
||
MOVI 2000000H,A14
|
||
MOVE A14,@DMASAGL,1
|
||
MOVI 257,A14
|
||
MOVE A14,@DMAVERT,W ; NEAT NEW VERTICAL ADDRESS
|
||
.IF YUNIT
|
||
MOVI 5050H,A14
|
||
.ELSE
|
||
MOVI 0505H,A14
|
||
.ENDIF
|
||
MOVE A14, @DMACMAP, 0
|
||
|
||
; MOVI 8042H, A14
|
||
MOVI 8003H,A14 ; USE IMAGE ROM - WRITE ALWAYS
|
||
MOVE A14, @DMACTRL, 0
|
||
|
||
MOVI 7FFFH,A14
|
||
DMACWAIT
|
||
MOVE @DMACTRL,A0,W ;DMA BUSY?
|
||
JRNN DMADONE
|
||
DSJS A14,DMACWAIT
|
||
JRUC DMACBAD ; DMA TIMED OUT
|
||
|
||
DMADONE
|
||
CLR A0 ; GET BACK TO A REAL PALETTE
|
||
MOVE A0, @DMACMAP, 0
|
||
MOVI 0101000H,A0 ; LOCATION
|
||
MOVI 2000000H,A1 ; DMA LOGO LOCATION
|
||
MOVI 448,A2 ; NUMBER OF BYTES TO COMPARE
|
||
DMACLOOP
|
||
MOVB *A0,A3
|
||
ANDI 0FH,A3 ; MASK, SINCE IT IS 4 BITS, DUDE!
|
||
MOVB *A1,A4
|
||
ANDI 0FH,A4 ; WELL, WE KNOW WHAT IT SHOULD BE, BUT...
|
||
ADDK 8,A0
|
||
ADDK 8,A1
|
||
CMP A3,A4
|
||
JRNZ DMACBAD
|
||
DSJS A2,DMACLOOP
|
||
;
|
||
; NOW CHECK OUT THE PALETTE END OF THINGS
|
||
;
|
||
MOVI PAL_SELECT, A13
|
||
MOVE A13,@SYSCTRL,W ; ENABLE PALETTE
|
||
|
||
MOVI 0101000H,A0 ; LOCATION
|
||
MOVI 224,A2 ; NUMBER OF BYTES TO COMPARE
|
||
DMACLOOP2
|
||
MOVE *A0+,A3,W
|
||
.IF YUNIT
|
||
ANDI 0F0F0H,A3
|
||
CMPI 5050H,A3
|
||
.ELSE
|
||
CMPI 0505H,A3
|
||
.ENDIF
|
||
JRNZ DMACBAD
|
||
DSJS A2,DMACLOOP2
|
||
CLR A0
|
||
JRUC DMACRET
|
||
DMACBAD
|
||
MOVK 1,A0
|
||
DMACRET
|
||
MOVI 0FFFCH,A13
|
||
MOVE A13,@SYSCTRL,W
|
||
MOVE A0,A0
|
||
FRET B5
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POWERTST *
|
||
* *
|
||
* POWERUP SELF TEST ROUTINES *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
POWERTST
|
||
DINT
|
||
SETF 16, 0, 0
|
||
SETF 32, 0, 1
|
||
MOVI STCKST,SP,L
|
||
|
||
; HALT DMA AND ENABLE CACHE
|
||
|
||
CLR A14
|
||
MOVE A14, @DMACTRL
|
||
MOVE A14, @CONTROL
|
||
|
||
.IF 0
|
||
; RESET SOUND BOARD
|
||
|
||
MOVI 0FB00H, A14
|
||
MOVE A14, @SOUND_BOARD
|
||
CLR A14
|
||
NOT A14
|
||
MOVE A14, @SOUND_BOARD
|
||
.ENDIF
|
||
|
||
; DISABLE VIDEO PALETTE RAMS, AUTOERASE AND ERROR LED
|
||
|
||
MOVI 0FFFCH,A13
|
||
MOVE A13,@SYSCTRL,W
|
||
|
||
; DISABLE WATCH DOG
|
||
|
||
SETF 16,1,0 ;SIGN EXTENSION ON FOR THIS
|
||
MOVI WDISTAB,A1
|
||
MOVK 1,A3
|
||
MOVI 0FFFCH,A2
|
||
MOVE *A1+,A0,W
|
||
WDOGSL
|
||
OR A2,A0
|
||
MOVE A0,@SYSCTRL,W
|
||
XOR A3,A0
|
||
MOVE A0,@SYSCTRL,W
|
||
MOVE *A1+,A0,W
|
||
JRNN WDOGSL
|
||
|
||
SETF 16,0,0 ;BACK OFF FOR BEGLEMAN SHIT
|
||
|
||
; INITIALIZE IO REGISTERS
|
||
|
||
MOVI HESYNC,B2,L
|
||
MOVI INITDATA,B0,L
|
||
; MOVI (IDATAEND-INITDATA)/16,B10
|
||
MOVI IDATALEN,B10
|
||
INITIOS:
|
||
MOVE *B0+,*B2+
|
||
DSJS B10,INITIOS
|
||
|
||
JRUC POWERCPUTEST
|
||
PONTEST
|
||
|
||
; MOVI 0FFFBH,A0
|
||
MOVI SYSCINIT,A0
|
||
MOVE A0,@SYSCOPY,W
|
||
MOVE A0,@SYSCTRL,W
|
||
JAUC POWERRET
|
||
|
||
**************************************************************************
|
||
* *
|
||
* RAMCHECK *
|
||
* *
|
||
* CHECK A BANK OF RAM, GIVEN A STARTING TABLE ADDRESS *
|
||
* *
|
||
* ENTRY *
|
||
* A14 POINTER TO RAM TABLE *
|
||
* B5 RETURN ADDRESS *
|
||
* *
|
||
* EXIT *
|
||
* B0 LIST OF ERRORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
RAMCHECK:
|
||
SETF 16, 0, 0
|
||
SETF 32, 0, 1
|
||
|
||
; SNAG NEXT CHIP RECORD
|
||
|
||
RAMLOOP:
|
||
CLR B2
|
||
MOVE *A14(RAM_SADR),A12,L ; STARTING ADDRESS
|
||
MOVE *A14(RAM_EADR),A13,L ; ENDING ADDRESS
|
||
MOVE *A14(RAM_ITLV),A11,W ; INTERLEAVE
|
||
MOVE *A14(RAM_WDTH),A10,W ; WIDTH
|
||
|
||
; CELL COUNT
|
||
|
||
SUB A12, A13 ; (END-START)/INTERLEAVE+1
|
||
DIVU A11, A13
|
||
INC A13
|
||
|
||
; SET FIELD SIZES
|
||
|
||
MOVE A11, A9 ; FS1 = INTERLEAVE
|
||
ANDI ZERO_EXTEND, A9
|
||
EXGF A9, 1
|
||
|
||
MOVE A10, A9 ; FS0 = WIDTH
|
||
ANDI ZERO_EXTEND, A9
|
||
EXGF A9, 0
|
||
|
||
; FILL IN ASCENDING ORDER
|
||
|
||
MOVE A13, A9 ; XEROX COUNT
|
||
MOVE A12, A8 ; XEROX START
|
||
|
||
MOVI RANDOM_SEED, A7, L
|
||
CLR A5
|
||
|
||
RAC1: SLA 1, A7 ; GENERATE A PSEUDO
|
||
JRV RAC2 ; RANDOM NUMBER
|
||
ORI 2, A7
|
||
RAC2: MOVE A7, A6
|
||
ADDC A5, A6
|
||
|
||
MOVE A6, *A8+, 1 ; WRITE
|
||
|
||
DSJS A9, RAC1
|
||
|
||
; READBACK IN ASCENDING ORDER
|
||
|
||
MOVE A13, A9 ; XEROX COUNT
|
||
MOVE A12, A8 ; XEROX START
|
||
|
||
MOVI RANDOM_SEED, A7, L
|
||
|
||
RAC3: SLA 1, A7 ; GENERATE A PSEUDO
|
||
JRV RAC4 ; RANDOM NUMBER
|
||
ORI 2, A7
|
||
RAC4: MOVE A7, A6
|
||
ADDC A5, A6
|
||
|
||
MOVE *A8+, A4, 1 ; READ
|
||
|
||
ZEXT A6
|
||
ZEXT A4
|
||
|
||
CMP A6, A4
|
||
JRZ RAC5
|
||
;
|
||
; GOT AN ERROR HERE
|
||
;
|
||
SETF 16, 0, 0 ; RESET FIELDS
|
||
SETF 32, 0, 1
|
||
MOVE *A14(RAM_NMBR),A4,W ; GET BIT NUMBER TO SET
|
||
MOVE A4,B1
|
||
MOVK 1,B2
|
||
SLL B1,B2
|
||
OR B2,B0 ; SET THAT BIT
|
||
JRUC RAC6 ; BREAK !!
|
||
|
||
RAC5: DSJS A9, RAC3
|
||
|
||
RAC6: SETF 16, 0, 0 ; RESET FIELDS
|
||
SETF 32, 0, 1
|
||
;
|
||
; B1 SHOULD BE ZERO IF THE CHIP IS COOL HERE
|
||
;
|
||
MOVE *A14(RAM_LINK),A10,L
|
||
JRZ RAMNOPLOT
|
||
MOVK 1,A11
|
||
MOVE B2,B2
|
||
JRZ RAMPLOT
|
||
MOVK 2,A11
|
||
RAMPLOT
|
||
MOVE B5,A9 ; I HOPE THIS ONE IS SAFE!
|
||
MOVE B0,A13
|
||
FCALL CHIPOUT,B5
|
||
MOVE A13,B0
|
||
MOVE A9,B5
|
||
|
||
RAMNOPLOT
|
||
ADDI RAM_SIZE,A14 ; ADVANCE TO NEXT GUY
|
||
MOVE *A14,A7,W
|
||
JRNZ RAMLOOP ; HERE WE GO AGAIN
|
||
FRET B5
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ROM STUFF *
|
||
* *
|
||
**************************************************************************
|
||
|
||
ROMCHECK:
|
||
|
||
ROMLOOP
|
||
CLR B2
|
||
MOVE *A14(ROM_CKSM),A13,L ; CHECK TO SEE IF ROM SOCKET THERE
|
||
JRZ ROMEMPTY
|
||
|
||
MOVE *A14(ROM_SADR),A12,L ; STARTING ADDRESS
|
||
MOVE *A14(ROM_EADR),A13,L ; ENDING ADDRESS
|
||
MOVE *A14(ROM_ITLV),A11,W ; INTERLEAVE
|
||
MOVE *A14(ROM_WDTH),A10,W ; WIDTH
|
||
JRZ PROG_ROM
|
||
;
|
||
; SUM UP A GIVEN IMAGE ROM -- THIS IS ONLY FOR 4BIT SYSTEMS
|
||
;
|
||
SUB A12,A13 ; ( EADDR - SADDR ) / 32 + 1
|
||
MOVK 32,A0
|
||
DIVU A0,A13
|
||
INC A13
|
||
;
|
||
CLR A8 ; CHECKSUM
|
||
;
|
||
*DETERMINE WHICH ROM WE ARE CHECKSUMMING, SHIFTING IS DIFFERENT FOR EACH
|
||
SLL 1,A11
|
||
NEG A11
|
||
|
||
RC_ROM0
|
||
MOVE *A12+,A7,L
|
||
SRL A11,A7
|
||
|
||
CLR A0 ; WORK AREA
|
||
CLR A1 ; CONSTRUCTED BYTE
|
||
|
||
MOVE A7,A0
|
||
SLL 30,A0
|
||
SRL 30,A0
|
||
|
||
MOVE A0,A1 ; FIRST TWO BITS
|
||
MOVE A7,A0
|
||
SRL 8,A0
|
||
SLL 30,A0
|
||
SRL 28,A0
|
||
|
||
OR A0,A1 ; BITS 3-2
|
||
MOVE A7,A0
|
||
SRL 16,A0
|
||
SLL 30,A0
|
||
SRL 26,A0
|
||
|
||
OR A0,A1 ; BITS 5-4
|
||
SRL 24,A7
|
||
SLL 30,A7
|
||
SRL 24,A7
|
||
|
||
OR A7,A1 ; BITS 7-6
|
||
|
||
ADD A1,A8
|
||
ZEXT A8
|
||
DSJ A13,RC_ROM0
|
||
JRUC ROMCKCK
|
||
|
||
|
||
*CHECKSUM ROUTINE FOR PROGRAM ROM
|
||
PROG_ROM
|
||
SUB A12,A13 ; ( EADDR - SADDR ) / 32 + 1
|
||
SRL 4,A13
|
||
INC A13
|
||
CLR A8 ; CHECKSUM
|
||
RCPLP
|
||
MOVB *A12,A7
|
||
SLL 24,A7
|
||
SRL 24,A7
|
||
ADDK 16,A12
|
||
ADD A7,A8
|
||
DSJS A13,RCPLP
|
||
|
||
MOVE *A14(ROM_NMBR),A4,W ;WHICH PROGRAM ROM ARE WE CHECKING?
|
||
JRNZ PROGRAM_1 ;BR = HIGH BYTE ROM
|
||
MOVE @CHECKSUM0,A7,W ;LOAD HARD CODED CHECKSUM
|
||
JRUC ROM_COMPARE
|
||
PROGRAM_1
|
||
MOVE @CHECKSUM1,A7,W
|
||
JRUC ROM_COMPARE
|
||
|
||
*LAND HERE FROM IMAGE CHECKSUM TO DETERMINE IF WE HIT IT
|
||
ROMCKCK
|
||
MOVE *A14(ROM_CKSM),A7,W
|
||
ROM_COMPARE
|
||
ZEXT A7
|
||
ZEXT A8
|
||
CMP A7,A8
|
||
JRZ ROMRELOOP
|
||
|
||
MOVE *A14(ROM_NMBR),A4,W ; GET BIT NUMBER TO SET
|
||
MOVE A4,B1
|
||
MOVK 1,B2
|
||
SLL B1,B2
|
||
OR B2,B0 ; SET THAT BIT
|
||
ROMRELOOP
|
||
MOVE *A14(ROM_LINK),A10,L
|
||
JRZ ROMNOPLOT
|
||
MOVK 1,A11
|
||
MOVE B2,B2
|
||
JRZ ROMPLOT
|
||
MOVK 2,A11
|
||
ROMPLOT
|
||
MOVE B5,A9 ; I HOPE THIS ONE IS SAFE!
|
||
MOVE B0,A13
|
||
FCALL CHIPOUT,B5
|
||
MOVE A13,B0
|
||
MOVE A9,B5
|
||
|
||
ROMNOPLOT
|
||
ADDI ROM_SIZE,A14
|
||
JRUC ROMLOOP
|
||
;
|
||
ROMEMPTY
|
||
FRET B5
|
||
|
||
|
||
|
||
.IF PRINTER
|
||
.ELSE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MONITOR STUFF *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CONV_PLOT:
|
||
MOVI MON_RECS,A9
|
||
CPRLP1
|
||
MOVE *A9+,A2,W ; GET COLOR
|
||
JRZ CPRDONE
|
||
MOVE *A9+,A0,L ; START POINT
|
||
MOVE *A9+,A1,L ; DIMENSIONS
|
||
FCALL RECTANGLE,B6
|
||
JRUC CPRLP1
|
||
CPRDONE
|
||
MOVI MON_VECS,A9 ; POINT AT VECTOR TABLE
|
||
CPVLP1
|
||
MOVE *A9+,A2,W ; GET COLOR
|
||
JRZ CPVDONE
|
||
MOVE *A9+,A0,L ; START POINT
|
||
MOVE *A9+,A1,L ; END POINT
|
||
FCALL HVLINE,B6
|
||
JRUC CPVLP1
|
||
CPVDONE
|
||
MOVI MON_DOTS,A9 ; POINT AT DOT TABLE
|
||
CPDLP1
|
||
MOVE *A9+,A1,W ; GET COLOR
|
||
JRZ CPDDONE
|
||
MOVE *A9+,A0,L ; GET THE POINT
|
||
FCALL POINT,B6
|
||
JRUC CPDLP1
|
||
CPDDONE
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COLORBAR *
|
||
* *
|
||
**************************************************************************
|
||
|
||
COLORBAR:
|
||
|
||
; =========================
|
||
; | SET PALETTE 0 FOR |
|
||
; | COLOR BARS. |
|
||
; =========================
|
||
|
||
MOVI INTENSITIES_START,A0,L
|
||
MOVI COLRAM+(7*PALSIZE),A1,L ; START AT PALETTE 8 CAUSE OF CYCLERS
|
||
|
||
MOVK 16,A2 ; 5 BITS / COLOR
|
||
MOVK 8,A6 ; # COLOR BARS
|
||
CB3 MOVE *A0+,A3 ; STARTING COLOR
|
||
MOVE *A0+,A4 ; COLOR DECREMENT
|
||
MOVE A2,A5
|
||
CB4 MOVE A3,*A1+
|
||
SUB A4,A3
|
||
DSJS A5,CB4
|
||
DSJS A6,CB3
|
||
|
||
; =========================
|
||
; | DISPLAY COLOR BARS |
|
||
; =========================
|
||
|
||
CLR A14
|
||
MOVE A14,@DMAGO ; HALT THE DMA
|
||
.IF YUNIT
|
||
MOVI 1010H,A14 ;A14 IS ALSO THE PALETTE INCREMENT
|
||
MOVI 7070H,A8
|
||
.ELSE
|
||
MOVI 0101H,A14
|
||
MOVI 0707H,A8
|
||
.ENDIF
|
||
|
||
MOVI COLOR_BARS, A3, L ; COLOR BAR TABLE
|
||
MOVI [16,0], A13, L ; POSITION INCRMENT
|
||
MOVI 101H,A12
|
||
MOVK 16, A11 ; # INTENSITIES / BAR
|
||
MOVK 8,A6 ;THIS MANY BARS
|
||
CLR A2 ; STARTING COLOR
|
||
|
||
CB6
|
||
MOVE *A3+,A1,L
|
||
JRZ CB8
|
||
MOVE A8,@DMACMAP,W ;STUFF PALETTE
|
||
MOVE *A3+,A0,L
|
||
ADDK 16,A3
|
||
MOVE A11,A10
|
||
CB7
|
||
FCALL RECTANGLE, B6
|
||
ADD A13, A0
|
||
ADD A12, A2
|
||
DSJS A10, CB7
|
||
ADD A14,A8 ;NEXT PALETTE PLEASE
|
||
DSJ A6,CB6
|
||
|
||
CB8
|
||
CLR A14
|
||
MOVE A14,@DMACMAP,W
|
||
RETS
|
||
|
||
|
||
INTENSITIES_START:
|
||
|
||
.WORD 03E0H ; GREEN
|
||
.WORD 0040H ; BUMP GREEN
|
||
|
||
.WORD 7C00H ; RED
|
||
.WORD 0800H ; BUMP RED
|
||
|
||
.WORD 001FH ; BLUE
|
||
.WORD 0002H ; BUMP BLUE
|
||
|
||
.WORD 0000H ; BLACK
|
||
.WORD 0000H ; BUMP BLACK
|
||
|
||
.WORD 7FFFH ; WHITE
|
||
.WORD 0842H ; BUMP WHITE
|
||
|
||
.WORD 7FE0H ; YELLOW
|
||
.WORD 0840H ; BUMP YELLOW
|
||
|
||
.WORD 7C1FH ; PURPLE
|
||
.WORD 0802H ; BUMP PURPLE
|
||
|
||
.WORD 03FFH ; CYAN
|
||
.WORD 0042H ; BUMP CYAN
|
||
|
||
.LONG 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DIPTEST *
|
||
* *
|
||
* DIP SWITCH TESTING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
DIPTEST:
|
||
CALLA WDOGDIS
|
||
MOVI DIP_VECS,A9 ; POINT AT VECTOR TABLE
|
||
DTVLP1
|
||
MOVE *A9+,A2,W ; GET COLOR
|
||
JRZ DTVDONE
|
||
MOVE *A9+,A0,L ; START POINT
|
||
MOVE *A9+,A1,L ; END POINT
|
||
FCALL HVLINE,B6
|
||
JRUC DTVLP1
|
||
DTVDONE
|
||
MOVI DIP_STRS,A9
|
||
CALLR STR_PLOT
|
||
CALLR DIPPLOT
|
||
CALLR DIPSTATE
|
||
PAUSE 10000,B6
|
||
MOVE @SWITCH,A0,L
|
||
ANDI 86241010H,A0
|
||
MOVE A0,@SWSET1,L
|
||
MOVE @SWITCH+32,A0,L
|
||
ANDI 10H,A0
|
||
MOVE A0,@SWSET2,L
|
||
DTLOOP
|
||
CALLA CKTEST ; EMERGENCY EXIT
|
||
MOVE @SWITCH,A0,L ; GOTTA SEE IF TIME TO LEAVE
|
||
MOVE @SWSET1,A1,L
|
||
ANDI 86241010H,A0
|
||
CMP A0,A1
|
||
JRZ DTCKS1
|
||
RETS
|
||
DTCKS1
|
||
MOVE @SWITCH+32,A0,L
|
||
ANDI 10H,A0
|
||
MOVE @SWSET2,A1,L
|
||
CMP A0,A1
|
||
JRZ DTLGO
|
||
RETS
|
||
DTLGO
|
||
CALLR READ_DIP
|
||
MOVE @DIPVAL,A1,W
|
||
ANDI 0FFFFH,A1 ; FUCKING SIGN EXTEND
|
||
CMP A0,A1
|
||
JRZ DTLOOP
|
||
MOVE A0,@DIPVAL,W
|
||
CALLR DIPPLOT
|
||
CALLR DIPSTATE
|
||
MOVI 0FD8BH,A0
|
||
MOVE A0,@SOUND,W
|
||
MOVI 0FF8BH,A0
|
||
MOVE A0,@SOUND,W ; LET HIM HEAR IT
|
||
JRUC DTLOOP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DIPSTATE *
|
||
* *
|
||
* PLOT OUT THE STATES OF ALL THE DIP SWITCHES *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
DIPSTATE
|
||
MOVI [32,74],A0
|
||
MOVI [104,140],A1
|
||
MOVI TROG_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
MOVI [32,284],A0
|
||
MOVI [104,111],A1
|
||
MOVI TROG_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
CALLR READ_DIP
|
||
|
||
CLR A2
|
||
MOVI TROG_WHITE,A3
|
||
|
||
MOVI DCOCKTAIL_0,A1
|
||
CALLR READ_DIP
|
||
ANDI DPCOCKTAIL,A0 ; COCKTAIL
|
||
JRZ SD1
|
||
MOVI DCOCKTAIL_1,A1
|
||
SD1
|
||
MOVE A1,A0
|
||
MOVI [39,75],A1
|
||
FCALL STRING,B6
|
||
|
||
MOVI DUSECMOS_0,A1
|
||
CALLR READ_DIP
|
||
ANDI DPUSECMOS,A0
|
||
JRZ DS1
|
||
MOVI DUSECMOS_1,A1
|
||
DS1
|
||
MOVE A1,A0
|
||
MOVI [51,75],A1
|
||
FCALL STRING,B6
|
||
|
||
MOVI TROG_WHITE,A3
|
||
MOVI [69,75],A1
|
||
MOVI DCOINAGE,A0
|
||
FCALL STRING,B6
|
||
CALLR READ_DIP
|
||
MOVE A0,A2
|
||
ANDI DPCOUNTRY,A0
|
||
SRL 3,A0
|
||
ADDI DCOINTAB,A0
|
||
MOVE *A0,A1,L ; POINTER TO RIGHT COIN TABLE
|
||
ANDI DPCOINAGE,A2
|
||
SLL 3,A2
|
||
ADD A2,A1
|
||
MOVE *A1,A0,L ; NOW POINTING AT MESSAGE
|
||
CLR A2
|
||
MOVI [81,75],A1
|
||
FCALL STRING,B6
|
||
|
||
MOVI DUNUSED,A0
|
||
MOVI [101,75],A1
|
||
FCALL STRING,B6
|
||
|
||
MOVI DUNUSED,A0
|
||
MOVI [112,75],A1
|
||
FCALL STRING,B6
|
||
|
||
MOVI DUNUSED,A0
|
||
MOVI [123,75],A1
|
||
FCALL STRING,B6
|
||
|
||
CALLR READ_DIP
|
||
ANDI DPCOUNTRY,A0
|
||
SRL 3,A0
|
||
ADDI DCOUNTRY_TAB,A0
|
||
MOVE *A0,A0,L
|
||
MOVI [45,285],A1
|
||
FCALL STRING,B6
|
||
**** CALLR SHOWCOUNTRY ; UPDATE THE 543 COINAGE SETTINGS
|
||
|
||
MOVI DUNUSED,A0
|
||
MOVI [63,285],A1
|
||
FCALL STRING,B6
|
||
|
||
MOVI DCOUNTER_0,A1
|
||
CALLR READ_DIP
|
||
ANDI DPCOUNTER,A0 ; COUNTER
|
||
JRZ SD2
|
||
MOVI DCOUNTER_1,A1
|
||
SD2
|
||
MOVE A1,A0
|
||
MOVI [75,285],A1
|
||
FCALL STRING,B6
|
||
|
||
|
||
CALLR READ_DIP
|
||
ANDI DPPLAYERS,A0
|
||
SRL 7,A0
|
||
ADDI DPLAYER_TAB,A0
|
||
MOVE *A0,A0,L
|
||
MOVI [93,285],A1
|
||
FCALL STRING,B6
|
||
|
||
MOVI DFREEZE_0,A0
|
||
MOVI [112,285],A1
|
||
FCALL STRING,B6
|
||
|
||
MOVI DTEST_0,A0
|
||
MOVI [123,285],A1
|
||
FCALL STRING,B6
|
||
|
||
RETS
|
||
|
||
|
||
****SHOWCOUNTRY
|
||
**** MOVI [161,7],A0
|
||
**** MOVI [93,162],A1
|
||
**** MOVI TROG_BLACK,A2
|
||
**** FCALL RECTANGLE,B6
|
||
**** CALLR READ_DIP
|
||
**** MOVE A0,A7
|
||
**** ANDI DPCOUNTRY,A7
|
||
**** SRL 3,A7
|
||
**** ADDI COINTAB,A7
|
||
**** MOVE *A7,A7,L
|
||
**** MOVI SHOWYLOC,A8
|
||
**** CLR A2
|
||
**** MOVI TROG_WHITE,A3
|
||
****SCL1
|
||
**** MOVE *A7+,A0,L ; NEXT STRING
|
||
**** JRZ SCDONE
|
||
**** MOVE *A8+,A1,W ; NEXT Y LOCATION
|
||
**** SLL 16,A1
|
||
**** ADDK 7,A1
|
||
**** FCALL STRING,B6
|
||
**** JRUC SCL1
|
||
****SCDONE
|
||
**** RETS
|
||
|
||
****SHOWYLOC .WORD 161, 173, 185, 197, 209, 221, 233, 245, 0, 0
|
||
.ENDIF
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHECKDIPFREE *
|
||
* *
|
||
* CHECK TO SEE IF EITHER OF THE COIN SLOTS IS ON FREE PLAY, *
|
||
* AND IF SO RETURN Z, OTHERWISE DON'T *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* .EQ. YES, FREEPLAY *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHECKDIPFREE:
|
||
PUSH A0
|
||
CALLR READ_DIP
|
||
ANDI DPCOINAGE,A0
|
||
CMPI DPCOINAGE,A0
|
||
CDFRET
|
||
PULL A0
|
||
RETS
|
||
|
||
.IF PRINTER
|
||
.ELSE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DIPPLOT *
|
||
* *
|
||
* PLOT OUT THE DIP SWITCHES *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
DIPPLOT:
|
||
MOVI [33,21],A0
|
||
MOVI [104,38],A1
|
||
MOVI TROG_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
MOVI [33,231],A0
|
||
MOVI [104,38],A1
|
||
MOVI TROG_BLACK,A2
|
||
FCALL RECTANGLE,B6
|
||
CALLR READ_DIP
|
||
CLR A2
|
||
DIPLOOP
|
||
MOVE A2,A3
|
||
SLL 5,A3
|
||
ADDI DIPYTAB,A3
|
||
MOVE *A3,A3,L
|
||
SLL 16,A3 ; GOT THE Y LOC
|
||
|
||
CLR A5
|
||
CMPI 8,A2
|
||
JRLO DIPL2
|
||
MOVI 210,A5
|
||
DIPL2
|
||
MOVX A5,A3
|
||
|
||
BTST A2,A0 ; CHECK IF BIT IS SET
|
||
JRNZ DIPON
|
||
MOVI DP_OFF,A1
|
||
ADDI 29,A3
|
||
MOVI TROG_GREY,A4
|
||
JRUC DIPSTR
|
||
|
||
DIPON
|
||
MOVI DP_ON,A1
|
||
ADDI 32,A3
|
||
MOVI TROG_WHITE,A4
|
||
|
||
DIPSTR
|
||
MMTM SP,A0,A2
|
||
MOVE A1,A0 ; SET STRING
|
||
MOVE A3,A1 ; SET LOCATION
|
||
MOVE A4,A3
|
||
CLR A2 ; HORIZONTAL
|
||
FCALL STRING,B6
|
||
MMFM SP,A0,A2
|
||
INC A2
|
||
CMPI 16,A2
|
||
JRLO DIPLOOP
|
||
RETS
|
||
|
||
|
||
DIPYTAB
|
||
.LONG 39,51,63,75,87,99,111,123
|
||
.LONG 39,51,63,75,87,99,111,123
|
||
|
||
.ENDIF
|
||
|
||
**************************************************************************
|
||
* *
|
||
* READ_DIP *
|
||
* *
|
||
* READ IN BOTH DIP SWITCHES *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* A0 DIP SWITCH *
|
||
* *
|
||
**************************************************************************
|
||
|
||
READ_DIP:
|
||
MMTM SP,A1,A2,A3
|
||
MOVE @DIPSWITCH,A0,W ; READ IT IN
|
||
NOT A0 ; INVERT IT FOR TRUE BITS
|
||
CLR A1
|
||
MOVI 7,A2
|
||
RDLOOP
|
||
BTST A2,A0
|
||
JRZ RD1
|
||
MOVK 7,A3
|
||
SUB A2,A3
|
||
BSET A3,A1
|
||
RD1
|
||
PUSH A2
|
||
ADDI 8,A2
|
||
BTST A2,A0
|
||
JRZ RD2
|
||
MOVK 15,A3
|
||
SUB A2,A3
|
||
ADDI 8,A3
|
||
BSET A3,A1
|
||
RD2
|
||
PULL A2
|
||
DEC A2
|
||
JRNN RDLOOP
|
||
MOVE A1,A0
|
||
|
||
.IF YUNIT
|
||
.ELSE
|
||
MOVI DPUSECMOS,A0
|
||
.ENDIF
|
||
MMFM SP,A1,A2,A3
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SWITCHTEST *
|
||
* *
|
||
* DRAW OUT THE TROG SWITCHES -- A PRETTY PICTURE *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
.IF PRINTER
|
||
.ELSE
|
||
|
||
SWITCHTEST:
|
||
CALLA WDOGDIS
|
||
CLR A13 ; THE HOLD ME REGISTER
|
||
MOVE A13,@SWSET1,L
|
||
MOVE A13,@SWSET2,L
|
||
MOVE A13,@SWPREV1,L
|
||
MOVE A13,@SWPREV2,L
|
||
MOVI BUT_TABLE,A9
|
||
CLR A10
|
||
CALLR BUT_PLOT ; PLOT SOME BUTTONS
|
||
MOVI JOY_TABLE,A9
|
||
CALLR JOY_PLOT ; PLOT THE JOYSTICKS
|
||
MOVI STR_TABLE,A9
|
||
CALLR STR_PLOT ; PLOT THE STRINGS
|
||
MOVI 00B90000H,A0
|
||
MOVI 00B90190H,A1
|
||
MOVI TROG_WHITE,A2
|
||
FCALL HVLINE,B6 ; DRAW LITTLE WHITE LINE
|
||
|
||
SDLOOP
|
||
MOVE @SWITCH,A10,L ; GRAB ME A SWITCH REGISTER
|
||
NOT A10
|
||
MOVE A10,A0
|
||
ANDI DONEMASK,A0
|
||
CMPI DONEMASK,A0,L ; CHECK FOR DONE
|
||
JRNZ SDGO
|
||
RETS
|
||
SDGO
|
||
MOVE @SWSET1,A11,L
|
||
CMP A11,A10 ; CHECK FOR CHANGES
|
||
JRZ SDCK2
|
||
MOVE A10,@SWSET1,L
|
||
MOVE @SWITCH+32,A10,L
|
||
NOT A10
|
||
ANDI 0FFH,A10
|
||
MOVE A10,@SWSET2,L
|
||
JRUC SDPROC
|
||
SDCK2
|
||
MOVE @SWITCH+32,A10,L
|
||
NOT A10
|
||
ANDI 0FFH,A10
|
||
MOVE @SWSET2,A11,L
|
||
CMP A11,A10
|
||
JRZ SDLOOP
|
||
MOVE A10,@SWSET2,L
|
||
SDPROC
|
||
|
||
MOVI BUT_TABLE,A9
|
||
CALLR BUT_PLOT
|
||
MOVI JOY_TABLE,A9
|
||
CALLR JOY_UPDATE ; UPDATE THE JOYSTICK INFO
|
||
|
||
MOVE @SWPREV1,A1,L
|
||
NOT A1
|
||
MOVE @SWSET1,A2,L
|
||
NOT A2
|
||
OR A2,A1
|
||
CMP A1,A2
|
||
JRNZ SDSOUND
|
||
MOVE @SWPREV2,A1,L
|
||
NOT A1
|
||
MOVE @SWSET2,A2,L
|
||
NOT A2
|
||
OR A2,A1
|
||
CMP A1,A2
|
||
JRZ SDNOSOUND
|
||
|
||
SDSOUND
|
||
MOVI 0FD8BH,A0
|
||
MOVE A0,@SOUND,W
|
||
MOVI 0FF8BH,A0
|
||
MOVE A0,@SOUND,W
|
||
|
||
SDNOSOUND
|
||
MOVE @SWSET1,@SWPREV1,L
|
||
MOVE @SWSET2,@SWPREV2,L
|
||
|
||
JRUC SDLOOP
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* JOY_MESS *
|
||
* *
|
||
* PLOT THE STATUS OF A JOYSTICK AROUND A CIRCLE *
|
||
* *
|
||
* ENTRY *
|
||
* A9 CENTER OF STICK CIRCLE *
|
||
* A10 BUTTON MASK *
|
||
* A11 COLOR *
|
||
* A12 PLAYER NUMBER *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
JOY_MESS:
|
||
CALLR READ_DIP
|
||
ANDI DPCOCKTAIL,A0 ;COCKTAIL TABLE?
|
||
JRZ JM_NORM ;BR = NO
|
||
|
||
MOVE A12,A1
|
||
SLL 5,A1
|
||
ADDI JM_COCKTAIL_XLATION,A1
|
||
MOVE *A1,A1,L
|
||
SLL 28,A10
|
||
SRL 25,A10
|
||
ADD A10,A1
|
||
MOVB *A1,A10
|
||
|
||
JM_NORM
|
||
MOVI TROG_BLACK,A3
|
||
SRL 1,A10
|
||
JRNC JM1
|
||
MOVE A11,A3 ; SET COLOR
|
||
JM1
|
||
MOVI UPMESS,A0
|
||
MOVE A9,A1 ; CIRCLE CENTER
|
||
MOVI 31,A2
|
||
SLL 16,A2
|
||
SUB A2,A1 ; SUB RADIUS FROM Y
|
||
SUBI 5,A1 ; SUB STRING WIDTH FROM X
|
||
CLR A2 ; DIRECTION
|
||
FCALL STRING,B6
|
||
;
|
||
MOVI TROG_BLACK,A3
|
||
SRL 1,A10
|
||
JRNC JM2
|
||
MOVE A11,A3 ; SET COLOR
|
||
JM2
|
||
MOVI DOWNMESS,A0
|
||
MOVE A9,A1 ; CIRCLE CENTER
|
||
MOVI 19,A2
|
||
SLL 16,A2
|
||
ADD A2,A1 ; ADD RADIUS TO Y
|
||
SUBI 5,A1 ; SUB STRING WIDTH FROM X
|
||
CLR A2 ; DIRECTION
|
||
FCALL STRING,B6
|
||
;
|
||
MOVI TROG_BLACK,A3
|
||
SRL 1,A10
|
||
JRNC JM3
|
||
MOVE A11,A3
|
||
JM3
|
||
MOVI LEFTMESS,A0
|
||
MOVE A9,A1 ; CIRCLE CENTER
|
||
MOVI 5,A2
|
||
SLL 16,A2
|
||
SUB A2,A1 ; CENTER LETTERS
|
||
SUBI 33,A1 ; SUB STRING WIDTH FROM X
|
||
CLR A2 ; DIRECTION
|
||
FCALL STRING,B6
|
||
;
|
||
MOVI TROG_BLACK,A3
|
||
SRL 1,A10
|
||
JRNC JM4
|
||
MOVE A11,A3
|
||
JM4
|
||
MOVI RIGHTMESS,A0
|
||
MOVE A9,A1 ; CIRCLE CENTER
|
||
MOVI 5,A2
|
||
SLL 16,A2
|
||
SUB A2,A1 ; CENTER LETTERS
|
||
ADDI 18,A1 ; ADD STRING WIDTH FROM X
|
||
CLR A2 ; DIRECTION
|
||
FCALL STRING,B6
|
||
RETS
|
||
|
||
*
|
||
*MIDWAY COCKTAIL TABLE TRANSLATIONS FOR THE JOYSTICKS
|
||
*
|
||
JM_COCKTAIL_XLATION
|
||
.LONG JM_XLATE_P1,JM_XLATE_P2,JM_XLATE_P3,JM_XLATE_P4
|
||
|
||
JM_XLATE_P1
|
||
.BYTE 00,08,04,0CH,01,09,05,0DH,02,0AH,06,0EH,03,0BH,07,0FH
|
||
.EVEN
|
||
JM_XLATE_P2
|
||
.BYTE 00,04,08,0CH,02,06,0AH,0EH,01,05,09,0DH,03,07,0BH,0FH
|
||
.EVEN
|
||
JM_XLATE_P3
|
||
.BYTE 00,01,02,03,04,05,06,07,08,09,0AH,0BH,0CH,0DH,0EH,0FH
|
||
.EVEN
|
||
JM_XLATE_P4
|
||
.BYTE 00,01,02,03,04,05,06,07,08,09,0AH,0BH,0CH,0DH,0EH,0FH
|
||
.EVEN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BUT_PLOT *
|
||
* *
|
||
* PLOT A BUTTON TABLE ON THE SCREEN *
|
||
* *
|
||
* ENTRY *
|
||
* A9 POINTS TO BUTTON TABLE LIST *
|
||
* A10 SETTINGS OF THE SWITCH REGISTER *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BUT_PLOT:
|
||
MOVE *A9+,A1,L ; XY LOC
|
||
JRZ BPDONE
|
||
**** ADDI 32,A9
|
||
MOVE *A9+,A0,W ; RADIUS
|
||
**** ADDI 16,A9
|
||
MOVE *A9+,A6,L ; COLOR
|
||
**** ADDI 32,A9
|
||
MOVE *A9+,A11,L ; GET MASK
|
||
**** ADDI 32,A9 ; MASK
|
||
ADDK 16,A9 ; SHIFT COUNT
|
||
MOVE *A9+,A8,W ; JAMMA EXTEND-O-BIT
|
||
JRZ BPLOW
|
||
MOVE @SWSET2,A10,L
|
||
JRUC BPAND
|
||
BPLOW
|
||
MOVE @SWSET1,A10,L
|
||
BPAND
|
||
**** ADDI 16,A9
|
||
AND A10,A11 ; MASK OFF SOMETHING USEFUL
|
||
JRZ BPHOLLOW
|
||
SUBK 2,A0
|
||
ADDI CFILL,A6 ; MASK IN THE FILL BITS
|
||
JRUC BPCIRC
|
||
BPHOLLOW
|
||
MMTM SP,A0,A1,A6
|
||
SUBK 2,A0
|
||
MOVI TROG_BLACK,A6
|
||
ADDI CFILL,A6
|
||
FCALL CIRCLE,B6
|
||
MMFM SP,A0,A1,A6
|
||
BPCIRC
|
||
FCALL CIRCLE,B6
|
||
JRUC BUT_PLOT
|
||
BPDONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* JOY_PLOT *
|
||
* *
|
||
* PLOT A BUTTON TABLE ON THE SCREEN *
|
||
* *
|
||
* ENTRY *
|
||
* A9 POINTS TO BUTTON TABLE LIST *
|
||
* *
|
||
**************************************************************************
|
||
|
||
JOY_PLOT:
|
||
MOVE *A9+,A1,L ; XY LOC
|
||
JRZ JPDONE
|
||
**** ADDI 32,A9
|
||
MOVE *A9+,A0,W ; RADIUS
|
||
**** ADDI 16,A9
|
||
MOVE *A9+,A6,L ; COLOR
|
||
**** ADDI 32,A9
|
||
ADDK 32,A9 ; MASK
|
||
ADDK 16,A9 ; SHIFT COUNT
|
||
ADDK 16,A9 ; JAMMA EXTEND-O-BIT
|
||
FCALL CIRCLE,B6
|
||
JRUC JOY_PLOT
|
||
JPDONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* JOY_UPDATE *
|
||
* *
|
||
* UPDATE ALL THE STICK INFORMATION *
|
||
* *
|
||
* ENTRY *
|
||
* A9 JOYSTICK TABLE POINTER *
|
||
* A10 SWITCH INFORMATION *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
JOY_UPDATE:
|
||
PUSH A12
|
||
CLR A12
|
||
JU_LOOP
|
||
MOVE *A9+,A1,L ; XY LOC
|
||
JRZ JUDONE
|
||
**** ADDI 32,A9
|
||
MOVE *A9+,A0,W ; RADIUS
|
||
**** ADDI 16,A9
|
||
MOVE *A9+,A11,L ; COLOR
|
||
**** ADDI 32,A9
|
||
MOVE *A9+,A6,L ; MASK
|
||
**** ADDI 32,A9
|
||
MOVE *A9+,A7,W ; SHIFT COUNT
|
||
**** ADDI 16,A9
|
||
MOVE *A9+,A8,W ; EXTEND-O-BIT FOR JAMMA
|
||
JRZ JULOW
|
||
MOVE @SWSET2,A10,L
|
||
JRUC JUAND
|
||
JULOW
|
||
MOVE @SWSET1,A10,L
|
||
JUAND
|
||
**** ADDI 16,A9
|
||
AND A10,A6 ; MASK OFF JOYSTICK BITS
|
||
NOT A7
|
||
ADDK 1,A7
|
||
SRL A7,A6 ; ZERO BASE THE LITTLE SUCKER
|
||
MMTM SP,A9,A10
|
||
MOVE A1,A9 ; CENTER OF STICK HERE
|
||
MOVE A6,A10 ; BUTTON MASK
|
||
CALLR JOY_MESS
|
||
MMFM SP,A9,A10
|
||
INC A12
|
||
JRUC JU_LOOP
|
||
JUDONE
|
||
PULL A12
|
||
RETS
|
||
|
||
.ENDIF
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* STR_PLOT *
|
||
* *
|
||
* PLOT A STRING TABLE ON THE SCREEN *
|
||
* *
|
||
* ENTRY *
|
||
* A9 POINTS TO STRING TABLE LIST *
|
||
* *
|
||
**************************************************************************
|
||
|
||
STR_PLOT:
|
||
MOVE *A9+,A1,L ; XY LOC
|
||
JRZ STDONE
|
||
**** ADDI 32,A9
|
||
MOVE *A9+,A0,L ; STRING PTR
|
||
**** ADDI 32,A9
|
||
MOVE *A9+,A3,W ; COLOR
|
||
**** ADDI 16,A9
|
||
MOVE *A9+,A2,W ; DIRECTION
|
||
**** ADDI 16,A9
|
||
FCALL STRING,B6
|
||
JRUC STR_PLOT
|
||
STDONE
|
||
RETS
|
||
|
||
CFILL EQU 0FFFF0000H
|
||
|
||
;
|
||
; FORMAT
|
||
;
|
||
; X,Y,RADIUS,COLOR,MASK,SHIFT COUNT ( FOR JOYSTICK STUFF ), EXTENDBIT
|
||
;
|
||
|
||
TROG_P1 EQU TROG_RED
|
||
TROG_P2 EQU TROG_BLUE
|
||
TROG_P3 EQU TROG_YELLOW
|
||
TROG_P4 EQU TROG_PURPLE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* Y-UNIT DEFS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
.IF PRINTER
|
||
.ELSE
|
||
|
||
BUT_TABLE:
|
||
BUT_MAC 147,35,10,TROG_P1,00040000H,0,0 ; P1 START
|
||
BUT_MAC 182,45,10,TROG_P2,00200000H,0,0 ; P2 START
|
||
BUT_MAC 217,45,10,TROG_P3,02000000H,0,0 ; P3 START
|
||
BUT_MAC 253,35,10,TROG_P4,04000000H,0,0 ; P4 START
|
||
BUT_MAC 70,35,10,TROG_P1,00000010H,0,0 ; P1 PUNCH
|
||
BUT_MAC 110,170,10,TROG_P2,00001000H,0,0 ; P2 PUNCH
|
||
BUT_MAC 221,170,10,TROG_P3,80000000H,0,0 ; P3 PUNCH
|
||
BUT_MAC 340,125,10,TROG_P4,00000010H,0,1 ; P4 PUNCH
|
||
BUT_MAC 260,199,10,TROG_GREEN,00080000H,0,0 ; SLAM
|
||
BUT_MAC 260,222,10,TROG_GREEN,00100000H,0,0 ; TEST
|
||
BUT_MAC 260,245,10,TROG_GREEN,01000000H,0,0 ; VIDEO FREEZE
|
||
BUT_MAC 30,207,10,TROG_GREEN,00010000H,0,0 ; COIN LEFT
|
||
BUT_MAC 75,207,10,TROG_GREEN,00020000H,0,0 ; COIN RIGHT
|
||
BUT_MAC 120,207,10,TROG_GREEN,00800000H,0,0 ; COIN CENTER
|
||
BUT_MAC 165,207,10,TROG_GREEN,00000020H,0,1 ; FOURTH COIN
|
||
BUT_MAC 214,207,10,TROG_GREEN,00400000H,0,0 ; SERVICE CREDIT
|
||
.LONG 0
|
||
|
||
JOY_TABLE
|
||
BUT_MAC 80,80,15,CFILL+TROG_P1,0000000FH,0,0 ; J1
|
||
BUT_MAC 152,130,15,CFILL+TROG_P2,00000F00H,8,0 ; J2
|
||
BUT_MAC 263,130,15,CFILL+TROG_P3,78000000H,27,0 ; J3
|
||
BUT_MAC 335,80,15,CFILL+TROG_P4,0000000FH,0,1 ; J4
|
||
.LONG 0
|
||
|
||
DONEMASK EQU 00040010H ; P1 START + P1 PUNCH
|
||
|
||
STR_TABLE:
|
||
STR_MAC 178,15,STSTART,TROG_GREEN,0 ; GENERIC "STARTS"
|
||
STR_MAC 142,52,P1START,TROG_P1,0 ; P1 START
|
||
STR_MAC 177,62,P2START,TROG_P2,0 ; P2 START
|
||
STR_MAC 212,62,P3START,TROG_P3,0 ; P3 START
|
||
STR_MAC 248,52,P4START,TROG_P4,0 ; P4 START
|
||
STR_MAC 40,13,P1DRAW,TROG_P1,0 ; P1 PUNCH
|
||
STR_MAC 125,167,P2DRAW,TROG_P2,0 ; P2 PUNCH
|
||
STR_MAC 236,167,P3DRAW,TROG_P3,0 ; P3 PUNCH
|
||
STR_MAC 315,140,P4DRAW,TROG_P4,0 ; P4 PUNCH
|
||
STR_MAC 275,196,SLAM,TROG_GREEN,0 ; SLAM
|
||
STR_MAC 275,219,TEST,TROG_GREEN,0 ; TEST SWITCH
|
||
STR_MAC 275,242,VIDEO,TROG_GREEN,0 ; VIDEO FREEZE
|
||
STR_MAC 12,233,LEFTSLOT,TROG_GREEN,0 ; LEFT COIN
|
||
STR_MAC 56,233,RIGHTSLOT,TROG_GREEN,0 ; RIGHT COIN
|
||
STR_MAC 103,222,CENTER,TROG_GREEN,0 ; CENTER COIN
|
||
STR_MAC 147,222,FOURTH,TROG_GREEN,0 ; COIN MIDDLE
|
||
STR_MAC 10,222,COINMESS1,TROG_GREEN,0 ; BOTTOM MESSAGE
|
||
STR_MAC 55,222,COINMESS2,TROG_GREEN,0
|
||
STR_MAC 193,222,SERVICE1,TROG_GREEN,0 ; SERVICE CREDIT
|
||
STR_MAC 197,233,SERVICE2,TROG_GREEN,0 ; SERVICE CREDIT
|
||
STR_MAC 118,80,GETOUT1,TROG_WHITE,0 ; GET OUT MESSAGE 1
|
||
STR_MAC 177,90,GETOUT2,TROG_WHITE,0
|
||
.LONG 0
|
||
GETOUT1
|
||
.STRING "PLAYER 1 START AND PUNCH",0
|
||
.EVEN
|
||
GETOUT2
|
||
.STRING "TO EXIT",0
|
||
.EVEN
|
||
|
||
STSTART
|
||
.STRING "STARTS",0
|
||
.EVEN
|
||
|
||
P1START
|
||
.STRING "P1",0
|
||
.EVEN
|
||
P2START
|
||
.STRING "P2",0
|
||
.EVEN
|
||
P3START
|
||
.STRING "P3",0
|
||
.EVEN
|
||
P4START
|
||
.STRING "P4",0
|
||
.EVEN
|
||
|
||
LEFTMESS
|
||
.STRING "<",0
|
||
.EVEN
|
||
RIGHTMESS
|
||
.STRING ">",0
|
||
.EVEN
|
||
UPMESS
|
||
.STRING "^",0
|
||
.EVEN
|
||
DOWNMESS
|
||
.STRING "_",0
|
||
.EVEN
|
||
|
||
P1DRAW
|
||
.STRING "P1 PUNCH",0
|
||
.EVEN
|
||
P2DRAW
|
||
.STRING "P2 PUNCH",0
|
||
.EVEN
|
||
P3DRAW
|
||
.STRING "P3 PUNCH",0
|
||
.EVEN
|
||
P4DRAW
|
||
.STRING "P4 PUNCH",0
|
||
.EVEN
|
||
|
||
COINMESS1
|
||
.STRING "COIN1",0
|
||
.EVEN
|
||
COINMESS2
|
||
.STRING "COIN2",0
|
||
.EVEN
|
||
|
||
LEFTSLOT
|
||
.STRING "LEFT",0
|
||
.EVEN
|
||
RIGHTSLOT
|
||
.STRING "RIGHT",0
|
||
.EVEN
|
||
|
||
CENTER
|
||
.STRING "COIN3",0
|
||
.EVEN
|
||
FOURTH
|
||
.STRING "COIN4",0
|
||
.EVEN
|
||
|
||
SERVICE1
|
||
.STRING "SERVICE",0
|
||
.EVEN
|
||
SERVICE2
|
||
.STRING "CREDIT",0
|
||
.EVEN
|
||
SLAM
|
||
.STRING "SLAM - TILT",0
|
||
.EVEN
|
||
TEST
|
||
.STRING "TEST",0
|
||
.EVEN
|
||
VIDEO
|
||
.STRING "VIDEO FREEZE",0
|
||
.EVEN
|
||
|
||
.ENDIF
|
||
|
||
|
||
.IF PRINTER
|
||
.ELSE
|
||
**************************************************************************
|
||
* *
|
||
* MONITOR TEST DATA AREA *
|
||
* *
|
||
**************************************************************************
|
||
|
||
MON_VECS:
|
||
VECMAC TROG_WHITE,004,004,390,004
|
||
VECMAC TROG_WHITE,004,004,004,250
|
||
VECMAC TROG_WHITE,004,250,390,250
|
||
VECMAC TROG_WHITE,390,250,390,004
|
||
VECMAC TROG_WHITE,060,005,060,250
|
||
VECMAC TROG_WHITE,115,005,115,250
|
||
VECMAC TROG_WHITE,170,005,170,250
|
||
VECMAC TROG_WHITE,225,005,225,250
|
||
VECMAC TROG_WHITE,280,005,280,250
|
||
VECMAC TROG_WHITE,335,005,335,250
|
||
VECMAC TROG_WHITE,005,54,390,54
|
||
VECMAC TROG_WHITE,005,103,390,103
|
||
VECMAC TROG_WHITE,005,152,390,152
|
||
VECMAC TROG_WHITE,005,201,390,201
|
||
.LONG 0
|
||
|
||
MON_RECS:
|
||
VECMAC TROG_RED,182,000,030,005 ; TOP
|
||
VECMAC TROG_GREEN,182,005,030,006
|
||
VECMAC TROG_RED,182,250,030,005 ; BOTTOM
|
||
VECMAC TROG_GREEN,182,244,030,006
|
||
VECMAC TROG_RED,000,117,005,020 ; LEFT
|
||
VECMAC TROG_GREEN,005,117,006,020
|
||
VECMAC TROG_RED,390,117,005,020 ; RIGHT
|
||
VECMAC TROG_GREEN,384,117,006,020
|
||
.LONG 0
|
||
|
||
MON_DOTS:
|
||
DOTMAC TROG_WHITE,032,029
|
||
DOTMAC TROG_WHITE,087,029
|
||
DOTMAC TROG_WHITE,142,029
|
||
DOTMAC TROG_WHITE,197,029
|
||
DOTMAC TROG_WHITE,252,029
|
||
DOTMAC TROG_WHITE,307,029
|
||
DOTMAC TROG_WHITE,362,029
|
||
|
||
DOTMAC TROG_WHITE,032,078
|
||
DOTMAC TROG_WHITE,087,078
|
||
DOTMAC TROG_WHITE,142,078
|
||
DOTMAC TROG_WHITE,197,078
|
||
DOTMAC TROG_WHITE,252,078
|
||
DOTMAC TROG_WHITE,307,078
|
||
DOTMAC TROG_WHITE,362,078
|
||
|
||
DOTMAC TROG_WHITE,032,127
|
||
DOTMAC TROG_WHITE,087,127
|
||
DOTMAC TROG_WHITE,142,127
|
||
DOTMAC TROG_WHITE,197,127
|
||
DOTMAC TROG_WHITE,252,127
|
||
DOTMAC TROG_WHITE,307,127
|
||
DOTMAC TROG_WHITE,362,127
|
||
|
||
DOTMAC TROG_WHITE,032,176
|
||
DOTMAC TROG_WHITE,087,176
|
||
DOTMAC TROG_WHITE,142,176
|
||
DOTMAC TROG_WHITE,197,176
|
||
DOTMAC TROG_WHITE,252,176
|
||
DOTMAC TROG_WHITE,307,176
|
||
DOTMAC TROG_WHITE,362,176
|
||
|
||
DOTMAC TROG_WHITE,032,225
|
||
DOTMAC TROG_WHITE,087,225
|
||
DOTMAC TROG_WHITE,142,225
|
||
DOTMAC TROG_WHITE,197,225
|
||
DOTMAC TROG_WHITE,252,225
|
||
DOTMAC TROG_WHITE,307,225
|
||
DOTMAC TROG_WHITE,362,225
|
||
.LONG 0
|
||
|
||
PRIMARY_COLORS:
|
||
|
||
RECTMAC TROG_RED,0,0,395,255
|
||
RECTMAC TROG_GREEN,0,0,395,255
|
||
RECTMAC TROG_BLUE,0,0,395,255
|
||
.LONG 0
|
||
|
||
COLOR_BARS:
|
||
|
||
RECTMAC TROG_BLACK, 0, 0, 49, 16
|
||
RECTMAC TROG_BLACK, 49, 0, 49, 16
|
||
RECTMAC TROG_BLACK, 98, 0, 49, 16
|
||
RECTMAC TROG_BLACK, 147, 0, 49, 16
|
||
RECTMAC TROG_BLACK, 196, 0, 49, 16
|
||
RECTMAC TROG_BLACK, 245, 0, 49, 16
|
||
RECTMAC TROG_BLACK, 294, 0, 49, 16
|
||
RECTMAC TROG_BLACK, 343, 0, 49, 16
|
||
.LONG 0
|
||
|
||
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DIP SWITCH DISPLAY STUFF *
|
||
* *
|
||
**************************************************************************
|
||
|
||
DIP_VECS:
|
||
VECMAC TROG_RED,20,32,60,32 ; DS1
|
||
VECMAC TROG_RED,20,32,20,138
|
||
VECMAC TROG_RED,20,138,60,138
|
||
VECMAC TROG_RED,60,32,60,138
|
||
|
||
VECMAC TROG_RED,230,32,270,32 ; DS2
|
||
VECMAC TROG_RED,230,32,230,138
|
||
VECMAC TROG_RED,230,138,270,138
|
||
VECMAC TROG_RED,270,32,270,138
|
||
|
||
VECMAC TROG_WHITE,63,42,73,42
|
||
|
||
VECMAC TROG_WHITE,63,54,73,54
|
||
|
||
VECMAC TROG_WHITE,63,66,68,66
|
||
VECMAC TROG_WHITE,63,90,68,90
|
||
VECMAC TROG_WHITE,68,66,68,90
|
||
VECMAC TROG_WHITE,68,78,73,78
|
||
|
||
VECMAC TROG_WHITE,63,102,68,102
|
||
VECMAC TROG_WHITE,63,126,68,126
|
||
VECMAC TROG_WHITE,68,102,68,126
|
||
VECMAC TROG_WHITE,68,114,73,114
|
||
|
||
VECMAC TROG_WHITE,273,42,278,42 ; COUNTRY
|
||
VECMAC TROG_WHITE,273,54,278,54
|
||
VECMAC TROG_WHITE,278,42,278,54
|
||
VECMAC TROG_WHITE,278,48,283,48
|
||
|
||
VECMAC TROG_WHITE,273,66,283,66
|
||
VECMAC TROG_WHITE,273,78,283,78
|
||
|
||
VECMAC TROG_WHITE,273,90,278,90
|
||
VECMAC TROG_WHITE,273,102,278,102
|
||
VECMAC TROG_WHITE,278,90,278,102
|
||
VECMAC TROG_WHITE,278,96,283,96
|
||
|
||
VECMAC TROG_WHITE,273,114,283,114
|
||
VECMAC TROG_WHITE,273,126,283,126
|
||
|
||
**** VECMAC TROG_WHITE,1,142,393,142
|
||
.LONG 0
|
||
|
||
DIP_STRS:
|
||
STR_MAC 124,8,DP_TITLE,TROG_GREEN,0
|
||
STR_MAC 30,20,DP_DS1,TROG_WHITE,0
|
||
STR_MAC 240,20,DP_DS2,TROG_WHITE,0
|
||
STR_MAC 7,39,DP_DSN1,TROG_WHITE,0
|
||
STR_MAC 7,51,DP_DSN2,TROG_WHITE,0
|
||
STR_MAC 7,63,DP_DSN3,TROG_WHITE,0
|
||
STR_MAC 7,75,DP_DSN4,TROG_WHITE,0
|
||
STR_MAC 7,87,DP_DSN5,TROG_WHITE,0
|
||
STR_MAC 7,99,DP_DSN6,TROG_WHITE,0
|
||
STR_MAC 7,111,DP_DSN7,TROG_WHITE,0
|
||
STR_MAC 7,123,DP_DSN8,TROG_WHITE,0
|
||
|
||
STR_MAC 217,39,DP_DSN1,TROG_WHITE,0
|
||
STR_MAC 217,51,DP_DSN2,TROG_WHITE,0
|
||
STR_MAC 217,63,DP_DSN3,TROG_WHITE,0
|
||
STR_MAC 217,75,DP_DSN4,TROG_WHITE,0
|
||
STR_MAC 217,87,DP_DSN5,TROG_WHITE,0
|
||
STR_MAC 217,99,DP_DSN6,TROG_WHITE,0
|
||
STR_MAC 217,111,DP_DSN7,TROG_WHITE,0
|
||
STR_MAC 217,123,DP_DSN8,TROG_WHITE,0
|
||
|
||
**** STR_MAC 7,149,DCOINTITLE,TROG_BLUE,0
|
||
; STR_MAC 7,161,DCOIN000,TROG_WHITE,0
|
||
; STR_MAC 7,173,DCOIN001,TROG_WHITE,0
|
||
; STR_MAC 7,185,DCOIN010,TROG_WHITE,0
|
||
; STR_MAC 7,197,DCOIN011,TROG_WHITE,0
|
||
; STR_MAC 7,209,DCOIN100,TROG_WHITE,0
|
||
; STR_MAC 7,221,DCOIN101,TROG_WHITE,0
|
||
; STR_MAC 7,233,DCOIN110,TROG_WHITE,0
|
||
; STR_MAC 7,245,DCOIN111,TROG_WHITE,0
|
||
|
||
**** STR_MAC 170,149,DCOUNTRYTITLE,TROG_BLUE,0
|
||
**** STR_MAC 170,161,DCOUNTRY00,TROG_WHITE,0
|
||
**** STR_MAC 170,173,DCOUNTRY01,TROG_WHITE,0
|
||
**** STR_MAC 170,185,DCOUNTRY10,TROG_WHITE,0
|
||
**** STR_MAC 170,197,DCOUNTRY11,TROG_WHITE,0
|
||
|
||
**** STR_MAC 290,149,DPLAYERSTITLE,TROG_BLUE,0
|
||
**** STR_MAC 290,161,DPLAYERS00,TROG_WHITE,0
|
||
**** STR_MAC 290,173,DPLAYERS01,TROG_WHITE,0
|
||
**** STR_MAC 290,185,DPLAYERS10,TROG_WHITE,0
|
||
**** STR_MAC 290,197,DPLAYERS11,TROG_WHITE,0
|
||
|
||
STR_MAC 100,170,DP_INS1,TROG_GREEN,0
|
||
**** STR_MAC 170,245,DP_INS1,TROG_GREEN,0
|
||
**** STR_MAC 170,215,DP_INS2,TROG_GREEN,0
|
||
**** STR_MAC 170,227,DP_INS3,TROG_GREEN,0
|
||
.LONG 0
|
||
|
||
DP_TITLE
|
||
.STRING "DIPSWITCH SETTINGS",0
|
||
.EVEN
|
||
|
||
DP_INS1
|
||
.STRING "PRESS ANY BUTTON TO EXIT",0
|
||
.EVEN
|
||
****DP_INS2
|
||
**** .STRING "0 - OFF - OPEN",0
|
||
**** .EVEN
|
||
****DP_INS3
|
||
**** .STRING "1 - ON - CLOSED",0
|
||
**** .EVEN
|
||
|
||
|
||
|
||
DP_DS1:
|
||
.STRING "DS1",0
|
||
.EVEN
|
||
DP_DS2:
|
||
.STRING "DS2",0
|
||
.EVEN
|
||
|
||
DP_DSN1
|
||
.STRING "1",0
|
||
.EVEN
|
||
DP_DSN2
|
||
.STRING "2",0
|
||
.EVEN
|
||
DP_DSN3
|
||
.STRING "3",0
|
||
.EVEN
|
||
DP_DSN4
|
||
.STRING "4",0
|
||
.EVEN
|
||
DP_DSN5
|
||
.STRING "5",0
|
||
.EVEN
|
||
DP_DSN6
|
||
.STRING "6",0
|
||
.EVEN
|
||
DP_DSN7
|
||
.STRING "7",0
|
||
.EVEN
|
||
DP_DSN8
|
||
.STRING "8",0
|
||
.EVEN
|
||
DP_ON
|
||
.STRING "ON",0
|
||
.EVEN
|
||
DP_OFF
|
||
.STRING "OFF",0
|
||
|
||
DUSECMOS_1:
|
||
.STRING "CMOS COINAGE",0
|
||
.EVEN
|
||
|
||
DUSECMOS_0:
|
||
.STRING "DIPSWITCH COINAGE",0
|
||
.EVEN
|
||
|
||
DCOCKTAIL_0
|
||
.STRING "UPRIGHT",0
|
||
.EVEN
|
||
|
||
DCOCKTAIL_1
|
||
.STRING "MIDWAY COCKTAIL",0
|
||
.EVEN
|
||
|
||
DCOUNTER_0
|
||
.STRING "ONE COUNTER",0
|
||
.EVEN
|
||
|
||
DCOUNTER_1
|
||
.STRING "TWO COUNTERS",0
|
||
.EVEN
|
||
|
||
DCOINAGE
|
||
.STRING "COINAGE",0
|
||
.EVEN
|
||
|
||
DCOUNTRY_TAB
|
||
.LONG DCOUNTRY_0, DCOUNTRY_1, DCOUNTRY_2, DCOUNTRY_3
|
||
|
||
DCOUNTRY_0
|
||
.STRING "USA",0
|
||
.EVEN
|
||
DCOUNTRY_1
|
||
.STRING "GERMAN",0
|
||
.EVEN
|
||
DCOUNTRY_2
|
||
.STRING "FRENCH",0
|
||
.EVEN
|
||
DCOUNTRY_3
|
||
.STRING "UNUSED",0
|
||
.EVEN
|
||
|
||
DJOYSTICK_0
|
||
.STRING "8 WAY JOYSTICKS",0
|
||
.EVEN
|
||
|
||
DJOYSTICK_1
|
||
.STRING "4 WAY JOYSTICKS",0
|
||
.EVEN
|
||
|
||
DPLAYER_TAB
|
||
.LONG DPLAYER_0, DPLAYER_1, DPLAYER_2, DPLAYER_3
|
||
|
||
DPLAYER_0
|
||
.STRING "4 PLAYER",0
|
||
.EVEN
|
||
DPLAYER_1
|
||
.STRING "3 PLAYER",0
|
||
.EVEN
|
||
DPLAYER_2
|
||
.STRING "2 PLAYER",0
|
||
.EVEN
|
||
DPLAYER_3
|
||
.STRING "1 PLAYER",0
|
||
.EVEN
|
||
|
||
DFREEZE_0
|
||
.STRING "VIDEO FREEZE",0
|
||
.EVEN
|
||
|
||
DTEST_0
|
||
.STRING "TEST SWITCH",0
|
||
.EVEN
|
||
|
||
DUNUSED
|
||
.STRING "UNUSED",0
|
||
.EVEN
|
||
|
||
****DCOINTITLE
|
||
**** .STRING "543 - COINAGE",0
|
||
**** .EVEN
|
||
|
||
****UCOIN0 .STRING "000 USA 1",0
|
||
**** .EVEN
|
||
****UCOIN1 .STRING "001 USA 2",0
|
||
**** .EVEN
|
||
****UCOIN2 .STRING "010 USA 3",0
|
||
**** .EVEN
|
||
****UCOIN3 .STRING "011 USA 4",0
|
||
**** .EVEN
|
||
****UCOIN4 .STRING "100 USA 5",0
|
||
**** .EVEN
|
||
****UCOIN5 .STRING "101 USA 6",0
|
||
**** .EVEN
|
||
****UCOIN6 .STRING "110 USA 7",0
|
||
**** .EVEN
|
||
****UCOIN7 .STRING "111 FREEPLAY",0
|
||
**** .EVEN
|
||
|
||
****GCOIN0 .STRING "000 GERMAN 1",0
|
||
**** .EVEN
|
||
****GCOIN1 .STRING "001 GERMAN 2",0
|
||
**** .EVEN
|
||
****GCOIN2 .STRING "010 GERMAN 3",0
|
||
**** .EVEN
|
||
****GCOIN3 .STRING "011 GERMAN 4",0
|
||
**** .EVEN
|
||
****GCOIN4 .STRING "100 UNUSED",0
|
||
**** .EVEN
|
||
****GCOIN5 .STRING "101 UNUSED",0
|
||
**** .EVEN
|
||
****GCOIN6 .STRING "110 UNUSED",0
|
||
**** .EVEN
|
||
|
||
****FCOIN0 .STRING "000 FRANCE 1",0
|
||
**** .EVEN
|
||
****FCOIN1 .STRING "001 FRANCE 2",0
|
||
**** .EVEN
|
||
****FCOIN2 .STRING "010 FRANCE 3",0
|
||
**** .EVEN
|
||
****FCOIN3 .STRING "011 FRANCE 4",0
|
||
**** .EVEN
|
||
****FCOIN4 .STRING "100 FRANCE 5",0
|
||
**** .EVEN
|
||
****FCOIN5 .STRING "101 FRANCE 6",0
|
||
**** .EVEN
|
||
****FCOIN6 .STRING "110 FRANCE 7",0
|
||
**** .EVEN
|
||
|
||
|
||
****UCOINTAB
|
||
**** .LONG UCOIN0, UCOIN1, UCOIN2, UCOIN3, UCOIN4, UCOIN5, UCOIN6, UCOIN7,0
|
||
|
||
****GCOINTAB
|
||
**** .LONG GCOIN0, GCOIN1, GCOIN2, GCOIN3, GCOIN4, GCOIN5, GCOIN6, UCOIN7,0
|
||
|
||
****FCOINTAB
|
||
**** .LONG FCOIN0, FCOIN1, FCOIN2, FCOIN3, FCOIN4, FCOIN5, FCOIN6, UCOIN7,0
|
||
|
||
****COINTAB
|
||
**** .LONG UCOINTAB, GCOINTAB, FCOINTAB, UCOINTAB
|
||
|
||
|
||
****DUCOIN0 .STRING "USA 1",0
|
||
**** .EVEN
|
||
****DUCOIN1 .STRING "USA 2",0
|
||
**** .EVEN
|
||
****DUCOIN2 .STRING "USA 3",0
|
||
**** .EVEN
|
||
****DUCOIN3 .STRING "USA 4",0
|
||
**** .EVEN
|
||
****DUCOIN4 .STRING "USA 5",0
|
||
**** .EVEN
|
||
****DUCOIN5 .STRING "USA 6",0
|
||
**** .EVEN
|
||
****DUCOIN6 .STRING "USA 7",0
|
||
**** .EVEN
|
||
DUCOIN7 .STRING "FREEPLAY",0
|
||
.EVEN
|
||
|
||
****DGCOIN0 .STRING "GERMAN 1",0
|
||
**** .EVEN
|
||
****DGCOIN1 .STRING "GERMAN 2",0
|
||
**** .EVEN
|
||
****DGCOIN2 .STRING "GERMAN 3",0
|
||
**** .EVEN
|
||
****DGCOIN3 .STRING "GERMAN 4",0
|
||
**** .EVEN
|
||
DGCOIN4 .STRING "UNUSED",0
|
||
.EVEN
|
||
****DGCOIN5 .STRING "UNUSED",0
|
||
**** .EVEN
|
||
****DGCOIN6 .STRING "UNUSED",0
|
||
**** .EVEN
|
||
|
||
****DFCOIN0 .STRING "FRANCE 1",0
|
||
**** .EVEN
|
||
****DFCOIN1 .STRING "FRANCE 2",0
|
||
**** .EVEN
|
||
****DFCOIN2 .STRING "FRANCE 3",0
|
||
**** .EVEN
|
||
****DFCOIN3 .STRING "FRANCE 4",0
|
||
**** .EVEN
|
||
****DFCOIN4 .STRING "FRANCE 9",0
|
||
**** .EVEN
|
||
****DFCOIN5 .STRING "FRANCE 10",0
|
||
**** .EVEN
|
||
****DFCOIN6 .STRING "FRANCE 11",0
|
||
**** .EVEN
|
||
|
||
|
||
DUCOINTAB
|
||
.LONG USA_1,USA_2,USA_3,USA_4,USA_ELECTITLE,DGCOIN4
|
||
.LONG DGCOIN4,DUCOIN7
|
||
|
||
DGCOINTAB
|
||
.LONG GERMAN_1,GERMAN_2,GERMAN_3,GERMAN_4,GERMAN_ELECTITLE
|
||
.LONG DGCOIN4,DGCOIN4,DUCOIN7
|
||
|
||
DFCOINTAB
|
||
.LONG FRENCH_1,FRENCH_2,FRENCH_3,FRENCH_4,FRENCH_ELECTITLE
|
||
.LONG DGCOIN4,DGCOIN4,DUCOIN7
|
||
|
||
|
||
DCOINTAB
|
||
.LONG DUCOINTAB, DGCOINTAB, DFCOINTAB, DUCOINTAB
|
||
|
||
****DCOUNTRYTITLE
|
||
**** .STRING "21 - COUNTRY",0
|
||
**** .EVEN
|
||
|
||
****DCOUNTRY00
|
||
**** .STRING "00 USA",0
|
||
**** .EVEN
|
||
****DCOUNTRY01
|
||
**** .STRING "01 GERMAN",0
|
||
**** .EVEN
|
||
****DCOUNTRY10
|
||
**** .STRING "10 FRENCH",0
|
||
**** .EVEN
|
||
****DCOUNTRY11
|
||
**** .STRING "11 UNUSED",0
|
||
**** .EVEN
|
||
|
||
****DPLAYERSTITLE
|
||
**** .STRING "65 - PLAYER",0
|
||
**** .EVEN
|
||
|
||
****DPLAYERS00
|
||
**** .STRING "00 4 PLAYER",0
|
||
**** .EVEN
|
||
****DPLAYERS01
|
||
**** .STRING "01 3 PLAYER",0
|
||
**** .EVEN
|
||
****DPLAYERS10
|
||
**** .STRING "10 2 PLAYER",0
|
||
**** .EVEN
|
||
****DPLAYERS11
|
||
**** .STRING "11 1 PLAYER",0
|
||
**** .EVEN
|
||
.ENDIF
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CPU BOARD INFORMATION *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CPU_VECS:
|
||
VECMAC TROG_WHITE,5,15,390,15 ; BOARD OUTLINE
|
||
VECMAC TROG_WHITE,390,15,390,254
|
||
VECMAC TROG_WHITE,5,254,390,254
|
||
VECMAC TROG_WHITE,5,15,5,100
|
||
VECMAC TROG_WHITE,5,100,15,100
|
||
VECMAC TROG_WHITE,15,100,15,115
|
||
VECMAC TROG_WHITE,5,115,15,115
|
||
VECMAC TROG_WHITE,5,115,5,135
|
||
VECMAC TROG_WHITE,5,135,15,135
|
||
VECMAC TROG_WHITE,15,135,15,138
|
||
VECMAC TROG_WHITE,5,138,15,138
|
||
VECMAC TROG_WHITE,5,138,5,215
|
||
VECMAC TROG_WHITE,5,215,15,215
|
||
VECMAC TROG_WHITE,15,215,15,230
|
||
VECMAC TROG_WHITE,5,230,15,230
|
||
VECMAC TROG_WHITE,5,230,5,254
|
||
.LONG 0
|
||
|
||
CPUXBASE EQU 5
|
||
CPUYBASE EQU 5
|
||
|
||
|
||
CPU_CHIPS:
|
||
CRAM1 CHIPMAC 0,120,25,20,40,7,12,CNAME5,1,2,2,1 ; COLOR RAM
|
||
CRAM2 CHIPMAC 1,120,70,20,40,7,8,CNAME23,1,2,2,1 ; COLOR RAM
|
||
|
||
VRAM1 CHIPMAC 2,200,25,15,35,5,5,CNAME10,1,2,2,1 ; BANK 1 VIDEO RAM
|
||
VRAM2 CHIPMAC 3,217,25,15,35,5,5,CNAME11,1,2,2,1
|
||
VRAM3 CHIPMAC 4,234,25,15,35,5,5,CNAME12,1,2,2,0
|
||
VRAM4 CHIPMAC 5,251,25,15,35,5,5,CNAME13,1,2,2,0
|
||
VRAM5 CHIPMAC 6,268,25,15,35,5,5,CNAME14,1,2,2,0
|
||
VRAM6 CHIPMAC 7,285,25,15,35,5,5,CNAME15,1,2,2,0
|
||
|
||
VRAM7 CHIPMAC 8,200,70,15,35,5,5,CNAME28,1,2,2,1 ; BANK 2 VIDEO RAM
|
||
VRAM8 CHIPMAC 9,217,70,15,35,5,5,CNAME29,1,2,2,1
|
||
VRAM9 CHIPMAC 10,234,70,15,35,5,5,CNAME30,1,2,2,1
|
||
VRAM10 CHIPMAC 11,251,70,15,35,5,5,CNAME31,1,2,2,1
|
||
VRAM11 CHIPMAC 12,268,70,15,35,5,5,CNAME32,1,2,2,1
|
||
VRAM12 CHIPMAC 13,285,70,15,35,5,5,CNAME33,1,2,2,1
|
||
|
||
CPU CHIPMAC 0,330,80,35,35,8,14,CNAME36,0,3,3,1 ; CPU
|
||
DMA CHIPMAC 0,320,175,45,40,12,18,CNAME99,0,42,3,1 ; DMA
|
||
|
||
PROM1 CHIPMAC 0,90,167,20,40,7,8,CNAME89,1,2,2,1 ; PROGRAM ROM 1
|
||
PROM2 CHIPMAC 1,90,210,20,40,7,3,CNAME105,1,2,2,1 ; PROGRAM ROM 2
|
||
|
||
IROM1 CHIPMAC 1,130,167,20,40,7,8,CNAME90,1,2,2,1 ; IMAGE ROM
|
||
IROM2 CHIPMAC 2,152,167,20,40,7,8,CNAME91,1,2,2,1 ; IMAGE ROM
|
||
IROM3 CHIPMAC 3,174,167,20,40,7,8,CNAME92,1,2,2,0 ; IMAGE ROM
|
||
IROM4 CHIPMAC 4,196,167,20,40,7,8,CNAME93,1,2,2,0 ; IMAGE ROM
|
||
|
||
IROM5 CHIPMAC 5,228,167,20,40,7,8,CNAME95,1,2,2,1 ; IMAGE ROM
|
||
IROM6 CHIPMAC 6,250,167,20,40,7,8,CNAME96,1,2,2,1 ; IMAGE ROM
|
||
IROM7 CHIPMAC 7,272,167,20,40,7,8,CNAME97,1,2,2,1 ; IMAGE ROM
|
||
IROM8 CHIPMAC 8,294,167,20,40,7,8,CNAME98,1,2,2,0 ; IMAGE ROM
|
||
|
||
IROM9 CHIPMAC 9,130,210,20,40,7,3,CNAME106,1,2,2,1 ; IMAGE ROM
|
||
IROM10 CHIPMAC 10,152,210,20,40,7,3,CNAME107,1,2,2,1 ; IMAGE ROM
|
||
IROM11 CHIPMAC 11,174,210,20,40,7,3,CNAME108,1,2,2,0 ; IMAGE ROM
|
||
IROM12 CHIPMAC 12,196,210,20,40,7,3,CNAME109,1,2,2,0 ; IMAGE ROM
|
||
|
||
IROM13 CHIPMAC 13,228,210,20,40,7,3,CNAME111,1,2,2,1 ; IMAGE ROM
|
||
IROM14 CHIPMAC 14,250,210,20,40,7,3,CNAME112,1,2,2,1 ; IMAGE ROM
|
||
IROM15 CHIPMAC 15,272,210,20,40,7,3,CNAME113,1,2,2,1 ; IMAGE ROM
|
||
IROM16 CHIPMAC 16,294,210,20,40,7,3,CNAME114,1,2,2,0 ; IMAGE ROM
|
||
|
||
SRAM1 CHIPMAC 0,30,115,15,35,5,5,CNAME66,1,2,2,1 ; SCRATCH PAD
|
||
SRAM2 CHIPMAC 1,47,115,15,35,5,5,CNAME67,1,2,2,1 ; SCRATCH PAD
|
||
SRAM3 CHIPMAC 2,64,115,15,35,5,5,CNAME68,1,2,2,1 ; SCRATCH PAD
|
||
SRAM4 CHIPMAC 3,81,115,15,35,5,5,CNAME69,1,2,2,1 ; SCRATCH PAD
|
||
.LONG 0
|
||
|
||
VRAMTAB .LONG CRAM1,CRAM2
|
||
.LONG VRAM1,VRAM2,VRAM3,VRAM4,VRAM5,VRAM6
|
||
.LONG VRAM7,VRAM8,VRAM9,VRAM10,VRAM11,VRAM12
|
||
.LONG 0
|
||
PROMTAB .LONG PROM1,PROM2
|
||
.LONG 0
|
||
IROMTAB .LONG IROM1,IROM2,IROM3,IROM4
|
||
.LONG IROM5,IROM6,IROM7,IROM8
|
||
.LONG IROM9,IROM10,IROM11,IROM12
|
||
.LONG IROM13,IROM14,IROM15,IROM16
|
||
.LONG 0
|
||
SRAMTAB .LONG SRAM1,SRAM2,SRAM3,SRAM4
|
||
.LONG 0
|
||
|
||
CNAME5
|
||
.STRING "U5",0
|
||
.EVEN
|
||
CNAME10
|
||
.STRING "U10",0
|
||
.EVEN
|
||
CNAME11
|
||
.STRING "U11",0
|
||
.EVEN
|
||
CNAME12
|
||
.STRING "U12",0
|
||
.EVEN
|
||
CNAME13
|
||
.STRING "U13",0
|
||
.EVEN
|
||
CNAME14
|
||
.STRING "U14",0
|
||
.EVEN
|
||
CNAME15
|
||
.STRING "U15",0
|
||
.EVEN
|
||
CNAME23
|
||
.STRING "U23",0
|
||
.EVEN
|
||
CNAME28
|
||
.STRING "U28",0
|
||
.EVEN
|
||
CNAME29
|
||
.STRING "U29",0
|
||
.EVEN
|
||
CNAME30
|
||
.STRING "U30",0
|
||
.EVEN
|
||
CNAME31
|
||
.STRING "U31",0
|
||
.EVEN
|
||
CNAME32
|
||
.STRING "U32",0
|
||
.EVEN
|
||
CNAME33
|
||
.STRING "U33",0
|
||
.EVEN
|
||
CNAME36
|
||
.STRING "U36",0
|
||
.EVEN
|
||
CNAME49
|
||
.STRING "U49",0
|
||
.EVEN
|
||
CNAME66
|
||
.STRING "U66",0
|
||
.EVEN
|
||
CNAME67
|
||
.STRING "U67",0
|
||
.EVEN
|
||
CNAME68
|
||
.STRING "U68",0
|
||
.EVEN
|
||
CNAME69
|
||
.STRING "U69",0
|
||
.EVEN
|
||
CNAME89
|
||
.STRING "U89",0
|
||
.EVEN
|
||
CNAME90
|
||
.STRING "U90",0
|
||
.EVEN
|
||
CNAME91
|
||
.STRING "U91",0
|
||
.EVEN
|
||
CNAME92
|
||
.STRING "U92",0
|
||
.EVEN
|
||
CNAME93
|
||
.STRING "U93",0
|
||
.EVEN
|
||
CNAME95
|
||
.STRING "U95",0
|
||
.EVEN
|
||
CNAME96
|
||
.STRING "U96",0
|
||
.EVEN
|
||
CNAME97
|
||
.STRING "U97",0
|
||
.EVEN
|
||
CNAME98
|
||
.STRING "U98",0
|
||
.EVEN
|
||
CNAME99
|
||
.STRING "U99",0
|
||
.EVEN
|
||
CNAME105
|
||
.STRING "U105",0
|
||
.EVEN
|
||
CNAME106
|
||
.STRING "U106",0
|
||
.EVEN
|
||
CNAME107
|
||
.STRING "U107",0
|
||
.EVEN
|
||
CNAME108
|
||
.STRING "U108",0
|
||
.EVEN
|
||
CNAME109
|
||
.STRING "U109",0
|
||
.EVEN
|
||
CNAME111
|
||
.STRING "U111",0
|
||
.EVEN
|
||
CNAME112
|
||
.STRING "U112",0
|
||
.EVEN
|
||
CNAME113
|
||
.STRING "U113",0
|
||
.EVEN
|
||
CNAME114
|
||
.STRING "U114",0
|
||
.EVEN
|
||
CNAME115
|
||
.STRING "U115",0
|
||
.EVEN
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* RAM CHIP DATA *
|
||
* *
|
||
**************************************************************************
|
||
|
||
;
|
||
; MAKE SURE THESE TABLES CORRESPOND WITH THE STUFF ABOVE
|
||
;
|
||
|
||
VRAMCHIPS:
|
||
|
||
; COLOR RAMS
|
||
|
||
RAM_CHIP 0,0, 8, 16, 1800008H, 180FFF8H
|
||
RAM_CHIP 0,1, 8, 16, 1800000H, 180FFF0H
|
||
|
||
; VIDEO RAMS
|
||
RAM_CHIP 0,10, 4, 32, 0000018H, 01FFFF8H ; U30 ( 24 - 27 )
|
||
RAM_CHIP 0,11, 4, 32, 0000010H, 01FFFF0H ; U31 ( 16 - 19 )
|
||
RAM_CHIP 0,12, 4, 32, 0000008H, 01FFFE8H ; U32 ( 8 - 11 )
|
||
RAM_CHIP 0,13, 4, 32, 0000000H, 01FFFE0H ; U33 ( 0 - 3 )
|
||
.LONG 0
|
||
|
||
PALCHIPS:
|
||
|
||
; VIDEO PALETTE RAMS
|
||
|
||
RAM_CHIP 0,2, 4, 32, 000001CH, 01FFFFCH ; U10 ( 28 - 31 )
|
||
RAM_CHIP 0,3, 4, 32, 0000014H, 01FFFF4H ; U11 ( 20 - 23 )
|
||
RAM_CHIP 0,8, 4, 32, 000000CH, 01FFFECH ; U28 ( 12 - 15 )
|
||
RAM_CHIP 0,9, 4, 32, 0000004H, 01FFFE4H ; U29 ( 4 - 7 )
|
||
|
||
.LONG 0
|
||
|
||
; SCRATCH RAMS
|
||
|
||
SRAMCHECK
|
||
.STRING "CHECKING SCRATCH RAMS",0
|
||
.EVEN
|
||
|
||
SRAMCHIPS
|
||
RAM_CHIP SRAM4,3, 4, 16, 1000000H, 10FFFF0H ; U69 ( 0 - 3 )
|
||
RAM_CHIP SRAM3,2, 4, 16, 1000004H, 10FFFF4H ; U68 ( 4 - 7 )
|
||
RAM_CHIP SRAM2,1, 4, 16, 1000008H, 10FFFF8H ; U67 ( 8 - 11 )
|
||
RAM_CHIP SRAM1,0, 4, 16, 100000CH, 10FFFFCH ; U66 ( 12 - 15 )
|
||
.LONG 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PROGRAM CHECKSUMS *
|
||
* *
|
||
* THE TWO PROGRAM CHECKSUMS MUST BE GLOBALLY DEFINED *
|
||
* AS CHECKSUM0 AND CHECKSUM1 IF YOU WISH TO USE THE *
|
||
* AUTOMATIC SREC CHECKSUMMER. ENTER 34010 WHEN ASKED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
PROMCHIPS
|
||
ROM_CHIP PROM1,0,0,0, 0FFE00000H, 0FFFFFFF0H, 0FFFFH ; U105
|
||
ROM_CHIP PROM2,1,0,0, 0FFE00008H, 0FFFFFFF8H, 0FFFFH ; U89
|
||
.LONG 0
|
||
|
||
.SECT "CKSUMS"
|
||
CHECKSUM0
|
||
.WORD 0FFFFH ;U105 CHECKSUM
|
||
CHECKSUM1
|
||
.WORD 0FFFFH ;U89 CHECKSUM
|
||
|
||
.LONG 0 ;CHECKSUM PATCH SPACE
|
||
|
||
.TEXT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* IMAGE ROM CHECKSUM TABLES *
|
||
* *
|
||
* NOTE: COMMENT OUT ANY UNSTUFFED PARTS THAT *
|
||
* EXIST BEFORE THE .LONG 0 TERMINATOR! *
|
||
* *
|
||
**************************************************************************
|
||
IROMCHIPS
|
||
ROM_CHIP IROM13,13, 8, 0, 2000000H, 23FFFFFH, 0CB32H ; U111
|
||
ROM_CHIP IROM5, 5, 8, 1, 2000000H, 23FFFFFH, 07006H ; U95
|
||
|
||
ROM_CHIP IROM14,14, 8, 0, 2400000H, 27FFFFFH, 01059H ; U112
|
||
ROM_CHIP IROM6, 6, 8, 1, 2400000H, 27FFFFFH, 019CDH ; U96
|
||
|
||
ROM_CHIP IROM15,15, 8, 0, 2800000H, 2BFFFFFH, 0C5CEH ; U113
|
||
ROM_CHIP IROM7, 7, 8, 1, 2800000H, 2BFFFFFH, 02E1AH ; U97
|
||
|
||
*** ROM_CHIP IROM16,16, 8, 0, 2C00000H, 2FFFFFFH, 0EAFDH ; U114
|
||
*** ROM_CHIP IROM8, 8, 8, 1, 2C00000H, 2FFFFFFH, 0EAFDH ; U98
|
||
|
||
;
|
||
; PROPER ADDRESSING FOR THE FIRST 8 EPROMS ( AT 3000000H )
|
||
;
|
||
|
||
ROM_CHIP IROM9, 9, 8, 2, 3000000H, 33FFFFFH, 01317H ; U106
|
||
ROM_CHIP IROM1, 1, 8, 3, 3000000H, 33FFFFFH, 0E772H ; U90
|
||
|
||
ROM_CHIP IROM10,10, 8, 2, 3400000H, 37FFFFFH, 07CCEH ; U107
|
||
ROM_CHIP IROM2, 2, 8, 3, 3400000H, 37FFFFFH, 07676H ; U91
|
||
|
||
.LONG 0 ; FORCE IT TO STOP HERE
|
||
|
||
ROM_CHIP IROM11,11, 8, 2, 3800000H, 3BFFFFFH, 0EAFDH ; U108
|
||
ROM_CHIP IROM3, 3, 8, 3, 3800000H, 3BFFFFFH, 0EAFDH ; U92
|
||
|
||
ROM_CHIP IROM12,12, 8, 2, 3C00000H, 3FFFFFFH, 0EAFDH ; U109
|
||
ROM_CHIP IROM4, 4, 8, 3, 3C00000H, 3FFFFFFH, 0EAFDH ; U93
|
||
|
||
.LONG 0
|
||
|
||
|
||
.END
|
||
|