; Super Cobra for the Atari 2600 VCS
;
; Copyright 1983 Parker Brothers
; Written by Mike Brodie
;
; Reverse-Engineered by Manuel Rotschkar (cybergoth@nexgo.de)
; Compiles with DASM
;
; History
; 09.10.2.5K      - Started

TIA_BASE_READ_ADDRESS   = $30

    processor 6502
    include vcs.h

; First bank

       ORG $1000
       RORG $D000

LD000: JSR    $FC2D
       LDA    SWCHB
       AND    #$01
       BEQ    LD000
LD00A: LDA    SWCHB
       AND    #$01
       BNE    LD014
       JMP    LD0B3
LD014: LDA    $E9
       BEQ    LD01C
       DEC    $E9
       BNE    LD023
LD01C: LDA    SWCHB
       AND    #$02
       BEQ    LD065
LD023: LDA    SWCHB
       AND    #$08
       BNE    LD02D
       JMP    LD0BF
LD02D: INC    $C4
       LDA    $AA
       AND    #$01
       BNE    LD053
       LDA    $86
       ORA    #$08
       STA    $86
       JMP    LD505
LD03E: JSR    LD17D
       JSR    LD35B
       JSR    LD621
       JSR    LD681
       JSR    LD3F7
LD04D: JSR    $FC2D
       JMP    LD00A
LD053: LDA    INPT4
       BPL    LD0B3
       LDA    $C4
       BNE    LD062
       LDA    $C2
       CLC
       ADC    #$10
       STA    $C2
LD062: JMP    LD04D
LD065: LDA    #$0F
       STA    $E9
       LDA    $86
       AND    #$F7
       STA    $86
       LDA    $AA
       ORA    #$01
       STA    $AA
       AND    #$04
       BEQ    LD087
       DEC    $B3
       LDA    $B3
       AND    #$0F
       BNE    LD087
       LDA    $B3
       ORA    #$03
       STA    $B3
LD087: LDA    $B3
       AND    #$0F
       STA    $EF
       ASL
       ADC    $EF
       TAX
       LDY    #$02
LD093: DEX
       LDA    LD0AA,X
       STA.wy $00E6,Y
       DEY
       BPL    LD093
       LDA    #$0A
       STA    $EA
       LDA    $AA
       ORA    #$04
       STA    $AA
       JMP    LD04D
LD0AA: .byte $B0,$9A,$00,$78,$56,$04,$30,$12,$00
LD0B3: LDA    #$FF
       STA    $E0
       STA    $E1
       JSR    LD112
       JMP    LD000
LD0BF: LDA    $86
       AND    #$F7
       STA    $86
       LDA    $AA
       AND    #$0F
       STA    $EF
       LDA    $BF
       AND    #$F0
       ORA    $EF
       STA    $BF
       LDA    $AA
       ORA    #$01
       STA    $AA
       LDA    #$FF
       STA    $E9
LD0DD: LDA    #$FF
       STA    $C4
LD0E1: LDA    SWCHB
       AND    #$08
       BNE    LD0FD
       JSR    $FC2D
       DEC    $C4
       BNE    LD0E1
       LDA    $C2
       CLC
       ADC    #$10
       STA    $C2
       DEC    $E9
       BNE    LD0DD
       JMP    $FC00
LD0FD: LDA    #$B2
       STA    $C2
       LDA    $BF
       AND    #$0F
       STA    $EF
       LDA    $AA
       AND    #$F0
       ORA    $EF
       STA    $AA
       JMP    LD02D
LD112: LDA    $B3
       AND    #$0F
       STA    $EF
       LDA    #$00
       LDX    #$41
LD11C: STA    $80,X
       DEX
       BPL    LD11C
       STX    $D0
       LDA    $EF
       STA    $B3
       LDA    #$00
       STA    $E6
       STA    $E7
       STA    $E8
       STA    $EA
       STA    $C7
       STA    $C4
       LDA    #$5A
       STA    $EB
       LDA    #$B2
       STA    $C2
       LDA    #$03
       STA    $80
       LDA    SWCHB
       AND    #$40
       BNE    LD150
       LDA    $83
       AND    #$F0
       ORA    #$00
       STA    $83
LD150: JSR    LDA85
       LDA    #$2B
       STA    $C3
       LDA    #$0B
       STA    $C8
       LDA    #$18
       STA    $CC
       LDA    #$4A
       STA    $CD
LD163: LDA    #$01
       STA    $DC
       LDA    #$3D
       STA    $DD
LD16B: LDA    $BC
       ORA    #$08
       STA    $BC
       LDX    #$01
       STX    $DE
       STX    $DF
       DEX
       STX    $E0
       STX    $E1
       RTS

LD17D: JSR    LD4F7
       BEQ    LD183
       RTS

LD183: LDA    $A7
       AND    #$F0
       STA    $A7
       LDA    $A4
       AND    #$0F
       ORA    $A7
       STA    $A7
       LDA    $A4
       AND    #$F0
       ORA    $C7
       STA    $A4
       LDA    $83
       CMP    #$0A
LD19D: BNE    LD1A2
       JMP    LD2F8
LD1A2: LDA    $83
       AND    #$0F
       TAY
       LDA    $86
       AND    #$02
       BEQ    LD1B0
LD1AD: JMP    LD291
LD1B0: LDA    $92
       AND    #$0F
       BNE    LD1C1
       LDA    $8F
       AND    #$0F
       BEQ    LD1AD
       DEC    $8F
       JMP    LD211
LD1C1: LDA    $8F
       AND    #$0F
       STA    $EE
       CMP    $C7
       BEQ    LD1AD
       JSR    LD342
       STA    $EF
       LDA    $92
       AND    #$01
       BEQ    LD202
       LDA    $C7
       CLC
       ADC    $EF
       CMP    $EE
       BCC    LD1E1
       LDA    $EE
LD1E1: STA    $C7
       LDA    $C8
       CMP    #$0B
       BEQ    LD1FF
       SEC
       SBC    $C7
LD1EC: BMI    LD1F2
       CMP    #$05
       BCS    LD1FF
LD1F2: LDA    $C8
       CLC
       ADC    $EF
       CMP    #$0A
       BCC    LD1FD
       LDA    #$0A
LD1FD: STA    $C8
LD1FF: JMP    LD211
LD202: LDA    $C7
       SEC
       SBC    $EF
       BMI    LD20D
       CMP    $EE
       BCS    LD20F
LD20D: LDA    $EE
LD20F: STA    $C7
LD211: DEC    $CA
       BNE    LD232
       LDA    LDAF1,Y
       BEQ    LD22D
       LDA    $86
       AND    #$02
       BNE    LD22D
       LDA    $86
       EOR    #$01
       STA    $86
       LDX    LDB28,Y
       AND    #$01
       BNE    LD230
LD22D: LDX    LDB1D,Y
LD230: STX    $CA
LD232: DEC    $C9
       BNE    LD290
       JSR    LDAC6
       AND    LDAE6,Y
       STA    $C9
       INC    $C9
       LDA    $B9
       AND    #$F0
       ORA    $C8
       STA    $B9
       LDA    $86
       AND    #$01
       BNE    LD253
       LDA    #$0B
       STA    $C8
       RTS

LD253: JSR    LD342
       AND    #$01
       LDX    $EC
LD25A: BPL    LD261
       EOR    #$FF
       CLC
       ADC    #$01
LD261: STA    $EF
       LDA    $86
       AND    #$02
       BEQ    LD26D
       LDA    #$01
       STA    $EF
LD26D: LDA    $C8
       CLC
       ADC    $EF
       CMP    #$0B
       BCC    LD278
       LDA    #$0A
LD278: STA    $C8
       SEC
       SBC    $C7
       BMI    LD283
       CMP    #$05
       BCS    LD290
LD283: LDA    $C7
       CLC
       ADC    #$05
       CMP    #$0A
       BCC    LD28E
       LDA    #$0A
LD28E: STA    $C8
LD290: RTS

LD291: JSR    LDAC6
       AND    #$0F
       TAX
       LDA    LDB58,X
       PHA
       LDA    $86
       AND    #$02
       BEQ    LD2A5
       PLA
       LDA    #$00
       PHA
LD2A5: LDA    $86
       AND    #$FB
       STA    $86
       PLA
       CMP    #$08
       BNE    LD2B7
       LDX    LDAF1,Y
LD2B3: BNE    LD2B7
       LDA    #$0A
LD2B7: STA    $EE
       LDA    $8F
       AND    #$F0
       ORA    $EE
       STA    $8F
       LDA    $C7
       CMP    $EE
       BEQ    LD2DC
       BCC    LD2CD
       LDA    #$02
       BNE    LD2CF
LD2CD: LDA    #$01
LD2CF: STA    $EF
       LDA    $92
       AND    #$F0
       ORA    $EF
       STA    $92
       JMP    LD1B0
LD2DC: JSR    LDAC6
       AND    #$0F
       STA    $EE
       BNE    LD2E7
       INC    $EE
LD2E7: LDA    $8F
       AND    #$F0
       ORA    $EE
       STA    $8F
       LDA    $92
       AND    #$F0
       STA    $92
       JMP    LD1B0
LD2F8: LDA    $86
       AND    #$02
       BNE    LD32C
       LDA    $86
       AND    #$FB
       STA    $86
       LDA    $C9
       BEQ    LD30B
       DEC    $C9
       RTS

LD30B: LDX    $CB
       LDA    LDB68,X
       AND    #$0F
       STA    $C9
       LDA    LDB68,X
       LSR
       LSR
       LSR
       LSR
       STA    $C7
       DEX
       BNE    LD329
       LDA    $BC
       AND    #$01
       BNE    LD337
       LDX    LDB68
LD329: STX    $CB
       RTS

LD32C: LDA    #$03
       STA    $C9
       LDA    $C7
       BEQ    LD336
       DEC    $C7
LD336: RTS

LD337: LDA    $86
       ORA    #$02
       STA    $86
       LDA    #$40
       STA    $CB
       RTS

LD342: JSR    LDAC6
       AND    LDB07,Y
       BNE    LD353
       LDA    $EC
       AND    LDB12,Y
       BEQ    LD353
       LDA    #$01
LD353: BPL    LD35A
       AND    #$7F
       CLC
       ADC    #$01
LD35A: RTS

LD35B: JSR    LD4F7
       CMP    #$01
       BEQ    LD363
       RTS

LD363: INC    $B6
       LDA    $86
       AND    #$02
       BEQ    LD3AB
       DEC    $CB
       BNE    LD39A
       LDA    $86
       AND    #$FC
       STA    $86
       LDA    #$0B
       STA    $C8
       INC    $83
       LDA    $83
       AND    #$0F
       CMP    #$0B
       BNE    LD397
       LDA    $83
       AND    #$F0
       STA    $83
       LDA    #$00
       STA    $D6
       STA    $DB
       STA    $A1
       LDA    $BC
       AND    #$FE
       STA    $BC
LD397: JSR    LDA85
LD39A: LDA    $CB
       CMP    #$15
       BNE    LD3AB
       JSR    LD16B
       LDA    #$7B
       STA    $DC
       LDA    #$92
       STA    $DD
LD3AB: LDX    #$03
       LDY    #$0A
LD3AF: CPY    $C8
       BCS    LD3BB
       CPY    $C7
       BCS    LD3BA
       SEC
       BCS    LD3BB
LD3BA: CLC
LD3BB: ROR    $82,X
       ROL    $81,X
       LDA    $80,X
       AND    #$0F
       STA    $EF
       ROR    $80,X
       LDA    $80,X
       ROR
       ROR
       ROR
       ROR
       LDA    $80,X
       AND    #$F0
       ORA    $EF
       STA    $80,X
       DEX
       DEX
       DEX
       TXA
       AND    #$01
       BEQ    LD3BB
       TXA
       CLC
       ADC    #$0C
       TAX
       DEY
       BPL    LD3AF
       LDA    $BC
       AND    #$01
       BNE    LD3F6
       LDX    #$04
LD3ED: LDA    $D7,X
       BEQ    LD3F3
       DEC    $D7,X
LD3F3: DEX
       BPL    LD3ED
LD3F6: RTS

LD3F7: JSR    LD4F7
       CMP    #$01
       BEQ    LD409
       CMP    #$02
       BEQ    LD409
       CMP    #$08
       BEQ    LD409
       JMP    LD4A8
LD409: LDX    $CC
       BMI    LD42F
       LDA    $86
       AND    #$02
       BEQ    LD432
       LDA    $CB
       CMP    #$15
       BCS    LD432
       CPX    #$18
       BEQ    LD425
       BCC    LD422
       DEX
       BNE    LD423
LD422: INX
LD423: STX    $CC
LD425: LDX    $CD
       CPX    #$4A
       BCS    LD42F
       INX
       INX
       STX    $CD
LD42F: JMP    LD491
LD432: LDA    $C3
       BNE    LD43F
       LDA    $CC
       BEQ    LD43C
       DEC    $CC
LD43C: JMP    LD4A8
LD43F: LDX    $CD
       LDA    SWCHA
       ROL
       BCS    LD45D
       CPX    #$4A
       BCS    LD45D
       INC    $CD
       INC    $CD
       TAY
       LDA    $89
       AND    #$F3
       ORA    #$08
       STA    $89
       TYA
       ROL
       JMP    LD47D
