; Disassembly of Empire Strikes Back.bin ; Disassembled Wed Dec 14 15:01:27 2005 ; Using DiStella v3.0 ; ; Command Line: distella30 Empire Strikes Back.bin ; processor 6502 TIA_BASE_READ_ADDRESS = $30 include "vcs.h" ORG $F000 LF000: ldx #$00 LF002: sta $F5 lsr lsr lsr lsr sec adc $F5 lsr lsr lsr lsr sta $F6 clc adc $F5 eor #$FF asl asl asl asl ora $F6 clc adc #$83 sta HMCLR sta HMP0,X and #$0F tay sta WSYNC LF028: dey bpl LF028 sta RESP0,X sta WSYNC sta HMOVE rts START: sei cld ldx #$00 txa LF037: sta VSYNC,X txs inx bne LF037 stx SWACNT stx SWBCNT lda SWCHB sta $F0 jsr LF763 brk .byte $80 LF04D: lda #$9F sta TIM64T inc $E4 bne LF058 inc $E5 LF058: jsr LFE03 lda $EB ora $8D bne LF0D0 lda $8C beq LF0A5 bit CXP0FB bvc LF083 lda $B8 cmp #$02 bne LF083 jsr LFD2D inc $8C jsr LFCB6 lda #$E0 ldx $B6 bmi LF07F lda #$20 LF07F: adc $8A sta $8A LF083: lda CXM1P bpl LF0A5 lda $CA bne LF0A5 jsr LFCB6 lda $C4 adc $8A sta $8A lda $C1 adc $87 sta $87 lda #$FF sta $CA cmp $C8 bne LF0A5 jsr LFD25 LF0A5: lda CXPPMM bpl LF0D0 lda $86 cmp #$27 bcs LF0E0 lda $8C beq LF0E0 lda $A7 LF0B5: bne LF0E0 lda $EA and #$08 beq LF0E0 ldx $AE lda $98,X clc adc #$18 sta $98,X ldy #$02 lda $9D,X jsr LFC1B jsr LFCCA LF0D0: lda CXM0P bpl LF0E0 lda $BC cmp #$27 bcs LF0E0 jsr LFC0B jsr LF9FC LF0E0: bit CXM0FB bvc LF101 ldx $B8 dex beq LF0EE dex beq LF0F6 bne LF101 LF0EE: lda CXPPMM bmi LF101 brk .byte $0A inc $A7 LF0F6: ldy #$06 jsr LFCCF jsr LF9FC jsr LFD2D LF101: lda CXP0FB bpl LF11F lda $86 cmp #$26 bcc LF11F lda $8D bne LF11F dec $86 lda $87 bmi LF11F sbc #$0A sta $87 lda $EB bne LF11F brk .byte $07 LF11F: bit CXPPMM bvc LF135 ldx $C8 inx bne LF135 jsr LFD25 jsr LF9FC sta $CA ldy #$08 jsr LFCCF LF135: lda SWCHB sta $F7 eor $F0 sta $F8 beq LF14F jsr LFCFA lda $F8 ldx $EC and LFE70,X beq LF14F jsr LFD0C LF14F: lda $F7 and #$02 beq LF18A lda $F8 and #$01 beq LF1AA lda $F7 and #$01 beq LF166 jsr LF76E beq LF1AA LF166: jsr LF770 sta $EC sta $E2 sta $E0 sta $E3 sta $E1 lda #$04 sta $ED sta $EE lda $EA and #$03 tay lda LFFF8,Y sta $AF sta $B0 jsr LFBDD bne LF1AA LF18A: lda $F8 and #$02 bne LF194 dec $F4 bne LF1AA LF194: inc $EA lda $EA and #$1F sta $EA jsr LF763 ldx #$1E lda $F7 lsr bcs LF1A8 ldx #$0A LF1A8: stx $F4 LF1AA: lda $F7 sta $F0 jsr LF6E0 jsr LFD6C ldx $EB beq LF1CE cpx #$04 bne LF1CC lda $E5 cmp #$02 bcc LF1CC ldx #$00 stx $8D asl asl asl asl bne LF1CE LF1CC: lda #$F0 LF1CE: ldx $8D beq LF1D4 lda #$D0 LF1D4: ldx #$86 jsr LFD78 ldx #$86 jsr LFDDF lda $86 cmp #$43 bcc LF1EB jsr LFCA9 lda #$42 sta $86 LF1EB: cmp #$02 bcs LF1F6 lda #$02 sta $86 jsr LFCAF LF1F6: ldx #$89 jsr LFDDF lda $8A clc bpl LF201 sec LF201: ror clc adc #$64 sec sbc $89 tay beq LF259 bpl LF215 cpy #$FC bcs LF25B ldy #$FC bmi LF25B LF215: cpy #$05 bcc LF21B ldy #$04 LF21B: inc $89 inc $C3 inc $B5 dec $E6 ldx $E6 inx bne LF230 dec $E7 lda $E7 and #$07 sta $E7 LF230: lda $E6 and #$01 bne LF256 ldx #$D7 lda $E6 and #$07 bne LF240 ldx #$CB LF240: clc rol VSYNC,X ror VBLANK,X rol WSYNC,X bcc LF24F lda VSYNC,X ora #$10 sta VSYNC,X LF24F: inx inx inx cpx #$E0 bne LF240 LF256: dey bne LF21B LF259: beq LF2A2 LF25B: dec $89 dec $C3 dec $B5 inc $E6 bne LF26D inc $E7 lda $E7 and #$07 sta $E7 LF26D: lda $E6 and #$01 beq LF29F ldx #$D7 lda $E6 and #$07 cmp #$01 bne LF27F ldx #$CB LF27F: clc ror WSYNC,X rol VBLANK,X ror VSYNC,X lda VSYNC,X and #$08 beq LF298 lda WSYNC,X ora #$80 sta WSYNC,X lda VSYNC,X and #$F0 sta VSYNC,X LF298: inx inx inx cpx #$E0 bne LF27F LF29F: iny bne LF25B LF2A2: lda $89 jsr LF000 ldy $8A dey bpl LF2AD dex LF2AD: stx REFP0 LF2AF: lda INTIM bmi LF2AF sta WSYNC lda #$42 sta WSYNC sta VBLANK sta WSYNC sta WSYNC sta WSYNC sta VSYNC sta WSYNC lda #$00 sta WSYNC sta VSYNC lda #$96 sta TIM64T ldy #$00 lda ($E8),Y ldx $EB cpx #$04 bcc LF2E5 ldx $E5 bne LF2E5 ldx $E4 bmi LF2E5 txa asl LF2E5: sta COLUPF lda $EB bne LF352 ldx $8D beq LF2F9 inx stx $8D cpx #$40 bne LF2F9 jsr LF774 LF2F9: ldx $A7 beq LF307 inx stx $A7 cpx #$40 bne LF307 jsr LFC42 LF307: ldx #$04 LF309: lda $9D,X beq LF34C cpx $AE bne LF315 lda $A7 bne LF34C LF315: cpx #$04 beq LF329 lda $8F,X sec sbc $8E,X tay lda $94,X sbc $93,X bne LF329 cpy #$C5 bcc LF34C LF329: dec $A2,X bne LF34C inc $8E,X bne LF333 inc $93,X LF333: jsr LFC83 adc #$03 sta $A2,X cpx $AE bne LF34C dec $AA bpl LF34C lda #$03 sta $AA stx $F5 brk .byte $01 ldx $F5 LF34C: dex bpl LF309 jsr LF7A2 LF352: ldx #$04 LF354: lda $9D,X beq LF3B0 lda $8E,X sec sbc $E6 sta $AD sta $F5 lda $93,X sbc $E7 beq LF394 tay iny bne LF3B0 lda $AD bpl LF3B0 clc adc #$20 bmi LF3B0 eor #$1F lsr lsr tay lda LFFB0,Y sta $A9 lda LFFC0,Y sta $AB lda $AD clc adc #$A0 sta $F5 bne LF3C1 LF38C: lda #$FF sta $A9 sta $AB bne LF3C1 LF394: lda $AD bpl LF38C cmp #$A0 bcs LF3B0 and #$7F eor #$1F lsr lsr tay lda LFFB8,Y sta $A9 lda LFFC8,Y sta $AB jmp LF3C1 LF3B0: dex bpl LF354 inx stx $A9 stx $AB lda $A7 beq LF3CA jsr LFC42 bne LF3CA LF3C1: stx $AE lda $F5 ldx #$01 jsr LF002 LF3CA: lda INTIM bmi LF3CA lda #$00 sta WSYNC sta VBLANK lda #$9F sta TIM64T jsr LF7CC jsr LFA8B jsr LF9AC jsr LFA01 ldx #$01 LF3E8: lda $82,X sta AUDV0,X lsr lsr lsr lsr sta AUDC0,X lda $84,X sta AUDF0,X dex bpl LF3E8 LF3F9: lda INTIM bmi LF3F9 sta WSYNC stx $F7 ldy #$01 lda ($E8),Y sta COLUBK lda $E4 asl ldx $A7 bne LF41C ldx $AE lda $98,X lsr lsr lsr clc adc #$06 tay lda ($E8),Y LF41C: sta COLUP1 lda $E4 ldx $8C beq LF42C ldy #$04 dex beq LF42A iny LF42A: lda ($E8),Y LF42C: sta COLUP0 ldy #$03 lda ($E8),Y sta $F6 ldx $B8 cpx #$02 bcs LF43C lda $E4 LF43C: sta $F5 sta WSYNC lda #$30 sta NUSIZ0 lda #$37 sta NUSIZ1 lda #$20 sta CTRLPF lda $A8 lsr tay lda LFE5A,Y sta $FA lda $8D lsr lsr lsr lsr asl asl adc #$46 sta $FC lda #$FE sta $FB sta $FD sta CXCLR sta WSYNC LF46B: jsr LF6AD sta WSYNC lda $F7 sec sbc #$08 bne LF46B sta $F8 LF479: jsr LF6AD ldy $F8 lda $00CB,Y iny sta WSYNC sta PF0 lda $00CB,Y sta PF1 iny lda $00CB,Y sta PF2 iny sty $F8 jsr LF6AD lda $F7 sec sbc #$10 sta WSYNC bne LF479 sta PF0 sta PF1 sta PF2 lda #$14 sta CTRLPF lda $F5 sta COLUPF LF4AE: jsr LF6AD lda $F7 sec sbc #$1A tay and #$F0 beq LF4BF lda #$00 beq LF4C3 LF4BF: lda ($FA),Y and $A9 LF4C3: sta WSYNC sta GRP1 lda $F7 cmp #$26 bne LF4AE jsr LF6AD sta HMCLR lda #$C0 sta HMP1 ldx #$35 ldy $AA lda LFE5E,Y sta $FA ldy #$00 lda ($FA),Y and $AB sta WSYNC sta HMOVE stx NUSIZ1 sta GRP1 ldy #$02 lda ($E8),Y sta COLUBK LF4F3: jsr LF6AD lda $F7 sec sbc #$26 tay and #$F0 beq LF504 lda #$00 beq LF508 LF504: lda ($FA),Y and $AB LF508: sta WSYNC sta GRP1 lda $F7 sec sbc #$3E bne LF4F3 sta $F8 lda $F6 sta COLUPF LF519: jsr LF6AD ldy $F8 lda $00D7,Y iny sta WSYNC sta PF0 lda $00D7,Y sta PF1 iny lda $00D7,Y sta PF2 iny sty $F8 jsr LF6AD lda $F7 cmp #$44 bne LF519 ldy #$03 lda ($E8),Y sta WSYNC sta COLUBK ldx #$FF stx PF0 inx stx PF1 stx PF2 stx GRP0 stx ENAM1 stx REFP0 lda #$05 sta CTRLPF sta NUSIZ1 ldy #$0D lda ($E8),Y sta COLUP0 sta COLUP1 lda #$10 sta NUSIZ0 lda $E6 lsr lsr lsr lsr sta $F5 lda $E7 asl asl asl asl ora $F5 adc #$10 inx jsr LF002 ldx $F1 dex bpl LF583 ldx #$04 LF583: stx $F1 sta WSYNC lda $8E,X lsr lsr lsr lsr sta $F5 lda $93,X asl asl asl asl ora $F5 adc #$11 ldx #$02 jsr LF002 ldy #$0C lda ($E8),Y sta COLUBK ldx #$0D LF5A6: sta WSYNC lda LFECE,X sta ENAM0 and #$F8 sta GRP1 dex bpl LF5A6 ldy #$03 lda ($E8),Y sta COLUBK ldx $EC ldy $EB dey bne LF5C3 ldx #$02 LF5C3: lda LFFE3,X sta $F9 lda LFFE0,X sta $F5 jsr LF000 lda $F5 clc adc #$08 inx jsr LF002 ldy #$0E lda ($E8),Y sta COLUP0 sta COLUP1 stx NUSIZ0 stx NUSIZ1 stx CTRLPF lda #$50 sta $F5 sta $F6 sta $F7 sta $F8 sta WSYNC ldx $EB dex beq LF62D dex dex beq LF65C ldx $EC ldy #$00 LF600: lda $E0,X and #$0F asl asl asl sta $00F6,Y lda $E0,X and #$F0 lsr sta $00F5,Y inx inx iny iny cpy #$04 bcc LF600 sta WSYNC ldx #$00 LF61E: lda $F5,X bne LF66E lda #$50 sta $F5,X inx cpx #$03 bmi LF61E bpl LF66E LF62D: sta WSYNC ldy #$00 ldx $EA inx txa ldx #$58 cmp #$11 bcc LF63D ldx #$60 LF63D: stx $F5 LF63F: cmp #$0A bcc LF649 iny sec sbc #$0A bpl LF63F LF649: sta WSYNC asl asl asl sta $F8 tya asl asl asl bne LF658 lda #$50 LF658: sta $F7 bne LF66E LF65C: sta WSYNC ldx $EC LF660: ldy $ED,X LF662: dey bmi LF66C lda #$68 sta $00F5,Y bne LF662 LF66C: sta WSYNC LF66E: ldx #$07 txs sta WSYNC ldy $F9 LF675: dey bpl LF675 LF678: ldy $F5 lda LFF00,Y sta GRP0 ldy $F6 lda LFF00,Y sta GRP1 ldy $F7 lda LFF00,Y tax ldy $F8 lda LFF00,Y stx GRP0 sta GRP1 inc $F5 inc $F6 inc $F7 inc $F8 inc $F9 tsx dex txs bpl LF678 sta WSYNC stx PF1 stx PF2 jmp LF04D LF6AD: inc $F7 ldx #$1F txs lda $F7 sec sbc $86 tay and #$FC beq LF6C0 ldx #$00 beq LF6C3 LF6C0: lda ($FC),Y tax LF6C3: lda $B2 sec sbc $F7 and #$FE sta WSYNC php stx GRP0 lda $C0 sec sbc $F7 and $C8 php lda $BC eor $F7 php ldx #$FD txs rts LF6E0: ldx $EB beq LF762 dex beq LF74A dex beq LF70B dex beq LF733 lda $E4 ora #$80 tax inx bne LF74A lda $EA cmp #$10 bcc LF74A lda $EC eor #$01 sta $EC tax lda $ED,X bmi LF74A jsr LFBDD bne LF76E LF70B: lda $E4 cmp #$3C bcc LF762 dec $F4 bpl LF76E inc $F4 ldx $EC dec $ED,X bmi LF778 lda $EA cmp #$10 bcc LF76E lda $EC eor #$01 tax lda $ED,X bmi LF72E stx $EC LF72E: jsr LFBDD bne LF76E LF733: lda $E5 bne LF73D lda $E4 cmp #$1E bcc LF74A LF73D: jsr LFD6C and #$F0 cmp #$F0 bne LF76A lda INPT4,X bpl LF76A LF74A: lda $F3 bne LF756 lda $E5 cmp #$1E bcc LF762 sta $F3 LF756: lda $E4 bne LF762 ldx $E8 inx txa and #$7F sta $E8 LF762: rts LF763: jsr LFBDD lda #$01 bne LF784 LF76A: lda #$00 beq LF784 LF76E: brk .byte $0d LF770: lda #$03 bne LF784 LF774: lda #$02 bne LF78E LF778: brk .byte $0F lda #$FF ldx $EC sta $ED,X lda #$04 bne LF78E LF784: sta $EB jsr LFBCB jsr LFC8A beq LF790 LF78E: sta $EB LF790: jsr LF9F8 jsr LFA6F jsr LFCFA lda #$00 sta $E4 sta $E5 sta $F3 rts LF7A2: ldx #$04 lda $9D,X beq LF7CB lda $93,X cmp #$07 bne LF7CB lda $8E,X tax cpx #$E0 bcs LF778 lda #$3F cpx #$A0 bcc LF7C5 lda $E4 and #$07 bne LF7C3 sta COLUPF LF7C3: lda #$1F LF7C5: and $E4 bne LF7CB brk .byte $05 LF7CB: rts LF7CC: lda $E4 and #$03 tax bne LF7D6 jmp LF8CB LF7D6: lda $EB beq LF7DB rts LF7DB: dex beq LF811 dex beq LF836 ldx #$FF stx $F5 inx LF7E6: lda $9D,X bne LF7EC stx $F5 LF7EC: ldy $93,X dey beq LF835 inx cpx #$05 bcc LF7E6 ldx $F5 cpx #$FF beq LF835 ldy #$00 sty $98,X sty $8E,X iny sty $A2,X sty $93,X ldy $EC lda $00AF,Y sta $9D,X jmp LFC6A LF811: dec $AC bne LF835 ldx $AE jsr LFC83 adc #$02 sta $AC ldx #$00 lda $86 LF822: cmp LFFF0,X bcc LF82A inx bne LF822 LF82A: cpx $A8 beq LF835 bcs LF833 dec $A8 rts LF833: inc $A8 LF835: rts LF836: lda $A9 beq LF88B lda $A7 ora $C6 bne LF88B dec $C9 bne LF88B sta $C2 sta $C5 sta $CA lda #$02 sta $C6 ldy $A8 jsr LFE03 and #$03 clc adc LFE62,Y sta $C1 bpl LF862 adc #$28 jmp LF868 LF862: sta $C4 lda #$28 sbc $C4 LF868: sta $C4 lda $AD clc adc #$20 sta $C3 cmp $89 bcc LF87B lda $C4 eor #$FF sta $C4 LF87B: lda $A8 lsr clc adc #$1E ldx $F2 bpl LF887 adc #$01 LF887: sta $C0 brk .byte $06 LF88B: lda $8D bne LF8CA lda $E4 and #$FC bne LF8AC lda $E5 and #$1F cmp #$10 beq LF8A2 cmp #$15 beq LF8C6 rts LF8A2: lda #$00 sta $8C lda #$02 sta $EF brk .byte $80 LF8AC: and #$3C cmp #$10 bne LF8CA lda $8C cmp #$02 bcc LF8CA lda $EF beq LF8CA lda $86 cmp #$42 bne LF8CA dec $EF brk .byte $0C LF8C6: lda #$01 sta $8C LF8CA: rts LF8CB: ldx #$01 LF8CD: ldy $80,X beq LF946 bpl LF8D9 lda $E4 and #$07 beq LF946 LF8D9: lda $84,X and #$1F sta $F5 lda $84,X sec sbc #$20 and #$E0 sta $F6 bne LF936 ldy $80,X bmi LF94A lda LFF80,Y and #$E0 sta $F6 lda LFF90,Y and #$0F sta $F8 lda LFF90,Y lsr lsr lsr lsr clc adc $82,X and #$0F cmp $F8 beq LF93E sta $F7 lda $82,X and #$F0 ora $F7 sta $82,X lda LFFA0,Y and #$1F sta $F8 lda LFFA0,Y lsr lsr lsr lsr lsr cmp #$04 bcc LF92B ora #$F8 LF92B: clc adc $F5 and #$1F cmp $F8 beq LF93E sta $F5 LF936: lda $F5 ora $F6 sta $84,X bne LF946 LF93E: lda #$00 sta $80,X sta $82,X sta $84,X LF946: dex bpl LF8CD rts LF94A: lda $EB cmp #$04 bcs LF93E inc $80,X lda $80,X and #$1F tay cmp #$12 bne LF96D ldy $8C bne LF93E lda $80,X clc adc #$0E cmp #$E0 beq LF93E sta $80,X and #$1F tay LF96D: jsr LF99B bne LF946 plp tsx inx dec VSYNC,X lda ($00,X) tay ldx #$00 lda $80 cmp $81 bcc LF983 inx LF983: tya bmi LF997 cmp $80,X bcc LF996 sty $80,X lda LFF70,Y sta $82,X lda LFF80,Y sta $84,X LF996: rts LF997: sta $80,X ldy #$00 LF99B: lda LFEEE,Y sta $84,X lda LFEDC,Y ldy $8C bne LF9A9 and #$F7 LF9A9: sta $82,X rts LF9AC: lda $EB ora $8D bne LF9FC lda $BF beq LF9B8 dec $BF LF9B8: ldy $BC iny bne LF9DE ldx $EC lda INPT4,X bpl LF9C6 sty $BF rts LF9C6: lda $BF bne LFA00 jsr LF9F8 brk .byte $03 ldx $86 inx stx $BC lda $8A sta $BE ldx $89 inx txa bne LF9F1 LF9DE: lda #$F8 ldx $BE beq LF9E8 bmi LF9E8 lda #$08 LF9E8: clc adc $BD beq LF9FC cmp #$9A bcs LF9FC LF9F1: sta $BD ldx #$02 jmp LF002 LF9F8: lda #$14 sta $BF LF9FC: lda #$FF sta $BC LFA00: rts LFA01: ldx $C6 bne LFA06 rts LFA06: lda $C0 and #$7F sta $C0 cpx #$03 beq LFA39 lda $86 sec sbc $C0 bpl LFA19 eor #$FF LFA19: sta $F5 lda $89 clc sbc $C3 bpl LFA24 eor #$FF LFA24: clc adc $F5 sta $F5 cmp #$08 bcs LFA42 jsr LFE03 and #$07 cmp $F5 bcc LFA42 jsr LFD25 LFA39: ldx #$C0 jsr LFD3A beq LFA6F bne LFA4C LFA42: ldx #$C0 jsr LFDDF ldx #$C3 jsr LFDDF LFA4C: lda $C0 cmp #$01 bcc LFA6F cmp #$44 bcs LFA6F lda $C3 beq LFA6F cmp #$C0 bcs LFA6F cmp #$9A bcc LFA68 lda $C0 ora #$80 sta $C0 LFA68: lda $C3 ldx #$03 jmp LF002 LFA6F: ldx $AE jsr LFC83 asl sta $F5 jsr LFE03 and #$07 sec adc $F5 sta $C9 ldx #$00 stx $C6 dex stx $C0 stx $C8 rts LFA8B: lda $EB beq LFA92 jmp LFB18 LFA92: lda $B2 and #$7F sta $B2 ldy $AE ldx $B8 beq LFAB1 dex beq LFAD4 dex bne LFAA7 jmp LFB2E LFAA7: ldx #$B2 jsr LFD3A beq LFB18 jmp LFB99 LFAB1: lda $A7 bne LFB18 lda $A9 beq LFB1B lda $E4 and #$03 bne LFB1B dec $B9 bne LFB1B inc $B8 LFAC5: sty $BB lda $98,X adc #$28 sta $B9 jsr LFE03 and #$07 sta $BA LFAD4: cpy $BB beq LFADE lda $F2 bpl LFAC5 bmi LFB18 LFADE: lda $A9 bne LFAE5 jmp LFBBF LFAE5: lda $A7 bne LFB18 lda $E4 and #$03 bne LFB1C dec $B9 bne LFB1C lda $EA and #$04 beq LFB18 jsr LFE03 ldx $EC lda $AF,X asl adc #$46 cmp $F2 bcs LFB18 inc $B8 ldx $EC lda $AF,X eor #$3F adc #$1E sta $B9 brk .byte $0B jmp LFB99 LFB18: jmp LFBCB LFB1B: rts LFB1C: ldy $BA lda LFFD0,Y sta $B2 lda LFFD8,Y clc adc $AD sta $B5 jmp LFB99 LFB2E: lda $E4 and #$07 bne LFB4E dec $B9 beq LFB18 brk .byte $02 jsr LFE03 bpl LFB43 inc $B2 inc $B2 LFB43: dec $B2 asl bpl LFB4C inc $B5 inc $B5 LFB4C: dec $B5 LFB4E: jsr LFE03 ldx $EC lda $AF,X asl adc #$28 cmp $F2 bcs LFB77 lda #$E0 ldx $B2 cpx $86 bcs LFB66 lda #$D0 LFB66: ldx $B5 cpx $89 bcs LFB70 and #$70 bne LFB72 LFB70: and #$B0 LFB72: ldx #$B2 jsr LFD78 LFB77: ldx $B5 txa clc adc #$20 cmp #$B6 bcc LFB85 dex dex dex dex LFB85: cmp #$34 bcs LFB8D inx inx inx inx LFB8D: stx $B5 ldx #$B2 jsr LFDDF ldx #$B5 jsr LFDDF LFB99: ldx #$00 lda #$12 cmp $B2 bcc LFBA5 sta $B2 stx $B3 LFBA5: lda #$3B cmp $B2 bcs LFBAF sta $B2 stx $B3 LFBAF: lda $B5 beq LFBBF cmp #$E0 bcs LFBBF cmp #$C0 bcs LFBCB cmp #$9F bcc LFBC6 LFBBF: lda $B2 ora #$80 sta $B2 rts LFBC6: ldx #$04 jmp LF002 LFBCB: ldx #$00 stx $B8 dex LFBD0: stx $B2 ldx $AE lda $98,X eor #$3F adc #$28 sta $B9 rts LFBDD: ldx #$00 stx $B1 stx $A7 stx $F4 inx stx $AC inx stx $B1 ldy #$04 sty $AE LFBEF: ldx #$00 stx $8E,Y stx $98,Y inx stx $A2,Y tya tax inx stx $93,Y ldx $EC lda $AF,X sta $009D,Y jsr LFC6A dey bpl LFBEF rts LFC0B: ldy #$00 ldx $AE inc $98,X lda $98,X and #$07 bne LFC2D lda $9D,X lsr lsr LFC1B: lsr clc adc $9D,X sta $9D,X cmp #$10 bcs LFC27 inc $9D,X LFC27: lda $98,X cmp #$30 bcs LFC33 LFC2D: jsr LFCCF brk .byte $04 rts LFC33: ldy #$04 jsr LFCCF brk .byte $0a inc $A7 ldx $B8 dex beq LFBCB rts LFC42: ldx $AE beq LFC5D LFC46: lda $8D,X sta $8E,X lda $92,X sta $93,X lda $97,X sta $98,X lda $A1,X sta $A2,X lda $9C,X sta $9D,X dex bne LFC46 LFC5D: stx $9D stx $A7 lda #$08 sta $93 lda #$32 sta $8E rts LFC6A: dec $B1 bne LFC82 ldx $EC lda $AF,X lsr lsr lsr sta $F5 lda $AF,X sec sbc $F5 sta $AF,X lda #$02 sta $B1 LFC82: rts LFC83: lda $9D,X lsr lsr lsr clc rts LFC8A: lda #$3A sta $86 lda #$64 sta $89 sta $E6 lda #$07 sta $E7 jsr LFD0C ldx #$00 stx $8D inx stx $8C inx stx $EF inx inx stx $AE LFCA9: ldx #$00 stx $8A stx $8B LFCAF: ldx #$00 stx $87 stx $88 rts LFCB6: inc $8C ldx $8C dex dex beq LFCC9 dex jsr LFE03 cmp LFE6A,X bcs LFCCA brk .byte $07 LFCC9: rts LFCCA: brk .byte $09 inc $8D rts LFCCF: ldx $EC lda $E0,x lsr lsr lsr lsr sta $F5 sed clc lda $E2,X adc LFFE7,Y sta $E2,X lda $E0,X adc LFFE6,Y sta $E0,X lsr lsr lsr lsr cmp $F5 beq LFCF8 lsr bcs LFCF8 brk .byte $0e inc $F4 LFCF8: cld rts LFCFA: lda #$FE sta $E9 ldx #$28 lda SWCHB and #$08 beq LFD09 ldx #$37 LFD09: stx $E8 rts LFD0C: ldx #$14 LFD0E: lda LFE13,X sta $CB,X dex bpl LFD0E lda SWCHB ldx $EC and LFE70,X beq LFD24 lda #$1F sta $DF LFD24: rts LFD25: ldx #$C0 lda #$FC sta COLUPF,X bne LFD2F LFD2D: ldx #$B2 LFD2F: lda #$03 sta COLUP0,X lda #$00 sta COLUP1,X brk .byte $08 rts LFD3A: lda COLUP1,X beq LFD51 and #$03 tay lda VSYNC,X sec sbc LFE72,Y sta VSYNC,X lda RSYNC,X sec sbc LFE76,Y sta RSYNC,X LFD51: inc COLUP1,X lda COLUP1,X cmp #$20 beq LFD6B and #$03 tay lda VSYNC,X adc LFE72,Y sta VSYNC,X lda RSYNC,X clc adc LFE76,Y sta RSYNC,X LFD6B: rts LFD6C: lda SWCHA ldx $EC beq LFD77 asl asl asl asl LFD77: rts LFD78: tay lda VSYNC,X cmp #$42 bcs LFD98 tya asl bcc LFD90 asl bcs LFD98 dec NUSIZ0,X bmi LFD98 dec NUSIZ0,X dec NUSIZ0,X bvc LFD98 LFD90: inc NUSIZ0,X bpl LFD98 inc NUSIZ0,X inc NUSIZ0,X LFD98: tya asl asl asl bcc LFDB0 asl bcc LFDAC lda $E4 lsr bcc LFDB2 lda VBLANK,X beq LFDB2 bmi LFDB0 LFDAC: dec VBLANK,X dec VBLANK,X LFDB0: inc VBLANK,X LFDB2: lda VBLANK,X cmp #$F4 bcs LFDC8 cmp #$0C bcc LFDC8 cmp #$80 bcc LFDC4 lda #$F4 bne LFDC6 LFDC4: lda #$0C LFDC6: sta VBLANK,X LFDC8: lda NUSIZ0,X cmp #$C0 bcs LFDDE cmp #$40 bcc LFDDE cmp #$80 bcc LFDDA lda #$C0 bne LFDDC LFDDA: lda #$40 LFDDC: sta NUSIZ0,X LFDDE: rts LFDDF: lda VBLANK,X clc adc WSYNC,X cmp #$08 bcc LFE00 cmp #$F8 bcs LFE00 cmp #$80 bcs LFDF9 LFDF0: inc VSYNC,X sec sbc #$10 bpl LFDF0 bmi LFE00 LFDF9: dec VSYNC,X clc adc #$10 bmi LFDF9 LFE00: sta WSYNC,X rts LFE03: lda $F2 asl asl asl asl clc adc $F2 clc adc #$01 sta $F2 rts LFE12: .byte $DD LFE13: .byte $F0,$FF,$C7,$D0,$FE,$02,$80,$F8,$00,$00,$E0,$00,$00,$03,$01,$00 .byte $EF,$03,$C0,$FF,$07,$0C,$0E,$0C,$00,$00,$08,$00,$02,$04,$06,$08 .byte $0A,$0E,$00,$0E .byte $4E,$8E,$8C,$60 .byte $54,$3A,$02,$A6,$66,$56,$36,$2A .byte $3E,$00,$1E,$3C,$FF,$70,$00,$18,$5A,$30,$00,$24,$A5,$48,$00,$22 .byte $40,$08,$00,$00,$00,$00,$00 LFE5A: .byte $7A,$87,$94,$A1 LFE5E: .byte $AE,$AE,$AE,$BE LFE62: .byte $F4,$F7,$FA,$FD,$00,$03,$06,$09 LFE6A: .byte $C8,$96,$64,$32,$00,$00 LFE70: .byte $40,$80 LFE72: .byte $00,$00,$FE,$02 LFE76: .byte $FC,$04,$00,$00,$30,$30,$7A,$FF,$FF,$FF,$FA,$F8,$F8,$F8,$68,$48 .byte $48,$30,$30,$78,$FA,$FF,$FF,$FF,$FA,$F8,$F8,$68,$48,$48,$30,$30 .byte $78,$F8,$FA,$FF,$FF,$FF,$FA,$F8,$68,$48,$48,$30,$30,$78,$F8,$F8 .byte $FA,$FF,$FF,$FF,$FA,$68,$48,$48,$77,$77,$77,$55,$DD,$DD,$BB,$BB .byte $AA,$AA,$AA,$AA,$AA,$BA,$FF,$00,$C6,$C6,$C6,$C6,$C6,$C6,$E7,$E7 .byte $A5,$A5,$A5,$A5,$A5,$E7,$F7,$00 LFECE: .byte $00,$00,$00,$F8,$88,$00,$02,$02,$00,$00,$88,$F8,$00,$00 LFEDC: .byte $C0,$CC,$CC,$CC,$CC,$CC,$CC,$4C,$CC,$CC,$CC,$CC,$4C,$CC,$CC,$CC .byte $CC,$CC LFEEE: .byte $60,$7B,$D4,$6D,$2F,$30,$32,$DF,$6D,$2F,$30,$32,$DF,$6D,$2F,$30 .byte $2F,$D2 LFF00: .byte $1C,$22,$63,$63,$63,$22,$1C,$00,$04,$0C,$1C,$0C,$0C,$0C,$7F,$00 .byte $3E,$03,$03,$3E,$60,$60,$7F,$00,$7E,$03,$03,$3E,$03,$03,$7E,$00 .byte $02,$06,$0E,$16,$26,$7F,$06,$00,$7E,$60,$60,$3E,$03,$03,$7E,$00 .byte $3E,$60,$60,$7E,$63,$63,$3E,$00,$7F,$61,$03,$06,$0C,$18,$30,$00 .byte $3E,$63,$63,$3E,$63,$63,$3E,$00,$3E,$63,$63,$3F,$03,$03,$3E,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$1C,$1C,$1C,$08,$08,$00 .byte $22,$00,$77,$77,$77,$22,$22,$00,$00,$1E,$1E,$7F,$7F,$0E,$0E,$00 LFF70: .byte $00,$2A,$F8,$8B,$8B,$F8,$8C,$8C,$8E,$8E,$8F,$8B,$6C,$CD,$4F,$8F LFF80: .byte $00,$44,$24,$20,$2A,$2A,$20,$22,$2F,$34,$58,$20,$48,$28,$75,$A5 LFF90: .byte $00,$00,$00,$F7,$E6,$1F,$F2,$FA,$F8,$F7,$F8,$F1,$F8,$F8,$FA,$F8 LFFA0: .byte $00,$25,$28,$28,$30,$E4,$2F,$0F,$38,$3B,$3F,$0F,$0F,$00,$00,$3C LFFB0: .byte $7F,$3F,$1F,$0F,$07,$03,$01,$00 LFFB8: .byte $00,$80,$C0,$E0,$F0,$F8,$FC,$FE LFFC0: .byte $FF,$3F,$0F,$03,$00,$00,$00,$00 LFFC8: .byte $00,$00,$C0,$F0,$FC,$FF,$FF,$FF LFFD0: .byte $1E,$1E,$1E,$23,$23,$23,$23,$1C LFFD8: .byte $14,$14,$14,$14,$14,$14,$14,$0A LFFE0: .byte $28,$64,$46 LFFE3: .byte $0E,$12,$10 LFFE6: .byte $00 LFFE7: .byte $01,$00,$25,$00,$50,$01,$00,$00,$10 LFFF0: .byte $12,$17,$1C,$21,$26,$2B,$30,$63 LFFF8: .byte $40,$30,$20,$12,$32,$F0,$72,$F9