bilestoad-apple2/SOURCE/INTRO.txt

1381 lines
26 KiB
Plaintext

;INTRO
XLO EPZ $00
REM EPZ $00
XHI EPZ $01
DIV EPZ $01
XVAL EPZ $02
QUO EPZ $03
YVAL EPZ $04
RYLO EPZ $05
YLO EPZ $05
RYHI EPZ $06
YHI EPZ $06
YSIZE EPZ $07
XSIZE EPZ $08
SHIFTL EPZ $09
SHIFTH EPZ $0A
XREG EPZ $0B
BLKL EPZ $0C
BLKH EPZ $0D
MSKL EPZ $0E
MSKH EPZ $0F
YREG EPZ $10
TIME EPZ $11
CH EPZ $12
TN1 EPZ $12
HC EPZ $13
TN2 EPZ $13
PAGE EPZ $14
PDL1 EPZ $15
PAD0 EPZ $15
PDL0 EPZ $16
PAD1 EPZ $16
OLDP0 EPZ $17
OLDP1 EPZ $18
PADDLE EPZ $19
PLAYER EPZ $1A
THRUS EPZ $1B
PADB EPZ $1C
HDX EPZ $1D
HDY EPZ $1E
HDN EPZ $1F
RNDNEW EPZ $4E
RNDOLD EPZ $4F
HEADX EPZ $50
HEADY EPZ $51
HEADN EPZ $52
RTORSO EPZ $53
RRSHL EPZ $54
RLSHL EPZ $55
RARM EPZ $56
RSHI EPZ $57
RWEP EPZ $58
HEAD2X EPZ $59
LSHLX EPZ $5A
RSHLX EPZ $5B
WEPX EPZ $5C
SHIX EPZ $5D
ARMX EPZ $5E
HANDX EPZ $5F
BLADEX EPZ $60
HEAD2Y EPZ $61
LSHLY EPZ $62
RSHLY EPZ $63
WEPY EPZ $64
SHIY EPZ $65
ARMY EPZ $66
HANDY EPZ $67
BLADEY EPZ $68
TORSON EPZ $69
LSHLN EPZ $6A
RSHLN EPZ $6B
WEPN EPZ $6C
SHIN EPZ $6D
ARMN EPZ $6E
HEAD3X EPZ $6F
HEAD3Y EPZ $77
TORS2N EPZ $7F
H3 EPZ $85
BLO EPZ $86
BHI EPZ $87
MLO EPZ $88
MHI EPZ $89
DX EPZ $8A
DY EPZ $8B
LSTAT EPZ $8C
GENER EPZ $8D
GEN1 EPZ $8E
GEN2 EPZ $8F
GENER2 EPZ $90
TEMP EPZ $91
CENX EPZ $92
CENY EPZ $93
HEADXH EPZ $94
HEADYH EPZ $95
HEA2XH EPZ $96
HEA2YH EPZ $97
STATUS EPZ $9C
BYTES EPZ $9D
MASKS EPZ $A5
YPOSM EPZ $AD
XPOSM EPZ $AE
WINDX EPZ $AF
WINDXH EPZ $B0
WINDY EPZ $B1
WINDYH EPZ $B2
N1 EPZ $B3
N2 EPZ $B4
N3 EPZ $B5
N4 EPZ $B6
COUNT EPZ $B7
H2 EPZ $B8
LSHLXH EPZ $B9
RSHLXH EPZ $BA
WEPXH EPZ $BB
SHIXH EPZ $BC
ARMXH EPZ $BD
LSHLYH EPZ $BE
RSHLYH EPZ $BF
WEPYH EPZ $C0
SHIYH EPZ $C1
ARMYH EPZ $C2
RELHX EPZ $C3
RELHY EPZ $C4
REL2HX EPZ $C5
REL2HY EPZ $C6
RAD1X EPZ $C7
RAD1XH EPZ $C8
RAD1Y EPZ $C9
RAD1YH EPZ $CA
RAD2X EPZ $CB
RAD2XH EPZ $CC
RAD2Y EPZ $CD
RAD2YH EPZ $CE
RHX EPZ $CF
HXH EPZ $D0
RHY EPZ $D1
HYH EPZ $D2
DRNUM EPZ $D3
DXH EPZ $D4
DYH EPZ $D5
SCOREL EPZ $D6
SCOREH EPZ $D7
N5 EPZ $D8
S1 EPZ $D9
S2 EPZ $DA
S3 EPZ $DB
S4 EPZ $DC
SC2L EPZ $DD
SC2H EPZ $DE
SC1L EPZ $DF
SC1H EPZ $E0
INVIEW EPZ $E5
BAKCOL EPZ $E6
TEMP2 EPZ $E7
GAMENO EPZ $E8
MPL EPZ $E9
MPH EPZ $EA
RIDE EPZ $EB
RID1 EPZ $EC
RID2 EPZ $ED
FTN EPZ $EE
FTN2 EPZ $EF
FDTIME EPZ $F0
PSWARD EPZ $F1
PS2 EPZ $F2
CLASS EPZ $F3
CL2 EPZ $F4
ISNO EPZ $F5
RNXL EPZ $F6
RNXH EPZ $F7
RNYL EPZ $F8
RNYH EPZ $F9
PLXL EPZ $FA
PLXH EPZ $FB
SND EPZ $FC
JSR RELOC
RIN JSR RINIT
LOCA JMP STA
JSR RANK
BEGIN JMP GAME
ENDING JSR PROMO
JSR GSOLVE
LDA $C010
^1 LDA $C000
BPL <1
JMP RIN
GAME JSR SWAP2
JSR START
JSR SWAP2
JSR SWAP2
JSR LOOK
JSR SWAP
JSR LOOK
JSR FANFAR
JSR SWAP
JSR SWITCH
PATCH:
^9 JSR SIGHT
JSR PDL
JSR TROPSM
JSR PDL
JSR DRSCRN
JSR PDL
JSR CLOCK
JSR PDL
JSR SWITCH
JSR PDL
JSR DEATH
JSR PDL
JSR RNGMUS
JSR PDL
JSR SWAP
JSR PDL
JSR DEATH
JSR PDL
JSR RNGMUS
JSR PDL
JMP <9
DRAPLA JSR BODCLC
JSR BODDRW
JSR PLARAD
JSR PDL
RTS
DRAIR JSR RNGRAD
LDA HEADX
STA HDX
LDA HEADY
STA HDY
LDA PLAYER
BEQ >1
LDA CLASS
CMP CL2
BEQ >2
BLT >2
JMP >3
^1 LDA CL2
CMP CLASS
BEQ >2
BLT >2
^3 LDA #$7B
STA HDN
JSR DHD
RTS
^2 LDA #$7A
STA HDN
JSR DHD
RTS
DRSCRN JSR CENTER
THERST JSR BKGRND
JSR DRAPLA
JSR SWAP
JSR DRAPLA
JSR OUTSCO
CLSOUN LDA #$00
STA N2
STA N3
STA N5
LDA #$FF
STA $FE
STA N1
RTS
BKGRND JSR DRAGRD
JSR FLOWER
JSR DRAOCN
JSR DRARNG
JSR TERAIN
JSR RADXO
JSR PDL
RTS
DRAMNS JSR CENTER
JSR BKGRND
JSR DRAPLA
JSR OUTSCO
JSR PDL
RTS
FANFAR LDA #$20
STA PAGE
LDA #$10
STA TIME
JSR SWAP
JSR CLSOUN
JSR SIGHT
JSR CENTER
JSR BKGRND
JSR OUTSCO
LDA #$01
STA FDTIME
JSR TSOLVE
JSR SWITCH
JSR BKGRND
JSR OUTSCO
JSR SWITCH
JSR BKGRND
JSR BODCLC
JSR DRAIR
JSR OUTSCO
JSR DSOLVE
JSR SWITCH
JSR BKGRND
JSR DRAIR
JSR OUTSCO
JSR SWITCH
JSR BKGRND
JSR DRAIR
JSR DRAPLA
JSR OUTSCO
JSR DSOLVE
JSR SWITCH
JSR BKGRND
JSR DRAIR
JSR DRAPLA
JSR OUTSCO
JSR SWITCH
JSR DRAMNS
JSR DSOLVE
JSR SWITCH
LDA #$00
STA TIME
JSR DRAMNS
JSR SWITCH
JSR DRAMNS
JSR SWAP
JSR BODCLC
JSR DRAIR
JSR DSOLVE
JSR SWITCH
JSR SWAP
JSR DRAMNS
JSR SWAP
JSR BODCLC
JSR DRAIR
JSR SWITCH
JSR SWAP
JSR DRAMNS
JSR SWAP
JSR BODCLC
JSR DRAIR
JSR DRAPLA
JSR DSOLVE
JSR SWITCH
JSR SWAP
JSR DRAMNS
JSR SWAP
JSR BODCLC
JSR DRAIR
JSR DRAPLA
JSR SWITCH
JSR SWAP
JSR DRSCRN
JSR DSOLVE
JSR SWITCH
LDA #$20
STA PAGE
RTS
CLOCK INC TIME
LDA INVIEW
BEQ >1
LDA SND
BNE >1
INC MPL
BNE >2
INC MPH
^2 LDY #$00
LDA (MPL),Y
BEQ >3
STA $FE
RTS
^3 LDA /NOTE
STA MPH
LDA #NOTE
STA MPL
LDA #$FF
STA $FE
RTS
^1 LDA #$FF
STA $FE
RTS
RELOC LDX #$7F
STX MHI
LDY #$00
STY SND
STY MLO
STY BLO
LDA #$BF
STA BHI
LDX #$60
^1 LDA (MLO),Y
STA (BLO),Y
LDA #$00
STA (MLO),Y
INY
BNE <1
DEC MHI
DEC BHI
DEX
BNE <1
LDA /NOTE
STA MPH
LDA #NOTE
STA MPL
RTS
RINIT LDX #$00
STX SC1L
STX SC2L
LDA #$50
STA SC1H
STA SC2H
LDA #$04
STA GAMENO
RTS
RNGRAD LDA #$10
STA DRNUM
JMP ANYRAD
PLARAD LDA PLAYER
AND #$08
CLC
ADC #$04
STA DRNUM
ANYRAD LDA HEADXH
STA HXH
LDA RELHX
STA RHX
LDA HEADYH
STA HYH
LDA RELHY
STA RHY
JSR RADAR
RTS
RADAR LDA RHX
SEC
SBC RAD1X
STA TN1
LDA HXH
SBC RAD1XH
LSR
ROR TN1
LSR
ROR TN1
LSR
ROR TN1
LSR
BNE RD1SK
ROR TN1
LDA TN1
STA XVAL
LDA RHY
SEC
SBC RAD1Y
STA TN1
LDA HYH
SBC RAD1YH
LSR
ROR TN1
LSR
ROR TN1
LSR
ROR TN1
LSR
BNE RD1SK
ROR TN1
LDA TN1
STA YVAL
CMP #61
BGE RD1SK
JSR RADMN
RD1SK LDA RHX
SEC
SBC RAD2X
STA TN1
LDA HXH
SBC RAD2XH
ASL TN1
ROL
BCS RAD2SK
ASL TN1
ROL
BCS RAD2SK
ASL TN1
ROL
BCS RAD2SK
STA XVAL
LDA RHY
SEC
SBC RAD2Y
STA TN1
LDA HYH
SBC RAD2YH
ASL TN1
ROL
BCS RAD2SK
ASL TN1
ROL
BCS RAD2SK
ASL TN1
ROL
BCS RAD2SK
CMP #61
BGE RAD2SK
ORA #$40
STA YVAL
JSR RADMN
RAD2SK LDA HXH
ASL
ASL
AND #$3F
EOR #$20
STA XVAL
LDA HYH
ASL
ASL
AND #$3F
EOR #$20
CMP #61
BGE RAD3SK
ORA #$80
STA YVAL
JSR RADMN
RAD3SK RTS
RADMN JSR RXCAL
JSR RYCAL
JSR DRABN
RTS
RXCAL JSR XMUS
CLC
LDA XHI
ADC #31
STA XHI
RTS
RYCAL JSR REYCAL
RTS
DRABN LDX DRNUM
LDY XHI
CPY #31
BLT DRBRTS
CPY #40
BGE DRBRTS
LDA XLO
CMP #$03
BGE >2
^1 LDA #$F0
AND (YLO),Y
ORA DRBYT-1,X
STA (YLO),Y
JSR DLIN
DEX
TXA
AND #$03
BNE <1
RTS
^2 LDA #$87
AND (YLO),Y
ORA DRBYT2-1,X
STA (YLO),Y
JSR DLIN
DEX
TXA
AND #$03
BNE <2
DRBRTS RTS
DRBYT2 HEX 00000000003030007878787878484878
DRBYT HEX 00000000000606000F0F0F0F0F09090F
BODCLC LDA RELHX
SEC
SBC WINDX
STA HEAD2X
STA HEADX
LDA RELHY
SEC
SBC WINDY
STA HEADY
STA HEAD2Y
LDA HEADN
CLC
ADC RTORSO
AND #$0F
STA TORSON
CLC
ADC RLSHL
AND #$0F
STA LSHLN
CLC
ADC RSHI
AND #$0F
STA SHIN
CLC
ADC RWEP
AND #$0F
STA WEPN
LDA TORSON
CLC
ADC RRSHL
AND #$0F
STA RSHLN
CLC
ADC RARM
AND #$0F
STA ARMN
LDX TORSON
LDA TORDX,X
BMI >1
CLC
ADC HEADX
STA RSHLX
LDA #$00
ADC #$00
STA RSHLXH
JMP >2
^1 CLC
ADC HEADX
STA RSHLX
LDA #$00
SBC #$00
STA RSHLXH
^2 LDX RSHLN
LDA STOEX,X
BMI >1
CLC
ADC RSHLX
STA ARMX
LDA RSHLXH
ADC #$00
STA ARMXH
JMP >2
^1 CLC
ADC RSHLX
STA ARMX
LDA RSHLXH
SBC #$00
STA ARMXH
^2 LDX ARMN
LDA ARMX
CLC
ADC STOEX,X
STA HANDX
LDX TORSON
LDA TORDY,X
BMI >1
CLC
ADC HEADY
STA RSHLY
LDA #$00
ADC #$00
STA RSHLYH
JMP >2
^1 CLC
ADC HEADY
STA RSHLY
LDA #$00
SBC #$00
STA RSHLYH
^2 LDX RSHLN
LDA STOEY,X
BMI >1
CLC
ADC RSHLY
STA ARMY
LDA RSHLYH
ADC #$00
STA ARMYH
JMP >2
^1 CLC
ADC RSHLY
STA ARMY
LDA RSHLYH
SBC #$00
STA ARMYH
^2 LDX ARMN
LDA ARMY
CLC
ADC STOEY,X
STA HANDY
LDX TORSON
LDA TORDX,X
BMI >1
LDA HEADX
SEC
SBC TORDX,X
STA LSHLX
LDA #$00
SBC #$00
STA LSHLXH
JMP >2
^1 LDA HEADX
SEC
SBC TORDX,X
STA LSHLX
LDA #$00
ADC #$00
STA LSHLXH
^2 LDX LSHLN
LDA STOEX,X
BMI >1
CLC
ADC LSHLX
STA SHIX
LDA LSHLXH
ADC #$00
STA SHIXH
JMP >2
^1 CLC
ADC LSHLX
STA SHIX
LDA LSHLXH
SBC #$00
STA SHIXH
^2 LDX SHIN
LDA STOEX,X
BMI >1
CLC
ADC SHIX
STA WEPX
LDA SHIXH
ADC #$00
STA WEPXH
JMP >2
^1 CLC
ADC SHIX
STA WEPX
LDA SHIXH
SBC #$00
STA WEPXH
^2 LDX WEPN
LDA WTOBX,X
CLC
ADC WEPX
STA BLADEX
LDX TORSON
LDA TORDY,X
BMI >1
LDA HEADY
SEC
SBC TORDY,X
STA LSHLY
LDA #$00
SBC #$00
STA LSHLYH
JMP >2
^1 LDA HEADY
SEC
SBC TORDY,X
STA LSHLY
LDA #$00
ADC #$00
STA LSHLYH
^2 LDX LSHLN
LDA STOEY,X
BMI >1
CLC
ADC LSHLY
STA SHIY
LDA LSHLYH
ADC #$00
STA SHIYH
JMP >2
^1 CLC
ADC LSHLY
STA SHIY
LDA LSHLYH
SBC #$00
STA SHIYH
^2 LDX SHIN
LDA STOEY,X
BMI >1
CLC
ADC SHIY
STA WEPY
LDA SHIYH
ADC #$00
STA WEPYH
JMP >2
^1 CLC
ADC SHIY
STA WEPY
LDA SHIYH
SBC #$00
STA WEPYH
^2 LDX WEPN
LDA WTOBY,X
CLC
ADC WEPY
STA BLADEY
RTS
SIGHT LDA #$00
STA INVIEW
LDA RELHX
SEC
SBC REL2HX
LDA HEADXH
SBC HEA2XH
BEQ >1
CMP #$FF
BEQ >1
STA INVIEW
RTS
^1 LDA RELHY
SEC
SBC REL2HY
LDA HEADYH
SBC HEA2YH
BEQ >2
CMP #$FF
BEQ >2
STA INVIEW
^2 RTS
BODDRW LDA RELHX
SEC
SBC WINDX
LDA HEADXH
SBC WINDXH
BNE <2
LDA RELHY
SEC
SBC WINDY
LDA HEADYH
SBC WINDYH
BNE <2
JSR DRAFT
LDA WEPXH
ORA WEPYH
BNE SKPWEP
LDA WEPX
STA HDX
LDA WEPY
STA HDY
LDA WEPN
ORA #$50
STA HDN
LDA BLOOD+3
AND #$80
STA STATUS
JSR DHD
LDA WEPN
ORA #$60
STA HDN
JSR DHD
SKPWEP LDA LSHLXH
ORA LSHLYH
BNE SKPLSH
LDA LSHLX
STA HDX
LDA LSHLY
STA HDY
LDA LSHLN
ORA #$10
STA HDN
LDA BLOOD+1
AND #$80
STA STATUS
JSR DHD
SKPLSH LDA RSHLXH
ORA RSHLYH
BNE >1
LDA RSHLX
STA HDX
LDA RSHLY
STA HDY
LDA RSHLN
ORA #$10
STA HDN
LDA BLOOD+2
AND #$80
STA STATUS
JSR DHD
^1 LDA HEADX
STA HDX
LDA HEADY
STA HDY
LDA TORSON
ORA #$20
STA HDN
LDA BLOOD
AND #$80
STA STATUS
JSR DHD
LDA SHIXH
ORA SHIYH
BNE >1
LDA SHIX
STA HDX
LDA SHIY
STA HDY
LDA SHIN
ORA #$30
STA HDN
LDA BLOOD+4
AND #$80
STA STATUS
JSR DHD
^1 LDA ARMXH
ORA ARMYH
BNE >1
LDA ARMX
STA HDX
LDA ARMY
STA HDY
LDA ARMN
ORA #$40
STA HDN
LDA BLOOD+5
AND #$80
STA STATUS
JSR DHD
^1 LDA #$00
STA STATUS
LDA HEADX
STA HDX
LDA HEADY
STA HDY
LDA HEADN
STA HDN
JSR DHD
LDA #$05
STA COUNT
^1 LDX COUNT
LDA BLOOD-1,X
BEQ >2
AND #$80
BNE >2
LDA BLOOD-1,X
LSR
ADC #$6F
STA HDN
LDA HEAD2X-1,X
AND #$FE
STA HDX
LDA HEAD2Y-1,X
ORA #$01
STA HDY
JSR DHD
^2 DEC COUNT
BNE <1
RTS
DRAFT LDA FTN
BNE >1
JSR OFT
JSR OFT2
RTS
^1 LSR
AND #$03
BNE >8
JSR OFT
RTS
^8 CMP #$01
BNE >8
JSR >5
JSR >4
RTS
^8 CMP #$02
BEQ >9
JSR >6
JSR >3
RTS
^9 JSR OFT2
RTS
^1 LDA TORSON
CLC
ADC #$0C
ORA #$10
STA HDN
LDA RSHLX
STA HDX
LDA RSHLY
STA HDY
JSR DHD
RTS
^3 LDA TORSON
CLC
ADC #$04
ORA #$30
STA HDN
LDA LSHLX
STA HDX
LDA LSHLY
STA HDY
JSR DHD
RTS
^2 LDA TORSON
CLC
ADC #$0C
ORA #$10
STA HDN
LDA LSHLX
STA HDX
LDA LSHLY
STA HDY
JSR DHD
RTS
^4 LDA TORSON
CLC
ADC #$04
ORA #$30
STA HDN
LDA RSHLX
STA HDX
LDA RSHLY
STA HDY
JSR DHD
RTS
^5 LDA TORSON
CLC
ADC #$0C
AND #$0F
TAX
LDA LSHLX
SEC
SBC TORDX,X
CLC
ADC STOEX,X
STA HDX
LDA LSHLY
SEC
SBC TORDY,X
CLC
ADC STOEY,X
STA HDY
TXA
EOR #$08
ORA #$30
STA HDN
JSR DHD
JSR <2
RTS
^6 LDA TORSON
CLC
ADC #$0C
AND #$0F
TAX
LDA RSHLX
SEC
SBC TORDX,X
CLC
ADC STOEX,X
STA HDX
LDA RSHLY
SEC
SBC TORDY,X
CLC
ADC STOEY,X
STA HDY
TXA
EOR #$08
ORA #$30
STA HDN
JSR DHD
JSR <1
RTS
DHD JSR PDL
LDA STATUS
BNE DHDEX
LDA HDN
ASL
TAX
LDA HS,X
STA MSKL
LDA HS+1,X
STA MSKH
LDA DS,X
STA BLKL
LDA DS+1,X
STA BLKH
LDA HD,X
BMI >1
LDA HDX
SEC
SBC HD,X
BCC DHDEX
STA XVAL
JMP >2
^1 LDA HDX
SEC
SBC HD,X
BCS DHDEX
STA XVAL
^2 LDA HD+1,X
BMI DHSK2A
LDA HDY
SEC
SBC HD+1,X
BCC DHDEX
STA YVAL
JMP DHSK2B
DHSK2A LDA HDY
SEC
SBC HD+1,X
BCS DHDEX
STA YVAL
DHSK2B LDA HSIZ+1,X
STA YSIZE
LDA HSIZ,X
STA XSIZE
CMP #$03
BGE DHREM
CMP #$01
BEQ ONEBOT
JMP TWOBOT
DHREM JSR OUTBLK
DHDEX RTS
ONEBOT JSR XCALC
JSR YCALC
ONEOLP LDY #$01
LDA YLO
AND #$78
CMP #$78
BEQ NONEOT
LDA (BLKL),Y
STA BYTES
LDA (MSKL),Y
STA MASKS
LDY XHI
LDA #$00
STA BYTES+1
LDA #$FF
STA MASKS+1
LDX XLO
CPX #$06
BEQ ONESKP
INX
CPX #$04
BGE SL2
SLP ASL BYTES
ROL BYTES+1
SEC
ROL MASKS
ROL MASKS+1
DEX
BPL SLP
LSR BYTES
LDA MASKS
LSR
EOR #$7F
CPY #31
BGE ONES1A
ORA (YLO),Y
EOR BYTES
STA (YLO),Y
ONES1A INY
CPY #31
BGE NONEOT
LDA MASKS+1
AND #$7F
EOR #$7F
ORA (YLO),Y
EOR BYTES+1
STA (YLO),Y
NONEOT JSR DLIN
INC BLKL
BNE NONE2
INC BLKH
NONE2 INC MSKL
BNE NONE3
INC MSKH
NONE3 DEC YSIZE
BNE ONEOLP
RTS
SL2 LSR BYTES
ROR BYTES+1
SEC
ROR MASKS
ROR MASKS+1
INX
CPX #$07
BLT SL2
ONESKP LSR BYTES+1
LDA MASKS+1
LSR
EOR #$7F
CPY #31
BGE ONES1B
ORA (YLO),Y
EOR BYTES+1
STA (YLO),Y
ONES1B INY
CPY #31
BGE NONEOT
LDA BYTES
PHA
AND #$7F
STA BYTES
PLA
AND #$80
EOR MASKS
BPL ONES3B
AND #$7F
EOR #$7F
ORA (YLO),Y
EOR BYTES
STA (YLO),Y
JMP NONEOT
ONES3B EOR #$7F
ORA (YLO),Y
EOR BYTES
STA (YLO),Y
INY
LDA #$01
ORA (YLO),Y
STA (YLO),Y
JMP NONEOT
TWOBOT JSR XCALC
JSR YCALC
TWOOLP LDY #$01
LDA YLO
AND #$78
CMP #$78
BEQ NTWOOT
LDA (BLKL),Y
STA BYTES
LDA (MSKL),Y
STA MASKS
INY
LDA (BLKL),Y
STA BYTES+1
LDA (MSKL),Y
STA MASKS+1
LDY XHI
LDA #$00
STA BYTES+2
LDA #$FF
STA MASKS+2
LDX XLO
CPX #$06
BNE TWOJ
JMP TWOSKP
TWOJ INX
CPX #$04
BGE TSL2
TSLP ASL BYTES
ROL BYTES+1
ROL BYTES+2
SEC
ROL MASKS
ROL MASKS+1
ROL MASKS+2
DEX
BPL TSLP
LSR BYTES
ASL BYTES+1
ROL BYTES+2
LSR BYTES+1
LSR MASKS
ASL MASKS+1
ROL MASKS+2
LSR MASKS+1
CPY #31
BGE TWOS1A
LDA MASKS
EOR #$7F
ORA (YLO),Y
EOR BYTES
STA (YLO),Y
TWOS1A INY
CPY #31
BGE TWOS2A
LDA MASKS+1
EOR #$7F
ORA (YLO),Y
EOR BYTES+1
STA (YLO),Y
TWOS2A INY
CPY #31
BGE NTWOOT
LDA MASKS+2
AND #$7F
EOR #$7F
ORA (YLO),Y
EOR BYTES+2
STA (YLO),Y
NTWOOT JSR DLIN
LDA BLKL
CLC
ADC #$02
STA BLKL
LDA BLKH
ADC #$00
STA BLKH
LDA MSKL
CLC
ADC #$02
STA MSKL
LDA MSKH
ADC #$00
STA MSKH
DEC YSIZE
BEQ TSLSK
JMP TWOOLP
TSLSK RTS
TSL2 LSR BYTES+1
ROR BYTES
ROR BYTES+2
SEC
ROR MASKS+1
ROR MASKS
ROR MASKS+2
INX
CPX #$07
BLT TSL2
TWOSKP LSR BYTES+2
LSR MASKS+2
ASL BYTES
ROL BYTES+1
LSR BYTES
ASL MASKS
ROL MASKS+1
LSR MASKS
CPY #31
BGE TWOS1B
LDA MASKS+2
EOR #$7F
ORA (YLO),Y
EOR BYTES+2
STA (YLO),Y
TWOS1B INY
CPY #31
BGE TWOS2B
LDA MASKS
EOR #$7F
ORA (YLO),Y
EOR BYTES
STA (YLO),Y
TWOS2B INY
CPY #31
BGE NTWOOT
LDA BYTES+1
AND #$7F
STA BYTES+1
LDA MASKS+1
BPL TWOS3B
AND #$7F
EOR #$7F
ORA (YLO),Y
EOR BYTES+1
STA (YLO),Y
JMP NTWOOT
TWOS3B EOR #$7F
ORA (YLO),Y
EOR BYTES+1
STA (YLO),Y
INY
LDA #$01
ORA (YLO),Y
STA (YLO),Y
JMP NTWOOT
OFT LDA TORSON
CLC
ADC #$02
AND #$0F
TAX
ADC #$03
AND #$0F
ORA #$30
STA HDN
LDA HEADX
ADC TORDX,X
STA HDX
LDA HEADY
CLC
ADC TORDY,X
STA HDY
JSR DHD
RTS
OFT2 LDA TORSON
SEC
SBC #$02
AND #$0F
TAX
CLC
ADC #$05
AND #$0F
ORA #$30
STA HDN
LDA HEADX
SEC
SBC TORDX,X
STA HDX
LDA HEADY
SEC
SBC TORDY,X
STA HDY
JSR DHD
RTS
ICL "PRELINK"