LD45D: ROL
       BCS    LD475
       CPX    #$0F
       BCC    LD475
       DEC    $CD
       DEC    $CD
       TAY
       LDA    $89
       AND    #$F3
       ORA    #$04
       STA    $89
       TYA
       JMP    LD47D
LD475: TAY
       LDA    $89
       AND    #$F3
       STA    $89
       TYA
LD47D: LDX    $CC
       ROL
       BCS    LD488
       CPX    #$02
       BCC    LD488
       DEC    $CC
LD488: ROL
       BCS    LD491
       CPX    #$2C
       BCS    LD491
       INC    $CC
LD491: LDA    $BC
       AND    #$01
       BEQ    LD4AE
       LDA    $CC
       SEC
       SBC    #$01
       STA    $D6
       LDA    $CD
       LSR
       LSR
       CLC
       ADC    #$01
       STA    $DB
       RTS

LD4A8: LDA    $BC
       AND    #$01
       BNE    LD4B8
LD4AE: LDA    INPT4
       BPL    LD4B9
       LDA    $BC
       AND    #$FD
       STA    $BC
LD4B8: RTS

LD4B9: LDA    $BC
       AND    #$02
       BNE    LD4B8
       LDA    $BC
       ORA    #$02
       STA    $BC
       LDA    $AA
       EOR    #$08
       STA    $AA
       AND    #$08
       BEQ    LD4E2
       LDX    $CC
       DEX
       STX    $CE
       LDA    $CD
       CLC
       ADC    #$05
       STA    $CF
       LDA    $E4
       ORA    #$10
       STA    $E4
       RTS

LD4E2: LDA    $CD
       CLC
       ADC    #$0C
       STA    $D1
       LDA    $CC
       SEC
       SBC    #$03
       STA    $D0
       LDA    $AD
       ORA    #$05
       STA    $AD
       RTS

LD4F7: LDA    $B3
       AND    #$0F
       TAX
       LDA    LD501,X
       AND    $C4
LD501: RTS

LD502: .byte $03,$07,$0F
LD505: LDA    $CE
       BMI    LD51E
       JSR    LD4F7
       CMP    #$01
       BEQ    LD51E
       INC    $CF
       INC    $CF
       LDA    $CF
       CMP    #$95
       BCC    LD51E
       LDA    #$FF
       STA    $CE
LD51E: LDA    $D0
       BMI    LD554
       LDA    $AD
       AND    #$0F
       BEQ    LD534
       LDA    $C4
       AND    #$03
       BNE    LD534
       INC    $D1
       INC    $D1
       DEC    $AD
LD534: LDA    $AD
       AND    #$0F
       CMP    #$04
       BCS    LD554
       LDA    $B3
       AND    #$01
       BEQ    LD54A
       LDA    $C4
       AND    #$01
       BEQ    LD54A
       DEC    $D0
LD54A: LDA    $B3
       AND    #$0F
       CMP    #$03
       BCS    LD554
       DEC    $D0
LD554: LDA    $C4
       AND    #$01
       BNE    LD566
       LDA    $89
       AND    #$02
       BNE    LD569
       LDA    $8C
       EOR    #$01
       STA    $8C
LD566: JMP    LD61E
LD569: LDA    $C4
       AND    #$03
       BNE    LD566
       LDA    $8C
       AND    #$0F
       INC    $8C
       CMP    #$04
       BNE    LD566
       JSR    $FC64
       LDA    #$4B
       STA    $C4
       LDA    $AA
       AND    #$01
       BEQ    LD5A6
       LDA    #$F0
       STA    $C4
       LDA    $E6
       STA    $CA
       LDA    $E7
       STA    $CB
       LDA    $E8
       STA    $CF
       LDA    #$16
       STA    $EA
       LDA    #$01
       STA    $E8
       LDA    #$23
       STA    $E7
       LDA    #$45
       STA    $E6
LD5A6: JSR    $FC2D
       LDA    SWCHB
       AND    #$01
       BEQ    LD61E
       LDA    SWCHB
       AND    #$02
       BEQ    LD61E
       LDA    $AA
       AND    #$01
       BEQ    LD5C7
       LDA    $C4
       CMP    #$E1
       BCS    LD5C7
       LDA    INPT4
       BPL    LD5F4
LD5C7: LDA    $BC
       EOR    #$04
       STA    $BC
       AND    #$04
       BNE    LD5A6
       DEC    $C4
       BNE    LD5A6
       LDA    $AA
       AND    #$01
       BEQ    LD61B
       LDA    $CA
       STA    $E6
       LDA    $CB
       STA    $E7
       LDA    $CF
       STA    $E8
       LDA    #$00
       STA    $EA
       STA    $CA
       STA    $CB
       STA    $CF
       JMP    LD61E
LD5F4: LDA    $AA
       AND    #$FE
       STA    $AA
       LDA    #$03
       STA    $80
       LDA    #$00
       STA    $E6
       STA    $E7
       STA    $E8
       STA    $EA
       STA    $CA
       STA    $CB
       STA    $CF
       LDA    #$B2
       STA    $C2
       JSR    $FC88
       JSR    LD163
       JMP    LD03E
LD61B: JSR    $FC88
LD61E: JMP    LD03E
LD621: LDA    $B6
       AND    #$04
       BNE    LD628
       RTS

LD628: LDA    $B6
       AND    #$F0
       STA    $B6
       LDA    $B0
       AND    #$0F
       BNE    LD650
       LDA    $B0
       ORA    #$03
       STA    $B0
       LDA    $C3
       BEQ    LD650
       DEC    $C3
       CMP    #$10
       BCS    LD650
       LDA    $E3
       AND    #$80
       BNE    LD650
       LDA    $E4
       ORA    #$80
       STA    $E4
LD650: DEC    $B0
       LDA    $83
       AND    #$0F
       CMP    #$0A
       BNE    LD65B
       RTS

LD65B: LDA    $86
       AND    #$06
       BNE    LD668
       LDA    #$10
       LDY    #$00
       JSR    $FCE2
LD668: DEC    $EB
       BNE    LD680
       LDA    $83
       AND    #$0F
       CMP    #$0A
       BCS    LD680
       LDA    $86
       ORA    #$02
       AND    #$FE
       STA    $86
       LDA    #$40
       STA    $CB
LD680: RTS

LD681: JSR    LD4F7
       AND    #$03
       CMP    #$03
       BEQ    LD68D
       JMP    LDA30
LD68D: LDX    #$04
       LDY    #$0C
       LDA    #$00
       STA    $EF
LD695: LDA    $D7,X
       CMP    #$05
       BCS    LD6BD
       LDA.wy $0095,Y
       AND    #$0F
       CMP    #$09
       BNE    LD6AA
       LDA    $BC
       AND    #$01
       BNE    LD6E1
LD6AA: LDA    #$00
       STA    $D7,X
       STA    $D2,X
       LDA.wy $0095,Y
       AND    #$F0
       STA.wy $0095,Y
       INC    $EF
       JMP    LD6E1
LD6BD: LDA.wy $0095,Y
       AND    #$0F
       CMP    #$0A
       BCC    LD6E1
       CMP    #$0C
       BEQ    LD6AA
       BCC    LD6D8
       CMP    #$0F
       BEQ    LD6AA
       LDA    $C4
       AND    #$0F
       CMP    #$07
       BNE    LD6E1
LD6D8: LDA.wy $0095,Y
       CLC
       ADC    #$01
       STA.wy $0095,Y
LD6E1: DEY
       DEY
       DEY
       DEX
       BPL    LD695
       LDA    $EF
       BNE    LD6EE
LD6EB: JMP    LD855
LD6EE: LDA    $BC
       AND    #$01
       BNE    LD6EB
       LDA    $86
       AND    #$06
       BNE    LD6EB
       TAX
       TAY
LD6FC: LDA    $D2,X
       BEQ    LD706
       INY
       INY
       INY
       INX
       BNE    LD6FC
LD706: STX    $F2
       STY    $F3
       LDA    $83
       AND    #$0F
       TAX
       LDA    LDB49,X
       TAX
       AND    #$01
       BEQ    LD720
       LDA    $86
       AND    #$01
       BEQ    LD728
       JMP    LD7DA
LD720: TXA
       AND    #$02
       BEQ    LD728
       JMP    LD82B
LD728: LDX    $C5
       LDA    $A7
       AND    #$0F
       STA    $EF
       LDA    #$00
       CLC
LD733: ADC    $EF
       DEX
       BNE    LD733
       PHA
       LDA    $83
       AND    #$0F
       TAX
       PLA
       CLC
       ADC    LDAFC,X
       STA    $EF
       SEC
       SBC    #$08
       BPL    LD74C
       LDA    #$00
LD74C: STA    $F0
       LDX    #$04
       LDY    #$0C
LD752: LDA    $D2,X
       BEQ    LD77D
       LDA    $D2,X
       SEC
       SBC    #$07
       BPL    LD75F
       LDA    #$00
LD75F: STA    $F1
       LDA    $D2,X
       CMP    $F0
       BCC    LD770
       LDA    $EF
       CMP    $F1
       BCC    LD77D
LD76D: JMP    LD855
LD770: LDA.wy $0095,Y
       AND    #$0F
       CMP    #$02
       BEQ    LD76D
       CMP    #$05
       BEQ    LD76D
LD77D: DEY
       DEY
       DEY
       DEX
       BPL    LD752
       LDA    $83
       AND    #$0F
       CMP    #$0A
       BNE    LD79A
       LDA    $A7
       AND    #$0F
       CMP    #$03
       BEQ    LD797
       CMP    #$05
       BNE    LD79A
LD797: JMP    LD855
LD79A: LDX    #$01
       LDA    $A4
       AND    #$0F
       STA    $F1
       LDA    $A7
       AND    #$0F
       CMP    $F1
       BNE    LD7C4
       LDX    #$03
       CMP    #$06
       BCC    LD7B2
       LDX    #$04
LD7B2: LDA    $83
       AND    #$0F
       CMP    #$0A
       BNE    LD7C4
       LDA    $F1
       LDX    #$04
       CMP    #$04
       BNE    LD7C4
       LDX    #$09
LD7C4: TXA
       LDY    $F3
       ORA.wy $0095,Y
       STA.wy $0095,Y
       LDX    $F2
       LDA    $EF
       STA    $D2,X
       LDA    #$27
       STA    $D7,X
       JMP    LD963
LD7DA: LDA    $B9
       AND    #$0F
       CMP    #$08
       BCC    LD813
       CMP    #$0B
       BCS    LD813
       ADC    #$01
       ASL
       ASL
       STA    $EF
       LDX    #$04
       LDY    #$0C
LD7F0: LDA.wy $0095,Y
       AND    #$0F
       BEQ    LD808
       CMP    #$02
       BEQ    LD813
       CMP    #$05
       BEQ    LD813
       LDA    $D2,X
       CLC
       ADC    #$07
       CMP    $EF
       BCS    LD813
LD808: DEY
       DEY
       DEY
       DEX
       BPL    LD7F0
       LDX    #$06
       JMP    LD7C4
LD813: LDA    $A4
       AND    #$0F
       STA    $EF
       LDA    $A7
       AND    #$0F
       CMP    $EF
       BNE    LD828
       CMP    #$06
       BCS    LD828
       JMP    LD728
LD828: JMP    LD855
LD82B: LDX    #$04
       LDY    #$0C
LD82F: LDA.wy $0095,Y
       AND    #$0F
       BEQ    LD840
       CMP    #$08
       BEQ    LD813
       LDA    $D2,X
       CMP    #$14
       BCS    LD813
LD840: DEY
       DEY
       DEY
       DEX
       BPL    LD82F
       LDA    $AA
       ORA    #$02
       STA    $AA
       LDA    #$1E
       STA    $EF
       LDX    #$08
       JMP    LD7C4
LD855: LDA    $83
       AND    #$0F
       TAX
       LDA    LDB49,X
       AND    #$04
       BEQ    LD883
       LDX    #$04
       LDY    #$0C
LD865: LDA.wy $0095,Y
       AND    #$0F
       CMP    #$06
       BEQ    LD886
       CMP    #$02
       BEQ    LD8DB
       CMP    #$01
       BNE    LD883
       LDA    $CC
       SEC
       SBC    $D2,X
       BPL    LD899
       LDA    $D7,X
       CMP    #$14
       BCC    LD8CB
LD883: JMP    LD8E4
LD886: LDA    $D7,X
       ASL
       ASL
       SEC
       SBC    $CD
       BCC    LD893
       CMP    #$0F
       BCS    LD883
LD893: TYA
       TAX
       INC    $95,X
       BNE    LD883
LD899: STA    $EF
       LDA    $CD
       LSR
       LSR
       SEC
       SBC    $D7,X
       BPL    LD8CB
       EOR    #$FF
       CLC
       ADC    #$01
       STA    $F0
       LDA    $B3
       AND    #$0F
       CMP    #$01
       BEQ    LD8BB
       ASL    $F0
       CMP    #$02
       BEQ    LD8BB
       ASL    $F0
