antoine-source/tfbd/SCRIPTS.S

5084 lines
96 KiB
ArmAsm

*---------------------------------------------------------*
* Disassembled with The Flaming Bird Disassembler *
* (c) Phoenix corp. 1992,93 - All rights reserved *
*---------------------------------------------------------*
mx %00
rel
lst off
*-----------------------
use 4/Mem.Macs
use 4/Util.Macs
use SCRIPTS.E
use SCRIPTS.X
*-----------------------
L050000 DB $00
DB $00
L050002 DB $00
DB $00
L050004 DB $00
DB $00
L050006 DB $00
DB $00
L050008 DB $00
DB $00
L05000A DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L050028 DB $00
DB $00
L05002A DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L050090 DB $00
L050091 DB $00
L050092 DB $00
L050093 DB $00
L050094 DB $00
DB $00
L050096 DB $00
DB $00
L050098 DB $00
DB $00
L05009A ADRL L0500AA
ADRL L040326
ADRL L0500D3
ADRL $00000000
L0500AA ASC "END"
ASC 'S'
ASC "I"
ASC 'F'
ASC "ELS"
ASC 'E'
ASC "FI"
ASC 'N'
ASC "G"
ASC 'O'
ASC "SCRIP"
ASC 'T'
ASC "EXE"
ASC 'C'
ASC "O"
ASC 'N'
ASC "REC"
ASC 'T'
ASC "CLEA"
ASC 'R'
ASC "ECH"
ASC 'O'00
L0500D3 ASC "M"
ASC 'X'
ASC "OR"
ASC 'G'
ASC "RE"
ASC 'L'
ASC "ERE"
ASC 'L'
ASC "DB"
ASC 'R'
ASC "OF"
ASC 'F'
ASC "CO"
ASC 'M'00
L0500E9 DB $00
DB $00
L0500EB DB $00
DB $00
L0500ED DB $00
DB $00
L0500EF DB $00
DB $00
L0500F1 DB $00
L0500F2 DB $00
L0500F3 DW $0002 ; Parms for ExpandPath
L0500F5 ADRL $00000000 ; path name
ADRL L050141 ; new pathname
L0500FD DW $0009 ; Parms for GetFileInfo
ADRL L050143 ; file name
DW $0000 ; access
DW $0000 ; file type
ADRL $00000000 ; aux type
DW $0000 ; storage
DS 8 ; creation date
DS 8 ; modification date
ADRL $00000000 ; option list
L050121 ADRL $00000000 ; end of file
L050125 DW $0002 ; Parms for Open
L050127 DW $0000 ; ref num
ADRL L050143 ; path name
L05012D DW $0004 ; Parms for Read
L05012F DW $0000 ; ref num
L050131 ADRL $00000000 ; buffer ptr
L050135 ADRL $00000000 ; request count
L050139 ADRL $00000000 ; transfer count
L05013D DW $0001 ; Parms for Close
L05013F DW $0000 ; ref num
L050141 DB $00
DB $01
L050143 ENT
DB $00
DB $00
L050145 ENT
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L050245 PHP
REP #$30
LDA $D0
ORA $D2
BEQ L050260
LDY #$0002
LDA [$D0]
STA $D4
LDA [$D0],Y
STA $D6
ORA $D4
BEQ L050260
PLP
CLC
RTS
L050260 PLP
SEC
RTS
L050263 PHP
REP #$30
LDA $E0
ORA $E2
BEQ L05027E
LDY #$0002
LDA [$E0]
STA $E4
LDA [$E0],Y
STA $E6
ORA $E4
BEQ L05027E
PLP
CLC
RTS
L05027E PLP
SEC
RTS
L050281 BRK $00
L050283 PHP
REP #$30
LDA $D0
ORA $D2
BEQ L050299
LDY #$0004
LDA [$D0],Y
ORA #$8000
STA [$D0],Y
DEC L050281
L050299 PLP
RTS
PHP
REP #$30
LDA $D0
ORA $D2
BEQ L0502B3
INC L050281
BNE L0502B3
LDY #$0004
LDA [$D0],Y
AND #$7FFF
STA [$D0],Y
L0502B3 PLP
RTS
L0502B5 PHP
REP #$30
LDA $E2
ORA $E0
BEQ L0502D0
PEI $E2
PEI $E0
_DisposeHandle
STZ $E2
STZ $E0
STZ L0500E9
L0502D0 PLP
CLC
RTS
L0502D3 PHP
SEP #$20
REP #$10
LDY #$FFFF
L0502DB INY
LDA [$DC],Y
BEQ L050309
AND #$7F
CMP #$0D
BNE L0502DB
L0502E6 INY
LDA [$DC],Y
AND #$7F
CMP #$0D
BEQ L0502E6
CMP #$2A
BEQ L0502DB
CMP #$3B
BEQ L0502DB
REP #$20
TYA
CLC
ADC $DC
STA $DC
LDA #$0000
ADC $DE
STA $DE
PLP
CLC
RTS
L050309 PLP
SEC
RTS
L05030C PHP
REP #$30
LDA $E2
ORA $E0
BNE L05031E
JSR L050379
BCS L050376
STX $E0
STY $E2
L05031E LDY #$0002
LDA [$E0]
STA $E4
LDA [$E0],Y
STA $E6
L050329 LDX #$00FF
LDY #$0002
L05032F LDA [$E4]
ORA [$E4],Y
BEQ L050363
CLC
LDA #$0004
ADC $E4
STA $E4
LDA #$0000
ADC $E6
STA $E6
DEX
BNE L05032F
LDA [$E4]
ORA [$E4],Y
BEQ L050366
L05034D LDA [$E4]
PHA
LDA [$E4],Y
STA $E6
PLA
STA $E4
LDA [$E4]
PHA
LDA [$E4],Y
STA $E6
PLA
STA $E4
BRA L050329
L050363 PLP
CLC
RTS
L050366 JSR L050379
BCS L050376
TXA
STA [$E4]
TYA
LDY #$0002
STA [$E4],Y
BRA L05034D
L050376 PLP
SEC
RTS
L050379 PHA
PHA
PEA $0000
PEA $0400
LDA $FE
ORA #$0400
PHA
PEA $0008
PHA
PHA
_NewHandle
PLX
PLY
BCS L0503C4
PHP
PHY
PHX
PEI $00
PEI $02
STX $00
STY $02
LDY #$0002
LDA [$00]
PHA
LDA [$00],Y
STA $02
PLA
STA $00
LDY #$03FE
LDA #$0000
L0503B5 STA [$00],Y
DEY
DEY
BPL L0503B5
PLA
STA $02
PLA
STA $00
PLX
PLY
PLP
L0503C4 RTS
L0503C5 PHP
REP #$30
JSR L0502B5
JSR L050245
LDA $D6
STA $DE
LDA $D4
STA $DC
L0503D6 LDY #$0000
SEP #$20
LDA [$DC],Y
AND #$5F
CMP #$41
BCC L0503E7
CMP #$5B
BCC L0503EE
L0503E7 JSR L0502D3
BCC L0503D6
PLP
RTS
L0503EE INY
LDA [$DC],Y
AND #$7F
CMP #$20
BEQ L05040F
CMP #$5F
BEQ L0503EE
CMP #$30
BCC L0503E7
CMP #$3A
BCC L0503EE
AND #$5F
CMP #$41
BCC L0503E7
CMP #$5B
BCC L0503EE
BRA L0503E7
L05040F STY L050492
INY
LDX #$0000
L050416 LDA [$DC],Y
AND #$5F
CMP L05048C,X
BNE L0503E7
INY
INX
CPX #$0006
BCC L050416
JSR L05030C
REP #$20
PHA
PHA
PEA $0000
LDA L050492
INC
PHA
LDA $FE
ORA #$0400
PHA
PEA $0008
PHA
PHA
_NewHandle
PLA
STA $00
STA [$E4]
LDY #$0002
PLA
STA $02
STA [$E4],Y
LDA [$00]
PHA
LDA [$00],Y
STA $02
PLA
STA $00
SEP #$20
LDY #$0000
L050463 LDA [$DC],Y
AND #$7F
INY
STA [$00],Y
DEC L050492
BNE L050463
TYA
STA [$00]
REP #$20
LDY #$0004
SEC
LDA $DC
SBC $D4
STA [$E4],Y
INY
INY
LDA $DE
SBC $D6
STA [$E4],Y
INC L0500E9
BRL L0503E7
L05048C ASC 'SCRIPT'
L050492 DW $0000
L050494 PHP
REP #$30
JSR L050263
BCS L050513
L05049C LDX #$00FF
L05049F LDY #$0002
LDA [$E4]
STA $00
LDA [$E4],Y
STA $02
ORA $00
BEQ L050513
LDA [$00]
PHA
LDA [$00],Y
STA $02
PLA
STA $00
LDA [$DC]
AND #$00FF
TAY
SEP #$20
L0504C0 LDA [$DC],Y
EOR [$00],Y
AND #$7F
BNE L0504E5
DEY
BPL L0504C0
REP #$20
JSR L050245
CLC
LDY #$0004
LDA [$E4],Y
ADC $D4
STA $D4
INY
INY
LDA [$E4],Y
ADC $D6
STA $D6
PLP
CLC
RTS
L0504E5 REP #$20
CLC
LDA #$0008
ADC $E4
STA $E4
BCC L0504F3
INC $E5
L0504F3 DEX
BNE L05049F
LDY #$0002
LDA [$E4]
PHA
LDA [$E4],Y
STA $E6
PLA
STA $E4
ORA $E6
BEQ L050513
LDA [$E4]
PHA
LDA [$E4],Y
STA $E6
PLA
STA $E4
BRA L05049C
L050513 PLP
SEC
RTS
L050516 PHP
REP #$30
LDA $D2
ORA $D0
BEQ L05052E
PEI $D2
PEI $D0
_DisposeHandle
STZ $D2
STZ $D0
L05052E JSR L0502B5
STZ L050281
PLP
CLC
RTS
L050537 ENT
PHP
REP #$30
LDA $FE
ORA #$0400
PHA
_DisposeAll
STZ $D8
PLP
CLC
RTL
L05054C ENT
PHB
PHK
PLB
PHP
REP #$30
STA L0500F5
STY L0500F5+2
ORA L0500F5+2
BEQ L05056C
JSL GSOS
DW $200E ; ExpandPath
ADRL L0500F3
BCC L05056C
BRL L050636
L05056C JSL GSOS
DW $2006 ; GetFileInfo
ADRL L0500FD
BCC L05057B
BRL L050636
L05057B LDA L050121
ORA L050121+2
BNE L050586
BRL L050623
L050586 LDX L050121
STX L050135
LDY L050121+2
BEQ L050594
STY L050135+2
L050594 JSR L050516
JSR L0518AD
BCC L05059F
BRL L050633
L05059F STX $D0
STY $D2
JSR L050245
BCC L0505AB
BRL L050633
L0505AB LDA $D4
STA L050131
LDA $D6
STA L050131+2
JSL GSOS
DW $2010 ; Open
ADRL L050125
BCC L0505C4
BRL L050636
L0505C4 LDA L050127
STA L05012F
STA L05013F
JSL GSOS
DW $2012 ; Read
ADRL L05012D
BCC L0505DE
CMP #$004C
BNE L050627
L0505DE JSL GSOS
DW $2014 ; Close
ADRL L05013D
LDA L050139
STA L050121
LDA L050139+2
STA L050121+2
LDY L050121+2
LDX L050121
INX
STX $D8
STY $DA
JSR L050245
LDY #$0000
L050605 LDA [$D4],Y
AND #$7F7F
STA [$D4],Y
INY
INY
BNE L050605
LDY $D8
DEY
LDA #$0000
STA [$D4],Y
JSR L0503C5
LDY #$0004
LDA #$0008
STA [$D0],Y
L050623 PLP
CLC
PLB
RTL
L050627 PHA
JSL GSOS
DW $2014 ; Close
ADRL L05013D
PLA
L050633 LDA #$0000
L050636 PLP
SEC
PLB
RTL
L05063A ENT
PHB
PHK
PLB
PHP
REP #$30
STZ L0500F1
LDAL $E0C025
AND #$0002
BEQ L050654
SEC
ROR L0500F1
JSL L0300D1
L050654 STZ L050006
LDA $3E
STA L050004
BNE L050661
INC L050006
L050661 STZ L050000
LDA $42
STA L050002
STZ L05000A
LDAL L0283E4
STA L050008
LDA $06,S
STA L050028
LDA $08,S
STA L05002A
LDA $0A,S
STA $DC
LDA $0C,S
STA $DE
LDA $04,S
STA $0C,S
LDA $02,S
STA $0A,S
LDA $01,S
STA $09,S
TSC
CLC
ADC #$0008
TCS
JSR L050283
LDA [$DC]
CMP #$2A01
BNE L0506BA
JSL L05171C
BCS L0506DF
PHX
JSR L050245
PLA
CLC
ADC $D4
STA $D4
LDA #$0000
ADC $D6
STA $D6
BRA L0506BF
L0506BA JSR L050494
BCS L0506E3
L0506BF LDA $D6
STA $DE
LDA $D4
STA $DC
STZ L0500ED
L0506CA JSR L050B55
BCS L0506E3
BVS L0506DF
JSL L03059F
BCS L0506CA
AND #$00FF
CMP #$0083
BNE L0506CA
L0506DF PLP
CLC
PLB
RTL
L0506E3 PLP
SEC
PLB
RTL
L0506E7 PHP
REP #$30
STZ L05079A
LDA [$DC]
AND #$007F
CMP #$002D
BNE L050705
STZ L050094
STZ L050096
LDA #$0002
STA L05079A
BRA L050781
L050705 LDA L05079A
PHA
JSR L05097D
PLA
STA L05079A
BCS L05078D
BNE L050790
L050714 LDA L050092
STA L050096
LDA L050090
STA L050094
SEP #$20
LDA [$DC]
AND #$7F
BEQ L05078A
CMP #$0D
BEQ L05078A
CMP #$2C
BEQ L05078A
CMP #$2E
BEQ L05078A
CMP #$20
BEQ L05078A
CMP #$3B
BEQ L05078A
CMP #$5D
BNE L050743
BRL L050920
L050743 CMP #$5E
BNE L05074A
BRL L05093F
L05074A STA L050799
CMP #$3C
BNE L05076B
LDY #$0001
LDA [$DC],Y
AND #$7F
CMP #$3E
BNE L05076B
LDA #$0B
STA L05079A
REP #$20
INC $DC
BNE L050769
INC $DE
L050769 BRA L050781
L05076B LDX #$0000
L05076E LDA L05079C,X
BEQ L05078D
CMP L050799
BEQ L05077B
INX
BRA L05076E
L05077B INX
STX L05079A
REP #$20
L050781 INC $DC
BNE L050787
INC $DE
L050787 BRL L050705
L05078A PLP
CLC
RTS
L05078D PLP
SEC
RTS
L050790 DEC
ASL
TAX
STZ L05079A
JMP (L0507A8,X)
L050799 DB $00
L05079A DB $00
DB $00
L05079C ASC '+-*/_&!<>=~'00
L0507A8 DA L050821 ; +
DA L050837 ; -
DA L05084D ; *
DA L05088B ; /
DA L0508E1 ; _
DA L0508F6 ; &
DA L05090B ; !
DA L0507BE ; <
DA L0507E3 ; >
DA L0507F5 ; =
DA L05080B ; ~
L0507BE LDA L050096
CMP L050092
BCC L0507DB
LDA L050094
CMP L050090
BCC L0507DB
L0507CE LDA #$0000
TAY
L0507D2 STA L050090
STY L050092
BRL L050714
L0507DB LDA #$0001
LDY #$0000
BRA L0507D2
L0507E3 LDA L050092
CMP L050096
BCC L0507DB
LDA L050090
CMP L050094
BCC L0507DB
BRA L0507CE
L0507F5 LDA L050092
EOR L050096
PHA
LDA L050090
EOR L050094
ORA $01,S
STA $01,S
PLA
BEQ L0507DB
BRA L0507CE
L05080B LDA L050092
EOR L050096
PHA
LDA L050090
EOR L050094
ORA $01,S
STA $01,S
PLA
BEQ L0507CE
BRA L0507DB
L050821 CLC
LDA L050090
ADC L050094
STA L050090
LDA L050092
ADC L050096
STA L050092
BRL L050714
L050837 SEC
LDA L050094
SBC L050090
STA L050090
LDA L050096
SBC L050092
STA L050092
BRL L050714
L05084D LDA L050092
STA L0508DB
LDA L050090
STA L0508D9
STZ L050092
STZ L050090
LDX #$0020
L050862 DEX
BPL L050868
BRL L050714
L050868 ASL L050090
ROL L050092
ASL L050094
ROL L050096
BCC L050862
CLC
LDA L0508D9
ADC L050090
STA L050090
LDA #$0000
ADC L050092
STA L050092
BRA L050862
L05088B LDA L050090
STA L0508D9
LDA L050092
STA L0508DB
STZ L0508DD
STZ L0508DF
LDX #$0020
L0508A0 DEX
BPL L0508A6
BRL L050714
L0508A6 ASL L050094
ROL L050096
ROL L0508DD
ROL L0508DF
LDA L0508DF
CMP L0508DB
BCC L0508D1
LDA L0508DD
CMP L0508D9
BCC L0508D1
SBC L0508D9
STA L0508DD
LDA L0508DF
SBC L0508DB
STA L0508DF
L0508D1 ROL L050090
ROL L050092
BRA L0508A0
L0508D9 DB $00
DB $00
L0508DB DB $00
DB $00
L0508DD DB $00
DB $00
L0508DF DB $00
DB $00
L0508E1 LDA L050090
ORA L050094
STA L050090
LDA L050092
ORA L050096
STA L050092
BRL L050714
L0508F6 LDA L050090
AND L050094
STA L050090
LDA L050092
AND L050096
STA L050092
BRL L050714
L05090B LDA L050090
EOR L050094
STA L050090
LDA L050092
EOR L050096
STA L050092
BRL L050714
L050920 REP #$20
LDA L0500EB
BNE L05092A
BRL L05078D
L05092A LDY L050090
LDA [$3A],Y
STA L050090
INY
INY
LDA [$3A],Y
STA L050092
PLP
CLC
RTS
PLP
SEC
RTS
L05093F REP #$30
PEI $42
LDA L050090
PHA
PEA ^L050973
PEA L050973
JSL L045089
BCS L05096A
LDA L050973
CMP #$0003
BCS L05096A
LDA L050979
STA L050090
LDA L05097B
STA L050092
PLP
CLC
RTS
L05096A STZ L050090
STZ L050092
PLP
CLC
RTS
L050973 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L050979 DB $00
DB $00
L05097B DB $00
DB $00
L05097D PHP
REP #$30
JSR L050A27
BCC L050988
BRL L050A24
L050988 SEP #$20
LDA [$DC]
AND #$7F
CMP #$7C
BEQ L050995
PLP
CLC
RTS
L050995 REP #$20
INC $DC
BNE L05099D
INC $DE
L05099D LDA [$DC]
AND #$007F
CMP #$0042
BNE L0509AF
INC $DC
BNE L0509AD
INC $DE
L0509AD BRA L050A0B
L0509AF CMP #$0057
BNE L0509BC
INC $DC
BNE L0509BA
INC $DE
L0509BA BRA L050A13
L0509BC CMP #$0041
BNE L0509DB
INC $DC
BNE L0509C7
INC $DE
L0509C7 LDA L050092
PHA
LDA L050090
PHA
JSL L042ABB
STY L050092
STA L050090
BRA L050988
L0509DB LDA L050092
PHA
LDA L050090
PHA
JSR L050A27
BCS L050A24
LDX L050090
PLA
STA L050090
PLA
STA L050092
BCS L050A24
TXA
BEQ L050A24
CMP #$0005
BCS L050A24
DEC
ASL
TAX
JMP (L050A03,X)
L050A03 DA L050A0B
DA L050A13
DA L050A1C
DA L050988
L050A0B LDX #$0000
STX L050091
BRA L050A16
L050A13 LDX #$0000
L050A16 STX L050092
BRL L050988
L050A1C SEP #$20
STZ L050093
BRL L050988
L050A24 PLP
SEC
RTS
L050A27 PHP
SEP #$20
REP #$10
LDA [$DC]
AND #$7F
CMP #$30
BCC L050A40
CMP #$47
BCS L050A40
CMP #$41
BCS L050A71
CMP #$3A
BCC L050A71
L050A40 PHA
REP #$20
LDA L050A67
AND #$00FF
TAX
SEP #$20
PLA
L050A4D CMP L050A67,X
BEQ L050A58
DEX
BNE L050A4D
PLP
SEC
RTS
L050A58 REP #$20
INC $DC
BNE L050A60
INC $DE
L050A60 DEX
TXA
ASL
TAX
JMP (L050A6B,X)
L050A67 DB $03
DB $40
DB $24
DB $5B
L050A6B DA L050AC9
DA L050A71
DA L050B33
L050A71 REP #$20
JSR L050A9A
BCS L050AB3
STA L050090
STZ L050092
L050A7E JSR L050A9A
BCS L050A97
XBA
ASL
ASL
ASL
ASL
LDX #$0004
L050A8B ASL
ROL L050090
ROL L050092
DEX
BNE L050A8B
BRA L050A7E
L050A97 PLP
CLC
RTS
L050A9A PHP
SEP #$20
REP #$10
LDA [$DC]
AND #$7F
CMP #$30
BCC L050AB3
CMP #$47
BCS L050AB3
CMP #$3A
BCC L050ABB
CMP #$41
BCS L050AB6
L050AB3 PLP
SEC
RTS
L050AB6 SEC
SBC #$37
BRA L050ABE
L050ABB SEC
SBC #$30
L050ABE REP #$20
INC $DC
BNE L050AC6
INC $DE
L050AC6 PLP
CLC
RTS
L050AC9 LDA [$DC]
AND #$007F
CMP #$0030
BCC L050AB3
CMP #$005B
BCS L050AB3
CMP #$003A
BCC L050AF7
CMP #$0041
BCC L050AB3
SEC
SBC #$0041
ASL
ASL
TAX
LDA L050028,X
STA L050090
LDA L05002A,X
STA L050092
BRA L050B0A
L050AF7 SEC
SBC #$0030
ASL
ASL
TAX
LDA L050000,X
STA L050090
LDA L050002,X
STA L050092
L050B0A SEP #$20
LDY #$0000
L050B0F INY
LDA [$DC],Y
AND #$5F
CMP #$30
BCC L050B24
CMP #$5B
BCS L050B24
CMP #$41
BCS L050B0F
CMP #$3A
BCC L050B0F
L050B24 REP #$20
TYA
CLC
ADC $DC
STA $DC
BCC L050B30
INC $DD
L050B30 PLP
CLC
RTS
L050B33 INC L0500EB
LDA L050096
PHA
LDA L050094
PHA
JSR L0506E7
PLA
STA L050094
PLA
STA L050096
INC $DC
BNE L050B4F
INC $DE
L050B4F DEC L0500EB
PLP
CLC
RTS
L050B55 PHP
SEP #$20
REP #$10
BIT L0500F2
BPL L050B71
JSR L0513FA
L050B62 JSL L03059F
BCS L050B62
CMP #$83
BNE L050B71
PLP
CLC
SEP #$40
RTS
L050B71 JSR L050D7B
CMP #$00
BEQ L050BAA
CMP #$0D
BEQ L050B9E
CMP #$3A
BEQ L050B94
CMP #$5F
BEQ L050B94
CMP #$20
BEQ L050B94
CMP #$40
BEQ L050BAF
CMP #$41
BCC L050BA7
CMP #$5B
BCS L050BA7
L050B94 JSR L050D4A
JSR L050C66
BCS L050BA7
BVS L050BA3
L050B9E JSR L0502D3
BCS L050BAA
L050BA3 PLP
CLC
CLV
RTS
L050BA7 PLP
SEC
RTS
L050BAA PLP
CLC
SEP #$40
RTS
L050BAF LDA L0500ED
BEQ L050BBC
LDA L0500EF
BNE L050BBC
BRL L050B9E
L050BBC JSR L050D7B
CMP #$41
BCC L050BF0
CMP #$5B
BCS L050BF0
SEC
SBC #$41
ASL
ASL
STA L050098
JSR L050D4A
JSR L050D7B
CMP #$3D
BNE L050BF0
JSR L050D4A
JSR L0506E7
BCS L050BF0
JSR L050D7B
CMP #$00
BEQ L050BF3
CMP #$0D
BEQ L050BF3
CMP #$20
BEQ L050BF3
L050BF0 PLP
SEC
RTS
L050BF3 REP #$20
LDX L050098
LDA L050092
STA L05002A,X
LDA L050090
STA L050028,X
BRL L050B9E
L050C07 LDA L0500ED
BEQ L050C14
LDA L0500EF
BNE L050C14
BRL L050C7B
MX %11
L050C14 JSR L050D7B
JSR L050D7B
CMP #$41
BCC L050BF0
CMP #$5B
BCS L050BF0
SEC
SBC #$41
ASL
ASL
STA L050098
JSR L050D7B
CMP #$3D
BNE L050BF0
LDA [$DC]
AND #$7F
CMP #$20
BNE L050C3C
JSR L050D4A
L050C3C JSR L0506E7
BCS L050BF0
JSR L050D7B
CMP #$00
BEQ L050BF3
CMP #$0D
BEQ L050C53
CMP #$20
BEQ L050C53
PLP
SEC
RTS
L050C53 REP #$20
LDX L050098
LDA L050092
STA L05002A,X
LDA L050090
STA L050028,X
BRA L050C7B
L050C66 PHP
SEP #$20
LDA [$DC]
AND #$7F
BEQ L050C7B
CMP #$40
BEQ L050C07
CMP #$0D
BEQ L050C7B
CMP #$3B
BNE L050C7F
L050C7B PLP
CLC
CLV
RTS
L050C7F REP #$30
LDX #$0000
L050C84 LDA L05009A+2,X
STA $02
LDA L05009A,X
STA $00
ORA $02
BEQ L050CB4
PHX
JSR L050CB7
PLX
BCC L050C9F
INX
INX
INX
INX
BRA L050C84
L050C9F LDA L050CF8+2,X
STA $02
LDA L050CF8,X
STA $00
TYA
ASL
TAY
LDA [$00],Y
DEC
PHA
JSR L050D4A
RTS
L050CB4 PLP
SEC
RTS
L050CB7 PHP
SEP #$20
STZ L050CF6
LDX #$0000
L050CC0 LDY #$0000
L050CC3 PHY
TXY
LDA [$00],Y
PLY
EOR [$DC],Y
AND #$7F
BEQ L050CE4
TXY
L050CCF LDA [$00],Y
BPL L050CD6
INY
BRA L050CCF
L050CD6 INY
LDA [$00],Y
BEQ L050CE1
TYX
INC L050CF6
BRA L050CC0
L050CE1 PLP
SEC
RTS
L050CE4 PHY
TXY
LDA [$00],Y
BPL L050CEF
PLY
INY
INX
BRA L050CC3
L050CEF PLY
LDY L050CF6
PLP
CLC
RTS
L050CF6 DW $0000
L050CF8 ADRL L050D04
ADRL L050D1A
ADRL L050D3C
L050D04 DA L050DB5
DA L050DC1
DA L050DFE
DA L050E12
DA L050E20
DA L050EDC
DA L051564
DA L051623
DA L05166C
DA L05169F
DA L0516A2
L050D1A DA L050EE5
DA L050F06
DA L050F22
DA L050F3E
DA L050F5B
DA L050F7B
DA L050F9B
DA L051014
DA L051035
DA L051056
DA L051077
DA L0510B4
DA L0510BA
DA L0510C0
DA L0510C6
DA L0510E8
DA L05110C
L050D3C DA L05112C
DA L051132
DA L051269
DA L051186
DA L05118C
DA L051192
DA L0511B2
L050D4A PHP
SEP #$20
REP #$10
LDY #$0000
L050D52 LDA [$DC],Y
AND #$7F
BEQ L050D6C
CMP #$20
BEQ L050D63
CMP #$0D
BEQ L050D6C
INY
BRA L050D52
L050D63 INY
LDA [$DC],Y
AND #$7F
CMP #$20
BEQ L050D63
L050D6C REP #$20
TYA
CLC
ADC $DC
STA $DC
BCC L050D78
INC $DD
L050D78 PLP
CLC
RTS
L050D7B PHP
REP #$30
LDA [$DC]
AND #$007F
BEQ L050DA2
CMP #$000D
BEQ L050DA2
CMP #$0020
BEQ L050DA2
CMP #$0061
BCC L050D9C
CMP #$007B
BCS L050D9C
AND #$005F
L050D9C INC $DC
BNE L050DA2
INC $DE
L050DA2 PLP
CLC
RTS
L050DA5 LDA L0500ED
BEQ L050DB4
LDA L0500EF
BNE L050DB4
PLA
PLP
CLC
CLV
RTS
L050DB4 RTS
L050DB5 REP #$20
SEP #$10
PLX
PLA
PLX
PLA
PLP
CLC
PLB
RTL
L050DC1 JSR L0506E7
BCC L050DC9
PLP
SEC
RTS
L050DC9 LDA L050090
ORA L050092
BEQ L050DD4
LDA #$FFFF
L050DD4 STA L0500EF
LDA #$FFFF
STA L0500ED
LDA [$DC]
AND #$007F
CMP #$002C
BEQ L050DEA
BRL L050EFF
L050DEA INC $DC
BNE L050DF0
INC $DE
L050DF0 STZ L0500ED
BIT L0500EF
BMI L050DFB
BRL L050EFF
L050DFB BRL L050E20
L050DFE LDA L0500ED
BNE L050E06
PLP
SEC
RTS
L050E06 LDA #$FFFF
EOR L0500EF
STA L0500EF
BRL L050EFF
L050E12 LDA L0500ED
BNE L050E1A
PLP
SEC
RTS
L050E1A STZ L0500ED
BRL L050EFF
L050E20 JSR L050DA5
LDA $DE
STA $02
LDA $DC
STA $00
LDA $D6
STA $DE
LDA $D4
STA $DC
SEP #$20
LDA [$00]
AND #$7F
CMP #$3A
BEQ L050E67
REP #$20
JSR L050245
LDA $D6
STA $DE
LDA $D4
STA $DC
SEP #$20
L050E4C JSR L0502D3
LDA [$DC]
BEQ L050E83
JSR L050EA6
BCS L050E4C
REP #$20
LDA $DE
STA $D6
LDA $DC
STA $D4
PLP
CLC
SEP #$40
RTS
MX %11
L050E67 JSR L0502D3
LDA [$DC]
AND #$7F
CMP #$3A
BEQ L050E86
CMP #$0D
BEQ L050E67
CMP #$40
BEQ L050E67
CMP #$20
BNE L050E83
JSR L050E90
BCS L050E67
L050E83 PLP
SEC
RTS
L050E86 JSR L050EA6
BCS L050E67
PLP
CLC
SEP #$40
RTS
MX %10
L050E90 JSR L050D4A
LDY #$0003
L050E96 LDA [$DC],Y
AND #$7F
CMP L050ED8,Y
BNE L050EA4
DEY
BPL L050E96
CLC
RTS
L050EA4 SEC
RTS
L050EA6 LDY #$0000
L050EA9 LDA [$00],Y
JSR L050EC4
BCC L050EB9
EOR [$DC],Y
AND #$7F
BNE L050EC0
INY
BRA L050EA9
L050EB9 LDA [$DC],Y
JSR L050EC4
BCC L050EC2
L050EC0 SEC
RTS
L050EC2 CLC
RTS
L050EC4 AND #$7F
BEQ L050ED6
CMP #$20
BEQ L050ED6
CMP #$0D
BEQ L050ED6
CMP #$2C
BEQ L050ED6
SEC
RTS
L050ED6 CLC
RTS
L050ED8 ASC 'ENDS'
MX %00
L050EDC BRL L050EFF
L050EDF DB $00
DB $00
L050EE1 DB $00
DB $00
L050EE3 DB $00
DB $00
L050EE5 JSR L050DA5
JSR L0506E7
BCS L050F03
LDA L050092
PHA
LDA L050090
PHA
PEA $0001
PEA $0000
JSL L043069
L050EFF PLP
CLC
CLV
RTS
L050F03 PLP
SEC
RTS
L050F06 JSR L050DA5
JSR L0506E7
BCS L050F03
LDA L050092
PHA
LDA L050090
PHA
PEA $0002
PEA $0001
JSL L043069
BRA L050EFF
L050F22 JSR L050DA5
JSR L0506E7
BCS L050F03
LDA L050092
PHA
LDA L050090
PHA
PEA $0002
PEA $0002
JSL L043069
BRA L050EFF
L050F3E JSR L050DA5
JSR L0506E7
BCS L050F03
LDA L050092
PHA
LDA L050090
PHA
PEA $0002
PEA $0003
JSL L043069
BRL L050EFF
L050F5B JSR L050DA5
JSR L0506E7
BCC L050F66
BRL L050F03
L050F66 LDA L050092
PHA
LDA L050090
PHA
PEA $0004
PEA $0004
JSL L043069
BRL L050EFF
L050F7B JSR L050DA5
JSR L0506E7
BCC L050F86
BRL L050F03
L050F86 LDA L050092
PHA
LDA L050090
PHA
PEA $0003
PEA $0005
JSL L043069
BRL L050EFF
L050F9B JSR L050DA5
JSR L0506E7
BCC L050FA6
BRL L050F03
L050FA6 LDA L050092
PHA
LDA L050090
PHA
PEA $000A
PEA $0006
JSL L043069
BRL L050EFF
L050FBB JSR L0506E7
BCS L051012
LDA L050092
STA L050EE1
LDA L050090
STA L050EDF
JSR L050D7B
CMP #$002C
BEQ L051000
CMP #$000D
BEQ L05100A
CMP #$0000
BEQ L05100A
CMP #$002E
BNE L051012
JSR L0506E7
LDA L050092
CMP L050EE1
BEQ L050FF1
BRL L050F03
L050FF1 LDA L050090
SEC
SBC L050EDF
BMI L051012
INC
STA L050EE3
CLC
RTS
L051000 JSR L0506E7
LDA L050090
STA L050EE3
RTS
L05100A LDA #$0001
STA L050EE3
CLC
RTS
L051012 SEC
RTS
L051014 JSR L050DA5
JSR L050FBB
BCC L05101F
BRL L050F03
L05101F LDA L050EE1
PHA
LDA L050EDF
PHA
LDA L050EE3
PHA
PEA $0007
JSL L043069
BRL L050EFF
L051035 JSR L050DA5
JSR L050FBB
BCC L051040
BRL L050F03
L051040 LDA L050EE1
PHA
LDA L050EDF
PHA
LDA L050EE3
PHA
PEA $0008
JSL L043069
BRL L050EFF
L051056 JSR L050DA5
JSR L050FBB
BCC L051061
BRL L050F03
L051061 LDA L050EE1
PHA
LDA L050EDF
PHA
LDA L050EE3
PHA
PEA $0009
JSL L043069
BRL L050EFF
L051077 JSR L050DA5
JSR L0506E7
BCC L051082
BRL L050F03
L051082 LDY L050090
SEP #$20
LDA [$3A],Y
AND #$80
STA L0510B3
L05108E INY
LDA [$3A],Y
AND #$80
EOR L0510B3
BEQ L05108E
REP #$20
INY
SEC
SBC L050090
TAY
LDA L050092
PHA
LDA L050090
PHA
PHY
PEA $000A
JSL L043069
BRL L050EFF
L0510B3 DB $00
L0510B4 JSR L050DA5
BRL L050EFF
L0510BA JSR L050DA5
BRL L050EFF
L0510C0 JSR L050DA5
BRL L050EFF
L0510C6 JSR L050DA5
JSR L0506E7
BCC L0510D1
BRL L050F03
L0510D1 LDA L050092
PHA
LDY L050090
PHY
LDA [$3A],Y
INC
INC
PHA
PEA $000E
JSL L043069
BRL L050EFF
L0510E8 JSR L050DA5
JSR L0506E7
BCC L0510F3
BRL L050F03
L0510F3 LDA L050092
PHA
LDY L050090
PHY
LDA [$3A],Y
AND #$00FF
INC
PHA
PEA $000F
JSL L043069
BRL L050EFF
L05110C JSR L050DA5
JSR L0506E7
BCC L051117
BRL L050F03
L051117 LDA L050092
PHA
LDA L050090
PHA
PEA $0001
PEA $0010
JSL L043069
BRL L050EFF
L05112C JSR L050DA5
BRL L050EFF
L051132 JSR L050DA5
JSR L0506E7
BCC L05113D
BRL L050F03
L05113D JSR L050D7B
CMP #$002C
BNE L051173
LDA L050090
STA L051182
LDA L050092
STA L051184
JSR L0506E7
BCC L051159
BRL L050F03
L051159 LDA L051184
PHA
LDA L051182
PHA
PEA $0000
LDA L050092
PHA
LDA L050090
PHA
JSL L042BC0
BRL L050EFF
L051173 LDA L050092
PHA
LDA L050090
PHA
JSL L042C85
BRL L050EFF
L051182 DB $00
DB $00
L051184 DB $00
DB $00
L051186 JSR L050DA5
BRL L050EFF
L05118C JSR L050DA5
BRL L050EFF
L051192 JSR L050DA5
JSR L0506E7
BCC L05119D
BRL L050F03
L05119D LDA L050092
PHA
LDY L050090
PHY
LDA [$3A],Y
PHA
PEA $0000
JSL L043813
BRL L050EFF
L0511B2 JSR L050DA5
JSR L0506E7
BCC L0511BD
BRL L050F03
L0511BD STZ L05121F
JSR L050D7B
CMP #$002C
BEQ L0511CB
BRL L050F03
L0511CB SEP #$20
LDA [$DC]
CMP #$22
BEQ L0511D7
CMP #$27
BNE L0511DF
L0511D7 JSR L050D7B
ORA #$80
STA L05121F
L0511DF LDY #$0000
L0511E2 LDA [$DC],Y
BEQ L0511F6
ORA #$80
CMP #$8D
BEQ L0511F6
STA L051221,Y
INY
CPY #$0049
BCC L0511E2
DEY
L0511F6 LDA L051220,Y
CMP L05121F
BNE L0511FF
DEY
L0511FF TYA
STA L051220
BNE L051208
BRL L050EFF
L051208 REP #$20
LDA L050092
PHA
LDA L050090
PHA
PEA ^L051220
PEA L051220
JSL L04386A
BRL L050EFF
L05121F DB $00
L051220 DB $00
L051221 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L051269 JSR L050DA5
STZ L0513BD
STZ L0513BF
JSR L0506E7
BCC L05127A
BRL L050F03
L05127A LDA L050090
STA L0513B7
LDA L050092
STA L0513B9
JSR L0513DA
BCC L05128E
BRL L050F03
L05128E BVC L051293
BRL L051316
L051293 JSR L0506E7
BCC L05129B
BRL L050F03
L05129B LDA L050092
BEQ L0512A3
BRL L050EFF
L0512A3 LDA L050090
CMP #$0005
BCC L0512AE
BRL L050EFF
L0512AE CMP #$0002
BCS L0512B6
BRL L050EFF
L0512B6 STA L0513BB
JSR L0513DA
BCC L0512C1
BRL L050F03
L0512C1 BVC L0512C6
BRL L05135E
L0512C6 JSR L0506E7
BCC L0512CE
BRL L050F03
L0512CE LDA L050090
STA L0513BD
JSR L0513DA
BCC L0512DC
BRL L050F03
L0512DC BVC L0512E1
BRL L05135E
L0512E1 JSR L0506E7
BCC L0512E9
BRL L050F03
L0512E9 LDA L050090
STA L0513C1
LDA L050092
STA L0513C3
JSR L0513C5
BCC L0512FD
BRL L050F03
L0512FD JSR L0513DA
BCC L051305
BRL L050F03
L051305 JSR L0506E7
BCC L05130D
BRL L050F03
L05130D LDA L050090
STA L0513BF
BRL L051390
L051316 LDA L0513B9
EOR $42
BEQ L051320
BRL L050F03
L051320 LDA L0513B7
JSL L0410BB
BCC L05132C
BRL L050F03
L05132C BIT #$8000
BNE L051348
LDA L0513B7
INC L0513B7
JSL L04037A
L05133B CPY #$0002
BCS L051343
BRL L050F03
L051343 STY L0513BB
BRA L05135E
L051348 LDA L0513B9
PHA
LDA L0513B7
PHA
JSL L04349E
CPY #$0005
BCC L05135C
BRL L050F03
L05135C BRA L05133B
L05135E LDA L0513B9
EOR $42
BEQ L051368
BRL L050F03
L051368 LDY L0513B7
LDA [$3A],Y
STA L0513C1
INY
LDA [$3A],Y
STA L0513C2
LDY L0513BB
CPY #$0002
BNE L05138D
LDA L0513B9
PHA
LDA L0513B7
PHA
JSL L042A5C
STY L0513C3
L05138D JSR L0513C5
L051390 LDA L0513B9
PHA
LDA L0513B7
PHA
LDA L0513BB
PHA
SEP #$20
LDA L0513BF
PHA
LDA L0513BD
PHA
REP #$20
LDA L0513C3
PHA
LDA L0513C1
PHA
JSL L043774
BRL L050EFF
L0513B7 DB $00
DB $00
L0513B9 DB $00
DB $00
L0513BB DB $00
DB $00
L0513BD DB $00
DB $00
L0513BF DB $00
DB $00
L0513C1 DB $00
L0513C2 DB $00
L0513C3 DB $00
DB $00
L0513C5 LDA L0513C3
PHA
LDA L0513C1
PHA
JSL L042ABB
BCS L0513D9
STY L0513C3
STA L0513C1
L0513D9 RTS
L0513DA JSR L050D7B
CMP #$002C
BEQ L0513F5
CMP #$0000
BEQ L0513F1
CMP #$0020
BEQ L0513F1
CMP #$000D
BNE L0513F8
L0513F1 SEP #$40
CLC
RTS
L0513F5 CLV
CLC
RTS
L0513F8 SEC
RTS
L0513FA PHP
REP #$30
JSR L051408
JSR L05145A
JSR L051501
PLP
RTS
L051408 LDA #$0000
L05140B PHA
PHA
LDX #$0006
CMP #$000D
BCC L05141B
SBC #$000D
LDX #$0014
L05141B CLC
ADC #$0003
TAY
JSL L0300E2
LDA #$00C0
JSL L03022D
PLA
PHA
CLC
ADC #$00C1
JSL L03022D
JSL L0302E1
STR "= "
PLA
ASL
ASL
PHA
TAX
LDA L05002A,X
PHA
JSL L030670
PLX
LDA L050028,X
PHA
JSL L030670
PLA
INC
CMP #$001A
BCC L05140B
RTS
L05145A LDA #$0000
L05145D PHA
PHA
CLC
ADC #$0003
TAY
LDX #$0028
JSL L0300E2
LDA #$00C0
JSL L03022D
PLA
PHA
CLC
ADC #$00B0
JSL L03022D
JSL L0302E1
STR "= "
PLA
ASL
ASL
PHA
TAX
LDA L050002,X
PHA
JSL L030670
PLX
PHX
LDA L050000,X
PHA
JSL L030670
PLA
LSR
TAX
LDA L0514C3,X
BEQ L0514BB
STA L0514B1
JSL L0302E1
STR " ("
JSL L030314
L0514B1 ADR L0514B1
LDA #$00A9
JSL L03022D
L0514BB PLA
INC
CMP #$000A
BCC L05145D
RTS
L0514C3 DA L0514D7
DA L0514E5
DA L0514F4
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L0514D7 STR "Segment start"
L0514E5 STR "Segment length"
L0514F4 STR "Segment kind"
L051501 SEP #$30
JSL L030035
DB $11
DB $14
DB $00
DB $4F
JSL L030139
JSL L030035
DB $02
DB $15
DB $00
DB $4F
LDX #$00
LDY #$14
JSL L0300E2
LDY #$00
L051521 LDA [$DC],Y
BEQ L051559
ORA #$80
CMP #$8D
BEQ L051559
PHY
PHX
PHA
JSL L03022D
PLA
PLX
PLY
CMP #$A0
BNE L051554
CPX #$02
BCS L051554
INX
STY L051560
LDA L051560,X
CMP L051560
BCC L051554
PHY
PHX
TAX
LDY #$14
JSL L0300E2
PLX
PLY
L051554 INY
CPY #$4F
BCC L051521
L051559 JSL L0300F7
REP #$30
RTS
L051560 DB $00
DB $0C
DB $16
DB $20
L051564 JSR L050DA5
SEP #$20
LDY #$0000
L05156C LDA [$DC],Y
AND #$7F
BEQ L051580
CMP #$0D
BEQ L051580
CMP #$20
BEQ L051580
STA L05160F,Y
INY
BRA L05156C
L051580 TYA
STA L05160E
BNE L051589
BRL L050F03
L051589 REP #$30
JSR L050D4A
JSR L0506E7
BCC L05159F
LDA L050028
STA L050090
LDA L05002A
STA L050092
L05159F SEP #$30
LDX #$17
L0515A3 LDA $D0,X
PHA
DEX
BPL L0515A3
LDX #$67
L0515AB LDA L050028,X
PHA
DEX
BPL L0515AB
REP #$30
LDA L0500ED
PHA
LDA L0500F1
PHA
PEA ^L05160E
PEA L05160E
LDA L050092
PHA
LDA L050090
PHA
JSL L05063A
PHP
SEP #$20
PLA
STA L05160D
REP #$20
PLA
STA L0500F1
PLA
STA L0500ED
BEQ L0515E7
LDA #$FFFF
STA L0500EF
L0515E7 SEP #$30
LDY #$68
LDX #$00
L0515ED PLA
STA L050028,X
INX
DEY
BNE L0515ED
LDY #$18
LDX #$00
L0515F9 PLA
STA $D0,X
INX
DEY
BNE L0515F9
LDA L05160D
PHA
PLP
BCC L05160A
BRL L050F03
L05160A BRL L050EFF
L05160D DB $00
L05160E DB $00
L05160F DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L051623 JSR L050DA5
JSR L0506E7
BCC L05162E
BRL L050F03
L05162E SEP #$30
L051630 JSR L051642
BCS L05163F
DEC L050090
BPL L051630
REP #$30
BRL L050E20
L05163F BRL L050EFF
MX %11
L051642 LDY #$00
L051644 LDA [$DC],Y
AND #$7F
BEQ L051659
CMP #$0D
BEQ L051659
CMP #$20
BEQ L051659
CMP #$2C
BEQ L05165B
INY
BNE L051644
L051659 SEC
RTS
L05165B REP #$30
INY
TYA
CLC
ADC $DC
STA $DC
BCC L051668
INC $DE
L051668 SEP #$30
CLC
RTS
MX %00
L05166C JSR L050DA5
JSR L0506E7
BCC L051677
BRL L050F03
L051677 LDA #$0004
STA L05169D
L05167D LDA L050092
PHA
LDA L050090
PHA
PEA $0002
PEA $0001
JSL L043069
INC L050090
INC L050090
DEC L05169D
BNE L05167D
BRL L050EFF
L05169D DB $00
DB $00
L05169F BRL L050EFF
L0516A2 JSR L050DA5
BIT L0500F1
BMI L051717
SEP #$20
LDY #$0001
LDA [$DC]
STA L05171A
STZ L05171B
L0516B7 LDA [$DC],Y
BEQ L0516CA
CMP L05171A
BEQ L0516CA
CMP #$0D
BEQ L0516CA
INC L05171B
INY
BNE L0516B7
L0516CA LDA L05171B
BEQ L051717
JSL L03074E
DB $09
DB $0D
DB $14
DB $3B
LDA L05171B
CMP #$27
BCC L0516E3
LDA #$26
STA L05171B
L0516E3 SEC
LDA #$50
SBC L05171B
LSR
XBA
LDA #$00
XBA
TAX
LDY #$000B
JSL L0300E2
LDY #$0001
L0516F9 LDA [$DC],Y
PHY
ORA #$80
CMP #$A0
BCS L051704
LDA #$A0
L051704 JSL L0301F9
PLY
INY
DEC L05171B
BNE L0516F9
JSL L030035
DB $02
DB $15
DB $00
DB $4F
L051717 BRL L050EFF
L05171A DB $00
L05171B DB $00
L05171C PHB
PHK
PLB
PHP
REP #$30
JSR L050263
BCS L05175C
JSL L03074E
DB $08
DB $14
DB $1C
DB $33
STZ L05188E
STZ L051890
BRL L0517B5
L051738 SEP #$20
L05173A JSL L03059F
BCS L05173A
REP #$20
AND #$00FF
CMP #$008A
BEQ L051770
CMP #$008B
BEQ L051797
CMP #$008D
BEQ L051760
CMP #$009B
BNE L05173A
JSR L05187F
L05175C PLP
SEC
PLB
RTL
L051760 JSR L05187F
LDA L051892
LDY L051894
LDX L051896
PLP
CLC
PLB
RTL
L051770 CLC
LDA L051890
ADC L05188E
INC
CMP L0500E9
BEQ L051738
CMP #$0006
BCC L051792
LDA L05188E
ADC #$000A
CMP L0500E9
BCS L051792
INC L05188E
BRA L0517B5
L051792 INC L051890
BRA L0517B5
L051797 CLC
LDA L051890
ADC L05188E
BEQ L051738
ADC #$0005
CMP L0500E9
BCS L0517B2
LDA L05188E
BEQ L0517B2
DEC L05188E
BRA L0517B5
L0517B2 DEC L051890
L0517B5 LDA L05188E
STA L05188C
JSR L050263
L0517BE LDA L05188C
CMP #$007F
BCC L0517EB
SEC
SBC #$007F
STA L05188C
LDY #$03F8
LDA [$E4],Y
PHA
INY
INY
LDA [$E4],Y
STA $E6
PLA
STA $E4
LDY #$0002
LDA [$E4]
PHA
LDA [$E4],Y
STA $E6
PLA
STA $E4
BRA L0517BE
L0517EB LDX #$0000
L0517EE ASL
ASL
ASL
TAY
LDA [$E4],Y
STA $00
INY
INY
LDA [$E4],Y
STA $02
ORA $00
BNE L051803
BRL L051738
L051803 LDY #$0002
LDA [$00]
PHA
LDA [$00],Y
STA $02
PLA
STA $00
SEP #$30
LDA [$00]
PHA
TAY
L051816 LDA [$00],Y
ORA #$80
STA L051898,Y
DEY
BNE L051816
PLY
INY
LDA #$A0
L051824 CPY #$15
BCS L05182E
STA L051898,Y
INY
BRA L051824
L05182E REP #$30
PHX
CPX L051890
BNE L051853
JSL L030579
LDA $00
STA L051892
LDA $02
STA L051894
LDA L05188C
ASL
ASL
ASL
ADC #$0004
TAY
LDA [$E4],Y
STA L051896
L051853 LDX #$001E
LDA #$0009
CLC
ADC $01,S
TAY
JSL L0300E2
JSL L030314
ADR L051898
JSL L030585
PLX
INC L05188C
LDA L05188C
INX
CPX #$000B
BCS L05187C
BRL L0517EE
L05187C BRL L051738
L05187F JSL L030035
DB $02
DB $15
DB $00
DB $4F
JSL L0300D1
RTS
L05188C DB $00
DB $00
L05188E DB $00
DB $00
L051890 DB $00
DB $00
L051892 DB $00
DB $00
L051894 DB $00
DB $00
L051896 DB $00
DB $00
L051898 DB $14
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L0518AD PHP
REP #$30
JSR L050245
LDX $D0
LDY $D2
BCC L0518FF
PHA
PHA
PEA $0001
PEA $0000
LDA $FE
ORA #$0400
PHA
PEA $8008
PHA
PHA
_NewHandle
PLX
PLY
BCC L0518DA
PLP
SEC
RTS
L0518DA PHB
PHY
PLB
LDA |$0000,X
STA $D4
LDA |$0002,X
STA $D6
PLB
PLB
PHY
LDA #$0000
TAY
L0518EE STA [$D4],Y
INY
INY
BNE L0518EE
LDA #$0D20
STA [$D4]
LDA #$0002
STA $D8
PLY
L0518FF PLP
CLC
RTS
L051902 ENT
PHB
PHK
PLB
PHP
REP #$30
JSR L0518AD
BCC L051911
PLP
PLB
SEC
RTL
L051911 STX $D0
STY $D2
JSL L030035
DB $00
DB $17
DB $00
DB $4F
JSL L0300D1
JSR L051C88
STZ L051978
LDA #$000A
CMP L051CA4
BCC L051933
LDA L051CA4
DEC
L051933 STA L05197A
PHA
SEC
SBC L051978
STA L051980
STZ L05197E
PLX
JSR L051ABC
STY L051B82
JSR L051984
L05194B JSR L0519A4
LDY L051B82
JSR L051AF1
L051954 JSR L051AD5
AND #$007F
PHA
LDAL $E0C025
AND #$0080
ORA $01,S
STA $01,S
PLA
JSR L051CD1
REP #$30
BCS L051972
BVS L05194B
BCC L051954
L051972 JSR L0503C5
PLP
PLB
RTL
L051978 DB $00
DB $00
L05197A DB $00
DB $00
L05197C DB $00
DB $00
L05197E DB $00
DB $00
L051980 DB $00
DB $00
L051982 DB $00
DB $00
L051984 LDA #$0009
STA L05197C
LDA #$FFFF
STA L051982
RTS
L051991 LDA L05197C
EOR #$0029
STA L05197C
LDA #$FFFF
EOR L051982
STA L051982
RTS
L0519A4 SEP #$20
L0519A6 LDAL $E0C019
BPL L0519A6
REP #$20
LDY L051B82
SEC
LDA L05197A
SBC L051978
TAX
BEQ L0519C1
L0519BB JSR L051CB9
DEX
BNE L0519BB
L0519C1 LDA #$0000
L0519C4 PHA
JSR L0519D0
PLA
INC
CMP #$0018
BCC L0519C4
RTS
L0519D0 PHY
JSL L03006F
JSR L051AA1
PLY
SEP #$20
LDA #$00
XBA
STZ L051A9A
STZ L051AA0
LDX #$0000
LDA [$D4],Y
CMP #$3B
BNE L0519F3
LDA L051A9D
TAX
LDA #$2A
L0519F3 STA L051A9F
L0519F6 LDA [$D4],Y
BNE L0519FD
BRL L051A92
L0519FD CMP #$0D
BNE L051A04
BRL L051A92
L051A04 CMP #$20
BNE L051A4F
LDA L051A9F
CMP #$2A
BEQ L051A4D
LDA L051AA0
BNE L051A4D
INY
LDA [$D4],Y
DEY
CMP #$3B
BEQ L051A29
LDA L051A9A
BEQ L051A3F
CMP #$03
BCS L051A4D
CMP #$02
BCC L051A34
L051A29 TXA
CMP L051A9D
BCS L051A4D
LDA L051A9D
BRA L051A48
L051A34 TXA
CMP L051A9C
BCS L051A4D
LDA L051A9C
BRA L051A48
L051A3F TXA
CMP L051A9B
BCS L051A4D
LDA L051A9B
L051A48 TAX
DEX
INC L051A9A
L051A4D LDA #$A0
L051A4F PHY
PHX
PHA
REP #$20
TXA
LSR
TAY
SEP #$20
STAL $E0C054
BCS L051A63
STAL $E0C055
L051A63 PLA
ORA #$80
STA [$28],Y
STAL $E0C054
EOR L051AA0
BEQ L051A7E
BPL L051A81
EOR L051AA0
CMP #$A7
BEQ L051A7E
CMP #$A2
BNE L051A81
L051A7E STA L051AA0
L051A81 PLX
PLY
INX
CPX #$0050
BCS L051A8F
INY
BEQ L051A8F
BRL L0519F6
L051A8F JSR L051CA6
L051A92 CMP #$01
BCC L051A97
INY
L051A97 REP #$20
RTS
L051A9A DB $00
L051A9B DB $11
L051A9C DB $19
L051A9D DB $23
DB $50
L051A9F DB $00
L051AA0 DB $00
L051AA1 PHP
SEP #$20
REP #$10
LDA #$A0
LDY #$0027
L051AAB STA [$28],Y
STAL $E0C055
STA [$28],Y
STAL $E0C054
DEY
BPL L051AAB
PLP
RTS
L051ABC SEP #$20
LDY #$0000
CPX #$0000
BEQ L051AD2
L051AC6 LDA [$D4],Y
BEQ L051AD2
INY
CMP #$0D
BNE L051AC6
DEX
BNE L051AC6
L051AD2 REP #$20
RTS
L051AD5 LDX L05197E
LDY L051980
JSL L0300E2
LDA L05197C
JSL L030593
JSL L03034A
RTS
LDX L05197A
JSR L051ABC
L051AF1 STY L051B82
LDA L051980
JSL L03006F
SEP #$20
LDX #$0000
L051B00 LDA [$D4],Y
STA L051B86,X
INY
INX
CMP #$00
BEQ L051B0F
CMP #$0D
BNE L051B00
L051B0F TXA
STA L051B85
STA L051B84
JSR L051B62
REP #$20
JSR L052093
RTS
L051B1F JSR L05210A
SEP #$21
LDY L051B82
LDA L051B85
SBC L051B84
BEQ L051B48
BPL L051B3E
EOR #$FF
INC
REP #$20
AND #$00FF
JSR L052358
BRA L051B46
L051B3E REP #$20
AND #$00FF
JSR L052317
L051B46 BCS L051B61
L051B48 SEP #$20
LDA L051B85
LDY L051B82
LDX #$0000
L051B53 PHA
LDA L051B86,X
STA [$D4],Y
INX
INY
PLA
DEC
BNE L051B53
REP #$20
L051B61 RTS
L051B62 PHP
SEP #$20
STZ L051C86
STZ L051C87
LDA L051B86
CMP #$3B
BNE L051B74
LDA #$2A
L051B74 CMP #$2A
BNE L051B80
LDA #$FF
STA L051C86
STA L051C87
L051B80 PLP
RTS
L051B82 DB $00
DB $00
L051B84 DB $00
L051B85 DB $00
L051B86 DB $00
L051B87 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L051C83 DB $00
L051C84 DB $00
L051C85 DB $00
L051C86 DB $00
L051C87 DB $00
L051C88 SEP #$20
LDX #$0000
TXY
L051C8E LDA [$D4],Y
INY
CMP #$00
BEQ L051C9C
CMP #$0D
BNE L051C8E
INX
BNE L051C8E
L051C9C REP #$20
INX
STX L051CA4
TXA
RTS
L051CA4 DW $0000
L051CA6 SEP #$20
L051CA8 LDA [$D4],Y
BEQ L051CB1
INY
CMP #$0D
BNE L051CA8
L051CB1 LDA [$D4],Y
REP #$20
AND #$007F
RTS
L051CB9 SEP #$20
CPY #$0000
BEQ L051CCE
DEY
L051CC1 CPY #$0000
BEQ L051CCE
DEY
LDA [$D4],Y
CMP #$0D
BNE L051CC1
INY
L051CCE REP #$20
RTS
L051CD1 SEP #$20
CMP #$80
BCC L051CDA
BRL L051CE7
L051CDA CMP #$20
BCS L051CE1
BRL L051F16
L051CE1 JSR L0521BC
CLC
CLV
RTS
L051CE7 LDX L051CFD
L051CEA CMP L051CFF-1,X
BEQ L051CF5
DEX
BNE L051CEA
CLC
CLV
RTS
L051CF5 REP #$20
TXA
ASL
TAX
JMP (L051D13-2,X)
L051CFD DW L051D13-L051CFF ; was $14 (= 20)
L051CFF DB $D1 ; Q
db $f1 ; q
DB $8A ; DOWN-ARROW
DB $8B ; UP-ARROW
DB $95 ; RIGHT-ARROW
DB $88 ; LEFT-ARROW
DB $DA ; Z
db $fa ; z
DB $C2 ; B
db $e2 ; b
DB $CE ; N
db $ee ; n
DB $D4 ; T
db $f4 ; t
DB $89 ; CTRL-I
DB $C4 ; D
db $e4 ; d
DB $C9 ; I
db $e9 ; i
DB $FF ; DEL
DB $D8 ; X - Not implemented
DB $C3 ; C - Not implemented
DB $D6 ; V - Not implemented
DB $C6 ; F - Not implemented
DB $D7 ; W - Not implemented
DB $C5 ; E - Not implemented
DB $CF ; O - Not implemented
L051D13 DA L051DFA ; Q
da L051DFA ; q
DA L051D73 ; DOWN-ARROW
DA L051D6E ; UP-ARROW
DA L051D7D ; RIGHT-ARROW
DA L051D78 ; LEFT-ARROW
DA L051D69 ; Z
da L051D69 ; z
DA L051D3E ; B
da L051D3E ; b
DA L051D51 ; N
da L051D51 ; n
DA L051DFF ; T
da L051DFF ; t
DA L051E11 ; CTRL-I
DA L051E6D ; D
da L051E6D ; d
DA L051E96 ; I
da L051E96 ; i
DA L051E3D ; DEL
DA L051EC6 ; X
DA L051EC6 ; C
DA L051EC6 ; V
DA L051EC6 ; F
DA L051EC6 ; W
DA L051EC6 ; E
DA L051EC6 ; O
CLC
CLV
RTS
L051D3E JSR L051B1F
STZ L051978
STZ L05197A
STZ L051B82
STZ L051980
SEP #$40
CLC
RTS
L051D51 JSR L051B1F
LDA $D8
DEC
STA L051B82
LDA L051CA4
DEC
STA L05197A
L051D61 LDA #$0000
STA L051DF8
BRA L051D86
L051D69 LDA #$0000
BRA L051D80
L051D6E LDA #$FFF6
BRA L051D80
L051D73 LDA #$000A
BRA L051D80
L051D78 LDA #$FFE9
BRA L051D80
L051D7D LDA #$0017
L051D80 STA L051DF8
JSR L051B1F
L051D86 LDA L05197A
CLC
ADC L051DF8
BPL L051D9C
BIT L051DF8
BPL L051D9C
BIT L05197A
BMI L051D9C
LDA #$0000
L051D9C CMP L051CA4
BCC L051DA5
LDA L051CA4
DEC
L051DA5 TAY
SEC
SBC L05197A
BPL L051DB0
EOR #$FFFF
INC
L051DB0 TAX
TYA
STA L05197A
SEC
SBC #$000A
BPL L051DC3
BIT L05197A
BMI L051DC3
LDA #$0000
L051DC3 STA L051978
LDY L051B82
TXA
BEQ L051DDC
L051DCC BIT L051DF8
BPL L051DD6
JSR L051CB9
BRA L051DD9
L051DD6 JSR L051CA6
L051DD9 DEX
BNE L051DCC
L051DDC JSR L051AF1
SEC
LDA L05197A
SBC L051978
CMP #$000A
BCC L051DEE
LDA #$000A
L051DEE STA L051980
STZ L05197E
SEP #$40
CLC
RTS
L051DF8 DB $00
DB $00
L051DFA JSR L051B1F
SEC
RTS
L051DFF JSR L051B1F
LDA L051FCE
STA L051B82
LDA L051FD0
STA L05197A
BRL L051D61
L051E11 PHP
SEP #$30
LDX L051C85
L051E17 CPX #$00
BEQ L051E33
DEX
LDA L051B86,X
CMP #$20
BEQ L051E17
CPX #$00
BEQ L051E33
L051E27 DEX
LDA L051B86,X
INX
CMP #$20
BEQ L051E33
DEX
BNE L051E27
L051E33 STX L051C85
JSR L051FF8
PLP
CLC
CLV
RTS
MX %00
L051E3D JSR L051B1F
LDA L05197A
BEQ L051E92
LDA L051980
AND #$00FF
BEQ L051E92
DEC L05197A
DEC L051980
LDY L051B82
JSR L051CB9
JSR L051AF1
JSR L051E6D
PHP
LDA L051978
BEQ L051E6B
DEC L051978
INC L051980
L051E6B PLP
RTS
L051E6D PHP
SEP #$30
STZ L05197E
REP #$30
JSR L05210A
LDA L051B86
AND #$00FF
BEQ L051E91
LDA L051B84
AND #$00FF
LDY L051B82
JSR L052358
BCS L051E91
DEC L051CA4
L051E91 PLP
L051E92 SEP #$40
CLC
RTS
L051E96 JSR L051B1F
STZ L05197E
JSR L051EA3
SEP #$40
CLC
RTS
L051EA3 PHP
SEP #$20
REP #$20
LDA #$0001
LDY L051B82
PHY
JSR L052317
PLY
BCS L051EC3
SEP #$20
LDA #$0D
STA [$D4],Y
REP #$20
INC L051CA4
PLP
CLC
RTS
L051EC3 PLP
SEC
RTS
L051EC6 JSR L051B1F
JSL L03074E
DB $06
DB $0C
DB $24
DB $4F
LDY #$0008
LDX #$0028
JSL L0300E2
JSL L0302E1
STR "Not yet implemented."
LDA #$00DF
JSL L030593
LDY #$000A
LDX #$0026
JSL L0300E2
JSL L03034A
JSL L030035
DB $00
DB $17
DB $00
DB $4F
JSR L0519A4
CLC
RTS
L051F16 LDX L051F2C
L051F19 CMP L051F2D,X
BEQ L051F24
DEX
BNE L051F19
CLC
CLV
RTS
L051F24 REP #$20
TXA
ASL
TAX
JMP (L051F39,X)
L051F2C DB $0D
L051F2D DB $00
DB $0A
DB $0B
DB $15
DB $08
DB $05
DB $14
DB $09
DB $02
DB $0E
DB $04
DB $19
L051F39 DB $0D
DB $1B
DA L051F58
DA L051F93
DA L051FD2
DA L051FE6
DA L051FB9
DA L051FBF
DA L052132
DA L052167
DA L052170
DA L052183
DA L052189
DA L0521A3
DA L051F58
CLC
CLV
RTS
L051F58 JSR L051B1F
LDA L05197A
INC
CMP L051CA4
BCC L051F72
LDY L051B82
JSR L051CA6
STY L051B82
JSR L051EA3
BCS L051F89
L051F72 INC L05197A
LDY L051B82
JSR L051CA6
JSR L051AF1
LDA L051980
CMP #$0017
BEQ L051F8C
INC L051980
L051F89 CLC
CLV
RTS
L051F8C INC L051978
SEP #$40
CLC
RTS
L051F93 LDA L05197A
BEQ L051FAF
JSR L051B1F
DEC L05197A
LDY L051B82
JSR L051CB9
JSR L051AF1
LDA L051980
BEQ L051FB2
DEC L051980
L051FAF CLC
CLV
RTS
L051FB2 DEC L051978
SEP #$40
CLC
RTS
L051FB9 JSR L051991
CLC
CLV
RTS
L051FBF LDA L051B82
STA L051FCE
LDA L05197A
STA L051FD0
CLC
CLV
RTS
L051FCE DB $00
DB $00
L051FD0 DB $00
DB $00
L051FD2 SEP #$30
LDA L05197E
CMP #$4F
BCS L051FDE
INC L051C85
L051FDE REP #$30
JSR L051FF8
CLC
CLV
RTS
L051FE6 SEP #$30
LDA L051C85
BEQ L051FDE
DEC L051C85
REP #$30
JSR L051FF8
CLC
CLV
RTS
L051FF8 PHP
SEP #$30
JSR L051B62
STZ L051AA0
LDX L051C85
CPX L051B85
BCC L052024
LDX L051B85
DEX
LDA L051B86,X
PHA
LDA #$20
L052013 STA L051B86,X
INX
CPX L051C85
BCC L052013
PLA
STA L051B86,X
INX
STX L051B85
L052024 LDY #$00
TYX
STX L051A9A
LDA L051B86
CMP #$3B
BNE L052034
LDY L051A9D
L052034 CPX L051C85
BEQ L05208E
LDA L051B86,X
CMP #$20
BNE L052070
BIT L051C86
BMI L052070
BIT L051AA0
BMI L052070
LDA L051A9A
CMP #$03
BCS L052070
LDA L051B87,X
CMP #$3B
BNE L05205E
LDY L051A9D
DEY
BRA L052070
L05205E PHX
LDX L051A9A
TYA
CMP L051A9B,X
BCS L05206C
LDY L051A9B,X
DEY
L05206C INC L051A9A
PLX
L052070 LDA L051B86,X
ORA #$80
EOR L051AA0
BEQ L052087
BPL L05208A
EOR L051AA0
CMP #$A2
BEQ L052087
CMP #$A7
BNE L05208A
L052087 STA L051AA0
L05208A INY
INX
BRA L052034
L05208E STY L05197E
PLP
RTS
L052093 PHP
SEP #$30
STZ L051AA0
STZ L051A9A
LDY #$00
TYX
L05209F LDA L051B86,X
BEQ L0520A8
CMP #$0D
BNE L0520B3
L0520A8 STA L051B87,X
LDA #$20
STA L051B86,X
INC L051B85
L0520B3 CPY L05197E
BCS L0520FA
CMP #$20
BNE L0520DC
BIT L051C86
BMI L0520DC
BIT L051AA0
BMI L0520DC
PHX
LDX L051A9A
CPX #$03
BCS L0520D8
TYA
CMP L051A9B,X
BCS L0520D8
LDY L051A9B,X
DEY
L0520D8 PLX
INC L051A9A
L0520DC LDA L051B86,X
ORA #$80
EOR L051AA0
BEQ L0520F3
BPL L0520F6
EOR L051AA0
CMP #$A2
BEQ L0520F3
CMP #$A7
BNE L0520F6
L0520F3 STA L051AA0
L0520F6 INY
INX
BRA L05209F
L0520FA BEQ L0520FD
DEX
L0520FD STX L051C85
REP #$30
JSR L05210A
JSR L051FF8
PLP
RTS
L05210A PHP
SEP #$30
LDX L051B85
LDA L051B85,X
PHA
L052114 DEX
BEQ L05211E
LDA L051B85,X
CMP #$20
BEQ L052114
L05211E INX
PLA
STA L051B85,X
CMP #$0D
BEQ L05212D
LDA #$0D
STA L051B86,X
INX
L05212D STX L051B85
PLP
RTS
L052132 PHP
SEP #$30
LDA L05197E
CMP #$4F
BCS L052156
LDX L051C85
L05213F LDA L051B86,X
BEQ L05215A
CMP #$0D
BEQ L05215A
CMP #$20
BEQ L05214F
INX
BNE L05213F
L05214F INX
STX L051C85
JSR L051FF8
L052156 PLP
CLC
CLV
RTS
L05215A STA L051B87,X
LDA #$20
STA L051B86,X
INC L051B85
BRA L05214F
L052167 STZ L051C85
JSR L051FF8
CLV
CLC
RTS
MX %00
L052170 JSR L05210A
LDA L051B85
AND #$00FF
DEC
STA L051C85
JSR L051FF8
CLV
CLC
RTS
L052183 JSR L0522F0
CLV
CLC
RTS
L052189 PHP
SEP #$30
LDX L051B85
LDA L051B85,X
LDX L051C85
INX
STA L051B85,X
STX L051B85
JSR L052214
PLP
CLV
CLC
RTS
L0521A3 STZ L05197E
LDA L05197A
INC
CMP L051CA4
BCC L0521B2
BRL L051F58
L0521B2 JSR L051F58
JSR L051EA3
SEP #$40
CLC
RTS
L0521BC SEP #$30
CMP #$7F
BNE L0521C5
BRL L0522CE
L0521C5 PHA
LDX L051B85
BIT L051982
BMI L0521DF
DEX
CPX L051C85
BNE L0521ED
LDA L051B86,X
STA L051B87,X
INC L051B85
BRA L0521ED
L0521DF LDA L051B85,X
STA L051B86,X
DEX
BEQ L0521ED
CPX L051C85
BCS L0521DF
L0521ED LDX L051C85
PLA
STA L051B86,X
BIT L051982
BPL L05220B
LDA L051B85
CMP #$FE
BNE L052208
LDA L051C84
STA L051C83
BRA L05220B
L052208 INC L051B85
L05220B REP #$30
JSR L051FD2
JSR L052214
RTS
L052214 JSR L051FF8
JSR L051AA1
JSR L051B62
SEP #$30
STZ L051AA0
LDY #$00
LDA #$00
XBA
STZ L051A9A
LDX #$00
LDA L051B86
CMP #$3B
BNE L052238
LDX L051A9D
LDA #$2A
L052238 STA L051A9F
L05223B LDA L051B86,Y
BNE L052243
BRL L0522CB
L052243 CMP #$0D
BNE L05224A
BRL L0522CB
L05224A CMP #$20
BNE L052290
LDA L051A9F
CMP #$2A
BEQ L05228E
LDA L051AA0
BNE L05228E
LDA L051B87,Y
CMP #$3B
BEQ L05226E
LDA L051A9A
BEQ L052282
CMP #$03
BCS L05228E
CMP #$02
BCC L052278
L05226E CPX L051A9D
BCS L05228E
LDX L051A9D
BRA L05228A
L052278 CPX L051A9C
BCS L05228E
LDX L051A9C
BRA L05228A
L052282 CPX L051A9B
BCS L05228E
LDX L051A9B
L05228A INC L051A9A
DEX
L05228E LDA #$A0
L052290 PHY
PHX
PHA
TXA
LSR
TAY
STAL $E0C054
BCS L0522A0
STAL $E0C055
L0522A0 PLA
ORA #$80
STA [$28],Y
STAL $E0C054
EOR L051AA0
BEQ L0522BB
BPL L0522BE
EOR L051AA0
CMP #$A2
BEQ L0522BB
CMP #$A7
BNE L0522BE
L0522BB STA L051AA0
L0522BE PLX
PLY
INX
CPX #$50
BCS L0522CB
INY
BEQ L0522CB
BRL L05223B
L0522CB REP #$30
RTS
L0522CE SEP #$30
LDX L051C85
BEQ L0522E7
L0522D5 LDA L051B86,X
STA L051B85,X
BEQ L0522E4
CMP #$0D
BEQ L0522E4
INX
BNE L0522D5
L0522E4 STX L051B85
L0522E7 REP #$30
JSR L051FE6
JSR L052214
RTS
L0522F0 SEP #$30
LDX L051C85
INX
CPX L051B85
BEQ L052311
DEX
L0522FC LDA L051B86,X
BEQ L05230E
CMP #$0D
BEQ L05230E
LDA L051B87,X
STA L051B86,X
INX
BNE L0522FC
L05230E DEC L051B85
L052311 REP #$30
JSR L052214
RTS
L052317 PHP
REP #$30
CMP #$0000
BEQ L052355
STA L0523A8
STY $00
CLC
ADC $D8
BCC L05232C
PLP
SEC
RTS
L05232C LDY $D8
INY
STA $D8
TYA
EOR $00
LSR
BCC L052338
INY
L052338 CLC
LDA L0523A8
ADC $D4
STA $E4
LDA #$0000
ADC $D6
STA $E6
L052347 LDA [$D4],Y
STA [$E4],Y
DEY
DEY
CPY $00
BNE L052347
LDA [$D4],Y
STA [$E4],Y
L052355 PLP
CLC
RTS
L052358 PHP
REP #$30
CMP #$0000
BEQ L0523A3
STA L0523A8
SEC
LDA $D8
SBC L0523A8
BCS L05236E
PLP
SEC
RTS
L05236E PHA
CLC
LDA L0523A8
ADC $D4
STA $E4
LDA #$0000
ADC $D6
STA $E6
SEP #$20
LDA [$E4],Y
STA [$D4],Y
REP #$20
TYA
EOR $D8
LSR
BCC L05238D
INY
L05238D BRA L052395
L05238F LDA [$E4],Y
STA [$D4],Y
INY
INY
L052395 CPY $D8
BEQ L05238F
BCC L05238F
PLY
STY $D8
LDA #$0000
STA [$D4],Y
L0523A3 PLP
CLC
RTS
DB $00
DB $00
L0523A8 DB $00
DB $00
L0523AA ENT
PHB
PHK
PLB
PHP
REP #$30
STA L0500F5
STY L0500F5+2
STA $00
STY $02
ORA $02
BEQ L0523F0
PEA ^L0500F3
PEA L0500F3
PEA $200E ; ExpandPath
JSL GSOS2
BCS L05241D
LDA [$00]
TAY
INY
LDX L050143
INX
SEP #$20
L0523D7 LDA [$00],Y
AND #$7F
JSR L052478
CMP L050143,X
BNE L0523EE
LDA [$00],Y
AND #$7F
STA L050143,X
DEX
DEY
BNE L0523D7
L0523EE REP #$20
L0523F0 JSR L050245
BCC L0523F9
PLP
PLB
CLC
RTL
L0523F9 PEA ^L052483
PEA L052483
PEA $2001 ; Create
JSL GSOS2
BCC L05241F
CMP #$0047
BEQ L052410
BRL L05245F
L052410 PEA ^L052483
PEA L052483
PEA $2005 ; SetFileInfo
JSL GSOS2
L05241D BCS L05245F
L05241F PEA ^L052493
PEA L052493
PEA $2010 ; Open
JSL GSOS2
BCS L05245F
LDA L052495
STA L05249D
STA L0524AD
JSR L050245
LDA $D4
STA L05249F
LDA $D6
STA L05249F+2
LDA $D8
STA L0524A3
PEA ^L05249B
PEA L05249B
PEA $2013 ; Write
JSL GSOS2
BCS L05245F
JSR L052466
PLP
PLB
CLC
RTL
L05245F JSR L052466
PLP
PLB
SEC
RTL
L052466 PHP
PHA
PEA ^L0524AB
PEA L0524AB
PEA $2014 ; Close
JSL GSOS2
PLA
PLP
RTS
MX %11
L052478 CMP #$61
BCC L052482
CMP #$7B
BCS L052482
AND #$5F
L052482 RTS
L052483 DW $0005 ; Parms for SetFileInfo
ADRL L050143 ; file name
DW $00C3 ; access
DW $0004 ; file type
ADRL $00000000 ; aux type
DS 2 ; (null field)
L052493 DW $0002 ; Parms for Open
L052495 DW $0000 ; ref num
ADRL L050143 ; path name
L05249B DW $0004 ; Parms for Write
L05249D DW $0000 ; ref num
L05249F ADRL $00000000 ; buffer ptr
L0524A3 ADRL $00000000 ; request count
ADRL $00000000 ; transfer count
L0524AB DW $0001 ; Parms for Close
L0524AD DW $0000 ; ref num