1637 lines
28 KiB
NASM
1637 lines
28 KiB
NASM
.FILE 'ENDWAVE.ASM'
|
||
.TITLE 'ROBO-RAMA GAME END WAVE CODE'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
;
|
||
; INITIATED: APRIL 13,1989
|
||
; MODIFIED: !
|
||
; SOFTWARE: MARK TURMELL
|
||
;
|
||
; COPYRIGHT (C) 1989 WILLIAMS ELECTRONICS GAMES, INC.
|
||
;
|
||
;
|
||
; GET THE SYSTEM STUFF
|
||
|
||
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
|
||
.INCLUDE "DISP.EQU" ;DISPLAY PROC. EQUATES
|
||
.INCLUDE "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
|
||
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "ROBO.EQU"
|
||
;
|
||
;SOUNDS
|
||
;
|
||
.REF CROWD1,LEGOSND,CROWD1A,EXP3HI
|
||
;
|
||
;SYMBOLS EXTERNALLY DEFINED
|
||
;
|
||
.REF CLNPAL
|
||
.REF SET_GATE_2,CIRCUIT,FLYSLUP,STATUS,CNTDIG1,CNTDIG2,PLYRPRCS
|
||
.REF EHALT,SET_WAVE,BEGINOBJ,STRT_CHSR,BEGINOBJ2,CMP_LIT,LAZ_LIT
|
||
.REF KP_TS,KP_LS,KP_RS,WAVE,GAMSTATE,OVERLORD,KILL_TK,BAD0
|
||
.REF SHK_ON,CANT,BLOW,ARW_LIT
|
||
.REF PLYROBJS,SCRL,PCTOT,PZON,DIOFF,ENDON,DOMNTR,DO_BND
|
||
.REF P1DATA,P2DATA
|
||
;
|
||
;SYMBOLS DEFINED IN THIS FILE
|
||
;
|
||
.DEF DEXIT,FROMDR,DOCHS,BLDOFF,WNTOUT,CHEERS,FIXBUG
|
||
;
|
||
;EQUATES FIRST ORIGINATED IN THIS FILE
|
||
;
|
||
;
|
||
RGTX .EQU [228,0]
|
||
RGTX1 .EQU [228-1,0]
|
||
LFTX .EQU [50,0]
|
||
TOPX: .EQU [186,0]
|
||
BOTX: .EQU [186,0]
|
||
BOTX1: .EQU [186-1,0]
|
||
;
|
||
RGTX2 .EQU [228-1,0]
|
||
LFTX2 .EQU [50-1,0]
|
||
TOPX2: .EQU [186-1,0]
|
||
BOTX2: .EQU [186-1,0]
|
||
;
|
||
RGTY: .EQU [131,0]
|
||
RGTY1: .EQU [131+3,0]
|
||
LFTY: .EQU [131,0]
|
||
TOPY: .EQU [117,0]
|
||
BOTY: .EQU [168,0]
|
||
BOTY1: .EQU [168+3,0]
|
||
;
|
||
RGTY2: .EQU [131+5,0]
|
||
LFTY2: .EQU [131+5,0]
|
||
TOPY2: .EQU [117+5,0]
|
||
BOTY2: .EQU [168+5,0]
|
||
;
|
||
RGTARWF .EQU DMAWNZ+M_FLIPH
|
||
LFTARWF .EQU DMAWNZ
|
||
TOPARWF .EQU DMAWNZ
|
||
BOTARWF .EQU DMAWNZ+M_FLIPV
|
||
|
||
;
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
;
|
||
.BSS WNTOUT,8
|
||
.BSS PLY1IN,16
|
||
.BSS PLY2IN,16
|
||
|
||
.BSS ARWX1,32
|
||
.BSS ARWX2,32
|
||
.BSS ARWX3,32
|
||
|
||
.BSS ARWY1,32
|
||
.BSS ARWY2,32
|
||
.BSS ARWY3,32
|
||
|
||
.BSS ARWF1,16
|
||
.BSS ARWF2,16
|
||
.BSS ARWF3,16
|
||
|
||
.BSS ARWI1,32
|
||
.BSS ARWI2,32
|
||
.BSS ARWI3,32
|
||
|
||
.BSS FROMDR,16
|
||
.BSS ARNUM,8
|
||
|
||
DELYMN
|
||
SLEEP 3*60
|
||
CREATE TVPID,DOMNTR
|
||
DIE
|
||
|
||
BLDOFF
|
||
;TELL ALL SPINNING BLADES TO TAKE A HIKE
|
||
MMTM SP,A0,A2,A3,A7,A8
|
||
MOVK 6,A3 ;MAX # OF BLADES ;15
|
||
MOVI DUM_ID,A2
|
||
MOVI FLYSLUP,A7
|
||
NT:
|
||
CLR A1
|
||
NOT A1
|
||
MOVI CHNSWPID,A0
|
||
CALLA EXISTP
|
||
JRZ NX
|
||
;FOUND BLADE PROC
|
||
CALLA PUTA7
|
||
MOVE A2,*A0(PROCID)
|
||
NX DSJS A3,NT
|
||
MMFM SP,A0,A2,A3,A7,A8
|
||
RETS
|
||
;
|
||
DRW_ARW:
|
||
;ANALYZE WHICH ARROWS SHOULD BE DRAWN
|
||
;BASED ON CIRCUIT THEN BASED ON WAVE # WITHIN THAT CIRCUIT!
|
||
CLR A0
|
||
MOVE A0,@ARWX1,L
|
||
MOVE A0,@ARWX2,L
|
||
MOVE A0,@ARWX3,L
|
||
|
||
MOVE @CIRCUIT,A0
|
||
SLL 5,A0
|
||
ADDI CIRCTBL,A0
|
||
MOVE *A0,A0,L ;GET CIRCUIT INFO BASE ADDRESS
|
||
MOVE A0,A4 ;KEEP BASE IN A4
|
||
|
||
CLR A3 ;WAVE CNTR
|
||
MOVE @WAVE,A2 ;WAVE WITHIN THIS CIRCUIT
|
||
DEC A2
|
||
;A0=BASE=WAVE 1 X LIST!
|
||
MOVE A2,A2 ;1ST WAVE?
|
||
JREQ GOTIT
|
||
Q1 MOVE *A0+,A1,L
|
||
JRNE Q1
|
||
;A0=NEXT WAVE
|
||
INC A3
|
||
CMP A3,A2 ;REACHED CORRECT WAVE?
|
||
JRNE Q1
|
||
;
|
||
GOTIT:
|
||
;POINTING AT X ARROW LIST FOR THIS WAVE
|
||
MOVE *A0+,A1,L
|
||
MOVE A1,@ARWX1,L
|
||
MOVE *A0+,A1,L
|
||
JREQ DONEX
|
||
MOVE A1,@ARWX2,L
|
||
MOVE *A0,A1,L
|
||
MOVE A1,@ARWX3,L
|
||
;
|
||
DONEX:
|
||
MOVE A4,A0 ;A4=BASE OF X LIST
|
||
;A0=BASE=WAVE 1 X LIST!
|
||
Q2 MOVE *A0+,A1,L
|
||
JRNE Q2
|
||
;A0=NEXT WAVE
|
||
MOVE *A0,A1,L
|
||
JRNE Q2
|
||
;A0 NOW PNTS TO BEGINNING OF Y LIST
|
||
ADDI 32,A0
|
||
MOVE A0,A4
|
||
MOVE A2,A2 ;1ST WAVE?
|
||
JREQ GOTY
|
||
CLR A3
|
||
Q3 MOVE *A0+,A1,L
|
||
JRNE Q3
|
||
;A0=NEXT WAVE
|
||
INC A3
|
||
CMP A3,A2 ;REACHED CORRECT WAVE?
|
||
JRNE Q3
|
||
;
|
||
GOTY:
|
||
;POINTING AT Y ARROW LIST FOR THIS WAVE
|
||
MOVE *A0+,A1,L
|
||
MOVE A1,@ARWY1,L
|
||
MOVE *A0+,A1,L
|
||
JREQ DONEY
|
||
MOVE A1,@ARWY2,L
|
||
MOVE *A0,A1,L
|
||
MOVE A1,@ARWY3,L
|
||
;
|
||
DONEY:
|
||
MOVE A4,A0 ;A4=BASE OF Y LIST
|
||
;A0=BASE=WAVE 1 Y LIST!
|
||
Q4 MOVE *A0+,A1,L
|
||
JRNE Q4
|
||
;A0=NEXT WAVE
|
||
MOVE *A0,A1,L
|
||
JRNE Q4
|
||
;A0 NOW PNTS TO BEGINNING OF FLAGS LIST
|
||
;
|
||
ADDI 32,A0
|
||
MOVE A0,A4
|
||
MOVE A2,A2 ;1ST WAVE?
|
||
JREQ GOTF
|
||
CLR A3
|
||
Q5 MOVE *A0+,A1,W
|
||
JRNE Q5
|
||
;A0=NEXT WAVE
|
||
INC A3
|
||
CMP A3,A2 ;REACHED CORRECT WAVE?
|
||
JRNE Q5
|
||
;
|
||
GOTF:
|
||
;POINTING AT F ARROW LIST FOR THIS WAVE
|
||
MOVE *A0+,A1,W
|
||
MOVE A1,@ARWF1,W
|
||
MOVE *A0+,A1,W
|
||
JREQ DONEF
|
||
MOVE A1,@ARWF2,W
|
||
MOVE *A0,A1,W
|
||
MOVE A1,@ARWF3,W
|
||
;
|
||
DONEF:
|
||
MOVE A4,A0 ;A4=BASE OF F LIST
|
||
;A0=BASE=WAVE 1 IMG LIST!
|
||
Q6 MOVE *A0+,A1,W
|
||
JRNE Q6
|
||
;A0=NEXT WAVE
|
||
MOVE *A0,A1,W
|
||
JRNE Q6
|
||
;A0 NOW PNTS TO BEGINNING OF IMG LIST
|
||
;
|
||
ADDI 16,A0
|
||
MOVE A0,A4
|
||
MOVE A2,A2 ;1ST WAVE?
|
||
JREQ GOTI
|
||
CLR A3
|
||
Q7 MOVE *A0+,A1,L
|
||
JRNE Q7
|
||
;A0=NEXT WAVE
|
||
INC A3
|
||
CMP A3,A2 ;REACHED CORRECT WAVE?
|
||
JRNE Q7
|
||
;
|
||
GOTI:
|
||
;POINTING AT I ARROW LIST FOR THIS WAVE
|
||
MOVE *A0+,A1,L
|
||
MOVE A1,@ARWI1,L
|
||
MOVE *A0+,A1,L
|
||
JREQ DONEI
|
||
MOVE A1,@ARWI2,L
|
||
MOVE *A0,A1,L
|
||
MOVE A1,@ARWI3,L
|
||
;
|
||
DONEI:
|
||
MOVK 2,A5
|
||
DTOP:
|
||
PUSH A5
|
||
SLL 5,A5
|
||
MOVI ARWX1,A1
|
||
ADD A5,A1
|
||
MOVE *A1,A0,L ;X
|
||
JREQ NXT
|
||
MOVI ARWY1,A1
|
||
ADD A5,A1
|
||
MOVE *A1,A1,L ;Y
|
||
MOVI ARWF1,A3
|
||
SRL 1,A5
|
||
ADD A5,A3
|
||
MOVE *A3,A4,W ;FLAGS
|
||
MOVI ARWI1,A3
|
||
SLL 1,A5
|
||
ADD A5,A3
|
||
MOVE *A3,A2,L ;IMG
|
||
|
||
MOVI 65,A3
|
||
MOVI CLSNEUT|TYPNEUT|SUBARW,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ
|
||
NXT PULL A5
|
||
DEC A5
|
||
JRNN DTOP
|
||
|
||
RETS
|
||
|
||
;EACH CIRCUIT HAS DIFFERENT ARROW TABLES!
|
||
|
||
CIRCTBL .LONG CIRC1,CIRC2,CIRC3
|
||
;
|
||
CIRC1:
|
||
;
|
||
;CIRCUIT 1 ARROW TABLE:
|
||
;
|
||
;ARX:
|
||
.LONG RGTX,0 ;WAVE 1
|
||
.LONG TOPX,BOTX,0 ;WAVE 2 (2 ARROWS)
|
||
.LONG RGTX,0
|
||
.LONG RGTX,BOTX,0
|
||
.LONG BOTX1,0 ;WAVE 5
|
||
.LONG RGTX,0
|
||
.LONG TOPX,0
|
||
.LONG RGTX,0 ;WAVE 8 OF CIRCUIT 1
|
||
.LONG RGTX,0 ;WAVE 9
|
||
.LONG RGTX,0 ;WAVE 10
|
||
.LONG 0
|
||
;ARY:
|
||
.LONG RGTY,0 ;WAVE 1
|
||
.LONG TOPY,BOTY,0 ;WAVE 2 (2 ARROWS)
|
||
.LONG RGTY,0
|
||
.LONG RGTY,BOTY,0
|
||
.LONG BOTY1,0 ;WAVE 5
|
||
.LONG RGTY,0
|
||
.LONG TOPY,0
|
||
.LONG RGTY,0
|
||
.LONG RGTY,0 ;9
|
||
.LONG RGTY,0 ;10
|
||
.LONG 0
|
||
;ARF:
|
||
.WORD RGTARWF,0 ;WAVE 1
|
||
.WORD TOPARWF,BOTARWF,0 ;WAVE 2 (2 ARROWS)
|
||
.WORD RGTARWF,0
|
||
.WORD RGTARWF,BOTARWF,0
|
||
.WORD BOTARWF,0 ;WAVE 5
|
||
.WORD RGTARWF,0
|
||
.WORD TOPARWF,0
|
||
.WORD RGTARWF,0
|
||
.WORD RGTARWF,0 ;9
|
||
.WORD RGTARWF,0 ;10
|
||
.WORD 0
|
||
;ARI:
|
||
.LONG ARROW9,0 ;WAVE 1
|
||
.LONG ARROW12,ARROW12,0 ;WAVE 2 (2 ARROWS)
|
||
.LONG ARROW9,0
|
||
.LONG ARROW9,ARROW12,0
|
||
.LONG ARROW12,0 ;WAVE 5
|
||
.LONG ARROW9,0
|
||
.LONG ARROW12,0
|
||
.LONG ARROW9,0 ;8
|
||
.LONG ARROW9,0 ;9
|
||
.LONG ARROW9,0 ;10
|
||
.LONG 0
|
||
|
||
;
|
||
;CIRCUIT 2 ARROW TABLE:
|
||
;
|
||
CIRC2:
|
||
;
|
||
;ARX:
|
||
.LONG RGTX2,TOPX2,BOTX2,0 ;WAVE 1
|
||
;SHOW VERSION
|
||
; .LONG BOTX2,0 ;WAVE 1
|
||
.LONG RGTX2,TOPX2,BOTX2,0 ;WAVE 2 (3 ARROWS)
|
||
.LONG TOPX2,BOTX2,0
|
||
.LONG TOPX2,0
|
||
.LONG BOTX2,0 ;WAVE 5
|
||
.LONG RGTX2,0
|
||
.LONG RGTX2,0 ;WAVE 7-TVSET ARENA
|
||
.LONG RGTX2,0 ;WAVE 8 OF CIRCUIT 1
|
||
.LONG RGTX2,0 ;WAVE 9
|
||
.LONG RGTX2,0 ;WAVE 10 (NON EX2ISTENT!)
|
||
.LONG RGTX2,0 ;WAVE
|
||
.LONG BOTX1,0 ;WAVE
|
||
.LONG RGTX2,0 ;WAVE
|
||
.LONG RGTX1,0 ;WAVE ;14
|
||
.LONG BOTX2,0 ;WAVE
|
||
.LONG TOPX2,0 ;WAVE
|
||
.LONG RGTX2,0 ;WAVE
|
||
.LONG TOPX2,0 ;WAVE
|
||
.LONG 0
|
||
;ARY:
|
||
.LONG RGTY2,TOPY2,BOTY2,0 ;WAVE 1
|
||
;SHOW VERSION
|
||
; .LONG BOTY2,0 ;WAVE 1
|
||
.LONG RGTY2,TOPY2,BOTY2,0 ;WAVE 2 (2 ARROWS)
|
||
.LONG TOPY2,BOTY2,0
|
||
.LONG TOPY2,0
|
||
.LONG BOTY2,0 ;WAVE 5
|
||
.LONG RGTY2,0
|
||
.LONG RGTY2,0
|
||
.LONG RGTY2,0
|
||
.LONG RGTY2,0 ;9
|
||
.LONG RGTY2,0 ;10
|
||
.LONG RGTY2,0
|
||
.LONG BOTY1,0
|
||
.LONG RGTY2,0
|
||
.LONG RGTY1,0
|
||
.LONG BOTY2,0 ;15
|
||
.LONG TOPY2,0
|
||
.LONG RGTY2,0
|
||
.LONG TOPY2,0
|
||
.LONG 0
|
||
;ARF:
|
||
.WORD RGTARWF,TOPARWF,BOTARWF,0 ;WAVE 1 (2 ARROWS)
|
||
;SHOW VERSION
|
||
; .WORD BOTARWF,0 ;WAVE 1 (2 ARROWS)
|
||
.WORD RGTARWF,TOPARWF,BOTARWF,0 ;WAVE 2 (2 ARROWS)
|
||
.WORD TOPARWF,BOTARWF,0
|
||
.WORD TOPARWF,0
|
||
.WORD BOTARWF,0 ;WAVE 5
|
||
.WORD RGTARWF,0
|
||
.WORD RGTARWF,0 ;7
|
||
.WORD RGTARWF,0
|
||
.WORD RGTARWF,0 ;9
|
||
.WORD RGTARWF,0 ;10
|
||
.WORD RGTARWF,0
|
||
.WORD BOTARWF,0
|
||
.WORD RGTARWF,0 ;13
|
||
.WORD RGTARWF,0 ;14
|
||
.WORD BOTARWF,0
|
||
.WORD TOPARWF,0
|
||
.WORD RGTARWF,0
|
||
.WORD TOPARWF,0
|
||
.WORD 0
|
||
;ARI:
|
||
.LONG ARROW9,ARROW12,ARROW12,0 ;WAVE 1
|
||
;SHOW VERSION
|
||
; .LONG ARROW12,0 ;WAVE 1
|
||
.LONG ARROW9,ARROW12,ARROW12,0 ;WAVE 2 (2 ARROWS)
|
||
.LONG ARROW12,ARROW12,0
|
||
.LONG ARROW12,0
|
||
.LONG ARROW12,0 ;WAVE 5
|
||
.LONG ARROW9,0
|
||
.LONG ARROW9,0 ;7
|
||
.LONG ARROW9,0 ;8
|
||
.LONG ARROW9,0 ;9
|
||
.LONG ARROW9,0 ;10
|
||
.LONG ARROW9,0
|
||
.LONG ARROW12,0
|
||
.LONG ARROW9,0
|
||
.LONG ARROW9,0
|
||
.LONG ARROW12,0 ;15
|
||
.LONG ARROW12,0
|
||
.LONG ARROW9,0
|
||
.LONG ARROW12,0
|
||
.LONG 0
|
||
|
||
;
|
||
;CIRCUIT 3 ARROW TABLE:
|
||
CIRC3:
|
||
;
|
||
;ARX:
|
||
.LONG RGTX2,TOPX2,BOTX2,0 ;WAVE 1
|
||
.LONG RGTX2,TOPX2,BOTX2,0 ;WAVE 2 (3 ARROWS)
|
||
.LONG TOPX2,BOTX2,0
|
||
.LONG TOPX2,0
|
||
.LONG BOTX2,0 ;WAVE 5
|
||
.LONG RGTX2,0
|
||
.LONG RGTX2,0 ;WAVE 7-TVSET ARENA
|
||
.LONG RGTX2,0 ;WAVE 8 OF CIRCUIT 1
|
||
.LONG RGTX2,0 ;WAVE 9
|
||
.LONG RGTX2,0 ;WAVE 10 (NON EX2ISTENT!)
|
||
.LONG RGTX2,0 ;WAVE
|
||
.LONG BOTX1,0 ;WAVE
|
||
.LONG RGTX2,0 ;WAVE
|
||
.LONG RGTX1,0 ;WAVE ;14
|
||
.LONG BOTX2,0 ;WAVE
|
||
.LONG TOPX2,0 ;WAVE
|
||
.LONG RGTX2,0 ;WAVE
|
||
.LONG TOPX2,0 ;WAVE ;18
|
||
.LONG RGTX2,0 ;WAVE ;19
|
||
.LONG RGTX2,0 ;WAVE ;20
|
||
.LONG RGTX2,0 ;WAVE ;21-TVSET ARENA
|
||
.LONG 0
|
||
;ARY:
|
||
.LONG RGTY2,TOPY2,BOTY2,0 ;WAVE 1
|
||
.LONG RGTY2,TOPY2,BOTY2,0 ;WAVE 2 (2 ARROWS)
|
||
.LONG TOPY2,BOTY2,0
|
||
.LONG TOPY2,0
|
||
.LONG BOTY2,0 ;WAVE 5
|
||
.LONG RGTY2,0
|
||
.LONG RGTY2,0
|
||
.LONG RGTY2,0
|
||
.LONG RGTY2,0 ;9
|
||
.LONG RGTY2,0 ;10
|
||
.LONG RGTY2,0
|
||
.LONG BOTY1,0
|
||
.LONG RGTY2,0
|
||
.LONG RGTY1,0
|
||
.LONG BOTY2,0 ;15
|
||
.LONG TOPY2,0
|
||
.LONG RGTY2,0
|
||
.LONG TOPY2,0
|
||
.LONG RGTY2,0 ;WAVE ;19
|
||
.LONG RGTY2,0 ;WAVE ;20
|
||
.LONG RGTY2,0 ;WAVE ;21-TVSET ARENA
|
||
.LONG 0
|
||
;ARF:
|
||
.WORD RGTARWF,TOPARWF,BOTARWF,0 ;WAVE 1 (2 ARROWS)
|
||
.WORD RGTARWF,TOPARWF,BOTARWF,0 ;WAVE 2 (2 ARROWS)
|
||
.WORD TOPARWF,BOTARWF,0
|
||
.WORD TOPARWF,0
|
||
.WORD BOTARWF,0 ;WAVE 5
|
||
.WORD RGTARWF,0
|
||
.WORD RGTARWF,0 ;7
|
||
.WORD RGTARWF,0
|
||
.WORD RGTARWF,0 ;9
|
||
.WORD RGTARWF,0 ;10
|
||
.WORD RGTARWF,0
|
||
.WORD BOTARWF,0
|
||
.WORD RGTARWF,0 ;13
|
||
.WORD RGTARWF,0 ;14
|
||
.WORD BOTARWF,0
|
||
.WORD TOPARWF,0
|
||
.WORD RGTARWF,0
|
||
.WORD TOPARWF,0 ;18
|
||
.WORD RGTARWF,0 ;19
|
||
.WORD RGTARWF,0 ;20
|
||
.WORD RGTARWF,0 ;21
|
||
.WORD 0
|
||
;ARI:
|
||
.LONG ARROW9,ARROW12,ARROW12,0 ;WAVE 1
|
||
.LONG ARROW9,ARROW12,ARROW12,0 ;WAVE 2 (2 ARROWS)
|
||
.LONG ARROW12,ARROW12,0
|
||
.LONG ARROW12,0
|
||
.LONG ARROW12,0 ;WAVE 5
|
||
.LONG ARROW9,0
|
||
.LONG ARROW9,0 ;7
|
||
.LONG ARROW9,0 ;8
|
||
.LONG ARROW9,0 ;9
|
||
.LONG ARROW9,0 ;10
|
||
.LONG ARROW9,0
|
||
.LONG ARROW12,0
|
||
.LONG ARROW9,0
|
||
.LONG ARROW9,0
|
||
.LONG ARROW12,0 ;15
|
||
.LONG ARROW12,0
|
||
.LONG ARROW9,0
|
||
.LONG ARROW12,0 ;18
|
||
.LONG ARROW9,0 ;19
|
||
.LONG ARROW9,0 ;20
|
||
.LONG ARROW9,0 ;21
|
||
.LONG 0
|
||
|
||
DOCHS:
|
||
MOVE @CIRCUIT,A0
|
||
CMPI 2,A0
|
||
JRZ DOG1
|
||
SLEEP 60*9 ;TIME BEFORE CHASERS COME OUT
|
||
DOG1 SLEEP 2*60+90
|
||
MOVE @STATUS,A0
|
||
CMPI 3,A0
|
||
JREQ DOC1
|
||
CMPI 2,A0
|
||
JREQ DOC2
|
||
CLR A9
|
||
CREATE 0,STRT_CHSR
|
||
DIE
|
||
DOC2 MOVK 32,A9
|
||
CREATE 0,STRT_CHSR
|
||
DIE
|
||
DOC1 ;BOTH PLAYERS PRESENT
|
||
CLR A9
|
||
CREATE 0,STRT_CHSR
|
||
MOVK 32,A9
|
||
CREATE 0,STRT_CHSR
|
||
DIE
|
||
RESETPZ SLEEP 3*60
|
||
CLR A0
|
||
MOVB A0,@PZON
|
||
DIE
|
||
|
||
KILIC SLEEP 60*10
|
||
CLR A1
|
||
NOT A1
|
||
MOVI ICONPID,A0 ;KILL ICON DISPATCHER
|
||
CALLA KILALL
|
||
MOVI CSHPID,A0 ;KILL ICON DISPATCHER
|
||
CALLA KILALL
|
||
DIE
|
||
FIXBUG
|
||
;GET CURRENT PLAYER SCORES
|
||
;SLEEP 20 SECONDS
|
||
;GET NEW PLAYER SCORES
|
||
;IF SAME, NOBODY HAS SCORED! WE MAY HAVE AN INVISIBLE ENEMY, SO GO TO SMART
|
||
;BOMB CODE.
|
||
;IF NOT SAME, STORE THOSE SCORES AWAY AS CURRENT AND SLEEP ANOTHER 20 SECONDS!
|
||
MOVI P1DATA,A0
|
||
MOVE *A0(PSCORE),A8,L
|
||
MOVI P2DATA,A0
|
||
MOVE *A0(PSCORE),A9,L
|
||
SLEEP 20*60
|
||
MOVI P1DATA,A0
|
||
MOVE *A0(PSCORE),A1,L
|
||
MOVI P2DATA,A0
|
||
MOVE *A0(PSCORE),A2,L
|
||
CMP A1,A8
|
||
JRNZ FIXBUG
|
||
CMP A2,A9
|
||
JRNZ FIXBUG
|
||
;NEITHER PLAYER HAS SCORED IN 20 SECONDS!
|
||
;SMART BOMB SCREEN!
|
||
CREATE 0,BAD0 ;SMART BOMB AND GET RID OF EVERYONE!
|
||
MOVI EXP3HI,A0
|
||
CALLA ONESND
|
||
JRUC FIXBUG
|
||
DEXIT:
|
||
; CHECK TO SEE IF PLAYER IS UP AGAINST CORRECT GATE
|
||
; IF SO, START SCRIPT TO SCROLL PLAYER TO NEXT ARENA
|
||
|
||
SLEEP 60*2
|
||
; CREATE FIXIT,FIXBUG
|
||
|
||
;PLACED HERE 4/11/90
|
||
CLR A1
|
||
NOT A1
|
||
MOVI COBPID,A0
|
||
CALLA KILALL
|
||
MOVI COBPIDA,A0
|
||
CALLA KILALL
|
||
MOVI COBPIDM,A0
|
||
CALLA KILALL
|
||
MOVI COBPIDS,A0
|
||
CALLA KILALL
|
||
MOVI LORDPID,A0
|
||
CALLA KILALL
|
||
|
||
SLEEP 10
|
||
|
||
CREATE ARWPID,KILIC
|
||
|
||
MOVE @GAMSTATE,A0
|
||
CMPI INAMODE,A0
|
||
JRZ NOSCRLL ;NO SCROLL ON IN DEMO AT ALL!
|
||
|
||
DX2:
|
||
;CHECK FOR PRIZES IN TV ETC.
|
||
|
||
MOVB @PZON,A0
|
||
JRZ GO1
|
||
;PZON SET
|
||
MOVI BUNK,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRNZ DX22
|
||
|
||
;RESET PZON FLAG AFTER A FEW SECONDS!
|
||
CREATE BUNK,RESETPZ
|
||
|
||
JRUC DX22
|
||
|
||
; MOVI CSHPID,A0
|
||
; CLR A1
|
||
; NOT A1
|
||
; CALLA EXISTP
|
||
; JRNZ DX22
|
||
;CASH NOT BEING LAYED OUT!
|
||
|
||
GO1
|
||
MOVI CLSENMY,A0
|
||
MOVI 0C000H,A1
|
||
|
||
CALLA EXISTOBJ
|
||
JRZ DN
|
||
MOVE @CIRCUIT,A0
|
||
CMPI 2,A0
|
||
JRNZ DX22
|
||
MOVE @WAVE,A0
|
||
CMPI 7,A0
|
||
JRZ DN
|
||
DX22
|
||
SLEEP 1
|
||
JRUC DX2
|
||
DN
|
||
CLR A1
|
||
NOT A1
|
||
MOVI CLSNEUT|TYPWLMN,A0
|
||
CALLA EXISTOBJ
|
||
JRZ DN0
|
||
CLR A1
|
||
MOVE A1,*A0(OID) ;CHANGE ITS OID
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVK 3,A1
|
||
MOVE A1,*A0(PTIME)
|
||
MOVI DIOFF,A7
|
||
CALLA PUTA7
|
||
JRUC DN
|
||
DN0
|
||
|
||
MOVI CLSNEUT|TYPTANK,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD4
|
||
;FOUND A TANK BOTTOM
|
||
MOVE A0,A8
|
||
;WHO GETS SCORE HERE?
|
||
CALLA KILL_TK
|
||
JRUC DN0
|
||
BAD4
|
||
SLEEP 1
|
||
MOVB @SHK_ON,A0
|
||
JRNZ BAD4
|
||
|
||
MOVE @WAVE,A0
|
||
CMPI 1,A0
|
||
JRNZ U8
|
||
MOVE @CIRCUIT,A9
|
||
ADDI 4,A9
|
||
CREATE 0,DELYMN
|
||
SLEEP 6*60
|
||
JRUC U9
|
||
U8
|
||
CREATE ARWPID,DOCHS ;START CHASER AFTER A TIME!
|
||
U9
|
||
CLR A1
|
||
NOT A1
|
||
MOVI FIXIT,A0
|
||
CALLA KILALL
|
||
|
||
CREATE CYCPID,CMP_LIT
|
||
CALLR DRW_ARW ;ARWS
|
||
CREATE CYCPID,ARW_LIT
|
||
CREATE ARWPID,GOFORIT ;ARROW PID GETS KILLED FER SURE
|
||
;NOW CHECK TO SEE IF PLAYER IS IN MAGIC BOX (IE. FRONT OF PROPER GATE!)
|
||
;START SCROLL TO NEXT WAVE AFTER THIS!
|
||
;OPEN PROPER GATE
|
||
|
||
;KILL OVERLORD PROCESS (WE ARE IN OVERLORD NOW!)
|
||
CLR A1
|
||
MOVB A1,@SCRL
|
||
|
||
; CLR A1
|
||
; NOT A1
|
||
; MOVI LORDPID,A0
|
||
; CALLA KILALL
|
||
|
||
SLEEP 25
|
||
|
||
DN3 SLEEP 1
|
||
MOVB @KP_LS,A0 ;MAKE SURE NO DOOR IS CLOSING WHEN WE
|
||
;TRY TO OPEN CORRECT DOOR AT EXIT TIME.
|
||
CMPI 1,A0
|
||
JREQ DN3
|
||
MOVB @KP_RS,A0
|
||
CMPI 1,A0
|
||
JREQ DN3
|
||
MOVB @KP_TS,A0
|
||
CMPI 1,A0
|
||
JREQ DN3
|
||
|
||
MOVE @CIRCUIT,A0
|
||
SLL 5,A0
|
||
ADDI CIRC3TBL,A0
|
||
MOVE *A0,A0,L
|
||
|
||
MOVE @WAVE,A1
|
||
TR2 DEC A1
|
||
JREQ TR3
|
||
ADDI 48,A0
|
||
JRUC TR2
|
||
TR3:
|
||
MOVE A0,A1
|
||
;GET LIST OF THREE DOORS TO OPEN
|
||
MOVE *A1+,A0,W
|
||
MOVE *A1+,A5,W
|
||
MOVE *A1+,A6,W
|
||
MOVE A0,A9
|
||
CREATE 0,EXITSGN
|
||
MOVE A9,A0
|
||
CLR A1
|
||
NOT A1 ;INFINITE DELAY
|
||
CALLA SET_GATE_2
|
||
MOVE A5,A0
|
||
JREQ DN2
|
||
MOVE A0,A9
|
||
CREATE 0,EXITSGN
|
||
MOVE A9,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA SET_GATE_2
|
||
MOVE A6,A0
|
||
JREQ DN2
|
||
MOVE A0,A9
|
||
CREATE 0,EXITSGN
|
||
MOVE A9,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA SET_GATE_2
|
||
DN2:
|
||
;CHECK BOTH PLAYERS!
|
||
MOVE @PLYROBJS,A8,L
|
||
MOVE @PLYROBJS+32,A9,L
|
||
|
||
AF2 MOVE @CIRCUIT,A0
|
||
SLL 5,A0
|
||
ADDI CIRC2TBL,A0
|
||
MOVE *A0,A0,L
|
||
MOVE @WAVE,A1
|
||
TR: DEC A1
|
||
JREQ TX
|
||
ADDI 192+192,A0 ;A1 PNTS TO LIST OF MAGIC BOXES FOR WAVE
|
||
JRUC TR
|
||
TX:
|
||
CLR A5
|
||
CLR A6
|
||
MOVE A0,A1
|
||
MOVE *A1,A2,L ;ENTRY 1
|
||
ADDI 96,A1
|
||
MOVE *A1,A3,L
|
||
INC A5
|
||
INC A6
|
||
CALLR CK2
|
||
JRNC T6
|
||
CALLR READY2
|
||
JRC REDREG
|
||
T6 CALLR CK1
|
||
JRNC T7
|
||
CALLR READY1
|
||
JRC REDREG
|
||
T7
|
||
MOVE A0,A1
|
||
ADDI 32,A1
|
||
MOVE *A1,A2,L ;ENTRY 2
|
||
ADDI 96,A1
|
||
MOVE *A1,A3,L
|
||
INC A5
|
||
INC A6
|
||
CALLR CK2
|
||
JRNC T8
|
||
CALLR READY2
|
||
JRC REDREG
|
||
T8 CALLR CK1
|
||
JRNC T9
|
||
CALLR READY1
|
||
JRC REDREG
|
||
T9 MOVE A0,A1
|
||
ADDI 64,A1
|
||
MOVE *A1,A2,L ;ENTRY 3
|
||
ADDI 96,A1
|
||
MOVE *A1,A3,L
|
||
INC A5
|
||
INC A6
|
||
CALLR CK2
|
||
JRNC T10
|
||
CALLR READY2
|
||
JRC REDREG
|
||
T10 CALLR CK1
|
||
JRNC T11
|
||
CALLR READY1
|
||
JRC REDREG
|
||
T11
|
||
;MAKE POWERUPS TAKE A HIKE (BLADES ONLY AT THIS POINT?
|
||
* Z BIT CLR = MATCH, A0 = PTR TO PROCESS
|
||
CLR A6
|
||
MOVE A6,@PLY2IN
|
||
|
||
CALLA BLDOFF
|
||
|
||
SLEEP 1
|
||
JRUC DN2
|
||
EXITSGN
|
||
;A9=DOOR #
|
||
;1=DOOR LEFT
|
||
;2=RGT,3=TOP,4=BOTM
|
||
DEC A9
|
||
SLL 5,A9
|
||
MOVI EXX,A0
|
||
ADD A9,A0
|
||
MOVE *A0,A0,L
|
||
ADDI EXY,A9
|
||
MOVE *A9,A1,L
|
||
MOVI DMAWNZ,A4,W ;FLAGS
|
||
MOVI EXIT,A2 ;IMG
|
||
MOVI 65,A3
|
||
MOVI CLSNEUT|TYPNEUT|SUBARW,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ
|
||
DIE
|
||
EXX .LONG 01E0000H,01580000H,0BD0000H,0BD0000H
|
||
EXY .LONG 0920000H,08C0000H,0280000H,0E50000H
|
||
CK2: ;PLAYER 2 IS IN A9
|
||
MOVE A9,A9
|
||
JREQ RTS
|
||
MMTM SP,A0,A1
|
||
MOVE *A9(OXVAL),A0,L
|
||
MOVE *A9(OYVAL),A1,L
|
||
JRUC CF
|
||
CK1: ;PLAYER 1 IS IN A8
|
||
MOVE A8,A8
|
||
JREQ RTS
|
||
MMTM SP,A0,A1
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
CF SRL 16,A0
|
||
MOVX A0,A1
|
||
MOVE @WORLDTL,A0,L
|
||
SUBXY A0,A1
|
||
;A1=Y,X OF PLAYER WITH WORLD YX TAKEN OUT
|
||
CMPXY A1,A2
|
||
JRXGT NO
|
||
CMPXY A1,A3
|
||
JRXLT NO
|
||
;X IS WITHIN MAGIC BOX
|
||
JRYLT NO
|
||
CMPXY A1,A2
|
||
JRYGT NO
|
||
;A HIT
|
||
MMFM SP,A0,A1
|
||
SETC
|
||
RETS
|
||
NO
|
||
MMFM SP,A0,A1
|
||
RTS CLRC
|
||
RETS
|
||
READY2:
|
||
MOVB @CNTDIG1,A4
|
||
MOVB @CNTDIG2,A7
|
||
OR A4,A7
|
||
JRNZ RY2
|
||
MOVE @STATUS,A4
|
||
CMPI 3,A4
|
||
JRNE SETR1
|
||
RY2
|
||
MOVE A6,@PLY2IN
|
||
CLRC
|
||
RETS
|
||
|
||
READY1:
|
||
MOVB @CNTDIG1,A4
|
||
MOVB @CNTDIG2,A7
|
||
OR A4,A7
|
||
JRNZ RY1
|
||
MOVE @STATUS,A4
|
||
CMPI 3,A4
|
||
JRNE SETR1
|
||
RY1
|
||
;SOMEONE HAS ENTERED A DOOR
|
||
;IF 2 PLYRS, CLOSE OTHER DOORS
|
||
;THEN SCROLL FIRST PLAYER OUT, AND WAIT FOR OTHER PLAYER TO ALSO ENTER
|
||
;THEN START SCROLL
|
||
;READY TO START SCROLL
|
||
MOVE A5,@PLY1IN
|
||
MOVE @PLY2IN,A7
|
||
CMP A5,A7
|
||
JREQ SETR1
|
||
CLR A4
|
||
MOVE A4,@PLY1IN
|
||
CLRC
|
||
RETS
|
||
NOSETP MOVK 1,A0
|
||
MOVB A0,@WNTOUT
|
||
NOSET
|
||
CLR A4
|
||
MOVE A4,@PLY1IN
|
||
MOVE A4,@PLY2IN
|
||
CLRC
|
||
RETS
|
||
SETR1
|
||
;IF SCRIPTPLAY EXISTS, DO NOT ALLOW AN EXIT
|
||
;IF PCTOT IS NOT 0 THEN NO EXIT, CHUNKS COULD BE KILLED BY SCROLLING!
|
||
PUSH A1
|
||
CLR A1
|
||
NOT A1
|
||
MOVI CLSNEUT|TYPNEUT|SUBCHNK,A0
|
||
CALLA EXISTOBJ
|
||
PULL A1
|
||
JRNZ NOSET
|
||
|
||
MOVB @SHK_ON,A0 ;SCREEN IS SHAKING!
|
||
JRNZ NOSET
|
||
|
||
; MOVB @PZON,A0
|
||
; JRNZ NOSETP ;PRIZE STILL FLASHING
|
||
|
||
MOVI FLYPID,A0 ;CASH/PRIZE FLYING TOWARD MONITOR
|
||
PUSH A1
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
PULL A1
|
||
JRNZ NOSETP
|
||
|
||
MOVI SCRPID,A0 ;SCRIPTPLAY IN ACTION STILL!
|
||
PUSH A1
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
PULL A1
|
||
JRNZ NOSET
|
||
|
||
|
||
|
||
|
||
MOVB @CNTDIG1,A4
|
||
MOVB @CNTDIG2,A7
|
||
OR A4,A7
|
||
JRNZ TAG9
|
||
|
||
;FIX PLYRPRCS BUG! PUT INTO A PROCESS BY ITSELF?
|
||
MOVE @STATUS,A7
|
||
CMPI 3,A7
|
||
JRZ TAG9
|
||
CMPI 1,A7
|
||
JRNZ TAG9A
|
||
CLR A7
|
||
MOVE A7,@PLYRPRCS+32,L
|
||
JRUC TAG9
|
||
TAG9A CLR A7
|
||
MOVE A7,@PLYRPRCS,L
|
||
TAG9
|
||
|
||
|
||
|
||
|
||
MOVE @PLYRPRCS,A0,L
|
||
JRZ TU
|
||
MOVE *A0(DEAD),A0
|
||
JRNZ NOSET
|
||
TU MOVE @PLYRPRCS+32,A0,L
|
||
JRZ TU2
|
||
MOVE *A0(DEAD),A0
|
||
JRNZ NOSET
|
||
TU2 SETC
|
||
RETS
|
||
|
||
REDREG ADDI 96,A1
|
||
MOVE *A1,A0
|
||
MOVE A0,@WAVE
|
||
ADDI 96,A1
|
||
MOVE *A1,A0
|
||
MOVE A0,@FROMDR
|
||
|
||
CMPI 1,A0
|
||
JRNE X1
|
||
CALLR KT
|
||
CALLR KR
|
||
JRUC X4
|
||
X1 CMPI 2,A0
|
||
JRNE X2
|
||
CALLR KL
|
||
CALLR KT
|
||
JRUC X4
|
||
X2 CMPI 3,A0
|
||
JRNE X3
|
||
|
||
CREATE CYCPID,LAZ_LIT ;LAZER LINES!
|
||
|
||
|
||
CALLR KL
|
||
CALLR KR
|
||
JRUC X4
|
||
X3
|
||
;GOING THROUGH BOTTOM DR
|
||
CREATE CYCPID,LAZ_LIT ;LAZER LINES!
|
||
|
||
|
||
CALLR KT
|
||
CALLR KL
|
||
CALLR KR
|
||
|
||
X4
|
||
MOVK 1,A1
|
||
MOVB A1,@SCRL
|
||
MOVB A1,@CANT
|
||
CLR A0
|
||
MOVB A0,@WNTOUT
|
||
|
||
CALLR STOPPLYR
|
||
|
||
SLEEP 1 ;3
|
||
|
||
;CLEAN UP ALL CHASER PROCS/IMAGES
|
||
MOVI ARWPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL ;KILL ARROW PROCESS
|
||
MOVI COLPID,A0
|
||
CALLA KILALL ;KILL COLLISION PROC
|
||
;KILL CHASER PCS PROC
|
||
MOVI CHSRPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL ;KILL CHASER SNAKE PCS
|
||
;KILL CHASER KILL OFF PROC (AFTER IT HAS HIT PLAYERS IS SLEEPS A BIT)
|
||
MOVI KCHAS,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL ;KILL CHASER SNAKE PCS
|
||
J0
|
||
;NEED TO KILL CHASER IMAGES HERE ALSO?
|
||
CLR A1
|
||
NOT A1
|
||
MOVI CLSNEUT|TYPCHSR,A0
|
||
CALLA EXISTOBJ
|
||
JRZ J1
|
||
;A0=IMAGE OF CHASER
|
||
CLR A2
|
||
MOVE A2,*A8(OXVEL),L
|
||
MOVE A2,*A8(OYVEL),L
|
||
MOVI >222,A2
|
||
MOVE A2,*A0(OID),W
|
||
MOVE A0,A8
|
||
CREATE 0,BLOW
|
||
MOVI EXP3HI,A0
|
||
CALLA ONESND
|
||
JRUC J0
|
||
|
||
STOPPLYR
|
||
MOVE @PLYRPRCS,A1,L
|
||
JRZ NEXT1
|
||
MOVE *A1(TSO_PTR),A5,L
|
||
MOVE *A1(LEG2_PTR),A1,L
|
||
MOVE A0,*A5(OXVEL),L
|
||
MOVE A0,*A5(OYVEL),L
|
||
MOVE A0,*A1(OXVEL),L
|
||
MOVE A0,*A1(OYVEL),L
|
||
NEXT1 MOVE @PLYRPRCS+32,A1,L
|
||
JRZ NEXT2
|
||
MOVE *A1(TSO_PTR),A5,L
|
||
MOVE *A1(LEG2_PTR),A1,L
|
||
MOVE A0,*A5(OXVEL),L
|
||
MOVE A0,*A5(OYVEL),L
|
||
MOVE A0,*A1(OXVEL),L
|
||
MOVE A0,*A1(OYVEL),L
|
||
NEXT2 RETS
|
||
|
||
J1:
|
||
SLEEP 2
|
||
|
||
CALLR STOPPLYR
|
||
|
||
MOVI CHSR2PID,A0 ;KILL SECOND ROUND OF CHASER
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL
|
||
|
||
CLR A0
|
||
MOVE @PLYRPRCS,A1,L
|
||
JRZ RPZ
|
||
MOVE *A1(LEG_PRC),A1,L
|
||
MOVE *A1(SHOECNT),A2
|
||
MOVE A2,*A1(SVSHO)
|
||
MOVE A0,*A1(SHOECNT)
|
||
;
|
||
RPZ MOVE @PLYRPRCS+32,A1,L
|
||
JRZ RP2
|
||
MOVE *A1(LEG_PRC),A1,L
|
||
MOVE *A1(SHOECNT),A2
|
||
MOVE A2,*A1(SVSHO)
|
||
MOVE A0,*A1(SHOECNT)
|
||
|
||
RP2
|
||
CLR A0
|
||
MOVB A0,@ENDON
|
||
; CREATE 0,CHEERS
|
||
MOVI CROWD1A,A0
|
||
CALLA ONESND
|
||
;KILL TVMNTR ON SCREEN (MAP)
|
||
CLR A1
|
||
NOT A1
|
||
MOVI TV2PID,A0
|
||
CALLA KILALL
|
||
; CLR A1
|
||
; NOT A1
|
||
MOVI TVPID,A0
|
||
CALLA KILALL
|
||
|
||
CALLR KILEM
|
||
SLEEP 1
|
||
|
||
CALLR STOPPLYR
|
||
CALLR KILEM
|
||
|
||
NOMAM SLEEP 1
|
||
;CHECK FOR SCRIPT ON!
|
||
CALLR STOPPLYR
|
||
|
||
MOVI SCRPID,A0 ;SCRIPTPLAY IN ACTION STILL!
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRNZ NOMAM
|
||
|
||
JSRP SET_WAVE ;ROBBI
|
||
CALLA CLNPAL
|
||
|
||
;KILL CHASER PCS PROC
|
||
MOVI CHSRPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL ;KILL CHASER SNAKE PCS
|
||
;NEED TO KILL CHASER IMAGES HERE ALSO?
|
||
MOVI CLSENMY|TYPCHSR,A0
|
||
CALLA KILOBJ
|
||
|
||
;RECOVER OLD SHOE CNTS
|
||
MOVE @PLYRPRCS,A1,L
|
||
JRZ RP1
|
||
MOVE *A1(LEG_PRC),A1,L
|
||
MOVE *A1(SVSHO),A0
|
||
MOVE A0,*A1(SHOECNT)
|
||
;
|
||
RP1 MOVE @PLYRPRCS+32,A1,L
|
||
JRZ NOSCRLL
|
||
MOVE *A1(LEG_PRC),A1,L
|
||
MOVE *A1(SVSHO),A0
|
||
MOVE A0,*A1(SHOECNT)
|
||
NOSCRLL
|
||
DIE
|
||
KILEM
|
||
CLR A1
|
||
NOT A1
|
||
MOVI FATPID,A0
|
||
CALLA KILALL
|
||
MOVI CLSENMY|TYPFAT,A0
|
||
CALLA KILOBJ
|
||
MOVI GALPID,A0
|
||
CALLA KILALL
|
||
MOVI TYPGAL,A0
|
||
CALLA KILALL
|
||
MOVI CLSENMY|TYPGAL|SUBCHN,A0
|
||
CALLA KILOBJ
|
||
MOVI CSHPID,A0 ;KILL ICON DISPATCHER
|
||
CALLA KILALL
|
||
RETS
|
||
|
||
;DLSTM .LONG MNTR,MAPP,FIGCOL,PALSMSH,PALTV,BLODP,GALP,GALP2,ORANGE,PRZ
|
||
; .LONG 0
|
||
CHEERS
|
||
MOVI CROWD1,A0
|
||
CALLA ONESND
|
||
SLEEP 20
|
||
MOVI CROWD1,A0
|
||
CALLA ONESND
|
||
SLEEP 25
|
||
MOVI CROWD1,A0
|
||
CALLA ONESND
|
||
SLEEP 15
|
||
MOVI CROWD1,A0
|
||
CALLA ONESND
|
||
DIE
|
||
LEGS
|
||
MOVI LEGOSND,A0 ;LETS GO
|
||
CALLA ONESND
|
||
MOVE @STATUS,A0
|
||
CMPI 3,A0
|
||
JRNZ LO
|
||
SLEEP 02EH
|
||
MOVI LEGOSND,A0 ;LETS GO
|
||
CALLA ONESND
|
||
LO DIE
|
||
|
||
GOFORIT:
|
||
MOVI CROWD1,A0
|
||
CALLA ONESND
|
||
|
||
SLEEP 10
|
||
MOVI P1DATA,A9
|
||
MOVE @STATUS,A0
|
||
CMPI 2,A0
|
||
JRNZ PLO
|
||
MOVI P2DATA,A9
|
||
PLO
|
||
CREATE 0,BAD0 ;SMART BOMB AND GET RID OF EVERYONE!
|
||
SLEEP 50
|
||
CREATE TVPID,LEGS
|
||
CLR A1
|
||
NOT A1
|
||
MOVI ICONPID,A0 ;KILL ICON DISPATCHER
|
||
CALLA KILALL
|
||
MOVI CSHPID,A0 ;KILL ICON DISPATCHER
|
||
CALLA KILALL
|
||
MOVE @PLYRPRCS,A7,L
|
||
JRZ P1
|
||
CLR A0
|
||
MOVB A0,*A7(BNDTYP)
|
||
MOVB A0,*A7(PRVBND)
|
||
CALLA DO_BND
|
||
P1 MOVE @PLYRPRCS+32,A7,L
|
||
JRZ P2
|
||
CLR A0
|
||
MOVB A0,*A7(BNDTYP)
|
||
MOVB A0,*A7(PRVBND)
|
||
CALLA DO_BND
|
||
P2
|
||
DIE
|
||
|
||
KL MOVI DRLPID,A0
|
||
CLR A1
|
||
MOVE A1,@KP_LS
|
||
NOT A1
|
||
CALLA KILALL
|
||
RETS
|
||
|
||
KR MOVI DRRPID,A0
|
||
CLR A1
|
||
MOVE A1,@KP_RS
|
||
NOT A1
|
||
CALLA KILALL
|
||
RETS
|
||
|
||
KT
|
||
MOVI DRTOPID,A0
|
||
CLR A1
|
||
MOVE A1,@KP_TS
|
||
NOT A1
|
||
CALLA KILALL
|
||
RETS
|
||
|
||
CIRC3TBL:
|
||
.LONG CIRCD1,CIRCD2,CIRCD3
|
||
CIRCD1:
|
||
.WORD 2,0,0 ;WAVE 1 CIRCUIT 1 DOORS TO OPEN
|
||
.WORD 3,4,0
|
||
.WORD 2,0,0
|
||
.WORD 2,4,0
|
||
.WORD 4,0,0
|
||
.WORD 2,0,0
|
||
.WORD 3,0,0
|
||
.WORD 2,0,0 ;WAVE 8
|
||
.WORD 2,0,0 ;WAVE 9
|
||
.WORD 2,0,0 ;WAVE 10
|
||
|
||
CIRCD2:
|
||
.WORD 2,3,4 ;WAVE 1 CIRCUIT 1 DOORS TO OPEN
|
||
;SHOW VERSION
|
||
; .WORD 4,0,0 ;WAVE 1 CIRCUIT 1 DOORS TO OPEN
|
||
.WORD 2,3,4
|
||
.WORD 3,4,0
|
||
.WORD 3,0,0 ;4
|
||
.WORD 4,0,0
|
||
.WORD 2,0,0
|
||
.WORD 2,0,0
|
||
.WORD 2,0,0 ;WAVE 8
|
||
.WORD 2,0,0
|
||
.WORD 2,0,0 ;10!
|
||
.WORD 2,0,0
|
||
.WORD 4,0,0
|
||
.WORD 2,0,0
|
||
.WORD 2,0,0
|
||
.WORD 4,0,0
|
||
.WORD 3,0,0 ;16
|
||
.WORD 2,0,0
|
||
.WORD 3,0,0
|
||
|
||
CIRCD3:
|
||
.WORD 2,3,4 ;WAVE 1 CIRCUIT 1 DOORS TO OPEN
|
||
.WORD 2,3,4
|
||
.WORD 3,4,0
|
||
.WORD 3,0,0 ;4
|
||
.WORD 4,0,0
|
||
.WORD 2,0,0
|
||
.WORD 2,0,0
|
||
.WORD 2,0,0 ;WAVE 8
|
||
.WORD 2,0,0
|
||
.WORD 2,0,0 ;10!
|
||
.WORD 2,0,0
|
||
.WORD 4,0,0
|
||
.WORD 2,0,0
|
||
.WORD 2,0,0
|
||
.WORD 4,0,0
|
||
.WORD 3,0,0 ;16
|
||
.WORD 2,0,0
|
||
.WORD 3,0,0 ;18
|
||
.WORD 2,0,0 ;19
|
||
.WORD 2,0,0 ;20
|
||
.WORD 2,0,0 ;21
|
||
|
||
CIRC2TBL:
|
||
.LONG CIRCB1,CIRCB2,CIRCB3
|
||
;
|
||
CIRCB1:
|
||
;BOXES FOR CIRCUIT 1
|
||
;BXTL:
|
||
;UPPER LEFT BOX Y,X
|
||
.LONG [110,325],0,0 ;WAVE 1
|
||
.LONG [145,395],0,0 ;WAVE 1
|
||
.LONG 2,0,0 ;WHERE DOES IT GO
|
||
.LONG 2,0,0 ;FROM DOOR VARIABLE
|
||
|
||
.LONG [222,175],[05,175],0
|
||
.LONG [252,211],[55,211],0
|
||
.LONG 6,3,0
|
||
.LONG 4,3,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0
|
||
.LONG 4,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],[222,175],0
|
||
.LONG [145,395],[252,211],0
|
||
.LONG 5,8,0
|
||
.LONG 2,4,0
|
||
|
||
.LONG [222,175],0,0 ;WAVE 5
|
||
.LONG [252,211],0,0
|
||
.LONG 9,0,0 ;9 = END TVSET WAVE
|
||
.LONG 4,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0
|
||
.LONG 7,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [05,175],0,0 ;WAVE 7
|
||
.LONG [55,211],0,0
|
||
.LONG 8,0,0
|
||
.LONG 3,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 8
|
||
.LONG 9,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 9
|
||
.LONG 10,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 10
|
||
.LONG 11,0,0
|
||
.LONG 2,0,0
|
||
|
||
|
||
; THESE ARE FOR ENTERING NEXT TVSET
|
||
|
||
CIRCB2:
|
||
;BOXES FOR CIRCUIT 2
|
||
;BXTL:
|
||
;UPPER LEFT BOX Y,X
|
||
.LONG [110,325],[05,175],[222,175] ;WAVE 1
|
||
.LONG [145,395],[55,211],[252,211] ;WAVE 1
|
||
.LONG 2,8,13 ;WHERE DOES IT GO
|
||
.LONG 2,3,4 ;FROM DOOR VARIABLE
|
||
|
||
|
||
;SHOW VERSION
|
||
; .LONG [222,175],0,0 ;WAVE 1
|
||
; .LONG [252,211],0,0 ;WAVE 1
|
||
; .LONG 13,0,0 ;WHERE DOES IT GO
|
||
; .LONG 4,0,0 ;FROM DOOR VARIABLE
|
||
|
||
|
||
|
||
.LONG [110,325],[05,175],[222,175] ;WAVE 2
|
||
.LONG [145,395],[55,211],[252,211] ;WAVE 2
|
||
.LONG 3,9,14
|
||
.LONG 2,3,4
|
||
|
||
.LONG [05,175],[222,175],0 ;3
|
||
.LONG [55,211],[252,211],0
|
||
.LONG 4,15,0
|
||
.LONG 3,4,0
|
||
|
||
.LONG [05,175],0,0 ;4
|
||
.LONG [55,211],0,0
|
||
.LONG 11,0,0
|
||
.LONG 3,0,0
|
||
|
||
.LONG [222,175],0,0 ;WAVE 5
|
||
.LONG [252,211],0,0
|
||
.LONG 6,0,0
|
||
.LONG 4,0,0
|
||
|
||
.LONG [110,325],0,0 ;6
|
||
.LONG [145,395],0,0
|
||
.LONG 7,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0 ;WAVE 7
|
||
.LONG [145,395],0,0
|
||
.LONG 19,0,0 ;TO BONUS RACK UP SCREEN!
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 8
|
||
.LONG 9,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 9
|
||
.LONG 4,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0 ;NON EXISTENT
|
||
.LONG [145,395],0,0 ;WAVE 10
|
||
.LONG 11,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 11
|
||
.LONG 12,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [222,175],0,0
|
||
.LONG [252,395],0,0 ;WAVE 12
|
||
.LONG 5,0,0
|
||
.LONG 4,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 13
|
||
.LONG 14,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 14
|
||
.LONG 15,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [222,175],0,0
|
||
.LONG [252,211],0,0 ;WAVE 15
|
||
.LONG 17,0,0
|
||
.LONG 4,0,0
|
||
|
||
.LONG [05,175],0,0
|
||
.LONG [55,211],0,0 ;WAVE 16
|
||
.LONG 6,0,0
|
||
.LONG 3,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 17
|
||
.LONG 18,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [05,175],0,0
|
||
.LONG [55,211],0,0 ;WAVE 18
|
||
.LONG 16,0,0
|
||
.LONG 3,0,0
|
||
|
||
CIRCB3:
|
||
;BOXES FOR CIRCUIT 3
|
||
;BOXES FOR CIRCUIT 2
|
||
;BXTL:
|
||
;UPPER LEFT BOX Y,X
|
||
.LONG [110,325],[05,175],[222,175] ;WAVE 1
|
||
.LONG [145,395],[55,211],[252,211] ;WAVE 1
|
||
.LONG 2,8,13 ;WHERE DOES IT GO
|
||
.LONG 2,3,4 ;FROM DOOR VARIABLE
|
||
|
||
.LONG [110,325],[05,175],[222,175] ;WAVE 2
|
||
.LONG [145,395],[55,211],[252,211] ;WAVE 2
|
||
.LONG 3,9,14
|
||
.LONG 2,3,4
|
||
|
||
.LONG [05,175],[222,175],0 ;3
|
||
.LONG [55,211],[252,211],0
|
||
.LONG 4,15,0
|
||
.LONG 3,4,0
|
||
|
||
.LONG [05,175],0,0 ;4
|
||
.LONG [55,211],0,0
|
||
.LONG 11,0,0
|
||
.LONG 3,0,0
|
||
|
||
.LONG [222,175],0,0 ;WAVE 5
|
||
.LONG [252,211],0,0
|
||
.LONG 6,0,0
|
||
.LONG 4,0,0
|
||
|
||
.LONG [110,325],0,0 ;6
|
||
.LONG [145,395],0,0
|
||
.LONG 7,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0 ;WAVE 7
|
||
.LONG [145,395],0,0
|
||
.LONG 19,0,0 ;TO BONUS ROOM #1
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 8
|
||
.LONG 9,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 9
|
||
.LONG 4,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0 ;NON EXISTENT
|
||
.LONG [145,395],0,0 ;WAVE 10
|
||
.LONG 11,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 11
|
||
.LONG 12,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [222,175],0,0
|
||
.LONG [252,395],0,0 ;WAVE 12
|
||
.LONG 5,0,0
|
||
.LONG 4,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 13
|
||
.LONG 14,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 14
|
||
.LONG 15,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [222,175],0,0
|
||
.LONG [252,211],0,0 ;WAVE 15
|
||
.LONG 17,0,0
|
||
.LONG 4,0,0
|
||
|
||
.LONG [05,175],0,0
|
||
.LONG [55,211],0,0 ;WAVE 16
|
||
.LONG 6,0,0
|
||
.LONG 3,0,0
|
||
|
||
.LONG [110,325],0,0
|
||
.LONG [145,395],0,0 ;WAVE 17
|
||
.LONG 18,0,0
|
||
.LONG 2,0,0
|
||
|
||
.LONG [05,175],0,0
|
||
.LONG [55,211],0,0 ;WAVE 18
|
||
.LONG 16,0,0
|
||
.LONG 3,0,0
|
||
|
||
.LONG [110,325],0,0 ;WAVE 19
|
||
.LONG [145,395],0,0
|
||
.LONG 20,0,0 ;
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0 ;WAVE 20
|
||
.LONG [145,395],0,0
|
||
.LONG 21,0,0 ;
|
||
.LONG 2,0,0
|
||
|
||
.LONG [110,325],0,0 ;WAVE 21
|
||
.LONG [145,395],0,0
|
||
.LONG 22,0,0 ;TO BONUS RACK UP SCREEN!
|
||
.LONG 2,0,0
|
||
|
||
.END
|
||
|
||
|