4457 lines
90 KiB
NASM
4457 lines
90 KiB
NASM
;******************************************************************************
|
||
;** **
|
||
;** P I N B A L L F A N T A S I E S **
|
||
;** TABLE 3: BILLION DOLLAR GAME SHOW **
|
||
;** **
|
||
;******************************************************************************
|
||
INCLUDELIB BILLION
|
||
INCLUDELIB CLEAR
|
||
flipgfxfilesize=220
|
||
FIRSTMASK_GFXADR=BPL*(SPLH+BANH)
|
||
GFXADR_FOR_FLIP_ANIM_DATA=FIRSTMASK_GFXADR+BPL*40
|
||
springsourceadr=GFXADR_FOR_FLIP_ANIM_DATA-3*23 ;3*23 ŽR F™R FJŽDERNS GFX
|
||
springdestadr=(splh+556)*bpl+304/4
|
||
DATAFLIP SEGMENT PARA PUBLIC 'DATA'
|
||
MAXDIFS1=114+5
|
||
MAXDIFS2=114+5
|
||
MAXDIFS3=137+5
|
||
maxdifs=137
|
||
if create_flip_data
|
||
LEFTFLIPTAB DW 42*(2*MAXDIFS1) DUP (1)
|
||
RIGHTFLIPTAB DW 42*(2*MAXDIFS2) DUP (1)
|
||
LEFTFLIP2TAB DW 26*(2*MAXDIFS3) DUP (1)
|
||
TEMPTAB DW 2*MAXDIFS DUP (1)
|
||
else
|
||
extrn leftfliptab,rightfliptab,leftflip2tab
|
||
endif
|
||
DATAFLIP ENDS
|
||
DATA SEGMENT PARA PUBLIC 'DATA'
|
||
ASSUME CS:CODE,DS:DATA
|
||
BALL_LOCK_YPOS EQU 537
|
||
|
||
MODUL DB 'TABLE3.MOD',0,'$'
|
||
if create_flip_data
|
||
flipdatafil_L DB 'flipdata.3L',0
|
||
flipdatafil_R DB 'flipdata.3R',0
|
||
flipdatafil_L2 DB 'flipdata.3L2',0
|
||
flipgfxfil DB 'flipgfx.3',0
|
||
flipSTRUCfil DB 'flipSTRU.3',0
|
||
endif
|
||
hi_score_file db 'table3.hi',0
|
||
hi_score_list db 0,0,0, 0,5,0, 0,0,0, 0,0,0,'TSP',0
|
||
db 0,0,0, 0,2,5, 0,0,0, 0,0,0,'ANY',0
|
||
db 0,0,0, 0,1,0, 0,0,0, 0,0,0,'J L',0
|
||
db 0,0,0, 0,0,5, 0,0,0, 0,0,0,'ICE',0
|
||
;******************************************************************************
|
||
;******************************** DEFINITIONS *********************************
|
||
;******************************************************************************
|
||
TOTCENT=16
|
||
|
||
;******************** SYSTEM **********************
|
||
MAX_NO_OF_LIGHTS_FLASHING=30
|
||
MAX_NO_OF_WAIT_SYNCS=50
|
||
NOOFTASKS=20
|
||
RGB_BUFFER_LEN=500
|
||
|
||
;******************** FLIPPER & BALL **********************
|
||
BALLH=16
|
||
BANH=576
|
||
STARTX=310-BALLH/2+2
|
||
STARTY=543-BALLH/2
|
||
|
||
F3TOP=176
|
||
F3HEIGHT=53
|
||
|
||
;******************** FLASHING **********************
|
||
MATRIXlo=153
|
||
MATRIXhi=114
|
||
MATRIXCOLS=matrixhi*256+matrixlo
|
||
PARTY_ON_SPEED=3 ;?
|
||
SHOOT_AGAIN_SPEED=3 ;?
|
||
BIT2COL DB 0,0,0,0,6,1,41,0 ;flipper f„rgerna
|
||
|
||
;******************** GAME TIMING ********************
|
||
LM_TIME=10*60
|
||
TV_Time=4*60
|
||
BOAT_Time=10*60
|
||
HOUSE_Time=10*60
|
||
PLANE_Time=10*60
|
||
SJP_TIME=5*60
|
||
JP_TIME=25*60
|
||
TRIP_Time=4*60
|
||
CAR_Time=4*60
|
||
cash5_time=11*60 ;cpw!
|
||
MB_time=4*60 ;cpw!
|
||
sfspeed=10
|
||
LOOPS_N_TRAPS DB ?
|
||
PARTYFLASH DB FALSE
|
||
syncflasher db 0
|
||
evendata
|
||
LOOP_MILLION_COUNTER DW 0
|
||
SJP_counter dw 0
|
||
JP_counter dw 0
|
||
MBcounter dw 0
|
||
TVcounter dw 0
|
||
BOATcounter dw 0
|
||
HOUSEcounter dw 0
|
||
PLANEcounter dw 0
|
||
TRIPcounter dw 0
|
||
CARcounter dw 0
|
||
cash5counter dw 0
|
||
nextSPINtime dw ?
|
||
SPINTIMES_HI dw 15 dup(4),5,5,6,7,7,7,7,8,8,8,9,10,10,10,10,11,11,11,11,12,12,14,16,19,22,25,50,-1
|
||
SPINTIMES dw 15 dup(4),5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,10,10,12,14,17,20,24,32,47,-1
|
||
SPINcounter dw ?
|
||
SPINlight db 0
|
||
rm db 0,0,0,0,0,0,0,0,0,0,0,0
|
||
Tjufemtusen db 0,0,0,0,0,0,0,2,5,0,0,0
|
||
SPINscores db 0,0,0,'*'-'A'+10,'*'-'A'+10,'*'-'A'+10,'*'-'A'+10,2,5,0,0,0 ;rensar tv† f”rsta
|
||
_50K db 0,0,0,0,0,0,0,5,0,0,0,0
|
||
_100K db 0,0,0,0,0,0,1,0,0,0,0,0
|
||
_250K db 0,0,0,0,0,0,2,5,0,0,0,0
|
||
_500K db 0,0,0,0,0,0,5,0,0,0,0,0
|
||
_1000K db 0,0,0,0,0,1,0,0,0,0,0,0
|
||
_2500K db 0,0,0,0,0,2,5,0,0,0,0,0
|
||
_5000K db 0,0,0,0,0,5,0,0,0,0,0,0
|
||
|
||
CASHPOTSTEP DB 0,0,0,0,0,0,0,0,7,1,3,0
|
||
CASHPOTSTEP2 DB 0,0,0,0,0,0,2,2,7,8,3,0
|
||
|
||
;******************** HOLES **********************
|
||
|
||
;******************************************************************************
|
||
;****************************** GENERAL VARS **********************************
|
||
;******************************************************************************
|
||
TURBOMODE DB FALSE
|
||
OFFROADMODE DB FALSE
|
||
TVflag db ?
|
||
BILLION_ENABLED DB ?
|
||
TRIPflag db ?
|
||
CARflag db ?
|
||
HOUSEflag db ?
|
||
BOATflag db ?
|
||
PLANEflag db ?
|
||
top_three db ?
|
||
all_six db ?
|
||
bonusmultiplier db ?
|
||
BONUSTABLE DB 2,3,4,6,8,10 ;DE OLIKA BONUSMULTIPLIERNA
|
||
BONUS_ANIMS DW _bonusx2TS,_bonusx3TS,_bonusx4TS,_bonusx6TS,_bonusx8TS,_bonusx10TS
|
||
SKILLCOUNTER equ cyclonecounterbcd
|
||
ETTA DB 11 DUP(0),1
|
||
HUNDRATUSEN db 0,0,0,0,0,0,1,0,0,0,0,0
|
||
BCDfemmillioner db 0,0,0,0,0,5,0,0,0,0,0,0
|
||
bcd7510 db 0,0,0,0,0,0,0,0,7,5,1,0
|
||
bcd7520 db 0,0,0,0,0,0,0,0,7,5,2,0
|
||
bcd550 db 0,0,0,0,0,0,0,0,0,5,5,0
|
||
bcd570 db 0,0,0,0,0,0,0,0,0,5,7,0
|
||
bcdhundratusen db 0,0,0,0,0,0,1,0,0,0,0,0
|
||
|
||
if create_flip_data
|
||
FlipLInfo LABEL FLIPSTRUC
|
||
DB FlipperL,222
|
||
DW 80,510,4,53,0,142,400,576,95,536,0,(53*8*3)
|
||
DW 0,0,0,20,20*ADJUST,-7*tt/nn,4*tt/nn,-68*tt/nn,48*tt/nn
|
||
DW ?,?,?,?,LEFTFLIPTAB,LEFTFLIPTAB,MAXDIFS1*4
|
||
DW FLIPLEFT
|
||
|
||
DB FlipperR,222
|
||
DW 160,510,4,53,143,320,400,576,204,536,0,(53*8*3)
|
||
DW 0,0,0,20,20*ADJUST,-7*tt/nn,4*tt/nn,-68*tt/nn,48*tt/nn
|
||
DW ?,?,?,?,RIGHTFLIPTAB,RIGHTFLIPTAB,MAXDIFS2*4
|
||
DW FLIPRIGHT
|
||
|
||
DB FlipperR,222
|
||
DW 240,176,3,51,220,320,0,250,286,182,-1,(51*6*3)
|
||
DW 0,0,0,12,12*ADJUST,-9*tt/nn,4*tt/nn,-68*tt/nn,48*tt/nn
|
||
DW ?,?,?,?,LEFTFLIP2TAB,LEFTFLIP2TAB,MAXDIFS3*4
|
||
Dw flipLEFT2
|
||
|
||
DB 0,0 ;END OF FLIPSTRUC
|
||
else
|
||
extrn fliplinfo:flipstruc
|
||
endif
|
||
no_of_ramps equ 5 ;cpw!?!?
|
||
RampTable DW 0,10*tt/nn
|
||
DW 4*tt/nn,13*tt/nn
|
||
DW 0,15*tt/nn
|
||
DW 2,10*tt/nn
|
||
DW 6*tt/nn,14*tt/nn
|
||
DW 0,0 ;ska den va me??? CP!!
|
||
RampTable_hi DW 0,10
|
||
DW 4,13-1
|
||
DW 0,15-1
|
||
DW 2,10-1
|
||
DW 6,14-1
|
||
DW 0,0 ;ska den va me??? CP!!
|
||
|
||
|
||
PLAYER_STRUC STRUC
|
||
P_SIFFRORNA DB 12 DUP(?)
|
||
P_BONUSSIFFRORNA DB 12 DUP(?)
|
||
P_TOP_THREE DB ?
|
||
P_ALL_SIX DB ?
|
||
P_CYCLONECOUNTERBCD DB 12 DUP(?)
|
||
P_CYCLONECOUNTER DW ?
|
||
ENDS
|
||
|
||
PLAYER_AREA DB SIZE PLAYER_STRUC * NO_OF_PLAYERS DUP(?)
|
||
|
||
CYCLONECOUNTER DW ? ;HEXADECIMAL
|
||
cyclonecounterBCD DB ?,?,?, ?,?,?, ?,?,?, ?,?,? ;BCD CODED
|
||
CYCLONESCOREBCD DB ?,?,?, ?,?,?, ?,?,?, ?,?,? ;BCD CODED
|
||
XXBALLE DB ?
|
||
|
||
|
||
;******************************************************************************
|
||
;********************************* EFFECTS ************************************
|
||
;******************************************************************************
|
||
|
||
EFFECT_STRUC STRUC
|
||
THEJINGLE DW ?
|
||
TSCORE DB 0,0,0, 0,0,0, 0,0,0, 0,0,0 ;12 ST!!
|
||
TBONUS DB 0,0,0, 0,0,0, 0,0,0, 0,0,0 ;12 ST!!
|
||
DOTMATRIX DW ?
|
||
ENDS
|
||
SHOOTTHEBALL DW SJINGLE12
|
||
DB 0,0,0, 0,0,0, 0,0,0, 0,0,0 ;CP?
|
||
DB 0,0,0, 0,0,0, 0,0,0, 0,0,0 ;CP?
|
||
DW SHOOTTHEBALLTS
|
||
|
||
BILLION DW SJINGLE1
|
||
DB 0,0,1, 0,0,0, 0,0,0, 0,0,0 ;CP?
|
||
DB 0,0,0, 0,0,5, 0,0,0, 0,0,0 ;CP?
|
||
DW BILLIONTS
|
||
|
||
|
||
;BygelSetA Dc.L 0,SBygel1,0,$50000,0,0,0
|
||
bygelsetA dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
dw 0
|
||
|
||
;BygelSetB Dc.L 0,SBygel2,0,$10000,0,$1020,0
|
||
bygelsetB dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,2,0
|
||
dw 0
|
||
|
||
;BygelSetC Dc.L 0,0,0,$10000,0,$1030,R6
|
||
bygelsetC dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,3,0
|
||
dw 0
|
||
|
||
;BygelSetD Dc.L 0,0,0,$10000,0,$1040,R5
|
||
bygelsetD dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,4,0
|
||
dw 0
|
||
|
||
;BygelSetE Dc.L 0,0,0,$10000,0,$1050,R3
|
||
bygelsetE dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,5,0
|
||
dw 0
|
||
|
||
;BygelSetF Dc.L 0,0,0,$10000,0,$1060,0
|
||
bygelsetF dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,6,0
|
||
dw 0
|
||
|
||
;BygelSetG Dc.L 0,0,0,$10000,0,$1070,0
|
||
bygelsetG dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,7,0
|
||
dw 0
|
||
|
||
;BygelSetH Dc.L 0,0,0,$10000,0,$1080,R4
|
||
bygelsetH dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,8,0
|
||
dw 0
|
||
|
||
;BygelSetI Dc.L 0,0,0,$10000,0,$1090,R1
|
||
bygelsetI dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,9,0
|
||
dw 0
|
||
|
||
;BygelSetJ Dc.L 0,0,0,$10000,0,$1010,R2
|
||
bygelsetJ dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,1,0
|
||
dw 0
|
||
|
||
;BygelSetK Dc.L 0,0,0,$10000,0,$1030,0
|
||
bygelsetK dw 0
|
||
db 0
|
||
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,3,0
|
||
dw 0
|
||
|
||
|
||
youwinTV dw sjingle7
|
||
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
||
DW youwinTVTS
|
||
youwinTrip dw sjingle7
|
||
db 0,0,0, 0,0,1, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
||
DW youwinTRIPTS
|
||
youwinCAR dw sjingle7
|
||
db 0,0,0, 0,0,3, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
||
DW youwinCARTS
|
||
|
||
youwinBOAT dw sjingle7
|
||
db 0,0,0, 0,0,5, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 2,5,0, 0,0,0
|
||
DW youwinBOATTS
|
||
youwinHOUSE dw sjingle7
|
||
db 0,0,0, 0,0,7, 5,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
||
DW youwinHOUSETS
|
||
youwinPLANE dw sjingle7
|
||
db 0,0,0, 0,1,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
||
DW youwinPLANETS
|
||
|
||
moneymania dw sjingle9
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW turboTS
|
||
|
||
moneymania2 dw sjingle9
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW turbo2TS
|
||
|
||
JACKPOT dw sjingle14
|
||
JACKVALUE db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW jackpotTS
|
||
|
||
JACKINIT DB 0,0,0, 0,1,0, 0,0,0, 0,0,0
|
||
|
||
S_JACKPOT dw sjingle15
|
||
db 0,0,0, 0,5,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,1, 0,0,0, 0,0,0
|
||
DW 0
|
||
|
||
EXTRA_BALL dw sjingle11
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW _xtraballTS
|
||
|
||
RAISING_M dw sjingle16
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW rmTS
|
||
|
||
|
||
SKILLSHOt DW sjingle6
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW skillshotTS
|
||
|
||
SKILLSHOt_XB DW sjingle6
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW skillshotXBTS
|
||
|
||
cashpot DW sjingle5
|
||
;dd 0,0 ;cp! fel po„ng&bonus
|
||
CASHPOTVAL db 0,0,0, 0,0,0, 5,0,7, 5,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 5,1,0
|
||
DW cashpotTS
|
||
|
||
cashpot5 DW sjingle18
|
||
;dd 0,0 ;cp! fel po„ng&bonus
|
||
CASHPOT5VAL db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 5,1,0
|
||
DW cashpot5TS
|
||
|
||
TouchB DW 0
|
||
DB 0
|
||
db 0,0,0, 0,0,0, 0,0,7, 5,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 5,3,0
|
||
DW 0
|
||
|
||
TouchC DW 0
|
||
DB 0
|
||
db 0,0,0, 0,0,0, 0,0,7, 5,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 5,7,0
|
||
DW 0
|
||
|
||
dollartouch DW 0
|
||
DB 0
|
||
db 0,0,0, 0,0,0, 0,0,7, 5,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 5,1,0
|
||
DW 0
|
||
|
||
dollartouch2 DW sjingle20
|
||
db 0,0,0, 0,0,0, 0,0,7, 5,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 5,1,0
|
||
DW 0
|
||
|
||
LOOPMILLION DW SJINGLE17
|
||
db 0,0,0, 0,0,1, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,7,5, 0,0,0
|
||
DW millionTS ;CP!
|
||
|
||
TVLIT DW SJINGLE6
|
||
; DD 0,0
|
||
db 0,0,0, 0,0,0, 1,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,5, 0,0,0
|
||
DW TVlitTS
|
||
|
||
TRIPLIT DW SJINGLE6
|
||
; DD 0,0
|
||
db 0,0,0, 0,0,0, 2,5,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,5, 0,0,0
|
||
DW TRIPlitTS
|
||
|
||
CARLIT DW SJINGLE16
|
||
; DD 0,0
|
||
db 0,0,0, 0,0,1, 2,5,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,5, 0,0,0
|
||
DW CARlitTS
|
||
|
||
BOATLIT DW SJINGLE21
|
||
; DD 0,0
|
||
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
||
DW BOATlitTS
|
||
|
||
HOUSElit DW SJINGLE21
|
||
; DD 0,0
|
||
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
||
DW HOUSElitTS
|
||
|
||
PLANELIT DW SJINGLE21
|
||
; DD 0,0
|
||
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
||
DW PLANElitTS
|
||
|
||
LOSTBALL DW S_LOSTBALL
|
||
; DD 0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW ball_lostTS
|
||
if demover
|
||
MINUTE5 DW S_GAMEOVER2
|
||
; DD 0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
||
DW minute5TS
|
||
endif
|
||
BONUS_X DB ?
|
||
TEMPBONUSBCD DB ?,?,?, ?,?,?, ?,?,?, ?,?,?
|
||
|
||
|
||
;******************************************************************************
|
||
;**************************** SOUND STRUCTURES ********************************
|
||
;******************************************************************************
|
||
|
||
sbase Equ 16H
|
||
|
||
SBrickNer DB (sbase+0),18,0,3
|
||
SBrickUpp DB (sbase+1),18,0,3
|
||
SBumper DB (sbase+2),18,0,3
|
||
SFlippUpp DB (sbase+3),22,0,3
|
||
SRinner DB 1ch,18,0,3 ;CP?
|
||
SNewBall DB 1ch,18,0,3
|
||
SKicker DB 1DH,18,0,3
|
||
SFjader DB 1eh,18,0,3
|
||
SGrop DB (sbase+1),18,0,3
|
||
|
||
;***********************************************************************
|
||
|
||
ebase Equ 15
|
||
|
||
SBygel1 DB (ebase-8),10,0,3
|
||
SBygel2 DB (ebase-8),12,0,3
|
||
SBygel3 DB (ebase-8),8,0,3
|
||
SBygel4 DB (ebase+0),17,0,3
|
||
SBygel5 DB (ebase+0),8,0,3
|
||
S_Touch1 DB (ebase-8),14,0,3
|
||
S_Touch2 DB (ebase+0),10,0,3
|
||
S_MultiLjud DB (ebase-8),10,0,3
|
||
S_ScoreLjud DB (ebase+0),18,0,3
|
||
S_TripCount DB (ebase+0),15,0,3
|
||
|
||
;***********************************************************************
|
||
;JINGLE,NOOFPTNS (0=4EVER),PRIORITY
|
||
|
||
;S_MULTILJUD DB 39,1,255 ;255?
|
||
emptyjingle equ 55
|
||
springjingle equ 0
|
||
mainjingle equ 1
|
||
lastmainpos equ 6
|
||
S_Empty DB 55,0,0
|
||
S_Spring DB 0,0,0
|
||
S_Main DB 1,0,0
|
||
S_NoHigh DB 18,0,0
|
||
S_Danger DB 44,1,255
|
||
S_Tilt DB 43,1,255
|
||
S_GameOver DB 28,0,0
|
||
S_GameOver2 DB 7,0,0
|
||
S_LostBall DB 30,1,200
|
||
S_AddPlayer DB 53,0,200
|
||
|
||
;S_AddPlayer2 DB 53,0,200 ;cp!?
|
||
S_AddPlayer2 DB (ebase+0),20,0,3 ;cp!?
|
||
|
||
S_Lock DB 29,1,90 ;Bonus Locked
|
||
S_Mystery DB 49,1,150
|
||
S_EndFig DB 52,1,0
|
||
S_Knacket DB 54,1,230
|
||
S_BEATEN DB 54,1,200 ;CP!!!
|
||
S_BEATEN_XB DB 54,1,200
|
||
|
||
;***********************************************************************
|
||
SJingle1 DB 23,3,200 ;Billion
|
||
SJingle2 DB 27,1,10 ;Multi Bonus
|
||
SJingle3 DB 31,1,10 ;Jackpot Lit
|
||
SJingle4 DB 32,1,10 ;Ball Locked
|
||
SJingle5 DB 33,1,10 ;Cash Pot
|
||
SJingle6 DB 34,1,10 ;Ramp Count
|
||
SJingle7 DB 35,1,10 ;10 Millions
|
||
SJingle8 DB 36,1,10 ;Price lit
|
||
SJingle9 DB 38,0,255 ;Money Mania
|
||
SJingle10 DB 41,1,255 ;Money Mania End
|
||
SJingle11 DB 42,1,120 ;Extra Ball
|
||
SJingle12 DB 47,1,10 ;Billion Lit
|
||
SJingle13 DB 48,1,10 ;Ball Lock Enabled
|
||
SJingle14 DB 50,1,110 ;Jackpot
|
||
SJingle15 DB 51,1,150 ;Super Jackpot
|
||
SJingle16 DB 45,1,110 ;Million Plus
|
||
SJingle17 DB 46,1,50 ;Million
|
||
SJingle18 DB 56,1,10 ;5*Cash Pot
|
||
SJingle19 DB 57,1,110 ;Extra Ball Lit
|
||
SJingle20 DB 58,1,150 ;Spin Wheel Enabled
|
||
SJingle21 DB 59,1,110 ;Price(2) Lit
|
||
SJingle22 DB 60,1,50 ;Ball Trap Open
|
||
|
||
|
||
|
||
;******************************************************************************
|
||
;***************************** DETECTION AREAS ********************************
|
||
;******************************************************************************
|
||
|
||
BumperLista_L DW 44,145,68,169
|
||
DW Bumper1
|
||
DW 74,201,98,226
|
||
DW Bumper2
|
||
DW 11,231,35,247
|
||
DW Bumper3
|
||
BumperLista_U DW -1,-1,-1,-1
|
||
DW -1
|
||
|
||
Bumper2Lista_L DW 50,415,80,470 ;Just to add power
|
||
DW Kicker ;No Scores or effects
|
||
DW 219,415,249,470
|
||
DW Kicker
|
||
Bumper2Lista_U DW -1,-1,-1,-1
|
||
DW -1
|
||
|
||
bumper1 dw sbumper
|
||
db 0,0,0, 0,0,0, 0,0,1, 0,0,0 ;CP!!!
|
||
bumper2 dw sbumper
|
||
db 0,0,0,0,0,0,0,0,1,0,0,0
|
||
bumper3 dw sbumper
|
||
db 0,0,0,0,0,0,0,0,1,0,0,0
|
||
kicker dw skicker
|
||
db 0,0,0,0,0,0,0,0,0,5,0,0
|
||
|
||
ZonLista_L label word
|
||
DW 159,122,180,131
|
||
dw dropa1
|
||
DW 180,127,202,136
|
||
dw dropa2
|
||
DW 139,225,148,244
|
||
dw dropb1
|
||
DW 135,245,144,264
|
||
dw dropb2
|
||
DW 30,264,39,283
|
||
dw dropc1
|
||
DW 26,284,35,303
|
||
dw dropc2
|
||
DW 0
|
||
|
||
AreaLista_L LABEL WORD
|
||
DW 230,280,260,330 ;Game On
|
||
DW Close1
|
||
DW 305,512,320,576 ;Spring Valid
|
||
DW Bygel28
|
||
DW 300,400,320,450 ;Spring invalid?
|
||
DW Open1
|
||
DW 102,23,122,45
|
||
DW Bygel11 ;l„ngst upp i loopen
|
||
DW 190,25,210,45
|
||
DW Bygel12 ;till h”ger i loopen
|
||
DW 103,233,122,254
|
||
DW GropA
|
||
DW 1,520,20,555 ;CP! SKA VA X1=0
|
||
DW GropB
|
||
DW 1,460,25,500 ;CP! SKA VA X1=0
|
||
DW Close4
|
||
DW 25,435,35,445
|
||
DW Bygel3
|
||
DW 263,435,273,445
|
||
DW Bygel4
|
||
DW 5,455,15,465
|
||
DW Bygel1
|
||
DW 284,455,294,465
|
||
DW Bygel2
|
||
DW 120,130,130,140 ;SKILL
|
||
DW Bygel9
|
||
DW 222,104,232,114
|
||
DW Bygel8
|
||
DW 90,152,100,162
|
||
DW Bygel13
|
||
DW 0
|
||
|
||
AreaLista_U LABEL WORD
|
||
DW 1,30,20,50 ;CP! SKA VA X1=0
|
||
DW Bygel6
|
||
DW 45,70,70,95
|
||
DW Close3
|
||
DW 31,78,51,98
|
||
DW Bygel10
|
||
DW 290,90,320,125
|
||
DW Bygel5
|
||
DW 155,75,185,105
|
||
DW Bygel7
|
||
DW 222,104,232,114
|
||
DW Bygel8
|
||
DW 120,130,130,140
|
||
DW Bygel9
|
||
DW 1,50,20,70 ;cp x1 ska va 0
|
||
DW Bygel6b
|
||
COMMENT\
|
||
DW 180,125,205,160
|
||
DW Open2
|
||
DW 25,200,50,255
|
||
DW Close2
|
||
DW 280,360,300,380
|
||
DW Open5
|
||
DW 25,435,35,445
|
||
DW Open3
|
||
\
|
||
DW 0
|
||
|
||
AREALISTA_L_T LABEL WORD
|
||
DW 1,520,20,555 ;CP! SKA VA X1=0
|
||
DW GropB
|
||
DW 0
|
||
|
||
AREALISTA_U_T LABEL WORD
|
||
DW 0
|
||
|
||
|
||
LEVEL1LISTA LABEL WORD ;AREOR SOM ANGER HOPP TILL LEVEL 1 FR<46>N LEVEL 2
|
||
DW 100,70,125,98
|
||
DW 250,70,270,100
|
||
DW 255,85,277,120
|
||
DW 210,110,250,140
|
||
DW 290,125,320,145
|
||
DW 140,125,170,170
|
||
DW 95,155,120,190
|
||
DW 260,450,277,470
|
||
DW 20,450,50,470
|
||
DW 0,525,25,555
|
||
DW -1
|
||
|
||
LEVEL2LISTA LABEL WORD ;AREOR SOM ANGER HOPP TILL LEVEL 2 FR<46>N LEVEL 1
|
||
DW 125,70,150,100
|
||
DW 190,75,230,100
|
||
DW 200,80,240,100
|
||
DW 290,105,320,125
|
||
DW 110,110,140,150
|
||
DW -1
|
||
|
||
|
||
;******************************************************************************
|
||
;************************ DEMO MODE LIGHT FLASHING ****************************
|
||
;******************************************************************************
|
||
|
||
FLASHLIST LABEL WORD
|
||
T2=15
|
||
DW 0,0,T2,T2,1 ;SKILL
|
||
|
||
T2=12
|
||
DW 0,0,T2,T2,6 ;lock
|
||
|
||
T1=6 ;DOLLAR SIGNS
|
||
T2=T1*2
|
||
DW 0,0,T2,T2,2
|
||
DW 0,T2,T2,T2,3
|
||
|
||
T1=6 ;SPIN DOCTORS
|
||
T2=T1*8
|
||
DW 0,T1*0,T2,T2,19
|
||
DW 0,T1*1,T2,T2,20
|
||
DW 0,T1*2,T2,T2,21
|
||
DW 0,T1*3,T2,T2,22
|
||
DW 0,T1*4,T2,T2,23
|
||
DW 0,T1*5,T2,T2,24
|
||
DW 0,T1*6,T2,T2,25
|
||
DW 0,T1*7,T2,T2,26
|
||
|
||
T1=12
|
||
T2=T1
|
||
DW 0,0,T2,T2,33
|
||
DW 0,T1,T2,T2,34
|
||
DW 0,0,T2,T2,35
|
||
DW 0,T1+T1/2,T2,T2,36
|
||
DW 0,T1/2,T2,T2,37
|
||
DW 0,T1+T1/2,T2,T2,38
|
||
DW -1
|
||
|
||
;******************************************************************************
|
||
;**************************** LIGHT PALETTE DATA ******************************
|
||
;******************************************************************************
|
||
|
||
NOOFLIGHTS=38
|
||
|
||
LON1 DB 254 ;skill
|
||
DB 2
|
||
DB 64,0,0
|
||
DB 95,0,0
|
||
|
||
LON2 DB 251 ;$1
|
||
DB 3
|
||
DB 14,70,64
|
||
DB 8,64,58
|
||
DB 14,83,77
|
||
|
||
LON3 DB 248 ;$2
|
||
DB 3
|
||
DB 14,70,64
|
||
DB 8,64,58
|
||
DB 14,83,77
|
||
|
||
LON4 DB 245 ;loop mil
|
||
DB 3
|
||
DB 77,39,0
|
||
DB 83,52,8
|
||
DB 89,70,33
|
||
|
||
LON5 DB 243 ;50M
|
||
DB 2
|
||
DB 58,0,0
|
||
DB 95,0,0
|
||
|
||
LON6 DB 240 ;lock
|
||
DB 3
|
||
DB 70,70,70
|
||
DB 83,83,83
|
||
DB 95,95,95
|
||
|
||
LON7 DB 235 ;”vre bricka
|
||
DB 5
|
||
DB 14,33,52
|
||
DB 8,39,64
|
||
DB 27,52,77
|
||
DB 45,64,77
|
||
DB 70,70,70
|
||
|
||
LON8 DB 230 ;nedre bricka
|
||
DB 5
|
||
DB 14,33,52
|
||
DB 8,39,64
|
||
DB 27,52,77
|
||
DB 45,64,77
|
||
DB 70,70,70
|
||
|
||
LON9 DB 225 ;bricka
|
||
DB 5
|
||
DB 14,33,52
|
||
DB 8,39,64
|
||
DB 27,52,77
|
||
DB 45,64,77
|
||
DB 70,70,70
|
||
|
||
LON10 DB 220 ;bricka
|
||
DB 5
|
||
DB 14,33,52
|
||
DB 8,39,64
|
||
DB 27,52,77
|
||
DB 45,64,77
|
||
DB 70,70,70
|
||
|
||
LON11 DB 218 ;xb
|
||
DB 2
|
||
DB 58,0,0
|
||
DB 95,0,0
|
||
|
||
LON12 DB 215 ;Cx5
|
||
DB 3
|
||
DB 58,58,58
|
||
DB 70,70,70
|
||
DB 95,95,95
|
||
|
||
LON13 DB 213 ;tv
|
||
DB 2
|
||
DB 8,39,64
|
||
DB 39,64,95
|
||
|
||
LON14 DB 211 ;trip
|
||
DB 2
|
||
DB 45,45,45
|
||
DB 70,39,89
|
||
|
||
LON15 DB 209 ;car
|
||
DB 2
|
||
DB 8,39,64
|
||
DB 39,64,95
|
||
|
||
LON16 DB 207 ;jp
|
||
DB 2
|
||
DB 58,0,0
|
||
DB 95,0,0
|
||
|
||
LON17 DB 204 ;col. prize
|
||
DB 3
|
||
DB 58,58,58
|
||
DB 70,70,70
|
||
DB 95,95,95
|
||
|
||
LON18 DB 201 ;spin wheel
|
||
DB 3
|
||
DB 14,33,52
|
||
DB 8,39,64
|
||
DB 27,52,77
|
||
|
||
LON19 DB 199 ;spinindikator
|
||
DB 2
|
||
DB 0,58,27
|
||
DB 0,95,0
|
||
|
||
LON20 DB 197
|
||
DB 2
|
||
DB 0,58,27
|
||
DB 0,95,0
|
||
|
||
LON21 DB 195
|
||
DB 2
|
||
DB 0,58,27
|
||
DB 0,95,0
|
||
|
||
LON22 DB 193
|
||
DB 2
|
||
DB 0,58,27
|
||
DB 0,95,0
|
||
|
||
LON23 DB 191
|
||
DB 2
|
||
DB 0,58,27
|
||
DB 0,95,0
|
||
|
||
LON24 DB 189
|
||
DB 2
|
||
DB 0,58,27
|
||
DB 0,95,0
|
||
|
||
LON25 DB 187
|
||
DB 2
|
||
DB 0,58,27
|
||
DB 0,95,0
|
||
|
||
LON26 DB 185
|
||
DB 2
|
||
DB 0,58,27
|
||
DB 0,95,0
|
||
|
||
LON27 DB 183 ;1 billion
|
||
DB 2
|
||
DB 58,0,0
|
||
DB 95,0,0
|
||
|
||
LON28 DB 181 ;boat
|
||
DB 2
|
||
DB 8,39,64
|
||
DB 39,64,95
|
||
|
||
LON29 DB 179 ;house
|
||
DB 2
|
||
DB 45,45,45
|
||
DB 70,39,89
|
||
|
||
LON30 DB 177 ;plane
|
||
DB 2
|
||
DB 8,39,64
|
||
DB 39,64,95
|
||
|
||
LON31 DB 175 ;mo' money
|
||
DB 2
|
||
DB 58,0,0
|
||
DB 95,0,0
|
||
|
||
LON32 DB 173 ;money mania
|
||
DB 2
|
||
DB 58,0,0
|
||
DB 95,0,0
|
||
|
||
LON33 DB 170 ;x2
|
||
DB 3
|
||
DB 58,58,58
|
||
DB 70,70,70
|
||
DB 95,95,95
|
||
|
||
LON34 DB 167 ;x3
|
||
DB 3
|
||
DB 58,58,58
|
||
DB 70,70,70
|
||
DB 95,95,95
|
||
|
||
LON35 DB 164 ;x4
|
||
DB 3
|
||
DB 58,58,58
|
||
DB 70,70,70
|
||
DB 95,95,95
|
||
|
||
LON36 DB 161 ;x6
|
||
DB 3
|
||
DB 83,52,8
|
||
DB 89,70,33
|
||
DB 89,95,45
|
||
|
||
LON37 DB 158 ;x8
|
||
DB 3
|
||
DB 83,52,8
|
||
DB 89,70,33
|
||
DB 89,95,45
|
||
|
||
LON38 DB 155 ;x10
|
||
DB 3
|
||
DB 83,52,8
|
||
DB 89,70,33
|
||
DB 89,95,45
|
||
|
||
MATRIXON DB matrixlo ;(MATRIXCOL LOW BYTE)
|
||
DB 1
|
||
DB 95,70,27
|
||
|
||
LONEND DB 0
|
||
|
||
LONINDEX LABEL WORD
|
||
DW OFFSET LON1
|
||
DW OFFSET LON2
|
||
DW OFFSET LON3
|
||
DW OFFSET LON4
|
||
DW OFFSET LON5
|
||
DW OFFSET LON6
|
||
DW OFFSET LON7
|
||
DW OFFSET LON8
|
||
DW OFFSET LON9
|
||
DW OFFSET LON10
|
||
DW OFFSET LON11
|
||
DW OFFSET LON12
|
||
DW OFFSET LON13
|
||
DW OFFSET LON14
|
||
DW OFFSET LON15
|
||
DW OFFSET LON16
|
||
DW OFFSET LON17
|
||
DW OFFSET LON18
|
||
DW OFFSET LON19
|
||
DW OFFSET LON20
|
||
DW OFFSET LON21
|
||
DW OFFSET LON22
|
||
DW OFFSET LON23
|
||
DW OFFSET LON24
|
||
DW OFFSET LON25
|
||
DW OFFSET LON26
|
||
DW OFFSET LON27
|
||
DW OFFSET LON28
|
||
DW OFFSET LON29
|
||
DW OFFSET LON30
|
||
DW OFFSET LON31
|
||
DW OFFSET LON32
|
||
DW OFFSET LON33
|
||
DW OFFSET LON34
|
||
DW OFFSET LON35
|
||
DW OFFSET LON36
|
||
DW OFFSET LON37
|
||
DW OFFSET LON38
|
||
|
||
MATRIXOFF DB matrixlo
|
||
DB 3
|
||
DB 3 DUP(27*64/100)
|
||
|
||
;******************************************************************************
|
||
;************************* GATES & BYGLARS DATA AREOR *************************
|
||
;******************************************************************************
|
||
extrn gate1o:byte
|
||
extrn gate1c:byte
|
||
extrn gate2o:byte
|
||
extrn gate2c:byte
|
||
extrn gate3o:byte
|
||
extrn gate3c:byte
|
||
extrn gate4o:byte
|
||
extrn gate4c:byte
|
||
extrn gate5o:byte
|
||
extrn gate5c:byte
|
||
extrn gate6o:byte
|
||
extrn gate6c:byte,GATE7O,GATE7C,GATE8O,GATE8C
|
||
|
||
HOLDBONUSFLAG DB ?
|
||
|
||
;******************************************************************************
|
||
;****************************** DOT MATRIX ************************************
|
||
;******************************************************************************
|
||
clearit macro
|
||
assume ds:data2
|
||
dw _animation,_clear
|
||
assume ds:data
|
||
endm
|
||
|
||
;*********************************************************
|
||
;******* OBS!!! KOM IH<49>G ATT ASSUMERA ANIMATIONER TILL DATA2 OCH
|
||
;******* SCROLLAR TILL DATA !!!!!
|
||
ASSUME DS:DATA2
|
||
|
||
BEATENSCROLL DB 21 DUP (1),'YOU HAVE BEATEN THE HIGHSCORE',21 DUP(1),255
|
||
EXTRABALLTEXT DB 'EXTRA BALL',0
|
||
|
||
Beaten_bh_TS LABEL WORD ;I BALL LOST SEKVENSEN
|
||
DW _DOBEATEN,?
|
||
CLEARIT
|
||
DW _JINGLE,S_BEATEN
|
||
DW _LASTJINGLE,EMPTYJINGLE
|
||
DW _SCROLL,BEATENSCROLL
|
||
DW _FLASHON,10
|
||
DW _PRINT13,EXTRABALLTEXT,SW*4/4+TOTCENT+4
|
||
DW _WAIT,10*2*15
|
||
CLEARIT
|
||
DW _FLASHOFF,?
|
||
DW _JMP,No_Bonus2TS
|
||
|
||
BeatenTS LABEL WORD ;I SPELET
|
||
DW _DOBEATEN,?
|
||
CLEARIT
|
||
DW _JINGLE,S_BEATEN
|
||
DW _SCROLL,BEATENSCROLL
|
||
DW _FLASHON,10
|
||
DW _PRINT13,EXTRABALLTEXT,SW*4/4+TOTCENT+4
|
||
DW _WAIT,10*2*5
|
||
CLEARIT
|
||
DW _FLASHOFF,?
|
||
DW 0
|
||
|
||
|
||
|
||
;*****************************************
|
||
party_onTS LABEL BYTE ;Turn on party on . . .
|
||
CLEARIT
|
||
DW _FLASHON,PARTY_ON_SPEED
|
||
DW _PARTYONN,1
|
||
DW _PRINT13,PARTY_ON_TEXT,SW*4/4 ;+16*3/4 ;CP!
|
||
DW _PARTYON,1
|
||
DW 0
|
||
|
||
party_offTS LABEL WORD ;Turn it off
|
||
CLEARIT
|
||
DW _PARTYOFF,1
|
||
DW _FLASHOFF,1
|
||
DW 0
|
||
|
||
;*****************************************
|
||
ASSUME DS:DATA2
|
||
clearTS dw _animation,_clear
|
||
dw 0
|
||
|
||
tomTS dw _animation,_clear
|
||
dw _wait,32767
|
||
dw 0
|
||
|
||
ASSUME DS:DATA
|
||
|
||
SHOOTTHEBALLTS LABEL WORD
|
||
CLEARIT
|
||
DW _FLASHON,2
|
||
DW _PARTYONN,?
|
||
DW _PRINT13,SHOOTTHEBALLTEXT,SW*4/4
|
||
DW _PARTYON,?
|
||
DW 0
|
||
|
||
TVlitTS label word
|
||
clearit
|
||
dw _scroll,TVlitTEXT
|
||
dw 0
|
||
TVlitTEXT db 21 dup(1),'THE TV IS LIT',21 DUP(1),255
|
||
TRIPlitTS label word
|
||
clearit
|
||
dw _scroll,TRIPlitTEXT
|
||
dw 0
|
||
TRIPlitTEXT db 21 dup(1),'YOU CAN ACTUALLY WIN A TRIP',21 DUP(1),255
|
||
|
||
CARlitTS label word
|
||
clearit
|
||
dw _scroll,CARlitTEXT
|
||
dw 0
|
||
CARlitTEXT db 21 dup(1),'HOW ABOUT A BRAND NEW CAR',21 DUP(1),255
|
||
|
||
BOATlitTS label word
|
||
clearit
|
||
dw _scroll,BOATlitTEXT
|
||
dw 0
|
||
boatLitTEXT db 21 dup(1),'PLAY WELL AND WIN A BOAT',21 DUP(1),255
|
||
HOUSElitTS label word
|
||
clearit
|
||
dw _scroll,HOUSElitTEXT
|
||
dw 0
|
||
HOUSElitTEXT db 21 dup(1),'THE HOUSE CAN BE YOURS',21 DUP(1),255
|
||
|
||
PLANElitTS label word
|
||
clearit
|
||
dw _scroll,PLANElitTEXT
|
||
dw 0
|
||
PLANElitTEXT db 21 dup(1),'YOU CAN WIN A PRIVATE JET',21 DUP(1),255
|
||
|
||
RMTEXT DB ' RAISING MILLIONS',0
|
||
rmTS LABEL WORD
|
||
CLEARIT
|
||
DW _RULLGARDIN_UPP,rmTEXT,1
|
||
DW _WAIT,40 ;CPW!
|
||
DW _CLEAR2
|
||
DW _PRINT13_NUMBER_CENT,RM,SW*4/4+TOTCENT
|
||
DW _FLASHON,2
|
||
DW _WAIT,60
|
||
DW _FLASHOFF,1
|
||
DW _CLEAR3
|
||
DW 0
|
||
ASSUME DS:DATA2
|
||
millionTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_MILLION
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
BillionTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_BILLION
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
liteprize_rightTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_liteprize_right
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
liteprize_leftTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_liteprize_left
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
_bonusx2TS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_multiply
|
||
dw _animation,_x2
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
_bonusx3TS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_multiply
|
||
dw _animation,_x3
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
_bonusx4TS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_multiply
|
||
dw _animation,_x4
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
_bonusx6TS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_multiply
|
||
dw _animation,_x6
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
_bonusx8TS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_multiply
|
||
dw _animation,_x8
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
_bonusx10TS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_multiply
|
||
dw _animation,_x10
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
cashpotTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_cashpot
|
||
DW _ANIMATION,_CLEAR
|
||
assume ds:data
|
||
dw _print13_number_cent,cashpotval,SW*4/4+TOTCENT
|
||
dw _flashon,1
|
||
dw _wait,60
|
||
dw _flashoff,1
|
||
assume ds:data2
|
||
clearit
|
||
DW 0
|
||
cashpot5TS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_cashpot5
|
||
DW _ANIMATION,_CLEAR
|
||
assume ds:data
|
||
dw _print13_number_cent,cashpot5val,SW*4/4+TOTCENT
|
||
dw _flashon,1
|
||
dw _wait,60
|
||
dw _flashoff,1
|
||
assume ds:data2
|
||
clearit
|
||
DW 0
|
||
jackpotTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_jackpot
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
youwinTVTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_youwin
|
||
DW _ANIMATION,_CLEAR
|
||
ASSUME DS:DATA
|
||
DW _SCROLL,A_TV_TEXT
|
||
DW _END_OF_SPIN,?
|
||
DW 0
|
||
ASSUME DS:DATA2
|
||
youwinTRIPTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_youwin
|
||
DW _ANIMATION,_CLEAR
|
||
ASSUME DS:DATA
|
||
DW _SCROLL,A_TRIP_TEXT
|
||
DW _END_OF_SPIN,?
|
||
DW 0
|
||
ASSUME DS:DATA2
|
||
youwinCARTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_youwin
|
||
DW _ANIMATION,_CLEAR
|
||
ASSUME DS:DATA
|
||
DW _SCROLL,A_CAR_TEXT
|
||
DW _END_OF_SPIN,?
|
||
DW 0
|
||
ASSUME DS:DATA2
|
||
|
||
youwinBOATTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_youwin
|
||
DW _ANIMATION,_CLEAR
|
||
ASSUME DS:DATA
|
||
DW _SCROLL,A_BOAT_TEXT
|
||
DW _END_OF_SPIN,?
|
||
DW 0
|
||
ASSUME DS:DATA2
|
||
youwinHOUSETS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_youwin
|
||
DW _ANIMATION,_CLEAR
|
||
ASSUME DS:DATA
|
||
DW _SCROLL,A_HOUSE_TEXT
|
||
DW _END_OF_SPIN,?
|
||
DW 0
|
||
ASSUME DS:DATA2
|
||
youwinPLANETS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_youwin
|
||
DW _ANIMATION,_CLEAR
|
||
ASSUME DS:DATA
|
||
DW _SCROLL,A_PLANE_TEXT
|
||
DW _END_OF_SPIN,?
|
||
DW 0
|
||
ASSUME DS:DATA2
|
||
_xtraballTS LABEL WORD
|
||
DW _ANIMATION,_CLEAR
|
||
DW _ANIMATION,_xtraball
|
||
DW _ANIMATION,_CLEAR
|
||
DW 0
|
||
ASSUME DS:DATA
|
||
|
||
skillshotTS label word
|
||
clearit
|
||
dw _flashon,1
|
||
dw _number,skillcounter
|
||
dw _wait,50 ;cpw!
|
||
dw _flashoff,1
|
||
clearit
|
||
dw _flashon,5
|
||
dw _print8,skilltext,sw*2*5/4+16*0/4
|
||
dw _wait,80 ;cpw!
|
||
dw _flashoff,1
|
||
CLEARIT
|
||
dw 0
|
||
skilltext db ' MONEY MANIA AT ',6+'7',' ',0
|
||
skillshotXBTS label word
|
||
clearit
|
||
dw _flashon,1
|
||
dw _number,skillcounter
|
||
dw _wait,50 ;cpw!
|
||
dw _flashoff,1
|
||
clearit
|
||
dw _flashon,5
|
||
dw _print8,XB_TEXT,sw*2*5/4+16*0/4
|
||
dw _wait,80 ;cpw!
|
||
dw _flashoff,1
|
||
CLEARIT
|
||
dw 0
|
||
xb_text db '89 LITES EXTRA BALL',0
|
||
flashmatrixTS label word
|
||
dw _flashon,8
|
||
dw _wait,75
|
||
dw _flashoff,1
|
||
dw _wait,30000
|
||
dw 0
|
||
rensaTS label word
|
||
clearit
|
||
dw 0
|
||
rensa2TS label word
|
||
clearit
|
||
dw _wait,30000
|
||
dw 0
|
||
spinTS label word
|
||
dw _print13_number
|
||
SPINscoreptr dw offset spinscores
|
||
dw SW*4/4+16*2/4
|
||
dw _wait,30000
|
||
dw 0
|
||
|
||
|
||
|
||
Turbo2TS dw _animation,_clear
|
||
DW _ANIMATION,_moneyM
|
||
DW _ANIMATION,_CLEAR
|
||
DW _SCROLL,ALLloopTEXT
|
||
dw _jmp,initurboTS
|
||
|
||
turboTS dw _animation,_clear
|
||
DW _ANIMATION,_moneyM
|
||
DW _ANIMATION,_CLEAR
|
||
DW _SCROLL,ALLTARGETTEXT
|
||
initurboTS dw _animation,_clear
|
||
DW _PRINT13,ZEROQ,SW*(2+2)/4+16*13/4
|
||
dw _countdown,2,5,tm_total ;(the final?)
|
||
dw _animation,_clear
|
||
TurboMode_endingTS Label Word
|
||
DW _JBCDZ,TM_TOTAL,no_tmTS
|
||
assume ds:data
|
||
dw _rullgardin_upp,tm_total_text,1
|
||
DW _LIGHTFLASH,32
|
||
assume ds:data2
|
||
dw _wait,60 ;CPW!
|
||
|
||
dw _animation,_clear
|
||
DW _FLASHON,1
|
||
assume ds:data
|
||
DW _PRINT13_NUMBER,tm_total,SW*4/4+16*2/4 ;CP! RUTCENT
|
||
assume ds:data2
|
||
dw _wait,80 ;CPW!
|
||
DW _FLASHOFF,1
|
||
dw _animation,_clear
|
||
dw _TurnOffSpecialMode,?
|
||
dw 0
|
||
no_tmTS DW _PRINT13,NO_tm_TEXT,SW*4/4
|
||
ASSUME DS:DATA2
|
||
dw _wait,80 ;CPW!
|
||
CLEARIT
|
||
dw _TurnOffSpecialMode,?
|
||
DW 0
|
||
|
||
|
||
go_for_nisse_text db ' MONEY MANIA ',0
|
||
tm_total_Text db ' MONEY MANIA TOTAL',0
|
||
alltargetTEXT db 21 dup(' '),'ALL TARGETS SCORE 500000',21 DUP(' '),255
|
||
allloopTEXT db 21 dup(' '),'ALL LOOPS SCORE 1000000',21 DUP(' '),255
|
||
A_TV_TEXT db 21 dup(' '),'A 72 INCH TV WITH NO COMMERCIALS',21 DUP(' '),255
|
||
A_CAR_TEXT db 21 dup(' '),'A SUPER TURBO EXTRA MEGA COOL CAR',21 DUP(' '),255
|
||
A_TRIP_TEXT db 21 dup(' '),'A TRIP TO BEAUTIFUL SWEDEN',21 DUP(' '),255
|
||
A_BOAT_TEXT db 21 dup(' '),'A NICE 5 MILLION DOLLAR BOAT',21 DUP(' '),255
|
||
A_HOUSE_TEXT db 21 dup(' '),'A HUGE 50 ROOM MANSION',21 DUP(' '),255
|
||
A_PLANE_TEXT db 21 dup(' '),'THE PRIVATE JET WITH CREW',21 DUP(' '),255
|
||
COMMENT\
|
||
Price4ATS String 3,16,16,"_PLAY_WELL_AND_WIN_A_BOAT_"
|
||
Price5ATS String 3,16,16,"_THE_HOUSE_CAN_BE_YOURS_"
|
||
Price6ATS String 3,16,16,"_YOU_CAN_WIN_THE_PRIVATE_JET_"
|
||
Price4TS String 3,16,16,"_A_NICE_µ00°000_DOLLAR_BOAT_"
|
||
Price5TS String 3,16,16,"_A_HUGE_50_ROOM_MANSION_"
|
||
Price6TS String 3,16,16,"_THE_PRIVATE_JET_WITH_CREW_"
|
||
\
|
||
ASSUME DS:DATA
|
||
no_tm_text db ' NO BONUS',0
|
||
tm_total db ?,?,?,?,?,?,?,?,?,?,?,?
|
||
|
||
|
||
|
||
|
||
;*********************** NYA BALL LOST *******************
|
||
|
||
ASSUME DS:DATA
|
||
show_cyclones_text db ' SKILLS X ',0
|
||
show_or_text db ' MONEY MANIA TOTAL',0
|
||
|
||
|
||
|
||
ball_lostTS LABEL WORD
|
||
CLEARIT
|
||
|
||
DW _PRINT13,GETTING_SICK_TEXT,SW*2/4*2
|
||
DW _JINGLE,S_LOSTBALL
|
||
DW _LASTJINGLE,55
|
||
DW _SETDECCOR,70
|
||
DW _WAITJINGLE2,?
|
||
DW _JINGLE,S_Empty
|
||
CLEARIT
|
||
|
||
DW _JBCDZ,BONUSSIFFRORNA,no_bonusTS
|
||
DW _PRINT5,show_bonus_TEXT,SW*1*2/4+16*7/4
|
||
DW _PRINT8_NUMBER_CENT,BONUSSIFFRORNA,7*2*SW/4+TOTCENT
|
||
DW _WAIT,60 ;CPW!
|
||
dw _Sound_Effect,s_MultiLjud,0
|
||
|
||
DW _JBONUSX1,NoBonusXTS
|
||
CLEARIT ;CP! CLEARIT ŽR ON™DIGT BRUTAL!
|
||
DW _BONUS_X_CALCS,?
|
||
DW _PRINT5,BONUS_X_TEXT,SW*1*2/4+16*7/4-4*2
|
||
DW _PRINT8_NUMBER_CENT,BONUSSIFFRORNA,7*2*SW/4+TOTCENT
|
||
DW _WAIT,60 ;CPW!
|
||
dw _Sound_Effect,s_MultiLjud,0
|
||
NoBonusXTS LABEL WORD
|
||
|
||
no_bonusTS LABEL WORD
|
||
DW _JBCDZ,CYCLONECOUNTERBCD,no_cyclonesTS
|
||
CLEARIT
|
||
DW _CALC_CYCLO ;CYCLONESCOREBCD & SIFFRORNA UPPDATERAS!
|
||
DW _PRINT5_NUMBER,CYCLONECOUNTERBCD,SW*1*2/4-16*10/4
|
||
DW _PRINT5_number,HUNDRATUSEN,SW*1*2/4+13*8/4
|
||
DW _PRINT5,show_CYCLONES_TEXT,SW*1*2/4-16*1/4
|
||
DW _PRINT8_NUMBER_CENT,CYCLONESCOREBCD,SW*2*7/4+TOTCENT
|
||
DW _WAIT,120 ;CPW!
|
||
dw _Sound_Effect,s_MultiLjud,0
|
||
CLEARIT
|
||
no_cyclonesTS LABEL WORD
|
||
DW _JBCDZ,TM_TOTAL,no_happy_stewartTS
|
||
CLEARIT
|
||
DW _CALC_HAPPY ;CYCLONESCOREBCD & SIFFRORNA UPPDATERAS!
|
||
DW _PRINT5,show_or_TEXT,SW*1*2/4+16/4/2
|
||
DW _PRINT8_NUMBER_CENT,TM_TOTAL,SW*2*7/4+TOTCENT
|
||
DW _WAIT,120 ;CPW!
|
||
dw _Sound_Effect,s_MultiLjud,0
|
||
CLEARIT
|
||
|
||
no_happy_stewartTS LABEL WORD
|
||
|
||
DW _JBCDZ,BONUSSIFFRORNA,no_bonus2TS
|
||
DW _PRINT5,show_totalbonus_TEXT,SW*1*2/4+16*4/4
|
||
|
||
DW _PRINT8_NUMBER_CENT,BONUSSIFFRORNA,7*2*SW/4+TOTCENT
|
||
|
||
DW _WAIT,60 ;CPW!
|
||
CLEARIT
|
||
DW _PRINT8_NUMBER,BONUSSIFFRORNA,7*2*SW/4-16*4/4
|
||
DW _FLORPA
|
||
DW _WAIT,25 ;CPW!
|
||
dw _beaten_matrix
|
||
no_bonus2TS LABEL WORD
|
||
DW _KOLLA_XXBALL
|
||
dw _waitifmulti,2*60 ;cpgnu? (visa poeng lite lengre)
|
||
DW _MATRIXLGT,0
|
||
clearit
|
||
|
||
DW _CHANGE_PLAYER
|
||
CLEARIT
|
||
dw _wait,32000
|
||
DW 0
|
||
SORRYNOBONUSTEXT DB ' SORRY ',94,' NO BONUS ',0
|
||
|
||
shoot_again_onTS LABEL BYTE ;Turn on shoot again . . .
|
||
CLEARIT
|
||
DW _FLASHON,SHOOT_AGAIN_SPEED
|
||
DW _SHOOT_AGAIN_ONN,1
|
||
DW _PRINT13,SHOOT_AGAIN_TEXT,SW*4/4 ;+16*3/4 ;CP!
|
||
DW _NEW_BALL2
|
||
DW _PARTYON,1 ;CP?
|
||
DW 0
|
||
|
||
|
||
out_of_ballsTS LABEL WORD ;Žr Stewarts fortfarande borta kanske?
|
||
CLEARIT
|
||
dw _matrixlgt,1
|
||
dw _knacket,?
|
||
DW _SETDECCOR,120
|
||
DW _WAITJINGLE2,?
|
||
check_xxballTS LABEL WORD
|
||
DW _check_xxballs ;utf”r ev xxballs, hoppar sedan till after_xxballs!
|
||
|
||
after_xxballTS LABEL WORD
|
||
|
||
clearit
|
||
dw _check_high,?
|
||
DW _MATRIXLGT,0
|
||
DW _2_DEMO_MODE
|
||
dw _wait,20000
|
||
|
||
AfterDemoModeTS Label Word
|
||
DW _MATRIXLGT,0
|
||
dw _wait,20
|
||
dw _setloop,2,?
|
||
DW _INIT_SCORE,?
|
||
DW _JMP,UrbanOverTS
|
||
|
||
Once_MoreTS LABEL WORD
|
||
DW _INIT_SCORE,?
|
||
|
||
GameOverTS LABEL WORD
|
||
SHOWTIME=80
|
||
DW _WAIT,SHOWTIME
|
||
|
||
UrbanOverTS LABEL WORD
|
||
CLEARIT
|
||
DW _FLASHON,1
|
||
DW _PRINT13,GAME_OVER_TEXT,SW*2*2/4
|
||
DW _WAIT,30
|
||
DW _FLASHOFF,?
|
||
CLEARIT
|
||
DW _SHOW_SCORE,OFFSET GAMEOVERTS
|
||
dw _loop_,2,offset once_morets
|
||
DW _WAIT,SHOWTIME
|
||
CLEARIT
|
||
DW _WAIT,20
|
||
DW _JMP,ShowHighsTS
|
||
DW 0
|
||
GAME_OVER_TEXT DB ' GAME OVER',0
|
||
;TUBORG!
|
||
|
||
;********************** SLUT P<> BALL LOST *******************
|
||
|
||
showithi macro
|
||
DW _PRINT13,ALLTIME_TEXT,SW*2/4*2+16/4/2
|
||
dw _wait,40
|
||
|
||
CLEARIT
|
||
|
||
DW _FLASHOFF,1
|
||
DW _MATRIXLGT,0
|
||
DW _PRINT13,hi_1,SW*2/4*2
|
||
DW _PRINT13_NUMBER,(offset hi_score_list+(12+3+1)*0),4*SW/4+8*16/4
|
||
DW _PRINT13,(offset hi_score_list+(12+3+1)*0+12),SW*2/4*2+2*16/4
|
||
DW _FLASHON,1
|
||
dw _wait,140
|
||
clearit
|
||
|
||
DW _FLASHOFF,1
|
||
DW _MATRIXLGT,0
|
||
DW _PRINT13,hi_2,SW*2/4*2
|
||
DW _PRINT13_NUMBER,(offset hi_score_list+(12+3+1)*1),4*SW/4+8*16/4
|
||
DW _PRINT13,(offset hi_score_list+(12+3+1)*1+12),SW*2/4*2+2*16/4
|
||
DW _FLASHON,1
|
||
dw _wait,140
|
||
clearit
|
||
|
||
DW _FLASHOFF,1
|
||
DW _MATRIXLGT,0
|
||
DW _PRINT13,hi_3,SW*2/4*2
|
||
DW _PRINT13_NUMBER,(offset hi_score_list+(12+3+1)*2),4*SW/4+8*16/4
|
||
DW _PRINT13,(offset hi_score_list+(12+3+1)*2+12),SW*2/4*2+2*16/4
|
||
DW _FLASHON,1
|
||
dw _wait,140
|
||
clearit
|
||
|
||
DW _FLASHOFF,1
|
||
DW _MATRIXLGT,0
|
||
DW _PRINT13,hi_4,SW*2/4*2
|
||
DW _PRINT13_NUMBER,(offset hi_score_list+(12+3+1)*3),4*SW/4+8*16/4
|
||
DW _PRINT13,(offset hi_score_list+(12+3+1)*3+12),SW*2/4*2+2*16/4
|
||
DW _FLASHON,1
|
||
dw _wait,140
|
||
clearit
|
||
DW _FLASHOFF,1
|
||
endm
|
||
|
||
|
||
ShowInfoTS LABEL WORD
|
||
CLEARIT
|
||
clearit
|
||
DW _rullgardin_ned,PLAY_TEXT,1
|
||
dw _wait,40*3
|
||
DW _MATRIXLGT,0
|
||
CLEARIT
|
||
DW _PRINT13,JACK_TEXT,SW*4/4
|
||
dw _print13_number,jackvalue,SW*4/4+8*16/4
|
||
DW _FLASHON,1
|
||
dw _wait,40*3
|
||
DW _FLASHOFF,1
|
||
CLEARIT
|
||
dw _rullgardin_upp,BONUS_TEXT,1
|
||
dw _wait,40*3
|
||
CLEARIT
|
||
showithi
|
||
CLEARIT
|
||
|
||
dw _print5,playerstext,sw*2*2/4+16*1/4
|
||
dw _print5,ballstext,sw*2*10/4+16*1/4
|
||
|
||
DW 0
|
||
|
||
ShowHighsTS LABEL WORD
|
||
;TEXTER
|
||
CLEARIT
|
||
DW _FLASHON,1
|
||
DW _PRINT13,PF_TEXT,SW*2/4*2-2
|
||
dw _wait,120
|
||
DW _CLEAR2
|
||
DW _FLASHOFF,1
|
||
dw _rullgardin_upp,TRS_TEXT,1
|
||
dw _wait,90
|
||
CLEARIT
|
||
; DW _FLASHON,1
|
||
DW _SCROLL,PL_TEXT
|
||
; dw _wait,40
|
||
; DW _FLASHOFF,1
|
||
;SCROLLA
|
||
clearit
|
||
DW _SCROLL,SCROLL_TEXT1
|
||
;VISA HIGHSCORE
|
||
showithi
|
||
;DI UPP <20> NED!
|
||
CLEARIT
|
||
; dw _rullgardin_NED,DIGITAL_TEXT,16
|
||
; dw _rullgardin_upp,DIGITAL_TEXT,-13
|
||
; dw _wait,40
|
||
; CLEARIT
|
||
dw _rullgardin_NED,fld_TEXT,16
|
||
dw _rullgardin_upp,fld_TEXT,-13
|
||
dw _wait,40
|
||
;SCROLLA SISTA
|
||
DW _SCROLL,SCROLL_TEXT2
|
||
CLEARIT
|
||
DW _JMP,ShowHighsTS
|
||
dw 0
|
||
|
||
|
||
ShowPlayersTS label word
|
||
clearit
|
||
dw _print5,playerstext,sw*2*2/4+16*1/4
|
||
dw _print5,ballstext,sw*2*10/4+16*1/4
|
||
dw 0
|
||
first_no_of_playersTS LABEL WORD
|
||
clearit
|
||
dw _print5,playerstext,sw*2*2/4+16*1/4
|
||
DW _PRINT13,NOLLA,SW*2*2/4+16*19/4
|
||
no_of_playersTS label word
|
||
dw _print5,no_of_players_text,sw*2*10/4+16*1/4
|
||
DW _WAIT_GAME_ON,?
|
||
dw 0
|
||
|
||
|
||
tiltTS LABEL WORD
|
||
CLEARIT
|
||
DW _PRINT13,TILT_TEXT,sw*2/4*2+16*0/4
|
||
DW _WAIT,32767
|
||
DW 0
|
||
TILT_TEXT DB ' TILT TILT TILT',0
|
||
last_text db ' ',0
|
||
flashlast db ' ',0
|
||
slutsiffra db '0',0
|
||
startext db '*',0
|
||
last_pos dw 0
|
||
|
||
if demover
|
||
MINUTE5TS LABEL WORD
|
||
CLEARIT
|
||
dw _scroll,MINUTE5TEXT
|
||
DW _FLASHON,1
|
||
dw _print13_number,offset SIFFRORNA,SW*4/4+16*2/4
|
||
DW _WAIT,100
|
||
DW _FLASHOFF,1
|
||
dw _scroll,MINUTE5TEXTB
|
||
DW _FADE,256
|
||
DW _WAIT,100
|
||
DW QUIT,?
|
||
dw 0
|
||
MINUTE5TEXT DB 21 DUP (1)
|
||
DB "WELL DONE PLAYER 1 - YOU HAVE ACHEIVED THE MEGA SCORE OF"
|
||
DB 21 DUP (1),255
|
||
MINUTE5TEXTB DB 21 DUP (1)
|
||
DB "LOOK OUT FOR PINBALL FANTASIES PC - FULL GAME AVAILABLE SOON"
|
||
DB 21 DUP (1),255
|
||
endif
|
||
;***********************************************************
|
||
|
||
GETTING_SICK_TEXT DB ' FALLING DOWN',0
|
||
|
||
PARTY_ON_TEXT DB 'PLAY MORE - PLAYER X',0
|
||
ZEROQ DB '0'+7,0
|
||
SHOOT_AGAIN_TEXT DB 'SHOOT AGAIN PLAYER ',0
|
||
SHOOTTHEBALLTEXT DB 'SHOOT THE BALL PL ?',0
|
||
|
||
NO_OF_PLAYERS_TEXT DB 'PLAYERS X',0
|
||
NOLLA DB '7',0
|
||
show_bonus_TEXT DB 'BONUS',0
|
||
show_totalbonus_TEXT DB 'TOTAL*BONUS',0
|
||
BONUS_X_TEXT DB 'BONUS*X*??',0
|
||
|
||
fld_TEXT DB ' FRONTLINE DESIGN',0
|
||
|
||
PF_TEXT DB ' PINBALL FANTASIES',0
|
||
TRS_TEXT DB ' THE REAL SIMULATOR',0
|
||
PL_TEXT DB 21 DUP (' '),'BILLION DOLLAR GAMESHOW',21 DUP (' '),255
|
||
SCROLL_TEXT1 DB 21 DUP (' '),'ADD PLAYERS WITH F1 TO F8',21 DUP (' ')
|
||
DB 'WINNERS DO NOT USE DRUGS',21 DUP (' '),255
|
||
ALLTIME_TEXT DB 'ALL TIME HIGHSCORES',0
|
||
SCROLL_TEXT2 DB 21 DUP (' '),'FLIP WITH LEFT AND RIGHT ALT SHIFT OR CTRL KEYS',21 DUP (' ')
|
||
DB 'PUSH TABLE WITH SPACE',21 DUP (' ')
|
||
DB 'CONTROL SPRING WITH DOWN ARROW KEY',' ESC EXITS',21 DUP (' ')
|
||
DB 'WINNERS DO NOT USE DRUGS ',21 DUP (' ')
|
||
DB 255
|
||
COMMENT\
|
||
PF_TEXT DB ' PINBALL FANTASIES',0
|
||
TRS_TEXT DB ' THE REAL SIMULATOR',0
|
||
PL_TEXT DB ' PARTY LAND',0
|
||
SCROLL_TEXT1 DB 21 DUP (' '),'ADD PLAYERS WITH F1 TO F8 OR ENTER',21 DUP (' ')
|
||
DB 'WINNERS DO NOT USE DRUGS',21 DUP (' '),255
|
||
ALLTIME_TEXT DB ' ALL TIMES HIGHSCORE',0
|
||
SCROLL_TEXT2 DB 21 DUP (' '),'FLIP WITH LEFT AND RIGHT ALT SHIFT OR CTRL KEYS',21 DUP (' ')
|
||
DB 'PUSH TABLE WITH SPACE',21 DUP (' ')
|
||
DB 'CONTROL SPRING WITH DOWN ARROW KEY OR MOUSE',21 DUP (' ')
|
||
DB 'WINNERS DO NOT USE DRUGS',21 DUP (' ')
|
||
DB 'P PAUSES GAME AND M TOGGLES INGAME MUSIC ON AND OFF',21 DUP (' ')
|
||
DB 'ESC EXITS AND SAVES NEW HIGHSCORES',21 DUP (' '),255
|
||
\
|
||
DIGITAL_TEXT DB ' DIGITAL ILLUSIONS',0
|
||
|
||
JACK_TEXT DB 'JACKPOT IS',0
|
||
BONUS_TEXT DB ' YOU HAVE XX BONUS',0 ;10
|
||
PLAY_TEXT DB ' PLAYER 8 BALL 8 ',0 ;8,18
|
||
|
||
INFO_TEXT DB 21 DUP (' ')
|
||
db ''
|
||
DB 21 DUP (1),255
|
||
|
||
playerstext db 'PLAYER 8',0 ;8=1 (L™S EKVATIONEN!)
|
||
BALLSTEXT DB 'BALL 8',0 ;8=1
|
||
|
||
hajjskar db 'HIGHSCORE PL X ',92,' ',93,0
|
||
stjaernor db '********************',0
|
||
|
||
;******************************************************************************
|
||
|
||
DATA ENDS
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;******************************************************************************
|
||
;** **
|
||
;** C O D E **
|
||
;** **
|
||
;******************************************************************************
|
||
|
||
CODE SEGMENT PARA PUBLIC 'CODE'
|
||
ASSUME CS:CODE,DS:DATA
|
||
|
||
|
||
;*********************************** INITS ************************************
|
||
|
||
JUST_ONE_TIME_RESET_TABLE:
|
||
CALL SLACK_LIGHTS
|
||
RETN
|
||
|
||
RESET_VARS PROC NEAR
|
||
NIL AX
|
||
MOVE ES,DS
|
||
MOV DI,OFFSET SIFFRORNA
|
||
MOV CX,6
|
||
REP STOSW
|
||
MOV DI,OFFSET BONUSSIFFRORNA
|
||
MOV CX,6
|
||
REP STOSW
|
||
MOV DI,OFFSET TM_TOTAL
|
||
MOV CX,6
|
||
REP STOSW
|
||
|
||
MOV BALLHIGH,FALSE
|
||
|
||
MOVEBCD CASHPOTVAL,_500K
|
||
|
||
|
||
MOV TVFLAG,FALSE
|
||
MOV TRIPFLAG,FALSE
|
||
MOV CARFLAG,FALSE
|
||
MOV BOATFLAG,FALSE
|
||
MOV PLANEFLAG,FALSE
|
||
MOV HOUSEFLAG,FALSE
|
||
|
||
MOV TVCOUNTER,0
|
||
MOV TRIPCOUNTER,0
|
||
MOV CARCOUNTER,0
|
||
MOV BOATCOUNTER,0
|
||
MOV PLANECOUNTER,0
|
||
MOV HOUSECOUNTER,0
|
||
|
||
MOV BILLION_ENABLED,FALSE
|
||
|
||
mov bonusmultiplier,0
|
||
MOV BONUS_X,1
|
||
MOV WORD PTR BONUS_TEXT[10],'8 '
|
||
CALL RESETFLASHLIST
|
||
CALL SLACK_LIGHTS
|
||
; CALL KILL_FLASHOR ;DOT MATRIX FLASH RESET
|
||
call closegate1
|
||
|
||
lighton 7 ;sl„pp upp brickorna
|
||
call closegate3
|
||
lighton 8
|
||
call closegate4
|
||
lighton 9
|
||
call closegate5
|
||
lighton 10
|
||
call closegate6
|
||
|
||
endflash 1
|
||
lightflash 1,15 ;blinka med skill-lampan (ska det ligga h„r?)
|
||
|
||
;HŽR VAR DEN! ; mov paRTYFLASh,false
|
||
|
||
RETN
|
||
RESET_VARS ENDP
|
||
|
||
WHEN_NEW_GAME_RESET_TABLE:
|
||
MOV XxballE,FALSE
|
||
MOVA ES,DS
|
||
MOV DI,OFFSET CYCLONECOUNTERBCD
|
||
MOV CX,12/2
|
||
NIL AX
|
||
REP STOSW
|
||
MOV CYCLONECOUNTER,0
|
||
|
||
MOV TOP_THREE,FALSE
|
||
MOV ALL_SIX,FALSE
|
||
CALL SLACK_LIGHTS
|
||
CALL RESETFLASHLIST
|
||
CALL RESET_VARS
|
||
CALL UPDATE_P_STRUC_4_ALL_PLAYERS
|
||
CALL INITJACK
|
||
;cleara slutsiffrorna (di alla!) (F”r knacket allts†!!!)
|
||
push es
|
||
move es,ds
|
||
MOV di,offset last_text
|
||
mov al,' '
|
||
mov cx,8*2
|
||
rep stosb
|
||
MOV di,offset flashlast
|
||
mov al,' '
|
||
mov cx,8*2
|
||
rep stosb
|
||
pop es
|
||
RETN
|
||
|
||
|
||
WHEN_NEW_BALL_RESET_TABLE:
|
||
; CALL KILL_FLASHOR ;DOT MATRIX FLASH RESET
|
||
CALL SLACK_LIGHTS
|
||
CALL RESETFLASHLIST
|
||
CALL RESET_VARS
|
||
CALL P_STRUC_2_VARS
|
||
CALL closeGATE7
|
||
CALL closeGATE8
|
||
RETN
|
||
|
||
|
||
;******************************************************************************
|
||
|
||
|
||
|
||
DEMO_MUSIC PROC NEAR
|
||
CMP HIGHSCORE,TRUE
|
||
; JE OOPS_HIGH ;CP!
|
||
PLAYJINGLE S_NOHIGH
|
||
MOV AL,S_NOHIGH[2]
|
||
MOV LASTPRIORITY,AL
|
||
MOV LASTJINGLE,9 ;9=NOHIGH ;SVEN
|
||
RETN
|
||
DEMO_MUSIC ENDP
|
||
|
||
GAME_MUSIC PROC NEAR
|
||
PLAYJINGLE S_SPRING
|
||
MOV AL,S_SPRING+2
|
||
MOV LASTPRIORITY,AL
|
||
MOV LASTJINGLE,0
|
||
RETN
|
||
GAME_MUSIC ENDP
|
||
|
||
;******************************** LOOSE BALL **********************************
|
||
LOOSE_BALL PROC NEAR
|
||
MOV LOOSING,TRUE
|
||
MOV SCREENFORCE2,576-SH_LO+SPLH ;CP?
|
||
CMP HI_RES,TRUE
|
||
JNE NOTHIRES16
|
||
MOV SCREENFORCE2,576-SH_HI+SPLH ;CP?
|
||
NOTHIRES16:
|
||
SETBALLPOS 135,28,0,0,FALSE ;CP!!!!!!! LŽGG BOLLEN P<> BŽTTRE STŽLLE
|
||
mov holdstill,true
|
||
MOV ALLOWFLIP,FALSE ;KILL FLIPPERS!
|
||
|
||
MOV SPECIALMODE,FALSE
|
||
|
||
MOV CURRENT_PRIORITY,0
|
||
EFFECT LOSTBALL
|
||
MOV LASTJINGLE,emptyjingle
|
||
ADDTASK SOUNDRINNER
|
||
RETN
|
||
|
||
SOUNDRINNER:
|
||
WAITSYNCS 5
|
||
SOUNDEFFECT SRINNER,0
|
||
SUICIDE
|
||
|
||
_FLORPA:
|
||
MOV CS:LB6CNT,0 ;RESET F™RDR™JNINGS-RŽKNAREN
|
||
MOV ADDORPEK,OFFSET ADDOR ;STARTA MED SISTA NUFFRAN
|
||
MOV BONUSPEK,OFFSET BONUSSIFFRORNA+11
|
||
|
||
MOV SI,OFFSET BONUSSIFFRORNA ;SPARA BONUSSIFFRORNA
|
||
MOV DI,OFFSET TEMPSIFFRORNA
|
||
MOVE ES,DS
|
||
MOV CX,6
|
||
REP MOVSW
|
||
|
||
MOV DOTRUT,OFFSET DO_FLORPA
|
||
|
||
ADD BX,2
|
||
CMP WORD PTR [BX],0
|
||
JNE _NEXTp_5
|
||
MOV BX,0
|
||
_NEXTp_5:
|
||
MOV NEXT_A,BX
|
||
RETN
|
||
PLIPPA_SCORE:
|
||
mov si,offset siffrorna
|
||
mov bx,336*2/4+(320-12*16)/4 ;h”ger justerad!
|
||
MOVE ES,CS
|
||
CALL DWORD PTR ES:PEKOR
|
||
MOV SI,0
|
||
RETN
|
||
|
||
LB6CNT DW ?
|
||
DO_FLORPA:
|
||
INC CS:LB6CNT
|
||
CMP CS:LB6CNT,4 ;CPW!
|
||
JE LB6CNTOK
|
||
MOV SI,75
|
||
RETN
|
||
LB6CNTOK:
|
||
MOV CS:LB6CNT,0
|
||
|
||
DO_IT_AGAIN_AND_DO_IT_NOW:
|
||
MOV BX,BONUSPEK
|
||
MOV AL,[BX]
|
||
OR AL,AL ;IS DIGIT ZERO?
|
||
JZ DIGIT_IS_ZERO
|
||
DEC BYTE PTR [BX] ;RŽKNA NED BONUSEN
|
||
JNZ NO_WAITS_TODAY
|
||
|
||
IFZEROBCD BONUSSIFFRORNA
|
||
JNC NO_WAITS_TODAY
|
||
|
||
MOV CS:LB6CNT,-10 ;CPW!
|
||
NO_WAITS_TODAY:
|
||
|
||
MOV SI,ADDORPEK ;RŽKNA UPP POŽNGEN
|
||
MOV DI,OFFSET SIFFRORNA
|
||
CALL ADDSCOREBCD
|
||
|
||
SOUNDEFFECT S_SCORELJUD,0
|
||
|
||
JMP STEP_DONE
|
||
|
||
DIGIT_IS_ZERO:
|
||
;FLER SIFFROR?
|
||
INC ADDORPEK ;NEXT DIGIT IN POŽNGEN
|
||
CMP ADDORPEK,OFFSET ADDOR+12
|
||
JE NO_MORE_NUFFROR
|
||
DEC BONUSPEK ;NEXT DIGIT IN BONUS
|
||
JMP DO_IT_AGAIN_AND_DO_IT_NOW
|
||
|
||
STEP_DONE:
|
||
;SHOW BONUSSIFFRORNA & SIFFRORNA
|
||
MOV SI_siffror,OFFSET BONUSSIFFRORNA
|
||
MOV DI_siffror,7*2*SW/4-16*4/4 ;10 RADER NED, 8 (12-4) TECKEN IN P<> RADEN!!
|
||
MOV TABORT_DIOVRE_FNT,0
|
||
MOV PRINTTASK,OFFSET PRINT8_task
|
||
CALL PLIPPA_SCORE
|
||
MOV SI,75 ;AVINSTALLERA EJ!
|
||
RETN
|
||
|
||
NO_MORE_NUFFROR:
|
||
mov clear_box_start,7*2*SW/4
|
||
mov clear_box_bredd,16*(12-1)/4-16*4/4
|
||
mov clear_box_hojd,10
|
||
CALL clear_box2
|
||
MOV SI,0 ;AVINSTALLERA!
|
||
RETN
|
||
|
||
;******************************* ARNESSON
|
||
|
||
|
||
;*******************************
|
||
disa dw ?
|
||
playerQ db ?
|
||
hi_pos dw ?
|
||
_check_high:
|
||
MOV SISA,1
|
||
mov al,players
|
||
mov cs:playerQ,0
|
||
MOV CS:DISA,0
|
||
MOV DOTRUT,offset SPINTSEL_IN_HIGH
|
||
JMP NORMAL_END
|
||
|
||
spintsel_in_high:
|
||
|
||
LEA SI,PLAYER_AREA.P_SIFFRORNA
|
||
|
||
MOV CX,4
|
||
|
||
add si,cs:disa
|
||
add cs:disa,size player_struc
|
||
|
||
mov di,offset hi_score_list
|
||
|
||
inc cs:playerQ
|
||
mov al,cs:playerQ
|
||
cmp al,players
|
||
jna check_list
|
||
mov first_high,false
|
||
cmp highscore,true
|
||
je no_sad_jingle
|
||
|
||
mov current_priority,0
|
||
mov jinglejumpcnt,1
|
||
PLAYJINGLE S_GameOver
|
||
mov current_priority,0
|
||
mov no_demomusic,true
|
||
no_sad_jingle:
|
||
mov highscore,false
|
||
mov si,0
|
||
retn ;f„rdig!
|
||
|
||
check_list:
|
||
push cx
|
||
mov cx,12
|
||
mov bx,0
|
||
check_num:
|
||
mov al,[di+bx]
|
||
cmp [si+bx],al
|
||
jb not_beaten
|
||
ja beaten
|
||
inc bx
|
||
loop check_num
|
||
not_beaten:
|
||
mov bp,false
|
||
jmp poppera
|
||
beaten:
|
||
pop cx
|
||
mov cs:hi_pos,cx
|
||
;play the happy highscore jingle . . .
|
||
;But only the first time!!
|
||
cmp first_high,true
|
||
je noplay_of_this
|
||
mov first_high,true
|
||
mov current_priority,0
|
||
mov jinglejumpcnt,1
|
||
mov highscore,true
|
||
playjingle_PENETRATE S_GameOver2 ;(HiScore jingle)
|
||
noplay_of_this:
|
||
mov sisa,1
|
||
mov bp,true
|
||
jmp done_hi_check
|
||
|
||
poppera:
|
||
pop cx
|
||
add di,12+3+1 ;12 nuffror, 3 bokst„ver
|
||
loop check_list
|
||
|
||
done_hi_check:
|
||
mov si,1
|
||
cmp bp,true
|
||
jne dont_getit
|
||
;*****************
|
||
;Print 'highscore pl x ( )' and install key-reader TS
|
||
|
||
mov al,cs:playerQ
|
||
mov hajjskar[13],al
|
||
add hajjskar[13],'7'
|
||
|
||
mov dotrut,offset get_it_from_keyboard
|
||
|
||
mov hojd_1,13
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*13*2/4
|
||
mov font_adr,offset font13
|
||
MOV AX,offset hajjskar
|
||
MOVE DI,sw*2*2/4
|
||
call PRINT_TEXT
|
||
|
||
;*****************
|
||
mov si,1
|
||
retn
|
||
|
||
dont_getit:
|
||
retn
|
||
|
||
get_it_from_keyboard:
|
||
;************ insert in list
|
||
push es
|
||
move es,ds
|
||
mov cx,cs:hi_pos
|
||
|
||
mov si,offset hi_score_list+(12+3+1)*3-1
|
||
mov di,offset hi_score_list+(12+3+1)*4-1
|
||
dec cx
|
||
jcxz pos4
|
||
|
||
mov ax,12+3+1
|
||
mul cx
|
||
mov cx,ax
|
||
|
||
std
|
||
rep movsb
|
||
|
||
pos4: sub di,(12+3+1)-1
|
||
cld
|
||
lea si,player_area.p_siffrorna
|
||
MOV CX,SIZE PLAYER_STRUC
|
||
MOV AL,CS:PLAYERQ
|
||
dec al
|
||
NIL AH
|
||
MUL CX
|
||
ADD SI,AX
|
||
mov cx,12
|
||
rep movsb ;mov in new hiscore
|
||
pop es
|
||
;di pekar d„r namnet ska petas in!!
|
||
mov cs:nof_chars_to_read,3
|
||
mov cs:place_hi,di
|
||
mov scan_code,-1 ;l„s ev. tidigare tangenttryck!
|
||
mov dotrut,offset read_keyboardet
|
||
mov si,1
|
||
retn
|
||
;*****************
|
||
place_hi dw ?
|
||
nof_chars_to_read dw ?
|
||
|
||
read_keyboardet:
|
||
push es
|
||
mov al,scan_code
|
||
cmp al,-1
|
||
je kvar_svar ;ej tryckt!
|
||
mov scan_code,-1
|
||
mov bx,offset alfa_keys
|
||
xlat
|
||
cmp al,0
|
||
je kvar_svar ;felaktigt tecken!
|
||
move es,ds
|
||
mov di,cs:place_hi
|
||
stosb
|
||
push ax
|
||
mov cs:place_hi,di
|
||
mov ax,3
|
||
sub ax,cs:nof_chars_to_read
|
||
mov di,offset hajjskar+16
|
||
add di,ax
|
||
pop ax
|
||
stosb ;skriv te sk„rm texten . .
|
||
dec cs:nof_chars_to_read
|
||
jnz kvar_svar
|
||
mov sisa,60 ;cpw!
|
||
mov dotrut,offset wait_a_little
|
||
pop es
|
||
|
||
mov hojd_1,13
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*13*2/4
|
||
mov font_adr,offset font13
|
||
MOV AX,offset hajjskar
|
||
MOVE DI,sw*2*2/4
|
||
call PRINT_TEXT
|
||
|
||
;cleara namnet!
|
||
push es
|
||
move es,ds
|
||
mov al,' '
|
||
mov cx,3
|
||
mov di,offset hajjskar+16
|
||
rep stosb ;skriv te sk„rm texten . .
|
||
pop es
|
||
jmp dont_write_play
|
||
kvar_svar:
|
||
pop es
|
||
mov hojd_1,13
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*13*2/4
|
||
mov font_adr,offset font13
|
||
MOV AX,offset hajjskar
|
||
MOVE DI,sw*2*2/4
|
||
call PRINT_TEXT
|
||
dont_write_play:
|
||
mov si,sisa
|
||
retn
|
||
|
||
wait_a_little:
|
||
dec si
|
||
cmp si,30 ;cpw!
|
||
jne dont_blame_me
|
||
push si
|
||
mov hojd_1,13
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*13*2/4
|
||
mov font_adr,offset font13
|
||
MOV AX,offset stjaernor
|
||
MOVE DI,sw*2*2/4
|
||
call PRINT_TEXT
|
||
pop si
|
||
dont_blame_me:
|
||
cmp si,2
|
||
jnbe retta_oooo
|
||
mov dotrut,offset spintsel_in_high
|
||
mov si,1
|
||
retta_oooo:
|
||
retn
|
||
_loop_:
|
||
dec cs:looper
|
||
JZ NOJUMPER_tomorrow
|
||
add bx,4
|
||
mov bx,[bx]
|
||
MOV NEXT_A,BX
|
||
jmp [bx]
|
||
|
||
looper dw ?
|
||
_setloop:
|
||
NOJUMPER_tomorrow:
|
||
;reinstall loop val
|
||
mov ax,[bx+2]
|
||
mov cs:looper,ax
|
||
|
||
MOV SISA,1
|
||
mov dotrut,offset WAITRUT
|
||
jmp print_end
|
||
|
||
|
||
|
||
SHOWER DB ?
|
||
player_adr dw ?
|
||
_INIT_SCORE:
|
||
mov cs:player_adr,0
|
||
sub cs:player_adr,size player_struc
|
||
MOV PLAYERSTEXT[7],0+'7'
|
||
MOV AL,PLAYERS
|
||
MOV CS:SHOWER,AL
|
||
inc CS:SHOWER
|
||
|
||
MOV SISA,1
|
||
mov dotrut,offset WAITRUT
|
||
jmp normal_end
|
||
_SHOW_SCORE:
|
||
INC PLAYERSTEXT[7]
|
||
add cs:player_adr,size player_struc
|
||
DEC CS:SHOWER
|
||
JZ NOJUMPER
|
||
|
||
|
||
MOV SISA,1
|
||
mov dotrut,offset ShowIt
|
||
|
||
cmp CS:SHOWER,1
|
||
je normal_end
|
||
|
||
add bx,2
|
||
mov bx,[bx]
|
||
MOV NEXT_A,BX
|
||
RETN
|
||
|
||
NOJUMPER:
|
||
MOV SISA,1
|
||
mov dotrut,offset WAITRUT
|
||
jmp normal_end
|
||
|
||
ShowIt:
|
||
mov hojd_1,5
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*5*2/4
|
||
mov font_adr,offset font5
|
||
MOV AX,offset PLAYERSTEXT
|
||
MOVE DI,sw*2*2/4
|
||
call PRINT_TEXT
|
||
|
||
; mov si,offset siffrorna
|
||
|
||
mov bx,cs:player_adr
|
||
LEA SI,PLAYER_AREA[BX].P_SIFFRORNA
|
||
|
||
mov bx,336*2/4+(320-12*16)/4 ;h”ger justerad!
|
||
MOVE ES,CS
|
||
CALL DWORD PTR ES:PEKOR
|
||
MOV SI,0
|
||
RETN
|
||
_END_OF_SPIN:
|
||
MOV SISA,1
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
PUSH BX
|
||
ADDTASK END_OF_SPIN
|
||
POP BX
|
||
JMP NORMAL_END
|
||
|
||
_TurnOffSpecialMode:
|
||
MOV SISA,1
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
mov specialmode,false
|
||
PUSH BX
|
||
ENDFLASH 32
|
||
LIGHTOFF 32 ;CP!? (SLŽCK MONEYMANIA-LAMPAN)
|
||
POP BX
|
||
mov current_priority,0
|
||
jmp Normal_End
|
||
_LIGHTFLASH:
|
||
MOV SISA,1
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
PUSH BX
|
||
LIGHTFLASH 32,3
|
||
POP BX
|
||
jmp Normal_End
|
||
|
||
_knacket:
|
||
mov dotrut,offset knackrut1
|
||
mov sisa,1
|
||
MOV PLAYER,1 ;F™R CHECK_XXBALL
|
||
jmp normal_end
|
||
|
||
|
||
;tid mellan knack samt antal knack . . .
|
||
knacktid=14 ;12 ;CPW!
|
||
nof_banks=15 ;CPW!
|
||
|
||
knackrut1:
|
||
PLAYJINGLE_PENETRATE S_endfig
|
||
MOV LASTJINGLE,62 ;TYST EFTER FULLGJORD PENETRERING
|
||
mov dotrut,offset knackrut2
|
||
;g”r text me sista nuffrerna!!
|
||
mov cl,players
|
||
nil ch
|
||
mov di,offset last_text
|
||
mov ah,' '
|
||
mov bx,10 ;n„st sista!
|
||
LEA SI,PLAYER_AREA[BX].P_SIFFRORNA
|
||
push es
|
||
move es,data
|
||
mov bx,0
|
||
make_last:
|
||
mov al,ds:[si]
|
||
add si,size player_struc
|
||
add al,'7'
|
||
stosw
|
||
mov word ptr offset [flashlast+bx],ax ;kopiera texten f”r senare blink
|
||
|
||
add bx,2
|
||
loop make_last
|
||
|
||
pop es
|
||
mov hojd_1,5
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*5*2/4
|
||
mov font_adr,offset font5
|
||
MOV AX,offset last_text
|
||
MOVE DI,sw*2/4
|
||
call PRINT_TEXT
|
||
|
||
|
||
mov si,nof_banks
|
||
mov sisa,nof_banks
|
||
mov cs:timglas,knacktid
|
||
retn
|
||
timglas dw ?
|
||
knackrut2:
|
||
dec cs:timglas
|
||
jz no_ret
|
||
ret
|
||
no_ret:
|
||
push si
|
||
mov cs:timglas,knacktid
|
||
mov ax,last_pos
|
||
;ax=linje adress, ett steg=32 pixel=> 1 steg= 8 adr.(mcgab)
|
||
;(1 char=8*2 pix, 1 steg=2 char)
|
||
shl ax,3
|
||
mov hojd_1,5
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*5*2/4
|
||
mov font_adr,offset font5
|
||
MOVE DI,sw*2*8/4
|
||
add di,ax
|
||
MOV AX,offset startext
|
||
call PRINT_TEXT
|
||
mov si,1
|
||
|
||
;knacka(????) fram en ny slutsiffra!
|
||
mov ax,slump_countern
|
||
mov dx,0
|
||
mov cx,10
|
||
div cx
|
||
;resten i de„ks e mellan n†ll † NI<4E>
|
||
CMP LAST_POS,DX
|
||
JNE ITS_ALRIGHT
|
||
NEG DX
|
||
ADD DX,9
|
||
ITS_ALRIGHT:
|
||
mov last_pos,dx
|
||
mov ax,last_pos
|
||
add ax,'7'
|
||
mov slutsiffra[0],al
|
||
sub ax,'7'
|
||
shl ax,3
|
||
mov hojd_1,5
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*5*2/4
|
||
mov font_adr,offset font5
|
||
MOV AX_PRINT,offset slutsiffra
|
||
MOVE DI_PRINT,sw*2*8/4
|
||
add di_print,ax
|
||
MOV PRINTTASK,OFFSET PRINT_TEXT
|
||
pop si
|
||
dec si
|
||
cmp si,0
|
||
jne retta_nuda
|
||
|
||
;kolla om siffrorna st„mmer f”r n†en . . .
|
||
mov cl,players
|
||
nil ch
|
||
mov si,offset last_text
|
||
mov bx,last_pos
|
||
add bx,'7'
|
||
|
||
mov di,offset flashlast
|
||
|
||
move es,data
|
||
mov cs:alla_glada,false
|
||
READ_NUFFROR:
|
||
lodsw
|
||
cmp al,bl
|
||
jne gladgnu_tu
|
||
mov cs:alla_glada,true
|
||
add di,2
|
||
loop READ_NUFFROR
|
||
jmp ture_sventton_kravdes_har
|
||
gladgnu_tu:
|
||
mov ax,'**'
|
||
stosw
|
||
loop READ_NUFFROR
|
||
ture_sventton_kravdes_har:
|
||
cmp cs:alla_glada,true
|
||
je gladgnu
|
||
mov si,0
|
||
jmp retta_nuda ;-( ingen glad )-:
|
||
|
||
;Om javisst, spela glad gnu † flasha!
|
||
gladgnu:
|
||
MOV MATRIX_SPEED,3
|
||
MOV MATRIX_CNT,3
|
||
MOV MATRIX_ONOFF,TRUE
|
||
MOV MATRIX_IS_FLASHING,TRUE
|
||
|
||
mov hojd_1,5
|
||
mov tabort_diovre,0
|
||
mov tabort_diovre_fnt,0
|
||
mov hojd_add,bredd_1/4-sw*5*2/4
|
||
mov font_adr,offset font5
|
||
MOV AX,offset flashlast
|
||
MOVE DI,sw*2/4
|
||
call PRINT_TEXT
|
||
|
||
|
||
mov current_priority,0
|
||
PLAYJINGLE S_Knacket
|
||
MOV JINGLEJUMPCNT,1
|
||
mov current_priority,0
|
||
mov lastjingle,55
|
||
mov si,0
|
||
retta_nuda:
|
||
retn
|
||
alla_glada db ?
|
||
|
||
_CHECK_XXBALLS: ;OBS! TV<54> ING<4E>NGAR TILL DENNA RUTIN
|
||
;INPUT: LAST_TEXT, LAST_POS, PLAYER, PLAYERS
|
||
;OUTPUT: FT_PEKARE, PLAYER
|
||
TESTNEXTPL:
|
||
PUSH BX
|
||
|
||
MOV BL,PLAYER
|
||
NIL BH
|
||
SHL BX,1
|
||
ADD BX,OFFSET LAST_TEXT-2 ;bx pekar p† spelare n's slutsiffra
|
||
|
||
MOV AL,[BX]
|
||
MOV WORD PTR [BX],'XX' ;DESTROY HIM MY ROBOTS!
|
||
SUB AL,'7'
|
||
NIL AH
|
||
|
||
POP BX
|
||
|
||
CMP LAST_POS,AX
|
||
JE THIS_ONE ;HAN SKA F<> XXBALL!!!
|
||
|
||
INC PLAYER ;INGEN XXBALL F™R HONOM!
|
||
MOV AL,PLAYER
|
||
CMP AL,PLAYERS
|
||
JNA TESTNEXTPL
|
||
|
||
MOV BX,OFFSET after_xxballTS
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
|
||
THIS_ONE:
|
||
MOV AL,PLAYER
|
||
ADD AL,'7' ;SEPEKOMPENSERING
|
||
MOV PLAYERSTEXT[7],AL
|
||
MOV XXBALLE,TRUE
|
||
MOV BX,OFFSET shoOt_AGAIN_Onts
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
|
||
;*********************************
|
||
|
||
_KOLLA_XXBALL:
|
||
CMP XXBALLE,FALSE
|
||
JE HU_
|
||
PUSH BX
|
||
CALL VARS_2_P_STRUC ;STORE TABLE AND SCORE!
|
||
POP BX
|
||
|
||
CMP LIGHTSTATUS[31],TRUE ;LAUGH AGAIN?
|
||
JE LET_HIM_SHOOT_AGAIN ;MEGA-HOPP
|
||
|
||
MOV AL,PLAYER ;IS HE THE HIGHEST PLAYER?
|
||
CMP AL,PLAYERS
|
||
JE HIGHEST_PLAYER2
|
||
|
||
INC PLAYER ;CHANGE TO THE NEXT PLAYER!
|
||
JMP PLAYER_CHANGED2
|
||
|
||
HIGHEST_PLAYER2:
|
||
MOV BX,OFFSET AFTER_XXBALLTS
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
|
||
PLAYER_CHANGED2:
|
||
MOV AL,PLAYER
|
||
ADD AL,'7' ;SEPEKOMPENSERING
|
||
MOV PLAYERSTEXT[7],AL
|
||
|
||
MOV BX,OFFSET CHECK_XXBALLTS
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
|
||
;**********
|
||
|
||
|
||
_CHANGE_PLAYER:
|
||
PUSH BX
|
||
CMP HOLDBONUSFLAG,TRUE
|
||
JNE NOT_HB_TRUE
|
||
MOV SI,OFFSET TEMPSIFFRORNA ;HOLD THE BONUS!
|
||
MOV DI,OFFSET BONUSSIFFRORNA
|
||
MOVE ES,DS
|
||
MOV CX,6
|
||
REP MOVSW
|
||
NOT_HB_TRUE:
|
||
CALL VARS_2_P_STRUC ;STORE TABLE AND SCORE!
|
||
pop bx
|
||
CMP LIGHTSTATUS[31],TRUE ;LAUGH AGAIN?
|
||
JE LET_HIM_SHOOT_AGAIN
|
||
push bx
|
||
MOV AL,PLAYER ;IS HE THE HIGHEST PLAYER?
|
||
CMP AL,PLAYERS
|
||
JE HIGHEST_PLAYER
|
||
INC PLAYER ;CHANGE TO THE NEXT PLAYER!
|
||
JMP PLAYER_CHANGED
|
||
HIGHEST_PLAYER:
|
||
INC BALLS[11]
|
||
MOV AL,NO_OF_BALLS
|
||
CMP BALLS[11],AL
|
||
JA NO_MORE_BALLS
|
||
MOV PLAYER,1 ;NEXT PLAYER IS FIRST PLAYER!
|
||
MOV AL,BALLS[11]
|
||
ADD AL,'7' ;SEPEKOMPENSERING
|
||
MOV BALLSTEXT[5],AL
|
||
PLAYER_CHANGED:
|
||
|
||
MOV AL,PLAYER
|
||
ADD AL,'7' ;SEPEKOMPENSERING
|
||
MOV PLAYERSTEXT[7],AL
|
||
|
||
ADDTASK NEW_BALL_TASK ;TO GAME FROM GAME
|
||
POP BX
|
||
|
||
HU_: ADD BX,2 ;TASKSYTEM, HOPPA TILL NŽSTA/AVSLUT
|
||
CMP WORD PTR [BX],0
|
||
JNE _NEXTp_7
|
||
MOV BX,0
|
||
MOV NEXT_A,BX
|
||
RETN
|
||
_NEXTp_7:
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
|
||
;GNUERNA
|
||
LET_HIM_SHOOT_AGAIN: ;2 ING<4E>NGAR!
|
||
MOV BX,OFFSET shoot_again_onTS
|
||
MOV NODOTCOUNT,0
|
||
UPDAT_SCORE
|
||
JMP [BX]
|
||
|
||
_NEW_BALL2:
|
||
PUSH BX
|
||
ADDTASK NEW_BALL_TASK ;TO GAME FROM GAME
|
||
POP BX
|
||
JMP HU_
|
||
|
||
|
||
NO_MORE_BALLS:
|
||
CALL VARS_2_P_STRUC ;STORE LAST PLAYER'S SCORE TOO!
|
||
POP BX
|
||
MOV BX,OFFSET out_of_ballsTS
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
RETN
|
||
|
||
|
||
_2_DEMO_MODE:
|
||
ADDTASK TO_DEMO_FROM_GAME
|
||
JMP HU_
|
||
zeroscore:
|
||
push es
|
||
move es,ds
|
||
mov cx,12/2
|
||
mov ax,0
|
||
mov di,offset siffrorna
|
||
rep stosw
|
||
pop es
|
||
retn
|
||
|
||
TO_DEMO_FROM_GAME:
|
||
MOV PLAYERS_CP,TRUE
|
||
CALL GO_DEMO_MODE ;TO DEMO FROM GAME
|
||
MOV SCREENFORCE,BANH-(SH_LO-SPLH)
|
||
CMP HI_RES,TRUE
|
||
JNE NOTHIRES17
|
||
MOV SCREENFORCE,BANH-(SH_HI-SPLH)
|
||
NOTHIRES17:
|
||
MOV CARMEN,-1
|
||
; CALL DEMO_MUSIC ;CP! DET SKALL REDAN VARA GJORT!
|
||
call zeroscore
|
||
CALL SLACK_LIGHTS
|
||
MOV ADDPLAYERS,TRUE
|
||
SUICIDE
|
||
|
||
|
||
|
||
|
||
;TUBORG!
|
||
|
||
|
||
COMMENT\
|
||
;CP! RENSA MATRIX OCH RITA SLUTSIFFROR!
|
||
ADDTASK KNACK_SEKVENS
|
||
SUICIDE
|
||
|
||
KNACK_SEKVENS:
|
||
;CP! KNACKA!
|
||
KNACK_KLART:
|
||
; ADDTASK LYCKY_GUY ;CP! OM N<>GON FICK EN X-BALL
|
||
ADDTASK AFTER_KNACK
|
||
SUICIDE
|
||
|
||
AFTER_KNACK:
|
||
;CP! KOLLA OM N<>N FICK HIGHSCORE!
|
||
HIGH_READY:
|
||
ADDTASK SHOW_SCORES
|
||
SUICIDE
|
||
|
||
SHOW_SCORES: ;NOTE: TRIGGED BY AFTER_KNACK--- AND SHOW_GAME_OVER---
|
||
;CP! RŽKNARE1 = 0: KOLLA OM ALLA VISADE 2 GGR.
|
||
; VISA SEDAN POŽNG F™R SPELARE (SPELARE-RŽKNARE).
|
||
; = CA 2*60: ADDTASK SHOW_GAME_OVER.
|
||
; ADDTASK SHOW_GAME_OVER
|
||
ADDTASK TO_DEMO_FROM_GAME
|
||
SUICIDE
|
||
|
||
SHOW_GAME_OVER:
|
||
;CP! VISA "GAME OVER"
|
||
ADDTASK SGO_TASK2
|
||
SUICIDE
|
||
|
||
SGO_TASK2:
|
||
WAITSYNCS 45 ;CPW!
|
||
ADDTASK SHOW_SCORES
|
||
SUICIDE
|
||
\
|
||
|
||
LOOSE_BALL ENDP
|
||
|
||
|
||
|
||
;******************************** NEW_BALL ************************************
|
||
|
||
NEW_BALL_TASK:
|
||
WAITSYNCS 60
|
||
CALL NEW_BALL
|
||
RETN ;PGA NEWBALL
|
||
|
||
NEW_BALL PROC NEAR ;ENDA SŽTTET ATT F<> UT EN BOLL P<> BANAN!
|
||
MOV LOOSING,FALSE
|
||
MOV BALL_DOWN,FALSE
|
||
MOV I_UTSKJUT,TRUE
|
||
|
||
CALL WHEN_NEW_BALL_RESET
|
||
CALL WHEN_NEW_BALL_RESET_TABLE
|
||
|
||
MOV HOLDSTILL,TRUE
|
||
SETBALLPOS STARTX-5-15,STARTY-5,0,0,FALSE
|
||
MOV SCREENFORCE2,-1 ;500
|
||
|
||
CMP ADDPLAYERS,TRUE
|
||
JE NOSP
|
||
PLAYJINGLE S_SPRING
|
||
NOSP:
|
||
MOV LASTJINGLE,0
|
||
MOV SCORECHANGED,FALSE
|
||
|
||
CMP ADDPLAYERS,TRUE
|
||
JE ITS_FROM_DEMO
|
||
CALL NEW_BALL_PART_TWO
|
||
RETN
|
||
|
||
ITS_FROM_DEMO:
|
||
ADDTASK SNART_NEW_BALL
|
||
RETN
|
||
|
||
NEW_BALL_PART_TWO:
|
||
ADDTASK SOUNDNEWBALL
|
||
ADDTASK SETBALL
|
||
ADDTASK SOUNDBRICKUPP
|
||
|
||
MOV ALLOWFLIP,TRUE
|
||
MOV TILTFLAG,FALSE
|
||
MOV TILTCOUNTER,0
|
||
MOV SCORECHANGED,FALSE
|
||
RETN
|
||
|
||
SOUNDBRICKUPP:
|
||
WAITSYNCS 5
|
||
SOUNDEFFECT SBRICKUPP,0
|
||
SUICIDE
|
||
|
||
SOUNDNEWBALL:
|
||
WAITSYNCS 50
|
||
SOUNDEFFECT SNEWBALL,0
|
||
SUICIDE
|
||
|
||
SETBALL:
|
||
WAITSYNCS 80
|
||
SETBALLPOS STARTX-5,STARTY-5,10,0,FALSE
|
||
MOV HOLDSTILL,FALSE
|
||
MOV SCREENFORCE2,-1
|
||
SUICIDE
|
||
;FIAT UNO
|
||
NEW_BALL ENDP
|
||
|
||
MOTA_BORT_INACTIVE_SLINGAN:
|
||
;OBS! AVINSTALLERA DENNA GENOM "MOV I_UTSKJUT,FALSE"
|
||
MOV NODOTCOUNT,0
|
||
; UPDAT_INFOBAR ;CP? JOHAN F<>R FIXA DETTA!
|
||
CMP I_UTSKJUT,FALSE
|
||
JE TA_BORT_MEJ
|
||
RETN
|
||
TA_BORT_MEJ:
|
||
SUICIDE
|
||
|
||
|
||
P_STRUC_2_VARS PROC NEAR ;INPUT:PLAYER
|
||
MOV BL,PLAYER
|
||
DEC BL
|
||
NIL BH
|
||
MOV AX,SIZE PLAYER_STRUC
|
||
MUL BX
|
||
MOV BX,AX ;BX=INDEX TO CORRECT PLAYER DATA IN PLAYER_AREA
|
||
|
||
MOVEBCD SIFFRORNA,PLAYER_AREA[BX].P_SIFFRORNA
|
||
MOVEBCD BONUSSIFFRORNA,PLAYER_AREA[BX].P_BONUSSIFFRORNA
|
||
MOVEBCD CYCLONECOUNTERBCD,PLAYER_AREA[BX].P_CYCLONECOUNTERBCD
|
||
MOVA CYCLONECOUNTER,PLAYER_AREA[BX].P_CYCLONECOUNTER
|
||
MOVAL TOP_THREE,PLAYER_AREA[BX].P_TOP_THREE
|
||
MOVAL ALL_SIX,PLAYER_AREA[BX].P_ALL_SIX
|
||
CMP TOP_THREE,FALSE
|
||
JE NO_PRIZES
|
||
MOV TVFLAG,2
|
||
MOV TRIPFLAG,2
|
||
MOV CARFLAG,2
|
||
LIGHTON 13
|
||
LIGHTON 14
|
||
LIGHTON 15
|
||
CMP ALL_SIX,FALSE
|
||
JE NO_PRIZES
|
||
MOV BOATFLAG,2
|
||
MOV HOUSEFLAG,2
|
||
MOV PLANEFLAG,2
|
||
LIGHTON 28
|
||
LIGHTON 29
|
||
LIGHTON 30
|
||
NO_PRIZES:
|
||
RETN
|
||
P_STRUC_2_VARS ENDP
|
||
|
||
|
||
VARS_2_P_STRUC PROC NEAR ;INPUT: PLAYER
|
||
;2 ENTRIES TO THIS RUT
|
||
MOV BL,PLAYER
|
||
DEC BL
|
||
NIL BH
|
||
MOV AX,SIZE PLAYER_STRUC
|
||
MUL BX
|
||
MOV BX,AX ;BX=INDEX TO CORRECT PLAYER DATA IN PLAYER_AREA
|
||
VARS_2_P_STRUC_2: ;USED BY WHEN_NEW_GAME_RESET!
|
||
MOVEBCD PLAYER_AREA[BX].P_SIFFRORNA,SIFFRORNA
|
||
MOVEBCD PLAYER_AREA[BX].P_BONUSSIFFRORNA,BONUSSIFFRORNA
|
||
MOVEBCD PLAYER_AREA[BX].P_CYCLONECOUNTERBCD,CYCLONECOUNTERBCD
|
||
MOVA PLAYER_AREA[BX].P_CYCLONECOUNTER,CYCLONECOUNTER
|
||
MOVAL PLAYER_AREA[BX].P_TOP_THREE,TOP_THREE
|
||
MOVAL PLAYER_AREA[BX].P_ALL_SIX,ALL_SIX
|
||
RETN
|
||
VARS_2_P_STRUC ENDP
|
||
|
||
|
||
|
||
;******************************** TILT TILT TILT *****************************
|
||
HE_TILTED PROC NEAR
|
||
MOV ALLOWFLIP,FALSE
|
||
PLAYJINGLE S_TILT
|
||
MOV LASTJINGLE,EMPTYJINGLE
|
||
MOV BX,OFFSET tiltTS
|
||
CALL DO_MATRIX
|
||
CALL RESETFLASHLIST
|
||
CALL SLACK_LIGHTS
|
||
RETN
|
||
HE_TILTED ENDP
|
||
|
||
HE_ALMOST_TILTED PROC NEAR
|
||
PLAYJINGLE S_DANGER
|
||
RETN
|
||
ENDP
|
||
|
||
;********************************* CHECK SHIFTKEYS ****************************
|
||
|
||
CHECK_SHIFTKEYS PROC NEAR
|
||
CMP SHIFTPRESSED,TRUE
|
||
JNE NO_SHIFT
|
||
MOV SHIFTPRESSED,FALSE
|
||
|
||
NO_SHIFT:
|
||
RETN
|
||
CHECK_SHIFTKEYS ENDP
|
||
|
||
|
||
|
||
;******************************** GATES ROUTINES ******************************
|
||
opengate1:
|
||
mov si,offset gate1o
|
||
jmp gogate1
|
||
closegate1:
|
||
mov si,offset gate1c
|
||
gogate1:
|
||
mova es,mask2_2
|
||
mov di,40*96
|
||
mov cx,25
|
||
mov dx,3
|
||
call MOVE_mask_DATA
|
||
retn
|
||
|
||
opengate2:
|
||
mov si,offset gate2o
|
||
jmp gogate2
|
||
closegate2:
|
||
mov si,offset gate2c
|
||
gogate2:
|
||
mova es,mask1_2
|
||
mov di,40*305+272/8+1
|
||
mov cx,34
|
||
mov dx,2
|
||
call MOVE_mask_DATA
|
||
retn
|
||
opengate3:
|
||
mov si,offset gate3o
|
||
jmp gogate3
|
||
closegate3:
|
||
mov si,offset gate3c
|
||
gogate3:
|
||
mova es,mask1_2
|
||
mov di,136/8+40*227
|
||
mov cx,16
|
||
mov dx,2
|
||
call MOVE_mask_DATA
|
||
retn
|
||
opengate4:
|
||
mov si,offset gate4o
|
||
jmp gogate4
|
||
closegate4:
|
||
mov si,offset gate4c
|
||
gogate4:
|
||
mova es,mask1_2
|
||
mov di,136/8+40*247
|
||
mov cx,16
|
||
mov dx,1
|
||
call MOVE_mask_DATA
|
||
retn
|
||
opengate5:
|
||
mov si,offset gate5o
|
||
jmp gogate5
|
||
closegate5:
|
||
mov si,offset gate5c
|
||
gogate5:
|
||
mova es,mask1_2
|
||
mov di,32/8+266*40
|
||
mov cx,16
|
||
mov dx,1
|
||
call MOVE_mask_DATA
|
||
retn
|
||
opengate6:
|
||
mov si,offset gate6o
|
||
jmp gogate6
|
||
closegate6:
|
||
mov si,offset gate6c
|
||
gogate6:
|
||
mova es,mask1_2
|
||
mov di,24/8+286*40
|
||
mov cx,16
|
||
mov dx,2
|
||
call MOVE_mask_DATA
|
||
retn
|
||
opengate7:
|
||
mov si,offset gate7o
|
||
jmp gogate7
|
||
closegate7:
|
||
mov si,offset gate7c
|
||
gogate7:
|
||
mova es,mask2_2
|
||
mov di,22+163*40
|
||
mov cx,20
|
||
mov dx,4
|
||
ADD SI,DX
|
||
call MOVE_mask_DATA_b
|
||
retn
|
||
|
||
opengate8:
|
||
mov si,offset gate8o
|
||
jmp gogate8
|
||
closegate8:
|
||
mov si,offset gate8c
|
||
gogate8:
|
||
mova es,mask1_2
|
||
mov di,511*40
|
||
mov cx,14
|
||
mov dx,4
|
||
ADD SI,DX
|
||
call MOVE_mask_DATA_b
|
||
retn
|
||
|
||
dropb1:
|
||
CALL ADDMONEY
|
||
CMP LIGHTSTATUS[7],FALSE
|
||
JE DUMRET
|
||
EFFECT TOUCHB
|
||
soundeffect s_touch2,0
|
||
call opengate3
|
||
lightoff 7
|
||
CMP LIGHTSTATUS[8],FALSE
|
||
JNE DUMRET
|
||
ADDTASK UP_B
|
||
retn
|
||
dropb2:
|
||
CALL ADDMONEY
|
||
CMP LIGHTSTATUS[8],FALSE
|
||
JE DUMRET
|
||
EFFECT TOUCHB
|
||
soundeffect s_touch2,0
|
||
call opengate4
|
||
lightoff 8
|
||
CMP LIGHTSTATUS[7],FALSE
|
||
JNE DUMRET
|
||
ADDTASK UP_B
|
||
retn
|
||
UP_B: WAITSYNCS 60
|
||
SOUNDEFFECT SBRICKUPP,0
|
||
LIGHTON 7
|
||
LIGHTON 8
|
||
CALL CLOSEGATE3
|
||
CALL CLOSEGATE4
|
||
SUICIDE
|
||
dropC1:
|
||
CALL ADDMONEY
|
||
CMP LIGHTSTATUS[9],FALSE
|
||
JE DUMRET
|
||
EFFECT TOUCHC
|
||
soundeffect s_touch2,0
|
||
call opengate5
|
||
lightoff 9
|
||
CMP LIGHTSTATUS[10],FALSE
|
||
JNE DUMRET
|
||
ADDTASK UP_C
|
||
retn
|
||
dropC2:
|
||
CALL ADDMONEY
|
||
CMP LIGHTSTATUS[10],FALSE
|
||
JE DUMRET
|
||
EFFECT TOUCHC
|
||
soundeffect s_touch2,0
|
||
call opengate6
|
||
lightoff 10
|
||
CMP LIGHTSTATUS[9],FALSE
|
||
JNE DUMRET
|
||
ADDTASK UP_C
|
||
retn
|
||
UP_C: WAITSYNCS 60
|
||
SOUNDEFFECT SBRICKUPP,0
|
||
LIGHTON 9
|
||
LIGHTON 10
|
||
CALL CLOSEGATE5
|
||
CALL CLOSEGATE6
|
||
SUICIDE
|
||
;************************* SUPER MODES CHECKS *********************************
|
||
|
||
|
||
|
||
;******************************************************************************
|
||
;***************************** BRICKOR & KNAPPAR ******************************
|
||
;******************************************************************************
|
||
dropa1:
|
||
CALL ADDMONEY
|
||
soundeffect s_touch2,0
|
||
cmp lightstatus[3],true
|
||
je doret1
|
||
lightflash 2,6
|
||
mov lightstatus[2],true
|
||
addtask flasha2
|
||
effect dollartouch
|
||
retn
|
||
dropa2:
|
||
CALL ADDMONEY
|
||
soundeffect s_touch2,0
|
||
cmp lightstatus[2],true
|
||
jne doret2
|
||
doret1: lightflash 2,2
|
||
lightflash 3,2
|
||
addtask flasha23
|
||
effect dollartouch2
|
||
endflash 18
|
||
invertedsyncedflash 18,sfspeed,syncflasher
|
||
mov lightstatus[18],true
|
||
call opengate1 ;open gate to spin wheel
|
||
retn
|
||
doret2: lightflash 3,6
|
||
mov lightstatus[3],true
|
||
addtask flasha3
|
||
effect dollartouch
|
||
retn
|
||
flasha2:
|
||
waitsyncs 25
|
||
endflash 2
|
||
lighton 2
|
||
suicide
|
||
flasha3:
|
||
waitsyncs 25
|
||
endflash 3
|
||
lighton 3
|
||
suicide
|
||
flasha23:
|
||
waitsyncs 60
|
||
endflash 2
|
||
lightoff 2
|
||
endflash 3
|
||
lightoff 3
|
||
suicide
|
||
|
||
|
||
|
||
;******************************************************************************
|
||
;********************************** LOWER *************************************
|
||
;******************************************************************************
|
||
|
||
|
||
;*********************************** GAME ON **********************************
|
||
|
||
CLOSE1: ;GAME ON
|
||
CMP LASTAREA,OFFSET open1
|
||
JNE NOT_GAME_ON
|
||
call closegate2
|
||
MOV ADDPLAYERS,FALSE
|
||
PLAYJINGLE S_MAIN
|
||
MOV LASTJINGLE,1
|
||
MOV BX,OFFSET PARTY_OFFTS
|
||
CALL DO_MATRIX
|
||
MOV I_UTSKJUT,FALSE ;TILL<4C>TER INACTIVE-SLINGAN (DOTMATRIX)
|
||
MOV PARTYFLASH,FALSE
|
||
NOT_GAME_ON:
|
||
RETN
|
||
|
||
close4:
|
||
call closegate8
|
||
retn
|
||
|
||
;***************************** SPRING INVALID *********************************
|
||
|
||
open1: ;SPRING INVALID
|
||
MOV SPRING_VALID,FALSE
|
||
call opengate2
|
||
RETN
|
||
|
||
|
||
;******************************* SPRING VALID *********************************
|
||
|
||
BYGEL28: ;SPRING VALID
|
||
MOV SPRING_VALID,TRUE
|
||
RETN
|
||
;******************************************************************************
|
||
GOT_THE_BILLION:
|
||
MOV BILLION_ENABLED,FALSE
|
||
EFFECT BILLION
|
||
ENDFLASH 27
|
||
LIGHTFLASH 27,4
|
||
ADDTASK TURNOFF_BILLION
|
||
mov holdstill,TRUE
|
||
setballpos 4,529,0,0,false
|
||
RETN
|
||
TURNOFF_BILLION:
|
||
waitsyncs 5*50 ;cpw!
|
||
ENDFLASH 27
|
||
LIGHTOFF 27
|
||
LIGHTOFF 13
|
||
LIGHTOFF 14
|
||
LIGHTOFF 15
|
||
LIGHTOFF 28
|
||
LIGHTOFF 29
|
||
LIGHTOFF 30
|
||
MOV TVFLAG,FALSE
|
||
MOV TRIPFLAG,FALSE
|
||
MOV CARFLAG,FALSE
|
||
MOV BOATFLAG,FALSE
|
||
MOV PLANEFLAG,FALSE
|
||
MOV HOUSEFLAG,FALSE
|
||
MOV TOP_THREE,FALSE
|
||
MOV ALL_SIX,FALSE
|
||
|
||
mov y_hast,-3500
|
||
SOUNDEFFECT SNEWBALL,0
|
||
MOV HOLDSTILL,FALSE
|
||
|
||
SUICIDE
|
||
DONT_NOW:
|
||
mov holdstill,TRUE
|
||
setballpos 4,529,0,0,false
|
||
ADDTASK SLAPP_HONOM
|
||
RETN
|
||
SLAPP_HONOM:
|
||
WAITSYNCS 30
|
||
mov y_hast,-3500
|
||
SOUNDEFFECT SNEWBALL,0
|
||
MOV HOLDSTILL,FALSE
|
||
SUICIDE
|
||
|
||
gropB: call opengate8
|
||
CMP SPECIALMODE,TRUE
|
||
JE DONT_NOW
|
||
CMP TILTFLAG,TRUE
|
||
JE DONT_NOW
|
||
CMP BILLION_ENABLED,TRUE
|
||
JE GOT_THE_BILLION ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
mov holdstill,true
|
||
cmp lightstatus[17],0
|
||
jnz noclose1
|
||
call closegate1 ;st„ng till spin wheel
|
||
noclose1:
|
||
setballpos 4,529,0,0,false
|
||
;spin wheel (lights 19-26)
|
||
playjingle s_mystery
|
||
mov nextspintime,offset SPINtimes_hi
|
||
cmp hi_res,true
|
||
je nohej
|
||
mov nextspintime,offset SPINtimes
|
||
nohej:
|
||
mov bx,nextspintime
|
||
mova SPINcounter,[bx]
|
||
mov bx,offset rensa2TS
|
||
call do_matrix
|
||
mov al,19
|
||
add al,spinlight
|
||
lightoff al
|
||
cmp lightstatus[17],1
|
||
jne nofusk
|
||
mov al,0 ;fuska s† att lampan stannar p† r„tt sak!
|
||
cmp tvflag,1
|
||
je dosp
|
||
mov al,1
|
||
cmp tripflag,1
|
||
je dosp
|
||
mov al,2
|
||
cmp carflag,1
|
||
je dosp
|
||
mov al,6
|
||
cmp boatflag,1
|
||
je dosp
|
||
mov al,5
|
||
cmp houseflag,1
|
||
je dosp
|
||
mov al,4
|
||
cmp planeflag,1
|
||
je dosp
|
||
nofusk: mov al,byte ptr slump_countern
|
||
dosp: cmp hi_res,true
|
||
jne noth
|
||
sub al,2
|
||
noth:
|
||
mov spinlight,al
|
||
and spinlight,7
|
||
|
||
MOV SCREENFORCE2,270
|
||
CMP HI_RES,TRUE
|
||
JNE NOTHIRES35
|
||
MOV SCREENFORCE2,220
|
||
NOTHIRES35:
|
||
|
||
retn
|
||
nextSPIN:
|
||
add nextspintime,2
|
||
mov bx,nextspintime
|
||
cmp word ptr [bx],-1
|
||
je last_spin
|
||
mova spincounter,[bx]
|
||
mov al,19
|
||
add al,spinlight
|
||
lightoff al
|
||
inc spinlight
|
||
and spinlight,7
|
||
mov al,19
|
||
add al,spinlight
|
||
lighton al
|
||
mov al,12
|
||
mul spinlight
|
||
add ax,offset spinscores
|
||
mov spinscoreptr,ax ;addressen till current po„ng
|
||
mov bx,offset spinTS
|
||
call do_matrix
|
||
retn
|
||
last_spin:
|
||
mov bx,offset flashmatrixTS
|
||
call do_matrix
|
||
cmp lightstatus[17],1
|
||
jne no_prize_to_collect
|
||
addtask you_win
|
||
retn
|
||
no_prize_to_collect:
|
||
addtask end_of_spin
|
||
retn
|
||
end_of_spin:
|
||
waitsyncs 100 ;cpw!
|
||
mov screenforce2,-1
|
||
cmp spinscoreptr,offset spinscores
|
||
jne adds
|
||
mov spinscoreptr,offset tjufemtusen
|
||
adds:
|
||
mov si,spinscoreptr
|
||
mov di,offset siffrorna
|
||
call addscorebcd
|
||
mov bx,offset rensaTS
|
||
call do_matrix
|
||
mov holdstill,false
|
||
mov y_hast,-3500*TT/NN
|
||
endflash 18
|
||
lightoff 18
|
||
suicide
|
||
you_win:
|
||
cmp top_three,true
|
||
je gottopthree
|
||
cmp tvflag,2
|
||
je won_tv
|
||
endflash 13
|
||
lighton 13
|
||
mov tvflag,2
|
||
MOV CURRENT_PRIORITY,0
|
||
effect youwinTV
|
||
jmp endofyw
|
||
won_tv:cmp tripflag,2
|
||
je won_trip
|
||
endflash 14
|
||
lighton 14
|
||
mov tripflag,2
|
||
MOV CURRENT_PRIORITY,0
|
||
effect youwinTRIP
|
||
jmp endofyw
|
||
won_trip:
|
||
endflash 15
|
||
lighton 15
|
||
ENDFLASH 17
|
||
LIGHTOFF 17
|
||
mov CARflag,2
|
||
MOV CURRENT_PRIORITY,0
|
||
effect youwinCAR
|
||
syncedFLASH 16,sfspeed,syncflasher
|
||
MOV LIGHTSTATUS[16],1 ;ENABLE JACKPOT
|
||
MOV JP_COUNTER,JP_TIME
|
||
mov top_three,true
|
||
call closegate1 ;st„ng till spin wheel
|
||
jmp endofyw
|
||
endofyw:
|
||
suicide
|
||
gottopthree:
|
||
cmp BOATflag,2
|
||
je won_BOAT
|
||
endflash 28
|
||
lighton 28
|
||
mov BOATflag,2
|
||
MOV CURRENT_PRIORITY,0
|
||
effect youwinBOAT
|
||
jmp endofyw
|
||
won_BOAT:
|
||
cmp HOUSEflag,2
|
||
je won_HOUSE
|
||
endflash 29
|
||
lighton 29
|
||
mov HOUSEflag,2
|
||
MOV CURRENT_PRIORITY,0
|
||
effect youwinHOUSE
|
||
jmp endofyw
|
||
won_HOUSE:
|
||
endflash 30
|
||
lighton 30
|
||
ENDFLASH 17
|
||
LIGHTOFF 17
|
||
mov PLANEflag,2
|
||
MOV CURRENT_PRIORITY,0
|
||
effect youwinPLANE
|
||
; LIGHTFLASH 16,10
|
||
; MOV LIGHTSTATUS[16],1 ;ENABLE JACKPOT
|
||
; MOV JP_COUNTER,JP_TIME
|
||
mov all_six,true
|
||
call closegate1 ;st„ng till spin wheel
|
||
jmp endofyw
|
||
LOCK_THE_BALL:
|
||
LIGHTON 6
|
||
SYNCEDFLASH 27,SFSPEED,SYNCFLASHER
|
||
EFFECT SHOOTTHEBALL
|
||
MOV LASTJINGLE,0 ;EFTER BILLION LIT SKA DEN SPELA S_SPRING
|
||
SETBALLPOS STARTX,STARTY,10,0,FALSE
|
||
mov holdstill,false
|
||
MOV CURRENT_PRIORITY,0
|
||
MOV LASTJINGLE,0
|
||
CALL OPENGATE1 ;™PPNA TILL SPIN WHEEL
|
||
MOV BILLION_ENABLED,TRUE
|
||
RETN
|
||
gropA: mov holdstill,true
|
||
CMP SPECIALMODE,TRUE
|
||
JE RELEASE_HIM
|
||
CMP ALL_SIX,TRUE
|
||
JE LOCK_THE_BALL
|
||
CALL JACKADD
|
||
cmp cash5counter,0
|
||
jnz cash_times_5
|
||
effect cashpot
|
||
go_cashpot:
|
||
addtask release_ball
|
||
retn
|
||
cash_times_5:
|
||
mov cash5counter,10 ;st„ng av cash5lampan
|
||
mov cx,5
|
||
addcash:
|
||
addbcd cashpot5val,cashpotval
|
||
loop addcash
|
||
effect cashpot5
|
||
jmp go_cashpot
|
||
release_ball:
|
||
mov holdstill,true
|
||
SETBALLPOS 103,233,0,0,FALSE
|
||
waitsyncs 200-40
|
||
lighton 6
|
||
addtask basil_fawlty
|
||
mova es,ds
|
||
mov di,offset cashpot5val
|
||
mov cx,6
|
||
nil ax
|
||
rep stosw
|
||
suicide
|
||
basil_fawlty: ;old chap
|
||
waitsyncs 40
|
||
CALL RELEASE_IT
|
||
suicide
|
||
RELEASE_HIM:
|
||
MOV HOLDSTILL,TRUE
|
||
LIGHTON 6
|
||
ADDTASK SLAPP2
|
||
RETN
|
||
SLAPP2:
|
||
SETBALLPOS 103,233,0,0,FALSE
|
||
WAITSYNCS 30
|
||
CALL RELEASE_IT
|
||
SUICIDE
|
||
RELEASE_IT:
|
||
lightoff 6
|
||
SOUNDEFFECT SGROP,0
|
||
SETBALLPOS 103,233,100*TT/NN,1700*TT/NN,FALSE
|
||
mov holdstill,false
|
||
RETN
|
||
|
||
bygel5:
|
||
CALL CASHADD
|
||
CALL ADDMONEY2
|
||
effect bygelsetC ;he's on the right ramp
|
||
mov CARcounter,CAR_time
|
||
call opengate7
|
||
CMP JP_COUNTER,0
|
||
JZ NO_JP2
|
||
MOV JP_COUNTER,1 ;S<> ATT LAMPAN SLOCKNAR VID NŽSTA DOWNCOUNT
|
||
EFFECT JACKPOT
|
||
CALL INITJACK
|
||
MOV SJP_COUNTER,SJP_TIME
|
||
LIGHTFLASH 5,10
|
||
PLAYJINGLE SJINGLE3
|
||
NO_JP2:
|
||
mov TVcounter,TV_time
|
||
retn
|
||
endcash5:
|
||
endflash 12
|
||
lightoff 12
|
||
retn
|
||
bygel7: ;clockwise ramp
|
||
CALL CASHADD
|
||
CALL JACKADD
|
||
CALL ADDMONEY2
|
||
effect bygelsetE
|
||
CMP SJP_COUNTER,0
|
||
JZ NO_SJP7
|
||
EFFECT S_JACKPOT
|
||
MOV SJP_COUNTER,1 ;S<> ATT DEN SLŽCKS VID NŽSTA DOWNCOUNT
|
||
NO_SJP7:
|
||
mov cash5counter,cash5_time
|
||
endflash 12
|
||
invertedsyncedflash 12,sfspeed,syncflasher ;cash*5 enabled
|
||
CMP CARCOUNTER,0
|
||
JZ NOCAR
|
||
cmp carFLAG,1
|
||
jAE noCAR
|
||
mov CARcounter,0
|
||
mov CARflag,1
|
||
effect CARlit
|
||
syncedFLASH 15,sfspeed,syncflasher
|
||
cmp tripflag,0
|
||
jz dumret
|
||
cmp tvflag,0
|
||
jz dumret
|
||
invertedsyncedflash 17,sfspeed,syncflasher
|
||
mov lightstatus[17],1
|
||
call opengate1
|
||
retn
|
||
noCAR:
|
||
cmp PLANEflag,0
|
||
jnz noHOUSE2
|
||
cmp CARcounter,0
|
||
jz noHOUSE2
|
||
CMP TOP_THREE,TRUE
|
||
JNE NOHOUSE2
|
||
mov CARcounter,0
|
||
cmp all_six,true
|
||
je nohouse2
|
||
jmp show_where_plane
|
||
|
||
noHOUSE2:
|
||
cmp MBcounter,0
|
||
jz RAISING_MILLIONS
|
||
cmp bonusmultiplier,6
|
||
je DUMRET
|
||
inc bonusmultiplier
|
||
MOV BL,BONUSMULTIPLIER
|
||
NIL BH
|
||
dec bl
|
||
SHL BX,1
|
||
mov al,current_priority ;GNU
|
||
cmp al,byte ptr sjingle2+2 ;GNU
|
||
ja noeff ;GNU
|
||
mov bx,BONUS_ANIMS[BX]
|
||
call do_matrix
|
||
playjingle sjingle2
|
||
noeff: mov al,bonusmultiplier
|
||
dec al
|
||
MOV BX,OFFSET BONUSTABLE
|
||
XLATB
|
||
MOV BONUS_X,AL
|
||
CMP AL,10
|
||
MOV BONUS_TEXT[10],' '
|
||
JNE NOTB10
|
||
MOV BONUS_TEXT[10],'8'
|
||
XOR AL,AL
|
||
NOTB10:
|
||
ADD AL,'7'
|
||
MOV BONUS_TEXT[11],AL
|
||
mov al,bonusmultiplier
|
||
add al,32
|
||
lighton al
|
||
RETN
|
||
RAISING_MILLIONS:
|
||
CMP CARCOUNTER,0
|
||
JZ DUMRET
|
||
INC RM[5]
|
||
INC BYTE PTR RAISING_M[5+2]
|
||
EFFECT RAISING_M
|
||
RETN
|
||
bygel11:
|
||
effect bygelsetI
|
||
cmp lastarea,OFFSET bygel12
|
||
jne dumret
|
||
;he did the reverse loop
|
||
cmp BOATcounter,0
|
||
jz noBOAT
|
||
CMP BOATflag,0
|
||
JNZ noBOAT
|
||
mov BOATcounter,0
|
||
mov BOATflag,1
|
||
effect BOATlit
|
||
syncedFLASH 28,sfspeed,syncflasher
|
||
cmp HOUSEflag,0
|
||
jz dumret
|
||
cmp PLANEflag,0
|
||
jz dumret
|
||
invertedsyncedflash 17,sfspeed,syncflasher
|
||
mov lightstatus[17],1
|
||
call opengate1
|
||
retn
|
||
noBOAT:
|
||
cmp HOUSEcounter,0
|
||
jz noHOUSE
|
||
cmp HOUSEflag,0
|
||
jnz noHOUSE
|
||
mov HOUSEflag,1
|
||
effect HOUSElit
|
||
invertedsyncedflash 29,sfspeed,syncflasher
|
||
cmp PLANEflag,0
|
||
jz dumret
|
||
cmp BOATflag,0
|
||
jz dumret
|
||
invertedsyncedflash 17,sfspeed,syncflasher
|
||
mov lightstatus[17],1
|
||
call opengate1
|
||
retn
|
||
noHOUSE:
|
||
retn
|
||
bygel12:
|
||
CALL ADDMONEY2
|
||
effect bygelsetJ
|
||
cmp lastarea,offset bygel11
|
||
jne dumret
|
||
;he did the loop...
|
||
CMP LIGHTSTATUS[11],0
|
||
JZ NOXB
|
||
EFFECT EXTRA_BALL
|
||
ENDFLASH 11
|
||
LIGHTOFF 11
|
||
LIGHTON 31
|
||
NOXB:
|
||
cmp PLANEcounter,0
|
||
jz noPLANE
|
||
CMP PLANEflag,0
|
||
JNZ noPLANE
|
||
mov PLANEcounter,0
|
||
mov PLANEflag,1
|
||
effect PLANElit
|
||
syncedFLASH 30,sfspeed,syncflasher
|
||
cmp HOUSEflag,0
|
||
jz dumret
|
||
cmp BOATflag,0
|
||
jz dumret
|
||
invertedsyncedflash 17,sfspeed,syncflasher
|
||
mov lightstatus[17],1
|
||
call opengate1
|
||
retn
|
||
|
||
noPLANE:
|
||
call closegate7 ;v„xla till v„nster bana
|
||
mov MBcounter,MB_time
|
||
mov TRIPcounter,TRIP_time
|
||
retn
|
||
|
||
close3:
|
||
retn
|
||
bygel10:
|
||
effect bygelsetH
|
||
cmp lastarea,offset close3
|
||
jne dumret
|
||
CALL JACKADD
|
||
CALL CASHADD
|
||
CALL ADDMONEY2
|
||
CALL ANOTHER_SKILL
|
||
cmp TVcounter,0 ;he did a skill shot
|
||
jz notTV
|
||
cmp all_six,true
|
||
je dumret
|
||
cmp top_three,true
|
||
je show_where_boat
|
||
CMP TVFLAG,0
|
||
JNZ NOTTV
|
||
mov TVcounter,0
|
||
mov TVflag,1
|
||
effect TVlit
|
||
syncedFLASH 13,sfspeed,syncflasher
|
||
cmp carflag,0
|
||
jz dumret
|
||
cmp TRIPflag,0
|
||
jz dumret
|
||
invertedsyncedflash 17,sfspeed,syncflasher
|
||
mov lightstatus[17],1
|
||
call opengate1
|
||
retn
|
||
show_where_boat:
|
||
CMP BOATflag,0
|
||
jnz dumret
|
||
mov bx,offset liteprize_rightTS
|
||
call do_matrix
|
||
mov boatcounter,boat_time
|
||
retn
|
||
show_where_house:
|
||
CMP HOUSEflag,0
|
||
jnz dumret
|
||
mov bx,offset liteprize_rightTS
|
||
call do_matrix
|
||
mov HOUSEcounter,hOUse_time
|
||
retn
|
||
show_where_plane:
|
||
CMP PLANEflag,0
|
||
jnz dumret
|
||
mov bx,offset liteprize_leftTS
|
||
call do_matrix
|
||
mov PLANEcounter,PLANE_time
|
||
retn
|
||
notTV:
|
||
cmp TRIPcounter,0
|
||
jz noTRIP
|
||
cmp all_six,true
|
||
je noTRIP
|
||
cmp top_three,true
|
||
je show_where_house
|
||
mov TRIPcounter,0
|
||
cmp TRIPflag,0
|
||
jnz noTRIP
|
||
mov TRIPflag,1
|
||
effect TRIPlit
|
||
invertedsyncedFLASH 14,sfspeed,syncflasher
|
||
cmp carflag,0
|
||
jz dumret
|
||
cmp tvflag,0
|
||
jz dumret
|
||
invertedsyncedflash 17,sfspeed,syncflasher
|
||
mov lightstatus[17],1
|
||
call opengate1
|
||
retn
|
||
noTRIP:
|
||
RETN
|
||
another_skill:
|
||
ADDBCD SKILLCOUNTER,ETTA
|
||
INC CYCLONECOUNTER
|
||
cmp cyclonecounter,1
|
||
je another_skill
|
||
MOV AX,CYCLONECOUNTER
|
||
MOV BL,6
|
||
DIV BL
|
||
OR AH,AH
|
||
JZ MONEY_MANIA
|
||
|
||
CMP AL,1
|
||
JB NO_PUT
|
||
JE NEXT_IS_XB
|
||
INC AL
|
||
MUL BL
|
||
mov bx,offset SKILLTEXT+16 ;vilken text † stoppa in v„rdet i
|
||
CMP AX,100
|
||
JB NOIB
|
||
INC BX
|
||
NOIB: Call Put_In_Text
|
||
NO_PUT:
|
||
EFFECT SKILLSHOT
|
||
retn
|
||
money_mania:
|
||
CMP AL,1
|
||
JE N_MM
|
||
CMP AL,2
|
||
JE X_BALL
|
||
TEST AL,1
|
||
JNZ LT_MM
|
||
N_MM:
|
||
EFFECT MONEYMANIA
|
||
MOV TURBOMODE,TRUE
|
||
MOV SPECIALMODE,TRUE
|
||
MOV LOOPS_N_TRAPS,FALSE
|
||
lighton 32
|
||
retn
|
||
LT_MM:
|
||
EFFECT MONEYMANIA2
|
||
MOV TURBOMODE,TRUE
|
||
MOV SPECIALMODE,TRUE
|
||
MOV LOOPS_N_TRAPS,TRUE
|
||
lighton 32
|
||
retn
|
||
|
||
X_BALL:
|
||
PLAYJINGLE SJINGLE19
|
||
invertedsyncedFLASH 11,sfspeed,syncflasher
|
||
MOV LIGHTSTATUS[11],1
|
||
RETN
|
||
NEXT_IS_XB:
|
||
EFFECT SKILLSHOT_XB
|
||
RETN
|
||
;*****************************
|
||
;Input: Ax= NextR„knare Bx=offset till texten
|
||
Put_In_Text:
|
||
mov di,2
|
||
mov cx,3
|
||
loopen_lejf:
|
||
push cx
|
||
mov dx,0
|
||
mov cx,10
|
||
div cx
|
||
cmp dx,0
|
||
jne nozero
|
||
cmp di,0
|
||
jne nozero
|
||
mov dx,'*'-'7'
|
||
nozero:
|
||
add dx,'7'
|
||
mov [bx][di],dl
|
||
pop cx
|
||
dec di
|
||
loop loopen_lejf
|
||
retn
|
||
;*****************************
|
||
|
||
;******************************************************************************
|
||
;*********************************** UPPER ************************************
|
||
;******************************************************************************
|
||
bygel1:
|
||
effect bygelsetA
|
||
soundeffect sbygel1,20h
|
||
retn
|
||
bygel2:
|
||
effect bygelsetA
|
||
soundeffect sbygel1,20h
|
||
retn
|
||
bygel3:
|
||
effect bygelsetB
|
||
soundeffect sbygel2,0
|
||
retn
|
||
bygel4:
|
||
effect bygelsetB
|
||
soundeffect sbygel2,0
|
||
retn
|
||
bygel8:
|
||
effect bygelsetF
|
||
retn
|
||
bygel9:
|
||
effect bygelsetG
|
||
retn
|
||
bygel13:
|
||
effect bygelsetK
|
||
retn
|
||
BYGEL6B:
|
||
CALL JACKADD
|
||
RETN
|
||
BYGEL6:
|
||
CALL CASHADD
|
||
effect bygelsetD
|
||
CMP LOOP_MILLION_COUNTER,0
|
||
MOV LOOP_MILLION_COUNTER,LM_TIME
|
||
JZ NO_MILLION
|
||
EFFECT LOOPMILLION
|
||
NO_MILLION:
|
||
CMP LIGHTSTATUS[17],1
|
||
JNE NO_FORVANTAN
|
||
PLAYJINGLE SJINGLE21 ;DU KOMMER ATT VINNA ETT PRIS
|
||
NO_FORVANTAN:
|
||
ENDFLASH 4
|
||
syncedFLASH 4,sfspeed,syncflasher
|
||
RETN
|
||
|
||
|
||
|
||
;******************************************************************************
|
||
UPDATE_COUNTERS PROC NEAR
|
||
downcount SJP_COUNTER,NO_SJP
|
||
CMP SJP_COUNTER,2*60
|
||
JNE NOTSJP2
|
||
ENDFLASH 5
|
||
LIGHTFLASH 5,2
|
||
JMP NOTSJP2
|
||
NO_SJP: ENDFLASH 5
|
||
LIGHTOFF 5
|
||
RETN
|
||
NOTSJP2:
|
||
downcount JP_COUNTER,NO_JP
|
||
CMP JP_COUNTER,2*60
|
||
JNE NOTJP2
|
||
ENDFLASH 16
|
||
LIGHTFLASH 16,2
|
||
JMP NOTJP2
|
||
NO_JP: ENDFLASH 16
|
||
LIGHTOFF 16
|
||
RETN
|
||
NOTJP2:
|
||
synccount syncflasher,sfspeed
|
||
downcount SPINcounter,nextSPIN
|
||
downcount MBcounter,dumret
|
||
downcount TVcounter,dumret
|
||
downcount BOATcounter,dumret
|
||
downcount TRIPcounter,dumret
|
||
downcount CARcounter,dumret
|
||
downcount CAsh5counter,endcash5
|
||
cmp cash5counter,2*60
|
||
jne notfastend
|
||
endflash 12
|
||
lightflash 12,2
|
||
notfastend:
|
||
DOWNCOUNT LOOP_MILLION_COUNTER,ENDLM
|
||
CMP LOOP_MILLION_COUNTER,2*60
|
||
JNE NOHST_FLASH
|
||
ENDFLASH 4
|
||
LIGHTFLASH 4,3
|
||
NOHST_FLASH:
|
||
RETN
|
||
ENDLM: ENDFLASH 4 ;STŽNG AV LOOP MILLION LAMPAN
|
||
LOFF 4
|
||
RETN
|
||
UPDATE_COUNTERS ENDP
|
||
|
||
|
||
BUMPER_WAS_HIT_PROC PROC NEAR ;INPUT: HITPOINTER
|
||
CALL ADDMONEY
|
||
UPDAT_INFOBAR
|
||
RETN
|
||
BUMPER_WAS_HIT_PROC ENDP
|
||
JACKADD PROC NEAR
|
||
ADDBCD JACKVALUE,_100K
|
||
RETN
|
||
INITJACK:
|
||
MOVEBCD JACKVALUE,JACKINIT
|
||
RETN
|
||
ENDP
|
||
CASHADD PROC NEAR
|
||
ADDBCD CASHPOTVAL,CASHPOTSTEP
|
||
RETN
|
||
ENDP
|
||
CASHADD2 PROC NEAR
|
||
ADDBCD CASHPOTVAL,CASHPOTSTEP2
|
||
RETN
|
||
ENDP
|
||
ADDMONEY PROC NEAR
|
||
CMP SPECIALMODE,TRUE
|
||
JNE DUMRET
|
||
CMP TURBOMODE,TRUE
|
||
JNE DUMRET
|
||
CMP LOOPS_N_TRAPS,TRUE
|
||
JE DUMRET
|
||
ADDBCD TM_TOTAL,_500K
|
||
RETN
|
||
ENDP
|
||
ADDMONEY2 PROC NEAR
|
||
CMP SPECIALMODE,TRUE
|
||
JNE DUMRET
|
||
CMP TURBOMODE,TRUE
|
||
JNE DUMRET
|
||
CMP LOOPS_N_TRAPS,FALSE
|
||
JE DUMRET
|
||
ADDBCD TM_TOTAL,_1000K
|
||
RETN
|
||
ENDP
|
||
|
||
;********************************* DOT MATRIX CODE ****************************
|
||
_PARTYONN:
|
||
MOVE DS,DATA
|
||
ASSUME DS:DATA
|
||
MOV AL,PLAYER
|
||
ADD AL,'A'-10
|
||
MOV PARTY_ON_TEXT[18],AL
|
||
MOV SHOOTTHEBALLTEXT[19],AL
|
||
MOV SISA,1
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
JMP NORMAL_END
|
||
_SHOOT_AGAIN_ONN:
|
||
MOVE DS,DATA
|
||
ASSUME DS:DATA
|
||
MOV AL,PLAYER
|
||
ADD AL,'A'-10
|
||
MOV SHOOT_AGAIN_TEXT[19],AL
|
||
MOV SISA,1
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
JMP NORMAL_END
|
||
_PARTYON: ;BX NOT USED!
|
||
MOV PARTYFLASH,TRUE
|
||
MOVE SISA,1 ;HUR M†NGA
|
||
MOV DOTRUT,OFFSET PARTYRUT
|
||
JMP NORMAL_END
|
||
|
||
_PARTYOFF: ;TURN OFF PARTYON FLASHING (AND BRING BACK SCORE!)
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
MOV SISA,1
|
||
JMP NORMAL_END
|
||
|
||
_WAIT_GAME_ON:
|
||
MOV DOTRUT,OFFSET GONRUT
|
||
MOV SISA,44
|
||
JMP NORMAL_END
|
||
GONRUT:
|
||
CMP ADDPLAYERS,TRUE
|
||
JE INTE_SATT_IGANG
|
||
MOV SI,0
|
||
RETN
|
||
INTE_SATT_IGANG:
|
||
MOV SI,34 ;INTE 0 = INTE IG<49>NG !!
|
||
RETN
|
||
|
||
|
||
_JBCDZ:
|
||
IFZEROBCD [BX+2]
|
||
JC OVERIT_
|
||
MOV BX,[BX+4]
|
||
SUB BX,6
|
||
OVERIT_:
|
||
ADD BX,6
|
||
CMP WORD PTR [BX],0
|
||
JNE _NEXTp_4
|
||
MOV BX,0
|
||
MOV NEXT_A,BX
|
||
RETN
|
||
_NEXTp_4:
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
RETN
|
||
_BONUS_X_CALCS: ;FN: MULTIPLIES THE BONUS
|
||
;INPUT: BONUS_X, BONUSSIFFRORNA
|
||
;OUTPUT: BONUSSIFFRORNA
|
||
PUSH BX
|
||
PUSH ES
|
||
MOVEBCD TEMPBONUSBCD,BONUSSIFFRORNA
|
||
MOV CL,BONUS_X
|
||
DEC CL
|
||
JZ NO_X_BONUS
|
||
NIL CH
|
||
DO_IT_AGAIN:
|
||
PUSH CX
|
||
MOV SI,OFFSET TEMPBONUSBCD
|
||
MOV DI,OFFSET BONUSSIFFRORNA
|
||
CALL ADDSCOREBCD
|
||
POP CX
|
||
LOOP DO_IT_AGAIN
|
||
NO_X_BONUS:
|
||
MOV BONUS_X_TEXT[8],1+'7'
|
||
MOV BONUS_X_TEXT[9],0+'7'
|
||
MOV AL,BONUS_X
|
||
ADD AL,'7'
|
||
CMP AL,10+'7'
|
||
JNB ITS10
|
||
MOV BONUS_X_TEXT[8],AL
|
||
MOV BONUS_X_TEXT[9],' '
|
||
ITS10:
|
||
POP ES
|
||
POP BX
|
||
MOV SISA,1
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
JMP NORMAL_END
|
||
|
||
|
||
_JBONUSX1:
|
||
CMP BONUS_X,1
|
||
JNE QJBX1
|
||
ADD BX,2
|
||
MOV BX,[BX]
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
QJBX1: MOV SISA,1
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
JMP NORMAL_END
|
||
_CALC_HAPPY:
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
MOV SISA,1
|
||
PUSHA
|
||
MOV SI,OFFSET TM_TOTAL ;ML_TOT -> TOTAL BONUS
|
||
MOV DI,OFFSET BONUSSIFFRORNA
|
||
CALL ADDSCOREBCD
|
||
POPA
|
||
ADD BX,2
|
||
CMP WORD PTR [BX],0
|
||
JNE _NEXTp_3E
|
||
MOV BX,0
|
||
_NEXTp_3E:
|
||
MOV NEXT_A,BX
|
||
RETN
|
||
|
||
_Jmp:
|
||
add bx,2
|
||
mov bx,[bx]
|
||
MOV NEXT_A,BX
|
||
JMP [BX]
|
||
retn
|
||
|
||
_NEXTp_3Q:
|
||
_NEXTp_3:
|
||
MOV NEXT_A,BX
|
||
RETN
|
||
|
||
_CALC_CYCLO:
|
||
PUSH ES
|
||
MOVE ES,DS
|
||
MOV DI,OFFSET CYCLONESCOREBCD
|
||
NIL AX
|
||
MOV CX,12/2 ;(12/6=6!!!)
|
||
REP STOSW
|
||
POP ES
|
||
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
MOV SISA,1
|
||
MOV CX,CYCLONECOUNTER
|
||
URBANLOOP:
|
||
MOV SI,OFFSET HUNDRATUSEN
|
||
MOV DI,OFFSET CYCLONESCOREBCD
|
||
PUSH CX BX
|
||
CALL ADDSCOREBCD
|
||
POP BX CX
|
||
LOOP URBANLOOP
|
||
|
||
MOV SI,OFFSET CYCLONESCOREBCD ;CYCLONES -> TOTAL BONUS
|
||
MOV DI,OFFSET BONUSSIFFRORNA
|
||
CALL ADDSCOREBCD
|
||
|
||
ADD BX,2
|
||
CMP WORD PTR [BX],0
|
||
JNE _NEXTp_3gg
|
||
MOV BX,0
|
||
_NEXTp_3gg:
|
||
MOV NEXT_A,BX
|
||
RETN
|
||
|
||
READ_SPECIAL_MODE_COUNTER PROC NEAR
|
||
|
||
;[SEC_ASC] PEKAR P<> MSD, (0='*') [SEC_ASC+1] PEKAR P<> LSD
|
||
;LŽS AV BARA!
|
||
MOVE DS,DATA
|
||
cmp [sec_asc],'*'
|
||
jne no_end
|
||
cmp [sec_asc+1],'0'+7 ;???
|
||
jne no_end
|
||
cmp turbomode,true
|
||
jne noturboend
|
||
playjingle_penetrate Sjingle10
|
||
mov lastjingle,3
|
||
noturboend:
|
||
cmp OffRoadmode,true
|
||
jne nooffrend
|
||
playjingle_penetrate Sjingle10
|
||
mov lastjingle,3
|
||
nooffrend:
|
||
; mov specialmode,false
|
||
mov offroadmode,false
|
||
mov turbomode,false ;mega cp!!
|
||
mov current_priority,0
|
||
mov lastjingle,3
|
||
mov jinglejumpcnt,1
|
||
no_end:
|
||
RETN
|
||
READ_SPECIAL_MODE_COUNTER ENDP
|
||
|
||
_DOBEATEN:
|
||
MOVE SISA,1
|
||
MOV DOTRUT,OFFSET WAITRUT
|
||
PUSHA
|
||
LIGHTON 31
|
||
POPA
|
||
JMP NORMAL_END
|
||
|
||
CODE ENDS
|
||
|
||
;******************************************************************************
|
||
;************************* O T H E R S E G M E N T S ************************
|
||
;******************************************************************************
|
||
|
||
HIDDEN1 SEGMENT PARA PUBLIC 'DATA'
|
||
UNDANSPR DB 16*16 DUP (0)
|
||
HIDDA DB 576*2 DUP(0)
|
||
EXTRN HID1
|
||
HIDDEN1 ENDS
|
||
|
||
HIDDEN2 SEGMENT PARA PUBLIC 'DATA'
|
||
HIDDA2 DB 576*2 DUP(0)
|
||
EXTRN HID2
|
||
HIDDEN2 ENDS
|
||
|
||
MASK1_2 SEGMENT PARA PUBLIC 'DATA'
|
||
EXTRN MASK12
|
||
MASK1_2 ENDS
|
||
|
||
MASK1_1 SEGMENT PARA PUBLIC 'DATA'
|
||
EXTRN MASK11
|
||
MASK1_1 ENDS
|
||
|
||
MASK2_2 SEGMENT PARA PUBLIC 'DATA'
|
||
EXTRN MASK22
|
||
MASK2_2 ENDS
|
||
|
||
FLIPLEFT SEGMENT PARA PUBLIC 'DATA'
|
||
IF CREATE_FLIP_DATA
|
||
EXTRN FLIPL
|
||
ELSE
|
||
EXTRN FLIPL_1
|
||
ENDIF
|
||
FLIPLEFT ENDS
|
||
|
||
FLIPLEFT2 SEGMENT PARA PUBLIC 'DATA'
|
||
IF CREATE_FLIP_DATA
|
||
EXTRN FLIPR2
|
||
ELSE
|
||
EXTRN FLIPR2_1
|
||
ENDIF
|
||
FLIPLEFT2 ENDS
|
||
|
||
FLIPRIGHT SEGMENT PARA PUBLIC 'DATA'
|
||
IF CREATE_FLIP_DATA
|
||
EXTRN FLIPR
|
||
ELSE
|
||
EXTRN FLIPR_1
|
||
ENDIF
|
||
FLIPRIGHT ENDS
|
||
|
||
LASTSEG SEGMENT
|
||
LASTSEG ENDS
|
||
|
||
STAGE1_1 SEGMENT PARA PUBLIC 'DUMP'
|
||
extrn st1
|
||
STAGE1_1 ENDS
|
||
|
||
STAGE1_2 SEGMENT PARA PUBLIC 'DUMP'
|
||
extrn st2
|
||
STAGE1_2 ENDS
|
||
|
||
STAGE1_3 SEGMENT PARA PUBLIC 'DUMP'
|
||
extrn st3
|
||
STAGE1_3 ENDS
|
||
|
||
STAGE1_4 SEGMENT PARA PUBLIC 'DUMP'
|
||
extrn st4
|
||
STAGE1_4 ENDS
|
||
|
||
MASK1_3 SEGMENT PARA PUBLIC 'DUMP'
|
||
EXTRN MASK13
|
||
MASK1_3 ENDS
|
||
|
||
MASK2_1 SEGMENT PARA PUBLIC 'DUMP'
|
||
EXTRN MASK21
|
||
MASK2_1 ENDS
|
||
|
||
MASK2_3 SEGMENT PARA PUBLIC 'DUMP'
|
||
EXTRN MASK23
|
||
MASK2_3 ENDS
|
||
|
||
FLIPGFXSEG SEGMENT PARA PUBLIC 'DUMP'
|
||
EXTRN FLIPGFX:BYTE
|
||
SISTAGFX LABEL BYTE
|
||
FLIPGFXSEG ENDS
|
||
|
||
SPRINGSEG SEGMENT PARA PUBLIC 'DUMP'
|
||
EXTRN SPRING
|
||
SPRINGSEG ENDS
|
||
|
||
;******************************************************************************
|
||
|
||
;*************************** Animations **************************************
|
||
DATA2 SEGMENT PARA PUBLIC 'DATA'
|
||
;*********************ANIMATIONS MALL*************************
|
||
comment\
|
||
dw 1*4 ;loop pos
|
||
dw 15 ;number of loops (1=NOLOOP)
|
||
dw 5*4-4 ;length of anim (5 frames * 4 bytes!) (IF LOOP=> -4)
|
||
_happy dw happy_1,1;<---start!
|
||
dw happy_2,2;<-, loop!
|
||
dw happy_3,2; I
|
||
dw happy_4,2; I
|
||
dw happy_5,2;__I
|
||
\
|
||
;*______________________/Billion Dollar GameShow\______________________*
|
||
; Bredd: Antal: Anim:
|
||
;Multiply 6 7 3
|
||
;2,3,4 . . 12 alla i anim 4 !!
|
||
;MoneyMania 40 9 5
|
||
;JackPot 40 37 1 ;Puhhhh vicken j„vla mega anim!!! <20> den e 15 h”g †x†!!!
|
||
;ExtraBall 40 17 2
|
||
;Million 40 16 8
|
||
;Billion 32 16 9
|
||
|
||
;YouWin 24 16 7 ;Olika h”jd p† alla!!!
|
||
|
||
extrn a_01_00,a_01_01,a_01_02 ,a_01_03 ,a_01_04 ,a_01_05 ,a_01_06 ,a_01_07 ,a_01_08 ,a_01_09 ,a_01_10 ,a_01_11 ,a_01_12 ,a_01_13 ,a_01_14 ,a_01_15,a_01_16,a_01_17,a_01_18,a_01_19,a_01_20,a_01_21,a_01_22,a_01_23,a_01_24,a_01_25,a_01_26,a_01_27,a_01_28,a_01_29,a_01_30,a_01_31,a_01_32,a_01_33,a_01_34,a_01_35,a_01_36,a_01_37
|
||
extrn a_02_00,a_02_01,a_02_02 ,a_02_03 ,a_02_04 ,a_02_05 ,a_02_06 ,a_02_07 ,a_02_08 ,a_02_09 ,a_02_10 ,a_02_11 ,a_02_12 ,a_02_13 ,a_02_14 ,a_02_15,a_02_16,a_02_17
|
||
extrn a_03_00,a_03_01,a_03_02 ,a_03_03 ,a_03_04 ,a_03_05 ,a_03_06 ,A_03_07
|
||
extrn a_14_00,a_24_00,a_34_00 ,a_44_00 ,a_54_00 ,a_64_00
|
||
extrn a_05_00,a_05_01,a_05_02 ,a_05_03 ,a_05_04 ,a_05_05 ,a_05_06 ,A_05_07,A_05_08
|
||
extrn a_06_00,a_06_01,a_06_02 ,a_06_03 ,a_06_04 ,a_06_05 ,a_06_06,a_06_07 ,a_06_08 ,a_06_09 ,a_06_10 ,a_06_11
|
||
extrn a_07_00,a_07_01,a_07_02 ,a_07_03 ,a_07_04 ,a_07_05 ,a_07_06,a_07_07 ,a_07_08 ,a_07_09 ,a_07_10 ,a_07_11 ,a_07_12 ,a_07_13 ,a_07_14 ,a_07_15
|
||
extrn a_08_00,a_08_01,a_08_02 ,a_08_03 ,a_08_04 ,a_08_05 ,a_08_06,a_08_07 ,a_08_08 ,a_08_09 ,a_08_10 ,a_08_11 ,a_08_12 ,a_08_13 ,a_08_14 ,a_08_15
|
||
extrn a_09_00,a_09_01,a_09_02 ,a_09_03 ,a_09_04 ,a_09_05 ,a_09_06,a_09_07 ,a_09_08 ,a_09_09 ,a_09_10 ,a_09_11 ,a_09_12 ,a_09_13 ,a_09_14 ,a_09_15
|
||
extrn a_10_00,a_10_01,a_10_02
|
||
extrn a_10b00,a_10b01,a_10b02
|
||
|
||
dw 0 ;adressen till bilden f”re den f”rsta i loopen
|
||
dw 10 ;antal loopar
|
||
dw 2*4 ;adressen till den sista bilden i loopen
|
||
_liteprize_right label word
|
||
dw a_10_00,15
|
||
dw a_10_01,15
|
||
dw a_10_02,15
|
||
|
||
dw 0
|
||
dw 10
|
||
dw 2*4
|
||
_liteprize_left label word
|
||
dw a_10b00,15
|
||
dw a_10b01,15
|
||
dw a_10b02,15
|
||
|
||
MONEYMSPEED=5
|
||
DW 0
|
||
dw 5
|
||
dw 4*9-4
|
||
_moneyM dw a_05_00,MONEYMSPEED
|
||
dw a_05_01,MONEYMSPEED
|
||
dw a_05_02,MONEYMSPEED
|
||
dw a_05_03,MONEYMSPEED
|
||
dw a_05_04,MONEYMSPEED
|
||
dw a_05_05,MONEYMSPEED
|
||
dw a_05_06,MONEYMSPEED
|
||
dw a_05_07,MONEYMSPEED
|
||
dw a_05_08,MONEYMSPEED
|
||
|
||
multiplyspeed=3
|
||
dw 1
|
||
dw 4*7
|
||
_multiply label word
|
||
dw a_03_00,multiplyspeed
|
||
dw a_03_01,multiplyspeed
|
||
dw a_03_02,multiplyspeed
|
||
dw a_03_03,multiplyspeed
|
||
dw a_03_04,multiplyspeed
|
||
dw a_03_05,multiplyspeed
|
||
dw a_03_06,multiplyspeed
|
||
|
||
dw 1,4*1
|
||
_x2 dw a_14_00,50
|
||
dw 1,4*1
|
||
_x3 dw a_24_00,50
|
||
dw 1,4*1
|
||
_x4 dw a_34_00,50
|
||
dw 1,4*1
|
||
_x6 dw a_44_00,50
|
||
dw 1,4*1
|
||
_x8 dw a_54_00,50
|
||
dw 1,4*1
|
||
_x10 dw a_64_00,50
|
||
|
||
cashpotspeed=2
|
||
dw 1
|
||
dw 4*10
|
||
_cashpot label word
|
||
dw a_06_00,cashpotspeed
|
||
dw a_06_01,cashpotspeed
|
||
dw a_06_02,cashpotspeed
|
||
dw a_06_03,cashpotspeed
|
||
dw a_06_04,cashpotspeed
|
||
dw a_06_05,cashpotspeed
|
||
dw a_06_06,cashpotspeed
|
||
dw a_06_07,cashpotspeed
|
||
dw a_06_08,cashpotspeed
|
||
dw a_06_09,90
|
||
|
||
cashpot5speed=2
|
||
dw 4*10-4
|
||
dw 5
|
||
dw 4*12-4
|
||
_cashpot5 label word
|
||
dw a_06_00,cashpot5speed
|
||
dw a_06_01,cashpot5speed
|
||
dw a_06_02,cashpot5speed
|
||
dw a_06_03,cashpot5speed
|
||
dw a_06_04,cashpot5speed
|
||
dw a_06_05,cashpot5speed
|
||
dw a_06_06,cashpot5speed
|
||
dw a_06_07,cashpot5speed
|
||
dw a_06_08,cashpot5speed
|
||
dw a_06_09,cashpot5speed
|
||
dw a_06_10,20
|
||
dw a_06_11,20
|
||
millionspeed=2
|
||
dw 1
|
||
dw 4*16
|
||
_million label word
|
||
dw a_08_00,millionspeed
|
||
dw a_08_01,millionspeed
|
||
dw a_08_02,millionspeed
|
||
dw a_08_03,millionspeed
|
||
dw a_08_04,millionspeed
|
||
dw a_08_05,millionspeed
|
||
dw a_08_06,millionspeed
|
||
dw a_08_07,millionspeed
|
||
dw a_08_08,millionspeed
|
||
dw a_08_09,millionspeed
|
||
dw a_08_10,millionspeed
|
||
dw a_08_11,millionspeed
|
||
dw a_08_12,millionspeed
|
||
dw a_08_13,millionspeed
|
||
dw a_08_14,millionspeed
|
||
dw a_08_15,50
|
||
|
||
Billionspeed=2
|
||
dw 1
|
||
dw 4*16
|
||
_Billion label word
|
||
dw a_09_00,Billionspeed
|
||
dw a_09_01,Billionspeed
|
||
dw a_09_02,Billionspeed
|
||
dw a_09_03,Billionspeed
|
||
dw a_09_04,Billionspeed
|
||
dw a_09_05,Billionspeed
|
||
dw a_09_06,Billionspeed
|
||
dw a_09_07,Billionspeed
|
||
dw a_09_08,Billionspeed
|
||
dw a_09_09,Billionspeed
|
||
dw a_09_10,Billionspeed
|
||
dw a_09_11,Billionspeed
|
||
dw a_09_12,Billionspeed
|
||
dw a_09_13,Billionspeed
|
||
dw a_09_14,Billionspeed
|
||
dw a_09_15,50
|
||
|
||
youwinspeed=2
|
||
dw 1
|
||
dw 4*16
|
||
_youwin dw a_07_00,youwinspeed
|
||
dw a_07_01,youwinspeed
|
||
dw a_07_02,youwinspeed
|
||
dw a_07_03,youwinspeed
|
||
dw a_07_04,youwinspeed
|
||
dw a_07_05,youwinspeed
|
||
dw a_07_06,youwinspeed
|
||
dw a_07_07,youwinspeed
|
||
dw a_07_08,youwinspeed
|
||
dw a_07_09,youwinspeed
|
||
dw a_07_10,youwinspeed
|
||
dw a_07_11,youwinspeed
|
||
dw a_07_12,youwinspeed
|
||
dw a_07_13,youwinspeed
|
||
dw a_07_14,youwinspeed
|
||
dw a_07_15,50
|
||
|
||
xtraballspeed=5
|
||
dw 1
|
||
dw 4*17
|
||
_xtraball dw a_02_00,xtraballspeed
|
||
dw a_02_01,xtraballspeed
|
||
dw a_02_02,xtraballspeed
|
||
dw a_02_03,xtraballspeed
|
||
dw a_02_04,xtraballspeed
|
||
dw a_02_05,xtraballspeed
|
||
dw a_02_06,xtraballspeed
|
||
dw a_02_07,xtraballspeed
|
||
dw a_02_08,xtraballspeed
|
||
dw a_02_09,xtraballspeed
|
||
dw a_02_10,xtraballspeed
|
||
dw a_02_11,xtraballspeed
|
||
dw a_02_12,xtraballspeed
|
||
dw a_02_13,xtraballspeed
|
||
dw a_02_14,xtraballspeed
|
||
dw a_02_15,xtraballspeed
|
||
dw a_02_16,150
|
||
|
||
jpspeed=4
|
||
dw 1
|
||
dw 4*37
|
||
_jackpot dw a_01_00,jpspeed
|
||
dw a_01_01,jpspeed
|
||
dw a_01_02,jpspeed
|
||
dw a_01_03,jpspeed
|
||
dw a_01_04,jpspeed
|
||
dw a_01_05,jpspeed
|
||
dw a_01_06,jpspeed
|
||
dw a_01_07,jpspeed
|
||
dw a_01_08,jpspeed
|
||
dw a_01_09,jpspeed
|
||
dw a_01_10,jpspeed
|
||
dw a_01_11,jpspeed
|
||
dw a_01_12,jpspeed
|
||
dw a_01_13,jpspeed
|
||
dw a_01_14,jpspeed
|
||
dw a_01_15,jpspeed
|
||
dw a_01_16,jpspeed
|
||
dw a_01_17,jpspeed
|
||
dw a_01_18,jpspeed
|
||
dw a_01_19,jpspeed
|
||
dw a_01_20,jpspeed
|
||
dw a_01_21,jpspeed
|
||
dw a_01_22,jpspeed
|
||
dw a_01_23,jpspeed
|
||
dw a_01_24,jpspeed
|
||
dw a_01_25,jpspeed
|
||
dw a_01_26,jpspeed
|
||
dw a_01_27,jpspeed
|
||
dw a_01_28,jpspeed
|
||
dw a_01_29,jpspeed
|
||
dw a_01_30,jpspeed
|
||
dw a_01_31,jpspeed
|
||
dw a_01_32,jpspeed
|
||
dw a_01_33,jpspeed
|
||
dw a_01_34,jpspeed
|
||
dw a_01_35,jpspeed
|
||
dw a_01_36,50
|
||
;**************************************************************
|
||
dw 1
|
||
dw 4*4
|
||
_clear dw clear2,1
|
||
dw clear3,1
|
||
dw clear4,1
|
||
dw clear5,1
|
||
;****************************************************************
|
||
extrn clear2,clear3,clear4,clear5:byte
|
||
|
||
DATA2 ENDS
|
||
|
||
;******************************************************************************
|
||
|
||
|