 ; rotabb <S.ORCHARD>
 ; <TEXT #3>
 
 ORG $4224
 PUT *
 
 SETDP 0
 
TEMP EQU 251
COUNT EQU 253
 
PBLS EQU $3A98
BACK EQU $3B0B
BUFF EQU $3E76
SP16 EQU $3C0D
CALC EQU $3C89
MOVE EQU $3C9C
EXPL EQU $3CE1
BCOL EQU $3D81
FEX EQU $3DBF
RAD2 EQU $3DE1
RAD EQU $3E0E
TAB EQU $3E2E
MULTAB EQU $3E4E
ANDTAB EQU $3E56
BDTB EQU $3E5E
RTAB EQU $3E6E
 
SHIP EQU $3F2B
EBLS EQU $3F5F
FSH EQU $402E
FRT EQU $406F
FEB EQU $40C3
BCTB EQU $4109
EINT EQU $4129
BINT EQU $4159
JST EQU $4189
GST EQU $41C6
FST EQU $41E3
PST EQU $41FE
 
 
TRAK LDX #TRKR
TRLP LDU #VALR
 LDA 3,X
 BEQ FTRG
 LDA 2,X
 LDB A,U
 BMI ENDT
 CLR 3,X
 LDU #VLR2
 CLR A,U
 BRA ENDT
FTRG LDB #-20
FTLP LDA ,U+
 BMI LTRK
BAK INCB
 BNE FTLP
 BRA ENDT
LTRK ADDB #20
 STU TEMP
 LDU #VLR2
 LDA B,U
 BEQ LOK
 LDU #VALR
 LDU TEMP
 SUBB #20
 BRA BAK
LOK STB 2,X
 LDU #VLR2
 COM B,U
 LSLB
 LDU #ADTAB
 LDD B,U
 STD ,X
 LDA #64
 STA 3,X
ENDT LEAX 4,X
 CMPX #TRKR+8
 BLO TRLP
 RTS
 
LKLN LDU #TRKR
 BSR LKLP
 LEAU 4,U
LKLP LDA 3,U
 BEQ ENDL
 BPL LKNG
 LEAY 8,U
 JSR CALC
 LEAX -24,X
 BSR DRLN
 LEAX 408,X
 BRA DRLN
LKNG LDB 3,U
 SUBB #4
 STB 3,U
 BEQ LKD
 LDB #24
 MUL
 STD TEMP
 LEAY 8,U
 JSR CALC
 LDD TEMP
 ADDD #384
 LEAX D,X
 BSR DRLN
 LDD TEMP
 COMA
 COMB
 ADDD #1
 LEAX D,X
 SUBD #384
 LEAX D,X
 BRA DRLN
LKD LDA #-1
 STA 3,U
ENDL RTS
 
DRLN PSHS U
 CMPX #8064
 BLO ENDD
 CMPX #11903
 BHI ENDD
 LDB 1,Y
 ROLB
 ROLB
 ROLB
 ROLB
 ANDB #7
 LDU #LNTAB
 LEAU B,U
 LEAU B,U
 LEAU B,U
 LDD ,U
 ORA ,X
 ORB 1,X
 STD ,X
 LDA 2,U
 ORA 2,X
 STA 2,X
ENDD PULS U,PC
 
GET LDB DIR
 ANDB #7
 LDA #64
 MUL
 LDU #12288
 LEAU D,U
 STU SHIP+1
 LEAU 2,U
 STU COL+1
 LDX #7680+2147
 LDY #SNAP
 LDA #14
 STA COUNT
GLP LDD ,X
 ORA ,U+
 ORB ,U+
 STD ,Y++
 LEAX 24,X
 DEC COUNT
 BNE GLP
 RTS
 
COL LDU #0
 CLR CFL
 LDX #7680+2147
 LDY #SNAP
 LDA #14
 STA COUNT
CLP LDD ,X
 ORA ,U+
 ORB ,U+
 EORA ,Y+
 BNE HIT
 EORB ,Y+
 BNE HIT
 LEAX 24,X
 DEC COUNT
 BNE CLP
 BRA CEND
HIT COM CFL
CEND RTS
 
 
ADTAB FDB AJR,AJR+5,AJR+10
 FDB AJR+15,AJR+20,PTR,PTR+5
 FDB PTR+10,PTR+15,PTR+20,PTR+25
 FDB PTR+30,PTR+35,AGR,AGR+5
 FDB AGR+10,AGR+15,AGR+20,RTR
 FDB RTR+7
 
