 ; rotabb <S.ORCHARD>
 ; <TEXT #6>
 
 ORG $4CF0
 PUT *
 
 SETDP 0
 
TEMP EQU 251
COUNT EQU 253
SEED EQU 14255
 
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 EQU $4224
LKLN EQU $4277
DRLN EQU $42C4
GET EQU $42F1
COL EQU $4321
ADTAB EQU $434D
LNTAB EQU $4375
MISL EQU $438D
MCOL EQU $44B4
MST EQU $44F0
 
JETS EQU $4500
GRND EQU $458C
FLPS EQU $4613
PNTS EQU $46A7
SHTS EQU $472B
ROTS EQU $47A0
UPSC EQU $485B
U11 EQU $485F
U22 EQU $4868
U33 EQU $4871
DSCR EQU $488F
DIGS EQU $48AC
STAB EQU $48D4
 
KYBD EQU $48DC
GCRD EQU $494E
SP8 EQU $4960
XTAB EQU $49E4
ATAB EQU $49F4
RCTAB EQU $4A04
FAT EQU $4A44
FLA EQU $4A8F
ASTD EQU $4AB0
LAST EQU $4B39
BCOL2 EQU $4BB3
 
 
PZ JSR CALC
 LDA #16
 STA ,-S
PZA LDD ,U++
 ANDA ,X
 ANDB 1,X
 STD ,X
 LEAX 24,X
 DEC ,S
 BNE PZA
 LEAX -384,X
 LDA #16
 STA ,S
PZO LDD ,U++
 ORA ,X
 ORB 1,X
 STD ,X
 LEAX 24,X
 DEC ,S
 BNE PZO
 PULS A,PC
B16 LDA 1,Y
 ROLA
 ROLA
 ROLA
 ROLA
 ANDA #7
 BEQ PZ
 LDX #MULTAB
 LDB A,X
 STB AM16A+1
 STB AM16B+1
 STB OM16A+1
 STB OM16B+1
 LDX #ANDTAB
 LDB A,X
 STB AM16C+1
 COMB
 STB AM16D+1
 JSR CALC
M16 LDA #16
 STA ,-S
A16LP LDA ,U+
AM16A LDB #0
 MUL
AM16C ORA #0
 ANDA ,X
 STA ,X
 STB T1+1
 LDA ,U+
AM16B LDB #0
 MUL
T1 ORA #0
 ANDA 1,X
AM16D ORB #0
 ANDB 2,X
 STD 1,X
 LEAX 24,X
 DEC ,S
 BNE A16LP
 LEAX -384,X
M16B LDA #16
 STA ,S
O16LP LDA ,U+
OM16A LDB #0
 MUL
 ORA ,X
 ORB 1,X
 STD ,X
 LDA ,U+
OM16B LDB #0
 MUL
 ORA 1,X
 ORB 2,X
 STD 1,X
 LEAX 24,X
 DEC ,S
 BNE O16LP
 PULS A,PC
 
BGGY LDY #BGR+6
 LEAS -1,S
 LDU #19440
 STU FRM+1
BGLP LDA #-1
 STA ,S
 LDA 4,Y
 BEQ BGLPE
 BPL NDISP
FRM LDU #19440
 JSR B16
 JSR BCOL
 JSR MCOL
 LDA CFL
 BEQ NDISP
 JSR FEX
 CLR 4,U
 CLR 5,U
 LDA #1
 STA BHT
 LDA #248
 STA SR1
NDISP LDA #-1
 STA 4,Y
 LDX ,Y
 LDA GXV
 LEAX A,X
 LDD BGR+4
 LEAX A,X
 LEAX A,X
 STX ,Y
 CMPX #32
 BLT UN
 CMPX #5631
 BLT VER
UN CLR ,S
VER LDX 2,Y
 LDA GYV
 LEAX A,X
 LEAX B,X
 LEAX B,X
 STX 2,Y
 CMPX #32
 BLT UN2
 CMPX #5631
 BLT OK
UN2 CLR ,S
OK JSR RAD2
 LDA ,S
 BNE BGLPE
 LDA #1
 STA 4,Y
BGLPE LDU FRM+1
 LEAU 64,U
 STU FRM+1
 LEAY 5,Y
 CMPY #BGR+26
 LBLO BGLP
 LDX BGR
 LDA BGR+4
 LEAX A,X
 LEAX A,X
 LDD GXV
 LEAX A,X
 STX BGR
 LDX BGR+2
 LDA BGR+5
 LEAX A,X
 LEAX A,X
 LEAX B,X
 STX BGR+2
 PULS A,PC
 
INIT LDX #$400
 LDU #0
IN1 STU ,X++
 CMPX #$600
 BLO IN1
 LDA #-1
 LDB #20
 LDX #PBR
IN2 STA ,X+
 DECB
 BNE IN2
 LDA SEED
 STA RAND
 JSR GCRD
 LDX ,Y
 LDD 2,Y
 JSR JST
 JSR GCRD
 LDX ,Y
 LDU 2,Y
 JSR FST
 JSR GST
 JSR PST
 LDA #5
 STA NFLP
 STA NJET
 STA NGRD
 LDA #8
 STA NPNT
 LDA #2
 STA NJSQ
 INCA
 STA NFSQ
 CLR FSH+1
 CLR FRT+1
 CLR FEB+1
 CLR FAT+1
 CLR FSH+3
 CLR FRT+3
 CLR FEB+3
 CLR FAT+3
 LDD PRM+16
 STD NHTS
 COM SCFL
 JMP DSCR
 
