; Pac-Man (U) NES disassembly - Pass 1 ; Byte-oriented ca65 source generated from the supplied PRG image. ; Recursively reachable instructions are emitted explicitly with address/byte comments. ; Unreached bytes remain explicit .byte blocks; no ROM byte is deleted or reformatted. ; Pass 2 replaces address-derived labels, RAM aliases, and table names while ; preserving byte identity. ; ; Vectors: NMI=$C0FA RESET=$FF00 IRQ=$C16A ; PRG mapped at $C000-$FFFF (NROM, mirrored to the upper half) ; ; Pass 1 trace provenance (the audit trail behind every classification below): ; 16 further routine entries recovered from table references elsewhere in the image: ; $C560, $C89B, $C977, $D249, $D4C5, $D723, $D7E0, $D8D3, $D98B, $E222, $E285, $E293, $EB5E, $F001, $F020, $F050 ; indirect dispatch through zero page (not followed statically): ; jmp ($0010) at $C250 ; jmp ($0010) at $D90F ; jmp ($0010) at $D9B6 ; jmp ($0010) at $D3CA ; jmp ($00FE) at $EFDA ; .setcpu "6502" .include "symbols.inc" .include "locals.inc" .segment "PRG" ; ---- data $C000-$C041 (66 bytes) ---- .byte $43, $4F, $50, $59, $20, $52, $49, $47, $48, $54, $20, $31, $39, $38, $34, $20 ; CPU:$C000 PRG:0000 43 4F 50 59 20 52 49 47 48 54 20 31 39 38 34 20 .byte $31, $39, $38, $30, $20, $4E, $41, $4D, $43, $4F, $20, $4C, $54, $44, $2E, $20 ; CPU:$C010 PRG:0010 31 39 38 30 20 4E 41 4D 43 4F 20 4C 54 44 2E 20 .byte $41, $4C, $4C, $20, $52, $49, $47, $48, $54, $53, $20, $52, $45, $53, $45, $52 ; CPU:$C020 PRG:0020 41 4C 4C 20 52 49 47 48 54 53 20 52 45 53 45 52 .byte $56, $45, $44, $78, $D8, $A9, $00, $8D, $00, $20, $8D, $01, $20, $AD, $02, $20 ; CPU:$C030 PRG:0030 56 45 44 78 D8 A9 00 8D 00 20 8D 01 20 AD 02 20 .byte $10, $FB ; CPU:$C040 PRG:0040 10 FB ; ----------------------------------------------------------------------------- ; Routine: ColdStart ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ColdStart: ldx #$FF ; CPU:$C042 PRG:0042 A2 FF txs ; CPU:$C044 PRG:0044 9A lda #$00 ; CPU:$C045 PRG:0045 A9 00 tay ; CPU:$C047 PRG:0047 A8 ; ----------------------------------------------------------------------------- ; Routine: ClearLowRAM ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearLowRAM: sta a:Zp00,y ; CPU:$C048 PRG:0048 99 00 00 iny ; CPU:$C04B PRG:004B C8 cpy #$3E ; CPU:$C04C PRG:004C C0 3E bne ClearLowRAM ; CPU:$C04E PRG:004E D0 F8 ldx #$08 ; CPU:$C050 PRG:0050 A2 08 ldy #$87 ; CPU:$C052 PRG:0052 A0 87 ; ----------------------------------------------------------------------------- ; Routine: ClearHighRAMPages ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearHighRAMPages: sta (Zp00),y ; CPU:$C054 PRG:0054 91 00 iny ; CPU:$C056 PRG:0056 C8 bne ClearHighRAMPages ; CPU:$C057 PRG:0057 D0 FB inc Zp01 ; CPU:$C059 PRG:0059 E6 01 cpx Zp01 ; CPU:$C05B PRG:005B E4 01 bne ClearHighRAMPages ; CPU:$C05D PRG:005D D0 F5 lda #$06 ; CPU:$C05F PRG:005F A9 06 sta PPUMASK ; CPU:$C061 PRG:0061 8D 01 20 lda #$00 ; CPU:$C064 PRG:0064 A9 00 sta PPUSCROLL ; CPU:$C066 PRG:0066 8D 05 20 sta PPUSCROLL ; CPU:$C069 PRG:0069 8D 05 20 sta ScrollX ; CPU:$C06C PRG:006C 85 41 sta ScrollY ; CPU:$C06E PRG:006E 85 42 sta PPUCTRL ; CPU:$C070 PRG:0070 8D 00 20 sta PPUMASK ; CPU:$C073 PRG:0073 8D 01 20 tay ; CPU:$C076 PRG:0076 A8 ; ----------------------------------------------------------------------------- ; Routine: CheckCopyrightSig ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- CheckCopyrightSig: lda $C0EB,y ; CPU:$C077 PRG:0077 B9 EB C0 cmp a:$0052,y ; CPU:$C07A PRG:007A D9 52 00 bne ClearZPOnMismatch ; CPU:$C07D PRG:007D D0 07 iny ; CPU:$C07F PRG:007F C8 cpy #$0F ; CPU:$C080 PRG:0080 C0 0F bne CheckCopyrightSig ; CPU:$C082 PRG:0082 D0 F3 beq PostSignatureCheck ; CPU:$C084 PRG:0084 F0 1A ; ----------------------------------------------------------------------------- ; Routine: ClearZPOnMismatch ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearZPOnMismatch: lda #$00 ; CPU:$C086 PRG:0086 A9 00 tay ; CPU:$C088 PRG:0088 A8 ; ----------------------------------------------------------------------------- ; Routine: ColdStart_OnNonzero_C089 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ColdStart_OnNonzero_C089: sta a:Zp00,y ; CPU:$C089 PRG:0089 99 00 00 iny ; CPU:$C08C PRG:008C C8 bne ColdStart_OnNonzero_C089 ; CPU:$C08D PRG:008D D0 FA ldy #$00 ; CPU:$C08F PRG:008F A0 00 ; ----------------------------------------------------------------------------- ; Routine: CopyCopyrightToRAM ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- CopyCopyrightToRAM: lda $C0EB,y ; CPU:$C091 PRG:0091 B9 EB C0 sta a:$0052,y ; CPU:$C094 PRG:0094 99 52 00 iny ; CPU:$C097 PRG:0097 C8 cpy #$0F ; CPU:$C098 PRG:0098 C0 0F bne CopyCopyrightToRAM ; CPU:$C09A PRG:009A D0 F5 lda #$01 ; CPU:$C09C PRG:009C A9 01 sta CopyrightVerified ; CPU:$C09E PRG:009E 85 64 ; ----------------------------------------------------------------------------- ; Routine: PostSignatureCheck ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- PostSignatureCheck: ldy #$00 ; CPU:$C0A0 PRG:00A0 A0 00 sty GameState ; CPU:$C0A2 PRG:00A2 84 3F lda #$07 ; CPU:$C0A4 PRG:00A4 A9 07 sta OamDmaPage ; CPU:$C0A6 PRG:00A6 85 45 lda #$01 ; CPU:$C0A8 PRG:00A8 A9 01 cmp ActivePlayerFlag ; CPU:$C0AA PRG:00AA C5 47 bne InitAudioPPU ; CPU:$C0AC PRG:00AC D0 19 cmp CocktailModeFlag ; CPU:$C0AE PRG:00AE C5 46 bne InitAudioPPU ; CPU:$C0B0 PRG:00B0 D0 15 ; ----------------------------------------------------------------------------- ; Routine: SwapEntityBuffers ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SwapEntityBuffers: lda a:$0077,y ; CPU:$C0B2 PRG:00B2 B9 77 00 sta Zp00 ; CPU:$C0B5 PRG:00B5 85 00 lda a:$0067,y ; CPU:$C0B7 PRG:00B7 B9 67 00 sta a:$0077,y ; CPU:$C0BA PRG:00BA 99 77 00 lda Zp00 ; CPU:$C0BD PRG:00BD A5 00 sta a:$0067,y ; CPU:$C0BF PRG:00BF 99 67 00 iny ; CPU:$C0C2 PRG:00C2 C8 cpy #$10 ; CPU:$C0C3 PRG:00C3 C0 10 bne SwapEntityBuffers ; CPU:$C0C5 PRG:00C5 D0 EB ; ----------------------------------------------------------------------------- ; Routine: InitAudioPPU ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- InitAudioPPU: lda #$1F ; CPU:$C0C7 PRG:00C7 A9 1F sta APUSTATUS ; CPU:$C0C9 PRG:00C9 8D 15 40 lda #$C0 ; CPU:$C0CC PRG:00CC A9 C0 sta JOY2 ; CPU:$C0CE PRG:00CE 8D 17 40 jsr ClearZpF0_Set6 ; jsr ClearZpF0Ptr ; lda #$88 ; CPU:$C0D7 PRG:00D7 A9 88 sta PpuCtrlShadow ; CPU:$C0D9 PRG:00D9 85 43 sta PPUCTRL ; CPU:$C0DB PRG:00DB 8D 00 20 lda #$FF ; CPU:$C0DE PRG:00DE A9 FF sta GameplaySuspended ; CPU:$C0E0 PRG:00E0 85 48 sta $023F ; CPU:$C0E2 PRG:00E2 8D 3F 02 sta $024B ; CPU:$C0E5 PRG:00E5 8D 4B 02 jmp SetNMIFlag ; ; ---- data $C0EB-$C0F9 (15 bytes) ---- ; referenced by `lda $C0EB,y` at $C077 (operand $C0EB falls inside this region) ; referenced by `lda $C0EB,y` at $C091 (operand $C0EB falls inside this region) ProgrammerSig: .byte $48, $49, $52, $4F, $4B, $49, $20, $41, $4F, $59, $41, $47, $49, $AA, $55 ; CPU:$C0EB PRG:00EB 48 49 52 4F 4B 49 20 41 4F 59 41 47 49 AA 55 ; ----------------------------------------------------------------------------- ; Routine: NmiHandler ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- NmiHandler: pha ; CPU:$C0FA PRG:00FA 48 txa ; CPU:$C0FB PRG:00FB 8A pha ; CPU:$C0FC PRG:00FC 48 tya ; CPU:$C0FD PRG:00FD 98 pha ; CPU:$C0FE PRG:00FE 48 lda #$1E ; CPU:$C0FF PRG:00FF A9 1E sta PPUMASK ; CPU:$C101 PRG:0101 8D 01 20 lda #$00 ; CPU:$C104 PRG:0104 A9 00 sta OAMADDR ; CPU:$C106 PRG:0106 8D 03 20 sta NmiFlag ; CPU:$C109 PRG:0109 85 40 lda OamDmaPage ; CPU:$C10B PRG:010B A5 45 sta OAMDMA ; CPU:$C10D PRG:010D 8D 14 40 jsr UpdateSprites ; jsr UpdateGameLogic ; jsr UploadPalette1 ; lda ScrollX ; CPU:$C119 PRG:0119 A5 41 sta PPUSCROLL ; CPU:$C11B PRG:011B 8D 05 20 lda ScrollY ; CPU:$C11E PRG:011E A5 42 sta PPUSCROLL ; CPU:$C120 PRG:0120 8D 05 20 lda ActivePlayerFlag ; CPU:$C123 PRG:0123 A5 47 and CocktailModeFlag ; CPU:$C125 PRG:0125 25 46 and #$01 ; CPU:$C127 PRG:0127 29 01 asl a ; CPU:$C129 PRG:0129 0A ora PpuCtrlShadow ; CPU:$C12A PRG:012A 05 43 sta PPUCTRL ; CPU:$C12C PRG:012C 8D 00 20 lda #$01 ; CPU:$C12F PRG:012F A9 01 sta JOY1 ; CPU:$C131 PRG:0131 8D 16 40 lda #$00 ; CPU:$C134 PRG:0134 A9 00 sta JOY1 ; CPU:$C136 PRG:0136 8D 16 40 ldx #$08 ; CPU:$C139 PRG:0139 A2 08 ; ----------------------------------------------------------------------------- ; Routine: ReadControllers ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ReadControllers: lda JOY1 ; CPU:$C13B PRG:013B AD 16 40 and #$01 ; CPU:$C13E PRG:013E 29 01 cmp #$01 ; CPU:$C140 PRG:0140 C9 01 ror Player1Input ; CPU:$C142 PRG:0142 66 4D lda JOY2 ; CPU:$C144 PRG:0144 AD 17 40 and #$01 ; CPU:$C147 PRG:0147 29 01 cmp #$01 ; CPU:$C149 PRG:0149 C9 01 ror Player2Input ; CPU:$C14B PRG:014B 66 4E dex ; CPU:$C14D PRG:014D CA bne ReadControllers ; CPU:$C14E PRG:014E D0 EB ldx Player1Input ; CPU:$C150 PRG:0150 A6 4D lda CocktailModeFlag ; CPU:$C152 PRG:0152 A5 46 and ActivePlayerFlag ; CPU:$C154 PRG:0154 25 47 beq ProcessInputFrameCount ; CPU:$C156 PRG:0156 F0 02 ldx Player2Input ; CPU:$C158 PRG:0158 A6 4E ; ----------------------------------------------------------------------------- ; Routine: ProcessInputFrameCount ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ProcessInputFrameCount: stx ActiveInput ; CPU:$C15A PRG:015A 86 4F inc FrameCounter ; CPU:$C15C PRG:015C E6 4B lda GameplaySuspended ; CPU:$C15E PRG:015E A5 48 bne NMIEpilogue ; CPU:$C160 PRG:0160 D0 03 jsr UpdateAttractMode ; ; ----------------------------------------------------------------------------- ; Routine: NMIEpilogue ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- NMIEpilogue: pla ; CPU:$C165 PRG:0165 68 tay ; CPU:$C166 PRG:0166 A8 pla ; CPU:$C167 PRG:0167 68 tax ; CPU:$C168 PRG:0168 AA pla ; CPU:$C169 PRG:0169 68 ; ----------------------------------------------------------------------------- ; Routine: IrqHandler ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- IrqHandler: rti ; CPU:$C16A PRG:016A 40 ; ----------------------------------------------------------------------------- ; Routine: UploadPalette1 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadPalette1: lda $0299 ; CPU:$C16B PRG:016B AD 99 02 cmp #$0F ; CPU:$C16E PRG:016E C9 0F bne UploadPalette2 ; CPU:$C170 PRG:0170 D0 1A lda PPUSTATUS ; CPU:$C172 PRG:0172 AD 02 20 lda #$3F ; CPU:$C175 PRG:0175 A9 3F sta PPUADDR ; CPU:$C177 PRG:0177 8D 06 20 lda #$00 ; CPU:$C17A PRG:017A A9 00 sta PPUADDR ; CPU:$C17C PRG:017C 8D 06 20 ldy #$00 ; CPU:$C17F PRG:017F A0 00 ; ----------------------------------------------------------------------------- ; Routine: UploadPalette1Loop ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadPalette1Loop: lda $0299,y ; CPU:$C181 PRG:0181 B9 99 02 sta PPUDATA ; CPU:$C184 PRG:0184 8D 07 20 iny ; CPU:$C187 PRG:0187 C8 cpy #$10 ; CPU:$C188 PRG:0188 C0 10 bne UploadPalette1Loop ; CPU:$C18A PRG:018A D0 F5 ; ----------------------------------------------------------------------------- ; Routine: UploadPalette2 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadPalette2: lda $02A9 ; CPU:$C18C PRG:018C AD A9 02 cmp #$0F ; CPU:$C18F PRG:018F C9 0F bne CheckPaletteNeedsUpdate ; CPU:$C191 PRG:0191 D0 1A lda PPUSTATUS ; CPU:$C193 PRG:0193 AD 02 20 lda #$3F ; CPU:$C196 PRG:0196 A9 3F sta PPUADDR ; CPU:$C198 PRG:0198 8D 06 20 lda #$10 ; CPU:$C19B PRG:019B A9 10 sta PPUADDR ; CPU:$C19D PRG:019D 8D 06 20 ldy #$00 ; CPU:$C1A0 PRG:01A0 A0 00 ; ----------------------------------------------------------------------------- ; Routine: UploadPalette2Loop ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadPalette2Loop: lda $02A9,y ; CPU:$C1A2 PRG:01A2 B9 A9 02 sta PPUDATA ; CPU:$C1A5 PRG:01A5 8D 07 20 iny ; CPU:$C1A8 PRG:01A8 C8 cpy #$10 ; CPU:$C1A9 PRG:01A9 C0 10 bne UploadPalette2Loop ; CPU:$C1AB PRG:01AB D0 F5 ; ----------------------------------------------------------------------------- ; Routine: CheckPaletteNeedsUpdate ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- CheckPaletteNeedsUpdate: lda $0299 ; CPU:$C1AD PRG:01AD AD 99 02 cmp #$0F ; CPU:$C1B0 PRG:01B0 C9 0F beq ClearPaletteFlags ; CPU:$C1B2 PRG:01B2 F0 08 lda $02A9 ; CPU:$C1B4 PRG:01B4 AD A9 02 cmp #$0F ; CPU:$C1B7 PRG:01B7 C9 0F beq ClearPaletteFlags ; CPU:$C1B9 PRG:01B9 F0 01 rts ; CPU:$C1BB PRG:01BB 60 ; ----------------------------------------------------------------------------- ; Routine: ClearPaletteFlags ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearPaletteFlags: lda #$30 ; CPU:$C1BC PRG:01BC A9 30 sta PPUADDR ; CPU:$C1BE PRG:01BE 8D 06 20 lda #$00 ; CPU:$C1C1 PRG:01C1 A9 00 sta PPUADDR ; CPU:$C1C3 PRG:01C3 8D 06 20 sta PPUADDR ; CPU:$C1C6 PRG:01C6 8D 06 20 sta PPUADDR ; CPU:$C1C9 PRG:01C9 8D 06 20 sta $0299 ; CPU:$C1CC PRG:01CC 8D 99 02 sta $02A9 ; CPU:$C1CF PRG:01CF 8D A9 02 rts ; CPU:$C1D2 PRG:01D2 60 ; ----------------------------------------------------------------------------- ; Routine: SetNMIFlag ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetNMIFlag: lda #$01 ; CPU:$C1D3 PRG:01D3 A9 01 sta NmiFlag ; CPU:$C1D5 PRG:01D5 85 40 ; ----------------------------------------------------------------------------- ; Routine: WaitForNMIFlagClear ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- WaitForNMIFlagClear: lda NmiFlag ; CPU:$C1D7 PRG:01D7 A5 40 bne WaitForNMIFlagClear ; CPU:$C1D9 PRG:01D9 D0 FC lda #$08 ; CPU:$C1DB PRG:01DB A9 08 sta PPUCTRL ; CPU:$C1DD PRG:01DD 8D 00 20 sta PpuCtrlShadow ; CPU:$C1E0 PRG:01E0 85 43 lda PPUSTATUS ; CPU:$C1E2 PRG:01E2 AD 02 20 lda #$00 ; CPU:$C1E5 PRG:01E5 A9 00 sta PPUMASK ; CPU:$C1E7 PRG:01E7 8D 01 20 tax ; CPU:$C1EA PRG:01EA AA ; ----------------------------------------------------------------------------- ; Routine: ClearOAMInitGame ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearOAMInitGame: sta $0700,x ; CPU:$C1EB PRG:01EB 9D 00 07 inx ; CPU:$C1EE PRG:01EE E8 bne ClearOAMInitGame ; CPU:$C1EF PRG:01EF D0 FA sta CocktailModeFlag ; CPU:$C1F1 PRG:01F1 85 46 jsr WaitVBlankStart ; jsr SetupPPUAddr ; jsr SetPPUAddrPtr ; jsr SetupPPUWrite2 ; ldy #$00 ; CPU:$C1FF PRG:01FF A0 00 ; ----------------------------------------------------------------------------- ; Routine: CopyTitlePaletteInitGame ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- CopyTitlePaletteInitGame: lda $C412,y ; CPU:$C201 PRG:0201 B9 12 C4 sta $0299,y ; CPU:$C204 PRG:0204 99 99 02 iny ; CPU:$C207 PRG:0207 C8 cpy #$20 ; CPU:$C208 PRG:0208 C0 20 bne CopyTitlePaletteInitGame ; CPU:$C20A PRG:020A D0 F5 lda #$20 ; CPU:$C20C PRG:020C A9 20 sta Zp6C ; CPU:$C20E PRG:020E 85 6C sta Zp6D ; CPU:$C210 PRG:0210 85 6D sta Zp6E ; CPU:$C212 PRG:0212 85 6E sta Zp6F ; CPU:$C214 PRG:0214 85 6F lda #$FF ; CPU:$C216 PRG:0216 A9 FF sta $023F ; CPU:$C218 PRG:0218 8D 3F 02 sta GameplaySuspended ; CPU:$C21B PRG:021B 85 48 lda #$00 ; CPU:$C21D PRG:021D A9 00 sta ActivePlayerFlag ; CPU:$C21F PRG:021F 85 47 sta CocktailModeFlag ; CPU:$C221 PRG:0221 85 46 sta ScrollY ; CPU:$C223 PRG:0223 85 42 sta ScrollX ; CPU:$C225 PRG:0225 85 41 sta StateTimer ; CPU:$C227 PRG:0227 85 4C sta Zp87 ; CPU:$C229 PRG:0229 85 87 sta Zp88 ; CPU:$C22B PRG:022B 85 88 lda GameState ; CPU:$C22D PRG:022D A5 3F bne SetNMIFlag_OnNonzero_C235 ; CPU:$C22F PRG:022F D0 04 lda #$8A ; CPU:$C231 PRG:0231 A9 8A bne SetNMIFlag_OnNonzero_C237 ; CPU:$C233 PRG:0233 D0 02 ; ----------------------------------------------------------------------------- ; Routine: SetNMIFlag_OnNonzero_C235 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetNMIFlag_OnNonzero_C235: lda #$88 ; CPU:$C235 PRG:0235 A9 88 ; ----------------------------------------------------------------------------- ; Routine: SetNMIFlag_OnNonzero_C237 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetNMIFlag_OnNonzero_C237: sta PPUCTRL ; CPU:$C237 PRG:0237 8D 00 20 sta PpuCtrlShadow ; CPU:$C23A PRG:023A 85 43 ; ----------------------------------------------------------------------------- ; Routine: Sub_C23C_StoreAndContinue_C23C ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C23C_StoreAndContinue_C23C: lda #$01 ; CPU:$C23C PRG:023C A9 01 sta NmiFlag ; CPU:$C23E PRG:023E 85 40 ; ----------------------------------------------------------------------------- ; Routine: Sub_C23C_OnNonzero_C240 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C23C_OnNonzero_C240: lda NmiFlag ; CPU:$C240 PRG:0240 A5 40 bne Sub_C23C_OnNonzero_C240 ; CPU:$C242 PRG:0242 D0 FC ldy GameState ; CPU:$C244 PRG:0244 A4 3F lda $C253,y ; CPU:$C246 PRG:0246 B9 53 C2 sta DispatchPtrLo ; CPU:$C249 PRG:0249 85 10 lda $C254,y ; CPU:$C24B PRG:024B B9 54 C2 sta DispatchPtrHi ; CPU:$C24E PRG:024E 85 11 jmp (DispatchPtrLo) ; CPU:$C250 PRG:0250 6C 10 00 ; ---- data $C253-$C27C (42 bytes) ---- ; referenced by `lda $C253,y` at $C246 (operand $C253 falls inside this region) ; referenced by `lda $C254,y` at $C24B (operand $C254 falls inside this region) GameStateDispatchTable: .byte $59, $C2, $5A, $C4, $F5, $C4, $A5, $4D, $29, $0C, $F0, $07, $A9, $02, $85, $3F ; CPU:$C253 PRG:0253 59 C2 5A C4 F5 C4 A5 4D 29 0C F0 07 A9 02 85 3F .byte $4C, $D3, $C1, $E6, $42, $A9, $F0, $C5, $42, $D0, $0C, $A9, $00, $85, $42, $A9 ; CPU:$C263 PRG:0263 4C D3 C1 E6 42 A9 F0 C5 42 D0 0C A9 00 85 42 A9 .byte $88, $85, $43, $A9, $02, $85, $3F, $4C, $3C, $C2 ; CPU:$C273 PRG:0273 88 85 43 A9 02 85 3F 4C 3C C2 ; ----------------------------------------------------------------------------- ; Routine: SetPPUAddrPtr ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetPPUAddrPtr: lda #$20 ; CPU:$C27D PRG:027D A9 20 sta Zp00 ; CPU:$C27F PRG:027F 85 00 lda #$E5 ; CPU:$C281 PRG:0281 A9 E5 sta Zp01 ; CPU:$C283 PRG:0283 85 01 lda #$06 ; CPU:$C285 PRG:0285 A9 06 sta Zp02 ; CPU:$C287 PRG:0287 85 02 ldy #$00 ; CPU:$C289 PRG:0289 A0 00 ; ----------------------------------------------------------------------------- ; Routine: SetPPUAddrPtr_OnNonzero_C28B ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetPPUAddrPtr_OnNonzero_C28B: lda PPUSTATUS ; CPU:$C28B PRG:028B AD 02 20 lda Zp00 ; CPU:$C28E PRG:028E A5 00 sta PPUADDR ; CPU:$C290 PRG:0290 8D 06 20 lda Zp01 ; CPU:$C293 PRG:0293 A5 01 sta PPUADDR ; CPU:$C295 PRG:0295 8D 06 20 lda #$17 ; CPU:$C298 PRG:0298 A9 17 sta Zp03 ; CPU:$C29A PRG:029A 85 03 ; ----------------------------------------------------------------------------- ; Routine: SetPPUAddrPtr_OnNonzero_C29C ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetPPUAddrPtr_OnNonzero_C29C: lda $C2FD,y ; CPU:$C29C PRG:029C B9 FD C2 sta PPUDATA ; CPU:$C29F PRG:029F 8D 07 20 iny ; CPU:$C2A2 PRG:02A2 C8 dec Zp03 ; CPU:$C2A3 PRG:02A3 C6 03 bne SetPPUAddrPtr_OnNonzero_C29C ; CPU:$C2A5 PRG:02A5 D0 F5 lda Zp01 ; CPU:$C2A7 PRG:02A7 A5 01 clc ; CPU:$C2A9 PRG:02A9 18 adc #$20 ; CPU:$C2AA PRG:02AA 69 20 sta Zp01 ; CPU:$C2AC PRG:02AC 85 01 lda #$00 ; CPU:$C2AE PRG:02AE A9 00 adc Zp00 ; CPU:$C2B0 PRG:02B0 65 00 sta Zp00 ; CPU:$C2B2 PRG:02B2 85 00 dec Zp02 ; CPU:$C2B4 PRG:02B4 C6 02 bne SetPPUAddrPtr_OnNonzero_C28B ; CPU:$C2B6 PRG:02B6 D0 D3 lda #$09 ; CPU:$C2B8 PRG:02B8 A9 09 sta Zp00 ; CPU:$C2BA PRG:02BA 85 00 ldy #$00 ; CPU:$C2BC PRG:02BC A0 00 ; ----------------------------------------------------------------------------- ; Routine: SetPPUAddrPtr_OnNonzero_C2BE ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetPPUAddrPtr_OnNonzero_C2BE: lda PPUSTATUS ; CPU:$C2BE PRG:02BE AD 02 20 lda $C387,y ; CPU:$C2C1 PRG:02C1 B9 87 C3 sta PPUADDR ; CPU:$C2C4 PRG:02C4 8D 06 20 iny ; CPU:$C2C7 PRG:02C7 C8 lda $C387,y ; CPU:$C2C8 PRG:02C8 B9 87 C3 sta PPUADDR ; CPU:$C2CB PRG:02CB 8D 06 20 iny ; CPU:$C2CE PRG:02CE C8 ; ----------------------------------------------------------------------------- ; Routine: SetPPUAddrPtr_OnNonzero_C2CF ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetPPUAddrPtr_OnNonzero_C2CF: lda $C387,y ; CPU:$C2CF PRG:02CF B9 87 C3 cmp #$FF ; CPU:$C2D2 PRG:02D2 C9 FF beq SetPPUAddrPtr_OnZero_C2DC ; CPU:$C2D4 PRG:02D4 F0 06 sta PPUDATA ; CPU:$C2D6 PRG:02D6 8D 07 20 iny ; CPU:$C2D9 PRG:02D9 C8 bne SetPPUAddrPtr_OnNonzero_C2CF ; CPU:$C2DA PRG:02DA D0 F3 ; ----------------------------------------------------------------------------- ; Routine: SetPPUAddrPtr_OnZero_C2DC ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetPPUAddrPtr_OnZero_C2DC: iny ; CPU:$C2DC PRG:02DC C8 dec Zp00 ; CPU:$C2DD PRG:02DD C6 00 bne SetPPUAddrPtr_OnNonzero_C2BE ; CPU:$C2DF PRG:02DF D0 DD rts ; CPU:$C2E1 PRG:02E1 60 ; ----------------------------------------------------------------------------- ; Routine: SetupPPUAddr ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUAddr: lda PPUSTATUS ; CPU:$C2E2 PRG:02E2 AD 02 20 lda #$23 ; CPU:$C2E5 PRG:02E5 A9 23 sta PPUADDR ; CPU:$C2E7 PRG:02E7 8D 06 20 lda #$C8 ; CPU:$C2EA PRG:02EA A9 C8 sta PPUADDR ; CPU:$C2EC PRG:02EC 8D 06 20 ldy #$00 ; CPU:$C2EF PRG:02EF A0 00 ; ----------------------------------------------------------------------------- ; Routine: SetupPPUAddr_OnNonzero_C2F1 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUAddr_OnNonzero_C2F1: lda $C432,y ; CPU:$C2F1 PRG:02F1 B9 32 C4 sta PPUDATA ; CPU:$C2F4 PRG:02F4 8D 07 20 iny ; CPU:$C2F7 PRG:02F7 C8 cpy #$28 ; CPU:$C2F8 PRG:02F8 C0 28 bne SetupPPUAddr_OnNonzero_C2F1 ; CPU:$C2FA PRG:02FA D0 F5 rts ; CPU:$C2FC PRG:02FC 60 TitleScreenData: ; ---- data $C2FD-$C55F (611 bytes) ---- ; referenced by `lda $C412,y` at $C201 (operand $C412 falls inside this region) ; referenced by `lda $C2FD,y` at $C29C (operand $C2FD falls inside this region) ; referenced by `lda $C387,y` at $C2C1 (operand $C387 falls inside this region) ; referenced by `lda $C387,y` at $C2C8 (operand $C387 falls inside this region) ; referenced by `lda $C387,y` at $C2CF (operand $C387 falls inside this region) ; referenced by `lda $C432,y` at $C2F1 (operand $C432 falls inside this region) .byte $E4, $E8, $E8, $E8, $E8, $E8, $E8, $E8, $E8, $E8, $E8, $E8, $E8, $E8, $E8, $E8 ; CPU:$C2FD PRG:02FD E4 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 .byte $E8, $E8, $E8, $E8, $E8, $E8, $E5, $EB, $88, $80, $81, $82, $83, $84, $85, $86 ; CPU:$C30D PRG:030D E8 E8 E8 E8 E8 E8 E5 EB 88 80 81 82 83 84 85 86 .byte $87, $88, $88, $89, $8A, $8B, $8C, $8D, $8E, $8F, $90, $91, $A3, $E9, $EB, $88 ; CPU:$C31D PRG:031D 87 88 88 89 8A 8B 8C 8D 8E 8F 90 91 A3 E9 EB 88 .byte $92, $93, $94, $95, $96, $97, $98, $99, $9A, $9B, $9C, $9D, $9E, $9F, $A0, $A1 ; CPU:$C32D PRG:032D 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 .byte $A2, $A3, $A4, $A3, $E9, $EB, $88, $92, $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC ; CPU:$C33D PRG:033D A2 A3 A4 A3 E9 EB 88 92 A5 A6 A7 A8 A9 AA AB AC .byte $AD, $AE, $A3, $AF, $D0, $D1, $D2, $A3, $D3, $A4, $A3, $E9, $EB, $88, $D4, $D5 ; CPU:$C34D PRG:034D AD AE A3 AF D0 D1 D2 A3 D3 A4 A3 E9 EB 88 D4 D5 .byte $D6, $D7, $D8, $D9, $DA, $DB, $88, $88, $DC, $D7, $DD, $DE, $DF, $E0, $E1, $E2 ; CPU:$C35D PRG:035D D6 D7 D8 D9 DA DB 88 88 DC D7 DD DE DF E0 E1 E2 .byte $E3, $A3, $E9, $E7, $EA, $EA, $EA, $EA, $EA, $EA, $EA, $EA, $EA, $EA, $EA, $EA ; CPU:$C36D PRG:036D E3 A3 E9 E7 EA EA EA EA EA EA EA EA EA EA EA EA .byte $EA, $EA, $EA, $EA, $EA, $EA, $EA, $EA, $EA, $E6, $20, $65, $B0, $B3, $B2, $20 ; CPU:$C37D PRG:037D EA EA EA EA EA EA EA EA EA E6 20 65 B0 B3 B2 20 .byte $20, $20, $20, $B4, $B5, $B6, $B7, $B8, $B9, $BA, $BB, $20, $20, $20, $B1, $B3 ; CPU:$C38D PRG:038D 20 20 20 B4 B5 B6 B7 B8 B9 BA BB 20 20 20 B1 B3 .byte $B2, $FF, $22, $0A, $5C, $20, $31, $20, $50, $4C, $41, $59, $45, $52, $FF, $22 ; CPU:$C39D PRG:039D B2 FF 22 0A 5C 20 31 20 50 4C 41 59 45 52 FF 22 .byte $4C, $32, $20, $50, $4C, $41, $59, $45, $52, $53, $FF, $22, $A2, $54, $4D, $20 ; CPU:$C3AD PRG:03AD 4C 32 20 50 4C 41 59 45 52 53 FF 22 A2 54 4D 20 .byte $41, $4E, $44, $20, $5D, $20, $31, $39, $38, $30, $20, $31, $39, $38, $34, $20 ; CPU:$C3BD PRG:03BD 41 4E 44 20 5D 20 31 39 38 30 20 31 39 38 34 20 .byte $4E, $41, $4D, $43, $4F, $20, $4C, $54, $44, $5B, $FF, $22, $ED, $54, $45, $4E ; CPU:$C3CD PRG:03CD 4E 41 4D 43 4F 20 4C 54 44 5B FF 22 ED 54 45 4E .byte $47, $45, $4E, $FF, $23, $26, $4C, $49, $43, $45, $4E, $53, $45, $44, $20, $42 ; CPU:$C3DD PRG:03DD 47 45 4E FF 23 26 4C 49 43 45 4E 53 45 44 20 42 .byte $59, $20, $4E, $49, $4E, $54, $45, $4E, $44, $4F, $FF, $23, $69, $4F, $46, $20 ; CPU:$C3ED PRG:03ED 59 20 4E 49 4E 54 45 4E 44 4F FF 23 69 4F 46 20 .byte $41, $4D, $45, $52, $49, $43, $41, $20, $49, $4E, $43, $5B, $FF, $22, $C2, $20 ; CPU:$C3FD PRG:03FD 41 4D 45 52 49 43 41 20 49 4E 43 5B FF 22 C2 20 .byte $FF, $22, $D4, $20, $FF, $0F, $20, $0F, $06, $0F, $26, $20, $27, $0F, $06, $0F ; CPU:$C40D PRG:040D FF 22 D4 20 FF 0F 20 0F 06 0F 26 20 27 0F 06 0F .byte $26, $0F, $06, $20, $26, $0F, $27, $20, $06, $0F, $11, $20, $33, $0F, $20, $20 ; CPU:$C41D PRG:041D 26 0F 06 20 26 0F 27 20 06 0F 11 20 33 0F 20 20 .byte $21, $0F, $09, $20, $17, $80, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $66, $55 ; CPU:$C42D PRG:042D 21 0F 09 20 17 80 A0 A0 A0 A0 A0 A0 00 00 66 55 .byte $55, $55, $55, $DD, $00, $08, $0A, $0A, $0A, $0A, $0A, $0A, $00, $00, $00, $00 ; CPU:$C43D PRG:043D 55 55 55 DD 00 08 0A 0A 0A 0A 0A 0A 00 00 00 00 .byte $00, $00, $00, $00, $00, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $A5, $87, $05 ; CPU:$C44D PRG:044D 00 00 00 00 00 F0 F0 F0 F0 F0 F0 F0 F0 A5 87 05 .byte $88, $D0, $19, $A0, $00, $B9, $EA, $C4, $99, $4B, $02, $C8, $C9, $FF, $D0, $F5 ; CPU:$C45D PRG:045D 88 D0 19 A0 00 B9 EA C4 99 4B 02 C8 C9 FF D0 F5 .byte $A5, $4D, $29, $04, $85, $50, $A5, $4D, $29, $08, $85, $51, $18, $A9, $01, $65 ; CPU:$C46D PRG:046D A5 4D 29 04 85 50 A5 4D 29 08 85 51 18 A9 01 65 .byte $87, $85, $87, $A5, $88, $69, $00, $85, $88, $C9, $02, $D0, $0B, $A9, $00, $85 ; CPU:$C47D PRG:047D 87 85 87 A5 88 69 00 85 88 C9 02 D0 0B A9 00 85 .byte $87, $A9, $04, $85, $3F, $4C, $3C, $C2, $A5, $4D, $29, $04, $C5, $50, $F0, $2F ; CPU:$C48D PRG:048D 87 A9 04 85 3F 4C 3C C2 A5 4D 29 04 C5 50 F0 2F .byte $85, $50, $A9, $00, $85, $88, $A9, $01, $85, $87, $A5, $50, $F0, $21, $A2, $00 ; CPU:$C49D PRG:049D 85 50 A9 00 85 88 A9 01 85 87 A5 50 F0 21 A2 00 .byte $E6, $47, $A5, $47, $29, $01, $85, $47, $F0, $01, $E8, $BD, $F2, $C4, $8D, $4D ; CPU:$C4AD PRG:04AD E6 47 A5 47 29 01 85 47 F0 01 E8 BD F2 C4 8D 4D .byte $02, $BD, $F3, $C4, $8D, $51, $02, $A9, $22, $8D, $4B, $02, $4C, $3C, $C2, $A5 ; CPU:$C4BD PRG:04BD 02 BD F3 C4 8D 51 02 A9 22 8D 4B 02 4C 3C C2 A5 .byte $4D, $29, $08, $C5, $51, $D0, $03, $4C, $3C, $C2, $85, $51, $A5, $51, $D0, $03 ; CPU:$C4CD PRG:04CD 4D 29 08 C5 51 D0 03 4C 3C C2 85 51 A5 51 D0 03 .byte $4C, $3C, $C2, $A9, $00, $85, $48, $20, $73, $EE, $4C, $13, $CA, $22, $0A, $5C ; CPU:$C4DD PRG:04DD 4C 3C C2 A9 00 85 48 20 73 EE 4C 13 CA 22 0A 5C .byte $00, $22, $4A, $20, $FF, $5C, $20, $5C, $A5, $4D, $29, $0C, $F0, $07, $A9, $02 ; CPU:$C4ED PRG:04ED 00 22 4A 20 FF 5C 20 5C A5 4D 29 0C F0 07 A9 02 .byte $85, $3F, $4C, $D3, $C1, $A4, $87, $B9, $11, $C5, $85, $10, $B9, $12, $C5, $85 ; CPU:$C4FD PRG:04FD 85 3F 4C D3 C1 A4 87 B9 11 C5 85 10 B9 12 C5 85 .byte $11, $6C, $10, $00, $29, $C5, $56, $C5, $56, $C5, $56, $C5, $56, $C5, $56, $C5 ; CPU:$C50D PRG:050D 11 6C 10 00 29 C5 56 C5 56 C5 56 C5 56 C5 56 C5 .byte $56, $C5, $56, $C5, $56, $C5, $56, $C5, $6C, $C5, $51, $C7, $A9, $01, $85, $40 ; CPU:$C51D PRG:051D 56 C5 56 C5 56 C5 56 C5 6C C5 51 C7 A9 01 85 40 .byte $A5, $40, $D0, $FC, $A9, $08, $8D, $00, $20, $85, $43, $A9, $00, $8D, $01, $20 ; CPU:$C52D PRG:052D A5 40 D0 FC A9 08 8D 00 20 85 43 A9 00 8D 01 20 .byte $85, $88, $20, $BB, $C5, $20, $EB, $C5, $20, $89, $C5, $E6, $87, $E6, $87, $A9 ; CPU:$C53D PRG:053D 85 88 20 BB C5 20 EB C5 20 89 C5 E6 87 E6 87 A9 .byte $88, $8D, $00, $20, $85, $43, $4C, $3C, $C2, $E6, $88, $A5, $88, $C9, $30, $D0 ; CPU:$C54D PRG:054D 88 8D 00 20 85 43 4C 3C C2 E6 88 A5 88 C9 30 D0 .byte $0B, $A9, $00 ; CPU:$C55D PRG:055D 0B A9 00 ; ----------------------------------------------------------------------------- ; Routine: SetupPPUAddr_Entry_C560 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUAddr_Entry_C560: sta Zp88 ; CPU:$C560 PRG:0560 85 88 jsr Sub_C589_Entry_C589 ; inc Zp87 ; CPU:$C565 PRG:0565 E6 87 inc Zp87 ; CPU:$C567 PRG:0567 E6 87 jmp Sub_C23C_StoreAndContinue_C23C ; ; ---- data $C56C-$C588 (29 bytes) ---- .byte $E6, $88, $A5, $88, $C9, $80, $F0, $03, $4C, $3C, $C2, $E6, $87, $E6, $87, $A9 ; CPU:$C56C PRG:056C E6 88 A5 88 C9 80 F0 03 4C 3C C2 E6 87 E6 87 A9 .byte $00, $85, $88, $4C, $3C, $C2, $A9, $01, $85, $47, $4C, $13, $CA ; CPU:$C57C PRG:057C 00 85 88 4C 3C C2 A9 01 85 47 4C 13 CA ; ----------------------------------------------------------------------------- ; Routine: Sub_C589_Entry_C589 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C589_Entry_C589: ldy Zp87 ; CPU:$C589 PRG:0589 A4 87 lda $C66A,y ; CPU:$C58B PRG:058B B9 6A C6 sta Zp00 ; CPU:$C58E PRG:058E 85 00 lda $C66B,y ; CPU:$C590 PRG:0590 B9 6B C6 sta Zp01 ; CPU:$C593 PRG:0593 85 01 ldy #$00 ; CPU:$C595 PRG:0595 A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_C589_OnNonzero_C597 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C589_OnNonzero_C597: lda (Zp00),y ; CPU:$C597 PRG:0597 B1 00 sta $024B,y ; CPU:$C599 PRG:0599 99 4B 02 iny ; CPU:$C59C PRG:059C C8 cmp #$FF ; CPU:$C59D PRG:059D C9 FF bne Sub_C589_OnNonzero_C597 ; CPU:$C59F PRG:059F D0 F6 lda (Zp00),y ; CPU:$C5A1 PRG:05A1 B1 00 beq Sub_C589_OnZero_C5A6 ; CPU:$C5A3 PRG:05A3 F0 01 rts ; CPU:$C5A5 PRG:05A5 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C589_OnZero_C5A6 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C589_OnZero_C5A6: lda Zp87 ; CPU:$C5A6 PRG:05A6 A5 87 sec ; CPU:$C5A8 PRG:05A8 38 sbc #$02 ; CPU:$C5A9 PRG:05A9 E9 02 asl a ; CPU:$C5AB PRG:05AB 0A asl a ; CPU:$C5AC PRG:05AC 0A tay ; CPU:$C5AD PRG:05AD A8 ldx #$10 ; CPU:$C5AE PRG:05AE A2 10 ; ----------------------------------------------------------------------------- ; Routine: Sub_C589_OnNonzero_C5B0 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C589_OnNonzero_C5B0: lda $C6E9,y ; CPU:$C5B0 PRG:05B0 B9 E9 C6 sta $0760,y ; CPU:$C5B3 PRG:05B3 99 60 07 iny ; CPU:$C5B6 PRG:05B6 C8 dex ; CPU:$C5B7 PRG:05B7 CA bne Sub_C589_OnNonzero_C5B0 ; CPU:$C5B8 PRG:05B8 D0 F6 rts ; CPU:$C5BA PRG:05BA 60 ; ---- data $C5BB-$C89A (736 bytes) ---- ; referenced by `lda $C66A,y` at $C58B (operand $C66A falls inside this region) ; referenced by `lda $C66B,y` at $C590 (operand $C66B falls inside this region) ; referenced by `lda $C6E9,y` at $C5B0 (operand $C6E9 falls inside this region) .byte $A9, $20, $8D, $06, $20, $A9, $C0, $8D, $06, $20, $A9, $17, $85, $00, $A9, $1C ; CPU:$C5BB PRG:05BB A9 20 8D 06 20 A9 C0 8D 06 20 A9 17 85 00 A9 1C .byte $85, $01, $A9, $2D, $8D, $07, $20, $8D, $07, $20, $A9, $20, $8D, $07, $20, $C6 ; CPU:$C5CB PRG:05CB 85 01 A9 2D 8D 07 20 8D 07 20 A9 20 8D 07 20 C6 .byte $01, $D0, $F9, $A9, $2D, $8D, $07, $20, $8D, $07, $20, $C6, $00, $10, $DF, $60 ; CPU:$C5DB PRG:05DB 01 D0 F9 A9 2D 8D 07 20 8D 07 20 C6 00 10 DF 60 .byte $A9, $23, $8D, $06, $20, $A9, $C8, $8D, $06, $20, $A0, $00, $B9, $29, $C7, $8D ; CPU:$C5EB PRG:05EB A9 23 8D 06 20 A9 C8 8D 06 20 A0 00 B9 29 C7 8D .byte $07, $20, $C8, $C0, $28, $D0, $F5, $A0, $00, $B9, $7E, $C6, $8D, $06, $20, $C8 ; CPU:$C5FB PRG:05FB 07 20 C8 C0 28 D0 F5 A0 00 B9 7E C6 8D 06 20 C8 .byte $B9, $7E, $C6, $8D, $06, $20, $C8, $B9, $7E, $C6, $C9, $FF, $F0, $06, $8D, $07 ; CPU:$C60B PRG:060B B9 7E C6 8D 06 20 C8 B9 7E C6 C9 FF F0 06 8D 07 .byte $20, $C8, $D0, $F3, $AD, $02, $20, $A9, $3F, $8D, $06, $20, $A9, $00, $8D, $06 ; CPU:$C61B PRG:061B 20 C8 D0 F3 AD 02 20 A9 3F 8D 06 20 A9 00 8D 06 .byte $20, $A0, $00, $B9, $4A, $C6, $8D, $07, $20, $C8, $C0, $20, $D0, $F5, $A9, $3F ; CPU:$C62B PRG:062B 20 A0 00 B9 4A C6 8D 07 20 C8 C0 20 D0 F5 A9 3F .byte $8D, $06, $20, $A9, $00, $8D, $06, $20, $8D, $06, $20, $8D, $06, $20, $60, $0F ; CPU:$C63B PRG:063B 8D 06 20 A9 00 8D 06 20 8D 06 20 8D 06 20 60 0F .byte $20, $0F, $06, $0F, $06, $0F, $33, $0F, $33, $0F, $27, $0F, $28, $0F, $21, $0F ; CPU:$C64B PRG:064B 20 0F 06 0F 06 0F 33 0F 33 0F 27 0F 28 0F 21 0F .byte $27, $20, $06, $0F, $11, $20, $33, $0F, $20, $20, $21, $0F, $09, $20, $17, $7E ; CPU:$C65B PRG:065B 27 20 06 0F 11 20 33 0F 20 20 21 0F 09 20 17 7E .byte $C6, $8A, $C6, $92, $C6, $9B, $C6, $A3, $C6, $AB, $C6, $B3, $C6, $BA, $C6, $C2 ; CPU:$C66B PRG:066B C6 8A C6 92 C6 9B C6 A3 C6 AB C6 B3 C6 BA C6 C2 .byte $C6, $CA, $C6, $20, $EB, $43, $48, $41, $52, $41, $43, $54, $45, $52, $FF, $21 ; CPU:$C67B PRG:067B C6 CA C6 20 EB 43 48 41 52 41 43 54 45 52 FF 21 .byte $4D, $2E, $2E, $2E, $2E, $FF, $00, $21, $53, $42, $4C, $49, $4E, $4B, $59, $FF ; CPU:$C68B PRG:068B 4D 2E 2E 2E 2E FF 00 21 53 42 4C 49 4E 4B 59 FF .byte $21, $AD, $2E, $2E, $2E, $2E, $FF, $00, $21, $B3, $50, $49, $4E, $4B, $59, $FF ; CPU:$C69B PRG:069B 21 AD 2E 2E 2E 2E FF 00 21 B3 50 49 4E 4B 59 FF .byte $22, $0D, $2E, $2E, $2E, $2E, $FF, $00, $22, $13, $49, $4E, $4B, $59, $FF, $22 ; CPU:$C6AB PRG:06AB 22 0D 2E 2E 2E 2E FF 00 22 13 49 4E 4B 59 FF 22 .byte $6D, $2E, $2E, $2E, $2E, $FF, $00, $22, $73, $43, $4C, $59, $44, $45, $FF, $22 ; CPU:$C6BB PRG:06BB 6D 2E 2E 2E 2E FF 00 22 73 43 4C 59 44 45 FF 22 .byte $AD, $03, $20, $31, $30, $20, $50, $54, $53, $00, $22, $ED, $01, $20, $35, $30 ; CPU:$C6CB PRG:06CB AD 03 20 31 30 20 50 54 53 00 22 ED 01 20 35 30 .byte $20, $50, $54, $53, $00, $23, $4D, $54, $45, $4E, $47, $45, $4E, $FF, $48, $1C ; CPU:$C6DB PRG:06DB 20 50 54 53 00 23 4D 54 45 4E 47 45 4E FF 48 1C .byte $40, $46, $48, $1B, $40, $4E, $50, $1F, $40, $46, $50, $1D, $40, $4E, $60, $1C ; CPU:$C6EB PRG:06EB 40 46 48 1B 40 4E 50 1F 40 46 50 1D 40 4E 60 1C .byte $41, $46, $60, $1B, $41, $4E, $68, $1F, $41, $46, $68, $1D, $41, $4E, $78, $1C ; CPU:$C6FB PRG:06FB 41 46 60 1B 41 4E 68 1F 41 46 68 1D 41 4E 78 1C .byte $42, $46, $78, $1B, $42, $4E, $80, $1F, $42, $46, $80, $1D, $42, $4E, $90, $1C ; CPU:$C70B PRG:070B 42 46 78 1B 42 4E 80 1F 42 46 80 1D 42 4E 90 1C .byte $43, $46, $90, $1B, $43, $4E, $98, $1F, $43, $46, $98, $1D, $43, $4E, $00, $00 ; CPU:$C71B PRG:071B 43 46 90 1B 43 4E 98 1F 43 46 98 1D 43 4E 00 00 .byte $00, $00, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C72B PRG:072B 00 00 00 00 00 00 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, $AA, $AA ; CPU:$C73B PRG:073B FF FF FF FF FF FF FF FF FF FF FF FF FF FF AA AA .byte $AA, $22, $00, $00, $00, $00, $A4, $88, $B9, $60, $C7, $85, $10, $B9, $61, $C7 ; CPU:$C74B PRG:074B AA 22 00 00 00 00 A4 88 B9 60 C7 85 10 B9 61 C7 .byte $85, $11, $6C, $10, $00, $66, $C7, $B1, $C7, $16, $C8, $A0, $00, $B9, $97, $C9 ; CPU:$C75B PRG:075B 85 11 6C 10 00 66 C7 B1 C7 16 C8 A0 00 B9 97 C9 .byte $99, $4B, $02, $C8, $C9, $FF, $D0, $F5, $A9, $FF, $85, $1A, $A9, $00, $85, $1B ; CPU:$C76B PRG:076B 99 4B 02 C8 C9 FF D0 F5 A9 FF 85 1A A9 00 85 1B .byte $85, $89, $85, $8A, $A9, $F4, $8D, $74, $02, $A9, $A8, $8D, $76, $02, $A9, $01 ; CPU:$C77B PRG:077B 85 89 85 8A A9 F4 8D 74 02 A9 A8 8D 76 02 A9 01 .byte $8D, $8C, $02, $A9, $20, $8D, $92, $02, $A9, $00, $A8, $99, $1E, $00, $C8, $C0 ; CPU:$C78B PRG:078B 8D 8C 02 A9 20 8D 92 02 A9 00 A8 99 1E 00 C8 C0 .byte $14, $D0, $F8, $A8, $99, $78, $02, $C8, $C0, $14, $D0, $F8, $20, $B0, $DA, $E6 ; CPU:$C79B PRG:079B 14 D0 F8 A8 99 78 02 C8 C0 14 D0 F8 20 B0 DA E6 .byte $88, $E6, $88, $4C, $3C, $C2, $20, $9B, $C8, $20, $77, $C9, $AD, $74, $02, $C9 ; CPU:$C7AB PRG:07AB 88 E6 88 4C 3C C2 20 9B C8 20 77 C9 AD 74 02 C9 .byte $E0, $F0, $0C, $C9, $D1, $F0, $08, $C9, $C2, $F0, $04, $C9, $B3, $D0, $03, $20 ; CPU:$C7BB PRG:07BB E0 F0 0C C9 D1 F0 08 C9 C2 F0 04 C9 B3 D0 03 20 .byte $67, $C8, $AD, $74, $02, $C9, $40, $F0, $03, $4C, $3C, $C2, $A0, $00, $A9, $00 ; CPU:$C7CB PRG:07CB 67 C8 AD 74 02 C9 40 F0 03 4C 3C C2 A0 00 A9 00 .byte $99, $1E, $00, $A9, $C0, $99, $1F, $00, $C8, $C8, $C8, $C8, $C0, $10, $D0, $EE ; CPU:$C7DB PRG:07DB 99 1E 00 A9 C0 99 1F 00 C8 C8 C8 C8 C0 10 D0 EE .byte $A9, $01, $85, $1A, $A9, $50, $85, $1B, $A9, $01, $8D, $93, $02, $8D, $94, $02 ; CPU:$C7EB PRG:07EB A9 01 85 1A A9 50 85 1B A9 01 8D 93 02 8D 94 02 .byte $8D, $95, $02, $8D, $96, $02, $A9, $00, $85, $89, $A9, $22, $8D, $4B, $02, $A9 ; CPU:$C7FB PRG:07FB 8D 95 02 8D 96 02 A9 00 85 89 A9 22 8D 4B 02 A9 .byte $20, $8D, $4D, $02, $E6, $88, $E6, $88, $4C, $3C, $C2, $A5, $8A, $F0, $47, $20 ; CPU:$C80B PRG:080B 20 8D 4D 02 E6 88 E6 88 4C 3C C2 A5 8A F0 47 20 .byte $ED, $C8, $C6, $8A, $F0, $03, $4C, $3C, $C2, $A0, $00, $B9, $8D, $02, $29, $E0 ; CPU:$C81B PRG:081B ED C8 C6 8A F0 03 4C 3C C2 A0 00 B9 8D 02 29 E0 .byte $D0, $03, $C8, $D0, $F6, $A9, $00, $99, $8D, $02, $A9, $00, $99, $93, $02, $98 ; CPU:$C82B PRG:082B D0 03 C8 D0 F6 A9 00 99 8D 02 A9 00 99 93 02 98 .byte $0A, $0A, $A8, $A9, $00, $99, $78, $02, $99, $7A, $02, $99, $1E, $00, $99, $1F ; CPU:$C83B PRG:083B 0A 0A A8 A9 00 99 78 02 99 7A 02 99 1E 00 99 1F .byte $00, $A9, $A8, $8D, $76, $02, $A5, $89, $C9, $04, $F0, $03, $4C, $3C, $C2, $A9 ; CPU:$C84B PRG:084B 00 A9 A8 8D 76 02 A5 89 C9 04 F0 03 4C 3C C2 A9 .byte $01, $85, $47, $4C, $13, $CA, $20, $9B, $C8, $4C, $3C, $C2, $A0, $00, $84, $00 ; CPU:$C85B PRG:085B 01 85 47 4C 13 CA 20 9B C8 4C 3C C2 A0 00 84 00 .byte $B9, $78, $02, $F0, $08, $E6, $00, $C8, $C8, $C8, $C8, $D0, $F3, $A9, $F4, $99 ; CPU:$C86B PRG:086B B9 78 02 F0 08 E6 00 C8 C8 C8 C8 D0 F3 A9 F4 99 .byte $78, $02, $A9, $A8, $99, $7A, $02, $A9, $FF, $99, $1E, $00, $A9, $00, $99, $1F ; CPU:$C87B PRG:087B 78 02 A9 A8 99 7A 02 A9 FF 99 1E 00 A9 00 99 1F .byte $00, $A4, $00, $A5, $89, $99, $93, $02, $A9, $0C, $99, $8D, $02, $E6, $89, $60 ; CPU:$C88B PRG:088B 00 A4 00 A5 89 99 93 02 A9 0C 99 8D 02 E6 89 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C589_Entry_C89B ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C589_Entry_C89B: jsr Sub_E9D8_Entry_E9D8 ; jsr Sub_C8ED_Return_C8ED ; jsr Sub_C9B9_Entry_C9B9 ; jsr Sub_C8AA_JumpNext_C8AA ; jmp Sub_DAB0_Entry_DAB0 ; ; ----------------------------------------------------------------------------- ; Routine: Sub_C8AA_JumpNext_C8AA ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8AA_JumpNext_C8AA: lda Zp1A ; CPU:$C8AA PRG:08AA A5 1A bpl Sub_C8AA_OnNonnegative_C8AF ; CPU:$C8AC PRG:08AC 10 01 rts ; CPU:$C8AE PRG:08AE 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8AA_OnNonnegative_C8AF ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8AA_OnNonnegative_C8AF: lda $0274 ; CPU:$C8AF PRG:08AF AD 74 02 clc ; CPU:$C8B2 PRG:08B2 18 adc #$08 ; CPU:$C8B3 PRG:08B3 69 08 sta Zp00 ; CPU:$C8B5 PRG:08B5 85 00 ldy #$00 ; CPU:$C8B7 PRG:08B7 A0 00 sty Zp01 ; CPU:$C8B9 PRG:08B9 84 01 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8AA_OnNonzero_C8BB ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8AA_OnNonzero_C8BB: lda $0278,y ; CPU:$C8BB PRG:08BB B9 78 02 beq Sub_C8AA_OnZero_C8C4 ; CPU:$C8BE PRG:08BE F0 04 cmp Zp00 ; CPU:$C8C0 PRG:08C0 C5 00 bcc Sub_C8AA_OnCarryClear_C8CF ; CPU:$C8C2 PRG:08C2 90 0B ; ----------------------------------------------------------------------------- ; Routine: Sub_C8AA_OnZero_C8C4 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8AA_OnZero_C8C4: inc Zp01 ; CPU:$C8C4 PRG:08C4 E6 01 iny ; CPU:$C8C6 PRG:08C6 C8 iny ; CPU:$C8C7 PRG:08C7 C8 iny ; CPU:$C8C8 PRG:08C8 C8 iny ; CPU:$C8C9 PRG:08C9 C8 cpy #$10 ; CPU:$C8CA PRG:08CA C0 10 bne Sub_C8AA_OnNonzero_C8BB ; CPU:$C8CC PRG:08CC D0 ED rts ; CPU:$C8CE PRG:08CE 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8AA_OnCarryClear_C8CF ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8AA_OnCarryClear_C8CF: ldy Zp89 ; CPU:$C8CF PRG:08CF A4 89 inc Zp89 ; CPU:$C8D1 PRG:08D1 E6 89 lda #$40 ; CPU:$C8D3 PRG:08D3 A9 40 sta Zp8A ; CPU:$C8D5 PRG:08D5 85 8A lda $C9AD,y ; CPU:$C8D7 PRG:08D7 B9 AD C9 ldy Zp01 ; CPU:$C8DA PRG:08DA A4 01 sta $028D,y ; CPU:$C8DC PRG:08DC 99 8D 02 lda #$00 ; CPU:$C8DF PRG:08DF A9 00 sta $0293,y ; CPU:$C8E1 PRG:08E1 99 93 02 lda #$00 ; CPU:$C8E4 PRG:08E4 A9 00 sta $028C ; CPU:$C8E6 PRG:08E6 8D 8C 02 sta $0276 ; CPU:$C8E9 PRG:08E9 8D 76 02 rts ; CPU:$C8EC PRG:08EC 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8ED_Return_C8ED ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8ED_Return_C8ED: lda Zp1E ; CPU:$C8ED PRG:08ED A5 1E sta Zp00 ; CPU:$C8EF PRG:08EF 85 00 lda Zp1F ; CPU:$C8F1 PRG:08F1 A5 1F sta Zp01 ; CPU:$C8F3 PRG:08F3 85 01 ldy #$00 ; CPU:$C8F5 PRG:08F5 A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8ED_OnNonzero_C8F7 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8ED_OnNonzero_C8F7: lda a:$0022,y ; CPU:$C8F7 PRG:08F7 B9 22 00 sta a:Zp1E,y ; CPU:$C8FA PRG:08FA 99 1E 00 lda a:$0023,y ; CPU:$C8FD PRG:08FD B9 23 00 sta a:Zp1F,y ; CPU:$C900 PRG:0900 99 1F 00 iny ; CPU:$C903 PRG:0903 C8 iny ; CPU:$C904 PRG:0904 C8 iny ; CPU:$C905 PRG:0905 C8 iny ; CPU:$C906 PRG:0906 C8 cpy #$0C ; CPU:$C907 PRG:0907 C0 0C bne Sub_C8ED_OnNonzero_C8F7 ; CPU:$C909 PRG:0909 D0 EC lda Zp00 ; CPU:$C90B PRG:090B A5 00 sta Zp2A ; CPU:$C90D PRG:090D 85 2A lda Zp01 ; CPU:$C90F PRG:090F A5 01 sta Zp2B ; CPU:$C911 PRG:0911 85 2B lda $0278 ; CPU:$C913 PRG:0913 AD 78 02 sta Zp00 ; CPU:$C916 PRG:0916 85 00 lda $0279 ; CPU:$C918 PRG:0918 AD 79 02 sta Zp01 ; CPU:$C91B PRG:091B 85 01 lda $027A ; CPU:$C91D PRG:091D AD 7A 02 sta Zp02 ; CPU:$C920 PRG:0920 85 02 lda $027B ; CPU:$C922 PRG:0922 AD 7B 02 sta Zp03 ; CPU:$C925 PRG:0925 85 03 ldy #$00 ; CPU:$C927 PRG:0927 A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8ED_OnNonzero_C929 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8ED_OnNonzero_C929: lda $027C,y ; CPU:$C929 PRG:0929 B9 7C 02 sta $0278,y ; CPU:$C92C PRG:092C 99 78 02 iny ; CPU:$C92F PRG:092F C8 cpy #$0C ; CPU:$C930 PRG:0930 C0 0C bne Sub_C8ED_OnNonzero_C929 ; CPU:$C932 PRG:0932 D0 F5 lda Zp00 ; CPU:$C934 PRG:0934 A5 00 sta $0284 ; CPU:$C936 PRG:0936 8D 84 02 lda Zp01 ; CPU:$C939 PRG:0939 A5 01 sta $0285 ; CPU:$C93B PRG:093B 8D 85 02 lda Zp02 ; CPU:$C93E PRG:093E A5 02 sta $0286 ; CPU:$C940 PRG:0940 8D 86 02 lda Zp03 ; CPU:$C943 PRG:0943 A5 03 sta $0287 ; CPU:$C945 PRG:0945 8D 87 02 lda $028D ; CPU:$C948 PRG:0948 AD 8D 02 sta Zp00 ; CPU:$C94B PRG:094B 85 00 ldy #$00 ; CPU:$C94D PRG:094D A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8ED_OnNonzero_C94F ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8ED_OnNonzero_C94F: lda $028E,y ; CPU:$C94F PRG:094F B9 8E 02 sta $028D,y ; CPU:$C952 PRG:0952 99 8D 02 iny ; CPU:$C955 PRG:0955 C8 cpy #$03 ; CPU:$C956 PRG:0956 C0 03 bne Sub_C8ED_OnNonzero_C94F ; CPU:$C958 PRG:0958 D0 F5 lda Zp00 ; CPU:$C95A PRG:095A A5 00 sta $0290 ; CPU:$C95C PRG:095C 8D 90 02 lda $0293 ; CPU:$C95F PRG:095F AD 93 02 sta Zp00 ; CPU:$C962 PRG:0962 85 00 ldy #$00 ; CPU:$C964 PRG:0964 A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8ED_OnNonzero_C966 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8ED_OnNonzero_C966: lda $0294,y ; CPU:$C966 PRG:0966 B9 94 02 sta $0293,y ; CPU:$C969 PRG:0969 99 93 02 iny ; CPU:$C96C PRG:096C C8 cpy #$03 ; CPU:$C96D PRG:096D C0 03 bne Sub_C8ED_OnNonzero_C966 ; CPU:$C96F PRG:096F D0 F5 lda Zp00 ; CPU:$C971 PRG:0971 A5 00 sta $0296 ; CPU:$C973 PRG:0973 8D 96 02 rts ; CPU:$C976 PRG:0976 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8ED_Return_C977 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8ED_Return_C977: lda FrameCounter ; CPU:$C977 PRG:0977 A5 4B and #$07 ; CPU:$C979 PRG:0979 29 07 beq Sub_C8ED_OnZero_C97E ; CPU:$C97B PRG:097B F0 01 rts ; CPU:$C97D PRG:097D 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8ED_OnZero_C97E ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8ED_OnZero_C97E: ldx #$00 ; CPU:$C97E PRG:097E A2 00 ldy #$00 ; CPU:$C980 PRG:0980 A0 00 lda FrameCounter ; CPU:$C982 PRG:0982 A5 4B and #$08 ; CPU:$C984 PRG:0984 29 08 beq Sub_C8ED_JoinBranchPaths_C98A ; CPU:$C986 PRG:0986 F0 02 ldy #$04 ; CPU:$C988 PRG:0988 A0 04 ; ----------------------------------------------------------------------------- ; Routine: Sub_C8ED_JoinBranchPaths_C98A ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C8ED_JoinBranchPaths_C98A: lda $C9B1,y ; CPU:$C98A PRG:098A B9 B1 C9 sta $024B,x ; CPU:$C98D PRG:098D 9D 4B 02 inx ; CPU:$C990 PRG:0990 E8 iny ; CPU:$C991 PRG:0991 C8 cpx #$04 ; CPU:$C992 PRG:0992 E0 04 bne Sub_C8ED_JoinBranchPaths_C98A ; CPU:$C994 PRG:0994 D0 F4 rts ; CPU:$C996 PRG:0996 60 ; ---- data $C997-$C9B8 (34 bytes) ---- ; referenced by `lda $C9AD,y` at $C8D7 (operand $C9AD falls inside this region) ; referenced by `lda $C9B1,y` at $C98A (operand $C9B1 falls inside this region) .byte $22, $AD, $2D, $2D, $2D, $2D, $2D, $2D, $2D, $2D, $00, $22, $ED, $2D, $2D, $2D ; CPU:$C997 PRG:0997 22 AD 2D 2D 2D 2D 2D 2D 2D 2D 00 22 ED 2D 2D 2D .byte $2D, $2D, $2D, $2D, $2D, $FF, $2D, $2F, $32, $34, $22, $C7, $20, $FF, $22, $C7 ; CPU:$C9A7 PRG:09A7 2D 2D 2D 2D 2D FF 2D 2F 32 34 22 C7 20 FF 22 C7 .byte $01, $FF ; CPU:$C9B7 PRG:09B7 01 FF ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_Entry_C9B9 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_Entry_C9B9: ldx #$00 ; CPU:$C9B9 PRG:09B9 A2 00 lda Zp1A ; CPU:$C9BB PRG:09BB A5 1A bmi Sub_C9B9_OnNegative_C9C1 ; CPU:$C9BD PRG:09BD 30 02 ldx #$0A ; CPU:$C9BF PRG:09BF A2 0A ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_OnNegative_C9C1 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_OnNegative_C9C1: stx Zp00 ; CPU:$C9C1 PRG:09C1 86 00 inc AnimTimer ; CPU:$C9C3 PRG:09C3 E6 B7 lda AnimTimer ; CPU:$C9C5 PRG:09C5 A5 B7 and #$07 ; CPU:$C9C7 PRG:09C7 29 07 clc ; CPU:$C9C9 PRG:09C9 18 adc Zp00 ; CPU:$C9CA PRG:09CA 65 00 tay ; CPU:$C9CC PRG:09CC A8 lda $C9FF,y ; CPU:$C9CD PRG:09CD B9 FF C9 sta $028C ; CPU:$C9D0 PRG:09D0 8D 8C 02 lda FrameCounter ; CPU:$C9D3 PRG:09D3 A5 4B and #$07 ; CPU:$C9D5 PRG:09D5 29 07 beq Sub_C9B9_OnZero_C9DA ; CPU:$C9D7 PRG:09D7 F0 01 rts ; CPU:$C9D9 PRG:09D9 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_OnZero_C9DA ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_OnZero_C9DA: lda FrameCounter ; CPU:$C9DA PRG:09DA A5 4B and #$08 ; CPU:$C9DC PRG:09DC 29 08 beq Sub_C9B9_OnZero_C9E2 ; CPU:$C9DE PRG:09DE F0 02 lda #$01 ; CPU:$C9E0 PRG:09E0 A9 01 ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_OnZero_C9E2 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_OnZero_C9E2: clc ; CPU:$C9E2 PRG:09E2 18 adc Zp00 ; CPU:$C9E3 PRG:09E3 65 00 adc #$08 ; CPU:$C9E5 PRG:09E5 69 08 tay ; CPU:$C9E7 PRG:09E7 A8 lda $C9FF,y ; CPU:$C9E8 PRG:09E8 B9 FF C9 sta Zp00 ; CPU:$C9EB PRG:09EB 85 00 ldy #$00 ; CPU:$C9ED PRG:09ED A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_OnNonzero_C9EF ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_OnNonzero_C9EF: lda $028D,y ; CPU:$C9EF PRG:09EF B9 8D 02 beq Sub_C9B9_OnZero_C9F9 ; CPU:$C9F2 PRG:09F2 F0 05 lda Zp00 ; CPU:$C9F4 PRG:09F4 A5 00 sta $028D,y ; CPU:$C9F6 PRG:09F6 99 8D 02 ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_OnZero_C9F9 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_OnZero_C9F9: iny ; CPU:$C9F9 PRG:09F9 C8 cpy #$04 ; CPU:$C9FA PRG:09FA C0 04 bne Sub_C9B9_OnNonzero_C9EF ; CPU:$C9FC PRG:09FC D0 F1 rts ; CPU:$C9FE PRG:09FE 60 ; ---- data $C9FF-$D248 (2122 bytes) ---- ; referenced by `lda $C9FF,y` at $C9CD (operand $C9FF falls inside this region) ; referenced by `lda $C9FF,y` at $C9E8 (operand $C9FF falls inside this region) .byte $04, $04, $04, $05, $05, $04, $01, $01, $0C, $0D, $08, $08, $08, $09, $09, $08 ; CPU:$C9FF PRG:09FF 04 04 04 05 05 04 01 01 0C 0D 08 08 08 09 09 08 .byte $01, $01, $1E, $1F, $A9, $08, $8D, $00, $20, $85, $43, $AD, $02, $20, $10, $FB ; CPU:$CA0F PRG:0A0F 01 01 1E 1F A9 08 8D 00 20 85 43 AD 02 20 10 FB .byte $A9, $00, $8D, $01, $20, $85, $3F, $85, $46, $85, $69, $85, $4A, $20, $44, $E3 ; CPU:$CA1F PRG:0A1F A9 00 8D 01 20 85 3F 85 46 85 69 85 4A 20 44 E3 .byte $20, $C1, $E4, $20, $BE, $E3, $A5, $48, $F0, $06, $A9, $01, $85, $67, $D0, $17 ; CPU:$CA2F PRG:0A2F 20 C1 E4 20 BE E3 A5 48 F0 06 A9 01 85 67 D0 17 .byte $A9, $00, $A8, $99, $67, $00, $C8, $C0, $20, $D0, $F8, $A9, $03, $85, $67, $85 ; CPU:$CA3F PRG:0A3F A9 00 A8 99 67 00 C8 C0 20 D0 F8 A9 03 85 67 85 .byte $77, $8D, $00, $06, $8D, $01, $06, $A9, $FF, $85, $68, $85, $78, $8D, $45, $02 ; CPU:$CA4F PRG:0A4F 77 8D 00 06 8D 01 06 A9 FF 85 68 85 78 8D 45 02 .byte $A9, $88, $85, $43, $8D, $00, $20, $A9, $01, $85, $40, $A5, $40, $D0, $FC, $A5 ; CPU:$CA5F PRG:0A5F A9 88 85 43 8D 00 20 A9 01 85 40 A5 40 D0 FC A5 .byte $48, $F0, $0D, $A5, $4D, $29, $0C, $F0, $07, $A9, $02, $85, $3F, $4C, $D3, $C1 ; CPU:$CA6F PRG:0A6F 48 F0 0D A5 4D 29 0C F0 07 A9 02 85 3F 4C D3 C1 .byte $A5, $4C, $F0, $04, $C6, $4C, $D0, $DF, $A4, $3F, $B9, $96, $CA, $85, $10, $B9 ; CPU:$CA7F PRG:0A7F A5 4C F0 04 C6 4C D0 DF A4 3F B9 96 CA 85 10 B9 .byte $97, $CA, $85, $11, $6C, $10, $00, $B2, $CE, $26, $CB, $A8, $CA, $98, $CC, $C5 ; CPU:$CA8F PRG:0A8F 97 CA 85 11 6C 10 00 B2 CE 26 CB A8 CA 98 CC C5 .byte $CC, $DE, $CD, $6F, $CD, $95, $E6, $7E, $E7, $AD, $0F, $06, $F0, $03, $4C, $66 ; CPU:$CA9F PRG:0A9F CC DE CD 6F CD 95 E6 7E E7 AD 0F 06 F0 03 4C 66 .byte $CA, $A5, $4D, $29, $08, $C5, $49, $F0, $38, $85, $49, $A5, $49, $F0, $32, $E6 ; CPU:$CAAF PRG:0AAF CA A5 4D 29 08 C5 49 F0 38 85 49 A5 49 F0 32 E6 .byte $4A, $A2, $22, $A5, $47, $25, $46, $F0, $02, $A2, $2A, $8E, $4B, $02, $A9, $37 ; CPU:$CABF PRG:0ABF 4A A2 22 A5 47 25 46 F0 02 A2 2A 8E 4B 02 A9 37 .byte $8D, $4C, $02, $A2, $06, $A0, $00, $A5, $4A, $29, $01, $F0, $05, $A2, $00, $8D ; CPU:$CACF PRG:0ACF 8D 4C 02 A2 06 A0 00 A5 4A 29 01 F0 05 A2 00 8D .byte $0F, $06, $BD, $1A, $CB, $99, $4D, $02, $E8, $C8, $C0, $06, $D0, $F4, $4C, $66 ; CPU:$CADF PRG:0ADF 0F 06 BD 1A CB 99 4D 02 E8 C8 C0 06 D0 F4 4C 66 .byte $CA, $A5, $4A, $29, $01, $F0, $03, $4C, $66, $CA, $20, $5F, $D1, $20, $3B, $DF ; CPU:$CAEF PRG:0AEF CA A5 4A 29 01 F0 03 4C 66 CA 20 5F D1 20 3B DF .byte $20, $4F, $D3, $20, $4D, $D9, $20, $16, $D5, $20, $8B, $D9, $20, $1D, $D9, $20 ; CPU:$CAFF PRG:0AFF 20 4F D3 20 4D D9 20 16 D5 20 8B D9 20 1D D9 20 .byte $1D, $DE, $20, $63, $D2, $20, $FF, $D9, $4C, $66, $CA, $50, $41, $55, $53, $45 ; CPU:$CB0F PRG:0B0F 1D DE 20 63 D2 20 FF D9 4C 66 CA 50 41 55 53 45 .byte $FF, $2D, $2D, $2D, $2D, $2D, $FF, $A5, $87, $F0, $03, $4C, $A3, $CB, $A9, $60 ; CPU:$CB1F PRG:0B1F FF 2D 2D 2D 2D 2D FF A5 87 F0 03 4C A3 CB A9 60 .byte $85, $00, $A9, $07, $85, $01, $A5, $48, $D0, $6A, $A9, $02, $85, $04, $A0, $00 ; CPU:$CB2F PRG:0B2F 85 00 A9 07 85 01 A5 48 D0 6A A9 02 85 04 A0 00 .byte $84, $05, $84, $06, $84, $07, $A6, $06, $BD, $7F, $CC, $85, $02, $BD, $80, $CC ; CPU:$CB3F PRG:0B3F 84 05 84 06 84 07 A6 06 BD 7F CC 85 02 BD 80 CC .byte $85, $03, $A6, $07, $BD, $85, $CC, $85, $08, $A5, $03, $91, $00, $A6, $05, $BD ; CPU:$CB4F PRG:0B4F 85 03 A6 07 BD 85 CC 85 08 A5 03 91 00 A6 05 BD .byte $5B, $CC, $C8, $91, $00, $BD, $6D, $CC, $C8, $91, $00, $A5, $02, $C8, $91, $00 ; CPU:$CB5F PRG:0B5F 5B CC C8 91 00 BD 6D CC C8 91 00 A5 02 C8 91 00 .byte $A5, $02, $18, $69, $08, $85, $02, $C8, $E6, $05, $C6, $08, $D0, $DB, $E6, $06 ; CPU:$CB6F PRG:0B6F A5 02 18 69 08 85 02 C8 E6 05 C6 08 D0 DB E6 06 .byte $E6, $06, $E6, $07, $A5, $69, $D0, $04, $A5, $68, $D0, $18, $C6, $04, $F0, $04 ; CPU:$CB7F PRG:0B7F E6 06 E6 07 A5 69 D0 04 A5 68 D0 18 C6 04 F0 04 .byte $10, $B4, $30, $10, $A5, $47, $F0, $0C, $A5, $46, $F0, $AA, $E6, $05, $E6, $05 ; CPU:$CB8F PRG:0B8F 10 B4 30 10 A5 47 F0 0C A5 46 F0 AA E6 05 E6 05 .byte $E6, $05, $D0, $A2, $A5, $87, $C9, $C0, $D0, $03, $4C, $3B, $CC, $E6, $87, $A5 ; CPU:$CB9F PRG:0B9F E6 05 D0 A2 A5 87 C9 C0 D0 03 4C 3B CC E6 87 A5 .byte $87, $C9, $78, $F0, $03, $4C, $58, $CC, $A9, $A8, $85, $1C, $A9, $60, $85, $1A ; CPU:$CBAF PRG:0BAF 87 C9 78 F0 03 4C 58 CC A9 A8 85 1C A9 60 85 1A .byte $85, $1E, $85, $22, $A9, $58, $85, $26, $85, $20, $A9, $68, $85, $2A, $A9, $70 ; CPU:$CBBF PRG:0BBF 85 1E 85 22 A9 58 85 26 85 20 A9 68 85 2A A9 70 .byte $85, $24, $85, $28, $85, $2C, $A9, $00, $A8, $99, $78, $07, $C8, $C0, $24, $D0 ; CPU:$CBCF PRG:0BCF 85 24 85 28 85 2C A9 00 A8 99 78 07 C8 C0 24 D0 .byte $F8, $A5, $47, $25, $46, $F0, $02, $A9, $08, $85, $00, $A5, $67, $38, $E9, $01 ; CPU:$CBDF PRG:0BDF F8 A5 47 25 46 F0 02 A9 08 85 00 A5 67 38 E9 01 .byte $0A, $A8, $B9, $90, $CC, $18, $65, $00, $85, $00, $B9, $91, $CC, $85, $01, $A5 ; CPU:$CBEF PRG:0BEF 0A A8 B9 90 CC 18 65 00 85 00 B9 91 CC 85 01 A5 .byte $00, $8D, $4B, $02, $A5, $01, $8D, $4C, $02, $A9, $2D, $8D, $4D, $02, $8D, $4E ; CPU:$CBFF PRG:0BFF 00 8D 4B 02 A5 01 8D 4C 02 A9 2D 8D 4D 02 8D 4E .byte $02, $A9, $00, $8D, $4F, $02, $A5, $00, $8D, $50, $02, $A5, $01, $18, $69, $20 ; CPU:$CC0F PRG:0C0F 02 A9 00 8D 4F 02 A5 00 8D 50 02 A5 01 18 69 20 .byte $8D, $51, $02, $A9, $2D, $8D, $52, $02, $8D, $53, $02, $A9, $FF, $8D, $54, $02 ; CPU:$CC1F PRG:0C1F 8D 51 02 A9 2D 8D 52 02 8D 53 02 A9 FF 8D 54 02 .byte $20, $4D, $D9, $20, $8B, $D9, $20, $FF, $D9, $4C, $58, $CC, $AD, $00, $06, $0D ; CPU:$CC2F PRG:0C2F 20 4D D9 20 8B D9 20 FF D9 4C 58 CC AD 00 06 0D .byte $01, $06, $D0, $15, $A5, $48, $D0, $0D, $A9, $00, $85, $69, $A8, $99, $60, $07 ; CPU:$CC3F PRG:0C3F 01 06 D0 15 A5 48 D0 0D A9 00 85 69 A8 99 60 07 .byte $C8, $C0, $A0, $D0, $F8, $A9, $04, $85, $3F, $4C, $66, $CA, $C6, $C3, $C1, $BA ; CPU:$CC4F PRG:0C4F C8 C0 A0 D0 F8 A9 04 85 3F 4C 66 CA C6 C3 C1 BA .byte $C7, $BB, $B0, $B1, $B2, $B3, $B4, $B5, $B6, $B7, $B4, $B8, $B9, $B6, $00, $00 ; CPU:$CC5F PRG:0C5F C7 BB B0 B1 B2 B3 B4 B5 B6 B7 B4 B8 B9 B6 00 00 .byte $00, $00, $00, $00, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; CPU:$CC6F PRG:0C6F 00 00 00 00 02 02 02 02 02 02 02 02 02 02 02 02 .byte $44, $88, $44, $60, $50, $70, $06, $06, $03, $C0, $C1, $C2, $C3, $C4, $C5, $C3 ; CPU:$CC7F PRG:0C7F 44 88 44 60 50 70 06 06 03 C0 C1 C2 C3 C4 C5 C3 .byte $C6, $23, $17, $23, $19, $23, $1B, $23, $57, $E6, $DA, $A9, $28, $C5, $DA, $D0 ; CPU:$CC8F PRG:0C8F C6 23 17 23 19 23 1B 23 57 E6 DA A9 28 C5 DA D0 .byte $16, $A9, $02, $85, $DA, $A9, $04, $85, $3F, $A9, $08, $A2, $FE, $E8, $E8, $D5 ; CPU:$CC9F PRG:0C9F 16 A9 02 85 DA A9 04 85 3F A9 08 A2 FE E8 E8 D5 .byte $B8, $D0, $FA, $A9, $06, $95, $B8, $20, $1D, $DE, $20, $D3, $D8, $20, $8B, $D9 ; CPU:$CCAF PRG:0CAF B8 D0 FA A9 06 95 B8 20 1D DE 20 D3 D8 20 8B D9 .byte $20, $FF, $D9, $4C, $66, $CA, $A5, $87, $D0, $23, $C6, $DB, $D0, $13, $E6, $87 ; CPU:$CCBF PRG:0CBF 20 FF D9 4C 66 CA A5 87 D0 23 C6 DB D0 13 E6 87 .byte $A9, $0A, $85, $DB, $8D, $03, $06, $A9, $00, $AA, $95, $1E, $E8, $E0, $14, $D0 ; CPU:$CCCF PRG:0CCF A9 0A 85 DB 8D 03 06 A9 00 AA 95 1E E8 E0 14 D0 .byte $F9, $20, $1D, $DE, $20, $8B, $D9, $20, $FF, $D9, $4C, $66, $CA, $C6, $DB, $10 ; CPU:$CCDF PRG:0CDF F9 20 1D DE 20 8B D9 20 FF D9 4C 66 CA C6 DB 10 .byte $0F, $A9, $0A, $85, $DB, $A5, $32, $18, $69, $01, $85, $32, $C9, $1E, $F0, $09 ; CPU:$CCEF PRG:0CEF 0F A9 0A 85 DB A5 32 18 69 01 85 32 C9 1E F0 09 .byte $20, $1D, $DE, $20, $FF, $D9, $4C, $66, $CA, $A5, $48, $D0, $3C, $C6, $67, $D0 ; CPU:$CCFF PRG:0CFF 20 1D DE 20 FF D9 4C 66 CA A5 48 D0 3C C6 67 D0 .byte $0D, $A9, $00, $85, $87, $85, $69, $A9, $0A, $85, $3F, $4C, $66, $CA, $A9, $00 ; CPU:$CD0F PRG:0D0F 0D A9 00 85 87 85 69 A9 0A 85 3F 4C 66 CA A9 00 .byte $85, $3F, $A9, $01, $85, $69, $A5, $47, $F0, $04, $A5, $77, $D0, $26, $A5, $67 ; CPU:$CD1F PRG:0D1F 85 3F A9 01 85 69 A5 47 F0 04 A5 77 D0 26 A5 67 .byte $D0, $3B, $85, $69, $A5, $46, $F0, $11, $A2, $0F, $B5, $67, $85, $00, $B5, $77 ; CPU:$CD2F PRG:0D2F D0 3B 85 69 A5 46 F0 11 A2 0F B5 67 85 00 B5 77 .byte $95, $67, $A5, $00, $95, $77, $CA, $10, $F1, $A9, $00, $85, $46, $A9, $00, $85 ; CPU:$CD3F PRG:0D3F 95 67 A5 00 95 77 CA 10 F1 A9 00 85 46 A9 00 85 .byte $3F, $4C, $D3, $C1, $A2, $0F, $B5, $67, $85, $00, $B5, $77, $95, $67, $A5, $00 ; CPU:$CD4F PRG:0D4F 3F 4C D3 C1 A2 0F B5 67 85 00 B5 77 95 67 A5 00 .byte $95, $77, $CA, $10, $F1, $E6, $46, $A5, $46, $29, $01, $85, $46, $4C, $66, $CA ; CPU:$CD5F PRG:0D5F 95 77 CA 10 F1 E6 46 A5 46 29 01 85 46 4C 66 CA .byte $A5, $87, $D0, $11, $A2, $00, $95, $1E, $E8, $E0, $14, $D0, $F9, $E6, $87, $A9 ; CPU:$CD6F PRG:0D6F A5 87 D0 11 A2 00 95 1E E8 E0 14 D0 F9 E6 87 A9 .byte $01, $85, $32, $D0, $51, $A5, $4B, $29, $07, $D0, $4B, $A2, $11, $A5, $87, $29 ; CPU:$CD7F PRG:0D7F 01 85 32 D0 51 A5 4B 29 07 D0 4B A2 11 A5 87 29 .byte $01, $D0, $02, $A2, $20, $8E, $9E, $02, $A9, $0F, $8D, $99, $02, $E6, $87, $A9 ; CPU:$CD8F PRG:0D8F 01 D0 02 A2 20 8E 9E 02 A9 0F 8D 99 02 E6 87 A9 .byte $10, $C5, $87, $D0, $31, $A9, $00, $85, $1A, $85, $1C, $85, $87, $A5, $68, $C9 ; CPU:$CD9F PRG:0D9F 10 C5 87 D0 31 A9 00 85 1A 85 1C 85 87 A5 68 C9 .byte $01, $F0, $18, $E6, $87, $E6, $87, $C9, $04, $F0, $10, $E6, $87, $E6, $87, $C9 ; CPU:$CDAF PRG:0DAF 01 F0 18 E6 87 E6 87 C9 04 F0 10 E6 87 E6 87 C9 .byte $08, $F0, $08, $C9, $0C, $F0, $04, $C9, $10, $D0, $07, $A9, $0E, $85, $3F, $4C ; CPU:$CDBF PRG:0DBF 08 F0 08 C9 0C F0 04 C9 10 D0 07 A9 0E 85 3F 4C .byte $D5, $CD, $A9, $00, $85, $3F, $20, $1D, $DE, $20, $FF, $D9, $4C, $66, $CA, $A5 ; CPU:$CDCF PRG:0DCF D5 CD A9 00 85 3F 20 1D DE 20 FF D9 4C 66 CA A5 .byte $87, $F0, $03, $4C, $69, $CE, $A0, $00, $A9, $FF, $99, $00, $07, $C8, $C0, $60 ; CPU:$CDDF PRG:0DDF 87 F0 03 4C 69 CE A0 00 A9 FF 99 00 07 C8 C0 60 .byte $D0, $F8, $A9, $60, $85, $00, $A9, $07, $85, $01, $A9, $03, $85, $04, $A0, $00 ; CPU:$CDEF PRG:0DEF D0 F8 A9 60 85 00 A9 07 85 01 A9 03 85 04 A0 00 .byte $84, $05, $84, $06, $84, $07, $A6, $06, $BD, $A6, $CE, $85, $02, $BD, $A7, $CE ; CPU:$CDFF PRG:0DFF 84 05 84 06 84 07 A6 06 BD A6 CE 85 02 BD A7 CE .byte $85, $03, $A6, $07, $BD, $AE, $CE, $85, $08, $A5, $03, $91, $00, $A6, $05, $BD ; CPU:$CE0F PRG:0E0F 85 03 A6 07 BD AE CE 85 08 A5 03 91 00 A6 05 BD .byte $7E, $CE, $C8, $91, $00, $BD, $92, $CE, $C8, $91, $00, $A5, $02, $C8, $91, $00 ; CPU:$CE1F PRG:0E1F 7E CE C8 91 00 BD 92 CE C8 91 00 A5 02 C8 91 00 .byte $A5, $02, $18, $69, $08, $85, $02, $C8, $E6, $05, $C6, $08, $D0, $DB, $E6, $06 ; CPU:$CE2F PRG:0E2F A5 02 18 69 08 85 02 C8 E6 05 C6 08 D0 DB E6 06 .byte $E6, $06, $E6, $07, $A5, $47, $F0, $0A, $A5, $77, $D0, $06, $A5, $04, $C9, $02 ; CPU:$CE3F PRG:0E3F E6 06 E6 07 A5 47 F0 0A A5 77 D0 06 A5 04 C9 02 .byte $F0, $18, $C6, $04, $F0, $04, $10, $AE, $30, $10, $A5, $47, $F0, $0C, $A5, $46 ; CPU:$CE4F PRG:0E4F F0 18 C6 04 F0 04 10 AE 30 10 A5 47 F0 0C A5 46 .byte $F0, $A4, $E6, $05, $E6, $05, $E6, $05, $D0, $9C, $E6, $87, $D0, $0E, $A9, $00 ; CPU:$CE5F PRG:0E5F F0 A4 E6 05 E6 05 E6 05 D0 9C E6 87 D0 0E A9 00 .byte $A8, $99, $60, $07, $C8, $C0, $A0, $D0, $F8, $4C, $1D, $CD, $4C, $66, $CA, $BC ; CPU:$CE6F PRG:0E6F A8 99 60 07 C8 C0 A0 D0 F8 4C 1D CD 4C 66 CA BC .byte $B2, $BD, $B4, $B6, $BE, $B4, $B5, $B0, $B1, $B2, $B3, $B4, $B5, $B6, $B7, $B4 ; CPU:$CE7F PRG:0E7F B2 BD B4 B6 BE B4 B5 B0 B1 B2 B3 B4 B5 B6 B7 B4 .byte $B8, $B9, $B6, $00, $00, $00, $00, $00, $00, $00, $00, $02, $02, $02, $02, $02 ; CPU:$CE8F PRG:0E8F B8 B9 B6 00 00 00 00 00 00 00 00 02 02 02 02 02 .byte $02, $02, $02, $02, $02, $02, $02, $38, $88, $60, $88, $44, $60, $50, $70, $04 ; CPU:$CE9F PRG:0E9F 02 02 02 02 02 02 02 38 88 60 88 44 60 50 70 04 .byte $04, $06, $03, $A9, $01, $85, $40, $A5, $40, $D0, $FC, $A9, $08, $8D, $00, $20 ; CPU:$CEAF PRG:0EAF 04 06 03 A9 01 85 40 A5 40 D0 FC A9 08 8D 00 20 .byte $85, $43, $A9, $00, $8D, $01, $20, $A2, $00, $95, $87, $E8, $E0, $69, $D0, $F9 ; CPU:$CEBF PRG:0EBF 85 43 A9 00 8D 01 20 A2 00 95 87 E8 E0 69 D0 F9 .byte $AA, $9D, $00, $07, $E8, $D0, $FA, $A0, $00, $B9, $D0, $D0, $99, $99, $02, $C8 ; CPU:$CECF PRG:0ECF AA 9D 00 07 E8 D0 FA A0 00 B9 D0 D0 99 99 02 C8 .byte $C0, $20, $D0, $F5, $A9, $02, $85, $3F, $A5, $69, $D0, $1E, $85, $8B, $A9, $01 ; CPU:$CEDF PRG:0EDF C0 20 D0 F5 A9 02 85 3F A5 69 D0 1E 85 8B A9 01 .byte $85, $6C, $85, $6D, $85, $6E, $85, $6F, $A9, $C0, $85, $6A, $A5, $68, $C9, $16 ; CPU:$CEEF PRG:0EEF 85 6C 85 6D 85 6E 85 6F A9 C0 85 6A A5 68 C9 16 .byte $F0, $02, $E6, $68, $20, $F0, $D0, $20, $A1, $E2, $20, $BE, $E3, $20, $6A, $D0 ; CPU:$CEFF PRG:0EFF F0 02 E6 68 20 F0 D0 20 A1 E2 20 BE E3 20 6A D0 .byte $20, $12, $E5, $20, $80, $E5, $20, $C1, $E4, $A6, $68, $A9, $00, $18, $CA, $30 ; CPU:$CF0F PRG:0F0F 20 12 E5 20 80 E5 20 C1 E4 A6 68 A9 00 18 CA 30 .byte $04, $69, $06, $D0, $F9, $85, $00, $AA, $BD, $75, $EB, $AA, $A9, $00, $18, $CA ; CPU:$CF1F PRG:0F1F 04 69 06 D0 F9 85 00 AA BD 75 EB AA A9 00 18 CA .byte $30, $04, $69, $16, $D0, $F9, $A8, $A2, $00, $B9, $FF, $EB, $95, $9F, $E8, $C8 ; CPU:$CF2F PRG:0F2F 30 04 69 16 D0 F9 A8 A2 00 B9 FF EB 95 9F E8 C8 .byte $E0, $16, $D0, $F5, $A6, $00, $BD, $75, $EB, $0A, $0A, $0A, $AA, $A0, $00, $84 ; CPU:$CF3F PRG:0F3F E0 16 D0 F5 A6 00 BD 75 EB 0A 0A 0A AA A0 00 84 .byte $D0, $BD, $6D, $EC, $85, $CF, $BD, $6D, $EC, $99, $97, $00, $E8, $C8, $C0, $08 ; CPU:$CF4F PRG:0F4F D0 BD 6D EC 85 CF BD 6D EC 99 97 00 E8 C8 C0 08 .byte $D0, $F4, $E6, $00, $A6, $00, $BD, $75, $EB, $85, $8C, $E6, $00, $A6, $00, $BD ; CPU:$CF5F PRG:0F5F D0 F4 E6 00 A6 00 BD 75 EB 85 8C E6 00 A6 00 BD .byte $75, $EB, $0A, $AA, $BD, $8D, $EC, $85, $8D, $E8, $BD, $8D, $EC, $85, $8E, $E6 ; CPU:$CF6F PRG:0F6F 75 EB 0A AA BD 8D EC 85 8D E8 BD 8D EC 85 8E E6 .byte $00, $A5, $69, $F0, $24, $A2, $0C, $A0, $00, $BD, $9B, $EC, $99, $8F, $00, $C8 ; CPU:$CF7F PRG:0F7F 00 A5 69 F0 24 A2 0C A0 00 BD 9B EC 99 8F 00 C8 .byte $E8, $A9, $C0, $38, $E5, $6A, $85, $01, $A5, $01, $18, $7D, $9B, $EC, $99, $8F ; CPU:$CF8F PRG:0F8F E8 A9 C0 38 E5 6A 85 01 A5 01 18 7D 9B EC 99 8F .byte $00, $C8, $E8, $C0, $04, $D0, $F1, $F0, $16, $A6, $00, $BD, $75, $EB, $0A, $0A ; CPU:$CF9F PRG:0F9F 00 C8 E8 C0 04 D0 F1 F0 16 A6 00 BD 75 EB 0A 0A .byte $AA, $A0, $00, $BD, $9B, $EC, $99, $8F, $00, $E8, $C8, $C0, $04, $D0, $F4, $A9 ; CPU:$CFAF PRG:0FAF AA A0 00 BD 9B EC 99 8F 00 E8 C8 C0 04 D0 F4 A9 .byte $04, $85, $B8, $A9, $01, $85, $B9, $A5, $8F, $85, $01, $A2, $00, $C6, $01, $F0 ; CPU:$CFBF PRG:0FBF 04 85 B8 A9 01 85 B9 A5 8F 85 01 A2 00 C6 01 F0 .byte $0C, $A9, $02, $95, $BA, $A9, $00, $95, $BB, $E8, $E8, $D0, $F0, $A9, $00, $E0 ; CPU:$CFCF PRG:0FCF 0C A9 02 95 BA A9 00 95 BB E8 E8 D0 F0 A9 00 E0 .byte $06, $F0, $08, $95, $BA, $95, $BB, $E8, $E8, $D0, $F4, $A5, $90, $85, $D3, $E6 ; CPU:$CFDF PRG:0FDF 06 F0 08 95 BA 95 BB E8 E8 D0 F4 A5 90 85 D3 E6 .byte $00, $A6, $00, $BD, $75, $EB, $85, $93, $E6, $00, $A6, $00, $BD, $75, $EB, $85 ; CPU:$CFEF PRG:0FEF 00 A6 00 BD 75 EB 85 93 E6 00 A6 00 BD 75 EB 85 .byte $96, $A5, $A5, $85, $B5, $A5, $A6, $85, $B6, $A5, $AF, $85, $C4, $85, $C6, $85 ; CPU:$CFFF PRG:0FFF 96 A5 A5 85 B5 A5 A6 85 B6 A5 AF 85 C4 85 C6 85 .byte $C8, $85, $CA, $A5, $B0, $85, $C5, $85, $C7, $85, $C9, $85, $CB, $A9, $01, $85 ; CPU:$D00F PRG:100F C8 85 CA A5 B0 85 C5 85 C7 85 C9 85 CB A9 01 85 .byte $50, $85, $51, $A0, $00, $A2, $00, $A5, $46, $25, $47, $F0, $02, $A0, $09, $B9 ; CPU:$D01F PRG:101F 50 85 51 A0 00 A2 00 A5 46 25 47 F0 02 A0 09 B9 .byte $BE, $D0, $9D, $6B, $02, $C8, $E8, $E0, $09, $D0, $F4, $A0, $00, $B9, $B2, $D0 ; CPU:$D02F PRG:102F BE D0 9D 6B 02 C8 E8 E0 09 D0 F4 A0 00 B9 B2 D0 .byte $99, $32, $00, $C8, $C0, $0C, $D0, $F5, $A0, $00, $B9, $6C, $00, $C9, $02, $D0 ; CPU:$D03F PRG:103F 99 32 00 C8 C0 0C D0 F5 A0 00 B9 6C 00 C9 02 D0 .byte $05, $A9, $01, $99, $6C, $00, $C8, $C0, $04, $D0, $EF, $84, $C0, $A9, $FF, $85 ; CPU:$D04F PRG:104F 05 A9 01 99 6C 00 C8 C0 04 D0 EF 84 C0 A9 FF 85 .byte $89, $A9, $88, $8D, $00, $20, $85, $43, $4C, $66, $CA, $A0, $22, $A5, $46, $25 ; CPU:$D05F PRG:105F 89 A9 88 8D 00 20 85 43 4C 66 CA A0 22 A5 46 25 .byte $47, $F0, $02, $A0, $2A, $84, $00, $A9, $56, $85, $01, $A9, $0A, $85, $02, $AD ; CPU:$D06F PRG:106F 47 F0 02 A0 2A 84 00 A9 56 85 01 A9 0A 85 02 AD .byte $02, $20, $A5, $00, $8D, $06, $20, $A5, $01, $8D, $06, $20, $A9, $06, $85, $03 ; CPU:$D07F PRG:107F 02 20 A5 00 8D 06 20 A5 01 8D 06 20 A9 06 85 03 .byte $A9, $20, $8D, $07, $20, $C6, $03, $D0, $F9, $A9, $2D, $8D, $07, $20, $8D, $07 ; CPU:$D08F PRG:108F A9 20 8D 07 20 C6 03 D0 F9 A9 2D 8D 07 20 8D 07 .byte $20, $A5, $01, $18, $69, $20, $85, $01, $A5, $00, $69, $00, $85, $00, $C6, $02 ; CPU:$D09F PRG:109F 20 A5 01 18 69 20 85 01 A5 00 69 00 85 00 C6 02 .byte $D0, $CD, $60, $04, $0C, $0A, $0A, $0A, $00, $00, $00, $01, $02, $03, $00, $21 ; CPU:$D0AF PRG:10AF D0 CD 60 04 0C 0A 0A 0A 00 00 00 01 02 03 00 21 .byte $36, $20, $F7, $B0, $B3, $B2, $20, $B6, $29, $B6, $29, $77, $B1, $B3, $B2, $28 ; CPU:$D0BF PRG:10BF 36 20 F7 B0 B3 B2 20 B6 29 B6 29 77 B1 B3 B2 28 .byte $B6, $0F, $20, $0F, $06, $0F, $11, $0F, $27, $0F, $16, $26, $06, $0F, $19, $17 ; CPU:$D0CF PRG:10CF B6 0F 20 0F 06 0F 11 0F 27 0F 16 26 06 0F 19 17 .byte $12, $0F, $27, $20, $06, $0F, $11, $20, $33, $0F, $21, $20, $21, $0F, $09, $20 ; CPU:$D0DF PRG:10DF 12 0F 27 20 06 0F 11 20 33 0F 21 20 21 0F 09 20 .byte $17, $AD, $02, $20, $A9, $23, $8D, $06, $20, $A9, $C0, $8D, $06, $20, $A2, $01 ; CPU:$D0EF PRG:10EF 17 AD 02 20 A9 23 8D 06 20 A9 C0 8D 06 20 A2 01 .byte $A0, $00, $B9, $1F, $D1, $8D, $07, $20, $C8, $C0, $40, $D0, $F5, $CA, $F0, $01 ; CPU:$D0FF PRG:10FF A0 00 B9 1F D1 8D 07 20 C8 C0 40 D0 F5 CA F0 01 .byte $60, $AD, $02, $20, $A9, $2B, $8D, $06, $20, $A9, $C0, $8D, $06, $20, $D0, $E0 ; CPU:$D10F PRG:110F 60 AD 02 20 A9 2B 8D 06 20 A9 C0 8D 06 20 D0 E0 .byte $55, $55, $55, $55, $55, $11, $00, $00, $55, $55, $55, $55, $55, $11, $00, $00 ; CPU:$D11F PRG:111F 55 55 55 55 55 11 00 00 55 55 55 55 55 11 00 00 .byte $55, $55, $55, $55, $55, $11, $00, $00, $55, $55, $55, $55, $55, $51, $50, $50 ; CPU:$D12F PRG:112F 55 55 55 55 55 11 00 00 55 55 55 55 55 51 50 50 .byte $55, $55, $55, $55, $55, $11, $05, $05, $55, $55, $55, $55, $55, $11, $00, $00 ; CPU:$D13F PRG:113F 55 55 55 55 55 11 05 05 55 55 55 55 55 11 00 00 .byte $55, $55, $55, $55, $55, $55, $55, $55, $55, $55, $55, $55, $55, $55, $55, $55 ; CPU:$D14F PRG:114F 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 .byte $A5, $89, $30, $3C, $E6, $8A, $A9, $3C, $C5, $8A, $D0, $1C, $A9, $00, $85, $8A ; CPU:$D15F PRG:115F A5 89 30 3C E6 8A A9 3C C5 8A D0 1C A9 00 85 8A .byte $C6, $89, $10, $14, $85, $88, $A2, $00, $B5, $39, $29, $FC, $85, $00, $8A, $05 ; CPU:$D16F PRG:116F C6 89 10 14 85 88 A2 00 B5 39 29 FC 85 00 8A 05 .byte $00, $95, $39, $E8, $E0, $04, $D0, $F0, $A5, $89, $C9, $02, $B0, $12, $A2, $11 ; CPU:$D17F PRG:117F 00 95 39 E8 E0 04 D0 F0 A5 89 C9 02 B0 12 A2 11 .byte $A5, $8A, $29, $08, $D0, $02, $A2, $20, $8E, $AE, $02, $A9, $0F, $8D, $A9, $02 ; CPU:$D18F PRG:118F A5 8A 29 08 D0 02 A2 20 8E AE 02 A9 0F 8D A9 02 .byte $A5, $88, $D0, $2F, $A5, $CF, $C9, $FF, $F0, $29, $E6, $D1, $A5, $D1, $C9, $3C ; CPU:$D19F PRG:119F A5 88 D0 2F A5 CF C9 FF F0 29 E6 D1 A5 D1 C9 3C .byte $D0, $21, $A9, $00, $85, $D1, $C6, $CF, $10, $19, $E6, $D0, $A5, $D0, $29, $01 ; CPU:$D1AF PRG:11AF D0 21 A9 00 85 D1 C6 CF 10 19 E6 D0 A5 D0 29 01 .byte $F0, $07, $20, $4D, $E0, $A9, $0F, $D0, $02, $A5, $D2, $85, $87, $A6, $D0, $B5 ; CPU:$D1BF PRG:11BF F0 07 20 4D E0 A9 0F D0 02 A5 D2 85 87 A6 D0 B5 .byte $97, $85, $CF, $A5, $D3, $F0, $1F, $18, $65, $6A, $C9, $C0, $D0, $18, $20, $49 ; CPU:$D1CF PRG:11CF 97 85 CF A5 D3 F0 1F 18 65 6A C9 C0 D0 18 20 49 .byte $D2, $A5, $D3, $A2, $00, $D5, $8F, $D0, $08, $E8, $B5, $8F, $85, $D3, $4C, $F5 ; CPU:$D1DF PRG:11DF D2 A5 D3 A2 00 D5 8F D0 08 E8 B5 8F 85 D3 4C F5 .byte $D1, $E8, $E0, $04, $D0, $EF, $E6, $D6, $A9, $60, $C5, $D6, $D0, $13, $A9, $00 ; CPU:$D1EF PRG:11EF D1 E8 E0 04 D0 EF E6 D6 A9 60 C5 D6 D0 13 A9 00 .byte $85, $D6, $E6, $D5, $A5, $D5, $C5, $96, $D0, $07, $A9, $00, $85, $D5, $20, $49 ; CPU:$D1FF PRG:11FF 85 D6 E6 D5 A5 D5 C5 96 D0 07 A9 00 85 D5 20 49 .byte $D2, $A6, $D4, $E0, $02, $F0, $17, $B5, $8D, $C5, $6A, $D0, $11, $E6, $D4, $A9 ; CPU:$D20F PRG:120F D2 A6 D4 E0 02 F0 17 B5 8D C5 6A D0 11 E6 D4 A9 .byte $01, $85, $D2, $8A, $0A, $AA, $B5, $AB, $85, $CA, $B5, $AC, $85, $CB, $05, $D7 ; CPU:$D21F PRG:121F 01 85 D2 8A 0A AA B5 AB 85 CA B5 AC 85 CB 05 D7 .byte $05, $D8, $F0, $15, $C6, $D8, $D0, $11, $A5, $D7, $F0, $07, $C6, $D7, $A9, $3C ; CPU:$D22F PRG:122F 05 D8 F0 15 C6 D8 D0 11 A5 D7 F0 07 C6 D7 A9 3C .byte $85, $D8, $60, $85, $2E, $85, $30, $85, $8B, $60 ; CPU:$D23F PRG:123F 85 D8 60 85 2E 85 30 85 8B 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_Entry_D249 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_Entry_D249: ldx #$00 ; CPU:$D249 PRG:1249 A2 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_OnNonzero_D24B ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_OnNonzero_D24B: lda ZpBA,x ; CPU:$D24B PRG:124B B5 BA bne Sub_C9B9_OnNonzero_D254 ; CPU:$D24D PRG:124D D0 05 lda #$02 ; CPU:$D24F PRG:124F A9 02 sta ZpBA,x ; CPU:$D251 PRG:1251 95 BA rts ; CPU:$D253 PRG:1253 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_C9B9_OnNonzero_D254 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_C9B9_OnNonzero_D254: inx ; CPU:$D254 PRG:1254 E8 inx ; CPU:$D255 PRG:1255 E8 cpx #$06 ; CPU:$D256 PRG:1256 E0 06 bne Sub_C9B9_OnNonzero_D24B ; CPU:$D258 PRG:1258 D0 F1 rts ; CPU:$D25A PRG:125A 60 ; ---- data $D25B-$D364 (266 bytes) ---- .byte $24, $25, $26, $27, $28, $29, $2A, $2B, $A5, $6A, $D0, $01, $60, $A9, $1E, $85 ; CPU:$D25B PRG:125B 24 25 26 27 28 29 2A 2B A5 6A D0 01 60 A9 1E 85 .byte $00, $A9, $00, $85, $01, $A9, $01, $85, $02, $A2, $00, $B5, $B8, $C9, $04, $D0 ; CPU:$D26B PRG:126B 00 A9 00 85 01 A9 01 85 02 A2 00 B5 B8 C9 04 D0 .byte $32, $A0, $00, $A5, $1A, $D1, $00, $B0, $07, $B1, $00, $38, $E5, $1A, $B0, $02 ; CPU:$D27B PRG:127B 32 A0 00 A5 1A D1 00 B0 07 B1 00 38 E5 1A B0 02 .byte $F1, $00, $C9, $0A, $B0, $1D, $85, $03, $A0, $02, $A5, $1C, $D1, $00, $B0, $07 ; CPU:$D28B PRG:128B F1 00 C9 0A B0 1D 85 03 A0 02 A5 1C D1 00 B0 07 .byte $B1, $00, $38, $E5, $1C, $B0, $02, $F1, $00, $C9, $0A, $B0, $06, $65, $03, $C9 ; CPU:$D29B PRG:129B B1 00 38 E5 1C B0 02 F1 00 C9 0A B0 06 65 03 C9 .byte $05, $90, $10, $E8, $E8, $A5, $00, $18, $69, $04, $85, $00, $06, $02, $E0, $0A ; CPU:$D2AB PRG:12AB 05 90 10 E8 E8 A5 00 18 69 04 85 00 06 02 E0 0A .byte $D0, $B9, $60, $E0, $08, $F0, $45, $A5, $02, $25, $88, $F0, $2E, $8A, $4A, $85 ; CPU:$D2BB PRG:12BB D0 B9 60 E0 08 F0 45 A5 02 25 88 F0 2E 8A 4A 85 .byte $03, $A4, $D9, $B9, $2B, $D3, $A4, $03, $99, $33, $00, $A9, $00, $85, $32, $A4 ; CPU:$D2CB PRG:12CB 03 A4 D9 B9 2B D3 A4 03 99 33 00 A9 00 85 32 A4 .byte $D9, $B9, $3B, $D3, $85, $DD, $B9, $37, $D3, $85, $DE, $E6, $D9, $A9, $08, $95 ; CPU:$D2DB PRG:12DB D9 B9 3B D3 85 DD B9 37 D3 85 DE E6 D9 A9 08 95 .byte $B8, $8D, $07, $06, $A9, $06, $85, $3F, $4C, $A5, $E0, $A9, $08, $85, $3F, $A9 ; CPU:$D2EB PRG:12EB B8 8D 07 06 A9 06 85 3F 4C A5 E0 A9 08 85 3F A9 .byte $12, $85, $32, $A9, $80, $85, $DB, $A9, $00, $85, $87, $60, $A5, $8B, $F0, $01 ; CPU:$D2FB PRG:12FB 12 85 32 A9 80 85 DB A9 00 85 87 60 A5 8B F0 01 .byte $60, $85, $D7, $A9, $80, $85, $D8, $85, $8B, $8D, $06, $06, $A4, $93, $B9, $3F ; CPU:$D30B PRG:130B 60 85 D7 A9 80 85 D8 85 8B 8D 06 06 A4 93 B9 3F .byte $D3, $85, $DD, $B9, $47, $D3, $85, $DE, $B9, $2F, $D3, $85, $37, $4C, $A5, $E0 ; CPU:$D31B PRG:131B D3 85 DD B9 47 D3 85 DE B9 2F D3 85 37 4C A5 E0 .byte $2D, $2F, $32, $34, $2C, $2E, $30, $31, $33, $35, $36, $37, $00, $00, $00, $01 ; CPU:$D32B PRG:132B 2D 2F 32 34 2C 2E 30 31 33 35 36 37 00 00 00 01 .byte $02, $04, $08, $06, $01, $03, $05, $07, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D33B PRG:133B 02 04 08 06 01 03 05 07 00 00 00 00 00 00 00 00 .byte $01, $02, $03, $05, $A5, $48, $F0, $03, $4C, $C5, $D4, $A5, $4F, $29, $F0, $F0 ; CPU:$D34B PRG:134B 01 02 03 05 A5 48 F0 03 4C C5 D4 A5 4F 29 F0 F0 .byte $35, $A2, $FF, $E8, $0A, $90, $FC, $BD, $C1, $D4 ; CPU:$D35B PRG:135B 35 A2 FF E8 0A 90 FC BD C1 D4 ; ----------------------------------------------------------------------------- ; Routine: Sub_D365_Entry_D365 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D365_Entry_D365: sta EntityIndex ; CPU:$D365 PRG:1365 85 50 clc ; CPU:$D367 PRG:1367 18 adc #$02 ; CPU:$D368 PRG:1368 69 02 and #$03 ; CPU:$D36A PRG:136A 29 03 cmp OtherEntityIndex ; CPU:$D36C PRG:136C C5 51 bne Sub_D365_OnNonzero_D388 ; CPU:$D36E PRG:136E D0 18 lda Zp1A ; CPU:$D370 PRG:1370 A5 1A ora Zp1C ; CPU:$D372 PRG:1372 05 1C and #$07 ; CPU:$D374 PRG:1374 29 07 bne Sub_D365_OnNonzero_D381 ; CPU:$D376 PRG:1376 D0 09 ldy EntityIndex ; CPU:$D378 PRG:1378 A4 50 lda $022B,y ; CPU:$D37A PRG:137A B9 2B 02 and #$F0 ; CPU:$D37D PRG:137D 29 F0 bne Sub_D365_OnNonzero_D388 ; CPU:$D37F PRG:137F D0 07 ; ----------------------------------------------------------------------------- ; Routine: Sub_D365_OnNonzero_D381 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D365_OnNonzero_D381: lda EntityIndex ; CPU:$D381 PRG:1381 A5 50 sta OtherEntityIndex ; CPU:$D383 PRG:1383 85 51 jmp Sub_D395_OnZero_D395 ; ; ----------------------------------------------------------------------------- ; Routine: Sub_D365_OnNonzero_D388 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D365_OnNonzero_D388: ldx EntityIndex ; CPU:$D388 PRG:1388 A6 50 lda $022B,x ; CPU:$D38A PRG:138A BD 2B 02 and #$F0 ; CPU:$D38D PRG:138D 29 F0 beq Sub_D395_OnZero_D395 ; CPU:$D38F PRG:138F F0 04 lda OtherEntityIndex ; CPU:$D391 PRG:1391 A5 51 sta EntityIndex ; CPU:$D393 PRG:1393 85 50 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnZero_D395 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnZero_D395: ldx #$04 ; CPU:$D395 PRG:1395 A2 04 lda Zp88 ; CPU:$D397 PRG:1397 A5 88 bne Sub_D395_OnNonzero_D39D ; CPU:$D399 PRG:1399 D0 02 ldx #$0A ; CPU:$D39B PRG:139B A2 0A ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D39D ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D39D: lda $022A ; CPU:$D39D PRG:139D AD 2A 02 cmp #$01 ; CPU:$D3A0 PRG:13A0 C9 01 beq Sub_D395_OnZero_D3B4 ; CPU:$D3A2 PRG:13A2 F0 10 cmp #$02 ; CPU:$D3A4 PRG:13A4 C9 02 beq Sub_D395_OnZero_D3B4 ; CPU:$D3A6 PRG:13A6 F0 0C dex ; CPU:$D3A8 PRG:13A8 CA dex ; CPU:$D3A9 PRG:13A9 CA cmp #$03 ; CPU:$D3AA PRG:13AA C9 03 beq Sub_D395_OnZero_D3B4 ; CPU:$D3AC PRG:13AC F0 06 cmp #$09 ; CPU:$D3AE PRG:13AE C9 09 beq Sub_D395_OnZero_D3B4 ; CPU:$D3B0 PRG:13B0 F0 02 dex ; CPU:$D3B2 PRG:13B2 CA dex ; CPU:$D3B3 PRG:13B3 CA ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnZero_D3B4 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnZero_D3B4: lda Zp9F,x ; CPU:$D3B4 PRG:13B4 B5 9F sta ZpB5 ; CPU:$D3B6 PRG:13B6 85 B5 lda ZpA0,x ; CPU:$D3B8 PRG:13B8 B5 A0 sta ZpB6 ; CPU:$D3BA PRG:13BA 85 B6 lda OtherEntityIndex ; CPU:$D3BC PRG:13BC A5 51 asl a ; CPU:$D3BE PRG:13BE 0A tay ; CPU:$D3BF PRG:13BF A8 lda $D3CD,y ; CPU:$D3C0 PRG:13C0 B9 CD D3 sta DispatchPtrLo ; CPU:$D3C3 PRG:13C3 85 10 lda $D3CE,y ; CPU:$D3C5 PRG:13C5 B9 CE D3 sta DispatchPtrHi ; CPU:$D3C8 PRG:13C8 85 11 jmp (DispatchPtrLo) ; CPU:$D3CA PRG:13CA 6C 10 00 ; ---- data $D3CD-$D4C4 (248 bytes) ---- ; referenced by `lda $D3CD,y` at $D3C0 (operand $D3CD falls inside this region) ; referenced by `lda $D3CE,y` at $D3C5 (operand $D3CE falls inside this region) .byte $D5, $D3, $D9, $D3, $F4, $D3, $F0, $D3, $A2, $02, $D0, $02, $A2, $00, $B5, $1B ; CPU:$D3CD PRG:13CD D5 D3 D9 D3 F4 D3 F0 D3 A2 02 D0 02 A2 00 B5 1B .byte $38, $E5, $B5, $95, $1B, $A9, $00, $B0, $02, $A9, $01, $18, $65, $B6, $85, $CC ; CPU:$D3DD PRG:13DD 38 E5 B5 95 1B A9 00 B0 02 A9 01 18 65 B6 85 CC .byte $4C, $03, $D4, $A2, $00, $F0, $02, $A2, $02, $B5, $1B, $18, $65, $B5, $95, $1B ; CPU:$D3ED PRG:13ED 4C 03 D4 A2 00 F0 02 A2 02 B5 1B 18 65 B5 95 1B .byte $A9, $00, $65, $B6, $85, $CC, $C6, $CC, $10, $01, $60, $A5, $51, $0A, $A8, $B9 ; CPU:$D3FD PRG:13FD A9 00 65 B6 85 CC C6 CC 10 01 60 A5 51 0A A8 B9 .byte $19, $D4, $85, $10, $B9, $1A, $D4, $85, $11, $6C, $10, $00, $59, $D4, $4F, $D4 ; CPU:$D40D PRG:140D 19 D4 85 10 B9 1A D4 85 11 6C 10 00 59 D4 4F D4 .byte $2B, $D4, $21, $D4, $A2, $00, $86, $00, $A9, $03, $85, $01, $D0, $06, $A2, $02 ; CPU:$D41D PRG:141D 2B D4 21 D4 A2 00 86 00 A9 03 85 01 D0 06 A2 02 .byte $86, $00, $86, $01, $B5, $1A, $18, $69, $01, $95, $1A, $29, $04, $D0, $44, $A6 ; CPU:$D42D PRG:142D 86 00 86 01 B5 1A 18 69 01 95 1A 29 04 D0 44 A6 .byte $01, $BD, $2B, $02, $29, $F0, $F0, $3B, $A6, $00, $B5, $1A, $29, $FC, $95, $1A ; CPU:$D43D PRG:143D 01 BD 2B 02 29 F0 F0 3B A6 00 B5 1A 29 FC 95 1A .byte $D0, $31, $A2, $00, $86, $00, $A9, $01, $85, $01, $D0, $08, $A2, $02, $86, $00 ; CPU:$D44D PRG:144D D0 31 A2 00 86 00 A9 01 85 01 D0 08 A2 02 86 00 .byte $A9, $00, $85, $01, $B5, $1A, $38, $E9, $01, $95, $1A, $29, $04, $F0, $14, $A6 ; CPU:$D45D PRG:145D A9 00 85 01 B5 1A 38 E9 01 95 1A 29 04 F0 14 A6 .byte $01, $BD, $2B, $02, $29, $F0, $F0, $0B, $A6, $00, $B5, $1A, $18, $69, $04, $29 ; CPU:$D46D PRG:146D 01 BD 2B 02 29 F0 F0 0B A6 00 B5 1A 18 69 04 29 .byte $FC, $95, $1A, $A5, $1A, $C9, $18, $90, $0A, $C9, $A9, $B0, $06, $A5, $38, $29 ; CPU:$D47D PRG:147D FC 95 1A A5 1A C9 18 90 0A C9 A9 B0 06 A5 38 29 .byte $DF, $90, $04, $A9, $20, $05, $38, $85, $38, $A5, $1A, $C9, $0B, $B0, $06, $A9 ; CPU:$D48D PRG:148D DF 90 04 A9 20 05 38 85 38 A5 1A C9 0B B0 06 A9 .byte $BF, $85, $1A, $D0, $08, $C9, $C0, $90, $04, $A9, $0B, $85, $1A, $A5, $1A, $05 ; CPU:$D49D PRG:149D BF 85 1A D0 08 C9 C0 90 04 A9 0B 85 1A A5 1A 05 .byte $1C, $29, $07, $D0, $0C, $A5, $50, $C5, $51, $F0, $06, $85, $51, $E6, $CC, $E6 ; CPU:$D4AD PRG:14AD 1C 29 07 D0 0C A5 50 C5 51 F0 06 85 51 E6 CC E6 .byte $CC, $4C, $03, $D4, $03, $01, $02, $00 ; CPU:$D4BD PRG:14BD CC 4C 03 D4 03 01 02 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_Entry_D4C5 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_Entry_D4C5: ldy AnimFrameIndex ; CPU:$D4C5 PRG:14C5 A4 E4 dec AnimFrameCounter ; CPU:$D4C7 PRG:14C7 C6 E3 bne Sub_D395_OnNonzero_D4D6 ; CPU:$D4C9 PRG:14C9 D0 0B inc AnimFrameIndex ; CPU:$D4CB PRG:14CB E6 E4 inc AnimFrameIndex ; CPU:$D4CD PRG:14CD E6 E4 ldy AnimFrameIndex ; CPU:$D4CF PRG:14CF A4 E4 lda $D4DE,y ; CPU:$D4D1 PRG:14D1 B9 DE D4 sta AnimFrameCounter ; CPU:$D4D4 PRG:14D4 85 E3 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D4D6 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D4D6: lda $D4DF,y ; CPU:$D4D6 PRG:14D6 B9 DF D4 and #$03 ; CPU:$D4D9 PRG:14D9 29 03 jmp Sub_D365_Entry_D365 ; ; ---- data $D4DE-$D722 (581 bytes) ---- ; referenced by `lda $D4DE,y` at $D4D1 (operand $D4DE falls inside this region) ; referenced by `lda $D4DF,y` at $D4D6 (operand $D4DF falls inside this region) .byte $00, $01, $D0, $00, $28, $01, $28, $02, $90, $03, $38, $00, $20, $03, $18, $01 ; CPU:$D4DE PRG:14DE 00 01 D0 00 28 01 28 02 90 03 38 00 20 03 18 01 .byte $60, $02, $30, $01, $10, $02, $48, $01, $18, $02, $40, $01, $20, $02, $18, $00 ; CPU:$D4EE PRG:14EE 60 02 30 01 10 02 48 01 18 02 40 01 20 02 18 00 .byte $20, $03, $40, $02, $38, $01, $18, $02, $E0, $03, $30, $00, $28, $01, $28, $02 ; CPU:$D4FE PRG:14FE 20 03 40 02 38 01 18 02 E0 03 30 00 28 01 28 02 .byte $20, $02, $80, $03, $40, $00, $40, $01, $A2, $00, $A9, $2F, $85, $00, $A9, $02 ; CPU:$D50E PRG:150E 20 02 80 03 40 00 40 01 A2 00 A9 2F 85 00 A9 02 .byte $85, $01, $A9, $1E, $85, $02, $A9, $00, $85, $03, $A9, $01, $85, $04, $20, $46 ; CPU:$D51E PRG:151E 85 01 A9 1E 85 02 A9 00 85 03 A9 01 85 04 20 46 .byte $D5, $A5, $00, $18, $69, $04, $85, $00, $A5, $02, $18, $69, $04, $85, $02, $06 ; CPU:$D52E PRG:152E D5 A5 00 18 69 04 85 00 A5 02 18 69 04 85 02 06 .byte $04, $E8, $E8, $E0, $08, $D0, $E7, $60, $B4, $B8, $B9, $55, $D5, $85, $10, $B9 ; CPU:$D53E PRG:153E 04 E8 E8 E0 08 D0 E7 60 B4 B8 B9 55 D5 85 10 B9 .byte $56, $D5, $85, $11, $6C, $10, $00, $94, $D8, $44, $D8, $60, $D5, $60, $D5, $5F ; CPU:$D54E PRG:154E 56 D5 85 11 6C 10 00 94 D8 44 D8 60 D5 60 D5 5F .byte $D5, $60, $20, $E0, $D7, $B5, $B9, $0A, $A8, $B9, $74, $D5, $85, $10, $B9, $75 ; CPU:$D55E PRG:155E D5 60 20 E0 D7 B5 B9 0A A8 B9 74 D5 85 10 B9 75 .byte $D5, $85, $11, $6C, $10, $00, $92, $D5, $96, $D5, $7C, $D5, $80, $D5, $A0, $03 ; CPU:$D56E PRG:156E D5 85 11 6C 10 00 92 D5 96 D5 7C D5 80 D5 A0 03 .byte $D0, $02, $A0, $01, $B1, $02, $18, $75, $C2, $91, $02, $A9, $00, $75, $C3, $85 ; CPU:$D57E PRG:157E D0 02 A0 01 B1 02 18 75 C2 91 02 A9 00 75 C3 85 .byte $CC, $4C, $AA, $D5, $A0, $03, $D0, $02, $A0, $01, $B1, $02, $38, $F5, $C2, $91 ; CPU:$D58E PRG:158E CC 4C AA D5 A0 03 D0 02 A0 01 B1 02 38 F5 C2 91 .byte $02, $A9, $00, $B0, $02, $A9, $01, $18, $75, $C3, $85, $CC, $C6, $CC, $10, $01 ; CPU:$D59E PRG:159E 02 A9 00 B0 02 A9 01 18 75 C3 85 CC C6 CC 10 01 .byte $60, $B5, $B9, $0A, $A8, $B9, $C0, $D5, $85, $10, $B9, $C1, $D5, $85, $11, $6C ; CPU:$D5AE PRG:15AE 60 B5 B9 0A A8 B9 C0 D5 85 10 B9 C1 D5 85 11 6C .byte $10, $00, $C8, $D5, $DC, $D5, $CE, $D5, $D6, $D5, $A9, $FF, $85, $05, $D0, $04 ; CPU:$D5BE PRG:15BE 10 00 C8 D5 DC D5 CE D5 D6 D5 A9 FF 85 05 D0 04 .byte $A9, $01, $85, $05, $A0, $02, $D0, $0C, $A9, $01, $85, $05, $D0, $04, $A9, $FF ; CPU:$D5CE PRG:15CE A9 01 85 05 A0 02 D0 0C A9 01 85 05 D0 04 A9 FF .byte $85, $05, $A0, $00, $B1, $02, $18, $65, $05, $91, $02, $A0, $00, $B1, $02, $C9 ; CPU:$D5DE PRG:15DE 85 05 A0 00 B1 02 18 65 05 91 02 A0 00 B1 02 C9 .byte $0A, $D0, $06, $A9, $BF, $91, $02, $D0, $12, $C9, $C0, $D0, $06, $A9, $0B, $91 ; CPU:$D5EE PRG:15EE 0A D0 06 A9 BF 91 02 D0 12 C9 C0 D0 06 A9 0B 91 .byte $02, $D0, $08, $C9, $18, $90, $04, $C9, $A9, $90, $04, $A9, $20, $D0, $02, $A9 ; CPU:$D5FE PRG:15FE 02 D0 08 C9 18 90 04 C9 A9 90 04 A9 20 D0 02 A9 .byte $00, $85, $05, $8A, $4A, $A8, $B9, $39, $00, $29, $DF, $05, $05, $99, $39, $00 ; CPU:$D60E PRG:160E 00 85 05 8A 4A A8 B9 39 00 29 DF 05 05 99 39 00 .byte $A0, $00, $B1, $02, $A0, $02, $11, $02, $29, $07, $F0, $03, $4C, $AA, $D5, $A0 ; CPU:$D61E PRG:161E A0 00 B1 02 A0 02 11 02 29 07 F0 03 4C AA D5 A0 .byte $00, $B1, $02, $C9, $60, $D0, $25, $A0, $02, $B1, $02, $C9, $70, $D0, $1D, $A9 ; CPU:$D62E PRG:162E 00 B1 02 C9 60 D0 25 A0 02 B1 02 C9 70 D0 1D A9 .byte $02, $95, $B8, $A9, $00, $18, $E5, $04, $25, $88, $85, $88, $8A, $4A, $A8, $85 ; CPU:$D63E PRG:163E 02 95 B8 A9 00 18 E5 04 25 88 85 88 8A 4A A8 85 .byte $05, $B9, $39, $00, $29, $FC, $05, $05, $99, $39, $00, $60, $B5, $B8, $C9, $06 ; CPU:$D64E PRG:164E 05 B9 39 00 29 FC 05 05 99 39 00 60 B5 B8 C9 06 .byte $D0, $0B, $A9, $60, $85, $CD, $A9, $6F, $85, $CE, $4C, $37, $D7, $A5, $04, $25 ; CPU:$D65E PRG:165E D0 0B A9 60 85 CD A9 6F 85 CE 4C 37 D7 A5 04 25 .byte $88, $D0, $58, $A5, $04, $25, $87, $D0, $17, $8A, $A8, $B9, $86, $D6, $85, $CD ; CPU:$D66E PRG:166E 88 D0 58 A5 04 25 87 D0 17 8A A8 B9 86 D6 85 CD .byte $B9, $87, $D6, $85, $CE, $4C, $37, $D7, $A8, $08, $18, $08, $A8, $D0, $18, $D0 ; CPU:$D67E PRG:167E B9 87 D6 85 CE 4C 37 D7 A8 08 18 08 A8 D0 18 D0 .byte $8A, $A8, $B9, $9D, $D6, $85, $10, $B9, $9E, $D6, $85, $11, $6C, $10, $00, $FA ; CPU:$D68E PRG:168E 8A A8 B9 9D D6 85 10 B9 9E D6 85 11 6C 10 00 FA .byte $D6, $04, $D7, $23, $D7, $A5, $D6, $A5, $1A, $38, $E5, $2A, $B0, $07, $85, $05 ; CPU:$D69E PRG:169E D6 04 D7 23 D7 A5 D6 A5 1A 38 E5 2A B0 07 85 05 .byte $A9, $00, $38, $E5, $05, $C9, $20, $B0, $43, $A5, $1C, $38, $E5, $2C, $B0, $07 ; CPU:$D6AE PRG:16AE A9 00 38 E5 05 C9 20 B0 43 A5 1C 38 E5 2C B0 07 .byte $85, $05, $A9, $00, $38, $E5, $05, $C9, $20, $B0, $31, $A5, $4B, $85, $05, $A9 ; CPU:$D6BE PRG:16BE 85 05 A9 00 38 E5 05 C9 20 B0 31 A5 4B 85 05 A9 .byte $05, $85, $06, $C6, $06, $D0, $04, $A9, $02, $D0, $1C, $E6, $05, $A5, $05, $29 ; CPU:$D6CE PRG:16CE 05 85 06 C6 06 D0 04 A9 02 D0 1C E6 05 A5 05 29 .byte $03, $A8, $B1, $00, $29, $F8, $D0, $EB, $A5, $05, $18, $69, $02, $29, $03, $D5 ; CPU:$D6DE PRG:16DE 03 A8 B1 00 29 F8 D0 EB A5 05 18 69 02 29 03 D5 .byte $B9, $F0, $E0, $A5, $05, $29, $03, $95, $B9, $4C, $AA, $D5, $A5, $1A, $85, $CD ; CPU:$D6EE PRG:16EE B9 F0 E0 A5 05 29 03 95 B9 4C AA D5 A5 1A 85 CD .byte $A5, $1C, $85, $CE, $D0, $33, $A5, $51, $0A, $A8, $B9, $1B, $D7, $18, $65, $1A ; CPU:$D6FE PRG:16FE A5 1C 85 CE D0 33 A5 51 0A A8 B9 1B D7 18 65 1A .byte $85, $CD, $B9, $1C, $D7, $18, $65, $1C, $85, $CE, $4C, $37, $D7, $00, $E8, $E8 ; CPU:$D70E PRG:170E 85 CD B9 1C D7 18 65 1C 85 CE 4C 37 D7 00 E8 E8 .byte $00, $00, $18, $18, $00 ; CPU:$D71E PRG:171E 00 00 18 18 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_Entry_D723 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_Entry_D723: lda Zp1A ; CPU:$D723 PRG:1723 A5 1A sec ; CPU:$D725 PRG:1725 38 sbc Zp1E ; CPU:$D726 PRG:1726 E5 1E clc ; CPU:$D728 PRG:1728 18 adc Zp1A ; CPU:$D729 PRG:1729 65 1A sta EntityDeltaX ; CPU:$D72B PRG:172B 85 CD lda Zp1C ; CPU:$D72D PRG:172D A5 1C sec ; CPU:$D72F PRG:172F 38 sbc Zp20 ; CPU:$D730 PRG:1730 E5 20 clc ; CPU:$D732 PRG:1732 18 adc Zp1C ; CPU:$D733 PRG:1733 65 1C sta EntityDeltaY ; CPU:$D735 PRG:1735 85 CE lda ZpB8,x ; CPU:$D737 PRG:1737 B5 B8 sec ; CPU:$D739 PRG:1739 38 sbc #$04 ; CPU:$D73A PRG:173A E9 04 tay ; CPU:$D73C PRG:173C A8 lda $D840,y ; CPU:$D73D PRG:173D B9 40 D8 sta Zp0A ; CPU:$D740 PRG:1740 85 0A lda $D841,y ; CPU:$D742 PRG:1742 B9 41 D8 sta Zp0B ; CPU:$D745 PRG:1745 85 0B jsr Sub_E470_Entry_E470 ; lda Zp0C ; CPU:$D74A PRG:174A A5 0C cmp #$FF ; CPU:$D74C PRG:174C C9 FF bne Sub_D395_OnNonzero_D754 ; CPU:$D74E PRG:174E D0 04 lda #$02 ; CPU:$D750 PRG:1750 A9 02 bne Sub_D395_JoinBranchPaths_D75C ; CPU:$D752 PRG:1752 D0 08 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D754 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D754: lda Zp0D ; CPU:$D754 PRG:1754 A5 0D cmp #$FF ; CPU:$D756 PRG:1756 C9 FF bne Sub_D395_OnNonzero_D75F ; CPU:$D758 PRG:1758 D0 05 lda Zp0C ; CPU:$D75A PRG:175A A5 0C ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_JoinBranchPaths_D75C ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_JoinBranchPaths_D75C: sta ZpB9,x ; CPU:$D75C PRG:175C 95 B9 rts ; CPU:$D75E PRG:175E 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D75F ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D75F: ldy #$00 ; CPU:$D75F PRG:175F A0 00 sty Zp05 ; CPU:$D761 PRG:1761 84 05 lda EntityDeltaX ; CPU:$D763 PRG:1763 A5 CD sec ; CPU:$D765 PRG:1765 38 sbc (Zp02),y ; CPU:$D766 PRG:1766 F1 02 bcs Sub_D395_OnCarrySet_D779 ; CPU:$D768 PRG:1768 B0 0F sta Zp08 ; CPU:$D76A PRG:176A 85 08 lda #$00 ; CPU:$D76C PRG:176C A9 00 sec ; CPU:$D76E PRG:176E 38 sbc Zp08 ; CPU:$D76F PRG:176F E5 08 inc Zp05 ; CPU:$D771 PRG:1771 E6 05 inc Zp05 ; CPU:$D773 PRG:1773 E6 05 inc Zp05 ; CPU:$D775 PRG:1775 E6 05 inc Zp05 ; CPU:$D777 PRG:1777 E6 05 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnCarrySet_D779 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnCarrySet_D779: sta Zp06 ; CPU:$D779 PRG:1779 85 06 lda EntityDeltaY ; CPU:$D77B PRG:177B A5 CE ldy #$02 ; CPU:$D77D PRG:177D A0 02 sec ; CPU:$D77F PRG:177F 38 sbc (Zp02),y ; CPU:$D780 PRG:1780 F1 02 bcs Sub_D395_OnCarrySet_D78F ; CPU:$D782 PRG:1782 B0 0B sta Zp08 ; CPU:$D784 PRG:1784 85 08 lda #$00 ; CPU:$D786 PRG:1786 A9 00 sec ; CPU:$D788 PRG:1788 38 sbc Zp08 ; CPU:$D789 PRG:1789 E5 08 inc Zp05 ; CPU:$D78B PRG:178B E6 05 inc Zp05 ; CPU:$D78D PRG:178D E6 05 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnCarrySet_D78F ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnCarrySet_D78F: sta Zp07 ; CPU:$D78F PRG:178F 85 07 lda Zp06 ; CPU:$D791 PRG:1791 A5 06 cmp Zp07 ; CPU:$D793 PRG:1793 C5 07 bcs Sub_D395_OnCarrySet_D799 ; CPU:$D795 PRG:1795 B0 02 inc Zp05 ; CPU:$D797 PRG:1797 E6 05 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnCarrySet_D799 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnCarrySet_D799: lda Zp05 ; CPU:$D799 PRG:1799 A5 05 asl a ; CPU:$D79B PRG:179B 0A sta Zp05 ; CPU:$D79C PRG:179C 85 05 lda #$02 ; CPU:$D79E PRG:179E A9 02 sta Zp06 ; CPU:$D7A0 PRG:17A0 85 06 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D7A2 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D7A2: ldy Zp05 ; CPU:$D7A2 PRG:17A2 A4 05 lda $D830,y ; CPU:$D7A4 PRG:17A4 B9 30 D8 ldy #$00 ; CPU:$D7A7 PRG:17A7 A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D7A9 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D7A9: cmp a:Zp0C,y ; CPU:$D7A9 PRG:17A9 D9 0C 00 beq Sub_D395_JoinBranchPaths_D75C ; CPU:$D7AC PRG:17AC F0 AE iny ; CPU:$D7AE PRG:17AE C8 cpy #$04 ; CPU:$D7AF PRG:17AF C0 04 bne Sub_D395_OnNonzero_D7A9 ; CPU:$D7B1 PRG:17B1 D0 F6 inc Zp05 ; CPU:$D7B3 PRG:17B3 E6 05 dec Zp06 ; CPU:$D7B5 PRG:17B5 C6 06 bne Sub_D395_OnNonzero_D7A2 ; CPU:$D7B7 PRG:17B7 D0 E9 lda ZpB9,x ; CPU:$D7B9 PRG:17B9 B5 B9 sec ; CPU:$D7BB PRG:17BB 38 sbc #$01 ; CPU:$D7BC PRG:17BC E9 01 and #$03 ; CPU:$D7BE PRG:17BE 29 03 ldy #$00 ; CPU:$D7C0 PRG:17C0 A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D7C2 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D7C2: cmp a:Zp0C,y ; CPU:$D7C2 PRG:17C2 D9 0C 00 beq Sub_D395_JoinBranchPaths_D75C ; CPU:$D7C5 PRG:17C5 F0 95 iny ; CPU:$D7C7 PRG:17C7 C8 cpy #$04 ; CPU:$D7C8 PRG:17C8 C0 04 bne Sub_D395_OnNonzero_D7C2 ; CPU:$D7CA PRG:17CA D0 F6 lda ZpB9,x ; CPU:$D7CC PRG:17CC B5 B9 clc ; CPU:$D7CE PRG:17CE 18 adc #$01 ; CPU:$D7CF PRG:17CF 69 01 and #$03 ; CPU:$D7D1 PRG:17D1 29 03 ldy #$00 ; CPU:$D7D3 PRG:17D3 A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D7D5 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D7D5: cmp a:Zp0C,y ; CPU:$D7D5 PRG:17D5 D9 0C 00 beq Sub_D395_JoinBranchPaths_D75C ; CPU:$D7D8 PRG:17D8 F0 82 iny ; CPU:$D7DA PRG:17DA C8 cpy #$04 ; CPU:$D7DB PRG:17DB C0 04 bne Sub_D395_OnNonzero_D7D5 ; CPU:$D7DD PRG:17DD D0 F6 rts ; CPU:$D7DF PRG:17DF 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_Return_D7E0 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_Return_D7E0: lda ZpB8,x ; CPU:$D7E0 PRG:17E0 B5 B8 cmp #$06 ; CPU:$D7E2 PRG:17E2 C9 06 beq Sub_D395_OnZero_D827 ; CPU:$D7E4 PRG:17E4 F0 41 ldy #$02 ; CPU:$D7E6 PRG:17E6 A0 02 lda (Zp02),y ; CPU:$D7E8 PRG:17E8 B1 02 cmp #$70 ; CPU:$D7EA PRG:17EA C9 70 bne Sub_D395_JoinBranchPaths_D803 ; CPU:$D7EC PRG:17EC D0 15 ldy #$00 ; CPU:$D7EE PRG:17EE A0 00 lda (Zp02),y ; CPU:$D7F0 PRG:17F0 B1 02 cmp #$90 ; CPU:$D7F2 PRG:17F2 C9 90 bcs Sub_D395_OnCarrySet_D7FA ; CPU:$D7F4 PRG:17F4 B0 04 cmp #$30 ; CPU:$D7F6 PRG:17F6 C9 30 bcs Sub_D395_JoinBranchPaths_D803 ; CPU:$D7F8 PRG:17F8 B0 09 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnCarrySet_D7FA ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnCarrySet_D7FA: lda ZpB3 ; CPU:$D7FA PRG:17FA A5 B3 sta ZpC2,x ; CPU:$D7FC PRG:17FC 95 C2 lda ZpB4 ; CPU:$D7FE PRG:17FE A5 B4 sta ZpC3,x ; CPU:$D800 PRG:1800 95 C3 rts ; CPU:$D802 PRG:1802 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_JoinBranchPaths_D803 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_JoinBranchPaths_D803: lda Zp04 ; CPU:$D803 PRG:1803 A5 04 and Zp88 ; CPU:$D805 PRG:1805 25 88 bne Sub_D395_OnNonzero_D81E ; CPU:$D807 PRG:1807 D0 15 txa ; CPU:$D809 PRG:1809 8A bne Sub_D395_OnNonzero_D815 ; CPU:$D80A PRG:180A D0 09 lda ZpCA ; CPU:$D80C PRG:180C A5 CA sta ZpC2 ; CPU:$D80E PRG:180E 85 C2 lda ZpCB ; CPU:$D810 PRG:1810 A5 CB sta ZpC3 ; CPU:$D812 PRG:1812 85 C3 rts ; CPU:$D814 PRG:1814 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D815 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D815: lda ZpAF ; CPU:$D815 PRG:1815 A5 AF sta ZpC2,x ; CPU:$D817 PRG:1817 95 C2 lda ZpB0 ; CPU:$D819 PRG:1819 A5 B0 sta ZpC3,x ; CPU:$D81B PRG:181B 95 C3 rts ; CPU:$D81D PRG:181D 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D81E ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D81E: lda ZpB1 ; CPU:$D81E PRG:181E A5 B1 sta ZpC2,x ; CPU:$D820 PRG:1820 95 C2 lda ZpB2 ; CPU:$D822 PRG:1822 A5 B2 sta ZpC3,x ; CPU:$D824 PRG:1824 95 C3 rts ; CPU:$D826 PRG:1826 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnZero_D827 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnZero_D827: lda #$00 ; CPU:$D827 PRG:1827 A9 00 sta ZpC2,x ; CPU:$D829 PRG:1829 95 C2 lda #$02 ; CPU:$D82B PRG:182B A9 02 sta ZpC3,x ; CPU:$D82D PRG:182D 95 C3 rts ; CPU:$D82F PRG:182F 60 ; ---- data $D830-$D8D2 (163 bytes) ---- ; referenced by `lda $D840,y` at $D73D (operand $D840 falls inside this region) ; referenced by `lda $D841,y` at $D742 (operand $D841 falls inside this region) ; referenced by `lda $D830,y` at $D7A4 (operand $D830 falls inside this region) .byte $03, $02, $02, $03, $03, $00, $00, $03, $01, $02, $02, $01, $01, $00, $00, $01 ; CPU:$D830 PRG:1830 03 02 02 03 03 00 00 03 01 02 02 01 01 00 00 01 .byte $00, $00, $2C, $08, $A9, $00, $A8, $85, $05, $A9, $80, $85, $06, $B1, $02, $C9 ; CPU:$D840 PRG:1840 00 00 2C 08 A9 00 A8 85 05 A9 80 85 06 B1 02 C9 .byte $60, $F0, $1E, $90, $06, $C6, $05, $A9, $01, $D0, $02, $A9, $03, $95, $B9, $A0 ; CPU:$D850 PRG:1850 60 F0 1E 90 06 C6 05 A9 01 D0 02 A9 03 95 B9 A0 .byte $01, $B1, $02, $18, $65, $06, $91, $02, $A0, $00, $B1, $02, $65, $05, $91, $02 ; CPU:$D860 PRG:1860 01 B1 02 18 65 06 91 02 A0 00 B1 02 65 05 91 02 .byte $60, $A9, $00, $95, $B9, $A0, $03, $B1, $02, $38, $E9, $80, $91, $02, $A0, $02 ; CPU:$D870 PRG:1870 60 A9 00 95 B9 A0 03 B1 02 38 E9 80 91 02 A0 02 .byte $B1, $02, $E9, $00, $91, $02, $C9, $58, $F0, $01, $60, $A9, $01, $95, $B9, $A9 ; CPU:$D880 PRG:1880 B1 02 E9 00 91 02 C9 58 F0 01 60 A9 01 95 B9 A9 .byte $04, $95, $B8, $60, $A9, $00, $85, $05, $A9, $80, $85, $06, $B4, $B9, $B9, $AB ; CPU:$D890 PRG:1890 04 95 B8 60 A9 00 85 05 A9 80 85 06 B4 B9 B9 AB .byte $D8, $85, $10, $B9, $AC, $D8, $85, $11, $6C, $10, $00, $AF, $D8, $B1, $D8, $C6 ; CPU:$D8A0 PRG:18A0 D8 85 10 B9 AC D8 85 11 6C 10 00 AF D8 B1 D8 C6 .byte $05, $A0, $03, $B1, $02, $18, $65, $06, $91, $02, $A0, $02, $B1, $02, $65, $05 ; CPU:$D8B0 PRG:18B0 05 A0 03 B1 02 18 65 06 91 02 A0 02 B1 02 65 05 .byte $91, $02, $C9, $69, $B0, $04, $A9, $02, $D0, $06, $C9, $70, $90, $04, $A9, $00 ; CPU:$D8C0 PRG:18C0 91 02 C9 69 B0 04 A9 02 D0 06 C9 70 90 04 A9 00 .byte $95, $B9, $60 ; CPU:$D8D0 PRG:18D0 95 B9 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_Entry_D8D3 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_Entry_D8D3: ldx #$00 ; CPU:$D8D3 PRG:18D3 A2 00 lda #$2F ; CPU:$D8D5 PRG:18D5 A9 2F sta Zp00 ; CPU:$D8D7 PRG:18D7 85 00 lda #$02 ; CPU:$D8D9 PRG:18D9 A9 02 sta Zp01 ; CPU:$D8DB PRG:18DB 85 01 lda #$1E ; CPU:$D8DD PRG:18DD A9 1E sta Zp02 ; CPU:$D8DF PRG:18DF 85 02 lda #$00 ; CPU:$D8E1 PRG:18E1 A9 00 sta Zp03 ; CPU:$D8E3 PRG:18E3 85 03 lda #$01 ; CPU:$D8E5 PRG:18E5 A9 01 sta Zp04 ; CPU:$D8E7 PRG:18E7 85 04 ; ----------------------------------------------------------------------------- ; Routine: Sub_D395_OnNonzero_D8E9 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D395_OnNonzero_D8E9: jsr Sub_D903_Return_D903 ; lda Zp00 ; CPU:$D8EC PRG:18EC A5 00 clc ; CPU:$D8EE PRG:18EE 18 adc #$04 ; CPU:$D8EF PRG:18EF 69 04 sta Zp00 ; CPU:$D8F1 PRG:18F1 85 00 lda Zp02 ; CPU:$D8F3 PRG:18F3 A5 02 clc ; CPU:$D8F5 PRG:18F5 18 adc #$04 ; CPU:$D8F6 PRG:18F6 69 04 sta Zp02 ; CPU:$D8F8 PRG:18F8 85 02 asl Zp04 ; CPU:$D8FA PRG:18FA 06 04 inx ; CPU:$D8FC PRG:18FC E8 inx ; CPU:$D8FD PRG:18FD E8 cpx #$08 ; CPU:$D8FE PRG:18FE E0 08 bne Sub_D395_OnNonzero_D8E9 ; CPU:$D900 PRG:1900 D0 E7 rts ; CPU:$D902 PRG:1902 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D903_Return_D903 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D903_Return_D903: ldy ZpB8,x ; CPU:$D903 PRG:1903 B4 B8 lda $D912,y ; CPU:$D905 PRG:1905 B9 12 D9 sta DispatchPtrLo ; CPU:$D908 PRG:1908 85 10 lda $D913,y ; CPU:$D90A PRG:190A B9 13 D9 sta DispatchPtrHi ; CPU:$D90D PRG:190D 85 11 jmp (DispatchPtrLo) ; CPU:$D90F PRG:190F 6C 10 00 EntityPtrTable: ; ---- data $D912-$D98A (121 bytes) ---- ; referenced by `lda $D912,y` at $D905 (operand $D912 falls inside this region) ; referenced by `lda $D913,y` at $D90A (operand $D913 falls inside this region) .byte $1C, $D9, $1C, $D9, $1C, $D9, $60, $D5, $1C, $D9, $60, $A2, $00, $86, $00, $B5 ; CPU:$D912 PRG:1912 1C D9 1C D9 1C D9 60 D5 1C D9 60 A2 00 86 00 B5 .byte $B8, $C9, $06, $D0, $04, $8D, $08, $06, $60, $E8, $E8, $E0, $08, $D0, $F0, $A5 ; CPU:$D922 PRG:1922 B8 C9 06 D0 04 8D 08 06 60 E8 E8 E0 08 D0 F0 A5 .byte $88, $F0, $04, $8D, $09, $06, $60, $A0, $00, $A5, $6A, $C9, $88, $B0, $06, $C8 ; CPU:$D932 PRG:1932 88 F0 04 8D 09 06 60 A0 00 A5 6A C9 88 B0 06 C8 .byte $C9, $42, $B0, $01, $C8, $A9, $01, $99, $0A, $06, $60, $A5, $51, $0A, $18, $69 ; CPU:$D942 PRG:1942 C9 42 B0 01 C8 A9 01 99 0A 06 60 A5 51 0A 18 69 .byte $02, $85, $00, $A5, $1A, $05, $1C, $29, $07, $D0, $10, $A4, $51, $B9, $2B, $02 ; CPU:$D952 PRG:1952 02 85 00 A5 1A 05 1C 29 07 D0 10 A4 51 B9 2B 02 .byte $29, $F0, $F0, $07, $A5, $B7, $29, $03, $4C, $71, $D9, $E6, $B7, $A5, $B7, $29 ; CPU:$D962 PRG:1962 29 F0 F0 07 A5 B7 29 03 4C 71 D9 E6 B7 A5 B7 29 .byte $07, $C9, $06, $90, $04, $A9, $01, $D0, $07, $A8, $B9, $85, $D9, $18, $65, $00 ; CPU:$D972 PRG:1972 07 C9 06 90 04 A9 01 D0 07 A8 B9 85 D9 18 65 00 .byte $85, $32, $60, $00, $00, $00, $01, $01, $00 ; CPU:$D982 PRG:1982 85 32 60 00 00 00 01 01 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_D903_Entry_D98B ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D903_Entry_D98B: lda #$00 ; CPU:$D98B PRG:198B A9 00 tax ; CPU:$D98D PRG:198D AA sta Zp00 ; CPU:$D98E PRG:198E 85 00 lda FrameCounter ; CPU:$D990 PRG:1990 A5 4B and #$08 ; CPU:$D992 PRG:1992 29 08 beq Sub_D903_OnZero_D99A ; CPU:$D994 PRG:1994 F0 04 lda #$01 ; CPU:$D996 PRG:1996 A9 01 sta Zp00 ; CPU:$D998 PRG:1998 85 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_D903_OnZero_D99A ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D903_OnZero_D99A: lda #$01 ; CPU:$D99A PRG:199A A9 01 sta Zp01 ; CPU:$D99C PRG:199C 85 01 ; ----------------------------------------------------------------------------- ; Routine: Sub_D903_OnNonzero_D99E ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D903_OnNonzero_D99E: jsr Sub_D9AA_Return_D9AA ; asl Zp01 ; CPU:$D9A1 PRG:19A1 06 01 inx ; CPU:$D9A3 PRG:19A3 E8 inx ; CPU:$D9A4 PRG:19A4 E8 cpx #$08 ; CPU:$D9A5 PRG:19A5 E0 08 bne Sub_D903_OnNonzero_D99E ; CPU:$D9A7 PRG:19A7 D0 F5 rts ; CPU:$D9A9 PRG:19A9 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_D9AA_Return_D9AA ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_D9AA_Return_D9AA: ldy ZpB8,x ; CPU:$D9AA PRG:19AA B4 B8 lda $D9B9,y ; CPU:$D9AC PRG:19AC B9 B9 D9 sta DispatchPtrLo ; CPU:$D9AF PRG:19AF 85 10 lda $D9BA,y ; CPU:$D9B1 PRG:19B1 B9 BA D9 sta DispatchPtrHi ; CPU:$D9B4 PRG:19B4 85 11 jmp (DispatchPtrLo) ; CPU:$D9B6 PRG:19B6 6C 10 00 ; ---- data $D9B9-$DAAF (247 bytes) ---- ; referenced by `lda $D9B9,y` at $D9AC (operand $D9B9 falls inside this region) ; referenced by `lda $D9BA,y` at $D9B1 (operand $D9BA falls inside this region) .byte $E0, $D9, $E0, $D9, $E0, $D9, $EC, $D9, $A9, $D9, $B5, $B9, $85, $03, $A9, $0A ; CPU:$D9B9 PRG:19B9 E0 D9 E0 D9 E0 D9 EC D9 A9 D9 B5 B9 85 03 A9 0A .byte $C6, $03, $30, $05, $18, $69, $02, $D0, $F7, $18, $65, $00, $85, $02, $8A, $4A ; CPU:$D9C9 PRG:19C9 C6 03 30 05 18 69 02 D0 F7 18 65 00 85 02 8A 4A .byte $A8, $A5, $02, $99, $33, $00, $60, $A5, $01, $25, $88, $F0, $DD, $A9, $1E, $85 ; CPU:$D9D9 PRG:19D9 A8 A5 02 99 33 00 60 A5 01 25 88 F0 DD A9 1E 85 .byte $02, $D0, $E6, $B5, $B9, $85, $03, $A9, $20, $C6, $03, $30, $05, $18, $69, $01 ; CPU:$D9E9 PRG:19E9 02 D0 E6 B5 B9 85 03 A9 20 C6 03 30 05 18 69 01 .byte $D0, $F7, $85, $02, $30, $D8, $A2, $23, $B5, $1A, $9D, $74, $02, $CA, $10, $F8 ; CPU:$D9F9 PRG:19F9 D0 F7 85 02 30 D8 A2 23 B5 1A 9D 74 02 CA 10 F8 .byte $A9, $84, $85, $00, $A9, $02, $85, $01, $A9, $08, $85, $03, $A9, $03, $85, $02 ; CPU:$DA09 PRG:1A09 A9 84 85 00 A9 02 85 01 A9 08 85 03 A9 03 85 02 .byte $A5, $03, $25, $88, $D0, $7B, $A0, $00, $AD, $74, $02, $D1, $00, $B0, $08, $B1 ; CPU:$DA19 PRG:1A19 A5 03 25 88 D0 7B A0 00 AD 74 02 D1 00 B0 08 B1 .byte $00, $38, $ED, $74, $02, $B0, $02, $F1, $00, $C9, $19, $B0, $64, $85, $04, $A0 ; CPU:$DA29 PRG:1A29 00 38 ED 74 02 B0 02 F1 00 C9 19 B0 64 85 04 A0 .byte $02, $AD, $76, $02, $D1, $00, $B0, $08, $B1, $00, $38, $ED, $76, $02, $B0, $02 ; CPU:$DA39 PRG:1A39 02 AD 76 02 D1 00 B0 08 B1 00 38 ED 76 02 B0 02 .byte $F1, $00, $C9, $19, $B0, $4B, $65, $04, $C9, $10, $B0, $45, $AD, $74, $02, $85 ; CPU:$DA49 PRG:1A49 F1 00 C9 19 B0 4B 65 04 C9 10 B0 45 AD 74 02 85 .byte $03, $AD, $76, $02, $85, $04, $AD, $8C, $02, $85, $05, $AD, $92, $02, $85, $06 ; CPU:$DA59 PRG:1A59 03 AD 76 02 85 04 AD 8C 02 85 05 AD 92 02 85 06 .byte $A0, $00, $B1, $00, $8D, $74, $02, $A5, $03, $91, $00, $A0, $02, $B1, $00, $8D ; CPU:$DA69 PRG:1A69 A0 00 B1 00 8D 74 02 A5 03 91 00 A0 02 B1 00 8D .byte $76, $02, $A5, $04, $91, $00, $A6, $02, $BD, $8D, $02, $8D, $8C, $02, $A5, $05 ; CPU:$DA79 PRG:1A79 76 02 A5 04 91 00 A6 02 BD 8D 02 8D 8C 02 A5 05 .byte $9D, $8D, $02, $BD, $93, $02, $8D, $92, $02, $A5, $06, $9D, $93, $02, $4C, $AA ; CPU:$DA89 PRG:1A89 9D 8D 02 BD 93 02 8D 92 02 A5 06 9D 93 02 4C AA .byte $DA, $A5, $00, $38, $E9, $04, $85, $00, $46, $03, $C6, $02, $30, $03, $4C, $19 ; CPU:$DA99 PRG:1A99 DA A5 00 38 E9 04 85 00 46 03 C6 02 30 03 4C 19 .byte $DA, $20, $99, $E1, $4C, $B0, $DA ; CPU:$DAA9 PRG:1AA9 DA 20 99 E1 4C B0 DA ; ----------------------------------------------------------------------------- ; Routine: Sub_DAB0_Entry_DAB0 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DAB0_Entry_DAB0: lda #$74 ; CPU:$DAB0 PRG:1AB0 A9 74 sta Zp00 ; CPU:$DAB2 PRG:1AB2 85 00 lda #$02 ; CPU:$DAB4 PRG:1AB4 A9 02 sta Zp01 ; CPU:$DAB6 PRG:1AB6 85 01 lda #$00 ; CPU:$DAB8 PRG:1AB8 A9 00 sta Zp02 ; CPU:$DABA PRG:1ABA 85 02 lda #$07 ; CPU:$DABC PRG:1ABC A9 07 sta Zp03 ; CPU:$DABE PRG:1ABE 85 03 lda #$00 ; CPU:$DAC0 PRG:1AC0 A9 00 sta Zp04 ; CPU:$DAC2 PRG:1AC2 85 04 ; ----------------------------------------------------------------------------- ; Routine: Sub_DAC4_StoreAndContinue_DAC4 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DAC4_StoreAndContinue_DAC4: lda #$00 ; CPU:$DAC4 PRG:1AC4 A9 00 sta Zp05 ; CPU:$DAC6 PRG:1AC6 85 05 tax ; CPU:$DAC8 PRG:1AC8 AA ; ----------------------------------------------------------------------------- ; Routine: Sub_DAC9_TransferIndexAndContinue_DAC9 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DAC9_TransferIndexAndContinue_DAC9: ldy #$02 ; CPU:$DAC9 PRG:1AC9 A0 02 lda (Zp00),y ; CPU:$DACB PRG:1ACB B1 00 bne Sub_DAC9_OnNonzero_DAD3 ; CPU:$DACD PRG:1ACD D0 04 lda #$FF ; CPU:$DACF PRG:1ACF A9 FF bne Sub_DAC9_OnNonzero_DAD7 ; CPU:$DAD1 PRG:1AD1 D0 04 ; ----------------------------------------------------------------------------- ; Routine: Sub_DAC9_OnNonzero_DAD3 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DAC9_OnNonzero_DAD3: clc ; CPU:$DAD3 PRG:1AD3 18 adc $DE15,x ; CPU:$DAD4 PRG:1AD4 7D 15 DE ; ----------------------------------------------------------------------------- ; Routine: Sub_DAC9_OnNonzero_DAD7 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DAC9_OnNonzero_DAD7: ldy #$00 ; CPU:$DAD7 PRG:1AD7 A0 00 sta (Zp02),y ; CPU:$DAD9 PRG:1AD9 91 02 ldy Zp04 ; CPU:$DADB PRG:1ADB A4 04 lda $028C,y ; CPU:$DADD PRG:1ADD B9 8C 02 asl a ; CPU:$DAE0 PRG:1AE0 0A rol a ; CPU:$DAE1 PRG:1AE1 2A rol a ; CPU:$DAE2 PRG:1AE2 2A and #$03 ; CPU:$DAE3 PRG:1AE3 29 03 beq Sub_DAC9_OnZero_DB10 ; CPU:$DAE5 PRG:1AE5 F0 29 cmp #$02 ; CPU:$DAE7 PRG:1AE7 C9 02 beq Sub_DAC9_OnZero_DB56 ; CPU:$DAE9 PRG:1AE9 F0 6B bcc Sub_DAC9_OnCarryClear_DB33 ; CPU:$DAEB PRG:1AEB 90 46 lda $028C,y ; CPU:$DAED PRG:1AED B9 8C 02 asl a ; CPU:$DAF0 PRG:1AF0 0A asl a ; CPU:$DAF1 PRG:1AF1 0A clc ; CPU:$DAF2 PRG:1AF2 18 adc Zp05 ; CPU:$DAF3 PRG:1AF3 65 05 tay ; CPU:$DAF5 PRG:1AF5 A8 sta Zp06 ; CPU:$DAF6 PRG:1AF6 85 06 lda $DCE1,y ; CPU:$DAF8 PRG:1AF8 B9 E1 DC ldy #$01 ; CPU:$DAFB PRG:1AFB A0 01 sta (Zp02),y ; CPU:$DAFD PRG:1AFD 91 02 ldy Zp04 ; CPU:$DAFF PRG:1AFF A4 04 lda $0292,y ; CPU:$DB01 PRG:1B01 B9 92 02 ldy Zp06 ; CPU:$DB04 PRG:1B04 A4 06 ora $DE15,y ; CPU:$DB06 PRG:1B06 19 15 DE ldy #$02 ; CPU:$DB09 PRG:1B09 A0 02 sta (Zp02),y ; CPU:$DB0B PRG:1B0B 91 02 jmp Sub_DB76_StoreAndContinue_DB76 ; ; ----------------------------------------------------------------------------- ; Routine: Sub_DAC9_OnZero_DB10 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DAC9_OnZero_DB10: lda $028C,y ; CPU:$DB10 PRG:1B10 B9 8C 02 asl a ; CPU:$DB13 PRG:1B13 0A asl a ; CPU:$DB14 PRG:1B14 0A clc ; CPU:$DB15 PRG:1B15 18 adc Zp05 ; CPU:$DB16 PRG:1B16 65 05 tay ; CPU:$DB18 PRG:1B18 A8 sta Zp06 ; CPU:$DB19 PRG:1B19 85 06 lda $DBAD,y ; CPU:$DB1B PRG:1B1B B9 AD DB ldy #$01 ; CPU:$DB1E PRG:1B1E A0 01 sta (Zp02),y ; CPU:$DB20 PRG:1B20 91 02 ldy Zp04 ; CPU:$DB22 PRG:1B22 A4 04 lda $0292,y ; CPU:$DB24 PRG:1B24 B9 92 02 ldy Zp06 ; CPU:$DB27 PRG:1B27 A4 06 ora $DCE1,y ; CPU:$DB29 PRG:1B29 19 E1 DC ldy #$02 ; CPU:$DB2C PRG:1B2C A0 02 sta (Zp02),y ; CPU:$DB2E PRG:1B2E 91 02 jmp Sub_DB76_StoreAndContinue_DB76 ; ; ----------------------------------------------------------------------------- ; Routine: Sub_DAC9_OnCarryClear_DB33 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DAC9_OnCarryClear_DB33: lda $028C,y ; CPU:$DB33 PRG:1B33 B9 8C 02 asl a ; CPU:$DB36 PRG:1B36 0A asl a ; CPU:$DB37 PRG:1B37 0A clc ; CPU:$DB38 PRG:1B38 18 adc Zp05 ; CPU:$DB39 PRG:1B39 65 05 tay ; CPU:$DB3B PRG:1B3B A8 sta Zp06 ; CPU:$DB3C PRG:1B3C 85 06 lda $DCAD,y ; CPU:$DB3E PRG:1B3E B9 AD DC ldy #$01 ; CPU:$DB41 PRG:1B41 A0 01 sta (Zp02),y ; CPU:$DB43 PRG:1B43 91 02 ldy Zp04 ; CPU:$DB45 PRG:1B45 A4 04 lda $0292,y ; CPU:$DB47 PRG:1B47 B9 92 02 ldy Zp06 ; CPU:$DB4A PRG:1B4A A4 06 ora $DDE1,y ; CPU:$DB4C PRG:1B4C 19 E1 DD ldy #$02 ; CPU:$DB4F PRG:1B4F A0 02 sta (Zp02),y ; CPU:$DB51 PRG:1B51 91 02 jmp Sub_DB76_StoreAndContinue_DB76 ; ; ----------------------------------------------------------------------------- ; Routine: Sub_DAC9_OnZero_DB56 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DAC9_OnZero_DB56: lda $028C,y ; CPU:$DB56 PRG:1B56 B9 8C 02 asl a ; CPU:$DB59 PRG:1B59 0A asl a ; CPU:$DB5A PRG:1B5A 0A clc ; CPU:$DB5B PRG:1B5B 18 adc Zp05 ; CPU:$DB5C PRG:1B5C 65 05 tay ; CPU:$DB5E PRG:1B5E A8 sta Zp06 ; CPU:$DB5F PRG:1B5F 85 06 lda $DCE1,y ; CPU:$DB61 PRG:1B61 B9 E1 DC ldy #$01 ; CPU:$DB64 PRG:1B64 A0 01 sta (Zp02),y ; CPU:$DB66 PRG:1B66 91 02 ldy Zp04 ; CPU:$DB68 PRG:1B68 A4 04 lda $0292,y ; CPU:$DB6A PRG:1B6A B9 92 02 ldy Zp06 ; CPU:$DB6D PRG:1B6D A4 06 ora $DE15,y ; CPU:$DB6F PRG:1B6F 19 15 DE ldy #$02 ; CPU:$DB72 PRG:1B72 A0 02 sta (Zp02),y ; CPU:$DB74 PRG:1B74 91 02 ; ----------------------------------------------------------------------------- ; Routine: Sub_DB76_StoreAndContinue_DB76 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DB76_StoreAndContinue_DB76: ldy #$00 ; CPU:$DB76 PRG:1B76 A0 00 lda (Zp00),y ; CPU:$DB78 PRG:1B78 B1 00 bne Sub_DB76_OnNonzero_DB80 ; CPU:$DB7A PRG:1B7A D0 04 lda #$FF ; CPU:$DB7C PRG:1B7C A9 FF bne Sub_DB76_OnNonzero_DB84 ; CPU:$DB7E PRG:1B7E D0 04 ; ----------------------------------------------------------------------------- ; Routine: Sub_DB76_OnNonzero_DB80 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DB76_OnNonzero_DB80: clc ; CPU:$DB80 PRG:1B80 18 adc $DE16,x ; CPU:$DB81 PRG:1B81 7D 16 DE ; ----------------------------------------------------------------------------- ; Routine: Sub_DB76_OnNonzero_DB84 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DB76_OnNonzero_DB84: ldy #$03 ; CPU:$DB84 PRG:1B84 A0 03 sta (Zp02),y ; CPU:$DB86 PRG:1B86 91 02 lda Zp02 ; CPU:$DB88 PRG:1B88 A5 02 clc ; CPU:$DB8A PRG:1B8A 18 adc #$04 ; CPU:$DB8B PRG:1B8B 69 04 sta Zp02 ; CPU:$DB8D PRG:1B8D 85 02 inc Zp05 ; CPU:$DB8F PRG:1B8F E6 05 inx ; CPU:$DB91 PRG:1B91 E8 inx ; CPU:$DB92 PRG:1B92 E8 cpx #$08 ; CPU:$DB93 PRG:1B93 E0 08 beq Sub_DB76_OnZero_DB9A ; CPU:$DB95 PRG:1B95 F0 03 jmp Sub_DAC9_TransferIndexAndContinue_DAC9 ; ; ----------------------------------------------------------------------------- ; Routine: Sub_DB76_OnZero_DB9A ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DB76_OnZero_DB9A: lda Zp00 ; CPU:$DB9A PRG:1B9A A5 00 clc ; CPU:$DB9C PRG:1B9C 18 adc #$04 ; CPU:$DB9D PRG:1B9D 69 04 sta Zp00 ; CPU:$DB9F PRG:1B9F 85 00 inc Zp04 ; CPU:$DBA1 PRG:1BA1 E6 04 lda Zp04 ; CPU:$DBA3 PRG:1BA3 A5 04 cmp #$06 ; CPU:$DBA5 PRG:1BA5 C9 06 beq Sub_DB76_OnZero_DBAC ; CPU:$DBA7 PRG:1BA7 F0 03 jmp Sub_DAC4_StoreAndContinue_DAC4 ; ; ----------------------------------------------------------------------------- ; Routine: Sub_DB76_OnZero_DBAC ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_DB76_OnZero_DBAC: rts ; CPU:$DBAC PRG:1BAC 60 ; ---- data $DBAD-$DE3C (656 bytes) ---- ; referenced by `adc $DE15,x` at $DAD4 (operand $DE15 falls inside this region) ; referenced by `lda $DCE1,y` at $DAF8 (operand $DCE1 falls inside this region) ; referenced by `ora $DE15,y` at $DB06 (operand $DE15 falls inside this region) ; referenced by `lda $DBAD,y` at $DB1B (operand $DBAD falls inside this region) ; referenced by `ora $DCE1,y` at $DB29 (operand $DCE1 falls inside this region) ; referenced by `lda $DCAD,y` at $DB3E (operand $DCAD falls inside this region) ; ... and 4 further references from decoded code .byte $4C, $4C, $4C, $4C, $00, $00, $00, $00, $04, $04, $03, $03, $08, $08, $07, $07 ; CPU:$DBAD PRG:1BAD 4C 4C 4C 4C 00 00 00 00 04 04 03 03 08 08 07 07 .byte $02, $01, $02, $01, $06, $05, $06, $05, $03, $03, $04, $04, $07, $07, $08, $08 ; CPU:$DBBD PRG:1BBD 02 01 02 01 06 05 06 05 03 03 04 04 07 07 08 08 .byte $01, $02, $01, $02, $05, $06, $05, $06, $18, $18, $19, $19, $18, $18, $1A, $1A ; CPU:$DBCD PRG:1BCD 01 02 01 02 05 06 05 06 18 18 19 19 18 18 1A 1A .byte $1B, $1C, $1D, $1F, $1B, $1C, $1E, $20, $21, $21, $22, $22, $21, $21, $23, $23 ; CPU:$DBDD PRG:1BDD 1B 1C 1D 1F 1B 1C 1E 20 21 21 22 22 21 21 23 23 .byte $1C, $1B, $1F, $1D, $1C, $1B, $20, $1E, $00, $00, $00, $00, $09, $09, $0A, $0A ; CPU:$DBED PRG:1BED 1C 1B 1F 1D 1C 1B 20 1E 00 00 00 00 09 09 0A 0A .byte $0B, $0B, $0C, $0C, $4C, $4C, $0D, $0D, $4C, $4C, $0E, $0E, $4C, $4C, $0F, $0F ; CPU:$DBFD PRG:1BFD 0B 0B 0C 0C 4C 4C 0D 0D 4C 4C 0E 0E 4C 4C 0F 0F .byte $4C, $4C, $10, $10, $4C, $4C, $11, $11, $4C, $4C, $12, $12, $4C, $4C, $13, $13 ; CPU:$DC0D PRG:1C0D 4C 4C 10 10 4C 4C 11 11 4C 4C 12 12 4C 4C 13 13 .byte $14, $15, $16, $17, $4C, $4C, $4C, $4C, $24, $24, $25, $25, $24, $24, $26, $26 ; CPU:$DC1D PRG:1C1D 14 15 16 17 4C 4C 4C 4C 24 24 25 25 24 24 26 26 .byte $27, $27, $4C, $4C, $28, $29, $2A, $2B, $2C, $2C, $2D, $2D, $29, $28, $2B, $2A ; CPU:$DC2D PRG:1C2D 27 27 4C 4C 28 29 2A 2B 2C 2C 2D 2D 29 28 2B 2A .byte $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $9A, $9B, $9C, $9D, $9E, $9F ; CPU:$DC3D PRG:1C3D 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F .byte $A0, $A1, $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD, $AE, $AF ; CPU:$DC4D PRG:1C4D A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF .byte $2E, $2F, $30, $31, $32, $2F, $33, $31, $34, $2F, $35, $31, $36, $2F, $37, $31 ; CPU:$DC5D PRG:1C5D 2E 2F 30 31 32 2F 33 31 34 2F 35 31 36 2F 37 31 .byte $38, $2F, $39, $31, $3A, $2F, $3B, $31, $3C, $2F, $3D, $31, $3E, $3F, $40, $41 ; CPU:$DC6D PRG:1C6D 38 2F 39 31 3A 2F 3B 31 3C 2F 3D 31 3E 3F 40 41 .byte $42, $3F, $43, $41, $44, $45, $46, $47, $48, $45, $49, $47, $4A, $45, $4B, $47 ; CPU:$DC7D PRG:1C7D 42 3F 43 41 44 45 46 47 48 45 49 47 4A 45 4B 47 .byte $4D, $4E, $4F, $50, $4E, $4D, $50, $4F, $4F, $50, $4D, $4E, $50, $4F, $4E, $4D ; CPU:$DC8D PRG:1C8D 4D 4E 4F 50 4E 4D 50 4F 4F 50 4D 4E 50 4F 4E 4D .byte $4D, $4E, $4F, $51, $4E, $52, $53, $54, $4F, $51, $4D, $4E, $53, $54, $4E, $52 ; CPU:$DC9D PRG:1C9D 4D 4E 4F 51 4E 52 53 54 4F 51 4D 4E 53 54 4E 52 .byte $55, $4C, $56, $4C, $56, $4C, $55, $4C, $4C, $57, $4C, $58, $4C, $59, $4C, $5A ; CPU:$DCAD PRG:1CAD 55 4C 56 4C 56 4C 55 4C 4C 57 4C 58 4C 59 4C 5A .byte $4C, $5B, $4C, $5C, $4C, $4C, $4C, $5D, $18, $18, $19, $5E, $60, $61, $19, $5E ; CPU:$DCBD PRG:1CBD 4C 5B 4C 5C 4C 4C 4C 5D 18 18 19 5E 60 61 19 5E .byte $1B, $1C, $1D, $62, $1B, $1C, $1E, $63, $64, $65, $66, $67, $64, $65, $68, $69 ; CPU:$DCCD PRG:1CCD 1B 1C 1D 62 1B 1C 1E 63 64 65 66 67 64 65 68 69 .byte $6A, $6B, $4C, $4C, $00, $00, $00, $00, $00, $40, $80, $C0, $80, $C0, $80, $C0 ; CPU:$DCDD PRG:1CDD 6A 6B 4C 4C 00 00 00 00 00 40 80 C0 80 C0 80 C0 .byte $80, $C0, $80, $C0, $00, $00, $80, $80, $00, $00, $80, $80, $00, $40, $00, $40 ; CPU:$DCED PRG:1CED 80 C0 80 C0 00 00 80 80 00 00 80 80 00 40 00 40 .byte $00, $40, $00, $40, $40, $40, $C0, $C0, $40, $40, $C0, $C0, $00, $40, $00, $40 ; CPU:$DCFD PRG:1CFD 00 40 00 40 40 40 C0 C0 40 40 C0 C0 00 40 00 40 .byte $00, $40, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $40 ; CPU:$DD0D PRG:1D0D 00 40 00 40 00 00 00 00 00 00 00 00 00 40 00 40 .byte $00, $40, $00, $40, $40, $40, $40, $40, $40, $40, $40, $40, $00, $40, $80, $C0 ; CPU:$DD1D PRG:1D1D 00 40 00 40 40 40 40 40 40 40 40 40 00 40 80 C0 .byte $00, $40, $00, $40, $00, $40, $00, $40, $00, $00, $00, $40, $00, $00, $00, $40 ; CPU:$DD2D PRG:1D2D 00 40 00 40 00 40 00 40 00 00 00 40 00 00 00 40 .byte $00, $00, $00, $40, $00, $00, $00, $40, $00, $00, $00, $40, $00, $00, $00, $40 ; CPU:$DD3D PRG:1D3D 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 40 .byte $00, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $40 ; CPU:$DD4D PRG:1D4D 00 00 00 40 00 00 00 00 00 00 00 00 00 40 00 40 .byte $00, $40, $00, $40, $00, $40, $00, $00, $00, $00, $00, $00, $00, $40, $00, $40 ; CPU:$DD5D PRG:1D5D 00 40 00 40 00 40 00 00 00 00 00 00 00 40 00 40 .byte $40, $40, $40, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$DD6D PRG:1D6D 40 40 40 40 00 00 00 00 00 00 00 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$DD7D PRG:1D7D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$DD8D PRG:1D8D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$DD9D PRG:1D9D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$DDAD PRG:1DAD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $40, $40, $00, $40, $80, $00, $80, $80 ; CPU:$DDBD PRG:1DBD 00 00 00 00 00 00 00 00 40 40 00 40 80 00 80 80 .byte $00, $C0, $C0, $C0, $00, $00, $00, $00, $40, $00, $00, $00, $80, $80, $80, $80 ; CPU:$DDCD PRG:1DCD 00 C0 C0 C0 00 00 00 00 40 00 00 00 80 80 80 80 .byte $80, $80, $C0, $80, $00, $00, $00, $00, $80, $00, $80, $00, $00, $00, $00, $00 ; CPU:$DDDD PRG:1DDD 80 80 C0 80 00 00 00 00 80 00 80 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00 ; CPU:$DDED PRG:1DED 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$DDFD PRG:1DFD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $03, $F4, $03, $FC, $0B, $F4, $0B, $FC ; CPU:$DE0D PRG:1E0D 00 00 00 00 00 00 00 00 03 F4 03 FC 0B F4 0B FC .byte $A5, $4B, $29, $0F, $F0, $01, $60, $AA, $B5, $6C, $C9, $07, $F0, $0A, $C9, $01 ; CPU:$DE1D PRG:1E1D A5 4B 29 0F F0 01 60 AA B5 6C C9 07 F0 0A C9 01 .byte $D0, $04, $A9, $02, $D0, $02, $A9, $01, $95, $6C, $E8, $E0, $04, $D0, $E9, $60 ; CPU:$DE2D PRG:1E2D D0 04 A9 02 D0 02 A9 01 95 6C E8 E0 04 D0 E9 60 ; ----------------------------------------------------------------------------- ; Routine: UpdateSprites ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateSprites: lda GameplaySuspended ; CPU:$DE3D PRG:1E3D A5 48 beq UploadVRAM_023F ; CPU:$DE3F PRG:1E3F F0 03 jmp FrameTimedLogic ; ; ----------------------------------------------------------------------------- ; Routine: UploadVRAM_023F ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadVRAM_023F: lda $023F ; CPU:$DE44 PRG:1E44 AD 3F 02 cmp #$FF ; CPU:$DE47 PRG:1E47 C9 FF beq UploadVRAM_0245 ; CPU:$DE49 PRG:1E49 F0 28 lda PPUSTATUS ; CPU:$DE4B PRG:1E4B AD 02 20 lda $026B ; CPU:$DE4E PRG:1E4E AD 6B 02 sta PPUADDR ; CPU:$DE51 PRG:1E51 8D 06 20 lda $026C ; CPU:$DE54 PRG:1E54 AD 6C 02 sta PPUADDR ; CPU:$DE57 PRG:1E57 8D 06 20 ldy #$00 ; CPU:$DE5A PRG:1E5A A0 00 ; ----------------------------------------------------------------------------- ; Routine: UploadVRAM_023F_Loop ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadVRAM_023F_Loop: lda $023F,y ; CPU:$DE5C PRG:1E5C B9 3F 02 sta PPUDATA ; CPU:$DE5F PRG:1E5F 8D 07 20 iny ; CPU:$DE62 PRG:1E62 C8 cpy #$06 ; CPU:$DE63 PRG:1E63 C0 06 bne UploadVRAM_023F_Loop ; CPU:$DE65 PRG:1E65 D0 F5 lda #$30 ; CPU:$DE67 PRG:1E67 A9 30 sta PPUDATA ; CPU:$DE69 PRG:1E69 8D 07 20 lda #$FF ; CPU:$DE6C PRG:1E6C A9 FF sta $023F ; CPU:$DE6E PRG:1E6E 8D 3F 02 bne UploadVRAM_026D ; CPU:$DE71 PRG:1E71 D0 2D ; ----------------------------------------------------------------------------- ; Routine: UploadVRAM_0245 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadVRAM_0245: lda $0245 ; CPU:$DE73 PRG:1E73 AD 45 02 cmp #$FF ; CPU:$DE76 PRG:1E76 C9 FF beq UploadVRAM_026D ; CPU:$DE78 PRG:1E78 F0 26 lda PPUSTATUS ; CPU:$DE7A PRG:1E7A AD 02 20 lda $0272 ; CPU:$DE7D PRG:1E7D AD 72 02 sta PPUADDR ; CPU:$DE80 PRG:1E80 8D 06 20 lda $0273 ; CPU:$DE83 PRG:1E83 AD 73 02 sta PPUADDR ; CPU:$DE86 PRG:1E86 8D 06 20 ldy #$00 ; CPU:$DE89 PRG:1E89 A0 00 ; ----------------------------------------------------------------------------- ; Routine: UploadVRAM_0245_Loop ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadVRAM_0245_Loop: lda $0245,y ; CPU:$DE8B PRG:1E8B B9 45 02 sta PPUDATA ; CPU:$DE8E PRG:1E8E 8D 07 20 iny ; CPU:$DE91 PRG:1E91 C8 cpy #$06 ; CPU:$DE92 PRG:1E92 C0 06 bne UploadVRAM_0245_Loop ; CPU:$DE94 PRG:1E94 D0 F5 lda #$30 ; CPU:$DE96 PRG:1E96 A9 30 sta PPUDATA ; CPU:$DE98 PRG:1E98 8D 07 20 lda #$FF ; CPU:$DE9B PRG:1E9B A9 FF sta $0245 ; CPU:$DE9D PRG:1E9D 8D 45 02 ; ----------------------------------------------------------------------------- ; Routine: UploadVRAM_026D ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadVRAM_026D: lda FrameCounter ; CPU:$DEA0 PRG:1EA0 A5 4B and #$07 ; CPU:$DEA2 PRG:1EA2 29 07 bne FrameTimedLogic ; CPU:$DEA4 PRG:1EA4 D0 2E lda PPUSTATUS ; CPU:$DEA6 PRG:1EA6 AD 02 20 lda $026D ; CPU:$DEA9 PRG:1EA9 AD 6D 02 sta PPUADDR ; CPU:$DEAC PRG:1EAC 8D 06 20 lda $026E ; CPU:$DEAF PRG:1EAF AD 6E 02 sta PPUADDR ; CPU:$DEB2 PRG:1EB2 8D 06 20 ldx #$00 ; CPU:$DEB5 PRG:1EB5 A2 00 lda FrameCounter ; CPU:$DEB7 PRG:1EB7 A5 4B and #$18 ; CPU:$DEB9 PRG:1EB9 29 18 beq UpdateSprites_OnZero_DECA ; CPU:$DEBB PRG:1EBB F0 0D ; ----------------------------------------------------------------------------- ; Routine: UploadVRAM_026F_Loop ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UploadVRAM_026F_Loop: lda $026F,x ; CPU:$DEBD PRG:1EBD BD 6F 02 sta PPUDATA ; CPU:$DEC0 PRG:1EC0 8D 07 20 inx ; CPU:$DEC3 PRG:1EC3 E8 cpx #$03 ; CPU:$DEC4 PRG:1EC4 E0 03 bne UploadVRAM_026F_Loop ; CPU:$DEC6 PRG:1EC6 D0 F5 beq FrameTimedLogic ; CPU:$DEC8 PRG:1EC8 F0 0A ; ----------------------------------------------------------------------------- ; Routine: UpdateSprites_OnZero_DECA ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateSprites_OnZero_DECA: lda #$20 ; CPU:$DECA PRG:1ECA A9 20 ; ----------------------------------------------------------------------------- ; Routine: UpdateSprites_OnNonzero_DECC ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateSprites_OnNonzero_DECC: sta PPUDATA ; CPU:$DECC PRG:1ECC 8D 07 20 inx ; CPU:$DECF PRG:1ECF E8 cpx #$03 ; CPU:$DED0 PRG:1ED0 E0 03 bne UpdateSprites_OnNonzero_DECC ; CPU:$DED2 PRG:1ED2 D0 F8 ; ----------------------------------------------------------------------------- ; Routine: FrameTimedLogic ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- FrameTimedLogic: lda FrameCounter ; CPU:$DED4 PRG:1ED4 A5 4B and #$01 ; CPU:$DED6 PRG:1ED6 29 01 beq FrameTimedLogic_OnZero_DF01 ; CPU:$DED8 PRG:1ED8 F0 27 ldy #$00 ; CPU:$DEDA PRG:1EDA A0 00 ldx #$00 ; CPU:$DEDC PRG:1EDC A2 00 lda CocktailModeFlag ; CPU:$DEDE PRG:1EDE A5 46 and ActivePlayerFlag ; CPU:$DEE0 PRG:1EE0 25 47 beq FrameTimedLogic_JoinBranchPaths_DEE6 ; CPU:$DEE2 PRG:1EE2 F0 02 ldy #$08 ; CPU:$DEE4 PRG:1EE4 A0 08 ; ----------------------------------------------------------------------------- ; Routine: FrameTimedLogic_JoinBranchPaths_DEE6 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- FrameTimedLogic_JoinBranchPaths_DEE6: lda PPUSTATUS ; CPU:$DEE6 PRG:1EE6 AD 02 20 lda $DF2B,y ; CPU:$DEE9 PRG:1EE9 B9 2B DF sta PPUADDR ; CPU:$DEEC PRG:1EEC 8D 06 20 lda $DF2C,y ; CPU:$DEEF PRG:1EEF B9 2C DF sta PPUADDR ; CPU:$DEF2 PRG:1EF2 8D 06 20 lda Zp6C,x ; CPU:$DEF5 PRG:1EF5 B5 6C sta PPUDATA ; CPU:$DEF7 PRG:1EF7 8D 07 20 iny ; CPU:$DEFA PRG:1EFA C8 iny ; CPU:$DEFB PRG:1EFB C8 inx ; CPU:$DEFC PRG:1EFC E8 cpx #$04 ; CPU:$DEFD PRG:1EFD E0 04 bne FrameTimedLogic_JoinBranchPaths_DEE6 ; CPU:$DEFF PRG:1EFF D0 E5 ; ----------------------------------------------------------------------------- ; Routine: FrameTimedLogic_OnZero_DF01 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- FrameTimedLogic_OnZero_DF01: lda PPUSTATUS ; CPU:$DF01 PRG:1F01 AD 02 20 ldy #$FF ; CPU:$DF04 PRG:1F04 A0 FF ; ----------------------------------------------------------------------------- ; Routine: FrameTimedLogic_OnZero_DF06 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- FrameTimedLogic_OnZero_DF06: iny ; CPU:$DF06 PRG:1F06 C8 lda $024B,y ; CPU:$DF07 PRG:1F07 B9 4B 02 cmp #$FF ; CPU:$DF0A PRG:1F0A C9 FF beq FrameTimedLogic_OnZero_DF27 ; CPU:$DF0C PRG:1F0C F0 19 sta PPUADDR ; CPU:$DF0E PRG:1F0E 8D 06 20 iny ; CPU:$DF11 PRG:1F11 C8 lda $024B,y ; CPU:$DF12 PRG:1F12 B9 4B 02 sta PPUADDR ; CPU:$DF15 PRG:1F15 8D 06 20 ; ----------------------------------------------------------------------------- ; Routine: FrameTimedLogic_OnNonzero_DF18 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- FrameTimedLogic_OnNonzero_DF18: iny ; CPU:$DF18 PRG:1F18 C8 lda $024B,y ; CPU:$DF19 PRG:1F19 B9 4B 02 beq FrameTimedLogic_OnZero_DF06 ; CPU:$DF1C PRG:1F1C F0 E8 cmp #$FF ; CPU:$DF1E PRG:1F1E C9 FF beq FrameTimedLogic_OnZero_DF27 ; CPU:$DF20 PRG:1F20 F0 05 sta PPUDATA ; CPU:$DF22 PRG:1F22 8D 07 20 bne FrameTimedLogic_OnNonzero_DF18 ; CPU:$DF25 PRG:1F25 D0 F1 ; ----------------------------------------------------------------------------- ; Routine: FrameTimedLogic_OnZero_DF27 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- FrameTimedLogic_OnZero_DF27: sta $024B ; CPU:$DF27 PRG:1F27 8D 4B 02 rts ; CPU:$DF2A PRG:1F2A 60 ; ---- data $DF2B-$E18C (610 bytes) ---- ; referenced by `lda $DF2B,y` at $DEE9 (operand $DF2B falls inside this region) ; referenced by `lda $DF2C,y` at $DEEF (operand $DF2C falls inside this region) .byte $20, $B4, $20, $A2, $22, $D4, $22, $C2, $28, $B4, $28, $A2, $2A, $D4, $2A, $C2 ; CPU:$DF2B PRG:1F2B 20 B4 20 A2 22 D4 22 C2 28 B4 28 A2 2A D4 2A C2 .byte $A2, $00, $AD, $2A, $02, $C9, $09, $F0, $36, $E8, $E8, $C9, $03, $F0, $30, $C9 ; CPU:$DF3B PRG:1F3B A2 00 AD 2A 02 C9 09 F0 36 E8 E8 C9 03 F0 30 C9 .byte $01, $F0, $05, $C9, $02, $F0, $01, $60, $20, $22, $E0, $A5, $1A, $85, $02, $A5 ; CPU:$DF4B PRG:1F4B 01 F0 05 C9 02 F0 01 60 20 22 E0 A5 1A 85 02 A5 .byte $1C, $85, $03, $20, $22, $E2, $A2, $00, $A5, $03, $29, $07, $F0, $02, $E8, $E8 ; CPU:$DF5B PRG:1F5B 1C 85 03 20 22 E2 A2 00 A5 03 29 07 F0 02 E8 E8 .byte $A5, $02, $29, $0F, $C9, $04, $F0, $01, $E8, $A9, $07, $95, $6C, $A2, $04, $A9 ; CPU:$DF6B PRG:1F6B A5 02 29 0F C9 04 F0 01 E8 A9 07 95 6C A2 04 A9 .byte $00, $85, $D5, $85, $D6, $A5, $1A, $85, $02, $A5, $1C, $85, $03, $20, $22, $E2 ; CPU:$DF7B PRG:1F7B 00 85 D5 85 D6 A5 1A 85 02 A5 1C 85 03 20 22 E2 .byte $A0, $FF, $C8, $B9, $4B, $02, $C9, $FF, $D0, $F8, $98, $F0, $06, $A9, $00, $99 ; CPU:$DF8B PRG:1F8B A0 FF C8 B9 4B 02 C9 FF D0 F8 98 F0 06 A9 00 99 .byte $4B, $02, $C8, $A5, $03, $99, $4B, $02, $C8, $A5, $02, $99, $4B, $02, $C8, $BD ; CPU:$DF9B PRG:1F9B 4B 02 C8 A5 03 99 4B 02 C8 A5 02 99 4B 02 C8 BD .byte $02, $E0, $99, $4B, $02, $C8, $A9, $FF, $99, $4B, $02, $A9, $07, $8D, $2A, $02 ; CPU:$DFAB PRG:1FAB 02 E0 99 4B 02 C8 A9 FF 99 4B 02 A9 07 8D 2A 02 .byte $BD, $03, $E0, $85, $DC, $C6, $6A, $D0, $0C, $A9, $0C, $85, $3F, $A9, $00, $85 ; CPU:$DFBB PRG:1FBB BD 03 E0 85 DC C6 6A D0 0C A9 0C 85 3F A9 00 85 .byte $87, $A9, $48, $85, $4C, $A5, $6A, $C9, $37, $F0, $04, $C9, $86, $D0, $1B, $A9 ; CPU:$DFCB PRG:1FCB 87 A9 48 85 4C A5 6A C9 37 F0 04 C9 86 D0 1B A9 .byte $0A, $85, $D7, $A9, $3C, $85, $D8, $A4, $93, $B9, $1A, $E0, $85, $37, $A9, $03 ; CPU:$DFDB PRG:1FDB 0A 85 D7 A9 3C 85 D8 A4 93 B9 1A E0 85 37 A9 03 .byte $85, $3D, $A9, $60, $85, $2E, $A9, $80, $85, $30, $A5, $6A, $29, $01, $A8, $A9 ; CPU:$DFEB PRG:1FEB 85 3D A9 60 85 2E A9 80 85 30 A5 6A 29 01 A8 A9 .byte $01, $99, $04, $06, $4C, $A5, $E0, $08, $01, $07, $01, $07, $05, $A2, $00, $B5 ; CPU:$DFFB PRG:1FFB 01 99 04 06 4C A5 E0 08 01 07 01 07 05 A2 00 B5 .byte $BA, $D0, $05, $A9, $02, $95, $BA, $60, $E8, $E8, $E0, $06, $D0, $F1, $60, $24 ; CPU:$E00B PRG:200B BA D0 05 A9 02 95 BA 60 E8 E8 E0 06 D0 F1 60 24 .byte $25, $26, $27, $28, $29, $2A, $2B, $A5, $8C, $D0, $06, $A9, $1E, $85, $8A, $A9 ; CPU:$E01B PRG:201B 25 26 27 28 29 2A 2B A5 8C D0 06 A9 1E 85 8A A9 .byte $00, $85, $89, $A9, $0F, $85, $88, $A2, $03, $B5, $39, $29, $FC, $09, $01, $95 ; CPU:$E02B PRG:202B 00 85 89 A9 0F 85 88 A2 03 B5 39 29 FC 09 01 95 .byte $39, $CA, $10, $F5, $A9, $11, $8D, $AE, $02, $A9, $0F, $8D, $A9, $02, $A9, $00 ; CPU:$E03B PRG:203B 39 CA 10 F5 A9 11 8D AE 02 A9 0F 8D A9 02 A9 00 .byte $85, $D9, $A2, $00, $A9, $2F, $85, $00, $A9, $02, $85, $01, $A9, $1E, $85, $02 ; CPU:$E04B PRG:204B 85 D9 A2 00 A9 2F 85 00 A9 02 85 01 A9 1E 85 02 .byte $A9, $00, $85, $03, $A9, $0F, $C5, $88, $F0, $04, $A5, $D2, $D0, $27, $B5, $B8 ; CPU:$E05B PRG:205B A9 00 85 03 A9 0F C5 88 F0 04 A5 D2 D0 27 B5 B8 .byte $C9, $04, $D0, $21, $B5, $B9, $18, $69, $02, $29, $03, $85, $04, $A0, $00, $B1 ; CPU:$E06B PRG:206B C9 04 D0 21 B5 B9 18 69 02 29 03 85 04 A0 00 B1 .byte $02, $A0, $02, $11, $02, $29, $07, $D0, $08, $A4, $04, $B1, $00, $29, $F8, $D0 ; CPU:$E07B PRG:207B 02 A0 02 11 02 29 07 D0 08 A4 04 B1 00 29 F8 D0 .byte $04, $A5, $04, $95, $B9, $A5, $00, $18, $69, $04, $85, $00, $A5, $02, $18, $69 ; CPU:$E08B PRG:208B 04 A5 04 95 B9 A5 00 18 69 04 85 00 A5 02 18 69 .byte $04, $85, $02, $E8, $E8, $E0, $08, $D0, $C5, $60, $A5, $48, $F0, $01, $60, $A0 ; CPU:$E09B PRG:209B 04 85 02 E8 E8 E0 08 D0 C5 60 A5 48 F0 01 60 A0 .byte $00, $A9, $06, $85, $00, $18, $B9, $70, $00, $79, $DC, $00, $99, $70, $00, $C9 ; CPU:$E0AB PRG:20AB 00 A9 06 85 00 18 B9 70 00 79 DC 00 99 70 00 C9 .byte $0A, $90, $06, $E9, $0A, $99, $70, $00, $38, $A9, $00, $99, $DC, $00, $C8, $C6 ; CPU:$E0BB PRG:20BB 0A 90 06 E9 0A 99 70 00 38 A9 00 99 DC 00 C8 C6 .byte $00, $D0, $E3, $A2, $00, $88, $B9, $70, $00, $20, $8D, $E1, $C9, $30, $D0, $0F ; CPU:$E0CB PRG:20CB 00 D0 E3 A2 00 88 B9 70 00 20 8D E1 C9 30 D0 0F .byte $A9, $20, $9D, $3F, $02, $E8, $88, $D0, $ED, $B9, $70, $00, $20, $8D, $E1, $9D ; CPU:$E0DB PRG:20DB A9 20 9D 3F 02 E8 88 D0 ED B9 70 00 20 8D E1 9D .byte $3F, $02, $E8, $88, $10, $F3, $A5, $6B, $D0, $60, $A9, $01, $C5, $73, $D0, $5A ; CPU:$E0EB PRG:20EB 3F 02 E8 88 10 F3 A5 6B D0 60 A9 01 C5 73 D0 5A .byte $A9, $01, $85, $6B, $8D, $02, $06, $E6, $67, $A5, $67, $38, $E9, $02, $0A, $85 ; CPU:$E0FB PRG:20FB A9 01 85 6B 8D 02 06 E6 67 A5 67 38 E9 02 0A 85 .byte $00, $A0, $FF, $C8, $B9, $4B, $02, $C9, $FF, $D0, $F8, $98, $F0, $06, $A9, $00 ; CPU:$E10B PRG:210B 00 A0 FF C8 B9 4B 02 C9 FF D0 F8 98 F0 06 A9 00 .byte $99, $4B, $02, $C8, $A5, $46, $25, $47, $F0, $02, $A9, $08, $85, $01, $A2, $00 ; CPU:$E11B PRG:211B 99 4B 02 C8 A5 46 25 47 F0 02 A9 08 85 01 A2 00 .byte $BD, $7F, $E1, $18, $65, $01, $99, $4B, $02, $C8, $E8, $BD, $7F, $E1, $18, $65 ; CPU:$E12B PRG:212B BD 7F E1 18 65 01 99 4B 02 C8 E8 BD 7F E1 18 65 .byte $00, $99, $4B, $02, $A9, $03, $85, $02, $C8, $E8, $BD, $7F, $E1, $99, $4B, $02 ; CPU:$E13B PRG:213B 00 99 4B 02 A9 03 85 02 C8 E8 BD 7F E1 99 4B 02 .byte $C6, $02, $D0, $F4, $C8, $E8, $E0, $0A, $D0, $D6, $A0, $05, $B9, $61, $00, $D9 ; CPU:$E14B PRG:214B C6 02 D0 F4 C8 E8 E0 0A D0 D6 A0 05 B9 61 00 D9 .byte $70, $00, $F0, $03, $90, $05, $60, $88, $10, $F2, $60, $A2, $00, $BD, $3F, $02 ; CPU:$E15B PRG:215B 70 00 F0 03 90 05 60 88 10 F2 60 A2 00 BD 3F 02 .byte $9D, $45, $02, $E8, $E0, $06, $D0, $F5, $A2, $00, $B5, $70, $95, $61, $E8, $E0 ; CPU:$E16B PRG:216B 9D 45 02 E8 E0 06 D0 F5 A2 00 B5 70 95 61 E8 E0 .byte $06, $D0, $F7, $60, $23, $17, $3C, $3D, $00, $23, $37, $3E, $3F, $FF, $4A, $4A ; CPU:$E17B PRG:217B 06 D0 F7 60 23 17 3C 3D 00 23 37 3E 3F FF 4A 4A .byte $4A, $4A ; CPU:$E18B PRG:218B 4A 4A ; ----------------------------------------------------------------------------- ; Routine: BCDToDigit ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- BCDToDigit: and #$0F ; CPU:$E18D PRG:218D 29 0F cmp #$0A ; CPU:$E18F PRG:218F C9 0A bcs BCDToDigit_OnCarrySet_E196 ; CPU:$E191 PRG:2191 B0 03 adc #$30 ; CPU:$E193 PRG:2193 69 30 rts ; CPU:$E195 PRG:2195 60 ; ----------------------------------------------------------------------------- ; Routine: BCDToDigit_OnCarrySet_E196 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- BCDToDigit_OnCarrySet_E196: adc #$36 ; CPU:$E196 PRG:2196 69 36 rts ; CPU:$E198 PRG:2198 60 ; ---- data $E199-$E221 (137 bytes) ---- .byte $A5, $1A, $85, $02, $A5, $1C, $85, $03, $20, $22, $E2, $A5, $03, $8D, $00, $02 ; CPU:$E199 PRG:2199 A5 1A 85 02 A5 1C 85 03 20 22 E2 A5 03 8D 00 02 .byte $A5, $02, $8D, $01, $02, $A2, $00, $A0, $00, $B5, $1A, $85, $02, $B5, $1C, $85 ; CPU:$E1A9 PRG:21A9 A5 02 8D 01 02 A2 00 A0 00 B5 1A 85 02 B5 1C 85 .byte $03, $20, $22, $E2, $A9, $20, $85, $14, $A9, $00, $85, $15, $A5, $02, $85, $12 ; CPU:$E1B9 PRG:21B9 03 20 22 E2 A9 20 85 14 A9 00 85 15 A5 02 85 12 .byte $A5, $03, $85, $13, $20, $93, $E2, $A5, $13, $99, $02, $02, $A5, $12, $C8, $99 ; CPU:$E1C9 PRG:21C9 A5 03 85 13 20 93 E2 A5 13 99 02 02 A5 12 C8 99 .byte $02, $02, $A5, $03, $C8, $99, $02, $02, $A5, $02, $38, $E9, $01, $C8, $99, $02 ; CPU:$E1D9 PRG:21D9 02 02 A5 03 C8 99 02 02 A5 02 38 E9 01 C8 99 02 .byte $02, $A9, $20, $85, $14, $A9, $00, $85, $15, $A5, $02, $85, $12, $A5, $03, $85 ; CPU:$E1E9 PRG:21E9 02 A9 20 85 14 A9 00 85 15 A5 02 85 12 A5 03 85 .byte $13, $20, $85, $E2, $A5, $13, $C8, $99, $02, $02, $A5, $12, $C8, $99, $02, $02 ; CPU:$E1F9 PRG:21F9 13 20 85 E2 A5 13 C8 99 02 02 A5 12 C8 99 02 02 .byte $A5, $03, $C8, $99, $02, $02, $A5, $02, $18, $69, $01, $C8, $99, $02, $02, $E8 ; CPU:$E209 PRG:2209 A5 03 C8 99 02 02 A5 02 18 69 01 C8 99 02 02 E8 .byte $E8, $E8, $E8, $C8, $C0, $28, $D0, $91, $60 ; CPU:$E219 PRG:2219 E8 E8 E8 C8 C0 28 D0 91 60 ; ----------------------------------------------------------------------------- ; Routine: BCDToDigit_Entry_E222 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- BCDToDigit_Entry_E222: lda #$00 ; CPU:$E222 PRG:2222 A9 00 sta Zp05 ; CPU:$E224 PRG:2224 85 05 lda Zp03 ; CPU:$E226 PRG:2226 A5 03 sec ; CPU:$E228 PRG:2228 38 sbc #$04 ; CPU:$E229 PRG:2229 E9 04 and #$F8 ; CPU:$E22B PRG:222B 29 F8 asl a ; CPU:$E22D PRG:222D 0A rol Zp05 ; CPU:$E22E PRG:222E 26 05 asl a ; CPU:$E230 PRG:2230 0A rol Zp05 ; CPU:$E231 PRG:2231 26 05 clc ; CPU:$E233 PRG:2233 18 adc #$40 ; CPU:$E234 PRG:2234 69 40 sta Zp04 ; CPU:$E236 PRG:2236 85 04 lda #$00 ; CPU:$E238 PRG:2238 A9 00 adc Zp05 ; CPU:$E23A PRG:223A 65 05 sta Zp05 ; CPU:$E23C PRG:223C 85 05 lda Zp02 ; CPU:$E23E PRG:223E A5 02 sec ; CPU:$E240 PRG:2240 38 sbc #$04 ; CPU:$E241 PRG:2241 E9 04 lsr a ; CPU:$E243 PRG:2243 4A lsr a ; CPU:$E244 PRG:2244 4A lsr a ; CPU:$E245 PRG:2245 4A clc ; CPU:$E246 PRG:2246 18 adc Zp04 ; CPU:$E247 PRG:2247 65 04 sta Zp02 ; CPU:$E249 PRG:2249 85 02 lda Zp05 ; CPU:$E24B PRG:224B A5 05 clc ; CPU:$E24D PRG:224D 18 adc #$20 ; CPU:$E24E PRG:224E 69 20 sta Zp03 ; CPU:$E250 PRG:2250 85 03 lda CocktailModeFlag ; CPU:$E252 PRG:2252 A5 46 and ActivePlayerFlag ; CPU:$E254 PRG:2254 25 47 bne BCDToDigit_OnNonzero_E259 ; CPU:$E256 PRG:2256 D0 01 rts ; CPU:$E258 PRG:2258 60 ; ----------------------------------------------------------------------------- ; Routine: BCDToDigit_OnNonzero_E259 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- BCDToDigit_OnNonzero_E259: lda Zp03 ; CPU:$E259 PRG:2259 A5 03 clc ; CPU:$E25B PRG:225B 18 adc #$08 ; CPU:$E25C PRG:225C 69 08 sta Zp03 ; CPU:$E25E PRG:225E 85 03 rts ; CPU:$E260 PRG:2260 60 ; ----------------------------------------------------------------------------- ; Routine: UpdateGameLogic ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateGameLogic: ldx #$00 ; CPU:$E261 PRG:2261 A2 00 ldy #$00 ; CPU:$E263 PRG:2263 A0 00 lda PPUSTATUS ; CPU:$E265 PRG:2265 AD 02 20 ; ----------------------------------------------------------------------------- ; Routine: UpdateGameLogic_OnNonzero_E268 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateGameLogic_OnNonzero_E268: lda $0200,x ; CPU:$E268 PRG:2268 BD 00 02 sta PPUADDR ; CPU:$E26B PRG:226B 8D 06 20 inx ; CPU:$E26E PRG:226E E8 lda $0200,x ; CPU:$E26F PRG:226F BD 00 02 sta PPUADDR ; CPU:$E272 PRG:2272 8D 06 20 lda PPUDATA ; CPU:$E275 PRG:2275 AD 07 20 lda PPUDATA ; CPU:$E278 PRG:2278 AD 07 20 sta $022A,y ; CPU:$E27B PRG:227B 99 2A 02 inx ; CPU:$E27E PRG:227E E8 iny ; CPU:$E27F PRG:227F C8 cpx #$2A ; CPU:$E280 PRG:2280 E0 2A bne UpdateGameLogic_OnNonzero_E268 ; CPU:$E282 PRG:2282 D0 E4 rts ; CPU:$E284 PRG:2284 60 ; ----------------------------------------------------------------------------- ; Routine: UpdateGameLogic_Return_E285 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateGameLogic_Return_E285: clc ; CPU:$E285 PRG:2285 18 lda ScoreAccumLo ; CPU:$E286 PRG:2286 A5 12 adc ScoreAddendLo ; CPU:$E288 PRG:2288 65 14 sta ScoreAccumLo ; CPU:$E28A PRG:228A 85 12 lda ScoreAccumHi ; CPU:$E28C PRG:228C A5 13 adc ScoreAddendHi ; CPU:$E28E PRG:228E 65 15 sta ScoreAccumHi ; CPU:$E290 PRG:2290 85 13 rts ; CPU:$E292 PRG:2292 60 ; ----------------------------------------------------------------------------- ; Routine: UpdateGameLogic_Return_E293 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateGameLogic_Return_E293: sec ; CPU:$E293 PRG:2293 38 lda ScoreAccumLo ; CPU:$E294 PRG:2294 A5 12 sbc ScoreAddendLo ; CPU:$E296 PRG:2296 E5 14 sta ScoreAccumLo ; CPU:$E298 PRG:2298 85 12 lda ScoreAccumHi ; CPU:$E29A PRG:229A A5 13 sbc ScoreAddendHi ; CPU:$E29C PRG:229C E5 15 sta ScoreAccumHi ; CPU:$E29E PRG:229E 85 13 rts ; CPU:$E2A0 PRG:22A0 60 ; ---- data $E2A1-$E343 (163 bytes) ---- .byte $A9, $20, $85, $02, $A9, $40, $85, $03, $A5, $47, $25, $46, $F0, $04, $A9, $28 ; CPU:$E2A1 PRG:22A1 A9 20 85 02 A9 40 85 03 A5 47 25 46 F0 04 A9 28 .byte $85, $02, $AD, $F9, $FF, $85, $01, $AD, $F8, $FF, $85, $00, $A2, $1B, $A0, $00 ; CPU:$E2B1 PRG:22B1 85 02 AD F9 FF 85 01 AD F8 FF 85 00 A2 1B A0 00 .byte $AD, $02, $20, $A5, $02, $8D, $06, $20, $A5, $03, $8D, $06, $20, $A9, $16, $85 ; CPU:$E2C1 PRG:22C1 AD 02 20 A5 02 8D 06 20 A5 03 8D 06 20 A9 16 85 .byte $04, $A9, $00, $85, $05, $B1, $00, $0A, $26, $05, $0A, $26, $05, $B1, $00, $29 ; CPU:$E2D1 PRG:22D1 04 A9 00 85 05 B1 00 0A 26 05 0A 26 05 B1 00 29 .byte $3F, $8D, $07, $20, $C6, $04, $C6, $05, $10, $F7, $C8, $D0, $02, $E6, $01, $A5 ; CPU:$E2E1 PRG:22E1 3F 8D 07 20 C6 04 C6 05 10 F7 C8 D0 02 E6 01 A5 .byte $04, $D0, $DE, $A5, $03, $18, $69, $20, $85, $03, $A5, $02, $69, $00, $85, $02 ; CPU:$E2F1 PRG:22F1 04 D0 DE A5 03 18 69 20 85 03 A5 02 69 00 85 02 .byte $CA, $D0, $BD, $A0, $02, $A9, $21, $85, $00, $A9, $D6, $85, $01, $A5, $47, $25 ; CPU:$E301 PRG:2301 CA D0 BD A0 02 A9 21 85 00 A9 D6 85 01 A5 47 25 .byte $46, $F0, $04, $A9, $29, $85, $00, $A2, $07, $AD, $02, $20, $A5, $00, $8D, $06 ; CPU:$E311 PRG:2311 46 F0 04 A9 29 85 00 A2 07 AD 02 20 A5 00 8D 06 .byte $20, $A5, $01, $8D, $06, $20, $B9, $41, $E3, $8D, $07, $20, $CA, $10, $FA, $A5 ; CPU:$E321 PRG:2321 20 A5 01 8D 06 20 B9 41 E3 8D 07 20 CA 10 FA A5 .byte $01, $18, $69, $20, $85, $01, $A9, $00, $65, $00, $85, $00, $88, $10, $D8, $60 ; CPU:$E331 PRG:2331 01 18 69 20 85 01 A9 00 65 00 85 00 88 10 D8 60 .byte $2D, $04, $2D ; CPU:$E341 PRG:2341 2D 04 2D ; ----------------------------------------------------------------------------- ; Routine: WaitVBlankStart ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- WaitVBlankStart: lda PPUSTATUS ; CPU:$E344 PRG:2344 AD 02 20 lda #$20 ; CPU:$E347 PRG:2347 A9 20 sta PPUADDR ; CPU:$E349 PRG:2349 8D 06 20 lda #$00 ; CPU:$E34C PRG:234C A9 00 sta PPUADDR ; CPU:$E34E PRG:234E 8D 06 20 lda #$01 ; CPU:$E351 PRG:2351 A9 01 sta Zp02 ; CPU:$E353 PRG:2353 85 02 ; ----------------------------------------------------------------------------- ; Routine: Sub_E355_StoreAndContinue_E355 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E355_StoreAndContinue_E355: lda #$01 ; CPU:$E355 PRG:2355 A9 01 sta Zp03 ; CPU:$E357 PRG:2357 85 03 lda #$03 ; CPU:$E359 PRG:2359 A9 03 sta Zp00 ; CPU:$E35B PRG:235B 85 00 lda #$C0 ; CPU:$E35D PRG:235D A9 C0 sta Zp01 ; CPU:$E35F PRG:235F 85 01 lda #$20 ; CPU:$E361 PRG:2361 A9 20 ; ----------------------------------------------------------------------------- ; Routine: Sub_E355_JoinBranchPaths_E363 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E355_JoinBranchPaths_E363: sta PPUDATA ; CPU:$E363 PRG:2363 8D 07 20 dec Zp01 ; CPU:$E366 PRG:2366 C6 01 bne Sub_E355_JoinBranchPaths_E363 ; CPU:$E368 PRG:2368 D0 F9 dec Zp00 ; CPU:$E36A PRG:236A C6 00 bpl Sub_E355_JoinBranchPaths_E363 ; CPU:$E36C PRG:236C 10 F5 dec Zp03 ; CPU:$E36E PRG:236E C6 03 bne Sub_E355_OnNonzero_E37A ; CPU:$E370 PRG:2370 D0 08 lda #$40 ; CPU:$E372 PRG:2372 A9 40 sta Zp01 ; CPU:$E374 PRG:2374 85 01 lda #$00 ; CPU:$E376 PRG:2376 A9 00 beq Sub_E355_JoinBranchPaths_E363 ; CPU:$E378 PRG:2378 F0 E9 ; ----------------------------------------------------------------------------- ; Routine: Sub_E355_OnNonzero_E37A ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E355_OnNonzero_E37A: dec Zp02 ; CPU:$E37A PRG:237A C6 02 bne Sub_E355_OnNonzero_E38E ; CPU:$E37C PRG:237C D0 10 lda PPUSTATUS ; CPU:$E37E PRG:237E AD 02 20 lda #$28 ; CPU:$E381 PRG:2381 A9 28 sta PPUADDR ; CPU:$E383 PRG:2383 8D 06 20 lda #$00 ; CPU:$E386 PRG:2386 A9 00 sta PPUADDR ; CPU:$E388 PRG:2388 8D 06 20 jmp Sub_E355_StoreAndContinue_E355 ; ; ----------------------------------------------------------------------------- ; Routine: Sub_E355_OnNonzero_E38E ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E355_OnNonzero_E38E: lda #$01 ; CPU:$E38E PRG:238E A9 01 sta Zp00 ; CPU:$E390 PRG:2390 85 00 lda PPUSTATUS ; CPU:$E392 PRG:2392 AD 02 20 lda #$23 ; CPU:$E395 PRG:2395 A9 23 sta PPUADDR ; CPU:$E397 PRG:2397 8D 06 20 lda #$C0 ; CPU:$E39A PRG:239A A9 C0 sta PPUADDR ; CPU:$E39C PRG:239C 8D 06 20 ; ----------------------------------------------------------------------------- ; Routine: Sub_E355_OnNonzero_E39F ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E355_OnNonzero_E39F: lda #$00 ; CPU:$E39F PRG:239F A9 00 tay ; CPU:$E3A1 PRG:23A1 A8 ; ----------------------------------------------------------------------------- ; Routine: Sub_E355_OnNonzero_E3A2 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E355_OnNonzero_E3A2: sta PPUDATA ; CPU:$E3A2 PRG:23A2 8D 07 20 iny ; CPU:$E3A5 PRG:23A5 C8 cpy #$20 ; CPU:$E3A6 PRG:23A6 C0 20 bne Sub_E355_OnNonzero_E3A2 ; CPU:$E3A8 PRG:23A8 D0 F8 dec Zp00 ; CPU:$E3AA PRG:23AA C6 00 bne Sub_E355_OnNonzero_E3AF ; CPU:$E3AC PRG:23AC D0 01 rts ; CPU:$E3AE PRG:23AE 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_E355_OnNonzero_E3AF ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E355_OnNonzero_E3AF: lda PPUSTATUS ; CPU:$E3AF PRG:23AF AD 02 20 lda #$2B ; CPU:$E3B2 PRG:23B2 A9 2B sta PPUADDR ; CPU:$E3B4 PRG:23B4 8D 06 20 lda #$C0 ; CPU:$E3B7 PRG:23B7 A9 C0 sta PPUADDR ; CPU:$E3B9 PRG:23B9 8D 06 20 bne Sub_E355_OnNonzero_E39F ; CPU:$E3BC PRG:23BC D0 E1 lda #$20 ; CPU:$E3BE PRG:23BE A9 20 sta Zp00 ; CPU:$E3C0 PRG:23C0 85 00 lda #$B6 ; CPU:$E3C2 PRG:23C2 A9 B6 sta Zp01 ; CPU:$E3C4 PRG:23C4 85 01 lda #$80 ; CPU:$E3C6 PRG:23C6 A9 80 sta Zp04 ; CPU:$E3C8 PRG:23C8 85 04 ldx #$00 ; CPU:$E3CA PRG:23CA A2 00 lda ActivePlayerFlag ; CPU:$E3CC PRG:23CC A5 47 and CocktailModeFlag ; CPU:$E3CE PRG:23CE 25 46 beq SetupPPUWrite2_JoinBranchPaths_E3EA ; CPU:$E3D0 PRG:23D0 F0 18 lda #$28 ; CPU:$E3D2 PRG:23D2 A9 28 sta Zp00 ; CPU:$E3D4 PRG:23D4 85 00 bne SetupPPUWrite2_JoinBranchPaths_E3EA ; CPU:$E3D6 PRG:23D6 D0 12 ; ----------------------------------------------------------------------------- ; Routine: SetupPPUWrite2 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUWrite2: lda #$20 ; CPU:$E3D8 PRG:23D8 A9 20 sta Zp00 ; CPU:$E3DA PRG:23DA 85 00 lda #$83 ; CPU:$E3DC PRG:23DC A9 83 sta Zp01 ; CPU:$E3DE PRG:23DE 85 01 lda #$09 ; CPU:$E3E0 PRG:23E0 A9 09 sta Zp04 ; CPU:$E3E2 PRG:23E2 85 04 lda #$01 ; CPU:$E3E4 PRG:23E4 A9 01 sta ActivePlayerFlag ; CPU:$E3E6 PRG:23E6 85 47 ldx #$0C ; CPU:$E3E8 PRG:23E8 A2 0C ; ----------------------------------------------------------------------------- ; Routine: SetupPPUWrite2_JoinBranchPaths_E3EA ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUWrite2_JoinBranchPaths_E3EA: lda ActivePlayerFlag ; CPU:$E3EA PRG:23EA A5 47 and CocktailModeFlag ; CPU:$E3EC PRG:23EC 25 46 beq SetupPPUWrite2_OnZero_E3F5 ; CPU:$E3EE PRG:23EE F0 05 txa ; CPU:$E3F0 PRG:23F0 8A clc ; CPU:$E3F1 PRG:23F1 18 adc #$06 ; CPU:$E3F2 PRG:23F2 69 06 tax ; CPU:$E3F4 PRG:23F4 AA ; ----------------------------------------------------------------------------- ; Routine: SetupPPUWrite2_OnZero_E3F5 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUWrite2_OnZero_E3F5: lda #$03 ; CPU:$E3F5 PRG:23F5 A9 03 sta Zp05 ; CPU:$E3F7 PRG:23F7 85 05 ; ----------------------------------------------------------------------------- ; Routine: SetupPPUWrite2_OnNonzero_E3F9 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUWrite2_OnNonzero_E3F9: lda PPUSTATUS ; CPU:$E3F9 PRG:23F9 AD 02 20 lda Zp00 ; CPU:$E3FC PRG:23FC A5 00 sta PPUADDR ; CPU:$E3FE PRG:23FE 8D 06 20 lda Zp01 ; CPU:$E401 PRG:2401 A5 01 sta PPUADDR ; CPU:$E403 PRG:2403 8D 06 20 lda $E45E,x ; CPU:$E406 PRG:2406 BD 5E E4 sta Zp02 ; CPU:$E409 PRG:2409 85 02 lda $E45F,x ; CPU:$E40B PRG:240B BD 5F E4 sta Zp03 ; CPU:$E40E PRG:240E 85 03 jsr Sub_E433_Return_E433 ; inx ; CPU:$E413 PRG:2413 E8 inx ; CPU:$E414 PRG:2414 E8 lda Zp01 ; CPU:$E415 PRG:2415 A5 01 clc ; CPU:$E417 PRG:2417 18 adc Zp04 ; CPU:$E418 PRG:2418 65 04 sta Zp01 ; CPU:$E41A PRG:241A 85 01 lda #$00 ; CPU:$E41C PRG:241C A9 00 adc Zp00 ; CPU:$E41E PRG:241E 65 00 sta Zp00 ; CPU:$E420 PRG:2420 85 00 dec Zp05 ; CPU:$E422 PRG:2422 C6 05 lda Zp05 ; CPU:$E424 PRG:2424 A5 05 cmp #$01 ; CPU:$E426 PRG:2426 C9 01 bne SetupPPUWrite2_OnNonzero_E42E ; CPU:$E428 PRG:2428 D0 04 lda ActivePlayerFlag ; CPU:$E42A PRG:242A A5 47 beq SetupPPUWrite2_OnZero_E432 ; CPU:$E42C PRG:242C F0 04 ; ----------------------------------------------------------------------------- ; Routine: SetupPPUWrite2_OnNonzero_E42E ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUWrite2_OnNonzero_E42E: lda Zp05 ; CPU:$E42E PRG:242E A5 05 bne SetupPPUWrite2_OnNonzero_E3F9 ; CPU:$E430 PRG:2430 D0 C7 ; ----------------------------------------------------------------------------- ; Routine: SetupPPUWrite2_OnZero_E432 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- SetupPPUWrite2_OnZero_E432: rts ; CPU:$E432 PRG:2432 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_E433_Return_E433 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E433_Return_E433: ldy #$05 ; CPU:$E433 PRG:2433 A0 05 ; ----------------------------------------------------------------------------- ; Routine: Sub_E433_OnNonzero_E435 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E433_OnNonzero_E435: lda (Zp02),y ; CPU:$E435 PRG:2435 B1 02 and #$0F ; CPU:$E437 PRG:2437 29 0F bne Sub_E433_OnNonzero_E447 ; CPU:$E439 PRG:2439 D0 0C lda #$20 ; CPU:$E43B PRG:243B A9 20 sta PPUDATA ; CPU:$E43D PRG:243D 8D 07 20 dey ; CPU:$E440 PRG:2440 88 bne Sub_E433_OnNonzero_E435 ; CPU:$E441 PRG:2441 D0 F2 beq Sub_E433_OnZero_E450 ; CPU:$E443 PRG:2443 F0 0B ; ----------------------------------------------------------------------------- ; Routine: Sub_E433_OnNonzero_E445 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E433_OnNonzero_E445: lda (Zp02),y ; CPU:$E445 PRG:2445 B1 02 ; ----------------------------------------------------------------------------- ; Routine: Sub_E433_OnNonzero_E447 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E433_OnNonzero_E447: jsr BCDToDigit ; sta PPUDATA ; CPU:$E44A PRG:244A 8D 07 20 dey ; CPU:$E44D PRG:244D 88 bne Sub_E433_OnNonzero_E445 ; CPU:$E44E PRG:244E D0 F5 ; ----------------------------------------------------------------------------- ; Routine: Sub_E433_OnZero_E450 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E433_OnZero_E450: lda (Zp02),y ; CPU:$E450 PRG:2450 B1 02 jsr BCDToDigit ; sta PPUDATA ; CPU:$E455 PRG:2455 8D 07 20 lda #$30 ; CPU:$E458 PRG:2458 A9 30 sta PPUDATA ; CPU:$E45A PRG:245A 8D 07 20 rts ; CPU:$E45D PRG:245D 60 ; ---- data $E45E-$E46F (18 bytes) ---- ; referenced by `lda $E45E,x` at $E406 (operand $E45E falls inside this region) ; referenced by `lda $E45F,x` at $E40B (operand $E45F falls inside this region) .byte $61, $00, $70, $00, $80, $00, $61, $00, $80, $00, $70, $00, $70, $00, $61, $00 ; CPU:$E45E PRG:245E 61 00 70 00 80 00 61 00 80 00 70 00 70 00 61 00 .byte $80, $00 ; CPU:$E46E PRG:246E 80 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_E470_Entry_E470 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E470_Entry_E470: ldy #$FF ; CPU:$E470 PRG:2470 A0 FF sty Zp0C ; CPU:$E472 PRG:2472 84 0C sty Zp0D ; CPU:$E474 PRG:2474 84 0D sty Zp0E ; CPU:$E476 PRG:2476 84 0E sty Zp0F ; CPU:$E478 PRG:2478 84 0F iny ; CPU:$E47A PRG:247A C8 ; ----------------------------------------------------------------------------- ; Routine: Sub_E470_OnNonzero_E47B ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E470_OnNonzero_E47B: lda (Zp00),y ; CPU:$E47B PRG:247B B1 00 cmp Zp0A ; CPU:$E47D PRG:247D C5 0A beq Sub_E470_OnZero_E489 ; CPU:$E47F PRG:247F F0 08 and #$F8 ; CPU:$E481 PRG:2481 29 F8 beq Sub_E470_OnZero_E489 ; CPU:$E483 PRG:2483 F0 04 cmp Zp0B ; CPU:$E485 PRG:2485 C5 0B bne Sub_E470_OnNonzero_E48D ; CPU:$E487 PRG:2487 D0 04 ; ----------------------------------------------------------------------------- ; Routine: Sub_E470_OnZero_E489 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E470_OnZero_E489: tya ; CPU:$E489 PRG:2489 98 sta a:Zp0C,y ; CPU:$E48A PRG:248A 99 0C 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_E470_OnNonzero_E48D ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E470_OnNonzero_E48D: iny ; CPU:$E48D PRG:248D C8 cpy #$04 ; CPU:$E48E PRG:248E C0 04 bne Sub_E470_OnNonzero_E47B ; CPU:$E490 PRG:2490 D0 E9 lda ZpB9,x ; CPU:$E492 PRG:2492 B5 B9 clc ; CPU:$E494 PRG:2494 18 adc #$02 ; CPU:$E495 PRG:2495 69 02 and #$03 ; CPU:$E497 PRG:2497 29 03 tay ; CPU:$E499 PRG:2499 A8 lda #$FF ; CPU:$E49A PRG:249A A9 FF sta a:Zp0C,y ; CPU:$E49C PRG:249C 99 0C 00 lda #$03 ; CPU:$E49F PRG:249F A9 03 sta Zp0B ; CPU:$E4A1 PRG:24A1 85 0B ; ----------------------------------------------------------------------------- ; Routine: Sub_E470_OnNonzero_E4A3 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E470_OnNonzero_E4A3: ldy #$00 ; CPU:$E4A3 PRG:24A3 A0 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_E470_OnNonzero_E4A5 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E470_OnNonzero_E4A5: lda a:Zp0C,y ; CPU:$E4A5 PRG:24A5 B9 0C 00 cmp #$FF ; CPU:$E4A8 PRG:24A8 C9 FF bne Sub_E470_OnNonzero_E4B7 ; CPU:$E4AA PRG:24AA D0 0B lda a:Zp0D,y ; CPU:$E4AC PRG:24AC B9 0D 00 sta a:Zp0C,y ; CPU:$E4AF PRG:24AF 99 0C 00 lda #$FF ; CPU:$E4B2 PRG:24B2 A9 FF sta a:Zp0D,y ; CPU:$E4B4 PRG:24B4 99 0D 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_E470_OnNonzero_E4B7 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E470_OnNonzero_E4B7: iny ; CPU:$E4B7 PRG:24B7 C8 cpy #$03 ; CPU:$E4B8 PRG:24B8 C0 03 bne Sub_E470_OnNonzero_E4A5 ; CPU:$E4BA PRG:24BA D0 E9 dec Zp0B ; CPU:$E4BC PRG:24BC C6 0B bne Sub_E470_OnNonzero_E4A3 ; CPU:$E4BE PRG:24BE D0 E3 rts ; CPU:$E4C0 PRG:24C0 60 ; ---- data $E4C1-$E9D7 (1303 bytes) ---- .byte $A2, $01, $A0, $00, $B9, $FB, $E4, $E0, $00, $D0, $02, $69, $07, $8D, $06, $20 ; CPU:$E4C1 PRG:24C1 A2 01 A0 00 B9 FB E4 E0 00 D0 02 69 07 8D 06 20 .byte $C8, $B9, $FB, $E4, $8D, $06, $20, $C8, $B9, $FB, $E4, $85, $00, $C8, $B9, $FB ; CPU:$E4D1 PRG:24D1 C8 B9 FB E4 8D 06 20 C8 B9 FB E4 85 00 C8 B9 FB .byte $E4, $8D, $07, $20, $C6, $00, $D0, $F5, $C8, $C0, $11, $D0, $05, $A5, $47, $D0 ; CPU:$E4E1 PRG:24E1 E4 8D 07 20 C6 00 D0 F5 C8 C0 11 D0 05 A5 47 D0 .byte $01, $60, $C0, $17, $D0, $CE, $CA, $F0, $C9, $60, $20, $76, $08, $B4, $B5, $B6 ; CPU:$E4F1 PRG:24F1 01 60 C0 17 D0 CE CA F0 C9 60 20 76 08 B4 B5 B6 .byte $B7, $B8, $B9, $BA, $BB, $20, $F7, $03, $B0, $B3, $B2, $21, $77, $03, $B1, $B3 ; CPU:$E501 PRG:2501 B7 B8 B9 BA BB 20 F7 03 B0 B3 B2 21 77 03 B1 B3 .byte $B2, $A5, $67, $D0, $01, $60, $18, $69, $01, $C9, $07, $90, $02, $A9, $07, $85 ; CPU:$E511 PRG:2511 B2 A5 67 D0 01 60 18 69 01 C9 07 90 02 A9 07 85 .byte $02, $A9, $04, $85, $03, $A9, $23, $85, $00, $A9, $17, $85, $01, $A5, $46, $25 ; CPU:$E521 PRG:2521 02 A9 04 85 03 A9 23 85 00 A9 17 85 01 A5 46 25 .byte $47, $F0, $07, $A5, $00, $18, $69, $08, $85, $00, $C6, $02, $D0, $01, $60, $C6 ; CPU:$E531 PRG:2531 47 F0 07 A5 00 18 69 08 85 00 C6 02 D0 01 60 C6 .byte $03, $D0, $07, $A5, $01, $18, $69, $3A, $85, $01, $A0, $3C, $20, $59, $E5, $A5 ; CPU:$E541 PRG:2541 03 D0 07 A5 01 18 69 3A 85 01 A0 3C 20 59 E5 A5 .byte $01, $18, $69, $02, $85, $01, $D0, $E2, $A5, $00, $8D, $06, $20, $A5, $01, $8D ; CPU:$E551 PRG:2551 01 18 69 02 85 01 D0 E2 A5 00 8D 06 20 A5 01 8D .byte $06, $20, $8C, $07, $20, $C8, $8C, $07, $20, $A5, $00, $8D, $06, $20, $A5, $01 ; CPU:$E561 PRG:2561 06 20 8C 07 20 C8 8C 07 20 A5 00 8D 06 20 A5 01 .byte $18, $69, $20, $8D, $06, $20, $C8, $8C, $07, $20, $C8, $8C, $07, $20, $60, $A9 ; CPU:$E571 PRG:2571 18 69 20 8D 06 20 C8 8C 07 20 C8 8C 07 20 60 A9 .byte $00, $85, $03, $85, $0E, $85, $0F, $A9, $15, $85, $0A, $A9, $11, $85, $0D, $A9 ; CPU:$E581 PRG:2581 00 85 03 85 0E 85 0F A9 15 85 0A A9 11 85 0D A9 .byte $05, $85, $0B, $85, $0C, $A5, $68, $85, $02, $38, $E9, $07, $90, $0D, $C9, $0C ; CPU:$E591 PRG:2591 05 85 0B 85 0C A5 68 85 02 38 E9 07 90 0D C9 0C .byte $90, $02, $A9, $0C, $AA, $A9, $07, $85, $02, $D0, $02, $A2, $00, $A9, $22, $85 ; CPU:$E5A1 PRG:25A1 90 02 A9 0C AA A9 07 85 02 D0 02 A2 00 A9 22 85 .byte $00, $A9, $56, $85, $01, $A5, $46, $25, $47, $F0, $07, $A5, $00, $18, $69, $08 ; CPU:$E5B1 PRG:25B1 00 A9 56 85 01 A5 46 25 47 F0 07 A5 00 18 69 08 .byte $85, $00, $A9, $05, $85, $04, $C6, $04, $D0, $07, $A5, $01, $18, $69, $38, $85 ; CPU:$E5C1 PRG:25C1 85 00 A9 05 85 04 C6 04 D0 07 A5 01 18 69 38 85 .byte $01, $BD, $59, $E6, $85, $05, $0A, $0A, $69, $60, $A8, $20, $59, $E5, $A4, $03 ; CPU:$E5D1 PRG:25D1 01 BD 59 E6 85 05 0A 0A 69 60 A8 20 59 E5 A4 03 .byte $B9, $6D, $E6, $85, $06, $B9, $6E, $E6, $85, $07, $A4, $05, $B9, $7D, $E6, $C6 ; CPU:$E5E1 PRG:25E1 B9 6D E6 85 06 B9 6E E6 85 07 A4 05 B9 7D E6 C6 .byte $07, $30, $04, $0A, $0A, $90, $F8, $A4, $06, $19, $0A, $00, $99, $0A, $00, $A5 ; CPU:$E5F1 PRG:25F1 07 30 04 0A 0A 90 F8 A4 06 19 0A 00 99 0A 00 A5 .byte $01, $18, $69, $02, $85, $01, $E6, $03, $E6, $03, $E8, $C6, $02, $10, $B7, $A2 ; CPU:$E601 PRG:2601 01 18 69 02 85 01 E6 03 E6 03 E8 C6 02 10 B7 A2 .byte $23, $A5, $47, $25, $46, $F0, $02, $A2, $2B, $8E, $06, $20, $86, $00, $A9, $E5 ; CPU:$E611 PRG:2611 23 A5 47 25 46 F0 02 A2 2B 8E 06 20 86 00 A9 E5 .byte $8D, $06, $20, $A2, $00, $A9, $03, $85, $01, $B5, $0A, $8D, $07, $20, $E8, $C6 ; CPU:$E621 PRG:2621 8D 06 20 A2 00 A9 03 85 01 B5 0A 8D 07 20 E8 C6 .byte $01, $D0, $F6, $E6, $02, $D0, $0C, $A5, $00, $8D, $06, $20, $A9, $ED, $8D, $06 ; CPU:$E631 PRG:2631 01 D0 F6 E6 02 D0 0C A5 00 8D 06 20 A9 ED 8D 06 .byte $20, $D0, $E2, $A5, $68, $C9, $10, $90, $02, $A9, $0F, $A8, $B9, $85, $E6, $8D ; CPU:$E641 PRG:2641 20 D0 E2 A5 68 C9 10 90 02 A9 0F A8 B9 85 E6 8D .byte $B6, $02, $A9, $0F, $8D, $A9, $02, $60, $00, $01, $02, $02, $03, $03, $04, $04 ; CPU:$E651 PRG:2651 B6 02 A9 0F 8D A9 02 60 00 01 02 02 03 03 04 04 .byte $05, $05, $06, $06, $07, $07, $07, $07, $07, $07, $07, $07, $00, $03, $01, $02 ; CPU:$E661 PRG:2661 05 05 06 06 07 07 07 07 07 07 07 07 00 03 01 02 .byte $01, $03, $02, $02, $03, $01, $04, $00, $04, $01, $05, $00, $02, $02, $02, $02 ; CPU:$E671 PRG:2671 01 03 02 02 03 01 04 00 04 01 05 00 02 02 02 02 .byte $03, $03, $03, $03, $16, $16, $26, $26, $06, $06, $19, $19, $17, $17, $17, $17 ; CPU:$E681 PRG:2681 03 03 03 03 16 16 26 26 06 06 19 19 17 17 17 17 .byte $12, $12, $12, $12, $A9, $08, $85, $43, $8D, $00, $20, $AD, $02, $20, $10, $FB ; CPU:$E691 PRG:2691 12 12 12 12 A9 08 85 43 8D 00 20 AD 02 20 10 FB .byte $A9, $01, $8D, $0D, $06, $8D, $0E, $06, $A9, $00, $8D, $01, $20, $20, $F7, $E6 ; CPU:$E6A1 PRG:26A1 A9 01 8D 0D 06 8D 0E 06 A9 00 8D 01 20 20 F7 E6 .byte $A9, $01, $8D, $8D, $02, $A9, $01, $8D, $93, $02, $A9, $F7, $8D, $78, $02, $A9 ; CPU:$E6B1 PRG:26B1 A9 01 8D 8D 02 A9 01 8D 93 02 A9 F7 8D 78 02 A9 .byte $7C, $8D, $7A, $02, $A9, $FF, $85, $1E, $A9, $00, $85, $1F, $A9, $00, $85, $88 ; CPU:$E6C1 PRG:26C1 7C 8D 7A 02 A9 FF 85 1E A9 00 85 1F A9 00 85 88 .byte $A0, $00, $B9, $6E, $E7, $99, $A9, $02, $C8, $C0, $10, $D0, $F5, $A9, $20, $8D ; CPU:$E6D1 PRG:26D1 A0 00 B9 6E E7 99 A9 02 C8 C0 10 D0 F5 A9 20 8D .byte $6F, $02, $8D, $70, $02, $8D, $71, $02, $A9, $10, $85, $3F, $A9, $88, $8D, $00 ; CPU:$E6E1 PRG:26E1 6F 02 8D 70 02 8D 71 02 A9 10 85 3F A9 88 8D 00 .byte $20, $85, $43, $4C, $66, $CA, $A2, $20, $A5, $47, $25, $46, $F0, $02, $A2, $28 ; CPU:$E6F1 PRG:26F1 20 85 43 4C 66 CA A2 20 A5 47 25 46 F0 02 A2 28 .byte $AD, $02, $20, $8E, $06, $20, $A9, $00, $8D, $06, $20, $A9, $1C, $85, $00, $A9 ; CPU:$E701 PRG:2701 AD 02 20 8E 06 20 A9 00 8D 06 20 A9 1C 85 00 A9 .byte $02, $85, $01, $A9, $1C, $85, $02, $A9, $02, $85, $03, $A9, $2D, $8D, $07, $20 ; CPU:$E711 PRG:2711 02 85 01 A9 1C 85 02 A9 02 85 03 A9 2D 8D 07 20 .byte $A6, $01, $F0, $08, $C6, $01, $D0, $F5, $A9, $20, $D0, $F1, $A6, $02, $F0, $08 ; CPU:$E721 PRG:2721 A6 01 F0 08 C6 01 D0 F5 A9 20 D0 F1 A6 02 F0 08 .byte $C6, $02, $D0, $E9, $A9, $2D, $D0, $E5, $C6, $03, $D0, $E1, $C6, $00, $D0, $CF ; CPU:$E731 PRG:2731 C6 02 D0 E9 A9 2D D0 E5 C6 03 D0 E1 C6 00 D0 CF .byte $A9, $00, $AA, $8D, $07, $20, $E8, $E0, $40, $D0, $F8, $A5, $87, $C9, $02, $F0 ; CPU:$E741 PRG:2741 A9 00 AA 8D 07 20 E8 E0 40 D0 F8 A5 87 C9 02 F0 .byte $01, $60, $A2, $22, $A5, $47, $25, $46, $F0, $02, $A2, $2A, $AD, $02, $20, $8E ; CPU:$E751 PRG:2751 01 60 A2 22 A5 47 25 46 F0 02 A2 2A AD 02 20 8E .byte $06, $20, $A9, $30, $8D, $06, $20, $A9, $5E, $8D, $07, $20, $60, $0F, $36, $20 ; CPU:$E761 PRG:2761 06 20 A9 30 8D 06 20 A9 5E 8D 07 20 60 0F 36 20 .byte $06, $0F, $27, $20, $06, $0F, $11, $20, $33, $0F, $36, $20, $11, $20, $D8, $E9 ; CPU:$E771 PRG:2771 06 0F 27 20 06 0F 11 20 33 0F 36 20 11 20 D8 E9 .byte $20, $53, $EA, $20, $B0, $DA, $20, $8D, $E7, $4C, $66, $CA, $A4, $87, $B9, $9C ; CPU:$E781 PRG:2781 20 53 EA 20 B0 DA 20 8D E7 4C 66 CA A4 87 B9 9C .byte $E7, $85, $10, $B9, $9D, $E7, $85, $11, $6C, $10, $00, $A2, $E7, $86, $E8, $2D ; CPU:$E791 PRG:2791 E7 85 10 B9 9D E7 85 11 6C 10 00 A2 E7 86 E8 2D .byte $E9, $A4, $88, $B9, $B1, $E7, $85, $10, $B9, $B2, $E7, $85, $11, $6C, $10, $00 ; CPU:$E7A1 PRG:27A1 E9 A4 88 B9 B1 E7 85 10 B9 B2 E7 85 11 6C 10 00 .byte $B9, $E7, $E2, $E7, $0D, $E8, $79, $E8, $AD, $78, $02, $C9, $D0, $90, $01, $60 ; CPU:$E7B1 PRG:27B1 B9 E7 E2 E7 0D E8 79 E8 AD 78 02 C9 D0 90 01 60 .byte $E6, $88, $E6, $88, $A9, $0C, $8D, $8C, $02, $A9, $20, $8D, $92, $02, $A9, $F7 ; CPU:$E7C1 PRG:27C1 E6 88 E6 88 A9 0C 8D 8C 02 A9 20 8D 92 02 A9 F7 .byte $8D, $74, $02, $A9, $7C, $8D, $76, $02, $A9, $FE, $85, $1A, $A9, $E0, $85, $1B ; CPU:$E7D1 PRG:27D1 8D 74 02 A9 7C 8D 76 02 A9 FE 85 1A A9 E0 85 1B .byte $60, $AD, $74, $02, $F0, $01, $60, $E6, $88, $E6, $88, $A9, $40, $85, $4C, $A9 ; CPU:$E7E1 PRG:27E1 60 AD 74 02 F0 01 60 E6 88 E6 88 A9 40 85 4C A9 .byte $1E, $8D, $8C, $02, $A9, $22, $8D, $92, $02, $A9, $09, $8D, $74, $02, $A9, $7C ; CPU:$E7F1 PRG:27F1 1E 8D 8C 02 A9 22 8D 92 02 A9 09 8D 74 02 A9 7C .byte $8D, $76, $02, $A9, $01, $85, $1A, $A9, $00, $85, $1B, $60, $A9, $01, $8D, $0D ; CPU:$E801 PRG:2801 8D 76 02 A9 01 85 1A A9 00 85 1B 60 A9 01 8D 0D .byte $06, $8D, $0E, $06, $AD, $74, $02, $C9, $80, $B0, $01, $60, $E6, $88, $E6, $88 ; CPU:$E811 PRG:2811 06 8D 0E 06 AD 74 02 C9 80 B0 01 60 E6 88 E6 88 .byte $A9, $01, $85, $1E, $85, $22, $85, $26, $85, $2A, $A9, $C0, $85, $1F, $85, $23 ; CPU:$E821 PRG:2821 A9 01 85 1E 85 22 85 26 85 2A A9 C0 85 1F 85 23 .byte $85, $27, $85, $2B, $18, $A9, $38, $8D, $8D, $02, $69, $01, $8D, $8E, $02, $69 ; CPU:$E831 PRG:2831 85 27 85 2B 18 A9 38 8D 8D 02 69 01 8D 8E 02 69 .byte $01, $8D, $8F, $02, $69, $01, $8D, $90, $02, $A9, $21, $8D, $93, $02, $8D, $94 ; CPU:$E841 PRG:2841 01 8D 8F 02 69 01 8D 90 02 A9 21 8D 93 02 8D 94 .byte $02, $8D, $95, $02, $8D, $96, $02, $A9, $09, $8D, $78, $02, $8D, $80, $02, $A9 ; CPU:$E851 PRG:2851 02 8D 95 02 8D 96 02 A9 09 8D 78 02 8D 80 02 A9 .byte $19, $8D, $7C, $02, $8D, $84, $02, $A9, $6C, $8D, $7A, $02, $8D, $7E, $02, $A9 ; CPU:$E861 PRG:2861 19 8D 7C 02 8D 84 02 A9 6C 8D 7A 02 8D 7E 02 A9 .byte $7C, $8D, $82, $02, $8D, $86, $02, $60, $AD, $78, $02, $F0, $01, $60, $A9, $40 ; CPU:$E871 PRG:2871 7C 8D 82 02 8D 86 02 60 AD 78 02 F0 01 60 A9 40 .byte $85, $4C, $4C, $D3, $E9, $A4, $88, $B9, $95, $E8, $85, $10, $B9, $96, $E8, $85 ; CPU:$E881 PRG:2881 85 4C 4C D3 E9 A4 88 B9 95 E8 85 10 B9 96 E8 85 .byte $11, $6C, $10, $00, $9B, $E8, $C4, $E8, $FE, $E8, $AD, $78, $02, $C9, $A0, $90 ; CPU:$E891 PRG:2891 11 6C 10 00 9B E8 C4 E8 FE E8 AD 78 02 C9 A0 90 .byte $01, $60, $E6, $88, $E6, $88, $A9, $0C, $8D, $8C, $02, $A9, $20, $8D, $92, $02 ; CPU:$E8A1 PRG:28A1 01 60 E6 88 E6 88 A9 0C 8D 8C 02 A9 20 8D 92 02 .byte $A9, $F7, $8D, $74, $02, $A9, $7C, $8D, $76, $02, $A9, $FF, $85, $1A, $A9, $00 ; CPU:$E8B1 PRG:28B1 A9 F7 8D 74 02 A9 7C 8D 76 02 A9 FF 85 1A A9 00 .byte $85, $1B, $60, $AD, $74, $02, $C9, $80, $D0, $23, $A9, $FF, $85, $1A, $A9, $C0 ; CPU:$E8C1 PRG:28C1 85 1B 60 AD 74 02 C9 80 D0 23 A9 FF 85 1A A9 C0 .byte $85, $1B, $A9, $42, $8D, $8E, $02, $A9, $00, $8D, $94, $02, $A9, $80, $8D, $7C ; CPU:$E8D1 PRG:28D1 85 1B A9 42 8D 8E 02 A9 00 8D 94 02 A9 80 8D 7C .byte $02, $A9, $7C, $8D, $7E, $02, $A9, $00, $85, $22, $85, $23, $60, $C9, $78, $F0 ; CPU:$E8E1 PRG:28E1 02 A9 7C 8D 7E 02 A9 00 85 22 85 23 60 C9 78 F0 .byte $01, $60, $A9, $00, $85, $1A, $85, $1B, $E6, $88, $E6, $88, $60, $AD, $8C, $02 ; CPU:$E8F1 PRG:28F1 01 60 A9 00 85 1A 85 1B E6 88 E6 88 60 AD 8C 02 .byte $29, $40, $D0, $0F, $A9, $46, $8D, $8C, $02, $A9, $45, $8D, $8E, $02, $A9, $40 ; CPU:$E901 PRG:2901 29 40 D0 0F A9 46 8D 8C 02 A9 45 8D 8E 02 A9 40 .byte $85, $89, $60, $C6, $89, $F0, $01, $60, $AD, $8C, $02, $C9, $47, $D0, $03, $4C ; CPU:$E911 PRG:2911 85 89 60 C6 89 F0 01 60 AD 8C 02 C9 47 D0 03 4C .byte $D3, $E9, $A9, $47, $8D, $8C, $02, $A9, $40, $85, $89, $60, $A4, $88, $B9, $3C ; CPU:$E921 PRG:2921 D3 E9 A9 47 8D 8C 02 A9 40 85 89 60 A4 88 B9 3C .byte $E9, $85, $10, $B9, $3D, $E9, $85, $11, $6C, $10, $00, $44, $E9, $6D, $E9, $98 ; CPU:$E931 PRG:2931 E9 85 10 B9 3D E9 85 11 6C 10 00 44 E9 6D E9 98 .byte $E9, $C9, $E9, $AD, $78, $02, $C9, $D8, $90, $01, $60, $E6, $88, $E6, $88, $A9 ; CPU:$E941 PRG:2941 E9 C9 E9 AD 78 02 C9 D8 90 01 60 E6 88 E6 88 A9 .byte $4C, $8D, $8C, $02, $A9, $20, $8D, $92, $02, $A9, $F7, $8D, $74, $02, $A9, $7C ; CPU:$E951 PRG:2951 4C 8D 8C 02 A9 20 8D 92 02 A9 F7 8D 74 02 A9 7C .byte $8D, $76, $02, $A9, $FF, $85, $1A, $A9, $00, $85, $1B, $60, $AD, $74, $02, $F0 ; CPU:$E961 PRG:2961 8D 76 02 A9 FF 85 1A A9 00 85 1B 60 AD 74 02 F0 .byte $01, $60, $E6, $88, $E6, $88, $A9, $28, $85, $4C, $A9, $4A, $8D, $8C, $02, $A9 ; CPU:$E971 PRG:2971 01 60 E6 88 E6 88 A9 28 85 4C A9 4A 8D 8C 02 A9 .byte $23, $8D, $92, $02, $A9, $09, $8D, $74, $02, $A9, $7C, $8D, $76, $02, $A9, $01 ; CPU:$E981 PRG:2981 23 8D 92 02 A9 09 8D 74 02 A9 7C 8D 76 02 A9 01 .byte $85, $1A, $A9, $00, $85, $1B, $60, $A9, $01, $8D, $0D, $06, $8D, $0E, $06, $AD ; CPU:$E991 PRG:2991 85 1A A9 00 85 1B 60 A9 01 8D 0D 06 8D 0E 06 AD .byte $74, $02, $C9, $19, $B0, $01, $60, $E6, $88, $E6, $88, $A9, $4C, $8D, $8D, $02 ; CPU:$E9A1 PRG:29A1 74 02 C9 19 B0 01 60 E6 88 E6 88 A9 4C 8D 8D 02 .byte $A9, $21, $8D, $93, $02, $A9, $11, $8D, $78, $02, $A9, $84, $8D, $7A, $02, $A9 ; CPU:$E9B1 PRG:29B1 A9 21 8D 93 02 A9 11 8D 78 02 A9 84 8D 7A 02 A9 .byte $01, $85, $1E, $A9, $00, $85, $1F, $60, $AD, $78, $02, $F0, $01, $60, $A9, $40 ; CPU:$E9C1 PRG:29C1 01 85 1E A9 00 85 1F 60 AD 78 02 F0 01 60 A9 40 .byte $85, $4C, $A9, $00, $85, $3F, $60 ; CPU:$E9D1 PRG:29D1 85 4C A9 00 85 3F 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_Entry_E9D8 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_Entry_E9D8: lda #$1A ; CPU:$E9D8 PRG:29D8 A9 1A sta Zp00 ; CPU:$E9DA PRG:29DA 85 00 lda #$00 ; CPU:$E9DC PRG:29DC A9 00 sta Zp01 ; CPU:$E9DE PRG:29DE 85 01 lda #$74 ; CPU:$E9E0 PRG:29E0 A9 74 sta Zp02 ; CPU:$E9E2 PRG:29E2 85 02 lda #$02 ; CPU:$E9E4 PRG:29E4 A9 02 sta Zp03 ; CPU:$E9E6 PRG:29E6 85 03 ldx #$00 ; CPU:$E9E8 PRG:29E8 A2 00 ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnNonzero_E9EA ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnNonzero_E9EA: ldy #$00 ; CPU:$E9EA PRG:29EA A0 00 lda (Zp02),y ; CPU:$E9EC PRG:29EC B1 02 beq Sub_E9D8_JoinBranchPaths_EA33 ; CPU:$E9EE PRG:29EE F0 43 iny ; CPU:$E9F0 PRG:29F0 C8 lda (Zp00),y ; CPU:$E9F1 PRG:29F1 B1 00 clc ; CPU:$E9F3 PRG:29F3 18 adc (Zp02),y ; CPU:$E9F4 PRG:29F4 71 02 sta (Zp02),y ; CPU:$E9F6 PRG:29F6 91 02 dey ; CPU:$E9F8 PRG:29F8 88 lda (Zp00),y ; CPU:$E9F9 PRG:29F9 B1 00 adc (Zp02),y ; CPU:$E9FB PRG:29FB 71 02 sta (Zp02),y ; CPU:$E9FD PRG:29FD 91 02 cmp #$C0 ; CPU:$E9FF PRG:29FF C9 C0 bcc Sub_E9D8_OnCarryClear_EA0D ; CPU:$EA01 PRG:2A01 90 0A ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnCarryClear_EA03 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnCarryClear_EA03: lda #$20 ; CPU:$EA03 PRG:2A03 A9 20 ora $0292,x ; CPU:$EA05 PRG:2A05 1D 92 02 sta $0292,x ; CPU:$EA08 PRG:2A08 9D 92 02 bne Sub_E9D8_OnNonzero_EA19 ; CPU:$EA0B PRG:2A0B D0 0C ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnCarryClear_EA0D ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnCarryClear_EA0D: cmp #$40 ; CPU:$EA0D PRG:2A0D C9 40 bcc Sub_E9D8_OnCarryClear_EA03 ; CPU:$EA0F PRG:2A0F 90 F2 lda #$DF ; CPU:$EA11 PRG:2A11 A9 DF and $0292,x ; CPU:$EA13 PRG:2A13 3D 92 02 sta $0292,x ; CPU:$EA16 PRG:2A16 9D 92 02 ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnNonzero_EA19 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnNonzero_EA19: ldy #$00 ; CPU:$EA19 PRG:2A19 A0 00 lda (Zp02),y ; CPU:$EA1B PRG:2A1B B1 02 cmp #$FC ; CPU:$EA1D PRG:2A1D C9 FC bcc Sub_E9D8_OnCarryClear_EA2F ; CPU:$EA1F PRG:2A1F 90 0E ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnCarryClear_EA21 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnCarryClear_EA21: lda #$00 ; CPU:$EA21 PRG:2A21 A9 00 sta (Zp02),y ; CPU:$EA23 PRG:2A23 91 02 sta (Zp00),y ; CPU:$EA25 PRG:2A25 91 00 iny ; CPU:$EA27 PRG:2A27 C8 sta (Zp00),y ; CPU:$EA28 PRG:2A28 91 00 iny ; CPU:$EA2A PRG:2A2A C8 sta (Zp02),y ; CPU:$EA2B PRG:2A2B 91 02 bne Sub_E9D8_JoinBranchPaths_EA33 ; CPU:$EA2D PRG:2A2D D0 04 ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnCarryClear_EA2F ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnCarryClear_EA2F: cmp #$04 ; CPU:$EA2F PRG:2A2F C9 04 bcc Sub_E9D8_OnCarryClear_EA21 ; CPU:$EA31 PRG:2A31 90 EE ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_JoinBranchPaths_EA33 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_JoinBranchPaths_EA33: lda Zp00 ; CPU:$EA33 PRG:2A33 A5 00 clc ; CPU:$EA35 PRG:2A35 18 adc #$04 ; CPU:$EA36 PRG:2A36 69 04 sta Zp00 ; CPU:$EA38 PRG:2A38 85 00 lda Zp01 ; CPU:$EA3A PRG:2A3A A5 01 adc #$00 ; CPU:$EA3C PRG:2A3C 69 00 sta Zp01 ; CPU:$EA3E PRG:2A3E 85 01 lda Zp02 ; CPU:$EA40 PRG:2A40 A5 02 clc ; CPU:$EA42 PRG:2A42 18 adc #$04 ; CPU:$EA43 PRG:2A43 69 04 sta Zp02 ; CPU:$EA45 PRG:2A45 85 02 lda Zp03 ; CPU:$EA47 PRG:2A47 A5 03 adc #$00 ; CPU:$EA49 PRG:2A49 69 00 sta Zp03 ; CPU:$EA4B PRG:2A4B 85 03 inx ; CPU:$EA4D PRG:2A4D E8 cpx #$05 ; CPU:$EA4E PRG:2A4E E0 05 bne Sub_E9D8_OnNonzero_E9EA ; CPU:$EA50 PRG:2A50 D0 98 rts ; CPU:$EA52 PRG:2A52 60 ; ---- data $EA53-$EB5D (267 bytes) ---- .byte $A4, $87, $B9, $62, $EA, $85, $10, $B9, $63, $EA, $85, $11, $6C, $10, $00, $68 ; CPU:$EA53 PRG:2A53 A4 87 B9 62 EA 85 10 B9 63 EA 85 11 6C 10 00 68 .byte $EA, $FC, $EA, $2C, $EB, $A4, $88, $B9, $77, $EA, $85, $10, $B9, $78, $EA, $85 ; CPU:$EA63 PRG:2A63 EA FC EA 2C EB A4 88 B9 77 EA 85 10 B9 78 EA 85 .byte $11, $6C, $10, $00, $7F, $EA, $95, $EA, $AC, $EA, $C3, $EA, $E6, $B7, $A5, $B7 ; CPU:$EA73 PRG:2A73 11 6C 10 00 7F EA 95 EA AC EA C3 EA E6 B7 A5 B7 .byte $29, $07, $A8, $B9, $8D, $EA, $8D, $8D, $02, $60, $04, $04, $04, $05, $05, $04 ; CPU:$EA83 PRG:2A83 29 07 A8 B9 8D EA 8D 8D 02 60 04 04 04 05 05 04 .byte $01, $01, $A5, $4B, $29, $07, $D0, $E4, $A5, $4B, $29, $08, $D0, $04, $A9, $0C ; CPU:$EA93 PRG:2A93 01 01 A5 4B 29 07 D0 E4 A5 4B 29 08 D0 04 A9 0C .byte $D0, $02, $A9, $0D, $8D, $8C, $02, $D0, $D3, $A5, $4B, $29, $07, $F0, $01, $60 ; CPU:$EAA3 PRG:2AA3 D0 02 A9 0D 8D 8C 02 D0 D3 A5 4B 29 07 F0 01 60 .byte $A5, $4B, $29, $08, $D0, $04, $A9, $1E, $D0, $02, $A9, $1F, $8D, $8C, $02, $60 ; CPU:$EAB3 PRG:2AB3 A5 4B 29 08 D0 04 A9 1E D0 02 A9 1F 8D 8C 02 60 .byte $E6, $B7, $A5, $B7, $29, $07, $A8, $B9, $E8, $EA, $A8, $B9, $F0, $EA, $8D, $8D ; CPU:$EAC3 PRG:2AC3 E6 B7 A5 B7 29 07 A8 B9 E8 EA A8 B9 F0 EA 8D 8D .byte $02, $B9, $F1, $EA, $8D, $8E, $02, $B9, $F2, $EA, $8D, $8F, $02, $B9, $F3, $EA ; CPU:$EAD3 PRG:2AD3 02 B9 F1 EA 8D 8E 02 B9 F2 EA 8D 8F 02 B9 F3 EA .byte $8D, $90, $02, $D0, $C4, $00, $00, $00, $04, $04, $00, $08, $08, $3C, $3D, $3E ; CPU:$EAE3 PRG:2AE3 8D 90 02 D0 C4 00 00 00 04 04 00 08 08 3C 3D 3E .byte $3F, $3C, $40, $3E, $41, $38, $39, $3A, $3B, $A4, $88, $B9, $0B, $EB, $85, $10 ; CPU:$EAF3 PRG:2AF3 3F 3C 40 3E 41 38 39 3A 3B A4 88 B9 0B EB 85 10 .byte $B9, $0C, $EB, $85, $11, $6C, $10, $00, $7F, $EA, $11, $EB, $7F, $EA, $20, $95 ; CPU:$EB03 PRG:2B03 B9 0C EB 85 11 6C 10 00 7F EA 11 EB 7F EA 20 95 .byte $EA, $AD, $74, $02, $C9, $7D, $D0, $06, $A9, $43, $8D, $8E, $02, $60, $C9, $7B ; CPU:$EB13 PRG:2B13 EA AD 74 02 C9 7D D0 06 A9 43 8D 8E 02 60 C9 7B .byte $F0, $01, $60, $A9, $44, $8D, $8E, $02, $60, $A4, $88, $B9, $3B, $EB, $85, $10 ; CPU:$EB23 PRG:2B23 F0 01 60 A9 44 8D 8E 02 60 A4 88 B9 3B EB 85 10 .byte $B9, $3C, $EB, $85, $11, $6C, $10, $00, $7F, $EA, $43, $EB, $5E, $EB, $5E, $EB ; CPU:$EB33 PRG:2B33 B9 3C EB 85 11 6C 10 00 7F EA 43 EB 5E EB 5E EB .byte $A5, $4B, $29, $07, $F0, $03, $4C, $7F, $EA, $A5, $4B, $29, $08, $D0, $04, $A9 ; CPU:$EB43 PRG:2B43 A5 4B 29 07 F0 03 4C 7F EA A5 4B 29 08 D0 04 A9 .byte $48, $D0, $02, $A9, $49, $8D, $8C, $02, $4C, $7F, $EA ; CPU:$EB53 PRG:2B53 48 D0 02 A9 49 8D 8C 02 4C 7F EA ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_Entry_EB5E ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_Entry_EB5E: lda FrameCounter ; CPU:$EB5E PRG:2B5E A5 4B and #$07 ; CPU:$EB60 PRG:2B60 29 07 beq Sub_E9D8_OnZero_EB65 ; CPU:$EB62 PRG:2B62 F0 01 rts ; CPU:$EB64 PRG:2B64 60 ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnZero_EB65 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnZero_EB65: lda FrameCounter ; CPU:$EB65 PRG:2B65 A5 4B and #$08 ; CPU:$EB67 PRG:2B67 29 08 bne Sub_E9D8_OnNonzero_EB6F ; CPU:$EB69 PRG:2B69 D0 04 lda #$4A ; CPU:$EB6B PRG:2B6B A9 4A bne Sub_E9D8_OnNonzero_EB71 ; CPU:$EB6D PRG:2B6D D0 02 ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnNonzero_EB6F ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnNonzero_EB6F: lda #$4B ; CPU:$EB6F PRG:2B6F A9 4B ; ----------------------------------------------------------------------------- ; Routine: Sub_E9D8_OnNonzero_EB71 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Sub_E9D8_OnNonzero_EB71: sta $028C ; CPU:$EB71 PRG:2B71 8D 8C 02 rts ; CPU:$EB74 PRG:2B74 60 ; ---- data $EB75-$EE4A (726 bytes) ---- .byte $00, $07, $00, $00, $00, $04, $01, $06, $01, $01, $01, $04, $01, $04, $02, $02 ; CPU:$EB75 PRG:2B75 00 07 00 00 00 04 01 06 01 01 01 04 01 04 02 02 .byte $02, $03, $02, $03, $02, $02, $02, $03, $02, $02, $02, $02, $03, $03, $03, $05 ; CPU:$EB85 PRG:2B85 02 03 02 03 02 02 02 03 02 02 02 02 03 03 03 05 .byte $03, $02, $03, $03, $03, $02, $03, $02, $04, $03, $03, $02, $03, $02, $04, $03 ; CPU:$EB95 PRG:2B95 03 02 03 03 03 02 03 02 04 03 03 02 03 02 04 03 .byte $03, $01, $04, $02, $05, $03, $03, $05, $04, $02, $05, $03, $03, $02, $04, $02 ; CPU:$EBA5 PRG:2BA5 03 01 04 02 05 03 03 05 04 02 05 03 03 02 04 02 .byte $06, $03, $03, $01, $05, $02, $06, $03, $03, $01, $05, $02, $07, $03, $03, $03 ; CPU:$EBB5 PRG:2BB5 06 03 03 01 05 02 06 03 03 01 05 02 07 03 03 03 .byte $05, $02, $07, $03, $03, $01, $06, $02, $07, $03, $03, $01, $06, $02, $07, $03 ; CPU:$EBC5 PRG:2BC5 05 02 07 03 03 01 06 02 07 03 03 01 06 02 07 03 .byte $03, $00, $06, $02, $07, $03, $03, $01, $06, $02, $07, $03, $03, $00, $06, $02 ; CPU:$EBD5 PRG:2BD5 03 00 06 02 07 03 03 01 06 02 07 03 03 00 06 02 .byte $07, $03, $03, $00, $06, $02, $07, $03, $03, $00, $06, $02, $07, $03, $04, $00 ; CPU:$EBE5 PRG:2BE5 07 03 03 00 06 02 07 03 03 00 06 02 07 03 04 00 .byte $06, $02, $07, $03, $04, $00, $06, $02, $07, $03, $D0, $00, $C0, $00, $A0, $00 ; CPU:$EBF5 PRG:2BF5 06 02 07 03 04 00 06 02 07 03 D0 00 C0 00 A0 00 .byte $B0, $00, $A0, $00, $80, $00, $A0, $00, $B0, $00, $90, $00, $50, $00, $50, $00 ; CPU:$EC05 PRG:2C05 B0 00 A0 00 80 00 A0 00 B0 00 90 00 50 00 50 00 .byte $D0, $00, $C0, $00, $A0, $00, $B0, $00, $A0, $00, $80, $00, $B0, $00, $C0, $00 ; CPU:$EC15 PRG:2C15 D0 00 C0 00 A0 00 B0 00 A0 00 80 00 B0 00 C0 00 .byte $A0, $00, $50, $00, $50, $00, $F0, $00, $E0, $00, $C0, $00, $E0, $00, $D0, $00 ; CPU:$EC25 PRG:2C25 A0 00 50 00 50 00 F0 00 E0 00 C0 00 E0 00 D0 00 .byte $B0, $00, $E0, $00, $F0, $00, $D0, $00, $70, $00, $70, $00, $00, $01, $F0, $00 ; CPU:$EC35 PRG:2C35 B0 00 E0 00 F0 00 D0 00 70 00 70 00 00 01 F0 00 .byte $D0, $00, $00, $01, $F0, $00, $D0, $00, $00, $01, $10, $01, $F0, $00, $80, $00 ; CPU:$EC45 PRG:2C45 D0 00 00 01 F0 00 D0 00 00 01 10 01 F0 00 80 00 .byte $80, $00, $00, $01, $F0, $00, $D0, $00, $00, $01, $F0, $00, $D0, $00, $20, $01 ; CPU:$EC55 PRG:2C55 80 00 00 01 F0 00 D0 00 00 01 F0 00 D0 00 20 01 .byte $30, $01, $10, $01, $80, $00, $80, $00, $07, $14, $07, $14, $05, $14, $05, $FF ; CPU:$EC65 PRG:2C65 30 01 10 01 80 00 80 00 07 14 07 14 05 14 05 FF .byte $07, $14, $07, $14, $05, $FF, $00, $00, $05, $14, $05, $14, $05, $FF, $00, $00 ; CPU:$EC75 PRG:2C75 07 14 07 14 05 FF 00 00 05 14 05 14 05 FF 00 00 .byte $05, $14, $05, $14, $05, $FF, $00, $00, $14, $0A, $1E, $0F, $28, $14, $32, $19 ; CPU:$EC85 PRG:2C85 05 14 05 14 05 FF 00 00 14 0A 1E 0F 28 14 32 19 .byte $3C, $1E, $50, $28, $64, $32, $02, $1E, $5A, $00, $03, $32, $00, $00, $04, $00 ; CPU:$EC95 PRG:2C95 3C 1E 50 28 64 32 02 1E 5A 00 03 32 00 00 04 00 .byte $00, $00, $01, $07, $11, $20, $2D, $1F, $D0, $D0, $10, $13, $D0, $D0, $10, $1D ; CPU:$ECA5 PRG:2CA5 00 00 01 07 11 20 2D 1F D0 D0 10 13 D0 D0 10 1D .byte $2D, $11, $C3, $C3, $03, $11, $C3, $C3, $03, $11, $2D, $11, $03, $1F, $10, $1D ; CPU:$ECB5 PRG:2CB5 2D 11 C3 C3 03 11 C3 C3 03 11 2D 11 03 1F 10 1D .byte $03, $1F, $10, $1D, $03, $11, $03, $1F, $10, $1D, $03, $1F, $10, $1D, $03, $11 ; CPU:$ECC5 PRG:2CC5 03 1F 10 1D 03 11 03 1F 10 1D 03 1F 10 1D 03 11 .byte $2D, $11, $01, $11, $20, $11, $03, $11, $20, $11, $03, $11, $03, $11, $20, $11 ; CPU:$ECD5 PRG:2CD5 2D 11 01 11 20 11 03 11 20 11 03 11 03 11 20 11 .byte $03, $11, $20, $11, $01, $11, $2D, $11, $03, $1E, $10, $1C, $03, $1E, $10, $1C ; CPU:$ECE5 PRG:2CE5 03 11 20 11 01 11 2D 11 03 1E 10 1C 03 1E 10 1C .byte $03, $1A, $03, $1E, $10, $1C, $03, $1E, $10, $1C, $03, $11, $2D, $11, $C3, $C3 ; CPU:$ECF5 PRG:2CF5 03 1A 03 1E 10 1C 03 1E 10 1C 03 11 2D 11 C3 C3 .byte $C3, $C3, $83, $11, $2D, $11, $03, $1F, $10, $1D, $03, $1B, $03, $1F, $10, $10 ; CPU:$ED05 PRG:2D05 C3 C3 83 11 2D 11 03 1F 10 1D 03 1B 03 1F 10 10 .byte $10, $1D, $03, $1B, $03, $1F, $10, $1D, $03, $11, $2D, $11, $03, $1E, $10, $1C ; CPU:$ED15 PRG:2D15 10 1D 03 1B 03 1F 10 1D 03 11 2D 11 03 1E 10 1C .byte $03, $11, $03, $1E, $10, $13, $10, $1C, $03, $11, $03, $1E, $10, $1C, $03, $11 ; CPU:$ED25 PRG:2D25 03 11 03 1E 10 13 10 1C 03 11 03 1E 10 1C 03 11 .byte $2D, $11, $C3, $03, $11, $83, $11, $83, $11, $C3, $03, $11, $2D, $1E, $90, $1D ; CPU:$ED35 PRG:2D35 2D 11 C3 03 11 83 11 83 11 C3 03 11 2D 1E 90 1D .byte $03, $15, $10, $18, $08, $1A, $08, $19, $10, $14, $03, $1F, $90, $1C, $2D, $E0 ; CPU:$ED45 PRG:2D45 03 15 10 18 08 1A 08 19 10 14 03 1F 90 1C 2D E0 .byte $11, $03, $11, $C0, $80, $11, $03, $11, $E0, $2D, $E0, $11, $03, $11, $00, $1F ; CPU:$ED55 PRG:2D55 11 03 11 C0 80 11 03 11 E0 2D E0 11 03 11 00 1F .byte $17, $2C, $16, $1D, $00, $11, $03, $11, $E0, $2D, $22, $90, $1C, $03, $1A, $00 ; CPU:$ED65 PRG:2D65 17 2C 16 1D 00 11 03 11 E0 2D 22 90 1C 03 1A 00 .byte $11, $80, $11, $00, $1A, $03, $1E, $90, $21, $04, $06, $C0, $03, $40, $11, $80 ; CPU:$ED75 PRG:2D75 11 80 11 00 1A 03 1E 90 21 04 06 C0 03 40 11 80 .byte $11, $40, $03, $C0, $05, $2D, $22, $90, $1D, $03, $1B, $00, $1E, $90, $1C, $00 ; CPU:$ED85 PRG:2D85 11 40 03 C0 05 2D 22 90 1D 03 1B 00 1E 90 1C 00 .byte $1B, $03, $1F, $90, $21, $2D, $E0, $11, $03, $11, $C0, $80, $11, $03, $11, $E0 ; CPU:$ED95 PRG:2D95 1B 03 1F 90 21 2D E0 11 03 11 C0 80 11 03 11 E0 .byte $2D, $E0, $11, $03, $11, $00, $1F, $90, $1D, $00, $11, $03, $11, $E0, $2D, $1F ; CPU:$EDA5 PRG:2DA5 2D E0 11 03 11 00 1F 90 1D 00 11 03 11 E0 2D 1F .byte $90, $1C, $03, $1A, $00, $1E, $10, $13, $10, $1C, $00, $1A, $03, $1E, $90, $1D ; CPU:$EDB5 PRG:2DB5 90 1C 03 1A 00 1E 10 13 10 1C 00 1A 03 1E 90 1D .byte $2D, $11, $C3, $C3, $03, $11, $C3, $C3, $03, $11, $2D, $11, $03, $19, $10, $1D ; CPU:$EDC5 PRG:2DC5 2D 11 C3 C3 03 11 C3 C3 03 11 2D 11 03 19 10 1D .byte $03, $19, $10, $18, $09, $1A, $09, $19, $10, $18, $03, $1F, $10, $18, $03, $11 ; CPU:$EDD5 PRG:2DD5 03 19 10 18 09 1A 09 19 10 18 03 1F 10 18 03 11 .byte $2D, $11, $01, $43, $11, $C3, $03, $00, $C3, $03, $11, $43, $01, $11, $2D, $15 ; CPU:$EDE5 PRG:2DE5 2D 11 01 43 11 C3 03 00 C3 03 11 43 01 11 2D 15 .byte $10, $1D, $03, $11, $03, $1B, $03, $1F, $90, $1D, $03, $1B, $03, $11, $03, $1F ; CPU:$EDF5 PRG:2DF5 10 1D 03 11 03 1B 03 1F 90 1D 03 1B 03 11 03 1F .byte $10, $14, $2D, $15, $10, $1C, $03, $1A, $03, $11, $03, $1E, $10, $13, $10, $1C ; CPU:$EE05 PRG:2E05 10 14 2D 15 10 1C 03 1A 03 11 03 1E 10 13 10 1C .byte $03, $11, $03, $1A, $03, $1E, $10, $14, $2D, $11, $C3, $03, $11, $83, $11, $83 ; CPU:$EE15 PRG:2E15 03 11 03 1A 03 1E 10 14 2D 11 C3 03 11 83 11 83 .byte $11, $C3, $03, $11, $2D, $11, $03, $19, $90, $12, $10, $18, $03, $1A, $03, $19 ; CPU:$EE25 PRG:2E25 11 C3 03 11 2D 11 03 19 90 12 10 18 03 1A 03 19 .byte $10, $12, $90, $18, $03, $11, $2D, $11, $C3, $C3, $C3, $C3, $83, $11, $2D, $1E ; CPU:$EE35 PRG:2E35 10 12 90 18 03 11 2D 11 C3 C3 C3 C3 83 11 2D 1E .byte $D0, $D0, $D0, $D0, $90, $1C ; CPU:$EE45 PRG:2E45 D0 D0 D0 D0 90 1C ; ----------------------------------------------------------------------------- ; Routine: ClearZpF0_Set6 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearZpF0_Set6: lda #$00 ; CPU:$EE4B PRG:2E4B A9 00 sta AudioChanPtr1Lo ; CPU:$EE4D PRG:2E4D 85 F0 lda #$06 ; CPU:$EE4F PRG:2E4F A9 06 sta AudioChanPtr1Hi ; CPU:$EE51 PRG:2E51 85 F1 lda #$20 ; CPU:$EE53 PRG:2E53 A9 20 sta AudioChanPtr2Lo ; CPU:$EE55 PRG:2E55 85 F2 lda #$06 ; CPU:$EE57 PRG:2E57 A9 06 sta AudioChanPtr2Hi ; CPU:$EE59 PRG:2E59 85 F3 lda $F0BF ; CPU:$EE5B PRG:2E5B AD BF F0 sta ZpF4 ; CPU:$EE5E PRG:2E5E 85 F4 lda $F0C0 ; CPU:$EE60 PRG:2E60 AD C0 F0 sta ZpF5 ; CPU:$EE63 PRG:2E63 85 F5 lda #$40 ; CPU:$EE65 PRG:2E65 A9 40 sta ZpF7 ; CPU:$EE67 PRG:2E67 85 F7 lda #$1F ; CPU:$EE69 PRG:2E69 A9 1F sta APUSTATUS ; CPU:$EE6B PRG:2E6B 8D 15 40 lda #$C0 ; CPU:$EE6E PRG:2E6E A9 C0 sta JOY2 ; CPU:$EE70 PRG:2E70 8D 17 40 ; ----------------------------------------------------------------------------- ; Routine: ClearZpF0Ptr ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearZpF0Ptr: ldy #$00 ; CPU:$EE73 PRG:2E73 A0 00 lda #$00 ; CPU:$EE75 PRG:2E75 A9 00 ; ----------------------------------------------------------------------------- ; Routine: ClearZpF0Ptr_OnNonzero_EE77 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearZpF0Ptr_OnNonzero_EE77: sta (AudioChanPtr1Lo),y ; CPU:$EE77 PRG:2E77 91 F0 iny ; CPU:$EE79 PRG:2E79 C8 cpy #$10 ; CPU:$EE7A PRG:2E7A C0 10 bne ClearZpF0Ptr_OnNonzero_EE77 ; CPU:$EE7C PRG:2E7C D0 F9 ldy #$00 ; CPU:$EE7E PRG:2E7E A0 00 ldx #$10 ; CPU:$EE80 PRG:2E80 A2 10 ; ----------------------------------------------------------------------------- ; Routine: ClearZpF0Ptr_OnNonzero_EE82 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ClearZpF0Ptr_OnNonzero_EE82: lda #$00 ; CPU:$EE82 PRG:2E82 A9 00 sta (AudioChanPtr2Lo),y ; CPU:$EE84 PRG:2E84 91 F2 tya ; CPU:$EE86 PRG:2E86 98 clc ; CPU:$EE87 PRG:2E87 18 adc #$08 ; CPU:$EE88 PRG:2E88 69 08 tay ; CPU:$EE8A PRG:2E8A A8 dex ; CPU:$EE8B PRG:2E8B CA bne ClearZpF0Ptr_OnNonzero_EE82 ; CPU:$EE8C PRG:2E8C D0 F4 rts ; CPU:$EE8E PRG:2E8E 60 ; ----------------------------------------------------------------------------- ; Routine: UpdateAttractMode ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateAttractMode: lda #$00 ; CPU:$EE8F PRG:2E8F A9 00 sta ZpF8 ; CPU:$EE91 PRG:2E91 85 F8 sta ZpF9 ; CPU:$EE93 PRG:2E93 85 F9 sta ZpFA ; CPU:$EE95 PRG:2E95 85 FA sta ZpFB ; CPU:$EE97 PRG:2E97 85 FB sta AudioFrameCounter ; CPU:$EE99 PRG:2E99 85 FD sta AudioHandlerPtrHi ; CPU:$EE9B PRG:2E9B 85 FF lda #$F8 ; CPU:$EE9D PRG:2E9D A9 F8 sta AudioHandlerPtrLo ; CPU:$EE9F PRG:2E9F 85 FE ; ----------------------------------------------------------------------------- ; Routine: UpdateAttractMode_OnCarryClear_EEA1 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateAttractMode_OnCarryClear_EEA1: ldy AudioFrameCounter ; CPU:$EEA1 PRG:2EA1 A4 FD lda (AudioChanPtr2Lo),y ; CPU:$EEA3 PRG:2EA3 B1 F2 beq Add8ToZpFD ; CPU:$EEA5 PRG:2EA5 F0 3A cmp #$05 ; CPU:$EEA7 PRG:2EA7 C9 05 bcc UpdateAttractMode_OnCarryClear_EEB6 ; CPU:$EEA9 PRG:2EA9 90 0B sec ; CPU:$EEAB PRG:2EAB 38 sbc #$05 ; CPU:$EEAC PRG:2EAC E9 05 tay ; CPU:$EEAE PRG:2EAE A8 lda #$01 ; CPU:$EEAF PRG:2EAF A9 01 sta (AudioHandlerPtrLo),y ; CPU:$EEB1 PRG:2EB1 91 FE jmp Add8ToZpFD ; ; ----------------------------------------------------------------------------- ; Routine: UpdateAttractMode_OnCarryClear_EEB6 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateAttractMode_OnCarryClear_EEB6: sec ; CPU:$EEB6 PRG:2EB6 38 sbc #$01 ; CPU:$EEB7 PRG:2EB7 E9 01 tay ; CPU:$EEB9 PRG:2EB9 A8 lda (AudioHandlerPtrLo),y ; CPU:$EEBA PRG:2EBA B1 FE bne Add8ToZpFD ; CPU:$EEBC PRG:2EBC D0 23 lda #$01 ; CPU:$EEBE PRG:2EBE A9 01 sta (AudioHandlerPtrLo),y ; CPU:$EEC0 PRG:2EC0 91 FE tya ; CPU:$EEC2 PRG:2EC2 98 tax ; CPU:$EEC3 PRG:2EC3 AA adc #$04 ; CPU:$EEC4 PRG:2EC4 69 04 ldy AudioFrameCounter ; CPU:$EEC6 PRG:2EC6 A4 FD sta (AudioChanPtr2Lo),y ; CPU:$EEC8 PRG:2EC8 91 F2 txa ; CPU:$EECA PRG:2ECA 8A asl a ; CPU:$EECB PRG:2ECB 0A asl a ; CPU:$EECC PRG:2ECC 0A sta ZpF6 ; CPU:$EECD PRG:2ECD 85 F6 ldx #$00 ; CPU:$EECF PRG:2ECF A2 00 lda #$04 ; CPU:$EED1 PRG:2ED1 A9 04 ; ----------------------------------------------------------------------------- ; Routine: UpdateAttractMode_OnNonzero_EED3 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- UpdateAttractMode_OnNonzero_EED3: pha ; CPU:$EED3 PRG:2ED3 48 iny ; CPU:$EED4 PRG:2ED4 C8 lda (AudioChanPtr2Lo),y ; CPU:$EED5 PRG:2ED5 B1 F2 sta (ZpF6,x) ; CPU:$EED7 PRG:2ED7 81 F6 inc ZpF6 ; CPU:$EED9 PRG:2ED9 E6 F6 pla ; CPU:$EEDB PRG:2EDB 68 sec ; CPU:$EEDC PRG:2EDC 38 sbc #$01 ; CPU:$EEDD PRG:2EDD E9 01 bne UpdateAttractMode_OnNonzero_EED3 ; CPU:$EEDF PRG:2EDF D0 F2 ; ----------------------------------------------------------------------------- ; Routine: Add8ToZpFD ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Add8ToZpFD: lda AudioFrameCounter ; CPU:$EEE1 PRG:2EE1 A5 FD clc ; CPU:$EEE3 PRG:2EE3 18 adc #$08 ; CPU:$EEE4 PRG:2EE4 69 08 sta AudioFrameCounter ; CPU:$EEE6 PRG:2EE6 85 FD cmp #$80 ; CPU:$EEE8 PRG:2EE8 C9 80 bcc UpdateAttractMode_OnCarryClear_EEA1 ; CPU:$EEEA PRG:2EEA 90 B5 ldy #$00 ; CPU:$EEEC PRG:2EEC A0 00 sty AudioChanIndex ; CPU:$EEEE PRG:2EEE 84 FC sty AudioFrameCounter ; CPU:$EEF0 PRG:2EF0 84 FD ; ----------------------------------------------------------------------------- ; Routine: CheckByteAtZpF0Ptr ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- CheckByteAtZpF0Ptr: ldy AudioChanIndex ; CPU:$EEF2 PRG:2EF2 A4 FC lda (AudioChanPtr1Lo),y ; CPU:$EEF4 PRG:2EF4 B1 F0 bne CheckByteAtZpF0Ptr_OnNonzero_EEFB ; CPU:$EEF6 PRG:2EF6 D0 03 jmp Add8ToZpFD2 ; ; ----------------------------------------------------------------------------- ; Routine: CheckByteAtZpF0Ptr_OnNonzero_EEFB ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- CheckByteAtZpF0Ptr_OnNonzero_EEFB: ldy AudioFrameCounter ; CPU:$EEFB PRG:2EFB A4 FD lda (AudioChanPtr2Lo),y ; CPU:$EEFD PRG:2EFD B1 F2 bne CheckByteAtZpF0Ptr_OnNonzero_EF52 ; CPU:$EEFF PRG:2EFF D0 51 lda AudioChanIndex ; CPU:$EF01 PRG:2F01 A5 FC asl a ; CPU:$EF03 PRG:2F03 0A tay ; CPU:$EF04 PRG:2F04 A8 lda (ZpF4),y ; CPU:$EF05 PRG:2F05 B1 F4 pha ; CPU:$EF07 PRG:2F07 48 lda AudioFrameCounter ; CPU:$EF08 PRG:2F08 A5 FD adc #$05 ; CPU:$EF0A PRG:2F0A 69 05 tay ; CPU:$EF0C PRG:2F0C A8 pla ; CPU:$EF0D PRG:2F0D 68 sta (AudioChanPtr2Lo),y ; CPU:$EF0E PRG:2F0E 91 F2 lda AudioChanIndex ; CPU:$EF10 PRG:2F10 A5 FC asl a ; CPU:$EF12 PRG:2F12 0A adc #$01 ; CPU:$EF13 PRG:2F13 69 01 tay ; CPU:$EF15 PRG:2F15 A8 lda (ZpF4),y ; CPU:$EF16 PRG:2F16 B1 F4 pha ; CPU:$EF18 PRG:2F18 48 lda AudioFrameCounter ; CPU:$EF19 PRG:2F19 A5 FD adc #$06 ; CPU:$EF1B PRG:2F1B 69 06 tay ; CPU:$EF1D PRG:2F1D A8 pla ; CPU:$EF1E PRG:2F1E 68 sta (AudioChanPtr2Lo),y ; CPU:$EF1F PRG:2F1F 91 F2 jsr ReadSequenceByte5 ; ldy AudioFrameCounter ; CPU:$EF24 PRG:2F24 A4 FD sta (AudioChanPtr2Lo),y ; CPU:$EF26 PRG:2F26 91 F2 jsr ReadSequenceByte5 ; tax ; CPU:$EF2B PRG:2F2B AA lda AudioFrameCounter ; CPU:$EF2C PRG:2F2C A5 FD clc ; CPU:$EF2E PRG:2F2E 18 adc #$01 ; CPU:$EF2F PRG:2F2F 69 01 tay ; CPU:$EF31 PRG:2F31 A8 txa ; CPU:$EF32 PRG:2F32 8A sta (AudioChanPtr2Lo),y ; CPU:$EF33 PRG:2F33 91 F2 jsr ReadSequenceByte5 ; tax ; CPU:$EF38 PRG:2F38 AA lda AudioFrameCounter ; CPU:$EF39 PRG:2F39 A5 FD clc ; CPU:$EF3B PRG:2F3B 18 adc #$02 ; CPU:$EF3C PRG:2F3C 69 02 tay ; CPU:$EF3E PRG:2F3E A8 txa ; CPU:$EF3F PRG:2F3F 8A sta (AudioChanPtr2Lo),y ; CPU:$EF40 PRG:2F40 91 F2 jsr ReadSequenceByte5 ; tax ; CPU:$EF45 PRG:2F45 AA lda AudioFrameCounter ; CPU:$EF46 PRG:2F46 A5 FD clc ; CPU:$EF48 PRG:2F48 18 adc #$04 ; CPU:$EF49 PRG:2F49 69 04 tay ; CPU:$EF4B PRG:2F4B A8 txa ; CPU:$EF4C PRG:2F4C 8A sta (AudioChanPtr2Lo),y ; CPU:$EF4D PRG:2F4D 91 F2 jmp ReadSequenceByte ; ; ----------------------------------------------------------------------------- ; Routine: CheckByteAtZpF0Ptr_OnNonzero_EF52 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- CheckByteAtZpF0Ptr_OnNonzero_EF52: lda AudioFrameCounter ; CPU:$EF52 PRG:2F52 A5 FD clc ; CPU:$EF54 PRG:2F54 18 adc #$07 ; CPU:$EF55 PRG:2F55 69 07 tay ; CPU:$EF57 PRG:2F57 A8 lda (AudioChanPtr2Lo),y ; CPU:$EF58 PRG:2F58 B1 F2 sec ; CPU:$EF5A PRG:2F5A 38 sbc #$01 ; CPU:$EF5B PRG:2F5B E9 01 sta (AudioChanPtr2Lo),y ; CPU:$EF5D PRG:2F5D 91 F2 bne Add8ToZpFD2 ; CPU:$EF5F PRG:2F5F D0 56 ; ----------------------------------------------------------------------------- ; Routine: ReadSequenceByte ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ReadSequenceByte: jsr ReadSequenceByte5 ; cmp #$F0 ; CPU:$EF64 PRG:2F64 C9 F0 bcs Add8ToZpFD2_OnCarrySet_EFCC ; CPU:$EF66 PRG:2F66 B0 64 cmp #$C0 ; CPU:$EF68 PRG:2F68 C9 C0 bcs ReadSequenceByte_JoinBranchPaths_EFAA ; CPU:$EF6A PRG:2F6A B0 3E pha ; CPU:$EF6C PRG:2F6C 48 and #$F0 ; CPU:$EF6D PRG:2F6D 29 F0 lsr a ; CPU:$EF6F PRG:2F6F 4A lsr a ; CPU:$EF70 PRG:2F70 4A lsr a ; CPU:$EF71 PRG:2F71 4A tax ; CPU:$EF72 PRG:2F72 AA lda $F0A7,x ; CPU:$EF73 PRG:2F73 BD A7 F0 sta AudioHandlerPtrLo ; CPU:$EF76 PRG:2F76 85 FE lda $F0A8,x ; CPU:$EF78 PRG:2F78 BD A8 F0 sta AudioHandlerPtrHi ; CPU:$EF7B PRG:2F7B 85 FF pla ; CPU:$EF7D PRG:2F7D 68 and #$0F ; CPU:$EF7E PRG:2F7E 29 0F beq ReadSequenceByte_OnZero_EF8A ; CPU:$EF80 PRG:2F80 F0 08 tax ; CPU:$EF82 PRG:2F82 AA ; ----------------------------------------------------------------------------- ; Routine: ReadSequenceByte_OnNonzero_EF83 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ReadSequenceByte_OnNonzero_EF83: lsr AudioHandlerPtrLo ; CPU:$EF83 PRG:2F83 46 FE ror AudioHandlerPtrHi ; CPU:$EF85 PRG:2F85 66 FF dex ; CPU:$EF87 PRG:2F87 CA bne ReadSequenceByte_OnNonzero_EF83 ; CPU:$EF88 PRG:2F88 D0 F9 ; ----------------------------------------------------------------------------- ; Routine: ReadSequenceByte_OnZero_EF8A ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ReadSequenceByte_OnZero_EF8A: lda AudioFrameCounter ; CPU:$EF8A PRG:2F8A A5 FD clc ; CPU:$EF8C PRG:2F8C 18 adc #$04 ; CPU:$EF8D PRG:2F8D 69 04 tay ; CPU:$EF8F PRG:2F8F A8 lda (AudioChanPtr2Lo),y ; CPU:$EF90 PRG:2F90 B1 F2 and #$F8 ; CPU:$EF92 PRG:2F92 29 F8 ora AudioHandlerPtrLo ; CPU:$EF94 PRG:2F94 05 FE sta (AudioChanPtr2Lo),y ; CPU:$EF96 PRG:2F96 91 F2 lda AudioHandlerPtrHi ; CPU:$EF98 PRG:2F98 A5 FF dey ; CPU:$EF9A PRG:2F9A 88 sta (AudioChanPtr2Lo),y ; CPU:$EF9B PRG:2F9B 91 F2 ldy AudioFrameCounter ; CPU:$EF9D PRG:2F9D A4 FD lda (AudioChanPtr2Lo),y ; CPU:$EF9F PRG:2F9F B1 F2 cmp #$05 ; CPU:$EFA1 PRG:2FA1 C9 05 bcc ReadSequenceByte_JoinBranchPaths_EFAA ; CPU:$EFA3 PRG:2FA3 90 05 sec ; CPU:$EFA5 PRG:2FA5 38 sbc #$04 ; CPU:$EFA6 PRG:2FA6 E9 04 sta (AudioChanPtr2Lo),y ; CPU:$EFA8 PRG:2FA8 91 F2 ; ----------------------------------------------------------------------------- ; Routine: ReadSequenceByte_JoinBranchPaths_EFAA ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ReadSequenceByte_JoinBranchPaths_EFAA: jsr ReadSequenceByte5 ; pha ; CPU:$EFAD PRG:2FAD 48 lda AudioFrameCounter ; CPU:$EFAE PRG:2FAE A5 FD clc ; CPU:$EFB0 PRG:2FB0 18 adc #$07 ; CPU:$EFB1 PRG:2FB1 69 07 tay ; CPU:$EFB3 PRG:2FB3 A8 pla ; CPU:$EFB4 PRG:2FB4 68 sta (AudioChanPtr2Lo),y ; CPU:$EFB5 PRG:2FB5 91 F2 ; ----------------------------------------------------------------------------- ; Routine: Add8ToZpFD2 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Add8ToZpFD2: lda AudioFrameCounter ; CPU:$EFB7 PRG:2FB7 A5 FD clc ; CPU:$EFB9 PRG:2FB9 18 adc #$08 ; CPU:$EFBA PRG:2FBA 69 08 sta AudioFrameCounter ; CPU:$EFBC PRG:2FBC 85 FD lda AudioChanIndex ; CPU:$EFBE PRG:2FBE A5 FC adc #$01 ; CPU:$EFC0 PRG:2FC0 69 01 sta AudioChanIndex ; CPU:$EFC2 PRG:2FC2 85 FC cmp #$10 ; CPU:$EFC4 PRG:2FC4 C9 10 bcs Add8ToZpFD2_OnCarrySet_EFCB ; CPU:$EFC6 PRG:2FC6 B0 03 jmp CheckByteAtZpF0Ptr ; ; ----------------------------------------------------------------------------- ; Routine: Add8ToZpFD2_OnCarrySet_EFCB ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Add8ToZpFD2_OnCarrySet_EFCB: rts ; CPU:$EFCB PRG:2FCB 60 ; ----------------------------------------------------------------------------- ; Routine: Add8ToZpFD2_OnCarrySet_EFCC ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Add8ToZpFD2_OnCarrySet_EFCC: and #$0F ; CPU:$EFCC PRG:2FCC 29 0F asl a ; CPU:$EFCE PRG:2FCE 0A tax ; CPU:$EFCF PRG:2FCF AA lda $EFDD,x ; CPU:$EFD0 PRG:2FD0 BD DD EF sta AudioHandlerPtrLo ; CPU:$EFD3 PRG:2FD3 85 FE lda $EFDE,x ; CPU:$EFD5 PRG:2FD5 BD DE EF sta AudioHandlerPtrHi ; CPU:$EFD8 PRG:2FD8 85 FF jmp (AudioHandlerPtrLo) ; CPU:$EFDA PRG:2FDA 6C FE 00 AudioCommandTable: ; ---- data $EFDD-$F000 (36 bytes) ---- ; referenced by `lda $EFDD,x` at $EFD0 (operand $EFDD falls inside this region) ; referenced by `lda $EFDE,x` at $EFD5 (operand $EFDE falls inside this region) .byte $FD, $EF, $0A, $F0, $22, $F0, $3A, $F0, $52, $F0, $62, $F0, $72, $F0, $FD, $EF ; CPU:$EFDD PRG:2FDD FD EF 0A F0 22 F0 3A F0 52 F0 62 F0 72 F0 FD EF .byte $FD, $EF, $FD, $EF, $FD, $EF, $FD, $EF, $FD, $EF, $FD, $EF, $FD, $EF, $FD, $EF ; CPU:$EFED PRG:2FED FD EF FD EF FD EF FD EF FD EF FD EF FD EF FD EF .byte $A4, $FC, $A9, $00 ; CPU:$EFFD PRG:2FFD A4 FC A9 00 ; ----------------------------------------------------------------------------- ; Routine: Add8ToZpFD2_Entry_F001 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Add8ToZpFD2_Entry_F001: sta (AudioChanPtr1Lo),y ; CPU:$F001 PRG:3001 91 F0 ldy AudioFrameCounter ; CPU:$F003 PRG:3003 A4 FD sta (AudioChanPtr2Lo),y ; CPU:$F005 PRG:3005 91 F2 jmp Add8ToZpFD2 ; ; ---- data $F00A-$F01F (22 bytes) ---- .byte $20, $82, $F0, $48, $A5, $FD, $18, $69, $01, $A8, $B1, $F2, $29, $3F, $91, $F2 ; CPU:$F00A PRG:300A 20 82 F0 48 A5 FD 18 69 01 A8 B1 F2 29 3F 91 F2 .byte $68, $11, $F2, $91, $F2, $4C ; CPU:$F01A PRG:301A 68 11 F2 91 F2 4C ; ----------------------------------------------------------------------------- ; Routine: Add8ToZpFD2_Entry_F020 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Add8ToZpFD2_Entry_F020: adc (AudioSeqPtr,x) ; CPU:$F020 PRG:3020 61 EF jsr ReadSequenceByte5 ; pha ; CPU:$F025 PRG:3025 48 lda AudioFrameCounter ; CPU:$F026 PRG:3026 A5 FD clc ; CPU:$F028 PRG:3028 18 adc #$01 ; CPU:$F029 PRG:3029 69 01 tay ; CPU:$F02B PRG:302B A8 lda (AudioChanPtr2Lo),y ; CPU:$F02C PRG:302C B1 F2 and #$CF ; CPU:$F02E PRG:302E 29 CF sta (AudioChanPtr2Lo),y ; CPU:$F030 PRG:3030 91 F2 pla ; CPU:$F032 PRG:3032 68 ora (AudioChanPtr2Lo),y ; CPU:$F033 PRG:3033 11 F2 sta (AudioChanPtr2Lo),y ; CPU:$F035 PRG:3035 91 F2 jmp ReadSequenceByte ; ; ---- data $F03A-$F04F (22 bytes) ---- .byte $20, $82, $F0, $48, $A5, $FD, $18, $69, $01, $A8, $B1, $F2, $29, $F0, $91, $F2 ; CPU:$F03A PRG:303A 20 82 F0 48 A5 FD 18 69 01 A8 B1 F2 29 F0 91 F2 .byte $68, $11, $F2, $91, $F2, $4C ; CPU:$F04A PRG:304A 68 11 F2 91 F2 4C ; ----------------------------------------------------------------------------- ; Routine: Add8ToZpFD2_Entry_F050 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Add8ToZpFD2_Entry_F050: adc (AudioSeqPtr,x) ; CPU:$F050 PRG:3050 61 EF jsr ReadSequenceByte5 ; pha ; CPU:$F055 PRG:3055 48 lda AudioFrameCounter ; CPU:$F056 PRG:3056 A5 FD clc ; CPU:$F058 PRG:3058 18 adc #$02 ; CPU:$F059 PRG:3059 69 02 tay ; CPU:$F05B PRG:305B A8 pla ; CPU:$F05C PRG:305C 68 sta (AudioChanPtr2Lo),y ; CPU:$F05D PRG:305D 91 F2 jmp ReadSequenceByte ; ; ---- data $F062-$F081 (32 bytes) ---- .byte $20, $82, $F0, $48, $A5, $FD, $18, $69, $04, $A8, $68, $91, $F2, $4C, $61, $EF ; CPU:$F062 PRG:3062 20 82 F0 48 A5 FD 18 69 04 A8 68 91 F2 4C 61 EF .byte $20, $82, $F0, $48, $A5, $FD, $18, $69, $01, $A8, $68, $91, $F2, $4C, $61, $EF ; CPU:$F072 PRG:3072 20 82 F0 48 A5 FD 18 69 01 A8 68 91 F2 4C 61 EF ; ----------------------------------------------------------------------------- ; Routine: ReadSequenceByte5 ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- ReadSequenceByte5: lda AudioFrameCounter ; CPU:$F082 PRG:3082 A5 FD clc ; CPU:$F084 PRG:3084 18 adc #$05 ; CPU:$F085 PRG:3085 69 05 tay ; CPU:$F087 PRG:3087 A8 lda (AudioChanPtr2Lo),y ; CPU:$F088 PRG:3088 B1 F2 sta AudioHandlerPtrLo ; CPU:$F08A PRG:308A 85 FE iny ; CPU:$F08C PRG:308C C8 lda (AudioChanPtr2Lo),y ; CPU:$F08D PRG:308D B1 F2 sta AudioHandlerPtrHi ; CPU:$F08F PRG:308F 85 FF ldx #$00 ; CPU:$F091 PRG:3091 A2 00 lda (AudioHandlerPtrLo,x) ; CPU:$F093 PRG:3093 A1 FE pha ; CPU:$F095 PRG:3095 48 lda AudioHandlerPtrLo ; CPU:$F096 PRG:3096 A5 FE dey ; CPU:$F098 PRG:3098 88 clc ; CPU:$F099 PRG:3099 18 adc #$01 ; CPU:$F09A PRG:309A 69 01 sta (AudioChanPtr2Lo),y ; CPU:$F09C PRG:309C 91 F2 lda AudioHandlerPtrHi ; CPU:$F09E PRG:309E A5 FF adc #$00 ; CPU:$F0A0 PRG:30A0 69 00 iny ; CPU:$F0A2 PRG:30A2 C8 sta (AudioChanPtr2Lo),y ; CPU:$F0A3 PRG:30A3 91 F2 pla ; CPU:$F0A5 PRG:30A5 68 rts ; CPU:$F0A6 PRG:30A6 60 ; ---- data $F0A7-$FEFF (3673 bytes) ---- ; referenced by `lda $F0BF` at $EE5B (operand $F0BF falls inside this region) ; referenced by `lda $F0C0` at $EE60 (operand $F0C0 falls inside this region) ; referenced by `lda $F0A7,x` at $EF73 (operand $F0A7 falls inside this region) ; referenced by `lda $F0A8,x` at $EF78 (operand $F0A8 falls inside this region) .byte $03, $F9, $03, $C0, $03, $8A, $03, $57, $03, $27, $02, $FA, $02, $CF, $02, $A7 ; CPU:$F0A7 PRG:30A7 03 F9 03 C0 03 8A 03 57 03 27 02 FA 02 CF 02 A7 .byte $02, $81, $02, $5D, $02, $3B, $02, $1B, $C1, $F0, $8A, $F3, $D3, $F3, $E1, $F0 ; CPU:$F0B7 PRG:30B7 02 81 02 5D 02 3B 02 1B C1 F0 8A F3 D3 F3 E1 F0 .byte $FB, $F2, $FE, $F3, $0F, $F4, $F6, $F0, $A3, $F1, $DC, $F2, $8E, $F1, $21, $F1 ; CPU:$F0C7 PRG:30C7 FB F2 FE F3 0F F4 F6 F0 A3 F1 DC F2 8E F1 21 F1 .byte $4C, $F1, $6F, $F1, $C6, $F1, $39, $F2, $20, $F4, $01, $03, $7F, $08, $A2, $0C ; CPU:$F0D7 PRG:30D7 4C F1 6F F1 C6 F1 39 F2 20 F4 01 03 7F 08 A2 0C .byte $A2, $0C, $A2, $0C, $A2, $0C, $A2, $0C, $A2, $0C, $A2, $0C, $A2, $0C, $F0, $03 ; CPU:$F0E7 PRG:30E7 A2 0C A2 0C A2 0C A2 0C A2 0C A2 0C A2 0C F0 03 .byte $04, $7F, $08, $33, $01, $23, $01, $03, $01, $A2, $01, $92, $01, $72, $01, $52 ; CPU:$F0F7 PRG:30F7 04 7F 08 33 01 23 01 03 01 A2 01 92 01 72 01 52 .byte $01, $32, $01, $22, $01, $02, $01, $A1, $01, $91, $01, $C0, $08, $91, $01, $A1 ; CPU:$F107 PRG:3107 01 32 01 22 01 02 01 A1 01 91 01 C0 08 91 01 A1 .byte $01, $02, $01, $22, $01, $32, $01, $52, $01, $F0, $01, $96, $7F, $28, $82, $01 ; CPU:$F117 PRG:3117 01 02 01 22 01 32 01 52 01 F0 01 96 7F 28 82 01 .byte $92, $01, $A2, $01, $B2, $01, $03, $01, $13, $01, $23, $01, $33, $01, $43, $01 ; CPU:$F127 PRG:3127 92 01 A2 01 B2 01 03 01 13 01 23 01 33 01 43 01 .byte $53, $01, $33, $01, $23, $01, $13, $01, $03, $01, $B2, $01, $A2, $01, $92, $01 ; CPU:$F137 PRG:3137 53 01 33 01 23 01 13 01 03 01 B2 01 A2 01 92 01 .byte $82, $01, $72, $01, $F0, $01, $96, $7F, $28, $A2, $01, $B2, $01, $03, $01, $13 ; CPU:$F147 PRG:3147 82 01 72 01 F0 01 96 7F 28 A2 01 B2 01 03 01 13 .byte $01, $23, $01, $33, $01, $43, $01, $53, $01, $33, $01, $23, $01, $13, $01, $03 ; CPU:$F157 PRG:3157 01 23 01 33 01 43 01 53 01 33 01 23 01 13 01 03 .byte $01, $B2, $01, $A2, $01, $92, $01, $F0, $01, $96, $7F, $28, $B2, $01, $03, $01 ; CPU:$F167 PRG:3167 01 B2 01 A2 01 92 01 F0 01 96 7F 28 B2 01 03 01 .byte $13, $01, $23, $01, $33, $01, $43, $01, $53, $01, $33, $01, $23, $01, $13, $01 ; CPU:$F177 PRG:3177 13 01 23 01 33 01 43 01 53 01 33 01 23 01 13 01 .byte $03, $01, $B2, $01, $A2, $01, $F0, $02, $9C, $7F, $28, $31, $01, $71, $01, $A1 ; CPU:$F187 PRG:3187 03 01 B2 01 A2 01 F0 02 9C 7F 28 31 01 71 01 A1 .byte $01, $12, $01, $32, $01, $72, $01, $A2, $01, $13, $01, $F0, $02, $00, $7F, $10 ; CPU:$F197 PRG:3197 01 12 01 32 01 72 01 A2 01 13 01 F0 02 00 7F 10 .byte $20, $03, $50, $03, $80, $02, $A0, $02, $21, $02, $51, $02, $81, $01, $A1, $01 ; CPU:$F1A7 PRG:31A7 20 03 50 03 80 02 A0 02 21 02 51 02 81 01 A1 01 .byte $02, $01, $22, $01, $32, $01, $52, $01, $F5, $18, $73, $01, $C0, $08, $F0, $01 ; CPU:$F1B7 PRG:31B7 02 01 22 01 32 01 52 01 F5 18 73 01 C0 08 F0 01 .byte $03, $7F, $08, $72, $02, $82, $08, $72, $02, $82, $08, $72, $02, $82, $08, $42 ; CPU:$F1C7 PRG:31C7 03 7F 08 72 02 82 08 72 02 82 08 72 02 82 08 42 .byte $02, $52, $04, $32, $04, $82, $06, $82, $08, $B2, $02, $03, $10, $C0, $08, $72 ; CPU:$F1D7 PRG:31D7 02 52 04 32 04 82 06 82 08 B2 02 03 10 C0 08 72 .byte $02, $82, $08, $72, $02, $82, $08, $72, $02, $82, $08, $42, $02, $52, $04, $32 ; CPU:$F1E7 PRG:31E7 02 82 08 72 02 82 08 72 02 82 08 42 02 52 04 32 .byte $04, $82, $06, $82, $08, $42, $02, $52, $10, $C0, $08, $72, $02, $82, $08, $72 ; CPU:$F1F7 PRG:31F7 04 82 06 82 08 42 02 52 10 C0 08 72 02 82 08 72 .byte $02, $82, $08, $72, $02, $82, $08, $42, $02, $52, $04, $32, $04, $82, $06, $82 ; CPU:$F207 PRG:3207 02 82 08 72 02 82 08 42 02 52 04 32 04 82 06 82 .byte $08, $A2, $02, $B2, $08, $03, $02, $13, $0A, $13, $02, $23, $0C, $03, $02, $13 ; CPU:$F217 PRG:3217 08 A2 02 B2 08 03 02 13 0A 13 02 23 0C 03 02 13 .byte $08, $A2, $02, $B2, $08, $82, $0A, $A2, $02, $B2, $0A, $72, $02, $82, $10, $C0 ; CPU:$F227 PRG:3227 08 A2 02 B2 08 82 0A A2 02 B2 0A 72 02 82 10 C0 .byte $08, $F0, $02, $81, $7F, $40, $80, $08, $C0, $06, $80, $04, $C0, $02, $80, $08 ; CPU:$F237 PRG:3237 08 F0 02 81 7F 40 80 08 C0 06 80 04 C0 02 80 08 .byte $C0, $06, $80, $04, $C0, $02, $80, $08, $C0, $06, $80, $04, $C0, $02, $01, $04 ; CPU:$F247 PRG:3247 C0 06 80 04 C0 02 80 08 C0 06 80 04 C0 02 01 04 .byte $C0, $01, $11, $04, $C0, $01, $21, $04, $C0, $01, $31, $04, $C0, $01, $80, $08 ; CPU:$F257 PRG:3257 C0 01 11 04 C0 01 21 04 C0 01 31 04 C0 01 80 08 .byte $C0, $06, $80, $04, $C0, $02, $80, $08, $C0, $06, $80, $04, $C0, $02, $80, $08 ; CPU:$F267 PRG:3267 C0 06 80 04 C0 02 80 08 C0 06 80 04 C0 02 80 08 .byte $C0, $06, $80, $04, $C0, $02, $01, $04, $C0, $01, $11, $04, $C0, $01, $21, $04 ; CPU:$F277 PRG:3277 C0 06 80 04 C0 02 01 04 C0 01 11 04 C0 01 21 04 .byte $C0, $01, $31, $04, $C0, $01, $80, $08, $C0, $06, $80, $04, $C0, $02, $80, $08 ; CPU:$F287 PRG:3287 C0 01 31 04 C0 01 80 08 C0 06 80 04 C0 02 80 08 .byte $C0, $06, $80, $04, $C0, $02, $80, $08, $C0, $06, $80, $04, $C0, $02, $01, $04 ; CPU:$F297 PRG:3297 C0 06 80 04 C0 02 80 08 C0 06 80 04 C0 02 01 04 .byte $C0, $01, $11, $04, $C0, $01, $21, $04, $C0, $01, $31, $04, $C0, $01, $81, $0A ; CPU:$F2A7 PRG:32A7 C0 01 11 04 C0 01 21 04 C0 01 31 04 C0 01 81 0A .byte $31, $04, $C0, $01, $21, $04, $C0, $01, $11, $04, $C0, $01, $B0, $04, $C0, $01 ; CPU:$F2B7 PRG:32B7 31 04 C0 01 21 04 C0 01 11 04 C0 01 B0 04 C0 01 .byte $80, $04, $C0, $01, $70, $04, $C0, $01, $60, $08, $C0, $02, $70, $08, $C0, $02 ; CPU:$F2C7 PRG:32C7 80 04 C0 01 70 04 C0 01 60 08 C0 02 70 08 C0 02 .byte $80, $0C, $C0, $06, $F0, $02, $98, $7F, $28, $33, $01, $23, $01, $13, $01, $03 ; CPU:$F2D7 PRG:32D7 80 0C C0 06 F0 02 98 7F 28 33 01 23 01 13 01 03 .byte $01, $A2, $01, $82, $01, $72, $01, $52, $01, $32, $01, $12, $01, $A1, $01, $71 ; CPU:$F2E7 PRG:32E7 01 A2 01 82 01 72 01 52 01 32 01 12 01 A1 01 71 .byte $01, $31, $01, $F0, $01, $42, $7F, $38, $23, $02, $33, $02, $43, $02, $53, $02 ; CPU:$F2F7 PRG:32F7 01 31 01 F0 01 42 7F 38 23 02 33 02 43 02 53 02 .byte $43, $02, $33, $02, $23, $02, $13, $02, $23, $02, $33, $02, $43, $02, $33, $02 ; CPU:$F307 PRG:3307 43 02 33 02 23 02 13 02 23 02 33 02 43 02 33 02 .byte $23, $02, $13, $02, $03, $02, $13, $02, $23, $02, $33, $02, $23, $02, $13, $02 ; CPU:$F317 PRG:3317 23 02 13 02 03 02 13 02 23 02 33 02 23 02 13 02 .byte $03, $02, $B2, $02, $03, $02, $13, $02, $23, $02, $13, $02, $03, $02, $B2, $02 ; CPU:$F327 PRG:3327 03 02 B2 02 03 02 13 02 23 02 13 02 03 02 B2 02 .byte $A2, $02, $B2, $02, $03, $02, $23, $02, $03, $02, $B2, $02, $A2, $02, $92, $02 ; CPU:$F337 PRG:3337 A2 02 B2 02 03 02 23 02 03 02 B2 02 A2 02 92 02 .byte $A2, $02, $B2, $02, $03, $02, $B2, $02, $A2, $02, $92, $02, $82, $02, $92, $02 ; CPU:$F347 PRG:3347 A2 02 B2 02 03 02 B2 02 A2 02 92 02 82 02 92 02 .byte $A2, $02, $03, $02, $A2, $02, $92, $02, $82, $02, $F2, $00, $F3, $00, $F5, $18 ; CPU:$F357 PRG:3357 A2 02 03 02 A2 02 92 02 82 02 F2 00 F3 00 F5 18 .byte $31, $01, $71, $01, $B1, $01, $32, $01, $72, $01, $B2, $01, $33, $01, $73, $01 ; CPU:$F367 PRG:3367 31 01 71 01 B1 01 32 01 72 01 B2 01 33 01 73 01 .byte $C0, $02, $31, $01, $71, $01, $B1, $01, $32, $01, $72, $01, $B2, $01, $33, $01 ; CPU:$F377 PRG:3377 C0 02 31 01 71 01 B1 01 32 01 72 01 B2 01 33 01 .byte $73, $01, $F0, $01, $81, $7F, $40, $31, $08, $32, $08, $A1, $08, $71, $08, $32 ; CPU:$F387 PRG:3387 73 01 F0 01 81 7F 40 31 08 32 08 A1 08 71 08 32 .byte $07, $A1, $07, $71, $0C, $C0, $06, $41, $08, $42, $08, $B1, $08, $81, $08, $42 ; CPU:$F397 PRG:3397 07 A1 07 71 0C C0 06 41 08 42 08 B1 08 81 08 42 .byte $07, $B1, $07, $81, $0C, $C0, $06, $31, $08, $32, $08, $A1, $08, $71, $08, $32 ; CPU:$F3A7 PRG:33A7 07 B1 07 81 0C C0 06 31 08 32 08 A1 08 71 08 32 .byte $07, $A1, $07, $71, $0C, $C0, $06, $61, $05, $71, $05, $81, $05, $81, $05, $91 ; CPU:$F3B7 PRG:33B7 07 A1 07 71 0C C0 06 61 05 71 05 81 05 81 05 91 .byte $05, $A1, $05, $A1, $05, $B1, $05, $02, $05, $32, $0C, $F0, $02, $82, $7F, $40 ; CPU:$F3C7 PRG:33C7 05 A1 05 A1 05 B1 05 02 05 32 0C F0 02 82 7F 40 .byte $30, $18, $A0, $08, $30, $0E, $A0, $0C, $C0, $06, $40, $18, $B0, $08, $40, $0E ; CPU:$F3D7 PRG:33D7 30 18 A0 08 30 0E A0 0C C0 06 40 18 B0 08 40 0E .byte $B0, $0C, $C0, $06, $30, $18, $A0, $08, $30, $0E, $A0, $0C, $C0, $06, $A0, $0F ; CPU:$F3E7 PRG:33E7 B0 0C C0 06 30 18 A0 08 30 0E A0 0C C0 06 A0 0F .byte $01, $0F, $21, $0F, $31, $0C, $F0, $01, $9F, $7F, $28, $01, $01, $41, $01, $71 ; CPU:$F3F7 PRG:33F7 01 0F 21 0F 31 0C F0 01 9F 7F 28 01 01 41 01 71 .byte $01, $A1, $01, $02, $01, $F5, $18, $F0, $01, $9F, $7F, $28, $02, $01, $A1, $01 ; CPU:$F407 PRG:3407 01 A1 01 02 01 F5 18 F0 01 9F 7F 28 02 01 A1 01 .byte $71, $01, $41, $01, $F5, $18, $01, $01, $F0, $01, $9F, $7F, $28, $52, $01, $92 ; CPU:$F417 PRG:3417 71 01 41 01 F5 18 01 01 F0 01 9F 7F 28 52 01 92 .byte $01, $03, $01, $33, $01, $F5, $18, $53, $03, $F5, $28, $53, $01, $33, $01, $03 ; CPU:$F427 PRG:3427 01 03 01 33 01 F5 18 53 03 F5 28 53 01 33 01 03 .byte $01, $92, $01, $F5, $18, $52, $03, $92, $01, $13, $01, $43, $01, $73, $01, $F5 ; CPU:$F437 PRG:3437 01 92 01 F5 18 52 03 92 01 13 01 43 01 73 01 F5 .byte $18, $93, $0A, $F5, $28, $93, $01, $73, $01, $43, $01, $13, $01, $F5, $18, $92 ; CPU:$F447 PRG:3447 18 93 0A F5 28 93 01 73 01 43 01 13 01 F5 18 92 .byte $03, $F0, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F457 PRG:3457 03 F0 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 ; CPU:$F467 PRG:3467 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 ; CPU:$F477 PRG:3477 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 ; CPU:$F487 PRG:3487 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 ; CPU:$F497 PRG:3497 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 ; CPU:$F4A7 PRG:34A7 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 ; CPU:$F4B7 PRG:34B7 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 ; CPU:$F4C7 PRG:34C7 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 ; CPU:$F4D7 PRG:34D7 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 ; CPU:$F4E7 PRG:34E7 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 ; CPU:$F4F7 PRG:34F7 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 ; CPU:$F507 PRG:3507 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 ; CPU:$F517 PRG:3517 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 ; CPU:$F527 PRG:3527 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 ; CPU:$F537 PRG:3537 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 ; CPU:$F547 PRG:3547 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 ; CPU:$F557 PRG:3557 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 ; CPU:$F567 PRG:3567 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 ; CPU:$F577 PRG:3577 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 ; CPU:$F587 PRG:3587 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 ; CPU:$F597 PRG:3597 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 ; CPU:$F5A7 PRG:35A7 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 ; CPU:$F5B7 PRG:35B7 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 ; CPU:$F5C7 PRG:35C7 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 ; CPU:$F5D7 PRG:35D7 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 ; CPU:$F5E7 PRG:35E7 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 ; CPU:$F5F7 PRG:35F7 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 ; CPU:$F607 PRG:3607 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 ; CPU:$F617 PRG:3617 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 ; CPU:$F627 PRG:3627 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 ; CPU:$F637 PRG:3637 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 ; CPU:$F647 PRG:3647 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 ; CPU:$F657 PRG:3657 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 ; CPU:$F667 PRG:3667 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 ; CPU:$F677 PRG:3677 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 ; CPU:$F687 PRG:3687 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 ; CPU:$F697 PRG:3697 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 ; CPU:$F6A7 PRG:36A7 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 ; CPU:$F6B7 PRG:36B7 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 ; CPU:$F6C7 PRG:36C7 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 ; CPU:$F6D7 PRG:36D7 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 ; CPU:$F6E7 PRG:36E7 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 ; CPU:$F6F7 PRG:36F7 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 ; CPU:$F707 PRG:3707 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 ; CPU:$F717 PRG:3717 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 ; CPU:$F727 PRG:3727 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 ; CPU:$F737 PRG:3737 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 ; CPU:$F747 PRG:3747 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 ; CPU:$F757 PRG:3757 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 ; CPU:$F767 PRG:3767 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 ; CPU:$F777 PRG:3777 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 ; CPU:$F787 PRG:3787 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 ; CPU:$F797 PRG:3797 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 ; CPU:$F7A7 PRG:37A7 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 ; CPU:$F7B7 PRG:37B7 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 ; CPU:$F7C7 PRG:37C7 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 ; CPU:$F7D7 PRG:37D7 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 ; CPU:$F7E7 PRG:37E7 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 ; CPU:$F7F7 PRG:37F7 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 ; CPU:$F807 PRG:3807 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 ; CPU:$F817 PRG:3817 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 ; CPU:$F827 PRG:3827 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 ; CPU:$F837 PRG:3837 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 ; CPU:$F847 PRG:3847 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 ; CPU:$F857 PRG:3857 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 ; CPU:$F867 PRG:3867 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 ; CPU:$F877 PRG:3877 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 ; CPU:$F887 PRG:3887 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 ; CPU:$F897 PRG:3897 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 ; CPU:$F8A7 PRG:38A7 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 ; CPU:$F8B7 PRG:38B7 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 ; CPU:$F8C7 PRG:38C7 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 ; CPU:$F8D7 PRG:38D7 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 ; CPU:$F8E7 PRG:38E7 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 ; CPU:$F8F7 PRG:38F7 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 ; CPU:$F907 PRG:3907 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 ; CPU:$F917 PRG:3917 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 ; CPU:$F927 PRG:3927 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 ; CPU:$F937 PRG:3937 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 ; CPU:$F947 PRG:3947 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 ; CPU:$F957 PRG:3957 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 ; CPU:$F967 PRG:3967 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 ; CPU:$F977 PRG:3977 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 ; CPU:$F987 PRG:3987 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 ; CPU:$F997 PRG:3997 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 ; CPU:$F9A7 PRG:39A7 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 ; CPU:$F9B7 PRG:39B7 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 ; CPU:$F9C7 PRG:39C7 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 ; CPU:$F9D7 PRG:39D7 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 ; CPU:$F9E7 PRG:39E7 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 ; CPU:$F9F7 PRG:39F7 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 ; CPU:$FA07 PRG:3A07 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 ; CPU:$FA17 PRG:3A17 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 ; CPU:$FA27 PRG:3A27 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 ; CPU:$FA37 PRG:3A37 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 ; CPU:$FA47 PRG:3A47 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 ; CPU:$FA57 PRG:3A57 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 ; CPU:$FA67 PRG:3A67 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 ; CPU:$FA77 PRG:3A77 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 ; CPU:$FA87 PRG:3A87 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 ; CPU:$FA97 PRG:3A97 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 ; CPU:$FAA7 PRG:3AA7 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 ; CPU:$FAB7 PRG:3AB7 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 ; CPU:$FAC7 PRG:3AC7 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 ; CPU:$FAD7 PRG:3AD7 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 ; CPU:$FAE7 PRG:3AE7 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 ; CPU:$FAF7 PRG:3AF7 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 ; CPU:$FB07 PRG:3B07 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 ; CPU:$FB17 PRG:3B17 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 ; CPU:$FB27 PRG:3B27 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 ; CPU:$FB37 PRG:3B37 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 ; CPU:$FB47 PRG:3B47 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 ; CPU:$FB57 PRG:3B57 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 ; CPU:$FB67 PRG:3B67 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 ; CPU:$FB77 PRG:3B77 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 ; CPU:$FB87 PRG:3B87 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 ; CPU:$FB97 PRG:3B97 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 ; CPU:$FBA7 PRG:3BA7 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 ; CPU:$FBB7 PRG:3BB7 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 ; CPU:$FBC7 PRG:3BC7 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 ; CPU:$FBD7 PRG:3BD7 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 ; CPU:$FBE7 PRG:3BE7 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 ; CPU:$FBF7 PRG:3BF7 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 ; CPU:$FC07 PRG:3C07 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 ; CPU:$FC17 PRG:3C17 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 ; CPU:$FC27 PRG:3C27 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 ; CPU:$FC37 PRG:3C37 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 ; CPU:$FC47 PRG:3C47 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 ; CPU:$FC57 PRG:3C57 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 ; CPU:$FC67 PRG:3C67 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 ; CPU:$FC77 PRG:3C77 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 ; CPU:$FC87 PRG:3C87 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 ; CPU:$FC97 PRG:3C97 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 ; CPU:$FCA7 PRG:3CA7 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 ; CPU:$FCB7 PRG:3CB7 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 ; CPU:$FCC7 PRG:3CC7 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 ; CPU:$FCD7 PRG:3CD7 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 ; CPU:$FCE7 PRG:3CE7 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 ; CPU:$FCF7 PRG:3CF7 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 ; CPU:$FD07 PRG:3D07 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 ; CPU:$FD17 PRG:3D17 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 ; CPU:$FD27 PRG:3D27 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 ; CPU:$FD37 PRG:3D37 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 ; CPU:$FD47 PRG:3D47 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 ; CPU:$FD57 PRG:3D57 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 ; CPU:$FD67 PRG:3D67 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 ; CPU:$FD77 PRG:3D77 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 ; CPU:$FD87 PRG:3D87 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 ; CPU:$FD97 PRG:3D97 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 ; CPU:$FDA7 PRG:3DA7 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 ; CPU:$FDB7 PRG:3DB7 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 ; CPU:$FDC7 PRG:3DC7 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 ; CPU:$FDD7 PRG:3DD7 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 ; CPU:$FDE7 PRG:3DE7 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 ; CPU:$FDF7 PRG:3DF7 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 ; CPU:$FE07 PRG:3E07 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 ; CPU:$FE17 PRG:3E17 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 ; CPU:$FE27 PRG:3E27 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 ; CPU:$FE37 PRG:3E37 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 ; CPU:$FE47 PRG:3E47 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 ; CPU:$FE57 PRG:3E57 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 ; CPU:$FE67 PRG:3E67 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 ; CPU:$FE77 PRG:3E77 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 ; CPU:$FE87 PRG:3E87 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 ; CPU:$FE97 PRG:3E97 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 ; CPU:$FEA7 PRG:3EA7 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 ; CPU:$FEB7 PRG:3EB7 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 ; CPU:$FEC7 PRG:3EC7 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 ; CPU:$FED7 PRG:3ED7 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 ; CPU:$FEE7 PRG:3EE7 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 ; CPU:$FEF7 PRG:3EF7 FF FF FF FF FF FF FF FF FF ; ----------------------------------------------------------------------------- ; Routine: Reset ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Reset: sei ; CPU:$FF00 PRG:3F00 78 cld ; CPU:$FF01 PRG:3F01 D8 lda #$00 ; CPU:$FF02 PRG:3F02 A9 00 sta PPUCTRL ; CPU:$FF04 PRG:3F04 8D 00 20 sta PPUMASK ; CPU:$FF07 PRG:3F07 8D 01 20 ; ----------------------------------------------------------------------------- ; Routine: Reset_WaitVBlankClear_FF0A ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Reset_WaitVBlankClear_FF0A: lda PPUSTATUS ; CPU:$FF0A PRG:3F0A AD 02 20 bpl Reset_WaitVBlankClear_FF0A ; CPU:$FF0D PRG:3F0D 10 FB ; ----------------------------------------------------------------------------- ; Routine: Reset_WaitVBlankSet_FF0F ; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. ; Local: Continues its parent routine along the condition or operation encoded in this label, ; then returns, branches again, or rejoins shared code as documented by the instructions. ; Parameters: Undetermined in Pass 1 unless implied by the caller. ; Returns: Undetermined in Pass 1; status flags and registers may carry results. ; Clobbers: Undetermined in Pass 1. ; ----------------------------------------------------------------------------- Reset_WaitVBlankSet_FF0F: lda PPUSTATUS ; CPU:$FF0F PRG:3F0F AD 02 20 bpl Reset_WaitVBlankSet_FF0F ; CPU:$FF12 PRG:3F12 10 FB jmp ColdStart ; ; ---- data $FF17-$FFFF (233 bytes) ---- .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF17 PRG:3F17 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 ; CPU:$FF27 PRG:3F27 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 ; CPU:$FF37 PRG:3F37 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 ; CPU:$FF47 PRG:3F47 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 ; CPU:$FF57 PRG:3F57 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 ; CPU:$FF67 PRG:3F67 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 ; CPU:$FF77 PRG:3F77 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 ; CPU:$FF87 PRG:3F87 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 ; CPU:$FF97 PRG:3F97 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 ; CPU:$FFA7 PRG:3FA7 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 ; CPU:$FFB7 PRG:3FB7 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 ; CPU:$FFC7 PRG:3FC7 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 ; CPU:$FFD7 PRG:3FD7 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 ; CPU:$FFE7 PRG:3FE7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $AB, $EC, $FA, $C0, $00, $FF, $6A, $C1 ; CPU:$FFF7 PRG:3FF7 FF AB EC FA C0 00 FF 6A C1