 ORG $322F
 PUT *
SCRLOC EQU $7F80
GRAD EQU $600
 
 ORCC #80
 CLR CHFL
 CLR SCR
 LDA #1
 STA BCD
 CLR SC1
 CLR SC2
 CLR SC3
 CLR GOFL
 LDA #$10
 STA LIVES
 LDA $FF23
 ORA #8
 STA $FF23
 LDA $FF01
 ANDA #247
 STA $FF01
 LDA $FF03
 ANDA #247
 STA $FF03
 STA $FFC7
 STA $FFC9
 STA $FFC0
 STA $FFC3
 STA $FFC5
GLOOP LDA #1
 STA SPEED
 NEGA
 STA NEGSPD
 LDA SPEED
 LDB NEGSPD
 STD IX
 LDA $FF22
 ANDA #7
 ORA #$F0
 STA $FF22
 JSR SETUP
 JSR LEV
 JSR GAME
 LDA BCD
 ADDA #1
 DAA
 STA BCD
 INC SCR
 LDA SCR
 CMPA #30
 BLO GLOOP
 
FINSCR LDA GOFL
 BEQ SLL3
 RTS
SLL3 LDX #$800
 LDD #0
FCLP STD ,X++
 CMPX #$1E00
 BLO FCLP
 LDX #$800
 CLRA
 JSR PUT8
 LDX #$81F
 LDA #1
 JSR PUT8
 LDX #$1D00
 LDA #2
 JSR PUT8
 LDX #$1D1F
 LDA #3
 JSR PUT8
 LDX #$900
 LDA #20
 STA COUNT
VLP LDA #6
 JSR PUT8
 DEC COUNT
 BNE VLP
 LDX #$91F
 LDA #20
 STA COUNT
VLP2 LDA #7
 JSR PUT8
 DEC COUNT
 BNE VLP2
 LDY #$801
 LDA #30
 STA COUNT
VLP3 LDA #4
 TFR Y,X
 JSR PUT8
 LEAY 1,Y
 DEC COUNT
 BNE VLP3
 LDY #$1D01
 LDA #30
 STA COUNT
VLP4 LDA #5
 TFR Y,X
 JSR PUT8
 LEAY 1,Y
 DEC COUNT
 BNE VLP4
 LDA $FF22
 ORA #8
 STA $FF22
 LDA #116
 STA BPOS
 LDX #GRAD+5646
 STX BOPOS
 CLR SCI
 JSR SCUP
 LDA #30
 STA BFLAG
 CLR CATFL
 CLR CHFL
 CLR SLFL
 CLR BSFL
 CLR BBFL
 CLR PLFL
 CLR CAUGHT
 CLR LIFGON
 CLR ENFLAG
 CLR PDFL
 CLR SFLAG1
 CLR SFLAG2
 CLR SFLAG3
 CLR LVOL
 CLR SHOT
 LDA #255
 STA LSFL
 JSR ICUPL
 JSR ICUPR
 JSR UL
 LDD #$105A
 STD POS
 LDX #4417
 STX OPOS
 JSR BGET
 LDA #8
 STA IX
 CLR IY
 LDX #64
 STX XX
 LDX #360
 STX YY
 CLR BDED
 JSR BAT
 JSR LEV
 JSR TRANS
FSLP SYNC
 LDA $FF02
 JSR BBT2
 JSR BBLT2
 JSR BLBL
 
 JSR TCOL
 JSR TCOL2
 
 JSR LGET
 JSR BBLL
 JSR PBOLT
 JSR BAT
 JSR KEY
 JSR SOUND
 JSR MOVE2
 JSR SCORE
 LDA BDED
 BNE BDN0
 
 LDA ENFLAG
 BEQ FSLP
 RTS
BDN0 LDA SFLAG1
 BNE FSLP
 LDA SFLAG2
 BNE FSLP
 JSR BBLT2
 JSR BBT2
 LDA #30
 STA COUNT2
WBLP SYNC
 LDA $FF02
 CLR $FF20
 JSR BLBL
 LDA POS
 ADDA #3
 STA POS
 JSR BBLL
 SYNC
 LDA $FF02
 COM $FF20
 JSR BLBL
 LDA POS
 SUBA #3
 STA POS
 JSR BBLL
 DEC COUNT2
 BNE WBLP
 JSR BLBL
 LDA #240
 STA SFLAG3
DIS SYNC
 LDA $FF02
 JSR SOUND
 LDA SFLAG3
 BNE DIS
 RTS
 
