4451 lines
93 KiB
NASM
4451 lines
93 KiB
NASM
|
**************************************************************
|
|||
|
*
|
|||
|
* Software: Mark Turmell
|
|||
|
* Initiated: April 13,1989
|
|||
|
*
|
|||
|
* Modified: !
|
|||
|
*
|
|||
|
* COPYRIGHT (C) 1991 WILLIAMS ELECTRONICS GAMES, INC.
|
|||
|
*
|
|||
|
*.Last mod - 8/30/91 16:19
|
|||
|
**************************************************************
|
|||
|
.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
|
|||
|
.REF NOWAY,HASND,BUYMSC,MUSICOFF
|
|||
|
|
|||
|
ahkbang .word >f9a0,10,>80ef,0 ;^ angry
|
|||
|
|
|||
|
;SYMBOLS EXTERNALLY DEFINED
|
|||
|
|
|||
|
.REF AIRRECT3A,AIRBRECT3,TAUNTOUT
|
|||
|
.REF prt_inrackwin
|
|||
|
.ref fry_plyrs,BOSS
|
|||
|
.REF hisclong,ISHSTD,INITIALS,ROAD,ICN4
|
|||
|
.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,KEYS_LOST
|
|||
|
.REF COLLISIONS,ALL_CHUNKS,THIS_PLYR,RD15FONT,WRLD,FADEOUT2
|
|||
|
.REF P1CTRL,P2CTRL,ATSTRT,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,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
|
|||
|
|
|||
|
; .IF DEBUG
|
|||
|
.REF FORDBG,O_MINE
|
|||
|
.REF SRECT1,BSRECT1
|
|||
|
.REF DOATP,DO5
|
|||
|
; .ENDIF
|
|||
|
|
|||
|
|
|||
|
;SYMBOLS DEFINED IN THIS FILE
|
|||
|
|
|||
|
.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,WFLG
|
|||
|
.DEF OBJEXP32,PSTAT,BTIME,ZONE_TXT,SQR_FLG,ZONE_TXT2
|
|||
|
.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 ADDINY,32
|
|||
|
.BSS DELAYALL,16
|
|||
|
.BSS START,16
|
|||
|
.BSS LOWZ,16
|
|||
|
.BSS KEEP,32
|
|||
|
.BSS KEEP1,32
|
|||
|
.BSS KEEP2,16
|
|||
|
.BSS KEEPCL,16
|
|||
|
.BSS KEEP3,16
|
|||
|
.BSS KEEP4,32
|
|||
|
.BSS WSPEED,16
|
|||
|
.BSS WFLG,16 ;0=NOT ON, 1=YES IT IS ON
|
|||
|
.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 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,16*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
|
|||
|
CREATE 0,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 CREATE 0,BOX
|
|||
|
DSJ A4,SQR1
|
|||
|
DSJ A5,SQR0
|
|||
|
PULL A0 ;CYCLE PROC
|
|||
|
PULL A8
|
|||
|
;DONE WITH ALL CREATES
|
|||
|
MOVE A0,A10
|
|||
|
CREATE 0,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 MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
;TURN ON BACKGROUND
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@SQR_FLG
|
|||
|
SLEEPK 1
|
|||
|
MOVE A10,A9
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELOBJ
|
|||
|
CLR A0
|
|||
|
MOVE A0,@SQR_FLG
|
|||
|
DIE
|
|||
|
|
|||
|
;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 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
|
|||
|
MMTM SP,A8,A9
|
|||
|
CMPI FROMRGT,A9
|
|||
|
JRZ PPO
|
|||
|
MOVE A8,A9
|
|||
|
MOVI 35,A10 ;TIME RINGS ARE ON
|
|||
|
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
|
|||
|
;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
|
|||
|
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
|
|||
|
.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
|
|||
|
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
|
|||
|
VWSCRN2:
|
|||
|
.LONG HOME2BMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
|||
|
.WORD -7H,35BH+02H ;x,y start pos.
|
|||
|
.LONG >FFFFFFFF
|
|||
|
STRT_MOD:
|
|||
|
.LONG FORTABMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
|||
|
.WORD 0FFEAH,0 ;x,y start pos.
|
|||
|
.LONG >FFFFFFFF
|
|||
|
|
|||
|
DSRTONE_MOD:
|
|||
|
.LONG DSRTONEBMOD ;THIS IS FROM BLIMP (MODULE NAME)
|
|||
|
.WORD 08H,0FDAH ;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
|
|||
|
CREATE 0,FUCKIT
|
|||
|
PULL A1
|
|||
|
EXR RETS
|
|||
|
FUCKIT
|
|||
|
; SLEEPK 1
|
|||
|
MOVE A9,A0
|
|||
|
CALLA DELOBJ
|
|||
|
DIE
|
|||
|
|
|||
|
STRT_S2
|
|||
|
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
|
|||
|
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 ;35B
|
|||
|
MOVE A0,@WORLDTLY,L
|
|||
|
|
|||
|
SLEEPK 2
|
|||
|
|
|||
|
;TEMPORARY JUMP TO RACKUP SCREEN
|
|||
|
; MOVK 1,A0
|
|||
|
; MOVE A0,@INTRO
|
|||
|
; JAUC DO_RACKUP
|
|||
|
; jauc fry_plyrs
|
|||
|
|
|||
|
|
|||
|
MOVK OWSPD2,A0
|
|||
|
MOVE A0,@WSPEED
|
|||
|
JSRP WNDWON ;GROW WINDOW
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVE A0,@HALT
|
|||
|
MOVE A0,@ISTATE
|
|||
|
|
|||
|
; MOVK 1,A0 ;FOR SOLDIER ANIMATING
|
|||
|
CLR A0 ;FOR REPORTER ANIMATING
|
|||
|
MOVE A0,@INTRO
|
|||
|
|
|||
|
|
|||
|
; JRUC GENA
|
|||
|
|
|||
|
;FOR CHICK REPORTER
|
|||
|
; MOVI ( 6 *32*32)+( 6 *32)+( 7 ),A1
|
|||
|
; ;BLUE SKY
|
|||
|
; MOVE A1,@IRQSKYE
|
|||
|
MOVI VWSCRN,A0 ;SHOW HOME BASE VIEW SCREEN
|
|||
|
MOVE A0,@BAKMODS,L
|
|||
|
CALLA BGND_UD1
|
|||
|
|
|||
|
MOVI TUNE1,A0
|
|||
|
CALLA ONESND
|
|||
|
|
|||
|
CALLR STRT_S2
|
|||
|
; movi PRSTART,A8
|
|||
|
; movi 100,a9
|
|||
|
; CREATE INTROPID,prt_inrackwin
|
|||
|
;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 FISRT 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
|
|||
|
|
|||
|
|
|||
|
; MOVK 18H,A10
|
|||
|
; CALLA SHAKER
|
|||
|
|
|||
|
;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
|
|||
|
|
|||
|
|
|||
|
;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
|
|||
|
|
|||
|
|
|||
|
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
|
|||
|
MOVI SCREAM,A0
|
|||
|
CALLA ONESND
|
|||
|
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
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELOBJ
|
|||
|
DIE
|
|||
|
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
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELOBJ
|
|||
|
MOVE *A13(PDATA+32),A0,L
|
|||
|
CALLA DELOBJ
|
|||
|
MOVE *A13(PDATA),A0,L
|
|||
|
CALLA DELOBJ
|
|||
|
DIE
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
GENA
|
|||
|
;GI GETS EATEN
|
|||
|
|
|||
|
;FOR GI
|
|||
|
MOVI VWSCRN2,A0 ;SHOW HOME BASE VIEW SCREEN
|
|||
|
MOVE A0,@BAKMODS,L
|
|||
|
CALLA BGND_UD1
|
|||
|
|
|||
|
CREATE INTROPID,BIG_EAT
|
|||
|
|
|||
|
|
|||
|
;DO GAME OBJECTIVES
|
|||
|
;GENERAL WALKS IN
|
|||
|
;FORT MCWILLIAMS EXPLODING
|
|||
|
;START STATIC
|
|||
|
CALLR STRT_S
|
|||
|
CALLR STRT_S2
|
|||
|
|
|||
|
MOVI ( 4 *32*32)+( 5 *32)+( 5 ),A0 ;SKY COLOR
|
|||
|
MOVE A0,@IRQSKYE
|
|||
|
|
|||
|
MOVI INCT,A8 ;TRANSMIT
|
|||
|
MOVI [02AH,0D0H],A9 ;SCRN Y/X
|
|||
|
MOVI 00101H,A6 ;COLOR CYCLE DIGITS
|
|||
|
MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
CLR A0
|
|||
|
MOVE A0,@WRLD
|
|||
|
MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
CLR A0
|
|||
|
JSRP STRCNRMO ;PRINT STRING, NO OBJECTS
|
|||
|
|
|||
|
JSRP WNDWOFF
|
|||
|
|
|||
|
SLEEP 04EH
|
|||
|
CALLR ERASE_TXT
|
|||
|
SLEEP 066H+600
|
|||
|
JRUC GENSPK
|
|||
|
|
|||
|
|
|||
|
|
|||
|
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 FISRT 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
|
|||
|
GENSPK
|
|||
|
;SEND IN DOOMSDAY TEXT
|
|||
|
CALLR DO_BLN
|
|||
|
|
|||
|
MOVI [099H,0],A0
|
|||
|
MOVI [48,0],A1
|
|||
|
MOVI GSCOTT,A2 ;IMG
|
|||
|
CALLR DOTXT
|
|||
|
|
|||
|
SLEEP 60
|
|||
|
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELOBJ
|
|||
|
|
|||
|
GSPK2 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
|
|||
|
|
|||
|
;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,@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
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVK 9,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,@KEYS_LOST
|
|||
|
MOVE A0,@HSTGSET
|
|||
|
;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
|
|||
|
.IF DEBUG
|
|||
|
MOVI ( 5 *32*32)+( 5 *32)+( 5 ),A1 ;GREY
|
|||
|
MOVE @START,A0
|
|||
|
JRNZ FAG
|
|||
|
.ENDIF
|
|||
|
|
|||
|
;REGULAR START AT BEGINNING OF DESERT!
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
MOVI DSRTONE_MOD,A0 ;SHOW FORT MODULE
|
|||
|
MOVE A0,@BAKMODS,L
|
|||
|
CALLA BGND_UD1
|
|||
|
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
|
|||
|
CREATE 0,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
|
|||
|
CREATE 0,DOATP
|
|||
|
|
|||
|
MOVI ( 8 *32*32)+( 5 *32)+( 4 ),A1 ;GREY
|
|||
|
MOVE A1,@IRQSKYE
|
|||
|
JRUC ENTER
|
|||
|
ATP2 CMPI 3,A0
|
|||
|
JRNZ ATP3
|
|||
|
;START GAME AT FORT GATES - NUCLEAR FACILITY
|
|||
|
MOVI [0476H,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 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
|
|||
|
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
|
|||
|
CREATE 0,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 CREATE 0,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
|
|||
|
CREATE 0,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
|
|||
|
; CREATE 0,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 10,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 08000H,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
|
|||
|
LOCKUP
|
|||
|
PATHCB ;DIR,CNT
|
|||
|
.WORD 1,1,19,1,0
|
|||
|
TARGETST
|
|||
|
SLEEPK 10
|
|||
|
JRUC TARGET
|
|||
|
PATHAIR2
|
|||
|
.WORD 16,1,3,320H,17,1,1,504H,19,1,0
|
|||
|
;3,340H,1,400,0
|
|||
|
FIX
|
|||
|
MOVI RDRECT1,A0
|
|||
|
MOVE A0,@CURRENT,L
|
|||
|
CLR A0
|
|||
|
MOVE A0,@BCURRENT,L
|
|||
|
CREATE 0,JETS
|
|||
|
SLEEP 250 ;TIME TO GET MAP ICON
|
|||
|
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
|
|||
|
CREATE 0,ROAD ;TRUCKS ETC.
|
|||
|
DIE
|
|||
|
|
|||
|
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 SLEEP 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 [0476H,0],A2 ;35B
|
|||
|
; MOVE A2,@WORLDTLY,L
|
|||
|
;
|
|||
|
; MOVE @OBJPTR,A1,L
|
|||
|
; MOVE A2,*A1(OYVAL),L
|
|||
|
|
|||
|
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
|
|||
|
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
|
|||
|
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 ARWPID,ONARRW ;TURN ON UP ARROW
|
|||
|
CREATE MAPPID,BIGMAP
|
|||
|
CREATE WARPPID,WARPER
|
|||
|
CREATE FUTRPID,DOBTR60
|
|||
|
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
|
|||
|
CALLA BGND_UD1
|
|||
|
|
|||
|
CALLR SETC2 ;LAND MINE CYCLE
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVE A0,@RUNIN,W
|
|||
|
;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
|
|||
|
CREATE COLPID,COLLISIONS ;COLL2
|
|||
|
CREATE CHNKPID,ALL_CHUNKS ;CHUNK DRIVER
|
|||
|
SLEEPK 2
|
|||
|
CALLA DMA_SCORE
|
|||
|
|
|||
|
MOVI INGAME,A0 ;NOT IN INTRO MODE ANYMORE!
|
|||
|
MOVE A0,@GAMSTATE,W ;FLAG INGAME
|
|||
|
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
|
|||
|
|
|||
|
.IF DEBUG
|
|||
|
MOVE @START,A0
|
|||
|
CMPI 3,A0
|
|||
|
JRNZ JIMA
|
|||
|
.ENDIF
|
|||
|
;START OF GAME OUTSIDE ENTRANCE TO REACTOR WORLD
|
|||
|
|
|||
|
CREATE TARGPID,SEND_TOP ;SEND FIRST ENEMIES
|
|||
|
|
|||
|
MOVK 1,A0
|
|||
|
CALLA DOLORD
|
|||
|
|
|||
|
.IF DEBUG
|
|||
|
JIMA
|
|||
|
.ENDIF
|
|||
|
|
|||
|
; CLR A0
|
|||
|
; MOVE A0,@MAPON
|
|||
|
DIE
|
|||
|
|
|||
|
XX .EQU 241-13
|
|||
|
YY .EQU 202+48H
|
|||
|
DRECT1
|
|||
|
;FIRST RECTANGLE LIST FOR PLAYERS IN DESERT
|
|||
|
; .WORD 626-XX,5070-YY,713-XX,5138-YY ;LEFT DISH
|
|||
|
; .WORD 770-XX,5025-YY,857-XX,5093-YY ;RGT DISH
|
|||
|
;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
|
|||
|
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
|
|||
|
ZLST2 .LONG 0,ZULU2,SEC1A,SEC2A,SEC3A,DS1A,HUT1A,HUT2A,YESB2,NOB2,SMASH2
|
|||
|
.LONG NOG2,WOG2,YOG2,JPS2
|
|||
|
ZLST3 .LONG 0,ZULU3,SEC1B,SEC1B,SEC3B,DS1B,HUT1B,HUT2B,YESB3,SEC1B,SMASH3
|
|||
|
.LONG NOG3,WOG3,YOG3,JPS3
|
|||
|
|
|||
|
ZULU .BYTE "NUCLEAR REACTOR",0
|
|||
|
ZULU2 .BYTE "ZONE",0
|
|||
|
ZULU3 .BYTE "[CODE=ZULU]",0
|
|||
|
|
|||
|
SEC1 .BYTE "DESTROY SECRET",0
|
|||
|
SEC1A .BYTE "NUCLEAR CAPABILITY",0
|
|||
|
SEC1B .BYTE " ",0
|
|||
|
|
|||
|
SEC2 .BYTE "All Reactors Destroyed!",0
|
|||
|
SEC2A .BYTE "You Kicked Ass!",0
|
|||
|
|
|||
|
SEC3 .BYTE "YOU ARE AN AWESOME",0
|
|||
|
SEC3A .BYTE "WEASEL! GO GET",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 "SOME TRUCKS GOT AWAY!",0
|
|||
|
NOB2 .BYTE "NO BONUS 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 "YOUR SCORE IS NOT DOUBLED!",0
|
|||
|
NOG2 .BYTE "TOO MANY JEEPS GOT AWAY.",0
|
|||
|
NOG3 .BYTE "NO BONUS 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
|
|||
|
|
|||
|
.EVEN
|
|||
|
|
|||
|
ZONE_TXT2
|
|||
|
;A10=MESSAGE #
|
|||
|
;A9=ADD IN Y VALUE
|
|||
|
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
|
|||
|
; MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
; CLR A0
|
|||
|
; MOVE A0,@WRLD
|
|||
|
; MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
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
|
|||
|
; MOVI RD15FONT,A11 ;FONT TABLE
|
|||
|
; CLR A0
|
|||
|
; MOVE A0,@WRLD
|
|||
|
; MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
CLR A0
|
|||
|
JSRP STRCNRMO
|
|||
|
CREATE 0,FLYERS
|
|||
|
SLEEP 6*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
|
|||
|
|
|||
|
ZONE_TXT
|
|||
|
;A8=COLOR TO USE
|
|||
|
;A8=0C0CH OR 0F0FH
|
|||
|
MOVE A8,@KEEPCL
|
|||
|
CALLR GETKP
|
|||
|
TOP0 MOVK 20,A0
|
|||
|
MOVE A0,@KEEP2
|
|||
|
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
|
|||
|
MOVE A0,@WRLD
|
|||
|
MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
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
|
|||
|
MOVE A0,@WRLD
|
|||
|
MOVK 2,A10 ;Y,X SPACING BETWEEN CHARCTERS
|
|||
|
CLR A0
|
|||
|
JSRP STRLNRM
|
|||
|
|
|||
|
SLEEPK 1
|
|||
|
MOVE @KEEP,A8,L
|
|||
|
MOVE @KEEP2,A0
|
|||
|
DEC A0
|
|||
|
MOVE A0,@KEEP2
|
|||
|
JRNZ TOP
|
|||
|
SLEEPK 10
|
|||
|
MOVE @KEEP3,A0
|
|||
|
DEC A0
|
|||
|
MOVE A0,@KEEP3
|
|||
|
JRNZ TOP0
|
|||
|
JRZ 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
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELOBJ
|
|||
|
RETP
|
|||
|
DELWNDW:
|
|||
|
MOVE @OBJPTR,A0,L
|
|||
|
MOVE A0,A8
|
|||
|
CALLA DELOBJ
|
|||
|
RETS
|
|||
|
|
|||
|
;
|
|||
|
; OBJEXP32 - SHRINK OR EXPAND AN OBJECT FROM THE CURRENT SIZE
|
|||
|
; TO THE GIVEN SIZE IN A GIVEN AMOUNT OF TICKS.
|
|||
|
; A0 = # OF TICKS
|
|||
|
; A8 = PTR TO OBJECT
|
|||
|
; A10 = NEW OBJTL
|
|||
|
; A11 = NEW OBJLR
|
|||
|
; NOTE: CALL WITH JSRP
|
|||
|
; TRASHES A9
|
|||
|
;
|
|||
|
OBJEXP32:
|
|||
|
MOVE *A8(OXPOS),A1,W
|
|||
|
MOVE *A8(OYPOS),A14,W
|
|||
|
SLL 16,A14
|
|||
|
MOVX A1,A14 ;A14 = OBJECT UL
|
|||
|
|
|||
|
SLL 16,A1
|
|||
|
CLR A2
|
|||
|
MOVY A14,A2
|
|||
|
SUBXY A10,A14
|
|||
|
MOVX A14,A5
|
|||
|
SLL 16,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A6
|
|||
|
CLR A5
|
|||
|
MOVY A14,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A7
|
|||
|
|
|||
|
MOVE *A8(OXPOS),A3,W
|
|||
|
MOVE *A8(OYPOS),A14,W
|
|||
|
SLL 16,A14
|
|||
|
MOVX A3,A14
|
|||
|
MOVE *A8(OSIZE),A3,L
|
|||
|
ADDXY A3,A14 ;A14 = OBJECT LR
|
|||
|
|
|||
|
PUSH A8 ;STACK OBJECT
|
|||
|
MOVX A14,A3
|
|||
|
SLL 16,A3
|
|||
|
CLR A4
|
|||
|
MOVY A14,A4
|
|||
|
SUBXY A11,A14
|
|||
|
MOVX A14,A5
|
|||
|
SLL 16,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A8
|
|||
|
CLR A5
|
|||
|
MOVY A14,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A9
|
|||
|
MOVE A0,A5
|
|||
|
PULL A14 ;KEEP OBJECT HERE
|
|||
|
OBJTIMLP:
|
|||
|
ADD A6,A1 ;ADD THE TLX INCREMENT
|
|||
|
ADD A7,A2 ;ADD THE TLY INCREMENT
|
|||
|
ADD A8,A3 ;ADD THE LRX INCREMENT
|
|||
|
ADD A9,A4 ;ADD THE LRY INCREMENT
|
|||
|
MMTM A12,A1,A2,A3,A4,A5,A6,A7,A14
|
|||
|
MOVE A1,*A14(OXVAL),L
|
|||
|
MOVE A2,*A14(OYVAL),L
|
|||
|
SUB A1,A3
|
|||
|
SUB A2,A4 ;GET A SIZE FOR THE WINDOW
|
|||
|
SRL 16,A3
|
|||
|
MOVY A4,A3
|
|||
|
CALLA FIXA3XY
|
|||
|
MOVE A3,*A14(OSIZE),L
|
|||
|
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
|
|||
|
JRNZ FA3YOK
|
|||
|
MOVK 1,A0
|
|||
|
SLL 16,A0
|
|||
|
MOVY A0,A3
|
|||
|
FA3YOK:
|
|||
|
CLR A0
|
|||
|
MOVX A3,A0
|
|||
|
MOVE A0,A0
|
|||
|
JRNZ FA3XOK
|
|||
|
MOVK 1,A0
|
|||
|
MOVX A0,A3
|
|||
|
FA3XOK:
|
|||
|
PULL A0
|
|||
|
RETS
|
|||
|
EXPSCRN:
|
|||
|
MOVI 35,A0
|
|||
|
MOVI SCRNST,A10
|
|||
|
MOVI SCRNEND,A11
|
|||
|
JSRP SCREXP32
|
|||
|
RETP
|
|||
|
SNKSCRN:
|
|||
|
MOVI 35,A0
|
|||
|
MOVI SCRNMID,A10
|
|||
|
MOVI SCRNMID,A11
|
|||
|
JSRP SCREXP32
|
|||
|
RETP
|
|||
|
SNKNOW:
|
|||
|
MOVI SCRNMID,A1
|
|||
|
MOVE A1,@SCRNTL,L
|
|||
|
MOVE A1,@SCRNLR,L
|
|||
|
RETP
|
|||
|
;
|
|||
|
;
|
|||
|
; SCREXP32 - SHRINK OR EXPAND THE SCREEN WINDOW FROM THE CURRENT SIZE
|
|||
|
; TO THE GIVEN IN A GIVEN AMOUNT OF TICKS
|
|||
|
; A0 = # OF TICKS
|
|||
|
; A10 = NEW SCRNTL
|
|||
|
; A11 = NEW SCRNLR
|
|||
|
; NOTE: CALL WITH JSRP
|
|||
|
; TRASHES A8 & A9
|
|||
|
;
|
|||
|
SCREXP32:
|
|||
|
MOVE @SCRNTL,A14,L
|
|||
|
MOVX A14,A1
|
|||
|
SLL 16,A1
|
|||
|
CLR A2
|
|||
|
MOVY A14,A2
|
|||
|
SUBXY A10,A14
|
|||
|
MOVX A14,A5
|
|||
|
SLL 16,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A6
|
|||
|
CLR A5
|
|||
|
MOVY A14,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A7
|
|||
|
MOVE @SCRNLR,A14,L
|
|||
|
MOVX A14,A3
|
|||
|
SLL 16,A3
|
|||
|
CLR A4
|
|||
|
MOVY A14,A4
|
|||
|
SUBXY A11,A14
|
|||
|
MOVX A14,A5
|
|||
|
SLL 16,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A8
|
|||
|
CLR A5
|
|||
|
MOVY A14,A5
|
|||
|
DIVS A0,A5
|
|||
|
NEG A5
|
|||
|
MOVE A5,A9
|
|||
|
MOVE A0,A5
|
|||
|
SHTIMLP:
|
|||
|
ADD A6,A1 ;ADD THE TLX INCREMENT
|
|||
|
ADD A7,A2 ;ADD THE TLY INCREMENT
|
|||
|
ADD A8,A3 ;ADD THE LRX INCREMENT
|
|||
|
ADD A9,A4 ;ADD THE LRY INCREMENT
|
|||
|
MMTM A12,A1,A2,A3,A4,A5,A6,A7
|
|||
|
SRL 16,A1
|
|||
|
MOVY A2,A1
|
|||
|
MOVE A1,@SCRNTL,L
|
|||
|
SRL 16,A3
|
|||
|
MOVY A4,A3
|
|||
|
MOVE A3,@SCRNLR,L
|
|||
|
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
|
|||
|
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:
|
|||
|
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
|
|||
|
CREATE 0,GAMEOTXT ;INDPID
|
|||
|
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@HALT
|
|||
|
|
|||
|
SOUND1 NOWAY
|
|||
|
SLEEP 080H ;LET EVERYONE SEE PLEASE
|
|||
|
SOUND1 ahkbang
|
|||
|
; SOUND1 HASND
|
|||
|
CREATE 0,KILGOTXT
|
|||
|
CALLA INIT_SCORE ;TURNS ON REGULAR IMAGES FOR SCORES
|
|||
|
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 ATSTRT ;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:
|
|||
|
CLR A0
|
|||
|
MOVI BRGHT,A6 ;ROBO_LASER
|
|||
|
MOVI GAMOVMSG,A8
|
|||
|
MOVI [37+SCRNTOP,200],A9
|
|||
|
MOVI [0,2],A10 ;ONE SPACE BETWEEN LETTERS
|
|||
|
MOVI RD15FONT,A11 ;SET UP FONT
|
|||
|
JSRP STRCNRMO ;"GAME OVER"
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBGOTXT,A0
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
CALLA KILOBJ ;KILL OLD MESSAGE
|
|||
|
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBTXT,A0
|
|||
|
MOVI CLSNEUT|TYPTEXT|SUBGOTXT,A1
|
|||
|
CALLA CHNGOID ;CHANGE THE OID
|
|||
|
GMEDSPLY:
|
|||
|
SLOOP 1,GMEDSPLY
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* CHNGOID - CHANGE ALL MATCHING OID'S ON THE OBJECT LIST TO A NEW ONE. *
|
|||
|
* A0 = OID TO CHANGE *
|
|||
|
* A1 = NEW OID *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
CHNGOID:
|
|||
|
MMTM SP,A2,A3
|
|||
|
MOVI OBJLST,A2
|
|||
|
CHNGOLP:
|
|||
|
MOVE *A2,A2,L
|
|||
|
JRZ CHNGOIDX ;BR = DONE WITH THE LIST
|
|||
|
MOVE *A2(OID),A3,W
|
|||
|
CMP A0,A3
|
|||
|
JRNE CHNGOLP ;THIS IS NOT ONE OF THEM
|
|||
|
MOVE A1,*A2(OID),W ;STUFF THE NEW ONE
|
|||
|
JRUC CHNGOLP
|
|||
|
CHNGOIDX:
|
|||
|
MMFM SP,A2,A3
|
|||
|
RETS
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* BUYINLP - PUT UP THE BUY-IN WINDOW PROCESS AND LOOP BACK ON BUY-IN. *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
BUYINLP:
|
|||
|
;FOR WHEN THERE IS JUST ONE PLAYER IN GAME
|
|||
|
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 ONESND
|
|||
|
; 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
|
|||
|
CALLA ONESND ;START FIRST WORLD MUSIC
|
|||
|
DIE
|
|||
|
MUSLIST .LONG TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2
|
|||
|
.LONG TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE6,TUNE4,TUNE2,TUNE2,TUNE5
|
|||
|
.LONG TUNE2,TUNE2,TUNE2,TUNE2,TUNE5,TUNE5,TUNE5,TUNE5,TUNE2,TUNE2
|
|||
|
.LONG TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2,TUNE2
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
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
|
|||
|
SLEEP 120
|
|||
|
;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
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
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,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
|
|||
|
MOVE *A8(OFLAGS),A4
|
|||
|
CALLA ANI
|
|||
|
JRUC CHKCHNGB
|
|||
|
BH1 MOVE A8,A0
|
|||
|
CALLA OBJOFF
|
|||
|
JRUC CHKCHNGB
|
|||
|
BH2
|
|||
|
MOVI CHK2A,A1
|
|||
|
JRUC BHO
|
|||
|
|
|||
|
DOJAW SLEEP 011EH
|
|||
|
MOVK 1,A1
|
|||
|
MOVI JAWLST,A9
|
|||
|
JSRP FRANIM
|
|||
|
MOVK 2,A10
|
|||
|
DJH
|
|||
|
MOVK 1,A1
|
|||
|
MOVI JAWLST2,A9
|
|||
|
JSRP FRANIM
|
|||
|
DSJS A10,DJH
|
|||
|
MOVK 1,A1
|
|||
|
MOVI JAWLST3,A9
|
|||
|
JSRP FRANIM
|
|||
|
SLEEP 60
|
|||
|
DIE
|
|||
|
|
|||
|
JAWLST
|
|||
|
.LONG BTTMJAW
|
|||
|
.WORD 2
|
|||
|
.LONG BTJ2
|
|||
|
.WORD 2
|
|||
|
.LONG BTJ3
|
|||
|
.WORD 0FH ;01CH
|
|||
|
.LONG 0
|
|||
|
JAWLST3
|
|||
|
; .LONG BTJ2
|
|||
|
; .WORD 3
|
|||
|
; .LONG BTJ3
|
|||
|
; .WORD 5
|
|||
|
; .LONG BTJ2
|
|||
|
; .WORD 3
|
|||
|
.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 MOVK 1,A1
|
|||
|
MOVI ILFT,A9
|
|||
|
JSRP FRANIM
|
|||
|
JRUC DOIL1
|
|||
|
DOIR SLEEP 08CH
|
|||
|
DOIR1 MOVK 1,A1
|
|||
|
MOVI IRGT,A9
|
|||
|
JSRP FRANIM
|
|||
|
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
|
|||
|
|
|||
|
DOUP MOVI -8000H,A0
|
|||
|
CALLR MOD_VELS
|
|||
|
SLEEP 0F4H
|
|||
|
CLR A0
|
|||
|
CALLR MOD_VELS
|
|||
|
SLEEP 02EH
|
|||
|
MOVI 30000H,A0
|
|||
|
CALLR MOD_VELS
|
|||
|
SLEEPK 6
|
|||
|
CLR A0
|
|||
|
CALLR MOD_VELS
|
|||
|
SLEEP 6*60
|
|||
|
;BURP OVER
|
|||
|
MOVI 40000H,A0
|
|||
|
CALLR MOD_VELS
|
|||
|
SLEEP 0F4H
|
|||
|
CLR A0
|
|||
|
CALLR MOD_VELS
|
|||
|
DIE
|
|||
|
DOHZ SLEEP 12CH
|
|||
|
;BITING DOWN ON SOLDIER
|
|||
|
MOVI 36,A10
|
|||
|
DOHZ1 SLEEPK 5
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
XORI 5,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
CALLR LINE_UP
|
|||
|
DSJ A10,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,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T2 ;TANK RGT
|
|||
|
.LONG 0,0,BTTMJAW
|
|||
|
.WORD 0102H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T3 ;TANK LEFT
|
|||
|
.LONG 0,0,TPHD
|
|||
|
.WORD 0100H,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T4 ;TANK RGT
|
|||
|
.LONG 0,0,TPHD
|
|||
|
.WORD 0100H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T5 ;TANK LEFT
|
|||
|
.LONG 0,0,UPPRJAW
|
|||
|
.WORD 0104H,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T6 ;TANK RGT
|
|||
|
.LONG 0,0,UPPRJAW
|
|||
|
.WORD 0104H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T7 ;TANK LEFT
|
|||
|
.LONG 0,0,INNRMTH
|
|||
|
.WORD 0FAH,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T8 ;TANK RGT
|
|||
|
.LONG 0,0,INNRMTH
|
|||
|
.WORD 0FAH,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T9 ;TANK LEFT
|
|||
|
.LONG 0,0,BOD1
|
|||
|
.WORD 0100H,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T10 ;TANK RGT
|
|||
|
.LONG 0,0,BOD1
|
|||
|
.WORD 0100H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T11 ;TANK LEFT
|
|||
|
.LONG 0,0,BOD2
|
|||
|
.WORD 0100H,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T12 ;TANK RGT
|
|||
|
.LONG 0,0,BOD2
|
|||
|
.WORD 0100H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T13 ;TANK LEFT
|
|||
|
.LONG 0,0,IPIECE
|
|||
|
.WORD 0105H,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T14 ;TANK RGT
|
|||
|
.LONG 0,0,IPIECE
|
|||
|
.WORD 0105H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T15 ;TANK LEFT
|
|||
|
.LONG 0,0,IPC2
|
|||
|
.WORD 0105H,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T16 ;TANK RGT
|
|||
|
.LONG 0,0,IPC2
|
|||
|
.WORD 0105H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T17 ;TANK LEFT
|
|||
|
.LONG 0,0,CHK1
|
|||
|
.WORD 0100H,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T18 ;TANK RGT
|
|||
|
.LONG 0,0,CHK1
|
|||
|
.WORD 0100H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T19 ;TANK LEFT
|
|||
|
.LONG 0,0,CHK2A
|
|||
|
.WORD 0100H,DMAWNZ,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T20 ;TANK RGT
|
|||
|
.LONG 0,0,CHK2A
|
|||
|
.WORD 0100H,DMAWNZ|M_FLIPH,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T21 ;TANK LEFT
|
|||
|
.LONG 0,0,BOD1A
|
|||
|
.WORD 0100H,DMAWNZ+M_FLIPV,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T22 ;TANK RGT
|
|||
|
.LONG 0,0,BOD1A
|
|||
|
.WORD 0100H,DMAWNZ|M_FLIPH+M_FLIPV,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T23 ;TANK LEFT
|
|||
|
.LONG 0,0,BOD2A
|
|||
|
.WORD 0100H,DMAWNZ+M_FLIPV,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
T24 ;TANK RGT
|
|||
|
.LONG 0,0,BOD2A
|
|||
|
.WORD 0100H,DMAWNZ|M_FLIPH+M_FLIPV,CLSNEUT|TYPNEUT
|
|||
|
.LONG 0,0
|
|||
|
|
|||
|
|
|||
|
FLOW SLEEP 014CH
|
|||
|
MOVI 22H,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
|
|||
|
MOVE *A8(OPAL),A0,L
|
|||
|
ANDI 0FFFFH,A0
|
|||
|
MOVE A0,*A8(OPAL),L
|
|||
|
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 MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELOBJ
|
|||
|
DIE
|
|||
|
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
|
|||
|
CREATE 0,ALETTER
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A8(OID)
|
|||
|
JRUC FLYERS
|
|||
|
FY1 CLR A0
|
|||
|
MOVE A0,@FLYFLG
|
|||
|
SLEEP 5*60 ;-40
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@FLYFLG
|
|||
|
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
|
|||
|
|
|||
|
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
|
|||
|
ADDI 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
|
|||
|
.END
|
|||
|
|