 
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
BARTAB EQU $C0F8
TCRDS  EQU $C108
PTBAR  EQU $C10E
DIST   EQU $C165
CLIP   EQU $C18A
FEL    EQU $C1CA
LSBLTS EQU $C1DE
USTB1  EQU $C215
USTB2  EQU $C21D
FSMK   EQU $C225
USMK   EQU $C23F
FEG    EQU $C26D
FLSR   EQU $C290
FTRT   EQU $C2B4
LSRS   EQU $C2E0
FHSK   EQU $C334
MOVWB  EQU $C390
UHSK   EQU $C3B4
 
 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
SR4    RMB 1
SCT1   RMB 1
SCT2   RMB 1
SCT3   RMB 1
SCT4   RMB 1
FCNT2  RMB 1
MSKFL RMB 1
MSKOF RMB 1
QUITFL RMB 1
SCT5 RMB 1
 
 ORG $500
 
WREG RMB 72
LASR RMB 20
LSBR RMB 24
SMKR RMB 48
TRRG RMB 36
TRKRG1 RMB 3
TRKRG2 RMB 3
FLRG RMB 10
BBLTR RMB 36
 
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 $C493
 PUT $600
 
 SETDP $04
 
FLASH LDU #FLRG
 BSR FLSH2
 LDX ,U
 LEAU 5,U
 CMPX ,U
 BNE FLSH2
 CLR 4,U
 RTS
FLSH2 LDA 4,U
 BEQ FLSH3
 LDX ,U
 LDY 2,U
FLSHLP LDD ,X
 EORB 1,Y
 EORA ,Y++
 STD ,X
 LEAX 32,X
 DEC 4,U
 BNE FLSHLP
FLSH3 RTS
 
MASKSC LDX SCRN
 LEAY 128,X
 LDU #$DC66
 LDA MSKOF
 LEAU A,U
 LDD ,U
 STA M1+1
 STA M2+1
 STB M3+1
 STB M4+1
 LDD 2,U
 STA M5+1
 STA M6+1
 STB M7+1
 STB M8+1
 LDD 4,U
 STA M9+1
 STA MA+1
 STB MB+1
 STB MC+1
 LDD 6,U
 STA MD+1
 STA ME+1
 STB MF+1
 STB M0+1
 LDB #18
 STB CNT1
MSKLP0 LDB #16
 STB CNT2
MSKLP LDD ,X
M1 ANDA #0
M2 ANDB #0
 STD ,X
 LDD 32,X
M3 ANDA #0
M4 ANDB #0
 STD 32,X
 LDD 64,X
M5 ANDA #0
M6 ANDB #0
 STD 64,X
 LDD 96,X
M7 ANDA #0
M8 ANDB #0
 STD 96,X
 LDD ,Y
M9 ANDA #0
MA ANDB #0
 STD ,Y
 LDD 32,Y
MB ANDA #0
MC ANDB #0
 STD 32,Y
 LDD 64,Y
MD ANDA #0
ME ANDB #0
 STD 64,Y
 LDD 96,Y
MF ANDA #0
M0 ANDB #0
 STD 96,Y
 LEAX 2,X
 LEAY 2,Y
 DEC CNT2
 BNE MSKLP
 LEAX 224,X
 LEAY 224,Y
 DEC CNT1
 BNE MSKLP0
 RTS
 
TRTS LDY #TRRG
TRTLP LDU ,Y
 BEQ NOTT
 LDA 5,Y
 INCA
 ANDA #63
 STA 5,Y
 INC 3,Y
 LDB 3,Y
 CMPB #-16
 BHI TRT3
 CMPB #144
 BHS KILTRT
 LDX ,U
 CMPX #$D580
 BEQ TRTA
 CMPX #$D5A0
 BEQ TRT2
 BRA KILTRT
TRTA CMPA #5
 BHI TRT2
 JSR PTBAR
 BRA TRT3
TRT2 CMPA #6
 BNE TRT3
 BSR FIRTRT
