5349 lines
112 KiB
NASM
5349 lines
112 KiB
NASM
**************************************************************
|
||
*
|
||
* Software: Mark Turmell
|
||
* Initiated: April 13,1989
|
||
*
|
||
* Modified: !
|
||
*
|
||
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
|
||
*
|
||
*.Last mod - 1/9/92 17:12
|
||
**************************************************************
|
||
.FILE 'WAVES.ASM'
|
||
.TITLE 'WAVE STUFF'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
|
||
.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 "GAME.EQU"
|
||
.INCLUDE "AUDIT.EQU"
|
||
.INCLUDE "LINK.EQU"
|
||
|
||
;SOUNDS
|
||
|
||
.REF STATSND,TUNE1,TUNE2,SENDIN,SCREAM,HIMUSC,BEEP1
|
||
.REF NOWAY,HASND,BUYMSC,MUSICOFF,ONESNDOVR
|
||
|
||
ahkbang .word >f9a0,10,>80ef,0 ;^ angry
|
||
|
||
;SYMBOLS EXTERNALLY DEFINED
|
||
|
||
.REF NOSHOOT,FREETOT,CYCLIFE,HULK_CNT,AHMD_CNT,MINE_FLG
|
||
.REF JEPCYC,AUTO_SBMB,SHK_ON,PCTOT,SKIPR_DN,HULK_DN
|
||
.REF AIRRECT3A,AIRBRECT3,TAUNTOUT,ROAD2_MOD,WAITTNT,XWAYBMOD
|
||
.REF prt_inrackwin,DO_WINNER,ICONS_DN,PCNT
|
||
.ref fry_plyrs
|
||
.REF hisclong,ISHSTD,INITIALS,ROAD,ICN4,ROAD2
|
||
.REF DSRTNEW_MOD,JETS
|
||
.REF HSTGS_LOST,SHAKER,CLRBPAL,FONT7A,STRT_G,timeron
|
||
.REF GPALOBJ,GETFPAL,IRQSKYE,FPALRAM,BAKBITS,NO_START,STATUS
|
||
.REF AUD1,BAKMODS,BGND_UD1,BLAKOUT,GAMSTATE,CRSRAM,SBOMB
|
||
.REF INIT_SCORE,DMA_SCORE,CLNPAL,DRAW_PLYR_TORSO
|
||
.REF COLLISIONS,ALL_CHUNKS,THIS_PLYR,RD15FONT,WRLD,FADEOUT2
|
||
.REF P1CTRL,P2CTRL,ATSTRT2,GAMERASE,EHALT,AUD,CNTDIG1,CNTDIG2
|
||
.REF CLRPAL,GETCPNT,PLYROBJS,PLYRPRCS,UNIT_CLR,HEXTOASC,CTRLS
|
||
.REF P1DATA,P2DATA,WIPEOUT,STRCNRMO,SCORE_FLAG,CR_CONTP,TARGET
|
||
.REF CYCLE_TABLE,ONARRW,COLCYC,FRANIM,FRANIMQ
|
||
.ref OBJON,TARGET_NUM,STRLNRMO
|
||
.REF PCOUNT,FINDPAL,UNGETPAL,CURRENT,RECT1,BRECT1,BCURRENT,STRCNRM
|
||
.REF STRLNRM,SEND_ICON,ICN1,ICLIST,SEND_GROUP,DOLORD,WAVE,RUNIN
|
||
.REF ARWOFF,RINGS,ENEMY_RECT,ERECT1,EN_CURRENT,ENRECT1,ICN5
|
||
.REF INTRO,OBJOFF,RANGRAND,BLOOD_LST1,ISTATE,JUMPER,BIGMAP,MAXHULK
|
||
.REF PUMP_CLDS,DO_ALL_STUFF,RD7FONT,CTOTAL,JUMPXY,JUMPXY2,XYSEEK2
|
||
.REF RANDOM,DOBTR60,ENRECT10,SITLST,WARPER,RD8FONT,STRCNRMO_1
|
||
.REF HSTGSET,HZSPD,XYSEEK2A
|
||
.REF FORDBG,O_MINE,WFLG
|
||
.REF SRECT1,BSRECT1
|
||
.REF DOATP,DO5
|
||
.ref aud_addnumplyrs
|
||
.ref aboss
|
||
|
||
|
||
;SYMBOLS DEFINED IN THIS FILE
|
||
|
||
.DEF DLYINTO,FLYERS,OBJPTR
|
||
.DEF STRT_UNDER
|
||
.DEF PURPLE_DUDE,STRTS2,BIG_EAT,GENSPK,RAMLST
|
||
.DEF FIX3
|
||
.DEF PORT_MOD,PATHAIR2,TARGETST,STRT_MOD,FROMSHK
|
||
.DEF AIRRECT1,AIRBRECT1,ENAIR1
|
||
.DEF DTXTB,ERASE_TXT_LTRS,FIX,FIXGUNS,ROAD_MOD
|
||
.DEF DBRECT8,DRECT8
|
||
.DEF DRECT5,DBRECT5
|
||
.DEF DRECT6,DBRECT6
|
||
.DEF DRECT7,DBRECT7
|
||
.DEF DBRECT2,DRECT2,STRT_FORT,STRT_D,STRT_CRM,ZERO_BITS
|
||
.DEF DRECT3,DBRECT3,ERASE_TXT,SIT2,SIT1,SIT3,SIT4
|
||
.DEF DRECT3A,DBRECT3A
|
||
.DEF DRECT4,DBRECT4
|
||
.DEF STRTA,DSRTONE_MOD
|
||
.DEF COLRTEMP,COLRSTRT,WNDWON,WNDWOFF,EXPSCRN,DELWNDW,SEND_TOP
|
||
.DEF SNKNOW,COLRPRC,INIT_GAME,GAMEOVER,CYCSPECT,WSPEED
|
||
.DEF OBJEXP32,PSTAT,BTIME,ZONE_TXT,SQR_FLG,ZONE_TXT2,ZONE_TXT3
|
||
.DEF CWINDOW,OWINDOW,SETC2,STRT_S,DELAYALL
|
||
.DEF HALT,KILBGND,GET_OUT,SCRIPTPLAY,OFFSCRN,LOWZ,AOF,OFFBSCRN
|
||
.DEF SQUARES
|
||
.DEF START
|
||
.DEF JOY_UPDATE
|
||
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
|
||
.BSS KEEP2,16
|
||
.BSS ADDINY,32
|
||
.BSS CAN_EXIT,16
|
||
.BSS DELAYALL,16
|
||
.BSS START,16
|
||
.BSS LOWZ,16
|
||
.BSS KEEP,32
|
||
.BSS KEEP1,32
|
||
.BSS KEEPCL,16
|
||
.BSS KEEP3,16
|
||
.BSS KEEP4,32
|
||
.BSS WSPEED,16
|
||
.BSS OBJPTR,32 ;PNTR FOR WINDOW OBJECT
|
||
.BSS HALT,16 ;FREEZE ALL OBJECTS (NO VEL UPDATE)
|
||
.BSS FLYFLG,16
|
||
.BSS COLRTEMP,16*16 ;RAM COPY OF CYCLING COLORS
|
||
.BSS BTIME,16
|
||
.BSS SQR_FLG,16
|
||
.BSS WNDWFLG,16 ;0=WINDOW SHOULD CLOSE, 1=NO WINDOW
|
||
.BSS RAMLST,32*35 ;IMG PNTRS FOR DELETION WHILE SCROLL
|
||
.BSS PALTMP,16*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
.BSS PALTMP1,16*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
.BSS PALTMP2,16*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
.BSS PALTMP3,16*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
.BSS PALTMP4,35*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
.BSS PALTMP5,4*16*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
.BSS PALTMP0,16*32*2 ;ALLOCATE 2 X COLOR AREA IN RAM
|
||
.BSS BOBJECTS,32*BSIZE+1 ;BACKGROUND OBJECTS LIST
|
||
|
||
;EQUATES FOR THIS FILE
|
||
|
||
BSIZE .EQU 320
|
||
CWSPD .SET 43 ;45 ;CLOSE WINDOW SPEED (HIGHER THE SLOWER)
|
||
OWSPD .SET 21 ;21 ;OPEN WINDOW SPEED (HIGHER THE SLOWER)
|
||
CWSPD2 .SET 01 ;CLOSE WINDOW SPEED (HIGHER THE SLOWER)
|
||
OWSPD2 .SET 01 ;OPEN WINDOW SPEED (HIGHER THE SLOWER)
|
||
BUYTICK .EQU 10
|
||
SCRNTOP .EQU 100
|
||
BRGHT .EQU >0C0C ;GREEN IN SCOREPAL
|
||
COLORS .EQU >2525 ;WHITE IN SCOREPAL
|
||
COLORA .EQU >3E3E ;COLOR CYCLE IN SCOREPAL
|
||
|
||
.TEXT
|
||
|
||
********************************
|
||
* Update player controls process
|
||
|
||
JOY_UPDATE
|
||
SLEEP 40 ;45
|
||
joy move @GAMSTATE,a0
|
||
cmpi INGAME,a0
|
||
jrne joy5
|
||
clr a5
|
||
move @HALT,a0
|
||
jrnz joy2
|
||
move @SWITCH,a5 ;move player switches to a5 (32 bit port)
|
||
not a5
|
||
joy2 movb a5,@P1CTRL
|
||
srl 8,a5
|
||
movb a5,@P2CTRL
|
||
joy5 SLEEPK 1
|
||
jruc joy
|
||
|
||
********************************
|
||
|
||
YLST .LONG 0,0,[36,0],[36*2,0],[36*3,0],[36*4,0],[36*5,0],[36*6,0]
|
||
XLST .LONG 0,0,[50,0],[50*2,0],[50*3,0],[50*4,0],[50*5,0],[50*6,0]
|
||
.LONG [50*7,0]
|
||
|
||
SQUARES
|
||
;TURN ON GRID OF ANIMATING SQUARES FOR A WIPE/TRANSITION
|
||
PUSH A8
|
||
|
||
MOVI BOXP,A8 ;PAL NAME
|
||
MOVI PALTMP0,A9 ;RAM AREA
|
||
MOVI [1,16],A10 ;BEGIN/END COLOR #
|
||
MOVK 2,A11 ;RATE IN TICKS
|
||
CREATE0 COLCYC ;COLOR CYCLER ON
|
||
PUSH A0
|
||
|
||
MOVI 7,A5 ;Y SQUARES
|
||
SQR0 MOVI 8,A4 ;X SQUARES
|
||
SQR1 MOVE @WORLDTLY,A8,L
|
||
MOVE A5,A1
|
||
SLL 5,A1
|
||
ADDI YLST,A1
|
||
MOVE *A1,A1,L
|
||
SUBI 060000H,A1
|
||
ADD A1,A8 ;A8=Y LINE FOR THIS SQUARE
|
||
MOVE @WORLDTLX,A9,L
|
||
MOVE A4,A1
|
||
SLL 5,A1
|
||
ADDI XLST,A1
|
||
MOVE *A1,A1,L
|
||
ADDI 01A0000H,A1
|
||
ADD A1,A9 ;A9=X LINE FOR THIS SQUARE
|
||
BTST 0,A4
|
||
JRZ S1
|
||
;ODD X SQUARE
|
||
BTST 0,A5
|
||
JRZ HBOXIT
|
||
VBOXIT
|
||
;VBOX
|
||
MOVI VBOX1,A10
|
||
JRUC SOUT
|
||
S1
|
||
BTST 0,A5
|
||
JRZ VBOXIT
|
||
HBOXIT
|
||
;HBOX
|
||
MOVI HBOX1,A10
|
||
SOUT CREATE0 BOX
|
||
DSJ A4,SQR1
|
||
DSJ A5,SQR0
|
||
PULL A0 ;CYCLE PROC
|
||
PULL A8
|
||
;DONE WITH ALL CREATES
|
||
MOVE A0,A10
|
||
CREATE0 KILC
|
||
RETS
|
||
KILC
|
||
SLEEP 90 ;WARP SHOULD BE DONE BY NOW
|
||
MOVE A10,A0
|
||
CALLA KILL ;KILL COLOR CYCLE FOR WARP BOXES
|
||
DIE
|
||
|
||
HLST .LONG HBOX1
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX2
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX3
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX4
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX5
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX6
|
||
.WORD 5 ;4*2
|
||
.LONG 0
|
||
HLST2 .LONG HBOX6
|
||
.WORD 5+15 ;(4+12)*2
|
||
.LONG HBOX5
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX4
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX3
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX2
|
||
.WORD 5 ;4*2
|
||
.LONG HBOX1
|
||
.WORD 5 ;4*2
|
||
.LONG 0
|
||
|
||
VLST .LONG VBOX1
|
||
.WORD 10 ;4*2
|
||
.LONG VBOX2
|
||
.WORD 10 ;4*2
|
||
.LONG VBOX3
|
||
.WORD 10 ;4*2
|
||
.LONG VBOX4
|
||
.WORD 10 ;4*2
|
||
.LONG VBOX5
|
||
.WORD 10 ;4*2
|
||
.LONG VBOX6
|
||
.WORD 10 ;(4+12)*2
|
||
.LONG 0
|
||
VLST2 .LONG VBOX6
|
||
.WORD 5 ;4*2
|
||
.LONG VBOX5
|
||
.WORD 5 ;4*2
|
||
.LONG VBOX4
|
||
.WORD 5 ;4*2
|
||
.LONG VBOX3
|
||
.WORD 5 ;4*2
|
||
.LONG VBOX2
|
||
.WORD 5 ;4*2
|
||
.LONG VBOX1
|
||
.WORD 5 ;4*2
|
||
.LONG 0
|
||
|
||
BOX:
|
||
;A8=YVAL
|
||
;A9=XVAL
|
||
;A10=IMG TO START
|
||
;GET FRANIM LIST
|
||
MOVE A9,A0
|
||
MOVE A8,A1
|
||
MOVE A10,A2
|
||
MOVI 545,A3 ;HIGHER PRIORITY THAN ANYTHING
|
||
MOVI DMAWNZ,A4
|
||
CMPI VBOX1,A10
|
||
JRZ OK6
|
||
SRL 4,A4
|
||
SLL 4,A4
|
||
OK6 MOVI CLSNEUT|TYPTEXT|SUBWNDW,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2 ;NO WORLD ADD ON
|
||
CMPI VBOX1,A10
|
||
JRZ OK
|
||
JRUC OK2
|
||
OK MOVI VLST,A9
|
||
MOVI VLST2,A10
|
||
JRUC OK3
|
||
OK2 MOVI HLST,A9
|
||
MOVI HLST2,A10
|
||
SLEEPK 15 ;12*2
|
||
MOVE A8,A0
|
||
CALLA OBJON
|
||
OK3 JSRP FRANIMQ
|
||
MOVK 1,A0
|
||
MOVE A0,@SQR_FLG ;TURN ON BACKGROUND
|
||
SLEEPK 1
|
||
MOVE A10,A9
|
||
JSRP FRANIMQ
|
||
CLR A0
|
||
MOVE A0,@SQR_FLG
|
||
jauc DELOBJDIE
|
||
|
||
;DELETE FOREGROUND OBJECTS THAT ARE NOT WITHIN VISIBLE SCREEN AREA
|
||
OFFSCRN:
|
||
;INIT OBJECT RAM STACK
|
||
CLR A1
|
||
MOVI BOBJECTS,A2
|
||
MOVI BSIZE,A0 ;UHL TO CLEAR
|
||
CLRLUP:
|
||
MOVE A1,*A2+,L
|
||
DSJS A0,CLRLUP
|
||
|
||
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
|
||
OFFBSCRN:
|
||
;INIT OBJECT RAM STACK
|
||
CLR A1
|
||
MOVI BOBJECTS,A2
|
||
MOVI BSIZE,A0 ;UHL TO CLEAR
|
||
BCLRLUP:
|
||
MOVE A1,*A2+,L
|
||
DSJS A0,BCLRLUP
|
||
|
||
MOVI BOBJECTS,A9
|
||
MOVE @OBJLST,A8,L ;LOOK THROUGH THE FGNDLIST
|
||
JREQ BOFAIL ;DOES NOT EXIST! INDICATE ERROR
|
||
BCHKFOBJ:
|
||
CALLA SCRTST ;TEST FOR OBJECT ON SCREEN
|
||
CMPI 4,A0
|
||
JRNZ BONSCRN
|
||
; JREQ BONSCRN ;OBJECT IS DEFINITELY ON SCREEN!
|
||
MOVE A8,*A9+,L ;DUMP INTO RAM STACK
|
||
BONSCRN:
|
||
MOVE *A8(OLINK),A8,L ;LET'S SEARCH FOR ANOTHER
|
||
JRNE BCHKFOBJ
|
||
CLR A0
|
||
MOVE A0,*A9,L ;TERMINATE TABLE
|
||
CALLA OBJPULL
|
||
BOFAIL:
|
||
RETS
|
||
OBJPULL:
|
||
MOVI BOBJECTS,A9
|
||
LUPOBJ:
|
||
MOVE *A9+,A0,L
|
||
JRZ NOLIST ;NO OBJECT LIST EXITS!
|
||
MOVE *A0(OID),A1,W
|
||
BTST 14,A1
|
||
JRNZ NODPLYR ;YES A CLSPLYR!
|
||
CMPI CLSNEUT|TYPICON|SUBCSH,A1
|
||
JRZ KILLME
|
||
;CHECK OTHER NO DELETE OIDS HERE
|
||
BTST 13,A1
|
||
JRNZ NODPLYR ;ENEMY IN ACT OF EXPLODING
|
||
BTST 15,A1 ;ENEMY BIT SET
|
||
JRNZ NODPLYR
|
||
|
||
ANDI 001F00H,A1 ;0F00H - SEPT 15,91
|
||
|
||
CMPI TYPPLBL,A1
|
||
JRZ NODPLYR
|
||
CMPI TYPFLAG,A1
|
||
JRZ NODPLYR
|
||
CMPI TYPHSTG,A1
|
||
JRZ NODPLYR
|
||
CMPI TYPICON,A1
|
||
JRZ NODPLYR
|
||
CMPI TYPCRTE,A1
|
||
JRZ NODPLYR
|
||
CMPI TYPMINE,A1
|
||
JRNZ KILLME
|
||
PUSH A0
|
||
MOVE *A0(OPLINK),A0,L
|
||
JRZ LPO
|
||
CALLA KILL ;ELECTRIC MINE
|
||
LPO PULL A0
|
||
KILLME
|
||
;KILL IT I GUESS...
|
||
CALLA DELOBJ ;DELETE OBJECT FROM LIST
|
||
NODPLYR
|
||
JRUC LUPOBJ
|
||
|
||
NOLIST RETS
|
||
|
||
;CLEAR SHOE CNT FOR EITHER PLAYER
|
||
C_SHO1 CLR A0
|
||
MOVE @PLYRPRCS+32,A1,L
|
||
JRZ RETOUT
|
||
MOVE *A1,A1,L
|
||
MOVE *A1(LEG_PRC),A1,L
|
||
MOVE A0,*A1(SHOECNT)
|
||
RETS
|
||
C_SHO2
|
||
CLR A0
|
||
MOVE @PLYRPRCS,A1,L
|
||
JRZ RETOUT
|
||
MOVE *A1,A1,L
|
||
MOVE *A1(LEG_PRC),A1,L
|
||
MOVE A0,*A1(SHOECNT)
|
||
RETOUT RETS
|
||
|
||
;SCRIPTPLAY - AUTOMATIC PLAYER MOVEMENT
|
||
;A8=1 OR 2 FOR PLAYER NUMBER
|
||
;A10=0 TO RUN IN FROM BOTTOM,1=FROM LEFT, 2=FROM LOWER RIGHT
|
||
SCRIPTPLAY:
|
||
SLEEPK 3
|
||
SLL 5,A10
|
||
ADDI INLST,A10
|
||
MOVE *A10,A9,L
|
||
MOVE @WAVE,A0
|
||
CMPI 18,A0
|
||
JRZ SCR0
|
||
CMPI 17,A0
|
||
JRZ SCR0
|
||
CMPI 35,A0
|
||
JRZ SCR0
|
||
CMPI 36,A0
|
||
JRZ SCR0
|
||
SUBK 16,A0
|
||
JRNZ SCR1
|
||
SCR0
|
||
;ORCUS
|
||
MOVI FROMBOT2,A9
|
||
SCR1
|
||
MMTM SP,A8,A9
|
||
;SECRET PATH COMES IN FROM RIGHT
|
||
CMPI FROMRGT,A9
|
||
JRZ PPO
|
||
MOVE A8,A9
|
||
MOVI 45,A10 ;TIME RINGS ARE ON
|
||
MOVE @WAVE,A0
|
||
CMPI 38,A0
|
||
JRNZ SCR99
|
||
MOVK 25,A10
|
||
SCR99
|
||
CMPI 1,A9
|
||
JRZ PP1
|
||
CREATE RNG2PID,RINGS
|
||
JRUC PPO
|
||
PP1
|
||
CREATE RNG1PID,RINGS
|
||
PPO MMFM SP,A8,A9
|
||
DEC A8
|
||
SLL 5,A8
|
||
MOVE A8,A11
|
||
ADDI CTRLS,A8
|
||
MOVE *A8,A8,L
|
||
|
||
ADDI PLYRPRCS,A11
|
||
MOVE *A11,A11,L
|
||
MOVE *A11(LEG_PRC),A11,L
|
||
NEXTMOV:
|
||
;CHECK TO SEE IF PLAYER IS BUMPING INTO A WALL!
|
||
;IF YES, SLIDE PLAYER OVER A BIT AND KEEP TRYING
|
||
MOVE *A11(TCH_WALL),A0
|
||
JRZ NXC
|
||
; MOVE @WAVE,A0
|
||
; CMPI 38,A0
|
||
; JRZ NXC
|
||
;PLAYER IS BUMPING INTO A WALL AS HE RUNS IN!
|
||
;SLID HIM OVER
|
||
MOVE *A11(TSO_PTR),A0,L
|
||
MOVE *A11(LEG_PTR),A1,L
|
||
MOVE *A1(OYPOS),A3
|
||
MOVI -10,A4 ;MOVK 10,A4
|
||
SUBI 0C02H,A3
|
||
ABS A3
|
||
CMPI 40H,A3
|
||
JRC REGR ;BR=SLIDE TO LEFT
|
||
|
||
MOVE *A1(OYPOS),A3
|
||
SUBI 01E0H,A3
|
||
ABS A3
|
||
CMPI 20H,A3
|
||
JRC REGR ;BR=SLIDE TO LEFT
|
||
;SLIDE TO RIGHT
|
||
|
||
MOVK 10,A4 ;MOVI -10,A4
|
||
REGR
|
||
MOVE *A0(OXPOS),A2
|
||
ADD A4,A2
|
||
MOVE A2,*A0(OXPOS)
|
||
MOVE *A1(OXPOS),A2
|
||
ADD A4,A2
|
||
MOVE A2,*A1(OXPOS)
|
||
NXC MOVE @HALT,A0
|
||
JRZ NXM
|
||
SLEEPK 1
|
||
JRUC NEXTMOV
|
||
|
||
NXM MOVE *A9+,A0,W ;GET SOME JOYSTICK BITS
|
||
CMPI 0FFFFFFFFH,A0
|
||
JREQ MOVEXIT
|
||
MOVE A0,*A8,W ;P1/P2CTRL
|
||
MOVE *A9+,A10,W
|
||
JSRP ATTSLP ;PROCESS SLEEP TIME
|
||
JRUC NEXTMOV
|
||
MOVEXIT:
|
||
DIE
|
||
;
|
||
; ATTSLP - PROCESS ATTRACT MODE PLAYER SLEEP
|
||
; A10 = # TICKS TO SLEEP
|
||
; RETURNS:
|
||
; CARRY CLEAR = SLEEP COMPLETED
|
||
; CARRY SET = STILL SNOZZIN'
|
||
;
|
||
; NOTE: CALL WITH JSRP
|
||
;
|
||
ATTSLP:
|
||
PUSHP A10
|
||
ATTSLPL:
|
||
SLEEPK 1
|
||
SETC
|
||
DSJS A10,ATTSLPL ;PROCESS SLEEP LOOP
|
||
CLRC
|
||
PULLP A10
|
||
RETP
|
||
|
||
INLST .LONG FROMBOT,FROMLFT,FROMRGT,FROMTOP
|
||
FROMBOT:
|
||
;ENTER FROM BOTTOM OF SCREEN
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
FROMBOT2:
|
||
;ENTER FROM BOTTOM OF SCREEN AT ORCUS TIME
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD PUP,01H
|
||
.WORD 0,1H
|
||
.WORD 0FFFFH
|
||
FROMTOP:
|
||
;ENTER FROM BOTTOM OF SCREEN
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD PDOWN,01H
|
||
.WORD 0,1H
|
||
.WORD 0FFFFH
|
||
FROMLFT:
|
||
;ENTER FROM LEFT OF SCREEN
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD PRYTE,01H
|
||
.WORD 0,1H
|
||
.WORD 0FFFFH
|
||
FROMRGT:
|
||
;ENTER FROM LEFT OF SCREEN
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD PLEFT,01H
|
||
.WORD 0,1H
|
||
.WORD 0FFFFH
|
||
|
||
CLR_ALL:
|
||
CALLA KILBGND ;KILL ALL BACKGROUND
|
||
CLR A0 ;KILL SCORE DISPLAY
|
||
MOVE A0,@SCORE_FLAG,W
|
||
MOVE A0,@IRQSKYE,W
|
||
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:
|
||
MOVK 1,A8
|
||
MOVE A8,@WFLG
|
||
MOVI [256,400],A8
|
||
MOVI SCRNMID,A10
|
||
JSRP OWINDOW
|
||
MOVE A8,@OBJPTR,L
|
||
RETP
|
||
WNDWOFF:
|
||
MOVE @OBJPTR,A8,L
|
||
JSRP CWINDOW
|
||
CLR A0
|
||
MOVE A0,@WFLG
|
||
RETP
|
||
|
||
|
||
VWSCRN:
|
||
.LONG HOMEBMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
||
.WORD -11,35BH+04H ;x,y start pos.
|
||
.LONG HOME1BMOD
|
||
.WORD 0262H,35BH+00H ;+2 ;x,y start pos.
|
||
.LONG >FFFFFFFF
|
||
STRT_MOD:
|
||
.LONG FORTABMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
||
.WORD 0FFEAH,0 ;x,y start pos.
|
||
.LONG XWAYBMOD ;ROAD
|
||
.WORD 0FFE3H,546H ;x,y start pos. -0!!!!
|
||
.LONG >FFFFFFFF
|
||
BOSS_MOD: ;BASEMENT BOSS MONSTER PIT
|
||
.LONG BOTMBMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
||
.WORD 0100,0100 ;x,y start pos.
|
||
.LONG >FFFFFFFF
|
||
|
||
DSRTONE_MOD:
|
||
.LONG DSRTONEBMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
||
.WORD 07H,0FDCH ;x,y start pos. -0!!!!
|
||
.LONG DSRTHREBMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
||
.WORD 0FFE8H,0A63H+300 ;E0H-4 ;x,y start pos. -0!!!!
|
||
.LONG HUTLCKBMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
||
.WORD 0FFE8H,0A63H ;x,y start pos. -0!!!!
|
||
.LONG >FFFFFFFF
|
||
ROAD_MOD:
|
||
.LONG DRIVEBMOD ;ROAD
|
||
.WORD 1B2H,135EH ;x,y start pos. -0!!!!
|
||
.LONG AIR1BMOD ;LOWER AIRPORT AREA (GATE)
|
||
.WORD 0C78H,0FE0H ;x,y start pos. -0!!!!
|
||
PORT_MOD
|
||
.LONG AIR2BMOD ;UPPER AIRPORT AREA
|
||
.WORD 0E0DH,08DAH ;x,y start pos. -0!!!!
|
||
.LONG >FFFFFFFF
|
||
|
||
ERASE_TXT:
|
||
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
||
CLR A1
|
||
NOT A1
|
||
JAUC KILOBJ
|
||
ERASE_TXT_LTRS:
|
||
;A8=ROUTINE TO CALL IF ID FOUND
|
||
MOVI CLSNEUT|TYPTEXT|SUBTXT,A6
|
||
CLR A1
|
||
NOT A1
|
||
MOVI OBJLST,A2,L
|
||
SEXT A6,W
|
||
AND A1,A6 ;FORM MATCH
|
||
EXISTOBP:
|
||
MOVE *A2,A2,L ;GET NEXT
|
||
JREQ DONE_1
|
||
MOVE *A2(OID),A3
|
||
AND A1,A3 ;CAN DONT CARE BITS
|
||
CMP A6,A3 ;MATCH?
|
||
JRNE EXISTOBP ;NO
|
||
CALL A8
|
||
JRUC EXISTOBP
|
||
DONE_1 RETS
|
||
DTXTB
|
||
MOVE @WORLDTLY,A4,L
|
||
ADDI [0BAH,0],A4 ;204
|
||
MOVE *A2(OYVAL),A3,L
|
||
CMP A3,A4
|
||
JRNC EXR
|
||
JRC DXC
|
||
DTXTA
|
||
MOVE @WORLDTLY,A4,L
|
||
ADDI [125,0],A4
|
||
MOVE *A2(OYVAL),A3,L
|
||
CMP A3,A4
|
||
JRC EXR
|
||
DXC MOVE A2,A9
|
||
PUSH A1
|
||
CREATE0 FUCKIT
|
||
PULL A1
|
||
EXR RETS
|
||
FUCKIT
|
||
; SLEEPK 1
|
||
MOVE A9,A8
|
||
jauc DELOBJDIE
|
||
|
||
STRTS2
|
||
MOVI BGFRTP,A8 ;PAL NAME
|
||
MOVI PALTMP1,A9 ;RAM AREA
|
||
MOVI [60,64],A10 ;BEGIN/END COLOR #
|
||
MOVK 8,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
RETS
|
||
STRT_S2
|
||
CALLR STRTS2
|
||
STRT_CRM
|
||
MOVI CRMP,A8 ;PAL NAME
|
||
MOVI PALTMP2,A9 ;RAM AREA
|
||
MOVI [58,64],A10 ;BEGIN/END COLOR #
|
||
MOVK 4,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
RETS
|
||
STRT_S
|
||
MOVI STATICP,A8 ;PAL NAME
|
||
MOVI PALTMP0,A9 ;RAM AREA
|
||
MOVI [1,31],A10 ;BEGIN/END COLOR #
|
||
MOVK 2,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
RETS
|
||
|
||
PRSTART .byte "PRESS START TO BEGIN",0
|
||
.EVEN
|
||
|
||
INIT_GAME:
|
||
;GAME HAS BEEN STARTED FROM ATTRACT MODE. SHOW HOME BASE, AND OPENING
|
||
;INTRO STUFF
|
||
MOVI [035BH,0],A0
|
||
MOVE A0,@WORLDTLY,L
|
||
|
||
SLEEPK 2
|
||
|
||
MOVK OWSPD2,A0
|
||
MOVE A0,@WSPEED
|
||
JSRP WNDWON ;GROW WINDOW
|
||
|
||
; .REF GERMAN_SPCH
|
||
; CREATE0 GERMAN_SPCH
|
||
; SLEEP 60*60
|
||
|
||
MOVI ININTRO,A0 ;NOT IN INTRO MODE ANYMORE!
|
||
MOVE A0,@GAMSTATE,W ;FLAG INGAME
|
||
|
||
MOVK 1,A0 ;DELAY START OF A SECOND PLYR FLAG
|
||
MOVE A0,@NO_START
|
||
|
||
;INC CMOS COUNT OF GAMES STARTED!
|
||
MOVI AUDBONE,A0 ;INTO CMOS
|
||
CALLA AUD1 ;INC GAMES STARTED FROM ATTRACT MODE
|
||
|
||
; MOVI AUDSTAT,A0 ;SECRET BONUS FLAG
|
||
; MOVK 1,A1
|
||
; CALLA STORE_AUDIT
|
||
|
||
DO_CANDY
|
||
CLR A0
|
||
MOVE A0,@HALT
|
||
|
||
CLR A0 ;FOR REPORTER ANIMATING
|
||
MOVE A0,@INTRO
|
||
MOVE A0,@ISTATE
|
||
.REF bloflg
|
||
move A0,@bloflg
|
||
|
||
;FOR CHICK REPORTER
|
||
MOVI VWSCRN,A0 ;SHOW HOME BASE VIEW SCREEN
|
||
MOVE A0,@BAKMODS,L
|
||
CALLA BGND_UD1
|
||
|
||
MOVI TUNE1,A0
|
||
CALLA ONESND
|
||
|
||
CALLR STRT_S2
|
||
;CANDY BLITZER REPORTING TEXT
|
||
CLR A0
|
||
MOVE A0,@WRLD
|
||
MOVI CANDY,A8 ;OBJECTIVE 1
|
||
MOVI [0AAH,0145H],A9 ;SCRN Y/X
|
||
MOVI 3B3BH,A6 ;YELLOW
|
||
MOVI RD7FONT,A11 ;FONT TABLE
|
||
MOVK 1,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
|
||
MOVI CANDY2,A8 ;OBJECTIVE 1
|
||
MOVI [0B4H,0147H],A9 ;SCRN Y/X
|
||
MOVI 3B3BH,A6 ;YELLOW
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
|
||
MOVI CANDY2A,A8 ;OBJECTIVE 1
|
||
MOVI [0ACH,028H],A9 ;SCRN Y/X
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
MOVI 3B3BH,A6 ;YELLOW
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
|
||
MOVI CANDY3,A8 ;OBJECTIVE 1
|
||
MOVI [0D2H,0200],A9 ;SCRN Y/X
|
||
MOVI 2525H,A6 ;WHITE
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
|
||
MOVI CANDY4,A8 ;OBJECTIVE 1
|
||
MOVI [0E9H,0200],A9 ;SCRN Y/X
|
||
MOVI 2525H,A6 ;WHITE
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
|
||
JSRP WNDWOFF
|
||
|
||
;START CLOUD FLASHES
|
||
CREATE CYCPID,PUMP_CLDS
|
||
MOVE A0,*A13(PDATA+128),L
|
||
|
||
SLEEP 08AH
|
||
;START BALLOONS
|
||
MOVI BLOB1,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
MOVI BLOB2,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
MOVI BLOB3,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
|
||
CLR A0
|
||
MOVE A0,@WRLD
|
||
;TURN ON FIRST BALLOON TEXT
|
||
MOVI BLLNP5,A0
|
||
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,A6
|
||
MOVE A6,*A13(PDATA),W
|
||
|
||
MOVI BTEXT1,A8
|
||
MOVI [021H,0125H],A9 ;SCRN Y/X
|
||
MOVI RD8FONT,A11 ;FONT TABLE
|
||
MOVK 1,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
JSRP STRCNRMO_1 ;FULL COLOR FONT
|
||
MOVI BTEXT2,A8
|
||
MOVI [02CH,0123H],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI BTEXT3,A8
|
||
MOVI [037H,0125H],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI BTEXT4,A8
|
||
MOVI [042H,0124H],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
SLEEP 0B0H
|
||
MOVI DTXTA,A8
|
||
CALLR ERASE_TXT_LTRS
|
||
SLEEPK 2
|
||
MOVE *A13(PDATA),A6,W
|
||
MOVI BTEXT1B,A8
|
||
MOVI [021H,0125H],A9 ;SCRN Y/X
|
||
MOVI RD8FONT,A11 ;FONT TABLE
|
||
MOVK 1,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
JSRP STRCNRMO_1 ;FULL COLOR FONT
|
||
MOVI BTEXT2B,A8
|
||
MOVI [02CH,0123H],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI BTEXT3B,A8
|
||
MOVI [037H,0125H],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI BTEXT4B,A8
|
||
MOVI [042H,0124H],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
SLEEP 030H
|
||
MOVI DTXTB,A8
|
||
CALLR ERASE_TXT_LTRS ;ERASE 'AFTER THE 1999 WAR' TEXT
|
||
SLEEPK 5
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
MOVI CANDY3A,A8 ;OBJECTIVE 1
|
||
MOVI [0D2H,0200],A9 ;SCRN Y/X
|
||
MOVI 2525H,A6 ;WHITE
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
|
||
MOVI CANDY4A,A8 ;OBJECTIVE 1
|
||
MOVI [0E9H,0200],A9 ;SCRN Y/X
|
||
MOVI 2525H,A6 ;WHITE
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
SLEEP 080H
|
||
|
||
MOVI DTXTA,A8
|
||
CALLR ERASE_TXT_LTRS
|
||
SLEEPK 2
|
||
MOVE *A13(PDATA),A6,W
|
||
MOVI BTEXT1C,A8
|
||
MOVI [026H,0125H],A9 ;SCRN Y/X
|
||
MOVI RD8FONT,A11 ;FONT TABLE
|
||
MOVK 1,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
JSRP STRCNRMO_1 ;FULL COLOR FONT
|
||
MOVI BTEXT2C,A8
|
||
MOVI [031H,0123H],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI BTEXT3C,A8
|
||
MOVI [03CH,0123H],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
SLEEP 90
|
||
CREATE INTROPID,HAND_OUT
|
||
MOVE *A13(PDATA+128),A0,L
|
||
CALLA KILL ;KILL PUMP CLOUDS COL CYC
|
||
SLEEP 088H-50
|
||
MOVI DTXTA,A8
|
||
CALLR ERASE_TXT_LTRS
|
||
SLEEPK 2
|
||
|
||
;TURN OFF BALLONS
|
||
MOVI CLSNEUT|TYPTEXT,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
SLEEP 10+120-40
|
||
|
||
;TURN ON CENSORED SIGN
|
||
MOVI CLOB1,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
MOVI CLOB2,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
MOVI CLOB3,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
MOVI CLOB4,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
;CHICK IS BLIKING FAST, MOUTH OPEN
|
||
SLEEPK 10H ;88H
|
||
;STATIC ALMOST ON
|
||
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
;TIME TO DISPLAY OTHER TEXT
|
||
|
||
SLEEP 028H ;48
|
||
|
||
MOVI CANDY5,A8 ;OBJECTIVE 1
|
||
MOVI [0D2H,0200],A9 ;SCRN Y/X
|
||
MOVI 2525H,A6 ;WHITE
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
CLR A0
|
||
MOVE A0,@WRLD
|
||
MOVK 1,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
MOVK 3,A0
|
||
JSRP STRCNRMO
|
||
|
||
MOVI CANDY6,A8 ;OBJECTIVE 1
|
||
MOVI [0E9H,0200],A9 ;SCRN Y/X
|
||
MOVI 2525H,A6 ;WHITE
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
CLR A0
|
||
MOVE A0,@WRLD
|
||
MOVK 1,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
MOVK 3,A0
|
||
JSRP STRCNRMO
|
||
|
||
MOVI CYCPID,A0
|
||
CALLA KIL1C
|
||
|
||
CALLR STRT_S
|
||
CALLR STRT_S2
|
||
|
||
MOVE @GAMSTATE,A0
|
||
CMPI INAMODE,A0
|
||
JAZ SUCIDE
|
||
|
||
;SLIDE OFF AND SLIDE ON HOME BASE BLIMP MODULE!
|
||
MOVI STATSND,A0
|
||
CALLA ONESND
|
||
MOVI 026H,A9
|
||
MOVE A9,@DELAYALL
|
||
SLTOP SLEEPK 1
|
||
MOVE @WORLDTLX,A0,L
|
||
ADDI [16,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
CALLA BGND_UD1
|
||
DSJ A9,SLTOP
|
||
MOVE A9,@DELAYALL
|
||
|
||
movi PRSTART,A8
|
||
movi 100,a9
|
||
CREATE INTROPID,prt_inrackwin
|
||
|
||
SLEEP 074H
|
||
;GEN IS IN SPEAKING ANIMATION
|
||
JRUC GENSPKA
|
||
|
||
SCREAM2 .WORD >F1F2,>48,>8159,0 ;DIE SCREAM FOR CANDY BLITZER
|
||
|
||
HAND_OUT
|
||
;HAND FLYS OUT
|
||
;GIRLS EYES GET BIG AT THIS POINT
|
||
;TURN ON 3 HAND IMAGES
|
||
MOVI -0FE0000H,A0
|
||
MOVI 0360000H,A1
|
||
MOVI DARM1,A2 ;IMG
|
||
MOVI 269,A3 ;ZPOS
|
||
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
||
MOVI CLSNEUT|TYPNEUT,A5 ;ID
|
||
CLR A6 ;XVEL
|
||
CLR A7 ;YVEL
|
||
CALLA BEGINOBJ ;WORLD ADDED IN
|
||
MOVE A8,*A13(PDATA),L
|
||
MOVI 01000000H,A0
|
||
MOVI 0300000H,A1
|
||
MOVI THUMB,A2 ;IMG
|
||
MOVI 269,A3 ;ZPOS
|
||
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
||
MOVI CLSNEUT|TYPNEUT,A5 ;ID
|
||
CLR A6 ;XVEL
|
||
CLR A7 ;YVEL
|
||
CALLA BEGINOBJ ;WORLD ADDED IN
|
||
MOVE A8,*A13(PDATA+32),L
|
||
MOVI 01000000H,A0
|
||
MOVI 0300000H,A1
|
||
MOVI DHND1,A2 ;IMG
|
||
MOVI 269,A3 ;ZPOS
|
||
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
||
MOVI CLSNEUT|TYPNEUT,A5 ;ID
|
||
CLR A6 ;XVEL
|
||
CLR A7 ;YVEL
|
||
CALLA BEGINOBJ ;WORLD ADDED IN
|
||
MOVE A8,*A13(PDATA+64),L
|
||
|
||
MOVI 03BH,A10
|
||
LOOPIT MOVE *A13(PDATA),A8,L
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+64),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;SLIDE IMAGES TO RIGHT
|
||
MOVE *A8(OXVAL),A0,L
|
||
ADDI 060000H,A0
|
||
MOVE A0,*A8(OXVAL),L
|
||
SLEEPK 1
|
||
DSJ A10,LOOPIT
|
||
SLEEPK 4
|
||
;ANIMATE HAND TO SECOND VIEW
|
||
MOVE *A13(PDATA+64),A8,L
|
||
MOVE *A8(OFLAGS),A4,W
|
||
MOVI DHND2,A1
|
||
CALLA ANI
|
||
SLEEP 20
|
||
|
||
MOVE @GAMSTATE,A0
|
||
CMPI INAMODE,A0
|
||
JRNZ NORMSC
|
||
|
||
ADJUST ADJMUSIC ;GET MUSIC ON OFF FOR DEMO
|
||
MOVE A0,A0
|
||
JRNZ NONO
|
||
.REF SOUNDSUP,GET_ADJ
|
||
CLR A0
|
||
MOVE A0,@SOUNDSUP,W ;TURN ALL SOUNDS ON
|
||
MOVI SCREAM2,A0
|
||
CALLA ONESND
|
||
MOVK 1,A0
|
||
MOVE A0,@SOUNDSUP,W ;TURN ALL SOUNDS OFF
|
||
JRUC NONO
|
||
NORMSC
|
||
MOVI SCREAM,A0
|
||
CALLA ONESND
|
||
NONO
|
||
SLEEP 40
|
||
;EVERYTHING SLIDES OUT LEFT
|
||
;FIND PROF IMAGES AND GIVE -VELOCITY
|
||
MOVI OBJLST,A2
|
||
MOVI -70000H,A1
|
||
ZOLP:
|
||
MOVE *A2,A2,L
|
||
JRZ ZDX ;BR = DONE WITH THE LIST
|
||
MOVE *A2(OZPOS),A3,W
|
||
CMPI 268,A3
|
||
JRNZ ZOLP
|
||
MOVE *A2(OXVEL),A3,L
|
||
JRNZ ZOLP
|
||
MOVE A1,*A2(OXVEL),L ;STUFF THE NEW ONE
|
||
MOVE A2,A8
|
||
MMTM SP,A1,A2
|
||
CREATE INTROPID,KILSOON
|
||
MMFM SP,A1,A2
|
||
JRUC ZOLP
|
||
|
||
KILSOON SLEEP 14H
|
||
MOVI HASND,A0
|
||
CALLA ONESND
|
||
SLEEP 46H
|
||
jauc DELOBJDIE
|
||
|
||
ZDX MOVI 04BH,A10
|
||
LOOPI2
|
||
MOVE *A13(PDATA),A8,L
|
||
;SLIDE IMAGES TO LEFT
|
||
MOVE *A8(OXVAL),A0,L
|
||
SUBI 070000H,A0
|
||
MOVE A0,*A8(OXVAL),L
|
||
MOVE *A13(PDATA+32),A8,L
|
||
;SLIDE IMAGES TO LEFT
|
||
MOVE *A8(OXVAL),A0,L
|
||
SUBI 070000H,A0
|
||
MOVE A0,*A8(OXVAL),L
|
||
MOVE *A13(PDATA+64),A8,L
|
||
;SLIDE IMAGES TO LEFT
|
||
MOVE *A8(OXVAL),A0,L
|
||
SUBI 070000H,A0
|
||
MOVE A0,*A8(OXVAL),L
|
||
SLEEPK 1
|
||
DSJ A10,LOOPI2
|
||
CALLA DELOBJA8
|
||
MOVE *A13(PDATA+32),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PDATA),A8,L
|
||
jauc DELOBJDIE
|
||
|
||
BTEXT1
|
||
.BYTE "WE ARE IN DANGER!",0
|
||
BTEXT2
|
||
.BYTE "WE HAVE UNCOVERED",0
|
||
BTEXT3
|
||
.BYTE "A SINISTER PLOT BY",0
|
||
BTEXT4
|
||
.BYTE "GENERAL AKHBOOB.",0
|
||
BTEXT1B
|
||
.BYTE "THE PLOT INVOLVES",0
|
||
BTEXT2B
|
||
.BYTE "HIS ADVANCED",0
|
||
BTEXT3B
|
||
.BYTE "BIO-NUCLEAR",0
|
||
BTEXT4B
|
||
.BYTE "RESEARCH FACILITY.",0
|
||
BTEXT1C
|
||
.BYTE "AND IN FACT,",0
|
||
BTEXT2C
|
||
.BYTE "GENERAL AKHBOOB'S",0
|
||
BTEXT3C
|
||
.BYTE "REAL IDENTITY IS...",0
|
||
GTEXT1
|
||
.BYTE "INTELLIGENCE",0
|
||
GTEXT2
|
||
.BYTE "CONFIRMS AMERICAN",0
|
||
GTEXT3
|
||
.BYTE "CITIZENS ARE BEING",0
|
||
GTEXT4
|
||
.BYTE "HELD HOSTAGE.",0
|
||
GTEXT1A
|
||
.BYTE "WE ALSO CONFIRM",0
|
||
GTEXT2A
|
||
.BYTE "THE PRESENCE OF",0
|
||
GTEXT3A
|
||
.BYTE "UNKNOWN LIFE FORMS",0
|
||
GTEXT4A
|
||
.BYTE "IN THE SAME AREA!",0
|
||
.EVEN
|
||
|
||
PURPLE_DUDE
|
||
CREATE0 DO_WINNER
|
||
SLEEP 90
|
||
|
||
MOVE A9,A0
|
||
CALLA PRCSLP
|
||
MOVK 3,A10
|
||
MOVK 1,A0 ;FOR SOLDIER EAT SCENE
|
||
MOVE A0,@INTRO
|
||
JAUC WAITTNT
|
||
|
||
DO_BLN
|
||
MOVI [113,0],A0
|
||
MOVI [46,0],A1
|
||
MOVI BLLN1,A2 ;IMG
|
||
|
||
MOVI 289,A3 ;ZPOS
|
||
MOVI CLSNEUT|TYPTEXT,A5 ;ID
|
||
CLR A6 ;XVEL
|
||
CLR A7 ;YVEL
|
||
CALLR DOTXT
|
||
|
||
MOVI [134,0],A0
|
||
MOVI [46,0],A1
|
||
MOVI BLLN2,A2 ;IMG
|
||
CALLR DOTXT
|
||
|
||
MOVI [156,0],A0
|
||
MOVI [46,0],A1
|
||
MOVI BLLN2,A2 ;IMG
|
||
CALLR DOTXT
|
||
|
||
MOVI [176,0],A0
|
||
MOVI [46,0],A1
|
||
MOVI BLLN2,A2 ;IMG
|
||
CALLR DOTXT
|
||
|
||
MOVI [196,0],A0
|
||
MOVI [46,0],A1
|
||
MOVI BLLN2,A2 ;IMG
|
||
CALLR DOTXT
|
||
|
||
MOVI [217,0],A0
|
||
MOVI [46,0],A1
|
||
MOVI BLLN2,A2 ;IMG
|
||
CALLR DOTXT
|
||
|
||
MOVI [0DCH,0],A0
|
||
MOVI [049H,0],A1
|
||
MOVI BLLN3,A2 ;IMG
|
||
CALLR DOTXT
|
||
|
||
MOVI [103H,0],A0
|
||
MOVI [46,0],A1
|
||
MOVI BLLN1,A2 ;IMG
|
||
MOVI DMAWNZ|M_FLIPH|M_NOCOLL,A4
|
||
CALLA BEGINOBJ ;WORLD ADDED IN
|
||
MOVI BLLNP3,A0
|
||
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
||
MOVE A8,A9
|
||
RETS
|
||
STUFFLOW
|
||
SLEEPK 1
|
||
movi -1200,a0
|
||
move a0,@LOWZ
|
||
JRUC STUFFLOW
|
||
|
||
GENSPKA
|
||
;TURN ON TEXT BALLONS
|
||
MOVI BLOB1A,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
MOVI BLOB2A,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
MOVI BLOB3A,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA ADJSTWTL
|
||
|
||
;TURN ON FIRST BALLOON TEXT FOR GENERAL
|
||
MOVE *A13(PDATA),A6,W
|
||
MOVI GTEXT1,A8
|
||
MOVI [021H,0125H-100],A9 ;SCRN Y/X
|
||
MOVI RD8FONT,A11 ;FONT TABLE
|
||
MOVK 1,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
JSRP STRCNRMO_1 ;FULL COLOR FONT
|
||
MOVI GTEXT2,A8
|
||
MOVI [02CH,0123H-100],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI GTEXT3,A8
|
||
MOVI [037H,0125H-100],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI GTEXT4,A8
|
||
MOVI [042H,0124H-100],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
SLEEP 0C0H
|
||
MOVI DTXTA,A8
|
||
CALLR ERASE_TXT_LTRS
|
||
SLEEPK 2
|
||
MOVE *A13(PDATA),A6,W
|
||
MOVI GTEXT1A,A8
|
||
MOVI [021H,0125H-100],A9 ;SCRN Y/X
|
||
MOVI RD8FONT,A11 ;FONT TABLE
|
||
MOVK 1,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
JSRP STRCNRMO_1 ;FULL COLOR FONT
|
||
MOVI GTEXT2A,A8
|
||
MOVI [02CH,0123H-100],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI GTEXT3A,A8
|
||
MOVI [037H,0125H-100],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
MOVI GTEXT4A,A8
|
||
MOVI [042H,0124H-100],A9 ;SCRN Y/X
|
||
MOVE *A13(PDATA),A6,W
|
||
CLR A0
|
||
JSRP STRCNRMO_1
|
||
SLEEP 0C0H
|
||
MOVI DTXTA,A8
|
||
CALLR ERASE_TXT_LTRS ;ERASE 'AFTER THE 1999 WAR' TEXT
|
||
;TURN OFF BALLONS
|
||
MOVI CLSNEUT|TYPTEXT,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
|
||
SLEEP 45H
|
||
;THIS TURNS ON DOOMSDAY SQUAD MESSAGE
|
||
CALLR DO_BLN
|
||
MOVI SENDIN,A0 ;SPEECH OF "SEND IN SQUAD"
|
||
CALLA ONESND
|
||
JRUC GSPK2
|
||
SCOTT .WORD >F9F7,>10,>814B,0 ;GREAT SCOTT
|
||
GENSPK
|
||
SLEEP 03F0H
|
||
;SEND IN DOOMSDAY TEXT
|
||
CALLR DO_BLN
|
||
|
||
MOVI [099H,0],A0
|
||
MOVI [48,0],A1
|
||
MOVI GSCOTT,A2 ;IMG
|
||
CALLR DOTXT
|
||
MOVI SCOTT,A0
|
||
CALLA ONESND
|
||
|
||
SLEEP 90
|
||
|
||
CALLA DELOBJA8
|
||
MOVI CLSNEUT|TYPTEXT,A0 ;KILL ALL BALLOONS
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
|
||
SLEEP 30
|
||
;THIS TURNS ON DOOMSDAY SQUAD MESSAGE
|
||
CALLR DO_BLN
|
||
MOVI SENDIN,A0 ;SPEECH OF "SEND IN SQUAD"
|
||
CALLA ONESND
|
||
JSRP DSQU
|
||
MOVK 3,A0
|
||
MOVE A0,@TAUNTOUT
|
||
DIE
|
||
DSQU
|
||
MOVI [084H,0],A0
|
||
MOVI [49,0],A1
|
||
MOVI SQUAD,A2 ;IMG
|
||
MOVI 289,A3 ;ZPOS
|
||
MOVI CLSNEUT|TYPTEXT,A5 ;ID
|
||
CLR A6 ;XVEL
|
||
CLR A7 ;YVEL
|
||
CALLR DOTXT
|
||
|
||
SLEEP 120
|
||
|
||
MOVI CLSNEUT|TYPTEXT,A0 ;KILL ALL BALLOONS
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
RETP
|
||
|
||
GSPK2 JSRP DSQU
|
||
|
||
;GIRL TYPES
|
||
;TEXT OBJECTIVES APPEAR SLOWLY
|
||
;TAG:
|
||
MOVI FADEDWN,A0
|
||
MOVK 3,A1
|
||
MOVI 30H,A2
|
||
MOVE A2,@PCOUNT
|
||
CALLA FADEOUT2
|
||
|
||
CREATE INTROPID,STUFFLOW
|
||
|
||
MOVI OBJ1,A8 ;OBJECTIVE 1
|
||
MOVI [20,0200],A9 ;SCRN Y/X
|
||
MOVI 0C0CH,A6 ;COLOR CYCLE DIGITS
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
CLR A0
|
||
MOVE A0,@WRLD
|
||
MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
MOVK 3,A0
|
||
JSRP STRCNRMO
|
||
|
||
movi -1200,a0
|
||
move a0,@LOWZ
|
||
MOVI OBJ2,A8 ;OBJECTIVE 1
|
||
MOVI [50,020H],A9 ;SCRN Y/X
|
||
MOVI 02525H,A6 ;COLOR CYCLE DIGITS
|
||
MOVK 3,A0
|
||
JSRP STRLNRMO
|
||
|
||
movi -1200,a0
|
||
move a0,@LOWZ
|
||
MOVI OBJ3,A8 ;OBJECTIVE 1
|
||
MOVI [69,020H],A9 ;SCRN Y/X
|
||
MOVI 02525H,A6 ;COLOR CYCLE DIGITS
|
||
MOVK 3,A0
|
||
JSRP STRLNRMO
|
||
|
||
movi -1200,a0
|
||
move a0,@LOWZ
|
||
MOVI OBJ4,A8 ;OBJECTIVE 1
|
||
MOVI [102,020H],A9 ;SCRN Y/X
|
||
MOVI 02525H,A6 ;COLOR CYCLE DIGITS
|
||
MOVK 3,A0
|
||
JSRP STRLNRMO
|
||
|
||
movi -1200,a0
|
||
move a0,@LOWZ
|
||
MOVI OBJ4A,A8 ;OBJECTIVE 1
|
||
MOVI [102,03CH],A9 ;SCRN Y/X
|
||
MOVI 02525H,A6 ;COLOR CYCLE DIGITS
|
||
MOVK 3,A0
|
||
JSRP STRLNRMO
|
||
|
||
movi -1200,a0
|
||
move a0,@LOWZ
|
||
MOVI OBJ5,A8 ;OBJECTIVE 1
|
||
MOVI [136,020H],A9 ;SCRN Y/X
|
||
MOVI 02525H,A6 ;COLOR CYCLE DIGITS
|
||
MOVK 3,A0
|
||
JSRP STRLNRMO
|
||
|
||
movi -1200,a0
|
||
move a0,@LOWZ
|
||
MOVI OBJ5A,A8 ;OBJECTIVE 1
|
||
MOVI [136,03EH],A9 ;SCRN Y/X
|
||
MOVI 02525H,A6 ;COLOR CYCLE DIGITS
|
||
MOVK 3,A0
|
||
JSRP STRLNRMO
|
||
|
||
movi -1200,a0
|
||
move a0,@LOWZ
|
||
MOVI OBJ5B,A8 ;OBJECTIVE 1
|
||
MOVI [155,03EH],A9 ;SCRN Y/X
|
||
MOVI 02525H,A6 ;COLOR CYCLE DIGITS
|
||
MOVK 3,A0
|
||
JSRP STRLNRMO
|
||
|
||
SLEEP 3*60 ;5*60
|
||
GET_OUT:
|
||
;XFERPROC HERE ON PLAYER EXIT FROM INTRO!
|
||
JSRP WNDWON ;GROW WINDOW
|
||
SLEEPK 1
|
||
CLR A0
|
||
MOVE A0,@WAVE
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVI FLGPID,A0
|
||
CALLA KIL1C ;KILL FLAG PROC
|
||
MOVI CYCPID,A0
|
||
CALLA KIL1C ;COLOR CYCLE KILL
|
||
MOVI INTROPID,A0
|
||
CALLA KIL1C ;INTRO STUFF
|
||
|
||
MOVI FADEDWN,A1
|
||
CALLA UNGET
|
||
|
||
MOVK 16,A0
|
||
CLR A0
|
||
; MOVK 12,A0
|
||
MOVE A0,@START
|
||
|
||
;WIPE TO FIRST BLIMP MODULE
|
||
CALLA CLR_ALL
|
||
MOVI 08000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
MOVK 18,A0
|
||
MOVE A0,@timeron,W ;CAN ACCUMULATE SECONDS
|
||
MOVE A0,@CTOTAL ;FOR CRUISE MISSILE TOTAL
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGS_LOST
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@HULK_CNT
|
||
;TURN ON A BULLET TO GET BULLET PAL UP CLOSE IN TABLE!
|
||
CALLA CLNPAL
|
||
CALLA CLRBPAL
|
||
MOVI BULT,A14
|
||
CALLA DO_ALL_STUFF
|
||
CALLA DELOBJ
|
||
|
||
MOVI ICN1,A0
|
||
MOVE A0,@ICLIST,L
|
||
MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;GREY
|
||
MOVE @START,A0
|
||
JRNZ FAG
|
||
|
||
; .REF LOG
|
||
; CREATE0 LOG
|
||
;REGULAR START AT BEGINNING OF DESERT!
|
||
|
||
|
||
|
||
; MOVI 40,A0
|
||
; MOVE A0,@WAVE
|
||
; .REF TEXTTST
|
||
; JAUC TEXTTST
|
||
|
||
MOVI [127EH,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [0E4H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@MINE_FLG
|
||
MOVI DSRTONE_MOD,A0
|
||
MOVE A0,@BAKMODS,L
|
||
CALLA BGND_UD1
|
||
|
||
CREATE FUTUREPID,USEB ;USE BOMB MESSAGE
|
||
.REF DO_HURRY
|
||
CREATE0 DO_HURRY
|
||
|
||
MOVK 15,A0
|
||
MOVE A0,@MAXHULK
|
||
MOVI ( 11 *32*32)+( 7 *32)+( 0 ),A1 ;SAND COLOR
|
||
FAG MOVE A1,@IRQSKYE
|
||
|
||
CALLA INIT_SCORE ;SET UP SCORE FLAG, ETC.
|
||
|
||
; .IF DEBUG
|
||
MOVE @START,A0
|
||
JRZ REGSTRT
|
||
CMPI 1,A0
|
||
JRNZ ATP
|
||
;DO THIS FOR START OF GAME AT REACTOR
|
||
MOVK 1,A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
|
||
MOVI STRT_MOD,A0 ;SHOW FORT MODULE
|
||
MOVE A0,@BAKMODS,L
|
||
CALLA BGND_UD1
|
||
|
||
MOVK 1,A9
|
||
MOVE A9,@TARGET_NUM ;FIRST TARGET FOR SCROLL
|
||
CLR A0
|
||
MOVE A0,@CRSRAM,L
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVI 010000H,A0
|
||
MOVE A0,@WORLDTLY,L
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADDI 230,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CLR A10
|
||
CREATE TARGPID,TARGET
|
||
CREATE0 FORDBG
|
||
JRUC ENTER
|
||
ATP CMPI 2,A0
|
||
JRNZ ATP2
|
||
;DO THIS FOR START OF GAME AT SECRET PATH #1
|
||
MOVK 1,A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
; MOVK 18,A0
|
||
; MOVE A0,@CTOTAL ;LOTS OF CRUISE MISSILES
|
||
MOVI [08FEH,0],A0
|
||
MOVE A0,@WORLDTLY,L
|
||
CLR A0
|
||
MOVE A0,@CRSRAM,L
|
||
MOVE A0,@WORLDTLX,L
|
||
SLEEPK 2
|
||
CALLA DO5
|
||
CREATE0 DOATP
|
||
|
||
MOVI ( 8 *32*32)+( 5 *32)+( 4 ),A1 ;GREY
|
||
MOVE A1,@IRQSKYE
|
||
MOVI 08000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
JRUC ENTER
|
||
ATP2 CMPI 3,A0
|
||
JRNZ ATP3
|
||
;START GAME AT FORT GATES - NUCLEAR FACILITY
|
||
MOVI [0476H+200,0],A2 ;35B
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A2,*A1(OYVAL),L
|
||
CALLR STRTA
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADDI 130,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CLR A10
|
||
CREATE TARGPID,TARGET
|
||
JRUC ENTER
|
||
ATP3
|
||
CMPI 4,A0
|
||
JRNZ ATP4
|
||
;FOR START AT BEGINNING OF 1ST LOCKDOWN IN DESERT
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVI [100EH,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [0E4H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
MOVI DSRTONE_MOD,A0 ;SHOW FORT MODULE
|
||
MOVE A0,@BAKMODS,L
|
||
CALLA BGND_UD1
|
||
MOVI ( 11 *32*32)+( 7 *32)+( 0 ),A1 ;SAND COLOR
|
||
MOVE A1,@IRQSKYE
|
||
MOVK 6,A9 ;6=1 PIXEL OF SCROLL!
|
||
MOVE A9,@TARGET_NUM ;FIRST TARGET FOR SCROLL
|
||
MOVI 252,A0
|
||
JRUC REGV
|
||
|
||
ATP4
|
||
CMPI 5,A0
|
||
JRNZ ATP5
|
||
;FOR START AT BEGINNING OF 2ND LOCKDOWN IN DESERT
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVI [0A80H-2,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [01FH,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
MOVI DSRTONE_MOD,A0 ;SHOW FORT MODULE
|
||
MOVE A0,@BAKMODS,L
|
||
CALLA BGND_UD1
|
||
MOVI ( 11 *32*32)+( 7 *32)+( 0 ),A1 ;SAND COLOR
|
||
MOVE A1,@IRQSKYE
|
||
MOVK 11,A0
|
||
CALLA DOLORD
|
||
MOVK 8,A9 ;8=1 PIXEL OF SCROLL!
|
||
MOVE A9,@TARGET_NUM ;FIRST TARGET FOR SCROLL
|
||
MOVI 252,A0
|
||
JRUC REGV
|
||
|
||
ATP5
|
||
CMPI 6,A0
|
||
JRNZ ATP6
|
||
;FOR START AT BEGINNING OF ROAD BEFORE ORCUS BOSS MONSTER
|
||
|
||
****************************************************************************
|
||
****************************************************************************
|
||
|
||
;BUG FIX
|
||
; MOVI [24H,8000H],A0
|
||
; MOVE A0,@WORLDTLX,L
|
||
; MOVI [4DDH,8000H],A2
|
||
; MOVE A2,@WORLDTLY,L
|
||
; MOVE A0,*A1(OXVAL),L
|
||
; MOVE A2,*A1(OYVAL),L
|
||
; MOVI DSRTNEW_MOD,A0 ;SHOW FORT MODULE
|
||
; MOVE A0,@BAKMODS,L
|
||
; MOVI ( 11 *32*32)+( 7 *32)+( 0 ),A1 ;SAND COLOR
|
||
; MOVE A1,@IRQSKYE
|
||
; JRUC ENTER
|
||
|
||
|
||
****************************************************************************
|
||
****************************************************************************
|
||
|
||
CLR A2
|
||
MOVE A2,@HSTGSET
|
||
MOVE A2,@CRSRAM,L
|
||
; MOVI [160,0],A2 ;HINT PATCH
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [021H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
MOVI DSRTNEW_MOD,A0 ;SHOW FORT MODULE
|
||
MOVE A0,@BAKMODS,L
|
||
MOVI ( 11 *32*32)+( 7 *32)+( 0 ),A1 ;SAND COLOR
|
||
MOVE A1,@IRQSKYE
|
||
MOVK 15,A0
|
||
CALLA DOLORD
|
||
|
||
MOVI PATHCA,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADDI 250,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CREATE TARGPID,TARGET
|
||
CREATE0 SBOMBZ
|
||
MOVK 8,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
MOVI ICN5,A0
|
||
MOVE A0,@ICLIST,L
|
||
JRUC ENTER
|
||
SBOMBZ SLEEP 40
|
||
MOVE @PLYROBJS,A9,L
|
||
JRNZ SBZ
|
||
MOVE @PLYROBJS+32,A9,L
|
||
SBZ CREATE0 SBOMB
|
||
DIE
|
||
PATHCA ;DIR,CNT
|
||
.WORD 1,1,0
|
||
PATHR ;DIR,CNT
|
||
.WORD 3,0AB9H,0
|
||
PATHU ;DIR,CNT
|
||
.WORD 1,700,0
|
||
|
||
ATP6
|
||
CMPI 7,A0
|
||
JRNZ ATP7
|
||
;FOR START AT BEGINNING OF ROAD AFTER RACKUP
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI [5060,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [0450,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
MOVI ROAD_MOD,A0 ;SHOW ROAD
|
||
MOVE A0,@BAKMODS,L
|
||
MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;SAND COLOR
|
||
MOVE A1,@IRQSKYE
|
||
CREATE0 FIX
|
||
MOVK 17,A0
|
||
MOVE A0,@WAVE
|
||
MOVK 1,A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
MOVK 8,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
MOVI ICN4,A0
|
||
MOVE A0,@ICLIST,L
|
||
CREATE ICONPID,SEND_ICON ;2 ICON SETS FOR ROADWAY
|
||
|
||
MOVK SUBSPRY,A9 ;BULLET SUBTYPE
|
||
CREATE FIXPID,FIXGUNS
|
||
JRUC ENTER
|
||
ATP7
|
||
CMPI 8,A0
|
||
JRNZ ATP8
|
||
;FOR START AT END OF ROAD AFTER RACKUP
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI [5060,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [0C7AH,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
MOVI ROAD_MOD,A0 ;SHOW ROAD
|
||
MOVE A0,@BAKMODS,L
|
||
MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;GREY COLOR
|
||
MOVE A1,@IRQSKYE
|
||
|
||
MOVI AIRRECT1,A0
|
||
MOVE A0,@CURRENT,L
|
||
MOVI AIRBRECT1,A0
|
||
MOVE A0,@BCURRENT,L
|
||
MOVI ENAIR1,A0
|
||
MOVE A0,@EN_CURRENT,L ;FOR BOX COLLISIONS
|
||
|
||
MOVI 08000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADDI 90,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
MOVI PATHU,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
CREATE TARGPID,TARGET
|
||
|
||
MOVK 18,A0
|
||
CALLA DOLORD
|
||
CLR A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
MOVE A9,@TARGET_NUM
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
MOVK 13,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
MOVI ICN1,A0
|
||
MOVE A0,@ICLIST,L
|
||
; CREATE FUTUREPID,TWOJETS
|
||
; .REF BEACONS
|
||
; CREATE0 BEACONS ;SHOW AREA AROUND DISHES ETC.
|
||
JRUC ENTER
|
||
ATP8
|
||
CMPI 9,A0
|
||
JRNZ ATP9
|
||
;FOR START AT END OF AIRPLANE MISSILE AREA-ON RUNWAY
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI [0C23H,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [011E1H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
MOVI PORT_MOD,A0 ;SHOW ROAD
|
||
MOVE A0,@BAKMODS,L
|
||
MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;GREY COLOR
|
||
MOVE A1,@IRQSKYE
|
||
|
||
MOVI AIRRECT3A,A0 ;TAKEN CARE OF BY SCROLLER
|
||
MOVE A0,@CURRENT,L
|
||
MOVI AIRBRECT3,A0
|
||
MOVE A0,@BCURRENT,L
|
||
; MOVI ENAIR1,A0
|
||
; MOVE A0,@EN_CURRENT,L ;FOR BOX COLLISIONS
|
||
|
||
MOVI 08000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
MOVE @WORLDTLX,A8,L
|
||
SRL 16,A8
|
||
ADDI 250,A8 ;300 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A9 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
MOVI PATHAIR2,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
CREATE TARGPID,TARGETST
|
||
|
||
MOVK 18,A0
|
||
CALLA DOLORD
|
||
MOVK 1,A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
MOVE A9,@TARGET_NUM
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
MOVK 13,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
MOVI ICN1,A0
|
||
MOVE A0,@ICLIST,L
|
||
JRUC ENTER
|
||
ATP9
|
||
CMPI 12,A0
|
||
JRNZ ATP10
|
||
;FOR START AT END OF AIRPORT LOCKDOWN
|
||
MOVK 1,A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
CLR A0
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI [09A2H,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [01370H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
MOVI PORT_MOD,A0 ;SHOW ROAD
|
||
MOVE A0,@BAKMODS,L
|
||
MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;GREY COLOR
|
||
MOVE A1,@IRQSKYE
|
||
|
||
MOVI AIRRECT3A,A0 ;TAKEN CARE OF BY SCROLLER
|
||
MOVE A0,@CURRENT,L
|
||
MOVI AIRBRECT3,A0
|
||
MOVE A0,@BCURRENT,L
|
||
|
||
MOVI 010000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADDI 250,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
MOVI PATHCB,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
CREATE TARGPID,TARGET
|
||
|
||
MOVK 29,A0
|
||
MOVE A0,@WAVE
|
||
MOVK 13,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
MOVI ICN1,A0
|
||
MOVE A0,@ICLIST,L
|
||
;PUT IN RECTANGLES FOR ENEMY COLLISIONS HERE!
|
||
JRUC ENTER
|
||
ATP10
|
||
CMPI 13,A0
|
||
JRNZ ATP11
|
||
;FOR START AT BEGINNING OF 2ND ROAD AFTER 2ND RACKUP
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI [912H,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
|
||
MOVI [01520H,0],A0
|
||
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
MOVI ROAD2_MOD,A0 ;SHOW ROAD
|
||
MOVE A0,@BAKMODS,L
|
||
MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;SAND COLOR
|
||
MOVE A1,@IRQSKYE
|
||
CREATE0 FIX3
|
||
MOVK 18,A0
|
||
MOVE A0,@WAVE
|
||
MOVK 2,A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
CREATE ARWPID,ONARRW ;TURN ON LFT ARROW
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
MOVK 8,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
MOVI ICN4,A0
|
||
MOVE A0,@ICLIST,L
|
||
CREATE ICONPID,SEND_ICON ;2 ICON SETS FOR ROADWAY
|
||
|
||
MOVK SUBSPRY,A9 ;BULLET SUBTYPE
|
||
CREATE FIXPID,FIXGUNS
|
||
JRUC ENTER
|
||
ATP11
|
||
CMPI 14,A0
|
||
JRNZ ATP12
|
||
;FOR START AT END OF 2ND ROAD
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@CRSRAM,L
|
||
SLEEPK 1
|
||
MOVI [912H,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
|
||
MOVI [0611H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
SLEEPK 1
|
||
MOVI ROAD2_MOD,A0 ;SHOW ROAD
|
||
MOVE A0,@BAKMODS,L
|
||
MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;SAND COLOR
|
||
MOVE A1,@IRQSKYE
|
||
|
||
CLR A0
|
||
MOVE A0,@CURRENT,L
|
||
MOVE A0,@BCURRENT,L
|
||
MOVE @WORLDTLX+16,A8
|
||
ADDK 5,A8 ;A8=X TARGET LINE TO TRIGGER SCROLL
|
||
CLR A9 ;A9=0 MEANS NOT CHECKING FOR Y TARGET
|
||
MOVI PATHL2,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVI 08000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
CREATE TARGPID,TARGET
|
||
|
||
MOVI 34,A0
|
||
MOVE A0,@WAVE
|
||
MOVK 8,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
MOVI ICN4,A0
|
||
MOVE A0,@ICLIST,L
|
||
CREATE ICONPID,SEND_ICON ;2 ICON SETS FOR ROADWAY
|
||
SLEEPK 1
|
||
JRUC ENTER
|
||
PATHL2 ;DIR,CNT
|
||
.WORD 7,01H,0
|
||
|
||
ATP12 CMPI 15,A0
|
||
JRNZ ATP13
|
||
;FOR START AT BOSS MONSTER PIT IN BASEMENT
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@CRSRAM,L
|
||
; MOVI [064H,0],A2
|
||
MOVI [4e8H,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
|
||
MOVI [05B8H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
SLEEPK 1
|
||
MOVI BOSS_MOD,A0 ;SHOW BOSS PIT
|
||
MOVE A0,@BAKMODS,L
|
||
MOVI ( 3 *32*32)+( 4 *32)+( 5 ),A1 ;BLUE FLOOR
|
||
MOVE A1,@IRQSKYE
|
||
|
||
**************************************************************************
|
||
CLR A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
CREATE ARWPID,ONARRW ;TURN ON LFT ARROW
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
MOVI 35,A0
|
||
MOVE A0,@WAVE
|
||
MOVI ICN5,A0
|
||
MOVE A0,@ICLIST,L
|
||
CREATE ICONPID,SEND_ICON ;2 ICON SETS FOR BOSS
|
||
SLEEPK 1
|
||
**************************************************************************
|
||
|
||
CALLR STRT_C
|
||
; movk 1,a8 ;DEBUG mode
|
||
clr a8
|
||
CREATE BOSSPID,aboss
|
||
|
||
JRUC ENTER
|
||
|
||
PATHB2 .WORD 1,1A8H,0
|
||
|
||
GRNS
|
||
.word >0,>60,>80,>80,>A0,>C0,>E0,>100
|
||
.word >120,>140,>160,>180,>1A0,>1C0,>1E0,>200
|
||
.word >220,>260,>2A0,>2C0,>380,>3E0
|
||
;NEED A DUPLICATE SET
|
||
.word >0,>60,>80,>80,>A0,>C0,>E0,>100
|
||
.word >120,>140,>160,>180,>1A0,>1C0,>1E0,>200
|
||
.word >220,>260,>2A0,>2C0,>380,>3E0
|
||
.WORD -1
|
||
|
||
ATP13
|
||
CMPI 16,A0
|
||
JRNZ ATP14
|
||
;FOR START AT BEGINNING OF UNDRGRND AREA
|
||
MOVI ( 3 *32*32)+( 4 *32)+( 5 ),A1 ;BLUE FLOOR
|
||
MOVE A1,@IRQSKYE
|
||
CLR A10
|
||
JSRP STRT_UNDER
|
||
CALLA BGND_UD1
|
||
SLEEPK 1
|
||
CALLA BGND_UD1
|
||
SLEEPK 1
|
||
MOVK 3,A0 ;WALK IN FROM TOP
|
||
JRUC ENTER2
|
||
|
||
STRT_UNDER
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@CRSRAM,L
|
||
SLEEPK 1
|
||
MOVI [04E8H,0],A2 ;AT START
|
||
MOVE A2,@WORLDTLY,L
|
||
|
||
MOVI [068H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
|
||
MOVE A10,A10
|
||
JRNZ STU1
|
||
MOVE @OBJPTR,A1,L
|
||
MOVE A0,*A1(OXVAL),L
|
||
MOVE A2,*A1(OYVAL),L
|
||
|
||
STU1 SLEEPK 1
|
||
MOVI BOSS_MOD,A0 ;SHOW BOSS PIT
|
||
MOVE A0,@BAKMODS,L
|
||
CLR A0
|
||
MOVE A0,@CURRENT,L
|
||
MOVE A0,@BCURRENT,L
|
||
|
||
CREATE0 DLYINTO
|
||
|
||
MOVI 38,A0
|
||
MOVE A0,@WAVE
|
||
MOVI ICN1,A0
|
||
MOVE A0,@ICLIST,L
|
||
CLR A0
|
||
MOVE A0,@FREETOT
|
||
|
||
RETP
|
||
;TUNER .word >f3fe,10,>800d,0 ;Rackup tune
|
||
|
||
DLYINTO SLEEP 60
|
||
CALLR STRT_C ;COLOR CYCS FOR BASEMENT
|
||
MOVI TUNER,A0
|
||
CALLA ONESND
|
||
SLEEP 100
|
||
MOVI BASE1,A0
|
||
MOVE A0,@CURRENT,L
|
||
MOVI BASEB1,A0
|
||
MOVE A0,@BCURRENT,L
|
||
MOVI 38,A0
|
||
CALLA DOLORD
|
||
MOVI ERECTU1,A0
|
||
MOVE A0,@ENEMY_RECT,L ;FOR SPAWNING
|
||
CREATE ICONPID,SEND_ICON ;2 ICON SETS DOWNSTAIRS
|
||
CALLR GETSPEAK
|
||
DIE
|
||
|
||
ERECTU1
|
||
.WORD 0,1,68H+168,4E8H+270,68H+170,4E8H+280
|
||
.WORD 0,1,68H+168,4E8H+270,68H+170,4E8H+280
|
||
.WORD 0,5,68H+175,4E8H-40,68H+176,4E8H-20
|
||
.WORD 0,5,68H+175,4E8H-40,68H+176,4E8H-20
|
||
.WORD 0,7,68H+400,4E8H+130,68H+420,4E8H+140
|
||
.WORD 0,7,68H+400,4E8H+130,68H+420,4E8H+140
|
||
.WORD 0,5,68H+175,4E8H-40,68H+176,4E8H-20
|
||
.WORD 0,7,68H+400,4E8H+100,68H+420,4E8H+140
|
||
|
||
BXO .set >578
|
||
BYO .set >95
|
||
BASE1 .WORD 06DH,4F0H,8BH,5F0H ;SIDE WALL
|
||
.WORD 06DH,4F0H,05E0H,520H ;TOP WALL
|
||
.word >c9b-BXO,>420-BYO,>cd0-BXO,>1000 ;RIGHT SIDE WALL AT END
|
||
.WORD 0
|
||
|
||
BASEB1 .WORD 06DH,4F0H,84H,5F0H ;SIDE WALL
|
||
.WORD 6DH,4F0H,05D5H,510H ;TOP WALL
|
||
.WORD 0
|
||
|
||
ATP14
|
||
LOCKUP
|
||
PATHCB ;DIR,CNT
|
||
.WORD 1,1,19,1,0
|
||
STRT_C
|
||
;CYCLE BASEMENT WALLS/FLOOR
|
||
|
||
MOVI UPAL,A8 ;PAL NAME
|
||
MOVI PALTMP,A9 ;RAM AREA
|
||
MOVI [50,63],A10 ;BEGIN/END COLOR #
|
||
MOVK 7,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
|
||
MOVI ENDBSSP,A8 ;PAL NAME
|
||
MOVI PALTMP1,A9 ;RAM AREA
|
||
MOVI [49,55],A10 ;BEGIN/END COLOR #
|
||
MOVK 6,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
|
||
MOVI ENDBSSP,A8 ;PAL NAME
|
||
MOVI PALTMP2,A9 ;RAM AREA
|
||
MOVI [56,59],A10 ;BEGIN/END COLOR #
|
||
MOVK 5,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
|
||
MOVI ENDBSSP,A8 ;PAL NAME
|
||
MOVI PALTMP3,A9 ;RAM AREA
|
||
MOVI [59,64],A10 ;BEGIN/END COLOR #
|
||
MOVK 15,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
|
||
MOVI [48,1],A8 ;START AT COLOR 60, CYCLE 1 COLOR
|
||
MOVI ENDBSSP,A9 ;PAL NAME
|
||
MOVI GRNS,A10 ;TABLE TO CYCLE WITH
|
||
MOVK 6,A11 ;RATE OF CYCLE IN TICKS
|
||
CREATE CYCPID,CYCLE_TABLE ;START PROCESS TO DO CYCLE
|
||
|
||
MOVI GRNCYCLE,A8 ;PAL NAME
|
||
MOVI PALTMP4,A9 ;RAM AREA
|
||
MOVI [8,40],A10 ;BEGIN/END COLOR #
|
||
MOVK 7,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
RETS
|
||
TARGETST
|
||
SLEEPK 10
|
||
JAUC TARGET
|
||
PATHAIR2
|
||
.WORD 16,1,3,320H/2,17,1,1,504H/2,19,1,0
|
||
;3,340H,1,400,0
|
||
FIX
|
||
CLR A0 ;MOVI RDRECT1,A0
|
||
MOVE A0,@P1DATA+WAVEPTS
|
||
MOVE A0,@P2DATA+WAVEPTS
|
||
MOVI RDRECT1,A0
|
||
MOVE A0,@CURRENT,L
|
||
CLR A0
|
||
MOVE A0,@BCURRENT,L
|
||
MOVE @GAMSTATE,A0
|
||
CMPI INAMODE,A0
|
||
JRZ FIXAM
|
||
movk AUDROAD1,a0
|
||
calla aud_addnumplyrs
|
||
CREATE0 JETS
|
||
SLEEP 250-90 ;TIME TO GET MAP ICON
|
||
FIXAM SLEEP 90
|
||
MOVE @WORLDTLX,A8,L
|
||
SRL 16,A8
|
||
ADDK 5,A8 ;200 ;A8=X TARGET LINE TO TRIGGER SCROLL
|
||
CLR A9 ;A9=0 MEANS NOT CHECKING FOR Y TARGET
|
||
MOVI PATHR,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVI 010000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
CREATE TARGPID,TARGET
|
||
CREATE MAPPID,BIGMAP
|
||
SLEEP 160
|
||
CREATE0 ROAD ;TRUCKS ETC.
|
||
MOVI FEET,A0
|
||
CALLA ONESND
|
||
JRUC BL01
|
||
|
||
FIX3
|
||
movk AUDROAD2,a0
|
||
calla aud_addnumplyrs
|
||
CLR A0 ;MOVI RDRECT1,A0
|
||
MOVE A0,@P1DATA+WAVEPTS
|
||
MOVE A0,@P2DATA+WAVEPTS
|
||
MOVE A0,@CURRENT,L
|
||
MOVE A0,@BCURRENT,L
|
||
SLEEP 60 ;TIME TO GET MAP ICON
|
||
MOVE @WORLDTLX+16,A8
|
||
ADDK 5,A8 ;A8=X TARGET LINE TO TRIGGER SCROLL
|
||
CLR A9 ;A9=0 MEANS NOT CHECKING FOR Y TARGET
|
||
MOVI PATHL,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVI 010000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
CREATE TARGPID,TARGET
|
||
SLEEPK 20
|
||
|
||
CREATE0 ROAD2 ;TRUCKS ETC.
|
||
|
||
MOVI FEET,A0
|
||
CALLA ONESND
|
||
|
||
BL01 movi >8140,a1
|
||
move @PLYRPRCS,a0,L
|
||
jrz bl10
|
||
move *a0(LEG_PRC),a0,L
|
||
move a1,*a0(SHOECNT) ;Always with shoes
|
||
bl10 move @PLYRPRCS+32,a0,L
|
||
jrz bl15
|
||
move *a0(LEG_PRC),a0,L
|
||
move a1,*a0(SHOECNT)
|
||
bl15
|
||
SLEEP 60
|
||
MOVE @WAVE,A0
|
||
CMPI 40,A0
|
||
JRNZ BL01
|
||
DIE
|
||
FEET .WORD >F06E,>18,>80CA,0 ;FAST FEET PICKUP
|
||
|
||
PATHL ;DIR,CNT
|
||
.WORD 7,0F0EH,0
|
||
|
||
RX .EQU 24
|
||
RY .EQU 48
|
||
RDRECT1 .WORD 1604+36-RX,4994+RY,1808+85-RX,4994+54+RY ;TOP WALL ALONG ROAD
|
||
.WORD 0
|
||
FIXGUNS SLEEPK 8
|
||
;A9=SUBSPRY OR OTHER BULLET SUBTYPE
|
||
MOVK 32,A1
|
||
MOVE @PLYRPRCS,A0,L
|
||
JRZ FIX2
|
||
MOVE A9,*A0(WPN_TYP),W
|
||
MOVE A1,*A0(SHOTCNT)
|
||
FIX2 MOVE @PLYRPRCS+32,A0,L
|
||
JRZ FIXGUNS
|
||
MOVE A9,*A0(WPN_TYP),W
|
||
MOVE A1,*A0(SHOTCNT)
|
||
JRUC FIXGUNS
|
||
|
||
STRTA
|
||
;FOR START AT BEGINNING OF NUCLEAR FACILITY
|
||
MOVI 08000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
|
||
MOVK 1,A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@WAVE
|
||
MOVE A0,@HSTGSET
|
||
MOVI STRT_MOD,A0 ;SHOW FORT MODULE
|
||
MOVE A0,@BAKMODS,L
|
||
CALLA BGND_UD1
|
||
CLR A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
MOVE A9,@CRSRAM,L ;CRUISE MISSILE RAM
|
||
MOVE A9,@TARGET_NUM ;FIRST TARGET FOR SCROLL
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
MOVI RECT1,A0
|
||
MOVE A0,@CURRENT,L
|
||
MOVI BRECT1,A0
|
||
MOVE A0,@BCURRENT,L
|
||
MOVI ENRECT1,A0
|
||
MOVE A0,@EN_CURRENT,L ;FOR BOX COLLISIONS
|
||
MOVI ERECT1,A0
|
||
MOVE A0,@ENEMY_RECT,L ;FOR SPAWNING
|
||
CREATE MAPPID,BIGMAP
|
||
CALLR STRT_FORT ;FORT CYCLE
|
||
MOVI TUNE7,A0
|
||
CALLA ONESND
|
||
RETS
|
||
|
||
REGSTRT:
|
||
; .ENDIF
|
||
;DO THIS FOR REAL START OF GAME AT DESERT
|
||
MOVK 5,A9 ;5=DESERT FIRST SCROLL
|
||
MOVE A9,@TARGET_NUM ;FIRST TARGET FOR SCROLL
|
||
CLR A9
|
||
CREATE ICONPID,SEND_ICON
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
CREATE MAPPID,BIGMAP
|
||
CREATE WARPPID,WARPER
|
||
CREATE FUTRPID,DOBTR60
|
||
; .REF SEND_GEMS
|
||
; CREATE0 SEND_GEMS
|
||
; .REF LIMO
|
||
; CREATE0 LIMO
|
||
MOVI 52H,A0
|
||
REGV
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADD A0,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CLR A10
|
||
CREATE TARGPID,TARGET
|
||
|
||
CLR A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
MOVE A9,@CRSRAM,L
|
||
MOVI DRECT1,A0
|
||
MOVE A0,@CURRENT,L
|
||
MOVI DBRECT1,A0
|
||
MOVE A0,@BCURRENT,L
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
|
||
MOVI ENRECT10,A0
|
||
MOVE A0,@EN_CURRENT,L ;FOR BOX COLLISIONS
|
||
|
||
MOVK 8,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
|
||
MOVI 011F0H,A0
|
||
MOVE A0,@JUMPXY
|
||
MOVI 01D8H,A0
|
||
MOVE A0,@JUMPXY2
|
||
|
||
; CALLR STRT_D
|
||
|
||
CALLA STRT_G ;GOOB COLOR CYCLE
|
||
|
||
MOVI MTNKP,A8 ;PAL NAME
|
||
MOVI PALTMP4,A9 ;RAM AREA
|
||
MOVI [22,25],A10 ;BEGIN/END COLOR #
|
||
MOVK 7,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
|
||
ENTER
|
||
CALLA BGND_UD1
|
||
SLEEPK 1
|
||
CALLA BGND_UD1
|
||
SLEEPK 1
|
||
CLR A0
|
||
ENTER2
|
||
MOVE A0,@RUNIN,W
|
||
CLR A0
|
||
MOVE A0,@MINE_FLG
|
||
CALLA BGND_UD1
|
||
CALLR SETC2 ;LAND MINE CYCLE
|
||
;TURN ON PLAYERS BASED ON STATUS WORD
|
||
CALLA CLNPAL
|
||
CREATE JOYPID,JOY_UPDATE
|
||
MOVE @STATUS,A9
|
||
BTST 0,A9
|
||
JRZ NEXT1
|
||
MOVK 1,A8
|
||
CREATE PLY1PID,DRAW_PLYR_TORSO
|
||
MOVE @WORLDTLY,A3,L
|
||
CMPI [127EH,0],A3
|
||
JRZ NEXT1 ;BR=STARTING AT PARACHUTES!
|
||
MOVE @RUNIN,A10 ;A10=0 FOR COME IN FROM BOTTOM
|
||
CREATE SCRPID,SCRIPTPLAY
|
||
NEXT1 BTST 1,A9
|
||
JRZ NEXT2
|
||
MOVK 2,A8
|
||
CREATE PLY2PID,DRAW_PLYR_TORSO
|
||
MOVE @WORLDTLY,A3,L
|
||
CMPI [127EH,0],A3
|
||
JRZ NEXT2 ;NO RUN IN!
|
||
MOVE @RUNIN,A10 ;A10=0 FOR COME IN FROM BOTTOM
|
||
CREATE SCRPID,SCRIPTPLAY
|
||
NEXT2
|
||
JSRP WNDWOFF ;TAKE WINDOW OFF
|
||
|
||
;DESERT PARACHUTE AREA BEING SHOWN
|
||
MOVI INGAME,A0 ;NOT IN INTRO MODE ANYMORE!
|
||
MOVE A0,@GAMSTATE,W ;FLAG INGAME
|
||
CLR A0
|
||
MOVE A0,@NO_START
|
||
; MOVE A0,@WAVE
|
||
MOVE A0,@RUNIN,W
|
||
CALLA INIT_RAM ;INIT GAME RAM USAGE
|
||
|
||
CREATE LORDPID,AUTO_SBMB
|
||
|
||
CREATE COLPID,COLLISIONS ;COLL2
|
||
CREATE CHNKPID,ALL_CHUNKS ;CHUNK DRIVER
|
||
SLEEPK 2
|
||
CALLA DMA_SCORE
|
||
|
||
;START SCROLLING CODE FOR SCREEN
|
||
;START PLAYERS WALKING THROUGH GATE
|
||
CREATE ICONPID,SEND_ICON
|
||
|
||
MOVI TUNE2,A0
|
||
CALLA ONESND ;START FIRST WORLD MUSIC
|
||
|
||
; .REF KEY_TOTAL
|
||
; CREATE0 KEY_TOTAL
|
||
|
||
.REF BMB_HELP
|
||
CREATE0 BMB_HELP
|
||
.REF KEY_HELP
|
||
CREATE0 KEY_HELP
|
||
|
||
MOVE @START,A0
|
||
CMPI 3,A0
|
||
JANZ SUCIDE
|
||
;START OF GAME OUTSIDE ENTRANCE TO REACTOR WORLD
|
||
|
||
CREATE FUTUREPID,SEND_TOP ;SEND FIRST ENEMIES
|
||
|
||
MOVK 1,A0
|
||
CALLA DOLORD
|
||
|
||
MOVI TUNE7,A0
|
||
CALLA ONESNDOVR
|
||
DIE
|
||
INIT_RAM:
|
||
CLR A0
|
||
MOVE A0,@HULK_DN
|
||
MOVE A0,@SKIPR_DN
|
||
MOVE A0,@SHK_ON
|
||
MOVE A0,@PCTOT ;CAREFUL!!
|
||
MOVE A0,@NOSHOOT
|
||
; MOVE A0,@HSTGS_LOST
|
||
; MOVE A0,@HSTGSET
|
||
MOVE A0,@FREETOT ;FREE MEN COLLECTED
|
||
MOVE A0,@CRSRAM,L
|
||
MOVE A0,@CTOTAL
|
||
MOVE A0,@CYCLIFE
|
||
MOVE A0,@AHMD_CNT ;TOTAL AHMEDS ON SCREEN
|
||
RETS
|
||
XX .EQU 241-13
|
||
YY .EQU 202+48H
|
||
DRECT1
|
||
;FIRST RECTANGLE LIST FOR PLAYERS IN DESERT
|
||
;PIT ON LEFT
|
||
.WORD 0CEH,126DH-3AH,122H,131CH-3AH ;447-XX,4912-YY,511+20-XX,5083+20-YY
|
||
;ONE ENTRY = UPLFT,LOWRGT
|
||
.WORD 122H,127FH-3AH,145H,1314H-3AH ;511+20-XX,4933-YY,546+20-XX,5075+20-YY
|
||
.WORD 146H,128DH-3AH,155H,1310H-3AH ;547+20-XX,4951-YY,567+20-XX,5075+20-YY
|
||
.WORD 155H,12A6H-3AH,168H,1308H-3AH ;568+20-XX,4976-YY,596+20-XX,5054+20-YY
|
||
.WORD 168H,12C8H-3AH,17CH,12F0H-3AH
|
||
;MOUND ON RIGHT
|
||
.WORD 675-XX,4849+11-YY,870-XX,4917+32-YY
|
||
;FIRST BARBED WIRE LINE
|
||
.WORD 226+6-XX,4600+17-YY,603+25-XX,4635+27-YY
|
||
.WORD 733+6-XX,4600+17-YY,1028+25-XX,4635+27-YY
|
||
DRECT2
|
||
;FIRST LOCK DOWN AREA
|
||
.WORD 226+6-XX,4600+20-YY,603+25-XX,4635+25-YY
|
||
.WORD 733+6-XX,4600+20-YY,1028+25-XX,4635+25-YY
|
||
.WORD 758+6-XX,4370+20-YY,864+25-20-XX,4407+25-YY ;WALL TOPRGT
|
||
.WORD 0
|
||
DRECT3
|
||
;AFTER FIRST LOCK DOWN AREA FOR PATH B
|
||
.WORD 490+3-XX,3891+20-YY,776+20-XX,3869+61+25-YY ;MID SCRN WAL
|
||
.WORD 992+3-XX,3891+20-YY,1040+25-XX,3869+61+25-YY ;LITTLE WALL
|
||
.WORD 586+3-XX,3669+20-YY,682+20-XX,3647+61+25-YY ;MID TURT WAL
|
||
.WORD 372+3-XX,3285+20-YY,1044+25-XX,3263+61+25-YY ;LONG WALL
|
||
.WORD 372+3-XX,3218+20-YY,393+25-XX,3263+61+25-YY ;VERT POST
|
||
.WORD 248-XX,2964-YY,338+19-XX,3099+32-YY ;HUT AT LK DWN
|
||
.WORD 0
|
||
DRECT3A
|
||
;AFTER FIRST LOCK DOWN AREA FOR PATH A
|
||
.WORD 490+3-XX,3891+20-YY,776+20-XX,3869+61+25-YY ;MID SCRN WAL
|
||
.WORD 586+3-XX,3669+20-YY,682+20-XX,3647+61+25-YY ;MID TURT WAL
|
||
.WORD 372+3-XX,3285+20-YY,1044+25-XX,3263+61+25-YY ;LONG WALL
|
||
.WORD 372+3-XX,3218+20-YY,393+25-XX,3263+61+25-YY ;VERT POST
|
||
.WORD 245+8-XX,4077+13-YY,245+95-XX,4160+81-YY ;TOP/BOT DISH TOGETHER
|
||
.WORD 248-XX,2964-YY,338+19-XX,3099+32-YY ;HUT AT LK DWN
|
||
.WORD 0
|
||
DRECT4
|
||
;LOCK DOWN AT FIRST HUT
|
||
.WORD 248-XX,2964-YY,338+19-XX,3099+32-YY ;HUT AT LK DWN
|
||
.WORD 0
|
||
DRECT5 ;WAVE 15
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR PLAYERS
|
||
.WORD 760-XX,2125+10H-YY,1028+25-XX,2170+10H-YY ;WAL RGT
|
||
.WORD 245+8-XX,2110+13+60H-YY,245+95-XX,2191+60H-YY ;LFT DISH
|
||
.WORD 0
|
||
DRECT6 ;WAVE 15
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR PLAYERS NEAR BIG HUTS
|
||
.WORD 02CDH,05F0H,314H,68CH ;RGT DISHES
|
||
.WORD 134H,5ECH,203H,692H ;SQR HUT
|
||
.WORD 0
|
||
DRECT7 ;WAVE 15
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR PLAYERS NEAR BIG HUTS
|
||
.WORD 133H-170,5ECH-300,205H-187,692H-300 ;139 ;SQR HUT #2
|
||
.WORD 97H,368H-8,125H,393H
|
||
.WORD 163H,368H-8,1E0H,393H
|
||
.WORD 225H,368H-8,35FH,393H
|
||
.WORD 0
|
||
DRECT8 ;WAVE 15 RIGHT BEFORE CLIFF JUMPERS
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR PLAYERS NEAR BIG HUTS
|
||
.WORD 9H,227H,180H,274H
|
||
.WORD 110H,198H,2C5H,1E8H
|
||
.WORD 0
|
||
DBRECT8 ;WAVE 15 RIGHT BEFORE CLIFF JUMPERS
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR BULLETS NEAR BIG HUTS
|
||
.WORD 9H,21CH,175H,265H
|
||
.WORD 110H,188H,2C5H,1D1H
|
||
.WORD 0
|
||
DBRECT7 ;WAVE 15
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR BULLETS NEAR BIG HUTS
|
||
.WORD 139H-172,5F0H-300,1FEH-185,686H-300 ;SQR HUT
|
||
.WORD 97H,368H-13,125H+9,393H-13
|
||
.WORD 163H,368H-13,1E0H+9,393H-13
|
||
.WORD 225H,368H-13,35FH+9,393H-13
|
||
.WORD 0
|
||
DBRECT6 ;WAVE 15
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR BULLETS NEAR BIG HUTS
|
||
.WORD 2CDH,5E0H,314H,680H ;RGT DISHES
|
||
.WORD 139H,5F0H,1FEH,686H ;SQR HUT
|
||
.WORD 0
|
||
DBRECT5 ;WAVE 15
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR BULLETS
|
||
.WORD 245+8+4-XX,2110+13+1+60H-YY,245+95-10-XX,2191-10+60H-YY ;LFT DISH
|
||
.WORD 760-XX,2125-11+8-YY,1028+34-XX,2170-21+24-YY ;WAL RGT
|
||
.WORD 0
|
||
DBRECT1
|
||
;FIRST RECTANGLE LIST FOR PLAYERS IN DESERT
|
||
;MOUND ON RIGHT
|
||
.WORD 671+12-XX,4838+10-YY,865-XX,4917+18-YY
|
||
;FIRST BARBED WIRE LINE
|
||
.WORD 226+6-XX,4600+6-YY,603+24-XX,4635+6-YY
|
||
.WORD 733+6-XX,4600+6-YY,1028+34-XX,4635+6-YY
|
||
DBRECT2
|
||
;FIRST LOCK DOWN AREA
|
||
.WORD 758+6-XX,4370+9+3-YY,854+34-20-XX,4405+8-YY ;WAL TOP/RGT
|
||
.WORD 0
|
||
DBRECT3
|
||
;AFTER FIRST LOCK DOWN AREA FOR PATHB
|
||
.WORD 992+6-XX,3889+12-YY,1040+30-XX,3869+61+8-YY ;LITTLE WALL
|
||
.WORD 490+6-XX,3889+12-YY,776+20-XX,3869+61+8-YY ;MID SCRN WAL
|
||
.WORD 586+6-XX,3665+12-YY,682+20-XX,3647+61+8-YY ;MID TURT WAL
|
||
.WORD 368+6-XX,3281+12-YY,1044+35-XX,3263+61+8-YY ;LONG WALL
|
||
.WORD 375+6-XX,3220+12-YY,383+35-XX,3263+61+8-YY ;VERT POST
|
||
.WORD 248-XX,2944+8-YY,338+8-XX,3085+32-YY ;HUT AT LK DWN
|
||
.WORD 0
|
||
DBRECT3A
|
||
;AFTER FIRST LOCK DOWN AREA FOR PATH A
|
||
.WORD 490+6-XX,3889+12-YY,776+20-XX,3869+61+8-YY ;MID SCRN WAL
|
||
.WORD 586+6-XX,3665+12-YY,682+20-XX,3647+61+8-YY ;MID TURT WAL
|
||
.WORD 368+6-XX,3281+12-YY,1044+35-XX,3263+61+8-YY ;LONG WALL
|
||
.WORD 375+6-XX,3220+12-YY,383+35-XX,3263+61+8-YY ;VERT POST
|
||
.WORD 248-XX,2944+8-YY,338+8-XX,3085+32-YY ;HUT AT LK DWN
|
||
;ADD SATELITE BULLET RECT HERE
|
||
; .WORD 626-XX,5070-YY,713-XX,5138-YY ;LEFT DISH FOR BNCING
|
||
; .WORD 626+4-XX,5070+1-YY,713-10-XX,5138-10-YY ;LEFT DISH FOR BULLTS
|
||
; .WORD 245+8-XX,4077+13-YY,245+95-XX,4160+81-YY ;TOP/BOT DISH FOR BNCING
|
||
.WORD 245+8+4-XX,4077+13+1-YY,245+95-10-XX,4160+81-10-YY ;TOP/BOT DISH FOR BULLTS
|
||
.WORD 0
|
||
DBRECT4
|
||
;LOCK DOWN AT FIRST HUT
|
||
.WORD 248-XX,2944+8-YY,338+8-XX,3085+32-YY ;HUT AT LK DWN
|
||
.WORD 0
|
||
|
||
AIRRECT1 ;ENTERING AIRPORT
|
||
.WORD 0C80H,12B5H,0CFFH,1306H ;D0A
|
||
.WORD 0D7FH,12B5H,0E18H,1306H
|
||
.WORD 0
|
||
AIRBRECT1
|
||
.WORD 0C80H,12BFH,0CE8H,012F8H
|
||
.WORD 0D84H,12BFH,0E08H,12F8H
|
||
.WORD 0
|
||
ENAIR1 ;AIRPORT GATES
|
||
.WORD 0C80H,12B5H,0E20H,1300H,5
|
||
.WORD 0
|
||
|
||
AOF SLEEP 60
|
||
MOVK 17,A0
|
||
MOVE A0,@ARWOFF ;BLINK ARROW X MORE TIMES THEN KILL!
|
||
DIE
|
||
|
||
SEND_TOP
|
||
;SEND FIRST GROUP OF HULKS DOWN AT PLAYER
|
||
MOVK 5,A8
|
||
SEND1
|
||
SLEEP >40
|
||
MOVE @WORLDTLY,A0,L
|
||
SUBI [35,0],A0
|
||
MOVE @WORLDTLX,A9,L
|
||
SRL 16,A9
|
||
ADDI 170,A9
|
||
MOVY A0,A9
|
||
MOVK 5,A10 ;GO DOWN
|
||
CLR A0
|
||
MOVE A0,@JUMPER
|
||
PUSH A8
|
||
CALLA SEND_GROUP
|
||
PULL A8
|
||
DSJ A8,SEND1
|
||
DIE
|
||
|
||
STRT_FORT
|
||
MOVI FRTCLS,A8 ;PAL NAME
|
||
MOVI PALTMP,A9 ;RAM AREA
|
||
MOVI [58,64],A10 ;BEGIN/END COLOR #
|
||
MOVK 7,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
RETS
|
||
STRT_D
|
||
;DISH CYCLE
|
||
MMTM SP,A8,A9,A10,A11
|
||
MOVI DISHPAL,A8 ;PAL NAME
|
||
MOVI PALTMP3,A9 ;RAM AREA
|
||
MOVI [45,49],A10 ;BEGIN/END COLOR #
|
||
MOVK 7,A11 ;RATE IN TICKS ;9
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
MMFM SP,A8,A9,A10,A11
|
||
RETS
|
||
|
||
SETC2
|
||
;LAND MINE COLOR CYCLE
|
||
MOVI [60,1],A8 ;START AT COLOR 60, CYCLE 1 COLOR
|
||
MOVI BULLET,A9 ;PAL NAME
|
||
MOVI MLIT,A10 ;TABLE TO CYCLE WITH
|
||
MOVK 14,A11 ;RATE OF CYCLE IN TICKS
|
||
CREATE CYCPID,CYCLE_TABLE ;START PROCESS TO DO CYCLE
|
||
|
||
MOVI WARPP,A8 ;PAL NAME
|
||
MOVI PALTMP5,A9 ;RAM AREA
|
||
MOVI [39,42],A10 ;BEGIN/END COLOR #
|
||
MOVK 7,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
RETS
|
||
|
||
DOTXT
|
||
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
||
CALLA BEGINOBJ ;WORLD ADDED IN
|
||
MOVI BLLNP3,A0
|
||
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
||
RETS
|
||
|
||
ZLST .LONG 0,ZULU,SEC1,SEC2,SEC3,DS1,HUT1,HUT2,YESB,NOB,SMASH1
|
||
.LONG NOG1,WOG1,YOG1,JPS1,FF1,HH1,SUR1,SURB1,RD1,GD1,XD1
|
||
.long akhtxt1,akctxt1,aketxt1,pdtxt1,ABT1,MSLT1
|
||
ZLST2 .LONG 0,ZULU2,SEC1A,SEC2A,SEC3A,DS1A,HUT1A,HUT2A,YESB2,NOB2,SMASH2
|
||
.LONG NOG2,WOG2,YOG2,JPS2,FF2,HH2,SUR2,SURB2,RD2,GD2,XD2
|
||
.long akhtxt2,akctxt2,aketxt2,pdtxt2,ABT2,MSLT2
|
||
ZLST3 .LONG 0,ZULU3,SEC1AA,SEC1B,SEC3B,DS1B,HUT1B,HUT2B,YESB3,SEC1B,SMASH3
|
||
.LONG NOG3,WOG3,YOG3,JPS3,SEC1B,HH3,SUR3,SURB3,RD3,GD3,XD3
|
||
.long SEC1B,akctxt3,aketxt3,SEC1B,SEC1B,SEC1B
|
||
|
||
ZULU .BYTE "NUCLEAR REACTOR",0
|
||
ZULU2 .BYTE "ZONE",0
|
||
ZULU3 .BYTE "[CODE= EATS]",0
|
||
|
||
SEC1 .BYTE "DESTROY GENERAL",0
|
||
SEC1A .BYTE "AKHBOOB'S SECRET",0
|
||
SEC1AA .BYTE "NUCLEAR CAPABILITY",0
|
||
SEC1B .BYTE " ",0
|
||
|
||
SEC2 .BYTE "BINGO! TRY PASSWORDS:",0
|
||
SEC2A .BYTE "MARK EATS FOOD",0
|
||
|
||
SEC3 .BYTE "YOU ARE AWESOME!",0
|
||
SEC3A .BYTE "GO HUNT DOWN",0
|
||
SEC3B .BYTE "GENERAL AKHBOOB!",0
|
||
|
||
DS1 .BYTE "YOU ARE SURROUNDED!",0
|
||
DS1A .BYTE "PREPARE FOR TOTAL",0
|
||
DS1B .BYTE "CARNAGE!",0
|
||
|
||
HUT1 .BYTE "YOU ARE THE WEASEL MAN!",0
|
||
HUT1A .BYTE "YOU SHALL ABSORB",0
|
||
HUT1B .BYTE "TOTAL PAIN!",0
|
||
|
||
HUT2 .BYTE "MEET ORCUS!",0
|
||
HUT2A .BYTE "THE MOTHER OF",0
|
||
HUT2B .BYTE "ALL BOSS MONSTERS!",0
|
||
|
||
YESB .BYTE "ALL VEHICHLES DESTROYED!",0
|
||
YESB2 .BYTE "25000 BONUS POINTS AND",0
|
||
YESB3 .BYTE "FREE MAN AWARDED!",0
|
||
|
||
NOB .BYTE "SCUD DESTRUCTION BONUS:",0
|
||
NOB2 .BYTE "5000 POINTS AWARDED!",0
|
||
|
||
SMASH1 .BYTE "ALL SMASH T.V. PLAYERS",0
|
||
SMASH2 .BYTE "SHOULD QUIT NOW AND FLEE",0
|
||
SMASH3 .BYTE "FROM THIS MACHINE.",0
|
||
|
||
NOG1 .BYTE "JEEP DESTRUCTION BONUS:",0
|
||
NOG2 .BYTE "5000 POINTS AND BONUS",0
|
||
NOG3 .BYTE "KEYS AWARDED!",0
|
||
|
||
WOG1 .BYTE "YOU HAVE FAILED TO DESTROY",0
|
||
WOG2 .BYTE "ALL OF THE JETS. YOU ARE",0
|
||
WOG3 .BYTE "A MAJOR DUFUS. NO BONUS.",0
|
||
|
||
YOG1 .BYTE "ALL JETS HAVE BEEN DESTROYED!",0
|
||
YOG2 .BYTE "25000 BONUS POINTS AWARDED!",0
|
||
YOG3 .BYTE "YOU ARE MOST AWESOME!",0
|
||
|
||
JPS1 .BYTE "DESTROY MOST OF THESE",0
|
||
JPS2 .BYTE "JEEPS AND YOUR SCORE",0
|
||
JPS3 .BYTE "WILL BE DOUBLED!",0
|
||
|
||
FF1 .BYTE "FLESH FEAST!",0
|
||
FF2 .BYTE "SUPER BONUS WARP COMING!",0
|
||
|
||
HH1 .BYTE "I WILL NOW FEAST UPON",0
|
||
HH2 .BYTE "YOUR PUNY LITTLE HEAD.",0
|
||
HH3 .BYTE "IT WILL TASTE GOOD!",0
|
||
|
||
SUR1 .BYTE "GENERAL AKHBOOB HAS YOU",0
|
||
SUR2 .BYTE "SURROUNDED!",0
|
||
SUR3 .BYTE "GIVE UP WEASEL!",0
|
||
|
||
SURB1 .BYTE "YOU HAVE BEEN CAPTURED!",0
|
||
SURB2 .BYTE "THERE IS NO ESCAPE!",0
|
||
SURB3 .BYTE "SUBMIT TO THE PAIN!",0
|
||
|
||
RD1 .BYTE "YOU HAVE SURVIVED THIS FAR.",0
|
||
RD2 .BYTE "I AM IMPRESSED. CAN YOU LAST",0
|
||
RD3 .BYTE "TO SEE THE SHOCKING CONCLUSION?",0
|
||
|
||
GD1 .BYTE "GREED FEST!",0
|
||
GD2 .BYTE "GRAB MOST OF THE GEMS",0
|
||
GD3 .BYTE "FOR DOUBLE SCORE BONUS!",0
|
||
|
||
XD1 .BYTE "ENTER GENERAL AKHBOOB'S",0
|
||
XD2 .BYTE "BIO-NUCLEAR FACILITY AND",0
|
||
XD3 .BYTE "HUNT HIM DOWN LIKE A DOG!",0
|
||
|
||
akhtxt1 .BYTE "FIND THE REAL GENERAL AKHBOOB.",0
|
||
akhtxt2 .BYTE "DON'T LET HIM ESCAPE!",0
|
||
|
||
akctxt1 .BYTE "YOU HAVE CAPTURED",0
|
||
akctxt2 .BYTE "GENERAL AKHBOOB!",0
|
||
akctxt3 .BYTE "FRY THE SCUMBAG!",0
|
||
|
||
aketxt1 .BYTE "GENERAL AKHBOOB",0
|
||
aketxt2 .BYTE "HAS ESCAPED!",0
|
||
aketxt3 .BYTE "YOU SUCK...",0
|
||
|
||
pdtxt1 .BYTE "MISSION COMPLETE:",0
|
||
pdtxt2 .BYTE "THE PLEASURE DOMES AWAIT.",0
|
||
|
||
ABT1 .BYTE "FINAL CONFLICT NEAR!",0
|
||
ABT2 .BYTE "YOUR PUNY HEAD WILL SWELL!",0
|
||
|
||
MSLT1 .BYTE "NOW SURVIVE THIS BARRAGE",0
|
||
MSLT2 .BYTE "OF MISSILES!",0
|
||
|
||
.EVEN
|
||
|
||
ZONE_TXT3
|
||
;A10=MESSAGE #
|
||
;A9=ADD IN Y VALUE
|
||
MOVK 1,A0
|
||
JRUC ZN3
|
||
ZONE_TXT2
|
||
;A10=MESSAGE #
|
||
;A9=ADD IN Y VALUE
|
||
CLR A0
|
||
ZN3 MOVE A0,@CAN_EXIT
|
||
MOVE A9,@ADDINY,L
|
||
MOVI COLRPID,A0
|
||
CALLA KIL1C
|
||
CREATE COLRPID,CYCSPECT ;START COLOR CYCLE PROCESS
|
||
SLEEPK 30 ;60
|
||
CALLR GETKP
|
||
ZTOP
|
||
MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
||
MOVI [125-20,0200],A9 ;SCRN Y/X
|
||
MOVE @ADDINY,A10,L
|
||
ADD A10,A9
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
CLR A0
|
||
MOVE A0,@WRLD
|
||
MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
||
MOVE @KEEP1,A8,L
|
||
MOVI [147-20,0200],A9 ;SCRN Y/X
|
||
MOVE @ADDINY,A0,L
|
||
ADD A0,A9
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
MOVE @KEEP4,A8,L
|
||
MOVI [169-20,0200],A9 ;SCRN Y/X
|
||
MOVE @ADDINY,A0,L
|
||
ADD A0,A9
|
||
MOVI 3E3EH,A6 ;COLOR CYCLE DIGITS
|
||
CLR A0
|
||
JSRP STRCNRMO
|
||
CREATE0 FLYERS
|
||
SLEEP 5*60 ;+40
|
||
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
|
||
KILCLR MOVI COLRPID,A0
|
||
CALLA KIL1C
|
||
DIE
|
||
GETKP
|
||
MOVI TXTSND1,A0
|
||
CALLA ONESND
|
||
|
||
SLL 5,A10
|
||
MOVI ZLST2,A0
|
||
ADD A10,A0
|
||
MOVE *A0,A0,L
|
||
MOVE A0,@KEEP1,L
|
||
MOVI ZLST3,A0
|
||
ADD A10,A0
|
||
MOVE *A0,A0,L
|
||
MOVE A0,@KEEP4,L
|
||
MOVK 9,A0
|
||
MOVE A0,@KEEP3
|
||
ADDI ZLST,A10
|
||
MOVE *A10,A8,L
|
||
MOVE A8,@KEEP,L
|
||
RETS
|
||
|
||
JMPSND .WORD >F48E,>18,>813D,0 ;FIEND JUMP SND
|
||
ZONE_TXT
|
||
;A8=COLOR TO USE
|
||
;A8=0C0CH OR 0F0FH
|
||
MOVE A8,@KEEPCL
|
||
CALLR GETKP
|
||
TOP0 MOVK 19,A0
|
||
MOVE A0,@KEEP2
|
||
MOVI JMPSND,A0
|
||
CALLA ONESND
|
||
TOP
|
||
MOVE @KEEPCL,A6
|
||
MOVI [70,0200],A9 ;SCRN Y/X
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
CLR A0
|
||
MOVE A0,@WRLD
|
||
MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
||
CLR A0
|
||
JSRP STRCNRM
|
||
MOVE @KEEPCL,A6
|
||
MOVE @KEEP1,A8,L
|
||
MOVI [92,0100],A9 ;SCRN Y/X
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
CLR A0
|
||
JSRP STRLNRM
|
||
MOVE @KEEP4,A8,L
|
||
MOVI [92,0AFH],A9 ;SCRN Y/X
|
||
MOVI 3B3BH,A6 ;COLOR CYCLE DIGITS
|
||
MOVI RD15FONT,A11 ;FONT TABLE
|
||
CLR A0
|
||
JSRP STRLNRM
|
||
|
||
SLEEPK 1
|
||
MOVE @HALT,A0
|
||
JRNZ KILCLR
|
||
MOVE @KEEP,A8,L
|
||
MOVE @KEEP2,A0
|
||
DEC A0
|
||
MOVE A0,@KEEP2
|
||
JRNN TOP
|
||
SLEEPK 10
|
||
MOVE @KEEP3,A0
|
||
DEC A0
|
||
MOVE A0,@KEEP3
|
||
JRNN TOP0
|
||
MOVI TXTSND2,A0
|
||
CALLA ONESND
|
||
JRUC KILCLR
|
||
|
||
FADEDWN .LONG MAPP,DOMEP,0
|
||
|
||
OBJ1 .STRING "Game Objectives" ;Gulf War Objectives"
|
||
.BYTE 0
|
||
.EVEN
|
||
OBJ2 .STRING "1. Blast Through Enemy Forces" ;Republican Guard"
|
||
.BYTE 0
|
||
.EVEN
|
||
OBJ3 .STRING " To Find General Akhboob."
|
||
.BYTE 0
|
||
.EVEN
|
||
OBJ4 .STRING "2."
|
||
.BYTE 0
|
||
.EVEN
|
||
OBJ4A .STRING "Destroy Unknown Life Forms."
|
||
.BYTE 0
|
||
.EVEN
|
||
OBJ5 .STRING "3."
|
||
.BYTE 0
|
||
.EVEN
|
||
OBJ5A .STRING "Rescue News Reporters"
|
||
.BYTE 0
|
||
.EVEN
|
||
OBJ5B .STRING "And Other Civilians."
|
||
.BYTE 0
|
||
.EVEN
|
||
;INCT .STRING "INCOMING TRANSMISSION"
|
||
; .BYTE 0
|
||
; .EVEN
|
||
MLIT
|
||
;LAND MINES
|
||
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 62
|
||
.word ( 29 *32*32)+( 0 *32)+( 0 ) ; color 63
|
||
.WORD -1 ;-1 BECAUSE WE ARE CYCLING 1
|
||
;COPY IT AGAIN IF WE WERE CYCLING MORE
|
||
; .word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 62
|
||
; .word ( 29 *32*32)+( 0 *32)+( 0 ) ; color 63
|
||
|
||
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
|
||
|
||
;
|
||
; 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
|
||
MOVE @WSPEED,A0 ;WINDOW SPEED
|
||
ORI 1,A0
|
||
JSRP OBJEXP32
|
||
MOVE A8,A8
|
||
OWINDOWX:
|
||
MOVI OWSPD,A0
|
||
MOVE A0,@WSPEED
|
||
RETP
|
||
|
||
*INIT TABLE FOR WINDOW
|
||
WINDINIT
|
||
.LONG 0,0,FONT7A ;AFONT0
|
||
.WORD 20001,DMACAL,CLSNEUT|TYPTEXT|SUBWNDW ;7FD4H
|
||
.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
|
||
JSRP OBJEXP32
|
||
CALLA DELOBJA8
|
||
RETP
|
||
DELWNDW
|
||
MOVE @OBJPTR,A0,L
|
||
MOVE A0,A8
|
||
jauc DELOBJ
|
||
|
||
;
|
||
; 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
|
||
sll 32-8,a0 ;0-255
|
||
srl 32-8,a0
|
||
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
|
||
SLEEPK 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
|
||
jrgt FA3YOK
|
||
MOVK 1,A0
|
||
SLL 16,A0
|
||
MOVY A0,A3
|
||
FA3YOK:
|
||
CLR A0
|
||
MOVX A3,A0
|
||
MOVE A0,A0
|
||
jrgt 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
|
||
SLEEPK 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!
|
||
; A11=PLAYER INDEX
|
||
PSTAT:
|
||
MOVK 2,A0
|
||
MOVE A0,@ARWOFF ;BLINK ARROW X MORE TIMES THEN KILL!
|
||
SLEEP 60
|
||
MOVK 1,A0
|
||
MOVE A0,@HALT
|
||
PBUYLPLP:
|
||
CREATE BUYINPID,BUYINLP ;CREATE BUYIN LOOP WINDOW
|
||
MOVE A0,A0
|
||
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:
|
||
CLR A0
|
||
MOVE A0,@HALT
|
||
DIE ;CIAO
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GAME OVER PROCESS *
|
||
* *
|
||
**************************************************************************
|
||
GAMEOVER:
|
||
MOVI AUDBONE,A0 ;DEC CMOS CNT 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,@THIS_PLYR
|
||
MOVI P1DATA,A14
|
||
MOVE A0,@P1CTRL
|
||
MOVE A0,@P2CTRL
|
||
|
||
CALLA UNIT_CLR ;CLEAR THE FACTIONS OF FRACTIONS
|
||
CREATE0 GAMEOTXT ;INDPID
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@HALT
|
||
|
||
SOUND1 NOWAY
|
||
SLEEP 080H ;LET EVERYONE SEE PLEASE
|
||
SOUND1 ahkbang
|
||
CREATE0 KILGOTXT
|
||
|
||
MOVE @SCORE_FLAG,A0
|
||
JRZ NOTON
|
||
CALLA INIT_SCORE ;TURNS ON REGULAR IMAGES FOR SCORES
|
||
|
||
NOTON SLEEPK 2
|
||
CLR A0
|
||
MOVE A0,@SCORE_FLAG
|
||
JSRP WNDWON
|
||
CLR A0
|
||
MOVE A0,@IRQSKYE ;AUTOERASE TO BLACK
|
||
SLEEPK 01 ;40H ;20H
|
||
GAMEDETH
|
||
CALLA UNIT_CLR ;CLEAR THE FACTIONS OF FRACTIONS
|
||
|
||
CALLA CLR_ALL
|
||
MOVI 01000h,A1
|
||
CLR A0
|
||
CALLA KILALL ;KILL ALL PROCS, EXCEPT FOR COINS
|
||
|
||
CALLA KILBGND
|
||
SLEEPK 2
|
||
CALLA WIPEOUT
|
||
SLEEPK 1
|
||
CALLA CLRPAL
|
||
SLEEPK 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!
|
||
MOVK 1,A0
|
||
MOVE A0,@hisclong ;KEEP HIGH SCORE TABLE ON LONGER!
|
||
GENDNOHS
|
||
CALLA ATSTRT2 ;START ATTRACT MODE
|
||
DIE
|
||
|
||
KILGOTXT
|
||
SLEEPK 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
|
||
JRUC INIBM1
|
||
INIBMIN:
|
||
MOVI INSRTMSG,A8
|
||
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
|
||
;ONLY HERE WHEN IT IS A ONE PLAYER GAME.
|
||
;CNTDIG1/2 WW WILL SYNC WITH
|
||
MOVE @CNTDIG1,A8
|
||
JRNZ YUP
|
||
MOVE @CNTDIG2,A8
|
||
YUP
|
||
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 @CNTDIG1,A8
|
||
JRNZ YUP1
|
||
MOVE @CNTDIG2,A8
|
||
YUP1 DEC A8
|
||
PUSH A8
|
||
MOVE A8,@BTIME,W
|
||
JRNN YUP10
|
||
CLR A8
|
||
YUP10 CALLA HEXTOASC
|
||
|
||
CALLA GWINCENT ;POSITION
|
||
ADDI [24,0],A0
|
||
MOVE @WORLDTL,A1,L
|
||
SUB A1,A0
|
||
MOVE A0,A9
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@LOWZ
|
||
CLR A0
|
||
MOVI COLORA,A6 ;COLOR CYCLE COLOR
|
||
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
|
||
MOVK 1,A0
|
||
MOVE A0,@LOWZ
|
||
CLR A0
|
||
MOVI BRGHT,A6 ;BRIGHT 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
|
||
|
||
MOVI TOMSG,A8
|
||
MOVI COLORS,A6
|
||
|
||
SUBI [18,0],A0
|
||
MOVE @WORLDTL,A1,L
|
||
SUB A1,A0
|
||
MOVE A0,A9
|
||
MOVK 1,A0
|
||
MOVE A0,@LOWZ
|
||
CLR A0
|
||
JSRP STRCNRMO ;"TO"
|
||
|
||
MOVI CONMSG,A8
|
||
MOVI COLORS,A6
|
||
|
||
CALLA GWINCENT ;POSITION
|
||
ADDI [3,0],A0
|
||
MOVE @WORLDTL,A1,L
|
||
SUB A1,A0
|
||
MOVE A0,A9
|
||
MOVK 1,A0
|
||
MOVE A0,@LOWZ
|
||
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:
|
||
; .REF SPECT
|
||
; calla SPECT ;Start scorepal cycle
|
||
|
||
CLR A0
|
||
MOVI BRGHT,A6 ;ROBO_LASER
|
||
; MOVI COLORA,A6 ;COLOR CYCLE COLOR
|
||
MOVI GAMOVMSG,A8
|
||
MOVI [17+SCRNTOP,200],A9 ;37
|
||
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
|
||
MOVI [41+SCRNTOP,200],A10
|
||
SLEEP 2*60 ;LET CHUNKS DISSIPATE
|
||
;DID I BUYIN ALREADY? IF SO, GET OUT OF HERE
|
||
CLR A9
|
||
MOVE A9,@WNDWFLG
|
||
MOVE @THIS_PLYR,A0,W
|
||
JRZ NO_QUICK
|
||
MOVK 1,A9 ;TELL CWINDOW NO WINDOW UP!
|
||
MOVE A9,@WNDWFLG
|
||
JRUC BUYLPBAK
|
||
NO_QUICK
|
||
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
|
||
SLEEPK 2
|
||
; CREATE BUYINPID,STRTBUY
|
||
;STRTBUY
|
||
MOVI BUYMSC,A0
|
||
CALLA ONESNDOVR
|
||
; DIE
|
||
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
|
||
BUYLPOLP:
|
||
MOVI BUYTICK,A11
|
||
BUYLPILP:
|
||
;CHECK IF SOMEONE JUST HIT START (BOUGHT IN)
|
||
;IF SO, JRUC TO CLOSE BOX DOWN
|
||
;OTHERWISE, CONT COUNT DOWN
|
||
SLEEPK 1
|
||
MOVE @THIS_PLYR,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
|
||
JSRP CWINDOW
|
||
CLR A0
|
||
MOVE A0,@HALT
|
||
MOVE A0,@EHALT
|
||
BUYINLPDI:
|
||
DIE
|
||
|
||
*
|
||
*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
|
||
MOVE @PLYRPRCS+32,A1,L
|
||
MOVI P2DATA,A11
|
||
XX2 MOVI 320,A2
|
||
MOVE A2,*A1(DELYDET),W
|
||
CLR A0
|
||
MOVE A0,@HALT,W ;UN-FREEZE GAME PLAY
|
||
MOVE A0,@EHALT,W
|
||
MOVE A0,@THIS_PLYR,W
|
||
CALLA CLRBTIME
|
||
CALLA CLRBMESS
|
||
MOVE @WNDWFLG,A0
|
||
JRNZ NO_WIN
|
||
JSRP CWINDOW
|
||
NO_WIN
|
||
SOUND1 MUSICOFF
|
||
CREATE0 DOMUSE
|
||
MOVK 1,A0
|
||
MOVE A0,@DISPLAYON,W ;TURN THE DISPLAY PROC ON
|
||
MOVI INGAME,A0
|
||
MOVE A0,@GAMSTATE,W ;START YOUR ENGINES
|
||
DIE
|
||
DOMUSE SLEEPK 20
|
||
MOVE @WAVE,A1
|
||
SLL 5,A1
|
||
ADDI MUSLIST,A1
|
||
MOVE *A1,A0,L
|
||
MOVE A0,A9
|
||
CALLA ONESNDOVR ;START FIRST WORLD MUSIC
|
||
; SLEEPK 3
|
||
; MOVE A9,A0
|
||
; CALLA ONESND ;START FIRST WORLD MUSIC
|
||
DIE
|
||
MUSLIST .LONG TUNE2,TUNE7,TUNE7,TUNE7,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2
|
||
.LONG TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE6,TUNE4,TUNE2,TUNE2,TUNE5
|
||
.LONG TUNE2,TUNE2,TUNER,TUNE7,TUNE5,TUNE5,TUNE5,TUNE5,TUNE1,TUNE2
|
||
.LONG TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNEB,TUNEB,TUNE2,TUNER,TUNER
|
||
.LONG TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2
|
||
;28,22
|
||
;TUNE1 .WORD >F3FE,10,>8001,0 ;REPORTER TUNE AT INTRO
|
||
TUNER .word >f3fe,10,>800d,0 ;Rackup tune
|
||
TUNE4 .WORD >F3F0,2,>8009,0 ;ORCUS TUNE
|
||
TUNE5 .WORD >F3F0,2,>8008,0 ;AIRPORT TUNE
|
||
TUNE6 .WORD >F3F0,2,>8008,0 ;UPPER DESERT TUNE
|
||
TUNEB .WORD >F3F0,2,>800E,0 ;END BOSS TUNE
|
||
TUNE7 .WORD >F3F0,1,>800C,0 ;WARP MUSIC
|
||
;PUT IN HELPER ALSO!
|
||
|
||
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:
|
||
CALLR ZERO_BITS
|
||
MOVE A0,@BAKLST,L
|
||
MMFM SP,A0,A2,A3,A4,A5
|
||
RETS
|
||
ZERO_BITS
|
||
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
|
||
RETS
|
||
|
||
COLRSTRT ;CALLED FROM DIAGNOSTICS CODE TO COLOR CYCLE MENUS
|
||
|
||
MOVI COLRPID,A0
|
||
CLR A1
|
||
MOVE A1,@IRQSKYE
|
||
move a1,@FPALRAM,L
|
||
CALLA KIL1C ;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
|
||
move a1,@FPALRAM,L
|
||
CALLA KIL1C ;KILL ALL COLOR UPDATE PROCESSES
|
||
MOVI SCOREPAL,A0 ;SCORE AREA PALETTE
|
||
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
|
||
|
||
|
||
;
|
||
;BIG FIEND DATA STRUCTURE
|
||
;
|
||
BODL .EQU PDATA
|
||
BODR .EQU PDATA+32
|
||
JAWL .EQU PDATA+64
|
||
JAWR .EQU PDATA+96
|
||
; .EQU PDATA+128
|
||
; .EQU PDATA+160
|
||
; .EQU PDATA+192
|
||
; .EQU PDATA+224
|
||
; .EQU PDATA+256
|
||
; .EQU PDATA+288
|
||
; .EQU PDATA+320
|
||
; .EQU PDATA+352
|
||
;IPIECE
|
||
; .EQU PDATA+384
|
||
; .EQU PDATA+384+32
|
||
EYEL .EQU PDATA+384+64
|
||
EYER .EQU PDATA+384+96
|
||
CHKL .EQU PDATA+384+128
|
||
CHKR .EQU PDATA+384+160
|
||
CHKLB .EQU PDATA+384+192
|
||
CHKRB .EQU PDATA+384+224
|
||
; .EQU PDATA+384+192+32
|
||
; .EQU PDATA+384+224+64
|
||
; .EQU PDATA+384+192+96
|
||
; .EQU PDATA+384+224+128
|
||
|
||
BIG_EAT
|
||
CREATE INTROPID,LHLPS
|
||
; SLEEP 020H ;30H
|
||
;TURN ON ALL PIECES
|
||
MOVK 24,A9
|
||
TP MOVE A9,A0
|
||
SLL 5,A0
|
||
ADDI ONLIST,A0
|
||
MOVE *A0,A14,L
|
||
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 38,A11 ;X
|
||
MOVI 60H+100,A10 ;Y
|
||
MOVE A10,*A8(OYPOS),W
|
||
MOVE A11,*A8(OXPOS),W
|
||
CALLA ADJSTWTL
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A9,A0
|
||
DEC A0
|
||
SLL 5,A0
|
||
ADD A13,A0
|
||
ADDI BODL,A0
|
||
MOVE A8,*A0,L
|
||
DEC A9
|
||
JRNZ TP
|
||
;OBJECTS ALL ON
|
||
CALLR LINE_UP ;ADJUST ALL PARTS TO MATCH TANK LEFT
|
||
SLEEP 030H
|
||
|
||
MOVE *A13(CHKLB),A0,L
|
||
CALLA OBJOFF
|
||
MOVE *A13(CHKRB),A0,L
|
||
CALLA OBJOFF
|
||
MOVE *A13(EYEL),A8,L
|
||
CREATE INTROPID,DOIL
|
||
MOVE *A13(EYER),A8,L
|
||
CREATE INTROPID,DOIR
|
||
MOVE *A13(JAWL),A8,L
|
||
CREATE INTROPID,DOJAW
|
||
MOVE *A13(JAWR),A8,L
|
||
CREATE INTROPID,DOJAW
|
||
CREATE INTROPID,DOCHEWSND
|
||
|
||
MOVE A8,A9
|
||
MOVE *A13(CHKL),A8,L
|
||
CREATE INTROPID,CHKCHNG
|
||
MOVE *A13(CHKR),A8,L
|
||
CREATE INTROPID,CHKCHNG
|
||
MOVE *A13(CHKLB),A8,L
|
||
CREATE INTROPID,CHKCHNGB
|
||
MOVE *A13(CHKRB),A8,L
|
||
CREATE INTROPID,CHKCHNGB
|
||
MOVE A13,A10
|
||
CREATE INTROPID,FLOW
|
||
|
||
MOVE *A13(BODL),A8,L
|
||
CREATE INTROPID,DOUP
|
||
CREATE INTROPID,DOUPSNDS
|
||
CREATE INTROPID,DOHZ
|
||
|
||
TOID_TOP
|
||
CALLR LINE_UP ;ADJUST ALL PARTS TO MATCH TANK LEFT
|
||
SLEEPK 1
|
||
JRUC TOID_TOP
|
||
CHKCHNG SLEEPK 1
|
||
MOVE *A9(OIMG),A0,L
|
||
CMPI BTTMJAW,A0
|
||
JRZ CH1
|
||
CMPI BTJ2,A0
|
||
JRZ CH2
|
||
MOVI CHK3,A1
|
||
CHO
|
||
MOVE *A8(OFLAGS),A4
|
||
CALLA ANI
|
||
JRUC CHKCHNG
|
||
CH1
|
||
MOVI CHK1,A1
|
||
JRUC CHO
|
||
CH2
|
||
MOVI CHK2,A1
|
||
JRUC CHO
|
||
CHKCHNGB
|
||
SLEEPK 1
|
||
MOVE *A9(OIMG),A0,L
|
||
CMPI BTTMJAW,A0
|
||
JRZ BH1
|
||
CMPI BTJ2,A0
|
||
JRZ BH2
|
||
MOVI CHK3A,A1
|
||
BHO
|
||
MOVE A8,A0
|
||
CALLA OBJON
|
||
; MOVI 110H,A0
|
||
; MOVE A0,*A8(OZPOS)
|
||
MOVE *A8(OFLAGS),A4
|
||
CALLA ANI
|
||
JRUC CHKCHNGB
|
||
BH1
|
||
MOVE A8,A0
|
||
CALLA OBJOFF
|
||
; MOVK 1,A0
|
||
; MOVE A0,*A8(OZPOS)
|
||
JRUC CHKCHNGB
|
||
BH2
|
||
MOVI CHK2A,A1
|
||
JRUC BHO
|
||
|
||
DOJAW SLEEP 011EH
|
||
MOVI JAWLST,A9
|
||
JSRP FRANIMQ
|
||
MOVK 4,A10 ;2
|
||
DJH
|
||
MOVI JAWLST2,A9
|
||
JSRP FRANIMQ
|
||
DSJS A10,DJH
|
||
MOVI JAWLST3,A9
|
||
JSRP FRANIMQ
|
||
SLEEP 60
|
||
DIE
|
||
DOCHEWSND
|
||
SLEEP 012EH
|
||
CREATE INTROPID,OUCHS
|
||
MOVK 20,A9 ;11
|
||
CDOC1
|
||
MOVI CHEW,A0
|
||
CALLA ONESND
|
||
SLEEP 12H
|
||
DSJS A9,CDOC1
|
||
SLEEP 32H-2FH
|
||
MOVI GULPSND,A0
|
||
CALLA ONESND
|
||
SLEEP 2FH
|
||
MOVI BURP,A0
|
||
CALLA ONESND
|
||
DIE
|
||
OUCHS
|
||
MOVI fpain1,a0
|
||
calla ONESNDOVR
|
||
SLEEP 64
|
||
MOVI fpain3,a0
|
||
calla ONESND
|
||
SLEEPK 32
|
||
MOVI fpain3,a0
|
||
calla ONESND
|
||
SLEEPK 32
|
||
MOVI fpain3,a0
|
||
calla ONESND
|
||
SLEEPK 32
|
||
MOVI fpain3,a0
|
||
calla ONESND
|
||
SLEEPK 32
|
||
MOVI fpain3,a0
|
||
calla ONESND
|
||
SLEEP 0BFH-32-32-32 ;33
|
||
MOVI fpain4,a0
|
||
calla ONESND
|
||
DIE
|
||
LHLPS
|
||
SLEEP 3EH
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
SLEEP 24H+2EH
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
SLEEP 2EH
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
SLEEP 30H
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
SLEEP 2FH
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
SLEEP 26H
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
DIE
|
||
HELP .WORD >F97E,>24,>80C1,0 ;"HELP"
|
||
|
||
fpain1 .word >f165,20,>80f6,0 ;Player in pain
|
||
fpain3 .word >f160,20,>80fd,0 ;^
|
||
fpain4 .word >f160,20,>80f9,0 ;^
|
||
|
||
CHEW .WORD >F5E5,20,>8129,0
|
||
BURP .WORD >F5E5,20,>8127,0
|
||
GULPSND .word >f0e6,10,>8132,0 ;^
|
||
|
||
JAWLST
|
||
.LONG BTTMJAW
|
||
.WORD 2
|
||
.LONG BTJ2
|
||
.WORD 2
|
||
.LONG BTJ3
|
||
.WORD 0FH ;01CH
|
||
.LONG 0
|
||
JAWLST3
|
||
.LONG BTTMJAW
|
||
.WORD 5
|
||
.LONG BTJ2
|
||
.WORD 5
|
||
.LONG BTTMJAW
|
||
.WORD 60
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTJ3
|
||
.WORD 60 ;BURP
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTTMJAW
|
||
.WORD 5
|
||
.LONG 0
|
||
JAWLST2
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTTMJAW
|
||
.WORD 3
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTJ3
|
||
.WORD 5
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTTMJAW
|
||
.WORD 10
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTTMJAW
|
||
.WORD 10
|
||
.LONG BTJ2
|
||
.WORD 5
|
||
.LONG BTJ3
|
||
.WORD 5
|
||
.LONG BTJ2
|
||
.WORD 5
|
||
.LONG BTTMJAW
|
||
.WORD 5
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTJ3
|
||
.WORD 3
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTTMJAW
|
||
.WORD 3
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTJ3
|
||
.WORD 3
|
||
.LONG BTJ2
|
||
.WORD 3
|
||
.LONG BTTMJAW
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
DOIL SLEEP 08CH
|
||
DOIL1 MOVI ILFT,A9
|
||
JSRP FRANIMQ
|
||
JRUC DOIL1
|
||
DOIR SLEEP 08CH
|
||
DOIR1 MOVI IRGT,A9
|
||
JSRP FRANIMQ
|
||
JRUC DOIR1
|
||
|
||
ILFT
|
||
.LONG IPC3
|
||
.WORD 03EH
|
||
.LONG IPC1A
|
||
.WORD 5
|
||
.LONG IPC2
|
||
.WORD 30
|
||
.LONG IPC1A
|
||
.WORD 5
|
||
.LONG IPC3
|
||
.WORD 20
|
||
.LONG IPC1A
|
||
.WORD 5
|
||
.LONG IPC4
|
||
.WORD 048H
|
||
.LONG IPC3
|
||
.WORD 5
|
||
.LONG IPC1A
|
||
.WORD 5
|
||
.LONG 0
|
||
|
||
IRGT
|
||
.LONG IPC2
|
||
.WORD 03EH
|
||
.LONG IPC1A
|
||
.WORD 5
|
||
.LONG IPC3
|
||
.WORD 30
|
||
.LONG IPC1A
|
||
.WORD 5
|
||
.LONG IPC2
|
||
.WORD 20
|
||
.LONG IPC1A
|
||
.WORD 5
|
||
.LONG IPC4
|
||
.WORD 048H
|
||
.LONG IPC2
|
||
.WORD 5
|
||
.LONG IPC1A
|
||
.WORD 5
|
||
.LONG 0
|
||
|
||
DOUPSNDS
|
||
MOVK 4,A9
|
||
DOUPS1 SLEEP 40
|
||
MOVI groanlndsnd,A0
|
||
CALLA ONESND
|
||
DSJS A9,DOUPS1
|
||
DIE
|
||
groanlndsnd .word >f185,20,>8113,0 ;^ interruptable
|
||
|
||
DOUP MOVI -8000H,A0
|
||
SWAP A10,A13
|
||
CALLR MOD_VELS
|
||
SWAP A10,A13
|
||
SLEEP 0F4H
|
||
CLR A0
|
||
SWAP A10,A13
|
||
CALLR MOD_VELS
|
||
SWAP A10,A13
|
||
SLEEP 02EH
|
||
MOVI 30000H,A0
|
||
SWAP A10,A13
|
||
CALLR MOD_VELS
|
||
SWAP A10,A13
|
||
SLEEPK 6
|
||
CLR A0
|
||
SWAP A10,A13
|
||
CALLR MOD_VELS
|
||
SWAP A10,A13
|
||
SLEEP 10*60 ;6*60
|
||
;BURP OVER
|
||
MOVI 40000H,A0
|
||
SWAP A10,A13
|
||
CALLR MOD_VELS
|
||
SWAP A10,A13
|
||
MOVI groanlndsnd,A0
|
||
CALLA ONESND
|
||
SLEEP 20
|
||
MOVI groanlndsnd,A0
|
||
CALLA ONESND
|
||
SLEEP 0F4H-20
|
||
CLR A0
|
||
SWAP A10,A13
|
||
CALLR MOD_VELS
|
||
SWAP A10,A13
|
||
DIE
|
||
DOHZ SLEEP 12CH
|
||
;BITING DOWN ON SOLDIER
|
||
MOVI 44H,A9 ;36
|
||
DOHZ1 SLEEPK 5
|
||
MOVE *A8(OYPOS),A0
|
||
XORI 7,A0
|
||
MOVE A0,*A8(OYPOS)
|
||
; MOVE *A8(OXPOS),A0
|
||
; XORI 3,A0
|
||
; MOVE A0,*A8(OXPOS)
|
||
SWAP A13,A10
|
||
CALLR LINE_UP
|
||
SWAP A13,A10
|
||
DSJ A9,DOHZ1
|
||
DIE
|
||
MOD_VELS
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE *A13(PDATA),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+32),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+64),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+96),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+128),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+160),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+192),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+224),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+256),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+288),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+320),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+352),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+32),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+64),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+96),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+128),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+160),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+192),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+224),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+224+32),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+224+64),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+224+96),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(PDATA+384+224+128),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
RETS
|
||
|
||
LINE_UP
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;ADJUST LEFT SIDE TORSO
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*2),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST RGT TORSO
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*3),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;ADJUST LEFT SIDE ARM
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*4),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST RIGHT SIDE ARM
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*5),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;ADJUST LEFT SIDE TREAD
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*6),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST RIGHT SIDE TREAD
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*7),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;ADJUST LEFT FRONT TREAD
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*8),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST RIGHT FRONT TREAD
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*9),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;DO RIGHT SIDE SHADOW
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*10),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;DO FRONT SHADOW
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*11),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
; SUBI 010000H,A3 ;SUB 1 FROM X
|
||
; SUBI 010000H,A2 ;SUB 1 FROM Y
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*12),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*13),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*14),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*15),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*16),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*17),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*18),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*19),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 030000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*20),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 0FB0000H,A2 ;SUB 1 FROM Y
|
||
SUBI 0310000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*21),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 0FB0000H,A2 ;SUB 1 FROM Y
|
||
ADDI 02E0000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*22),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 01090000H,A2 ;SUB 1 FROM Y
|
||
SUBI 0740000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA+32*23),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 01090000H,A2 ;SUB 1 FROM Y
|
||
ADDI 0710000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;
|
||
RETS
|
||
|
||
;
|
||
ONLIST .LONG 0,T11,T12,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T13,T14,T15,T16,T17
|
||
.LONG T18,T19,T20,T21,T22,T23,T24
|
||
T1 ;TANK LEFT
|
||
.LONG 0,0,BTTMJAW
|
||
.WORD 0102H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T2 ;TANK RGT
|
||
.LONG 0,0,BTTMJAW
|
||
.WORD 0102H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T3 ;TANK LEFT
|
||
.LONG 0,0,TPHD
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T4 ;TANK RGT
|
||
.LONG 0,0,TPHD
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T5 ;TANK LEFT
|
||
.LONG 0,0,UPPRJAW
|
||
.WORD 0104H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T6 ;TANK RGT
|
||
.LONG 0,0,UPPRJAW
|
||
.WORD 0104H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T7 ;TANK LEFT
|
||
.LONG 0,0,INNRMTH
|
||
.WORD 0FAH,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T8 ;TANK RGT
|
||
.LONG 0,0,INNRMTH
|
||
.WORD 0FAH,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T9 ;TANK LEFT
|
||
.LONG 0,0,BOD1
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T10 ;TANK RGT
|
||
.LONG 0,0,BOD1
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T11 ;TANK LEFT
|
||
.LONG 0,0,BOD2
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T12 ;TANK RGT
|
||
.LONG 0,0,BOD2
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T13 ;TANK LEFT
|
||
.LONG 0,0,IPIECE
|
||
.WORD 0105H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T14 ;TANK RGT
|
||
.LONG 0,0,IPIECE
|
||
.WORD 0105H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T15 ;TANK LEFT
|
||
.LONG 0,0,IPC2
|
||
.WORD 0105H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T16 ;TANK RGT
|
||
.LONG 0,0,IPC2
|
||
.WORD 0105H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T17 ;TANK LEFT
|
||
.LONG 0,0,CHK1
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T18 ;TANK RGT
|
||
.LONG 0,0,CHK1
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T19 ;TANK LEFT
|
||
.LONG 0,0,CHK2A
|
||
.WORD 0110H,DMAWNZ|M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T20 ;TANK RGT
|
||
.LONG 0,0,CHK2A
|
||
.WORD 0110H,DMAWNZ|M_NOCOLL|M_FLIPH,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T21 ;TANK LEFT
|
||
.LONG 0,0,BOD1A
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL+M_FLIPV,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T22 ;TANK RGT
|
||
.LONG 0,0,BOD1A
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL|M_FLIPH+M_FLIPV,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T23 ;TANK LEFT
|
||
.LONG 0,0,BOD2A
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL+M_FLIPV,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
T24 ;TANK RGT
|
||
.LONG 0,0,BOD2A
|
||
.WORD 0100H,DMAWNZ|M_NOCOLL|M_FLIPH+M_FLIPV,CLSNEUT|TYPNEUT
|
||
.LONG 0,0
|
||
|
||
|
||
FLOW SLEEP 014CH
|
||
MOVI 40H,A9
|
||
KM1
|
||
CREATE INTROPID,SPEW
|
||
CREATE INTROPID,SPEW
|
||
CREATE INTROPID,SPEW
|
||
CREATE INTROPID,SPEW
|
||
CREATE INTROPID,SPEW
|
||
CREATE INTROPID,SPEW2
|
||
CREATE INTROPID,SPEW2
|
||
SLEEPK 4
|
||
DEC A9
|
||
JRNZ KM1
|
||
DIE
|
||
|
||
BLD ;ARM RGT
|
||
.LONG 0,0,bldclt1
|
||
.WORD 108H,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0H,0H
|
||
BLD2 ;ARM RGT
|
||
.LONG 0,0,bldclt1
|
||
.WORD 118H,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0H,0H
|
||
SPEW2
|
||
MOVI BLD2,A14 ;BLOOD
|
||
JRUC FAD
|
||
SPEW
|
||
MOVI BLD,A14 ;BLOOD
|
||
FAD 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
|
||
clr a0
|
||
move a0,*a8(OCONST)
|
||
MOVE A8,A9
|
||
MOVE *A10(BODL),A8,L
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
; ADDI 00120000H,A3 ;X
|
||
ADDI 0380000H,A2 ;Y
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
|
||
MOVI -018000H,B0
|
||
MOVI 018000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI -010000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
|
||
|
||
MOVI BLOOD_LST1,A9
|
||
BTST 0,A0
|
||
JRZ KOP
|
||
MOVI OVALBLD2,A9
|
||
KOP jauc FRQDELDIE
|
||
|
||
OVALBLD2
|
||
;OVAL BLOOD EXPLOSION
|
||
.LONG bldclt1
|
||
.WORD NEWPALET|1
|
||
.LONG RDBOOM ;ONUP1
|
||
.LONG bldclt2
|
||
.WORD 4
|
||
.LONG bldclt3
|
||
.WORD 4
|
||
.LONG bldclt4
|
||
.WORD 4
|
||
.LONG bldclt5
|
||
.WORD 4
|
||
.LONG bldclt6
|
||
.WORD 4
|
||
.LONG bldclt7
|
||
.WORD 4
|
||
.LONG bldclt8
|
||
.WORD 4
|
||
.LONG 0
|
||
;TEST SLEEP 120
|
||
; MOVI 10,A2
|
||
; CALLA O_MINE
|
||
; DIE
|
||
CANDY .STRING "CANDY BLITZER"
|
||
.BYTE 0
|
||
.EVEN
|
||
CANDY2 .STRING "REPORTING LIVE"
|
||
.BYTE 0
|
||
.EVEN
|
||
CANDY2A .STRING "BNN"
|
||
.BYTE 0
|
||
.EVEN
|
||
BLOB1
|
||
.LONG [319-101,0],[210-185,0],BOON1
|
||
.WORD 472,DMAWNZ,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
BLOB2
|
||
.LONG [16BH,0],[210-185,0],BOON1
|
||
.WORD 472,DMAWNZ|M_FLIPH,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
BLOB3
|
||
.LONG [0100H,0],[268-185,0],BOON2
|
||
.WORD 472,DMAWNZ|M_FLIPH,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
BLOB1A
|
||
.LONG [218-100,0],[210-185,0],BOON1
|
||
.WORD 472,DMAWNZ,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
BLOB2A
|
||
.LONG [16BH-100,0],[210-185,0],BOON1
|
||
.WORD 472,DMAWNZ|M_FLIPH,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
BLOB3A
|
||
.LONG [0130H-100,0],[268-185,0],BOON2
|
||
.WORD 472,DMAWNZ,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
CLOB1
|
||
.LONG [05DH,0],[066H,0],CENS1
|
||
.WORD 472,DMAWNZ,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
CLOB2
|
||
.LONG [094H,0],[04DH,0],CENS2
|
||
.WORD 472,DMAWNZ,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
CLOB3
|
||
.LONG [0C7H,0],[037H,0],CENS3
|
||
.WORD 472,DMAWNZ,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
CLOB4
|
||
.LONG [0F3H,0],[01EH,0],CENS4
|
||
.WORD 472,DMAWNZ,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
BULT
|
||
.LONG 0,0,BULLFT
|
||
.WORD 472,DMAWNZ|M_NOCOLL,CLSNEUT|TYPTEXT
|
||
.LONG 0,0
|
||
CANDY3 .STRING "After The War Of 1999, Reporters"
|
||
.BYTE 0
|
||
.EVEN
|
||
CANDY4 .STRING "Swarmed Into The War Zone. . ."
|
||
.BYTE 0
|
||
.EVEN
|
||
CANDY3A .STRING "Soon After, Hundreds Of Reporters"
|
||
.BYTE 0
|
||
.EVEN
|
||
CANDY4A .STRING "And Other Civilians Are Missing. . ."
|
||
.BYTE 0
|
||
.EVEN
|
||
CANDY5 .STRING "Meanwhile, back at U.S. Military H.Q.,"
|
||
.BYTE 0
|
||
.EVEN
|
||
CANDY6 .STRING "the decision is made..."
|
||
.BYTE 0
|
||
.EVEN
|
||
|
||
FLYERS
|
||
;SEARCH FOR ALL TEXT LETTERS
|
||
;START A PROC FOR EACH ONE
|
||
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTOBJ
|
||
JRZ FY1
|
||
MOVE A0,A8
|
||
CREATE0 ALETTER
|
||
CLR A0
|
||
MOVE A0,*A8(OID)
|
||
JRUC FLYERS
|
||
FY1 CLR A0
|
||
MOVE A0,@FLYFLG
|
||
MOVE @CAN_EXIT,A0
|
||
JRZ FY2
|
||
;MESSAGE I WILL ALLOW EXITING FROM
|
||
MOVI 4*60,A0
|
||
|
||
.REF sleep_var
|
||
CALLA sleep_var
|
||
JRUC FY3
|
||
|
||
FY2 SLEEP 4*60
|
||
FY3 MOVK 1,A0
|
||
MOVE A0,@FLYFLG
|
||
CLR A0
|
||
MOVE A0,@CAN_EXIT
|
||
|
||
MOVE @WAVE,A0
|
||
SUBK 32,A0
|
||
JAZ SUCIDE
|
||
CLR A0
|
||
MOVE A0,@HALT ;FROM RACKUP
|
||
MOVI TXTSND2,A0
|
||
CALLA ONESND
|
||
DIE
|
||
TXTSND1 .WORD >F3F7,>8,>80AE,0
|
||
TXTSND2 .WORD >F3F7,>8,>80B1,0
|
||
|
||
ALETTER
|
||
;REMEMBER Y/X-400 COORIDINATE
|
||
;RANDOMLY REPOSITION LETTER JUST OFF SCRN
|
||
;SEND IT TOWARD CORRECT COORIDINATE
|
||
;WHEN IT IS CLOSE, LOCK IT DOWN
|
||
;SLEEP UNTIL FLAG IS SET
|
||
;SEND LETTER FLYING OFF SCRN
|
||
;A8=LETTER
|
||
SLEEPK 3
|
||
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
||
MOVE A0,*A8(OID)
|
||
|
||
LT2 SLEEPK 1
|
||
MOVE @FLYFLG,A0
|
||
JRZ LT2
|
||
; MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
||
; MOVE A0,*A8(OID)
|
||
;A5=X COORD TO SEEK
|
||
;A6=Y COORD TO SEEK
|
||
;A7=MULTIPLIER OF VELOCITY
|
||
MOVE @WORLDTLX,A0,L
|
||
ADDI [200,0],A0
|
||
SRL 16,A0
|
||
MOVE A0,A5
|
||
MOVE @WORLDTLY,A0,L
|
||
SUBI [20,0],A0
|
||
JRNN ZCNT
|
||
|
||
CLR A6
|
||
MOVI 080H,A7
|
||
MOVE *A8(OXPOS),A3,W
|
||
MOVE *A8(OYPOS),A4,W
|
||
ADDK 21,A4
|
||
CALLA XYSEEK2A
|
||
JRUC STFV
|
||
ZCNT SRL 16,A0
|
||
MOVE A0,A6
|
||
MOVI 080H,A7
|
||
CALLA XYSEEK2
|
||
STFV MOVE A5,*A8(OXVEL),L
|
||
MOVE A6,*A8(OYVEL),L
|
||
DIE
|
||
|
||
;TABLE OF SPOTS FOR AHMED SITTING BEFORE RUNNING AT PLAYERS
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
SIT1 ;[Y,X] ;PAD FOR OTHER DIR ;FOR WARP LOCKDWN 1
|
||
.LONG [0DFH,-10],[0DFH,015BH],0,0 ;RUNNING IN WITH DIR=1
|
||
.LONG [02CH,0BH],[0D8H,0BH],0,0 ;3
|
||
.LONG [30H,-10],[30H,157H],0,0 ;5
|
||
.LONG [2CH,163H],[0D2H,167H] ;7
|
||
SIT2 ;[Y,X] ;PAD FOR OTHER DIR ;FOR DSRT LOCKDWN 2
|
||
.LONG [0DFH,-10],[0DAH,0174H],0,0 ;RUNNING IN WITH DIR=1
|
||
.LONG [02CH,0BH],[0D8H,0BH],0,0 ;3 NOT USED AT LCKDWN
|
||
.LONG [-10,58H],[-10,177H],0,0 ;5
|
||
.LONG [28H,17BH],[0D4H,17BH] ;7
|
||
SIT3 ;[Y,X] ;PAD FOR OTHER DIR ;FOR WARP LOCKDWN 3
|
||
.LONG [0DFH,-10],[0DFH,015BH],0,0 ;RUNNING IN WITH DIR=1
|
||
.LONG [04CH,0BH],[0D8H,0BH],0,0 ;3
|
||
.LONG [50H,-10],[50H,157H],0,0 ;5
|
||
.LONG [4CH,163H],[0D2H,167H] ;7
|
||
SIT4 ;[Y,X] ;PAD FOR OTHER DIR ;FOR WARP LOCKDWN IN AIRPORT
|
||
.LONG [0CFH,-10+30],[0CFH,015BH-15],0,0 ;RUNNING IN WITH DIR=1
|
||
.LONG [05CH,0BH+30],[0C8H,167H-15],0,0 ;3
|
||
.LONG [55H,-10+30],[5CH,157H-15],0,0 ;5
|
||
.LONG [5CH,163H-30],[0D8H,0BH+30] ;7
|
||
|
||
FROMSHK
|
||
;BACK FROM SHOCK - WHAT TO RESTART
|
||
MOVK 15,A0
|
||
MOVE A0,@MAXHULK
|
||
MOVK 5,A9 ;5=DESERT FIRST SCROLL
|
||
MOVE A9,@TARGET_NUM ;FIRST TARGET FOR SCROLL
|
||
CLR A9
|
||
MOVE A9,@TAUNTOUT
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
CREATE MAPPID,BIGMAP
|
||
CREATE FUTRPID,DOBTR60
|
||
MOVI 52H,A0
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADD A0,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CLR A10
|
||
CREATE TARGPID,TARGET
|
||
|
||
CLR A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
MOVE A9,@CRSRAM,L
|
||
MOVI DRECT1,A0
|
||
MOVE A0,@CURRENT,L
|
||
MOVI DBRECT1,A0
|
||
MOVE A0,@BCURRENT,L
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
|
||
MOVI ENRECT10,A0
|
||
MOVE A0,@EN_CURRENT,L ;FOR BOX COLLISIONS
|
||
|
||
MOVK 8,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
|
||
MOVI 011F0H,A0
|
||
MOVE A0,@JUMPXY
|
||
MOVI 01D8H,A0
|
||
MOVE A0,@JUMPXY2
|
||
|
||
CALLA STRT_G ;GOOB COLOR CYCLE
|
||
|
||
MOVI MTNKP,A8 ;PAL NAME
|
||
MOVI PALTMP4,A9 ;RAM AREA
|
||
MOVI [22,25],A10 ;BEGIN/END COLOR #
|
||
MOVK 7,A11 ;RATE IN TICKS
|
||
CREATE CYCPID,COLCYC ;COLOR CYCLER ON
|
||
|
||
CALLA BGND_UD1
|
||
SLEEPK 1
|
||
CALLA BGND_UD1
|
||
SLEEPK 1
|
||
CALLA BGND_UD1
|
||
|
||
CLR A0
|
||
MOVE A0,@RUNIN,W
|
||
;TURN ON PLAYERS BASED ON STATUS WORD
|
||
CALLA CLNPAL
|
||
CLR A0
|
||
MOVE A0,@NO_START
|
||
;START SCROLLING CODE FOR SCREEN
|
||
;START PLAYERS WALKING THROUGH GATE
|
||
CREATE ICONPID,SEND_ICON
|
||
|
||
MOVI TUNE2,A0
|
||
CALLA ONESND ;START FIRST WORLD MUSIC
|
||
|
||
SLEEP 60
|
||
CLR A0
|
||
MOVE A0,@START
|
||
DIE
|
||
|
||
|
||
.DEF AMODWAVE
|
||
.DEF AMODWAVE2
|
||
.DEF AMODWAVE3
|
||
.REF FB_FADEIN,FADEIN
|
||
|
||
;INIT DEMO WAVE REPORTER
|
||
AMODWAVE3
|
||
JSRP WNDWON
|
||
CALLA KILBGND ;KILL OLD BACKGROUND IF ANY EXISTED
|
||
CALLA CLNPAL
|
||
CALLA COLRPRC ;SETUP DEMO GAMEPLAY COLOR PROCESSES
|
||
CLR A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVI [035BH,0],A0
|
||
MOVE A0,@WORLDTLY,L
|
||
SLEEPK 2
|
||
JRUC DO_CANDY
|
||
|
||
;INIT DEMO WAVE ROAD
|
||
AMODWAVE2
|
||
JSRP WNDWON
|
||
CALLA KILBGND ;KILL OLD BACKGROUND IF ANY EXISTED
|
||
CALLA CLNPAL
|
||
|
||
MOVI CLSNEUT|TYPTEXT|SUBWNDW,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
CLR A0
|
||
MOVE A0,@WFLG
|
||
CALLA COLRPRC ;SETUP DEMO GAMEPLAY COLOR PROCESSES
|
||
CLR A0 ;1=STUCK IN GOO, 0=BALL AND CHAIN
|
||
MOVE A0,@HSTGSET
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI [5060,0],A2
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [0450,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVI ROAD_MOD,A0 ;SHOW ROAD
|
||
MOVE A0,@BAKMODS,L
|
||
SLEEPK 2
|
||
; MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;SAND COLOR
|
||
; MOVE A1,@IRQSKYE
|
||
CREATE0 FIX
|
||
MOVK 17,A0
|
||
MOVE A0,@WAVE
|
||
MOVK 1,A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
MOVK 8,A0 ;10
|
||
MOVE A0,@CTOTAL
|
||
MOVI ICN4,A0
|
||
MOVE A0,@ICLIST,L
|
||
|
||
MOVK SUBSPRY,A9 ;BULLET SUBTYPE
|
||
CREATE FIXPID,FIXGUNS
|
||
CLR A1
|
||
MOVE A1,@DISPLAYON
|
||
CALLA INIT_SCORE
|
||
CALLA BGND_UD1
|
||
MOVI PALCNO,A0
|
||
MOVK 2,A1
|
||
CALLA FADEIN
|
||
CLR A0
|
||
CALLA FB_FADEIN
|
||
SLEEPK 2
|
||
MOVK 1,A1
|
||
MOVE A1,@DISPLAYON
|
||
SLEEP 80
|
||
CALLR SETC2 ;START LAND MINE COLOR CYCLE
|
||
MOVK 1,A8
|
||
CREATE CHNKPID,ALL_CHUNKS ;CHUNK DRIVER
|
||
JRUC MODS1
|
||
|
||
|
||
;INIT DEMO WAVE ORCUS
|
||
AMODWAVE
|
||
JSRP WNDWON
|
||
CALLA KILBGND ;KILL OLD BACKGROUND IF ANY EXISTED
|
||
CALLA CLNPAL
|
||
|
||
MOVI CLSNEUT|TYPTEXT|SUBWNDW,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
CLR A0
|
||
MOVE A0,@WFLG
|
||
CALLA COLRPRC ;SETUP DEMO GAMEPLAY COLOR PROCESSES
|
||
|
||
CLR A2
|
||
MOVE A2,@HSTGSET
|
||
MOVE A2,@CRSRAM,L
|
||
MOVE A2,@WORLDTLY,L
|
||
MOVI [021H,0],A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVI DSRTNEW_MOD,A0 ;SHOW FORT MODULE
|
||
MOVE A0,@BAKMODS,L
|
||
SLEEPK 2
|
||
MOVK 15,A0
|
||
CALLA DOLORD
|
||
|
||
.REF XTRY_RCK
|
||
; MOVK 8,A0 ;10
|
||
; MOVE A0,@CTOTAL
|
||
MOVI ICN5,A0
|
||
MOVE A0,@ICLIST,L
|
||
|
||
CLR A1
|
||
MOVE A1,@DISPLAYON
|
||
CALLA INIT_SCORE
|
||
CALLA BGND_UD1
|
||
MOVI PALCNO,A0
|
||
MOVK 2,A1
|
||
CALLA FADEIN
|
||
CLR A0
|
||
CALLA FB_FADEIN
|
||
SLEEPK 2
|
||
MOVK 1,A1
|
||
MOVE A1,@DISPLAYON
|
||
SLEEP 80
|
||
MOVK 1,A8
|
||
CREATE0 XTRY_RCK
|
||
MODS1 CREATE COLPID,COLLISIONS ;COLL2
|
||
CALLA DMA_SCORE
|
||
CREATE ICONPID,SEND_ICON
|
||
CREATE ICONPID,SEND_ICON
|
||
SLEEPK 30
|
||
CREATE PLY1PID,DRAW_PLYR_TORSO
|
||
SLEEPK 30
|
||
MOVI 350H,A10 ;TIME RINGS ARE ON
|
||
MOVK 1,A9
|
||
CREATE RNG1PID,RINGS
|
||
CALLR SETC2 ;START LAND MINE COLOR CYCLE
|
||
SLEEP 30
|
||
CREATE0 SBOMBZ
|
||
DIE
|
||
|
||
PALCNO .LONG 5*32*32+5*32+5,0
|
||
USEB MOVE @WORLDTLX,A0,L
|
||
ADDI [0FEH,0],A0
|
||
MOVE @WORLDTLY,A1,L
|
||
ADDI [01BH,0],A1
|
||
MOVI USEBMB,A2
|
||
MOVI 71,A3
|
||
MOVI DMAWNZ|M_NOCOLL,A4
|
||
MOVI CLSDEAD,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,A0
|
||
CALLA OBJOFF
|
||
SLEEP 200
|
||
|
||
MOVI BABY,A0
|
||
CALLA ONESND
|
||
|
||
SLEEP 90
|
||
SLJ SLEEPK 10
|
||
MOVE @HALT,A0
|
||
JRNZ SLJ
|
||
MOVK 12,A9
|
||
UB1 MOVE A8,A0
|
||
CALLA OBJON
|
||
SLEEPK 10
|
||
MOVE A8,A0
|
||
CALLA OBJOFF
|
||
SLEEPK 10
|
||
DSJ A9,UB1
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
.DEF GETSPEAK
|
||
GETSPEAK
|
||
MOVE @PCNT,A0
|
||
ANDI 07H,A0
|
||
SLL 5,A0
|
||
ADDI YELL,A0
|
||
MOVE *A0,A0,L
|
||
CALLA ONESND
|
||
RETS
|
||
|
||
YELL .LONG BABY,DOLLAR,LIMBS,CITIZEN
|
||
.LONG BABY,DOLLAR,MAW,CITIZEN
|
||
BABY .WORD >F9F7,>50,>814D,0 ;BABY MILK
|
||
DOLLAR .WORD >F9F7,>50,>814E,0 ;BUY 4 DOLLAR
|
||
LIMBS .WORD >F9F7,>50,>8152,0 ;LIMB FROM LIMB
|
||
CITIZEN .WORD >F9F7,>50,>8155,0 ;PEACEFUL CITIZEN
|
||
MAW .WORD >F9F7,>50,>814A,0 ;OH MAW
|
||
REALLY .WORD >F9F7,>50,>8148,0 ;YOUR REALLY GOOD
|
||
AMNOT .WORD >F9F7,>50,>8149,0 ;NOT
|
||
.DEF DOAGN
|
||
DOAGN
|
||
CREATE0 DO_WINNER
|
||
SLEEP 90
|
||
CLR A0
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI PATHC,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADDI 220,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CREATE TARGPID,TARGET
|
||
;TURN ON COLOR CYCLES FOR THIS TOP PART OF DESERT
|
||
CALLA CLNPAL
|
||
CALLR SETC2 ;START LAND MINE COLOR CYCLE
|
||
CALLA STRT_G ;CYCLE GOOB POOL
|
||
CALLA STRT_D ;CYCLE SAT DISH
|
||
CREATE0 ICON_STOP
|
||
MOVI 012BH,A0
|
||
MOVE A0,@JUMPXY2 ;X JUMP COOR FOR TOP OF DESERT HILLS
|
||
MOVI 021DH,A0 ;21A ;Y JUMP FOR TOP OF DESERT
|
||
MOVE A0,@JUMPXY
|
||
MOVK 15,A0
|
||
CALLA DOLORD
|
||
CREATE0 JEPCYC
|
||
; .REF BEACONS
|
||
; CREATE0 BEACONS ;SHOW AREA AROUND DISHES ETC.
|
||
MOVI TUNE5,A0
|
||
CALLA ONESND
|
||
SLEEP 2*60
|
||
MOVI REALLY,A0
|
||
CALLA ONESND
|
||
SLEEP 1*60+20
|
||
MOVI AMNOT,A0
|
||
CALLA ONESND
|
||
DIE
|
||
ICON_STOP
|
||
MOVK 1,A0
|
||
MOVE A0,@ICONS_DN
|
||
SLEEP 15*60
|
||
CREATE ICONPID,SEND_ICON
|
||
DIE
|
||
|
||
PATHC ;DIR,CNT
|
||
.WORD 1,190H,2,320H,10,1,1,1D8H,7,31FH,9,0B8H,1,10H,11,1,2,2E0H,1,1C0H
|
||
.WORD 12,1,7,2D8H,1,1D0H,2,150H,3,1A0H,9,0C8H,7,188H,13,1,1,348H,8,16BH
|
||
.WORD 1,1FAH,0
|
||
|
||
|
||
.END
|
||
|