TCOL2 LDA POS+1
 CMPA #161
 BLO NCL2
 LDA POS
 ADDA #13
 CMPA BPOS
 BLO NCL2
 LDA BPOS
 ADDA #21
 CMPA POS
 BLO NCL2
 LDA #240
 STA SFLAG3
 JSR SK2
 JSR UL
 LDA GOFL
 BNE PDED
NCL2 RTS
 
PDED LDA #1
 STA PDFL
 CLR IX
PDLP SYNC
 LDA $FF02
 JSR BLBL
 JSR BGET
 JSR BBLL
 JSR SOUND
 LDA IY
 ADDA #4
 STA IY
 JSR MOVE2
 CMPB #160
 BLS PDLP
 LDA #240
 STA SFLAG1
 CLR SFLAG2
 CLR SFLAG3
 LDA IY
 ADDA #3
 NEGA
 STA IY
 CMPA #-4
 BLT PDLP
FN SYNC
 LDA $FF02
 JSR SOUND
 TST SFLAG1
 BNE FN
 PULS X,PC
 
BBT2 LDX BOPOS
 LDU #0
 LDA #6
B2LP STU ,X
 STU 2,X
 LEAX 32,X
 DECA
 BNE B2LP
 RTS
 
BBLT2 LDA SHOT
 BEQ NBB2
 LDA NNOW
 BEQ NW
 CLR NNOW
 RTS
NW LDX LASAD
 LDU #LBUP
 LDA #4
 STA COUNT
BB2LP LDD ,U++
 STD ,X
 LEAX 32,X
 DEC COUNT
 BNE BB2LP
 LDA LASY
 SUBA #4
 STA LASY
 CMPA #$18
 BHI LSOK
 CLR SHOT
 RTS
LSOK LDX LASAD
 LEAX -128,X
 STX LASAD
NBB2 RTS
 
BBLL LDD POS
 JSR CLCAD
 STX OPOS
 JSR BGET
 LDX OPOS
 LDA POS
 ANDA #7
 LDB #48
 MUL
 LDU #8632
 LEAU D,U
 LDA #16
 STA COUNT
BBLLP LDD ,U++
 ORA ,X
 ORB 1,X
 STD ,X
 LDA ,U+
 ORA 2,X
 STA 2,X
 LEAX 32,X
 DEC COUNT
 BNE BBLLP
 RTS
 
TCOL LDA SHOT
 BEQ NCOL
 LDA POS
 SUBA #12
 CMPA LASX
 BHI NCOL
 ADDA #16
 CMPA LASX
 BLO NCOL
 LDA LASY
 ADDA #3
 CMPA POS+1
 BLO NCOL
 LDA POS+1
 ADDA #15
 CMPA LASY
 BLO NCOL
 CLR SHOT
DAM LDA BDED
 BNE NCOL
 LDA #240
 STA SFLAG2
 CLR SFLAG1
 CLR SFLAG3
 LDA SCI
 ADDA #2
 STA SCI
 DEC BFLAG
 BNE NCOL
 COM BDED
NCOL RTS
 
MOVE2 LDA CHFL
 BEQ NCH
 RTS
NCH LDX XX
 LDA IX
 LEAX A,X
 STX XX
 TFR X,D
 LSRA
 RORB
 LSRA
 RORB
 STB POS
 LDX YY
 LDA IY
 LEAX A,X
 STX YY
 TFR X,D
 LSRA
 RORB
 LSRA
 RORB
 STB POS+1
 LDA PDFL
 BEQ PLOK
 RTS
PLOK CMPB #160
 BLS NBNC
 LDA IY
 ADDA #2
 NEGA
 STA IY
 LDA #240
 STA SFLAG1
 CLR SFLAG2
 CLR SFLAG3
NBNC LDA IY
 ADDA #2
 STA IY
 LDA IX
 BMI BBL
 LDA POS
 CMPA #229
 BLS DB
 LDA IX
 LSRA
 NEGA
 STA IX
 LDB #240
 STB SFLAG1
 CLR SFLAG2
 CLR SFLAG3
 CMPA #-16
 BGT DB
 JSR DAM
 BRA DB
BBL LDA POS
 CMPA #10
 BHS DB
 LDA IX
 NEGA
 LSRA
 STA IX
 LDB #240
 STB SFLAG1
 CLR SFLAG2
 CLR SFLAG3
 CMPA #16
 BLT DB
 JSR DAM
