 
BACK   EQU $B49A
SK1    EQU $B49F+1
SK2    EQU $B4A5+1
VOL1   EQU $B524+1
VOL2   EQU $B532+1
BCK2   EQU $B5CC
SK3    EQU $B5D3+1
VOL3   EQU $B650+1
FLICK  EQU $B703
RDKYS  EQU $B723
GMODE  EQU $B738
PCLS   EQU $B757
ENSD   EQU $B764
CALC   EQU $B77D
CALCM  EQU $B790
SP8    EQU $B7AC
SP16   EQU $B7F5
SP24   EQU $B860
SP32   EQU $B8ED
SP64   EQU $B99B
MULTAB EQU $BACF
ANDTAB EQU $BAD7
CONTRL EQU $BADF
MOVE   EQU $BB62
NEWLN  EQU $BC1E
RNUM   EQU $BC7C
EGNS   EQU $BC97
FEB    EQU $BCD6
SCALE  EQU $BD11
EBLS   EQU $BD2F
WOBBL  EQU $BD75
FILBUF EQU $BD97
CLRBF2 EQU $BDA3
FEX    EQU $BDB1
EGR    EQU $BDDC
BGEX   EQU $BDED
 
 ORG $400
 
SCRN RMB 2
FRM  RMB 1
OFF  RMB 1
OF2  RMB 1
BPTR RMB 2
DPTR RMB 2
BPR2 RMB 2
SFL  RMB 1
RND  RMB 2
CNT1 RMB 1
CNT2 RMB 1
LNDC RMB 2
LNDF RMB 1
CRDS RMB 2
DX   RMB 1
SHIPSP RMB 2
KTAB RMB 8
HT   RMB 1
MASK RMB 2
IMAGE RMB 2
HCNT RMB 1
SPAD RMB 2
LFTFL  RMB 1
RGTFL  RMB 1
UPFL   RMB 1
DWNFL  RMB 1
FIRFL  RMB 1
FIRDB  RMB 1
DEBC   RMB 1
DY     RMB 1
EXRG RMB 40
NXEX RMB 2
EBR RMB 48
GNR RMB 32
NXGN RMB 2
WOB RMB 2
WBFL RMB 1
TOF RMB 1
WTYP RMB 1
WLRF RMB 1
WFLF RMB 1
FCNT RMB 1
ANGL RMB 1
HITFL RMB 1
NXDB RMB 2
MAXD RMB 1
DCNT RMB 1
DCNT2 RMB 1
NXH1 RMB 2
SR1 RMB 1
SR2 RMB 1
SR3 RMB 1
 
 ORG $500
 
WREG RMB 72
HRG1 RMB 24
 
DBRG EQU $600
 
BUFU EQU $B000
BUFL EQU BUFU+288
BF2U EQU BUFU+608
BF2L EQU BF2U+270
ENDBF EQU BF2L+300
 
GRFX  EQU $D100
SHIPG EQU $D800
 
TIMER EQU 274
ILNDC EQU 801
TOP   EQU #14976
BTM   EQU #16000
 
 ORG $BE29
 PUT $0F8F
 
 SETDP $04
 
 
FSTB LDA #64
 STA SR1
 LDA #1
 STA 4,X
 LDA FCNT
 BNE FST2
 LDA #3
 STA FCNT
FST2 LDD CRDS
 ADDB #6
 COM WLRF
 BEQ STBL
 ADDA #15
 STD ,X
 RTS
STBL ADDA #4
 STD ,X
 RTS
 
FCAN CMPB #2
 BLO FCN1
 LDA #80
 STA SR1
 LDD CRDS
 ADDA #5
 STD ,X
 ADDA #10
 STD 6,X
 LDA WTYP
 STA 11,X
 LDA #1
 STA 4,X
 STA 10,X
FCN1 RTS
 
FBMR LDA #1
 STA 4,X
 LDA FCNT
 BNE FBM2
 LDA #4
 STA FCNT
FBM2 LDD CRDS
 ADDB #2
 ADDA #8
 STD ,X
 RTS
 
FSP1 LDA #64
 STA SR1
 LDA #3
 STA 4,X
 LDA FCNT
 BNE FS12
 LDA #3
 STA FCNT
FS12 LDD CRDS
 ADDA #8
 STD ,X
 LDA ANGL
 ADDA #32
 CMPA #48
 BLT FS13
 LDA #224
FS13 STA ANGL
 ORA 5,X
 STA 5,X
 LDD #$0008
 STD 2,X
 RTS
 
FDIR CLRB
 LSR LFTFL
 ROLB
 LSR RGTFL
 ROLB
 LSR UPFL
 ROLB
 LSR DWNFL
 ROLB
 LDU #JDTAB
 LDA B,U
 CMPA #-1
 BEQ FDIR2
 ORA 5,X
 STA 5,X
 LDA #3
 STA 4,X
 LDD CRDS
 ADDA #8
 STD ,X
 JSR RNUM
 JSR SCALE
 ASLA
 ASLB
 ADDB #8
 STD 2,X
 LDA #64
 STA SR1
 RTS
FDIR2 CLR 5,X
 RTS
 
JDTAB FCB -1,128,0,-1,64,96,32
      FCB -1,192,160,224,-1,-1
      FCB -1,-1,-1
 