LD8BB: LDA    $EF
       SEC
       SBC    $F0
       BPL    LD8C7
       EOR    #$FF
       CLC
       ADC    #$01
LD8C7: CMP    #$0A
       BCS    LD8E4
LD8CB: LDA.wy $0095,Y
       AND    #$F0
       ORA    #$02
       STA.wy $0095,Y
       LDA    $E5
       ORA    #$20
       STA    $E5
LD8DB: DEY
       DEY
       DEY
       DEX
       BMI    LD8E4
       JMP    LD865
LD8E4: LDA    $83
       AND    #$0F
       TAX
       LDA    LDB49,X
       AND    #$08
       BEQ    LD920
       LDX    #$04
       LDY    #$0C
LD8F4: LDA.wy $0095,Y
       AND    #$0F
       CMP    #$05
       BEQ    LD945
       DEY
       DEY
       DEY
       DEX
LD901: BPL    LD8F4
       LDA    $A1
       AND    #$0F
       CMP    #$04
       BNE    LD920
       LDA    $D6
       CMP    #$26
       BCS    LD920
       LDA    $DB
       CMP    #$09
       BCC    LD920
       LDX    #$04
LD919: LDA    $D2,X
       BEQ    LD923
       DEX
       BPL    LD919
LD920: JMP    LD963
LD923: TXA
       STA    $EF
       ASL
       ADC    $EF
       TAY
       LDA.wy $0095,Y
       ORA    #$05
       STA.wy $0095,Y
       LDA    $D6
       CLC
       ADC    #$03
       STA    $D2,X
       LDA    $DB
       STA    $D7,X
       DEC    $D7,X
       LDA    $E4
       ORA    #$08
       STA    $E4
LD945: INC    $D2,X
       DEC    $D7,X
       LDA    $D2,X
       CMP    #$2C
       BCS    LD955
       LDA    $D7,X
       CMP    #$05
       BCS    LD963
LD955: LDA.wy $0095,Y
       AND    #$F0
       STA.wy $0095,Y
       LDA    #$00
       STA    $D2,X
       STA    $D7,X
LD963: LDX    #$04
       LDY    #$0C
LD967: LDA.wy $0095,Y
       AND    #$0F
       CMP    #$02
       BNE    LD97E
       LDA    $D2,X
       CMP    #$2C
       BCS    LD97B
       INC    $D2,X
       JMP    LDA27
LD97B: JMP    LDA17
LD97E: CMP    #$07
       BNE    LD9B6
       DEC    $D2,X
       LDA    $D2,X
       SEC
       SBC    #$07
       BMI    LD97B
       STA    $EF
       STX    $F2
       STY    $F3
       LDX    #$04
       LDY    #$0C
LD995: LDA.wy $0095,Y
       AND    #$0F
       BEQ    LD9AA
       CMP    #$06
       BEQ    LD9AA
       CMP    #$07
       BEQ    LD9AA
       LDA    $D2,X
       CMP    $EF
       BCS    LDA13
LD9AA: DEY
       DEY
       DEY
       DEX
       BPL    LD995
       LDX    $F2
       LDY    $F3
       BPL    LDA27
LD9B6: CMP    #$08
       BNE    LDA27
       LDA    $AA
       AND    #$02
       BNE    LD9C4
       DEC    $D2,X
       BNE    LD9C6
LD9C4: INC    $D2,X
LD9C6: LDA    $D2,X
       CMP    #$2B
       BCS    LDA0A
       LDA    $D1,X
       CLC
       ADC    #$09
       CMP    $D2,X
       BCS    LDA02
       CMP    $CC
       BCS    LDA27
       LDA    $CC
       SEC
       SBC    $D2,X
       BPL    LD9E2
       EOR    #$FF
LD9E2: STA    $EF
       LDA    $CC
       CMP    #$27
       BCS    LD9F6
       LDA    $83
       AND    #$0F
       CMP    #$05
       BCS    LD9F6
       LDA    #$0F
       BNE    LD9F8
LD9F6: LDA    #$08
LD9F8: CMP    $EF
       BCS    LDA27
       LDA    $CC
       CMP    $D2,X
       BCC    LDA0A
LDA02: LDA    $AA
       ORA    #$02
       STA    $AA
       BNE    LDA27
LDA0A: LDA    $AA
       AND    #$FD
       STA    $AA
       JMP    LDA27
LDA13: LDX    $F2
       LDY    $F3
LDA17: LDA.wy $0095,Y
       AND    #$F0
       ORA    #$0A
       STA.wy $0095,Y
       LDA    $E4
       ORA    #$40
       STA    $E4
LDA27: DEY
       DEY
       DEY
       DEX
       BMI    LDA30
       JMP    LD967
LDA30: LDA    #$00
       STA    $F0
       LDX    #$04
       LDY    #$0C
LDA38: LDA    $D2,X
       CMP    $D1,X
       BCS    LDA7A
       LDA    $D1,X
       STA    $EF
       LDA    $D2,X
       STA    $D1,X
       LDA    $EF
       STA    $D2,X
       LDA    $D6,X
       STA    $EF
       LDA    $D7,X
       STA    $D6,X
       LDA    $EF
       STA    $D7,X
       LDA.wy $0092,Y
       AND    #$0F
       STA    $EF
       LDA.wy $0095,Y
       AND    #$0F
       STA    $F0
       LDA.wy $0092,Y
       AND    #$F0
       ORA    $F0
       STA.wy $0092,Y
       LDA.wy $0095,Y
       AND    #$F0
       ORA    $EF
       STA.wy $0095,Y
       INC    $F0
LDA7A: DEY
       DEY
       DEY
       DEX
       BNE    LDA38
       LDA    $F0
       BNE    LDA30
       RTS

LDA85: LDA    $83
       AND    #$0F
       TAX
       LDA    $86
       ORA    #$04
       STA    $86
       LDA    LDB1D,X
       STA    $CA
       LDA    #$01
       STA    $C9
       LDA    #$FF
       STA    $CE
       LDA    LDADB,X
       STA    $C5
       TAX
       LDA    LDB53,X
       STA    $C6
       LDA    $83
       AND    #$0F
       ASL
       TAX
       LDA    LDB33,X
       STA    $EC
       LDA    LDB34,X
       STA    $ED
       LDA    $83
       AND    #$0F
       CMP    #$0A
       BNE    LDAC5
       LDA    LDB68
       STA    $CB
LDAC5: RTS

LDAC6: LDA    $EC
       ROL    $EC
       EOR    $EC
       ROR    $EC
       INC    $ED
       ADC    $ED
       BVC    LDAD8
       INC    $ED
       ADC    $ED
LDAD8: STA    $EC
       RTS

LDADB: .byte $04,$04,$02,$04,$03,$04,$04,$02,$04,$03,$04
LDAE6: .byte $00,$01,$03,$01,$01,$00,$01,$03,$01,$03,$01
LDAF1: .byte $01,$01,$00,$01,$00,$01,$01,$00,$01,$00,$01
LDAFC: .byte $08,$08,$03,$08,$03,$08,$08,$03,$08,$03,$08
LDB07: .byte $01,$81,$01,$02,$83,$81,$01,$03,$03,$03,$81
LDB12: .byte $11,$11,$01,$11,$11,$11,$11,$11,$11,$11,$11
LDB1D: .byte $82,$37,$00,$4B,$00,$6E,$46,$00,$28,$00,$05
LDB28: .byte $BE,$96,$00,$6E,$00,$FF,$32,$00,$46,$00,$FF
LDB33: .byte $85
LDB34: .byte $00,$7F,$00,$3F,$00,$59,$00,$BF,$00,$FE,$00,$57,$00,$59,$02,$F7
       .byte $01,$DA,$03,$FF,$02
LDB49: .byte $00,$04,$0A,$0C,$0C,$09,$0D,$02,$0D,$0C
LDB53: .byte $0C,$26,$1B,$10,$00
LDB58: .byte $00,$05,$06,$08,$02,$01,$04,$06,$07,$08,$03,$04,$01,$00,$05,$07
LDB68: .byte $36,$0F,$0F,$21,$70,$60,$80,$60,$40,$30,$20,$30,$40,$20,$30,$71
       .byte $81,$61,$51,$60,$81,$1F,$2F,$30,$96,$76,$48,$8F,$64,$74,$91,$53
       .byte $40,$50,$32,$23,$40,$50,$62,$81,$70,$61,$90,$70,$51,$82,$92,$60
       .byte $70,$40,$30,$40,$1F,$20,$1F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
LDC00: LDA    #$17
       STA    TIM64T
       LDA    $C4
       AND    #$03
       BNE    LDC5F
       LDA    $89
       AND    #$02
       BNE    LDC5F
       LDA    CXP0FB
       AND    #$C0
       BNE    LDC34
       LDA    CXPPMM
       AND    #$80
       BEQ    LDC5F
       LDA    $CC
       STA    $FB
       JSR    $F1EC
       LDA.wy $0095,Y
       AND    #$0F
       CMP    #$0C
       BCS    LDC5F
LDC2D: CMP    #$09
       BEQ    LDC56
       JSR    $F25A
LDC34: LDA    $8C
       AND    #$F0
       ORA    #$02
       STA    $8C
       LDA    $89
       ORA    #$02
       STA    $89
       LDA    $BC
       AND    #$F7
       STA    $BC
       LDA    #$00
       STA    $E2
       STA    $E3
       STA    $E5
       LDA    #$40
       STA    $E4
       BNE    LDC5F
LDC56: LDA    $BC
       AND    #$01
       BNE    LDC5F
       JMP    $F27C
LDC5F: LDA    CXM0P
       AND    #$80
       BEQ    LDC91
       LDA    $CE
       STA    $FB
       JSR    $F1EC
       LDA.wy $0095,Y
       AND    #$0F
       CMP    #$03
       BNE    LDC88
       LDA    $83
       AND    #$0F
       TAX
       LDA    $C3
       CLC
       ADC    $F901,X
       CMP    #$2B
       BCC    LDC86
       LDA    #$2A
LDC86: STA    $C3
LDC88: JSR    $F25A
       LDA    #$FF
       STA    $CE
       BNE    LDCA1
LDC91: LDA    CXM0FB
       AND    #$80
       BEQ    LDCA1
       LDA    #$FF
       STA    $CE
       LDA    $E4
       ORA    #$10
       STA    $E4
LDCA1: LDA    CXP1FB
       AND    #$40
       BEQ    LDCCF
       LDA    $D0
       STA    $FB
       JSR    $F1EC
       LDA.wy $0095,Y
       AND    #$0F
       CMP    #$03
       BNE    LDCCA
       LDA    $83
       AND    #$0F
       TAX
       LDA    $C3
       CLC
       ADC    $F901,X
       CMP    #$2B
       BCC    LDCC8
       LDA    #$2A
LDCC8: STA    $C3
LDCCA: JSR    $F25A
       BNE    LDCD5
LDCCF: LDA    CXBLPF
       AND    #$80
       BEQ    LDCDF
LDCD5: LDA    #$FF
       STA    $D0
       LDA    $E4
       ORA    #$10
       STA    $E4
LDCDF: LDA    $BC
       AND    #$08
       BEQ    LDCE8
       JMP    $F2B3
LDCE8: LDX    #$00
       JSR    $F17B
       LDA    $E2,X
       BEQ    LDD0B
       LDY    $E0
       LDA    $FD00,Y
       STA    $F4
       LDA    $FD01,Y
       STA    $F5
       LDA    $E4,X
       BEQ    LDD08
LDD01: JSR    $F19D
       LDA    #$00
       STA    $E4,X
LDD08: JSR    $F1B9
LDD0B: INX
       JSR    $F17B
       LDA    $E2,X
LDD11: BEQ    LDD30
       LDY    $E1
       LDA    $FD10,Y
       STA    $F4
       LDA    $FD11,Y
       STA    $F5
       LDA    $E4,X
       BEQ    LDD2A
       JSR    $F19D
       LDA    #$00
       STA    $E4,X
LDD2A: JSR    $F1B9
       JMP    $F156
LDD30: LDA    $86
       AND    #$08
       STA    AUDV1
       LDA    #$0E
       STA    AUDC1
       LDA    $89
       AND    #$04
       BEQ    LDD46
       LDA    #$1F
       STA    AUDF1
       BNE    LDD56
LDD46: LDA    $89
       AND    #$08
       BEQ    LDD52
       LDA    #$10
       STA    AUDF1
       BNE    LDD56
LDD52: LDA    #$16
       STA    AUDF1
LDD56: LDA    INTIM
       BNE    LDD56
       STA    WSYNC
       LDA    #$02
       STA    VBLANK
       STA    VSYNC
       LDA    #$2C
       STA    TIM8T
LDD68: LDA    INTIM
       BNE    LDD68
       LDA    #$00
       STA    WSYNC
       STA    VSYNC
       LDA    #$2C
       STA    TIM64T
       JMP    $FC39

LDD7B:
       LDY    #$07
       LDA    #$80
       STA    $EF
LDD81: LDA    $EF
       AND    $E4,X
       BNE    LDD8D
       LSR    $EF
       DEY
       BPL    LDD81
       RTS

