2788 lines
50 KiB
NASM
2788 lines
50 KiB
NASM
.MLIB "GXMACS.LIB"
|
||
.FILE "GXATT.ASM"
|
||
.TITLE " <<< GENERATION X -- ATTRACT MODE ROUTINES >>>"
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
* GET THE SYSTEM STUFF
|
||
.INCLUDE "GX.INC"
|
||
.INCLUDE "GXSTRING.H"
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "BGNDTBL.GLO" ;Background equates
|
||
.INCLUDE "GXATT.TBL"
|
||
.INCLUDE "UNIVTBL.GLO"
|
||
|
||
.DEF ATTRACT_MODE, ATT_MODE_HSTD
|
||
.DEF ATT_MODE_GAME_OVER
|
||
.DEF OCTO_PAGE, ATT_MODE_CREDIT
|
||
.DEF ON_CRED, AMODE_LOOPS
|
||
|
||
.DEF C_POSITION, REVEAL_Y
|
||
; .DEF GAME_CREDITS
|
||
|
||
.DEF KIL_CYCLE_COL
|
||
|
||
*SYMBOLS IN GX.ASM
|
||
.REF WARMSET, WIPEOUT, SLEEP_SWITCHX
|
||
*SYMBOLS IN APCOIN.ASM
|
||
.REF GAMEUNITS, CREDIT_SCREEN
|
||
*SYMBOLS IN APHSTD.ASM
|
||
.REF ATT_HSTD, NEW_HISCORES
|
||
.REF OCTO_AUDS,SWITCH_SPOKEN
|
||
|
||
.REF CREDIT_LINE_MESS
|
||
.REF DISC_BGND
|
||
.REF AERO_WINGS_INIT
|
||
.REF CHAR_PLOT, ENTRY_PTR, RC_BYTEI, ALL_TAB
|
||
.REF CHAR_SCORE, FETCH_SCORE
|
||
|
||
.REF QSNDRST,GRAMINIT,CLR_ALL_PDATA,SCORPROC,WAVE_START
|
||
|
||
.REF CYCLE16
|
||
|
||
.REF SETUP_TEST
|
||
|
||
.REF CLR_ALL_PDATA
|
||
|
||
.REF MERGE_UNIV_OFF
|
||
|
||
.REF HS_ENTRY_SCRN
|
||
|
||
* SYMBOLS IN GXLA1.ASM
|
||
.REF LA_OUTSIDE1_VECT_TABLE
|
||
|
||
*SYMBOLS IN GXBONUS.ASM
|
||
.REF INIT_ZERO_UNIVERSE
|
||
.REF AERO_BGND
|
||
|
||
.REF COLRTEMP
|
||
|
||
***** from GXRAM.ASM
|
||
.REF DO_CREDITS
|
||
|
||
.REF DO_CD_OFFER
|
||
|
||
.bss LINE_STARTXY,32
|
||
.bss TEXT_YPOS,32
|
||
|
||
.BSS ON_CRED,16
|
||
.BSS AMODE_LOOPS,16 ;LOOP COUNTER FOR ATTRACT MODE
|
||
.BSS AERO_LOOPS,32 ;LOOP COUNTER FOR ATTRACT MODE
|
||
|
||
.BSS REV_LET_TABLE,32*22
|
||
.BSS REV_LET_TABLE_END,0
|
||
|
||
.REF TEACHER_BGND
|
||
|
||
.REF LGHL1ARM1
|
||
.REF LGHL1ARM2
|
||
|
||
.REF LGHL2ARM1
|
||
.REF LGHL2ARM2
|
||
|
||
.REF LGHL3ARM1
|
||
.REF LGHL3ARM2
|
||
.REF LGHL3ARM3
|
||
|
||
.TEXT
|
||
.EVEN
|
||
|
||
DISC_PAGE
|
||
CALLA INIT_ZERO_UNIVERSE ;set up dummy universe
|
||
MOVKM 3,@GAMERASE,W
|
||
CLRM @SCRNTL,L
|
||
DISPON
|
||
|
||
MOVKM 1,@BLACKOUT,W
|
||
|
||
MOVI NUMBER_ONE_MESS,A8
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
MOVE A2,A8
|
||
CLR A0
|
||
DEC A0
|
||
PLACE_OVER_DISC_1
|
||
MOVE A0,*A8(OZVAL),L
|
||
MOVE *A8(OPARTS),A8,L
|
||
JRNZ PLACE_OVER_DISC_1
|
||
|
||
MOVI PLAT_MESS,A8
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
MOVE A2,A8
|
||
CLR A0
|
||
DEC A0
|
||
PLACE_OVER_DISC_2
|
||
MOVE A0,*A8(OZVAL),L
|
||
MOVE *A8(OPARTS),A8,L
|
||
JRNZ PLACE_OVER_DISC_2
|
||
|
||
MOVI KERRI_1_INIT,B0
|
||
CALLA EASYMAKE
|
||
MOVE A0,A8
|
||
MOVI TEXTPAL,A0
|
||
CALLA CHANGE_PAL
|
||
MOVI COLOR_BLACK,A0
|
||
MOVE A0,*A8(OCONST)
|
||
|
||
MOVI KERRI_2_INIT,B0
|
||
CALLA EASYMAKE
|
||
MOVE A0,A8
|
||
MOVI TEXTPAL,A0
|
||
CALLA CHANGE_PAL
|
||
MOVI COLOR_BLACK,A0
|
||
MOVE A0,*A8(OCONST)
|
||
|
||
MOVI REV_REVX_INIT,B0
|
||
CALLA EASYMAKE
|
||
MOVI 180,A1
|
||
MOVE A1,*A0(OYPOS)
|
||
|
||
MOVI AERO_WINGS_INIT,B0
|
||
CALLA EASYMAKE
|
||
MOVI 155,A1
|
||
MOVE A1,*A0(OXPOS)
|
||
MOVI 200,A1
|
||
MOVE A1,*A0(OYPOS)
|
||
|
||
MOVI ALL_TAB,A8
|
||
CLR A0
|
||
MOVE A0,@CHAR_PLOT,L
|
||
INC A0
|
||
CALLA FETCH_SCORE ; GET THE SCORE
|
||
MOVE A1,@CHAR_SCORE,L
|
||
CALLA ENTRY_PTR ; POINT TO THE RIGHT ENTRY
|
||
MOVE A7,A1 ; SAVE IT AROUND
|
||
ADDI HS_INITS,A7 ; GET TO THE INITIALS
|
||
CALLA RC_BYTEI
|
||
MOVB A0,@CHAR_PLOT
|
||
CALLA RC_BYTEI
|
||
MOVB A0,@CHAR_PLOT+8
|
||
CALLA RC_BYTEI
|
||
MOVB A0,@CHAR_PLOT+16
|
||
MOVI NUM_1A_MESS,A8 ; DISPLAY ENTRY INITIALS
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
MOVE A2,A8
|
||
CLR A0
|
||
DEC A0
|
||
PLACE_OVER_DISC_3
|
||
MOVE A0,*A8(OZVAL),L
|
||
MOVE *A8(OPARTS),A8,L
|
||
JRNZ PLACE_OVER_DISC_3
|
||
|
||
MOVI NUM_1B_MESS,A8 ; DISPLAY ENTRY INITIALS
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
MOVE A2,A8
|
||
CLR A0
|
||
DEC A0
|
||
PLACE_OVER_DISC_4
|
||
MOVE A0,*A8(OZVAL),L
|
||
MOVE *A8(OPARTS),A8,L
|
||
JRNZ PLACE_OVER_DISC_4
|
||
|
||
MOVI NUM_1C_MESS,A8 ; DISPLAY ENTRY INITIALS
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
MOVE A2,A8
|
||
CLR A0
|
||
DEC A0
|
||
PLACE_OVER_DISC_5
|
||
MOVE A0,*A8(OZVAL),L
|
||
MOVE *A8(OPARTS),A8,L
|
||
JRNZ PLACE_OVER_DISC_5
|
||
|
||
MOVI DISC_BGND,A10
|
||
CALLA StrtBgnd ;ON WITH ONE PLANE
|
||
|
||
CLRM @IRQSKYE,W
|
||
SLEEP 1
|
||
|
||
MOVI BWCYC1,A8
|
||
MOVK 24,A9
|
||
MOVK 31,A10
|
||
MOVK 6,A11
|
||
CREATE PID_DAMCC,CYCLE16
|
||
CREATE PID_JUNK,FADE_IN_BACK_DISC
|
||
CLR A0
|
||
MOVE A0,@BLACKOUT
|
||
CLR A0
|
||
CALLA FADEIN
|
||
SLEEP 16
|
||
|
||
SLEEP 450
|
||
CLR A0
|
||
CALLA FADEOUT
|
||
MOVI PID_DAMCC,A0
|
||
CALLA KILLPROC_ALL
|
||
CREATE PID_JUNK,FADE_OUT_BACK_DISC
|
||
SLEEP 12
|
||
RETP
|
||
|
||
NUMBER_ONE_MESS
|
||
MESS_MAC RD11FONT,3,190,47,COLOR_PBLACK,STRCNRMO,OID_JUNK
|
||
.STRING "NUMBER ONE",0
|
||
.EVEN
|
||
PLAT_MESS
|
||
MESS_MAC RD5FONT,2,190,63,COLOR_PBLACK,STRCNRMO,OID_JUNK
|
||
.STRING "PLATINUM PLAYER",0
|
||
.EVEN
|
||
|
||
NUM_1A_MESS
|
||
MESS_MAC RD20FONT,6,127,100,COLOR_PBLACK,STRCNRMO,OID_JUNK
|
||
.STRING "%s",0
|
||
.LONG CHAR_PLOT
|
||
.EVEN
|
||
NUM_1B_MESS
|
||
MESS_MAC RD20FONT,6,252,100,COLOR_PBLACK,STRCNRMO,OID_JUNK
|
||
.STRING "%s",0
|
||
.LONG CHAR_PLOT
|
||
.EVEN
|
||
NUM_1C_MESS
|
||
MESS_MAC RD20FONT,4,190,140,COLOR_PBLACK,STRCNRMO,OID_JUNK
|
||
.STRING "%,lb",0
|
||
.LONG CHAR_SCORE
|
||
.EVEN
|
||
|
||
|
||
|
||
FADE_IN_BACK_DISC
|
||
SLEEP 3
|
||
MOVIM 1057,@IRQSKYE,W
|
||
SLEEP 3
|
||
MOVIM 2114,@IRQSKYE,W
|
||
SLEEP 3
|
||
MOVIM 3171,@IRQSKYE,W
|
||
SLEEP 3
|
||
MOVIM 4228,@IRQSKYE,W
|
||
DIE
|
||
|
||
FADE_OUT_BACK_DISC
|
||
SLEEP 3
|
||
MOVIM 3171,@IRQSKYE,W
|
||
SLEEP 3
|
||
MOVIM 2114,@IRQSKYE,W
|
||
SLEEP 3
|
||
MOVIM 1057,@IRQSKYE,W
|
||
SLEEP 3
|
||
CLRM @IRQSKYE,W
|
||
DIE
|
||
|
||
|
||
KERRI_1_INIT
|
||
.LONG DN1B01
|
||
.WORD DMACNZ, M_SCRNOBJ|M_NOSCALE
|
||
.WORD OM_INSERT|OM_SPOS|OM_ANIM
|
||
.LONG dn1b
|
||
.LONG [230,33],0
|
||
|
||
KERRI_2_INIT
|
||
.LONG DN5B01
|
||
.WORD DMACNZ, M_SCRNOBJ|M_NOSCALE
|
||
.WORD OM_INSERT|OM_SPOS|OM_ANIM
|
||
.LONG dn5b
|
||
.LONG [230,357],0
|
||
|
||
HELGA_PAGE
|
||
CALLA INIT_ZERO_UNIVERSE ;set up dummy universe
|
||
MOVKM 3,@GAMERASE,W
|
||
CLRM @SCRNTL,L
|
||
DISPON
|
||
|
||
MOVI HELGA_NONO,A8
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
|
||
MOVKM 1,@BLACKOUT,W
|
||
|
||
MOVI TEACHER_BGND,A10
|
||
CALLA StrtBgnd ;ON WITH ONE PLANE
|
||
|
||
CLRM @IRQSKYE,W
|
||
|
||
MOVI HELGA_ARM_INIT,B0
|
||
CALLA MULTIMAKE
|
||
|
||
SLEEP 1
|
||
|
||
CREATE PID_JUNK,FADE_IN_BACK
|
||
CLR A0
|
||
MOVE A0,@BLACKOUT
|
||
CLR A0
|
||
CALLA FADEIN
|
||
SLEEP 16
|
||
|
||
MOVK 3,A0
|
||
CALLA RAND0
|
||
SLL 5,A0
|
||
ADDI RAND_TIPS,A0
|
||
MOVE *A0,A8,L
|
||
CALLA LM_SETUP
|
||
MOVK 2,A0
|
||
JSRP PRINTF
|
||
|
||
SLEEP 450
|
||
CLR A0
|
||
CALLA FADEOUT
|
||
CREATE PID_JUNK,FADE_OUT_BACK
|
||
SLEEP 12
|
||
RETP
|
||
|
||
FADE_IN_BACK
|
||
MOVIM 33,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 66,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 99,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 132,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 165,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 198,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 0E7H,@IRQSKYE,W
|
||
DIE
|
||
|
||
FADE_OUT_BACK
|
||
MOVIM 198,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 165,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 132,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 99,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 66,@IRQSKYE,W
|
||
SLEEP 2
|
||
MOVIM 33,@IRQSKYE,W
|
||
SLEEP 2
|
||
CLRM @IRQSKYE,W
|
||
DIE
|
||
|
||
HELGA_ARM_INIT
|
||
.BYTE 3,0,0,1
|
||
.LONG P_LGHLG
|
||
.WORD 0,OM_INSERT|OM_SPOS
|
||
.LONG [0A6H,61H-20],0
|
||
|
||
.LONG LGHL1ARM1
|
||
.WORD DMAWNZ, M_SCRNOBJ|M_NOSCALE, 0, OM_ANIM
|
||
.LONG ANIM_HELGA
|
||
|
||
.LONG LGHL1ARM2
|
||
.WORD DMAWNZ, M_SCRNOBJ|M_NOSCALE, 0,0
|
||
|
||
.LONG LGHL1ARM1
|
||
.WORD DMAWNZ, M_SCRNOBJ|M_NOSCALE, 0,0
|
||
|
||
ANIM_HELGA
|
||
LW LGHL1ARM1,30|AMulti
|
||
LW LGHL1ARM2,30|AMulti
|
||
LW LGHL1ARM2,30
|
||
|
||
LW LGHL2ARM1,7|AMulti
|
||
LW LGHL2ARM2,7|AMulti
|
||
LW LGHL2ARM2,7
|
||
|
||
LW LGHL3ARM1,10|AMulti
|
||
LW LGHL3ARM2,10|AMulti
|
||
LW LGHL3ARM3,10
|
||
|
||
LW LGHL2ARM1,5|AMulti
|
||
LW LGHL2ARM2,5|AMulti
|
||
LW LGHL2ARM2,5
|
||
.LONG 0
|
||
|
||
RAND_TIPS
|
||
.LONG RAND_TIP_1
|
||
.LONG RAND_TIP_2
|
||
.LONG RAND_TIP_3
|
||
.LONG RAND_TIP_4
|
||
|
||
HELGA_NONO
|
||
MESS_MAC RD20FONT,3,255,22,COLOR_PYELLOW,STRCNRMO,OID_JUNK
|
||
.STRING "HELGA'S NO NO'S",0
|
||
.EVEN
|
||
|
||
RAND_TIP_1
|
||
MESS_MAC RD20FONT,3,255,55,COLOR_PWHITE,STRCNRMO,OID_JUNK
|
||
.STRING "NO \d\fSHOOTING CD'S WITH\nTHE YELLOW BUTTON !\d\n"
|
||
.STRING "NO \d\fFINDING HIDDEN PATHS\nAND ROOMS !\d\n"
|
||
.STRING "NO \d\fHAVING FUN !",0
|
||
.LONG RD15FONT,[5,0],RD20FONT,RD15FONT,[5,0],RD20FONT,RD15FONT,[5,0]
|
||
.EVEN
|
||
|
||
RAND_TIP_2
|
||
MESS_MAC RD20FONT,3,255,55,COLOR_PWHITE,STRCNRMO,OID_JUNK
|
||
.STRING "NO \d\fSHOOTING POWERUPS !\d\n"
|
||
.STRING "NO \d\fDESTROYING BRIDGES !\d\n"
|
||
.STRING "NO \d\fTATTOOS !",0
|
||
.LONG RD15FONT,[5,0],RD20FONT,RD15FONT,[5,0],RD20FONT,RD15FONT,[5,0]
|
||
.EVEN
|
||
RAND_TIP_3
|
||
MESS_MAC RD20FONT,3,255,55,COLOR_PWHITE,STRCNRMO,OID_JUNK
|
||
.STRING "NO \d\fFINDING HIDDEN POWERUPS !\d\n"
|
||
.STRING "NO \d\fLOOKING FOR \nAEROSMITH MEMBERS !\d\n"
|
||
.STRING "NO \d\fPLAYING VIDEOGAMES !",0
|
||
.LONG RD15FONT,[5,0],RD20FONT,RD15FONT,[5,0],RD20FONT,RD15FONT,[5,0]
|
||
.EVEN
|
||
RAND_TIP_4
|
||
MESS_MAC RD20FONT,3,255,55,COLOR_PWHITE,STRCNRMO,OID_JUNK
|
||
.STRING "NO \d\fSHOOTING AT THE CAT\nWITH NINE LIVES.\d\n"
|
||
.STRING "NO \d\fRESCUING HOSTAGES !\d\n"
|
||
.STRING "NO \d\fLISTENING TO MUSIC !",0
|
||
.LONG RD15FONT,[5,0],RD20FONT,RD15FONT,[5,0],RD20FONT,RD15FONT,[5,0]
|
||
.EVEN
|
||
|
||
REVX_TEXT
|
||
|
||
CLRM @SCRNTL,L
|
||
MOVKM 3,@GAMERASE,W
|
||
DISPON
|
||
CLR A0
|
||
CALLA FADEBLAK
|
||
SLEEP 1
|
||
|
||
MOVKM 1,@BLACKOUT,W
|
||
CALLA INIT_LINKED_LIST ;Initialize the Background links
|
||
|
||
MOVI -04118H,A0
|
||
SLL ZFRAC,A0
|
||
MOVE A0,@ZBASE_HR,L
|
||
MOVI -230800H,A0
|
||
MOVE A0,@XBASE,L
|
||
MOVI 3c0000H,A0
|
||
MOVE A0,@YBASE,L
|
||
|
||
MOVI LA_OUTSIDE1_VECT_TABLE,A14
|
||
MOVE A14,@WVT_PTR,L ;STUFF WAVE VECTOR TABLE PTR
|
||
|
||
MOVI GXSTG3BT,A0
|
||
JSRP START_UNIVERSE
|
||
SLEEP 4
|
||
|
||
MOVK 21,A11
|
||
CALLR KILL_AEROSMITH
|
||
MOVK 22,A11
|
||
CALLR KILL_AEROSMITH
|
||
MOVK 23,A11
|
||
CALLR KILL_AEROSMITH
|
||
MOVK 24,A11
|
||
CALLR KILL_AEROSMITH
|
||
MOVK 25,A11
|
||
CALLR KILL_AEROSMITH
|
||
|
||
CLR A10
|
||
MOVE A10,@BLACKOUT
|
||
CLR A0
|
||
CALLA FADEIN_HALF
|
||
SLEEP 28
|
||
CALLA FADEFULL_TEXT
|
||
SLEEP 3
|
||
|
||
MOVI LINE1_MESS,A8
|
||
MOVI LINE1A_MESS,A9
|
||
CREATE PID_JUNK,WAIT_AND_KILL_TEXT
|
||
|
||
SLEEP 150
|
||
|
||
MOVI ATT_LINE_MESS,A11
|
||
PUT_UT_NEXT_ATT_LINE
|
||
MOVI LINE2_MESS,A8
|
||
MOVE *A11+,A9,L
|
||
MOVE *A11(20H),A14,L
|
||
JRN LAST_LINE_READY
|
||
CREATE PID_JUNK,WAIT_AND_KILL_TEXT
|
||
MOVE *A11+,A0,L
|
||
CALLA PRCSLP
|
||
JRUC PUT_UT_NEXT_ATT_LINE
|
||
LAST_LINE_READY
|
||
CREATE PID_JUNK,WAIT_AND_STOP_TEXT
|
||
MOVE *A11+,A0,L
|
||
CALLA PRCSLP
|
||
|
||
SLEEP 150
|
||
|
||
CLR A10
|
||
CLR A0
|
||
CALLA FADE_HALF2BLAK
|
||
|
||
MOVI TEXTPAL,A0
|
||
CALLA FADEOUT_PALF
|
||
SLEEP 28
|
||
|
||
RETP
|
||
|
||
WAIT_AND_KILL_TEXT
|
||
MOVE A9,A2
|
||
CALLA LM_SETUP
|
||
MOVE A2,A8
|
||
JSRP PRINTF
|
||
MOVI -0B000H,A1
|
||
MOVE A1,*A2(OYVEL),L
|
||
MOVE A2,A8
|
||
SLEEP 410
|
||
CALLA DELETE_OBJ
|
||
DIE
|
||
|
||
WAIT_AND_STOP_TEXT
|
||
MOVE A9,A2
|
||
CALLA LM_SETUP
|
||
MOVE A2,A8
|
||
JSRP PRINTF
|
||
MOVI -0B000H,A1
|
||
MOVE A1,*A2(OYVEL),L
|
||
MOVE A2,A8
|
||
SLEEP 200
|
||
CLRM *A8(OYVEL),L
|
||
|
||
ADJUST ADJMUSIC ;SOUNDS IN ATTRACT MODE?
|
||
JRNZ NO_MUSIX
|
||
|
||
MOVE @AMODE_LOOPS,A0
|
||
CMPI 2,A0
|
||
JRGE NO_MUSIX
|
||
SOUND1 REM_MUSIX_IS_WEAPON
|
||
NO_MUSIX
|
||
DIE
|
||
|
||
REM_MUSIX_IS_WEAPON
|
||
.WORD 0F380H,078H,0482dH ;rackdown sound
|
||
.WORD 0
|
||
|
||
KILL_AEROSMITH
|
||
SLL 2,A11
|
||
MOVI FGLIST,A8
|
||
MOVE A8,A1
|
||
MOVI MASK_ID,A3
|
||
FINDAERO_LUPE
|
||
MOVE *A8,A8,L
|
||
CMP A1,A8
|
||
JREQ FINDAERO_ABORT
|
||
|
||
MOVE *A8(OID),A14,W
|
||
AND A3,A14
|
||
CMP A11,A14
|
||
JRNE FINDAERO_LUPE
|
||
JAUC DELETE_OBJ
|
||
|
||
FINDAERO_ABORT
|
||
RETS
|
||
|
||
LINE_DELAY .EQU 33
|
||
|
||
ATT_LINE_MESS
|
||
.LONG LINE2A_MESS,LINE_DELAY
|
||
.LONG LINE2B_MESS,200
|
||
|
||
.LONG LINE3A_MESS,LINE_DELAY
|
||
.LONG LINE3B_MESS,LINE_DELAY
|
||
.LONG LINE3C_MESS,200
|
||
|
||
.LONG LINE4A_MESS,LINE_DELAY
|
||
.LONG LINE4B_MESS,LINE_DELAY
|
||
.LONG LINE4C_MESS,LINE_DELAY
|
||
.LONG LINE4D_MESS,200
|
||
|
||
.LONG LINE4E_MESS,LINE_DELAY
|
||
.LONG LINE4F_MESS,LINE_DELAY
|
||
.LONG LINE4G_MESS,180
|
||
|
||
.LONG LINE4H_MESS,LINE_DELAY
|
||
.LONG LINE4I_MESS,LINE_DELAY
|
||
.LONG LINE4J_MESS,200
|
||
|
||
.LONG LINE5A_MESS,LINE_DELAY
|
||
.LONG LINE5B_MESS,LINE_DELAY
|
||
.LONG LINE5C_MESS,LINE_DELAY
|
||
.LONG LINE5D_MESS,300
|
||
|
||
.LONG LINE6A_MESS,200
|
||
.LONG -1
|
||
|
||
|
||
LINE1_MESS
|
||
MESS_MAC RD20FONT,2,200,260,COLOR_PWHITE,STRCNRMO,OID_JUNK
|
||
LINE1A_MESS
|
||
.STRING "YOU HAVE NO CHOICE. YOU HAVE NO VOICE.",0
|
||
.EVEN
|
||
|
||
LINE2_MESS
|
||
MESS_MAC RD15FONT,2,200,260,COLOR_PWHITE,STRCNRMO,OID_JUNK
|
||
LINE2A_MESS
|
||
.STRING "The NEW ORDER NATION has taken over and",0
|
||
LINE2B_MESS
|
||
.STRING "everything you like is WRONG!",0
|
||
|
||
LINE3A_MESS
|
||
.STRING "All Videogames, Television, Magazines and",0
|
||
LINE3B_MESS
|
||
.STRING "especially Music have been declared illegal",0
|
||
LINE3C_MESS
|
||
.STRING "and are STRICTLY FORBIDDEN !",0
|
||
|
||
LINE4A_MESS
|
||
.STRING "A corrupt Neo-Industrial-Governmental-",0
|
||
LINE4B_MESS
|
||
.STRING "Militaristic oppressive Alliance,",0
|
||
LINE4C_MESS
|
||
.STRING "The NEW ORDER NATION - led by Head Mistress HELGA -",0
|
||
LINE4D_MESS
|
||
.STRING "is seizing all citizens between ages 13 and 30.",0
|
||
|
||
LINE4E_MESS
|
||
.STRING "You are on your way to see AEROSMITH !",0
|
||
LINE4F_MESS
|
||
.STRING "They're playing at CLUB X, LA's hottest",0
|
||
LINE4G_MESS
|
||
.STRING "nightspot.",0
|
||
|
||
LINE4H_MESS
|
||
.STRING "At the same time, the NEW ORDER NATION's",0
|
||
LINE4I_MESS
|
||
.STRING "evil plan is being launched and you are stuck",0
|
||
LINE4J_MESS
|
||
.STRING "in the middle.",0
|
||
|
||
LINE5A_MESS
|
||
.STRING "As one of the last surviving free youth,",0
|
||
LINE5B_MESS
|
||
.STRING "you must battle NEW ORDER forces to get",0
|
||
LINE5C_MESS
|
||
.STRING "backstage at CLUBX to meet AEROSMITH where",0
|
||
LINE5D_MESS
|
||
.STRING "together you will begin the REVOLUTION !",0
|
||
|
||
LINE6A_MESS
|
||
.STRING "Remember, MUSIC IS THE WEAPON !",0
|
||
.EVEN
|
||
|
||
REVX_BIG_PAGE
|
||
|
||
CLRM @SCRNTL,L
|
||
MOVKM 3,@GAMERASE,W
|
||
DISPON
|
||
CLR A0
|
||
CALLA FADEBLAK
|
||
SLEEP 1
|
||
|
||
MOVKM 1,@BLACKOUT,W
|
||
CALLA INIT_LINKED_LIST ;Initialize the Background links
|
||
|
||
MOVI -18680H,A0
|
||
SLL ZFRAC,A0
|
||
MOVE A0,@ZBASE_HR,L
|
||
MOVI 3E15800H,A0
|
||
MOVE A0,@XBASE,L
|
||
CLR A0
|
||
MOVE A0,@YBASE,L
|
||
|
||
MOVI LA_OUTSIDE1_VECT_TABLE,A14
|
||
MOVE A14,@WVT_PTR,L ;STUFF WAVE VECTOR TABLE PTR
|
||
|
||
MOVI GXCX3,A0
|
||
JSRP START_UNIVERSE
|
||
SLEEP 4
|
||
|
||
MOVI GXJKLOG,A8
|
||
|
||
move @XBASE,a9,L
|
||
subI 3E15800H,A9
|
||
move @YBASE,a10,L
|
||
subI [-024h,0],A10
|
||
move @ZBASE,a11,L
|
||
subI -18680H,A11
|
||
|
||
JSRP MERGE_UNIV_OFF
|
||
|
||
SLEEP 4
|
||
|
||
MOVI TM_MESS,A8
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
MOVE @ZBASE,A1,L
|
||
ADDI 07FF0H,A1
|
||
MOVE A1,*A2(OZVAL),L
|
||
MOVE *A2(OPARTS),A2,L
|
||
INC A1
|
||
MOVE A1,*A2(OZVAL),L
|
||
|
||
CALLR SET_REV_Z
|
||
SLEEP 3
|
||
|
||
CLR A10
|
||
MOVE A10,@BLACKOUT
|
||
MOVI MINUS_REVX_SIGN,A0
|
||
CALLA FADEIN_HALF
|
||
|
||
SLEEP 2
|
||
|
||
MOVI P_REVOWY,A0
|
||
CALLA FADEIN_PALF
|
||
|
||
MOVI P_REVOWO,A0
|
||
CALLA FADEIN_PALF
|
||
|
||
MOVI TEXTPAL,A0
|
||
CALLA FADEIN_PALF
|
||
|
||
SLEEP 28
|
||
|
||
MOVI 26,A11
|
||
|
||
MOVE_ALL_LETTERS_IN
|
||
CALLR FIND_NEXT_LETTER
|
||
JRNZ ALL_LETTERS_MOVED
|
||
CREATE PID_JUNK,MOVE_LETTER_IN
|
||
MOVE A11,A0
|
||
CALLA PRCSLP
|
||
SUBK 3,A11
|
||
CMPK 2,A11
|
||
JRGT MOVE_ALL_LETTERS_IN
|
||
MOVK 2,A11
|
||
JRUC MOVE_ALL_LETTERS_IN
|
||
ALL_LETTERS_MOVED
|
||
SLEEP 30
|
||
|
||
ADJUST ADJMUSIC ;SOUNDS IN ATTRACT MODE?
|
||
JRNZ NO_REVX_SOUND
|
||
|
||
|
||
MOVE @AMODE_LOOPS,A0
|
||
CMPI 2,A0
|
||
JRGE NO_REVX_SOUND
|
||
SOUND1 REVOLUT_XXX_SND
|
||
NO_REVX_SOUND
|
||
SLEEP 130
|
||
|
||
MOVI MINUS_REVX_SIGN,A0
|
||
CALLA FADE_HALF2BLAK
|
||
|
||
MOVI P_REVOWY,A0
|
||
CALLA FADEOUT_PALF
|
||
|
||
MOVI P_REVOWO,A0
|
||
CALLA FADEOUT_PALF
|
||
|
||
MOVI TEXTPAL,A0
|
||
CALLA FADEOUT_PALF
|
||
|
||
SLEEP 28
|
||
RETP
|
||
|
||
MINUS_REVX_SIGN
|
||
.LONG P_REVOWO
|
||
.LONG P_REVOWY
|
||
.LONG TEXTPAL
|
||
.LONG 0
|
||
|
||
FIND_NEXT_LETTER
|
||
MOVI 21,A0
|
||
CALLA RAND0
|
||
SLL 5,A0
|
||
ADDI REV_LET_TABLE,A0
|
||
MOVK 1,A3
|
||
CLR A8
|
||
CHECK_FOR_NEXT_LET
|
||
MOVE *A0,A8,L
|
||
JRNZ LETTER_FOUND
|
||
ADDI 020H,A0
|
||
CMPI REV_LET_TABLE_END,A0
|
||
JRNE CHECK_FOR_NEXT_LET
|
||
MOVI REV_LET_TABLE,A0
|
||
DEC A3
|
||
JRZ CHECK_FOR_NEXT_LET
|
||
RETS
|
||
LETTER_FOUND
|
||
CLR A1
|
||
MOVE A1,*A0,L
|
||
RETS
|
||
|
||
REVX_DELAY .EQU 23
|
||
|
||
MOVE_LETTER_IN
|
||
MOVE *A8(OYVAL),A1,L
|
||
ADDI [024H,0],A1
|
||
MOVE A1,*A8(OYVAL),L
|
||
|
||
MOVI 28000H,A2 ;Y
|
||
MOVI 3E1D800H,A4 ;X
|
||
|
||
MOVE *A8(OYVAL),A6,L
|
||
MOVE A6,A1
|
||
MOVE *A8(OXVAL),A7,L
|
||
MOVE A7,A3
|
||
ADD A2,A1
|
||
SUB A4,A3
|
||
|
||
MOVI 20000H,A5
|
||
DIVS A5,A1
|
||
DIVS A5,A3
|
||
SLL 16,A1
|
||
SLL 16,A3
|
||
SUB A1,A6
|
||
SUB A3,A7
|
||
MOVE A6,*A8(OYVAL),L
|
||
MOVE A7,*A8(OXVAL),L
|
||
|
||
MOVE *A8(OXPOS),A2
|
||
MOVE *A8(OYVAL),A3,L
|
||
MOVY A3,A2
|
||
|
||
MOVE *A8(OVAR2),A3,L
|
||
SRL 16,A3
|
||
MOVE *A8(OVAR3),A4,L
|
||
MOVY A4,A3
|
||
MOVI REVX_DELAY,A4
|
||
CALLA SLINEVEL_LOAD
|
||
|
||
MOVI 08100H/REVX_DELAY,A1
|
||
MOVE A1,*A8(OZVEL),L
|
||
SLEEP REVX_DELAY
|
||
CLR A1
|
||
MOVE A1,*A8(OZVEL),L
|
||
MOVE A1,*A8(OYVEL),L
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE *A8(OVAR9),*A8(OZVAL),L
|
||
MOVE *A8(OVAR2),*A8(OXVAL),L
|
||
MOVE *A8(OVAR3),*A8(OYVAL),L
|
||
DIE
|
||
|
||
SET_REV_Z
|
||
MOVI FGLIST,A0
|
||
MOVE A0,A8
|
||
MOVI 02584H,A2
|
||
MOVE @ZBASE,A3,L
|
||
SUBI 100H,A3
|
||
MOVI REV_LET_TABLE,A4
|
||
MOVK 22,A9
|
||
JRUC NEXT_REV_LET
|
||
SET_NEXT_REV_Z
|
||
MOVE *A8(OID),A1
|
||
CMP A1,A2
|
||
JRNE NEXT_REV_LET
|
||
MOVE *A8(OZVAL),*A8(OVAR9),L
|
||
MOVE *A8(OXVAL),*A8(OVAR2),L
|
||
MOVE *A8(OYVAL),*A8(OVAR3),L
|
||
MOVE A3,*A8(OZVAL),L
|
||
MOVE A8,*A4+,L
|
||
DEC A9
|
||
JRZ FOUND_EM_ALL
|
||
NEXT_REV_LET
|
||
MOVE *A8,A8,L
|
||
CMP A8,A0
|
||
JRNE SET_NEXT_REV_Z
|
||
FOUND_EM_ALL
|
||
RETS
|
||
|
||
REVX_PAGE
|
||
MOVE @AMODE_LOOPS,A14
|
||
SRL 1,A14
|
||
JRC REVX_BIG_PAGE
|
||
|
||
|
||
CLRM @SCRNTL,L
|
||
CALLA INIT_ZERO_UNIVERSE ;set up dummy universe
|
||
MOVKM 3,@GAMERASE,W
|
||
DISPON
|
||
|
||
CLR A0
|
||
CALLA FADEBLAK
|
||
SLEEP 1
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@BLACKOUT
|
||
MOVI AERO_BGND,A10
|
||
CALLA StrtBgnd ;ON WITH ONE PLANE
|
||
|
||
MOVI NOTICE2_MESS,A8
|
||
JSRP LM_PRINTF
|
||
|
||
MOVI REV_REVX_INIT,B0
|
||
CALLA EASYMAKE
|
||
|
||
SLEEP 3
|
||
|
||
CLR A0
|
||
MOVE A0,@BLACKOUT
|
||
CLR A0
|
||
CALLA FADEIN
|
||
SLEEP 16
|
||
|
||
SLEEP 250
|
||
CLR A0
|
||
CALLA FADEOUT
|
||
SLEEP 12
|
||
RETP
|
||
|
||
|
||
LOGO_WIDTH .EQU 186*5
|
||
|
||
DCS_LOGO_INIT
|
||
.LONG dcslogo
|
||
.WORD DMAWNZ, M_SCRNOBJ|M_NOSCALE
|
||
.WORD OM_INSERT|OM_SPOS
|
||
.WORD 200,128+80+50,0H
|
||
|
||
.BSS LOGO_TABLE,0C0H*88
|
||
.BSS LOGO_HEIGHT,16
|
||
.BSS LOGO_ANGLE,16
|
||
.BSS LOGO_ZEED_OFF,16
|
||
.BSS LOGO_Y,16
|
||
|
||
DO_STAR_FIELD
|
||
MOVI STAR_RAD,A10,L ;set up pointer at start of star table
|
||
MOVI COSINE_TABLE,A4
|
||
MOVI SIN_TABLE,A6
|
||
CLR A9
|
||
MOVI 359,A14
|
||
CALLR NEXT_STAR
|
||
SLOOP 1,DO_STAR_FIELD
|
||
|
||
.ALIGN
|
||
NEXT_STAR:
|
||
MOVE *A10,A1 ;move table radius into work reg
|
||
MOVE *A10(010H),A0 ;move table angle into work reg
|
||
MOVE *A10(020H),A7 ;move table speed into work reg
|
||
MOVE *A10(030H),A8 ;move quadrant into work reg
|
||
PUSH A10
|
||
MOVE A7,B1
|
||
CALLR LOOPP
|
||
PULLQ A10
|
||
MOVE A1,*A10+ ;move work reg into table radius
|
||
MOVE A0,*A10+ ;move work reg into table angle
|
||
ADDI 010H,A10
|
||
MOVE A8,*A10+ ;move work req into table quadrant
|
||
MOVE A5,*A10+,L ;move work reg into table liner pos
|
||
CMPI END_STAR_TABLE,A10 ;are we at end of table
|
||
JRNE NEXT_STAR ;if not do next star
|
||
RETS
|
||
|
||
STAR_SPEED_4
|
||
.WORD 4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64
|
||
|
||
LOOPP:
|
||
MOVI STAR_SPEED_4,A11
|
||
ADD A7,A11
|
||
MOVE *A11,A11
|
||
ADD A11,A1 ;add speed to radius
|
||
|
||
*************************************************************
|
||
* Work out X & Y of stars *
|
||
*************************************************************
|
||
MOVE A0,A3 ;move angle to a10
|
||
SLL 04H,A3 ;times angle in a3 by 16 to get table offset
|
||
MOVE A3,A10 ;save offset in A10
|
||
|
||
MOVE A8,A7
|
||
ANDI 1,A7
|
||
NEG A7
|
||
JRNZ SWAP_X_Y ;if flag set then do x=sin y=cosine
|
||
|
||
ADD A6,A3 ;add table start to offset
|
||
ADD A4,A10 ;stuff table start in a3
|
||
JRUC EXIT_SWAP
|
||
|
||
SWAP_X_Y:
|
||
ADD A4,A3
|
||
ADD A6,A10 ;add table start to offset
|
||
|
||
EXIT_SWAP
|
||
MOVE *A3,A11,W ;grab cosine value from table
|
||
MOVE A1,A7
|
||
SRL 4,A7
|
||
MPYU A7,A11 ;mul cosine value by radius to get y coor
|
||
SRL 08,A11 ;divide y coor by 256
|
||
SLL 010H,A11 ;shift y coor to y coor position
|
||
MOVE *A10,A5,W ;grab cosine value from sin table
|
||
MPYU A7,A5 ;multiply radius by sine to get x coor
|
||
SRL 08,A5 ;divide x coor by 256
|
||
|
||
CMPI [110,0],A11 ;if y greater than 100 then
|
||
JRGT RESET_RAD ;reset radius
|
||
CMPI 0200,A5 ;if x greater than 200 then
|
||
JRGT RESET_RAD ;reset radius
|
||
MOVY A11,A5
|
||
RETS
|
||
|
||
RESET_RAD:
|
||
PUSH A14
|
||
MOVI 0180H,A1 ;reset radius
|
||
CLR A5
|
||
MOVK 4,A0 ;set up random number range
|
||
CALLA RANDU ;get random number
|
||
MOVE A0,A8
|
||
MOVI 090,A0 ;set up range for random number
|
||
CALLA RANDU ;grab a new angle
|
||
DEC A0
|
||
MOVE B1,A7
|
||
PULLQ A14
|
||
JRUC LOOPP
|
||
|
||
PLOT_STARS
|
||
movi DMAGOREG,B1
|
||
WAIT_UNTIL_DMA_FREE_3
|
||
MOVE *B1,B2,L
|
||
JRN WAIT_UNTIL_DMA_FREE_3
|
||
|
||
MOVI STAR_RAD,A12,L ;set up pointer at start of star table
|
||
MOVI 060H,A9
|
||
CLR B4
|
||
.ALIGN
|
||
PLOT_NEXT_STAR:
|
||
MOVE *A12(020H),A14 ;move table speed into work reg
|
||
MOVE *A12(030H),A8 ;move quadrant into work reg
|
||
MOVE *A12(040H),A5
|
||
MOVE *A12(050H),A11
|
||
CALLR PLOT_THAT_STAR
|
||
ADD A9,A12
|
||
CMPI END_STAR_TABLE,A12 ;are we at end of table
|
||
JRLT PLOT_NEXT_STAR
|
||
RETS
|
||
|
||
PLOT_THAT_STAR
|
||
MOVE A11,A11
|
||
JRN NOT_WIDE_STAR_ii
|
||
DEC A8
|
||
JRZ PLOT_POINT
|
||
NEG A5
|
||
DEC A5
|
||
DEC A8
|
||
JRZ PLOT_POINT
|
||
NEG A11
|
||
DEC A11
|
||
DEC A8
|
||
JRZ PLOT_POINT
|
||
NEG A5
|
||
DEC A5
|
||
|
||
PLOT_POINT:
|
||
MOVE A14,A4 ;make color number 2 for star
|
||
SRL 4,A4
|
||
SLL 16,A11
|
||
MOVY A11,A5 ;move Y position to a5
|
||
ADDI [128,200],A5 ;add offset in x y format
|
||
PUSH A4
|
||
MOVE @PAGEADDR,A4,L
|
||
ADDXY A4,A5
|
||
PULLQ A4
|
||
MOVE A5,B0
|
||
MOVE A5,B3
|
||
CLR B1
|
||
MOVX B0,B1
|
||
MOVX B4,B0
|
||
SRL 4,B0
|
||
SLL 3,B1
|
||
OR B1,B0
|
||
MOVE B0,A5
|
||
|
||
CMPI 0200000H,A5
|
||
JRGT NOT_WIDE_STAR_ii
|
||
|
||
MOVB A4,*A5
|
||
|
||
MOVE *A12,A1
|
||
CMPI 0640H,A1
|
||
JRGT YES_WIDER_STAR_I
|
||
|
||
CMPI 0840H,A1
|
||
JRGT YES_WIDER_STAR_II
|
||
|
||
CMPI 060H,A14 ;if speed is =>6 then wide star
|
||
JRLT NOT_WIDE_STAR_ii ;not wide star so jump to exit
|
||
CMPI 0300H,A1
|
||
JRLT NOT_WIDE_STAR_ii
|
||
MOVB A4,*A5(8)
|
||
CMPI 070H,A14 ;if speed is =>6 then wide star
|
||
JRLT NOT_WIDE_STAR_ii ;not wide star so jump to exit
|
||
MOVB A4,*A5(4096)
|
||
MOVB A4,*A5(4096+8)
|
||
NOT_WIDE_STAR_ii
|
||
RETS
|
||
YES_WIDER_STAR_I
|
||
MOVB A4,*A5(8)
|
||
RETS
|
||
YES_WIDER_STAR_II
|
||
MOVB A4,*A5(8)
|
||
MOVB A4,*A5(4096)
|
||
MOVB A4,*A5(4096+8)
|
||
RETS
|
||
|
||
|
||
************************************************************
|
||
* Set up star angles *
|
||
************************************************************
|
||
|
||
INIT_STARS:
|
||
MOVI STAR_SPEED_PR,A0
|
||
MOVI STAR_SPEED,A1
|
||
MOVI 50,A2
|
||
|
||
COPY_NEXT_STAR
|
||
MOVE *A0+,*A1+
|
||
ADDI 050H,A0
|
||
ADDI 050H,A1
|
||
DSJS A2,COPY_NEXT_STAR
|
||
|
||
MOVI STAR_ANGLE,A2,L ;position pointer at start of table
|
||
STAR_INIT_LOOP:
|
||
MOVI 91,A0,L ;set up random number range
|
||
CALLA RANDU ;get random number
|
||
DEC A0
|
||
MOVE A0,*A2,W ;store random angle in table
|
||
MOVK 4,A0 ;set up random number range
|
||
CALLA RANDU ;get random number
|
||
MOVE A0,*A2(020H),W ;store random angle in table
|
||
ADDI 060H,A2 ;increment pointer in table
|
||
CMPI END_STAR_TABLE+10H,A2 ;have we overshot table ?
|
||
JRNE STAR_INIT_LOOP
|
||
RETS
|
||
|
||
DCS_LOGO
|
||
CALLA INIT_ZERO_UNIVERSE ;set up dummy universe
|
||
MOVKM 3,@GAMERASE,W
|
||
DISPON
|
||
|
||
CALLR INIT_STARS
|
||
MOVK 1,A0
|
||
MOVE A0,@BLACKOUT
|
||
MOVI DCS_LOGO_INIT,B0
|
||
CALLA EASYMAKE
|
||
MOVE A0,A8
|
||
|
||
MOVI 52,A9
|
||
MOVE A9,@LOGO_ANGLE
|
||
|
||
SLEEP 1
|
||
MOVE *A8(OFLAGS),A1
|
||
ORI M_NODISP,A1
|
||
MOVE A1,*A8(OFLAGS)
|
||
|
||
MOVI 280,A1
|
||
MOVE A1,@LOGO_Y
|
||
|
||
CALLR CREATE_LOGO_TABLE
|
||
|
||
CREATE PID_JUNK,DISPLAY_LOGO
|
||
CREATE PID_JUNK,DO_STAR_FIELD
|
||
|
||
CLR A0
|
||
MOVE A0,@BLACKOUT
|
||
CLR A0
|
||
CALLA FADEIN
|
||
SLEEP 16
|
||
|
||
|
||
ADJUST ADJMUSIC ;SOUNDS IN ATTRACT MODE?
|
||
JRNZ NO_DCS_SOUND
|
||
|
||
MOVE @AMODE_LOOPS,A0
|
||
CMPI 2,A0
|
||
JRGE NO_DCS_SOUND
|
||
SOUND1 DCS_SND
|
||
NO_DCS_SOUND
|
||
|
||
SLEEP 4
|
||
|
||
MOVI 96,A8
|
||
MOVI 341,A9
|
||
SRL 2,A9
|
||
MOVE @LOGO_Y,A11
|
||
SLL 16,A11
|
||
MOVI [280-128,0],A7
|
||
DIVU A9,A7
|
||
MOVE A7,A10
|
||
|
||
NEXT_LOGO_ZEED
|
||
SLEEP 1
|
||
SUBK 4,A8
|
||
MOVE A8,@LOGO_ZEED_OFF
|
||
SUB A10,A11
|
||
MOVE A11,A7
|
||
SRL 16,A7
|
||
MOVE A7,@LOGO_Y
|
||
DSJS A9,NEXT_LOGO_ZEED
|
||
|
||
MOVI 27,A9
|
||
NEXT_LOGO_LINE_ZEED
|
||
SLEEP 1
|
||
SUBK 8,A8
|
||
MOVE A8,@LOGO_ZEED_OFF
|
||
DSJS A9,NEXT_LOGO_LINE_ZEED
|
||
|
||
SLEEP 10
|
||
|
||
MOVI 080H,A10 ;reposition logo in center
|
||
MOVE A10,@LOGO_Y ;of screen
|
||
|
||
MOVE @LOGO_ANGLE,A8
|
||
MOVI 52,A9
|
||
SRA 3,A9
|
||
|
||
NEXT_LOGO_ANGLE_UP
|
||
SLEEP 1
|
||
SUBK 8,A8
|
||
MOVE A8,@LOGO_ANGLE
|
||
DSJS A9,NEXT_LOGO_ANGLE_UP
|
||
|
||
CLRM @LOGO_ANGLE,W
|
||
|
||
MOVE @LOGO_Y,A11
|
||
MOVE @LOGO_ZEED_OFF,A8
|
||
MOVE A8,A9
|
||
NEG A9
|
||
SRA 3,A9
|
||
NEXT_LOGO_ZEED_OUT
|
||
SLEEP 1
|
||
MOVE @LOGO_HEIGHT,A10
|
||
SRA 1,A10
|
||
MOVE A11,A1
|
||
ADD A1,A10
|
||
MOVE A10,@LOGO_Y
|
||
ADDK 8,A8
|
||
MOVE A8,@LOGO_ZEED_OFF
|
||
DSJS A9,NEXT_LOGO_ZEED_OUT
|
||
|
||
SLEEP 210
|
||
CLR A0
|
||
CALLA FADEOUT
|
||
SLEEP 12
|
||
RETP
|
||
|
||
CREATE_LOGO_TABLE
|
||
MOVI 88,A11
|
||
MOVI LOGO_TABLE,A10
|
||
MOVI dcslogo,a4
|
||
MOVI 0C0H,A7
|
||
|
||
MOVI 01000100H,A0 ;SCALE
|
||
MOVE *A8(OPAL),A1 ;PALETTE/CONSTANT
|
||
MOVI [1,186],A2 ;VSIZE:HSIZE
|
||
CLR A3
|
||
MOVE *A4(ISAG),A4,L
|
||
ADDI 87*LOGO_WIDTH,A4
|
||
MOVI 0D0020000H,A5 ;CTRL
|
||
|
||
MOVE @NO_MIRROR,B8
|
||
JRNZ NO_MIRROR_DCS_BITS
|
||
ORI 000100000H,A5
|
||
NO_MIRROR_DCS_BITS
|
||
|
||
CREATE_NEXT_LOGO_LINE
|
||
ADD A7,A10 ;PUT ON NEXT LINE IN TABLE
|
||
MMTM A10,A0,A1,A2,A3,A4,A5
|
||
ADD A7,A10 ;PUT ON NEXT LINE IN TABLE
|
||
SUBI LOGO_WIDTH,A4
|
||
DSJS A11,CREATE_NEXT_LOGO_LINE
|
||
CLR A1
|
||
MOVE A1,@LOGO_ZEED_OFF
|
||
RETS
|
||
|
||
DISPLAY_LOGO
|
||
.ALIGN
|
||
|
||
PUSH A12
|
||
CALLR PLOT_STARS
|
||
PULLQ A12
|
||
|
||
|
||
MOVE @PAGEADDR,A5,L
|
||
|
||
PUSHST
|
||
DINT
|
||
|
||
MOVE @LOGO_ZEED_OFF,A8
|
||
CMPI -245,A8
|
||
JRLT SPECIAL_LOGO_LINE
|
||
|
||
;STUFF TO WORK OUT MISSING LINES
|
||
|
||
MOVI 88,A11
|
||
|
||
MOVE @LOGO_ANGLE,A0
|
||
CALLR cos_get
|
||
MOVE A0,A0
|
||
MPYU A0,A11
|
||
SRL 14,A11
|
||
|
||
MOVE @LOGO_ZEED_OFF,A1
|
||
ADDI 256,A1
|
||
|
||
MPYU A1,A11
|
||
SRL 8,A11
|
||
|
||
MOVE A11,A10
|
||
MOVE A11,@LOGO_HEIGHT
|
||
MOVI [88,0],A11
|
||
DIVU A10,A11
|
||
MOVI 0C0H,A7
|
||
|
||
;STUFF TO WORK OUT X SCALES
|
||
|
||
MOVE @LOGO_Y,A1
|
||
SLL 16,A1
|
||
ADDXY A1,A5
|
||
|
||
MOVI 018000H,B7
|
||
MOVE @LOGO_ANGLE,B5
|
||
MPYU B7,B5
|
||
|
||
MOVE A10,B7
|
||
DIVU B7,B5
|
||
|
||
MOVI [100H,0],B6
|
||
|
||
;NORMAL STUFF
|
||
|
||
CLR A8
|
||
MOVI LOGO_TABLE,B3
|
||
MOVE B3,A9
|
||
MOVI DMAREGS,B4
|
||
movi DMAGOREG,B1
|
||
DISPLAY_NEXT_LOGO_LINE
|
||
MMFM A9,A0,A1,A2,A3,A4,A6
|
||
WAIT_UNTIL_DMA_FREE
|
||
MOVE *B1,B2,L
|
||
JRN WAIT_UNTIL_DMA_FREE
|
||
|
||
CALLR DO_LOGO_SCALES
|
||
|
||
MOVE B4,A9
|
||
MMTM A9,A0,A1,A2,A3,A4,A6
|
||
MOVE *B1,B2,L ;WAIT FOR DMA TO CATCH UP
|
||
|
||
ADD A11,A8
|
||
|
||
MOVE A8,A9
|
||
SRL 16,A9
|
||
MPYU A7,A9
|
||
|
||
MOVE B3,A14
|
||
ADD A14,A9
|
||
SUBI [01,0],A5
|
||
|
||
READ_NEXT_LINE
|
||
DSJS A10,DISPLAY_NEXT_LOGO_LINE
|
||
NO_LOGO_AT_ALL
|
||
POPST
|
||
SLOOP 1,DISPLAY_LOGO
|
||
|
||
SPECIAL_LOGO_LINE
|
||
|
||
MOVE @LOGO_Y,A1
|
||
SLL 16,A1
|
||
ADDXY A1,A5
|
||
|
||
MOVI 018000H,B7
|
||
MOVE @LOGO_ANGLE,B5
|
||
MPYU B7,B5
|
||
|
||
MOVI [100H,0],B6
|
||
|
||
MOVI LOGO_TABLE,A9
|
||
MOVI DMAREGS,B4
|
||
movi DMAGOREG,B1
|
||
MMFM A9,A0,A1,A2,A3,A4,A6
|
||
WAIT_UNTIL_DMA_FREE_SP
|
||
MOVE *B1,B2,L
|
||
JRN WAIT_UNTIL_DMA_FREE_SP
|
||
|
||
CALLR DO_LOGO_SCALES
|
||
|
||
MOVE B4,A9
|
||
MMTM A9,A0,A1,A2,A3,A4,A6
|
||
MOVE *B1,B2,L ;WAIT FOR DMA TO CATCH UP
|
||
|
||
POPST
|
||
SLOOP 1,DISPLAY_LOGO
|
||
|
||
|
||
DO_LOGO_SCALES
|
||
;SCALE STUFF
|
||
|
||
ADD B5,B6
|
||
MOVE B6,B7
|
||
SRL 16,B7
|
||
|
||
MOVE @LOGO_ZEED_OFF,B8
|
||
SLL 1,B8
|
||
NEG B8
|
||
ADDI 256,B8
|
||
MPYU B8,B7
|
||
SRL 8,B7
|
||
|
||
MOVE A0,B8
|
||
MOVX B7,B8
|
||
MOVE B8,A0
|
||
|
||
;XPOS_STUFF
|
||
|
||
SLL 16,B8 ;get x scale on it own
|
||
SRL 16,B8
|
||
|
||
MOVI 10000H,B9 ;get inverted scale
|
||
DIVU B8,B9
|
||
|
||
MOVI 186,B8 ;original x size for line
|
||
MPYU B8,B9 ;multiply by inverted scale
|
||
SRL 8,B9 ;divide by 0100h
|
||
|
||
SUB B9,B8 ;subtract scaled line size from original size
|
||
SRL 1,B8 ;divide x diff by 2 to get one side
|
||
|
||
MOVI 6BH+38H,B7 ;get object x origin + page offset
|
||
ADD B8,B7 ;add scaled line offset to xpos
|
||
|
||
MOVE @NO_MIRROR,B8
|
||
JRNZ NO_MIRROR_DCS ;is the mirror on ?
|
||
ADD B9,B7 ;yes ,so offset flip
|
||
|
||
NO_MIRROR_DCS
|
||
MOVE B7,A3 ;reset x pos of dag
|
||
|
||
MOVY A5,A3 ;give it page offset + ypos for dag
|
||
RETS
|
||
|
||
sine_get
|
||
sll 32-8,a0
|
||
srl 32-8-4,a0 ;*16
|
||
addi sine_t,a0
|
||
move *a0,a0
|
||
rets
|
||
|
||
cos_get
|
||
sll 32-8,a0
|
||
srl 32-8-4,a0 ;*16
|
||
addi cos_t,a0
|
||
move *a0,a0
|
||
rets
|
||
|
||
sine_t
|
||
.word 0,402,803,1205,1605,2005,2404,2801
|
||
.word 3196,3589,3981,4369,4756,5139,5519,5896
|
||
.word 6270,6639,7005,7366,7723,8075,8423,8765
|
||
.word 9102,9434,9760,10080,10394,10701,11003,11297
|
||
.word 11585,11866,12140,12406,12665,12916,13160,13395
|
||
.word 13623,13842,14053,14255,14449,14635,14811,14978
|
||
.word 15137,15286,15426,15557,15678,15790,15893,15986
|
||
.word 16069,16143,16207,16261,16305,16340,16364,16379
|
||
cos_t
|
||
.word 16384,16379,16364,16340,16305,16261,16207,16143
|
||
.word 16069,15986,15893,15791,15679,15557,15426,15286
|
||
.word 15137,14978,14811,14635,14449,14256,14053,13842
|
||
.word 13623,13395,13160,12916,12665,12406,12140,11866
|
||
.word 11585,11297,11003,10702,10394,10080,9760,9434
|
||
.word 9102,8765,8423,8076,7723,7366,7005,6639
|
||
.word 6270,5896,5519,5139,4756,4370,3981,3590
|
||
.word 3196,2801,2404,2005,1606,1205,804,402
|
||
.word 0,-401,-803,-1205,-1605,-2005,-2403,-2800
|
||
.word -3196,-3589,-3980,-4369,-4755,-5139,-5519,-5896
|
||
.word -6269,-6639,-7005,-7366,-7723,-8075,-8423,-8765
|
||
.word -9102,-9434,-9760,-10080,-10394,-10701,-11002,-11297
|
||
.word -11585,-11866,-12139,-12406,-12665,-12916,-13160,-13395
|
||
.word -13623,-13842,-14053,-14255,-14449,-14634,-14811,-14978
|
||
.word -15137,-15286,-15426,-15557,-15678,-15790,-15893,-15986
|
||
.word -16069,-16143,-16207,-16261,-16305,-16340,-16364,-16379
|
||
.word -16384,-16379,-16364,-16340,-16305,-16261,-16207,-16143
|
||
.word -16069,-15986,-15893,-15791,-15679,-15557,-15426,-15286
|
||
.word -15137,-14979,-14811,-14635,-14449,-14256,-14053,-13842
|
||
.word -13623,-13395,-13160,-12916,-12665,-12406,-12140,-11866
|
||
.word -11585,-11298,-11003,-10702,-10394,-10080,-9760,-9434
|
||
.word -9103,-8765,-8423,-8076,-7723,-7366,-7005,-6640
|
||
.word -6270,-5897,-5520,-5139,-4756,-4370,-3981,-3590
|
||
.word -3196,-2801,-2404,-2006,-1606,-1205,-804,-402
|
||
.word 0,402,803,1205,1605,2005,2404,2801
|
||
.word 3196,3589,3981,4369,4756,5139,5519,5896
|
||
.word 6270,6639,7005,7366,7723,8075,8423,8765
|
||
.word 9102,9434,9760,10080,10394,10701,11003,11297
|
||
.word 11585,11866,12140,12406,12665,12916,13160,13395
|
||
.word 13623,13842,14053,14255,14449,14635,14811,14978
|
||
.word 15137,15286,15426,15557,15678,15790,15893,15986
|
||
.word 16069,16143,16207,16261,16305,16340,16364,16379
|
||
|
||
|
||
;this sin table is in decimal and goes from sin(0) to sin (89). It has been
|
||
;multiplyed by 256 in order to get an interger figure for each value. To
|
||
;implement, use the angle as an offset into the table and then multiply
|
||
;radius by value gained. Then divide result by 256 (ie rotate right 8 bits)
|
||
;and you have your value. To use as a cosine table use offset as a negative
|
||
;offset (-1) and come in from end of table backwards.O.K.!!!
|
||
SIN_TABLE:
|
||
.WORD 0,4,8,13,17,22,26,31,35,40
|
||
.WORD 44,48,53,57,61,66,70,74,79,83
|
||
.WORD 87,91,95,100,104,108,112,116,120,124
|
||
.WORD 128,131,135,139,143,146,150,154,157,161
|
||
.WORD 164,167,171,174,177,181,184,187,190,193
|
||
.WORD 196,198,201,204,207,209,212,214,217,219
|
||
.WORD 221,223,226,228,230,232,233,235,237,238
|
||
.WORD 240,242,243,244,246,247,248,249,250,251
|
||
.WORD 252,252,253,253,254,254,255,255,255,255
|
||
|
||
COSINE_TABLE
|
||
.WORD 255,255,255,255,254,254,253,253,252,252
|
||
.WORD 251,250,249,248,247,246,244,243,242,240
|
||
.WORD 238,237,235,233,232,230,228,226,223,221
|
||
.WORD 219,217,214,212,209,207,204,201,198,196
|
||
.WORD 193,190,187,184,181,177,174,171,167,164
|
||
.WORD 161,157,154,150,146,143,139,135,131,128
|
||
.WORD 124,120,116,112,108,104,100,95,91,87
|
||
.WORD 83,79,74,70,66,61,57,53,48,44
|
||
.WORD 40,35,31,26,22,17,13,8,4,0
|
||
|
||
|
||
******************************************************************
|
||
* STAR TABLE *
|
||
******************************************************************
|
||
.BSS STAR_RAD,16
|
||
.BSS STAR_ANGLE,16
|
||
.BSS STAR_SPEED,16
|
||
.BSS STAR_QUADRANT,16+32
|
||
.BSS STAR_REST,(32*3)*49
|
||
.BSS END_STAR_TABLE,0
|
||
|
||
STAR_RAD_PR:
|
||
.WORD 0180H
|
||
STAR_ANGLE_PR:
|
||
.WORD 0000H
|
||
STAR_SPEED_PR:
|
||
.WORD 0060H
|
||
STAR_QUANRANT_PR:
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0010H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0020H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0030H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0030H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0030H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0030H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0030H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0030H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0030H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0040H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0040H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0040H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0040H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0040H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0050H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0050H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0050H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0050H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0060H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0060H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0070H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
.WORD 0180H
|
||
.WORD 0000H
|
||
.WORD 0070H
|
||
.WORD 0000H
|
||
.LONG 0
|
||
|
||
END_STAR_TABLE_PR:
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ATTRACT_MODE - PROCESS TO CYCLE THROUGH THE ATTRACT MODE ROUTINES *
|
||
* DURING GAME OVER. *
|
||
* *
|
||
**************************************************************************
|
||
ATTRACT_MODE:
|
||
|
||
CLR A0
|
||
MOVE A0,@GAMEUNITS,W ;CLEAR OUT ANY POTENTIAL GAME UNITS
|
||
MOVE A0,@AMODE_LOOPS,W ;CLEAR THE LOOP COUNTER
|
||
MOVE A0,@AERO_LOOPS,W ;CLEAR THE LOOP COUNTER
|
||
|
||
ADJUST ADJMUSIC ;SOUNDS IN ATTRACT MODE?
|
||
JRZ AMODE_SOUNDON ;BR = YAYS
|
||
SOUNDOFF
|
||
JRUC AMODE_GO
|
||
AMODE_SOUNDON
|
||
SOUNDON
|
||
AMODE_GO
|
||
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP COPYR
|
||
|
||
ATTRACT_MODE_LP
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP MIDWAY_PRESENTS
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP REVX_PAGE
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP CREDIT_SCREEN
|
||
|
||
MOVE @AMODE_LOOPS,A14
|
||
SRL 1,A14
|
||
JRC ATT_SKIP_STORY
|
||
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP REVX_TEXT
|
||
ATT_SKIP_STORY
|
||
MOVE @AMODE_LOOPS,A14
|
||
ANDI 3,A14
|
||
JRNZ NO_HELGA_TIPS
|
||
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP HELGA_PAGE
|
||
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP DO_CD_OFFER
|
||
|
||
NO_HELGA_TIPS
|
||
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP DCS_LOGO
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP CREDIT_SCREEN
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
ATT_MODE_CREDIT:
|
||
ATT_MODE_HSTD:
|
||
ADJUST ADJHSON
|
||
JREQ ATT_SKIP_HSTD
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP ATT_HSTD
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP DISC_PAGE
|
||
ATT_SKIP_HSTD
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP PLAYING_ATT
|
||
|
||
*END OF ATTRACT MODE LOOP
|
||
MOVE @AMODE_LOOPS,A0,W
|
||
CMPI 4,A0 ;TIME TO TURN OFF SOUNDS?
|
||
JRLO ATTRACT_MODE_INC ;BR = NO
|
||
SOUNDOFF
|
||
ATTRACT_MODE_INC
|
||
INC A0
|
||
MOVE A0,@AMODE_LOOPS,W
|
||
|
||
JRUC ATTRACT_MODE_LP
|
||
|
||
COPYR
|
||
CALLA WIPEOUT
|
||
CLRM @SCRNTL,L
|
||
MOVKM 3,@GAMERASE,W
|
||
CALLA INIT_ZERO_UNIVERSE ;set up dummy universe
|
||
DISPON
|
||
CLR A0
|
||
CALLA FADEBLAK
|
||
SLEEP 1
|
||
|
||
MOVKM 1,@BLACKOUT,W
|
||
MOVI COPY_1,A8
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
CLRM @BLACKOUT,W
|
||
CLR A0
|
||
CALLA FADEIN
|
||
|
||
SLEEP 175
|
||
CLR A0
|
||
CALLA FADEOUT
|
||
SLEEP 16
|
||
|
||
RETP
|
||
|
||
COPY_1
|
||
MESS_MAC RD15FONT,3,200,30,COLOR_PWHITE,STRCNRMO,OID_JUNK
|
||
.STRING "Revolution X",C_TM,"-Music is the Weapon",C_TM
|
||
.STRING "\nFeaturing AEROSMITH",C_REG
|
||
.STRING "\n\d",C_COPY,"1994 Midway",C_REG," Manufacturing Company"
|
||
.STRING "\nRevolution X",C_TM," and Rev X",C_TM
|
||
.STRING "\nare trademarks of Midway Manufacturing Company"
|
||
.STRING "\nDCS Sound System",C_TM," is a trademark\nof Williams Electronics Games, Inc."
|
||
.STRING "\n\dALL RIGHTS RESERVED."
|
||
.STRING "\d\n\nAudio Data Compression Alogorithm"
|
||
.STRING "\ndeveloped by Q-Branch Inc,"
|
||
.STRING "\nToronto, Ontario, Canada",0
|
||
.EVEN
|
||
.LONG RD11FONT,RD15FONT,RD11FONT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ATT_MODE_GAME_OVER - ATTRACT MODE ENTRY POINT FROM GAME OVER *
|
||
* *
|
||
**************************************************************************
|
||
ATT_MODE_GAME_OVER:
|
||
CLR A0
|
||
MOVE A0,@GAMEUNITS,W ;CLEAR OUT ANY POTENTIAL GAME UNITS
|
||
MOVE A0,@AMODE_LOOPS,W ;CLEAR THE LOOP COUNTER
|
||
ADJUST ADJMUSIC ;SOUNDS IN ATTRACT MODE?
|
||
JRZ AMGO_SOUNDON ;BR = YAYS
|
||
SOUNDOFF
|
||
JRUC AMGO_GO
|
||
AMGO_SOUNDON
|
||
SOUNDON
|
||
AMGO_GO
|
||
MOVE @DO_CREDITS,A14,W
|
||
JRZ AMGO_HS_CHECK ;BR = Not going to run credits
|
||
|
||
MOVE @NEW_HISCORES,A14,W
|
||
JRZ ATTRACT_MODE_CRED ;BR = Do credits immediately
|
||
|
||
JRUC AMGO_SKIP_FADE ;BR = Show high scores
|
||
|
||
AMGO_HS_CHECK
|
||
MOVE @NEW_HISCORES,A14,W
|
||
JRZ AMGO_FAST_FADE ;BR = No new high scores entered
|
||
|
||
MOVI 30*60,A8 ;Continue the fanfare
|
||
JRUC AMGO_DO_FADE
|
||
AMGO_FAST_FADE
|
||
MOVI 10*60,A8 ;Time to wait before fading
|
||
AMGO_DO_FADE
|
||
MOVI [00,255],A9 ;[Min vol, Max vol]
|
||
CLR A10 ;Track #
|
||
MOVI 255,A11 ;Fade time
|
||
CREATE PID_TFADE,TRACK_FADE_PROC ;Start the music fader
|
||
|
||
AMGO_SKIP_FADE
|
||
ADJUST ADJHSON
|
||
JREQ ATTRACT_MODE_CRED
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP ATT_HSTD
|
||
ATTRACT_MODE_CRED
|
||
MOVE @DO_CREDITS,A14,W
|
||
JRZ AMGO_NO_CREDS
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP GAME_CREDITS
|
||
MOVI 5*60,A8 ;Time to wait before fading
|
||
MOVI [00,255],A9 ;[Min vol, Max vol]
|
||
CLR A10 ;Track #
|
||
MOVI 255,A11 ;Fade time
|
||
CREATE PID_TFADE,TRACK_FADE_PROC ;Start the music fader
|
||
AMGO_NO_CREDS
|
||
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
JSRP DO_CD_OFFER
|
||
|
||
JRUC ATTRACT_MODE_LP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* C_POSITION - CREATE FUNC TO POSITION AN OBJECT UPON CREATION *
|
||
* A0 = PTR TO OBJECT *
|
||
* .LONG [Y,X] *
|
||
* *
|
||
**************************************************************************
|
||
C_POSITION
|
||
move *B0+,B14,L ;POSITION
|
||
MOVE B14,A3
|
||
JAUC OBJTOPNT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* REVEAL_Y - INCREASE Y SIZE OF AN OBJECT BY N PIXELS. *
|
||
* A1 = PIXELS TO INCREASE *
|
||
* A8 = OBJECT *
|
||
* RETURNS *
|
||
* Z = FULLY REVEALED *
|
||
* NZ = MORE TO GO *
|
||
* *
|
||
**************************************************************************
|
||
REVEAL_Y
|
||
MMTM sp,a0,A1
|
||
MOVE *A8(OSIZEY),A14,W
|
||
ADD A1,A14
|
||
MOVE *A8(OIMG),A1,L
|
||
move *a8(OIHOFF),a0 ; NEW
|
||
add a0,a1 ; NEW
|
||
MOVE *A1(ISIZEY),A1,W
|
||
CMP A1,A14
|
||
JRLO RY_STUFF
|
||
MOVE A1,*A8(OSIZEY),W
|
||
SETZ
|
||
MMfM sp,a0,A1
|
||
RETS
|
||
RY_STUFF
|
||
MOVE A14,*A8(OSIZEY),W
|
||
CLRZ
|
||
MMfM sp,a0,A1
|
||
RETS
|
||
|
||
.IF GERMAN
|
||
|
||
GAMEOMESS:
|
||
MESS_MAC RD15FONT,2,197,83+SKYTOPOF,COLOR_PLF,STRCNRMOS,OID_GAMEOVER
|
||
.STRING "Spielende",0
|
||
.EVEN
|
||
|
||
.ELSE
|
||
|
||
GAMEOMESS:
|
||
MESS_MAC RD15FONT,2,197,83+SKYTOPOF,COLOR_PLF,STRCNRMOS,OID_GAMEOVER
|
||
.STRING "Game Over",0
|
||
.EVEN
|
||
|
||
.ENDIF
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MIDWAY_PRESENTS *
|
||
* *
|
||
**************************************************************************
|
||
MIDWAY_PRESENTS
|
||
|
||
CLR A0
|
||
CALLA FADEBLAK
|
||
|
||
SLEEP 3
|
||
|
||
MOVI MIDWAY_MESS,A8
|
||
JSRP LM_PRINTF
|
||
MOVI PRESENTS_MESS,A8
|
||
JSRP LM_PRINTF
|
||
|
||
MOVI NOTICE_MESS,A8
|
||
JSRP LM_PRINTF
|
||
|
||
DISPON
|
||
|
||
CLR A0
|
||
CALLA FADEIN
|
||
|
||
SLEEP 90
|
||
|
||
CLR A0
|
||
CALLA FADEOUT
|
||
|
||
SLEEP 20
|
||
|
||
MOVI OID_JUNK,A0
|
||
CALLA KILOBJ_ALL
|
||
CALLA CLR_SCRN
|
||
|
||
RETP
|
||
|
||
MIDWAY_MESS:
|
||
MESS_MAC RD20FONT,2,200,100,COLOR_PWHITE,STRCNRMOS,OID_JUNK
|
||
.STRING "MIDWAY",0
|
||
.EVEN
|
||
|
||
PRESENTS_MESS:
|
||
MESS_MAC RD15FONT,2,200,135,COLOR_PWHITE,STRCNRMOS,OID_JUNK
|
||
.STRING "PRESENTS",0
|
||
.EVEN
|
||
|
||
NOTICE_MESS:
|
||
MESS_MAC RD5FONT,2,200,235,COLOR_PWHITE,STRCNRMO,OID_JUNK
|
||
.STRING "%c1994 MIDWAY MANUFACTURING COMPANY.",0
|
||
.LONG CR
|
||
.EVEN
|
||
|
||
CR
|
||
.WORD 127
|
||
|
||
|
||
.if 0
|
||
**************************************************************************
|
||
* *
|
||
* This weekend only *
|
||
* *
|
||
**************************************************************************
|
||
SNEAK_PREVIEW
|
||
|
||
CALLA IAUTOE
|
||
|
||
MOVI 7C00H,A14
|
||
MOVE A14,@IRQSKYE,W
|
||
MOVE A14,@IRQGNDE,W
|
||
|
||
MOVKM 3,@GAMERASE,W ;AUTO-ERASE FULL
|
||
|
||
MOVI SNEAK_MESS,A8
|
||
JSRP LM_PRINTF
|
||
|
||
DISPON
|
||
|
||
SLEEP 200
|
||
|
||
MOVI OID_JUNK,A0
|
||
CALLA KILOBJ_ALL
|
||
CALLA CLR_SCRN
|
||
|
||
RETP
|
||
|
||
SNEAK_MESS:
|
||
MESS_MAC RD20FONT,2,200,50,COLOR_PWHITE,STRCNRMOS,OID_JUNK
|
||
.STRING "This Weekend Only!\n\n"
|
||
.STRING "Special sneak preview of\n"
|
||
.STRING "REVOLUTION X\n"
|
||
.STRING "Be the first to play!",0
|
||
.EVEN
|
||
|
||
.endif
|
||
|
||
**************************************************************************
|
||
* *
|
||
* OCTOPUS PAGE *
|
||
* *
|
||
**************************************************************************
|
||
OCTO_PAGE:
|
||
CALLA WIPEOUT
|
||
MOVKM 1,@SWITCH_SPOKEN,W ;STOP THE "NO WAY JOSE"
|
||
CALLA SINGLE_PLANE
|
||
PAGEOFF
|
||
DISPON
|
||
JSRP OCTO_AUDS
|
||
SLEEP 5
|
||
MOVE @COINS,A14,L
|
||
NOT A14
|
||
ANDI 24H,A14
|
||
CMPI 24H,A14
|
||
JANE WARMSET
|
||
JRUC OC_DOIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* OCTO_CREDITS - JUST ROLL THE CREDITS, NOTHING ELSE *
|
||
* *
|
||
**************************************************************************
|
||
OCTO_CREDITS
|
||
MOVE @SWITCH,A1,L ;GET SWITCH STATE
|
||
MOVE @COINS,A2
|
||
SLL 16,A2
|
||
MOVY A2,A1
|
||
NOT A1
|
||
ANDI 00243030H,A1 ;CHECK THE CONTROL PANEL
|
||
JRZ OC_DOIT
|
||
SLOOP 5,OCTO_CREDITS
|
||
OC_DOIT
|
||
SOUNDON
|
||
SOUND1 WALK_THIS_WAY
|
||
JSRP GAME_CREDITS
|
||
JAUC WARMSET
|
||
|
||
DCS_SND
|
||
.WORD 0F180H,078H,043E9H ;where you go now is up to you
|
||
.WORD 0
|
||
|
||
WALK_THIS_WAY
|
||
.WORD 0F080H,01H,0801AH
|
||
.WORD 0
|
||
|
||
TM_MESS
|
||
MESS_MAC RD5FONT,1,0F0H,0B0H,COLOR_PWHITE,STRCNRMOS,OID_JUNK
|
||
.STRING C_TM,0
|
||
.LONG CR
|
||
.EVEN
|
||
|
||
NOTICE2_MESS:
|
||
MESS_MAC RD5FONT,1,200,235,COLOR_PWHITE,STRCNRMOS,OID_JUNK
|
||
.STRING "REVOLUTION X",C_TM," MUSIC IS THE WEAPON",C_TM," "
|
||
.STRING C_COPY,"1994 MIDWAY",C_REG," MANUFACTURING COMPANY"
|
||
.STRING "\nVIDEO GAME FEATURING AEROSMITH",C_REG,0
|
||
.LONG CR
|
||
.EVEN
|
||
|
||
REV_REVX_INIT
|
||
.LONG LilRX01
|
||
.WORD DMAWNZ, M_SCRNOBJ|M_NOSCALE
|
||
.WORD OM_INSERT|OM_SPOS|OM_ANIM
|
||
.LONG REV_REX_ANIM
|
||
.LONG [195,325],0
|
||
|
||
REV_REX_ANIM
|
||
LW LilRX01,4
|
||
LW LilRX02,4
|
||
LW LilRX03,4
|
||
LW LilRX04,4
|
||
LW LilRX05,4
|
||
LW LilRX06,4
|
||
LW LilRX07,4
|
||
LW LilRX08,4
|
||
LW LilRX09,4
|
||
LW LilRX10,4
|
||
LW LilRX11,4
|
||
LW LilRX12,4
|
||
LW LilRX13,4
|
||
LW LilRX14,4
|
||
LW LilRX15,4
|
||
LW LilRX16,4
|
||
LW LilRX17,4
|
||
LW LilRX18,4
|
||
LW LilRX19,4
|
||
LW LilRX20,4
|
||
LW LilRX21,4
|
||
LW LilRX22,4
|
||
LW LilRX23,4
|
||
LW LilRX24,4
|
||
.LONG 0
|
||
|
||
REVOLUT_XXX_SND
|
||
.word 0F380h,1,482Fh ;Kill track 3
|
||
.WORD 0
|
||
|
||
|
||
|
||
GAME_CREDITS
|
||
CALLA WIPEOUT
|
||
DISPON
|
||
|
||
MOVKM 1,@BLACKOUT,W
|
||
CALLA INIT_LINKED_LIST ;Initialize the Background links
|
||
CLRM @SCRNTL,L
|
||
MOVKM 3,@GAMERASE,W
|
||
DISPON
|
||
|
||
MOVI GXJKLOG,A0
|
||
JSRP START_UNIVERSE
|
||
SLEEP 4
|
||
|
||
CLRM @BLACKOUT,W
|
||
|
||
CLR A0
|
||
CALLA FADEIN_HALF_3
|
||
SLEEP 16
|
||
|
||
MOVI TEXTPAL,A0
|
||
CALLA FADEIN_PALF
|
||
|
||
SLEEP 3
|
||
|
||
JSRP PUT_UP_CREDITS
|
||
SLEEP 50
|
||
|
||
CLR A0
|
||
CALLA FADE_HALF2BLAK
|
||
|
||
SLEEP 20
|
||
RETP
|
||
|
||
PUT_UP_CREDITS
|
||
MOVI CREDIT_LINE_MESS,A11
|
||
PUT_UT_NEXT_CREDIT_LINE
|
||
MOVE *A11+,A8,L
|
||
JRN LAST_CREDIT_LINE_READY
|
||
JRNZ NO_START_FLASHING
|
||
CREATE PID_JUNK,SILLY_FLASH_SCREEN
|
||
MOVE *A11+,A8,L
|
||
NO_START_FLASHING
|
||
JSRP SETUP_RESET_AND_POSITION
|
||
MOVE *A11+,A0,L
|
||
CALLA PRCSLP
|
||
JRUC PUT_UT_NEXT_CREDIT_LINE
|
||
LAST_CREDIT_LINE_READY
|
||
RETP
|
||
|
||
SILLY_FLASH_SCREEN
|
||
SOUNDON
|
||
SOUND1 LLAMA_MUSIX
|
||
MOVI 250,A9
|
||
CLR A10
|
||
KEEP_FLASHING
|
||
CALLR MAKE_SCREEN_FLASH
|
||
SLEEP 1
|
||
DSJS A9,KEEP_FLASHING
|
||
CLRM @IRQSKYE,W
|
||
CLRM @IRQGNDE,W
|
||
SOUNDOFF
|
||
DIE
|
||
|
||
LLAMA_MUSIX
|
||
.WORD 0F080H,01H,08014H
|
||
.WORD 0
|
||
|
||
MAKE_SCREEN_FLASH
|
||
INC A10
|
||
MOVE A10,A0
|
||
SLL 30,A0
|
||
SRL 30-4,A0
|
||
ADDI SCREEN_COL,A0
|
||
MOVE *A0,A0
|
||
MOVE A0,@IRQSKYE
|
||
MOVE A0,@IRQGNDE
|
||
RETS
|
||
|
||
SCREEN_COL
|
||
.WORD 1024*31,(1024*31)+(15*32),(1024*31)+(31*32),(1024*31)+(15*32)
|
||
|
||
ZIP_ACROSS_2 .EQU 32
|
||
ROT_ANG .EQU 400000h/ZIP_ACROSS_2
|
||
|
||
SET_EACH_PART_OFF
|
||
MMTM SP,A6,A1
|
||
MOVE A8,A6
|
||
SET_NEXT_PART_OFF
|
||
MOVE *A6(OFLAGS),A1
|
||
ORI M_NODISP,A1
|
||
MOVE A1,*A6(OFLAGS)
|
||
MOVE *A6(OPARTS),A6,L
|
||
JRNZ SET_NEXT_PART_OFF
|
||
MMFM SP,A6,A1
|
||
RETS
|
||
|
||
SET_EACH_PART_ON
|
||
MMTM SP,A6,A1
|
||
MOVE A8,A6
|
||
SET_NEXT_PART_ON
|
||
MOVE *A6(OFLAGS),A1
|
||
ANDI 0FFFFH-M_NODISP,A1
|
||
MOVE A1,*A6(OFLAGS)
|
||
MOVE *A6(OPARTS),A6,L
|
||
JRNZ SET_NEXT_PART_ON
|
||
MMFM SP,A6,A1
|
||
RETS
|
||
|
||
SETUP_RESET_AND_POSITION
|
||
PUSHP A11
|
||
CALLA LM_SETUP
|
||
|
||
MOVY A9,A2
|
||
SRL 16,A2
|
||
JRNZ SET_UP_TEXT_YPOS
|
||
|
||
SET_UP_AUTO_TEXT_YPOS
|
||
MOVE @TEXT_YPOS,A2
|
||
ADDI 25,A2
|
||
|
||
SET_UP_TEXT_YPOS
|
||
MOVE A2,@TEXT_YPOS
|
||
SLL 16,A2
|
||
MOVY A2,A9
|
||
|
||
CMPI 4,A10
|
||
JREQ NO_SHADOWED_TEXT
|
||
MOVK 3,A10
|
||
|
||
MMTM A12,A0,A1,A5,A8,A9,A10,A11 ;LOAD UP REGGIES FROM A8.
|
||
|
||
JSRP PRINTF
|
||
MOVE A2,A8
|
||
|
||
CALLR SET_EACH_PART_OFF
|
||
|
||
SLEEP 1
|
||
|
||
CALLR SET_EACH_PART_ON
|
||
|
||
MOVE A8,B7
|
||
MMFM A12,A0,A1,A5,A8,A9,A10,A11 ;LOAD UP REGGIES FROM A8.
|
||
|
||
ADDI [01,01],A9
|
||
MOVI 08080000H,A14
|
||
MOVY A14,A5
|
||
JSRP PRINTF
|
||
|
||
MOVE A2,A2
|
||
JRZ FINISHED_TEXT
|
||
MOVE A2,B0
|
||
|
||
CLR B5
|
||
MOVE B7,B1
|
||
NOT_END_OF_LIST
|
||
MOVE B1,B2
|
||
MOVE B5,*B1(OZVAL),L
|
||
MOVE *B1(OPARTS),B1,L
|
||
JRNZ NOT_END_OF_LIST
|
||
|
||
MOVE B0,*B2(OPARTS),L
|
||
|
||
MOVK 1,B5
|
||
RESET_NEXT_PART
|
||
MOVE B7,*B0(OPART1),L
|
||
MOVE B5,*B0(OZVAL),L
|
||
MOVE *B0(OPARTS),B0,L
|
||
JRNZ RESET_NEXT_PART
|
||
|
||
MOVE B7,A8
|
||
MOVE B7,A2
|
||
JRUC RESUME_NORMAL
|
||
|
||
NO_SHADOWED_TEXT
|
||
MOVK 3,A10
|
||
JSRP PRINTF
|
||
MOVE A2,A8
|
||
|
||
RESUME_NORMAL
|
||
MOVI 08000H,A3
|
||
MOVI -1,A4
|
||
|
||
NEXT_XPOS
|
||
MOVE *A8(OXPOS),A1
|
||
CMP A3,A1
|
||
JRGE NO_SWAP_LESS
|
||
MOVE A1,A3
|
||
JRUC NO_SWAP_GREATER
|
||
NO_SWAP_LESS
|
||
MOVE *A8(OSIZEX),A5
|
||
ADD A5,A1
|
||
CMP A4,A1
|
||
JRLE NO_SWAP_GREATER
|
||
MOVE A1,A4
|
||
NO_SWAP_GREATER
|
||
MOVE *A8(OPARTS),A8,L
|
||
JRNZ NEXT_XPOS
|
||
|
||
SUB A3,A4
|
||
SRL 1,A4
|
||
ADD A4,A3
|
||
|
||
PULLP A11
|
||
MOVE *A11+,A9,L
|
||
PUSHP A11
|
||
|
||
MOVE A3,@LINE_STARTXY
|
||
|
||
MOVE A2,A8
|
||
SET_NEXT_OBJ_POINTER
|
||
MOVE *A8(OPARTS),*A8(OVAR7),L
|
||
MOVE *A8(OPARTS),A8,L
|
||
JRNZ SET_NEXT_OBJ_POINTER
|
||
|
||
MOVE A2,A8
|
||
CALLR ZIP_TEXT_ACROSS
|
||
RESET_AND_MOVE_2
|
||
MOVE *A2(OPARTS),A8,L
|
||
JRZ FINISHED_TEXT
|
||
CALLA PULL_PART
|
||
CALLR ZIP_TEXT_ACROSS
|
||
JRUC RESET_AND_MOVE_2
|
||
FINISHED_TEXT
|
||
MOVE A2,A8
|
||
CREATE PID_JUNK,MOVE_TEXT_ACROSS
|
||
PULLP A11
|
||
RETP
|
||
|
||
ZIP_TEXT_ACROSS
|
||
MOVE *A8(OXPOS),A1
|
||
MOVE A1,*A8(OVAR9)
|
||
|
||
MOVE @LINE_STARTXY,A3
|
||
MOVE A3,A5
|
||
SUB A5,A1
|
||
SLL 16,A1
|
||
MOVI ZIP_ACROSS_2,A5
|
||
DIVS A5,A1
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A1,*A8(OVAR8),L
|
||
|
||
MOVE A3,*A8(OXPOS)
|
||
MOVE A3,*A8(ODAG)
|
||
|
||
RETS
|
||
|
||
MOVE_TEXT_ACROSS
|
||
MOVI ZIP_ACROSS_2,A11
|
||
CLR A10
|
||
MOVE_TEXT_ACROSS_2
|
||
SLEEP 1
|
||
ADDI ROT_ANG,A10
|
||
CALLR WORK_OUT_TEXT_SCALE
|
||
DSJS A11,MOVE_TEXT_ACROSS_2
|
||
|
||
CLR A0
|
||
MOVI 1000100H,A1
|
||
MOVE A8,A6
|
||
RESET_EACH_LET
|
||
MOVE A0,*A6(OXVEL),L
|
||
MOVE *A6(OVAR9),*A6(OXPOS)
|
||
MOVE A1,*A6(OSCALE),L
|
||
MOVE *A6(OVAR7),A6,L
|
||
JRNZ RESET_EACH_LET
|
||
|
||
MOVE A9,A0
|
||
CALLA PRCSLP
|
||
|
||
MOVE A8,A6
|
||
RESET_EACH_LET_2
|
||
MOVE *A6(OVAR8),A1,L
|
||
NEG A1
|
||
MOVE A1,*A6(OXVEL),L
|
||
MOVE *A6(OVAR7),A6,L
|
||
JRNZ RESET_EACH_LET_2
|
||
|
||
MOVI ZIP_ACROSS_2,A11
|
||
MOVE_TEXT_ACROSS_3
|
||
SLEEP 1
|
||
SUBI ROT_ANG,A10
|
||
CALLR DO_WORK_OUT
|
||
DSJS A11,MOVE_TEXT_ACROSS_3
|
||
|
||
KILL_EACH_LET
|
||
MOVE *A8(OVAR7),A6,L
|
||
CALLA DELETE_OBJ
|
||
MOVE A6,A8
|
||
JRNZ KILL_EACH_LET
|
||
DIE
|
||
|
||
DO_WORK_OUT
|
||
MOVE A8,A6
|
||
DO_SCALE
|
||
CALLR WORK_OUT_TEXT_SCALE
|
||
MOVE *A6(OVAR7),A6,L
|
||
JRNZ DO_SCALE
|
||
RETS
|
||
|
||
WORK_OUT_TEXT_SCALE
|
||
MOVE A10,A0
|
||
SRL 16,A0
|
||
CALLR cos_get
|
||
SLL 2,A0
|
||
MOVI 200H,A3
|
||
MOVE A0,A1
|
||
MPYU A1,A3
|
||
SRL 16,A3
|
||
ADDI 0F0H,A3
|
||
MOVE A3,*A6(OSCALEX)
|
||
RETS
|
||
|
||
|
||
PLAYING_ATT
|
||
calla INIT_LINKED_LIST ; init bg univ links
|
||
MOVI PID_TFADE,A0
|
||
CALLA KILLPROC_ALL ;Kill the music fader
|
||
|
||
CALLA QSNDRST
|
||
CALLA WIPEOUT ;WIPE OUT THE WORLD
|
||
CALLA GRAMINIT ;INITIALIZE GAME RAM
|
||
CALLA CLR_ALL_PDATA ;INITIALIZE PLAYER DATA AREAS
|
||
DISPON ;DISPLAY SYSTEM BACKON
|
||
|
||
MOVKM 1,@BLACKOUT,W
|
||
|
||
MOVI REV_REVX_INIT,B0
|
||
CALLA EASYMAKE
|
||
MOVI 180,A1
|
||
MOVE A1,*A0(OYPOS)
|
||
PUSHP A0
|
||
CLRM @BLACKOUT,W
|
||
|
||
CREATE PID_INDW,SCORPROC ;START UP THE PUSH PLAYER START PROCESS
|
||
MOVK 7,A0
|
||
MOVE @AMODE_LOOPS,A1
|
||
SLL 30,A1
|
||
SRL 30,A1
|
||
ADD A1,A0
|
||
.IF DEBUG
|
||
INC A0
|
||
.ENDIF
|
||
MOVE A0,@WAVE
|
||
|
||
.IF DEBUG
|
||
CMPI 11,A0
|
||
.ELSE
|
||
CMPI 10,A0
|
||
.ENDIF
|
||
|
||
JREQ AEROSMITH_PLAYING
|
||
|
||
JSRP WAVE_START ;DO THE WAVE INITIALIZATION
|
||
PULLP A8
|
||
MOVE @ZBASE,A0,L
|
||
MOVE A0,*A8(OZVAL),L
|
||
|
||
|
||
ADJUST ADJMUSIC ;SOUNDS IN ATTRACT MODE?
|
||
JRNZ NO_AERO_MUSIX
|
||
|
||
MOVE @AMODE_LOOPS,A0
|
||
CMPI 2,A0
|
||
JRLT LEAVE_SND_ALONE
|
||
NO_AERO_MUSIX
|
||
|
||
SOUND1 SND_ALLOFF
|
||
SOUNDOFF
|
||
LEAVE_SND_ALONE
|
||
|
||
SLEEP 16
|
||
|
||
MOVI GAME_OVER_MESS,A8
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
|
||
SLEEP 1000
|
||
SOUND1 SND_ALLOFF
|
||
PAUSEON
|
||
|
||
CLR A10
|
||
MOVE A10,@IRQSKYE
|
||
MOVE A10,@IRQGNDE
|
||
MOVI PID_COLOR,A0
|
||
CALLA KILLPROC_ALL
|
||
CALLR KIL_CYCLE_COL
|
||
|
||
CLR A0
|
||
CALLA FADEOUTF
|
||
SLEEP 20
|
||
PAUSEOFF
|
||
RETP
|
||
|
||
AEROSMITH_PLAYING
|
||
|
||
ADJUST ADJMUSIC ;SOUNDS IN ATTRACT MODE?
|
||
JRNZ NO_AERO_MUSIX_2
|
||
|
||
MOVE @AERO_LOOPS,A1
|
||
CMPI 4,A1
|
||
JRLT LEAVE_SND_ALONE_2
|
||
NO_AERO_MUSIX_2
|
||
|
||
SOUND1 SND_ALLOFF
|
||
SOUNDOFF
|
||
MOVI 700,A1
|
||
JRUC SOUND_SET
|
||
LEAVE_SND_ALONE_2
|
||
SOUNDON
|
||
MOVI 2000,A1
|
||
SOUND_SET
|
||
|
||
PUSHP A1
|
||
|
||
JSRP WAVE_START ;DO THE WAVE INITIALIZATION
|
||
PULLP A0
|
||
PULLP A8
|
||
PUSHP A0
|
||
MOVE @ZBASE,A0,L
|
||
MOVE A0,*A8(OZVAL),L
|
||
|
||
SLEEP 16
|
||
|
||
MOVI GAME_OVER_MESS_B,A8
|
||
CALLA LM_SETUP
|
||
JSRP PRINTF
|
||
|
||
PULLP A0
|
||
CALLA PRCSLP
|
||
SOUND1 SND_ALLOFF
|
||
PAUSEON
|
||
|
||
CLR A10
|
||
MOVE A10,@IRQSKYE
|
||
MOVE A10,@IRQGNDE
|
||
MOVI PID_COLOR,A0
|
||
CALLA KILLPROC_ALL
|
||
CALLR KIL_CYCLE_COL
|
||
|
||
CLR A0
|
||
CALLA FADEOUTF
|
||
SLEEP 20
|
||
SOUND1 SND_ALLOFF
|
||
SOUNDOFF
|
||
PAUSEOFF
|
||
MOVE @AERO_LOOPS,A0,W
|
||
INC A0
|
||
MOVE A0,@AERO_LOOPS,W
|
||
|
||
RETP
|
||
|
||
KIL_CYCLE_COL
|
||
CLR A0
|
||
MOVE A0,@COLRTEMP,L
|
||
MOVE A0,@COLRTEMP+020H,L
|
||
MOVE A0,@COLRTEMP+040H,L
|
||
MOVE A0,@COLRTEMP+080H,L
|
||
|
||
MOVE A0,@COLRTEMP+0A0H,L
|
||
MOVE A0,@COLRTEMP+0C0H,L
|
||
MOVE A0,@COLRTEMP+0E0H,L
|
||
MOVE A0,@COLRTEMP+100H,L
|
||
RETS
|
||
|
||
GAME_OVER_MESS
|
||
MESS_MAC RD20FONT,3,200,128,COLOR_PLF,STRCNRMOS,OID_JUNK
|
||
.STRING "GAME OVER",0
|
||
.EVEN
|
||
|
||
GAME_OVER_MESS_B
|
||
MESS_MAC RD20FONT,3,200,50,COLOR_PLF,STRCNRMOS,OID_JUNK
|
||
.STRING "GAME OVER",0
|
||
.EVEN
|
||
|
||
.END
|
||
|
||
|
||
|