USTB LDB 1,X
 SUBB #10
 BCS USTB0
 STB 1,X
 LDD #$0100
 JSR BCOL
 BNE USTB1
 LDU #$DA9E
 STU MASK
 LDU #$DAA8
 STU IMAGE
 LDA #10
 STA HT
 LEAY ,X
 JMP SP8
USTB0 CLR 1,X
 CLR 5,X
 LDD #$0100
 JMP BCOL
USTB1 RTS
 
CGR FDB $6000,$3000,$1800,$0C00
    FDB $0600,$0300,$0180,$00C0
 
UCAN CLR 5,X
 LDA WFLF
 INCA
 ANDA #3
 STA WFLF
 BEQ UCLP
 CMPA #3
 BEQ UCLP
 LDY SCRN
 LDD ,X
 ADDB #6
 LSRA
 LSRA
 LSRA
 LEAY A,Y
 LDA RND+1
 ADDA RND
 STA RND+1
 ANDA #3
 ADDA 1,X
 LDB #32
 MUL
 LEAY D,Y
 LDA ,X
 ANDA #7
 LSLA
 LDU #CGR
 LEAU A,U
 LDA RND
 ADDA RND+1
 STA RND
 ANDA #7
 INCA
 STA CNT2
MZFL LDD ,U
 ORA ,Y
 ORB 1,Y
 STD ,Y
 LEAY -32,Y
 DEC CNT2
 BNE MZFL
UCLP LDD #$0000
 JSR BCOL
 BNE UCN1
 LDB 1,X
 SUBB #16
 STB 1,X
 BCC UCLP
 CLR 1,X
 LDD #$0000
 JMP BCOL
UCN1 RTS
 
UBMR LDA CRDS
 ADDA #8
 STA ,X
 LDB 1,X
 SUBB #10
 BCS UBMR0
 STB 1,X
 LDD #$0000
 JSR BCOL
 BNE UBMR1
 LDD #$0700
 JSR BCOL
 BNE UBMR1
 LDU #$DAB2
 STU MASK
 LDU #$DAB2+10
 STU IMAGE
 LDA #10
 STA HT
 LEAY ,X
 JMP SP8
UBMR0 CLR 1,X
 CLR 5,X
 LDD #$0000
 JSR BCOL
 BNE UBMR1
 LDD #$0700
 JMP BCOL
UBMR1 RTS
 
UROT JSR MOVW
 BEQ KILR
 LDD #$0300
 JSR BCOL
 BNE URT1
 LDD #$0307
 JSR BCOL
 BNE URT1
 LDA 5,X
 ANDA #224
 LSRA
 LDU #$DB06
 LEAU A,U
 STU MASK
 LEAU 8,U
 STU IMAGE
 LSRA
 LSRA
 LSRA
 LDU #VTAB
 LDU A,U
 STU 2,X
 LDA #8
 STA HT
 LEAY ,X
 JMP SP8
KILR CLR 5,X
 CLR HITFL
URT1 RTS
 
BCOL ADDA ,X
 ADDB 1,X
 LDU BPR2
 SUBA #8
 LSRA
 LSRA
 LSRA
 ANDA #30
 LEAU A,U
 LDA OF2
 LSRA
 STA BCL1+1
BCL1 ADDB #0
 LSRB
 LSRB
 LSRB
 LSRB
 LDA #30
 MUL
 LEAU D,U
 LDD ,U
 CMPD #$D500
 BLO NCOL
 CMPD #$D680
 BHS NCOL
 STA HITFL
 RTS
NCOL CLR HITFL
 RTS
 
MOVW LDA ,X
 LDB 2,X
 BMI CHKX2
 ADDA 2,X
 BCS KILW
 ADDA #8
 BCS KILW
 SUBA #8
 BRA CHKY1
CHKX2 ADDA 2,X
 BCC KILW
CHKY1 STA ,X
 LDA 1,X
 LDB 3,X
 BMI CHKY2
 ADDA 3,X
 CMPA #144-10
 BHI KILW
 BRA DONCK
CHKY2 ADDA 3,X
 BCC KILW
DONCK STA 1,X
 LDB #1
 RTS
KILW CLRB
 RTS
 
VTAB FDB $00F2,$0AF6,$0E00,$0A0A
     FDB $000E,$F60A,$F200,$F6F6
 
FDEB LDU NXDB
FDLP LDD ,X
 STD ,U
 JSR RNUM
 JSR SCALE
 STD 2,U
 LDA #16
 LDB RND+1
 LSRB
 BCC CLKW
 NEGA
CLKW STA 5,U
 LEAU 6,U
 DEC DCNT2
 BNE DBPTR
 LDU #DBRG
 LDA MAXD
 STA DCNT2
DBPTR DEC DCNT
 BNE FDLP
 STU NXDB
 RTS
 
DBRS LDY #DBRG
 LDA MAXD
 STA CNT1
DBLP LDA 5,Y
 BEQ NODB
 LDD ,Y
 ADDA 2,Y
 ADDB 3,Y
 CMPA #256-8
 BHS KDEB
 CMPB #144-8
 BHI KDEB
 STD ,Y
 LDB 4,Y
 ADDB 5,Y
 ANDB #48
 STB 4,Y
 LDX #$DAC6
 ABX
 STX MASK
 LEAX 8,X
 STX IMAGE
 LDA #8
 STA HT
 JSR SP8
NODB LEAY 6,Y
 DEC CNT1
 BNE DBLP
 RTS
KDEB CLR 5,Y
 BRA NODB
 
 
 