LDD8D: CMP    $E2,X
       BCC    LDD98
       STA    $E2,X
       TYA
       ASL
       STA    $E0,X
       RTS

LDD98: LDA    #$00
       STA    $E4,X
       RTS

LDD9D:
       LDY    #$00
       LDA    ($F4),Y
       TAY
       LDA    ($F4),Y
       STA    $DC,X
       DEY
       LDA    ($F4),Y
       STA    AUDF0,X
       DEY
       LDA    ($F4),Y
       STA    AUDV0,X
       DEY
       LDA    ($F4),Y
       STA    AUDC0,X
       DEY
       STY    $DE,X
       RTS

LDDB9:
       LDY    $DE,X
       BNE    LDDC8
       LDA    #$00
       STA    AUDV0,X
       STA    $E2,X
       LDA    #$FF
       STA    $E0,X
       RTS

LDDC8: LDA    $DC,X
       AND    #$01
       BEQ    LDDD3
       LDA    ($F4),Y
       STA    AUDF0,X
       DEY
LDDD3: LDA    $DC,X
       AND    #$02
       BEQ    LDDDE
       LDA    ($F4),Y
       STA    AUDV0,X
       DEY
LDDDE: LDA    $DC,X
       AND    #$04
       BEQ    LDDE9
       LDA    ($F4),Y
       STA    AUDC0,X
       DEY
LDDE9: STY    $DE,X
       RTS

LDDEC:
       LDA    #$FF
       STA    $FA
       LDX    #$04
LDDF2: LDA    $D2,X
       BEQ    LDE08
       SEC
       SBC    $FB
       BPL    LDE00
       EOR    #$FF
       CLC
       ADC    #$01
LDE00: CMP    $FA
       BCS    LDE08
       STA    $FA
       TXA
       TAY
LDE08: DEX
       BPL    LDDF2
       TYA
       STA    $FB
       TAX
       ASL
       ADC    $FB
       TAY
       STY    $EE
       LDA.wy $0095,Y
       AND    #$0F
       CMP    #$01
       BEQ    LDE36
       CMP    #$02
       BEQ    LDE36
       CMP    #$04
       BEQ    LDE40
       CMP    #$06
       BEQ    LDE36
       CMP    #$07
       BEQ    LDE40
       CMP    #$09
       BEQ    LDE4A
       CMP    #$08
       BNE    LDE57
LDE36: LDA    #$50
       LDY    #$00
       JSR    $FCE2
       JMP    $F257
LDE40: LDA    #$00
       LDY    #$01
       JSR    $FCE2
       JMP    $F257
LDE4A: LDA    $BC
       AND    #$01
       BNE    LDE57
       LDA    #$00
       LDY    #$50
       JSR    $FCE2
LDE57: LDY    $EE
       RTS

LDE5A:
       LDA.wy $0095,Y
       AND    #$0F
       CMP    #$04
       BEQ    LDE67
       LDA    #$0A
       BNE    LDE69
LDE67: LDA    #$0D
LDE69: STA    $FB
       LDA.wy $0095,Y
       AND    #$F0
       ORA    $FB
       STA.wy $0095,Y
       LDA    $E4
       ORA    #$40
       STA    $E4
       RTS

LDE7C:
       LDX    #$04
       LDY    #$0C
LDE80: LDA    #$00
       STA    $D2,X
       STA    $D7,X
       LDA.wy $0095,Y
       AND    #$F0
       STA.wy $0095,Y
       DEY
       DEY
       DEY
       DEX
       BPL    LDE80
       LDA    $CC
       SEC
       SBC    #$01
       STA    $D6
       LDA    $CD
       LSR
       LSR
       CLC
       ADC    #$01
       STA    $DB
       LDA    $A1
       ORA    #$09
       STA    $A1
       LDA    $BC
       ORA    #$01
       STA    $BC
       JMP    $F0DF

LDEB3:
       LDX    #$01
LDEB5: LDY    $DC,X
       BEQ    LDF03
       LDA    $E0,X
       BEQ    LDEC3
       DEC    $E0,X
       LDA    $E0,X
       STA    AUDV0,X
LDEC3: DEC    $DE,X
       BNE    LDF03
LDEC7: LDA    $F31F,Y
       BEQ    LDEFD
       INY
       STY    $DC,X
       CMP    #$20
       BCC    LDEE5
       STA    AUDF0,X
       AND    #$E0
       LSR
       LSR
       LSR
       STA    $DE,X
       LDA    $E2,X
       STA    $E0,X
       STA    AUDV0,X
       JMP    $F303
LDEE5: LDA    $F31F,Y
       STA    $E0,X
       LSR
       LSR
       LSR
       LSR
       STA    AUDC0,X
       LDA    $E0,X
       AND    #$0F
       STA    $E0,X
       STA    $E2,X
       STA    AUDV0,X
       INY
       BNE    LDEC7
LDEFD: LDA    #$00
       STA    AUDV0,X
       STA    $DC,X
LDF03: DEX
       BPL    LDEB5
       LDA    $DC
       ORA    $DD
       BNE    LDF1C
       LDA    $BC
       AND    #$F7
       STA    $BC
       LDA    #$00
       STA    $E4
       STA    $E5
       STA    $E2
       STA    $E3
LDF1C: JMP    $F156

LDF1F: .byte $00,$01,$48,$57,$56,$57,$53,$57,$56,$57,$53,$57,$56,$57,$53,$57
       .byte $56,$57,$53,$4B,$4A,$4B,$49,$4B,$4A,$4B,$49,$4B,$4A,$4B,$49,$4B
       .byte $4A,$4B,$49,$CB,$2B,$2B,$CB,$2B,$2B,$4B,$4E,$4B,$49,$4B,$4E,$4B
       .byte $4E,$4B,$49,$4B,$4E,$4B,$4E,$4B,$49,$4B,$4E,$89,$00,$01,$18,$4D
       .byte $4C,$4D,$4B,$4D,$4C,$4D,$4B,$4D,$4C,$4D,$4B,$4D,$4C,$4D,$4B,$01
       .byte $48,$5A,$58,$5A,$56,$5A,$58,$5A,$56,$5A,$58,$5A,$56,$5A,$58,$5A
       .byte $56,$CE,$2E,$2E,$CE,$2E,$2E,$4E,$53,$4E,$4B,$4E,$53,$4E,$53,$4E
       .byte $4B,$4E,$53,$4E,$53,$4E,$4B,$4E,$53,$8B,$00,$01,$48,$9D,$97,$93
       .byte $53,$53,$51,$4F,$4E,$4C,$8B,$8E,$8A,$4A,$4A,$8B,$49,$4A,$8B,$8C
       .byte $8E,$00,$01,$17,$91,$8D,$8B,$4B,$4B,$01,$C7,$59,$57,$55,$53,$91
       .byte $95,$99,$59,$59,$9D,$5F,$59,$9D,$01,$17,$8B,$8F,$00,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF

; Second bank

       ORG $2000
       RORG $F000

LF000: LDA    INTIM
       BNE    LF000
       STA    WSYNC
       STA    VBLANK
       LDA    $C2
       STA    COLUPF
       STA    COLUBK
       LDX    #$18
       STX    COLUP0
       STX    COLUP1
       NOP
       NOP
       LDX    #$00
       STX    HMP0
       LDA    #$10
       STA    HMP1
       LDA    #$06
       STA    RESP0
       STA    RESP1
       STA    $FB
       LDY    #$0A
LF029: LDA    $E6,X
       AND    #$0F
       STA.wy $00EE,Y
       DEY
       DEY
       LDA    $E6,X
       LSR
       LSR
       LSR
       LSR
       STA.wy $00EE,Y
       INX
       DEY
       DEY
       BPL    LF029
       STA    WSYNC
       LDY    #$00
       LDA    #$0A
       STA    $FA
LF048: LDA.wy $00EE,Y
       CLC
       ADC    $EA
       BNE    LF059
       CPY    #$0A
       BEQ    LF059
       LDA    $FA
       JMP    LF05D
LF059: LDX    #$00
       STX    $FA
LF05D: TAX
       LDA    $F800,X
       STA.wy $00EE,Y
       LDA    #$F8
       STA.wy $00EF,Y
       INY
       INY
       CPY    #$0C
       BNE    LF048
       STA    WSYNC
       STA    HMOVE
       LDA    #$03
       STA    NUSIZ0
       STA    NUSIZ1
       STA    VDELP0
       STA    VDELP1
       LDA    #$00
       STA    GRP0
       STA    GRP1
       LDY    #$05
LF085: DEY
       BNE    LF085
LF088: LDY    $FB
       LDA    ($EE),Y
       STA    GRP0
       STA    WSYNC
       LDA    ($F0),Y
       STA    GRP1
       LDA    ($F2),Y
       STA    GRP0
       LDA    ($F4),Y
       STA    $FA
       LDA    ($F6),Y
       TAX
       LDA    ($F8),Y
       TAY
       LDA    $FA
       STA    GRP1
       STX    GRP0
       STY    GRP1
       STY    GRP0
       DEC    $FB
       BPL    LF088
       JSR    LFC43
       LDA    $CF
       JSR    LF768
       STA    WSYNC
       LDA    #$DB
       STA    PF1
       LDA    #$B6
       STA    PF2
       STX    HMM0
       CPY    #$00
       BEQ    LF0CC
       NOP
LF0C9: DEY
       BNE    LF0C9
LF0CC: STA    RESM0
       LDA    $D1
       JSR    LF768
       STA    WSYNC
       LDA    #$01
       STA    CTRLPF
       LDA    VSYNC
       NOP
       STX    HMBL
       CPY    #$00
       BEQ    LF0E6
       NOP
LF0E3: DEY
       BNE    LF0E3
LF0E6: STA    RESBL
       STA    WSYNC
       STA    WSYNC
       LDA    $83
       AND    #$0F
       STA    $FA
       ASL
       ADC    $FA
       STA    $FA
       LDA    #$33
       SEC
       SBC    $FA
       STA    $EF
       LDA    #$F1
       SBC    #$00
       STA    WSYNC
       STA    $F0
       LDY    #$07
       NOP
       NOP
       NOP
       NOP
       LDA    #$16
       STA    COLUPF
       LDX    #$10
LF112: JMP.ind ($00EF)

LF115:
       LDA    $0300
       LDA    $0300
       LDA    $0300
       LDA    $0300
       LDA    $0300
       LDA    $0300
       LDA    $0300
       LDA    $0300
       LDA    $0300
       LDA    $0300
       LDA    $0300
       STX    COLUPF
       STA    WSYNC
       DEY
       BNE    $F108
       JSR    LFC43
       LDA    $CD
       JSR    LF768
       STA    WSYNC
       LDA    #$20
       JSR    LF784
       STA    WSYNC
       STA    HMOVE
       LDA    #$04
       STA    $F5
       STA    WSYNC
       STA    HMCLR
       LDA    #$10
       STA    CTRLPF
       TSX
       STX    $F1
       LDA    #$7F
       STA    $F2
       LDA    #$0C
       STA    COLUP0
       STA    WSYNC
       STA    CXCLR
       LDX    #$00
       LDA    $AA
       AND    #$01
       BEQ    LF179
       LDA    $C2
       CLC
       ADC    #$10
       TAX
LF179: LDA    $89
       AND    #$02
       BEQ    LF187
       LDA    $C4
       AND    #$03
       BNE    LF187
       LDX    #$0A
LF187: STX    COLUBK
       LDA    $83
       AND    #$0F
       TAX
       LDA    $F8E0,X
       STA    COLUPF
       LDA    #$0B
       STA    $EE
       LDA    #$30
       STA    $F3
       LDA    $8C
       AND    #$0F
       ASL
       ASL
       ASL
       TAY
       LDA    #$B0
       STA    TIM64T
       STA    WSYNC
       LDA    $C6
       STA    $F4
       BNE    LF1B7
       LDA    $C5
       STA    $F4
       JMP    LF3C0
LF1B7: LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    $F1C4
       INY
LF1C4: STA    WSYNC
       DEC    $F3
       DEC    $F4
       BNE    $F1CF
       JMP    $F390
LF1CF: LDA    $F3
       CMP    $CC
       BNE    $F1D6
       INY
LF1D6: NOP
       NOP
       NOP
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF1E6
       INY
LF1E6: STA    WSYNC
       LDA    $F3
       CMP    $CE
       BNE    LF1F2
       LDA    #$02
       STA    ENAM0
LF1F2: LDX    #$08
LF1F4: DEX
       BNE    LF1F4
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF1FF
       INY
LF1FF: STA    WSYNC
       STX    ENAM0
       LDX    $F5
       LDA    $D7,X
       TAX
       LDA    $F90C,X
       STA    $FA
       LDA    $F934,X
       STA    HMP1
       LDA    $F5
       ASL
       CLC
       ADC    $F5
       TAX
       LDA    $95,X
       AND    #$0F
       TAX
       LDA    $F8F1,X
       STA    $FB
       LDA    $F9AC,X
       STA    COLUP1
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF235
       INY
LF235: DEC    $F3
       DEC    $F4
       BNE    LF23E
       JMP    LF39C
