 |
ASL A
TAY
LDA (Ptr1_LO),Y
STA Ptr2_LO
INY
LDA (Ptr1_LO),Y
STA Ptr2_HI
LDA L040E,X
TAY
LDX L04BF
LDA (Ptr2_LO),Y
CLC
ADC Sprite1_Y,X
LDX L04BD
STA Sprite1_Y,X
JMP L8B94
L8C60: LDX FlashTime
LDY #$09
STY L04BE
L8C68: LDX FlashTime
LDY L04BE
LDA L0300 ,Y
BPL L8C76
JMP L8D98
L8C76: ASL A
TAY
LDA L4AC8,Y
STA Ptr1_LO
LDA L4AC9,Y
STA Ptr1_HI
LSR Ptr1_HI
ROR Ptr1_LO
LSR Ptr1_HI
ROR Ptr1_LO
LDA Sprite1_Y,X
L8C8C: SEC
SBC Ptr1_LO
CLC
ADC #$10
CMP #$18
BCC L8C99
JMP L8D51
L8C99: LDY L04BE
LDA HATABS+4,Y
ASL A
TAY
LDA L4AFE,Y
STA Ptr2_LO
LDA L4AFF,Y
STA Ptr2_HI
LDY L04BE
LDA L0300 ,Y
TAY
LDA (Ptr2_LO),Y
LDY L04BE
CLC
ADC LaserXPos,Y
SEC
SBC Sprite1_X,X
SEC
SBC #$FC
CMP #$10
BCC L8CC8
JMP L8D51
L8CC8: LDX FlashTime
LDY L04BE
LDA #$80
ORA L0300 ,Y
STA L0300 ,Y
LDA L0400,X
CMP #$0A
BEQ L8CEE
CMP #$0B
BNE L8CE4
JMP L8D98
L8CE4: CMP #$0C
BNE L8CEB
JMP L8D98
L8CEB: JMP L8D1C
;----------------------------------------------------
; Award Bonus
;----------------------------------------------------
L8CEE: TAY
LDA L8F51,Y ; Get Bonus Value
JSR L53D7 ; Add Bonus to Score
DEC L00AB
LDA #$8A
STA L040D
LDA #$8B
LDX #$0B
L8D00: STA L0401,X
DEX
BPL L8D00
LDA #$8C
STA L0400
LDX #$0D
LDA #$00
L8D0F: STA L040E,X
STA L041C,X
STA L042A,X
DEX
BPL L8D0F
RTS
L8D1C: LDX FlashTime
LDA #$80
ORA L0400,X
STA L0400,X
TXA
PHA
LDA L0400,X
AND #$7F
TAX
LDA L8F41,X
JSR L51CE ; Play Sound
PLA
TAX
LDA #$00
STA L042A,X
STA L041C,X
STA L040E,X
;----------------------------------------------------
; Award Bonus
;----------------------------------------------------
LDA L0400,X ;
AND #$7F ;
TAY ;
LDA L8F51,Y ; Get Bonus value
JSR L53D7 ; Add Bonus to Score
JMP L8D98 ;
L8D51: LDA L0438,X
CMP #$FF
JMP L8D98
TAX
LDA Sprite1_Y,X
SEC
SBC Ptr1_LO
CLC
ADC #$10
CMP #$18
BCC L8D69
JMP L8D51
L8D69: LDY L04BE
LDA HATABS+4,Y
ASL A
TAY
LDA L4AFE,Y
STA Ptr2_LO
LDA L4AFF,Y
STA Ptr2_HI
LDA L0300 ,Y
TAY
LDA (Ptr2_LO),Y
LDY L04BE
CLC
ADC LaserXPos,Y
SEC
SBC Sprite1_X,X
SEC
SBC #$FC
CMP #$10
BCC L8D95
JMP L8D98
L8D95: JMP L8CC8
L8D98: LDX FlashTime
DEC L04BE
BMI L8DA3
JMP L8C68
L8DA3: LDA PADDL1
BEQ L8DA9
RTS
L8DA9: LDX FlashTime
LDA MasterReg
AND #$E0
BNE L8DDD
SEC
LDA Sprite1_X,X
SBC BegaXPos1L
CLC
ADC #$08
CMP #$20
BCS L8DDD
LDA Sprite1_Y,X
CMP #$B8
BCC L8DDD
CMP #$E0
BCS L8DDD
LDA #$80
STA MasterReg
ORA L0400,X
STA L0400,X
LDA #$00
STA L042A,X
STA L040E,X
STA L041C,X
L8DDD: LDA L009B
AND #$E0
BNE L8E0E
SEC
LDA Sprite1_X,X
SBC L00A6
CLC
ADC #$08
CMP #$10
BCS L8E0E
LDA Sprite1_Y,X
CMP #$D8
BCC L8E0E
CMP #$F0
BCS L8E0E
LDA #$80
STA L009B
ORA L0400,X
STA L0400,X
LDA #$00
STA L042A,X
STA L040E,X
STA L041C,X
L8E0E: LDY #$05
STY L04BE
L8E13: LDY L04BE
LDA L009C,Y
AND #$E0
BNE L8E62
LDA L009C,Y
AND #$0C
LSR A
TAY
SEC
LDA Sprite1_X,X
SBC Sprite3_X,Y
CLC
ADC #$08
CMP #$10
BCS L8E62
LDA Sprite1_Y,X
CMP #$C8
BCC L8E62
CMP #$E0
BCS L8E62
LDA #$0F
LDY L04BE
LDA L009C,Y
AND #$0F
ORA #$80
STA L009C,Y
LDA #$00
STA SeriesNumber,Y
LDA #$80
ORA L0400,X
STA L0400,X
LDA #$00
STA L042A,X
STA L040E,X
STA L041C,X
L8E62: DEC L04BE
BPL L8E13
L8E67: LDA L0438,X
CMP #$FF
BNE L8E6F
RTS
L8E6F: TAX
STX L04BF
LDA MasterReg
AND #$E0
BNE L8EAA
SEC
LDA Sprite1_X,X
SBC BegaXPos1L
CLC
ADC #$08
CMP #$20
BCS L8EAA
LDA Sprite1_Y,X
CMP #$B8
BCC L8EAA
CMP #$E0
BCS L8EAA
LDA #$80
STA MasterReg
LDX FlashTime
ORA L0400,X
STA L0400,X
LDA #$00
STA L042A,X
STA L040E,X
STA L041C,X
LDX L04BF
L8EAA: LDA L009B
AND #$E0
BNE L8EE1
SEC
LDA Sprite1_X,X
SBC L00A6
CLC
ADC #$08
CMP #$10
BCS L8EE1
LDA Sprite1_Y,X
CMP #$D8
BCC L8EE1
CMP #$F0
BCS L8EE1
LDA #$80
STA L009B
LDX FlashTime
ORA L0400,X
STA L0400,X
LDA #$00
STA L042A,X
STA L040E,X
STA L041C,X
LDX L04BF
L8EE1: LDY #$05
STY L04BE
L8EE6: LDY L04BE
LDA L009C,Y
AND #$E0
BNE L8F39
LDA L009C,Y
AND #$0C
LSR A
TAY
SEC
LDA Sprite1_X,X
SBC Sprite3_X,Y
CLC
ADC #$08
CMP #$10
BCS L8F39
LDA Sprite1_Y,X
CMP #$C8
BCC L8F39
CMP #$E0
BCS L8F39
LDY L04BE
LDA L009C,Y
AND #$0F
ORA #$80
STA L009C,Y
LDA #$00
STA SeriesNumber,Y
LDX FlashTime
LDA #$80
ORA L0400,X
STA L0400,X
LDA #$00
STA L042A,X
STA L040E,X
STA L041C,X
LDX L04BF
L8F39: DEC L04BE
BPL L8EE6
JMP L8E67
L8F41: ASL Sprite2_Prop,X
ASL Sprite2_Prop,X
ASL Sprite2_Prop,X
ASL Sprite2_Prop,X
ASL Sprite2_Prop,X
.BYTE $17
ASL Sprite2_Prop,X
ASL BUFADR+1,X
ASL WARMST,X
ORA (Ptr1_LO,X)
ORA (Ptr2_LO,X)
ORA (WARMST,X)
ORA (Ptr2_LO,X)
BRK
.BYTE $07
PHP
PHP
ORA (Ptr2_LO,X)
PHP
;----------------------------------------------------
; unknown
;----------------------------------------------------
L8F61: LDX FlashTime ; X = Index to memory
LDA L0400,X ; Get Index from memory (0-7)
ASL A ; Multiply index by 2
TAY ; Y = index to data series (0-14)
;----------------------------------------------------
; Setup pointer to 1 of 15 different series
;----------------------------------------------------
LDA LBA1E,Y ; Get series pointer LO
STA Ptr1_LO ; Setup pointer to series LO
LDA LBA1F,Y ; Get series pointer HI
STA Ptr1_HI ; Setup pointer to series HI
;----------------------------------------------------
; Load address to beginning of data
;----------------------------------------------------
LDY #$00 ; Y = 0
LDA (Ptr1_LO),Y ; Get Data Address LO
STA Ptr2_LO ; Setup pointer to Data LO
INY ; Goto next byte in address
LDA (Ptr1_LO),Y ; Get Data Address HI
STA Ptr2_HI ; Setup pointer to Data HI
;----------------------------------------------------
; Get Sprite Characteristics byte
;----------------------------------------------------
LDA L040E,X ; Get index number
TAY ; Y = Sprite Characteristic (0-4)
LDA (Ptr2_LO),Y ; Get Sprite Characteristic from table
STA L04C9 ; Write sprite characteristic to temp spot
STA Sprite1_Char,X ; Write Sprite1 characteristic
;----------------------------------------------------
; Setup pointer to 1 of 15 different series
;----------------------------------------------------
LDA L0400,X ; Get Index from memory (0-7)
ASL A ; Multiply index by 2
TAY ; Y = index to data series (0-14)
LDA LBA3C,Y ; Get series pointer LO
STA Ptr1_LO ; Setup pointer to series LO
LDA LBA3D,Y ; Get series pointer HI
STA Ptr1_HI ; Setup pointer to series HI
;----------------------------------------------------
; Load address to beginning of data
;----------------------------------------------------
LDY #$00 ; Y = 0
LDA (Ptr1_LO),Y ; Get Data Address LO
STA Ptr2_LO ; Setup pointer to Data LO
INY ; Goto next byte in address
LDA (Ptr1_LO),Y ; Get Data Address HI
STA Ptr2_HI ; Setup pointer to Data HI
;----------------------------------------------------
; Get Sprite Properties byte
;----------------------------------------------------
LDA L04C9 ; Check last characteristic byte
BEQ L8FAE ; If 0 then skip ahead
LDA L040E,X ; Get index number
TAY ; Y = Sprite Characteristic (0-4)
LDA (Ptr2_LO),Y ; Get Sprite Characteristic from table
L8FAE: STA Sprite1_Prop,X ; Write Sprite1 properties
;----------------------------------------------------
; Setup pointer to 1 of 15 different series
;----------------------------------------------------
LDA L0400,X ; Get Index from memory (0-7)
ASL A ; Multiply index by 2
TAY ; Y = index to data series (0-14)
LDA LBA5A,Y ; Get series pointer LO
STA Ptr1_LO ; Setup pointer to series LO
LDA LBA5B,Y ; Get series pointer HI
STA Ptr1_HI ; Setup pointer to series HI
;----------------------------------------------------
; Load address to beginning of data
;----------------------------------------------------
LDY #$00 ; Y = 0
LDA (Ptr1_LO),Y ; Get Data Address LO
STA Ptr2_LO ; Setup pointer to Data LO
INY ; Goto next byte in address
LDA (Ptr1_LO),Y ; Get Data Address HI
STA Ptr2_HI ; Setup pointer to Data HI
;----------------------------------------------------
; Get Sprite X movement byte
;----------------------------------------------------
LDA L040E,X ; Get index number
TAY ; Y = Sprite Characteristic (0-4)
CLC ; Clear carry
LDA (Ptr2_LO),Y ; Get Sprite X movement from table
ADC Sprite1_X,X ; Add to Sprite1 X locatoin
STA Sprite1_X,X ; Write new Sprite1 X location
;----------------------------------------------------
; Setup pointer to 1 of 15 different series
;----------------------------------------------------
LDA L0400,X ; Get Index from memory (0-7)
ASL A ; Multiply index by 2
TAY ; Y = index to data series (0-14)
LDA LBA78,Y ; Get series pointer LO
STA Ptr1_LO ; Setup pointer to series LO
LDA LBA79,Y ; Get series pointer HI
STA Ptr1_HI ; Setup pointer to series HI
;----------------------------------------------------
; Load address to beginning of data
;----------------------------------------------------
LDY #$00 ; Y = 0
LDA (Ptr1_LO),Y ; Get Data Address LO
STA Ptr2_LO ; Setup pointer to Data LO
INY ; Goto next byte in address
LDA (Ptr1_LO),Y ; Get Data Address HI
STA Ptr2_HI ; Setup pointer to Data HI
;----------------------------------------------------
; Get Sprite Y movement byte
;----------------------------------------------------
LDA L040E,X ; Get index number
TAY ; Y = Sprite Characteristic (0-4)
LDA (Ptr2_LO),Y ; Clear carry
CLC ; Get Sprite Y movement from table
ADC Sprite1_Y,X ; Add to Sprite1 Y locatoin
STA Sprite1_Y,X ; Write new Sprite1 Y location
;----------------------------------------------------
; unknown
;----------------------------------------------------
LDA #$00 ; Loop = 0
STA L04C8 ; Save loop
L8FFF: LDA L0438,X
CMP #$FF
BNE L9017
LDA L04C9
BNE L9016
LDA #$FF
STA L0400,X
LDX FlashTime
STA L0400,X
L9016: RTS ; Return
L9017: INC L04C8
STX L04BF
STA L04BD
LDX FlashTime
LDA L0400,X
ASL A
TAY
LDA LBA1E,Y
STA Ptr1_LO
LDA LBA1F,Y
STA Ptr1_HI
LDA L04C8
ASL A
TAY
LDA (Ptr1_LO),Y
STA Ptr2_LO
INY
LDA (Ptr1_LO),Y
STA Ptr2_HI
LDA L04C9
BEQ L904B
LDA L040E,X
TAY
LDA (Ptr2_LO),Y
L904B: LDX L04BD
STA Sprite1_Char,X
LDX FlashTime
LDA L0400,X
ASL A
TAY
LDA LBA3C,Y
STA Ptr1_LO
LDA LBA3D,Y
STA Ptr1_HI
LDA L04C8
ASL A
TAY
LDA (Ptr1_LO),Y
STA Ptr2_LO
INY
LDA (Ptr1_LO),Y
STA Ptr2_HI
LDA L04C9
BEQ L907B
LDA L040E,X
TAY
LDA (Ptr2_LO),Y
L907B: LDX L04BD
STA Sprite1_Prop,X
LDX FlashTime
LDA L0400,X
ASL A
TAY
LDA LBA5A,Y
STA Ptr1_LO
LDA LBA5B,Y
STA Ptr1_HI
LDA L04C8
ASL A
TAY
LDA (Ptr1_LO),Y
STA Ptr2_LO
INY
LDA (Ptr1_LO),Y
STA Ptr2_HI
LDA L040E,X
TAY
CLC
LDA (Ptr2_LO),Y
LDX L04BF
ADC Sprite1_X,X
LDX L04BD
STA Sprite1_X,X
LDX FlashTime
LDA L0400,X
ASL A
L90B8: TAY
LDA LBA78,Y
STA Ptr1_LO
LDA LBA79,Y
STA Ptr1_HI
LDA L04C8
ASL A
TAY
LDA (Ptr1_LO),Y
STA Ptr2_LO
INY
LDA (Ptr1_LO),Y
STA Ptr2_HI
LDA L040E,X
TAY
CLC
LDA (Ptr2_LO),Y
LDX L04BF
ADC Sprite1_Y,X
LDX L04BD
STA Sprite1_Y,X
JMP L8FFF ; Go back an loop on all sprites?
;----------------------------------------------------
; unknown
;----------------------------------------------------
L90E5: LDX FlashTime ;
LDA Sprite1_X,X ;
CMP #$F0 ;
BCS L90F5 ;
LDA Sprite1_Y,X ;
CMP #$E8
BCS L90F5
RTS
L90F5: LDA #$00
STA Sprite1_Prop,X
STA L040E,X
STA L041C,X
STA L042A,X
STA L0446,X
L9105: LDA L0438,X
CMP #$FF
BNE L9115
LDA #$FF
LDX FlashTime
STA L0400,X
RTS
L9115: TAX
LDA #$00
STA Sprite1_Prop,X
STA L040E,X
STA L041C,X
STA L042A,X
STA L0446,X
LDA #$FF
STA L0400,X
JMP L9105
L912E: LDX #$0D
L9130: TXA
ASL A
TAY
LDA L00B3,Y
EOR L0462,X
BEQ L913E
STA L0470,X
L913E: LDA L00B3,Y
STA L0462,X
DEX
BPL L9130
RTS
L9148: LDA #$00
STA POKMSK
LDY #$0D
L914E: LDA L0400,Y
CMP #$FF
BNE L9165
TXA
PHA
LDX POKMSK
TYA
STA L047E,X
INC POKMSK
PLA
TAX
CPX POKMSK
BEQ L916A
L9165: DEY
BPL L914E
TYA
TAX
L916A: RTS
L916B: LDA L04B8
BNE L91DA
LDA L00A9
BPL L9175
RTS
L9175: LDX #$03
JSR L9148
CPX #$FF
BNE L917F
RTS
L917F: LDA L047E
STA L04C0
LDA L047F
STA L04C1
LDA L0480
STA L04C2
LDA #$00
STA L04C3
STA L04C4
LDA #$01
STA L04B8
LDA #$01
LDX L04C0
STA Sprite1_Prop,X
LDA #$78
STA Sprite1_X,X
LDA #$10
STA Sprite1_Y,X
LDA #$00
STA L0400,X
LDA #$01
LDX L04C1
STA Sprite1_Prop,X
LDA #$78
STA Sprite1_X,X
LDA #$20
STA Sprite1_Y,X
LDA #$00
STA L0400,X
LDA #$01
LDX L04C2
STA Sprite1_Prop,X
LDA #$78
STA Sprite1_X,X
LDA #$30
STA Sprite1_Y,X
LDA #$00
STA L0400,X
L91DA: LDA SysTimer
AND #$0F
BNE L91E9
LDA L04C3
EOR #$01
STA L04C3
L91E9: LDA L04C4
BEQ L9202
LDA SysTimer
AND #$0F
BNE L9202
INC L04C4
LDA L04C4
CMP #$10
BCC L9202
JMP L92F3
L9202: LDA L04B8
LSR A
TAY
LDA L95D5,Y
CLC
LDX L04C0
ADC Sprite1_X,X
STA Sprite1_X,X
LDA L95D5,Y
CLC
LDX L04C1
ADC Sprite1_X,X
STA Sprite1_X,X
LDA L95D5,Y
CLC
LDX L04C2
ADC Sprite1_X,X
STA Sprite1_X,X
LDY L04C3
LDA L931B,Y
LDX L04C0
STA Sprite1_Char,X
LDA L932D,Y
LDX L04C1
STA Sprite1_Char,X
LDA L933F,Y
LDX L04C2
STA Sprite1_Char,X
LDA Sprite1_X,X
CMP #$03
BCC L924F
CMP #$ED
BCS L9259
BCC L9261
L924F: LDA L04B8
ORA #$02
STA L04B8
BNE L9261
L9259: LDA L04B8
AND #$FD
STA L04B8
L9261: LDA L04C4
BEQ L9269
JMP L92F2
L9269: LDX #$09
L926B: LDA L0300 ,X
BPL L9273
JMP L92EC
L9273: ASL A
TAY
LDA L4AC8,Y
STA Ptr1_LO
LDA L4AC9,Y
STA Ptr1_HI
LSR Ptr1_HI
ROR Ptr1_LO
LSR Ptr1_HI
ROR Ptr1_LO
LDA HATABS+4,X
ASL A
TAY
LDA L4AFE,Y
STA Ptr2_LO
LDA L4AFF,Y
STA Ptr2_HI
LDA L0300 ,X
TAY
LDA (Ptr2_LO),Y
CLC
ADC LaserXPos,X
STA Ptr2_LO
SEC
LDA Ptr2_LO
LDY L04C0
SBC Sprite1_X,Y
SEC
SBC #$00
CMP #$08
BCS L92EC
SEC
LDA Ptr1_LO
SBC Sprite1_Y,Y
CLC
ADC #$08
CMP #$38
BCS L92EC
LDA #$80
ORA L0300 ,X
STA L0300 ,X
LDA #$18 ; Sound = #24
JSR L51CE ; Play Sound
CLC
LDA L04C3
ADC #$02
STA L04C3
CMP #$10
BCC L92F2
;----------------------------------------------------
; Award 1000 point Bonus
;----------------------------------------------------
LDA #$07 ; Bonus = 1000
JSR L53D7 ; Add Bonus to Score
LDA #$17
JSR L51CE ; Play Sound
DEC L00A9
LDA #$01
STA L04C4
BNE L92F2
L92EC: DEX
BMI L92F2
JMP L926B
L92F2: RTS
L92F3: LDX L04C0
LDA #$00
STA L04B8
STA Sprite1_Prop,X
LDA #$FF
STA L0400,X
LDX L04C1
LDA #$00
STA Sprite1_Prop,X
LDA #$FF
STA L0400,X
LDX L04C2
LDA #$00
STA Sprite1_Prop,X
LDA #$FF
STA L0400,X
RTS
L931B: LDA (L00A2,X)
LDA (L00A2,X)
LDA (L00A2,X)
LDA (L00A2,X)
LDA (L00A2,X)
.BYTE $A7
TAY
LDA #$AA
.BYTE $AB
LDY LBCB9
L932D: .BYTE $A3
LDY L00A3
LDY L00A3
LDY L00AD
LDX LB0AF
LDA (L00B2),Y
LDA (L00B2),Y
LDA (L00B2),Y
TSX
LDA LA6A5,X
.BYTE $B3
LDY L00B5,X
LDX DATALN,X
CLV
.BYTE $B7
CLV
.BYTE $B7
CLV
.BYTE $B7
CLV
.BYTE $B7
CLV
.BYTE $BB
LDX LB9AD,Y
.BYTE $04
BNE L93CA
LDA L00A7
BPL L935B
RTS
L935B: LDX #$03
JSR L9148
CPX #$FF
BNE L9365
RTS
L9365: LDA L047E
STA L04C2
LDA L047F
STA L04C1
LDA L0480
STA L04C0
LDA #$00
STA L04C3
STA L04C4
STA L04C5
STA L04C6
STA L04C7
STA L04C8
LDA #$01
STA L04B9
LDX L04C0
STA Sprite1_Prop,X
LDA #$6C
STA Sprite1_X,X
LDA #$20
STA Sprite1_Y,X
LDA #$00
STA L0400,X
LDA #$01
LDX L04C2
STA Sprite1_Prop,X
LDA #$78
STA Sprite1_X,X
LDA #$20
STA Sprite1_Y,X
LDA #$00
STA L0400,X
LDA #$05
LDX L04C1
STA Sprite1_Prop,X
LDA #$84
STA Sprite1_X,X
LDA #$20
STA Sprite1_Y,X
LDA #$00
STA L0400,X
L93CA: LDA L04B9
BPL L93D2
JMP L95AA
L93D2: LDA SysTimer
AND #$0F
BNE L9406
LDA L04C3
EOR #$01
LDX L04C6
BNE L93E5
AND #$01
L93E5: STA L04C3
LDA L04C4
EOR #$01
LDX L04C7
BNE L93F4
AND #$01
L93F4: STA L04C4
LDA L04C5
EOR #$01
LDX L04C8
BNE L9403
AND #$01
L9403: STA L04C5
L9406: LDA L04B9
LSR A
TAY
LDA L95D5,Y
CLC
LDX L04C0
ADC Sprite1_X,X
STA Sprite1_X,X
LDA L95D5,Y
CLC
LDX L04C1
ADC Sprite1_X,X
STA Sprite1_X,X
LDA L95D5,Y
CLC
LDX L04C2
ADC Sprite1_X,X
STA Sprite1_X,X
LDY L04C3
LDA L95D7,Y
LDX L04C0
STA Sprite1_Char,X
LDY L04C4
LDA L95DC,Y
LDX L04C2
STA Sprite1_Char,X
LDY L04C5
LDA L95D7,Y
LDX L04C1
STA Sprite1_Char,X
JSR L95E1
LDX L04C2
LDA Sprite1_X,X
CMP #$08
BCC L945F
CMP #$E7
BCS L9469
BCC L9471
L945F: LDA L04B9
ORA #$02
STA L04B9
BNE L9471
L9469: LDA L04B9
AND #$FD
STA L04B9
L9471: LDX #$09
L9473: LDA L0300 ,X
BPL L947B
JMP L9555
L947B: ASL A
TAY
LDA L4AC8,Y
STA Ptr1_LO
LDA L4AC9,Y
STA Ptr1_HI
LSR Ptr1_HI
ROR Ptr1_LO
LSR Ptr1_HI
ROR Ptr1_LO
LDA HATABS+4,X
ASL A
TAY
LDA L4AFE,Y
STA Ptr2_LO
LDA L4AFF,Y
STA Ptr2_HI
LDA L0300 ,X
TAY
LDA (Ptr2_LO),Y
CLC
ADC LaserXPos,X
STA Ptr2_LO
SEC
LDA Ptr2_LO
LDY L04C0
SBC Sprite1_X,Y
SEC
SBC #$00
CMP #$08
BCS L94E4
SEC
LDA Ptr1_LO
SBC Sprite1_Y,Y
CLC
ADC #$08
CMP #$18
BCS L94E4
LDA #$18
JSR L51CE ; Play Sound
LDA #$7F
STA L04C6
LDA #$02
ORA L04C3
STA L04C3
LDA #$80
ORA L0300 ,X
STA L0300 ,X
JMP L9555
L94E4: SEC
LDA Ptr2_LO
LDY L04C2
SBC Sprite1_X,Y
SEC
SBC #$00
CMP #$08
BCS L951E
SEC
LDA Ptr1_LO
SBC Sprite1_Y,Y
CLC
ADC #$08
CMP #$18
BCS L951E
LDA #$18
JSR L51CE ; Play Sound
LDA #$7F
STA L04C7
LDA #$02
ORA L04C4
STA L04C4
LDA #$80
ORA L0300 ,X
STA L0300 ,X
JMP L9555
L951E: SEC
LDA Ptr2_LO
LDY L04C1
SBC Sprite1_X,Y
SEC
SBC #$00
CMP #$08
BCS L9555
SEC
LDA Ptr1_LO
SBC Sprite1_Y,Y
CLC
ADC #$08
CMP #$18
BCS L9555
LDA #$18
JSR L51CE ; Play Sound
LDA #$7F
STA L04C8
LDA #$02
ORA L04C4
STA L04C4
LDA #$80
ORA L0300 ,X
STA L0300 ,X
L9555: DEX
BMI L955B
JMP L9473
L955B: LDA L04C6
BEQ L956C
LDA L04C7
BEQ L956C
LDA L04C8
BEQ L956C
BNE L9585
L956C: LDA L04C6
BEQ L9574
DEC L04C6
L9574: LDA L04C7
BEQ L957C
DEC L04C7
L957C: LDA L04C8
BEQ L9584
DEC L04C8
L9584: RTS ; Return
;----------------------------------------------------
; Award 1000 point Bonus
;----------------------------------------------------
L9585: LDA #$07 ; Bonus = 1000
JSR L53D7 ; Add Bonus to Score
LDA #$17 ; Sound =
JSR L51CE ; Play Sound
LDA #$80
STA L04B9
DEC L00A7
LDA #$9C
LDX L04C0
STA Sprite1_Char,X
LDX L04C1
STA Sprite1_Char,X
LDA #$9F
LDX L04C2
STA Sprite1_Char,X
RTS
L95AA: INC L04B9
BEQ L95B0
RTS
L95B0: LDX L04C0
LDA #$00
STA Sprite1_Prop,X
LDA #$FF
STA L0400,X
LDX L04C1
LDA #$00
STA Sprite1_Prop,X
LDA #$FF
STA L0400,X
LDX L04C2
LDA #$00
STA Sprite1_Prop,X
LDA #$FF
STA L0400,X
RTS
L95D5: INC L9802,X
STA L9B9A,Y
.BYTE $9C
L95DC: STX L0097,X
STA L9F9E,X
L95E1: LDA L04BC
BEQ L95E9
DEC L04BC
L95E9: LDX L04C2
LDA Sprite1_X,X
CMP #$40
NOP
NOP
NOP
NOP
BCC L9614
CMP #$60
BCC L95FE
CMP #$67
BCC L9614
L95FE: CMP #$98
BCC L9606
CMP #$A0
BCC L9614
L9606: CMP #$B8
BCS L960D
JMP L969C
L960D: CMP #$C0
BCC L9614
JMP L969C
L9614: LDA #$A0
STA Sprite1_Char,X
LDA L04BC
BEQ L9620
JMP L969C
L9620: LDX #$02
JSR L9148
CPX #$FF
BNE L962C
JMP L969C
L962C: LDA #$0A
JSR L51CE ; Play Sound
LDA #$1F
STA L04BC
LDX L04C2
LDA Sprite1_X,X
CMP BegaXPos1R
BCC L9653
SEC
SBC BegaXPos1R
LSR A
LSR A
LSR A
LSR A
TAY
LDA L9CA7,Y
LDX L047E
STA L040E,X
JMP L9666
L9653: SEC
LDA BegaXPos1R
SBC Sprite1_X,X
LSR A
LSR A
LSR A
LSR A
TAY
LDA L9CB7,Y
LDX L047E
STA L040E,X
L9666: TAY
TXA
ASL A
TAX
LDA LBD3E,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD3F,Y
STA L00B4,X
STA Ptr1_HI
LDX L047E
LDY #$01
LDA (Ptr1_LO),Y
STA L0454,X
LDY L04C2
LDA Sprite1_X,Y
SEC
SBC #$08
STA Sprite1_X,X
LDA Sprite1_Y,Y
STA Sprite1_Y,X
LDA #$09
STA L0400,X
LDA #$FF
STA L0438,X
L969C: RTS
L969D: LDA SysTimer
AND #$01
BEQ L96A5
RTS
L96A5: LDA L048C
BEQ L96AE
DEC L048C
RTS
L96AE: LDX #$01
JSR L9148
CPX #$FF
BNE L96B8
RTS
L96B8: LDA L04A2
BNE L96CD
LDA Random ; Get Random Number
AND #$7F
CLC
ADC #$40
STA L0497
LDA #$0B
JSR L51CE ; Play Sound
L96CD: INC L04A2
LDX L047E
LDA L0497
STA Sprite1_X,X
LDA #$00
STA Sprite1_Y,X
LDA #$01
STA L0400,X
LDA #$FF
STA L0438,X
LDA #$00
STA L041C,X
STA L042A
LDA L0497
AND #$02
ASL A
ASL A
STA L040E,X
LDA L0497
AND #$1F
ASL A
TAY
TXA
ASL A
TAX
LDA LBC7A,Y
STA L00B3,X
STA Ptr1_LO
LDA LBC7B,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDA L04A2
CMP #$01
BCC L972F
LDY L04BA
LDA LBE3A,Y
STA L048C
LDA #$00
STA L04A2
L972F: RTS
L9730: LDA SysTimer
AND #$01
BEQ L9738
RTS
L9738: LDA L048D
BEQ L9741
DEC L048D
RTS
L9741: LDX #$02
JSR L9148
CPX #$FF
BNE L974B
RTS
L974B: LDX L047E
LDA Random ; Get Random Number
AND #$01
BNE L975D
LDA Random ; Get Random Number
AND #$0F
JMP L9765
L975D: LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
L9765: TAY
LDA L97C2,Y
STA Sprite1_X,X
LDA L97D2,Y
STA Sprite1_Y,X
LDA #$02
STA L0400,X
LDA L047F
STA L0438,X
LDA #$00
STA L041C,X
STA L040E,X
STA L042A,X
LDA L97E2,Y
TAY
TXA
ASL A
TAX
LDA LBCBA,Y
STA L00B3,X
STA Ptr1_LO
LDA LBCBB,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDX L047F
LDA #$00
STA L041C,X
STA L0400,X
STA L040E,X
LDA #$FF
STA L0438,X
LDY L04BA
L97BB: LDA LBE6A,Y
STA L048D
RTS
L97C2: ORA #$20
.BYTE $33,$43,$43,$54
.BYTE $62
JMP (L877C)
.BYTE $8F
TXS
LDA DATAD
DEX
.BYTE $DB
L97D2: EOR BegaPic+2
EOR BegaPic+2
RTS
RTS
RTS
RTS
RTS
RTS
RTS
RTS
BVC L9830
BVC L9832
L97E2: BRK
BRK
BRK
BRK
BRK
BRK
BRK
BRK
.BYTE $02,$02,$02,$02
.BYTE $02,$02,$02,$02
L97F2: LDA SysTimer
AND #$01
BEQ L97FA
RTS
L97FA: LDA L048E
BEQ L9803
DEC L048E
L9802: RTS
L9803: LDX #$02
JSR L9148
CPX #$FF
BNE L980D
RTS
L980D: LDX L047E
LDA Random ; Get Random Number
AND #$0F
TAY
LDA L9878,Y
STA Sprite1_X,X
LDA L9888,Y
STA Sprite1_Y,X
LDA #$03
STA L0400,X
LDA L047F
STA L0438,X
LDA #$00
STA L041C,X
L9830: STA L040E,X
STA L0446,X
STA L042A,X
LDA L9898,Y
TAY
TXA
ASL A
TAX
LDA LBCC2,Y
STA L00B3,X
STA Ptr1_LO
LDA LBCC3,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDX L047F
LDA #$00
STA L041C,X
STA L0400,X
STA L040E,X
STA L042A,X
LDA #$FF
STA L0438,X
LDY L04BA
LDA LBE82,Y
STA L048E
RTS
L9878: BVC L98D0
.BYTE $5C
RTS
ROR Sprite2_X
BVS L98F6
.BYTE $7C,$80
STX STARP
BCC L981C
.BYTE $9C
LDY #$40
RTI
RTI
RTI
RTI
RTI
BMI L98C0
BMI L98C2
RTI
RTI
RTI
RTI
RTI
RTI
L9898: ASL L0E00
BRK
.BYTE $0C
BRK
.BYTE $02,$02
BRK
.BYTE $02,$02
ASL L0C02
.BYTE $02,$0C
L98A8: LDA SysTimer
AND #$01
L98AD: BEQ L98B0
L98AF: RTS
L98B0: LDA L048F
BEQ L98B9
DEC L048F
RTS
L98B9: LDX #$01
JSR L9148
CPX #$FF
L98C0: BNE L98C3
L98C2: RTS
L98C3: LDX L047E
LDA Random ; Get Random Number
AND #$03
BEQ L98D5
LDA Random ; Get Random Number
L98D0: AND #$07
JMP L98DF
L98D5: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
L98DF: TAY
LDA L992B,Y
STA Sprite1_X,X
LDA L9933,Y
STA Sprite1_Y,X
LDA #$04
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L0446,X
STA L042A,X
LDA #$FF
STA L0438,X
LDA L993B,Y
TAY
TXA
ASL A
TAX
LDA LBCE2,Y
STA L00B3,X
STA Ptr1_LO
LDA LBCE3,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDY L04BA
LDA LBE9A,Y
STA L048F
RTS
L992B: BVC L98AD
BCC L98AF
BCC L99A1
BNE L98D3
L9933: JSR L2020
JSR L2020
JSR SpritePic2
ASL TRAMSZ
BRK
.BYTE $02,$04,$02,$04
L9943: LDA SysTimer
AND #$01
BEQ L994B
RTS
L994B: LDA L0490
BEQ L9954
DEC L0490
RTS
L9954: LDX #$02
JSR L9148
CPX #$FF
BNE L995E
RTS
L995E: LDX L047E
LDA Random ; Get Random Number
AND #$01
BEQ L9970
LDA Random ; Get Random Number
AND #$07
JMP L997A
L9970: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
L997A: TAY
LDA L99DD,Y
STA Sprite1_X,X
LDA L99E5,Y
STA Sprite1_Y,X
LDA #$05
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L0446,X
STA L042A,X
LDA L047F
STA L0438,X
LDA L99ED,Y
L99A1: TAY
TXA
ASL A
TAX
LDA LBCF2,Y
STA L00B3,X
STA Ptr1_LO
LDA LBCF3,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDX L047F
LDA #$00
STA L041C,X
STA L0400,X
STA L040E,X
STA L042A,X
LDA #$FF
STA L0438,X
LDY L04BA
LDA LBEB2,Y
STA L0490
RTS
L99DD: BVC L9A37
ADC (Sprite2_X+1,X)
.BYTE $93
TYA
.BYTE $9C
LDY #$9A
TXS
TXS
TXS
TXS
TXS
TXS
TXS
L99ED: BRK
.BYTE $02,$04,$04
ASL TRAMSZ
PHP
ASL A
L99F5: LDA SysTimer
AND #$01
BEQ L99FD
RTS
L99FD: LDA L0491
BEQ L9A06
DEC L0491
RTS
L9A06: LDX #$01
JSR L9148
CPX #$FF
BNE L9A10
RTS
L9A10: INC L04A7
LDX L047E
LDA Random ; Get Random Number
AND #$3F
CLC
ADC #$60
STA Sprite1_X,X
LDY #$35
STA Sprite1_Y,X
LDA #$06
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L042A,X
LDA #$FF
STA L0438,X
LDA Random ; Get Random Number
AND #$02
TAY
TXA
ASL A
TAX
LDA LBD0A,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD0B,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDA L04A7
CMP #$01
BCC L9A6F
LDY L04BA
LDA LBECA,Y
STA L0491
LDA #$00
STA L04A7
L9A6F: RTS
L9A70: LDA SysTimer
AND #$01
BEQ L9A78
RTS
L9A78: LDA L0492
BEQ L9A81
DEC L0492
RTS
L9A81: LDX #$02
JSR L9148
CPX #$FF
BNE L9A8B
RTS
L9A8B: LDX L047E
LDA Random ; Get Random Number
AND #$01
BEQ L9A9D
LDA Random ; Get Random Number
AND #$07
JMP L9AA7
L9A9D: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
L9AA7: TAY
LDA L9B07,Y
STA Sprite1_X,X
LDA L9B0F,Y
STA Sprite1_Y,X
LDA #$07
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L042A,X
LDA L047F
STA L0438,X
LDA L9B17,Y
TAY
TXA
ASL A
TAX
LDA LBD0E,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD0F,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDX L047F
LDA #$00
STA L041C,X
STA L0400,X
STA L040E,X
STA L042A,X
LDA #$FF
STA L0438,X
LDY L04BA
LDA LBEE2,Y
STA L0492
RTS
L9B07: ORA (Ptr1_LO,X)
AND Buff6
TXS
CMP FRE+3
.BYTE $EF
L9B0F: BPL L9B51
JSR L1010
JSR L1040
L9B17: BRK
BRK
BRK
BRK
.BYTE $02,$02,$02,$02
;----------------------------------------------------
; Attach LUNA or JOE
;----------------------------------------------------
L9B1F: LDA SysTimer ;
AND #$01 ;
BEQ L9B27 ;
RTS
L9B27: LDA L0493
BEQ L9B30
DEC L0493
RTS
L9B30: LDX #$01
JSR L9148
CPX #$FF
BNE L9B3A
RTS
L9B3A: LDX L047E
LDA Random ; Get Random Number
AND #$03 ; Random number between 0-3
BEQ L9B4C ; 25% of the time we skip ahead
LDA Random ; Get antoher Random Number
AND #$0F
JMP L9B55
L9B4C: CLC ; Clear carry for addition
LDA BegaXPos1L ; Get Bega's X Position
ADC #$08 ; Add 8 to Bega's X Position
L9B51: LSR A ; Divide X position by 8
LSR A ; continue division
LSR A ; continue division
LSR A ; continue division
L9B55: TAY ; Y = Bega Horizontal Zone (1-32)
LDA L9BA1,Y
STA Sprite1_X,X
LDA L9BB1,Y
STA Sprite1_Y,X
LDA #$08
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L0446,X
STA L042A,X
LDA #$FF
STA L0438,X
LDA L9BC1,Y
TAY
TXA
ASL A
TAX
LDA LBD16,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD17,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDY L04BA
L9B9A: LDA LBEFA,Y
STA L0493
RTS
;----------------------------------------------------
; Starting X Position
;----------------------------------------------------
L9BA1: .BYTE $20,$2C,$38,$44,$50,$5C,$68,$74
.BYTE $80,$8C,$98,$A4,$B0,$BC,$C8,$DC
;----------------------------------------------------
; Starting Y Position
;----------------------------------------------------
L9BB1: .BYTE $40,$40,$40,$40,$40,$40,$40,$40
.BYTE $40,$40,$40,$40,$40,$40,$40,$40
;----------------------------------------------------
; unknown data
;----------------------------------------------------
L9BC1: .BYTE $06,$04,$06,$04,$02,$02,$00,$06
.BYTE $00,$04,$00,$00,$02,$02,$00,$00
;----------------------------------------------------
; unknown
;----------------------------------------------------
L9BD1: LDX #$0D
STX FlashTime
L9BD6: LDX FlashTime
LDA L0400,X
CMP #$02
BEQ L9BEB
CMP #$03
BEQ L9BEB
CMP #$07
BEQ L9BEB
JMP L9C9E
L9BEB: LDA L04CA,X
BEQ L9BF3
JMP L9C85
L9BF3: LDA Sprite1_Y,X
CMP #$2A
BCS L9BFC
JMP L9C0F
L9BFC: CMP #$32
BCC L9C03
JMP L9C0F
L9C03: LDX #$02
JSR L9148
CPX #$FF
BNE L9C12
JMP L9C9E
L9C0F: JMP L9C9E
L9C12: LDX FlashTime
LDA #$0A
JSR L51CE ; Play Sound
LDA #$3F
STA L04CA,X
LDA Sprite1_X,X
CMP BegaXPos1R
BCC L9C39
SEC
SBC BegaXPos1R
LSR A
LSR A
LSR A
LSR A
TAY
LDA L9CA7,Y
LDX L047E
STA L040E,X
JMP L9C4C
L9C39: SEC
LDA BegaXPos1R
SBC Sprite1_X,X
LSR A
LSR A
LSR A
LSR A
TAY
LDA L9CB7,Y
LDX L047E
STA L040E,X
L9C4C: TAY
TXA
ASL A
TAX
LDA LBD3E,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD3F,Y
STA L00B4,X
STA Ptr1_HI
LDX L047E
LDY #$01
LDA (Ptr1_LO),Y
STA L0454,X
LDA #$09
STA L0400,X
LDA #$FF
STA L0438,X
LDY FlashTime
CLC
LDA Sprite1_X,Y
ADC #$08
STA Sprite1_X,X
LDA Sprite1_Y,Y
STA Sprite1_Y,X
JMP L9C8B
L9C85: LDX FlashTime
DEC L04CA,X
L9C8B: LDX FlashTime
LDA L0400,X
CMP #$02
BEQ L9C9B
CMP #$03
BEQ L9C9E
BNE L9C9E
L9C9B: JMP L9C9E
L9C9E: DEC FlashTime
BMI L9CA6
JMP L9BD6
L9CA6: RTS
L9CA7: ASL Ptr2_HI
.BYTE $04,$02,$02,$02
.BYTE $02,$02,$02,$02
.BYTE $02,$02
L9CB3: .BYTE $02,$02,$02,$02
L9CB7: PHP
ASL A
ASL A
.BYTE $0C,$0C,$0C,$0C
.BYTE $0C,$0C,$0C,$0C
.BYTE $0C,$0C,$0C,$0C
.BYTE $0C
L9CC7: LDA SysTimer
AND #$03
BEQ L9CCF
RTS
L9CCF: LDA L0496
BEQ L9CD8
DEC L0496
RTS
L9CD8: LDA L00AB
BPL L9CDD
RTS
L9CDD: LDA L0400
CMP #$FF
BNE L9D39
LDA Random ; Get Random Number
AND #$01
BEQ L9CF3
LDA Random ; Get Random Number
AND #$0F
JMP L9CFC
L9CF3: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
L9CFC: STA L04B7
TAY
LDA LBD6A,Y
STA Sprite1_X
LDA LBD7A,Y
STA Sprite1_Y
LDA #$0A
STA L0400
LDA LBD8A,Y
TAY
LDA LBD56,Y
STA L00B3
STA Ptr1_LO
LDA LBD57,Y
STA L00B4
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
STA L0454
LDA #$FF
STA L0438
LDA #$00
STA L040E
STA L041C
STA L042A
RTS
L9D39: LDX #$00
L9D3B: LDA L0401,X
CMP #$FF
BEQ L9D49
INX
CPX #$0C
BNE L9D3B
BEQ L9D8E
L9D49: LDY L04B7
LDA LBD6A,Y
STA MLTTMP,X
LDA LBD7A,Y
STA ZCHAIN,X
LDA #$0B
STA L0401,X
STX FlashTime
TXA
ASL A
TAX
LDA LBD8A,Y
TAY
LDA LBD56,Y
STA L00B5,X
STA Ptr1_LO
LDA LBD57,Y
STA DATAD,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX FlashTime
STA L0455,X
LDA #$FF
STA L0439,X
LDA #$00
STA L040F,X
STA L041D,X
STA L042B,X
RTS
L9D8E: LDA L040D
CMP #$FF
BEQ L9D96
RTS
L9D96: LDY L04B7
LDA LBD6A,Y
STA COLAC
LDA LBD7A,Y
STA COLCRS+1
LDA #$0C
STA L040D
LDY L04B7
LDA LBD8A,Y
TAY
LDA LBD56,Y
STA L00CD
STA Ptr1_LO
LDA LBD57,Y
STA L00CE
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
STA L0461
LDA #$FF
STA L0445
LDA #$00
STA L041B
STA L0429
STA L0437
LDY L04BA
LDA LBF12,Y
STA L0496
RTS
L9DDE: LDA SysTimer
AND #$1F
BEQ L9DE6
RTS
L9DE6: LDX #$01
JSR L9148
CPX #$FF
BNE L9DF0
RTS
L9DF0: LDA Random ; Get Random Number
AND #$03
BNE L9DF8
RTS
L9DF8: LDA #$15 ; Sound = #21
JSR L51CE ; Play Sound
LDA SysTimer
AND #$80
BNE L9E0C
LDA Random ; Get Random Number
AND #$07
JMP L9E16
L9E0C: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
L9E16: TAY
LDX L047E
LDA LBD9A,Y
STA Sprite1_X,X
LDA LBDA2,Y
STA Sprite1_Y,X
LDA #$01
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L0446,X
STA L042A,X
LDA #$FF
STA L0438,X
TYA
ASL A
TAY
TXA
ASL A
TAX
LDA LBD1E,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD1F,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
RTS
L9E5B: LDA SysTimer
AND #$01
BEQ L9E63
RTS
L9E63: LDA L048C
BEQ L9E6C
DEC L048C
RTS
L9E6C: LDY L04BA
LDA LBE52,Y
STA L048C
LDX #$02
JSR L9148
CPX #$FF
BNE L9E7F
RTS
L9E7F: LDA #$15 ; Sound = #21
JSR L51CE ; Play Sound
LDA SysTimer
AND #$80
BNE L9E93
LDA Random ; Get Random Number
AND #$07
JMP L9E9D
L9E93: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
L9E9D: TAY
LDX L047E
LDA LBD9A,Y
STA Sprite1_X,X
LDA LBDA2,Y
STA Sprite1_Y,X
LDA #$0D
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L0446,X
STA L042A,X
LDA L047F
STA L0438,X
TYA
ASL A
TAY
TXA
ASL A
TAX
LDA LBD1E,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD1F,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDX L047F
LDA #$FF
STA L0438,X
LDA #$00
STA L0400,X
STA L040E,X
RTS
L9EF3: LDA SysTimer ; Check time on System Timer
AND #$03
BEQ L9EFB
RTS
L9EFB: LDA L048D
BEQ L9F04
DEC L048D
RTS
L9F04: LDX #$04
JSR L9148
CPX #$FF
BNE L9F0E
RTS ; Return
L9F0E: LDA L04A3
BNE L9F23
LDA Random ; Get Random Number
AND #$7F
CLC
ADC #$40
STA L0498
AND #$01
STA L04AE
L9F23: INC L04A3
LDX L047E
LDA L0498
STA Sprite1_X,X
LDA #$00
STA Sprite1_Y,X
LDA #$02
STA L0400,X
LDA L047F
STA L0438,X
LDA #$00
STA L041C,X
STA L040E,X
STA L042A,X
LDA L04AE
ASL A
TAY
TXA
ASL A
TAX
LDA LBCBE,Y
STA L00B3,X
STA Ptr1_LO
LDA LBCBF,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDX L047F
LDA #$00
STA L041C,X
STA L0400,X
STA L040E,X
LDA #$FF
STA L0438,X
INC L04A3
LDX L0480
LDA L0498
LDA #$00
SBC L0498
STA Sprite1_X,X
LDA #$00
STA Sprite1_Y,X
LDA #$02
STA L0400,X
LDA L0481
STA L0438,X
LDA #$00
STA L041C,X
STA L040E,X
STA L042A,X
LDA L04AE
EOR #$01
ASL A
TAY
TXA
ASL A
TAX
LDA LBCBE,Y
STA L00B3,X
STA Ptr1_LO
LDA LBCBF,Y
L9FB9: STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L0480
STA L0454,X
LDX L0481
LDA #$00
STA L041C,X
STA L0400,X
STA L040E,X
LDA #$FF
STA L0438,X
LDA L04A3
CMP #$02
BCC L9FEF
LDY L04BA
LDA LBE6A,Y
STA L048D
LDA #$00
STA L04A3
L9FEF: RTS
L9FF0: LDA SysTimer ; Check time on System Timer
AND #$01
BEQ L9FF8
RTS
L9FF8: LDA L0492
BEQ LA001
DEC L0492
RTS
LA001: LDX #$02
JSR L9148
CPX #$FF
BNE LA00B
RTS
LA00B: LDX L047E
LDA Random ; Get Random Number
AND #$01
BEQ LA01D
LDA Random ; Get Random Number
AND #$07
JMP LA027
LA01D: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
LA027: TAY
LDA LBDAA,Y
STA Sprite1_X,X
LDA LBDB2,Y
STA Sprite1_Y,X
LDA #$07
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L042A,X
LDA L047F
STA L0438,X
LDA LBDBA,Y
TAY
TXA
ASL A
TAX
LDA LBD12,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD13,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDX L047F
LDA #$00
STA L041C,X
STA L0400,X
STA L040E,X
STA L042A,X
LDA #$FF
STA L0438,X
LDY L04BA
LDA LBEE2,Y
STA L0492
RTS
LA087: LDA SysTimer ; Check time on System Timer
AND #$03
BEQ LA08F
RTS
LA08F: LDA L0496
BEQ LA098
DEC L0496
RTS
LA098: LDA L00AB
BPL LA09D
RTS
LA09D: LDA L0400
CMP #$FF
BNE LA0F9
LDA Random ; Get Random Number
AND #$01
BEQ LA0B3
LDA Random ; Get Random Number
AND #$0F
JMP LA0BC
LA0B3: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LA0BC: STA L04B7
TAY
LDA LBDC2,Y
STA Sprite1_X
LDA LBDD2,Y
STA Sprite1_Y
LDA #$0A
STA L0400
LDA LBDE2,Y
TAY
LDA LBD4E,Y
STA L00B3
STA Ptr1_LO
LDA LBD4F,Y
STA L00B4
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
STA L0454
LDA #$FF
STA L0438
LDA #$00
STA L040E
STA L041C
STA L042A
RTS
LA0F9: LDX #$00
LA0FB: LDA L0401,X
CMP #$FF
BEQ LA109
INX
CPX #$0C
BNE LA0FB
BEQ LA14E
LA109: LDY L04B7
LDA LBDC2,Y
STA MLTTMP,X
LDA LBDD2,Y
STA ZCHAIN,X
LDA #$0B
STA L0401,X
STX FlashTime
TXA
ASL A
TAX
LDA LBDE2,Y
TAY
LDA LBD4E,Y
STA L00B5,X
STA Ptr1_LO
LDA LBD4F,Y
STA DATAD,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX FlashTime
STA L0455,X
LDA #$FF
STA L0439,X
LDA #$00
STA L040F,X
STA L041D,X
STA L042B,X
RTS
LA14E: LDA L040D
CMP #$FF
BEQ LA156
RTS
LA156: LDY L04B7
LDA LBDC2,Y
STA COLAC
LDA LBDD2,Y
STA COLCRS+1
LDA #$0C
STA L040D
LDY L04B7
LDA LBDE2,Y
TAY
LDA LBD4E,Y
STA L00CD
STA Ptr1_LO
LDA LBD4F,Y
STA L00CE
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
STA L0461
LDA #$FF
STA L0445
LDA #$00
STA L041B
STA L0429
STA L0437
LDY L04BA
LDA LBF12,Y
STA L0496
RTS
LA19E: LDA SysTimer ; Check time on System Timer
AND #$01
BEQ LA1A6
RTS
LA1A6: LDA L0490
BEQ LA1AF
DEC L0490
RTS
LA1AF: LDX #$02
JSR L9148
CPX #$FF
BNE LA1B9
RTS
LA1B9: LDX L047E
LDA Random ; Get Random Number
AND #$01
BEQ LA1CB
LDA Random ; Get Random Number
AND #$07
JMP LA1D5
LA1CB: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
LA1D5: TAY
LDA LBDF2,Y
STA Sprite1_X,X
LDA LBDFA,Y
STA Sprite1_Y,X
LDA #$05
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L0446,X
STA L042A,X
LDA L047F
STA L0438,X
LDA LBE02,Y
TAY
TXA
ASL A
TAX
LDA LBCFE,Y
STA L00B3,X
STA Ptr1_LO
LDA LBCFF,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDX L047F
LDA #$00
STA L041C,X
STA L0400,X
STA L040E,X
STA L042A,X
LDA #$FF
STA L0438,X
LDY L04BA
LDA LBEB2,Y
STA L0490
RTS
LA238: LDA SysTimer ; Check time on System Timer
AND #$01
BEQ LA240
RTS
LA240: LDA L048F
BEQ LA249
DEC L048F
RTS
LA249: LDX #$01
JSR L9148
CPX #$FF
BNE LA253
RTS
LA253: LDX L047E
LDA Random ; Get Random Number
AND #$03
BEQ LA265
LDA Random ; Get Random Number
AND #$07
JMP LA26F
LA265: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
LA26F: TAY
LDA LBE0A,Y
STA Sprite1_X,X
LDA LBE12,Y
STA Sprite1_Y,X
LDA #$04
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L0446,X
STA L042A,X
LDA #$FF
STA L0438,X
LDA LBE1A,Y
TAY
TXA
ASL A
TAX
LDA LBCEA,Y
STA L00B3,X
STA Ptr1_LO
LDA LBCEB,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDY L04BA
LDA LBE9A,Y
STA L048F
RTS
LA2BB: LDA SysTimer ; Check time on System Timer
AND #$01
BEQ LA2C3
RTS
LA2C3: LDA L048F
BEQ LA2CC
DEC L048F
LA2CB: RTS
LA2CC: LDX #$01
JSR L9148
CPX #$FF
BNE LA2D6
RTS
LA2D6: LDX L047E
LDA Random ; Get Random Number
AND #$03 ;
BEQ LA2E8 ;
LDA Random ; Get Random Number
AND #$07 ;
JMP LA2F2 ;
LA2E8: CLC
LDA BegaXPos1L
ADC #$08
LSR A
LSR A
LSR A
LSR A
LSR A
LA2F2: TAY
LDA LBE22,Y
STA Sprite1_X,X
LDA LBE2A,Y
STA Sprite1_Y,X
LDA #$0E
STA L0400,X
LDA #$00
STA L041C,X
STA L040E,X
STA L0446,X
STA L042A,X
LDA #$FF
STA L0438,X
LDA LBE32,Y
TAY
TXA
ASL A
TAX
LDA LBD5E,Y
STA L00B3,X
STA Ptr1_LO
LDA LBD5F,Y
STA L00B4,X
STA Ptr1_HI
LDY #$01
LDA (Ptr1_LO),Y
LDX L047E
STA L0454,X
LDY L04BA
LDA LBF2A,Y
STA L048F
RTS
LA33E: LDX FlashTime
LDA L0400,X
AND #$7F
CMP #$01
BNE LA376
LDA L0400,X
BMI LA377
LDA L042A,X
BNE LA373
LDA #$04
STA L042A,X
LDA L040E,X
AND #$F8
ORA L041C,X
STA L040E,X
INC L041C,X
LDA L041C,X
CMP #$08
BCC LA376
LDA #$00
STA L041C,X
LA373: DEC L042A,X
LA376: RTS
LA377: LDA L042A,X
BEQ LA380
DEC L042A,X
RTS
LA380: LDA #$08
STA L042A,X
INC L040E,X
RTS
LA389: LDX FlashTime
LDA L0400,X
AND #$7F
CMP #$02
BNE LA3AA
LDA L0400,X
BPL LA39D
JMP LA3DF
LA39D: LDA L042A,X
BEQ LA3AB
DEC L042A,X
LDA L0470,X
BNE LA3BF
LA3AA: RTS
LA3AB: LDA #$01
STA L042A,X
INC L041C,X
LDA L041C,X
CMP #$04
BCC LA3BF
LDA #$00
STA L041C,X
LA3BF: TXA
ASL A
TAX
LDA (L00B3,X)
TAY
LDA #$00
LDX LB100,Y
BMI LA3CE
ORA #$08
LA3CE: LDX LB000,Y
BMI LA3D5
ORA #$04
LA3D5: LDX FlashTime
ORA L041C,X
STA L040E,X
RTS
LA3DF: LDA L042A,X
BEQ LA3E8
DEC L042A,X
RTS
LA3E8: LDA #$08
STA L042A,X
INC L040E,X
RTS
LA3F1: LDX FlashTime
LDA L0400,X
AND #$7F
CMP #$03
BNE LA40D
LDA L0400,X
BPL LA405
JMP LA43B
LA405: LDA L042A,X
BEQ LA40E
DEC L042A,X
LA40D: RTS
LA40E: LDA #$0E
STA L042A,X
LDA L0446,X
CMP #$FF
BNE LA425
LDA L040E,X
AND #$01
EOR #$01
STA L040E,X
RTS
LA425: CLC
ADC #$02
STA L040E,X
INC L0446,X
LDA L0446,X
CMP #$02
BCC LA43A
LDA #$FF
STA L0446,X
LA43A: RTS
LA43B: LDA L042A,X
BEQ LA444
DEC L042A,X
RTS
LA444: LDA #$0F
STA L042A,X
INC L040E,X
RTS
LA44D: LDX FlashTime
LDA L0400,X
AND #$7F
CMP #$04
BNE LA46E
LDA L0400,X
BPL LA461
JMP LA4D0
LA461: LDA L042A,X
BEQ LA46F
DEC L042A,X
LDA L0470,X
BNE LA485
LA46E: RTS
LA46F: LDA #$04
STA L042A,X
LDA L0446,X
CMP #$FF
BNE LA4BA
LDA L041C,X
AND #$01
EOR #$01
STA L041C,X
LA485: LDA L0446,X
CMP #$FF
BNE LA4BA
TXA
ASL A
TAX
LDA (L00B3,X)
TAY
LDA #$00
LDX LB100,Y
BEQ LA4A2
ORA #$08
LDX LB100,Y
BMI LA4A2
ORA #$10
LA4A2: LDX LB000,Y
BEQ LA4B0
ORA #$02
LDX LB000,Y
BMI LA4B0
ORA #$04
LA4B0: LDX FlashTime
ORA L041C,X
STA L040E,X
RTS
LA4BA: CLC
ADC #$20
STA L040E,X
INC L0446,X
LDA L0446,X
CMP #$06
BCC LA4CF
LDA #$FF
STA L0446,X
LA4CF: RTS
LA4D0: LDA L042A,X
BEQ LA4D9
DEC L042A,X
RTS
LA4D9: LDA #$0F
STA L042A,X
INC L040E,X
RTS
LA4E2: LDX FlashTime
LDA L0400,X
AND #$7F
CMP #$05
BNE LA4FE
LDA L0400,X
BPL LA4F6
JMP LA53C
LA4F6: LDA L042A,X
BEQ LA4FF
DEC L042A,X
LA4FE: RTS
LA4FF: LDA #$02
STA L042A,X
LDA L0446,X
CMP #$FF
BNE LA521
LDA L041C,X
STA L040E,X
INC L041C,X
LDA L041C,X
CMP #$0C
BCC LA520
LDA #$00
STA L041C,X
LA520: RTS
LA521: CLC
ADC #$0C
STA L040E,X
INC L041C,X
LDA L041C,X
CMP #$07
BCC LA53B
LDA #$FF
STA L0446,X
LDA #$00
STA L041C,X
LA53B: RTS
LA53C: LDA L042A,X
BEQ LA545
DEC L042A,X
RTS
LA545: LDA #$0F
STA L042A,X
INC L040E,X
RTS
LA54E: LDX FlashTime
LDA L0400,X
AND #$7F
NEXT
PAGE 
|