antoine-source/yourtour/THREE.S

4037 lines
71 KiB
ArmAsm

*
* Your tour of the Apple IIgs
*
* (c) 1989, Apple Computer
* (s) 2020, Antoine Vignau
*
mx %00
rel
lst off
*-------------------------------
use THREE.E
use THREE.X
use 4/Event.Macs
use 4/Load.Macs
use 4/Mem.Macs
use 4/Misc.Macs
use 4/NoteSeq.Macs
use 4/QD.Macs
use 4/QDAux.Macs
use 4/Util.Macs
*-------------------------------
L040000 ENT
PHD
TSC
SEC
SBC #$00F1
TCD
ADC #$00E0
TCS
STZ $E8
STZ $EA
PEI $F9
PEI $F7
JSL L04023C
PLY
PLY
_CompactMem
BCS L040025
LDA #$0000
L040025 STAL L0B0002
PEI $FD
PEI $FB
LDA L0B0066
PHA
PEI $FF
PEA $0000
PEA $0000
PEI $F9
PEI $F7
_ReallocHandle
BCS L040049
LDA #$0000
L040049 STAL L0B0002
LDA L0B0002
STA $E2
LDA $E2
CMP #$0201
BEQ L04005C
BRL L0401CB
L04005C LDA #$0033
STA $E6
L040061 STZ $E4
BRL L04014C
L040066 LDA $E4
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EC
STX $EE
LDA [$EC]
CMP $E6
BEQ L040090
BRL L04014A
L040090 PEA ^L0C261F
PEA L0C261F
LDA $E4
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EC
STX $EE
LDA $EC
LDX $EE
CLC
ADC #$0006
BCC L0400C2
INX
L0400C2 PHX
PHA
JSL L010DD9
PLY
PLY
PLY
PLY
TAY
BNE L0400D2
BRL L04014A
L0400D2 LDA $E4
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EC
STX $EE
LDY #$0004
LDA [$EC],Y
TAX
LDY #$0002
LDA [$EC],Y
PHX
PHA
JSL L04023C
PLY
PLY
PEA $019B
JSL L021DFD
PLY
PEA ^L0C2620
PEA L0C2620
LDA $E4
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EC
STX $EE
LDA $EC
LDX $EE
CLC
ADC #$0006
BCC L040140
INX
L040140 PHX
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
L04014A INC $E4
L04014C LDA $E4
SEC
SBC #$0032
BVS L040157
EOR #$8000
L040157 BMI L04015C
BRL L040066
L04015C _CompactMem
BCS L040168
LDA #$0000
L040168 STAL L0B0002
DEC $E6
PHX
PHA
_MaxBlock
BCS L04017C
LDA #$0000
L04017C STAL L0B0002
LDX $FD
LDA $FB
JSL L010B98
BCS L04019A
LDA $E6
SEC
SBC #$0000
BVS L040195
EOR #$8000
L040195 BPL L04019A
BRL L040061
L04019A PEI $FD
PEI $FB
LDA L0B0066
PHA
PEI $FF
PEA $0000
PEA $0000
PEI $F9
PEI $F7
_ReallocHandle
BCS L0401BA
LDA #$0000
L0401BA STAL L0B0002
LDA L0B0002
STA $E2
PEA $01A4
JSL L021DFD
PLY
L0401CB LDX $EA
LDA $E8
TAY
TSC
CLC
ADC #$0010
TCS
TYA
PLD
RTL
L0401D9 ENT
PHD
TSC
SEC
SBC #$00F7
TCD
ADC #$00EE
TCS
STZ $F0
PEI $FF
PEI $FD
_CheckHandle
BCS L0401F6
LDA #$0000
L0401F6 STAL L0B0002
LDA L0B0002
BNE L040230
LDY #$0002
LDA [$FD],Y
TAX
LDA [$FD]
STX $F2
ORA $F2
BEQ L040230
PHX
PHA
PEI $FF
PEI $FD
_GetHandleSize
BCS L04021F
LDA #$0000
L04021F STAL L0B0002
PLA
PLX
STX $F2
ORA $F2
BEQ L040230
LDA #$0001
STA $F0
L040230 LDA $F0
TAY
TSC
CLC
ADC #$0008
TCS
TYA
PLD
RTL
L04023C ENT
PHD
TSC
SEC
SBC #$00F7
TCD
ADC #$00F0
TCS
PEI $FF
PEI $FD
_HUnlock
BCS L040257
LDA #$0000
L040257 STAL L0B0002
PEA $01F1
JSL L021DFD
PLY
PEA $0001
PEI $FF
PEI $FD
_SetPurge
BCS L040276
LDA #$0000
L040276 STAL L0B0002
PEA $01F2
JSL L021DFD
PLY
PEI $FF
PEI $FD
_PurgeHandle
BCS L040292
LDA #$0000
L040292 STAL L0B0002
PEA $01F3
JSL L021DFD
PLY
TSC
CLC
ADC #$0006
TCS
PLD
RTL
L0402A6 ENT
rtl ; 202404 - LoGo - Segments remain in memory
* PHD
* TSC
* SEC
* SBC #$00F7
* TCD
* ADC #$00EE
* TCS
* PHA
* PHA
* PHA
* LDA $FF
* PHA
* LDA $FD
* PHA
* _UnloadSeg
* BCC L0402C6
* STA L0B0002
*L0402C6 PLA
* PLA
* PLA
* STA $F0
* PEA $000A
* JSL L021DFD
* PLY
* TSC
* CLC
* ADC #$0008
* TCS
* PLD
* RTL
L0402DB ENT
PHD
TSC
SEC
SBC #$00F1
TCD
ADC #$00E2
TCS
PEA $0000
PEA $0800
PEI $FB
PEI $F9
JSL L025194
PLY
PLY
PLY
PLY
LDAL L0C0FEE
STA $E4
LDA $F7
PHA
LDA #$0200
SEC
JSL L010AAE
PLA
LDX #$0000
TAY
BPL L040311
DEX
L040311 STX $E8
STA $E6
JSL L050FB3
PEA $0000
TDC
CLC
ADC #$00E4
PHA
PEA $0016
LDX #$0000
JSL GSOS2
BCS L040331
LDA #$0000
L040331 STAL L0B0002
PEA $01FF
JSL L021DFD
PLY
LDX $FB
LDA $F9
PHA
TXA
STAL L0C0FF2
PLA
STAL L0C0FF0
LDX #$0000
LDA #$0800
PHA
TXA
STAL L0C0FF6
PLA
STAL L0C0FF4
PEA ^L0C0FEE
PEA L0C0FEE
PEA $0012
LDX #$0000
JSL GSOS2
BCS L040372
LDA #$0000
L040372 STAL L0B0002
PEA $0200
JSL L021DFD
PLY
LDA $F7
STA L0B006C
LDA #$0000
STA [$FD]
TSC
CLC
ADC #$000E
TCS
PLD
RTL
L040390 ENT
PHD
TSC
SEC
SBC #$00F3
TCD
ADC #$00EA
TCS
STZ $EC
PEI $FF
PEI $FD
LDX $FB
LDA $F9
CLC
ADC #$0001
PHA
TXA
ADC #$0000
TAX
PLA
PHX
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
LDX $FB
LDA $F9
CLC
ADC #$0001
PHA
TXA
ADC #$0000
TAX
PLA
PHX
PHA
PEA ^L0C2621
PEA L0C2621
JSL L025330
PLY
PLY
PLY
PLY
LDX $FB
LDA $F9
CLC
ADC #$0001
PHA
TXA
ADC #$0000
TAX
PLA
PHX
PHA
JSL L010D87
PLY
PLY
SEP #$20
STA [$F9]
REP #$20
PEI $FB
PEI $F9
JSL L040961
PLY
PLY
STA $EC
TAY
BNE L04044B
PEI $FF
PEI $FD
LDX $FB
LDA $F9
CLC
ADC #$0001
PHA
TXA
ADC #$0000
TAX
PLA
PHX
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
LDX $FB
LDA $F9
CLC
ADC #$0001
PHA
TXA
ADC #$0000
TAX
PLA
PHX
PHA
JSL L010D87
PLY
PLY
SEP #$20
STA [$F9]
REP #$20
PEI $FB
PEI $F9
JSL L040961
PLY
PLY
STA $EC
L04044B LDA $EC
BEQ L040457
LDAL L0C0FFC
STAL L0C0FEE
L040457 LDA $EC
TAY
TSC
CLC
ADC #$0008
TCS
TYA
PLD
RTL
L040463 ENT
PHD
TSC
SEC
SBC #$00F7
TCD
ADC #$00BE
TCS
PEA ^L0C262A
PEA L0C262A
PEA ^L0C1124
PEA L0C1124
JSL L0110F7
PLY
PLY
PLY
PLY
STZ L0B0068
PEI $FF
PEI $FD
PEA $0000
TDC
CLC
ADC #$00C0
PHA
JSL L040390
PLY
PLY
PLY
PLY
TAY
BNE L0404C0
PEA $0000
PEA $0800
PEA ^L0C1252
PEA L0C1252
JSL L025194
PLY
PLY
PLY
PLY
STZ L0B006A
STZ L0B006C
LDA #$0001
STA L0B0088
BRL L040500
L0404C0 STZ L0B006C
PEA $0000
TDC
CLC
ADC #$00C1
PHA
PEA ^L0C1221
PEA L0C1221
JSL L0110F7
PLY
PLY
PLY
PLY
LDA $C0
SEP #$20
STAL L0C1220
REP #$20
PEA ^L0B006A
PEA L0B006A
PEA ^L0C1252
PEA L0C1252
LDA L0B006C
PHA
JSL L0402DB
PLY
PLY
PLY
PLY
PLY
STZ L0B0088
L040500 TSC
CLC
ADC #$0038
TCS
PLD
RTL
L040508 ENT
PHD
TSC
SEC
SBC #$00EB
TCD
ADC #$00E2
TCS
LDA #$0001
SEP #$20
STA $E4
REP #$20
LDA #$0000
STA [$FD]
L040521 LDA $E4
AND #$00FF
BNE L04052B
BRL L040611
L04052B LDA [$F5]
SEC
SBC #$0800
BVS L040536
EOR #$8000
L040536 BPL L040557
LDA L0B006C
CLC
ADC #$0004
STA L0B006C
PEI $F7
PEI $F5
PEI $F3
PEI $F1
LDA L0B006C
PHA
JSL L0402DB
PLY
PLY
PLY
PLY
PLY
L040557 LDA [$F5]
LDX #$0000
TAY
BPL L040560
DEX
L040560 PHX
PHA
LDX $F3
LDA $F1
JSL L010922
PLA
PLX
STA $E6
STX $E8
LDA [$E6]
SEP #$20
STA $E5
REP #$20
LDA $E5
AND #$00FF
AND #$0080
TAY
BEQ L0405A8
LDX $FB
LDA $F9
INC $F9
BNE L04058D
INC $FB
L04058D STA $E6
STX $E8
LDA #$0020
SEP #$20
STA [$E6]
REP #$20
LDA $E5
AND #$00FF
AND #$FF7F
SEP #$20
STA $E5
REP #$20
L0405A8 LDA $E5
AND #$00FF
CMP #$0000
BNE L0405C9
SEP #$20
STZ $E4
REP #$20
LDA #$0000
SEP #$20
STA [$F9]
REP #$20
LDA #$0001
STA L0B0088
BRA L04060E
L0405C9 LDA $E5
AND #$00FF
CMP #$000D
BEQ L0405DD
LDA $E5
AND #$00FF
CMP #$000A
BNE L0405F3
L0405DD SEP #$20
STZ $E4
REP #$20
LDA #$0000
SEP #$20
STA [$F9]
REP #$20
LDA [$F5]
INC
STA [$F5]
BRA L04060E
L0405F3 LDX $FB
LDA $F9
INC $F9
BNE L0405FD
INC $FB
L0405FD STA $E6
STX $E8
LDA $E5
SEP #$20
STA [$E6]
REP #$20
LDA [$F5]
INC
STA [$F5]
L04060E BRL L040521
L040611 TSC
CLC
ADC #$0008
TCS
PLD
RTL
L040619 ENT
PHD
TSC
SEC
SBC #$00FB
TCD
ADC #$00F4
TCS
LDA L0B0088
BNE L04064D
PEA ^L0B0068
PEA L0B0068
PEA ^L0C1124
PEA L0C1124
PEA ^L0B006A
PEA L0B006A
PEA ^L0C1252
PEA L0C1252
JSL L040508
TAY
TSC
CLC
ADC #$0010
TCS
TYA
L04064D TSC
CLC
ADC #$0006
TCS
PLD
RTL
L040655 ENT
PHD
TSC
SEC
SBC #$00F7
TCD
ADC #$00F0
TCS
LDA L0B006C
PHA
LDA #$0200
SEC
JSL L010AAE
PLA
LDX #$0000
TAY
BPL L040674
DEX
L040674 PHX
PHA
LDY #$0002
LDA [$FD],Y
TAX
LDA [$FD]
JSL L010B98
BEQ L04068B
BVS L040689
EOR #$8000
L040689 BMI L0406BA
L04068B LDA L0B006C
PHA
LDA #$0200
SEC
JSL L010AAE
PLA
CLC
ADC #$0800
LDX #$0000
TAY
BPL L0406A3
DEX
L0406A3 PHX
PHA
LDY #$0002
LDA [$FD],Y
TAX
LDA [$FD]
JSL L010B98
BEQ L0406BA
BVS L0406B8
EOR #$8000
L0406B8 BMI L0406E2
L0406BA PEA ^L0B006A
PEA L0B006A
PEA ^L0C1252
PEA L0C1252
LDA #$0200
PHA
LDY #$0002
LDA [$FD],Y
TAX
LDA [$FD]
SEC
JSL L01092D
PLY
PHA
JSL L0402DB
PLY
PLY
PLY
PLY
PLY
L0406E2 LDA L0B006C
PHA
LDA #$0200
SEC
JSL L010AAE
PLA
LDX #$0000
TAY
BPL L0406F6
DEX
L0406F6 PHX
PHA
LDY #$0002
LDA [$FD],Y
TAX
LDA [$FD]
JSL L010AA3
PLA
PLX
STA L0B006A
PEA ^L0C262B
PEA L0C262B
PEA ^L0C1124
PEA L0C1124
JSL L0110F7
PLY
PLY
PLY
PLY
STZ L0B0068
TSC
CLC
ADC #$0006
TCS
PLD
RTL
L040728 ENT
PHD
TSC
SEC
SBC #$00F7
TCD
ADC #$00EA
TCS
LDA L0B008A
BEQ L04073C
JSL L03096B
L04073C STZ L0B006E
PEA $0000
PEA $00B4
PEA ^L0C1006
PEA L0C1006
JSL L025194
PLY
PLY
PLY
PLY
PEA $0000
PEA $0004
PEA ^L0B005A
PEA L0B005A
JSL L025194
PLY
PLY
PLY
PLY
PEA $0000
PEA $0004
PEA ^L0B005E
PEA L0B005E
JSL L025194
PLY
PLY
PLY
PLY
LDA #$0001
STA L0B0096
LDA #$0001
STA L0B009A
LDA #$0001
STA L0B009C
LDA #$0001
STA L0B0092
JSL L0503D4
TAY
BEQ L0407AD
PEA $0000
_StopSeq
BCS L0407A9
LDA #$0000
L0407A9 STAL L0B0002
L0407AD LDA L0B008E
BEQ L0407B9
JSL L030EB7
STZ L0B008E
L0407B9 STZ $F0
BRA L0407EF
L0407BD PEA $0007
PEI $F0
PEA $0000
_SetColorEntry
BCS L0407D1
LDA #$0000
L0407D1 STAL L0B0002
PEA $0008
PEI $F0
PEA $0000
_SetColorEntry
BCS L0407E9
LDA #$0000
L0407E9 STAL L0B0002
INC $F0
L0407EF LDA $F0
SEC
SBC #$0010
BVS L0407FA
EOR #$8000
L0407FA BPL L0407BD
PEA $0087
LDA L0B00B9
PHA
PEA $0000
JSL L0321FD
PLY
PLY
PLY
PEA $0001
JSL L030F81
PLY
LDAL L0C0FEE
BEQ L04083B
PEA ^L0C0FEE
PEA L0C0FEE
PEA $0014
LDX #$0000
JSL GSOS2
BCS L040830
LDA #$0000
L040830 STAL L0B0002
LDA #$0000
STAL L0C0FEE
L04083B PHX
PHA
PEA $0000
PEA $0001
LDA L0B0066
PHA
PEA $0000
PEA $0000
PEA $0000
_NewHandle
BCS L04085C
LDA #$0000
L04085C STAL L0B0002
PLA
PLX
STX $EE
STA $EC
PEA $4556
JSL L021DFD
PLY
LDA L0B00A6
BNE L040876
BRL L040925
L040876 PEI $FF
PEI $FD
JSL L0242F7
PLY
PLY
PEA ^L0C262C
PEA L0C262C
PEI $FF
PEI $FD
JSL L010DD9
PLY
PLY
PLY
PLY
TAY
BNE L0408D4
LDA L0B00A8
BEQ L0408D1
PEA ^L0E004A
PEA L0E004A
JSL L0402A6
PLY
PLY
STZ L0B00A8
PEA $0100
PEA $0000
PEA $4200
PEI $EE
PEI $EC
JSL L040000
PLY
PLY
PLY
PLY
PLY
PEI $EE
PEI $EC
JSL L04023C
PLY
PLY
PEA $4557
JSL L021DFD
PLY
L0408D1 BRL L040925
L0408D4 PEA ^L0C2633
PEA L0C2633
PEI $FF
PEI $FD
JSL L010DD9
PLY
PLY
PLY
PLY
TAY
BEQ L040925
LDA L0B00AA
BEQ L040925
PEA ^L0E0074
PEA L0E0074
JSL L0402A6
PLY
PLY
STZ L0B00AA
PEA $0100
PEA $0000
PEA $6200
PEI $EE
PEI $EC
JSL L040000
PLY
PLY
PLY
PLY
PLY
PEI $EE
PEI $EC
JSL L04023C
PLY
PLY
PEA $455F
JSL L021DFD
PLY
L040925 PEA $0100
PEA $0000
PEA $6200
PEI $EE
PEI $EC
JSL L040000
PLY
PLY
PLY
PLY
PLY
PEI $EE
PEI $EC
_DisposeHandle
BCS L04094B
LDA #$0000
L04094B STAL L0B0002
PEI $FF
PEI $FD
JSL L040463
PLY
PLY
TSC
CLC
ADC #$000C
TCS
PLD
RTL
L040961 PHD
TSC
SEC
SBC #$00F7
TCD
ADC #$00BC
TCS
STZ $BE
PEI $FF
PEI $FD
PEA $0000
TDC
CLC
ADC #$00C0
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C2638
PEA L0C2638
PEA $0000
TDC
CLC
ADC #$00C1
PHA
JSL L0252AD
PLY
PLY
PLY
PLY
PEA $0000
TDC
CLC
ADC #$00C1
PHA
JSL L010D87
PLY
PLY
SEP #$20
STA $C0
REP #$20
LDX #$0000
TDC
CLC
ADC #$00C0
PHA
TXA
STAL L0C1000
PLA
STAL L0C0FFE
PEA ^L0C0FFC
PEA L0C0FFC
PEA $0010
LDX #$0000
JSL GSOS2
BCS L0409D7
LDA #$0000
L0409D7 STAL L0B0002
LDA L0B0002
STA $BE
TAY
BNE L0409E6
BRL L040A45
L0409E6 PEI $FF
PEI $FD
PEA $0000
TDC
CLC
ADC #$00C0
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C263D
PEA L0C263D
PEA $0000
TDC
CLC
ADC #$00C1
PHA
JSL L0252AD
PLY
PLY
PLY
PLY
PEA $0000
TDC
CLC
ADC #$00C1
PHA
JSL L010D87
PLY
PLY
SEP #$20
STA $C0
REP #$20
PEA ^L0C0FFC
PEA L0C0FFC
PEA $0010
LDX #$0000
JSL GSOS2
BCS L040A3C
LDA #$0000
L040A3C STAL L0B0002
LDA L0B0002
STA $BE
L040A45 LDA $BE
BEQ L040A4E
LDA #$0000
BRA L040A51
L040A4E LDA #$0001
L040A51 TAY
TSC
CLC
ADC #$003A
TCS
TYA
PLD
RTL
L040A5B PHD
TSC
SEC
SBC #$00F3
TCD
ADC #$00B0
TCS
PEI $FF
PEI $FD
PEA $0000
TDC
CLC
ADC #$00B2
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA $0000
TDC
CLC
ADC #$00B2
PHA
JSL L0244F2
PLY
PLY
LDX #$0000
TDC
CLC
ADC #$00B2
STX $E8
STA $E6
JSL L050FB3
PEA $0000
TDC
CLC
ADC #$00E4
PHA
PEA $0010
LDX #$0000
JSL GSOS2
BCS L040AB2
LDA #$0000
L040AB2 STAL L0B0002
LDA L0B0002
CMP #$0000
BNE L040AC8
LDA $E4
STA [$F9]
LDA [$F9]
BRA L040AD5
BRA L040AD5
L040AC8 LDA L0B0002
BEQ L040AD2
LDA #$0000
BRA L040AD5
L040AD2 LDA #$0001
L040AD5 TAY
TSC
CLC
ADC #$0042
TCS
TYA
PLD
RTL
L040ADF ENT
PHD
TSC
SEC
SBC #$00F1
TCD
ADC #$00A2
TCS
STZ $A6
LDA #$FFFF
STA $A4
PEA ^L0C2641
PEA L0C2641
PEA $0000
TDC
CLC
ADC #$00DA
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C2646
PEA L0C2646
PEA $0000
TDC
CLC
ADC #$00E0
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C264B
PEA L0C264B
PEA $0000
TDC
CLC
ADC #$00E6
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEI $FD
PEI $FB
PEA $0000
TDC
CLC
ADC #$00A8
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEI $FF
PEA $0000
TDC
CLC
ADC #$00A8
PHA
PEI $F9
PEI $F7
JSL L040C05
PLY
PLY
PLY
PLY
PLY
STA $A4
LDA $A4
BNE L040BE0
STZ $A6
L040B6B LDA $A6
SEC
SBC #$0003
BVS L040B76
EOR #$8000
L040B76 BMI L040BE0
LDA $A4
BNE L040BE0
PEI $FD
PEI $FB
PEA $0000
TDC
CLC
ADC #$00A8
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA $0000
TDC
CLC
ADC #$00A8
PHA
LDA $A6
PHA
LDA #$0006
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDX #$0000
TDC
CLC
ADC #$00DA
JSL L010922
JSL L025330
PLY
PLY
PLY
PLY
TAY
BEQ L040BDC
PEI $FF
PEA $0000
TDC
CLC
ADC #$00A8
PHA
PEI $F9
PEI $F7
JSL L040C05
PLY
PLY
PLY
PLY
PLY
STA $A4
L040BDC INC $A6
BRA L040B6B
L040BE0 LDA $A4
BEQ L040BF9
PEA $0000
TDC
CLC
ADC #$00A8
PHA
PEI $FD
PEI $FB
JSL L0110F7
PLY
PLY
PLY
PLY
L040BF9 LDA $A4
TAY
TSC
CLC
ADC #$004E
TCS
TYA
PLD
RTL
L040C05 PHD
TSC
SEC
SBC #$00F1
TCD
ADC #$004B
TCS
LDA $FF
BEQ L040C18
STZ $E2
BRA L040C1D
L040C18 LDA #$0001
STA $E2
L040C1D PEA ^L0C2651
PEA L0C2651
PEA $0000
TDC
CLC
ADC #$004D
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C2657
PEA L0C2657
PEA $0000
TDC
CLC
ADC #$0056
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C265C
PEA L0C265C
PEA $0000
TDC
CLC
ADC #$005F
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C265D
PEA L0C265D
PEA $0000
TDC
CLC
ADC #$0068
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C2664
PEA L0C2664
PEA $0000
TDC
CLC
ADC #$0071
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C266A
PEA L0C266A
PEA $0000
TDC
CLC
ADC #$007A
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C266B
PEA L0C266B
PEA $0000
TDC
CLC
ADC #$0083
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C2671
PEA L0C2671
PEA $0000
TDC
CLC
ADC #$008C
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C2677
PEA L0C2677
PEA $0000
TDC
CLC
ADC #$0095
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C267D
PEA L0C267D
PEA $0000
TDC
CLC
ADC #$009E
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEA ^L0C267E
PEA L0C267E
PEA $0000
TDC
CLC
ADC #$00A7
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
PEI $FD
PEI $FB
JSL L0242F7
PLY
PLY
STZ $E8
LDA #$000A
STA $E4
PEI $FD
PEI $FB
PEA ^L0C2684
PEA L0C2684
JSL L025330
PLY
PLY
PLY
PLY
TAY
BEQ L040D43
BRL L040D88
L040D43 LDA [$FB]
AND #$00FF
BRL L040D79
L040D4B LDA #$0000
CLC
ADC $E2
STA $E8
LDA #$0002
STA $E4
BRL L040D88
L040D5B LDA #$0003
CLC
ADC $E2
STA $E8
LDA #$0007
STA $E4
BRL L040D88
L040D6B LDA #$0008
STA $E8
LDA #$000A
STA $E4
BRA L040D88
BRA L040D88
L040D79 CMP #$0064
BEQ L040D6B
CMP #$0067
BEQ L040D4B
CMP #$0073
BEQ L040D5B
L040D88 PEI $FD
PEI $FB
PEA $0000
TDC
CLC
ADC #$00B0
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
LDA $E8
PHA
LDA #$0009
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDX #$0000
TDC
CLC
ADC #$004D
JSL L010922
PEA $0000
TDC
CLC
ADC #$00B0
PHA
JSL L010CFD
PLY
PLY
PLY
PLY
LDA $FF
BEQ L040DF4
PEA $0000
TDC
CLC
ADC #$00B0
PHA
PEA $0000
TDC
CLC
ADC #$00EA
PHA
JSL L040A5B
PLY
PLY
PLY
PLY
STA $E6
TAY
BEQ L040DF2
LDA $EA
STA [$F7]
L040DF2 BRA L040E17
L040DF4 PEA $0000
TDC
CLC
ADC #$00B0
PHA
PEA $0000
TDC
CLC
ADC #$00EA
PHA
JSL L040F12
PLY
PLY
PLY
PLY
STA $E6
TAY
BEQ L040E17
LDA $EA
STA [$F7]
L040E17 INC $E8
LDA $E8
SEC
SBC $E4
BEQ L040E27
BVS L040E25
EOR #$8000
L040E25 BMI L040E2E
L040E27 LDA $E6
BNE L040E2E
BRL L040D88
L040E2E LDA $E6
BEQ L040E47
PEA $0000
TDC
CLC
ADC #$00B0
PHA
PEI $FD
PEI $FB
JSL L0110F7
PLY
PLY
PLY
PLY
L040E47 LDA $E6
TAY
TSC
CLC
ADC #$00A5
TCS
TYA
PLD
RTL
L040E53 ENT
PHD
TSC
SEC
SBC #$00F7
TCD
ADC #$00B8
TCS
LDA #$FFFF
STA $BA
PEA $0000
PEI $FF
PEI $FD
PEA $0000
TDC
CLC
ADC #$00BE
PHA
JSL L040ADF
PLY
PLY
PLY
PLY
PLY
TAY
BEQ L040E91
LDA $BE
STA $BA
PEA $0000
PEI $BA
JSL L041131
PLY
PLY
BRL L040F06
L040E91 PEA $0001
PEI $FF
PEI $FD
PEA $0000
TDC
CLC
ADC #$00BC
PHA
JSL L040ADF
PLY
PLY
PLY
PLY
PLY
TAY
BEQ L040F01
JSL L04100F
STA $BE
PEI $FF
PEI $FD
PEI $BC
PEI $BE
JSL L0412BB
PLY
PLY
PLY
PLY
LDA $BE
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F2
STX $F4
LDA #$0000
STA [$F2]
PEI $BE
JSL L04175D
PLY
LDA $BE
STA $BA
PEA $0001
PEI $BA
JSL L041131
PLY
PLY
BRA L040F06
L040F01 LDA #$FFFF
STA $BA
L040F06 LDA $BA
TAY
TSC
CLC
ADC #$003E
TCS
TYA
PLD
RTL
L040F12 PHD
TSC
SEC
SBC #$00F3
TCD
ADC #$00E6
TCS
LDA #$0000
STA [$F9]
STZ $EC
L040F24 LDA $EC
BNE L040F87
LDA [$F9]
SEC
SBC #$0032
BVS L040F33
EOR #$8000
L040F33 BMI L040F87
LDA [$F9]
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EE
STX $F0
LDA $EE
LDX $F0
CLC
ADC #$0006
BCC L040F61
INX
L040F61 PHX
PHA
PEI $FF
PEI $FD
JSL L010DD9
PLY
PLY
PLY
PLY
TAY
BEQ L040F77
LDA #$0000
BRA L040F7A
L040F77 LDA #$0001
L040F7A STA $EC
LDA $EC
BNE L040F85
LDA [$F9]
INC
STA [$F9]
L040F85 BRA L040F24
L040F87 LDA $EC
BNE L040F8E
BRL L041003
L040F8E LDA [$F9]
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EE
STX $F0
LDY #$0004
LDA [$EE],Y
TAX
LDY #$0002
LDA [$EE],Y
PHX
PHA
JSL L0401D9
PLY
PLY
TAY
BNE L041003
PEA ^L0C2685
PEA L0C2685
LDA [$F9]
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EE
STX $F0
LDA $EE
LDX $F0
CLC
ADC #$0006
BCC L040FF7
INX
L040FF7 PHX
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
STZ $EC
L041003 LDA $EC
TAY
TSC
CLC
ADC #$000C
TCS
TYA
PLD
RTL
L04100F PHD
TSC
SEC
SBC #$00FB
TCD
ADC #$00EA
TCS
LDA #$FFFF
STA $F2
L04101F INC $F2
LDA $F2
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F6
STX $F8
LDY #$0004
LDA [$F6],Y
TAX
LDY #$0002
LDA [$F6],Y
PHX
PHA
JSL L0401D9
PLY
PLY
TAY
BEQ L0410A7
PEA ^L0C2686
PEA L0C2686
LDA $F2
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F6
STX $F8
LDA $F6
LDX $F8
CLC
ADC #$0006
BCC L04108A
INX
L04108A PHX
PHA
JSL L010DD9
PLY
PLY
PLY
PLY
TAY
BEQ L0410A7
LDA $F2
SEC
SBC #$0032
BVS L0410A2
EOR #$8000
L0410A2 BMI L0410A7
BRL L04101F
L0410A7 LDA $F2
SEC
SBC #$0032
BVS L0410B2
EOR #$8000
L0410B2 BMI L0410B7
BRL L041125
L0410B7 STZ $F0
STZ $F4
BRL L041118
L0410BE LDA $F4
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F6
STX $F8
LDA [$F6]
SEC
SBC $F0
BEQ L041116
BVS L0410EB
EOR #$8000
L0410EB BPL L041116
LDA $F4
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F6
STX $F8
LDA [$F6]
STA $F0
LDA $F4
STA $F2
L041116 INC $F4
L041118 LDA $F4
SEC
SBC #$0032
BVS L041123
EOR #$8000
L041123 BPL L0410BE
L041125 LDA $F2
TAY
TSC
CLC
ADC #$0010
TCS
TYA
PLD
RTL
L041131 PHD
TSC
SEC
SBC #$00F7
TCD
ADC #$00E8
TCS
LDA $FF
BEQ L041145
LDA #$0032
BRA L041168
L041145 LDA $FD
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F2
STX $F4
LDA [$F2]
L041168 STA $EE
STZ $F0
BRL L04127D
L04116F LDA $F0
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F2
STX $F4
LDY #$0004
LDA [$F2],Y
TAX
LDY #$0002
LDA [$F2],Y
PHX
PHA
JSL L0401D9
PLY
PLY
TAY
BNE L0411A9
BRL L04123F
L0411A9 PEA $0000
LDA $F0
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F2
STX $F4
LDY #$0004
LDA [$F2],Y
TAX
LDY #$0002
LDA [$F2],Y
PHX
PHA
_SetPurge
BCS L0411E6
LDA #$0000
L0411E6 STAL L0B0002
LDA $F0
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F2
STX $F4
LDA [$F2]
SEC
SBC $EE
BVS L041215
EOR #$8000
L041215 BMI L04123D
LDA $F0
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F2
STX $F4
LDA [$F2]
INC
STA [$F2]
L04123D BRA L04127B
L04123F PEA ^L0C2687
PEA L0C2687
LDA $F0
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F2
STX $F4
LDA $F2
LDX $F4
CLC
ADC #$0006
BCC L041271
INX
L041271 PHX
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
L04127B INC $F0
L04127D LDA $F0
SEC
SBC #$0032
BVS L041288
EOR #$8000
L041288 BMI L04128D
BRL L04116F
L04128D LDA $FD
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F2
STX $F4
LDA #$0000
STA [$F2]
TSC
CLC
ADC #$000E
TCS
PLD
RTL
L0412BB PHD
TSC
SEC
SBC #$00F3
TCD
ADC #$00E8
TCS
PEI $FF
PEI $FD
LDA $F9
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EE
STX $F0
LDA $EE
LDX $F0
CLC
ADC #$0006
BCC L0412F6
INX
L0412F6 PHX
PHA
JSL L0110F7
PLY
PLY
PLY
PLY
LDA $F9
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $EE
STX $F0
LDY #$0004
LDA [$EE],Y
TAX
LDY #$0002
LDA [$EE],Y
PHX
PHA
PEA $0000
TDC
CLC
ADC #$00EA
PHA
PEI $FB
JSL L04134A
PLY
PLY
PLY
PLY
PLY
TSC
CLC
ADC #$000A
TCS
PLD
RTL
L04134A PHD
TSC
SEC
SBC #$00F1
TCD
ADC #$00CE
TCS
LDA $F7
STA $E4
PEA $0000
TDC
CLC
ADC #$00E4
PHA
PEA $0019
LDX #$0000
JSL GSOS2
BCS L041371
LDA #$0000
L041371 STAL L0B0002
LDX $E8
LDA $E6
LDY #$0002
PHA
TXA
STA [$F9],Y
PLA
STA [$F9]
PEI $FF
PEI $FD
JSL L04023C
PLY
PLY
PEA $0000
LDY #$0002
LDA [$F9],Y
TAX
LDA [$F9]
PHX
PHA
PEI $FF
PEI $FD
JSL L040000
PLY
PLY
PLY
PLY
PLY
PEI $FF
PEI $FD
_HLock
BCS L0413B7
LDA #$0000
L0413B7 STAL L0B0002
PEA $0048
JSL L021DFD
PLY
LDA $F7
STAL L0C0FD0
LDY #$0002
LDA [$FD],Y
TAX
LDA [$FD]
PHA
TXA
STAL L0C0FD4
PLA
STAL L0C0FD2
LDY #$0002
LDA [$F9],Y
TAX
LDA [$F9]
PHA
TXA
STAL L0C0FD8
PLA
STAL L0C0FD6
PEA ^L0C0FD0
PEA L0C0FD0
PEA $0012
LDX #$0000
JSL GSOS2
BCS L041404
LDA #$0000
L041404 STAL L0B0002
PEA ^L0C0FD0
PEA L0C0FD0
PEA $0014
LDX #$0000
JSL GSOS2
BCS L04141D
LDA #$0000
L04141D STAL L0B0002
PEA $004A
JSL L021DFD
PLY
PEI $FF
PEI $FD
_HUnlock
BCS L041439
LDA #$0000
L041439 STAL L0B0002
TSC
CLC
ADC #$0022
TCS
PLD
RTL
L041445 ENT
PHD
TSC
SEC
SBC #$00F9
TCD
ADC #$00EA
TCS
STZ $F2
BRL L0414F0
L041455 JSL L040619
PEA ^L0C2688
PEA L0C2688
PEA ^L0C10BE
PEA L0C10BE
JSL L0110F7
PLY
PLY
PLY
PLY
LDA #L0C10BE
LDX #^L0C10BE
STX $EE
STA $EC
PEA ^L0C1124
PEA L0C1124
JSL L023BE0
PLY
PLY
TAY
BNE L041489
BRL L0414D6
L041489 LDA #$0001
STA L0B0068
PEA ^L0B0068
PEA L0B0068
PEA ^L0C1124
PEA L0C1124
JSL L024E3C
PLY
PLY
PLY
PLY
LDA #L0C10BE
LDX #^L0C10BE
STX $EE
STA $EC
PEA ^L0C2689
PEA L0C2689
PEI $EE
PEI $EC
JSL L010DD9
PLY
PLY
PLY
PLY
TAY
BNE L0414D6
PEA ^L0B0068
PEA L0B0068
PEA ^L0C1124
PEA L0C1124
JSL L041503
PLY
PLY
PLY
PLY
L0414D6 PEA ^L0C268B
PEA L0C268B
PEI $EE
PEI $EC
JSL L010DD9
PLY
PLY
PLY
PLY
TAY
BEQ L0414EE
BRL L041455
L0414EE INC $F2
L0414F0 LDA $FF
CMP $F2
BEQ L0414FB
BCC L0414FB
BRL L041455
L0414FB TSC
CLC
ADC #$000E
TCS
PLD
RTL
L041503 ENT
PHD
TSC
SEC
SBC #$00F3
TCD
ADC #$00EC
TCS
PEI $FF
PEI $FD
PEI $FB
PEI $F9
JSL L024DE0
PLY
PLY
PLY
PLY
LDA L0B0082
SEC
SBC #$0000
BVS L04152A
EOR #$8000
L04152A BMI L04152F
BRL L041586
L04152F LDA L0B0082
SEC
SBC #$002D
BVS L04153B
EOR #$8000
L04153B BMI L041586
LDA L0B0082
STA L0B006E
STZ L0B008C
LDA L0B006C
PHA
LDA #$0200
SEC
JSL L010AAE
PLA
CLC
ADC L0B006A
LDX #$0000
TAY
BPL L04155E
DEX
L04155E PHX
PHA
LDA L0B006E
ASL
ASL
LDX #$0000
PHX
PHA
LDA #L0C1006
LDX #^L0C1006
JSL L010922
PLA
PLX
STA $EE
STX $F0
PLA
PLX
LDY #$0002
PHA
TXA
STA [$EE],Y
PLA
STA [$EE]
L041586 TSC
CLC
ADC #$0006
TCS
PLD
RTL
L04158E ENT
PHD
TSC
SEC
SBC #$00FB
TCD
ADC #$00F4
TCS
LDA L0B006E
SEC
SBC #$0000
BNE L0415A5
BRL L0415E0
L0415A5 BVS L0415AA
EOR #$8000
L0415AA BPL L0415E0
DEC L0B006E
PEA ^L0C1124
PEA L0C1124
JSL L010D87
PLY
PLY
STA L0B0068
LDA #$0001
STA L0B008C
LDA L0B006E
ASL
ASL
LDX #$0000
PHX
PHA
LDA #L0C1006
LDX #^L0C1006
JSL L010922
JSL L040655
PLY
PLY
BRA L0415F0
L0415E0 JSL L060614
PEA ^L0B005A
PEA L0B005A
JSL L040655
PLY
PLY
L0415F0 PHA
PEA $00FF
PEA $0000
_FlushEvents
BCS L041603
LDA #$0000
L041603 STAL L0B0002
PLA
TSC
CLC
ADC #$0006
TCS
PLD
RTL
L041610 ENT
PHD
TSC
SEC
SBC #$00F9
TCD
ADC #$00EE
TCS
L04161B LDA L0B006E
CMP $FF
BNE L041625
BRL L041692
L041625 LDA L0B0088
BEQ L04162D
BRL L041692
L04162D JSL L040619
PEA ^L0C1124
PEA L0C1124
JSL L023BE0
PLY
PLY
TAY
BNE L041643
BRL L041690
L041643 LDA #$0001
STA L0B0068
PEA ^L0B0068
PEA L0B0068
PEA ^L0C1124
PEA L0C1124
JSL L024E3C
PLY
PLY
PLY
PLY
LDA #L0C10BE
LDX #^L0C10BE
STX $F2
STA $F0
PEA ^L0C268D
PEA L0C268D
PEI $F2
PEI $F0
JSL L010DD9
PLY
PLY
PLY
PLY
TAY
BNE L041690
PEA ^L0B0068
PEA L0B0068
PEA ^L0C1124
PEA L0C1124
JSL L041503
PLY
PLY
PLY
PLY
L041690 BRA L04161B
L041692 TSC
CLC
ADC #$000A
TCS
PLD
RTL
L04169A ENT
PHD
TSC
SEC
SBC #$00FB
TCD
ADC #$00F4
TCS
LDAL L0C1A7A
CMP #$0000
BNE L0416B1
BRL L041715
L0416B1 LDA #L0C1A7A
LDX #^L0C1A7A
TAY
TSC
SEC
SBC #$0010
TCS
PHX
PHY
PEA $0000
INC
PHA
PEA $0010
JSL L010BC3
PLY
PLY
PLY
PLY
PLY
JSL L061079
TAY
TSC
CLC
ADC #$0010
TCS
TYA
LDA L0B0078
CMP #$0001
BNE L0416F1
JSL L04158E
LDA #$0001
BRL L041753
BRA L041713
L0416F1 LDA L0B0078
CMP #$0002
BNE L04170D
PEA ^L0C268F
PEA L0C268F
JSL L040728
PLY
PLY
LDA #$0001
BRL L041753
BRA L041713
L04170D LDA #$0000
BRL L041753
L041713 BRA L041753
L041715 JSL L061036
SEC
SBC #$00B4
BEQ L041750
BVS L041724
EOR #$8000
L041724 BPL L041750
LDA L0B007E
BEQ L041750
LDA #$0002
STA L0B0078
PEA $0000
PEA $0013
JSL L0251CD
PLY
PLY
PEA ^L0C2694
PEA L0C2694
JSL L040728
PLY
PLY
LDA #$0001
BRA L041753
BRA L041753
L041750 LDA #$0000
L041753 TAY
TSC
CLC
ADC #$0006
TCS
TYA
PLD
RTL
L04175D PHD
TSC
SEC
SBC #$00F9
TCD
ADC #$00DC
TCS
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDA $F4
LDX $F6
CLC
ADC #$0006
BCC L041794
INX
L041794 PHX
PHA
JSL L010D87
PLY
PLY
SEC
SBC #$0001
LDX #$0000
PHX
PHA
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDX $F6
LDA #$0006
CLC
ADC $F4
BCC L0417D1
INX
L0417D1 JSL L010922
PLA
PLX
STA $F4
STX $F6
LDA [$F4]
AND #$00FF
CMP #$007A
BEQ L0417E8
BRL L041B4C
L0417E8 STZ L0B0107
STZ L0B010B
STZ L0B00F3
STZ L0B00F5
PHX
PHA
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDY #$0004
LDA [$F4],Y
TAX
LDY #$0002
LDA [$F4],Y
PHX
PHA
_GetHandleSize
BCS L041830
LDA #$0000
L041830 STAL L0B0002
PLA
PLX
STX $EA
STA $E8
PEA $0000
PEI $EA
PEI $E8
LDX L0B00F1
LDA L0B00EF
PHX
PHA
JSL L040000
PLY
PLY
PLY
PLY
PLY
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDY #$0004
LDA [$F4],Y
TAX
LDY #$0002
LDA [$F4],Y
PHX
PHA
LDX L0B00F1
LDA L0B00EF
PHX
PHA
PEI $EA
PEI $E8
_HandToHand
BCS L041898
LDA #$0000
L041898 STAL L0B0002
PEA $0834
JSL L021DFD
PLY
LDX L0B00F1
LDA L0B00EF
STA $F4
STX $F6
LDY #$0002
LDA [$F4],Y
TAX
LDA [$F4]
STX $E6
STA $E4
LDY #$0002
LDA [$E4],Y
TAX
LDA [$E4]
STX $E2
STA $E0
LDX #$0000
LDA #$0004
STX L0B00F9
STA L0B00F7
PEA $0000
PEI $E2
PEI $E0
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDY #$0004
LDA [$F4],Y
TAX
LDY #$0002
LDA [$F4],Y
PHX
PHA
JSL L040000
PLY
PLY
PLY
PLY
PLY
PHX
PHA
PEA $0000
PEA $0001
LDA L0B0066
PHA
PEA $0200
PEA $0000
PEA $0000
_NewHandle
BCS L041931
LDA #$0000
L041931 STAL L0B0002
PLA
PLX
STX $EE
STA $EC
PEA $0835
JSL L021DFD
PLY
PEA $0000
PEA $0000
PEA $2716
PEI $EE
PEI $EC
JSL L040000
PLY
PLY
PLY
PLY
PLY
PHX
PHA
PEA $0000
PEA $0001
LDA L0B0066
PHA
PEA $0200
PEA $0000
PEA $0000
_NewHandle
BCS L04197A
LDA #$0000
L04197A STAL L0B0002
PLA
PLX
STX $F2
STA $F0
PEA $0836
JSL L021DFD
PLY
PEA $0000
PEA $0000
PEA $138B
PEI $F2
PEI $F0
JSL L040000
PLY
PLY
PLY
PLY
PLY
PEI $EE
PEI $EC
_HLock
BCS L0419B2
LDA #$0000
L0419B2 STAL L0B0002
PEI $F2
PEI $F0
_HLock
BCS L0419C6
LDA #$0000
L0419C6 STAL L0B0002
LDX L0B00F1
LDA L0B00EF
PHX
PHA
_HLock
BCS L0419DE
LDA #$0000
L0419DE STAL L0B0002
LDY #$0002
LDA [$EC],Y
TAX
LDA [$EC]
PHX
PHA
LDY #$0002
LDA [$F0],Y
TAX
LDA [$F0]
PHX
PHA
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDY #$0004
LDA [$F4],Y
TAX
LDY #$0002
LDA [$F4],Y
PHX
PHA
JSL L041BEE
TAY
TSC
CLC
ADC #$000C
TCS
TYA
PEI $F2
PEI $F0
JSL L04023C
PLY
PLY
PEI $EE
PEI $EC
JSL L04023C
PLY
PLY
PEI $F2
PEI $F0
_DisposeHandle
BCS L041A54
LDA #$0000
L041A54 STAL L0B0002
PEA $083E
JSL L021DFD
PLY
PEI $EE
PEI $EC
_DisposeHandle
BCS L041A70
LDA #$0000
L041A70 STAL L0B0002
PEA $083F
JSL L021DFD
PLY
LDX L0B00F1
LDA L0B00EF
PHX
PHA
JSL L04023C
PLY
PLY
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDY #$0004
LDA [$F4],Y
TAX
LDY #$0002
LDA [$F4],Y
PHX
PHA
_HUnlock
BCS L041AC4
LDA #$0000
L041AC4 STAL L0B0002
PEA $0840
JSL L021DFD
PLY
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDA $F4
LDX $F6
CLC
ADC #$0006
BCC L041AFC
INX
L041AFC PHX
PHA
JSL L010D87
PLY
PLY
SEC
SBC #$0001
LDX #$0000
PHX
PHA
LDA $FF
PHA
LDA #$0022
CLC
JSL L010AAE
PLA
LDX #$0000
PHX
PHA
LDA #L0C1AB2
LDX #^L0C1AB2
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDX $F6
LDA #$0006
CLC
ADC $F4
BCC L041B39
INX
L041B39 JSL L010922
PLA
PLX
STA $F4
STX $F6
LDA #$0000
SEP #$20
STA [$F4]
REP #$20
L041B4C TSC
CLC
ADC #$001C
TCS
PLD
RTL
L041B54 PHD
TSC
SEC
SBC #$00F9
TCD
ADC #$00F2
TCS
LDX L0B00F5
LDA L0B00F3
PHX
PHA
CLC
ADC #$0001
STA L0B00F3
LDA L0B00F5
BCC L041B74
INC
L041B74 STA L0B00F5
LDX L0B00ED
LDA L0B00EB
STA $F4
STX $F6
LDY #$0002
LDA [$F4],Y
TAX
LDA [$F4]
JSL L010922
PLA
PLX
STA $F4
STX $F6
LDA $FF
SEP #$20
STA [$F4]
REP #$20
TSC
CLC
ADC #$0006
TCS
PLD
RTL
L041BA3 PHD
TSC
SEC
SBC #$00FB
TCD
ADC #$00F4
TCS
LDX L0B00F9
LDA L0B00F7
PHX
PHA
CLC
ADC #$0001
STA L0B00F7
LDA L0B00F9
BCC L041BC3
INC
L041BC3 STA L0B00F9
LDX L0B00F1
LDA L0B00EF
STA $F6
STX $F8
LDY #$0002
LDA [$F6],Y
TAX
LDA [$F6]
JSL L010922
PLA
PLX
STA $F6
STX $F8
LDA [$F6]
TAY
TSC
CLC
ADC #$0006
TCS
TYA
PLD
RTL
L041BEE PHD
TSC
SEC
SBC #$00EF
TCD
ADC #$00B8
TCS
LDA #L0C24F4
LDX #^L0C24F4
STX $CA
STA $C8
LDA $F9
CLC
ADC #$1000
LDX $FB
BCC L041C0E
INX
L041C0E STX $C6
STA $C4
LDA #L0C24F4
LDX #^L0C24F4
STX $C2
STA $C0
LDX $F7
LDA $F5
STX L0B00ED
STA L0B00EB
LDX L0B00ED
LDA L0B00EB
STA $EA
STX $EC
LDY #$0002
LDA [$EA],Y
TAX
LDA [$EA]
STX $D4
STA $D2
PHX
PHA
LDX L0B00F1
LDA L0B00EF
PHX
PHA
_GetHandleSize
BCS L041C52
LDA #$0000
L041C52 STAL L0B0002
PLA
PLX
STX L0B010F
STA L0B010D
LDX L0B00F1
LDA L0B00EF
STA $EA
STX $EC
LDY #$0002
LDA [$EA],Y
TAX
LDA [$EA]
STX L0B0113
STA L0B0111
LDX L0B00ED
LDA L0B00EB
PHX
PHA
_HLock
BCS L041C8A
LDA #$0000
L041C8A STAL L0B0002
JSL L041BA3
JSL L041BA3
STZ L0B00FB
STZ L0B00FD
LDA L0B0101
PHA
LDA #$0001
SEC
JSL L010CA2
PLA
STA L0B0105
JSL L041BA3
AND #$00FF
STA L0B0101
LDA L0B0101
AND #$0080
STA L0B0109
LDA L0B0101
AND #$001F
STA L0B0101
LDA L0B0101
PHA
LDA #$0001
SEC
JSL L010CA2
PLA
STA L0B0105
LDA #$0009
STA L0B00FF
PHA
LDA #$0001
SEC
JSL L010CA2
PLA
SEC
SBC #$0001
STA L0B0103
LDA #$00FF
STA $E2
BRA L041D40
L041CF6 LDA $E2
LDX #$0000
TAY
BPL L041CFF
DEX
L041CFF STX $EE
ASL
ROL $EE
LDX $EE
PHX
PHA
LDX $FF
LDA $FD
JSL L010922
PLA
PLX
STA $EA
STX $EC
LDA #$0000
STA [$EA]
LDA $E2
PHA
LDA $E2
LDX #$0000
TAY
BPL L041D27
DEX
L041D27 PHX
PHA
LDX $FB
LDA $F9
JSL L010922
PLA
PLX
STA $EA
STX $EC
PLA
SEP #$20
STA [$EA]
REP #$20
DEC $E2
L041D40 LDA $E2
SEC
SBC #$0000
BVS L041D4B
EOR #$8000
L041D4B BMI L041CF6
LDA L0B0109
BEQ L041D57
LDA #$0101
BRA L041D5A
L041D57 LDA #$0100
L041D5A STA L0B0107
PER L041D60+2
L041D60 BRL L041E7A
LDA $E2
STA $E0
STA $E4
LDA $E0
CMP #$FFFF
BNE L041D73
BRL L042013
L041D73 LDA $E4
AND #$00FF
PHA
JSL L041B54
PLY
LDA $F9
CLC
ADC #$1000
LDX $FB
BCC L041D89
INX
L041D89 STX $E8
STA $E6
L041D8D PER L041D90+2
L041D90 BRL L041E7A
LDA $E2
BPL L041D9A
BRL L042013
L041D9A LDA $E2
CMP #$0100
BNE L041DCE
LDA L0B0109
BEQ L041DCE
LDY #$01FE
LDA #$0000
L041DAC STA [$FD],Y
DEY
DEY
BPL L041DAC
LDA #$0001
STA L0B010B
LDA #$0100
STA L0B0107
PER L041DC1+2
L041DC1 BRL L041E7A
LDA $E2
CMP #$FFFF
BNE L041DCE
BRL L042013
L041DCE LDA $E2
STA $DE
CMP L0B0107
BCC L041DE9
LDA $E4
SEP #$20
STA [$E6]
REP #$20
INC $E6
BNE L041DE5
INC $E8
L041DE5 LDA $E0
STA $E2
L041DE9 CMP #$0100
BCC L041E06
TAY
ASL
TAX
LDA [$F9],Y
SEP #$20
STA [$E6]
REP #$20
INC $E6
BNE L041DFF
INC $E8
L041DFF TXY
LDA [$FD],Y
STA $E2
BRA L041DE9
L041E06 TAY
LDA [$F9],Y
AND #$00FF
STA $E4
SEP #$20
STA [$E6]
REP #$20
INC $E6
BNE L041E1A
INC $E8
L041E1A LDA $D2
CLC
ADC L0B00F3
STA $DA
LDA $D4
ADC L0B00F5
STA $DC
LDY #$0000
LDX $C4
L041E2E LDA $E6
BNE L041E34
DEC $E8
L041E34 DEC $E6
SEP #$20
LDA [$E6]
STA [$DA],Y
REP #$20
INY
CPX $E6
BCC L041E2E
TYA
CLC
ADC L0B00F3
STA L0B00F3
LDA #$0000
ADC L0B00F5
STA L0B00F5
LDA L0B0107
STA $E2
CMP L0B0105
BCS L041E73
TAX
ASL
TAY
LDA $E0
STA [$FD],Y
TXY
LDA $E4
SEP #$20
STA [$F9],Y
REP #$20
TXA
INC
STA L0B0107
L041E73 LDA $DE
STA $E0
BRL L041D8D
L041E7A LDA $C0
STA $C8
LDA $C2
STA $CA
LDA L0B0103
CMP L0B0107
BCC L041EA2
LDA L0B010B
BEQ L041E94
BMI L041E94
BRL L041ECC
L041E94 LDA L0B00FB
CMP L0B00FD
BCC L041E9F
BRL L041EE2
L041E9F BRL L041F59
L041EA2 INC L0B00FF
LDA L0B00FF
CMP L0B0101
BNE L041EB5
LDA L0B0105
STA L0B0103
BRA L041EC5
L041EB5 LDX L0B00FF
LDA #$0001
BRA L041EBE
L041EBD ASL
L041EBE DEX
BPL L041EBD
DEC
STA L0B0103
L041EC5 LDA L0B010B
BMI L041EE2
BEQ L041EE2
L041ECC LDX #$0009
STX L0B00FF
LDA #$0001
BRA L041ED8
L041ED7 ASL
L041ED8 DEX
BPL L041ED7
DEC
STA L0B0103
STZ L0B010B
L041EE2 LDA L0B010D
SEC
SBC L0B00F7
CMP L0B00FF
BCC L041EF1
LDA L0B00FF
L041EF1 STA L0B00FD
STA $BA
LDY #$0000
LDA L0B0111
CLC
ADC L0B00F7
STA $DA
LDA L0B0113
ADC L0B00F9
STA $DC
LDA $C0
STA $BC
LDA $C2
STA $BE
SEP #$20
BRA L041F1B
L041F16 LDA [$DA],Y
STA [$BC],Y
INY
L041F1B CPY L0B00FD
BCC L041F16
REP #$20
TYA
CLC
ADC L0B00F7
STA L0B00F7
LDA #$0000
ADC L0B00F9
STA L0B00F9
LDA L0B00FD
BEQ L041F3A
BPL L041F42
L041F3A LDA #$FFFF
STA $D0
BRL L04200E
L041F42 STZ L0B00FB
LDX L0B00FF
DEX
LDA L0B00FD
ASL
ASL
ASL
STX L0B00FD
SEC
SBC L0B00FD
STA L0B00FD
L041F59 LDA L0B00FB
STA $CE
LDX L0B00FF
STX $CC
LSR
LSR
LSR
CLC
ADC $C8
STA $C8
LDA #$0000
ADC $CA
STA $CA
LDA $CE
AND #$0007
STA $CE
LDA #$0008
SEC
SBC $CE
PHA
TAY
LDA L0B0119
STA $D6
LDA L0B011B
STA $D8
LDA [$D6],Y
TAY
LDA [$C8]
AND #$00FF
INC $C8
BNE L041F99
INC $CA
L041F99 LDX $CE
BRA L041F9E
L041F9D LSR
L041F9E DEX
BPL L041F9D
STA $D0
TYA
AND $D0
AND #$00FF
STA $D0
PLA
STA $CE
LDA $CC
SEC
SBC $CE
STA $CC
CMP #$0008
BCC L041FE1
LDA [$C8]
INC $C8
BNE L041FC2
INC $CA
L041FC2 AND #$00FF
LDX $CE
BRA L041FCA
L041FC9 ASL
L041FCA DEX
BPL L041FC9
ORA $D0
STA $D0
LDA $CE
CLC
ADC #$0008
STA $CE
LDA $CC
SEC
SBC #$0008
STA $CC
L041FE1 LDY L0B0119
STY $D6
LDY L0B011B
STY $D8
LDY $CC
LDA [$D6],Y
STA $BC
LDA [$C8]
AND $BC
AND #$00FF
LDX $CE
BRA L041FFD
L041FFC ASL
L041FFD DEX
BPL L041FFC
ORA $D0
STA $D0
LDA L0B00FB
CLC
ADC L0B00FF
STA L0B00FB
L04200E LDA $D0
STA $E2
RTS
L042013 TAY
TSC
CLC
ADC #$0036
TCS
TYA
PLD
RTL