GNR2 LDB GY
 BPL PVE
 CMPB #128
 BNE NVE
 LDB #-127
NVE NEGB
PVE LSRB
 LSRB
 LSRB
 ANDB #12
 LDX #PRM
 ABX
 LDD ,X
 STA FSH+3
 STB FRT+3
 LDD 2,X
 STA FEB+3
 STB FAT+3
 LDX TRKR
 LDD ,X
 STD TRKR2
 LDD 2,X
 STD TRKR2+2
 LDX TRKR+4
 LDD ,X
 STD TRKR2+4
 LDD 2,X
 STD TRKR2+6
 RTS
 
INBG LDX #BGR+6
 LDA #1
 STA 4,X
 STA 9,X
 STA 14,X
 STA 19,X
 LDU #BITAB
 LDA DIR
 ANDA #7
 LSLA
 LSLA
 LEAU A,U
 LDD ,U
 STD ,X
 STD 10,X
 ADDD #256
 STD BGR
 ADDD #256
 STD 5,X
 STD 15,X
 LDD 2,U
 STD 2,X
 STD 7,X
 ADDD #256
 STD BGR+2
 ADDD #256
 STD 12,X
 STD 17,X
 LDD #0
 STD BGR+4
 RTS
 
BOOM LDA #8
 STA ,-S
PXLP JSR FEX
 LDX #XTAB-2
 LDA ,S
 ASLA
 LDD A,X
 ADDD TEMP
 STD 4,U
 DEC ,S
 BNE PXLP
 LEAS 1,S
 LDA #252
 STA SR3
 RTS
 
TEXT LDB ,Y+
 BEQ NTXT
 LDA #6
 LDX #13995
 ABX
TXLP LDB ,X+
 STB ,U
 LEAU 24,U
 DECA
 BNE TXLP
 LEAU -143,U
 BRA TEXT
NTXT RTS
 
BGHD LDD BGR
 CMPD #2816
 BLT ACCR
 LDA BGR+4
 SUBA #3
 CMPA #-$48
 BLT AUD
 STA BGR+4
 BRA AUD
ACCR LDA BGR+4
 ADDA #3
 CMPA #$48
 BGT AUD
 STA BGR+4
AUD LDD BGR+2
 CMPD #2816
 BLT ACCD
 LDA BGR+5
 SUBA #3
 CMPA #-$48
 BLT EXT
 STA BGR+5
 BRA EXT
ACCD LDA BGR+5
 ADDA #3
 CMPA #$48
 BGT EXT
 STA BGR+5
EXT LDA BHT
 BEQ EXT2
 CLR BHT
 LDA BGTR
 BEQ EXT1
 LDA TRKR+2
 ADDA TRKR+3
 BPL EXT2
 DEC BDED
 BNE EXT2
 CLRA
 STA BGTR
 STA BGR+10
 STA BGR+15
 STA BGR+20
 STA BGR+25
 STA TRKR+3
 STA TRKR+7
 LDA #100
 STA MR2
ELSC LDD #$50
 STA U33
 STB U22
 JSR UPSC
 LDA #2
 STA QUIT
 LDY #BGR
 LDD 4,Y
 ASRA
 ASRB
 STD TEMP
 JMP BOOM
EXT1 LDA NHTS
 BEQ EXT2
 DEC NHTS
 BNE EXT2
 LDA #-1
 STA BGTR
EXT2 LDA BGTR
 BEQ EXT3
 LDX BGR
 CMPX #512
 BLT OFF
 CMPX #5120
 BLT VER2
OFF LDA BGTR
 BMI EXT3
 CLR TRKR+3
 CLR TRKR+7
 NEG BGTR
 BRA EXT3
VER2 LDX BGR+2
 CMPX #512
 BLT OFF
 CMPX #5119
 BGT OFF
 LDA BGTR
 BPL EXT3
 NEG BGTR
 LDX #BGR
 STX TRKR
 STX TRKR+4
 LDA #64
 STA TRKR+3
 STA TRKR+7
 LDA #-1
 STA TRKR+2
 LDD ,X
 STD TRKR2
 STD TRKR2+4
 LDD 2,X
 STD TRKR2+2
 STD TRKR2+6
EXT3 RTS
 
BITAB FDB 2560,6144,-1024,6144
 FDB -1024,2560,-1024,-1024
 FDB 2560,-1024,6144,-1024
 FDB 6144,2560,6144,6144
 
 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
NTRX RMB 1
TRXF RMB 1
VALR RMB 20
VLR2 RMB 20
TRKR RMB 8
TRKR2 RMB 8
MSR RMB 14
SCORE RMB 4
SCFL RMB 1
SR1 RMB 1
NFLP RMB 1
NGRD RMB 1
NJET RMB 1
NPNT RMB 1
PDED RMB 1
MR1 RMB 1
NJSQ RMB 1
NFSQ RMB 1
SR2 RMB 1
SR3 RMB 1
EOLF RMB 1
ATR RMB 28
LAR RMB 56
RND2 RMB 1
RND3 RMB 1
BHT RMB 1
NHTS RMB 1
BDED RMB 1
BGTR RMB 1
MR2 RMB 1
 
 ORG $3BA2
 PUT *
 
BGR RMB 26
PRM RMB 18
 
 
