4190 lines
74 KiB
NASM
Executable File
4190 lines
74 KiB
NASM
Executable File
.FILE "DIAG.ASM"
|
|
*----------------------------------------------------------------------------
|
|
*DIAGNOSTIC AND BOOK KEEPING ROUTINES
|
|
*
|
|
*COPYRIGHT (C) 1994 BY TV GAMES, INC.
|
|
*ALL RIGHTS RESERVED
|
|
*
|
|
|
|
.include C30.EQU
|
|
.include MACS.EQU
|
|
.include MPROC.EQU
|
|
.include VUNIT.EQU
|
|
.include CMOS.EQU
|
|
.include SYSID.EQU
|
|
.include SYS.EQU
|
|
.include GLOBALS.EQU
|
|
.include SNDTAB.EQU
|
|
.include PALL.EQU
|
|
.include OBJECTS.EQU
|
|
.include TEXT.EQU
|
|
.include DIRQ.EQU
|
|
.include DIAG.EQU
|
|
.include ERROR.EQU
|
|
|
|
.text
|
|
*WAIT FOR ENTER BUTTON ON
|
|
WT_START
|
|
WT_S1
|
|
LDI @_newbut,R0
|
|
TSTB SW_DIAG,R0
|
|
BNZ WT_S1
|
|
RETS
|
|
|
|
*WAIT FOR ENTER BUTTON OFF
|
|
WT_NSTART
|
|
WT_NS1
|
|
LDI @_newbut,R0
|
|
TSTB SW_DIAG,R0
|
|
BZ WT_NS1
|
|
RETS
|
|
*WAIT FOR ENTER ON THEN OFF
|
|
KEYPAUSE
|
|
CALL WT_START
|
|
B WT_NSTART
|
|
|
|
*MAKE A BEEP
|
|
BEEP
|
|
LDI 980,AR2
|
|
BR SENDSND
|
|
;
|
|
*----------------------------------------------------------------------------
|
|
MW_Y2 .set 0
|
|
MW_X2 .set 1
|
|
MW_Y1 .set 2
|
|
MW_X1 .set 3
|
|
|
|
MAKE_WINDOW:
|
|
PUSH AR3
|
|
PUSH AR2
|
|
PUSH R2
|
|
PUSH R3
|
|
PUSH RC
|
|
LDI SP,AR3
|
|
|
|
LDI COL_LGREY,RS
|
|
CALL _fill
|
|
|
|
LDI *-AR3(MW_X1),AR2
|
|
LDI *-AR3(MW_Y1),R2
|
|
LDI *-AR3(MW_X2),R3
|
|
LDI *-AR3(MW_Y1),RC
|
|
LDI COL_LGREY2,RS
|
|
CALL _line
|
|
|
|
LDI *-AR3(MW_X1),AR2
|
|
LDI *-AR3(MW_Y1),R2
|
|
LDI *-AR3(MW_X1),R3
|
|
LDI *-AR3(MW_Y2),RC
|
|
LDI COL_LGREY2,RS
|
|
CALL _line
|
|
|
|
LDI *-AR3(MW_X2),AR2
|
|
LDI *-AR3(MW_Y1),R2
|
|
LDI *-AR3(MW_X2),R3
|
|
LDI *-AR3(MW_Y2),RC
|
|
LDI COL_DGREY,RS
|
|
CALL _line
|
|
|
|
LDI *-AR3(MW_X1),AR2
|
|
LDI *-AR3(MW_Y2),R2
|
|
LDI *-AR3(MW_X2),R3
|
|
LDI *-AR3(MW_Y2),RC
|
|
LDI COL_DGREY,RS
|
|
CALL _line
|
|
POP RC
|
|
POP R3
|
|
POP R2
|
|
POP AR2
|
|
POP AR3
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
MAKE_IWINDOW:
|
|
PUSH AR3
|
|
PUSH AR2
|
|
PUSH R2
|
|
PUSH R3
|
|
PUSH RC
|
|
LDI SP,AR3
|
|
|
|
LDI COL_LGREY,RS
|
|
CALL _fill
|
|
|
|
LDI *-AR3(MW_X1),AR2
|
|
LDI *-AR3(MW_Y1),R2
|
|
LDI *-AR3(MW_X2),R3
|
|
LDI *-AR3(MW_Y1),RC
|
|
LDI COL_DGREY,RS
|
|
CALL _line
|
|
|
|
LDI *-AR3(MW_X1),AR2
|
|
LDI *-AR3(MW_Y1),R2
|
|
LDI *-AR3(MW_X1),R3
|
|
LDI *-AR3(MW_Y2),RC
|
|
LDI COL_DGREY,RS
|
|
CALL _line
|
|
|
|
LDI *-AR3(MW_X2),AR2
|
|
LDI *-AR3(MW_Y1),R2
|
|
LDI *-AR3(MW_X2),R3
|
|
LDI *-AR3(MW_Y2),RC
|
|
LDI COL_LGREY2,RS
|
|
CALL _line
|
|
|
|
LDI *-AR3(MW_X1),AR2
|
|
LDI *-AR3(MW_Y2),R2
|
|
LDI *-AR3(MW_X2),R3
|
|
LDI *-AR3(MW_Y2),RC
|
|
LDI COL_LGREY2,RS
|
|
CALL _line
|
|
POP RC
|
|
POP R3
|
|
POP R2
|
|
POP AR2
|
|
POP AR3
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
romdata
|
|
inst1 .string "USE UP/DOWN TO SELECT FUNCTION",0
|
|
inst2 .string "ENTER TO ACTIVATE",0
|
|
title .string "CRUISIN USA DIAGNOSTICS",0
|
|
toexit .string "HIT ENTER TO EXIT",0
|
|
.text
|
|
|
|
DIAGPAL:
|
|
.word 16 ;LENGTH OF PALETTE
|
|
RGB 060h,060h,060h ;0 LIGHT GREY
|
|
RGB 0ffh,0ffh,0ffh ;1 WHITE
|
|
RGB 070h,070h,070h ;2 GREY
|
|
RGB 0ffh,000h,000h ;3 RED
|
|
RGB 000h,0ffh,000h ;4 GREEN
|
|
RGB 055h,055h,099h ;5 BLUE (for the sky paled out)
|
|
RGB 0ffh,0ffh,000h ;6 YELLOW
|
|
RGB 000h,0ffh,0ffh ;7 CYAN
|
|
RGB 000h,000h,000h ;8 BLACK
|
|
RGB 000h,000h,077h ;9 TRUE BLUE
|
|
RGB 0C0h,0A0h,000h ;A Amber color
|
|
RGB 050h,050h,050h ;B DARK GREY
|
|
RGB 060h,060h,060h ; LIGHT GREY
|
|
RGB 090h,090h,090h ; LIGHT GREY2
|
|
RGB 0C0h,0C0h,0C0h ; LIGHT GREY3
|
|
RGB 020h,020h,020h ; LIGHT GREY3
|
|
.text
|
|
|
|
*----------------------------------------------------------------------------
|
|
HARD_LOAD_DIAGPAL:
|
|
LDL DIAGPAL,AR2
|
|
LDIL COLORAM,AR1
|
|
LDI *AR2++,AR0
|
|
DEC AR0
|
|
LODLP
|
|
LDI *AR2++,R0
|
|
STI R0,*AR1++
|
|
DBU AR0,LODLP
|
|
RETS ;F -cycling color
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
.globl HIDDEN_DIAG
|
|
.bss SOFT_AUDIT,1
|
|
HIDDEN_DIAG:
|
|
CALL ENTER_DIAG_INIT
|
|
|
|
LDI @DIAGPAL+1,R0
|
|
STI R0,@BGNDCOLA
|
|
|
|
LDI MDIAG,R0 ;set mode appropriate
|
|
STI R0,@_MODE
|
|
|
|
CALL CLRSCRN ;we are NOT page flipping
|
|
CALL SETPAGE0
|
|
|
|
LDIL SCREEN0,R0 ;set active screen to 1 (writeable)
|
|
STI R0,@ACTIVE_SCREEN
|
|
|
|
LDI 1,R0
|
|
STI R0,@SOFT_AUDIT
|
|
|
|
CALL AUDIT_DISPLAY
|
|
BR DIAG_RETURN
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
ENTER_DIAG_INIT:
|
|
POP R0
|
|
LDP @FASTSTKI
|
|
LDI @FASTSTKI,SP ;LOAD THE ADDRESS INTO SP
|
|
PUSH R0
|
|
|
|
FIFO_CLRP R0 ;is the fifo clear
|
|
DMA_WT R0
|
|
CALL FIFO_RESET
|
|
|
|
CALL SILENT
|
|
|
|
LDI 1,R2
|
|
SETAUD ADJ_OUTOFDIAG
|
|
|
|
LDI MDIAG,R0 ;MELLOW THE WHEEL
|
|
STI R0,@_MODE
|
|
|
|
LDI INT0_M|INT3_M,IE ;ENABLE INTERRUPTS
|
|
AND 0,IF
|
|
CALL ENABLEGIE ;MUST DO AT START FOR I/O READING
|
|
|
|
CALL INIT_SYSTEM
|
|
CALL PAL_INIT
|
|
LDL DIAGPAL,AR2
|
|
CALL PAL_ALLOC_RAW
|
|
|
|
CLRI AR2
|
|
CALL SENDSND
|
|
|
|
CLRI R4
|
|
STI R4,@SOFT_AUDIT
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
ENTER_DIAG:
|
|
CALL ENTER_DIAG_INIT
|
|
|
|
ENTER_DIAG2
|
|
CLRI R0
|
|
STI R0,@BUTTON_STATUS
|
|
LDI MDIAG,R0 ;set mode appropriate
|
|
STI R0,@_MODE
|
|
|
|
LDL MAIN_MENU,AR5
|
|
LDI MAIN_MENU_LEN,AR6
|
|
LDI @MMT,AR7
|
|
BU HANDLE_MENU
|
|
|
|
RETURN_TO_MAINMENU:
|
|
LDI MDIAG,R0 ;set mode appropriate
|
|
STI R0,@_MODE
|
|
|
|
|
|
LDL MAIN_MENU,AR5
|
|
LDI MAIN_MENU_LEN,AR6
|
|
LDI @MMT,AR7
|
|
BU HMER
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
TOEXIT:
|
|
LDI DEFAULT_COLOR,RC
|
|
TEXTIT toexit,180,371
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
;*ARE DIAGs STILL ACTIVE?
|
|
;*T-> RETURN
|
|
;*F-> RESET
|
|
;*
|
|
;DIAG_ACTIVEP:
|
|
; LDI @_newbut,R0 ;old system method
|
|
; RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
FILSIZI .word 3FFFFH
|
|
REDV .word 30003h ;these values point into fixed palette
|
|
GREENV .word 40004h
|
|
BLUEV .word 90009h
|
|
BLACKV .word 80008h
|
|
|
|
MONITOR_DIAGNOSTICS:
|
|
CALL COLORBARS
|
|
|
|
CALL KEYPAUSE
|
|
|
|
CALL PAL_INIT
|
|
LDL DIAGPAL,AR2
|
|
CALL PAL_ALLOC_RAW
|
|
|
|
LDIL SCREEN0,AR2
|
|
LDI @FILSIZI,R3
|
|
LDI @REDV,R2
|
|
CALL SCREEN_FILL
|
|
|
|
CALL KEYPAUSE
|
|
|
|
; CALL DIAG_ACTIVEP
|
|
|
|
LDIL SCREEN0,AR2
|
|
LDI @FILSIZI,R3
|
|
LDI @GREENV,R2
|
|
CALL SCREEN_FILL
|
|
|
|
CALL KEYPAUSE
|
|
|
|
; CALL DIAG_ACTIVEP
|
|
|
|
LDIL SCREEN0,AR2
|
|
LDI @FILSIZI,R3
|
|
LDI @BLUEV,R2
|
|
CALL SCREEN_FILL
|
|
|
|
CALL KEYPAUSE
|
|
|
|
; CALL DIAG_ACTIVEP
|
|
|
|
LDIL SCREEN0,AR2
|
|
LDI @FILSIZI,R3
|
|
LDI @BLACKV,R2
|
|
CALL SCREEN_FILL
|
|
|
|
|
|
;12 across
|
|
|
|
;HLINES
|
|
;20 down
|
|
LDI 20,AR7
|
|
LDI 0,AR6
|
|
LINLOP
|
|
CMPI 20,AR6
|
|
LDIEQ 19,AR6
|
|
CLRI AR2
|
|
LDI 511,R3
|
|
LDI AR6,R2
|
|
LDI AR6,RC
|
|
LDI 1,RS
|
|
CALL _line
|
|
ADDI 20,AR6
|
|
DBU AR7,LINLOP
|
|
|
|
|
|
;VLINES
|
|
|
|
LDI 32,AR7
|
|
LDI 0,AR6
|
|
VLINLOP
|
|
CMPI 16,AR6
|
|
LDIEQ 15,AR6
|
|
|
|
CLRI R2
|
|
LDI 399,RC
|
|
|
|
LDI AR6,AR2
|
|
LDI AR6,R3
|
|
|
|
LDI 1,RS
|
|
CALL _line
|
|
ADDI 16,AR6
|
|
DBU AR7,VLINLOP
|
|
|
|
CALL KEYPAUSE
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
COLORBARS:
|
|
CALL CLRSCRN0
|
|
|
|
CLRI R0
|
|
STI R0,@BGNDCOLA
|
|
LDI 09Eh,AR0
|
|
LS 16,AR0
|
|
LDI 15,RC
|
|
RPTB GREYLP
|
|
LDI R0,R1
|
|
LDI R0,R2
|
|
LS 5,R1
|
|
LS 10,R2
|
|
LDI R0,R3
|
|
OR R1,R3
|
|
OR R2,R3
|
|
STI R3,*AR0++
|
|
GREYLP ADDI 2,R0
|
|
|
|
CLRI R0
|
|
LDI 15,RC
|
|
RPTB REDLP
|
|
LDI R0,R1
|
|
LS 10,R1
|
|
STI R1,*AR0++
|
|
REDLP ADDI 2,R0
|
|
|
|
CLRI R0
|
|
LDI 15,RC
|
|
RPTB GREENLP
|
|
LDI R0,R1
|
|
LSH 5,R1
|
|
STI R1,*AR0++
|
|
GREENLP ADDI 2,R0
|
|
|
|
CLRI R0
|
|
LDI 15,RC
|
|
RPTB BLUELP
|
|
STI R0,*AR0++
|
|
BLUELP ADDI 2,R0
|
|
|
|
|
|
|
|
CLRI R3 ;color
|
|
LDI 50,R2 ;starting Y coordinate
|
|
LDI 3,AR4
|
|
WHOLELP
|
|
LDI R3,R4
|
|
LDI 50,AR5 ;lines per mess
|
|
GROUPLP LDI R4,R3
|
|
|
|
LDI 128,AR2 ;starting X pixel
|
|
LDI 15,AR7 ;blocks per lines
|
|
LINELP LDI 15,AR6 ;pixels per block
|
|
BLOCKLP CALL _pixel
|
|
INC AR2 ;next pixel
|
|
DBU AR6,BLOCKLP
|
|
INC R3
|
|
DBU AR7,LINELP
|
|
|
|
INC R2
|
|
DBU AR5,GROUPLP
|
|
|
|
ADDI 20,R2
|
|
DBU AR4,WHOLELP
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*SHOW SWITCHES (AND POTS)
|
|
*
|
|
.bss buffer,20
|
|
bufferI .word buffer
|
|
|
|
.bss _opot0,1
|
|
.bss _opot1,1
|
|
.bss _opot2,1
|
|
|
|
SHOWSWITCH:
|
|
CALL SETUP_DIAG_SCREEN
|
|
|
|
LDI -1,R0
|
|
STI R0,@_opot0
|
|
STI R0,@_opot1
|
|
STI R0,@_opot2
|
|
STI R0,@_onebut
|
|
STI R0,@LASTDIPPLOT
|
|
STI R0,@LASTSHIFT
|
|
|
|
IWINDOW 125,170,145,355
|
|
IWINDOW 135,95,220,135
|
|
IWINDOW 245,95,420,135
|
|
|
|
GROUP 10,60,465,150 ;pots etc
|
|
GROUP 10,160,170,360 ;switches
|
|
GROUP 190,160,360,250 ;shifter
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "SWITCH TEST",205,26
|
|
TEXTITT "STEERING WHEEL",20,100
|
|
TEXTITT "GAS PEDAL",20,110
|
|
TEXTITT "BRAKE PEDAL",20,120
|
|
|
|
TEXTITT "VIEW 1",20,180
|
|
TEXTITT "VIEW 2",20,200
|
|
TEXTITT "VIEW 3",20,220
|
|
TEXTITT "START",20,240
|
|
TEXTITT "COIN 1",20,260
|
|
TEXTITT "COIN 2",20,280
|
|
TEXTITT "COIN 3",20,300
|
|
TEXTITT "COIN 4",20,320
|
|
TEXTITT "RADIO",20,340
|
|
|
|
|
|
TEXTITT "HIT ENTER TO EXIT",40,40
|
|
|
|
TEXTITT "ENTER",215,280
|
|
TEXTITT "VOLUME UP",215,300
|
|
TEXTITT "VOLUME DOWN",215,320
|
|
TEXTITT "SERVICE",215,340
|
|
TEXTITT "CREDIT",225,350
|
|
IWINDOW 325,270,355,360
|
|
|
|
SSLP
|
|
; CALL DIAG_ACTIVEP
|
|
CALL DISPPOTS
|
|
CALL DISPLAY_SWITCH_STATUS
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "CMOS VALUES",250,70
|
|
TEXTITT "MIN CENTER MAX",250,80
|
|
TEXTITT "POT READING",134,80
|
|
|
|
|
|
READADJ ADJ_GASMIN
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 250,R2
|
|
LDI 110,R3
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
|
|
READADJ ADJ_GASMAX
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 350,R2
|
|
LDI 110,R3
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
READADJ ADJ_STEERMIN
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 250,R2
|
|
LDI 100,R3
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
READADJ ADJ_STEERCENTER
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 300,R2
|
|
LDI 100,R3
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
READADJ ADJ_STEERMAX
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 350,R2
|
|
LDI 100,R3
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
|
|
|
|
READADJ ADJ_BRAKEMIN
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 250,R2
|
|
LDI 120,R3
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
READADJ ADJ_BRAKEMAX
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 350,R2
|
|
LDI 120,R3
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
|
|
LDI 7FFFh,R0 ;waste a little time
|
|
MPYI 10,R0
|
|
RPTS R0
|
|
NOP
|
|
|
|
|
|
NOT @_newbut,R0
|
|
AND SW_DIAG,R0
|
|
BNZ NOWTOEXIT
|
|
; RETSNZ
|
|
|
|
CALL WAIT_FOR_VBLANK ;wait for vblk
|
|
B SSLP
|
|
|
|
NOWTOEXIT
|
|
LDI 330,AR2
|
|
LDI AR2,R3
|
|
ADDI 10,R3
|
|
LDI 275,R2
|
|
SUBI 2,R2
|
|
LDI R2,RC
|
|
ADDI 12,RC
|
|
LDI COL_RED,RS
|
|
CALL _fill
|
|
|
|
|
|
LDI 10,AR5
|
|
BBD5 CALL WAIT_FOR_VBLANK ;wait for vblk
|
|
DBU AR5,BBD5
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*BOTTOM EIGHT BITS ONLY
|
|
*
|
|
*
|
|
*PARAMETER
|
|
* AR2 STRING
|
|
* R2 VALUE
|
|
*
|
|
*
|
|
ASCII_TO_BINARY:
|
|
LDI 0,RS
|
|
LDI 0,R0 ;output
|
|
LDI 80h,R1 ;mask
|
|
LDI 7,AR3
|
|
|
|
ATBLP
|
|
TSTB R1,R2
|
|
LDIZ '0',R3
|
|
LDINZ '1',R3
|
|
|
|
LSH RS,R3
|
|
OR R3,R0
|
|
|
|
RS 1,R1
|
|
|
|
ADDI 8,RS
|
|
CMPI 32,RS
|
|
BLT JJ
|
|
LDI 0,RS
|
|
STI R0,*AR2++
|
|
CLRI R0
|
|
|
|
JJ
|
|
DBU AR3,ATBLP
|
|
|
|
CLRI R0
|
|
STI R0,*AR2++
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
.bss _onebut,1
|
|
DISPLAY_SWITCH_STATUS:
|
|
CALL DISPLAY_SHIFTER
|
|
|
|
LDI @_newbut,R0
|
|
LDI @_onebut,R1
|
|
CMPI R1,R0
|
|
RETSEQ
|
|
STI R0,@_onebut
|
|
|
|
|
|
|
|
FILL 130,175,140,350,0 ;MAIN
|
|
FILL 327,272,353,358,0 ;TEST SWITCHES
|
|
|
|
|
|
LDI @SWITCHES_DIAGI,AR6
|
|
DSS
|
|
LDI @_newbut,R0
|
|
LDI *AR6++(3),R1
|
|
CMPI -1,R1
|
|
BZ DONEDSS
|
|
AND R1,R0
|
|
BNZ DSS
|
|
LDI *-AR6(1),AR2
|
|
LDI AR2,R3
|
|
ADDI 10,R3
|
|
LDI *-AR6(2),R2
|
|
SUBI 2,R2
|
|
LDI R2,RC
|
|
ADDI 12,RC
|
|
LDI COL_RED,RS
|
|
CALL _fill
|
|
NOPLOT
|
|
B DSS
|
|
DONEDSS
|
|
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
SWITCHES_DIAGI .word SWITCHES_DIAG
|
|
romdata
|
|
SWITCHES_DIAG .word SW_VIEW0,180,130
|
|
.word SW_VIEW1,200,130
|
|
.word SW_VIEW2,220,130
|
|
.word SW_START,240,130
|
|
.word SW_COIN1,260,130
|
|
.word SW_COIN2,280,130
|
|
.word SW_COIN3,300,130
|
|
.word SW_COIN4,320,130
|
|
.word SW_RADIO,340,130
|
|
.word SW_DIAG,275,330
|
|
.word SW_VOLPLUS,295,330
|
|
.word SW_VOLMINUS,315,330
|
|
.word SW_COINSRV,335,330
|
|
.word -1
|
|
.text
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
.bss LASTSHIFT,1
|
|
DISPLAY_SHIFTER:
|
|
NOT @_newbut,R0
|
|
AND 3C00h,R0
|
|
CMPI @LASTSHIFT,R0
|
|
RETSEQ
|
|
STI R0,@LASTSHIFT
|
|
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "SHIFT 1",215,170
|
|
TEXTITT "SHIFT 2",215,240
|
|
TEXTITT "SHIFT 3",290,170
|
|
TEXTITT "SHIFT 4",290,240
|
|
|
|
PUSH R0
|
|
PUSH AR2
|
|
FILL 230,180,325,230,0
|
|
POP AR2
|
|
POP R0
|
|
|
|
; 400h = 4
|
|
; 800h = 3
|
|
;1000h = 2
|
|
;2000h = 1
|
|
LDI @_newbut,R0
|
|
TSTB 2000h,R0
|
|
BNZ NOT1ST
|
|
FILL 230,180,250,200,COL_RED
|
|
NOT1ST
|
|
|
|
LDI @_newbut,R0
|
|
TSTB 1000h,R0
|
|
BNZ NOT2ND
|
|
FILL 230,210,250,230,COL_RED
|
|
NOT2ND
|
|
|
|
LDI @_newbut,R0
|
|
TSTB 800h,R0
|
|
BNZ NOT3RD
|
|
FILL 305,180,325,200,COL_RED
|
|
NOT3RD
|
|
|
|
LDI @_newbut,R0
|
|
TSTB 400h,R0
|
|
BNZ NOT4TH
|
|
FILL 305,210,325,230,COL_RED
|
|
NOT4TH
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
DISPPOTS:
|
|
LDI @_pot0,R2
|
|
|
|
CMPI @_opot0,R2
|
|
BEQ NOPLOTpot0
|
|
STI R2,@_opot0
|
|
|
|
FILL 150,100,215,109,0
|
|
|
|
LDI @_pot0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 150,R2
|
|
LDI 100,R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
NOPLOTpot0
|
|
|
|
|
|
LDI @_pot1,R2
|
|
|
|
CMPI @_opot1,R2
|
|
BEQ NOPLOTpot1
|
|
STI R2,@_opot1
|
|
|
|
FILL 150,110,215,119,0
|
|
|
|
LDI @_pot1,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 150,R2
|
|
LDI 110,R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
NOPLOTpot1
|
|
|
|
|
|
LDI @_pot2,R2
|
|
|
|
CMPI @_opot2,R2
|
|
BEQ NOPLOTpot2
|
|
STI R2,@_opot2
|
|
|
|
FILL 150,120,215,129,0
|
|
|
|
LDPI @_pot2,R2
|
|
LDPI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI 150,R2
|
|
LDI 120,R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
NOPLOTpot2
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
romdata
|
|
SW1T .string "DIP SW2",0
|
|
SW2T .string "DIP SW3",0
|
|
.text
|
|
.bss SW1BANK,3
|
|
.bss SW2BANK,3
|
|
|
|
.bss LASTDIPPLOT,1
|
|
|
|
|
|
SHOW_DIPSWITCH:
|
|
CALL SETUP_DIAG_SCREEN
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "DIP SWITCH TEST",20,15
|
|
|
|
LDI -1,R0
|
|
STI R0,@LASTDIPPLOT
|
|
|
|
CALL TOEXIT
|
|
|
|
DIPLP
|
|
CALL DISPLAY_DIPSWITCH_STATUS
|
|
|
|
NOT @_newbut,R0
|
|
AND SW_DIAG,R0
|
|
RETSNZ
|
|
|
|
CALL WAIT_FOR_VBLANK ;wait for vblk
|
|
B DIPLP
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*PARAMETERS
|
|
* R5 X
|
|
* R6 Y
|
|
* R7 THE DIP
|
|
*
|
|
*vertical plotting of the dipswitches as 'on'|'off'
|
|
*
|
|
*
|
|
.bss DIPTMP,2
|
|
|
|
.data
|
|
ISON .word ONTEXT
|
|
ISOFF .word OFFTEXT
|
|
|
|
romdata
|
|
ONTEXT .string "ON",0
|
|
OFFTEXT .string "OFF",0
|
|
.text
|
|
*
|
|
SHOW_DIPSWITCH_STATUS:
|
|
LDI 7,AR5
|
|
LDI 1,R4 ;Index Number
|
|
SDS_LP
|
|
TSTB 80h,R7
|
|
LDIZ @ISON,AR2
|
|
LDINZ @ISOFF,AR2
|
|
PUSH R7
|
|
LDI R5,R2
|
|
ADDI 20,R2
|
|
LDI R6,R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
|
|
LDI R4,R2
|
|
LDL DIPTMP,AR2
|
|
CALL _itoa
|
|
LDI R5,R2
|
|
LDI R6,R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
POP R7
|
|
|
|
LS 1,R7
|
|
INC R4
|
|
ADDI 10,R6
|
|
DBU AR5,SDS_LP
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
*
|
|
*
|
|
DISPLAY_DIPSWITCH_STATUS:
|
|
LDI @DIPRAM,R0
|
|
CMPI @LASTDIPPLOT,R0
|
|
RETSEQ
|
|
STI R0,@LASTDIPPLOT
|
|
|
|
|
|
;BANK 1
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "DIP SW2 U97",30,40
|
|
GROUP 20,50,400,170
|
|
FILL 22,52,398,168,0
|
|
LDI 30,R5
|
|
LDI 60,R6
|
|
CLRI AR2
|
|
LDP @DIPSW
|
|
LDI @DIPSW,R7
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 16,R7
|
|
CALL SHOW_DIPSWITCH_STATUS
|
|
|
|
|
|
;BANK ONE (SW2) DECODED...
|
|
; .data
|
|
;TONI .word TON
|
|
;TOFFI .word TOFF
|
|
;TON .string "TEST ON",0
|
|
;TOFF .string "TEST OFF",0
|
|
; .text
|
|
;
|
|
; LDI 90,R2 ;DIAGNOSTICS
|
|
; LDI 60+(0*10),R3
|
|
; LDI @DIPRAM,R0
|
|
; TSTB DIP_DIAG,R0
|
|
; LDINZ @TOFFI,AR2
|
|
; LDIZ @TONI,AR2
|
|
; CALL _outtextxyc
|
|
|
|
|
|
LDI 90,R2 ;MOTION
|
|
LDI 60+(1*10),R3
|
|
LDI @DIPRAM,R0
|
|
TSTB DIP_MOTION,R0
|
|
LDINZ @DNMOTI,AR2
|
|
LDIZ @DMOTI,AR2
|
|
CALL _outtextxyc
|
|
|
|
.data
|
|
DNSUPI .word DNSUP
|
|
DSUPI .word DSUP
|
|
DNSUP .string "UPRIGHT",0
|
|
DSUP .string "SITDOWN",0
|
|
.text
|
|
|
|
|
|
LDI 90,R2
|
|
LDI 60+(2*10),R3
|
|
LDI @DIPRAM,R0
|
|
TSTB DIP_STANDUP,R0
|
|
LDINZ @DNSUPI,AR2
|
|
LDIZ @DSUPI,AR2
|
|
CALL _outtextxyc
|
|
|
|
|
|
|
|
; .data
|
|
;RF1I .word RF1
|
|
;RF2I .word RF2
|
|
;RF1 .string "FREEZE ON",0
|
|
;RF2 .string "FREEZE OFF",0
|
|
; .text
|
|
;
|
|
; LDI 90,R2
|
|
; LDI 60+(3*10),R3
|
|
; LDI @DIPRAM,R0
|
|
; TSTB DIP_FREEZE,R0
|
|
; LDIZ @RF1I,AR2
|
|
; LDINZ @RF2I,AR2
|
|
; CALL _outtextxyc
|
|
|
|
|
|
|
|
|
|
|
|
LDI 90,R2 ;COMMUNICATION
|
|
LDI 60+(5*10),R3
|
|
LDI @DIPRAM,R0
|
|
TSTB DIP_COMMP,R0
|
|
LDINZ @DNLINKDI,AR2
|
|
LDIZ @DLINKDI,AR2
|
|
CALL _outtextxyc
|
|
|
|
LDI 90,R2 ;COMMUNICATION
|
|
LDI 60+(7*10),R3
|
|
LDI @DIPRAM,R0
|
|
TSTB CMDP_MASTER,R0
|
|
LDIZ @DMOD1,AR2
|
|
LDINZ @DMOD2,AR2
|
|
CALL _outtextxyc
|
|
|
|
|
|
;BANK 2
|
|
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "DIP SW3",30,180
|
|
GROUP 20,190,400,310
|
|
FILL 22,192,398,308,0
|
|
LDI 30,R5
|
|
LDI 200,R6
|
|
CLRI AR2
|
|
LDP @DIPSW
|
|
LDI @DIPSW,R7
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 24,R7
|
|
CALL SHOW_DIPSWITCH_STATUS
|
|
|
|
|
|
;BANK TWO (SW3) DECODED...
|
|
|
|
LINE 85,200,85,200+(6*10)+9,COL_VDGREY
|
|
.ref GETCOIN_DEFAULT,GET_THIS_COINTXT
|
|
|
|
CALL GETCOIN_DEFAULT
|
|
PUSH R2
|
|
LDI R2,AR0
|
|
CALL GET_THIS_COINTXT
|
|
|
|
LDI AR0,AR4
|
|
|
|
LDI *AR4++,AR2
|
|
LDI 90,R2
|
|
LDI 200+(3*10),R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
|
|
LDI *AR4++,AR2
|
|
CMPI 0,AR2
|
|
BEQ DONE_MODE_MSG
|
|
LDI 90,R2
|
|
LDI 200+(4*10),R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
|
|
LDI *AR4++,AR2
|
|
CMPI 0,AR2
|
|
BEQ DONE_MODE_MSG
|
|
LDI 90,R2
|
|
LDI 200+(5*10),R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
|
|
DONE_MODE_MSG
|
|
|
|
POP AR2
|
|
.ref COINMSGC_TABI
|
|
ADDI @COINMSGC_TABI,AR2
|
|
LDI *AR2,AR2
|
|
|
|
LDI 90,R2
|
|
LDI 200+(2*10),R3
|
|
LDI COL_VDGREY,RC
|
|
CALL _outtextxyc
|
|
|
|
|
|
; PUSH AR2
|
|
; LDI R2,AR0
|
|
; CALL GET_THIS_COINTXT
|
|
; LDI AR0,AR2
|
|
; LDI 90,R2
|
|
; LDI 200+(3*10),R3
|
|
; LDI COL_VDGREY,RC
|
|
; CALL _outtextxyc
|
|
;
|
|
; POP AR2
|
|
; LDI *+AR2,AR2
|
|
; LDI 90,R2
|
|
; LDI 200+(2*10),R3
|
|
; LDI COL_VDGREY,RC
|
|
; CALL _outtextxyc
|
|
|
|
|
|
.data
|
|
COINCNTR1I .word COINCNTR1
|
|
COINCNTR2I .word COINCNTR2
|
|
|
|
COINCNTR1 .string "ONE COIN COUNTER",0
|
|
COINCNTR2 .string "TWO COIN COUNTERS",0
|
|
.text
|
|
|
|
LDI 90,R2 ;COMMUNICATION
|
|
LDI 200+(7*10),R3
|
|
LDI @DIPRAM,R0
|
|
TSTB DIP_COINCNTR,R0
|
|
LDINZ @COINCNTR1I,AR2
|
|
LDIZ @COINCNTR2I,AR2
|
|
CALL _outtextxyc
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
romdata
|
|
DMOT .string "MOTION ON",0
|
|
DNMOT .string "MOTION OFF",0
|
|
DLINKD .string "LINK ON",0
|
|
DNLINKD .string "LINK OFF",0
|
|
.text
|
|
DMOD1 SPTR "MASTER"
|
|
DMOD2 SPTR "SLAVE"
|
|
|
|
DMOTI .word DMOT
|
|
DNMOTI .word DNMOT
|
|
DLINKDI .word DLINKD
|
|
DNLINKDI .word DNLINKD
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
MENUENTRY .MACRO LABEL,ROUTINE
|
|
.sect "THEDATA"
|
|
l? .string ":LABEL:",0
|
|
.text
|
|
.word l?,:ROUTINE:
|
|
.ENDM
|
|
|
|
*----------------------------------------------------------------------------
|
|
MOMT SPTR "MOTION MENU"
|
|
RUN_MOTION_MENU:
|
|
LDL MOTION_MENU,AR5
|
|
LDI MOTION_MENU_LEN,AR6
|
|
LDI @MOMT,AR7
|
|
BU HANDLE_MENU
|
|
|
|
*----------------------------------------------------------------------------
|
|
AMT SPTR "ADJUSTMENT MENU"
|
|
RUN_ADJUSTMENT_MENU:
|
|
LDL ADJUSTMENT_MENU,AR5
|
|
LDI ADJUSTMENT_MENU_LEN,AR6
|
|
LDI @AMT,AR7
|
|
BU HANDLE_MENU
|
|
|
|
|
|
ADJTABI .word ADJTAB
|
|
.SECT "THEDATA"
|
|
ADJTAB
|
|
|
|
.word ADJ_COINMODE,PRINT_COINMODE
|
|
.word ADJ_STANDARD_PRICING,PRINT_CUSTOM_SELECTED
|
|
|
|
; .word 0,0
|
|
; .word 0,0
|
|
.word ADJ_FREE_PLAY,PRINT_ONOFF
|
|
.word ADJ_FREEGAME,PRINT_ONOFF
|
|
.word ADJ_TIME_TO_START,PRINT_TIME
|
|
.word ADJ_CHECKPOINT_BONUS,PRINT_NUMBER
|
|
.word ADJ_ATTRACT_MODE_SOUND,PRINT_ONOFF
|
|
.word ADJ_HIGH_SCORE_ENTRY,PRINT_ONOFF
|
|
.word ADJ_MIN_VOL_LEVEL,PRINT_VOL
|
|
.word ADJ_MPHORKPM,PRINT_MPH
|
|
.word ADJ_ROADKILL,PRINT_ONOFF
|
|
.word ADJ_CLINTON,PRINT_ONOFF
|
|
.word ADJ_GIRLS,PRINT_ONOFF
|
|
.word ADJ_HIGHSCORE_RESET,PRINT_NUMBER
|
|
.word ADJ_DIFFICULTY,PRINT_NUMBER
|
|
.word ADJ_MAX_CREDITS,PRINT_NUMBER
|
|
.word ADJ_STEERING_SENSITIVITY,PRINT_NUMBER
|
|
.word 0,0
|
|
.text
|
|
|
|
PRINT_ADJUSTMENT:
|
|
PUSH AR4
|
|
LDI @ADJTABI,AR4
|
|
CALL PRINT_VALUE
|
|
POP AR4
|
|
RETS
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
UMT SPTR "UTILITIES MENU"
|
|
RUN_UTILITIES_MENU:
|
|
LDL UTILITIES_MENU,AR5
|
|
LDI UTILITIES_MENU_LEN,AR6
|
|
LDI @UMT,AR7
|
|
BU HANDLE_MENU
|
|
|
|
*----------------------------------------------------------------------------
|
|
MMT SPTR "MAIN MENU"
|
|
DMT SPTR "DIAGNOSTIC MENU"
|
|
RUN_DIAG_MENU:
|
|
LDL DIAGNOSTIC_MENU,AR5
|
|
LDI DIAGNOSTIC_MENU_LEN,AR6
|
|
LDI @DMT,AR7
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*PARAMETERS
|
|
* AR5 POINTER TO MENU TABLE
|
|
* AR6 LENGTH OF MENU
|
|
* AR7 SPTR MENU NAME
|
|
*
|
|
|
|
.bss MENU_SCROLL,1 ;INTEGER
|
|
|
|
HANDLE_MENU:
|
|
|
|
LDI 0,R0
|
|
STI R0,@MENU_SCROLL
|
|
|
|
CLRI R6 ;MENU INDEX
|
|
|
|
HMER
|
|
PUSH R6
|
|
LDI @DIAGPAL+1,R0
|
|
STI R0,@BGNDCOLA
|
|
|
|
PUSH AR7
|
|
|
|
CALL SETUP_DIAG_SCREEN
|
|
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTIT title,30,20
|
|
TEXTIT inst1,20,260
|
|
TEXTIT inst2,20,270
|
|
|
|
LDI *-AR5,R2 ;Routine that prints the value
|
|
BEQ HMSTAND
|
|
LDI *-AR5(2),R2
|
|
BEQ HMSTAND
|
|
CALLU R2
|
|
BR HMNOTSTAND
|
|
HMSTAND
|
|
IWINDOW 20,45,280,250
|
|
HMNOTSTAND
|
|
LDI 30,R2
|
|
LDI 35,R3
|
|
LDI COL_VDGREY,RC
|
|
POP AR7
|
|
LDI AR7,AR2
|
|
CALL _outtextxyc
|
|
|
|
LDI 10000,R7 ;wait_mac counter
|
|
MPYI 55,R7
|
|
POP R6
|
|
|
|
|
|
HANMENL
|
|
LDI @MENU_SCROLL,R0
|
|
; CLRI R0
|
|
; LDI AR5,AR4
|
|
LDI 2,AR4 ;OFFSET AR4 to MENU_SCROLL
|
|
MPYI R0,AR4
|
|
ADDI AR5,AR4
|
|
|
|
LDI 50,R3 ;Y POSITION OF TEXT
|
|
|
|
|
|
PUSH AR7
|
|
|
|
LDI AR6,AR7
|
|
SUBI @MENU_SCROLL,AR7
|
|
CMPI 20,AR7
|
|
LDIGT 20,AR7
|
|
|
|
DEC AR7
|
|
HANMENL_PLOT
|
|
LDI COL_VDGREY,RC
|
|
CMPI R0,R6
|
|
LDIEQ COL_RED,RC
|
|
|
|
LDI *AR4++(2),AR2
|
|
LDI 30,R2
|
|
CALL _outtextxyc
|
|
|
|
LDI *-AR5,R5 ;Routine that prints the value
|
|
CALLNE R5
|
|
|
|
ADDI 10,R3
|
|
INC R0
|
|
DBU AR7,HANMENL_PLOT
|
|
POP AR7
|
|
|
|
|
|
|
|
LDI @_newbut,R0 ;old system method
|
|
LDI R0,R1
|
|
TSTB SW_COINSRV,R1
|
|
BNZ JAJA5
|
|
|
|
;this locks on the main menu.
|
|
;fix later
|
|
|
|
LDL MAIN_MENU,AR0
|
|
CMPI AR0,AR5
|
|
BEQ JAJA5
|
|
|
|
LDI 982,AR2
|
|
CALL SENDSND
|
|
PUSH AR5
|
|
PUSH AR6
|
|
PUSH AR7
|
|
PUSH R6
|
|
CALL XIT_MENU_TO_MAIN
|
|
;
|
|
; CALLZ ESCAPE_TO_MAIN
|
|
JAJA5
|
|
|
|
|
|
TSTB SW_DIAG,R1
|
|
BZ HM_EXECUTE
|
|
|
|
TSTB SW_VOLMINUS,R0 ;move up
|
|
BNZ HM_NOTUP
|
|
|
|
LDI 980,AR2
|
|
CALL SENDSND
|
|
|
|
ADDI 1,R6
|
|
CMPI AR6,R6
|
|
BLT HM_WT
|
|
|
|
LDI AR6,R6
|
|
DEC R6
|
|
B HM_WT
|
|
|
|
HM_NOTUP
|
|
TSTB SW_VOLPLUS,R0 ;move down
|
|
BNZ HM_NOTDOWN
|
|
|
|
LDI 981,AR2
|
|
CALL SENDSND
|
|
|
|
SUBI 1,R6
|
|
LDILT 0,R6
|
|
HM_WT
|
|
; WAIT_MAC
|
|
LDI R7,R1
|
|
wta
|
|
DEC R1
|
|
BLT wtta
|
|
|
|
LDI @_newbut,R0
|
|
AND SW_VOLPLUS|SW_VOLMINUS,R0
|
|
CMPI SW_VOLPLUS|SW_VOLMINUS,R0
|
|
BNE wta
|
|
|
|
LDI 10000,R7
|
|
MPYI 55,R7
|
|
BU J55
|
|
wtta
|
|
LDI 5000,R7
|
|
MPYI 55,R7
|
|
J55
|
|
|
|
|
|
HM_NOTDOWN
|
|
|
|
CMPI 0,R6
|
|
BEQ NO_SCROLL
|
|
LDI 0,R2
|
|
LDI @MENU_SCROLL,R0
|
|
LDI R0,R1
|
|
ADDI 20,R1
|
|
CMPI R0,R6
|
|
BLT GO_SCROLL
|
|
CMPI R1,AR6
|
|
BLE NO_SCROLL
|
|
GO_SCROLL
|
|
CMPI R0,R6
|
|
LDILT -10,R2
|
|
CMPI R1,R6
|
|
LDIGE 10,R2
|
|
ADDI R2,R0
|
|
LDIN 0,R0
|
|
STI R0,@MENU_SCROLL
|
|
CMPI 0,R2
|
|
BNE HMER ;REDRAW entir screen if scrolled
|
|
NO_SCROLL
|
|
|
|
B HANMENL
|
|
|
|
HM_EXECUTE
|
|
LDI 982,AR2
|
|
CALL SENDSND
|
|
|
|
LDI R6,AR0
|
|
MPYI 2,AR0
|
|
ADDI AR5,AR0
|
|
LDI *+AR0(1),R0
|
|
BZ HANMENL
|
|
PUSH AR5
|
|
PUSH AR6
|
|
PUSH AR7
|
|
PUSH R6
|
|
CALLU R0
|
|
POP R6
|
|
POP AR7
|
|
POP AR6
|
|
POP AR5
|
|
B HMER
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
;ESCAPE_TO_MAIN:
|
|
; LDI 982,AR2
|
|
; CALL SENDSND
|
|
; POP R0
|
|
; RETS
|
|
XIT_MENU_TO_MAIN:
|
|
LDI 0,R0
|
|
STI R0,@MENU_SCROLL
|
|
|
|
CALL LAMPSOFF
|
|
|
|
POP R0 ;return address
|
|
POP R6
|
|
POP AR7
|
|
POP AR6
|
|
POP AR5
|
|
RETS
|
|
; BR RETURN_TO_MAINMENU
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
SETUP_DIAG_SCREEN:
|
|
CALL CLRSCRN
|
|
CALL SETPAGE0
|
|
|
|
LDIL SCREEN0,R0
|
|
STI R0,@ACTIVE_SCREEN
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
SNDMAC .MACRO TTXT,SNDIDX
|
|
.data
|
|
l? .string ":TTXT:",0
|
|
.text
|
|
.word l?,:SNDIDX:
|
|
.ENDM
|
|
|
|
MUSIC_TAB
|
|
SNDMAC "REDLINE SHUFFLE",SHUFFLE_DRIV
|
|
SNDMAC "HOUSE SPECIAL",DISCODUCK
|
|
SNDMAC "DEADWOOD RIDE",SPAGETTI
|
|
.word -1
|
|
EFFECTS_TAB
|
|
SNDMAC "GIRL SPEECH",CHOOSEUCAR
|
|
SNDMAC "TRUCK HORN",TRUCKHORN_BLAST
|
|
SNDMAC "EXPLOSION 1",EXP1
|
|
SNDMAC "COLLISION",SCOLLF
|
|
SNDMAC "CAR PASS",CARPASS
|
|
.word -1
|
|
|
|
|
|
SOUND_BOARD_TEST:
|
|
CALL SETUP_DIAG_SCREEN
|
|
|
|
CLRI R5 ;TUNE INDEX
|
|
CLRI R6 ;SNDFX INDEX
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "SOUND BOARD TEST",50,20
|
|
TEXTITT "ENTER TO EXIT",20,100
|
|
TEXTITT "UP TO CHANGE MUSIC",20,110
|
|
TEXTITT "DOWN TO TRIGGER SOUND EFFECT",20,120
|
|
|
|
LDL MUSIC_TAB,AR5
|
|
LDL EFFECTS_TAB,AR6
|
|
|
|
LDI -1,R5
|
|
LDI -1,R6
|
|
|
|
SBT_UPDT
|
|
CMPI AR5,R5
|
|
BEQ NUPDT
|
|
|
|
LDI AR5,R5
|
|
FILL 20,200,200,220,0
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "TUNE",20,200
|
|
LDI *AR5,AR2
|
|
LDI 30,R2
|
|
LDI 210,R3
|
|
CALL _outtextxyc
|
|
|
|
LDI *+AR5,AR2
|
|
.globl HARDSND
|
|
CALL HARDSND
|
|
NUPDT
|
|
|
|
CMPI AR6,R6
|
|
BEQ NUPDE
|
|
|
|
LDI AR6,R6
|
|
FILL 20,250,200,270,0
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "SOUND EFFECT",20,250
|
|
LDI *AR6,AR2
|
|
LDI 30,R2
|
|
LDI 260,R3
|
|
CALL _outtextxyc
|
|
|
|
LDI *+AR6,AR2
|
|
.globl HARDSND
|
|
CALL HARDSND
|
|
NUPDE
|
|
|
|
SBT_LP
|
|
|
|
|
|
NOT @_newbut,R0
|
|
AND SW_DIAG,R0
|
|
BZ NOXIT
|
|
|
|
CALL SILENT
|
|
RETS
|
|
NOXIT
|
|
|
|
NOT @_newbut,R0
|
|
AND SW_VOLPLUS,R0
|
|
BZ NONEXTT
|
|
|
|
SBTLP2 CALL WAIT_FOR_VBLANK
|
|
NOT @_newbut,R0
|
|
AND SW_VOLPLUS,R0
|
|
BNZ SBTLP2
|
|
|
|
ADDI 2,AR5
|
|
LDI *AR5,R0
|
|
BNN SBT_UPDT
|
|
LDL MUSIC_TAB,AR5
|
|
BU SBT_UPDT
|
|
NONEXTT
|
|
|
|
|
|
NOT @_newbut,R0
|
|
AND SW_VOLMINUS,R0
|
|
BZ NONEXTE
|
|
|
|
SBTLP1 CALL WAIT_FOR_VBLANK
|
|
NOT @_newbut,R0
|
|
AND SW_VOLMINUS,R0
|
|
BNZ SBTLP1
|
|
|
|
|
|
ADDI 2,AR6
|
|
LDI *AR6,R0
|
|
BNN SBT_UPDT
|
|
LDL EFFECTS_TAB,AR6
|
|
BU SBT_UPDT
|
|
NONEXTE
|
|
|
|
|
|
LDI 7FFFh,R0
|
|
MPYI 10,R0
|
|
RPTS R0
|
|
NOP
|
|
CALL WAIT_FOR_VBLANK
|
|
BU SBT_LP
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
STEERING_WHEEL_TEST:
|
|
CALL SETUP_DIAG_SCREEN
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "STEERING WHEEL TEST",20,50
|
|
TEXTITT "MOVING WHEEL TO LEFT",20,100
|
|
|
|
CLRI R6
|
|
|
|
* R0 BYTE TO SEND TO WHEEL
|
|
|
|
LDI 127,AR5
|
|
SWTLP1
|
|
INC R6
|
|
CMPI 127,R6
|
|
LDIGT 127,R6
|
|
|
|
LDI R6,R0
|
|
OR 080h,R0
|
|
CALL TOWHEEL
|
|
CALL WAIT_FOR_VBLANK
|
|
DBU AR5,SWTLP1
|
|
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "HIT ENTER TO CONTINUE",20,120
|
|
CALL WT_NSTART
|
|
CALL WT_START
|
|
CALL BEEP
|
|
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "MOVING WHEEL TO RIGHT",20,140
|
|
|
|
CLRI R6
|
|
LDI 127,AR5
|
|
SWTLP3
|
|
INC R6
|
|
CMPI 127,R6
|
|
LDIGT 127,R6
|
|
|
|
LDI R6,R0
|
|
CALL TOWHEEL
|
|
CALL WAIT_FOR_VBLANK
|
|
DBU AR5,SWTLP3
|
|
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "HIT ENTER TO CONTINUE",20,160
|
|
CALL WT_NSTART
|
|
CALL WT_START
|
|
CALL BEEP
|
|
|
|
CLRI R0
|
|
CALL TOWHEEL
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
AMODES SPTR "ATTRACT MODE SOUNDS"
|
|
|
|
AMODESND:
|
|
READAUD ADJ_ATTRACT_MODE_SOUND
|
|
LDI R0,R5
|
|
|
|
LDI @AMODES,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL DUAL_ON_OFF
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_ATTRACT_MODE_SOUND
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
BURNIN_TEST:
|
|
CALL TEST_CHIPS
|
|
|
|
SOFTWTM R0 ;SET WAIT STATES
|
|
DINT
|
|
LDP @FASTSTKI
|
|
LDI @FASTSTKI,SP ;LOAD THE ADDRESS INTO SP
|
|
|
|
LDI AUD_SUCCESSFULL_BURNINS,AR2
|
|
CALL AUDIT_INC
|
|
|
|
;IGNORE GLITCH FIX
|
|
LDP @SWITCH1
|
|
LDI @SWITCH1,R0
|
|
SETDP
|
|
|
|
TSTB SW_DIAG,R0
|
|
BNZ BURNIN_TEST
|
|
|
|
BU ENTER_DIAG
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
.ref COUNTRY_TABI
|
|
; .ref COINMSG_TABI ;????
|
|
|
|
.ref MSGC_USA1,MSGC_USA2,MSGC_USA3,MSGC_USA4,MSGC_USA5
|
|
.ref MSGC_USA6,MSGC_USA7,MSGC_USA8,MSGC_USA9,MSGC_USA10,MSGC_USA11,MSGC_USA12
|
|
.ref MSGC_GERMAN1,MSGC_GERMAN2,MSGC_GERMAN3,MSGC_GERMAN4,MSGC_GERMAN5
|
|
.ref MSGC_GERMAN6,MSGC_GERMAN7,MSGC_GERMAN8
|
|
.ref MSGC_FRENCH1,MSGC_FRENCH2,MSGC_FRENCH3,MSGC_FRENCH4,MSGC_FRENCH5,MSGC_FRENCH6
|
|
.ref MSGC_FRENCH7,MSGC_FRENCH8,MSGC_FRENCH9,MSGC_FRENCH10,MSGC_FRENCH11
|
|
.ref MSGC_CANADA1,MSGC_CANADA2,MSGC_CANADA3
|
|
.ref MSGC_SWISS1,MSGC_SWISS2,MSGC_SWISS3
|
|
.ref MSGC_ITALY1,MSGC_ITALY2,MSGC_ITALY3
|
|
.ref MSGC_UK1,MSGC_UK2,MSGC_UK3
|
|
.ref MSGC_SPAIN1,MSGC_SPAIN2,MSGC_SPAIN3,MSGC_SPAIN4,MSGC_SPAIN5,MSGC_SPAIN6
|
|
.ref MSGC_AUSTRALIA1,MSGC_AUSTRALIA2,MSGC_AUSTRALIA3,MSGC_AUSTRALIA4
|
|
.ref MSGC_JAPAN1,MSGC_JAPAN2,MSGC_JAPAN3
|
|
.ref MSGC_TAIWAN1,MSGC_TAIWAN2,MSGC_TAIWAN3
|
|
.ref MSGC_AUSTRIA1,MSGC_AUSTRIA2,MSGC_AUSTRIA3,MSGC_AUSTRIA4
|
|
.ref MSGC_BELGIUM1,MSGC_BELGIUM2,MSGC_BELGIUM3
|
|
.ref MSGC_SWEDEN1,MSGC_FINLAND1,MSGC_NETHERLAND1,MSGC_NETHERLAND2,MSGC_NORWAY1,MSGC_DENMARK1
|
|
.ref MSGC_HUNGARY1
|
|
.ref MSGC_GENERAL1,MSGC_GENERAL2,MSGC_GENERAL3,MSGC_GENERAL4,MSGC_GENERAL5
|
|
.ref MSGC_GENERAL6,MSGC_GENERAL7,MSGC_GENERAL8
|
|
|
|
|
|
|
|
STANDARD_PRICING_MENU_LEN .set 16
|
|
.word 0
|
|
STANDARD_PRICING_MENU
|
|
|
|
MENUENTRY "USA",RUN_COUNTRY
|
|
MENUENTRY "GERMAN",RUN_COUNTRY
|
|
MENUENTRY "FRENCH",RUN_COUNTRY
|
|
MENUENTRY "CANADA",RUN_COUNTRY
|
|
MENUENTRY "SWISS",RUN_COUNTRY
|
|
MENUENTRY "ITALY",RUN_COUNTRY
|
|
MENUENTRY "UK",RUN_COUNTRY
|
|
MENUENTRY "SPAIN",RUN_COUNTRY
|
|
MENUENTRY "AUSTRALIA",RUN_COUNTRY
|
|
MENUENTRY "JAPAN",RUN_COUNTRY
|
|
MENUENTRY "TAIWAN",RUN_COUNTRY
|
|
MENUENTRY "AUSTRIA",RUN_COUNTRY
|
|
MENUENTRY "BELGIUM",RUN_COUNTRY
|
|
MENUENTRY "OTHER",RUN_COUNTRY
|
|
MENUENTRY "GENERAL",RUN_COUNTRY
|
|
MENUENTRY "EXIT TO MAIN",XIT_MENU_TO_MAIN
|
|
|
|
romdata
|
|
USA_MENU_LEN .set 13
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
USA_MENU
|
|
.word MSGC_USA1,PRICE_YES_NO
|
|
.word MSGC_USA2,PRICE_YES_NO
|
|
.word MSGC_USA3,PRICE_YES_NO
|
|
.word MSGC_USA4,PRICE_YES_NO
|
|
.word MSGC_USA5,PRICE_YES_NO
|
|
.word MSGC_USA6,PRICE_YES_NO
|
|
.word MSGC_USA7,PRICE_YES_NO
|
|
.word MSGC_USA8,PRICE_YES_NO
|
|
.word MSGC_USA9,PRICE_YES_NO
|
|
.word MSGC_USA10,PRICE_YES_NO
|
|
.word MSGC_USA11,PRICE_YES_NO
|
|
.word MSGC_USA12,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
GERMAN_MENU_LEN .set 9
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
GERMAN_MENU
|
|
.word MSGC_GERMAN1,PRICE_YES_NO
|
|
.word MSGC_GERMAN2,PRICE_YES_NO
|
|
.word MSGC_GERMAN3,PRICE_YES_NO
|
|
.word MSGC_GERMAN4,PRICE_YES_NO
|
|
.word MSGC_GERMAN5,PRICE_YES_NO
|
|
.word MSGC_GERMAN6,PRICE_YES_NO
|
|
.word MSGC_GERMAN7,PRICE_YES_NO
|
|
.word MSGC_GERMAN8,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
FRENCH_MENU_LEN .set 12
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
FRENCH_MENU
|
|
.word MSGC_FRENCH1,PRICE_YES_NO
|
|
.word MSGC_FRENCH2,PRICE_YES_NO
|
|
.word MSGC_FRENCH3,PRICE_YES_NO
|
|
.word MSGC_FRENCH4,PRICE_YES_NO
|
|
.word MSGC_FRENCH5,PRICE_YES_NO
|
|
.word MSGC_FRENCH6,PRICE_YES_NO
|
|
.word MSGC_FRENCH7,PRICE_YES_NO
|
|
.word MSGC_FRENCH8,PRICE_YES_NO
|
|
.word MSGC_FRENCH9,PRICE_YES_NO
|
|
.word MSGC_FRENCH10,PRICE_YES_NO
|
|
.word MSGC_FRENCH11,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
CANADA_MENU_LEN .set 4
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
CANADA_MENU
|
|
.word MSGC_CANADA1,PRICE_YES_NO
|
|
.word MSGC_CANADA2,PRICE_YES_NO
|
|
.word MSGC_CANADA3,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
SWISS_MENU_LEN .set 4
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
SWISS_MENU
|
|
.word MSGC_SWISS1,PRICE_YES_NO
|
|
.word MSGC_SWISS2,PRICE_YES_NO
|
|
.word MSGC_SWISS3,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
ITALY_MENU_LEN .set 4
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
ITALY_MENU
|
|
.word MSGC_ITALY1,PRICE_YES_NO
|
|
.word MSGC_ITALY2,PRICE_YES_NO
|
|
.word MSGC_ITALY3,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
UK_MENU_LEN .set 4
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
UK_MENU
|
|
.word MSGC_UK1,PRICE_YES_NO
|
|
.word MSGC_UK2,PRICE_YES_NO
|
|
.word MSGC_UK3,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
SPAIN_MENU_LEN .set 7
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
SPAIN_MENU
|
|
.word MSGC_SPAIN1,PRICE_YES_NO
|
|
.word MSGC_SPAIN2,PRICE_YES_NO
|
|
.word MSGC_SPAIN3,PRICE_YES_NO
|
|
.word MSGC_SPAIN4,PRICE_YES_NO
|
|
.word MSGC_SPAIN5,PRICE_YES_NO
|
|
.word MSGC_SPAIN6,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
AUSTRALIA_MENU_LEN .set 5
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
AUSTRALIA_MENU
|
|
.word MSGC_AUSTRALIA1,PRICE_YES_NO
|
|
.word MSGC_AUSTRALIA2,PRICE_YES_NO
|
|
.word MSGC_AUSTRALIA3,PRICE_YES_NO
|
|
.word MSGC_AUSTRALIA4,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
JAPAN_MENU_LEN .set 4
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
JAPAN_MENU
|
|
.word MSGC_JAPAN1,PRICE_YES_NO
|
|
.word MSGC_JAPAN2,PRICE_YES_NO
|
|
.word MSGC_JAPAN3,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
TAIWAN_MENU_LEN .set 4
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
TAIWAN_MENU
|
|
.word MSGC_TAIWAN1,PRICE_YES_NO
|
|
.word MSGC_TAIWAN2,PRICE_YES_NO
|
|
.word MSGC_TAIWAN3,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
AUSTRIA_MENU_LEN .set 5
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
AUSTRIA_MENU
|
|
.word MSGC_AUSTRIA1,PRICE_YES_NO
|
|
.word MSGC_AUSTRIA2,PRICE_YES_NO
|
|
.word MSGC_AUSTRIA3,PRICE_YES_NO
|
|
.word MSGC_AUSTRIA4,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
BELGIUM_MENU_LEN .set 4
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
BELGIUM_MENU
|
|
.word MSGC_BELGIUM1,PRICE_YES_NO
|
|
.word MSGC_BELGIUM2,PRICE_YES_NO
|
|
.word MSGC_BELGIUM3,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
|
|
OTHER_MENU_LEN .set 8
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
OTHER_MENU
|
|
.word MSGC_SWEDEN1,PRICE_YES_NO
|
|
.word MSGC_FINLAND1,PRICE_YES_NO
|
|
.word MSGC_NETHERLAND1,PRICE_YES_NO
|
|
.word MSGC_NETHERLAND2,PRICE_YES_NO
|
|
.word MSGC_NORWAY1,PRICE_YES_NO
|
|
.word MSGC_DENMARK1,PRICE_YES_NO
|
|
.word MSGC_HUNGARY1,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
GENERAL_MENU_LEN .set 9
|
|
.word MAKE_STANDARW
|
|
.word PRINT_STANDARD
|
|
GENERAL_MENU
|
|
.word MSGC_GENERAL1,PRICE_YES_NO
|
|
.word MSGC_GENERAL2,PRICE_YES_NO
|
|
.word MSGC_GENERAL3,PRICE_YES_NO
|
|
.word MSGC_GENERAL4,PRICE_YES_NO
|
|
.word MSGC_GENERAL5,PRICE_YES_NO
|
|
.word MSGC_GENERAL6,PRICE_YES_NO
|
|
.word MSGC_GENERAL7,PRICE_YES_NO
|
|
.word MSGC_GENERAL8,PRICE_YES_NO
|
|
.word ETMAIN,XIT_MENU_TO_MAIN
|
|
|
|
ETMAIN .string "EXIT TO MAIN",0
|
|
.text
|
|
COUNTRY_MENUTABI .word COUNTRY_MENUTAB
|
|
romdata
|
|
|
|
COUNTRY_MENUTAB
|
|
.word USA_MENU,USA_MENU_LEN
|
|
.word GERMAN_MENU,GERMAN_MENU_LEN
|
|
.word FRENCH_MENU,FRENCH_MENU_LEN
|
|
.word CANADA_MENU,CANADA_MENU_LEN
|
|
.word SWISS_MENU,SWISS_MENU_LEN
|
|
.word ITALY_MENU,ITALY_MENU_LEN
|
|
.word UK_MENU,UK_MENU_LEN
|
|
.word SPAIN_MENU,SPAIN_MENU_LEN
|
|
.word AUSTRALIA_MENU,AUSTRALIA_MENU_LEN
|
|
.word JAPAN_MENU,JAPAN_MENU_LEN
|
|
.word TAIWAN_MENU,TAIWAN_MENU_LEN
|
|
.word AUSTRIA_MENU,AUSTRIA_MENU_LEN
|
|
.word BELGIUM_MENU,BELGIUM_MENU_LEN
|
|
.word OTHER_MENU,OTHER_MENU_LEN
|
|
.word GENERAL_MENU,GENERAL_MENU_LEN
|
|
.text
|
|
.bss COUNTRY,1
|
|
|
|
RUN_COUNTRY
|
|
LDI -1,R0
|
|
STI R0,@PSLAST ;JUMP START PRINT STANDARD
|
|
|
|
LDI R6,AR5
|
|
ADDI @COUNTRY_TABI,AR5
|
|
LDI *AR5,R0
|
|
STI R0,@COUNTRY
|
|
LDI R6,R0
|
|
MPYI 2,R0
|
|
LDI @COUNTRY_MENUTABI,AR5
|
|
ADDI R0,AR5
|
|
LDI *+AR5,AR6 ;MENU LENGTH
|
|
LDI *AR5,AR5 ;MENU DATA
|
|
LDI @SPM,AR7
|
|
BU HANDLE_MENU
|
|
|
|
.text
|
|
|
|
*----------------------------------------------------------------------------
|
|
|
|
MAKE_STANDARW:
|
|
IWINDOW 20,45,250,250
|
|
IWINDOW 262,45,500,250
|
|
RETS
|
|
|
|
PSSTARTY .set 100
|
|
.bss PSLAST,1
|
|
PRINT_STANDARD:
|
|
CMPI R0,R6
|
|
RETSNE
|
|
CMPI @PSLAST,R0
|
|
RETSEQ
|
|
STI R0,@PSLAST
|
|
|
|
CALL PUSHALL
|
|
|
|
PUSH RC
|
|
FILL 270,PSSTARTY+120,498,PSSTARTY+129,0
|
|
FILL 490-24,PSSTARTY,498,PSSTARTY+149,0
|
|
FILL 270,PSSTARTY-40,498,PSSTARTY-10,0
|
|
CMPI 0,AR7
|
|
BLE PS_SKIPMENU
|
|
|
|
LDI COL_RED,RC
|
|
|
|
LDI R0,AR4
|
|
ADDI @COUNTRY,AR4
|
|
MPYI COIN_ENTRY_SIZE,AR4
|
|
ADDI @COIN_TABLEI,AR4
|
|
ADDI 3,AR4
|
|
|
|
LDI *AR4++,AR2
|
|
LDI 270,R2
|
|
LDI PSSTARTY-40,R3
|
|
CALL _outtextxyc
|
|
|
|
LDI *AR4++,AR2
|
|
CMPI 0,AR2
|
|
BEQ DONE_MSG
|
|
LDI 270,R2
|
|
LDI PSSTARTY-30,R3
|
|
CALL _outtextxyc
|
|
|
|
LDI *AR4++,AR2
|
|
CMPI 0,AR2
|
|
BEQ DONE_MSG
|
|
LDI 270,R2
|
|
LDI PSSTARTY-20,R3
|
|
CALL _outtextxyc
|
|
DONE_MSG
|
|
LDI DEFAULT_COLOR,RC
|
|
TEXTITT "DETAILED PRICING INFORMATION",270,PSSTARTY-50
|
|
TEXTITT "LEFT CHUTE UNITS",270,PSSTARTY+0
|
|
TEXTITT "RIGHT CHUTE UNITS",270,PSSTARTY+10
|
|
TEXTITT "CENTER CHUTE UNITS",270,PSSTARTY+20
|
|
TEXTITT "FOURTH CHUTE UNITS",270,PSSTARTY+30
|
|
TEXTITT "UNITS PER CREDIT",270,PSSTARTY+40
|
|
TEXTITT "UNITS FOR BONUS",270,PSSTARTY+50
|
|
TEXTITT "MINIMUM UNITS",270,PSSTARTY+60
|
|
TEXTITT "CREDITS TO START",270,PSSTARTY+70
|
|
TEXTITT "CREDITS TO CONTINUE",270,PSSTARTY+80
|
|
TEXTITT "LEFT CENTER RIGHT FOURTH",270,PSSTARTY+100
|
|
TEXTITT "PRICING SELECTED",270,PSSTARTY+140
|
|
PS_SKIPMENU
|
|
POP RC
|
|
CMPI 0,AR7
|
|
BLE PSLPX
|
|
|
|
LDI R0,AR4
|
|
ADDI @COUNTRY,AR4
|
|
MPYI COIN_ENTRY_SIZE,AR4
|
|
ADDI @COIN_TABLEI,AR4
|
|
LDI *AR4++,R4
|
|
LDI 490,R2 ;X POS
|
|
LDI PSSTARTY,R3 ;Y POS START OF TEXT
|
|
|
|
; PUSH AR2
|
|
;First print the SLOT units
|
|
PSLP
|
|
LDI R4,R0
|
|
AND 0FFh,R0
|
|
PUSH R2
|
|
PUSH RC
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
POP RC
|
|
POP R2
|
|
PUSH R2 ;PRESERVE R2 for LATER USE
|
|
LDI 0,R1
|
|
CMPI 10,R0
|
|
LDIGE -8,R1 ;Right justify
|
|
CMPI 100,R0
|
|
LDIGE -16,R1 ;Right justify
|
|
ADDI R1,R2
|
|
CALL _outtextxyc
|
|
POP R2
|
|
LSH -8,R4
|
|
ADDI 10,R3
|
|
CMPI PSSTARTY+40,R3
|
|
BLT PSLP
|
|
|
|
CMPI PSSTARTY+80,R3
|
|
BEQ PSLP1
|
|
|
|
CMPI PSSTARTY+40,R3
|
|
BGT PSLP1_CHECK
|
|
PSLP1
|
|
; POP AR2
|
|
LDI *AR4++,R4
|
|
; PUSH AR2
|
|
PSLP1_CHECK
|
|
CMPI PSSTARTY+90,R3
|
|
BLT PSLP
|
|
|
|
; POP AR4
|
|
|
|
ADDI 3,AR4
|
|
;Print LEFT slot denomination
|
|
LDI *AR4++,AR2
|
|
LDI PSSTARTY+120,R3
|
|
LDI 270,R2
|
|
CALL _outtextxyc
|
|
|
|
;Print RIGHT slot denomination
|
|
LDI *AR4++,AR2
|
|
LDI 270+112,R2
|
|
CALL _outtextxyc
|
|
|
|
;Print CENTER slot denomination
|
|
LDI *AR4++,AR2
|
|
LDI 270+56,R2
|
|
CALL _outtextxyc
|
|
|
|
;Print FOURTH slot denomination
|
|
LDI *AR4++,AR2
|
|
LDI 270+176,R2
|
|
CALL _outtextxyc
|
|
|
|
|
|
LDI R6,R1
|
|
ADDI @COUNTRY,R1
|
|
READADJ ADJ_COINMODE
|
|
CMPI R0,R1
|
|
LDIEQ 1,R0
|
|
LDINE 0,R0
|
|
LDI PSSTARTY+140,R3
|
|
CALL PRINT_SPYN
|
|
|
|
PSLPX
|
|
CALL POPALL
|
|
RETS
|
|
|
|
|
|
PRINT_SPYN:
|
|
LDI @YES,AR2
|
|
LDI 474,R2
|
|
CMPI 0,R0
|
|
LDIEQ @NO,AR2
|
|
LDIEQ 482,R2
|
|
CALL _outtextxyc
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
CUSTOM_PRICING_MENU_LEN .set 16
|
|
.word 0
|
|
.word PRINT_SLOT
|
|
CUSTOM_PRICING_MENU
|
|
MENUENTRY "LEFT CHUTE UNITS",SET_SLOT
|
|
MENUENTRY "RIGHT CHUTE UNITS",SET_SLOT
|
|
MENUENTRY "CENTER CHUTE UNITS",SET_SLOT
|
|
MENUENTRY "FOURTH CHUTE UNITS",SET_SLOT
|
|
MENUENTRY "UNITS PER CREDIT",SET_SLOT
|
|
MENUENTRY "UNITS FOR BONUS",SET_SLOT
|
|
MENUENTRY "MINIMUM UNITS",SET_SLOT
|
|
MENUENTRY "CREDITS TO START",SET_SLOT
|
|
MENUENTRY "CREDITS TO CONTINUE",SET_SLOT
|
|
|
|
MENUENTRY "LEFT CHUTE COUNTER",SET_SLOT
|
|
MENUENTRY "RIGHT CHUTE COUNTER",SET_SLOT
|
|
MENUENTRY "CENTER CHUTE COUNTER",SET_SLOT
|
|
MENUENTRY "FOURTH CHUTE COUNTER",SET_SLOT
|
|
|
|
MENUENTRY "SHOW FRACTION",FRACTION_YES_NO
|
|
MENUENTRY "SELECT CUSTOM PRICING",CUSTOM_YES_NO
|
|
MENUENTRY "EXIT TO MAIN MENU",XIT_MENU_TO_MAIN
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*USER INITIALIZE CONTROL VALUES
|
|
*
|
|
*
|
|
romdata
|
|
sct .string "CALIBRATE CONTROLS",0
|
|
.text
|
|
|
|
SET_CONTROLS:
|
|
CALL SETUP_DIAG_SCREEN
|
|
|
|
LDI DEFAULT_COLOR,RC
|
|
TEXTIT sct,150,10
|
|
TEXTITT "TAKE HANDS AND FEET OFF CONTROLS, AND SET STEERING",50,40
|
|
TEXTITT "WHEEL TO CENTER THEN HIT ENTER",50,50
|
|
CALL WT_NSTART
|
|
CALL WT_START
|
|
CALL BEEP
|
|
|
|
;get gas pedal min
|
|
LDI @_pot1,R2
|
|
SETADJ ADJ_GASMIN
|
|
|
|
LDI @_pot2,R2
|
|
SETADJ ADJ_BRAKEMIN
|
|
|
|
;get wheel center
|
|
LDI @_pot0,R2
|
|
SETADJ ADJ_STEERCENTER
|
|
|
|
|
|
|
|
CALL CLRSCRN
|
|
;turn wheel to left and hit sw1
|
|
LDI DEFAULT_COLOR,RC
|
|
TEXTIT sct,150,10
|
|
TEXTITT "TURN WHEEL ALL THE WAY TO THE LEFT AND HIT ENTER",50,40
|
|
CALL WT_NSTART
|
|
CALL WT_START
|
|
CALL BEEP
|
|
|
|
|
|
LDI @_pot0,R2
|
|
SETADJ ADJ_STEERMIN
|
|
|
|
CALL CLRSCRN
|
|
LDI DEFAULT_COLOR,RC
|
|
TEXTIT sct,150,10
|
|
TEXTITT "TURN WHEEL ALL THE WAY TO THE RIGHT AND HIT ENTER",50,40 ;turn wheel to right
|
|
CALL WT_NSTART
|
|
CALL WT_START
|
|
CALL BEEP
|
|
|
|
LDI @_pot0,R2
|
|
SETADJ ADJ_STEERMAX
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CALL CLRSCRN
|
|
LDI DEFAULT_COLOR,RC
|
|
TEXTIT sct,150,10
|
|
;"push gas pedal all the way and hit sw1"
|
|
TEXTITT "PUSH GAS PEDAL TO MAX AND HIT ENTER",50,40
|
|
CALL WT_NSTART
|
|
CALL WT_START
|
|
CALL BEEP
|
|
|
|
|
|
LDI @_pot1,R2
|
|
SETADJ ADJ_GASMAX
|
|
|
|
|
|
LDI @DIPRAM,R0
|
|
TSTB DIP_STANDUP,R0
|
|
BNZ DADA5
|
|
|
|
CALL CLRSCRN
|
|
LDI DEFAULT_COLOR,RC
|
|
TEXTIT sct,150,10
|
|
TEXTITT "PUSH BRAKE PEDAL TO MAX AND HIT ENTER",50,40
|
|
CALL WT_NSTART
|
|
CALL WT_START
|
|
CALL BEEP
|
|
LDI @_pot2,R2
|
|
SETADJ ADJ_BRAKEMAX
|
|
|
|
CALL WT_NSTART
|
|
DADA5
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*SET_VOLUME SYSTEM ADJUSTMENT
|
|
*
|
|
*
|
|
*START RETURN
|
|
*VIEW1 VOLUME UP
|
|
*VIEW2 VOLUME DOWN
|
|
*
|
|
*
|
|
SET_VOLUME:
|
|
CALL SETUP_DIAG_SCREEN
|
|
|
|
GROUP 90,60,410,240
|
|
IWINDOW 120,72,240,90
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "ADJUST VOLUME",125,76
|
|
|
|
|
|
IWINDOW 119,149,379,181
|
|
FILL 120,150,378,180,COL_BLACK
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "MIN",118,135
|
|
TEXTITT "MAX",360,135
|
|
|
|
TEXTITT "ENTER EXIT",130,200
|
|
TEXTITT "UP INCREASE VOLUME",130,210
|
|
TEXTITT "DOWN DECREASE VOLUME",130,220
|
|
|
|
|
|
READADJ ADJ_VOLUME
|
|
LDI R0,R4
|
|
|
|
READAUD ADJ_MIN_VOL_LEVEL
|
|
CMPI R0,R4
|
|
LDILT R0,R4
|
|
|
|
CALL SHOW_VOLUME
|
|
|
|
SOND1 MUNSTER_SURF
|
|
SOND1 ENGINESTART
|
|
|
|
|
|
SETVOL_LP
|
|
LDI 700,AR2
|
|
CALL RANDU0
|
|
LDI R0,R0
|
|
BNZ SETNN
|
|
|
|
LDI 6,AR2
|
|
CALL RANDU0
|
|
|
|
LDPI @INCIDENTI,AR2
|
|
ADDI R0,AR2
|
|
LDI *AR2,AR2
|
|
CALL ONESND
|
|
|
|
.data
|
|
INCIDENTI .word INCIDENT
|
|
INCIDENT .word CARPASS,TRUCKPASS
|
|
.word SCOLLA,TKEY
|
|
.word BOTTOMOUT,VIEW2IN
|
|
.text
|
|
SETNN
|
|
|
|
|
|
|
|
LDI @_newbut,R0
|
|
LDI R0,R1
|
|
TSTB SW_DIAG,R1 ;move up
|
|
BNZ NOTRET
|
|
|
|
SOND1 KILLALLS
|
|
RETS
|
|
NOTRET
|
|
|
|
|
|
TSTB SW_VOLPLUS,R0 ;move up
|
|
BNZ NOTUPA
|
|
|
|
ADDI 1,R4
|
|
CMPI 255,R4
|
|
LDIGT 255,R4
|
|
|
|
|
|
|
|
PUSH R0
|
|
READAUD ADJ_MIN_VOL_LEVEL
|
|
CMPI R0,R4
|
|
LDILT R0,R4
|
|
POP R0
|
|
|
|
|
|
LDI R4,R1
|
|
CALL SET_MASTER_VOL
|
|
|
|
LDI R4,R2
|
|
SETADJ ADJ_VOLUME
|
|
|
|
CALL SHOW_VOLUME
|
|
B WTA
|
|
|
|
NOTUPA
|
|
TSTB SW_VOLMINUS,R0 ;move down
|
|
BNZ NOTDOWNA
|
|
|
|
SUBI 1,R4
|
|
LDILT 1,R4
|
|
|
|
|
|
|
|
PUSH R0
|
|
READAUD ADJ_MIN_VOL_LEVEL
|
|
CMPI R0,R4
|
|
LDILT R0,R4
|
|
POP R0
|
|
|
|
|
|
LDI R4,R1
|
|
CALL SET_MASTER_VOL
|
|
|
|
LDI R4,R2
|
|
SETADJ ADJ_VOLUME
|
|
|
|
CALL SHOW_VOLUME
|
|
WTA
|
|
NOTDOWNA
|
|
B SETVOL_LP
|
|
|
|
SHOW_VOLUME
|
|
LDI 120,AR2
|
|
LDI AR2,R3
|
|
ADDI R4,R3
|
|
LDI 150,R2
|
|
LDI 180,RC
|
|
LDI COL_GREEN,RS
|
|
CALL _fill
|
|
|
|
LDI 120,AR2
|
|
ADDI R4,AR2
|
|
LDI 355,R3
|
|
LDI 150,R2
|
|
LDI 180,RC
|
|
LDI COL_BLACK,RS
|
|
CALL _fill
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
FULL_FACTORY_RESTORE:
|
|
.data
|
|
FFR .string "FULL FACTORY RESTORE",0
|
|
.text
|
|
LDL FFR,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL CLEAR_YES_NO
|
|
RETSC
|
|
SETDP
|
|
.GLOBL FFRSUB,SET_CONTROLS,DIAGPAL
|
|
FFRSUB
|
|
CALL RESET_BOOKKEEPING
|
|
CALL INIT_HSTD_TABLES
|
|
CALL RESET_ADJUSTMENTS
|
|
|
|
CLRI R2
|
|
SETAUD AUD_PCREDITS
|
|
SETAUD AUD_CREDITS
|
|
|
|
LDI @FFRST,AR2
|
|
CALL MESSAGE_BOX
|
|
|
|
CALL SET_CONTROLS
|
|
|
|
RETS
|
|
FFRST SPTR "FULL FACTORY RESTORE"
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
DEFAULT_ADJUSTMENTS:
|
|
.data
|
|
RDA .string "RESET DEFAULT ADJUSTMENTS",0
|
|
.text
|
|
LDL RDA,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL CLEAR_YES_NO
|
|
RETSC
|
|
SETDP
|
|
|
|
CALL RESET_ADJUSTMENTS
|
|
|
|
LDI @DAS,AR2
|
|
CALL MESSAGE_BOX
|
|
|
|
CALL SET_CONTROLS
|
|
|
|
RETS
|
|
DAS SPTR "DEFAULT ADJUSTMENTS SET"
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
RESET_HIGH_SCORES:
|
|
.data
|
|
RHS .string "RESET HIGH SCORES",0
|
|
.text
|
|
LDL RHS,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL CLEAR_YES_NO
|
|
RETSC
|
|
SETDP
|
|
CALL INIT_HSTD_TABLES
|
|
|
|
LDI @HSRS,AR2
|
|
CALL MESSAGE_BOX
|
|
|
|
RETS
|
|
HSRS SPTR "HIGH SCORES RESET"
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
CLEAR_GAME_AUDITS:
|
|
.data
|
|
CGA .string "CLEAR GAME AUDITS",0
|
|
.text
|
|
LDL CGA,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL CLEAR_YES_NO
|
|
RETSC
|
|
SETDP
|
|
CALL RESET_BOOKKEEPING
|
|
|
|
LDI @BOOKR,AR2
|
|
CALL MESSAGE_BOX
|
|
|
|
RETS
|
|
BOOKR SPTR "BOOKKEEPING RESET"
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
FREEPLAYT SPTR "FREE PLAY"
|
|
FREEPLAYONOFF:
|
|
READAUD ADJ_FREE_PLAY
|
|
LDI R0,R5
|
|
|
|
LDI @FREEPLAYT,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL DUAL_ON_OFF
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_FREE_PLAY
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
FGOO1 SPTR "GIVE FREE GAME"
|
|
FGOO2 SPTR "ON 1ST POSITION"
|
|
FREEGAMEONOFF:
|
|
|
|
READAUD ADJ_FREEGAME
|
|
LDI R0,R5
|
|
|
|
LDI @FGOO1,AR2
|
|
LDI @FGOO2,AR3
|
|
CALL DUAL_ON_OFF
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_FREEGAME
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
APHSTD SPTR "ALLOW PLAYER TO"
|
|
APHSTD2 SPTR "ENTER INITIALS"
|
|
HIGHSCORE_ENTRY:
|
|
|
|
READAUD ADJ_HIGH_SCORE_ENTRY
|
|
LDI R0,R5
|
|
|
|
LDI @APHSTD,AR2
|
|
LDI @APHSTD2,AR3
|
|
CALL DUAL_ON_OFF
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_HIGH_SCORE_ENTRY
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
GI1 SPTR "SHOW GIRLS"
|
|
GIRLS_ONOFF:
|
|
READAUD ADJ_GIRLS
|
|
LDI R0,R5
|
|
|
|
LDI @GI1,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL DUAL_ON_OFF
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_GIRLS
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
CL1 SPTR "SHOW PRESIDENT"
|
|
CLINTON_ONOFF:
|
|
READAUD ADJ_CLINTON
|
|
LDI R0,R5
|
|
|
|
LDI @CL1,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL DUAL_ON_OFF
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_CLINTON
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
*----------------------------------------------------------------------------
|
|
RK1 SPTR "SHOW ROADKILL"
|
|
ROADKILL_ONOFF:
|
|
READAUD ADJ_ROADKILL
|
|
LDI R0,R5
|
|
|
|
LDI @RK1,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL DUAL_ON_OFF
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_ROADKILL
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
* 0 = MPH (default)
|
|
* 1 = KPH
|
|
*
|
|
MP1 SPTR "SPEED IN MPH OR KPH"
|
|
MP2 SPTR "KPH"
|
|
MP3 SPTR "MPH"
|
|
MILES_OR_KILO:
|
|
READAUD ADJ_MPHORKPM
|
|
LDI R0,R5
|
|
|
|
LDI @MP1,AR2
|
|
LDI @NULLSTR,AR3
|
|
LDI @MP2,AR4
|
|
LDI @MP3,AR5
|
|
CALL DUAL_VALUE
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_MPHORKPM
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
CLR_CRED SPTR "CLEAR CREDITS"
|
|
YES SPTR "YES"
|
|
NO SPTR "NO"
|
|
ONS SPTR "ON"
|
|
OFFS SPTR "OFF"
|
|
NULLSTR SPTR ""
|
|
AREUSURE SPTR "ARE YOU SURE?"
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
CLEAR_CREDITS:
|
|
LDI @CLR_CRED,AR2
|
|
LDI @AREUSURE,AR3
|
|
CALL CLEAR_YES_NO
|
|
RETSC
|
|
|
|
SETDP
|
|
CLRI R2
|
|
SETAUD AUD_PCREDITS
|
|
SETAUD AUD_CREDITS
|
|
|
|
LDI @CCD2A,AR2
|
|
CALL MESSAGE_BOX
|
|
|
|
RETS
|
|
CCD2A SPTR "CREDITS CLEARED"
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MESSAGE_BOX:
|
|
PUSH AR2
|
|
WINDOW 110,115,370,285
|
|
IWINDOW 120,125,360,275
|
|
|
|
LDI COL_VDGREY,RC
|
|
POP AR2
|
|
LDI 130,R2
|
|
LDI 170,R3
|
|
CALL _outtextxyc
|
|
LDI 30,AR6
|
|
ABLP CALL WAIT_FOR_VBLANK
|
|
DBU AR6,ABLP
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*DUAL VALUE
|
|
*
|
|
*
|
|
*PARAMETERS
|
|
* AR2 TEXT STRING 1
|
|
* AR3 TEXT STRING 2
|
|
* AR4 RESPONSE 1
|
|
* AR5 RESPONSE 2
|
|
* R5 VALUE {0,1}
|
|
*
|
|
*RETURNS
|
|
* C ON YES (RESPONSE 1)
|
|
* NC ON NO (RESPONSE 2)
|
|
*
|
|
CLEAR_YES_NO:
|
|
LDI 0,R5
|
|
ASK_YES_NO:
|
|
LDI @YES,AR4
|
|
LDI @NO,AR5
|
|
BU DUAL_VALUE
|
|
|
|
* R5 DEFAULT
|
|
DUAL_ON_OFF:
|
|
LDI @ONS,AR4
|
|
LDI @OFFS,AR5
|
|
BU DUAL_VALUE
|
|
|
|
DUAL_VALUE:
|
|
AND 1,R5 ;KEEP IT WITHIN RANGE
|
|
PUSH AR4
|
|
PUSH AR5
|
|
|
|
PUSH AR3
|
|
PUSH AR2
|
|
WAIT_MAC_NOREPEAT
|
|
|
|
WINDOW 110,115,370,285
|
|
IWINDOW 120,125,360,275
|
|
LDI COL_VDGREY,RC
|
|
|
|
POP AR2
|
|
LDI 130,R2
|
|
LDI 140,R3
|
|
CALL _outtextxyc
|
|
|
|
POP AR2
|
|
LDI 130,R2
|
|
LDI 150,R3
|
|
CALL _outtextxyc
|
|
|
|
TEXTITT "UP TO CHANGE",130,235
|
|
TEXTITT "ENTER TO ACCEPT",130,245
|
|
CALL WAIT_FOR_VBLANK
|
|
CALL WAIT_FOR_VBLANK
|
|
|
|
|
|
POP AR7
|
|
POP AR6
|
|
CYNLOOP
|
|
|
|
LDI COL_VDGREY,RC
|
|
CMPI 1,R5
|
|
LDIEQ COL_RED,RC
|
|
LDI AR6,AR2
|
|
LDI 170,R2
|
|
LDI 200,R3
|
|
CALL _outtextxyc
|
|
|
|
|
|
LDI COL_VDGREY,RC
|
|
CMPI 0,R5
|
|
LDIEQ COL_RED,RC
|
|
LDI AR7,AR2
|
|
LDI 220,R2
|
|
LDI 200,R3
|
|
CALL _outtextxyc
|
|
|
|
LDI @_newbut,R0 ;old system method
|
|
TSTB SW_DIAG,R0
|
|
BZ DOEXIT
|
|
|
|
TSTB SW_VOLPLUS,R0 ;move down
|
|
BZ CHNG
|
|
TSTB SW_VOLMINUS,R0 ;move up
|
|
BZ NCHNG
|
|
BU NCHNG
|
|
CHNG
|
|
XOR 1,R5
|
|
SOND1 WPC_MISC2
|
|
NCHNG
|
|
WAIT_MAC_NOREPEAT
|
|
B CYNLOOP
|
|
|
|
|
|
DOEXIT
|
|
CMPI 0,R5
|
|
BEQ CYN_YES
|
|
CYN_NO
|
|
CLRC
|
|
RETS
|
|
|
|
CYN_YES
|
|
SETC
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
SSGD SPTR "STEERING SENSITIVITY"
|
|
SSGD2 SPTR "0 (ADOLT) TO 5 (GAMEPLAYER)"
|
|
SET_STEERING_SENSITIVITY:
|
|
|
|
READAUD ADJ_STEERING_SENSITIVITY
|
|
LDI R0,R5
|
|
|
|
LDI @SSGD,AR2
|
|
LDI @SSGD2,AR3
|
|
LDI 0,R6
|
|
LDI 5,R7
|
|
|
|
LDI @GAMEDIFF_CVTI,AR4
|
|
LDI 1,R4
|
|
CALL MULTI_VALUE_STEP
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_STEERING_SENSITIVITY
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
HSGD SPTR "PLAYS TO HIGHSCORE"
|
|
HSGD2 SPTR "RESET 1000 TO 25000"
|
|
SET_HIGHSCORE_RESET:
|
|
|
|
READAUD ADJ_HIGHSCORE_RESET
|
|
LDI R0,R5
|
|
|
|
LDI @HSGD,AR2
|
|
LDI @HSGD2,AR3
|
|
LDI 1000,R6
|
|
LDI 25000,R7
|
|
|
|
LDI @GAMEDIFF_CVTI,AR4
|
|
LDI 1000,R4
|
|
CALL MULTI_VALUE_STEP
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_HIGHSCORE_RESET
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
;*----------------------------------------------------------------------------
|
|
;FSGD SPTR "FIRST PLACE PERCENT"
|
|
;FSGD2 SPTR "10 TO 40"
|
|
;SET_FIRST_PLACE_PERCENT:
|
|
;
|
|
; READAUD ADJ_FIRST_PLACE_PERCENT
|
|
; LDI R0,R5
|
|
;
|
|
; LDI @FSGD,AR2
|
|
; LDI @FSGD2,AR3
|
|
; LDI 10,R6
|
|
; LDI 40,R7
|
|
;
|
|
; LDI @GAMEDIFF_CVTI,AR4
|
|
; CALL MULTI_VALUE
|
|
;
|
|
; LDI R5,R2
|
|
; SETADJ ADJ_FIRST_PLACE_PERCENT
|
|
; RETS
|
|
;*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
*
|
|
SGD SPTR "GAME DIFFICULTY"
|
|
SGD2 SPTR "0 (EASY) TO 9 (HARD)"
|
|
SET_GAME_DIFFICULTY:
|
|
|
|
READAUD ADJ_DIFFICULTY
|
|
LDI R0,R5
|
|
|
|
LDI @SGD,AR2
|
|
LDI @SGD2,AR3
|
|
CLRI R6
|
|
LDI 9,R7
|
|
|
|
LDI @GAMEDIFF_CVTI,AR4
|
|
LDI 1,R4
|
|
CALL MULTI_VALUE_STEP
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_DIFFICULTY
|
|
RETS
|
|
GAMEDIFF_CVTI .word GAMEDIFF_CVT
|
|
*
|
|
*
|
|
GAMEDIFF_CVT:
|
|
PUSH R2
|
|
LDI R5,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI @bufferI,AR2
|
|
POP R2
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
*
|
|
ITD SPTR "INITIAL TIME"
|
|
ITD2 SPTR "60-90 SECONDS"
|
|
SET_TIME_TO_START:
|
|
|
|
READAUD ADJ_TIME_TO_START
|
|
LDI R0,R5
|
|
|
|
LDI @ITD,AR2
|
|
LDI @ITD2,AR3
|
|
CLRI R6
|
|
LDI 6,R7
|
|
|
|
LDI @TIME_CVTI,AR4
|
|
CALL MULTI_VALUE
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_TIME_TO_START
|
|
RETS
|
|
TIME_CVTI .word TIME_CVT
|
|
*
|
|
*
|
|
TIME_CVT:
|
|
PUSH R2
|
|
LDI R5,R2
|
|
MPYI 5,R2
|
|
ADDI 60,R2
|
|
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI @bufferI,AR2
|
|
POP R2
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
CPBTT SPTR "CHECKPOINT TIME BONUS"
|
|
CPBTT2 SPTR "10-25 SECONDS"
|
|
SET_CHECKPOINT_BONUS:
|
|
READAUD ADJ_CHECKPOINT_BONUS
|
|
LDI R0,R5
|
|
|
|
LDI @CPBTT,AR2
|
|
LDI @CPBTT2,AR3
|
|
LDI 10,R6
|
|
LDI 25,R7
|
|
|
|
LDI @CHECKPOINT_BONUS_CVTI,AR4
|
|
CALL MULTI_VALUE
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_CHECKPOINT_BONUS
|
|
RETS
|
|
CHECKPOINT_BONUS_CVTI .word CHECKPOINT_BONUS_CVT
|
|
CHECKPOINT_BONUS_CVT:
|
|
PUSH R2
|
|
LDI R5,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI @bufferI,AR2
|
|
POP R2
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MXT1 SPTR "MAX CREDITS"
|
|
MXT2 SPTR "10-50"
|
|
SET_MAX_CREDITS:
|
|
READAUD ADJ_MAX_CREDITS
|
|
LDI R0,R5
|
|
|
|
LDI @MXT1,AR2
|
|
LDI @MXT2,AR3
|
|
LDI 10,R6
|
|
LDI 50,R7
|
|
|
|
LDI @CHECKPOINT_BONUS_CVTI,AR4
|
|
CALL MULTI_VALUE
|
|
|
|
LDI R5,R2
|
|
SETADJ ADJ_MAX_CREDITS
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
*
|
|
MVL SPTR "MINIMUM VOLUME LEVEL"
|
|
SET_MIN_VOL_LEVEL:
|
|
|
|
READAUD ADJ_MIN_VOL_LEVEL
|
|
FLOAT R0,R5
|
|
MPYF 0.11764,R5
|
|
FIX R5
|
|
|
|
LDI @MVL,AR2
|
|
LDI @NULLSTR,AR3
|
|
CLRI R6
|
|
LDI 30,R7
|
|
|
|
LDI @SET_MIN_VOL_LEVEL_CVTI,AR4
|
|
CALL MULTI_VALUE
|
|
|
|
|
|
FLOAT R5
|
|
MPYF 8.5,R5
|
|
FIX R5,R2
|
|
SETADJ ADJ_MIN_VOL_LEVEL
|
|
RETS
|
|
SET_MIN_VOL_LEVEL_CVTI .word SET_MIN_VOL_LEVEL_CVT
|
|
*
|
|
*
|
|
SET_MIN_VOL_LEVEL_CVT:
|
|
PUSH R2
|
|
LDI R5,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI @bufferI,AR2
|
|
POP R2
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*MULTI VALUE
|
|
*
|
|
*PARAMETERS
|
|
* AR2 STRING 1
|
|
* AR3 STRING 2
|
|
* AR4 ROUTINE TO RETURN VALUE STRING
|
|
* R5 INITIAL VALUE
|
|
* R6 MIN VALUE
|
|
* R7 MAX VALUE
|
|
* (NO WRAP AROUND)
|
|
*RETURNS
|
|
* R5 VALUE (INDEX)
|
|
*
|
|
|
|
.bss REPEAT_SW,1
|
|
.bss REPEAT_TIME,1
|
|
|
|
*
|
|
*
|
|
*PARAMETERS (ADDITIONAL FOR STEP)
|
|
* R4 STEP
|
|
*
|
|
*
|
|
|
|
MULTI_VALUE:
|
|
LDI 1,R4
|
|
MULTI_VALUE_STEP:
|
|
PUSH R5
|
|
PUSH R6
|
|
PUSH R7
|
|
PUSH AR4
|
|
PUSH AR5
|
|
|
|
PUSH AR3
|
|
PUSH AR2
|
|
WAIT_MAC_NOREPEAT
|
|
|
|
|
|
LDI 10000,R0
|
|
MPYI 55,R0
|
|
STI R0,@REPEAT_TIME
|
|
LDI 0,R0
|
|
STI R0,@REPEAT_SW
|
|
|
|
|
|
WINDOW 110,115,320,285
|
|
IWINDOW 120,125,310,275
|
|
LDI COL_VDGREY,RC
|
|
|
|
POP AR2
|
|
LDI 130,R2
|
|
LDI 140,R3
|
|
CALL _outtextxyc
|
|
|
|
POP AR2
|
|
LDI 130,R2
|
|
LDI 150,R3
|
|
CALL _outtextxyc
|
|
|
|
TEXTITT "ENTER TO ACCEPT",130,225
|
|
TEXTITT "UP TO INCREASE",130,235
|
|
TEXTITT "DOWN TO DECREASE",130,245
|
|
CALL WAIT_FOR_VBLANK
|
|
CALL WAIT_FOR_VBLANK
|
|
|
|
|
|
POP AR7
|
|
POP AR6
|
|
POP R7
|
|
POP R6
|
|
POP R5
|
|
|
|
DVLOOP
|
|
CMPI R6,R5
|
|
LDILT R6,R5
|
|
CMPI R7,R5
|
|
LDIGT R7,R5
|
|
|
|
FILL 170,200,309,209,0
|
|
|
|
LDI AR4,R0
|
|
CALLU R0 ;VALUE PASSED IN R5 (ALL REGS PRESERVED)
|
|
|
|
LDI COL_VDGREY,RC
|
|
LDI 170,R2
|
|
LDI 200,R3
|
|
CALL _outtextxyc
|
|
|
|
CALL WAIT_FOR_VBLANK
|
|
|
|
|
|
LDI @_newbut,R0 ;old system method
|
|
TSTB SW_DIAG,R0
|
|
BZ DOEXITDV
|
|
|
|
TSTB SW_VOLPLUS,R0 ;move down
|
|
BZ CHNGDV
|
|
TSTB SW_VOLMINUS,R0 ;move up
|
|
BNZ NCHNGDV
|
|
|
|
SUBI R4,R5
|
|
|
|
LDI 980,AR2
|
|
CALL SENDSND
|
|
BU NCHNGDV
|
|
CHNGDV
|
|
ADDI R4,R5
|
|
LDI 981,AR2
|
|
CALL SENDSND
|
|
NCHNGDV
|
|
LDI @REPEAT_TIME,R1
|
|
|
|
WT5
|
|
DEC R1
|
|
BLT WTT5
|
|
|
|
LDI @_newbut,R0
|
|
AND SW_VOLPLUS|SW_VOLMINUS|SW_DIAG,R0
|
|
CMPI @REPEAT_SW,R0
|
|
BEQ WT5
|
|
WTT5
|
|
CMPI @REPEAT_SW,R0
|
|
BNE WTTT5
|
|
LDI 5000,R1
|
|
MPYI 55,R1
|
|
STI R1,@REPEAT_TIME
|
|
B DVLOOP
|
|
WTTT5
|
|
LDI 10000,R1
|
|
MPYI 55,R1
|
|
STI R1,@REPEAT_TIME
|
|
|
|
STI R0,@REPEAT_SW
|
|
B DVLOOP
|
|
|
|
DOEXITDV
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
SPM SPTR "STANDARD PRICING MENU"
|
|
RUN_STANDARD_PRICING:
|
|
LDL STANDARD_PRICING_MENU,AR5
|
|
LDI STANDARD_PRICING_MENU_LEN,AR6
|
|
LDI @SPM,AR7
|
|
BU HANDLE_MENU
|
|
|
|
*----------------------------------------------------------------------------
|
|
.data
|
|
SELTP .string "SELECT THIS PRICING",0
|
|
.text
|
|
|
|
PRICE_YES_NO:
|
|
LDI -1,R0
|
|
STI R0,@PSLAST ;JUMP START PRINT STANDARD
|
|
|
|
LDL SELTP,AR2
|
|
LDI @AREUSURE,AR3
|
|
PUSH R6
|
|
CALL CLEAR_YES_NO
|
|
POP R6
|
|
RETSC
|
|
|
|
LDI R6,R2
|
|
ADDI @COUNTRY,R2
|
|
LDI ADJ_COINMODE,AR2
|
|
CALL ADJUSTMENT_WRITE
|
|
|
|
LDI 1,R2
|
|
LDI ADJ_STANDARD_PRICING,AR2
|
|
CALL ADJUSTMENT_WRITE
|
|
|
|
;IF YOU CHANGE MODES YOU RESET THE CREDITS
|
|
;
|
|
LDI 0,R2
|
|
LDI AUD_PCREDITS,AR2
|
|
CALL ADJUSTMENT_WRITE
|
|
|
|
LDI 0,R2
|
|
LDI AUD_CREDITS,AR2
|
|
CALL ADJUSTMENT_WRITE
|
|
|
|
;NOTE: AUD_BCREDITS RESET DURING GAME INIT
|
|
.ref SET_COINAGE_ADJ
|
|
CALL SET_COINAGE_ADJ ;Set the custom coinage to the standard just selected
|
|
|
|
|
|
LDI @STP,AR2
|
|
CALL MESSAGE_BOX
|
|
RETS
|
|
STP SPTR "PRICING SELECTED"
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
|
|
RCMT SPTR "CUSTOM PRICING"
|
|
RUN_CUSTOM_PRICING:
|
|
LDL CUSTOM_PRICING_MENU,AR5
|
|
LDI CUSTOM_PRICING_MENU_LEN,AR6
|
|
LDI @RCMT,AR7
|
|
BU HANDLE_MENU
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
.data
|
|
FRACYN .string "SHOW FRACTION",0
|
|
.text
|
|
|
|
FRACTION_YES_NO:
|
|
READAUD ADJ_SHOW_FRAC
|
|
LDI R0,R5
|
|
|
|
LDL FRACYN,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL ASK_YES_NO
|
|
LDI 1,R2
|
|
LDIC 0,R2
|
|
LDI ADJ_SHOW_FRAC,AR2
|
|
CALL ADJUSTMENT_WRITE
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
*----------------------------------------------------------------------------
|
|
.data
|
|
USECP .string "USE CUSTOM PRICING",0
|
|
.text
|
|
|
|
CUSTOM_YES_NO:
|
|
READAUD ADJ_STANDARD_PRICING
|
|
LDI R0,R5
|
|
XOR 1,R5
|
|
|
|
LDL USECP,AR2
|
|
LDI @NULLSTR,AR3
|
|
CALL ASK_YES_NO
|
|
LDI 0,R2
|
|
LDIC 1,R2
|
|
|
|
PUSH R2
|
|
LDI ADJ_STANDARD_PRICING,AR2
|
|
CALL ADJUSTMENT_WRITE
|
|
POP R2
|
|
CMPI 1,R2
|
|
BEQ CUSTOM_NO
|
|
LDI @CPS,AR2
|
|
CALL MESSAGE_BOX
|
|
CUSTOM_NO
|
|
|
|
RETS
|
|
CPS SPTR "CUSTOM PRICING SELECTED"
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
CMESSAGE_TAB
|
|
.word CPCS,CPCS,CPCS,CPCS,CUPC,CTSS,CTCS,CCTS,CCTC,CTPC,CTPC,CTPC,CTPC
|
|
|
|
CPCS .string "UNITS PER COIN",0
|
|
CUPC .string "UNITS PER CREDIT",0
|
|
CTSS .string "BONUS UNITS",0
|
|
CTCS .string "MINIMUM UNITS",0
|
|
CCTS .string "CREDITS TO START",0
|
|
CCTC .string "CREDITS TO CONTINUE",0
|
|
CTPC .string "COUNTER TICKS PER COIN",0
|
|
|
|
SET_SLOT:
|
|
LDI R6,AR2 ;R6 = menu selection index
|
|
LDI ADJ_COIN1_UNITS,R0
|
|
CMPI 9,R6
|
|
BLT SET_SLOT1
|
|
LDI ADJ_COIN1_COUNTER,R0
|
|
SUBI 9,R0 ;STRIP THE MENU OFFSET
|
|
SET_SLOT1
|
|
ADDI R0,AR2
|
|
CALL ADJUSTMENT_READ
|
|
LDI R0,R5
|
|
|
|
LDL CMESSAGE_TAB,AR2
|
|
ADDI R6,AR2
|
|
LDI *AR2,AR2
|
|
|
|
LDI @NULLSTR,AR3
|
|
PUSH R6
|
|
LDI 0,R6 ;RANGE 0 to 100
|
|
LDI 100,R7
|
|
|
|
LDI @GAMEDIFF_CVTI,AR4 ;This will print the values as numbers
|
|
CALL MULTI_VALUE
|
|
POP R6
|
|
|
|
LDI R5,R2
|
|
LDI R6,AR2
|
|
|
|
LDI ADJ_COIN1_UNITS,R0
|
|
CMPI 9,R6
|
|
BLT SET_SLOT2
|
|
LDI ADJ_COIN1_COUNTER,R0
|
|
SUBI 9,R0 ;STRIP THE MENU OFFSET
|
|
SET_SLOT2
|
|
ADDI R0,AR2
|
|
|
|
CALL ADJUSTMENT_WRITE
|
|
|
|
|
|
;IF YOU CHANGE MODES YOU RESET THE CREDITS
|
|
LDI 0,R2
|
|
LDI AUD_PCREDITS,AR2
|
|
CALL ADJUSTMENT_WRITE
|
|
|
|
LDI 0,R2
|
|
LDI AUD_CREDITS,AR2
|
|
CALL ADJUSTMENT_WRITE
|
|
|
|
RETS
|
|
|
|
|
|
PSTABI .word PSTAB
|
|
.SECT "THEDATA"
|
|
PSTAB
|
|
.word ADJ_COIN1_UNITS,PRINT_NUMBER
|
|
.word ADJ_COIN2_UNITS,PRINT_NUMBER
|
|
.word ADJ_COIN3_UNITS,PRINT_NUMBER
|
|
.word ADJ_COIN4_UNITS,PRINT_NUMBER
|
|
.word ADJ_UNITS_PER_CREDIT,PRINT_NUMBER
|
|
.word ADJ_BONUS_UNITS,PRINT_NUMBER
|
|
.word ADJ_UNITS_MIN,PRINT_NUMBER
|
|
.word ADJ_CREDITS_TO_START,PRINT_NUMBER
|
|
.word ADJ_CREDITS_TO_CONTINUE,PRINT_NUMBER
|
|
.word ADJ_COIN1_COUNTER,PRINT_NUMBER
|
|
.word ADJ_COIN2_COUNTER,PRINT_NUMBER
|
|
.word ADJ_COIN3_COUNTER,PRINT_NUMBER
|
|
.word ADJ_COIN4_COUNTER,PRINT_NUMBER
|
|
.word ADJ_SHOW_FRAC,PRINT_YN
|
|
.word ADJ_STANDARD_PRICING,PRINT_YN_INV
|
|
.word 0,0
|
|
|
|
.text
|
|
PRINT_SLOT:
|
|
PUSH AR4
|
|
LDI @PSTABI,AR4
|
|
CALL PRINT_VALUE
|
|
POP AR4
|
|
RETS
|
|
|
|
PRINT_VALUE:
|
|
PUSH R0
|
|
PUSH R1
|
|
PUSH R2
|
|
PUSH AR2
|
|
|
|
MPYI 2,R0
|
|
ADDI R0,AR4
|
|
|
|
LDI *AR4,AR2
|
|
CALL ADJUSTMENT_READ
|
|
|
|
; LDI *+AR4,AR2
|
|
; ADDI @PVTABI,AR2
|
|
; LDI *AR2,R1
|
|
; BEQ PRINT_VALUEX
|
|
|
|
LDI *+AR4,R1
|
|
BEQ PRINT_VALUEX
|
|
CALLU R1
|
|
PRINT_VALUEX
|
|
POP AR2
|
|
POP R2
|
|
POP R1
|
|
POP R0
|
|
RETS
|
|
|
|
;PVTABI .word PVTAB
|
|
;
|
|
; .word 0
|
|
; .word PRINT_MPH_INV ;-4
|
|
; .word PRINT_ONOFF_INV ;-3
|
|
; .word PRINT_YN_INV ;-2
|
|
; .word 0 ;-1
|
|
;PVTAB .word 0 ;0
|
|
; .word PRINT_NUMBER ;1
|
|
; .word PRINT_YN ;2
|
|
; .word PRINT_ONOFF ;3
|
|
; .word PRINT_MPH ;4
|
|
; .word PRINT_TIME ;5
|
|
; .word PRINT_VOL ;6
|
|
|
|
PRINT_VOL:
|
|
PUSH RC
|
|
|
|
FLOAT R0
|
|
MPYF 0.11764,R0
|
|
FIX R0
|
|
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI @bufferI,AR2
|
|
LDI 270,R2
|
|
CMPI 10,R0
|
|
LDIGE 262,R2
|
|
CMPI 100,R0
|
|
LDIGE 254,R2
|
|
POP RC
|
|
CALL _outtextxyc
|
|
RETS
|
|
|
|
|
|
GETSTR_LENGTH:
|
|
PUSH AR2
|
|
PUSH R0
|
|
PUSH R1
|
|
PUSH R3
|
|
|
|
CLRI R2
|
|
GSLP
|
|
CLRI R1
|
|
LDI *AR2++,R3
|
|
GSLP1
|
|
LDI R3,R0
|
|
LSH R1,R0
|
|
AND 0FFH,R0
|
|
BEQ GSLDONE
|
|
ADDI 1,R2
|
|
SUBI 8,R1
|
|
CMPI -32,R1
|
|
BGT GSLP1
|
|
BR GSLP
|
|
GSLDONE
|
|
POP R3
|
|
POP R1
|
|
POP R0
|
|
POP AR2
|
|
RETS
|
|
|
|
PRINT_COINMODE:
|
|
PUSH R0
|
|
READADJ ADJ_STANDARD_PRICING
|
|
POP R2
|
|
CMPI 0,R0
|
|
RETSEQ
|
|
ADDI @COINMSGC_TABI,R2
|
|
LDI R2,AR2
|
|
LDI *AR2,AR2
|
|
CALL GETSTR_LENGTH
|
|
MPYI -8,R2
|
|
ADDI 278,R2
|
|
CALL _outtextxyc
|
|
RETS
|
|
|
|
PRINT_CUSTOM_SELECTED:
|
|
CMPI 1,R0
|
|
RETSEQ
|
|
|
|
LDI @ISON,AR2
|
|
LDI 262,R2
|
|
CALL _outtextxyc
|
|
RETS
|
|
|
|
|
|
PRINT_TIME:
|
|
MPYI 5,R0
|
|
ADDI 60,R0
|
|
|
|
PRINT_NUMBER:
|
|
PUSH RC
|
|
LDI R0,R2
|
|
LDI @bufferI,AR2
|
|
CALL _itoa
|
|
LDI @bufferI,AR2
|
|
LDI 270,R2
|
|
CMPI 10,R0
|
|
LDIGE 262,R2
|
|
CMPI 100,R0
|
|
LDIGE 254,R2
|
|
CMPI 1000,R0
|
|
LDIGE 246,R2
|
|
CMPI 10000,R0
|
|
LDIGE 238,R2
|
|
|
|
PUSH R1
|
|
LDI 10000,R1
|
|
MPYI 10,R1
|
|
CMPI R1,R0
|
|
LDIGE 230,R2
|
|
POP R1
|
|
|
|
|
|
POP RC
|
|
CALL _outtextxyc
|
|
RETS
|
|
|
|
PRINT_YN_INV:
|
|
NEGI R0
|
|
ADDI 1,R0 ;Drops through to PRINT_YN
|
|
PRINT_YN:
|
|
LDI @YES,AR2
|
|
LDI 254,R2
|
|
CMPI 0,R0
|
|
LDIEQ @NO,AR2
|
|
LDIEQ 262,R2
|
|
CALL _outtextxyc
|
|
RETS
|
|
|
|
PRINT_ONOFF_INV:
|
|
NEGI R0
|
|
ADDI 1,R0 ;Drops through to PRINT_ONOFF
|
|
PRINT_ONOFF:
|
|
LDI @ISON,AR2
|
|
LDI 262,R2
|
|
CMPI 0,R0
|
|
LDIEQ @ISOFF,AR2
|
|
LDIEQ 254,R2
|
|
CALL _outtextxyc
|
|
RETS
|
|
|
|
PRINT_MPH_INV:
|
|
NEGI R0
|
|
ADDI 1,R0 ;Drops through to PRINT_MPH
|
|
PRINT_MPH:
|
|
LDI @MP3,AR2
|
|
LDI 254,R2
|
|
CMPI 1,R0
|
|
LDIEQ @MP2,AR2
|
|
CALL _outtextxyc
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*MENU DEFINITIONS
|
|
*
|
|
*
|
|
MAIN_MENU_LEN .set 7
|
|
.word 0
|
|
MAIN_MENU:
|
|
MENUENTRY "DIAGNOSTIC MENU",RUN_DIAG_MENU
|
|
MENUENTRY "GAME AUDITS",AUDIT_DISPLAY
|
|
MENUENTRY "ADJUSTMENTS MENU",RUN_ADJUSTMENT_MENU
|
|
MENUENTRY "UTILITIES",RUN_UTILITIES_MENU
|
|
MENUENTRY "CALIBRATE CONTROLS",SET_CONTROLS
|
|
MENUENTRY "ADJUST VOLUME",SET_VOLUME
|
|
MENUENTRY "EXIT TO GAME OVER",DIAG_RETURN
|
|
|
|
|
|
DIAGNOSTIC_MENU_LEN .set 10
|
|
.word 0
|
|
DIAGNOSTIC_MENU:
|
|
MENUENTRY "SWITCH TEST",SHOWSWITCH
|
|
MENUENTRY "DIP SWITCH TEST",SHOW_DIPSWITCH
|
|
MENUENTRY "CPU BOARD TEST",TEST_CHIPS
|
|
MENUENTRY "SOUND BOARD TEST",SOUND_BOARD_TEST
|
|
MENUENTRY "STEERING WHEEL TEST",STEERING_WHEEL_TEST
|
|
MENUENTRY "MONITOR TEST",MONITOR_DIAGNOSTICS
|
|
MENUENTRY "BURNIN TEST",BURNIN_TEST
|
|
MENUENTRY "MOTION MENU",RUN_MOTION_MENU ;MOTION_BURNIN
|
|
MENUENTRY "LAMP TEST",RUN_LAMP_TEST
|
|
MENUENTRY "EXIT TO MAIN MENU",XIT_MENU_TO_MAIN
|
|
|
|
|
|
UTILITIES_MENU_LEN .set 6
|
|
.word 0
|
|
UTILITIES_MENU:
|
|
MENUENTRY "CLEAR CREDITS",CLEAR_CREDITS
|
|
MENUENTRY "CLEAR GAME AUDITS",CLEAR_GAME_AUDITS
|
|
MENUENTRY "RESET HIGH SCORES",RESET_HIGH_SCORES
|
|
MENUENTRY "DEFAULT ADJUSTMENTS",DEFAULT_ADJUSTMENTS
|
|
MENUENTRY "FULL FACTORY RESTORE",FULL_FACTORY_RESTORE
|
|
MENUENTRY "EXIT TO MAIN MENU",XIT_MENU_TO_MAIN
|
|
|
|
|
|
|
|
ADJUSTMENT_MENU_LEN .set 18
|
|
.word 0
|
|
.word PRINT_ADJUSTMENT
|
|
ADJUSTMENT_MENU
|
|
MENUENTRY "STANDARD PRICING",RUN_STANDARD_PRICING
|
|
MENUENTRY "CUSTOM PRICING",RUN_CUSTOM_PRICING
|
|
MENUENTRY "FREE PLAY",FREEPLAYONOFF
|
|
MENUENTRY "FIRST PLACE AWARDS FREE GAME",FREEGAMEONOFF
|
|
MENUENTRY "START TIME BONUS SECS",SET_TIME_TO_START
|
|
MENUENTRY "CHECKPOINT BONUS TIME SECS",SET_CHECKPOINT_BONUS
|
|
MENUENTRY "ATTRACT MODE SOUND",AMODESND
|
|
MENUENTRY "HIGH SCORE ENTRY",HIGHSCORE_ENTRY
|
|
MENUENTRY "MIN VOLUME LEVEL",SET_MIN_VOL_LEVEL
|
|
MENUENTRY "SPEED IN MPH OR KPH",MILES_OR_KILO
|
|
MENUENTRY "SHOW ROADKILL",ROADKILL_ONOFF
|
|
MENUENTRY "SHOW PRESIDENT",CLINTON_ONOFF
|
|
MENUENTRY "SHOW GIRLS",GIRLS_ONOFF
|
|
MENUENTRY "HIGHSCORE RESET",SET_HIGHSCORE_RESET
|
|
MENUENTRY "GAME DIFFICULTY",SET_GAME_DIFFICULTY
|
|
MENUENTRY "MAX CREDITS",SET_MAX_CREDITS
|
|
MENUENTRY "STEERING SENSITIVITY",SET_STEERING_SENSITIVITY
|
|
MENUENTRY "EXIT TO MAIN MENU",XIT_MENU_TO_MAIN
|
|
|
|
|
|
.globl DIAG_MOTION_TESTX,DIAG_MOTION_TESTY,DIAG_MOTION_TESTZ
|
|
.globl DIAG_MOTION_BURNIN
|
|
|
|
MOTION_MENU_LEN .set 7
|
|
.word 0
|
|
MOTION_MENU
|
|
MENUENTRY "FRONT AXIS UP/DOWN",DIAG_MOTION_TESTZ
|
|
MENUENTRY "LEFT REAR AXIS UP/DOWN",DIAG_MOTION_TESTX
|
|
MENUENTRY "RIGHT REAR AXIS UP/DOWN",DIAG_MOTION_TESTY
|
|
MENUENTRY "COMBINED MOTION",DIAG_MOTION_BURNIN
|
|
MENUENTRY "MOTION SAFETY SWITCHES",MOTION_SAFETY_SWITCHES_DIAG
|
|
.globl SEND_MOTOR_OFF
|
|
MENUENTRY "HARD MOTION OFF",SEND_MOTOR_OFF
|
|
MENUENTRY "EXIT TO MAIN MENU",XIT_MENU_TO_MAIN
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
LAMPT SPTR "LAMP TEST"
|
|
LAMP_MENU_LEN .set 11
|
|
.word 0
|
|
LAMP_MENU:
|
|
MENUENTRY "TURN ON ALL LAMPS",LAMPSALL
|
|
MENUENTRY "TURN OFF ALL LAMPS",LAMPSOFF
|
|
MENUENTRY "TURN ON START",LAMPS
|
|
MENUENTRY "TURN ON VIEW 1",LAMPV1
|
|
MENUENTRY "TURN ON VIEW 2",LAMPV2
|
|
MENUENTRY "TURN ON VIEW 3",LAMPV3
|
|
MENUENTRY "TURN ON LEFT TAIL",LAMPLT
|
|
MENUENTRY "TURN ON RIGHT TAIL",LAMPRT
|
|
MENUENTRY "TURN ON LEFT FRONT",LAMPLF
|
|
MENUENTRY "TURN ON RIGHT FRONT",LAMPRF
|
|
MENUENTRY "EXIT TO MAIN MENU",XIT_MENU_TO_MAIN
|
|
|
|
RUN_LAMP_TEST:
|
|
LDL LAMP_MENU,AR5
|
|
LDI LAMP_MENU_LEN,AR6
|
|
LDI @LAMPT,AR7
|
|
BU HANDLE_MENU
|
|
LAMPSOFF:
|
|
LDI 0,R0
|
|
BU LJIN
|
|
LAMPSALL:
|
|
LDI 0FFh,R0
|
|
BU LJIN
|
|
LAMPS: LDI 1,R0
|
|
BU LJIN
|
|
LAMPV1: LDI 2,R0
|
|
BU LJIN
|
|
LAMPV2: LDI 4,R0
|
|
BU LJIN
|
|
LAMPV3: LDI 8,R0
|
|
BU LJIN
|
|
LAMPLT: LDI 10h,R0
|
|
BU LJIN
|
|
LAMPRT: LDI 20h,R0
|
|
BU LJIN
|
|
LAMPLF: LDI 40h,R0
|
|
BU LJIN
|
|
LAMPRF: LDI 80h,R0
|
|
|
|
LJIN LDP @BUTTON_STATUS
|
|
STI R0,@BUTTON_STATUS
|
|
SETDP
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MOTION_CHECK_SAFETY_CODES:
|
|
PUSH R0
|
|
PUSH R1
|
|
PUSH R2
|
|
PUSH R3
|
|
|
|
CALL CLEAR_MATS
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R0
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 8,R0 ;right justify
|
|
|
|
LDL MOTION_SAFETY_CODES,AR2
|
|
MCSC_LP LDI *AR2,R1
|
|
CMPI -1,R1
|
|
BEQ NO_ERRORS
|
|
AND *+AR2(1),R1
|
|
|
|
LDI R0,R3
|
|
AND *+AR2(1),R3
|
|
CMPI R3,R1
|
|
BNE JJDDA
|
|
|
|
LDI *+AR2(2),R0
|
|
CALLU R0
|
|
BU ALL_DONE
|
|
|
|
JJDDA NOP *++AR2(3)
|
|
BU MCSC_LP
|
|
|
|
|
|
NO_ERRORS
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "ALL SYSTEMS OK",70,330
|
|
|
|
ALL_DONE
|
|
POP R3
|
|
POP R2
|
|
POP R1
|
|
POP R0
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MSCM .MACRO CODE,MASK,ROUTINE
|
|
.word :CODE:,:MASK:,:ROUTINE:
|
|
.ENDM
|
|
|
|
MOTION_SAFETY_CODES:
|
|
MSCM 080h,080h,MSC_BOARD_NOTPLUGGED
|
|
MSCM 070h,0F0h,MSC_FAILSAFE_NOTCONNECTED
|
|
MSCM 060h,0F0h,MSC_FAILSAFE_OK
|
|
MSCM 050h,0F0h,MSC_OPTO_LED
|
|
MSCM 040h,0F0h,MSC_OPTO_DETECTOR
|
|
MSCM 030h,0F0h,MSC_OPTO_PATH
|
|
MSCM 020h,0F0h,MSC_MAT_STEPPED
|
|
MSCM 010h,0F0h,MSC_MAT_NOTPLUGGED
|
|
.word -1
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MSC_BOARD_NOTPLUGGED:
|
|
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "BOARD NOT PLUGGED IN OR PAL NOT INSTALLED",70,330
|
|
|
|
RETS
|
|
MSC_MAT_STEPPED:
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "MAT STEPPED ON",70,330
|
|
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R4
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 8,R4 ;right justify
|
|
|
|
TSTB 1,R4
|
|
BZ NM1
|
|
FILL 102,142,128,218,COL_RED
|
|
NM1 TSTB 2,R4
|
|
BZ NM2
|
|
FILL 32,232,128,278,COL_RED
|
|
NM2 TSTB 4,R4
|
|
BZ NM3
|
|
FILL 32,142,58,218,COL_RED
|
|
NM3 TSTB 8,R4
|
|
BZ NM4
|
|
FILL 32,82,128,118,COL_RED
|
|
NM4 RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MSC_MAT_NOTPLUGGED:
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "MAT NOT PLUGGED IN",70,330
|
|
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R4
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 8,R4 ;right justify
|
|
|
|
TSTB 1,R4
|
|
BZ NM1A
|
|
FILL 102,142,128,218,COL_RED
|
|
NM1A TSTB 2,R4
|
|
BZ NM2A
|
|
FILL 32,232,128,278,COL_RED
|
|
NM2A TSTB 4,R4
|
|
BZ NM3A
|
|
FILL 32,142,58,218,COL_RED
|
|
NM3A TSTB 8,R4
|
|
BZ NM4A
|
|
FILL 32,82,128,118,COL_RED
|
|
NM4A RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MSC_OPTO_PATH:
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "OPTO PATH BROKEN",70,330
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MSC_OPTO_LED:
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "OPTO LED NOT EMITTING",70,330
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R4
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 8,R4 ;right justify
|
|
|
|
TSTB 1,R4
|
|
BZ NJ1
|
|
FILLW 150+32,212,16,16,COL_RED ;L1
|
|
|
|
NJ1 TSTB 2,R4
|
|
BZ NJ2
|
|
FILLW 150+57,232,16,16,COL_RED ;L2
|
|
|
|
NJ2 TSTB 4,R4
|
|
BZ NJ3
|
|
FILLW 150+87,232,16,16,COL_RED ;L3
|
|
|
|
NJ3 TSTB 8,R4
|
|
BZ NJ4
|
|
FILLW 150+112,212,16,16,COL_RED ;L4
|
|
NJ4
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MSC_OPTO_DETECTOR:
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "OPTO DETECTOR NOT RECEIVING",70,330
|
|
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R4
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 8,R4 ;right justify
|
|
|
|
TSTB 1,R4
|
|
BZ NJ1A
|
|
FILLW 150+32,112,16,16,COL_RED ;D1
|
|
|
|
NJ1A TSTB 2,R4
|
|
BZ NJ2A
|
|
FILLW 150+57,82,16,16,COL_RED ;D2
|
|
|
|
NJ2A TSTB 4,R4
|
|
BZ NJ3A
|
|
FILLW 150+87,82,16,16,COL_RED ;D3
|
|
|
|
NJ3A TSTB 8,R4
|
|
BZ NJ4A
|
|
FILLW 150+112,112,16,16,COL_RED ;D4
|
|
NJ4A
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
MSC_FAILSAFE_OK:
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "FAIL SAFE SWITCH ENGAGED",70,330
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R4
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 8,R4 ;right justify
|
|
|
|
|
|
TSTB 4,R4
|
|
BZ NM4B
|
|
FILL 150+150+62,82,150+150+98,118,COL_RED
|
|
NM4B TSTB 1,R4
|
|
BZ NM1B
|
|
FILL 150+150+32,232,150+150+58,278,COL_RED
|
|
NM1B TSTB 2,R4
|
|
BZ NM2B
|
|
FILL 150+150+102,232,150+150+128,278,COL_RED
|
|
NM2B
|
|
RETS
|
|
MSC_FAILSAFE_NOTCONNECTED:
|
|
IWINDOW 50,320,450,360
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "FAIL SAFE SWITCH NOT CONNECTED CORRECTLY",70,330
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R4
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 8,R4 ;right justify
|
|
|
|
TSTB 4,R4
|
|
BZ NM4BA
|
|
FILL 150+150+62,82,150+150+98,118,COL_RED
|
|
NM4BA TSTB 1,R4
|
|
BZ NM1BA
|
|
FILL 150+150+32,232,150+150+58,278,COL_RED
|
|
NM1BA TSTB 2,R4
|
|
BZ NM2BA
|
|
FILL 150+150+102,232,150+150+128,278,COL_RED
|
|
NM2BA
|
|
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
DRAW_MOTION_SAFETY_DIAG:
|
|
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "MATS:",50,50
|
|
TEXTITT "FRONT",55,72
|
|
TEXTITT "REAR",55,285
|
|
;MATS
|
|
RECT 30,80,130,120,COL_BLACK
|
|
RECT 30,140,60,220,COL_BLACK
|
|
RECT 100,140,130,220,COL_BLACK
|
|
RECT 30,230,130,280,COL_BLACK
|
|
|
|
|
|
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "OPTOS:",150+50,50
|
|
TEXTITT "FRONT",150+55,72
|
|
TEXTITT "REAR",150+55,285
|
|
;LEDS
|
|
|
|
RECTW 150+30,110,20,20,COL_BLACK ;D1
|
|
RECTW 150+55,80,20,20,COL_BLACK ;D2
|
|
RECTW 150+85,80,20,20,COL_BLACK ;D3
|
|
RECTW 150+110,110,20,20,COL_BLACK ;D4
|
|
|
|
RECTW 150+30,210,20,20,COL_BLACK ;L1
|
|
RECTW 150+55,230,20,20,COL_BLACK ;L2
|
|
RECTW 150+85,230,20,20,COL_BLACK ;L3
|
|
RECTW 150+110,210,20,20,COL_BLACK ;L4
|
|
|
|
|
|
|
|
; RECT 150+30,80,150+130,120,COL_BLACK
|
|
; RECT 150+30,140,150+60,220,COL_BLACK
|
|
; RECT 150+100,140,150+130,220,COL_BLACK
|
|
; RECT 150+30,230,150+130,280,COL_BLACK
|
|
|
|
|
|
|
|
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "FAILSAFE SWITCHES:",150+150,50
|
|
TEXTITT "FRONT",150+150+61,72
|
|
TEXTITT "REAR",150+150+65,285
|
|
;FAIL SAFE
|
|
RECT 150+150+60,80,150+150+100,120,COL_BLACK
|
|
RECT 150+150+30,230,150+150+60,280,COL_BLACK
|
|
RECT 150+150+100,230,150+150+130,280,COL_BLACK
|
|
|
|
|
|
LDI COL_BLACK,RC
|
|
TEXTITT "HIT ENTER TO ESCAPE",20,380
|
|
TEXTITT "MOTION SAFETY DIAGNOSTICS",30,20
|
|
TEXTITT "ERROR MESSAGE:",50,305
|
|
|
|
TEXTITT "MOTION STOP:",300,15
|
|
|
|
IWINDOW 50,320,450,360 ;error window
|
|
IWINDOW 390,5,430,35 ;motion
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
CLEAR_MATS:
|
|
;MATS
|
|
FILL 32,82,128,118,0
|
|
FILL 32,142,58,218,0
|
|
FILL 102,142,128,218,0
|
|
FILL 32,232,128,278,0
|
|
|
|
;FAIL SAFE
|
|
FILL 150+150+62,82,150+150+98,118,0
|
|
FILL 150+150+32,232,150+150+58,278,0
|
|
FILL 150+150+102,232,150+150+128,278,0
|
|
|
|
|
|
|
|
;LED (LED)
|
|
FILLW 150+32,212,16,16,0 ;L1
|
|
FILLW 150+57,232,16,16,0 ;L2
|
|
FILLW 150+87,232,16,16,0 ;L3
|
|
FILLW 150+112,212,16,16,0 ;L4
|
|
|
|
;LED (DETECTOR)
|
|
FILLW 150+32,112,16,16,0 ;D1
|
|
FILLW 150+57,82,16,16,0 ;D2
|
|
FILLW 150+87,82,16,16,0 ;D3
|
|
FILLW 150+112,112,16,16,0 ;D4
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*diagnostic routine to show motion safety condition
|
|
*
|
|
*
|
|
*
|
|
|
|
.bss OLD_MOTION_CODE,1
|
|
.globl MOTION_SAFETY_SWITCHES_DIAG
|
|
MOTION_SAFETY_SWITCHES_DIAG:
|
|
CALL SETUP_DIAG_SCREEN
|
|
CALL DRAW_MOTION_SAFETY_DIAG
|
|
|
|
CALL MOTION_CHECK_SAFETY_CODES
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R0
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 7,R0
|
|
LS 16+7,R0
|
|
RS 16,R0
|
|
STI R0,@OLD_MOTION_CODE
|
|
|
|
|
|
|
|
MSSD_LP
|
|
NOT @_newbut,R0
|
|
AND SW_DIAG,R0
|
|
RETSNZ
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R0
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
|
|
TSTB 080h,R0
|
|
BZ MSOFF
|
|
|
|
FILL 400,10,420,30,COL_RED
|
|
BU MSFX
|
|
|
|
MSOFF FILL 400,10,420,30,0
|
|
MSFX
|
|
|
|
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R0
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 7,R0
|
|
LS 16+7,R0
|
|
RS 16,R0
|
|
CMPI @OLD_MOTION_CODE,R0
|
|
BEQ MSSD_LP
|
|
STI R0,@OLD_MOTION_CODE
|
|
|
|
|
|
;
|
|
;binary debugging aid
|
|
;
|
|
FILL 300,305,500,315,0
|
|
|
|
.bss IBOIBOT,2
|
|
|
|
CLRI AR2
|
|
LDP @991030h
|
|
LDI @991030h,R2
|
|
LDI *AR2,AR2
|
|
SETDP
|
|
RS 8,R2
|
|
AND 0FFh,R2
|
|
LDL IBOIBOT,AR2
|
|
CALL HEX2ASC
|
|
|
|
LDI COL_BLACK,RC
|
|
LDI 300,R2
|
|
LDI 305,R3
|
|
CALL _outtextxyc
|
|
;end dbg
|
|
;
|
|
|
|
|
|
|
|
CALL MOTION_CHECK_SAFETY_CODES
|
|
BU MSSD_LP
|
|
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
.include audits.asm
|
|
; .include motion.asm
|
|
.END
|