LF23E: NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       LDA    $F3
       CMP    $CC
       BNE    LF24C
       INY
LF24C: LDA    $F984,Y
       STA    GRP0
       BEQ    LF254
       INY
LF254: STA    WSYNC
       LDA    $F3
       CMP    $CE
       BNE    LF260
       LDA    #$02
       STA    ENAM0
LF260: LDX    #$08
LF262: DEX
       BNE    LF262
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF26D
       INY
LF26D: STA    WSYNC
       STX    ENAM0
       NOP
       NOP
       NOP
       NOP
       LDX    $FA
LF277: DEX
       BNE    LF277
       STA    RESP1
       STA    WSYNC
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF28B
       INY
LF28B: DEC    $F3
       DEC    $F4
       BNE    LF294
       JMP    LF3A8
LF294: NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       LDA    $F3
       CMP    $CC
       BNE    LF2A2
       INY
LF2A2: LDA    $F984,Y
       STA    GRP0
       BEQ    LF2AA
       INY
LF2AA: STA    WSYNC
       LDA    $F3
       CMP    $CE
       BNE    LF2B6
       LDA    #$02
       STA    ENAM0
LF2B6: LDX    #$08
LF2B8: DEX
       BNE    LF2B8
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF2C3
       INY
LF2C3: STA    WSYNC
       STA    HMOVE
       STX    ENAM0
       LDX    $F5
       BEQ    LF2CF
       DEC    $F5
LF2CF: LDA    $D2,X
       STA    $FA
       LDX    $FB
       LDA    $FA
       CMP    $F3
       BNE    LF2DC
       INX
LF2DC: NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF2F0
       INY
LF2F0: STA    WSYNC
       LDA    $F9BC,X
       STA    GRP1
       BEQ    LF2FA
       INX
LF2FA: DEC    $F3
       DEC    $F4
       BNE    LF303
       JMP    LF3B4
LF303: NOP
       NOP
       NOP
       NOP
       NOP
       LDA    $F3
       CMP    $CC
       BNE    LF30F
       INY
LF30F: LDA    $F984,Y
       STA    GRP0
       BEQ    LF317
       INY
LF317: STA    WSYNC
       LDA    $F3
       CMP    $CE
       BNE    LF323
       LDA    #$02
       STA    ENAM0
LF323: PLA
       PHA
       PLA
       PHA
       PLA
       PHA
       PLA
       PHA
       PLA
       PHA
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF335
       INY
LF335: LDA    #$00
       STA    WSYNC
       STA    ENAM0
       LDA    $F9BC,X
       STA    GRP1
       BEQ    LF346
       INX
       JMP    LF357
LF346: LDA    $F9BD,X
       CMP    #$80
       BEQ    LF38D
       LDA    $FA
       CMP    $F3
       BNE    LF35D
       INX
       JMP    LF35F
LF357: NOP
       NOP
       NOP
       NOP
       NOP
       NOP
LF35D: NOP
       NOP
LF35F: CLC
       LDA    $F3
       ADC    #$02
       CMP    $CC
       BCS    LF37C
       LDA    $D0
       CMP    $F3
       BNE    LF375
       LDA    #$02
       STA    ENABL
       JMP    LF2F0
LF375: LDA    #$00
       STA    ENABL
       JMP    LF2F0
LF37C: NOP
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF38A
       INY
LF38A: JMP    LF2F0
LF38D: JMP    LF1B7
LF390: TXA
       LDX    $F2
       TXS
       TAX
       LDA    $C5
       STA    $F4
       JMP    LF3F0
LF39C: TXA
       LDX    $F2
       TXS
       TAX
       LDA    $C5
       STA    $F4
       JMP    LF48C
LF3A8: TXA
       LDX    $F2
       TXS
       TAX
       LDA    $C5
       STA    $F4
       JMP    LF503
LF3B4: TXA
       LDX    $F2
       TXS
       TAX
       LDA    $C5
       STA    $F4
       JMP    LF597
LF3C0: LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF3CD
       INY
LF3CD: STA    WSYNC
       DEC    $F3
       DEC    $F4
       BNE    LF3E6
       TSX
       STX    $F2
       DEC    $EE
       BNE    LF3DF
       JMP    LF636
LF3DF: LDA    $C5
       STA    $F4
       JMP    LF3F0
LF3E6: LDX    $F2
       TXS
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
LF3F0: LDA    $F3
       CMP    $CC
       BNE    LF3F7
       INY
LF3F7: NOP
       NOP
       NOP
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF407
       INY
LF407: STA    WSYNC
       PLA
       STA    PF0
       PLA
       STA    PF1
       LDA    $F3
       CMP    $CE
       BNE    LF419
       LDA    #$02
       STA    ENAM0
LF419: PLA
       STA    PF2
       PLA
       STA    PF0
       PLA
       STA    PF1
       PLA
       STA    PF2
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF42D
       INY
LF42D: LDX    #$00
       STX    PF0
       STA    WSYNC
       STX    PF1
       STX    PF2
       STX    ENAM0
       LDX    $F5
       LDA    $D7,X
       TAX
       LDA    $F90C,X
       STA    $FA
       LDA    $F934,X
       STA    HMP1
       LDA    $F5
       ASL
       CLC
       ADC    $F5
       TAX
       LDA    $95,X
       AND    #$0F
       TAX
       LDA    $F8F1,X
       STA    $FB
       LDA    $F9AC,X
       STA    COLUP1
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF46B
       INY
LF46B: DEC    $F3
       DEC    $F4
       BNE    LF482
       TSX
       STX    $F2
       DEC    $EE
       BNE    LF47B
       JMP    LF636
LF47B: LDA    $C5
       STA    $F4
       JMP    LF48C
LF482: LDX    $F2
       TXS
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
LF48C: LDA    $F3
       CMP    $CC
       BNE    LF493
       INY
LF493: LDA    $F984,Y
       STA    GRP0
       BEQ    LF49B
       INY
LF49B: STA    WSYNC
       PLA
       STA    PF0
       PLA
       STA    PF1
       LDA    $F3
       CMP    $CE
       BNE    LF4AD
       LDA    #$02
       STA    ENAM0
LF4AD: PLA
       STA    PF2
       PLA
       STA    PF0
       PLA
       STA    PF1
       PLA
       STA    PF2
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF4C1
       INY
LF4C1: LDX    #$00
       STX    PF0
       STA    WSYNC
       STX    PF1
       STX    PF2
       STX    ENAM0
       NOP
       LDX    $FA
LF4D0: DEX
       BNE    LF4D0
       STA    RESP1
       STA    WSYNC
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF4E4
       INY
LF4E4: DEC    $F3
       DEC    $F4
       BNE    LF4FB
       TSX
       STX    $F2
       DEC    $EE
       BNE    LF4F4
       JMP    LF636
LF4F4: LDA    $C5
       STA    $F4
       JMP    LF503
LF4FB: NOP
       LDX    $F2
       TXS
       NOP
       NOP
       NOP
       NOP
LF503: LDA    $F3
       CMP    $CC
       BNE    LF50A
       INY
LF50A: LDA    $F984,Y
       STA    GRP0
       BEQ    LF512
       INY
LF512: STA    WSYNC
       PLA
       STA    PF0
       PLA
       STA    PF1
       LDA    $F3
       CMP    $CE
       BNE    LF524
       LDA    #$02
       STA    ENAM0
LF524: PLA
       STA    PF2
       PLA
       STA    PF0
       PLA
       STA    PF1
       PLA
       STA    PF2
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF538
       INY
LF538: LDX    #$00
       STX    PF0
       STA    WSYNC
       STA    HMOVE
       STX    PF1
       STX    PF2
       STX    ENAM0
       LDX    $F5
       BEQ    LF54C
       DEC    $F5
LF54C: LDA    $D2,X
       STA    $FA
       LDX    $FB
       LDA    $FA
       CMP    $F3
       BNE    LF559
       INX
LF559: NOP
       NOP
       NOP
       NOP
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF56A
       INY
LF56A: STA    WSYNC
       LDA    $F9BC,X
       STA    GRP1
       BEQ    LF574
       INX
LF574: DEC    $F3
       DEC    $F4
       BNE    LF58D
       TXA
       TSX
       STX    $F2
       TAX
       DEC    $EE
       BNE    LF586
       JMP    LF636
LF586: LDA    $C5
       STA    $F4
       JMP    LF597
LF58D: TXA
       LDX    $F2
       TXS
       TAX
       NOP
       NOP
       NOP
       NOP
       NOP
LF597: LDA    $F3
       CMP    $CC
       BNE    LF59E
       INY
LF59E: LDA    $F984,Y
       STA    GRP0
       BEQ    LF5A6
       INY
LF5A6: STA    WSYNC
       PLA
       STA    PF0
       PLA
       STA    PF1
       LDA    $F3
       CMP    $CE
       BNE    LF5B8
       LDA    #$02
       STA    ENAM0
LF5B8: PLA
       STA    PF2
       PLA
       STA    PF0
       PLA
       STA    PF1
       PLA
       STA    PF2
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF5CC
       INY
LF5CC: LDA    #$00
       STA    PF0
       STA    PF1
       STA    ENAM0
       STA    PF2
       LDA    $F9BC,X
       STA    GRP1
       BEQ    LF5E1
       INX
       JMP    LF5F2
LF5E1: LDA    $F9BD,X
       CMP    #$80
       BEQ    LF627
       LDA    $FA
       CMP    $F3
       BNE    LF5F8
       INX
       JMP    LF5FA
LF5F2: NOP
       NOP
       NOP
       NOP
       NOP
       NOP
LF5F8: NOP
       NOP
LF5FA: CLC
       LDA    $F3
       ADC    #$02
       CMP    $CC
       BCS    LF617
       LDA    $D0
       CMP    $F3
       BNE    LF610
       LDA    #$02
       STA    ENABL
       JMP    LF56A
LF610: LDA    #$00
       STA    ENABL
       JMP    LF56A
LF617: LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BEQ    LF624
       INY
LF624: JMP    LF56A
LF627: NOP
       LDA    #$00
       STA    ENABL
       STA    ENABL
       NOP
       NOP
       NOP
       NOP
       NOP
       JMP    LF3C0
LF636: LDX    $F1
       TXS
LF639: LDX    #$02
LF63B: LDA    INTIM
       BMI    LF658
       LDA    $F8EB,X
       STA    WSYNC
       BNE    LF64D
       STA    GRP0
       STA    GRP1
       STA    ENABL
LF64D: STA    PF0
       STA    PF1
       STA    PF2
       DEX
       BPL    LF63B
       BMI    LF639
LF658: STA    WSYNC
       JSR    LFC43
       LDX    #$D2
       LDA    $AA
       AND    #$01
       BEQ    LF66B
       LDA    $C2
       CLC
       ADC    #$20
       TAX
LF66B: STX    COLUPF
       STX    COLUBK
       LDA    $80
       AND    #$0F
       STA    $FA
       TAX
       LDA    $F8ED,X
       STA    NUSIZ0
       STA    WSYNC
       LDY    #$03
LF67F: DEY
       BNE    LF67F
       NOP
       STA    RESP0
       STA    WSYNC
       STA    WSYNC
       LDY    #$00
LF68B: STA    WSYNC
       INY
       LDA    $FA
       BEQ    LF6A0
       LDA    $F95C,Y
       STA    COLUP0
       LDA    $F984,Y
       STA    GRP0
       BNE    LF68B
       BEQ    LF6A5
LF6A0: LDA    $F984,Y
       BNE    LF68B
LF6A5: STA    WSYNC
       JMP    LF700
LF6AA: .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF
LF700: JSR    LFC43
       LDA    #$01
       STA    CTRLPF
       LDA    #$7F
       STA    PF1
       LDA    #$FF
       STA    PF2
       LDA    $C3
       LSR
       STA    $FA
       LDA    #$4E
       SEC
       SBC    $FA
       STA    $EF
       LDX    #$32
       LDA    $E2
       AND    #$80
       BEQ    LF725
       LDX    #$16
LF725: LDA    #$F7
       STA    WSYNC
       STA    $F0
       LDY    #$05
       LDA    #$70
       STA    COLUPF
       LDA    $C3
       ROR
       BCS    LF736
LF736: JMP.ind ($00EF)
LF739: .byte $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
       .byte $EA,$EA,$EA,$EA,$EA,$A5,$00,$86,$08,$85,$02,$88,$D0,$D6,$20,$43
       .byte $FC,$85,$02,$85,$02,$A9,$00,$85,$09,$8D,$E3,$FF,$4C,$00,$F0

LF768: TAY
       AND    #$0F
       STA    $FA
       TYA
       LSR
       LSR
       LSR
       LSR
       TAY
       ADC    $FA
       CMP    #$0F
       BCC    LF77C
       SBC    #$0F
       INY
LF77C: EOR    #$07
       ASL
       ASL
       ASL
       ASL
       TAX
       RTS

LF784:
       STA    NUSIZ0
       STX    HMP0
       CPY    #$00
       BEQ    LF790
       NOP
LF78D: DEY
       BNE    LF78D
LF790: STA    RESP0
       RTS

       STA    NUSIZ1
       STX    HMP1
       CPY    #$00
       BEQ    LF79F
       NOP
