Files
2026-05-01 22:09:22 +02:00

9047 lines
197 KiB
ArmAsm

*
* ShellPlay v0.71
*
* (c) 1993, Brian Bening
* (s) 2026, Brutal Deluxe Software
*
mx %00
lst off
*-------------------------------
* TOOLS
*-------------------------------
use 4/Int.Macs
use 4/Locator.Macs
use 4/Mem.Macs
use 4/Misc.Macs
use 4/Sch.Macs
use 4/Sound.Macs
use 4/Text.Macs
use 4/Util.Macs
*-------------------------------
* EQUATES
*-------------------------------
KBD EQU $C000
KBDSTROBE EQU $C010
CYAREG EQU $C036
INCBUSYFLG EQU $E10064
DECBUSYFLG EQU $E10068
GSOS EQU $E100A8
GSOSBusy EQU $E100BE
*-------------------------------
* EXTERNALS
*-------------------------------
EXT L02078E
EXT L020D1B
*-------------------------------
* CODE
*-------------------------------
L030000 ENT
BRL L030105
* DB $00
L030004 DW $0000
L030006 DW $0000
L030008 DW $0000
L03000A DW $0000
L03000C ADRL $00000000
L030010 ADRL $00000000
L030014 DB $00
DB $00
L030016 DB $00
DB $00
L030018 DW $0000 ; Max songs in memory
L03001A DB $00 ; Play order
DB $00
DB $00
DB $00
DB $00
DB $00
L030020 DB $00
DB $00
L030022 DB $00
DB $00
L030024 DW $0000 ; mem ID
L030026 DW $0000
L030028 DW $0000
L03002A DW $0000
L03002C DB $00
L03002D DB $00
L03002E DB $00
DB $00
L030030 ADRL $00000000
L030034 DB $00
L030035 STR 'Song list is empty.'
L030049 DW $002B
STR 'Xplayer crime scene, do not disturb.'
L030070 ADRL $00000000
DB $00
DB $00
L030076 DB $00
DB $00
L030078 DW $003C ; volume level
L03007A DW $0046 ; stereo value
L03007C DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L03008A DB $00
DB $00
L03008C DB $00
DB $00
L03008E PHA
PEA ^L0300A6
PEA L0300A6
_SchAddTask
PLA
JSL INCBUSYFLG
JSL DECBUSYFLG
RTL
L0300A6 LDAL GSOSBusy
BMI L0300B5
PEA $0001
JSL L030775
PLX
RTL
L0300B5 PHA
PEA ^L0300A6
PEA L0300A6
_SchAddTask
PLA
LDA #$0005
STAL L0300D0
RTL
L0300CC ADRL $00000000
L0300D0 DW $0000
DW $A55A
REP #$30
JSL INCBUSYFLG
JSL DECBUSYFLG
SEP #$30
RTL
MX %00
L0300E1 DA L03037A ; 1 - StartUp
DA L03034A ; 2 - ShutDown
DA L030124 ; 3 - nada
DA L030124 ; 4 - nada
DA L030525 ; 5 - ???? memory stuff
DA L030336 ; 6 - Stop song and remove from memory
DA L0302C6 ; 7 - Set Tempo
DA L03028C ; 8 - Clear all songs from the playlist
DA L030775 ; 9 - Skip to the previous (0000) or next (0001) song
DA L030285 ; A - Hardware Handshaking (off: 0000, on: FFFF)
DA L030125 ; B - Set Volume (0.100)
DA L030132 ; C - Set Stereo Value (-200..+200)
DA L030150 ; D - ???? Unknown feature -E 0..240
DA L03065A ; E - Play order (0000: sequentially, 0001: randomly)
DA L03066D ; F - Position jumps (0000: don't follow, 0001: follow)
DA L030910 ; 10 - Print out the playlist
DA L030899 ; 11 - Print current song name
DA L0309D7 ; 12 - Goto song number X
MX %00
L030105 CMP #$0013
BCC L030111
LDA #$8101
SEC
BRL L030124
L030111 DEC
ASL
TAX
* PHP
* PHP
* PLA
* AND #$0004 ; 0100 = i flag => 0: IRQ on, 1: IRQ off
* EOR #$0004 ; 1: IRQ on, 0: IRQ off
* STAL L030028
JMP (L0300E1,X)
*-------------------------------
* 03 & 04 / NADA
*-------------------------------
L030124 RTL
*-------------------------------
* 0B / Set Volume
*-------------------------------
L030125 LDA $04,S
CMP #$0065 ; +/- 100
BCS L03015D
STAL L030078 ; volume level
BRA L03015E
*-------------------------------
* 0C / Set Stereo Value
*-------------------------------
L030132 LDY #$0000
LDA $04,S
BPL L030140
LDY #$0001
EOR #$FFFF
INC
L030140 CMP #$00C9 ; +/- 200
BCS L03015D
STAL L03007A ; stereo value
TYA
STAL L030076
BRA L03015E
*-------------------------------
* 0D / Unknown feature -E 0..240
*-------------------------------
L030150 LDA $04,S
CMP #$00F1 ; 240
BCS L03015D
STAL L031576 ; 0..240
BRA L03015E
L03015D RTL
L03015E PHB
PHK
PLB
SEC
LDA #$00FF
SBC L031576
PHA
PHA
PHA
LDA L030078 ; volume level
PHA
_Multiply
LDA $01,S
PHA
PEA $0064 ; /100
_UDivide
LDA $01,S
CMP #$0100
BCC L03018D ; MOD 256
LDA #$00FF
L03018D STA $03,S
PHA
PHA
SEC
LDA #$0064
SBC L03007A ; stereo value
BPL L03019E
EOR #$FFFF
INC
L03019E PHA
_Multiply
LDA $01,S
PHA
PEA $0064
_UDivide
PLA
PLX
XBA
ORA $01,S
PLX
PHP
SEI
STA L031BDC
STA L031BE2
STA L031BDE
STA L031BE0
LDA #$1010
LDX L03007A ; stereo value
CPX #$0065
BCS L0301D5
LDA #$0010
L0301D5 LDX L030076
BEQ L0301DD
EOR #$1010
L0301DD STA L031CD4
STA L031CDA
EOR #$1010
STA L031CD6
STA L031CD8
SEP #$30
LDAL $E100CA
STAL $E1C03C
LDX #$A1
LDY #$00
L0301FA TXA
STAL $E1C03E
LDAL $E1C03D
LDAL $E1C03D
AND #$0F
ORA L031CD4,Y
STAL $E1C03D
INX
INY
TXA
STAL $E1C03E
LDAL $E1C03D
LDAL $E1C03D
AND #$0F
ORA L031CD4,Y
STAL $E1C03D
INX
INX
INY
CPY #$08
BNE L0301FA
LDAL $E100CA
ORA #$20
STAL $E1C03C
LDY #$06
L03023B LDA L031DE2,Y
INC
ORA #$40
STAL $E1C03E
REP #$30
LDA L031CC0,Y
AND #$00FF
STA $2A
STA $30
LDA L031BDC,Y
AND #$00FF
STA $2C
JSR L032AFF
LDA $2A
STA $2E
LDA $30
STA $2A
LDA L031BDD,Y
AND #$00FF
STA $2C
JSR L032AFF
SEP #$30
LDA $2E
STAL $E1C03D
LDA $2A
STAL $E1C03D
DEY
DEY
BPL L03023B
PLP
PLB
CLC
RTL
MX %00
*-------------------------------
* 0A / Hardware handshaking
*-------------------------------
L030285 LDA $04,S ; off: 0000, on: FFFF
STAL L03157C ; Hardware handshaking
RTL
*-------------------------------
* 08 / Clear all songs from the playlist
*-------------------------------
L03028C PHB
PHK
PLB
JSL L032401
STZ L030018 ; no songs in memory
STZ L030014
STZ L030016
STZ L030020
STZ L030022
LDA #$0000
PHA
PHA
LDA L03000C+2
PHA
LDA L03000C
PHA
_SetHandleSize
LDA L030024
ORA #$0100
PHA
_DisposeAll
PLB
RTL
*-------------------------------
* 07 / Set Tempo
*-------------------------------
L0302C6 PHD
PHB
PHK
PLB
LDA L030026
TCD
LDA $07,S
CMP #$0003
BCS L0302DA
STA L03000A
BRA L0302E6
L0302DA SEC
SBC #$0003
CMP #$0002
BCS L03030F
STA L030008
L0302E6 LDA L03000A
BNE L0302EE
LDA L030006
L0302EE CMP #$0001
BNE L030312
PHP
SEP #$30
SEI
LDA L03157A
JSR L032FDC
LDA L031579
STA L0315B2
LDA #$00
STA L0315B0
LDA #$01
STA L0315AA
PLP
L03030E CLC
L03030F PLB
PLD
RTL
MX %00
L030312 LDY #$007D
LDA L030008
BEQ L03031D
LDY #$0096
L03031D PHP
SEP #$30
SEI
TYA
JSR L032FDC
LDA L03157B
STA L0315B2
LDA #$00
STA L0315B0
STA L0315AA
PLP
MX %00
BRA L03030E
*-------------------------------
* 06 /
*-------------------------------
L030336 JSL L032401
LDAL L030024
ORA #$0100
PHA
_DisposeAll
RTL
*-------------------------------
* 02 / ShutDown
*-------------------------------
L03034A PHB
PHK
PLB
PEA ^L0300CC
PEA L0300CC
_DelHeartBeat
JSL L0323FC
_SoundShutDown
PEA $0003 ; delete
LDA L03002A ; message ID
PHA
PHA ; handle is not used
PHA
_MessageCenter
LDA L030024 ; return mem ID
PLB
RTL
*-------------------------------
* 01 / StartUp
*-------------------------------
L03037A PHB
PHK
PLB
JSR L03049C
BCS L03039F
brk $bd
LDA L03002E
STA $07,S
LDA L03002C
STA $05,S
XBA
AND #$FF00
ORA #$005C
STA L030000
LDA L03002D
STA L030000+2
BRL L03048A
L03039F brk $be
PHA
_SoundToolStatus
PLA
BEQ L0303B2
PLP ; LoGo - BUG
LDA #$8103
SEC
BRL L03048A
L0303B2 PHA
PEA $1000
_GetNewID
PLA
STA L030024 ; save mem ID
STA L0310C0
LDX #$0000
PHA
PHA
PHX
PEA $0200
PHA
PEA $C005
PHX
PHX
_NewHandle
BCC L0303E1
PLX
PLX
BRL L03048C
L0303E1 PHD
TSC
TCD
LDA [$03]
STA L030026
PLD
PLX
PLX
PHA
CLC
ADC #$0100
PHA
_SoundStartUp
JSL L0323AE
PLA
LDA #$0000
PHA
PHA
PHA
PHA
LDX L030024
PHX
PHA
PHA
PHA
_NewHandle
PLA
STA L03000C
PLA
STA L03000C+2
LDA #$0000
PHA
PHA
PHA
PHA
LDX L030024
PHX
PHA
PHA
PHA
_NewHandle
PLA
STA L030010
PLA
STA L030010+2
PHA
PHA
PEA ^L030000
PEA L030000
_FindHandle
PHD
TSC
TCD
LDY #$0006
LDA L030024 ; mem ID
STA [$03],Y
PLD
PLA
PLA
LDA #^L030000
STA L030070+2
LDA #L030000
STA L030070
PHA ; space for result
PHA
PEA $0001 ; create message
PEA ^L030049 ; record pointer
PEA L030049
_MessageByName
PLA
STA L03002A ; message ID
PLA ; create flag
PEA ^L0300CC
PEA L0300CC
_SetHeartBeat
JSL L03015E
CLC
L03048A PLB
RTL
L03048C PHA
LDA L030024
PHA
_DeleteID
PLA
SEC
BRA L03048A
L03049C STZ L03002C
STZ L03002E
STZ L03002A
PHA ; space for result
PHA
PEA $0000 ; do not create message
PEA ^L030049 ; recordPointer
PEA L030049
_MessageByName
PLY ; message ID
PLA
BCS L030524
STY L03002A
PEA $0002
PHY
PHA
PHA
LDA #$0000
PHA
PHA
LDAL L02078E
PHA
PEA $0000
PHA
PHA
_NewHandle
LDA $03,S
STA L030030+2
LDA $01,S
STA L030030
_MessageCenter
LDA L030030+2
PHA
LDA L030030
PHA
PHD
TSC
TCD
LDY #$0002
LDA [$03],Y
TAX
LDA [$03]
STA $03
STX $05
LDY #$002D
LDA [$03],Y
STA L03002C
INY
INY
LDA [$03],Y
STA L03002E
PLD
PLA
PLA
LDA L030030+2
PHA
LDA L030030
PHA
_DisposeHandle
CLC
L030524 RTS
*-------------------------------
* 05 / Memory stuff
*-------------------------------
L030525 PHD
PHB
PHK
PLB
LDA L030026
TCD
LDA $07,S
BNE L030534
BRL L0305C8
L030534 CLC
ADC L030018
BCS L03053F
CMP #$0FFF
BCC L030545
L03053F LDA #$8102
BRL L0305C8
L030545 PHA
LDA L03000C+2
PHA
LDA L03000C
PHA
LDA $11,S
PHA
LDA $11,S
PHA
JSR L0305D9
BCC L03055C
PLX
BRA L0305C8
L03055C LDA L030010+2
PHA
LDA L030010
PHA
LDA $15,S
PHA
LDA $15,S
PHA
JSR L0305D9
BCC L0305AE
PHA
PHA
PHA
LDA $13,S
PHA
LDA $13,S
PHA
_GetHandleSize
PHA
PHA
LDA L03000C+2
PHA
LDA L03000C
PHA
_GetHandleSize
SEC
PLA
SBC $03,S
STA $03,S
PLA
SBC $03,S
STA $03,S
LDA L03000C+2
PHA
LDA L03000C
PHA
_SetHandleSize
PLA
PLX
BRA L0305C8
L0305AE PLA
STA L030018
CMP #$0001
BEQ L0305BA
LDA #$0000
L0305BA STA L0315C2
JSR L030674
LDA L030022
BEQ L0305CE
LDA #$0000
L0305C8 CMP #$0001
PLB
PLD
RTL
L0305CE PLB
PLD
PEA $0001
JSL L030775
PLX
RTL
L0305D9 PHA
PHA
LDA $0D,S
PHA
LDA $0D,S
PHA
_GetHandleSize
PHA
PHA
LDA $0D,S
PHA
LDA $0D,S
PHA
_GetHandleSize
TSC
INC
PHD
TCD
CLC
LDA $00
ADC $04
TAX
LDA $02
ADC $06
PHA
PHX
PEI $10
PEI $0E
_SetHandleSize
BCS L030649
LDY #$0004
LDA [$0E],Y
ORA #$8000
STA [$0E],Y
PEI $0C
PEI $0A
LDY #$0002
LDA [$0E]
CLC
ADC $04
TAX
LDA [$0E],Y
ADC $06
PHA
PHX
PEI $02
PEI $00
_HandToPtr
LDY #$0004
LDA [$0E],Y
AND #$7FFF
STA [$0E],Y
LDA #$0000
L030649 TAY
LDA $08
STA $10
PLD
TSC
CLC
ADC #$0010
TCS
TYA
CMP #$0001
RTS
*-------------------------------
* 0E / Play order (0000: sequentially, 0001: randomly)
*-------------------------------
L03065A PHD
PHB
PHK
PLB
LDA L030026
TCD
LDA $07,S
STA L03001A ; Play order
JSR L030674
PLB
PLD
RTL
*-------------------------------
* 0F / Set Position Jumps
*-------------------------------
L03066D LDA $04,S
STAL L0315A8 ; Position jumps
RTL
*-------------------------------
*
*-------------------------------
L030674 LDY L030020
LDX L030022
LDA L03001A ; Play order
BEQ L030682
BRL L0306BD
L030682 LDA L030010
STA $04
LDA L030010+2
STA $06
LDA [$04]
TAX
LDY #$0002
LDA [$04],Y
STA $06
STX $04
LDA L030018
BEQ L0306B6
DEC
ASL
ASL
ASL
ASL
CLC
ADC #$0002
TAY
LDX L030018
L0306AA TXA
STA [$04],Y
DEX
TYA
SEC
SBC #$0010
TAY
BCS L0306AA
L0306B6 LDA L030020
STA L030022
RTS
L0306BD LDA L030020
LDA L030010
STA $04
LDA L030010+2
STA $06
LDA [$04]
TAX
LDY #$0002
LDA [$04],Y
STA $06
STX $04
JSR L030766
LDA L030018
BEQ L03073E
DEC
ASL
ASL
ASL
ASL
TAY
L0306E4 LDA [$04],Y
AND #$7FFF
STA [$04],Y
TYA
SEC
SBC #$0010
TAY
BCS L0306E4
LDA L030018
ASL
ASL
ASL
ASL
L0306FA PHA
LDA #$0002
L0306FE PHA
L0306FF PHA
PHA
JSR L030741
PHA
LDA L030018
PHA
_UDivide
PLA
PLA
TAX
ASL
ASL
ASL
ASL
TAY
LDA [$04],Y
BMI L0306FF
ORA #$8000
STA [$04],Y
TXA
INC
PLY
STA [$04],Y
CMP L030020
BNE L030734
TYA
LSR
LSR
LSR
LSR
INC
STA L030022
L030734 TYA
CLC
ADC #$0010
CMP $01,S
BCC L0306FE
PLA
L03073E RTS
DW $0000
L030741 CLC
LDX #$000C
LDA L03008A
L030748 ADC L03007C,X
STA L03007C,X
DEX
DEX
BPL L030748
LDX #$000E
L030755 LDA L03007C,X
INC
STA L03007C,X
BNE L030762
DEX
DEX
BPL L030755
L030762 LDA L03007C
RTS
L030766 LDAL $E1C02E
LDX #$000E
L03076D STA L03007C,X
DEX
DEX
BPL L03076D
RTS
*-------------------------------
* 09 / Skip to the previous or next song
*-------------------------------
L030775 PHD
PHB
PHK
PLB
LDA L030026
TCD
LDA L030018
BNE L030785
BRL L03082E
L030785 CLC
LDA L030022
DEC
ADC $07,S
BMI L03079B
CMP L030018
L030791 BCC L0307A1
SBC L030018
CMP L030018
BRA L030791
L03079B CLC
ADC L030018
BMI L03079B
L0307A1 INC
STA L030022
PHA
JSL L032401
LDA L03000C+2
PHA
LDA L03000C
PHA
_HLock
LDA L030010+2
PHA
LDA L030010
PHA
L0307C1 _HLock
L0307C8 LDA L030024
ORA #$0100
PHA
_DisposeAll
LDA L030022
PHA
JSR L030832
PLA
STA L030020
PEI $02
PEI $00
JSL L0309F2
PLX
PLX
BCC L03080F
LDY L030022
DEY
LDA $09,S
BPL L0307FD
DEY
BPL L030806
LDY L030018
BRA L030807
L0307FD INY
CPY L030018
BCC L030806
LDY #$0000
L030806 INY
L030807 TYA
STA L030022
CMP $01,S
BNE L0307C8
L03080F PLA
LDA L03000C+2
PHA
LDA L03000C
PHA
_HUnlock
LDA L030010+2
PHA
LDA L030010
PHA
_HUnlock
L03082E CLC
PLB
PLD
RTL
L030832 LDA L030010
STA $04
LDA L030010+2
STA $06
LDA [$04]
TAX
LDY #$0002
LDA [$04],Y
STA $06
STX $04
LDA L03000C
STA $00
LDA L03000C+2
STA $02
LDA [$00]
TAX
LDY #$0002
LDA [$00],Y
STA $02
STX $00
LDA $03,S
DEC
ASL
ASL
ASL
ASL
ADC #$0002
TAY
LDA [$04],Y
STA $03,S
TAX
BRA L030887
L030870 LDA [$00]
CLC
ADC $00
STA $00
BCC L03087B
INC $02
L03087B CLC
LDA $00
ADC #$0002
STA $00
BCC L030887
INC $02
L030887 DEX
BNE L030870
RTS
L03088B PEA ^L030034
PEA L030034
_WriteLine
RTS
*-------------------------------
* 11 / Print current song name
*-------------------------------
L030899 PHD
PHB
PHK
PLB
LDA L030026
TCD
LDA L030018
BEQ L03090A
LDA L030022
BEQ L03090A
LDA L03000C+2
PHA
LDA L03000C
PHA
_HLock
LDA L030010+2
PHA
LDA L030010
PHA
_HLock
LDA L030022
PHA
JSR L030832
PLA
LDA $00
CLC
ADC #$0002
TAX
LDA $02
ADC #$0000
PHA
PHX
PEA $0000
LDA [$00]
PHA
_TextWriteBlock
LDA L03000C+2
PHA
LDA L03000C
PHA
_HUnlock
LDA L030010+2
PHA
LDA L030010
PHA
_HUnlock
L03090A JSR L03088B
PLB
PLD
RTL
*-------------------------------
* 10 / Print out the playlist
*-------------------------------
L030910 PHD
PHB
PHK
PLB
LDA L030026
TCD
LDA L030018
BNE L03092D
L03091D PEA ^L030035
PEA L030035
_WriteLine
BRL L0309D4
L03092D LDA L03000C+2
PHA
LDA L03000C
PHA
_HLock
LDA L030010+2
PHA
LDA L030010
PHA
_HLock
LDA #$0001
STA L03008C
L030951 LDX #$003E
LDA L03008C
CMP L030022
BEQ L03095F
LDX #$0020
L03095F PHX
_WriteChar
LDA L03008C
PHA
PEA $0004
PEA $0000
PEA $0000
JSL L020D1B
PEA $0020
_WriteChar
LDA L03008C
PHA
JSR L030832
PLA
LDA $00
CLC
ADC #$0002
TAY
LDA $02
ADC #$0000
PHA
PHY
PEA $0000
LDA [$00]
PHA
_TextWriteBlock
JSR L03088B
LDA L03008C
INC
STA L03008C
CMP L030018
BCC L030951
BEQ L030951
LDA L03000C+2
PHA
LDA L03000C
PHA
_HUnlock
LDA L030010+2
PHA
LDA L030010
PHA
_HUnlock
L0309D4 PLB
PLD
RTL
*-------------------------------
* 12 / Goto song number X
*-------------------------------
L0309D7 LDA $04,S ; song 0?
BEQ L0309F0
CMPL L030018 ; max index?
BCC L0309E3
BNE L0309F0
L0309E3 STAL L030022 ; make it current song
PEA $0000
JSL L030775 ; play it
PLA
RTL
L0309F0 SEC
RTL
*-------------------------------
*
*-------------------------------
L0309F2 PHB
PHK
PLB
LDA $05,S
STA L0310D0
LDA $07,S
STA L0310D0+2
JSL GSOS
DW $2010 ; Open
ADRL L0310CC
BCS L030A6D
JSR L030AC7
BCS L030A6F
JSR L030B09
SEC
LDA L0310DE
SBC L0310A8
STA L0310BC
LDA L0310DE+2
SBC L0310AA
STA L0310BE
BPL L030A3D
EOR #$FFFF
STA L0310BE
LDA L0310BC
EOR #$FFFF
INC
STA L0310BC
BNE L030A3D
INC L0310BE
L030A3D LDA L0310BE
BNE L030A4A
LDA L0310BC
CMP #$0800
BCC L030A50
L030A4A SEC
LDA #$8000
BRA L030A6F
L030A50 JSL L030BEC
BCS L030A6F
LDA L0310CE
STA L0310D8
JSL GSOS
DW $2014 ; Close
ADRL L0310D6
JSR L030A84
JSR L030F7A
CLC
L030A6D PLB
RTL
L030A6F PHA
LDA L0310CE
STA L0310D8
JSL GSOS
DW $2014 ; Close
ADRL L0310D6
PLA
SEC
BRA L030A6D
L030A84 LDA L0315C8
AND #$003F
ASL
TAY
LDA L031708,Y
STA $94
LDA L031788,Y
STA $96
LDY #$000E
LDX #$0000
L030A9C LDA [$94],Y
PHA
AND #$000F
CMP #$000F
BNE L030AB3
LDA $01,S
AND #$FF00
CMP #$2000
BCC L030AB2
INX
L030AB2 INX
L030AB3 PLA
DEY
DEY
DEY
DEY
BPL L030A9C
LDY #$0002
CPX #$0002
BCC L030AC3
DEY
L030AC3 STY L030006
RTS
L030AC7 LDA L0310CE
STA L0310E4
STA L0310DC
LDA #L0310F2
STA L0310E6
LDA #^L0310F2
STA L0310E6+2
LDA #$043C
STA L0310EA
STZ L0310EA+2
JSL GSOS
DW $2012 ; Read
ADRL L0310E2
BCS L030B03
LDA L0310EE
CMP #$043C
BNE L030B04
JSL GSOS
DW $2019 ; GetEOF
ADRL L0310DA
L030B03 RTS
MX %00
L030B04 SEC
LDA #$8000
RTS
L030B09 STZ L0310A4
LDA #$043C
STA L0310A6
LDA L03152A
CMP #$2E4D ; M.
BNE L030B22
LDA L03152C
CMP #$2E4B ; K.
BEQ L030B76
L030B22 LDA L03152A
CMP #$4C46 ; FL
BNE L030B3A
LDA L03152C
CMP #$3454 ; T4
BNE L030B3A
LDA #$FFFF
STA L0310A4
BRA L030B76
L030B3A LDA #$0258
STA L0310A6
LDX #$0080
L030B43 LDA L0312C8,X
STA L0314A8,X
DEX
DEX
BPL L030B43
LDX #$01DE
L030B50 STZ L0312C8,X
DEX
DEX
BPL L030B50
LDA L0310CE
STA L0310C4
STZ L0310C8+2
LDA #$01E4
STA L0310C8
LDA #$0003
STA L0310C6
JSL GSOS
DW $2016 ; SetMark
ADRL L0310C2
L030B76 STZ L0310AA
STZ L0310A8
STZ L0310AC
LDY #$0384
L030B82 LDA L03111C,Y
BEQ L030B97
INC L0310AC
XBA
CLC
ADC L0310A8
STA L0310A8
BCC L030B97
INC L0310AA
L030B97 TYA
SEC
SBC #$001E
TAY
BPL L030B82
ASL L0310A8
ROL L0310AA
LDA L0310A6
CLC
ADC L0310A8
STA L0310A8
BCC L030BB4
INC L0310AA
L030BB4 SEP #$20
LDA #$00
LDY #$007F
L030BBB CMP L0314AA,Y
BCS L030BC3
LDA L0314AA,Y
L030BC3 DEY
BPL L030BBB
REP #$20
AND #$00FF
INC
STA L0310AE
XBA
STZ L0310B0
ASL
ROL L0310B0
ASL
ROL L0310B0
CLC
ADC L0310A8
STA L0310A8
LDA L0310AA
ADC L0310B0
STA L0310AA
RTS
L030BEC LDA #$0004
STAL L0315C6
LDA L0314A8
AND #$00FF
STAL L0315C4
TAX
SEP #$20
L030C00 DEX
BMI L030C0C
LDA L0314AA,X
STAL L0315C8,X
BRA L030C00
L030C0C REP #$20
LDA #$4040
LDX #$003E
L030C14 STAL L0316C8,X
DEX
DEX
BPL L030C14
LDA #$0000
LDX #$0000
L030C22 STAL L031648,X
CLC
ADC #$0010
INX
INX
CPX #$0080
BCC L030C22
STZ L0310EA+2
LDA L0310AE
XBA
ASL
ROL L0310EA+2
ASL
ROL L0310EA+2
STA L0310EA
PHA
PHA
LDA L0310EA+2
PHA
LDA L0310EA
PHA
LDA L0310C0
ORA #$0100
PHA
PEA $C000
PEA $0000
PEA $0000
_NewHandle
BCC L030C6B
PLX
PLX
BRL L030D9C
L030C6B TSC
PHD
INC
TCD
LDA [$00]
STAL L031708
STA L0310E6
LDY #$0002
LDA [$00],Y
STAL L031788
STA L0310E6+2
PLD
PLA
PLA
LDX #$0002
L030C8A LDAL L031706,X
CLC
ADC #$0400
STAL L031708,X
LDAL L031786,X
BCC L030C9D
INC
L030C9D STAL L031788,X
INX
INX
CPX #$0080
BCC L030C8A
JSL GSOS
DW $2012 ; Read
ADRL L0310E2
MX %00
JSR L030EF6
LDX #$003E
LDA #$F000
L030CBB STAL L031848,X
STAL L031948,X
STAL L031908,X
DEX
DEX
BPL L030CBB
LDA L0310CE
STA L0310C4
LDY #$0000
LDX #$0002
L030CD7 SEP #$20
LDA L03111F,Y
STAL L031A08,X
LDA L03111E,Y
STAL L031A48,X
REP #$20
LDA L03111C,Y
BNE L030CF1
BRL L030D8A
L030CF1 LDA L031120,Y
BNE L030D04
LDA L031122,Y
BEQ L030D01
XBA
CMP #$0001
BNE L030D04
L030D01 BRL L030D6E
L030D04 LDA L031120,Y
XBA
ASL
STA L0310B4
LDA #$0000
ROL
STA L0310B6
LDA L031122,Y
XBA
ASL
STA L0310B8
STAL L031908,X
LDA #$0000
ROL
STA L0310BA
STAL L031948,X
CLC
LDA L0310B4
ADC L0310B8
STA L0310EA
STAL L031808,X
LDA L0310B6
ADC L0310BA
STA L0310EA+2
STAL L031848,X
LDA L03111C,Y
XBA
ASL
STA L0310C8
LDA #$0000
ROL
STA L0310C8+2
SEC
LDA L0310C8
SBC L0310EA
STA L0310C8
LDA L0310C8+2
SBC L0310EA+2
STA L0310C8+2
JSR L030DAE
BCS L030D9C
BRA L030D8A
L030D6E LDA L03111C,Y
XBA
ASL
STA L0310EA
STAL L031808,X
L030D7A LDA #$0000
ROL
STA L0310EA+2
STAL L031848,X
JSR L030DAE
BCS L030D9C
L030D8A TYA
CLC
ADC #$001E
TAY
INX
INX
CPX #$0040
BCS L030D9A
BRL L030CD7
L030D9A CLC
RTL
L030D9C PHA
LDA L0310C0
ORA #$0100
PHA
_DisposeAll
PLA
SEC
RTL
L030DAE PHY
PHX
LDAL L031948,X
BMI L030DBB
LDA #$0100
BRA L030DBE
L030DBB LDA #$0010
L030DBE CLC
L030DBF ADC L0310EA
TAY
LDA L0310EA+2
BCC L030DC9
INC
L030DC9 PHA
PHA
PHA
PHY
LDA L0310C0
ORA #$0100
PHA
PEA $C000
PEA $0000
PEA $0000
_NewHandle
BCC L030DEC
PLX
PLX
PLX
PLY
SEC
RTS
L030DEC LDA $05,S
TAX
TSC
PHD
TCD
LDA [$01]
STAL L031888,X
STA L0310E6
LDY #$0002
LDA [$01],Y
L030E00 STAL L0318C8,X
STA L0310E6+2
PLD
PLA
PLA
JSL GSOS
DW $2012 ; Read
ADRL L0310E2
MX %00
LDA L0310E6
STA $8C
LDA L0310E6+2
STA $8E
LDA L0310EA+2
LSR
LDA L0310EA
ROR
TAX
LDY #$0000
SEP #$20
L030E2C LDA [$8C],Y
EOR #$80
BNE L030E33
INC
L030E33 STA [$8C],Y
INY
LDA [$8C],Y
EOR #$80
BNE L030E3D
INC
L030E3D STA [$8C],Y
INY
BNE L030E44
INC $8E
L030E44 DEX
BNE L030E2C
REP #$20
LDA $01,S
TAX
LDAL L031888,X
CLC
ADC L0310EA
STA $90
LDAL L0318C8,X
ADC L0310EA+2
STA $92
LDAL L031948,X
BMI L030ECB
LDA #$0002
STA L0310C6
JSL GSOS
DW $2016 ; SetMark
ADRL L0310C2
MX %00
L030E75 LDA $01,S
TAX
LDAL L031888,X
CLC
ADC L0310B4
STAL L031988,X
STA $8C
LDAL L0318C8,X
ADC L0310B6
STAL L0319C8,X
STA $8E
LDA L0310BA
LSR
LDA L0310B8
ROR
TAX
PHA
LDY #$0000
L030EA0 LDA [$8C],Y
STA [$90],Y
INY
INY
CPY #$0100
BEQ L030EC6
DEX
BNE L030EA0
LDA $01,S
ASL
PHA
LDA $8C
SEC
SBC $01,S
STA $8C
LDA $8E
BCS L030EBE
DEC
L030EBE STA $8E
PLA
LDA $01,S
TAX
BRA L030EA0
L030EC6 PLA
L030EC7 PLX
PLY
CLC
RTS
L030ECB LDA $01,S
TAX
CLC
LDAL L031808,X
ADC #$0010
STAL L031808,X
LDAL L031848,X
ADC #$0000
STAL L031848,X
LDA #$0000
LDY #$0000
L030EEB STA [$90],Y
INY
INY
CPY #$0010
BCC L030EEB
BRA L030EC7
L030EF6 LDA L0310E6
STA $94
LDA L0310E6+2
STA $96
LDY #$0002
LDA L0310AE
L030F06 PHA
LDA #$0100
L030F0A PHA
LDA [$94],Y
STA $9A
LDA [$94]
STA $98
XBA
AND #$0FFF
BEQ L030F33
LDX #$0000
L030F1C CMP L03152E,X
BCS L030F2D
INX
INX
CPX #$0048
BCC L030F1C
LDA #$0000
BRA L030F33
L030F2D TXA
LSR
CLC
ADC #$0018
L030F33 SEP #$20
STA $99
LDA $98
AND #$F0
STA $98
LDA $9A
LSR
LSR
LSR
LSR
ORA $98
STA $98
LDA $9A
AND #$0F
BIT L0310A4
BPL L030F58
CMP #$0E
BNE L030F58
LDA #$00
STA $9B
L030F58 STA $9A
REP #$20
LDA $98
XBA
STA [$94]
LDA $9A
STA [$94],Y
LDA #$0004
CLC
ADC $94
STA $94
BCC L030F71
INC $96
L030F71 PLA
DEC
BNE L030F0A
PLA
DEC
BNE L030F06
RTS
L030F7A STZ L0315A6
LDA #$0005
STAL L0315B0
LDA #$0006
STAL L0315B2
SEP #$30
STA L031579
STA L03157B
LDA #$7D
STA L03157A
REP #$30
LDA #$0004
STAL L0315C6
LDA #$0001
STAL L0315B6
LDX #$0012
L030FAB LDA #$0000
STA L031B50,X
STA L031BF8,X
STA L031C20,X
STA L031C34,X
STA L031C48,X
STA L031C5C,X
STA L031C70,X
STA L031CAC,X
STA L031B8C,X
STA L031BA0,X
LDA #$0080
STA L031B3C,X
LDA #$0001
STA L031C98,X
STA L031B64,X
STA L031D9C,X
DEX
DEX
BPL L030FAB
LDA #$0000
STA L0315BC
STA L0315B8
STA L0315B4
LDA L030004
BEQ L030FF6
BRL L031077
L030FF6 STZ L0315AA
LDY #$007D
LDA L03000A
BNE L031004
LDA L030006
L031004 CMP #$0001
BNE L03100E
STA L0315AA
BRA L031016
L03100E LDA L030008
BEQ L031016
LDY #$0096
L031016 PHY
PHP
SEI
SEP #$30
LDA $02,S
JSR L032FDC
LDAL $E100CA
ORA #$20
STAL $E1C03C
LDX #$0C
TXA
ORA #$40
STAL $E1C03E
LDA #$00
STAL $E1C03D
STAL $E1C03D
TXA
ORA #$80
STAL $E1C03E
LDA #$FF
STAL $E1C03D
STAL $E1C03D
TXA
ORA #$C0
STAL $E1C03E
LDA #$02
STAL $E1C03D
LDA #$01
STAL $E1C03D
TXA
ORA #$A0
STAL $E1C03E
LDA #$01
STAL $E1C03D
LDA #$08
STAL $E1C03D
PLP
PLA
RTS
MX %00
L031077 PHB
PHD
PHK
PLB
LDA L030026
TCD
L03107F JSR L031092
CMP #$001B
BEQ L03108F
php
SEI
JSL L0325DB
* CLI
plp
BRA L03107F
L03108F PLD
PLB
RTS
L031092 SEP #$20
L031094 LDAL KBD
BPL L031094
STAL KBDSTROBE
REP #$20
AND #$007F
RTS
L0310A4 DB $00
DB $00
L0310A6 DB $00
DB $00
L0310A8 DB $00
DB $00
L0310AA DB $00
DB $00
L0310AC DB $00
DB $00
L0310AE DB $00
DB $00
L0310B0 DB $00
DB $00
DB $00
DB $00
L0310B4 DB $00
DB $00
L0310B6 DB $00
DB $00
L0310B8 DB $00
DB $00
L0310BA DB $00
DB $00
L0310BC DB $00
DB $00
L0310BE DB $00
DB $00
L0310C0 DW $0000
L0310C2 DW $0003 ; Parms for SetMark
L0310C4 DW $0000 ; ref num
L0310C6 DW $0000 ; base
L0310C8 ADRL $00000000 ; displacement
L0310CC DW $0003 ; Parms for Open
L0310CE DW $0000 ; ref num
L0310D0 ADRL $00000000 ; path name
DW $0001 ; req access
L0310D6 DW $0001 ; Parms for Close
L0310D8 DW $0000 ; ref num
L0310DA DW $0002 ; Parms for GetEOF
L0310DC DW $0000 ; ref num
L0310DE ADRL $00000000 ; end of file
L0310E2 DW $0004 ; Parms for Read
L0310E4 DW $0000 ; ref num
L0310E6 ADRL $00000000 ; buffer ptr
L0310EA ADRL $00000000 ; request count
L0310EE ADRL $00000000 ; transfer count
L0310F2 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L03111C DB $00
DB $00
L03111E DB $00
L03111F DB $00
L031120 DB $00
DB $00
L031122 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L0312C8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L0314A8 DB $00
DB $00
L0314AA DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L03152A DB $00
DB $00
L03152C DB $00
DB $00
L03152E DB $58
DB $03
DB $28
DB $03
DB $FA
DB $02
DB $D0
DB $02
DB $A6
DB $02
DB $80
DB $02
DB $5C
DB $02
DB $3A
DB $02
DB $1A
DB $02
DB $FC
DB $01
DB $E0
DB $01
DB $C5
DB $01
DB $AC
DB $01
DB $94
DB $01
DB $7D
DB $01
DB $68
DB $01
DB $53
DB $01
DB $40
DB $01
DB $2E
DB $01
DB $1D
DB $01
DB $0D
DB $01
DB $FE
DB $00
DB $F0
DB $00
DB $E2
DB $00
DB $D6
DB $00
DB $CA
DB $00
DB $BE
DB $00
DB $B4
DB $00
DB $AA
DB $00
DB $A0
DB $00
DB $97
DB $00
DB $8F
DB $00
DB $87
DB $00
DB $7F
DB $00
DB $78
DB $00
DB $71
DB $00
L031576 DW $001B
L031578 DB $FF
L031579 DB $06
L03157A DB $7D
L03157B DB $06
L03157C DW $0000 ; Hardware handshaking
L03157E DB $F9
L03157F DB $00
DB $01
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $1E
DB $00
L0315A4 DB $00
DB $00
L0315A6 DB $00
DB $00
L0315A8 DW $0000 ; Position jumps
L0315AA DB $01
DB $00
L0315AC DB $00
DB $00
L0315AE DB $00
DB $00
L0315B0 DB $00
DB $00
L0315B2 DB $00
DB $00
L0315B4 DB $00
DB $00
L0315B6 DB $00
DB $00
L0315B8 DB $00
DB $00
L0315BA DB $00
DB $00
L0315BC DB $00
DB $00
L0315BE DB $00
DB $00
L0315C0 DB $00
DB $00
L0315C2 DB $00
DB $00
L0315C4 DB $00
DB $00
L0315C6 DB $00
DB $00
L0315C8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031648 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L0316C8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031706 DB $00
DB $00
L031708 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031786 DB $00
DB $00
L031788 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031808 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031848 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031888 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L0318C8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031908 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031948 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031988 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L0319C8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031A08 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031A48 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031A88 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031A9C DB $00
L031A9D DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031AB0 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031AC4 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031AD8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031AEC DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031B00 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031B14 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031B3C DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031B50 DB $00
L031B51 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031B64 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031B78 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031B8C DB $00
L031B8D DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031BA0 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031BB4 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031BC8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031BDC DB $A0
L031BDD DB $40
L031BDE DB $A0
DB $40
L031BE0 DB $A0
DB $40
L031BE2 DB $A0
DB $40
L031BE4 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031BF8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031C0C DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031C20 DB $00
L031C21 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031C34 DB $00
L031C35 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031C48 DB $00
L031C49 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031C5C DB $00
L031C5D DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031C70 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031C84 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031C98 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031CAC DB $00
L031CAD DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031CC0 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031CD4 DB $10
L031CD5 DB $10
L031CD6 DB $00
DB $00
L031CD8 DB $00
DB $00
L031CDA DB $10
DB $10
DB $60
DB $60
DB $50
DB $50
DB $40
DB $40
DB $30
DB $30
DB $20
DB $20
DB $10
DB $10
L031CE8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031CFC DB $00
L031CFD DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031D10 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031D24 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031D38 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031D4C DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031D60 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031D74 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031D88 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031D9C DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
L031DB0 DB $00
DB $00
DB $04
DB $00
DB $08
DB $00
DB $0C
DB $00
DB $10
DB $00
DB $14
DB $00
DB $18
DB $00
DB $1C
DB $00
DB $20
DB $00
DB $24
DB $00
L031DC4 DB $00
DB $00
DB $00
DB $01
DB $01
DB $01
DB $02
DB $02
DB $02
DB $03
DB $03
DB $03
DB $04
DB $04
DB $04
DB $05
DB $05
DB $05
DB $06
DB $06
DB $06
DB $07
DB $07
DB $07
DB $08
DB $08
DB $08
DB $09
DB $09
DB $09
L031DE2 DB $00
DB $00
DB $03
DB $00
DB $06
DB $00
DB $09
DB $00
DB $0C
DB $00
DB $0F
DB $00
DB $12
DB $00
DB $15
DB $00
DB $18
DB $00
DB $1B
DB $00
DB $00
DB $01
DB $00
DB $02
DB $00
DB $04
DB $00
DB $08
L031DFE DB $00
DB $18
DB $31
DB $4A
DB $61
DB $78
DB $8D
DB $A1
DB $B4
DB $C5
DB $D4
DB $E0
DB $EB
DB $F4
DB $FA
DB $FD
DB $FF
DB $FD
DB $FA
DB $F4
DB $EB
DB $E0
DB $D4
DB $C5
DB $B4
DB $A1
DB $8D
DB $78
DB $61
DB $4A
DB $31
DB $18
L031E1E DB $00
DB $00
DB $25
DB $00
DB $4A
DB $00
DB $6F
DB $00
DB $94
DB $00
DB $B9
DB $00
DB $DE
DB $00
DB $03
DB $01
DB $28
DB $01
DB $4D
DB $01
DB $72
DB $01
DB $97
DB $01
DB $BC
DB $01
DB $E1
DB $01
DB $06
DB $02
DB $2B
DB $02
L031E3E DB $58
DB $03
DB $28
DB $03
DB $FA
DB $02
DB $D0
DB $02
DB $A6
DB $02
DB $80
DB $02
DB $5C
DB $02
DB $3A
DB $02
DB $1A
DB $02
DB $FC
DB $01
DB $E0
DB $01
DB $C5
DB $01
DB $AC
DB $01
DB $94
DB $01
DB $7D
DB $01
DB $68
DB $01
DB $53
DB $01
DB $40
DB $01
DB $2E
DB $01
DB $1D
DB $01
DB $0D
DB $01
DB $FE
DB $00
DB $F0
DB $00
DB $E2
DB $00
DB $D6
DB $00
DB $CA
DB $00
DB $BE
DB $00
DB $B4
DB $00
DB $AA
DB $00
DB $A0
DB $00
DB $97
DB $00
DB $8F
DB $00
DB $87
DB $00
DB $7F
DB $00
DB $78
DB $00
DB $71
DB $00
DB $00
DB $00
DB $52
DB $03
DB $22
DB $03
DB $F5
DB $02
DB $CB
DB $02
DB $A2
DB $02
DB $7D
DB $02
DB $59
DB $02
DB $37
DB $02
DB $17
DB $02
DB $F9
DB $01
DB $DD
DB $01
DB $C2
DB $01
DB $A9
DB $01
DB $91
DB $01
DB $7B
DB $01
DB $65
DB $01
DB $51
DB $01
DB $3E
DB $01
DB $2C
DB $01
DB $1C
DB $01
DB $0C
DB $01
DB $FD
DB $00
DB $EF
DB $00
DB $E1
DB $00
DB $D5
DB $00
DB $C9
DB $00
DB $BD
DB $00
DB $B3
DB $00
DB $A9
DB $00
DB $9F
DB $00
DB $96
DB $00
DB $8E
DB $00
DB $86
DB $00
DB $7E
DB $00
DB $77
DB $00
DB $71
DB $00
DB $00
DB $00
DB $4C
DB $03
DB $1C
DB $03
DB $F0
DB $02
DB $C5
DB $02
DB $9E
DB $02
DB $78
DB $02
DB $55
DB $02
DB $33
DB $02
DB $14
DB $02
DB $F6
DB $01
DB $DA
DB $01
DB $BF
DB $01
DB $A6
DB $01
DB $8E
DB $01
DB $78
DB $01
DB $63
DB $01
DB $4F
DB $01
DB $3C
DB $01
DB $2A
DB $01
DB $1A
DB $01
DB $0A
DB $01
DB $FB
DB $00
DB $ED
DB $00
DB $E0
DB $00
DB $D3
DB $00
DB $C7
DB $00
DB $BC
DB $00
DB $B1
DB $00
DB $A7
DB $00
DB $9E
DB $00
DB $95
DB $00
DB $8D
DB $00
DB $85
DB $00
DB $7D
DB $00
DB $76
DB $00
DB $70
DB $00
DB $00
DB $00
DB $46
DB $03
DB $17
DB $03
DB $EA
DB $02
DB $C0
DB $02
DB $99
DB $02
DB $74
DB $02
DB $50
DB $02
DB $2F
DB $02
DB $10
DB $02
DB $F2
DB $01
DB $D6
DB $01
DB $BC
DB $01
DB $A3
DB $01
DB $8B
DB $01
DB $75
DB $01
DB $60
DB $01
DB $4C
DB $01
DB $3A
DB $01
DB $28
DB $01
DB $18
DB $01
DB $08
DB $01
DB $F9
DB $00
DB $EB
DB $00
DB $DE
DB $00
DB $D1
DB $00
DB $C6
DB $00
DB $BB
DB $00
DB $B0
DB $00
DB $A6
DB $00
DB $9D
DB $00
DB $94
DB $00
DB $8C
DB $00
DB $84
DB $00
DB $7D
DB $00
DB $76
DB $00
DB $6F
DB $00
DB $00
DB $00
DB $40
DB $03
DB $11
DB $03
DB $E5
DB $02
DB $BB
DB $02
DB $94
DB $02
DB $6F
DB $02
DB $4C
DB $02
DB $2B
DB $02
DB $0C
DB $02
DB $EF
DB $01
DB $D3
DB $01
DB $B9
DB $01
DB $A0
DB $01
DB $88
DB $01
DB $72
DB $01
DB $5E
DB $01
DB $4A
DB $01
DB $38
DB $01
DB $26
DB $01
DB $16
DB $01
DB $06
DB $01
DB $F7
DB $00
DB $E9
DB $00
DB $DC
DB $00
DB $D0
DB $00
DB $C4
DB $00
DB $B9
DB $00
DB $AF
DB $00
DB $A5
DB $00
DB $9C
DB $00
DB $93
DB $00
DB $8B
DB $00
DB $83
DB $00
DB $7C
DB $00
DB $75
DB $00
DB $6E
DB $00
DB $00
DB $00
DB $3A
DB $03
DB $0B
DB $03
DB $E0
DB $02
DB $B6
DB $02
DB $8F
DB $02
DB $6B
DB $02
DB $48
DB $02
DB $27
DB $02
DB $08
DB $02
DB $EB
DB $01
DB $CF
DB $01
DB $B5
DB $01
DB $9D
DB $01
DB $86
DB $01
DB $70
DB $01
DB $5B
DB $01
DB $48
DB $01
DB $35
DB $01
DB $24
DB $01
DB $14
DB $01
DB $04
DB $01
DB $F5
DB $00
DB $E8
DB $00
DB $DB
DB $00
DB $CE
DB $00
DB $C3
DB $00
DB $B8
DB $00
DB $AE
DB $00
DB $A4
DB $00
DB $9B
DB $00
DB $92
DB $00
DB $8A
DB $00
DB $82
DB $00
DB $7B
DB $00
DB $74
DB $00
DB $6D
DB $00
DB $00
DB $00
DB $34
DB $03
DB $06
DB $03
DB $DA
DB $02
DB $B1
DB $02
DB $8B
DB $02
DB $66
DB $02
DB $44
DB $02
DB $23
DB $02
DB $04
DB $02
DB $E7
DB $01
DB $CC
DB $01
DB $B2
DB $01
DB $9A
DB $01
DB $83
DB $01
DB $6D
DB $01
DB $59
DB $01
DB $45
DB $01
DB $33
DB $01
DB $22
DB $01
DB $12
DB $01
DB $02
DB $01
DB $F4
DB $00
DB $E6
DB $00
DB $D9
DB $00
DB $CD
DB $00
DB $C1
DB $00
DB $B7
DB $00
DB $AC
DB $00
DB $A3
DB $00
DB $9A
DB $00
DB $91
DB $00
DB $89
DB $00
DB $81
DB $00
DB $7A
DB $00
DB $73
DB $00
DB $6D
DB $00
DB $00
DB $00
DB $2E
DB $03
DB $00
DB $03
DB $D5
DB $02
DB $AC
DB $02
DB $86
DB $02
DB $62
DB $02
DB $3F
DB $02
DB $1F
DB $02
DB $01
DB $02
DB $E4
DB $01
DB $C9
DB $01
DB $AF
DB $01
DB $97
DB $01
DB $80
DB $01
DB $6B
DB $01
DB $56
DB $01
DB $43
DB $01
DB $31
DB $01
DB $20
DB $01
DB $10
DB $01
DB $00
DB $01
DB $F2
DB $00
DB $E4
DB $00
DB $D8
DB $00
DB $CC
DB $00
DB $C0
DB $00
DB $B5
DB $00
DB $AB
DB $00
DB $A1
DB $00
DB $98
DB $00
DB $90
DB $00
DB $88
DB $00
DB $80
DB $00
DB $79
DB $00
DB $72
DB $00
DB $6C
DB $00
DB $00
DB $00
DB $8B
DB $03
DB $58
DB $03
DB $28
DB $03
DB $FA
DB $02
DB $D0
DB $02
DB $A6
DB $02
DB $80
DB $02
DB $5C
DB $02
DB $3A
DB $02
DB $1A
DB $02
DB $FC
DB $01
DB $E0
DB $01
DB $C5
DB $01
DB $AC
DB $01
DB $94
DB $01
DB $7D
DB $01
DB $68
DB $01
DB $53
DB $01
DB $40
DB $01
DB $2E
DB $01
DB $1D
DB $01
DB $0D
DB $01
DB $FE
DB $00
DB $F0
DB $00
DB $E2
DB $00
DB $D6
DB $00
DB $CA
DB $00
DB $BE
DB $00
DB $B4
DB $00
DB $AA
DB $00
DB $A0
DB $00
DB $97
DB $00
DB $8F
DB $00
DB $87
DB $00
DB $7F
DB $00
DB $78
DB $00
DB $00
DB $00
DB $84
DB $03
DB $52
DB $03
DB $22
DB $03
DB $F5
DB $02
DB $CB
DB $02
DB $A3
DB $02
DB $7C
DB $02
DB $59
DB $02
DB $37
DB $02
DB $17
DB $02
DB $F9
DB $01
DB $DD
DB $01
DB $C2
DB $01
DB $A9
DB $01
DB $91
DB $01
DB $7B
DB $01
DB $65
DB $01
DB $51
DB $01
DB $3E
DB $01
DB $2C
DB $01
DB $1C
DB $01
DB $0C
DB $01
DB $FD
DB $00
DB $EE
DB $00
DB $E1
DB $00
DB $D4
DB $00
DB $C8
DB $00
DB $BD
DB $00
DB $B3
DB $00
DB $A9
DB $00
DB $9F
DB $00
DB $96
DB $00
DB $8E
DB $00
DB $86
DB $00
DB $7E
DB $00
DB $77
DB $00
DB $00
DB $00
DB $7E
DB $03
DB $4C
DB $03
DB $1C
DB $03
DB $F0
DB $02
DB $C5
DB $02
DB $9E
DB $02
DB $78
DB $02
DB $55
DB $02
DB $33
DB $02
DB $14
DB $02
DB $F6
DB $01
DB $DA
DB $01
DB $BF
DB $01
DB $A6
DB $01
DB $8E
DB $01
DB $78
DB $01
DB $63
DB $01
DB $4F
DB $01
DB $3C
DB $01
DB $2A
DB $01
DB $1A
DB $01
DB $0A
DB $01
DB $FB
DB $00
DB $ED
DB $00
DB $DF
DB $00
DB $D3
DB $00
DB $C7
DB $00
DB $BC
DB $00
DB $B1
DB $00
DB $A7
DB $00
DB $9E
DB $00
DB $95
DB $00
DB $8D
DB $00
DB $85
DB $00
DB $7D
DB $00
DB $76
DB $00
DB $00
DB $00
DB $77
DB $03
DB $46
DB $03
DB $17
DB $03
DB $EA
DB $02
DB $C0
DB $02
DB $99
DB $02
DB $74
DB $02
DB $50
DB $02
DB $2F
DB $02
DB $10
DB $02
DB $F2
DB $01
DB $D6
DB $01
DB $BC
DB $01
DB $A3
DB $01
DB $8B
DB $01
DB $75
DB $01
DB $60
DB $01
DB $4C
DB $01
DB $3A
DB $01
DB $28
DB $01
DB $18
DB $01
DB $08
DB $01
DB $F9
DB $00
DB $EB
DB $00
DB $DE
DB $00
DB $D1
DB $00
DB $C6
DB $00
DB $BB
DB $00
DB $B0
DB $00
DB $A6
DB $00
DB $9D
DB $00
DB $94
DB $00
DB $8C
DB $00
DB $84
DB $00
DB $7D
DB $00
DB $76
DB $00
DB $00
DB $00
DB $71
DB $03
DB $40
DB $03
DB $11
DB $03
DB $E5
DB $02
DB $BB
DB $02
DB $94
DB $02
DB $6F
DB $02
DB $4C
DB $02
DB $2B
DB $02
DB $0C
DB $02
DB $EE
DB $01
DB $D3
DB $01
DB $B9
DB $01
DB $A0
DB $01
DB $88
DB $01
DB $72
DB $01
DB $5E
DB $01
DB $4A
DB $01
DB $38
DB $01
DB $26
DB $01
DB $16
DB $01
DB $06
DB $01
DB $F7
DB $00
DB $E9
DB $00
DB $DC
DB $00
DB $D0
DB $00
DB $C4
DB $00
DB $B9
DB $00
DB $AF
DB $00
DB $A5
DB $00
DB $9C
DB $00
DB $93
DB $00
DB $8B
DB $00
DB $83
DB $00
DB $7B
DB $00
DB $75
DB $00
DB $00
DB $00
DB $6B
DB $03
DB $3A
DB $03
DB $0B
DB $03
DB $E0
DB $02
DB $B6
DB $02
DB $8F
DB $02
DB $6B
DB $02
DB $48
DB $02
DB $27
DB $02
DB $08
DB $02
DB $EB
DB $01
DB $CF
DB $01
DB $B5
DB $01
DB $9D
DB $01
DB $86
DB $01
DB $70
DB $01
DB $5B
DB $01
DB $48
DB $01
DB $35
DB $01
DB $24
DB $01
DB $14
DB $01
DB $04
DB $01
DB $F5
DB $00
DB $E8
DB $00
DB $DB
DB $00
DB $CE
DB $00
DB $C3
DB $00
DB $B8
DB $00
DB $AE
DB $00
DB $A4
DB $00
DB $9B
DB $00
DB $92
DB $00
DB $8A
DB $00
DB $82
DB $00
DB $7B
DB $00
DB $74
DB $00
DB $00
DB $00
DB $64
DB $03
DB $34
DB $03
DB $06
DB $03
DB $DA
DB $02
DB $B1
DB $02
DB $8B
DB $02
DB $66
DB $02
DB $44
DB $02
DB $23
DB $02
DB $04
DB $02
DB $E7
DB $01
DB $CC
DB $01
DB $B2
DB $01
DB $9A
DB $01
DB $83
DB $01
DB $6D
DB $01
DB $59
DB $01
DB $45
DB $01
DB $33
DB $01
DB $22
DB $01
DB $12
DB $01
DB $02
DB $01
DB $F4
DB $00
DB $E6
DB $00
DB $D9
DB $00
DB $CD
DB $00
DB $C1
DB $00
DB $B7
DB $00
DB $AC
DB $00
DB $A3
DB $00
DB $9A
DB $00
DB $91
DB $00
DB $89
DB $00
DB $81
DB $00
DB $7A
DB $00
DB $73
DB $00
DB $00
DB $00
DB $5E
DB $03
DB $2E
DB $03
DB $00
DB $03
DB $D5
DB $02
DB $AC
DB $02
DB $86
DB $02
DB $62
DB $02
DB $3F
DB $02
DB $1F
DB $02
DB $01
DB $02
DB $E4
DB $01
DB $C9
DB $01
DB $AF
DB $01
DB $97
DB $01
DB $80
DB $01
DB $6B
DB $01
DB $56
DB $01
DB $43
DB $01
DB $31
DB $01
DB $20
DB $01
DB $10
DB $01
DB $00
DB $01
DB $F2
DB $00
DB $E4
DB $00
DB $D8
DB $00
DB $CB
DB $00
DB $C0
DB $00
DB $B5
DB $00
DB $AB
DB $00
DB $A1
DB $00
DB $98
DB $00
DB $90
DB $00
DB $88
DB $00
DB $80
DB $00
DB $79
DB $00
DB $72
DB $00
DB $00
DB $00
L0322DE DB $00
DB $00
MX %11
L0322E0 PHD
PHB
PHK
PLB
LDA L03157C ; Hardware handshaking
BEQ L0322F5
LDA #$05
STAL $E1C038
LDA #$EA
STAL $E1C038
L0322F5 LDAL $E100CA
STAL $E1C03C
LDA #$0C
STAL $E1C03E
LDA L03157E
STAL $E1C03D
LDA #$2C
STAL $E1C03E
LDA L03157F
STAL $E1C03D
REP #$30
LDA L0315AC
TCD
LDAL $E100CC
L032321 AND #$003E
CMP #$001A
BEQ L03232E
JSR L032451
BRA L03234E
L03232E JSL L0325DB
LDAL CYAREG
AND #$007F
STAL CYAREG
LDA #$000A
L032340 DEC
BNE L032340
LDAL CYAREG
ORA #$0080
STAL CYAREG
L03234E SEP #$30
LDAL $E100CA
STAL $E1C03C
LDA #$E0
STAL $E1C03E
LDAL $E1C03D
LDA #$00
STAL $E1C03E
LDAL $E1C03D
REP #$30
BPL L032321
SEP #$30
LDAL $E100CA
STAL $E1C03C
LDA #$0C
STAL $E1C03E
LDA #$00
STAL $E1C03D
LDA #$2C
STAL $E1C03E
LDA #$00
STAL $E1C03D
L032392 LDA L03157C ; Hardware handshaking
BEQ L0323A3
LDA #$05
STAL $E1C038
LDA #$6A
STAL $E1C038
L0323A3 PLB
PLD
CLC
RTL
*-------------------------------
* DEAD CODE
*-------------------------------
MX %00
L0323A7 JSL L030000
BRL L032392
L0323AE LDA #$0002
STAL L0315B4
LDA $04,S
STAL L0315AC
JSL L032401
php
SEI ; bug
SEP #$30
LDAL $E100CA
ORA #$60
STAL $E1C03C
LDA #$FF
STAL $E1C03F
LDA #$00
STAL $E1C03E
LDA #$01
STAL $E1C03D
LDX #$FF
L0323E0 STAL $E1C03D
INC
DEX
BNE L0323E0
* CLI
plp
REP #$30
PEA $000B
PEA ^L0322E0
PEA L0322E0
_SetVector
RTL
L0323FC JSL L032401
RTL
*-------------------------------
* Stop oscillators
*-------------------------------
L032401 PHP
SEP #$30
SEI
LDAL $E100CA
STAL $E1C03C
LDA #$E1
STAL $E1C03E
LDA #$1C
STAL $E1C03D
LDA #$00
STAL $E1C03F
LDX #$A0
L032421 LDY #$02
L032423 TXA
STAL $E1C03E
LDA #$03
STAL $E1C03D
TXA
INC
STAL $E1C03E
LDA #$03
STAL $E1C03D
DEY
BNE L032423
INX
INX
CPX #$C0
BNE L032421
LDA #$E0
STAL $E1C03E
L032449 LDAL $E1C03D
BPL L032449
PLP
RTL
MX %00
L032451 LSR
TAX
LDA L031DC4,X
AND #$00FF
ASL
TAY
LDA L031CE8,Y
STA $10
LDA L031CFC,Y
STA $12
BPL L032468
RTS
L032468 LDA L031D10,Y
STA $0C
LDA L031D24,Y
STA $0E
LDA L031D38,Y
STA $18
LDA L031D4C,Y
STA $1A
LDA L031D60,Y
STA $14
LDA L031D74,Y
STA $16
SEP #$30
LDA L031D88,Y
STA $0A
STZ $08
PHX
LDX L031DB0,Y
LDA L031DE2,Y
CMP $01,S
BEQ L03249D
INX
INC $08
L03249D STA $01,S
TXA
XBA
LDA #$00
PHY
REP #$30
STAL $E1C03E
JSL L03255E
SEP #$30
PLY
PLX
LDA $13
BMI L0324FD
LDAL $E100CA
STAL $E1C03C
TXA
ORA #$A0
STAL $E1C03E
LDA $08
BEQ L0324CB
LDA #$08
L0324CB STAL $E1C03D
REP #$30
LDA $10
STA L031CE8,Y
LDA $12
STA L031CFC,Y
LDA $0C
STA L031D10,Y
LDA $0E
STA L031D24,Y
LDA $18
STA L031D38,Y
LDA $1A
STA L031D4C,Y
LDA $14
STA L031D60,Y
LDA $16
STA L031D74,Y
BRL L03252F
RTS
MX %11
L0324FD LDAL $E100CA
STAL $E1C03C
TXA
ORA #$A0
STAL $E1C03E
LDA #$03
STAL $E1C03D
TXA
INC
ORA #$A0
STAL $E1C03E
LDAL $E1C03D
LDAL $E1C03D
AND #$F7
STAL $E1C03D
REP #$30
LDA $12
STA L031CFC,Y
L03252F SEP #$30
LDA $08
CMP L031BC8,Y
BEQ L032538
L032538 LDA $08
EOR #$01
STA L031BC8,Y
REP #$30
RTS
MX %11
L032542 PHA
LDAL CYAREG
AND #$7F
STAL CYAREG
LDA #$08
L03254F DEC
BNE L03254F
LDAL CYAREG
ORA #$80
STAL CYAREG
PLA
RTS
MX %00
L03255E LDX #$0000
PHD
PHB
LDY $0C
SEP #$20
LDA $0E
PHA
PLB
PEA $C000
PLD
LDAL $E100CA
ORA #$60
STA $3C
JSR (L0325D3,X)
PLB
PLD
REP #$20
SEC
LDA $10
SBC #$0100
STA $10
BCS L0325AF
DEC $12
BPL L0325B1
LDA $1A
BMI L0325AE
L032590 SEC
LDA $14
SBC $10
STA $0C
LDA $16
BCC L03259C
INC
L03259C STA $0E
CLC
LDA $18
ADC $10
STA $10
LDA $1A
BCS L0325AA
DEC
L0325AA STA $12
BMI L032590
L0325AE RTL
L0325AF BEQ L0325BE
L0325B1 CLC
LDA $0C
ADC #$0100
STA $0C
BCC L0325BD
INC $0E
L0325BD RTL
L0325BE LDA $12
BNE L0325B1
LDA $18
STA $10
LDA $1A
STA $12
LDA $14
STA $0C
LDA $16
STA $0E
RTL
L0325D3 DA L033211 ; move page
DA L033211 ; LoGo - What is that??? L033712
DA L033211 ; move page
DA L033211 ; move page
L0325DB LDA L0315B0
INC
STA L0315B0
CMP L0315B2
BEQ L0325EA
BRL L0326BB
L0325EA STZ L0315B0
LDA L0315B4
BEQ L0325F5
BRL L0326C0
L0325F5 JSR L032B56
LDA #$0001
STA L0322DE
LDA L0315B6
BNE L03262B
LDA L0315B8
INC
STA L0315B8
CMP L0315BA
BNE L032650
STZ L0315B8
LDA L0315BC
INC
STA L0315BC
CMP L0315C4
BNE L03262B
STZ L0315BC
LDA L0315C2
BNE L03262B
INC L0315B4
BRA L03262B
L03262B STZ L0315B6
LDY L0315BC
LDA L0315C8,Y
AND #$00FF
TAY
LDA L0316C8,Y
AND #$00FF
STA L0315BA
TYA
ASL
TAY
LDA L031708,Y
STA L0315BE
LDA L031788,Y
STA L0315C0
L032650 LDA L0315B8
ASL
TAY
LDA L031648,Y
CLC
ADC L0315BE
STA $1E
LDA L0315C0
BCC L032664
INC
L032664 STA $20
L032666 LDA L0315B0
INC
CMP L0315B2
SEP #$30
BNE L032685
LDA L0315C6
DEC
ASL
TAX
LDA #$00
L032679 BIT L031B3C,X
BMI L032681
STA L031B3C,X
L032681 DEX
DEX
BPL L032679
L032685 REP #$30
LDA L0315C6
ASL
TAX
ASL
TAY
DEX
DEX
L032690 DEY
DEY
LDA [$1E],Y
STA $22
DEY
DEY
LDA [$1E],Y
STA $24
SEP #$20
BIT L031B3C,X
REP #$20
BMI L0326AE
BVS L0326AE
PHX
PHY
JSR L0326D0
PLY
PLX
L0326AE DEX
DEX
BPL L032690
JSR L032A22
BCC L0326BA
BRL L0325DB
L0326BA RTL
L0326BB JSR L032C39
BRA L032666
L0326C0 LDA #$0002
STA L0315B4
JSL L032401
JSL L03008E
BRA L0326BA
L0326D0 LDA $22
AND #$FF0F
STA L031B8C,X
LDA $25
AND #$00FF
ASL
TAY
BNE L032700
LDY L031BA0,X
BEQ L0326F4
LDA #$FFFF
STA L031B78,X
LDA L031C0C,X
STA L031BB4,X
BRA L032725
L0326F4 STZ L031B50,X
SEP #$30
LDA #$80
STA L031B3C,X
BRA L032746
L032700 LDA L031A08,Y
STA L031B78,X
LDA L031A48,Y
ASL
STA L031BB4,X
LDA L031908,Y
STA L031AD8,X
LDA L031948,Y
STA L031AEC,X
LDA L031988,Y
STA L031B00,X
LDA L0319C8,Y
STA L031B14,X
L032725 LDA L031808,Y
STA L031A88,X
LDA L031848,Y
BMI L0326F4
STA L031A9C,X
LDA L031888,Y
STA L031AB0,X
LDA L0318C8,Y
STA L031AC4,X
SEP #$30
LDA #$C0
STA L031B3C,X
L032746 LDA $22
AND #$0F
ASL
PHY
PHX
TXY
TAX
JSR (L0327A0,X)
PLX
PLY
REP #$30
LDA $24
AND #$00FF
BEQ L032783
CPY #$0000
BEQ L03277E
SEC
SBC #$0018
PHY
SEP #$30
LDY L031BB4,X
REP #$30
CLC
ADC L031E1E,Y
ASL
TAY
LDA L031E3E,Y
PLY
STA L031B50,X
STZ L031B64,X
L03277E TYA
STA L031BA0,X
L032782 RTS
L032783 STZ L031B50,X
SEP #$30
LDY #$80
LDA $25
ASL
BEQ L032799
CMP L031BA0,X
BEQ L032799
STA L031BA0,X
LDY #$C0
L032799 TYA
STA L031B3C,X
REP #$30
RTS
L0327A0 DA L032782
DA L032782
DA L032782
DA L03283F
DA L032782
DA L03283F
DA L032782
DA L032782
DA L032782
DA L0327FA
DA L032782
DA L032857
DA L032848
DA L03286F
DA L0327C0
DA L032782
MX %11
L0327C0 LDA $23
AND #$F0
LSR
LSR
LSR
TAX
JMP (L0327CB,X)
L0327CB DA L032782 ; 0
DA L032782 ; 1
DA L032782 ; 2
DA L032782 ; 3
DA L032782 ; 4
DA L0327F1 ; 5*
DA L032782 ; 6
DA L032782 ; 7
DA L032782 ; 8
DA L032782 ; 9
DA L032782 ; A
DA L032782 ; B
DA L032782 ; C
DA L0327EB ; D*
DA L032782 ; E
DA L032782 ; F
L0327EB LDA #$80
STA L031B3C,Y
RTS
L0327F1 LDA $23
AND #$0F
ASL
STA L031BB4,Y
RTS
L0327FA REP #$20
LDA L031B8C,Y
AND #$FF00
BEQ L032834
LDX L031A9C,Y
BNE L032810
CMP L031A88,Y
BEQ L032810
BCS L032837
L032810 PHA
CLC
ADC L031AB0,Y
STA L031AB0,Y
BCC L032821
LDA L031AC4,Y
INC
STA L031AC4,Y
L032821 LDA L031A88,Y
SEC
SBC $01,S
STA L031A88,Y
BCS L032833
LDA L031A9C,Y
DEC
STA L031A9C,Y
L032833 PLA
L032834 SEP #$20
RTS
L032837 SEP #$20
LDA #$80
STA L031B3C,Y
RTS
L03283F LDA $03,S
TAX
LDA #$80
STA L031B3C,X
RTS
L032848 LDA $03,S
TAX
LDA $23
CMP #$41
BCC L032853
LDA #$40
L032853 STA L031B78,X
RTS
L032857 LDA L0315A8 ; Position jumps
BEQ L032871 ; don't follow
LDA $23
CMP L0315C4
BCS L03286E
STZ L0315B8
STA L0315BC
LDA #$01
STA L0315B6
L03286E RTS
L03286F LDA $23
L032871 TAX
AND #$0F
PHA
TXA
AND #$F0
PHA
LSR
LSR
ADC $01,S
LSR
ADC $02,S
PLX
PLX
CMP #$40
BCC L032888
LDA #$00
L032888 STA L0315B8
LDA L0315B6
BNE L0328AC
LDA #$01
STA L0315B6
LDA L0315BC
INC
STA L0315BC
CMP L0315C4
BNE L0328AC
STZ L0315BC
LDA L0315C2
BNE L0328AC
INC L0315B4
L0328AC RTS
L0328AD LDA L031B50,Y
BNE L0328B3
RTS
MX %00
L0328B3 STA L031D9C,Y
JSR L0329E6
LDA L031B64,Y
AND #$00FF
BNE L0328C2
RTS
L0328C2 LDA L031A88,Y
STA L031CE8,Y
LDA L031A9C,Y
STA L031CFC,Y
LDA L031AB0,Y
STA L031D10,Y
LDA L031AC4,Y
STA L031D24,Y
LDA L031B00,Y
STA L031D60,Y
LDA L031B14,Y
STA L031D74,Y
LDA L031AD8,Y
STA L031D38,Y
LDA L031AEC,Y
STA L031D4C,Y
LDA L031CC0,Y
AND #$00FF
STA $2A
STA $30
LDA L031BDC,Y
AND #$00FF
STA $2C
JSR L032AFF
LDA $2A
STA $2E
LDA $30
STA $2A
LDA L031BDD,Y
AND #$00FF
STA $2C
JSR L032AFF
SEP #$30
LDA #$00
STA L031BC8,Y
LDAL $E100CA
ORA #$20
STAL $E1C03C
LDA L031DE2,Y
TAX
STAL $E1C03E
LDA $26
STAL $E1C03D
STAL $E1C03D
STAL $E1C03D
TXA
ORA #$20
STAL $E1C03E
LDA $27
STAL $E1C03D
STAL $E1C03D
STAL $E1C03D
TXA
ORA #$40
STAL $E1C03E
LDA #$00
STAL $E1C03D
LDA $2E
STAL $E1C03D
LDA $2A
STAL $E1C03D
TXA
ORA #$80
STAL $E1C03E
LDA #$FF
STAL $E1C03D
LDA L031DB0,Y
EOR #$02
STA L031DB0,Y
STAL $E1C03D
STAL $E1C03D
TXA
ORA #$C0
STAL $E1C03E
LDA #$01
STAL $E1C03D
LDA #$0A
STAL $E1C03D
STAL $E1C03D
TXA
ORA #$A0
STAL $E1C03E
LDA L031CFD,Y
BMI L0329C8
LDA #$08
STAL $E1C03D
LDA L031CD4,Y
ORA #$08
STAL $E1C03D
LDA L031CD5,Y
STAL $E1C03D
REP #$30
RTS
MX %11
L0329C8 LDA #$03
STAL $E1C03D
LDA #$02
EOR L031CD4,Y
STAL $E1C03D
LDA L031CD5,Y
ORA #$02
STAL $E1C03D
REP #$20
RTS
MX %00
REP #$20
RTS
L0329E6 STZ $26
LDX #$0000
L0329EB ASL
INX
BCC L0329EB
STA $28
LDA #$1000
CMP $28
BCS L0329FD
SEC
ROR $28
BRA L032A16
L0329FD SBC $28
INC $26
ROR $28
ASL $26
CMP $28
BCC L032A1A
SBC $28
INC $26
DEX
L032A0E LSR $28
ASL $26
CMP $28
BCC L032A1A
L032A16 SBC $28
INC $26
L032A1A DEX
BNE L032A0E
LDA $26
STA $26
RTS
L032A22 SEP #$30
LDA L031578
BMI L032A3F
LDX #$FF
STX L031578
REP #$30
AND #$003E
CMP #$001A
BNE L032A3A
SEC
RTS
L032A3A JSR L032451
SEP #$30
L032A3F LDA L0315C6
DEC
ASL
TAY
L032A45 LDA L031B64,Y
BEQ L032A67
L032A4A DEY
DEY
BPL L032A45
REP #$30
CLC
RTS
L032A52 REP #$30
AND #$003E
CMP #$001A
BNE L032A5E
SEC
RTS
L032A5E PHY
JSR L032451
PLY
SEP #$30
BRA L032A85
L032A67 LDAL $E100CA
STAL $E1C03C
LDA #$E0
STAL $E1C03E
LDAL $E1C03D
LDA #$00
STAL $E1C03E
LDAL $E1C03D
BPL L032A52
L032A85 REP #$30
LDA L031A88,Y
STA $10
LDA L031A9C,Y
STA $12
LDA L031AB0,Y
STA $0C
LDA L031AC4,Y
STA $0E
LDA L031AD8,Y
STA $18
LDA L031AEC,Y
STA $1A
LDA L031B00,Y
STA $14
LDA L031B14,Y
STA $16
LDA #$0000
STA $0A
SEP #$30
LDA L031DB0,Y
EOR #$02
XBA
LDA #$00
REP #$30
PHY
STAL $E1C03E
JSL L03255E
LDA $12
BMI L032AF2
JSL L03255E
LDA $12
BMI L032AF2
PLY
STA L031A9C,Y
LDA $10
STA L031A88,Y
LDA $0C
STA L031AB0,Y
LDA $0E
STA L031AC4,Y
SEP #$30
LDA #$01
STA L031B64,Y
BRL L032A4A
L032AF2 PLY
SEP #$30
XBA
STA L031A9D,Y
STA L031B64,Y
BRL L032A4A
MX %00
L032AFF LDA $2A
EOR #$FFFF
STA $2A
LDA #$0000
LSR $2A
BCS L032B0F
ADC $2C
L032B0F ASL $2C
LSR $2A
BCS L032B17
ADC $2C
L032B17 ASL $2C
LSR $2A
BCS L032B1F
ADC $2C
L032B1F ASL $2C
LSR $2A
BCS L032B27
ADC $2C
L032B27 ASL $2C
LSR $2A
BCS L032B2F
ADC $2C
L032B2F ASL $2C
LSR $2A
BCS L032B37
ADC $2C
L032B37 ASL $2C
LSR $2A
BCS L032B3F
ADC $2C
L032B3F ASL $2C
LSR $2A
BCS L032B47
ADC $2C
L032B47 ASL
ASL
XBA
AND #$00FF
BEQ L032B53
CLC
ADC L031576
L032B53 STA $2A
RTS
L032B56 SEP #$30
STZ L0315AE
LDA L0315C6
DEC
ASL
TAX
PHX
LDAL $E100CA
ORA #$20
STAL $E1C03C
L032B6C BIT L031B3C,X
BVC L032B88
LDA L031DE2,X
ORA #$A0
STAL $E1C03E
LDA #$03
STAL $E1C03D
STAL $E1C03D
STAL $E1C03D
L032B88 DEX
DEX
BPL L032B6C
LDA $01,S
TAY
L032B8F LDA L031B78,Y
BMI L032B97
STA L031CC0,Y
L032B97 LDA L031BB4,Y
STA L031C0C,Y
LDA L031B8C,Y
STA L031CAC,Y
LDA L031B8D,Y
STA L031CAD,Y
DEY
DEY
BPL L032B8F
LDAL CYAREG
AND #$7F
STAL CYAREG
LDA #$0A
L032BB9 DEC
BNE L032BB9
LDAL CYAREG
ORA #$80
STAL CYAREG
LDA #$E0
STAL $E1C03E
LDAL $E1C03D
LDAL $E1C03D
BMI L032BE9
LSR
AND #$1F
TAY
LDA L031DC4,Y
ASL
TAX
BIT L031B3C,X
BVS L032BE9
TYA
ASL
STA L031578
L032BE9 LDA $01,S
TAX
L032BEC BIT L031B3C,X
STZ L031B3C,X
BVC L032BFD
TXY
REP #$30
JSR L0328AD
SEP #$30
TYX
L032BFD DEX
DEX
BPL L032BEC
PLY
L032C02 JSR L032EC2
JSR L032E2A
LDA L031CAC,Y
ASL
TAX
PHY
JSR (L032C19,X)
PLY
DEY
DEY
BPL L032C02
REP #$30
RTS
L032C19 DA L032C5E ;
DA L032C5E ;
DA L032C5E ;
DA L032F02 ;
DA L032C5E ;
DA L032F02 ;
DA L032C5E ;
DA L032C5E ;
DA L032C5E ;
DA L032C5E ;
DA L032C5E ;
DA L032C5E ;
DA L032D84 ;
DA L032C5E ;
DA L032C5F ;
DA L032FC1 ;
L032C39 SEP #$30
LDA L0315AE
INC
CMP #$03
BCC L032C45
LDA #$00
L032C45 STA L0315AE
LDA L0315C6
DEC
ASL
TAY
L032C4E LDA L031CAC,Y
ASL
TAX
PHY
JSR (L032C6B,X)
PLY
DEY
DEY
BPL L032C4E
REP #$30
L032C5E RTS
MX %11
L032C5F LDA L031CAD,Y
AND #$F0
LSR
LSR
LSR
TAX
JMP (L032C8B,X)
L032C6B DA L03317F ;
DA L032D9F ;
DA L032DCE ;
DA L032F35 ;
DA L03303A ;
DA L032F2F ;
DA L033034 ;
DA L0330E3 ;
DA L032C5E ;
DA L032C5E ;
DA L032E02 ;
DA L032C5E ;
DA L032C5E ;
DA L032C5E ;
DA L032C5F ;
DA L032C5E ;
L032C8B DA L032CAB ;
DA L032D93 ;
DA L032DC2 ;
DA L032D68 ;
DA L0330D0 ;
DA L032C5E ;
DA L032C5E ;
DA L03316C ;
DA L032C5E ;
DA L032CC1 ;
DA L032DEA ;
DA L032DF6 ;
DA L032D71 ;
DA L032D31 ;
DA L032C5E ;
DA L032C5E ;
MX %11
L032CAB LDA L0315A4
BEQ L032CC0
LDX #$02
LDA L031CAD,Y
BEQ L032CBD
CMP #$01
BNE L032CC0
LDX #$00
L032CBD STX L0315A6
L032CC0 RTS
L032CC1 LDA L031B50,Y
ORA L031B51,Y
BEQ L032CDF
LDA L0315B0
BEQ L032D04
LDA L031BE4,Y
INC
STA L031BE4,Y
LDA L031CAD,Y
AND #$0F
CMP L031BE4,Y
BEQ L032CE0
L032CDF RTS
L032CE0 LDA #$20
STAL $E1C03C
LDA L031DE2,Y
ORA #$A0
STAL $E1C03E
LDA #$03
STAL $E1C03D
STAL $E1C03D
STAL $E1C03D
REP #$30
JSR L0328AD
SEP #$30
L032D04 LDX L031BA0,Y
REP #$20
LDA L031888,X
STA L031AB0,Y
LDA L0318C8,X
STA L031AC4,Y
LDA L031808,X
STA L031A88,Y
LDA L031848,X
STA L031A9C,Y
SEP #$20
LDA #$40
STA L031B3C,Y
LDA #$00
STA L031B64,Y
STA L031BE4,Y
RTS
L032D31 LDA L031CAD,Y
AND #$0F
CMP L0315B0
BEQ L032D43
BCC L032D42
LDA #$40
STA L031B3C,Y
L032D42 RTS
L032D43 LDA #$20
STAL $E1C03C
LDA L031DE2,Y
ORA #$A0
STAL $E1C03E
LDA #$03
STAL $E1C03D
STAL $E1C03D
STAL $E1C03D
REP #$30
JSR L0328AD
SEP #$30
RTS
L032D68 LDA L031CAD,Y
AND #$0F
STA L031BF8,Y
RTS
L032D71 LDA L031CAD,Y
AND #$0F
CMP L0315B0
BNE L032D83
LDA #$00
STA L031CC0,Y
BRL L032E2A
L032D83 RTS
L032D84 LDA L031CAD,Y
CMP #$41
BCC L032D8D
LDA #$40
L032D8D STA L031CC0,Y
BRL L032E2A
L032D93 LDA L0315B0
BNE L032DC1
LDA L031CAD,Y
AND #$0F
BRA L032DA2
L032D9F LDA L031CAD,Y
L032DA2 REP #$20
AND #$00FF
PHA
LDA L031D9C,Y
SEC
SBC $01,S
BCC L032DB5
CMP #$0071
BCS L032DB8
L032DB5 LDA #$0071
L032DB8 STA L031D9C,Y
PLA
SEP #$20
BRL L032EC2
L032DC1 RTS
L032DC2 LDA L0315B0
BNE L032DC1
LDA L031CAD,Y
AND #$0F
BRA L032DD1
L032DCE LDA L031CAD,Y
L032DD1 REP #$20
AND #$00FF
CLC
ADC L031D9C,Y
CMP #$0358
BCC L032DE2
LDA #$0358
L032DE2 STA L031D9C,Y
SEP #$20
BRL L032EC2
L032DEA LDA L0315B0
BNE L032DC1
LDA L031CAD,Y
AND #$0F
BRA L032E14
L032DF6 LDA L0315B0
BNE L032DC1
LDA L031CAD,Y
AND #$0F
BRA L032E11
L032E02 LDA L031CAD,Y
BIT #$F0
BEQ L032E0F
LSR
LSR
LSR
LSR
BRA L032E14
L032E0F AND #$0F
L032E11 EOR #$FF
INC
L032E14 CLC
ADC L031CC0,Y
BPL L032E1E
LDA #$00
BRA L032E24
L032E1E CMP #$41
BCC L032E24
LDA #$40
L032E24 STA L031CC0,Y
BRL L032E2A
L032E2A LDAL $E100CA
ORA #$20
STAL $E1C03C
LDA L031DE2,Y
INC
ORA #$40
STAL $E1C03E
REP #$30
LDA L031CC0,Y
AND #$00FF
STA $2A
STA $30
LDA L031BDC,Y
AND #$00FF
STA $2C
JSR L032AFF
LDA $2A
STA $2E
LDA $30
STA $2A
LDA L031BDD,Y
AND #$00FF
STA $2C
JSR L032AFF
SEP #$30
LDA $2E
STAL $E1C03D
LDA $2A
STAL $E1C03D
RTS
L032E77 LDAL $E100CA
ORA #$20
STAL $E1C03C
LDA L031DE2,Y
INC
ORA #$40
STAL $E1C03E
TXA
REP #$30
AND #$00FF
STA $30
STA $2A
LDA L031BDC,Y
AND #$00FF
STA $2C
JSR L032AFF
LDA $2A
STA $2E
LDA $30
STA $2A
LDA L031BDD,Y
AND #$00FF
STA $2C
JSR L032AFF
SEP #$30
LDA $2E
STAL $E1C03D
LDA $2A
STAL $E1C03D
RTS
L032EC2 REP #$30
LDA L031D9C,Y
L032EC7 JSR L0329E6
SEP #$30
LDAL $E100CA
ORA #$20
STAL $E1C03C
LDA L031DE2,Y
TAX
STAL $E1C03E
LDA $26
STAL $E1C03D
STAL $E1C03D
STAL $E1C03D
TXA
ORA #$20
STAL $E1C03E
LDA $27
STAL $E1C03D
STAL $E1C03D
STAL $E1C03D
RTS
L032F02 REP #$20
LDA L031B50,Y
BNE L032F0E
LDA L031C98,Y
BEQ L032F26
L032F0E STA L031C98,Y
CMP L031D9C,Y
BEQ L032F26
SEP #$20
BCS L032F20
LDA #$01
STA L031C84,Y
RTS
L032F20 LDA #$00
STA L031C84,Y
RTS
MX %00
L032F26 LDA #$0000
STA L031C98,Y
SEP #$20
RTS
L032F2F JSR L032F42
BRL L032E02
MX %11
L032F35 LDA L031CAD,Y
BEQ L032F42
STA L031C70,Y
LDA #$00
STA L031CAD,Y
L032F42 REP #$20
LDA L031C98,Y
BEQ L032F96
LDX L031C70,Y
TXA
LDX L031C84,Y
BNE L032F6C
CLC
ADC L031D9C,Y
STA L031D9C,Y
CMP L031C98,Y
BCC L032F8C
LDA L031C98,Y
STA L031D9C,Y
LDA #$0000
STA L031C98,Y
BRA L032F8C
L032F6C EOR #$FFFF
INC
CLC
ADC L031D9C,Y
STA L031D9C,Y
BMI L032F80
CMP L031C98,Y
BCC L032F80
BNE L032F8C
L032F80 LDA L031C98,Y
STA L031D9C,Y
LDA #$0000
STA L031C98,Y
L032F8C LDX L031BF8,Y
BNE L032F99
SEP #$20
BRL L032EC2
L032F96 SEP #$20
RTS
L032F99 LDX L031C0C,Y
REP #$30
LDA L031E1E,X
ASL
ADC #L031E3E
STA $32
LDA L031D9C,Y
STY $30
LDY #$FFFE
L032FAF INY
INY
CMP ($32),Y
BCC L032FAF
LDA ($32),Y
BEQ L032FBE
LDY $30
BRL L032EC7
L032FBE SEP #$30
RTS
L032FC1 LDA L031CAD,Y
BEQ L032FD3
STA L03157B
CMP #$20
BCS L032FD4
STA L031579
L032FD0 STA L0315B2
L032FD3 RTS
L032FD4 STA L03157A
LDX L0315AA
BEQ L032FD0
L032FDC STZ $2B
STA $2A
REP #$20
ASL
ADC $2A
ASL
ADC $2A
ASL
ADC $2A
ASL
ADC $2A
ASL
ADC $2A
ASL
ADC $2A
ASL
ADC $2A
XBA
ASL
BCC L032FFC
INC
L032FFC AND #$01FF
STA $2A
SEP #$20
LDAL $E100CA
ORA #$20
STAL $E1C03C
LDA #$2C
STAL $E1C03E
LDA $2B
STAL $E1C03D
STAL $E1C03D
STA L03157F
LDA #$0C
STAL $E1C03E
LDA $2A
STAL $E1C03D
STAL $E1C03D
STA L03157E
RTS
L033034 JSR L033056
BRL L032E02
L03303A LDA L031CAD,Y
BEQ L033056
TAX
AND #$0F
BEQ L033047
STA L031C5C,Y
L033047 TXA
AND #$F0
BEQ L033051
LSR
LSR
STA L031C5D,Y
L033051 LDA #$00
STA L031CAD,Y
L033056 LDX L031C48,Y
JMP (L03305C,X)
L03305C DA L033062
DA L03306F
DA L033079
L033062 LDA L031C49,Y
LSR
LSR
AND #$1F
TAX
LDA L031DFE,X
BRA L03307B
L03306F LDA L031C49,Y
ASL
BCC L03307B
EOR #$FF
BRA L03307B
L033079 LDA #$FF
L03307B REP #$20
AND #$00FF
STA $2A
LDA L031C5C,Y
AND #$000F
EOR #$FFFF
STA $2C
LDA #$0000
LSR $2C
BCS L033096
ADC $2A
L033096 ASL $2A
LSR $2C
BCS L03309E
ADC $2A
L03309E ASL $2A
LSR $2C
BCS L0330A6
ADC $2A
L0330A6 ASL $2A
LSR $2C
BCS L0330AE
ADC $2A
L0330AE ASL
XBA
AND #$00FF
LDX L031C49,Y
BPL L0330BC
EOR #$FFFF
INC
L0330BC CLC
ADC L031D9C,Y
REP #$10
JSR L032EC7
LDA L031C5D,Y
CLC
ADC L031C49,Y
STA L031C49,Y
RTS
MX %11
L0330D0 LDA L031CAD,Y
AND #$0F
CMP #$03
BCS L0330DD
ASL
STA L031C48,Y
L0330DD LDA #$00
STA L031CAD,Y
RTS
L0330E3 LDA L031CAD,Y
BEQ L033105
TAX
AND #$0F
BEQ L0330F6
ASL
ASL
ASL
ASL
EOR #$F0
STA L031C34,Y
L0330F6 TXA
AND #$F0
BEQ L033100
LSR
LSR
STA L031C35,Y
L033100 LDA #$00
STA L031CAD,Y
L033105 LDX L031C20,Y
JMP (L03310B,X)
L03310B DA L033111
DA L03311E
DA L033128
L033111 LDA L031C21,Y
LSR
LSR
AND #$1F
TAX
LDA L031DFE,X
BRA L03312A
L03311E LDA L031C21,Y
ASL
BCC L03312A
EOR #$FF
BRA L03312A
L033128 LDA #$FF
L03312A LDX L031C34,Y
STX $2D
REP #$30
AND #$00FF
STA $2A
LDA #$0000
JSR L0331F5
ASL
ASL
XBA
SEP #$30
LDX L031C21,Y
BPL L033153
EOR #$FF
INC
CLC
ADC L031CC0,Y
BPL L03315D
LDA #$00
BRA L03315D
L033153 CLC
ADC L031CC0,Y
CMP #$41
BCC L03315D
LDA #$40
L03315D TAX
JSR L032E77
LDA L031C35,Y
CLC
ADC L031C21,Y
STA L031C21,Y
RTS
L03316C LDA L031CAD,Y
AND #$0F
CMP #$03
BCS L033179
ASL
STA L031C20,Y
L033179 LDA #$00
STA L031CAD,Y
RTS
L03317F LDA L031CAD,Y
BNE L033185
RTS
L033185 LDA L0315AE
BEQ L0331D1
CMP #$02
BNE L033194
LDA L031CAD,Y
ASL
BRA L03319A
L033194 LDA L031CAD,Y
LSR
LSR
LSR
L03319A LDX L031C0C,Y
REP #$30
STY $30
AND #$001E
STA $2E
LDA L031E1E,X
ASL
ADC #L031E3E
STA $32
LDA L031D9C,Y
LDY #$FFFE
L0331B5 INY
INY
CMP ($32),Y
BCC L0331B5
TYA
CLC
ADC $2E
CMP #$0048
BCS L0331CC
TAY
LDA ($32),Y
LDY $30
BRL L032EC7
L0331CC LDY $30
SEP #$30
RTS
L0331D1 REP #$30
LDA L031D9C,Y
BRL L032EC7
ASL $2C
BCS L0331E0
ADC $2A
ASL
L0331E0 ASL $2C
BCS L0331E7
ADC $2A
ASL
L0331E7 ASL $2C
BCS L0331EE
ADC $2A
ASL
L0331EE ASL $2C
BCS L0331F5
ADC $2A
ASL
L0331F5 ASL $2C
BCS L0331FC
ADC $2A
ASL
L0331FC ASL $2C
BCS L033203
ADC $2A
ASL
L033203 ASL $2C
BCS L03320A
ADC $2A
ASL
L03320A ASL $2C
BCS L033210
ADC $2A
L033210 RTS
L033211 LDA |$0000,Y
STA $3D
LDA |$0001,Y
STA $3D
LDA |$0002,Y
STA $3D
LDA |$0003,Y
STA $3D
LDA |$0004,Y
STA $3D
LDA |$0005,Y
STA $3D
LDA |$0006,Y
STA $3D
LDA |$0007,Y
STA $3D
LDA |$0008,Y
STA $3D
LDA |$0009,Y
STA $3D
LDA |$000A,Y
STA $3D
LDA |$000B,Y
STA $3D
LDA |$000C,Y
STA $3D
LDA |$000D,Y
STA $3D
LDA |$000E,Y
STA $3D
LDA |$000F,Y
STA $3D
LDA |$0010,Y
STA $3D
LDA |$0011,Y
STA $3D
LDA |$0012,Y
STA $3D
LDA |$0013,Y
STA $3D
LDA |$0014,Y
STA $3D
LDA |$0015,Y
STA $3D
LDA |$0016,Y
STA $3D
LDA |$0017,Y
STA $3D
LDA |$0018,Y
STA $3D
LDA |$0019,Y
STA $3D
LDA |$001A,Y
STA $3D
LDA |$001B,Y
STA $3D
LDA |$001C,Y
STA $3D
LDA |$001D,Y
STA $3D
LDA |$001E,Y
STA $3D
LDA |$001F,Y
STA $3D
LDA |$0020,Y
STA $3D
LDA |$0021,Y
STA $3D
LDA |$0022,Y
STA $3D
LDA |$0023,Y
STA $3D
LDA |$0024,Y
STA $3D
LDA |$0025,Y
STA $3D
LDA |$0026,Y
STA $3D
LDA |$0027,Y
STA $3D
LDA |$0028,Y
STA $3D
LDA |$0029,Y
STA $3D
LDA |$002A,Y
STA $3D
LDA |$002B,Y
STA $3D
LDA |$002C,Y
STA $3D
LDA |$002D,Y
STA $3D
LDA |$002E,Y
STA $3D
LDA |$002F,Y
STA $3D
LDA |$0030,Y
STA $3D
LDA |$0031,Y
STA $3D
LDA |$0032,Y
STA $3D
LDA |$0033,Y
STA $3D
LDA |$0034,Y
STA $3D
LDA |$0035,Y
STA $3D
LDA |$0036,Y
STA $3D
LDA |$0037,Y
STA $3D
LDA |$0038,Y
STA $3D
LDA |$0039,Y
STA $3D
LDA |$003A,Y
STA $3D
LDA |$003B,Y
STA $3D
LDA |$003C,Y
STA $3D
LDA |$003D,Y
STA $3D
LDA |$003E,Y
STA $3D
LDA |$003F,Y
STA $3D
LDA |$0040,Y
STA $3D
LDA |$0041,Y
STA $3D
LDA |$0042,Y
STA $3D
LDA |$0043,Y
STA $3D
LDA |$0044,Y
STA $3D
LDA |$0045,Y
STA $3D
LDA |$0046,Y
STA $3D
LDA |$0047,Y
STA $3D
LDA |$0048,Y
STA $3D
LDA |$0049,Y
STA $3D
LDA |$004A,Y
STA $3D
LDA |$004B,Y
STA $3D
LDA |$004C,Y
STA $3D
LDA |$004D,Y
STA $3D
LDA |$004E,Y
STA $3D
LDA |$004F,Y
STA $3D
LDA |$0050,Y
STA $3D
LDA |$0051,Y
STA $3D
LDA |$0052,Y
STA $3D
LDA |$0053,Y
STA $3D
LDA |$0054,Y
STA $3D
LDA |$0055,Y
STA $3D
LDA |$0056,Y
STA $3D
LDA |$0057,Y
STA $3D
LDA |$0058,Y
STA $3D
LDA |$0059,Y
STA $3D
LDA |$005A,Y
STA $3D
LDA |$005B,Y
STA $3D
LDA |$005C,Y
STA $3D
LDA |$005D,Y
STA $3D
LDA |$005E,Y
STA $3D
LDA |$005F,Y
STA $3D
LDA |$0060,Y
STA $3D
LDA |$0061,Y
STA $3D
LDA |$0062,Y
STA $3D
LDA |$0063,Y
STA $3D
LDA |$0064,Y
STA $3D
LDA |$0065,Y
STA $3D
LDA |$0066,Y
STA $3D
LDA |$0067,Y
STA $3D
LDA |$0068,Y
STA $3D
LDA |$0069,Y
STA $3D
LDA |$006A,Y
STA $3D
LDA |$006B,Y
STA $3D
LDA |$006C,Y
STA $3D
LDA |$006D,Y
STA $3D
LDA |$006E,Y
STA $3D
LDA |$006F,Y
STA $3D
LDA |$0070,Y
STA $3D
LDA |$0071,Y
STA $3D
LDA |$0072,Y
STA $3D
LDA |$0073,Y
STA $3D
LDA |$0074,Y
STA $3D
LDA |$0075,Y
STA $3D
LDA |$0076,Y
STA $3D
LDA |$0077,Y
STA $3D
LDA |$0078,Y
STA $3D
LDA |$0079,Y
STA $3D
LDA |$007A,Y
STA $3D
LDA |$007B,Y
STA $3D
LDA |$007C,Y
STA $3D
LDA |$007D,Y
STA $3D
LDA |$007E,Y
STA $3D
LDA |$007F,Y
STA $3D
LDA |$0080,Y
STA $3D
LDA |$0081,Y
STA $3D
LDA |$0082,Y
STA $3D
LDA |$0083,Y
STA $3D
LDA |$0084,Y
STA $3D
LDA |$0085,Y
STA $3D
LDA |$0086,Y
STA $3D
LDA |$0087,Y
STA $3D
LDA |$0088,Y
STA $3D
LDA |$0089,Y
STA $3D
LDA |$008A,Y
STA $3D
LDA |$008B,Y
STA $3D
LDA |$008C,Y
STA $3D
LDA |$008D,Y
STA $3D
LDA |$008E,Y
STA $3D
LDA |$008F,Y
STA $3D
LDA |$0090,Y
STA $3D
LDA |$0091,Y
STA $3D
LDA |$0092,Y
STA $3D
LDA |$0093,Y
STA $3D
LDA |$0094,Y
STA $3D
LDA |$0095,Y
STA $3D
LDA |$0096,Y
STA $3D
LDA |$0097,Y
STA $3D
LDA |$0098,Y
STA $3D
LDA |$0099,Y
STA $3D
LDA |$009A,Y
STA $3D
LDA |$009B,Y
STA $3D
LDA |$009C,Y
STA $3D
LDA |$009D,Y
STA $3D
LDA |$009E,Y
STA $3D
LDA |$009F,Y
STA $3D
LDA |$00A0,Y
STA $3D
LDA |$00A1,Y
STA $3D
LDA |$00A2,Y
STA $3D
LDA |$00A3,Y
STA $3D
LDA |$00A4,Y
STA $3D
LDA |$00A5,Y
STA $3D
LDA |$00A6,Y
STA $3D
LDA |$00A7,Y
STA $3D
LDA |$00A8,Y
STA $3D
LDA |$00A9,Y
STA $3D
LDA |$00AA,Y
STA $3D
LDA |$00AB,Y
STA $3D
LDA |$00AC,Y
STA $3D
LDA |$00AD,Y
STA $3D
LDA |$00AE,Y
STA $3D
LDA |$00AF,Y
STA $3D
LDA |$00B0,Y
STA $3D
LDA |$00B1,Y
STA $3D
LDA |$00B2,Y
STA $3D
LDA |$00B3,Y
STA $3D
LDA |$00B4,Y
STA $3D
LDA |$00B5,Y
STA $3D
LDA |$00B6,Y
STA $3D
LDA |$00B7,Y
STA $3D
LDA |$00B8,Y
STA $3D
LDA |$00B9,Y
STA $3D
LDA |$00BA,Y
STA $3D
LDA |$00BB,Y
STA $3D
LDA |$00BC,Y
STA $3D
LDA |$00BD,Y
STA $3D
LDA |$00BE,Y
STA $3D
LDA |$00BF,Y
STA $3D
LDA |$00C0,Y
STA $3D
LDA |$00C1,Y
STA $3D
LDA |$00C2,Y
STA $3D
LDA |$00C3,Y
STA $3D
LDA |$00C4,Y
STA $3D
LDA |$00C5,Y
STA $3D
LDA |$00C6,Y
STA $3D
LDA |$00C7,Y
STA $3D
LDA |$00C8,Y
STA $3D
LDA |$00C9,Y
STA $3D
LDA |$00CA,Y
STA $3D
LDA |$00CB,Y
STA $3D
LDA |$00CC,Y
STA $3D
LDA |$00CD,Y
STA $3D
LDA |$00CE,Y
STA $3D
LDA |$00CF,Y
STA $3D
LDA |$00D0,Y
STA $3D
LDA |$00D1,Y
STA $3D
LDA |$00D2,Y
STA $3D
LDA |$00D3,Y
STA $3D
LDA |$00D4,Y
STA $3D
LDA |$00D5,Y
STA $3D
LDA |$00D6,Y
STA $3D
LDA |$00D7,Y
STA $3D
LDA |$00D8,Y
STA $3D
LDA |$00D9,Y
STA $3D
LDA |$00DA,Y
STA $3D
LDA |$00DB,Y
STA $3D
LDA |$00DC,Y
STA $3D
LDA |$00DD,Y
STA $3D
LDA |$00DE,Y
STA $3D
LDA |$00DF,Y
STA $3D
LDA |$00E0,Y
STA $3D
LDA |$00E1,Y
STA $3D
LDA |$00E2,Y
STA $3D
LDA |$00E3,Y
STA $3D
LDA |$00E4,Y
STA $3D
LDA |$00E5,Y
STA $3D
LDA |$00E6,Y
STA $3D
LDA |$00E7,Y
STA $3D
LDA |$00E8,Y
STA $3D
LDA |$00E9,Y
STA $3D
LDA |$00EA,Y
STA $3D
LDA |$00EB,Y
STA $3D
LDA |$00EC,Y
STA $3D
LDA |$00ED,Y
STA $3D
LDA |$00EE,Y
STA $3D
LDA |$00EF,Y
STA $3D
LDA |$00F0,Y
STA $3D
LDA |$00F1,Y
STA $3D
LDA |$00F2,Y
STA $3D
LDA |$00F3,Y
STA $3D
LDA |$00F4,Y
STA $3D
LDA |$00F5,Y
STA $3D
LDA |$00F6,Y
STA $3D
LDA |$00F7,Y
STA $3D
LDA |$00F8,Y
STA $3D
LDA |$00F9,Y
STA $3D
LDA |$00FA,Y
STA $3D
LDA |$00FB,Y
STA $3D
LDA |$00FC,Y
STA $3D
LDA |$00FD,Y
STA $3D
LDA |$00FE,Y
STA $3D
LDA |$00FF,Y
STA $3D
L033711 RTS
L033712 ; Seriously?