smashtv/DEMO.ASM

1797 lines
46 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

.FILE 'DEMO.ASM'
.TITLE 'ROBO-RAMA GAME PROGRAM-DEMO MODE STUFF'
.WIDTH 132
.OPTION B,D,L,T
.MNOLIST
;
; INITIATED: APRIL 13,1989
; MODIFIED: !
; SOFTWARE: MARK TURMELL
;
; COPYRIGHT (C) 1989 WILLIAMS ELECTRONICS GAMES, INC.
;
;
; GET THE SYSTEM STUFF
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
.INCLUDE "DISP.EQU" ;DISPLAY PROC. EQUATES
.INCLUDE "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
.INCLUDE "IMGTBL.GLO"
.INCLUDE "ROBO.EQU"
.INCLUDE "BGNDTBL.GLO" ;BACKGROUND EQUATES
;
;SOUNDS
;
.REF TUNE1,FADE_UP,CROWD1,GOGO,TUNE1B,TUNE4
;
;SYMBOLS EXTERNALLY DEFINED
;
.REF SCRCLR,WNDWON,WNDWOFF,BTOF,FINDPAL,PALSET
.REF GAL1P,GAL2P,MCPTR,FRANIM,SMASHON
.REF INIT_SCORE,RD15FONT,STRCNRM,WAVE
.REF P1CTRL,P2CTRL,GAMSTATE,BAKMODS,ADJSTWTL,STFOBJ,GPALOBJ,INSOBJ
.REF BGND_UD1,KILALL,JOYSW
.REF HALT,BAKMODS,DEMOPLAY,CIRCUIT
.REF AUTOEON,GAMERASE
.REF BLAKOUT,FADEIN,FADEOUT
.REF AUTOPAL
;
;SYMBOLS DEFINED IN THIS FILE
;
; .DEF FBI_LIT
.DEF SPR_LIT,SPR_LIT1,GOS,GAMEMODS
.DEF INIT_DEMO,JOY_UPDATE,PUTBGND,DEMOBGND,DUMB,AP_LIT,LAZ_LIT
.DEF CMP_LIT,MIN_LIT,RNG_LIT,RNG_LIT2,RED1,RED2,FLR_LIT,STUD_LIT
.DEF PZON,PRZ_LIT,ORB_LIT,FLR2_LIT,P2_LIT,P1_LIT,ARW_LIT
.DEF HOSPG_LIT,STATIC_LIT,HOSPR_LIT,COLTAB
;
;UNINITIALIZED RAM DEFINITIONS
;
.BSS TMP,8
.BSS PZON,8
.BSS DUMB,8
.BSS PFRAM,96
;
;EQUATES FOR THIS FILE
;
BLSTEND .EQU >8001
BLSTSTRT .EQU >8000
.TEXT
DOIMG
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 A11,*A8(OYPOS),W
MOVE A10,*A8(OXPOS),W
CALLA ADJSTWTL
RETS
STAR_COLOR
SLEEP 3 ;GET PAL OUT THERE!
;BLACKEN LIGHTS TO START!
MOVI LGHTFX,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDK 13,A8 ; A8 = [PAL #,1]
MOVI BLKC,A9
MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 1,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP 027H
;START CROWD
;START MUSIC FOR GAMESHOW SET
MOVK 2,A11 ;FADE RATE
CREATE 0,FADE_UP
MOVE @CIRCUIT,A0
JRZ NOGO
CMPI 1,A0
JRNZ J8
MOVI TUNE1B,A0
CALLA ONESND
JRUC J88
J8 MOVI TUNE4,A0 ;CIRCUIT 3 MUSIC
CALLA ONESND
J88 CREATE 0,GOS
JRUC YGO
NOGO
MOVI TUNE1,A0
CALLA ONESND
CREATE 0,CHEER
YGO SLEEP 30
;NABBED FROM BOON FOOTBALL
MOVI LGHTFX,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDK 13,A8 ; A8 = [PAL #,1]
MOVI STARCTBL,A9
STC2 MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 1,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >09
ADDK >10,A9
CMPI STARCEND,A9 ; END OF TABLE ?
JRNE STC2
DIE
GOS SLEEP 6AH
MOVK 11,A9
GOS1 MOVI GOGO,A0
CALLA ONESND
SLEEP 30
DSJS A9,GOS1
DIE
CHEER SLEEP 10
MOVI CROWD1,A0
CALLA ONESND
SLEEP 25
MOVI CROWD1,A0
CALLA ONESND
SLEEP 10
MOVI CROWD1,A0
CALLA ONESND
SLEEP 45
MOVI CROWD1,A0
CALLA ONESND
SLEEP 10
MOVI CROWD1,A0
CALLA ONESND
SLEEP 10
MOVI CROWD1,A0
CALLA ONESND
SLEEP 10
MOVI CROWD1,A0
CALLA ONESND
SLEEP 45
MOVI CROWD1,A0
CALLA ONESND
SLEEP 25
MOVI CROWD1,A0
CALLA ONESND
SLEEP 45
MOVI CROWD1,A0
CALLA ONESND
DIE
STATIC
.word ( 14 *32*32)+( 14 *32)+( 14 ) ; color 48
.word ( 6 *32*32)+( 6 *32)+( 6 ) ; color 49
.word ( 10 *32*32)+( 9 *32)+( 14 ) ; color 50
.word ( 19 *32*32)+( 19 *32)+( 27 ) ; color 51
.word ( 27 *32*32)+( 23 *32)+( 23 ) ; color 52
.word ( 25 *32*32)+( 25 *32)+( 25 ) ; color 53
STATICD
.word ( 14 *32*32)+( 14 *32)+( 14 ) ; color 48
.word ( 6 *32*32)+( 6 *32)+( 6 ) ; color 49
.word ( 10 *32*32)+( 9 *32)+( 14 ) ; color 50
.word ( 19 *32*32)+( 19 *32)+( 27 ) ; color 51
.word ( 27 *32*32)+( 23 *32)+( 23 ) ; color 52
.word ( 25 *32*32)+( 25 *32)+( 25 ) ; color 53
;BRAIN
; .word ( 8 *32*32)+( 8 *32)+( 12 ) ; color 7
; .word ( 9 *32*32)+( 0 *32)+( 12 ) ; color 8
; .word ( 7 *32*32)+( 0 *32)+( 9 ) ; color 9
; .word ( 5 *32*32)+( 0 *32)+( 7 ) ; color 10
; .word ( 1 *32*32)+( 0 *32)+( 5 ) ; color 11
;BRAIND
; .word ( 8 *32*32)+( 8 *32)+( 12 ) ; color 7
; .word ( 9 *32*32)+( 0 *32)+( 12 ) ; color 8
; .word ( 7 *32*32)+( 0 *32)+( 9 ) ; color 9
; .word ( 5 *32*32)+( 0 *32)+( 7 ) ; color 10
; .word ( 1 *32*32)+( 0 *32)+( 5 ) ; color 11
HOSPR
.word ( 0 *32*32)+( 29 *32)+( 0 ) ; color 58
.word ( 0 *32*32)+( 16 *32)+( 0 ) ; color 57
.word ( 0 *32*32)+( 11 *32)+( 0 ) ; color 56
.word ( 0 *32*32)+( 7 *32)+( 0 ) ; color 55
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 54
HOSPRD
.word ( 0 *32*32)+( 29 *32)+( 0 ) ; color 58
.word ( 0 *32*32)+( 16 *32)+( 0 ) ; color 57
.word ( 0 *32*32)+( 11 *32)+( 0 ) ; color 56
.word ( 0 *32*32)+( 7 *32)+( 0 ) ; color 55
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 54
HOSPG
.word ( 31 *32*32)+( 4 *32)+( 0 ) ; color 63
.word ( 19 *32*32)+( 2 *32)+( 0 ) ; color 62
.word ( 12 *32*32)+( 0 *32)+( 0 ) ; color 61
.word ( 7 *32*32)+( 0 *32)+( 0 ) ; color 60
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 59
HOSPGD
.word ( 31 *32*32)+( 4 *32)+( 0 ) ; color 63
.word ( 19 *32*32)+( 2 *32)+( 0 ) ; color 62
.word ( 12 *32*32)+( 0 *32)+( 0 ) ; color 61
.word ( 7 *32*32)+( 0 *32)+( 0 ) ; color 60
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 59
;YELLOWT
; .word >7FE6,>6640,>3CE0,>7FE6,>6640 ; Cycling Yellow Colors
BLKC .WORD 0
;FLOOR LIGHTS
STARCTBL
.word ( 25 *32*32)+( 14 *32)+( 7 ) ; color 60
.word ( 29 *32*32)+( 21 *32)+( 8 ) ; color 59
.word ( 31 *32*32)+( 27 *32)+( 10 ) ; color 58
STARCEND
FLITE
.word ( 29 *32*32)+( 21 *32)+( 8 ) ; color 59
.word ( 25 *32*32)+( 14 *32)+( 7 ) ; color 60
.word ( 31 *32*32)+( 27 *32)+( 10 ) ; color 58
FD
.word ( 29 *32*32)+( 21 *32)+( 8 ) ; color 59
.word ( 25 *32*32)+( 14 *32)+( 7 ) ; color 60
.word ( 31 *32*32)+( 27 *32)+( 10 ) ; color 58
;COMPUTER LIGHTS
CLITE
.word ( 31 *32*32)+( 5 *32)+( 4 ) ; color 61
.word ( 4 *32*32)+( 14 *32)+( 30 ) ; color 62
.word ( 6 *32*32)+( 25 *32)+( 7 ) ; color 63
CLITED
.word ( 31 *32*32)+( 5 *32)+( 4 ) ; color 61
.word ( 4 *32*32)+( 14 *32)+( 30 ) ; color 62
.word ( 6 *32*32)+( 25 *32)+( 7 ) ; color 63
RRED
.word ( 29 *32*32)+( 0 *32)+( 0 ) ; color 63
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 62
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 62
MLIT
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 62
.word ( 29 *32*32)+( 0 *32)+( 0 ) ; color 63
MLITD
.word ( 0 *32*32)+( 0 *32)+( 0 ) ; color 62
.word ( 29 *32*32)+( 0 *32)+( 0 ) ; color 63
RLIT
.word ( 17 *32*32)+( 30 *32)+( 4 ) ; color 27
.word ( 7 *32*32)+( 18 *32)+( 6 ) ; color 28
.word ( 0 *32*32)+( 13 *32)+( 0 ) ; color 29
RLITD
.word ( 17 *32*32)+( 30 *32)+( 4 ) ; color 27
.word ( 7 *32*32)+( 18 *32)+( 6 ) ; color 28
.word ( 0 *32*32)+( 13 *32)+( 0 ) ; color 29
OLITE:
.word ( 0 *32*32)+( 0 *32)+( 31 ) ; color 1
.word ( 0 *32*32)+( 1 *32)+( 21 ) ; color 2
.word ( 0 *32*32)+( 0 *32)+( 10 ) ; color 3
.word ( 31 *32*32)+( 31 *32)+( 31 ) ; color 4
.word ( 0 *32*32)+( 17 *32)+( 0 ) ; color 5
.word ( 0 *32*32)+( 7 *32)+( 0 ) ; color 6
.word ( 31 *32*32)+( 31 *32)+( 31 ) ; color 7
OD:
.word ( 0 *32*32)+( 0 *32)+( 31 ) ; color 1
.word ( 0 *32*32)+( 1 *32)+( 21 ) ; color 2
.word ( 0 *32*32)+( 0 *32)+( 10 ) ; color 3
.word ( 31 *32*32)+( 31 *32)+( 31 ) ; color 4
.word ( 0 *32*32)+( 17 *32)+( 0 ) ; color 5
.word ( 0 *32*32)+( 7 *32)+( 0 ) ; color 6
.word ( 31 *32*32)+( 0 *32)+( 0 ) ; color 7
APLIT ;APPLAUSE LIGHT
.word ( 31 *32*32)+( 0 *32)+( 0 ) ; color 62
.word ( 21 *32*32)+( 0 *32)+( 0 ) ; color 63
APD
.word ( 31 *32*32)+( 0 *32)+( 0 ) ; color 62
.word ( 21 *32*32)+( 0 *32)+( 0 ) ; color 63
P1LIT
.word ( 11 *32*32)+( 0 *32)+( 11 ) ; color 1
.word ( 17 *32*32)+( 0 *32)+( 17 ) ; color 2
.word ( 21 *32*32)+( 5 *32)+( 23 ) ; color 3
.word ( 31 *32*32)+( 8 *32)+( 26 ) ; color 4
P1D:
.word ( 11 *32*32)+( 0 *32)+( 11 ) ; color 1
.word ( 17 *32*32)+( 0 *32)+( 17 ) ; color 2
.word ( 21 *32*32)+( 5 *32)+( 23 ) ; color 3
.word ( 31 *32*32)+( 8 *32)+( 26 ) ; color 4
P2LIT
.word ( 3 *32*32)+( 9 *32)+( 4 ) ; color 1
.word ( 0 *32*32)+( 18 *32)+( 5 ) ; color 2
.word ( 0 *32*32)+( 26 *32)+( 11 ) ; color 3
.word ( 1 *32*32)+( 31 *32)+( 21 ) ; color 4
P2D:
.word ( 3 *32*32)+( 9 *32)+( 4 ) ; color 1
.word ( 0 *32*32)+( 18 *32)+( 5 ) ; color 2
.word ( 0 *32*32)+( 26 *32)+( 11 ) ; color 3
.word ( 1 *32*32)+( 31 *32)+( 21 ) ; color 4
ARW_P
.word ( 27 *32*32)+( 0 *32)+( 0 ) ; color 39
.word ( 31 *32*32)+( 14 *32)+( 0 ) ; color 40
.word ( 31 *32*32)+( 23 *32)+( 10 ) ; color 41
.word ( 31 *32*32)+( 28 *32)+( 25 ) ; color 42
ARD
.word ( 27 *32*32)+( 0 *32)+( 0 ) ; color 39
.word ( 31 *32*32)+( 14 *32)+( 0 ) ; color 40
.word ( 31 *32*32)+( 23 *32)+( 10 ) ; color 41
.word ( 31 *32*32)+( 28 *32)+( 25 ) ; color 42
;TITCLR
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 41
; .word ( 20 *32*32)+( 16 *32)+( 0 ) ; color 42
; .word ( 23 *32*32)+( 18 *32)+( 0 ) ; color 43
; .word ( 26 *32*32)+( 20 *32)+( 0 ) ; color 44
; .word ( 28 *32*32)+( 23 *32)+( 0 ) ; color 45
; .word ( 31 *32*32)+( 28 *32)+( 0 ) ; color 46
; .word ( 31 *32*32)+( 31 *32)+( 11 ) ; color 47
; .word ( 31 *32*32)+( 31 *32)+( 14 ) ; color 48
; .word ( 31 *32*32)+( 31 *32)+( 26 ) ; color 49
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 50
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 51
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 52
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 53
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 54
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 55
;TITD
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 41
; .word ( 20 *32*32)+( 16 *32)+( 0 ) ; color 42
; .word ( 23 *32*32)+( 18 *32)+( 0 ) ; color 43
; .word ( 26 *32*32)+( 20 *32)+( 0 ) ; color 44
; .word ( 28 *32*32)+( 23 *32)+( 0 ) ; color 45
; .word ( 31 *32*32)+( 28 *32)+( 0 ) ; color 46
; .word ( 31 *32*32)+( 31 *32)+( 11 ) ; color 47
; .word ( 31 *32*32)+( 31 *32)+( 14 ) ; color 48
; .word ( 31 *32*32)+( 31 *32)+( 26 ) ; color 49
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 50
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 51
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 52
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 53
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 54
; .word ( 18 *32*32)+( 12 *32)+( 0 ) ; color 55
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
COLEND .WORD 0F000H,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
SPR_LIT1 SLEEP 3 ;SPEAR CYCLE
SPR_LIT ;SPEAR CYCLE
; MOVI FBIP,a0
MOVE A9,A0
;A0=SNKGP, OR SPL
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SPR_LIT1
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 36,A8 ; A8 = [PAL #,1]
MOVI COLTAB,A9
XZT MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 1,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >6
ADDK >10,A9
CMPI COLEND,A9 ; END OF TABLE ?
JRNE XZT
MOVI COLTAB,A9 ; YES --> BEGINNING OF TABLE
JRUC XZT
;FBI_LIT
; MOVI FBIP,a0
; CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
; JAEQ SUCIDE
;
; SRL 8,A0
; SLL 8,A0
; MOVE A0,A8 ; A8 = [PAL #,0]
; ADDI 1,A8 ; A8 = [PAL #,1]
; MOVI TITCLR,A9
; MOVI ARW_P,A9
;
;ZT MOVE A8,A1
; MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
; MOVI 1,A2 ; A2 = COLOR COUNT
; CALLA PALSET ; DO THE TRANSFER
; SLEEP >4
; ADDK >10,A9
; CMPI TITD,A9 ; END OF TABLE ?
; CMPI ARD,A9 ; END OF TABLE ?
; JRNE ZT
; MOVI ARW_P,A9
; MOVI TITCLR,A9 ; YES --> BEGINNING OF TABLE
; JRUC ZT
;BRAIN
;STATIC ONLY ON CORRECT ARENAS!
;BRN_LIT
; MOVE A10,A0
; CALLA PRCSLP
; MOVE A9,A0
; MOVI YBG,A0
; CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
; JAEQ SUCIDE
;
; SRL 8,A0
; SLL 8,A0
; MOVE A0,A8 ; A8 = [PAL #,0]
; ADDI 7,A8 ; A8 = [PAL #,1]
; MOVI BRAIN,A9
;
;CZZ MOVE A8,A1
; MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
; MOVI 5,A2 ; A2 = COLOR COUNT
; CALLA PALSET ; DO THE TRANSFER
; SLEEP >04
; ADDK >10,A9
; CMPI BRAIND,A9 ; END OF TABLE ?
; JRNE CZZ
; MOVI BRAIN,A9 ; YES --> BEGINNING OF TABLE
; JRUC CZZ
;STATIC
;STATIC ONLY ON CORRECT ARENAS!
STATIC_LIT
;A9=RBTP5 OR RBTP
MOVE A9,A0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 49,A8 ; A8 = [PAL #,1]
MOVI STATIC,A9
STCZZ MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 5,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >02
ADDK >10,A9
CMPI STATICD,A9 ; END OF TABLE ?
JRNE STCZZ
MOVI STATIC,A9 ; YES --> BEGINNING OF TABLE
JRUC STCZZ
;HOSPITAL MONITOR GREEN
;STATIC ONLY ON CORRECT ARENAS!
HOSPG_LIT
MOVE A9,A0
;A0=RBTP5 OR RBTP ETC
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 54,A8 ; A8 = [PAL #,1]
MOVI HOSPR,A9
STCZZZ MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 5,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >08
ADDK >10,A9
CMPI HOSPRD,A9 ; END OF TABLE ?
JRNE STCZZZ
MOVI HOSPR,A9 ; YES --> BEGINNING OF TABLE
JRUC STCZZZ
;HOSPITAL MONITOR RED
;STATIC ONLY ON CORRECT ARENAS!
HOSPR_LIT
MOVE A9,A0
;A0=RBTP5 OR RBTP ETC
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 59,A8 ; A8 = [PAL #,1]
MOVI HOSPG,A9
STCZZZZ MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 5,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >05
ADDK >10,A9
CMPI HOSPGD,A9 ; END OF TABLE ?
JRNE STCZZZZ
MOVI HOSPG,A9 ; YES --> BEGINNING OF TABLE
JRUC STCZZZZ
PRZ_LIT
;PRIZE LIGHTS AROUND TV SCREEN
MOVI PRZ,A0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
MOVI 350,A1
MOVB A1,@PZON
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 61,A8 ; A8 = [PAL #,1]
MOVI FLITE,A9
MOVI 50,A10
OTCZ MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 3,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >05
ADDK >10,A9
CMPI FD,A9 ; END OF TABLE ?
JRNE OTCZ
MOVI FLITE,A9 ; YES --> BEGINNING OF TABLE
MOVB @PZON,A0
DEC A0
JRNZ OTCZ
MOVB A0,@PZON
DIE
;FLOOR LIGHTS
FLR_LIT
MOVI SETCOL,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 58,A8 ; A8 = [PAL #,1]
MOVI FLITE,A9
STCZ MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 3,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >07
ADDK >10,A9
CMPI FD,A9 ; END OF TABLE ?
JRNE STCZ
MOVI FLITE,A9 ; YES --> BEGINNING OF TABLE
JRUC STCZ
;LAZER IN HZ WALKWAY
LAZ_LIT
MOVI SETCOL,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 58,A8 ; A8 = [PAL #,1]
MOVI FLITE,A9
LTCZ MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 2,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >02
ADDK >10,A9
CMPI FD,A9 ; END OF TABLE ?
JRNE LTCZ
MOVI FLITE,A9 ; YES --> BEGINNING OF TABLE
JRUC LTCZ
FLR2_LIT
;FLOOR LIGHTS
MOVI BONUSP,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 61,A8 ; A8 = [PAL #,1]
MOVI FLITE,A9
CZ MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 3,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >07
ADDK >10,A9
CMPI FD,A9 ; END OF TABLE ?
JRNE CZ
MOVI FLITE,A9 ; YES --> BEGINNING OF TABLE
JRUC CZ
P1_LIT
;P1 BONUS
SLEEP 5
MOVI BGPLYR1P,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 60,A8 ; A8 = [PAL #,1]
MOVI P1LIT,A9
XCZZ MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 4,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >08
ADDK >10,A9
CMPI P1D,A9 ; END OF TABLE ?
JRNE XCZZ
MOVI P1LIT,A9 ; YES --> BEGINNING OF TABLE
JRUC XCZZ
P2_LIT
;P2 BONUS
SLEEP 5
MOVI BGPLYR2P,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 60,A8 ; A8 = [PAL #,1]
MOVI P2LIT,A9
CZX MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 4,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >08
ADDK >10,A9
CMPI P2D,A9 ; END OF TABLE ?
JRNE CZX
MOVI P2LIT,A9 ; YES --> BEGINNING OF TABLE
JRUC CZX
;ORB COLOR CYCLE
ORB_LIT:
MOVI NUORB,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 22,A8 ; A8 = [PAL #,1]
MOVI OLITE,A9
STCO MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 1,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >02
ADDK >10,A9
CMPI OD,A9 ; END OF TABLE ?
JRNE STCO
MOVI OLITE,A9 ; YES --> BEGINNING OF TABLE
JRUC STCO
;ORB COLOR CYCLE
ARW_LIT:
MOVI nup1,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 39,A8 ; A8 = [PAL #,1]
MOVI ARW_P,A9
ATCO MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 1,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >08
ADDK >10,A9
CMPI ARD,A9 ; END OF TABLE ?
JRNE ATCO
MOVI ARW_P,A9 ; YES --> BEGINNING OF TABLE
JRUC ATCO
;APPLAUSE SIGN
AP_LIT:
MOVI MNTR,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 62,A8 ; A8 = [PAL #,1]
MOVI APLIT,A9
ASTCO MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 1,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >012
ADDK >10,A9
CMPI APD,A9 ; END OF TABLE ?
JRNE ASTCO
MOVI APLIT,A9 ; YES --> BEGINNING OF TABLE
JRUC ASTCO
;X SIGN
STUD_LIT:
MOVI MAPP,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 63,A8 ; A8 = [PAL #,1]
MOVI ARW_P,A9
XO MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 1,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >07
ADDK >10,A9
CMPI ARD,A9 ; END OF TABLE ?
JRNE XO
MOVI ARW_P,A9 ; YES --> BEGINNING OF TABLE
JRUC XO
CMP_LIT
MOVI SETCOL,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 61,A8 ; A8 = [PAL #,1]
MOVI CLITE,A9
STCX MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 3,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP >09
ADDK >10,A9
CMPI CLITED,A9 ; END OF TABLE ?
JRNE STCX
MOVI CLITE,A9 ; YES --> BEGINNING OF TABLE
JRUC STCX
MIN_LIT
MOVI BULLET,a0
CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 60,A8 ; A8 = [PAL #,1]
MOVI MLIT,A9
STCA MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 1,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP 10
ADDK >10,A9
CMPI MLITD,A9 ; END OF TABLE ?
JRNE STCA
MOVI MLIT,A9 ; YES --> BEGINNING OF TABLE
JRUC STCA
RNG_LIT2
MOVI nup2,a0
JRUC RT
RNG_LIT
MOVI nup1,a0
RT CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 27,A8 ; A8 = [PAL #,1]
MOVI RLIT,A9
STCR MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 3,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
SLEEP 7
ADDK >10,A9
CMPI RLITD,A9 ; END OF TABLE ?
JRNE STCR
MOVI RLIT,A9 ; YES --> BEGINNING OF TABLE
JRUC STCR
RED2
MOVI nup2,a0
JRUC RTQ
RED1
MOVI nup1,a0
RTQ CALLA FINDPAL ; FIND PALLETE WE WANNA MESS WITH
JAEQ SUCIDE
SRL 8,A0
SLL 8,A0
MOVE A0,A8 ; A8 = [PAL #,0]
ADDI 27,A8 ; A8 = [PAL #,1]
MOVI RRED,A9
MOVE A8,A1
MOVE A9,A0 ; A0 = SOURCE = TABLE POSITION
MOVI 3,A2 ; A2 = COLOR COUNT
CALLA PALSET ; DO THE TRANSFER
DIE
TURNON
;TURN ON ALL OVERHEAD IMAGES
MOVI 0,A9
CREATE CYCPID,STAR_COLOR
CLR A0
MOVB A0,@TMP
TOP0
MOVB @TMP,A0
SLL 5,A0
ADDI IMAG,A0
MOVE *A0,A9,L
JRZ DONE
TOP
MOVE *A9+,A10,W
SUBI 89,A10
MOVE *A9+,A11,W
SUBI 800,A11
;A10=X FROM TABLE
;A11=Y
MOVB @TMP,A0
SLL 5,A0
ADDI IMAG2,A0
MOVE *A0,A14,L
CALLR DOIMG
MOVE *A9,A0
ANDI 0FFFFH,A0
CMPI 0FFFFH,A0
JRNE TOP
;NEXT LIST
MOVB @TMP,A0
INC A0
MOVB A0,@TMP
JRUC TOP0
DONE
RETS
IMAG .LONG HZG,HZGF,VTG,VTGF,CAP,CAPF,LITE,LITEF,PIN,PINF,WIRE,WIREF
.LONG LHZ,LHZG,LVT,LVTG,0
IMAG2 .LONG IMG3,IMG4,IMG1,IMG2,IMG11,IMG12,IMG5,IMG6,IMG7,IMG8,IMG9,IMG10
.LONG IMG13,IMG14,IMG15,IMG16
IMG1:
.LONG 0,0,VGRID
.WORD 07FEDH,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG2:
.LONG 0,0,VGRID
.WORD 07FEDH,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG3:
.LONG 0,0,HGRID
.WORD 07FEDH,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG4:
.LONG 0,0,HGRID
.WORD 07FEDH,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG5:
.LONG 0,0,LAMP
.WORD 07FEBH,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG6:
.LONG 0,0,LAMP
.WORD 07FEBH,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG7:
.LONG 0,0,LGHTBAR
.WORD 07FECH,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG8:
.LONG 0,0,LGHTBAR
.WORD 07FECH,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG9:
.LONG 0,0,LGHTWIRE
.WORD 07FECH,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG10:
.LONG 0,0,LGHTWIRE
.WORD 07FECH,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG11:
.LONG 0,0,ENDGRID
.WORD 07FEDH,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG12:
.LONG 0,0,ENDGRID
.WORD 07FEDH,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG13:
.LONG 0,0,BIGH
.WORD 07FEDH,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG14:
.LONG 0,0,BIGH
.WORD 07FEDH,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG15:
.LONG 0,0,BIGV
.WORD 07FEDH,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
IMG16:
.LONG 0,0,BIGV
.WORD 07FEDH,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBUP
.LONG 0,0
;IMAGES X/Y POSITION
HZG:
.WORD 569,1063
.WORD 606,1063
.WORD 746+10,1030-25
.WORD 817+10,1105-25
.WORD 0FFFFH
HZGF
.WORD 853+10,1105-25
.WORD 970+10,953-25
.WORD 0FFFFH
VTG
.WORD 397,1112
.WORD 0FFFFH
VTGF
.WORD 553,1073
.WORD 0FFFFH
CAP
.WORD 201,1005
.WORD 555,1024
.WORD 561,1104
.WORD 644,1063
.WORD 784+10,1030-25
.WORD 1005+10,953-25
.WORD 0FFFFH
CAPF
.WORD 312,1024
.WORD 553,1063
.WORD 692+10,1105-25
.WORD 731+10,1030-25
.WORD 957+10,953-25
.WORD 0FFFFH
LITE
.WORD 137,1022
.WORD 216,1022
.WORD 608,1086
.WORD 784+10,1051-25
.WORD 0FFFFH
LITEF
.WORD 287,1039
.WORD 387,1051
.WORD 937+10,975-25
.WORD 0FFFFH
PIN
.WORD 130,1016
.WORD 208,1017
.WORD 600,1081
.WORD 775+10,1046-25
.WORD 0FFFFH
PINF
.WORD 411,1044
.WORD 961+10,970-25
.WORD 0FFFFH
WIRE
.WORD 129,1005
.WORD 211,1022
.WORD 603,1076
.WORD 779+10,1041-25
.WORD 0FFFFH
WIREF
.WORD 412,1039
.WORD 964+10,965-25
.WORD 0FFFFH
LHZ .WORD 90,1005
.WORD 90,1084
.WORD 703+10,1105-25
.WORD 0FFFFH
LHZG .WORD 326,1024
.WORD 333,1103
.WORD 440,1024
.WORD 446,1103
.WORD 891+10,1105-25
.WORD 0FFFFH
LVT .WORD 312,1037
.WORD 312,1111
.WORD 918+10,1114-25
.WORD 998+10,966-25
.WORD 998+10,1039-25
.WORD 998+10,1114-25
.WORD 0FFFFH
LVTG .WORD 117,1095
.WORD 192,1018
.WORD 192,1094
.WORD 636,847
.WORD 636,921
.WORD 636,996
.WORD 730+10,1039-25
.WORD 767+10,1114-25
.WORD 0FFFFH
INIT_DEMO:
CREATE 0,DEMOPLAY
RETS
;
; UPDATE PLAYER CONTROLS
;
JOY_UPDATE:
MOVE @GAMSTATE,A0
CMPI INGAME,A0
JRNZ SKP_FSTICK
CLR A5
NOT A5
MOVE @HALT,A0,W
JRNZ SKP_READ
MOVE @JOYSW,A5,L ;MOVE PLAYER SWITCHES TO A5 (32 BIT PORT)
SKP_READ:
NOT A5
MOVE A5,@P1CTRL
SRL 4,A5
.IF YUNIT
SRL 4,A5
.ENDIF
MOVE A5,@P2CTRL
SKP_FSTICK:
SLEEP 1
JRUC JOY_UPDATE
PUTBGND:
CLR A0
MOVE A0,@SCROLLX,L
MOVE A0,@SCROLLY,L
MOVE @CIRCUIT,A0 ;FETCH CIRCUIT
SLL 5,A0 ;TABLE ENTRY UHL OFFSET
ADDI GAMEMODS,A0
MOVE *A0,A0,L ;FETCH DATA POINTER TO WAVE MODULES
MOVE A0,A1
ADDI 32,A1 ;GET X,Y POSITION OF MODULE
MOVE *A1,A2,L
SLL 16,A2
SUBI [6,0],A2
; MOVE A2,@WORLDTLX,L ;AND SET WORLD COORS ACCORDINGLY
MOVE A2,A6
ADDI 16,A1
MOVE *A1,A2,L
SLL 16,A2
; MOVE A2,@WORLDTLY,L
MOVE A2,A7
MOVE A0,@BAKMODS,L
CLR A0
MOVE A0,@WORLDTLY,L
MOVE A0,@WORLDTLX,L
CALLA BGND_UD1
MOVK 1,A0
MOVE A0,@GAMERASE
CALLA AUTOEON
MOVI SETCOL,A0
CALLA BLAKOUT ;BLACK OUT BAKGROUND PALETTES
MOVI PAL2TV,A0
CALLA BLAKOUT ;BLACK OUT BAKGROUND PALETTES
MOVI NUARENAP,A0
CALLA BLAKOUT ;BLACK OUT BAKGROUND PALETTES
MOVE A7,A0
MOVE A0,@WORLDTLY,L
MOVE A6,A0
MOVE A0,@WORLDTLX,L
MOVK 1,A0
MOVB A0,@DUMB
JSRP WNDWON
;TURN A WINDOW ON FULL SCREEN
CALLA BGND_UD1
SLEEP 1
CALLA BGND_UD1
;TAKE IT AWAY
CALLA BTOF
CALLA TURNON ;TURN ON OVERHEAD IMAGES
CREATE 0,SMASHON
;GIVE THEM ALL A NEG Y VEL
;DO OVERHEAD IMAGES EXIST? IF SO, GIVE EACH IMAGE A NEGATIVE X VEL
SLEEP 1
D33 MOVI CLSNEUT|TYPNEUT|SUBUP,A0
CLR A1
NOT A1
CALLA EXISTOBJ
JRZ D34
MOVI -010000H,A1
MOVE A1,*A0(OYVEL),L
MOVI CLSNEUT|TYPNEUT|SUBUP2,A1
MOVE A1,*A0(OID),W
JRUC D33
D34
SLEEP 85 ;90
;PIECES ARE SCROLLING
D35 MOVI CLSNEUT|TYPNEUT|SUBUP2,A0
CLR A1
NOT A1
CALLA EXISTOBJ
JRZ D36
CLR A1
MOVE A1,*A0(OYVEL),L
MOVI CLSNEUT|TYPNEUT|SUBUP,A1
MOVE A1,*A0(OID),W
JRUC D35
D36
MOVI SETCOL,A0
CALLA BLAKOUT ;BLACK OUT BAKGROUND PALETTES
MOVI PAL2TV,A0
CALLA BLAKOUT ;BLACK OUT BAKGROUND PALETTES
MOVI NUARENAP,A0
CALLA BLAKOUT ;BLACK OUT BAKGROUND PALETTES
JSRP WNDWOFF
;STOP THEM
;FADE IN LIGHTS FIRST
;THEN FADE IN TVSET STAGE
MOVI PAL1TAB,A0
MOVK 3,A1
CALLA FADEIN ;SO THAT WE MAY FADE IT IN
CREATE 0,FADLOGO
CREATE 0,PEEPL
CREATE 0,DUX
CLR A0
MOVB A0,@DUMB
SLEEP 54
RETP
FADLOGO
SLEEP 070H
MOVI PAL1TABA,A0
MOVK 3,A1
CALLA FADEIN ;SO THAT WE MAY FADE IT IN
DIE
DUX SLEEP 30
CREATE CYCPID,FLR_LIT
CREATE CYCPID,CMP_LIT
DIE
PEEPL
CREATE SETPID,CLAP
CREATE SETPID,MC
CREATE SETPID,GGAL1
CREATE SETPID,GGAL2
DIE
CLAP
MOVI 49,A9
CL1
CREATE SETPID,HANDS
SLEEP 3
DSJS A9,CL1
DIE
HND1:
.LONG 0,0,SARM1
.WORD 07F1H,DMAWNZ+M_NOCOLL,CLSNEUT
.LONG 0,0
HND2:
.LONG 0,0,SARM2
.WORD 07F1H,DMAWNZ+M_NOCOLL,CLSNEUT
.LONG 0,0
HND3:
.LONG 0,0,SARM3
.WORD 07F1H,DMAWNZ+M_NOCOLL,CLSNEUT
.LONG 0,0
HND4:
.LONG 0,0,SARM4
.WORD 07F1H,DMAWNZ+M_NOCOLL,CLSNEUT
.LONG 0,0
ITBL .LONG HND1,HND2,HND3,HND4,HND3,HND2,HND1,HND2,HND3,HND4
.LONG HND3,HND4,HND3,HND2,HND1,HND2,HND3,HND4,HND2,HND1
.LONG HND3,HND4,HND3,HND2,HND1,HND2,HND3,HND4,HND2,HND1
.LONG HND3,HND4,HND3,HND2,HND1,HND2,HND3,HND4,HND2,HND1
.LONG HND3,HND4,HND3,HND2,HND1,HND2,HND3,HND4,HND2,HND1
FTBL .LONG CLP1,CLP2,CLP3,CLP4,CLP3,CLP2,CLP1,CLP2,CLP3,CLP4
.LONG CLP3,CLP4,CLP3,CLP2,CLP1,CLP2,CLP3,CLP4,CLP3,CLP1
.LONG CLP3,CLP4,CLP3,CLP2,CLP1,CLP2,CLP3,CLP4,CLP3,CLP1
.LONG CLP1,CLP2,CLP3,CLP4,CLP3,CLP2,CLP1,CLP2,CLP3,CLP4
.LONG CLP1,CLP2,CLP3,CLP4,CLP3,CLP2,CLP1,CLP2,CLP3,CLP4
XH: .WORD 20,40,80,100,150,200,240,300,330,360,380
.WORD 30,46,72,90,120,160,206,230,310,350,370
.WORD 35,66,85,140,195,170,310,320,320,340,365
.WORD 55,96,105,120,238,174,316,229,315,334,375
.WORD 15,76,185,193,205,214,226,239,225,314,385
YH: .WORD 0F0H,0E5H,0E0H,0EAH,0F0H,0F5H,0F0H,0F0H,0E8H,0F0H
.WORD 0ECH,0EAH,0DAH,0F0H,0E7H,0F0H,0F2H,0F5H,0EBH,0E8H
.WORD 0E7H,0E6H,0E6H,0F0H,0F5H,0F2H,0F3H,0EDH,0EFH,0E5H
.WORD 0DCH,0E0H,0F8H,0F2H,0F0H,0E7H,0ECH,0E4H,0F0H,0D6H
.WORD 0F2H,0F1H,0F3H,0F4H,0F6H,0F2H,0F1H,0F3H,0F2H,0F3H
HANDS
MOVE A9,A0
SLL 5,A0
ADDI ITBL,A0
MOVE *A0,A14,L
CALLA DOIMG
MOVE A9,A0
SLL 4,A0
ADDI XH,A0
MOVE *A0,A0
MOVE A0,*A8(OXPOS)
MOVE A9,A0
SLL 4,A0
ADDI YH,A0
MOVE *A0,A0
MOVE A0,*A8(OYPOS)
MOVE A8,A0
CALLA ADJSTWTL
MOVE A9,A0
SLL 5,A0
ADDI FTBL,A0
MOVE *A0,A9,L
MOVE A9,A10
HN1
MOVE A10,A9
MOVK 1,A1
JSRP FRANIM
JRUC HN1
MC
MOVE @MCPTR,A8,L
MOVE *A8(OXPOS),A0
ADDI 14,A0
MOVE A0,*A8(OXPOS)
MOVE *A8(OYPOS),A0
SUBI 12H,A0 ;16H
MOVE A0,*A8(OYPOS)
M1
MOVI GOMC,A9
MOVK 1,A1
JSRP FRANIM
JRUC M1
GGAL1
MOVE @GAL1P,A8,L
MOVE *A8(OXPOS),A0
ADDI 8,A0
MOVE A0,*A8(OXPOS)
MOVE *A8(OYPOS),A0
SUBI 8,A0
MOVE A0,*A8(OYPOS)
G1
MOVI GAL1L,A9
MOVK 1,A1
JSRP FRANIM
JRUC G1
GGAL2
MOVE @GAL2P,A8,L
MOVE *A8(OXPOS),A0
SUBI 8,A0
MOVE A0,*A8(OXPOS)
MOVE *A8(OYPOS),A0
SUBI 9,A0
MOVE A0,*A8(OYPOS)
G2
MOVI GAL2L,A9
MOVK 1,A1
JSRP FRANIM
JRUC G2
CLP1 .LONG SARM1
.WORD 10
.LONG SARM1A
.WORD 10
.LONG 0
CLP2 .LONG SARM2
.WORD 10
.LONG SARM2A
.WORD 10
.LONG 0
CLP3 .LONG SARM3
.WORD 10
.LONG SARM3A
.WORD 10
.LONG 0
CLP4 .LONG SARM4
.WORD 10
.LONG SARM4A
.WORD 10
.LONG 0
GAL1L
.LONG GAL1
.WORD FLIPBITS|45,0
.LONG GAL2
.WORD 60
.LONG GAL3
.WORD 25
.LONG GAL4
.WORD 30
.LONG GAL3
.WORD 35
.LONG GAL1
.WORD 40
.LONG GAL4
.WORD 150
.LONG 0
GAL2L
.LONG GAL1
.WORD FLIPBITS|43,(M_FLIPH)
.LONG GAL3
.WORD 35
.LONG GAL4
.WORD 25
.LONG GAL3
.WORD FLIPBITS|35,(M_FLIPH)
.LONG GAL2
.WORD 45
.LONG GAL1
.WORD 40
.LONG GAL4
.WORD FLIPBITS|140,0
.LONG 0
.LONG 0
GOMC
.LONG MC1
.WORD FLIPBITS|8,0
.LONG MC2
.WORD 8
.LONG MC3
.WORD 30
.LONG MC2
.WORD 8
.LONG 0
PAL1TAB:
.LONG AUTOPAL,SETCOL,BLCHR2,NUARENAP,0
PAL1TABA
.LONG PAL2TV,0
DEMOBGND:
CLR A0
MOVE A0,@SCROLLX,L
MOVE A0,@SCROLLY,L
MOVI BGMODS,A1
CLR A0
MOVE A0,@CIRCUIT
MOVE @WAVE,A0,W
CMPI 3,A0
JRNE DMG
;START COLOR CYCLE FOR THIS ROBOT ARENA
MOVI RBTP5,A9
CREATE CYCPID,STATIC_LIT
MOVI RBTP5,A9
CREATE CYCPID,HOSPG_LIT
CREATE CYCPID,HOSPR_LIT
MOVK 1,A0
MOVE A0,@CIRCUIT
MOVE @WAVE,A0
MOVI BGMODS,A1
DMG SLL 5,A0
ADD A0,A1
MOVE *A1,A1,L
MOVE A1,@BAKMODS,L
CALLA BGND_UD1
MOVK 1,A0
MOVE A0,@GAMERASE
JAUC AUTOEON
BGMODS:
.LONG 0,PWAVE2,PWAVE3,PWAVE4,PWAVE3,PWAVE3,0,0,0,0,PWAVE3
;
; MODULE DEFINITION FOR BACKGROUND
;
GAMEMODS:
.LONG CIRCUIT1,CIRCUIT2,CIRCUIT3
CIRCUIT1:
;
; GAME MODULE FOR CIRCUIT 1
;
;ARENAS AND TVSET POSITIONS
.LONG TVSETBMOD ;TV INTRO SCREEN
.WORD 6,>152
.LONG ARENA3BMOD ;ARENA 3
.WORD >3B4,>5
.LONG ARENA2BMOD ;ARENA 4
.WORD >58D,>5
.LONG TRSRBMOD ;ARENA 5 ;CASH ROOM
.WORD >765,>5 ;764
.LONG ARENABMOD ;ARENA 1
.WORD >1DD,>152 ;1D6
.LONG ARENABMOD ;ARENA 2
.WORD >3B5,>152 ;3A7 3B4
.LONG ARENA2BMOD ;ARENA 8
.WORD >58D,>152 ;3A7
.LONG ARENA2BMOD ;ARENA 9
.WORD >765,>152 ;3A7
.LONG BROKENBMOD ;ARENA 10 ;MUTOID MAN
.WORD >93D,>152 ;578
; .LONG TVSETBMOD ;TV SCREEN END
; .WORD >B15,>152 ;749
.LONG BONUSBMOD ;BONUS SCRN
.WORD >1DD,>29E-55
.LONG BONUSBMOD ;BONUS SCRN
.WORD >93D,>29E-55
.LONG ARENABMOD ;ARENA 6 ;EASY AREA
.WORD >3B4,>29E
.LONG ARENABMOD ;ARENA 7 ;EASY AREA
.WORD >58D,>29E
;VERTICAL WALKWAYS
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 3/4
.WORD >53C,>5 ;53C
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 4/5
.WORD >714,>5
.LONG WLKRGTBMOD ;WALK WAY BETWEEN TV/1
.WORD >189,>153 ;
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 1/2
.WORD >364,>152
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 8/9
.WORD >714,>152
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 9/10
.WORD >8ED,>152
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 6/7
.WORD >53C,>29E
;HORIZONTAL WALKWAYS
.LONG HWLKWYBMOD ;HZ BETWEEN 3/2
.WORD >3B2,>101
.LONG HWLKWYBMOD ;HZ BETWEEN 4/8
.WORD >58B,>102 ;100
.LONG HWLKWYBMOD ;HZ BETWEEN 5/9
.WORD >762,>102 ;764/100
.LONG HWLKWYBMOD ;HZ BETWEEN 2/6
.WORD >3B2,>24F
.LONG HWLKWYBMOD ;HZ BETWEEN 8/7
.WORD >589,>24D
.LONG >FFFFFFFF
CIRCUIT2:
;
; GAME MODULE FOR CIRCUIT 2
;
;ARENAS AND TVSET POSITIONS
;TVSET ARENA
.LONG TVSETBMOD ;TV INTRO SCREEN
.WORD 6,>29E
;TOP ROW
.LONG ARBTBBMOD ;ARENA 11
.WORD >58D,>5
.LONG TRSR2BMOD ;ARENA 12
; .LONG ARBTADBMOD ;ARENA 12
.WORD >765,>5 ;764
;ROW 2
.LONG ARBTFBMOD ;ARENA 8
.WORD >1DC,>152
.LONG ARBTAABMOD ;ARENA 9
.WORD >3B5,>152
.LONG ARBTABBMOD ;ARENA 4
.WORD >58D,>152
.LONG ARBTGBMOD ;ARENA 5
.WORD >765,>152
;ROW 3
.LONG ARBTEBMOD ;ARENA 1
.WORD >1DD,>29E
.LONG ARBTCBMOD ;ARENA 2
.WORD >3B5,>29E
.LONG ARBTADBMOD ;ARENA 3
.WORD >58D,>29E
.LONG ARBTHBMOD ;ARENA 6
.WORD >764,>29E
.LONG ARBTDBMOD ;ARENA 7
.WORD >93D,>29E
;ROW 4
.LONG ARBTFBMOD ;ARENA 13
.WORD >1DD,>3EA
; .LONG ARBTACBMOD ;ARENA 14
.LONG TRSR2BMOD ;ARENA 14 ;CASH ROOM
.WORD >3B5,>3EA
.LONG ARBTAABMOD ;ARENA 15
.WORD >58D,>3EA
.LONG ARBTGBMOD ;ARENA 16
.WORD >764,>3EA
.LONG BONUSBMOD ;BONUS SCRN
.WORD >93D,>3EA-55
;ROW 5
.LONG ARBTCBMOD ;ARENA 17
.WORD >58D,>536
.LONG ARBTADBMOD ;ARENA 18
.WORD >764,>536
;VERTICAL WALKWAYS
;ROW 1
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
.WORD >714,>5
;ROW 2
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 8/9
.WORD >364,>152
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 9/4
.WORD >53C,>152
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 4/5
.WORD >714,>152
;ROW 3
.LONG WLKRGTBMOD ;WALKWAY BETWEEN TV/1
.WORD >189,>29F
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 1/2
.WORD >364,>29E
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 2/3
.WORD >53C,>29E
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 6/7
.WORD >8ED,>29E
;ROW 4
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 13/14
.WORD >364,>3EA
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 14/15
.WORD >53C,>3EA
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 15/16
.WORD >714,>3EA
;ROW 5
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 17/18
.WORD >714,>536
;HORIZONTAL WALKWAYS
;ROW 1
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
.WORD >58B,>102
.LONG HWLKWYBMOD ;HZ BETWEEN 5/12
.WORD >761,>102 ;764
;ROW 2
.LONG HWLKWYBMOD ;HZ BETWEEN 1/8
.WORD >1D9,>24F
.LONG HWLKWYBMOD ;HZ BETWEEN 2/9
.WORD >3B2,>24F
.LONG HWLKWYBMOD ;HZ BETWEEN 3/4
.WORD >58B,>24F
.LONG HWLKWYBMOD ;HZ BETWEEN 6/5
.WORD >761,>24F
;ROW3
.LONG HWLKWYBMOD ;HZ BETWEEN 13/1
.WORD >1D9,>39C
.LONG HWLKWYBMOD ;HZ BETWEEN 14/2
.WORD >3B2,>39C
.LONG HWLKWYBMOD ;HZ BETWEEN 15/3
.WORD >58B,>39C
.LONG HWLKWYBMOD ;HZ BETWEEN 16/6
.WORD >761,>39C
;ROW 4
.LONG HWLKWYBMOD ;HZ BETWEEN 17/15
.WORD >58B,>4E9
.LONG HWLKWYBMOD ;HZ BETWEEN 18/16
.WORD >761,>4E9
.LONG >FFFFFFFF
CIRCUIT3:
; GAME MODULE FOR CIRCUIT 3
;
;ARENAS AND TVSET POSITIONS
;TVSET ARENA
.LONG TVSETBMOD ;TV INTRO SCREEN
.WORD 6,>29E
;TOP ROW
.LONG TEMPL1BMOD ;ARENA 11
.WORD >58D,>5
; .LONG TEMPL3BMOD ;ARENA 12
.LONG TRSR3BMOD ;ARENA 12
.WORD >764,>5 ;764
;ROW 2
.LONG JNG5BMOD ;ARENA 8
.WORD >1DC,>152
.LONG JNG2BMOD ;ARENA 9
.WORD >3B5,>152
.LONG JNG6BMOD ;ARENA 4
.WORD >58D,>152
.LONG TEMPL5BMOD ;ARENA 5
.WORD >765,>152
;ROW 3
.LONG JNG2BMOD ;ARENA 9 ;TWO MOUTHS!
; .LONG JNG1BMOD ;ARENA 1
.WORD >1DC,>29E ;1DD
.LONG JNG5BMOD ;ARENA 2
.WORD >3B5,>29E
.LONG JNG4BMOD ;ARENA 3
.WORD >58D,>29E
.LONG TEMPL2BMOD ;ARENA 6
.WORD >764,>29E
.LONG TEMPL4BMOD ;ARENA 7
.WORD >93D,>29E
.LONG TRSR3BMOD ;ARENA 19
.WORD >B16,>29E
.LONG TRSR3BMOD ;ARENA 20
.WORD >CEF,>29E
.LONG MCENDBMOD ;ARENA 10 ;MUTOID MAN
.WORD >EC8,>29E
;ROW 4
.LONG JNG5BMOD ;ARENA 13
.WORD >1DD,>3EA
; .LONG JNG4BMOD ;ARENA 14
.LONG TRSR3BMOD ;ARENA 14
.WORD >3B5,>3EA
.LONG JNG2BMOD ;ARENA 15
.WORD >58D,>3EA
.LONG TEMPL1BMOD ;ARENA 16
.WORD >764,>3EA
.LONG BONUSBMOD ;BONUS SCRN
.WORD >EC8,>3EA-55
;ROW 5
.LONG JNG2BMOD ;ARENA 17
.WORD >58D,>536
.LONG JNG6BMOD ;ARENA 18
.WORD >764,>536
;VERTICAL WALKWAYS
;ROW 1
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
.WORD >714,>5
;ROW 2
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
; .LONG VWLKYCBMOD ;WALKWAY BETWEEN 8/9
.WORD >364,>152
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
; .LONG VWLKWYABMOD ;WALKWAY BETWEEN 9/4
.WORD >53C,>152
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 4/5
.WORD >714,>152
;ROW 3
; .LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
.LONG WLKRGTBMOD ;WALK WAY BETWEEN TV/1
; .LONG VWLKWYBBMOD ;WALKWAY BETWEEN TV/1
.WORD >189,>29F
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
; .LONG VWLKYCBMOD ;WALKWAY BETWEEN 1/2
.WORD >364,>29E
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
; .LONG VWLKYCBMOD ;WALKWAY BETWEEN 2/3
.WORD >53C,>29E
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 6/7
.WORD >8EC,>29E
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 7/19
.WORD >AC4,>29E
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 19/20
.WORD >C9D,>29E
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 20/21
.WORD >E76,>29E
;ROW 4
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
; .LONG VWLKYCBMOD ;WALKWAY BETWEEN 13/14
.WORD >364,>3EA
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
; .LONG VWLKWYABMOD ;WALKWAY BETWEEN 14/15
.WORD >53C,>3EA
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 15/16
.WORD >714,>3EA
;ROW 5
.LONG VWLKWYBMOD ;WALKWAY BETWEEN 11/12
; .LONG VWLKWYABMOD ;WALKWAY BETWEEN 17/18
.WORD >714,>536
;HORIZONTAL WALKWAYS
;ROW 1
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
; .LONG HWLKWYABMOD ;HZ BETWEEN 4/11
.WORD >58B,>102
.LONG HWLKWYBMOD ;HZ BETWEEN 5/12
.WORD >761,>102 ;764
;ROW 2
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
; .LONG HWLKWYBBMOD ;HZ BETWEEN 1/8
.WORD >1D9,>24F
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
; .LONG HWLKWYBBMOD ;HZ BETWEEN 2/9
.WORD >3B2,>24F
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
; .LONG HWLKWYABMOD ;HZ BETWEEN 3/4
.WORD >58B,>24F
.LONG HWLKWYBMOD ;HZ BETWEEN 6/5
.WORD >761,>24F
;ROW3
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
; .LONG HWLKWYBBMOD ;HZ BETWEEN 13/1
.WORD >1D9,>39C
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
; .LONG HWLKWYABMOD ;HZ BETWEEN 14/2
.WORD >3B2,>39C
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
; .LONG HWLKWYABMOD ;HZ BETWEEN 15/3
.WORD >58B,>39C
.LONG HWLKWYBMOD ;HZ BETWEEN 16/6
.WORD >761,>39C
;ROW 4
.LONG HWLKWYBMOD ;HZ BETWEEN 4/11
; .LONG HWLKWYABMOD ;HZ BETWEEN 17/15
.WORD >58B,>4E9
.LONG HWLKWYBMOD ;HZ BETWEEN 18/16
.WORD >761,>4E9
.LONG >FFFFFFFF
PWAVE2:
.LONG ARENA2BMOD ;ARENA 9
.WORD 5,0
.LONG >FFFFFFFF
PWAVE3:
.LONG BROKENBMOD
.WORD 5,0
.LONG >FFFFFFFF
PWAVE4:
.LONG ARBTDBMOD
.WORD 5,0
.LONG >FFFFFFFF
.END