LF79C: DEY
       BNE    LF79C
LF79F: STA    RESP1
       RTS

       .byte $FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF

$F800:
       .byte $1C ; |   XXX  | $F800
       .byte $23 ; |  X   XX| $F801
       .byte $2A ; |  X X X | $F802
       .byte $31 ; |  XX   X| $F803
       .byte $38 ; |  XXX   | $F804
       .byte $3F ; |  XXXXXX| $F805
       .byte $46 ; | X   XX | $F806
       .byte $4D ; | X  XX X| $F807
       .byte $54 ; | X X X  | $F808
       .byte $5B ; | X XX XX| $F809
       .byte $62 ; | XX   X | $F80A
       .byte $69 ; | XX X  X| $F80B
       .byte $70 ; | XXX    | $F80C
       .byte $77 ; | XXX XXX| $F80D
       .byte $7E ; | XXXXXX | $F80E
       .byte $85 ; |X    X X| $F80F
       .byte $8C ; |X   XX  | $F810
       .byte $93 ; |X  X  XX| $F811
       .byte $9A ; |X  XX X | $F812
       .byte $A1 ; |X X    X| $F813
       .byte $A8 ; |X X X   | $F814
       .byte $AF ; |X X XXXX| $F815
       .byte $B6 ; |X XX XX | $F816
       .byte $BD ; |X XXXX X| $F817
       .byte $C4 ; |XX   X  | $F818
       .byte $CB ; |XX  X XX| $F819
       .byte $D2 ; |XX X  X | $F81A
       .byte $D9 ; |XX XX  X| $F81B
       .byte $3C ; |  XXXX  | $F81C
       .byte $66 ; | XX  XX | $F81D
       .byte $66 ; | XX  XX | $F81E
       .byte $66 ; | XX  XX | $F81F
       .byte $66 ; | XX  XX | $F820
       .byte $66 ; | XX  XX | $F821
       .byte $3C ; |  XXXX  | $F822
       .byte $3C ; |  XXXX  | $F823
       .byte $18 ; |   XX   | $F824
       .byte $18 ; |   XX   | $F825
       .byte $18 ; |   XX   | $F826
       .byte $18 ; |   XX   | $F827
       .byte $38 ; |  XXX   | $F828
       .byte $18 ; |   XX   | $F829
       .byte $7E ; | XXXXXX | $F82A
       .byte $60 ; | XX     | $F82B
       .byte $60 ; | XX     | $F82C
       .byte $3C ; |  XXXX  | $F82D
       .byte $06 ; |     XX | $F82E
       .byte $46 ; | X   XX | $F82F
       .byte $3C ; |  XXXX  | $F830
       .byte $3C ; |  XXXX  | $F831
       .byte $46 ; | X   XX | $F832
       .byte $06 ; |     XX | $F833
       .byte $0C ; |    XX  | $F834
       .byte $06 ; |     XX | $F835
       .byte $46 ; | X   XX | $F836
       .byte $3C ; |  XXXX  | $F837
       .byte $0C ; |    XX  | $F838
       .byte $0C ; |    XX  | $F839
       .byte $7E ; | XXXXXX | $F83A
       .byte $4C ; | X  XX  | $F83B
       .byte $2C ; |  X XX  | $F83C
       .byte $1C ; |   XXX  | $F83D
       .byte $0C ; |    XX  | $F83E
       .byte $7C ; | XXXXX  | $F83F
       .byte $46 ; | X   XX | $F840
       .byte $06 ; |     XX | $F841
       .byte $7C ; | XXXXX  | $F842
       .byte $60 ; | XX     | $F843
       .byte $60 ; | XX     | $F844
       .byte $7E ; | XXXXXX | $F845
       .byte $3C ; |  XXXX  | $F846
       .byte $66 ; | XX  XX | $F847
       .byte $66 ; | XX  XX | $F848
       .byte $7C ; | XXXXX  | $F849
       .byte $60 ; | XX     | $F84A
       .byte $62 ; | XX   X | $F84B
       .byte $3C ; |  XXXX  | $F84C
       .byte $18 ; |   XX   | $F84D
       .byte $18 ; |   XX   | $F84E
       .byte $18 ; |   XX   | $F84F
       .byte $0C ; |    XX  | $F850
       .byte $06 ; |     XX | $F851
       .byte $42 ; | X    X | $F852
       .byte $7E ; | XXXXXX | $F853
       .byte $3C ; |  XXXX  | $F854
       .byte $66 ; | XX  XX | $F855
       .byte $66 ; | XX  XX | $F856
       .byte $3C ; |  XXXX  | $F857
       .byte $66 ; | XX  XX | $F858
       .byte $66 ; | XX  XX | $F859
       .byte $3C ; |  XXXX  | $F85A
       .byte $3C ; |  XXXX  | $F85B
       .byte $46 ; | X   XX | $F85C
       .byte $06 ; |     XX | $F85D
       .byte $3E ; |  XXXXX | $F85E
       .byte $66 ; | XX  XX | $F85F
       .byte $66 ; | XX  XX | $F860
       .byte $3C ; |  XXXX  | $F861
       .byte $00 ; |        | $F862
       .byte $00 ; |        | $F863
       .byte $00 ; |        | $F864
       .byte $00 ; |        | $F865
       .byte $00 ; |        | $F866
       .byte $00 ; |        | $F867
       .byte $00 ; |        | $F868
       .byte $F3 ; |XXXX  XX| $F869
       .byte $0A ; |    X X | $F86A
       .byte $0A ; |    X X | $F86B
       .byte $72 ; | XXX  X | $F86C
       .byte $82 ; |X     X | $F86D
       .byte $82 ; |X     X | $F86E
       .byte $7A ; | XXXX X | $F86F
       .byte $E7 ; |XXX  XXX| $F870
       .byte $08 ; |    X   | $F871
       .byte $08 ; |    X   | $F872
       .byte $08 ; |    X   | $F873
       .byte $08 ; |    X   | $F874
       .byte $08 ; |    X   | $F875
       .byte $07 ; |     XXX| $F876
       .byte $22 ; |  X   X | $F877
       .byte $B6 ; |X XX XX | $F878
       .byte $AA ; |X X X X | $F879
       .byte $AA ; |X X X X | $F87A
       .byte $A2 ; |X X   X | $F87B
       .byte $A2 ; |X X   X | $F87C
       .byte $22 ; |  X   X | $F87D
       .byte $8B ; |X   X XX| $F87E
       .byte $8A ; |X   X X | $F87F
       .byte $8A ; |X   X X | $F880
       .byte $8B ; |X   X XX| $F881
       .byte $AA ; |X X X X | $F882
       .byte $DA ; |XX XX X | $F883
       .byte $8B ; |X   X XX| $F884
       .byte $EF ; |XXX XXXX| $F885
       .byte $08 ; |    X   | $F886
       .byte $08 ; |    X   | $F887
       .byte $88 ; |X   X   | $F888
       .byte $08 ; |    X   | $F889
       .byte $08 ; |    X   | $F88A
       .byte $EF ; |XXX XXXX| $F88B
       .byte $3E ; |  XXXXX | $F88C
       .byte $88 ; |X   X   | $F88D
       .byte $88 ; |X   X   | $F88E
       .byte $88 ; |X   X   | $F88F
       .byte $88 ; |X   X   | $F890
       .byte $88 ; |X   X   | $F891
       .byte $3E ; |  XXXXX | $F892
       .byte $72 ; | XXX  X | $F893
       .byte $8A ; |X   X X | $F894
       .byte $8A ; |X   X X | $F895
       .byte $8A ; |X   X X | $F896
       .byte $8A ; |X   X X | $F897
       .byte $8B ; |X   X XX| $F898
       .byte $8A ; |X   X X | $F899
       .byte $20 ; |  X     | $F89A
       .byte $20 ; |  X     | $F89B
       .byte $20 ; |  X     | $F89C
       .byte $20 ; |  X     | $F89D
       .byte $A0 ; |X X     | $F89E
       .byte $60 ; | XX     | $F89F
       .byte $20 ; |  X     | $F8A0
       .byte $82 ; |X     X | $F8A1
       .byte $82 ; |X     X | $F8A2
       .byte $82 ; |X     X | $F8A3
       .byte $E3 ; |XXX   XX| $F8A4
       .byte $82 ; |X     X | $F8A5
       .byte $82 ; |X     X | $F8A6
       .byte $F9 ; |XXXXX  X| $F8A7
       .byte $2F ; |  X XXXX| $F8A8
       .byte $20 ; |  X     | $F8A9
       .byte $20 ; |  X     | $F8AA
       .byte $E7 ; |XXX  XXX| $F8AB
       .byte $28 ; |  X X   | $F8AC
       .byte $28 ; |  X X   | $F8AD
       .byte $C7 ; |XX   XXX| $F8AE
       .byte $08 ; |    X   | $F8AF
       .byte $88 ; |X   X   | $F8B0
       .byte $88 ; |X   X   | $F8B1
       .byte $08 ; |    X   | $F8B2
       .byte $08 ; |    X   | $F8B3
       .byte $08 ; |    X   | $F8B4
       .byte $BE ; |X XXXXX | $F8B5
       .byte $71 ; | XXX   X| $F8B6
       .byte $8A ; |X   X X | $F8B7
       .byte $82 ; |X     X | $F8B8
       .byte $82 ; |X     X | $F8B9
       .byte $82 ; |X     X | $F8BA
       .byte $8A ; |X   X X | $F8BB
       .byte $71 ; | XXX   X| $F8BC
       .byte $C8 ; |XX  X   | $F8BD
       .byte $29 ; |  X X  X| $F8BE
       .byte $29 ; |  X X  X| $F8BF
       .byte $2A ; |  X X X | $F8C0
       .byte $2A ; |  X X X | $F8C1
       .byte $2C ; |  X XX  | $F8C2
       .byte $C8 ; |XX  X   | $F8C3
       .byte $88 ; |X   X   | $F8C4
       .byte $88 ; |X   X   | $F8C5
       .byte $88 ; |X   X   | $F8C6
       .byte $88 ; |X   X   | $F8C7
       .byte $88 ; |X   X   | $F8C8
       .byte $88 ; |X   X   | $F8C9
       .byte $BE ; |X XXXXX | $F8CA
       .byte $FA ; |XXXXX X | $F8CB
       .byte $22 ; |  X   X | $F8CC
       .byte $22 ; |  X   X | $F8CD
       .byte $22 ; |  X   X | $F8CE
       .byte $22 ; |  X   X | $F8CF
       .byte $23 ; |  X   XX| $F8D0
       .byte $FA ; |XXXXX X | $F8D1
       .byte $27 ; |  X  XXX| $F8D2
       .byte $68 ; | XX X   | $F8D3
       .byte $68 ; | XX X   | $F8D4
       .byte $A8 ; |X X X   | $F8D5
       .byte $A8 ; |X X X   | $F8D6
       .byte $28 ; |  X X   | $F8D7
       .byte $28 ; |  X X   | $F8D8
       .byte $3E ; |  XXXXX | $F8D9
       .byte $A0 ; |X X     | $F8DA
       .byte $A0 ; |X X     | $F8DB
       .byte $B8 ; |X XXX   | $F8DC
       .byte $A0 ; |X X     | $F8DD
       .byte $A0 ; |X X     | $F8DE
       .byte $BE ; |X XXXXX | $F8DF
       .byte $24 ; |  X  X  | $F8E0
       .byte $34 ; |  XX X  | $F8E1
       .byte $44 ; | X   X  | $F8E2
       .byte $C4 ; |XX   X  | $F8E3
       .byte $B4 ; |X XX X  | $F8E4
       .byte $A4 ; |X X  X  | $F8E5
       .byte $94 ; |X  X X  | $F8E6
       .byte $84 ; |X    X  | $F8E7
       .byte $74 ; | XXX X  | $F8E8
       .byte $64 ; | XX  X  | $F8E9
       .byte $54 ; | X X X  | $F8EA
       .byte $00 ; |        | $F8EB
       .byte $00 ; |        | $F8EC
       .byte $FF ; |XXXXXXXX| $F8ED
       .byte $00 ; |        | $F8EE
       .byte $01 ; |       X| $F8EF
       .byte $03 ; |      XX| $F8F0
       .byte $00 ; |        | $F8F1
       .byte $10 ; |   X    | $F8F2
       .byte $20 ; |  X     | $F8F3
       .byte $30 ; |  XX    | $F8F4
       .byte $40 ; | X      | $F8F5
       .byte $50 ; | X X    | $F8F6
       .byte $60 ; | XX     | $F8F7
       .byte $70 ; | XXX    | $F8F8
       .byte $80 ; |X       | $F8F9
       .byte $90 ; |X  X    | $F8FA
       .byte $A0 ; |X X     | $F8FB
       .byte $B0 ; |X XX    | $F8FC
       .byte $C0 ; |XX      | $F8FD
       .byte $D0 ; |XX X    | $F8FE
       .byte $E0 ; |XXX     | $F8FF
       .byte $F0 ; |XXXX    | $F900
       .byte $19 ; |   XX  X| $F901
       .byte $19 ; |   XX  X| $F902
       .byte $19 ; |   XX  X| $F903
       .byte $14 ; |   X X  | $F904
       .byte $14 ; |   X X  | $F905
       .byte $14 ; |   X X  | $F906
       .byte $0F ; |    XXXX| $F907
       .byte $0F ; |    XXXX| $F908
       .byte $0F ; |    XXXX| $F909
       .byte $0D ; |    XX X| $F90A
       .byte $0D ; |    XX X| $F90B
       .byte $01 ; |       X| $F90C
       .byte $01 ; |       X| $F90D
       .byte $01 ; |       X| $F90E
       .byte $01 ; |       X| $F90F
       .byte $02 ; |      X | $F910
       .byte $02 ; |      X | $F911
       .byte $02 ; |      X | $F912
       .byte $02 ; |      X | $F913
       .byte $03 ; |      XX| $F914
       .byte $03 ; |      XX| $F915
       .byte $03 ; |      XX| $F916
       .byte $03 ; |      XX| $F917
       .byte $04 ; |     X  | $F918
       .byte $04 ; |     X  | $F919
       .byte $04 ; |     X  | $F91A
       .byte $05 ; |     X X| $F91B
       .byte $05 ; |     X X| $F91C
       .byte $05 ; |     X X| $F91D
       .byte $05 ; |     X X| $F91E
       .byte $06 ; |     XX | $F91F
       .byte $06 ; |     XX | $F920
       .byte $06 ; |     XX | $F921
       .byte $06 ; |     XX | $F922
       .byte $07 ; |     XXX| $F923
       .byte $07 ; |     XXX| $F924
       .byte $07 ; |     XXX| $F925
       .byte $07 ; |     XXX| $F926
       .byte $08 ; |    X   | $F927
       .byte $08 ; |    X   | $F928
       .byte $08 ; |    X   | $F929
       .byte $09 ; |    X  X| $F92A
       .byte $09 ; |    X  X| $F92B
       .byte $09 ; |    X  X| $F92C
       .byte $09 ; |    X  X| $F92D
       .byte $0A ; |    X X | $F92E
       .byte $0A ; |    X X | $F92F
       .byte $0A ; |    X X | $F930
       .byte $0A ; |    X X | $F931
       .byte $0B ; |    X XX| $F932
       .byte $0B ; |    X XX| $F933
       .byte $70 ; | XXX    | $F934
       .byte $30 ; |  XX    | $F935
       .byte $F0 ; |XXXX    | $F936
       .byte $B0 ; |X XX    | $F937
       .byte $60 ; | XX     | $F938
       .byte $20 ; |  X     | $F939
       .byte $E0 ; |XXX     | $F93A
       .byte $A0 ; |X X     | $F93B
       .byte $50 ; | X X    | $F93C
       .byte $10 ; |   X    | $F93D
       .byte $D0 ; |XX X    | $F93E
       .byte $90 ; |X  X    | $F93F
       .byte $40 ; | X      | $F940
       .byte $00 ; |        | $F941
       .byte $C0 ; |XX      | $F942
       .byte $70 ; | XXX    | $F943
       .byte $30 ; |  XX    | $F944
       .byte $F0 ; |XXXX    | $F945
       .byte $B0 ; |X XX    | $F946
       .byte $60 ; | XX     | $F947
       .byte $20 ; |  X     | $F948
       .byte $E0 ; |XXX     | $F949
       .byte $A0 ; |X X     | $F94A
       .byte $50 ; | X X    | $F94B
       .byte $10 ; |   X    | $F94C
       .byte $D0 ; |XX X    | $F94D
       .byte $90 ; |X  X    | $F94E
       .byte $40 ; | X      | $F94F
       .byte $00 ; |        | $F950
       .byte $C0 ; |XX      | $F951
       .byte $70 ; | XXX    | $F952
       .byte $30 ; |  XX    | $F953
       .byte $F0 ; |XXXX    | $F954
       .byte $B0 ; |X XX    | $F955
       .byte $60 ; | XX     | $F956
       .byte $20 ; |  X     | $F957
       .byte $E0 ; |XXX     | $F958
       .byte $A0 ; |X X     | $F959
       .byte $50 ; | X X    | $F95A
       .byte $10 ; |   X    | $F95B
       .byte $0C ; |    XX  | $F95C
       .byte $0C ; |    XX  | $F95D
       .byte $D6 ; |XX X XX | $F95E
       .byte $D6 ; |XX X XX | $F95F
       .byte $D6 ; |XX X XX | $F960
       .byte $D4 ; |XX X X  | $F961
       .byte $06 ; |     XX | $F962
       .byte $FF ; |XXXXXXXX| $F963
       .byte $0C ; |    XX  | $F964
       .byte $0C ; |    XX  | $F965
       .byte $D6 ; |XX X XX | $F966
       .byte $D6 ; |XX X XX | $F967
       .byte $D6 ; |XX X XX | $F968
       .byte $D4 ; |XX X X  | $F969
       .byte $06 ; |     XX | $F96A
       .byte $FF ; |XXXXXXXX| $F96B
       .byte $0E ; |    XXX | $F96C
       .byte $0E ; |    XXX | $F96D
       .byte $0E ; |    XXX | $F96E
       .byte $0E ; |    XXX | $F96F
       .byte $0E ; |    XXX | $F970
       .byte $0E ; |    XXX | $F971
       .byte $0E ; |    XXX | $F972
       .byte $0E ; |    XXX | $F973
       .byte $18 ; |   XX   | $F974
       .byte $18 ; |   XX   | $F975
       .byte $18 ; |   XX   | $F976
       .byte $18 ; |   XX   | $F977
       .byte $18 ; |   XX   | $F978
       .byte $18 ; |   XX   | $F979
       .byte $18 ; |   XX   | $F97A
       .byte $18 ; |   XX   | $F97B
       .byte $32 ; |  XX  X | $F97C
       .byte $32 ; |  XX  X | $F97D
       .byte $32 ; |  XX  X | $F97E
       .byte $32 ; |  XX  X | $F97F
       .byte $32 ; |  XX  X | $F980
       .byte $32 ; |  XX  X | $F981
       .byte $32 ; |  XX  X | $F982
       .byte $32 ; |  XX  X | $F983
       .byte $00 ; |        | $F984
       .byte $7E ; | XXXXXX | $F985
       .byte $88 ; |X   X   | $F986
       .byte $5C ; | X XXX  | $F987
       .byte $7E ; | XXXXXX | $F988
       .byte $0A ; |    X X | $F989
       .byte $1F ; |   XXXXX| $F98A
       .byte $00 ; |        | $F98B
       .byte $00 ; |        | $F98C
       .byte $BF ; |X XXXXXX| $F98D
       .byte $48 ; | X  X   | $F98E
       .byte $5C ; | X XXX  | $F98F
       .byte $7E ; | XXXXXX | $F990
       .byte $0A ; |    X X | $F991
       .byte $1F ; |   XXXXX| $F992
       .byte $00 ; |        | $F993
       .byte $00 ; |        | $F994
       .byte $BF ; |X XXXXXX| $F995
       .byte $48 ; | X  X   | $F996
       .byte $5C ; | X XXX  | $F997
       .byte $7E ; | XXXXXX | $F998
       .byte $0A ; |    X X | $F999
       .byte $1F ; |   XXXXX| $F99A
       .byte $00 ; |        | $F99B
       .byte $00 ; |        | $F99C
       .byte $BF ; |X XXXXXX| $F99D
       .byte $48 ; | X  X   | $F99E
       .byte $5C ; | X XXX  | $F99F
       .byte $7E ; | XXXXXX | $F9A0
       .byte $0A ; |    X X | $F9A1
       .byte $1F ; |   XXXXX| $F9A2
       .byte $00 ; |        | $F9A3
       .byte $00 ; |        | $F9A4
       .byte $BF ; |X XXXXXX| $F9A5
       .byte $48 ; | X  X   | $F9A6
       .byte $5C ; | X XXX  | $F9A7
       .byte $7E ; | XXXXXX | $F9A8
       .byte $0A ; |    X X | $F9A9
       .byte $1F ; |   XXXXX| $F9AA
       .byte $00 ; |        | $F9AB
       .byte $00 ; |        | $F9AC
       .byte $18 ; |   XX   | $F9AD
       .byte $18 ; |   XX   | $F9AE
       .byte $86 ; |X    XX | $F9AF
       .byte $08 ; |    X   | $F9B0
       .byte $34 ; |  XX X  | $F9B1
       .byte $86 ; |X    XX | $F9B2
       .byte $86 ; |X    XX | $F9B3
       .byte $28 ; |  X X   | $F9B4
       .byte $A6 ; |X X  XX | $F9B5
       .byte $08 ; |    X   | $F9B6
       .byte $1C ; |   XXX  | $F9B7
       .byte $38 ; |  XXX   | $F9B8
       .byte $08 ; |    X   | $F9B9
       .byte $08 ; |    X   | $F9BA
       .byte $08 ; |    X   | $F9BB
       .byte $00 ; |        | $F9BC
       .byte $00 ; |        | $F9BD
       .byte $80 ; |X       | $F9BE
       .byte $00 ; |        | $F9BF
       .byte $00 ; |        | $F9C0
       .byte $00 ; |        | $F9C1
       .byte $00 ; |        | $F9C2
       .byte $00 ; |        | $F9C3
       .byte $00 ; |        | $F9C4
       .byte $00 ; |        | $F9C5
       .byte $00 ; |        | $F9C6
       .byte $00 ; |        | $F9C7
       .byte $00 ; |        | $F9C8
       .byte $00 ; |        | $F9C9
       .byte $00 ; |        | $F9CA
       .byte $00 ; |        | $F9CB
       .byte $00 ; |        | $F9CC
       .byte $40 ; | X      | $F9CD
       .byte $40 ; | X      | $F9CE
       .byte $40 ; | X      | $F9CF
       .byte $40 ; | X      | $F9D0
       .byte $A0 ; |X X     | $F9D1
       .byte $A0 ; |X X     | $F9D2
       .byte $00 ; |        | $F9D3
       .byte $80 ; |X       | $F9D4
       .byte $00 ; |        | $F9D5
       .byte $00 ; |        | $F9D6
       .byte $00 ; |        | $F9D7
       .byte $00 ; |        | $F9D8
       .byte $00 ; |        | $F9D9
       .byte $00 ; |        | $F9DA
       .byte $00 ; |        | $F9DB
       .byte $00 ; |        | $F9DC
       .byte $40 ; | X      | $F9DD
       .byte $40 ; | X      | $F9DE
       .byte $40 ; | X      | $F9DF
       .byte $A0 ; |X X     | $F9E0
       .byte $A0 ; |X X     | $F9E1
       .byte $40 ; | X      | $F9E2
       .byte $00 ; |        | $F9E3
       .byte $80 ; |X       | $F9E4
       .byte $00 ; |        | $F9E5
       .byte $00 ; |        | $F9E6
       .byte $00 ; |        | $F9E7
       .byte $00 ; |        | $F9E8
       .byte $00 ; |        | $F9E9
       .byte $00 ; |        | $F9EA
       .byte $00 ; |        | $F9EB
       .byte $00 ; |        | $F9EC
       .byte $7E ; | XXXXXX | $F9ED
       .byte $FF ; |XXXXXXXX| $F9EE
       .byte $7E ; | XXXXXX | $F9EF
       .byte $3C ; |  XXXX  | $F9F0
       .byte $42 ; | X    X | $F9F1
       .byte $42 ; | X    X | $F9F2
       .byte $00 ; |        | $F9F3
       .byte $80 ; |X       | $F9F4
       .byte $00 ; |        | $F9F5
       .byte $00 ; |        | $F9F6
       .byte $00 ; |        | $F9F7
       .byte $00 ; |        | $F9F8
       .byte $00 ; |        | $F9F9
       .byte $00 ; |        | $F9FA
       .byte $00 ; |        | $F9FB
       .byte $00 ; |        | $F9FC
       .byte $40 ; | X      | $F9FD
       .byte $20 ; |  X     | $F9FE
       .byte $14 ; |   X X  | $F9FF
       .byte $1C ; |   XXX  | $FA00
       .byte $1E ; |   XXXX | $FA01
       .byte $1E ; |   XXXX | $FA02
       .byte $00 ; |        | $FA03
       .byte $80 ; |X       | $FA04
       .byte $00 ; |        | $FA05
       .byte $00 ; |        | $FA06
       .byte $00 ; |        | $FA07
       .byte $00 ; |        | $FA08
       .byte $00 ; |        | $FA09
       .byte $00 ; |        | $FA0A
       .byte $00 ; |        | $FA0B
       .byte $00 ; |        | $FA0C
       .byte $40 ; | X      | $FA0D
       .byte $00 ; |        | $FA0E
       .byte $80 ; |X       | $FA0F
       .byte $00 ; |        | $FA10
       .byte $00 ; |        | $FA11
       .byte $00 ; |        | $FA12
       .byte $00 ; |        | $FA13
       .byte $00 ; |        | $FA14
       .byte $00 ; |        | $FA15
       .byte $00 ; |        | $FA16
       .byte $00 ; |        | $FA17
       .byte $00 ; |        | $FA18
       .byte $00 ; |        | $FA19
       .byte $00 ; |        | $FA1A
       .byte $00 ; |        | $FA1B
       .byte $00 ; |        | $FA1C
       .byte $04 ; |     X  | $FA1D
       .byte $0A ; |    X X | $FA1E
       .byte $0A ; |    X X | $FA1F
       .byte $04 ; |     X  | $FA20
       .byte $04 ; |     X  | $FA21
       .byte $04 ; |     X  | $FA22
       .byte $00 ; |        | $FA23
       .byte $80 ; |X       | $FA24
       .byte $00 ; |        | $FA25
       .byte $00 ; |        | $FA26
       .byte $00 ; |        | $FA27
       .byte $00 ; |        | $FA28
       .byte $00 ; |        | $FA29
       .byte $00 ; |        | $FA2A
       .byte $00 ; |        | $FA2B
       .byte $00 ; |        | $FA2C
       .byte $04 ; |     X  | $FA2D
       .byte $0A ; |    X X | $FA2E
       .byte $0A ; |    X X | $FA2F
       .byte $04 ; |     X  | $FA30
       .byte $04 ; |     X  | $FA31
       .byte $04 ; |     X  | $FA32
       .byte $00 ; |        | $FA33
       .byte $80 ; |X       | $FA34
       .byte $00 ; |        | $FA35
       .byte $00 ; |        | $FA36
       .byte $00 ; |        | $FA37
       .byte $00 ; |        | $FA38
       .byte $00 ; |        | $FA39
       .byte $00 ; |        | $FA3A
       .byte $00 ; |        | $FA3B
       .byte $00 ; |        | $FA3C
       .byte $1C ; |   XXX  | $FA3D
       .byte $3E ; |  XXXXX | $FA3E
       .byte $7F ; | XXXXXXX| $FA3F
       .byte $7F ; | XXXXXXX| $FA40
       .byte $3E ; |  XXXXX | $FA41
       .byte $1C ; |   XXX  | $FA42
       .byte $00 ; |        | $FA43
       .byte $80 ; |X       | $FA44
       .byte $00 ; |        | $FA45
       .byte $00 ; |        | $FA46
       .byte $00 ; |        | $FA47
       .byte $00 ; |        | $FA48
       .byte $00 ; |        | $FA49
       .byte $00 ; |        | $FA4A
       .byte $00 ; |        | $FA4B
       .byte $00 ; |        | $FA4C
       .byte $D6 ; |XX X XX | $FA4D
       .byte $80 ; |X       | $FA4E
       .byte $56 ; | X X XX | $FA4F
       .byte $82 ; |X     X | $FA50
       .byte $D4 ; |XX X X  | $FA51
       .byte $02 ; |      X | $FA52
       .byte $D6 ; |XX X XX | $FA53
       .byte $00 ; |        | $FA54
       .byte $80 ; |X       | $FA55
       .byte $00 ; |        | $FA56
       .byte $00 ; |        | $FA57
       .byte $00 ; |        | $FA58
       .byte $00 ; |        | $FA59
       .byte $00 ; |        | $FA5A
       .byte $00 ; |        | $FA5B
       .byte $00 ; |        | $FA5C
       .byte $18 ; |   XX   | $FA5D
       .byte $3C ; |  XXXX  | $FA5E
       .byte $18 ; |   XX   | $FA5F
       .byte $00 ; |        | $FA60
       .byte $80 ; |X       | $FA61
       .byte $00 ; |        | $FA62
       .byte $00 ; |        | $FA63
       .byte $00 ; |        | $FA64
       .byte $00 ; |        | $FA65
       .byte $00 ; |        | $FA66
       .byte $00 ; |        | $FA67
       .byte $00 ; |        | $FA68
       .byte $00 ; |        | $FA69
       .byte $00 ; |        | $FA6A
       .byte $00 ; |        | $FA6B
       .byte $00 ; |        | $FA6C
       .byte $24 ; |  X  X  | $FA6D
       .byte $5A ; | X XX X | $FA6E
       .byte $24 ; |  X  X  | $FA6F
       .byte $00 ; |        | $FA70
       .byte $80 ; |X       | $FA71
       .byte $00 ; |        | $FA72
       .byte $00 ; |        | $FA73
       .byte $00 ; |        | $FA74
       .byte $00 ; |        | $FA75
       .byte $00 ; |        | $FA76
       .byte $00 ; |        | $FA77
       .byte $00 ; |        | $FA78
       .byte $00 ; |        | $FA79
       .byte $00 ; |        | $FA7A
       .byte $00 ; |        | $FA7B
       .byte $00 ; |        | $FA7C
       .byte $24 ; |  X  X  | $FA7D
       .byte $5A ; | X XX X | $FA7E
       .byte $24 ; |  X  X  | $FA7F
       .byte $00 ; |        | $FA80
       .byte $80 ; |X       | $FA81
       .byte $00 ; |        | $FA82
       .byte $00 ; |        | $FA83
       .byte $00 ; |        | $FA84
       .byte $00 ; |        | $FA85
       .byte $00 ; |        | $FA86
       .byte $00 ; |        | $FA87
       .byte $00 ; |        | $FA88
       .byte $00 ; |        | $FA89
       .byte $00 ; |        | $FA8A
       .byte $00 ; |        | $FA8B
       .byte $00 ; |        | $FA8C
       .byte $B7 ; |X XX XXX| $FA8D
       .byte $AD ; |X X XX X| $FA8E
       .byte $BB ; |X XXX XX| $FA8F
       .byte $00 ; |        | $FA90
       .byte $80 ; |X       | $FA91
       .byte $00 ; |        | $FA92
       .byte $00 ; |        | $FA93
       .byte $00 ; |        | $FA94
       .byte $00 ; |        | $FA95
       .byte $00 ; |        | $FA96
       .byte $00 ; |        | $FA97
       .byte $00 ; |        | $FA98
       .byte $00 ; |        | $FA99
       .byte $00 ; |        | $FA9A
       .byte $00 ; |        | $FA9B
       .byte $00 ; |        | $FA9C
       .byte $B7 ; |X XX XXX| $FA9D
       .byte $AD ; |X X XX X| $FA9E
       .byte $BB ; |X XXX XX| $FA9F
       .byte $00 ; |        | $FAA0
       .byte $80 ; |X       | $FAA1
       .byte $00 ; |        | $FAA2
       .byte $00 ; |        | $FAA3
       .byte $00 ; |        | $FAA4
       .byte $00 ; |        | $FAA5
       .byte $00 ; |        | $FAA6
       .byte $00 ; |        | $FAA7
       .byte $00 ; |        | $FAA8
       .byte $00 ; |        | $FAA9
       .byte $00 ; |        | $FAAA
       .byte $00 ; |        | $FAAB
       .byte $00 ; |        | $FAAC
       .byte $B7 ; |X XX XXX| $FAAD
       .byte $AD ; |X X XX X| $FAAE
       .byte $BB ; |X XXX XX| $FAAF
       .byte $00 ; |        | $FAB0
       .byte $80 ; |X       | $FAB1
       .byte $00 ; |        | $FAB2
       .byte $00 ; |        | $FAB3
       .byte $00 ; |        | $FAB4
       .byte $00 ; |        | $FAB5
       .byte $00 ; |        | $FAB6
       .byte $00 ; |        | $FAB7
       .byte $00 ; |        | $FAB8
       .byte $00 ; |        | $FAB9
       .byte $00 ; |        | $FABA
       .byte $00 ; |        | $FABB

       .byte $FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF

Start:
    SEI
    CLD
    LDA    #$00
    TAX
ClearRam
    STA    VSYNC,X
    INX
    BNE    ClearRam
    DEX
    TXS

    STA    $FFE0
    STA    $FFE9
    STA    $FFF2
    JSR    $D112
    LDA    $AA
    ORA    #$01
    STA    $AA
    LDA    #$00
    STA    $DC
    STA    $DD
    LDA    #$02
    STA    $C2
    STA    $B3
    JMP    $D000

LFC2D:
       STA    $FFE4
       STA    $FFED
       STA    $FFF6
       JMP    $F000

LFC39:
       STA    $FFE0
       STA    $FFE9
       STA    $FFF2
       RTS

LFC43: LDA    #$00
       STA    PF0
       STA    PF1
       STA    PF2
       STA    COLUP0
       STA    COLUP1
       STA    VDELP0
       STA    VDELP1
       STA    GRP0
       STA    GRP1
       STA    NUSIZ0
       STA    NUSIZ1
       STA    REFP0
       STA    REFP1
       STA    CTRLPF
       STA    WSYNC
       RTS

LFC64:
       LDA    $86
       AND    #$F7
       STA    $86
       LDA    $89
       AND    #$FD
       STA    $89
       LDA    #$FF
       STA    $CC
       LDA    $80
       AND    #$0F
       BEQ    LFC7D
       DEC    $80
       RTS

