mirror of
https://github.com/historicalsource/bilestoad-apple2.git
synced 2024-09-27 09:55:33 +00:00
576 lines
10 KiB
Plaintext
576 lines
10 KiB
Plaintext
LST
|
|
;FRONT
|
|
XCALC JSR XMUS
|
|
LDA DIV
|
|
SEC
|
|
SBC #$04
|
|
STA DIV
|
|
RTS
|
|
XMUS LDA #$00
|
|
STA DIV
|
|
LDA #$E0
|
|
STA QUO
|
|
LDA XVAL
|
|
LDY #$06
|
|
LP CMP QUO
|
|
BLT CON
|
|
SBC QUO
|
|
CON ROL DIV
|
|
LSR QUO
|
|
DEY
|
|
BNE LP
|
|
STA REM
|
|
RTS
|
|
YCALC LDA YVAL
|
|
SEC
|
|
SBC #36
|
|
JSR YMUS
|
|
RTS
|
|
REYCAL LDA YVAL
|
|
YMUS PHA
|
|
PHA
|
|
AND #$C0
|
|
STA YLO
|
|
PLA
|
|
LSR
|
|
ROR
|
|
PHA
|
|
AND #$30
|
|
ORA YLO
|
|
STA YLO
|
|
PLA
|
|
ROR
|
|
ROR
|
|
ROR YLO
|
|
AND #$03
|
|
STA YHI
|
|
PLA
|
|
ASL
|
|
ASL
|
|
AND #$1C
|
|
ORA YHI
|
|
ORA PAGE
|
|
STA YHI
|
|
RTS
|
|
DLIN LDA YHI
|
|
CLC
|
|
ADC #$04
|
|
PHA
|
|
AND #$1C
|
|
BEQ DLIN2
|
|
PLA
|
|
STA YHI
|
|
RTS
|
|
DLIN2 PLA
|
|
SEC
|
|
SBC #$20
|
|
ASL YLO
|
|
ROL
|
|
ADC #$01
|
|
PHA
|
|
AND #$07
|
|
BEQ DLIN3
|
|
PLA
|
|
LSR
|
|
ROR YLO
|
|
STA YHI
|
|
RTS
|
|
DLIN3 LSR YLO
|
|
PLA
|
|
LSR
|
|
SEC
|
|
SBC #$04
|
|
STA YHI
|
|
LDA YLO
|
|
CLC
|
|
ADC #$28
|
|
CMP #$A0
|
|
BEQ DLIN4
|
|
STA YLO
|
|
RTS
|
|
DLIN4 LDA #$00
|
|
STA YLO
|
|
RTS
|
|
MUSIC JSR >1
|
|
JSR >1
|
|
JSR >1
|
|
JSR >1
|
|
^2 RTS
|
|
^1 INC $FF
|
|
LDA $FF
|
|
CMP $FE
|
|
BLT >1
|
|
LDA #$00
|
|
STA $FF
|
|
STA $C030
|
|
RTS
|
|
^1 LDA #$00
|
|
LDA $FF
|
|
LDA $0000
|
|
RTS
|
|
CLEAR LDA PAGE
|
|
STA YHI
|
|
LDY #$00
|
|
STY YLO
|
|
LDA $FE
|
|
CMP #$FF
|
|
BEQ >1
|
|
LDA #$20
|
|
STA MUSIC
|
|
JMP >2
|
|
^1 LDA #$60
|
|
STA MUSIC
|
|
^2 LDX #$60
|
|
CLLP1 LDA #$2A
|
|
STA (YLO),Y
|
|
INY
|
|
CPY #31
|
|
BEQ CLPP2
|
|
LDA #$55
|
|
STA (YLO),Y
|
|
INY
|
|
JMP CLLP1
|
|
CLPP2 LDY #$00
|
|
JSR MUSIC
|
|
JSR DLIN
|
|
CLLP2 LDA BAKCOL
|
|
STA (YLO),Y
|
|
INY
|
|
CPY #31
|
|
BEQ >1
|
|
LDA BAKCOL
|
|
STA (YLO),Y
|
|
INY
|
|
JMP CLLP2
|
|
^1 LDY #$00
|
|
JSR MUSIC
|
|
JSR DLIN
|
|
DEX
|
|
BNE CLLP1
|
|
LDA #$80
|
|
STA BAKCOL
|
|
DBOXES LDA PAGE
|
|
STA YHI
|
|
LDA #31
|
|
STA YLO
|
|
JSR DBMUS
|
|
JSR DBMUS
|
|
JSR DBMUS
|
|
JSR SPOT
|
|
RTS
|
|
DBMUS LDA #$7F
|
|
LDY #$08
|
|
LDX #31
|
|
DBTL1 STA (YLO),Y
|
|
DEY
|
|
BPL DBTL1
|
|
JSR DLIN
|
|
DBOLN LDY #$08
|
|
LDA #$E0
|
|
STA (YLO),Y
|
|
DEY
|
|
LDA #$80
|
|
ODLPC STA (YLO),Y
|
|
DEY
|
|
BNE ODLPC
|
|
LDA #$83
|
|
STA (YLO),Y
|
|
JSR DLIN
|
|
EVLNE LDY #$08
|
|
LDA #$75
|
|
STA (YLO),Y
|
|
DEY
|
|
EVLPC LDA #$2A
|
|
STA (YLO),Y
|
|
DEY
|
|
BEQ TERMEV
|
|
LDA #$55
|
|
STA (YLO),Y
|
|
DEY
|
|
JMP EVLPC
|
|
TERMEV LDA #$57
|
|
STA (YLO),Y
|
|
JSR DLIN
|
|
DEX
|
|
BNE DBOLN
|
|
LDA #$FF
|
|
LDY #$08
|
|
DBBL1 STA (YLO),Y
|
|
DEY
|
|
BPL DBBL1
|
|
JSR DLIN
|
|
RTS
|
|
SPOT LDA OCEAN+12
|
|
ASL
|
|
STA XVAL
|
|
LDA #129
|
|
STA YVAL
|
|
JSR XMUS
|
|
JSR RYCAL
|
|
JSR LFTOCN
|
|
LDA OCEAN+13
|
|
ASL
|
|
STA XVAL
|
|
LDA #129
|
|
STA YVAL
|
|
JSR XMUS
|
|
JSR RYCAL
|
|
JSR RGTOCN
|
|
LDA OCEAN+14
|
|
STA TN2
|
|
LDA #129
|
|
STA YVAL
|
|
JSR RYCAL
|
|
JSR RADEV
|
|
LDA OCEAN+15
|
|
STA TN2
|
|
LDA #$5F
|
|
JSR ROSFIN
|
|
RTS
|
|
DRAGRD LDA #$20
|
|
STA XLO
|
|
LDA #$01
|
|
STA XHI
|
|
JSR LOADHG
|
|
LDA #$60
|
|
STA XLO
|
|
LDA #$02
|
|
STA XHI
|
|
JSR LOADHG
|
|
LDA #$A0
|
|
STA XLO
|
|
LDA #$04
|
|
STA XHI
|
|
JSR LOADHG
|
|
LDA #$E0
|
|
STA XLO
|
|
LDA #$08
|
|
STA XHI
|
|
JSR LOADHG
|
|
LDA #$20
|
|
STA XLO
|
|
LDA #$01
|
|
STA XHI
|
|
JSR LOADVG
|
|
LDA #$60
|
|
STA XLO
|
|
LDA #$02
|
|
STA XHI
|
|
JSR LOADVG
|
|
LDA #$A0
|
|
STA XLO
|
|
LDA #$04
|
|
STA XHI
|
|
JSR LOADVG
|
|
LDA #$E0
|
|
STA XLO
|
|
LDA #$08
|
|
STA XHI
|
|
JSR LOADVG
|
|
RTS
|
|
LOADHG LDA WINDX
|
|
SEC
|
|
SBC XLO
|
|
EOR #$FF
|
|
STA TEMP2
|
|
LDA WINDXH
|
|
ADC #$00
|
|
^2 AND XHI
|
|
BNE >6
|
|
RTS
|
|
^6 LDA TEMP2
|
|
ORA #$01
|
|
STA XVAL
|
|
JSR XMUS
|
|
LDA #$03
|
|
LDX XLO
|
|
BEQ >8
|
|
CPX #$04
|
|
BGE >2
|
|
^1 ASL
|
|
DEX
|
|
BNE <1
|
|
STA TEMP
|
|
JMP >3
|
|
^2 LDA #$C0
|
|
^1 LSR
|
|
INX
|
|
CPX #$07
|
|
BLT <1
|
|
^8 STA TEMP
|
|
^3 LDA #$00
|
|
STA YLO
|
|
LDA PAGE
|
|
STA YHI
|
|
LDY XHI
|
|
CPY #31
|
|
BGE >2
|
|
LDX #192
|
|
^1 LDA TEMP
|
|
EOR #$FF
|
|
AND (YLO),Y
|
|
STA (YLO),Y
|
|
JSR DLIN
|
|
DEX
|
|
BNE <1
|
|
^2 RTS
|
|
LOADVG LDA WINDY
|
|
SEC
|
|
SBC XLO
|
|
EOR #$FF
|
|
STA TEMP2
|
|
LDA WINDYH
|
|
ADC #$00
|
|
^2 AND XHI
|
|
BNE >7
|
|
RTS
|
|
^7 LDA TEMP2
|
|
AND #$FE
|
|
CMP #192
|
|
BGE >4
|
|
STA YVAL
|
|
JSR RYCAL
|
|
LDA #$00
|
|
LDY #30
|
|
^1 STA (YLO),Y
|
|
DEY
|
|
BPL <1
|
|
^4 RTS
|
|
OUTBLK JSR XCALC
|
|
JSR YCALC
|
|
LDA XSIZE
|
|
CLC
|
|
ADC #$01
|
|
STA SHIFTH
|
|
ASL
|
|
TAX
|
|
LDA #$60
|
|
STA MSHI,X
|
|
STA BSHI,X
|
|
LDX YSIZE
|
|
OLP1 LDA YLO
|
|
AND #$78
|
|
CMP #$78
|
|
BEQ OLP3
|
|
LDA SND
|
|
BNE >1
|
|
JSR NOISEB
|
|
JSR MOVEL
|
|
JSR NOISEB
|
|
JSR PREP
|
|
JSR NOISEB
|
|
JSR OUTLN
|
|
JSR NOISEB
|
|
LDA N5
|
|
BEQ OOOOOO
|
|
JSR NOISE
|
|
OOOOOO JSR NOISEB
|
|
OLP2 DEX
|
|
BNE OLP1
|
|
LDA SHIFTH
|
|
ASL
|
|
TAX
|
|
LDA #$26
|
|
STA BSHI,X
|
|
STA MSHI,X
|
|
RTS
|
|
^1 JSR MOVEL
|
|
JSR PREP
|
|
JSR OUTLN
|
|
JMP OLP2
|
|
OLP3 JSR CONMOV
|
|
JSR DLIN
|
|
JMP OLP2
|
|
PROC HEX 01
|
|
NOISE LDA $C030
|
|
WHITE LDA PROC
|
|
PHA
|
|
PLP
|
|
ROL $4E
|
|
ROL $4F
|
|
BCC NOISE2
|
|
LDA $C030
|
|
NOISE2 ROR
|
|
ROR
|
|
ROR
|
|
EOR $4F
|
|
ASL
|
|
ASL
|
|
ASL
|
|
PHP
|
|
PLA
|
|
STA PROC
|
|
RTS
|
|
NOISEB LDA N2
|
|
BEQ NSBRTS
|
|
NOISEC INC N1
|
|
BNE NSBRTS
|
|
DEC N2
|
|
LDA N2
|
|
STA N1
|
|
LDA $C030
|
|
NSBRTS RTS
|
|
MOVEL LDY XSIZE
|
|
LDA #$00
|
|
STA BYTES
|
|
STA BYTES,Y
|
|
STA BYTES+1,Y
|
|
LDA #$FF
|
|
STA MASKS
|
|
STA MASKS,Y
|
|
STA MASKS+1,Y
|
|
LDA XLO
|
|
AND #$04
|
|
BEQ MLP1
|
|
MLP2 LDA (BLKL),Y
|
|
STA BYTES,Y
|
|
LDA (MSKL),Y
|
|
STA MASKS,Y
|
|
DEY
|
|
BNE MLP2
|
|
BEQ CONMOV
|
|
MLP1 LDA (BLKL),Y
|
|
STA BYTES-1,Y
|
|
LDA (MSKL),Y
|
|
STA MASKS-1,Y
|
|
DEY
|
|
BNE MLP1
|
|
CONMOV LDA BLKL
|
|
CLC
|
|
ADC XSIZE
|
|
STA BLKL
|
|
LDA BLKH
|
|
ADC #$00
|
|
STA BLKH
|
|
LDA MSKL
|
|
CLC
|
|
ADC XSIZE
|
|
STA MSKL
|
|
LDA MSKH
|
|
ADC #$00
|
|
STA MSKH
|
|
RTS
|
|
PREP STX XREG
|
|
LDA #$00
|
|
STA SHIFTL
|
|
LDX XLO
|
|
BEQ PREPL2
|
|
CPX #$04
|
|
BLT PREPL1
|
|
PREPL3 JSR USHIFT
|
|
JSR UMSHI
|
|
INX
|
|
CPX #$07
|
|
BLT PREPL3
|
|
BGE PREPL4
|
|
PREPL1 CLC
|
|
JSR BSHI
|
|
SEC
|
|
JSR MSHI
|
|
DEX
|
|
BNE PREPL1
|
|
PREPL2 CLC
|
|
JSR BSHI
|
|
SEC
|
|
JSR MSHI
|
|
PREPL4 LDX XREG
|
|
RTS
|
|
USHIFT CLC
|
|
ROR BYTES+5
|
|
ROR BYTES+4
|
|
ROR BYTES+3
|
|
ROR BYTES+2
|
|
ROR BYTES+1
|
|
ROR BYTES
|
|
RTS
|
|
UMSHI SEC
|
|
ROR MASKS+5
|
|
ROR MASKS+4
|
|
ROR MASKS+3
|
|
ROR MASKS+2
|
|
ROR MASKS+1
|
|
ROR MASKS
|
|
RTS
|
|
BSHI ROL BYTES
|
|
BSHI2 ROL BYTES+1
|
|
BSHI3 ROL BYTES+2
|
|
BSHI4 ROL BYTES+3
|
|
BSHI5 ROL BYTES+4
|
|
BSHI6 ROL BYTES+5
|
|
BSHI7 ROL BYTES+6
|
|
RTS
|
|
MSHI ROL MASKS
|
|
MSHI2 ROL MASKS+1
|
|
MSHI3 ROL MASKS+2
|
|
MSHI4 ROL MASKS+3
|
|
MSHI5 ROL MASKS+4
|
|
MSHI6 ROL MASKS+5
|
|
MSHI7 ROL MASKS+6
|
|
RTS
|
|
OUTLN STX XREG
|
|
LDX #$00
|
|
LDY XHI
|
|
OUTLP1 CPY #31
|
|
BGE OB2
|
|
LDA MASKS,X
|
|
AND #$7F
|
|
EOR #$7F
|
|
ORA (YLO),Y
|
|
STA TEMP
|
|
LDA BYTES,X
|
|
AND #$7F
|
|
EOR TEMP
|
|
STA (YLO),Y
|
|
OB2 INY
|
|
INX
|
|
CPX SHIFTH
|
|
BEQ OUTEX
|
|
CPY #31
|
|
BGE OB3
|
|
LDA MASKS,X
|
|
LSR
|
|
EOR #$7F
|
|
ORA (YLO),Y
|
|
STA TEMP
|
|
LDA BYTES,X
|
|
LSR
|
|
EOR TEMP
|
|
STA (YLO),Y
|
|
OB3 INY
|
|
INX
|
|
CPX SHIFTH
|
|
BNE OUTLP1
|
|
OUTEX LDX #$00
|
|
LDY XHI
|
|
OUTEL INY
|
|
CPY #31
|
|
BGE OUTEX2
|
|
LDA MASKS,X
|
|
EOR BYTES,X
|
|
BMI OUTEX2
|
|
LDA (YLO),Y
|
|
ORA #$01
|
|
STA (YLO),Y
|
|
OUTEX2 INX
|
|
DEY
|
|
CPY #31
|
|
BGE OUTEX3
|
|
CPX SHIFTH
|
|
BEQ OUTEX4
|
|
LDA MASKS,X
|
|
EOR BYTES,X
|
|
AND #$01
|
|
BNE OUTEX3
|
|
LDA (YLO),Y
|
|
ORA #$40
|
|
STA (YLO),Y
|
|
OUTEX3 INY
|
|
INY
|
|
INX
|
|
CPX SHIFTH
|
|
BLT OUTEL
|
|
OUTEX4 JSR DLIN
|
|
LDX XREG
|
|
RTS
|
|
ICL "MAPS"
|