LNTAB FCC 255,255,0,127,255,128
 FCC 63,255,192,31,255,224
 FCC 15,255,240,7,255,248
 FCC 3,255,252,1,255,254
 
 
MISL LDY #MSR
MSLP LDA 6,Y
 LBEQ MSLPE
MFR LDU #13696
 LDA 1,Y
 ROLA
 ROLA
 ROLA
 ROLA
 ANDA #7
 BEQ PZ
 LDX #MULTAB
 LDB A,X
 STB AM8A+1
 STB OM8A+1
 LDX #ANDTAB
 LDB A,X
 STB AM8B+1
 COMB
 STB AM8C+1
 JSR CALC
 LDA #8
 STA ,-S
A8LP LDA ,U+
AM8A LDB #0
 MUL
AM8B ORA #0
AM8C ORB #0
 ANDA ,X
 ANDB 1,X
 STD ,X
 LEAX 24,X
 DEC ,S
 BNE A8LP
 LEAX -168,X
 LEAU 1,U
 LDA #6
 STA ,S
O8LP LDA ,U+
OM8A LDB #0
 MUL
 ORA ,X
 ORB 1,X
 STD ,X
 LEAX 24,X
 DEC ,S
 BNE O8LP
 LEAS 1,S
 BRA END8
PZ JSR CALC
 LDB #8
PZA LDA ,U+
 ANDA ,X
 STA ,X
 LEAX 24,X
 DECB
 BNE PZA
 LEAX -168,X
 LEAU 1,U
 LDB #6
PZB LDA ,U+
 ORA ,X
 STA ,X
 LEAX 24,X
 DECB
 BNE PZB
END8 LDX ,Y
 LDD GXV
 LEAX A,X
 LDA 4,Y
 LEAX A,X
 LEAX A,X
 STX ,Y
 CMPX #0
 BLT UNC
 CMPX #5887
 BLT VER7
UNC CLR 6,Y
 BRA MSLPE
VER7 LDX 2,Y
 LEAX B,X
 LDA 5,Y
 LEAX A,X
 LEAX A,X
 STX 2,Y
 CMPX #0
 BLT UNC
 CMPX #5887
 BGT UNC
 LEAU -16,Y
 CMPU #TRKR+7
 BNE SKP
 LEAU -3,U
SKP LDA 3,U
 BPL MSLPE
 LDU ,U
 LDD 4,Y
 LDX ,U
 LEAX 127,X
 CMPX ,Y
 BLT DEC1
 BGT INC1
BK LDX 2,U
 LEAX 127,X
 CMPX 2,Y
 BLT DEC2
 BGT INC2
 BRA MSLPE
DEC1 SUBA #32
 BVS BK
 STA 4,Y
 BRA BK
INC1 ADDA #32
 BVS BK
 STA 4,Y
 BRA BK
DEC2 SUBB #32
 BVS MSLPE
 STB 5,Y
 BRA MSLPE
INC2 ADDB #32
 BVS MSLPE
 STB 5,Y
MSLPE LEAY 7,Y
 CMPY #MSR+14
 LBLO MSLP
 LDX MFR+1
 LEAX 16,X
 CMPX #13728
 BLO STFR
 LDX #13696
STFR STX MFR+1
 RTS
 
MCOL LDU #MSR
 CLR CFL
 LDA #2
 STA COUNT
MCLP LDA 6,U
 BEQ NCOL
 LDD ,U
 SUBD ,Y
 CMPD #-192
 BLT NCOL
 CMPD #448
 BGT NCOL
 LDD 2,U
 SUBD 2,Y
 CMPD #-192
 BLT NCOL
 CMPD #448
 BGT NCOL
 COM CFL
 CLR 6,U
 BRA MEND
NCOL LEAU 7,U
 DEC COUNT
 BNE MCLP
MEND RTS
 
 
MST FCB 0,-64,45,-45,64,0,45,45
 FCB 0,64,-45,45,-64,0,-45,-45
 
 ORG 1024
 PUT *
 
GX RMB 2
GY RMB 2
GXV RMB 1
GYV RMB 1
ACC RMB 2
DIR RMB 1
QUIT RMB 1
KTAB RMB 8
AJR RMB 25
EXR RMB 56
AGR RMB 28
AFR RMB 25
SNAP RMB 28
PBR RMB 20
RAND RMB 1
CFL RMB 1
PTR RMB 40
SHR RMB 32
RTR RMB 14
EBR RMB 28
KCNT RMB 1
EQTR RMB 2
VALR RMB 20
VLR2 RMB 20
TRKR RMB 8
TRKR2 RMB 8
MSR RMB 14
 
 
 