LFC7D: LDA    $AA
       ORA    #$01
       STA    $AA
       LDA    #$02
       STA    $C2
       RTS

LFC88:
       LDA    $80
       STA    $EF
       LDA    $83
       STA    $F0
       LDA    $AA
       STA    $F1
       LDA    $B3
       AND    #$0F
       STA    $C4
       LDX    #$41
       LDA    #$00
LFC9E: STA    $80,X
       DEX
       BPL    LFC9E
       LDX    #$04
LFCA5: STA    $D2,X
       STA    $D7,X
       DEX
       BPL    LFCA5
       STX    $D0
       STA    $C7
       LDX    $C4
       STX    $B3
       STA    $C4
       LDA    #$5A
       STA    $EB
       LDA    $EF
       AND    #$0F
       STA    $80
       LDA    $F0
       AND    #$0F
       STA    $83
       LDA    $F1
       AND    #$0F
       STA    $AA
       LDA    #$2B
       STA    $C3
       LDA    #$4A
       STA    $CD
       LDA    #$18
       STA    $CC
       LDA    $86
       ORA    #$08
       STA    $86
       JSR    $DA85
       RTS

LFCE2:
       SED
       CLC
       ADC    $E6
       STA    $E6
       TYA
       ADC    $E7
       STA    $E7
       BCC    LFCF5
       LDA    $E8
       ADC    #$00
       STA    $E8
LFCF5: CLD
       RTS

LFCF7: .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$8D
       .byte $FE,$60,$FD,$00,$00,$20,$FD,$1C,$FE,$00,$00,$00,$00,$00,$00,$00
       .byte $00,$00,$00,$77,$FD,$00,$00,$00,$00,$3F,$01,$01,$01,$01,$01,$01
       .byte $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$02,$02,$02,$02,$02,$02
       .byte $02,$03,$03,$03,$03,$03,$03,$04,$04,$04,$05,$05,$06,$06,$07,$07
       .byte $07,$08,$08,$09,$0A,$0B,$0C,$0D,$0E,$0C,$0D,$0E,$0F,$0F,$0F,$0F
       .byte $0F,$0F,$0F,$0F,$0F,$02,$00,$0A,$02,$16,$01,$01,$01,$01,$01,$01
       .byte $02,$02,$02,$03,$03,$04,$04,$05,$06,$07,$07,$07,$02,$00,$0A,$02
       .byte $A4,$01,$10,$01,$10,$01,$10,$02,$11,$02,$11,$02,$11,$03,$12,$03
       .byte $12,$03,$12,$04,$13,$04,$13,$04,$13,$05,$14,$05,$14,$05,$14,$06
       .byte $15,$06,$15,$06,$15,$07,$16,$07,$16,$07,$16,$08,$17,$08,$17,$08
       .byte $17,$09,$18,$09,$18,$09,$18,$0A,$19,$0A,$19,$0A,$19,$0A,$1A,$0A
       .byte $1A,$0A,$1B,$0A,$1B,$0A,$1C,$0A,$1C,$0A,$1D,$0A,$1D,$0A,$1E,$0A
       .byte $1E,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A
       .byte $1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A
       .byte $1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A
       .byte $1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$0A,$1F,$09
       .byte $1F,$08,$1F,$07,$1F,$06,$1F,$05,$1F,$04,$1F,$03,$1F,$02,$1F,$01
       .byte $1F,$08,$00,$1F,$03,$31,$01,$02,$03,$04,$05,$05,$05,$05,$05,$05
       .byte $05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05
       .byte $05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$04
       .byte $03,$02,$01,$0F,$00,$02,$02,$3E,$01,$01,$01,$01,$01,$01,$01,$01
       .byte $01,$01,$01,$01,$01,$01,$01,$01,$02,$02,$02,$02,$02,$02,$02,$03
       .byte $03,$03,$03,$03,$03,$04,$04,$04,$05,$05,$06,$06,$07,$07,$07,$08
       .byte $08,$09,$0A,$0B,$0C,$0D,$0E,$0C,$0D,$0E,$0F,$0F,$0F,$0F,$07,$07
       .byte $07,$07,$02,$00,$0A,$02,$11,$1F,$1F,$1F,$05,$05,$05,$05,$05,$05
       .byte $04,$03,$02,$01,$02,$08,$00,$01,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
       .byte $FF,$FF,$FF
    .word Start
    .word Start
    .word $FF00
