4839 lines
96 KiB
NASM
4839 lines
96 KiB
NASM
|
.FILE 'WAVES.ASM'
|
|||
|
.TITLE 'ROBO-RAMA GAME PROGRAM WAVE STUFF'
|
|||
|
.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 "MAC2.ASM" ;MACRO 2 DEFINITIONS
|
|||
|
.INCLUDE "IMGTBL.GLO"
|
|||
|
.INCLUDE "BGNDTBL.GLO" ;BACKGROUND EQUATES
|
|||
|
.INCLUDE "ROBO.EQU"
|
|||
|
.INCLUDE "AUDIT.EQU"
|
|||
|
.INCLUDE "LINK.EQU"
|
|||
|
;
|
|||
|
;SYMBOLS EXTERNALLY DEFINED
|
|||
|
;
|
|||
|
;SOUNDS
|
|||
|
.REF TUNE2,BTUNE1,SCASH,PZLSND,BEEP3,BONS1,BONS2,HIMUSC,VICMSC
|
|||
|
.REF BTUNE2,BTUNE3,TUNE3,HA2SND,NOWAY,TUNE4,MCSPK4
|
|||
|
.REF YAMOFF,BUYMSC,ENDTUNE,MUSICOFF,MCSPK9,CROWD1,SOUNDSUP
|
|||
|
;
|
|||
|
;HI SCORE ENTRY
|
|||
|
.REF ISHSTD,GETINIT1,GETINIT2,INITTIM,GRATS,CLRP1PZ,CLRP2PZ
|
|||
|
.REF CLNPAL,BCDBIN,SETDIFF,OFSCRTST,FIXBUG,BAKMODS,GAMEMODS
|
|||
|
;
|
|||
|
.REF STORE_AUDIT
|
|||
|
.REF CLSCRACH,INIT_ALL,UNSTACK,MAINLP,SCORETYP,COLTAB
|
|||
|
.REF SPR_LIT,SPR_LIT1,HULKTYP,FACEON,INIT_PROG
|
|||
|
.REF CLRPAL,COLCYC,RINGS,SPEECH,RANDPER
|
|||
|
.REF STATIC_LIT,HOSPG_LIT,HOSPR_LIT,CLRBPAL
|
|||
|
.REF BLNKAREA,FILLAREA,DOMNTR,FREETOT,UNGETPAL,TOID_ON
|
|||
|
.REF P1PZ1,P1PZ2,P1PZ3,P2PZ1,P2PZ2,P2PZ3,P1CSH,P2CSH
|
|||
|
.REF P1_LIT,P2_LIT,FLR2_LIT,FRANIM,SCRADD3,INITIALS
|
|||
|
.REF CNTDIG1,CNTDIG2,DUMB,DEC_LV,SET_1ST,FINDPAL
|
|||
|
.REF SET_GATE_2,INIT_RAM,WANTIN,PLYROBJS,PLYRPRCS,IS2,IS1
|
|||
|
.REF HEXTOASC,KILOBJ,NAMEBASE,IRQSKYE,PIECES
|
|||
|
.REF NM2BASE,NM3BASE,CMP_LIT
|
|||
|
.REF FIXMETERS,FIXMETERS2
|
|||
|
.REF RD15FONT,COLLISIONS,STRCNRMO,STRLNRMO,STRCNRM
|
|||
|
.REF DRAW_PLYR_TORSO,JOY_UPDATE
|
|||
|
.REF GAMSTATE,AFONT0,INIT_SCORE
|
|||
|
.REF AUTOEOFF,GAMERASE,DMAQWAIT,CLRWORLD
|
|||
|
.REF BAKBITS,GPALOBJ
|
|||
|
.REF GETFPAL,GETBPAL,BAKBITS
|
|||
|
.REF ALLOFF,GETCPNT,CR_CONTP,P1DATA
|
|||
|
.REF P2DATA,EXISTP
|
|||
|
.REF GET_ADJ,AUD1,WARMSET,AUD
|
|||
|
.REF ADDBUY,ATSTRT,WIPEOUT
|
|||
|
.REF UNIT_CLR,DMAHALT
|
|||
|
.REF P1CTRL,P2CTRL,AUTOEON,STATUS
|
|||
|
.REF SCRTST,INSBOBJ
|
|||
|
.REF KEEP_TOPL_GATE,KEEP_TOPR_GATE,KEEP_LFT_GATE,KEEP_RGT_GATE
|
|||
|
.REF PUTBGND,DEMOBGND,WORLDTLX,WORLDTLY,SCRIPTPLAY,SCORE_FLAG
|
|||
|
.REF OVERLORD,BEGINOBJ,BEGINOBJ2,BGND_UD1
|
|||
|
.REF WRLD,EHALT,DELSCORE,FSCORE,BSCORE
|
|||
|
.REF FROMDR,P1MTRY,P2MTRY
|
|||
|
.REF FPALRAM,KP_LS,KP_RS,KP_TS
|
|||
|
.REF RANGRAND
|
|||
|
.REF EXPTLXY,EXPLRXY
|
|||
|
.REF STRT_CHSR
|
|||
|
.REF FADEIN,FADEOUT,BLAKOUT
|
|||
|
.REF AUTOPAL
|
|||
|
.REF FADE_DOWN
|
|||
|
.REF SEND_ICON
|
|||
|
;
|
|||
|
;SYMBOLS DEFINED IN THIS FILE
|
|||
|
;
|
|||
|
.DEF KEEPON,DO_ALL_STUFF
|
|||
|
.DEF BONUS_WARP
|
|||
|
.DEF GAMEOVER,BTOF,GAL1P,GAL2P,MCPTR,MYID,BOUND
|
|||
|
.DEF RFACEP,LFACEP,LFCY,RFCY,KILLP1,KILLP2,KILLPLYR,FIGURES
|
|||
|
.DEF WAVE,WNDWON,WNDWOFF,EXPSCRN,SNKSCRN,SNKNOW,DELWNDW,WNDO
|
|||
|
.DEF KILBGND,COLRSTRT,CLR_ALL,INIT_GAME,COLRTEMP,AWAVE,CANT
|
|||
|
.DEF CHNGOID,HALT,PSTAT,STARTUP,DRAWLIVES,DEMOPLAY,SET_WAVE
|
|||
|
.DEF LIVECNT,CIRCUIT,STANDBY,BTIME,ENTERON
|
|||
|
.DEF CRCTTAB,WAVEYX,METERP1,METERP2
|
|||
|
.DEF COLRPRC,DO_BND,P1LVS,P2LVS
|
|||
|
.DEF OBJEXP32,OBJSCRN
|
|||
|
.DEF CWINDOW,OWINDOW
|
|||
|
;
|
|||
|
;UNINITIALIZED RAM DEFINITIONS
|
|||
|
;
|
|||
|
BSIZE .EQU 320
|
|||
|
|
|||
|
.BSS PAL1,16*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
|||
|
.BSS PAL2,16*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
|||
|
; .BSS PZCNTR,8
|
|||
|
; .BSS ITEM,8
|
|||
|
.BSS ENTERON,16
|
|||
|
.BSS BOUND,8
|
|||
|
.BSS KPA0,64
|
|||
|
; .BSS FGBK,8
|
|||
|
.BSS MYID,8
|
|||
|
.BSS P1BON,32
|
|||
|
.BSS P2BON,32
|
|||
|
.BSS GAL1P,32
|
|||
|
.BSS GAL2P,32
|
|||
|
.BSS MCPTR,32
|
|||
|
.BSS LFACEP,32
|
|||
|
.BSS RFACEP,32
|
|||
|
.BSS LFCY,16
|
|||
|
.BSS RFCY,16
|
|||
|
.BSS STANDBY,8
|
|||
|
.BSS OLDSTATUS,16
|
|||
|
.BSS WNDO,8
|
|||
|
.BSS CANT,8
|
|||
|
.BSS CANT2,8
|
|||
|
.BSS CIRCUIT,32
|
|||
|
.BSS WAVE,32
|
|||
|
.BSS OBJPTR,32
|
|||
|
.BSS AWAVE,32
|
|||
|
.BSS COLRTEMP,16*16 ;RAM COPY OF CYCLING COLORS
|
|||
|
.BSS BTIMERST,16
|
|||
|
.BSS BTIME,16
|
|||
|
.BSS LOOPWAVE,16
|
|||
|
.BSS TEMP,16
|
|||
|
.BSS SURVCNT,16
|
|||
|
.BSS STARTUP,16
|
|||
|
.BSS HALT,16
|
|||
|
.BSS BOBJECTS,32*BSIZE ;BACKGROUND OBJECTS LIST
|
|||
|
.BSS TMPA8,32
|
|||
|
.BSS TMPA9,32
|
|||
|
.BSS TMPA10,32
|
|||
|
.BSS TMPA11,32
|
|||
|
.BSS WAVEYX,32
|
|||
|
.BSS METERP1,32
|
|||
|
.BSS METERP2,32
|
|||
|
.BSS P1LVS,32 ;PNTR FOR LIVES DIGIT
|
|||
|
.BSS P2LVS,32 ;PLAYER 2
|
|||
|
.BSS KEEPON,16 ;KEEP HI TABLE ON LONGER
|
|||
|
.BSS GRATSON,16 ;KEEP HI TABLE ON LONGER
|
|||
|
;
|
|||
|
;EQUATES FOR THIS FILE
|
|||
|
;
|
|||
|
CWSPD .SET 45 ;CLOSE WINDOW SPEED (HIGHER THE SLOWER)
|
|||
|
OWSPD .SET 21 ;31 ;OPEN WINDOW SPEED (HIGHER THE SLOWER)
|
|||
|
CWSPD2 .SET 01 ;CLOSE WINDOW SPEED (HIGHER THE SLOWER)
|
|||
|
OWSPD2 .SET 01 ;OPEN WINDOW SPEED (HIGHER THE SLOWER)
|
|||
|
SCNOFFX .SET 01D0H
|
|||
|
;BUYTIME .EQU 8
|
|||
|
;BUYSLP .EQU 4
|
|||
|
;BUYTICK .EQU 75/BUYSLP ;52*2
|
|||
|
BUYTICK .EQU 10
|
|||
|
SCRNTOP .EQU 100
|
|||
|
LASTWAVE .EQU 8
|
|||
|
ZID .EQU 100 ;BACKGROUND Z TO LOOK FOR
|
|||
|
|
|||
|
ZGAL1 .EQU 100
|
|||
|
;GAL2 .EQU 101
|
|||
|
MCH .EQU 102 ;MC HAMMER
|
|||
|
|
|||
|
LFACE .EQU 116 ;FACE ON LEFT
|
|||
|
RFACE .EQU 117 ;FACE ON RIGHT
|
|||
|
P1METER .EQU 118
|
|||
|
TLGATE .EQU 120
|
|||
|
TRGATE .EQU 121
|
|||
|
LGATE .EQU 122
|
|||
|
RGATE .EQU 123
|
|||
|
|
|||
|
RED .EQU >3B3B ;PURPLE IN nup1 PALLETTE
|
|||
|
OWHITE .EQU >0808 ;OFF WHITE
|
|||
|
SCRLXSPD .EQU [3,0] ;X SCROLL SPEED
|
|||
|
SCRLYSPD .EQU [3,0] ;Y SCROLL SPEED
|
|||
|
SCRLYSPD2 .EQU [6,0] ;Y SCROLL SPEED
|
|||
|
SCRLXSPD1 .EQU [6,0] ;X SCROLL SPEED
|
|||
|
SCRLYSPD1 .EQU [5,0] ;Y SCROLL SPEED
|
|||
|
;
|
|||
|
;FIGURES LAYOUT
|
|||
|
;
|
|||
|
CHST1L .EQU PDATA ;UHL PLYR 1 CHEST LEFT
|
|||
|
CH1R .EQU PDATA+32 ;UHL TANK RGT PTR
|
|||
|
HD1L .EQU PDATA+64 ;UHL TORSO LEFT PTR
|
|||
|
HD1R .EQU PDATA+96 ;UHL TORSO RGT PTR
|
|||
|
SM1 .EQU PDATA+128 ;UHL ARM LEFT PTR
|
|||
|
EY1 .EQU PDATA+160 ;UHL ARM RGT PTR
|
|||
|
|
|||
|
CHST2L .EQU PDATA+192 ;UHL TANK LEFT/FRONT TREAD
|
|||
|
CH2R .EQU PDATA+224 ;UHL TANK RGT/FRONT TREAD
|
|||
|
HD2L .EQU PDATA+256 ;UHL TANK LEFT/SIDE TREAD
|
|||
|
HD2R .EQU PDATA+288 ;UHL TANK RGT/SIDE TREAD
|
|||
|
SM2 .EQU PDATA+320 ;UHL SHADOW ON RIGHT SIDE OF TANK
|
|||
|
EY2 .EQU PDATA+352 ;UHL ARM RGT PTR
|
|||
|
|
|||
|
PZCNTR .EQU PDATA
|
|||
|
ITEM .EQU PDATA+8
|
|||
|
IWAIT .EQU PDATA+16
|
|||
|
SHUT .EQU PDATA+24 ;UHB SHUT DWN SND FLAG
|
|||
|
.TEXT
|
|||
|
|
|||
|
;
|
|||
|
;WARP TO BONUS RACK UP SCREEN FROM WATCHDOG LOCKUP
|
|||
|
;
|
|||
|
;GROW WINDOW FULL SCREEN
|
|||
|
;CHECK FOR VALID INFO
|
|||
|
;IF NOT VALID, RESET
|
|||
|
;ZERO OUT BACKGROUND, OBJLST, PROC LIST
|
|||
|
;RESTART CORRECT NUMBER OF PLAYERS
|
|||
|
;POINT AT CORRECT CIRCUIT BACKGROUND MAP
|
|||
|
;SET X/Y LOCATION FOR RACKUP MODULE
|
|||
|
;DISPLAY TEXT MESSAGE TALKING ABOUT SECRET WARP.
|
|||
|
;JUMP TO CODE WHICH CALLS RACKUP CODE.
|
|||
|
BONUS_WARP:
|
|||
|
.IF DEBUG
|
|||
|
DINT
|
|||
|
; SET THE STACK POINTER TO THE END OF SCRATCHPAD
|
|||
|
MOVI STCKST,SP,L ;MOVE STACK ADDR IN SP (32 BITS)
|
|||
|
; SET FIELD PARAMETERS
|
|||
|
SETF 16,1,0 ;WORD SIGN EXTEND (FIELD 0)
|
|||
|
SETF 32,1,1 ;LONG WORD (FIELD 1)
|
|||
|
.ENDIF
|
|||
|
|
|||
|
MOVE @STATUS,A0
|
|||
|
JRZ RESETME
|
|||
|
CMPI 4,A0
|
|||
|
JRNC RESETME
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNC RESETME
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 24,A0
|
|||
|
JRNC RESETME
|
|||
|
;SCORE,LIVES, ETC
|
|||
|
;OTHER CHECKS FOR RECOVERABLE GAME HERE:
|
|||
|
|
|||
|
;I BELIEVE THIS GAME CAN RECOVER.
|
|||
|
;HOLD ON TO NEEDED INFORMATION
|
|||
|
;STATUS,CIRCUIT,PLYR1 SCORE,PLYR2 SCORE,PLYR1 LIVES,PLYR2 LIVES
|
|||
|
MOVE @P1DATA+PSCORE,A9,L
|
|||
|
MOVE @P2DATA+PSCORE,A10,L
|
|||
|
MOVE A9,A0
|
|||
|
CALLR CK_BCD
|
|||
|
JRC RESETME
|
|||
|
MOVE A10,A0
|
|||
|
CALLR CK_BCD
|
|||
|
JRC RESETME
|
|||
|
;SCORE OKAY
|
|||
|
MOVE @P1DATA+PNEXTREP,A5,L
|
|||
|
MOVE @P2DATA+PNEXTREP,A6,L
|
|||
|
MOVE A5,A0
|
|||
|
CALLR CK_BCD
|
|||
|
JRC RESETME
|
|||
|
MOVE A6,A0
|
|||
|
CALLR CK_BCD
|
|||
|
JRC RESETME
|
|||
|
;FREE MAN SCORE OKAY
|
|||
|
|
|||
|
MOVE @STATUS,A7
|
|||
|
MOVE @CIRCUIT,A8
|
|||
|
MOVE @P1DATA+PLIVES,A11
|
|||
|
MOVE @P2DATA+PLIVES,A12
|
|||
|
; CLEAR SCRATCHPAD, INITIALIZE PROCESSES
|
|||
|
CALLA CLSCRACH ;CLR SCRATCH RAM
|
|||
|
MMTM SP,A5,A6,A7,A8,A9,A10,A11,A12
|
|||
|
CALLA INIT_ALL ;INITIALIZE Z-UNIT
|
|||
|
CREATE PLIST_ID,UNSTACK ;CREATE SWITCH UNSTACKER
|
|||
|
|
|||
|
MMFM SP,A5,A6,A7,A8,A9,A10,A11,A12
|
|||
|
;DISPLAY BACKGROUND MODULE OF BONUS
|
|||
|
;TURN ON BIG PLAYERS
|
|||
|
;UPDATE GAMSTATE
|
|||
|
;CREATE PLYR PROCS, OBJECTS
|
|||
|
;GIVE BOTH PLAYERS SOME PRIZES, CASH.
|
|||
|
MOVE A5,@P1DATA+PNEXTREP,L
|
|||
|
MOVE A6,@P2DATA+PNEXTREP,L
|
|||
|
MOVE A9,@P1DATA+PSCORE,L
|
|||
|
MOVE A10,@P2DATA+PSCORE,L
|
|||
|
ANDI 07,A11
|
|||
|
ANDI 07,A12
|
|||
|
MOVE A11,@P1DATA+PLIVES
|
|||
|
MOVE A12,@P2DATA+PLIVES
|
|||
|
|
|||
|
MOVI ININTRO,A0
|
|||
|
MOVE A0,@GAMSTATE ;PUT US BACK IN GAMEPLAY MODE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@GAMERASE
|
|||
|
|
|||
|
MOVI 09380000H,A1
|
|||
|
MOVE A1,@WORLDTLX,L
|
|||
|
MOVE A7,@STATUS ;A7=STATUS
|
|||
|
CMPI 2,A8
|
|||
|
JRLO THRU
|
|||
|
MOVK 1,A8
|
|||
|
THRU MOVE A8,@CIRCUIT
|
|||
|
SLL 5,A8 ;A8=CIRCUIT
|
|||
|
ADDI WRLDY,A8
|
|||
|
MOVE *A8,A0,L
|
|||
|
MOVE A0,@WORLDTLY,L
|
|||
|
ANDI 0FFFF0000H,A0
|
|||
|
ORI 0938H,A0
|
|||
|
ADDI 01D8H,A0
|
|||
|
MOVE A0,@WAVEYX,L
|
|||
|
MOVK 3,B0
|
|||
|
MOVK 30,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,@P1PZ1
|
|||
|
MOVE A0,@P1PZ2
|
|||
|
MOVE A0,@P1PZ3
|
|||
|
MOVE A0,@P1CSH
|
|||
|
MOVK 3,B0
|
|||
|
MOVK 30,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,@P2PZ1
|
|||
|
MOVE A0,@P2PZ2
|
|||
|
MOVE A0,@P2PZ3
|
|||
|
MOVE A0,@P2CSH
|
|||
|
CALLA SETDIFF ;RESET DIFFICULTY SETTINGS
|
|||
|
MOVK 1,A0
|
|||
|
MOVB A0,@CANT2 ;NO WALK IN UNTIL AFTER SCROLL
|
|||
|
;TURN ON FIGURES BELOW CURRENT SCREEN
|
|||
|
; CALLA FIGSON
|
|||
|
CREATE BONPID,SECRET
|
|||
|
CREATE 0,DELAYUPDT
|
|||
|
CALLA COLRPRC ;SETUP COLOR PROCESSES
|
|||
|
;BONUS SCREEN UP, BIG PLAYERS VISIBLE
|
|||
|
MOVI IBUYINS,A0
|
|||
|
MOVE A0,@P1DATA+PBUYINS,W
|
|||
|
MOVE A0,@P2DATA+PBUYINS,W
|
|||
|
MOVI AUDSURV,A0
|
|||
|
CALLA AUD1 ;SURVIVE CNT
|
|||
|
JAUC MAINLP
|
|||
|
CK_BCD
|
|||
|
;CHECK IF VALUE IN A0 IS BCD
|
|||
|
;CS=NO
|
|||
|
MMTM SP,A0,A1,A2
|
|||
|
MOVK 8,A2
|
|||
|
BCD_LOOP
|
|||
|
MOVE A0,A1
|
|||
|
SRL 28,A1
|
|||
|
CMPI 0AH,A1
|
|||
|
JRHS BCD_FAIL
|
|||
|
SLL 4,A0
|
|||
|
DSJS A2,BCD_LOOP
|
|||
|
CLRC
|
|||
|
JRUC BCD_EXIT
|
|||
|
BCD_FAIL
|
|||
|
SETC
|
|||
|
BCD_EXIT MMFM SP,A0,A1,A2
|
|||
|
RETS
|
|||
|
|
|||
|
DELAYUPDT
|
|||
|
SLEEP 30
|
|||
|
;TURN ON FIGURES BELOW CURRENT SCREEN
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@SOUNDSUP
|
|||
|
CALLA FIGSON
|
|||
|
SLEEP 1
|
|||
|
MOVE @WORLDTLY,A0,L
|
|||
|
ADDI 01130000H,A0
|
|||
|
MOVE A0,@WORLDTLY,L
|
|||
|
MOVE @CIRCUIT,A0 ;FETCH CIRCUIT
|
|||
|
SLL 5,A0 ;TABLE ENTRY UHL OFFSET
|
|||
|
ADDI GAMEMODS,A0
|
|||
|
MOVE *A0,A0,L ;FETCH DATA POINTER TO WAVE MODULES
|
|||
|
MOVE A0,@BAKMODS,L
|
|||
|
SLEEP 1
|
|||
|
CALLA BGND_UD1
|
|||
|
SLEEP 3*60
|
|||
|
MOVK 1,A0
|
|||
|
MOVB A0,@CANT2
|
|||
|
CREATE 0,CTP
|
|||
|
|
|||
|
ACTP SLEEP 1
|
|||
|
MOVB @CANT2,A0
|
|||
|
JRNZ ACTP
|
|||
|
|
|||
|
CALLA INIT_SCORE ;START ALL SCORE PROCESSES
|
|||
|
CREATE 0,JOY_UPDATE
|
|||
|
CREATE PCPID,PIECES
|
|||
|
|
|||
|
MOVK 1,A9
|
|||
|
MOVE @STATUS,A0
|
|||
|
MOVE A0,@SCORETYP
|
|||
|
CMPI 2,A0
|
|||
|
JRZ TWOP
|
|||
|
CMPI 3,A0
|
|||
|
JRZ BOTH
|
|||
|
MOVK 1,A8
|
|||
|
CREATE PLY1PID,DRAW_PLYR_TORSO ;CREATE PLAYER CHARACTER
|
|||
|
CREATE 0,ADJUST
|
|||
|
DIE
|
|||
|
BOTH
|
|||
|
MOVK 1,A8
|
|||
|
CREATE PLY1PID,DRAW_PLYR_TORSO ;CREATE PLAYER CHARACTER
|
|||
|
CREATE 0,ADJUST
|
|||
|
TWOP MOVK 2,A8
|
|||
|
CREATE PLY2PID,DRAW_PLYR_TORSO ;CREATE PLAYER CHARACTER
|
|||
|
CREATE 0,ADJUST
|
|||
|
DIE
|
|||
|
ADJUST SLEEP 1
|
|||
|
DEC A8
|
|||
|
SLL 5,A8
|
|||
|
MOVI PLYROBJS,A1
|
|||
|
ADD A8,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
JRZ ADJUST
|
|||
|
MOVE *A1(OPLINK),A2,L
|
|||
|
MOVE *A2(LEG_PTR),A2,L
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A1(OYPOS)
|
|||
|
MOVE A0,*A2(OYPOS)
|
|||
|
DIE
|
|||
|
|
|||
|
RESETME JAUC WARMSET
|
|||
|
WRLDY .LONG 1580000H,02A40000H,02A40000H
|
|||
|
|
|||
|
AUDITWAVE
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI CAUD,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
MOVE @WAVE,A1
|
|||
|
SLL 5,A1
|
|||
|
ADD A1,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
JRZ NONE
|
|||
|
;FOUND AN AUDIT WAVE
|
|||
|
;WE ARE ABOUT TO SCROLL TO IT!
|
|||
|
CALLA AUD1 ;CHALK IT!
|
|||
|
NONE RETS
|
|||
|
|
|||
|
CAUD .LONG CIRC1,CIRC2,CIRC3
|
|||
|
CIRC1 .LONG 0,AUDWAVE1,AUDWAVE2,0,0,0,0,0,0,0,AUDMUTOID,0
|
|||
|
CIRC2 .LONG 0,AUDCIRC2,0,0,0,0,0,AUDSCAR,0,0,0,0,0,0,0
|
|||
|
.LONG 0,0,0,0,0,0
|
|||
|
CIRC3 .LONG 0,AUDCIRC3,0,0,AUDTEMPL,0,0,AUDSNAKES,0,0,0,0,0,0,0,0,0,0
|
|||
|
.LONG AUDTEMPL,0,0,0,0,0
|
|||
|
|
|||
|
;GAME INTRO SCREEN THEN ONTO FIRST GAMEPLAY WAVE (JSRP'D IN PLAY MODE ONLY)
|
|||
|
INIT_GAME:
|
|||
|
;INC CMOS COUNT OF GAMES STARTED!
|
|||
|
MOVI AUDBONE,A0
|
|||
|
CALLA AUD1 ;INC GAMES STARTED FROM ATTRACT IN CMOS
|
|||
|
|
|||
|
MOVI AUDSTAT,A0 ;SECRET BONUS FLAG
|
|||
|
MOVK 1,A1
|
|||
|
CALLA STORE_AUDIT
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVE A0,@ENTERON
|
|||
|
MOVE A0,@HALT
|
|||
|
; CLR A0 ;CIRCUIT 3
|
|||
|
MOVE A0,@CIRCUIT
|
|||
|
MOVE A0,@GRATSON
|
|||
|
|
|||
|
CALLA SETDIFF ;SET GAME DIFFICULTY!
|
|||
|
|
|||
|
MOVI AMDEPID,A0
|
|||
|
CLR A1
|
|||
|
MOVE A1,@FROMDR,W
|
|||
|
MOVI ININTRO,A2
|
|||
|
MOVE A2,@GAMSTATE
|
|||
|
NOT A1
|
|||
|
MOVB A1,@CANT ;INDICATES ANOTHER PLYR CAN BUYIN
|
|||
|
;UNTIL CANT=1 THEN HE CAN'T BUYIN
|
|||
|
;UNTIL CANT=0!
|
|||
|
MOVE A1,@DISPLAYON,W
|
|||
|
CALLA KILALL
|
|||
|
CALLA COLRPRC ;SETUP DEMO GAMEPLAY COLOR PROCESSES
|
|||
|
MOVE @STATUS,A8,W ;PLAYER 1 OR 2
|
|||
|
CLR A9 ;INDICATES START PLAYER BEHIND PODIUM
|
|||
|
CMPI 3,A8
|
|||
|
JRNE AXE
|
|||
|
;BOTH PLAYERS ARE STARTING
|
|||
|
MOVK 1,A8
|
|||
|
MOVB A8,@CANT
|
|||
|
CREATE PLY1PID,DRAW_PLYR_TORSO ;CREATE PLAYER CHARACTER
|
|||
|
MOVK 2,A8
|
|||
|
CREATE PLY2PID,DRAW_PLYR_TORSO ;CREATE PLAYER CHARACTER
|
|||
|
|
|||
|
MOVI P1DATA,A11
|
|||
|
CALLA DEC_LV
|
|||
|
MOVI P2DATA,A11
|
|||
|
CALLA DEC_LV
|
|||
|
|
|||
|
JRUC AX2
|
|||
|
AXE
|
|||
|
CMPI 1,A8
|
|||
|
JRNE AXC
|
|||
|
CREATE PLY1PID,DRAW_PLYR_TORSO ;CREATE PLAYER CHARACTER
|
|||
|
MOVI P1DATA,A11
|
|||
|
CALLA DEC_LV
|
|||
|
JRUC AX2
|
|||
|
AXC
|
|||
|
CREATE PLY2PID,DRAW_PLYR_TORSO ;CREATE PLAYER CHARACTER
|
|||
|
MOVI P2DATA,A11
|
|||
|
CALLA DEC_LV
|
|||
|
AX2
|
|||
|
JSRP PUTBGND ;SET START SCREENS WORLD COOR
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WAVE ;FIRST WAVE AT START OF GAME
|
|||
|
CLR A0
|
|||
|
MOVB A0,@FREETOT
|
|||
|
MOVB A0,@KP_TS
|
|||
|
MOVB A0,@KP_LS
|
|||
|
MOVB A0,@KP_RS
|
|||
|
;CLR WPN_TYP FOR THIS PLAYER?
|
|||
|
|
|||
|
MOVE @STATUS,A0
|
|||
|
CLR A9 ;INDICATES NOT WALKING IN FROM A DOOR
|
|||
|
CMPI 3,A0
|
|||
|
JRNE AX3
|
|||
|
;BOTH PLAYERS ARE STARTING
|
|||
|
MOVI P1CTRL,A8
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
MOVI P2CTRL,A8
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
;ZERO BOTH SCORES
|
|||
|
MOVI P1DATA,A1
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A1(PSCORE),L
|
|||
|
CALLA CLRP1PZ
|
|||
|
;SET FREE MAN POINT LEVEL
|
|||
|
MOVE A1,A11
|
|||
|
CALLA SET_1ST
|
|||
|
MOVI P2DATA,A1
|
|||
|
MOVE A0,*A1(PSCORE),L
|
|||
|
CALLA CLRP2PZ
|
|||
|
|
|||
|
MOVE A1,A11
|
|||
|
;SET FREE MAN POINT LEVEL
|
|||
|
CALLA SET_1ST
|
|||
|
JRUC AX4
|
|||
|
|
|||
|
AX3
|
|||
|
MOVE A0,A10
|
|||
|
MOVE A10,A0
|
|||
|
MOVI P1DATA,A1
|
|||
|
CMPI 1,A0
|
|||
|
JREQ AXF
|
|||
|
MOVI P2DATA,A1
|
|||
|
AXF CLR A2
|
|||
|
MOVE A2,*A1(PSCORE),L
|
|||
|
;SET FREE MAN POINT LEVEL
|
|||
|
MOVE A1,A11
|
|||
|
CALLA SET_1ST
|
|||
|
DEC A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI CTRL,A0
|
|||
|
MOVE *A0,A8,L
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
;ZERO THIS PLAYERS SCORE
|
|||
|
MOVK 1,A0
|
|||
|
MOVB A0,@CANT
|
|||
|
AX4
|
|||
|
SLEEP 0C8H
|
|||
|
CALLA INIT_SCORE ;START ALL SCORE PROCESSES
|
|||
|
JSRP SET_WAVE ;WALK PLAYER OUT TO FIRST WAVE
|
|||
|
;SCROLL DONE FOR FIRST WAVE
|
|||
|
CALLA CLNPAL
|
|||
|
|
|||
|
CREATE 0,JOY_UPDATE
|
|||
|
CREATE PCPID,PIECES
|
|||
|
CREATE 0,UPOFF
|
|||
|
MOVI ( 6 *32*32)+( 6 *32)+( 6 ),A1 ;CONSTANT FOR AUTOERASE
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
JRZ DOFA
|
|||
|
;HAVE DIFFERENT COLOR FOR JUNGLE!
|
|||
|
MOVI ( 6 *32*32)+( 3 *32)+( 4 ),A1 ; color 4
|
|||
|
CMPI 1,A0
|
|||
|
JRZ DOFA
|
|||
|
MOVI ( 6 *32*32)+( 2 *32)+( 2 ),A1 ; color 4
|
|||
|
DOFA MOVE A1,@IRQSKYE
|
|||
|
DIE
|
|||
|
|
|||
|
CTRL .LONG P1CTRL,P2CTRL,P1CTRL
|
|||
|
|
|||
|
;INIT DEMO WAVE
|
|||
|
DEMOPLAY:
|
|||
|
JSRP WNDWON
|
|||
|
CALLA KILBGND ;KILL OLD BACKGROUND IF ANY EXISTED
|
|||
|
CALLA CLNPAL
|
|||
|
|
|||
|
CALLA SETDIFF ;SET GAME DIFFICULTY!
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBWNDW,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
CALLA COLRPRC ;SETUP DEMO GAMEPLAY COLOR PROCESSES
|
|||
|
|
|||
|
MOVI NUARENAP,A0 ;FOR SCORE DIGITS!
|
|||
|
CALLA GETFPAL
|
|||
|
|
|||
|
|
|||
|
CALLA DEMOBGND ;BLOW OUT BACKGROUND
|
|||
|
MOVI NUARENAP,A0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVI PRPLARN,A0
|
|||
|
CALLA BLAKOUT
|
|||
|
MOVE @WAVE,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI WVFADE,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
MOVK 3,A1
|
|||
|
CALLA FADEIN
|
|||
|
CALLA INIT_RAM ;INIT GAME RAM USAGE
|
|||
|
CALLA INIT_SCORE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@SCORE_FLAG ;TURN ON SCORES
|
|||
|
CREATE LORDPID,OVERLORD
|
|||
|
CREATE COLPID,COLLISIONS
|
|||
|
CREATE PCPID,PIECES
|
|||
|
CREATE ICONPID,SEND_ICON
|
|||
|
MOVK 1,A8 ;INDICATE PLAYER 1
|
|||
|
CLR A9 ;INDICATE START ME BEHIND PODIUM
|
|||
|
;FOR DEMO MODE SCREENS
|
|||
|
CREATE PLY1PID,DRAW_PLYR_TORSO ;START ALL GAME PROCESSES
|
|||
|
CALLA BTOF
|
|||
|
MOVE @WAVE,A8
|
|||
|
CALLA HEXTOASC
|
|||
|
CLR A0
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVI [080H,0C4H],A9 ;Y,X POSITION
|
|||
|
MOVE @WAVE,A8
|
|||
|
DEC A8
|
|||
|
;CIRCUIT 1 ONLY
|
|||
|
MOVI NAMEBASE,A10
|
|||
|
SLL 5,A8
|
|||
|
ADD A8,A10
|
|||
|
MOVE *A10,A8,L
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
JSRP STRCNRMO
|
|||
|
CALLA DRAWLIVES ;DRAW PLAYERS LIVES IN P BOX
|
|||
|
SLEEP 54*2 ;ALLOW ENOUGH TIME TO SEE WAVE NO.
|
|||
|
CALLA ERASE_TXT
|
|||
|
MOVK 2,A0 ;TAKE OUT AND PUT IN TURMELL FILE
|
|||
|
MOVE A0,@EHALT
|
|||
|
MOVE @PLYRPRCS,A7,L ;ADJUST PLYR 1 BNDRYS
|
|||
|
CALLA DO_BND
|
|||
|
|
|||
|
;EVEN THOUGH DEMO ONLY SHOWS PLAYER 1 RIGHT NOW!
|
|||
|
; MOVE @PLYRPRCS+32,A7,L ;ADJUST PLYR 2 BNDRYS
|
|||
|
; CALLA DO_BND
|
|||
|
|
|||
|
;TURN ON RING AROUND PLAYER 1
|
|||
|
MOVK 1,A9
|
|||
|
MOVI 06D0H,A10 ;TIME RINGS ARE ON
|
|||
|
CREATE RNGPID,RINGS ;PLACE RING AROUND PLAYER X
|
|||
|
DIE
|
|||
|
|
|||
|
WVFADE .LONG 0,PAL5TAB,P5TAB,P6TAB,0,0,0,0,0,0,P5TAB
|
|||
|
PAL5TAB:
|
|||
|
.LONG AUTOPAL,PRPLARN,NUARENAP,0
|
|||
|
P5TAB:
|
|||
|
.LONG AUTOPAL,NUARENAP,0
|
|||
|
P6TAB:
|
|||
|
.LONG NUARENAP,RBTP5,0
|
|||
|
|
|||
|
ERASE_TXT:
|
|||
|
; ERASE WAVE #
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
RETS
|
|||
|
;
|
|||
|
; SET_WAVE - SET UP GAME PLAY WAVE
|
|||
|
; PARAMS:
|
|||
|
; CIRCUIT = CIRCUIT TO INITIALIZE
|
|||
|
; WAVE = WAVE TO INITIALIZE FROM WITHIN CIRCUIT
|
|||
|
; RETURNS:
|
|||
|
; NOTHING AT ALL!
|
|||
|
; MUST BE CALLED AS JSRP!
|
|||
|
;
|
|||
|
SET_WAVE:
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI ICONPID,A0 ;KILL ICON GENERATION PROCESS
|
|||
|
CALLA KILALL
|
|||
|
MOVI ININTRO,A0
|
|||
|
MOVE A0,@GAMSTATE ;WE ARE NOW NOT IN PLAY MODE
|
|||
|
MOVE @CIRCUIT,A1 ;FETCH CIRCUIT
|
|||
|
SLL 5,A1 ;TABLE ENTRY UHL OFFSET
|
|||
|
ADDI CRCTTAB,A1
|
|||
|
MOVE *A1,A1,L ;FETCH DATA POINTER TO WAVE SCROLL
|
|||
|
;VALUE OFFSETS
|
|||
|
MOVE @WAVE,A0 ;WAVE TO SCROLL TO FROM WITHIN CRCT
|
|||
|
SLL 5,A0 ;FOR LONG WORD LOOKUP
|
|||
|
ADD A1,A0
|
|||
|
MOVE *A0,A0,L ;SCREEN TEXT IMAGE OFFSET
|
|||
|
MOVE A0,@WAVEYX,L ;RELATIVE TL SCREEN OFFSET
|
|||
|
; CLR A1
|
|||
|
; MOVE A1,@BSCORE ;INSURE WE ARE AT WORLD COORD.
|
|||
|
; MOVE A1,@SCORE_FLAG,W ;TURN OFF DMA'D SCORES
|
|||
|
;MAKE SURE MESSAGE TEXT IS GONE FROM SCOREBOARD
|
|||
|
MOVE @WAVE,A0
|
|||
|
MOVE @CIRCUIT,A1
|
|||
|
JRNZ CT2
|
|||
|
;CIRCUIT 1 CHECKS
|
|||
|
CMPI 11,A0 ;IS IT TV END?
|
|||
|
; CMPI 2,A0 ;IS IT TV END?
|
|||
|
JRNZ NOBONS
|
|||
|
SLEEP 3
|
|||
|
JRUC SKIPALL ;BR = END OF CIRCUIT
|
|||
|
CT2 CMPI 1,A1
|
|||
|
JRNE CT3
|
|||
|
;CIRCUIT 2
|
|||
|
CMPI 19,A0 ;IS IT TV END?
|
|||
|
JRNZ NOBONS
|
|||
|
SLEEP 3
|
|||
|
JRUC SKIPALL ;BR = END OF CIRCUIT
|
|||
|
CT3
|
|||
|
;CIRCUIT 3
|
|||
|
CMPI 22,A0 ;IS IT TV END?
|
|||
|
JRNZ NOBONS
|
|||
|
SLEEP 3
|
|||
|
JRUC SKIPALL ;BR = END OF CIRCUIT
|
|||
|
NOBONS
|
|||
|
CLR A1
|
|||
|
MOVE A1,@BSCORE ;INSURE WE ARE AT WORLD COORD.
|
|||
|
MOVE A1,@SCORE_FLAG,W ;TURN OFF DMA'D SCORES
|
|||
|
|
|||
|
CMPI 1,A0
|
|||
|
JRZ NOTFER ;DO NOT TRANSFER SCORES ON INTRO
|
|||
|
|
|||
|
CALLA SHOWSC
|
|||
|
|
|||
|
CALLA DRAWLIVES
|
|||
|
; CREATE 0,FIXMETERS
|
|||
|
; CREATE 0,FIXMETERS2 ;FOR PLAYER 2 ALSO!
|
|||
|
NOTFER:
|
|||
|
; SOUND1 THECROWD
|
|||
|
CALLA KILTXT
|
|||
|
;
|
|||
|
; DRAW WAVE NAME
|
|||
|
;
|
|||
|
CLR A0
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
ADDI [080H,0C4H],A9 ;Y,X POSITION
|
|||
|
MOVE @WAVE,A8
|
|||
|
DEC A8
|
|||
|
MOVE @CIRCUIT,A10
|
|||
|
JRZ CY1
|
|||
|
CMPI 1,A10
|
|||
|
JRZ CY2
|
|||
|
MOVI NM3BASE,A10
|
|||
|
JRUC CYOUT
|
|||
|
CY2 MOVI NM2BASE,A10
|
|||
|
JRUC CYOUT
|
|||
|
CY1 MOVI NAMEBASE,A10
|
|||
|
CYOUT SLL 5,A8
|
|||
|
ADD A8,A10
|
|||
|
MOVE *A10,A8,L
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
JSRP STRCNRMO
|
|||
|
;
|
|||
|
MOVK 1,A9
|
|||
|
MOVE A9,@BSCORE ;NOW AT NEW COORDINATES (NOT WORLD)
|
|||
|
CALLA FSCORE ;PRINT SCORES ON NEXT SCREEN
|
|||
|
CALLA DRAWLIVES
|
|||
|
CLR A0
|
|||
|
MOVE A0,@WRLD,W
|
|||
|
MOVE @WAVE,A0,W
|
|||
|
CMPI 1,A0
|
|||
|
JRZ NOSCRIPT
|
|||
|
|
|||
|
|
|||
|
MOVE @STATUS,A0
|
|||
|
CLR A9 ;INDICATES NOT A BUYIN WALK IN
|
|||
|
CMPI 3,A0
|
|||
|
JRNE AX5
|
|||
|
;BOTH PLAYERS NEED SCRIPT
|
|||
|
MOVI P1CTRL,A8
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
MOVI P2CTRL,A8
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
JRUC NOSCRIPT
|
|||
|
AX5
|
|||
|
DEC A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI CTRL,A0
|
|||
|
MOVE *A0,A8,L
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO NEXT PHASE.
|
|||
|
NOSCRIPT:
|
|||
|
CREATE DRSPID,DRS ;OPEN DOORS PLEASE
|
|||
|
CREATE LORDPID,OVERLORD
|
|||
|
|
|||
|
CALLA CLNPAL
|
|||
|
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI SETPID,A0
|
|||
|
CALLA KILALL ;CLAP,GALS,MC,COLOR CYCLE, ETC
|
|||
|
MOVI MCYCPID,A0
|
|||
|
CALLA KILALL ;KILL LAND MINE CYCLE
|
|||
|
|
|||
|
CALLA KILTXT
|
|||
|
;TRANSFER PROCID OF CYCPID TO CYC2PID
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
OUT0 MOVI CYCPID,A0
|
|||
|
CALLA EXISTP
|
|||
|
JRZ OUT
|
|||
|
MOVI CYC2PID,A2
|
|||
|
MOVE A2,*A0(PROCID)
|
|||
|
JRUC OUT0
|
|||
|
OUT
|
|||
|
MOVE @STATUS,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNZ AUDONCE
|
|||
|
CALLA AUDITWAVE
|
|||
|
AUDONCE
|
|||
|
CALLA AUDITWAVE
|
|||
|
|
|||
|
;START BAK CYC FOR NEXT ARENA
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
JRNZ OY1
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 5,A0
|
|||
|
JRNZ LAB0
|
|||
|
CALLA BONSC
|
|||
|
JRUC LAB0
|
|||
|
BONSC
|
|||
|
;START BONUS ARENA COLOR CYCLE
|
|||
|
|
|||
|
MOVI BACP,A8 ;PAL NAME
|
|||
|
MOVI PAL1,A9 ;RAM AREA
|
|||
|
MOVI [52,64],A10 ;BEGIN/END COLOR #
|
|||
|
MOVK 4,A11 ;RATE IN TICKS
|
|||
|
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
|||
|
RETS
|
|||
|
OY1
|
|||
|
CMPI 2,A0
|
|||
|
JRNZ OY1A
|
|||
|
;A0=SNKGP, OR SPL
|
|||
|
MOVI SNKGP,A9
|
|||
|
CREATE CYCPID,SPR_LIT
|
|||
|
MOVI SPL,A9
|
|||
|
CREATE CYCPID,SPR_LIT1
|
|||
|
;3RD CIRCUIT BONUS CYCLE
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 19,A0
|
|||
|
JRNC OY0O
|
|||
|
CMPI 14,A0
|
|||
|
JRZ OY0O
|
|||
|
CMPI 12,A0
|
|||
|
JRNZ LAB0
|
|||
|
OY0O CALLA BONSC
|
|||
|
JRUC LAB0
|
|||
|
|
|||
|
OY1A CMPI 1,A0
|
|||
|
JRNZ LAB0
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 7,A0
|
|||
|
JRZ NORBTS
|
|||
|
|
|||
|
CMPI 14,A0
|
|||
|
JRZ OY0
|
|||
|
CMPI 12,A0
|
|||
|
JRNZ OY2
|
|||
|
OY0 CALLA BONSC
|
|||
|
OY2
|
|||
|
; MOVI YBG,A9
|
|||
|
; MOVK 1,A10
|
|||
|
; CREATE CYCPID,BRN_LIT
|
|||
|
; MOVI WHITE,A9
|
|||
|
; MOVK 2,A10
|
|||
|
; CREATE CYCPID,BRN_LIT
|
|||
|
; MOVI ORANGE,A9
|
|||
|
; MOVK 3,A10
|
|||
|
; CREATE CYCPID,BRN_LIT
|
|||
|
; MOVI GREEN,A9
|
|||
|
; MOVK 4,A10
|
|||
|
; CREATE CYCPID,BRN_LIT
|
|||
|
NORBTS CALLA BAK_CYC
|
|||
|
|
|||
|
LAB0 JSRP SCROLL_WAVE ;SCROLL WAVE ONTO SCREEN
|
|||
|
MOVI FIXIT,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILALL
|
|||
|
CREATE FIXIT,FIXBUG ;START SMART BOMBS EVERY 20 SECONDS
|
|||
|
|
|||
|
|
|||
|
CREATE 0,CKONSCRN
|
|||
|
*
|
|||
|
CLR A0
|
|||
|
MOVB A0,@CANT ;ALLOW NEW PLAYERS TO WALK IN
|
|||
|
|
|||
|
CALLA BTOF
|
|||
|
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI CYC2PID,A0
|
|||
|
CALLA KILALL ;CLAP,GALS,MC,COLOR CYCLE, ETC
|
|||
|
MOVI STPPID,A0
|
|||
|
CALLA KILALL
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPPILE|SUBEDGE,A0
|
|||
|
CALLA KILOBJ
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVB A0,@BOUND
|
|||
|
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRNZ LAB4
|
|||
|
CALLA STOP_PLYR
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRNZ LAB4
|
|||
|
CREATE CYCPID,CMP_LIT
|
|||
|
|
|||
|
LAB4 MOVK 1,A0
|
|||
|
MOVE A0,@SCORE_FLAG ;TURN BACK ON SCORES
|
|||
|
|
|||
|
SLEEP 60
|
|||
|
CALLA CLRLIST
|
|||
|
|
|||
|
CALLA OBJSCRN ;DELETE OBJECTS NOT IN SCREEN VIEW
|
|||
|
; CALLA OBJSCRNB ;DELETE BGND OBJECTS NOT IN SCREEN VIEW
|
|||
|
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRNZ LAB3
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRZ LAB2
|
|||
|
;WILL DELETE GALS, MC ETC.
|
|||
|
LAB3 CALLA DELPALS
|
|||
|
;DELETE EVERYTHING OF WRONG PALETTE!
|
|||
|
LAB2
|
|||
|
SLEEP 30 ;ALLOW ENOUGH TIME TO SEE WAVE NO.
|
|||
|
CALLA ERASE_TXT
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
JRZ CV1
|
|||
|
CMPI 2,A0
|
|||
|
JRNZ CV0
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRNZ MUS
|
|||
|
JRUC NOMUS
|
|||
|
; MOVE @WAVE,A0
|
|||
|
; CMPI 12,A0
|
|||
|
; JRZ MUS
|
|||
|
; CMPI 14,A0
|
|||
|
; JRZ MUS
|
|||
|
; CMPI 5,A0
|
|||
|
; JRZ MUS
|
|||
|
; CMPI 16,A0
|
|||
|
; JRZ MUS
|
|||
|
; CMPI 15,A0
|
|||
|
; JRZ MUS
|
|||
|
; CMPI 6,A0
|
|||
|
; JRZ MUS
|
|||
|
; CMPI 17,A0
|
|||
|
; JRZ MUS
|
|||
|
; CMPI 11,A0
|
|||
|
; JRZ MUS
|
|||
|
; CMPI 19,A0
|
|||
|
; JRNC MUS
|
|||
|
; CMPI 7,A0
|
|||
|
; JRZ MUS
|
|||
|
; JRNZ NOMUS
|
|||
|
CV0
|
|||
|
;CIRC 2
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 7,A0
|
|||
|
JRZ MUS
|
|||
|
CMPI 1,A0
|
|||
|
JRZ MUS
|
|||
|
JRNZ NOMUS
|
|||
|
CV1
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 10,A0
|
|||
|
JRZ MUS
|
|||
|
; CMPI 1,A0
|
|||
|
JRNZ NOMUS
|
|||
|
MUS CALLA WAVEMUSIC
|
|||
|
NOMUS CALLA DELSCORE ;DELETE SCORE FGND OBJECTS
|
|||
|
MOVI INGAME,A0
|
|||
|
MOVE A0,@GAMSTATE ;PUT US BACK IN GAMEPLAY MODE
|
|||
|
|
|||
|
MOVE @PLYRPRCS,A7,L ;NEW WORLD BNDS PLYR 1 AND 2
|
|||
|
JRZ NOPE1
|
|||
|
CALLA DO_BND
|
|||
|
NOPE1 MOVE @PLYRPRCS+32,A7,L
|
|||
|
JRZ NOPE2
|
|||
|
CALLA DO_BND
|
|||
|
NOPE2
|
|||
|
MOVK 2,A0
|
|||
|
MOVE A0,@EHALT
|
|||
|
MOVE @METERP1,A0,L
|
|||
|
MOVE @METERP2,A2,L
|
|||
|
MOVI 0410000H,A1
|
|||
|
MOVE A1,*A0(OYVAL),L
|
|||
|
MOVE A1,*A2(OYVAL),L
|
|||
|
MOVI 0220000H,A1
|
|||
|
MOVE A1,*A0(OXVAL),L
|
|||
|
MOVI 010F0000H,A1
|
|||
|
MOVE A1,*A2(OXVAL),L
|
|||
|
CALLA ADJSTWTL ;ADJUST TO THE WORLD TOP LEFT
|
|||
|
MOVE A2,A0
|
|||
|
CALLA ADJSTWTL ;ADJUST TO THE WORLD TOP LEFT
|
|||
|
|
|||
|
;KILL ICONPID HERE?
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI ICONPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI COLPID,A0
|
|||
|
CALLA KILALL
|
|||
|
|
|||
|
CREATE ICONPID,SEND_ICON
|
|||
|
CREATE COLPID,COLLISIONS
|
|||
|
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI TV2PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTV2,A0
|
|||
|
CALLA KILOBJ
|
|||
|
MOVI TVPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTV,A0
|
|||
|
CALLA KILOBJ
|
|||
|
; MOVI DLSTM,A1
|
|||
|
; CALLA UNGET
|
|||
|
|
|||
|
CALLA CLNPAL
|
|||
|
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
JRNZ MON2
|
|||
|
;CIRCUIT 1 MONITORS
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 5,A0
|
|||
|
JRNE TAG0
|
|||
|
MOVK 3,A0
|
|||
|
MOVE A0,@SPEECH
|
|||
|
;CIRCUIT 1 CASH ROOM
|
|||
|
MOVK 2,A9 ;WITH CASH
|
|||
|
JRUC TAG1
|
|||
|
TAG0 CMPI 2,A0
|
|||
|
JRNE TAG2
|
|||
|
PPE MOVK 1,A9 ;INTRO MONITOR
|
|||
|
CLR A1
|
|||
|
MOVI 850,A0
|
|||
|
CALLA RANDPER
|
|||
|
JRC TAGSP
|
|||
|
MOVK 1,A1
|
|||
|
MOVI 500,A0
|
|||
|
CALLA RANDPER
|
|||
|
JRC TAGSP
|
|||
|
MOVK 2,A1
|
|||
|
TAGSP MOVE A1,@SPEECH
|
|||
|
JRUC TAG1
|
|||
|
TAG2 CMPI 10,A0
|
|||
|
JRNE KPOP
|
|||
|
TAGSP2 CLR B0
|
|||
|
MOVK 3,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,@SPEECH
|
|||
|
MOVK 1,A9
|
|||
|
TAG1 CREATE TVPID,DOMNTR
|
|||
|
KPOP RETP
|
|||
|
MON2 CMPI 1,A0
|
|||
|
JRNE MON3
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 7,A0 ;FLAT FACE!
|
|||
|
JRZ TAGSP2
|
|||
|
TAG3 CMPI 9,A0
|
|||
|
JRZ TAGSP2
|
|||
|
TAG3A CMPI 12,A0
|
|||
|
JRNE TAG3B
|
|||
|
MOVK 3,A0
|
|||
|
MOVE A0,@SPEECH
|
|||
|
MOVK 2,A9 ;CASH
|
|||
|
JRUC TAG1
|
|||
|
TAG3B CMPI 14,A0
|
|||
|
JRNE KPOP
|
|||
|
MOVK 3,A0
|
|||
|
MOVE A0,@SPEECH
|
|||
|
MOVK 2,A9 ;CASH
|
|||
|
JRUC TAG1
|
|||
|
MON3
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 21,A0
|
|||
|
JRZ PPE
|
|||
|
CMPI 7,A0 ;SNAKES
|
|||
|
JRZ TAGSP2
|
|||
|
CMPI 9,A0
|
|||
|
JRZ TAGSP2
|
|||
|
CMPI 12,A0
|
|||
|
JRNE TAG5B
|
|||
|
MOVK 3,A0
|
|||
|
MOVE A0,@SPEECH
|
|||
|
MOVK 2,A9 ;CASH
|
|||
|
JRUC TAG1
|
|||
|
TAG5B CMPI 14,A0
|
|||
|
JRNE KPOP
|
|||
|
MOVK 3,A0
|
|||
|
MOVE A0,@SPEECH
|
|||
|
MOVK 2,A9 ;CASH
|
|||
|
JRUC TAG1
|
|||
|
|
|||
|
EDG
|
|||
|
.LONG 02EF0000H,034E0000H,EDGE
|
|||
|
.WORD 120,DMAWNZ,CLSNEUT|TYPPILE|SUBEDGE
|
|||
|
.LONG 0,0
|
|||
|
|
|||
|
CKONSCRN
|
|||
|
SLEEP 2*60
|
|||
|
;CHECK TO SEE IF PLAYERS ARE ON SCRN!
|
|||
|
MOVK 2,A10
|
|||
|
MOVE @PLYRPRCS,A1,L
|
|||
|
CKONE PUSH A10
|
|||
|
CMPI 0,A1
|
|||
|
JRZ OKAY
|
|||
|
MOVE *A1(TSO_PTR),A8,L
|
|||
|
MOVE *A1(LEG2_PTR),A9,L
|
|||
|
MOVI [>23-5,>1A],A2 ;BOUNDS CHECK
|
|||
|
MOVI [>FC,>171+5],A3
|
|||
|
CALLA OFSCRTST ;IS IT IN BOUNDS ?
|
|||
|
JRZ OKAY
|
|||
|
MOVE @WAVEYX,A0,L
|
|||
|
ADDI 500000H,A0
|
|||
|
MOVE A0,*A8(OYVAL),L
|
|||
|
MOVE A0,*A9(OYVAL),L
|
|||
|
SLL 16,A0
|
|||
|
ADDI 800000H,A0
|
|||
|
MOVE A0,*A8(OXVAL),L
|
|||
|
MOVE A0,*A9(OXVAL),L
|
|||
|
OKAY PULL A10
|
|||
|
MOVE @PLYRPRCS+32,A1,L
|
|||
|
DSJ A10,CKONE
|
|||
|
DIE
|
|||
|
STOP_PLYR
|
|||
|
;BASED ON WAVE #, CREATE A PROCESS FOR EACH PLAYER THAT WILL STOP
|
|||
|
;HIS X/Y MOVEMENT IF WALKING INTO PIT/WALL
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRNE STP0
|
|||
|
;TURN ON EDGE
|
|||
|
MOVI EDG,A14
|
|||
|
CALLR DO_ALL_STUFF
|
|||
|
MOVE A0,A8
|
|||
|
STP0
|
|||
|
MOVE @WAVE,A0
|
|||
|
SLL 3,A0
|
|||
|
ADDI TYPTBL,A0
|
|||
|
MOVB *A0,A9
|
|||
|
MOVB A9,@BOUND
|
|||
|
JRZ STPEX
|
|||
|
CLR A8
|
|||
|
CREATE STPPID,STOPME
|
|||
|
MOVI 32,A8
|
|||
|
CREATE STPPID,STOPME
|
|||
|
STPEX RETS
|
|||
|
DO_ALL_STUFF
|
|||
|
CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
|||
|
CALLA STFOBJ ;STUFF OBJECT DATA
|
|||
|
MOVE A13,*A0(OPLINK),L
|
|||
|
CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
|||
|
RETS
|
|||
|
TYPTBL .BYTE 0,1,3,0,0,0,0,0,0,0,0,2,0,0,0,0,0,3,0,0
|
|||
|
.EVEN
|
|||
|
STX .LONG [0,258],[150,400],[150,0EBH]
|
|||
|
STOPME
|
|||
|
;A8=0 OR 32
|
|||
|
;A9=1,2,3
|
|||
|
DEC A9
|
|||
|
SLL 5,A9
|
|||
|
MOVI STX,A0
|
|||
|
ADD A9,A0
|
|||
|
MOVE *A0,A10,L
|
|||
|
MOVX A10,A9
|
|||
|
SLL 16,A9
|
|||
|
STPTOP
|
|||
|
SLEEP 1
|
|||
|
;A9=RIGHT SIDE PIT X TO CHECK AGAINST
|
|||
|
;A10=LEFT SIDE PIT X
|
|||
|
MOVI PLYRPRCS,A0,L
|
|||
|
ADD A8,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
JRZ STPTOP
|
|||
|
MOVE *A0(DEAD),A4
|
|||
|
JRNZ STPTOP
|
|||
|
MOVE *A0(LEG_PTR),A4,L
|
|||
|
MOVE *A4(OYVAL),A2,L
|
|||
|
MOVE @WORLDTLY,A1,L
|
|||
|
SUB A1,A2
|
|||
|
CMPI [167,0],A2
|
|||
|
JRC STPTOP2
|
|||
|
MOVE *A4(OXVAL),A0,L
|
|||
|
MOVE @WORLDTLX,A1,L
|
|||
|
SUB A1,A0
|
|||
|
CMP A10,A0
|
|||
|
JRC AHIT
|
|||
|
CMP A9,A0
|
|||
|
JRNC AHIT
|
|||
|
STPTOP2
|
|||
|
;VALID X/Y COOR
|
|||
|
MOVE *A4(OXVAL),A11,L
|
|||
|
MOVE *A4(OYVAL),A0,L
|
|||
|
MOVI KPA0,A1
|
|||
|
ADD A8,A1
|
|||
|
MOVE A0,*A1,L
|
|||
|
JRUC STPTOP
|
|||
|
AHIT
|
|||
|
MOVE A11,*A4(OXVAL),L
|
|||
|
MOVI KPA0,A1
|
|||
|
ADD A8,A1
|
|||
|
MOVE *A1,A0,L
|
|||
|
MOVE A0,*A4(OYVAL),L
|
|||
|
MOVE *A4(OPLINK),A1,L
|
|||
|
MOVE *A1(TSO_PTR),A1,L
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A4(OXVEL),L
|
|||
|
MOVE A0,*A4(OYVEL),L
|
|||
|
MOVE A0,*A1(OXVEL),L
|
|||
|
MOVE A0,*A1(OYVEL),L
|
|||
|
|
|||
|
MOVE A1,A0
|
|||
|
PUSH A8
|
|||
|
MOVE A4,A8
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A8(OFLAGS),A4,W
|
|||
|
ORI M_NOCOLL,A4
|
|||
|
CALLA GANISAG
|
|||
|
PULL A8
|
|||
|
; MOVE A0,A8
|
|||
|
|
|||
|
JRUC STPTOP
|
|||
|
BAK_CYC
|
|||
|
CREATE 0,BAK2_CYC
|
|||
|
RETS
|
|||
|
BAK2_CYC
|
|||
|
SLEEP 43 ;40
|
|||
|
;CHECK WHICH ARENA IS ON AND COLOR CYCLE CORRECT PALETTE
|
|||
|
MOVE @WAVE,A0
|
|||
|
CMPI 11,A0
|
|||
|
JRNZ BK00
|
|||
|
MOVI RBTP4,A9
|
|||
|
CREATE CYCPID,STATIC_LIT
|
|||
|
JRUC BK2
|
|||
|
BK00 CMPI 5,A0
|
|||
|
JRZ BK0
|
|||
|
CMPI 6,A0
|
|||
|
JRNE BK1
|
|||
|
;TURN ON STATIC IN RBTP
|
|||
|
BK0
|
|||
|
MOVI RBTP5,A9
|
|||
|
CREATE CYCPID,STATIC_LIT
|
|||
|
MOVI RBTP,A9
|
|||
|
CREATE CYCPID,STATIC_LIT
|
|||
|
JRUC BK2
|
|||
|
BK1 CMPI 16,A0
|
|||
|
JREQ BK0
|
|||
|
CMPI 7,A0
|
|||
|
JRNE BK2
|
|||
|
;IN BLUE PAL
|
|||
|
MOVI RBTP5,A9
|
|||
|
CREATE CYCPID,STATIC_LIT
|
|||
|
BK2 MOVE @WAVE,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI CYCTBL,A0
|
|||
|
MOVE *A0,A9,L
|
|||
|
CREATE CYCPID,HOSPG_LIT
|
|||
|
CREATE CYCPID,HOSPR_LIT
|
|||
|
DIE
|
|||
|
|
|||
|
CYCTBL .LONG 0,RBTP,RBTP,RBTP5,RBTP3,RBTP,RBTP,RBTP5,RBTP5,RBTP2
|
|||
|
.LONG 0,RBTP4,RBTP5,RBTP5,RBTP4,RBTP2,RBTP,RBTP,RBTP5,RBTP
|
|||
|
|
|||
|
KILTXT:
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBP1TXT,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBP2TXT,A0
|
|||
|
CALLA KILOBJ
|
|||
|
RETS
|
|||
|
SHOWSC
|
|||
|
;SHOW SCORE AND METER BEFORE SCROLL
|
|||
|
CLR A1
|
|||
|
MOVE A1,@BSCORE ;INSURE WE ARE AT WORLD COORD.
|
|||
|
MOVE A1,@SCORE_FLAG,W ;TURN OFF DMA'D SCORES
|
|||
|
MOVE @METERP1,A0,L
|
|||
|
MOVE @P1MTRY,A1,W
|
|||
|
MOVE A1,*A0(OYPOS),W
|
|||
|
MOVE @METERP2,A0,L
|
|||
|
MOVE @P2MTRY,A1,W
|
|||
|
MOVE A1,*A0(OYPOS),W
|
|||
|
CALLA FSCORE ;AND SET THEM AS FGND OBJECTS
|
|||
|
RETS
|
|||
|
SKIPALL:
|
|||
|
MOVK 1,A0
|
|||
|
MOVB A0,@CANT2
|
|||
|
CALLA KILTXT ;GET RID OF TEXT MESSAGES
|
|||
|
CALLA SHOWSC
|
|||
|
|
|||
|
MOVI 9,A1
|
|||
|
MOVB A1,@KP_RS
|
|||
|
|
|||
|
; CREATE DRSPID,DRS ;OPEN DOORS LEADING TO TV SET
|
|||
|
|
|||
|
;WALKING INTO TVSET ARENA!!!!
|
|||
|
|
|||
|
MOVE @STATUS,A0
|
|||
|
CLR A9 ;NOT A BUYIN
|
|||
|
CMPI 3,A0
|
|||
|
JRNE AX6
|
|||
|
;BOTH PLAYERS RUNNING IN TO TVSET AREA
|
|||
|
MOVI P1CTRL,A8
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
MOVI P2CTRL,A8
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
JRUC AX7
|
|||
|
AX6
|
|||
|
DEC A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI CTRL,A0
|
|||
|
MOVE *A0,A8,L
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER ONTO SET
|
|||
|
|
|||
|
AX7
|
|||
|
SLEEP 1*60
|
|||
|
;TURN ON PLAYERS AND TEXT
|
|||
|
; MOVI CLEANIT,A1
|
|||
|
; CALLA UNGET
|
|||
|
|
|||
|
CALLA CLNPAL
|
|||
|
|
|||
|
CALLA FIGSON
|
|||
|
MOVI [264H,0],A10 ;CIRCUIT 1
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
JRZ SCRLU
|
|||
|
MOVI [3B0H,0],A10 ;FOR CIRCUIT 2
|
|||
|
; CMPI 1,A0
|
|||
|
; JRZ SCRLU
|
|||
|
; MOVI [648H,0],A10 ;CIRCUIT 3
|
|||
|
SCRLU
|
|||
|
CALLA BGND_UD1
|
|||
|
MOVE @WORLDTLY,A7,L ;WORLD TOP Y
|
|||
|
ADDI SCRLYSPD2,A7 ;CHECK FOR OVERRUN WRLDCOOR-PIX VEL
|
|||
|
MOVE A7,@WORLDTLY,L
|
|||
|
CMP A10,A7
|
|||
|
JRGE T69
|
|||
|
SLOOP 1,SCRLU
|
|||
|
T69
|
|||
|
CREATE BONPID,FLR2_LIT
|
|||
|
CREATE BONPID,P1_LIT
|
|||
|
CREATE BONPID,P2_LIT
|
|||
|
|
|||
|
;FADE AUTOPAL
|
|||
|
MOVI PALB,A0
|
|||
|
MOVK 2,A1
|
|||
|
CALLA FADEOUT
|
|||
|
|
|||
|
|
|||
|
CTP SLEEP 1
|
|||
|
MOVB @CANT2,A0
|
|||
|
JRNZ CTP
|
|||
|
; MOVK 1,A0
|
|||
|
; MOVB A0,@CANT
|
|||
|
|
|||
|
;FADE DOWN BONUS SCREEN ITEMS
|
|||
|
;CLEAR OUT BACKGROUND BLOCKS
|
|||
|
;CLEAR BAKBITS?
|
|||
|
;RESET WORLD X/Y TO CIRCUIT 2 GAMESHOW SET
|
|||
|
;GOTO CODE THAT BRINGS OUT OVERHEAD LIGHTS, AND FADES IN TVSET
|
|||
|
;SET CIRCUIT=2, WAVE=1
|
|||
|
;KILL TEXT
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI BONPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI DG1PID,A0
|
|||
|
CALLA KILALL
|
|||
|
|
|||
|
SLEEP 2
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
|
|||
|
;KILL NUMBERS ALSO!
|
|||
|
MOVK 1,A0
|
|||
|
CALLA KILOBJ
|
|||
|
MOVK 2,A0
|
|||
|
CALLA KILOBJ
|
|||
|
MOVI 41H,A0
|
|||
|
CALLA KILOBJ
|
|||
|
MOVI 42H,A0
|
|||
|
CALLA KILOBJ
|
|||
|
MOVI 40H,A0
|
|||
|
CALLA KILOBJ
|
|||
|
MOVI 21,A0
|
|||
|
CALLA KILOBJ
|
|||
|
MOVI 20,A0
|
|||
|
CALLA KILOBJ
|
|||
|
|
|||
|
|
|||
|
MOVE @STATUS,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRZ ALL3
|
|||
|
CMPI 1,A0
|
|||
|
JRZ ALL1
|
|||
|
MOVI PALBNS2,A0
|
|||
|
JRUC ALO
|
|||
|
ALL1 MOVI PALBNS1,A0
|
|||
|
JRUC ALO
|
|||
|
ALL3
|
|||
|
MOVI PALBNS,A0
|
|||
|
ALO
|
|||
|
MOVK 1,A1
|
|||
|
CALLA FADEOUT ;FADE OUT TV SET SCREEN
|
|||
|
SLEEP 40 ;50 ;60
|
|||
|
|
|||
|
CALLA KILBGND
|
|||
|
SLEEP 2
|
|||
|
|
|||
|
CALLA CLRBPAL
|
|||
|
CALLA CLNPAL
|
|||
|
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPNEUT|SUBCHNK,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
;EXTRA TEXT?
|
|||
|
MOVK 1,A0
|
|||
|
CALLA KILOBJ
|
|||
|
|
|||
|
;NEXT CIRCUIT ROUTINE
|
|||
|
CLR A1
|
|||
|
MOVE A1,@FROMDR,W
|
|||
|
NOT A1
|
|||
|
; MOVB A1,@CANT ;INDICATES ANOTHER PLYR CAN BUYIN
|
|||
|
;UNTIL CANT=1 THEN HE CAN'T BUYIN
|
|||
|
;UNTIL CANT=0!
|
|||
|
MOVE @PLYRPRCS,A0,L ;RAISE HELPER OVER PODIUM
|
|||
|
JRZ NXP
|
|||
|
MOVE *A0(LSRPTR),A1,L
|
|||
|
JRZ NXP
|
|||
|
MOVI 260,A2
|
|||
|
MOVE A2,*A1(OZPOS)
|
|||
|
NXP
|
|||
|
MOVE @PLYRPRCS+32,A0,L
|
|||
|
JRZ NXP2
|
|||
|
MOVE *A0(LSRPTR),A1,L
|
|||
|
JRZ NXP2
|
|||
|
MOVI 260,A2
|
|||
|
MOVE A2,*A1(OZPOS)
|
|||
|
NXP2
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
INC A0
|
|||
|
MOVE A0,@CIRCUIT
|
|||
|
CMPI 3,A0
|
|||
|
JRNZ F0
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVE A0,@CIRCUIT
|
|||
|
MOVI AUDEND,A0 ;SUCKER WILL NOT CONTINUE
|
|||
|
CALLA AUD1 ;CHALK IT!
|
|||
|
MOVE @STATUS,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNZ NO2
|
|||
|
MOVI AUDEND,A0 ;SUCKER WILL NOT CONTINUE
|
|||
|
CALLA AUD1 ;CHALK IT!
|
|||
|
NO2
|
|||
|
;KILL ALL OBJECTS
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI CYCPID,A0
|
|||
|
CALLA KILALL ;CLAP,GALS,MC,COLOR CYCLE, ETC
|
|||
|
MOVI PLY2PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI PLY1PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI PCPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI MCYCPID,A0
|
|||
|
CALLA KILALL ;KILL LAND MINE CYCLE
|
|||
|
CALLA OINIT
|
|||
|
JSRP WNDWON
|
|||
|
JSRP GRATS
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@GRATSON
|
|||
|
|
|||
|
SLEEP 1
|
|||
|
JSRP WNDWON
|
|||
|
CREATE GMEOVPID,GAMEOVER
|
|||
|
SLEEP 1000
|
|||
|
DIE
|
|||
|
F0
|
|||
|
CREATE 0,PLACEP
|
|||
|
|
|||
|
CLR A0
|
|||
|
;POSSIBLY MOVK 1,A0?
|
|||
|
MOVB A0,@FREETOT
|
|||
|
|
|||
|
CALLA CLRP2PZ
|
|||
|
CALLA CLRP1PZ
|
|||
|
|
|||
|
JSRP PUTBGND ;SET START SCREENS WORLD COOR
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WAVE ;FIRST WAVE AT START OF GAME
|
|||
|
CLR A0
|
|||
|
MOVB A0,@KP_TS
|
|||
|
MOVB A0,@KP_LS
|
|||
|
MOVB A0,@KP_RS
|
|||
|
;CLR WPN_TYP FOR THIS PLAYER?
|
|||
|
|
|||
|
SLEEP 2*60
|
|||
|
|
|||
|
MOVE @STATUS,A0
|
|||
|
CLR A9 ;INDICATES NOT WALKING IN FROM A DOOR
|
|||
|
CMPI 3,A0
|
|||
|
JRNE CAX3
|
|||
|
;BOTH PLAYERS ARE STARTING
|
|||
|
MOVI P1CTRL,A8
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
MOVI P2CTRL,A8
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
JRUC CAX4
|
|||
|
|
|||
|
CAX3
|
|||
|
MOVE A0,A10
|
|||
|
DEC A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI CTRL,A0
|
|||
|
MOVE *A0,A8,L
|
|||
|
CREATE 0,SCRIPTPLAY ;MOVE PLAYER INTO FIRST PHASE.
|
|||
|
CAX4
|
|||
|
SLEEP 040H
|
|||
|
MOVE @PLYRPRCS,A0,L
|
|||
|
JRZ NXP3
|
|||
|
MOVE *A0(LSRPTR),A1,L
|
|||
|
JRZ NXP3
|
|||
|
MOVI 171,A2
|
|||
|
MOVE A2,*A1(OZPOS)
|
|||
|
NXP3
|
|||
|
MOVE @PLYRPRCS+32,A0,L
|
|||
|
JRZ NXP4
|
|||
|
MOVE *A0(LSRPTR),A1,L
|
|||
|
JRZ NXP4
|
|||
|
MOVI 171,A2
|
|||
|
MOVE A2,*A1(OZPOS)
|
|||
|
NXP4
|
|||
|
SLEEP 088H
|
|||
|
;CHANGE BACKGROUND COLOR FOR CIRCUIT 2
|
|||
|
JSRP SET_WAVE ;WALK PLAYER OUT TO FIRST WAVE
|
|||
|
MOVI ( 6 *32*32)+( 3 *32)+( 4 ),A1 ; color 4
|
|||
|
; MOVE @CIRCUIT,A0
|
|||
|
; JRNZ FIFI
|
|||
|
;;WRAP COLOR AGAIN
|
|||
|
; MOVI ( 6 *32*32)+( 6 *32)+( 6 ),A1 ; color 4
|
|||
|
;FIFI
|
|||
|
MOVE A1,@IRQSKYE
|
|||
|
CREATE 0,UPOFF
|
|||
|
DIE
|
|||
|
PLACEP
|
|||
|
SLEEP 45
|
|||
|
;PLACE PLAYERS BEHIND THEIR PODIUM
|
|||
|
MOVE @PLYROBJS,A0,L
|
|||
|
JRZ TWO
|
|||
|
MOVE *A0(OPLINK),A2,L
|
|||
|
MOVI 08002H,A3
|
|||
|
MOVE A3,*A2(P_DIR)
|
|||
|
MOVE *A2(LEG_PTR),A2,L
|
|||
|
MOVI 620000H,A1
|
|||
|
MOVE A1,*A0(OXVAL),L
|
|||
|
MOVE A1,*A2(OXVAL),L
|
|||
|
MOVI 2E80000H,A1
|
|||
|
MOVE @CIRCUIT,A3
|
|||
|
ADDK 1,A3
|
|||
|
MOVE A1,*A0(OYVAL),L
|
|||
|
MOVE A1,*A2(OYVAL),L
|
|||
|
TWO MOVE @PLYROBJS+32,A0,L
|
|||
|
JRZ THR
|
|||
|
MOVE *A0(OPLINK),A2,L
|
|||
|
MOVI 08002H,A3
|
|||
|
MOVE A3,*A2(P_DIR)
|
|||
|
MOVE *A2(LEG_PTR),A2,L
|
|||
|
MOVI 12B0000H,A1
|
|||
|
MOVE A1,*A0(OXVAL),L
|
|||
|
MOVE A1,*A2(OXVAL),L
|
|||
|
MOVI 2E80000H,A1
|
|||
|
MOVE @CIRCUIT,A3
|
|||
|
ADDK 1,A3
|
|||
|
MOVE A1,*A0(OYVAL),L
|
|||
|
MOVE A1,*A2(OYVAL),L
|
|||
|
THR
|
|||
|
DIE
|
|||
|
|
|||
|
;UNGET
|
|||
|
;LIST IN A1, TERMINATED BY A 0
|
|||
|
;GET RID OF UNEEDED PALS!
|
|||
|
; MOVE *A1+,A0,L
|
|||
|
; JRZ UNOUT
|
|||
|
; CALLA FINDPAL
|
|||
|
; JRZ SON1
|
|||
|
; CALLA UNGETPAL
|
|||
|
;SON1
|
|||
|
; JRUC UNGET
|
|||
|
;UNOUT RETS
|
|||
|
|
|||
|
;DLSTM .LONG MNTR,MAPP,FIGCOL,PAL2TV,0
|
|||
|
;DLST .LONG MUTT,RP,BP,PURPTK,TKCOL1,GRNTP,GRNTG,DUXPAL,GALP2,GALP
|
|||
|
; .LONG 0
|
|||
|
;CLEANIT .LONG REDYLW,MCP,SPL
|
|||
|
;DLSTZ .LONG MUTT,RP,BP,PURPTK,TKCOL1,GRNTP,DUXPAL,GALP2,GALP
|
|||
|
; .LONG YBG,GREEN,FCE2,WHITE,ORANGE,TKCOL1,GRNTG,RP
|
|||
|
; .LONG NUORB,FCE1,FCE3,BLUE,0
|
|||
|
;DLST1 .LONG BGPLYR1P,BGPLYR2P,0
|
|||
|
;DLST2 .LONG FIGCOL,MNTR,LGHTFX,0
|
|||
|
;CLEAN .LONG PALSMSH,PALTV,PAL2TV,0
|
|||
|
;DLST0 .LONG FBIP,HSC,WTP1,WTP2,WTP3,smlg,0
|
|||
|
;ANIMATE FACES
|
|||
|
;UPDATE TEXT FOR ANY PLAYERS NOT IN GAME
|
|||
|
;RACK UP BONUS POINTS FOR BOTH PLAYERS SIMULTANEOUSLY
|
|||
|
;FADE OUT
|
|||
|
;FADE IN TVSET WITH PLAYERS BEHIND PODIUMS
|
|||
|
;SCROLL TO NEXT CIRCUIT
|
|||
|
;
|
|||
|
PALB:
|
|||
|
.LONG AUTOPAL,NUARENAP,0
|
|||
|
PALBNS:
|
|||
|
.LONG BONUSP,BGPLYR1P,BGPLYR2P,0
|
|||
|
PALBNS1:
|
|||
|
.LONG BONUSP,BGPLYR1P,0
|
|||
|
PALBNS2:
|
|||
|
.LONG BONUSP,BGPLYR2P,0
|
|||
|
KEYWARP .STRING "WARP #3 ACTIVATED=SECRET KEY"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
JOIN .STRING "CONTESTANT"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
JN2 .STRING "NEEDED!"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
JN3 .STRING "JOIN IN!"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
FIGURES
|
|||
|
;USED FOR INITALS SCREEN
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@ENTERON
|
|||
|
|
|||
|
;EUGENE
|
|||
|
;CHECK PLYR 1 SCORE AND PLYR 2 SCORE HERE
|
|||
|
;IF PLYR 1 GETS TO ENTER HIS INITIALS, A0=1, IF PLYR 2, A0=2, IF BOTH A0=3
|
|||
|
CALLA ISHSTD
|
|||
|
JREQ YAOUT
|
|||
|
MOVE A0,B0
|
|||
|
CALLA INITTIM
|
|||
|
SRL 1,B0
|
|||
|
JRNC YA2
|
|||
|
CREATE BONPID,P1_LIT
|
|||
|
MOVI LTTRP,A8 ;PAL NAME
|
|||
|
MOVI PAL1,A9 ;RAM AREA
|
|||
|
MOVI [4,12],A10 ;BEGIN/END COLOR #
|
|||
|
MOVK 3,A11 ;RATE IN TICKS
|
|||
|
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
|||
|
CREATE BONPID,FIG1
|
|||
|
CREATE BONPID,GETINIT1 ;GET PLAYER 1 INITS
|
|||
|
YA2
|
|||
|
SRL 1,B0
|
|||
|
JRNC YAOUT
|
|||
|
MOVI LTRP2,A8 ;PAL NAME
|
|||
|
MOVI PAL2,A9 ;RAM AREA
|
|||
|
MOVI [4,12],A10 ;BEGIN/END COLOR #
|
|||
|
MOVK 3,A11 ;RATE IN TICKS
|
|||
|
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
|||
|
CREATE BONPID,FIG2
|
|||
|
CREATE BONPID,P2_LIT
|
|||
|
CREATE BONPID,GETINIT2 ;GET PLAYER 2 INITS
|
|||
|
YAOUT
|
|||
|
RETS
|
|||
|
FIGSON
|
|||
|
;CHECK WHICH PLAYERS ARE PLAYING
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI CYCPID,A0
|
|||
|
CALLA KILALL ;CLAP,GALS,MC,COLOR CYCLE, ETC
|
|||
|
|
|||
|
MOVE @STATUS,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNE ABB
|
|||
|
;BOTH PLAYERS RUNNING IN TO TVSET AREA
|
|||
|
CREATE BONPID,FIG1
|
|||
|
CREATE BONPID,FIG2
|
|||
|
MOVI P1BON,A9
|
|||
|
CREATE BON1PID,RACKUP
|
|||
|
MOVI P2BON,A9
|
|||
|
CREATE BON1PID,RACKUP
|
|||
|
RETS
|
|||
|
ABB CMPI 1,A0
|
|||
|
JREQ ABC
|
|||
|
CREATE BONPID,FIG2
|
|||
|
CREATE BONPID,TX1
|
|||
|
MOVI P2BON,A9
|
|||
|
CREATE BON1PID,RACKUP
|
|||
|
RETS
|
|||
|
ABC CREATE BONPID,FIG1
|
|||
|
CREATE BONPID,TX0
|
|||
|
MOVI P1BON,A9
|
|||
|
CREATE BON1PID,RACKUP
|
|||
|
RETS
|
|||
|
FIG1
|
|||
|
MOVE A13,A10
|
|||
|
CREATE BONPID,EYES1
|
|||
|
CREATE BONPID,MOUTH1
|
|||
|
MOVK 6,A9
|
|||
|
MOVE @ENTERON,A1
|
|||
|
JRZ TP
|
|||
|
MOVK 11,A9
|
|||
|
TP MOVE A9,A0
|
|||
|
SLL 5,A0
|
|||
|
MOVE @ENTERON,A1
|
|||
|
JRZ REGA
|
|||
|
ADDI ON1B,A0
|
|||
|
JRUC REGA1
|
|||
|
REGA ADDI ON1,A0
|
|||
|
REGA1 CALLA DOIMG
|
|||
|
CMPI 7,A9
|
|||
|
JRNC TOHI
|
|||
|
ADDI CHST1L,A0
|
|||
|
MOVE A8,*A0,L
|
|||
|
TOHI DEC A9
|
|||
|
JRNZ TP
|
|||
|
;OBJECTS ALL ON
|
|||
|
MOVE *A13(CHST1L),A8,L
|
|||
|
F1S
|
|||
|
CALLA LINE_UP1
|
|||
|
SLEEP 5
|
|||
|
DIE
|
|||
|
|
|||
|
MOUTH1
|
|||
|
SLEEP 45
|
|||
|
;A10=FIG1 PROCESS PNTR
|
|||
|
MOVE *A10(SM1),A8,L
|
|||
|
MTHIN
|
|||
|
MOVI SMILES,A9
|
|||
|
MOVE A9,A10
|
|||
|
MOVE @ENTERON,A0
|
|||
|
JRZ AMTH1
|
|||
|
MOVI SMILESE,A9
|
|||
|
MOVE A9,A10
|
|||
|
AMTH1
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
SLEEP 150
|
|||
|
MOVE A10,A9
|
|||
|
JRUC AMTH1
|
|||
|
|
|||
|
MOUTH2
|
|||
|
SLEEP 4*60
|
|||
|
;A10=FIG1 PROCESS PNTR
|
|||
|
MOVE *A10(SM2),A8,L
|
|||
|
JRUC MTHIN
|
|||
|
|
|||
|
EYES1 SLEEP 70
|
|||
|
MOVE *A10(EY1),A8,L
|
|||
|
EYS MOVI EYES,A9
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
JRUC EYS
|
|||
|
|
|||
|
EYES2 SLEEP 150
|
|||
|
MOVE *A10(EY2),A8,L
|
|||
|
JRUC EYS
|
|||
|
|
|||
|
RACKUP
|
|||
|
;SHOW RUNNING TOTAL AT BOTTOM OF SCREEN
|
|||
|
;BASED ON CIRCUIT, DISPLAY PRIZE 1 TEXT
|
|||
|
;RACKUP PRIZES
|
|||
|
;SYNC WITH OTHER PLAYER
|
|||
|
;GO ONTO PRIZES 2,3
|
|||
|
;DO CASH BONUS
|
|||
|
;SCROLL UP SCORES
|
|||
|
;DIE
|
|||
|
;OTHER PROCESS TAKES CONTROL AND FADES OUT SCREEN
|
|||
|
|
|||
|
MOVB @P1PZ1,A0
|
|||
|
ADDI 10,A0
|
|||
|
MOVB A0,@P1PZ1
|
|||
|
MOVB @P1PZ2,A0
|
|||
|
ADDI 10,A0
|
|||
|
MOVB A0,@P1PZ2
|
|||
|
MOVB @P1PZ3,A0
|
|||
|
ADDI 10,A0
|
|||
|
MOVB A0,@P1PZ3
|
|||
|
MOVB @P2PZ1,A0
|
|||
|
ADDI 10,A0
|
|||
|
MOVB A0,@P2PZ1
|
|||
|
MOVB @P2PZ2,A0
|
|||
|
ADDI 10,A0
|
|||
|
MOVB A0,@P2PZ2
|
|||
|
MOVB @P2PZ3,A0
|
|||
|
ADDI 10,A0
|
|||
|
MOVB A0,@P2PZ3
|
|||
|
MOVB @P1CSH,A0
|
|||
|
ADDI 10,A0
|
|||
|
MOVB A0,@P1CSH
|
|||
|
MOVB @P2CSH,A0
|
|||
|
ADDI 10,A0
|
|||
|
MOVB A0,@P2CSH
|
|||
|
;A9=P1/P2BON
|
|||
|
; MOVI CROWD1,A0
|
|||
|
; CALLA ONESND
|
|||
|
SLEEP 120
|
|||
|
;TURN OFF MUSIC
|
|||
|
; MOVI MUSICOFF,A0
|
|||
|
; CALLA ONESND
|
|||
|
; SLEEP 10
|
|||
|
|
|||
|
CLR A1
|
|||
|
MOVB A1,*A13(IWAIT)
|
|||
|
|
|||
|
CLR A10
|
|||
|
CMPI P1BON,A9
|
|||
|
JREQ R1
|
|||
|
MOVK 1,A10
|
|||
|
R1
|
|||
|
;A10=0 OR 1 FOR WHICH PLAYER
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A9,L ;ZERO BONUS SCORE CNTR
|
|||
|
;TURN ON BONUS SCORE BEHIND PLAYERS HEAD
|
|||
|
CREATE DG1PID,DIGIT ;DRAW NEW UPDATED STRING
|
|||
|
CREATE DG1PID,BCDASC ;DRAW NEW TOTAL SCORE
|
|||
|
CLR A0
|
|||
|
MOVB A0,*A13(ITEM)
|
|||
|
CREATE BONPID,WORDB ;WORD 'BONUS'
|
|||
|
R_TOP
|
|||
|
PUSH A10
|
|||
|
MOVE A13,A10
|
|||
|
CREATE BONPID,BWORD ;BONUS WORD
|
|||
|
PULL A10
|
|||
|
;
|
|||
|
;RACK UP PRIZES
|
|||
|
;
|
|||
|
MOVI 27,A0
|
|||
|
MOVB A0,*A13(PZCNTR) ;USED FOR SPACING DURING BONUS RACK UP
|
|||
|
|
|||
|
MOVE A10,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI PZ12,A0
|
|||
|
MOVE *A0,A1,L
|
|||
|
;A1=P1PZ1 OR P2PZ1 RAM LIST
|
|||
|
MOVB *A13(ITEM),A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNE SAS
|
|||
|
SLL 3,A0
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A8
|
|||
|
ANDI 03FFH,A8
|
|||
|
JRUC SAS2
|
|||
|
SAS
|
|||
|
SLL 3,A0
|
|||
|
ADD A0,A1
|
|||
|
MOVB *A1,A8
|
|||
|
ANDI 0FFH,A8
|
|||
|
;A2=TOTAL FOR PRIZE 1
|
|||
|
SAS2
|
|||
|
JRZ DNONE
|
|||
|
CLR A0
|
|||
|
MOVE A0,@SOUNDSUP
|
|||
|
MOVI BONS1,A0
|
|||
|
CALLA ONESND
|
|||
|
MOVE @STATUS,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNZ ONEP
|
|||
|
;WILL THIS PLAYER SHUT DWN SND OR THE OTHER PLYR?
|
|||
|
CLR A0
|
|||
|
MOVB A0,*A13(SHUT)
|
|||
|
|
|||
|
;ASSUME THE OTHER GUY WILL
|
|||
|
MOVE A10,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI PZ12,A0
|
|||
|
MOVE *A0,A1,L
|
|||
|
;A1=P1PZ1 OR P2PZ1 RAM LIST
|
|||
|
MOVB *A13(ITEM),A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNZ TF1
|
|||
|
;CASH
|
|||
|
SLL 3,A0
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A2
|
|||
|
ANDI 03FFH,A2
|
|||
|
JRUC TFOUT
|
|||
|
TF1
|
|||
|
SLL 3,A0
|
|||
|
ADD A0,A1
|
|||
|
MOVB *A1,A2
|
|||
|
ANDI 0FFH,A2
|
|||
|
TFOUT
|
|||
|
;A2=TOTAL FOR ME
|
|||
|
;NOW GET TOTAL FOR OTHER PLAYER
|
|||
|
MOVE A10,A0
|
|||
|
XORI 1,A0
|
|||
|
;A10=0 OR 1
|
|||
|
SLL 5,A0
|
|||
|
ADDI PZ12,A0
|
|||
|
MOVE *A0,A1,L
|
|||
|
;A1=P1PZ1 OR P2PZ1 RAM LIST
|
|||
|
MOVB *A13(ITEM),A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNZ TF2
|
|||
|
;CASH
|
|||
|
SLL 3,A0
|
|||
|
ADD A0,A1
|
|||
|
MOVE *A1,A3
|
|||
|
ANDI 03FFH,A3
|
|||
|
JRUC TFOUT1
|
|||
|
TF2
|
|||
|
SLL 3,A0
|
|||
|
ADD A0,A1
|
|||
|
MOVB *A1,A3
|
|||
|
ANDI 0FFH,A3
|
|||
|
TFOUT1
|
|||
|
;A3=TOTAL FOR OTHER GUY
|
|||
|
CMP A2,A3
|
|||
|
JREQ TIE1
|
|||
|
JRNC DRW
|
|||
|
JRUC ONEP
|
|||
|
TIE1 MOVK 2,A0
|
|||
|
MOVB A0,*A13(SHUT)
|
|||
|
JRUC DRW
|
|||
|
;I HAVE MORE, I WILL SHUT DWN SND
|
|||
|
ONEP
|
|||
|
MOVK 1,A0 ;THIS GUY WILL SHUT DWN SNDS
|
|||
|
MOVB A0,*A13(SHUT)
|
|||
|
DRW
|
|||
|
PUSH A10
|
|||
|
MOVE A13,A10
|
|||
|
CREATE PICPID,DRWPIC
|
|||
|
CREATE BONPID,ADDIT
|
|||
|
PULL A10
|
|||
|
MOVB *A13(ITEM),A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNZ SAS3
|
|||
|
MOVI SCASH,A0 ;GET CASH PICKUP SND
|
|||
|
CALLA ONESND
|
|||
|
SLEEP 2
|
|||
|
JRUC SAS4
|
|||
|
SAS3
|
|||
|
SLEEP 2 ;6 ;3
|
|||
|
SAS4 DSJ A8,DRW
|
|||
|
|
|||
|
;ONLY OFF IS ONE PLAYER
|
|||
|
;OR 2ND PLAYER FINISHING RACKUP FOR THIS ITEM!
|
|||
|
MOVE @STATUS,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRZ SAS5
|
|||
|
;RAISE SINGLE GAME PLYR ARM
|
|||
|
XORI 1,A10
|
|||
|
CREATE 0,RAISE
|
|||
|
XORI 1,A10
|
|||
|
SAS5
|
|||
|
MOVB *A13(SHUT),A0 ;0=OTHER PLAYER WILL SHUT DWN SND
|
|||
|
CMPI 2,A0
|
|||
|
JRZ SASTIE
|
|||
|
CMPI 0,A0
|
|||
|
JRNZ NOPS
|
|||
|
; MOVE @STATUS,A0
|
|||
|
; CMPI 3,A0
|
|||
|
; JRNZ SKPS
|
|||
|
;TELL OTHER PLAYER TO RAISE ARMS!
|
|||
|
CREATE 0,RAISE
|
|||
|
JRUC SKPS
|
|||
|
|
|||
|
NOPS MOVI YAMOFF,A0
|
|||
|
CALLA ONESND
|
|||
|
SLEEP 2
|
|||
|
MOVI BONS2,A0 ;DING SND AT END
|
|||
|
CALLA ONESND
|
|||
|
SKPS
|
|||
|
SLEEP 1
|
|||
|
;SPEECH YAHOO HERE?
|
|||
|
SLEEP 40
|
|||
|
MOVI CROWD1,A0
|
|||
|
CALLA ONESND
|
|||
|
|
|||
|
SLEEP 80
|
|||
|
;DELETE FIRST ITEM
|
|||
|
SASX MOVE A10,A0
|
|||
|
ORI 0AH,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
JRZ DN
|
|||
|
CALLA DELOBJ
|
|||
|
SLEEP 3 ;4
|
|||
|
|
|||
|
;DELETE ITEM SND
|
|||
|
|
|||
|
JRUC SASX
|
|||
|
SASTIE
|
|||
|
;TELL OTHER PLAYER TO RAISE ARMS!
|
|||
|
CREATE 0,RAISE
|
|||
|
JRUC NOPS
|
|||
|
|
|||
|
|
|||
|
DNONE SLEEP 120 ;NO PRIZES
|
|||
|
DN
|
|||
|
;CHECK TO SEE IF WE NEED TO WAIT FOR THE OTHER PLAYER!
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI BON1PID,A0
|
|||
|
CALLA EXISTP
|
|||
|
JRZ NO
|
|||
|
;YES, FOUND OTHER PLAYER!
|
|||
|
MOVE A0,A8
|
|||
|
MOVB *A8(IWAIT),A1
|
|||
|
JRNZ LETSGO
|
|||
|
MOVK 1,A1
|
|||
|
MOVB A1,*A13(IWAIT)
|
|||
|
WLP MOVB *A13(IWAIT),A1
|
|||
|
JRZ LETSGO
|
|||
|
SLEEP 1
|
|||
|
JRUC WLP
|
|||
|
LETSGO
|
|||
|
MOVI YAMOFF,A0
|
|||
|
CALLA ONESND
|
|||
|
CLR A1
|
|||
|
MOVB A1,*A8(IWAIT)
|
|||
|
MOVB A1,*A13(IWAIT)
|
|||
|
NO
|
|||
|
;
|
|||
|
;KILL OFF WORD ABOVE BONUS
|
|||
|
MOVE A10,A0
|
|||
|
ORI 20,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
|
|||
|
MOVB *A13(ITEM),A0
|
|||
|
INC A0
|
|||
|
MOVB A0,*A13(ITEM)
|
|||
|
CMPI 4,A0
|
|||
|
JREQ DN2
|
|||
|
;
|
|||
|
JRUC R_TOP
|
|||
|
|
|||
|
DN2
|
|||
|
PUSH A10
|
|||
|
MOVE A13,A10
|
|||
|
CREATE BONPID,BWORD ;BONUS WORD
|
|||
|
PULL A10
|
|||
|
|
|||
|
|
|||
|
;WHICH PLAYER HAS LARGER BONUS?
|
|||
|
;START THAT PLAYER RAISING ARMS!
|
|||
|
;IF ONE PLAYER GAME, RAISE THAT PLAYERS ARMS
|
|||
|
MOVE @STATUS,A0
|
|||
|
CMPI 1,A0
|
|||
|
JRNZ FAG1
|
|||
|
JRZ FAG0A
|
|||
|
VAG0
|
|||
|
;FROWN ON PLYR 2
|
|||
|
CALLA PISS2
|
|||
|
|
|||
|
FAG0A
|
|||
|
;RAISE ARMS ON PLYR 1
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 0DH,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ DIOUT
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARML
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 0EH,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ DIOUT
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARMR
|
|||
|
JRUC DN2Z
|
|||
|
FAG1
|
|||
|
CMPI 2,A0
|
|||
|
JRNZ FAG2
|
|||
|
JRZ FAG1A
|
|||
|
VAG1
|
|||
|
;FROWN PLYR 1
|
|||
|
CALLA PISS1
|
|||
|
FAG1A
|
|||
|
;RAISE ARMS ON PLYR 2
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 0FH,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ DIOUT
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARML
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 010H,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ DIOUT
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARMR
|
|||
|
JRUC DN2Z
|
|||
|
FAG2
|
|||
|
MOVE @P1BON,A0,L
|
|||
|
MOVE @P2BON,A1,L
|
|||
|
CMP A0,A1
|
|||
|
JRC VAG0
|
|||
|
JRNC VAG1
|
|||
|
|
|||
|
DN2Z
|
|||
|
;
|
|||
|
MOVI YAMOFF,A0
|
|||
|
CALLA ONESND
|
|||
|
SLEEP 2
|
|||
|
MOVI CROWD1,A0
|
|||
|
CALLA ONESND
|
|||
|
;DIOUT
|
|||
|
SLEEP 4*60
|
|||
|
|
|||
|
;FADE OUT SCREEN
|
|||
|
;FADE IN TVSET SCREEN
|
|||
|
;
|
|||
|
CLR A0
|
|||
|
MOVB A0,@CANT2
|
|||
|
DIE
|
|||
|
RAISE2
|
|||
|
;A10=0 OR 1, XOR FOR PLYR TO RAISE ARMS
|
|||
|
XORI 1,A10
|
|||
|
JRZ P1RSA
|
|||
|
;RAISE PLYR 2 ARMS
|
|||
|
;PISS OFF PLYR 1
|
|||
|
CALLA RAS1
|
|||
|
|
|||
|
DIE
|
|||
|
P1RSA
|
|||
|
CALLA RAS2
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
RAS2
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 0DH,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ $
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARML
|
|||
|
RETS
|
|||
|
RAS1
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 0FH,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ $
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARML
|
|||
|
RETS
|
|||
|
RAISE
|
|||
|
;A10=0 OR 1, XOR FOR PLYR TO RAISE ARMS
|
|||
|
XORI 1,A10
|
|||
|
JRZ P1RS
|
|||
|
;RAISE PLYR 2 ARMS
|
|||
|
;PISS OFF PLYR 1
|
|||
|
CALLA RAS1
|
|||
|
CALLA PISS1
|
|||
|
DIE
|
|||
|
P1RS
|
|||
|
CALLA RAS2
|
|||
|
;PLYR 2 PISS OFF
|
|||
|
;DO EYES AND MOUTH
|
|||
|
CALLA PISS2
|
|||
|
DIE
|
|||
|
|
|||
|
PISS2
|
|||
|
CREATE 0,PEED2
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 0FH,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ $
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARMLP
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 010H,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ $
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARMRP
|
|||
|
RETS
|
|||
|
PISS1
|
|||
|
;PLYR 1 PISS OFF
|
|||
|
;DO EYES AND MOUTH
|
|||
|
;SHOW PISSED FACE
|
|||
|
CREATE 0,PEED1
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 0DH,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ $
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARMLP
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI 0EH,A0
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ $
|
|||
|
MOVE A0,A8
|
|||
|
CREATE 0,ARMRP
|
|||
|
RETS
|
|||
|
PEED1
|
|||
|
;TURN ON PISSED OFF HEAD PLYR 1
|
|||
|
;ALIGN WITH BODY
|
|||
|
;SLEEP
|
|||
|
;KILL IT
|
|||
|
;DIE
|
|||
|
MOVI HEDS1,A14
|
|||
|
CALLR DO_ALL_STUFF
|
|||
|
; CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
|||
|
; CALLA STFOBJ ;STUFF OBJECT DATA
|
|||
|
; CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
|||
|
MOVE A0,A9
|
|||
|
MOVI 0DH,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ $
|
|||
|
MOVE A0,A8
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A9,A0
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
; SUBI 0010000H,A3 ;SUB 1 FROM X
|
|||
|
; SUBI 0010000H,A2 ;SUB 1 FROM Y
|
|||
|
CALLA GANISAG
|
|||
|
;ALIGN
|
|||
|
SLEEP 220
|
|||
|
MOVE A9,A0
|
|||
|
CALLA DELOBJ
|
|||
|
DIE
|
|||
|
|
|||
|
PEED2
|
|||
|
;TURN ON PISSED OFF HEAD
|
|||
|
;SLEEP
|
|||
|
;KILL IT
|
|||
|
;DIE
|
|||
|
MOVI HEDS1,A14
|
|||
|
CALLR DO_ALL_STUFF
|
|||
|
; CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
|||
|
; CALLA STFOBJ ;STUFF OBJECT DATA
|
|||
|
; CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
|||
|
MOVE A0,A9
|
|||
|
|
|||
|
;CHANGE TO BLACK GUY PAL
|
|||
|
MOVI BGPLYR2P,A0
|
|||
|
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
MOVE A0,*A9(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
|
|||
|
MOVI 0FH,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
; JRZ $
|
|||
|
MOVE A0,A8
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A9,A0
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
; SUBI 0010000H,A3 ;SUB 1 FROM X
|
|||
|
; SUBI 0010000H,A2 ;SUB 1 FROM Y
|
|||
|
CALLA GANISAG
|
|||
|
;ALIGN
|
|||
|
SLEEP 220
|
|||
|
MOVE A9,A0
|
|||
|
CALLA DELOBJ
|
|||
|
DIE
|
|||
|
|
|||
|
ARML
|
|||
|
MOVI ARMLUP,A9
|
|||
|
JRUC ARMCONT
|
|||
|
|
|||
|
ARMCONT MOVI 7FE0H,A0
|
|||
|
MOVE A0,*A8(OZPOS),W
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
DIE
|
|||
|
ARMR
|
|||
|
MOVI ARMRUP,A9
|
|||
|
JRUC ARMCONT
|
|||
|
ARMLP
|
|||
|
MOVI ARMLP0,A9
|
|||
|
JRUC ARMCONT
|
|||
|
ARMRP
|
|||
|
MOVI ARMRP0,A9
|
|||
|
JRUC ARMCONT
|
|||
|
|
|||
|
ARMLP0 .LONG ARMUP5
|
|||
|
.WORD 220
|
|||
|
.LONG BPLYRTRS
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
ARMRP0 .LONG ARMUP5
|
|||
|
.WORD FLIPBITS|220,M_FLIPH
|
|||
|
.LONG BPLYRTRS
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
ARMRUP
|
|||
|
.LONG ARMUP1
|
|||
|
.WORD FLIPBITS|6,M_FLIPH
|
|||
|
.LONG ARMUP2
|
|||
|
.WORD 6
|
|||
|
.LONG ARMUP3
|
|||
|
.WORD 6
|
|||
|
.LONG ARMUP4
|
|||
|
.WORD 120
|
|||
|
.LONG ARMUP3
|
|||
|
.WORD 6
|
|||
|
.LONG ARMUP2
|
|||
|
.WORD 6
|
|||
|
.LONG ARMUP1
|
|||
|
.WORD 6
|
|||
|
.LONG BPLYRTRS
|
|||
|
.WORD 6
|
|||
|
.LONG 0
|
|||
|
ARMLUP
|
|||
|
.LONG ARMUP1
|
|||
|
.WORD FLIPBITS|6,0
|
|||
|
.LONG ARMUP2
|
|||
|
.WORD 6
|
|||
|
.LONG ARMUP3
|
|||
|
.WORD 6
|
|||
|
.LONG ARMUP4
|
|||
|
.WORD 120
|
|||
|
.LONG ARMUP3
|
|||
|
.WORD 6
|
|||
|
.LONG ARMUP2
|
|||
|
.WORD 6
|
|||
|
.LONG ARMUP1
|
|||
|
.WORD 6
|
|||
|
.LONG BPLYRTRS
|
|||
|
.WORD 6
|
|||
|
.LONG 0
|
|||
|
DRWPIC
|
|||
|
;A10=A13 OF RACKUP THAT CREATED ME
|
|||
|
;INC PZCNTR
|
|||
|
;GET PROPER X/Y SPACING FOR THIS PLAYER AND THIS PRIZE
|
|||
|
;BEGIN OBJ
|
|||
|
;DIE
|
|||
|
MOVE A10,A8
|
|||
|
CLR A10
|
|||
|
CMPI P1BON,A9
|
|||
|
JREQ R1E
|
|||
|
MOVK 1,A10
|
|||
|
R1E
|
|||
|
;A10=0 OR 1
|
|||
|
MOVB *A8(PZCNTR),A0
|
|||
|
JRZ DY
|
|||
|
DEC A0
|
|||
|
MOVB A0,*A8(PZCNTR)
|
|||
|
|
|||
|
SLL 3,A0
|
|||
|
MOVI YPZ,A1
|
|||
|
ADD A0,A1
|
|||
|
MOVB *A1,A9
|
|||
|
ADDI XPZ,A0
|
|||
|
MOVB *A0,A11
|
|||
|
ANDI 0FFH,A11
|
|||
|
MOVE A10,A10
|
|||
|
JRZ AY
|
|||
|
;P2
|
|||
|
ADDI 195,A11
|
|||
|
AY
|
|||
|
MOVB *A8(ITEM),A0
|
|||
|
CMPI 3,A0
|
|||
|
JRZ AY2
|
|||
|
; MOVI BEEP1,A0
|
|||
|
; CALLA ONESND
|
|||
|
AY2
|
|||
|
; MOVE @CIRCUIT,A0
|
|||
|
; SLL 5,A0
|
|||
|
; ADDI PZLSND,A0
|
|||
|
; MOVE *A0,A0,L
|
|||
|
; MOVB *A8(ITEM),A2
|
|||
|
; SLL 5,A2
|
|||
|
; ADD A2,A0
|
|||
|
; MOVE *A0,A0,L
|
|||
|
; CALLA ONESND
|
|||
|
|
|||
|
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI PCTBL,A0
|
|||
|
MOVE *A0,A2,L
|
|||
|
MOVB *A8(ITEM),A0
|
|||
|
SLL 5,A0
|
|||
|
ADD A0,A2
|
|||
|
MOVE *A2,A14,L
|
|||
|
CALLR DO_ALL_STUFF
|
|||
|
; CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
|||
|
; CALLA STFOBJ ;STUFF OBJECT DATA
|
|||
|
; MOVE A13,*A0(OPLINK),L
|
|||
|
; CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
|||
|
MOVE A0,A8
|
|||
|
MOVE A9,*A8(OYPOS),W
|
|||
|
MOVE A11,*A8(OXPOS),W
|
|||
|
CALLA ADJSTWTL
|
|||
|
ORI 0AH,A10
|
|||
|
MOVE A10,*A8(OID)
|
|||
|
DY DIE
|
|||
|
|
|||
|
XPZ: .BYTE 30,60,90,120,150
|
|||
|
.BYTE 43,73,103,133
|
|||
|
.BYTE 30,60,90,120,150
|
|||
|
.BYTE 43,73,103,133
|
|||
|
.BYTE 30,60,90,120,150
|
|||
|
.BYTE 43,73,103,133
|
|||
|
YPZ: .BYTE 58,58,58,58,58
|
|||
|
.BYTE 70,70,70,70
|
|||
|
.BYTE 82,82,82,82,82
|
|||
|
.BYTE 94,94,94,94
|
|||
|
.BYTE 106,106,106,106,106
|
|||
|
.BYTE 118,118,118,118
|
|||
|
.EVEN
|
|||
|
|
|||
|
PCTBL .LONG P1LST,P2LST,P3LST
|
|||
|
P1LST .LONG P1,P2,P3,CAZH
|
|||
|
P2LST .LONG BP1,BP2,BP3,CAZH
|
|||
|
P3LST .LONG CP1,CP2,CP3,CAZH
|
|||
|
P1:
|
|||
|
.LONG 0,0,TSTR2
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
P2:
|
|||
|
.LONG 0,0,CR
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
P3:
|
|||
|
.LONG 0,0,VCR2
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
CAZH:
|
|||
|
.LONG 0,0,CSHIN
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
BP1:
|
|||
|
.LONG 0,0,TV
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
BP2:
|
|||
|
.LONG 0,0,LUGG2
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
BP3:
|
|||
|
.LONG 0,0,TRP
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
CP1:
|
|||
|
.LONG 0,0,HGM
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
CP2:
|
|||
|
.LONG 0,0,MWR
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
CP3:
|
|||
|
.LONG 0,0,MT
|
|||
|
.WORD 91,DMAWNZ,CLSNEUT|TYPICON
|
|||
|
.LONG 0,0
|
|||
|
|
|||
|
GTA10
|
|||
|
CLR A10
|
|||
|
CMPI P1BON,A9
|
|||
|
JREQ R1EE
|
|||
|
MOVK 1,A10
|
|||
|
R1EE
|
|||
|
;A10=0 OR 1
|
|||
|
RETS
|
|||
|
|
|||
|
ADDIT
|
|||
|
MOVE A10,A8
|
|||
|
CALLA GTA10
|
|||
|
MOVI DG1PID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ RYI
|
|||
|
CREATE DG1PID,DIGIT ;DRAW NEW UPDATED STRING
|
|||
|
CREATE DG1PID,BCDASC ;DRAW NEW TOTAL SCORE
|
|||
|
RYI MOVE *A9,A0,L
|
|||
|
MOVB *A8(ITEM),A1
|
|||
|
SLL 4,A1
|
|||
|
ADDI ADITM,A1
|
|||
|
MOVE *A1,A1
|
|||
|
MMTM SP,A0,A1
|
|||
|
;ADD TO REAL SCORE ALSO!
|
|||
|
MOVB *A8(ITEM),A1
|
|||
|
SLL 4,A1
|
|||
|
ADDI ADITM2,A1
|
|||
|
MOVE *A1,A1
|
|||
|
ANDI 0FFFFH,A1
|
|||
|
;A2=P1DATA OR P2DATA
|
|||
|
MOVI P1DATA,A2
|
|||
|
MOVE A10,A10
|
|||
|
JRZ VB1
|
|||
|
MOVI P2DATA,A2
|
|||
|
VB1 CALLA SCRADD3
|
|||
|
MMFM SP,A0,A1
|
|||
|
ADD A1,A0
|
|||
|
MOVE A0,*A9,L
|
|||
|
DIE
|
|||
|
|
|||
|
ADITM .WORD 2000,2500,2500,900
|
|||
|
ADITM2 .WORD >2000,>2500,>2500,>900
|
|||
|
|
|||
|
PZ12 .LONG P1PZ1,P2PZ1
|
|||
|
|
|||
|
BWORD
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI CTBL,A0
|
|||
|
MOVE *A0,A2,L ;A2=TABLE OF TEXT ENTRIES
|
|||
|
|
|||
|
|
|||
|
MOVB *A10(ITEM),A1
|
|||
|
CALLA GTA10
|
|||
|
|
|||
|
MOVE A1,A0
|
|||
|
SLL 5,A0
|
|||
|
ADD A0,A2 ;GET TO CORRECT BONUS STRING
|
|||
|
MOVE *A2,A8,L ;A3=FIRST TEXT STRING TO DRAW
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
|
|||
|
MOVE A10,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI LFRG2,A0 ;GET LEFT/RIGHT POSITION FOR PLYR 1/2
|
|||
|
MOVE *A0,A1,L
|
|||
|
ADD A1,A9
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE DIGITS
|
|||
|
;A8 GOTTEN FROM HEXTOASC
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0 ;ADJUST FOR WORLD
|
|||
|
MOVE A0,@WRLD
|
|||
|
ORI 20,A10
|
|||
|
MOVB A10,@MYID
|
|||
|
CLR A0
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
JSRP STRCNRMO ;PRINT STRING, NO OBJECTS
|
|||
|
CLR A0
|
|||
|
MOVB A0,@MYID
|
|||
|
DIE
|
|||
|
|
|||
|
WORDB
|
|||
|
MOVI BNS,A8 ;BONUS WORD
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
MOVE A10,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI LFRGB,A0 ;GET LEFT/RIGHT POSITION FOR PLYR 1/2
|
|||
|
MOVE *A0,A1,L
|
|||
|
ADD A1,A9
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE DIGITS
|
|||
|
;A8 GOTTEN FROM HEXTOASC
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0 ;ADJUST FOR WORLD
|
|||
|
MOVE A0,@WRLD
|
|||
|
; INC A10
|
|||
|
CLR A0
|
|||
|
MOVB A0,@MYID
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
JSRP STRCNRMO ;PRINT STRING, NO OBJECTS
|
|||
|
DIE
|
|||
|
|
|||
|
|
|||
|
LFRG: .LONG [0158H,0FE8EH],[0158H,0FF54H]
|
|||
|
LFRGA: .LONG [01F8H,0FE8EH],[01F8H,0FF54H] ;FOR TOTAL SCORE STRING
|
|||
|
LFRG2: .LONG [0128H,0FE8EH],[0128H,0FF54H]
|
|||
|
LFRGB: .LONG [013AH,0FE8EH],[013AH,0FF54H]
|
|||
|
CTBL .LONG CC1,CC2,CC3
|
|||
|
CC1 .LONG CA1,CA2,CA3,CA4,CA5
|
|||
|
CC2 .LONG CB1,CB2,CB3,CA4,CA5
|
|||
|
CC3 .LONG CD1,CD2,CD3,CA4,CA5
|
|||
|
CA1 .STRING "TOASTER"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CA2 .STRING "AUTOMOBILE"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CA3 .STRING "SUPER VCR"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CA4 .STRING "CASH"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CA5 .STRING "TOTAL"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
BNS .STRING "BONUS"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
|
|||
|
CB1 .STRING "TELEVISION"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CB2 .STRING "LUGGAGE"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CB3 .STRING "VACATION"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
|
|||
|
CD1 .STRING "HOME GAME"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CD2 .STRING "LAWN MOWER"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CD3 .STRING "GOOD MEAT"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
|
|||
|
BCDASC
|
|||
|
;A10=0 OR 1
|
|||
|
;TAKE PLAYER SCORES, CONVERT TO ASC STRING FOR OUTPUT TO SCREEN
|
|||
|
MOVI P2DATA,A9
|
|||
|
CMPI 1,A10
|
|||
|
JRZ AP1
|
|||
|
MOVI P1DATA,A9
|
|||
|
AP1
|
|||
|
CLR A2 ;RUNNING SCORE IN HEX
|
|||
|
CLR A3 ;INDEX INTO DEC VALUE FOR ADD
|
|||
|
MOVK 8,A5
|
|||
|
MOVE *A9(PSCORE),A0,L
|
|||
|
CALLA BCDBIN
|
|||
|
MOVE A0,A8
|
|||
|
PUSH A10
|
|||
|
ADDI 40H,A10
|
|||
|
MOVE A10,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
PULL A10
|
|||
|
|
|||
|
CALLA HEXTOASC ;CREATE STRING FOR BONUS SCORE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
|
|||
|
MOVE A10,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI LFRGA,A0 ;GET LEFT/RIGHT POSITION FOR PLYR 1/2
|
|||
|
MOVE *A0,A1,L
|
|||
|
ADD A1,A9
|
|||
|
MOVI 02525H,A6 ;COLOR CYCLE DIGITS
|
|||
|
;A8 GOTTEN FROM HEXTOASC
|
|||
|
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
|
|||
|
MOVK 1,A0 ;ADJUST FOR WORLD
|
|||
|
MOVE A0,@WRLD
|
|||
|
ADDI 40H,A10
|
|||
|
MOVB A10,@MYID
|
|||
|
CLR A0
|
|||
|
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
JSRP STRCNRMO ;PRINT STRING, NO OBJECTS
|
|||
|
CLR A0
|
|||
|
MOVB A0,@MYID
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
DIGIT:
|
|||
|
;PROCESS
|
|||
|
;DISPLAY BONUS STRING FOR PLAYER 1 OR 2
|
|||
|
;A9=PLYR BONUS DATA AREA
|
|||
|
;A10=0 FOR PLYR 1, 1 FOR PLYR 2
|
|||
|
INC A10
|
|||
|
MOVE A10,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
DEC A10
|
|||
|
|
|||
|
MOVE *A9,A8,L
|
|||
|
CALLA HEXTOASC ;CREATE STRING FOR BONUS SCORE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
|
|||
|
MOVE A10,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI LFRG,A0 ;GET LEFT/RIGHT POSITION FOR PLYR 1/2
|
|||
|
MOVE *A0,A1,L
|
|||
|
ADD A1,A9
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE DIGITS
|
|||
|
;A8 GOTTEN FROM HEXTOASC
|
|||
|
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
|
|||
|
MOVK 1,A0 ;ADJUST FOR WORLD
|
|||
|
MOVE A0,@WRLD
|
|||
|
INC A10
|
|||
|
MOVB A10,@MYID
|
|||
|
CLR A0
|
|||
|
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
JSRP STRCNRMO ;PRINT STRING, NO OBJECTS
|
|||
|
CLR A0
|
|||
|
MOVB A0,@MYID
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
SMILES
|
|||
|
.LONG BPLYRMTH1
|
|||
|
.WORD 4*60 ;9
|
|||
|
.LONG BPLYRSML
|
|||
|
.WORD 7*60
|
|||
|
.LONG BPLYRMTH1
|
|||
|
.WORD 4*60
|
|||
|
.LONG BPLYRSML
|
|||
|
.WORD 7*60
|
|||
|
.LONG 0
|
|||
|
SMILESE
|
|||
|
.LONG BPLYRMTH1
|
|||
|
.WORD 1*60 ;9
|
|||
|
.LONG BPLYRSML
|
|||
|
.WORD 7*60
|
|||
|
.LONG 0
|
|||
|
|
|||
|
EYES
|
|||
|
.LONG BPLYRI1
|
|||
|
.WORD 5
|
|||
|
.LONG BPLYRI2
|
|||
|
.WORD 9
|
|||
|
.LONG BPLYRI1
|
|||
|
.WORD 5
|
|||
|
.LONG BPLYRI3
|
|||
|
.WORD 3*60
|
|||
|
.LONG BPLYRI1
|
|||
|
.WORD 4
|
|||
|
.LONG BPLYRI2
|
|||
|
.WORD 4
|
|||
|
.LONG BPLYRI1
|
|||
|
.WORD 4
|
|||
|
.LONG BPLYRI3
|
|||
|
.WORD 30
|
|||
|
.LONG BPLYRI1
|
|||
|
.WORD 4
|
|||
|
.LONG BPLYRI2
|
|||
|
.WORD 4
|
|||
|
.LONG BPLYRI1
|
|||
|
.WORD 4
|
|||
|
.LONG BPLYRI3
|
|||
|
.WORD 5*60
|
|||
|
.LONG BPLYRI1
|
|||
|
.WORD 5
|
|||
|
.LONG BPLYRI2
|
|||
|
.WORD 20
|
|||
|
.LONG BPLYRI1
|
|||
|
.WORD 5
|
|||
|
.LONG BPLYRI3
|
|||
|
.WORD 3*60
|
|||
|
.LONG 0
|
|||
|
SECRET SLEEP 10
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
ADDI >116FEF2,A9 ;[0F8H,0FF84H],A9 ;Y,X POSITION
|
|||
|
MOVI KEYWARP,A8
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
JSRP STRCNRMO
|
|||
|
DIE
|
|||
|
TX0
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
ADDI [0128H,0FF54H],A9 ;Y,X POSITION
|
|||
|
MOVI JOIN,A8
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
JSRP STRCNRMO
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
ADDI [013AH,0FF54H],A9 ;Y,X POSITION
|
|||
|
MOVI JN2,A8
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
JSRP STRCNRMO
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
ADDI [0188H,0FF53H],A9 ;Y,X POSITION
|
|||
|
MOVI JN3,A8
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
JSRP STRCNRMO
|
|||
|
DIE
|
|||
|
TX1
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
ADDI [0128H,0FE8EH],A9 ;Y,X POSITION
|
|||
|
MOVI JOIN,A8
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
JSRP STRCNRMO
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
ADDI [013AH,0FE8EH],A9 ;Y,X POSITION
|
|||
|
MOVI JN2,A8
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
JSRP STRCNRMO
|
|||
|
MOVI 03F3FH,A6 ;COLOR CYCLE
|
|||
|
MOVE @WAVEYX,A9,L
|
|||
|
ADDI [0188H,0FE8EH],A9 ;Y,X POSITION
|
|||
|
MOVI JN3,A8
|
|||
|
MOVI [0,2],A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
JSRP STRCNRMO
|
|||
|
DIE
|
|||
|
|
|||
|
FIG2
|
|||
|
MOVE A13,A10
|
|||
|
CREATE BONPID,EYES2
|
|||
|
CREATE BONPID,MOUTH2
|
|||
|
|
|||
|
MOVK 6,A9
|
|||
|
MOVE @ENTERON,A0
|
|||
|
JRZ TP2
|
|||
|
MOVK 11,A9
|
|||
|
TP2 MOVE A9,A0
|
|||
|
SLL 5,A0
|
|||
|
MOVE @ENTERON,A1
|
|||
|
JRZ TPREG
|
|||
|
ADDI ON2B,A0
|
|||
|
JRUC TPOUT
|
|||
|
TPREG
|
|||
|
ADDI ON2,A0
|
|||
|
TPOUT
|
|||
|
CALLA DOIMG
|
|||
|
CMPI 7,A9
|
|||
|
JRNC SKPA
|
|||
|
PUSH A0
|
|||
|
MOVI BGPLYR2P,A0 ;P2 PAL
|
|||
|
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
PULL A0
|
|||
|
ADDI CHST2L,A0
|
|||
|
MOVE A8,*A0,L
|
|||
|
SKPA
|
|||
|
DEC A9
|
|||
|
JRNZ TP2
|
|||
|
MOVE *A13(CHST2L),A8,L
|
|||
|
;OBJECTS ALL ON
|
|||
|
MOVI 0C9H,A11
|
|||
|
MOVE @ENTERON,A0
|
|||
|
JRZ REGH
|
|||
|
MOVI 0A9H,A11
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
ADDI 4,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
REGH
|
|||
|
MOVE *A8(OXPOS),A0
|
|||
|
ADD A0,A11
|
|||
|
MOVE A11,*A8(OXPOS),W
|
|||
|
F2S
|
|||
|
CALLA LINE_UP2
|
|||
|
SLEEP 5
|
|||
|
JRUC F2S
|
|||
|
;
|
|||
|
DOIMG
|
|||
|
MOVE *A0,A14,L
|
|||
|
CALLR DO_ALL_STUFF
|
|||
|
; CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
|||
|
; CALLA STFOBJ ;STUFF OBJECT DATA
|
|||
|
; MOVE A13,*A0(OPLINK),L
|
|||
|
; CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
|||
|
MOVE A0,A8
|
|||
|
MOVI 026H,A11 ;X 24
|
|||
|
MOVI 019CH,A10 ;Y
|
|||
|
|
|||
|
MOVE @ENTERON,A1
|
|||
|
JRZ REGB
|
|||
|
CMPI 7,A9
|
|||
|
JRNC REGB2
|
|||
|
MOVI 038H,A11 ;X 24
|
|||
|
MOVI 089H,A10 ;Y
|
|||
|
REGB
|
|||
|
MOVE A10,*A8(OYPOS),W
|
|||
|
MOVE A11,*A8(OXPOS),W
|
|||
|
REGB2
|
|||
|
CALLA ADJSTWTL
|
|||
|
MOVE A9,A0
|
|||
|
DEC A0
|
|||
|
SLL 5,A0
|
|||
|
ADD A13,A0
|
|||
|
RETS
|
|||
|
|
|||
|
LINE_UP1
|
|||
|
;RIGHT SIDE OF TANK
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(CH1R),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
SUBI 030000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
;DO HEAD
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(HD1L),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
; SUBI 000000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
;ADJUST LEFT SIDE TORSO
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(HD1R),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
SUBI 030000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
;ADJUST RGT TORSO
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(SM1),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
; SUBI 000000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
;ADJUST LEFT SIDE ARM
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(EY1),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
; SUBI 000000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
RETS
|
|||
|
LINE_UP2
|
|||
|
;RIGHT SIDE OF TANK
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(CH2R),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
SUBI 030000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
;DO HEAD
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(HD2L),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
; SUBI 000000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
;ADJUST LEFT SIDE TORSO
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(HD2R),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
SUBI 030000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
;ADJUST RGT TORSO
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(SM2),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
; SUBI 000000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
;ADJUST LEFT SIDE ARM
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE *A13(EY2),A0,L
|
|||
|
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
|||
|
; SUBI 000000H,A3 ;SUB 1 FROM X
|
|||
|
CALLA GANISAG
|
|||
|
RETS
|
|||
|
|
|||
|
ON1 .LONG 0,T1,T2,T3,T4,T5,T6
|
|||
|
ON1B .LONG 0,T1E,T2,T3,T4,T5,T6,TE1,TE2,TE3,TE4,TE5
|
|||
|
ON2 .LONG 0,T1A,T2A,T7,T8,T5,T6
|
|||
|
ON2B .LONG 0,T1A,T2E,T7,T8,T5,T6,TE1A,TE2A,TE3A,TE4A,TE5A
|
|||
|
|
|||
|
HEDS1
|
|||
|
.LONG 0,0,HED1
|
|||
|
.WORD 06FFFH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
|
|||
|
TE1 ;PLYR 1 TRS
|
|||
|
.LONG 250000H,130000H,CNTST
|
|||
|
.WORD 06FFDH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE2 ;PLYR 1 TRS
|
|||
|
.LONG 4A0000H,220000H,NMBR1
|
|||
|
.WORD 06FFDH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE3 ;PLYR 1 TRS
|
|||
|
.LONG 300000H,550000H,LTTRBR
|
|||
|
.WORD 06FFDH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE4 ;PLYR 1 TRS
|
|||
|
.LONG 700000H,5A0000H,BIGGAL
|
|||
|
.WORD 06FFEH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE5 ;PLYR 1 TRS
|
|||
|
.LONG 700000H,5A0000H,PLYRHND
|
|||
|
.WORD 06FFFH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE1A ;PLYR 1 TRS
|
|||
|
.LONG 250000H+0F00000H,130000H,CNTST
|
|||
|
.WORD 06FFDH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE2A ;PLYR 1 TRS
|
|||
|
.LONG 480000H+0F00000H,220000H,NMBR2
|
|||
|
.WORD 06FFDH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE3A ;PLYR 1 TRS
|
|||
|
.LONG 300000H+0F00000H,550000H,LTTRBR
|
|||
|
.WORD 06FFDH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE4A ;PLYR 1 TRS
|
|||
|
.LONG 11A0000H,5A0000H,BIGGAL
|
|||
|
.WORD 06FFEH,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
TE5A ;PLYR 1 TRS
|
|||
|
.LONG 11A0000H,5A0000H,PLYRHND
|
|||
|
.WORD 06FFFH,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
|
|||
|
T1 ;PLYR 1 TRS
|
|||
|
.LONG 0,0,BPLYRTRS
|
|||
|
.WORD 07FCDH,DMAWNZ,CLSNEUT|TYPNEUT|0DH
|
|||
|
.LONG 0,0
|
|||
|
T1E ;PLYR 1 TRS ENTRY SCREEN
|
|||
|
.LONG 0,0,ARMLESS
|
|||
|
.WORD 06FFDH,DMAWNZ,CLSNEUT|TYPNEUT|0DH
|
|||
|
.LONG 0,0
|
|||
|
T2E ;PLYR 1 TRS ENTRY SCREEN
|
|||
|
.LONG 0,0,ARMLESS
|
|||
|
.WORD 06FFDH,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T2 ;PLYR 1
|
|||
|
.LONG 0,0,BPLYRTRS
|
|||
|
.WORD 07FCDH,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|0EH
|
|||
|
.LONG 0,0
|
|||
|
T1A ;PLYR 2 TRS
|
|||
|
.LONG 0,0,BPLYRTRS
|
|||
|
.WORD 07FCDH,DMAWNZ,CLSNEUT|TYPNEUT|0FH
|
|||
|
.LONG 0,0
|
|||
|
T2A ;PLYR 2
|
|||
|
.LONG 0,0,BPLYRTRS
|
|||
|
.WORD 07FCDH,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|010H
|
|||
|
.LONG 0,0
|
|||
|
T3 ;ARM LEFT
|
|||
|
.LONG 0,0,BPLYR1HD
|
|||
|
.WORD 06FFEH,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK
|
|||
|
.LONG 0,0
|
|||
|
T4 ;ARM LEFT
|
|||
|
.LONG 0,0,BPLYR1HD
|
|||
|
.WORD 06FFEH,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|SUBCHNK
|
|||
|
.LONG 0,0
|
|||
|
T5 ;TORSO RGT
|
|||
|
.LONG 0,0,BPLYRMTH1
|
|||
|
.WORD 06FFEH,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK
|
|||
|
.LONG 0,0
|
|||
|
T6 ;TORSO LEFT
|
|||
|
.LONG 0,0,BPLYRI3
|
|||
|
.WORD 06FFEH,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK
|
|||
|
.LONG 0,0
|
|||
|
|
|||
|
T7 ;ARM LEFT
|
|||
|
.LONG 0,0,BPLYR2HD
|
|||
|
.WORD 06FFEH,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK
|
|||
|
.LONG 0,0
|
|||
|
T8 ;ARM LEFT
|
|||
|
.LONG 0,0,BPLYR2HD
|
|||
|
.WORD 06FFEH,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|SUBCHNK
|
|||
|
.LONG 0,0
|
|||
|
|
|||
|
|
|||
|
DRS:
|
|||
|
;OPEN CORRECT DOOR ACCORDING TO ARROW NUMBER
|
|||
|
SLEEP 3 ;NO SLEEP!
|
|||
|
MOVE @FROMDR,A1,W
|
|||
|
SLL 5,A1
|
|||
|
ADDI ARWTBL,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
JUMP A1
|
|||
|
;
|
|||
|
ARWTBL:
|
|||
|
.LONG TVWAVE,LDOOR,RDOOR,TDOOR,BDOOR
|
|||
|
TVWAVE:
|
|||
|
SLEEP 01H
|
|||
|
MOVI 10,A1
|
|||
|
MOVK 2,A0
|
|||
|
CALLA SET_GATE_2
|
|||
|
SLEEP 045H
|
|||
|
MOVI 10,A1
|
|||
|
MOVK 1,A0
|
|||
|
CALLA SET_GATE_2
|
|||
|
DIE
|
|||
|
BDOOR:
|
|||
|
MOVK 4,A0
|
|||
|
CALLA SET_GATE_2 ;DO SOUND FOR BOTTOM DOOR
|
|||
|
SLEEP 020H
|
|||
|
MOVI 10,A1
|
|||
|
MOVK 3,A0
|
|||
|
CALLA SET_GATE_2
|
|||
|
DIE
|
|||
|
RDOOR:
|
|||
|
MOVI 13,A1 ;9
|
|||
|
MOVB A1,@KP_RS
|
|||
|
SLEEP 045H
|
|||
|
MOVI 7,A1
|
|||
|
MOVK 1,A0
|
|||
|
CALLA SET_GATE_2
|
|||
|
DIE
|
|||
|
LDOOR:
|
|||
|
MOVI 13,A1 ;9
|
|||
|
MOVB A1,@KP_LS
|
|||
|
SLEEP 036H
|
|||
|
MOVI 7,A1
|
|||
|
MOVK 2,A0
|
|||
|
CALLA SET_GATE_2
|
|||
|
DIE
|
|||
|
TDOOR:
|
|||
|
MOVI 13,A1 ;9
|
|||
|
MOVB A1,@KP_TS
|
|||
|
DIE
|
|||
|
;
|
|||
|
;UPDATE WALL BOUNDARIES
|
|||
|
;
|
|||
|
DO_BND:
|
|||
|
;A7=PLYR 1 OR PROCESS BLOCK
|
|||
|
MMTM SP,A0,A1,A2,A3,A4,A5,A6
|
|||
|
;THESE MMTM'S NEEDED?
|
|||
|
MOVB *A7(BNDTYP),A1
|
|||
|
MOVB *A7(PRVBND),A0
|
|||
|
CMP A0,A1
|
|||
|
JRGE SETBND
|
|||
|
MMFM SP,A0,A1,A2,A3,A4,A5,A6
|
|||
|
RETS
|
|||
|
SETBND:
|
|||
|
MOVB A1,*A7(PRVBND)
|
|||
|
MOVI BNDTBL,A0
|
|||
|
SLL 5,A1
|
|||
|
ADD A1,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
MOVE *A0+,A1,L
|
|||
|
MOVE *A0+,A2,L
|
|||
|
MOVE *A0+,A3,L
|
|||
|
MOVE *A0+,A4,L
|
|||
|
MOVE @WORLDTL,A5,L
|
|||
|
CLR A6
|
|||
|
MOVY A5,A6
|
|||
|
ADD A1,A6
|
|||
|
MOVE A6,*A7(UPBND),L
|
|||
|
;
|
|||
|
MOVY A5,A6
|
|||
|
ADD A2,A6
|
|||
|
MOVE A6,*A7(DNBND),L
|
|||
|
;
|
|||
|
MOVX A5,A6
|
|||
|
SLL 16,A6
|
|||
|
ADD A3,A6
|
|||
|
MOVE A6,*A7(LFTBND),L
|
|||
|
;
|
|||
|
MOVX A5,A6
|
|||
|
SLL 16,A6
|
|||
|
ADD A4,A6
|
|||
|
MOVE A6,*A7(RGTBND),L
|
|||
|
MMFM SP,A0,A1,A2,A3,A4,A5,A6
|
|||
|
RETS
|
|||
|
;
|
|||
|
BNDTBL:
|
|||
|
.LONG NORMBND,POW2BND,POW1BND
|
|||
|
;
|
|||
|
NORMBND: ;UP,DN,LEFT,RIGHT
|
|||
|
.LONG [>2C,0],[>F3-4,0],[>25,0],[>162,0]
|
|||
|
POW2BND:
|
|||
|
.LONG [>2C+13,0],[>F3-4,0],[>25+15,0],[>162-14,0]
|
|||
|
POW1BND:
|
|||
|
.LONG [>2C+35,0],[>F3-20,0],[>25+35,0],[>162-32,0]
|
|||
|
|
|||
|
;
|
|||
|
; SCROLL_WAVE - SCROLL SCREEN TO WAVE SPECIFIED
|
|||
|
; PARAMS:
|
|||
|
; WAVEYX = WAVE OFFSET TO SCROLL TO FROM WITHIN CIRCUIT
|
|||
|
; RETURNS:
|
|||
|
; NOTHING AT ALL!
|
|||
|
; MUST BE CALLED AS JSRP!
|
|||
|
;
|
|||
|
SCROLL_WAVE:
|
|||
|
;DO OVERHEAD IMAGES EXIST? IF SO, GIVE EACH IMAGE A NEGATIVE X VEL
|
|||
|
|
|||
|
; SLEEP 1
|
|||
|
D33 MOVI CLSNEUT|TYPNEUT|SUBUP,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
JRZ D34
|
|||
|
MOVI >FFFF6000,A1
|
|||
|
MOVE A1,*A0(OXVEL),L
|
|||
|
MOVI CLSNEUT|TYPNEUT|SUBUP2,A1
|
|||
|
MOVE A1,*A0(OID),W
|
|||
|
JRUC D33
|
|||
|
|
|||
|
D34
|
|||
|
MOVI SCRLXSPD,A3 ;X VELOCITY OF SCROLL
|
|||
|
MOVI SCRLYSPD,A8 ;Y VELOCITY OF SCROLL
|
|||
|
MOVE @WORLDTLX,A6,L ;WORLD TOP X
|
|||
|
MOVE @WORLDTLY,A7,L ;WORLD TOP Y
|
|||
|
CLR A10
|
|||
|
MOVE @WAVEYX,A0,L ;WAVE TL OFFSET
|
|||
|
MOVY A0,A10 ;Y VALUE TO SCROLL TO IN A10
|
|||
|
MOVX A0,A9 ;X VALUE TO SCROLL TO IN A9
|
|||
|
SLL 16,A9 ;MAKE A 32 BIT VALUE
|
|||
|
CLR A11 ;CLEAR REVERSE INDICATION FLAG
|
|||
|
CMP A9,A6 ;FIRST CHECK X DIRECTION FOR SCROLL
|
|||
|
JRLT RGTLFT
|
|||
|
JREQ CHKY ;NO WHERE TO SCROLL NOW CHECK Y
|
|||
|
NEG A3 ;NEGATIVE SCROLL DIRECTION
|
|||
|
MOVK 1,A11 ;INDICATE REVERSE SCROLL
|
|||
|
RGTLFT:
|
|||
|
MOVE A3,@SCROLLX,L ;SET SCROLL X
|
|||
|
|
|||
|
SCRLXLUP:
|
|||
|
CALLA BTOF
|
|||
|
MOVE @WORLDTLX,A6,L ;WORLD TOP X
|
|||
|
MOVE A11,A11 ;FIND OUT WHICH SCROLL DIRECTION
|
|||
|
JRZ NORVRSEX
|
|||
|
SUBI SCRLXSPD,A6 ;CHECK FOR OVERRUN WRLDCOOR-PIX VEL
|
|||
|
CMP A9,A6
|
|||
|
JRLE STOPX ;BR = SCROLL MATCH EXIT!
|
|||
|
SLOOP 1,SCRLXLUP
|
|||
|
NORVRSEX:
|
|||
|
ADDI SCRLXSPD,A6 ;CHECK FOR OVERRUN WRLDCOOR+PIX VEL
|
|||
|
CMP A9,A6
|
|||
|
JRGE STOPX ;BR = SCROLL MATCH EXIT!
|
|||
|
SLOOP 1,SCRLXLUP
|
|||
|
STOPX: ;NOW DO Y CHECK
|
|||
|
MOVE A9,@WORLDTLX,L ;SET EXACT PIXEL TO STOP AT
|
|||
|
CLR A0
|
|||
|
MOVE A0,@SCROLLX,L
|
|||
|
CHKY:
|
|||
|
CLR A11 ;CLEAR SCROLL REVERSE FLAG
|
|||
|
MOVE @WORLDTLY,A7,L ;WORLD TOP Y
|
|||
|
CMP A10,A7 ;FIRST CHECK Y DIRECTION FOR SCROLL
|
|||
|
JRLT DNUP
|
|||
|
JREQ SCRLYLUP
|
|||
|
NEG A8
|
|||
|
MOVK 1,A11 ;INDICATE REVERSE SCROLL
|
|||
|
DNUP:
|
|||
|
MOVE A8,@SCROLLY,L ;SET SCROLL Y
|
|||
|
|
|||
|
SCRLYLUP:
|
|||
|
CALLA BTOF
|
|||
|
MOVE @WORLDTLY,A7,L ;WORLD TOP Y
|
|||
|
MOVE A11,A11 ;FIND OUT WHICH SCROLL DIRECTION
|
|||
|
JRZ NORVRSEY
|
|||
|
SUBI SCRLYSPD,A7 ;CHECK FOR OVERRUN WRLDCOOR-PIX VEL
|
|||
|
CMP A10,A7
|
|||
|
JRLE STOPY
|
|||
|
SLOOP 1,SCRLYLUP
|
|||
|
|
|||
|
NORVRSEY:
|
|||
|
ADDI SCRLYSPD,A7 ;CHECK FOR OVERRUN WRLDCOOR+PIX VEL
|
|||
|
CMP A10,A7
|
|||
|
JRGE STOPY
|
|||
|
SLOOP 1,SCRLYLUP
|
|||
|
STOPY:
|
|||
|
MOVE A10,@WORLDTLY,L ;SET EXACT PIXEL TO STOP AT
|
|||
|
CLR A0
|
|||
|
MOVE A0,@SCROLLY,L
|
|||
|
|
|||
|
; SLEEP 1
|
|||
|
D35 MOVI CLSNEUT|TYPNEUT|SUBUP2,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
JRZ D36
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A0(OXVEL),L
|
|||
|
MOVI CLSNEUT|TYPNEUT|SUBUP,A1
|
|||
|
MOVE A1,*A0(OID),W
|
|||
|
JRUC D35
|
|||
|
D36
|
|||
|
RETP
|
|||
|
UPOFF
|
|||
|
SLEEP 1*60
|
|||
|
;DO OVERHEAD IMAGES EXIST? IF SO, GIVE EACH IMAGE A NEGATIVE X VEL
|
|||
|
D37 MOVI CLSNEUT|TYPNEUT|SUBUP,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
JRZ D38
|
|||
|
MOVI 08000H,A1
|
|||
|
MOVE A1,*A0(OYVEL),L
|
|||
|
MOVI CLSNEUT|TYPNEUT|SUBUP2,A1
|
|||
|
MOVE A1,*A0(OID),W
|
|||
|
JRUC D37
|
|||
|
D38 MOVI 54,A9
|
|||
|
D38A
|
|||
|
SLEEP 10
|
|||
|
MOVE @HALT,A0
|
|||
|
JRNZ D38A
|
|||
|
DSJS A9,D38A
|
|||
|
;9*60
|
|||
|
;DELETE ALL OVERHEAD OBJECTS
|
|||
|
MOVI CLSNEUT|TYPNEUT|SUBUP2,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
SLEEP 3
|
|||
|
;TURN OFF LGHTFX PAL
|
|||
|
; MOVI DLST2,A1
|
|||
|
; CALLA UNGET
|
|||
|
CALLA CLNPAL
|
|||
|
DIE
|
|||
|
;
|
|||
|
CRCTTAB:
|
|||
|
.LONG CRCT1YX,CRCT2YX,CRCT3YX
|
|||
|
;
|
|||
|
;WAVE Y:X SCROLL VALUES FOR CIRCUITS 1~3
|
|||
|
;
|
|||
|
CRCT1YX:
|
|||
|
.LONG 0,[>152,>1D8],[>152,>3B0],[5,>3B0],[5,>588]
|
|||
|
.LONG [5,>760],[>29E,>3B0],[>29E,>588],[>152,>588]
|
|||
|
.LONG [>152,>760],[>152,>938],[>152,>B10]
|
|||
|
CRCT2YX:
|
|||
|
.LONG 0,[>29E,>1D8],[>29E,>3B0],[>29E,>588],[>152,>588]
|
|||
|
.LONG [>152,>760],[>29E,>760],[>29E,>938],[>152,>1D8]
|
|||
|
.LONG [>152,>3B0],0,[>5,>588],[>5,>760]
|
|||
|
.LONG [>3EA,>1D8],[>3EA,>3B0],[>3EA,>588] ;13-
|
|||
|
.LONG [>3EA,>760],[>536,>588],[>536,>760],[>29E,>B10]
|
|||
|
CRCT3YX:
|
|||
|
.LONG 0,[>29E,>1D8],[>29E,>3B0],[>29E,>588],[>152,>588]
|
|||
|
.LONG [>152,>760],[>29E,>760],[>29E,>938],[>152,>1D8]
|
|||
|
.LONG [>152,>3B0],0,[>5,>588],[>5,>760]
|
|||
|
.LONG [>3EA,>1D8],[>3EA,>3B0],[>3EA,>588] ;13-
|
|||
|
.LONG [>3EA,>760],[>536,>588],[>536,>760],[>29E,>B10]
|
|||
|
.LONG [>29E,>CE9],[>29E,>EC2],[>29E,>EC2+>1D8]
|
|||
|
;
|
|||
|
;LIVECNT - UPDATE LIVES LEFT COUNT IN STATUS BOX
|
|||
|
; NO PARAMS:
|
|||
|
;
|
|||
|
LIVECNT:
|
|||
|
;KILL BOTH IMAGES THEN REDRAW NEW VALUES
|
|||
|
;A11=P1DATA OR P2DATA
|
|||
|
CLR A1
|
|||
|
MOVE A1,@BSCORE
|
|||
|
NOT A1
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBP1LVS,A0 ;P1LIVEOID,A0
|
|||
|
CMPI P1DATA,A11
|
|||
|
JRZ LC1
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBP2LVS,A0 ;P2LIVEOID,A0
|
|||
|
CALLA KILOBJ
|
|||
|
CALLA DRW2
|
|||
|
RETS
|
|||
|
|
|||
|
LC1 CALLA KILOBJ
|
|||
|
CALLA DRW1
|
|||
|
RETS
|
|||
|
|
|||
|
;DRAWLIVES - PUT UP PLAYERS LIVES COUNT IN STATUS BOX
|
|||
|
;
|
|||
|
; PARAMS:
|
|||
|
; BSCORE SET = TEXT OFFSET ADDED, WORLD COORDINATES IGNORED
|
|||
|
; BSCORE CLR = TEXT OFFSET IGNORED, SET TO WORLD COORDINATES
|
|||
|
;
|
|||
|
;PUT UP PLAYERS LIVES LEFT IN P BOX
|
|||
|
DRAWLIVES:
|
|||
|
CALLA DRW1
|
|||
|
CALLA DRW2
|
|||
|
RETS
|
|||
|
DRW2
|
|||
|
;NOW, DO PLAYER 2!
|
|||
|
F5T MOVB @CNTDIG2,A0
|
|||
|
JRNZ FT6
|
|||
|
CLR A0
|
|||
|
MOVI P2DATA,A5
|
|||
|
MOVE @WAVEYX,A1,L
|
|||
|
MOVE @BSCORE,A2
|
|||
|
JRNZ NXTSCRN2
|
|||
|
CLR A1
|
|||
|
NXTSCRN2:
|
|||
|
MOVX A1,A0
|
|||
|
SLL 16,A0
|
|||
|
SRL 16,A1
|
|||
|
SLL 16,A1
|
|||
|
ADDI [01CH,0],A1 ;Y POS.
|
|||
|
ADDI [169H,0],A0 ;X POS.
|
|||
|
MOVE *A5(PLIVES),A2,W ;GET NUMBER OF PLAYERS LIVES
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBP2LVS,A5
|
|||
|
CALLA DO_LIVES
|
|||
|
MOVE A8,@P2LVS,L
|
|||
|
FT6 RETS
|
|||
|
|
|||
|
DRW1
|
|||
|
MOVI P1DATA,A5
|
|||
|
MOVE @WAVEYX,A1,L
|
|||
|
MOVE @BSCORE,A2
|
|||
|
JRNZ NXTSCRN1
|
|||
|
CLR A1
|
|||
|
NXTSCRN1
|
|||
|
MOVB @CNTDIG1,A0
|
|||
|
JRNZ F5T
|
|||
|
MOVX A1,A0
|
|||
|
SLL 16,A0
|
|||
|
SRL 16,A1
|
|||
|
SLL 16,A1
|
|||
|
ADDI [01CH,0],A1 ;Y POS.
|
|||
|
ADDI [01EH,0],A0 ;X POS.
|
|||
|
MOVE *A5(PLIVES),A2,W ;GET NUMBER OF PLAYERS LIVES
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBP1LVS,A5
|
|||
|
CALLA DO_LIVES ;PRINT THE PLAYERS LIVES LEFT
|
|||
|
MOVE A8,@P1LVS,L
|
|||
|
RETS
|
|||
|
;
|
|||
|
DO_LIVES:
|
|||
|
CLR A6
|
|||
|
CLR A7 ;NOT X,Y VELOCITIES
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4 ;CONSTANT COLOR:PALLETTE
|
|||
|
MOVI 300,A3 ;SET Z POSITION OF OBJECT
|
|||
|
CMPI 10,A2 ;MAX DRAW DIGIT IS A 9
|
|||
|
JRLT Y
|
|||
|
MOVK 9,A2
|
|||
|
Y SLL 7,A2 ;*128 (NEXT HEADER PLEASE!!)
|
|||
|
MOVI AFONT0,A10 ;BASE ADDRESS OF NUMBERS HEADER
|
|||
|
ADD A10,A2 ;COMPUTE CORRECT HEADER
|
|||
|
MOVE @BSCORE,A9
|
|||
|
JRNZ NXTSCRN3
|
|||
|
;PUT ON DIFFERENT LIST
|
|||
|
CALLA BEGINOBJ ;DRAW OBJECT, WORLD ADJUSTED
|
|||
|
RETS
|
|||
|
NXTSCRN3:
|
|||
|
CALLA BEGINOBJ2 ;DRAW OBJECT, WORLD UNADJUSTED
|
|||
|
RETS
|
|||
|
CLR_ALL:
|
|||
|
CLR A0
|
|||
|
MOVE A0,@CIRCUIT
|
|||
|
MOVE A0,@HULKTYP
|
|||
|
MOVE A0,@FACEON
|
|||
|
MOVB A0,@TOID_ON
|
|||
|
CALLA KILBGND ;KILL ALL BACKGROUND
|
|||
|
CLR A0 ;KILL SCORE DISPLAY
|
|||
|
MOVE A0,@SCORE_FLAG,W
|
|||
|
MOVE A0,@IRQSKYE,W
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILALL
|
|||
|
MOVI PLY1PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI PLY2PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI LORDPID,A0
|
|||
|
CALLA KILALL
|
|||
|
; MOVI PCPID,A0
|
|||
|
; CALLA KILALL
|
|||
|
MOVI FATPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI TNKPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI HULKPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI COLPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI DRLPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI DRTOPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI DRRPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI ORBPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI WLMNPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI RBTAPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI TNKPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI SCOREPID,A0 ;SCORE PROCESSES
|
|||
|
CALLA KILALL
|
|||
|
MOVI P1PID,A0 ;PLAYER 1 SUBORDINATES
|
|||
|
CALLA KILALL
|
|||
|
MOVI P2PID,A0 ;PLAYER 2 SUBORDINATES
|
|||
|
CALLA KILALL
|
|||
|
MOVI CYCPID,A0 ;
|
|||
|
CALLA KILALL
|
|||
|
MOVI BONPID,A0 ;
|
|||
|
CALLA KILALL
|
|||
|
MOVI BON1PID,A0 ;
|
|||
|
CALLA KILALL
|
|||
|
MOVI TNKPID,A0 ;
|
|||
|
CALLA KILALL
|
|||
|
MOVI DUM_ID,A0 ;MUTOID
|
|||
|
CALLA KILALL
|
|||
|
MOVI TYPFACE,A0 ;FACE
|
|||
|
CALLA KILALL
|
|||
|
MOVI GALPID,A0 ;FACE
|
|||
|
CALLA KILALL
|
|||
|
MOVI TYPGAL,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI TYPGAL+SUBHEAD,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI TYPGAL+SUBBALL,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI RNGPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI BULPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI LZRPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI COBPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI COBPIDA,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI COBPIDM,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI COBPIDS,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI LSRPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI CHNSWPID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI MCYCPID,A0
|
|||
|
CALLA KILALL ;KILL LAND MINE CYCLE
|
|||
|
MOVI FIXIT,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI B1PID,A0
|
|||
|
CALLA KILALL
|
|||
|
CLR A0 ;????
|
|||
|
CALLA KILALL
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBWNDW,A0
|
|||
|
CALLA KILBUT ;KILL EVERYTHING BUT WHAT IS IN A0
|
|||
|
RETS
|
|||
|
|
|||
|
|
|||
|
KILBUT:
|
|||
|
;KILL EVERYTHING EXCEPT WHAT IS IN A0
|
|||
|
MOVI OBJLST,A2,L
|
|||
|
KILOBP:
|
|||
|
MOVE A2,A3 ;SAVE PREVIOUS
|
|||
|
MOVE *A2,A2,L ;GET NEXT
|
|||
|
JREQ KILX ;ALL DONE
|
|||
|
MOVE *A2(OID),A4
|
|||
|
CMP A0,A4 ;MATCH?
|
|||
|
JREQ KILOBP ;NO
|
|||
|
|
|||
|
MOVE *A2,*A3,L ;LINK AROUND IN ACTIVE LIST
|
|||
|
MOVE @OFREE,A5,L ;LINK INTO FREE LIST AT START
|
|||
|
MOVE A5,*A2,L
|
|||
|
MOVE A2,@OFREE,L ;POINT FREE TO CELL
|
|||
|
MOVE A3,A2
|
|||
|
JRUC KILOBP ;KILL THE REST
|
|||
|
KILX:
|
|||
|
RETS
|
|||
|
WNDWON:
|
|||
|
MOVI [256,400],A8
|
|||
|
MOVI SCRNMID,A10
|
|||
|
JSRP OWINDOW
|
|||
|
MOVE A8,@OBJPTR,L
|
|||
|
RETP
|
|||
|
WNDWOFF:
|
|||
|
MOVE @OBJPTR,A8,L
|
|||
|
JSRP CWINDOW
|
|||
|
RETP
|
|||
|
;
|
|||
|
; BTOF - GET A ALL BACKGROUND OBJECTS ON SCREEN THAT HAVE Z
|
|||
|
; SET TO "ZID" OR HIGHER AND TRANSFER TO OBJECT LIST
|
|||
|
; NOTE: BACKGROUND MUST BE IN PLACE BEFORE CALLING!
|
|||
|
;
|
|||
|
BTOF:
|
|||
|
MOVE A8,@TMPA8,L
|
|||
|
MOVE A9,@TMPA9,L
|
|||
|
MOVE A10,@TMPA10,L
|
|||
|
MOVE A11,@TMPA11,L
|
|||
|
CALLA BGND_UD1 ;UPDATE BACKGROUND LIST
|
|||
|
CALLA CLRLIST
|
|||
|
MOVE @BAKLST,A8,L ;LOOK THROUGH THE BACKGROUND
|
|||
|
JREQ GFAIL ;DOES NOT EXIST! INDICATE ERROR
|
|||
|
MOVI BOBJECTS,A9 ;BASE TABLE OF BACKGROUND OBJ. SAVES
|
|||
|
GBOBJLUP:
|
|||
|
MOVE *A8(OZPOS),A5,W ;CHECK BACKGROUND Z
|
|||
|
CMPI ZID,A5 ;A MATCH?
|
|||
|
JRLT GBOBJL ;NEXT OBJECT PLEASE!
|
|||
|
CALLA GOTBOBJ ;BAK OBJECT FOUND, NOW TRANSFER
|
|||
|
MOVE A8,*A9+,L ;ADD TO BACKGROUND SAVE LIST
|
|||
|
GBOBJL:
|
|||
|
MOVE *A8(OLINK),A8,L ;LET'S SEARCH FOR ANOTHER
|
|||
|
JRNE GBOBJLUP
|
|||
|
CALLA PUTOBJ ;PLACE THEM ON OBJECT LIST
|
|||
|
GFAIL:
|
|||
|
MOVE @TMPA8,A8,L
|
|||
|
MOVE @TMPA9,A9,L
|
|||
|
MOVE @TMPA10,A10,L
|
|||
|
MOVE @TMPA11,A11,L
|
|||
|
RETS
|
|||
|
;
|
|||
|
;NOW TAKE BGND OBJECT AND LINK INTO OBJECT LIST, WHILST LINKING IT OFF THE
|
|||
|
;BACKGROUND LIST.
|
|||
|
;
|
|||
|
GOTBOBJ:
|
|||
|
MOVE @BAKLST,A4,L
|
|||
|
DELETE:
|
|||
|
MOVE A4,A2 ; PTR TO PREVIOUS IN A2
|
|||
|
MOVE *A2,A4,L ; PTR TO NEXT IN A4
|
|||
|
JRNZ DEL_LUP
|
|||
|
JRUC GFAIL
|
|||
|
DEL_LUP:
|
|||
|
CMP A4,A8
|
|||
|
JRNE DELETE
|
|||
|
|
|||
|
MOVE *A8,*A2,L ; PUT NEXT LINK IN PREV BLOCK
|
|||
|
RETS
|
|||
|
|
|||
|
PUTOBJ:
|
|||
|
;PUT THESE OBJECTS ON APPROPRIATE LIST
|
|||
|
MOVI BOBJECTS,A9
|
|||
|
ALLOBJ:
|
|||
|
MOVE *A9+,A0,L
|
|||
|
JRZ NOMORE
|
|||
|
MOVI CLSNEUT|TYPNEUT|SUBNEW,A1 ;TRANSFERED OBJECTS
|
|||
|
MOVE A1,*A0(OID),W ;TAG NEW FOREGROUND OBJECT ID
|
|||
|
MOVE *A0(OFLAGS),A1,W
|
|||
|
ORI M_NOCOLL,A1
|
|||
|
MOVE A1,*A0(OFLAGS),W
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A0(OXVEL),L
|
|||
|
MOVE A1,*A0(OYVEL),L
|
|||
|
MOVI 128,A6
|
|||
|
MOVE *A0(OZPOS),A5,W
|
|||
|
;CK FOR FACES
|
|||
|
CMPI LFACE,A5
|
|||
|
JRNZ CE1
|
|||
|
;LFACE FOUND
|
|||
|
MOVE A0,@LFACEP,L
|
|||
|
MOVE *A0(OYPOS),A1
|
|||
|
MOVE A1,@LFCY
|
|||
|
CE1 CMPI RFACE,A5
|
|||
|
JRNZ CE2
|
|||
|
;RFACE FOUND
|
|||
|
MOVE A0,@RFACEP,L
|
|||
|
MOVE *A0(OYPOS),A1
|
|||
|
MOVE A1,@RFCY
|
|||
|
CE2
|
|||
|
;CK FOR METERS
|
|||
|
CMPI P1METER,A5
|
|||
|
JRNZ C1A
|
|||
|
;P1 METER FOUND
|
|||
|
MOVE A0,@METERP1,L
|
|||
|
MOVE *A0(OYPOS),A1
|
|||
|
MOVE A1,@P1MTRY
|
|||
|
MOVI -100,A6
|
|||
|
MMTM SP,A0,A1,A2,A3,A4,A5,A6,A7
|
|||
|
CREATE 0,FIXMETERS
|
|||
|
MMFM SP,A0,A1,A2,A3,A4,A5,A6,A7
|
|||
|
C1A CMPI P1METER+1,A5
|
|||
|
JRNZ C1B
|
|||
|
;P2 METER FOUND
|
|||
|
MOVE A0,@METERP2,L
|
|||
|
MOVE *A0(OYPOS),A1
|
|||
|
MOVE A1,@P2MTRY
|
|||
|
MOVI -100,A6
|
|||
|
MMTM SP,A0,A1,A2,A3,A4,A5,A6,A7
|
|||
|
CREATE 0,FIXMETERS2
|
|||
|
MMFM SP,A0,A1,A2,A3,A4,A5,A6,A7
|
|||
|
C1B CMPI TLGATE,A5 ;TOP LEFT GATE
|
|||
|
JRNZ CHKTR
|
|||
|
MOVE A0,@KEEP_TOPL_GATE,L ;SAVE OBJECT POINTER
|
|||
|
MOVI 10,A6
|
|||
|
CHKTR:
|
|||
|
CMPI TRGATE,A5 ;TOP RIGHT GATE
|
|||
|
JRNZ CHKTL
|
|||
|
MOVE A0,@KEEP_TOPR_GATE,L ;SAVE OBJECT POINTER
|
|||
|
MOVI 10,A6
|
|||
|
CHKTL:
|
|||
|
CMPI LGATE,A5 ;LEFT GATE
|
|||
|
JRNZ CHKL
|
|||
|
MOVE A0,@KEEP_LFT_GATE,L ;SAVE OBJECT POINTER
|
|||
|
MOVI 10,A6
|
|||
|
CHKL:
|
|||
|
CMPI RGATE,A5 ;RIGHT GATE
|
|||
|
JRNZ NOGATE
|
|||
|
MOVE A0,@KEEP_RGT_GATE,L ;SAVE OBJECT POINTER
|
|||
|
MOVI 10,A6
|
|||
|
NOGATE:
|
|||
|
;CK FOR GAL1
|
|||
|
CMPI ZGAL1,A5
|
|||
|
JRNZ CF1
|
|||
|
;GAL LEFT FOUND
|
|||
|
MOVE A0,@GAL1P,L
|
|||
|
MOVI 2BH,A6
|
|||
|
CF1 CMPI ZGAL1+1,A5
|
|||
|
JRNZ CF2
|
|||
|
;GAL RGT FOUN
|
|||
|
MOVE A0,@GAL2P,L
|
|||
|
MOVI 2BH,A6
|
|||
|
CF2 CMPI MCH,A5
|
|||
|
JRNZ CF3
|
|||
|
;MC FOUND
|
|||
|
MOVE A0,@MCPTR,L
|
|||
|
MOVI 111,A6
|
|||
|
CF3
|
|||
|
ADD A6,A5
|
|||
|
MOVE A5,*A0(OZPOS),W ;AND NEW Z POSITION
|
|||
|
CALLA INSOBJ ;INSERT INTO OBJECT LIST
|
|||
|
JRUC ALLOBJ
|
|||
|
NOMORE:
|
|||
|
RETS
|
|||
|
DELPALS:
|
|||
|
;DELETE FOREGROUND AND BACKGROUND OBJECTS THAT HAVE WRONG PALETTE!
|
|||
|
; MOVI SETCOLS,A0
|
|||
|
; CALLA FINDPAL
|
|||
|
; JRZ NOM
|
|||
|
;IS AROUND
|
|||
|
; MOVE A0,A10
|
|||
|
; CALLA DELP
|
|||
|
;NOM
|
|||
|
MOVI SETCOL,A0
|
|||
|
CALLA FINDPAL
|
|||
|
JRZ NO1
|
|||
|
;IS AROUND
|
|||
|
MOVE A0,A10
|
|||
|
CALLA DELP
|
|||
|
NO1
|
|||
|
; MOVI BLCH1A,A0
|
|||
|
; CALLA FINDPAL
|
|||
|
; JRZ NO2
|
|||
|
;IS AROUND
|
|||
|
; MOVE A0,A10
|
|||
|
; CALLA DELP
|
|||
|
;NO2
|
|||
|
MOVI BLCHR2,A0
|
|||
|
CALLA FINDPAL
|
|||
|
JRZ NO3
|
|||
|
;IS AROUND
|
|||
|
MOVE A0,A10
|
|||
|
CALLA DELP
|
|||
|
NO3
|
|||
|
RETS
|
|||
|
|
|||
|
DELP
|
|||
|
MOVI BOBJECTS,A9
|
|||
|
MOVE @OBJLST,A8,L ;LOOK THROUGH THE FGNDLIST
|
|||
|
JREQ ZFAIL ;DOES NOT EXIST! INDICATE ERROR
|
|||
|
ZHKFOBJ:
|
|||
|
MOVE *A8(OPAL),A0,W
|
|||
|
ANDI 0FFFFH,A0
|
|||
|
CMP A10,A0
|
|||
|
JRNZ ZNSCRN ;OBJECT IS DEFINITELY ON SCREEN!
|
|||
|
MOVE A8,*A9+,L ;DUMP INTO RAM STACK
|
|||
|
ZNSCRN:
|
|||
|
MOVE *A8(OLINK),A8,L ;LET'S SEARCH FOR ANOTHER
|
|||
|
JRNE ZHKFOBJ
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A9,L ;TERMINATE TABLE
|
|||
|
CALLA OBJPULL
|
|||
|
ZFAIL:
|
|||
|
RETS
|
|||
|
|
|||
|
;DELETE FOREGROUND OBJECTS THAT ARE NOT WITHIN VISIBLE SCREEN AREA
|
|||
|
OBJSCRN:
|
|||
|
MOVI BOBJECTS,A9
|
|||
|
MOVE @OBJLST,A8,L ;LOOK THROUGH THE FGNDLIST
|
|||
|
JREQ OFAIL ;DOES NOT EXIST! INDICATE ERROR
|
|||
|
CHKFOBJ:
|
|||
|
CALLA SCRTST ;TEST FOR OBJECT ON SCREEN
|
|||
|
JREQ ONSCRN ;OBJECT IS DEFINITELY ON SCREEN!
|
|||
|
MOVE A8,*A9+,L ;DUMP INTO RAM STACK
|
|||
|
ONSCRN:
|
|||
|
MOVE *A8(OLINK),A8,L ;LET'S SEARCH FOR ANOTHER
|
|||
|
JRNE CHKFOBJ
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A9,L ;TERMINATE TABLE
|
|||
|
CALLA OBJPULL
|
|||
|
OFAIL:
|
|||
|
RETS
|
|||
|
OBJPULL:
|
|||
|
MOVI BOBJECTS,A9
|
|||
|
LUPOBJ:
|
|||
|
MOVE *A9+,A0,L
|
|||
|
JRZ NOLIST ;NO OBJECT LIST EXITS!
|
|||
|
MOVE *A0(OID),A1,W
|
|||
|
CMPI CLSPLYR|TYPPLYR|SUBPL_1,A1
|
|||
|
;AND OFF BITS TO CHECK FOR EITHER PLAYER! (DON'T CHECK SUB BITS)
|
|||
|
JRZ NODPLYR
|
|||
|
CMPI CLSPLYR|TYPPLYR|SUBPL_2,A1
|
|||
|
;AND OFF BITS TO CHECK FOR EITHER PLAYER! (DON'T CHECK SUB BITS)
|
|||
|
JRZ NODPLYR
|
|||
|
CMPI CLSPLYR|TYPLSR,A1
|
|||
|
;CHECK FOR LASER HELPER IMAGE
|
|||
|
JRZ NODPLYR
|
|||
|
CALLA DELOBJ ;DELETE OBJECT FROM LIST
|
|||
|
NODPLYR:
|
|||
|
JRUC LUPOBJ
|
|||
|
NOLIST:
|
|||
|
RETS
|
|||
|
|
|||
|
;
|
|||
|
;FTOB - REPLACE BACKGROUND OBJECTS ON SAVE LIST ONTO BACKGROUND LIST
|
|||
|
;
|
|||
|
MOVI BOBJECTS,A9 ;BASE TABLE OF OBJECTS TO RE-INSERT
|
|||
|
FTOBLUP:
|
|||
|
MOVE *A9+,A0,L
|
|||
|
JRZ INSDONE
|
|||
|
CALLA INSBOBJ
|
|||
|
JRUC FTOBLUP
|
|||
|
INSDONE:
|
|||
|
MOVI CLSNEUT|TYPNEUT|SUBNEW,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ ;NOW REMOVE THEM FROM OBJECT LIST
|
|||
|
RETS
|
|||
|
;INIT OBJECT RAM STACK
|
|||
|
CLRLIST:
|
|||
|
CLR A1
|
|||
|
MOVI BOBJECTS,A2
|
|||
|
MOVI BSIZE,A0 ;UHL TO CLEAR
|
|||
|
CLRLUP:
|
|||
|
MOVE A1,*A2+,L
|
|||
|
DSJS A0,CLRLUP
|
|||
|
RETS
|
|||
|
|
|||
|
;
|
|||
|
;
|
|||
|
; OWINDOW - OPEN A TEXT WINDOW, ON THE OBJECT LIST.
|
|||
|
;
|
|||
|
; A8 = WINDOW SIZE
|
|||
|
; A10 = CENTER POINT OF WINDOW (SCREEN RELATIVE)
|
|||
|
; RETURNS:
|
|||
|
; A8 = PTR WINDOW OBJECT
|
|||
|
; ZBIT SET = FAILURE TO CREATE
|
|||
|
; ZBIT CLR = WINDOW IS OPEN
|
|||
|
; NOTE: CALL WITH JSRP
|
|||
|
; TRASHES A9,A10 & A11
|
|||
|
;
|
|||
|
;
|
|||
|
OWINDOW:
|
|||
|
MOVI WINDINIT,A14
|
|||
|
CALLA GPALOBJ
|
|||
|
MOVE A8,A11
|
|||
|
MOVE A0,A8
|
|||
|
JRZ OWINDOWX ;BR = FAILED MISERBLY
|
|||
|
CALLA STFOBJ
|
|||
|
MOVE A10,*A8(OXPOS),W
|
|||
|
MOVY A10,A1
|
|||
|
SRL 16,A1
|
|||
|
MOVE A1,*A8(OYPOS),W
|
|||
|
MOVI >0,A1
|
|||
|
MOVE A1,*A8(OCONST),W
|
|||
|
CALLA ADJSTWTL ;ADJUST TO THE WORLD TOP LEFT
|
|||
|
CALLA INSOBJ
|
|||
|
; MOVI [>0101,0],A0 ;WINDOW IS BLACK IN COLOR
|
|||
|
; MOVE A0,*A8(OPAL),L
|
|||
|
MOVE *A8(OXPOS),A10,W
|
|||
|
MOVE *A8(OYPOS),A0,W
|
|||
|
SLL 16,A0
|
|||
|
MOVY A0,A10 ;GET NEW WORLD COORDS.
|
|||
|
MOVE A10,A0 ;STORE HERE
|
|||
|
MOVY A11,A1
|
|||
|
SRL 17,A1
|
|||
|
SLL 16,A1 ;DIVIDE Y BY 2
|
|||
|
SLL 16,A11
|
|||
|
SRL 17,A11 ;AND X
|
|||
|
MOVY A1,A11
|
|||
|
SUBXY A11,A10
|
|||
|
ADDXY A0,A11
|
|||
|
MOVI OWSPD,A0 ;WINDOW SPEED
|
|||
|
MOVB @DUMB,A1
|
|||
|
JREQ OA
|
|||
|
MOVI OWSPD2,A0 ;WINDOW SPEED
|
|||
|
OA JSRP OBJEXP32
|
|||
|
MOVE A8,A8
|
|||
|
OWINDOWX:
|
|||
|
RETP
|
|||
|
|
|||
|
*INIT TABLE FOR WINDOW
|
|||
|
WINDINIT
|
|||
|
.LONG 0,0,AFONT0
|
|||
|
.WORD 7FD0H,DMACAL,CLSNEUT|TYPTEXT|SUBWNDW
|
|||
|
.LONG 0,0
|
|||
|
;
|
|||
|
; CWINDOW - CLOSE A TEXT WINDOW, ON THE OBJECT LIST.
|
|||
|
; A8 = PTR TO WINDOW OBJECT
|
|||
|
; RETURNS:
|
|||
|
; WITH WINDOW OBJECT DELETED
|
|||
|
; NOTE: CALL WITH JSRP
|
|||
|
; TRASHES A9,A10 & A11
|
|||
|
;
|
|||
|
CWINDOW:
|
|||
|
MOVE *A8(OXPOS),A10,W
|
|||
|
MOVE *A8(OYPOS),A11,W
|
|||
|
SLL 16,A11
|
|||
|
MOVY A11,A10
|
|||
|
MOVE *A8(OSIZE),A11,L
|
|||
|
MOVY A11,A1
|
|||
|
SRL 17,A1
|
|||
|
SLL 16,A1
|
|||
|
SLL 16,A11
|
|||
|
SRL 17,A11
|
|||
|
MOVY A1,A11
|
|||
|
ADDXY A11,A10
|
|||
|
MOVE A10,A11 ;CALCULATED CENTER OF OBJECT
|
|||
|
MOVI CWSPD,A0 ;WINDOW SPEED
|
|||
|
MOVB @DUMB,A1
|
|||
|
JREQ OA2
|
|||
|
MOVI CWSPD2,A0 ;WINDOW SPEED
|
|||
|
OA2 JSRP OBJEXP32
|
|||
|
MOVE A8,A0
|
|||
|
; CALLA DELPAL
|
|||
|
CALLA DELOBJ
|
|||
|
RETP
|
|||
|
DELWNDW:
|
|||
|
MOVE @OBJPTR,A0,L
|
|||
|
MOVE A0,A8
|
|||
|
; CALLA DELPAL
|
|||
|
CALLA DELOBJ
|
|||
|
RETS
|
|||
|
|
|||
|
;
|
|||
|
; OBJEXP32 - SHRINK OR EXPAND AN OBJECT FROM THE CURRENT SIZE
|
|||
|
; TO THE GIVEN SIZE IN A GIVEN AMOUNT OF TICKS.
|
|||
|
; A0 = # OF TICKS
|
|||
|
; A8 = PTR TO OBJECT
|
|||
|
; A10 = NEW OBJTL
|
|||
|
; A11 = NEW OBJLR
|
|||
|
; NOTE: CALL WITH JSRP
|
|||
|
; TRASHES A9
|
|||
|
;
|
|||
|
OBJEXP32:
|
|||
|
MOVE *A8(OXPOS),A1,W
|
|||
|
MOVE *A8(OYPOS),A14,W
|
|||
|
SLL 16,A14
|
|||
|
MOVX A1,A14 ;A14 = OBJECT UL
|
|||
|
|
|||
|
SLL 16,A1
|
|||
|
CLR A2
|
|||
|
MOVY A14,A2
|
|||
|
SUBXY A10,A14
|
|||
|
MOVX A14,A5
|
|||
|
SLL 16,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A6
|
|||
|
CLR A5
|
|||
|
MOVY A14,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A7
|
|||
|
|
|||
|
MOVE *A8(OXPOS),A3,W
|
|||
|
MOVE *A8(OYPOS),A14,W
|
|||
|
SLL 16,A14
|
|||
|
MOVX A3,A14
|
|||
|
MOVE *A8(OSIZE),A3,L
|
|||
|
ADDXY A3,A14 ;A14 = OBJECT LR
|
|||
|
|
|||
|
PUSH A8 ;STACK OBJECT
|
|||
|
MOVX A14,A3
|
|||
|
SLL 16,A3
|
|||
|
CLR A4
|
|||
|
MOVY A14,A4
|
|||
|
SUBXY A11,A14
|
|||
|
MOVX A14,A5
|
|||
|
SLL 16,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A8
|
|||
|
CLR A5
|
|||
|
MOVY A14,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A9
|
|||
|
MOVE A0,A5
|
|||
|
PULL A14 ;KEEP OBJECT HERE
|
|||
|
OBJTIMLP:
|
|||
|
ADD A6,A1 ;ADD THE TLX INCREMENT
|
|||
|
ADD A7,A2 ;ADD THE TLY INCREMENT
|
|||
|
ADD A8,A3 ;ADD THE LRX INCREMENT
|
|||
|
ADD A9,A4 ;ADD THE LRY INCREMENT
|
|||
|
MMTM A12,A1,A2,A3,A4,A5,A6,A7,A14
|
|||
|
MOVE A1,*A14(OXVAL),L
|
|||
|
MOVE A2,*A14(OYVAL),L
|
|||
|
SUB A1,A3
|
|||
|
SUB A2,A4 ;GET A SIZE FOR THE WINDOW
|
|||
|
SRL 16,A3
|
|||
|
MOVY A4,A3
|
|||
|
CALLA FIXA3XY
|
|||
|
MOVE A3,*A14(OSIZE),L
|
|||
|
SLEEP 1
|
|||
|
MMFM A12,A1,A2,A3,A4,A5,A6,A7,A14
|
|||
|
DSJS A5,OBJTIMLP
|
|||
|
MOVE A10,*A14(OXPOS),W
|
|||
|
MOVY A10,A1
|
|||
|
SRL 16,A1
|
|||
|
MOVE A1,*A14(OYPOS),W
|
|||
|
MOVE A11,A9
|
|||
|
SUBXY A10,A11
|
|||
|
MOVE A11,A3
|
|||
|
CALLA FIXA3XY
|
|||
|
MOVE A3,*A14(OSIZE),L ;MATCH WHAT THE CALLER WANTED
|
|||
|
MOVE A9,A11 ;PRESERVE FOR YUKS
|
|||
|
MOVE A14,A8
|
|||
|
RETP
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* FIXA3XY - CHECKS THE X AND Y COMPONENT OF A3, ANY ONE THAT IS ZERO *
|
|||
|
* WILL BE SET TO ONE. KEEPS OSIZE IN ORDER. *
|
|||
|
* A3 = [Y,X] *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
FIXA3XY:
|
|||
|
PUSH A0
|
|||
|
CLR A0
|
|||
|
MOVY A3,A0
|
|||
|
MOVE A0,A0
|
|||
|
JRNZ FA3YOK
|
|||
|
MOVK 1,A0
|
|||
|
SLL 16,A0
|
|||
|
MOVY A0,A3
|
|||
|
FA3YOK:
|
|||
|
CLR A0
|
|||
|
MOVX A3,A0
|
|||
|
MOVE A0,A0
|
|||
|
JRNZ FA3XOK
|
|||
|
MOVK 1,A0
|
|||
|
MOVX A0,A3
|
|||
|
FA3XOK:
|
|||
|
PULL A0
|
|||
|
RETS
|
|||
|
EXPSCRN:
|
|||
|
MOVI 35,A0
|
|||
|
MOVI SCRNST,A10
|
|||
|
MOVI SCRNEND,A11
|
|||
|
JSRP SCREXP32
|
|||
|
RETP
|
|||
|
SNKSCRN:
|
|||
|
MOVI 35,A0
|
|||
|
MOVI SCRNMID,A10
|
|||
|
MOVI SCRNMID,A11
|
|||
|
JSRP SCREXP32
|
|||
|
RETP
|
|||
|
SNKNOW:
|
|||
|
MOVI SCRNMID,A1
|
|||
|
MOVE A1,@SCRNTL,L
|
|||
|
MOVE A1,@SCRNLR,L
|
|||
|
RETP
|
|||
|
|
|||
|
;
|
|||
|
; SCREXP32 - SHRINK OR EXPAND THE SCREEN WINDOW FROM THE CURRENT SIZE
|
|||
|
; TO THE GIVEN IN A GIVEN AMOUNT OF TICKS
|
|||
|
; A0 = # OF TICKS
|
|||
|
; A10 = NEW SCRNTL
|
|||
|
; A11 = NEW SCRNLR
|
|||
|
; NOTE: CALL WITH JSRP
|
|||
|
; TRASHES A8 & A9
|
|||
|
;
|
|||
|
SCREXP32:
|
|||
|
MOVE @SCRNTL,A14,L
|
|||
|
MOVX A14,A1
|
|||
|
SLL 16,A1
|
|||
|
CLR A2
|
|||
|
MOVY A14,A2
|
|||
|
SUBXY A10,A14
|
|||
|
MOVX A14,A5
|
|||
|
SLL 16,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A6
|
|||
|
CLR A5
|
|||
|
MOVY A14,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A7
|
|||
|
MOVE @SCRNLR,A14,L
|
|||
|
MOVX A14,A3
|
|||
|
SLL 16,A3
|
|||
|
CLR A4
|
|||
|
MOVY A14,A4
|
|||
|
SUBXY A11,A14
|
|||
|
MOVX A14,A5
|
|||
|
SLL 16,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A8
|
|||
|
CLR A5
|
|||
|
MOVY A14,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A9
|
|||
|
MOVE A0,A5
|
|||
|
SHTIMLP:
|
|||
|
ADD A6,A1 ;ADD THE TLX INCREMENT
|
|||
|
ADD A7,A2 ;ADD THE TLY INCREMENT
|
|||
|
ADD A8,A3 ;ADD THE LRX INCREMENT
|
|||
|
ADD A9,A4 ;ADD THE LRY INCREMENT
|
|||
|
MMTM A12,A1,A2,A3,A4,A5,A6,A7
|
|||
|
SRL 16,A1
|
|||
|
MOVY A2,A1
|
|||
|
MOVE A1,@SCRNTL,L
|
|||
|
SRL 16,A3
|
|||
|
MOVY A4,A3
|
|||
|
MOVE A3,@SCRNLR,L
|
|||
|
SLEEP 1
|
|||
|
MMFM A12,A1,A2,A3,A4,A5,A6,A7
|
|||
|
DSJS A5,SHTIMLP
|
|||
|
SHTIMR:
|
|||
|
MOVE A10,@SCRNTL,L ;MATCH WHAT THE CALLER WANTED
|
|||
|
MOVE A11,@SCRNLR,L
|
|||
|
RETP
|
|||
|
;
|
|||
|
; CHECK AND SEE IF LAST PLAYER IN GAME IF SO LOOP BUYIN (RESTART WAVE)
|
|||
|
; THIS ROUTINE IS CALLED UPON PLAYERS UNTIMELY DEMISE
|
|||
|
; CALL AS A PROCESS!
|
|||
|
;PARAMS:
|
|||
|
; A11=PLAYER INDEX
|
|||
|
|
|||
|
PSTAT:
|
|||
|
CLR A0
|
|||
|
MOVE A0,@STARTUP,W
|
|||
|
|
|||
|
MOVE A0,*A11(PFLAGS) ;ALLOW PLAYER TO RESTART GAME
|
|||
|
PBUYLPLP:
|
|||
|
CREATE BUYINPID,BUYINLP ;CREATE BUYIN LOOP WINDOW
|
|||
|
JRNZ PBUYIWT4
|
|||
|
SLOOP 4,PBUYLPLP
|
|||
|
|
|||
|
PBUYIWT4:
|
|||
|
*WAIT FOR BUYIN MESSAGE TO COMPLETE
|
|||
|
MOVI BUYINPID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRZ PBUYIWT5 ;BR = BUY IN IS DONE
|
|||
|
SLOOP 1,PBUYIWT4
|
|||
|
PBUYIWT5:
|
|||
|
; MOVE @GAMSTATE,A0
|
|||
|
; CMPI INGAMEOV,A0
|
|||
|
; JRNZ DIEOFF
|
|||
|
; CALLA STOPOBJS
|
|||
|
; CREATE GMEOVPID,GAMEOVER
|
|||
|
;DIEOFF:
|
|||
|
DIE ;CIAO
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* GAME OVER PROCESS *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
GAMEOVER:
|
|||
|
; AUDITCNT AUDSURV,SURVCNT ;COUNT THE SURVIVES
|
|||
|
|
|||
|
MOVI AUDBONE,A0 ;DEC CMOS CONT OF GAMES STARTED
|
|||
|
MOVI -1,A1
|
|||
|
CALLA AUD
|
|||
|
|
|||
|
MOVI AUDSTAT,A0 ;CLEAR GAME ON STATE
|
|||
|
CLR A1
|
|||
|
CALLA STORE_AUDIT
|
|||
|
|
|||
|
MOVI INGAMEOV,A0
|
|||
|
MOVE A0,@GAMSTATE,W
|
|||
|
CLR A0
|
|||
|
MOVE A0,@PLYRPRCS,L
|
|||
|
MOVE A0,@PLYRPRCS+32,L
|
|||
|
MOVE A0,@PLYROBJS,L
|
|||
|
MOVE A0,@PLYROBJS+32,L
|
|||
|
MOVE A0,@STATUS
|
|||
|
MOVE A0,@STARTUP
|
|||
|
MOVI P1DATA,A14
|
|||
|
MOVE A0,@P1CTRL
|
|||
|
MOVE A0,@P2CTRL
|
|||
|
MOVE A0,*A14(PSWTCH),L
|
|||
|
MOVI P2DATA,A14
|
|||
|
MOVE A0,*A14(PSWTCH),L
|
|||
|
|
|||
|
; MOVE @P1DATA+PBUYINS,A0,W ;CHECK FOR BUY-IN
|
|||
|
; JRZ GAMOVRGD ;DO GAME-OVER MESSAGE FOR SURE
|
|||
|
;
|
|||
|
;GAMOVRGD
|
|||
|
CALLA UNIT_CLR ;CLEAR THE FACTIONS OF FRACTIONS
|
|||
|
CALLA ADDBUY ;DO IT AGAIN FOR CERTAINTY
|
|||
|
CREATE INDPID,GAMEOTXT
|
|||
|
MOVE @GRATSON,A0
|
|||
|
JRNZ GOB
|
|||
|
SOUND1 MUSICOFF
|
|||
|
GOB
|
|||
|
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@HALT
|
|||
|
|
|||
|
SOUND1 NOWAY
|
|||
|
SLEEP 080H ;LET EVERYONE SEE PLEASE
|
|||
|
SOUND1 HA2SND
|
|||
|
CREATE 0,KILGOTXT
|
|||
|
JSRP WNDWON
|
|||
|
CLR A0
|
|||
|
MOVE A0,@IRQSKYE ;AUTOERASE TO BLACK
|
|||
|
SLEEP 01 ;40H ;20H
|
|||
|
GAMEDETH
|
|||
|
CALLA ADDBUY ;RESET THE BUY-IN COUNTERS
|
|||
|
CALLA UNIT_CLR ;CLEAR THE FACTIONS OF FRACTIONS
|
|||
|
|
|||
|
CALLA CLR_ALL
|
|||
|
MOVI 01000h,A1
|
|||
|
CLR A0
|
|||
|
CALLA KILALL ;KILL ALL PROCS, EXCEPT FOR COINS
|
|||
|
|
|||
|
MOVI P1DATA,A14
|
|||
|
MOVE A0,*A14(POBJ),L
|
|||
|
MOVI P2DATA,A14
|
|||
|
MOVE A0,*A14(POBJ),L
|
|||
|
|
|||
|
CALLA KILBGND
|
|||
|
SLEEP 2
|
|||
|
CALLA WIPEOUT
|
|||
|
SLEEP 1
|
|||
|
CALLA CLRPAL
|
|||
|
SLEEP 1
|
|||
|
CALLA COLRPRC ;INIT FIXED PAL 0
|
|||
|
;INIT NUARENAP AS SECOND PAL!
|
|||
|
|
|||
|
MOVI NUARENAP,A0 ;FOR SCORE DIGITS!
|
|||
|
CALLA GETFPAL
|
|||
|
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@DISPLAYON,W ;TURN THE DISPLAY BACK ON
|
|||
|
MOVE A0,@GAMERASE,W ;KICK IN AUTOERASE
|
|||
|
|
|||
|
|
|||
|
;ONLY JSRP TO INITIALS IF SOMEONE WILL ENTER INITIALS
|
|||
|
*CHECK HIGH SCORE TO DATE
|
|||
|
|
|||
|
CALLA ISHSTD ;GOT A HI SCORE?
|
|||
|
JREQ GENDNOHS ;NOPE, NOTHING HAPPENING ... BLOW OUT
|
|||
|
|
|||
|
MOVE @GRATSON,A0
|
|||
|
JRNZ GOB2
|
|||
|
SOUND1 HIMUSC ;START HIGH SCORE MUSIC
|
|||
|
GOB2 JSRP INITIALS ;DRAWS BACKGROUND PAGE FOR INITIALS
|
|||
|
;RETURNS AFTER INITIALS ENTERED!
|
|||
|
; CLR A0
|
|||
|
; MOVI P1DATA,A1
|
|||
|
; MOVE A0,*A1(PSCORE)
|
|||
|
; MOVI P2DATA,A1
|
|||
|
; MOVE A0,*A1(PSCORE)
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@KEEPON ;KEEP HIGH SCORE TABLE ON LONGER!
|
|||
|
|
|||
|
GENDNOHS
|
|||
|
CALLA ATSTRT ;START ATTRACT MODE
|
|||
|
DIE
|
|||
|
KILGOTXT
|
|||
|
SLEEP 13
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBGOTXT,A0
|
|||
|
CALLA KILOBJ
|
|||
|
DIE
|
|||
|
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* INIBMESS - INITIALIZE THE BUY IN MESSAGE *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
INIBMESS:
|
|||
|
MMTM SP,A0,A1,A2,A6,A8,A9,A10,A11
|
|||
|
CALLA CR_CONTP ;ENOUGH TO CONTINUE?
|
|||
|
JRLO INIBMIN ;BR = NO
|
|||
|
MOVI PRESSMSG,A8
|
|||
|
CLR A0
|
|||
|
MOVE A0,@BTIMERST,W
|
|||
|
JRUC INIBM1
|
|||
|
INIBMIN:
|
|||
|
MOVI INSRTMSG,A8
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@BTIMERST,W
|
|||
|
INIBM1:
|
|||
|
MMFM SP,A0,A1,A2,A6,A8,A9,A10,A11
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* INIBTIME - INITIALIZE THE BUY IN TIMER *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
INIBTIME:
|
|||
|
MMTM SP,A0,A1,A6,A8,A9,A10,A11
|
|||
|
CALLA CLRBTIME
|
|||
|
MOVB @CNTDIG1,A8
|
|||
|
JRNZ YUP
|
|||
|
MOVB @CNTDIG2,A8
|
|||
|
YUP
|
|||
|
; MOVI BUYTIME,A8
|
|||
|
MOVE A8,@BTIME,W ;STORE IT AWAY
|
|||
|
CALLA HEXTOASC
|
|||
|
MMFM SP,A0,A1,A6,A8,A9,A10,A11
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* DECBTIME - DECREMENT THE BUY IN TIMER *
|
|||
|
* RETURNS: *
|
|||
|
* Z BIT SET = BUY IN TIME DONE *
|
|||
|
* Z BIT CLR = HURRY WHILE SPECIALS LAST! *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
DECBTIME:
|
|||
|
MMTM SP,A0,A1,A6,A8,A9,A10,A11
|
|||
|
CALLA CLRBTIME
|
|||
|
; MOVE @BTIME,A8,W
|
|||
|
; DEC A8
|
|||
|
; JRLT DECBTX
|
|||
|
MOVB @CNTDIG1,A8
|
|||
|
JRNZ YUP1
|
|||
|
MOVB @CNTDIG2,A8
|
|||
|
YUP1 DEC A8
|
|||
|
PUSH A8
|
|||
|
MOVE A8,@BTIME,W
|
|||
|
CALLA HEXTOASC
|
|||
|
|
|||
|
CALLA GWINCENT ;POSITION
|
|||
|
ADDI [24,0],A0
|
|||
|
MOVE @WORLDTL,A1,L
|
|||
|
SUB A1,A0
|
|||
|
MOVE A0,A9
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVI ROBO_LASER,A6
|
|||
|
MOVI RD15FONT,A11 ;BIG OLD NUMBERS
|
|||
|
MOVI [0,1],A10
|
|||
|
JSRP STRCNRMO ;OUTPUT THE TIME
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTIME,A1
|
|||
|
CALLA CHNGOID ;CHANGE THE OID
|
|||
|
PULL A8
|
|||
|
MOVE A8,A0
|
|||
|
DEC A0
|
|||
|
MOVE A0,A0
|
|||
|
; MOVE @BTIME,A8,W ;SET STATUS
|
|||
|
DECBTX:
|
|||
|
MMFM SP,A0,A1,A6,A8,A9,A10,A11
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* UPBMESS1 - UPDATE THE "PRESS START" OR "INSERT COIN" MESSAGE. *
|
|||
|
* RETURNS: *
|
|||
|
* A11 = UPDATED SLEEP LOOP TIME FOR BUYIN THING *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
UPBMESS1:
|
|||
|
MMTM SP,A0,A1,A6,A8 ;MORE PUSHING TO COME
|
|||
|
CALLA CR_CONTP ;ENOUGH TO CONTINUE?
|
|||
|
JRLO UPBMIN ;BR = NO
|
|||
|
MOVI PRESSMSG,A8
|
|||
|
JRUC UPBM1
|
|||
|
UPBMIN:
|
|||
|
MOVI INSRTMSG,A8
|
|||
|
UPBM1:
|
|||
|
MMTM SP,A9,A10,A11 ;WATCH OUT FOR THIS BOGUSNESS
|
|||
|
CALLA GWINCENT ;POSITION
|
|||
|
SUBI [39,0],A0
|
|||
|
MOVE @WORLDTL,A1,L
|
|||
|
SUB A1,A0 ;MAKE'UM SCREEN RELATIVE
|
|||
|
MOVE A0,A9
|
|||
|
CLR A0
|
|||
|
MOVI OWHITE,A6 ;WHITE COLOR
|
|||
|
MOVI RD15FONT,A11 ;BIG OLD LETTERS
|
|||
|
MOVI [0,1],A10 ;ONE SPACE BETWEEN LETTERS
|
|||
|
JSRP STRCNRMO ;OUTPUT "PRESS START" OR "INSERT COIN"
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBMES1,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ ;KILL OLD MESSAGE
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBMES1,A1
|
|||
|
CALLA CHNGOID ;CHANGE THE OID
|
|||
|
MMFM SP,A0,A1,A6,A8,A9,A10,A11
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* UPBMESS2 - UPDATE THE "TO CONTINUE" MESSAGE, TO INSURE ALIGNMENT. *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
UPBMESS2:
|
|||
|
MMTM SP,A0,A1,A2,A6,A8,A9,A10,A11
|
|||
|
|
|||
|
MOVI RD15FONT,A11 ;BIG OLD LETTERS
|
|||
|
MOVI [0,1],A10 ;ONE SPACE BETWEEN LETTERS
|
|||
|
|
|||
|
CALLA GWINCENT ;POSITION
|
|||
|
MOVE A0,A2
|
|||
|
|
|||
|
MOVI TOMSG,A8
|
|||
|
MOVI RED,A6
|
|||
|
|
|||
|
SUBI [18,0],A0
|
|||
|
MOVE @WORLDTL,A1,L
|
|||
|
SUB A1,A0
|
|||
|
MOVE A0,A9
|
|||
|
CLR A0
|
|||
|
JSRP STRCNRMO ;"TO"
|
|||
|
|
|||
|
MOVI CONMSG,A8
|
|||
|
MOVI RED,A6
|
|||
|
|
|||
|
MOVE A2,A0
|
|||
|
ADDI [3,0],A0
|
|||
|
MOVE @WORLDTL,A1,L
|
|||
|
SUB A1,A0
|
|||
|
MOVE A0,A9
|
|||
|
CLR A0
|
|||
|
JSRP STRCNRMO ;"CONTINUE"
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBMES2,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ ;KILL OLD MESSAGE
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBMES2,A1
|
|||
|
CALLA CHNGOID ;CHANGE THE OID
|
|||
|
|
|||
|
MMFM SP,A0,A1,A2,A6,A8,A9,A10,A11
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* CLRBMESS - CLEAR THE BUY-IN MESSAGE TEXT. *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
CLRBMESS:
|
|||
|
MMTM SP,A0,A1
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBMES1,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBMES2,A0
|
|||
|
CALLA KILOBJ
|
|||
|
MMFM SP,A0,A1
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* CLRBTIME - CLEAR THE BUY-IN TIME TEXT. *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
CLRBTIME:
|
|||
|
MMTM SP,A0,A1
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTIME,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ
|
|||
|
MMFM SP,A0,A1
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* GWINCENT - GET THE CURRENT TEXT WINDOW CENTER POINT. *
|
|||
|
* RETURNS: *
|
|||
|
* A0 = CENTER PNT. *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
GWINCENT:
|
|||
|
MMTM SP,A1,A8
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBWNDW,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTOBJ
|
|||
|
JRZ GWINCX
|
|||
|
MOVE A0,A8
|
|||
|
CALLA GETCPNT
|
|||
|
MOVE A1,A0
|
|||
|
GWINCX:
|
|||
|
MMFM SP,A1,A8
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* GAMEOTXT - PROCESS TO PUT "GAME OVER" UP AND KEEP IT CENTERED *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
GAMEOTXT:
|
|||
|
CLR A0
|
|||
|
MOVI ROBO_LASER,A6
|
|||
|
MOVI GAMOVMSG,A8
|
|||
|
MOVI [37+SCRNTOP,200],A9
|
|||
|
MOVI [0,2],A10 ;ONE SPACE BETWEEN LETTERS
|
|||
|
MOVI RD15FONT,A11 ;SET UP FONT
|
|||
|
JSRP STRCNRMO ;"GAME OVER"
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBGOTXT,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ ;KILL OLD MESSAGE
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBGOTXT,A1
|
|||
|
CALLA CHNGOID ;CHANGE THE OID
|
|||
|
GMEDSPLY:
|
|||
|
SLOOP 1,GMEDSPLY
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* CHNGOID - CHANGE ALL MATCHING OID'S ON THE OBJECT LIST TO A NEW ONE. *
|
|||
|
* A0 = OID TO CHANGE *
|
|||
|
* A1 = NEW OID *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
CHNGOID:
|
|||
|
MMTM SP,A2,A3
|
|||
|
MOVI OBJLST,A2
|
|||
|
CHNGOLP:
|
|||
|
MOVE *A2,A2,L
|
|||
|
JRZ CHNGOIDX ;BR = DONE WITH THE LIST
|
|||
|
MOVE *A2(OID),A3,W
|
|||
|
CMP A0,A3
|
|||
|
JRNE CHNGOLP ;THIS IS NOT ONE OF THEM
|
|||
|
MOVE A1,*A2(OID),W ;STUFF THE NEW ONE
|
|||
|
JRUC CHNGOLP
|
|||
|
CHNGOIDX:
|
|||
|
MMFM SP,A2,A3
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* BUYINLP - PUT UP THE BUY-IN WINDOW PROCESS AND LOOP BACK ON BUY-IN. *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
BUYINLP:
|
|||
|
;FOR WHEN THERE IS JUST ONE PLAYER IN GAME
|
|||
|
CLR A0
|
|||
|
MOVE A0,@STARTUP
|
|||
|
MOVI [41+SCRNTOP,200],A10
|
|||
|
SLEEP 2*60
|
|||
|
MOVI >005D0093,A8
|
|||
|
JSRP OWINDOW ;OPEN THE WINDOW
|
|||
|
JRZ BUYINLPDI ;COULDN'T DO IT
|
|||
|
MOVK 1,A0 ;HALT GAMEPLAY WHILE BUYIN
|
|||
|
MOVE A0,@HALT,W ;BOX IS ON SCREEN
|
|||
|
SOUND1 MUSICOFF
|
|||
|
SLEEP 1
|
|||
|
MOVI BUYMSC,A0
|
|||
|
CALLA ONESND
|
|||
|
|
|||
|
CALLA INIBTIME ;INITIALIZE BUY IN TIME
|
|||
|
CALLA INIBMESS ;INITIALIZE BUY IN MESSAGE
|
|||
|
*YES IT'S BUY-IN TIME AGAIN!
|
|||
|
MOVI INGAME,A0
|
|||
|
MOVE A0,@GAMSTATE,W ;TAKE US OUT OF GAME PLAY
|
|||
|
MOVI IBUYINS,A0
|
|||
|
MOVE A0,@P1DATA+PBUYINS,W
|
|||
|
MOVE A0,@P2DATA+PBUYINS,W
|
|||
|
BUYLPOLP:
|
|||
|
MOVI BUYTICK,A11
|
|||
|
BUYLPILP:
|
|||
|
;CHECK IF SOMEONE JUST HIT START (BOUGHT IN)
|
|||
|
;IF SO, JRUC TO CLOSE BOX DOWN
|
|||
|
;OTHERWISE, CONT COUNT DOWN
|
|||
|
SLEEP 1 ;BUYSLP
|
|||
|
MOVE @STARTUP,A0,W
|
|||
|
JRNZ BUYLPBAK
|
|||
|
|
|||
|
CNT CALLA UPBMESS1 ;UPDATE BUYIN MESSAGE 1
|
|||
|
CALLA UPBMESS2
|
|||
|
DSJS A11,BUYLPILP
|
|||
|
CALLA DECBTIME ;DECREMENT BUYIN TIME
|
|||
|
JRGE BUYLPOLP ;WE ARE NOT DONE YET
|
|||
|
* TIME IS UP!
|
|||
|
CALLA CLRBTIME
|
|||
|
CALLA CLRBMESS
|
|||
|
; SOUND1 MUSICOFF ;MUSIC HARD OFF
|
|||
|
JSRP CWINDOW
|
|||
|
CLR A0
|
|||
|
MOVE A0,@HALT
|
|||
|
MOVE A0,@EHALT
|
|||
|
MOVB A0,@WNDO
|
|||
|
BUYINLPDI:
|
|||
|
DIE
|
|||
|
KILLPLYR
|
|||
|
;KILL PLAYER STUFF!
|
|||
|
;RESTART MESSAGES ON SCOREBOARD
|
|||
|
MOVI PLY1PID,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ KILLP1
|
|||
|
;MUST BE PLAYER 2 THAT HAS JUST DIED!
|
|||
|
KILLP2
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI PLY2PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI CLSPLYR|TYPPLYR|SUBPL_2,A0
|
|||
|
CALLA KILOBJ
|
|||
|
CLR A0
|
|||
|
MOVE A0,@PLYROBJS+32,L
|
|||
|
MOVE A0,@PLYRPRCS+32,L
|
|||
|
;RESTART SCOREBOARD MESSAGES PLAYER 2
|
|||
|
CALLA IS2
|
|||
|
MOVI P2DATA,A11
|
|||
|
JRUC P1P
|
|||
|
KILLP1
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI PLY1PID,A0
|
|||
|
CALLA KILALL
|
|||
|
MOVI CLSPLYR|TYPPLYR|SUBPL_1,A0
|
|||
|
CALLA KILOBJ ;KILL PLAYER 1 IMAGES
|
|||
|
CLR A0
|
|||
|
MOVE A0,@PLYROBJS,L
|
|||
|
MOVE A0,@PLYRPRCS,L
|
|||
|
;RESTART SCOREBOARD MESSAGES PLAYER 1
|
|||
|
CALLA IS1
|
|||
|
MOVI P1DATA,A11
|
|||
|
P1P
|
|||
|
RETS
|
|||
|
*
|
|||
|
*SOMEBODY JUST BOUGHT IN
|
|||
|
*IT IS TIME TO CONTINUE GAME
|
|||
|
BUYLPBAK:
|
|||
|
;A0=1 OR 2
|
|||
|
;UPDATE PLAYER LIVES
|
|||
|
; MOVI P1DATA,A11
|
|||
|
MOVE @PLYRPRCS,A1,L
|
|||
|
CMPI 1,A0
|
|||
|
JREQ XX2
|
|||
|
; AUDIT AUD2CONT
|
|||
|
MOVE @PLYRPRCS+32,A1,L
|
|||
|
; MOVI P2DATA,A11
|
|||
|
JRUC XX2A
|
|||
|
XX2
|
|||
|
; AUDIT AUD1CONT
|
|||
|
XX2A MOVI 320,A2
|
|||
|
MOVE A2,*A1(DELYDET),W
|
|||
|
; ADJUST ADJLIVES ;GET LIVES PER GAME
|
|||
|
; MOVK 3,A0
|
|||
|
; MOVE A0,*A11(PLIVES),W
|
|||
|
|
|||
|
;XZ
|
|||
|
CLR A0
|
|||
|
MOVE A0,@HALT,W ;UN-FREEZE GAME PLAY
|
|||
|
MOVE A0,@EHALT,W ;UN-FREEZE GAME PLAY
|
|||
|
MOVB A0,@WANTIN ;IN CASE
|
|||
|
; MOVB A0,@STANDBY
|
|||
|
; AUDIT AUDLOOP
|
|||
|
CALLA CLRBTIME
|
|||
|
CALLA CLRBMESS
|
|||
|
JSRP CWINDOW
|
|||
|
CREATE 0,SETEHALT
|
|||
|
MOVI MCSPK4,A0
|
|||
|
CALLA ONESND
|
|||
|
CLR A0
|
|||
|
MOVB A0,@WNDO
|
|||
|
CREATE 0,DOMUSE
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@DISPLAYON,W ;TURN THE DISPLAY PROC ON
|
|||
|
MOVI INGAME,A0
|
|||
|
MOVE A0,@GAMSTATE,W ;START YOUR ENGINES
|
|||
|
CALLA LIVECNT
|
|||
|
DIE
|
|||
|
SETEHALT
|
|||
|
SLEEP 30
|
|||
|
MOVE @EHALT,A0
|
|||
|
JRZ DIOFZ
|
|||
|
CLR A0
|
|||
|
MOVE A0,@EHALT
|
|||
|
DIOFZ DIE
|
|||
|
DOMUSE SLEEP 20
|
|||
|
CALLA WAVEMUSIC
|
|||
|
DIE
|
|||
|
WAVEMUSIC:
|
|||
|
MOVE @CIRCUIT,A1 ;FETCH CIRCUIT
|
|||
|
SLL 5,A1 ;TABLE ENTRY OFFSET
|
|||
|
ADDI CRCTMSC,A1
|
|||
|
MOVE *A1,A1,L ;FETCH DATA POINTER TO MUSIC VALUES
|
|||
|
MOVE @WAVE,A2 ;WAVE TO PUT MUSIC TO
|
|||
|
SLL 5,A2 ;FOR LONG WORD LOOKUP
|
|||
|
ADD A1,A2
|
|||
|
MOVE *A2,A0,L ;MUSIC OFFSET
|
|||
|
JAUC ONESND ;START ROOM MUSIC
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* CLRBUYIN - CLEAR THE PLAYERS BUYIN COUNTERS, I.E. NO MORE BUYIN ALLOWE *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
;CLRBUYIN
|
|||
|
; PUSH A0
|
|||
|
; MOVE @WAVE,A0,W
|
|||
|
; CMPI LASTWAVE,A0
|
|||
|
; JREQ CLRBALW ;ALWAYS CLEAR IN THE FINAL WAVE
|
|||
|
; ADJUST ADJBUYIN
|
|||
|
; JRNZ CLRBXX ;ADJUSTMENT SAYS NO CLEAR
|
|||
|
;CLRBALW
|
|||
|
; CLR A0
|
|||
|
; MOVE A0,@P1DATA+PBUYINS,W
|
|||
|
; MOVE A0,@P2DATA+PBUYINS,W
|
|||
|
;CLRBXX
|
|||
|
; PULL A0
|
|||
|
; RETS
|
|||
|
;
|
|||
|
;BOPO
|
|||
|
; MOVB A0,@STANDBY
|
|||
|
; CLR A0
|
|||
|
; MOVE A0,@STARTUP
|
|||
|
; MOVI BEEP3,A0
|
|||
|
; CALLA ONESND
|
|||
|
; RETS
|
|||
|
;
|
|||
|
KILBGND:
|
|||
|
; KILL ALL BACKGROUND OBJECTS AND FREES ITS PALLETTE
|
|||
|
MMTM SP,A0,A2,A3,A4,A5
|
|||
|
MOVI BAKLST,A2,L ;ACTIVE BACKGROUND OBJECTS LIST
|
|||
|
MOVE *A2,A0,L
|
|||
|
JREQ KILOBX ;BR=NO MORE OBJECTS ON LIST
|
|||
|
; CALLA DELPAL
|
|||
|
FREEB:
|
|||
|
MOVE A2,A3 ;SAVE PREVIOUS
|
|||
|
MOVE *A2,A2,L ;GET NEXT BLOCK
|
|||
|
JREQ KILOBX ;BR=ALL DONE
|
|||
|
MOVE *A2,*A3,L ;LINK AROUND IN ACTIVE LIST
|
|||
|
MOVE @OFREE,A5,L ;LINK INTO FREE LIST AT START
|
|||
|
MOVE A5,*A2,L
|
|||
|
MOVE A2,@OFREE,L ;UPDATE FREE LIST POINTER
|
|||
|
MOVE A3,A2
|
|||
|
JRUC FREEB ;KILL ALL OBJECTS ON BACKGROUND LIST
|
|||
|
KILOBX:
|
|||
|
CLR A0
|
|||
|
MOVE A0,@BAKLST,L
|
|||
|
MOVI 10000/16,A2 ;SIZE OF BAKBITS IN WORDS
|
|||
|
MOVI BAKBITS,A1
|
|||
|
KILUP:
|
|||
|
MOVE A0,*A1+,W
|
|||
|
DSJS A2,KILUP
|
|||
|
MMFM SP,A0,A2,A3,A4,A5
|
|||
|
RETS
|
|||
|
|
|||
|
COLRSTRT:
|
|||
|
MOVI COLRPID,A0
|
|||
|
CLR A1
|
|||
|
MOVE A1,@IRQSKYE
|
|||
|
MOVI FPALRAM,A2
|
|||
|
MOVE A1,*A2(PALCNT),W
|
|||
|
NOT A1
|
|||
|
CALLA KILALL ;KILL ALL COLOR UPDATE PROCESSES
|
|||
|
MOVI DIAGP,A0 ;CREATE DIAGNOSTICS PALLETTE
|
|||
|
CALLA GETFPAL
|
|||
|
CREATE COLRPID,CYCSPECT ;START COLOR CYCLE PROCESS
|
|||
|
RETS
|
|||
|
COLRPRC:
|
|||
|
MOVI COLRPID,A0
|
|||
|
CLR A1
|
|||
|
MOVI FPALRAM,A2
|
|||
|
MOVE A1,*A2(PALCNT),W
|
|||
|
NOT A1
|
|||
|
CALLA KILALL ;KILL ALL COLOR UPDATE PROCESSES
|
|||
|
MOVI nup1,A0 ;PLAYER PALLETTE
|
|||
|
CALLA GETFPAL
|
|||
|
CREATE COLRPID,CYCSPECT ;START COLOR CYCLE PROCESS
|
|||
|
MOVI NUARENAP,A0 ;SECOND SLOT NEEDED IN PALRAM FOR SCORE DIGS
|
|||
|
CALLA GETFPAL
|
|||
|
RETS
|
|||
|
*
|
|||
|
*CYCLE COLOR SPECTRUM
|
|||
|
*
|
|||
|
CYCSPECT
|
|||
|
MOVI COLTAB,A8
|
|||
|
CYCSPEC1
|
|||
|
MOVE *A8+,A0,W ;GET A COLOR
|
|||
|
JRN CYCSPECT ;OUT OF COLORS (NEGATIVE VALUE)
|
|||
|
MOVI COLRTEMP,A1
|
|||
|
MOVE A1,A2
|
|||
|
ADDK 16,A2 ;A2 = NEXT COLOR
|
|||
|
MOVK 15,A3
|
|||
|
CYCSUCK
|
|||
|
MOVE *A2+,*A1+,W ;CYCLE DOWN ONE
|
|||
|
DSJS A3,CYCSUCK
|
|||
|
MOVE A0,*A1 ;SHIFT IN WALLY NEW GUY
|
|||
|
SLOOP 2,CYCSPEC1
|
|||
|
;
|
|||
|
;COLTAB .WORD 0380H,1380H,2380H,3380H,4380H,5380H,6380H,7380H,7300H
|
|||
|
; .WORD 7280H,7200H,7180H,7080H,7008H,7008H,7010H,7010H,701CH
|
|||
|
; .WORD 701CH,601CH,501CH,409CH,309CH,209CH,219CH,029CH,039CH
|
|||
|
; .WORD 139CH,239CH,339CH,539CH,739CH,7390H,7380H,6380H,4380H
|
|||
|
; .WORD 0FFFFH
|
|||
|
*
|
|||
|
*SOME MESSAGES
|
|||
|
INSRTMSG:
|
|||
|
.STRING "INSERT COIN"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
PRESSMSG:
|
|||
|
.STRING "PRESS START"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
TOMSG
|
|||
|
.STRING "TO"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
CONMSG:
|
|||
|
.STRING "CONTINUE"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
GAMOVMSG:
|
|||
|
.STRING "GAME OVER"
|
|||
|
.BYTE 0
|
|||
|
.EVEN
|
|||
|
|
|||
|
CRCTMSC:
|
|||
|
.LONG CRCT1MSC,CRCT2MSC,CRCT3MSC
|
|||
|
;
|
|||
|
CRCT1MSC:
|
|||
|
.LONG 0,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2
|
|||
|
.LONG TUNE2,BTUNE1,TUNE2
|
|||
|
CRCT2MSC:
|
|||
|
.LONG 0,TUNE3,TUNE3,TUNE3,TUNE3,TUNE3,TUNE3,BTUNE1,TUNE3
|
|||
|
.LONG TUNE3,TUNE3,TUNE3
|
|||
|
.LONG TUNE3,TUNE3,TUNE3
|
|||
|
.LONG TUNE3,TUNE3,TUNE3
|
|||
|
.LONG TUNE3,TUNE3,TUNE3
|
|||
|
CRCT3MSC:
|
|||
|
.LONG 0,TUNE4,TUNE4,BTUNE2,TUNE4,TUNE4,TUNE2,BTUNE3,TUNE4
|
|||
|
.LONG TUNE4,TUNE4,TUNE4
|
|||
|
.LONG VICMSC,TUNE4,VICMSC
|
|||
|
.LONG BTUNE2,TUNE4,TUNE4
|
|||
|
.LONG TUNE4,BTUNE1,HIMUSC
|
|||
|
.LONG VICMSC
|
|||
|
|
|||
|
.END
|
|||
|
|