2283 lines
36 KiB
NASM
Executable File
2283 lines
36 KiB
NASM
Executable File
.FILE "BONUS.ASM"
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
*COPYRIGHT (C) 1994 BY TV GAMES, INC.
|
|
*ALL RIGHTS RESERVED
|
|
*
|
|
|
|
.include MACS.EQU
|
|
.include MPROC.EQU
|
|
.include OBJ.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 DELTA.EQU
|
|
.include COMM.EQU
|
|
.include H2HOBJ.EQU
|
|
|
|
|
|
|
|
.bss MAXMPH,1 ;FL
|
|
.bss CHALLENGE_RACE,1 ;FL 1= TRUE,0= FALSE
|
|
.bss NEXT_STARTUP,1 ;IDX
|
|
.bss BONUS_WAVE,1 ;IDX
|
|
.bss FINISH_LINE,1 ;UH RoadCode for the finish line of this leg
|
|
.bss DO_FOLDFLAG,1 ;UH ==1 when folding flag
|
|
|
|
|
|
|
|
|
|
NUM_LEGS .set 14
|
|
LEG_NAMESI .word LEG_NAMES
|
|
LEG_NAMES .word LEG1,LEG2,LEG3,LEG4,LEG5,LEG6,LEG7,LEG8
|
|
.word LEG9,LEG10,LEG11,LEG12,LEG13,LEG14,LEG_USA
|
|
|
|
|
|
romdata
|
|
LEG1 .string "GOLDEN GATE PARK",0
|
|
LEG2 .string "SAN FRANCISCO",0 ;+tunnel
|
|
LEG3 .string "US 101",0
|
|
LEG4 .string "REDWOOD FOREST",0 ;+beach
|
|
LEG5 .string "BEVERLY HILLS",0 ;+tunnel2
|
|
LEG6 .string "LA FREEWAY",0
|
|
LEG7 .string "DEATH VALLEY",0
|
|
LEG8 .string "ARIZONA",0
|
|
LEG9 .string "GRAND CANYON",0
|
|
LEG10 .string "IOWA",0 ;midwest
|
|
LEG11 .string "CHICAGO",0
|
|
LEG12 .string "INDIANA",0 ;midwest
|
|
LEG13 .string "APPALACHIA",0
|
|
LEG14 .string "WASHINGTON DC",0
|
|
LEG_USA .string "SF TO WASHINGTON DC",0
|
|
|
|
|
|
WINT1 .string "FREE GAME FOR",0
|
|
WINT2 .string "1ST PLACE",0
|
|
|
|
EXPIRED .string "EXPIRED",0
|
|
.text
|
|
|
|
|
|
|
|
|
|
*STATISTICAL STRUCTURE FOR THE GAME LEGS <NERD DATA>
|
|
*
|
|
*
|
|
*
|
|
*STRUCT tagGAMETRAK
|
|
GT_ETIME .set 0 ;TC ELAPSED TIME (TIME CODED)
|
|
GT_POS .set 1 ;UD POSITION
|
|
GT_MAXMPH .set 2 ;UD MAX MPH
|
|
GT_COLLS .set 3 ;UD NUMBER OF COLLISIONS
|
|
GT_SIZE .set 4 ;SIZ
|
|
*ENDSTRUCT
|
|
|
|
GAMETRAKI .word GAMETRAK
|
|
.bss GAMETRAK,NUM_LEGS*GT_SIZE
|
|
.bss ETIME,1
|
|
|
|
|
|
;etime,#,maxmph
|
|
BUFFERSI .word BIGBUFFER
|
|
.bss BIGBUFFER,(4+1+2+2)*NUM_LEGS
|
|
|
|
BONUS_POSTLAUNCHI .word BONUS_POSTLAUNCH
|
|
romdata
|
|
BONUS_POSTLAUNCH
|
|
.word BONUS_GGATE,BONUS_SANFRAN,BONUSNULL,BONUSNULL
|
|
.word BONUS_BEVHILLS,BONUSNULL,BONUSNULL
|
|
.word BONUSNULL,BONUSNULL,BONUSNULL
|
|
.word BONUSNULL,BONUSNULL,BONUSNULL
|
|
.word BONUSNULL,BONUSNULL,BONUSNULL
|
|
.text
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
BONUS_SANFRAN:
|
|
CREATE TRAFFIC_LIGHT,SPAWNER_C|COLORCYC_T
|
|
FLOAT -35,R0
|
|
STF R0,@INFIN_CORRECT
|
|
BONUS_GGATE:
|
|
BONUS_BEVHILLS:
|
|
LDI @_MODE,R0
|
|
OR MWATER,R0
|
|
STI R0,@_MODE
|
|
BONUSNULL:
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
BONUS_TABLEI .word BONUS_TABLE
|
|
romdata
|
|
BONUS_TABLE .word BONUS1,BONUS2,BONUS3,BONUS4,BONUS5
|
|
.word BONUS6,BONUS7,BONUS8,BONUS9,BONUS10
|
|
.word BONUS11,BONUS12,BONUS13,BONUS14
|
|
.text
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*ROUTINES FOR OVERLAY.ASM
|
|
*
|
|
*
|
|
BONUS14
|
|
LDI 14,R1
|
|
BU LK
|
|
BONUS13 LDI L_LEG14_BEGIN+1,R0
|
|
LDI 13,R1
|
|
BU LK
|
|
|
|
BONUS12 LDI L_LEG13_BEGIN+1,R0
|
|
LDI 12,R1
|
|
BU LK
|
|
|
|
BONUS11 LDI L_LEG12_BEGIN+1,R0
|
|
LDI 11,R1
|
|
BU LK
|
|
|
|
BONUS10 LDI L_LEG11_BEGIN+1,R0
|
|
LDI 10,R1
|
|
BU LK
|
|
|
|
BONUS9 LDI L_LEG10_BEGIN+1,R0
|
|
LDI 9,R1
|
|
BU LK
|
|
|
|
BONUS8 LDI L_LEG9_BEGIN+1,R0
|
|
LDI 8,R1
|
|
BU LK
|
|
|
|
BONUS7 LDI L_LEG8_BEGIN+1,R0
|
|
LDI 7,R1
|
|
BU LK
|
|
|
|
BONUS6 LDI L_LEG7_BEGIN+1,R0
|
|
LDI 6,R1
|
|
BU LK
|
|
|
|
BONUS5 LDI L_LEG6_BEGIN+1,R0
|
|
LDI 5,R1
|
|
BU LK
|
|
|
|
BONUS4 LDI L_LEG5_BEGIN+1,R0
|
|
LDI 4,R1
|
|
BU LK
|
|
|
|
BONUS3 LDI L_LEG4_BEGIN+1,R0
|
|
LDI 3,R1
|
|
BU LK
|
|
|
|
BONUS2 LDI L_LEG3_BEGIN+1,R0
|
|
LDI 2,R1
|
|
BU LK
|
|
|
|
BONUS1 LDI L_LEG2_BEGIN+1,R0
|
|
LDI 1,R1
|
|
LK STI R0,@NEXT_STARTUP
|
|
STI R1,@BONUS_WAVE
|
|
|
|
LDI @_MODE,R0
|
|
LDI R0,R1
|
|
AND MMODE,R1
|
|
CMPI MGAME,R1
|
|
RETSNE
|
|
|
|
ANDN MMODE,R0
|
|
OR MBONUS,R0
|
|
ANDN MINTUNNEL,R0
|
|
STI R0,@_MODE
|
|
|
|
|
|
|
|
;;; COMMUNICATIONS ALCHEMY
|
|
;;;
|
|
LDI @MY_STATE,R0
|
|
OR OMS_FINISHLINE,R0
|
|
STI R0,@MY_STATE
|
|
|
|
|
|
;DIFFICULTY ADJUSTMENTS
|
|
;
|
|
LDI @POSITION,R0
|
|
CALL DIFF_CHANGE
|
|
|
|
|
|
;AUDIT MUMBO JUMBO
|
|
;
|
|
LDI @BONUS_WAVE,R2
|
|
SETAUD AUD_LAST_LEG
|
|
|
|
LDI @BONUS_WAVE,AR2
|
|
DEC AR2
|
|
MPYI 2,AR2
|
|
ADDI AUD_FINISH_GGATE,AR2
|
|
CALL AUDIT_INC
|
|
|
|
CLRI R0
|
|
STI R0,@FIRST_RACE
|
|
|
|
|
|
CALL KILL_PLYR_SOUNDS
|
|
|
|
LDI MAX_DRONES,R0
|
|
STI R0,@DD_MAX_DRONES
|
|
|
|
READAUD ADJ_CHECKPOINT_BONUS
|
|
STI R0,@CHECKPOINT_TIME_BONUS
|
|
|
|
|
|
LDI @PLYCAR,AR4
|
|
LDI @PLYCBLK,AR5
|
|
CALL FIND_PLAYERS_POSITION
|
|
|
|
CREATEC BONUS_SCREEN,22
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
|
|
JSUB:
|
|
LDL BHDDFAS,AR2
|
|
FLOAT 256,R2
|
|
FLOAT 278,R3
|
|
LDI 7,RC
|
|
CALL TEXT_ADDDS
|
|
LDI *+AR0(TEXT_COLOR),R0
|
|
OR TXT_CENTER,R0
|
|
STI R0,*+AR0(TEXT_COLOR)
|
|
LDI *+AR1(TEXT_COLOR),R0
|
|
OR TXT_CENTER,R0
|
|
STI R0,*+AR1(TEXT_COLOR)
|
|
LDL font18_white,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR0(TEXT_PAL)
|
|
STI R0,*+AR1(TEXT_PAL)
|
|
RETS
|
|
|
|
DISPLAY_H2H_WINNER:
|
|
LDI @WAS_HEAD2HEAD_ON,R0
|
|
BZ DODIE
|
|
|
|
LDI @OM_POSITION,R0
|
|
CMPI @POSITION,R0
|
|
BLT DODIE
|
|
|
|
CLRI R0
|
|
STI R0,@UNFOLDFLAG
|
|
|
|
|
|
|
|
|
|
LDL big2,AR2
|
|
LDI 0,R2
|
|
LDI 140,R3
|
|
LDI 856,RC
|
|
CALL OBJ_QMAKE
|
|
LDI O_IROT|O_NOROT|O_NOUROT|O_NOUNIV|O_1PAL,R0
|
|
OR *+AR0(OFLAGS),R0
|
|
STI R0,*+AR0(OFLAGS)
|
|
LDI AR0,AR2
|
|
CALL OBJ_INSERTHP
|
|
|
|
LDL H2HPAL3,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR0(OPAL)
|
|
STI AR0,*+AR7(PDATA+2) ;big2
|
|
|
|
|
|
LDL redhd1,AR2
|
|
LDI 0,R2
|
|
LDI 80,R3
|
|
LDI 868,RC
|
|
CALL OBJ_QMAKE
|
|
LDI O_IROT|O_NOROT|O_NOUROT|O_NOUNIV|O_1PAL,R0
|
|
OR *+AR0(OFLAGS),R0
|
|
STI R0,*+AR0(OFLAGS)
|
|
|
|
LDI AR0,AR2
|
|
CALL OBJ_INSERTHP
|
|
|
|
LDL H2HPAL2,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR0(OPAL)
|
|
STI AR0,*+AR7(PDATA) ;red (bottom)
|
|
|
|
|
|
|
|
LDL yelhd1,AR2
|
|
LDI 0,R2
|
|
LDI 200,R3
|
|
LDI 868,RC
|
|
CALL OBJ_QMAKE
|
|
LDI O_IROT|O_NOROT|O_NOUROT|O_NOUNIV|O_1PAL,R0
|
|
OR *+AR0(OFLAGS),R0
|
|
STI R0,*+AR0(OFLAGS)
|
|
LDI AR0,AR2
|
|
CALL OBJ_INSERTHP
|
|
LDL H2HPAL2,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR0(OPAL)
|
|
STI AR0,*+AR7(PDATA+1) ;yellow (bottom)
|
|
|
|
|
|
|
|
|
|
|
|
romdata
|
|
BHDDFAS .string "WINNER",0
|
|
.text
|
|
.globl font18_white
|
|
|
|
.bss UNFOLDFLAG,1
|
|
DHHW_LP
|
|
LDI @UNFOLDFLAG,R0
|
|
BNZ DODIEXXX
|
|
|
|
CALL JSUB
|
|
|
|
SLEEP 10
|
|
|
|
CALL JSUB
|
|
|
|
|
|
SLEEP 5
|
|
FLOAT -5000,R6
|
|
LDI *+AR7(PDATA),AR2
|
|
LDF *+AR2(OPOSZ),R0
|
|
ADDF R6,R0
|
|
STF R0,*+AR2(OPOSZ)
|
|
|
|
LDI *+AR7(PDATA+1),AR2
|
|
LDF *+AR2(OPOSZ),R0
|
|
ADDF R6,R0
|
|
STF R0,*+AR2(OPOSZ)
|
|
|
|
LDI *+AR7(PDATA+2),AR2
|
|
LDF *+AR2(OPOSZ),R0
|
|
ADDF R6,R0
|
|
STF R0,*+AR2(OPOSZ)
|
|
SLEEP 5
|
|
|
|
FLOAT 5000,R6
|
|
LDI *+AR7(PDATA),AR2
|
|
LDF *+AR2(OPOSZ),R0
|
|
ADDF R6,R0
|
|
STF R0,*+AR2(OPOSZ)
|
|
|
|
LDI *+AR7(PDATA+1),AR2
|
|
LDF *+AR2(OPOSZ),R0
|
|
ADDF R6,R0
|
|
STF R0,*+AR2(OPOSZ)
|
|
|
|
LDI *+AR7(PDATA+2),AR2
|
|
LDF *+AR2(OPOSZ),R0
|
|
ADDF R6,R0
|
|
STF R0,*+AR2(OPOSZ)
|
|
|
|
DBU AR5,DHHW_LP
|
|
|
|
DODIEXXX
|
|
|
|
LDI *+AR7(PDATA),AR2
|
|
CALL OBJ_DELETE_HIGH_PRIORITY
|
|
LDI *+AR7(PDATA+1),AR2
|
|
CALL OBJ_DELETE_HIGH_PRIORITY
|
|
LDI *+AR7(PDATA+2),AR2
|
|
CALL OBJ_DELETE_HIGH_PRIORITY
|
|
DODIE
|
|
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
OBJ_DELETE_HIGH_PRIORITY:
|
|
PUSH R0
|
|
PUSH R1
|
|
PUSH AR1
|
|
PUSH AR2
|
|
|
|
.globl OHIGH_PRIORITYI
|
|
LDI @OHIGH_PRIORITYI,R1
|
|
|
|
DELLP LDI R1,AR1 ;WE MUST FIND DEAD OBJECT TO LINK AROUND
|
|
LDI *AR1,R1
|
|
BZ DELOBJX
|
|
|
|
CMPI R1,AR2
|
|
BNE DELLP
|
|
|
|
LDI *AR2,R1
|
|
STI R1,*AR1 ;LINK AROUND
|
|
LDI @OFREE,R1
|
|
STI R1,*AR2
|
|
STI AR2,@OFREE
|
|
|
|
LDI @OFREECNT,R0 ;INCREMENT FREE OBJECT COUNT
|
|
ADDI 1,R0
|
|
STI R0,@OFREECNT
|
|
|
|
CLRI R0
|
|
STI R0,*+AR2(OLINK2) ;CLEAR SEARCH ID
|
|
STI R0,*+AR2(OFLAGS)
|
|
|
|
DELOBJX
|
|
POP AR2
|
|
POP AR1
|
|
POP R1
|
|
POP R0
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
.bss SAVED_COUNTDOWN,1
|
|
BONUS_SCREEN:
|
|
LDI @BGNDCOLA,R0
|
|
STI R0,*+AR7(PDATA)
|
|
|
|
LDI @_countdown,R0
|
|
STI R0,@SAVED_COUNTDOWN
|
|
|
|
CLRI R0
|
|
STI R0,@BGNDCOLA
|
|
CALL SILENT
|
|
CALL SND_RESET_QUIET
|
|
|
|
CLRI R0
|
|
STI R0,@STOPWATCH_CNTL
|
|
STI R0,@DO_FOLDFLAG
|
|
|
|
CALL KILL_THEM
|
|
LDI 0,R0 ;SMOKE MAY BE KILLED, SO I HAVE TO RESET THIS
|
|
STI R0,@TIRE_SMOKE_COUNT
|
|
|
|
LDI 1,R0
|
|
STI R0,@IGNORE_UPDATES
|
|
CALL PRC_INIT
|
|
CREATE BONSCRN2,UTIL_C
|
|
CREATE BONUS_WAIT_LOOP,PLYR_C|PLYR1_T
|
|
CREATE SCAN_OBJECTS,UTIL_C
|
|
|
|
CALL FIND_AND_REACTIVATE ;REACTIVATE CHEERING ANIMATIONS
|
|
|
|
.if DEBUG
|
|
CALL VERIFY_CODE_INTEGRITY
|
|
.endif
|
|
|
|
LDP @FASTSTKI ;GET PAGE OF STORED ADDRESS
|
|
LDI @FASTSTKI,SP ;LOAD THE ADDRESS INTO SP
|
|
BR COLD_ENTER
|
|
|
|
|
|
.bss SPEEDHIT,1
|
|
|
|
*
|
|
*
|
|
*
|
|
BONSCRN2:
|
|
LDI @DID_TIMED_OUT,R0
|
|
BZ DOREG3A
|
|
LDI 0,R0 ;ELAPSED TIME OF 0 = DID NOT FINISH
|
|
STI R0,@ETIME
|
|
DOREG3A LDI @STOPWATCH,R0
|
|
STI R0,@ETIME
|
|
|
|
*ELP CHANGE
|
|
;TURN ON LINK HERE... ALL LISTEN
|
|
;
|
|
;
|
|
CALL CLRONE ;CAN NOW BE DUAL PLAYER
|
|
|
|
*ELP END CHANGE
|
|
|
|
|
|
CLRI R0
|
|
STI R0,@START_HIT ;----------------------------------
|
|
|
|
|
|
CREATE MOVEOUT_HUD_EQUIP,UTIL_C
|
|
|
|
;Wait for sound board to reset
|
|
;
|
|
CNR_ENTER
|
|
LDP @IN_RESET_MODE
|
|
LDI @IN_RESET_MODE,R0
|
|
SETDP
|
|
BZ CONTINUE
|
|
SLEEP 1
|
|
BU CNR_ENTER
|
|
CONTINUE
|
|
|
|
.bss WAS_HEAD2HEAD_ON,1
|
|
LDI @HEAD2HEAD_ON,R0
|
|
STI R0,@WAS_HEAD2HEAD_ON
|
|
|
|
CALL CLEAR_LINK ;WE ARE NOW *NOT* LINKED
|
|
SOND1 MAPTUNE
|
|
|
|
|
|
LDI @DID_TIMED_OUT,R0
|
|
BZ PAPAPA44
|
|
|
|
LDI @POSITION,R0
|
|
CMPI 1,R0
|
|
BNE COOLRET
|
|
LDI @WAS_HEAD2HEAD_ON,R0
|
|
BZ COOLRET
|
|
|
|
LDI 2,R0
|
|
STI R0,@POSITION
|
|
BU COOLRET
|
|
PAPAPA44
|
|
CREATE BACKUP_CAMERA,UTIL_C|BONUS_SCREEN_T
|
|
|
|
SONDFX CROWD1
|
|
; LDI @DID_TIMED_OUT,R0
|
|
; B
|
|
SONDFX CROWDROAR
|
|
SOND1 CHICKCHEER ;CHAN3
|
|
JJDDHH
|
|
|
|
|
|
LDI @POSITION,R0
|
|
CMPI 1,R0
|
|
BNE COOLRET
|
|
|
|
CREATEC FREE_RACE_ANNOUNCE,UTIL_C
|
|
JSRP BABE_TROPHY
|
|
COOLRET
|
|
|
|
|
|
;LAME TEXT EFFECTS
|
|
;
|
|
;
|
|
LDI AR7,AR5
|
|
CREATE BONS_MAXMPH,UTIL_C|TEXTP_T
|
|
CREATE BONS_ETIME,UTIL_C|TEXTP_T
|
|
CREATE BONS_POSITION,UTIL_C|TEXTP_T
|
|
CREATE BONS_RECORDTIME,UTIL_C|TEXTP_T
|
|
CREATE DISPLAY_H2H_WINNER,UTIL_C|TEXTP_T|3
|
|
|
|
LDI @DID_TIMED_OUT,R0
|
|
BNZ NODOHOTTIME
|
|
|
|
CALL INTO_TABLE_P
|
|
BNC NODOHOTTIME
|
|
CMPI 0,R0
|
|
BNE ISREC
|
|
CREATE BONS_HOTTIME_REC,UTIL_C|TEXTP_T
|
|
BU NODOHOTTIME
|
|
ISREC CREATE BONS_HOTTIME,UTIL_C|TEXTP_T
|
|
NODOHOTTIME
|
|
|
|
|
|
;insert show best times here!
|
|
;
|
|
;
|
|
SLEEP 5
|
|
LDI @POSITION,R0
|
|
CMPI 1,R0
|
|
BEQ JJAG
|
|
|
|
LDI 0,R0
|
|
LDI 100,R1
|
|
CALL SET_TRACK_VOL
|
|
SOND1 MAPTUNE
|
|
JJAG
|
|
|
|
SONDFX CROWD1
|
|
|
|
LDI 120-1,AR5
|
|
PAPA45
|
|
LDI @START_HIT,R0
|
|
BNZ PAPA45X
|
|
|
|
SUBI @NFRAMES,AR5
|
|
CMPI 0,AR5
|
|
LDILT 0,AR5
|
|
SLEEP 1
|
|
DBU AR5,PAPA45
|
|
PAPA45X
|
|
|
|
CREATE UNFOLDMAP,UTIL_C
|
|
SLEEP 10
|
|
LDI 1,R0
|
|
STI R0,@UNFOLDFLAG
|
|
SLEEP 30
|
|
|
|
CALL LOAD_FIXED_PALETTES
|
|
|
|
|
|
;THIS RELOADS THE PALETTES THAT WERE USED FOR THE BABES
|
|
.global BABE_PALISTI
|
|
PUSH AR5
|
|
PUSH AR6
|
|
LDI @BABE_PALISTI,AR5
|
|
LDI 4,AR6
|
|
FIXPALLP
|
|
LDI *+AR5,AR2
|
|
CALL PAL_FIND
|
|
BC FIXPAL1
|
|
LDI AR2,R0
|
|
LDI R0,R1
|
|
CALL PAL_OVERWRITE
|
|
FIXPAL1
|
|
NOP *++AR5(2)
|
|
DBU AR6,FIXPALLP
|
|
POP AR6
|
|
POP AR5
|
|
|
|
|
|
|
|
LDL SW_VIEW0|SW_VIEW1|SW_VIEW2|SW_RADIO|SW_4TH|SW_3RD|SW_2ND|SW_1ST,R1
|
|
LDL SW_VIEW1|SW_RADIO|SW_2ND,R2
|
|
|
|
LDI @SWITCHBUTS,R0
|
|
AND R1,R0
|
|
CMPI R2,R0
|
|
BNE NOWAY
|
|
|
|
READADJ ADJ_STEERMIN
|
|
SUBI @_pot0,R0
|
|
ABSI R0
|
|
CMPI 20,R0
|
|
BGT NOWAY
|
|
|
|
LDI RM_USA,R0
|
|
STI R0,@RACE_MODE
|
|
NOWAY
|
|
|
|
|
|
CALL KILL_THE_REANIMATORS ;cheering crowd
|
|
|
|
|
|
LDL shared_PALETTES,AR2
|
|
CALL dealloc_section
|
|
LDL shared_PALETTES,AR2
|
|
CALL alloc_section
|
|
LDL _SECshared,AR2
|
|
CALL LOAD_SECTION_REQ
|
|
|
|
CALL INIT_DRONES ;init DRONE tracker system
|
|
|
|
LDI @RACE_MODE,R0
|
|
CMPI RM_USA,R0
|
|
BNE DDF1
|
|
CREATE SHOWLEG_PROC,UTIL_C|55h
|
|
DDF1
|
|
|
|
SONDFX CC_DIGIT
|
|
|
|
|
|
;SHOW STATISTICS TO DATE
|
|
;
|
|
;
|
|
LDI @BONUS_WAVE,R5
|
|
SUBI 1,R5
|
|
LDI R5,AR0
|
|
MPYI GT_SIZE,AR0
|
|
ADDI @GAMETRAKI,AR0
|
|
|
|
; LDI @MAXMPH,R0
|
|
; STI R0,*+AR0(GT_MAXMPH)
|
|
|
|
LDI 1,R0
|
|
STI R0,*+AR0(GT_POS)
|
|
STI R0,*+AR0(GT_COLLS)
|
|
|
|
LDI @ETIME,R0
|
|
STI R0,*+AR0(GT_ETIME)
|
|
|
|
|
|
|
|
|
|
LDI @RACE_MODE,R0
|
|
CMPI RM_USA,R0
|
|
BNE NOTNIN2
|
|
|
|
|
|
LDI @GAMETRAKI,AR3
|
|
LDI @BUFFERSI,AR4
|
|
CLRI R4
|
|
FLOAT 180,R7 ;Y
|
|
|
|
NXTNAME
|
|
LDI @START_HIT,R0
|
|
BNZ NOTNIN2
|
|
|
|
CALL PLACE_FLAG
|
|
SLEEP 2
|
|
|
|
ADDF 10,R7
|
|
ADDI GT_SIZE,AR3
|
|
INC R4
|
|
CMPI R5,R4
|
|
BLE NXTNAME
|
|
NOTNIN2
|
|
|
|
|
|
;CHECK INITS
|
|
;
|
|
;SLEEP 30 ;Make sure last flag is done
|
|
LDI 20-1,AR5
|
|
PAPA35
|
|
LDI @START_HIT,R0
|
|
BNZ PAPA35X
|
|
SLEEP 1
|
|
DBU AR5,PAPA35
|
|
PAPA35X
|
|
|
|
|
|
;DANGEROUS AND MESSY CODE, BUT
|
|
;WE NEVER TOUCH THE ACTIVE LIST
|
|
;ANYWAY, THEREFORE WE DONT NEED
|
|
;THESE ELEMENTS
|
|
;(OBJ_INIT CALLED IMMEDIATELY NEXT)
|
|
;
|
|
CLRI R0
|
|
STI R0,@OACTIVE
|
|
|
|
|
|
|
|
READAUD ADJ_HIGH_SCORE_ENTRY
|
|
CMPI 0,R0
|
|
BEQ NOENTER
|
|
JSRP ENTER_INITIALS
|
|
LDF @STEERCT,R0 ;STEERING CENTER
|
|
STF R0,@WHEELPOS
|
|
NOENTER
|
|
|
|
|
|
CLRI R0
|
|
STI R0,@NOSWAP ;NO PAGE SWAPPING OFF
|
|
|
|
|
|
|
|
LDI @RACE_MODE,R0
|
|
CMPI RM_USA,R0
|
|
BNE NOTNIN
|
|
LDI @BONUS_WAVE,R0
|
|
CMPI 14,R0
|
|
BEQ CLINTON_SHOW
|
|
NOTNIN
|
|
|
|
CLRI R0
|
|
STI R0,@NOSWAP
|
|
STI R0,@NOLONG_VEHICLES
|
|
|
|
|
|
CLRF R0
|
|
LDP @_CAMERAPOS+X
|
|
STF R0,@_CAMERAPOS+X
|
|
FLOAT -1000,R0
|
|
STF R0,@_CAMERAPOS+Y
|
|
FLOAT -2500,R0
|
|
STF R0,@_CAMERAPOS+Z
|
|
|
|
CLRF R2
|
|
STF R2,@_CAMERARAD+Y
|
|
SETDP
|
|
LDI @CAMERAMATRIXI,AR2
|
|
CALL FIND_YMATRIX
|
|
|
|
|
|
|
|
|
|
;\\++\\ //--//
|
|
; \\++\\ //--//
|
|
; \\++\\ //
|
|
LDI @RACE_MODE,R0
|
|
CMPI RM_USA,R0
|
|
BNE NOT_ATOZ
|
|
|
|
|
|
; CALL CLEANUP_PALS
|
|
|
|
LDI @BONUS_WAVE,AR0
|
|
ADDI @FULLSETUP_TABLEI,AR0
|
|
ISWRP LDI *AR0,R0
|
|
CALLU R0
|
|
NOT_ATOZ
|
|
SLEEP 10
|
|
|
|
LDI 1,R0
|
|
STI R0,@DO_FOLDFLAG
|
|
SLEEP 10
|
|
|
|
|
|
LDI @RACE_MODE,R0
|
|
CMPI RM_USA,R0
|
|
BNE CHOOSE_NEXT_RACE
|
|
|
|
|
|
.globl MOTION_SCREWED
|
|
READAUD AUD_RESET_TOTALLY
|
|
CMPI 0,R0
|
|
BNE MOTION_SCREWED
|
|
|
|
|
|
CREATE SHOWNEXTLEG_PROC,UTIL_C|TEXTP_T
|
|
|
|
LDI @DID_TIMED_OUT,R0 ;IF TIMED OUT THEN YOU MAY NOT GET A FREE RACE
|
|
BNZ NOT1ST
|
|
|
|
LDI @POSITION,R0
|
|
CMPI 1,R0
|
|
BNE NOT1ST
|
|
|
|
READAUD ADJ_FREEGAME
|
|
CMPI 0,R0
|
|
BEQ NOT1ST
|
|
|
|
|
|
LDI @BONUS_WAVE,AR2
|
|
DEC AR2
|
|
ADDI AUD_WIN_GGATE,AR2
|
|
CALL AUDIT_INC
|
|
|
|
INCAUD AUD_TOTAL_FREEGAMES
|
|
|
|
LDI @_MODE,R0
|
|
ANDN MMODE,R0
|
|
OR MINTRO,R0
|
|
STI R0,@_MODE
|
|
|
|
LDI @BONUS_WAVE,R0
|
|
STI R0,@CHOSEN_RACE
|
|
CALL SEND_RACENUM
|
|
|
|
BU FINFIN
|
|
;Has the player made Pole Position? (1)
|
|
;T-> Branch over this Coin Grab
|
|
;F-> Get more coin to continue
|
|
;
|
|
NOT1ST
|
|
|
|
;;; SYNCED INSMORE...
|
|
;;; the difference is that the two machine communicate the time
|
|
;;;
|
|
;;;
|
|
JSRP INSMORE
|
|
|
|
LDI @_MODE,R0
|
|
ANDN MMODE,R0
|
|
OR MINTRO,R0
|
|
STI R0,@_MODE
|
|
|
|
*ELP CHANGE
|
|
; CALL CLRONE ;CAN NOW BE DUAL PLAYER
|
|
*ELP END CHANGE
|
|
|
|
CMPI 1,AR6
|
|
BNE ENDPLAYER
|
|
INCAUD AUD_GAMES_CONTINUES
|
|
CALL HSTDEC
|
|
|
|
LDI @BONUS_WAVE,R0
|
|
STI R0,@CHOSEN_RACE
|
|
CALL SEND_RACENUM
|
|
FINFIN
|
|
|
|
|
|
*ELP CHANGE
|
|
; LDI @_MODE,R0
|
|
; ANDN MINFIN|MWATER,R0
|
|
; STI R0,@_MODE
|
|
*ELP END CHANGE
|
|
|
|
JSRP ISSUE_STARTGAME
|
|
JSRP WAIT_FOR_CHALLENGER
|
|
|
|
|
|
|
|
; /-----RACE MODE ONLY-------
|
|
; |
|
|
; V
|
|
|
|
LDI @BONUS_WAVE,AR2
|
|
MPYI 2,AR2
|
|
ADDI AUD_START_GGATE,AR2
|
|
CALL AUDIT_INC
|
|
|
|
|
|
|
|
CALL TEXT_INIT
|
|
LDI UTIL_C|TEXTP_T,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
|
|
*ELP CHANGE
|
|
LDI @_MODE,R0
|
|
ANDN MINFIN|MWATER,R0
|
|
STI R0,@_MODE
|
|
*ELP END CHANGE
|
|
|
|
|
|
CALL OBJ_INIT
|
|
CALL DYNAOBJ_INIT ;init DYNAMIC OBJECTS
|
|
CALL CARB_INIT ;init CAR BLOCKS
|
|
CALL INIT_RDDEBRIS ;initialize ROAD DEBRIS list(s)
|
|
|
|
|
|
|
|
;;; RE INITIALIZE TRACK...
|
|
;;;
|
|
;;;
|
|
CALL TEXT_INIT
|
|
LDI UTIL_C|TEXTP_T,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
LDI 0,R0
|
|
LDI 255,R1
|
|
CALL SET_TRACK_VOL
|
|
CALL RESUME_TUNE_NT
|
|
|
|
|
|
|
|
|
|
LDI BUT_VIEW2,R0 ;BUTTON OVERWRITE (MAYBE USE MASK IN FUTURE)
|
|
STI R0,@BUTTON_STATUS
|
|
|
|
READAUD ADJ_TIME_TO_START
|
|
MPYI 5,R0
|
|
ADDI 60,R0
|
|
STI R0,@_countdown
|
|
|
|
LDI @_MODE,R0
|
|
ANDN MGO|MMODE,R0
|
|
OR MGAME|MINFIN,R0
|
|
STI R0,@_MODE
|
|
|
|
CREATEC FOLDMAP,UTIL_C
|
|
|
|
|
|
LDI @BONUS_WAVE,AR0
|
|
ADDI @BONUS_POSTLAUNCHI,AR0
|
|
LDI *AR0,R0
|
|
CALLU R0
|
|
|
|
|
|
LDI @NEXT_STARTUP,R0
|
|
STI R0,@STARTSECTION
|
|
CALL BGD_INIT
|
|
|
|
PUSH AR7
|
|
LDI UTIL_C|BACKGRND_T,R0
|
|
LDI -1,R1
|
|
CALL PRC_FIND
|
|
LDI AR0,AR7
|
|
LDI 3,R0
|
|
STI R0,*+AR7(PTIME)
|
|
|
|
LDI PLYR_C|PLYR1_T,R0
|
|
LDI -1,R1
|
|
CALL PRC_FIND
|
|
LDI AR0,AR2
|
|
CALL PRC_FOLLOW
|
|
POP AR7
|
|
|
|
LDI *+AR7(PDATA),R0
|
|
STI R0,@BGNDCOLA
|
|
|
|
LDI 1,R0
|
|
STI R0,@NOAERASE
|
|
CLRI R0
|
|
STI R0,@OHIGH_PRIORITY
|
|
|
|
CREATE WAVEFLAG,UTIL_C|MONKEY_T
|
|
|
|
CLRI R0
|
|
STI R0,@DID_TIMED_OUT
|
|
|
|
CALL INIT_GAMELEG
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*entered into from above (process)
|
|
*
|
|
*
|
|
*
|
|
*
|
|
CLINTON_SHOW:
|
|
LDI RM_SINGLE,R0
|
|
STI R0,@RACE_MODE
|
|
|
|
LDI 1,R0
|
|
STI R0,@DO_FOLDFLAG
|
|
LDI UTIL_C,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
|
|
LDI UTIL_C|TEXTP_T,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
|
|
LDI PLYR_C|PLYR1_T,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
|
|
CALL TEXT_INIT
|
|
|
|
|
|
READAUD ADJ_CLINTON
|
|
CMPI 1,R0
|
|
BNE NOCLINTON
|
|
JSRP HOTTUB_SCENE
|
|
NOCLINTON
|
|
|
|
|
|
;patched from hottub.asm
|
|
;to cure potential lockup when HOTTUB_SCENE
|
|
;is not called.
|
|
;Wed Mar 8 09:52:18 1995
|
|
;
|
|
;
|
|
SLEEP 1
|
|
CALL OBJ_INIT
|
|
CALL INIT_DRONES ;initialize DRONE tracker system
|
|
CALL DYNAOBJ_INIT ;initialize DYNAMIC OBJECTS
|
|
CALL CARB_INIT ;initialize CAR BLOCKS
|
|
CALL INIT_RDDEBRIS ;initialize ROAD DEBRIS list(s)
|
|
|
|
|
|
LDI 1234h,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
|
|
|
|
LDI SPAWNER_C|ANIMATION_T,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
|
|
|
|
LDL dc_shared_PALETTES,AR2
|
|
CALL dealloc_section
|
|
LDL finale_PALETTES,AR2
|
|
CALL dealloc_section
|
|
;
|
|
;
|
|
|
|
|
|
|
|
;>>>insert MAP with time for entire race
|
|
;
|
|
LDI 15,R0
|
|
STI R0,@BONUS_WAVE
|
|
READAUD ADJ_HIGH_SCORE_ENTRY
|
|
CMPI 0,R0
|
|
BEQ NOENTR2
|
|
|
|
JSRP ENTER_INITIALS
|
|
LDF @STEERCT,R0 ;STEERING CENTER
|
|
STF R0,@WHEELPOS
|
|
NOENTR2 CLRI R0
|
|
STI R0,@NOSWAP
|
|
|
|
|
|
CALL OBJ_INIT
|
|
|
|
.globl CLEAR_MAP_PALS
|
|
CALL CLEAR_MAP_PALS
|
|
|
|
|
|
LDI MATTR,R0
|
|
STI R0,@_MODE
|
|
|
|
LDI @POSITION,R0
|
|
CMPI 1,R0
|
|
BNE JAJD
|
|
INCAUD AUD_CREDITS
|
|
INCAUD AUD_WIN_DC
|
|
INCAUD AUD_TOTAL_FREEGAMES
|
|
JAJD
|
|
.globl VANITY_SUB
|
|
JSRP VANITY_SUB
|
|
LDI -2,R0
|
|
STI R0,@_ATTR_MODE
|
|
BU SET_ATTR
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
.globl font18_white
|
|
BLINK_FREEBE:
|
|
SLEEP 5
|
|
LDI 5*18,AR5
|
|
BFLP1
|
|
LDI @_MODE,R4
|
|
AND MMODE,R4
|
|
CMPI MATTR,R4
|
|
LDINE 70,R3
|
|
LDIEQ 125,R3
|
|
|
|
LDINE 256,R2
|
|
LDIEQ 365,R2
|
|
|
|
|
|
FLOAT R2
|
|
FLOAT R3
|
|
LDI 1,RC
|
|
LDL WINT1,AR2
|
|
CALL TEXT_ADDDS
|
|
ORM TXT_CENTER,*+AR0(TEXT_COLOR)
|
|
ORM TXT_CENTER,*+AR1(TEXT_COLOR)
|
|
LDL font18_white,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR0(TEXT_PAL)
|
|
STI R0,*+AR1(TEXT_PAL)
|
|
|
|
CMPI MATTR,R4
|
|
LDINE 90,R3
|
|
LDIEQ 150,R3
|
|
|
|
LDINE 256,R2
|
|
LDIEQ 365,R2
|
|
|
|
|
|
FLOAT R2
|
|
FLOAT R3
|
|
LDI 1,RC
|
|
LDL WINT2,AR2
|
|
CALL TEXT_ADDDS
|
|
ORM TXT_CENTER,*+AR0(TEXT_COLOR)
|
|
ORM TXT_CENTER,*+AR1(TEXT_COLOR)
|
|
LDL font18_white,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR0(TEXT_PAL)
|
|
STI R0,*+AR1(TEXT_PAL)
|
|
|
|
;insert frame rate equalizer
|
|
;
|
|
SLEEP 1
|
|
DBU AR5,BFLP1
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
BACKUP_CAMERA:
|
|
LDI @PLYCBLK,AR0
|
|
LDI *+AR0(CARTRAK),AR2
|
|
LDI *+AR2(OLINK4),AR0
|
|
|
|
LDF *+AR0(OPOSX),R2
|
|
SUBF *+AR2(OPOSX),R2
|
|
LDF *+AR0(OPOSZ),R3
|
|
SUBF *+AR2(OPOSZ),R3
|
|
CALL ARCTANF
|
|
SUBF HALFPI,R0
|
|
LDF R0,R2
|
|
|
|
FLOAT -7500,R0
|
|
ADDF @ZOOMD,R0
|
|
CALL DISTANCE_2D
|
|
|
|
LDF R0,R6
|
|
LDF R1,R7
|
|
|
|
LDP @_CAMERAPOS+X
|
|
ADDF @_CAMERAPOS+X,R6
|
|
ADDF @_CAMERAPOS+Z,R7
|
|
SETDP
|
|
|
|
LDI 30,AR5
|
|
BACKLP
|
|
LDP @_CAMERAPOS+X
|
|
LDF @_CAMERAPOS+X,R0
|
|
LDF @_CAMERAPOS+Z,R1
|
|
|
|
SUBF R0,R6,R2
|
|
SUBF R1,R7,R3
|
|
MPYF 0.02,R2
|
|
MPYF 0.02,R3
|
|
ADDF R0,R2,R0
|
|
ADDF R1,R3,R1
|
|
|
|
STF R0,@_CAMERAPOS+X
|
|
STF R1,@_CAMERAPOS+Z
|
|
|
|
LDF @_CAMERAPOS+Y,R0
|
|
SUBF 10,R0
|
|
STF R0,@_CAMERAPOS+Y
|
|
SETDP
|
|
|
|
SLEEP 1
|
|
DBU AR5,BACKLP
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
.bss DID_TIMED_OUT,1
|
|
*----------------------------------------------------------------------------
|
|
TIMED_OUT:
|
|
LDI 1,R0
|
|
STI R0,@DID_TIMED_OUT
|
|
|
|
INCAUD AUD_GAMES_EXPIRED
|
|
|
|
LDI @BONUS_WAVE,AR2
|
|
ADDI @BONUS_TABLEI,AR2
|
|
LDI *AR2,R0
|
|
CALLU R0
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
KILL_PLYR_SOUNDS:
|
|
LDI 1000,AR2 ;ENGINE RPM IDLE
|
|
CALL SENDSND
|
|
|
|
LDI SKIDB,AR2 ;KILL LOOPERS WHILE SUSPENDED
|
|
CALL KILLSNDFX
|
|
|
|
LDI SKIDC,AR2 ;KILL LOOPERS WHILE SUSPENDED
|
|
CALL KILLSNDFX
|
|
|
|
LDI BRAKSND,AR2
|
|
CALL KILLSNDFX
|
|
|
|
LDI TUNSND,AR2
|
|
CALL KILLSNDFX
|
|
|
|
LDI GRAVELA,AR2
|
|
CALL KILLSNDFX
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
.include ommdfont.pal
|
|
|
|
romdata
|
|
FRA1 .string "FIRST PLACE",0
|
|
FRA2 .string "FREE RACE",0
|
|
.text
|
|
|
|
|
|
CONGRATS .set 4
|
|
CONGRAT_SPEECHI .word CONGRAT_SPEECH
|
|
CONGRAT_SPEECH: .word GL_WOOLAUGH,GL_YEAH,GL_YES,GL_YOUDIDIT
|
|
|
|
|
|
FREE_RACE_ANNOUNCE:
|
|
SOND1 GETREADYTUNE
|
|
|
|
LDI CONGRATS,AR2
|
|
CALL RANDU0
|
|
LDI R0,AR2
|
|
ADDI @CONGRAT_SPEECHI,AR2
|
|
LDI *AR2,AR2
|
|
CALL ONESNDFX
|
|
|
|
|
|
LDI 7,AR5
|
|
FRAL1
|
|
LDI @START_HIT,R0
|
|
BNZ PRC_SUICIDE
|
|
|
|
LDL FRA1,AR2
|
|
FLOAT 256,R2
|
|
FLOAT 100,R3
|
|
LDI 15,RC
|
|
CALL TEXT_ADD
|
|
CALL SET40FONT
|
|
ORM TXT_CENTER,*+AR0(TEXT_COLOR)
|
|
|
|
SLEEP 9
|
|
|
|
LDL FRA2,AR2
|
|
|
|
PUSH AR2
|
|
READAUD ADJ_FREEGAME
|
|
POP AR2
|
|
CMPI 0,R0
|
|
BNE ISFREE
|
|
LDL FRA1,AR2
|
|
ISFREE
|
|
|
|
FLOAT 256,R2
|
|
FLOAT 150,R3
|
|
LDI 15,RC
|
|
CALL TEXT_ADD
|
|
CALL SET40FONT
|
|
ORM TXT_CENTER,*+AR0(TEXT_COLOR)
|
|
SLEEP 10
|
|
DBU AR5,FRAL1
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
LCTSI .word LCTS
|
|
LNLSI .word LNLS
|
|
romdata
|
|
LCTS .string "RACE COMPLETED:",0
|
|
LNLS .string "NEXT RACE:",0
|
|
.text
|
|
*
|
|
*
|
|
SHOWLEG_TIME .set 20+20+50
|
|
*
|
|
*
|
|
SHOWLEG_PROC:
|
|
LDI @BONUS_WAVE,AR2
|
|
DEC AR2
|
|
ADDI @LEG_NAMESI,AR2
|
|
LDI *AR2,AR2
|
|
|
|
FLOAT 256,R2
|
|
FLOAT 300,R3
|
|
LDI SHOWLEG_TIME,RC
|
|
CALL TEXT_ADDDS
|
|
ORM TXT_CENTER,*+AR0(TEXT_COLOR)
|
|
ORM TXT_CENTER,*+AR1(TEXT_COLOR)
|
|
STI AR0,*+AR7(PDATA)
|
|
STI AR1,*+AR7(PDATA+1)
|
|
CALL SET18FONTDS
|
|
|
|
LDI @LCTSI,AR2
|
|
FLOAT 256,R2
|
|
FLOAT 275,R3
|
|
LDI SHOWLEG_TIME,RC
|
|
CALL TEXT_ADDDS
|
|
ORM TXT_CENTER,*+AR0(TEXT_COLOR)
|
|
ORM TXT_CENTER,*+AR1(TEXT_COLOR)
|
|
STI AR0,*+AR7(PDATA+2)
|
|
STI AR1,*+AR7(PDATA+3)
|
|
CALL SET18FONTDS
|
|
|
|
|
|
|
|
FLOAT -100,R6
|
|
LDI 20,AR5 ;20
|
|
SLLP1 FLOAT 256,R0
|
|
SUBF R6,R0
|
|
MPYF 0.2,R0
|
|
ADDF R0,R6
|
|
|
|
LDI *+AR7(PDATA+1),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+3),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
|
|
LDF R6,R0
|
|
ADDF 3,R0
|
|
LDI *+AR7(PDATA),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+2),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
SLEEP 1
|
|
DBU AR5,SLLP1
|
|
|
|
|
|
;CENTER IT
|
|
;
|
|
FLOAT 256,R6
|
|
LDI *+AR7(PDATA+1),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+3),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
|
|
LDF R6,R0
|
|
ADDF 3,R0
|
|
LDI *+AR7(PDATA),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+2),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
|
|
|
|
SLEEP 35
|
|
|
|
|
|
|
|
LDI 20,AR5
|
|
SLLP1A FLOAT -100,R0
|
|
SUBF R6,R0
|
|
MPYF 0.2,R0
|
|
ADDF R0,R6
|
|
|
|
LDI *+AR7(PDATA+1),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+3),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
|
|
LDF R6,R0
|
|
ADDF 3,R0
|
|
LDI *+AR7(PDATA),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+2),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
SLEEP 1
|
|
DBU AR5,SLLP1A
|
|
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
SHOWNEXTLEG_PROC:
|
|
SLEEP 20
|
|
|
|
|
|
LDI @BONUS_WAVE,AR2
|
|
ADDI @LEG_NAMESI,AR2
|
|
LDI *AR2,AR2
|
|
|
|
FLOAT 256,R2
|
|
FLOAT 50,R3
|
|
LDI SHOWLEG_TIME,RC
|
|
CALL TEXT_ADDDS
|
|
ORM TXT_CENTER,*+AR0(TEXT_COLOR)
|
|
ORM TXT_CENTER,*+AR1(TEXT_COLOR)
|
|
STI AR0,*+AR7(PDATA)
|
|
STI AR1,*+AR7(PDATA+1)
|
|
CALL SET18FONTDS
|
|
|
|
LDI @LNLSI,AR2
|
|
FLOAT 256,R2
|
|
; FLOAT 275,R3
|
|
FLOAT 25,R3
|
|
LDI SHOWLEG_TIME,RC
|
|
CALL TEXT_ADDDS
|
|
ORM TXT_CENTER,*+AR0(TEXT_COLOR)
|
|
ORM TXT_CENTER,*+AR1(TEXT_COLOR)
|
|
STI AR0,*+AR7(PDATA+2)
|
|
STI AR1,*+AR7(PDATA+3)
|
|
CALL SET18FONTDS
|
|
|
|
|
|
|
|
FLOAT 600,R6
|
|
LDI 16,AR5
|
|
SLLP2 FLOAT 256,R0
|
|
SUBF R6,R0
|
|
MPYF 0.25,R0
|
|
ADDF R0,R6
|
|
|
|
LDI *+AR7(PDATA+1),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+3),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
|
|
LDF R6,R0
|
|
ADDF 3,R0
|
|
LDI *+AR7(PDATA),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+2),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
SLEEP 1
|
|
DBU AR5,SLLP2
|
|
|
|
|
|
;CENTER IT
|
|
;
|
|
FLOAT 256,R6
|
|
LDI *+AR7(PDATA+1),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+3),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
|
|
LDF R6,R0
|
|
ADDF 3,R0
|
|
LDI *+AR7(PDATA),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+2),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
|
|
|
|
SLEEP 50
|
|
|
|
|
|
LDI 215,AR5
|
|
SLLP2A FLOAT 600,R0
|
|
SUBF R6,R0
|
|
MPYF 0.25,R0
|
|
ADDF R0,R6
|
|
|
|
LDI *+AR7(PDATA+1),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+3),AR0
|
|
STF R6,*+AR0(TEXT_POSX)
|
|
|
|
LDF R6,R0
|
|
ADDF 3,R0
|
|
LDI *+AR7(PDATA),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+2),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
SLEEP 1
|
|
DBU AR5,SLLP2A
|
|
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*PARAMETERS
|
|
* R4 INDEX
|
|
*
|
|
*
|
|
FLAG_POS_TABLEI .word FLAG_POS_TABLE
|
|
romdata
|
|
FLAG_POS_TABLE
|
|
.word 36,133 ;GGpark
|
|
.word 39,147 ;Sanfran
|
|
.word 40,156 ;I101
|
|
.word 43,166 ;Redwds
|
|
.word 63,192 ;BeverlyHils
|
|
.word 76,200 ;LA freeway
|
|
.word 88,190 ;Deathvalley
|
|
.word 128,198 ;Arizona
|
|
.word 257,106 ;Mount Rush
|
|
.word 302,125 ;Iowa
|
|
.word 334,125 ;Chicago
|
|
.word 358,134 ;Indiana
|
|
.word 412,129 ;Appalachia
|
|
.word 434,140 ;Washington
|
|
.text
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
*PARAMETERS
|
|
* R4 INDEX
|
|
*
|
|
PLACE_FLAG:
|
|
PUSH AR0
|
|
PUSH AR4
|
|
PUSH R2
|
|
PUSH R3
|
|
PUSH RC
|
|
LDI R4,AR0
|
|
MPYI 2,AR0
|
|
ADDI @FLAG_POS_TABLEI,AR0
|
|
LDI *AR0,R2
|
|
SUBI 256,R2
|
|
LDI *+AR0,R3
|
|
SUBI 200-20,R3
|
|
LDI 367,RC
|
|
LDL star,AR2
|
|
CALL OBJ_QMAKE
|
|
|
|
LDIL O_3DROT,R0
|
|
OR O_NOUROT|O_NOUNIV,R0
|
|
OR *+AR0(OFLAGS),R0
|
|
STI R0,*+AR0(OFLAGS)
|
|
|
|
LDI AR0,AR2
|
|
CALL OBJ_INSERTHP
|
|
|
|
|
|
LDI AR0,AR4
|
|
LDF *+AR4(OPOSX),R0
|
|
STF R0,*+AR4(OVELX)
|
|
LDF *+AR4(OPOSY),R0
|
|
STF R0,*+AR4(OVELY)
|
|
|
|
LDF 100,R0
|
|
CALL SFRAND
|
|
STF R0,*+AR4(OPOSX)
|
|
|
|
FLOAT -230,R0
|
|
STF R0,*+AR4(OPOSY)
|
|
CREATEC PLACE_FLAG_PROC,UTIL_C
|
|
|
|
|
|
SONDFX MAPSTAR2
|
|
|
|
POP RC
|
|
POP RC
|
|
POP R2
|
|
POP AR4
|
|
POP AR0
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
*PARAMETERS
|
|
* AR4 OBJECT
|
|
* AR4 *+(OVEL) POSITION TO ACHIEVE
|
|
*
|
|
*
|
|
PLACE_FLAG_PROC:
|
|
LDI 12,AR5
|
|
PFPLP
|
|
LDF *+AR4(OVELX),R0
|
|
SUBF *+AR4(OPOSX),R0
|
|
MPYF 0.25,R0
|
|
ADDF *+AR4(OPOSX),R0
|
|
STF R0,*+AR4(OPOSX)
|
|
|
|
LDF *+AR4(OVELY),R1
|
|
SUBF *+AR4(OPOSY),R1
|
|
MPYF 0.25,R1
|
|
ADDF *+AR4(OPOSY),R1
|
|
STF R1,*+AR4(OPOSY)
|
|
|
|
MPYF R1,R1
|
|
MPYF R0,R0
|
|
ADDF R1,R0
|
|
CMPF 25,R0
|
|
BLT ALLDN7
|
|
|
|
|
|
LDF *+AR4(ORADZ),R2
|
|
ADDF 0.1,R2
|
|
STF R2,*+AR4(ORADZ)
|
|
LDI AR4,AR2
|
|
ADDI OMATRIX,AR2
|
|
CALL FIND_ZMATRIX
|
|
|
|
SLEEP 1
|
|
DBU AR5,PFPLP
|
|
|
|
ALLDN7
|
|
LDF *+AR4(OVELX),R0
|
|
STF R0,*+AR4(OPOSX)
|
|
|
|
LDF *+AR4(OVELY),R0
|
|
STF R0,*+AR4(OPOSY)
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
romdata
|
|
BT1 .string "AVERAGE MPH:",0
|
|
BT1A .string "AVERAGE KPH:",0
|
|
.text
|
|
BONS_MAXMPH:
|
|
|
|
LDL BT1,R6
|
|
LDL BT1A,R7
|
|
|
|
READAUD ADJ_MPHORKPM
|
|
CMPI 0,R0
|
|
LDIEQ R6,AR2
|
|
LDINE R7,AR2
|
|
|
|
FLOAT 0,R2
|
|
FLOAT 20,R3
|
|
LDI 999,RC
|
|
CALL TEXT_ADDDS
|
|
STI AR0,*+AR7(PDATA+10) ;SHADOW
|
|
STI AR1,*+AR7(PDATA+11) ;ACTUAL
|
|
|
|
LDI *+AR0(TEXT_COLOR),R0
|
|
OR TXT_RIGHT,R0
|
|
STI R0,*+AR0(TEXT_COLOR)
|
|
LDI *+AR1(TEXT_COLOR),R0
|
|
OR TXT_RIGHT,R0
|
|
STI R0,*+AR1(TEXT_COLOR)
|
|
|
|
|
|
READAUD ADJ_MPHORKPM
|
|
CMPI 0,R0
|
|
BEQ ISMPHT
|
|
|
|
LDF @MAXMPH,R0
|
|
MPYF 1.6666,R0
|
|
BU KJL
|
|
|
|
ISMPHT LDF @MAXMPH,R0
|
|
KJL LDF @MAXMPH_COUNT,R1
|
|
CALL DIV_F
|
|
FIX R0,R2
|
|
LDI AR7,AR2
|
|
ADDI PDATA,AR2
|
|
CALL _itoa
|
|
FLOAT 512,R2
|
|
FLOAT 20,R3
|
|
LDI 999,RC
|
|
CALL TEXT_ADDDS
|
|
CALL SETLGDIGITFONTDS
|
|
STI AR0,*+AR7(PDATA+12)
|
|
STI AR1,*+AR7(PDATA+13)
|
|
.globl dnums_amber
|
|
LDL dnums_amber,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR0(TEXT_PAL)
|
|
STI R0,*+AR1(TEXT_PAL)
|
|
|
|
|
|
CLRF R0
|
|
STF R0,@MAXMPH
|
|
STF R0,@MAXMPH_COUNT
|
|
|
|
|
|
ENTER_HERE:
|
|
LDI 31,AR5
|
|
CLRF R6 ;FIXED STF
|
|
FLOAT 512,R7 ;FLT STF
|
|
BML
|
|
FLOAT 250,R0
|
|
SUBF R6,R0
|
|
MPYF 0.1,R0
|
|
|
|
|
|
CMPF 8,R0
|
|
LDFLT 8,R0
|
|
|
|
|
|
ADDF R0,R6
|
|
|
|
FLOAT 250,R0
|
|
CMPF R0,R6
|
|
LDFGT R0,R6
|
|
|
|
LDI *+AR7(PDATA+10),AR0
|
|
LDI *+AR7(PDATA+11),AR1
|
|
STF R6,*+AR1(TEXT_POSX)
|
|
LDF R6,R0
|
|
ADDF 3,R0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
|
|
|
|
FLOAT 260,R0
|
|
SUBF R7,R0
|
|
MPYF 0.20,R0
|
|
|
|
CMPF -12,R0
|
|
LDFLT -12,R0
|
|
|
|
ADDF R0,R7
|
|
|
|
FLOAT 260,R0
|
|
CMPF R0,R7
|
|
LDFLT R0,R7
|
|
|
|
LDI *+AR7(PDATA+12),AR0
|
|
LDI *+AR7(PDATA+13),AR1
|
|
STF R7,*+AR1(TEXT_POSX)
|
|
LDF R7,R0
|
|
ADDF 3,R0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
|
|
SLEEP 1
|
|
DBU AR5,BML
|
|
|
|
FLOAT 250,R0
|
|
FLOAT 253,R1
|
|
FLOAT 260,R2
|
|
FLOAT 263,R3
|
|
|
|
LDI *+AR7(PDATA+10),AR0
|
|
STF R1,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+11),AR0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
|
|
LDI *+AR7(PDATA+12),AR0
|
|
STF R3,*+AR0(TEXT_POSX)
|
|
LDI *+AR7(PDATA+13),AR0
|
|
STF R2,*+AR0(TEXT_POSX)
|
|
|
|
|
|
KKL SLEEP 1
|
|
LDI @DO_FOLDFLAG,R0
|
|
BZ KKL
|
|
|
|
SONDFX WIPE2
|
|
|
|
LDI 31,AR5
|
|
FLOAT 250,R6 ;FIXED STF
|
|
FLOAT 260,R7 ;FLT STF
|
|
BML2
|
|
FLOAT -20,R0
|
|
SUBF R6,R0
|
|
MPYF 0.1,R0
|
|
ADDF R0,R6
|
|
LDI *+AR7(PDATA+10),AR0
|
|
LDI *+AR7(PDATA+11),AR1
|
|
STF R6,*+AR1(TEXT_POSX)
|
|
LDF R6,R0
|
|
ADDF 3,R0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
|
|
FLOAT 532,R0
|
|
SUBF R7,R0
|
|
MPYF 0.1,R0
|
|
ADDF R0,R7
|
|
LDI *+AR7(PDATA+12),AR0
|
|
LDI *+AR7(PDATA+13),AR1
|
|
STF R7,*+AR1(TEXT_POSX)
|
|
LDF R7,R0
|
|
ADDF 3,R0
|
|
STF R0,*+AR0(TEXT_POSX)
|
|
|
|
SLEEP 1
|
|
DBU AR5,BML2
|
|
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
romdata
|
|
RT2 .string "RECORD TIME:",0 ;coded time format
|
|
.text
|
|
|
|
BONS_RECORDTIME:
|
|
SLEEP 5
|
|
LDL RT2,AR2
|
|
FLOAT 0,R2
|
|
FLOAT 120,R3
|
|
LDI 999,RC
|
|
CALL TEXT_ADDDS
|
|
CALL SET18FONTDS
|
|
|
|
LDI *+AR0(TEXT_COLOR),R0
|
|
OR TXT_RIGHT,R0
|
|
STI R0,*+AR0(TEXT_COLOR)
|
|
LDI *+AR1(TEXT_COLOR),R0
|
|
OR TXT_RIGHT,R0
|
|
STI R0,*+AR1(TEXT_COLOR)
|
|
|
|
STI AR0,*+AR7(PDATA+10)
|
|
STI AR1,*+AR7(PDATA+11)
|
|
|
|
|
|
|
|
LDI @BONUS_WAVE,R6
|
|
DEC R6
|
|
LDI 0,R7
|
|
CALL GET_TABLE_ADDR
|
|
CALL TABLE_ENTRY_READ
|
|
;
|
|
;R0 time code
|
|
;R1 init 1
|
|
;R2 init 2
|
|
;R3 init 3
|
|
;
|
|
LDI AR7,AR1
|
|
ADDI PDATA+14,AR1
|
|
|
|
AND 0FFh,R1
|
|
AND 0FFh,R2
|
|
AND 0FFh,R3
|
|
LS 8,R2
|
|
OR R2,R1
|
|
LS 16,R3
|
|
OR R3,R1
|
|
LDI ' ',R2
|
|
LS 24,R2
|
|
OR R2,R1
|
|
STI R1,*AR1
|
|
LDI ' ',R2
|
|
STI R2,*+AR1
|
|
|
|
LDI AR7,AR2
|
|
ADDI PDATA,AR2
|
|
CALL TIME2STR
|
|
|
|
LDI AR1,AR0
|
|
LDI AR2,AR1
|
|
LDI AR0,AR2
|
|
CALL STRCAT ;AR1 from above
|
|
|
|
|
|
FLOAT 512,R2
|
|
FLOAT 120,R3
|
|
LDI 999,RC
|
|
CALL TEXT_ADDDS
|
|
CALL SET18FONTDS
|
|
STI AR0,*+AR7(PDATA+12)
|
|
STI AR1,*+AR7(PDATA+13)
|
|
|
|
|
|
BU ENTER_HERE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
romdata
|
|
HH1 .string "NEW RECORD TIME",0
|
|
HH2 .string "NEW HOT TIME",0
|
|
.text
|
|
BONS_HOTTIME_REC:
|
|
CLRI R4 ;ON OFF TOGGLE
|
|
SLEEP 5
|
|
LDL HH1,AR2
|
|
BU BLAHB
|
|
|
|
BONS_HOTTIME:
|
|
CLRI R4 ;ON OFF TOGGLE
|
|
SLEEP 5
|
|
LDL HH2,AR2
|
|
BLAHB STI AR2,*+AR7(PDATA)
|
|
FLOAT 256,R2
|
|
FLOAT (150+300),R3
|
|
LDI 999,RC
|
|
CALL TEXT_ADDDS
|
|
|
|
LDI *+AR0(TEXT_COLOR),R0
|
|
OR TXT_CENTER,R0
|
|
STI R0,*+AR0(TEXT_COLOR)
|
|
LDI *+AR1(TEXT_COLOR),R0
|
|
OR TXT_CENTER,R0
|
|
STI R0,*+AR1(TEXT_COLOR)
|
|
|
|
LDI AR0,AR4
|
|
LDI AR1,AR5
|
|
|
|
.globl font18_white
|
|
LDL font18_white,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR4(TEXT_PAL)
|
|
STI R0,*+AR5(TEXT_PAL)
|
|
|
|
|
|
BONHTLP
|
|
|
|
LDF *+AR4(TEXT_POSY),R0
|
|
FLOAT 152,R1
|
|
LDF R1,R3
|
|
|
|
SUBF R0,R1,R1
|
|
MPYF 0.1,R1
|
|
ADDF R0,R1
|
|
|
|
CMPF R3,R1
|
|
LDFLT R3,R1
|
|
STF R1,*+AR4(TEXT_POSY)
|
|
|
|
|
|
LDF *+AR5(TEXT_POSY),R0
|
|
FLOAT 150,R1
|
|
LDF R1,R3
|
|
SUBF R0,R1,R1
|
|
MPYF 0.1,R1
|
|
ADDF R0,R1
|
|
|
|
CMPF R3,R1
|
|
LDFLT R3,R1
|
|
STF R1,*+AR5(TEXT_POSY)
|
|
|
|
CALL TEXTTOG
|
|
|
|
|
|
SLEEP 1
|
|
LDI @DO_FOLDFLAG,R0
|
|
BZ BONHTLP
|
|
|
|
|
|
BONHTLP2
|
|
|
|
LDF *+AR4(TEXT_POSY),R0
|
|
FLOAT 152+300,R1
|
|
LDF R1,R3
|
|
|
|
SUBF R0,R1,R1
|
|
MPYF 0.1,R1
|
|
ADDF R0,R1
|
|
|
|
CMPF R3,R1
|
|
LDFGT R3,R1
|
|
STF R1,*+AR4(TEXT_POSY)
|
|
|
|
|
|
LDF *+AR5(TEXT_POSY),R0
|
|
FLOAT 150+300,R1
|
|
LDF R1,R3
|
|
SUBF R0,R1,R1
|
|
MPYF 0.1,R1
|
|
ADDF R0,R1
|
|
|
|
CMPF R3,R1
|
|
LDFGT R3,R1
|
|
STF R1,*+AR5(TEXT_POSY)
|
|
|
|
SLEEP 1
|
|
BU BONHTLP2
|
|
|
|
BADA LDI 1,R0
|
|
STI R0,*+AR4(TEXT_TIKS)
|
|
STI R0,*+AR5(TEXT_TIKS)
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
*----------------------------------------------------------------------------
|
|
TEXTTOG:
|
|
|
|
ADDI @NFRAMES,R4
|
|
CMPI 30,R4
|
|
BLT ISOFF
|
|
|
|
CMPI 35,R4
|
|
BLT GAGA
|
|
CLRI R4
|
|
GAGA
|
|
|
|
LDL NULLSTR5,R0
|
|
BU IBOIBO
|
|
ISOFF LDI *+AR7(PDATA),R0
|
|
IBOIBO STI R0,*+AR4(TEXT_PTR)
|
|
STI R0,*+AR5(TEXT_PTR)
|
|
RETS
|
|
romdata
|
|
NULLSTR5 .string " ",0
|
|
.text
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
romdata
|
|
BT2 .string "ELAPSED TIME:",0 ;coded time format
|
|
.text
|
|
|
|
BONS_ETIME:
|
|
SLEEP 5
|
|
LDL BT2,AR2
|
|
FLOAT 0,R2
|
|
FLOAT 50,R3
|
|
LDI 999,RC
|
|
CALL TEXT_ADDDS
|
|
CALL SET18FONTDS
|
|
|
|
LDI *+AR0(TEXT_COLOR),R0
|
|
OR TXT_RIGHT,R0
|
|
STI R0,*+AR0(TEXT_COLOR)
|
|
LDI *+AR1(TEXT_COLOR),R0
|
|
OR TXT_RIGHT,R0
|
|
STI R0,*+AR1(TEXT_COLOR)
|
|
|
|
STI AR0,*+AR7(PDATA+10)
|
|
STI AR1,*+AR7(PDATA+11)
|
|
|
|
|
|
LDI @DID_TIMED_OUT,R0
|
|
BZ DOREG3
|
|
|
|
LDI 0,R0 ;ELAPSED TIME OF 0 = DID NOT FINISH
|
|
STI R0,@ETIME
|
|
|
|
LDL EXPIRED,AR2
|
|
BU LREG3
|
|
|
|
DOREG3 LDI @STOPWATCH,R0
|
|
STI R0,@ETIME
|
|
LDI AR7,AR2
|
|
ADDI PDATA,AR2
|
|
CALL TIME2STR
|
|
|
|
LREG3
|
|
FLOAT 512,R2
|
|
FLOAT 50,R3
|
|
LDI 999,RC
|
|
CALL TEXT_ADDDS
|
|
CALL SET18FONTDS
|
|
STI AR0,*+AR7(PDATA+12)
|
|
STI AR1,*+AR7(PDATA+13)
|
|
|
|
|
|
.globl font18_white
|
|
LDL font18_white,AR2
|
|
CALL PAL_FIND_RAW
|
|
STI R0,*+AR0(TEXT_PAL)
|
|
STI R0,*+AR1(TEXT_PAL)
|
|
|
|
CLRI R0
|
|
STI R0,@STOPWATCH
|
|
BU ENTER_HERE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
romdata
|
|
BT3 .string "POSITION:",0 ;coded time format
|
|
.text
|
|
BONS_POSITION:
|
|
|
|
LDI @POSITION,AR4
|
|
DEC AR4
|
|
MPYI 3,AR4
|
|
ADDI @POS_TABLEI,AR4
|
|
|
|
LDI -60,R5 ;YPOS
|
|
|
|
LDI 40,AR6
|
|
BPL1
|
|
FLOAT R5,R0
|
|
LDF R0,R1
|
|
FLOAT 138-60,R2
|
|
SUBRF R2,R0
|
|
MPYF 0.2,R0
|
|
ADDF R1,R0
|
|
FIX R0,R5
|
|
|
|
LDI *AR4,AR2
|
|
LDI 220,R2
|
|
ADDI *+AR4(2),R2
|
|
LDI R5,R3
|
|
LDI TM|ZS,R4
|
|
CALL BLTMOD2D_DS
|
|
|
|
LDI *+AR4(1),AR2
|
|
LDI 220+35,R2
|
|
LDI R5,R3
|
|
LDI TM|ZS,R4
|
|
CALL BLTMOD2D_DS
|
|
SLEEP 1
|
|
DBU AR6,BPL1
|
|
|
|
|
|
|
|
LDI 158,AR6
|
|
BPL2
|
|
LDI *AR4,AR2
|
|
LDI 220,R2
|
|
ADDI *+AR4(2),R2
|
|
LDI R5,R3
|
|
LDI TM|ZS,R4
|
|
CALL BLTMOD2D_DS
|
|
|
|
LDI *+AR4(1),AR2
|
|
LDI 220+35,R2
|
|
LDI R5,R3
|
|
LDI TM|ZS,R4
|
|
CALL BLTMOD2D_DS
|
|
SLEEP 1
|
|
|
|
LDI @DO_FOLDFLAG,R0
|
|
BZ BPL2
|
|
|
|
|
|
LDI 40,AR6
|
|
BPL3
|
|
FLOAT R5,R0
|
|
LDF R0,R1
|
|
SUBRF -60,R0
|
|
MPYF 0.2,R0
|
|
ADDF R1,R0
|
|
FIX R0,R5
|
|
|
|
LDI *AR4,AR2
|
|
LDI 220,R2
|
|
ADDI *+AR4(2),R2
|
|
LDI R5,R3
|
|
LDI TM|ZS,R4
|
|
CALL BLTMOD2D_DS
|
|
|
|
LDI *+AR4(1),AR2
|
|
LDI 220+35,R2
|
|
LDI R5,R3
|
|
LDI TM|ZS,R4
|
|
CALL BLTMOD2D_DS
|
|
SLEEP 1
|
|
DBU AR6,BPL3
|
|
DIE
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
KILL_THEM:
|
|
;KILL ALL DRONES
|
|
LDI DRONE_C,R0
|
|
LDI CLASS_M,R1
|
|
CALL PRC_KILLALL
|
|
|
|
;TRAFFIC
|
|
LDI SPAWNER_C,R0
|
|
LDI CLASS_M,R1
|
|
CALL PRC_KILLALL
|
|
|
|
;WAVEFLAG, MONKEYs
|
|
LDI UTIL_C|MONKEY_T,R0
|
|
LDI CLASS_M|TYPE_M,R1
|
|
CALL PRC_KILLALL
|
|
|
|
;LBACK_WATCH
|
|
LDI UTIL_C|BACKGRND_T,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
|
|
CALL DELETE_SPLAT
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
FIND_AND_REACTIVATE:
|
|
PUSH AR0
|
|
PUSH AR4
|
|
|
|
LDI @OACTIVE,AR0
|
|
FARLP LDI *AR0,R0
|
|
BZ FARX
|
|
|
|
LDI R0,AR0
|
|
LDI *+AR0(OID),R0
|
|
CMPI RDDEBRIS_C|TSC_IGNORE|TSC_DUDE_S,R0
|
|
BNE NOTRUT
|
|
|
|
LDI AR0,AR4
|
|
.globl RUT_ANI
|
|
CALL RUT_ANI
|
|
BU FARLP
|
|
|
|
NOTRUT CMPI RDDEBRIS_C|TSC_IGNORE|TSC_BABE_S,R0
|
|
BNE FARLP
|
|
LDI AR0,AR4
|
|
|
|
.global HUNGH_ANI_REENTER
|
|
CALL HUNGH_ANI_REENTER
|
|
|
|
BU FARLP
|
|
|
|
FARX
|
|
POP AR4
|
|
POP AR0
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
KILL_THE_REANIMATORS:
|
|
LDI SPAWNER_C|ANIMATION_T|7,R0
|
|
LDI -1,R1
|
|
CALL PRC_KILLALL
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
.END
|
|
|