DB LDA BPOS
 ADDA #4
 CMPA POS
 BLO LESS
 BHI MORE
 RTS
MORE INC IX
 RTS
LESS DEC IX
 RTS
 
BLBL LDX OPOS
 LDU #BBUP
 LDA #16
 STA COUNT
BLLP LDD ,U++
 STD ,X
 LDA ,U+
 STA 2,X
 LEAX 32,X
 DEC COUNT
 BNE BLLP
 RTS
 
BGET LDU #BBUP
 LDA #16
 STA COUNT
BGLP LDD ,X
 STD ,U++
 LDA 2,X
 STA ,U+
 LEAX 32,X
 DEC COUNT
 BNE BGLP
 RTS
BBUP RMB 48
 
TRANS LDX #4546
 STX ADDR
 LDA #30
 STA COUNT3
WBLP2 SYNC
 LDA $FF02
 CLR PIX
 LDX ADDR
 JSR PUT
 CLR $FF20
 SYNC
 LDA $FF02
 LDA #1
 STA PIX
 LDX ADDR
 JSR PUT
 COM $FF20
 DEC COUNT3
 BNE WBLP2
 LDA #240
 STA SFLAG3
 RTS
 
B1 EQU $1E00
E1 EQU $1EB0
DATA EQU $1EF0
CRDAT EQU $1FF0
BATDAT EQU $1FFE
IMASK EQU $20CE
ICH EQU $20D6
RITAB EQU $2100
NUM EQU $2140
LAS EQU $2190
BOLT EQU $2198
ARROW EQU $21B0
PUT16 EQU $251D
PUT8 EQU $253D
CALCEL EQU $255C
CALTAB EQU $256A
CLCAD EQU $2575
PUT EQU $2583
PUTB EQU $25C1
GET EQU $25D6
GET2 EQU $25D9
CRACK EQU $25EE
BBAT EQU $2609
ICUPL EQU $261F
ICUPR EQU $264C
BLANK EQU $2679
ICPUT EQU $2685
SETUP EQU $2692
FASTER EQU $27BB
SLOWER EQU $27EB
BOUNCE EQU $281B
TSTCOL EQU $2864
BAT EQU $28ED
BATCOL EQU $295C
SOUND EQU $2A09
SCORE EQU $2A97
SCUP EQU $2ABB
BBOLT EQU $2B0C
LGET EQU $2BE8
PBOLT EQU $2C01
IAD EQU $2C3A
IADO EQU $2C3C
GAME EQU $2C3E
SK2 EQU $2F56
KEY EQU $2F77
UL EQU $31DF
LEV EQU $320B
 
 ORG $400
 PUT *
RAND RMB 1
ADDR RMB 2
COUNT RMB 1
COUNT2 RMB 1
COUNT3 RMB 1
CDAT RMB 2
SCR RMB 1
CHAR RMB 1
MASK RMB 1
POS RMB 2
OPOS RMB 2
BPOS RMB 1
BOPOS RMB 2
PIX RMB 1
IX RMB 1
IY RMB 1
SPEED RMB 1
NEGSPD RMB 1
CCD RMB 2
ELEM RMB 2
CFLAG RMB 1
BFLAG RMB 1
ENFLAG RMB 1
IFLAG RMB 1
ISFLAG RMB 1
SFLAG1 RMB 1
SFLAG2 RMB 1
SFLAG3 RMB 1
NOBRK RMB 2
TEMP1 RMB 1
TEMP2 RMB 1
BKUP RMB 16
IBUP RMB 8
ICHAR RMB 2
BRTAB RMB 336
KEYTAB RMB 8
CATFL RMB 1
CAUGHT RMB 1
SLFL RMB 1
BSFL RMB 1
BBFL RMB 1
PLFL RMB 1
PDEC RMB 1
LSFL RMB 1
OFFSET RMB 1
HFBRK RMB 1
SDEC RMB 1
SC1 RMB 1
SC2 RMB 1
SC3 RMB 1
SCI RMB 1
SHOT RMB 1
LASX RMB 1
LASY RMB 1
LASAD RMB 2
CBOLT RMB 2
LBUP RMB 8
NNOW RMB 1
LVOL RMB 1
PTCH RMB 2
LIVES RMB 1
GOFL RMB 1
LIFGON RMB 1
CHFL RMB 1
LEFT RMB 1
RIGHT RMB 1
BCD RMB 1
XX RMB 2
YY RMB 2
BDED RMB 1
PDFL RMB 1
 
 
 
 
