 
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
FSTB   EQU $BE29
FCAN   EQU $BE4B
FBMR   EQU $BE68
FSP1   EQU $BE7D
FDIR   EQU $BEA9
USTB   EQU $BEF1
UCAN   EQU $BF2F
UBMR   EQU $BF96
UROT   EQU $BFDA
BCOL   EQU $C017
MOVW   EQU $C04B
VTAB   EQU $C07C
FDEB   EQU $C08C
DBRS   EQU $C0B8
 
 
 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
NXHIT RMB 2
SR1 RMB 1
SR2 RMB 1
SR3 RMB 1
NXLS RMB 2
NXSM RMB 2
NXTR RMB 2
CCRDS  RMB 2
CWD    RMB 1
CHT    RMB 1
CMASK  RMB 2
CIMAGE RMB 2
 
 ORG $500
 
WREG RMB 72
LASR RMB 20
LSBR RMB 24
SMKR RMB 48
TRRG RMB 20
 
DBRG EQU $600
HITRGT EQU $F000
HITRGB EQU $F000+150
 
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 #14912
BTM   EQU #16000
 
 ORG $C0F8
 PUT $125E
 
 SETDP $04
 
BARTAB FCB 4,-3,9,-1,11,4,9,9
       FCB 4,11,-1,9,-3,4,-1,-1
 
TCRDS RMB 6
 
PTBAR LDX #TCRDS
 LDA 4,Y
 INCA
 ANDA #7
 LSLA
 LDU #BARTAB
 LDD A,U
 ADDA 2,Y
 ADDB 3,Y
 ADDD #$0404
 STD ,X
 BSR DIST
 STD ,X
 LEAX 2,X
 LDA 4,Y
 DECA
 ANDA #7
 LSLA
 LDD A,U
 ADDA 2,Y
 ADDB 3,Y
 ADDD #$0404
 STD ,X
 BSR DIST
 STD ,X
 LEAX 2,X
 LDA 4,Y
 ANDA #7
 LSLA
 LDD A,U
 ADDA 2,Y
 ADDB 3,Y
 ADDD #$0404
 STD ,X
 BSR DIST
 CMPD -4,X
 BHI TRTCW
 CMPD -2,X
 BHI TRTAC
 RTS
TRTCW INC 4,Y
 RTS
TRTAC DEC 4,Y
 RTS
 
DIST LDA CRDS
 ADDA #12
 SUBA ,X
 BCC DIST1
 NEGA
DIST1 LDB CRDS+1
 ADDB #10
 SUBB 1,X
 BCC DIST2
 NEGB
DIST2 PSHS B
 TFR A,B
 MUL
 LSRA
 RORB
 STD ,X
 PULS B
 TFR B,A
 MUL
 LSRA
 RORB
 ADDD ,X
 RTS
 
CLIP LDA 1,Y
 LDB 1,Y
 ADDB 3,Y
 CMPA #144
 BHS CLIPT
 LDX 4,Y
 STX MASK
 LDX 6,Y
 STX IMAGE
 CMPB #144
 BHI CLIPB
 LDA 3,Y
 STA HT
 JMP ,U
CLIPT CMPB #0
 BLE XCLIP
 STB HT
 NEGA
 LDB 2,Y
 MUL
 LDX 4,Y
 LEAX D,X
 STX MASK
 LDX 6,Y
 LEAX D,X
 STX IMAGE
 CLR 1,Y
 JMP ,U
CLIPB SUBA #144
 BHS XCLIP
 NEGA
 STA HT
 JMP ,U
XCLIP RTS
 
FEL LDX #LSBR
FEL2 LDA 2,X
 BEQ FEL1
 LEAX 3,X
 CMPX #LSBR+24
 BLO FEL2
 RTS
FEL1 STU ,X
 COM 2,X
 RTS
 
LSBLTS LDY #LSBR
LSB1 LDA 2,Y
 BEQ LSB2
 LDU #$DB86
 STU MASK
 LDU #$DB96
 STU IMAGE
 LDA 1,Y
 SUBA #144
 BHS KLSB
 NEGA
 CMPA #16
 BLO LSB3
 LDA #16
LSB3 STA HT
 JSR SP8
 LDA 1,Y
 ADDA #10
 STA 1,Y
LSB2 LEAY 3,Y
 CMPY #LSBR+24
 BLO LSB1
 RTS
KLSB CLR 2,Y
 BRA LSB2
 
USTB1 LDA #10
 STA USTB+3
 JMP USTB
 
USTB2 LDA #15
 STA USTB+3
 JMP USTB
 
FSMK LDU NXSM
 LDD ,X
 STD ,U
 CLR 2,U
 LDA #1
 STA 3,U
 LEAU 4,U
 CMPU #SMKR+48
 BLO FSMK1
 LDU #SMKR
FSMK1 STU NXSM
 RTS
 
USMK LDY #SMKR
USMK1 LDA 3,Y
 BEQ USMK2
 LDB 2,Y
 LDX #$DBA6
 ABX
 ADDB #16
 ANDB #48
 STB 2,Y
 BNE USMK3
 STB 3,Y
USMK3 STX MASK
 LEAX 8,X
 STX IMAGE
 LDA #8
 STA HT
 JSR SP8
USMK2 LEAY 4,Y
 CMPY #SMKR+48
 BLO USMK1
 RTS
 
 
 