TRT3 LDB 4,Y
 ANDB #7
 LSLB
 LDU #BARTAB
 LEAU B,U
 LSLB
 LSLB
 LSLB
 LDX #$DBE6
 ABX
 STX CMASK
 LEAX 8,X
 STX CIMAGE
 LDD ,U
 ADDA 2,Y
 ADDB 3,Y
 STD CCRDS
 PSHS Y
 LDY #CCRDS
 LDU #SP8
 LDD #$0108
 STD 2,Y
 JSR CLIP
 PULS Y
NOTT LEAY 6,Y
 CMPY #TRRG+36
 BLO TRTLP
 RTS
KILTRT LDD #0
 STD ,Y
 BRA NOTT
 
FIRTRT LDA 4,Y
 ANDA #7
 LSLA
 LDU #BARTB2
 LDD A,U
 ADDA 2,Y
 ADDB 3,Y
 CMPB #144-6
 BHS XFTRT
 
 LDX #BBLTR
FBBLP TST 4,X
 BEQ FBBLT
 LEAX 6,X
 CMPX #BBLTR+36
 BLO FBBLP
 RTS
FBBLT STD ,X
 LDA 4,Y
 ANDA #7
 LSLA
 LDU #BARTB3
 LDU A,U
 STU 2,X
 LDU #$DCC6
 CLRB
 LSRA
 LSRA
 RORB
 LSRA
 RORB
 CLRA
 LEAU D,U
 STU 4,X
 LDA #2
 STA SR4
XFTRT RTS
 
BARTB2 FCB 0,-19,14,-14,19,0
       FCB 14,14,0,19,-14,14
       FCB -19,0,-14,-14
 
BARTB3 FCB 0,-6,5,-4,7,1,5,6
       FCB 0,8,-5,6,-7,1,-5,-4
 
BBLTS LDX #BBLTR
 LDA #16
 STA MOVWB+11
BBLTLP LDA 4,X
 BEQ NBLT
 LDB 5,X
 LDY #CCRDS
 STD 4,Y
 ADDD #32
 STD 6,Y
 LDD ,X
 STD ,Y
 LDD #$0210
 STD 2,Y
 LDU #SP16
 STX BBLT1+1
 JSR CLIP
BBLT1 LDX #0
 
 JSR MOVWB
 BEQ KILBB
 CMPA #-16
 BHI NBLT
 CMPA #144
 BHS KILBB
NBLT LEAX 6,X
 CMPX #BBLTR+36
 BLO BBLTLP
 LDA #8
 STA MOVWB+11
 RTS
KILBB CLR 4,X
 BRA NBLT
 
FFLSH LDX #FLRG
 LDA 4,X
 BEQ FFL0
 LEAX 5,X
 LDA 4,X
 BEQ FFL0
 RTS
FFL0 LDD SCRN
 EXG D,U
 SUBD BPR2
 LSRA
 RORB
 SUBB #120
 BCC DIV1
 ADDB #120
DIV1 ROLA
 SUBB #60
 BCC DIV2
 ADDB #60
DIV2 ROLA
 SUBB #30
 BCC DIV3
 ADDB #30
DIV3 ROLA
 SUBB #15
 BCC DIV4
 ADDB #15
DIV4 ROLA
 COMA
 ANDA #15
 LSLB
 INCB
 LEAU B,U
 LDB OF2
 LSRB
 STB FFL1+1
 LSLA
 LSLA
 LSLA
 LSLA
FFL1 SUBA #0
 BCC FFL2
 STU ,X
 ADDA #16
 STA 4,X
 SUBA #16
 NEGA
 LSLA
 LDU 8,Y
 LEAU A,U
 STU 2,X
 RTS
FFL2 TFR A,B
 SUBB #144
 NEGB
 CMPB #16
 BLS FFL4
 LDB #16
FFL4 STB 4,X
 LDB #32
 MUL
 LEAU D,U
 STU ,X
 LDU 8,Y
 STU 2,X
 RTS
 
 
