The current URL is datacrystal.tcrf.net.
Tactics Ogre: Let Us Cling Together (SNES)/ROM map
The following article is a ROM map for Tactics Ogre: Let Us Cling Together (SNES).
ROM offsets
These are ROM offsets for the starting points of each section (all in hex), pretty sure it's headerless (latest ROM revision, has Lakmir's translation patch applied to it):
40c33 - Spell Areas
40cc9 - Spell Function Bytes
40fb7 - Spell Accuracy Types (Auto-Hit, Dex-Based, etc.)
4104d - Spell Cost Type (Whether it eats HP or MP, how much, etc.)
41179 - Spell Formula Table
4133B - Spell Elements (Fire, Air, Virtue, etc.)
42703 - Character Sprite pointers
429e3 - Character Name pointers
42ad2 - Job IDs
42bc2 - Starting Elements
42cb0 - Starting Alignments
42dbf - Number of Magic Slots
42ead - Starting Level
42f9b - Starting HP
430bb - HP Growth
4314b - Starting MP
4326b - MP Growth
432fb - Starting Strength
4338b - Strength Growth
4341b - Starting Vitality
434ab - Vitality Growth
4353b - Starting Intelligence
435cb - Intelligence Growth
4365b - Starting Mentality
436eb - Mentality Growth
4377b - Starting Agility
4380b - Agility Growth
4389b - Starting Dexterity
4392b - Dexterity Growth
43a4c - Class Weight Penalties
43add - Physical Resistance
43b6e - Air Resistance
43bff - Fire Resistance
43c90 - Earth Resistance
43d21 - Water Resistance
43db2 - Virtue Resistance
43e43 - Bane Resistance
43ef4 - Attack+ Capability
440b1 - Species Table
441a1 - Basic Indirect Attack Type
442b0 - Magic Set that can be equipped
443a0 - Class Special Attacks (Slot 1)
4448f - Class Special Attacks (Slot 2)
4457e - Class Special Attacks (Slot 3)
4466d - Class Special Attacks (Slot 4)
4475b - Movement Types
44849 - Movement Rates
44937 - Starting Loyalties
44a26 - Weather Tolerance
451da - Item Types
452ca - Item Elements
453ba - Weapon Handedness
454aa - Item Equip Slot Locations (Finger, Head, etc.)
45655 - Item Weights
4572e - Item Strength Modifiers (Atk. Power)
4580e - Item Intelligence Modifiers
458ee - Item Agility Modifiers
459ce - Item Dexterity Modifiers
45aae - Item Vitality Modifiers
45b8e - Item Mentality Modifiers
45c6e - Item Luck Modifiers
45d4e - Item Physical Resistance (Def. Power) (signed)
45e2e - Item Air Resistance (signed)
45f0e - Item Fire Resistance (signed)
45fee - Item Earth Resistance (signed)
460ce - Item Water Resistance (signed)
461ae - Item Virtue Resistance (signed)
4628e - Item Bane Resistance (signed)
4646f - Item Prices (multiplied by 10 in-game)
46612 - Item Strength Raise at Level Up
466e4 - Item Intelligence Raise at Level Up
467b4 - Item Agility Raise at Level Up
46884 - Item Dexterity Raise at Level Up
46956 - Item Vitality Raise at Level Up
46a26 - Item Mentality Raise at Level Up
46af6 - Item Luck Raise at Level Up
46bc6 - Item Special Effects (Stuns on hit, Anti-Dragon, etc.)
46cb6 - Item Special Skills (used in the Item menu)
46d86 - Item Status Guards (immunity to petrification, etc.)
46e76 - Item Passive Effects (wearer can fly, HP regen, etc.)
47047 - Spell MP cost/Targeting Information
47172 - Spell Schools (Hahnela, Ishtar, DragonGod, etc.)
47208 - Spell Ranges
4729e - Special Spell Conditions #1 (Summons, Line-of-sight spells, whether equipment is needed, etc.)
4732f - Spell Prices (multiplied by 10 in-game)
47431 - Spell Set Modifiers
474a1 - How the caster behaves when using the spell/skill. NOTE: Each half of the bytes here specifies one skill.
474f1 - Special Spell Conditions #2 (If equipment is needed, this specifies the type (swords, spears, etc.) NOTE: Each half of the bytes here specifies one skill.
ea0dc - Class Grids (determines what you can change into)
ebba7 - Denim's Base Class
ebca1 - Denim's Initial Equipment (Slot 1)
ebcac - Denim's Initial Equipment (Slot 2)
ebcb7 - Denim's Initial Equipment (Slot 3)
ebcc2 - Denim's Initial Equipment (Slot 4)
ebc94 - Denim's Initial Spells (doesn't insert into Magic menu, need to use a JMP routine to get anything out of it)
ed61e - Item Shop pointers/data
ed6d9 - Magic Shop pointers/data
f3195 - Job Stat Requirements (what's needed to change into that job stat-wise, might also cover alignment but I couldn't tell from a glance).
Bank $80
This is all taken from the Japanese V1.0 version
$80/8000 ROM Start
$00/8000 18 CLC ; Switch to Native Mode $00/8001 FB XCE $00/8002 78 SEI ; Disable Interrupts $00/8003 D8 CLD ; Deactivate Decimal Mode (if accidentally turned on) $00/8004 4B PHK ; Push Bank Register $00/8005 AB PLB ; Pull Data Bank Register $00/8006 E2 20 SEP #$20 $00/8008 C2 10 REP #$10 $00/800A A2 FF 1F LDX #$1FFF ; Set Stack to $7E:1FFF $00/800D 9A TXS $00/800E F4 00 00 PEA $0000 ; Direct Page Register = #$0000 $00/8011 2B PLD $00/8012 9C 00 42 STZ $4200 ; Deactivate NMI / Auto-Joypad $00/8015 9C AF 05 STZ $05AF ; Backup for $4200? $00/8018 20 6A 80 JSR $806A ; De-activate HDMAs, FBLANK, Clear Screen Destination Registers
Clear $7E:2000 to $7E:FFFF
$00/801B A0 00 E0 LDY #$E000 ; DMA Size: #$E000 $00/801E 8C 05 43 STY $4305 $00/8021 A0 00 20 LDY #$2000 ; WRAM Destination: $(7E)2000 $00/8024 18 CLC ; WRAM-Destination: Bank $7E $00/8025 A2 69 80 LDX #$8069 ; DMA Source Address: $00/8069 (ROM: $0000.0069 $00/8028 A9 00 LDA #$00 $00/802A 22 A7 9D 80 JSL $809DA7 ; Long Branch to the DMA setup and activation
$00/802E A9 01 LDA #$01 ; Activate Fast ROM $00/8030 8D 0D 42 STA $420D $00/8033 22 00 80 8F JSL $8F8000 ; Jump to ??? (Sound Setup?) $00/8037 64 59 STZ $59 ; ??? $00/8039 64 EA STZ $EA $00/803B C6 EA DEC $EA ; ??? ($EA = #$FF) $00/803D A9 01 LDA #$01 $00/803F 85 51 STA $51 ; ??? ($51 = #$01) $00/8041 78 SEI ; Disable Interrupts (again) $00/8042 D8 CLD ; Deactivate Decimal Mode (again) $00/8043 4B PHK ; Push Bank Register $00/8044 AB PLB ; Pull Data Bank Register $00/8045 E2 20 SEP #$20 $00/8047 C2 10 REP #$10 $00/8049 A2 00 02 LDX #$0200 $00/804C 8E 5F 05 STX $055F ; ??? $00/804F 9C 00 42 STZ $4200 ; Deactivate NMI / Auto-Joypad (again) $00/8052 9C AF 05 STZ $05AF ; Backup for $4200? $00/8055 20 6A 80 JSR $806A ; De-activate HDMAs, FBLANK, Clear Screen Destination Registers $00/8058 A9 01 LDA #$01 ; Activate Fast ROM (again) $00/805A 8D 0D 42 STA $420D $00/805D AF F0 FF 00 LDA $00FFF0 ; = #$FF $00/8061 8F F3 00 00 STA $0000F3 ; ??? $00/8065 5C 91 80 80 JMP $808091 ; Jump to ???
$80/8069 Clear Byte
$00/8069 00 ; Clear Byte for $80/801B
$80/806A De-activate HDMAs, FBLANK, Clear Screen Destination Registers
$00/806A 9C 0C 42 STZ $420C ; De-activate HDMAs $00/806D 9C B0 05 STZ $05B0 ; Backup for $420C? $00/8070 9C 86 05 STZ $0586 ; Backup for $420C? $00/8073 A9 80 LDA #$80 $00/8075 8D 00 21 STA $2100 ; FBLANK $00/8078 8D 87 05 STA $0587 ; Backup for $2100 $00/807B 8D 6A 05 STA $056A ; Backup for $2100 $00/807E 9C 2C 21 STZ $212C ; Clear Main Screen Destinations $00/8081 9C 2D 21 STZ $212D ; Clear Subscreen Destinations $00/8084 60 RTS
$80/8085 NMI Handler
$00/8085 5C 7E AF 80 JMP $80AF7E ; NMI Handler ("Jump to" Fast ROM)
$80/8091 ???
$80/8091 22 4A A1 80 JSL $80A14A ; Long-Jump to Deactivation of NMI, Auto-Joypad & HDMAs $80/8095 A2 FF 1F LDX #$1FFF ; Set Stack to $7E:1FFF $80/8098 9A TXS $80/8099 F4 00 00 PEA $0000 ; Direct Page Register = #$0000 $80/809C 2B PLD $80/809D 4B PHK ; Push Bank Register $80/809E AB PLB ; Pull Data Bank Register $80/809F 22 B6 A1 80 JSL $80A1B6 ; Write Executable Code in WRAM $80/80A3 A5 51 LDA $51 [$00:0051] A:A16B X:05DD Y:0004 P:eNvMxdIzC $80/80A5 F0 0C BEQ $0C [$80B3] A:A101 X:05DD Y:0004 P:envMxdIzC $80/80A7 C9 02 CMP #$02 A:A101 X:05DD Y:0004 P:envMxdIzC $80/80A9 F0 04 BEQ $04 [$80AF] A:A101 X:05DD Y:0004 P:eNvMxdIzc $80/80AB A9 F8 LDA #$F8 A:A101 X:05DD Y:0004 P:eNvMxdIzc $80/80AD 80 06 BRA $06 [$80B5] A:A1F8 X:05DD Y:0004 P:eNvMxdIzc
Code is missing here
$80/80B5 85 F5 STA $F5 [$00:00F5] A:A1F8 X:05DD Y:0004 P:eNvMxdIzc $80/80B7 22 28 AF 80 JSL $80AF28[$80:AF28] A:A1F8 X:05DD Y:0004 P:eNvMxdIzc $80/80BB 22 14 AF 80 JSL $80AF14[$80:AF14] A:0000 X:05DD Y:0004 P:eNvMxdIzc $80/80BF E6 EA INC $EA [$00:00EA] A:00FF X:33CC Y:9E7A P:eNvMxdIzc $80/80C1 A5 EA LDA $EA [$00:00EA] A:00FF X:33CC Y:9E7A P:envMxdIZc $80/80C3 C9 05 CMP #$05 A:0000 X:33CC Y:9E7A P:envMxdIZc $80/80C5 90 02 BCC $02 [$80C9] A:0000 X:33CC Y:9E7A P:eNvMxdIzc
Code is missing here
$80/80C9 20 59 B7 JSR $B759 [$80:B759] A:0000 X:33CC Y:9E7A P:eNvMxdIzc $80/80CC 20 73 B6 JSR $B673 ; Clear Registers, clear WRAM Bank $7F $80/80CF 20 4D B5 JSR $B54D ; Clear Graphic Setup Registers $80/80D2 20 CD B5 JSR $B5CD ; ??? $80/80D5 7B TDC A:E880 X:0320 Y:0000 P:envMxdIzC $80/80D6 8F 12 BD 7E STA $7EBD12[$7E:BD12] A:0000 X:0320 Y:0000 P:envMxdIZC $80/80DA 8F 84 BD 7E STA $7EBD84[$7E:BD84] A:0000 X:0320 Y:0000 P:envMxdIZC $80/80DE AF 37 21 00 LDA $002137 ; ??? Makes the current H Counter value appear in $213C? $80/80E2 AF 3C 21 00 LDA $00213C ; ??? Current H Counter!?! $80/80E6 22 65 AD 80 JSL $80AD65[$80:AD65] A:0080 X:0320 Y:0000 P:eNvMxdIzC $80/80EA 22 F1 98 80 JSL $8098F1[$80:98F1] A:0413 X:0021 Y:0000 P:eNvMxdIzC $80/80EE 9C BD 05 STZ $05BD ; ??? Flag Register, at least related to CGRAM Updates $80/80F1 9C 38 00 STZ $0038 ; ??? $80/80F4 9C BF 05 STZ $05BF ; Set Main Jump Table Index to #$00 $80/80F7 9C C0 05 STZ $05C0 ; ??? Jump Table Index? $80/80FA A9 80 LDA #$80 ; Activate FBLANK $80/80FC 8D 87 05 STA $0587 $80/80FF 9C A6 05 STZ $05A6 ; Remove everything from Main Screen $80/8102 9C A7 05 STZ $05A7 ; Remove everything from Subscreen $80/8105 58 CLI ; Enable Interrupts $80/8106 20 2F A1 JSR $A12F ; Activate NMI and Auto-Joypad Read $80/8109 22 8A A1 80 JSL $80A18A ; Change Bank, wait for NMI and execute code built in WRAM $80/810D 22 8A A1 80 JSL $80A18A ; Change Bank, wait for NMI and execute code built in WRAM $80/8111 22 8A A1 80 JSL $80A18A ; Change Bank, wait for NMI and execute code built in WRAM $80/8115 22 4A A1 80 JSL $80A14A ; Long Jump to Deactivate NMI, Auto-Joypad and HDMAs $80/8119 AF F3 00 00 LDA $0000F3[$00:00F3] A:0080 X:00FF Y:0000 P:eNvMxdizc $80/811D 89 01 BIT #$01 A:00FF X:00FF Y:0000 P:eNvMxdizc $80/811F D0 08 BNE $08 [$8129] A:00FF X:00FF Y:0000 P:eNvMxdizc
- code is missing here
$80/8129 58 CLI ; Enable Interrupts $80/812A 20 2F A1 JSR $A12F ; Activate NMI and Auto-Joypad Read $80/812D 22 98 A9 9D JSL $9DA998[$9D:A998] A:0081 X:00FF Y:0000 P:eNvMxdiZc
$80/8131 Main Loop?
$80/8131 20 92 A1 JSR $A192 ; ??? Wait for the next NMI? $80/8134 7B TDC ; Clear 16-bit A $80/8135 AD BF 05 LDA $05BF ; Load Main Jump Table Index and use it $80/8138 0A ASL A $80/8139 AA TAX $80/813A FC 42 81 JSR ($8142,x) ; Jump to something on the Main Jump Table $80/813D 20 72 8D JSR $8D72 ; Fade Screen In or Out $80/8140 80 EF BRA $EF ; [$8131]
$80/8142 Main Jump Table
67 81 $8167 - Entry #$00 82 81 $8182 - Entry #$01 C5 81 $81C5 - Entry #$02 02 85 $8502 - Entry #$03 F1 88 $88F1 - Entry #$04 66 81 $8166 - Entry #$05 - RTS 22 83 $8322 - Entry #$06 EC 88 $88EC - Entry #$07 C9 9C $9CC9 - Entry #$08 FD 9C $9CFD - Entry #$09 66 81 $8166 - Entry #$0A - RTS 66 81 $8166 - Entry #$0B - RTS 2F 84 $842F - Entry #$0C 66 81 $8166 - Entry #$0D - RTS 66 81 $8166 - Entry #$0E - RTS F6 88 $88F6 - Entry #$10 2E 83 $832E - Entry #$11 8B 81 $818B - Entry #$12
$80/8166 Main Jump Table Entry #$05 - EMPTY
Is just a RTS
$80/81C5 ?
$80/81C5 20 39 AD JSR $AD39 ; RNG? $80/81C8 20 09 E0 JSR $E009 [$80:E009] A:0015 X:0004 Y:000A P:envMxdizc $80/81CB AD C0 05 LDA $05C0 ; (Some important(?) Jump Table Index value?) $80/81CE D0 0C BNE $0C ; [$81DC] Skip next 4 subroutines if not empty $80/81D0 20 BA B9 JSR $B9BA [$80:B9BA] A:0000 X:003E Y:000A P:envMxdiZc $80/81D3 20 BE 9A JSR $9ABE [$80:9ABE] A:00C9 X:0040 Y:0000 P:envMxdiZC $80/81D6 20 0A 8A JSR $8A0A ; Scroll the Map due to Cursor Movement $80/81D9 20 F3 8B JSR $8BF3 ; Compare BG1 Scroll Buffers $80/81DC 22 19 80 86 JSL $868019[$86:8019] A:0000 X:003C Y:0000 P:envMxdiZC $80/81E0 20 F0 95 JSR $95F0 [$80:95F0] A:0001 X:0541 Y:0100 P:eNvMxdizC $80/81E3 A9 01 LDA #$01 ; Set Flag for a CGRAM Update $80/81E5 8D 49 12 STA $1249 $80/81E8 60 RTS
$80/8875 ?
$80/8875 BD AE 17 LDA $17AE,x[$80:17B0] A:8107 X:0002 Y:0002 P:envMxdizc $80/8878 22 B2 A4 88 JSL $88A4B2[$88:A4B2] A:8135 X:0002 Y:0002 P:envMxdizc $80/887C 90 1C BCC $1C [$889A] A:8135 X:0002 Y:0002 P:eNvMxdizc
- code is missing here
$80/889A 60 RTS A:8135 X:0002 Y:0002 P:eNvMxdizc
$80/8900 Increment Jump Table Index?
$80/8900 EE BF 05 INC $05BF ; Increment one Jump Table Index... $80/8903 9C C0 05 STZ $05C0 ; ... and set the other to zero? $80/8906 60 RTS
$80/897D A2 20 00 LDX #$0020 ; (Maximum of rhombs on one axis?) $80/8980 AD 91 05 LDA $0591 ; Load BG1 H-Scroll Low Byte $80/8983 29 07 AND #$07 ; Check if any of the lowest three bits is set $80/8985 F0 01 BEQ $01 ; [$8988] Branch if not
- Code is missing here
$80/8988 8A TXA A:1000 X:0020 Y:0001 P:envMxdiZC $80/8989 85 00 STA $00 [$00:0000] A:1020 X:0020 Y:0001 P:envMxdizC $80/898B A0 1C 00 LDY #$001C ; (Maximum of rhombs on the other axis?) $80/898E AD 93 05 LDA $0593 ; Load BG1 V-Scroll Low Byte $80/8991 29 07 AND #$07 ; Check if any of the lowest three bits is set $80/8993 F0 01 BEQ $01 ; [$8996] Branch if not $80/8995 C8 INY A:1804 X:0020 Y:001C P:envMxdizc $80/8996 98 TYA A:1000 X:0020 Y:001C P:envMxdiZC $80/8997 85 02 STA $02 [$00:0002] A:101C X:0020 Y:001C P:envMxdizC $80/8999 AE 91 05 LDX $0591 ; Copy BG1 H-Scroll in $04 $80/899C 86 04 STX $04 $80/899E AC 93 05 LDY $0593 ; Copy BG1 V-Scroll in $06 $80/89A1 84 06 STY $06 $80/89A3 A9 03 LDA #$03 A:101C X:01A0 Y:0110 P:envMxdizC $80/89A5 22 FC F0 82 JSL $82F0FC[$82:F0FC] A:1003 X:01A0 Y:0110 P:envMxdizC $80/89A9 60 RTS
$80/89AA BATTLE: Long Jump to Check if the Cursor is in Screen Center
$80/89AA 8B PHB ; Buffer Data Bank on Stack $80/89AB 4B PHK ; Set Data Bank to $80 $80/89AC AB PLB $80/89AD 20 B2 89 JSR $89B2 ; Check if the Cursor is in Screen Center $80/89B0 AB PLB ; Restore Data Bank $80/89B1 6B RTL
$80/89B2 BATTLE: Check if the Cursor is in Screen Center
This checks if the Cursor is in the Center of the Screen.
If A is empty at the end, it is in center, if not, it's off center.
$80/89B2 A2 3C 00 LDX #$003C ; Index of the Rhomb Marker for the Global Pos List $80/89B5 A0 00 00 LDY #$0000 ; Clear Signal Register $80/89B8 C2 20 REP #$20 $80/89BA BD 43 07 LDA $0743,x ; Load the Global X-Position of the Rhomb Marker $80/89BD 38 SEC ; Subtract #$80 (no. of pixels between the screen center and border) $80/89BE E9 80 00 SBC #$0080 $80/89C1 CD 91 05 CMP $0591 ; Compare with BG1 HScroll $80/89C4 F0 01 BEQ $01 ; [$89C7] Branch if Cursor is in Center $80/89C6 C8 INY ; Set Signal - Not in Center! $80/89C7 BD 83 07 LDA $0783,x ; Load the Global Y-Position of the Rhomb Marker $80/89CA 38 SEC ; Subtract #$77 (about no. of pixels between the screen center and border) $80/89CB E9 77 00 SBC #$0077 $80/89CE CD 93 05 CMP $0593 ; Compare with BG1 VScroll $80/89D1 F0 01 BEQ $01 ; [$89D4] Branch if Cursor is in Center $80/89D3 C8 INY ; Set Signal - Not in Center! $80/89D4 E2 20 SEP #$20 $80/89D6 98 TYA ; Transfer the "Off-Center-Signal" in A $80/89D7 60 RTS
$80/8A0A BATTLE: Scroll the Map due to Cursor Movement
$80/8A0A AE 91 05 LDX $0591 ; Copy the current BG1 HScroll value in $05FB $80/8A0D 8E FB 05 STX $05FB $80/8A10 AE 93 05 LDX $0593 ; Copy the current BG1 VScroll value in $05FD $80/8A13 8E FD 05 STX $05FD $80/8A16 AE 3D 00 LDX $003D [$80:003D] A:0E00 X:0048 Y:0014 P:envMxdizC $80/8A19 10 1E BPL $1E [$8A39] A:0E00 X:FFFF Y:0014 P:eNvMxdizC $80/8A1B A5 60 LDA $60 [$00:0060] A:0E00 X:FFFF Y:0014 P:eNvMxdizC $80/8A1D D0 03 BNE $03 [$8A22] A:0E01 X:FFFF Y:0014 P:envMxdizC
- Code is missing here
$80/8A22 A2 3C 00 LDX #$003C ; Index for the Rhomb Marker $80/8A25 C2 20 REP #$20 $80/8A27 BD 43 07 LDA $0743,x ; Load the Global X-Position of the Rhomb Marker $80/8A2A 85 00 STA $00 ; Use $00 as Tempstore $80/8A2C BD 83 07 LDA $0783,x ; Load the Global Y-Position of the Rhomb Marker $80/8A2F 38 SEC ; ??? (Subtract 8 for unknown reasons) $80/8A30 E9 08 00 SBC #$0008 $80/8A33 85 02 STA $02 ; Use $02 as Tempstore $80/8A35 E2 20 SEP #$20 $80/8A37 80 0E BRA $0E ; [$8A47]
- Code is missing here
$80/8A47 A0 00 00 LDY #$0000 ; Clear this Direction Flag Register $80/8A4A C2 20 REP #$20 $80/8A4C A5 00 LDA $00 ; Load the Global X-Position of the Rhomb Marker $80/8A4E 38 SEC ; Subtract BG1 Horizontal Scroll $80/8A4F ED 91 05 SBC $0591 $80/8A52 38 SEC ; Subtract #$80 (half of Screen Width) $80/8A53 E9 80 00 SBC #$0080 $80/8A56 10 05 BPL $05 ; [$8A5D] Branch if the cursor is to the right of the screen center $80/8A58 49 FF FF EOR #$FFFF ; It's left to the center, so it's a negative value in A - turn it positive $80/8A5B 1A INC A ; You have to add 1 after turning positive $80/8A5C C8 INY ; ??? Set flag for "it was negative"? $80/8A5D C9 41 00 CMP #$0041 ; Check if the cursor is further than #$41px away from the center $80/8A60 90 15 BCC $15 ; [$8A77] If not, branch $80/8A62 A9 C0 00 LDA #$00C0 ; C0 is the border to the right where scrolling doesn't activate yet $80/8A65 C0 00 00 CPY #$0000 ; Check if the cursor went out of the focus to the left or the right $80/8A68 F0 03 BEQ $03 ; [$8A6D] Leave out the next line if it was to the right $80/8A6A A9 40 00 LDA #$0040 ; Replace it with the address of the left border if it was to the left $80/8A6D 38 SEC ; Subtract the Global X-Position of the cursor $80/8A6E E5 00 SBC $00 $80/8A70 49 FF FF EOR #$FFFF ; Turn the result into a positive number $80/8A73 1A INC A $80/8A74 8D 91 05 STA $0591 ; [$80:0591] Store it as the new BG1 H Scroll value $80/8A77 A0 00 00 LDY #$0000 ; Clear this Direction Flag Register $80/8A7A C2 20 REP #$20 $80/8A7C A5 02 LDA $02 ; Load the Global Y-Position of the Rhomb Marker $80/8A7E 38 SEC ; Subtract BG1 Vertical Scroll $80/8A7F ED 93 05 SBC $0593 $80/8A82 38 SEC ; Subtract #$6F (about half of Screen Height) $80/8A83 E9 6F 00 SBC #$006F $80/8A86 10 05 BPL $05 ; [$8A8D] Branch if the cursor is in the lower than the screen center $80/8A88 49 FF FF EOR #$FFFF ; It's above the screen center, so turn the distance into a positive number... $80/8A8B 1A INC A $80/8A8C C8 INY ; ... and set the flag that it is above the center $80/8A8D C9 29 00 CMP #$0029 ; Check if the cursor is further than #$29px away from the center $80/8A90 90 15 BCC $15 ; [$8AA7] If not, branch
- Code is missing here
$80/8AA7 AD 91 05 LDA $0591 ; Check if this subroutine changed BG1 HScroll Value $80/8AAA CD FB 05 CMP $05FB $80/8AAD D0 2A BNE $2A ; [$8AD9] Branch if it has $80/8AAF AD 91 05 LDA $0591 [$80:0591] A:0150 X:003C Y:0000 P:envmxdiZC $80/8AB2 89 0F 00 BIT #$000F A:0150 X:003C Y:0000 P:envmxdizC $80/8AB5 F0 1D BEQ $1D [$8AD4] A:0150 X:003C Y:0000 P:envmxdiZC
- Code is missing here
$80/8AD4 9C FF 05 STZ $05FF ; Clear $05FF - no distance to scroll $80/8AD7 80 0A BRA $0A ; [$8AE3] $80/8AD9 AD 91 05 LDA $0591 ; If the BG1 HScroll value has been changed, calculate the difference $80/8ADC 38 SEC $80/8ADD ED FB 05 SBC $05FB $80/8AE0 8D FF 05 STA $05FF ; And store it in $05FF (16-bit value, can be negative)
- Code is missing here
$80/8AE3 AD 93 05 LDA $0593 ; Check if this subroutine changed BG1 VScroll Value $80/8AE6 CD FD 05 CMP $05FD $80/8AE9 D0 2A BNE $2A ; [$8B15] Branch if it has $80/8AEB AD 93 05 LDA $0593 [$80:0593] A:0048 X:003C Y:0000 P:envmxdiZC $80/8AEE 89 07 00 BIT #$0007 A:0048 X:003C Y:0000 P:envmxdizC $80/8AF1 F0 1D BEQ $1D [$8B10] A:0048 X:003C Y:0000 P:envmxdiZC
- Code is missing here
$80/8B10 9C 01 06 STZ $0601 ; Clear $0601 - no distance to scroll $80/8B13 80 0A BRA $0A ; [$8B1F] Exit
- Code is missing here
$80/8B1F E2 20 SEP #$20 $80/8B21 60 RTS
$80/8BEB Long Jump to Compare BG1 Scroll Buffers
$80/8BEB 8B PHB ; Buffer Program Bank $80/8BEC 4B PHK ; Set $80 as Program Bank $80/8BED AB PLB $80/8BEE 20 F3 8B JSR $8BF3 ; Compare BG1 Scroll Buffers $80/8BF1 AB PLB ; Restore Program Bank $80/8BF2 6B RTL
$80/8BF3 Compare BG1 Scroll Buffers
$80/8BF3 C2 20 REP #$20 ; A = 16 bit $80/8BF5 A0 00 00 LDY #$0000 A:0048 X:003C Y:0000 P:envmxdiZC $80/8BF8 AD 91 05 LDA $0591 ; Load BG1 HScroll Buffer $80/8BFB 38 SEC ; Subtract another BG1 HScroll Buffer $80/8BFC ED 71 05 SBC $0571 $80/8BFF 10 06 BPL $06 ; [$8C07] Branch if Positive $80/8C01 C8 INY ; Increment twice to set Bit 1 in Y (negative signal) $80/8C02 C8 INY $80/8C03 49 FF FF EOR #$FFFF ; Turn the difference in a positive number $80/8C06 1A INC A ; (INC A is part of the turning into a positive number) $80/8C07 85 0C STA $0C ; Store (positive) Difference of the H-Scrolls in $0C $80/8C09 AD 93 05 LDA $0593 ; Load BG1 VScroll Buffer $80/8C0C 38 SEC ; Subtract another BG1 VScroll Buffer $80/8C0D ED 73 05 SBC $0573 $80/8C10 10 05 BPL $05 ; [$8C17] Branch if Positive
- code is missing here
$80/8C17 85 0E STA $0E ; Store (positive) Difference of the V-Scrolls in $0E $80/8C19 05 0C ORA $0C ; With this, if any Bit in $0C or $0E is set, A will be != 0 $80/8C1B D0 03 BNE $03 ; [$8C20] Branch if there was any difference between the buffers $80/8C1D 4C 1D 8D JMP $8D1D ; Exit $80/8C20 E2 20 SEP #$20 ; A = 8-bit $80/8C22 A5 67 LDA $67 ; ??? (seems to be always 8) $80/8C24 1A INC A ; ??? $80/8C25 20 F0 A8 JSR $A8F0 ; Calculate the Square Number of A $80/8C28 C2 20 REP #$20 ; A = 16-bit $80/8C2A 85 04 STA $04 ; ?? $04 = ($6C + 1)² (= #$51) $80/8C2C A5 0C LDA $0C ; Load (positive) Difference of the H-Scrolls in $0C $80/8C2E 22 01 A9 80 JSL $80A901 ; Calculate the Square Number of 16-bit A $80/8C32 D4 02 PEI ($02) ; Buffer $00-$03 (Square Number Result) on Stack $80/8C34 D4 00 PEI ($00) $80/8C36 A5 0E LDA $0E ; Load (positive) Difference of the V-Scrolls in $0E $80/8C38 22 01 A9 80 JSL $80A901 ; Calculate the Square Number of 16-bit A $80/8C3C 18 CLC ; Clear Carry $80/8C3D 68 PLA ; Pull the the two low bytes of the H-Scroll-Square Number $80/8C3E 65 00 ADC $00 ; Add V-Scroll-Square Number low bytes $80/8C40 85 00 STA $00 ; Store in $00/1 $80/8C42 68 PLA ; Pull the the two high bytes of the H-Scroll-Square Number $80/8C43 65 02 ADC $02 ; Add V-Scroll-Square Number high bytes $80/8C45 85 02 STA $02 ; Store in $02/3 $80/8C47 A5 00 LDA $00 ; If the Low Bytes of the added Square Numbers is higher/same than $04... $80/8C49 C5 04 CMP $04 ; ... then this CMP sets the Carry that gets subrtracted... $80/8C4B A5 02 LDA $02 ; ... from the added Square Numbers High Bytes in these two lines $80/8C4D E9 00 00 SBC #$0000 $80/8C50 90 25 BCC $25 ; [$8C77] Branch if this subtraction needed the borrow $80/8C52 22 FC AB 80 JSL $80ABFC[$80:ABFC] A:0000 X:003C Y:0002 P:envmxdiZC $80/8C56 85 08 STA $08 [$00:0008] A:0010 X:003C Y:0002 P:eNvmxdizC $80/8C58 A5 67 LDA $67 [$00:0067] A:0010 X:003C Y:0002 P:eNvmxdizC $80/8C5A 29 FF 00 AND #$00FF A:5508 X:003C Y:0002 P:envmxdizC $80/8C5D 85 00 STA $00 [$00:0000] A:0008 X:003C Y:0002 P:envmxdizC $80/8C5F A5 0C LDA $0C [$00:000C] A:0008 X:003C Y:0002 P:envmxdizC $80/8C61 85 04 STA $04 [$00:0004] A:0010 X:003C Y:0002 P:envmxdizC $80/8C63 22 6F A8 80 JSL $80A86F[$80:A86F] A:0010 X:003C Y:0002 P:envmxdizC $80/8C67 A5 04 LDA $04 [$00:0004] A:0000 X:003C Y:0002 P:eNvmxdizC $80/8C69 85 0C STA $0C [$00:000C] A:0008 X:003C Y:0002 P:envmxdizC $80/8C6B A5 0E LDA $0E [$00:000E] A:0008 X:003C Y:0002 P:envmxdizC $80/8C6D 85 04 STA $04 [$00:0004] A:0000 X:003C Y:0002 P:envmxdiZC $80/8C6F 22 6F A8 80 JSL $80A86F[$80:A86F] A:0000 X:003C Y:0002 P:envmxdiZC $80/8C73 A5 04 LDA $04 [$00:0004] A:0000 X:003C Y:0002 P:eNvmxdizc $80/8C75 85 0E STA $0E [$00:000E] A:0000 X:003C Y:0002 P:envmxdiZc $80/8C77 98 TYA ; Test if Bit 1 in Y is set (Signal for negative difference in H-Scroll) $80/8C78 89 02 00 BIT #$0002 $80/8C7B F0 06 BEQ $06 ; [$8C83] Branch if positive difference $80/8C7D 7B TDC ; Turn the Difference back into a negative value and store it in $0C $80/8C7E 38 SEC $80/8C7F E5 0C SBC $0C $80/8C81 85 0C STA $0C $80/8C83 98 TYA ; Test if Bit 0 in Y is set (Signal for negative difference in V-Scroll) $80/8C84 89 01 00 BIT #$0001 $80/8C87 F0 06 BEQ $06 ; [$8C8F] Branch if positive difference
- code is missing here
$80/8C8F A5 0C LDA $0C ; Load (positive/negative) Difference of the H-Scrolls $80/8C91 18 CLC $80/8C92 6D 71 05 ADC $0571 ; Add BG1 H-Scroll $80/8C95 8D 91 05 STA $0591 ; Set as BG1 H-Scroll $80/8C98 8D 95 05 STA $0595 ; Set as BG2 H-Scroll $80/8C9B A5 0E LDA $0E ; Load (positive/negative) Difference of the V-Scrolls $80/8C9D 18 CLC $80/8C9E 6D 73 05 ADC $0573 ; Add BG1 V-Scroll $80/8CA1 8D 93 05 STA $0593 ; Set as BG1 V-Scroll $80/8CA4 8D 97 05 STA $0597 ; Set as BG2 V-Scroll $80/8CA7 AE 91 05 LDX $0591 ; X = BG1 H-Scroll $80/8CAA AC 93 05 LDY $0593 ; Y = BG1 V-Scroll $80/8CAD EC 71 05 CPX $0571 ; Compare new H-Scroll to the old $80/8CB0 30 1A BMI $1A ; [$8CCC] Branch if the difference was negative = scroll value got less
- code is missing here
$80/8CCC AD 71 05 LDA $0571 ; Load old H-Scroll $80/8CCF 29 F8 FF AND #$FFF8 ; Remove lowest 3 Bits $80/8CD2 85 00 STA $00 ; Buffer in $00 $80/8CD4 8A TXA ; A = BG1 H-Scroll $80/8CD5 29 F8 FF AND #$FFF8 ; Remove lowest 3 Bits $80/8CD8 C5 00 CMP $00 ; Check if the difference between old and new H-Scroll is bigger than 8px $80/8CDA F0 07 BEQ $07 ; [$8CE3] Branch if not
- code is missing here
$80/8CDC E2 20 SEP #$20 ; A = 8-bit $80/8CDE 20 45 8D JSR $8D45 [$80:8D45] A:00D8 X:00DF Y:0060 P:eNvMxdizc $80/8CE1 C2 20 REP #$20 ; A = 16-bit $80/8CE3 AE 91 05 LDX $0591 ; X = BG1 H-Scroll $80/8CE6 AC 93 05 LDY $0593 ; Y = BG1 V-Scroll $80/8CE9 CC 73 05 CPY $0573 ; Compare new Y-Scroll to the old $80/8CEC 30 1A BMI $1A ; [$8D08] Branch if the difference was negative = scroll value got less $80/8CEE AD 73 05 LDA $0573 ; Load old V-Scroll $80/8CF1 3A DEC A ; ??? Decrement V-Scroll by 1 (why?) $80/8CF2 29 F8 FF AND #$FFF8 ; Remove lowest 3 Bits $80/8CF5 85 00 STA $00 ; Buffer in $00 $80/8CF7 98 TYA ; A = BG1 V-Scroll $80/8CF8 3A DEC A ; ??? Decrement V-Scroll by 1 (why?) $80/8CF9 29 F8 FF AND #$FFF8 ; Remove lowest 3 Bits $80/8CFC C5 00 CMP $00 ; Check if the difference between old and new H-Scroll is bigger than 8px $80/8CFE F0 1D BEQ $1D ; [$8D1D] Exit
- code is missing here
$80/8D1D E2 20 SEP #$20 $80/8D1F 60 RTS
$80/8D45 ?
The values that are stored in $04 and $06 (and that seem to be carried into this subroutine) are something like the BG1 H- and V-Scroll values (according to the subroutine at the end of $82F0FC).
$80/8D45 A9 01 LDA #$01 A:00D8 X:00DF Y:0060 P:eNvMxdizc $80/8D47 85 00 STA $00 [$00:0000] A:0001 X:00DF Y:0060 P:envMxdizc $80/8D49 A9 1C LDA #$1C A:0001 X:00DF Y:0060 P:envMxdizc $80/8D4B 85 02 STA $02 [$00:0002] A:001C X:00DF Y:0060 P:envMxdizc $80/8D4D 98 TYA A:001C X:00DF Y:0060 P:envMxdizc $80/8D4E 29 07 AND #$07 A:0060 X:00DF Y:0060 P:envMxdizc $80/8D50 F0 02 BEQ $02 [$8D54] A:0000 X:00DF Y:0060 P:envMxdiZc
- Code is missing here
$80/8D54 86 04 STX $04 [$00:0004] A:0000 X:00DF Y:0060 P:envMxdiZc $80/8D56 84 06 STY $06 [$00:0006] A:0000 X:00DF Y:0060 P:envMxdiZc $80/8D58 22 60 81 99 JSL $998160[$99:8160] A:0000 X:00DF Y:0060 P:envMxdiZc $80/8D5C 90 07 BCC $07 [$8D65] A:0000 X:00DF Y:0060 P:envMxdizC $80/8D5E A9 03 LDA #$03 A:0000 X:00DF Y:0060 P:envMxdizC $80/8D60 22 FC F0 82 JSL $82F0FC[$82:F0FC] A:0003 X:00DF Y:0060 P:envMxdizC $80/8D64 60 RTS A:0038 X:0006 Y:781B P:eNvMxdizc
$80/8D6A Long Jump to Fade Screen In or Out
$80/8D6A 8B PHB ; Buffer Data Bank $80/8D6B 4B PHK ; Set $80 as Data Bank $80/8D6C AB PLB $80/8D6D 20 72 8D JSR $8D72 ; Fade Screen In or Out $80/8D70 AB PLB ; Restore Data Bank $80/8D71 6B RTL
$80/8D72 Fade Screen In or Out
$80/8D72 AD C2 05 LDA $05C2 ; Load Fade In/Out Flags $80/8D75 89 01 BIT #$01 ; Is Fade In Flag set? (Bit 0) $80/8D77 F0 16 BEQ $16 ; [$8D8F] Branch if not $80/8D79 AD 87 05 LDA $0587 ; Load $2100 Buffer $80/8D7C 29 0F AND #$0F ; Remove the FBLANK Bit, leave the Screen brightness $80/8D7E 18 CLC ; Turn Screen Brightness up by two degrees $80/8D7F 69 02 ADC #$02 $80/8D81 C9 0F CMP #$0F ; Check if it surpassed the maximum $80/8D83 90 05 BCC $05 ; [$8D8A] Branch if it didn't $80/8D85 9C C2 05 STZ $05C2 ; Deactivate Fade In/Out Flags $80/8D88 A9 0F LDA #$0F ; If brightness+2 surpasses the limit, set to max brightness $80/8D8A 8D 87 05 STA $0587 ; Store it in $2100 buffer and then exit $80/8D8D 80 18 BRA $18 ; [$8DA7] YOU CAN MAKE THIS SHORTER- remove the line above and branch to $8DA4 $80/8D8F 89 02 BIT #$02 ; Is Fade Out Flag set? (Bit 1) $80/8D91 F0 14 BEQ $14 ; [$8DA7] ??? Exit if not $80/8D93 AD 87 05 LDA $0587 ; Load $2100 Buffer $80/8D96 30 07 BMI $07 ; [$8D9F] Branch if FBLANK is active $80/8D98 38 SEC ; Turn Brightness down by two degrees $80/8D99 E9 02 SBC #$02 $80/8D9B F0 02 BEQ $02 ; [$8D9F] Activate FBLANK and exit if we reached 0 (or turned negative) $80/8D9D 10 05 BPL $05 ; [$8DA4] If still positive, store new Brightness back and exit $80/8D9F 9C C2 05 STZ $05C2 ; Deactivate Fade In/Out Flags $80/8DA2 A9 80 LDA #$80 ; Activate FBLANK $80/8DA4 8D 87 05 STA $0587 $80/8DA7 60 RTS
$80/8DA8 BATTLE: Load Palette Number for Color Cycling
$80/8DA8 8B PHB ; Buffer Data Bank $80/8DA9 4B PHK ; Set $80 as Data Bank $80/8DAA AB PLB A:0000 X:0000 Y:0320 P:envMxdiZC $80/8DAB A5 A3 LDA $A3 [$00:00A3] A:0000 X:0000 Y:0320 P:eNvMxdizC $80/8DAD 89 02 BIT #$02 A:0000 X:0000 Y:0320 P:envMxdiZC $80/8DAF F0 0C BEQ $0C [$8DBD] A:0000 X:0000 Y:0320 P:envMxdiZC
- Code is missing here
$80/8DBD BD 56 1A LDA $1A56,x[$80:1A56] A:0000 X:0000 Y:0320 P:envMxdiZC $80/8DC0 18 CLC A:0007 X:0000 Y:0320 P:envMxdizC $80/8DC1 69 10 ADC #$10 A:0007 X:0000 Y:0320 P:envMxdizc $80/8DC3 AB PLB ; Restore Data Bank $80/8DC4 6B RTL
$80/8DC5 BATTLE: Long Jump to Setup HDMA Data Tables for Color Cycling
$80/8DC5 8B PHB ; Buffer Data Bank $80/8DC6 4B PHK ; Set $80 as Data Bank $80/8DC7 AB PLB $80/8DC8 20 CD 8D JSR $8DCD ; Setup HDMA Data Tables for Color Cycling $80/8DCB AB PLB ; Restore Data Bank $80/8DCC 6B RTL
$80/8DCD BATTLE: Setup HDMA Data Tables for Color Cycling
This prepares the Data Tables for two HDMAs that do color cycling.
The Data Tables are going to be at $7E/BEBE and $7E/C0BE (and $7E/BFBE and $7E/C1BE, more on that later). They will consist of two bytes CGRAM address followed by two bytes of Color Data.
The second half of the subroutine is executed twice: At $8DE6, it jumps to the next line as a subroutine; it executes everything and then reaches a RTS. This RTS moves it back to $8DE9 where it executes everything again. As the Store Index in X isn't changed, it goes on writing the same stuff in the registers after whose who where worked off in the first run.
$80/8DCD 7B TDC ; Clear 16-bit A $80/8DCE A5 9C LDA $9C ; Load Index which Palette to use $80/8DD0 C2 20 REP #$20 ; 16-bit A $80/8DD2 29 FF 00 AND #$00FF ; This line could be removed $80/8DD5 0A ASL A ; Multiply by 2, each entry is 2 bytes in size $80/8DD6 AA TAX $80/8DD7 BF EE E3 84 LDA $84E3EE,x ; Load Palette Address $80/8DDB 85 20 STA $20 ; Setup Load Address for Palettes in $20/1 $80/8DDD E2 20 SEP #$20 ; 8-bit A $80/8DDF A9 84 LDA #$84 ; Set Load Address Bank to $84 in $22 $80/8DE1 85 22 STA $22 $80/8DE3 A2 00 00 LDX #$0000 ; Clear Store Index $80/8DE6 20 E9 8D JSR $8DE9 ; EXECUTE THE REST OF THE SUBROUTINE TWICE $80/8DE9 8B PHB ; Buffer Data Bank on Stack $80/8DEA A9 7E LDA #$7E ; Set Data Bank to $7E $80/8DEC 48 PHA $80/8DED AB PLB $80/8DEE A0 00 00 LDY #$0000 ; Clear Data Load Index $80/8DF1 A9 4E LDA #$4E ; Set as 1st color to change with the 1st table #$(00)4E $80/8DF3 9D BF BE STA $BEBF,x $80/8DF6 A9 5E LDA #$5E ; Set as 2nd color to change with the 1st table #$(00)5E $80/8DF8 9D C3 BE STA $BEC3,x $80/8DFB A9 6E LDA #$6E ; Set as 1st color to change with the 2nd table #$(00)6E $80/8DFD 9D BF C0 STA $C0BF,x $80/8E00 A9 7E LDA #$7E ; Set as 2nd color to change with the 2nd table #$(00)7E $80/8E02 9D C3 C0 STA $C0C3,x $80/8E05 C2 20 REP #$20 ; 16-bit A $80/8E07 B7 20 LDA [$20],y ; Load Byte (Color) $80/8E09 9D C0 BE STA $BEC0,x ; Color for CGRAM entry #$004E $80/8E0C 9D C4 BE STA $BEC4,x ; Color for CGRAM entry #$005E $80/8E0F 9D C0 C0 STA $C0C0,x ; Color for CGRAM entry #$006E $80/8E12 9D C4 C0 STA $C0C4,x ; Color for CGRAM entry #$007E $80/8E15 8A TXA ; Increment Store Index by 8 - do the next 2 entries $80/8E16 18 CLC $80/8E17 69 08 00 ADC #$0008 $80/8E1A AA TAX $80/8E1B E2 20 SEP #$20 ; 8-bit A $80/8E1D C8 INY ; Increment Load Index for the next color twice $80/8E1E C8 INY $80/8E1F C0 20 00 CPY #$0020 ; Loop until it has done sixteen colors $80/8E22 90 CD BCC $CD ; [$8DF1] $80/8E24 88 DEY ; Decrement Load Index for the next color twice - do the colors backwards $80/8E25 88 DEY $80/8E26 A9 4E LDA #$4E ; Set as 1st color to change with the 1st table #$(00)4E $80/8E28 9D BF BE STA $BEBF,x $80/8E2B A9 5E LDA #$5E ; Set as 2nd color to change with the 1st table #$(00)5E $80/8E2D 9D C3 BE STA $BEC3,x $80/8E30 A9 6E LDA #$6E ; Set as 1st color to change with the 2nd table #$(00)6E $80/8E32 9D BF C0 STA $C0BF,x $80/8E35 A9 7E LDA #$7E ; Set as 2nd color to change with the 2nd table #$(00)7E $80/8E37 9D C3 C0 STA $C0C3,x $80/8E3A C2 20 REP #$20 ; 16-bit A $80/8E3C B7 20 LDA [$20],y ; Load Byte (Color) $80/8E3E 9D C0 BE STA $BEC0,x ; Color for CGRAM entry #$004E $80/8E41 9D C4 BE STA $BEC4,x ; Color for CGRAM entry #$005E $80/8E44 9D C0 C0 STA $C0C0,x ; Color for CGRAM entry #$006E $80/8E47 9D C4 C0 STA $C0C4,x ; Color for CGRAM entry #$007E $80/8E4A 8A TXA ; Increment Store Index by 8 - do the next 2 entries $80/8E4B 18 CLC $80/8E4C 69 08 00 ADC #$0008 $80/8E4F AA TAX $80/8E50 E2 20 SEP #$20 ; 8-bit A $80/8E52 88 DEY ; Decrement Load Index for the next color twice - do the colors backwards $80/8E53 88 DEY $80/8E54 10 D0 BPL $D0 ; [$8E26] Loop until it has done sixteen colors $80/8E56 C2 20 REP #$20 ; 16-bit A $80/8E58 AD 93 05 LDA $0593 ; Copy BG1 V-Scroll value in $BE88 $80/8E5B 8D 88 BE STA $BE88 $80/8E5E E2 20 SEP #$20 ; 8-bit A $80/8E60 AB PLB ; Restore Data Bank from Stack $80/8E61 60 RTS
Executed while movement possibilities are shown
$80/8E62 8B PHB ; Buffer Data Bank on Stack - this line could be removed $80/8E63 4B PHK ; Set Data Bank to $80 - this line could be removed $80/8E64 AB PLB ; this line could be removed $80/8E65 20 6A 8E JSR $8E6A [$80:8E6A] A:0060 X:0200 Y:FFFE P:eNvMxdizc $80/8E68 AB PLB ; Restore Data Bank - this line could be removed $80/8E69 6B RTL
Executed while movement possibilities are shown
$80/8E6A 8B PHB ; Buffer Data Bank on Stack $80/8E6B A9 7E LDA #$7E ; Set Data Bank to $7E - this line could be removed $80/8E6D 48 PHA $80/8E6E AB PLB $80/8E6F A2 8A BE LDX #$BE8A A:007E X:0200 Y:FFFE P:envMxdizc $80/8E72 8E 84 BE STX $BE84 [$7E:BE84] A:007E X:BE8A Y:FFFE P:eNvMxdizc $80/8E75 A2 00 00 LDX #$0000 A:007E X:BE8A Y:FFFE P:eNvMxdizc $80/8E78 AD EE 05 LDA $05EE ; Load $4209 Buffer (V Timer Low Byte) $80/8E7B 48 PHA ; Copy it on Stack $80/8E7C C9 41 CMP #$41 ; Check if it is more than #$40 $80/8E7E 90 02 BCC $02 ; [$8E82] if not, use that value... $80/8E80 A9 40 LDA #$40 ; ... else, use #$40 $80/8E82 09 80 ORA #$80 A:0040 X:0000 Y:FFFE P:envMxdizC $80/8E84 9D 8A BE STA $BE8A,x[$7E:BE8A] A:00C0 X:0000 Y:FFFE P:eNvMxdizC $80/8E87 9D 97 BE STA $BE97,x[$7E:BE97] A:00C0 X:0000 Y:FFFE P:eNvMxdizC $80/8E8A 9D A4 BE STA $BEA4,x[$7E:BEA4] A:00C0 X:0000 Y:FFFE P:eNvMxdizC $80/8E8D 9D B1 BE STA $BEB1,x[$7E:BEB1] A:00C0 X:0000 Y:FFFE P:eNvMxdizC $80/8E90 E8 INX A:00C0 X:0000 Y:FFFE P:eNvMxdizC $80/8E91 C2 20 REP #$20 A:00C0 X:0001 Y:FFFE P:envMxdizC $80/8E93 A9 BE BE LDA #$BEBE A:00C0 X:0001 Y:FFFE P:envmxdizC $80/8E96 9D 8A BE STA $BE8A,x[$7E:BE8B] A:BEBE X:0001 Y:FFFE P:eNvmxdizC $80/8E99 9D A4 BE STA $BEA4,x[$7E:BEA5] A:BEBE X:0001 Y:FFFE P:eNvmxdizC $80/8E9C A9 BE C0 LDA #$C0BE A:BEBE X:0001 Y:FFFE P:eNvmxdizC $80/8E9F 9D 97 BE STA $BE97,x[$7E:BE98] A:C0BE X:0001 Y:FFFE P:eNvmxdizC $80/8EA2 9D B1 BE STA $BEB1,x[$7E:BEB2] A:C0BE X:0001 Y:FFFE P:eNvmxdizC $80/8EA5 E2 20 SEP #$20 A:C0BE X:0001 Y:FFFE P:eNvmxdizC $80/8EA7 E8 INX A:C0BE X:0001 Y:FFFE P:eNvMxdizC $80/8EA8 E8 INX A:C0BE X:0002 Y:FFFE P:envMxdizC $80/8EA9 68 PLA ; Pull the Copy of the $4209 Buffer value from stack $80/8EAA C9 41 CMP #$41 $80/8EAC 90 04 BCC $04 ; [$8EB2] Branch and go on if it is less than #$40 $80/8EAE E9 40 SBC #$40 ; Subtract #$40 $80/8EB0 80 C9 BRA $C9 ; [$8E7B] Loop $80/8EB2 9E 8A BE STZ $BE8A,x[$7E:BE96] A:C01B X:000C Y:FFFE P:eNvMxdizc $80/8EB5 9E 97 BE STZ $BE97,x[$7E:BEA3] A:C01B X:000C Y:FFFE P:eNvMxdizc $80/8EB8 9E A4 BE STZ $BEA4,x[$7E:BEB0] A:C01B X:000C Y:FFFE P:eNvMxdizc $80/8EBB 9E B1 BE STZ $BEB1,x[$7E:BEBD] A:C01B X:000C Y:FFFE P:eNvMxdizc $80/8EBE 9C 86 BE STZ $BE86 [$7E:BE86] A:C01B X:000C Y:FFFE P:eNvMxdizc $80/8EC1 A9 81 LDA #$81 A:C01B X:000C Y:FFFE P:eNvMxdizc $80/8EC3 8D 87 BE STA $BE87 [$7E:BE87] A:C081 X:000C Y:FFFE P:eNvMxdizc $80/8EC6 AB PLB ; Restore Data Bank - this line could be removed $80/8EC7 60 RTS
$80/8EC8 BATTLE: Long Jump to Setup Color HDMAs
Executed while movement possibilities are shown
$80/8EC8 8B PHB ; Buffer Data Bank on Stack $80/8EC9 4B PHK ; Set Data Bank to $80 $80/8ECA AB PLB $80/8ECB 20 D0 8E JSR $8ED0 ; Setup Color HDMAs $80/8ECE AB PLB ; Restore Data Bank $80/8ECF 6B RTL
$80/8ED0 BATTLE: Setup Color HDMAs
Executed while movement possibilities are shown
$80/8ED0 A9 43 LDA #$43 ; DMA Settings - Write 2 regs twice, use HDMA Table $80/8ED2 8D 30 43 STA $4330 $80/8ED5 A9 21 LDA #$21 ; HDMA Destination: $2121/2 CGRAM Address/Data Register $80/8ED7 8D 31 43 STA $4331 $80/8EDA A2 8A BE LDX #$BE8A ; HDMA Table at $7E/BE8A $80/8EDD 8E 32 43 STX $4332 $80/8EE0 A9 7E LDA #$7E $80/8EE2 8D 34 43 STA $4334 $80/8EE5 A9 7E LDA #$7E ; Bytes to be transfered to CGRAM during HDMA are on Bank $7E $80/8EE7 8D 37 43 STA $4337 $80/8EEA A9 08 LDA #$08 ; Add Activation Flag for the HDMA $80/8EEC 0C B0 05 TSB $05B0 $80/8EEF A9 43 LDA #$43 ; DMA Settings - Write 2 regs twice, use HDMA Table $80/8EF1 8D 20 43 STA $4320 $80/8EF4 A9 21 LDA #$21 ; HDMA Destination: $2121/2 CGRAM Address/Data Register $80/8EF6 8D 21 43 STA $4321 $80/8EF9 A2 97 BE LDX #$BE97 ; HDMA Table at $7E/BE97 $80/8EFC 8E 22 43 STX $4322 $80/8EFF A9 7E LDA #$7E $80/8F01 8D 24 43 STA $4324 $80/8F04 A9 7E LDA #$7E ; Bytes to be transfered to CGRAM during HDMA are on Bank $7E $80/8F06 8D 27 43 STA $4327 $80/8F09 A9 04 LDA #$04 ; Add Activation Flag for the HDMA $80/8F0B 0C B0 05 TSB $05B0 $80/8F0E 60 RTS
$80/8FA8 ???
$80/8FA8 A9 43 LDA #$43 ; DMA Options: HDMA, write 2 registers twice each $80/8FAA 8D 70 43 STA $4370 $80/8FAD A9 21 LDA #$21 ; CGRAM Address (+ Data) Register (writes both twice) $80/8FAF 8D 71 43 STA $4371 $80/8FB2 A2 00 B0 LDX #$B000 ; Source Address: $7E/B000 $80/8FB5 8E 72 43 STX $4372 $80/8FB8 A9 7E LDA #$7E $80/8FBA 8D 74 43 STA $4374 $80/8FBD A9 7E LDA #$7E ; HDMA Indirect Address Bank: $7E $80/8FBF 8D 77 43 STA $4377 $80/8FC2 A9 80 LDA #$80 ; Set the bit for this DMA Channel in the HDMA activation flag buffer $80/8FC4 0C B0 05 TSB $05B0 $80/8FC7 A9 43 LDA #$43 ; DMA Options: HDMA, write 2 registers twice each $80/8FC9 8D 10 43 STA $4310 $80/8FCC A9 11 LDA #$11 ; BG3 H/V Scroll Registers $80/8FCE 8D 11 43 STA $4311 $80/8FD1 A2 A0 B0 LDX #$B0A0 ; Source Address: $7E/B0A0 $80/8FD4 8E 12 43 STX $4312 $80/8FD7 A9 7E LDA #$7E $80/8FD9 8D 14 43 STA $4314 $80/8FDC A9 00 LDA #$00 ; HDMA Indirect Address Bank: $00 $80/8FDE 8D 17 43 STA $4317 $80/8FE1 A9 02 LDA #$02 ; Set the bit for this DMA Channel in the HDMA activation flag buffer $80/8FE3 0C B0 05 TSB $05B0 $80/8FE6 A9 43 LDA #$43 ; DMA Options: HDMA, write 2 registers twice each $80/8FE8 8D 60 43 STA $4360 $80/8FEB A9 0F LDA #$0F ; BG2 H/V Scroll Registers $80/8FED 8D 61 43 STA $4361 $80/8FF0 A2 20 B0 LDX #$B020 ; Source Address: $7E/B020 $80/8FF3 8E 62 43 STX $4362 $80/8FF6 A9 7E LDA #$7E $80/8FF8 8D 64 43 STA $4364 $80/8FFB A9 00 LDA #$00 ; HDMA Indirect Address Bank: $00 $80/8FFD 8D 67 43 STA $4367 $80/9000 A9 40 LDA #$40 ; Set the bit for this DMA Channel in the HDMA activation flag buffer $80/9002 0C B0 05 TSB $05B0 $80/9005 A9 43 LDA #$43 ; DMA Options: HDMA, write 2 registers twice each $80/9007 8D 50 43 STA $4350 $80/900A A9 0D LDA #$0D ; BG1 H/V Scroll Registers $80/900C 8D 51 43 STA $4351 $80/900F A2 20 B0 LDX #$B020 ; Source Address: $7E/B020 $80/9012 8E 52 43 STX $4352 $80/9015 A9 7E LDA #$7E $80/9017 8D 54 43 STA $4354 $80/901A A9 00 LDA #$00 ; HDMA Indirect Address Bank: $00 $80/901C 8D 57 43 STA $4357 $80/901F A9 20 LDA #$20 ; Set the bit for this DMA Channel in the HDMA activation flag buffer $80/9021 0C B0 05 TSB $05B0 $80/9024 A2 00 B0 LDX #$B000 ; Set #$B000 in buffer for $4372 $80/9027 8E FC 16 STX $16FC $80/902A A2 20 B0 LDX #$B020 $80/902D 8E FE 16 STX $16FE ; Set #$B020 in buffer for $4362 $80/9030 8E 00 17 STX $1700 ; Set #$B020 in buffer for $4352 $80/9033 A2 A0 B0 LDX #$B0A0 $80/9036 8E 02 17 STX $1702 ; Set #$B0A0 in buffer for $4312 $80/9039 20 BA 96 JSR $96BA [$80:96BA] A:0020 X:B0A0 Y:001E P:eNvMxdizC $80/903C 20 4A 96 JSR $964A [$80:964A] A:1700 X:B040 Y:000C P:eNvMxdizC $80/903F EE FB 16 INC $16FB ; Set Flag for $80/B1EF $80/9042 60 RTS
$80/91D1 MVN-Transfer of #$4C0 bytes on Bank $7E
$80/91D1 AD 58 17 LDA $1758 ; Check if Bank-$7E-MVN-Transfer flag is set $80/91D4 D0 1B BNE $1B ; [$91F1] Exit if it is $80/91D6 8B PHB ; Buffer Data Bank on Stack $80/91D7 DA PHX ; Buffer X and Y on Stack $80/91D8 5A PHY $80/91D9 AE 59 17 LDX $1759 ; Load MVN Source Address $80/91DC AC 5B 17 LDY $175B ; Load MVN Destination Address $80/91DF C2 20 REP #$20 ; A = 16-bit $80/91E1 A9 BF 04 LDA #$04BF ; Number of Bytes to transfer: #$04C0 $80/91E4 54 7E 7E MVN 7E 7E ; TRANSFER ON BANK $7E $80/91E7 E2 20 SEP #$20 ; A = 8-bit $80/91E9 7A PLY ; Restore Y and X from Stack $80/91EA FA PLX $80/91EB AB PLB ; Restore Data Bank from Stack $80/91EC A9 01 LDA #$01 ; Set Bank-$7E-MVN-Transfer flag $80/91EE 8D 58 17 STA $1758 $80/91F1 6B RTL
$80/91F2 ?
$80/91F2 8B PHB ; Buffer Data Bank on Stack $80/91F3 4B PHK ; Set Data Bank to $80 $80/91F4 AB PLB $80/91F5 D4 00 PEI ($00) ; Buffer $00-$07 on Stack $80/91F7 D4 02 PEI ($02) $80/91F9 D4 04 PEI ($04) $80/91FB D4 06 PEI ($06) $80/91FD 85 00 STA $00 [$00:0000] A:000F X:0000 Y:002D P:eNvMxdizc $80/91FF 22 D1 91 80 JSL $8091D1[$80:91D1] A:000F X:0000 Y:002D P:eNvMxdizc $80/9203 C2 21 REP #$21 A:FF01 X:0000 Y:002D P:envMxdizc $80/9205 8A TXA A:FF01 X:0000 Y:002D P:envmxdizc $80/9206 6D 5B 17 ADC $175B [$80:175B] A:0000 X:0000 Y:002D P:envmxdiZc $80/9209 AA TAX A:C95F X:0000 Y:002D P:eNvmxdizc $80/920A AD 5B 17 LDA $175B [$80:175B] A:C95F X:C95F Y:002D P:eNvmxdizc $80/920D 69 80 03 ADC #$0380 A:C95F X:C95F Y:002D P:eNvmxdizc $80/9210 85 04 STA $04 [$00:0004] A:CCDF X:C95F Y:002D P:eNvmxdizc $80/9212 AD 5B 17 LDA $175B [$80:175B] A:CCDF X:C95F Y:002D P:eNvmxdizc $80/9215 69 C0 04 ADC #$04C0 A:C95F X:C95F Y:002D P:eNvmxdizc $80/9218 85 06 STA $06 [$00:0006] A:CE1F X:C95F Y:002D P:eNvmxdizc $80/921A E2 20 SEP #$20 A:CE1F X:C95F Y:002D P:eNvmxdizc $80/921C 7B TDC A:CE1F X:C95F Y:002D P:eNvMxdizc $80/921D AD EE 05 LDA $05EE [$80:05EE] A:0000 X:C95F Y:002D P:envMxdiZc $80/9220 1A INC A A:00DB X:C95F Y:002D P:eNvMxdizc $80/9221 C2 20 REP #$20 A:00DC X:C95F Y:002D P:eNvMxdizc $80/9223 0A ASL A A:00DC X:C95F Y:002D P:eNvmxdizc $80/9224 0A ASL A A:01B8 X:C95F Y:002D P:envmxdizc $80/9225 6D 5B 17 ADC $175B [$80:175B] A:0370 X:C95F Y:002D P:envmxdizc $80/9228 85 02 STA $02 [$00:0002] A:CCCF X:C95F Y:002D P:eNvmxdizc $80/922A E4 02 CPX $02 [$00:0002] A:CCCF X:C95F Y:002D P:eNvmxdizc $80/922C 90 07 BCC $07 [$9235] A:CCCF X:C95F Y:002D P:eNvmxdizc
- code is missing here
$80/9235 E2 20 SEP #$20 A:CCCF X:C95F Y:002D P:eNvmxdizc $80/9237 A0 00 00 LDY #$0000 A:CCCF X:C95F Y:002D P:eNvMxdizc $80/923A A9 7E LDA #$7E ; Set Data Bank to $7E $80/923C 48 PHA $80/923D AB PLB $80/923E BD 00 00 LDA $0000,x[$7E:C95F] A:CC7E X:C95F Y:0000 P:envMxdizc $80/9241 10 1A BPL $1A [$925D] A:CC00 X:C95F Y:0000 P:envMxdiZc $80/9243 A9 01 LDA #$01 A:CCFF X:C963 Y:0000 P:eNvMxdizc $80/9245 9D 00 00 STA $0000,x[$7E:C963] A:CC01 X:C963 Y:0000 P:envMxdizc $80/9248 B7 20 LDA [$20],y[$7E:52B7] A:CC01 X:C963 Y:0000 P:envMxdizc $80/924A 9D 01 00 STA $0001,x[$7E:C964] A:CC11 X:C963 Y:0000 P:envMxdizc $80/924D C8 INY A:CC11 X:C963 Y:0000 P:envMxdizc $80/924E C2 20 REP #$20 A:CC11 X:C963 Y:0001 P:envMxdizc $80/9250 B7 20 LDA [$20],y[$7E:52B8] A:CC11 X:C963 Y:0001 P:envmxdizc $80/9252 9D 02 00 STA $0002,x[$7E:C965] A:0CA7 X:C963 Y:0001 P:envmxdizc $80/9255 E2 20 SEP #$20 A:0CA7 X:C963 Y:0001 P:envmxdizc $80/9257 C8 INY A:0CA7 X:C963 Y:0001 P:envMxdizc $80/9258 C8 INY A:0CA7 X:C963 Y:0002 P:envMxdizc $80/9259 C6 00 DEC $00 [$00:0000] A:0CA7 X:C963 Y:0003 P:envMxdizc $80/925B F0 18 BEQ $18 [$9275] A:0CA7 X:C963 Y:0003 P:envMxdizc $80/925D E8 INX A:CC00 X:C95F Y:0000 P:envMxdiZc $80/925E E8 INX A:CC00 X:C960 Y:0000 P:eNvMxdizc $80/925F E8 INX A:CC00 X:C961 Y:0000 P:eNvMxdizc $80/9260 E8 INX A:CC00 X:C962 Y:0000 P:eNvMxdizc $80/9261 E4 02 CPX $02 [$00:0002] A:CC00 X:C963 Y:0000 P:eNvMxdizc $80/9263 B0 06 BCS $06 [$926B] A:CC00 X:C963 Y:0000 P:eNvMxdizc $80/9265 E4 04 CPX $04 [$00:0004] A:CC00 X:C963 Y:0000 P:eNvMxdizc $80/9267 90 D5 BCC $D5 [$923E] A:CC00 X:C963 Y:0000 P:eNvMxdizc $80/926B E4 04 CPX $04 [$00:0004] A:75ED X:D18F Y:0024 P:envMxdiZC $80/926D B0 02 BCS $02 [$9271] A:75ED X:D18F Y:0024 P:eNvMxdizc $80/926F A6 04 LDX $04 [$00:0004] A:75ED X:D18F Y:0024 P:eNvMxdizc $80/9271 E4 06 CPX $06 [$00:0006] A:75ED X:D19F Y:0024 P:eNvMxdizc $80/9273 90 C9 BCC $C9 [$923E] A:75ED X:D19F Y:0024 P:eNvMxdizc $80/9275 C2 20 REP #$20 A:573A X:C99B Y:002D P:envMxdiZc $80/9277 8A TXA A:573A X:C99B Y:002D P:envmxdiZc $80/9278 38 SEC A:C99B X:C99B Y:002D P:eNvmxdizc $80/9279 ED 5B 17 SBC $175B [$7E:175B] A:C99B X:C99B Y:002D P:eNvmxdizC $80/927C AA TAX A:003C X:C99B Y:002D P:envmxdizC $80/927D 68 PLA ; Restore $07-$00 from Stack $80/927E 85 06 STA $06 $80/9280 68 PLA $80/9281 85 04 STA $04 $80/9283 68 PLA $80/9284 85 02 STA $02 $80/9286 68 PLA $80/9287 85 00 STA $00 $80/9289 E2 20 SEP #$20 ; A = 8-bit $80/928B AB PLB ; Restore Data Bank from Stack $80/928C 6B RTL
$80/9331 ?
$80/9331 8B PHB ; Buffer Data Bank on Stack $80/9332 4B PHK ; Set Data Bank to $80 $80/9333 AB PLB $80/9334 D4 00 PEI ($00) ; Buffer $00-$07 on Stack $80/9336 D4 02 PEI ($02) $80/9338 D4 04 PEI ($04) $80/933A D4 06 PEI ($06) $80/933C 85 00 STA $00 [$00:0000] A:000F X:0000 Y:45D9 P:eNvMxdizc $80/933E 22 D1 91 80 JSL $8091D1[$80:91D1] A:000F X:0000 Y:45D9 P:eNvMxdizc $80/9342 C2 21 REP #$21 A:FF01 X:0000 Y:45D9 P:envMxdizc $80/9344 8A TXA A:FF01 X:0000 Y:45D9 P:envmxdizc $80/9345 6D 5B 17 ADC $175B [$80:175B] A:0000 X:0000 Y:45D9 P:envmxdiZc $80/9348 AA TAX A:CE1F X:0000 Y:45D9 P:eNvmxdizc $80/9349 AD 5B 17 LDA $175B [$80:175B] A:CE1F X:CE1F Y:45D9 P:eNvmxdizc $80/934C 69 80 03 ADC #$0380 A:CE1F X:CE1F Y:45D9 P:eNvmxdizc $80/934F 85 04 STA $04 [$00:0004] A:D19F X:CE1F Y:45D9 P:eNvmxdizc $80/9351 AD 5B 17 LDA $175B [$80:175B] A:D19F X:CE1F Y:45D9 P:eNvmxdizc $80/9354 69 C0 04 ADC #$04C0 A:CE1F X:CE1F Y:45D9 P:eNvmxdizc $80/9357 85 06 STA $06 [$00:0006] A:D2DF X:CE1F Y:45D9 P:eNvmxdizc $80/9359 E2 20 SEP #$20 A:D2DF X:CE1F Y:45D9 P:eNvmxdizc $80/935B 7B TDC A:D2DF X:CE1F Y:45D9 P:eNvMxdizc $80/935C AD EE 05 LDA $05EE [$80:05EE] A:0000 X:CE1F Y:45D9 P:envMxdiZc $80/935F 1A INC A A:00DB X:CE1F Y:45D9 P:eNvMxdizc $80/9360 C2 20 REP #$20 A:00DC X:CE1F Y:45D9 P:eNvMxdizc $80/9362 0A ASL A A:00DC X:CE1F Y:45D9 P:eNvmxdizc $80/9363 0A ASL A A:01B8 X:CE1F Y:45D9 P:envmxdizc $80/9364 6D 5B 17 ADC $175B [$80:175B] A:0370 X:CE1F Y:45D9 P:envmxdizc $80/9367 85 02 STA $02 [$00:0002] A:D18F X:CE1F Y:45D9 P:eNvmxdizc $80/9369 E4 02 CPX $02 [$00:0002] A:D18F X:CE1F Y:45D9 P:eNvmxdizc $80/936B 90 07 BCC $07 [$9374] A:D18F X:CE1F Y:45D9 P:eNvmxdizc
- code is missing here
$80/9374 E2 20 SEP #$20 ; A = 8-bit $80/9376 A9 7E LDA #$7E ; Set Data Bank to $7E $80/9378 48 PHA $80/9379 AB PLB $80/937A BD 00 00 LDA $0000,x[$7E:CE1F] A:D17E X:CE1F Y:45D9 P:envMxdizc $80/937D F0 12 BEQ $12 [$9391] A:D100 X:CE1F Y:45D9 P:envMxdiZc $80/937F C9 FF CMP #$FF A:D101 X:CE23 Y:45D9 P:envMxdizc $80/9381 F0 0E BEQ $0E [$9391] A:D101 X:CE23 Y:45D9 P:envMxdizc $80/9383 A9 FF LDA #$FF A:D101 X:CE23 Y:45D9 P:envMxdizc $80/9385 9D 00 00 STA $0000,x[$7E:CE23] A:D1FF X:CE23 Y:45D9 P:eNvMxdizc $80/9388 A9 10 LDA #$10 A:D1FF X:CE23 Y:45D9 P:eNvMxdizc $80/938A 9D 01 00 STA $0001,x[$7E:CE24] A:D110 X:CE23 Y:45D9 P:envMxdizc $80/938D C6 00 DEC $00 [$00:0000] A:D110 X:CE23 Y:45D9 P:envMxdizc $80/938F F0 18 BEQ $18 [$93A9] A:D110 X:CE23 Y:45D9 P:envMxdizc $80/9391 E8 INX A:D100 X:CE1F Y:45D9 P:envMxdiZc $80/9392 E8 INX A:D100 X:CE20 Y:45D9 P:eNvMxdizc $80/9393 E8 INX A:D100 X:CE21 Y:45D9 P:eNvMxdizc $80/9394 E8 INX A:D100 X:CE22 Y:45D9 P:eNvMxdizc $80/9395 E4 02 CPX $02 [$00:0002] A:D100 X:CE23 Y:45D9 P:eNvMxdizc $80/9397 B0 06 BCS $06 [$939F] A:D100 X:CE23 Y:45D9 P:eNvMxdizc $80/9399 E4 04 CPX $04 [$00:0004] A:D100 X:CE23 Y:45D9 P:eNvMxdizc $80/939B 90 DD BCC $DD [$937A] A:D100 X:CE23 Y:45D9 P:eNvMxdizc
- code is missing here
$80/939F E4 04 CPX $04 [$00:0004] A:D1FF X:D18F Y:0000 P:envMxdiZC $80/93A1 B0 02 BCS $02 [$93A5] A:D1FF X:D18F Y:0000 P:eNvMxdizc $80/93A3 A6 04 LDX $04 [$00:0004] A:D1FF X:D18F Y:0000 P:eNvMxdizc $80/93A5 E4 06 CPX $06 [$00:0006] A:D1FF X:D19F Y:0000 P:eNvMxdizc $80/93A7 90 D1 BCC $D1 [$937A] A:D1FF X:D19F Y:0000 P:eNvMxdizc $80/93A9 7A PLY ; Restore $07-$00 from Stack $80/93AA 84 06 STY $06 $80/93AC 7A PLY $80/93AD 84 04 STY $04 $80/93AF 7A PLY $80/93B0 84 02 STY $02 $80/93B2 7A PLY $80/93B3 84 00 STY $00 $80/93B5 AB PLB ; Restore Data Bank from Stack $80/93B6 6B RTL
$80/95E8 ?
$80/95E8 8B PHB A:0000 X:3300 Y:3C00 P:envMxdiZc $80/95E9 4B PHK A:0000 X:3300 Y:3C00 P:envMxdiZc $80/95EA AB PLB A:0000 X:3300 Y:3C00 P:envMxdiZc $80/95EB 20 F0 95 JSR $95F0 [$80:95F0] A:0000 X:3300 Y:3C00 P:eNvMxdizc $80/95EE AB PLB A:FF20 X:1758 Y:000A P:envMxdizC $80/95EF 6B RTL A:FF20 X:1758 Y:000A P:envMxdizC
$80/95F0 ?
$80/95F0 7B TDC A:0000 X:3300 Y:3C00 P:eNvMxdizc $80/95F1 AD F4 16 LDA $16F4 [$80:16F4] A:0000 X:3300 Y:3C00 P:envMxdiZc $80/95F4 29 7F AND #$7F A:0000 X:3300 Y:3C00 P:envMxdiZc $80/95F6 AA TAX A:0000 X:3300 Y:3C00 P:envMxdiZc $80/95F7 BD A7 95 LDA $95A7,x[$80:95A7] A:0000 X:0000 Y:3C00 P:envMxdiZc $80/95FA 85 00 STA $00 [$00:0000] A:00DB X:0000 Y:3C00 P:eNvMxdizc $80/95FC 64 01 STZ $01 [$00:0001] A:00DB X:0000 Y:3C00 P:eNvMxdizc $80/95FE AE EE 05 LDX $05EE [$80:05EE] A:00DB X:0000 Y:3C00 P:eNvMxdizc $80/9601 E4 00 CPX $00 [$00:0000] A:00DB X:00DB Y:3C00 P:envMxdizc $80/9603 F0 1A BEQ $1A [$961F] A:00DB X:00DB Y:3C00 P:envMxdiZC $80/961F 8E EE 05 STX $05EE [$80:05EE] A:00DB X:00DB Y:3C00 P:envMxdiZC $80/9622 20 BA 96 JSR $96BA [$80:96BA] A:00DB X:00DB Y:3C00 P:envMxdiZC $80/9625 20 4A 96 JSR $964A [$80:964A] A:1700 X:0000 Y:0009 P:envMxdiZC $80/9628 EE FB 16 INC $16FB [$80:16FB] A:FF20 X:1758 Y:000A P:envMxdiZC $80/962B 60 RTS A:FF20 X:1758 Y:000A P:envMxdizC
$80/964A ?
$80/964A AD F4 16 LDA $16F4 [$80:16F4] A:1700 X:0000 Y:0009 P:envMxdiZC $80/964D 29 7F AND #$7F A:1700 X:0000 Y:0009 P:envMxdiZC $80/964F 8D 02 42 STA $4202 [$80:4202] A:1700 X:0000 Y:0009 P:envMxdiZC $80/9652 A9 0A LDA #$0A A:1700 X:0000 Y:0009 P:envMxdiZC $80/9654 8D 03 42 STA $4203 [$80:4203] A:170A X:0000 Y:0009 P:envMxdizC $80/9657 A5 A2 LDA $A2 [$00:00A2] A:170A X:0000 Y:0009 P:envMxdizC $80/9659 89 02 BIT #$02 A:1708 X:0000 Y:0009 P:envMxdizC $80/965B D0 2D BNE $2D [$968A] A:1708 X:0000 Y:0009 P:envMxdiZC $80/965D C2 20 REP #$20 A:1708 X:0000 Y:0009 P:envMxdiZC $80/965F AE 04 17 LDX $1704 [$80:1704] A:1708 X:0000 Y:0009 P:envmxdiZC $80/9662 AC 16 42 LDY $4216 [$80:4216] A:1708 X:171A Y:0009 P:envmxdizC $80/9665 A9 05 00 LDA #$0005 A:1708 X:171A Y:0000 P:envmxdiZC $80/9668 85 00 STA $00 [$00:0000] A:0005 X:171A Y:0000 P:envmxdizC $80/966A B9 7B 94 LDA $947B,y[$80:947B] A:0005 X:171A Y:0000 P:envmxdizC $80/966D 9D 00 00 STA $0000,x[$80:171A] A:0000 X:171A Y:0000 P:envmxdiZC $80/9670 18 CLC A:0000 X:171A Y:0000 P:envmxdiZC $80/9671 B9 F3 94 LDA $94F3,y[$80:94F3] A:0000 X:171A Y:0000 P:envmxdiZc $80/9674 ED EE 05 SBC $05EE [$80:05EE] A:0000 X:171A Y:0000 P:envmxdiZc $80/9677 18 CLC A:FF24 X:171A Y:0000 P:eNvmxdizc $80/9678 69 80 00 ADC #$0080 A:FF24 X:171A Y:0000 P:eNvmxdizc $80/967B 9D 02 00 STA $0002,x[$80:171C] A:FFA4 X:171A Y:0000 P:eNvmxdizc $80/967E C8 INY A:FFA4 X:171A Y:0000 P:eNvmxdizc $80/967F C8 INY A:FFA4 X:171A Y:0001 P:envmxdizc $80/9680 E8 INX A:FFA4 X:171A Y:0002 P:envmxdizc $80/9681 E8 INX A:FFA4 X:171B Y:0002 P:envmxdizc $80/9682 E8 INX A:FFA4 X:171C Y:0002 P:envmxdizc $80/9683 E8 INX A:FFA4 X:171D Y:0002 P:envmxdizc $80/9684 C6 00 DEC $00 [$00:0000] A:FFA4 X:171E Y:0002 P:envmxdizc $80/9686 D0 E2 BNE $E2 [$966A] A:FFA4 X:171E Y:0002 P:envmxdizc $80/9688 E2 20 SEP #$20 A:FFA0 X:172E Y:000A P:envmxdiZc $80/968A A5 A2 LDA $A2 [$00:00A2] A:FFA0 X:172E Y:000A P:envMxdiZc $80/968C 89 04 BIT #$04 A:FF08 X:172E Y:000A P:envMxdizc $80/968E D0 29 BNE $29 ; [$96B9] Exit $80/9690 C2 20 REP #$20 A:FF08 X:172E Y:000A P:envMxdiZc $80/9692 AE 2E 17 LDX $172E [$80:172E] A:FF08 X:172E Y:000A P:envmxdiZc $80/9695 AC 16 42 LDY $4216 [$80:4216] A:FF08 X:1744 Y:000A P:envmxdizc $80/9698 A9 05 00 LDA #$0005 A:FF08 X:1744 Y:0000 P:envmxdiZc $80/969B 85 00 STA $00 [$00:0000] A:0005 X:1744 Y:0000 P:envmxdizc $80/969D B9 7B 94 LDA $947B,y[$80:947B] A:0005 X:1744 Y:0000 P:envmxdizc $80/96A0 9D 00 00 STA $0000,x[$80:1744] A:0000 X:1744 Y:0000 P:envmxdiZc $80/96A3 18 CLC A:0000 X:1744 Y:0000 P:envmxdiZc $80/96A4 B9 F3 94 LDA $94F3,y[$80:94F3] A:0000 X:1744 Y:0000 P:envmxdiZc $80/96A7 ED EE 05 SBC $05EE [$80:05EE] A:0000 X:1744 Y:0000 P:envmxdiZc $80/96AA 9D 02 00 STA $0002,x[$80:1746] A:FF24 X:1744 Y:0000 P:eNvmxdizc $80/96AD C8 INY A:FF24 X:1744 Y:0000 P:eNvmxdizc $80/96AE C8 INY A:FF24 X:1744 Y:0001 P:envmxdizc $80/96AF E8 INX A:FF24 X:1744 Y:0002 P:envmxdizc $80/96B0 E8 INX A:FF24 X:1745 Y:0002 P:envmxdizc $80/96B1 E8 INX A:FF24 X:1746 Y:0002 P:envmxdizc $80/96B2 E8 INX A:FF24 X:1747 Y:0002 P:envmxdizc $80/96B3 C6 00 DEC $00 [$00:0000] A:FF24 X:1748 Y:0002 P:envmxdizc $80/96B5 D0 E6 BNE $E6 [$969D] A:FF24 X:1748 Y:0002 P:envmxdizc $80/96B7 E2 20 SEP #$20 A:FF20 X:1758 Y:000A P:envmxdiZC $80/96B9 60 RTS A:FF20 X:1758 Y:000A P:envMxdiZC
$80/96BA ?
$80/96BA A9 DD LDA #$DD A:00DB X:00DB Y:3C00 P:envMxdiZC $80/96BC 85 04 STA $04 [$00:0004] A:00DD X:00DB Y:3C00 P:eNvMxdizC $80/96BE A9 80 LDA #$80 A:00DD X:00DB Y:3C00 P:eNvMxdizC $80/96C0 85 01 STA $01 [$00:0001] A:0080 X:00DB Y:3C00 P:eNvMxdizC $80/96C2 AE FC 16 LDX $16FC ; Build a 24-bit address in [$20] for DMA channel 7 $80/96C5 86 20 STX $20 $80/96C7 A9 7E LDA #$7E ; (Is on bank $7E) $80/96C9 85 22 STA $22 $80/96CB AD 58 17 LDA $1758 ; Flag for MVN-Transfer on Bank $7E - "set if #$00" $80/96CE F0 0F BEQ $0F ; [$96DF] Branch if MVN-Transfer is about to be done $80/96D0 AE 59 17 LDX $1759 [$80:1759] A:0001 X:B000 Y:0002 P:envMxdizC $80/96D3 AC 5B 17 LDY $175B [$80:175B] A:0001 X:CE1F Y:0002 P:eNvMxdizC $80/96D6 8C 59 17 STY $1759 [$80:1759] A:0001 X:CE1F Y:C95F P:eNvMxdizC $80/96D9 8E 5B 17 STX $175B [$80:175B] A:0001 X:CE1F Y:C95F P:eNvMxdizC $80/96DC 9C 58 17 STZ $1758 [$80:1758] A:0001 X:CE1F Y:C95F P:eNvMxdizC $80/96DF AD EE 05 LDA $05EE [$80:05EE] A:0000 X:B000 Y:3C00 P:envMxdiZC $80/96E2 A0 00 00 LDY #$0000 A:00DB X:B000 Y:3C00 P:eNvMxdizC $80/96E5 AE 59 17 LDX $1759 ; Transfer MVN-Transfer Source Address in $02 $80/96E8 86 02 STX $02 $80/96EA 20 10 98 JSR $9810 [$80:9810] A:00DB X:CE1F Y:0000 P:eNvMxdizC $80/96ED F0 11 BEQ $11 [$9700] A:D102 X:CE1F Y:0006 P:envMxdizC $80/96EF 48 PHA A:D102 X:CE1F Y:0006 P:envMxdizC $80/96F0 C2 21 REP #$21 A:D102 X:CE1F Y:0006 P:envMxdizC $80/96F2 AD 59 17 LDA $1759 [$80:1759] A:D102 X:CE1F Y:0006 P:envmxdizc $80/96F5 69 80 03 ADC #$0380 A:CE1F X:CE1F Y:0006 P:eNvmxdizc $80/96F8 85 02 STA $02 [$00:0002] A:D19F X:CE1F Y:0006 P:eNvmxdizc $80/96FA E2 20 SEP #$20 A:D19F X:CE1F Y:0006 P:eNvmxdizc $80/96FC 68 PLA A:D19F X:CE1F Y:0006 P:eNvMxdizc $80/96FD 20 10 98 JSR $9810 [$80:9810] A:D102 X:CE1F Y:0006 P:envMxdizc $80/9700 AD F4 16 LDA $16F4 [$80:16F4] A:D100 X:CE1F Y:0009 P:envMxdiZC $80/9703 29 7F AND #$7F A:D100 X:CE1F Y:0009 P:envMxdiZC $80/9705 8D 02 42 STA $4202 [$80:4202] A:D100 X:CE1F Y:0009 P:envMxdiZC $80/9708 A9 05 LDA #$05 A:D100 X:CE1F Y:0009 P:envMxdiZC $80/970A 8D 03 42 STA $4203 [$80:4203] A:D105 X:CE1F Y:0009 P:envMxdizC $80/970D A5 A2 LDA $A2 [$00:00A2] A:D105 X:CE1F Y:0009 P:envMxdizC $80/970F 89 04 BIT #$04 A:D108 X:CE1F Y:0009 P:envMxdizC $80/9711 D0 4E BNE $4E [$9761] A:D108 X:CE1F Y:0009 P:envMxdiZC $80/9713 A2 A0 B0 LDX #$B0A0 A:D108 X:CE1F Y:0009 P:envMxdiZC $80/9716 EC 02 17 CPX $1702 [$80:1702] A:D108 X:B0A0 Y:0009 P:eNvMxdizC $80/9719 D0 03 BNE $03 [$971E] A:D108 X:B0A0 Y:0009 P:eNvMxdizc $80/971B A2 C0 B0 LDX #$B0C0 A:D108 X:B0A0 Y:0009 P:envMxdiZC $80/971E 8E 02 17 STX $1702 [$80:1702] A:D108 X:B0A0 Y:0009 P:eNvMxdizc $80/9721 A2 30 17 LDX #$1730 A:D108 X:B0A0 Y:0009 P:eNvMxdizc $80/9724 EC 2E 17 CPX $172E [$80:172E] A:D108 X:1730 Y:0009 P:envMxdizc $80/9727 D0 03 BNE $03 [$972C] A:D108 X:1730 Y:0009 P:envMxdiZC $80/9729 A2 44 17 LDX #$1744 A:D108 X:1730 Y:0009 P:envMxdiZC $80/972C 8E 2E 17 STX $172E [$80:172E] A:D108 X:1744 Y:0009 P:envMxdizC $80/972F A9 DD LDA #$DD A:D108 X:1744 Y:0009 P:envMxdizC $80/9731 85 04 STA $04 [$00:0004] A:D1DD X:1744 Y:0009 P:eNvMxdizC $80/9733 64 01 STZ $01 [$00:0001] A:D1DD X:1744 Y:0009 P:eNvMxdizC $80/9735 AE 02 17 LDX $1702 [$80:1702] A:D1DD X:1744 Y:0009 P:eNvMxdizC $80/9738 86 20 STX $20 [$00:0020] A:D1DD X:B0A0 Y:0009 P:eNvMxdizC $80/973A A9 7E LDA #$7E A:D1DD X:B0A0 Y:0009 P:eNvMxdizC $80/973C 85 22 STA $22 [$00:0022] A:D17E X:B0A0 Y:0009 P:envMxdizC $80/973E A0 00 00 LDY #$0000 A:D17E X:B0A0 Y:0009 P:envMxdizC $80/9741 A2 79 05 LDX #$0579 A:D17E X:B0A0 Y:0000 P:envMxdiZC $80/9744 86 02 STX $02 [$00:0002] A:D17E X:0579 Y:0000 P:envMxdizC $80/9746 AD EE 05 LDA $05EE [$80:05EE] A:D17E X:0579 Y:0000 P:envMxdizC $80/9749 20 10 98 JSR $9810 [$80:9810] A:D1DB X:0579 Y:0000 P:eNvMxdizC $80/974C F0 13 BEQ $13 [$9761] A:0502 X:0579 Y:0006 P:envMxdizC $80/974E AE 2E 17 LDX $172E [$80:172E] A:0502 X:0579 Y:0006 P:envMxdizC $80/9751 86 02 STX $02 [$00:0002] A:0502 X:1744 Y:0006 P:envMxdizC $80/9753 AE 16 42 LDX $4216 [$80:4216] A:0502 X:1744 Y:0006 P:envMxdizC $80/9756 BD 6B 95 LDA $956B,x[$80:956B] A:0502 X:0000 Y:0006 P:envMxdiZC $80/9759 20 10 98 JSR $9810 [$80:9810] A:0550 X:0000 Y:0006 P:envMxdizC $80/975C F0 03 BEQ $03 [$9761] A:1700 X:0000 Y:0009 P:envMxdiZC
- code is missing here
$80/9761 A5 A2 LDA $A2 [$00:00A2] A:1700 X:0000 Y:0009 P:envMxdiZC $80/9763 89 02 BIT #$02 A:1708 X:0000 Y:0009 P:envMxdizC $80/9765 D0 4E BNE $4E ; [$97B5] Leave this part out if Bit 1 is set $80/9767 A2 20 B0 LDX #$B020 A:1708 X:0000 Y:0009 P:envMxdiZC $80/976A EC FE 16 CPX $16FE [$80:16FE] A:1708 X:B020 Y:0009 P:eNvMxdizC $80/976D D0 03 BNE $03 [$9772] A:1708 X:B020 Y:0009 P:eNvMxdizc $80/976F A2 40 B0 LDX #$B040 A:1708 X:B020 Y:0009 P:envMxdiZC $80/9772 8E FE 16 STX $16FE [$80:16FE] A:1708 X:B020 Y:0009 P:eNvMxdizc $80/9775 A2 06 17 LDX #$1706 A:1708 X:B020 Y:0009 P:eNvMxdizc $80/9778 EC 04 17 CPX $1704 [$80:1704] A:1708 X:1706 Y:0009 P:envMxdizc $80/977B D0 03 BNE $03 [$9780] A:1708 X:1706 Y:0009 P:envMxdiZC $80/977D A2 1A 17 LDX #$171A A:1708 X:1706 Y:0009 P:envMxdiZC $80/9780 8E 04 17 STX $1704 [$80:1704] A:1708 X:171A Y:0009 P:envMxdizC $80/9783 A9 DD LDA #$DD A:1708 X:171A Y:0009 P:envMxdizC $80/9785 85 04 STA $04 [$00:0004] A:17DD X:171A Y:0009 P:eNvMxdizC $80/9787 64 01 STZ $01 [$00:0001] A:17DD X:171A Y:0009 P:eNvMxdizC $80/9789 AE FE 16 LDX $16FE [$80:16FE] A:17DD X:171A Y:0009 P:eNvMxdizC $80/978C 86 20 STX $20 [$00:0020] A:17DD X:B020 Y:0009 P:eNvMxdizC $80/978E A9 7E LDA #$7E A:17DD X:B020 Y:0009 P:eNvMxdizC $80/9790 85 22 STA $22 [$00:0022] A:177E X:B020 Y:0009 P:envMxdizC $80/9792 A0 00 00 LDY #$0000 A:177E X:B020 Y:0009 P:envMxdizC $80/9795 A2 75 05 LDX #$0575 A:177E X:B020 Y:0000 P:envMxdiZC $80/9798 86 02 STX $02 [$00:0002] A:177E X:0575 Y:0000 P:envMxdizC $80/979A AD EE 05 LDA $05EE [$80:05EE] A:177E X:0575 Y:0000 P:envMxdizC $80/979D 20 10 98 JSR $9810 [$80:9810] A:17DB X:0575 Y:0000 P:eNvMxdizC $80/97A0 F0 13 BEQ $13 [$97B5] A:0502 X:0575 Y:0006 P:envMxdizC $80/97A2 AE 04 17 LDX $1704 [$80:1704] A:0502 X:0575 Y:0006 P:envMxdizC $80/97A5 86 02 STX $02 [$00:0002] A:0502 X:171A Y:0006 P:envMxdizC $80/97A7 AE 16 42 LDX $4216 [$80:4216] A:0502 X:171A Y:0006 P:envMxdizC $80/97AA BD 6B 95 LDA $956B,x[$80:956B] A:0502 X:0000 Y:0006 P:envMxdiZC $80/97AD 20 10 98 JSR $9810 [$80:9810] A:0550 X:0000 Y:0006 P:envMxdizC $80/97B0 F0 03 BEQ $03 [$97B5] A:1700 X:0000 Y:0009 P:envMxdiZC
- code is missing here
$80/97B5 A5 A2 LDA $A2 [$00:00A2] A:1700 X:0000 Y:0009 P:envMxdiZC $80/97B7 89 01 BIT #$01 A:1708 X:0000 Y:0009 P:envMxdizC $80/97B9 D0 4C BNE $4C ; [$9807] Exit if Bit 0 is set $80/97BB 89 08 BIT #$08 A:1708 X:0000 Y:0009 P:envMxdiZC $80/97BD D0 08 BNE $08 [$97C7] A:1708 X:0000 Y:0009 P:envMxdizC $80/97BF AE FE 16 LDX $16FE [$80:16FE] A:1700 X:0000 Y:0009 P:envMxdiZC $80/97C2 8E 00 17 STX $1700 [$80:1700] A:1700 X:B040 Y:0009 P:eNvMxdizC $80/97C5 80 40 BRA $40 [$9807] A:1700 X:B040 Y:0009 P:eNvMxdizC $80/97C7 A2 60 B0 LDX #$B060 A:1708 X:0000 Y:0009 P:envMxdizC $80/97CA EC 00 17 CPX $1700 [$80:1700] A:1708 X:B060 Y:0009 P:eNvMxdizC $80/97CD D0 03 BNE $03 [$97D2] A:1708 X:B060 Y:0009 P:eNvMxdizc $80/97CF A2 80 B0 LDX #$B080 A:1708 X:B060 Y:0009 P:envMxdiZC $80/97D2 8E 00 17 STX $1700 [$80:1700] A:1708 X:B060 Y:0009 P:eNvMxdizc $80/97D5 A9 DD LDA #$DD A:1708 X:B060 Y:0009 P:eNvMxdizc $80/97D7 85 04 STA $04 [$00:0004] A:17DD X:B060 Y:0009 P:eNvMxdizc $80/97D9 64 01 STZ $01 [$00:0001] A:17DD X:B060 Y:0009 P:eNvMxdizc $80/97DB AE 00 17 LDX $1700 ; Setup 24-bit Address on Bank $7E in [$20] $80/97DE 86 20 STX $20 $80/97E0 A9 7E LDA #$7E $80/97E2 85 22 STA $22 $80/97E4 A0 00 00 LDY #$0000 A:177E X:B060 Y:0009 P:envMxdizc $80/97E7 A2 71 05 LDX #$0571 ; Load BG1 X-Scroll $80/97EA 86 02 STX $02 [$00:0002] A:177E X:0571 Y:0000 P:envMxdizc $80/97EC AD EE 05 LDA $05EE ; Load V Timer $80/97EF 20 10 98 JSR $9810 [$80:9810] A:17DB X:0571 Y:0000 P:eNvMxdizc $80/97F2 F0 13 BEQ $13 ; [$9807] Exit if empty $80/97F4 AE 04 17 LDX $1704 [$80:1704] A:0502 X:0571 Y:0006 P:envMxdizC $80/97F7 86 02 STX $02 [$00:0002] A:0502 X:171A Y:0006 P:envMxdizC $80/97F9 AE 16 42 LDX $4216 [$80:4216] A:0502 X:171A Y:0006 P:envMxdizC $80/97FC BD 6B 95 LDA $956B,x[$80:956B] A:0502 X:0000 Y:0006 P:envMxdiZC $80/97FF 20 10 98 JSR $9810 [$80:9810] A:0550 X:0000 Y:0006 P:envMxdizC $80/9802 F0 03 BEQ $03 [$9807] A:1700 X:0000 Y:0009 P:envMxdiZC
- code is missing here
$80/9807 60 RTS A:1700 X:0000 Y:0009 P:envMxdiZC
$80/9810 ?
$80/9810 DA PHX A:00DB X:CE1F Y:0000 P:eNvMxdizC $80/9811 C5 04 CMP $04 ; Compare A with $04 $80/9813 90 02 BCC $02 ; [$9817] Store the lower value of both in $05 $80/9815 A5 04 LDA $04 $80/9817 85 05 STA $05 $80/9819 64 00 STZ $00 [$00:0000] A:00DB X:CE1F Y:0000 P:eNvMxdizc $80/981B C9 71 CMP #$71 A:00DB X:CE1F Y:0000 P:eNvMxdizc $80/981D 90 06 BCC $06 ; [$9825] Branch if A < #$71 $80/981F E9 70 SBC #$70 A:00DB X:CE1F Y:0000 P:envMxdizC $80/9821 85 00 STA $00 [$00:0000] A:006B X:CE1F Y:0000 P:enVMxdizC $80/9823 A9 70 LDA #$70 A:006B X:CE1F Y:0000 P:enVMxdizC $80/9825 AA TAX A:0070 X:CE1F Y:0000 P:enVMxdizC $80/9826 05 01 ORA $01 [$00:0001] A:0070 X:0070 Y:0000 P:enVMxdizC $80/9828 97 20 STA [$20],y[$7E:B000] A:00F0 X:0070 Y:0000 P:eNVMxdizC $80/982A C8 INY ; Increment Store Index $80/982B C2 20 REP #$20 A:00F0 X:0070 Y:0001 P:enVMxdizC $80/982D A5 02 LDA $02 [$00:0002] A:00F0 X:0070 Y:0001 P:enVmxdizC $80/982F 97 20 STA [$20],y[$7E:B001] A:CE1F X:0070 Y:0001 P:eNVmxdizC $80/9831 E2 20 SEP #$20 A:CE1F X:0070 Y:0001 P:eNVmxdizC $80/9833 C8 INY ; Increment Store Index twice $80/9834 C8 INY $80/9835 A5 01 LDA $01 [$00:0001] A:CE1F X:0070 Y:0003 P:enVMxdizC $80/9837 10 0E BPL $0E [$9847] A:CE80 X:0070 Y:0003 P:eNVMxdizC $80/9839 C2 20 REP #$20 A:CE80 X:0070 Y:0003 P:eNVMxdizC $80/983B 8A TXA A:CE80 X:0070 Y:0003 P:eNVmxdizC $80/983C 29 FF 00 AND #$00FF A:0070 X:0070 Y:0003 P:enVmxdizC $80/983F 0A ASL A A:0070 X:0070 Y:0003 P:enVmxdizC $80/9840 0A ASL A A:00E0 X:0070 Y:0003 P:enVmxdizc $80/9841 65 02 ADC $02 [$00:0002] A:01C0 X:0070 Y:0003 P:enVmxdizc $80/9843 85 02 STA $02 [$00:0002] A:CFDF X:0070 Y:0003 P:eNvmxdizc $80/9845 E2 20 SEP #$20 A:CFDF X:0070 Y:0003 P:eNvmxdizc $80/9847 A5 00 LDA $00 [$00:0000] A:CFDF X:0070 Y:0003 P:eNvMxdizc $80/9849 D0 CE BNE $CE [$9819] A:CF6B X:0070 Y:0003 P:envMxdizc $80/984B 97 20 STA [$20],y[$7E:B006] A:D100 X:CF6B Y:0006 P:envMxdiZc $80/984D A5 01 LDA $01 [$00:0001] A:D100 X:CF6B Y:0006 P:envMxdiZc $80/984F 30 08 BMI $08 [$9859] A:D180 X:CF6B Y:0006 P:eNvMxdizc $80/9851 A6 02 LDX $02 [$00:0002] A:0500 X:056B Y:0006 P:enVMxdiZc $80/9853 E8 INX A:0500 X:0579 Y:0006 P:enVMxdizc $80/9854 E8 INX A:0500 X:057A Y:0006 P:enVMxdizc $80/9855 E8 INX A:0500 X:057B Y:0006 P:enVMxdizc $80/9856 E8 INX A:0500 X:057C Y:0006 P:enVMxdizc $80/9857 86 02 STX $02 [$00:0002] A:0500 X:057D Y:0006 P:enVMxdizc $80/9859 FA PLX A:D180 X:CF6B Y:0006 P:eNvMxdizc $80/985A A5 04 LDA $04 [$00:0004] A:D180 X:CE1F Y:0006 P:eNvMxdizc $80/985C 38 SEC A:D1DD X:CE1F Y:0006 P:eNvMxdizc $80/985D E5 05 SBC $05 [$00:0005] A:D1DD X:CE1F Y:0006 P:eNvMxdizC $80/985F 85 04 STA $04 [$00:0004] A:D102 X:CE1F Y:0006 P:envMxdizC $80/9861 60 RTS A:D102 X:CE1F Y:0006 P:envMxdizC
$80/98F1 ?
$80/98F1 22 D8 84 86 JSL $8684D8[$86:84D8] A:0476 X:0021 Y:0000 P:eNvMxdIzC $80/98F5 C2 20 REP #$20 A:0000 X:007C Y:0000 P:eNvMxdIzc $80/98F7 A9 E8 03 LDA #$03E8 A:0000 X:007C Y:0000 P:eNvmxdIzc $80/98FA 8D A3 1E STA $1EA3 [$80:1EA3] A:03E8 X:007C Y:0000 P:envmxdIzc $80/98FD A9 F4 01 LDA #$01F4 A:03E8 X:007C Y:0000 P:envmxdIzc $80/9900 8F 4C BE 7E STA $7EBE4C[$7E:BE4C] A:01F4 X:007C Y:0000 P:envmxdIzc $80/9904 E2 20 SEP #$20 A:01F4 X:007C Y:0000 P:envmxdIzc $80/9906 22 10 A9 9B JSL $9BA910[$9B:A910] A:01F4 X:007C Y:0000 P:envMxdIzc $80/990A 6B RTL A:0017 X:00FF Y:0000 P:envMxdIzc
$80/999C ?
$80/999C 8B PHB ; Buffer Data Bank on Stack $80/999D 4B PHK ; Set Data Bank to $80 $80/999E AB PLB $80/999F 20 A4 99 JSR $99A4 [$80:99A4] A:0101 X:0006 Y:0006 P:eNvMxdizC $80/99A2 AB PLB ; Restore Data Bank from Stack $80/99A3 6B RTL
$80/99A4 ?
$80/99A4 C2 20 REP #$20 A:0001 X:0002 Y:0002 P:envMxdizC $80/99A6 AD CA 16 LDA $16CA [$80:16CA] A:0001 X:0002 Y:0002 P:envmxdizC $80/99A9 0A ASL A A:0014 X:0002 Y:0002 P:envmxdizC $80/99AA 0A ASL A A:0028 X:0002 Y:0002 P:envmxdizc $80/99AB 0A ASL A A:0050 X:0002 Y:0002 P:envmxdizc $80/99AC 0A ASL A A:00A0 X:0002 Y:0002 P:envmxdizc $80/99AD 9D 43 07 STA $0743,x[$80:0745] A:0140 X:0002 Y:0002 P:envmxdizc $80/99B0 38 SEC A:0140 X:0002 Y:0002 P:envmxdizc $80/99B1 BD 03 0A LDA $0A03,x[$80:0A05] A:0140 X:0002 Y:0002 P:envmxdizC $80/99B4 FD 43 0A SBC $0A43,x[$80:0A45] A:0B80 X:0002 Y:0002 P:envmxdizC $80/99B7 08 PHP A:0400 X:0002 Y:0002 P:envmxdizC $80/99B8 B0 04 BCS $04 [$99BE] A:0400 X:0002 Y:0002 P:envmxdizC $80/99BA 49 FF FF EOR #$FFFF A:FFF8 X:000A Y:0004 P:eNvmxdizc $80/99BD 1A INC A A:0007 X:000A Y:0004 P:envmxdizc $80/99BE 4A LSR A A:0400 X:0002 Y:0002 P:envmxdizC $80/99BF 4A LSR A A:0200 X:0002 Y:0002 P:envmxdizc $80/99C0 4A LSR A A:0100 X:0002 Y:0002 P:envmxdizc $80/99C1 1A INC A A:0080 X:0002 Y:0002 P:envmxdizc $80/99C2 4A LSR A A:0081 X:0002 Y:0002 P:envmxdizc $80/99C3 28 PLP A:0040 X:0002 Y:0002 P:envmxdizC $80/99C4 B0 04 BCS $04 [$99CA] A:0040 X:0002 Y:0002 P:envmxdizC $80/99C6 49 FF FF EOR #$FFFF A:0001 X:000A Y:0004 P:eNvmxdizc $80/99C9 1A INC A A:FFFE X:000A Y:0004 P:eNvmxdizc $80/99CA 18 CLC A:0040 X:0002 Y:0002 P:envmxdizC $80/99CB 7D 43 07 ADC $0743,x[$80:0745] A:0040 X:0002 Y:0002 P:envmxdizc $80/99CE 9D 43 07 STA $0743,x[$80:0745] A:0180 X:0002 Y:0002 P:envmxdizc $80/99D1 AD CC 16 LDA $16CC [$80:16CC] A:0180 X:0002 Y:0002 P:envmxdizc $80/99D4 0A ASL A A:000C X:0002 Y:0002 P:envmxdizc $80/99D5 0A ASL A A:0018 X:0002 Y:0002 P:envmxdizc $80/99D6 0A ASL A A:0030 X:0002 Y:0002 P:envmxdizc $80/99D7 69 07 00 ADC #$0007 A:0060 X:0002 Y:0002 P:envmxdizc $80/99DA 9D 83 07 STA $0783,x[$80:0785] A:0067 X:0002 Y:0002 P:envmxdizc $80/99DD 18 CLC A:0067 X:0002 Y:0002 P:envmxdizc $80/99DE BD 03 0A LDA $0A03,x[$80:0A05] A:0067 X:0002 Y:0002 P:envmxdizc $80/99E1 7D 43 0A ADC $0A43,x[$80:0A45] A:0B80 X:0002 Y:0002 P:envmxdizc $80/99E4 0A ASL A A:1300 X:0002 Y:0002 P:envmxdizc $80/99E5 38 SEC A:2600 X:0002 Y:0002 P:envmxdizc $80/99E6 FD 83 0A SBC $0A83,x[$80:0A85] A:2600 X:0002 Y:0002 P:envmxdizC $80/99E9 08 PHP A:2000 X:0002 Y:0002 P:envmxdizC $80/99EA B0 04 BCS $04 [$99F0] A:2000 X:0002 Y:0002 P:envmxdizC
- code is missing here
$80/99F0 4A LSR A A:2000 X:0002 Y:0002 P:envmxdizC $80/99F1 4A LSR A A:1000 X:0002 Y:0002 P:envmxdizc $80/99F2 4A LSR A A:0800 X:0002 Y:0002 P:envmxdizc $80/99F3 4A LSR A A:0400 X:0002 Y:0002 P:envmxdizc $80/99F4 4A LSR A A:0200 X:0002 Y:0002 P:envmxdizc $80/99F5 1A INC A A:0100 X:0002 Y:0002 P:envmxdizc $80/99F6 4A LSR A A:0101 X:0002 Y:0002 P:envmxdizc $80/99F7 28 PLP A:0080 X:0002 Y:0002 P:envmxdizC $80/99F8 B0 04 BCS $04 [$99FE] A:0080 X:0002 Y:0002 P:envmxdizC
- code is missing here
$80/99FE 18 CLC A:0080 X:0002 Y:0002 P:envmxdizC $80/99FF 7D 83 07 ADC $0783,x[$80:0785] A:0080 X:0002 Y:0002 P:envmxdizc $80/9A02 9D 83 07 STA $0783,x[$80:0785] A:00E7 X:0002 Y:0002 P:envmxdizc $80/9A05 BD 03 0A LDA $0A03,x[$80:0A05] A:00E7 X:0002 Y:0002 P:envmxdizc $80/9A08 18 CLC A:0B80 X:0002 Y:0002 P:envmxdizc $80/9A09 69 01 00 ADC #$0001 A:0B80 X:0002 Y:0002 P:envmxdizc $80/9A0C EB XBA A:0B81 X:0002 Y:0002 P:envmxdizc $80/9A0D E2 20 SEP #$20 A:810B X:0002 Y:0002 P:envmxdizc $80/9A0F 9D 43 09 STA $0943,x[$80:0945] A:810B X:0002 Y:0002 P:envMxdizc $80/9A12 C2 21 REP #$21 A:810B X:0002 Y:0002 P:envMxdizc $80/9A14 BD 43 0A LDA $0A43,x[$80:0A45] A:810B X:0002 Y:0002 P:envmxdizc $80/9A17 69 01 00 ADC #$0001 A:0780 X:0002 Y:0002 P:envmxdizc $80/9A1A EB XBA A:0781 X:0002 Y:0002 P:envmxdizc $80/9A1B E2 20 SEP #$20 A:8107 X:0002 Y:0002 P:envmxdizc $80/9A1D 9D 44 09 STA $0944,x[$80:0946] A:8107 X:0002 Y:0002 P:envMxdizc $80/9A20 60 RTS A:8107 X:0002 Y:0002 P:envMxdizc
$80/9A21 Calculate the Global Cursor Position from it's Position on Map
Sorry, my language skills as well as my explanation skills are too limited to explain here how the calculation works, so you/we have to accept that it works.
What this subroutine does, is: It takes the coordinates of the cursor on the grid (you know, the Northeast-Southwest-Axis/Northwest-Southeast-coordinates) and turns it into an actual number of pixel offset.
$80/9A21 A2 3C 00 LDX #$003C ; Write Index for the second last figure (Rhomb Marker) $80/9A24 A0 3E 00 LDY #$003E ; Write Index for the last figure (Pointing Hand) $80/9A27 C2 21 REP #$21 $80/9A29 AD CA 16 LDA $16CA ; Load Width of the Map on the NE-SW-Axis(?) $80/9A2C 6D 61 00 ADC $0061 ; Add Cursor Position - NW to SE Axis $80/9A2F 38 SEC $80/9A30 ED 63 00 SBC $0063 ; Subtract Cursor Position - NE to SW Axis $80/9A33 0A ASL A ; Multiply by #$10 --- #$10 pixels per Rhomb $80/9A34 0A ASL A $80/9A35 0A ASL A $80/9A36 0A ASL A $80/9A37 9D 43 07 STA $0743,x ; Store for Rhomb Marker $80/9A3A 99 43 07 STA $0743,y ; Store for Pointing Hand $80/9A3D 38 SEC ; Set Carry (is a +1 for the next ADC-command) $80/9A3E AD CC 16 LDA $16CC ; Load Width of the Map on the NW-SE-Axis(?) $80/9A41 6D 61 00 ADC $0061 ; Add Cursor Position - NW to SE Axis + 1 $80/9A44 6D 63 00 ADC $0063 ; Add Cursor Position - NE to SW Axis $80/9A47 38 SEC $80/9A48 ED 65 00 SBC $0065 ; Subtract the (geographical) Height of the Rhomb $80/9A4B 0A ASL A ; Multiply by #$8 --- #$8 pixels per Rhomb $80/9A4C 0A ASL A $80/9A4D 0A ASL A $80/9A4E 09 07 00 ORA #$0007 ; "Add" 7 pixels $80/9A51 9D 83 07 STA $0783,x ; Store as Y-Offset for the Rhomb Marker $80/9A54 38 SEC ; Subtract #$0018 pixels - the distance between Rhomb Marker and Pointing Hand $80/9A55 E9 18 00 SBC #$0018 $80/9A58 99 83 07 STA $0783,y ; Store as Y-Offset of the Pointing Hand $80/9A5B E2 20 SEP #$20 $80/9A5D 60 RTS
$80/9A5E ?
$80/9A5E 8B PHB ; Buffer Data Bank on Stack $80/9A5F 4B PHK ; Set Data Bank to $80 $80/9A60 AB PLB $80/9A61 20 66 9A JSR $9A66 [$80:9A66] A:3980 X:0002 Y:44C0 P:eNvMxdizc $80/9A64 AB PLB ; Restore Data Bank $80/9A65 6B RTL
$80/9A66 ?
$80/9A66 A2 00 00 LDX #$0000 A:3980 X:0002 Y:44C0 P:eNvMxdizc $80/9A69 9B TXY A:3980 X:0000 Y:44C0 P:envMxdiZc $80/9A6A BD 03 06 LDA $0603,x[$80:0603] A:3980 X:0000 Y:0000 P:envMxdiZc $80/9A6D F0 21 BEQ $21 [$9A90] A:3901 X:0000 Y:0000 P:envMxdizc $80/9A6F BD C3 09 LDA $09C3,x[$80:09C3] A:3901 X:0000 Y:0000 P:envMxdizc $80/9A72 89 C0 BIT #$C0 A:39FF X:0000 Y:0000 P:eNvMxdizc $80/9A74 F0 1A BEQ $1A [$9A90] A:39FF X:0000 Y:0000 P:eNvMxdizc $80/9A76 C2 20 REP #$20 A:39FF X:0000 Y:0000 P:eNvMxdizc $80/9A78 BD 83 0A LDA $0A83,x[$80:0A83] A:39FF X:0000 Y:0000 P:eNvmxdizc $80/9A7B 4A LSR A A:0600 X:0000 Y:0000 P:envmxdizc $80/9A7C 4A LSR A A:0300 X:0000 Y:0000 P:envmxdizc $80/9A7D 4A LSR A A:0180 X:0000 Y:0000 P:envmxdizc $80/9A7E 18 CLC A:00C0 X:0000 Y:0000 P:envmxdizc $80/9A7F 7D 43 0A ADC $0A43,x[$80:0A43] A:00C0 X:0000 Y:0000 P:envmxdizc $80/9A82 7D 03 0A ADC $0A03,x[$80:0A03] A:0740 X:0000 Y:0000 P:envmxdizc $80/9A85 9D 03 0C STA $0C03,x[$80:0C03] A:12C0 X:0000 Y:0000 P:envmxdizc $80/9A88 8A TXA A:12C0 X:0000 Y:0000 P:envmxdizc $80/9A89 99 83 0E STA $0E83,y[$80:0E83] A:0000 X:0000 Y:0000 P:envmxdiZc $80/9A8C E2 20 SEP #$20 A:0000 X:0000 Y:0000 P:envmxdiZc $80/9A8E C8 INY A:0000 X:0000 Y:0000 P:envMxdiZc $80/9A8F C8 INY A:0000 X:0000 Y:0001 P:envMxdizc $80/9A90 E8 INX A:0000 X:0000 Y:0002 P:envMxdizc $80/9A91 E8 INX A:0000 X:0001 Y:0002 P:envMxdizc $80/9A92 E0 40 00 CPX #$0040 A:0000 X:0002 Y:0002 P:envMxdizc $80/9A95 90 D3 BCC $D3 [$9A6A] A:0000 X:0002 Y:0002 P:eNvMxdizc $80/9A97 C2 20 REP #$20 A:0000 X:0040 Y:0008 P:envMxdiZC $80/9A99 A9 FF FF LDA #$FFFF A:0000 X:0040 Y:0008 P:envmxdiZC $80/9A9C 99 83 0E STA $0E83,y[$80:0E8B] A:FFFF X:0040 Y:0008 P:eNvmxdizC $80/9A9F C0 04 00 CPY #$0004 A:FFFF X:0040 Y:0008 P:eNvmxdizC $80/9AA2 90 0F BCC $0F [$9AB3] A:FFFF X:0040 Y:0008 P:envmxdizC $80/9AA4 A2 00 00 LDX #$0000 A:FFFF X:0040 Y:0008 P:envmxdizC $80/9AA7 88 DEY A:FFFF X:0000 Y:0008 P:envmxdiZC $80/9AA8 88 DEY A:FFFF X:0000 Y:0007 P:envmxdizC $80/9AA9 8B PHB ; Buffer Data Bank on Stack $80/9AAA F4 00 7E PEA $7E00 ; Set Data Bank to $7E $80/9AAD AB PLB $80/9AAE AB PLB $80/9AAF 20 DC 9B JSR $9BDC [$80:9BDC] A:FFFF X:0000 Y:0006 P:envmxdizC $80/9AB2 AB PLB ; Restore Data Bank $80/9AB3 E2 20 SEP #$20 ; A = 8-bit $80/9AB5 60 RTS
$80/9AB6 ?
$80/9AB6 8B PHB ; Buffer Data Bank on Stack $80/9AB7 4B PHK ; Set Data Bank to $80 $80/9AB8 AB PLB $80/9AB9 20 BE 9A JSR $9ABE [$80:9ABE] A:0000 X:0040 Y:0040 P:eNvMxdizC $80/9ABC AB PLB ; Restore Data Bank from Stack $80/9ABD 6B RTL
$80/9ABE ?
$80/9ABE A0 00 00 LDY #$0000 A:00C9 X:0040 Y:0000 P:envMxdiZC $80/9AC1 BE 83 0E LDX $0E83,y[$80:0E83] A:00C9 X:0040 Y:0000 P:envMxdiZC $80/9AC4 30 3E BMI $3E [$9B04] A:0E00 X:FFFF Y:0014 P:eNvMxdizc $80/9AC6 BD 03 06 LDA $0603,x[$80:0605] A:00C9 X:0002 Y:0000 P:envMxdizC $80/9AC9 F0 24 BEQ $24 [$9AEF] A:0001 X:0002 Y:0000 P:envMxdizC $80/9ACB BD C3 09 LDA $09C3,x[$80:09C5] A:0001 X:0002 Y:0000 P:envMxdizC $80/9ACE 89 C0 BIT #$C0 A:00FF X:0002 Y:0000 P:eNvMxdizC $80/9AD0 F0 1D BEQ $1D [$9AEF] A:00FF X:0002 Y:0000 P:eNvMxdizC $80/9AD2 C8 INY ; Increment Load Index twice $80/9AD3 C8 INY $80/9AD4 BD 43 08 LDA $0843,x[$80:0845] A:00FF X:0002 Y:0002 P:envMxdizC $80/9AD7 F0 E8 BEQ $E8 ; [$9AC1] Do next entry if empty $80/9AD9 C2 20 REP #$20 A:0001 X:003E Y:000C P:envMxdizC $80/9ADB BD 83 0A LDA $0A83,x[$80:0AC1] A:0001 X:003E Y:000C P:envmxdizC $80/9ADE 4A LSR A ; Divide by 8 $80/9ADF 4A LSR A $80/9AE0 4A LSR A $80/9AE1 18 CLC A:0180 X:003E Y:000C P:envmxdizc $80/9AE2 7D 43 0A ADC $0A43,x[$80:0A81] A:0180 X:003E Y:000C P:envmxdizc $80/9AE5 7D 03 0A ADC $0A03,x[$80:0A41] A:03FF X:003E Y:000C P:envmxdizc $80/9AE8 9D 03 0C STA $0C03,x[$80:0C41] A:0F7E X:003E Y:000C P:envmxdizc $80/9AEB E2 20 SEP #$20 A:0F7E X:003E Y:000C P:envmxdizc $80/9AED 80 D2 BRA $D2 ; [$9AC1] Loop $80/9AEF 5A PHY A:0000 X:0006 Y:0004 P:envMxdiZC $80/9AF0 C2 20 REP #$20 A:0000 X:0006 Y:0004 P:envMxdiZC $80/9AF2 B9 85 0E LDA $0E85,y[$80:0E89] A:0000 X:0006 Y:0004 P:envmxdiZC $80/9AF5 99 83 0E STA $0E83,y[$80:0E87] A:0008 X:0006 Y:0004 P:envmxdizC $80/9AF8 C8 INY A:0008 X:0006 Y:0004 P:envmxdizC $80/9AF9 C8 INY A:0008 X:0006 Y:0005 P:envmxdizC $80/9AFA C9 FF FF CMP #$FFFF A:0008 X:0006 Y:0006 P:envmxdizC $80/9AFD D0 F3 BNE $F3 [$9AF2] A:0008 X:0006 Y:0006 P:envmxdizc $80/9AFF E2 20 SEP #$20 A:FFFF X:0006 Y:000A P:envmxdiZC $80/9B01 7A PLY A:FFFF X:0006 Y:000A P:envMxdiZC $80/9B02 80 BD BRA $BD [$9AC1] A:FFFF X:0006 Y:0004 P:envMxdizC $80/9B04 A0 00 00 LDY #$0000 A:0E00 X:FFFF Y:0014 P:eNvMxdizc $80/9B07 BE 83 0E LDX $0E83,y[$80:0E83] A:0E00 X:FFFF Y:0000 P:envMxdiZc $80/9B0A 10 03 BPL $03 [$9B0F] A:0E00 X:0002 Y:0000 P:envMxdizc $80/9B0C 4C 91 9B JMP $9B91 ; Exit $80/9B0F BD 43 08 LDA $0843,x[$80:0845] A:0E00 X:0002 Y:0000 P:envMxdizc $80/9B12 D0 03 BNE $03 [$9B17] A:0E00 X:0002 Y:0000 P:envMxdiZc $80/9B14 4C 8C 9B JMP $9B8C ; Increment Load Index twice and loop $80/9B17 84 00 STY $00 [$00:0000] A:0E01 X:003E Y:000A P:envMxdizc $80/9B19 86 02 STX $02 [$00:0002] A:0E01 X:003E Y:000A P:envMxdizc $80/9B1B C2 20 REP #$20 A:0E01 X:003E Y:000A P:envMxdizc $80/9B1D BD 03 0C LDA $0C03,x[$80:0C41] A:0E01 X:003E Y:000A P:envmxdizc $80/9B20 C0 00 00 CPY #$0000 A:0F7E X:003E Y:000A P:envmxdizc $80/9B23 F0 33 BEQ $33 [$9B58] A:0F7E X:003E Y:000A P:envmxdizC $80/9B25 BE 81 0E LDX $0E81,y[$80:0E8B] A:0F7E X:003E Y:000A P:envmxdizC $80/9B28 DD 03 0C CMP $0C03,x[$80:0C0F] A:0F7E X:000C Y:000A P:envmxdizC $80/9B2B 90 2B BCC $2B [$9B58] A:0F7E X:000C Y:000A P:eNvmxdizc $80/9B2D F0 29 BEQ $29 [$9B58] A:0F40 X:0012 Y:000A P:envmxdiZC $80/9B2F 88 DEY A:1208 X:0004 Y:0006 P:envmxdizC $80/9B30 88 DEY A:1208 X:0004 Y:0005 P:envmxdizC $80/9B31 F0 0A BEQ $0A [$9B3D] A:1208 X:0004 Y:0004 P:envmxdizC $80/9B33 BE 81 0E LDX $0E81,y[$80:0E85] A:1208 X:0004 Y:0004 P:envmxdizC $80/9B36 DD 03 0C CMP $0C03,x[$80:0C03] A:1208 X:0000 Y:0004 P:envmxdiZC $80/9B39 F0 02 BEQ $02 [$9B3D] A:1208 X:0000 Y:0004 P:eNvmxdizc $80/9B3B B0 F2 BCS $F2 [$9B2F] A:1208 X:0000 Y:0004 P:eNvmxdizc $80/9B3D C8 INY A:1208 X:0000 Y:0004 P:eNvmxdizc $80/9B3E C8 INY A:1208 X:0000 Y:0005 P:envmxdizc $80/9B3F 84 04 STY $04 [$00:0004] A:1208 X:0000 Y:0006 P:envmxdizc $80/9B41 A4 00 LDY $00 [$00:0000] A:1208 X:0000 Y:0006 P:envmxdizc $80/9B43 B9 81 0E LDA $0E81,y[$80:0E87] A:1208 X:0000 Y:0006 P:envmxdizc $80/9B46 99 83 0E STA $0E83,y[$80:0E89] A:0004 X:0000 Y:0006 P:envmxdizc $80/9B49 88 DEY A:0004 X:0000 Y:0006 P:envmxdizc $80/9B4A 88 DEY A:0004 X:0000 Y:0005 P:envmxdizc $80/9B4B C4 04 CPY $04 [$00:0004] A:0004 X:0000 Y:0004 P:envmxdizc $80/9B4D B0 F4 BCS $F4 [$9B43] A:0004 X:0000 Y:0004 P:eNvmxdizc $80/9B4F A5 02 LDA $02 [$00:0002] A:0004 X:0000 Y:0004 P:eNvmxdizc $80/9B51 99 83 0E STA $0E83,y[$80:0E87] A:0006 X:0000 Y:0004 P:envmxdizc $80/9B54 A4 00 LDY $00 [$00:0000] A:0006 X:0000 Y:0004 P:envmxdizc $80/9B56 80 32 BRA $32 [$9B8A] A:0006 X:0000 Y:0006 P:envmxdizc $80/9B58 BE 85 0E LDX $0E85,y[$80:0E8F] A:0F7E X:000C Y:000A P:eNvmxdizc $80/9B5B 30 2D BMI $2D ; [$9B8A] Increment Load Index twice and loop $80/9B5D DD 03 0C CMP $0C03,x[$80:0C0D] A:0F7E X:000A Y:000A P:envmxdizc $80/9B60 B0 28 BCS $28 ; [$9B8A] Increment Load Index twice and loop $80/9B62 C8 INY A:0B68 X:000E Y:0008 P:eNvmxdizc $80/9B63 C8 INY A:0B68 X:000E Y:0009 P:envmxdizc $80/9B64 BE 85 0E LDX $0E85,y[$80:0E8F] A:0B68 X:000E Y:000A P:envmxdizc $80/9B67 30 05 BMI $05 [$9B6E] A:0B68 X:0010 Y:000A P:envmxdizc $80/9B69 DD 03 0C CMP $0C03,x[$80:0C13] A:0B68 X:0010 Y:000A P:envmxdizc $80/9B6C 90 F4 BCC $F4 [$9B62] A:0B68 X:0010 Y:000A P:eNvmxdizc $80/9B6E 84 04 STY $04 [$00:0004] A:0B68 X:0006 Y:000C P:envmxdizC $80/9B70 A4 00 LDY $00 [$00:0000] A:0B68 X:0006 Y:000C P:envmxdizC $80/9B72 B9 85 0E LDA $0E85,y[$80:0E8D] A:0B68 X:0006 Y:0008 P:envmxdizC $80/9B75 99 83 0E STA $0E83,y[$80:0E8B] A:000E X:0006 Y:0008 P:envmxdizC $80/9B78 C8 INY A:000E X:0006 Y:0008 P:envmxdizC $80/9B79 C8 INY A:000E X:0006 Y:0009 P:envmxdizC $80/9B7A C4 04 CPY $04 [$00:0004] A:000E X:0006 Y:000A P:envmxdizC $80/9B7C 90 F4 BCC $F4 [$9B72] A:000E X:0006 Y:000A P:eNvmxdizc $80/9B7E A5 02 LDA $02 [$00:0002] A:0010 X:0006 Y:000C P:envmxdiZC $80/9B80 99 83 0E STA $0E83,y[$80:0E8F] A:000C X:0006 Y:000C P:envmxdizC $80/9B83 A4 00 LDY $00 [$00:0000] A:000C X:0006 Y:000C P:envmxdizC $80/9B85 E2 20 SEP #$20 A:000C X:0006 Y:0008 P:envmxdizC $80/9B87 4C 07 9B JMP $9B07 [$80:9B07] A:000C X:0006 Y:0008 P:envMxdizC $80/9B8A E2 20 SEP #$20 A:0F7E X:000A Y:000A P:envmxdizC $80/9B8C C8 INY ; Increment Load Index twice $80/9B8D C8 INY $80/9B8E 4C 07 9B JMP $9B07 ; Loop $80/9B91 60 RTS
$80/9B9A ?
$80/9B9A C2 20 REP #$20 A:8107 X:0006 Y:0004 P:envMxdizc $80/9B9C 7B TDC A:8107 X:0006 Y:0004 P:envmxdizc $80/9B9D A8 TAY A:0000 X:0006 Y:0004 P:envmxdiZc $80/9B9E 3A DEC A A:0000 X:0006 Y:0000 P:envmxdiZc $80/9B9F D9 83 0E CMP $0E83,y[$80:0E83] A:FFFF X:0006 Y:0000 P:eNvmxdizc $80/9BA2 F0 04 BEQ $04 [$9BA8] A:FFFF X:0006 Y:0000 P:eNvmxdizC $80/9BA4 C8 INY A:FFFF X:0006 Y:0000 P:eNvmxdizC $80/9BA5 C8 INY A:FFFF X:0006 Y:0001 P:envmxdizC $80/9BA6 80 F7 BRA $F7 [$9B9F] A:FFFF X:0006 Y:0002 P:envmxdizC $80/9BA8 8A TXA A:FFFF X:0006 Y:0006 P:envmxdiZC $80/9BA9 99 83 0E STA $0E83,y[$80:0E89] A:0006 X:0006 Y:0006 P:envmxdizC $80/9BAC A9 FF FF LDA #$FFFF A:0006 X:0006 Y:0006 P:envmxdizC $80/9BAF 99 85 0E STA $0E85,y[$80:0E8B] A:FFFF X:0006 Y:0006 P:eNvmxdizC $80/9BB2 E2 20 SEP #$20 A:FFFF X:0006 Y:0006 P:eNvmxdizC $80/9BB4 60 RTS A:FFFF X:0006 Y:0006 P:eNvMxdizC
$80/9BDC ?
$80/9BDC D4 00 PEI ($00) ; Buffer $00-$05 on Stack $80/9BDE D4 02 PEI ($02) $80/9BE0 D4 04 PEI ($04) $80/9BE2 86 00 STX $00 [$00:0000] A:FFFF X:0000 Y:0006 P:envmxdizC $80/9BE4 84 02 STY $02 [$00:0002] A:FFFF X:0000 Y:0006 P:envmxdizC $80/9BE6 98 TYA A:FFFF X:0000 Y:0006 P:envmxdizC $80/9BE7 38 SEC A:0006 X:0000 Y:0006 P:envmxdizC $80/9BE8 E5 00 SBC $00 [$00:0000] A:0006 X:0000 Y:0006 P:envmxdizC $80/9BEA C9 0A 00 CMP #$000A A:0006 X:0000 Y:0006 P:envmxdizC $80/9BED 90 20 BCC $20 [$9C0F] A:0006 X:0000 Y:0006 P:eNvmxdizc $80/9BEF A5 00 LDA $00 [$00:0000] A:000A X:0000 Y:000A P:envmxdiZC $80/9BF1 18 CLC A:0000 X:0000 Y:000A P:envmxdiZC $80/9BF2 65 02 ADC $02 [$00:0002] A:0000 X:0000 Y:000A P:envmxdiZc $80/9BF4 4A LSR A A:000A X:0000 Y:000A P:envmxdizc $80/9BF5 29 FE FF AND #$FFFE A:0005 X:0000 Y:000A P:envmxdizc $80/9BF8 85 04 STA $04 [$00:0004] A:0004 X:0000 Y:000A P:envmxdizc $80/9BFA A6 00 LDX $00 [$00:0000] A:0004 X:0000 Y:000A P:envmxdizc $80/9BFC A4 04 LDY $04 [$00:0004] A:0004 X:0000 Y:000A P:envmxdiZc $80/9BFE 20 DC 9B JSR $9BDC [$80:9BDC] A:0004 X:0000 Y:0004 P:envmxdizc $80/9C01 A6 04 LDX $04 [$00:0004] A:12C0 X:0000 Y:0004 P:envmxdiZC $80/9C03 E8 INX A:12C0 X:0004 Y:0004 P:envmxdizC $80/9C04 E8 INX A:12C0 X:0005 Y:0004 P:envmxdizC $80/9C05 A4 02 LDY $02 [$00:0002] A:12C0 X:0006 Y:0004 P:envmxdizC $80/9C07 20 DC 9B JSR $9BDC [$80:9BDC] A:12C0 X:0006 Y:000A P:envmxdizC $80/9C0A 20 20 9C JSR $9C20 [$80:9C20] A:0C00 X:0000 Y:000A P:envmxdiZC $80/9C0D 80 07 BRA $07 [$9C16] A:0004 X:3A17 Y:0006 P:envmxdiZC $80/9C0F E4 02 CPX $02 [$00:0002] A:0006 X:0000 Y:0006 P:eNvmxdizc $80/9C11 F0 03 BEQ $03 [$9C16] A:0006 X:0000 Y:0006 P:eNvmxdizc $80/9C13 20 7B 9C JSR $9C7B [$80:9C7B] A:0006 X:0000 Y:0006 P:eNvmxdizc $80/9C16 FA PLX ; Restore $05-$00 from Stack $80/9C17 86 04 STX $04 $80/9C19 FA PLX $80/9C1A 86 02 STX $02 $80/9C1C FA PLX $80/9C1D 86 00 STX $00 $80/9C1F 60 RTS
$80/9C20 ?
$80/9C20 A6 5C LDX $5C [$00:005C] A:0C00 X:0000 Y:000A P:envmxdiZC $80/9C22 A4 00 LDY $00 [$00:0000] A:0C00 X:3A11 Y:000A P:envmxdizC $80/9C24 B9 83 0E LDA $0E83,y[$7E:0E83] A:0C00 X:3A11 Y:0000 P:envmxdiZC $80/9C27 9D 00 00 STA $0000,x ; Buffer values $80/9C2A C8 INY ; Increment Load Index twice $80/9C2B C8 INY $80/9C2C E8 INX ; Increment Store Index twice $80/9C2D E8 INX $80/9C2E C4 04 CPY $04 [$00:0004] A:0002 X:3A13 Y:0002 P:envmxdizC $80/9C30 90 F2 BCC $F2 ; [$9C24] Loop if Y is less $80/9C32 F0 F0 BEQ $F0 ; [$9C24] Loop if Y is the same $80/9C34 86 04 STX $04 [$00:0004] A:0004 X:3A17 Y:0006 P:envmxdizC $80/9C36 A6 5C LDX $5C [$00:005C] A:0004 X:3A17 Y:0006 P:envmxdizC $80/9C38 DA PHX A:0004 X:3A11 Y:0006 P:envmxdizC $80/9C39 BD 00 00 LDA $0000,x[$7E:3A11] A:0004 X:3A11 Y:0006 P:envmxdizC $80/9C3C AA TAX A:0002 X:3A11 Y:0006 P:envmxdizC $80/9C3D BD 03 0C LDA $0C03,x[$7E:0C05] A:0002 X:0002 Y:0006 P:envmxdizC $80/9C40 BE 83 0E LDX $0E83,y[$7E:0E89] A:13C0 X:0002 Y:0006 P:envmxdizC $80/9C43 DD 03 0C CMP $0C03,x[$7E:0C09] A:13C0 X:0006 Y:0006 P:envmxdizC $80/9C46 FA PLX A:13C0 X:0006 Y:0006 P:envmxdizC $80/9C47 90 07 BCC $07 [$9C50] A:13C0 X:3A11 Y:0006 P:envmxdizC $80/9C49 BD 00 00 LDA $0000,x[$7E:3A11] A:13C0 X:3A11 Y:0006 P:envmxdizC $80/9C4C E8 INX A:0002 X:3A11 Y:0006 P:envmxdizC $80/9C4D E8 INX A:0002 X:3A12 Y:0006 P:envmxdizC $80/9C4E 80 05 BRA $05 [$9C55] A:0002 X:3A13 Y:0006 P:envmxdizC
- code is missing here
$80/9C55 5A PHY A:0002 X:3A13 Y:0006 P:envmxdizC $80/9C56 A4 00 LDY $00 [$00:0000] A:0002 X:3A13 Y:0006 P:envmxdizC $80/9C58 99 83 0E STA $0E83,y[$7E:0E83] A:0002 X:3A13 Y:0000 P:envmxdiZC $80/9C5B C8 INY A:0002 X:3A13 Y:0000 P:envmxdiZC $80/9C5C C8 INY A:0002 X:3A13 Y:0001 P:envmxdizC $80/9C5D 84 00 STY $00 [$00:0000] A:0002 X:3A13 Y:0002 P:envmxdizC $80/9C5F 7A PLY A:0002 X:3A13 Y:0002 P:envmxdizC $80/9C60 E4 04 CPX $04 [$00:0004] A:0002 X:3A13 Y:0006 P:envmxdizC $80/9C62 B0 16 BCS $16 [$9C7A] A:0002 X:3A13 Y:0006 P:eNvmxdizc $80/9C64 C4 02 CPY $02 [$00:0002] A:0002 X:3A13 Y:0006 P:eNvmxdizc $80/9C66 90 D0 BCC $D0 [$9C38] A:0002 X:3A13 Y:0006 P:eNvmxdizc
- code is missing here
$80/9C7A 60 RTS A:0004 X:3A17 Y:0006 P:envmxdiZC
$80/9C7B ?
$80/9C7B A4 00 LDY $00 [$00:0000] A:0006 X:0000 Y:0006 P:eNvmxdizc $80/9C7D 5A PHY A:0006 X:0000 Y:0000 P:envmxdiZc $80/9C7E BE 83 0E LDX $0E83,y[$7E:0E83] A:0006 X:0000 Y:0000 P:envmxdiZc $80/9C81 BD 03 0C LDA $0C03,x[$7E:0C03] A:0006 X:0000 Y:0000 P:envmxdiZc $80/9C84 84 04 STY $04 [$00:0004] A:12C0 X:0000 Y:0000 P:envmxdizc $80/9C86 C8 INY A:12C0 X:0000 Y:0000 P:envmxdizc $80/9C87 C8 INY A:12C0 X:0000 Y:0001 P:envmxdizc $80/9C88 BE 83 0E LDX $0E83,y[$7E:0E85] A:12C0 X:0000 Y:0002 P:envmxdizc $80/9C8B DD 03 0C CMP $0C03,x[$7E:0C05] A:12C0 X:0002 Y:0002 P:envmxdizc $80/9C8E B0 05 BCS $05 [$9C95] A:12C0 X:0002 Y:0002 P:eNvmxdizc $80/9C90 BD 03 0C LDA $0C03,x[$7E:0C05] A:12C0 X:0002 Y:0002 P:eNvmxdizc $80/9C93 84 04 STY $04 [$00:0004] A:13C0 X:0002 Y:0002 P:envmxdizc $80/9C95 C8 INY A:13C0 X:0002 Y:0002 P:envmxdizc $80/9C96 C8 INY A:13C0 X:0002 Y:0003 P:envmxdizc $80/9C97 C4 02 CPY $02 [$00:0002] A:13C0 X:0002 Y:0004 P:envmxdizc $80/9C99 90 ED BCC $ED [$9C88] A:13C0 X:0002 Y:0004 P:eNvmxdizc $80/9C9B F0 EB BEQ $EB [$9C88] A:13C0 X:0004 Y:0006 P:envmxdiZC $80/9C9D 7A PLY A:13C0 X:0006 Y:0008 P:envmxdizC $80/9C9E C4 04 CPY $04 [$00:0004] A:13C0 X:0006 Y:0000 P:envmxdiZC $80/9CA0 F0 18 BEQ $18 [$9CBA] A:13C0 X:0006 Y:0000 P:eNvmxdizc $80/9CA2 A6 04 LDX $04 [$00:0004] A:13C0 X:0006 Y:0000 P:eNvmxdizc $80/9CA4 84 04 STY $04 [$00:0004] A:13C0 X:0002 Y:0000 P:envmxdizc $80/9CA6 BD 83 0E LDA $0E83,x[$7E:0E85] A:13C0 X:0002 Y:0000 P:envmxdizc $80/9CA9 48 PHA A:0002 X:0002 Y:0000 P:envmxdizc $80/9CAA CA DEX A:0002 X:0002 Y:0000 P:envmxdizc $80/9CAB CA DEX A:0002 X:0001 Y:0000 P:envmxdizc $80/9CAC BD 83 0E LDA $0E83,x[$7E:0E83] A:0002 X:0000 Y:0000 P:envmxdiZc $80/9CAF 9D 85 0E STA $0E85,x[$7E:0E85] A:0000 X:0000 Y:0000 P:envmxdiZc $80/9CB2 E4 04 CPX $04 [$00:0004] A:0000 X:0000 Y:0000 P:envmxdiZc $80/9CB4 D0 F4 BNE $F4 [$9CAA] A:0000 X:0000 Y:0000 P:envmxdiZC $80/9CB6 68 PLA A:0000 X:0000 Y:0000 P:envmxdiZC $80/9CB7 9D 83 0E STA $0E83,x[$7E:0E83] A:0002 X:0000 Y:0000 P:envmxdizC $80/9CBA C8 INY A:0002 X:0000 Y:0000 P:envmxdizC $80/9CBB C8 INY A:0002 X:0000 Y:0001 P:envmxdizC $80/9CBC C4 02 CPY $02 [$00:0002] A:0002 X:0000 Y:0002 P:envmxdizC $80/9CBE 90 BD BCC $BD [$9C7D] A:0002 X:0000 Y:0002 P:eNvmxdizc $80/9CC0 60 RTS A:12C0 X:0006 Y:0006 P:envmxdiZC
$80/9D32 DMA Subroutine
Destination has to be set before this Subroutine is called
$80/9D32 8D 04 43 STA $4304 ; A: Source Bank (8 bit) $80/9D35 8E 02 43 STX $4302 ; X: Source Address (16 bit) $80/9D38 8C 05 43 STY $4305 ; Y: Number of Bytes to transfer $80/9D3B A9 00 LDA #$00 ; DMA options $80/9D3D 8D 00 43 STA $4300 $80/9D40 A9 01 LDA #$01 ; Activate DMA $80/9D42 8D 0B 42 STA $420B $80/9D45 60 RTS
$80/9D81 Long Jump to VRAM Clear
A: Source Bank of the Clear Byte (8 bit)
X: Source Address of the Clear Byte (16 bit)
Y: Destination VRAM Address (16 bit)
$80/9D81 8B PHB ; Buffer Program Bank $80/9D82 4B PHK ; Set $80 as Program Bank $80/9D83 AB PLB $80/9D84 20 89 9D JSR $9D89 ; VRAM Clear $80/9D87 AB PLB ; Restore Program Bank $80/9D88 6B RTL
$80/9D89 VRAM Clear
$80/9D89 8D 04 43 STA $4304 ; A: Source Bank (8 bit) $80/9D8C 8E 02 43 STX $4302 ; X: Source Address (16 bit) $80/9D8F 8C 16 21 STY $2116 ; Y: Destination VRAM Address (16 bit) $80/9D92 A9 80 LDA #$80 ; Increment after writing $2119 $80/9D94 8D 15 21 STA $2115 $80/9D97 A9 09 LDA #$09 ; FIXED TRANSFER, 16 bit Transfer $80/9D99 8D 00 43 STA $4300 $80/9D9C A9 18 LDA #$18 ; DMA Destination: $2118, VRAM $80/9D9E 8D 01 43 STA $4301 $80/9DA1 A9 01 LDA #$01 ; Activate DMA $80/9DA3 8D 0B 42 STA $420B $80/9DA6 60 RTS
$80/9DA7 Long Jump to the WRAM-Clear-DMA
$80/9DA7 20 AB 9D JSR $9DAB ; Setup of the rest of the DMA and activation $80/9DAA 6B RTL
$80/9DAB WRAM-Clear-DMA
This Subroutine is half a setup for a DMA and starts the DMA. The first half of the setup has to be done before this Subroutine gets called. A call can be found at $80/801B. This is a fixed Transfer, so it's used for Clear Up DMAs. Furthermore, due to it's construction it is fixed to WRAM addresses. Before this subroutine is called, there are additional values that are loaded into certain registers:
A: Source Bank (8 bit)
X: Source Address (16 bit)
Y: Destination WRAM Address (16 bit)
Carry Bit Set: WRAM Bank $7F / Carry Bit Clear: WRAM Bank $7E
$80/9DAB 8D 04 43 STA $4304 ; A: Source Bank (8 bit) $80/9DAE 8E 02 43 STX $4302 ; X: Source Address (16 bit) $80/9DB1 8C 81 21 STY $2181 ; Y: Destination WRAM Address (16 bit) $80/9DB4 2A ROL A ; Roll Carry-Bit in A $80/9DB5 8D 83 21 STA $2183 ; If carry bit was set: Bank $7F, if clear: $7E $80/9DB8 A9 08 LDA #$08 ; FIXED TRANSFER $80/9DBA 8D 00 43 STA $4300 $80/9DBD A9 80 LDA #$80 ; DMA to Register $2180 --> to the WRAM address previously set up $80/9DBF 8D 01 43 STA $4301 $80/9DC2 A9 01 LDA #$01 ; Activate DMA $80/9DC4 8D 0B 42 STA $420B $80/9DC7 60 RTS
$80/9DC8 Long Jump to Write Empty Tilemap in WRAM
$80/9DC8 20 CC 9D JSR $9DCC ; Write Empty Tilemap in WRAM $80/9DCB 6B RTL
$80/9DCC Write Empty Tilemap in WRAM
This subroutine is used to write the same double-byte over and over into a bigger space. This is used to write empty tilemaps in WRAM.
X contains the number of bytes to do
Y contains the destination address (the destination bank has to be set as Data Bank before this subroutine is called)
A (16-bit) contains the 16-bit value that should be written
This subroutine has to ways of doing this: Either it simply works off $20 byte in one step, or it does less if it has to do less then $20 byte. So, whatever amount you give it, it clears the big bunch in $20 byte steps first and then does the rest in the second way of doing it. The first part of the program is about distinguishing which method is to use.
This subroutine is actually quite well done: At $80/9DE4, it uses the remaining number of bytes to do which is in X as an index for a jump table, the jump table then lets the program jump right into the middle of the whole Store commands that start at $9E0D - that's the reason why it starts at $001E,y and not at $0000,y!
$80/9DCC D4 00 PEI ($00) ; Buffer $00 on stack $80/9DCE E0 21 00 CPX #$0021 ; Check if the number of bytes-to-do is more than #$20 $80/9DD1 90 0F BCC $0F ; [$9DE2] Branch if not $80/9DD3 48 PHA ; Buffer the Write-Byte $80/9DD4 A9 20 00 LDA #$0020 ; Set Number of Bytes to do in $00 $80/9DD7 85 00 STA $00 $80/9DD9 68 PLA ; Restore the Write-Byte $80/9DDA 20 0D 9E JSR $9E0D [$80:9E0D] A:0000 X:0080 Y:BDC4 P:envmxdIZC $80/9DDD E0 21 00 CPX #$0021 ; Repeat this procedure if there are still more than $20 bytes to do $80/9DE0 B0 F8 BCS $F8 ; [$9DDA] $80/9DE2 86 00 STX $00 ; Set the remaining Number of Bytes to do in $00 $80/9DE4 FC EB 9D JSR ($9DEB,x) ; Jump to the Jump Table which redirects into the part at $9E0D $80/9DE7 FA PLX ; Restore Original $00 and Exit $80/9DE8 86 00 STX $00 $80/9DEA 60 RTS
- Code is missing here
- What is missing here is most likely a list of 2-byte-long Branch Commands where the first one branches to $9E3A, the second to $9E3C...
$80/9E0D 99 1E 00 STA $001E,y ; Write the Write-Byte into it's destination $80/9E10 99 1C 00 STA $001C,y $80/9E13 99 1A 00 STA $001A,y $80/9E16 99 18 00 STA $0018,y $80/9E19 99 16 00 STA $0016,y $80/9E1C 99 14 00 STA $0014,y $80/9E1F 99 12 00 STA $0012,y $80/9E22 99 10 00 STA $0010,y $80/9E25 99 0E 00 STA $000E,y $80/9E28 99 0C 00 STA $000C,y $80/9E2B 99 0A 00 STA $000A,y $80/9E2E 99 08 00 STA $0008,y $80/9E31 99 06 00 STA $0006,y $80/9E34 99 04 00 STA $0004,y $80/9E37 99 02 00 STA $0002,y $80/9E3A 99 00 00 STA $0000,y $80/9E3D 48 PHA ; Buffer the Write-Byte $80/9E3E 8A TXA ; Decrease the number of Bytes-to-do according to the number of transfered bytes $80/9E3F 38 SEC $80/9E40 E5 00 SBC $00 $80/9E42 AA TAX $80/9E43 98 TYA ; Increase the where-to-write-address according to the number of transfered bytes $80/9E44 18 CLC $80/9E45 65 00 ADC $00 $80/9E47 A8 TAY $80/9E48 68 PLA ; Restore the Write-Byte $80/9E49 60 RTS
$80/9E7B Long Jump to Decompress Data and DMA to VRAM
A and X contain 24-bit-Address of the Compressed Data.
Y contains the VRAM Destination
$20-$22 contains a 24-bit-Address where to tempstore the decompressed Data.
$80/9E7B 8B PHB ; Preserve Data Bank $80/9E7C 4B PHK ; Change Data Bank to this $80/9E7D AB PLB $80/9E7E 20 83 9E JSR $9E83 ; Decompress Data and DMA to VRAM $80/9E81 AB PLB ; Restore Data Bank $80/9E82 6B RTL
$80/9E83 Decompress Data and DMA to VRAM
A and X contain 24-bit-Address of the Compressed Data.
Y contains the VRAM Destination
$20-$22 contains a 24-bit-Address where to tempstore the decompressed Data.
$80/9E83 5A PHY ; Push VRAM Destination on Stack $80/9E84 22 E5 F9 81 JSL $81F9E5 ; Decompress Data $80/9E88 A6 0E LDX $0E ; Load number of decompressed bytes $80/9E8A 86 0C STX $0C ; Set it as number of bytes to transfer to VRAM $80/9E8C A9 80 LDA #$80 ; VRAM transfer settings ($2115) $80/9E8E 85 0E STA $0E $80/9E90 A6 20 LDX $20 ; DMA Source Address $80/9E92 A5 22 LDA $22 ; DMA Source Bank $80/9E94 7A PLY ; VRAM Destination $80/9E95 4C 2C 9F JMP $9F2C ; VRAM DMA - it's JMP, not JSR, so here's no RTS
$80/9E98 ?
$80/9E98 8B PHB ; Buffer Data Bank on Stack $80/9E99 4B PHK ; Set Data Bank to $80 $80/9E9A AB PLB $80/9E9B 20 A0 9E JSR $9EA0 [$80:9EA0] A:DCC8 X:DCC1 Y:2B00 P:eNvMxdizc $80/9E9E AB PLB ; Restore Data Bank from Stack $80/9E9F 6B RTL
$80/9EA0 ?
$80/9EA0 5A PHY ; Push VRAM Destination on Stack $80/9EA1 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:DCC8 X:DCC1 Y:2B00 P:eNvMxdizc $80/9EA5 A6 0E LDX $0E ; Load number of decompressed bytes $80/9EA7 86 0C STX $0C ; Set it as number of bytes to transfer to VRAM $80/9EA9 A9 80 LDA #$80 ; VRAM transfer settings ($2115) $80/9EAB 85 0E STA $0E $80/9EAD A6 20 LDX $20 ; DMA Source Address $80/9EAF A5 22 LDA $22 ; DMA Source Bank $80/9EB1 7A PLY ; VRAM Destination $80/9EB2 4C 2C 9F JMP $9F2C ; VRAM DMA - it's JMP, not JSR, so here's no RTS
$80/9E85 Transfer color
This subroutine transfers a part (or all) of the CGRAM buffer to CGRAM.
A contains the CGRAM Destination
X's content doesn't matter, but gets changed during this subroutine
Y contains the number of bytes to transfer
$80/9EB5 8B PHB ; Preserve Data Bank $80/9EB6 4B PHK ; Change Data Bank to this $80/9EB7 AB PLB $80/9EB8 48 PHA ; Buffer Original A value $80/9EB9 AD 6A 05 LDA $056A ; Load $2100 Buffer $80/9EBC 0A ASL A ; Roll MSB (FBLANK Flag) in the Carry Bit $80/9EBD 68 PLA ; Restore Original A value $80/9EBE 90 24 BCC $24 ; [$9EE4] Branch if FBLANK isn't active $80/9EC0 9C 0C 42 STZ $420C ; Deactivate HDMAs $80/9EC3 8D 21 21 STA $2121 ; Original A = CGRAM Destination $80/9EC6 C2 20 REP #$20 ; 16-bit A $80/9EC8 29 FF 00 AND #$00FF ; Remove if there was something in the hidden 8-bit $80/9ECB 0A ASL A ; Multiply A by 2 (each color is 2 bytes in size) $80/9ECC 69 4B 12 ADC #$124B ; Add the Offset of the CGRAM buffer, so A contains now the WRAM address of the first color $80/9ECF AA TAX ; Transfer to X for the upcoming DMA Setup Subroutine $80/9ED0 E2 20 SEP #$20 $80/9ED2 A9 22 LDA #$22 ; DMA Destination: $(21)22 = CGRAM $80/9ED4 8D 01 43 STA $4301 $80/9ED7 A9 00 LDA #$00 ; DMA Source Bank: $00 $80/9ED9 20 32 9D JSR $9D32 ; Setup and Execute DMA to CGRAM $80/9EDC AD 86 05 LDA $0586 ; Reactivate HDMAs $80/9EDF 8D 0C 42 STA $420C $80/9EE2 80 05 BRA $05 ; [$9EE9] Exit
Code is missing here
$80/9EE9 AB PLB ; Restore Data Bank $80/9EEA 6B RTL
$80/9EEB VRAM DMA with accompanying Data Bytes
Important: Whenever and from wherever this subroutine is called, the next few bytes AFTER the JSL $809EEB is Data for this subroutine. So, the first part of this subroutine is changing the Jump-Back-Address on stack so the program does not accidentally try to interpret these data bytes as code, but skip them.
The rest is the regular VRAM DMA subroutine at $80/9F2C
The Data following this Subroutine's called are structured as follows:
2 Bytes - DMA Source Address
1 Byte - DMA Source Bank
2 Bytes - VRAM Destination Address
2 Bytes - Number of Bytes
$80/9EEB 8B PHB ; Push Program Bank $80/9EEC C2 21 REP #$21 ; 16 bit A, clear Carry $80/9EEE A3 02 LDA $02,s ; Load the address from stack, where to return when the program reaches a RTL $80/9EF0 AA TAX ; Copy it into X $80/9EF1 69 07 00 ADC #$0007 ; Add 7 to the return address - skip 7 bytes $80/9EF4 83 02 STA $02,s ; Store it back on stack $80/9EF6 E2 20 SEP #$20 ; 8 bit A $80/9EF8 A3 04 LDA $04,s ; Load the Bank Byte from the Return address $80/9EFA 48 PHA ; Set it as Program Bank for now $80/9EFB AB PLB $80/9EFC D4 0C PEI ($0C) ; Preserve current values in $0C-$0F on Stack $80/9EFE D4 0E PEI ($0E) $80/9F00 A9 80 LDA #$80 ; VRAM settings (for $2115) $80/9F02 85 0E STA $0E $80/9F04 BD 03 00 LDA $0003,x ; DMA Source Bank $80/9F07 48 PHA ; Push it on stack, it gets pulled right before the Subroutine Jump $80/9F08 C2 20 REP #$20 $80/9F0A BD 06 00 LDA $0006,x ; Number of Bytes to transfer $80/9F0D 85 0C STA $0C $80/9F0F BC 04 00 LDY $0004,x ; VRAM Destination Address $80/9F12 BD 01 00 LDA $0001,x ; DMA Source Address $80/9F15 AA TAX $80/9F16 E2 20 SEP #$20 $80/9F18 68 PLA ; Pull Source Bank $80/9F19 20 2C 9F JSR $9F2C ; VRAM DMA $80/9F1C FA PLX ; Restore old values of $0C-$0F $80/9F1D 86 0E STX $0E $80/9F1F FA PLX $80/9F20 86 0C STX $0C $80/9F22 AB PLB ; Pull Program Bank $80/9F23 6B RTL
$80/9F24 Long Jump to VRAM DMA
This jumps to the VRAM DMA subroutine, but stores the current program bank on stack and restores the old one afterwards.
$80/9F24 8B PHB $80/9F25 4B PHK $80/9F26 AB PLB $80/9F27 20 2C 9F JSR $9F2C ; VRAM DMA $80/9F2A AB PLB $80/9F2B 6B RTL
$80/9F2C VRAM DMA
This Subroutine executes an DMA to VRAM.
First it checks if currently FBLANK is active. Then it checks if a HDMA is active. If it is, it pauses the HDMA for the time the DMA gets prepared and executed. The following preparations have been made in order to make this subroutine work properly:
A contains the DMA Source Bank
X contains the DMA Source Address
Y contains the VRAM Destination Address
$0C/$0D contain the number of bytes to transfer
$0E contains the VRAM settings (for register $2115)
$80/9F2C 48 PHA ; Preserve the Original A content on Stack $80/9F2D AD 6A 05 LDA $056A ; Is currently a FBLANK active? $80/9F30 10 38 BPL $38 ; [$9F6A] branch if not - If not, don't execute the DMA NOW, but put it in Pipeline $80/9F32 68 PLA ; Restore Original A content... $80/9F33 EB XBA ; ... and put it in the other half of the Accumulator $80/9F34 AD 86 05 LDA $0586 ; Are any HDMAs active/planned? $80/9F37 F0 0D BEQ $0D ; [$9F46] If not, skip the next part - immediate execution of the DMA $80/9F39 9C 0C 42 STZ $420C ; Remove HDMA activation flags $80/9F3C 20 46 9F JSR $9F46 ; Execute the stuff you were branched to before as a subroutine now $80/9F3F AD 86 05 LDA $0586 ; ... afterwards, restore the HDMA-Flags again $80/9F42 8D 0C 42 STA $420C $80/9F45 60 RTS $80/9F46 A9 01 LDA #$01 ; DMA Settings $80/9F48 8D 00 43 STA $4300 $80/9F4B A9 18 LDA #$18 ; Destination: $2118 - VRAM $80/9F4D 8D 01 43 STA $4301 $80/9F50 EB XBA ; Restore Original A value $80/9F51 8C 16 21 STY $2116 ; Original Y Value: VRAM Address $80/9F54 8E 02 43 STX $4302 ; Original X Value: Source Address $80/9F57 8D 04 43 STA $4304 ; Original A Value: Source Bank $80/9F5A A6 0C LDX $0C ; $0C contains the number of bytes to transfer $80/9F5C 8E 05 43 STX $4305 $80/9F5F A5 0E LDA $0E ; $0E contains the VRAM transfer settings $80/9F61 8D 15 21 STA $2115 $80/9F64 A9 01 LDA #$01 ; Activate DMA $80/9F66 8D 0B 42 STA $420B $80/9F69 60 RTS $80/9F6A A3 01 LDA $01,s ; Load the last byte on stack (Original A) without removing it from stack $80/9F6C C9 7E CMP #$7E ; is the DMA source Bank $7E? $80/9F6E D0 18 BNE $18 ; [$9F88] branch if not $80/9F70 E4 5C CPX $5C ; ??? $80/9F72 90 14 BCC $14 ; [$9F88] $80/9F74 E4 5E CPX $5E ; ??? $80/9F76 B0 10 BCS $10 ; [$9F88] $80/9F78 C2 21 REP #$21 ; A = 16 bit, Carry cleared $80/9F7A 8A TXA ; DMA Source Address is now in A $80/9F7B 65 0C ADC $0C ; Add the number of Bytes transfered $80/9F7D 3A DEC A ; Decrement it by one $80/9F7E C5 5E CMP $5E ; ??? $80/9F80 90 03 BCC $03 ; [$9F85]
Code is missing here
$80/9F85 1A INC A ; ??? $80/9F86 85 5C STA $5C ; ??? $80/9F88 C2 21 REP #$21 ; A = 16 bit, Carry cleared $80/9F8A AD C5 0E LDA $0EC5 ; ??? $80/9F8D 65 0C ADC $0C ; ??? $80/9F8F 8D C5 0E STA $0EC5 ; ??? $80/9F92 DA PHX ; Push DMA Source Address from Stack $80/9F93 AD C7 0E LDA $0EC7 ; Load Number of already occupied Pipeline Slots $80/9F96 29 FF 00 AND #$00FF ; This Number is 8 bit in size $80/9F99 0A ASL A ; multiply by 2 - each pipeline entry is 2 bytes in size $80/9F9A AA TAX ; Transfer in X as Index $80/9F9B 98 TYA ; Y still held the VRAM Destination $80/9F9C 9D 49 10 STA $1049,x ; Put in Pipeline - VRAM Destination ($2116) $80/9F9F A5 0C LDA $0C $80/9FA1 9D C9 0E STA $0EC9,x ; Put in Pipeline - Data Size ($4305) $80/9FA4 68 PLA ; Get DMA Source Address (see $80/9F92) $80/9FA5 9D 89 0F STA $0F89,x ; Put in Pipeline - Source Address ($4302) $80/9FA8 E2 20 SEP #$20 $80/9FAA 68 PLA $80/9FAB 9D 0A 11 STA $110A,x ; Put in Pipeline - Source Bank ($4304) $80/9FAE A5 0E LDA $0E $80/9FB0 9D 09 11 STA $1109,x ; Put in Pipeline - VRAM Settings ($2115) $80/9FB3 EE C7 0E INC $0EC7 ; Increment Number of occupied Pipeline Slots $80/9FB6 60 RTS
$80/9FB7 Animation VRAM DMA
This subroutine is for small DMAs to the VRAM; it is used for updating Sprite Tiles (for moving animations or animated Rhombs, for example).
It checks if FBLANK is active (or the brightness is turned completely down) or not. If it is, it does a direct DMA to VRAM. If not, it adds it to a special Pipeline for these DMAs.
Y: VRAM Destination $2116
X: Source Address
A: Source Bank
$0C: Number of bytes
$80/9FB7 8B PHB ; Buffer Program Bank $80/9FB8 4B PHK ; Change Program Bank $80/9FB9 AB PLB $80/9FBA 48 PHA ; Buffer A (Source Bank) $80/9FBB AD 6A 05 LDA $056A ; $2100 Buffer - FBLANK / Screen Brightness $80/9FBE 10 34 BPL $34 ; [$9FF4] Branch if there's no FBLANK active $80/9FC0 68 PLA ; Put A where the coming subroutine can use it as Source Bank $80/9FC1 EB XBA $80/9FC2 9C 0C 42 STZ $420C ; Deactivate HDMA for now $80/9FC5 20 D0 9F JSR $9FD0 ; VRAM DMA $80/9FC8 AD 86 05 LDA $0586 ; Reactivate HDMA $80/9FCB 8D 0C 42 STA $420C $80/9FCE 80 54 BRA $54 ; [$A024] CLC, PLB, RTL
$80/9FD0 VRAM DMA
Y: VRAM Destination $2116
X: Source Address
B (hidden 8bit of A): Source Bank
$0C: Number of bytes
$80/9FD0 A9 01 LDA #$01 ; DMA Transfer style $80/9FD2 8D 00 43 STA $4300 $80/9FD5 A9 18 LDA #$18 ; DMA Destination: $2118 VRAM $80/9FD7 8D 01 43 STA $4301 $80/9FDA EB XBA ; Source Bank is in the hidden 8 bit part of Accumulator $80/9FDB 8C 16 21 STY $2116 ; Y: VRAM Destination $80/9FDE 8E 02 43 STX $4302 ; X: Source Address $80/9FE1 8D 04 43 STA $4304 ; Source Bank $80/9FE4 A6 0C LDX $0C ; Number of Bytes to transfer $80/9FE6 8E 05 43 STX $4305 $80/9FE9 A9 80 LDA #$80 ; VRAM transfer settings $80/9FEB 8D 15 21 STA $2115 $80/9FEE A9 01 LDA #$01 ; Activate DMA $80/9FF0 8D 0B 42 STA $420B $80/9FF3 60 RTS
$80/9FF4 Add Entry to Animation VRAM DMA Pipeline
X contains the DMA Source Address
Y contains the VRAM Destination
$0C contains the Number of Bytes to transfer
$80/9FF4 AD C9 11 LDA $11C9 ; Load Number of the next free Animation VRAM DMA slot $80/9FF7 1A INC A ; Increment by one $80/9FF8 29 1F AND #$1F ; Reset if it surpassed #$1F (circular buffer) $80/9FFA CD CA 11 CMP $11CA ; Is it the same as Number of the first used Animation VRAM DMA slot $80/9FFD F0 28 BEQ $28 ; [$A027] Exit $80/9FFF 7B TDC ; Clear 16-bit A $80/A000 AD C9 11 LDA $11C9 ; Load Number of the next free Animation VRAM DMA slot $80/A003 C2 21 REP #$21 ; 16-bit A, Clear Carry $80/A005 DA PHX ; Push DMA Source Address on Stack $80/A006 0A ASL A ; Multiply Number of Animation VRAM DMAs by 2 $80/A007 AA TAX ; Transfer in X to use it as a store Index $80/A008 98 TYA ; Transfer VRAM Destination in A $80/A009 9D C9 10 STA $10C9,x ; Store it in Animation VRAM DMA Pipieline $80/A00C A5 0C LDA $0C ; Number of Bytes to transfer $80/A00E 9D 49 0F STA $0F49,x ; Store it in Animation VRAM DMA Pipieline $80/A011 68 PLA ; Pull DMA Source Address from Stack $80/A012 9D 09 10 STA $1009,x ; Store it in Animation VRAM DMA Pipieline $80/A015 E2 20 SEP #$20 ; 8-bit A $80/A017 68 PLA ; Pull Source Bank from Stack (Pushed at $80/9FBA) $80/A018 9D 8A 11 STA $118A,x ; Store it in Animation VRAM DMA Pipieline $80/A01B AD C9 11 LDA $11C9 ; Load Number of the next free Animation VRAM DMA slot $80/A01E 1A INC A ; Increment it $80/A01F 29 1F AND #$1F ; #$1F = Limit of Animation VRAM DMAs in Pipeline $80/A021 8D C9 11 STA $11C9 ; Store back Number of the next free Animation VRAM DMA slot $80/A024 18 CLC $80/A025 AB PLB ; Pull Original Data Bank Register $80/A026 6B RTL
$80/A0E4 Add Entry to the VRAM Read DMA Pipeline
This adds an entry to the VRAM Read DMA Pipeline.
X contains the Number of Bytes to transfer
Y contains the VRAM Address from where to load
$80/A0E4 8B PHB ; Buffer Data Bank Register on Stack $80/A0E5 4B PHK ; Set Data Bank Register to $80 $80/A0E6 AB PLB $80/A0E7 DA PHX ; Push Number of Bytes to transfer on Stack $80/A0E8 7B TDC ; Clear 16-bit A $80/A0E9 AD CE 11 LDA $11CE ; Load Number of outstanding VRAM Read DMAs $80/A0EC C9 10 CMP #$10 ; Look if the maximum of outstanding DMAs is reached $80/A0EE B0 15 BCS $15 ; [$A105] Exit if it is $80/A0F0 0A ASL A ; Multiply by 2 and use it as Store Index (each entry is 2 bytes in size) $80/A0F1 AA TAX $80/A0F2 C2 20 REP #$20 ; 16-bit A $80/A0F4 98 TYA ; Transfer the VRAM Address from where to load in A $80/A0F5 9D D0 11 STA $11D0,x ; Store VRAM Address from where to load in the Pipeline $80/A0F8 68 PLA ; Pull Number of Bytes to transfer from Stack $80/A0F9 9D F0 11 STA $11F0,x ; Store Number of Bytes to transfer in the Pipeline $80/A0FC AA TAX ; Transfer Number of Bytes to transfer back in X $80/A0FD E2 20 SEP #$20 ; Set A back to 8-bit $80/A0FF EE CE 11 INC $11CE ; Increment Number of Read DMAs to do $80/A102 9C CB 11 STZ $11CB ; Enable VRAM Read DMAs $80/A105 AB PLB ; Pull Original Data Bank Register $80/A106 6B RTL
$80/A127 Long Jump to Activate NMI and Auto-Joypad Read
$80/A127 8B PHB ; Buffer Data Bank Register on Stack $80/A128 4B PHK ; Set Bank Register as Data Bank Register $80/A129 AB PLB $80/A12A 20 2F A1 JSR $A12F ; Activate NMI and Auto-Joypad Read $80/A12D AB PLB ; Pull Original Data Bank Register $80/A12E 6B RTL
$80/A12F Activate NMI and Auto-Joypad Read
$80/A12F AD 10 42 LDA $4210 ; Load (and thus, remove) the NMI Flag $80/A132 A9 81 LDA #$81 ; Activate NMI and Auto-Joypad Read $80/A134 8D 00 42 STA $4200 $80/A137 0C AF 05 TSB $05AF ; Update Buffer accordingly $80/A13A 60 RTS
$80/A14A Long Jump to Deactivate NMI, Auto-Joypad and HDMAs
$80/A14A 8B PHB ; Buffer Data Bank Register on Stack $80/A14B 4B PHK ; Set Bank Register as Data Bank Register $80/A14C AB PLB $80/A14D 20 52 A1 JSR $A152 ; Jump to Deactivation of NMI, Auto-Joypad & HDMAs $80/A150 AB PLB ; Pull Original Data Bank Register $80/A151 6B RTL
$80/A152 Deactivate NMI, Auto-Joypad and HDMAs
$80/A152 9C 00 42 STZ $4200 ; Deactivate NMI / Auto-Joypad $80/A155 9C AF 05 STZ $05AF ; Backup for $4200? $80/A158 9C 0C 42 STZ $420C ; De-activate HDMAs $80/A15B 9C B0 05 STZ $05B0 ; Backup for $420C? $80/A15E 9C 86 05 STZ $0586 ; Backup for $420C? $80/A161 60 RTS
$80/A162 Long Jump to Enable VBLANK IRQ
$80/A162 8B PHB ; Buffer Data Bank Register on Stack $80/A163 4B PHK ; Set Bank Register as Data Bank Register $80/A164 AB PLB $80/A165 20 6A A1 JSR $A16A ; Enable VBLANK IRQ $80/A168 AB PLB ; Pull Original Data Bank Register $80/A169 6B RTL
$80/A16A Enable VBLANK IRQ
$80/A16A A9 20 LDA #$20 $80/A16C 0C AF 05 TSB $05AF $80/A16F 60 RTS
$80/A170 Long Jump to Disable IRQ
$80/A170 8B PHB ; Buffer Data Bank Register on Stack $80/A171 4B PHK ; Set Bank Register as Data Bank Register $80/A172 AB PLB $80/A173 20 78 A1 JSR $A178 ; Disable IRQ $80/A176 AB PLB ; Pull Original Data Bank Register $80/A177 6B RTL
$80/A178 Disable IRQ
$80/A178 A9 30 LDA #$30 ; TRB removes the set bits in the Accumulator from... $80/A17A 1C AF 05 TRB $05AF ; ... the value in the memory address ($05AF = $4200 Buffer) $80/A17D 60 RTS
$80/A18A Change Bank, wait for NMI and execute code built in WRAM
$80/A18A 8B PHB ; Buffer Data Bank Register on Stack $80/A18B 4B PHK ; Set Data Bank to $80 $80/A18C AB PLB $80/A18D 20 92 A1 JSR $A192 ; Wait for NMI and execute code built in WRAM $80/A190 AB PLB ; Restore Data Bank $80/A191 6B RTL
$80/A192 Wait for NMI and execute code built in WRAM
$80/A192 A9 80 LDA #$80 ; ??? (Sets bit 7 in $05BD) $80/A194 1C BD 05 TRB $05BD $80/A197 AD B9 05 LDA $05B9 ; ??? (Load Framecounter?) $80/A19A CD B9 05 CMP $05B9 ; Wait for the next NMI $80/A19D F0 FB BEQ $FB ; [$A19A]
After this, the next subroutine gets executed, too.
$80/A19F Execute code built in WRAM
$80/A19F A9 80 LDA #$80 ; ??? (Sets bit 7 in $05BD) $80/A1A1 0C BD 05 TSB $05BD $80/A1A4 22 D9 05 00 JSL $0005D9 ; Jump and execute the code built in WRAM $80/A1A8 60 RTS
$80/A1B6 Write Executable Code in WRAM
This Subroutine writes executable Code in WRAM, starting at $05D9.
It writes 22 E4 A1 80 ("JSL $80A1E4") five times one after another with a final $6B ("RTL").
$80/A1B6 8B PHB ; Buffer Data Bank Register on Stack $80/A1B7 F4 00 00 PEA $0000 ; Set Data Bank Register to $00 $80/A1BA AB PLB $80/A1BB AB PLB $80/A1BC A2 D9 05 LDX #$05D9 ; Start writing at $0005D9 $80/A1BF A0 05 00 LDY #$0005 ; ??? (Sets up some counter) $80/A1C2 A9 22 LDA #$22 ; #$22 = "JSL" $80/A1C4 9D 00 00 STA $0000,x ; Store in WRAM $80/A1C7 C2 20 REP #$20 $80/A1C9 A9 E4 A1 LDA #$A1E4 ; Store the Address $80/A1CC 9D 01 00 STA $0001,x ; Store in WRAM $80/A1CF E2 20 SEP #$20 $80/A1D1 A9 80 LDA #$80 ; Store the Bank-part of the Address $80/A1D3 9D 03 00 STA $0003,x ; Store in WRAM $80/A1D6 E8 INX ; Increment the Store Index $80/A1D7 E8 INX $80/A1D8 E8 INX $80/A1D9 E8 INX $80/A1DA 88 DEY ; Decrement loop counter $80/A1DB D0 E5 BNE $E5 ; [$A1C2] $80/A1DD A9 6B LDA #$6B ; Store the final #$6B (RTL) $80/A1DF 9D 00 00 STA $0000,x $80/A1E2 AB PLB ; Pull Original Data Bank Register $80/A1E3 6B RTL
$80/A1E4 RTL
$80/A19F can jump here (via $0005D9). A standard "do nothing, just exit right away"
$80/A1E4 6B RTL
$80/A405 Long Jump to the Tilemap Rectangle Writer
If this subroutine should be used while the program pointer is currently on a different bank
$80/A405 20 09 A4 JSR $A409 ; See below $80/A408 6B RTL
$80/A409 Tilemap Rectangle Writer
This subroutine transfers a line of tilemap entries into a rectangle inside the tilemap buffer.
$00 contains the rectangle's number of columns
$01 is used as counter for the current column
$02 contains the rectangle's number of rows
$03 is used as counter for the current row
X contains the Index to the Load Address (the Bank has to be adjusted before this subroutine is called)
Y Contains the Index where to write - the rest of the write address has to be set up in $20-$22
$80/A409 A5 02 LDA $02 ; Copy Row/Column number into counter registers that can be decremented $80/A40B 85 03 STA $03 $80/A40D A5 00 LDA $00 $80/A40F 85 01 STA $01 $80/A411 5A PHY ; Push the write index on Stack (the starting point of a new line of the rectangle) $80/A412 C2 20 REP #$20 $80/A414 BD 00 00 LDA $0000,x ; Read Byte $80/A417 C9 FF FF CMP #$FFFF ; If in the read data is a #$FFFF, it does not overwrite that tile $80/A41A F0 02 BEQ $02 ; [$A41E] Leave out the write command if $80/A41C 97 20 STA [$20],y ; Write into the Tilemap Buffer $80/A41E E2 20 SEP #$20 $80/A420 E8 INX ; Increment Read & Write Index $80/A421 E8 INX $80/A422 C8 INY $80/A423 C8 INY $80/A424 C6 01 DEC $01 ; Decrement column/(=tile) counter $80/A426 D0 EA BNE $EA ; [$A412] Loop if not all tiles in that row are done yet $80/A428 C2 21 REP #$21 ; 16-bit A + Clear Carry $80/A42A 68 PLA ; Pull the starting point of the rectangle's new line from stack $80/A42B 69 40 00 ADC #$0040 ; Add #$40 - move one line down $80/A42E A8 TAY ; Transfer new starting point into Y (so it can be used + Pushed on stack again) $80/A42F E2 20 SEP #$20 $80/A431 C6 03 DEC $03 ; Decrement Row Counter $80/A433 D0 D8 BNE $D8 ; [$A40D] Loop if not all rows are done yet $80/A435 60 RTS
$80/A460 ?
$80/A460 8B PHB ; Buffer Data Bank on Stack $80/A461 4B PHK ; Set Data Bank to $80 $80/A462 AB PLB $80/A463 22 09 F6 82 JSL $82F609[$82:F609] A:0002 X:3300 Y:FFFE P:eNvMxdizC $80/A467 A0 00 07 LDY #$0700 A:1600 X:0800 Y:0000 P:envMxdiZc $80/A46A 84 0C STY $0C [$00:000C] A:1600 X:0800 Y:0700 P:envMxdizc $80/A46C A0 00 54 LDY #$5400 A:1600 X:0800 Y:0700 P:envMxdizc $80/A46F A2 00 E0 LDX #$E000 A:1600 X:0800 Y:5400 P:envMxdizc $80/A472 A9 7F LDA #$7F A:1600 X:E000 Y:5400 P:eNvMxdizc $80/A474 22 2A A0 80 JSL $80A02A[$80:A02A] A:167F X:E000 Y:5400 P:envMxdizc $80/A478 A9 54 LDA #$54 A:E080 X:E000 Y:5400 P:eNvMxdizc $80/A47A 8D 8B 05 STA $058B [$80:058B] A:E054 X:E000 Y:5400 P:envMxdizc $80/A47D A0 60 B0 LDY #$B060 A:E054 X:E000 Y:5400 P:envMxdizc $80/A480 8C 00 17 STY $1700 [$80:1700] A:E054 X:E000 Y:B060 P:eNvMxdizc $80/A483 A9 08 LDA #$08 A:E054 X:E000 Y:B060 P:eNvMxdizc $80/A485 04 A2 TSB $A2 [$00:00A2] A:E008 X:E000 Y:B060 P:envMxdizc $80/A487 A2 00 00 LDX #$0000 A:E008 X:E000 Y:B060 P:envMxdiZc $80/A48A 8E 91 05 STX $0591 [$80:0591] A:E008 X:0000 Y:B060 P:envMxdiZc $80/A48D 8E 93 05 STX $0593 [$80:0593] A:E008 X:0000 Y:B060 P:envMxdiZc $80/A490 AB PLB ; Restore Data Bank from Stack $80/A491 6B RTL
$80/A492 ?
"This line could be removed?": I'm not sure if it is necessary to change the Data Bank here.
$80/A492 8B PHB ; This line could be removed? $80/A493 4B PHK ; This line could be removed? $80/A494 AB PLB ; This line could be removed? $80/A495 A9 71 LDA #$71 ; BG1 Tilemap at $7000 in VRAM, V-Mirror $80/A497 8D 8B 05 STA $058B $80/A49A AE FE 16 LDX $16FE [$80:16FE] A:0071 X:3919 Y:0004 P:envMxdizc $80/A49D 8E 00 17 STX $1700 [$80:1700] A:0071 X:B020 Y:0004 P:eNvMxdizc $80/A4A0 A9 08 LDA #$08 A:0071 X:B020 Y:0004 P:eNvMxdizc $80/A4A2 14 A2 TRB $A2 [$00:00A2] A:0008 X:B020 Y:0004 P:envMxdizc $80/A4A4 AE 95 05 LDX $0595 ; Set BG2 X Scroll to BG1 X Scroll $80/A4A7 8E 91 05 STX $0591 $80/A4AA AE 97 05 LDX $0597 ; Set BG2 Y Scroll to BG1 Y Scroll $80/A4AD 8E 93 05 STX $0593 $80/A4B0 AB PLB ; This line could be removed? $80/A4B1 6B RTL
$80/A50F Divide X by A
$80/A50F C9 00 01 CMP #$0100 ; Check if Divisor is actually 8-bit $80/A512 90 1E BCC $1E ; [$A532] Branch if it is
- code is missing here
$80/A532 8E 04 42 STX $4204 ; Set X as Dividend $80/A535 E2 20 SEP #$20 ; A = 8-bit $80/A537 8D 06 42 STA $4206 ; Set A as Divisor / START CALCULATION $80/A53A C2 20 REP #$20 ; A = 16-bit $80/A53C 0B PHD ; Waste time till the result is there $80/A53D 2B PLD $80/A53E EA NOP $80/A53F EA NOP $80/A540 AD 14 42 LDA $4214 ; Load the 16-bit result in A $80/A543 60 RTS
$80/A544 LONG JUMP: Multiply $00/1 and $04/5
$80/A544 8B PHB ; Buffer Data Bank on Stack $80/A545 4B PHK ; Set Data Bank to $80 $80/A546 AB PLB $80/A547 20 4C A5 JSR $A54C ; Multiply $00/1 and $04/5 $80/A54A AB PLB ; Restore Data Bank from Stack $80/A54B 6B RTL
$80/A54C Multiply $00/1 and $04/5
This multiplies two 16-bit numbers in $00/1 and $04/5. This multiplication is separated in four 8bit by 8bit multiplications:
$00 * $04 $00 * $05 $01 * $04 $01 * $05
The result will be stored $00-3.
X/Y don't get changed, $04/5 don't get changed.
$80/A54C DA PHX ; Buffer X on Stack $80/A54D A5 00 LDA $00 ; Load $00/1 in 16-bit A $80/A54F E2 20 SEP #$20 ; 8-bit A $80/A551 8D 02 42 STA $4202 ; Store in Multiplicand Register $80/A554 A5 04 LDA $04 ; Store $04 in second Multiplicand Register $80/A556 8D 03 42 STA $4203 ; FIRST MULTIPLICATION: $00 * $04 $80/A559 64 02 STZ $02 ; Clear Result High Bytes $80/A55B 64 03 STZ $03 $80/A55D A5 05 LDA $05 ; Load $05 (for second Multiplication) $80/A55F AE 16 42 LDX $4216 ; Load 1st Multiplication 16-bit Result $80/A562 8D 03 42 STA $4203 ; SECOND MULTIPLICATION: $00 * $05 $80/A565 86 00 STX $00 ; Store first result in the Result Low Byte Registers $80/A567 EB XBA ; Exchange A and B (A contains now the byte from Original $01) $80/A568 EA NOP $80/A569 AE 16 42 LDX $4216 ; Load 2nd Multiplication 16-bit Result $80/A56C 8D 02 42 STA $4202 ; Store Original $01 in Multiplicand Register $80/A56F A5 04 LDA $04 ; Store $04 in second Multiplicand Register $80/A571 8D 03 42 STA $4203 ; THIRD MULTIPLICATION: $01 * $04 $80/A574 C2 21 REP #$21 ; 16-bit A, Clear Carry $80/A576 8A TXA ; Transfer 2nd Result in A $80/A577 65 01 ADC $01 ; Add it to the 1st Result... $80/A579 85 01 STA $01 ; ... and store it $80/A57B E2 20 SEP #$20 ; 8-bit A $80/A57D A5 05 LDA $05 ; Load $05 for fourth Multiplication $80/A57F AE 16 42 LDX $4216 ; Load 3rd Multiplication 16-bit Result $80/A582 8D 03 42 STA $4203 ; FOURTH MULTIPLICATION: $01 * $05 $80/A585 C2 21 REP #$21 ; 16-bit A, Clear Carry $80/A587 8A TXA ; Transfer 3rd Result in A $80/A588 65 01 ADC $01 ; Add it to the 1st & 2nd Result... $80/A58A 85 01 STA $01 ; ... and store it $80/A58C E2 20 SEP #$20 ; 8-bit A $80/A58E 90 02 BCC $02 ; [$A592] Branch if there was no Carry from the last Addition
- Code is missing here
$80/A592 C2 21 REP #$21 ; 16-bit A, Clear Carry $80/A594 AD 16 42 LDA $4216 ; Load 4th Multiplication 16-bit Result $80/A597 65 02 ADC $02 ; Add it to the other Results... $80/A599 85 02 STA $02 ; ... and store it $80/A59B FA PLX ; Restore X from Stack $80/A59C 60 RTS
$80/A59D Multiply $04-7 and $00-3
This is executed with 16-bit A.
This subroutine multiplies two 32-bit numbers (in $00-$03 and $04-$07) and stores the result in $04-$0B.
It does so by using four times the subroutine that calculates 32-bit results from multiplications of two 16-bit values. These four multiplications of partial values are in this order:
$06/7 * $02/3 $04/5 * $02/3 $06/7 * $00/1 $04/5 * $00/1
It begins with the highest bytes, so it can replace the values in $04-$07.
$80/A59D 8B PHB ; Buffer Data Bank Register on Stack $80/A59E 4B PHK ; Set Data Bank Register to $80 $80/A59F AB PLB $80/A5A0 DA PHX ; Buffer X and Y on Stack $80/A5A1 5A PHY $80/A5A2 D4 00 PEI ($00) ; Buffer $00/1 on Stack $80/A5A4 A6 04 LDX $04 [$00:0004] A:0000 X:000C Y:0001 P:eNvmxdizc $80/A5A6 A4 06 LDY $06 [$00:0006] A:0000 X:0003 Y:0001 P:envmxdizc $80/A5A8 A5 02 LDA $02 [$00:0002] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5AA 85 04 STA $04 [$00:0004] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5AC 84 00 STY $00 [$00:0000] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5AE 20 4C A5 JSR $A54C ; Multiply $00/1 and $04/5 $80/A5B1 A5 00 LDA $00 [$00:0000] A:0000 X:0003 Y:0000 P:envmxdizc $80/A5B3 85 08 STA $08 [$00:0008] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5B5 A5 02 LDA $02 [$00:0002] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5B7 85 0A STA $0A [$00:000A] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5B9 86 00 STX $00 [$00:0000] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5BB 20 4C A5 JSR $A54C ; Multiply $00/1 and $04/5 $80/A5BE A5 00 LDA $00 [$00:0000] A:0000 X:0003 Y:0000 P:envmxdizc $80/A5C0 85 06 STA $06 [$00:0006] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5C2 A5 02 LDA $02 [$00:0002] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5C4 18 CLC A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5C5 65 08 ADC $08 [$00:0008] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5C7 85 08 STA $08 [$00:0008] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5C9 7B TDC A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5CA 65 0A ADC $0A [$00:000A] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5CC 85 0A STA $0A [$00:000A] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5CE 68 PLA A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5CF 85 04 STA $04 [$00:0004] A:0009 X:0003 Y:0000 P:envmxdizc $80/A5D1 84 00 STY $00 [$00:0000] A:0009 X:0003 Y:0000 P:envmxdizc $80/A5D3 20 4C A5 JSR $A54C ; Multiply $00/1 and $04/5 $80/A5D6 A5 00 LDA $00 [$00:0000] A:0000 X:0003 Y:0000 P:envmxdizc $80/A5D8 18 CLC A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5D9 65 06 ADC $06 [$00:0006] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5DB 85 06 STA $06 [$00:0006] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5DD A5 02 LDA $02 [$00:0002] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5DF 65 08 ADC $08 [$00:0008] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5E1 85 08 STA $08 [$00:0008] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5E3 7B TDC A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5E4 65 0A ADC $0A [$00:000A] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5E6 85 0A STA $0A [$00:000A] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5E8 86 00 STX $00 [$00:0000] A:0000 X:0003 Y:0000 P:envmxdiZc $80/A5EA 20 4C A5 JSR $A54C ; Multiply $00/1 and $04/5 $80/A5ED A5 00 LDA $00 [$00:0000] A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A5EF 85 04 STA $04 [$00:0004] A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A5F1 A5 02 LDA $02 [$00:0002] A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A5F3 18 CLC A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A5F4 65 06 ADC $06 [$00:0006] A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A5F6 85 06 STA $06 [$00:0006] A:0654 X:0000 Y:00B4 P:envmxdizc $80/A5F8 7B TDC A:0654 X:0000 Y:00B4 P:envmxdizc $80/A5F9 65 08 ADC $08 [$00:0008] A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A5FB 85 08 STA $08 [$00:0008] A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A5FD 7B TDC A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A5FE 65 0A ADC $0A [$00:000A] A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A600 85 0A STA $0A [$00:000A] A:0000 X:0000 Y:00B4 P:envmxdiZc $80/A602 7A PLY ; Restore Original X and Y from Stack $80/A603 FA PLX $80/A604 AB PLB ; Restore Data Bank Register from Stack $80/A605 60 RTS
$80/A606 ?
$80/A606 8B PHB ; Buffer Data Bank Register on Stack $80/A607 4B PHK ; Set Data Bank Register to $80 $80/A608 AB PLB $80/A609 20 0E A6 JSR $A60E ; ??? $80/A60C AB PLB ; Restore Data Bank Register from Stack $80/A60D 6B RTL
$80/A60E ?
NOTES:
A60E: "Case decider" A61A: $00!=0 $02 =0 $08!=0 Setup and Jump to 39 A624: $00 =? $02!=0 $08!=0 Do this and then 39 A639: $00!=0 $02 =0 $08!=0 A648: $00 =? $02 =? $08 =0 ? A652: Exit
$80/A60E A5 08 LDA $08 [$00:0008] A:00C0 X:000C Y:0001 P:envmxdizc $80/A610 F0 36 BEQ $36 [$A648] A:00C0 X:000C Y:0001 P:envmxdizc $80/A612 A5 02 LDA $02 [$00:0002] A:00C0 X:000C Y:0001 P:envmxdizc $80/A614 D0 0E BNE $0E [$A624] A:0060 X:000C Y:0001 P:envmxdizc $80/A616 A5 00 LDA $00 [$00:0000] A:0000 X:3300 Y:0014 P:envmxdiZC $80/A618 F0 38 BEQ $38 [$A652] A:3600 X:3300 Y:0014 P:envmxdizC $80/A61A A9 01 00 LDA #$0001 ; Setup loop counters in $04/5 and $06/7 $80/A61D 85 04 STA $04 ; ($04/5 gets ROLed at $80/A642, so: 16 loops) $80/A61F 64 06 STZ $06 ; ($06/7 gets ROLed at $80/A635, so: 16 loops) $80/A621 7B TDC ; Clear 16-bit A $80/A622 80 15 BRA $15 [$A639] A:0000 X:3300 Y:0014 P:envmxdiZC $80/A624 A9 01 00 LDA #$0001 ; Setup loop counters in $04/5 and $06/7 $80/A627 85 04 STA $04 ; ($04/5 gets ROLed at $80/A642, so: 16 loops) $80/A629 85 06 STA $06 ; ($06/7 gets ROLed at $80/A635, so: 16 loops) $80/A62B 7B TDC ; Clear 16-bit A $80/A62C 06 02 ASL $02 [$00:0002] A:0000 X:000C Y:0001 P:envmxdiZc $80/A62E 2A ROL A A:0000 X:000C Y:0001 P:envmxdizc $80/A62F C5 08 CMP $08 [$00:0008] A:0000 X:000C Y:0001 P:envmxdiZc $80/A631 90 02 BCC $02 [$A635] A:0000 X:000C Y:0001 P:eNvmxdizc
- Code is missing here
$80/A635 26 06 ROL $06 ; ROL Loop counter $80/A637 90 F3 BCC $F3 [$A62C] A:0000 X:000C Y:0001 P:envmxdizc $80/A639 06 00 ASL $00 ; Roll MSB out of $00 in Carry $80/A63B 2A ROL A ; Put Carry in A $80/A63C C5 08 CMP $08 [$00:0008] A:00C0 X:000C Y:0001 P:envmxdizc $80/A63E 90 02 BCC $02 ; [$A642] A:00C0 X:000C Y:0001 P:envmxdiZC $80/A640 E5 08 SBC $08 [$00:0008] A:00C0 X:000C Y:0001 P:envmxdiZC $80/A642 26 04 ROL $04 ; ROL Loop counter $80/A644 90 F3 BCC $F3 ; [$A639] Loop if Exit-Flag was not ROLed out of $04/05 $80/A646 80 0F BRA $0F ; [$A657] Else, exit
- Code is missing here
$80/A652 64 04 STZ $04 ; Clear Loop Counters $80/A654 64 06 STZ $06 $80/A656 7B TDC ; Clear 16-bit A $80/A657 60 RTS
$80/A65C ?
$80/A65C DA PHX ; Buffer X and Y on Stack $80/A65D 5A PHY $80/A65E A9 01 00 LDA #$0001 ; Setup "Roll Counters" for sixteen loops $80/A661 85 10 STA $10 $80/A663 85 12 STA $12 $80/A665 85 14 STA $14 $80/A667 85 16 STA $16 $80/A669 A0 00 00 LDY #$0000 A:0001 X:0000 Y:0000 P:envmxdizC $80/A66C 06 06 ASL $06 [$00:0006] A:0001 X:0000 Y:0000 P:envmxdiZC $80/A66E 98 TYA A:0001 X:0000 Y:0000 P:envmxdiZc $80/A66F 2A ROL A A:0000 X:0000 Y:0000 P:envmxdiZc $80/A670 A8 TAY A:0000 X:0000 Y:0000 P:envmxdiZc $80/A671 38 SEC A:0000 X:0000 Y:0000 P:envmxdiZc $80/A672 E5 08 SBC $08 [$00:0008] A:0000 X:0000 Y:0000 P:envmxdiZC $80/A674 AA TAX A:0000 X:0000 Y:0000 P:envmxdiZC $80/A675 7B TDC A:0000 X:0000 Y:0000 P:envmxdiZC $80/A676 E5 0A SBC $0A [$00:000A] A:0000 X:0000 Y:0000 P:envmxdiZC $80/A678 90 01 BCC $01 [$A67B] A:FEC0 X:0000 Y:0000 P:eNvmxdizc
- code is missing here
$80/A67B 26 16 ROL $16 ; "Increment" Counter $80/A67D 90 ED BCC $ED ; [$A66C] Loop for sixteen times $80/A67F 06 04 ASL $04 [$00:0004] A:FEC0 X:0000 Y:0000 P:envmxdiZC $80/A681 98 TYA A:FEC0 X:0000 Y:0000 P:envmxdizc $80/A682 2A ROL A A:0000 X:0000 Y:0000 P:envmxdiZc $80/A683 A8 TAY A:0000 X:0000 Y:0000 P:envmxdiZc $80/A684 26 06 ROL $06 [$00:0006] A:0000 X:0000 Y:0000 P:envmxdiZc $80/A686 38 SEC A:0000 X:0000 Y:0000 P:envmxdiZc $80/A687 E5 08 SBC $08 [$00:0008] A:0000 X:0000 Y:0000 P:envmxdiZC $80/A689 AA TAX A:0000 X:0000 Y:0000 P:envmxdiZC $80/A68A A5 06 LDA $06 [$00:0006] A:0000 X:0000 Y:0000 P:envmxdiZC $80/A68C E5 0A SBC $0A [$00:000A] A:0000 X:0000 Y:0000 P:envmxdiZC $80/A68E 90 03 BCC $03 [$A693] A:FEC0 X:0000 Y:0000 P:eNvmxdizc
- code is missing here
$80/A693 26 14 ROL $14 ; "Increment" Counter $80/A695 90 E8 BCC $E8 ; [$A67F] Loop for sixteen times $80/A697 06 02 ASL $02 [$00:0002] A:FEC0 X:0030 Y:0030 P:envmxdiZC $80/A699 98 TYA A:FEC0 X:0030 Y:0030 P:envmxdiZc $80/A69A 2A ROL A A:0030 X:0030 Y:0030 P:envmxdizc $80/A69B A8 TAY A:0060 X:0030 Y:0030 P:envmxdizc $80/A69C 26 06 ROL $06 [$00:0006] A:0060 X:0030 Y:0060 P:envmxdizc $80/A69E 38 SEC A:0060 X:0030 Y:0060 P:envmxdiZc $80/A69F E5 08 SBC $08 [$00:0008] A:0060 X:0030 Y:0060 P:envmxdiZC $80/A6A1 AA TAX A:0060 X:0030 Y:0060 P:envmxdizC $80/A6A2 A5 06 LDA $06 [$00:0006] A:0060 X:0060 Y:0060 P:envmxdizC $80/A6A4 E5 0A SBC $0A [$00:000A] A:0000 X:0060 Y:0060 P:envmxdiZC $80/A6A6 90 03 BCC $03 [$A6AB] A:FEC0 X:0060 Y:0060 P:eNvmxdizc $80/A6A8 85 06 STA $06 [$00:0006] A:0180 X:0000 Y:0000 P:envmxdizC $80/A6AA 9B TXY A:0180 X:0000 Y:0000 P:envmxdizC $80/A6AB 26 12 ROL $12 ; "Increment" Counter $80/A6AD 90 E8 BCC $E8 ; [$A697] Loop for sixteen times $80/A6AF 06 00 ASL $00 [$00:0000] A:FEF0 X:0000 Y:0000 P:envmxdiZC $80/A6B1 98 TYA A:FEF0 X:0000 Y:0000 P:envmxdiZc $80/A6B2 2A ROL A A:0000 X:0000 Y:0000 P:envmxdiZc $80/A6B3 A8 TAY A:0000 X:0000 Y:0000 P:envmxdiZc $80/A6B4 26 06 ROL $06 [$00:0006] A:0000 X:0000 Y:0000 P:envmxdiZc $80/A6B6 38 SEC A:0000 X:0000 Y:0000 P:envmxdizc $80/A6B7 E5 08 SBC $08 [$00:0008] A:0000 X:0000 Y:0000 P:envmxdizC $80/A6B9 AA TAX A:0000 X:0000 Y:0000 P:envmxdiZC $80/A6BA A5 06 LDA $06 [$00:0006] A:0000 X:0000 Y:0000 P:envmxdiZC $80/A6BC E5 0A SBC $0A [$00:000A] A:0060 X:0000 Y:0000 P:envmxdizC $80/A6BE 90 03 BCC $03 [$A6C3] A:FF20 X:0000 Y:0000 P:eNvmxdizc $80/A6C0 85 06 STA $06 [$00:0006] A:0040 X:0000 Y:0000 P:envmxdizC $80/A6C2 9B TXY A:0040 X:0000 Y:0000 P:envmxdizC $80/A6C3 26 10 ROL $10 ; "Increment" Counter $80/A6C5 90 E8 BCC $E8 ; [$A6AF] Loop for sixteen times $80/A6C7 7A PLY ; Restore Y and X from stack $80/A6C8 FA PLX $80/A6C9 60 RTS
$80/A787 ?
$80/A787 A0 00 00 LDY #$0000 A:0000 X:000C Y:0000 P:envmxdiZC $80/A78A A5 02 LDA $02 [$00:0002] A:0000 X:000C Y:0000 P:envmxdiZC $80/A78C 10 0C BPL $0C [$A79A] A:00C0 X:000C Y:0000 P:envmxdizC $80/A78E 7B TDC A:FFFF X:0004 Y:0000 P:eNvmxdizc $80/A78F 38 SEC A:0000 X:0004 Y:0000 P:envmxdiZc $80/A790 E5 00 SBC $00 [$00:0000] A:0000 X:0004 Y:0000 P:envmxdiZC $80/A792 85 00 STA $00 [$00:0000] A:0012 X:0004 Y:0000 P:envmxdizc $80/A794 7B TDC A:0012 X:0004 Y:0000 P:envmxdizc $80/A795 E5 02 SBC $02 [$00:0002] A:0000 X:0004 Y:0000 P:envmxdiZc $80/A797 85 02 STA $02 [$00:0002] A:0000 X:0004 Y:0000 P:envmxdiZc $80/A799 C8 INY A:0000 X:0004 Y:0000 P:envmxdiZc $80/A79A A5 06 LDA $06 [$00:0006] A:00C0 X:000C Y:0000 P:envmxdizC $80/A79C 10 0C BPL $0C [$A7AA] A:0000 X:000C Y:0000 P:envmxdiZC $80/A79E 7B TDC A:FFFF X:0008 Y:0000 P:eNvmxdizc $80/A79F 38 SEC A:0000 X:0008 Y:0000 P:envmxdiZc $80/A7A0 E5 04 SBC $04 [$00:0004] A:0000 X:0008 Y:0000 P:envmxdiZC $80/A7A2 85 04 STA $04 [$00:0004] A:0009 X:0008 Y:0000 P:envmxdizc $80/A7A4 7B TDC A:0009 X:0008 Y:0000 P:envmxdizc $80/A7A5 E5 06 SBC $06 [$00:0006] A:0000 X:0008 Y:0000 P:envmxdiZc $80/A7A7 85 06 STA $06 [$00:0006] A:0000 X:0008 Y:0000 P:envmxdiZc $80/A7A9 C8 INY A:0000 X:0008 Y:0000 P:envmxdiZc $80/A7AA 20 9D A5 JSR $A59D [$80:A59D] A:0000 X:000C Y:0000 P:envmxdiZC $80/A7AD 98 TYA A:0000 X:000C Y:0000 P:envmxdizc $80/A7AE 4A LSR A A:0000 X:000C Y:0000 P:envmxdiZc $80/A7AF 90 14 BCC $14 [$A7C5] A:0000 X:000C Y:0000 P:envmxdiZc $80/A7B1 7B TDC A:0000 X:0008 Y:0001 P:envmxdiZC $80/A7B2 E5 04 SBC $04 [$00:0004] A:0000 X:0008 Y:0001 P:envmxdiZC $80/A7B4 85 04 STA $04 [$00:0004] A:0000 X:0008 Y:0001 P:envmxdiZC $80/A7B6 7B TDC A:0000 X:0008 Y:0001 P:envmxdiZC $80/A7B7 E5 06 SBC $06 [$00:0006] A:0000 X:0008 Y:0001 P:envmxdiZC $80/A7B9 85 06 STA $06 [$00:0006] A:FB80 X:0008 Y:0001 P:eNvmxdizc $80/A7BB 7B TDC A:FB80 X:0008 Y:0001 P:eNvmxdizc $80/A7BC E5 08 SBC $08 [$00:0008] A:0000 X:0008 Y:0001 P:envmxdiZc $80/A7BE 85 08 STA $08 [$00:0008] A:FFFF X:0008 Y:0001 P:eNvmxdizc $80/A7C0 7B TDC A:FFFF X:0008 Y:0001 P:eNvmxdizc $80/A7C1 E5 0A SBC $0A [$00:000A] A:0000 X:0008 Y:0001 P:envmxdiZc $80/A7C3 85 0A STA $0A [$00:000A] A:FFFF X:0008 Y:0001 P:eNvmxdizc $80/A7C5 6B RTL A:0000 X:000C Y:0000 P:envmxdiZc
$80/A7C6 ?
$80/A7C6 A0 00 00 LDY #$0000 A:0030 X:0000 Y:FFFE P:envmxdizC $80/A7C9 A5 06 LDA $06 [$00:0006] A:0030 X:0000 Y:0000 P:envmxdiZC $80/A7CB 10 16 BPL $16 [$A7E3] A:0000 X:0000 Y:0000 P:envmxdiZC $80/A7CD 7B TDC A:FFFF X:0008 Y:0000 P:eNvmxdizc $80/A7CE 38 SEC A:0000 X:0008 Y:0000 P:envmxdiZc $80/A7CF E5 00 SBC $00 [$00:0000] A:0000 X:0008 Y:0000 P:envmxdiZC $80/A7D1 85 00 STA $00 [$00:0000] A:0000 X:0008 Y:0000 P:envmxdiZC $80/A7D3 7B TDC A:0000 X:0008 Y:0000 P:envmxdiZC $80/A7D4 E5 02 SBC $02 [$00:0002] A:0000 X:0008 Y:0000 P:envmxdiZC $80/A7D6 85 02 STA $02 [$00:0002] A:0000 X:0008 Y:0000 P:envmxdiZC $80/A7D8 7B TDC A:0000 X:0008 Y:0000 P:envmxdiZC $80/A7D9 E5 04 SBC $04 [$00:0004] A:0000 X:0008 Y:0000 P:envmxdiZC $80/A7DB 85 04 STA $04 [$00:0004] A:0030 X:0008 Y:0000 P:envmxdizc $80/A7DD 7B TDC A:0030 X:0008 Y:0000 P:envmxdizc $80/A7DE E5 06 SBC $06 [$00:0006] A:0000 X:0008 Y:0000 P:envmxdiZc $80/A7E0 85 06 STA $06 [$00:0006] A:0000 X:0008 Y:0000 P:envmxdiZc $80/A7E2 C8 INY A:0000 X:0008 Y:0000 P:envmxdiZc $80/A7E3 A5 0A LDA $0A [$00:000A] A:0000 X:0000 Y:0000 P:envmxdiZC $80/A7E5 10 0C BPL $0C [$A7F3] A:0140 X:0000 Y:0000 P:envmxdizC $80/A7F3 20 5C A6 JSR $A65C [$80:A65C] A:0140 X:0000 Y:0000 P:envmxdizC $80/A7F6 98 TYA A:FF40 X:0000 Y:0000 P:envmxdiZC $80/A7F7 4A LSR A A:0000 X:0000 Y:0000 P:envmxdiZC $80/A7F8 90 14 BCC $14 [$A80E] A:0000 X:0000 Y:0000 P:envmxdiZc $80/A7FA 7B TDC A:0000 X:0008 Y:0001 P:envmxdiZC $80/A7FB E5 10 SBC $10 [$00:0010] A:0000 X:0008 Y:0001 P:envmxdiZC $80/A7FD 85 10 STA $10 [$00:0010] A:A000 X:0008 Y:0001 P:eNvmxdizc $80/A7FF 7B TDC A:A000 X:0008 Y:0001 P:eNvmxdizc $80/A800 E5 12 SBC $12 [$00:0012] A:0000 X:0008 Y:0001 P:envmxdiZc $80/A802 85 12 STA $12 [$00:0012] A:FFFF X:0008 Y:0001 P:eNvmxdizc $80/A804 7B TDC A:FFFF X:0008 Y:0001 P:eNvmxdizc $80/A805 E5 14 SBC $14 [$00:0014] A:0000 X:0008 Y:0001 P:envmxdiZc $80/A807 85 14 STA $14 [$00:0014] A:FFFF X:0008 Y:0001 P:eNvmxdizc $80/A809 7B TDC A:FFFF X:0008 Y:0001 P:eNvmxdizc $80/A80A E5 16 SBC $16 [$00:0016] A:0000 X:0008 Y:0001 P:envmxdiZc $80/A80C 85 16 STA $16 [$00:0016] A:FFFF X:0008 Y:0001 P:eNvmxdizc $80/A80E 6B RTL A:0000 X:0000 Y:0000 P:envmxdiZc
$80/A80F ?
$80/A80F 5A PHY ; Buffer Y on stack $80/A810 A0 00 00 LDY #$0000 A:0140 X:0000 Y:0000 P:envmxdizC $80/A813 A5 02 LDA $02 [$00:0002] A:0140 X:0000 Y:0000 P:envmxdiZC $80/A815 10 0C BPL $0C [$A823] A:0030 X:0000 Y:0000 P:envmxdizC
- code is missing here
$80/A823 A5 08 LDA $08 [$00:0008] A:0030 X:0000 Y:0000 P:envmxdizC $80/A825 10 07 BPL $07 [$A82E] A:0140 X:0000 Y:0000 P:envmxdizC
- code is missing here
$80/A82E 20 0E A6 JSR $A60E [$80:A60E] A:0140 X:0000 Y:0000 P:envmxdizC $80/A831 98 TYA A:0080 X:0000 Y:0000 P:envmxdizC $80/A832 4A LSR A A:0000 X:0000 Y:0000 P:envmxdiZC $80/A833 90 0A BCC $0A [$A83F] A:0000 X:0000 Y:0000 P:envmxdiZc
- code is missing here
$80/A83F 7A PLY ; Restore Y from stack $80/A840 6B RTL
$80/A86F ?
$80/A86F 8B PHB ; Buffer Data Bank Register on Stack $80/A870 4B PHK ; Set Data Bank to $80 $80/A871 AB PLB $80/A872 DA PHX ; Buffer X on Stack $80/A873 D4 00 PEI ($00) ; Buffer $00-3 on Stack $80/A875 D4 02 PEI ($02) $80/A877 20 4C A5 JSR $A54C ; Multiply $00/1 and $04/5 $80/A87A 20 0E A6 JSR $A60E [$80:A60E] A:0000 X:1758 Y:000A P:envmxdizc $80/A87D FA PLX ; Restore Buffered Values of $00-3 $80/A87E 86 02 STX $02 $80/A880 FA PLX $80/A881 86 00 STX $00 $80/A883 FA PLX ; Restore Buffered Value of X $80/A884 AB PLB ; Restore Data Bank $80/A885 6B RTL
$80/A886 ?
This is executed with 16-bit A.
First, this subroutine checks if the two multiplicants in $00-3 and $04-7 are positive. if not, this subroutine turns them into positive numbers.
$80/A886 A0 00 00 LDY #$0000 A:00C0 X:000C Y:000C P:envmxdizc $80/A889 A5 02 LDA $02 ; $00-3 contain a number that gets multiplied $80/A88B 10 0C BPL $0C ; [$A899] Branch if number is positive $80/A88D 7B TDC ; Clear 16-bit A $80/A88E 38 SEC ; Set Carry for subtraction $80/A88F E5 00 SBC $00 ; Turn number positive $80/A891 85 00 STA $00 $80/A893 7B TDC $80/A894 E5 02 SBC $02 $80/A896 85 02 STA $02 $80/A898 C8 INY ; Increment Y (counter for negative numbers) $80/A899 A5 06 LDA $06 ; $04-7 contain a number that gets multiplied $80/A89B 10 0C BPL $0C ; [$A8A9] Branch if number is positive $80/A89D 7B TDC ; Clear 16-bit A $80/A89E 38 SEC ; Set Carry for subtraction $80/A89F E5 04 SBC $04 ; Turn number positive $80/A8A1 85 04 STA $04 $80/A8A3 7B TDC $80/A8A4 E5 06 SBC $06 $80/A8A6 85 06 STA $06 $80/A8A8 C8 INY ; Increment Y (counter for negative numbers) $80/A8A9 A5 0A LDA $0A [$00:000A] A:00B8 X:000C Y:0000 P:envmxdizc $80/A8AB 10 0C BPL $0C [$A8B9] A:00C0 X:000C Y:0000 P:envmxdizc
- Code is missing here
$80/A8B9 D4 08 PEI ($08) ; Buffer $08-$0B $80/A8BB D4 0A PEI ($0A) $80/A8BD 20 9D A5 JSR $A59D ; Multiply $04-7 and $00-3 $80/A8C0 A5 04 LDA $04 ; Transfer the 64-bit Multiplication Result from $04-B to $00-7 $80/A8C2 85 00 STA $00 $80/A8C4 A5 06 LDA $06 $80/A8C6 85 02 STA $02 $80/A8C8 A5 08 LDA $08 $80/A8CA 85 04 STA $04 $80/A8CC A5 0A LDA $0A $80/A8CE 85 06 STA $06 $80/A8D0 68 PLA ; Restore $08-$0B $80/A8D1 85 0A STA $0A $80/A8D3 68 PLA $80/A8D4 85 08 STA $08 $80/A8D6 20 5C A6 JSR $A65C [$80:A65C] A:0000 X:000C Y:0000 P:envmxdiZc $80/A8D9 98 TYA ; Transfer counter of negative numbers in A $80/A8DA 4A LSR A ; Check if there was one multiplicant of both was negative $80/A8DB 90 0A BCC $0A ; [$A8E7] Exit if not $80/A8DD 7B TDC A:0000 X:0004 Y:0001 P:envmxdiZC $80/A8DE E5 10 SBC $10 [$00:0010] A:0000 X:0004 Y:0001 P:envmxdiZC $80/A8E0 85 10 STA $10 [$00:0010] A:F430 X:0004 Y:0001 P:eNvmxdizc $80/A8E2 7B TDC A:F430 X:0004 Y:0001 P:eNvmxdizc $80/A8E3 E5 12 SBC $12 [$00:0012] A:0000 X:0004 Y:0001 P:envmxdiZc $80/A8E5 85 12 STA $12 [$00:0012] A:FFFF X:0004 Y:0001 P:eNvmxdizc $80/A8E7 6B RTL
$80/A8F0 Calculate the Square Number of A
The Result will be in A; A will contain a 16-bit result, but the Status Register Flags will be set for an 8-bit Accumulator.
$80/A8F0 8D 02 42 STA $4202 ; Store A as the first Multiplicand... $80/A8F3 8D 03 42 STA $4203 ; ... and as the second one, too $80/A8F6 EA NOP ; Wait for the multiplication result $80/A8F7 EA NOP $80/A8F8 EA NOP $80/A8F9 C2 20 REP #$20 ; A = 16 bit $80/A8FB AD 16 42 LDA $4216 ; Load the Result in A $80/A8FE E2 20 SEP #$20 ; A = 8 bit again $80/A900 60 RTS
$80/A901 Calculate the Square Number of 16-bit A
This subroutine calculates the Square Number of the 16-bit value in A. If A contains a really big value, the result could easily be outmax the 16-bit storage of A, so this subroutine does three calculations (Low Byte * Low Byte, High Byte * Low Byte * 2, High Byte * High Byte) and fits this all together to one big 32-bit number in registers $00-$03.
$80/A901 8B PHB ; Buffer Data Bank on Stack $80/A902 4B PHK ; Set Data Bank to $80 $80/A903 AB PLB $80/A904 DA PHX ; Buffer X on Stack $80/A905 E2 20 SEP #$20 ; 8-bit A $80/A907 8D 02 42 STA $4202 ; Calculate the Square Number of A's Low Byte $80/A90A 8D 03 42 STA $4203 $80/A90D 64 02 STZ $02 ; Clear $02/03 $80/A90F 64 03 STZ $03 $80/A911 EB XBA ; exchange the 8-bits in A $80/A912 AE 16 42 LDX $4216 ; $00 = (A's Low Byte)² $80/A915 86 00 STX $00 $80/A917 8D 03 42 STA $4203 ; Multiply the Original A High Byte with the Low byte $80/A91A AA TAX ; X = A's High Byte $80/A91B C2 20 REP #$20 ; 16-bit A $80/A91D AD 16 42 LDA $4216 ; Load the Result of High Byte * Low Byte $80/A920 0A ASL A ; Multiply it by two $80/A921 08 PHP ; Buffer Status Register (i. e. the possibly Set Carry of the ASL A) $80/A922 18 CLC ; Clear Carry for upcoming Addition $80/A923 65 01 ADC $01 ; Add the High Byte of the Result of (A's Low Byte)² $80/A925 85 01 STA $01 ; Store the result in $01/2 $80/A927 7B TDC ; Clear A $80/A928 2A ROL A ; Clear Carry $80/A929 28 PLP ; Restore Status Register (and possibly set carry) $80/A92A E2 20 SEP #$20 ; 8-bit A $80/A92C 69 00 ADC #$00 ; Transfer the Carry in A, if it was set $80/A92E 85 03 STA $03 ; Store it in $03 $80/A930 8A TXA ; A = Original High Byte $80/A931 8D 02 42 STA $4202 ; (Original High Byte)² $80/A934 8D 03 42 STA $4203 $80/A937 FA PLX ; Restore Original X $80/A938 C2 21 REP #$21 ; 16-bit A, Clear Carry $80/A93A A5 02 LDA $02 ; Load the Highest two Byte of the 32-bit Result $80/A93C 6D 16 42 ADC $4216 ; Add the Multiplication Result = (Original High Byte)² $80/A93F 85 02 STA $02 ; Store Result $80/A941 AB PLB ; Restore Data Bank $80/A942 6B RTL
$80/ABA9 ?
$80/ABA9 8B PHB ; Buffer Data Bank on Stack $80/ABAA 4B PHK ; Set Data Bank to $80 $80/ABAB AB PLB $80/ABAC DA PHX ; Buffer X and Y on Stack $80/ABAD 5A PHY $80/ABAE D4 00 PEI ($00) ; Buffer $00-7 on Stack $80/ABB0 D4 02 PEI ($02) $80/ABB2 D4 04 PEI ($04) $80/ABB4 D4 06 PEI ($06) $80/ABB6 C9 02 00 CMP #$0002 A:0024 X:003C Y:0000 P:eNvmxdizc $80/ABB9 90 31 BCC $31 ; [$ABEC] Exit if less than #$0002 $80/ABBB 48 PHA A:0024 X:003C Y:0000 P:envmxdizC $80/ABBC A0 FC FF LDY #$FFFC A:0024 X:003C Y:0000 P:envmxdizC $80/ABBF 80 03 BRA $03 [$ABC4] A:0024 X:003C Y:FFFC P:eNvmxdizC $80/ABC1 4A LSR A A:0392 X:3300 Y:FFFC P:envmxdizC $80/ABC2 4A LSR A A:01C9 X:3300 Y:FFFC P:envmxdizc $80/ABC3 C8 INY A:00E4 X:3300 Y:FFFC P:envmxdizC $80/ABC4 C9 00 01 CMP #$0100 A:0024 X:003C Y:FFFC P:eNvmxdizC $80/ABC7 B0 F8 BCS $F8 [$ABC1] A:0024 X:003C Y:FFFC P:eNvmxdizc $80/ABC9 1A INC A A:0024 X:003C Y:FFFC P:eNvmxdizc $80/ABCA 0A ASL A A:0025 X:003C Y:FFFC P:envmxdizc $80/ABCB AA TAX A:004A X:003C Y:FFFC P:envmxdizc $80/ABCC BD A7 A9 LDA $A9A7,x[$80:A9F1] A:004A X:004A Y:FFFC P:envmxdizc $80/ABCF C0 00 00 CPY #$0000 A:6152 X:004A Y:FFFC P:envmxdizc $80/ABD2 F0 04 BEQ $04 [$ABD8] A:6152 X:004A Y:FFFC P:eNvmxdizC $80/ABD4 4A LSR A A:6152 X:004A Y:FFFC P:eNvmxdizC $80/ABD5 C8 INY A:30A9 X:004A Y:FFFC P:envmxdizc $80/ABD6 D0 FC BNE $FC [$ABD4] A:30A9 X:004A Y:FFFD P:eNvmxdizc $80/ABD8 EB XBA A:0615 X:004A Y:0000 P:envmxdiZc $80/ABD9 29 FF 00 AND #$00FF A:1506 X:004A Y:0000 P:envmxdizc $80/ABDC FA PLX A:0006 X:004A Y:0000 P:envmxdizc $80/ABDD 85 06 STA $06 [$00:0006] A:0006 X:0024 Y:0000 P:envmxdizc $80/ABDF 20 0F A5 JSR $A50F ; Divide X by A, Result is in A $80/ABE2 18 CLC A:0006 X:0024 Y:0000 P:envmxdizc $80/ABE3 65 06 ADC $06 [$00:0006] A:0006 X:0024 Y:0000 P:envmxdizc $80/ABE5 4A LSR A A:000C X:0024 Y:0000 P:envmxdizc $80/ABE6 C5 06 CMP $06 [$00:0006] A:0006 X:0024 Y:0000 P:envmxdizc $80/ABE8 90 F3 BCC $F3 [$ABDD] A:0006 X:0024 Y:0000 P:envmxdiZC $80/ABEA A5 06 LDA $06 [$00:0006] A:0006 X:0024 Y:0000 P:envmxdiZC $80/ABEC 7A PLY ; Restore Buffered values of $00-7 $80/ABED 84 06 STY $06 $80/ABEF 7A PLY $80/ABF0 84 04 STY $04 $80/ABF2 7A PLY $80/ABF3 84 02 STY $02 $80/ABF5 7A PLY $80/ABF6 84 00 STY $00 $80/ABF8 7A PLY ; Restore Buffered Y $80/ABF9 FA PLX ; Restore Buffered Y $80/ABFA AB PLB ; Restore Data Bank $80/ABFB 6B RTL
$80/ABFC ?
$80/ABFC A5 02 LDA $02 [$00:0002] A:0000 X:3300 Y:0002 P:envmxdiZC $80/ABFE D0 05 BNE $05 [$AC05] A:0000 X:3300 Y:0002 P:envmxdiZC $80/AC00 A5 00 LDA $00 [$00:0000] A:0000 X:3300 Y:0002 P:envmxdiZC $80/AC02 4C A9 AB JMP $ABA9 [$80:ABA9] A:001A X:3300 Y:0002 P:envmxdizC
- code is missing here
$80/AD39 RNG?
$80/AD39 DA PHX A:0004 X:0004 Y:000A P:envMxdizc $80/AD3A 5A PHY A:0004 X:0004 Y:000A P:envMxdizc $80/AD3B 08 PHP A:0004 X:0004 Y:000A P:envMxdizc $80/AD3C E2 11 SEP #$11 A:0004 X:0004 Y:000A P:envMxdizc $80/AD3E AE 11 12 LDX $1211 [$80:1211] A:0004 X:0004 Y:000A P:envMXdizC $80/AD41 AC 10 12 LDY $1210 [$80:1210] A:0004 X:0018 Y:000A P:envMXdizC $80/AD44 BD 12 12 LDA $1212,x[$80:122A] A:0004 X:0018 Y:0030 P:envMXdizC $80/AD47 F9 12 12 SBC $1212,y[$80:1242] A:00A4 X:0018 Y:0030 P:eNvMXdizC $80/AD4A 99 12 12 STA $1212,y[$80:1242] A:0015 X:0018 Y:0030 P:envMXdizC $80/AD4D E8 INX A:0015 X:0018 Y:0030 P:envMXdizC $80/AD4E E0 37 CPX #$37 A:0015 X:0019 Y:0030 P:envMXdizC $80/AD50 D0 02 BNE $02 [$AD54] A:0015 X:0019 Y:0030 P:eNvMXdizc $80/AD54 8E 11 12 STX $1211 [$80:1211] A:0015 X:0019 Y:0030 P:eNvMXdizc $80/AD57 C8 INY A:0015 X:0019 Y:0030 P:eNvMXdizc $80/AD58 C0 37 CPY #$37 A:0015 X:0019 Y:0031 P:envMXdizc $80/AD5A D0 02 BNE $02 [$AD5E] A:0015 X:0019 Y:0031 P:eNvMXdizc $80/AD5E 8C 10 12 STY $1210 [$80:1210] A:0015 X:0019 Y:0031 P:eNvMXdizc $80/AD61 28 PLP A:0015 X:0019 Y:0031 P:eNvMXdizc $80/AD62 7A PLY A:0015 X:0019 Y:0031 P:envMxdizc $80/AD63 FA PLX A:0015 X:0019 Y:000A P:envMxdizc $80/AD64 60 RTS A:0015 X:0004 Y:000A P:envMxdizc
$80/ADCB Calculate Address in Tilemap
This seems to be about calculation of an Address in a Tilemap. You put the number of a tile's row number in A and the columns number in X, and it calculates the actual offset for it. The mathmatical formula is:
New A and New X = Old A * #$40 + Old X
$80/ADCB DA PHX ; Push the Column number on stack for now $80/ADCC C2 20 REP #$20 ; Make Accumuleta great again $80/ADCE 29 FF 00 AND #$00FF ; Remove whatever was still in the hidden 8-bit of the Accumulator $80/ADD1 EB XBA ; A * #$40 (sixty-four) $80/ADD2 4A LSR A $80/ADD3 4A LSR A $80/ADD4 63 01 ADC $01,s ; Add Column number (that is on stack) $80/ADD6 FA PLX ; Remove Column number from stack (not needed any more) $80/ADD7 AA TAX ; Replace it with the calculation's result $80/ADD8 E2 20 SEP #$20 $80/ADDA 6B RTL
$80/AEF2 Load Music?
Replacing the A5 59 ("LDA $59") at $AF03 with A9 10 ("LDA #$10"), this loaded a different song in the Title Demo and other scenes in the game.
$80/AEF2 8B PHB A:000D X:905F Y:000D P:envMxdizc $80/AEF3 4B PHK A:000D X:905F Y:000D P:envMxdizc $80/AEF4 AB PLB A:000D X:905F Y:000D P:envMxdizc $80/AEF5 85 59 STA $59 [$00:0059] A:000D X:905F Y:000D P:eNvMxdizc $80/AEF7 20 4C AF JSR $AF4C [$80:AF4C] A:000D X:905F Y:000D P:eNvMxdizc $80/AEFA 90 07 BCC $07 [$AF03] A:000D X:905F Y:000D P:envMxdizc
- code is missing here
$80/AF03 A5 59 LDA $59 [$00:0059] A:000D X:905F Y:000D P:envMxdizc $80/AF05 F0 0B BEQ $0B [$AF12] A:000D X:905F Y:000D P:envMxdizc $80/AF07 22 03 80 8F JSL $8F8003[$8F:8003] A:000D X:905F Y:000D P:envMxdizc $80/AF0B A9 01 LDA #$01 A:0002 X:33CC Y:D686 P:envMxdizc $80/AF0D 85 F5 STA $F5 [$00:00F5] A:0001 X:33CC Y:D686 P:envMxdizc $80/AF0F 20 30 AF JSR $AF30 [$80:AF30] A:0001 X:33CC Y:D686 P:envMxdizc $80/AF12 AB PLB A:0000 X:33CC Y:D686 P:envMxdiZc $80/AF13 6B RTL A:0000 X:33CC Y:D686 P:envMxdizc
$80/AF14 Load Music?
$80/AF14 8B PHB ; Buffer Data Bank on Stack $80/AF15 A9 FF LDA #$FF A:0000 X:05DD Y:0004 P:eNvMxdIzc $80/AF17 85 F5 STA $F5 [$00:00F5] A:00FF X:05DD Y:0004 P:eNvMxdIzc $80/AF19 20 30 AF JSR $AF30 [$80:AF30] A:00FF X:05DD Y:0004 P:eNvMxdIzc $80/AF1C A9 21 LDA #$21 A:0000 X:05DD Y:0004 P:envMxdIZc $80/AF1E 22 03 80 8F JSL $8F8003[$8F:8003] A:0021 X:05DD Y:0004 P:envMxdIzc $80/AF22 A9 FF LDA #$FF A:0002 X:33CC Y:9E7A P:envMxdIzc $80/AF24 85 59 STA $59 [$00:0059] A:00FF X:33CC Y:9E7A P:eNvMxdIzc $80/AF26 AB PLB ; Restore Data Bank from Stack $80/AF27 6B RTL
$80/AF28 Load Music?
$80/AF28 8B PHB ; Buffer Data Bank on Stack $80/AF29 4B PHK ; Set Data Bank to $80 $80/AF2A AB PLB $80/AF2B 20 30 AF JSR $AF30 [$80:AF30] A:A1F8 X:05DD Y:0004 P:eNvMxdIzc $80/AF2E AB PLB ; Restore Data Bank from Stack $80/AF2F 6B RTL
$80/AF30 Load Music?
$80/AF30 AD AF 05 LDA $05AF ; (Is VBlank NMI enabled?) $80/AF33 30 0A BMI $0A ; [$AF3F] Branch if it is $80/AF35 22 0C 80 8F JSL $8F800C[$8F:800C] A:A100 X:05DD Y:0004 P:envMxdIZc $80/AF39 A5 F5 LDA $F5 [$00:00F5] A:0000 X:05DD Y:0004 P:envMxdIZc $80/AF3B D0 F8 BNE $F8 [$AF35] A:00F8 X:05DD Y:0004 P:eNvMxdIzc $80/AF3D 80 04 BRA $04 ; [$AF43] Exit
- code is missing here
$80/AF43 60 RTS
$80/AF7E Actual NMI Handler
$80/AF7E C2 30 REP #$30 ; A/X/Y = 16 bit (to make sure everything is put on stack) $80/AF80 48 PHA $80/AF81 8B PHB $80/AF82 0B PHD $80/AF83 DA PHX $80/AF84 5A PHY $80/AF85 4B PHK $80/AF86 AB PLB $80/AF87 A9 00 00 LDA #$0000 $80/AF8A 5B TCD $80/AF8B E2 20 SEP #$20 $80/AF8D AD 10 42 LDA $4210 ; Remove NMI Flag $80/AF90 A9 80 LDA #$80 $80/AF92 8D 00 21 STA $2100 ; FBLANK $80/AF95 AD BD 05 LDA $05BD ; ??? $80/AF98 10 03 BPL $03 ; ??? $80/AF9A 4C D2 B0 JMP $B0D2 ; ??? $80/AF9D 20 C2 B2 JSR $B2C2 ; ???
OAM Update
$80/AFA0 AD B0 05 LDA $05B0 ; Transfer HDMA Flags $80/AFA3 8D 86 05 STA $0586 $80/AFA6 9C 0C 42 STZ $420C ; Deactivate HDMAs $80/AFA9 AD 40 05 LDA $0540 ; If $0540 is empty, don't update OAM? $80/AFAC F0 29 BEQ $29 ; [$AFD7] $80/AFAE A2 00 00 LDX #$0000 ; OAM Address $80/AFB1 8E 02 21 STX $2102 $80/AFB4 9C 04 43 STZ $4304 ; Source Bank: $00 $80/AFB7 AE 45 05 LDX $0545 $80/AFBA 8E 02 43 STX $4302 ; Source Address: $0545 $80/AFBD A9 04 LDA #$04 ; DMA Destination: $2104 (OAM) $80/AFBF 8D 01 43 STA $4301 $80/AFC2 A2 20 02 LDX #$0220 ; Transfer $220 Bytes - both OAM Tables $80/AFC5 8E 05 43 STX $4305 $80/AFC8 A9 00 LDA #$00 ; DMA Transfer settings $80/AFCA 8D 00 43 STA $4300 $80/AFCD A9 01 LDA #$01 ; Activate DMA $80/AFCF 8D 0B 42 STA $420B $80/AFD2 9C 40 05 STZ $0540 ; Clear OAM Update Flag $80/AFD5 80 03 BRA $03 ; [$AFDA] --- ??? $80/AFD7 20 01 B1 JSR $B101 ; ??? $80/AFDA 20 35 B1 JSR $B135 ; ??? $80/AFDD 20 D8 B3 JSR $B3D8 ; CGRAM Update $80/AFE0 20 2B B3 JSR $B32B ; VRAM DMA Pipeline $80/AFE3 20 7B B3 JSR $B37B ; VRAM Read DMA $80/AFE6 AD 86 05 LDA $0586 ; Reactivate HDMAs $80/AFE9 8D 0C 42 STA $420C $80/AFEC 20 6D B2 JSR $B26D ; Update Graphic Setup Registers $80/AFEF AD 6A 05 LDA $056A ; Load the (old) Screen Settings $80/AFF2 2C 12 42 BIT $4212 ; Wait for the next HBLANK to end $80/AFF5 70 FB BVS $FB ; [$AFF2] $80/AFF7 2C 12 42 BIT $4212 $80/AFFA 50 FB BVC $FB ; [$AFF7] $80/AFFC 8D 00 21 STA $2100 ; Update Screen brightness $80/AFFF 20 0B B4 JSR $B40B ; Joypad Data Fetching $80/B002 22 61 80 88 JSL $888061 ; ??? $80/B006 22 00 80 88 JSL $888000 ; ??? $80/B00A 22 18 81 88 JSL $888118 ; ??? $80/B00E AD BA 05 LDA $05BA $80/B011 F0 04 BEQ $04 ; [$B017]
- code is missing here
$80/B017 AE BB 05 LDX $05BB $80/B01A F0 04 BEQ $04 ; [$B020]
- code is missing here
$80/B020 20 40 B2 JSR $B240 ; ??? $80/B023 22 73 81 88 JSL $888173 ; ??? $80/B027 A6 32 LDX $32 ; ??? $80/B029 86 34 STX $34 ; ??? $80/B02B AE F0 05 LDX $05F0 ; Update V Timer - At which Scan Line an IRQ should come $80/B02E 8E 09 42 STX $4209 $80/B031 AD 11 42 LDA $4211 ; Load (and remove) IRQ Flag $80/B034 AD AF 05 LDA $05AF ; Update NMI/IRQ/Auto-Joypad Flags $80/B037 8D 00 42 STA $4200 $80/B03A EE B9 05 INC $05B9 ; ??? (Frame counter!? Flag register?) $80/B03D AD BD 05 LDA $05BD ; ??? (Check Flag register?) $80/B040 89 C0 BIT #$C0 ; ??? (If bit 6 is set, CGRAM needs an update; bit 7 yet unknown) $80/B042 D0 1C BNE $1C ; [$B060] $80/B044 AD 38 00 LDA $0038 ; ??? $80/B047 F0 17 BEQ $17 ; [$B060]
- code is missing here
$80/B060 A5 37 LDA $37 [$00:0037] A:0000 X:00DB Y:0000 P:envMxdIZc $80/B062 F0 62 BEQ $62 [$B0C6] A:0003 X:00DB Y:0000 P:envMxdIzc $80/B064 AD BD 05 LDA $05BD [$80:05BD] A:0003 X:00DB Y:0000 P:envMxdIzc $80/B067 89 40 BIT #$40 A:0000 X:00DB Y:0000 P:envMxdIZc $80/B069 D0 5B BNE $5B [$B0C6] A:0000 X:00DB Y:0000 P:envMxdIZc $80/B06B D4 00 PEI ($00) ; Buffer $00-$0F and $20-$2B on stack $80/B06D D4 02 PEI ($02) $80/B06F D4 04 PEI ($04) $80/B071 D4 06 PEI ($06) $80/B073 D4 08 PEI ($08) $80/B075 D4 0A PEI ($0A) $80/B077 D4 0C PEI ($0C) $80/B079 D4 0E PEI ($0E) $80/B07B D4 20 PEI ($20) $80/B07D D4 22 PEI ($22) $80/B07F D4 24 PEI ($24) $80/B081 D4 26 PEI ($26) $80/B083 D4 28 PEI ($28) $80/B085 D4 2A PEI ($2A) $80/B087 58 CLI ; Activate Interrupts $80/B088 A5 37 LDA $37 [$00:0037] A:0000 X:00DB Y:0000 P:envMxdiZc $80/B08A 89 01 BIT #$01 $80/B08C F0 04 BEQ $04 ; [$B092] Don't do Figure Animation if Bit 0 is clear $80/B08E 22 5F 80 84 JSL $84805F ; Do the Tile/Figure Animation $80/B092 A5 37 LDA $37 [$00:0037] A:0007 X:0004 Y:001C P:eNvMxdizc $80/B094 89 02 BIT #$02 A:0003 X:0004 Y:001C P:envMxdizc $80/B096 F0 04 BEQ $04 [$B09C] A:0003 X:0004 Y:001C P:envMxdizc $80/B098 22 00 80 85 JSL $858000[$85:8000] A:0003 X:0004 Y:001C P:envMxdizc $80/B09C FA PLX ; Restore $00-$0F and $20-$2B from stack $80/B09D 86 2A STX $2A $80/B09F FA PLX $80/B0A0 86 28 STX $28 $80/B0A2 FA PLX $80/B0A3 86 26 STX $26 $80/B0A5 FA PLX $80/B0A6 86 24 STX $24 $80/B0A8 FA PLX $80/B0A9 86 22 STX $22 $80/B0AB FA PLX $80/B0AC 86 20 STX $20 $80/B0AE FA PLX $80/B0AF 86 0E STX $0E $80/B0B1 FA PLX $80/B0B2 86 0C STX $0C $80/B0B4 FA PLX $80/B0B5 86 0A STX $0A $80/B0B7 FA PLX $80/B0B8 86 08 STX $08 $80/B0BA FA PLX $80/B0BB 86 06 STX $06 $80/B0BD FA PLX $80/B0BE 86 04 STX $04 $80/B0C0 FA PLX $80/B0C1 86 02 STX $02 $80/B0C3 FA PLX $80/B0C4 86 00 STX $00 $80/B0C6 22 0C 80 8F JSL $8F800C ; ??? Sound related $80/B0CA C2 30 REP #$30 ; Restore everything from Stack $80/B0CC 7A PLY $80/B0CD FA PLX $80/B0CE 2B PLD $80/B0CF AB PLB $80/B0D0 68 PLA $80/B0D1 40 RTI ; End Interrupt Handler
$80/B0D2 ?
$80/B0D2 20 C2 B2 JSR $B2C2 : Do Animation VRAM DMAs $80/B0D5 AD 86 05 LDA $0586 ; Activate HDMA $80/B0D8 8D 0C 42 STA $420C $80/B0DB 20 01 B1 JSR $B101 [$80:B101] A:0006 X:E0A4 Y:BE79 P:envMxdIzC $80/B0DE 20 6D B2 JSR $B26D ; Update Graphic Setup Registers $80/B0E1 AD 6A 05 LDA $056A ; Load $2100 Buffer $80/B0E4 2C 12 42 BIT $4212 ; Wait for HBLANK Period flag to be set $80/B0E7 70 FB BVS $FB ; [$B0E4] $80/B0E9 2C 12 42 BIT $4212 ; Wait for HBLANK Period flag to be cleared $80/B0EC 50 FB BVC $FB ; [$B0E9] $80/B0EE 8D 00 21 STA $2100 ; Turn the Screen on $80/B0F1 A5 A1 LDA $A1 [$00:00A1] A:000F X:0581 Y:0008 P:eNVMxdIzC $80/B0F3 89 01 BIT #$01 A:0000 X:0581 Y:0008 P:enVMxdIZC $80/B0F5 F0 07 BEQ $07 [$B0FE] A:0000 X:0581 Y:0008 P:enVMxdIZC
Code is missing here
$80/B0FE 4C 27 B0 JMP $B027 [$80:B027] A:0000 X:0581 Y:0008 P:enVMxdIZC
$80/B101 OAM Update
This only updates the first ten sprites!
$80/B101 A5 37 LDA $37 ; Load OAM Update Flag register $80/B103 89 02 BIT #$02 ; Check Flag for regular OAM Updates $80/B105 F0 2D BEQ $2D ; [$B134] Exit if not $80/B107 A2 00 00 LDX #$0000 ; Set OAM Address to #$0000 $80/B10A 8E 02 21 STX $2102 $80/B10D 9C 04 43 STZ $4304 ; Source Bank: $00 $80/B110 AD B9 05 LDA $05B9 ; Check if value in the Frame Counter is odd or even $80/B113 4A LSR A $80/B114 A2 00 01 LDX #$0100 ; Use OAM Buffer 1 if even $80/B117 90 03 BCC $03 ; [$B11C] $80/B119 A2 20 03 LDX #$0320 ; Use OAM Buffer 2 if odd $80/B11C 8E 02 43 STX $4302 $80/B11F A9 04 LDA #$04 ; DMA Destination: OAM --- $(21)04 $80/B121 8D 01 43 STA $4301 $80/B124 A2 40 00 LDX #$0040 ; Transfer #$40 Byte $80/B127 8E 05 43 STX $4305 $80/B12A A9 00 LDA #$00 ; DMA Settings $80/B12C 8D 00 43 STA $4300 $80/B12F A9 01 LDA #$01 ; ACTIVATE DMA $80/B131 8D 0B 42 STA $420B $80/B134 60 RTS
$80/B135 Update Graphics Settings Buffer Registers
I'm not sure, but it looks like you can buffer values for the screen settings in buffer registers, so that they get transfered in the next frame to their destination. Because this seems to be the subroutine that makes these values step up in queue.
$80/B135 AE 91 05 LDX $0591 ; Update $210D Buffer $80/B138 8E 71 05 STX $0571 $80/B13B AE 93 05 LDX $0593 ; Update $210E Buffer $80/B13E 8E 73 05 STX $0573 $80/B141 AE 95 05 LDX $0595 ; Update $210F Buffer $80/B144 8E 75 05 STX $0575 $80/B147 AE 97 05 LDX $0597 ; Update $2110 Buffer $80/B14A 8E 77 05 STX $0577 $80/B14D AE 99 05 LDX $0599 ; Update $2111 Buffer $80/B150 8E 79 05 STX $0579 $80/B153 AE 9B 05 LDX $059B ; Update $2112 Buffer $80/B156 8E 7B 05 STX $057B $80/B159 AE 9D 05 LDX $059D ; Update $2113 Buffer $80/B15C 8E 7D 05 STX $057D $80/B15F AE 9F 05 LDX $059F ; Update $2114 Buffer $80/B162 8E 7F 05 STX $057F $80/B165 AE 8B 05 LDX $058B ; Update $2107/8 Buffer $80/B168 8E 6D 05 STX $056D $80/B16B AE 8D 05 LDX $058D ; Update $2109/A Buffer $80/B16E 8E 6F 05 STX $056F $80/B171 AD 87 05 LDA $0587 ; Update $2100 Buffer $80/B174 8D 6A 05 STA $056A $80/B177 AD 89 05 LDA $0589 ; Update $2105 Buffer $80/B17A 8D 6B 05 STA $056B $80/B17D AD 88 05 LDA $0588 ; Update $2101 Buffer $80/B180 8D 6C 05 STA $056C $80/B183 AE AC 05 LDX $05AC ; Update $2132 Buffer - R?/G? $80/B186 8E 83 05 STX $0583 $80/B189 AD AE 05 LDA $05AE ; Update $2132 Buffer - V? $80/B18C 8D 85 05 STA $0585 $80/B18F AD AA 05 LDA $05AA ; Update $2130 Buffer $80/B192 8D 81 05 STA $0581 $80/B195 AD AB 05 LDA $05AB ; ??? $80/B198 8D 82 05 STA $0582 ; ??? $80/B19B AE EE 05 LDX $05EE ; Update $4209/A Buffer $80/B19E 8E F0 05 STX $05F0 $80/B1A1 AD 8A 05 LDA $058A ; Update $2106 $80/B1A4 8D 06 21 STA $2106 $80/B1A7 AD 5F 17 LDA $175F ; Is the flag for a HDMA Window Mask set? $80/B1AA F0 43 BEQ $43 ; [$B1EF] Branch if not $80/B1AC AD 60 17 LDA $1760 ; Set HDMA Parameters (Direction, Addr Mode, Step) $80/B1AF 8D 40 43 STA $4340 $80/B1B2 A9 26 LDA #$26 ; I/O-Bus Address: $2126 Window 1 Position $80/B1B4 8D 41 43 STA $4341 $80/B1B7 A9 7E LDA #$7E $80/B1B9 8D 44 43 STA $4344 ; HDMA Table Start Address on Bank $7E $80/B1BC 8D 47 43 STA $4347 ; Indirect HDMA Address on Bank $7E $80/B1BF AE 61 17 LDX $1761 ; HDMA Start Address $80/B1C2 8E 42 43 STX $4342 $80/B1C5 AD A1 05 LDA $05A1 ; Window BG1/2 Mask Settings $80/B1C8 8D 23 21 STA $2123 $80/B1CB AD A2 05 LDA $05A2 ; Window BG3/4 Mask Settings $80/B1CE 8D 24 21 STA $2124 $80/B1D1 AD A3 05 LDA $05A3 ; Window OBJ/MATH Mask Settings $80/B1D4 8D 25 21 STA $2125 $80/B1D7 AD A4 05 LDA $05A4 ; Window 1/2 Mask Logic for BG1-4 $80/B1DA 8D 2A 21 STA $212A $80/B1DD AD A5 05 LDA $05A5 ; Window 1/2 Mask Logic for OBJ/MATH $80/B1E0 8D 2B 21 STA $212B $80/B1E3 AD A8 05 LDA $05A8 ; Window Area Main Screen Disable $80/B1E6 8D 2E 21 STA $212E $80/B1E9 AD A9 05 LDA $05A9 ; Window Area Sub Screen Disable $80/B1EC 8D 2F 21 STA $212F $80/B1EF AD FB 16 LDA $16FB [$80:16FB] A:0000 X:00DC Y:0000 P:envMxdIZC $80/B1F2 F0 18 BEQ $18 [$B20C] A:0055 X:00DC Y:0000 P:envMxdIzC $80/B1F4 AE FC 16 LDX $16FC [$80:16FC] A:0055 X:00DC Y:0000 P:envMxdIzC $80/B1F7 8E 72 43 STX $4372 [$80:4372] A:0055 X:5555 Y:0000 P:envMxdIzC $80/B1FA AE 02 17 LDX $1702 [$80:1702] A:0055 X:5555 Y:0000 P:envMxdIzC $80/B1FD 8E 12 43 STX $4312 [$80:4312] A:0055 X:5555 Y:0000 P:envMxdIzC $80/B200 AE FE 16 LDX $16FE [$80:16FE] A:0055 X:5555 Y:0000 P:envMxdIzC $80/B203 8E 62 43 STX $4362 [$80:4362] A:0055 X:5555 Y:0000 P:envMxdIzC $80/B206 AE 00 17 LDX $1700 [$80:1700] A:0055 X:5555 Y:0000 P:envMxdIzC $80/B209 8E 52 43 STX $4352 [$80:4352] A:0055 X:5555 Y:0000 P:envMxdIzC $80/B20C AF 87 BE 7E LDA $7EBE87[$7E:BE87] A:0055 X:5555 Y:0000 P:envMxdIzC $80/B210 10 29 BPL $29 [$B23B] A:0000 X:5555 Y:0000 P:envMxdIZC $80/B212 29 7F AND #$7F A:0081 X:00DB Y:003A P:eNvMxdIzC $80/B214 8F 87 BE 7E STA $7EBE87[$7E:BE87] A:0001 X:00DB Y:003A P:envMxdIzC $80/B218 C2 20 REP #$20 A:0001 X:00DB Y:003A P:envMxdIzC $80/B21A AF 84 BE 7E LDA $7EBE84[$7E:BE84] A:0001 X:00DB Y:003A P:envmxdIzC $80/B21E C9 8A BE CMP #$BE8A A:BE8A X:00DB Y:003A P:eNvmxdIzC $80/B221 F0 05 BEQ $05 [$B228] A:BE8A X:00DB Y:003A P:envmxdIZC $80/B228 A9 A4 BE LDA #$BEA4 A:BE8A X:00DB Y:003A P:envmxdIZC $80/B22B 8F 84 BE 7E STA $7EBE84[$7E:BE84] A:BEA4 X:00DB Y:003A P:eNvmxdIzC $80/B22F 8D 32 43 STA $4332 [$80:4332] A:BEA4 X:00DB Y:003A P:eNvmxdIzC $80/B232 18 CLC A:BEA4 X:00DB Y:003A P:eNvmxdIzC $80/B233 69 0D 00 ADC #$000D A:BEA4 X:00DB Y:003A P:eNvmxdIzc $80/B236 8D 22 43 STA $4322 [$80:4322] A:BEB1 X:00DB Y:003A P:eNvmxdIzc $80/B239 E2 20 SEP #$20 A:BEB1 X:00DB Y:003A P:eNvmxdIzc $80/B23B A5 36 LDA $36 [$00:0036] A:0000 X:5555 Y:0000 P:envMxdIZC $80/B23D 85 37 STA $37 [$00:0037] A:0000 X:5555 Y:0000 P:envMxdIZC $80/B23F 60 RTS
$80/B240 ? Change up HDMA Window Mask HDMA Table Address
I guess there are only two options here where this subroutine alternates between both, that is: HDMA Table Start Address at $7E/B100 and $7E/B120.
$80/B240 AD 5F 17 LDA $175F ; Is the flag for a HDMA Window Mask set? $80/B243 F0 11 BEQ $11 ; [$B256] Branch if not $80/B245 9C 5F 17 STZ $175F ; Clear HDMA Window Mask flag $80/B248 A0 00 B1 LDY #$B100 ; Is the Window Mask - HDMA Table Start Address $(7E/)B100? $80/B24B CC 61 17 CPY $1761 $80/B24E D0 03 BNE $03 ; [$B253] If not, branch and set it to $B100 $80/B250 A0 20 B1 LDY #$B120 ; If it was, set it to $B120 $80/B253 8C 61 17 STY $1761 $80/B256 AD FB 16 LDA $16FB [$80:16FB] A:0000 X:0000 Y:0000 P:enVMxdIZc $80/B259 F0 11 BEQ $11 ; [$B26C] Exit if empty $80/B25B 9C FB 16 STZ $16FB [$80:16FB] A:0002 X:0000 Y:0000 P:enVMxdIzc $80/B25E A2 00 B0 LDX #$B000 A:0002 X:0000 Y:0000 P:enVMxdIzc $80/B261 EC FC 16 CPX $16FC [$80:16FC] A:0002 X:B000 Y:0000 P:eNVMxdIzc $80/B264 D0 03 BNE $03 [$B269] A:0002 X:B000 Y:0000 P:enVMxdIZC $80/B266 A2 10 B0 LDX #$B010 A:0002 X:B000 Y:0000 P:enVMxdIZC $80/B269 8E FC 16 STX $16FC [$80:16FC] A:0002 X:B010 Y:0000 P:eNVMxdIzC $80/B26C 60 RTS
$80/B26D Update Graphic Setup Registers
$80/B26D AD 6B 05 LDA $056B ; BG Mode $80/B270 8D 05 21 STA $2105 $80/B273 AD 6C 05 LDA $056C ; Sprite sizes $80/B276 8D 01 21 STA $2101 $80/B279 AE A6 05 LDX $05A6 ; Main Screen/Subscreen Destination (16 bit!) $80/B27C 8E 2C 21 STX $212C $80/B27F AE 8F 05 LDX $058F ; BG1-4 Tileset Addresses (16 bit!) $80/B282 8E 0B 21 STX $210B $80/B285 AE 6D 05 LDX $056D ; BG1/2 Tilemap Address $80/B288 8E 07 21 STX $2107 $80/B28B AE 6F 05 LDX $056F ; BG3/4 Tilemap Address $80/B28E 8E 09 21 STX $2109 $80/B291 AE 81 05 LDX $0581 ; Color Addition Select $80/B294 8E 30 21 STX $2130 $80/B297 AD 85 05 LDA $0585 ; Fixed Color Data $80/B29A 8D 32 21 STA $2132 $80/B29D AD 84 05 LDA $0584 ; Fixed Color Data $80/B2A0 8D 32 21 STA $2132 $80/B2A3 AD 83 05 LDA $0583 ; Fixed Color Data $80/B2A6 8D 32 21 STA $2132 $80/B2A9 A0 00 00 LDY #$0000 ; Update the BG Scroll registers $80/B2AC A2 71 05 LDX #$0571 $80/B2AF B5 00 LDA $00,x $80/B2B1 99 0D 21 STA $210D,y $80/B2B4 B5 01 LDA $01,x $80/B2B6 99 0D 21 STA $210D,y $80/B2B9 E8 INX $80/B2BA E8 INX $80/B2BB C8 INY $80/B2BC C0 08 00 CPY #$0008 $80/B2BF D0 EE BNE $EE ; [$B2AF] $80/B2C1 60 RTS
$80/B2C2 Do Animation VRAM DMAs
$11CA seems to be a counter and is an index for $0F49,y, $11C9 is a limit
$80/B2C2 AD CA 11 LDA $11CA ; Load Number of the first Animation VRAM DMA $80/B2C5 CD C9 11 CMP $11C9 ; Compare with Number of the last Animation VRAM DMA $80/B2C8 F0 60 BEQ $60 ; [$B32A] Exit if equal $80/B2CA AD BD 05 LDA $05BD [$80:05BD] A:0002 X:0000 Y:0006 P:eNvMxdIzc $80/B2CD 30 14 BMI $14 [$B2E3] A:0080 X:0000 Y:0006 P:eNvMxdIzc $80/B2CF 7B TDC ; Clear 16-bit A $80/B2D0 AD C7 0E LDA $0EC7 ; (Load Number of Occupied VRAM DMA-Pipeline Entries?) $80/B2D3 C2 20 REP #$20 ; 16-bit A $80/B2D5 EB XBA ; $0EC7 * #$04 + $0EC5 $80/B2D6 4A LSR A $80/B2D7 4A LSR A $80/B2D8 6D C5 0E ADC $0EC5 $80/B2DB C9 00 05 CMP #$0500 ; Compare if higher or same as #$500 (Sets carry if it is) $80/B2DE E2 20 SEP #$20 ; 8-bit A $80/B2E0 7B TDC ; Clear 16-bit A $80/B2E1 B0 47 BCS $47 ; [$B32A] Exit if A was higher or same as #$500 $80/B2E3 A9 01 LDA #$01 ; DMA Transfer Settings $80/B2E5 8D 00 43 STA $4300 $80/B2E8 A9 18 LDA #$18 ; DMA Destination $(21)18 - VRAM $80/B2EA 8D 01 43 STA $4301 $80/B2ED A9 80 LDA #$80 ; VRAM Transfer Settings $80/B2EF 8D 15 21 STA $2115 $80/B2F2 7B TDC ; Clear 16-bit A $80/B2F3 AD CA 11 LDA $11CA ; Load Number of the first Animation VRAM DMA $80/B2F6 0A ASL A ; Multiply by 2 and use it as Load Index in Y $80/B2F7 A8 TAY $80/B2F8 BE 49 0F LDX $0F49,y ; Load Animation VRAM DMA Size $80/B2FB E0 81 00 CPX #$0081 $80/B2FE 90 02 BCC $02 ; [$B302] Branch if smaller than #$0081
- Code is missing here
$80/B302 8E 05 43 STX $4305 ; Set as DMA Size $80/B305 BE 09 10 LDX $1009,y ; Set Source Destination $80/B308 8E 02 43 STX $4302 $80/B30B B9 8A 11 LDA $118A,y ; Set Source Bank $80/B30E 8D 04 43 STA $4304 $80/B311 BE C9 10 LDX $10C9,y ; Set VRAM Destination $80/B314 8E 16 21 STX $2116 $80/B317 A9 01 LDA #$01 ; Activate DMA $80/B319 8D 0B 42 STA $420B $80/B31C AD CA 11 LDA $11CA ; Increment Number of the first Animation VRAM DMA $80/B31F 1A INC A $80/B320 29 1F AND #$1F ; Reset to zero if it surpassed #1F (this is a circular buffer) $80/B322 8D CA 11 STA $11CA $80/B325 CD C9 11 CMP $11C9 ; Check if the Number of the last Animation VRAM DMA is reached $80/B328 D0 CC BNE $CC ; [$B2F6] Do next Animation VRAM DMA if not $80/B32A 60 RTS
$80/B32B VRAM DMA Pipeline
$80/B32B AD C7 0E LDA $0EC7 ; Are there any VRAM DMAs in the pipeline? $80/B32E F0 44 BEQ $44 ; [$B374] If not, exit $80/B330 A9 01 LDA #$01 ; DMA Settings $80/B332 8D 00 43 STA $4300 $80/B335 A9 18 LDA #$18 ; DMA Destination: $2118 $80/B337 8D 01 43 STA $4301 $80/B33A A0 00 00 LDY #$0000 $80/B33D BE C9 0E LDX $0EC9,y ; DMA Data Size $80/B340 8E 05 43 STX $4305 $80/B343 BE 89 0F LDX $0F89,y ; DMA Adress $80/B346 8E 02 43 STX $4302 $80/B349 B9 0A 11 LDA $110A,y ; DMA Bank $80/B34C 8D 04 43 STA $4304 $80/B34F B9 09 11 LDA $1109,y ; VRAM Transfer Setting $80/B352 8D 15 21 STA $2115 $80/B355 BE 49 10 LDX $1049,y ; VRAM Destination $80/B358 8E 16 21 STX $2116 $80/B35B A9 01 LDA #$01 ; Activate DMA $80/B35D 8D 0B 42 STA $420B $80/B360 C8 INY ; Increment Index $80/B361 C8 INY $80/B362 CE C7 0E DEC $0EC7 ; Decrement number of occupied Pipelines entries $80/B365 D0 D6 BNE $D6 ; [$B33D] Loop until all are done $80/B367 A2 00 00 LDX #$0000 $80/B36A 8E D6 16 STX $16D6 ; ??? $80/B36D 8E D8 16 STX $16D8 ; ??? $80/B370 A6 5A LDX $5A ; ??? $80/B372 86 5C STX $5C ; ??? $80/B374 A2 00 00 LDX #$0000 ; ??? $80/B377 8E C5 0E STX $0EC5 ; ??? $80/B37A 60 RTS
$80/B37B VRAM Read DMA
$80/B37B AD CE 11 LDA $11CE ; Load Number of VRAM Read DMAs to do $80/B37E F0 57 BEQ $57 ; [$B3D7] Exit if empty $80/B380 AD CB 11 LDA $11CB ; ??? $80/B383 D0 52 BNE $52 ; [$B3D7] Exit if not empty $80/B385 A9 81 LDA #$81 ; Transfer from Bus B / Write 2 registers write once $80/B387 8D 00 43 STA $4300 $80/B38A A9 39 LDA #$39 ; Source Address: $(21)39 - VRAM Read Address $80/B38C 8D 01 43 STA $4301 $80/B38F A9 80 LDA #$80 ; VRAM Transfer Settings: Increment when Reading from $213A $80/B391 8D 15 21 STA $2115 $80/B394 A9 7F LDA #$7F ; Destination Bank: $7F $80/B396 8D 04 43 STA $4304 $80/B399 A2 00 FC LDX #$FC00 ; Destination Address: $(7F/)FC00 $80/B39C A0 00 00 LDY #$0000 ; Setup Loop Counter $80/B39F AD CE 11 LDA $11CE ; Load Number of VRAM Read DMAs to do $80/B3A2 48 PHA ; Push Number of VRAM Read DMAs to do on Stack $80/B3A3 C2 20 REP #$20 ; 16-bit A $80/B3A5 B9 F0 11 LDA $11F0,y ; Set Number of Bytes to transfer $80/B3A8 8D 05 43 STA $4305 $80/B3AB 8E 02 43 STX $4302 ; Destination Address: $(7F/)FC00 $80/B3AE B9 D0 11 LDA $11D0,y ; Set VRAM Destination $80/B3B1 8D 16 21 STA $2116 $80/B3B4 E2 20 SEP #$20 ; 8-bit A $80/B3B6 F0 08 BEQ $08 ; [$B3C0] Leave out the $80/B3B8 AD 3A 21 LDA $213A ; ??? $80/B3BB A9 01 LDA #$01 ; Activate DMA $80/B3BD 8D 0B 42 STA $420B $80/B3C0 68 PLA ; Pull Number of VRAM Read DMAs to do from Stack $80/B3C1 3A DEC A ; Decrement Number $80/B3C2 F0 0E BEQ $0E ; [$B3D2] Exit if it has reached zero $80/B3C4 48 PHA ; If not, push Number of VRAM Read DMAs to do back on Stack $80/B3C5 C2 21 REP #$21 A:5003 X:FC00 Y:0000 P:envMxdIzc $80/B3C7 8A TXA ; Transfer Store Index in A $80/B3C8 79 F0 11 ADC $11F0,y ; Add the number of transfered bytes $80/B3CB AA TAX ; Transfer back in X - Points now to the next empty byte $80/B3CC E2 20 SEP #$20 ; 8-bit A $80/B3CE C8 INY ; Increment Load Index twice $80/B3CF C8 INY $80/B3D0 80 D1 BRA $D1 ; [$B3A3] Loop $80/B3D2 A9 01 LDA #$01 ; ??? $80/B3D4 8D CB 11 STA $11CB ; ??? Set flag to not do this again automatically $80/B3D7 60 RTS
$80/B3D8 ?
$80/B3D8 AD BD 05 LDA $05BD ; ??? $80/B3DB 89 40 BIT #$40 ; ??? If bit 6 in $05BD is set, this forces a CGRAM update $80/B3DD D0 05 BNE $05 ; [$B3E4] $80/B3DF AD 49 12 LDA $1249 ; Is "Update CGRAM" Flag set? $80/B3E2 F0 26 BEQ $26 ; [$B40A] Exit if not $80/B3E4 9C 21 21 STZ $2121 ; CGRAM Destination: $00 $80/B3E7 A9 22 LDA #$22 ; DMA Destination: $2122 (= CGRAM) $80/B3E9 8D 01 43 STA $4301 $80/B3EC A2 00 02 LDX #$0200 ; Transfer #$200 Byte $80/B3EF 8E 05 43 STX $4305 $80/B3F2 A2 4B 12 LDX #$124B ; Source: $00124B (CGRAM Buffer) $80/B3F5 8E 02 43 STX $4302 $80/B3F8 A9 00 LDA #$00 $80/B3FA 8D 04 43 STA $4304 $80/B3FD A9 00 LDA #$00 ; DMA Settings $80/B3FF 8D 00 43 STA $4300 $80/B402 A9 01 LDA #$01 ; Activate DMA $80/B404 8D 0B 42 STA $420B $80/B407 9C 49 12 STZ $1249 ; Clear "Update CGRAM" Flag $80/B40A 60 RTS
$80/B40B Joypad Data Fetching
$80/B40B AD 12 42 LDA $4212 ; Load PPU-Status $80/B40E 4A LSR A ; Move Bit 0 (Auto-Joypad Status) into Carry $80/B40F B0 FA BCS $FA ; [$B40B] Loop until Auto-Joypad Read is done $80/B411 A0 00 00 LDY #$0000 $80/B414 A2 00 00 LDX #$0000 $80/B417 B9 18 42 LDA $4218,y $80/B41A 29 0F AND #$0F $80/B41C D0 40 BNE $40 ; [$B45E] I think this is a security measure; if this isn't 0, something's wrong $80/B41E BF 16 40 00 LDA $004016,x ; ??? $80/B422 29 01 AND #$01 $80/B424 F0 38 BEQ $38 ; [$B45E] Another security measure? $80/B426 BD 47 05 LDA $0547,x ; ??? $80/B429 F0 1B BEQ $1B ; [$B446] $80/B42B C2 20 REP #$20 $80/B42D B9 49 05 LDA $0549,y ; Load Joypad Data from the last frame, store it in $0551,y and push it on stack $80/B430 99 51 05 STA $0551,y $80/B433 48 PHA $80/B434 B9 18 42 LDA $4218,y ; Load Joypad-Input and store it in $0549-054C $80/B437 99 49 05 STA $0549,y $80/B43A 68 PLA $80/B43B 39 49 05 AND $0549,y ; Calculate, which buttons are held from the last frame, and store them in $054D,y $80/B43E 59 49 05 EOR $0549,y $80/B441 99 4D 05 STA $054D,y $80/B444 80 26 BRA $26 ; [$B46C] Leave out the "other" Fetching method $80/B446 A9 01 LDA #$01 ; ??? $80/B448 9D 47 05 STA $0547,x $80/B44B C2 20 REP #$20 $80/B44D B9 18 42 LDA $4218,y ; Load Joypad-Input and store it in $0549-054C $80/B450 99 49 05 STA $0549,y $80/B453 A9 00 00 LDA #$0000 ; $80/B456 99 4D 05 STA $054D,y ; Clear held buttons $80/B459 99 51 05 STA $0551,y ; Clear last frame's Joypad input $80/B45C 80 0E BRA $0E ; [$B46C] $80/B46C E2 20 SEP #$20 $80/B46E A5 F9 LDA $F9 ; ??? $80/B470 30 12 BMI $12 ; [$B484] If $F9 is negative, no Soft Reset is accepted? $80/B472 C2 20 REP #$20 $80/B474 B9 49 05 LDA $0549,y ; Check newly fetched Joypad data $80/B477 C9 30 30 CMP #$3030 ; Is Start, Select, L + R pressed? $80/B47A D0 08 BNE $08 ; [$B484]
Code is missing here
$80/B484 E2 20 SEP #$20 $80/B486 C8 INY ; Increment index registers $80/B487 C8 INY $80/B488 E8 INX $80/B489 E0 02 00 CPX #$0002 $80/B48C 90 89 BCC $89 ; [$B417] Repeat this for the second controller $80/B48E 60 RTS
$80/B4C8 An IRQ-Handler
This is an IRQ Handler. In Battle. With Battle Stats Menu on.
$80/B4C8 E2 20 SEP #$20 $80/B4CA 48 PHA ; Buffer A value on stack $80/B4CB AF 11 42 00 LDA $004211 ; Check if the IRQ flag is set $80/B4CF 10 72 BPL $72 ; [$B543] If not, branch, pull A from Stack and exit $80/B4D1 8B PHB ; Else, buffer the current Program bank and change it $80/B4D2 4B PHK $80/B4D3 AB PLB $80/B4D4 6C 34 00 JMP ($0034) ; Jump to the IRQ Handler [$80:B4D7]
$80/B4D7 IRQ: Change Screen Settings during HBLANK
A possibility where the IRQ Handler at $80/B4C8 can jump to
$80/B4D7 AD F0 05 LDA $05F0 ; Load $4209 Buffer (V Timer Low Byte) $80/B4DA C9 DA CMP #$DA ; #$DA = 218, so the third to last scan line visible(?) $80/B4DC B0 4F BCS $4F ; [$B52D] Branch if the Timer is set offscreen $80/B4DE C2 10 REP #$10 ; X/Y = 16-bit $80/B4E0 DA PHX ; Buffer X, Y and Direct Bank on Stack $80/B4E1 5A PHY $80/B4E2 0B PHD $80/B4E3 A2 00 21 LDX #$2100 ; This sets the direct bank to $2100, so every two-digit register is a $21xx register! $80/B4E6 DA PHX ; I guess this is done so the HBLANKs are optimally used $80/B4E7 2B PLD $80/B4E8 A9 09 LDA #$09 ; Prepare value so it can be stored right after the HBLANK $80/B4EA 2C 12 42 BIT $4212 ; V/HBLANK-Flag register $80/B4ED 70 FB BVS $FB ; [$B4EA] Loop until flag is set (HBLANK begins) $80/B4EF 2C 12 42 BIT $4212 $80/B4F2 50 FB BVC $FB ; [$B4EF] Loop until flag is cleared, HBLANK has just ended $80/B4F4 64 00 STZ $00 ; $2100 - turn down the Brightness $80/B4F6 85 05 STA $05 ; $2105 - BG mode 1 with priority bit $80/B4F8 64 31 STZ $31 ; $2131 - Deactivate color math $80/B4FA A0 07 00 LDY #$0007 ; Load next bunch of values $80/B4FD A2 38 38 LDX #$3838 $80/B500 A9 34 LDA #$34 $80/B502 2C 12 42 BIT $4212 ; Wait for the next passing of a HBLANK $80/B505 70 FB BVS $FB ; [$B502] $80/B507 2C 12 42 BIT $4212 $80/B50A 50 FB BVC $FB ; [$B507] $80/B50C 84 2C STY $2C ; $212C - BG1/2/3 (No sprites!) on Main Screen, nothing on subscreen $80/B50E 86 08 STX $08 ; BG2/3 Tilemap at $3800 in VRAM $80/B510 85 07 STA $07 ; BG1 Tilemap at $3400 $80/B512 A9 02 LDA #$02 ; BG1 Tiles at $2000 $80/B514 85 0B STA $0B $80/B516 AD 6A 05 LDA $056A ; Restore old brightness settings $80/B519 85 00 STA $00 $80/B51B 2B PLD ; Restore old Direct Bank $80/B51C A2 2D B5 LDX #$B52D ; Setting up the Address of the IRQ Handler $80/B51F 86 34 STX $34 ; For the last part, the IRQ Handler now jumps to $80/B52D $80/B521 A2 DC 00 LDX #$00DC ; V Timer on #$DC = (#220, the bottom line) - once executed is enough? $80/B524 8E 09 42 STX $4209 $80/B527 7A PLY ; Restore Y, X and Data Bank $80/B528 FA PLX $80/B529 AB PLB $80/B52A 4C 43 B5 JMP $B543 ; Pull A from Stack and RTI $80/B52D 2C 12 42 BIT $4212 ; V/HBLANK-Flag register $80/B530 70 FB BVS $FB ; [$B52D] Loop until flag is set (HBLANK begins) $80/B532 2C 12 42 BIT $4212 $80/B535 50 FB BVC $FB ; [$B532] Loop until flag is cleared, HBLANK has just ended $80/B537 9C 00 21 STZ $2100 ; No FBLANK, but screen brightness = 0 $80/B53A AD AF 05 LDA $05AF ; Deactivate(?) HBLANK $80/B53D 29 CF AND #$CF $80/B53F 8D 00 42 STA $4200 $80/B542 AB PLB ; Restore Program Bank and A $80/B543 68 PLA $80/B544 40 RTI
$80/B545 Long Jump to Clear Graphic Setup Registers
$80/B545 8B PHB ; Buffer Program Bank $80/B546 4B PHK ; Set Program Bank to $80 $80/B547 AB PLB $80/B548 20 4D B5 JSR $B54D ; Clear Graphic Setup Registers $80/B54B AB PLB ; Restore Program Bank $80/B54C 6B RTL
$80/B54D Clear Graphic Setup Registers
$80/B54D 9C 33 21 STZ $2133 $80/B550 A9 02 LDA #$02 ; 8x8 and 32x32 sprites $80/B552 8D 01 21 STA $2101 $80/B555 8D 88 05 STA $0588 $80/B558 A9 09 LDA #$09 ; Mode 1, Priority Bit $80/B55A 8D 05 21 STA $2105 $80/B55D 8D 89 05 STA $0589 $80/B560 A9 71 LDA #$71 ; BG1 Tilemap at $7000 in VRAM, h mirroring $80/B562 8D 07 21 STA $2107 $80/B565 8D 8B 05 STA $058B $80/B568 A9 79 LDA #$79 ; BG2 Tilemap at $7000 in VRAM, h/v mirroring $80/B56A 8D 08 21 STA $2108 $80/B56D 8D 8C 05 STA $058C $80/B570 A9 3C LDA #$3C ; BG3 Tilemap at $3C00 in VRAM $80/B572 8D 09 21 STA $2109 $80/B575 8D 8D 05 STA $058D $80/B578 A9 3C LDA #$3C ; BG3 Tilemap at $3C00 in VRAM $80/B57A 8D 0A 21 STA $210A $80/B57D 8D 8E 05 STA $058E $80/B580 A9 00 LDA #$00 ; BG1/2 Tiles at $0000 in VRAM $80/B582 8D 0B 21 STA $210B $80/B585 8D 8F 05 STA $058F $80/B588 A9 55 LDA #$55 ; BG3/4 Tiles at $5000 in VRAM $80/B58A 8D 0C 21 STA $210C $80/B58D 8D 90 05 STA $0590 $80/B590 A9 17 LDA #$17 ; BG1-3 and Sprites for Main Screen $80/B592 8D 2C 21 STA $212C $80/B595 8D A6 05 STA $05A6 $80/B598 A9 04 LDA #$04 ; BG4 for Subscreen $80/B59A 8D 2D 21 STA $212D $80/B59D 8D A7 05 STA $05A7 $80/B5A0 9C A8 05 STZ $05A8 ; Window Mask Registers $80/B5A3 9C 2E 21 STZ $212E $80/B5A6 9C A9 05 STZ $05A9 $80/B5A9 9C 2F 21 STZ $212F $80/B5AC A9 02 LDA #$02 $80/B5AE 8D AA 05 STA $05AA ; $2130 Buffer - Add subscreen $80/B5B1 A9 23 LDA #$23 $80/B5B3 8D AB 05 STA $05AB ; ??? $80/B5B6 A9 E0 LDA #$E0 $80/B5B8 8D AC 05 STA $05AC ; $2132 Buffer? $80/B5BB 8D AD 05 STA $05AD ; $2132 Buffer? $80/B5BE 8D AE 05 STA $05AE ; $2132 Buffer? $80/B5C1 9C 8A 05 STZ $058A ; Clear $2106 (Mosaic Register) $80/B5C4 60 RTS
$80/B5C5 ?
$80/B5C5 8B PHB ; Buffer Program Bank $80/B5C6 4B PHK ; Set Program Bank to $80 $80/B5C7 AB PLB $80/B5C8 20 CD B5 JSR $B5CD [$80:B5CD] A:0000 X:0000 Y:0000 P:eNvMxdizc
$80/B5CD ?
This is executed when loading a new map. Some reset of settings, as it seems.
$80/B5CD 64 36 STZ $36 [$00:0036] A:0000 X:0000 Y:0000 P:eNvMxdizc $80/B5CF 64 37 STZ $37 [$00:0037] A:0000 X:0000 Y:0000 P:eNvMxdizc $80/B5D1 64 59 STZ $59 [$00:0059] A:0000 X:0000 Y:0000 P:eNvMxdizc $80/B5D3 64 A2 STZ $A2 [$00:00A2] A:0000 X:0000 Y:0000 P:eNvMxdizc $80/B5D5 64 A1 STZ $A1 [$00:00A1] A:0000 X:0000 Y:0000 P:eNvMxdizc $80/B5D7 64 ED STZ $ED [$00:00ED] A:0000 X:0000 Y:0000 P:eNvMxdizc $80/B5D9 64 8E STZ $8E [$00:008E] A:0000 X:0000 Y:0000 P:eNvMxdizc $80/B5DB A2 FF FF LDX #$FFFF A:0000 X:0000 Y:0000 P:eNvMxdizc $80/B5DE 86 8F STX $8F [$00:008F] A:0000 X:FFFF Y:0000 P:eNvMxdizc $80/B5E0 A2 DC 00 LDX #$00DC ; Set V-Count Timer to #220 (off screen) $80/B5E3 8E EE 05 STX $05EE ; Set ($4209/A Buffer for next frame?) $80/B5E6 8E F0 05 STX $05F0 ; Set $4209/A Buffer $80/B5E9 9C B9 05 STZ $05B9 ; Clear (Frame Counter?) $80/B5EC 9C BA 05 STZ $05BA [$80:05BA] A:0000 X:00DC Y:0000 P:envMxdizc $80/B5EF 9C BE 05 STZ $05BE [$80:05BE] A:0000 X:00DC Y:0000 P:envMxdizc $80/B5F2 9C BF 05 STZ $05BF ; Clear Main Jump Table Index $80/B5F5 9C C0 05 STZ $05C0 ; Clear (another Jump Table Index $80/B5F8 9C C1 05 STZ $05C1 [$80:05C1] A:0000 X:00DC Y:0000 P:envMxdizc $80/B5FB 9C 49 12 STZ $1249 ; Remove Flag for CGRAM Update $80/B5FE A9 00 LDA #$00 A:0000 X:00DC Y:0000 P:envMxdizc $80/B600 8F 87 BE 7E STA $7EBE87[$7E:BE87] A:0000 X:00DC Y:0000 P:envMxdiZc $80/B604 A9 08 LDA #$08 A:0000 X:00DC Y:0000 P:envMxdiZc $80/B606 85 67 STA $67 [$00:0067] A:0008 X:00DC Y:0000 P:envMxdizc $80/B608 22 36 E8 81 JSL $81E836[$81:E836] A:0008 X:00DC Y:0000 P:envMxdizc $80/B60C 22 49 E8 81 JSL $81E849[$81:E849] A:0008 X:FFFF Y:0000 P:eNvMxdizc $80/B610 22 C8 8A 81 JSL $818AC8[$81:8AC8] A:0010 X:00FF Y:00FF P:envMxdiZc $80/B614 9C CB 11 STZ $11CB [$80:11CB] A:00B8 X:0001 Y:00FF P:eNvMxdiZc $80/B617 9C 69 05 STZ $0569 [$80:0569] A:00B8 X:0001 Y:00FF P:eNvMxdiZc $80/B61A C2 20 REP #$20 A:00B8 X:0001 Y:00FF P:eNvMxdiZc $80/B61C 9C CE 11 STZ $11CE ; Set number of VRAM Read DMAs to zero $80/B61F 9C 47 05 STZ $0547 [$80:0547] A:00B8 X:0001 Y:00FF P:eNvmxdiZc $80/B622 9C 5B 05 STZ $055B [$80:055B] A:00B8 X:0001 Y:00FF P:eNvmxdiZc $80/B625 A9 00 02 LDA #$0200 A:00B8 X:0001 Y:00FF P:eNvmxdiZc $80/B628 8D 5D 05 STA $055D [$80:055D] A:0200 X:0001 Y:00FF P:envmxdizc $80/B62B 9C C7 0E STZ $0EC7 ; Clear VRAM DMA Pipeline Entries $80/B62E 9C C9 11 STZ $11C9 ; Clear Number of the next free Animation VRAM DMA slot $80/B631 9C C5 0E STZ $0EC5 [$80:0EC5] A:0200 X:0001 Y:00FF P:envmxdizc $80/B634 9C BB 05 STZ $05BB [$80:05BB] A:0200 X:0001 Y:00FF P:envmxdizc $80/B637 9C C3 05 STZ $05C3 [$80:05C3] A:0200 X:0001 Y:00FF P:envmxdizc $80/B63A 9C D6 16 STZ $16D6 [$80:16D6] A:0200 X:0001 Y:00FF P:envmxdizc $80/B63D 9C D8 16 STZ $16D8 [$80:16D8] A:0200 X:0001 Y:00FF P:envmxdizc $80/B640 A9 00 20 LDA #$2000 A:0200 X:0001 Y:00FF P:envmxdizc $80/B643 85 5A STA $5A [$00:005A] A:2000 X:0001 Y:00FF P:envmxdizc $80/B645 85 5C STA $5C [$00:005C] A:2000 X:0001 Y:00FF P:envmxdizc $80/B647 A9 00 A8 LDA #$A800 A:2000 X:0001 Y:00FF P:envmxdizc $80/B64A 85 5E STA $5E [$00:005E] A:A800 X:0001 Y:00FF P:eNvmxdizc $80/B64C A2 00 00 LDX #$0000 ; Setup Loop Counter $80/B64F 9E 91 05 STZ $0591,x ; Clear all the BG Scroll Register Buffers $80/B652 E8 INX $80/B653 E8 INX $80/B654 E0 10 00 CPX #$0010 $80/B657 D0 F6 BNE $F6 ; [$B64F] $80/B659 A2 00 00 LDX #$0000 ; Setup Loop Counter $80/B65C 9E 71 05 STZ $0571,x ; Clear all the other BG Scroll Register Buffers $80/B65F E8 INX $80/B660 E8 INX $80/B661 E0 10 00 CPX #$0010 $80/B664 D0 F6 BNE $F6 ; [$B65C] $80/B666 E2 20 SEP #$20 $80/B668 4C FA B6 JMP $B6FA ; Clear OAM Buffers
$80/B66B Long Jump to Clear Registers, clear WRAM Bank $7F
$80/B66B 8B PHB ; Buffer Program Bank $80/B66C 4B PHK ; Set Program Bank to $80 $80/B66D AB PLB $80/B66E 20 73 B6 JSR $B673 ; Clear Registers, clear WRAM Bank $7F $80/B671 AB PLB ; Restore Program Bank $80/B672 6B RTL
$80/B673 Clear Registers, clear WRAM Bank $7F
$80/B673 A2 02 42 LDX #$4202 ; Clear $4202 to $420C $80/B676 A9 0B LDA #$0B $80/B678 74 00 STZ $00,x $80/B67A E8 INX $80/B67B 3A DEC A $80/B67C D0 FA BNE $FA [$B678] $80/B67E A9 FF LDA #$FF ; "Programmable I/O Port" $80/B680 8D 01 42 STA $4201 $80/B683 A2 06 21 LDX #$2106 ; Clear $2106 to $2114 $80/B686 A9 0F LDA #$0F $80/B688 74 00 STZ $00,x $80/B68A 74 00 STZ $00,x $80/B68C E8 INX $80/B68D 3A DEC A $80/B68E D0 F8 BNE $F8 $80/B690 A9 80 LDA #$80 $80/B692 95 00 STA $00,x [$00:2115] $80/B694 A9 01 LDA #$01 $80/B696 A2 1A 21 LDX #$211A ; Mode 7 Settings $80/B699 74 00 STZ $00,x ; Clear a lot of Mode 7 Registers $80/B69B 74 01 STZ $01,x $80/B69D 95 01 STA $01,x $80/B69F 74 02 STZ $02,x $80/B6A1 74 02 STZ $02,x $80/B6A3 74 03 STZ $03,x $80/B6A5 74 03 STZ $03,x $80/B6A7 74 04 STZ $04,x $80/B6A9 95 04 STA $04,x $80/B6AB 74 05 STZ $05,x $80/B6AD 74 05 STZ $05,x $80/B6AF 74 06 STZ $06,x $80/B6B1 74 06 STZ $06,x $80/B6B3 A2 23 21 LDX #$2123 ; Clear $2123 to $212E $80/B6B6 A9 0C LDA #$0C $80/B6B8 74 00 STZ $00,x $80/B6BA E8 INX $80/B6BB 3A DEC A $80/B6BC D0 FA BNE $FA [$B6B8] $80/B6BE A2 30 21 LDX #$2130 $80/B6C1 A9 30 LDA #$30 $80/B6C3 95 00 STA $00,x ; $2130 - Color Addition $80/B6C5 74 01 STZ $01,x ; $2131 - Color Subtraction $80/B6C7 A9 E0 LDA #$E0 $80/B6C9 95 02 STA $02,x ; $2132 - Fixed Color Data $80/B6CB 74 03 STZ $03,x ; $2133 - Screen Mode/Video Select
And then proceeds on the next part
$80/B6CD Set up $7F Clear DMA
$80/B6CD A0 00 00 LDY #$0000 ; Transfer $10000 Byte $80/B6D0 8C 05 43 STY $4305 $80/B6D3 A0 00 00 LDY #$0000 ; Destination: #$7F:0000 $80/B6D6 38 SEC $80/B6D7 A2 F1 B6 LDX #$B6F1 ; Position of the Clear Byte: $80/B6F1 $80/B6DA A9 80 LDA #$80 $80/B6DC 20 AB 9D JSR $9DAB ; Fixed WRAM Clear DMA
$80/B6DF Set up VRAM Clear DMA
$80/B6DF A0 00 00 LDY #$0000 ; Transfer $10000 Byte $80/B6E2 8C 05 43 STY $4305 $80/B6E5 A0 00 00 LDY #$0000 ; (VRAM-)Destination: #0000 $80/B6E8 A2 F1 B6 LDX #$B6F1 ; Position of the Clear Byte: $80/B6F1 $80/B6EB A9 80 LDA #$80 $80/B6ED 20 89 9D JSR $9D89 ; Fixed VRAM Clear DMA $80/B6F0 60 RTS
$80/B6FA Clear OAM Buffers
$80/B6FA C2 20 REP #$20 $80/B6FC A9 00 E8 LDA #$E800 ; Clear Value for OAM Low Table Buffer $80/B6FF A2 00 01 LDX #$0100 ; Start Address of the Low Table of OAM Buffer 1 $80/B702 A0 80 00 LDY #$0080 ; Number of Sprites - All Sprites $80/B705 95 00 STA $00,x ; Clear OAM Buffer 1 Low Table $80/B707 E8 INX $80/B708 E8 INX $80/B709 74 00 STZ $00,x $80/B70B E8 INX $80/B70C E8 INX $80/B70D 88 DEY ; Decrement Loop Counter $80/B70E D0 F5 BNE $F5 ; [$B705] Loop $80/B710 E2 20 SEP #$20 $80/B712 A2 00 03 LDX #$0300 ; Start Address of the High Table of OAM Buffer 1 $80/B715 A0 20 00 LDY #$0020 ; Number of Bytes to do / High Table Size $80/B718 74 00 STZ $00,x ; Clear OAM Buffer 1 High Table $80/B71A E8 INX $80/B71B 88 DEY $80/B71C D0 FA BNE $FA ; [$B718] $80/B71E C2 20 REP #$20 $80/B720 A9 00 E8 LDA #$E800 ; Clear Value for OAM Low Table Buffer $80/B723 A2 20 03 LDX #$0320 ; Start Address of the Low Table of OAM Buffer 2 $80/B726 A0 80 00 LDY #$0080 $80/B729 95 00 STA $00,x ; Clear OAM Buffer 2 Low Table $80/B72B E8 INX $80/B72C E8 INX $80/B72D 74 00 STZ $00,x $80/B72F E8 INX $80/B730 E8 INX $80/B731 88 DEY $80/B732 D0 F5 BNE $F5 ; [$B729] $80/B734 E2 20 SEP #$20 $80/B736 A2 20 05 LDX #$0520 ; Start Address of the High Table of OAM Buffer 2 $80/B739 A0 20 00 LDY #$0020 $80/B73C 74 00 STZ $00,x ; Clear OAM Buffer 2 High Table $80/B73E E8 INX $80/B73F 88 DEY $80/B740 D0 FA BNE $FA ; [$B73C] $80/B742 A9 01 LDA #$01 ; Set Flag for an OAM Update $80/B744 8D 40 05 STA $0540 $80/B747 A9 80 LDA #$80 ; Number of Free sprites in $320(?) $80/B749 8D 41 05 STA $0541 $80/B74C A2 20 00 LDX #$0020 ; ??? Number of used Sprites in $0100 = $20, $0320 = $00??? $80/B74F 8E 43 05 STX $0543 $80/B752 A2 20 03 LDX #$0320 ; Set the OAM buffer to $0320 $80/B755 8E 45 05 STX $0545 $80/B758 60 RTS
$80/B7D6 ?
$80/B7D6 8B PHB ; Buffer Data Bank on Stack $80/B7D7 4B PHK ; Set Data Bank to $80 $80/B7D8 AB PLB $80/B7D9 20 DE B7 JSR $B7DE [$80:B7DE] A:000B X:0006 Y:87F0 P:eNvMxdizc $80/B7DC AB PLB ; Restore Data Bank from Stack $80/B7DD 6B RTL
$80/B7DE ?
$80/B7DE A4 39 LDY $39 ; (Load a Figure number) $80/B7E0 B9 AE 17 LDA $17AE,y ; Load Character Sprite $80/B7E3 C9 F0 CMP #$F0 $80/B7E5 B0 0E BCS $0E ; [$B7F5] Branch if Sprite number is higher than #$EF $80/B7E7 C9 DC CMP #$DC A:003B X:0006 Y:0006 P:envMxdizc $80/B7E9 A9 0C LDA #$0C A:003B X:0006 Y:0006 P:envMxdizc $80/B7EB 90 08 BCC $08 [$B7F5] A:000C X:0006 Y:0006 P:envMxdizc
- code is missing here
$80/B7F5 A6 3B LDX $3B [$00:003B] A:000C X:0006 Y:0006 P:envMxdizc $80/B7F7 20 7C B8 JSR $B87C [$80:B87C] A:000C X:0000 Y:0006 P:envMxdiZc $80/B7FA 86 3B STX $3B [$00:003B] A:0000 X:0006 Y:0006 P:envMxdiZc $80/B7FC C2 20 REP #$20 A:0000 X:0006 Y:0006 P:envMxdiZc $80/B7FE 8A TXA A:0000 X:0006 Y:0006 P:envmxdiZc $80/B7FF 99 3E 1E STA $1E3E,y ; (Value related to figure animation) $80/B802 E2 20 SEP #$20 A:0006 X:0006 Y:0006 P:envmxdizc $80/B804 98 TYA A:0006 X:0006 Y:0006 P:envMxdizc $80/B805 9D C4 0B STA $0BC4,x[$80:0BCA] A:0006 X:0006 Y:0006 P:envMxdizc $80/B808 C2 20 REP #$20 A:0006 X:0006 Y:0006 P:envMxdizc $80/B80A B9 D6 1C LDA $1CD6,y[$80:1CDC] A:0006 X:0006 Y:0006 P:envmxdizc $80/B80D 85 00 STA $00 [$00:0000] A:0204 X:0006 Y:0006 P:envmxdizc $80/B80F E2 20 SEP #$20 A:0204 X:0006 Y:0006 P:envmxdizc $80/B811 B9 C6 1D LDA $1DC6,y[$80:1DCC] A:0204 X:0006 Y:0006 P:envMxdizc $80/B814 0A ASL A A:020B X:0006 Y:0006 P:envMxdizc $80/B815 85 02 STA $02 [$00:0002] A:0216 X:0006 Y:0006 P:envMxdizc $80/B817 BB TYX A:0216 X:0006 Y:0006 P:envMxdizc $80/B818 22 8C B8 80 JSL $80B88C[$80:B88C] A:0216 X:0006 Y:0006 P:envMxdizc $80/B81C 08 PHP A:0001 X:0006 Y:0006 P:eNvMxdizc $80/B81D A0 00 00 LDY #$0000 A:0001 X:0006 Y:0006 P:eNvMxdizc $80/B820 A6 3B LDX $3B [$00:003B] A:0001 X:0006 Y:0000 P:envMxdiZc $80/B822 22 C6 81 8B JSL $8B81C6[$8B:81C6] A:0001 X:0006 Y:0000 P:envMxdizc $80/B826 A4 39 LDY $39 [$00:0039] A:0204 X:0006 Y:0000 P:eNvMxdizc $80/B828 22 F4 B8 80 JSL $80B8F4[$80:B8F4] A:0204 X:0006 Y:0006 P:envMxdizc $80/B82C 9D 03 07 STA $0703,x[$80:0709] A:0006 X:0006 Y:0006 P:eNvMxdizC $80/B82F 28 PLP A:0006 X:0006 Y:0006 P:eNvMxdizC $80/B830 B0 21 BCS $21 [$B853] A:0006 X:0006 Y:0006 P:eNvMxdizc $80/B832 7B TDC A:0006 X:0006 Y:0006 P:eNvMxdizc $80/B833 B9 6E 1B LDA $1B6E,y[$80:1B74] A:0000 X:0006 Y:0006 P:envMxdiZc $80/B836 A8 TAY A:0001 X:0006 Y:0006 P:envMxdizc $80/B837 B9 6D B8 LDA $B86D,y[$80:B86E] A:0001 X:0006 Y:0001 P:envMxdizc $80/B83A 1D 03 07 ORA $0703,x[$80:0709] A:0040 X:0006 Y:0001 P:envMxdizc $80/B83D 9D 03 07 STA $0703,x[$80:0709] A:0046 X:0006 Y:0001 P:envMxdizc $80/B840 A4 39 LDY $39 [$00:0039] A:0046 X:0006 Y:0001 P:envMxdizc $80/B842 B9 AE 17 LDA $17AE,y ; Load Figure's Character Sprite number $80/B845 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $80/B849 90 08 BCC $08 ; [$B853] Branch if Figure has no Big Sprite
- code is missing here
$80/B853 A5 06 LDA $06 [$00:0006] A:003B X:0006 Y:0006 P:envMxdizc $80/B855 E6 06 INC $06 [$00:0006] A:000B X:0006 Y:0006 P:envMxdizc $80/B857 9D C3 06 STA $06C3,x[$80:06C9] A:000B X:0006 Y:0006 P:envMxdizc $80/B85A BD 03 07 LDA $0703,x[$80:0709] A:000B X:0006 Y:0006 P:envMxdizc $80/B85D 29 06 AND #$06 A:0046 X:0006 Y:0006 P:envMxdizc $80/B85F 9D 43 0C STA $0C43,x[$80:0C49] A:0006 X:0006 Y:0006 P:envMxdizc $80/B862 A9 FF LDA #$FF A:0006 X:0006 Y:0006 P:envMxdizc $80/B864 9D C4 08 STA $08C4,x[$80:08CA] A:00FF X:0006 Y:0006 P:eNvMxdizc $80/B867 20 A4 99 JSR $99A4 [$80:99A4] A:00FF X:0006 Y:0006 P:eNvMxdizc $80/B86A A6 39 LDX $39 [$00:0039] A:8102 X:0006 Y:0006 P:envMxdizc $80/B86C 60 RTS A:8102 X:0006 Y:0006 P:envMxdizc
$80/B87C ?
$80/B87C BD 03 06 LDA $0603,x[$80:0607] A:0006 X:0004 Y:0004 P:envMxdizC $80/B87F F0 09 BEQ $09 ; [$B88A] Exit if empty $80/B881 E8 INX A:0001 X:0004 Y:0004 P:envMxdizC $80/B882 E8 INX A:0001 X:0005 Y:0004 P:envMxdizC $80/B883 E0 40 00 CPX #$0040 A:0001 X:0006 Y:0004 P:envMxdizC $80/B886 90 F4 BCC $F4 [$B87C] A:0001 X:0006 Y:0004 P:eNvMxdizc
- code is missing here
$80/B88A 18 CLC A:0000 X:0006 Y:0004 P:envMxdiZc $80/B88B 60 RTS A:0000 X:0006 Y:0004 P:envMxdiZc
$80/B88C ?
$80/B88C 8B PHB ; Buffer Data Bank on Stack $80/B88D 4B PHK ; Set Data Bank to $80 $80/B88E AB PLB $80/B88F 5A PHY ; Buffer Y on Stack $80/B890 9B TXY A:0003 X:0002 Y:070B P:eNvMxdizc $80/B891 B9 AE 17 LDA $17AE,y[$80:17B0] A:0003 X:0002 Y:0002 P:envMxdizc $80/B894 C9 F0 CMP #$F0 A:0035 X:0002 Y:0002 P:envMxdizc $80/B896 B0 52 BCS $52 [$B8EA] A:0035 X:0002 Y:0002 P:envMxdizc $80/B898 C9 DC CMP #$DC A:0035 X:0002 Y:0002 P:envMxdizc $80/B89A B0 4A BCS $4A [$B8E6] A:0035 X:0002 Y:0002 P:envMxdizc $80/B89C 7B TDC A:0035 X:0002 Y:0002 P:envMxdizc $80/B89D B9 D7 1C LDA $1CD7,y[$80:1CD9] A:0000 X:0002 Y:0002 P:envMxdiZc $80/B8A0 C2 20 REP #$20 A:0007 X:0002 Y:0002 P:envMxdizc $80/B8A2 EB XBA A:0007 X:0002 Y:0002 P:envmxdizc $80/B8A3 4A LSR A A:0700 X:0002 Y:0002 P:envmxdiZc $80/B8A4 4A LSR A A:0380 X:0002 Y:0002 P:envmxdizc $80/B8A5 4A LSR A A:01C0 X:0002 Y:0002 P:envmxdizc $80/B8A6 E2 20 SEP #$20 A:00E0 X:0002 Y:0002 P:envmxdizc $80/B8A8 19 D6 1C ORA $1CD6,y[$80:1CD8] A:00E0 X:0002 Y:0002 P:envMxdizc $80/B8AB AA TAX A:00EB X:0002 Y:0002 P:eNvMxdizc $80/B8AC B9 C7 1D LDA $1DC7,y[$80:1DC9] A:00EB X:00EB Y:0002 P:envMxdizc $80/B8AF 20 7E C2 JSR $C27E [$80:C27E] A:0000 X:00EB Y:0002 P:envMxdiZc $80/B8B2 08 PHP A:0003 X:00EB Y:0002 P:envMxdizc $80/B8B3 B9 AE 17 LDA $17AE,y[$80:17B0] A:0003 X:00EB Y:0002 P:envMxdizc $80/B8B6 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $80/B8BA B0 15 BCS $15 [$B8D1] A:0035 X:00EB Y:0002 P:envMxdizc $80/B8BC B9 DE 19 LDA $19DE,y[$80:19E0] A:0035 X:00EB Y:0002 P:envMxdizc $80/B8BF 89 01 BIT #$01 A:0000 X:00EB Y:0002 P:envMxdiZc $80/B8C1 F0 05 BEQ $05 [$B8C8] A:0000 X:00EB Y:0002 P:envMxdiZc $80/B8C8 28 PLP A:0000 X:00EB Y:0002 P:envMxdiZc $80/B8C9 A9 01 LDA #$01 A:0000 X:00EB Y:0002 P:envMxdizc $80/B8CB 90 22 BCC $22 [$B8EF] A:0001 X:00EB Y:0002 P:envMxdizc
- code is missing here
$80/B8EF 18 CLC A:0001 X:00EB Y:0002 P:envMxdizc $80/B8F0 BB TYX A:0001 X:00EB Y:0002 P:envMxdizc $80/B8F1 7A PLY ; Restore Y from Stack $80/B8F2 AB PLB ; Restore Data Bank from Stack $80/B8F3 6B RTL
$80/B8F4 ?
$80/B8F4 8B PHB ; Buffer Data Bank on Stack $80/B8F5 4B PHK ; Set Data Bank to $80 $80/B8F6 AB PLB $80/B8F7 DA PHX ; Buffer X on Stack $80/B8F8 BB TYX A:0204 X:0006 Y:0006 P:eNvMxdizc $80/B8F9 22 4C A5 88 JSL $88A54C[$88:A54C] A:0204 X:0006 Y:0006 P:envMxdizc $80/B8FD 90 04 BCC $04 [$B903] A:0000 X:0006 Y:0006 P:eNvMxdizc
- code is missing here
$80/B903 C9 00 CMP #$00 A:0000 X:0006 Y:0006 P:eNvMxdizc $80/B905 F0 04 BEQ $04 [$B90B] A:0000 X:0006 Y:0006 P:envMxdiZC
- code is missing here
$80/B90B A9 06 LDA #$06 A:0000 X:0006 Y:0006 P:envMxdiZC $80/B90D FA PLX ; Restore X and Data Bank from Stack $80/B90E AB PLB $80/B90F 6B RTL
$80/B910 ?
$80/B910 8B PHB ; Buffer Data Bank on Stack $80/B911 A9 7E LDA #$7E ; Set Data Bank to $7E $80/B913 48 PHA $80/B914 AB PLB $80/B915 DA PHX ; Buffer X and Y on Stack $80/B916 5A PHY $80/B917 A6 5C LDX $5C [$00:005C] A:887E X:0006 Y:87F0 P:envMxdizc $80/B919 A0 0C 00 LDY #$000C A:887E X:3911 Y:87F0 P:envMxdizc $80/B91C C2 20 REP #$20 A:887E X:3911 Y:000C P:envMxdizc $80/B91E 9E 00 00 STZ $0000,x[$7E:3911] A:887E X:3911 Y:000C P:envmxdizc $80/B921 E8 INX A:887E X:3911 Y:000C P:envmxdizc $80/B922 E8 INX A:887E X:3912 Y:000C P:envmxdizc $80/B923 88 DEY A:887E X:3913 Y:000C P:envmxdizc $80/B924 D0 F8 BNE $F8 [$B91E] A:887E X:3913 Y:000B P:envmxdizc $80/B926 E2 20 SEP #$20 A:887E X:3929 Y:0000 P:envmxdiZc $80/B928 A0 00 00 LDY #$0000 A:887E X:3929 Y:0000 P:envMxdiZc $80/B92B B9 03 06 LDA $0603,y[$7E:0603] A:887E X:3929 Y:0000 P:envMxdiZc $80/B92E F0 31 BEQ $31 [$B961] A:8801 X:3929 Y:0000 P:envMxdizc $80/B930 C9 61 CMP #$61 A:8801 X:3929 Y:0000 P:envMxdizc $80/B932 B0 2D BCS $2D [$B961] A:8801 X:3929 Y:0000 P:eNvMxdizc $80/B934 7B TDC A:8801 X:3929 Y:0000 P:eNvMxdizc $80/B935 B9 C3 06 LDA $06C3,y[$7E:06C3] A:0000 X:3929 Y:0000 P:envMxdiZc $80/B938 C9 08 CMP #$08 $80/B93A 90 25 BCC $25 ; [$B961] Do next entry if value is lower than #$08 $80/B93C C9 20 CMP #$20 $80/B93E B0 21 BCS $21 ; [$B961] Do next entry if value is higher than #$1F $80/B940 38 SEC A:0008 X:3929 Y:0000 P:eNvMxdizc $80/B941 E9 08 SBC #$08 A:0008 X:3929 Y:0000 P:eNvMxdizC $80/B943 C2 21 REP #$21 A:0000 X:3929 Y:0000 P:envMxdiZC $80/B945 18 CLC A:0000 X:3929 Y:0000 P:envmxdiZc $80/B946 65 5C ADC $5C [$00:005C] A:0000 X:3929 Y:0000 P:envmxdiZc $80/B948 AA TAX A:3911 X:3929 Y:0000 P:envmxdizc $80/B949 E2 20 SEP #$20 A:3911 X:3911 Y:0000 P:envmxdizc $80/B94B FE 00 00 INC $0000,x[$7E:3911] A:3911 X:3911 Y:0000 P:envMxdizc $80/B94E DA PHX A:3911 X:3911 Y:0000 P:envMxdizc $80/B94F 7B TDC ; Clear 16-bit A $80/B950 B9 C4 0B LDA $0BC4,y[$7E:0BC4] A:0000 X:3911 Y:0000 P:envMxdiZc $80/B953 AA TAX A:0000 X:3911 Y:0000 P:envMxdiZc $80/B954 BD AF 17 LDA $17AF,x ; Load Character Class number $80/B957 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $80/B95B FA PLX A:0001 X:0000 Y:0000 P:envMxdiZc $80/B95C 90 03 BCC $03 ; [$B961] Do next entry if the Sprite isn't big
- code is missing here
$80/B961 C8 INY ; Increment Load Index twice $80/B962 C8 INY $80/B963 C0 40 00 CPY #$0040 $80/B966 90 C3 BCC $C3 ; [$B92B] Loop until every entry is worked off $80/B968 7B TDC A:0000 X:3913 Y:0040 P:envMxdiZC $80/B969 A3 03 LDA $03,s [$00:1FD2] A:0000 X:3913 Y:0040 P:envMxdiZC $80/B96B A8 TAY A:0006 X:3913 Y:0040 P:envMxdizC $80/B96C B9 AF 17 LDA $17AF,y[$7E:17B5] A:0006 X:3913 Y:0006 P:envMxdizC $80/B96F 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $80/B973 B0 10 BCS $10 [$B985] A:003B X:3913 Y:0006 P:envMxdizc $80/B975 A6 5C LDX $5C [$00:005C] A:003B X:3913 Y:0006 P:envMxdizc $80/B977 A0 18 00 LDY #$0018 A:003B X:3911 Y:0006 P:envMxdizc $80/B97A BD 00 00 LDA $0000,x[$7E:3911] A:003B X:3911 Y:0018 P:envMxdizc $80/B97D F0 23 BEQ $23 [$B9A2] A:0001 X:3911 Y:0018 P:envMxdizc $80/B97F E8 INX A:0001 X:3911 Y:0018 P:envMxdizc $80/B980 88 DEY A:0001 X:3912 Y:0018 P:envMxdizc $80/B981 D0 F7 BNE $F7 [$B97A] A:0001 X:3912 Y:0017 P:envMxdizc
- code is missing here
$80/B9A2 C2 20 REP #$20 A:0000 X:3914 Y:0015 P:envMxdiZc $80/B9A4 38 SEC A:0000 X:3914 Y:0015 P:envmxdiZc $80/B9A5 8A TXA A:0000 X:3914 Y:0015 P:envmxdiZC $80/B9A6 E5 5C SBC $5C [$00:005C] A:3914 X:3914 Y:0015 P:envmxdizC $80/B9A8 E2 20 SEP #$20 A:0003 X:3914 Y:0015 P:envmxdizC $80/B9AA 18 CLC A:0003 X:3914 Y:0015 P:envMxdizC $80/B9AB 69 08 ADC #$08 A:0003 X:3914 Y:0015 P:envMxdizc $80/B9AD 18 CLC A:000B X:3914 Y:0015 P:envMxdizc $80/B9AE 7A PLY ; Restore Y, X and Data Bank from Stack $80/B9AF FA PLX $80/B9B0 AB PLB $80/B9B1 6B RTL
$80/B9B2 ?
$80/B9B2 8B PHB ; Buffer Data Bank on Stack $80/B9B3 4B PHK ; Set Data Bank to $80 $80/B9B4 AB PLB $80/B9B5 20 BA B9 JSR $B9BA [$80:B9BA] A:0000 X:3300 Y:331A P:eNvMxdizc $80/B9B8 AB PLB : Restore Data Bank $80/B9B9 6B RTL
$80/B9BA ?
This subroutine checks all values from $0603 to $0642. If the value in these registers is something else than #$00 or #$C9, it uses that value as index for the Jump Table in the subroutine below this one.
$80/B9BA A2 00 00 LDX #$0000 ; Clear Load Index/Loop counter $80/B9BD BD 03 06 LDA $0603,x[$80:0603] A:E801 X:0000 Y:0320 P:envMxdiZC $80/B9C0 F0 07 BEQ $07 ; [$B9C9] Leave out subroutine if value is #$00 $80/B9C2 C9 C9 CMP #$C9 $80/B9C4 F0 03 BEQ $03 ; [$B9C9] Leave out subroutine if value is #$C9 $80/B9C6 20 D1 B9 JSR $B9D1 ; [$80:B9D1] ? (Use Jump Table) $80/B9C9 E8 INX ; Increment Load Index/Loop counter twice $80/B9CA E8 INX $80/B9CB E0 40 00 CPX #$0040 ; Is the maximum value reached? $80/B9CE 90 ED BCC $ED ; [$B9BD] Loop $80/B9D0 60 RTS
$80/B9D1 Use Jump Table
$80/B9D1 86 3B STX $3B ; Buffer X value $80/B9D3 7B TDC A:A1CA X:000C Y:0002 P:envMxdizC $80/B9D4 BD C3 08 LDA $08C3,x[$80:08CF] A:0000 X:000C Y:0002 P:envMxdiZC $80/B9D7 0A ASL A A:0003 X:000C Y:0002 P:envMxdizC $80/B9D8 A8 TAY A:0006 X:000C Y:0002 P:envMxdizc $80/B9D9 BE E3 B9 LDX $B9E3,y[$80:B9E9] A:0006 X:000C Y:0006 P:envMxdizc $80/B9DC 86 00 STX $00 [$00:0000] A:0006 X:BC4F Y:0006 P:eNvMxdizc $80/B9DE A6 3B LDX $3B ; Restore X value $80/B9E0 6C 00 00 JMP ($0000)[$80:BC4F] A:0006 X:000C Y:0006 P:envMxdizc
$80/B9E3 75 BA --- Entry #$00 - $BA75 $80/B9E5 B2 BA --- Entry #$01 - $BAB2 $80/B9E7 DB BA --- Entry #$02 - $BADB $80/B9E9 4F BC --- Entry #$03 - $BC4F $80/B9EB 81 BA --- Entry #$04 - $BA81 $80/B9ED 51 BD --- Entry #$05 - $BD51 $80/B9EF 5C BD --- Entry #$06 - $BD5C $80/B9F1 63 BD --- Entry #$07 - $BD63 $80/B9F3 67 BD --- Entry #$08 - $BD67 $80/B9F5 6E BD --- Entry #$09 - $BD6E $80/B9F7 78 BD --- Entry #$0A - $BD78 $80/B9F9 87 BD --- Entry #$0B - $BD87 $80/B9FB E0 BC --- Entry #$0C - $BCE0 $80/B9FD 21 BD --- Entry #$0D - $BD21 $80/B9FF 94 BD --- Entry #$0E - $BD94 $80/BA01 89 BA --- Entry #$0F - $BA89 $80/BA03 BE BD --- Entry #$10 - $BDBE $80/BA05 FF BD --- Entry #$11 - $BDFF $80/BA07 1D BE --- Entry #$12 - $BE1D $80/BA09 89 BA --- Entry #$13 - $BA89 $80/BA0B 89 BA --- Entry #$14 - $BA89 $80/BA0D 50 BE --- Entry #$15 - $BE50 $80/BA0F 63 BE --- Entry #$16 - $BE63 $80/BA11 6D BE --- Entry #$17 - $BE6D $80/BA13 76 BE --- Entry #$18 - $BE76 $80/BA15 8E BA --- Entry #$19 - $BA8E $80/BA17 A3 BE --- Entry #$1A - $BEA3 $80/BA19 AB BE --- Entry #$1B - $BEAB $80/BA1B 8E BE --- Entry #$1C - $BE8E $80/BA1D 95 BE --- Entry #$1D - $BE95 $80/BA1F B9 BE --- Entry #$1E - $BEB9 $80/BA21 D5 BE --- Entry #$1F - $BED5 $80/BA23 08 BF --- Entry #$20 - $BF08 $80/BA25 1C BF --- Entry #$21 - $BF1C $80/BA27 B9 BE --- Entry #$22 - $BEB9 $80/BA29 D5 BE --- Entry #$23 - $BED5 $80/BA2B 25 BF --- Entry #$24 - $BF25 $80/BA2D B9 BE --- Entry #$25 - $BEB9 $80/BA2F 39 BF --- Entry #$26 - $BF39 $80/BA31 71 BF --- Entry #$27 - $BF71 $80/BA33 B9 BE --- Entry #$28 - $BEB9 $80/BA35 D5 BE --- Entry #$29 - $BED5 $80/BA37 82 BF --- Entry #$2A - $BF82 $80/BA39 13 C0 --- Entry #$2B - $C013 $80/BA3B DD C0 --- Entry #$2C - $C0DD $80/BA3D 0B C1 --- Entry #$2D - $C10B $80/BA3F 89 BA --- Entry #$2E - $BA89 $80/BA41 97 BA --- Entry #$2F - $BA97 $80/BA43 9F BB --- Entry #$30 - $BB9F $80/BA45 44 BB --- Entry #$31 - $BB44 $80/BA47 99 BB --- Entry #$32 - $BB99 $80/BA49 78 C0 --- Entry #$33 - $C078 $80/BA4B AC C0 --- Entry #$34 - $C0AC $80/BA4D D4 C0 --- Entry #$35 - $C0D4 $80/BA4F 89 BA --- Entry #$36 - $BA89 $80/BA51 89 BA --- Entry #$37 - $BA89 $80/BA53 4B C1 --- Entry #$38 - $C14B $80/BA55 51 C1 --- Entry #$39 - $C151 $80/BA57 57 C1 --- Entry #$3A - $C157 $80/BA59 5E C1 --- Entry #$3B - $C15E $80/BA5B 64 C1 --- Entry #$3C - $C164 $80/BA5D 44 BD --- Entry #$3D - $BD44 $80/BA5F 22 C0 --- Entry #$3E - $C022 $80/BA61 39 C0 --- Entry #$3F - $C039 $80/BA63 6B C0 --- Entry #$40 - $C06B $80/BA65 6F C0 --- Entry #$41 - $C06F $80/BA67 89 BA --- Entry #$42 - $BA89 $80/BA69 89 BA --- Entry #$43 - $BA89 $80/BA6B 89 BA --- Entry #$44 - $BA89 $80/BA6D 89 BA --- Entry #$45 - $BA89 $80/BA6F EF BF --- Entry #$46 - $BFEF $80/BA71 0A C0 --- Entry #$47 - $C00A $80/BA73 B5 BE --- Entry #$48 - $BEB5
$80/BA75 ?
$80/BA75 BD 04 07 LDA $0704,x[$80:0704] A:0000 X:0000 Y:0000 P:envMxdiZc $80/BA78 29 FB AND #$FB A:0000 X:0000 Y:0000 P:envMxdiZc $80/BA7A 9D 04 07 STA $0704,x[$80:0704] A:0000 X:0000 Y:0000 P:envMxdiZc $80/BA7D 9E 43 08 STZ $0843,x[$80:0843] A:0000 X:0000 Y:0000 P:envMxdiZc $80/BA80 60 RTS A:0000 X:0000 Y:0000 P:envMxdiZc
$80/BC4F ?
$80/BC4F 7B TDC A:0006 X:0008 Y:0006 P:envMxdizc $80/BC50 BD C4 08 LDA $08C4,x[$80:08CC] A:0000 X:0008 Y:0006 P:envMxdiZc $80/BC53 A8 TAY A:0006 X:0008 Y:0006 P:envMxdizc $80/BC54 B9 03 06 LDA $0603,y[$80:0609] A:0006 X:0008 Y:0006 P:envMxdizc $80/BC57 D0 03 BNE $03 [$BC5C] A:0001 X:0008 Y:0006 P:envMxdizc $80/BC59 4C DC BC JMP $BCDC [$80:BCDC] A:0000 X:0008 Y:0006 P:envMxdiZc $80/BC5C 20 29 D9 JSR $D929 [$80:D929] A:0001 X:0008 Y:0006 P:envMxdizc $80/BC5F C2 20 REP #$20 A:0001 X:0008 Y:0006 P:envMxdizc $80/BC61 B9 03 0A LDA $0A03,y[$80:0A09] A:0001 X:0008 Y:0006 P:envmxdizc $80/BC64 9D 03 0A STA $0A03,x[$80:0A0B] A:0988 X:0008 Y:0006 P:envmxdizc $80/BC67 B9 43 0A LDA $0A43,y[$80:0A49] A:0988 X:0008 Y:0006 P:envmxdizc $80/BC6A 9D 43 0A STA $0A43,x[$80:0A4B] A:0780 X:0008 Y:0006 P:envmxdizc $80/BC6D E2 20 SEP #$20 A:0780 X:0008 Y:0006 P:envmxdizc $80/BC6F 9B TXY A:0780 X:0008 Y:0006 P:envMxdizc $80/BC70 20 90 DA JSR $DA90 [$80:DA90] A:0780 X:0008 Y:0008 P:envMxdizc $80/BC73 0A ASL A A:0004 X:0008 Y:0008 P:envMxdizC $80/BC74 9D 84 0A STA $0A84,x[$80:0A8C] A:0008 X:0008 Y:0008 P:envMxdizc $80/BC77 64 00 STZ $00 [$00:0000] A:0008 X:0008 Y:0008 P:envMxdizc $80/BC79 85 01 STA $01 [$00:0001] A:0008 X:0008 Y:0008 P:envMxdizc $80/BC7B 7B TDC A:0008 X:0008 Y:0008 P:envMxdizc $80/BC7C BD C4 08 LDA $08C4,x[$80:08CC] A:0000 X:0008 Y:0008 P:envMxdiZc $80/BC7F A8 TAY A:0006 X:0008 Y:0008 P:envMxdizc $80/BC80 C2 20 REP #$20 A:0006 X:0008 Y:0006 P:envMxdizc $80/BC82 B9 83 0A LDA $0A83,y[$80:0A89] A:0006 X:0008 Y:0006 P:envmxdizc $80/BC85 C5 00 CMP $00 [$00:0000] A:0800 X:0008 Y:0006 P:envmxdizc $80/BC87 E2 20 SEP #$20 A:0800 X:0008 Y:0006 P:envmxdiZC $80/BC89 B0 34 BCS $34 [$BCBF] A:0800 X:0008 Y:0006 P:envMxdiZC
- code is missing here
$80/BCBF BD 84 0A LDA $0A84,x[$80:0A8C] A:0800 X:0008 Y:0006 P:envMxdiZC $80/BCC2 D0 04 BNE $04 [$BCC8] A:0808 X:0008 Y:0006 P:envMxdizC
- code is missing here
$80/BCC8 A9 00 LDA #$00 A:0808 X:0008 Y:0006 P:envMxdizC $80/BCCA 9D 04 07 STA $0704,x[$80:070C] A:0800 X:0008 Y:0006 P:envMxdiZC $80/BCCD 9E C3 0C STZ $0CC3,x[$80:0CCB] A:0800 X:0008 Y:0006 P:envMxdiZC $80/BCD0 20 50 D5 JSR $D550 [$80:D550] A:0800 X:0008 Y:0006 P:envMxdiZC $80/BCD3 20 A4 99 JSR $99A4 [$80:99A4] A:08FF X:0008 Y:000A P:eNvMxdizC $80/BCD6 A9 01 LDA #$01 A:8107 X:0008 Y:000A P:envMxdizc $80/BCD8 9D 83 0C STA $0C83,x[$80:0C8B] A:8101 X:0008 Y:000A P:envMxdizc $80/BCDB 60 RTS A:8101 X:0008 Y:000A P:envMxdizc
$80/BCDC ?
$80/BCDC 9E 03 06 STZ $0603,x[$80:060B] A:0000 X:0008 Y:0006 P:envMxdiZc $80/BCDF 60 RTS A:0000 X:0008 Y:0006 P:envMxdiZc
$80/BD51 ?
$80/BD51 86 3D STX $3D [$00:003D] A:000A X:0006 Y:000A P:envMxdizc $80/BD53 FE C3 08 INC $08C3,x[$80:08C9] A:000A X:0006 Y:000A P:envMxdizc $80/BD56 20 A7 D1 JSR $D1A7 [$80:D1A7] A:000A X:0006 Y:000A P:envMxdizc $80/BD59 20 24 D1 JSR $D124 [$80:D124] A:00FF X:0006 Y:0002 P:envMxdizc $80/BD5C 20 9E D0 JSR $D09E [$80:D09E] A:0010 X:0006 Y:001A P:envMxdizc $80/BD5F 20 A4 99 JSR $99A4 [$80:99A4] A:6201 X:0006 Y:0004 P:envMxdizc $80/BD62 60 RTS A:8107 X:0006 Y:0004 P:envMxdizc
$80/BD63 ?
$80/BD63 20 58 D3 JSR $D358 [$80:D358] A:000E X:0006 Y:000E P:envMxdizc $80/BD66 60 RTS A:0000 X:0006 Y:0004 P:envMxdiZc
$80/C23F ?
$80/C23F DA PHX ; Buffer X and Y on stack $80/C240 5A PHY $80/C241 7B TDC ; Clear 16-bit A $80/C242 BD C4 0B LDA $0BC4,x[$80:0BCA] A:0000 X:0006 Y:0004 P:envMxdiZc $80/C245 A8 TAY A:0004 X:0006 Y:0004 P:envMxdizc $80/C246 BD 44 0A LDA $0A44,x[$80:0A4A] A:0004 X:0006 Y:0004 P:envMxdizc $80/C249 EB XBA ; Multiply by #$20 $80/C24A C2 20 REP #$20 $80/C24C 4A LSR A $80/C24D 4A LSR A $80/C24E 4A LSR A $80/C24F E2 20 SEP #$20 $80/C251 1D 04 0A ORA $0A04,x[$80:0A0A] A:00E0 X:0006 Y:0004 P:envMxdizc $80/C254 AA TAX A:00E9 X:0006 Y:0004 P:eNvMxdizc $80/C255 B9 C7 1D LDA $1DC7,y[$80:1DCB] A:00E9 X:00E9 Y:0004 P:envMxdizc $80/C258 20 7E C2 JSR $C27E [$80:C27E] A:0001 X:00E9 Y:0004 P:envMxdizc $80/C25B 7A PLY ; Restore Y and X from stack $80/C25C FA PLX $80/C25D 60 RTS
$80/C276 ?
$80/C276 8B PHB ; Buffer Data Bank on Stack $80/C277 4B PHK ; Set Data Bank to $80 $80/C278 AB PLB $80/C279 20 7E C2 JSR $C27E [$80:C27E] A:0000 X:00EB Y:00EB P:eNvMxdizc $80/C27C AB PLB ; Restore Data Bank from Stack $80/C27D 6B RTL
$80/C27E ?
$80/C27E 4A LSR A A:0000 X:00EB Y:070B P:envMxdiZc $80/C27F 4A LSR A A:0000 X:00EB Y:070B P:envMxdiZc $80/C280 C9 02 CMP #$02 A:0000 X:00EB Y:070B P:envMxdiZc $80/C282 D0 0E BNE $0E [$C292] A:0000 X:00EB Y:070B P:eNvMxdizc $80/C284 22 E1 AD 86 JSL $86ADE1[$86:ADE1] A:0202 X:0210 Y:0002 P:envMxdiZC $80/C288 90 08 BCC $08 [$C292] A:0201 X:0210 Y:0002 P:eNvMxdizc $80/C28A 7B TDC ; Clear 16-bit A $80/C28B BF 00 C8 7F LDA $7FC800,x ; Load value from the Step Map $80/C28F 3A DEC A A:000A X:018C Y:000C P:envMxdizC $80/C290 38 SEC A:0009 X:018C Y:000C P:envMxdizC $80/C291 60 RTS $80/C292 7B TDC ; Clear 16-bit A $80/C293 BF 00 C8 7F LDA $7FC800,x ; Load value from the Step Map $80/C297 18 CLC A:0003 X:00EB Y:070B P:envMxdizc $80/C298 60 RTS
$80/C2E0 ?
$80/C2E0 8B PHB ; Buffer Data Bank on Stack $80/C2E1 4B PHK ; Set Data Bank to $80 $80/C2E2 AB PLB $80/C2E3 20 E8 C2 JSR $C2E8 [$80:C2E8] A:0007 X:0002 Y:0002 P:eNvMxdizc $80/C2E6 AB PLB ; Restore Data Bank from Stack $80/C2E7 6B RTL
$80/C2E8 ?
$80/C2E8 DA PHX ; Buffer X and Y on Stack $80/C2E9 5A PHY $80/C2EA D4 00 PEI ($00) ; Buffer $00/$01 on Stack $80/C2EC A6 39 LDX $39 [$00:0039] A:0007 X:0002 Y:0002 P:eNvMxdizc $80/C2EE BC D6 1C LDY $1CD6,x[$80:1CD8] A:0007 X:0002 Y:0002 P:envMxdizc $80/C2F1 84 00 STY $00 [$00:0000] A:0007 X:0002 Y:070B P:envMxdizc $80/C2F3 22 B6 8A 82 JSL $828AB6[$82:8AB6] A:0007 X:0002 Y:070B P:envMxdizc $80/C2F7 A5 02 LDA $02 [$00:0002] A:000B X:0002 Y:070B P:eNvMxdizc $80/C2F9 9D D6 1C STA $1CD6,x[$80:1CD8] A:000B X:0002 Y:070B P:envMxdizc $80/C2FC A5 03 LDA $03 [$00:0003] A:000B X:0002 Y:070B P:envMxdizc $80/C2FE 9D D7 1C STA $1CD7,x[$80:1CD9] A:0007 X:0002 Y:070B P:envMxdizc $80/C301 BD C7 1D LDA $1DC7,x[$80:1DC9] A:0007 X:0002 Y:070B P:envMxdizc $80/C304 48 PHA A:0000 X:0002 Y:070B P:envMxdiZc $80/C305 7B TDC A:0000 X:0002 Y:070B P:envMxdiZc $80/C306 A5 03 LDA $03 [$00:0003] A:0000 X:0002 Y:070B P:envMxdiZc $80/C308 EB XBA A:0007 X:0002 Y:070B P:envMxdizc $80/C309 C2 20 REP #$20 A:0700 X:0002 Y:070B P:envMxdiZc $80/C30B 4A LSR A A:0700 X:0002 Y:070B P:envmxdiZc $80/C30C 4A LSR A A:0380 X:0002 Y:070B P:envmxdizc $80/C30D 4A LSR A A:01C0 X:0002 Y:070B P:envmxdizc $80/C30E E2 20 SEP #$20 A:00E0 X:0002 Y:070B P:envmxdizc $80/C310 05 02 ORA $02 [$00:0002] A:00E0 X:0002 Y:070B P:envMxdizc $80/C312 AA TAX A:00EB X:0002 Y:070B P:eNvMxdizc $80/C313 68 PLA A:00EB X:00EB Y:070B P:envMxdizc $80/C314 20 7E C2 JSR $C27E [$80:C27E] A:0000 X:00EB Y:070B P:envMxdiZc $80/C317 A6 39 LDX $39 [$00:0039] A:0003 X:00EB Y:070B P:envMxdizc $80/C319 9D C6 1D STA $1DC6,x[$80:1DC8] A:0003 X:0002 Y:070B P:envMxdizc $80/C31C 22 8C B8 80 JSL $80B88C[$80:B88C] A:0003 X:0002 Y:070B P:envMxdizc $80/C320 BC 3E 1E LDY $1E3E,x[$80:1E40] A:0001 X:0002 Y:070B P:eNvMxdizc $80/C323 99 03 06 STA $0603,y[$80:0605] A:0001 X:0002 Y:0002 P:envMxdizc $80/C326 BD D6 1C LDA $1CD6,x[$80:1CD8] A:0001 X:0002 Y:0002 P:envMxdizc $80/C329 99 04 0A STA $0A04,y[$80:0A06] A:000B X:0002 Y:0002 P:envMxdizc $80/C32C BD D7 1C LDA $1CD7,x[$80:1CD9] A:000B X:0002 Y:0002 P:envMxdizc $80/C32F 99 44 0A STA $0A44,y[$80:0A46] A:0007 X:0002 Y:0002 P:envMxdizc $80/C332 BD C6 1D LDA $1DC6,x[$80:1DC8] A:0007 X:0002 Y:0002 P:envMxdizc $80/C335 0A ASL A A:0003 X:0002 Y:0002 P:envMxdizc $80/C336 99 84 0A STA $0A84,y[$80:0A86] A:0006 X:0002 Y:0002 P:envMxdizc $80/C339 B9 03 07 LDA $0703,y[$80:0705] A:0006 X:0002 Y:0002 P:envMxdizc $80/C33C 29 BF AND #$BF A:0004 X:0002 Y:0002 P:envMxdizc $80/C33E 85 00 STA $00 [$00:0000] A:0004 X:0002 Y:0002 P:envMxdizc $80/C340 BD 6E 1B LDA $1B6E,x[$80:1B70] A:0004 X:0002 Y:0002 P:envMxdizc $80/C343 4A LSR A A:0001 X:0002 Y:0002 P:envMxdizc $80/C344 90 04 BCC $04 [$C34A] A:0000 X:0002 Y:0002 P:envMxdiZC $80/C346 A9 40 LDA #$40 A:0000 X:0002 Y:0002 P:envMxdiZC $80/C348 04 00 TSB $00 [$00:0000] A:0040 X:0002 Y:0002 P:envMxdizC $80/C34A A5 00 LDA $00 [$00:0000] A:0040 X:0002 Y:0002 P:envMxdiZC $80/C34C 99 03 07 STA $0703,y[$80:0705] A:0044 X:0002 Y:0002 P:envMxdizC $80/C34F A9 01 LDA #$01 A:0044 X:0002 Y:0002 P:envMxdizC $80/C351 99 43 08 STA $0843,y[$80:0845] A:0001 X:0002 Y:0002 P:envMxdizC $80/C354 BB TYX A:0001 X:0002 Y:0002 P:envMxdizC $80/C355 20 A4 99 JSR $99A4 [$80:99A4] A:0001 X:0002 Y:0002 P:envMxdizC $80/C358 A6 39 LDX $39 [$00:0039] A:8107 X:0002 Y:0002 P:envMxdizc $80/C35A 20 75 88 JSR $8875 [$80:8875] A:8107 X:0002 Y:0002 P:envMxdizc $80/C35D 7A PLY ; Restore $00/$01 from Stack $80/C35E 84 00 STY $00 $80/C360 7A PLY ; Restore Y and X from Stack $80/C361 FA PLX $80/C362 60 RTS
$80/C363 ?
$80/C363 7B TDC A:0007 X:0006 Y:001A P:envMxdizc $80/C364 BD 83 08 LDA $0883,x[$80:0889] A:0000 X:0006 Y:001A P:envMxdiZc $80/C367 0A ASL A A:0000 X:0006 Y:001A P:envMxdiZc $80/C368 AA TAX A:0000 X:0006 Y:001A P:envMxdiZc $80/C369 FC 6D C3 JSR ($C36D,x)[$80:C375] A:0000 X:0000 Y:001A P:envMxdiZc $80/C36C 60 RTS A:0988 X:0006 Y:001A P:envMxdizc
$80/C36D ? Jump Table for the subroutine above
$80/C36D 75 C3 --- Entry #00, $80/C375 $80/C36F A3 C3 --- Entry #01, $80/C3A3 $80/C371 8B C3 --- Entry #02, $80/C38B $80/C373 B9 C3 --- Entry #03, $80/C3B9
$80/C375 ?
$80/C375 A6 3B LDX $3B [$00:003B] A:0000 X:0000 Y:001A P:envMxdiZc $80/C377 C2 20 REP #$20 ; A = 16-bit $80/C379 BD 03 0A LDA $0A03,x[$80:0A09] A:0000 X:0006 Y:001A P:envmxdizc $80/C37C C9 80 20 CMP #$2080 A:0980 X:0006 Y:001A P:envmxdizc $80/C37F B0 07 BCS $07 ; [$C388] Exit $80/C381 18 CLC A:0980 X:0006 Y:001A P:eNvmxdizc $80/C382 7D C3 0A ADC $0AC3,x[$80:0AC9] A:0980 X:0006 Y:001A P:eNvmxdizc $80/C385 9D 03 0A STA $0A03,x[$80:0A09] A:0988 X:0006 Y:001A P:envmxdizc $80/C388 E2 20 SEP #$20 ; A = 8-bit $80/C38A 60 RTS
$80/C38B ?
$80/C38B A6 3B LDX $3B [$00:003B] A:0004 X:0004 Y:000C P:envMxdizc $80/C38D C2 20 REP #$20 ; A = 16-bit $80/C38F BD 03 0A LDA $0A03,x[$80:0A0D] A:0004 X:000A Y:000C P:envmxdizc $80/C392 C9 80 01 CMP #$0180 A:0580 X:000A Y:000C P:envmxdizc $80/C395 90 09 BCC $09 ; [$C3A0] Exit $80/C397 F0 07 BEQ $07 ; [$C3A0] Exit if equal $80/C399 38 SEC A:0580 X:000A Y:000C P:envmxdizC $80/C39A FD C3 0A SBC $0AC3,x[$80:0ACD] A:0580 X:000A Y:000C P:envmxdizC $80/C39D 9D 03 0A STA $0A03,x[$80:0A0D] A:0578 X:000A Y:000C P:envmxdizC $80/C3A0 E2 20 SEP #$20 ; A = 8-bit $80/C3A2 60 RTS
$80/C3A3 ?
$80/C3A3 A6 3B LDX $3B [$00:003B] A:0002 X:0002 Y:001A P:envMxdizc $80/C3A5 C2 20 REP #$20 ; A = 16-bit $80/C3A7 BD 43 0A LDA $0A43,x[$80:0A4D] A:0002 X:000A Y:001A P:envmxdizc $80/C3AA C9 80 20 CMP #$2080 A:0280 X:000A Y:001A P:envmxdizc $80/C3AD B0 07 BCS $07 ; [$C3B6] Exit $80/C3AF 18 CLC A:0280 X:000A Y:001A P:eNvmxdizc $80/C3B0 7D 03 0B ADC $0B03,x[$80:0B0D] A:0280 X:000A Y:001A P:eNvmxdizc $80/C3B3 9D 43 0A STA $0A43,x[$80:0A4D] A:0288 X:000A Y:001A P:envmxdizc $80/C3B6 E2 20 SEP #$20 ; A = 8-bit $80/C3B8 60 RTS
$80/C3B9 ?
$80/C3B9 A6 3B LDX $3B [$00:003B] A:0006 X:0006 Y:000C P:envMxdizc $80/C3BB C2 20 REP #$20 ; A = 16-bit $80/C3BD BD 43 0A LDA $0A43,x[$80:0A51] A:0006 X:000E Y:000C P:envmxdizc $80/C3C0 C9 80 01 CMP #$0180 A:0680 X:000E Y:000C P:envmxdizc $80/C3C3 90 09 BCC $09 ; [$C3CE] Exit $80/C3C5 F0 07 BEQ $07 ; [$C3CE] Exit if equal $80/C3C7 38 SEC A:0680 X:000E Y:000C P:envmxdizC $80/C3C8 FD 03 0B SBC $0B03,x[$80:0B11] A:0680 X:000E Y:000C P:envmxdizC $80/C3CB 9D 43 0A STA $0A43,x[$80:0A51] A:0678 X:000E Y:000C P:envmxdizC $80/C3CE E2 20 SEP #$20 ; A = 8-bit $80/C3D0 60 RTS
$80/C3D1 ?
$80/C3D1 BD 43 0B LDA $0B43,x[$80:0B49] A:0006 X:0006 Y:0000 P:envMxdizC $80/C3D4 18 CLC A:00FF X:0006 Y:0000 P:eNvMxdizC $80/C3D5 7D C3 0B ADC $0BC3,x[$80:0BC9] A:00FF X:0006 Y:0000 P:eNvMxdizc $80/C3D8 9D C3 0B STA $0BC3,x[$80:0BC9] A:00FF X:0006 Y:0000 P:eNvMxdizc $80/C3DB 7B TDC A:00FF X:0006 Y:0000 P:eNvMxdizc $80/C3DC BD 44 0B LDA $0B44,x[$80:0B4A] A:0000 X:0006 Y:0000 P:envMxdiZc $80/C3DF 10 03 BPL $03 [$C3E4] A:00FF X:0006 Y:0000 P:eNvMxdizc $80/C3E1 EB XBA A:00FF X:0006 Y:0000 P:eNvMxdizc $80/C3E2 3A DEC A A:FF00 X:0006 Y:0000 P:envMxdiZc $80/C3E3 EB XBA A:FFFF X:0006 Y:0000 P:eNvMxdizc $80/C3E4 C2 20 REP #$20 A:FFFF X:0006 Y:0000 P:eNvMxdizc $80/C3E6 0A ASL A A:FFFF X:0006 Y:0000 P:eNvmxdizc $80/C3E7 0A ASL A A:FFFE X:0006 Y:0000 P:eNvmxdizC $80/C3E8 18 CLC A:FFFC X:0006 Y:0000 P:eNvmxdizC $80/C3E9 7D 83 0A ADC $0A83,x[$80:0A89] A:FFFC X:0006 Y:0000 P:eNvmxdizc $80/C3EC 9D 83 0A STA $0A83,x[$80:0A89] A:07FC X:0006 Y:0000 P:envmxdizC $80/C3EF BD 43 0B LDA $0B43,x[$80:0B49] A:07FC X:0006 Y:0000 P:envmxdizC $80/C3F2 08 PHP A:FFFF X:0006 Y:0000 P:eNvmxdizC $80/C3F3 38 SEC A:FFFF X:0006 Y:0000 P:eNvmxdizC $80/C3F4 E9 00 08 SBC #$0800 A:FFFF X:0006 Y:0000 P:eNvmxdizC $80/C3F7 30 05 BMI $05 [$C3FE] A:F7FF X:0006 Y:0000 P:eNvmxdizC
- code is missing here
$80/C3FE 28 PLP A:F7FF X:0006 Y:0000 P:eNvmxdizC $80/C3FF 9D 43 0B STA $0B43,x[$80:0B49] A:F7FF X:0006 Y:0000 P:eNvmxdizC $80/C402 E2 20 SEP #$20 A:F7FF X:0006 Y:0000 P:eNvmxdizC $80/C404 60 RTS A:F7FF X:0006 Y:0000 P:eNvMxdizC
$80/CE21 ?
$80/CE21 9B TXY A:FFFF X:0006 Y:0006 P:eNvMxdizC $80/CE22 20 7C B8 JSR $B87C [$80:B87C] A:FFFF X:0006 Y:0006 P:envMxdizC $80/CE25 90 03 BCC $03 [$CE2A] A:FF00 X:0008 Y:0006 P:envMxdiZc
- code is missing here
$80/CE2A 86 3B STX $3B [$00:003B] A:FF00 X:0008 Y:0006 P:envMxdiZc $80/CE2C B9 04 0A LDA $0A04,y[$80:0A0A] A:FF00 X:0008 Y:0006 P:envMxdiZc $80/CE2F 85 00 STA $00 [$00:0000] A:FF09 X:0008 Y:0006 P:envMxdizc $80/CE31 B9 44 0A LDA $0A44,y[$80:0A4A] A:FF09 X:0008 Y:0006 P:envMxdizc $80/CE34 85 01 STA $01 [$00:0001] A:FF07 X:0008 Y:0006 P:envMxdizc $80/CE36 B9 84 0A LDA $0A84,y[$80:0A8A] A:FF07 X:0008 Y:0006 P:envMxdizc $80/CE39 85 02 STA $02 [$00:0002] A:FF08 X:0008 Y:0006 P:envMxdizc $80/CE3B 5A PHY A:FF08 X:0008 Y:0006 P:envMxdizc $80/CE3C A0 03 00 LDY #$0003 A:FF08 X:0008 Y:0006 P:envMxdizc $80/CE3F A9 CA LDA #$CA A:FF08 X:0008 Y:0003 P:envMxdizc $80/CE41 22 C6 81 8B JSL $8B81C6[$8B:81C6] A:FFCA X:0008 Y:0003 P:eNvMxdizc $80/CE45 7A PLY A:0709 X:0008 Y:0003 P:eNvMxdizc $80/CE46 98 TYA A:0709 X:0008 Y:0006 P:envMxdizc $80/CE47 9D C4 08 STA $08C4,x[$80:08CC] A:0706 X:0008 Y:0006 P:envMxdizc $80/CE4A A5 09 LDA $09 [$00:0009] A:0706 X:0008 Y:0006 P:envMxdizc $80/CE4C 29 38 AND #$38 A:0706 X:0008 Y:0006 P:envMxdizc $80/CE4E 09 06 ORA #$06 A:0700 X:0008 Y:0006 P:envMxdiZc $80/CE50 9D 03 07 STA $0703,x[$80:070B] A:0706 X:0008 Y:0006 P:envMxdizc $80/CE53 B9 C4 0B LDA $0BC4,y[$80:0BCA] A:0706 X:0008 Y:0006 P:envMxdizc $80/CE56 9D C4 0B STA $0BC4,x[$80:0BCC] A:0704 X:0008 Y:0006 P:envMxdizc $80/CE59 9E 83 0C STZ $0C83,x[$80:0C8B] A:0704 X:0008 Y:0006 P:envMxdizc $80/CE5C 9E C3 0C STZ $0CC3,x[$80:0CCB] A:0704 X:0008 Y:0006 P:envMxdizc $80/CE5F 20 A4 99 JSR $99A4 [$80:99A4] A:0704 X:0008 Y:0006 P:envMxdizc $80/CE62 20 9A 9B JSR $9B9A [$80:9B9A] A:8107 X:0008 Y:0006 P:envMxdizc $80/CE65 60 RTS A:FFFF X:0008 Y:0008 P:eNvMxdizC
$80/CE66 ?
$80/CE66 8B PHB ; Buffer Program Bank on stack $80/CE67 4B PHK ; Set Program Bank to $80 $80/CE68 AB PLB $80/CE69 48 PHA ; Buffer 16-bit A on stack $80/CE6A EB XBA $80/CE6B 48 PHA $80/CE6C A6 91 LDX $91 [$00:0091] A:0000 X:0004 Y:339D P:envMxdiZC $80/CE6E BD DF 19 LDA $19DF,x[$80:19E3] A:0000 X:0004 Y:339D P:envMxdizC $80/CE71 89 40 BIT #$40 A:0040 X:0004 Y:339D P:envMxdizC $80/CE73 D0 08 BNE $08 [$CE7D] A:0040 X:0004 Y:339D P:envMxdizC
- code is missing here
$80/CE7D BC 3E 1E LDY $1E3E,x[$80:1E42] A:0040 X:0004 Y:339D P:envMxdizC $80/CE80 B9 04 07 LDA $0704,y[$80:0708] A:0040 X:0004 Y:0004 P:envMxdizC $80/CE83 09 01 ORA #$01 A:0000 X:0004 Y:0004 P:envMxdiZC $80/CE85 99 04 07 STA $0704,y[$80:0708] A:0001 X:0004 Y:0004 P:envMxdizC $80/CE88 B9 03 07 LDA $0703,y[$80:0707] A:0001 X:0004 Y:0004 P:envMxdizC $80/CE8B 85 09 STA $09 [$00:0009] A:0006 X:0004 Y:0004 P:envMxdizC $80/CE8D BB TYX A:0006 X:0004 Y:0004 P:envMxdizC $80/CE8E 20 7C B8 JSR $B87C [$80:B87C] A:0006 X:0004 Y:0004 P:envMxdizC $80/CE91 90 03 BCC $03 [$CE96] A:0000 X:0006 Y:0004 P:envMxdiZc
- code is missing here
$80/CE96 8A TXA A:0000 X:0006 Y:0004 P:envMxdiZc $80/CE97 99 C4 08 STA $08C4,y[$80:08C8] A:0006 X:0006 Y:0004 P:envMxdizc $80/CE9A B9 04 0A LDA $0A04,y[$80:0A08] A:0006 X:0006 Y:0004 P:envMxdizc $80/CE9D 85 00 STA $00 [$00:0000] A:0009 X:0006 Y:0004 P:envMxdizc $80/CE9F B9 44 0A LDA $0A44,y[$80:0A48] A:0009 X:0006 Y:0004 P:envMxdizc $80/CEA2 85 01 STA $01 [$00:0001] A:0007 X:0006 Y:0004 P:envMxdizc $80/CEA4 B9 84 0A LDA $0A84,y[$80:0A88] A:0007 X:0006 Y:0004 P:envMxdizc $80/CEA7 85 02 STA $02 [$00:0002] A:0008 X:0006 Y:0004 P:envMxdizc $80/CEA9 7B TDC A:0008 X:0006 Y:0004 P:envMxdizc $80/CEAA B9 C4 0B LDA $0BC4,y[$80:0BC8] A:0000 X:0006 Y:0004 P:envMxdiZc $80/CEAD 48 PHA A:0004 X:0006 Y:0004 P:envMxdizc $80/CEAE DA PHX A:0004 X:0006 Y:0004 P:envMxdizc $80/CEAF AA TAX A:0004 X:0006 Y:0004 P:envMxdizc $80/CEB0 22 D9 A5 88 JSL $88A5D9[$88:A5D9] A:0004 X:0004 Y:0004 P:envMxdizc $80/CEB4 C9 14 CMP #$14 A:0001 X:0004 Y:0004 P:envMxdizc $80/CEB6 D0 02 BNE $02 [$CEBA] A:0001 X:0004 Y:0004 P:eNvMxdizc
- code is missing here
$80/CEBA FA PLX A:0001 X:0004 Y:0004 P:eNvMxdizc $80/CEBB A0 01 00 LDY #$0001 A:0001 X:0006 Y:0004 P:envMxdizc $80/CEBE 22 C6 81 8B JSL $8B81C6[$8B:81C6] A:0001 X:0006 Y:0001 P:envMxdizc $80/CEC2 68 PLA A:0709 X:0006 Y:0001 P:eNvMxdizc $80/CEC3 9D C4 0B STA $0BC4,x[$80:0BCA] A:0704 X:0006 Y:0001 P:envMxdizc $80/CEC6 68 PLA A:0704 X:0006 Y:0001 P:envMxdizc $80/CEC7 9D 04 0E STA $0E04,x[$80:0E0A] A:0700 X:0006 Y:0001 P:envMxdiZc $80/CECA 68 PLA A:0700 X:0006 Y:0001 P:envMxdiZc $80/CECB 9D 03 0E STA $0E03,x[$80:0E09] A:0700 X:0006 Y:0001 P:envMxdiZc $80/CECE A5 09 LDA $09 [$00:0009] A:0700 X:0006 Y:0001 P:envMxdiZc $80/CED0 9D 03 07 STA $0703,x[$80:0709] A:0706 X:0006 Y:0001 P:envMxdizc $80/CED3 A9 05 LDA #$05 A:0706 X:0006 Y:0001 P:envMxdizc $80/CED5 9D C3 08 STA $08C3,x[$80:08C9] A:0705 X:0006 Y:0001 P:envMxdizc $80/CED8 A9 00 LDA #$00 A:0705 X:0006 Y:0001 P:envMxdizc $80/CEDA 9D 44 06 STA $0644,x[$80:064A] A:0700 X:0006 Y:0001 P:envMxdiZc $80/CEDD AD EC 1E LDA $1EEC [$80:1EEC] A:0700 X:0006 Y:0001 P:envMxdiZc $80/CEE0 9D C3 06 STA $06C3,x[$80:06C9] A:0720 X:0006 Y:0001 P:envMxdizc $80/CEE3 A9 01 LDA #$01 A:0720 X:0006 Y:0001 P:envMxdizc $80/CEE5 9D 04 09 STA $0904,x[$80:090A] A:0701 X:0006 Y:0001 P:envMxdizc $80/CEE8 A9 10 LDA #$10 A:0701 X:0006 Y:0001 P:envMxdizc $80/CEEA 9D 84 08 STA $0884,x[$80:088A] A:0710 X:0006 Y:0001 P:envMxdizc $80/CEED A4 91 LDY $91 [$00:0091] A:0710 X:0006 Y:0001 P:envMxdizc $80/CEEF B9 C7 1D LDA $1DC7,y[$80:1DCB] A:0710 X:0006 Y:0004 P:envMxdizc $80/CEF2 4A LSR A A:0701 X:0006 Y:0004 P:envMxdizc $80/CEF3 4A LSR A A:0700 X:0006 Y:0004 P:envMxdiZC $80/CEF4 C9 03 CMP #$03 A:0700 X:0006 Y:0004 P:envMxdiZc $80/CEF6 D0 12 BNE $12 [$CF0A] A:0700 X:0006 Y:0004 P:eNvMxdizc
- code is missing here
$80/CF0A B9 C7 1D LDA $1DC7,y[$80:1DCB] A:0700 X:0006 Y:0004 P:eNvMxdizc $80/CF0D 29 03 AND #$03 A:0701 X:0006 Y:0004 P:envMxdizc $80/CF0F C9 02 CMP #$02 A:0701 X:0006 Y:0004 P:envMxdizc $80/CF11 D0 0A BNE $0A [$CF1D] A:0701 X:0006 Y:0004 P:eNvMxdizc
- code is missing here
$80/CF1D BD 04 0E LDA $0E04,x[$80:0E0A] A:0701 X:0006 Y:0004 P:eNvMxdizc $80/CF20 9D C3 0C STA $0CC3,x[$80:0CC9] A:0700 X:0006 Y:0004 P:envMxdiZc $80/CF23 A5 61 LDA $61 [$00:0061] A:0700 X:0006 Y:0004 P:envMxdiZc $80/CF25 9D 43 0E STA $0E43,x[$80:0E49] A:070A X:0006 Y:0004 P:envMxdizc $80/CF28 A5 63 LDA $63 [$00:0063] A:070A X:0006 Y:0004 P:envMxdizc $80/CF2A 9D 44 0E STA $0E44,x[$80:0E4A] A:0707 X:0006 Y:0004 P:envMxdizc $80/CF2D A5 08 LDA $08 [$00:0008] A:0707 X:0006 Y:0004 P:envMxdizc $80/CF2F F0 3D BEQ $3D [$CF6E] A:0700 X:0006 Y:0004 P:envMxdiZc
- code is missing here
$80/CF6E 20 A4 99 JSR $99A4 [$80:99A4] A:0700 X:0006 Y:0004 P:envMxdiZc $80/CF71 20 9A 9B JSR $9B9A [$80:9B9A] A:8107 X:0006 Y:0004 P:envMxdizc $80/CF74 DA PHX A:FFFF X:0006 Y:0006 P:eNvMxdizC $80/CF75 20 21 CE JSR $CE21 [$80:CE21] A:FFFF X:0006 Y:0006 P:eNvMxdizC $80/CF78 FA PLX ; Restore Original 16-bit A in X from stack $80/CF79 AB PLB ; Restore Program Bank from stack $80/CF7A 6B RTL
$80/CF7B ?
$80/CF7B 7B TDC A:00FF X:0006 Y:0002 P:envMxdiZC $80/CF7C BD C4 0B LDA $0BC4,x[$80:0BCA] A:0000 X:0006 Y:0002 P:envMxdiZC $80/CF7F A8 TAY A:0004 X:0006 Y:0002 P:envMxdizC $80/CF80 84 39 STY $39 [$00:0039] A:0004 X:0006 Y:0004 P:envMxdizC $80/CF82 7B TDC A:0004 X:0006 Y:0004 P:envMxdizC $80/CF83 BD 04 0E LDA $0E04,x[$80:0E0A] A:0000 X:0006 Y:0004 P:envMxdiZC $80/CF86 AA TAX A:0002 X:0006 Y:0004 P:envMxdizC $80/CF87 BF DF D2 7E LDA $7ED2DF,x[$7E:D2E1] A:0002 X:0002 Y:0004 P:envMxdizC $80/CF8B C9 FF CMP #$FF A:00FF X:0002 Y:0004 P:eNvMxdizC $80/CF8D F0 04 BEQ $04 [$CF93] A:00FF X:0002 Y:0004 P:envMxdiZC
- code is missing here
$80/CF93 CA DEX A:00FF X:0002 Y:0004 P:envMxdiZC $80/CF94 BF DF D2 7E LDA $7ED2DF,x[$7E:D2E0] A:00FF X:0001 Y:0004 P:envMxdizC $80/CF98 99 6E 1B STA $1B6E,y[$80:1B72] A:0000 X:0001 Y:0004 P:envMxdiZC $80/CF9B A6 3B LDX $3B [$00:003B] A:0000 X:0001 Y:0004 P:envMxdiZC $80/CF9D BD 43 0E LDA $0E43,x[$80:0E49] A:0000 X:0006 Y:0004 P:envMxdizC $80/CFA0 85 02 STA $02 [$00:0002] A:000A X:0006 Y:0004 P:envMxdizC $80/CFA2 BD 44 0E LDA $0E44,x[$80:0E4A] A:000A X:0006 Y:0004 P:envMxdizC $80/CFA5 85 03 STA $03 [$00:0003] A:0007 X:0006 Y:0004 P:envMxdizC $80/CFA7 20 E8 C2 JSR $C2E8 [$80:C2E8] A:0007 X:0006 Y:0004 P:envMxdizC $80/CFAA A6 3B LDX $3B [$00:003B] A:8134 X:0006 Y:0004 P:envMxdizc $80/CFAC 20 78 DA JSR $DA78 [$80:DA78] A:8134 X:0006 Y:0004 P:envMxdizc $80/CFAF 60 RTS A:0001 X:0006 Y:0004 P:envMxdizc
$80/CFB0 ?
$80/CFB0 7B TDC A:0010 X:0016 Y:0010 P:envMxdizc $80/CFB1 BD C4 08 LDA $08C4,x[$80:08DA] A:0000 X:0016 Y:0010 P:envMxdiZc $80/CFB4 A8 TAY A:0012 X:0016 Y:0010 P:envMxdizc $80/CFB5 B9 03 06 LDA $0603,y[$80:0615] A:0012 X:0016 Y:0012 P:envMxdizc $80/CFB8 D0 03 BNE $03 [$CFBD] A:0006 X:0016 Y:0012 P:envMxdizc
- code is missing here
$80/CFBD C2 20 REP #$20 A:0006 X:0016 Y:0012 P:envMxdizc $80/CFBF 38 SEC A:0006 X:0016 Y:0012 P:envmxdizc $80/CFC0 B9 83 0A LDA $0A83,y[$80:0A95] A:0006 X:0016 Y:0012 P:envmxdizC $80/CFC3 FD 83 0A SBC $0A83,x[$80:0A99] A:1C60 X:0016 Y:0012 P:envmxdizC $80/CFC6 E2 20 SEP #$20 A:0660 X:0016 Y:0012 P:envmxdizC $80/CFC8 90 08 BCC $08 [$CFD2] A:0660 X:0016 Y:0012 P:envMxdizC $80/CFCA EB XBA A:0660 X:0016 Y:0012 P:envMxdizC $80/CFCB C9 06 CMP #$06 A:6006 X:0016 Y:0012 P:envMxdizC $80/CFCD 90 03 BCC $03 [$CFD2] A:6006 X:0016 Y:0012 P:envMxdiZC $80/CFCF 4C 6B D0 JMP $D06B [$80:D06B] A:6006 X:0016 Y:0012 P:envMxdiZC
- code is missing here
$80/D06B BD 03 09 LDA $0903,x[$80:0919] A:6006 X:0016 Y:0012 P:envMxdiZC $80/D06E F0 0B BEQ $0B [$D07B] A:6000 X:0016 Y:0012 P:envMxdiZC
- code is missing here
$80/D07B 60 RTS A:6000 X:0016 Y:0012 P:envMxdiZC
$80/D09E ?
$80/D09E BD 03 09 LDA $0903,x[$80:0909] A:0010 X:0006 Y:001A P:envMxdizc $80/D0A1 D0 0C BNE $0C [$D0AF] A:0008 X:0006 Y:001A P:envMxdizc $80/D0A3 20 24 D1 JSR $D124 [$80:D124] A:0000 X:0006 Y:000C P:envMxdiZc $80/D0A6 90 07 BCC $07 [$D0AF] A:0013 X:0006 Y:0020 P:envMxdizc $80/D0A8 20 A7 D1 JSR $D1A7 [$80:D1A7] A:00FF X:0006 Y:002C P:envMxdiZC $80/D0AB 90 F6 BCC $F6 ; [$D0A3] Branch if no Error has occured $80/D0AD 80 71 BRA $71 ; [$D120] Branch if Error has occured $80/D0AF DE 03 09 DEC $0903,x[$80:0909] A:0008 X:0006 Y:001A P:envMxdizc $80/D0B2 BD 04 0A LDA $0A04,x[$80:0A0A] A:0008 X:0006 Y:001A P:envMxdizc $80/D0B5 48 PHA A:0009 X:0006 Y:001A P:envMxdizc $80/D0B6 BD 44 0A LDA $0A44,x[$80:0A4A] A:0009 X:0006 Y:001A P:envMxdizc $80/D0B9 48 PHA A:0007 X:0006 Y:001A P:envMxdizc $80/D0BA 20 63 C3 JSR $C363 [$80:C363] A:0007 X:0006 Y:001A P:envMxdizc $80/D0BD 68 PLA A:0988 X:0006 Y:001A P:envMxdizc $80/D0BE EB XBA A:0907 X:0006 Y:001A P:envMxdizc $80/D0BF 68 PLA A:0709 X:0006 Y:001A P:envMxdizc $80/D0C0 DD 04 0A CMP $0A04,x[$80:0A0A] A:0709 X:0006 Y:001A P:envMxdizc $80/D0C3 D0 06 BNE $06 [$D0CB] A:0709 X:0006 Y:001A P:envMxdiZC $80/D0C5 EB XBA A:0709 X:0006 Y:001A P:envMxdiZC $80/D0C6 DD 44 0A CMP $0A44,x[$80:0A4A] A:0907 X:0006 Y:001A P:envMxdizC $80/D0C9 F0 03 BEQ $03 [$D0CE] A:0907 X:0006 Y:001A P:envMxdiZC $80/D0CB FE C3 0C INC $0CC3,x[$80:0CC9] A:0709 X:0006 Y:000C P:eNvMxdizc $80/D0CE BD 03 07 LDA $0703,x[$80:0709] A:0907 X:0006 Y:001A P:envMxdiZC $80/D0D1 29 BF AND #$BF A:0906 X:0006 Y:001A P:envMxdizC $80/D0D3 9D 03 07 STA $0703,x[$80:0709] A:0906 X:0006 Y:001A P:envMxdizC $80/D0D6 7B TDC A:0906 X:0006 Y:001A P:envMxdizC $80/D0D7 BD 83 08 LDA $0883,x[$80:0889] A:0000 X:0006 Y:001A P:envMxdiZC $80/D0DA A8 TAY A:0000 X:0006 Y:001A P:envMxdiZC $80/D0DB B9 6D B8 LDA $B86D,y[$80:B86D] A:0000 X:0006 Y:0000 P:envMxdiZC $80/D0DE 1D 03 07 ORA $0703,x[$80:0709] A:0000 X:0006 Y:0000 P:envMxdiZC $80/D0E1 9D 03 07 STA $0703,x[$80:0709] A:0006 X:0006 Y:0000 P:envMxdizC $80/D0E4 20 D1 C3 JSR $C3D1 [$80:C3D1] A:0006 X:0006 Y:0000 P:envMxdizC $80/D0E7 DA PHX A:F7FF X:0006 Y:0000 P:eNvMxdizC $80/D0E8 7B TDC A:F7FF X:0006 Y:0000 P:eNvMxdizC $80/D0E9 BD C3 0C LDA $0CC3,x[$80:0CC9] A:0000 X:0006 Y:0000 P:envMxdiZC $80/D0EC AA TAX A:0000 X:0006 Y:0000 P:envMxdiZC $80/D0ED BF 00 F9 7F LDA $7FF900,x[$7F:F900] A:0000 X:0000 Y:0000 P:envMxdiZC $80/D0F1 FA PLX A:0004 X:0000 Y:0000 P:envMxdizC $80/D0F2 0A ASL A A:0004 X:0006 Y:0000 P:envMxdizC $80/D0F3 85 01 STA $01 [$00:0001] A:0008 X:0006 Y:0000 P:envMxdizc $80/D0F5 64 00 STZ $00 [$00:0000] A:0008 X:0006 Y:0000 P:envMxdizc $80/D0F7 C2 20 REP #$20 A:0008 X:0006 Y:0000 P:envMxdizc $80/D0F9 BD 83 0A LDA $0A83,x[$80:0A89] A:0008 X:0006 Y:0000 P:envmxdizc $80/D0FC 38 SEC A:07FC X:0006 Y:0000 P:envmxdizc $80/D0FD E5 00 SBC $00 [$00:0000] A:07FC X:0006 Y:0000 P:envmxdizC $80/D0FF E2 20 SEP #$20 A:FFFC X:0006 Y:0000 P:eNvmxdizc $80/D101 7B TDC A:FFFC X:0006 Y:0000 P:eNvMxdizc $80/D102 B0 11 BCS $11 [$D115] A:0000 X:0006 Y:0000 P:envMxdiZc $80/D104 C2 20 REP #$20 A:0000 X:0006 Y:0000 P:envMxdiZc $80/D106 A5 00 LDA $00 [$00:0000] A:0000 X:0006 Y:0000 P:envmxdiZc $80/D108 9D 83 0A STA $0A83,x[$80:0A89] A:0800 X:0006 Y:0000 P:envmxdizc $80/D10B A9 FF FF LDA #$FFFF A:0800 X:0006 Y:0000 P:envmxdizc $80/D10E 9D 43 0B STA $0B43,x[$80:0B49] A:FFFF X:0006 Y:0000 P:eNvmxdizc $80/D111 E2 20 SEP #$20 A:FFFF X:0006 Y:0000 P:eNvmxdizc $80/D113 A9 01 LDA #$01 A:FFFF X:0006 Y:0000 P:eNvMxdizc $80/D115 9D 04 09 STA $0904,x[$80:090A] A:FF01 X:0006 Y:0000 P:envMxdizc $80/D118 20 B2 D3 JSR $D3B2 [$80:D3B2] A:FF01 X:0006 Y:0000 P:envMxdizc $80/D11B 20 50 D4 JSR $D450 [$80:D450] A:0001 X:0006 Y:0004 P:envMxdiZC $80/D11E 80 03 BRA $03 [$D123] A:6201 X:0006 Y:0004 P:envMxdizc $80/D120 20 7B CF JSR $CF7B [$80:CF7B] A:00FF X:0006 Y:0002 P:envMxdiZC $80/D123 60 RTS A:6201 X:0006 Y:0004 P:envMxdizc
$80/D124 ?
$80/D124 7B TDC A:00FF X:0006 Y:0002 P:envMxdizc $80/D125 BD C4 08 LDA $08C4,x[$80:08CA] A:0000 X:0006 Y:0002 P:envMxdiZc $80/D128 29 7F AND #$7F A:000D X:0006 Y:0002 P:envMxdizc $80/D12A 0A ASL A A:000D X:0006 Y:0002 P:envMxdizc $80/D12B A8 TAY A:001A X:0006 Y:0002 P:envMxdizc $80/D12C B9 66 D2 LDA $D266,y[$80:D280] A:001A X:0006 Y:001A P:envMxdizc $80/D12F 10 10 BPL $10 [$D141] A:0000 X:0006 Y:001A P:envMxdiZc $80/D131 C9 FF CMP #$FF A:0081 X:0006 Y:0026 P:eNvMxdizc $80/D133 F0 70 BEQ $70 [$D1A5] A:0081 X:0006 Y:0026 P:eNvMxdizc $80/D135 BD 83 0C LDA $0C83,x[$80:0C89] A:0081 X:0006 Y:0026 P:eNvMxdizc $80/D138 C9 80 CMP #$80 A:0000 X:0006 Y:0026 P:envMxdiZc $80/D13A 49 80 EOR #$80 A:0000 X:0006 Y:0026 P:eNvMxdizc $80/D13C 9D 83 0C STA $0C83,x[$80:0C89] A:0080 X:0006 Y:0026 P:eNvMxdizc $80/D13F 80 04 BRA $04 [$D145] A:0080 X:0006 Y:0026 P:eNvMxdizc $80/D141 BD 83 0C LDA $0C83,x[$80:0C89] A:0000 X:0006 Y:001A P:envMxdiZc $80/D144 0A ASL A A:0000 X:0006 Y:001A P:envMxdiZc $80/D145 B9 66 D2 LDA $D266,y[$80:D280] A:0000 X:0006 Y:001A P:envMxdiZc $80/D148 5A PHY A:0000 X:0006 Y:001A P:envMxdiZc $80/D149 2A ROL A A:0000 X:0006 Y:001A P:envMxdiZc $80/D14A A8 TAY A:0000 X:0006 Y:001A P:envMxdiZc $80/D14B B9 4E D3 LDA $D34E,y[$80:D34E] A:0000 X:0006 Y:0000 P:envMxdiZc $80/D14E 9D 04 06 STA $0604,x[$80:060A] A:0002 X:0006 Y:0000 P:envMxdizc $80/D151 9D 44 0C STA $0C44,x[$80:0C4A] A:0002 X:0006 Y:0000 P:envMxdizc $80/D154 7A PLY A:0002 X:0006 Y:0000 P:envMxdizc $80/D155 C2 20 REP #$20 A:0002 X:0006 Y:001A P:envMxdizc $80/D157 B9 68 D2 LDA $D268,y[$80:D282] A:0002 X:0006 Y:001A P:envmxdizc $80/D15A C9 00 80 CMP #$8000 A:0040 X:0006 Y:001A P:envmxdizc $80/D15D 29 FF 7F AND #$7FFF A:0040 X:0006 Y:001A P:eNvmxdizc $80/D160 8D 04 42 STA $4204 [$80:4204] A:0040 X:0006 Y:001A P:envmxdizc $80/D163 E2 20 SEP #$20 A:0040 X:0006 Y:001A P:envmxdizc $80/D165 7B TDC A:0040 X:0006 Y:001A P:envMxdizc $80/D166 BD 84 08 LDA $0884,x[$80:088A] A:0000 X:0006 Y:001A P:envMxdiZc $80/D169 8D 06 42 STA $4206 [$80:4206] A:0008 X:0006 Y:001A P:envMxdizc $80/D16C 90 02 BCC $02 [$D170] A:0008 X:0006 Y:001A P:envMxdizc
- code is missing here
$80/D170 C2 20 REP #$20 A:0008 X:0006 Y:001A P:envMxdizc $80/D172 9D C3 0A STA $0AC3,x[$80:0AC9] A:0008 X:0006 Y:001A P:envmxdizc $80/D175 9D 03 0B STA $0B03,x[$80:0B09] A:0008 X:0006 Y:001A P:envmxdizc $80/D178 BD 04 09 LDA $0904,x[$80:090A] A:0008 X:0006 Y:001A P:envmxdizc $80/D17B 4A LSR A A:0001 X:0006 Y:001A P:envmxdizc $80/D17C 90 08 BCC $08 [$D186] A:0000 X:0006 Y:001A P:envmxdiZC $80/D17E B9 6A D2 LDA $D26A,y[$80:D284] A:0000 X:0006 Y:001A P:envmxdiZC $80/D181 F0 03 BEQ $03 [$D186] A:FFFF X:0006 Y:001A P:eNvmxdizC $80/D183 9D 43 0B STA $0B43,x[$80:0B49] A:FFFF X:0006 Y:001A P:eNvmxdizC $80/D186 E2 20 SEP #$20 A:FFFF X:0006 Y:001A P:eNvmxdizC $80/D188 AD 14 42 LDA $4214 [$80:4214] A:FFFF X:0006 Y:001A P:eNvMxdizC $80/D18B 9D 03 09 STA $0903,x[$80:0909] A:FF08 X:0006 Y:001A P:envMxdizC $80/D18E C2 20 REP #$20 A:FF08 X:0006 Y:001A P:envMxdizC $80/D190 98 TYA A:FF08 X:0006 Y:001A P:envmxdizC $80/D191 4A LSR A A:001A X:0006 Y:001A P:envmxdizC $80/D192 E2 20 SEP #$20 A:000D X:0006 Y:001A P:envmxdizc $80/D194 18 CLC A:000D X:0006 Y:001A P:envMxdizc $80/D195 69 03 ADC #$03 A:000D X:0006 Y:001A P:envMxdizc $80/D197 48 PHA A:0010 X:0006 Y:001A P:envMxdizc $80/D198 BD C4 08 LDA $08C4,x[$80:08CA] A:0010 X:0006 Y:001A P:envMxdizc $80/D19B 29 80 AND #$80 A:000D X:0006 Y:001A P:envMxdizc $80/D19D 03 01 ORA $01,s [$00:1FC9] A:0000 X:0006 Y:001A P:envMxdiZc $80/D19F 9D C4 08 STA $08C4,x[$80:08CA] A:0010 X:0006 Y:001A P:envMxdizc $80/D1A2 68 PLA A:0010 X:0006 Y:001A P:envMxdizc $80/D1A3 18 CLC A:0010 X:0006 Y:001A P:envMxdizc $80/D1A4 60 RTS A:0010 X:0006 Y:001A P:envMxdizc $80/D1A5 38 SEC A:00FF X:0006 Y:002C P:envMxdiZC $80/D1A6 60 RTS A:00FF X:0006 Y:002C P:envMxdiZC
$80/D1A7 ?
This subroutine uses the Carry as Error Flag
$80/D1A7 A0 DF D2 LDY #$D2DF ; Setup 24-bit address $7E/D2DF in [$20] $80/D1AA 84 20 STY $20 $80/D1AC A9 7E LDA #$7E $80/D1AE 85 22 STA $22 $80/D1B0 7B TDC ; Clear 16-bit A $80/D1B1 BD 04 0E LDA $0E04,x[$80:0E0A] A:0000 X:0006 Y:D2DF P:envMxdiZc $80/D1B4 A8 TAY A:0000 X:0006 Y:D2DF P:envMxdiZc $80/D1B5 B7 20 LDA [$20],y[$7E:D2DF] A:0000 X:0006 Y:0000 P:envMxdiZc $80/D1B7 C9 FF CMP #$FF ; Error? $80/D1B9 D0 03 BNE $03 ; [$D1BE] Branch if not $80/D1BB 4C 5C D2 JMP $D25C ; Error: Set Carry (Error Flag) and Exit $80/D1BE 9D C4 08 STA $08C4,x[$80:08CA] A:000D X:0006 Y:0000 P:envMxdizc $80/D1C1 C8 INY A:000D X:0006 Y:0000 P:envMxdizc $80/D1C2 B7 20 LDA [$20],y[$7E:D2E0] A:000D X:0006 Y:0001 P:envMxdizc $80/D1C4 9D 83 08 STA $0883,x[$80:0889] A:0000 X:0006 Y:0001 P:envMxdiZc $80/D1C7 85 00 STA $00 [$00:0000] A:0000 X:0006 Y:0001 P:envMxdiZc $80/D1C9 C8 INY A:0000 X:0006 Y:0001 P:envMxdiZc $80/D1CA 98 TYA A:0000 X:0006 Y:0002 P:envMxdizc $80/D1CB 9D 04 0E STA $0E04,x[$80:0E0A] A:0002 X:0006 Y:0002 P:envMxdizc $80/D1CE B7 20 LDA [$20],y[$7E:D2E1] A:0002 X:0006 Y:0002 P:envMxdizc $80/D1D0 C9 FF CMP #$FF ; Exit Command? $80/D1D2 D0 03 BNE $03 ; [$D1D7] Branch if not $80/D1D4 4C 58 D2 JMP $D258 ; Else, clear Carry (Error Flag) and Exit
- code is missing here
$80/D20F A8 TAY ; Transfer Figure Number in Y as Load Index $80/D210 B9 AE 17 LDA $17AE,y ; Check Figure's Character Sprite $80/D213 F0 43 BEQ $43 ; [$D258] If empty, clear Carry (Error Flag) and Exit $80/D215 C9 F0 CMP #$F0 A:003B X:0044 Y:0006 P:envMxdizc $80/D217 B0 16 BCS $16 ; [$D22F] Branch if equal or higher $80/D219 B9 DE 19 LDA $19DE,y[$80:19E4] A:003B X:0044 Y:0006 P:envMxdizc $80/D21C 89 01 BIT #$01 A:0000 X:0044 Y:0006 P:envMxdiZc $80/D21E D0 0F BNE $0F [$D22F] A:0000 X:0044 Y:0006 P:envMxdiZc $80/D220 B9 DF 19 LDA $19DF,y[$80:19E5] A:0000 X:0044 Y:0006 P:envMxdiZc $80/D223 89 20 BIT #$20 A:0040 X:0044 Y:0006 P:envMxdizc $80/D225 D0 31 BNE $31 ; [$D258] clear Carry (Error Flag) and Exit $80/D227 B9 2E 1A LDA $1A2E,y[$80:1A34] A:0040 X:0044 Y:0006 P:envMxdiZc $80/D22A 4A LSR A A:0000 X:0044 Y:0006 P:envMxdiZc $80/D22B C5 02 CMP $02 [$00:0002] A:0000 X:0044 Y:0006 P:envMxdiZc $80/D22D D0 29 BNE $29 ; [$D258] clear Carry (Error Flag) and Exit $80/D22F BE 3E 1E LDX $1E3E,y[$80:1E44] A:0000 X:0044 Y:0006 P:envMxdiZC $80/D232 BD C4 08 LDA $08C4,x[$80:08CA] A:0000 X:0006 Y:0006 P:envMxdizC $80/D235 C9 FF CMP #$FF A:000A X:0006 Y:0006 P:envMxdizC $80/D237 D0 1F BNE $1F ; [$D258] clear Carry (Error Flag) and Exit
- code is missing here
$80/D258 A6 3B LDX $3B [$00:003B] A:00FF X:0006 Y:0002 P:envMxdiZC $80/D25A 18 CLC ; Clear Carry (Error Flag) $80/D25B 60 RTS $80/D25C 38 SEC ; Set Carry (Error Flag) $80/D25D 60 RTS
$80/D358 ?
$80/D358 7B TDC A:000E X:0006 Y:000E P:envMxdizc $80/D359 BD 03 0E LDA $0E03,x[$80:0E09] A:0000 X:0006 Y:000E P:envMxdiZc $80/D35C 1A INC A A:0000 X:0006 Y:000E P:envMxdiZc $80/D35D 1A INC A A:0001 X:0006 Y:000E P:envMxdizc $80/D35E 4A LSR A A:0002 X:0006 Y:000E P:envMxdizc $80/D35F 22 93 CA 84 JSL $84CA93[$84:CA93] A:0001 X:0006 Y:000E P:envMxdizc $80/D363 7B TDC A:0001 X:0006 Y:000E P:eNvMxdizc $80/D364 BD C4 0B LDA $0BC4,x[$80:0BCA] A:0000 X:0006 Y:000E P:envMxdiZc $80/D367 A8 TAY A:0004 X:0006 Y:000E P:envMxdizc $80/D368 B9 DF 19 LDA $19DF,y[$80:19E3] A:0004 X:0006 Y:0004 P:envMxdizc $80/D36B 89 40 BIT #$40 A:0040 X:0006 Y:0004 P:envMxdizc $80/D36D F0 0F BEQ $0F [$D37E] A:0040 X:0006 Y:0004 P:envMxdizc $80/D36F 89 10 BIT #$10 A:0040 X:0006 Y:0004 P:envMxdizc $80/D371 F0 05 BEQ $05 [$D378] A:0040 X:0006 Y:0004 P:envMxdiZc $80/D378 22 9F C1 84 JSL $84C19F[$84:C19F] A:0040 X:0006 Y:0004 P:envMxdiZc $80/D37C 80 06 BRA $06 [$D384] A:4601 X:0006 Y:0004 P:eNvMxdizc
- code is missing here
$80/D384 7B TDC A:4601 X:0006 Y:0004 P:eNvMxdizc $80/D385 B9 3E 1E LDA $1E3E,y[$80:1E42] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D388 A8 TAY A:0004 X:0006 Y:0004 P:envMxdizc $80/D389 B9 04 07 LDA $0704,y[$80:0708] A:0004 X:0006 Y:0004 P:envMxdizc $80/D38C 29 FE AND #$FE A:0001 X:0006 Y:0004 P:envMxdizc $80/D38E 99 04 07 STA $0704,y[$80:0708] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D391 A9 01 LDA #$01 A:0000 X:0006 Y:0004 P:envMxdiZc $80/D393 99 43 08 STA $0843,y[$80:0847] A:0001 X:0006 Y:0004 P:envMxdizc $80/D396 A9 FF LDA #$FF A:0001 X:0006 Y:0004 P:envMxdizc $80/D398 99 C4 08 STA $08C4,y[$80:08C8] A:00FF X:0006 Y:0004 P:eNvMxdizc $80/D39B BD 03 07 LDA $0703,x[$80:0709] A:00FF X:0006 Y:0004 P:eNvMxdizc $80/D39E 29 40 AND #$40 A:0006 X:0006 Y:0004 P:envMxdizc $80/D3A0 48 PHA A:0000 X:0006 Y:0004 P:envMxdiZc $80/D3A1 B9 03 07 LDA $0703,y[$80:0707] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D3A4 29 BF AND #$BF A:0006 X:0006 Y:0004 P:envMxdizc $80/D3A6 03 01 ORA $01,s [$00:1FCB] A:0006 X:0006 Y:0004 P:envMxdizc $80/D3A8 99 03 07 STA $0703,y[$80:0707] A:0006 X:0006 Y:0004 P:envMxdizc $80/D3AB 68 PLA A:0006 X:0006 Y:0004 P:envMxdizc $80/D3AC 9E 03 06 STZ $0603,x[$80:0609] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D3AF 84 3D STY $3D [$00:003D] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D3B1 60 RTS A:0000 X:0006 Y:0004 P:envMxdiZc
$80/D3B2 ?
$80/D3B2 7B TDC ; Clear 16-bit A $80/D3B3 BD C4 0B LDA $0BC4,x[$80:0BCA] A:0000 X:0006 Y:0000 P:envMxdiZc $80/D3B6 A8 TAY ; Transfer value (Character Class/Sprite) in Y as Load Index $80/D3B7 B9 DE 19 LDA $19DE,y[$80:19E2] A:0004 X:0006 Y:0004 P:envMxdizc $80/D3BA 89 01 BIT #$01 A:0000 X:0006 Y:0004 P:envMxdiZc $80/D3BC D0 73 BNE $73 ; [$D431] Exit if flag is set $80/D3BE BD 03 06 LDA $0603,x[$80:0609] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D3C1 C9 30 CMP #$30 A:0001 X:0006 Y:0004 P:envMxdizc $80/D3C3 90 04 BCC $04 [$D3C9] A:0001 X:0006 Y:0004 P:eNvMxdizc
- code is missing here
$80/D3C9 B9 AE 17 LDA $17AE,y[$80:17B2] A:0001 X:0006 Y:0004 P:eNvMxdizc $80/D3CC 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $80/D3D0 90 2F BCC $2F ; [$D401] Branch if Sprite isn't big
- code is missing here
$80/D401 20 22 D5 JSR $D522 [$80:D522] A:0034 X:0006 Y:0004 P:envMxdizc $80/D404 09 00 ORA #$00 ; Do this to set the Zero flag again $80/D406 F0 0B BEQ $0B ; [$D413] Exit if A is zero
- code is missing here
$80/D413 7B TDC A:0000 X:0006 Y:0004 P:envMxdiZc $80/D414 BD C4 0B LDA $0BC4,x[$80:0BCA] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D417 DA PHX ; Buffer X on Stack $80/D418 AA TAX A:0004 X:0006 Y:0004 P:envMxdizc $80/D419 22 D9 A5 88 JSL $88A5D9[$88:A5D9] A:0004 X:0004 Y:0004 P:envMxdizc $80/D41D FA PLX ; Restore X from Stack $80/D41E DD 03 06 CMP $0603,x[$80:0609] A:0001 X:0006 Y:0004 P:envMxdizc $80/D421 F0 0E BEQ $0E ; [$D431] Exit if equal
- code is missing here
$80/D431 60 RTS
$80/D450 ?
$80/D450 7B TDC A:0001 X:0006 Y:0004 P:envMxdiZC $80/D451 BD C4 0B LDA $0BC4,x[$80:0BCA] A:0000 X:0006 Y:0004 P:envMxdiZC $80/D454 A8 TAY A:0004 X:0006 Y:0004 P:envMxdizC $80/D455 B9 DE 19 LDA $19DE,y[$80:19E2] A:0004 X:0006 Y:0004 P:envMxdizC $80/D458 89 01 BIT #$01 A:0000 X:0006 Y:0004 P:envMxdiZC $80/D45A D0 5A BNE $5A [$D4B6] A:0000 X:0006 Y:0004 P:envMxdiZC $80/D45C 89 02 BIT #$02 A:0000 X:0006 Y:0004 P:envMxdiZC $80/D45E F0 1E BEQ $1E [$D47E] A:0000 X:0006 Y:0004 P:envMxdiZC
- code is missing here
$80/D47E BD 04 06 LDA $0604,x[$80:060A] A:0000 X:0006 Y:0004 P:envMxdiZC $80/D481 C9 32 CMP #$32 A:0002 X:0006 Y:0004 P:envMxdizC $80/D483 B0 04 BCS $04 [$D489] A:0002 X:0006 Y:0004 P:eNvMxdizc $80/D485 C9 10 CMP #$10 A:0002 X:0006 Y:0004 P:eNvMxdizc $80/D487 B0 2D BCS $2D [$D4B6] A:0002 X:0006 Y:0004 P:eNvMxdizc $80/D489 C9 02 CMP #$02 A:0002 X:0006 Y:0004 P:eNvMxdizc $80/D48B 90 29 BCC $29 [$D4B6] A:0002 X:0006 Y:0004 P:envMxdiZC $80/D48D C9 08 CMP #$08 A:0002 X:0006 Y:0004 P:envMxdiZC $80/D48F B0 0E BCS $0E [$D49F] A:0002 X:0006 Y:0004 P:eNvMxdizc $80/D491 BD 83 08 LDA $0883,x[$80:0889] A:0002 X:0006 Y:0004 P:eNvMxdizc $80/D494 C9 02 CMP #$02 A:0000 X:0006 Y:0004 P:envMxdiZc $80/D496 7B TDC A:0000 X:0006 Y:0004 P:eNvMxdizc $80/D497 90 02 BCC $02 [$D49B] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D49B 18 CLC A:0000 X:0006 Y:0004 P:envMxdiZc $80/D49C 7D 04 06 ADC $0604,x[$80:060A] A:0000 X:0006 Y:0004 P:envMxdiZc $80/D49F DD C4 06 CMP $06C4,x[$80:06CA] A:0002 X:0006 Y:0004 P:envMxdizc $80/D4A2 F0 0D BEQ $0D [$D4B1] A:0002 X:0006 Y:0004 P:envMxdizc $80/D4A4 9D C4 06 STA $06C4,x[$80:06CA] A:0002 X:0006 Y:0004 P:envMxdizc $80/D4A7 EB XBA A:0002 X:0006 Y:0004 P:envMxdizc $80/D4A8 BD C3 06 LDA $06C3,x[$80:06C9] A:0200 X:0006 Y:0004 P:envMxdiZc $80/D4AB 22 15 B9 84 JSL $84B915[$84:B915] A:0220 X:0006 Y:0004 P:envMxdizc $80/D4AF A6 3B LDX $3B [$00:003B] A:6200 X:0220 Y:0004 P:eNvMxdizc $80/D4B1 A9 01 LDA #$01 A:6200 X:0006 Y:0004 P:envMxdizc $80/D4B3 9D 04 06 STA $0604,x[$80:060A] A:6201 X:0006 Y:0004 P:envMxdizc $80/D4B6 60 RTS A:6201 X:0006 Y:0004 P:envMxdizc
$80/D4B7 ?
$80/D4B7 7B TDC A:8101 X:0006 Y:0002 P:envMxdizc $80/D4B8 BD 03 0E LDA $0E03,x[$80:0E09] A:0000 X:0006 Y:0002 P:envMxdiZc $80/D4BB A8 TAY A:0000 X:0006 Y:0002 P:envMxdiZc $80/D4BC B9 E8 1E LDA $1EE8,y[$80:1EE8] A:0000 X:0006 Y:0000 P:envMxdiZc $80/D4BF 9D C3 06 STA $06C3,x[$80:06C9] A:0020 X:0006 Y:0000 P:envMxdizc $80/D4C2 5A PHY A:0020 X:0006 Y:0000 P:envMxdizc $80/D4C3 BD 04 06 LDA $0604,x[$80:060A] A:0020 X:0006 Y:0000 P:envMxdizc $80/D4C6 C9 01 CMP #$01 A:0002 X:0006 Y:0000 P:envMxdizc $80/D4C8 F0 48 BEQ $48 [$D512] A:0002 X:0006 Y:0000 P:envMxdizC $80/D4CA C9 2D CMP #$2D A:0002 X:0006 Y:0000 P:envMxdizC $80/D4CC F0 44 BEQ $44 [$D512] A:0002 X:0006 Y:0000 P:eNvMxdizc $80/D4CE C9 1F CMP #$1F A:0002 X:0006 Y:0000 P:eNvMxdizc $80/D4D0 F0 40 BEQ $40 [$D512] A:0002 X:0006 Y:0000 P:eNvMxdizc $80/D4D2 C9 20 CMP #$20 A:0002 X:0006 Y:0000 P:eNvMxdizc $80/D4D4 D0 10 BNE $10 [$D4E6] A:0002 X:0006 Y:0000 P:eNvMxdizc
- code is missing here
$80/D4E6 9D 44 0C STA $0C44,x[$80:0C4A] A:0002 X:0006 Y:0000 P:eNvMxdizc $80/D4E9 7B TDC A:0002 X:0006 Y:0000 P:eNvMxdizc $80/D4EA BD 04 06 LDA $0604,x[$80:060A] A:0000 X:0006 Y:0000 P:envMxdiZc $80/D4ED A8 TAY A:0002 X:0006 Y:0000 P:envMxdizc $80/D4EE DA PHX A:0002 X:0006 Y:0002 P:envMxdizc $80/D4EF BB TYX A:0002 X:0006 Y:0002 P:envMxdizc $80/D4F0 BF 00 80 8B LDA $8B8000,x[$8B:8002] A:0002 X:0002 Y:0002 P:envMxdizc $80/D4F4 FA PLX A:0001 X:0002 Y:0002 P:envMxdizc $80/D4F5 DD 04 06 CMP $0604,x[$80:060A] A:0001 X:0006 Y:0002 P:envMxdizc $80/D4F8 F0 18 BEQ $18 [$D512] A:0001 X:0006 Y:0002 P:eNvMxdizc $80/D4FA 48 PHA A:0001 X:0006 Y:0002 P:eNvMxdizc $80/D4FB 98 TYA A:0001 X:0006 Y:0002 P:eNvMxdizc $80/D4FC DD C4 06 CMP $06C4,x[$80:06CA] A:0002 X:0006 Y:0002 P:envMxdizc $80/D4FF F0 0D BEQ $0D [$D50E] A:0002 X:0006 Y:0002 P:envMxdizc $80/D501 9D C4 06 STA $06C4,x[$80:06CA] A:0002 X:0006 Y:0002 P:envMxdizc $80/D504 EB XBA A:0002 X:0006 Y:0002 P:envMxdizc $80/D505 BD C3 06 LDA $06C3,x[$80:06C9] A:0200 X:0006 Y:0002 P:envMxdiZc $80/D508 22 15 B9 84 JSL $84B915[$84:B915] A:0220 X:0006 Y:0002 P:envMxdizc $80/D50C A6 3B LDX $3B [$00:003B] A:6200 X:0220 Y:0004 P:eNvMxdizc $80/D50E 68 PLA A:6200 X:0006 Y:0004 P:envMxdizc $80/D50F 9D 04 06 STA $0604,x[$80:060A] A:6201 X:0006 Y:0004 P:envMxdizc $80/D512 7A PLY A:6201 X:0006 Y:0004 P:envMxdizc $80/D513 BD 44 0C LDA $0C44,x[$80:0C4A] A:6201 X:0006 Y:0000 P:envMxdiZc $80/D516 DD 04 06 CMP $0604,x[$80:060A] A:6202 X:0006 Y:0000 P:envMxdizc $80/D519 D0 06 BNE $06 [$D521] A:6202 X:0006 Y:0000 P:envMxdizC
- code is missing here
$80/D521 60 RTS A:6202 X:0006 Y:0000 P:envMxdizC
$80/D522 ?
$80/D522 5A PHY ; Buffer Y on Stack $80/D523 D4 00 PEI ($00) ; Buffer $00/$01 on stack $80/D525 20 3F C2 JSR $C23F [$80:C23F] A:0034 X:0006 Y:0004 P:envMxdizc $80/D528 A0 00 00 LDY #$0000 A:0004 X:0006 Y:0004 P:envMxdizc $80/D52B 90 1B BCC $1B [$D548] A:0004 X:0006 Y:0000 P:envMxdiZc
- code is missing here
$80/D548 E2 20 SEP #$20 ; A = 8-bit $80/D54A 98 TYA ; Transfer Y into A $80/D54B 7A PLY ; Restore $00/01 from Stack $80/D54C 84 00 STY $00 $80/D54E 7A PLY ; Restore Y from Stack $80/D54F 60 RTS
$80/D550 ? Compare two Sprite numbers
$80/D550 A0 00 00 LDY #$0000 ; Clear Load Index (Y) $80/D553 B9 83 0E LDA $0E83,y[$80:0E83] A:0800 X:0008 Y:0000 P:envMxdiZC $80/D556 30 27 BMI $27 ; [$D57F] Exit if Sprite(?) is negative $80/D558 C5 3B CMP $3B [$00:003B] A:0802 X:0008 Y:0000 P:envMxdizC $80/D55A F0 04 BEQ $04 [$D560] A:0802 X:0008 Y:0000 P:eNvMxdizc $80/D55C C8 INY ; Increment Load Index twice $80/D55D C8 INY $80/D55E 80 F3 BRA $F3 ; [$D553] Do next figure $80/D560 84 00 STY $00 [$00:0000] A:0808 X:0008 Y:0008 P:envMxdiZC $80/D562 C8 INY ; Increment Load Index twice $80/D563 C8 INY $80/D564 B9 83 0E LDA $0E83,y[$80:0E8D] A:0808 X:0008 Y:000A P:envMxdizC $80/D567 30 16 BMI $16 ; [$D57F] Exit if Sprite(?) is negative $80/D569 DD C4 08 CMP $08C4,x[$80:08CC] A:0804 X:0008 Y:0008 P:envMxdizC $80/D56C F0 04 BEQ $04 [$D572] A:0804 X:0008 Y:0008 P:eNvMxdizc $80/D56E C8 INY ; Increment Load Index twice $80/D56F C8 INY $80/D570 80 F2 BRA $F2 ; [$D564] Do next figure
- code is missing here
$80/D57F 60 RTS
$80/D580 ?
$80/D580 8B PHB A:0000 X:0002 Y:D207 P:envMxdiZC $80/D581 4B PHK A:0000 X:0002 Y:D207 P:envMxdiZC $80/D582 AB PLB A:0000 X:0002 Y:D207 P:envMxdiZC $80/D583 48 PHA A:0000 X:0002 Y:D207 P:eNvMxdizC $80/D584 A6 91 LDX $91 [$00:0091] A:0000 X:0002 Y:D207 P:eNvMxdizC $80/D586 BD DF 19 LDA $19DF,x[$80:19E1] A:0000 X:0002 Y:D207 P:envMxdizC $80/D589 89 40 BIT #$40 A:0040 X:0002 Y:D207 P:envMxdizC $80/D58B D0 08 BNE $08 [$D595] A:0040 X:0002 Y:D207 P:envMxdizC
- code is missing here
$80/D595 BC 3E 1E LDY $1E3E,x[$80:1E40] A:0040 X:0002 Y:D207 P:envMxdizC $80/D598 B9 04 07 LDA $0704,y[$80:0706] A:0040 X:0002 Y:0002 P:envMxdizC $80/D59B 09 01 ORA #$01 A:0000 X:0002 Y:0002 P:envMxdiZC $80/D59D 99 04 07 STA $0704,y[$80:0706] A:0001 X:0002 Y:0002 P:envMxdizC $80/D5A0 B9 03 07 LDA $0703,y[$80:0705] A:0001 X:0002 Y:0002 P:envMxdizC $80/D5A3 85 09 STA $09 [$00:0009] A:0044 X:0002 Y:0002 P:envMxdizC $80/D5A5 BB TYX A:0044 X:0002 Y:0002 P:envMxdizC $80/D5A6 20 7C B8 JSR $B87C [$80:B87C] A:0044 X:0002 Y:0002 P:envMxdizC $80/D5A9 90 03 BCC $03 [$D5AE] A:0000 X:0006 Y:0002 P:envMxdiZc
- code is missing here
$80/D5AE 8A TXA A:0000 X:0006 Y:0002 P:envMxdiZc $80/D5AF 99 C4 08 STA $08C4,y[$80:08C6] A:0006 X:0006 Y:0002 P:envMxdizc $80/D5B2 B9 04 0A LDA $0A04,y[$80:0A06] A:0006 X:0006 Y:0002 P:envMxdizc $80/D5B5 85 00 STA $00 [$00:0000] A:000B X:0006 Y:0002 P:envMxdizc $80/D5B7 B9 44 0A LDA $0A44,y[$80:0A46] A:000B X:0006 Y:0002 P:envMxdizc $80/D5BA 85 01 STA $01 [$00:0001] A:0007 X:0006 Y:0002 P:envMxdizc $80/D5BC B9 84 0A LDA $0A84,y[$80:0A86] A:0007 X:0006 Y:0002 P:envMxdizc $80/D5BF 85 02 STA $02 [$00:0002] A:0006 X:0006 Y:0002 P:envMxdizc $80/D5C1 5A PHY A:0006 X:0006 Y:0002 P:envMxdizc $80/D5C2 A0 01 00 LDY #$0001 A:0006 X:0006 Y:0002 P:envMxdizc $80/D5C5 A5 13 LDA $13 [$00:0013] A:0006 X:0006 Y:0001 P:envMxdizc $80/D5C7 22 C6 81 8B JSL $8B81C6[$8B:81C6] A:0030 X:0006 Y:0001 P:envMxdizc $80/D5CB 7A PLY A:070B X:0006 Y:0001 P:eNvMxdizc $80/D5CC B9 03 0A LDA $0A03,y[$80:0A05] A:070B X:0006 Y:0002 P:envMxdizc $80/D5CF 9D 03 0A STA $0A03,x[$80:0A09] A:0780 X:0006 Y:0002 P:eNvMxdizc $80/D5D2 B9 43 0A LDA $0A43,y[$80:0A45] A:0780 X:0006 Y:0002 P:eNvMxdizc $80/D5D5 9D 43 0A STA $0A43,x[$80:0A49] A:0780 X:0006 Y:0002 P:eNvMxdizc $80/D5D8 B9 83 0A LDA $0A83,y[$80:0A85] A:0780 X:0006 Y:0002 P:eNvMxdizc $80/D5DB 9D 83 0A STA $0A83,x[$80:0A89] A:0700 X:0006 Y:0002 P:envMxdiZc $80/D5DE B9 C4 09 LDA $09C4,y[$80:09C6] A:0700 X:0006 Y:0002 P:envMxdiZc $80/D5E1 9D C4 09 STA $09C4,x[$80:09CA] A:07FF X:0006 Y:0002 P:eNvMxdizc $80/D5E4 B9 C3 09 LDA $09C3,y[$80:09C5] A:07FF X:0006 Y:0002 P:eNvMxdizc $80/D5E7 9D C3 09 STA $09C3,x[$80:09C9] A:07FF X:0006 Y:0002 P:eNvMxdizc $80/D5EA A9 FF LDA #$FF A:07FF X:0006 Y:0002 P:eNvMxdizc $80/D5EC 99 C4 09 STA $09C4,y[$80:09C6] A:07FF X:0006 Y:0002 P:eNvMxdizc $80/D5EF 99 C3 09 STA $09C3,y[$80:09C5] A:07FF X:0006 Y:0002 P:eNvMxdizc $80/D5F2 B9 C4 0B LDA $0BC4,y[$80:0BC6] A:07FF X:0006 Y:0002 P:eNvMxdizc $80/D5F5 9D C4 0B STA $0BC4,x[$80:0BCA] A:0702 X:0006 Y:0002 P:envMxdizc $80/D5F8 68 PLA A:0702 X:0006 Y:0002 P:envMxdizc $80/D5F9 9D 03 0E STA $0E03,x[$80:0E09] A:0700 X:0006 Y:0002 P:envMxdiZc $80/D5FC A5 09 LDA $09 [$00:0009] A:0700 X:0006 Y:0002 P:envMxdiZc $80/D5FE 9D 03 07 STA $0703,x[$80:0709] A:0744 X:0006 Y:0002 P:envMxdizc $80/D601 A5 0A LDA $0A [$00:000A] A:0744 X:0006 Y:0002 P:envMxdizc $80/D603 9D 43 06 STA $0643,x[$80:0649] A:0770 X:0006 Y:0002 P:envMxdizc $80/D606 A5 0B LDA $0B [$00:000B] A:0770 X:0006 Y:0002 P:envMxdizc $80/D608 9D 44 06 STA $0644,x[$80:064A] A:0706 X:0006 Y:0002 P:envMxdizc $80/D60B A9 10 LDA #$10 A:0706 X:0006 Y:0002 P:envMxdizc $80/D60D 9D C3 08 STA $08C3,x[$80:08C9] A:0710 X:0006 Y:0002 P:envMxdizc $80/D610 A5 0A LDA $0A [$00:000A] A:0710 X:0006 Y:0002 P:envMxdizc $80/D612 C9 50 CMP #$50 A:0770 X:0006 Y:0002 P:envMxdizc $80/D614 90 03 BCC $03 [$D619] A:0770 X:0006 Y:0002 P:envMxdizC $80/D616 FE C3 08 INC $08C3,x[$80:08C9] A:0770 X:0006 Y:0002 P:envMxdizC $80/D619 AD EC 1E LDA $1EEC [$80:1EEC] A:0770 X:0006 Y:0002 P:envMxdizC $80/D61C 9D C3 06 STA $06C3,x[$80:06C9] A:0720 X:0006 Y:0002 P:envMxdizC $80/D61F A9 01 LDA #$01 A:0720 X:0006 Y:0002 P:envMxdizC $80/D621 9D 04 09 STA $0904,x[$80:090A] A:0701 X:0006 Y:0002 P:envMxdizC $80/D624 A5 12 LDA $12 [$00:0012] A:0701 X:0006 Y:0002 P:envMxdizC $80/D626 C9 02 CMP #$02 A:0702 X:0006 Y:0002 P:envMxdizC $80/D628 B0 1F BCS $1F [$D649] A:0702 X:0006 Y:0002 P:envMxdiZC
- code is missing here
$80/D649 20 A4 99 JSR $99A4 [$80:99A4] A:0702 X:0006 Y:0002 P:envMxdiZC $80/D64C 20 9A 9B JSR $9B9A [$80:9B9A] A:8107 X:0006 Y:0002 P:envMxdizc $80/D64F DA PHX A:FFFF X:0006 Y:0006 P:eNvMxdizC $80/D650 A5 0C LDA $0C [$00:000C] A:FFFF X:0006 Y:0006 P:eNvMxdizC $80/D652 C9 FF CMP #$FF A:FFFF X:0006 Y:0006 P:eNvMxdizC $80/D654 F0 3F BEQ $3F [$D695] A:FFFF X:0006 Y:0006 P:envMxdiZC
- code is missing here
$80/D695 9B TXY A:FFFF X:0006 Y:0006 P:envMxdiZC $80/D696 A5 0D LDA $0D [$00:000D] A:FFFF X:0006 Y:0006 P:envMxdizC $80/D698 C9 FF CMP #$FF A:FFFF X:0006 Y:0006 P:eNvMxdizC $80/D69A F0 33 BEQ $33 [$D6CF] A:FFFF X:0006 Y:0006 P:envMxdiZC
- code is missing here
$80/D6CF FA PLX A:FFFF X:0006 Y:0006 P:envMxdiZC $80/D6D0 20 21 CE JSR $CE21 [$80:CE21] A:FFFF X:0006 Y:0006 P:envMxdizC $80/D6D3 A6 91 LDX $91 [$00:0091] A:FFFF X:0008 Y:0008 P:eNvMxdizC $80/D6D5 BC 3E 1E LDY $1E3E,x[$80:1E40] A:FFFF X:0002 Y:0008 P:envMxdizC $80/D6D8 84 3B STY $3B [$00:003B] A:FFFF X:0002 Y:0002 P:envMxdizC $80/D6DA AB PLB A:FFFF X:0002 Y:0002 P:envMxdizC $80/D6DB 6B RTL A:FFFF X:0002 Y:0002 P:eNvMxdizC
$80/D929 ?
$80/D929 5A PHY ; Buffer Y on Stack $80/D92A D4 00 PEI ($00) ; Buffer $00-$03 on Stack $80/D92C D4 02 PEI ($02) $80/D92E 7B TDC ; Clear 16-bit A $80/D92F BD C4 08 LDA $08C4,x[$80:08CC] A:0000 X:0008 Y:0006 P:envMxdiZc $80/D932 A8 TAY A:0006 X:0008 Y:0006 P:envMxdizc $80/D933 84 02 STY $02 [$00:0002] A:0006 X:0008 Y:0006 P:envMxdizc $80/D935 B9 04 07 LDA $0704,y[$80:070A] A:0006 X:0008 Y:0006 P:envMxdizc $80/D938 89 20 BIT #$20 A:0000 X:0008 Y:0006 P:envMxdiZc $80/D93A F0 06 BEQ $06 [$D942] A:0000 X:0008 Y:0006 P:envMxdiZc
- code is missing here
$80/D942 AD BF 05 LDA $05BF [$80:05BF] A:0000 X:0008 Y:0006 P:envMxdiZc $80/D945 C9 08 CMP #$08 A:0000 X:0008 Y:0006 P:envMxdiZc $80/D947 F0 75 BEQ $75 [$D9BE] A:0000 X:0008 Y:0006 P:eNvMxdizc $80/D949 C9 04 CMP #$04 A:0000 X:0008 Y:0006 P:eNvMxdizc $80/D94B F0 71 BEQ $71 [$D9BE] A:0000 X:0008 Y:0006 P:eNvMxdizc $80/D94D C9 07 CMP #$07 A:0000 X:0008 Y:0006 P:eNvMxdizc $80/D94F F0 6D BEQ $6D [$D9BE] A:0000 X:0008 Y:0006 P:eNvMxdizc $80/D951 C9 0F CMP #$0F A:0000 X:0008 Y:0006 P:eNvMxdizc $80/D953 F0 69 BEQ $69 [$D9BE] A:0000 X:0008 Y:0006 P:eNvMxdizc $80/D955 B9 C3 08 LDA $08C3,y[$80:08C9] A:0000 X:0008 Y:0006 P:eNvMxdizc $80/D958 C9 11 CMP #$11 A:0006 X:0008 Y:0006 P:envMxdizc $80/D95A F0 62 BEQ $62 [$D9BE] A:0006 X:0008 Y:0006 P:eNvMxdizc $80/D95C 7B TDC A:0006 X:0008 Y:0006 P:eNvMxdizc $80/D95D B9 C4 0B LDA $0BC4,y[$80:0BCA] A:0000 X:0008 Y:0006 P:envMxdiZc $80/D960 A8 TAY A:0004 X:0008 Y:0006 P:envMxdizc $80/D961 B9 C7 1D LDA $1DC7,y[$80:1DCB] A:0004 X:0008 Y:0004 P:envMxdizc $80/D964 4A LSR A A:0001 X:0008 Y:0004 P:envMxdizc $80/D965 4A LSR A A:0000 X:0008 Y:0004 P:envMxdiZC $80/D966 C9 01 CMP #$01 A:0000 X:0008 Y:0004 P:envMxdiZc $80/D968 D0 54 BNE $54 [$D9BE] A:0000 X:0008 Y:0004 P:eNvMxdizc
- code is missing here
$80/D9BE BD 03 0D LDA $0D03,x[$80:0D0B] A:0000 X:0008 Y:0004 P:eNvMxdizc $80/D9C1 9D 04 0D STA $0D04,x[$80:0D0C] A:0000 X:0008 Y:0004 P:envMxdiZc $80/D9C4 A4 02 LDY $02 [$00:0002] A:0000 X:0008 Y:0004 P:envMxdiZc $80/D9C6 7B TDC A:0000 X:0008 Y:0006 P:envMxdizc $80/D9C7 B9 C4 0B LDA $0BC4,y[$80:0BCA] A:0000 X:0008 Y:0006 P:envMxdiZc $80/D9CA A8 TAY A:0004 X:0008 Y:0006 P:envMxdizc $80/D9CB B9 AE 17 LDA $17AE,y[$80:17B2] A:0004 X:0008 Y:0004 P:envMxdizc $80/D9CE 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $80/D9D2 A9 01 LDA #$01 A:0034 X:0008 Y:0004 P:envMxdizc $80/D9D4 90 01 BCC $01 [$D9D7] A:0001 X:0008 Y:0004 P:envMxdizc
- code is missing here
$80/D9D7 9D 04 06 STA $0604,x[$80:060C] A:0001 X:0008 Y:0004 P:envMxdizc $80/D9DA 7A PLY ; Restore $00-$03 from Stack $80/D9DB 84 02 STY $02 $80/D9DD 7A PLY $80/D9DE 84 00 STY $00 $80/D9E0 7A PLY ; Restore Y from Stack $80/D9E1 60 RTS
$80/DA78 ?
$80/DA78 7B TDC A:8134 X:0006 Y:0004 P:envMxdizc $80/DA79 BD C4 0B LDA $0BC4,x[$80:0BCA] A:0000 X:0006 Y:0004 P:envMxdiZc $80/DA7C A8 TAY A:0004 X:0006 Y:0004 P:envMxdizc $80/DA7D A9 00 LDA #$00 A:0004 X:0006 Y:0004 P:envMxdizc $80/DA7F 99 16 1E STA $1E16,y[$80:1E1A] A:0000 X:0006 Y:0004 P:envMxdiZc $80/DA82 99 17 1E STA $1E17,y[$80:1E1B] A:0000 X:0006 Y:0004 P:envMxdiZc $80/DA85 A9 07 LDA #$07 A:0000 X:0006 Y:0004 P:envMxdiZc $80/DA87 9D C3 08 STA $08C3,x[$80:08C9] A:0007 X:0006 Y:0004 P:envMxdizc $80/DA8A A9 01 LDA #$01 A:0007 X:0006 Y:0004 P:envMxdizc $80/DA8C 9D 43 08 STA $0843,x[$80:0849] A:0001 X:0006 Y:0004 P:envMxdizc $80/DA8F 60 RTS A:0001 X:0006 Y:0004 P:envMxdizc
$80/DA90 DA PHX ; Buffer X and Y on Stack $80/DA91 5A PHY $80/DA92 D4 00 PEI ($00) ; Buffer $00/$01 on Stack $80/DA94 BD C4 08 LDA $08C4,x[$80:08CC] A:0780 X:0008 Y:0008 P:envMxdizc $80/DA97 85 00 STA $00 [$00:0000] A:0706 X:0008 Y:0008 P:envMxdizc $80/DA99 BD C4 0B LDA $0BC4,x[$80:0BCC] A:0706 X:0008 Y:0008 P:envMxdizc $80/DA9C 85 01 STA $01 [$00:0001] A:0704 X:0008 Y:0008 P:envMxdizc $80/DA9E 7B TDC ; Clear 16-bit A $80/DA9F BD 44 0A LDA $0A44,x[$80:0A4C] A:0000 X:0008 Y:0008 P:envMxdiZc $80/DAA2 EB XBA A:0007 X:0008 Y:0008 P:envMxdizc $80/DAA3 C2 20 REP #$20 A:0700 X:0008 Y:0008 P:envMxdiZc $80/DAA5 4A LSR A A:0700 X:0008 Y:0008 P:envmxdiZc $80/DAA6 4A LSR A A:0380 X:0008 Y:0008 P:envmxdizc $80/DAA7 4A LSR A A:01C0 X:0008 Y:0008 P:envmxdizc $80/DAA8 E2 20 SEP #$20 A:00E0 X:0008 Y:0008 P:envmxdizc $80/DAAA 1D 04 0A ORA $0A04,x[$80:0A0C] A:00E0 X:0008 Y:0008 P:envMxdizc $80/DAAD AA TAX A:00E9 X:0008 Y:0008 P:eNvMxdizc $80/DAAE 7B TDC ; Clear 16-bit A $80/DAAF BF 00 DC 7F LDA $7FDC00,x ; Load "value from Map which Figure Stands where" $80/DAB3 30 2B BMI $2B ; [$DAE0] If negative, load value from Step Map and exit $80/DAB5 C5 01 CMP $01 [$00:0001] A:0004 X:00E9 Y:0008 P:envMxdizc $80/DAB7 F0 27 BEQ $27 ; [$DAE0] If equal, load value from Step Map and exit $80/DAB9 A8 TAY A:0006 X:0044 Y:0010 P:eNvMxdizc $80/DABA B9 DE 19 LDA $19DE,y[$80:19E4] A:0006 X:0044 Y:0006 P:envMxdizc $80/DABD 4A LSR A A:0000 X:0044 Y:0006 P:envMxdiZc $80/DABE B0 20 BCS $20 [$DAE0] A:0000 X:0044 Y:0006 P:envMxdiZc $80/DAC0 B9 AE 17 LDA $17AE,y ; Load Character Sprite $80/DAC3 C9 F0 CMP #$F0 A:003B X:0044 Y:0006 P:envMxdizc $80/DAC5 B0 19 BCS $19 ; [$DAE0] If equal, load value from Step Map and exit $80/DAC7 B9 C6 1D LDA $1DC6,y[$80:1DCC] A:003B X:0044 Y:0006 P:envMxdizc $80/DACA 18 CLC A:000B X:0044 Y:0006 P:envMxdizc $80/DACB 69 03 ADC #$03 A:000B X:0044 Y:0006 P:envMxdizc $80/DACD 0A ASL A A:000E X:0044 Y:0006 P:envMxdizc $80/DACE 85 01 STA $01 [$00:0001] A:001C X:0044 Y:0006 P:envMxdizc $80/DAD0 7B TDC A:001C X:0044 Y:0006 P:envMxdizc $80/DAD1 A5 00 LDA $00 [$00:0000] A:0000 X:0044 Y:0006 P:envMxdiZc $80/DAD3 A8 TAY A:000E X:0044 Y:0006 P:envMxdizc $80/DAD4 B9 84 0A LDA $0A84,y[$80:0A92] A:000E X:0044 Y:000E P:envMxdizc $80/DAD7 C5 01 CMP $01 [$00:0001] A:0016 X:0044 Y:000E P:envMxdizc $80/DAD9 90 05 BCC $05 [$DAE0] A:0016 X:0044 Y:000E P:eNvMxdizc $80/DADB A5 01 LDA $01 [$00:0001] A:001D X:0063 Y:0012 P:envMxdizC $80/DADD 4A LSR A A:001C X:0063 Y:0012 P:envMxdizC $80/DADE 80 04 BRA $04 [$DAE4] A:000E X:0063 Y:0012 P:envMxdizc $80/DAE0 BF 00 C8 7F LDA $7FC800,x ; Load value from Step Map $80/DAE4 7A PLY ; Restore $00/$01 from Stack $80/DAE5 84 00 STY $00 $80/DAE7 7A PLY ; Restore Y and X from Stack $80/DAE8 FA PLX $80/DAE9 60 RTS
$80/DC07 ?
$80/DC07 9E C3 08 STZ $08C3,x[$80:08C9] A:0001 X:0006 Y:0032 P:envMxdizc $80/DC0A A9 FF LDA #$FF A:0001 X:0006 Y:0032 P:envMxdizc $80/DC0C 9D C4 08 STA $08C4,x[$80:08CA] A:00FF X:0006 Y:0032 P:eNvMxdizc $80/DC0F 60 RTS A:00FF X:0006 Y:0032 P:eNvMxdizc
$80/DC4D ?
$80/DC4D 85 00 STA $00 [$00:0000] A:1600 X:0012 Y:0002 P:envmxdizc $80/DC4F E2 20 SEP #$20 A:1600 X:0012 Y:0002 P:envmxdizc $80/DC51 20 3F C2 JSR $C23F [$80:C23F] A:1600 X:0012 Y:0002 P:envMxdizc $80/DC54 0A ASL A A:000B X:0012 Y:0002 P:envMxdizc $80/DC55 64 02 STZ $02 [$00:0002] A:0016 X:0012 Y:0002 P:envMxdizc $80/DC57 85 03 STA $03 [$00:0003] A:0016 X:0012 Y:0002 P:envMxdizc $80/DC59 C2 20 REP #$20 A:0016 X:0012 Y:0002 P:envMxdizc $80/DC5B A5 00 LDA $00 [$00:0000] A:0016 X:0012 Y:0002 P:envmxdizc $80/DC5D C5 02 CMP $02 [$00:0002] A:1600 X:0012 Y:0002 P:envmxdizc $80/DC5F B0 02 BCS $02 [$DC63] A:1600 X:0012 Y:0002 P:envmxdiZC $80/DC63 60 RTS A:1600 X:0012 Y:0002 P:envmxdiZC
$80/DC64 ?
$80/DC64 20 A7 D1 JSR $D1A7 [$80:D1A7] A:0070 X:0012 Y:0070 P:envMxdizc $80/DC67 FE C3 08 INC $08C3,x[$80:08D5] A:00FF X:0012 Y:0002 P:envMxdizc $80/DC6A BD C4 08 LDA $08C4,x[$80:08D6] A:00FF X:0012 Y:0002 P:envMxdizc $80/DC6D CD 6E D2 CMP $D26E [$80:D26E] A:0056 X:0012 Y:0002 P:envMxdizc $80/DC70 D0 03 BNE $03 [$DC75] A:0056 X:0012 Y:0002 P:envMxdiZC $80/DC72 4C 06 DD JMP $DD06 [$80:DD06] A:0056 X:0012 Y:0002 P:envMxdiZC $80/DD06 FE C3 08 INC $08C3,x[$80:08D5] A:0056 X:0012 Y:0002 P:envMxdiZC $80/DD09 9E 43 08 STZ $0843,x[$80:0855] A:0056 X:0012 Y:0002 P:envMxdizC $80/DD0C C2 20 REP #$20 A:0056 X:0012 Y:0002 P:envMxdizC $80/DD0E 9E 83 0C STZ $0C83,x[$80:0C95] A:0056 X:0012 Y:0002 P:envmxdizC $80/DD11 9E C3 0C STZ $0CC3,x[$80:0CD5] A:0056 X:0012 Y:0002 P:envmxdizC $80/DD14 9E 03 0D STZ $0D03,x[$80:0D15] A:0056 X:0012 Y:0002 P:envmxdizC $80/DD17 BD 83 0A LDA $0A83,x[$80:0A95] A:0056 X:0012 Y:0002 P:envmxdizC $80/DD1A 9D 83 0D STA $0D83,x[$80:0D95] A:1600 X:0012 Y:0002 P:envmxdizC $80/DD1D E2 20 SEP #$20 A:1600 X:0012 Y:0002 P:envmxdizC $80/DD1F 20 4D DD JSR $DD4D [$80:DD4D] A:1600 X:0012 Y:0002 P:envMxdizC $80/DD22 BD 04 06 LDA $0604,x[$80:0616] A:1601 X:0012 Y:0002 P:envMxdizC $80/DD25 C9 01 CMP #$01 A:1602 X:0012 Y:0002 P:envMxdizC $80/DD27 F0 03 BEQ $03 [$DD2C] A:1602 X:0012 Y:0002 P:envMxdizC $80/DD29 9D 44 0C STA $0C44,x[$80:0C56] A:1602 X:0012 Y:0002 P:envMxdizC $80/DD2C 20 B2 D3 JSR $D3B2 [$80:D3B2] A:1602 X:0012 Y:0002 P:envMxdizC $80/DD2F 20 3C DF JSR $DF3C [$80:DF3C] A:0006 X:0012 Y:000C P:envMxdiZC $80/DD32 20 32 D4 JSR $D432 [$80:D432] A:0006 X:0012 Y:000C P:envMxdizC $80/DD35 60 RTS A:7201 X:0012 Y:0002 P:eNvMxdizc
$80/DD4D ?
$80/DD4D BC 03 0D LDY $0D03,x[$80:0D15] A:1600 X:0012 Y:0002 P:envMxdizC $80/DD50 F0 39 BEQ $39 [$DD8B] A:1600 X:0012 Y:0000 P:envMxdiZC $80/DD52 98 TYA A:0074 X:0012 Y:0004 P:envMxdizc $80/DD53 29 7F AND #$7F A:0004 X:0012 Y:0004 P:envMxdizc $80/DD55 D0 34 BNE $34 [$DD8B] A:0004 X:0012 Y:0004 P:envMxdizc $80/DD57 20 A7 D1 JSR $D1A7 [$80:D1A7] A:0000 X:0012 Y:0080 P:envMxdiZc $80/DD5A BD 83 08 LDA $0883,x[$80:0895] A:0002 X:0012 Y:000E P:envMxdizc $80/DD5D C9 02 CMP #$02 A:0001 X:0012 Y:000E P:envMxdizc $80/DD5F B0 16 BCS $16 [$DD77] A:0001 X:0012 Y:000E P:eNvMxdizc $80/DD61 BD 44 06 LDA $0644,x[$80:0656] A:0001 X:0012 Y:000E P:eNvMxdizc $80/DD64 C9 02 CMP #$02 A:0000 X:0012 Y:000E P:envMxdiZc $80/DD66 90 23 BCC $23 [$DD8B] A:0000 X:0012 Y:000E P:eNvMxdizc
- code is missing here
$80/DD8B BD 43 08 LDA $0843,x[$80:0855] A:1600 X:0012 Y:0000 P:envMxdiZC $80/DD8E D0 31 BNE $31 [$DDC1] A:1600 X:0012 Y:0000 P:envMxdiZC $80/DD90 7B TDC A:1600 X:0012 Y:0000 P:envMxdiZC $80/DD91 BD C3 0C LDA $0CC3,x[$80:0CD5] A:0000 X:0012 Y:0000 P:envMxdiZC $80/DD94 C9 FF CMP #$FF A:0000 X:0012 Y:0000 P:envMxdiZC $80/DD96 F0 29 BEQ $29 [$DDC1] A:0000 X:0012 Y:0000 P:envMxdizc $80/DD98 A8 TAY A:0000 X:0012 Y:0000 P:envMxdizc $80/DD99 BD 83 08 LDA $0883,x[$80:0895] A:0000 X:0012 Y:0000 P:envMxdiZc $80/DD9C C9 02 CMP #$02 A:0001 X:0012 Y:0000 P:envMxdizc $80/DD9E 90 05 BCC $05 [$DDA5] A:0001 X:0012 Y:0000 P:eNvMxdizc
- code is missing here
$80/DDA5 B9 2E DF LDA $DF2E,y[$80:DF2E] A:0001 X:0012 Y:0000 P:eNvMxdizc $80/DDA8 9D 44 06 STA $0644,x[$80:0656] A:0006 X:0012 Y:0000 P:envMxdizc $80/DDAB 9E 83 06 STZ $0683,x[$80:0695] A:0006 X:0012 Y:0000 P:envMxdizc $80/DDAE 9E 84 06 STZ $0684,x[$80:0696] A:0006 X:0012 Y:0000 P:envMxdizc $80/DDB1 98 TYA A:0006 X:0012 Y:0000 P:envMxdizc $80/DDB2 C9 02 CMP #$02 A:0000 X:0012 Y:0000 P:envMxdiZc $80/DDB4 D0 02 BNE $02 [$DDB8] A:0000 X:0012 Y:0000 P:eNvMxdizc $80/DDB6 3A DEC A A:0002 X:0012 Y:0002 P:envMxdiZC $80/DDB7 3A DEC A A:0001 X:0012 Y:0002 P:envMxdizC $80/DDB8 1A INC A A:0000 X:0012 Y:0000 P:eNvMxdizc $80/DDB9 9D C3 0C STA $0CC3,x[$80:0CD5] A:0001 X:0012 Y:0000 P:envMxdizc $80/DDBC A9 01 LDA #$01 A:0001 X:0012 Y:0000 P:envMxdizc $80/DDBE 9D 43 08 STA $0843,x[$80:0855] A:0001 X:0012 Y:0000 P:envMxdizc $80/DDC1 BD 03 07 LDA $0703,x[$80:0715] A:0001 X:0012 Y:0000 P:envMxdizc $80/DDC4 29 BF AND #$BF A:0044 X:0012 Y:0000 P:envMxdizc $80/DDC6 9D 03 07 STA $0703,x[$80:0715] A:0004 X:0012 Y:0000 P:envMxdizc $80/DDC9 7B TDC A:0004 X:0012 Y:0000 P:envMxdizc $80/DDCA BD 83 08 LDA $0883,x[$80:0895] A:0000 X:0012 Y:0000 P:envMxdiZc $80/DDCD A8 TAY A:0001 X:0012 Y:0000 P:envMxdizc $80/DDCE B9 6D B8 LDA $B86D,y[$80:B86E] A:0001 X:0012 Y:0001 P:envMxdizc $80/DDD1 1D 03 07 ORA $0703,x[$80:0715] A:0040 X:0012 Y:0001 P:envMxdizc $80/DDD4 9D 03 07 STA $0703,x[$80:0715] A:0044 X:0012 Y:0001 P:envMxdizc $80/DDD7 BD 44 06 LDA $0644,x[$80:0656] A:0044 X:0012 Y:0001 P:envMxdizc $80/DDDA C9 06 CMP #$06 A:0006 X:0012 Y:0001 P:envMxdizc $80/DDDC B0 73 BCS $73 [$DE51] A:0006 X:0012 Y:0001 P:envMxdiZC $80/DDDE 7B TDC A:0000 X:0012 Y:0001 P:eNvMxdizc $80/DDDF AF DF DB 7E LDA $7EDBDF[$7E:DBDF] A:0000 X:0012 Y:0001 P:envMxdiZc $80/DDE3 3A DEC A A:0005 X:0012 Y:0001 P:envMxdizc $80/DDE4 0A ASL A A:0004 X:0012 Y:0001 P:envMxdizc $80/DDE5 0A ASL A A:0008 X:0012 Y:0001 P:envMxdizc $80/DDE6 AA TAX A:0010 X:0012 Y:0001 P:envMxdizc $80/DDE7 C2 20 REP #$20 A:0010 X:0010 Y:0001 P:envMxdizc $80/DDE9 BF E2 DB 7E LDA $7EDBE2,x[$7E:DBF2] A:0010 X:0010 Y:0001 P:envmxdizc $80/DDED A6 3B LDX $3B [$00:003B] A:0480 X:0010 Y:0001 P:envmxdizc $80/DDEF DD 03 0D CMP $0D03,x[$80:0D15] A:0480 X:0012 Y:0001 P:envmxdizc $80/DDF2 E2 20 SEP #$20 A:0480 X:0012 Y:0001 P:envmxdizC $80/DDF4 D0 03 BNE $03 [$DDF9] A:0480 X:0012 Y:0001 P:envMxdizC $80/DDF9 7B TDC A:0480 X:0012 Y:0001 P:envMxdizC $80/DDFA BD 84 08 LDA $0884,x[$80:0896] A:0000 X:0012 Y:0001 P:envMxdiZC $80/DDFD C2 20 REP #$20 A:0008 X:0012 Y:0001 P:envMxdizC $80/DDFF 9D C3 0A STA $0AC3,x[$80:0AD5] A:0008 X:0012 Y:0001 P:envmxdizC $80/DE02 9D 03 0B STA $0B03,x[$80:0B15] A:0008 X:0012 Y:0001 P:envmxdizC $80/DE05 4A LSR A A:0008 X:0012 Y:0001 P:envmxdizC $80/DE06 18 CLC A:0004 X:0012 Y:0001 P:envmxdizc $80/DE07 7D 03 0D ADC $0D03,x[$80:0D15] A:0004 X:0012 Y:0001 P:envmxdizc $80/DE0A 9D 03 0D STA $0D03,x[$80:0D15] A:0004 X:0012 Y:0001 P:envmxdizc $80/DE0D E2 20 SEP #$20 A:0004 X:0012 Y:0001 P:envmxdizc $80/DE0F AA TAX A:0004 X:0012 Y:0001 P:envMxdizc $80/DE10 22 A7 B0 86 JSL $86B0A7[$86:B0A7] A:0004 X:0004 Y:0001 P:envMxdizc $80/DE14 C2 21 REP #$21 A:00B0 X:00B0 Y:0000 P:eNvMxdizc $80/DE16 8A TXA A:00B0 X:00B0 Y:0000 P:eNvmxdizc $80/DE17 69 20 00 ADC #$0020 A:00B0 X:00B0 Y:0000 P:envmxdizc $80/DE1A 0A ASL A A:00D0 X:00B0 Y:0000 P:envmxdizc $80/DE1B 0A ASL A A:01A0 X:00B0 Y:0000 P:envmxdizc $80/DE1C 0A ASL A A:0340 X:00B0 Y:0000 P:envmxdizc $80/DE1D 0A ASL A A:0680 X:00B0 Y:0000 P:envmxdizc $80/DE1E 0A ASL A A:0D00 X:00B0 Y:0000 P:envmxdizc $80/DE1F A6 3B LDX $3B [$00:003B] A:1A00 X:00B0 Y:0000 P:envmxdizc $80/DE21 9D 83 0D STA $0D83,x[$80:0D95] A:1A00 X:0012 Y:0000 P:envmxdizc $80/DE24 E2 20 SEP #$20 A:1A00 X:0012 Y:0000 P:envmxdizc $80/DE26 20 63 C3 JSR $C363 [$80:C363] A:1A00 X:0012 Y:0000 P:envMxdizc $80/DE29 7B TDC A:0188 X:0012 Y:0000 P:envMxdizc $80/DE2A BD C4 0B LDA $0BC4,x[$80:0BD6] A:0000 X:0012 Y:0000 P:envMxdiZc $80/DE2D A8 TAY A:000C X:0012 Y:0000 P:envMxdizc $80/DE2E B9 AF 17 LDA $17AF,y[$80:17BB] A:000C X:0012 Y:000C P:envMxdizc $80/DE31 3A DEC A A:003A X:0012 Y:000C P:envMxdizc $80/DE32 AA TAX A:0039 X:0012 Y:000C P:envMxdizc $80/DE33 BF 5B C7 88 LDA $88C75B,x[$88:C794] A:0039 X:0039 Y:000C P:envMxdizc $80/DE37 A6 3B LDX $3B [$00:003B] A:0002 X:0039 Y:000C P:envMxdizc $80/DE39 29 03 AND #$03 A:0002 X:0012 Y:000C P:envMxdizc $80/DE3B C9 02 CMP #$02 A:0002 X:0012 Y:000C P:envMxdizc $80/DE3D F0 0D BEQ $0D [$DE4C] A:0002 X:0012 Y:000C P:envMxdiZC
- code is missing here
$80/DE4C DE 83 0C DEC $0C83,x[$80:0C95] A:0002 X:0012 Y:000C P:envMxdiZC $80/DE4F 80 14 BRA $14 [$DE65] A:0002 X:0012 Y:000C P:eNvMxdizC $80/DE51 BD 83 06 LDA $0683,x[$80:0695] A:0006 X:0012 Y:0001 P:envMxdiZC $80/DE54 C9 06 CMP #$06 A:0000 X:0012 Y:0001 P:envMxdiZC $80/DE56 90 0D BCC $0D [$DE65] A:0000 X:0012 Y:0001 P:eNvMxdizc $80/DE58 C2 21 REP #$21 A:0008 X:0012 Y:0001 P:envMxdizC $80/DE5A A9 20 00 LDA #$0020 A:0008 X:0012 Y:0001 P:envmxdizc $80/DE5D 7D 83 0D ADC $0D83,x[$80:0D95] A:0020 X:0012 Y:0001 P:envmxdizc $80/DE60 9D 83 0D STA $0D83,x[$80:0D95] A:1620 X:0012 Y:0001 P:envmxdizc $80/DE63 E2 20 SEP #$20 A:1620 X:0012 Y:0001 P:envmxdizc $80/DE65 C2 20 REP #$20 A:0000 X:0012 Y:0001 P:eNvMxdizc $80/DE67 BD 43 0D LDA $0D43,x[$80:0D55] A:0000 X:0012 Y:0001 P:eNvmxdizc $80/DE6A 9D 83 0A STA $0A83,x[$80:0A95] A:0000 X:0012 Y:0001 P:envmxdiZc $80/DE6D E2 20 SEP #$20 A:0000 X:0012 Y:0001 P:envmxdiZc $80/DE6F 22 4C 96 84 JSL $84964C[$84:964C] A:0000 X:0012 Y:0001 P:envMxdiZc $80/DE73 C2 21 REP #$21 A:0002 X:0012 Y:0002 P:eNvMxdizc $80/DE75 BD 83 0A LDA $0A83,x[$80:0A95] A:0002 X:0012 Y:0002 P:eNvmxdizc $80/DE78 9D 43 0D STA $0D43,x[$80:0D55] A:0000 X:0012 Y:0002 P:envmxdiZc $80/DE7B 7D 83 0D ADC $0D83,x[$80:0D95] A:0000 X:0012 Y:0002 P:envmxdiZc $80/DE7E BD 83 0D LDA $0D83,x[$80:0D95] A:1600 X:0012 Y:0002 P:envmxdizc $80/DE81 20 4D DC JSR $DC4D [$80:DC4D] A:1600 X:0012 Y:0002 P:envmxdizc $80/DE84 9D 83 0A STA $0A83,x[$80:0A95] A:1600 X:0012 Y:0002 P:envmxdiZC $80/DE87 E2 20 SEP #$20 A:1600 X:0012 Y:0002 P:envmxdiZC $80/DE89 BD 43 08 LDA $0843,x[$80:0855] A:1600 X:0012 Y:0002 P:envMxdiZC $80/DE8C D0 03 BNE $03 [$DE91] A:1601 X:0012 Y:0002 P:envMxdizC $80/DE8E 4C 90 DD JMP $DD90 [$80:DD90] A:1900 X:0012 Y:0013 P:envMxdiZC
- code is missing here
$80/DE91 60 RTS A:1601 X:0012 Y:0002 P:envMxdizC
$80/E009 $05C0 Jump Table
$80/E009 AD C0 05 LDA $05C0 ; Load $05C0 $80/E00C EB XBA ; Clear High Byte $80/E00D A9 00 LDA #$00 $80/E00F EB XBA $80/E010 0A ASL A ; Multiply by 2 $80/E011 AA TAX ; Transfer to X $80/E012 7C 15 E0 JMP ($E015,x) ; Use the Jump Table
$80/E015 Jump Table for $80/E009
1B E0 Entry #$00 - $E01B - Check Buttons in Cursor Move Mode 06 E1 Entry #$01 - $E160 - 56 E2 Entry #$02 - $E256 -
$80/E01B BATTLE: Check Buttons in Cursor Move Mode
$80/E01B AD C2 05 LDA $05C2 [$80:05C2] A:0000 X:0000 Y:000A P:envMxdiZc $80/E01E D0 67 BNE $67 [$E087] A:0000 X:0000 Y:000A P:envMxdiZc $80/E020 20 DF 98 JSR $98DF [$80:98DF] A:0000 X:0000 Y:000A P:envMxdiZc $80/E023 B0 62 BCS $62 [$E087] A:0050 X:0000 Y:000A P:envMxdiZc $80/E025 AD 66 05 LDA $0566 ; Was the B Button pushed? $80/E028 89 80 BIT #$80 $80/E02A F0 1B BEQ $1B ; [$E047] Branch if not $80/E02C 22 42 F9 80 JSL $80F942 ; Long Jump to Which Figure is the Cursor Pointing on $80/E030 90 03 BCC $03 [$E035] A:0032 X:0000 Y:000A P:eNvMxdizc
- Code is missing here
$80/E035 BD DE 19 LDA $19DE,x ; Check Figure's Status Effects(!?) $80/E038 89 03 BIT #$03 A:0000 X:0000 Y:000A P:envMxdiZc $80/E03A D0 0B BNE $0B ; [$E047] Exit this part and go on to the next button $80/E03C 20 92 FA JSR $FA92 ; Play Sound Effect Number #$02 $80/E03F 22 9F 84 9B JSL $9B849F
$80/E047 AD 65 05 LDA $0565 ; Was the A Button pushed? $80/E04A 89 80 BIT #$80 $80/E04C F0 03 BEQ $03 ; [$E051] Branch if not $80/E04E 4C AA E0 JMP $E0AA ; ??? Open the Battle Stats Menu? $80/E051 89 40 BIT #$40 ; Was the X Button pushed? $80/E053 D0 3A BNE $3A ; [$E08F] Branch if it IS $80/E055 AD 66 05 LDA $0566 [$80:0566] A:0000 X:0000 Y:000A P:envMxdiZc $80/E058 89 20 BIT #$20 $80/E05A F0 0A BEQ $0A ; [$E066] Branch if not
- Code is missing here
$80/E066 20 9D 98 JSR $989D [$80:989D] A:0000 X:0000 Y:000A P:envMxdiZc $80/E069 90 1C BCC $1C [$E087] A:0000 X:0000 Y:000A P:envMxdiZc
- Code is missing here
$80/E087 A5 60 LDA $60 [$00:0060] A:0000 X:0000 Y:000A P:envMxdiZc $80/E089 F0 03 BEQ $03 [$E08E] A:0001 X:0000 Y:000A P:envMxdizc $80/E08B 20 44 F8 JSR $F844 [$80:F844] A:0001 X:0000 Y:000A P:envMxdizc $80/E08E 60 RTS A:0000 X:003E Y:0002 P:eNvMxdizc
$80/F6DF BATTLE: Set the Cursor's Sprites to it's new position?
$80/F6DF 20 34 F7 JSR $F734 ; Get the Height's Map Address of the rhomb the Cursor points to $80/F6E2 BF 00 D8 7F LDA $7FD800,x ; Load the height of the rhomb the cursor points on $80/F6E6 F0 01 BEQ $01 ; [$F6E9] Decrement the value if it isn't zero $80/F6E8 3A DEC A $80/F6E9 85 65 STA $65 ; Store in $65 ("Cursor Height" storage) $80/F6EB 64 66 STZ $66 ; Clear $66 (only used in 16-bit calculation with $65?) $80/F6ED A2 3C 00 LDX #$003C ; Write Index for the second last figure (Rhomb Marker) $80/F6F0 A0 3E 00 LDY #$003E ; Write Index for the last figure (Pointing Hand) $80/F6F3 A9 7F LDA #$7F A:0006 X:003C Y:003E P:envMxdizc $80/F6F5 9D 03 0A STA $0A03,x[$80:0A3F] A:007F X:003C Y:003E P:envMxdizc $80/F6F8 99 03 0A STA $0A03,y[$80:0A41] A:007F X:003C Y:003E P:envMxdizc $80/F6FB 9D 43 0A STA $0A43,x[$80:0A7F] A:007F X:003C Y:003E P:envMxdizc $80/F6FE 99 43 0A STA $0A43,y[$80:0A81] A:007F X:003C Y:003E P:envMxdizc $80/F701 A9 00 LDA #$00 A:007F X:003C Y:003E P:envMxdizc $80/F703 9D 83 0A STA $0A83,x[$80:0ABF] A:0000 X:003C Y:003E P:envMxdiZc $80/F706 99 83 0A STA $0A83,y[$80:0AC1] A:0000 X:003C Y:003E P:envMxdiZc $80/F709 A5 61 LDA $61 ; Cursor Position - NW to SE Axis $80/F70B 9D 04 0A STA $0A04,x[$80:0A40] A:000B X:003C Y:003E P:envMxdizc $80/F70E 99 04 0A STA $0A04,y[$80:0A42] A:000B X:003C Y:003E P:envMxdizc $80/F711 9D 43 09 STA $0943,x[$80:097F] A:000B X:003C Y:003E P:envMxdizc $80/F714 99 43 09 STA $0943,y[$80:0981] A:000B X:003C Y:003E P:envMxdizc $80/F717 A5 63 LDA $63 ; Cursor Position - NE to SW Axis $80/F719 9D 44 0A STA $0A44,x[$80:0A80] A:0001 X:003C Y:003E P:envMxdizc $80/F71C 99 44 0A STA $0A44,y[$80:0A82] A:0001 X:003C Y:003E P:envMxdizc $80/F71F 9D 44 09 STA $0944,x[$80:0980] A:0001 X:003C Y:003E P:envMxdizc $80/F722 99 44 09 STA $0944,y[$80:0982] A:0001 X:003C Y:003E P:envMxdizc $80/F725 A5 65 LDA $65 ; Cursor Height $80/F727 0A ASL A A:0006 X:003C Y:003E P:envMxdizc $80/F728 9D 84 0A STA $0A84,x[$80:0AC0] A:000C X:003C Y:003E P:envMxdizc $80/F72B 69 06 ADC #$06 A:000C X:003C Y:003E P:envMxdizc $80/F72D 99 84 0A STA $0A84,y[$80:0AC2] A:0012 X:003C Y:003E P:envMxdizc $80/F730 20 21 9A JSR $9A21 ; Calculate the Global Cursor Position from it's Position on Map $80/F733 60 RTS
$80/F734 BATTLE: Get the Map Address of the Rhomb the Cursor points to
If you enter Battle, the program sets up several Maps on Bank $7F, which are all structured the same, for example the Height Map at $7F/D800. This is the map where the height of each Rhomb on the Battle Map is stored.
This subroutine turns the current position of the cursor into the offset for the corresponding entry on any of the the Maps. This is used for example on the Height Map to position the cursor on screen - depending on the Rhomb's height, the cursor has to be higher or lower on the screen.
These Maps have Rows and Columns. Each Row is $20 bytes long and contains all Rhombs with the same position on the NE-SW-Axis. This is why the calculation takes the NE-SW-Axis position and multiplies it by 20.
X will contain the result in the end.
$80/F734 7B TDC ; Clear 16-bit A $80/F735 A5 63 LDA $63 ; Load Cursor Position (NE-SW-Axis) $80/F737 C2 20 REP #$20 ; A = 16-bit $80/F739 EB XBA ; Multiply by 20 $80/F73A 4A LSR A $80/F73B 4A LSR A $80/F73C 4A LSR A $80/F73D E2 20 SEP #$20 ; A = 8-bit $80/F73F 05 61 ORA $61 ; Add the Cursor Position on the NW-SE-Axis $80/F741 AA TAX ; Transfer the result in X $80/F742 60 RTS
$80/F844 BATTLE: Changing Cursor Position something something
Part to F84C (including that line) is executed when Cursor is idle
The other stuff is executed when moved
$80/F844 7B TDC ; Clear 16-bit A $80/F845 AD 68 05 LDA $0568 ; Load High Byte of Inputs that are actually worked off $80/F848 29 0F AND #$0F ; Exempt the D-Pad Inputs $80/F84A D0 03 BNE $03 ; [$F84F] Branch if there ARE directional inputs $80/F84C 4C E4 F8 JMP $F8E4 ; Jump to the last part of this subroutine (consider this as a long branch) $80/F84F A8 TAY ; Transfer the Directional Inputs in Y $80/F850 A5 63 LDA $63 ; 16-bit A contains the current cursors position after this $80/F852 EB XBA ; High Byte: Position on the NE-SW-Axis $80/F853 A5 61 LDA $61 ; Low Byte: Position on the NW-SE-Axis $80/F855 AA TAX ; Transfer it to X $80/F856 DA PHX ; ... and BUFFER IT ON STACK (gets important later) $80/F857 7B TDC ; Clear 16-bit-A $80/F858 A5 48 LDA $48 ; Load Cursor Move Type $80/F85A 29 03 AND #$03 ; Exempt the Bits for the Cursor Move Type $80/F85C 0A ASL A ; Use it as Index for the Jump Table beneath $80/F85D AA TAX $80/F85E 7C 61 F8 JMP ($F861,x) ; Jump to the Handler of the Input corresponding to the Cursor Move Type
$80/F861 BATTLE: Jump Table for $80/F844
99 F8 - Entry #$00 - $F899 - Cursor Move Type C Input Handler (No changes to the value in Y) 69 F8 - Entry #$01 - $F869 - Cursor Move Type A Input Handler 6F F8 - Entry #$02 - $F86F - Cursor Move Type B Input Handler 75 F8 - Entry #$03 - $F875 - Cursor Move Type D Input Handler
$80/F869 BATTLE: Turn Input from Cursor Move Type A to Type C
This turns the value in Y into another value; the Original value in Y is standard Input Data; the table at $F912 turn it around according to the Type A Cursor Setting.
$80/F869 B9 12 F9 LDA $F912,y ; Load Value $80/F86C A8 TAY ; Transfer to Y $80/F86D 80 2A BRA $2A ; [$F899]
$80/F86F BATTLE: Turn Input from Cursor Move Type B to Type C
This turns the value in Y into another value; the Original value in Y is standard Input Data; the table at $F922 turn it around according to the Type A Cursor Setting.
$80/F86F B9 22 F9 LDA $F922,y ; Load Value $80/F872 A8 TAY ; Transfer to Y $80/F873 80 24 BRA $24 ; [$F899]
$80/F899 BATTLE: Changing Cursor Position something something
$80/F899 84 00 STY $00 ; Buffer Joypad Input $80/F89B A4 00 LDY $00 ; Load Joypad Input (this line could be removed?) $80/F89D B9 F2 F8 LDA $F8F2,y ; Load the +1/-1 for the new NW-SE-Axis-position $80/F8A0 18 CLC $80/F8A1 65 61 ADC $61 ; Add current NW-SE-Axis-position $80/F8A3 F0 07 BEQ $07 ; [$F8AC] Branch (skip Position Update) if new position would be off-border (too low) $80/F8A5 CD C8 16 CMP $16C8 ; Compare to the NW-SE-Width of the Map $80/F8A8 B0 02 BCS $02 ; [$F8AC] Branch (skip Position Update) if new position would be off-border (too high) $80/F8AA 85 61 STA $61 ; Update Position on the NW-SE-Axis $80/F8AC B9 02 F9 LDA $F902,y ; Load the +1/-1 for the new NE-SW-Axis-position $80/F8AF 18 CLC $80/F8B0 65 63 ADC $63 ; Add current NW-SE-Axis-position $80/F8B2 F0 07 BEQ $07 ; [$F8BB] Branch (skip Position Update) if new position would be off-border (too low) $80/F8B4 CD CA 16 CMP $16CA ; Width of the Map on the NE-SW-Axis $80/F8B7 B0 02 BCS $02 ; [$F8BB] Branch (skip Position Update) if new position would be off-border (too high) $80/F8B9 85 63 STA $63 ; Update Position on the NE-SW-Axis $80/F8BB 20 DF F6 JSR $F6DF [$80:F6DF] A:0001 X:0002 Y:0009 P:eNvMxdizc $80/F8BE FA PLX ; Pull the old Cursor Position from Stack (see $80/F850) $80/F8BF 86 00 STX $00 ; Temp-Store it in $00 $80/F8C1 A5 63 LDA $63 ; Calculate the current Cursor Position according to the same pattern $80/F8C3 EB XBA $80/F8C4 A5 61 LDA $61 $80/F8C6 AA TAX ; Transfer it to X $80/F8C7 E4 00 CPX $00 ; Compare Old and New Position $80/F8C9 F0 19 BEQ $19 ; [$F8E4] ? Branch if they're the same $80/F8CB A5 47 LDA $47 ; Load Constant Menu Display Flag - clear if deactivated $80/F8CD 0D F4 16 ORA $16F4 [$80:16F4] A:0100 X:010B Y:003E P:envMxdiZc $80/F8D0 F0 12 BEQ $12 [$F8E4] A:0100 X:010B Y:003E P:envMxdiZc
- Code is missing here
$80/F8E4 A2 3E 00 LDX #$003E A:0000 X:0000 Y:000A P:envMxdiZc $80/F8E7 86 3B STX $3B [$00:003B] A:0000 X:003E Y:000A P:envMxdizc $80/F8E9 22 4C 96 84 JSL $84964C[$84:964C] A:0000 X:003E Y:000A P:envMxdizc $80/F8ED 22 F3 BB 82 JSL $82BBF3[$82:BBF3] A:0002 X:003E Y:0002 P:eNvMxdizc $80/F8F1 60 RTS A:0000 X:003E Y:0002 P:eNvMxdizc
$80/F8F2 Table of Values added to the NW to SE Axis Value
00 --- Entry #$00 - No Direction (should be never executed) 01 --- Entry #$01 - Move RIGHT FF --- Entry #$02 - Move LEFT 00 --- Entry #$03 - Move LEFT RIGHT (never possible on actual hardware) 01 --- Entry #$04 - Move DOWN 01 --- Entry #$05 - Move DOWN RIGHT 00 --- Entry #$06 - Move DOWN LEFT 00 --- Entry #$07 - Move DOWN LEFT RIGHT (never possible on actual hardware) FF --- Entry #$08 - Move UP 00 --- Entry #$09 - Move UP RIGHT FF --- Entry #$0A - Move UP LEFT 00 --- Entry #$0B - Move UP LEFT RIGHT (never possible on actual hardware) 00 --- Entry #$0C - Move UP DOWN (never possible on actual hardware) 00 --- Entry #$0D - Move UP DOWN RIGHT (never possible on actual hardware) 00 --- Entry #$0E - Move UP DOWN LEFT (never possible on actual hardware) 00 --- Entry #$0F - Move UP DOWN LEFT RIGHT (never possible on actual hardware)
$80/F902 Table of Values added to the NE to WE Axis Value
00 --- Entry #$00 - No Direction (should be never executed) FF --- Entry #$01 - Move RIGHT 01 --- Entry #$02 - Move LEFT 00 --- Entry #$03 - Move LEFT RIGHT (never possible on actual hardware) 01 --- Entry #$04 - Move DOWN 00 --- Entry #$05 - Move DOWN RIGHT 01 --- Entry #$06 - Move DOWN LEFT 00 --- Entry #$07 - Move DOWN LEFT RIGHT (never possible on actual hardware) FF --- Entry #$08 - Move UP FF --- Entry #$09 - Move UP RIGHT 00 --- Entry #$0A - Move UP LEFT 00 --- Entry #$0B - Move UP LEFT RIGHT (never possible on actual hardware) 00 --- Entry #$0C - Move UP DOWN (never possible on actual hardware) 00 --- Entry #$0D - Move UP DOWN RIGHT (never possible on actual hardware) 00 --- Entry #$0E - Move UP DOWN LEFT (never possible on actual hardware) 00 --- Entry #$0F - Move UP DOWN LEFT RIGHT (never possible on actual hardware)
$80/F912 Cursor Move Type A Table for $80/F869
00 --- Entry #$00 - %0000.0000 - No input (should be never executed) 05 --- Entry #$01 - %0000.0011 - Input RIGHT 0A --- Entry #$02 - %0000.1010 - Input LEFT 00 --- Entry #$03 - %0000.0000 - Input LEFT RIGHT (never possible on actual hardware) 06 --- Entry #$04 - %0000.0110 - Input DOWN 04 --- Entry #$05 - %0000.0100 - Input DOWN RIGHT 02 --- Entry #$06 - %0000.0010 - Input DOWN LEFT 00 --- Entry #$07 - %0000.0000 - Input DOWN LEFT RIGHT (never possible on actual hardware) 09 --- Entry #$08 - %0000.1001 - Input UP 01 --- Entry #$09 - %0000.0001 - Input UP RIGHT 08 --- Entry #$0A - %0000.1000 - Input UP LEFT 00 --- Entry #$0B - %0000.0000 - Input UP LEFT RIGHT (never possible on actual hardware) 00 --- Entry #$0C - %0000.0000 - Input UP DOWN (never possible on actual hardware) 00 --- Entry #$0D - %0000.0000 - Input UP DOWN RIGHT (never possible on actual hardware) 00 --- Entry #$0E - %0000.0000 - Input UP DOWN LEFT (never possible on actual hardware) 00 --- Entry #$0F - %0000.0000 - Input UP DOWN LEFT RIGHT (never possible on actual hardware)
$80/F922 Cursor Move Type B Table for $80/F869
00 --- Entry #$00 - %0000.0000 - No input (should be never executed) 09 --- Entry #$01 - %0000.1001 - Input RIGHT 06 --- Entry #$02 - %0000.0110 - Input LEFT 00 --- Entry #$03 - %0000.0000 - Input LEFT RIGHT (never possible on actual hardware) 05 --- Entry #$04 - %0000.0011 - Input DOWN 01 --- Entry #$05 - %0000.0001 - Input DOWN RIGHT 04 --- Entry #$06 - %0000.0100 - Input DOWN LEFT 00 --- Entry #$07 - %0000.0000 - Input DOWN LEFT RIGHT (never possible on actual hardware) 0A --- Entry #$08 - %0000.1010 - Input UP 08 --- Entry #$09 - %0000.1000 - Input UP RIGHT 02 --- Entry #$0A - %0000.0010 - Input UP LEFT 00 --- Entry #$0B - %0000.0000 - Input UP LEFT RIGHT (never possible on actual hardware) 00 --- Entry #$0C - %0000.0000 - Input UP DOWN (never possible on actual hardware) 00 --- Entry #$0D - %0000.0000 - Input UP DOWN RIGHT (never possible on actual hardware) 00 --- Entry #$0E - %0000.0000 - Input UP DOWN LEFT (never possible on actual hardware) 00 --- Entry #$0F - %0000.0000 - Input UP DOWN LEFT RIGHT (never possible on actual hardware)
$80/F932 Table 5 for $80/F869
00 --- Entry #$00 01 --- Entry #$01 02 --- Entry #$02 00 --- Entry #$03 04 --- Entry #$04 00 --- Entry #$05 00 --- Entry #$06 00 --- Entry #$07 08 --- Entry #$08 00 --- Entry #$09 00 --- Entry #$0A 00 --- Entry #$0B 00 --- Entry #$0C 00 --- Entry #$0D 00 --- Entry #$0E 00 --- Entry #$0F
$80/F942 Long Jump to Which Figure is the Cursor Pointing on
$80/F942 8B PHB ; Preserve Data Bank $80/F943 4B PHK ; Set Data Bank to $80 $80/F944 AB PLB $80/F945 20 4A F9 JSR $F94A ; Which Figure is the Cursor Pointing on $80/F948 AB PLB ; Restore Buffered Data Bank $80/F949 6B RTL
$80/F94A Which Figure is the Cursor Pointing on
$39 contains the number of the Figure after this.
A will contain the Graphic Set number of that Figure
$80/F94A 20 34 F7 JSR $F734 ; Get the Map Address of the Rhomb the Cursor points to $80/F94D 7B TDC ; Clear 16-bit A --- Map Address is in X, too $80/F94E BF 00 DC 7F LDA $7FDC00,x ; Load the Number of the Figure the Cursor points on $80/F952 30 0C BMI $0C ; [$F960] Branch if #$FF (Pointing on no figure) $80/F954 AA TAX ; Transfer the Map Value in X $80/F955 86 39 STX $39 ; Buffer Figure Number in $39 $80/F957 BD AE 17 LDA $17AE,x ; Load Graphic Set Number of this Figure $80/F95A C9 F0 CMP #$F0 ; ??? $80/F95C B0 07 BCS $07 ; [$F965] Branch if #$F0 or higher $80/F95E 18 CLC ; ??? $80/F95F 60 RTS
$80/FA92 Play Sound Effect #$02
$80/FA92 A9 02 LDA #$02 ; Sound Effect #$02 $80/FA94 4C B1 FA JMP $FAB1 ; Play Sound Effect
$80/FAB1 Play Sound Effect
A contains the number of the Sound Effect that is to be played.
$80/FAB1 48 PHA ; Buffer Number of the Sound Effect to play $80/FAB2 A5 57 LDA $57 ; Check if Sound Effects are turned off $80/FAB4 F0 04 BEQ $04 ; [$FABA] Branch if Sound Effects are turned off ($57 = #$00) $80/FAB6 68 PLA ; Pull Number of Sound Effect to play $80/FAB7 85 F6 STA $F6 ; Transfer to $2141 - Play Sound Effect $80/FAB9 60 RTS
Bank $81
$81/802A ? Sets up Window Mask for Textboxes
For all the in-game dialog boxes, this subroutine is executed. The Window Mask that gets set up in the latter part of this subroutine is for hiding sprites behind the textbox, otherwise they would appear between BG3 (the text) and BG1 (the textbox background).
$81/802A 8B PHB ; Buffer Data Bank on Stack $81/802B A9 7E LDA #$7E ; Set Data Bank to $7E $81/802D 48 PHA $81/802E AB PLB $81/802F DA PHX ; Buffer X on Stack $81/8030 7B TDC ; Clear 16-bit A $81/8031 A5 C1 LDA $C1 [$00:00C1] A:0000 X:1744 Y:000A P:envMxdiZc $81/8033 0A ASL A A:0001 X:1744 Y:000A P:envMxdizc $81/8034 A8 TAY A:0002 X:1744 Y:000A P:envMxdizc $81/8035 C2 21 REP #$21 A:0002 X:1744 Y:0002 P:envMxdizc $81/8037 A5 5C LDA $5C [$00:005C] A:0002 X:1744 Y:0002 P:envmxdizc $81/8039 99 C2 00 STA $00C2,y[$7E:00C4] A:3911 X:1744 Y:0002 P:envmxdizc $81/803C AA TAX A:3911 X:1744 Y:0002 P:envmxdizc $81/803D 69 08 00 ADC #$0008 A:3911 X:3911 Y:0002 P:envmxdizc $81/8040 85 5A STA $5A [$00:005A] A:3919 X:3911 Y:0002 P:envmxdizc $81/8042 85 5C STA $5C [$00:005C] A:3919 X:3911 Y:0002 P:envmxdizc $81/8044 86 D8 STX $D8 [$00:00D8] A:3919 X:3911 Y:0002 P:envmxdizc $81/8046 9E 02 00 STZ $0002,x[$7E:3913] A:3919 X:3911 Y:0002 P:envmxdizc $81/8049 9E 04 00 STZ $0004,x[$7E:3915] A:3919 X:3911 Y:0002 P:envmxdizc $81/804C 9E 06 00 STZ $0006,x[$7E:3917] A:3919 X:3911 Y:0002 P:envmxdizc $81/804F E2 20 SEP #$20 A:3919 X:3911 Y:0002 P:envmxdizc $81/8051 A9 02 LDA #$02 A:3919 X:3911 Y:0002 P:envMxdizc $81/8053 9D 00 00 STA $0000,x[$7E:3911] A:3902 X:3911 Y:0002 P:envMxdizc $81/8056 A5 C1 LDA $C1 [$00:00C1] A:3902 X:3911 Y:0002 P:envMxdizc $81/8058 9D 01 00 STA $0001,x[$7E:3912] A:3901 X:3911 Y:0002 P:envMxdizc $81/805B E6 C1 INC $C1 [$00:00C1] A:3901 X:3911 Y:0002 P:envMxdizc $81/805D A9 10 LDA #$10 ; Disable Sprites outside the window $81/805F 8D A8 05 STA $05A8 ; Store in Buffer for $212E $81/8062 A9 22 LDA #$22 ; Activate Window 1 OBJ/MATH Mask Outside $81/8064 8D A3 05 STA $05A3 ; Store in Buffer for $2125 $81/8067 A9 20 LDA #$20 ; Enable NotColorMath-Window $81/8069 0C AA 05 TSB $05AA ; Add to Buffer value for $2130 $81/806C EE 5F 17 INC $175F ; Set Flag for HDMA Window Mask $81/806F FA PLX ; Restore X and Data Bank from Stack $81/8070 AB PLB $81/8071 6B RTL
$81/8072 ?
$81/8072 8B PHB A:FF80 X:1744 Y:000A P:envMxdizc $81/8073 A9 7E LDA #$7E A:FF80 X:1744 Y:000A P:envMxdizc $81/8075 48 PHA A:FF7E X:1744 Y:000A P:envMxdizc $81/8076 AB PLB A:FF7E X:1744 Y:000A P:envMxdizc $81/8077 7B TDC A:FF7E X:1744 Y:000A P:envMxdizc $81/8078 22 73 A0 81 JSL $81A073[$81:A073] A:0000 X:1744 Y:000A P:envMxdiZc $81/807C 7B TDC A:0000 X:45D9 Y:0002 P:envMxdiZc $81/807D A5 C1 LDA $C1 [$00:00C1] A:0000 X:45D9 Y:0002 P:envMxdiZc $81/807F F0 17 BEQ $17 [$8098] A:0002 X:45D9 Y:0002 P:envMxdizc $81/8081 3A DEC A A:0002 X:45D9 Y:0002 P:envMxdizc $81/8082 0A ASL A A:0001 X:45D9 Y:0002 P:envMxdizc $81/8083 A8 TAY A:0002 X:45D9 Y:0002 P:envMxdizc $81/8084 B6 C2 LDX $C2,y [$00:00C4] A:0002 X:45D9 Y:0002 P:envMxdizc $81/8086 BD 00 00 LDA $0000,x[$7E:3911] A:0002 X:3911 Y:0002 P:envMxdizc $81/8089 C9 02 CMP #$02 A:0002 X:3911 Y:0002 P:envMxdizc $81/808B D0 0B BNE $0B [$8098] A:0002 X:3911 Y:0002 P:envMxdiZC $81/808D 86 5A STX $5A [$00:005A] A:0002 X:3911 Y:0002 P:envMxdiZC $81/808F C6 C1 DEC $C1 [$00:00C1] A:0002 X:3911 Y:0002 P:envMxdiZC $81/8091 AD C7 0E LDA $0EC7 [$7E:0EC7] A:0002 X:3911 Y:0002 P:envMxdizC $81/8094 D0 02 BNE $02 [$8098] A:0000 X:3911 Y:0002 P:envMxdiZC $81/8096 86 5C STX $5C [$00:005C] A:0000 X:3911 Y:0002 P:envMxdiZC $81/8098 9C A8 05 STZ $05A8 [$7E:05A8] A:0000 X:3911 Y:0002 P:envMxdiZC $81/809B A9 20 LDA #$20 A:0000 X:3911 Y:0002 P:envMxdiZC $81/809D 1C AA 05 TRB $05AA [$7E:05AA] A:0020 X:3911 Y:0002 P:envMxdizC $81/80A0 EE 5F 17 INC $175F [$7E:175F] A:0020 X:3911 Y:0002 P:envMxdizC $81/80A3 AB PLB A:0020 X:3911 Y:0002 P:envMxdizC $81/80A4 6B RTL A:0020 X:3911 Y:0002 P:envMxdizC
$81/80A5 ?
$81/80A5 48 PHA ; Buffer A and Y on Stack $81/80A6 5A PHY $81/80A7 20 C3 80 JSR $80C3 [$81:80C3] A:A801 X:3911 Y:3C00 P:envMxdizc $81/80AA B0 10 BCS $10 [$80BC] A:0002 X:3911 Y:0002 P:envMxdizc $81/80AC A3 03 LDA $03,s [$00:1FCB] A:0002 X:3911 Y:0002 P:envMxdizc $81/80AE 4A LSR A A:0001 X:3911 Y:0002 P:envMxdizc $81/80AF B0 06 BCS $06 [$80B7] A:0000 X:3911 Y:0002 P:envMxdiZC $81/80B1 BC 04 00 LDY $0004,x[$7E:3915] A:0000 X:3911 Y:0002 P:envMxdiZc $81/80B4 BB TYX A:0000 X:3911 Y:45D9 P:envMxdizc $81/80B5 80 04 BRA $04 [$80BB] A:0000 X:45D9 Y:45D9 P:envMxdizc $81/80B7 BC 06 00 LDY $0006,x[$7E:3917] A:0000 X:3911 Y:0002 P:envMxdiZC $81/80BA BB TYX A:0000 X:3911 Y:3919 P:envMxdizC $81/80BB 18 CLC A:0000 X:3919 Y:3919 P:envMxdizC $81/80BC 7A PLY ; Restore Y and A from Stack $81/80BD 68 PLA $81/80BE 60 RTS
$81/80BF ?
$81/80BF 20 C3 80 JSR $80C3 [$81:80C3] A:3700 X:3300 Y:3762 P:envMxdiZc $81/80C2 6B RTL A:0002 X:3911 Y:0002 P:envMxdizc
$81/80C3 ?
$81/80C3 A9 02 LDA #$02 A:3700 X:3300 Y:3762 P:envMxdiZc $81/80C5 20 48 D4 JSR $D448 [$81:D448] A:3702 X:3300 Y:3762 P:envMxdizc $81/80C8 60 RTS A:0002 X:3911 Y:0002 P:envMxdizc
$81/80C9 ?
$81/80C9 5A PHY ; Buffer Y and $02-$0D on Stack $81/80CA D4 02 PEI ($02) $81/80CC D4 04 PEI ($04) $81/80CE D4 06 PEI ($06) $81/80D0 D4 08 PEI ($08) $81/80D2 D4 0A PEI ($0A) $81/80D4 D4 0C PEI ($0C) $81/80D6 22 60 A4 80 JSL $80A460[$80:A460] A:0002 X:3300 Y:FFFE P:envMxdizC $81/80DA 22 E8 95 80 JSL $8095E8[$80:95E8] A:E008 X:0000 Y:B060 P:envMxdizc $81/80DE 22 8A A1 80 JSL $80A18A ; Wait for NMI $81/80E2 22 2A 80 81 JSL $81802A[$81:802A] A:FF80 X:1744 Y:000A P:envMxdizc $81/80E6 7A PLY ; Restore $0D-$02 and Y from Stack $81/80E7 84 0C STY $0C $81/80E9 7A PLY $81/80EA 84 0A STY $0A $81/80EC 7A PLY $81/80ED 84 08 STY $08 $81/80EF 7A PLY $81/80F0 84 06 STY $06 $81/80F2 7A PLY $81/80F3 84 04 STY $04 $81/80F5 7A PLY $81/80F6 84 02 STY $02 $81/80F8 7A PLY $81/80F9 60 RTS
$81/80FA ?
$81/80FA 48 PHA ; Buffer A, X and Y on Stack $81/80FB DA PHX $81/80FC 5A PHY $81/80FD 20 C3 80 JSR $80C3 [$81:80C3] A:A804 X:3911 Y:3C00 P:envMxdiZC $81/8100 B0 3C BCS $3C ; [$813E] Exit if Error Flag was set $81/8102 BD 02 00 LDA $0002,x[$7E:3913] A:0002 X:3911 Y:0002 P:envMxdizc $81/8105 C9 00 CMP #$00 A:0000 X:3911 Y:0002 P:envMxdiZc $81/8107 F0 04 BEQ $04 [$810D] A:0000 X:3911 Y:0002 P:envMxdiZC
- code is missing here
$81/810D BD 03 00 LDA $0003,x[$7E:3914] A:0000 X:3911 Y:0002 P:envMxdiZC $81/8110 C9 00 CMP #$00 A:0004 X:3911 Y:0002 P:envMxdizC $81/8112 F0 04 BEQ $04 [$8118] A:0004 X:3911 Y:0002 P:envMxdizC $81/8114 C9 04 CMP #$04 A:0004 X:3911 Y:0002 P:envMxdizC $81/8116 D0 26 BNE $26 ; [$813E] Exit if not equal $81/8118 BD 01 00 LDA $0001,x[$7E:3912] A:0004 X:3911 Y:0002 P:envMxdiZC $81/811B 1A INC A A:0001 X:3911 Y:0002 P:envMxdizC $81/811C 85 C1 STA $C1 [$00:00C1] A:0002 X:3911 Y:0002 P:envMxdizC $81/811E 0A ASL A A:0002 X:3911 Y:0002 P:envMxdizC $81/811F A8 TAY A:0004 X:3911 Y:0002 P:envMxdizc $81/8120 C2 20 REP #$20 A:0004 X:3911 Y:0004 P:envMxdizc $81/8122 B6 C2 LDX $C2,y [$00:00C6] A:0004 X:3911 Y:0004 P:envmxdizc $81/8124 86 5A STX $5A [$00:005A] A:0004 X:3919 Y:0004 P:envmxdizc $81/8126 86 5C STX $5C [$00:005C] A:0004 X:3919 Y:0004 P:envmxdizc $81/8128 E2 20 SEP #$20 A:0004 X:3919 Y:0004 P:envmxdizc $81/812A 22 8A A1 80 JSL $80A18A ; Wait for NMI $81/812E 22 92 A4 80 JSL $80A492[$80:A492] A:0080 X:3919 Y:0004 P:envMxdizc $81/8132 22 E8 95 80 JSL $8095E8[$80:95E8] A:0008 X:0060 Y:0004 P:envMxdizc $81/8136 22 8A A1 80 JSL $80A18A ; Wait for NMI $81/813A 22 72 80 81 JSL $818072[$81:8072] A:FF80 X:1744 Y:000A P:envMxdizc $81/813E 7A PLY ; Restore Y, X and A from Stack $81/813F FA PLX $81/8140 68 PLA $81/8141 60 RTS
$81/8142 ?
$81/8142 8B PHB ; Buffer Data Bank on Stack $81/8143 A9 7E LDA #$7E ; Set Data Bank to $7E $81/8145 48 PHA $81/8146 AB PLB $81/8147 DA PHX ; Buffer X on Stack $81/8148 D4 02 PEI ($02) ; Buffer $02-$05 on Stack $81/814A D4 04 PEI ($04) $81/814C 20 C3 80 JSR $80C3 [$81:80C3] A:007E X:0004 Y:0001 P:envMxdizC $81/814F 90 05 BCC $05 [$8156] A:0002 X:3911 Y:0002 P:envMxdizc
- code is missing here
$81/8156 64 0C STZ $0C [$00:000C] A:0002 X:3911 Y:0002 P:envMxdizc $81/8158 20 8E 9D JSR $9D8E [$81:9D8E] A:0002 X:3911 Y:0002 P:envMxdizc $81/815B DA PHX A:0002 X:3911 Y:0002 P:envMxdizc $81/815C BD 02 00 LDA $0002,x[$7E:3913] A:0002 X:3911 Y:0002 P:envMxdizc $81/815F C9 00 CMP #$00 A:0000 X:3911 Y:0002 P:envMxdiZc $81/8161 D0 2E BNE $2E [$8191] A:0000 X:3911 Y:0002 P:envMxdiZC $81/8163 BC 04 00 LDY $0004,x[$7E:3915] A:0000 X:3911 Y:0002 P:envMxdiZC $81/8166 D0 29 BNE $29 [$8191] A:0000 X:3911 Y:0000 P:envMxdiZC $81/8168 7B TDC A:0000 X:3911 Y:0000 P:envMxdiZC $81/8169 A5 C1 LDA $C1 [$00:00C1] A:0000 X:3911 Y:0000 P:envMxdiZC $81/816B 0A ASL A A:0003 X:3911 Y:0000 P:envMxdizC $81/816C A8 TAY A:0006 X:3911 Y:0000 P:envMxdizc $81/816D 4A LSR A A:0006 X:3911 Y:0006 P:envMxdizc $81/816E 85 00 STA $00 [$00:0000] A:0003 X:3911 Y:0006 P:envMxdizc $81/8170 C2 21 REP #$21 A:0003 X:3911 Y:0006 P:envMxdizc $81/8172 A5 5A LDA $5A [$00:005A] A:0003 X:3911 Y:0006 P:envmxdizc $81/8174 99 C2 00 STA $00C2,y[$7E:00C8] A:45D9 X:3911 Y:0006 P:envmxdizc $81/8177 85 D8 STA $D8 [$00:00D8] A:45D9 X:3911 Y:0006 P:envmxdizc $81/8179 AA TAX A:45D9 X:3911 Y:0006 P:envmxdizc $81/817A 69 C0 0C ADC #$0CC0 A:45D9 X:45D9 Y:0006 P:envmxdizc $81/817D 85 5A STA $5A [$00:005A] A:5299 X:45D9 Y:0006 P:envmxdizc $81/817F 85 5C STA $5C [$00:005C] A:5299 X:45D9 Y:0006 P:envmxdizc $81/8181 C5 5E CMP $5E [$00:005E] A:5299 X:45D9 Y:0006 P:envmxdizc $81/8183 90 06 BCC $06 [$818B] A:5299 X:45D9 Y:0006 P:eNvmxdizc
- code is missing here
$81/818B E2 20 SEP #$20 A:5299 X:45D9 Y:0006 P:eNvmxdizc $81/818D E6 C1 INC $C1 [$00:00C1] A:5299 X:45D9 Y:0006 P:eNvMxdizc $81/818F 80 0E BRA $0E [$819F] A:5299 X:45D9 Y:0006 P:envMxdizc
- code is missing here
$81/819F 20 61 8B JSR $8B61 [$81:8B61] A:5299 X:45D9 Y:0006 P:envMxdizc $81/81A2 C2 20 REP #$20 A:450F X:45D9 Y:0002 P:envMxdizc $81/81A4 8A TXA A:450F X:45D9 Y:0002 P:envmxdizc $81/81A5 FA PLX A:45D9 X:45D9 Y:0002 P:envmxdizc $81/81A6 9D 04 00 STA $0004,x[$7E:3915] A:45D9 X:3911 Y:0002 P:envmxdizc $81/81A9 E2 20 SEP #$20 A:45D9 X:3911 Y:0002 P:envmxdizc $81/81AB A9 01 LDA #$01 A:45D9 X:3911 Y:0002 P:envMxdizc $81/81AD 9D 02 00 STA $0002,x[$7E:3913] A:4501 X:3911 Y:0002 P:envMxdizc $81/81B0 BD 03 00 LDA $0003,x[$7E:3914] A:4501 X:3911 Y:0002 P:envMxdizc $81/81B3 C9 01 CMP #$01 A:4503 X:3911 Y:0002 P:envMxdizc $81/81B5 D0 05 BNE $05 [$81BC] A:4503 X:3911 Y:0002 P:envMxdizC
- code is missing here
$81/81BC FA PLX ; Restore $02-$05 from Stack $81/81BD 86 04 STX $04 $81/81BF FA PLX $81/81C0 86 02 STX $02 $81/81C2 FA PLX ; Restore X from Stack $81/81C3 AB PLB ; Restore Data Bank from Stack $81/81C4 6B RTL
$81/81C5 ?
$81/81C5 8B PHB ; Buffer Data Bank on Stack $81/81C6 A9 7E LDA #$7E ; Set Data Bank to $7E $81/81C8 48 PHA $81/81C9 AB PLB $81/81CA DA PHX ; Buffer X on Stack $81/81CB D4 02 PEI ($02) ; Buffer $02-$05 on Stack $81/81CD D4 04 PEI ($04) $81/81CF 20 C3 80 JSR $80C3 [$81:80C3] A:007E X:0002 Y:0000 P:envMxdizC $81/81D2 90 05 BCC $05 [$81D9] A:0002 X:3300 Y:FFFE P:envMxdizC $81/81D4 20 C9 80 JSR $80C9 [$81:80C9] A:0002 X:3300 Y:FFFE P:envMxdizC $81/81D7 80 F6 BRA $F6 [$81CF] A:3920 X:1744 Y:FFFE P:eNvMxdizc $81/81D9 A9 01 LDA #$01 A:0002 X:3911 Y:0002 P:envMxdizc $81/81DB 85 0C STA $0C [$00:000C] A:0001 X:3911 Y:0002 P:envMxdizc $81/81DD 20 8E 9D JSR $9D8E [$81:9D8E] A:0001 X:3911 Y:0002 P:envMxdizc $81/81E0 DA PHX A:0001 X:3911 Y:0002 P:envMxdizc $81/81E1 BD 03 00 LDA $0003,x[$7E:3914] A:0001 X:3911 Y:0002 P:envMxdizc $81/81E4 C9 00 CMP #$00 A:0000 X:3911 Y:0002 P:envMxdiZc $81/81E6 D0 2E BNE $2E [$8216] A:0000 X:3911 Y:0002 P:envMxdiZC $81/81E8 BC 06 00 LDY $0006,x[$7E:3917] A:0000 X:3911 Y:0002 P:envMxdiZC $81/81EB D0 29 BNE $29 [$8216] A:0000 X:3911 Y:0000 P:envMxdiZC $81/81ED 7B TDC A:0000 X:3911 Y:0000 P:envMxdiZC $81/81EE A5 C1 LDA $C1 [$00:00C1] A:0000 X:3911 Y:0000 P:envMxdiZC $81/81F0 0A ASL A A:0002 X:3911 Y:0000 P:envMxdizC $81/81F1 A8 TAY A:0004 X:3911 Y:0000 P:envMxdizc $81/81F2 4A LSR A A:0004 X:3911 Y:0004 P:envMxdizc $81/81F3 85 00 STA $00 [$00:0000] A:0002 X:3911 Y:0004 P:envMxdizc $81/81F5 C2 21 REP #$21 A:0002 X:3911 Y:0004 P:envMxdizc $81/81F7 A5 5A LDA $5A [$00:005A] A:0002 X:3911 Y:0004 P:envmxdizc $81/81F9 99 C2 00 STA $00C2,y[$7E:00C6] A:3919 X:3911 Y:0004 P:envmxdizc $81/81FC 85 D8 STA $D8 [$00:00D8] A:3919 X:3911 Y:0004 P:envmxdizc $81/81FE AA TAX A:3919 X:3911 Y:0004 P:envmxdizc $81/81FF 69 C0 0C ADC #$0CC0 A:3919 X:3919 Y:0004 P:envmxdizc $81/8202 85 5A STA $5A [$00:005A] A:45D9 X:3919 Y:0004 P:envmxdizc $81/8204 85 5C STA $5C [$00:005C] A:45D9 X:3919 Y:0004 P:envmxdizc $81/8206 C5 5E CMP $5E [$00:005E] A:45D9 X:3919 Y:0004 P:envmxdizc $81/8208 90 06 BCC $06 [$8210] A:45D9 X:3919 Y:0004 P:eNvmxdizc
- code is missing here
$81/8210 E2 20 SEP #$20 A:45D9 X:3919 Y:0004 P:eNvmxdizc $81/8212 E6 C1 INC $C1 [$00:00C1] A:45D9 X:3919 Y:0004 P:eNvMxdizc $81/8214 80 0E BRA $0E [$8224] A:45D9 X:3919 Y:0004 P:envMxdizc
- code is missing here
$81/8224 20 61 8B JSR $8B61 [$81:8B61] A:45D9 X:3919 Y:0004 P:envMxdizc $81/8227 C2 20 REP #$20 A:390F X:3919 Y:0002 P:envMxdizc $81/8229 8A TXA A:390F X:3919 Y:0002 P:envmxdizc $81/822A FA PLX A:3919 X:3919 Y:0002 P:envmxdizc $81/822B 9D 06 00 STA $0006,x[$7E:3917] A:3919 X:3911 Y:0002 P:envmxdizc $81/822E E2 20 SEP #$20 A:3919 X:3911 Y:0002 P:envmxdizc $81/8230 A9 01 LDA #$01 A:3919 X:3911 Y:0002 P:envMxdizc $81/8232 9D 03 00 STA $0003,x[$7E:3914] A:3901 X:3911 Y:0002 P:envMxdizc $81/8235 BD 02 00 LDA $0002,x[$7E:3913] A:3901 X:3911 Y:0002 P:envMxdizc $81/8238 C9 01 CMP #$01 A:3900 X:3911 Y:0002 P:envMxdiZc $81/823A D0 05 BNE $05 [$8241] A:3900 X:3911 Y:0002 P:eNvMxdizc
- code is missing here
$81/8241 FA PLX ; Restore $05-$02, X and Data Bank from Stack $81/8242 86 04 STX $04 $81/8244 FA PLX $81/8245 86 02 STX $02 $81/8247 FA PLX $81/8248 AB PLB $81/8249 6B RTL
$81/8292 ?
$81/8292 8B PHB ; Buffer Data Bank on Stack $81/8293 A9 7E LDA #$7E ; Set Data Bank to $7E $81/8295 48 PHA $81/8296 AB PLB $81/8297 DA PHX ; Buffer X on Stack $81/8298 D4 02 PEI ($02) ; Buffer $02-$05 on Stack $81/829A D4 04 PEI ($04) $81/829C 20 C3 80 JSR $80C3 [$81:80C3] A:087E X:0000 Y:376B P:envMxdizc $81/829F B0 30 BCS $30 [$82D1] A:0002 X:3911 Y:0002 P:envMxdizc $81/82A1 20 8E 9D JSR $9D8E [$81:9D8E] A:0002 X:3911 Y:0002 P:envMxdizc $81/82A4 BD 03 00 LDA $0003,x[$7E:3914] A:0002 X:3911 Y:0002 P:envMxdizc $81/82A7 C9 03 CMP #$03 A:0003 X:3911 Y:0002 P:envMxdizc $81/82A9 D0 26 BNE $26 [$82D1] A:0003 X:3911 Y:0002 P:envMxdiZC $81/82AB DA PHX A:0003 X:3911 Y:0002 P:envMxdiZC $81/82AC BC 06 00 LDY $0006,x[$7E:3917] A:0003 X:3911 Y:0002 P:envMxdiZC $81/82AF BB TYX A:0003 X:3911 Y:3919 P:envMxdizC $81/82B0 20 7E 8E JSR $8E7E [$81:8E7E] A:0003 X:3919 Y:3919 P:envMxdizC $81/82B3 C2 20 REP #$20 A:23EE X:3919 Y:3919 P:eNvMxdizc $81/82B5 8A TXA A:23EE X:3919 Y:3919 P:eNvmxdizc $81/82B6 FA PLX A:3919 X:3919 Y:3919 P:envmxdizc $81/82B7 9D 06 00 STA $0006,x[$7E:3917] A:3919 X:3911 Y:3919 P:envmxdizc $81/82BA E2 20 SEP #$20 A:3919 X:3911 Y:3919 P:envmxdizc $81/82BC A9 01 LDA #$01 A:3919 X:3911 Y:3919 P:envMxdizc $81/82BE 9D 03 00 STA $0003,x[$7E:3914] A:3901 X:3911 Y:3919 P:envMxdizc $81/82C1 BD 02 00 LDA $0002,x[$7E:3913] A:3901 X:3911 Y:3919 P:envMxdizc $81/82C4 C9 00 CMP #$00 A:3900 X:3911 Y:3919 P:envMxdiZc $81/82C6 F0 09 BEQ $09 [$82D1] A:3900 X:3911 Y:3919 P:envMxdiZC
- code is missing here
$81/82D1 FA PLX ; Restore $02-$05 from Stack $81/82D2 86 04 STX $04 $81/82D4 FA PLX $81/82D5 86 02 STX $02 $81/82D7 FA PLX ; Restore X from Stack $81/82D8 AB PLB ; Restore Data Bank from Stack $81/82D9 6B RTL
$81/82DA ?
$81/82DA 8B PHB ; Buffer Data Bank on Stack $81/82DB A9 7E LDA #$7E ; Set Data Bank to $7E $81/82DD 48 PHA $81/82DE AB PLB $81/82DF DA PHX ; Buffer X on Stack $81/82E0 D4 02 PEI ($02) ; Buffer $02-$05 on Stack $81/82E2 D4 04 PEI ($04) $81/82E4 20 C3 80 JSR $80C3 [$81:80C3] A:007E X:3300 Y:3765 P:envMxdizc $81/82E7 90 03 BCC $03 [$82EC] A:0002 X:3911 Y:0002 P:envMxdizc $81/82EC BD 02 00 LDA $0002,x[$7E:3913] A:0002 X:3911 Y:0002 P:envMxdizc $81/82EF C9 00 CMP #$00 A:0003 X:3911 Y:0002 P:envMxdizc $81/82F1 F0 7D BEQ $7D [$8370] A:0003 X:3911 Y:0002 P:envMxdizC $81/82F3 C9 04 CMP #$04 A:0003 X:3911 Y:0002 P:envMxdizC $81/82F5 F0 79 BEQ $79 [$8370] A:0003 X:3911 Y:0002 P:eNvMxdizc $81/82F7 DA PHX A:0003 X:3911 Y:0002 P:eNvMxdizc $81/82F8 20 8E 9D JSR $9D8E [$81:9D8E] A:0003 X:3911 Y:0002 P:eNvMxdizc $81/82FB BC 04 00 LDY $0004,x[$7E:3915] A:0003 X:3911 Y:0002 P:envMxdizc $81/82FE 84 D8 STY $D8 [$00:00D8] A:0003 X:3911 Y:45D9 P:envMxdizc $81/8300 BB TYX A:0003 X:3911 Y:45D9 P:envMxdizc $81/8301 20 3C 9D JSR $9D3C [$81:9D3C] A:0003 X:45D9 Y:45D9 P:envMxdizc $81/8304 A6 D8 LDX $D8 [$00:00D8] A:0003 X:45D9 Y:45D9 P:envMxdizC $81/8306 BD 3F 02 LDA $023F,x[$7E:4818] A:0003 X:45D9 Y:45D9 P:envMxdizC $81/8309 F0 06 BEQ $06 [$8311] A:0000 X:45D9 Y:45D9 P:envMxdiZC $81/830B C9 FF CMP #$FF A:0001 X:45D9 Y:45D9 P:envMxdizC $81/830D F0 19 BEQ $19 [$8328] A:0001 X:45D9 Y:45D9 P:envMxdizc $81/830F 80 09 BRA $09 [$831A] A:0001 X:45D9 Y:45D9 P:envMxdizc $81/8311 20 28 98 JSR $9828 [$81:9828] A:0000 X:45D9 Y:45D9 P:envMxdiZC $81/8314 20 D6 9C JSR $9CD6 [$81:9CD6] A:0284 X:45D9 Y:01A0 P:envMxdizc $81/8317 20 3D A0 JSR $A03D [$81:A03D] A:E07F X:45D9 Y:5400 P:envMxdizc $81/831A 20 0D 93 JSR $930D [$81:930D] A:0001 X:45D9 Y:B12C P:enVMxdizC $81/831D FA PLX ; ? $81/831E FA PLX ; Restore $05-$02 from Stack $81/831F 86 04 STX $04 $81/8321 FA PLX $81/8322 86 02 STX $02 $81/8324 FA PLX ; Restore X from Stack $81/8325 AB PLB ; Restore Data Bank from Stack $81/8326 18 CLC A:A87E X:3300 Y:3C00 P:envMxdizc $81/8327 6B RTL A:A87E X:3300 Y:3C00 P:envMxdizc $81/8328 20 13 96 JSR $9613 [$81:9613] A:00FF X:45D9 Y:45D9 P:envMxdiZC $81/832B BD 54 00 LDA $0054,x[$7E:462D] A:D133 X:45D9 Y:3919 P:envMxdizc $81/832E FA PLX A:D103 X:45D9 Y:3919 P:envMxdizc $81/832F 1A INC A A:D103 X:3911 Y:3919 P:envMxdizc $81/8330 C5 C1 CMP $C1 [$00:00C1] A:D104 X:3911 Y:3919 P:envMxdizc $81/8332 D0 14 BNE $14 [$8348] A:D104 X:3911 Y:3919 P:envMxdiZC $81/8334 C6 C1 DEC $C1 [$00:00C1] A:D104 X:3911 Y:3919 P:envMxdiZC $81/8336 BC 04 00 LDY $0004,x[$7E:3915] A:D104 X:3911 Y:3919 P:envMxdizC $81/8339 84 5A STY $5A [$00:005A] A:D104 X:3911 Y:45D9 P:envMxdizC $81/833B 9E 04 00 STZ $0004,x[$7E:3915] A:D104 X:3911 Y:45D9 P:envMxdizC $81/833E 9E 05 00 STZ $0005,x[$7E:3916] A:D104 X:3911 Y:45D9 P:envMxdizC $81/8341 A9 00 LDA #$00 A:D104 X:3911 Y:45D9 P:envMxdizC $81/8343 9D 02 00 STA $0002,x[$7E:3913] A:D100 X:3911 Y:45D9 P:envMxdiZC $81/8346 80 05 BRA $05 [$834D] A:D100 X:3911 Y:45D9 P:envMxdiZC
- code is missing here
$81/834D DA PHX A:D100 X:3911 Y:45D9 P:envMxdiZC $81/834E 20 D6 9C JSR $9CD6 [$81:9CD6] A:D100 X:3911 Y:45D9 P:envMxdiZC $81/8351 20 06 9D JSR $9D06 [$81:9D06] A:E07F X:45D9 Y:5400 P:envMxdizc $81/8354 FA PLX A:A87E X:45D9 Y:3C00 P:envMxdizc $81/8355 BD 03 00 LDA $0003,x[$7E:3914] A:A87E X:3911 Y:3C00 P:envMxdizc $81/8358 C9 00 CMP #$00 A:A803 X:3911 Y:3C00 P:envMxdizc $81/835A F0 11 BEQ $11 [$836D] A:A803 X:3911 Y:3C00 P:envMxdizC $81/835C C9 04 CMP #$04 A:A803 X:3911 Y:3C00 P:envMxdizC $81/835E F0 0D BEQ $0D [$836D] A:A803 X:3911 Y:3C00 P:eNvMxdizc $81/8360 A9 01 LDA #$01 A:A803 X:3911 Y:3C00 P:eNvMxdizc $81/8362 20 A5 80 JSR $80A5 [$81:80A5] A:A801 X:3911 Y:3C00 P:envMxdizc $81/8365 9E 52 00 STZ $0052,x[$7E:396B] A:0001 X:3919 Y:3C00 P:envMxdizc $81/8368 9E 53 00 STZ $0053,x[$7E:396C] A:0001 X:3919 Y:3C00 P:envMxdizc $81/836B 80 03 BRA $03 [$8370] A:0001 X:3919 Y:3C00 P:envMxdizc $81/836D 20 FA 80 JSR $80FA [$81:80FA] A:A804 X:3911 Y:3C00 P:envMxdiZC $81/8370 FA PLX ; Restore $02-$05 from Stack $81/8371 86 04 STX $04 $81/8373 FA PLX $81/8374 86 02 STX $02 $81/8376 FA PLX ; Restore X from Stack $81/8377 AB PLB ; Restore Data Bank from Stack $81/8378 38 SEC A:0001 X:1758 Y:3C00 P:envMxdizc $81/8379 6B RTL
$81/837A ?
$81/837A 8B PHB ; Buffer Data Bank on Stack $81/837B A9 7E LDA #$7E ; Set Data Bank to $7E $81/837D 48 PHA $81/837E AB PLB $81/837F DA PHX ; Buffer X on Stack $81/8380 D4 02 PEI ($02) ; Buffer $02-$05 on Stack $81/8382 D4 04 PEI ($04) $81/8384 20 C3 80 JSR $80C3 [$81:80C3] A:007E X:0022 Y:3778 P:envMxdizc $81/8387 90 03 BCC $03 [$838C] A:0002 X:3911 Y:0002 P:envMxdizc
- code is missing here
$81/838C BD 03 00 LDA $0003,x[$7E:3914] A:0002 X:3911 Y:0002 P:envMxdizc $81/838F C9 00 CMP #$00 A:0003 X:3911 Y:0002 P:envMxdizc $81/8391 F0 7C BEQ $7C [$840F] A:0003 X:3911 Y:0002 P:envMxdizC $81/8393 C9 04 CMP #$04 A:0003 X:3911 Y:0002 P:envMxdizC $81/8395 F0 78 BEQ $78 [$840F] A:0003 X:3911 Y:0002 P:eNvMxdizc $81/8397 DA PHX A:0003 X:3911 Y:0002 P:eNvMxdizc $81/8398 20 8E 9D JSR $9D8E [$81:9D8E] A:0003 X:3911 Y:0002 P:eNvMxdizc $81/839B BC 06 00 LDY $0006,x[$7E:3917] A:0003 X:3911 Y:0002 P:envMxdizc $81/839E 84 D8 STY $D8 [$00:00D8] A:0003 X:3911 Y:3919 P:envMxdizc $81/83A0 BB TYX A:0003 X:3911 Y:3919 P:envMxdizc $81/83A1 20 3C 9D JSR $9D3C [$81:9D3C] A:0003 X:3919 Y:3919 P:envMxdizc $81/83A4 A6 D8 LDX $D8 [$00:00D8] A:0013 X:3919 Y:3919 P:envMxdizC $81/83A6 BD 3F 02 LDA $023F,x[$7E:3B58] A:0013 X:3919 Y:3919 P:envMxdizC $81/83A9 F0 06 BEQ $06 [$83B1] A:0000 X:3919 Y:3919 P:envMxdiZC $81/83AB C9 FF CMP #$FF A:0001 X:3919 Y:3919 P:envMxdizC $81/83AD F0 19 BEQ $19 [$83C8] A:0001 X:3919 Y:3919 P:envMxdizc $81/83AF 80 09 BRA $09 [$83BA] A:0001 X:3919 Y:3919 P:envMxdizc $81/83B1 20 28 98 JSR $9828 [$81:9828] A:0000 X:3919 Y:3919 P:envMxdiZC $81/83B4 20 D6 9C JSR $9CD6 [$81:9CD6] A:06C8 X:3919 Y:01A0 P:envMxdizc $81/83B7 20 3D A0 JSR $A03D [$81:A03D] A:E47F X:3919 Y:5400 P:envMxdizc $81/83BA 20 0D 93 JSR $930D [$81:930D] A:0001 X:3919 Y:B12C P:enVMxdizC $81/83BD FA PLX A:AC7E X:3919 Y:3C00 P:envMxdizc $81/83BE FA PLX ; Restore $02-$05 from Stack $81/83BF 86 04 STX $04 $81/83C1 FA PLX $81/83C2 86 02 STX $02 $81/83C4 FA PLX ; Restore X from Stack $81/83C5 AB PLB ; Restore Data Bank from Stack $81/83C6 18 CLC A:AC7E X:0022 Y:3C00 P:envMxdizc $81/83C7 6B RTL A:AC7E X:0022 Y:3C00 P:envMxdizc $81/83C8 20 13 96 JSR $9613 [$81:9613] A:00FF X:3919 Y:3919 P:envMxdiZC $81/83CB BD 54 00 LDA $0054,x[$7E:396D] A:0000 X:3919 Y:002D P:envMxdizC $81/83CE FA PLX A:0002 X:3919 Y:002D P:envMxdizC $81/83CF 1A INC A A:0002 X:3911 Y:002D P:envMxdizC $81/83D0 C5 C1 CMP $C1 [$00:00C1] A:0003 X:3911 Y:002D P:envMxdizC $81/83D2 D0 14 BNE $14 [$83E8] A:0003 X:3911 Y:002D P:eNvMxdizc $81/83D4 C6 C1 DEC $C1 [$00:00C1] A:CC03 X:3911 Y:0000 P:envMxdiZC $81/83D6 BC 06 00 LDY $0006,x[$7E:3917] A:CC03 X:3911 Y:0000 P:envMxdizC $81/83D9 84 5A STY $5A [$00:005A] A:CC03 X:3911 Y:3919 P:envMxdizC $81/83DB 9E 06 00 STZ $0006,x[$7E:3917] A:CC03 X:3911 Y:3919 P:envMxdizC $81/83DE 9E 07 00 STZ $0007,x[$7E:3918] A:CC03 X:3911 Y:3919 P:envMxdizC $81/83E1 A9 00 LDA #$00 A:CC03 X:3911 Y:3919 P:envMxdizC $81/83E3 9D 03 00 STA $0003,x[$7E:3914] A:CC00 X:3911 Y:3919 P:envMxdiZC $81/83E6 80 05 BRA $05 [$83ED] A:CC00 X:3911 Y:3919 P:envMxdiZC $81/83E8 A9 04 LDA #$04 A:0003 X:3911 Y:002D P:eNvMxdizc $81/83EA 9D 03 00 STA $0003,x[$7E:3914] A:0004 X:3911 Y:002D P:envMxdizc $81/83ED DA PHX A:0004 X:3911 Y:002D P:envMxdizc $81/83EE 20 D6 9C JSR $9CD6 [$81:9CD6] A:0004 X:3911 Y:002D P:envMxdizc $81/83F1 20 06 9D JSR $9D06 [$81:9D06] A:E47F X:3919 Y:5400 P:envMxdizc $81/83F4 FA PLX A:AC7E X:3919 Y:3C00 P:envMxdizc $81/83F5 BD 02 00 LDA $0002,x[$7E:3913] A:AC7E X:3911 Y:3C00 P:envMxdizc $81/83F8 C9 00 CMP #$00 A:AC03 X:3911 Y:3C00 P:envMxdizc $81/83FA F0 10 BEQ $10 [$840C] A:AC03 X:3911 Y:3C00 P:envMxdizC $81/83FC C9 04 CMP #$04 A:AC03 X:3911 Y:3C00 P:envMxdizC $81/83FE F0 0C BEQ $0C [$840C] A:AC03 X:3911 Y:3C00 P:eNvMxdizc $81/8400 7B TDC A:AC03 X:3911 Y:3C00 P:eNvMxdizc $81/8401 20 A5 80 JSR $80A5 [$81:80A5] A:0000 X:3911 Y:3C00 P:envMxdiZc $81/8404 9E 52 00 STZ $0052,x[$7E:462B] A:0000 X:45D9 Y:3C00 P:envMxdiZc $81/8407 9E 53 00 STZ $0053,x[$7E:462C] A:0000 X:45D9 Y:3C00 P:envMxdiZc $81/840A 80 03 BRA $03 [$840F] A:0000 X:45D9 Y:3C00 P:envMxdiZc $81/840C 20 FA 80 JSR $80FA [$81:80FA] A:AC00 X:3911 Y:3C00 P:envMxdiZC $81/840F FA PLX A:0000 X:45D9 Y:3C00 P:envMxdiZc $81/8410 86 04 STX $04 [$00:0004] A:0000 X:0200 Y:3C00 P:envMxdizc $81/8412 FA PLX A:0000 X:0200 Y:3C00 P:envMxdizc $81/8413 86 02 STX $02 [$00:0002] A:0000 X:170A Y:3C00 P:envMxdizc $81/8415 FA PLX A:0000 X:170A Y:3C00 P:envMxdizc $81/8416 AB PLB A:0000 X:1744 Y:3C00 P:envMxdizc $81/8417 38 SEC A:0000 X:1744 Y:3C00 P:envMxdizc $81/8418 6B RTL A:0000 X:1744 Y:3C00 P:envMxdizC
$81/849E ?
$81/849E 8B PHB ; Buffer Data Bank on Stack $81/849F A9 7E LDA #$7E ; Set Data Bank to $7E $81/84A1 48 PHA $81/84A2 AB PLB $81/84A3 DA PHX ; Buffer X on Stack $81/84A4 D4 02 PEI ($02) ; Buffer $02-$05 on Stack $81/84A6 D4 04 PEI ($04) $81/84A8 7B TDC A:007E X:3300 Y:0100 P:envMxdizC $81/84A9 A5 C1 LDA $C1 [$00:00C1] A:0000 X:3300 Y:0100 P:envMxdiZC $81/84AB 3A DEC A A:0003 X:3300 Y:0100 P:envMxdizC $81/84AC 0A ASL A A:0002 X:3300 Y:0100 P:envMxdizC $81/84AD A8 TAY A:0004 X:3300 Y:0100 P:envMxdizc $81/84AE B6 C2 LDX $C2,y [$00:00C6] A:0004 X:3300 Y:0004 P:envMxdizc $81/84B0 BD 00 00 LDA $0000,x[$7E:3919] A:0004 X:3919 Y:0004 P:envMxdizc $81/84B3 C9 02 CMP #$02 A:0001 X:3919 Y:0004 P:envMxdizc $81/84B5 F0 0E BEQ $0E [$84C5] A:0001 X:3919 Y:0004 P:eNvMxdizc $81/84B7 88 DEY A:0001 X:3919 Y:0004 P:eNvMxdizc $81/84B8 88 DEY A:0001 X:3919 Y:0003 P:envMxdizc $81/84B9 10 F3 BPL $F3 [$84AE] A:0001 X:3919 Y:0002 P:envMxdizc
- code is missing here
$81/84C5 DA PHX A:0002 X:3911 Y:0002 P:envMxdiZC $81/84C6 20 8E 9D JSR $9D8E [$81:9D8E] A:0002 X:3911 Y:0002 P:envMxdiZC $81/84C9 BD 02 00 LDA $0002,x[$7E:3913] A:0002 X:3911 Y:0002 P:envMxdizC $81/84CC C9 01 CMP #$01 A:0000 X:3911 Y:0002 P:envMxdiZC $81/84CE D0 54 BNE $54 [$8524] A:0000 X:3911 Y:0002 P:eNvMxdizc $81/84D0 DA PHX A:0001 X:3911 Y:0002 P:envMxdiZC $81/84D1 9B TXY A:0001 X:3911 Y:0002 P:envMxdiZC $81/84D2 BE 04 00 LDX $0004,y[$7E:3915] A:0001 X:3911 Y:3911 P:envMxdizC $81/84D5 20 C4 A7 JSR $A7C4 [$81:A7C4] A:0001 X:45D9 Y:3911 P:envMxdizC $81/84D8 FA PLX A:A801 X:45D9 Y:3C00 P:envMxdizc $81/84D9 BC 02 00 LDY $0002,x[$7E:3913] A:A801 X:3911 Y:3C00 P:envMxdizc $81/84DC 84 00 STY $00 [$00:0000] A:A801 X:3911 Y:0301 P:envMxdizc $81/84DE 20 A5 85 JSR $85A5 [$81:85A5] A:A801 X:3911 Y:0301 P:envMxdizc $81/84E1 A5 00 LDA $00 [$00:0000] A:A801 X:3911 Y:0301 P:envMxdiZC $81/84E3 9D 02 00 STA $0002,x[$7E:3913] A:A801 X:3911 Y:0301 P:envMxdizC $81/84E6 C9 03 CMP #$03 A:A801 X:3911 Y:0301 P:envMxdizC $81/84E8 F0 07 BEQ $07 [$84F1] A:A801 X:3911 Y:0301 P:eNvMxdizc $81/84EA C9 02 CMP #$02 A:A801 X:3911 Y:0301 P:eNvMxdizc $81/84EC F0 03 BEQ $03 [$84F1] A:A801 X:3911 Y:0301 P:eNvMxdizc $81/84EE 4C 89 85 JMP $8589 [$81:8589] A:A801 X:3911 Y:0301 P:eNvMxdizc $81/84F1 A5 01 LDA $01 [$00:0001] A:0003 X:3911 Y:0301 P:envMxdiZC $81/84F3 C9 01 CMP #$01 A:0003 X:3911 Y:0301 P:envMxdizC $81/84F5 D0 1A BNE $1A [$8511] A:0003 X:3911 Y:0301 P:envMxdizC
- code is missing here
$81/8511 9D 03 00 STA $0003,x[$7E:3914] A:0003 X:3911 Y:0301 P:envMxdizC $81/8514 C9 01 CMP #$01 A:0003 X:3911 Y:0301 P:envMxdizC $81/8516 D0 6B BNE $6B [$8583] A:0003 X:3911 Y:0301 P:envMxdizC
- code is missing here
$81/8524 BD 03 00 LDA $0003,x[$7E:3914] A:0000 X:3911 Y:0002 P:eNvMxdizc $81/8527 C9 01 CMP #$01 A:0001 X:3911 Y:0002 P:envMxdizc $81/8529 D0 5E BNE $5E [$8589] A:0001 X:3911 Y:0002 P:envMxdiZC $81/852B DA PHX A:0001 X:3911 Y:0002 P:envMxdiZC $81/852C 9B TXY A:0001 X:3911 Y:0002 P:envMxdiZC $81/852D BE 06 00 LDX $0006,y[$7E:3917] A:0001 X:3911 Y:3911 P:envMxdizC $81/8530 20 C4 A7 JSR $A7C4 [$81:A7C4] A:0001 X:3919 Y:3911 P:envMxdizC $81/8533 FA PLX A:AC01 X:3919 Y:3C00 P:envMxdizc $81/8534 48 PHA A:AC01 X:3911 Y:3C00 P:envMxdizc $81/8535 C2 20 REP #$20 A:AC01 X:3911 Y:3C00 P:envMxdizc $81/8537 BD 02 00 LDA $0002,x[$7E:3913] A:AC01 X:3911 Y:3C00 P:envmxdizc $81/853A EB XBA A:0100 X:3911 Y:3C00 P:envmxdizc $81/853B 85 00 STA $00 [$00:0000] A:0001 X:3911 Y:3C00 P:envmxdizc $81/853D E2 20 SEP #$20 A:0001 X:3911 Y:3C00 P:envmxdizc $81/853F 68 PLA A:0001 X:3911 Y:3C00 P:envMxdizc $81/8540 20 A5 85 JSR $85A5 [$81:85A5] A:0001 X:3911 Y:3C00 P:envMxdizc $81/8543 A5 00 LDA $00 [$00:0000] A:0001 X:3911 Y:3C00 P:envMxdiZC $81/8545 9D 03 00 STA $0003,x[$7E:3914] A:0001 X:3911 Y:3C00 P:envMxdizC $81/8548 C9 03 CMP #$03 A:0001 X:3911 Y:3C00 P:envMxdizC $81/854A F0 06 BEQ $06 [$8552] A:0001 X:3911 Y:3C00 P:eNvMxdizc $81/854C C9 02 CMP #$02 A:0001 X:3911 Y:3C00 P:eNvMxdizc $81/854E F0 02 BEQ $02 [$8552] A:0001 X:3911 Y:3C00 P:eNvMxdizc $81/8550 80 31 BRA $31 [$8583] A:0001 X:3911 Y:3C00 P:eNvMxdizc $81/8552 A5 01 LDA $01 [$00:0001] A:0003 X:3911 Y:41DB P:envMxdiZC $81/8554 C9 01 CMP #$01 A:0000 X:3911 Y:41DB P:envMxdiZC $81/8556 D0 1A BNE $1A [$8572] A:0000 X:3911 Y:41DB P:eNvMxdizc $81/8572 9D 02 00 STA $0002,x[$7E:3913] A:0000 X:3911 Y:41DB P:eNvMxdizc $81/8575 C9 01 CMP #$01 A:0000 X:3911 Y:41DB P:eNvMxdizc $81/8577 D0 0A BNE $0A [$8583] A:0000 X:3911 Y:41DB P:eNvMxdizc
- code is missing here
$81/8583 20 D6 9C JSR $9CD6 [$81:9CD6] A:0001 X:3911 Y:3C00 P:eNvMxdizc $81/8586 20 06 9D JSR $9D06 [$81:9D06] A:0001 X:3919 Y:3C00 P:envMxdizc $81/8589 FA PLX A:0001 X:3919 Y:3C00 P:envMxdizc $81/858A BD 02 00 LDA $0002,x[$7E:3913] A:0001 X:3911 Y:3C00 P:envMxdizc $81/858D C9 01 CMP #$01 A:0000 X:3911 Y:3C00 P:envMxdiZc $81/858F F0 07 BEQ $07 [$8598] A:0000 X:3911 Y:3C00 P:eNvMxdizc $81/8591 BD 03 00 LDA $0003,x[$7E:3914] A:0000 X:3911 Y:3C00 P:eNvMxdizc $81/8594 C9 01 CMP #$01 A:0001 X:3911 Y:3C00 P:envMxdizc $81/8596 D0 03 BNE $03 [$859B] A:0001 X:3911 Y:3C00 P:envMxdiZC $81/8598 18 CLC A:0001 X:3911 Y:3C00 P:envMxdiZC $81/8599 80 01 BRA $01 [$859C] A:0001 X:3911 Y:3C00 P:envMxdiZc $81/859B 38 SEC A:0003 X:3911 Y:41DB P:envMxdizC $81/859C FA PLX ; Restore $05-$02 from Stack $81/859D 86 04 STX $04 $81/859F FA PLX $81/85A0 86 02 STX $02 $81/85A2 FA PLX ; Restore X and Data Bank from Stack $81/85A3 AB PLB $81/85A4 6B RTL
$81/85A5 ?
$81/85A5 C9 00 CMP #$00 A:0001 X:3911 Y:3C00 P:envMxdizc $81/85A7 D0 1A BNE $1A [$85C3] A:0001 X:3911 Y:3C00 P:envMxdizC $81/85A9 A9 03 LDA #$03 A:0000 X:3911 Y:41DB P:envMxdiZC $81/85AB 85 00 STA $00 [$00:0000] A:0003 X:3911 Y:41DB P:envMxdizC $81/85AD A5 01 LDA $01 [$00:0001] A:0003 X:3911 Y:41DB P:envMxdizC $81/85AF C9 03 CMP #$03 A:0000 X:3911 Y:41DB P:envMxdiZC $81/85B1 F0 36 BEQ $36 [$85E9] A:0000 X:3911 Y:41DB P:eNvMxdizc $81/85B3 C9 01 CMP #$01 A:0000 X:3911 Y:41DB P:eNvMxdizc $81/85B5 F0 32 BEQ $32 [$85E9] A:0000 X:3911 Y:41DB P:eNvMxdizc $81/85B7 C9 02 CMP #$02 A:0000 X:3911 Y:41DB P:eNvMxdizc $81/85B9 F0 02 BEQ $02 [$85BD] A:0000 X:3911 Y:41DB P:eNvMxdizc $81/85BB 80 2C BRA $2C [$85E9] A:0000 X:3911 Y:41DB P:eNvMxdizc
- code is missing here
$81/85C3 C9 01 CMP #$01 A:0001 X:3911 Y:3C00 P:envMxdizC $81/85C5 D0 02 BNE $02 [$85C9] A:0001 X:3911 Y:3C00 P:envMxdiZC $81/85C7 80 20 BRA $20 [$85E9] A:0001 X:3911 Y:3C00 P:envMxdiZC
- code is missing here
$81/85E9 60 RTS A:0001 X:3911 Y:3C00 P:envMxdiZC
$81/8AC8 ?
$81/8AC8 7B TDC A:A110 X:00FF Y:00FF P:envMxdiZC $81/8AC9 AA TAX A:0000 X:00FF Y:00FF P:envMxdiZC $81/8ACA 86 B2 STX $B2 [$00:00B2] A:0000 X:0000 Y:00FF P:envMxdiZC $81/8ACC 64 C0 STZ $C0 [$00:00C0] A:0000 X:0000 Y:00FF P:envMxdiZC $81/8ACE A2 63 00 LDX #$0063 A:0000 X:0000 Y:00FF P:envMxdiZC $81/8AD1 86 B5 STX $B5 [$00:00B5] A:0000 X:0063 Y:00FF P:envMxdizC $81/8AD3 64 B7 STZ $B7 [$00:00B7] A:0000 X:0063 Y:00FF P:envMxdizC $81/8AD5 A9 01 LDA #$01 A:0000 X:0063 Y:00FF P:envMxdizC $81/8AD7 85 B4 STA $B4 [$00:00B4] A:0001 X:0063 Y:00FF P:envMxdizC $81/8AD9 22 53 8B 81 JSL $818B53[$81:8B53] A:0001 X:0063 Y:00FF P:envMxdizC $81/8ADD 64 C1 STZ $C1 [$00:00C1] A:0000 X:0001 Y:00FF P:envMxdiZC $81/8ADF A9 B8 LDA #$B8 A:0000 X:0001 Y:00FF P:envMxdiZC $81/8AE1 14 A4 TRB $A4 [$00:00A4] A:00B8 X:0001 Y:00FF P:eNvMxdizC $81/8AE3 6B RTL A:00B8 X:0001 Y:00FF P:eNvMxdiZC
$81/8B53 ?
$81/8B53 7B TDC A:0001 X:0063 Y:00FF P:envMxdizC $81/8B54 A5 50 LDA $50 [$00:0050] A:0000 X:0063 Y:00FF P:envMxdiZC $81/8B56 AA TAX A:0001 X:0063 Y:00FF P:envMxdizC $81/8B57 BF 5E 8B 81 LDA $818B5E,x[$81:8B5F] A:0001 X:0001 Y:00FF P:envMxdizC $81/8B5B 85 B1 STA $B1 [$00:00B1] A:0000 X:0001 Y:00FF P:envMxdiZC $81/8B5D 6B RTL A:0000 X:0001 Y:00FF P:envMxdiZC
$81/8B5E 80 $81/8B5F 00 $81/8B60 02
$81/8B61 ?
$81/8B61 8B PHB ; Buffer Data Bank on Stack $81/8B62 A9 7E LDA #$7E ; Set Data Bank to $7E $81/8B64 48 PHA $81/8B65 AB PLB $81/8B66 64 01 STZ $01 [$00:0001] A:527E X:45D9 Y:0006 P:envMxdizc $81/8B68 20 C3 8B JSR $8BC3 [$81:8BC3] A:527E X:45D9 Y:0006 P:envMxdizc $81/8B6B AB PLB ; Restore Data Bank from Stack $81/8B6C 18 CLC A:450F X:45D9 Y:0002 P:envMxdizc $81/8B6D 60 RTS A:450F X:45D9 Y:0002 P:envMxdizc
$81/8BC3 ?
$81/8BC3 A6 D8 LDX $D8 [$00:00D8] A:527E X:45D9 Y:0006 P:envMxdizc $81/8BC5 A9 01 LDA #$01 A:527E X:45D9 Y:0006 P:envMxdizc $81/8BC7 9D 00 00 STA $0000,x[$7E:45D9] A:5201 X:45D9 Y:0006 P:envMxdizc $81/8BCA 7B TDC A:5201 X:45D9 Y:0006 P:envMxdizc $81/8BCB A5 01 LDA $01 [$00:0001] A:0000 X:45D9 Y:0006 P:envMxdiZc $81/8BCD C2 21 REP #$21 A:0000 X:45D9 Y:0006 P:envMxdiZc $81/8BCF 9D 4F 00 STA $004F,x[$7E:4628] A:0000 X:45D9 Y:0006 P:envmxdiZc $81/8BD2 86 D8 STX $D8 [$00:00D8] A:0000 X:45D9 Y:0006 P:envmxdiZc $81/8BD4 A9 FF 00 LDA #$00FF A:0000 X:45D9 Y:0006 P:envmxdiZc $81/8BD7 9D 4D 00 STA $004D,x[$7E:4626] A:00FF X:45D9 Y:0006 P:envmxdizc $81/8BDA A5 B2 LDA $B2 [$00:00B2] A:00FF X:45D9 Y:0006 P:envmxdizc $81/8BDC 9D 15 02 STA $0215,x[$7E:47EE] A:0879 X:45D9 Y:0006 P:envmxdizc $81/8BDF E2 20 SEP #$20 A:0879 X:45D9 Y:0006 P:envmxdizc $81/8BE1 A5 00 LDA $00 [$00:0000] A:0879 X:45D9 Y:0006 P:envMxdizc $81/8BE3 9D 54 00 STA $0054,x[$7E:462D] A:0803 X:45D9 Y:0006 P:envMxdizc $81/8BE6 7B TDC A:0803 X:45D9 Y:0006 P:envMxdizc $81/8BE7 BD 4F 00 LDA $004F,x[$7E:4628] A:0000 X:45D9 Y:0006 P:envMxdiZc $81/8BEA 0A ASL A A:0000 X:45D9 Y:0006 P:envMxdiZc $81/8BEB AA TAX A:0000 X:45D9 Y:0006 P:envMxdiZc $81/8BEC 7C EF 8B JMP ($8BEF,x)[$81:8C0B] A:0000 X:0000 Y:0006 P:envMxdiZc
$81/8BEF 0B 8C --- Entry #$00 - $8C0B $81/8BF1 F6 8C --- Entry #$01 - $8CF6 $81/8BF3 56 8C --- Entry #$02 - $8C56 $81/8BF5 5A 8C --- Entry #$03 - $8C5A $81/8BF7 56 8C --- Entry #$04 - $8C56 $81/8BF9 07 8C --- Entry #$05 - $8C07 $81/8BFB F6 8C --- Entry #$06 - $8CF6 $81/8BFD 91 8D --- Entry #$07 - $8D91 $81/8BFF 27 8E --- Entry #$08 - $8E27 $81/8C01 27 8E --- Entry #$09 - $8E27 $81/8C03 5C 8C --- Entry #$0A - $8C5C $81/8C05 56 8C --- Entry #$0B - $8C56
$81/8C0B ?
$81/8C0B 7B TDC A:0000 X:0000 Y:0006 P:envMxdiZc $81/8C0C A5 C1 LDA $C1 [$00:00C1] A:0000 X:0000 Y:0006 P:envMxdiZc $81/8C0E 3A DEC A A:0004 X:0000 Y:0006 P:envMxdizc $81/8C0F 0A ASL A A:0003 X:0000 Y:0006 P:envMxdizc $81/8C10 A8 TAY A:0006 X:0000 Y:0006 P:envMxdizc $81/8C11 B6 C2 LDX $C2,y [$00:00C8] A:0006 X:0000 Y:0006 P:envMxdizc $81/8C13 E4 D8 CPX $D8 [$00:00D8] A:0006 X:45D9 Y:0006 P:envMxdizc $81/8C15 F0 2B BEQ $2B [$8C42] A:0006 X:45D9 Y:0006 P:envMxdiZC $81/8C17 BD 00 00 LDA $0000,x[$7E:3919] A:0006 X:3919 Y:0004 P:eNvMxdizc $81/8C1A C9 01 CMP #$01 A:0001 X:3919 Y:0004 P:envMxdizc $81/8C1C D0 24 BNE $24 [$8C42] A:0001 X:3919 Y:0004 P:envMxdiZC $81/8C1E BD 5D 00 LDA $005D,x[$7E:3976] A:0001 X:3919 Y:0004 P:envMxdiZC $81/8C21 C9 FF CMP #$FF A:0033 X:3919 Y:0004 P:envMxdizC $81/8C23 F0 1D BEQ $1D [$8C42] A:0033 X:3919 Y:0004 P:envMxdizc $81/8C25 C9 FE CMP #$FE A:0033 X:3919 Y:0004 P:envMxdizc $81/8C27 F0 19 BEQ $19 [$8C42] A:0033 X:3919 Y:0004 P:envMxdizc $81/8C29 BD 51 00 LDA $0051,x[$7E:396A] A:0033 X:3919 Y:0004 P:envMxdizc $81/8C2C 49 01 EOR #$01 A:0001 X:3919 Y:0004 P:envMxdizc $81/8C2E 9B TXY A:0000 X:3919 Y:0004 P:envMxdiZc $81/8C2F A6 D8 LDX $D8 [$00:00D8] A:0000 X:3919 Y:3919 P:envMxdizc $81/8C31 9D 51 00 STA $0051,x[$7E:462A] A:0000 X:45D9 Y:3919 P:envMxdizc $81/8C34 C2 20 REP #$20 A:0000 X:45D9 Y:3919 P:envMxdizc $81/8C36 98 TYA A:0000 X:45D9 Y:3919 P:envmxdizc $81/8C37 9D 52 00 STA $0052,x[$7E:462B] A:3919 X:45D9 Y:3919 P:envmxdizc $81/8C3A 8A TXA A:3919 X:45D9 Y:3919 P:envmxdizc $81/8C3B 99 52 00 STA $0052,y[$7E:396B] A:45D9 X:45D9 Y:3919 P:envmxdizc $81/8C3E E2 20 SEP #$20 A:45D9 X:45D9 Y:3919 P:envmxdizc $81/8C40 80 1C BRA $1C [$8C5E] A:45D9 X:45D9 Y:3919 P:envMxdizc $81/8C42 88 DEY A:0006 X:45D9 Y:0006 P:envMxdiZC $81/8C43 88 DEY A:0006 X:45D9 Y:0005 P:envMxdizC $81/8C44 10 CB BPL $CB [$8C11] A:0006 X:45D9 Y:0004 P:envMxdizC $81/8C46 A6 D8 LDX $D8 [$00:00D8] A:0003 X:3300 Y:FFFE P:eNvMxdizC $81/8C48 7B TDC A:0003 X:3919 Y:FFFE P:envMxdizC $81/8C49 9D 52 00 STA $0052,x[$7E:396B] A:0000 X:3919 Y:FFFE P:envMxdiZC $81/8C4C 9D 53 00 STA $0053,x[$7E:396C] A:0000 X:3919 Y:FFFE P:envMxdiZC $81/8C4F A5 0C LDA $0C [$00:000C] A:0000 X:3919 Y:FFFE P:envMxdiZC $81/8C51 9D 51 00 STA $0051,x[$7E:396A] A:0001 X:3919 Y:FFFE P:envMxdizC $81/8C54 80 08 BRA $08 [$8C5E] A:0001 X:3919 Y:FFFE P:envMxdizC
- code is missing here
$81/8C5E 64 0B STZ $0B [$00:000B] A:45D9 X:45D9 Y:3919 P:envMxdizc $81/8C60 A6 D8 LDX $D8 [$00:00D8] A:45D9 X:45D9 Y:3919 P:envMxdizc $81/8C62 A5 08 LDA $08 [$00:0008] A:45D9 X:45D9 Y:3919 P:envMxdizc $81/8C64 9D 5D 00 STA $005D,x[$7E:4636] A:4532 X:45D9 Y:3919 P:envMxdizc $81/8C67 20 EE 92 JSR $92EE [$81:92EE] A:4532 X:45D9 Y:3919 P:envMxdizc $81/8C6A A5 09 LDA $09 [$00:0009] A:0004 X:45D9 Y:3919 P:envMxdizc $81/8C6C 9D 5E 00 STA $005E,x[$7E:4637] A:0004 X:45D9 Y:3919 P:envMxdizc $81/8C6F BD 5D 00 LDA $005D,x[$7E:4636] A:0004 X:45D9 Y:3919 P:envMxdizc $81/8C72 C9 FF CMP #$FF A:0032 X:45D9 Y:3919 P:envMxdizc $81/8C74 F0 11 BEQ $11 [$8C87] A:0032 X:45D9 Y:3919 P:envMxdizc $81/8C76 BD 5E 00 LDA $005E,x[$7E:4637] A:0032 X:45D9 Y:3919 P:envMxdizc $81/8C79 89 40 BIT #$40 A:0004 X:45D9 Y:3919 P:envMxdizc $81/8C7B D0 0A BNE $0A [$8C87] A:0004 X:45D9 Y:3919 P:envMxdiZc $81/8C7D 29 3F AND #$3F A:0004 X:45D9 Y:3919 P:envMxdiZc $81/8C7F 49 FF EOR #$FF A:0004 X:45D9 Y:3919 P:envMxdizc $81/8C81 38 SEC A:00FB X:45D9 Y:3919 P:eNvMxdizc $81/8C82 65 02 ADC $02 [$00:0002] A:00FB X:45D9 Y:3919 P:eNvMxdizC $81/8C84 3A DEC A A:0004 X:45D9 Y:3919 P:envMxdizC $81/8C85 80 02 BRA $02 [$8C89] A:0003 X:45D9 Y:3919 P:envMxdizC $81/8C87 A5 02 LDA $02 [$00:0002] A:0044 X:3919 Y:FFFE P:envMxdizc $81/8C89 9D 55 00 STA $0055,x[$7E:462E] A:0003 X:45D9 Y:3919 P:envMxdizC $81/8C8C 9E 56 00 STZ $0056,x[$7E:462F] A:0003 X:45D9 Y:3919 P:envMxdizC $81/8C8F A5 03 LDA $03 [$00:0003] A:0003 X:45D9 Y:3919 P:envMxdizC $81/8C91 9D 57 00 STA $0057,x[$7E:4630] A:0003 X:45D9 Y:3919 P:envMxdizC $81/8C94 9E 58 00 STZ $0058,x[$7E:4631] A:0003 X:45D9 Y:3919 P:envMxdizC $81/8C97 BD 5D 00 LDA $005D,x[$7E:4636] A:0003 X:45D9 Y:3919 P:envMxdizC $81/8C9A C9 FF CMP #$FF A:0032 X:45D9 Y:3919 P:envMxdizC $81/8C9C F0 0B BEQ $0B [$8CA9] A:0032 X:45D9 Y:3919 P:envMxdizc $81/8C9E BD 5E 00 LDA $005E,x[$7E:4637] A:0032 X:45D9 Y:3919 P:envMxdizc $81/8CA1 29 3F AND #$3F A:0004 X:45D9 Y:3919 P:envMxdizc $81/8CA3 18 CLC A:0004 X:45D9 Y:3919 P:envMxdizc $81/8CA4 65 04 ADC $04 [$00:0004] A:0004 X:45D9 Y:3919 P:envMxdizc $81/8CA6 1A INC A A:0017 X:45D9 Y:3919 P:envMxdizc $81/8CA7 80 02 BRA $02 [$8CAB] A:0018 X:45D9 Y:3919 P:envMxdizc
- code is missing here
$81/8CAB 9D 59 00 STA $0059,x[$7E:4632] A:0018 X:45D9 Y:3919 P:envMxdizc $81/8CAE 9E 5A 00 STZ $005A,x[$7E:4633] A:0018 X:45D9 Y:3919 P:envMxdizc $81/8CB1 A5 05 LDA $05 [$00:0005] A:0018 X:45D9 Y:3919 P:envMxdizc $81/8CB3 9D 5B 00 STA $005B,x[$7E:4634] A:0006 X:45D9 Y:3919 P:envMxdizc $81/8CB6 9E 5C 00 STZ $005C,x[$7E:4635] A:0006 X:45D9 Y:3919 P:envMxdizc $81/8CB9 A5 0A LDA $0A [$00:000A] A:0006 X:45D9 Y:3919 P:envMxdizc $81/8CBB 9D 5F 00 STA $005F,x[$7E:4638] A:008E X:45D9 Y:3919 P:eNvMxdizc $81/8CBE A5 0B LDA $0B [$00:000B] A:008E X:45D9 Y:3919 P:eNvMxdizc $81/8CC0 9D 39 02 STA $0239,x[$7E:4812] A:0000 X:45D9 Y:3919 P:envMxdiZc $81/8CC3 A9 FF LDA #$FF A:0000 X:45D9 Y:3919 P:envMxdiZc $81/8CC5 9D 3F 02 STA $023F,x[$7E:4818] A:00FF X:45D9 Y:3919 P:eNvMxdizc $81/8CC8 20 8D 90 JSR $908D [$81:908D] A:00FF X:45D9 Y:3919 P:eNvMxdizc $81/8CCB 20 E5 96 JSR $96E5 [$81:96E5] A:5200 X:45D9 Y:0308 P:envMxdizc $81/8CCE 20 1B 95 JSR $951B [$81:951B] A:001A X:45D9 Y:0308 P:envMxdizc $81/8CD1 A6 D8 LDX $D8 [$00:00D8] A:0033 X:45D9 Y:3919 P:envMxdizc $81/8CD3 BD 4F 00 LDA $004F,x[$7E:4628] A:0033 X:45D9 Y:3919 P:envMxdizc $81/8CD6 D0 0E BNE $0E [$8CE6] A:0000 X:45D9 Y:3919 P:envMxdiZc $81/8CD8 9E 3F 02 STZ $023F,x[$7E:4818] A:0000 X:45D9 Y:3919 P:envMxdiZc $81/8CDB 20 0E A8 JSR $A80E [$81:A80E] A:0000 X:45D9 Y:3919 P:envMxdiZc $81/8CDE A6 D8 LDX $D8 [$00:00D8] A:4500 X:45D9 Y:0002 P:envMxdizc $81/8CE0 A9 0F LDA #$0F A:4500 X:45D9 Y:0002 P:envMxdizc $81/8CE2 20 EE D3 JSR $D3EE [$81:D3EE] A:450F X:45D9 Y:0002 P:envMxdizc $81/8CE5 60 RTS A:450F X:45D9 Y:0002 P:envMxdizc
- code is missing here
$81/8E7E ?
$81/8E7E 86 D8 STX $D8 [$00:00D8] A:0003 X:3919 Y:3919 P:envMxdizC $81/8E80 C2 20 REP #$20 A:0003 X:3919 Y:3919 P:envMxdizC $81/8E82 A5 B2 LDA $B2 [$00:00B2] A:0003 X:3919 Y:3919 P:envmxdizC $81/8E84 9D 15 02 STA $0215,x[$7E:3B2E] A:087A X:3919 Y:3919 P:envmxdizC $81/8E87 E2 20 SEP #$20 A:087A X:3919 Y:3919 P:envmxdizC $81/8E89 20 3A A8 JSR $A83A [$81:A83A] A:087A X:3919 Y:3919 P:envMxdizC $81/8E8C 20 11 CF JSR $CF11 [$81:CF11] A:3900 X:3919 Y:0002 P:envMxdizC $81/8E8F 60 RTS A:23EE X:3919 Y:3919 P:eNvMxdizc
$81/908D ?
$81/908D D4 02 PEI ($02) ; Buffer $02-$05 on Stack $81/908F D4 04 PEI ($04) $81/9091 D4 08 PEI ($08) ; Buffer $08-$0B on Stack $81/9093 D4 0A PEI ($0A) $81/9095 A6 D8 LDX $D8 [$00:00D8] A:00FF X:45D9 Y:3919 P:eNvMxdizc $81/9097 C2 20 REP #$20 A:00FF X:45D9 Y:3919 P:envMxdizc $81/9099 BD 57 00 LDA $0057,x[$7E:4630] A:00FF X:45D9 Y:3919 P:envmxdizc $81/909C EB XBA A:0003 X:45D9 Y:3919 P:envmxdizc $81/909D 4A LSR A A:0300 X:45D9 Y:3919 P:envmxdiZc $81/909E 4A LSR A A:0180 X:45D9 Y:3919 P:envmxdizc $81/909F 85 10 STA $10 [$00:0010] A:00C0 X:45D9 Y:3919 P:envmxdizc $81/90A1 BD 55 00 LDA $0055,x[$7E:462E] A:00C0 X:45D9 Y:3919 P:envmxdizc $81/90A4 7D 59 00 ADC $0059,x[$7E:4632] A:0003 X:45D9 Y:3919 P:envmxdizc $81/90A7 0A ASL A A:001B X:45D9 Y:3919 P:envmxdizc $81/90A8 65 10 ADC $10 [$00:0010] A:0036 X:45D9 Y:3919 P:envmxdizc $81/90AA 9D 60 00 STA $0060,x[$7E:4639] A:00F6 X:45D9 Y:3919 P:envmxdizc $81/90AD BD 5B 00 LDA $005B,x[$7E:4634] A:00F6 X:45D9 Y:3919 P:envmxdizc $81/90B0 3A DEC A A:0006 X:45D9 Y:3919 P:envmxdizc $81/90B1 EB XBA A:0005 X:45D9 Y:3919 P:envmxdizc $81/90B2 4A LSR A A:0500 X:45D9 Y:3919 P:envmxdiZc $81/90B3 4A LSR A A:0280 X:45D9 Y:3919 P:envmxdizc $81/90B4 7D 60 00 ADC $0060,x[$7E:4639] A:0140 X:45D9 Y:3919 P:envmxdizc $81/90B7 29 FF 07 AND #$07FF A:0236 X:45D9 Y:3919 P:envmxdizc $81/90BA 9D 64 00 STA $0064,x[$7E:463D] A:0236 X:45D9 Y:3919 P:envmxdizc $81/90BD A9 C0 03 LDA #$03C0 A:0236 X:45D9 Y:3919 P:envmxdizc $81/90C0 9D 6A 00 STA $006A,x[$7E:4643] A:03C0 X:45D9 Y:3919 P:envmxdizc $81/90C3 E2 20 SEP #$20 A:03C0 X:45D9 Y:3919 P:envmxdizc $81/90C5 7B TDC A:03C0 X:45D9 Y:3919 P:envMxdizc $81/90C6 BD 4F 00 LDA $004F,x[$7E:4628] A:0000 X:45D9 Y:3919 P:envMxdiZc $81/90C9 0A ASL A A:0000 X:45D9 Y:3919 P:envMxdiZc $81/90CA AA TAX A:0000 X:45D9 Y:3919 P:envMxdiZc $81/90CB 7C CE 90 JMP ($90CE,x)[$81:90F3] A:0000 X:0000 Y:3919 P:envMxdiZc $81/90F3 A6 D8 LDX $D8 [$00:00D8] A:0000 X:0000 Y:3919 P:envMxdiZc $81/90F5 BD 5D 00 LDA $005D,x[$7E:4636] A:0000 X:45D9 Y:3919 P:envMxdizc $81/90F8 C9 FF CMP #$FF A:0032 X:45D9 Y:3919 P:envMxdizc $81/90FA F0 47 BEQ $47 [$9143] A:0032 X:45D9 Y:3919 P:envMxdizc $81/90FC BD 5E 00 LDA $005E,x[$7E:4637] A:0032 X:45D9 Y:3919 P:envMxdizc $81/90FF 89 40 BIT #$40 A:0004 X:45D9 Y:3919 P:envMxdizc $81/9101 F0 40 BEQ $40 [$9143] A:0004 X:45D9 Y:3919 P:envMxdiZc $81/9103 C2 20 REP #$20 A:0044 X:3919 Y:FFFE P:envMxdizc $81/9105 BD 60 00 LDA $0060,x[$7E:3979] A:0044 X:3919 Y:FFFE P:envmxdizc $81/9108 38 SEC A:053A X:3919 Y:FFFE P:envmxdizc $81/9109 FD 59 00 SBC $0059,x[$7E:3972] A:053A X:3919 Y:FFFE P:envmxdizC $81/910C FD 59 00 SBC $0059,x[$7E:3972] A:0523 X:3919 Y:FFFE P:envmxdizC $81/910F E9 02 00 SBC #$0002 A:050C X:3919 Y:FFFE P:envmxdizC $81/9112 29 FF 07 AND #$07FF A:050A X:3919 Y:FFFE P:envmxdizC $81/9115 9D 60 00 STA $0060,x[$7E:3979] A:050A X:3919 Y:FFFE P:envmxdizC $81/9118 BD 64 00 LDA $0064,x[$7E:397D] A:050A X:3919 Y:FFFE P:envmxdizC $81/911B 38 SEC A:067A X:3919 Y:FFFE P:envmxdizC $81/911C FD 59 00 SBC $0059,x[$7E:3972] A:067A X:3919 Y:FFFE P:envmxdizC $81/911F FD 59 00 SBC $0059,x[$7E:3972] A:0663 X:3919 Y:FFFE P:envmxdizC $81/9122 E9 02 00 SBC #$0002 A:064C X:3919 Y:FFFE P:envmxdizC $81/9125 29 FF 07 AND #$07FF A:064A X:3919 Y:FFFE P:envmxdizC $81/9128 9D 64 00 STA $0064,x[$7E:397D] A:064A X:3919 Y:FFFE P:envmxdizC $81/912B BD 6A 00 LDA $006A,x[$7E:3983] A:064A X:3919 Y:FFFE P:envmxdizC $81/912E 18 CLC A:03C0 X:3919 Y:FFFE P:envmxdizC $81/912F 69 06 00 ADC #$0006 A:03C0 X:3919 Y:FFFE P:envmxdizc $81/9132 9D 68 00 STA $0068,x[$7E:3981] A:03C6 X:3919 Y:FFFE P:envmxdizc $81/9135 69 02 00 ADC #$0002 A:03C6 X:3919 Y:FFFE P:envmxdizc $81/9138 9D 62 00 STA $0062,x[$7E:397B] A:03C8 X:3919 Y:FFFE P:envmxdizc $81/913B 09 00 80 ORA #$8000 A:03C8 X:3919 Y:FFFE P:envmxdizc $81/913E 9D 66 00 STA $0066,x[$7E:397F] A:83C8 X:3919 Y:FFFE P:eNvmxdizc $81/9141 80 33 BRA $33 [$9176] A:83C8 X:3919 Y:FFFE P:eNvmxdizc $81/9143 C2 21 REP #$21 A:0004 X:45D9 Y:3919 P:envMxdiZc $81/9145 BD 6A 00 LDA $006A,x[$7E:4643] A:0004 X:45D9 Y:3919 P:envmxdiZc $81/9148 69 07 00 ADC #$0007 A:03C0 X:45D9 Y:3919 P:envmxdizc $81/914B 9D 68 00 STA $0068,x[$7E:4641] A:03C7 X:45D9 Y:3919 P:envmxdizc $81/914E 69 02 00 ADC #$0002 A:03C7 X:45D9 Y:3919 P:envmxdizc $81/9151 9D 62 00 STA $0062,x[$7E:463B] A:03C9 X:45D9 Y:3919 P:envmxdizc $81/9154 09 00 80 ORA #$8000 A:03C9 X:45D9 Y:3919 P:envmxdizc $81/9157 9D 66 00 STA $0066,x[$7E:463F] A:83C9 X:45D9 Y:3919 P:eNvmxdizc $81/915A 80 1A BRA $1A [$9176] A:83C9 X:45D9 Y:3919 P:eNvmxdizc
- code is missing here
$81/9176 E2 20 SEP #$20 A:83C9 X:45D9 Y:3919 P:eNvmxdizc $81/9178 20 D4 91 JSR $91D4 [$81:91D4] A:83C9 X:45D9 Y:3919 P:eNvMxdizc $81/917B 20 19 92 JSR $9219 [$81:9219] A:8300 X:45D9 Y:3919 P:envMxdiZc $81/917E 20 A9 91 JSR $91A9 [$81:91A9] A:0000 X:45D9 Y:45D9 P:envMxdizc $81/9181 A6 D8 LDX $D8 [$00:00D8] A:5299 X:45D9 Y:45D9 P:envMxdizc $81/9183 BD 4F 00 LDA $004F,x[$7E:4628] A:5299 X:45D9 Y:45D9 P:envMxdizc $81/9186 C9 07 CMP #$07 A:5200 X:45D9 Y:45D9 P:envMxdiZc $81/9188 D0 10 BNE $10 [$919A] A:5200 X:45D9 Y:45D9 P:eNvMxdizc
- code is missing here
$81/919A E2 20 SEP #$20 A:5200 X:45D9 Y:45D9 P:eNvMxdizc $81/919C 7A PLY ; Restore $08-$0B from Stack $81/919D 84 0A STY $0A $81/919F 7A PLY $81/91A0 84 08 STY $08 $81/91A2 7A PLY ; Restore $02-$05 from Stack $81/91A3 84 04 STY $04 $81/91A5 7A PLY $81/91A6 84 02 STY $02 $81/91A8 60 RTS
$81/91A9 ?
$81/91A9 A6 D8 LDX $D8 [$00:00D8] A:0000 X:45D9 Y:45D9 P:envMxdizc $81/91AB BD 4F 00 LDA $004F,x[$7E:4628] A:0000 X:45D9 Y:45D9 P:envMxdizc $81/91AE D0 23 BNE $23 ; [$91D3] Exit if not empty $81/91B0 C2 21 REP #$21 A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/91B2 8A TXA A:0000 X:45D9 Y:45D9 P:envmxdiZc $81/91B3 69 40 02 ADC #$0240 A:45D9 X:45D9 Y:45D9 P:envmxdizc $81/91B6 9D 49 00 STA $0049,x[$7E:4622] A:4819 X:45D9 Y:45D9 P:envmxdizc $81/91B9 69 40 02 ADC #$0240 A:4819 X:45D9 Y:45D9 P:envmxdizc $81/91BC 9D 4B 00 STA $004B,x[$7E:4624] A:4A59 X:45D9 Y:45D9 P:envmxdizc $81/91BF 69 40 02 ADC #$0240 A:4A59 X:45D9 Y:45D9 P:envmxdizc $81/91C2 9D 45 00 STA $0045,x[$7E:461E] A:4C99 X:45D9 Y:45D9 P:envmxdizc $81/91C5 69 00 02 ADC #$0200 A:4C99 X:45D9 Y:45D9 P:envmxdizc $81/91C8 9D 24 02 STA $0224,x[$7E:47FD] A:4E99 X:45D9 Y:45D9 P:envmxdizc $81/91CB 69 00 04 ADC #$0400 A:4E99 X:45D9 Y:45D9 P:envmxdizc $81/91CE 9D 26 02 STA $0226,x[$7E:47FF] A:5299 X:45D9 Y:45D9 P:envmxdizc $81/91D1 E2 20 SEP #$20 A:5299 X:45D9 Y:45D9 P:envmxdizc $81/91D3 60 RTS A:5299 X:45D9 Y:45D9 P:envMxdizc
$81/91D4 ?
$81/91D4 A6 D8 LDX $D8 [$00:00D8] A:83C9 X:45D9 Y:3919 P:eNvMxdizc $81/91D6 BD 4F 00 LDA $004F,x[$7E:4628] A:83C9 X:45D9 Y:3919 P:envMxdizc $81/91D9 F0 3D BEQ $3D [$9218] A:8300 X:45D9 Y:3919 P:envMxdiZc
- code is missing here
$81/9218 60 RTS A:8300 X:45D9 Y:3919 P:envMxdiZc
$81/9219 ?
$81/9219 A6 D8 LDX $D8 [$00:00D8] A:8300 X:45D9 Y:3919 P:envMxdiZc $81/921B 7B TDC A:8300 X:45D9 Y:3919 P:envMxdizc $81/921C BD 4F 00 LDA $004F,x[$7E:4628] A:0000 X:45D9 Y:3919 P:envMxdiZc $81/921F 9B TXY A:0000 X:45D9 Y:3919 P:envMxdiZc $81/9220 0A ASL A A:0000 X:45D9 Y:45D9 P:envMxdizc $81/9221 AA TAX A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/9222 FC 28 92 JSR ($9228,x)[$81:9240] A:0000 X:0000 Y:45D9 P:envMxdiZc $81/9225 A6 D8 LDX $D8 [$00:00D8] A:0000 X:0000 Y:45D9 P:envMxdiZc $81/9227 60 RTS A:0000 X:45D9 Y:45D9 P:envMxdizc
$81/9228 40 92 --- Entry #$00 - $9240 $81/922A 41 92 --- Entry #$01 - $9241 $81/922C 76 92 --- Entry #$02 - $9276 $81/922E 76 92 --- Entry #$03 - $9276 $81/9230 76 92 --- Entry #$04 - $9276 $81/9232 76 92 --- Entry #$05 - $9276 $81/9234 41 92 --- Entry #$06 - $9241 $81/9236 76 92 --- Entry #$07 - $9276 $81/9238 76 92 --- Entry #$08 - $9276 $81/923A 76 92 --- Entry #$09 - $9276 $81/923C 76 92 --- Entry #$0A - $9276 $81/923E 76 92 --- Entry #$0B - $9276
$81/9240 RTS
$81/9240 60 RTS ; This line could be removed - Point to another RTS!
$81/92EE ?
$81/92EE 7B TDC A:4532 X:45D9 Y:3919 P:envMxdizc $81/92EF A5 08 LDA $08 [$00:0008] A:0000 X:45D9 Y:3919 P:envMxdiZc $81/92F1 C9 FF CMP #$FF A:0032 X:45D9 Y:3919 P:envMxdizc $81/92F3 F0 14 BEQ $14 [$9309] A:0032 X:45D9 Y:3919 P:envMxdizc $81/92F5 C9 FE CMP #$FE A:0032 X:45D9 Y:3919 P:envMxdizc $81/92F7 F0 08 BEQ $08 [$9301] A:0032 X:45D9 Y:3919 P:envMxdizc $81/92F9 A5 09 LDA $09 [$00:0009] A:0032 X:45D9 Y:3919 P:envMxdizc $81/92FB 29 C0 AND #$C0 A:0000 X:45D9 Y:3919 P:envMxdiZc $81/92FD 09 04 ORA #$04 A:0000 X:45D9 Y:3919 P:envMxdiZc $81/92FF 80 09 BRA $09 [$930A] A:0004 X:45D9 Y:3919 P:envMxdizc
- code is missing here
$81/930A 85 09 STA $09 [$00:0009] A:0004 X:45D9 Y:3919 P:envMxdizc $81/930C 60 RTS A:0004 X:45D9 Y:3919 P:envMxdizc
$81/930D ?
$81/930D 20 B9 97 JSR $97B9 [$81:97B9] A:0001 X:45D9 Y:B12C P:enVMxdizC $81/9310 A2 00 A8 LDX #$A800 A:0200 X:45D9 Y:01D4 P:envMxdizc $81/9313 86 20 STX $20 [$00:0020] A:0200 X:A800 Y:01D4 P:eNvMxdizc $81/9315 A9 7E LDA #$7E A:0200 X:A800 Y:01D4 P:eNvMxdizc $81/9317 85 22 STA $22 [$00:0022] A:027E X:A800 Y:01D4 P:envMxdizc $81/9319 A6 D8 LDX $D8 [$00:00D8] A:027E X:A800 Y:01D4 P:envMxdizc $81/931B 7B TDC A:027E X:45D9 Y:01D4 P:envMxdizc $81/931C BD 3F 02 LDA $023F,x[$7E:4818] A:0000 X:45D9 Y:01D4 P:envMxdiZc $81/931F C9 FF CMP #$FF A:0000 X:45D9 Y:01D4 P:envMxdiZc $81/9321 F0 1B BEQ $1B [$933E] A:0000 X:45D9 Y:01D4 P:envMxdizc $81/9323 0A ASL A A:0000 X:45D9 Y:01D4 P:envMxdizc $81/9324 AA TAX A:0000 X:45D9 Y:01D4 P:envMxdiZc $81/9325 C2 20 REP #$20 A:0000 X:0000 Y:01D4 P:envMxdiZc $81/9327 BF 8A 93 81 LDA $81938A,x[$81:938A] A:0000 X:0000 Y:01D4 P:envmxdiZc $81/932B C9 FF FF CMP #$FFFF A:94C3 X:0000 Y:01D4 P:eNvmxdizc $81/932E E2 20 SEP #$20 A:94C3 X:0000 Y:01D4 P:eNvmxdizc $81/9330 F0 0C BEQ $0C [$933E] A:94C3 X:0000 Y:01D4 P:eNvMxdizc $81/9332 FC 8A 93 JSR ($938A,x)[$81:94C3] A:94C3 X:0000 Y:01D4 P:eNvMxdizc $81/9335 A6 D8 LDX $D8 [$00:00D8] A:0000 X:A800 Y:2F9A P:envMxdizc $81/9337 FE 3F 02 INC $023F,x[$7E:4818] A:0000 X:45D9 Y:2F9A P:envMxdizc $81/933A 20 D8 9B JSR $9BD8 [$81:9BD8] A:0000 X:45D9 Y:2F9A P:envMxdizc $81/933D 60 RTS A:A87E X:45D9 Y:3C00 P:envMxdizc $81/933E A6 D8 LDX $D8 [$00:00D8] A:FFFF X:000C Y:01D4 P:envMxdiZC $81/9340 A9 FF LDA #$FF A:FFFF X:45D9 Y:01D4 P:envMxdizC $81/9342 9D 3F 02 STA $023F,x[$7E:4818] A:FFFF X:45D9 Y:01D4 P:eNvMxdizC $81/9345 60 RTS A:FFFF X:45D9 Y:01D4 P:eNvMxdizC
$81/9346 ?
Why does line 9357 not jump to 937B?
$81/9346 A2 00 A8 LDX #$A800 ; Setup Address $7E/A800 in [$20] $81/9349 86 20 STX $20 $81/934B A9 7E LDA #$7E $81/934D 85 22 STA $22 $81/934F 7B TDC ; Clear 16-bit A $81/9350 A6 D8 LDX $D8 [$00:00D8] A:0000 X:A800 Y:001E P:envMxdiZc $81/9352 BD 3F 02 LDA $023F,x[$7E:4818] A:0000 X:45D9 Y:001E P:envMxdizc $81/9355 C9 FF CMP #$FF A:0000 X:45D9 Y:001E P:envMxdiZc $81/9357 F0 1B BEQ $1B [$9374] A:0000 X:45D9 Y:001E P:envMxdizc $81/9359 0A ASL A A:0000 X:45D9 Y:001E P:envMxdizc $81/935A AA TAX A:0000 X:45D9 Y:001E P:envMxdiZc $81/935B C2 20 REP #$20 A:0000 X:0000 Y:001E P:envMxdiZc $81/935D BF 7C 93 81 LDA $81937C,x[$81:937C] A:0000 X:0000 Y:001E P:envmxdiZc $81/9361 C9 FF FF CMP #$FFFF A:9398 X:0000 Y:001E P:eNvmxdizc $81/9364 E2 20 SEP #$20 A:9398 X:0000 Y:001E P:eNvmxdizc $81/9366 F0 0C BEQ $0C [$9374] A:9398 X:0000 Y:001E P:eNvMxdizc $81/9368 FC 7C 93 JSR ($937C,x)[$81:9398] A:9398 X:0000 Y:001E P:eNvMxdizc $81/936B A6 D8 LDX $D8 [$00:00D8] A:2FC5 X:D331 Y:019E P:envMxdizc $81/936D FE 3F 02 INC $023F,x[$7E:4818] A:2FC5 X:45D9 Y:019E P:envMxdizc $81/9370 20 D8 9B JSR $9BD8 [$81:9BD8] A:2FC5 X:45D9 Y:019E P:envMxdizc $81/9373 60 RTS A:A87E X:45D9 Y:3C00 P:envMxdizc $81/9374 A6 D8 LDX $D8 [$00:00D8] A:FFFF X:000C Y:001E P:envMxdiZC $81/9376 A9 FF LDA #$FF A:FFFF X:45D9 Y:001E P:envMxdizC $81/9378 9D 3F 02 STA $023F,x[$7E:4818] A:FFFF X:45D9 Y:001E P:eNvMxdizC $81/937B 60 RTS A:FFFF X:45D9 Y:001E P:eNvMxdizC
$81/937C 98 93 --- Entry #$00 - $9398 $81/937E CB 93 --- Entry #$01 - $93CB $81/9380 01 94 --- Entry #$02 - $9401 $81/9382 39 94 --- Entry #$03 - $9439 $81/9384 6B 94 --- Entry #$04 - $946B $81/9386 C3 94 --- Entry #$05 - $94C3 $81/9388 FF FF --- Entry #$06 - $FFFF $81/938A C3 94 --- Entry #$07 - $94C3 $81/938C 6B 94 --- Entry #$08 - $946B $81/938E 39 94 --- Entry #$09 - $9439 $81/9390 01 94 --- Entry #$0A - $9401 $81/9392 CB 93 --- Entry #$0B - $93CB $81/9394 98 93 --- Entry #$0C - $9398 $81/9396 FF FF --- Entry #$0D - $FFFF
$81/9398 ?
$81/9398 A6 D8 LDX $D8 [$00:00D8] A:9398 X:0000 Y:001E P:eNvMxdizc $81/939A C2 21 REP #$21 A:9398 X:45D9 Y:001E P:envMxdizc $81/939C BD 5B 00 LDA $005B,x[$7E:4634] A:9398 X:45D9 Y:001E P:envmxdizc $81/939F 4A LSR A A:0006 X:45D9 Y:001E P:envmxdizc $81/93A0 7D 57 00 ADC $0057,x[$7E:4630] A:0003 X:45D9 Y:001E P:envmxdizc $81/93A3 3A DEC A A:0006 X:45D9 Y:001E P:envmxdizc $81/93A4 85 04 STA $04 [$00:0004] A:0005 X:45D9 Y:001E P:envmxdizc $81/93A6 BD 59 00 LDA $0059,x[$7E:4632] A:0005 X:45D9 Y:001E P:envmxdizc $81/93A9 4A LSR A A:0018 X:45D9 Y:001E P:envmxdizc $81/93AA 7D 55 00 ADC $0055,x[$7E:462E] A:000C X:45D9 Y:001E P:envmxdizc $81/93AD 3A DEC A A:000F X:45D9 Y:001E P:envmxdizc $81/93AE 85 06 STA $06 [$00:0006] A:000E X:45D9 Y:001E P:envmxdizc $81/93B0 A5 04 LDA $04 [$00:0004] A:000E X:45D9 Y:001E P:envmxdizc $81/93B2 EB XBA A:0005 X:45D9 Y:001E P:envmxdizc $81/93B3 4A LSR A A:0500 X:45D9 Y:001E P:envmxdiZc $81/93B4 4A LSR A A:0280 X:45D9 Y:001E P:envmxdizc $81/93B5 65 06 ADC $06 [$00:0006] A:0140 X:45D9 Y:001E P:envmxdizc $81/93B7 65 06 ADC $06 [$00:0006] A:014E X:45D9 Y:001E P:envmxdizc $81/93B9 A8 TAY A:015C X:45D9 Y:001E P:envmxdizc $81/93BA E2 20 SEP #$20 A:015C X:45D9 Y:015C P:envmxdizc $81/93BC 64 00 STZ $00 [$00:0000] A:015C X:45D9 Y:015C P:envMxdizc $81/93BE 64 02 STZ $02 [$00:0002] A:015C X:45D9 Y:015C P:envMxdizc $81/93C0 A2 31 D3 LDX #$D331 A:015C X:45D9 Y:015C P:envMxdizc $81/93C3 A9 81 LDA #$81 A:015C X:D331 Y:015C P:eNvMxdizc $81/93C5 22 41 D3 81 JSL $81D341[$81:D341] A:0181 X:D331 Y:015C P:eNvMxdizc $81/93C9 18 CLC A:2FC5 X:D331 Y:019E P:envMxdizc $81/93CA 60 RTS A:2FC5 X:D331 Y:019E P:envMxdizc
$81/93CB ?
$81/93CB A6 D8 LDX $D8 [$00:00D8] A:93CB X:0002 Y:001E P:eNvMxdizc $81/93CD C2 21 REP #$21 A:93CB X:45D9 Y:001E P:envMxdizc $81/93CF BD 5B 00 LDA $005B,x[$7E:4634] A:93CB X:45D9 Y:001E P:envmxdizc $81/93D2 4A LSR A A:0006 X:45D9 Y:001E P:envmxdizc $81/93D3 7D 57 00 ADC $0057,x[$7E:4630] A:0003 X:45D9 Y:001E P:envmxdizc $81/93D6 3A DEC A A:0006 X:45D9 Y:001E P:envmxdizc $81/93D7 85 04 STA $04 [$00:0004] A:0005 X:45D9 Y:001E P:envmxdizc $81/93D9 BD 59 00 LDA $0059,x[$7E:4632] A:0005 X:45D9 Y:001E P:envmxdizc $81/93DC 4A LSR A A:0018 X:45D9 Y:001E P:envmxdizc $81/93DD 7D 55 00 ADC $0055,x[$7E:462E] A:000C X:45D9 Y:001E P:envmxdizc $81/93E0 3A DEC A A:000F X:45D9 Y:001E P:envmxdizc $81/93E1 3A DEC A A:000E X:45D9 Y:001E P:envmxdizc $81/93E2 85 06 STA $06 [$00:0006] A:000D X:45D9 Y:001E P:envmxdizc $81/93E4 A5 04 LDA $04 [$00:0004] A:000D X:45D9 Y:001E P:envmxdizc $81/93E6 EB XBA A:0005 X:45D9 Y:001E P:envmxdizc $81/93E7 4A LSR A A:0500 X:45D9 Y:001E P:envmxdiZc $81/93E8 4A LSR A A:0280 X:45D9 Y:001E P:envmxdizc $81/93E9 65 06 ADC $06 [$00:0006] A:0140 X:45D9 Y:001E P:envmxdizc $81/93EB 65 06 ADC $06 [$00:0006] A:014D X:45D9 Y:001E P:envmxdizc $81/93ED A8 TAY A:015A X:45D9 Y:001E P:envmxdizc $81/93EE E2 20 SEP #$20 A:015A X:45D9 Y:015A P:envmxdizc $81/93F0 A9 02 LDA #$02 A:015A X:45D9 Y:015A P:envMxdizc $81/93F2 85 00 STA $00 [$00:0000] A:0102 X:45D9 Y:015A P:envMxdizc $81/93F4 64 02 STZ $02 [$00:0002] A:0102 X:45D9 Y:015A P:envMxdizc $81/93F6 A2 31 D3 LDX #$D331 A:0102 X:45D9 Y:015A P:envMxdizc $81/93F9 A9 81 LDA #$81 A:0102 X:D331 Y:015A P:eNvMxdizc $81/93FB 22 41 D3 81 JSL $81D341[$81:D341] A:0181 X:D331 Y:015A P:eNvMxdizc $81/93FF 18 CLC A:2FC5 X:D331 Y:01A0 P:envMxdizc $81/9400 60 RTS A:2FC5 X:D331 Y:01A0 P:envMxdizc
$81/9401 ?
$81/9401 A6 D8 LDX $D8 [$00:00D8] A:9401 X:0004 Y:001E P:eNvMxdizc $81/9403 C2 21 REP #$21 A:9401 X:45D9 Y:001E P:envMxdizc $81/9405 BD 5B 00 LDA $005B,x[$7E:4634] A:9401 X:45D9 Y:001E P:envmxdizc $81/9408 4A LSR A A:0006 X:45D9 Y:001E P:envmxdizc $81/9409 7D 57 00 ADC $0057,x[$7E:4630] A:0003 X:45D9 Y:001E P:envmxdizc $81/940C 3A DEC A A:0006 X:45D9 Y:001E P:envmxdizc $81/940D 85 04 STA $04 [$00:0004] A:0005 X:45D9 Y:001E P:envmxdizc $81/940F BD 59 00 LDA $0059,x[$7E:4632] A:0005 X:45D9 Y:001E P:envmxdizc $81/9412 4A LSR A A:0018 X:45D9 Y:001E P:envmxdizc $81/9413 7D 55 00 ADC $0055,x[$7E:462E] A:000C X:45D9 Y:001E P:envmxdizc $81/9416 3A DEC A A:000F X:45D9 Y:001E P:envmxdizc $81/9417 3A DEC A A:000E X:45D9 Y:001E P:envmxdizc $81/9418 3A DEC A A:000D X:45D9 Y:001E P:envmxdizc $81/9419 3A DEC A A:000C X:45D9 Y:001E P:envmxdizc $81/941A 85 06 STA $06 [$00:0006] A:000B X:45D9 Y:001E P:envmxdizc $81/941C A5 04 LDA $04 [$00:0004] A:000B X:45D9 Y:001E P:envmxdizc $81/941E EB XBA A:0005 X:45D9 Y:001E P:envmxdizc $81/941F 4A LSR A A:0500 X:45D9 Y:001E P:envmxdiZc $81/9420 4A LSR A A:0280 X:45D9 Y:001E P:envmxdizc $81/9421 65 06 ADC $06 [$00:0006] A:0140 X:45D9 Y:001E P:envmxdizc $81/9423 65 06 ADC $06 [$00:0006] A:014B X:45D9 Y:001E P:envmxdizc $81/9425 A8 TAY A:0156 X:45D9 Y:001E P:envmxdizc $81/9426 E2 20 SEP #$20 A:0156 X:45D9 Y:0156 P:envmxdizc $81/9428 A9 06 LDA #$06 A:0156 X:45D9 Y:0156 P:envMxdizc $81/942A 85 00 STA $00 [$00:0000] A:0106 X:45D9 Y:0156 P:envMxdizc $81/942C 64 02 STZ $02 [$00:0002] A:0106 X:45D9 Y:0156 P:envMxdizc $81/942E A2 31 D3 LDX #$D331 A:0106 X:45D9 Y:0156 P:envMxdizc $81/9431 A9 81 LDA #$81 A:0106 X:D331 Y:0156 P:eNvMxdizc $81/9433 22 41 D3 81 JSL $81D341[$81:D341] A:0181 X:D331 Y:0156 P:eNvMxdizc $81/9437 18 CLC A:2FC5 X:D331 Y:01A4 P:envMxdizc $81/9438 60 RTS A:2FC5 X:D331 Y:01A4 P:envMxdizc
$81/9439 ?
$81/9439 A6 D8 LDX $D8 [$00:00D8] A:9439 X:0006 Y:001E P:eNvMxdizc $81/943B C2 21 REP #$21 A:9439 X:45D9 Y:001E P:envMxdizc $81/943D BD 5B 00 LDA $005B,x[$7E:4634] A:9439 X:45D9 Y:001E P:envmxdizc $81/9440 4A LSR A A:0006 X:45D9 Y:001E P:envmxdizc $81/9441 7D 57 00 ADC $0057,x[$7E:4630] A:0003 X:45D9 Y:001E P:envmxdizc $81/9444 3A DEC A A:0006 X:45D9 Y:001E P:envmxdizc $81/9445 85 04 STA $04 [$00:0004] A:0005 X:45D9 Y:001E P:envmxdizc $81/9447 BD 55 00 LDA $0055,x[$7E:462E] A:0005 X:45D9 Y:001E P:envmxdizc $81/944A 3A DEC A A:0003 X:45D9 Y:001E P:envmxdizc $81/944B 85 06 STA $06 [$00:0006] A:0002 X:45D9 Y:001E P:envmxdizc $81/944D A5 04 LDA $04 [$00:0004] A:0002 X:45D9 Y:001E P:envmxdizc $81/944F EB XBA A:0005 X:45D9 Y:001E P:envmxdizc $81/9450 4A LSR A A:0500 X:45D9 Y:001E P:envmxdiZc $81/9451 4A LSR A A:0280 X:45D9 Y:001E P:envmxdizc $81/9452 65 06 ADC $06 [$00:0006] A:0140 X:45D9 Y:001E P:envmxdizc $81/9454 65 06 ADC $06 [$00:0006] A:0142 X:45D9 Y:001E P:envmxdizc $81/9456 A8 TAY A:0144 X:45D9 Y:001E P:envmxdizc $81/9457 E2 20 SEP #$20 A:0144 X:45D9 Y:0144 P:envmxdizc $81/9459 BD 59 00 LDA $0059,x[$7E:4632] A:0144 X:45D9 Y:0144 P:envMxdizc $81/945C 85 00 STA $00 [$00:0000] A:0118 X:45D9 Y:0144 P:envMxdizc $81/945E 64 02 STZ $02 [$00:0002] A:0118 X:45D9 Y:0144 P:envMxdizc $81/9460 A2 31 D3 LDX #$D331 A:0118 X:45D9 Y:0144 P:envMxdizc $81/9463 A9 81 LDA #$81 A:0118 X:D331 Y:0144 P:eNvMxdizc $81/9465 22 41 D3 81 JSL $81D341[$81:D341] A:0181 X:D331 Y:0144 P:eNvMxdizc $81/9469 18 CLC A:2FC5 X:D331 Y:01B6 P:envMxdizc $81/946A 60 RTS A:2FC5 X:D331 Y:01B6 P:envMxdizc
$81/946B ?
$81/946B A6 D8 LDX $D8 [$00:00D8] A:946B X:0008 Y:001E P:eNvMxdizc $81/946D C2 21 REP #$21 A:946B X:45D9 Y:001E P:envMxdizc $81/946F BD 5B 00 LDA $005B,x[$7E:4634] A:946B X:45D9 Y:001E P:envmxdizc $81/9472 4A LSR A A:0006 X:45D9 Y:001E P:envmxdizc $81/9473 3A DEC A A:0003 X:45D9 Y:001E P:envmxdizc $81/9474 7D 57 00 ADC $0057,x[$7E:4630] A:0002 X:45D9 Y:001E P:envmxdizc $81/9477 3A DEC A A:0005 X:45D9 Y:001E P:envmxdizc $81/9478 85 04 STA $04 [$00:0004] A:0004 X:45D9 Y:001E P:envmxdizc $81/947A BD 55 00 LDA $0055,x[$7E:462E] A:0004 X:45D9 Y:001E P:envmxdizc $81/947D 3A DEC A A:0003 X:45D9 Y:001E P:envmxdizc $81/947E 85 06 STA $06 [$00:0006] A:0002 X:45D9 Y:001E P:envmxdizc $81/9480 A5 04 LDA $04 [$00:0004] A:0002 X:45D9 Y:001E P:envmxdizc $81/9482 EB XBA A:0004 X:45D9 Y:001E P:envmxdizc $81/9483 4A LSR A A:0400 X:45D9 Y:001E P:envmxdiZc $81/9484 4A LSR A A:0200 X:45D9 Y:001E P:envmxdizc $81/9485 65 06 ADC $06 [$00:0006] A:0100 X:45D9 Y:001E P:envmxdizc $81/9487 65 06 ADC $06 [$00:0006] A:0102 X:45D9 Y:001E P:envmxdizc $81/9489 A8 TAY A:0104 X:45D9 Y:001E P:envmxdizc $81/948A E2 20 SEP #$20 A:0104 X:45D9 Y:0104 P:envmxdizc $81/948C BD 59 00 LDA $0059,x[$7E:4632] A:0104 X:45D9 Y:0104 P:envMxdizc $81/948F 85 00 STA $00 [$00:0000] A:0118 X:45D9 Y:0104 P:envMxdizc $81/9491 A9 02 LDA #$02 A:0118 X:45D9 Y:0104 P:envMxdizc $81/9493 85 02 STA $02 [$00:0002] A:0102 X:45D9 Y:0104 P:envMxdizc $81/9495 A2 31 D3 LDX #$D331 A:0102 X:45D9 Y:0104 P:envMxdizc $81/9498 A9 81 LDA #$81 A:0102 X:D331 Y:0104 P:eNvMxdizc $81/949A 22 41 D3 81 JSL $81D341[$81:D341] A:0181 X:D331 Y:0104 P:eNvMxdizc $81/949E A6 D8 LDX $D8 [$00:00D8] A:2FC5 X:D331 Y:01F6 P:envMxdizc $81/94A0 BD 55 00 LDA $0055,x[$7E:462E] A:2FC5 X:45D9 Y:01F6 P:envMxdizc $81/94A3 85 02 STA $02 [$00:0002] A:2F03 X:45D9 Y:01F6 P:envMxdizc $81/94A5 BD 57 00 LDA $0057,x[$7E:4630] A:2F03 X:45D9 Y:01F6 P:envMxdizc $81/94A8 1A INC A A:2F03 X:45D9 Y:01F6 P:envMxdizc $81/94A9 1A INC A A:2F04 X:45D9 Y:01F6 P:envMxdizc $81/94AA 85 03 STA $03 [$00:0003] A:2F05 X:45D9 Y:01F6 P:envMxdizc $81/94AC BD 59 00 LDA $0059,x[$7E:4632] A:2F05 X:45D9 Y:01F6 P:envMxdizc $81/94AF 85 04 STA $04 [$00:0004] A:2F18 X:45D9 Y:01F6 P:envMxdizc $81/94B1 A9 02 LDA #$02 A:2F18 X:45D9 Y:01F6 P:envMxdizc $81/94B3 85 05 STA $05 [$00:0005] A:2F02 X:45D9 Y:01F6 P:envMxdizc $81/94B5 A0 9A 2F LDY #$2F9A A:2F02 X:45D9 Y:01F6 P:envMxdizc $81/94B8 A2 00 A8 LDX #$A800 A:2F02 X:45D9 Y:2F9A P:envMxdizc $81/94BB A9 7E LDA #$7E A:2F02 X:A800 Y:2F9A P:eNvMxdizc $81/94BD 22 96 D2 81 JSL $81D296[$81:D296] A:2F7E X:A800 Y:2F9A P:envMxdizc $81/94C1 18 CLC A:0000 X:A800 Y:2F9A P:envMxdizc $81/94C2 60 RTS A:0000 X:A800 Y:2F9A P:envMxdizc
$81/94C3 ?
$81/94C3 A6 D8 LDX $D8 [$00:00D8] A:94C3 X:000A Y:001E P:eNvMxdizc $81/94C5 C2 21 REP #$21 A:94C3 X:45D9 Y:001E P:envMxdizc $81/94C7 BD 5B 00 LDA $005B,x[$7E:4634] A:94C3 X:45D9 Y:001E P:envmxdizc $81/94CA 4A LSR A A:0006 X:45D9 Y:001E P:envmxdizc $81/94CB 3A DEC A A:0003 X:45D9 Y:001E P:envmxdizc $81/94CC 3A DEC A A:0002 X:45D9 Y:001E P:envmxdizc $81/94CD 7D 57 00 ADC $0057,x[$7E:4630] A:0001 X:45D9 Y:001E P:envmxdizc $81/94D0 3A DEC A A:0004 X:45D9 Y:001E P:envmxdizc $81/94D1 85 04 STA $04 [$00:0004] A:0003 X:45D9 Y:001E P:envmxdizc $81/94D3 BD 55 00 LDA $0055,x[$7E:462E] A:0003 X:45D9 Y:001E P:envmxdizc $81/94D6 3A DEC A A:0003 X:45D9 Y:001E P:envmxdizc $81/94D7 85 06 STA $06 [$00:0006] A:0002 X:45D9 Y:001E P:envmxdizc $81/94D9 A5 04 LDA $04 [$00:0004] A:0002 X:45D9 Y:001E P:envmxdizc $81/94DB EB XBA A:0003 X:45D9 Y:001E P:envmxdizc $81/94DC 4A LSR A A:0300 X:45D9 Y:001E P:envmxdiZc $81/94DD 4A LSR A A:0180 X:45D9 Y:001E P:envmxdizc $81/94DE 65 06 ADC $06 [$00:0006] A:00C0 X:45D9 Y:001E P:envmxdizc $81/94E0 65 06 ADC $06 [$00:0006] A:00C2 X:45D9 Y:001E P:envmxdizc $81/94E2 A8 TAY A:00C4 X:45D9 Y:001E P:envmxdizc $81/94E3 E2 20 SEP #$20 A:00C4 X:45D9 Y:00C4 P:envmxdizc $81/94E5 BD 59 00 LDA $0059,x[$7E:4632] A:00C4 X:45D9 Y:00C4 P:envMxdizc $81/94E8 85 00 STA $00 [$00:0000] A:0018 X:45D9 Y:00C4 P:envMxdizc $81/94EA A9 04 LDA #$04 A:0018 X:45D9 Y:00C4 P:envMxdizc $81/94EC 85 02 STA $02 [$00:0002] A:0004 X:45D9 Y:00C4 P:envMxdizc $81/94EE A2 31 D3 LDX #$D331 A:0004 X:45D9 Y:00C4 P:envMxdizc $81/94F1 A9 81 LDA #$81 A:0004 X:D331 Y:00C4 P:eNvMxdizc $81/94F3 22 41 D3 81 JSL $81D341[$81:D341] A:0081 X:D331 Y:00C4 P:eNvMxdizc $81/94F7 A6 D8 LDX $D8 [$00:00D8] A:2FC5 X:D331 Y:0236 P:envMxdizc $81/94F9 BD 55 00 LDA $0055,x[$7E:462E] A:2FC5 X:45D9 Y:0236 P:envMxdizc $81/94FC 85 02 STA $02 [$00:0002] A:2F03 X:45D9 Y:0236 P:envMxdizc $81/94FE BD 57 00 LDA $0057,x[$7E:4630] A:2F03 X:45D9 Y:0236 P:envMxdizc $81/9501 1A INC A A:2F03 X:45D9 Y:0236 P:envMxdizc $81/9502 85 03 STA $03 [$00:0003] A:2F04 X:45D9 Y:0236 P:envMxdizc $81/9504 BD 59 00 LDA $0059,x[$7E:4632] A:2F04 X:45D9 Y:0236 P:envMxdizc $81/9507 85 04 STA $04 [$00:0004] A:2F18 X:45D9 Y:0236 P:envMxdizc $81/9509 A9 04 LDA #$04 A:2F18 X:45D9 Y:0236 P:envMxdizc $81/950B 85 05 STA $05 [$00:0005] A:2F04 X:45D9 Y:0236 P:envMxdizc $81/950D A0 9A 2F LDY #$2F9A A:2F04 X:45D9 Y:0236 P:envMxdizc $81/9510 A2 00 A8 LDX #$A800 A:2F04 X:45D9 Y:2F9A P:envMxdizc $81/9513 A9 7E LDA #$7E A:2F04 X:A800 Y:2F9A P:eNvMxdizc $81/9515 22 96 D2 81 JSL $81D296[$81:D296] A:2F7E X:A800 Y:2F9A P:envMxdizc $81/9519 18 CLC A:0000 X:A800 Y:2F9A P:envMxdizc $81/951A 60 RTS A:0000 X:A800 Y:2F9A P:envMxdizc
$81/951B ?
$81/951B A6 D8 LDX $D8 [$00:00D8] A:001A X:45D9 Y:0308 P:envMxdizc $81/951D A5 A4 LDA $A4 [$00:00A4] A:001A X:45D9 Y:0308 P:envMxdizc $81/951F 89 01 BIT #$01 A:0003 X:45D9 Y:0308 P:envMxdizc $81/9521 D0 27 BNE $27 [$954A] A:0003 X:45D9 Y:0308 P:envMxdizc
- code is missing here
$81/954A 7B TDC A:0003 X:45D9 Y:0308 P:envMxdizc $81/954B BD 5D 00 LDA $005D,x[$7E:4636] A:0000 X:45D9 Y:0308 P:envMxdiZc $81/954E C9 FF CMP #$FF A:0032 X:45D9 Y:0308 P:envMxdizc $81/9550 F0 04 BEQ $04 [$9556] A:0032 X:45D9 Y:0308 P:envMxdizc $81/9552 C9 FE CMP #$FE A:0032 X:45D9 Y:0308 P:envMxdizc $81/9554 D0 01 BNE $01 [$9557] A:0032 X:45D9 Y:0308 P:envMxdizc
- code is missing here
$81/9557 DA PHX A:0032 X:45D9 Y:0308 P:envMxdizc $81/9558 D4 02 PEI ($02) ; Buffer $02-$0B on Stack $81/955A D4 04 PEI ($04) $81/955C D4 06 PEI ($06) $81/955E D4 08 PEI ($08) $81/9560 D4 0A PEI ($0A) $81/9562 BD 4F 00 LDA $004F,x[$7E:4628] A:0032 X:45D9 Y:0308 P:envMxdizc $81/9565 C9 0A CMP #$0A A:0000 X:45D9 Y:0308 P:envMxdiZc $81/9567 F0 72 BEQ $72 [$95DB] A:0000 X:45D9 Y:0308 P:eNvMxdizc $81/9569 BD 51 00 LDA $0051,x[$7E:462A] A:0000 X:45D9 Y:0308 P:eNvMxdizc $81/956C D0 30 BNE $30 [$959E] A:0000 X:45D9 Y:0308 P:envMxdiZc $81/956E A0 00 2B LDY #$2B00 A:0000 X:45D9 Y:0308 P:envMxdiZc $81/9571 A9 01 LDA #$01 A:0000 X:45D9 Y:2B00 P:envMxdizc $81/9573 85 0E STA $0E [$00:000E] A:0001 X:45D9 Y:2B00 P:envMxdizc $81/9575 64 23 STZ $23 [$00:0023] A:0001 X:45D9 Y:2B00 P:envMxdizc $81/9577 BD 5D 00 LDA $005D,x[$7E:4636] A:0001 X:45D9 Y:2B00 P:envMxdizc $81/957A 22 C5 E9 81 JSL $81E9C5[$81:E9C5] A:0032 X:45D9 Y:2B00 P:envMxdizc $81/957E A6 D8 LDX $D8 [$00:00D8] A:0001 X:0000 Y:2B00 P:envMxdizC $81/9580 BC 52 00 LDY $0052,x[$7E:462B] A:0001 X:45D9 Y:2B00 P:envMxdizC $81/9583 F0 12 BEQ $12 [$9597] A:0001 X:45D9 Y:3919 P:envMxdizC $81/9585 B9 00 00 LDA $0000,y[$7E:3919] A:0001 X:45D9 Y:3919 P:envMxdizC $81/9588 C9 01 CMP #$01 A:0001 X:45D9 Y:3919 P:envMxdizC $81/958A D0 0B BNE $0B [$9597] A:0001 X:45D9 Y:3919 P:envMxdiZC $81/958C B9 5D 00 LDA $005D,y[$7E:3976] A:0001 X:45D9 Y:3919 P:envMxdiZC $81/958F C9 FF CMP #$FF A:0033 X:45D9 Y:3919 P:envMxdizC $81/9591 F0 04 BEQ $04 [$9597] A:0033 X:45D9 Y:3919 P:envMxdizc $81/9593 C9 FE CMP #$FE A:0033 X:45D9 Y:3919 P:envMxdizc $81/9595 D0 6B BNE $6B [$9602] A:0033 X:45D9 Y:3919 P:envMxdizc
- code is missing here
$81/959E C2 21 REP #$21 A:0001 X:3919 Y:1406 P:envMxdizc $81/95A0 BD 57 00 LDA $0057,x[$7E:3970] A:0001 X:3919 Y:1406 P:envmxdizc $81/95A3 7D 5B 00 ADC $005B,x[$7E:3974] A:0014 X:3919 Y:1406 P:envmxdizc $81/95A6 0A ASL A A:001A X:3919 Y:1406 P:envmxdizc $81/95A7 0A ASL A A:0034 X:3919 Y:1406 P:envmxdizc $81/95A8 0A ASL A A:0068 X:3919 Y:1406 P:envmxdizc $81/95A9 E2 20 SEP #$20 A:00D0 X:3919 Y:1406 P:envmxdizc $81/95AB C9 D0 CMP #$D0 A:00D0 X:3919 Y:1406 P:envMxdizc $81/95AD B0 08 BCS $08 [$95B7] A:00D0 X:3919 Y:1406 P:envMxdiZC $81/95AF 85 23 STA $23 [$00:0023] A:00C8 X:3919 Y:130A P:eNvMxdizc $81/95B1 A9 01 LDA #$01 A:00C8 X:3919 Y:130A P:eNvMxdizc $81/95B3 22 7A EA 81 JSL $81EA7A[$81:EA7A] A:0001 X:3919 Y:130A P:envMxdizc $81/95B7 A6 D8 LDX $D8 [$00:00D8] A:00D0 X:3919 Y:1406 P:envMxdiZC $81/95B9 BC 52 00 LDY $0052,x[$7E:396B] A:00D0 X:3919 Y:1406 P:envMxdizC $81/95BC F0 0B BEQ $0B [$95C9] A:00D0 X:3919 Y:0000 P:envMxdiZC
- code is missing here
$81/95C9 A6 D8 LDX $D8 [$00:00D8] A:00D0 X:3919 Y:0000 P:envMxdiZC $81/95CB 20 AC 96 JSR $96AC [$81:96AC] A:00D0 X:3919 Y:0000 P:envMxdizC $81/95CE 80 32 BRA $32 [$9602] A:0001 X:0000 Y:2C80 P:envMxdizC
- code is missing here
$81/9602 FA PLX ; Restore $02-$0B from Stack $81/9603 86 0A STX $0A $81/9605 FA PLX $81/9606 86 08 STX $08 $81/9608 FA PLX $81/9609 86 06 STX $06 $81/960B FA PLX $81/960C 86 04 STX $04 $81/960E FA PLX $81/960F 86 02 STX $02 $81/9611 FA PLX $81/9612 60 RTS
$81/9613 ?
$81/9613 A6 D8 LDX $D8 [$00:00D8] A:00FF X:45D9 Y:45D9 P:envMxdiZC $81/9615 BD 5D 00 LDA $005D,x[$7E:4636] A:00FF X:45D9 Y:45D9 P:envMxdizC $81/9618 C9 FF CMP #$FF A:0032 X:45D9 Y:45D9 P:envMxdizC $81/961A F0 04 BEQ $04 [$9620] A:0032 X:45D9 Y:45D9 P:envMxdizc $81/961C C9 FE CMP #$FE A:0032 X:45D9 Y:45D9 P:envMxdizc $81/961E D0 03 BNE $03 [$9623] A:0032 X:45D9 Y:45D9 P:envMxdizc $81/9620 A6 D8 LDX $D8 [$00:00D8] A:D133 X:45D9 Y:3919 P:envMxdizc $81/9622 60 RTS A:D133 X:45D9 Y:3919 P:envMxdizc $81/9623 BD 4F 00 LDA $004F,x[$7E:4628] A:0032 X:45D9 Y:45D9 P:envMxdizc $81/9626 C9 0A CMP #$0A A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/9628 F0 5B BEQ $5B [$9685] A:0000 X:45D9 Y:45D9 P:eNvMxdizc $81/962A BD 51 00 LDA $0051,x[$7E:462A] A:0000 X:45D9 Y:45D9 P:eNvMxdizc $81/962D D0 22 BNE $22 [$9651] A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/962F A2 00 00 LDX #$0000 A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/9632 A9 0F LDA #$0F A:0000 X:0000 Y:45D9 P:envMxdiZc $81/9634 22 31 93 80 JSL $809331[$80:9331] A:000F X:0000 Y:45D9 P:envMxdizc $81/9638 A6 D8 LDX $D8 [$00:00D8] A:D110 X:CE5B Y:0000 P:envMxdizc $81/963A BC 52 00 LDY $0052,x[$7E:462B] A:D110 X:45D9 Y:0000 P:envMxdizc $81/963D F0 0B BEQ $0B [$964A] A:D110 X:45D9 Y:3919 P:envMxdizc $81/963F B9 5D 00 LDA $005D,y[$7E:3976] A:D110 X:45D9 Y:3919 P:envMxdizc $81/9642 C9 FF CMP #$FF A:D133 X:45D9 Y:3919 P:envMxdizc $81/9644 F0 04 BEQ $04 [$964A] A:D133 X:45D9 Y:3919 P:envMxdizc $81/9646 C9 FE CMP #$FE A:D133 X:45D9 Y:3919 P:envMxdizc $81/9648 D0 D6 BNE $D6 [$9620] A:D133 X:45D9 Y:3919 P:envMxdizc $81/964A A6 D8 LDX $D8 [$00:00D8] A:CC10 X:45D9 Y:0000 P:envMxdiZc $81/964C 20 95 96 JSR $9695 [$81:9695] A:CC10 X:45D9 Y:0000 P:envMxdizc $81/964F 80 CF BRA $CF [$9620] A:CC10 X:CCEB Y:0000 P:envMxdizc $81/9651 C2 21 REP #$21 A:0001 X:3919 Y:3919 P:envMxdizc $81/9653 BD 57 00 LDA $0057,x[$7E:3970] A:0001 X:3919 Y:3919 P:envmxdizc $81/9656 0A ASL A A:0014 X:3919 Y:3919 P:envmxdizc $81/9657 0A ASL A A:0028 X:3919 Y:3919 P:envmxdizc $81/9658 0A ASL A A:0050 X:3919 Y:3919 P:envmxdizc $81/9659 38 SEC A:00A0 X:3919 Y:3919 P:envmxdizc $81/965A E9 1E 00 SBC #$001E A:00A0 X:3919 Y:3919 P:envmxdizC $81/965D 0A ASL A A:0082 X:3919 Y:3919 P:envmxdizC $81/965E 0A ASL A A:0104 X:3919 Y:3919 P:envmxdizc $81/965F AA TAX A:0208 X:3919 Y:3919 P:envmxdizc $81/9660 E2 20 SEP #$20 A:0208 X:0208 Y:3919 P:envmxdizc $81/9662 A9 0F LDA #$0F A:0208 X:0208 Y:3919 P:envMxdizc $81/9664 22 31 93 80 JSL $809331[$80:9331] A:020F X:0208 Y:3919 P:envMxdizc $81/9668 A6 D8 LDX $D8 [$00:00D8] A:D110 X:D067 Y:0000 P:envMxdizc $81/966A 20 95 96 JSR $9695 [$81:9695] A:D110 X:3919 Y:0000 P:envMxdizc $81/966D A6 D8 LDX $D8 [$00:00D8] A:D1FF X:D2DF Y:0000 P:envMxdizC $81/966F BC 52 00 LDY $0052,x[$7E:396B] A:D1FF X:3919 Y:0000 P:envMxdizC $81/9672 F0 AC BEQ $AC [$9620] A:D1FF X:3919 Y:45D9 P:envMxdizC $81/9674 B9 5D 00 LDA $005D,y[$7E:4636] A:D1FF X:3919 Y:45D9 P:envMxdizC $81/9677 C9 FF CMP #$FF A:D132 X:3919 Y:45D9 P:envMxdizC $81/9679 F0 A5 BEQ $A5 [$9620] A:D132 X:3919 Y:45D9 P:envMxdizc $81/967B C9 FE CMP #$FE A:D132 X:3919 Y:45D9 P:envMxdizc $81/967D F0 A1 BEQ $A1 [$9620] A:D132 X:3919 Y:45D9 P:envMxdizc $81/967F BB TYX A:D132 X:3919 Y:45D9 P:envMxdizc $81/9680 20 CD 96 JSR $96CD [$81:96CD] A:D132 X:45D9 Y:45D9 P:envMxdizc $81/9683 80 9B BRA $9B [$9620] A:0000 X:0001 Y:002D P:envMxdizC
$81/9695 ?
$81/9695 C2 21 REP #$21 A:D110 X:3919 Y:0000 P:envMxdizc $81/9697 BD 57 00 LDA $0057,x[$7E:3970] A:D110 X:3919 Y:0000 P:envmxdizc $81/969A 7D 5B 00 ADC $005B,x[$7E:3974] A:0014 X:3919 Y:0000 P:envmxdizc $81/969D 0A ASL A A:001A X:3919 Y:0000 P:envmxdizc $81/969E 0A ASL A A:0034 X:3919 Y:0000 P:envmxdizc $81/969F 0A ASL A A:0068 X:3919 Y:0000 P:envmxdizc $81/96A0 0A ASL A A:00D0 X:3919 Y:0000 P:envmxdizc $81/96A1 0A ASL A A:01A0 X:3919 Y:0000 P:envmxdizc $81/96A2 AA TAX A:0340 X:3919 Y:0000 P:envmxdizc $81/96A3 E2 20 SEP #$20 A:0340 X:0340 Y:0000 P:envmxdizc $81/96A5 A9 0F LDA #$0F A:0340 X:0340 Y:0000 P:envMxdizc $81/96A7 22 31 93 80 JSL $809331[$80:9331] A:030F X:0340 Y:0000 P:envMxdizc $81/96AB 60 RTS A:D1FF X:D2DF Y:0000 P:envMxdizC
$81/96AC ?
$81/96AC A6 D8 LDX $D8 [$00:00D8] A:00D0 X:3919 Y:0000 P:envMxdizC $81/96AE C2 21 REP #$21 A:00D0 X:3919 Y:0000 P:envMxdizC $81/96B0 BD 57 00 LDA $0057,x[$7E:3970] A:00D0 X:3919 Y:0000 P:envmxdizc $81/96B3 0A ASL A A:0014 X:3919 Y:0000 P:envmxdizc $81/96B4 0A ASL A A:0028 X:3919 Y:0000 P:envmxdizc $81/96B5 0A ASL A A:0050 X:3919 Y:0000 P:envmxdizc $81/96B6 38 SEC A:00A0 X:3919 Y:0000 P:envmxdizc $81/96B7 E9 1E 00 SBC #$001E A:00A0 X:3919 Y:0000 P:envmxdizC $81/96BA E2 20 SEP #$20 A:0082 X:3919 Y:0000 P:envmxdizC $81/96BC 85 23 STA $23 [$00:0023] A:0082 X:3919 Y:0000 P:envMxdizC $81/96BE A9 01 LDA #$01 A:0082 X:3919 Y:0000 P:envMxdizC $81/96C0 85 0E STA $0E [$00:000E] A:0001 X:3919 Y:0000 P:envMxdizC $81/96C2 A0 80 2C LDY #$2C80 A:0001 X:3919 Y:0000 P:envMxdizC $81/96C5 BD 5D 00 LDA $005D,x[$7E:3976] A:0001 X:3919 Y:2C80 P:envMxdizC $81/96C8 22 C5 E9 81 JSL $81E9C5[$81:E9C5] A:0033 X:3919 Y:2C80 P:envMxdizC $81/96CC 60 RTS A:0001 X:0000 Y:2C80 P:envMxdizC
$81/96CD ?
$81/96CD A6 D8 LDX $D8 [$00:00D8] A:D132 X:45D9 Y:45D9 P:envMxdizc $81/96CF C2 21 REP #$21 A:D132 X:3919 Y:45D9 P:envMxdizc $81/96D1 BD 57 00 LDA $0057,x[$7E:3970] A:D132 X:3919 Y:45D9 P:envmxdizc $81/96D4 7D 5B 00 ADC $005B,x[$7E:3974] A:0014 X:3919 Y:45D9 P:envmxdizc $81/96D7 0A ASL A A:001A X:3919 Y:45D9 P:envmxdizc $81/96D8 0A ASL A A:0034 X:3919 Y:45D9 P:envmxdizc $81/96D9 0A ASL A A:0068 X:3919 Y:45D9 P:envmxdizc $81/96DA E2 20 SEP #$20 A:00D0 X:3919 Y:45D9 P:envmxdizc $81/96DC 85 23 STA $23 [$00:0023] A:00D0 X:3919 Y:45D9 P:envMxdizc $81/96DE A9 01 LDA #$01 A:00D0 X:3919 Y:45D9 P:envMxdizc $81/96E0 22 7A EA 81 JSL $81EA7A[$81:EA7A] A:0001 X:3919 Y:45D9 P:envMxdizc $81/96E4 60 RTS A:0000 X:0001 Y:002D P:envMxdizC
$81/96E5 ?
$81/96E5 20 49 97 JSR $9749 [$81:9749] A:5200 X:45D9 Y:0308 P:envMxdizc $81/96E8 20 EC 96 JSR $96EC [$81:96EC] A:0200 X:45D9 Y:01D4 P:envMxdizc $81/96EB 60 RTS A:001A X:45D9 Y:0308 P:envMxdizc
$81/96EC ? Transfer BG1 Tilemap Buffer Data into another address
$81/96EC D4 02 PEI ($02) ; Buffer $02-$05 on Stack $81/96EE D4 04 PEI ($04) $81/96F0 A6 D8 LDX $D8 [$00:00D8] A:0200 X:45D9 Y:01D4 P:envMxdizc $81/96F2 C2 20 REP #$20 ; A = 16-bit $81/96F4 BD 49 00 LDA $0049,x[$7E:4622] A:0200 X:45D9 Y:01D4 P:envmxdizc $81/96F7 85 23 STA $23 [$00:0023] A:4819 X:45D9 Y:01D4 P:envmxdizc $81/96F9 BD 57 00 LDA $0057,x[$7E:4630] A:4819 X:45D9 Y:01D4 P:envmxdizc $81/96FC 3A DEC A A:0003 X:45D9 Y:01D4 P:envmxdizc $81/96FD EB XBA A:0002 X:45D9 Y:01D4 P:envmxdizc $81/96FE 4A LSR A A:0200 X:45D9 Y:01D4 P:envmxdiZc $81/96FF 4A LSR A A:0100 X:45D9 Y:01D4 P:envmxdizc $81/9700 7D 55 00 ADC $0055,x[$7E:462E] A:0080 X:45D9 Y:01D4 P:envmxdizc $81/9703 7D 55 00 ADC $0055,x[$7E:462E] A:0083 X:45D9 Y:01D4 P:envmxdizc $81/9706 3A DEC A A:0086 X:45D9 Y:01D4 P:envmxdizc $81/9707 3A DEC A A:0085 X:45D9 Y:01D4 P:envmxdizc $81/9708 A8 TAY ; Buffer Load Index in Y $81/9709 85 04 STA $04 ; Buffer Load Index Offset in $04 $81/970B BD 59 00 LDA $0059,x[$7E:4632] A:0084 X:45D9 Y:0084 P:envmxdizc $81/970E 1A INC A A:0018 X:45D9 Y:0084 P:envmxdizc $81/970F 1A INC A A:0019 X:45D9 Y:0084 P:envmxdizc $81/9710 48 PHA A:001A X:45D9 Y:0084 P:envmxdizc $81/9711 BD 5B 00 LDA $005B,x[$7E:4634] A:001A X:45D9 Y:0084 P:envmxdizc $81/9714 1A INC A A:0006 X:45D9 Y:0084 P:envmxdizc $81/9715 1A INC A A:0007 X:45D9 Y:0084 P:envmxdizc $81/9716 85 00 STA $00 [$00:0000] A:0008 X:45D9 Y:0084 P:envmxdizc $81/9718 BB TYX ; Transfer Load Index from Y to X $81/9719 A3 01 LDA $01,s ; Load value from Stack, without removing it from there $81/971B 85 02 STA $02 ; Set it up as Inner Loop Counter $81/971D BF 00 E0 7F LDA $7FE000,x ; Load value from VRAM Buffer of Battle BG1 Tilemap $81/9721 92 23 STA ($23) ; Store on Bank $7E $81/9723 E8 INX ; Increment Load Index twice $81/9724 E8 INX $81/9725 E6 23 INC $23 ; Increment Store Address twice $81/9727 E6 23 INC $23 $81/9729 C6 02 DEC $02 ; Decrement Inner Loop Counter $81/972B D0 F0 BNE $F0 ; [$971D] Loop until Inner Counter runs out $81/972D A5 04 LDA $04 ; Add #$40 to Load Index offset $81/972F 18 CLC $81/9730 69 40 00 ADC #$0040 $81/9733 29 FF 07 AND #$07FF A:00C4 X:00B8 Y:0084 P:envmxdizc $81/9736 85 04 STA $04 [$00:0004] A:00C4 X:00B8 Y:0084 P:envmxdizc $81/9738 AA TAX ; Transfer in X as Load Index $81/9739 C6 00 DEC $00 ; Decrement Outer Loop Counter $81/973B D0 DC BNE $DC ; [$9719] Loop until Outer Counter runs out $81/973D 68 PLA A:0284 X:0284 Y:0084 P:envmxdiZc $81/973E E2 20 SEP #$20 A:001A X:0284 Y:0084 P:envmxdizc $81/9740 7A PLY ; Restore $02-$05 from Stack $81/9741 84 04 STY $04 $81/9743 7A PLY $81/9744 84 02 STY $02 $81/9746 A6 D8 LDX $D8 [$00:00D8] A:001A X:0284 Y:0308 P:envMxdizc $81/9748 60 RTS A:001A X:45D9 Y:0308 P:envMxdizc
$81/9749 ?
$81/9749 DA PHX A:5200 X:45D9 Y:0308 P:envMxdizc $81/974A A6 D8 LDX $D8 [$00:00D8] A:5200 X:45D9 Y:0308 P:envMxdizc $81/974C 7B TDC A:5200 X:45D9 Y:0308 P:envMxdizc $81/974D BD 5F 00 LDA $005F,x[$7E:4638] A:0000 X:45D9 Y:0308 P:envMxdiZc $81/9750 F0 02 BEQ $02 [$9754] A:008E X:45D9 Y:0308 P:eNvMxdizc $81/9752 10 06 BPL $06 [$975A] A:008E X:45D9 Y:0308 P:eNvMxdizc $81/9754 BD 57 00 LDA $0057,x[$7E:4630] A:008E X:45D9 Y:0308 P:eNvMxdizc $81/9757 3A DEC A A:0003 X:45D9 Y:0308 P:envMxdizc $81/9758 80 05 BRA $05 [$975F] A:0002 X:45D9 Y:0308 P:envMxdizc $81/975A BD 57 00 LDA $0057,x[$7E:3970] A:0012 X:3919 Y:1406 P:envMxdizc $81/975D 3A DEC A A:0014 X:3919 Y:1406 P:envMxdizc $81/975E 3A DEC A A:0013 X:3919 Y:1406 P:envMxdizc $81/975F C2 20 REP #$20 A:0002 X:45D9 Y:0308 P:envMxdizc $81/9761 EB XBA A:0002 X:45D9 Y:0308 P:envmxdizc $81/9762 4A LSR A A:0200 X:45D9 Y:0308 P:envmxdiZc $81/9763 4A LSR A A:0100 X:45D9 Y:0308 P:envmxdizc $81/9764 7D 55 00 ADC $0055,x[$7E:462E] A:0080 X:45D9 Y:0308 P:envmxdizc $81/9767 7D 55 00 ADC $0055,x[$7E:462E] A:0083 X:45D9 Y:0308 P:envmxdizc $81/976A 3A DEC A A:0086 X:45D9 Y:0308 P:envmxdizc $81/976B 3A DEC A A:0085 X:45D9 Y:0308 P:envmxdizc $81/976C A8 TAY A:0084 X:45D9 Y:0308 P:envmxdizc $81/976D BD 4B 00 LDA $004B,x[$7E:4624] A:0084 X:45D9 Y:0084 P:envmxdizc $81/9770 85 20 STA $20 [$00:0020] A:4A59 X:45D9 Y:0084 P:envmxdizc $81/9772 E2 20 SEP #$20 A:4A59 X:45D9 Y:0084 P:envmxdizc $81/9774 BD 5B 00 LDA $005B,x[$7E:4634] A:4A59 X:45D9 Y:0084 P:envMxdizc $81/9777 1A INC A A:4A06 X:45D9 Y:0084 P:envMxdizc $81/9778 1A INC A A:4A07 X:45D9 Y:0084 P:envMxdizc $81/9779 85 01 STA $01 [$00:0001] A:4A08 X:45D9 Y:0084 P:envMxdizc $81/977B BD 59 00 LDA $0059,x[$7E:4632] A:4A08 X:45D9 Y:0084 P:envMxdizc $81/977E 1A INC A A:4A18 X:45D9 Y:0084 P:envMxdizc $81/977F 1A INC A A:4A19 X:45D9 Y:0084 P:envMxdizc $81/9780 85 00 STA $00 [$00:0000] A:4A1A X:45D9 Y:0084 P:envMxdizc $81/9782 7B TDC A:4A1A X:45D9 Y:0084 P:envMxdizc $81/9783 BD 5F 00 LDA $005F,x[$7E:4638] A:0000 X:45D9 Y:0084 P:envMxdiZc $81/9786 F0 02 BEQ $02 [$978A] A:008E X:45D9 Y:0084 P:eNvMxdizc $81/9788 E6 01 INC $01 [$00:0001] A:008E X:45D9 Y:0084 P:eNvMxdizc $81/978A BB TYX A:008E X:45D9 Y:0084 P:envMxdizc $81/978B A0 00 00 LDY #$0000 A:008E X:0084 Y:0084 P:envMxdizc $81/978E A5 01 LDA $01 [$00:0001] A:008E X:0084 Y:0000 P:envMxdiZc $81/9790 48 PHA A:0009 X:0084 Y:0000 P:envMxdizc $81/9791 DA PHX A:0009 X:0084 Y:0000 P:envMxdizc $81/9792 A5 00 LDA $00 [$00:0000] A:0009 X:0084 Y:0000 P:envMxdizc $81/9794 48 PHA A:001A X:0084 Y:0000 P:envMxdizc $81/9795 C2 20 REP #$20 A:001A X:0084 Y:0000 P:envMxdizc $81/9797 BF 00 A8 7E LDA $7EA800,x[$7E:A884] A:001A X:0084 Y:0000 P:envmxdizc $81/979B 91 20 STA ($20),y[$7E:4A59] A:03EE X:0084 Y:0000 P:envmxdizc $81/979D E2 20 SEP #$20 A:03EE X:0084 Y:0000 P:envmxdizc $81/979F C8 INY A:03EE X:0084 Y:0000 P:envMxdizc $81/97A0 C8 INY A:03EE X:0084 Y:0001 P:envMxdizc $81/97A1 E8 INX A:03EE X:0084 Y:0002 P:envMxdizc $81/97A2 E8 INX A:03EE X:0085 Y:0002 P:envMxdizc $81/97A3 68 PLA A:03EE X:0086 Y:0002 P:envMxdizc $81/97A4 3A DEC A A:031A X:0086 Y:0002 P:envMxdizc $81/97A5 D0 ED BNE $ED [$9794] A:0319 X:0086 Y:0002 P:envMxdizc $81/97A7 C2 21 REP #$21 A:0300 X:00B8 Y:0034 P:envMxdiZc $81/97A9 68 PLA A:0300 X:00B8 Y:0034 P:envmxdiZc $81/97AA 69 40 00 ADC #$0040 A:0084 X:00B8 Y:0034 P:envmxdizc $81/97AD 29 FF 07 AND #$07FF A:00C4 X:00B8 Y:0034 P:envmxdizc $81/97B0 AA TAX A:00C4 X:00B8 Y:0034 P:envmxdizc $81/97B1 E2 20 SEP #$20 A:00C4 X:00C4 Y:0034 P:envmxdizc $81/97B3 68 PLA A:00C4 X:00C4 Y:0034 P:envMxdizc $81/97B4 3A DEC A A:0009 X:00C4 Y:0034 P:envMxdizc $81/97B5 D0 D9 BNE $D9 [$9790] A:0008 X:00C4 Y:0034 P:envMxdizc $81/97B7 FA PLX A:0200 X:02C4 Y:01D4 P:envMxdiZc $81/97B8 60 RTS A:0200 X:45D9 Y:01D4 P:envMxdizc
$81/97B9 ?
$81/97B9 DA PHX A:0001 X:45D9 Y:B12C P:enVMxdizC $81/97BA A6 D8 LDX $D8 [$00:00D8] A:0001 X:45D9 Y:B12C P:enVMxdizC $81/97BC 7B TDC A:0001 X:45D9 Y:B12C P:enVMxdizC $81/97BD BD 5F 00 LDA $005F,x[$7E:4638] A:0000 X:45D9 Y:B12C P:enVMxdiZC $81/97C0 F0 02 BEQ $02 [$97C4] A:008E X:45D9 Y:B12C P:eNVMxdizC $81/97C2 10 06 BPL $06 [$97CA] A:008E X:45D9 Y:B12C P:eNVMxdizC $81/97C4 BD 57 00 LDA $0057,x[$7E:4630] A:008E X:45D9 Y:B12C P:eNVMxdizC $81/97C7 3A DEC A A:0003 X:45D9 Y:B12C P:enVMxdizC $81/97C8 80 05 BRA $05 [$97CF] A:0002 X:45D9 Y:B12C P:enVMxdizC $81/97CA BD 57 00 LDA $0057,x[$7E:3970] A:0012 X:3919 Y:B12C P:enVMxdizC $81/97CD 3A DEC A A:0014 X:3919 Y:B12C P:enVMxdizC $81/97CE 3A DEC A A:0013 X:3919 Y:B12C P:enVMxdizC $81/97CF C2 20 REP #$20 A:0002 X:45D9 Y:B12C P:enVMxdizC $81/97D1 EB XBA A:0002 X:45D9 Y:B12C P:enVmxdizC $81/97D2 4A LSR A A:0200 X:45D9 Y:B12C P:enVmxdiZC $81/97D3 4A LSR A A:0100 X:45D9 Y:B12C P:enVmxdizc $81/97D4 7D 55 00 ADC $0055,x[$7E:462E] A:0080 X:45D9 Y:B12C P:enVmxdizc $81/97D7 7D 55 00 ADC $0055,x[$7E:462E] A:0083 X:45D9 Y:B12C P:envmxdizc $81/97DA 3A DEC A A:0086 X:45D9 Y:B12C P:envmxdizc $81/97DB 3A DEC A A:0085 X:45D9 Y:B12C P:envmxdizc $81/97DC A8 TAY A:0084 X:45D9 Y:B12C P:envmxdizc $81/97DD BD 4B 00 LDA $004B,x[$7E:4624] A:0084 X:45D9 Y:0084 P:envmxdizc $81/97E0 85 20 STA $20 [$00:0020] A:4A59 X:45D9 Y:0084 P:envmxdizc $81/97E2 E2 20 SEP #$20 A:4A59 X:45D9 Y:0084 P:envmxdizc $81/97E4 BD 5B 00 LDA $005B,x[$7E:4634] A:4A59 X:45D9 Y:0084 P:envMxdizc $81/97E7 1A INC A A:4A06 X:45D9 Y:0084 P:envMxdizc $81/97E8 1A INC A A:4A07 X:45D9 Y:0084 P:envMxdizc $81/97E9 85 01 STA $01 [$00:0001] A:4A08 X:45D9 Y:0084 P:envMxdizc $81/97EB BD 59 00 LDA $0059,x[$7E:4632] A:4A08 X:45D9 Y:0084 P:envMxdizc $81/97EE 1A INC A A:4A18 X:45D9 Y:0084 P:envMxdizc $81/97EF 1A INC A A:4A19 X:45D9 Y:0084 P:envMxdizc $81/97F0 85 00 STA $00 [$00:0000] A:4A1A X:45D9 Y:0084 P:envMxdizc $81/97F2 BD 5F 00 LDA $005F,x[$7E:4638] A:4A1A X:45D9 Y:0084 P:envMxdizc $81/97F5 F0 02 BEQ $02 [$97F9] A:4A8E X:45D9 Y:0084 P:eNvMxdizc $81/97F7 E6 01 INC $01 [$00:0001] A:4A8E X:45D9 Y:0084 P:eNvMxdizc $81/97F9 BB TYX A:4A8E X:45D9 Y:0084 P:envMxdizc $81/97FA A0 00 00 LDY #$0000 A:4A8E X:0084 Y:0084 P:envMxdizc $81/97FD A5 01 LDA $01 [$00:0001] A:4A8E X:0084 Y:0000 P:envMxdiZc $81/97FF 48 PHA A:4A09 X:0084 Y:0000 P:envMxdizc $81/9800 DA PHX A:4A09 X:0084 Y:0000 P:envMxdizc $81/9801 A5 00 LDA $00 [$00:0000] A:4A09 X:0084 Y:0000 P:envMxdizc $81/9803 48 PHA A:4A1A X:0084 Y:0000 P:envMxdizc $81/9804 C2 20 REP #$20 A:4A1A X:0084 Y:0000 P:envMxdizc $81/9806 B1 20 LDA ($20),y[$7E:4A59] A:4A1A X:0084 Y:0000 P:envmxdizc $81/9808 9F 00 A8 7E STA $7EA800,x[$7E:A884] A:03EE X:0084 Y:0000 P:envmxdizc $81/980C E2 20 SEP #$20 A:03EE X:0084 Y:0000 P:envmxdizc $81/980E E8 INX A:03EE X:0084 Y:0000 P:envMxdizc $81/980F E8 INX A:03EE X:0085 Y:0000 P:envMxdizc $81/9810 C8 INY A:03EE X:0086 Y:0000 P:envMxdizc $81/9811 C8 INY A:03EE X:0086 Y:0001 P:envMxdizc $81/9812 68 PLA A:03EE X:0086 Y:0002 P:envMxdizc $81/9813 3A DEC A A:031A X:0086 Y:0002 P:envMxdizc $81/9814 D0 ED BNE $ED [$9803] A:0319 X:0086 Y:0002 P:envMxdizc $81/9816 C2 21 REP #$21 A:0300 X:00B8 Y:0034 P:envMxdiZc $81/9818 68 PLA A:0300 X:00B8 Y:0034 P:envmxdiZc $81/9819 69 40 00 ADC #$0040 A:0084 X:00B8 Y:0034 P:envmxdizc $81/981C 29 FF 07 AND #$07FF A:00C4 X:00B8 Y:0034 P:envmxdizc $81/981F AA TAX A:00C4 X:00B8 Y:0034 P:envmxdizc $81/9820 E2 20 SEP #$20 A:00C4 X:00C4 Y:0034 P:envmxdizc $81/9822 68 PLA A:00C4 X:00C4 Y:0034 P:envMxdizc $81/9823 3A DEC A A:0009 X:00C4 Y:0034 P:envMxdizc $81/9824 D0 D9 BNE $D9 [$97FF] A:0008 X:00C4 Y:0034 P:envMxdizc $81/9826 FA PLX A:0200 X:02C4 Y:01D4 P:envMxdiZc $81/9827 60 RTS A:0200 X:45D9 Y:01D4 P:envMxdizc
$81/9828 ?
$81/9828 DA PHX A:0000 X:45D9 Y:45D9 P:envMxdiZC $81/9829 A6 D8 LDX $D8 [$00:00D8] A:0000 X:45D9 Y:45D9 P:envMxdiZC $81/982B C2 20 REP #$20 A:0000 X:45D9 Y:45D9 P:envMxdizC $81/982D BD 57 00 LDA $0057,x[$7E:4630] A:0000 X:45D9 Y:45D9 P:envmxdizC $81/9830 3A DEC A A:0003 X:45D9 Y:45D9 P:envmxdizC $81/9831 EB XBA A:0002 X:45D9 Y:45D9 P:envmxdizC $81/9832 4A LSR A A:0200 X:45D9 Y:45D9 P:envmxdiZC $81/9833 4A LSR A A:0100 X:45D9 Y:45D9 P:envmxdizc $81/9834 7D 55 00 ADC $0055,x[$7E:462E] A:0080 X:45D9 Y:45D9 P:envmxdizc $81/9837 7D 55 00 ADC $0055,x[$7E:462E] A:0083 X:45D9 Y:45D9 P:envmxdizc $81/983A 3A DEC A A:0086 X:45D9 Y:45D9 P:envmxdizc $81/983B 3A DEC A A:0085 X:45D9 Y:45D9 P:envmxdizc $81/983C AA TAX A:0084 X:45D9 Y:45D9 P:envmxdizc $81/983D A4 D8 LDY $D8 [$00:00D8] A:0084 X:0084 Y:45D9 P:envmxdizc $81/983F B9 59 00 LDA $0059,y[$7E:4632] A:0084 X:0084 Y:45D9 P:envmxdizc $81/9842 1A INC A A:0018 X:0084 Y:45D9 P:envmxdizc $81/9843 1A INC A A:0019 X:0084 Y:45D9 P:envmxdizc $81/9844 85 04 STA $04 [$00:0004] A:001A X:0084 Y:45D9 P:envmxdizc $81/9846 B9 5B 00 LDA $005B,y[$7E:4634] A:001A X:0084 Y:45D9 P:envmxdizc $81/9849 1A INC A A:0006 X:0084 Y:45D9 P:envmxdizc $81/984A 1A INC A A:0007 X:0084 Y:45D9 P:envmxdizc $81/984B 85 00 STA $00 [$00:0000] A:0008 X:0084 Y:45D9 P:envmxdizc $81/984D 85 02 STA $02 [$00:0002] A:0008 X:0084 Y:45D9 P:envmxdizc $81/984F B9 49 00 LDA $0049,y[$7E:4622] A:0008 X:0084 Y:45D9 P:envmxdizc $81/9852 85 20 STA $20 [$00:0020] A:4819 X:0084 Y:45D9 P:envmxdizc $81/9854 A0 00 00 LDY #$0000 A:4819 X:0084 Y:45D9 P:envmxdizc $81/9857 A5 04 LDA $04 [$00:0004] A:4819 X:0084 Y:0000 P:envmxdiZc $81/9859 85 06 STA $06 [$00:0006] A:001A X:0084 Y:0000 P:envmxdizc $81/985B DA PHX A:001A X:0084 Y:0000 P:envmxdizc $81/985C B1 20 LDA ($20),y[$7E:4819] A:001A X:0084 Y:0000 P:envmxdizc $81/985E 9F 00 E0 7F STA $7FE000,x[$7F:E084] A:0280 X:0084 Y:0000 P:envmxdizc $81/9862 C8 INY A:0280 X:0084 Y:0000 P:envmxdizc $81/9863 C8 INY A:0280 X:0084 Y:0001 P:envmxdizc $81/9864 E8 INX A:0280 X:0084 Y:0002 P:envmxdizc $81/9865 E8 INX A:0280 X:0085 Y:0002 P:envmxdizc $81/9866 C6 06 DEC $06 [$00:0006] A:0280 X:0086 Y:0002 P:envmxdizc $81/9868 D0 F2 BNE $F2 [$985C] A:0280 X:0086 Y:0002 P:envmxdizc $81/986A 68 PLA A:30A9 X:00B8 Y:0034 P:envmxdiZc $81/986B 18 CLC A:0084 X:00B8 Y:0034 P:envmxdizc $81/986C 69 40 00 ADC #$0040 A:0084 X:00B8 Y:0034 P:envmxdizc $81/986F 29 FF 07 AND #$07FF A:00C4 X:00B8 Y:0034 P:envmxdizc $81/9872 AA TAX A:00C4 X:00B8 Y:0034 P:envmxdizc $81/9873 C6 02 DEC $02 [$00:0002] A:00C4 X:00C4 Y:0034 P:envmxdizc $81/9875 D0 E0 BNE $E0 [$9857] A:00C4 X:00C4 Y:0034 P:envmxdizc $81/9877 E2 20 SEP #$20 A:0284 X:0284 Y:01A0 P:envmxdiZc $81/9879 FA PLX A:0284 X:0284 Y:01A0 P:envMxdiZc $81/987A 60 RTS A:0284 X:45D9 Y:01A0 P:envMxdizc
$81/9895 ?
$81/9895 D4 02 PEI ($02) ; Buffer $02-$07 on Stack $81/9897 D4 04 PEI ($04) $81/9899 D4 06 PEI ($06) $81/989B D4 23 PEI ($23) ; Buffer $23-$26 on Stack $81/989D D4 25 PEI ($25) $81/989F A6 D8 LDX $D8 [$00:00D8] A:00FF X:45D9 Y:001E P:envMxdiZC $81/98A1 A0 00 2C LDY #$2C00 A:00FF X:45D9 Y:001E P:envMxdizC $81/98A4 BD 39 02 LDA $0239,x[$7E:4812] A:00FF X:45D9 Y:2C00 P:envMxdizC $81/98A7 F0 03 BEQ $03 [$98AC] A:0000 X:45D9 Y:2C00 P:envMxdiZC
- code is missing here
$81/98AC 84 04 STY $04 [$00:0004] A:0000 X:45D9 Y:2C00 P:envMxdiZC $81/98AE C2 20 REP #$20 A:0000 X:45D9 Y:2C00 P:envMxdiZC $81/98B0 BD 57 00 LDA $0057,x[$7E:4630] A:0000 X:45D9 Y:2C00 P:envmxdiZC $81/98B3 3A DEC A A:0003 X:45D9 Y:2C00 P:envmxdizC $81/98B4 EB XBA A:0002 X:45D9 Y:2C00 P:envmxdizC $81/98B5 4A LSR A A:0200 X:45D9 Y:2C00 P:envmxdiZC $81/98B6 4A LSR A A:0100 X:45D9 Y:2C00 P:envmxdizc $81/98B7 7D 55 00 ADC $0055,x[$7E:462E] A:0080 X:45D9 Y:2C00 P:envmxdizc $81/98BA 7D 55 00 ADC $0055,x[$7E:462E] A:0083 X:45D9 Y:2C00 P:envmxdizc $81/98BD 3A DEC A A:0086 X:45D9 Y:2C00 P:envmxdizc $81/98BE 3A DEC A A:0085 X:45D9 Y:2C00 P:envmxdizc $81/98BF A8 TAY A:0084 X:45D9 Y:2C00 P:envmxdizc $81/98C0 BD 59 00 LDA $0059,x[$7E:4632] A:0084 X:45D9 Y:0084 P:envmxdizc $81/98C3 85 0E STA $0E [$00:000E] A:0018 X:45D9 Y:0084 P:envmxdizc $81/98C5 BD 6A 00 LDA $006A,x[$7E:4643] A:0018 X:45D9 Y:0084 P:envmxdizc $81/98C8 05 04 ORA $04 [$00:0004] A:03C0 X:45D9 Y:0084 P:envmxdizc $81/98CA 85 23 STA $23 [$00:0023] A:2FC0 X:45D9 Y:0084 P:envmxdizc $81/98CC E2 20 SEP #$20 A:2FC0 X:45D9 Y:0084 P:envmxdizc $81/98CE A2 00 A8 LDX #$A800 A:2FC0 X:45D9 Y:0084 P:envMxdizc $81/98D1 86 26 STX $26 [$00:0026] A:2FC0 X:A800 Y:0084 P:eNvMxdizc $81/98D3 A9 7E LDA #$7E A:2FC0 X:A800 Y:0084 P:eNvMxdizc $81/98D5 85 28 STA $28 [$00:0028] A:2F7E X:A800 Y:0084 P:envMxdizc $81/98D7 A6 D8 LDX $D8 [$00:00D8] A:2F7E X:A800 Y:0084 P:envMxdizc $81/98D9 7B TDC A:2F7E X:45D9 Y:0084 P:envMxdizc $81/98DA BD 4F 00 LDA $004F,x[$7E:4628] A:0000 X:45D9 Y:0084 P:envMxdiZc $81/98DD 0A ASL A A:0000 X:45D9 Y:0084 P:envMxdiZc $81/98DE AA TAX A:0000 X:45D9 Y:0084 P:envMxdiZc $81/98DF 7C E2 98 JMP ($98E2,x)[$81:992D] A:0000 X:0000 Y:0084 P:envMxdiZc
$81/98E2 ? Address list for the subroutine above
$81/98E2 2D 99 $81/98E4 FA 98 $81/98E6 FF 98 $81/98E8 04 99 $81/98EA 2D 99 $81/98EC 2D 99 $81/98EE 2D 99 $81/98F0 2D 99 $81/98F2 2D 99 $81/98F4 2D 99 $81/98F6 2D 99 $81/98F8 2D 99
$81/992D ?
$81/992D C2 21 REP #$21 A:0000 X:0000 Y:0084 P:envMxdiZc $81/992F A5 23 LDA $23 [$00:0023] A:0000 X:0000 Y:0084 P:envmxdiZc $81/9931 97 26 STA [$26],y[$7E:A884] A:2FC0 X:0000 Y:0084 P:envmxdizc $81/9933 C8 INY A:2FC0 X:0000 Y:0084 P:envmxdizc $81/9934 C8 INY A:2FC0 X:0000 Y:0085 P:envmxdizc $81/9935 1A INC A A:2FC0 X:0000 Y:0086 P:envmxdizc $81/9936 97 26 STA [$26],y[$7E:A886] A:2FC1 X:0000 Y:0086 P:envmxdizc $81/9938 C8 INY A:2FC1 X:0000 Y:0086 P:envmxdizc $81/9939 C8 INY A:2FC1 X:0000 Y:0087 P:envmxdizc $81/993A C6 0E DEC $0E [$00:000E] A:2FC1 X:0000 Y:0088 P:envmxdizc $81/993C D0 F8 BNE $F8 [$9936] A:2FC1 X:0000 Y:0088 P:envmxdizc $81/993E 1A INC A A:2FC1 X:0000 Y:00B6 P:envmxdiZc $81/993F 97 26 STA [$26],y[$7E:A8B6] A:2FC2 X:0000 Y:00B6 P:envmxdizc $81/9941 A6 D8 LDX $D8 [$00:00D8] A:2FC2 X:0000 Y:00B6 P:envmxdizc $81/9943 85 23 STA $23 [$00:0023] A:2FC2 X:45D9 Y:00B6 P:envmxdizc $81/9945 BD 57 00 LDA $0057,x[$7E:4630] A:2FC2 X:45D9 Y:00B6 P:envmxdizc $81/9948 18 CLC A:0003 X:45D9 Y:00B6 P:envmxdizc $81/9949 7D 5B 00 ADC $005B,x[$7E:4634] A:0003 X:45D9 Y:00B6 P:envmxdizc $81/994C EB XBA A:0009 X:45D9 Y:00B6 P:envmxdizc $81/994D 4A LSR A A:0900 X:45D9 Y:00B6 P:envmxdiZc $81/994E 4A LSR A A:0480 X:45D9 Y:00B6 P:envmxdizc $81/994F 7D 55 00 ADC $0055,x[$7E:462E] A:0240 X:45D9 Y:00B6 P:envmxdizc $81/9952 7D 55 00 ADC $0055,x[$7E:462E] A:0243 X:45D9 Y:00B6 P:envmxdizc $81/9955 3A DEC A A:0246 X:45D9 Y:00B6 P:envmxdizc $81/9956 3A DEC A A:0245 X:45D9 Y:00B6 P:envmxdizc $81/9957 A8 TAY A:0244 X:45D9 Y:00B6 P:envmxdizc $81/9958 BD 59 00 LDA $0059,x[$7E:4632] A:0244 X:45D9 Y:0244 P:envmxdizc $81/995B 85 0E STA $0E [$00:000E] A:0018 X:45D9 Y:0244 P:envmxdizc $81/995D A5 23 LDA $23 [$00:0023] A:0018 X:45D9 Y:0244 P:envmxdizc $81/995F 1A INC A A:2FC2 X:45D9 Y:0244 P:envmxdizc $81/9960 97 26 STA [$26],y[$7E:AA44] A:2FC3 X:45D9 Y:0244 P:envmxdizc $81/9962 C8 INY A:2FC3 X:45D9 Y:0244 P:envmxdizc $81/9963 C8 INY A:2FC3 X:45D9 Y:0245 P:envmxdizc $81/9964 1A INC A A:2FC3 X:45D9 Y:0246 P:envmxdizc $81/9965 97 26 STA [$26],y[$7E:AA46] A:2FC4 X:45D9 Y:0246 P:envmxdizc $81/9967 C8 INY A:2FC4 X:45D9 Y:0246 P:envmxdizc $81/9968 C8 INY A:2FC4 X:45D9 Y:0247 P:envmxdizc $81/9969 C6 0E DEC $0E [$00:000E] A:2FC4 X:45D9 Y:0248 P:envmxdizc $81/996B D0 F8 BNE $F8 [$9965] A:2FC4 X:45D9 Y:0248 P:envmxdizc $81/996D 1A INC A A:2FC4 X:45D9 Y:0276 P:envmxdiZc $81/996E 97 26 STA [$26],y[$7E:AA76] A:2FC5 X:45D9 Y:0276 P:envmxdizc $81/9970 64 23 STZ $23 [$00:0023] A:2FC5 X:45D9 Y:0276 P:envmxdizc $81/9972 E2 20 SEP #$20 A:2FC5 X:45D9 Y:0276 P:envmxdizc $81/9974 64 21 STZ $21 [$00:0021] A:2FC5 X:45D9 Y:0276 P:envMxdizc $81/9976 BD 5F 00 LDA $005F,x[$7E:4638] A:2FC5 X:45D9 Y:0276 P:envMxdizc $81/9979 D0 03 BNE $03 [$997E] A:2F8E X:45D9 Y:0276 P:eNvMxdizc
- code is missing here
$81/997E 89 40 BIT #$40 A:2F8E X:45D9 Y:0276 P:eNvMxdizc $81/9980 F0 04 BEQ $04 [$9986] A:2F8E X:45D9 Y:0276 P:eNvMxdiZc $81/9986 BD 5F 00 LDA $005F,x[$7E:4638] A:2F8E X:45D9 Y:0276 P:eNvMxdiZc $81/9989 29 1F AND #$1F A:2F8E X:45D9 Y:0276 P:eNvMxdizc $81/998B 0A ASL A A:2F0E X:45D9 Y:0276 P:envMxdizc $81/998C 85 20 STA $20 [$00:0020] A:2F1C X:45D9 Y:0276 P:envMxdizc $81/998E BD 5F 00 LDA $005F,x[$7E:4638] A:2F1C X:45D9 Y:0276 P:envMxdizc $81/9991 C2 21 REP #$21 A:2F8E X:45D9 Y:0276 P:eNvMxdizc $81/9993 30 24 BMI $24 [$99B9] A:2F8E X:45D9 Y:0276 P:eNvmxdizc $81/9995 BD 57 00 LDA $0057,x[$7E:3970] A:2F12 X:3919 Y:06BA P:envmxdizc $81/9998 3A DEC A A:0014 X:3919 Y:06BA P:envmxdizc $81/9999 3A DEC A A:0013 X:3919 Y:06BA P:envmxdizc $81/999A EB XBA A:0012 X:3919 Y:06BA P:envmxdizc $81/999B 4A LSR A A:1200 X:3919 Y:06BA P:envmxdiZc $81/999C 4A LSR A A:0900 X:3919 Y:06BA P:envmxdizc $81/999D 65 20 ADC $20 [$00:0020] A:0480 X:3919 Y:06BA P:envmxdizc $81/999F A8 TAY A:04A4 X:3919 Y:06BA P:envmxdizc $81/99A0 A9 CC 03 LDA #$03CC A:04A4 X:3919 Y:04A4 P:envmxdizc $81/99A3 05 04 ORA $04 [$00:0004] A:03CC X:3919 Y:04A4 P:envmxdizc $81/99A5 97 26 STA [$26],y[$7E:ACA4] A:2FCC X:3919 Y:04A4 P:envmxdizc $81/99A7 98 TYA A:2FCC X:3919 Y:04A4 P:envmxdizc $81/99A8 18 CLC A:04A4 X:3919 Y:04A4 P:envmxdizc $81/99A9 69 40 00 ADC #$0040 A:04A4 X:3919 Y:04A4 P:envmxdizc $81/99AC 29 FF 07 AND #$07FF A:04E4 X:3919 Y:04A4 P:envmxdizc $81/99AF A8 TAY A:04E4 X:3919 Y:04A4 P:envmxdizc $81/99B0 A9 CD 03 LDA #$03CD A:04E4 X:3919 Y:04E4 P:envmxdizc $81/99B3 05 04 ORA $04 [$00:0004] A:03CD X:3919 Y:04E4 P:envmxdizc $81/99B5 97 26 STA [$26],y[$7E:ACE4] A:2FCD X:3919 Y:04E4 P:envmxdizc $81/99B7 80 23 BRA $23 [$99DC] A:2FCD X:3919 Y:04E4 P:envmxdizc $81/99B9 BD 57 00 LDA $0057,x[$7E:4630] A:2F8E X:45D9 Y:0276 P:eNvmxdizc $81/99BC 7D 5B 00 ADC $005B,x[$7E:4634] A:0003 X:45D9 Y:0276 P:envmxdizc $81/99BF EB XBA A:0009 X:45D9 Y:0276 P:envmxdizc $81/99C0 4A LSR A A:0900 X:45D9 Y:0276 P:envmxdiZc $81/99C1 4A LSR A A:0480 X:45D9 Y:0276 P:envmxdizc $81/99C2 65 20 ADC $20 [$00:0020] A:0240 X:45D9 Y:0276 P:envmxdizc $81/99C4 A8 TAY A:025C X:45D9 Y:0276 P:envmxdizc $81/99C5 A9 CA 03 LDA #$03CA A:025C X:45D9 Y:025C P:envmxdizc $81/99C8 05 04 ORA $04 [$00:0004] A:03CA X:45D9 Y:025C P:envmxdizc $81/99CA 97 26 STA [$26],y[$7E:AA5C] A:2FCA X:45D9 Y:025C P:envmxdizc $81/99CC 98 TYA A:2FCA X:45D9 Y:025C P:envmxdizc $81/99CD 18 CLC A:025C X:45D9 Y:025C P:envmxdizc $81/99CE 69 40 00 ADC #$0040 A:025C X:45D9 Y:025C P:envmxdizc $81/99D1 29 FF 07 AND #$07FF A:029C X:45D9 Y:025C P:envmxdizc $81/99D4 A8 TAY A:029C X:45D9 Y:025C P:envmxdizc $81/99D5 A9 CB 03 LDA #$03CB A:029C X:45D9 Y:029C P:envmxdizc $81/99D8 05 04 ORA $04 [$00:0004] A:03CB X:45D9 Y:029C P:envmxdizc $81/99DA 97 26 STA [$26],y[$7E:AA9C] A:2FCB X:45D9 Y:029C P:envmxdizc $81/99DC E2 20 SEP #$20 A:2FCB X:45D9 Y:029C P:envmxdizc $81/99DE A6 D8 LDX $D8 [$00:00D8] A:2FCB X:45D9 Y:029C P:envMxdizc $81/99E0 A0 00 A8 LDY #$A800 A:2FCB X:45D9 Y:029C P:envMxdizc $81/99E3 84 23 STY $23 [$00:0023] A:2FCB X:45D9 Y:A800 P:eNvMxdizc $81/99E5 A9 7E LDA #$7E A:2FCB X:45D9 Y:A800 P:eNvMxdizc $81/99E7 85 25 STA $25 [$00:0025] A:2F7E X:45D9 Y:A800 P:envMxdizc $81/99E9 AC 9B 05 LDY $059B [$7E:059B] A:2F7E X:45D9 Y:A800 P:envMxdizc $81/99EC 84 02 STY $02 [$00:0002] A:2F7E X:45D9 Y:0000 P:envMxdiZc $81/99EE C2 21 REP #$21 A:2F7E X:45D9 Y:0000 P:envMxdiZc $81/99F0 BD 6A 00 LDA $006A,x[$7E:4643] A:2F7E X:45D9 Y:0000 P:envmxdiZc $81/99F3 69 06 00 ADC #$0006 A:03C0 X:45D9 Y:0000 P:envmxdizc $81/99F6 85 04 STA $04 [$00:0004] A:03C6 X:45D9 Y:0000 P:envmxdizc $81/99F8 A0 00 2C LDY #$2C00 A:03C6 X:45D9 Y:0000 P:envmxdizc $81/99FB BD 39 02 LDA $0239,x[$7E:4812] A:03C6 X:45D9 Y:2C00 P:envmxdizc $81/99FE 29 FF 00 AND #$00FF A:0000 X:45D9 Y:2C00 P:envmxdiZc $81/9A01 F0 03 BEQ $03 [$9A06] A:0000 X:45D9 Y:2C00 P:envmxdiZc
- code is missing here
$81/9A06 98 TYA A:0000 X:45D9 Y:2C00 P:envmxdiZc $81/9A07 05 04 ORA $04 [$00:0004] A:2C00 X:45D9 Y:2C00 P:envmxdizc $81/9A09 85 04 STA $04 [$00:0004] A:2FC6 X:45D9 Y:2C00 P:envmxdizc $81/9A0B BD 57 00 LDA $0057,x[$7E:4630] A:2FC6 X:45D9 Y:2C00 P:envmxdizc $81/9A0E EB XBA A:0003 X:45D9 Y:2C00 P:envmxdizc $81/9A0F 4A LSR A A:0300 X:45D9 Y:2C00 P:envmxdiZc $81/9A10 4A LSR A A:0180 X:45D9 Y:2C00 P:envmxdizc $81/9A11 7D 55 00 ADC $0055,x[$7E:462E] A:00C0 X:45D9 Y:2C00 P:envmxdizc $81/9A14 7D 55 00 ADC $0055,x[$7E:462E] A:00C3 X:45D9 Y:2C00 P:envmxdizc $81/9A17 3A DEC A A:00C6 X:45D9 Y:2C00 P:envmxdizc $81/9A18 3A DEC A A:00C5 X:45D9 Y:2C00 P:envmxdizc $81/9A19 A8 TAY A:00C4 X:45D9 Y:2C00 P:envmxdizc $81/9A1A 5A PHY A:00C4 X:45D9 Y:00C4 P:envmxdizc $81/9A1B BD 5B 00 LDA $005B,x[$7E:4634] A:00C4 X:45D9 Y:00C4 P:envmxdizc $81/9A1E 85 02 STA $02 [$00:0002] A:0006 X:45D9 Y:00C4 P:envmxdizc $81/9A20 A5 04 LDA $04 [$00:0004] A:0006 X:45D9 Y:00C4 P:envmxdizc $81/9A22 97 23 STA [$23],y[$7E:A8C4] A:2FC6 X:45D9 Y:00C4 P:envmxdizc $81/9A24 98 TYA A:2FC6 X:45D9 Y:00C4 P:envmxdizc $81/9A25 18 CLC A:00C4 X:45D9 Y:00C4 P:envmxdizc $81/9A26 69 40 00 ADC #$0040 A:00C4 X:45D9 Y:00C4 P:envmxdizc $81/9A29 29 FF 07 AND #$07FF A:0104 X:45D9 Y:00C4 P:envmxdizc $81/9A2C A8 TAY A:0104 X:45D9 Y:00C4 P:envmxdizc $81/9A2D C6 02 DEC $02 [$00:0002] A:0104 X:45D9 Y:0104 P:envmxdizc $81/9A2F D0 EF BNE $EF [$9A20] A:0104 X:45D9 Y:0104 P:envmxdizc $81/9A31 7A PLY A:0244 X:45D9 Y:0244 P:envmxdiZc $81/9A32 E6 04 INC $04 [$00:0004] A:0244 X:45D9 Y:00C4 P:envmxdizc $81/9A34 98 TYA A:0244 X:45D9 Y:00C4 P:envmxdizc $81/9A35 18 CLC A:00C4 X:45D9 Y:00C4 P:envmxdizc $81/9A36 7D 59 00 ADC $0059,x[$7E:4632] A:00C4 X:45D9 Y:00C4 P:envmxdizc $81/9A39 7D 59 00 ADC $0059,x[$7E:4632] A:00DC X:45D9 Y:00C4 P:envmxdizc $81/9A3C 1A INC A A:00F4 X:45D9 Y:00C4 P:envmxdizc $81/9A3D 1A INC A A:00F5 X:45D9 Y:00C4 P:envmxdizc $81/9A3E A8 TAY A:00F6 X:45D9 Y:00C4 P:envmxdizc $81/9A3F BD 5B 00 LDA $005B,x[$7E:4634] A:00F6 X:45D9 Y:00F6 P:envmxdizc $81/9A42 85 02 STA $02 [$00:0002] A:0006 X:45D9 Y:00F6 P:envmxdizc $81/9A44 A5 04 LDA $04 [$00:0004] A:0006 X:45D9 Y:00F6 P:envmxdizc $81/9A46 97 26 STA [$26],y[$7E:A8F6] A:2FC7 X:45D9 Y:00F6 P:envmxdizc $81/9A48 98 TYA A:2FC7 X:45D9 Y:00F6 P:envmxdizc $81/9A49 18 CLC A:00F6 X:45D9 Y:00F6 P:envmxdizc $81/9A4A 69 40 00 ADC #$0040 A:00F6 X:45D9 Y:00F6 P:envmxdizc $81/9A4D 29 FF 07 AND #$07FF A:0136 X:45D9 Y:00F6 P:envmxdizc $81/9A50 A8 TAY A:0136 X:45D9 Y:00F6 P:envmxdizc $81/9A51 C6 02 DEC $02 [$00:0002] A:0136 X:45D9 Y:0136 P:envmxdizc $81/9A53 D0 EF BNE $EF [$9A44] A:0136 X:45D9 Y:0136 P:envmxdizc $81/9A55 E2 20 SEP #$20 ; A = 8-bit $81/9A57 7A PLY ; Restore $23-$26 from Stack $81/9A58 84 25 STY $25 $81/9A5A 7A PLY $81/9A5B 84 23 STY $23 $81/9A5D 7A PLY ; Restore $02-$07 from Stack $81/9A5E 84 06 STY $06 $81/9A60 7A PLY $81/9A61 84 04 STY $04 $81/9A63 7A PLY $81/9A64 84 02 STY $02 $81/9A66 60 RTS
$81/9A67 ?
$81/9A67 D4 02 PEI ($02) ; Buffer $02-$07 on Stack $81/9A69 D4 04 PEI ($04) $81/9A6B D4 06 PEI ($06) $81/9A6D A6 D8 LDX $D8 [$00:00D8] A:0276 X:45D9 Y:0542 P:envMxdizc $81/9A6F A5 A5 LDA $A5 [$00:00A5] A:0276 X:45D9 Y:0542 P:envMxdizc $81/9A71 89 02 BIT #$02 A:020C X:45D9 Y:0542 P:envMxdizc $81/9A73 F0 0F BEQ $0F [$9A84] A:020C X:45D9 Y:0542 P:envMxdiZc $81/9A84 A5 A5 LDA $A5 [$00:00A5] A:020C X:45D9 Y:0542 P:envMxdiZc $81/9A86 89 01 BIT #$01 A:020C X:45D9 Y:0542 P:envMxdizc $81/9A88 F0 0F BEQ $0F [$9A99] A:020C X:45D9 Y:0542 P:envMxdiZc $81/9A99 A5 A4 LDA $A4 [$00:00A4] A:020C X:45D9 Y:0542 P:envMxdiZc $81/9A9B 89 04 BIT #$04 A:0203 X:45D9 Y:0542 P:envMxdizc $81/9A9D D0 0F BNE $0F [$9AAE] A:0203 X:45D9 Y:0542 P:envMxdiZc $81/9A9F A0 1E 23 LDY #$231E A:0203 X:45D9 Y:0542 P:envMxdiZc $81/9AA2 BD 39 02 LDA $0239,x[$7E:4812] A:0203 X:45D9 Y:231E P:envMxdizc $81/9AA5 C9 01 CMP #$01 A:0200 X:45D9 Y:231E P:envMxdiZc $81/9AA7 D0 12 BNE $12 [$9ABB] A:0200 X:45D9 Y:231E P:eNvMxdizc $81/9ABB 84 06 STY $06 [$00:0006] A:0200 X:45D9 Y:231E P:eNvMxdizc $81/9ABD BD 55 00 LDA $0055,x[$7E:462E] A:0200 X:45D9 Y:231E P:eNvMxdizc $81/9AC0 85 02 STA $02 [$00:0002] A:0203 X:45D9 Y:231E P:envMxdizc $81/9AC2 BD 57 00 LDA $0057,x[$7E:4630] A:0203 X:45D9 Y:231E P:envMxdizc $81/9AC5 85 03 STA $03 [$00:0003] A:0203 X:45D9 Y:231E P:envMxdizc $81/9AC7 BD 59 00 LDA $0059,x[$7E:4632] A:0203 X:45D9 Y:231E P:envMxdizc $81/9ACA 85 04 STA $04 [$00:0004] A:0218 X:45D9 Y:231E P:envMxdizc $81/9ACC BD 5B 00 LDA $005B,x[$7E:4634] A:0218 X:45D9 Y:231E P:envMxdizc $81/9ACF 85 05 STA $05 [$00:0005] A:0206 X:45D9 Y:231E P:envMxdizc $81/9AD1 A4 06 LDY $06 [$00:0006] A:0206 X:45D9 Y:231E P:envMxdizc $81/9AD3 A2 00 E0 LDX #$E000 A:0206 X:45D9 Y:231E P:envMxdizc $81/9AD6 A9 7F LDA #$7F A:0206 X:E000 Y:231E P:eNvMxdizc $81/9AD8 22 96 D2 81 JSL $81D296[$81:D296] A:027F X:E000 Y:231E P:envMxdizc $81/9ADC 7A PLY ; Restore $02-$07 from Stack $81/9ADD 84 06 STY $06 $81/9ADF 7A PLY $81/9AE0 84 04 STY $04 $81/9AE2 7A PLY $81/9AE3 84 02 STY $02 $81/9AE5 A6 D8 LDX $D8 [$00:00D8] A:0000 X:E000 Y:0542 P:envMxdizc $81/9AE7 60 RTS A:0000 X:45D9 Y:0542 P:envMxdizc
$81/9B57 ?
$81/9B57 AD 8B 05 LDA $058B [$7E:058B] A:0003 X:45D9 Y:B10F P:envMxdizC $81/9B5A 85 09 STA $09 [$00:0009] A:0054 X:45D9 Y:B10F P:envMxdizC $81/9B5C 64 08 STZ $08 [$00:0008] A:0054 X:45D9 Y:B10F P:envMxdizC $81/9B5E A0 00 E0 LDY #$E000 A:0054 X:45D9 Y:B10F P:envMxdizC $81/9B61 84 0A STY $0A [$00:000A] A:0054 X:45D9 Y:E000 P:eNvMxdizC $81/9B63 A9 7F LDA #$7F A:0054 X:45D9 Y:E000 P:eNvMxdizC $81/9B65 85 0F STA $0F [$00:000F] A:007F X:45D9 Y:E000 P:envMxdizC $81/9B67 AC 93 05 LDY $0593 [$7E:0593] A:007F X:45D9 Y:E000 P:envMxdizC $81/9B6A 84 06 STY $06 [$00:0006] A:007F X:45D9 Y:0000 P:envMxdiZC $81/9B6C 20 25 9C JSR $9C25 [$81:9C25] A:007F X:45D9 Y:0000 P:envMxdiZC $81/9B6F A6 D8 LDX $D8 [$00:00D8] A:E07F X:E000 Y:5400 P:eNvMxdizc $81/9B71 60 RTS A:E07F X:45D9 Y:5400 P:envMxdizc
$81/9BD8 ?
$81/9BD8 A6 D8 LDX $D8 [$00:00D8] A:580F X:3919 Y:3919 P:envMxdizC $81/9BDA BD 55 00 LDA $0055,x[$7E:396E] A:580F X:3919 Y:3919 P:envMxdizC $81/9BDD 3A DEC A A:5805 X:3919 Y:3919 P:envMxdizC $81/9BDE 85 00 STA $00 [$00:0000] A:5804 X:3919 Y:3919 P:envMxdizC $81/9BE0 64 01 STZ $01 [$00:0001] A:5804 X:3919 Y:3919 P:envMxdizC $81/9BE2 BD 59 00 LDA $0059,x[$7E:3972] A:5804 X:3919 Y:3919 P:envMxdizC $81/9BE5 1A INC A A:5818 X:3919 Y:3919 P:envMxdizC $81/9BE6 1A INC A A:5819 X:3919 Y:3919 P:envMxdizC $81/9BE7 85 02 STA $02 [$00:0002] A:581A X:3919 Y:3919 P:envMxdizC $81/9BE9 64 03 STZ $03 [$00:0003] A:581A X:3919 Y:3919 P:envMxdizC $81/9BEB BD 5B 00 LDA $005B,x[$7E:3974] A:581A X:3919 Y:3919 P:envMxdizC $81/9BEE 1A INC A A:5806 X:3919 Y:3919 P:envMxdizC $81/9BEF 1A INC A A:5807 X:3919 Y:3919 P:envMxdizC $81/9BF0 85 05 STA $05 [$00:0005] A:5808 X:3919 Y:3919 P:envMxdizC $81/9BF2 BD 5F 00 LDA $005F,x[$7E:3978] A:5808 X:3919 Y:3919 P:envMxdizC $81/9BF5 F0 04 BEQ $04 [$9BFB] A:5812 X:3919 Y:3919 P:envMxdizC $81/9BF7 10 08 BPL $08 [$9C01] A:5812 X:3919 Y:3919 P:envMxdizC $81/9BF9 E6 05 INC $05 [$00:0005] A:2F8E X:45D9 Y:019E P:eNvMxdizc $81/9BFB BD 57 00 LDA $0057,x[$7E:4630] A:2F8E X:45D9 Y:019E P:envMxdizc $81/9BFE 3A DEC A A:2F03 X:45D9 Y:019E P:envMxdizc $81/9BFF 80 07 BRA $07 [$9C08] A:2F02 X:45D9 Y:019E P:envMxdizc $81/9C01 E6 05 INC $05 [$00:0005] A:5812 X:3919 Y:3919 P:envMxdizC $81/9C03 BD 57 00 LDA $0057,x[$7E:3970] A:5812 X:3919 Y:3919 P:envMxdizC $81/9C06 3A DEC A A:5814 X:3919 Y:3919 P:envMxdizC $81/9C07 3A DEC A A:5813 X:3919 Y:3919 P:envMxdizC $81/9C08 85 04 STA $04 [$00:0004] A:5812 X:3919 Y:3919 P:envMxdizC $81/9C0A AD 8D 05 LDA $058D ; Load BG3 Tilemap Address and size $81/9C0D 85 09 STA $09 ; Set it up as 16-bit address in $08/09 $81/9C0F 64 08 STZ $08 $81/9C11 A0 00 A8 LDY #$A800 A:583C X:3919 Y:3919 P:envMxdizC $81/9C14 84 0A STY $0A [$00:000A] A:583C X:3919 Y:A800 P:eNvMxdizC $81/9C16 A9 7E LDA #$7E A:583C X:3919 Y:A800 P:eNvMxdizC $81/9C18 85 0F STA $0F [$00:000F] A:587E X:3919 Y:A800 P:envMxdizC $81/9C1A AC 9B 05 LDY $059B ; Buffer BG3 Y-Scroll in $06 $81/9C1D 84 06 STY $06 $81/9C1F 20 25 9C JSR $9C25 [$81:9C25] A:587E X:3919 Y:0000 P:envMxdiZC $81/9C22 A6 D8 LDX $D8 [$00:00D8] A:AC7E X:A800 Y:3C00 P:eNvMxdizc $81/9C24 60 RTS A:AC7E X:3919 Y:3C00 P:envMxdizc
$81/9C25 ?
When coming from $81/9BD8, $06 contains the buffered BG3 Y-scroll value.
$81/9C25 A9 80 LDA #$80 A:587E X:3919 Y:0000 P:envMxdiZC $81/9C27 85 0E STA $0E [$00:000E] A:5880 X:3919 Y:0000 P:eNvMxdizC $81/9C29 C2 21 REP #$21 A:5880 X:3919 Y:0000 P:eNvMxdizC $81/9C2B A5 00 LDA $00 [$00:0000] A:5880 X:3919 Y:0000 P:eNvmxdizc $81/9C2D 18 CLC A:0004 X:3919 Y:0000 P:envmxdizc $81/9C2E 65 02 ADC $02 [$00:0002] A:0004 X:3919 Y:0000 P:envmxdizc $81/9C30 C9 21 00 CMP #$0021 A:001E X:3919 Y:0000 P:envmxdizc $81/9C33 90 07 BCC $07 [$9C3C] A:001E X:3919 Y:0000 P:eNvmxdizc $81/9C3C A5 04 LDA $04 [$00:0004] A:001E X:3919 Y:0000 P:eNvmxdizc $81/9C3E 29 FF 00 AND #$00FF A:0912 X:3919 Y:0000 P:envmxdizc $81/9C41 EB XBA A:0012 X:3919 Y:0000 P:envmxdizc $81/9C42 4A LSR A A:1200 X:3919 Y:0000 P:envmxdiZc $81/9C43 4A LSR A A:0900 X:3919 Y:0000 P:envmxdizc $81/9C44 65 00 ADC $00 [$00:0000] A:0480 X:3919 Y:0000 P:envmxdizc $81/9C46 65 00 ADC $00 [$00:0000] A:0484 X:3919 Y:0000 P:envmxdizc $81/9C48 85 10 STA $10 [$00:0010] A:0488 X:3919 Y:0000 P:envmxdizc $81/9C4A 48 PHA A:0488 X:3919 Y:0000 P:envmxdizc $81/9C4B A5 06 LDA $06 ; Load BG3 Y-scroll $81/9C4D 0A ASL A ; Multiply by eight $81/9C4E 0A ASL A $81/9C4F 0A ASL A $81/9C50 63 01 ADC $01,s ; (Add value that was just pushed on stack) $81/9C52 29 FF 07 AND #$07FF A:0488 X:3919 Y:0000 P:envmxdizc $81/9C55 85 12 STA $12 [$00:0012] A:0488 X:3919 Y:0000 P:envmxdizc $81/9C57 68 PLA A:0488 X:3919 Y:0000 P:envmxdizc $81/9C58 A5 05 LDA $05 [$00:0005] A:0488 X:3919 Y:0000 P:envmxdizc $81/9C5A 29 FF 00 AND #$00FF A:0009 X:3919 Y:0000 P:envmxdizc $81/9C5D 3A DEC A A:0009 X:3919 Y:0000 P:envmxdizc $81/9C5E EB XBA A:0008 X:3919 Y:0000 P:envmxdizc $81/9C5F 4A LSR A A:0800 X:3919 Y:0000 P:envmxdiZc $81/9C60 4A LSR A A:0400 X:3919 Y:0000 P:envmxdizc $81/9C61 65 02 ADC $02 [$00:0002] A:0200 X:3919 Y:0000 P:envmxdizc $81/9C63 65 02 ADC $02 [$00:0002] A:021A X:3919 Y:0000 P:envmxdizc $81/9C65 85 0C STA $0C [$00:000C] A:0234 X:3919 Y:0000 P:envmxdizc $81/9C67 E2 20 SEP #$20 A:0234 X:3919 Y:0000 P:envmxdizc $81/9C69 A4 08 LDY $08 [$00:0008] A:0234 X:3919 Y:0000 P:envMxdizc $81/9C6B A6 0A LDX $0A [$00:000A] A:0234 X:3919 Y:3C00 P:envMxdizc $81/9C6D A5 0F LDA $0F [$00:000F] A:0234 X:A800 Y:3C00 P:eNvMxdizc $81/9C6F 22 74 9C 81 JSL $819C74[$81:9C74] A:027E X:A800 Y:3C00 P:envMxdizc $81/9C73 60 RTS A:AC7E X:A800 Y:3C00 P:eNvMxdizc
$81/9C74 ?
- MIGHT CAUSE ERROR
- Just a note: A is pushed on the stack at $9C74, and if the branch is taken at $9C79, A isn't pulled before the RTL, so this might crash the game, doesn't it?
$81/9C74 48 PHA A:027E X:A800 Y:3C00 P:envMxdizc $81/9C75 C2 21 REP #$21 A:027E X:A800 Y:3C00 P:envMxdizc $81/9C77 A5 0C LDA $0C [$00:000C] A:027E X:A800 Y:3C00 P:envmxdizc $81/9C79 F0 34 BEQ $34 ; [$9CAF] Exit if empty - this line should be removed? $81/9C7B 65 12 ADC $12 [$00:0012] A:0234 X:A800 Y:3C00 P:envmxdizc $81/9C7D C9 00 08 CMP #$0800 A:06BC X:A800 Y:3C00 P:envmxdizc $81/9C80 B0 08 BCS $08 [$9C8A] A:06BC X:A800 Y:3C00 P:eNvmxdizc $81/9C82 E2 20 SEP #$20 A:06BC X:A800 Y:3C00 P:eNvmxdizc $81/9C84 68 PLA A:06BC X:A800 Y:3C00 P:eNvMxdizc $81/9C85 20 B2 9C JSR $9CB2 [$81:9CB2] A:067E X:A800 Y:3C00 P:envMxdizc $81/9C88 80 25 BRA $25 [$9CAF] A:AC7E X:A800 Y:3C00 P:eNvMxdizc
- code is missing here
$81/9CAF E2 20 SEP #$20 A:AC7E X:A800 Y:3C00 P:eNvMxdizc $81/9CB1 6B RTL A:AC7E X:A800 Y:3C00 P:eNvMxdizc
$81/9CB2 ? Some VRAM DMA
I logged this. This only seems to be executed in the Attraction Mode when the stats bars appear
This sets up a VRAM DMA.
If $0C is empty, the whole VRAM DMA gets skipped.
A contains the DMA Source Bank
X contains the DMA Source Address
Y contains the VRAM Destination Address
$10 is an offset that gets added to X (DMA Source Address)
$12 is an offset that gets added to Y (VRAM Destination Address)
$81/9CB2 DA PHX ; Buffer X, Y and A on Stack $81/9CB3 5A PHY $81/9CB4 48 PHA $81/9CB5 C2 21 REP #$21 ; A = 16-bit, clear Carry $81/9CB7 A5 0C LDA $0C [$00:000C] A:067E X:A800 Y:3C00 P:envmxdizc $81/9CB9 F0 15 BEQ $15 ; [$9CD0] Exit if empty $81/9CBB 8A TXA A:0234 X:A800 Y:3C00 P:envmxdizc $81/9CBC 65 10 ADC $10 [$00:0010] A:A800 X:A800 Y:3C00 P:eNvmxdizc $81/9CBE AA TAX A:AC88 X:A800 Y:3C00 P:eNvmxdizc $81/9CBF A5 12 LDA $12 [$00:0012] A:AC88 X:AC88 Y:3C00 P:eNvmxdizc $81/9CC1 4A LSR A ; Divide by two $81/9CC2 48 PHA ; Add value in A to Y $81/9CC3 98 TYA ; This is done by pushing A on stack... $81/9CC4 63 01 ADC $01,s ; ... transfering Y in A, adding that stack value... $81/9CC6 A8 TAY ; ... and cleaning up again. $81/9CC7 68 PLA $81/9CC8 E2 20 SEP #$20 ; A = 8-bit $81/9CCA A3 01 LDA $01,s ; Restore Original A value (while keeping it on stack) $81/9CCC 22 24 9F 80 JSL $809F24 ; VRAM DMA $81/9CD0 E2 20 SEP #$20 ; A = 8-bit $81/9CD2 68 PLA ; Restore A, Y and X from Stack $81/9CD3 7A PLY $81/9CD4 FA PLX $81/9CD5 60 RTS
$81/9CD6 ?
$81/9CD6 A9 80 LDA #$80 A:0001 X:3911 Y:3C00 P:eNvMxdizc $81/9CD8 85 0E STA $0E [$00:000E] A:0080 X:3911 Y:3C00 P:eNvMxdizc $81/9CDA AD 1E 00 LDA $001E [$7E:001E] A:0080 X:3911 Y:3C00 P:eNvMxdizc $81/9CDD 38 SEC A:0000 X:3911 Y:3C00 P:envMxdiZc $81/9CDE ED 1A 00 SBC $001A [$7E:001A] A:0000 X:3911 Y:3C00 P:envMxdiZC $81/9CE1 90 1E BCC $1E [$9D01] A:0001 X:3911 Y:3C00 P:envMxdizc $81/9CE3 85 05 STA $05 [$00:0005] A:0007 X:45D9 Y:B10F P:envMxdizC $81/9CE5 AD 1A 00 LDA $001A [$7E:001A] A:0007 X:45D9 Y:B10F P:envMxdizC $81/9CE8 85 04 STA $04 [$00:0004] A:0003 X:45D9 Y:B10F P:envMxdizC $81/9CEA C2 20 REP #$20 A:0003 X:45D9 Y:B10F P:envMxdizC $81/9CEC AD 1C 00 LDA $001C [$7E:001C] A:0003 X:45D9 Y:B10F P:envmxdizC $81/9CEF 38 SEC A:001B X:45D9 Y:B10F P:envmxdizC $81/9CF0 ED 18 00 SBC $0018 [$7E:0018] A:001B X:45D9 Y:B10F P:envmxdizC $81/9CF3 90 0C BCC $0C [$9D01] A:0018 X:45D9 Y:B10F P:envmxdizC $81/9CF5 85 02 STA $02 [$00:0002] A:0018 X:45D9 Y:B10F P:envmxdizC $81/9CF7 AD 18 00 LDA $0018 [$7E:0018] A:0018 X:45D9 Y:B10F P:envmxdizC $81/9CFA 85 00 STA $00 [$00:0000] A:0003 X:45D9 Y:B10F P:envmxdizC $81/9CFC E2 20 SEP #$20 A:0003 X:45D9 Y:B10F P:envmxdizC $81/9CFE 4C 57 9B JMP $9B57 [$81:9B57] A:0003 X:45D9 Y:B10F P:envMxdizC $81/9D01 E2 20 SEP #$20 A:0001 X:3911 Y:3C00 P:envMxdizc $81/9D03 A6 D8 LDX $D8 [$00:00D8] A:0001 X:3911 Y:3C00 P:envMxdizc $81/9D05 60 RTS A:0001 X:3919 Y:3C00 P:envMxdizc
$81/9D06 ?
$81/9D06 A9 80 LDA #$80 A:0001 X:3919 Y:3C00 P:envMxdizc $81/9D08 85 0E STA $0E [$00:000E] A:0080 X:3919 Y:3C00 P:eNvMxdizc $81/9D0A AD 1E 00 LDA $001E [$7E:001E] A:0080 X:3919 Y:3C00 P:eNvMxdizc $81/9D0D 38 SEC A:0000 X:3919 Y:3C00 P:envMxdiZc $81/9D0E ED 1A 00 SBC $001A [$7E:001A] A:0000 X:3919 Y:3C00 P:envMxdiZC $81/9D11 90 24 BCC $24 [$9D37] A:0001 X:3919 Y:3C00 P:envMxdizc $81/9D13 1A INC A A:E007 X:45D9 Y:5400 P:envMxdizC $81/9D14 1A INC A A:E008 X:45D9 Y:5400 P:envMxdizC $81/9D15 85 05 STA $05 [$00:0005] A:E009 X:45D9 Y:5400 P:envMxdizC $81/9D17 AD 1A 00 LDA $001A [$7E:001A] A:E009 X:45D9 Y:5400 P:envMxdizC $81/9D1A 3A DEC A A:E003 X:45D9 Y:5400 P:envMxdizC $81/9D1B 85 04 STA $04 [$00:0004] A:E002 X:45D9 Y:5400 P:envMxdizC $81/9D1D C2 20 REP #$20 A:E002 X:45D9 Y:5400 P:envMxdizC $81/9D1F AD 1C 00 LDA $001C [$7E:001C] A:E002 X:45D9 Y:5400 P:envmxdizC $81/9D22 38 SEC A:001B X:45D9 Y:5400 P:envmxdizC $81/9D23 ED 18 00 SBC $0018 [$7E:0018] A:001B X:45D9 Y:5400 P:envmxdizC $81/9D26 90 0F BCC $0F [$9D37] A:0018 X:45D9 Y:5400 P:envmxdizC $81/9D28 1A INC A A:0018 X:45D9 Y:5400 P:envmxdizC $81/9D29 1A INC A A:0019 X:45D9 Y:5400 P:envmxdizC $81/9D2A 85 02 STA $02 [$00:0002] A:001A X:45D9 Y:5400 P:envmxdizC $81/9D2C AD 18 00 LDA $0018 [$7E:0018] A:001A X:45D9 Y:5400 P:envmxdizC $81/9D2F 3A DEC A A:0003 X:45D9 Y:5400 P:envmxdizC $81/9D30 85 00 STA $00 [$00:0000] A:0002 X:45D9 Y:5400 P:envmxdizC $81/9D32 E2 20 SEP #$20 A:0002 X:45D9 Y:5400 P:envmxdizC $81/9D34 4C 0A 9C JMP $9C0A [$81:9C0A] A:0002 X:45D9 Y:5400 P:envMxdizC $81/9D37 E2 20 SEP #$20 A:0001 X:3919 Y:3C00 P:envMxdizc $81/9D39 A6 D8 LDX $D8 [$00:00D8] A:0001 X:3919 Y:3C00 P:envMxdizc $81/9D3B 60 RTS A:0001 X:3919 Y:3C00 P:envMxdizc
$81/9D3C ?
$81/9D3C A6 D8 LDX $D8 [$00:00D8] A:0001 X:45D9 Y:B10F P:envMxdizC $81/9D3E C2 20 REP #$20 A:0001 X:45D9 Y:B10F P:envMxdizC $81/9D40 BD 57 00 LDA $0057,x[$7E:4630] A:0001 X:45D9 Y:B10F P:envmxdizC $81/9D43 48 PHA A:0003 X:45D9 Y:B10F P:envmxdizC $81/9D44 BD 5B 00 LDA $005B,x[$7E:4634] A:0003 X:45D9 Y:B10F P:envmxdizC $81/9D47 48 PHA A:0006 X:45D9 Y:B10F P:envmxdizC $81/9D48 BD 5F 00 LDA $005F,x[$7E:4638] A:0006 X:45D9 Y:B10F P:envmxdizC $81/9D4B 29 FF 00 AND #$00FF A:F68E X:45D9 Y:B10F P:eNvmxdizC $81/9D4E F0 0D BEQ $0D [$9D5D] A:008E X:45D9 Y:B10F P:envmxdizC $81/9D50 89 80 00 BIT #$0080 A:008E X:45D9 Y:B10F P:envmxdizC $81/9D53 D0 05 BNE $05 [$9D5A] A:008E X:45D9 Y:B10F P:envmxdizC $81/9D55 A3 03 LDA $03,s [$00:1FC8] A:0012 X:3919 Y:3919 P:envmxdiZc $81/9D57 3A DEC A A:0014 X:3919 Y:3919 P:envmxdizc $81/9D58 83 03 STA $03,s [$00:1FC8] A:0013 X:3919 Y:3919 P:envmxdizc $81/9D5A 68 PLA A:008E X:45D9 Y:B10F P:envmxdizC $81/9D5B 1A INC A A:0006 X:45D9 Y:B10F P:envmxdizC $81/9D5C 48 PHA A:0007 X:45D9 Y:B10F P:envmxdizC $81/9D5D A3 03 LDA $03,s [$00:1FC3] A:0007 X:45D9 Y:B10F P:envmxdizC $81/9D5F CD 1A 00 CMP $001A [$7E:001A] A:0003 X:45D9 Y:B10F P:envmxdizC $81/9D62 B0 03 BCS $03 [$9D67] A:0003 X:45D9 Y:B10F P:envmxdizc $81/9D64 8D 1A 00 STA $001A [$7E:001A] A:0003 X:45D9 Y:B10F P:envmxdizc $81/9D67 18 CLC A:0003 X:45D9 Y:B10F P:envmxdizc $81/9D68 63 01 ADC $01,s [$00:1FC1] A:0003 X:45D9 Y:B10F P:envmxdizc $81/9D6A CD 1E 00 CMP $001E [$7E:001E] A:000A X:45D9 Y:B10F P:envmxdizc $81/9D6D 90 03 BCC $03 [$9D72] A:000A X:45D9 Y:B10F P:envmxdizC $81/9D6F 8D 1E 00 STA $001E [$7E:001E] A:000A X:45D9 Y:B10F P:envmxdizC $81/9D72 BD 55 00 LDA $0055,x[$7E:462E] A:000A X:45D9 Y:B10F P:envmxdizC $81/9D75 CD 18 00 CMP $0018 [$7E:0018] A:0003 X:45D9 Y:B10F P:envmxdizC $81/9D78 B0 03 BCS $03 [$9D7D] A:0003 X:45D9 Y:B10F P:envmxdizc $81/9D7A 8D 18 00 STA $0018 [$7E:0018] A:0003 X:45D9 Y:B10F P:envmxdizc $81/9D7D 18 CLC A:0003 X:45D9 Y:B10F P:envmxdizc $81/9D7E 7D 59 00 ADC $0059,x[$7E:4632] A:0003 X:45D9 Y:B10F P:envmxdizc $81/9D81 CD 1C 00 CMP $001C [$7E:001C] A:001B X:45D9 Y:B10F P:envmxdizc $81/9D84 90 03 BCC $03 [$9D89] A:001B X:45D9 Y:B10F P:envmxdizC $81/9D86 8D 1C 00 STA $001C [$7E:001C] A:001B X:45D9 Y:B10F P:envmxdizC $81/9D89 68 PLA A:001B X:45D9 Y:B10F P:envmxdizC $81/9D8A 68 PLA A:0007 X:45D9 Y:B10F P:envmxdizC $81/9D8B E2 20 SEP #$20 A:0003 X:45D9 Y:B10F P:envmxdizC $81/9D8D 60 RTS A:0003 X:45D9 Y:B10F P:envMxdizC
$81/9D8E ?
$81/9D8E 5A PHY A:0002 X:3911 Y:0002 P:envMxdiZC $81/9D8F A0 00 00 LDY #$0000 A:0002 X:3911 Y:0002 P:envMxdiZC $81/9D92 8C 1C 00 STY $001C [$7E:001C] A:0002 X:3911 Y:0000 P:envMxdiZC $81/9D95 8C 1E 00 STY $001E [$7E:001E] A:0002 X:3911 Y:0000 P:envMxdiZC $81/9D98 88 DEY A:0002 X:3911 Y:0000 P:envMxdiZC $81/9D99 8C 18 00 STY $0018 [$7E:0018] A:0002 X:3911 Y:FFFF P:eNvMxdizC $81/9D9C 8C 1A 00 STY $001A [$7E:001A] A:0002 X:3911 Y:FFFF P:eNvMxdizC $81/9D9F 7A PLY A:0002 X:3911 Y:FFFF P:eNvMxdizC $81/9DA0 60 RTS A:0002 X:3911 Y:0002 P:envMxdizC
$81/9DA1 ?
$81/9DA1 20 A7 9D JSR $9DA7 [$81:9DA7] A:0246 X:45D9 Y:0542 P:envMxdizc $81/9DA4 A6 D8 LDX $D8 [$00:00D8] A:0001 X:000F Y:B10F P:envMxdizC $81/9DA6 60 RTS A:0001 X:45D9 Y:B10F P:envMxdizC
$81/9DA7 ?
$81/9DA7 A6 D8 LDX $D8 [$00:00D8] A:0246 X:45D9 Y:0542 P:envMxdizc $81/9DA9 7B TDC A:0246 X:45D9 Y:0542 P:envMxdizc $81/9DAA BD 4F 00 LDA $004F,x[$7E:4628] A:0000 X:45D9 Y:0542 P:envMxdiZc $81/9DAD 0A ASL A A:0000 X:45D9 Y:0542 P:envMxdiZc $81/9DAE AA TAX A:0000 X:45D9 Y:0542 P:envMxdiZc $81/9DAF 7C B2 9D JMP ($9DB2,x)[$81:9DCA] A:0000 X:0000 Y:0542 P:envMxdiZc
$81/9DB2 ? Address Table for the subroutine above
$81/9DB2 CA 9D $81/9DB2 01 9E $81/9DB2 01 9E $81/9DB2 01 9E $81/9DB2 01 9E $81/9DB2 01 9E $81/9DB2 01 9E $81/9DB2 CA 9D $81/9DB2 00 9E $81/9DB2 00 9E $81/9DB2 01 9E $81/9DB2 01 9E
$81/9DCA ?
$81/9DCA A6 D8 LDX $D8 [$00:00D8] A:0000 X:0000 Y:0542 P:envMxdiZc $81/9DCC 7B TDC A:0000 X:45D9 Y:0542 P:envMxdizc $81/9DCD BD 54 00 LDA $0054,x[$7E:462D] A:0000 X:45D9 Y:0542 P:envMxdiZc $81/9DD0 1A INC A A:0003 X:45D9 Y:0542 P:envMxdizc $81/9DD1 A8 TAY A:0004 X:45D9 Y:0542 P:envMxdizc $81/9DD2 BD 57 00 LDA $0057,x[$7E:4630] A:0004 X:45D9 Y:0004 P:envMxdizc $81/9DD5 0A ASL A A:0003 X:45D9 Y:0004 P:envMxdizc $81/9DD6 0A ASL A A:0006 X:45D9 Y:0004 P:envMxdizc $81/9DD7 0A ASL A A:000C X:45D9 Y:0004 P:envMxdizc $81/9DD8 3A DEC A A:0018 X:45D9 Y:0004 P:envMxdizc $81/9DD9 99 64 17 STA $1764,y[$7E:1768] A:0017 X:45D9 Y:0004 P:envMxdizc $81/9DDC BD 5B 00 LDA $005B,x[$7E:4634] A:0017 X:45D9 Y:0004 P:envMxdizc $81/9DDF 0A ASL A A:0006 X:45D9 Y:0004 P:envMxdizc $81/9DE0 0A ASL A A:000C X:45D9 Y:0004 P:envMxdizc $81/9DE1 0A ASL A A:0018 X:45D9 Y:0004 P:envMxdizc $81/9DE2 99 6D 17 STA $176D,y[$7E:1771] A:0030 X:45D9 Y:0004 P:envMxdizc $81/9DE5 BD 55 00 LDA $0055,x[$7E:462E] A:0030 X:45D9 Y:0004 P:envMxdizc $81/9DE8 0A ASL A A:0003 X:45D9 Y:0004 P:envMxdizc $81/9DE9 0A ASL A A:0006 X:45D9 Y:0004 P:envMxdizc $81/9DEA 0A ASL A A:000C X:45D9 Y:0004 P:envMxdizc $81/9DEB 99 76 17 STA $1776,y[$7E:177A] A:0018 X:45D9 Y:0004 P:envMxdizc $81/9DEE BD 59 00 LDA $0059,x[$7E:4632] A:0018 X:45D9 Y:0004 P:envMxdizc $81/9DF1 0A ASL A A:0018 X:45D9 Y:0004 P:envMxdizc $81/9DF2 0A ASL A A:0030 X:45D9 Y:0004 P:envMxdizc $81/9DF3 0A ASL A A:0060 X:45D9 Y:0004 P:envMxdizc $81/9DF4 3A DEC A A:00C0 X:45D9 Y:0004 P:eNvMxdizc $81/9DF5 79 76 17 ADC $1776,y[$7E:177A] A:00BF X:45D9 Y:0004 P:eNvMxdizc $81/9DF8 99 7F 17 STA $177F,y[$7E:1783] A:00D7 X:45D9 Y:0004 P:eNvMxdizc $81/9DFB 22 49 E8 81 JSL $81E849[$81:E849] A:00D7 X:45D9 Y:0004 P:eNvMxdizc $81/9DFF 60 RTS A:0001 X:000F Y:B10F P:envMxdizC
$81/9E3D ?
$81/9E3D D4 02 PEI ($02) ; Buffer $02-$09 on Stack $81/9E3F D4 04 PEI ($04) $81/9E41 D4 06 PEI ($06) $81/9E43 D4 08 PEI ($08) $81/9E45 A6 D8 LDX $D8 [$00:00D8] A:0000 X:45D9 Y:0542 P:envMxdizc $81/9E47 A0 00 20 LDY #$2000 A:0000 X:45D9 Y:0542 P:envMxdizc $81/9E4A BD 39 02 LDA $0239,x[$7E:4812] A:0000 X:45D9 Y:2000 P:envMxdizc $81/9E4D F0 03 BEQ $03 [$9E52] A:0000 X:45D9 Y:2000 P:envMxdiZc $81/9E52 84 06 STY $06 [$00:0006] A:0000 X:45D9 Y:2000 P:envMxdiZc $81/9E54 7B TDC A:0000 X:45D9 Y:2000 P:envMxdiZc $81/9E55 BD 5D 00 LDA $005D,x[$7E:4636] A:0000 X:45D9 Y:2000 P:envMxdiZc $81/9E58 C9 FF CMP #$FF A:0032 X:45D9 Y:2000 P:envMxdizc $81/9E5A F0 0F BEQ $0F [$9E6B] A:0032 X:45D9 Y:2000 P:envMxdizc $81/9E5C C9 FE CMP #$FE A:0032 X:45D9 Y:2000 P:envMxdizc $81/9E5E F0 0B BEQ $0B [$9E6B] A:0032 X:45D9 Y:2000 P:envMxdizc $81/9E60 BD 5E 00 LDA $005E,x[$7E:4637] A:0032 X:45D9 Y:2000 P:envMxdizc $81/9E63 89 40 BIT #$40 A:0004 X:45D9 Y:2000 P:envMxdizc $81/9E65 D0 04 BNE $04 [$9E6B] A:0004 X:45D9 Y:2000 P:envMxdiZc $81/9E67 29 3F AND #$3F A:0004 X:45D9 Y:2000 P:envMxdiZc $81/9E69 80 01 BRA $01 [$9E6C] A:0004 X:45D9 Y:2000 P:envMxdizc $81/9E6B 7B TDC A:0044 X:3919 Y:2000 P:envMxdizc $81/9E6C 85 08 STA $08 [$00:0008] A:0004 X:45D9 Y:2000 P:envMxdizc $81/9E6E C9 00 CMP #$00 A:0004 X:45D9 Y:2000 P:envMxdizc $81/9E70 F0 1F BEQ $1F [$9E91] A:0004 X:45D9 Y:2000 P:envMxdizC $81/9E72 85 04 STA $04 [$00:0004] A:0004 X:45D9 Y:2000 P:envMxdizC $81/9E74 BD 55 00 LDA $0055,x[$7E:462E] A:0004 X:45D9 Y:2000 P:envMxdizC $81/9E77 85 02 STA $02 [$00:0002] A:0003 X:45D9 Y:2000 P:envMxdizC $81/9E79 BD 57 00 LDA $0057,x[$7E:4630] A:0003 X:45D9 Y:2000 P:envMxdizC $81/9E7C 85 03 STA $03 [$00:0003] A:0003 X:45D9 Y:2000 P:envMxdizC $81/9E7E BD 5B 00 LDA $005B,x[$7E:4634] A:0003 X:45D9 Y:2000 P:envMxdizC $81/9E81 85 05 STA $05 [$00:0005] A:0006 X:45D9 Y:2000 P:envMxdizC $81/9E83 A0 EE 03 LDY #$03EE A:0006 X:45D9 Y:2000 P:envMxdizC $81/9E86 A2 00 A8 LDX #$A800 A:0006 X:45D9 Y:03EE P:envMxdizC $81/9E89 A9 7E LDA #$7E A:0006 X:A800 Y:03EE P:eNvMxdizC $81/9E8B 22 96 D2 81 JSL $81D296[$81:D296] A:007E X:A800 Y:03EE P:envMxdizC $81/9E8F A6 D8 LDX $D8 [$00:00D8] A:0000 X:A800 Y:03EE P:envMxdizc $81/9E91 7B TDC A:0000 X:45D9 Y:03EE P:envMxdizc $81/9E92 BD 5D 00 LDA $005D,x[$7E:4636] A:0000 X:45D9 Y:03EE P:envMxdiZc $81/9E95 C9 FF CMP #$FF A:0032 X:45D9 Y:03EE P:envMxdizc $81/9E97 F0 0F BEQ $0F [$9EA8] A:0032 X:45D9 Y:03EE P:envMxdizc $81/9E99 C9 FE CMP #$FE A:0032 X:45D9 Y:03EE P:envMxdizc $81/9E9B F0 0B BEQ $0B [$9EA8] A:0032 X:45D9 Y:03EE P:envMxdizc $81/9E9D BD 5E 00 LDA $005E,x[$7E:4637] A:0032 X:45D9 Y:03EE P:envMxdizc $81/9EA0 89 40 BIT #$40 A:0004 X:45D9 Y:03EE P:envMxdizc $81/9EA2 F0 04 BEQ $04 [$9EA8] A:0004 X:45D9 Y:03EE P:envMxdiZc $81/9EA4 29 3F AND #$3F A:0044 X:3919 Y:2000 P:envMxdizc $81/9EA6 80 01 BRA $01 [$9EA9] A:0004 X:3919 Y:2000 P:envMxdizc $81/9EA8 7B TDC A:0004 X:45D9 Y:03EE P:envMxdiZc $81/9EA9 85 09 STA $09 [$00:0009] A:0000 X:45D9 Y:03EE P:envMxdiZc $81/9EAB C9 00 CMP #$00 A:0000 X:45D9 Y:03EE P:envMxdiZc $81/9EAD F0 26 BEQ $26 [$9ED5] A:0000 X:45D9 Y:03EE P:envMxdiZC $81/9EAF 85 04 STA $04 [$00:0004] A:0004 X:3919 Y:2000 P:envMxdizC $81/9EB1 BD 55 00 LDA $0055,x[$7E:396E] A:0004 X:3919 Y:2000 P:envMxdizC $81/9EB4 18 CLC A:0006 X:3919 Y:2000 P:envMxdizC $81/9EB5 7D 59 00 ADC $0059,x[$7E:3972] A:0006 X:3919 Y:2000 P:envMxdizc $81/9EB8 38 SEC A:001D X:3919 Y:2000 P:envMxdizc $81/9EB9 E5 04 SBC $04 [$00:0004] A:001D X:3919 Y:2000 P:envMxdizC $81/9EBB 85 02 STA $02 [$00:0002] A:0019 X:3919 Y:2000 P:envMxdizC $81/9EBD BD 57 00 LDA $0057,x[$7E:3970] A:0019 X:3919 Y:2000 P:envMxdizC $81/9EC0 85 03 STA $03 [$00:0003] A:0014 X:3919 Y:2000 P:envMxdizC $81/9EC2 BD 5B 00 LDA $005B,x[$7E:3974] A:0014 X:3919 Y:2000 P:envMxdizC $81/9EC5 85 05 STA $05 [$00:0005] A:0006 X:3919 Y:2000 P:envMxdizC $81/9EC7 A0 EE 03 LDY #$03EE A:0006 X:3919 Y:2000 P:envMxdizC $81/9ECA A2 00 A8 LDX #$A800 A:0006 X:3919 Y:03EE P:envMxdizC $81/9ECD A9 7E LDA #$7E A:0006 X:A800 Y:03EE P:eNvMxdizC $81/9ECF 22 96 D2 81 JSL $81D296[$81:D296] A:007E X:A800 Y:03EE P:envMxdizC $81/9ED3 A6 D8 LDX $D8 [$00:00D8] A:0000 X:A800 Y:03EE P:envMxdizc $81/9ED5 BD 55 00 LDA $0055,x[$7E:462E] A:0000 X:45D9 Y:03EE P:envMxdiZC $81/9ED8 18 CLC A:0003 X:45D9 Y:03EE P:envMxdizC $81/9ED9 65 08 ADC $08 [$00:0008] A:0003 X:45D9 Y:03EE P:envMxdizc $81/9EDB 85 02 STA $02 [$00:0002] A:0007 X:45D9 Y:03EE P:envMxdizc $81/9EDD BD 57 00 LDA $0057,x[$7E:4630] A:0007 X:45D9 Y:03EE P:envMxdizc $81/9EE0 85 03 STA $03 [$00:0003] A:0003 X:45D9 Y:03EE P:envMxdizc $81/9EE2 BD 59 00 LDA $0059,x[$7E:4632] A:0003 X:45D9 Y:03EE P:envMxdizc $81/9EE5 38 SEC A:0018 X:45D9 Y:03EE P:envMxdizc $81/9EE6 E5 08 SBC $08 [$00:0008] A:0018 X:45D9 Y:03EE P:envMxdizC $81/9EE8 E5 09 SBC $09 [$00:0009] A:0014 X:45D9 Y:03EE P:envMxdizC $81/9EEA 85 04 STA $04 [$00:0004] A:0014 X:45D9 Y:03EE P:envMxdizC $81/9EEC BD 5B 00 LDA $005B,x[$7E:4634] A:0014 X:45D9 Y:03EE P:envMxdizC $81/9EEF 85 05 STA $05 [$00:0005] A:0006 X:45D9 Y:03EE P:envMxdizC $81/9EF1 C2 20 REP #$20 A:0006 X:45D9 Y:03EE P:envMxdizC $81/9EF3 A9 EE 23 LDA #$23EE A:0006 X:45D9 Y:03EE P:envmxdizC $81/9EF6 05 06 ORA $06 [$00:0006] A:23EE X:45D9 Y:03EE P:envmxdizC $81/9EF8 A8 TAY A:23EE X:45D9 Y:03EE P:envmxdizC $81/9EF9 E2 20 SEP #$20 A:23EE X:45D9 Y:23EE P:envmxdizC $81/9EFB A2 00 A8 LDX #$A800 A:23EE X:45D9 Y:23EE P:envMxdizC $81/9EFE A9 7E LDA #$7E A:23EE X:A800 Y:23EE P:eNvMxdizC $81/9F00 22 96 D2 81 JSL $81D296[$81:D296] A:237E X:A800 Y:23EE P:envMxdizC $81/9F04 7A PLY ; Restore $02-$09 from Stack $81/9F05 84 08 STY $08 $81/9F07 7A PLY $81/9F08 84 06 STY $06 $81/9F0A 7A PLY $81/9F0B 84 04 STY $04 $81/9F0D 7A PLY $81/9F0E 84 02 STY $02 $81/9F10 A6 D8 LDX $D8 [$00:00D8] A:0000 X:A800 Y:0542 P:envMxdizc $81/9F12 60 RTS A:0000 X:45D9 Y:0542 P:envMxdizc
$81/9F13 ?
$81/9F13 A6 D8 LDX $D8 [$00:00D8] A:0000 X:45D9 Y:0542 P:envMxdizc $81/9F15 BD 5D 00 LDA $005D,x[$7E:4636] A:0000 X:45D9 Y:0542 P:envMxdizc $81/9F18 C9 FF CMP #$FF A:0032 X:45D9 Y:0542 P:envMxdizc $81/9F1A D0 03 BNE $03 [$9F1F] A:0032 X:45D9 Y:0542 P:envMxdizc
- code is missing here
$81/9F1F C9 FE CMP #$FE A:0032 X:45D9 Y:0542 P:envMxdizc $81/9F21 D0 03 BNE $03 [$9F26] A:0032 X:45D9 Y:0542 P:envMxdizc
- code is missing here
$81/9F26 D4 02 PEI ($02) ; Buffer $02-$07 on Stack $81/9F28 D4 04 PEI ($04) $81/9F2A D4 06 PEI ($06) $81/9F2C BD 5E 00 LDA $005E,x[$7E:4637] A:0032 X:45D9 Y:0542 P:envMxdizc $81/9F2F 29 3F AND #$3F A:0004 X:45D9 Y:0542 P:envMxdizc $81/9F31 85 00 STA $00 [$00:0000] A:0004 X:45D9 Y:0542 P:envMxdizc $81/9F33 64 01 STZ $01 [$00:0001] A:0004 X:45D9 Y:0542 P:envMxdizc $81/9F35 A0 00 00 LDY #$0000 A:0004 X:45D9 Y:0542 P:envMxdizc $81/9F38 BD 5E 00 LDA $005E,x[$7E:4637] A:0004 X:45D9 Y:0000 P:envMxdiZc $81/9F3B 89 40 BIT #$40 A:0004 X:45D9 Y:0000 P:envMxdizc $81/9F3D F0 07 BEQ $07 [$9F46] A:0004 X:45D9 Y:0000 P:envMxdiZc $81/9F3F BD 59 00 LDA $0059,x[$7E:3972] A:0044 X:3919 Y:0000 P:envMxdizc $81/9F42 38 SEC A:0017 X:3919 Y:0000 P:envMxdizc $81/9F43 E5 00 SBC $00 [$00:0000] A:0017 X:3919 Y:0000 P:envMxdizC $81/9F45 A8 TAY A:0013 X:3919 Y:0000 P:envMxdizC $81/9F46 C2 21 REP #$21 A:0004 X:45D9 Y:0000 P:envMxdiZc $81/9F48 98 TYA A:0004 X:45D9 Y:0000 P:envmxdiZc $81/9F49 7D 55 00 ADC $0055,x[$7E:462E] A:0000 X:45D9 Y:0000 P:envmxdiZc $81/9F4C 0A ASL A A:0003 X:45D9 Y:0000 P:envmxdizc $81/9F4D 48 PHA A:0006 X:45D9 Y:0000 P:envmxdizc $81/9F4E BD 57 00 LDA $0057,x[$7E:4630] A:0006 X:45D9 Y:0000 P:envmxdizc $81/9F51 EB XBA A:0003 X:45D9 Y:0000 P:envmxdizc $81/9F52 4A LSR A A:0300 X:45D9 Y:0000 P:envmxdiZc $81/9F53 4A LSR A A:0180 X:45D9 Y:0000 P:envmxdizc $81/9F54 63 01 ADC $01,s [$00:1FBD] A:00C0 X:45D9 Y:0000 P:envmxdizc $81/9F56 A8 TAY A:00C6 X:45D9 Y:0000 P:envmxdizc $81/9F57 68 PLA A:00C6 X:45D9 Y:00C6 P:envmxdizc $81/9F58 5A PHY A:0006 X:45D9 Y:00C6 P:envmxdizc $81/9F59 BD 4F 00 LDA $004F,x[$7E:4628] A:0006 X:45D9 Y:00C6 P:envmxdizc $81/9F5C 29 FF 00 AND #$00FF A:0000 X:45D9 Y:00C6 P:envmxdiZc $81/9F5F C9 07 00 CMP #$0007 A:0000 X:45D9 Y:00C6 P:envmxdiZc $81/9F62 F0 0E BEQ $0E [$9F72] A:0000 X:45D9 Y:00C6 P:eNvmxdizc $81/9F64 C9 0A 00 CMP #$000A A:0000 X:45D9 Y:00C6 P:eNvmxdizc $81/9F67 F0 02 BEQ $02 [$9F6B] A:0000 X:45D9 Y:00C6 P:eNvmxdizc $81/9F69 80 1D BRA $1D [$9F88] A:0000 X:45D9 Y:00C6 P:eNvmxdizc
- code is missing here
$81/9F88 A0 B0 02 LDY #$02B0 A:0000 X:45D9 Y:00C6 P:eNvmxdizc $81/9F8B BD 51 00 LDA $0051,x[$7E:462A] A:0000 X:45D9 Y:02B0 P:envmxdizc $81/9F8E 4A LSR A A:1900 X:45D9 Y:02B0 P:envmxdizc $81/9F8F 90 03 BCC $03 [$9F94] A:0C80 X:45D9 Y:02B0 P:envmxdizc $81/9F91 A0 C8 02 LDY #$02C8 A:0000 X:3919 Y:02B0 P:envmxdiZC $81/9F94 98 TYA A:0C80 X:45D9 Y:02B0 P:envmxdizc $81/9F95 09 00 04 ORA #$0400 A:02B0 X:45D9 Y:02B0 P:envmxdizc $81/9F98 85 06 STA $06 [$00:0006] A:06B0 X:45D9 Y:02B0 P:envmxdizc $81/9F9A BD 5E 00 LDA $005E,x[$7E:4637] A:06B0 X:45D9 Y:02B0 P:envmxdizc $81/9F9D 29 80 00 AND #$0080 A:8E04 X:45D9 Y:02B0 P:eNvmxdizc $81/9FA0 85 08 STA $08 [$00:0008] A:0000 X:45D9 Y:02B0 P:envmxdiZc $81/9FA2 A9 06 00 LDA #$0006 A:0000 X:45D9 Y:02B0 P:envmxdiZc $81/9FA5 85 02 STA $02 [$00:0002] A:0006 X:45D9 Y:02B0 P:envmxdizc $81/9FA7 FA PLX A:0006 X:45D9 Y:02B0 P:envmxdizc $81/9FA8 A5 08 LDA $08 [$00:0008] A:0006 X:00C6 Y:02B0 P:envmxdizc $81/9FAA D0 23 BNE $23 [$9FCF] A:0000 X:00C6 Y:02B0 P:envmxdiZc $81/9FAC A5 00 LDA $00 [$00:0000] A:0000 X:00C6 Y:02B0 P:envmxdiZc $81/9FAE 85 04 STA $04 [$00:0004] A:0004 X:00C6 Y:02B0 P:envmxdizc $81/9FB0 DA PHX A:0004 X:00C6 Y:02B0 P:envmxdizc $81/9FB1 A5 06 LDA $06 [$00:0006] A:0004 X:00C6 Y:02B0 P:envmxdizc $81/9FB3 9F 00 E0 7F STA $7FE000,x[$7F:E0C6] A:06B0 X:00C6 Y:02B0 P:envmxdizc $81/9FB7 1A INC A A:06B0 X:00C6 Y:02B0 P:envmxdizc $81/9FB8 E8 INX A:06B1 X:00C6 Y:02B0 P:envmxdizc $81/9FB9 E8 INX A:06B1 X:00C7 Y:02B0 P:envmxdizc $81/9FBA C6 04 DEC $04 [$00:0004] A:06B1 X:00C8 Y:02B0 P:envmxdizc $81/9FBC D0 F5 BNE $F5 [$9FB3] A:06B1 X:00C8 Y:02B0 P:envmxdizc $81/9FBE 85 06 STA $06 [$00:0006] A:06B4 X:00CE Y:02B0 P:envmxdiZc $81/9FC0 68 PLA A:06B4 X:00CE Y:02B0 P:envmxdiZc $81/9FC1 18 CLC A:00C6 X:00CE Y:02B0 P:envmxdizc $81/9FC2 69 40 00 ADC #$0040 A:00C6 X:00CE Y:02B0 P:envmxdizc $81/9FC5 29 FF 07 AND #$07FF A:0106 X:00CE Y:02B0 P:envmxdizc $81/9FC8 AA TAX A:0106 X:00CE Y:02B0 P:envmxdizc $81/9FC9 C6 02 DEC $02 [$00:0002] A:0106 X:0106 Y:02B0 P:envmxdizc $81/9FCB D0 DF BNE $DF [$9FAC] A:0106 X:0106 Y:02B0 P:envmxdizc $81/9FCD 80 2A BRA $2A [$9FF9] A:0246 X:0246 Y:02B0 P:envmxdiZc
- code is missing here
$81/9FF9 E2 20 SEP #$20 ; A = 8-bit $81/9FFB 7A PLY ; Restore $02-$07 from Stack $81/9FFC 84 06 STY $06 $81/9FFE 7A PLY $81/9FFF 84 04 STY $04 $81/A001 7A PLY $81/A002 84 02 STY $02 $81/A004 80 34 BRA $34 [$A03A] A:0246 X:0246 Y:0542 P:envMxdizc
- code is missing here
$81/A03A A6 D8 LDX $D8 [$00:00D8] A:0246 X:0246 Y:0542 P:envMxdizc $81/A03C 60 RTS A:0246 X:45D9 Y:0542 P:envMxdizc
$81/9F2C Add entry to VRAM Pipeline
This subroutine does some checks on the stuff that goes to the VRAM Pipeline and ultimately adds the data, these registers contain the stuff that goes to the pipeline:
A - $4304 buffer - Source Bank X - $4302 buffer - Source Address Y - $2116 buffer - VRAM Destination $0C/D - $4305 buffer - Data Size $0E/F - $2115 buffer - VRAM Settings
Also, $5C and $5E contain some minimum/maximum values for the data size(?)
$80/9F2C 48 PHA ; Buffer A on stack $80/9F2D AD 6A 05 LDA $056A ; Load $2100 value buffer $80/9F30 10 38 BPL $38 ; [$9F6A] Branch if VBLANK isn't activated
- code is missing here
$80/9F6A A3 01 LDA $01,s ; Copy Original A from Stack without pulling it $80/9F6C C9 7E CMP #$7E ; Check if the Transfer Source is on bank $7E $80/9F6E D0 18 BNE $18 ; [$9F88] If it does, add the entry $80/9F70 E4 5C CPX $5C [$00:005C] A:027E X:AC88 Y:3E44 P:envMxdiZC $80/9F72 90 14 BCC $14 ; [$9F88] Add the entry $80/9F74 E4 5E CPX $5E [$00:005E] A:027E X:AC88 Y:3E44 P:envMxdizC $80/9F76 B0 10 BCS $10 ; [$9F88] Add the entry
- code is missing here
$80/9F88 C2 21 REP #$21 ; A = 16-bit, Clear Carry $80/9F8A AD C5 0E LDA $0EC5 ; Load VRAM Pipeline data size counter $80/9F8D 65 0C ADC $0C ; Add the data size that is to transfer $80/9F8F 8D C5 0E STA $0EC5 ; Store back $80/9F92 DA PHX ; Buffer Original X on stack $80/9F93 AD C7 0E LDA $0EC7 ; Load Number of used VRAM DMA Pipeline Entries $80/9F96 29 FF 00 AND #$00FF ; Remove upper byte... $80/9F99 0A ASL A ; ... and multiply it by two $80/9F9A AA TAX ; Transfer in X to use it as Store Index $80/9F9B 98 TYA ; Transfer Original Y in A $80/9F9C 9D 49 10 STA $1049,x ; $2116 buffer - VRAM Destination $80/9F9F A5 0C LDA $0C $80/9FA1 9D C9 0E STA $0EC9,x ; $4305 buffer - Data Size $80/9FA4 68 PLA ; Pull Original X from Stack in 16-bit A $80/9FA5 9D 89 0F STA $0F89,x ; $4302 buffer - Source Address $80/9FA8 E2 20 SEP #$20 ; A = 8-bit $80/9FAA 68 PLA ; Pull Original A $80/9FAB 9D 0A 11 STA $110A,x ; $4304 buffer - Source Bank $80/9FAE A5 0E LDA $0E $80/9FB0 9D 09 11 STA $1109,x ; $2115 buffer - VRAM Settings $80/9FB3 EE C7 0E INC $0EC7 ; Increment Number of used VRAM DMA Pipeline Entries $80/9FB6 60 RTS
$81/A03D ?
$81/A03D 7B TDC A:E07F X:45D9 Y:5400 P:envMxdizc $81/A03E A6 D8 LDX $D8 [$00:00D8] A:0000 X:45D9 Y:5400 P:envMxdiZc $81/A040 7B TDC A:0000 X:45D9 Y:5400 P:envMxdizc $81/A041 BD 4F 00 LDA $004F,x[$7E:4628] A:0000 X:45D9 Y:5400 P:envMxdiZc $81/A044 0A ASL A A:0000 X:45D9 Y:5400 P:envMxdiZc $81/A045 AA TAX A:0000 X:45D9 Y:5400 P:envMxdiZc $81/A046 7C 49 A0 JMP ($A049,x)[$81:A061] A:0000 X:0000 Y:5400 P:envMxdiZc
$81/A049 ? Table for the subroutine above
$81/A049 61 A0 $81/A04B 61 A0 $81/A04D 61 A0 $81/A04F 61 A0 $81/A051 61 A0 $81/A053 61 A0 $81/A055 61 A0 $81/A057 61 A0 $81/A059 70 A0 $81/A05B 70 A0 $81/A05D 61 A0 $81/A05F 61 A0
$81/A061 ?
$81/A061 7B TDC A:0000 X:0000 Y:5400 P:envMxdiZc $81/A062 A6 D8 LDX $D8 [$00:00D8] A:0000 X:0000 Y:5400 P:envMxdiZc $81/A064 BD 54 00 LDA $0054,x[$7E:462D] A:0000 X:45D9 Y:5400 P:envMxdizc $81/A067 1A INC A A:0003 X:45D9 Y:5400 P:envMxdizc $81/A068 AA TAX A:0004 X:45D9 Y:5400 P:envMxdizc $81/A069 9E 6D 17 STZ $176D,x[$7E:1771] A:0004 X:0004 Y:5400 P:envMxdizc $81/A06C 22 49 E8 81 JSL $81E849[$81:E849] A:0004 X:0004 Y:5400 P:envMxdizc $81/A070 A6 D8 LDX $D8 [$00:00D8] A:0001 X:0009 Y:B12C P:enVMxdizC $81/A072 60 RTS A:0001 X:45D9 Y:B12C P:enVMxdizC
$81/A073 ?
$81/A073 48 PHA A:0000 X:1744 Y:000A P:envMxdiZc $81/A074 8B PHB A:0000 X:1744 Y:000A P:envMxdiZc $81/A075 A9 7E LDA #$7E A:0000 X:1744 Y:000A P:envMxdiZc $81/A077 48 PHA A:007E X:1744 Y:000A P:envMxdizc $81/A078 AB PLB A:007E X:1744 Y:000A P:envMxdizc $81/A079 20 8E 9D JSR $9D8E [$81:9D8E] A:007E X:1744 Y:000A P:envMxdizc $81/A07C 7B TDC A:007E X:1744 Y:000A P:envMxdizc $81/A07D A5 C1 LDA $C1 [$00:00C1] A:0000 X:1744 Y:000A P:envMxdiZc $81/A07F C3 02 CMP $02,s [$00:1FBF] A:0002 X:1744 Y:000A P:envMxdizc $81/A081 F0 4A BEQ $4A [$A0CD] A:0002 X:1744 Y:000A P:envMxdizC $81/A083 3A DEC A A:0002 X:1744 Y:000A P:envMxdizC $81/A084 0A ASL A A:0001 X:1744 Y:000A P:envMxdizC $81/A085 A8 TAY A:0002 X:1744 Y:000A P:envMxdizc $81/A086 B6 C2 LDX $C2,y [$00:00C4] A:0002 X:1744 Y:0002 P:envMxdizc $81/A088 BD 00 00 LDA $0000,x[$7E:3911] A:0002 X:3911 Y:0002 P:envMxdizc $81/A08B C9 01 CMP #$01 A:0002 X:3911 Y:0002 P:envMxdizc $81/A08D D0 38 BNE $38 [$A0C7] A:0002 X:3911 Y:0002 P:envMxdizC $81/A0C7 20 D6 9C JSR $9CD6 [$81:9CD6] A:0002 X:3911 Y:0002 P:envMxdizC $81/A0CA 20 06 9D JSR $9D06 [$81:9D06] A:0001 X:45D9 Y:0002 P:envMxdizc $81/A0CD AB PLB A:0001 X:45D9 Y:0002 P:envMxdizc $81/A0CE 68 PLA A:0001 X:45D9 Y:0002 P:envMxdizc $81/A0CF 6B RTL A:0000 X:45D9 Y:0002 P:envMxdiZc
$81/A580 ?
$81/A580 D4 00 PEI ($00) ; Buffer $00-$07 on Stack $81/A582 D4 02 PEI ($02) $81/A584 D4 04 PEI ($04) $81/A586 D4 06 PEI ($06) $81/A588 7B TDC ; Clear 16-bit A $81/A589 BD 4F 00 LDA $004F,x[$7E:4628] A:0000 X:45D9 Y:0879 P:envMxdiZC $81/A58C 0A ASL A A:0000 X:45D9 Y:0879 P:envMxdiZC $81/A58D AA TAX A:0000 X:45D9 Y:0879 P:envMxdiZc $81/A58E FC A0 A5 JSR ($A5A0,x)[$81:A5B8] A:0000 X:0000 Y:0879 P:envMxdiZc $81/A591 7A PLY ; Restore $00-$07 from Stack $81/A592 84 06 STY $06 $81/A594 7A PLY $81/A595 84 04 STY $04 $81/A597 7A PLY $81/A598 84 02 STY $02 $81/A59A 7A PLY $81/A59B 84 00 STY $00 $81/A59D A6 D8 LDX $D8 [$00:00D8] A:5C00 X:45D9 Y:03AA P:envMxdizc $81/A59F 60 RTS A:5C00 X:45D9 Y:03AA P:envMxdizc
$81/A5A0 B8 A5 --- $A5B8 - Entry #$00 $81/A5A2 29 A6 --- $A629 - Entry #$01 $81/A5A4 F9 A5 --- $A5F9 - Entry #$02 $81/A5A6 F9 A5 --- $A5F9 - Entry #$03 $81/A5A8 F9 A5 --- $A5F9 - Entry #$04 $81/A5AA E1 A5 --- $A5E1 - Entry #$05 $81/A5AC 29 A6 --- $A629 - Entry #$06 $81/A5AE F9 A5 --- $A5F9 - Entry #$07 $81/A5B0 F8 A5 --- $A5F8 - Entry #$08 $81/A5B2 F8 A5 --- $A5F8 - Entry #$09 $81/A5B4 F9 A5 --- $A5F9 - Entry #$0A $81/A5B6 F9 A5 --- $A5F9 - Entry #$0B
$81/A5B8 ?
$81/A5B8 A6 D8 LDX $D8 [$00:00D8] A:0000 X:0000 Y:0879 P:envMxdiZc $81/A5BA C2 20 REP #$20 A:0000 X:45D9 Y:0879 P:envMxdizc $81/A5BC BD 51 00 LDA $0051,x[$7E:462A] A:0000 X:45D9 Y:0879 P:envmxdizc $81/A5BF 4A LSR A A:1900 X:45D9 Y:0879 P:envmxdizc $81/A5C0 B0 0B BCS $0B [$A5CD] A:0C80 X:45D9 Y:0879 P:envmxdizc $81/A5C2 A9 00 60 LDA #$6000 A:0C80 X:45D9 Y:0879 P:envmxdizc $81/A5C5 9D 78 00 STA $0078,x[$7E:4651] A:6000 X:45D9 Y:0879 P:envmxdizc $81/A5C8 A9 00 5C LDA #$5C00 A:6000 X:45D9 Y:0879 P:envmxdizc $81/A5CB 80 09 BRA $09 [$A5D6] A:5C00 X:45D9 Y:0879 P:envmxdizc $81/A5CD A9 00 5C LDA #$5C00 A:0000 X:3919 Y:087A P:envmxdiZC $81/A5D0 9D 78 00 STA $0078,x[$7E:3991] A:5C00 X:3919 Y:087A P:envmxdizC $81/A5D3 A9 00 58 LDA #$5800 A:5C00 X:3919 Y:087A P:envmxdizC $81/A5D6 9D 74 00 STA $0074,x[$7E:464D] A:5C00 X:45D9 Y:0879 P:envmxdizc $81/A5D9 9D 76 00 STA $0076,x[$7E:464F] A:5C00 X:45D9 Y:0879 P:envmxdizc $81/A5DC 85 D6 STA $D6 [$00:00D6] A:5C00 X:45D9 Y:0879 P:envmxdizc $81/A5DE E2 20 SEP #$20 A:5C00 X:45D9 Y:0879 P:envmxdizc $81/A5E0 60 RTS A:5C00 X:45D9 Y:0879 P:envMxdizc
$81/A7C4 ? Use Some Jump Table
$81/A7C4 8B PHB A:0001 X:3919 Y:3911 P:envMxdizC $81/A7C5 86 D8 STX $D8 [$00:00D8] A:0001 X:3919 Y:3911 P:envMxdizC $81/A7C7 C2 20 REP #$20 A:0001 X:3919 Y:3911 P:envMxdizC $81/A7C9 BD 76 00 LDA $0076,x[$7E:398F] A:0001 X:3919 Y:3911 P:envmxdizC $81/A7CC 85 D6 STA $D6 [$00:00D6] A:5870 X:3919 Y:3911 P:envmxdizC $81/A7CE 9E 1E 02 STZ $021E,x[$7E:3B37] A:5870 X:3919 Y:3911 P:envmxdizC $81/A7D1 E2 20 SEP #$20 A:5870 X:3919 Y:3911 P:envmxdizC $81/A7D3 9E 3E 02 STZ $023E,x[$7E:3B57] A:5870 X:3919 Y:3911 P:envMxdizC $81/A7D6 7B TDC A:5870 X:3919 Y:3911 P:envMxdizC $81/A7D7 20 0C D4 JSR $D40C [$81:D40C] A:0000 X:3919 Y:3911 P:envMxdiZC $81/A7DA 0A ASL A A:0004 X:3919 Y:3911 P:envMxdizC $81/A7DB A8 TAY A:0008 X:3919 Y:3911 P:envMxdizc $81/A7DC BD 4F 00 LDA $004F,x[$7E:3968] A:0008 X:3919 Y:0008 P:envMxdizc $81/A7DF 0A ASL A A:0000 X:3919 Y:0008 P:envMxdiZc $81/A7E0 AA TAX A:0000 X:3919 Y:0008 P:envMxdiZc $81/A7E1 7C E4 A7 JMP ($A7E4,x)[$81:A7FC] A:0000 X:0000 Y:0008 P:envMxdiZc
$81/A7E4 ? Jump Table for the subroutine above
$81/A7E4 FC A7 $81/A7E6 00 A8 $81/A7E8 04 A8 $81/A7EA 04 A8 $81/A7EC 04 A8 $81/A7EE 04 A8 $81/A7F0 08 A8 $81/A7F2 FC A7 $81/A7F4 04 A8 $81/A7F6 FC A7 $81/A7F8 FC A7 $81/A7FA FC A7
$81/A7FC ? Jump Table Entry to use next Jump Table
$81/A7FC BB TYX A:0000 X:0000 Y:0008 P:envMxdiZc $81/A7FD 7C 8B A8 JMP ($A88B,x)[$81:AC82] A:0000 X:0008 Y:0008 P:envMxdizc
$81/A80E ?
$81/A80E 8B PHB ; Buffer Data Bank on Stack $81/A80F A9 7E LDA #$7E ; Set Data Bank to $7E $81/A811 48 PHA $81/A812 AB PLB $81/A813 A6 D8 LDX $D8 [$00:00D8] A:007E X:45D9 Y:3919 P:envMxdizc $81/A815 A5 02 LDA $02 [$00:0002] A:007E X:45D9 Y:3919 P:envMxdizc $81/A817 9D 6C 00 STA $006C,x[$7E:4645] A:0008 X:45D9 Y:3919 P:envMxdizc $81/A81A 9E 6D 00 STZ $006D,x[$7E:4646] A:0008 X:45D9 Y:3919 P:envMxdizc $81/A81D A5 03 LDA $03 [$00:0003] A:0008 X:45D9 Y:3919 P:envMxdizc $81/A81F 9D 6E 00 STA $006E,x[$7E:4647] A:0003 X:45D9 Y:3919 P:envMxdizc $81/A822 9E 6F 00 STZ $006F,x[$7E:4648] A:0003 X:45D9 Y:3919 P:envMxdizc $81/A825 A5 04 LDA $04 [$00:0004] A:0003 X:45D9 Y:3919 P:envMxdizc $81/A827 9D 70 00 STA $0070,x[$7E:4649] A:0013 X:45D9 Y:3919 P:envMxdizc $81/A82A 9E 71 00 STZ $0071,x[$7E:464A] A:0013 X:45D9 Y:3919 P:envMxdizc $81/A82D A5 05 LDA $05 [$00:0005] A:0013 X:45D9 Y:3919 P:envMxdizc $81/A82F 9D 72 00 STA $0072,x[$7E:464B] A:0006 X:45D9 Y:3919 P:envMxdizc $81/A832 9E 73 00 STZ $0073,x[$7E:464C] A:0006 X:45D9 Y:3919 P:envMxdizc $81/A835 20 3A A8 JSR $A83A [$81:A83A] A:0006 X:45D9 Y:3919 P:envMxdizc $81/A838 AB PLB ; Restore Data Bank from Stack $81/A839 60 RTS
$81/A83A ?
$81/A83A C2 20 REP #$20 A:0006 X:45D9 Y:3919 P:envMxdizc $81/A83C BD 24 02 LDA $0224,x[$7E:47FD] A:0006 X:45D9 Y:3919 P:envmxdizc $81/A83F 85 20 STA $20 [$00:0020] A:4E99 X:45D9 Y:3919 P:envmxdizc $81/A841 1A INC A A:4E99 X:45D9 Y:3919 P:envmxdizc $81/A842 1A INC A A:4E9A X:45D9 Y:3919 P:envmxdizc $81/A843 9D 28 02 STA $0228,x[$7E:4801] A:4E9B X:45D9 Y:3919 P:envmxdizc $81/A846 A9 FF FF LDA #$FFFF A:4E9B X:45D9 Y:3919 P:envmxdizc $81/A849 92 20 STA ($20) [$7E:4E99] A:FFFF X:45D9 Y:3919 P:eNvmxdizc $81/A84B A0 02 00 LDY #$0002 A:FFFF X:45D9 Y:3919 P:eNvmxdizc $81/A84E 91 20 STA ($20),y[$7E:4E9B] A:FFFF X:45D9 Y:0002 P:envmxdizc $81/A850 8A TXA A:FFFF X:45D9 Y:0002 P:envmxdizc $81/A851 9D 43 00 STA $0043,x[$7E:461C] A:45D9 X:45D9 Y:0002 P:envmxdizc $81/A854 E2 20 SEP #$20 A:45D9 X:45D9 Y:0002 P:envmxdizc $81/A856 A5 B1 LDA $B1 [$00:00B1] A:45D9 X:45D9 Y:0002 P:envMxdizc $81/A858 20 6F A8 JSR $A86F [$81:A86F] A:4500 X:45D9 Y:0002 P:envMxdiZc $81/A85B BD 20 02 LDA $0220,x[$7E:47F9] A:4501 X:45D9 Y:0002 P:envMxdizc $81/A85E 9D 22 02 STA $0222,x[$7E:47FB] A:4501 X:45D9 Y:0002 P:envMxdizc $81/A861 9E 2E 02 STZ $022E,x[$7E:4807] A:4501 X:45D9 Y:0002 P:envMxdizc $81/A864 9E 3A 02 STZ $023A,x[$7E:4813] A:4501 X:45D9 Y:0002 P:envMxdizc $81/A867 9E 3B 02 STZ $023B,x[$7E:4814] A:4501 X:45D9 Y:0002 P:envMxdizc $81/A86A 7B TDC A:4501 X:45D9 Y:0002 P:envMxdizc $81/A86B 20 EE D3 JSR $D3EE [$81:D3EE] A:0000 X:45D9 Y:0002 P:envMxdiZc $81/A86E 60 RTS A:4500 X:45D9 Y:0002 P:envMxdizc
$81/A86F ?
$81/A86F 29 FF AND #$FF A:4500 X:45D9 Y:0002 P:envMxdiZc $81/A871 10 0E BPL $0E [$A881] A:4500 X:45D9 Y:0002 P:envMxdiZc
- code is missing here
$81/A881 1A INC A A:4500 X:45D9 Y:0002 P:envMxdiZc $81/A882 9D 20 02 STA $0220,x[$7E:47F9] A:4501 X:45D9 Y:0002 P:envMxdizc $81/A885 A9 01 LDA #$01 A:4501 X:45D9 Y:0002 P:envMxdizc $81/A887 9D 1C 02 STA $021C,x[$7E:47F5] A:4501 X:45D9 Y:0002 P:envMxdizc $81/A88A 60 RTS A:4501 X:45D9 Y:0002 P:envMxdizc
$81/A88B ? Address Table for $81/A7FC
$81/A88B E1 A8 --- $A8E1 - Entry #00 $81/A88D D0 A9 --- $A9D0 - Entry #01 $81/A88F 00 00 --- $0000 - Entry #02 $81/A891 C3 AA --- $AAC3 - Entry #03 $81/A893 82 AC --- $AC82 - Entry #04 $81/A895 0A AD --- $AD0A - Entry #05 $81/A897 BE AE --- $AEBE - Entry #06 $81/A899 20 AF --- $AF20 - Entry #07 $81/A89B 69 B0 --- $B069 - Entry #08 $81/A89D D1 B1 --- $B1D1 - Entry #09 $81/A89F 06 B2 --- $B206 - Entry #0A $81/A8A1 5A AB --- $AB5A - Entry #0B $81/A8A3 BA AB --- $ABBA - Entry #0C $81/A8A5 07 AB --- $AB07 - Entry #0D $81/A8A7 20 B1 --- $B120 - Entry #0E $81/A8A9 AB A8 --- $A8AB - Entry #0F
$81/A8AB ?
$81/A8AB A6 D8 LDX $D8 [$00:00D8] A:0000 X:001E Y:001E P:envMxdizc $81/A8AD BD 3F 02 LDA $023F,x[$7E:4818] A:0000 X:45D9 Y:001E P:envMxdizc $81/A8B0 C9 FF CMP #$FF A:0000 X:45D9 Y:001E P:envMxdiZc $81/A8B2 F0 07 BEQ $07 [$A8BB] A:0000 X:45D9 Y:001E P:envMxdizc $81/A8B4 20 46 93 JSR $9346 [$81:9346] A:0000 X:45D9 Y:001E P:envMxdizc $81/A8B7 A9 01 LDA #$01 A:A87E X:45D9 Y:3C00 P:envMxdizc $81/A8B9 AB PLB A:A801 X:45D9 Y:3C00 P:envMxdizc $81/A8BA 60 RTS A:A801 X:45D9 Y:3C00 P:envMxdizc $81/A8BB 20 95 98 JSR $9895 [$81:9895] A:00FF X:45D9 Y:001E P:envMxdiZC $81/A8BE 20 67 9A JSR $9A67 [$81:9A67] A:0276 X:45D9 Y:0542 P:envMxdizc $81/A8C1 20 3D 9E JSR $9E3D [$81:9E3D] A:0000 X:45D9 Y:0542 P:envMxdizc $81/A8C4 20 13 9F JSR $9F13 [$81:9F13] A:0000 X:45D9 Y:0542 P:envMxdizc $81/A8C7 20 A1 9D JSR $9DA1 [$81:9DA1] A:0246 X:45D9 Y:0542 P:envMxdizc $81/A8CA 20 3C 9D JSR $9D3C [$81:9D3C] A:0001 X:45D9 Y:B10F P:envMxdizC $81/A8CD 20 D6 9C JSR $9CD6 [$81:9CD6] A:0003 X:45D9 Y:B10F P:envMxdizC $81/A8D0 20 06 9D JSR $9D06 [$81:9D06] A:E07F X:45D9 Y:5400 P:envMxdizc $81/A8D3 A6 D8 LDX $D8 [$00:00D8] A:A87E X:45D9 Y:3C00 P:envMxdizc $81/A8D5 9E 3F 02 STZ $023F,x[$7E:4818] A:A87E X:45D9 Y:3C00 P:envMxdizc $81/A8D8 A9 00 LDA #$00 A:A87E X:45D9 Y:3C00 P:envMxdizc $81/A8DA 20 EE D3 JSR $D3EE [$81:D3EE] A:A800 X:45D9 Y:3C00 P:envMxdiZc $81/A8DD A9 01 LDA #$01 A:4500 X:45D9 Y:3C00 P:envMxdizc $81/A8DF AB PLB A:4501 X:45D9 Y:3C00 P:envMxdizc $81/A8E0 60 RTS A:4501 X:45D9 Y:3C00 P:envMxdizc
$81/A8E1 ?
$81/A8E1 A6 D8 LDX $D8 [$00:00D8] A:0000 X:0000 Y:0000 P:envMxdiZc $81/A8E3 20 EF A8 JSR $A8EF [$81:A8EF] A:0000 X:45D9 Y:0000 P:envMxdizc $81/A8E6 A9 01 LDA #$01 A:FF00 X:45D9 Y:03AA P:eNvMxdizc $81/A8E8 20 FF D3 JSR $D3FF [$81:D3FF] A:FF01 X:45D9 Y:03AA P:envMxdizc $81/A8EB A9 01 LDA #$01 A:FF01 X:45D9 Y:03AA P:envMxdizc $81/A8ED AB PLB A:FF01 X:45D9 Y:03AA P:envMxdizc $81/A8EE 60 RTS A:FF01 X:45D9 Y:03AA P:envMxdizc
$81/A8EF ?
$81/A8EF C2 21 REP #$21 ; A = 16-bit, Clear Carry $81/A8F1 BD 45 00 LDA $0045,x[$7E:461E] A:0000 X:45D9 Y:0000 P:envmxdizc $81/A8F4 85 20 STA $20 ; Set Decompression Store address $81/A8F6 BD 15 02 LDA $0215,x[$7E:47EE] A:4C99 X:45D9 Y:0000 P:envmxdizc $81/A8F9 0A ASL A ; Multiply by 3 $81/A8FA 7D 15 02 ADC $0215,x $81/A8FD AA TAX ; Use as Load index (each entry is 3 bytes in size) $81/A8FE BF 00 80 A3 LDA $A38000,x $81/A902 A8 TAY ; Buffer Compressed Data Address in Y $81/A903 E2 20 SEP #$20 ; A = 8-bit $81/A905 BF 02 80 A3 LDA $A38002,x[$A3:996D] A:E083 X:196B Y:E083 P:eNvMxdizc $81/A909 85 00 STA $00 ; Buffer Compressed Data Bank in $00 $81/A90B A2 00 D4 LDX #$D400 ; Decompression Command address is $A1/D400 $81/A90E 86 23 STX $23 $81/A910 A9 7E LDA #$7E ; Decompression Store address on Bank $7E $81/A912 85 22 STA $22 $81/A914 A9 A1 LDA #$A1 $81/A916 85 25 STA $25 $81/A918 BB TYX ; Transfer Compressed Data Address in X $81/A919 A5 00 LDA $00 ; Load Compressed Data Bank in A $81/A91B 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:E0AA X:E083 Y:E083 P:eNvMxdizc $81/A91F C2 21 REP #$21 A:00C3 X:E0E6 Y:0092 P:envMxdizC $81/A921 A6 D8 LDX $D8 [$00:00D8] A:00C3 X:E0E6 Y:0092 P:envmxdizc $81/A923 BD 45 00 LDA $0045,x[$7E:461E] A:00C3 X:45D9 Y:0092 P:envmxdizc $81/A926 65 0E ADC $0E [$00:000E] A:4C99 X:45D9 Y:0092 P:envmxdizc $81/A928 9D 47 00 STA $0047,x[$7E:4620] A:4D2B X:45D9 Y:0092 P:envmxdizc $81/A92B A5 20 LDA $20 [$00:0020] A:4D2B X:45D9 Y:0092 P:envmxdizc $81/A92D 9D 13 00 STA $0013,x[$7E:45EC] A:4C99 X:45D9 Y:0092 P:envmxdizc $81/A930 E2 20 SEP #$20 A:4C99 X:45D9 Y:0092 P:envmxdizc $81/A932 A9 7E LDA #$7E A:4C99 X:45D9 Y:0092 P:envMxdizc $81/A934 9D 15 00 STA $0015,x[$7E:45EE] A:4C7E X:45D9 Y:0092 P:envMxdizc $81/A937 BC 15 02 LDY $0215,x[$7E:47EE] A:4C7E X:45D9 Y:0092 P:envMxdizc $81/A93A 20 64 DA JSR $DA64 [$81:DA64] A:4C7E X:45D9 Y:0879 P:envMxdizc $81/A93D B0 03 BCS $03 [$A942] A:4C7E X:45D9 Y:0879 P:envMxdizC $81/A942 A6 D8 LDX $D8 [$00:00D8] A:4C7E X:45D9 Y:0879 P:envMxdizC $81/A944 C2 20 REP #$20 A:4C7E X:45D9 Y:0879 P:envMxdizC $81/A946 7B TDC A:4C7E X:45D9 Y:0879 P:envmxdizC $81/A947 9D 3A 02 STA $023A,x[$7E:4813] A:0000 X:45D9 Y:0879 P:envmxdiZC $81/A94A 9D 19 02 STA $0219,x[$7E:47F2] A:0000 X:45D9 Y:0879 P:envmxdiZC $81/A94D 3A DEC A A:0000 X:45D9 Y:0879 P:envmxdiZC $81/A94E 9D 17 02 STA $0217,x[$7E:47F0] A:FFFF X:45D9 Y:0879 P:eNvmxdizC $81/A951 E2 20 SEP #$20 A:FFFF X:45D9 Y:0879 P:eNvmxdizC $81/A953 9E 1B 02 STZ $021B,x[$7E:47F4] A:FFFF X:45D9 Y:0879 P:eNvMxdizC $81/A956 20 80 A5 JSR $A580 [$81:A580] A:FFFF X:45D9 Y:0879 P:eNvMxdizC $81/A959 C2 20 REP #$20 A:5C00 X:45D9 Y:03AA P:envMxdizc $81/A95B 7B TDC A:5C00 X:45D9 Y:03AA P:envmxdizc $81/A95C 9D 3A 02 STA $023A,x[$7E:4813] A:0000 X:45D9 Y:03AA P:envmxdiZc $81/A95F 9D 19 02 STA $0219,x[$7E:47F2] A:0000 X:45D9 Y:03AA P:envmxdiZc $81/A962 3A DEC A A:0000 X:45D9 Y:03AA P:envmxdiZc $81/A963 9D 17 02 STA $0217,x[$7E:47F0] A:FFFF X:45D9 Y:03AA P:eNvmxdizc $81/A966 E2 20 SEP #$20 A:FFFF X:45D9 Y:03AA P:eNvmxdizc $81/A968 9E 1B 02 STZ $021B,x[$7E:47F4] A:FFFF X:45D9 Y:03AA P:eNvMxdizc $81/A96B BD 4F 00 LDA $004F,x[$7E:4628] A:FFFF X:45D9 Y:03AA P:eNvMxdizc $81/A96E C9 02 CMP #$02 A:FF00 X:45D9 Y:03AA P:envMxdiZc $81/A970 F0 04 BEQ $04 [$A976] A:FF00 X:45D9 Y:03AA P:eNvMxdizc $81/A972 C9 03 CMP #$03 A:FF00 X:45D9 Y:03AA P:eNvMxdizc $81/A974 D0 59 BNE $59 ; [$A9CF] Branch and exit if not equal
- code is missing here
$81/A9CF 60 RTS
$81/A9D0 ?
$81/A9D0 C2 21 REP #$21 A:0000 X:0002 Y:0002 P:envMxdizc $81/A9D2 A6 D8 LDX $D8 [$00:00D8] A:0000 X:0002 Y:0002 P:envmxdizc $81/A9D4 BC 43 00 LDY $0043,x[$7E:461C] A:0000 X:45D9 Y:0002 P:envmxdizc $81/A9D7 B9 13 00 LDA $0013,y[$7E:45EC] A:0000 X:45D9 Y:45D9 P:envmxdizc $81/A9DA 85 29 STA $29 [$00:0029] A:4C99 X:45D9 Y:45D9 P:envmxdizc $81/A9DC E2 20 SEP #$20 A:4C99 X:45D9 Y:45D9 P:envmxdizc $81/A9DE B9 15 00 LDA $0015,y[$7E:45EE] A:4C99 X:45D9 Y:45D9 P:envMxdizc $81/A9E1 85 2B STA $2B [$00:002B] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/A9E3 20 AE BC JSR $BCAE [$81:BCAE] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/A9E6 B0 0B BCS $0B [$A9F3] A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/A9E8 DE 22 02 DEC $0222,x[$7E:47FB] A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/A9EB D0 27 BNE $27 [$AA14] A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/A9ED BD 20 02 LDA $0220,x[$7E:47F9] A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/A9F0 9D 22 02 STA $0222,x[$7E:47FB] A:0001 X:45D9 Y:45D9 P:envMxdizc $81/A9F3 BC 47 00 LDY $0047,x[$7E:4620] A:0001 X:45D9 Y:45D9 P:envMxdizc $81/A9F6 C4 29 CPY $29 [$00:0029] A:0001 X:45D9 Y:4D2B P:envMxdizc $81/A9F8 F0 49 BEQ $49 [$AA43] A:0001 X:45D9 Y:4D2B P:envMxdizC $81/A9FA 20 C8 BC JSR $BCC8 [$81:BCC8] A:0001 X:45D9 Y:4D2B P:envMxdizC $81/A9FD 90 44 BCC $44 [$AA43] A:978C X:45D9 Y:45D9 P:envMxdizC $81/A9FF 20 A7 BC JSR $BCA7 [$81:BCA7] A:978C X:45D9 Y:45D9 P:envMxdizC $81/AA02 B0 2B BCS $2B [$AA2F] A:9700 X:45D9 Y:45D9 P:eNvMxdizc $81/AA04 FE 1E 02 INC $021E,x[$7E:47F7] A:9700 X:45D9 Y:45D9 P:eNvMxdizc $81/AA07 BD 1E 02 LDA $021E,x[$7E:47F7] A:9700 X:45D9 Y:45D9 P:envMxdizc $81/AA0A DD 1C 02 CMP $021C,x[$7E:47F5] A:9701 X:45D9 Y:45D9 P:envMxdizc $81/AA0D 90 D4 BCC $D4 [$A9E3] A:9701 X:45D9 Y:45D9 P:envMxdiZC $81/AA0F 20 AE BC JSR $BCAE [$81:BCAE] A:9701 X:45D9 Y:45D9 P:envMxdiZC $81/AA12 B0 CF BCS $CF [$A9E3] A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/AA14 C2 21 REP #$21 A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/AA16 BC 43 00 LDY $0043,x[$7E:461C] A:0000 X:45D9 Y:45D9 P:envmxdiZc $81/AA19 A5 29 LDA $29 [$00:0029] A:0000 X:45D9 Y:45DC P:envmxdizc $81/AA1B 99 13 00 STA $0013,y[$7E:45EF] A:9717 X:45D9 Y:45DC P:eNvmxdizc $81/AA1E E2 20 SEP #$20 A:9717 X:45D9 Y:45DC P:eNvmxdizc $81/AA20 A5 2B LDA $2B [$00:002B] A:9717 X:45D9 Y:45DC P:eNvMxdizc $81/AA22 99 15 00 STA $0015,y[$7E:45F1] A:978C X:45D9 Y:45DC P:eNvMxdizc $81/AA25 20 E7 C3 JSR $C3E7 [$81:C3E7] A:978C X:45D9 Y:45DC P:eNvMxdizc $81/AA28 20 D8 9B JSR $9BD8 [$81:9BD8] A:5C0F X:45D9 Y:45D9 P:envMxdizC $81/AA2B A9 01 LDA #$01 A:A87E X:45D9 Y:3C00 P:envMxdizc $81/AA2D AB PLB A:A801 X:45D9 Y:3C00 P:envMxdizc $81/AA2E 60 RTS A:A801 X:45D9 Y:3C00 P:envMxdizc $81/AA2F C2 21 REP #$21 A:0006 X:45D9 Y:4EF1 P:envMxdiZC $81/AA31 BC 43 00 LDY $0043,x[$7E:461C] A:0006 X:45D9 Y:4EF1 P:envmxdiZc $81/AA34 A5 29 LDA $29 [$00:0029] A:0006 X:45D9 Y:45D9 P:envmxdizc $81/AA36 99 13 00 STA $0013,y[$7E:45EC] A:4CC3 X:45D9 Y:45D9 P:envmxdizc $81/AA39 E2 20 SEP #$20 A:4CC3 X:45D9 Y:45D9 P:envmxdizc $81/AA3B A5 2B LDA $2B [$00:002B] A:4CC3 X:45D9 Y:45D9 P:envMxdizc $81/AA3D 99 15 00 STA $0015,y[$7E:45EE] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/AA40 4C AD AA JMP $AAAD [$81:AAAD] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/AA43 C2 21 REP #$21 A:0000 X:45D9 Y:45D9 P:envMxdizc $81/AA45 8A TXA A:0000 X:45D9 Y:45D9 P:envmxdizc $81/AA46 DD 43 00 CMP $0043,x[$7E:461C] A:45D9 X:45D9 Y:45D9 P:envmxdizc $81/AA49 F0 18 BEQ $18 [$AA63] A:45D9 X:45D9 Y:45D9 P:eNvmxdizc $81/AA4B BD 43 00 LDA $0043,x[$7E:461C] A:45D9 X:45D9 Y:45D9 P:eNvmxdizc $81/AA4E 3A DEC A A:45DC X:45D9 Y:45D9 P:envmxdizc $81/AA4F 3A DEC A A:45DB X:45D9 Y:45D9 P:envmxdizc $81/AA50 3A DEC A A:45DA X:45D9 Y:45D9 P:envmxdizc $81/AA51 9D 43 00 STA $0043,x[$7E:461C] A:45D9 X:45D9 Y:45D9 P:envmxdizc $81/AA54 A8 TAY A:45D9 X:45D9 Y:45D9 P:envmxdizc $81/AA55 B9 13 00 LDA $0013,y[$7E:45EC] A:45D9 X:45D9 Y:45D9 P:envmxdizc $81/AA58 85 29 STA $29 [$00:0029] A:4C9B X:45D9 Y:45D9 P:envmxdizc $81/AA5A E2 20 SEP #$20 A:4C9B X:45D9 Y:45D9 P:envmxdizc $81/AA5C B9 15 00 LDA $0015,y[$7E:45EE] A:4C9B X:45D9 Y:45D9 P:envMxdizc $81/AA5F 85 2B STA $2B [$00:002B] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/AA61 80 9C BRA $9C [$A9FF] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/AA63 E2 20 SEP #$20 A:45D9 X:45D9 Y:4D2B P:envmxdiZC $81/AA65 20 E7 C3 JSR $C3E7 [$81:C3E7] A:45D9 X:45D9 Y:4D2B P:envMxdiZC $81/AA68 20 D8 9B JSR $9BD8 [$81:9BD8] A:5D0F X:45D9 Y:5D40 P:envMxdizc $81/AA6B 20 99 AB JSR $AB99 [$81:AB99] A:A87E X:45D9 Y:3C00 P:envMxdizc $81/AA6E B0 1C BCS $1C [$AA8C] A:0003 X:45D9 Y:3C00 P:envMxdiZC
- code is missing here
$81/AA8C A6 D8 LDX $D8 [$00:00D8] A:0003 X:45D9 Y:3C00 P:envMxdiZC $81/AA8E A9 04 LDA #$04 A:0003 X:45D9 Y:3C00 P:envMxdizC $81/AA90 20 FF D3 JSR $D3FF [$81:D3FF] A:0004 X:45D9 Y:3C00 P:envMxdizC $81/AA93 A6 D8 LDX $D8 [$00:00D8] A:0004 X:45D9 Y:3C00 P:envMxdizC $81/AA95 BD 72 00 LDA $0072,x[$7E:464B] A:0004 X:45D9 Y:3C00 P:envMxdizC $81/AA98 38 SEC A:0006 X:45D9 Y:3C00 P:envMxdizC $81/AA99 FD 19 02 SBC $0219,x[$7E:47F2] A:0006 X:45D9 Y:3C00 P:envMxdizC $81/AA9C 4A LSR A A:0002 X:45D9 Y:3C00 P:envMxdizC $81/AA9D 48 PHA A:0001 X:45D9 Y:3C00 P:envMxdizc $81/AA9E C2 20 REP #$20 A:0001 X:45D9 Y:3C00 P:envMxdizc $81/AAA0 20 8E C4 JSR $C48E [$81:C48E] A:0001 X:45D9 Y:3C00 P:envmxdizc $81/AAA3 E2 20 SEP #$20 A:0016 X:45D9 Y:4FAD P:envmxdizc $81/AAA5 68 PLA A:0016 X:45D9 Y:4FAD P:envMxdizc $81/AAA6 3A DEC A A:0001 X:45D9 Y:4FAD P:envMxdizc $81/AAA7 D0 F4 BNE $F4 [$AA9D] A:0000 X:45D9 Y:4FAD P:envMxdiZc $81/AAA9 A9 01 LDA #$01 A:0000 X:45D9 Y:4FAD P:envMxdiZc $81/AAAB AB PLB A:0001 X:45D9 Y:4FAD P:envMxdizc $81/AAAC 60 RTS A:0001 X:45D9 Y:4FAD P:envMxdizc $81/AAAD A6 D8 LDX $D8 [$00:00D8] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/AAAF A5 B4 LDA $B4 [$00:00B4] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/AAB1 9D 17 02 STA $0217,x[$7E:47F0] A:4C01 X:45D9 Y:45D9 P:envMxdizc $81/AAB4 A9 03 LDA #$03 A:4C01 X:45D9 Y:45D9 P:envMxdizc $81/AAB6 20 19 D4 JSR $D419 [$81:D419] A:4C03 X:45D9 Y:45D9 P:envMxdizc $81/AAB9 20 E7 C3 JSR $C3E7 [$81:C3E7] A:45DA X:45D9 Y:45D9 P:envMxdizc $81/AABC 20 D8 9B JSR $9BD8 [$81:9BD8] A:5C0F X:45D9 Y:45D9 P:envMxdizC $81/AABF A9 01 LDA #$01 A:A87E X:45D9 Y:3C00 P:envMxdizc $81/AAC1 AB PLB A:A801 X:45D9 Y:3C00 P:envMxdizc $81/AAC2 60 RTS A:A801 X:45D9 Y:3C00 P:envMxdizc
$81/AAC3 A6 D8 LDX $D8 [$00:00D8] A:0000 X:0006 Y:0006 P:envMxdizc $81/AAC5 BD 1B 02 LDA $021B,x[$7E:47F4] A:0000 X:45D9 Y:0006 P:envMxdizc $81/AAC8 DD 72 00 CMP $0072,x[$7E:464B] A:0006 X:45D9 Y:0006 P:envMxdizc $81/AACB 90 09 BCC $09 [$AAD6] A:0006 X:45D9 Y:0006 P:envMxdiZC $81/AACD 9E 2E 02 STZ $022E,x[$7E:4807] A:0006 X:45D9 Y:0006 P:envMxdiZC $81/AAD0 9E 1B 02 STZ $021B,x[$7E:47F4] A:0006 X:45D9 Y:0006 P:envMxdiZC $81/AAD3 4C 3F AB JMP $AB3F [$81:AB3F] A:0006 X:45D9 Y:0006 P:envMxdiZC
- code is missing here
$81/AB3F A6 D8 LDX $D8 [$00:00D8] A:0006 X:45D9 Y:0006 P:envMxdiZC $81/AB41 20 99 AB JSR $AB99 [$81:AB99] A:0006 X:45D9 Y:0006 P:envMxdizC $81/AB44 B0 0F BCS $0F [$AB55] A:0003 X:45D9 Y:0006 P:envMxdiZC
- code is missing here
$81/AB55 A9 0B LDA #$0B A:0003 X:45D9 Y:0006 P:envMxdiZC $81/AB57 20 19 D4 JSR $D419 [$81:D419] A:000B X:45D9 Y:0006 P:envMxdizC $81/AB5A A6 D8 LDX $D8 [$00:00D8] A:45DB X:45D9 Y:0006 P:envMxdizC $81/AB5C 20 DE AC JSR $ACDE [$81:ACDE] A:45DB X:45D9 Y:0006 P:envMxdizC $81/AB5F AD 65 05 LDA $0565 [$7E:0565] A:FFFF X:45D9 Y:4E9B P:envMxdiZC $81/AB62 89 80 BIT #$80 A:FF00 X:45D9 Y:4E9B P:envMxdiZC $81/AB64 D0 05 BNE $05 [$AB6B] A:FF00 X:45D9 Y:4E9B P:envMxdiZC $81/AB66 20 EE AB JSR $ABEE [$81:ABEE] A:FF00 X:45D9 Y:4E9B P:envMxdiZC $81/AB69 80 24 BRA $24 [$AB8F] A:D900 X:45D9 Y:6F80 P:envMxdizc $81/AB6B 20 AE AB JSR $ABAE [$81:ABAE] A:FF80 X:45D9 Y:4E9B P:eNvMxdizC $81/AB6E A6 D8 LDX $D8 [$00:00D8] A:FF00 X:45D9 Y:4E9B P:envMxdiZC $81/AB70 20 F1 AB JSR $ABF1 ; Show and animate Gloved Hand $81/AB73 20 2F D4 JSR $D42F [$81:D42F] A:2301 X:45D9 Y:0006 P:envMxdizc $81/AB76 A5 A5 LDA $A5 [$00:00A5] A:2301 X:45D9 Y:0006 P:envMxdizc $81/AB78 89 08 BIT #$08 A:230C X:45D9 Y:0006 P:envMxdizc $81/AB7A F0 13 BEQ $13 [$AB8F] A:230C X:45D9 Y:0006 P:envMxdizc $81/AB7C 20 2F D4 JSR $D42F [$81:D42F] A:230C X:45D9 Y:0006 P:envMxdizc $81/AB7F 20 11 CF JSR $CF11 [$81:CF11] A:230C X:45D9 Y:0006 P:envMxdizc $81/AB82 A6 D8 LDX $D8 [$00:00D8] A:23EE X:45D9 Y:45D9 P:eNvMxdizc $81/AB84 9E 1B 02 STZ $021B,x[$7E:47F4] A:23EE X:45D9 Y:45D9 P:envMxdizc $81/AB87 A9 FF LDA #$FF A:23EE X:45D9 Y:45D9 P:envMxdizc $81/AB89 9D 17 02 STA $0217,x[$7E:47F0] A:23FF X:45D9 Y:45D9 P:eNvMxdizc $81/AB8C 9E 19 02 STZ $0219,x[$7E:47F2] A:23FF X:45D9 Y:45D9 P:eNvMxdizc $81/AB8F 20 E7 C3 JSR $C3E7 [$81:C3E7] A:D900 X:45D9 Y:6F80 P:envMxdizc $81/AB92 20 D8 9B JSR $9BD8 [$81:9BD8] A:5C0F X:45D9 Y:45D9 P:envMxdizC $81/AB95 A9 01 LDA #$01 A:A87E X:45D9 Y:3C00 P:envMxdizc $81/AB97 AB PLB A:A801 X:45D9 Y:3C00 P:envMxdizc $81/AB98 60 RTS A:A801 X:45D9 Y:3C00 P:envMxdizc
$81/AB99 ?
$81/AB99 7B TDC A:0000 X:0008 Y:0008 P:envMxdizc $81/AB9A A5 A4 LDA $A4 [$00:00A4] A:0000 X:0008 Y:0008 P:envMxdiZc $81/AB9C 89 10 BIT #$10 A:0003 X:0008 Y:0008 P:envMxdizc $81/AB9E D0 06 BNE $06 [$ABA6] A:0003 X:0008 Y:0008 P:envMxdiZc $81/ABA0 89 80 BIT #$80 A:0003 X:0008 Y:0008 P:envMxdiZc $81/ABA2 D0 06 BNE $06 [$ABAA] A:0003 X:0008 Y:0008 P:envMxdiZc $81/ABA4 38 SEC A:0003 X:0008 Y:0008 P:envMxdiZc $81/ABA5 60 RTS A:0003 X:0008 Y:0008 P:envMxdiZC
- code is missing here
$81/ABAE ?
$81/ABAE A6 D8 LDX $D8 [$00:00D8] A:FF80 X:45D9 Y:4E9B P:eNvMxdizC $81/ABB0 BD 4F 00 LDA $004F,x[$7E:4628] A:FF80 X:45D9 Y:4E9B P:envMxdizC $81/ABB3 F0 04 BEQ $04 [$ABB9] A:FF00 X:45D9 Y:4E9B P:envMxdiZC
- code is missing here
$81/ABB9 60 RTS A:FF00 X:45D9 Y:4E9B P:envMxdiZC
$81/ABEE ?
$81/ABEE 7B TDC A:FF00 X:45D9 Y:4E9B P:envMxdiZC $81/ABEF 80 02 BRA $02 [$ABF3] A:0000 X:45D9 Y:4E9B P:envMxdiZC
$81/ABF1 TEXTBOX: Show and animate Gloved Hand
At the End of a Textbox, there can appear a Gloved Hand Icon that moves up and down to signalize that this message will go on. This gets animated here.
$81/ABF1 A9 01 LDA #$01 A:FF00 X:45D9 Y:4E9B P:envMxdizC $81/ABF3 48 PHA A:0000 X:45D9 Y:4E9B P:envMxdiZC $81/ABF4 48 PHA A:0000 X:45D9 Y:4E9B P:envMxdiZC $81/ABF5 20 1E BC JSR $BC1E [$81:BC1E] A:0000 X:45D9 Y:4E9B P:envMxdiZC $81/ABF8 85 04 STA $04 [$00:0004] A:00D0 X:45D9 Y:4E9B P:envmxdizc $81/ABFA A5 00 LDA $00 ; Load X-Position of the right corner of the active textbox? (result of testing) $81/ABFC 3A DEC A ; Decrement twice to move the Gloved Hand 2 Tiles to the left $81/ABFD 3A DEC A $81/ABFE 0A ASL A ; Multiply by 2 $81/ABFF 65 04 ADC $04 [$00:0004] A:0022 X:45D9 Y:4E9B P:envmxdizc $81/AC01 29 FF 07 AND #$07FF A:00F2 X:45D9 Y:4E9B P:envmxdizc $81/AC04 85 04 STA $04 [$00:0004] A:00F2 X:45D9 Y:4E9B P:envmxdizc $81/AC06 A5 02 LDA $02 ; Load Y-Position of the lower edge of the active textbox? (result of testing) $81/AC08 3A DEC A ; Decrement to move the Gloved Hand one Tile up $81/AC09 EB XBA ; Multiply by #$20 (one Tilemap line = #$20 bytes) $81/AC0A 4A LSR A $81/AC0B 4A LSR A $81/AC0C 65 04 ADC $04 ; Add X-Position in this line $81/AC0E 29 FF 07 AND #$07FF A:01F2 X:45D9 Y:4E9B P:envmxdizc $81/AC11 AA TAX ; Transfer in X as Store Index $81/AC12 A3 01 LDA $01,s [$00:1FC3] A:01F2 X:01F2 Y:4E9B P:envmxdizc $81/AC14 F0 05 BEQ $05 [$AC1B] A:0000 X:01F2 Y:4E9B P:envmxdiZc $81/AC16 A0 E6 AB LDY #$ABE6 ; Tilemap Address for the Gloved Hand Icon $81/AC19 80 03 BRA $03 [$AC1E] A:0101 X:01F2 Y:ABE6 P:eNvmxdizc $81/AC1B A0 DE AB LDY #$ABDE ; Tilemap Address to hide the Gloved Hand Icon $81/AC1E 84 20 STY $20 ; Build source address of Tilemap in [$20] $81/AC20 E2 20 SEP #$20 ; A = 8-bit $81/AC22 A9 81 LDA #$81 ; Bank of the Tilemap is in both cases $81 $81/AC24 85 22 STA $22 $81/AC26 20 51 AC JSR $AC51 ; Write Gloved Hand Icon into BG Tilemap buffer (2x2 tiles) $81/AC29 A3 01 LDA $01,s [$00:1FC3] A:23F3 X:01F2 Y:0006 P:eNvMxdizc $81/AC2B D0 1F BNE $1F [$AC4C] A:2300 X:01F2 Y:0006 P:envMxdiZc $81/AC2D A2 D7 D9 LDX #$D9D7 ; DMA Source Address 1 - Gloved Hand Up sprite tiles $81/AC30 AD B9 05 LDA $05B9 ; Load General Frame Counter to decide which tiles to take $81/AC33 89 10 BIT #$10 ; Each 16 frames, the animation changes $81/AC35 F0 03 BEQ $03 ; [$AC3A] If Bit is set, use Source Address 2 $81/AC37 A2 17 DA LDX #$DA17 ; DMA Source Address 2 - Gloved Hand Down sprite tiles $81/AC3A A0 40 00 LDY #$0040 ; Number of Bytes to transfer $81/AC3D 84 0C STY $0C $81/AC3F A0 80 6F LDY #$6F80 ; VRAM Destination $81/AC42 A9 80 LDA #$80 ; VRAM Settings (for $2115) $81/AC44 85 0E STA $0E $81/AC46 A9 81 LDA #$81 ; DMA Source Bank $81/AC48 22 24 9F 80 JSL $809F24 ; VRAM DMA $81/AC4C 68 PLA A:D980 X:0000 Y:6F80 P:envMxdizc $81/AC4D 68 PLA A:D900 X:0000 Y:6F80 P:envMxdiZc $81/AC4E A6 D8 LDX $D8 [$00:00D8] A:D900 X:0000 Y:6F80 P:envMxdiZc $81/AC50 60 RTS A:D900 X:45D9 Y:6F80 P:envMxdizc
$81/AC51 TEXTBOX: Write Glove Hand into Tilemap
This loads four subsequent double-bytes from [$20] and puts it to x, x+2, x+#$40 and x+#$42.
$81/AC51 08 PHP A:0081 X:01F2 Y:ABDE P:eNvMxdizc $81/AC52 DA PHX A:0081 X:01F2 Y:ABDE P:eNvMxdizc $81/AC53 C2 20 REP #$20 A:0081 X:01F2 Y:ABDE P:eNvMxdizc $81/AC55 A0 00 00 LDY #$0000 A:0081 X:01F2 Y:ABDE P:eNvmxdizc $81/AC58 B7 20 LDA [$20],y[$81:ABDE] A:0081 X:01F2 Y:0000 P:envmxdiZc $81/AC5A 9F 00 A8 7E STA $7EA800,x[$7E:A9F2] A:23F0 X:01F2 Y:0000 P:envmxdizc $81/AC5E C8 INY A:23F0 X:01F2 Y:0000 P:envmxdizc $81/AC5F C8 INY A:23F0 X:01F2 Y:0001 P:envmxdizc $81/AC60 B7 20 LDA [$20],y[$81:ABE0] A:23F0 X:01F2 Y:0002 P:envmxdizc $81/AC62 9F 02 A8 7E STA $7EA802,x[$7E:A9F4] A:23F1 X:01F2 Y:0002 P:envmxdizc $81/AC66 C8 INY A:23F1 X:01F2 Y:0002 P:envmxdizc $81/AC67 C8 INY A:23F1 X:01F2 Y:0003 P:envmxdizc $81/AC68 8A TXA A:23F1 X:01F2 Y:0004 P:envmxdizc $81/AC69 18 CLC A:01F2 X:01F2 Y:0004 P:envmxdizc $81/AC6A 69 40 00 ADC #$0040 A:01F2 X:01F2 Y:0004 P:envmxdizc $81/AC6D 29 FF 07 AND #$07FF A:0232 X:01F2 Y:0004 P:envmxdizc $81/AC70 AA TAX A:0232 X:01F2 Y:0004 P:envmxdizc $81/AC71 B7 20 LDA [$20],y[$81:ABE2] A:0232 X:0232 Y:0004 P:envmxdizc $81/AC73 9F 00 A8 7E STA $7EA800,x[$7E:AA32] A:23F2 X:0232 Y:0004 P:envmxdizc $81/AC77 C8 INY A:23F2 X:0232 Y:0004 P:envmxdizc $81/AC78 C8 INY A:23F2 X:0232 Y:0005 P:envmxdizc $81/AC79 B7 20 LDA [$20],y[$81:ABE4] A:23F2 X:0232 Y:0006 P:envmxdizc $81/AC7B 9F 02 A8 7E STA $7EA802,x[$7E:AA34] A:23F3 X:0232 Y:0006 P:envmxdizc $81/AC7F FA PLX A:23F3 X:0232 Y:0006 P:envmxdizc $81/AC80 28 PLP A:23F3 X:01F2 Y:0006 P:envmxdizc $81/AC81 60 RTS A:23F3 X:01F2 Y:0006 P:eNvMxdizc
$81/AC82 ?
$81/AC82 20 99 AB JSR $AB99 [$81:AB99] A:0000 X:0008 Y:0008 P:envMxdizc $81/AC85 90 2B BCC $2B [$ACB2] A:0003 X:0008 Y:0008 P:envMxdiZC $81/AC87 A6 D8 LDX $D8 [$00:00D8] A:0003 X:0008 Y:0008 P:envMxdiZC $81/AC89 20 DE AC JSR $ACDE [$81:ACDE] A:0003 X:3919 Y:0008 P:envMxdizC $81/AC8C AD 65 05 LDA $0565 ; Joypad held buttons - Copy? $81/AC8F 89 80 BIT #$80 A:FF00 X:3919 Y:41DB P:envMxdiZC $81/AC91 D0 11 BNE $11 [$ACA4] A:FF00 X:3919 Y:41DB P:envMxdiZC $81/AC93 AD 66 05 LDA $0566 ; Joypad held buttons - Copy? $81/AC96 89 80 BIT #$80 A:FF00 X:3919 Y:41DB P:envMxdiZC $81/AC98 D0 0A BNE $0A [$ACA4] A:FF00 X:3919 Y:41DB P:envMxdiZC $81/AC9A 20 E7 C3 JSR $C3E7 [$81:C3E7] A:FF00 X:3919 Y:41DB P:envMxdiZC $81/AC9D 20 D8 9B JSR $9BD8 [$81:9BD8] A:580F X:3919 Y:3919 P:envMxdizC $81/ACA0 A9 01 LDA #$01 A:AC7E X:3919 Y:3C00 P:envMxdizc $81/ACA2 AB PLB A:AC01 X:3919 Y:3C00 P:envMxdizc $81/ACA3 60 RTS A:AC01 X:3919 Y:3C00 P:envMxdizc $81/ACA4 20 B5 AC JSR $ACB5 [$81:ACB5] A:FF80 X:3919 Y:41DB P:eNvMxdizC $81/ACA7 A6 D8 LDX $D8 [$00:00D8] A:0000 X:0000 Y:41DB P:envMxdiZc $81/ACA9 20 2F D4 JSR $D42F [$81:D42F] A:0000 X:3919 Y:41DB P:envMxdizc $81/ACAC B0 04 BCS $04 [$ACB2] A:0000 X:3919 Y:41DB P:envMxdiZC
- code is missing here
$81/ACB2 7B TDC A:0000 X:3919 Y:41DB P:envMxdiZC $81/ACB3 AB PLB A:0000 X:3919 Y:41DB P:envMxdiZC $81/ACB4 60 RTS A:0000 X:3919 Y:41DB P:envMxdizC
$81/ACB5 ?
$81/ACB5 A6 D8 LDX $D8 [$00:00D8] A:FF80 X:3919 Y:41DB P:eNvMxdizC $81/ACB7 7B TDC A:FF80 X:3919 Y:41DB P:envMxdizC $81/ACB8 BD 4F 00 LDA $004F,x[$7E:3968] A:0000 X:3919 Y:41DB P:envMxdiZC $81/ACBB 0A ASL A A:0000 X:3919 Y:41DB P:envMxdiZC $81/ACBC AA TAX A:0000 X:3919 Y:41DB P:envMxdiZc $81/ACBD 7C C0 AC JMP ($ACC0,x)[$81:ACD8] A:0000 X:0000 Y:41DB P:envMxdiZc
$81/ACD8 ?
$81/ACD8 60 RTS A:0000 X:0000 Y:41DB P:envMxdiZc
$81/ACDE ?
$81/ACDE AD 62 05 LDA $0562 [$7E:0562] A:0003 X:3919 Y:0008 P:envMxdizC $81/ACE1 89 40 BIT #$40 A:0000 X:3919 Y:0008 P:envMxdiZC $81/ACE3 F0 11 BEQ $11 [$ACF6] A:0000 X:3919 Y:0008 P:envMxdiZC
- code is missing here
$81/ACF6 20 C9 AD JSR $ADC9 [$81:ADC9] A:0000 X:3919 Y:0008 P:envMxdiZC $81/ACF9 B0 03 BCS $03 [$ACFE] A:FFFF X:3919 Y:41DB P:envMxdiZC $81/ACFB 20 ED AD JSR $ADED [$81:ADED] A:4EF1 X:45D9 Y:4EF1 P:envMxdiZc $81/ACFE 60 RTS A:FFFF X:3919 Y:41DB P:envMxdiZC
$81/ADC9 ?
$81/ADC9 C2 20 REP #$20 A:0000 X:3919 Y:0008 P:envMxdiZC $81/ADCB BD 72 00 LDA $0072,x[$7E:398B] A:0000 X:3919 Y:0008 P:envmxdiZC $81/ADCE 4A LSR A A:0006 X:3919 Y:0008 P:envmxdizC $81/ADCF 85 0E STA $0E [$00:000E] A:0003 X:3919 Y:0008 P:envmxdizc $81/ADD1 BC 28 02 LDY $0228,x[$7E:3B41] A:0003 X:3919 Y:0008 P:envmxdizc $81/ADD4 20 18 B9 JSR $B918 [$81:B918] A:0003 X:3919 Y:4235 P:envmxdizc $81/ADD7 B0 0E BCS $0E [$ADE7] A:0016 X:3919 Y:420D P:eNvmxdizc $81/ADD9 C9 FF FF CMP #$FFFF A:0016 X:3919 Y:420D P:eNvmxdizc $81/ADDC F0 09 BEQ $09 [$ADE7] A:0016 X:3919 Y:420D P:envmxdizc $81/ADDE 98 TYA A:0016 X:3919 Y:420D P:envmxdizc $81/ADDF 9D 2A 02 STA $022A,x[$7E:3B43] A:420D X:3919 Y:420D P:envmxdizc $81/ADE2 C6 0E DEC $0E [$00:000E] A:420D X:3919 Y:420D P:envmxdizc $81/ADE4 D0 EE BNE $EE [$ADD4] A:420D X:3919 Y:420D P:envmxdizc $81/ADE6 18 CLC A:4EF1 X:45D9 Y:4EF1 P:envmxdiZc $81/ADE7 E2 20 SEP #$20 A:FFFF X:3919 Y:41DB P:envmxdiZC $81/ADE9 60 RTS A:FFFF X:3919 Y:41DB P:envMxdiZC
$81/ADED ?
$81/ADED A9 01 LDA #$01 A:4EF1 X:45D9 Y:4EF1 P:envMxdiZc $81/ADEF 48 PHA A:4E01 X:45D9 Y:4EF1 P:envMxdizc $81/ADF0 48 PHA A:4E01 X:45D9 Y:4EF1 P:envMxdizc $81/ADF1 A6 D8 LDX $D8 [$00:00D8] A:4E01 X:45D9 Y:4EF1 P:envMxdizc $81/ADF3 BD 4F 00 LDA $004F,x[$7E:4628] A:4E01 X:45D9 Y:4EF1 P:envMxdizc $81/ADF6 C9 07 CMP #$07 A:4E00 X:45D9 Y:4EF1 P:envMxdiZc $81/ADF8 D0 03 BNE $03 [$ADFD] A:4E00 X:45D9 Y:4EF1 P:eNvMxdizc
- code is missing here
$81/ADFD A0 00 2C LDY #$2C00 A:4E00 X:45D9 Y:4EF1 P:eNvMxdizc $81/AE00 BD 39 02 LDA $0239,x[$7E:4812] A:4E00 X:45D9 Y:2C00 P:envMxdizc $81/AE03 C9 01 CMP #$01 A:4E00 X:45D9 Y:2C00 P:envMxdiZc $81/AE05 D0 03 BNE $03 [$AE0A] A:4E00 X:45D9 Y:2C00 P:eNvMxdizc
- code is missing here
$81/AE0A 84 0C STY $0C [$00:000C] A:4E00 X:45D9 Y:2C00 P:eNvMxdizc $81/AE0C C2 20 REP #$20 A:4E00 X:45D9 Y:2C00 P:eNvMxdizc $81/AE0E BD 62 00 LDA $0062,x[$7E:463B] A:4E00 X:45D9 Y:2C00 P:eNvmxdizc $81/AE11 85 06 STA $06 [$00:0006] A:03C9 X:45D9 Y:2C00 P:envmxdizc $81/AE13 BD 66 00 LDA $0066,x[$7E:463F] A:03C9 X:45D9 Y:2C00 P:envmxdizc $81/AE16 85 08 STA $08 [$00:0008] A:83C9 X:45D9 Y:2C00 P:eNvmxdizc $81/AE18 BC 2A 02 LDY $022A,x[$7E:4803] A:83C9 X:45D9 Y:2C00 P:eNvmxdizc $81/AE1B 20 18 B9 JSR $B918 [$81:B918] A:83C9 X:45D9 Y:4EF1 P:envmxdizc $81/AE1E BD 68 00 LDA $0068,x[$7E:4641] A:0016 X:45D9 Y:4ECD P:eNvmxdizc $81/AE21 85 0A STA $0A [$00:000A] A:03C7 X:45D9 Y:4ECD P:envmxdizc $81/AE23 BD 60 00 LDA $0060,x[$7E:4639] A:03C7 X:45D9 Y:4ECD P:envmxdizc $81/AE26 AA TAX A:00F6 X:45D9 Y:4ECD P:envmxdizc $81/AE27 B0 0A BCS $0A [$AE33] A:00F6 X:00F6 Y:4ECD P:envmxdizc $81/AE29 A3 01 LDA $01,s [$00:1FC1] A:00F6 X:00F6 Y:4ECD P:envmxdizc $81/AE2B D0 06 BNE $06 [$AE33] A:0101 X:00F6 Y:4ECD P:envmxdizc
- code is missing here
$81/AE33 A5 0A LDA $0A [$00:000A] A:0101 X:00F6 Y:4ECD P:envmxdizc $81/AE35 05 0C ORA $0C [$00:000C] A:03C7 X:00F6 Y:4ECD P:envmxdizc $81/AE37 9F 00 A8 7E STA $7EA800,x[$7E:A8F6] A:2FC7 X:00F6 Y:4ECD P:envmxdizc $81/AE3B A6 D8 LDX $D8 [$00:00D8] A:2FC7 X:00F6 Y:4ECD P:envmxdizc $81/AE3D BC 2A 02 LDY $022A,x[$7E:4803] A:2FC7 X:45D9 Y:4ECD P:envmxdizc $81/AE40 BD 72 00 LDA $0072,x[$7E:464B] A:2FC7 X:45D9 Y:4EF1 P:envmxdizc $81/AE43 4A LSR A A:0006 X:45D9 Y:4EF1 P:envmxdizc $81/AE44 85 04 STA $04 [$00:0004] A:0003 X:45D9 Y:4EF1 P:envmxdizc $81/AE46 20 64 B9 JSR $B964 [$81:B964] A:0003 X:45D9 Y:4EF1 P:envmxdizc $81/AE49 B0 04 BCS $04 [$AE4F] A:0016 X:45D9 Y:4F17 P:envmxdizc $81/AE4B C6 04 DEC $04 [$00:0004] A:0016 X:45D9 Y:4F17 P:envmxdizc $81/AE4D D0 F7 BNE $F7 [$AE46] A:0016 X:45D9 Y:4F17 P:envmxdizc $81/AE4F BD 64 00 LDA $0064,x[$7E:463D] A:FFFF X:45D9 Y:4F51 P:envmxdizC $81/AE52 AA TAX A:0236 X:45D9 Y:4F51 P:envmxdizC $81/AE53 B0 0A BCS $0A [$AE5F] A:0236 X:0236 Y:4F51 P:envmxdizC
- code is missing here
$81/AE5F A5 0A LDA $0A [$00:000A] A:0236 X:0236 Y:4F51 P:envmxdizC $81/AE61 05 0C ORA $0C [$00:000C] A:03C7 X:0236 Y:4F51 P:envmxdizC $81/AE63 9F 00 A8 7E STA $7EA800,x[$7E:AA36] A:2FC7 X:0236 Y:4F51 P:envmxdizC $81/AE67 68 PLA A:2FC7 X:0236 Y:4F51 P:envmxdizC $81/AE68 E2 20 SEP #$20 A:0101 X:0236 Y:4F51 P:envmxdizC $81/AE6A A6 D8 LDX $D8 [$00:00D8] A:0101 X:0236 Y:4F51 P:envMxdizC $81/AE6C 60 RTS A:0101 X:45D9 Y:4F51 P:envMxdizC
$81/B918 ?
$81/B918 BD 24 02 LDA $0224,x[$7E:3B3D] A:0003 X:3919 Y:4235 P:envmxdizc $81/B91B 85 00 STA $00 [$00:0000] A:41D9 X:3919 Y:4235 P:envmxdizc $81/B91D BD 26 02 LDA $0226,x[$7E:3B3F] A:41D9 X:3919 Y:4235 P:envmxdizc $81/B920 85 02 STA $02 [$00:0002] A:45D9 X:3919 Y:4235 P:envmxdizc $81/B922 C4 00 CPY $00 [$00:0000] A:45D9 X:3919 Y:4235 P:envmxdizc $81/B924 D0 03 BNE $03 [$B929] A:45D9 X:3919 Y:4235 P:envmxdizC
- code is missing here
$81/B929 88 DEY A:45D9 X:3919 Y:4235 P:envmxdizC $81/B92A 88 DEY A:45D9 X:3919 Y:4234 P:envmxdizC $81/B92B B9 00 00 LDA $0000,y[$7E:4233] A:45D9 X:3919 Y:4233 P:envmxdizC $81/B92E C9 FF FF CMP #$FFFF A:0016 X:3919 Y:4233 P:envmxdizC $81/B931 F0 2F BEQ $2F [$B962] A:0016 X:3919 Y:4233 P:envmxdizc $81/B933 C4 00 CPY $00 [$00:0000] A:0016 X:3919 Y:4233 P:envmxdizc $81/B935 D0 03 BNE $03 [$B93A] A:0016 X:3919 Y:4233 P:envmxdizC
- code is missing here
$81/B93A 88 DEY A:0016 X:3919 Y:4233 P:envmxdizC $81/B93B 88 DEY A:0016 X:3919 Y:4232 P:envmxdizC $81/B93C B9 00 00 LDA $0000,y[$7E:4231] A:0016 X:3919 Y:4231 P:envmxdizC $81/B93F C9 FF FF CMP #$FFFF A:0105 X:3919 Y:4231 P:envmxdizC $81/B942 F0 13 BEQ $13 [$B957] A:0105 X:3919 Y:4231 P:envmxdizc $81/B944 29 FF 0F AND #$0FFF A:0105 X:3919 Y:4231 P:envmxdizc $81/B947 C9 16 00 CMP #$0016 A:0105 X:3919 Y:4231 P:envmxdizc $81/B94A F0 0B BEQ $0B [$B957] A:0105 X:3919 Y:4231 P:envmxdizC $81/B94C C4 00 CPY $00 [$00:0000] A:0105 X:3919 Y:4231 P:envmxdizC $81/B94E D0 03 BNE $03 [$B953] A:0105 X:3919 Y:4231 P:envmxdizC
- code is missing here
$81/B953 88 DEY A:0105 X:3919 Y:4231 P:envmxdizC $81/B954 88 DEY A:0105 X:3919 Y:4230 P:envmxdizC $81/B955 80 E5 BRA $E5 [$B93C] A:0105 X:3919 Y:422F P:envmxdizC $81/B957 C8 INY A:0016 X:3919 Y:420B P:envmxdiZC $81/B958 C8 INY A:0016 X:3919 Y:420C P:envmxdizC $81/B959 C4 02 CPY $02 [$00:0002] A:0016 X:3919 Y:420D P:envmxdizC $81/B95B D0 03 BNE $03 [$B960] A:0016 X:3919 Y:420D P:eNvmxdizc
- code is missing here
$81/B960 18 CLC A:0016 X:3919 Y:420D P:eNvmxdizc $81/B961 60 RTS A:0016 X:3919 Y:420D P:eNvmxdizc
$81/B964 ?
$81/B964 BD 26 02 LDA $0226,x[$7E:47FF] A:0003 X:45D9 Y:4EF1 P:envmxdizc $81/B967 85 02 STA $02 [$00:0002] A:5299 X:45D9 Y:4EF1 P:envmxdizc $81/B969 B9 00 00 LDA $0000,y[$7E:4EF1] A:5299 X:45D9 Y:4EF1 P:envmxdizc $81/B96C 29 FF 0F AND #$0FFF A:00D4 X:45D9 Y:4EF1 P:envmxdizc $81/B96F C9 16 00 CMP #$0016 A:00D4 X:45D9 Y:4EF1 P:envmxdizc $81/B972 F0 0B BEQ $0B [$B97F] A:00D4 X:45D9 Y:4EF1 P:envmxdizC $81/B974 C8 INY A:00D4 X:45D9 Y:4EF1 P:envmxdizC $81/B975 C8 INY A:00D4 X:45D9 Y:4EF2 P:envmxdizC $81/B976 C4 02 CPY $02 [$00:0002] A:00D4 X:45D9 Y:4EF3 P:envmxdizC $81/B978 D0 03 BNE $03 [$B97D] A:00D4 X:45D9 Y:4EF3 P:eNvmxdizc
- code is missing here
$81/B97D 80 EA BRA $EA [$B969] A:00D4 X:45D9 Y:4EF3 P:eNvmxdizc $81/B97F C8 INY A:0016 X:45D9 Y:4F15 P:envmxdiZC $81/B980 C8 INY A:0016 X:45D9 Y:4F16 P:envmxdizC $81/B981 C4 02 CPY $02 [$00:0002] A:0016 X:45D9 Y:4F17 P:envmxdizC $81/B983 D0 03 BNE $03 [$B988] A:0016 X:45D9 Y:4F17 P:eNvmxdizc
- code is missing here
$81/B988 5A PHY A:0016 X:45D9 Y:4F17 P:eNvmxdizc $81/B989 B9 00 00 LDA $0000,y[$7E:4F17] A:0016 X:45D9 Y:4F17 P:eNvmxdizc $81/B98C C9 FF FF CMP #$FFFF A:0020 X:45D9 Y:4F17 P:envmxdizc $81/B98F F0 16 BEQ $16 [$B9A7] A:0020 X:45D9 Y:4F17 P:envmxdizc $81/B991 29 FF 0F AND #$0FFF A:0020 X:45D9 Y:4F17 P:envmxdizc $81/B994 C9 16 00 CMP #$0016 A:0020 X:45D9 Y:4F17 P:envmxdizc $81/B997 F0 0B BEQ $0B [$B9A4] A:0020 X:45D9 Y:4F17 P:envmxdizC $81/B999 C8 INY A:0020 X:45D9 Y:4F17 P:envmxdizC $81/B99A C8 INY A:0020 X:45D9 Y:4F18 P:envmxdizC $81/B99B C4 02 CPY $02 [$00:0002] A:0020 X:45D9 Y:4F19 P:envmxdizC $81/B99D D0 03 BNE $03 [$B9A2] A:0020 X:45D9 Y:4F19 P:eNvmxdizc
- code is missing here
$81/B9A2 80 E5 BRA $E5 [$B989] A:0020 X:45D9 Y:4F19 P:eNvmxdizc $81/B9A4 7A PLY A:0016 X:45D9 Y:4F39 P:envmxdiZC $81/B9A5 18 CLC A:0016 X:45D9 Y:4F17 P:envmxdizC $81/B9A6 60 RTS A:0016 X:45D9 Y:4F17 P:envmxdizc $81/B9A7 7A PLY A:FFFF X:45D9 Y:4F51 P:envmxdiZC $81/B9A8 38 SEC A:FFFF X:45D9 Y:4F51 P:envmxdizC $81/B9A9 60 RTS A:FFFF X:45D9 Y:4F51 P:envmxdizC
$81/BC1E ?
$81/BC1E BD 70 00 LDA $0070,x[$7E:4649] A:0000 X:45D9 Y:4E9B P:envMxdiZC $81/BC21 85 00 STA $00 [$00:0000] A:0013 X:45D9 Y:4E9B P:envMxdizC $81/BC23 64 01 STZ $01 [$00:0001] A:0013 X:45D9 Y:4E9B P:envMxdizC $81/BC25 BD 72 00 LDA $0072,x[$7E:464B] A:0013 X:45D9 Y:4E9B P:envMxdizC $81/BC28 3A DEC A A:0006 X:45D9 Y:4E9B P:envMxdizC $81/BC29 85 02 STA $02 [$00:0002] A:0005 X:45D9 Y:4E9B P:envMxdizC $81/BC2B 64 03 STZ $03 [$00:0003] A:0005 X:45D9 Y:4E9B P:envMxdizC $81/BC2D BD 6E 00 LDA $006E,x[$7E:4647] A:0005 X:45D9 Y:4E9B P:envMxdizC $81/BC30 8F 02 42 00 STA $004202[$00:4202] A:0003 X:45D9 Y:4E9B P:envMxdizC $81/BC34 A9 40 LDA #$40 A:0003 X:45D9 Y:4E9B P:envMxdizC $81/BC36 8F 03 42 00 STA $004203[$00:4203] A:0040 X:45D9 Y:4E9B P:envMxdizC $81/BC3A 7B TDC A:0040 X:45D9 Y:4E9B P:envMxdizC $81/BC3B BD 6C 00 LDA $006C,x[$7E:4645] A:0000 X:45D9 Y:4E9B P:envMxdiZC $81/BC3E 0A ASL A A:0008 X:45D9 Y:4E9B P:envMxdizC $81/BC3F C2 21 REP #$21 A:0010 X:45D9 Y:4E9B P:envMxdizc $81/BC41 6F 16 42 00 ADC $004216[$00:4216] A:0010 X:45D9 Y:4E9B P:envmxdizc $81/BC45 60 RTS A:00D0 X:45D9 Y:4E9B P:envmxdizc
$81/BCA7 ?
$81/BCA7 BD 19 02 LDA $0219,x[$7E:47F2] A:978C X:45D9 Y:45D9 P:envMxdizC $81/BCAA DD 72 00 CMP $0072,x[$7E:464B] A:9700 X:45D9 Y:45D9 P:envMxdiZC $81/BCAD 60 RTS A:9700 X:45D9 Y:45D9 P:eNvMxdizc
$81/BCAE ?
$81/BCAE BD 2E 02 LDA $022E,x[$7E:4807] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/BCB1 D0 13 BNE $13 [$BCC6] A:4C00 X:45D9 Y:45D9 P:envMxdiZc $81/BCB3 20 99 AB JSR $AB99 [$81:AB99] A:4C00 X:45D9 Y:45D9 P:envMxdiZc $81/BCB6 90 07 BCC $07 [$BCBF] A:0003 X:45D9 Y:45D9 P:envMxdiZC $81/BCB8 AD 65 05 LDA $0565 ; Load Copy Value of Held Joypad Buttons $81/BCBB 89 80 BIT #$80 A:0000 X:45D9 Y:45D9 P:envMxdiZC $81/BCBD D0 02 BNE $02 ; [$BCC1] Branch if Button is held $81/BCBF 18 CLC ; Else, Clear Carry (Flag) and exit $81/BCC0 60 RTS $81/BCC1 A9 01 LDA #$01 A:0080 X:45D9 Y:45D9 P:eNvMxdizC $81/BCC3 9D 2E 02 STA $022E,x[$7E:4807] A:0001 X:45D9 Y:45D9 P:envMxdizC $81/BCC6 38 SEC A:0001 X:45D9 Y:45D9 P:envMxdizC $81/BCC7 60 RTS A:0001 X:45D9 Y:45D9 P:envMxdizC $81/BCC8 A4 D8 LDY $D8 [$00:00D8] A:0001 X:45D9 Y:4D2B P:envMxdizC $81/BCCA 7B TDC A:0001 X:45D9 Y:45D9 P:envMxdizC $81/BCCB A7 29 LDA [$29] [$7E:4C99] A:0000 X:45D9 Y:45D9 P:envMxdiZC $81/BCCD C9 20 CMP #$20 A:00F3 X:45D9 Y:45D9 P:eNvMxdizC $81/BCCF 90 0C BCC $0C [$BCDD] A:00F3 X:45D9 Y:45D9 P:eNvMxdizC $81/BCD1 C9 F0 CMP #$F0 A:00F3 X:45D9 Y:45D9 P:eNvMxdizC $81/BCD3 C2 20 REP #$20 A:00F3 X:45D9 Y:45D9 P:envMxdizC $81/BCD5 90 03 BCC $03 [$BCDA] A:00F3 X:45D9 Y:45D9 P:envmxdizC $81/BCD7 4C C9 BD JMP $BDC9 [$81:BDC9] A:00F3 X:45D9 Y:45D9 P:envmxdizC $81/BCDA 4C A2 BD JMP $BDA2 [$81:BDA2] A:00C1 X:45D9 Y:45D9 P:eNvmxdizc $81/BCDD C2 20 REP #$20 A:0000 X:45D9 Y:45D9 P:eNvMxdizc $81/BCDF 0A ASL A A:0000 X:45D9 Y:45D9 P:eNvmxdizc $81/BCE0 AA TAX A:0000 X:45D9 Y:45D9 P:envmxdiZc $81/BCE1 7C E4 BC JMP ($BCE4,x)[$81:BF99] A:0000 X:0000 Y:45D9 P:envmxdiZc
$81/BCE4 99 BF --- Entry #$00 - $BF99 $81/BCE6 B4 BD --- Entry #$01 - $BDB4 $81/BCE8 B4 BD --- Entry #$02 - $BDB4 $81/BCEA B4 BD --- Entry #$03 - $BDB4 $81/BCEC B4 BD --- Entry #$04 - $BDB4 $81/BCEE B4 BD --- Entry #$05 - $BDB4 $81/BCF0 B4 BD --- Entry #$06 - $BDB4 $81/BCF2 B4 BD --- Entry #$07 - $BDB4 $81/BCF4 B4 BD --- Entry #$08 - $BDB4 $81/BCF6 B4 BD --- Entry #$09 - $BDB4 $81/BCF8 B4 BD --- Entry #$0A - $BDB4 $81/BCFA B4 BD --- Entry #$0B - $BDB4 $81/BCFC B4 BD --- Entry #$0C - $BDB4 $81/BCFE B4 BD --- Entry #$0D - $BDB4 $81/BD00 B4 BD --- Entry #$0E - $BDB4 $81/BD02 B4 BD --- Entry #$0F - $BDB4 $81/BD04 9D BD --- Entry #$10 - $BD9D $81/BD06 9D BD --- Entry #$11 - $BD9D $81/BD08 70 BE --- Entry #$12 - $BE70 $81/BD0A 8D BE --- Entry #$13 - $BE8D $81/BD0C 03 BE --- Entry #$14 - $BE03 $81/BD0E AA BE --- Entry #$15 - $BEAA $81/BD10 41 BE --- Entry #$16 - $BE41 $81/BD12 62 BE --- Entry #$17 - $BE62 $81/BD14 E5 BD --- Entry #$18 - $BDE5 $81/BD16 B1 BE --- Entry #$19 - $BEB1 $81/BD18 E6 BE --- Entry #$1A - $BEE6 $81/BD1A 64 BF --- Entry #$1B - $BF64 $81/BD1C F8 BE --- Entry #$1C - $BEF8 $81/BD1E 10 BF --- Entry #$1D - $BF10 $81/BD20 28 BD --- Entry #$1E - $BD28 $81/BD22 6B BD --- Entry #$1F - $BD6B
$81/BD98 ?
$81/BD98 E2 21 SEP #$21 A:978C X:45D9 Y:45D9 P:envMxdizc $81/BD9A A6 D8 LDX $D8 [$00:00D8] A:978C X:45D9 Y:45D9 P:envMxdizC $81/BD9C 60 RTS A:978C X:45D9 Y:45D9 P:envMxdizC
$81/BDA2 ?
$81/BDA2 48 PHA A:00C1 X:45D9 Y:45D9 P:eNvmxdizc $81/BDA3 E2 20 SEP #$20 A:00C1 X:45D9 Y:45D9 P:eNvmxdizc $81/BDA5 20 AE C3 JSR $C3AE [$81:C3AE] A:00C1 X:45D9 Y:45D9 P:eNvMxdizc $81/BDA8 C2 20 REP #$20 A:0000 X:45D9 Y:45D9 P:envMxdizc $81/BDAA 68 PLA A:0000 X:45D9 Y:45D9 P:envmxdizc $81/BDAB B0 EB BCS $EB [$BD98] A:00C1 X:45D9 Y:45D9 P:envmxdizc $81/BDAD E6 29 INC $29 [$00:0029] A:00C1 X:45D9 Y:45D9 P:envmxdizc $81/BDAF 20 DA C4 JSR $C4DA [$81:C4DA] A:00C1 X:45D9 Y:45D9 P:eNvmxdizc $81/BDB2 80 E4 BRA $E4 [$BD98] A:233A X:0110 Y:45D9 P:envMxdizc
$81/BDB4 ?
$81/BDB4 E2 20 SEP #$20 A:0008 X:0008 Y:45D9 P:envmxdizc $81/BDB6 20 AE C3 JSR $C3AE [$81:C3AE] A:0008 X:0008 Y:45D9 P:envMxdizc $81/BDB9 C2 20 REP #$20 A:0008 X:45D9 Y:45D9 P:envMxdizc $81/BDBB B0 DB BCS $DB [$BD98] A:0008 X:45D9 Y:45D9 P:envmxdizc $81/BDBD A7 29 LDA [$29] [$7E:4CA0] A:0008 X:45D9 Y:45D9 P:envmxdizc $81/BDBF EB XBA A:6904 X:45D9 Y:45D9 P:envmxdizc $81/BDC0 E6 29 INC $29 [$00:0029] A:0469 X:45D9 Y:45D9 P:envmxdizc $81/BDC2 E6 29 INC $29 [$00:0029] A:0469 X:45D9 Y:45D9 P:envmxdizc $81/BDC4 20 DA C4 JSR $C4DA [$81:C4DA] A:0469 X:45D9 Y:45D9 P:envmxdizc $81/BDC7 80 CF BRA $CF [$BD98] A:2181 X:01A0 Y:45D9 P:envMxdizc
$81/BDC9 ?
$81/BDC9 20 9E BF JSR $BF9E [$81:BF9E] A:00F3 X:45D9 Y:45D9 P:envmxdizC $81/BDCC A7 29 LDA [$29] [$7E:4C99] A:4C7E X:45D9 Y:45D9 P:envmxdizc $81/BDCE EB XBA A:E0F3 X:45D9 Y:45D9 P:eNvmxdizc $81/BDCF 38 SEC A:F3E0 X:45D9 Y:45D9 P:eNvmxdizc $81/BDD0 E9 00 F0 SBC #$F000 A:F3E0 X:45D9 Y:45D9 P:eNvmxdizC $81/BDD3 0A ASL A A:03E0 X:45D9 Y:45D9 P:envmxdizC $81/BDD4 AA TAX A:07C0 X:45D9 Y:45D9 P:envmxdizc $81/BDD5 BF 96 C0 8C LDA $8CC096,x[$8C:C856] A:07C0 X:07C0 Y:45D9 P:envmxdizc $81/BDD9 85 29 STA $29 [$00:0029] A:9717 X:07C0 Y:45D9 P:eNvmxdizc $81/BDDB E2 20 SEP #$20 A:9717 X:07C0 Y:45D9 P:eNvmxdizc $81/BDDD A9 8C LDA #$8C A:9717 X:07C0 Y:45D9 P:eNvMxdizc $81/BDDF 85 2B STA $2B [$00:002B] A:978C X:07C0 Y:45D9 P:eNvMxdizc $81/BDE1 A6 D8 LDX $D8 [$00:00D8] A:978C X:07C0 Y:45D9 P:eNvMxdizc $81/BDE3 80 B3 BRA $B3 [$BD98] A:978C X:45D9 Y:45D9 P:envMxdizc
$81/BDE5 ?
$81/BDE5 20 9E BF JSR $BF9E [$81:BF9E] A:0030 X:0030 Y:3919 P:envmxdizc $81/BDE8 E6 29 INC $29 [$00:0029] A:3F7E X:3919 Y:3919 P:envmxdizc $81/BDEA E2 20 SEP #$20 A:3F7E X:3919 Y:3919 P:envmxdizc $81/BDEC A6 D8 LDX $D8 [$00:00D8] A:3F7E X:3919 Y:3919 P:envMxdizc $81/BDEE BC 3A 02 LDY $023A,x[$7E:3B53] A:3F7E X:3919 Y:3919 P:envMxdizc $81/BDF1 A7 29 LDA [$29] [$7E:3FDA] A:3F7E X:3919 Y:0000 P:envMxdiZc $81/BDF3 22 F0 E6 81 JSL $81E6F0[$81:E6F0] A:3F0D X:3919 Y:0000 P:envMxdizc $81/BDF7 84 29 STY $29 [$00:0029] A:007E X:0018 Y:B824 P:envMxdizc $81/BDF9 85 2B STA $2B [$00:002B] A:007E X:0018 Y:B824 P:envMxdizc $81/BDFB A6 D8 LDX $D8 [$00:00D8] A:007E X:0018 Y:B824 P:envMxdizc $81/BDFD FE 3A 02 INC $023A,x[$7E:3B53] A:007E X:3919 Y:B824 P:envMxdizc $81/BE00 4C 98 BD JMP $BD98 [$81:BD98] A:007E X:3919 Y:B824 P:envMxdizc
$81/BE41 ?
$81/BE41 E6 29 INC $29 [$00:0029] A:002C X:002C Y:45D9 P:envmxdizc $81/BE43 E2 20 SEP #$20 A:002C X:002C Y:45D9 P:envmxdizc $81/BE45 A9 FF LDA #$FF A:002C X:002C Y:45D9 P:envMxdizc $81/BE47 99 17 02 STA $0217,y[$7E:47F0] A:00FF X:002C Y:45D9 P:eNvMxdizc $81/BE4A B9 19 02 LDA $0219,y[$7E:47F2] A:00FF X:002C Y:45D9 P:eNvMxdizc $81/BE4D 1A INC A A:0000 X:002C Y:45D9 P:envMxdiZc $81/BE4E 1A INC A A:0001 X:002C Y:45D9 P:envMxdizc $81/BE4F 99 19 02 STA $0219,y[$7E:47F2] A:0002 X:002C Y:45D9 P:envMxdizc $81/BE52 B9 1B 02 LDA $021B,y[$7E:47F4] A:0002 X:002C Y:45D9 P:envMxdizc $81/BE55 1A INC A A:0000 X:002C Y:45D9 P:envMxdiZc $81/BE56 1A INC A A:0001 X:002C Y:45D9 P:envMxdizc $81/BE57 99 1B 02 STA $021B,y[$7E:47F4] A:0002 X:002C Y:45D9 P:envMxdizc $81/BE5A C2 20 REP #$20 A:0002 X:002C Y:45D9 P:envMxdizc $81/BE5C 20 8E C4 JSR $C48E [$81:C48E] A:0002 X:002C Y:45D9 P:envmxdizc $81/BE5F 4C 98 BD JMP $BD98 [$81:BD98] A:0016 X:002C Y:4EA5 P:envmxdizc
$81/BF99 ?
$81/BF99 BB TYX A:0000 X:0000 Y:45D9 P:envmxdiZc $81/BF9A E2 20 SEP #$20 A:0000 X:45D9 Y:45D9 P:envmxdizc $81/BF9C 18 CLC A:0000 X:45D9 Y:45D9 P:envMxdizc $81/BF9D 60 RTS A:0000 X:45D9 Y:45D9 P:envMxdizc
$81/BF9E ?
$81/BF9E A4 D8 LDY $D8 [$00:00D8] A:00F3 X:45D9 Y:45D9 P:envmxdizC $81/BFA0 B9 43 00 LDA $0043,y[$7E:461C] A:00F3 X:45D9 Y:45D9 P:envmxdizC $81/BFA3 AA TAX A:45D9 X:45D9 Y:45D9 P:envmxdizC $81/BFA4 1A INC A A:45D9 X:45D9 Y:45D9 P:envmxdizC $81/BFA5 1A INC A A:45DA X:45D9 Y:45D9 P:envmxdizC $81/BFA6 1A INC A A:45DB X:45D9 Y:45D9 P:envmxdizC $81/BFA7 99 43 00 STA $0043,y[$7E:461C] A:45DC X:45D9 Y:45D9 P:envmxdizC $81/BFAA 38 SEC A:45DC X:45D9 Y:45D9 P:envmxdizC $81/BFAB E5 D8 SBC $D8 [$00:00D8] A:45DC X:45D9 Y:45D9 P:envmxdizC $81/BFAD C9 30 00 CMP #$0030 A:0003 X:45D9 Y:45D9 P:envmxdizC $81/BFB0 90 00 BCC $00 ; [$BFB2] This line could be removed $81/BFB2 A5 29 LDA $29 [$00:0029] A:0003 X:45D9 Y:45D9 P:eNvmxdizc $81/BFB4 1A INC A A:4C99 X:45D9 Y:45D9 P:envmxdizc $81/BFB5 1A INC A A:4C9A X:45D9 Y:45D9 P:envmxdizc $81/BFB6 9D 13 00 STA $0013,x[$7E:45EC] A:4C9B X:45D9 Y:45D9 P:envmxdizc $81/BFB9 E2 20 SEP #$20 A:4C9B X:45D9 Y:45D9 P:envmxdizc $81/BFBB A5 2B LDA $2B [$00:002B] A:4C9B X:45D9 Y:45D9 P:envMxdizc $81/BFBD 9D 15 00 STA $0015,x[$7E:45EE] A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/BFC0 C2 20 REP #$20 A:4C7E X:45D9 Y:45D9 P:envMxdizc $81/BFC2 60 RTS A:4C7E X:45D9 Y:45D9 P:envmxdizc
$81/C3AE ?
$81/C3AE 5A PHY A:00C1 X:45D9 Y:45D9 P:eNvMxdizc $81/C3AF A6 D8 LDX $D8 [$00:00D8] A:00C1 X:45D9 Y:45D9 P:eNvMxdizc $81/C3B1 BD 17 02 LDA $0217,x[$7E:47F0] A:00C1 X:45D9 Y:45D9 P:envMxdizc $81/C3B4 1A INC A A:00FF X:45D9 Y:45D9 P:eNvMxdizc $81/C3B5 DD 70 00 CMP $0070,x[$7E:4649] A:0000 X:45D9 Y:45D9 P:envMxdiZc $81/C3B8 90 28 BCC $28 [$C3E2] A:0000 X:45D9 Y:45D9 P:eNvMxdizc
- code is missing here
$81/C3E2 9D 17 02 STA $0217,x[$7E:47F0] A:0000 X:45D9 Y:45D9 P:eNvMxdizc $81/C3E5 7A PLY A:0000 X:45D9 Y:45D9 P:eNvMxdizc $81/C3E6 60 RTS A:0000 X:45D9 Y:45D9 P:envMxdizc
$81/C3E7 ? Some flexible VRAM DMA
$81/C3E7 A4 D8 LDY $D8 [$00:00D8] A:FF00 X:3919 Y:41DB P:envMxdiZC $81/C3E9 C2 20 REP #$20 A:FF00 X:3919 Y:3919 P:envMxdizC $81/C3EB B9 76 00 LDA $0076,y[$7E:398F] A:FF00 X:3919 Y:3919 P:envmxdizC $81/C3EE C5 D6 CMP $D6 [$00:00D6] A:5870 X:3919 Y:3919 P:envmxdizC $81/C3F0 D0 03 BNE $03 [$C3F5] A:5870 X:3919 Y:3919 P:envmxdiZC $81/C3F2 4C 80 C4 JMP $C480 [$81:C480] A:5870 X:3919 Y:3919 P:envmxdiZC $81/C3F5 A2 80 00 LDX #$0080 A:5C00 X:45D9 Y:45D9 P:eNvmxdizc $81/C3F8 86 0E STX $0E [$00:000E] A:5C00 X:0080 Y:45D9 P:envmxdizc $81/C3FA B0 23 BCS $23 [$C41F] A:5C00 X:0080 Y:45D9 P:envmxdizc $81/C3FC A8 TAY ; Transfer in Y as VRAM Destination Address $81/C3FD E5 D6 SBC $D6 [$00:00D6] A:5C00 X:0080 Y:5C00 P:envmxdizc $81/C3FF 49 FF FF EOR #$FFFF A:FFEF X:0080 Y:5C00 P:eNvmxdizc $81/C402 0A ASL A A:0010 X:0080 Y:5C00 P:envmxdizc $81/C403 85 0C STA $0C [$00:000C] A:0020 X:0080 Y:5C00 P:envmxdizc $81/C405 49 FF FF EOR #$FFFF A:0020 X:0080 Y:5C00 P:envmxdizc $81/C408 38 SEC A:FFDF X:0080 Y:5C00 P:eNvmxdizc $81/C409 65 5C ADC $5C [$00:005C] A:FFDF X:0080 Y:5C00 P:eNvmxdizC $81/C40B AA TAX ; Transfer in X as VRAM DAM Source Address $81/C40C E2 20 SEP #$20 ; A = 8-bit $81/C40E A9 7E LDA #$7E ; VRAM DMA Source Bank: $7E $81/C410 22 24 9F 80 JSL $809F24 ; VRAM DMA $81/C414 C2 20 REP #$20 A:5280 X:0000 Y:5C00 P:envMxdizc $81/C416 A6 D8 LDX $D8 [$00:00D8] A:5280 X:0000 Y:5C00 P:envmxdizc $81/C418 A5 D6 LDA $D6 [$00:00D6] A:5280 X:45D9 Y:5C00 P:envmxdizc $81/C41A 9D 76 00 STA $0076,x[$7E:464F] A:5C10 X:45D9 Y:5C00 P:envmxdizc $81/C41D 80 61 BRA $61 [$C480] A:5C10 X:45D9 Y:5C00 P:envmxdizc
- code is missing here
$81/C480 E2 20 SEP #$20 ; A = 8-bit $81/C482 AD 6A 05 LDA $056A ; Is FBLANK active? $81/C485 10 04 BPL $04 ; [$C48B] Branch and exit if not
- code is missing here
$81/C48B A6 D8 LDX $D8 [$00:00D8] A:580F X:3919 Y:3919 P:envMxdizC $81/C48D 60 RTS
$81/C491 ?
$81/C491 48 PHA A:00C1 X:45D9 Y:45D9 P:eNvmxdizc $81/C492 DA PHX A:00C1 X:45D9 Y:45D9 P:eNvmxdizc $81/C493 A6 D8 LDX $D8 [$00:00D8] A:00C1 X:45D9 Y:45D9 P:eNvmxdizc $81/C495 48 PHA A:00C1 X:45D9 Y:45D9 P:envmxdizc $81/C496 BD 26 02 LDA $0226,x[$7E:47FF] A:00C1 X:45D9 Y:45D9 P:envmxdizc $81/C499 85 02 STA $02 [$00:0002] A:5299 X:45D9 Y:45D9 P:envmxdizc $81/C49B 68 PLA A:5299 X:45D9 Y:45D9 P:envmxdizc $81/C49C BC 28 02 LDY $0228,x[$7E:4801] A:00C1 X:45D9 Y:45D9 P:envmxdizc $81/C49F 99 00 00 STA $0000,y[$7E:4E9B] A:00C1 X:45D9 Y:4E9B P:envmxdizc $81/C4A2 C8 INY A:00C1 X:45D9 Y:4E9B P:envmxdizc $81/C4A3 C8 INY A:00C1 X:45D9 Y:4E9C P:envmxdizc $81/C4A4 C4 02 CPY $02 [$00:0002] A:00C1 X:45D9 Y:4E9D P:envmxdizc $81/C4A6 D0 03 BNE $03 [$C4AB] A:00C1 X:45D9 Y:4E9D P:eNvmxdizc
- code is missing here
$81/C4AB 98 TYA A:00C1 X:45D9 Y:4E9D P:eNvmxdizc $81/C4AC 9D 28 02 STA $0228,x[$7E:4801] A:4E9D X:45D9 Y:4E9D P:envmxdizc $81/C4AF A9 FF FF LDA #$FFFF A:4E9D X:45D9 Y:4E9D P:envmxdizc $81/C4B2 99 00 00 STA $0000,y[$7E:4E9D] A:FFFF X:45D9 Y:4E9D P:eNvmxdizc $81/C4B5 FA PLX A:FFFF X:45D9 Y:4E9D P:eNvmxdizc $81/C4B6 68 PLA A:FFFF X:45D9 Y:4E9D P:envmxdizc $81/C4B7 60 RTS A:00C1 X:45D9 Y:4E9D P:envmxdizc
$81/C4DA ?
$81/C4DA 20 91 C4 JSR $C491 [$81:C491] A:00C1 X:45D9 Y:45D9 P:eNvmxdizc $81/C4DD 20 25 C5 JSR $C525 [$81:C525] A:00C1 X:45D9 Y:4E9D P:envmxdizc $81/C4E0 20 49 C5 JSR $C549 [$81:C549] A:00C1 X:45D9 Y:4E9D P:envmxdizc $81/C4E3 A4 D8 LDY $D8 [$00:00D8] A:2000 X:0284 Y:4E9D P:envmxdizc $81/C4E5 E2 20 SEP #$20 A:2000 X:0284 Y:45D9 P:envmxdizc $81/C4E7 B9 6E 00 LDA $006E,y[$7E:4647] A:2000 X:0284 Y:45D9 P:envMxdizc $81/C4EA 18 CLC A:2003 X:0284 Y:45D9 P:envMxdizc $81/C4EB 79 19 02 ADC $0219,y[$7E:47F2] A:2003 X:0284 Y:45D9 P:envMxdizc $81/C4EE 8F 02 42 00 STA $004202[$00:4202] A:2003 X:0284 Y:45D9 P:envMxdizc $81/C4F2 A9 40 LDA #$40 A:2003 X:0284 Y:45D9 P:envMxdizc $81/C4F4 8F 03 42 00 STA $004203[$00:4203] A:2040 X:0284 Y:45D9 P:envMxdizc $81/C4F8 7B TDC A:2040 X:0284 Y:45D9 P:envMxdizc $81/C4F9 B9 6C 00 LDA $006C,y[$7E:4645] A:0000 X:0284 Y:45D9 P:envMxdiZc $81/C4FC 18 CLC A:0008 X:0284 Y:45D9 P:envMxdizc $81/C4FD 79 17 02 ADC $0217,y[$7E:47F0] A:0008 X:0284 Y:45D9 P:envMxdizc $81/C500 29 1F AND #$1F A:0008 X:0284 Y:45D9 P:envMxdizc $81/C502 0A ASL A A:0008 X:0284 Y:45D9 P:envMxdizc $81/C503 C2 20 REP #$20 A:0010 X:0284 Y:45D9 P:envMxdizc $81/C505 6F 16 42 00 ADC $004216[$00:4216] A:0010 X:0284 Y:45D9 P:envmxdizc $81/C509 AA TAX A:00D0 X:0284 Y:45D9 P:envmxdizc $81/C50A A5 00 LDA $00 [$00:0000] A:00D0 X:00D0 Y:45D9 P:envmxdizc $81/C50C 05 04 ORA $04 [$00:0004] A:224A X:00D0 Y:45D9 P:envmxdizc $81/C50E 9F 00 A8 7E STA $7EA800,x[$7E:A8D0] A:224A X:00D0 Y:45D9 P:envmxdizc $81/C512 8A TXA A:224A X:00D0 Y:45D9 P:envmxdizc $81/C513 69 40 00 ADC #$0040 A:00D0 X:00D0 Y:45D9 P:envmxdizc $81/C516 29 FF 07 AND #$07FF A:0110 X:00D0 Y:45D9 P:envmxdizc $81/C519 AA TAX A:0110 X:00D0 Y:45D9 P:envmxdizc $81/C51A A5 02 LDA $02 [$00:0002] A:0110 X:0110 Y:45D9 P:envmxdizc $81/C51C 05 04 ORA $04 [$00:0004] A:233A X:0110 Y:45D9 P:envmxdizc $81/C51E 9F 00 A8 7E STA $7EA800,x[$7E:A910] A:233A X:0110 Y:45D9 P:envmxdizc $81/C522 E2 20 SEP #$20 A:233A X:0110 Y:45D9 P:envmxdizc $81/C524 60 RTS A:233A X:0110 Y:45D9 P:envMxdizc
$81/C525 ?
$81/C525 48 PHA A:00C1 X:45D9 Y:4E9D P:envmxdizc $81/C526 E2 20 SEP #$20 A:00C1 X:45D9 Y:4E9D P:envmxdizc $81/C528 A5 57 LDA $57 [$00:0057] A:00C1 X:45D9 Y:4E9D P:envMxdizc $81/C52A F0 19 BEQ $19 [$C545] A:0001 X:45D9 Y:4E9D P:envMxdizc $81/C52C A6 D8 LDX $D8 [$00:00D8] A:0001 X:45D9 Y:4E9D P:envMxdizc $81/C52E BD 4F 00 LDA $004F,x[$7E:4628] A:0001 X:45D9 Y:4E9D P:envMxdizc $81/C531 F0 0E BEQ $0E [$C541] A:0000 X:45D9 Y:4E9D P:envMxdiZc
- code is missing here
$81/C541 A9 04 LDA #$04 A:0000 X:45D9 Y:4E9D P:envMxdiZc $81/C543 85 F6 STA $F6 [$00:00F6] A:0004 X:45D9 Y:4E9D P:envMxdizc $81/C545 C2 20 REP #$20 A:0004 X:45D9 Y:4E9D P:envMxdizc $81/C547 68 PLA A:0004 X:45D9 Y:4E9D P:envmxdizc $81/C548 60 RTS A:00C1 X:45D9 Y:4E9D P:envmxdizc
$81/C549 ?
$81/C549 48 PHA A:00C1 X:45D9 Y:4E9D P:envmxdizc $81/C54A A6 5C LDX $5C [$00:005C] A:00C1 X:45D9 Y:4E9D P:envmxdizc $81/C54C 86 20 STX $20 [$00:0020] A:00C1 X:5299 Y:4E9D P:envmxdizc $81/C54E E2 20 SEP #$20 A:00C1 X:5299 Y:4E9D P:envmxdizc $81/C550 A9 7E LDA #$7E A:00C1 X:5299 Y:4E9D P:envMxdizc $81/C552 85 22 STA $22 [$00:0022] A:007E X:5299 Y:4E9D P:envMxdizc $81/C554 C2 20 REP #$20 A:007E X:5299 Y:4E9D P:envMxdizc $81/C556 68 PLA A:007E X:5299 Y:4E9D P:envmxdizc $81/C557 20 6D C8 JSR $C86D [$81:C86D] A:00C1 X:5299 Y:4E9D P:envmxdizc $81/C55A 90 33 BCC $33 [$C58F] A:2000 X:0284 Y:4E9D P:envmxdizc $81/C55C A5 0E LDA $0E [$00:000E] A:0020 X:F5BD Y:2000 P:envmxdizC $81/C55E 18 CLC A:0020 X:F5BD Y:2000 P:envmxdizC $81/C55F 6D 5C 00 ADC $005C [$7E:005C] A:0020 X:F5BD Y:2000 P:envmxdizc $81/C562 8D 5C 00 STA $005C [$7E:005C] A:52B9 X:F5BD Y:2000 P:envmxdizc $81/C565 C5 5E CMP $5E [$00:005E] A:52B9 X:F5BD Y:2000 P:envmxdizc $81/C567 90 06 BCC $06 [$C56F] A:52B9 X:F5BD Y:2000 P:eNvmxdizc
- code is missing here
$81/C56F A5 D6 LDA $D6 [$00:00D6] A:52B9 X:F5BD Y:2000 P:eNvmxdizc $81/C571 38 SEC A:5C00 X:F5BD Y:2000 P:envmxdizc $81/C572 E9 00 50 SBC #$5000 A:5C00 X:F5BD Y:2000 P:envmxdizC $81/C575 4A LSR A A:0C00 X:F5BD Y:2000 P:envmxdizC $81/C576 4A LSR A A:0600 X:F5BD Y:2000 P:envmxdizc $81/C577 4A LSR A A:0300 X:F5BD Y:2000 P:envmxdizc $81/C578 85 00 STA $00 [$00:0000] A:0180 X:F5BD Y:2000 P:envmxdizc $81/C57A 1A INC A A:0180 X:F5BD Y:2000 P:envmxdizc $81/C57B 85 02 STA $02 [$00:0002] A:0181 X:F5BD Y:2000 P:envmxdizc $81/C57D A6 D8 LDX $D8 [$00:00D8] A:0181 X:F5BD Y:2000 P:envmxdizc $81/C57F A5 0E LDA $0E [$00:000E] A:0181 X:45D9 Y:2000 P:envmxdizc $81/C581 4A LSR A A:0020 X:45D9 Y:2000 P:envmxdizc $81/C582 18 CLC A:0010 X:45D9 Y:2000 P:envmxdizc $81/C583 65 D6 ADC $D6 [$00:00D6] A:0010 X:45D9 Y:2000 P:envmxdizc $81/C585 DD 78 00 CMP $0078,x[$7E:4651] A:5C10 X:45D9 Y:2000 P:envmxdizc $81/C588 90 03 BCC $03 [$C58D] A:5C10 X:45D9 Y:2000 P:eNvmxdizc
- code is missing here
$81/C58D 85 D6 STA $D6 [$00:00D6] A:5C10 X:45D9 Y:2000 P:eNvmxdizc $81/C58F 60 RTS A:2000 X:0284 Y:4E9D P:envmxdizc
$81/C86D ?
$81/C86D 20 B8 C8 JSR $C8B8 [$81:C8B8] A:00C1 X:5299 Y:4E9D P:envmxdizc $81/C870 B0 01 BCS $01 [$C873] A:2000 X:0284 Y:4E9D P:envmxdizc $81/C872 60 RTS A:2000 X:0284 Y:4E9D P:envmxdizc $81/C873 D4 04 PEI ($04) ; Buffer $04/$05 on Stack $81/C875 85 00 STA $00 ; Multiply A by 3 (use $00/$01 as buffer) $81/C877 0A ASL A $81/C878 65 00 ADC $00 $81/C87A AA TAX ; Transfer A in X (use as 24-bit Load Index) $81/C87B BF B5 C1 A3 LDA $A3C1B5,x[$A3:CBF0] A:0A3B X:0A3B Y:4EB7 P:envmxdizc $81/C87F A8 TAY A:F5A4 X:0A3B Y:4EB7 P:eNvmxdizc $81/C880 E2 20 SEP #$20 A:F5A4 X:0A3B Y:F5A4 P:eNvmxdizc $81/C882 BF B7 C1 A3 LDA $A3C1B7,x[$A3:CBF2] A:F5A4 X:0A3B Y:F5A4 P:eNvMxdizc $81/C886 85 00 STA $00 [$00:0000] A:F5B1 X:0A3B Y:F5A4 P:eNvMxdizc $81/C888 A2 ED EF LDX #$EFED A:F5B1 X:0A3B Y:F5A4 P:eNvMxdizc $81/C88B 86 23 STX $23 [$00:0023] A:F5B1 X:EFED Y:F5A4 P:eNvMxdizc $81/C88D A9 A4 LDA #$A4 A:F5B1 X:EFED Y:F5A4 P:eNvMxdizc $81/C88F 85 25 STA $25 [$00:0025] A:F5A4 X:EFED Y:F5A4 P:eNvMxdizc $81/C891 BB TYX A:F5A4 X:EFED Y:F5A4 P:eNvMxdizc $81/C892 A5 00 LDA $00 [$00:0000] A:F5A4 X:F5A4 Y:F5A4 P:eNvMxdizc $81/C894 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:F5B1 X:F5A4 Y:F5A4 P:eNvMxdizc $81/C898 C2 20 REP #$20 A:0020 X:F5BD Y:0020 P:envMxdizC $81/C89A 7A PLY ; Restore $04/$05 from Stack $81/C89B 84 04 STY $04 $81/C89D 38 SEC ; Set Carry (as Flag for subroutine above) $81/C89E 60 RTS
$81/C8B8 ?
$81/C8B8 48 PHA A:00C1 X:5299 Y:4E9D P:envmxdizc $81/C8B9 29 FF 0F AND #$0FFF A:00C1 X:5299 Y:4E9D P:envmxdizc $81/C8BC C9 00 01 CMP #$0100 A:00C1 X:5299 Y:4E9D P:envmxdizc $81/C8BF 90 03 BCC $03 [$C8C4] A:00C1 X:5299 Y:4E9D P:eNvmxdizc $81/C8C1 4C 4E C9 JMP $C94E [$81:C94E] A:0469 X:5299 Y:4EB7 P:envmxdizC $81/C8C4 C9 10 00 CMP #$0010 A:00C1 X:5299 Y:4E9D P:eNvmxdizc $81/C8C7 D0 03 BNE $03 [$C8CC] A:00C1 X:5299 Y:4E9D P:envmxdizC $81/C8CC C9 11 00 CMP #$0011 A:00C1 X:5299 Y:4E9D P:envmxdizC $81/C8CF D0 03 BNE $03 [$C8D4] A:00C1 X:5299 Y:4E9D P:envmxdizC
- code is missing here
$81/C8D4 48 PHA A:00C1 X:5299 Y:4E9D P:envmxdizC $81/C8D5 A5 A4 LDA $A4 [$00:00A4] A:00C1 X:5299 Y:4E9D P:envmxdizC $81/C8D7 89 02 00 BIT #$0002 A:0C03 X:5299 Y:4E9D P:envmxdizC $81/C8DA D0 1D BNE $1D [$C8F9] A:0C03 X:5299 Y:4E9D P:envmxdizC
- code is missing here
$81/C8F9 68 PLA A:0C03 X:5299 Y:4E9D P:envmxdizC $81/C8FA C9 CF 00 CMP #$00CF A:00C1 X:5299 Y:4E9D P:envmxdizC $81/C8FD F0 2A BEQ $2A [$C929] A:00C1 X:5299 Y:4E9D P:eNvmxdizc $81/C8FF C9 D0 00 CMP #$00D0 A:00C1 X:5299 Y:4E9D P:eNvmxdizc $81/C902 F0 25 BEQ $25 [$C929] A:00C1 X:5299 Y:4E9D P:eNvmxdizc $81/C904 38 SEC A:00C1 X:5299 Y:4E9D P:eNvmxdizc $81/C905 E9 20 00 SBC #$0020 A:00C1 X:5299 Y:4E9D P:eNvmxdizC $81/C908 0A ASL A A:00A1 X:5299 Y:4E9D P:envmxdizC $81/C909 0A ASL A A:0142 X:5299 Y:4E9D P:envmxdizc $81/C90A AA TAX A:0284 X:5299 Y:4E9D P:envmxdizc $81/C90B BF E7 D6 81 LDA $81D6E7,x[$81:D96B] A:0284 X:0284 Y:4E9D P:envmxdizc $81/C90F 85 00 STA $00 [$00:0000] A:224A X:0284 Y:4E9D P:envmxdizc $81/C911 BF E9 D6 81 LDA $81D6E9,x[$81:D96D] A:224A X:0284 Y:4E9D P:envmxdizc $81/C915 85 02 STA $02 [$00:0002] A:233A X:0284 Y:4E9D P:envmxdizc $81/C917 68 PLA A:233A X:0284 Y:4E9D P:envmxdizc $81/C918 89 00 40 BIT #$4000 A:00C1 X:0284 Y:4E9D P:envmxdizc $81/C91B D0 05 BNE $05 [$C922] A:00C1 X:0284 Y:4E9D P:envmxdiZc $81/C91D A9 00 20 LDA #$2000 A:00C1 X:0284 Y:4E9D P:envmxdiZc $81/C920 80 03 BRA $03 [$C925] A:2000 X:0284 Y:4E9D P:envmxdizc
- code is missing here
$81/C925 85 04 STA $04 [$00:0004] A:2000 X:0284 Y:4E9D P:envmxdizc $81/C927 18 CLC A:2000 X:0284 Y:4E9D P:envmxdizc $81/C928 60 RTS A:2000 X:0284 Y:4E9D P:envmxdizc
- code is missing here
$81/C94E A3 01 LDA $01,s [$00:1FBB] A:0469 X:5299 Y:4EB7 P:envmxdizC $81/C950 89 00 40 BIT #$4000 A:0469 X:5299 Y:4EB7 P:envmxdizC $81/C953 D0 05 BNE $05 [$C95A] A:0469 X:5299 Y:4EB7 P:envmxdiZC $81/C955 A9 00 20 LDA #$2000 A:0469 X:5299 Y:4EB7 P:envmxdiZC $81/C958 80 03 BRA $03 [$C95D] A:2000 X:5299 Y:4EB7 P:envmxdizC $81/C95D 85 04 STA $04 [$00:0004] A:2000 X:5299 Y:4EB7 P:envmxdizC $81/C95F 68 PLA A:2000 X:5299 Y:4EB7 P:envmxdizC $81/C960 29 FF 0F AND #$0FFF A:0469 X:5299 Y:4EB7 P:envmxdizC $81/C963 38 SEC A:0469 X:5299 Y:4EB7 P:envmxdizC $81/C964 E9 00 01 SBC #$0100 A:0469 X:5299 Y:4EB7 P:envmxdizC $81/C967 60 RTS A:0369 X:5299 Y:4EB7 P:envmxdizC
$81/CF11 ?
$81/CF11 A6 D8 LDX $D8 [$00:00D8] A:230C X:45D9 Y:0006 P:envMxdizc $81/CF13 BD 72 00 LDA $0072,x[$7E:464B] A:230C X:45D9 Y:0006 P:envMxdizc $81/CF16 85 08 STA $08 [$00:0008] A:2306 X:45D9 Y:0006 P:envMxdizc $81/CF18 C6 08 DEC $08 [$00:0008] A:2306 X:45D9 Y:0006 P:envMxdizc $81/CF1A 30 05 BMI $05 [$CF21] A:2306 X:45D9 Y:0006 P:envMxdizc $81/CF1C 20 46 D0 JSR $D046 [$81:D046] A:2306 X:45D9 Y:0006 P:envMxdizc $81/CF1F D0 F7 BNE $F7 [$CF18] A:23EE X:45D9 Y:45D9 P:envMxdizc $81/CF21 60 RTS A:23EE X:45D9 Y:45D9 P:eNvMxdizc
$81/D046 ?
$81/D046 20 1E BC JSR $BC1E [$81:BC1E] A:2306 X:45D9 Y:0006 P:envMxdizc $81/D049 9B TXY A:00D0 X:45D9 Y:0006 P:envmxdizc $81/D04A 85 06 STA $06 [$00:0006] A:00D0 X:45D9 Y:45D9 P:envmxdizc $81/D04C AA TAX A:00D0 X:45D9 Y:45D9 P:envmxdizc $81/D04D A5 02 LDA $02 [$00:0002] A:00D0 X:00D0 Y:45D9 P:envmxdizc $81/D04F F0 2D BEQ $2D [$D07E] A:0005 X:00D0 Y:45D9 P:envmxdizc $81/D051 A5 00 LDA $00 [$00:0000] A:0005 X:00D0 Y:45D9 P:envmxdizc $81/D053 85 04 STA $04 [$00:0004] A:0013 X:00D0 Y:45D9 P:envmxdizc $81/D055 DA PHX A:0013 X:00D0 Y:45D9 P:envmxdizc $81/D056 8A TXA A:0013 X:00D0 Y:45D9 P:envmxdizc $81/D057 18 CLC A:00D0 X:00D0 Y:45D9 P:envmxdizc $81/D058 69 40 00 ADC #$0040 A:00D0 X:00D0 Y:45D9 P:envmxdizc $81/D05B 29 FF 07 AND #$07FF A:0110 X:00D0 Y:45D9 P:envmxdizc $81/D05E AA TAX A:0110 X:00D0 Y:45D9 P:envmxdizc $81/D05F BF 00 A8 7E LDA $7EA800,x[$7E:A910] A:0110 X:0110 Y:45D9 P:envmxdizc $81/D063 FA PLX A:233A X:0110 Y:45D9 P:envmxdizc $81/D064 9F 00 A8 7E STA $7EA800,x[$7E:A8D0] A:233A X:00D0 Y:45D9 P:envmxdizc $81/D068 E8 INX A:233A X:00D0 Y:45D9 P:envmxdizc $81/D069 E8 INX A:233A X:00D1 Y:45D9 P:envmxdizc $81/D06A C6 04 DEC $04 [$00:0004] A:233A X:00D2 Y:45D9 P:envmxdizc $81/D06C D0 E7 BNE $E7 [$D055] A:233A X:00D2 Y:45D9 P:envmxdizc $81/D06E A5 06 LDA $06 [$00:0006] A:23EE X:00F6 Y:45D9 P:envmxdiZc $81/D070 18 CLC A:00D0 X:00F6 Y:45D9 P:envmxdizc $81/D071 69 40 00 ADC #$0040 A:00D0 X:00F6 Y:45D9 P:envmxdizc $81/D074 85 06 STA $06 [$00:0006] A:0110 X:00F6 Y:45D9 P:envmxdizc $81/D076 29 FF 07 AND #$07FF A:0110 X:00F6 Y:45D9 P:envmxdizc $81/D079 AA TAX A:0110 X:00F6 Y:45D9 P:envmxdizc $81/D07A C6 02 DEC $02 [$00:0002] A:0110 X:0110 Y:45D9 P:envmxdizc $81/D07C D0 D3 BNE $D3 [$D051] A:0110 X:0110 Y:45D9 P:envmxdizc $81/D07E A9 EE 23 LDA #$23EE A:0210 X:0210 Y:45D9 P:envmxdiZc $81/D081 9F 00 A8 7E STA $7EA800,x[$7E:AA10] A:23EE X:0210 Y:45D9 P:envmxdizc $81/D085 E8 INX A:23EE X:0210 Y:45D9 P:envmxdizc $81/D086 E8 INX A:23EE X:0211 Y:45D9 P:envmxdizc $81/D087 C6 00 DEC $00 [$00:0000] A:23EE X:0212 Y:45D9 P:envmxdizc $81/D089 D0 F6 BNE $F6 [$D081] A:23EE X:0212 Y:45D9 P:envmxdizc $81/D08B E2 20 SEP #$20 A:23EE X:0236 Y:45D9 P:envmxdiZc $81/D08D BB TYX A:23EE X:0236 Y:45D9 P:envMxdiZc $81/D08E 60 RTS A:23EE X:45D9 Y:45D9 P:envMxdizc
$81/D296 ?
A contains the Data Bank for this subroutine
$81/D296 8B PHB ; Buffer Data Bank on Stack $81/D297 48 PHA ; Set Data Bank to A $81/D298 AB PLB $81/D299 DA PHX ; Buffer X and Y on Stack $81/D29A 5A PHY $81/D29B A5 04 LDA $04 [$00:0004] A:2F7E X:A800 Y:2F9A P:envMxdizc $81/D29D F0 3D BEQ $3D [$D2DC] A:2F18 X:A800 Y:2F9A P:envMxdizc $81/D29F A5 05 LDA $05 [$00:0005] A:2F18 X:A800 Y:2F9A P:envMxdizc $81/D2A1 F0 39 BEQ $39 [$D2DC] A:2F02 X:A800 Y:2F9A P:envMxdizc $81/D2A3 7B TDC A:2F02 X:A800 Y:2F9A P:envMxdizc $81/D2A4 A5 03 LDA $03 [$00:0003] A:0000 X:A800 Y:2F9A P:envMxdiZc $81/D2A6 EB XBA A:0005 X:A800 Y:2F9A P:envMxdizc $81/D2A7 C2 21 REP #$21 A:0500 X:A800 Y:2F9A P:envMxdiZc $81/D2A9 4A LSR A A:0500 X:A800 Y:2F9A P:envmxdiZc $81/D2AA 4A LSR A A:0280 X:A800 Y:2F9A P:envmxdizc $81/D2AB 63 03 ADC $03,s [$00:1FBD] A:0140 X:A800 Y:2F9A P:envmxdizc $81/D2AD 48 PHA A:A940 X:A800 Y:2F9A P:eNvmxdizc $81/D2AE A5 02 LDA $02 [$00:0002] A:A940 X:A800 Y:2F9A P:eNvmxdizc $81/D2B0 29 FF 00 AND #$00FF A:0503 X:A800 Y:2F9A P:envmxdizc $81/D2B3 0A ASL A A:0003 X:A800 Y:2F9A P:envmxdizc $81/D2B4 63 01 ADC $01,s [$00:1FB9] A:0006 X:A800 Y:2F9A P:envmxdizc $81/D2B6 AA TAX A:A946 X:A800 Y:2F9A P:eNvmxdizc $81/D2B7 68 PLA A:A946 X:A946 Y:2F9A P:eNvmxdizc $81/D2B8 A5 05 LDA $05 [$00:0005] A:A940 X:A946 Y:2F9A P:eNvmxdizc $81/D2BA 29 FF 00 AND #$00FF A:0202 X:A946 Y:2F9A P:envmxdizc $81/D2BD F0 1D BEQ $1D [$D2DC] A:0002 X:A946 Y:2F9A P:envmxdizc $81/D2BF 48 PHA A:0002 X:A946 Y:2F9A P:envmxdizc $81/D2C0 DA PHX A:0002 X:A946 Y:2F9A P:envmxdizc $81/D2C1 A5 04 LDA $04 [$00:0004] A:0002 X:A946 Y:2F9A P:envmxdizc $81/D2C3 29 FF 00 AND #$00FF A:0218 X:A946 Y:2F9A P:envmxdizc $81/D2C6 48 PHA A:0018 X:A946 Y:2F9A P:envmxdizc $81/D2C7 A3 07 LDA $07,s [$00:1FBB] A:0018 X:A946 Y:2F9A P:envmxdizc $81/D2C9 9D 00 00 STA $0000,x[$7E:A946] A:2F9A X:A946 Y:2F9A P:envmxdizc $81/D2CC E8 INX A:2F9A X:A946 Y:2F9A P:envmxdizc $81/D2CD E8 INX A:2F9A X:A947 Y:2F9A P:eNvmxdizc $81/D2CE 68 PLA A:2F9A X:A948 Y:2F9A P:eNvmxdizc $81/D2CF 3A DEC A A:0018 X:A948 Y:2F9A P:envmxdizc $81/D2D0 D0 F4 BNE $F4 [$D2C6] A:0017 X:A948 Y:2F9A P:envmxdizc $81/D2D2 68 PLA A:0000 X:A976 Y:2F9A P:envmxdiZc $81/D2D3 18 CLC A:A946 X:A976 Y:2F9A P:eNvmxdizc $81/D2D4 69 40 00 ADC #$0040 A:A946 X:A976 Y:2F9A P:eNvmxdizc $81/D2D7 AA TAX A:A986 X:A976 Y:2F9A P:eNvmxdizc $81/D2D8 68 PLA A:A986 X:A986 Y:2F9A P:eNvmxdizc $81/D2D9 3A DEC A A:0002 X:A986 Y:2F9A P:envmxdizc $81/D2DA D0 E3 BNE $E3 [$D2BF] A:0001 X:A986 Y:2F9A P:envmxdizc $81/D2DC E2 20 SEP #$20 ; A = 8-bit $81/D2DE 7A PLY ; Restore Y and X from Stack $81/D2DF FA PLX $81/D2E0 AB PLB ; Restore Data Bank from Stack $81/D2E1 6B RTL
$81/D341 ?
A contains a Data Bank
$81/D341 8B PHB ; Buffer Data Bank on Stack $81/D342 48 PHA ; Set Data Bank to A $81/D343 AB PLB $81/D344 64 01 STZ $01 [$00:0001] A:0181 X:D331 Y:015C P:eNvMxdizc $81/D346 64 03 STZ $03 [$00:0003] A:0181 X:D331 Y:015C P:eNvMxdizc $81/D348 C2 21 REP #$21 A:0181 X:D331 Y:015C P:eNvMxdizc $81/D34A 5A PHY A:0181 X:D331 Y:015C P:eNvmxdizc $81/D34B BD 00 00 LDA $0000,x[$81:D331] A:0181 X:D331 Y:015C P:eNvmxdizc $81/D34E 97 20 STA [$20],y[$7E:A95C] A:2FC0 X:D331 Y:015C P:envmxdizc $81/D350 C8 INY A:2FC0 X:D331 Y:015C P:envmxdizc $81/D351 C8 INY A:2FC0 X:D331 Y:015D P:envmxdizc $81/D352 A5 00 LDA $00 [$00:0000] A:2FC0 X:D331 Y:015E P:envmxdizc $81/D354 3A DEC A A:0000 X:D331 Y:015E P:envmxdiZc $81/D355 30 0B BMI $0B [$D362] A:FFFF X:D331 Y:015E P:eNvmxdizc $81/D357 48 PHA A:0001 X:D331 Y:015C P:envmxdizc $81/D358 BD 02 00 LDA $0002,x[$81:D333] A:0001 X:D331 Y:015C P:envmxdizc $81/D35B 97 20 STA [$20],y[$7E:A95C] A:2FC1 X:D331 Y:015C P:envmxdizc $81/D35D C8 INY A:2FC1 X:D331 Y:015C P:envmxdizc $81/D35E C8 INY A:2FC1 X:D331 Y:015D P:envmxdizc $81/D35F 68 PLA A:2FC1 X:D331 Y:015E P:envmxdizc $81/D360 80 F2 BRA $F2 [$D354] A:0001 X:D331 Y:015E P:envmxdizc $81/D362 BD 04 00 LDA $0004,x[$81:D335] A:FFFF X:D331 Y:015E P:eNvmxdizc $81/D365 97 20 STA [$20],y[$7E:A95E] A:2FC2 X:D331 Y:015E P:envmxdizc $81/D367 68 PLA A:2FC2 X:D331 Y:015E P:envmxdizc $81/D368 18 CLC A:015C X:D331 Y:015E P:envmxdizc $81/D369 69 40 00 ADC #$0040 A:015C X:D331 Y:015E P:envmxdizc $81/D36C A8 TAY A:019C X:D331 Y:015E P:envmxdizc $81/D36D C6 02 DEC $02 [$00:0002] A:019C X:D331 Y:019C P:envmxdizc $81/D36F 30 1C BMI $1C [$D38D] A:019C X:D331 Y:019C P:eNvmxdizc $81/D371 5A PHY A:0144 X:D331 Y:0144 P:envmxdizc $81/D372 BD 06 00 LDA $0006,x[$81:D337] A:0144 X:D331 Y:0144 P:envmxdizc $81/D375 97 20 STA [$20],y[$7E:A944] A:2FC6 X:D331 Y:0144 P:envmxdizc $81/D377 C8 INY A:2FC6 X:D331 Y:0144 P:envmxdizc $81/D378 C8 INY A:2FC6 X:D331 Y:0145 P:envmxdizc $81/D379 98 TYA A:2FC6 X:D331 Y:0146 P:envmxdizc $81/D37A 18 CLC A:0146 X:D331 Y:0146 P:envmxdizc $81/D37B 65 00 ADC $00 [$00:0000] A:0146 X:D331 Y:0146 P:envmxdizc $81/D37D 65 00 ADC $00 [$00:0000] A:015E X:D331 Y:0146 P:envmxdizc $81/D37F A8 TAY A:0176 X:D331 Y:0146 P:envmxdizc $81/D380 BD 08 00 LDA $0008,x[$81:D339] A:0176 X:D331 Y:0176 P:envmxdizc $81/D383 97 20 STA [$20],y[$7E:A976] A:2FC7 X:D331 Y:0176 P:envmxdizc $81/D385 68 PLA A:2FC7 X:D331 Y:0176 P:envmxdizc $81/D386 18 CLC A:0144 X:D331 Y:0176 P:envmxdizc $81/D387 69 40 00 ADC #$0040 A:0144 X:D331 Y:0176 P:envmxdizc $81/D38A A8 TAY A:0184 X:D331 Y:0176 P:envmxdizc $81/D38B 80 E0 BRA $E0 [$D36D] A:0184 X:D331 Y:0184 P:envmxdizc $81/D38D BD 0A 00 LDA $000A,x[$81:D33B] A:019C X:D331 Y:019C P:eNvmxdizc $81/D390 97 20 STA [$20],y[$7E:A99C] A:2FC3 X:D331 Y:019C P:envmxdizc $81/D392 C8 INY A:2FC3 X:D331 Y:019C P:envmxdizc $81/D393 C8 INY A:2FC3 X:D331 Y:019D P:envmxdizc $81/D394 C6 00 DEC $00 [$00:0000] A:2FC3 X:D331 Y:019E P:envmxdizc $81/D396 30 09 BMI $09 [$D3A1] A:2FC3 X:D331 Y:019E P:eNvmxdizc $81/D398 BD 0C 00 LDA $000C,x[$81:D33D] A:2FC3 X:D331 Y:019C P:envmxdizc $81/D39B 97 20 STA [$20],y[$7E:A99C] A:2FC4 X:D331 Y:019C P:envmxdizc $81/D39D C8 INY A:2FC4 X:D331 Y:019C P:envmxdizc $81/D39E C8 INY A:2FC4 X:D331 Y:019D P:envmxdizc $81/D39F 80 F3 BRA $F3 [$D394] A:2FC4 X:D331 Y:019E P:envmxdizc $81/D3A1 BD 0E 00 LDA $000E,x[$81:D33F] A:2FC3 X:D331 Y:019E P:eNvmxdizc $81/D3A4 97 20 STA [$20],y[$7E:A99E] A:2FC5 X:D331 Y:019E P:envmxdizc $81/D3A6 E2 20 SEP #$20 ; A = 8-bit $81/D3A8 AB PLB ; Restore Data Bank from Stack $81/D3A9 6B RTL
$81/D3EE ?
$81/D3EE 48 PHA A:0000 X:45D9 Y:0002 P:envMxdiZc $81/D3EF C2 20 REP #$20 A:0000 X:45D9 Y:0002 P:envMxdiZc $81/D3F1 8A TXA A:0000 X:45D9 Y:0002 P:envmxdiZc $81/D3F2 9D 11 00 STA $0011,x[$7E:45EA] A:45D9 X:45D9 Y:0002 P:envmxdizc $81/D3F5 E2 20 SEP #$20 A:45D9 X:45D9 Y:0002 P:envmxdizc $81/D3F7 68 PLA A:45D9 X:45D9 Y:0002 P:envMxdizc $81/D3F8 4C FF D3 JMP $D3FF [$81:D3FF] A:4500 X:45D9 Y:0002 P:envMxdiZc
- code is missing here
$81/D3FF 5A PHY A:4500 X:45D9 Y:0002 P:envMxdiZc $81/D400 BC 11 00 LDY $0011,x[$7E:45EA] A:4500 X:45D9 Y:0002 P:envMxdiZc $81/D403 99 01 00 STA $0001,y[$7E:45DA] A:4500 X:45D9 Y:45D9 P:envMxdizc $81/D406 7A PLY A:4500 X:45D9 Y:45D9 P:envMxdizc $81/D407 60 RTS A:4500 X:45D9 Y:0002 P:envMxdizc
$81/D40C ?
$81/D40C 5A PHY A:0000 X:3919 Y:3911 P:envMxdiZC $81/D40D BC 11 00 LDY $0011,x[$7E:392A] A:0000 X:3919 Y:3911 P:envMxdiZC $81/D410 B9 01 00 LDA $0001,y[$7E:391A] A:0000 X:3919 Y:3919 P:envMxdizC $81/D413 7A PLY A:0004 X:3919 Y:3919 P:envMxdizC $81/D414 60 RTS A:0004 X:3919 Y:3911 P:envMxdizC
$81/D419 ?
$81/D419 5A PHY A:4C03 X:45D9 Y:45D9 P:envMxdizc $81/D41A BC 11 00 LDY $0011,x[$7E:45EA] A:4C03 X:45D9 Y:45D9 P:envMxdizc $81/D41D C8 INY A:4C03 X:45D9 Y:45D9 P:envMxdizc $81/D41E 99 01 00 STA $0001,y[$7E:45DB] A:4C03 X:45D9 Y:45DA P:envMxdizc $81/D421 C2 20 REP #$20 A:4C03 X:45D9 Y:45DA P:envMxdizc $81/D423 98 TYA A:4C03 X:45D9 Y:45DA P:envmxdizc $81/D424 9D 11 00 STA $0011,x[$7E:45EA] A:45DA X:45D9 Y:45DA P:envmxdizc $81/D427 E2 20 SEP #$20 A:45DA X:45D9 Y:45DA P:envmxdizc $81/D429 7A PLY A:45DA X:45D9 Y:45DA P:envMxdizc $81/D42A 60 RTS A:45DA X:45D9 Y:45D9 P:envMxdizc
$81/D42F ?
This subroutine has a flag function at its ends (Clear Carry/Set Carry), yet it seems like it is never checked outside of it. Might be a case of beta remnants/"this line could be removed".
$81/D42F C2 20 REP #$20 ; A = 16-bit $81/D431 48 PHA ; Buffer A on Stack $81/D432 8A TXA A:0000 X:3919 Y:41DB P:envmxdizc $81/D433 DD 11 00 CMP $0011,x[$7E:392A] A:3919 X:3919 Y:41DB P:envmxdizc $81/D436 F0 08 BEQ $08 [$D440] A:3919 X:3919 Y:41DB P:envmxdiZC $81/D438 DE 11 00 DEC $0011,x[$7E:45EA] A:45D9 X:45D9 Y:0006 P:eNvmxdizc $81/D43B 68 PLA ; Restore A from Stack $81/D43C E2 20 SEP #$20 ; A = 8-bit $81/D43E 18 CLC ; Clear Carry (= Error Flag) $81/D43F 60 RTS $81/D440 68 PLA ; Restore A from Stack $81/D441 E2 21 SEP #$21 ; A = 8-bit / Set Carry (= Error Flag) $81/D443 60 RTS
$81/D448 ?
$81/D448 48 PHA ; Buffer A on Stack $81/D449 7B TDC ; Clear 16-bit A $81/D44A A5 C1 LDA $C1 [$00:00C1] A:0000 X:3300 Y:3762 P:envMxdiZc $81/D44C F0 10 BEQ $10 [$D45E] A:0003 X:3300 Y:3762 P:envMxdizc $81/D44E 3A DEC A A:0003 X:3300 Y:3762 P:envMxdizc $81/D44F 0A ASL A A:0002 X:3300 Y:3762 P:envMxdizc $81/D450 A8 TAY A:0004 X:3300 Y:3762 P:envMxdizc $81/D451 B6 C2 LDX $C2,y [$00:00C6] A:0004 X:3300 Y:0004 P:envMxdizc $81/D453 BD 00 00 LDA $0000,x[$7E:3919] A:0004 X:3919 Y:0004 P:envMxdizc $81/D456 C3 01 CMP $01,s [$00:1FD0] A:0001 X:3919 Y:0004 P:envMxdizc $81/D458 F0 07 BEQ $07 [$D461] A:0001 X:3919 Y:0004 P:eNvMxdizc $81/D45A 88 DEY A:0001 X:3919 Y:0004 P:eNvMxdizc $81/D45B 88 DEY A:0001 X:3919 Y:0003 P:envMxdizc $81/D45C 10 F3 BPL $F3 [$D451] A:0001 X:3919 Y:0002 P:envMxdizc $81/D45E 68 PLA ; Restore A from Stack $81/D45F 38 SEC A:0002 X:3300 Y:FFFE P:envMxdizC $81/D460 60 RTS A:0002 X:3300 Y:FFFE P:envMxdizC $81/D461 68 PLA ; Restore A from Stack $81/D462 18 CLC A:0002 X:3911 Y:0002 P:envMxdizC $81/D463 60 RTS A:0002 X:3911 Y:0002 P:envMxdizc
$81/D4B0 ?
$81/D4B0 22 7B F5 81 JSL $81F57B[$81:F57B] A:0032 X:3300 Y:0879 P:envMxdizc $81/D4B4 6B RTL A:0032 X:0013 Y:0009 P:envMxdizc
$81/D9D7 GRAPHICS: Textbox "Go On" Hand Sprite, Low Position
SIZE: $40, ($81/D9D7 - $81/DA16) USED AT: $81/ABF1
At the End of a Textbox, there can appear a Gloved Hand Icon that moves up and down to signalize that this message will go on. These $40 bytes are the sprites tiles for the low position of this Gloved Hand.
$81/DA17 GRAPHICS: Textbox "Go On" Hand Sprite, High Position
SIZE: $40, ($81/DA17 - $81/DA46) USED AT: $81/ABF1
At the End of a Textbox, there can appear a Gloved Hand Icon that moves up and down to signalize that this message will go on. These $40 bytes are the sprites tiles for the high position of this Gloved Hand.
$81/DA64 ?
$81/DA64 48 PHA A:4C7E X:45D9 Y:0879 P:envMxdizc $81/DA65 DA PHX A:4C7E X:45D9 Y:0879 P:envMxdizc $81/DA66 C0 20 05 CPY #$0520 A:4C7E X:45D9 Y:0879 P:envMxdizc $81/DA69 90 08 BCC $08 [$DA73] A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA6B C0 3C 05 CPY #$053C A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA6E B0 03 BCS $03 [$DA73] A:4C7E X:45D9 Y:0879 P:envMxdizC
- code is missing here
$81/DA73 C0 92 01 CPY #$0192 A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA76 90 08 BCC $08 [$DA80] A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA78 C0 22 02 CPY #$0222 A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA7B B0 03 BCS $03 [$DA80] A:4C7E X:45D9 Y:0879 P:envMxdizC
- code is missing here
$81/DA80 C0 C3 00 CPY #$00C3 A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA83 90 08 BCC $08 [$DA8D] A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA85 C0 92 01 CPY #$0192 A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA88 B0 03 BCS $03 [$DA8D] A:4C7E X:45D9 Y:0879 P:envMxdizC
- code is missing here
$81/DA8D FA PLX A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA8E 68 PLA A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA8F 38 SEC A:4C7E X:45D9 Y:0879 P:envMxdizC $81/DA90 60 RTS A:4C7E X:45D9 Y:0879 P:envMxdizC
$81/E2C2 ?
$81/E2C2 8B PHB A:000F X:BEBE Y:01FE P:envMxdizc $81/E2C3 4B PHK A:000F X:BEBE Y:01FE P:envMxdizc $81/E2C4 AB PLB A:000F X:BEBE Y:01FE P:envMxdizc $81/E2C5 C2 21 REP #$21 A:000F X:BEBE Y:01FE P:eNvMxdizc $81/E2C7 29 FF 00 AND #$00FF A:000F X:BEBE Y:01FE P:eNvmxdizc $81/E2CA 0A ASL A A:000F X:BEBE Y:01FE P:envmxdizc $81/E2CB AA TAX A:001E X:BEBE Y:01FE P:envmxdizc $81/E2CC BF 31 E3 81 LDA $81E331,x[$81:E34F] A:001E X:001E Y:01FE P:envmxdizc $81/E2D0 AA TAX A:E3C5 X:001E Y:01FE P:eNvmxdizc $81/E2D1 E2 20 SEP #$20 A:E3C5 X:E3C5 Y:01FE P:eNvmxdizc $81/E2D3 A0 00 00 LDY #$0000 A:E3C5 X:E3C5 Y:01FE P:eNvMxdizc $81/E2D6 BD 00 00 LDA $0000,x[$81:E3C5] A:E3C5 X:E3C5 Y:0000 P:envMxdiZc $81/E2D9 97 23 STA [$23],y[$7E:BEBE] A:E303 X:E3C5 Y:0000 P:envMxdizc $81/E2DB 85 00 STA $00 [$00:0000] A:E303 X:E3C5 Y:0000 P:envMxdizc $81/E2DD C8 INY A:E303 X:E3C5 Y:0000 P:envMxdizc $81/E2DE E8 INX A:E303 X:E3C5 Y:0001 P:envMxdizc $81/E2DF C2 21 REP #$21 A:E303 X:E3C6 Y:0001 P:eNvMxdizc $81/E2E1 BD 00 00 LDA $0000,x[$81:E3C6] A:E303 X:E3C6 Y:0001 P:eNvmxdizc $81/E2E4 97 23 STA [$23],y[$7E:BEBF] A:0000 X:E3C6 Y:0001 P:envmxdiZc $81/E2E6 C8 INY A:0000 X:E3C6 Y:0001 P:envmxdiZc $81/E2E7 C8 INY A:0000 X:E3C6 Y:0002 P:envmxdizc $81/E2E8 BD 02 00 LDA $0002,x[$81:E3C8] A:0000 X:E3C6 Y:0003 P:envmxdizc $81/E2EB 0A ASL A A:070E X:E3C6 Y:0003 P:envmxdizc $81/E2EC DA PHX A:0E1C X:E3C6 Y:0003 P:envmxdizc $81/E2ED AA TAX A:0E1C X:E3C6 Y:0003 P:envmxdizc $81/E2EE BF 96 C0 8C LDA $8CC096,x[$8C:CEB2] A:0E1C X:0E1C Y:0003 P:envmxdizc $81/E2F2 FA PLX A:A6AA X:0E1C Y:0003 P:eNvmxdizc $81/E2F3 97 23 STA [$23],y[$7E:BEC1] A:A6AA X:E3C6 Y:0003 P:eNvmxdizc $81/E2F5 C8 INY A:A6AA X:E3C6 Y:0003 P:eNvmxdizc $81/E2F6 C8 INY A:A6AA X:E3C6 Y:0004 P:envmxdizc $81/E2F7 E2 20 SEP #$20 A:A6AA X:E3C6 Y:0005 P:envmxdizc $81/E2F9 A9 8C LDA #$8C A:A6AA X:E3C6 Y:0005 P:envMxdizc $81/E2FB 97 23 STA [$23],y[$7E:BEC3] A:A68C X:E3C6 Y:0005 P:eNvMxdizc $81/E2FD C8 INY A:A68C X:E3C6 Y:0005 P:eNvMxdizc $81/E2FE 7B TDC A:A68C X:E3C6 Y:0006 P:envMxdizc $81/E2FF C2 20 REP #$20 A:0000 X:E3C6 Y:0006 P:envMxdiZc $81/E301 46 02 LSR $02 [$00:0002] A:0000 X:E3C6 Y:0006 P:envmxdiZc $81/E303 E2 20 SEP #$20 A:0000 X:E3C6 Y:0006 P:envmxdiZc $81/E305 69 00 ADC #$00 A:0000 X:E3C6 Y:0006 P:envMxdiZc $81/E307 97 23 STA [$23],y[$7E:BEC4] A:0000 X:E3C6 Y:0006 P:envMxdiZc $81/E309 C8 INY A:0000 X:E3C6 Y:0006 P:envMxdiZc $81/E30A C2 20 REP #$20 A:0000 X:E3C6 Y:0007 P:envMxdizc $81/E30C BD 04 00 LDA $0004,x[$81:E3CA] A:0000 X:E3C6 Y:0007 P:envmxdizc $81/E30F 0A ASL A A:070A X:E3C6 Y:0007 P:envmxdizc $81/E310 DA PHX A:0E14 X:E3C6 Y:0007 P:envmxdizc $81/E311 AA TAX A:0E14 X:E3C6 Y:0007 P:envmxdizc $81/E312 BF 96 C0 8C LDA $8CC096,x[$8C:CEAA] A:0E14 X:0E14 Y:0007 P:envmxdizc $81/E316 FA PLX A:A693 X:0E14 Y:0007 P:eNvmxdizc $81/E317 97 23 STA [$23],y[$7E:BEC5] A:A693 X:E3C6 Y:0007 P:eNvmxdizc $81/E319 C8 INY A:A693 X:E3C6 Y:0007 P:eNvmxdizc $81/E31A C8 INY A:A693 X:E3C6 Y:0008 P:envmxdizc $81/E31B E2 20 SEP #$20 A:A693 X:E3C6 Y:0009 P:envmxdizc $81/E31D A9 8C LDA #$8C A:A693 X:E3C6 Y:0009 P:envMxdizc $81/E31F 97 23 STA [$23],y[$7E:BEC7] A:A68C X:E3C6 Y:0009 P:eNvMxdizc $81/E321 C8 INY A:A68C X:E3C6 Y:0009 P:eNvMxdizc $81/E322 C2 21 REP #$21 A:A68C X:E3C6 Y:000A P:envMxdizc $81/E324 8A TXA A:A68C X:E3C6 Y:000A P:envmxdizc $81/E325 69 06 00 ADC #$0006 A:E3C6 X:E3C6 Y:000A P:eNvmxdizc $81/E328 AA TAX A:E3CC X:E3C6 Y:000A P:eNvmxdizc $81/E329 E2 20 SEP #$20 A:E3CC X:E3CC Y:000A P:eNvmxdizc $81/E32B C6 00 DEC $00 [$00:0000] A:E3CC X:E3CC Y:000A P:eNvMxdizc $81/E32D D0 B0 BNE $B0 [$E2DF] A:E3CC X:E3CC Y:000A P:envMxdizc $81/E32F AB PLB A:E3D8 X:E3D8 Y:001C P:envMxdiZc $81/E330 6B RTL A:E3D8 X:E3D8 Y:001C P:eNvMxdizc
$81/E331 ? Table for the subroutine above
Table for the subroutine above
$81/E6F0 ?
$81/E6F0 48 PHA A:000D X:0030 Y:0000 P:envMxdizc $81/E6F1 7B TDC A:000D X:0030 Y:0000 P:envMxdizc $81/E6F2 68 PLA A:0000 X:0030 Y:0000 P:envMxdiZc $81/E6F3 3A DEC A A:000D X:0030 Y:0000 P:envMxdizc $81/E6F4 0A ASL A A:000C X:0030 Y:0000 P:envMxdizc $81/E6F5 AA TAX A:0018 X:0030 Y:0000 P:envMxdizc $81/E6F6 98 TYA A:0018 X:0018 Y:0000 P:envMxdizc $81/E6F7 7C FA E6 JMP ($E6FA,x)[$81:E818] A:0000 X:0018 Y:0000 P:envMxdiZc
$81/E6FA ? Table for the subroutine above
$81/E6FA 2E E7 --- Entry #$00 - $81/E72E $81/E6FC 33 E7 --- Entry #$01 - $81/E733 $81/E6FE 3D E7 --- Entry #$02 - $81/E73D $81/E700 4D E7 --- Entry #$03 - $81/E74D $81/E702 42 E7 --- Entry #$04 - $81/E742 $81/E704 A6 E7 --- Entry #$05 - $81/E7A6 $81/E706 B9 E7 --- Entry #$06 - $81/E7B9 $81/E708 CC E7 --- Entry #$07 - $81/E7CC $81/E70A E8 E7 --- Entry #$08 - $81/E7E8 $81/E70C FE E7 --- Entry #$09 - $81/E7FE $81/E70E 18 E8 --- Entry #$0A - $81/E818 $81/E710 47 E7 --- Entry #$0B - $81/E747 $81/E712 1E E8 --- Entry #$0C - $81/E81E $81/E714 27 E8 --- Entry #$0D - $81/E827
$81/E818 ?
Obviously some hardcoded WRAM address
$81/E818 A0 24 B8 LDY #$B824 A:0000 X:0018 Y:0000 P:envMxdiZc $81/E81B A9 7E LDA #$7E A:0000 X:0018 Y:B824 P:eNvMxdizc $81/E81D 6B RTL A:007E X:0018 Y:B824 P:envMxdizc
$81/E836 ? Deactivate HDMA Window mask and other stuff
This clears $175F and all registers from $176D to $1775.
$81/E836 9C 5F 17 STZ $175F ; Deactivate HDMA Window mask $81/E839 A2 00 B1 LDX #$B100 ; (Re?)set Window Mask HDMA Table Start Address to $B100 $81/E83C 8E 61 17 STX $1761 $81/E83F A2 08 00 LDX #$0008 ; Setup Loop counter $81/E842 9E 6D 17 STZ $176D,x ; Clear $176D-$1775 $81/E845 CA DEX ; Decrement Loop counter $81/E846 10 FA BPL $FA ; [$E842] Loop $81/E848 6B RTL
$81/E849 ?
$81/E849 E2 10 SEP #$10 A:A108 X:FFFF Y:0000 P:eNvMxdizC $81/E84B A9 E0 LDA #$E0 A:A108 X:00FF Y:0000 P:eNvMXdizC $81/E84D 8F E0 B0 7E STA $7EB0E0[$7E:B0E0] A:A1E0 X:00FF Y:0000 P:eNvMXdizC $81/E851 A9 FF LDA #$FF A:A1E0 X:00FF Y:0000 P:eNvMXdizC $81/E853 8F E1 B0 7E STA $7EB0E1[$7E:B0E1] A:A1FF X:00FF Y:0000 P:eNvMXdizC $81/E857 A9 00 LDA #$00 A:A1FF X:00FF Y:0000 P:eNvMXdizC $81/E859 8F E2 B0 7E STA $7EB0E2[$7E:B0E2] A:A100 X:00FF Y:0000 P:envMXdiZC $81/E85D A9 03 LDA #$03 A:A100 X:00FF Y:0000 P:envMXdiZC $81/E85F 85 0E STA $0E [$00:000E] A:A103 X:00FF Y:0000 P:envMXdizC $81/E861 64 0F STZ $0F [$00:000F] A:A103 X:00FF Y:0000 P:envMXdizC $81/E863 A0 08 LDY #$08 A:A103 X:00FF Y:0000 P:envMXdizC $81/E865 B9 6D 17 LDA $176D,y[$80:1775] A:A103 X:00FF Y:0008 P:envMXdizC $81/E868 F0 16 BEQ $16 [$E880] A:A100 X:00FF Y:0008 P:envMXdiZC $81/E86A 85 01 STA $01 [$00:0001] A:0040 X:0000 Y:0001 P:enVMXdizc $81/E86C B9 64 17 LDA $1764,y[$7E:1765] A:0040 X:0000 Y:0001 P:enVMXdizc $81/E86F 85 00 STA $00 [$00:0000] A:004F X:0000 Y:0001 P:enVMXdizc $81/E871 B9 76 17 LDA $1776,y[$7E:1777] A:004F X:0000 Y:0001 P:enVMXdizc $81/E874 85 02 STA $02 [$00:0002] A:0058 X:0000 Y:0001 P:enVMXdizc $81/E876 B9 7F 17 LDA $177F,y[$7E:1780] A:0058 X:0000 Y:0001 P:enVMXdizc $81/E879 85 03 STA $03 [$00:0003] A:009F X:0000 Y:0001 P:eNVMXdizc $81/E87B 20 E6 E8 JSR $E8E6 [$81:E8E6] A:009F X:0000 Y:0001 P:eNVMXdizc $81/E87E E6 0F INC $0F [$00:000F] A:0000 X:0006 Y:0001 P:envMXdizc $81/E880 88 DEY A:A100 X:00FF Y:0008 P:envMXdiZC $81/E881 10 E2 BPL $E2 [$E865] A:A100 X:00FF Y:0007 P:envMXdizC $81/E883 A5 0F LDA $0F [$00:000F] A:A100 X:00FF Y:00FF P:eNvMXdizC $81/E885 F0 0E BEQ $0E [$E895] A:A100 X:00FF Y:00FF P:envMXdiZC $81/E887 A9 10 LDA #$10 A:0001 X:0006 Y:00FF P:envMXdizc $81/E889 0C B0 05 TSB $05B0 [$7E:05B0] A:0010 X:0006 Y:00FF P:envMXdizc $81/E88C C2 10 REP #$10 A:0010 X:0006 Y:00FF P:envMXdiZc $81/E88E 64 0F STZ $0F [$00:000F] A:0010 X:0006 Y:00FF P:envMxdiZc $81/E890 20 A6 E8 JSR $E8A6 [$81:E8A6] A:0010 X:0006 Y:00FF P:envMxdiZc $81/E893 80 08 BRA $08 [$E89D] A:0000 X:0009 Y:B109 P:envMxdizC $81/E895 A9 10 LDA #$10 A:A100 X:00FF Y:00FF P:envMXdiZC $81/E897 1C B0 05 TRB $05B0 [$80:05B0] A:A110 X:00FF Y:00FF P:envMXdizC $81/E89A C2 10 REP #$10 A:A110 X:00FF Y:00FF P:envMXdiZC $81/E89C 6B RTL A:A110 X:00FF Y:00FF P:envMxdiZC $81/E89D A9 01 LDA #$01 A:0000 X:0009 Y:B109 P:envMxdizC $81/E89F 8D 5F 17 STA $175F [$7E:175F] A:0001 X:0009 Y:B109 P:envMxdizC $81/E8A2 8D 60 17 STA $1760 [$7E:1760] A:0001 X:0009 Y:B109 P:envMxdizC $81/E8A5 6B RTL A:0001 X:0009 Y:B109 P:envMxdizC
$81/E8A6 ?
$81/E8A6 AC 61 17 LDY $1761 [$7E:1761] A:0010 X:0006 Y:00FF P:envMxdiZc $81/E8A9 8B PHB A:0010 X:0006 Y:B100 P:eNvMxdizc $81/E8AA A9 7E LDA #$7E A:0010 X:0006 Y:B100 P:eNvMxdizc $81/E8AC 48 PHA A:007E X:0006 Y:B100 P:envMxdizc $81/E8AD AB PLB A:007E X:0006 Y:B100 P:envMxdizc $81/E8AE 7B TDC A:007E X:0006 Y:B100 P:envMxdizc $81/E8AF AA TAX A:0000 X:0006 Y:B100 P:envMxdiZc $81/E8B0 BD E0 B0 LDA $B0E0,x[$7E:B0E0] A:0000 X:0000 Y:B100 P:envMxdiZc $81/E8B3 C9 80 CMP #$80 A:004F X:0000 Y:B100 P:envMxdizc $81/E8B5 90 02 BCC $02 [$E8B9] A:004F X:0000 Y:B100 P:eNvMxdizc $81/E8B7 A9 7F LDA #$7F A:009F X:0000 Y:B120 P:envMxdizC $81/E8B9 99 00 00 STA $0000,y[$7E:B100] A:004F X:0000 Y:B100 P:eNvMxdizc $81/E8BC BD E1 B0 LDA $B0E1,x[$7E:B0E1] A:004F X:0000 Y:B100 P:eNvMxdizc $81/E8BF 99 01 00 STA $0001,y[$7E:B101] A:00FF X:0000 Y:B100 P:eNvMxdizc $81/E8C2 BD E2 B0 LDA $B0E2,x[$7E:B0E2] A:00FF X:0000 Y:B100 P:eNvMxdizc $81/E8C5 99 02 00 STA $0002,y[$7E:B102] A:0000 X:0000 Y:B100 P:envMxdiZc $81/E8C8 BD E0 B0 LDA $B0E0,x[$7E:B0E0] A:0000 X:0000 Y:B100 P:envMxdiZc $81/E8CB C9 80 CMP #$80 A:004F X:0000 Y:B100 P:envMxdizc $81/E8CD 90 07 BCC $07 [$E8D6] A:004F X:0000 Y:B100 P:eNvMxdizc $81/E8CF E9 7F SBC #$7F A:009F X:0000 Y:B120 P:envMxdizC $81/E8D1 9D E0 B0 STA $B0E0,x[$7E:B0E0] A:0020 X:0000 Y:B120 P:enVMxdizC $81/E8D4 80 03 BRA $03 [$E8D9] A:0020 X:0000 Y:B120 P:enVMxdizC $81/E8D6 E8 INX A:004F X:0000 Y:B100 P:eNvMxdizc $81/E8D7 E8 INX A:004F X:0001 Y:B100 P:envMxdizc $81/E8D8 E8 INX A:004F X:0002 Y:B100 P:envMxdizc $81/E8D9 C8 INY A:004F X:0003 Y:B100 P:envMxdizc $81/E8DA C8 INY A:004F X:0003 Y:B101 P:eNvMxdizc $81/E8DB C8 INY A:004F X:0003 Y:B102 P:eNvMxdizc $81/E8DC E4 0E CPX $0E [$00:000E] A:004F X:0003 Y:B103 P:eNvMxdizc $81/E8DE D0 D0 BNE $D0 [$E8B0] A:004F X:0003 Y:B103 P:eNvMxdizc $81/E8E0 7B TDC A:0051 X:0009 Y:B109 P:envMxdiZC $81/E8E1 99 00 00 STA $0000,y[$7E:B109] A:0000 X:0009 Y:B109 P:envMxdiZC $81/E8E4 AB PLB A:0000 X:0009 Y:B109 P:envMxdiZC $81/E8E5 60 RTS A:0000 X:0009 Y:B109 P:envMxdizC
$81/E8E6 ?
$81/E8E6 8B PHB A:00D7 X:00D9 Y:0004 P:eNvMXdizc $81/E8E7 A9 7E LDA #$7E A:00D7 X:00D9 Y:0004 P:eNvMXdizc $81/E8E9 48 PHA A:007E X:00D9 Y:0004 P:envMXdizc $81/E8EA AB PLB A:007E X:00D9 Y:0004 P:envMXdizc $81/E8EB 64 04 STZ $04 [$00:0004] A:007E X:00D9 Y:0004 P:envMXdizc $81/E8ED A2 00 LDX #$00 A:007E X:00D9 Y:0004 P:envMXdizc $81/E8EF A5 01 LDA $01 [$00:0001] A:007E X:0000 Y:0004 P:envMXdiZc $81/E8F1 D0 02 BNE $02 [$E8F5] A:0030 X:0000 Y:0004 P:envMXdizc $81/E8F3 AB PLB A:0000 X:0006 Y:0004 P:envMXdiZc $81/E8F4 60 RTS A:0000 X:0006 Y:0004 P:envMXdizc $81/E8F5 BD E0 B0 LDA $B0E0,x[$7E:B0E0] A:0030 X:0000 Y:0004 P:envMXdizc $81/E8F8 18 CLC A:00E0 X:0000 Y:0004 P:eNvMXdizc $81/E8F9 65 04 ADC $04 [$00:0004] A:00E0 X:0000 Y:0004 P:eNvMXdizc $81/E8FB C5 00 CMP $00 [$00:0000] A:00E0 X:0000 Y:0004 P:eNvMXdizc $81/E8FD F0 02 BEQ $02 [$E901] A:00E0 X:0000 Y:0004 P:eNvMXdizC $81/E8FF B0 0B BCS $0B [$E90C] A:00E0 X:0000 Y:0004 P:eNvMXdizC $81/E901 85 04 STA $04 [$00:0004] A:0017 X:0000 Y:0004 P:envMXdizC $81/E903 E8 INX A:0017 X:0000 Y:0004 P:envMXdizC $81/E904 E8 INX A:0017 X:0001 Y:0004 P:envMXdizC $81/E905 E8 INX A:0017 X:0002 Y:0004 P:envMXdizC $81/E906 E4 0E CPX $0E [$00:000E] A:0017 X:0003 Y:0004 P:envMXdizC $81/E908 F0 E9 BEQ $E9 [$E8F3] A:0017 X:0003 Y:0004 P:eNvMXdizc $81/E90A 80 E3 BRA $E3 [$E8EF] A:0017 X:0003 Y:0004 P:eNvMXdizc $81/E90C A5 02 LDA $02 [$00:0002] A:00E0 X:0000 Y:0004 P:eNvMXdizC $81/E90E DD E1 B0 CMP $B0E1,x[$7E:B0E1] A:0018 X:0000 Y:0004 P:envMXdizC $81/E911 90 23 BCC $23 [$E936] A:0018 X:0000 Y:0004 P:envMXdizc
- code is missing here
$81/E91A A5 04 LDA $04 [$00:0004] A:00C9 X:0000 Y:0004 P:eNvMXdizc $81/E91C 18 CLC A:0000 X:0000 Y:0004 P:envMXdiZc $81/E91D 7D E0 B0 ADC $B0E0,x[$7E:B0E0] A:0000 X:0000 Y:0004 P:envMXdiZc $81/E920 48 PHA A:0017 X:0000 Y:0004 P:envMXdizc $81/E921 38 SEC A:0017 X:0000 Y:0004 P:envMXdizc $81/E922 E5 00 SBC $00 [$00:0000] A:0017 X:0000 Y:0004 P:envMXdizC $81/E924 85 05 STA $05 [$00:0005] A:0000 X:0000 Y:0004 P:envMXdiZC $81/E926 A5 01 LDA $01 [$00:0001] A:0000 X:0000 Y:0004 P:envMXdiZC $81/E928 38 SEC A:0030 X:0000 Y:0004 P:envMXdizC $81/E929 E5 05 SBC $05 [$00:0005] A:0030 X:0000 Y:0004 P:envMXdizC $81/E92B B0 02 BCS $02 [$E92F] A:0030 X:0000 Y:0004 P:envMXdizC $81/E92F 85 01 STA $01 [$00:0001] A:0030 X:0000 Y:0004 P:envMXdizC $81/E931 68 PLA A:0030 X:0000 Y:0004 P:envMXdizC $81/E932 85 00 STA $00 [$00:0000] A:0017 X:0000 Y:0004 P:envMXdizC $81/E934 80 CB BRA $CB [$E901] A:0017 X:0000 Y:0004 P:envMXdizC $81/E936 A5 04 LDA $04 [$00:0004] A:0018 X:0000 Y:0004 P:envMXdizc $81/E938 C5 00 CMP $00 [$00:0000] A:0000 X:0000 Y:0004 P:envMXdiZc $81/E93A F0 17 BEQ $17 [$E953] A:0000 X:0000 Y:0004 P:eNvMXdizc $81/E93C 20 83 E9 JSR $E983 [$81:E983] A:0000 X:0000 Y:0004 P:eNvMXdizc $81/E93F A5 00 LDA $00 [$00:0000] A:00E0 X:0000 Y:0004 P:envMXdizC $81/E941 38 SEC A:0017 X:0000 Y:0004 P:envMXdizC $81/E942 E5 04 SBC $04 [$00:0004] A:0017 X:0000 Y:0004 P:envMXdizC $81/E944 9D E0 B0 STA $B0E0,x[$7E:B0E0] A:0017 X:0000 Y:0004 P:envMXdizC $81/E947 38 SEC A:0017 X:0000 Y:0004 P:envMXdizC $81/E948 FD E3 B0 SBC $B0E3,x[$7E:B0E3] A:0017 X:0000 Y:0004 P:envMXdizC $81/E94B 49 FF EOR #$FF A:0037 X:0000 Y:0004 P:envMXdizc $81/E94D 1A INC A A:00C8 X:0000 Y:0004 P:eNvMXdizc $81/E94E 9D E3 B0 STA $B0E3,x[$7E:B0E3] A:00C9 X:0000 Y:0004 P:eNvMXdizc $81/E951 80 C7 BRA $C7 [$E91A] A:00C9 X:0000 Y:0004 P:eNvMXdizc $81/E953 A5 01 LDA $01 [$00:0001] A:0017 X:0003 Y:0004 P:envMXdiZC $81/E955 DD E0 B0 CMP $B0E0,x[$7E:B0E3] A:0030 X:0003 Y:0004 P:envMXdizC $81/E958 B0 11 BCS $11 [$E96B] A:0030 X:0003 Y:0004 P:envMXdizc $81/E95A 20 83 E9 JSR $E983 [$81:E983] A:0030 X:0003 Y:0004 P:envMXdizc $81/E95D A5 01 LDA $01 [$00:0001] A:00C9 X:0003 Y:0004 P:envMXdizC $81/E95F 9D E0 B0 STA $B0E0,x[$7E:B0E3] A:0030 X:0003 Y:0004 P:envMXdizC $81/E962 BD E3 B0 LDA $B0E3,x[$7E:B0E6] A:0030 X:0003 Y:0004 P:envMXdizC $81/E965 38 SEC A:00C9 X:0003 Y:0004 P:eNvMXdizC $81/E966 E5 01 SBC $01 [$00:0001] A:00C9 X:0003 Y:0004 P:eNvMXdizC $81/E968 9D E3 B0 STA $B0E3,x[$7E:B0E6] A:0099 X:0003 Y:0004 P:eNvMXdizC $81/E96B A5 02 LDA $02 [$00:0002] A:0099 X:0003 Y:0004 P:eNvMXdizC $81/E96D DD E1 B0 CMP $B0E1,x[$7E:B0E4] A:0018 X:0003 Y:0004 P:envMXdizC $81/E970 B0 03 BCS $03 [$E975] A:0018 X:0003 Y:0004 P:envMXdizc $81/E972 9D E1 B0 STA $B0E1,x[$7E:B0E4] A:0018 X:0003 Y:0004 P:envMXdizc $81/E975 BD E2 B0 LDA $B0E2,x[$7E:B0E5] A:0018 X:0003 Y:0004 P:envMXdizc $81/E978 C5 03 CMP $03 [$00:0003] A:0000 X:0003 Y:0004 P:envMXdiZc $81/E97A B0 05 BCS $05 [$E981] A:0000 X:0003 Y:0004 P:envMXdizc $81/E97C A5 03 LDA $03 [$00:0003] A:0000 X:0003 Y:0004 P:envMXdizc $81/E97E 9D E2 B0 STA $B0E2,x[$7E:B0E5] A:00D7 X:0003 Y:0004 P:eNvMXdizc $81/E981 80 97 BRA $97 [$E91A] A:00D7 X:0003 Y:0004 P:eNvMXdizc
$81/E983 ?
$81/E983 86 05 STX $05 [$00:0005] A:0000 X:0000 Y:0004 P:eNvMXdizc $81/E985 A6 0E LDX $0E [$00:000E] A:0000 X:0000 Y:0004 P:eNvMXdizc $81/E987 CA DEX A:0000 X:0003 Y:0004 P:envMXdizc $81/E988 BD E0 B0 LDA $B0E0,x[$7E:B0E2] A:0000 X:0002 Y:0004 P:envMXdizc $81/E98B 9D E3 B0 STA $B0E3,x[$7E:B0E5] A:0000 X:0002 Y:0004 P:envMXdiZc $81/E98E E4 05 CPX $05 [$00:0005] A:0000 X:0002 Y:0004 P:envMXdiZc $81/E990 D0 F5 BNE $F5 [$E987] A:0000 X:0002 Y:0004 P:envMXdizC $81/E992 E6 0E INC $0E [$00:000E] A:00E0 X:0000 Y:0004 P:envMXdiZC $81/E994 E6 0E INC $0E [$00:000E] A:00E0 X:0000 Y:0004 P:envMXdizC $81/E996 E6 0E INC $0E [$00:000E] A:00E0 X:0000 Y:0004 P:envMXdizC $81/E998 60 RTS A:00E0 X:0000 Y:0004 P:envMXdizC
$81/E9C5 ?
$81/E9C5 5A PHY A:0032 X:45D9 Y:2B00 P:envMxdizc $81/E9C6 20 40 EA JSR $EA40 [$81:EA40] A:0032 X:45D9 Y:2B00 P:envMxdizc $81/E9C9 7A PLY A:0032 X:0001 Y:5299 P:envMxdizC $81/E9CA 20 38 EB JSR $EB38 [$81:EB38] A:0032 X:0001 Y:2B00 P:envMxdizC $81/E9CD 6B RTL A:0001 X:0000 Y:2B00 P:envMxdizC
$81/E9D7 ?
Executed every time a textbox pops up.
$81/E9D7 C2 20 REP #$20 ; A = 16-bit $81/E9D9 29 FF 00 AND #$00FF ; Clear High Byte of A $81/E9DC 0A ASL A ; Multiply A by 8 $81/E9DD 0A ASL A $81/E9DE 0A ASL A $81/E9DF 48 PHA ; Buffer A on stack $81/E9E0 E2 20 SEP #$20 ; A = 8-bit $81/E9E2 A5 B0 LDA $B0 [$00:00B0] A:0190 X:5299 Y:2B00 P:envMxdizc $81/E9E4 22 B7 A5 88 JSL $88A5B7[$88:A5B7] A:0108 X:5299 Y:2B00 P:envMxdizc $81/E9E8 C2 20 REP #$20 ; A = 16-bit $81/E9EA 03 01 ORA $01,s ; Add the buffered value from stack to A $81/E9EC AA TAX ; Transfer A in X as Load Index $81/E9ED 68 PLA ; Remove buffered A value from stack $81/E9EE BF 2F DF C4 LDA $C4DF2F,x[$C4:E0C3] A:0190 X:0194 Y:2B00 P:envmxdizc $81/E9F2 29 FF 00 AND #$00FF ; Remove accidentally loaded second byte $81/E9F5 0A ASL A ; Multiply by 2 and use it as Load Index $81/E9F6 AA TAX $81/E9F7 BF 01 80 C3 LDA $C38001,x[$C3:8087] A:0086 X:0086 Y:2B00 P:envmxdizc $81/E9FB AA TAX A:8320 X:0086 Y:2B00 P:eNvmxdizc $81/E9FC A9 6E FB LDA #$FB6E A:8320 X:8320 Y:2B00 P:eNvmxdizc $81/E9FF 85 23 STA $23 [$00:0023] A:FB6E X:8320 Y:2B00 P:eNvmxdizc $81/EA01 E2 20 SEP #$20 A:FB6E X:8320 Y:2B00 P:eNvmxdizc $81/EA03 A9 C9 LDA #$C9 A:FB6E X:8320 Y:2B00 P:eNvMxdizc $81/EA05 85 25 STA $25 [$00:0025] A:FBC9 X:8320 Y:2B00 P:eNvMxdizc $81/EA07 A9 C3 LDA #$C3 A:FBC9 X:8320 Y:2B00 P:eNvMxdizc $81/EA09 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:FBC3 X:8320 Y:2B00 P:eNvMxdizc $81/EA0D 6B RTL
$81/EA40 ?
$81/EA40 48 PHA ; Buffer A on Stack $81/EA41 D4 5C PEI ($5C) ; Buffer $5C/$5D on Stack $81/EA43 D4 0E PEI ($0E) ; Buffer $0E/$0F on Stack $81/EA45 D4 20 PEI ($20) ; Buffer $20-$25 on Stack $81/EA47 D4 22 PEI ($22) $81/EA49 D4 24 PEI ($24) $81/EA4B A6 5C LDX $5C [$00:005C] A:0032 X:45D9 Y:2B00 P:envMxdizc $81/EA4D 86 20 STX $20 [$00:0020] A:0032 X:5299 Y:2B00 P:envMxdizc $81/EA4F 48 PHA A:0032 X:5299 Y:2B00 P:envMxdizc $81/EA50 A9 7E LDA #$7E A:0032 X:5299 Y:2B00 P:envMxdizc $81/EA52 85 22 STA $22 [$00:0022] A:007E X:5299 Y:2B00 P:envMxdizc $81/EA54 68 PLA A:007E X:5299 Y:2B00 P:envMxdizc $81/EA55 22 D7 E9 81 JSL $81E9D7[$81:E9D7] A:0032 X:5299 Y:2B00 P:envMxdizc $81/EA59 C2 21 REP #$21 A:FFFF X:8326 Y:52B7 P:envMxdizC $81/EA5B A5 5C LDA $5C [$00:005C] A:FFFF X:8326 Y:52B7 P:envmxdizc $81/EA5D AA TAX A:5299 X:8326 Y:52B7 P:envmxdizc $81/EA5E 65 0E ADC $0E [$00:000E] A:5299 X:5299 Y:52B7 P:envmxdizc $81/EA60 85 5C STA $5C [$00:005C] A:52B7 X:5299 Y:52B7 P:envmxdizc $81/EA62 E2 20 SEP #$20 A:52B7 X:5299 Y:52B7 P:envmxdizc $81/EA64 7A PLY ; Restore $20-$25 from Stack $81/EA65 84 24 STY $24 $81/EA67 7A PLY $81/EA68 84 22 STY $22 $81/EA6A 7A PLY $81/EA6B 84 20 STY $20 $81/EA6D 7A PLY ; Restore $0E-$0F from Stack $81/EA6E 84 0E STY $0E $81/EA70 A9 7E LDA #$7E A:52B7 X:5299 Y:0001 P:envMxdizc $81/EA72 20 92 EA JSR $EA92 [$81:EA92] A:527E X:5299 Y:0001 P:envMxdizc $81/EA75 7A PLY ; Restore $5C/$5D from Stack $81/EA76 84 5C STY $5C $81/EA78 68 PLA ; Restore A from Stack $81/EA79 60 RTS
$81/EA7A ?
$81/EA7A 85 0E STA $0E [$00:000E] A:0001 X:3919 Y:45D9 P:envMxdizc $81/EA7C C2 20 REP #$20 A:0001 X:3919 Y:45D9 P:envMxdizc $81/EA7E 29 FF 00 AND #$00FF A:0001 X:3919 Y:45D9 P:envmxdizc $81/EA81 0A ASL A A:0001 X:3919 Y:45D9 P:envmxdizc $81/EA82 0A ASL A A:0002 X:3919 Y:45D9 P:envmxdizc $81/EA83 0A ASL A A:0004 X:3919 Y:45D9 P:envmxdizc $81/EA84 0A ASL A A:0008 X:3919 Y:45D9 P:envmxdizc $81/EA85 0A ASL A A:0010 X:3919 Y:45D9 P:envmxdizc $81/EA86 69 4D 14 ADC #$144D A:0020 X:3919 Y:45D9 P:envmxdizc $81/EA89 AA TAX A:146D X:3919 Y:45D9 P:envmxdizc $81/EA8A E2 20 SEP #$20 A:146D X:146D Y:45D9 P:envmxdizc $81/EA8C A9 00 LDA #$00 A:146D X:146D Y:45D9 P:envMxdizc $81/EA8E 20 92 EA JSR $EA92 [$81:EA92] A:1400 X:146D Y:45D9 P:envMxdiZc $81/EA91 6B RTL A:0000 X:0001 Y:002D P:envMxdizC
$81/EA92 ?
A contains the Data Bank that should be used in this subroutine
$81/EA92 8B PHB ; Buffer Data Bank on Stack $81/EA93 48 PHA ; Set Data Bank to value in A $81/EA94 AB PLB $81/EA95 D4 0E PEI ($0E) ; Buffer $0E/$0F on Stack $81/EA97 D4 20 PEI ($20) ; Buffer $20-$23 on Stack $81/EA99 D4 22 PEI ($22) $81/EA9B A4 5C LDY $5C [$00:005C] A:527E X:5299 Y:0001 P:envMxdizc $81/EA9D 84 20 STY $20 [$00:0020] A:527E X:5299 Y:52B7 P:envMxdizc $81/EA9F E2 20 SEP #$20 A:527E X:5299 Y:52B7 P:envMxdizc $81/EAA1 A9 7E LDA #$7E A:527E X:5299 Y:52B7 P:envMxdizc $81/EAA3 85 22 STA $22 [$00:0022] A:527E X:5299 Y:52B7 P:envMxdizc $81/EAA5 7B TDC ; Clear 16-bit A $81/EAA6 A5 0E LDA $0E [$00:000E] A:0000 X:5299 Y:52B7 P:envMxdiZc $81/EAA8 C2 20 REP #$20 ; A = 16-bit $81/EAAA 0A ASL A ; Multiply A by #$10 $81/EAAB 0A ASL A ; This line could be removed? - just use XBA? $81/EAAC 0A ASL A $81/EAAD 0A ASL A $81/EAAE 1A INC A A:0010 X:5299 Y:52B7 P:envmxdizc $81/EAAF 85 0E STA $0E [$00:000E] A:0011 X:5299 Y:52B7 P:envmxdizc $81/EAB1 A0 00 00 LDY #$0000 A:0011 X:5299 Y:52B7 P:envmxdizc $81/EAB4 A5 0E LDA $0E [$00:000E] A:0011 X:5299 Y:0000 P:envmxdiZc $81/EAB6 97 20 STA [$20],y[$7E:52B7] A:0011 X:5299 Y:0000 P:envmxdizc $81/EAB8 E6 0E INC $0E [$00:000E] A:0011 X:5299 Y:0000 P:envmxdizc $81/EABA C8 INY A:0011 X:5299 Y:0000 P:envmxdizc $81/EABB BD 00 00 LDA $0000,x[$7E:5299] A:0011 X:5299 Y:0001 P:envmxdizc $81/EABE 97 20 STA [$20],y[$7E:52B8] A:0CA7 X:5299 Y:0001 P:envmxdizc $81/EAC0 E8 INX A:0CA7 X:5299 Y:0001 P:envmxdizc $81/EAC1 E8 INX A:0CA7 X:529A Y:0001 P:envmxdizc $81/EAC2 C8 INY A:0CA7 X:529B Y:0001 P:envmxdizc $81/EAC3 C8 INY A:0CA7 X:529B Y:0002 P:envmxdizc $81/EAC4 C0 2D 00 CPY #$002D A:0CA7 X:529B Y:0003 P:envmxdizc $81/EAC7 90 EB BCC $EB [$EAB4] A:0CA7 X:529B Y:0003 P:eNvmxdizc $81/EAC9 A5 23 LDA $23 [$00:0023] A:573A X:52B7 Y:002D P:envmxdiZC $81/EACB 29 FF 00 AND #$00FF A:4900 X:52B7 Y:002D P:envmxdizC $81/EACE 0A ASL A A:0000 X:52B7 Y:002D P:envmxdiZC $81/EACF 0A ASL A A:0000 X:52B7 Y:002D P:envmxdiZc $81/EAD0 E2 20 SEP #$20 A:0000 X:52B7 Y:002D P:envmxdiZc $81/EAD2 AA TAX A:0000 X:52B7 Y:002D P:envMxdiZc $81/EAD3 A9 0F LDA #$0F A:0000 X:0000 Y:002D P:envMxdiZc $81/EAD5 22 F2 91 80 JSL $8091F2[$80:91F2] A:000F X:0000 Y:002D P:envMxdizc $81/EAD9 FA PLX ; Restore $23-$20 from Stack $81/EADA 86 22 STX $22 $81/EADC FA PLX $81/EADD 86 20 STX $20 $81/EADF FA PLX ; Restore $0E/$0F from Stack $81/EAE0 86 0E STX $0E $81/EAE2 AB PLB ; Restore Data Bank from Stack $81/EAE3 60 RTS
$81/EB38 ?
$81/EB38 DA PHX ; Buffer X and Y on stack $81/EB39 5A PHY $81/EB3A 64 0E STZ $0E ; Clear $0E $81/EB3C D4 0E PEI ($0E) ; Push an empty byte on stack $81/EB3E 48 PHA ; Buffer A on stack $81/EB3F A6 5C LDX $5C [$00:005C] A:0032 X:0001 Y:2B00 P:envMxdizC $81/EB41 86 20 STX $20 [$00:0020] A:0032 X:5299 Y:2B00 P:envMxdizC $81/EB43 A9 7E LDA #$7E A:0032 X:5299 Y:2B00 P:envMxdizC $81/EB45 85 22 STA $22 [$00:0022] A:007E X:5299 Y:2B00 P:envMxdizC $81/EB47 A2 41 C3 LDX #$C341 ; Setup address $C0/C341 in [$23] $81/EB4A A9 C0 LDA #$C0 $81/EB4C 86 23 STX $23 $81/EB4E 85 25 STA $25 $81/EB50 7B TDC ; Clear 16-bit A $81/EB51 68 PLA ; Restore A from stack $81/EB52 C2 20 REP #$20 ; A = 16-bit $81/EB54 0A ASL A ; Multiply by 4 $81/EB55 0A ASL A $81/EB56 AA TAX ; Transfer A in X as Load Index $81/EB57 BF AF EC 81 LDA $81ECAF,x[$81:ED77] A:00C8 X:00C8 Y:2B00 P:envmxdizc $81/EB5B 0A ASL A A:0032 X:00C8 Y:2B00 P:envmxdizc $81/EB5C 7F AF EC 81 ADC $81ECAF,x[$81:ED77] A:0064 X:00C8 Y:2B00 P:envmxdizc $81/EB60 AA TAX A:0096 X:00C8 Y:2B00 P:envmxdizc $81/EB61 BF 87 D9 CA LDA $CAD987,x[$CA:DA1D] A:0096 X:0096 Y:2B00 P:envmxdizc $81/EB65 48 PHA A:DCC1 X:0096 Y:2B00 P:eNvmxdizc $81/EB66 E2 20 SEP #$20 A:DCC1 X:0096 Y:2B00 P:eNvmxdizc $81/EB68 BF 89 D9 CA LDA $CAD989,x[$CA:DA1F] A:DCC1 X:0096 Y:2B00 P:eNvMxdizc $81/EB6C FA PLX A:DCC8 X:0096 Y:2B00 P:eNvMxdizc $81/EB6D 22 98 9E 80 JSL $809E98[$80:9E98] A:DCC8 X:DCC1 Y:2B00 P:eNvMxdizc $81/EB71 C2 20 REP #$20 A:5280 X:0000 Y:2B00 P:envMxdizc $81/EB73 FA PLX A:5280 X:0000 Y:2B00 P:envmxdizc $81/EB74 86 0E STX $0E [$00:000E] A:5280 X:0000 Y:2B00 P:envmxdiZc $81/EB76 68 PLA A:5280 X:0000 Y:2B00 P:envmxdiZc $81/EB77 38 SEC A:2B00 X:0000 Y:2B00 P:envmxdizc $81/EB78 E3 01 SBC $01,s [$00:1FB2] A:2B00 X:0000 Y:2B00 P:envmxdizC $81/EB7A 4A LSR A A:2AFF X:0000 Y:2B00 P:envmxdizC $81/EB7B 4A LSR A A:157F X:0000 Y:2B00 P:envmxdizC $81/EB7C 4A LSR A A:0ABF X:0000 Y:2B00 P:envmxdizC $81/EB7D 4A LSR A A:055F X:0000 Y:2B00 P:envmxdizC $81/EB7E 05 0E ORA $0E [$00:000E] A:02AF X:0000 Y:2B00 P:envmxdizC $81/EB80 85 0E STA $0E [$00:000E] A:02AF X:0000 Y:2B00 P:envmxdizC $81/EB82 68 PLA A:02AF X:0000 Y:2B00 P:envmxdizC $81/EB83 E2 20 SEP #$20 ; A = 8-bit $81/EB85 60 RTS
$81/EB86 ? Use A as Load Index from a Table
A is a Character Sprite number ($17AE)
$81/EB86 DA PHX ; Buffer X on Stack $81/EB87 EB XBA ; Clear Hidden Accumulator 8-bit $81/EB88 A9 00 LDA #$00 $81/EB8A EB XBA $81/EB8B AA TAX ; Transfer 16-bit A value in X as Load Index $81/EB8C BF 92 EB 81 LDA $81EB92,x ; Load byte from the table below $81/EB90 FA PLX ; Restore X from Stack $81/EB91 6B RTL
00 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 28 29 2A 2B 2F 2E 6C 62 30 31 32 33 34 35 36 37 38 39 3A 3B 3E 3C 3D 4C 4D 68 4F 50 51 52 53 54 55 3F 3B 3E 3C 3D 40 41 42 43 44 45 46 47 48 49 4A 4B 56 57 58 59 5A 64 2D 65 2C 2C 2D 3F 56 3A 75 65 6D 80 81 82 7F 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91
$81/EF8F ? Check if bit is set
A contains the Data Bank for this subroutine, X contains an address, Y contains additional data. This loads from the address in A/X and checks if a bit is set, that is corresponding to Y.
$81/EF8F 8B PHB ; Preserve Data Bank $81/EF90 48 PHA ; Set Data Bank to what is in A $81/EF91 AB PLB $81/EF92 C2 20 REP #$20 ; A = 16-bit $81/EF94 98 TYA A:0099 X:905E Y:000D P:eNvmxdizc $81/EF95 4A LSR A ; Divide value by 8 $81/EF96 4A LSR A $81/EF97 4A LSR A $81/EF98 48 PHA ; Buffer it on stack $81/EF99 8A TXA A:0001 X:905E Y:000D P:envmxdizC $81/EF9A 18 CLC A:905E X:905E Y:000D P:eNvmxdizC $81/EF9B 63 01 ADC $01,s ; Add div-by-8-value $81/EF9D 83 01 STA $01,s ; Store result on Stack $81/EF9F E2 20 SEP #$20 ; A = 8-bit $81/EFA1 7B TDC ; Clear 16-bit A $81/EFA2 98 TYA A:0000 X:905E Y:000D P:envMxdiZc $81/EFA3 29 07 AND #$07 A:000D X:905E Y:000D P:envMxdizc $81/EFA5 AA TAX A:0005 X:905E Y:000D P:envMxdizc $81/EFA6 BF B6 EF 81 LDA $81EFB6,x[$81:EFBB] A:0005 X:0005 Y:000D P:envMxdizc $81/EFAA FA PLX A:0020 X:0005 Y:000D P:envMxdizc $81/EFAB 48 PHA A:0020 X:905F Y:000D P:eNvMxdizc $81/EFAC BD 00 00 LDA $0000,x[$99:905F] A:0020 X:905F Y:000D P:eNvMxdizc $81/EFAF 23 01 AND $01,s [$00:1FE8] A:0000 X:905F Y:000D P:envMxdiZc $81/EFB1 C9 01 CMP #$01 A:0000 X:905F Y:000D P:envMxdiZc $81/EFB3 68 PLA ; (Restore A from Stack) $81/EFB4 AB PLB ; Restore Data Bank from Stack $81/EFB5 6B RTL $81/EFB6 01 $81/EFB7 02 $81/EFB8 04 $81/EFB9 08 $81/EFBA 10 $81/EFBB 20 $81/EFBC 40 $81/EFBD 80
$81/F3C4 Fade Screen Out
$81/F3C4 A9 02 LDA #$02 ; Set Screen Fade Out flag $81/F3C6 8D C2 05 STA $05C2 $81/F3C9 22 6A 8D 80 JSL $808D6A ; Do the Fade Out $81/F3CD 22 8A A1 80 JSL $80A18A ; Change Bank, wait for NMI and execute code built in WRAM $81/F3D1 AD 87 05 LDA $0587 ; Check if Screen has faded out and FBLANK is active $81/F3D4 10 F3 BPL $F3 ; [$F3C9] Loop if not $81/F3D6 6B RTL
$81/F57B ?
$81/F57B 8B PHB ; Buffer Data Bank on Stack $81/F57C D4 00 PEI ($00) ; Buffer $00-$03 on Stack $81/F57E D4 02 PEI ($02) $81/F580 D4 20 PEI ($20) ; Buffer $20-$25 on Stack $81/F582 D4 22 PEI ($22) $81/F584 D4 24 PEI ($24) $81/F586 D4 5C PEI ($5C) ; Buffer $5C-$5D on Stack $81/F588 A9 7E LDA #$7E ; Set Data Bank to $7E $81/F58A 48 PHA $81/F58B AB PLB $81/F58C C2 21 REP #$21 ; A = 16-bit, Clear Carry $81/F58E 98 TYA A:007E X:3300 Y:0879 P:envmxdizc $81/F58F 85 00 STA $00 [$00:0000] A:0879 X:3300 Y:0879 P:envmxdizc $81/F591 0A ASL A A:0879 X:3300 Y:0879 P:envmxdizc $81/F592 65 00 ADC $00 [$00:0000] A:10F2 X:3300 Y:0879 P:envmxdizc $81/F594 AA TAX A:196B X:3300 Y:0879 P:envmxdizc $81/F595 BF 00 80 A3 LDA $A38000,x[$A3:996B] A:196B X:196B Y:0879 P:envmxdizc $81/F599 48 PHA A:E083 X:196B Y:0879 P:eNvmxdizc $81/F59A E2 20 SEP #$20 A:E083 X:196B Y:0879 P:eNvmxdizc $81/F59C BF 02 80 A3 LDA $A38002,x[$A3:996D] A:E083 X:196B Y:0879 P:eNvMxdizc $81/F5A0 48 PHA A:E0AA X:196B Y:0879 P:eNvMxdizc $81/F5A1 A2 00 D4 LDX #$D400 A:E0AA X:196B Y:0879 P:eNvMxdizc $81/F5A4 86 23 STX $23 [$00:0023] A:E0AA X:D400 Y:0879 P:eNvMxdizc $81/F5A6 A9 A1 LDA #$A1 A:E0AA X:D400 Y:0879 P:eNvMxdizc $81/F5A8 85 25 STA $25 [$00:0025] A:E0A1 X:D400 Y:0879 P:eNvMxdizc $81/F5AA A6 5C LDX $5C [$00:005C] A:E0A1 X:D400 Y:0879 P:eNvMxdizc $81/F5AC 86 20 STX $20 [$00:0020] A:E0A1 X:45D9 Y:0879 P:envMxdizc $81/F5AE A9 7E LDA #$7E A:E0A1 X:45D9 Y:0879 P:envMxdizc $81/F5B0 85 22 STA $22 [$00:0022] A:E07E X:45D9 Y:0879 P:envMxdizc $81/F5B2 68 PLA A:E07E X:45D9 Y:0879 P:envMxdizc $81/F5B3 FA PLX A:E0AA X:45D9 Y:0879 P:eNvMxdizc $81/F5B4 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:E0AA X:E083 Y:0879 P:eNvMxdizc $81/F5B8 C2 21 REP #$21 A:00C3 X:E0E6 Y:0092 P:envMxdizC $81/F5BA A5 20 LDA $20 [$00:0020] A:00C3 X:E0E6 Y:0092 P:envmxdizc $81/F5BC 65 0E ADC $0E [$00:000E] A:45D9 X:E0E6 Y:0092 P:envmxdizc $81/F5BE 85 23 STA $23 [$00:0023] A:466B X:E0E6 Y:0092 P:envmxdizc $81/F5C0 85 5C STA $5C [$00:005C] A:466B X:E0E6 Y:0092 P:envmxdizc $81/F5C2 E2 20 SEP #$20 A:466B X:E0E6 Y:0092 P:envmxdizc $81/F5C4 A5 22 LDA $22 [$00:0022] A:466B X:E0E6 Y:0092 P:envMxdizc $81/F5C6 85 25 STA $25 [$00:0025] A:467E X:E0E6 Y:0092 P:envMxdizc $81/F5C8 64 00 STZ $00 [$00:0000] A:467E X:E0E6 Y:0092 P:envMxdizc $81/F5CA 64 01 STZ $01 [$00:0001] A:467E X:E0E6 Y:0092 P:envMxdizc $81/F5CC 64 02 STZ $02 [$00:0002] A:467E X:E0E6 Y:0092 P:envMxdizc $81/F5CE 64 03 STZ $03 [$00:0003] A:467E X:E0E6 Y:0092 P:envMxdizc $81/F5D0 20 3A F6 JSR $F63A [$81:F63A] A:467E X:E0E6 Y:0092 P:envMxdizc $81/F5D3 A5 00 LDA $00 [$00:0000] A:007E X:0002 Y:466B P:envMxdiZc $81/F5D5 C5 02 CMP $02 [$00:0002] A:000C X:0002 Y:466B P:envMxdizc $81/F5D7 90 02 BCC $02 [$F5DB] A:000C X:0002 Y:466B P:eNvMxdizc
- code is missing here
$81/F5DB 7B TDC A:000C X:0002 Y:466B P:eNvMxdizc $81/F5DC A5 02 LDA $02 [$00:0002] A:0000 X:0002 Y:466B P:envMxdiZc $81/F5DE AA TAX A:0013 X:0002 Y:466B P:envMxdizc $81/F5DF A5 01 LDA $01 [$00:0001] A:0013 X:0013 Y:466B P:envMxdizc $81/F5E1 1A INC A A:0008 X:0013 Y:466B P:envMxdizc $81/F5E2 A8 TAY A:0009 X:0013 Y:466B P:envMxdizc $81/F5E3 C2 20 REP #$20 ; A = 16 bit $81/F5E5 68 PLA ; Restore $5C/$5D from Stack $81/F5E6 85 5C STA $5C $81/F5E8 68 PLA ; Restore $20-$25 from Stack $81/F5E9 85 24 STA $24 $81/F5EB 68 PLA $81/F5EC 85 22 STA $22 $81/F5EE 68 PLA $81/F5EF 85 20 STA $20 $81/F5F1 68 PLA ; Restore $00-$03 from Stack $81/F5F2 85 02 STA $02 $81/F5F4 68 PLA $81/F5F5 85 00 STA $00 $81/F5F7 E2 20 SEP #$20 ; A = 8-bit $81/F5F9 AB PLB ; Restore Data Bank from Stack $81/F5FA 6B RTL
$81/F63A ?
$81/F63A A4 20 LDY $20 [$00:0020] A:467E X:E0E6 Y:0092 P:envMxdizc $81/F63C C4 23 CPY $23 [$00:0023] A:467E X:E0E6 Y:45D9 P:envMxdizc $81/F63E D0 09 BNE $09 [$F649] A:467E X:E0E6 Y:45D9 P:eNvMxdizc $81/F640 A5 22 LDA $22 [$00:0022] A:00C3 X:0002 Y:466B P:envMxdiZC $81/F642 C5 25 CMP $25 [$00:0025] A:007E X:0002 Y:466B P:envMxdizC $81/F644 D0 03 BNE $03 [$F649] A:007E X:0002 Y:466B P:envMxdiZC $81/F646 4C 97 F7 JMP $F797 [$81:F797] A:007E X:0002 Y:466B P:envMxdiZC $81/F649 7B TDC A:467E X:E0E6 Y:45D9 P:eNvMxdizc $81/F64A A7 20 LDA [$20] [$7E:45D9] A:0000 X:E0E6 Y:45D9 P:envMxdiZc $81/F64C C9 20 CMP #$20 A:00F3 X:E0E6 Y:45D9 P:eNvMxdizc $81/F64E 90 0B BCC $0B [$F65B] A:00F3 X:E0E6 Y:45D9 P:eNvMxdizC $81/F650 C9 F0 CMP #$F0 A:00F3 X:E0E6 Y:45D9 P:eNvMxdizC $81/F652 C2 20 REP #$20 A:00F3 X:E0E6 Y:45D9 P:envMxdizC $81/F654 90 03 BCC $03 [$F659] A:00F3 X:E0E6 Y:45D9 P:envmxdizC $81/F656 4C BC F6 JMP $F6BC [$81:F6BC] A:00F3 X:E0E6 Y:45D9 P:envmxdizC $81/F659 80 4F BRA $4F [$F6AA] A:00C1 X:07C0 Y:9717 P:eNvmxdizc $81/F65B C2 20 REP #$20 A:0000 X:07C0 Y:971B P:eNvMxdizc $81/F65D 0A ASL A A:0000 X:07C0 Y:971B P:eNvmxdizc $81/F65E AA TAX A:0000 X:07C0 Y:971B P:envmxdiZc $81/F65F 7C 62 F6 JMP ($F662,x)[$81:F797] A:0000 X:0000 Y:971B P:envmxdiZc
$81/F662 97 F7 --- Entry #$00 - $F797 $81/F664 B2 F6 --- Entry #$01 - $F6B2 $81/F666 B2 F6 --- Entry #$02 - $F6B2 $81/F668 B2 F6 --- Entry #$03 - $F6B2 $81/F66A B2 F6 --- Entry #$04 - $F6B2 $81/F66C B2 F6 --- Entry #$05 - $F6B2 $81/F66E B2 F6 --- Entry #$06 - $F6B2 $81/F670 B2 F6 --- Entry #$07 - $F6B2 $81/F672 B2 F6 --- Entry #$08 - $F6B2 $81/F674 B2 F6 --- Entry #$09 - $F6B2 $81/F676 B2 F6 --- Entry #$0A - $F6B2 $81/F678 B2 F6 --- Entry #$0B - $F6B2 $81/F67A B2 F6 --- Entry #$0C - $F6B2 $81/F67C B2 F6 --- Entry #$0D - $F6B2 $81/F67E B2 F6 --- Entry #$0E - $F6B2 $81/F680 B2 F6 --- Entry #$0F - $F6B2 $81/F682 AA F6 --- Entry #$10 - $F6AA $81/F684 AA F6 --- Entry #$11 - $F6AA $81/F686 29 F7 --- Entry #$12 - $F729 $81/F688 30 F7 --- Entry #$13 - $F730 $81/F68A 0F F7 --- Entry #$14 - $F70F $81/F68C 35 F7 --- Entry #$15 - $F735 $81/F68E 16 F7 --- Entry #$16 - $F716 $81/F690 A2 F6 --- Entry #$17 - $F6A2 $81/F692 E8 F6 --- Entry #$18 - $F6E8 $81/F694 38 F7 --- Entry #$19 - $F738 $81/F696 5F F7 --- Entry #$1A - $F75F $81/F698 90 F7 --- Entry #$1B - $F790 $81/F69A 79 F7 --- Entry #$1C - $F779 $81/F69C 5F F7 --- Entry #$1D - $F75F $81/F69E 3D F7 --- Entry #$1E - $F73D $81/F6A0 2E F7 --- Entry #$1F - $F72E
- code is missing here
$81/F6A6 E2 21 SEP #$21 A:00C1 X:07C0 Y:9717 P:envMxdizc $81/F6A8 80 90 BRA $90 [$F63A] A:00C1 X:07C0 Y:9717 P:envMxdizC $81/F6AA E6 20 INC $20 [$00:0020] A:00C1 X:07C0 Y:9717 P:eNvmxdizc $81/F6AC E2 20 SEP #$20 A:00C1 X:07C0 Y:9717 P:eNvmxdizc $81/F6AE E6 00 INC $00 [$00:0000] A:00C1 X:07C0 Y:9717 P:eNvMxdizc $81/F6B0 80 F4 BRA $F4 [$F6A6] A:00C1 X:07C0 Y:9717 P:envMxdizc $81/F6B2 E6 20 INC $20 [$00:0020] A:0008 X:0008 Y:45E0 P:envmxdizc $81/F6B4 E6 20 INC $20 [$00:0020] A:0008 X:0008 Y:45E0 P:envmxdizc $81/F6B6 E2 20 SEP #$20 A:0008 X:0008 Y:45E0 P:envmxdizc $81/F6B8 E6 00 INC $00 [$00:0000] A:0008 X:0008 Y:45E0 P:envMxdizc $81/F6BA 80 EA BRA $EA [$F6A6] A:0008 X:0008 Y:45E0 P:envMxdizc $81/F6BC A5 20 LDA $20 [$00:0020] A:00F3 X:E0E6 Y:45D9 P:envmxdizC $81/F6BE 1A INC A A:45D9 X:E0E6 Y:45D9 P:envmxdizC $81/F6BF 1A INC A A:45DA X:E0E6 Y:45D9 P:envmxdizC $81/F6C0 48 PHA A:45DB X:E0E6 Y:45D9 P:envmxdizC $81/F6C1 E2 20 SEP #$20 A:45DB X:E0E6 Y:45D9 P:envmxdizC $81/F6C3 A5 22 LDA $22 [$00:0022] A:45DB X:E0E6 Y:45D9 P:envMxdizC $81/F6C5 48 PHA A:457E X:E0E6 Y:45D9 P:envMxdizC $81/F6C6 C2 20 REP #$20 A:457E X:E0E6 Y:45D9 P:envMxdizC $81/F6C8 A7 20 LDA [$20] [$7E:45D9] A:457E X:E0E6 Y:45D9 P:envmxdizC $81/F6CA EB XBA A:E0F3 X:E0E6 Y:45D9 P:eNvmxdizC $81/F6CB 38 SEC A:F3E0 X:E0E6 Y:45D9 P:eNvmxdizC $81/F6CC E9 00 F0 SBC #$F000 A:F3E0 X:E0E6 Y:45D9 P:eNvmxdizC $81/F6CF 0A ASL A A:03E0 X:E0E6 Y:45D9 P:envmxdizC $81/F6D0 AA TAX A:07C0 X:E0E6 Y:45D9 P:envmxdizc $81/F6D1 BF 96 C0 8C LDA $8CC096,x[$8C:C856] A:07C0 X:07C0 Y:45D9 P:envmxdizc $81/F6D5 85 20 STA $20 [$00:0020] A:9717 X:07C0 Y:45D9 P:eNvmxdizc $81/F6D7 E2 20 SEP #$20 A:9717 X:07C0 Y:45D9 P:eNvmxdizc $81/F6D9 A9 8C LDA #$8C A:9717 X:07C0 Y:45D9 P:eNvMxdizc $81/F6DB 85 22 STA $22 [$00:0022] A:978C X:07C0 Y:45D9 P:eNvMxdizc $81/F6DD 20 3A F6 JSR $F63A [$81:F63A] A:978C X:07C0 Y:45D9 P:eNvMxdizc $81/F6E0 68 PLA A:0000 X:0000 Y:971B P:envMxdiZc $81/F6E1 85 22 STA $22 [$00:0022] A:007E X:0000 Y:971B P:envMxdizc $81/F6E3 FA PLX A:007E X:0000 Y:971B P:envMxdizc $81/F6E4 86 20 STX $20 [$00:0020] A:007E X:45DB Y:971B P:envMxdizc $81/F6E6 80 BE BRA $BE [$F6A6] A:007E X:45DB Y:971B P:envMxdizc
- code is missing here
$81/F716 E6 20 INC $20 [$00:0020] A:002C X:002C Y:45DB P:envmxdizc $81/F718 E2 20 SEP #$20 A:002C X:002C Y:45DB P:envmxdizc $81/F71A A5 00 LDA $00 [$00:0000] A:002C X:002C Y:45DB P:envMxdizc $81/F71C C5 02 CMP $02 [$00:0002] A:0004 X:002C Y:45DB P:envMxdizc $81/F71E 90 02 BCC $02 [$F722] A:0004 X:002C Y:45DB P:envMxdizC $81/F720 85 02 STA $02 [$00:0002] A:0004 X:002C Y:45DB P:envMxdizC $81/F722 64 00 STZ $00 [$00:0000] A:0004 X:002C Y:45DB P:envMxdizC $81/F724 E6 01 INC $01 [$00:0001] A:0004 X:002C Y:45DB P:envMxdizC $81/F726 4C A6 F6 JMP $F6A6 [$81:F6A6] A:0004 X:002C Y:45DB P:envMxdizC
$81/F797 ?
$81/F797 E2 20 SEP #$20 A:0000 X:0000 Y:971B P:envmxdiZc $81/F799 18 CLC A:0000 X:0000 Y:971B P:envMxdiZc $81/F79A 60 RTS A:0000 X:0000 Y:971B P:envMxdiZc
$81/F7CC ? Some Decompression
This subroutine is for decompression. It works with not less than three 24-bit-addresses: The Address of the Decompression Commands ([$23], i. e. $23-$25), the address of the Compressed Data (in X and A when this subroutine is entered) and the Store Address ([$20], i. e. $20-$22). After some setup (the MVN command in $AC, for instance), the subroutine loads a byte from [$23] and depending on its value, it jumps to a different decompression segment.
Please Read the Segment under "Tutorials" about this decompression subroutine.
A - Compressed Data Bank X - Compressed Data Address $06 - Flag Byte for decompression $07 - Bitwise Counter for when to load a new byte into $06 $09 - AND-Mask $0C - Number of Bytes to do for MVN, LOW BYTE $0D - Number of Bytes to do for MVN, HIGH BYTE [$20] - 24-bit Decompression Store Address [$23] - 24-bit Load Address, contains the commands for Decompression $28 - Buffer for the Compressed Data Bank (this subroutine is entered with it in A)
Notes:
At the bottom, this subroutine loads a Data Byte with Flags and stores it in $06. It also sets up a Bitwise Counter in $07 that keeps track when the next Flag Byte has to be loaded. If the bit/flag is set, the next Data Byte gets transfered as it is; if the bit/flag is cleared, a decompression is done.
$81/F7CC 8B PHB ; Buffer Data Bank on Stack $81/F7CD 0B PHD ; Buffer Direct Page on Stack $81/F7CE F4 00 00 PEA $0000 ; Set Direct Page to #$0000 $81/F7D1 2B PLD $81/F7D2 48 PHA ; Set Data Bank to A $81/F7D3 85 28 STA $28 ; Buffer Data Bank in $28, too $81/F7D5 AB PLB $81/F7D6 A5 22 LDA $22 ; Setup Code in $AC --- MVN-Command, Destination Bank is the same as [$20] $81/F7D8 85 AD STA $AD $81/F7DA A9 54 LDA #$54 ; #$54 = MVN $81/F7DC 85 AC STA $AC $81/F7DE A9 60 LDA #$60 ; #$60 = RTS $81/F7E0 85 AF STA $AF $81/F7E2 A7 23 LDA [$23] ; Load Decompression Command Data Byte $81/F7E4 F0 36 BEQ $36 ; [$F81C] Branch if Data Byte = #$00 $81/F7E6 3A DEC A $81/F7E7 D0 03 BNE $03 ; [$F7EC] Branch if Data Byte was > #$01 $81/F7E9 4C AA F8 JMP $F8AA ; Jump if Data Byte was = #$01 $81/F7EC 3A DEC A $81/F7ED D0 03 BNE $03 ; [$F7F2] Branch if Data Byte was > #$02
- code is missing here
$81/F7F2 3A DEC A $81/F7F3 F0 09 BEQ $09 ; [$F7FE] Branch if Data Byte was = #$03 $81/F7F5 3A DEC A $81/F7F6 D0 03 BNE $03 ; [$F7FB] Branch if Data Byte was > #$04 $81/F7F8 4C 8D F8 JMP $F88D ; Jump if Data Byte was = #$04
- code is missing here
$81/F81C A0 01 00 LDY #$0001 ; Load first Argument Byte for Decompression Command $81/F81F B7 23 LDA [$23],y $81/F821 85 0A STA $0A ; Store Argument Byte (Bit length of Number of Bytes to Do) in $0A $81/F823 64 0B STZ $0B ; Clear "High Byte" for 16-bit-Loading $0A $81/F825 A4 0A LDY $0A ; 16-bit-Load $0A into Y $81/F827 C8 INY ; Increment Decomp Command Load Index $81/F828 20 D0 F9 JSR $F9D0 ; Create AND-Mask and Jump Command for Calc of Number of Bytes to Do $81/F82B C2 21 REP #$21 ; A = 16-bit, Clear Carry $81/F82D E6 23 INC $23 ; Increment Decomp Command Load Address twice $81/F82F E6 23 INC $23 $81/F831 A7 23 LDA [$23] ; Load next Decomp Command Double-Byte $81/F833 85 0E STA $0E ; Set as Loop Counter Limit $81/F835 E6 23 INC $23 ; Increment Decomp Command Load Address twice $81/F837 E6 23 INC $23 $81/F839 A4 20 LDY $20 ; Load the Store Address into Y for MVN $81/F83B 65 20 ADC $20 ; A = Loop Counter Limit + Store Position = ... $81/F83D 85 26 STA $26 ; ... = $26 = End Position of this Decompression $81/F83F E2 20 SEP #$20 ; A = 8-bit $81/F841 64 0D STZ $0D ; Clear High Byte of MVN Number of Bytes to Do $81/F843 C4 26 CPY $26 ; Was the End Position of this Decompression reached? $81/F845 F0 43 BEQ $43 ; [$F88A] Exit if equal $81/F847 BD 00 00 LDA $0000,x ; Load Next Compressed Data Byte $81/F84A 30 28 BMI $28 ; [$F874] Branch if MSB (a flag) is set $81/F84C 0A ASL A ; Push (clear) flag bit out of Data Byte $81/F84D 20 C3 F9 JSR $F9C3 ; Crop Number of Bytes to Do from Loaded Data Byte $81/F850 3A DEC A ; Decrement MVN Number of Bytes to Do (because MVN always does one more) $81/F851 85 0C STA $0C ; Buffer Number of Bytes to do (for MVN) in $0C $81/F853 A5 25 LDA $25 ; Set the Bank of [$23] as Source Bank for MVN $81/F855 85 AE STA $AE $81/F857 BD 00 00 LDA $0000,x ; Load Compressed Data Double Byte (Source Address Offset) and... $81/F85A 25 09 AND $09 ; ... remove Number of Bytes to Do from Double Byte $81/F85C EB XBA $81/F85D BD 01 00 LDA $0001,x $81/F860 E8 INX ; Increment Data Load Index twice $81/F861 E8 INX $81/F862 C2 21 REP #$21 ; A = 16-bit, Clear Carry $81/F864 65 23 ADC $23 ; Add Data Load Address to Offset for MVN Source Address $81/F866 DA PHX ; Buffer Load Index on Stack $81/F867 AA TAX ; Replace X with A for MVN (Source Address) $81/F868 A5 0C LDA $0C ; Load Number of Bytes to do for MVN $81/F86A 8B PHB ; Buffer Data Bank on Stack $81/F86B 20 AC 00 JSR $00AC ; MVN $81/F86E AB PLB ; Restore Data Bank from Stack $81/F86F FA PLX ; Restore Load Index from Stack $81/F870 E2 20 SEP #$20 ; A = 8-bit $81/F872 80 CF BRA $CF ; [$F843] Loop $81/F874 E8 INX ; Increment Compressed Data Load Index $81/F875 29 7F AND #$7F ; Remove Flag Bit $81/F877 85 0C STA $0C ; Buffer Number of Bytes to Do in $0C $81/F879 A5 28 LDA $28 ; Set Bank of Compressed Data as Source Bank for MVN $81/F87B 85 AE STA $AE $81/F87D C2 20 REP #$20 ; A = 16-bit $81/F87F A5 0C LDA $0C ; Load Number of Bytes to Do in A for MVN $81/F881 8B PHB ; Buffer Data Bank on Stack $81/F882 20 AC 00 JSR $00AC ; MVN $81/F885 AB PLB ; Restore Data Bank from Stack $81/F886 E2 20 SEP #$20 ; A = 8-bit $81/F888 80 B9 BRA $B9 ; [$F843] Loop $81/F88A 2B PLD ; Restore Direct Page from Stack $81/F88B AB PLB ; Restore Data Bank from Stack $81/F88C 6B RTL $81/F88D A0 01 00 LDY #$0001 ; Load first Argument Byte for Decompression Command $81/F890 B7 23 LDA [$23],y $81/F892 85 0A STA $0A ; Store Argument Byte (Bit length of Number of Bytes to Do) in $0A $81/F894 64 0B STZ $0B ; Clear "High Byte" for 16-bit-Loading $0A $81/F896 A4 0A LDY $0A ; 16-bit-Load $0A into Y $81/F898 20 D0 F9 JSR $F9D0 ; Create AND-Mask and Jump Command for Calc of Number of Bytes to Do $81/F89B C2 20 REP #$20 ; A = 16-bit $81/F89D E6 23 INC $23 ; Increment Decomp Command Load Address twice $81/F89F E6 23 INC $23 $81/F8A1 BD 00 00 LDA $0000,x ; Load Data Double-Byte $81/F8A4 85 0E STA $0E ; Set as Loop Counter Limit $81/F8A6 E8 INX ; Increment Compressed Data Load Index twice $81/F8A7 E8 INX $81/F8A8 80 1E BRA $1E ; [$F8C8] $81/F8AA A0 01 00 LDY #$0001 ; Load first Argument Byte for Decompression Command $81/F8AD B7 23 LDA [$23],y $81/F8AF 85 0A STA $0A ; Store Argument Byte (Bit length of Number of Bytes to Do) in $0A $81/F8B1 64 0B STZ $0B ; Clear "High Byte" for 16-bit-Loading $0A $81/F8B3 A4 0A LDY $0A ; 16-bit-Load $0A into Y $81/F8B5 20 D0 F9 JSR $F9D0 ; Create AND-Mask and Jump Command for Calc of Number of Bytes to Do $81/F8B8 C2 21 REP #$21 ; A = 16-bit, Clear Carry $81/F8BA A0 02 00 LDY #$0002 ; Load second and third Argument Bytes for Decompression Command $81/F8BD B7 23 LDA [$23],y $81/F8BF 85 0E STA $0E ; Set as Loop Counter Limit $81/F8C1 A9 04 00 LDA #$0004 ; Increment Address in [$23] four times $81/F8C4 65 23 ADC $23 $81/F8C6 85 23 STA $23 $81/F8C8 E2 20 SEP #$20 ; A = 8-bit $81/F8CA 64 0D STZ $0D ; Clear High Byte of MVN Number of Bytes to Do $81/F8CC A5 25 LDA $25 ; MVN Source Bank = Bank of [$23] $81/F8CE 85 AE STA $AE $81/F8D0 A0 00 00 LDY #$0000 ; Setup Store Index $81/F8D3 A9 FF LDA #$FF ; Setup Bitwise Counter in $07 $81/F8D5 85 07 STA $07 $81/F8D7 BD 00 00 LDA $0000,x ; Load Command Flag Byte and store it in $06 $81/F8DA 85 06 STA $06 $81/F8DC E8 INX ; Increment Data Load Index $81/F8DD 06 06 ASL $06 ; Shift next Flag out of $06 and branch accordingly $81/F8DF 90 11 BCC $11 ; [$F8F2] Branch if Flag not set $81/F8E1 BD 00 00 LDA $0000,x ; Else, transfer the Data Byte as it is $81/F8E4 97 20 STA [$20],y $81/F8E6 E8 INX ; Increment Load Index $81/F8E7 C8 INY ; Increment Store Index $81/F8E8 C4 0E CPY $0E ; Compare Y with Loop Counter Limit $81/F8EA F0 35 BEQ $35 ; [$F921] Exit if Limit is reached $81/F8EC 06 07 ASL $07 ; Shift a Bit out of the Bitwise Counter $81/F8EE D0 ED BNE $ED ; [$F8DD] Normal small loop if $07 isn't empty jet $81/F8F0 80 E1 BRA $E1 ; [$F8D3] Loop, reset Bitwise Counter and load new Flag Byte $81/F8F2 BD 00 00 LDA $0000,x ; Load Compressed Data Byte $81/F8F5 20 C3 F9 JSR $F9C3 ; Crop Number of Bytes to Do from Loaded Data Byte $81/F8F8 3A DEC A ; Decrement MVN Number of Bytes to Do (because MVN always does one more) $81/F8F9 85 0C STA $0C ; Buffer MVN Number of Bytes to Do in $0C $81/F8FB BD 00 00 LDA $0000,x ; Load Compressed Data Double Byte (Source Address Offset) and... $81/F8FE 25 09 AND $09 ; ... remove Number of Bytes to Do from Double Byte $81/F900 EB XBA $81/F901 BD 01 00 LDA $0001,x $81/F904 E8 INX ; Increment Compressed Data Load Index twice $81/F905 E8 INX $81/F906 C2 21 REP #$21 ; A = 16-bit, Clear Carry $81/F908 65 23 ADC $23 ; Add Data Load Address to Offset for MVN Source Address $81/F90A DA PHX ; Buffer Comp Data Load Index on Stack $81/F90B AA TAX ; Transfer MVN Source Address in X for Upcoming MVN $81/F90C 98 TYA ; Add Data Store Address to Data Store Index for Upcoming MVN $81/F90D 65 20 ADC $20 $81/F90F A8 TAY $81/F910 A5 0C LDA $0C ; Load Number of Bytes to Do in A for MVN $81/F912 8B PHB ; Buffer Data Bank on Stack $81/F913 20 AC 00 JSR $00AC ; MVN $81/F916 AB PLB ; Restore Data Bank from Stack $81/F917 98 TYA ; Remove Data Store Address from Data Store Index in Y $81/F918 38 SEC $81/F919 E5 20 SBC $20 $81/F91B A8 TAY $81/F91C FA PLX ; Restore Comp Data Load Index from Stack $81/F91D E2 20 SEP #$20 ; A = 8-bit $81/F91F 80 C7 BRA $C7 ; [$F8E8] Do next Data Byte $81/F921 2B PLD ; Restore Direct Page from Stack $81/F922 AB PLB ; Restore Data Bank from Stack $81/F923 6B RTL
$81/F9C3 Jump ($000A)
$81/F9C3 6C 0A 00 JMP ($000A)[$81:F9C7] A:000E X:E086 Y:0000 P:envMxdizc
- code is missing here
$81/F9C7 4A LSR A ; divide by #$20 $81/F9C8 4A LSR A $81/F9C9 4A LSR A $81/F9CA 4A LSR A $81/F9CB 4A LSR A $81/F9CC 18 CLC $81/F9CD 69 03 ADC #$03 ; plus 3 $81/F9CF 60 RTS
$81/F9D0 ? Decompression: Prepare AND-Mask, Prepare MVN Size Calculation
This prepares $0A for the subroutine above ($81/F9C3).
Y contains a number betw. 1 and 8, this subroutine creates AND-Mask where the corresponding number of bits are cleared, beginning with the MSB, and that is stored in $09 (Y = #$03 ==> $09 = #%0001.1111)
The second part changes the Jump Address in $0A according to the value that is stored there. It makes the Subroutine at $81/F9C3 jump over a number of LSR A commands, accordingly.
$81/F9D0 A9 FF LDA #$FF ; #$FF = AND-Mask blanket $81/F9D2 4A LSR A ; Push one bit out of the AND-Mask... $81/F9D3 88 DEY ; ... for every DEY... $81/F9D4 D0 FC BNE $FC ; [$F9D2] ... until Y = #$00 $81/F9D6 85 09 STA $09 ; Then, store the AND-Mask $81/F9D8 7B TDC ; Clear 16-bit A $81/F9D9 A5 0A LDA $0A $81/F9DB C2 21 REP #$21 ; A = 16-bit, Clear Carry $81/F9DD 69 C4 F9 ADC #$F9C4 ; Add Address Offset $81/F9E0 85 0A STA $0A ; Store Jump Address $81/F9E2 E2 20 SEP #$20 ; A = 8-bit $81/F9E4 60 RTS
$81/F9E5 Decompression subroutine
During the new game creation process, this is executed when one of these artworks gets loaded
This subroutine builds an MVN command (which moves normally big chunks of data from one address to WRAM) in WRAM and then jumps to it.
MVN: X is source, Y is destination, C number of bytes minus one (C=#$0005, six bytes will be moved)
The arguments are transfered to it as follows:
$0C contains the number of bytes to transfer minus one (if $0C = #$05, six bytes will be moved)
$0E will contain the size of the decompressed data when this subroutine is left
$20 contains the destination address for the MVN-command
$22 contains the source bank for the MVN-command (and destination bank, in many cases)
X and A contain a 24-bit address; this is an address to the compressed data.
$81/F9E5 8B PHB ; Preserve Data Bank $81/F9E6 85 25 STA $25 ; Store the brought-in bank to the where-to-read address buffer $81/F9E8 A5 22 LDA $22 ; For the MVN-command, load the Destination bank and set it up in WRAM $81/F9EA 85 AD STA $AD $81/F9EC 48 PHA ; Set up the same bank as Program Bank $81/F9ED AB PLB $81/F9EE A9 54 LDA #$54 ; #$54 is "MVN" when interpreted as code $81/F9F0 85 AC STA $AC $81/F9F2 A9 60 LDA #$60 ; #$60 is "RTS" when interpreted as code $81/F9F4 85 AF STA $AF $81/F9F6 A4 20 LDY $20 ; Load the MVN-destination address in Y $81/F9F8 C2 21 REP #$21 ; 16-bit A, Clear Carry $81/F9FA 86 23 STX $23 ; Setup the load address (for the compressed data) $81/F9FC A7 23 LDA [$23] ; Load first two bytes (Size of the decompressed data) $81/F9FE 85 0E STA $0E ; Store the size of the decompressed data in $0E $81/FA00 65 20 ADC $20 ; Calculate the Y value when this data is completely decompressed $81/FA02 85 0A STA $0A ; Store that as comparison value in $0A $81/FA04 E8 INX ; After the first two bytes are read, increment the pointer to the next unread byte $81/FA05 E8 INX $81/FA06 E2 20 SEP #$20 $81/FA08 80 31 BRA $31 ; [$FA3B] Go to the main decompression case handler $81/FA0A E6 25 INC $25 ; Increment Compressed Data Address Bank $81/FA0C A2 00 80 LDX #$8000 ; Set Compressed Data Address Pointer back to $8000 $81/FA0F 80 2A BRA $2A ; [$FA3B] Go on $81/FA11 29 78 AND #$78 ; Remove the MSB from the Data byte $81/FA13 4A LSR A ; A = A/8 + 2 $81/FA14 4A LSR A ; Note that the division by eight removes bits 0 to 2, too $81/FA15 4A LSR A ; (And now, please read the last line's comment out loud) $81/FA16 1A INC A $81/FA17 1A INC A $81/FA18 85 0C STA $0C ; A is the number of bytes to transfer $81/FA1A A5 22 LDA $22 ; In this case, $22 is the second argument for the MVN command, too $81/FA1C 85 AE STA $AE ; So this is always a movement on the same bank $81/FA1E C2 21 REP #$21 ; 16 bit A, Clear Carry $81/FA20 A7 23 LDA [$23] ; Load two bytes from compressed data $81/FA22 EB XBA ; Please note that the already-loaded byte gets loaded again $81/FA23 29 FF 07 AND #$07FF ; but this time, all the bits that were used here before are removed $81/FA26 1A INC A ; What is now in A is the number of bytes to move backwards minus one $81/FA27 85 08 STA $08 ; This decompression function repeats already decompressed lines $81/FA29 98 TYA ; Here, the program takes the current where-to-write pointer... $81/FA2A 38 SEC ; ... and subtracts the loaded number of bytes to form the new read-pointer $81/FA2B E5 08 SBC $08 ; The "INC A" makes the program move one byte more back than in the loaded value $81/FA2D E8 INX ; Increment the Compressed Data Load address $81/FA2E E8 INX $81/FA2F DA PHX ; Push the Compressed Data Load address on stack, ... $81/FA30 AA TAX ; ... because X has to contain the Read-Pointer for the upcoming MVN $81/FA31 A5 0C LDA $0C ; Load number of bytes to transfer $81/FA33 20 AC 00 JSR $00AC ; Jump to the self-written MVN command $81/FA36 FA PLX ; Get the Compressed Data Load Address back from stack $81/FA37 E2 20 SEP #$20 $81/FA39 80 00 BRA $00 ; [$FA3B] Go on with the decompression - this line could be removed $81/FA3B C4 0A CPY $0A ; Is the end point of the decompression reached? (= Is everything decompressed?) $81/FA3D F0 14 BEQ $14 ; [$FA53] Exit if it is $81/FA3F 64 0D STZ $0D ; Clear the upper byte of the bytes-to-transfer buffer register $81/FA41 86 23 STX $23 ; Update the compressed data read-address $81/FA43 A7 23 LDA [$23] ; Load next byte (8 bit A!) $81/FA45 30 CA BMI $CA ; [$FA11] Branch if MSB is set - Repeat already decompressed bytes $81/FA47 F0 C1 BEQ $C1 ; [$FA0A] Branch if byte is empty - Compressed data is on the next bank $81/FA49 89 40 BIT #$40 $81/FA4B D0 20 BNE $20 ; [$FA6D] Branch if Bit 6 is set - Copy directly from compressed data $81/FA4D 89 20 BIT #$20 $81/FA4F D0 04 BNE $04 ; [$FA55] Branch if Bit 5 is set - write empty bytes into decompressed data $81/FA51 80 2B BRA $2B ; [$FA7E] Branch if Bit 5 is clear - Copy decompressed data - long and/or far back $81/FA53 AB PLB ; THE END: Restore Original Program Bank and exit $81/FA54 6B RTL $81/FA55 29 1F AND #$1F ; The lower bits of this byte are the number of bytes to do (minus one) $81/FA57 85 0C STA $0C $81/FA59 E8 INX ; Increment Read Pointer and store it on Stack $81/FA5A DA PHX $81/FA5B 7B TDC ; Clear 16-bit A $81/FA5C 99 00 00 STA $0000,y ; Write an empty byte into the decompressed data $81/FA5F BB TYX ; Set read address to this byte $81/FA60 C8 INY ; Increment write address $81/FA61 A5 22 LDA $22 ; Set the MVN destination bank to the same as the source bank $81/FA63 85 AE STA $AE $81/FA65 A5 0C LDA $0C ; Load number of bytes to transfer $81/FA67 20 AC 00 JSR $00AC ; Jump to the self-written MVN command $81/FA6A FA PLX ; Pull Compressed Data Read Pointer from Stack $81/FA6B 80 CE BRA $CE ; [$FA3B] Go on with the decompression $81/FA6D 29 3F AND #$3F ; The other bits in this command-byte are the number of bytes minus one $81/FA6F 85 0C STA $0C $81/FA71 E8 INX ; Increment read address $81/FA72 A5 25 LDA $25 ; Source Bank is the same as the 24-bit-read address bank (of course) $81/FA74 85 AE STA $AE $81/FA76 7B TDC ; Clear 16-bit A $81/FA77 A5 0C LDA $0C ; Load the number of bytes to do minus one $81/FA79 20 AC 00 JSR $00AC ; Jump to the self-written MVN command $81/FA7C 80 BD BRA $BD ; [$FA3B] Go on with the decompression $81/FA7E 29 0F AND #$0F ; Lower part of the command byte is PART of the number of bytes to transfer $81/FA80 85 0C STA $0C $81/FA82 E8 INX ; Increment Read address $81/FA83 86 23 STX $23 $81/FA85 A7 23 LDA [$23] ; Read next Byte from Compressed Data $81/FA87 29 C0 AND #$C0 ; the two most significant bits are part of the number of bytes to transfer $81/FA89 4A LSR A $81/FA8A 4A LSR A $81/FA8B 05 0C ORA $0C $81/FA8D 18 CLC ; Add three additional bytes to the number of bytes to transfer $81/FA8E 69 03 ADC #$03 $81/FA90 85 0C STA $0C $81/FA92 A5 22 LDA $22 ; Source Bank is the same as Destination address $81/FA94 85 AE STA $AE $81/FA96 C2 21 REP #$21 ; 16 bit A, clear Carry $81/FA98 A7 23 LDA [$23] ; Load next two bytes $81/FA9A EB XBA $81/FA9B 29 FF 3F AND #$3FFF ; This value is the number of bytes to move backwards $81/FA9E 1A INC A ; Move another byte backwards $81/FA9F 85 08 STA $08 ; Temp store $81/FAA1 98 TYA ; Copy the write address $81/FAA2 38 SEC $81/FAA3 E5 08 SBC $08 ; Subtract the number of bytes to go back $81/FAA5 E8 INX ; Increment Compressed Data Read Pointer $81/FAA6 E8 INX $81/FAA7 DA PHX ; Buffer Compressed Data Read Pointer $81/FAA8 AA TAX $81/FAA9 A5 0C LDA $0C ; Load number of bytes to transfer $81/FAAB 20 AC 00 JSR $00AC ; Jump to the self-written MVN command $81/FAAE FA PLX ; Restore Compressed Data Read Pointer $81/FAAF E2 20 SEP #$20 $81/FAB1 80 88 BRA $88 ; [$FA3B] Go on with the decompression
$81/FCA2 ?
$81/FCA2 5A PHY A:0135 X:0002 Y:4440 P:envMxdizC $81/FCA3 D4 5C PEI ($5C) [$45D9] A:0135 X:0002 Y:4440 P:envMxdizC $81/FCA5 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $81/FCA9 B0 29 BCS $29 [$FCD4] A:0035 X:0002 Y:4440 P:envMxdizc $81/FCAB A9 80 LDA #$80 A:0035 X:0002 Y:4440 P:envMxdizc $81/FCAD 85 0E STA $0E [$00:000E] A:0080 X:0002 Y:4440 P:eNvMxdizc $81/FCAF A2 80 00 LDX #$0080 A:0080 X:0002 Y:4440 P:eNvMxdizc $81/FCB2 86 0C STX $0C [$00:000C] A:0080 X:0080 Y:4440 P:envMxdizc $81/FCB4 A6 5C LDX $5C [$00:005C] A:0080 X:0080 Y:4440 P:envMxdizc $81/FCB6 A9 7E LDA #$7E A:0080 X:45D9 Y:4440 P:envMxdizc $81/FCB8 22 24 9F 80 JSL $809F24[$80:9F24] A:007E X:45D9 Y:4440 P:envMxdizc $81/FCBC C2 21 REP #$21 A:4580 X:0000 Y:4440 P:envMxdizc $81/FCBE A3 03 LDA $03,s [$00:1FD1] A:4580 X:0000 Y:4440 P:envmxdizc $81/FCC0 69 00 01 ADC #$0100 A:4440 X:0000 Y:4440 P:envmxdizc $81/FCC3 A8 TAY A:4540 X:0000 Y:4440 P:envmxdizc $81/FCC4 A3 01 LDA $01,s [$00:1FCF] A:4540 X:0000 Y:4540 P:envmxdizc $81/FCC6 69 80 00 ADC #$0080 A:45D9 X:0000 Y:4540 P:envmxdizc $81/FCC9 AA TAX A:4659 X:0000 Y:4540 P:envmxdizc $81/FCCA E2 20 SEP #$20 A:4659 X:4659 Y:4540 P:envmxdizc $81/FCCC A9 7E LDA #$7E A:4659 X:4659 Y:4540 P:envMxdizc $81/FCCE 22 24 9F 80 JSL $809F24[$80:9F24] A:467E X:4659 Y:4540 P:envMxdizc $81/FCD2 80 27 BRA $27 [$FCFB] A:4680 X:0002 Y:4540 P:envMxdizc
- code is missing here
$81/FCFB 7A PLY A:4680 X:0002 Y:4540 P:envMxdizc $81/FCFC 7A PLY A:4680 X:0002 Y:45D9 P:envMxdizc $81/FCFD 6B RTL A:4680 X:0002 Y:4440 P:envMxdizc
Bank $82
$82/89B0 Clear Map that shows which Figure Stands where
The Map at $7F/DC00 is structured as the others at the upper end of Bank $7F (the whole NE-SW-/NW-SE-Axis stuff); this maps shows where each figure stands. Either the entry for corresponding rhomb on this map contains a figure's number (#$00, #$02... #$24 or #$26), or #$FF to mark that there is no figure on that rhomb.
This subroutine creates a new, clear map of this kind - it sets every entry on this Map/Table to #$FF.
$82/89B0 8B PHB ; Buffer Data Bank on Stack $82/89B1 A9 7F LDA #$7F ; Set Data Bank to $7F $82/89B3 48 PHA $82/89B4 AB PLB $82/89B5 C2 20 REP #$20 $82/89B7 A9 FF FF LDA #$FFFF ; Clear Value $82/89BA A2 00 04 LDX #$0400 ; Number of bytes to do $82/89BD A0 00 DC LDY #$DC00 ; Start Address $(7F)/DC00 $82/89C0 22 C8 9D 80 JSL $809DC8 ; Long Jump to Write Empty Tilemap in WRAM $82/89C4 E2 20 SEP #$20 $82/89C6 AB PLB ; Restore Data Bank $82/89C7 6B RTL
$82/89DD ? Clear every even byte from $7E/BE4E to $7E/BE74
$82/89C8 8B PHB ; Buffer Data Bank on Stack $82/89C9 A9 7E LDA #$7E ; Set Data Bank to $7F $82/89CB 48 PHA $82/89CC AB PLB $82/89CD C2 20 REP #$20 $82/89CF A2 26 00 LDX #$0026 ; Set up Counter for the Clear Loop $82/89D2 9E 4E BE STZ $BE4E,x ; Clear Value $82/89D5 CA DEX ; Decrement Store Index twice $82/89D6 CA DEX $82/89D7 10 F9 BPL $F9 ; [$89D2] $82/89D9 E2 20 SEP #$20 $82/89DB AB PLB ; Restore Data Bank $82/89DC 6B RTL
$82/8A3C ?
X contains the Number of the Figure whose possible movement is about to be calculated.
$82/8A3C 5A PHY ; Push Y on Stack $82/8A3D 9B TXY ; Transfer Figure Number in Y $82/8A3E 7B TDC ; Clear 16-bit A $82/8A3F B9 D7 1C LDA $1CD7,y ; Load Position from where the possible Movement is calculated - NE-SW-Axis $82/8A42 C2 20 REP #$20 ; 16-bit A $82/8A44 EB XBA ; Multiply NE-SW-Axis-Value by #$20 $82/8A45 4A LSR A $82/8A46 4A LSR A $82/8A47 4A LSR A $82/8A48 E2 20 SEP #$20 ; 8-bit A $82/8A4A 19 D6 1C ORA $1CD6,y ; Add Position from where the possible Movement is calculated - NW-SE-Axis $82/8A4D AA TAX ; Transfer Result in X as Load/Store-Index $82/8A4E 98 TYA ; Transfer Figure Number in A $82/8A4F DF 00 DC 7F CMP $7FDC00,x ; Is this Figure actually standing on this Rhomb? $82/8A53 F0 24 BEQ $24 ; [$8A79] Branch if it does
- Code is missing here
$82/8A79 DA PHX ; Buffer Map Index on Stack $82/8A7A A2 00 00 LDX #$0000 A:0108 X:0104 Y:0008 P:envMxdiZC $82/8A7D BF 00 F8 7F LDA $7FF800,x[$7F:F800] A:0108 X:0000 Y:0008 P:envMxdiZC $82/8A81 30 21 BMI $21 [$8AA4] A:01FF X:0000 Y:0008 P:eNvMxdizC
- Code is missing here
$82/8AA4 E8 INX ; Increment the Load Index thrice (3 bytes per entry) $82/8AA5 E8 INX $82/8AA6 E8 INX $82/8AA7 E0 39 00 CPX #$0039 ; Repeat this until Load Index reached #$39 $82/8AAA 90 D1 BCC $D1 ; [$8A7D] Loop $82/8AAC FA PLX ; Restore Map Index $82/8AAD A9 FF LDA #$FF ; Remove this Figure from the Map which Figure Stands where $82/8AAF 9F 00 DC 7F STA $7FDC00,x $82/8AB3 BB TYX ; Transfer Figure Number back in X $82/8AB4 7A PLY ; Restore Y $82/8AB5 6B RTL
$82/89DD ? Set Every third byte at $7F/F800 to "$FF"
$82/89DD 8B PHB ; Buffer Data Bank on Stack $82/89DE A9 7F LDA #$7F ; Set Data Bank to $7F $82/89E0 48 PHA $82/89E1 AB PLB $82/89E2 A2 00 00 LDX #$0000 ; Setup Counter $82/89E5 A9 FF LDA #$FF ; Setup Store Value $82/89E7 9D 00 F8 STA $F800,x ; Store $82/89EA E8 INX ; Increment Store Index thrice $82/89EB E8 INX $82/89EC E8 INX $82/89ED E0 39 00 CPX #$0039 ; Loop until $7F/F836 was done and $7F/F839 was reached $82/89F0 90 F5 BCC $F5 ; [$89E7] $82/89F2 AB PLB ; Restore Data Bank $82/89F3 6B RTL
$82/89F4 ?
$82/89F4 5A PHY ; Buffer Y on Stack $82/89F5 9B TXY ; Transfer X (number of a figure) to Y $82/89F6 7B TDC ; Clear 16-bit A $82/89F7 B9 D7 1C LDA $1CD7,y ; Load Figure's Position (NE-SW-Axis) $82/89FA C2 20 REP #$20 ; A = 16-bit $82/89FC EB XBA ; Multiply Figure's Position (NE-SW-Axis) by #$20 $82/89FD 4A LSR A $82/89FE 4A LSR A $82/89FF 4A LSR A $82/8A00 E2 20 SEP #$20 ; A = 8-bit $82/8A02 19 D6 1C ORA $1CD6,y ; Add Figure's Position (NW-SE-Axis) $82/8A05 AA TAX ; Transfer to X as a Load Index for maps $82/8A06 BF 00 DC 7F LDA $7FDC00,x ; Check Map which Figure Stands where... $82/8A0A C9 FF CMP #$FF ; ...is this position empty? $82/8A0C F0 26 BEQ $26 ; [$8A34] Branch if it is $82/8A0E A2 00 00 LDX #$0000 A:0100 X:012A Y:0000 P:envMxdizc $82/8A11 BF 00 F8 7F LDA $7FF800,x[$7F:F800] A:0100 X:0000 Y:0000 P:envMxdiZc $82/8A15 30 08 BMI $08 [$8A1F] A:0100 X:0000 Y:0000 P:envMxdiZc $82/8A17 E8 INX A:0100 X:0000 Y:0000 P:envMxdiZc $82/8A18 E8 INX A:0100 X:0001 Y:0000 P:envMxdizc $82/8A19 E8 INX A:0100 X:0002 Y:0000 P:envMxdizc $82/8A1A E0 39 00 CPX #$0039 A:0100 X:0003 Y:0000 P:envMxdizc $82/8A1D 90 F2 BCC $F2 [$8A11] A:0100 X:0003 Y:0000 P:eNvMxdizc $82/8A1F 98 TYA A:0100 X:0039 Y:0000 P:envMxdiZC $82/8A20 9F 00 F8 7F STA $7FF800,x[$7F:F839] A:0100 X:0039 Y:0000 P:envMxdiZC $82/8A24 B9 D6 1C LDA $1CD6,y[$7E:1CD6] A:0100 X:0039 Y:0000 P:envMxdiZC $82/8A27 9F 01 F8 7F STA $7FF801,x[$7F:F83A] A:010A X:0039 Y:0000 P:envMxdizC $82/8A2B B9 D7 1C LDA $1CD7,y[$7E:1CD7] A:010A X:0039 Y:0000 P:envMxdizC $82/8A2E 9F 02 F8 7F STA $7FF802,x[$7F:F83B] A:0109 X:0039 Y:0000 P:envMxdizC $82/8A32 80 05 BRA $05 [$8A39] A:0109 X:0039 Y:0000 P:envMxdizC $82/8A34 98 TYA ; Transfer figure number in A $82/8A35 9F 00 DC 7F STA $7FDC00,x ; Store it in this position on the map $82/8A39 BB TYX ; Transfer figure number back in X $82/8A3A 7A PLY ; Restore Y from Stack $82/8A3B 6B RTL
$82/8A3C ? Check the Map which Figure Stands where
$82/8A3C 5A PHY ; Buffer Y on Stack $82/8A3D 9B TXY ; Transfer X (number of a figure) to Y $82/8A3E 7B TDC ; Clear 16-bit A $82/8A3F B9 D7 1C LDA $1CD7,y ; Load Figure's Position (NE-SW-Axis) $82/8A42 C2 20 REP #$20 ; A = 16-bit $82/8A44 EB XBA ; Multiply Figure's Position (NE-SW-Axis) by #$20 $82/8A45 4A LSR A $82/8A46 4A LSR A $82/8A47 4A LSR A $82/8A48 E2 20 SEP #$20 ; A = 8-bit $82/8A4A 19 D6 1C ORA $1CD6,y ; Add Figure's Position (NW-SE-Axis) $82/8A4D AA TAX ; Transfer to X as a Load Index for maps $82/8A4E 98 TYA ; Transfer Figure Number in A $82/8A4F DF 00 DC 7F CMP $7FDC00,x ; Check Map which Figure Stands where - is it here? $82/8A53 F0 24 BEQ $24 ; [$8A79] branch if it does $82/8A55 DA PHX A:0002 X:0044 Y:0002 P:eNvMxdizc $82/8A56 A2 00 00 LDX #$0000 A:0002 X:0044 Y:0002 P:eNvMxdizc $82/8A59 BF 00 F8 7F LDA $7FF800,x[$7F:F800] A:0002 X:0000 Y:0002 P:envMxdiZc $82/8A5D 30 10 BMI $10 [$8A6F] A:0002 X:0000 Y:0002 P:envMxdizc $82/8A5F 98 TYA A:0002 X:0000 Y:0002 P:envMxdizc $82/8A60 DF 00 F8 7F CMP $7FF800,x[$7F:F800] A:0002 X:0000 Y:0002 P:envMxdizc $82/8A64 D0 09 BNE $09 [$8A6F] A:0002 X:0000 Y:0002 P:envMxdiZC $82/8A66 A9 FF LDA #$FF A:0002 X:0000 Y:0002 P:envMxdiZC $82/8A68 9F 00 F8 7F STA $7FF800,x[$7F:F800] A:00FF X:0000 Y:0002 P:eNvMxdizC $82/8A6C FA PLX A:00FF X:0000 Y:0002 P:eNvMxdizC $82/8A6D 80 44 BRA $44 [$8AB3] A:00FF X:0044 Y:0002 P:envMxdizC $82/8A6F E8 INX A:0004 X:0000 Y:0004 P:envMxdizC $82/8A70 E8 INX A:0004 X:0001 Y:0004 P:envMxdizC $82/8A71 E8 INX A:0004 X:0002 Y:0004 P:envMxdizC $82/8A72 E0 39 00 CPX #$0039 A:0004 X:0003 Y:0004 P:envMxdizC $82/8A75 90 E2 BCC $E2 [$8A59] A:0004 X:0003 Y:0004 P:eNvMxdizc
- code is missing here
$82/8A79 DA PHX ; Buffer Load Index on Stack $82/8A7A A2 00 00 LDX #$0000 ; Reset X as Load Index/Loop Counter $82/8A7D BF 00 F8 7F LDA $7FF800,x[$7F:F800] A:0002 X:0000 Y:0002 P:envMxdiZC $82/8A81 30 21 BMI $21 [$8AA4] A:00FF X:0000 Y:0002 P:eNvMxdizC $82/8A83 BF 01 F8 7F LDA $7FF801,x[$7F:F801] A:0100 X:0000 Y:0000 P:envMxdiZC $82/8A87 D9 D6 1C CMP $1CD6,y[$82:1CD6] A:0100 X:0000 Y:0000 P:envMxdiZC $82/8A8A D0 18 BNE $18 [$8AA4] A:0100 X:0000 Y:0000 P:eNvMxdizc $82/8A8C BF 02 F8 7F LDA $7FF802,x[$7F:F805] A:0003 X:0003 Y:0000 P:envMxdiZC $82/8A90 D9 D7 1C CMP $1CD7,y[$82:1CD7] A:0002 X:0003 Y:0000 P:envMxdizC $82/8A93 D0 0F BNE $0F [$8AA4] A:0002 X:0003 Y:0000 P:eNvMxdizc $82/8A95 BF 00 F8 7F LDA $7FF800,x[$7F:F800] A:0004 X:0000 Y:000A P:envMxdiZC $82/8A99 EB XBA A:000E X:0000 Y:000A P:envMxdizC $82/8A9A A9 FF LDA #$FF A:0E00 X:0000 Y:000A P:envMxdiZC $82/8A9C 9F 00 F8 7F STA $7FF800,x[$7F:F800] A:0EFF X:0000 Y:000A P:eNvMxdizC $82/8AA0 EB XBA A:0EFF X:0000 Y:000A P:eNvMxdizC $82/8AA1 FA PLX A:FF0E X:0000 Y:000A P:envMxdizC $82/8AA2 80 0B BRA $0B [$8AAF] A:FF0E X:0084 Y:000A P:envMxdizC $82/8AA4 E8 INX ; Increment X thrice - Each entry is 3 bytes in size $82/8AA5 E8 INX $82/8AA6 E8 INX $82/8AA7 E0 39 00 CPX #$0039 A:00FF X:0003 Y:0002 P:envMxdizC $82/8AAA 90 D1 BCC $D1 ; [$8A7D] Loop until all entries are done $82/8AAC FA PLX ; Restore first Load Index in X $82/8AAD A9 FF LDA #$FF ; On the Map which Figure Stands where, set... $82/8AAF 9F 00 DC 7F STA $7FDC00,x ; ... this position to #$FF (which means "free"?) $82/8AB3 BB TYX ; Move Character number back in X $82/8AB4 7A PLY ; Restore Original Y $82/8AB5 6B RTL
$82/8AB6 ?
$82/8AB6 8B PHB ; Buffer Data Bank on Stack $82/8AB7 4B PHK ; Set Data Bank to $82 $82/8AB8 AB PLB $82/8AB9 BD D6 1C LDA $1CD6,x[$82:1CD8] A:0007 X:0002 Y:070B P:eNvMxdizc $82/8ABC 48 PHA A:000B X:0002 Y:070B P:envMxdizc $82/8ABD BD D7 1C LDA $1CD7,x[$82:1CD9] A:000B X:0002 Y:070B P:envMxdizc $82/8AC0 48 PHA A:0007 X:0002 Y:070B P:envMxdizc $82/8AC1 A5 00 LDA $00 [$00:0000] A:0007 X:0002 Y:070B P:envMxdizc $82/8AC3 9D D6 1C STA $1CD6,x[$82:1CD8] A:000B X:0002 Y:070B P:envMxdizc $82/8AC6 A5 01 LDA $01 [$00:0001] A:000B X:0002 Y:070B P:envMxdizc $82/8AC8 9D D7 1C STA $1CD7,x[$82:1CD9] A:0007 X:0002 Y:070B P:envMxdizc $82/8ACB 22 3C 8A 82 JSL $828A3C[$82:8A3C] A:0007 X:0002 Y:070B P:envMxdizc $82/8ACF A5 02 LDA $02 [$00:0002] A:00FF X:0002 Y:070B P:envMxdizC $82/8AD1 9D D6 1C STA $1CD6,x[$82:1CD8] A:000B X:0002 Y:070B P:envMxdizC $82/8AD4 A5 03 LDA $03 [$00:0003] A:000B X:0002 Y:070B P:envMxdizC $82/8AD6 9D D7 1C STA $1CD7,x[$82:1CD9] A:0007 X:0002 Y:070B P:envMxdizC $82/8AD9 22 F4 89 82 JSL $8289F4[$82:89F4] A:0007 X:0002 Y:070B P:envMxdizC $82/8ADD 68 PLA A:0002 X:0002 Y:070B P:envMxdizC $82/8ADE 9D D7 1C STA $1CD7,x[$82:1CD9] A:0007 X:0002 Y:070B P:envMxdizC $82/8AE1 68 PLA A:0007 X:0002 Y:070B P:envMxdizC $82/8AE2 9D D6 1C STA $1CD6,x[$82:1CD8] A:000B X:0002 Y:070B P:envMxdizC $82/8AE5 18 CLC A:000B X:0002 Y:070B P:envMxdizC $82/8AE6 AB PLB ; Restore Data Bank from Stack $82/8AE7 6B RTL
$82/98AA Battle Stats Menu - Buffer Character's data
When you open the Stats Menu in Battle (the one in the bottom part of the menu), this subroutine collects all the stats values and puts them in a number of buffer registers.
$82/98AA 8B PHB ; Buffer Data Bank Register on stack $82/98AB 4B PHK $82/98AC AB PLB $82/98AD A6 39 LDX $39 ; Character number as Index $82/98AF BD AE 17 LDA $17AE,x ; Character graphic $82/98B2 8D 9F 1E STA $1E9F $82/98B5 BD AF 17 LDA $17AF,x ; Character Class $82/98B8 8D 66 1E STA $1E66 $82/98BB BD D7 17 LDA $17D7,x ; Character Element $82/98BE 8D 67 1E STA $1E67 $82/98C1 BD FE 17 LDA $17FE,x ; Level $82/98C4 8D 68 1E STA $1E68 $82/98C7 BD FF 17 LDA $17FF,x ; Exp $82/98CA 8D 69 1E STA $1E69 $82/98CD BD B6 19 LDA $19B6,x ; LUK $82/98D0 8D 7E 1E STA $1E7E $82/98D3 BD D6 17 LDA $17D6,x ; ??? $82/98D6 8D 7F 1E STA $1E7F $82/98D9 BD DE 19 LDA $19DE,x ; ??? (Status Effects?) $82/98DC 8D 80 1E STA $1E80 $82/98DF BD DF 19 LDA $19DF,x ; ??? $82/98E2 8D A0 1E STA $1EA0 $82/98E5 BD 2E 1A LDA $1A2E,x ; ??? $82/98E8 8D 81 1E STA $1E81 $82/98EB BD 2F 1A LDA $1A2F,x ; ??? $82/98EE 8D 82 1E STA $1E82 $82/98F1 BD 56 1A LDA $1A56,x ; ??? $82/98F4 8D 8F 1E STA $1E8F $82/98F7 BD 57 1A LDA $1A57,x ; ??? $82/98FA 8D 90 1E STA $1E90 $82/98FD BD 6E 1B LDA $1B6E,x ; ??? $82/9900 8D 91 1E STA $1E91 $82/9903 BD C7 1D LDA $1DC7,x ; ??? $82/9906 8D 96 1E STA $1E96 $82/9909 BD EE 1D LDA $1DEE,x ; Number of Moves $82/990C 8D 97 1E STA $1E97 $82/990F BD B7 19 LDA $19B7,x ; ??? $82/9912 8D 9D 1E STA $1E9D $82/9915 BD 26 1D LDA $1D26,x ; Type (Manual/Guest) $82/9918 8D 9E 1E STA $1E9E $82/991B C2 20 REP #$20 ; 16 bit values ahead $82/991D BD 26 18 LDA $1826,x ; Current HP $82/9920 8D 6A 1E STA $1E6A $82/9923 BD 4E 18 LDA $184E,x ; Max HP $82/9926 8D 6C 1E STA $1E6C $82/9929 BD 76 18 LDA $1876,x ; Current MP $82/992C 8D 6E 1E STA $1E6E $82/992F BD 9E 18 LDA $189E,x ; Max MP $82/9932 8D 70 1E STA $1E70 $82/9935 BD C6 18 LDA $18C6,x ; STR $82/9938 8D 72 1E STA $1E72 $82/993B BD EE 18 LDA $18EE,x ; INT $82/993E 8D 74 1E STA $1E74 $82/9941 BD 16 19 LDA $1916,x ; AGI $82/9944 8D 76 1E STA $1E76 $82/9947 BD 3E 19 LDA $193E,x ; DEX $82/994A 8D 78 1E STA $1E78 $82/994D BD 66 19 LDA $1966,x ; VIT $82/9950 8D 7A 1E STA $1E7A $82/9953 BD 8E 19 LDA $198E,x ; MEN $82/9956 8D 7C 1E STA $1E7C $82/9959 BD 7E 1A LDA $1A7E,x ; Equipment UL/UR Corner $82/995C 8D 83 1E STA $1E83 $82/995F BD A6 1A LDA $1AA6,x ; Equipment LL/LR Corner $82/9962 8D 85 1E STA $1E85 $82/9965 BD CE 1A LDA $1ACE,x ; Second Screen Item 1/2 $82/9968 8D 87 1E STA $1E87 $82/996B BD F6 1A LDA $1AF6,x ; Second Screen Item 3/4 $82/996E 8D 89 1E STA $1E89 $82/9971 BD 1E 1B LDA $1B1E,x ; Bonus/Malus on Equipment UL/UR Corner $82/9974 8D 8B 1E STA $1E8B $82/9977 BD 46 1B LDA $1B46,x ; Bonus/Malus on Equipment LL/LR Corner $82/997A 8D 8D 1E STA $1E8D $82/997D BD 96 1B LDA $1B96,x ; Current WT $82/9980 8D 92 1E STA $1E92 $82/9983 BD 9E 1D LDA $1D9E,x ; 16-bit Address (on WRAM bank $7E) of the Character's name, class etc. $82/9986 8D 94 1E STA $1E94 $82/9989 E2 20 SEP #$20 $82/998B BD 3E 1E LDA $1E3E,x ; ??? $82/998E 8D 98 1E STA $1E98 $82/9991 A6 39 LDX $39 ; Load Character's number (again) $82/9993 AB PLB ; Restore Data Bank Register $82/9994 6B RTL
$82/9BC8 ?
$82/9BC8 8B PHB ; Buffer Data Bank $82/9BC9 4B PHK ; Set Data Bank to $82 $82/9BCA AB PLB $82/9BCB 9C F4 16 STZ $16F4 ; ??? $82/9BCE 9C F5 16 STZ $16F5 ; ??? $82/9BD1 9C F6 16 STZ $16F6 ; ??? $82/9BD4 9C F7 16 STZ $16F7 ; ??? $82/9BD7 9C F8 16 STZ $16F8 ; ??? $82/9BDA 9C F9 16 STZ $16F9 ; ??? $82/9BDD 9C FA 16 STZ $16FA ; ??? $82/9BE0 A9 04 LDA #$04 ; ??? $82/9BE2 85 96 STA $96 ; ??? $82/9BE4 64 97 STZ $97 ; ??? $82/9BE6 A2 00 04 LDX #$0400 ; Size of the Tilemaps to be created (in $B206) $82/9BE9 86 0C STX $0C ; Store as Number of Bytes to transfer (in $B235) $82/9BEB 20 06 B2 JSR $B206 ; Create Clear Tilemaps (for Battle Stats Menu) $82/9BEE 20 35 B2 JSR $B235 ; Battle Stats Menu - transfer the buffered tilemaps into VRAM $82/9BF1 22 DA B1 82 JSL $82B1DA ; Clear BG3 Tilemap $82/9BF5 9C 60 00 STZ $0060 ; ??? $82/9BF8 AB PLB ; Restore Data Bank $82/9BF9 6B RTL
$82/AE91 Battle Stats Menu - Tilemap builder
This subroutine is called when the game has to build the status menu at the bottom of the battle screen. It builds some tiles into the tilemap - it is used quite often. This writes a rectangle shape into the tilemap, you have to give it the number of columns and rows it has to span.
Before it is called, certain values have to be set up.
X contains the 16-bit address where to read the tile data that has to be implemented into the tilemap.
$0A/B and $98/9 contain adress data that, together, form another part of the offset for the write address. Not sure what component each one brings in.
$0C contains what has to be added to the ROM read data before it is added to the tilemap, i. e. flipping or palette stuff.
$0E contains the number of rows this should edit, $0F the number of lines; these get transfered to $00/$01
$2C contains the 24-bit address of the tilemap buffer.
$82/AE91 C2 21 REP #$21 $82/AE93 A5 0A LDA $0A ; ??? This forms the where-to-write starting address $82/AE95 65 98 ADC $98 ; ??? Dunno what each part of this addition means singularly, though $82/AE97 A8 TAY ; Transfer where-to-write index in Y $82/AE98 E2 20 SEP #$20 $82/AE9A A5 0F LDA $0F ; Transfer row count into the loop counter $82/AE9C 85 01 STA $01 $82/AE9E A5 0E LDA $0E ; Transfer column count into the loop counter $82/AEA0 85 00 STA $00 $82/AEA2 5A PHY ; Push the start of this line on stack $82/AEA3 C2 21 REP #$21 $82/AEA5 BD 00 00 LDA $0000,x ; Load the tilemap entry from ROM $82/AEA8 65 0C ADC $0C ; Add additional information to it if there is some $82/AEAA 97 2C STA [$2C],y ; Write it in the buffered tilemap $82/AEAC E2 20 SEP #$20 $82/AEAE C8 INY ; Increment read and write counters $82/AEAF C8 INY $82/AEB0 E8 INX $82/AEB1 E8 INX $82/AEB2 C6 00 DEC $00 ; Decrement inner loop counter (columns) $82/AEB4 D0 ED BNE $ED ; [$AEA3] Loop if it isn't depleted $82/AEB6 C2 21 REP #$21 $82/AEB8 68 PLA ; Pull the address of the start of the row from stack $82/AEB9 69 40 00 ADC #$0040 ; Calculate the address of the start of the next row $82/AEBC A8 TAY ; Transfer in Y (so it gets pushed on stack at $AEA2 after looping) $82/AEBD E2 20 SEP #$20 $82/AEBF C6 01 DEC $01 ; Decrement outer loop counter (rows) $82/AEC1 D0 DB BNE $DB ; [$AE9E] Loop if it isn't depleted $82/AEC3 60 RTS
$82/B1DA Clear BG3 Tilemap
This subroutine writes an empty tilemap for BG3 in WRAM and transfers it to VRAM. It writes at 7E/A800 "$03EE" for $800 bytes and transfers this to VRAM at $3C00, where the BG3 Tilemap in many/most of the cases is located. "$03EE" is of course an empty tile - "$0000" is used by some sprite tiles.
$82/B1DA 8B PHB ; Buffer Data Bank $82/B1DB A9 7E LDA #$7E ; Set Data Bank to $7E $82/B1DD 48 PHA $82/B1DE AB PLB $82/B1DF C2 20 REP #$20 $82/B1E1 A2 00 08 LDX #$0800 ; Write "$03EE" at $7E/A800 and onwards for #$0800 times $82/B1E4 A0 00 A8 LDY #$A800 $82/B1E7 A9 EE 03 LDA #$03EE $82/B1EA 22 C8 9D 80 JSL $809DC8 ; Write Empty Tilemap $82/B1EE E2 20 SEP #$20 $82/B1F0 AB PLB ; Restore Original Data Bank $82/B1F1 A2 00 00 LDX #$0000 ; Set BG3 Scroll Registers to 0 $82/B1F4 8E 99 05 STX $0599 $82/B1F7 8E 9B 05 STX $059B $82/B1FA 22 EB 9E 80 JSL $809EEB ; VRAM DMA of the following data: $82/B1FE 00 A8 7E Address: $7E/A800 $82/B201 00 3C VRAM Address: $3C00 (BG3 Tilemap) $82/B203 00 08 Transfer $0800 Bytes $82/B205 6B RTL
$82/B206 Create Clear Tilemaps (for Battle Stats Menu?)
$82/B206 8B PHB ; Buffer Data Bank $82/B207 A9 7F LDA #$7F ; Set Data Bank to $7F $82/B209 48 PHA $82/B20A AB PLB $82/B20B C2 20 REP #$20 $82/B20D 86 00 STX $00 ; Buffer the Number of Bytes to do $82/B20F A0 00 14 LDY #$1400 ; Write to $7F/1400 $82/B212 A9 80 00 LDA #$0080 ; The value to write $82/B215 22 C8 9D 80 JSL $809DC8 ; Long Jump to Write Empty Tilemap in WRAM $82/B219 A6 00 LDX $00 ; Restore the Number of Bytes to do $82/B21B A0 00 18 LDY #$1800 ; Write to $7F/1800 $82/B21E A9 80 02 LDA #$0280 ; The value to write $82/B221 22 C8 9D 80 JSL $809DC8 ; Long Jump to Write Empty Tilemap in WRAM $82/B225 A6 00 LDX $00 ; Restore the Number of Bytes to do $82/B227 A0 00 1C LDY #$1C00 ; Write to $7F/1C00 $82/B22A A9 EE 03 LDA #$03EE ; The value to write $82/B22D 22 C8 9D 80 JSL $809DC8 ; Long Jump to Write Empty Tilemap in WRAM $82/B231 E2 20 SEP #$20 $82/B233 AB PLB ; Restore Data Bank $82/B234 60 RTS
$82/B235 Battle Stats Menu - transfer the buffered tilemaps into VRAM
This simple subroutine transfers the three buffered BG1 to BG3 tilemaps for the menu to VRAM.
$82/B235 A9 80 LDA #$80 ; VRAM transfer settings (for $2115) $82/B237 85 0E STA $0E $82/B239 A0 00 36 LDY #$3600 ; BG1 tilemap: VRAM destination $82/B23C A2 00 14 LDX #$1400 ; BG1 tilemap: Source Data Position: $7F/1400 $82/B23F A9 7F LDA #$7F $82/B241 22 24 9F 80 JSL $809F24 ; BG1 tilemap: VRAM DMA $82/B245 A0 00 3A LDY #$3A00 ; BG2 tilemap: VRAM destination $82/B248 A2 00 18 LDX #$1800 ; BG2 tilemap: Source Data Position: $7F/1800 $82/B24B A9 7F LDA #$7F $82/B24D 22 24 9F 80 JSL $809F24 ; BG2 tilemap: VRAM DMA $82/B251 A0 00 38 LDY #$3800 ; BG3 tilemap: VRAM destination $82/B254 A2 00 1C LDX #$1C00 ; BG3 tilemap: Source Data Position: $7F/1C00 $82/B257 A9 7F LDA #$7F $82/B259 22 24 9F 80 JSL $809F24 ; BG3 tilemap: VRAM DMA $82/B25D 60 RTS
$82/DE25 Load new Map?
$82/DE25 8B PHB ; Buffer Data Bank on Stack $82/DE26 A9 8B LDA #$8B ; Set Data Bank to $8B $82/DE28 48 PHA $82/DE29 AB PLB $82/DE2A A2 00 00 LDX #$0000 ; Setup $7F/0000 as 24-bit address in $20 $82/DE2D A9 7F LDA #$7F $82/DE2F 86 20 STX $20 $82/DE31 85 22 STA $22 $82/DE33 AE BE 16 LDX $16BE [$8B:16BE] A:007F X:0000 Y:2141 P:envMxdizc $82/DE36 7B TDC A:007F X:0003 Y:2141 P:envMxdizc $82/DE37 18 CLC A:0000 X:0003 Y:2141 P:envMxdiZc $82/DE38 BD DD 82 LDA $82DD,x[$8B:82E0] A:0000 X:0003 Y:2141 P:envMxdiZc $82/DE3B 6D C0 16 ADC $16C0 [$8B:16C0] A:0019 X:0003 Y:2141 P:envMxdizc $82/DE3E 8D C4 16 STA $16C4 [$8B:16C4] A:001A X:0003 Y:2141 P:envMxdizc $82/DE41 9C C5 16 STZ $16C5 [$8B:16C5] A:001A X:0003 Y:2141 P:envMxdizc $82/DE44 AE BE 16 LDX $16BE [$8B:16BE] A:001A X:0003 Y:2141 P:envMxdizc $82/DE47 7B TDC A:001A X:0003 Y:2141 P:envMxdizc $82/DE48 18 CLC A:0000 X:0003 Y:2141 P:envMxdiZc $82/DE49 BF 07 84 8B LDA $8B8407,x[$8B:840A] A:0000 X:0003 Y:2141 P:envMxdiZc $82/DE4D 6D C0 16 ADC $16C0 [$8B:16C0] A:0019 X:0003 Y:2141 P:envMxdizc $82/DE50 AA TAX A:001A X:0003 Y:2141 P:envMxdizc $82/DE51 A9 20 LDA #$20 A:001A X:001A Y:2141 P:envMxdizc $82/DE53 8D 02 42 STA $4202 [$8B:4202] A:0020 X:001A Y:2141 P:envMxdizc $82/DE56 BD 1F 84 LDA $841F,x[$8B:8439] A:0020 X:001A Y:2141 P:envMxdizc $82/DE59 8D 03 42 STA $4203 [$8B:4203] A:0004 X:001A Y:2141 P:envMxdizc $82/DE5C EA NOP ; Wait for the Multiplication to be done $82/DE5D EA NOP $82/DE5E EA NOP $82/DE5F EA NOP $82/DE60 AC 16 42 LDY $4216 [$8B:4216] A:0004 X:001A Y:2141 P:envMxdizc $82/DE63 8C C6 16 STY $16C6 [$8B:16C6] A:0004 X:001A Y:0080 P:envMxdizc $82/DE66 AD BE 16 LDA $16BE ; Load Index for Compressed ? Data $82/DE69 0A ASL A ; Multiply by 2 (addresses are 2 byte in size) $82/DE6A AA TAX ; Transfer in X and Buffer on Stack $82/DE6B DA PHX $82/DE6C 4B PHK ; Set Data Bank to $82 $82/DE6D AB PLB $82/DE6E C2 20 REP #$20 A:0006 X:0006 Y:0080 P:eNvMxdizc $82/DE70 BF 00 80 A2 LDA $A28000,x[$A2:8006] A:0006 X:0006 Y:0080 P:eNvmxdizc $82/DE74 AA TAX A:894F X:0006 Y:0080 P:eNvmxdizc $82/DE75 E2 20 SEP #$20 A:894F X:894F Y:0080 P:eNvmxdizc $82/DE77 A9 A2 LDA #$A2 ; Bank of the Compressed Data $82/DE79 22 E5 F9 81 JSL $81F9E5 ; Decompression Subroutine $82/DE7D FA PLX ; Resotre Load Index for Compressed ? Data $82/DE7E C2 21 REP #$21 ; A = 16-bit, Clear Carry $82/DE80 AF 00 00 7F LDA $7F0000[$7F:0000] A:FFFF X:0006 Y:0AC0 P:envmxdizc $82/DE84 85 A6 STA $A6 [$00:00A6] A:0444 X:0006 Y:0AC0 P:envmxdizc $82/DE86 AF 02 00 7F LDA $7F0002[$7F:0002] A:0444 X:0006 Y:0AC0 P:envmxdizc $82/DE8A 85 A8 STA $A8 [$00:00A8] A:0844 X:0006 Y:0AC0 P:envmxdizc $82/DE8C A9 00 00 LDA #$0000 A:0844 X:0006 Y:0AC0 P:envmxdizc $82/DE8F 65 0E ADC $0E [$00:000E] A:0000 X:0006 Y:0AC0 P:envmxdiZc $82/DE91 85 20 STA $20 ; Set as Decompression Store Address $82/DE93 85 AA STA $AA [$00:00AA] A:0AC0 X:0006 Y:0AC0 P:envmxdizc $82/DE95 BF 2E A9 A4 LDA $A4A92E,x ; Load Compressed Data Address and transfer it to X $82/DE99 AA TAX ; for upcoming Decompression $82/DE9A A9 1F 9C LDA #$9C1F ; Decompression Command Address: $A5/9C1F $82/DE9D 85 23 STA $23 $82/DE9F E2 20 SEP #$20 ; A = 8-bit $82/DEA1 A9 A5 LDA #$A5 $82/DEA3 85 25 STA $25 $82/DEA5 A9 A4 LDA #$A4 ; Compressed Data Bank: $A4 $82/DEA7 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:9CA4 X:ABFA Y:0AC0 P:eNvMxdizc $82/DEAB A9 7E LDA #$7E A:0400 X:AC89 Y:0400 P:eNvMxdizC $82/DEAD 85 22 STA $22 [$00:0022] A:047E X:AC89 Y:0400 P:envMxdizC $82/DEAF C2 20 REP #$20 A:047E X:AC89 Y:0400 P:envMxdizC $82/DEB1 A5 5C LDA $5C [$00:005C] A:047E X:AC89 Y:0400 P:envmxdizC $82/DEB3 85 20 STA $20 [$00:0020] A:2000 X:AC89 Y:0400 P:envmxdizC $82/DEB5 AD C4 16 LDA $16C4 [$82:16C4] A:2000 X:AC89 Y:0400 P:envmxdizC $82/DEB8 0A ASL A ; Multiply value by 3 to use it as Load Index $82/DEB9 6D C4 16 ADC $16C4 ; (Each Entry is 3 Bytes in Size) $82/DEBC AA TAX $82/DEBD BF 7E BB A6 LDA $A6BB7E,x[$A6:BBCC] A:004E X:004E Y:0400 P:envmxdizc $82/DEC1 A8 TAY A:B7F4 X:004E Y:0400 P:eNvmxdizc $82/DEC2 E2 20 SEP #$20 A:B7F4 X:004E Y:B7F4 P:eNvmxdizc $82/DEC4 BF 80 BB A6 LDA $A6BB80,x[$A6:BBCE] A:B7F4 X:004E Y:B7F4 P:eNvMxdizc $82/DEC8 BB TYX A:B7A5 X:004E Y:B7F4 P:eNvMxdizc $82/DEC9 22 83 FB 81 JSL $81FB83[$81:FB83] A:B7A5 X:B7F4 Y:B7F4 P:eNvMxdizc $82/DECD A5 22 LDA $22 [$00:0022] A:0006 X:270B Y:271B P:eNvMxdizC $82/DECF 85 25 STA $25 [$00:0025] A:007E X:270B Y:271B P:envMxdizC $82/DED1 A9 7F LDA #$7F ; Set Data Bank to $7F $82/DED3 48 PHA $82/DED4 AB PLB $82/DED5 C2 20 REP #$20 $82/DED7 A9 FF FF LDA #$FFFF ; Write "#$FFFF" at $7F/C800 to $7F/BFFF $82/DEDA A2 00 04 LDX #$0400 $82/DEDD A0 00 C8 LDY #$C800 $82/DEE0 22 C8 9D 80 JSL $809DC8 $82/DEE4 7B TDC ; Write "#$0000" at $7F/C000 to $7F/FFFF $82/DEE5 A2 00 04 LDX #$0400 $82/DEE8 A0 00 CC LDY #$CC00 $82/DEEB 22 C8 9D 80 JSL $809DC8 $82/DEEF 7B TDC ; Write "#$0000" at $7F/D800 to $7F/DFFF $82/DEF0 A2 00 04 LDX #$0400 ; This is going to be the Height Map $82/DEF3 A0 00 D8 LDY #$D800 $82/DEF6 22 C8 9D 80 JSL $809DC8 $82/DEFA E2 20 SEP #$20 $82/DEFC 4B PHK ; Set Data Bank to $82 $82/DEFD AB PLB $82/DEFE 7B TDC ; Clear 16-bit A $82/DEFF A8 TAY ; Clear Y as Load Index $82/DF00 B7 20 LDA [$20],y ; Load 1st byte $82/DF02 8D C8 16 STA $16C8 ; Store as Width of the Map on the NW-SE-Axis $82/DF05 9C C9 16 STZ $16C9 ; Clear High Byte $82/DF08 8D 02 42 STA $4202 ; Store in Multiplication Register $82/DF0B C8 INY ; Increment Data Load Index $82/DF0C B7 20 LDA [$20],y ; Load 2nd byte $82/DF0E 8D CA 16 STA $16CA ; Store as Width of the Map on the NE-SW-Axis? $82/DF11 9C CB 16 STZ $16CB ; Clear High Byte $82/DF14 8D 03 42 STA $4203 ; Store in Multiplication Register $82/DF17 C8 INY ; Increment Data Load Index $82/DF18 B7 20 LDA [$20],y ; Load 3rd byte $82/DF1A 8D CC 16 STA $16CC ; Store as Width of the Map on the NW-SE-Axis!?!?!?!?! $82/DF1D 9C CD 16 STZ $16CD ; Clear High Byte $82/DF20 C8 INY ; Increment Data Load Index $82/DF21 C2 21 REP #$21 ; 16-bit A, clear Carry $82/DF23 AD 16 42 LDA $4216 ; Load Multiplication Result (Size of the Map) $82/DF26 65 20 ADC $20 ; Add to the Offset the Data Address $82/DF28 85 23 STA $23 ; $23 contains the Address of the Data AFTER the Height Map $82/DF2A E2 20 SEP #$20 ; This line could be removed? $82/DF2C C2 21 REP #$21 ; Clear Carry $82/DF2E AD C6 16 LDA $16C6 ; Load Index/Offset for the Terrain Type Dataset $82/DF31 69 5D 87 ADC #$875D ; Add Offset of the Data Table ($8B/875D) to the Index $82/DF34 85 26 STA $26 ; Set it up as 24-bit Load Address in [$26] $82/DF36 E2 20 SEP #$20 $82/DF38 A9 8B LDA #$8B $82/DF3A 85 28 STA $28 $82/DF3C AD CA 16 LDA $16CA ; Setup Outer Loop Counter: $82/DF3F 85 00 STA $00 ; Width of the Map of the Map on the NE-SW-Axis $82/DF41 A2 21 00 LDX #$0021 A:871E X:2000 Y:0003 P:envMxdizc $82/DF44 AD C8 16 LDA $16C8 ; Setup Inner Loop Counter: $82/DF47 85 01 STA $01 ; Width of the Map of the Map on the NW-SE-Axis $82/DF49 DA PHX A:871E X:0021 Y:0003 P:envMxdizc $82/DF4A 7B TDC A:871E X:0021 Y:0003 P:envMxdizc $82/DF4B B7 23 LDA [$23],y[$7E:2387] A:0000 X:0021 Y:0003 P:envMxdiZc $82/DF4D C9 E0 CMP #$E0 A:0003 X:0021 Y:0003 P:envMxdizc $82/DF4F 90 24 BCC $24 [$DF75] A:0003 X:0021 Y:0003 P:envMxdizc
- Code is missing here
$82/DF75 B7 20 LDA [$20],y[$7E:2003] A:0003 X:0021 Y:0003 P:envMxdizc $82/DF77 9F 00 C8 7F STA $7FC800,x[$7F:C821] A:001F X:0021 Y:0003 P:envMxdizc $82/DF7B 10 01 BPL $01 [$DF7E] A:001F X:0021 Y:0003 P:envMxdizc
- Code is missing here
$82/DF7E 9F 00 D8 7F STA $7FD800,x[$7F:D821] A:001F X:0021 Y:0003 P:envMxdizc $82/DF82 7B TDC A:001F X:0021 Y:0003 P:envMxdizc $82/DF83 B7 23 LDA [$23],y[$7E:2387] A:0000 X:0021 Y:0003 P:envMxdiZc $82/DF85 9F 00 D0 7F STA $7FD000,x[$7F:D021] A:0003 X:0021 Y:0003 P:envMxdizc $82/DF89 29 1F AND #$1F A:0003 X:0021 Y:0003 P:envMxdizc $82/DF8B 9F 00 D4 7F STA $7FD400,x ; Store in "Object" Type Map $82/DF8F 5A PHY ; Buffer Data Load Index on Stack $82/DF90 A8 TAY ; Transfer "Object" Type value in Y as Load Index $82/DF91 B7 26 LDA [$26],y[$8B:87E0] A:0003 X:0021 Y:0003 P:envMxdizc $82/DF93 7A PLY ; Restore Data Load Index from Stack $82/DF94 9F 00 CC 7F STA $7FCC00,x ; Store in Terrain Type Map $82/DF98 C8 INY ; Increment Load Index $82/DF99 E8 INX ; Increment Store Index $82/DF9A C6 01 DEC $01 ; Decrement Inner Loop Counter $82/DF9C D0 AC BNE $AC ; [$DF4A] Loop until Counter is empty $82/DF51 7B TDC A:00E2 X:0023 Y:0005 P:envMxdizC $82/DF52 9F 00 C8 7F STA $7FC800,x[$7F:C823] A:0000 X:0023 Y:0005 P:envMxdiZC $82/DF56 B7 20 LDA [$20],y[$7E:2005] A:0000 X:0023 Y:0005 P:envMxdiZC $82/DF58 10 01 BPL $01 [$DF5B] A:001D X:0023 Y:0005 P:envMxdizC $82/DF5B 9F 00 D8 7F STA $7FD800,x[$7F:D823] A:001D X:0023 Y:0005 P:envMxdizC $82/DF5F 7B TDC A:001D X:0023 Y:0005 P:envMxdizC $82/DF60 9F 00 D0 7F STA $7FD000,x[$7F:D023] A:0000 X:0023 Y:0005 P:envMxdiZC $82/DF64 9F 00 D4 7F STA $7FD400,x[$7F:D423] A:0000 X:0023 Y:0005 P:envMxdiZC $82/DF68 B7 23 LDA [$23],y[$7E:2389] A:0000 X:0023 Y:0005 P:envMxdiZC $82/DF6A 29 03 AND #$03 A:00E2 X:0023 Y:0005 P:eNvMxdizC $82/DF6C 18 CLC A:0002 X:0023 Y:0005 P:envMxdizC $82/DF6D 69 18 ADC #$18 A:0002 X:0023 Y:0005 P:envMxdizc $82/DF6F 9F 00 CC 7F STA $7FCC00,x[$7F:CC23] A:001A X:0023 Y:0005 P:envMxdizc $82/DF73 80 23 BRA $23 [$DF98] A:001A X:0023 Y:0005 P:envMxdizc $82/DF9E C2 21 REP #$21 A:0001 X:003F Y:0021 P:envMxdiZc $82/DFA0 68 PLA A:0001 X:003F Y:0021 P:envmxdiZc $82/DFA1 69 20 00 ADC #$0020 A:0021 X:003F Y:0021 P:envmxdizc $82/DFA4 AA TAX A:0041 X:003F Y:0021 P:envmxdizc $82/DFA5 E2 20 SEP #$20 A:0041 X:0041 Y:0021 P:envmxdizc $82/DFA7 C6 00 DEC $00 ; Decrement Outer Loop Counter $82/DFA9 D0 99 BNE $99 ; [$DF44] Loop until Counter is empty $82/DFAB EE C8 16 INC $16C8 [$82:16C8] A:03E1 X:03E1 Y:0387 P:envMxdiZc $82/DFAE EE CA 16 INC $16CA [$82:16CA] A:03E1 X:03E1 Y:0387 P:envMxdizc $82/DFB1 C2 20 REP #$20 A:03E1 X:03E1 Y:0387 P:envMxdizc $82/DFB3 A9 A0 FF LDA #$FFA0 A:03E1 X:03E1 Y:0387 P:envmxdizc $82/DFB6 85 00 STA $00 [$00:0000] A:FFA0 X:03E1 Y:0387 P:eNvmxdizc $82/DFB8 18 CLC A:FFA0 X:03E1 Y:0387 P:eNvmxdizc $82/DFB9 AD C8 16 LDA $16C8 [$82:16C8] A:FFA0 X:03E1 Y:0387 P:eNvmxdizc $82/DFBC 6D CA 16 ADC $16CA [$82:16CA] A:001F X:03E1 Y:0387 P:envmxdizc $82/DFBF 0A ASL A A:003E X:03E1 Y:0387 P:envmxdizc $82/DFC0 0A ASL A A:007C X:03E1 Y:0387 P:envmxdizc $82/DFC1 0A ASL A A:00F8 X:03E1 Y:0387 P:envmxdizc $82/DFC2 48 PHA A:01F0 X:03E1 Y:0387 P:envmxdizc $82/DFC3 0A ASL A A:01F0 X:03E1 Y:0387 P:envmxdizc $82/DFC4 38 SEC A:03E0 X:03E1 Y:0387 P:envmxdizc $82/DFC5 E9 A0 00 SBC #$00A0 A:03E0 X:03E1 Y:0387 P:envmxdizC $82/DFC8 85 02 STA $02 [$00:0002] A:0340 X:03E1 Y:0387 P:envmxdizC $82/DFCA A9 A8 FF LDA #$FFA8 A:0340 X:03E1 Y:0387 P:envmxdizC $82/DFCD 85 04 STA $04 [$00:0004] A:FFA8 X:03E1 Y:0387 P:eNvmxdizC $82/DFCF 68 PLA A:FFA8 X:03E1 Y:0387 P:eNvmxdizC $82/DFD0 85 06 STA $06 [$00:0006] A:01F0 X:03E1 Y:0387 P:envmxdizC $82/DFD2 AD CC 16 LDA $16CC [$82:16CC] A:01F0 X:03E1 Y:0387 P:envmxdizC $82/DFD5 0A ASL A A:001E X:03E1 Y:0387 P:envmxdizC $82/DFD6 0A ASL A A:003C X:03E1 Y:0387 P:envmxdizc $82/DFD7 0A ASL A A:0078 X:03E1 Y:0387 P:envmxdizc $82/DFD8 65 06 ADC $06 [$00:0006] A:00F0 X:03E1 Y:0387 P:envmxdizc $82/DFDA 38 SEC A:02E0 X:03E1 Y:0387 P:envmxdizc $82/DFDB E9 78 00 SBC #$0078 A:02E0 X:03E1 Y:0387 P:envmxdizC $82/DFDE 85 06 STA $06 [$00:0006] A:0268 X:03E1 Y:0387 P:envmxdizC $82/DFE0 AD CA 16 LDA $16CA [$82:16CA] A:0268 X:03E1 Y:0387 P:envmxdizC $82/DFE3 3A DEC A A:001F X:03E1 Y:0387 P:envmxdizC $82/DFE4 85 0C STA $0C [$00:000C] A:001E X:03E1 Y:0387 P:envmxdizC $82/DFE6 85 0A STA $0A [$00:000A] A:001E X:03E1 Y:0387 P:envmxdizC $82/DFE8 A9 01 00 LDA #$0001 A:001E X:03E1 Y:0387 P:envmxdizC $82/DFEB 85 08 STA $08 [$00:0008] A:0001 X:03E1 Y:0387 P:envmxdizC $82/DFED A5 0A LDA $0A [$00:000A] A:0001 X:03E1 Y:0387 P:envmxdizC $82/DFEF EB XBA A:001E X:03E1 Y:0387 P:envmxdizC $82/DFF0 4A LSR A A:1E00 X:03E1 Y:0387 P:envmxdiZC $82/DFF1 4A LSR A A:0F00 X:03E1 Y:0387 P:envmxdizc $82/DFF2 4A LSR A A:0780 X:03E1 Y:0387 P:envmxdizc $82/DFF3 05 08 ORA $08 [$00:0008] A:03C0 X:03E1 Y:0387 P:envmxdizc $82/DFF5 AA TAX A:03C1 X:03E1 Y:0387 P:envmxdizc $82/DFF6 7B TDC A:03C1 X:03C1 Y:0387 P:envmxdizc $82/DFF7 E2 20 SEP #$20 ; A = 8-bit $82/DFF9 BF 00 C8 7F LDA $7FC800,x ; Load Entry of the Step Map $82/DFFD C2 20 REP #$20 A:000A X:03C1 Y:0387 P:envMxdizc $82/DFFF C9 00 00 CMP #$0000 A:000A X:03C1 Y:0387 P:envmxdizc $82/E002 F0 05 BEQ $05 [$E009] A:000A X:03C1 Y:0387 P:envmxdizC $82/E004 C9 FF 00 CMP #$00FF A:000A X:03C1 Y:0387 P:envmxdizC $82/E007 D0 21 BNE $21 [$E02A] A:000A X:03C1 Y:0387 P:eNvmxdizc
- code is missing here
$82/E02A AD C8 16 LDA $16C8 [$82:16C8] A:000A X:03C1 Y:0387 P:eNvmxdizc $82/E02D 3A DEC A A:001F X:03C1 Y:0387 P:envmxdizc $82/E02E 85 08 STA $08 [$00:0008] A:001E X:03C1 Y:0387 P:envmxdizc $82/E030 85 0C STA $0C [$00:000C] A:001E X:03C1 Y:0387 P:envmxdizc $82/E032 A9 01 00 LDA #$0001 A:001E X:03C1 Y:0387 P:envmxdizc $82/E035 85 0A STA $0A [$00:000A] A:0001 X:03C1 Y:0387 P:envmxdizc $82/E037 A5 0A LDA $0A [$00:000A] A:0001 X:03C1 Y:0387 P:envmxdizc $82/E039 EB XBA A:0001 X:03C1 Y:0387 P:envmxdizc $82/E03A 4A LSR A A:0100 X:03C1 Y:0387 P:envmxdiZc $82/E03B 4A LSR A A:0080 X:03C1 Y:0387 P:envmxdizc $82/E03C 4A LSR A A:0040 X:03C1 Y:0387 P:envmxdizc $82/E03D 05 08 ORA $08 [$00:0008] A:0020 X:03C1 Y:0387 P:envmxdizc $82/E03F AA TAX A:003E X:03C1 Y:0387 P:envmxdizc $82/E040 7B TDC A:003E X:003E Y:0387 P:envmxdizc $82/E041 E2 20 SEP #$20 A:0000 X:003E Y:0387 P:envmxdiZc $82/E043 BF 00 C8 7F LDA $7FC800,x[$7F:C83E] A:0000 X:003E Y:0387 P:envMxdiZc $82/E047 C2 20 REP #$20 A:001E X:003E Y:0387 P:envMxdizc $82/E049 C9 00 00 CMP #$0000 A:001E X:003E Y:0387 P:envmxdizc $82/E04C F0 05 BEQ $05 [$E053] A:001E X:003E Y:0387 P:envmxdizC $82/E04E C9 FF 00 CMP #$00FF A:001E X:003E Y:0387 P:envmxdizC $82/E051 D0 21 BNE $21 [$E074] A:001E X:003E Y:0387 P:eNvmxdizc
- code is missing here
$82/E074 A5 00 LDA $00 [$00:0000] A:001E X:003E Y:0387 P:eNvmxdizc $82/E076 8D CE 16 STA $16CE [$82:16CE] A:FFA0 X:003E Y:0387 P:eNvmxdizc $82/E079 A5 02 LDA $02 [$00:0002] A:FFA0 X:003E Y:0387 P:eNvmxdizc $82/E07B 8D D0 16 STA $16D0 [$82:16D0] A:0340 X:003E Y:0387 P:envmxdizc $82/E07E A5 04 LDA $04 [$00:0004] A:0340 X:003E Y:0387 P:envmxdizc $82/E080 8D D2 16 STA $16D2 [$82:16D2] A:FFA8 X:003E Y:0387 P:eNvmxdizc $82/E083 A5 06 LDA $06 [$00:0006] A:FFA8 X:003E Y:0387 P:eNvmxdizc $82/E085 8D D4 16 STA $16D4 [$82:16D4] A:0268 X:003E Y:0387 P:envmxdizc $82/E088 E2 20 SEP #$20 A:0268 X:003E Y:0387 P:envmxdizc $82/E08A 20 EA FC JSR $FCEA [$82:FCEA] A:0268 X:003E Y:0387 P:envMxdizc $82/E08D 22 3D 85 86 JSL $86853D[$86:853D] A:001F X:03DF Y:0387 P:envMxdiZC $82/E091 AB PLB A:0000 X:1F1F Y:0387 P:eNvMxdizC $82/E092 6B RTL A:0000 X:1F1F Y:0387 P:eNvMxdizC
$82/E093 ?
$82/E093 8B PHB ; Buffer Data Bank $82/E094 4B PHK ; Set Data Bank to $82 - This line could be removed? $82/E095 AB PLB ; This line could be removed? $82/E096 20 9B E0 JSR $E09B ; ??? $82/E099 AB PLB ; Restore Data Bank $82/E09A 6B RTL
$82/E093 ?
$82/E09B A9 7F LDA #$7F ; Set Data Bank to $7F $82/E09D 48 PHA $82/E09E AB PLB $82/E09F C2 20 REP #$20 ; 16-bit A $82/E0A1 7B TDC ; Set $7F/8000 to $7F/97FF to "#$0000" $82/E0A2 A2 00 18 LDX #$1800 $82/E0A5 A0 00 80 LDY #$8000 $82/E0A8 22 C8 9D 80 JSL $809DC8 $82/E0AC 7B TDC ; Set $7F/9800 to $7F/C7FF to "#$0000" $82/E0AD A2 00 30 LDX #$3000 $82/E0B0 A0 00 98 LDY #$9800 $82/E0B3 22 C8 9D 80 JSL $809DC8 $82/E0B7 A9 80 02 LDA #$0280 ; Set $7F/2000 to $7F/7FFF to "#$0280" $82/E0BA A2 00 60 LDX #$6000 $82/E0BD A0 00 20 LDY #$2000 $82/E0C0 22 C8 9D 80 JSL $809DC8 $82/E0C4 E2 20 SEP #$20 ; 8-bit A $82/E0C6 4B PHK ; Set Data Bank to $82 $82/E0C7 AB PLB $82/E0C8 A2 01 00 LDX #$0001 A:0280 X:1F1F Y:8000 P:eNVMxdizc $82/E0CB A0 01 00 LDY #$0001 A:0280 X:0001 Y:8000 P:enVMxdizc $82/E0CE DA PHX A:0280 X:0001 Y:0001 P:enVMxdizc $82/E0CF 5A PHY A:0280 X:0001 Y:0001 P:enVMxdizc $82/E0D0 64 10 STZ $10 [$00:0010] A:0280 X:0001 Y:0001 P:enVMxdizc $82/E0D2 20 F6 E0 JSR $E0F6 [$82:E0F6] A:0280 X:0001 Y:0001 P:enVMxdizc $82/E0DD A2 01 00 LDX #$0001 A:101F X:0001 Y:001F P:envMxdiZC $82/E0E0 A0 01 00 LDY #$0001 A:101F X:0001 Y:001F P:envMxdizC $82/E0E3 DA PHX A:101F X:0001 Y:0001 P:envMxdizC $82/E0E4 5A PHY A:101F X:0001 Y:0001 P:envMxdizC $82/E0E5 A9 01 LDA #$01 A:101F X:0001 Y:0001 P:envMxdizC $82/E0E7 85 10 STA $10 [$00:0010] A:1001 X:0001 Y:0001 P:envMxdizC $82/E0E9 20 F6 E0 JSR $E0F6 [$82:E0F6] A:1001 X:0001 Y:0001 P:envMxdizC $82/E0EC 7A PLY A:171F X:2E3E Y:01D2 P:envMxdiZC $82/E0ED FA PLX A:171F X:2E3E Y:0001 P:envMxdizC $82/E0EE E8 INX A:171F X:0001 Y:0001 P:envMxdizC $82/E0EF EC C8 16 CPX $16C8 [$82:16C8] A:171F X:0002 Y:0001 P:envMxdizC $82/E0F2 D0 EF BNE $EF [$E0E3] A:171F X:0002 Y:0001 P:eNvMxdizc $82/E0F4 60 RTS ; THE FINAL EXIT
$82/E0F6 ? Big Map Stuff
X contains a Position (NW-SE-Axis)
Y contains a Position (NE-SW-Axis)
$00 contains the Original X value - Low Byte
$01 contains the Original X value - High Byte
$09 entry of the $7F/C800 table
$0A contains the Original X value
$0B contains the Original Y value
$0E contains the Offset of the Rhomb that this subroutine is aimed at (X/Y Original Contents)
$10 contains some kinda case decider, see $82/E120
$82/E0F6 86 00 STX $00 ; Buffer brought-in X in $00/1 $82/E0F8 BA TSX ; Store current Stack pointer in $05F6 $82/E0F9 8E F6 05 STX $05F6 $82/E0FC A6 00 LDX $00 ; Restore Original X $82/E0FE A9 20 LDA #$20 ; Multiply Original Y value by 20 (Position (NE-SW-Axis) $82/E100 8D 02 42 STA $4202 $82/E103 98 TYA $82/E104 85 0B STA $0B ; Buffer Original Y in $0B $82/E106 8D 03 42 STA $4203 $82/E109 8A TXA $82/E10A 85 0A STA $0A ; Buffer Original X in $0A $82/E10C C2 21 REP #$21 ; 16 bit A, Clear Carry $82/E10E 8A TXA ; A = Orig. X + Orig. Y * #$20 $82/E10F 6D 16 42 ADC $4216 $82/E112 AA TAX ; Transfer it in X, to use it as Load Index $82/E113 E2 20 SEP #$20 ; Turn A to 8 bit again $82/E115 86 0E STX $0E ; Store the Load Index in $0E/F $82/E117 BF 00 C8 7F LDA $7FC800,x ; Load Step Number(?) of the Rhomb $82/E11B 85 09 STA $09 ; Store Value in $09 $82/E11D 20 50 E3 JSR $E350 ; ??? (Calculates a value in Y) $82/E120 A5 10 LDA $10 [$00:0010] A:009E X:0021 Y:009E P:envMxdizc $82/E122 F0 01 BEQ $01 [$E125] A:0000 X:0021 Y:009E P:envMxdiZc
- Code is missing here
$82/E125 84 20 STY $20 [$00:0020] A:0000 X:0021 Y:009E P:envMxdiZc $82/E127 A9 01 LDA #$01 A:0000 X:0021 Y:009E P:envMxdiZc $82/E129 85 07 STA $07 [$00:0007] A:0001 X:0021 Y:009E P:envMxdizc $82/E12B 64 06 STZ $06 [$00:0006] A:0001 X:0021 Y:009E P:envMxdizc $82/E12D A9 FF LDA #$FF A:0001 X:0021 Y:009E P:envMxdizc $82/E12F 85 0C STA $0C [$00:000C] A:00FF X:0021 Y:009E P:eNvMxdizc $82/E131 A5 10 LDA $10 [$00:0010] A:00FF X:0021 Y:009E P:eNvMxdizc $82/E133 D0 0C BNE $0C [$E141] A:0000 X:0021 Y:009E P:envMxdiZc $82/E135 BF 20 C8 7F LDA $7FC820,x ; Load Step Map value from next row's Rhomb $82/E139 85 0D STA $0D ; Buffer in $0D $82/E13B BF 20 D0 7F LDA $7FD020,x ; Load ??? Map value from next row's Rhomb $82/E13F 80 0A BRA $0A [$E14B] A:0011 X:0021 Y:009E P:envMxdizc
- Code is missing here
$82/E14B 4A LSR A ; divide by #$20 $82/E14C 4A LSR A $82/E14D 4A LSR A $82/E14E 4A LSR A $82/E14F 4A LSR A $82/E150 85 05 STA $05 [$00:0005] A:0000 X:0021 Y:009E P:envMxdiZC $82/E152 64 04 STZ $04 [$00:0004] A:0000 X:0021 Y:009E P:envMxdiZC $82/E154 64 22 STZ $22 [$00:0022] A:0000 X:0021 Y:009E P:envMxdiZC $82/E156 A9 1F LDA #$1F A:0000 X:0021 Y:009E P:envMxdiZC $82/E158 85 11 STA $11 [$00:0011] A:001F X:0021 Y:009E P:envMxdizC $82/E15A 85 12 STA $12 [$00:0012] A:001F X:0021 Y:009E P:envMxdizC $82/E15C A5 09 LDA $09 [$00:0009] A:001F X:0021 Y:009E P:envMxdizC $82/E15E F0 03 BEQ $03 ; [$E163] $82/E160 4C 4F E2 JMP $E24F [$82:E24F] A:001F X:0021 Y:009E P:envMxdizC $82/E163 E6 12 INC $12 [$00:0012] A:0000 X:013C Y:0024 P:envMxdiZc $82/E165 A5 10 LDA $10 [$00:0010] A:0000 X:013C Y:0024 P:envMxdizc $82/E167 49 01 EOR #$01 A:0000 X:013C Y:0024 P:envMxdiZc $82/E169 85 10 STA $10 [$00:0010] A:0001 X:013C Y:0024 P:envMxdizc $82/E16B D0 1D BNE $1D [$E18A] A:0001 X:013C Y:0024 P:envMxdizc $82/E16D E6 0A INC $0A [$00:000A] A:0100 X:01BC Y:007E P:envMxdiZc $82/E16F A5 0A LDA $0A [$00:000A] A:0100 X:01BC Y:007E P:envMxdizc $82/E171 CD C8 16 CMP $16C8 ; Compare with Width of the Map on the NW-SE-Axis $82/E174 90 03 BCC $03 ; [$E179] Branch if $0A hasn't exceeded it
- code is missing here
$82/E179 A6 0E LDX $0E [$00:000E] A:0102 X:01BC Y:007E P:eNvMxdizc $82/E17B E8 INX A:0102 X:0041 Y:007E P:envMxdizc $82/E17C 86 0E STX $0E [$00:000E] A:0102 X:0042 Y:007E P:envMxdizc $82/E17E BF FF D7 7F LDA $7FD7FF,x ; Load Height Map value from previous Rhomb $82/E182 C5 12 CMP $12 [$00:0012] A:011F X:0042 Y:007E P:envMxdizc $82/E184 B0 26 BCS $26 [$E1AC] A:011F X:0042 Y:007E P:eNvMxdizc $82/E186 85 12 STA $12 [$00:0012] A:011F X:0042 Y:007E P:eNvMxdizc $82/E188 80 22 BRA $22 [$E1AC] A:011F X:0042 Y:007E P:eNvMxdizc $82/E18A E6 0B INC $0B [$00:000B] A:0001 X:013C Y:0024 P:envMxdizc $82/E18C A5 0B LDA $0B ; $82/E18E CD CA 16 CMP $16CA ; Compare with Width of the Map on the NE-SW-Axis $82/E191 90 03 BCC $03 ; [$E196] Branch if $0B hasn't exceeded it
- code is missing here
$82/E196 C2 21 REP #$21 ; Clear Carry and add #$20 to $0E $82/E198 A5 0E LDA $0E $82/E19A 69 20 00 ADC #$0020 $82/E19D 85 0E STA $0E $82/E19F E2 20 SEP #$20 $82/E1A1 AA TAX ; Transfer new value in $0E in X as Load Index $82/E1A2 BF E0 D7 7F LDA $7FD7E0,x ; Load Height Map value from previous row's Rhomb $82/E1A6 C5 12 CMP $12 [$00:0012] A:001F X:0041 Y:0024 P:envMxdizc $82/E1A8 B0 02 BCS $02 [$E1AC] A:001F X:0041 Y:0024 P:eNvMxdizc $82/E1AA 85 12 STA $12 [$00:0012] A:001F X:0041 Y:0024 P:eNvMxdizc $82/E1AC A5 09 LDA $09 [$00:0009] A:001F X:0041 Y:0024 P:eNvMxdizc $82/E1AE 85 0C STA $0C [$00:000C] A:001F X:0041 Y:0024 P:envMxdizc $82/E1B0 A5 0D LDA $0D [$00:000D] A:001F X:0041 Y:0024 P:envMxdizc $82/E1B2 85 09 STA $09 [$00:0009] A:001F X:0041 Y:0024 P:envMxdizc $82/E1B4 A5 10 LDA $10 [$00:0010] A:001F X:0041 Y:0024 P:envMxdizc $82/E1B6 D0 06 BNE $06 [$E1BE] A:0001 X:0041 Y:0024 P:envMxdizc $82/E1B8 BF 20 C8 7F LDA $7FC820,x[$7F:C862] A:0100 X:0042 Y:007E P:envMxdiZc $82/E1BC 80 04 BRA $04 [$E1C2] A:011C X:0042 Y:007E P:envMxdizc $82/E1BE BF 01 C8 7F LDA $7FC801,x[$7F:C842] A:0001 X:0041 Y:0024 P:envMxdizc $82/E1C2 10 01 BPL $01 [$E1C5] A:001F X:0041 Y:0024 P:envMxdizc
- Code is missing here
$82/E1C5 85 0D STA $0D [$00:000D] A:001F X:0041 Y:0024 P:envMxdizc $82/E1C7 A5 09 LDA $09 [$00:0009] A:001F X:0041 Y:0024 P:envMxdizc $82/E1C9 F0 98 BEQ $98 [$E163] A:001F X:0041 Y:0024 P:envMxdizc $82/E1CB 20 50 E3 JSR $E350 [$82:E350] A:001F X:0041 Y:0024 P:envMxdizc $82/E1CE A5 10 LDA $10 [$00:0010] A:00DD X:0041 Y:00DD P:envMxdizc $82/E1D0 F0 01 BEQ $01 [$E1D3] A:0001 X:0041 Y:00DD P:envMxdizc $82/E1D2 C8 INY A:0001 X:0041 Y:00DD P:envMxdizc $82/E1D3 84 20 STY $20 [$00:0020] A:0001 X:0041 Y:00DE P:envMxdizc $82/E1D5 A5 09 LDA $09 [$00:0009] A:0001 X:0041 Y:00DE P:envMxdizc $82/E1D7 C5 0C CMP $0C [$00:000C] A:001F X:0041 Y:00DE P:envMxdizc $82/E1D9 F0 1D BEQ $1D [$E1F8] A:001F X:0041 Y:00DE P:envMxdiZC $82/E1F8 A5 04 LDA $04 [$00:0004] A:001F X:0041 Y:00DE P:envMxdiZC $82/E1FA F0 04 BEQ $04 [$E200] A:0000 X:0041 Y:00DE P:envMxdiZC $82/E200 A5 05 LDA $05 [$00:0005] A:0000 X:0041 Y:00DE P:envMxdiZC $82/E202 F0 F8 BEQ $F8 [$E1FC] A:0000 X:0041 Y:00DE P:envMxdiZC $82/E1FC A9 09 LDA #$09 A:0000 X:0041 Y:00DE P:envMxdiZC $82/E1FE 80 08 BRA $08 [$E208] A:0009 X:0041 Y:00DE P:envMxdizC $82/E208 85 07 STA $07 [$00:0007] A:0009 X:0041 Y:00DE P:envMxdizC $82/E20A A5 0C LDA $0C [$00:000C] A:0009 X:0041 Y:00DE P:envMxdizC $82/E20C D0 33 BNE $33 [$E241] A:001F X:0041 Y:00DE P:envMxdizC $82/E241 A5 09 LDA $09 [$00:0009] A:001F X:0041 Y:00DE P:envMxdizC $82/E243 38 SEC A:001F X:0041 Y:00DE P:envMxdizC $82/E244 E5 0C SBC $0C [$00:000C] A:001F X:0041 Y:00DE P:envMxdizC $82/E246 30 07 BMI $07 [$E24F] A:0000 X:0041 Y:00DE P:envMxdiZC $82/E248 F0 05 BEQ $05 [$E24F] A:0000 X:0041 Y:00DE P:envMxdiZC $82/E24F A6 0E LDX $0E [$00:000E] A:001F X:0021 Y:009E P:envMxdizC $82/E251 BF 00 D0 7F LDA $7FD000,x[$7F:D021] A:001F X:0021 Y:009E P:envMxdizC $82/E255 4A LSR A A:0003 X:0021 Y:009E P:envMxdizC $82/E256 4A LSR A A:0001 X:0021 Y:009E P:envMxdizC $82/E257 4A LSR A A:0000 X:0021 Y:009E P:envMxdiZC $82/E258 4A LSR A A:0000 X:0021 Y:009E P:envMxdiZc $82/E259 4A LSR A A:0000 X:0021 Y:009E P:envMxdiZc $82/E25A 85 04 STA $04 [$00:0004] A:0000 X:0021 Y:009E P:envMxdiZc $82/E25C F0 07 BEQ $07 [$E265] A:0000 X:0021 Y:009E P:envMxdiZc $82/E25E 1A INC A A:0702 X:0107 Y:079E P:envMxdizC $82/E25F C5 22 CMP $22 [$00:0022] A:0703 X:0107 Y:079E P:envMxdizC $82/E261 90 02 BCC $02 [$E265] A:0703 X:0107 Y:079E P:envMxdizC $82/E263 85 22 STA $22 [$00:0022] A:0703 X:0107 Y:079E P:envMxdizC $82/E265 BF 00 D0 7F LDA $7FD000,x[$7F:D021] A:0000 X:0021 Y:009E P:envMxdiZc $82/E269 29 1F AND #$1F A:0003 X:0021 Y:009E P:envMxdizc $82/E26B 85 08 STA $08 [$00:0008] A:0003 X:0021 Y:009E P:envMxdizc $82/E26D C9 18 CMP #$18 A:0003 X:0021 Y:009E P:envMxdizc $82/E26F 90 1C BCC $1C [$E28D] A:0003 X:0021 Y:009E P:eNvMxdizc $82/E271 A5 10 LDA $10 [$00:0010] A:071A X:0107 Y:079E P:envMxdizC $82/E273 D0 06 BNE $06 [$E27B] A:0701 X:0107 Y:079E P:envMxdizC $82/E275 BF FF CF 7F LDA $7FCFFF,x[$7F:D107] A:0700 X:0108 Y:07DE P:envMxdiZC $82/E279 80 04 BRA $04 [$E27F] A:075A X:0108 Y:07DE P:envMxdizC $82/E27B BF E0 CF 7F LDA $7FCFE0,x[$7F:D0E7] A:0701 X:0107 Y:079E P:envMxdizC $82/E27F 29 1F AND #$1F A:0704 X:0107 Y:079E P:envMxdizC $82/E281 C5 08 CMP $08 [$00:0008] A:0704 X:0107 Y:079E P:envMxdizC $82/E283 D0 08 BNE $08 [$E28D] A:0704 X:0107 Y:079E P:eNvMxdizc $82/E285 A5 0C LDA $0C [$00:000C] A:071A X:0108 Y:07DE P:envMxdiZC $82/E287 C5 09 CMP $09 [$00:0009] A:0710 X:0108 Y:07DE P:envMxdizC $82/E289 D0 02 BNE $02 [$E28D] A:0710 X:0108 Y:07DE P:envMxdiZC $82/E28B E6 08 INC $08 [$00:0008] A:0710 X:0108 Y:07DE P:envMxdiZC $82/E28D A5 0D LDA $0D [$00:000D] A:0003 X:0021 Y:009E P:eNvMxdizc $82/E28F D0 59 BNE $59 [$E2EA] A:001F X:0021 Y:009E P:envMxdizc $82/E291 A9 01 LDA #$01 A:1600 X:03DE Y:165E P:envMxdiZc $82/E293 85 03 STA $03 [$00:0003] A:1601 X:03DE Y:165E P:envMxdizc $82/E295 A5 10 LDA $10 [$00:0010] A:1601 X:03DE Y:165E P:envMxdizc $82/E297 D0 08 BNE $08 [$E2A1] A:1600 X:03DE Y:165E P:envMxdiZc $82/E299 80 17 BRA $17 [$E2B2] A:1600 X:03DE Y:165E P:envMxdiZc $82/E29B BF 00 D8 7F LDA $7FD800,x ; Load Entry from Height Map $82/E29F 85 00 STA $00 ; Buffer Height Map Entry $82/E2A1 E8 INX ; Increment Load Index $82/E2A2 BF 00 C8 7F LDA $7FC800,x ; Load next Entry from the Step Map $82/E2A6 30 42 BMI $42 ; [$E2EA] ??? Branch if negative $82/E2A8 D0 1D BNE $1D ; [$E2C7] ??? $82/E2AA E6 03 INC $03 [$00:0003] A:0300 X:0183 Y:0395 P:envMxdiZc $82/E2AC BF 00 D8 7F LDA $7FD800,x ; Load corresponding rhomb's value from Height Map $82/E2B0 85 00 STA $00 ; Buffer in $00 $82/E2B2 C2 21 REP #$21 ; Clear Carry and add #$20 to X (jump to the next row) $82/E2B4 8A TXA $82/E2B5 69 20 00 ADC #$0020 $82/E2B8 AA TAX $82/E2B9 E2 20 SEP #$20 $82/E2BB BF 00 C8 7F LDA $7FC800,x ; Load (next row) value from Step Map $82/E2BF 30 29 BMI $29 ; [$E2EA] Branch if Step Map value is negative ( =#$FF = invalid?) $82/E2C1 D0 04 BNE $04 ; [$E2C7] Branch if Step Map value is positive and not zero $82/E2C3 E6 03 INC $03 [$00:0003] A:0000 X:0061 Y:00DD P:envMxdiZc $82/E2C5 80 D4 BRA $D4 [$E29B] A:0000 X:0061 Y:00DD P:envMxdizc $82/E2C7 C5 00 CMP $00 ; Compare Step Map value with Height Map value $82/E2C9 B0 02 BCS $02 [$E2CD] A:001C X:0062 Y:00DD P:envMxdiZC
- Code is missing here
$82/E2CD A5 03 LDA $03 [$00:0003] A:001C X:0062 Y:00DD P:envMxdiZC $82/E2CF 18 CLC A:0002 X:0062 Y:00DD P:envMxdizC $82/E2D0 65 09 ADC $09 [$00:0009] A:0002 X:0062 Y:00DD P:envMxdizc $82/E2D2 85 11 STA $11 [$00:0011] A:0021 X:0062 Y:00DD P:envMxdizc $82/E2D4 A5 09 LDA $09 [$00:0009] A:0021 X:0062 Y:00DD P:envMxdizc $82/E2D6 38 SEC A:001F X:0062 Y:00DD P:envMxdizc $82/E2D7 E5 00 SBC $00 ; Subtract Height Map value $82/E2D9 18 CLC A:0003 X:0062 Y:00DD P:envMxdizC $82/E2DA 65 03 ADC $03 [$00:0003] A:0003 X:0062 Y:00DD P:envMxdizc $82/E2DC C9 02 CMP #$02 A:0005 X:0062 Y:00DD P:envMxdizc $82/E2DE 10 02 BPL $02 [$E2E2] A:0005 X:0062 Y:00DD P:envMxdizC $82/E2E2 85 03 STA $03 [$00:0003] A:0005 X:0062 Y:00DD P:envMxdizC $82/E2E4 A5 09 LDA $09 [$00:0009] A:0005 X:0062 Y:00DD P:envMxdizC $82/E2E6 C5 03 CMP $03 [$00:0003] A:001F X:0062 Y:00DD P:envMxdizC $82/E2E8 B0 35 BCS $35 [$E31F] A:001F X:0062 Y:00DD P:envMxdizC $82/E2EA A6 0E LDX $0E [$00:000E] A:001F X:0021 Y:009E P:envMxdizc $82/E2EC A5 10 LDA $10 [$00:0010] A:001F X:0021 Y:009E P:envMxdizc $82/E2EE D0 06 BNE $06 [$E2F6] A:0000 X:0021 Y:009E P:envMxdiZc $82/E2F0 BF 20 D0 7F LDA $7FD020,x[$7F:D041] A:0000 X:0021 Y:009E P:envMxdiZc $82/E2F4 80 04 BRA $04 [$E2FA] A:0011 X:0021 Y:009E P:envMxdizc $82/E2F6 BF 01 D0 7F LDA $7FD001,x[$7F:D042] A:0001 X:0041 Y:00DE P:envMxdizc $82/E2FA 4A LSR A A:0011 X:0021 Y:009E P:envMxdizc $82/E2FB 4A LSR A A:0008 X:0021 Y:009E P:envMxdizC $82/E2FC 4A LSR A A:0004 X:0021 Y:009E P:envMxdizc $82/E2FD 4A LSR A A:0002 X:0021 Y:009E P:envMxdizc $82/E2FE 4A LSR A A:0001 X:0021 Y:009E P:envMxdizc $82/E2FF 85 05 STA $05 [$00:0005] A:0000 X:0021 Y:009E P:envMxdiZC $82/E301 18 CLC A:0000 X:0021 Y:009E P:envMxdiZC $82/E302 65 09 ADC $09 [$00:0009] A:0000 X:0021 Y:009E P:envMxdiZc $82/E304 38 SEC A:001F X:0021 Y:009E P:envMxdizc $82/E305 E5 0D SBC $0D [$00:000D] A:001F X:0021 Y:009E P:envMxdizC $82/E307 F0 08 BEQ $08 [$E311] A:0000 X:0021 Y:009E P:envMxdiZC $82/E309 10 06 BPL $06 [$E311] A:0103 X:0042 Y:011E P:envMxdizC $82/E311 85 03 STA $03 [$00:0003] A:0000 X:0021 Y:009E P:envMxdiZC $82/E313 A5 05 LDA $05 [$00:0005] A:0000 X:0021 Y:009E P:envMxdiZC $82/E315 F0 02 BEQ $02 [$E319] A:0000 X:0021 Y:009E P:envMxdiZC $82/E319 A5 0D LDA $0D [$00:000D] A:0000 X:0021 Y:009E P:envMxdiZC $82/E31B D0 02 BNE $02 [$E31F] A:001F X:0021 Y:009E P:envMxdizC $82/E31D E6 03 INC $03 [$00:0003] A:0300 X:03DE Y:165E P:envMxdiZC $82/E31F 64 02 STZ $02 [$00:0002] A:001F X:0021 Y:009E P:envMxdizC $82/E321 A5 07 LDA $07 [$00:0007] A:001F X:0021 Y:009E P:envMxdizC $82/E323 20 75 E3 JSR $E375 [$82:E375] A:0001 X:0021 Y:009E P:envMxdizC $82/E326 A5 03 LDA $03 [$00:0003] A:0000 X:013C Y:0024 P:envMxdiZc $82/E328 F0 1C BEQ $1C [$E346] A:0000 X:013C Y:0024 P:envMxdiZc $82/E340 E6 02 INC $02 [$00:0002] A:0100 X:033C Y:01F8 P:envMxdiZc $82/E342 C6 03 DEC $03 [$00:0003] A:0100 X:033C Y:01F8 P:envMxdizc $82/E344 D0 EF BNE $EF [$E335] A:0100 X:033C Y:01F8 P:envMxdizc $82/E346 4C 63 E1 JMP $E163 [$82:E163] A:0000 X:013C Y:0024 P:envMxdiZc
$82/E350 ?
Mathematically spoken, the use of this subroutine is
Y = Width of the Map on the NE-SW-Axis + Original X - Original Y + (#$40 * (Original X + Original Y + 1 + $16CC - Step Value per Rhomb))
$09 entry of the $7F/C800 table - Step Value per Rhomb
$0A contains the Original X value
$0B contains the Original Y value
$82/E350 A9 40 LDA #$40 ; Multiply by #$40 $82/E352 8D 02 42 STA $4202 $82/E355 A5 0A LDA $0A [$00:000A] A:0040 X:0021 Y:0001 P:envMxdizc $82/E357 38 SEC A:0001 X:0021 Y:0001 P:envMxdizc $82/E358 65 0B ADC $0B [$00:000B] A:0001 X:0021 Y:0001 P:envMxdizC $82/E35A 6D CC 16 ADC $16CC [$82:16CC] A:0003 X:0021 Y:0001 P:envMxdizc $82/E35D 38 SEC A:0021 X:0021 Y:0001 P:envMxdizc $82/E35E E5 09 SBC $09 [$00:0009] A:0021 X:0021 Y:0001 P:envMxdizC $82/E360 8D 03 42 STA $4203 [$82:4203] A:0002 X:0021 Y:0001 P:envMxdizC $82/E363 18 CLC ; Clear Carry $82/E364 7B TDC ; Clear 16-bit A $82/E365 AD CA 16 LDA $16CA [$82:16CA] A:0000 X:0021 Y:0001 P:envMxdiZc $82/E368 65 0A ADC $0A [$00:000A] A:001F X:0021 Y:0001 P:envMxdizc $82/E36A E5 0B SBC $0B [$00:000B] A:0020 X:0021 Y:0001 P:envMxdizc $82/E36C C2 21 REP #$21 ; 16-bit A, Clear Carry $82/E36E 6D 16 42 ADC $4216 [$82:4216] A:001E X:0021 Y:0001 P:envmxdizc $82/E371 A8 TAY A:009E X:0021 Y:0001 P:envmxdizc $82/E372 E2 20 SEP #$20 ; 8-bit A $82/E374 60 RTS
$82/E375 ?
$82/E375 18 CLC A:0001 X:0021 Y:009E P:envMxdizC $82/E376 65 10 ADC $10 [$00:0010] A:0001 X:0021 Y:009E P:envMxdizc $82/E378 EB XBA A:0001 X:0021 Y:009E P:envMxdizc $82/E379 A5 06 LDA $06 [$00:0006] A:0100 X:0021 Y:009E P:envMxdiZc $82/E37B F0 10 BEQ $10 [$E38D] A:0100 X:0021 Y:009E P:envMxdiZc $82/E37D C6 06 DEC $06 [$00:0006] A:0202 X:00E6 Y:069E P:envMxdizc $82/E37F A9 00 LDA #$00 A:0202 X:00E6 Y:069E P:envMxdizc $82/E381 EB XBA A:0200 X:00E6 Y:069E P:envMxdiZc $82/E382 20 B4 E3 JSR $E3B4 [$82:E3B4] A:0002 X:00E6 Y:069E P:envMxdizc $82/E385 A5 22 LDA $22 [$00:0022] A:06DE X:0D3C Y:0026 P:envMxdizc $82/E387 F0 2A BEQ $2A [$E3B3] A:0600 X:0D3C Y:0026 P:envMxdiZc
$82/E38D A5 22 LDA $22 [$00:0022] A:0100 X:0021 Y:009E P:envMxdiZc $82/E38F F0 10 BEQ $10 [$E3A1] A:0100 X:0021 Y:009E P:envMxdiZc
$82/E3A1 A9 00 LDA #$00 A:0100 X:0021 Y:009E P:envMxdiZc $82/E3A3 EB XBA A:0100 X:0021 Y:009E P:envMxdiZc $82/E3A4 20 13 E4 JSR $E413 [$82:E413] A:0001 X:0021 Y:009E P:envMxdizc $82/E3A7 A5 06 LDA $06 [$00:0006] A:00DE X:013C Y:0024 P:envMxdizc $82/E3A9 F0 02 BEQ $02 [$E3AD] A:0000 X:013C Y:0024 P:envMxdiZc $82/E3AD A5 22 LDA $22 [$00:0022] A:0000 X:013C Y:0024 P:envMxdiZc $82/E3AF F0 02 BEQ $02 [$E3B3] A:0000 X:013C Y:0024 P:envMxdiZc
$82/E3B3 60 RTS A:0000 X:013C Y:0024 P:envMxdiZc
$82/E3B4 ? Tilemap building
$82/E3B4 A6 20 LDX $20 ; Load Map Index $82/E3B6 48 PHA ; ??? Push Original A on Stack $82/E3B7 BF 00 80 7F LDA $7F8000,x[$7F:869E] A:0002 X:069E Y:069E P:envMxdizc $82/E3BB 29 F0 AND #$F0 A:00B0 X:069E Y:069E P:eNvMxdizc $82/E3BD 03 01 ORA $01,s ; Add Original A value to it $82/E3BF 9F 00 80 7F STA $7F8000,x[$7F:869E] A:00B2 X:069E Y:069E P:eNvMxdizc $82/E3C3 A5 0A LDA $0A [$00:000A] A:00B2 X:069E Y:069E P:eNvMxdizc $82/E3C5 9F 00 98 7F STA $7F9800,x[$7F:9E9E] A:0006 X:069E Y:069E P:envMxdizc $82/E3C9 A5 0B LDA $0B [$00:000B] A:0006 X:069E Y:069E P:envMxdizc $82/E3CB 9F 00 B0 7F STA $7FB000,x[$7F:B69E] A:0007 X:069E Y:069E P:envMxdizc $82/E3CF 68 PLA ; Restore Original A $82/E3D0 20 53 E4 JSR $E453 [$82:E453] A:0002 X:069E Y:069E P:envMxdizc $82/E3D3 48 PHA ; Push Double Byte for Tilemap on Stack $82/E3D4 A5 20 LDA $20 ; Load Map Index $82/E3D6 0A ASL A ; Multiply by 2 - has to be double sized for the upcoming Map $82/E3D7 AA TAX ; Transfer in X as Store Index $82/E3D8 68 PLA ; Pull Double Byte for Tilemap back from Stack $82/E3D9 09 00 20 ORA #$2000 ; Add Tile Priority Bit $82/E3DC 9F 00 20 7F STA $7F2000,x ; Store Byte in BG1 Overall Map $82/E3E0 8A TXA ; Transfer Store Index in A $82/E3E1 18 CLC ; Clear Carry so the program doesn't roll in a set bit $82/E3E2 4A LSR A ; Div by 2 to store it back in $20 later $82/E3E3 69 40 00 ADC #$0040 ; Add #$40 - this jumps one line down in the Overall Map $82/E3E6 85 20 STA $20 ; Store back Map Index $82/E3E8 E2 20 SEP #$20 ; A = 16 Bit $82/E3EA 60 RTS
$82/E413 ?
$82/E413 A6 20 LDX $20 ; Load Map Index $82/E415 48 PHA ; ??? Push Original A on Stack $82/E416 BF 00 80 7F LDA $7F8000,x[$7F:809E] A:0001 X:009E Y:009E P:envMxdizc $82/E41A 29 F0 AND #$F0 A:0000 X:009E Y:009E P:envMxdiZc $82/E41C F0 02 BEQ $02 [$E420] A:0000 X:009E Y:009E P:envMxdiZc
- Code is missing here
$82/E420 68 PLA ; ??? Restore Original A $82/E421 48 PHA ; ??? Make a Savety Copy of Original A on Stack $82/E422 0A ASL A A:0001 X:009E Y:009E P:envMxdizc $82/E423 0A ASL A A:0002 X:009E Y:009E P:envMxdizc $82/E424 0A ASL A A:0004 X:009E Y:009E P:envMxdizc $82/E425 0A ASL A A:0008 X:009E Y:009E P:envMxdizc $82/E426 1F 00 80 7F ORA $7F8000,x[$7F:809E] A:0010 X:009E Y:009E P:envMxdizc $82/E42A 9F 00 80 7F STA $7F8000,x[$7F:809E] A:0010 X:009E Y:009E P:envMxdizc $82/E42E 68 PLA ; ??? Restore Original A from Stack $82/E42F 20 53 E4 JSR $E453 [$82:E453] A:0001 X:009E Y:009E P:envMxdizc $82/E432 48 PHA ; Push Map Bytes on Stack $82/E433 A5 20 LDA $20 [$00:0020] A:1020 X:00A4 Y:0024 P:eNvmxdizc $82/E435 0A ASL A ; Multiply by 2 - has to be double sized for the upcoming Map $82/E436 AA TAX $82/E437 68 PLA ; Pull Map Bytes from Stack $82/E438 9F 00 50 7F STA $7F5000,x ; Store Byte in BG2 Overall Map $82/E43C 8A TXA ; Transfer Map Index to A $82/E43D 4A LSR A ; Div by 2 to store it back in $20 later $82/E43E 69 40 00 ADC #$0040 ; Add #$40 - this jumps one line down in the Overall Map $82/E441 85 20 STA $20 ; Store back Map Index $82/E443 E2 20 SEP #$20 ; A = 16 Bit $82/E445 60 RTS
$82/E453 ? Jump Table
$82/E453 8B PHB ; Buffer Data Bank on Stack $82/E454 F4 00 7F PEA $7F00 ; Set Data Bank to $7F $82/E457 AB PLB $82/E458 AB PLB $82/E459 0A ASL A ; Use A as Index for the Jump Table beneath $82/E45A AA TAX $82/E45B 7C 5E E4 JMP ($E45E,x)
$82/E45E ? Jump Table for $82/E453
78 E4 Entry #$00 - 7F E4 Entry #$01 - 8C E4 Entry #$02 - 99 E4 Entry #$03 - A6 E4 Entry #$04 - CD E4 Entry #$05 - DF E4 Entry #$06 - B3 E4 Entry #$07 - C0 E4 Entry #$08 - F1 E4 Entry #$09 - 08 E5 Entry #$0A - 1F E5 Entry #$0B - 46 E5 Entry #$0C -
$82/E47F ? Jump Table Entry #$01
$82/E47F A5 08 LDA $08 [$00:0008] A:0002 X:0002 Y:009E P:envMxdizc $82/E481 0A ASL A A:0003 X:0002 Y:009E P:envMxdizc $82/E482 A8 TAY A:0006 X:0002 Y:009E P:envMxdizc $82/E483 BE 04 00 LDX $0004,y[$7F:000A] A:0006 X:0002 Y:0006 P:envMxdizc $82/E486 BD 00 00 LDA $0000,x[$7F:00A4] A:0006 X:00A4 Y:0006 P:envMxdizc $82/E489 4C 6D E5 JMP $E56D ; Jump Table Entry End 1: Use A * 2 as Load Index for Tilemap Value
$82/E48C ? Jump Table Entry #$02
$82/E48C A5 08 LDA $08 [$00:0008] A:0004 X:0004 Y:069E P:envMxdizc $82/E48E 0A ASL A A:0003 X:0004 Y:069E P:envMxdizc $82/E48F A8 TAY A:0006 X:0004 Y:069E P:envMxdizc $82/E490 BE 04 00 LDX $0004,y[$7F:000A] A:0006 X:0004 Y:0006 P:envMxdizc $82/E493 BD 00 00 LDA $0000,x[$7F:00A4] A:0006 X:00A4 Y:0006 P:envMxdizc $82/E496 4C 75 E5 JMP $E575 ; Jump Table Entry End 2: Use A * 6 as Load Index for Tilemap Value
$82/E499 ? Jump Table Entry #$03
$82/E499 A5 08 LDA $08 [$00:0008] A:0006 X:0006 Y:0094 P:envMxdizc $82/E49B 0A ASL A A:0003 X:0006 Y:0094 P:envMxdizc $82/E49C A8 TAY A:0006 X:0006 Y:0094 P:envMxdizc $82/E49D BE 04 00 LDX $0004,y[$7F:000A] A:0006 X:0006 Y:0006 P:envMxdizc $82/E4A0 BD 01 00 LDA $0001,x[$7F:00A5] A:0006 X:00A4 Y:0006 P:envMxdizc $82/E4A3 4C 6D E5 JMP $E56D ; Jump Table Entry End 1: Use A * 2 as Load Index for Tilemap Value
$82/E4A6 ? Jump Table Entry #$04
$82/E4A6 A5 08 LDA $08 [$00:0008] A:0008 X:0008 Y:0116 P:envMxdizc $82/E4A8 0A ASL A A:0003 X:0008 Y:0116 P:envMxdizc $82/E4A9 A8 TAY A:0006 X:0008 Y:0116 P:envMxdizc $82/E4AA BE 04 00 LDX $0004,y[$7F:000A] A:0006 X:0008 Y:0006 P:envMxdizc $82/E4AD BD 01 00 LDA $0001,x[$7F:00A5] A:0006 X:00A4 Y:0006 P:envMxdizc $82/E4B0 4C 75 E5 JMP $E575 ; Jump Table Entry End 2: Use A * 6 as Load Index for Tilemap Value
$82/E4B3 ? Jump Table Entry #$07
$82/E4B3 A5 08 LDA $08 [$00:0008] A:000E X:000E Y:0170 P:envMxdizc $82/E4B5 0A ASL A A:0006 X:000E Y:0170 P:envMxdizc $82/E4B6 A8 TAY A:000C X:000E Y:0170 P:envMxdizc $82/E4B7 BE 04 00 LDX $0004,y[$7F:0010] A:000C X:000E Y:000C P:envMxdizc $82/E4BA BD 02 00 LDA $0002,x[$7F:0106] A:000C X:0104 Y:000C P:envMxdizc $82/E4BD 4C 6D E5 JMP $E56D ; Jump Table Entry End 1: Use A * 2 as Load Index for Tilemap Value
$82/E4C0 ? Jump Table Entry #$08
$82/E4C0 A5 08 LDA $08 [$00:0008] A:0010 X:0010 Y:0172 P:envMxdizc $82/E4C2 0A ASL A A:0006 X:0010 Y:0172 P:envMxdizc $82/E4C3 A8 TAY A:000C X:0010 Y:0172 P:envMxdizc $82/E4C4 BE 04 00 LDX $0004,y[$7F:0010] A:000C X:0010 Y:000C P:envMxdizc $82/E4C7 BD 02 00 LDA $0002,x[$7F:0106] A:000C X:0104 Y:000C P:envMxdizc $82/E4CA 4C 75 E5 JMP $E575 ; Jump Table Entry End 2: Use A * 6 as Load Index for Tilemap Value
$82/E4CD ? Jump Table Entry #$05
$82/E4CD A5 08 LDA $08 [$00:0008] A:000A X:000A Y:0034 P:envMxdizc $82/E4CF 0A ASL A A:0003 X:000A Y:0034 P:envMxdizc $82/E4D0 AA TAX A:0006 X:000A Y:0034 P:envMxdizc $82/E4D1 A5 02 LDA $02 [$00:0002] A:0006 X:0006 Y:0034 P:envMxdizc $82/E4D3 C2 21 REP #$21 A:0001 X:0006 Y:0034 P:envMxdizc $82/E4D5 7D 04 00 ADC $0004,x[$7F:000A] A:0001 X:0006 Y:0034 P:envmxdizc $82/E4D8 AA TAX A:00A5 X:0006 Y:0034 P:envmxdizc $82/E4D9 BD 02 00 LDA $0002,x[$7F:00A7] A:00A5 X:00A5 Y:0034 P:envmxdizc $82/E4DC 4C 6D E5 JMP $E56D ; Jump Table Entry End 1: Use A * 2 as Load Index for Tilemap Value
$82/E4DF ? Jump Table Entry #$06
$82/E4DF A5 08 LDA $08 [$00:0008] A:000C X:000C Y:0036 P:envMxdizc $82/E4E1 0A ASL A A:0003 X:000C Y:0036 P:envMxdizc $82/E4E2 AA TAX A:0006 X:000C Y:0036 P:envMxdizc $82/E4E3 A5 02 LDA $02 [$00:0002] A:0006 X:0006 Y:0036 P:envMxdizc $82/E4E5 C2 21 REP #$21 A:0001 X:0006 Y:0036 P:envMxdizc $82/E4E7 7D 04 00 ADC $0004,x[$7F:000A] A:0001 X:0006 Y:0036 P:envmxdizc $82/E4EA AA TAX A:00A5 X:0006 Y:0036 P:envmxdizc $82/E4EB BD 02 00 LDA $0002,x[$7F:00A7] A:00A5 X:00A5 Y:0036 P:envmxdizc $82/E4EE 4C 75 E5 JMP $E575 ; Jump Table Entry End 2: Use A * 6 as Load Index for Tilemap Value
$82/E4F1 ? Jump Table Entry #$09
$82/E4F1 A6 0E LDX $0E [$00:000E] A:0012 X:0012 Y:011E P:envMxdizc $82/E4F3 BF FF CF 7F LDA $7FCFFF,x[$7F:D041] A:0012 X:0042 Y:011E P:envMxdizc $82/E4F7 29 1F AND #$1F A:0011 X:0042 Y:011E P:envMxdizc $82/E4F9 C2 20 REP #$20 A:0011 X:0042 Y:011E P:envMxdizc $82/E4FB EB XBA A:0011 X:0042 Y:011E P:envmxdizc $82/E4FC 4A LSR A A:1100 X:0042 Y:011E P:envmxdiZc $82/E4FD 4A LSR A A:0880 X:0042 Y:011E P:envmxdizc $82/E4FE 4A LSR A A:0440 X:0042 Y:011E P:envmxdizc $82/E4FF E2 20 SEP #$20 A:0220 X:0042 Y:011E P:envmxdizc $82/E501 05 08 ORA $08 [$00:0008] A:0220 X:0042 Y:011E P:envMxdizc $82/E503 A8 TAY A:0223 X:0042 Y:011E P:envMxdizc $82/E504 B1 A6 LDA ($A6),y[$7F:0667] A:0223 X:0042 Y:0223 P:envMxdizc $82/E506 80 65 BRA $65 ; [$E56D] Jump Table Entry End 1: Use A * 2 as Load Index for Tilemap Value
$82/E508 ? Jump Table Entry #$0A
$82/E508 A6 0E LDX $0E [$00:000E] A:0014 X:0014 Y:00DE P:envMxdizc $82/E50A BF E0 CF 7F LDA $7FCFE0,x[$7F:D021] A:0014 X:0041 Y:00DE P:envMxdizc $82/E50E 29 1F AND #$1F A:0003 X:0041 Y:00DE P:envMxdizc $82/E510 C2 20 REP #$20 A:0003 X:0041 Y:00DE P:envMxdizc $82/E512 EB XBA A:0003 X:0041 Y:00DE P:envmxdizc $82/E513 4A LSR A A:0300 X:0041 Y:00DE P:envmxdiZc $82/E514 4A LSR A A:0180 X:0041 Y:00DE P:envmxdizc $82/E515 4A LSR A A:00C0 X:0041 Y:00DE P:envmxdizc $82/E516 E2 20 SEP #$20 A:0060 X:0041 Y:00DE P:envmxdizc $82/E518 05 08 ORA $08 [$00:0008] A:0060 X:0041 Y:00DE P:envMxdizc $82/E51A A8 TAY A:0071 X:0041 Y:00DE P:envMxdizc $82/E51B B1 A6 LDA ($A6),y[$7F:04B5] A:0071 X:0041 Y:0071 P:envMxdizc $82/E51D 80 56 BRA $56 ; [$E575] Jump Table Entry End 2: Use A * 6 as Load Index for Tilemap Value
$82/E51F ? Jump Table Entry #$0B
$82/E51F A6 0E LDX $0E [$00:000E] A:0016 X:0016 Y:029E P:envMxdizc $82/E521 18 CLC A:0016 X:0063 Y:029E P:envMxdizc $82/E522 BF FF C7 7F LDA $7FC7FF,x ; Load value from Step Map $82/E526 FF 00 C8 7F SBC $7FC800,x ; Subtract value from the rhomb next to it $82/E52A 0A ASL A A:0000 X:0063 Y:029E P:envMxdiZC $82/E52B A8 TAY A:0000 X:0063 Y:029E P:envMxdiZc $82/E52C BF FF D3 7F LDA $7FD3FF,x ; Load value from "Object" Map $82/E530 29 1F AND #$1F A:0003 X:0063 Y:0000 P:envMxdizc $82/E532 0A ASL A A:0003 X:0063 Y:0000 P:envMxdizc $82/E533 C2 21 REP #$21 ; A = 16-bit, Clear Carry $82/E535 71 A8 ADC ($A8),y[$7F:0844] A:0006 X:0063 Y:0000 P:envmxdizc $82/E537 A8 TAY A:0886 X:0063 Y:0000 P:envmxdizc $82/E538 A5 08 LDA $08 [$00:0008] A:0886 X:0063 Y:0886 P:envmxdizc $82/E53A 29 FF 00 AND #$00FF A:1B05 X:0063 Y:0886 P:envmxdizc $82/E53D 79 00 00 ADC $0000,y[$7F:0886] A:0005 X:0063 Y:0886 P:envmxdizc $82/E540 A8 TAY A:09C5 X:0063 Y:0886 P:envmxdizc $82/E541 B9 00 00 LDA $0000,y[$7F:09C5] A:09C5 X:0063 Y:09C5 P:envmxdizc $82/E544 80 27 BRA $27 ; [$E56D] Jump Table Entry End 1: Use A * 2 as Load Index for Tilemap Value
$82/E56D Jump Table Entry End 1: Use A * 2 as Load Index for Tilemap Value
$82/E56D C2 20 REP #$20 ; A = 16 bit $82/E56F 29 FF 00 AND #$00FF ; Remove Upper Byte of A $82/E572 0A ASL A ; Multiply A by 2 $82/E573 80 07 BRA $07 ; [$E57C] Do the rest like below
$82/E575 Jump Table Entry End 2: Use A * 6 as Load Index for Tilemap Value
This is one of two ways how the Jump Table Entries from above can end
$82/E575 C2 20 REP #$20 ; A = 16 bit $82/E577 29 FF 00 AND #$00FF ; Remove Upper Byte of A $82/E57A 0A ASL A ; Multiply A by 6 $82/E57B 1A INC A $82/E57C 0A ASL A $82/E57D A8 TAY ; Transfer A in Y as Load Index $82/E57E B1 AA LDA ($AA),y ; Load Value for Tilemap $82/E580 AB PLB ; Restore Original Data Bank $82/E581 60 RTS
$82/EB6B Set BG1/2 Scroll Registers
$82/EB6B AE B1 05 LDX $05B1 ; Update BG1 H-Scroll Register Buffer $82/EB6E 8E 91 05 STX $0591 $82/EB71 AE B3 05 LDX $05B3 ; Update BG1 V-Scroll Register Buffer $82/EB74 8E 93 05 STX $0593 $82/EB77 AE B5 05 LDX $05B5 ; Update BG2 H-Scroll Register Buffer $82/EB7A 8E 95 05 STX $0595 $82/EB7D AE B7 05 LDX $05B7 ; Update BG2 V-Scroll Register Buffer $82/EB80 8E 97 05 STX $0597 $82/EB83 60 RTS
$82/EB84 ?
$82/EB84 A0 00 00 LDY #$0000 A:0780 X:0000 Y:5800 P:eNvMxdizc $82/EB87 8C DC 16 STY $16DC [$82:16DC] A:0780 X:0000 Y:0000 P:envMxdiZc $82/EB8A 8C E0 16 STY $16E0 [$82:16E0] A:0780 X:0000 Y:0000 P:envMxdiZc $82/EB8D 8C E4 16 STY $16E4 [$82:16E4] A:0780 X:0000 Y:0000 P:envMxdiZc $82/EB90 8C E8 16 STY $16E8 [$82:16E8] A:0780 X:0000 Y:0000 P:envMxdiZc $82/EB93 88 DEY A:0780 X:0000 Y:0000 P:envMxdiZc $82/EB94 8C DA 16 STY $16DA [$82:16DA] A:0780 X:0000 Y:FFFF P:eNvMxdizc $82/EB97 8C DE 16 STY $16DE [$82:16DE] A:0780 X:0000 Y:FFFF P:eNvMxdizc $82/EB9A 8C E2 16 STY $16E2 [$82:16E2] A:0780 X:0000 Y:FFFF P:eNvMxdizc $82/EB9D 8C E6 16 STY $16E6 [$82:16E6] A:0780 X:0000 Y:FFFF P:eNvMxdizc $82/EBA0 6B RTL A:0780 X:0000 Y:FFFF P:eNvMxdizc
$82/EBA5 ?
$82/EBA5 C2 20 REP #$20 ; A = 16-bit $82/EBA7 AD DC 16 LDA $16DC [$82:16DC] A:0008 X:002E Y:0026 P:envmxdiZC $82/EBAA 38 SEC A:0000 X:002E Y:0026 P:envmxdiZC $82/EBAB ED DA 16 SBC $16DA [$82:16DA] A:0000 X:002E Y:0026 P:envmxdiZC $82/EBAE 90 31 BCC $31 [$EBE1] A:0001 X:002E Y:0026 P:envmxdizc
- code is missing here
$82/EBE1 AD E4 16 LDA $16E4 [$82:16E4] A:0001 X:002E Y:0026 P:envmxdizc $82/EBE4 38 SEC A:0022 X:002E Y:0026 P:envmxdizc $82/EBE5 ED E2 16 SBC $16E2 [$82:16E2] A:0022 X:002E Y:0026 P:envmxdizC $82/EBE8 90 2F BCC $2F ; [$EC19] Exit $82/EBEA 85 00 STA $00 [$00:0000] A:0014 X:002E Y:0026 P:envmxdizC $82/EBEC AD E8 16 LDA $16E8 [$82:16E8] A:0014 X:002E Y:0026 P:envmxdizC $82/EBEF 38 SEC A:0900 X:002E Y:0026 P:envmxdizC $82/EBF0 ED E6 16 SBC $16E6 [$82:16E6] A:0900 X:002E Y:0026 P:envmxdizC $82/EBF3 0A ASL A A:0580 X:002E Y:0026 P:envmxdizC $82/EBF4 EB XBA A:0B00 X:002E Y:0026 P:envmxdizc $82/EBF5 85 02 STA $02 [$00:0002] A:000B X:002E Y:0026 P:envmxdizc $82/EBF7 AD E2 16 LDA $16E2 [$82:16E2] A:000B X:002E Y:0026 P:envmxdizc $82/EBFA 29 7F 00 AND #$007F A:000E X:002E Y:0026 P:envmxdizc $82/EBFD 0A ASL A A:000E X:002E Y:0026 P:envmxdizc $82/EBFE 0A ASL A A:001C X:002E Y:0026 P:envmxdizc $82/EBFF 0A ASL A A:0038 X:002E Y:0026 P:envmxdizc $82/EC00 85 04 STA $04 [$00:0004] A:0070 X:002E Y:0026 P:envmxdizc $82/EC02 AD E6 16 LDA $16E6 [$82:16E6] A:0070 X:002E Y:0026 P:envmxdizc $82/EC05 29 80 3F AND #$3F80 A:0380 X:002E Y:0026 P:envmxdizc $82/EC08 4A LSR A A:0380 X:002E Y:0026 P:envmxdizc $82/EC09 4A LSR A A:01C0 X:002E Y:0026 P:envmxdizc $82/EC0A 4A LSR A A:00E0 X:002E Y:0026 P:envmxdizc $82/EC0B 4A LSR A A:0070 X:002E Y:0026 P:envmxdizc $82/EC0C 85 06 STA $06 [$00:0006] A:0038 X:002E Y:0026 P:envmxdizc $82/EC0E E2 20 SEP #$20 ; A = 8-bit $82/EC10 A9 02 LDA #$02 A:0038 X:002E Y:0026 P:envMxdizc $82/EC12 20 04 F1 JSR $F104 [$82:F104] A:0002 X:002E Y:0026 P:envMxdizc $82/EC15 22 8A A1 80 JSL $80A18A ; Wait for NMI $82/EC19 E2 20 SEP #$20 ; A = 8-bit $82/EC1B 60 RTS
$82/F0FC ?
$82/F0FC 8B PHB ; Buffer Program Bank $82/F0FD 4B PHK ; Set Program Bank to $82 $82/F0FE AB PLB $82/F0FF 20 04 F1 JSR $F104 [$82:F104] A:0003 X:00DF Y:0060 P:eNvMxdizC $82/F102 AB PLB ; Restore Program Bank $82/F103 6B RTL
$82/F104 ?
$82/F104 48 PHA A:0003 X:00DF Y:0060 P:eNvMxdizC $82/F105 A5 00 LDA $00 [$00:0000] A:0003 X:00DF Y:0060 P:eNvMxdizC $82/F107 C5 02 CMP $02 [$00:0002] A:0001 X:00DF Y:0060 P:envMxdizC $82/F109 68 PLA A:0001 X:00DF Y:0060 P:eNvMxdizc $82/F10A 90 05 BCC $05 [$F111] A:0003 X:00DF Y:0060 P:envMxdizc
- Code is missing here
$82/F10F 80 03 BRA $03 ; [$F114] Exit $82/F111 20 AD F2 JSR $F2AD [$82:F2AD] A:0003 X:00DF Y:0060 P:envMxdizc $82/F114 60 RTS A:0038 X:0006 Y:781B P:envMxdiZc
$82/F115 ? Build and transfer BG1 Tilemap
$04 = Used to find the address from where to load data of the whole BG1 map
$06 = Used to find the address from where to load data of the whole BG1 map
$08 = number of Tiles to build in BG1 tilemap, first part
$09 = number of Tiles to build in BG1 tilemap, second part
$16D6 = Store Index for BG1 Tilemap buffer
$82/F115 64 01 STZ $01 [$00:0001] A:1003 X:01A0 Y:0110 P:envMxdizC $82/F117 64 03 STZ $03 [$00:0003] A:1003 X:01A0 Y:0110 P:envMxdizC $82/F119 85 0F STA $0F [$00:000F] A:1003 X:01A0 Y:0110 P:envMxdizC $82/F11B A9 80 LDA #$80 A:1003 X:01A0 Y:0110 P:envMxdizC $82/F11D 85 0E STA $0E [$00:000E] A:1080 X:01A0 Y:0110 P:eNvMxdizC $82/F11F C2 20 REP #$20 ; A = 16-bit $82/F121 A5 06 LDA $06 [$00:0006] A:1080 X:01A0 Y:0110 P:eNvmxdizC $82/F123 29 F8 FF AND #$FFF8 A:0110 X:01A0 Y:0110 P:envmxdizC $82/F126 0A ASL A A:0110 X:01A0 Y:0110 P:envmxdizC $82/F127 0A ASL A A:0220 X:01A0 Y:0110 P:envmxdizc $82/F128 0A ASL A A:0440 X:01A0 Y:0110 P:envmxdizc $82/F129 0A ASL A A:0880 X:01A0 Y:0110 P:envmxdizc $82/F12A 85 06 STA $06 [$00:0006] A:1100 X:01A0 Y:0110 P:envmxdizc $82/F12C A5 04 LDA $04 [$00:0004] A:1100 X:01A0 Y:0110 P:envmxdizc $82/F12E 4A LSR A A:01A0 X:01A0 Y:0110 P:envmxdizc $82/F12F 4A LSR A A:00D0 X:01A0 Y:0110 P:envmxdizc $82/F130 4A LSR A A:0068 X:01A0 Y:0110 P:envmxdizc $82/F131 85 04 STA $04 [$00:0004] A:0034 X:01A0 Y:0110 P:envmxdizc $82/F133 E2 20 SEP #$20 A:0034 X:01A0 Y:0110 P:envmxdizc $82/F135 29 1F AND #$1F A:0034 X:01A0 Y:0110 P:envMxdizc $82/F137 18 CLC A:0014 X:01A0 Y:0110 P:envMxdizc $82/F138 65 00 ADC $00 [$00:0000] A:0014 X:01A0 Y:0110 P:envMxdizc $82/F13A C9 21 CMP #$21 A:0034 X:01A0 Y:0110 P:envMxdizc $82/F13C 90 0C BCC $0C [$F14A] A:0034 X:01A0 Y:0110 P:envMxdizC $82/F13E E9 20 SBC #$20 A:0034 X:01A0 Y:0110 P:envMxdizC $82/F140 85 09 STA $09 [$00:0009] A:0014 X:01A0 Y:0110 P:envMxdizC $82/F142 A5 00 LDA $00 [$00:0000] A:0014 X:01A0 Y:0110 P:envMxdizC $82/F144 E5 09 SBC $09 [$00:0009] A:0020 X:01A0 Y:0110 P:envMxdizC $82/F146 85 08 STA $08 [$00:0008] A:000C X:01A0 Y:0110 P:envMxdizC $82/F148 80 06 BRA $06 [$F150] A:000C X:01A0 Y:0110 P:envMxdizC
- code is missing here
$82/F150 A5 0F LDA $0F [$00:000F] A:000C X:01A0 Y:0110 P:envMxdizC $82/F152 89 01 BIT #$01 A:0003 X:01A0 Y:0110 P:envMxdizC $82/F154 D0 03 BNE $03 [$F159] A:0003 X:01A0 Y:0110 P:envMxdizC
- code is missing here
$82/F159 A9 7F LDA #$7F ; Set up $7F/2000 in $20-2 $82/F15B 85 22 STA $22 ; (Address of the whole BG1 map for the TM buffer building subroutines) $82/F15D A2 00 20 LDX #$2000 $82/F160 86 20 STX $20 $82/F162 C2 20 REP #$20 ; A = 16-bit $82/F164 D4 02 PEI ($02) ; Buffer $02/3 and $06/7 on Stack $82/F166 D4 06 PEI ($06) $82/F168 AE D6 16 LDX $16D6 [$82:16D6] A:007F X:2000 Y:0110 P:envmxdizC $82/F16B A5 06 LDA $06 [$00:0006] A:007F X:0000 Y:0110 P:envmxdiZC $82/F16D C9 00 30 CMP #$3000 A:1100 X:0000 Y:0110 P:envmxdizC $82/F170 90 07 BCC $07 [$F179] A:1100 X:0000 Y:0110 P:eNvmxdizc
- code is missing here
$82/F179 A5 04 LDA $04 [$00:0004] A:1100 X:0000 Y:0110 P:eNvmxdizc $82/F17B C9 80 00 CMP #$0080 A:0034 X:0000 Y:0110 P:envmxdizc $82/F17E B0 0A BCS $0A [$F18A] A:0034 X:0000 Y:0110 P:eNvmxdizc $82/F180 05 06 ORA $06 [$00:0006] A:0034 X:0000 Y:0110 P:eNvmxdizc $82/F182 A8 TAY ; Use as Load Index for whole BG1 map $82/F183 A5 08 LDA $08 ; Load number of Tiles to build in BG1 Tilemap buffer $82/F185 20 CB F6 JSR $F6CB ; Build BG1 Tilemap in Buffer $82/F188 80 09 BRA $09 [$F193] A:0281 X:0018 Y:1140 P:envmxdiZc
- code is missing here
$82/F193 A5 09 LDA $09 [$00:0009] A:0281 X:0018 Y:1140 P:envmxdiZc $82/F195 29 FF 00 AND #$00FF A:0014 X:0018 Y:1140 P:envmxdizc $82/F198 F0 21 BEQ $21 [$F1BB] A:0014 X:0018 Y:1140 P:envmxdizc $82/F19A A5 04 LDA $04 [$00:0004] A:0014 X:0018 Y:1140 P:envmxdizc $82/F19C 18 CLC A:0034 X:0018 Y:1140 P:envmxdizc $82/F19D 69 20 00 ADC #$0020 A:0034 X:0018 Y:1140 P:envmxdizc $82/F1A0 29 E0 1F AND #$1FE0 A:0054 X:0018 Y:1140 P:envmxdizc $82/F1A3 C9 80 00 CMP #$0080 A:0040 X:0018 Y:1140 P:envmxdizc $82/F1A6 B0 0A BCS $0A [$F1B2] A:0040 X:0018 Y:1140 P:eNvmxdizc $82/F1A8 05 06 ORA $06 [$00:0006] A:0040 X:0018 Y:1140 P:eNvmxdizc $82/F1AA A8 TAY ; Use as Load Index for whole BG1 map $82/F1AB A5 09 LDA $09 ; Load number of Tiles to build in BG1 Tilemap buffer $82/F1AD 20 CB F6 JSR $F6CB ; Build BG1 Tilemap in Buffer $82/F1B0 80 09 BRA $09 [$F1BB] A:0281 X:0040 Y:1154 P:envmxdiZc
- code is missing here
$82/F1BB A2 00 00 LDX #$0000 A:0281 X:0040 Y:1154 P:envmxdiZc $82/F1BE A5 04 LDA $04 [$00:0004] A:0281 X:0000 Y:1154 P:envmxdiZc $82/F1C0 89 20 00 BIT #$0020 A:0034 X:0000 Y:1154 P:envmxdizc $82/F1C3 F0 03 BEQ $03 [$F1C8] A:0034 X:0000 Y:1154 P:envmxdizc $82/F1C5 A2 00 04 LDX #$0400 A:0034 X:0000 Y:1154 P:envmxdizc $82/F1C8 86 0A STX $0A [$00:000A] A:0034 X:0400 Y:1154 P:envmxdizc $82/F1CA 29 1F 00 AND #$001F A:0034 X:0400 Y:1154 P:envmxdizc $82/F1CD 04 0A TSB $0A [$00:000A] A:0014 X:0400 Y:1154 P:envmxdizc $82/F1CF A5 06 LDA $06 [$00:0006] A:0014 X:0400 Y:1154 P:envmxdiZc $82/F1D1 4A LSR A A:1100 X:0400 Y:1154 P:envmxdizc $82/F1D2 4A LSR A A:0880 X:0400 Y:1154 P:envmxdizc $82/F1D3 29 E0 03 AND #$03E0 A:0440 X:0400 Y:1154 P:envmxdizc $82/F1D6 04 0A TSB $0A [$00:000A] A:0040 X:0400 Y:1154 P:envmxdizc $82/F1D8 A5 08 LDA $08 [$00:0008] A:0040 X:0400 Y:1154 P:envmxdiZc $82/F1DA 20 C5 F7 JSR $F7C5 ; Transfer Buffered BG1 Tilemap into VRAM $82/F1DD A5 0A LDA $0A [$00:000A] A:0018 X:0018 Y:7454 P:envmxdizc $82/F1DF 29 E0 07 AND #$07E0 A:0454 X:0018 Y:7454 P:envmxdizc $82/F1E2 49 00 04 EOR #$0400 A:0440 X:0018 Y:7454 P:envmxdizc $82/F1E5 85 0A STA $0A [$00:000A] A:0040 X:0018 Y:7454 P:envmxdizc $82/F1E7 A5 09 LDA $09 [$00:0009] A:0040 X:0018 Y:7454 P:envmxdizc $82/F1E9 20 C5 F7 JSR $F7C5 ; Transfer Buffered BG1 Tilemap into VRAM $82/F1EC C6 02 DEC $02 [$00:0002] A:0040 X:0028 Y:7040 P:envmxdizc $82/F1EE F0 0B BEQ $0B [$F1FB] A:0040 X:0028 Y:7040 P:envmxdizc $82/F1F0 A5 06 LDA $06 [$00:0006] A:0040 X:0028 Y:7040 P:envmxdizc $82/F1F2 18 CLC A:1100 X:0028 Y:7040 P:envmxdizc $82/F1F3 69 80 00 ADC #$0080 A:1100 X:0028 Y:7040 P:envmxdizc $82/F1F6 85 06 STA $06 [$00:0006] A:1180 X:0028 Y:7040 P:envmxdizc $82/F1F8 4C 68 F1 JMP $F168 [$82:F168] A:1180 X:0028 Y:7040 P:envmxdizc $82/F1FB FA PLX ; Restore $06/7 and $02/3 from Stack $82/F1FC 86 06 STX $06 $82/F1FE FA PLX $82/F1FF 86 02 STX $02 $82/F201 E2 20 SEP #$20 A:0700 X:001C Y:73A0 P:envmxdizc $82/F203 A5 0F LDA $0F [$00:000F] A:0700 X:001C Y:73A0 P:envMxdizc $82/F205 89 02 BIT #$02 A:0703 X:001C Y:73A0 P:envMxdizc $82/F207 D0 03 BNE $03 [$F20C] A:0703 X:001C Y:73A0 P:envMxdizc
- code is missing here
$82/F20C A9 7F LDA #$7F ; (Setting up 24-bit address $7F/5000 in $20-2) $82/F20E 85 22 STA $22 $82/F210 A2 00 50 LDX #$5000 $82/F213 86 20 STX $20 $82/F215 C2 20 REP #$20 A:077F X:5000 Y:73A0 P:envMxdizc $82/F217 AE D8 16 LDX $16D8 [$82:16D8] A:077F X:5000 Y:73A0 P:envmxdizc $82/F21A A5 06 LDA $06 [$00:0006] A:077F X:0000 Y:73A0 P:envmxdiZc $82/F21C C9 00 30 CMP #$3000 A:1100 X:0000 Y:73A0 P:envmxdizc $82/F21F 90 07 BCC $07 [$F228] A:1100 X:0000 Y:73A0 P:eNvmxdizc
- code is missing here
$82/F228 A5 04 LDA $04 [$00:0004] A:1100 X:0000 Y:73A0 P:eNvmxdizc $82/F22A C9 80 00 CMP #$0080 A:0034 X:0000 Y:73A0 P:envmxdizc $82/F22D B0 0A BCS $0A [$F239] A:0034 X:0000 Y:73A0 P:eNvmxdizc $82/F22F 05 06 ORA $06 [$00:0006] A:0034 X:0000 Y:73A0 P:eNvmxdizc $82/F231 A8 TAY A:1134 X:0000 Y:73A0 P:envmxdizc $82/F232 A5 08 LDA $08 [$00:0008] A:1134 X:0000 Y:1134 P:envmxdizc $82/F234 20 14 F7 JSR $F714 ; Build BG2 Tilemap in Buffer $82/F237 80 09 BRA $09 [$F242] A:1131 X:0018 Y:1140 P:envmxdiZc
- code is missing here
$82/F242 A5 09 LDA $09 [$00:0009] A:1131 X:0018 Y:1140 P:envmxdiZc $82/F244 29 FF 00 AND #$00FF A:0014 X:0018 Y:1140 P:envmxdizc $82/F247 F0 21 BEQ $21 [$F26A] A:0014 X:0018 Y:1140 P:envmxdizc $82/F249 A5 04 LDA $04 [$00:0004] A:0014 X:0018 Y:1140 P:envmxdizc $82/F24B 18 CLC A:0034 X:0018 Y:1140 P:envmxdizc $82/F24C 69 20 00 ADC #$0020 A:0034 X:0018 Y:1140 P:envmxdizc $82/F24F 29 E0 1F AND #$1FE0 A:0054 X:0018 Y:1140 P:envmxdizc $82/F252 C9 80 00 CMP #$0080 A:0040 X:0018 Y:1140 P:envmxdizc $82/F255 B0 0A BCS $0A [$F261] A:0040 X:0018 Y:1140 P:eNvmxdizc $82/F257 05 06 ORA $06 [$00:0006] A:0040 X:0018 Y:1140 P:eNvmxdizc $82/F259 A8 TAY A:1140 X:0018 Y:1140 P:envmxdizc $82/F25A A5 09 LDA $09 [$00:0009] A:1140 X:0018 Y:1140 P:envmxdizc $82/F25C 20 14 F7 JSR $F714 ; Build BG2 Tilemap in Buffer $82/F25F 80 09 BRA $09 [$F26A] A:103B X:0040 Y:1154 P:envmxdiZc
- code is missing here
$82/F26A A2 00 00 LDX #$0000 A:103B X:0040 Y:1154 P:envmxdiZc $82/F26D A5 04 LDA $04 [$00:0004] A:103B X:0000 Y:1154 P:envmxdiZc $82/F26F 89 20 00 BIT #$0020 A:0034 X:0000 Y:1154 P:envmxdizc $82/F272 F0 03 BEQ $03 [$F277] A:0034 X:0000 Y:1154 P:envmxdizc $82/F274 A2 00 04 LDX #$0400 A:0034 X:0000 Y:1154 P:envmxdizc $82/F277 86 0A STX $0A [$00:000A] A:0034 X:0400 Y:1154 P:envmxdizc $82/F279 29 1F 00 AND #$001F A:0034 X:0400 Y:1154 P:envmxdizc $82/F27C 04 0A TSB $0A [$00:000A] A:0014 X:0400 Y:1154 P:envmxdizc $82/F27E A5 06 LDA $06 [$00:0006] A:0014 X:0400 Y:1154 P:envmxdiZc $82/F280 4A LSR A A:1100 X:0400 Y:1154 P:envmxdizc $82/F281 4A LSR A A:0880 X:0400 Y:1154 P:envmxdizc $82/F282 29 E0 03 AND #$03E0 A:0440 X:0400 Y:1154 P:envmxdizc $82/F285 04 0A TSB $0A [$00:000A] A:0040 X:0400 Y:1154 P:envmxdizc $82/F287 A5 08 LDA $08 [$00:0008] A:0040 X:0400 Y:1154 P:envmxdiZc $82/F289 20 10 F8 JSR $F810 ; Transfer Buffered BG2 Tilemap into VRAM $82/F28C A5 0A LDA $0A [$00:000A] A:0018 X:0018 Y:7C54 P:envmxdizc $82/F28E 29 E0 07 AND #$07E0 A:0454 X:0018 Y:7C54 P:envmxdizc $82/F291 49 00 04 EOR #$0400 A:0440 X:0018 Y:7C54 P:envmxdizc $82/F294 85 0A STA $0A [$00:000A] A:0040 X:0018 Y:7C54 P:envmxdizc $82/F296 A5 09 LDA $09 [$00:0009] A:0040 X:0018 Y:7C54 P:envmxdizc $82/F298 20 10 F8 JSR $F810 ; Transfer Buffered BG2 Tilemap into VRAM $82/F29B C6 02 DEC $02 ; ($02 = Loop counter?) $82/F29D F0 0B BEQ $0B ; [$F2AA] Exit if 0 $82/F29F A5 06 LDA $06 [$00:0006] A:0040 X:0028 Y:7840 P:envmxdizc $82/F2A1 18 CLC A:1100 X:0028 Y:7840 P:envmxdizc $82/F2A2 69 80 00 ADC #$0080 A:1100 X:0028 Y:7840 P:envmxdizc $82/F2A5 85 06 STA $06 [$00:0006] A:1180 X:0028 Y:7840 P:envmxdizc $82/F2A7 4C 17 F2 JMP $F217 [$82:F217] A:1180 X:0028 Y:7840 P:envmxdizc $82/F2AA E2 20 SEP #$20 ; A = 8-bit $82/F2AC 60 RTS
$82/F2AD ?
When this subroutine is called, $04/5 contain a copy of the BG1 H-Scroll value and $06/7 contain a copy of the BG1 V-Scroll value.
$00 and $02 contain 8-bit values that seem to be rhomb related(?). A contains an additional value of unknown sort.
- Just a quick note, because I'm not sure about this, so I can't explain that whole stuff correctly, wholely and completely convinced: that "subtract #$20" stuff seems to be related to "do more than one row". If that value is higher than #$20, its more than one row, and so it has to subtract that #$20 and make a mark somewhere that it has more to do. Or something
$82/F2AD 64 01 STZ $01 [$00:0001] A:0003 X:00DF Y:0060 P:envMxdizc $82/F2AF 64 03 STZ $03 ; ??? $82/F2B1 85 0F STA $0F ; Buffer Original A in $0F $82/F2B3 A9 81 LDA #$81 A:0003 X:00DF Y:0060 P:envMxdizc $82/F2B5 85 0E STA $0E [$00:000E] A:0081 X:00DF Y:0060 P:eNvMxdizc $82/F2B7 C2 20 REP #$20 A:0081 X:00DF Y:0060 P:eNvMxdizc $82/F2B9 A5 04 LDA $04 ; Load BG1-H-Scroll Value Copy $82/F2BB 4A LSR A ; Divide it by 8 $82/F2BC 4A LSR A $82/F2BD 4A LSR A $82/F2BE 85 04 STA $04 ; Store it back $82/F2C0 A5 06 LDA $06 ; Load BG1-V-Scroll Value Copy $82/F2C2 A8 TAY ; Transfer it as it is in Y $82/F2C3 29 F8 FF AND #$FFF8 ; Remove the lowest three bits $82/F2C6 0A ASL A ; Multiply it by #$10 $82/F2C7 0A ASL A $82/F2C8 0A ASL A $82/F2C9 0A ASL A $82/F2CA 85 06 STA $06 ; Store it back in $06/7 $82/F2CC E2 20 SEP #$20 ; 8-bit A $82/F2CE 98 TYA ; Transfer the Low Byte of BG1-V-Scroll Value Copy in A $82/F2CF 4A LSR A ; Divide it by 8 $82/F2D0 4A LSR A $82/F2D1 4A LSR A $82/F2D2 29 1F AND #$1F ; ??? Unnecessary? $82/F2D4 18 CLC A:060C X:00DF Y:0060 P:envMxdizc $82/F2D5 65 02 ADC $02 [$00:0002] A:060C X:00DF Y:0060 P:envMxdizc $82/F2D7 C9 21 CMP #$21 ; Check if the value is less than #$21 $82/F2D9 90 0C BCC $0C ; [$F2E7] Branch if it is $82/F2DB E9 20 SBC #$20 ; *** See note above *** $82/F2DD 85 09 STA $09 [$00:0009] A:0608 X:00DF Y:0060 P:envMxdizC $82/F2DF A5 02 LDA $02 [$00:0002] A:0608 X:00DF Y:0060 P:envMxdizC $82/F2E1 E5 09 SBC $09 [$00:0009] A:061C X:00DF Y:0060 P:envMxdizC $82/F2E3 85 08 STA $08 [$00:0008] A:0614 X:00DF Y:0060 P:envMxdizC $82/F2E5 80 06 BRA $06 [$F2ED] A:0614 X:00DF Y:0060 P:envMxdizC
- Code is missing here
$82/F2ED A5 0F LDA $0F [$00:000F] A:0614 X:00DF Y:0060 P:envMxdizC $82/F2EF 89 01 BIT #$01 A:0603 X:00DF Y:0060 P:envMxdizC $82/F2F1 D0 03 BNE $03 [$F2F6] A:0603 X:00DF Y:0060 P:envMxdizC
- Code is missing here
$82/F2F6 A9 7F LDA #$7F ; Set up $7F/2000 in $20-22 (Address of the BG1 Tilemap) $82/F2F8 85 22 STA $22 $82/F2FA A2 00 20 LDX #$2000 $82/F2FD 86 20 STX $20 $82/F2FF C2 20 REP #$20 ; 16-bit A $82/F301 D4 00 PEI ($00) ; Buffer $00/1/4/5 on Stack $82/F303 D4 04 PEI ($04) $82/F305 AE D6 16 LDX $16D6 ; Write Index on Battle BG1 Tilemap $82/F308 A5 04 LDA $04 ; Load cut-down H-Scroll value $82/F30A C9 80 00 CMP #$0080 ; Check if the Original HScroll is #$200 or more - Screen Maximum $82/F30D 90 08 BCC $08 ; [$F317] Branch if Original HScroll is less than #$200
- Code is missing here
$82/F317 A5 06 LDA $06 ; Load multiplied V-Scroll value $82/F319 C9 00 30 CMP #$3000 ; Check if the Original V-Scroll is #$300 or more (more than screen Maximum) $82/F31C B0 0A BCS $0A ; [$F328] Branch if it is $82/F31E 05 04 ORA $04 ; Put the transformed H/VScroll-values together $82/F320 A8 TAY A:061B X:0000 Y:0060 P:envmxdizc $82/F321 A5 08 LDA $08 ; Load Number of Double-Bytes to transfer $82/F323 20 5D F7 JSR $F75D ; Update BG1 Tilemap Buffer (from Scrolling?) $82/F326 80 09 BRA $09 [$F331] A:101A X:0028 Y:101A P:envmxdiZc
- Code is missing here
$82/F331 A5 09 LDA $09 [$00:0009] A:101A X:0028 Y:101A P:envmxdiZc $82/F333 29 FF 00 AND #$00FF A:0008 X:0028 Y:101A P:envmxdizc $82/F336 F0 21 BEQ $21 [$F359] A:0008 X:0028 Y:101A P:envmxdizc $82/F338 A5 06 LDA $06 ; Load multiplied V-Scroll value $82/F33A 29 00 F0 AND #$F000 ; Remove everything but bits 0000.xxxx.000.0000 of the Original value $82/F33D 18 CLC A:0000 X:0028 Y:101A P:envmxdiZc $82/F33E 69 00 10 ADC #$1000 A:0000 X:0028 Y:101A P:envmxdiZc $82/F341 C9 00 30 CMP #$3000 ; Check if the Original V-Scroll value is #$200 or higher $82/F344 B0 0A BCS $0A ; [$F350] Branch if it is $82/F346 05 04 ORA $04 [$00:0004] A:1000 X:0028 Y:101A P:eNvmxdizc $82/F348 A8 TAY A:101B X:0028 Y:101A P:envmxdizc $82/F349 A5 09 LDA $09 ; Load Number of Double-Bytes to transfer $82/F34B 20 5D F7 JSR $F75D ; Update BG1 Tilemap Buffer (from Scrolling?) $82/F34E 80 09 BRA $09 [$F359] A:141A X:0038 Y:141A P:envmxdiZc
- Code is missing here
$82/F359 A2 00 00 LDX #$0000 A:141A X:0038 Y:141A P:envmxdiZc $82/F35C A5 04 LDA $04 [$00:0004] A:141A X:0000 Y:141A P:envmxdiZc $82/F35E 89 20 00 BIT #$0020 A:001B X:0000 Y:141A P:envmxdizc $82/F361 F0 03 BEQ $03 [$F366] A:001B X:0000 Y:141A P:envmxdiZc $82/F366 86 0A STX $0A [$00:000A] A:001B X:0000 Y:141A P:envmxdiZc $82/F368 29 1F 00 AND #$001F A:001B X:0000 Y:141A P:envmxdiZc $82/F36B 04 0A TSB $0A [$00:000A] A:001B X:0000 Y:141A P:envmxdizc $82/F36D A5 06 LDA $06 [$00:0006] A:001B X:0000 Y:141A P:envmxdiZc $82/F36F 4A LSR A A:0600 X:0000 Y:141A P:envmxdizc $82/F370 4A LSR A A:0300 X:0000 Y:141A P:envmxdizc $82/F371 29 E0 03 AND #$03E0 A:0180 X:0000 Y:141A P:envmxdizc $82/F374 04 0A TSB $0A [$00:000A] A:0180 X:0000 Y:141A P:envmxdizc $82/F376 A5 08 LDA $08 ; Load Number of Tilemap Double-Bytes to transfer $82/F378 20 C5 F7 JSR $F7C5 ; Transfer Buffered BG1 Tilemap into VRAM $82/F37B A5 0A LDA $0A [$00:000A] A:0028 X:0000 Y:719B P:envmxdizc $82/F37D 29 1F 04 AND #$041F A:019B X:0000 Y:719B P:envmxdizc $82/F380 85 0A STA $0A [$00:000A] A:001B X:0000 Y:719B P:envmxdizc $82/F382 A5 09 LDA $09 [$00:0009] A:001B X:0000 Y:719B P:envmxdizc $82/F384 20 C5 F7 JSR $F7C5 ; Transfer Buffered BG1 Tilemap into VRAM $82/F387 C6 00 DEC $00 [$00:0000] A:0038 X:0002 Y:701B P:envmxdizc $82/F389 F0 0B BEQ $0B [$F396] A:0038 X:0002 Y:701B P:envmxdiZc
- Code is missing here
$82/F396 FA PLX A:0038 X:0002 Y:701B P:envmxdiZc $82/F397 86 04 STX $04 [$00:0004] A:0038 X:001B Y:701B P:envmxdizc $82/F399 FA PLX A:0038 X:001B Y:701B P:envmxdizc $82/F39A 86 00 STX $00 [$00:0000] A:0038 X:0001 Y:701B P:envmxdizc $82/F39C E2 20 SEP #$20 A:0038 X:0001 Y:701B P:envmxdizc $82/F39E A5 0F LDA $0F [$00:000F] A:0038 X:0001 Y:701B P:envMxdizc $82/F3A0 89 02 BIT #$02 A:0003 X:0001 Y:701B P:envMxdizc $82/F3A2 D0 03 BNE $03 [$F3A7] A:0003 X:0001 Y:701B P:envMxdizc
- Code is missing here
$82/F3A7 A9 7F LDA #$7F ; Set up $7F/5000 in $20-22 (Address of the BG2 Tilemap) $82/F3A9 85 22 STA $22 $82/F3AB A2 00 50 LDX #$5000 $82/F3AE 86 20 STX $20 $82/F3B0 C2 20 REP #$20 A:007F X:5000 Y:701B P:envMxdizc $82/F3B2 AE D8 16 LDX $16D8 ; ($16D8 contains the Write Index for the BG2 Tilemap Buffer) $82/F3B5 A5 04 LDA $04 [$00:0004] A:007F X:0000 Y:701B P:envmxdiZc $82/F3B7 C9 80 00 CMP #$0080 A:001B X:0000 Y:701B P:envmxdizc $82/F3BA 90 08 BCC $08 ; [$F3C4] (Branch if $04 is less than #$80)
- Code is missing here
$82/F3C4 A5 06 LDA $06 [$00:0006] A:001B X:0000 Y:701B P:eNvmxdizc $82/F3C6 C9 00 30 CMP #$3000 A:0600 X:0000 Y:701B P:envmxdizc $82/F3C9 B0 0A BCS $0A [$F3D5] A:0600 X:0000 Y:701B P:eNvmxdizc $82/F3CB 05 04 ORA $04 [$00:0004] A:0600 X:0000 Y:701B P:eNvmxdizc $82/F3CD A8 TAY A:061B X:0000 Y:701B P:envmxdizc $82/F3CE A5 08 LDA $08 [$00:0008] A:061B X:0000 Y:061B P:envmxdizc $82/F3D0 20 91 F7 JSR $F791 ; Update BG2 Tilemap Buffer (from Scrolling?) $82/F3D3 80 09 BRA $09 [$F3DE] A:101A X:0028 Y:101A P:envmxdiZc
- Code is missing here
$82/F3DE A5 09 LDA $09 [$00:0009] A:101A X:0028 Y:101A P:envmxdiZc $82/F3E0 29 FF 00 AND #$00FF A:0008 X:0028 Y:101A P:envmxdizc $82/F3E3 F0 21 BEQ $21 [$F406] A:0008 X:0028 Y:101A P:envmxdizc $82/F3E5 A5 06 LDA $06 [$00:0006] A:0008 X:0028 Y:101A P:envmxdizc $82/F3E7 29 00 F0 AND #$F000 A:0600 X:0028 Y:101A P:envmxdizc $82/F3EA 18 CLC A:0000 X:0028 Y:101A P:envmxdiZc $82/F3EB 69 00 10 ADC #$1000 A:0000 X:0028 Y:101A P:envmxdiZc $82/F3EE C9 00 30 CMP #$3000 A:1000 X:0028 Y:101A P:envmxdizc $82/F3F1 B0 0A BCS $0A [$F3FD] A:1000 X:0028 Y:101A P:eNvmxdizc $82/F3F3 05 04 ORA $04 [$00:0004] A:1000 X:0028 Y:101A P:eNvmxdizc $82/F3F5 A8 TAY A:101B X:0028 Y:101A P:envmxdizc $82/F3F6 A5 09 LDA $09 [$00:0009] A:101B X:0028 Y:101B P:envmxdizc $82/F3F8 20 91 F7 JSR $F791 ; Update BG2 Tilemap Buffer (from Scrolling?) $82/F3FB 80 09 BRA $09 [$F406] A:141A X:0038 Y:141A P:envmxdiZc
- Code is missing here
$82/F406 A2 00 00 LDX #$0000 A:141A X:0038 Y:141A P:envmxdiZc $82/F409 A5 04 LDA $04 [$00:0004] A:141A X:0000 Y:141A P:envmxdiZc $82/F40B 89 20 00 BIT #$0020 A:001B X:0000 Y:141A P:envmxdizc $82/F40E F0 03 BEQ $03 [$F413] A:001B X:0000 Y:141A P:envmxdiZc $82/F413 86 0A STX $0A [$00:000A] A:001B X:0000 Y:141A P:envmxdiZc $82/F415 29 1F 00 AND #$001F A:001B X:0000 Y:141A P:envmxdiZc $82/F418 04 0A TSB $0A [$00:000A] A:001B X:0000 Y:141A P:envmxdizc $82/F41A A5 06 LDA $06 [$00:0006] A:001B X:0000 Y:141A P:envmxdiZc $82/F41C 4A LSR A A:0600 X:0000 Y:141A P:envmxdizc $82/F41D 4A LSR A A:0300 X:0000 Y:141A P:envmxdizc $82/F41E 29 E0 03 AND #$03E0 A:0180 X:0000 Y:141A P:envmxdizc $82/F421 04 0A TSB $0A [$00:000A] A:0180 X:0000 Y:141A P:envmxdizc $82/F423 A5 08 LDA $08 [$00:0008] A:0180 X:0000 Y:141A P:envmxdiZc $82/F425 20 10 F8 JSR $F810 ; Transfer Buffered BG2 Tilemap into VRAM $82/F428 A5 0A LDA $0A [$00:000A] A:0028 X:0004 Y:799B P:envmxdizc $82/F42A 29 1F 04 AND #$041F A:019B X:0004 Y:799B P:envmxdizc $82/F42D 85 0A STA $0A [$00:000A] A:001B X:0004 Y:799B P:envmxdizc $82/F42F A5 09 LDA $09 [$00:0009] A:001B X:0004 Y:799B P:envmxdizc $82/F431 20 10 F8 JSR $F810 ; Transfer Buffered BG2 Tilemap into VRAM $82/F434 C6 00 DEC $00 [$00:0000] A:0038 X:0006 Y:781B P:envmxdizc $82/F436 F0 0B BEQ $0B [$F443] A:0038 X:0006 Y:781B P:envmxdiZc
- Code is missing here
$82/F443 E2 20 SEP #$20 A:0038 X:0006 Y:781B P:envmxdiZc $82/F445 60 RTS A:0038 X:0006 Y:781B P:envMxdiZc
$82/F609 ?
$82/F609 20 0D F6 JSR $F60D [$82:F60D] A:0002 X:3300 Y:FFFE P:eNvMxdizC $82/F60C 6B RTL A:1600 X:0800 Y:0000 P:envMxdiZc
This subroutine is prepares a lot of values for a tilemap update. I think this is used if the tilemap has to be updated when the map is scrolled.
Set in this subroutine:
$02/$03 Number of Tilemap Entries to do (= #$20)
$06/$07 BG1 Y scroll, without bits 0-2, multiplied by #$10, gets #$80 added every loop iteration, max. #$3000
$08/$09 Number of Tilemap Entries to do (= #$20)
$82/F60D 22 60 81 99 JSL $998160[$99:8160] A:0002 X:3300 Y:FFFE P:eNvMxdizC $82/F611 B0 05 BCS $05 [$F618] A:0002 X:3300 Y:FFFE P:envMxdizC
- code is missing here
$82/F618 C2 20 REP #$20 ; A = 16-bit $82/F61A A9 20 00 LDA #$0020 ; Number of Tilemap entries to do / number of Tilemap lines to do $82/F61D 85 08 STA $08 $82/F61F AD 93 05 LDA $0593 ; Load BG1 Y scroll value $82/F622 29 F8 FF AND #$FFF8 ; Remove bits 0-2 $82/F625 0A ASL A ; Multiply by sixteen / #$10 $82/F626 0A ASL A $82/F627 0A ASL A $82/F628 0A ASL A $82/F629 85 06 STA $06 ; Store in $06 $82/F62B 64 00 STZ $00 [$00:0000] A:0600 X:3300 Y:FFFE P:envmxdizc $82/F62D A5 08 LDA $08 ; $08 = Number of Tilemap lines to do $82/F62F 85 02 STA $02 ; $02 = Number of Tilemap entries to do $82/F631 64 04 STZ $04 [$00:0004] A:0020 X:3300 Y:FFFE P:envmxdizc $82/F633 64 0C STZ $0C [$00:000C] A:0020 X:3300 Y:FFFE P:envmxdizc $82/F635 AD 91 05 LDA $0591 ; Load BG1 X scroll value $82/F638 10 12 BPL $12 ; [$F64C] Branch if positive
- code is missing here
$82/F64C 4A LSR A ; divide by eight $82/F64D 4A LSR A $82/F64E 4A LSR A $82/F64F 85 0C STA $0C ; Store in $0C/$0D $82/F651 18 CLC A:001E X:3300 Y:FFFE P:envmxdizc $82/F652 65 08 ADC $08 [$00:0008] A:001E X:3300 Y:FFFE P:envmxdizc $82/F654 E9 7F 00 SBC #$007F A:003E X:3300 Y:FFFE P:envmxdizc $82/F657 90 08 BCC $08 [$F661] A:FFBE X:3300 Y:FFFE P:eNvmxdizc
- code is missing here
$82/F661 E2 20 SEP #$20 ; A = 8-bit $82/F663 A9 7F LDA #$7F ; Setup address $7F/2000 in [$20] - Address of the whole Tilemap $82/F665 85 22 STA $22 $82/F667 A2 00 20 LDX #$2000 $82/F66A 86 20 STX $20 $82/F66C C2 20 REP #$20 ; A = 16-bit $82/F66E A2 00 00 LDX #$0000 ; Clear X (Store Index for BG1 Tilemap Buffer) $82/F671 A5 06 LDA $06 ; Load edited BG1 Y scroll value $82/F673 C9 00 30 CMP #$3000 ; Branch if lower than #$3000 (Tilemap size maximum) $82/F676 90 08 BCC $08 ; [$F680]
- code is missing here
$82/F680 A4 00 LDY $00 [$00:0000] A:0600 X:0000 Y:FFFE P:eNvmxdizc $82/F682 F0 03 BEQ $03 [$F687] A:0600 X:0000 Y:0000 P:envmxdiZc
- code is missing here
$82/F687 A5 0C LDA $0C ; Load edited BG1 X scroll value $82/F689 05 06 ORA $06 ; ORA edited BG1 Y scroll value $82/F68B A8 TAY ; Transfer in Y as Load Index for the whole Tilemap $82/F68C A5 02 LDA $02 ; Load number of Tilemap Entries to do in A $82/F68E 20 CB F6 JSR $F6CB ; Build BG1 Tilemap in Buffer $82/F691 A4 04 LDY $04 [$00:0004] A:0281 X:0040 Y:063E P:envmxdiZc $82/F693 F0 03 BEQ $03 [$F698] A:0281 X:0040 Y:0000 P:envmxdiZc
- code is missing here
$82/F698 A5 06 LDA $06 ; Add #$80 to edited Y-scroll value in $06 $82/F69A 18 CLC $82/F69B 69 80 00 ADC #$0080 $82/F69E 85 06 STA $06 $82/F6A0 C6 08 DEC $08 ; Decrement Loop counter (originally set to #$20) $82/F6A2 D0 CD BNE $CD ; [$F671] Loop until counter runs out $82/F6A4 E2 20 SEP #$20 ; A = 8-bit $82/F6A6 60 RTS
$82/F6CB Build BG1 Tilemap in Buffer
This subroutine is entered with 16-bit A
A = number of Tilemap entries to do
X = Store Index for BG1 Tilemap Buffer
Y = Load Index for whole BG1 map
$20-$22 = Address of the whole BG1 map
$82/F6CB 29 FF 00 AND #$00FF ; Remove High Byte $82/F6CE F0 43 BEQ $43 ; [$F713] Exit if Low Byte was empty $82/F6D0 4A LSR A ; Divide Value of A by 2 $82/F6D1 85 0A STA $0A ; Store it as Loop Counter $82/F6D3 B0 08 BCS $08 ; [$F6DD] Branch if LSB in Original A was set $82/F6D5 98 TYA ; Check if the LSB in Y was set $82/F6D6 4A LSR A $82/F6D7 90 17 BCC $17 ; [$F6F0] Branch if it was clear
- Code is missing here
$82/F6F0 A5 0A LDA $0A ; Load the Loop counter value $82/F6F2 F0 15 BEQ $15 ; [$F709] Branch if it was empty $82/F6F4 B7 20 LDA [$20],y ; Load Byte from the whole BG1 Map $82/F6F6 9F 00 E0 7F STA $7FE000,x ; Store in BG1 Tilemap Buffer $82/F6FA C8 INY ; Increment Load Index twice $82/F6FB C8 INY $82/F6FC E8 INX ; Increment Store Index twice $82/F6FD E8 INX $82/F6FE 1A INC A ; Increment Tilemap Entry for the right Half of the Rhomb's Edge $82/F6FF 9F 00 E0 7F STA $7FE000,x ; Store in BG1 Tilemap Buffer $82/F703 E8 INX ; Increment Store Index twice $82/F704 E8 INX $82/F705 C6 0A DEC $0A ; Decrement Loop Counter $82/F707 D0 EB BNE $EB ; [$F6F4] Loop $82/F709 90 08 BCC $08 ; [$F713] ??? Exit
- Code is missing here
$82/F713 60 RTS
$82/F714 Build BG2 Tilemap in Buffer
This subroutine is entered with 16-bit A
A = number of Tilemap entries to do
X = Store Index for BG2 Tilemap Buffer
Y = Load Index for whole BG2 map
$20-$22 = Address of the whole BG2 map
$82/F714 29 FF 00 AND #$00FF ; Remove High Byte $82/F717 F0 43 BEQ $43 ; [$F75C] Exit if Low Byte was empty $82/F719 4A LSR A ; Divide Value of A by 2 $82/F71A 85 0A STA $0A ; Store it as Loop Counter $82/F71C B0 08 BCS $08 ; [$F726] Branch if LSB in Original A was set $82/F71E 98 TYA ; Check if the LSB in Y was set $82/F71F 4A LSR A $82/F720 90 17 BCC $17 ; [$F739] Branch if it was clear
- Code is missing here
$82/F739 A5 0A LDA $0A ; Load the Loop counter value $82/F73B F0 15 BEQ $15 ; [$F752] Branch if it was empty $82/F73D B7 20 LDA [$20],y ; Load Byte from the whole BG2 Map $82/F73F 9F 00 EC 7F STA $7FEC00,x ; Store in BG2 Tilemap Buffer $82/F743 C8 INY ; Increment Load Index twice $82/F744 C8 INY $82/F745 E8 INX ; Increment Store Index twice $82/F746 E8 INX $82/F747 1A INC A ; Increment Tilemap Entry for the right Half of the Rhomb's Edge $82/F748 9F 00 EC 7F STA $7FEC00,x ; Store in BG2 Tilemap Buffer $82/F74C E8 INX ; Increment Store Index twice $82/F74D E8 INX $82/F74E C6 0A DEC $0A ; Decrement Loop Counter $82/F750 D0 EB BNE $EB ; [$F73D] Loop $82/F752 90 08 BCC $08 ; [$F75C] ??? Exit $82/F75C 60 RTS
$82/F75D Update BG1 Tilemap Buffer (from Scrolling?)
WHY OH WHY IS THERE THIS ADC #$80 STUFF!?!
This Subroutine transfers data from the address in $20-2 to the BG1 Tilemap Buffer at $7FE000 onwards. This is used in Battle to transfer Data from the Buffer of the whole Battle Map (stored at $7F2000) to the VRAM Tilemap buffer at $7FE000. In the latter, there is always just as much as needs to be transfered to the VRAM.
Depending on the LSB of the value in Y, it changes between two styles of transfer.
A contains number of double-bytes to transfer - A is 16 bit, but the value may not exceed #$FF.
Y contains the Load Index for the 24-bit Address in $20-2.
X contains the Write Index
Y-LSB is set: Increment loaded data before storing
Y-LSB is clear: Transfer loaded data as it is
$82/F75D 29 FF 00 AND #$00FF ; Remove Upper Byte $82/F760 F0 2E BEQ $2E ; [$F790] Exit if empty $82/F762 85 0A STA $0A ; Buffer Number of Double-Bytes to transfer $82/F764 98 TYA ; Copy Y in A $82/F765 4A LSR A ; Check if the LSB of Y is set $82/F766 B0 14 BCS $14 ; [$F77C] Branch if it is
; Y-LSB is clear: Transfer loaded data as it is $82/F768 B7 20 LDA [$20],y ; Load Data Double-Byte $82/F76A 9F 00 E0 7F STA $7FE000,x ; Store in VRAM Buffer of Battle BG1 Tilemap $82/F76E 98 TYA ; Transfer Load Index to A $82/F76F 18 CLC ; Add #$80 $82/F770 69 80 00 ADC #$0080 $82/F773 A8 TAY ; Transfer back to Y $82/F774 E8 INX ; Increment Store Index twice $82/F775 E8 INX $82/F776 C6 0A DEC $0A ; Decrement Loop Counter $82/F778 D0 EE BNE $EE ; [$F768] Loop til the end $82/F77A 80 14 BRA $14 ; [$F790] Exit
;Y-LSB is set: Increment loaded data before storing $82/F77C 88 DEY ; Remove the Set LSB in Y - this was a flag for this subroutine, it would corrupt the Load Index $82/F77D B7 20 LDA [$20],y ; Load Data Double-Byte $82/F77F 1A INC A A:0280 X:0000 Y:061A P:envmxdizC $82/F780 9F 00 E0 7F STA $7FE000,x ; Store in VRAM Buffer of Battle BG1 Tilemap $82/F784 98 TYA ; Transfer Load Index to A $82/F785 18 CLC ; Add #$80 $82/F786 69 80 00 ADC #$0080 $82/F789 A8 TAY ; Transfer back to Y $82/F78A E8 INX ; Increment Store Index twice $82/F78B E8 INX $82/F78C C6 0A DEC $0A ; Decrement Loop Counter $82/F78E D0 ED BNE $ED ; [$F77D] Loop til the end $82/F790 60 RTS
$82/F791 Update BG2 Tilemap Buffer (from Scrolling?)
WHY OH WHY IS THERE THIS ADC #$80 STUFF!?!
This Subroutine transfers data from the address in $20-2 to the BG2 Tilemap Buffer at $7FEC00 onwards. This is used in Battle to transfer Data from the Buffer of the whole Battle Map (stored at $7F5000) to the VRAM Tilemap buffer at $7FEC00. In the latter, there is always just as much as needs to be transfered to the VRAM.
Depending on the LSB of the value in Y, it changes between two styles of transfer.
A contains number of double-bytes to transfer - A is 16 bit, but the value may not exceed #$FF.
Y contains the Load Index for the 24-bit Address in $20-2.
X contains the Write Index
Y-LSB is set: Increment loaded data before storing
Y-LSB is clear: Transfer loaded data as it is
$82/F791 29 FF 00 AND #$00FF ; Remove Upper Byte $82/F794 F0 2E BEQ $2E ; [$F7C4] Exit if empty $82/F796 85 0A STA $0A ; Buffer Number of Double-Bytes to transfer $82/F798 98 TYA ; Copy Y in A $82/F799 4A LSR A ; Check if the LSB of Y is set $82/F79A B0 14 BCS $14 ; [$F7B0] Branch if it is
; Y-LSB is clear: Transfer loaded data as it is $82/F79C B7 20 LDA [$20],y ; Load Data Double-Byte $82/F79E 9F 00 EC 7F STA $7FEC00,x ; Store in VRAM Buffer of Battle BG2 Tilemap $82/F7A2 98 TYA ; Transfer Load Index to A $82/F7A3 18 CLC ; Add #$80 $82/F7A4 69 80 00 ADC #$0080 $82/F7A7 A8 TAY ; Transfer back to Y $82/F7A8 E8 INX ; Increment Store Index twice $82/F7A9 E8 INX $82/F7AA C6 0A DEC $0A ; Decrement Loop Counter $82/F7AC D0 EE BNE $EE ; [$F79C] Loop til the end $82/F7AE 80 14 BRA $14 ; [$F7C4] Exit
;Y-LSB is set: Increment loaded data before storing $82/F7B0 88 DEY ; Remove the Set LSB in Y - this was a flag for this subroutine, it would corrupt the Load Index $82/F7B1 B7 20 LDA [$20],y ; Load Data Double-Byte $82/F7B3 1A INC A A:19B4 X:0000 Y:061A P:envmxdizC $82/F7B4 9F 00 EC 7F STA $7FEC00,x ; Store in VRAM Buffer of Battle BG2 Tilemap $82/F7B8 98 TYA ; Transfer Load Index to A $82/F7B9 18 CLC ; Add #$80 $82/F7BA 69 80 00 ADC #$0080 $82/F7BD A8 TAY ; Transfer back to Y $82/F7BE E8 INX ; Increment Store Index twice $82/F7BF E8 INX $82/F7C0 C6 0A DEC $0A ; Decrement Loop Counter $82/F7C2 D0 ED BNE $ED ; [$F7B1] Loop til the end $82/F7C4 60 RTS
$82/F7C5 Transfer Buffered BG1 Tilemap into VRAM
A contains the number of double(!)-bytes to transfer. #$FF double-bytes are max.
$82/F7C5 29 FF 00 AND #$00FF ; Remove Upper Byte of the Number of Double-bytes to transfer $82/F7C8 F0 45 BEQ $45 ; [$F80F] Exit if empty $82/F7CA 0A ASL A ; Multiply by 2 - Now it's the number of single bytes to transfer $82/F7CB 85 0C STA $0C ; Store in $0C (for the VRAM DMA subroutine that gets called later)
Check if the VRAM Pipeline entry is full
$82/F7CD 18 CLC ; Add Data Size of the already used VRAM Pipeline Entries... $82/F7CE 6D C5 0E ADC $0EC5 ; ... to this DMA's Size $82/F7D1 AA TAX ; Transfer it to X for the upcoming multiplication $82/F7D2 E2 20 SEP #$20 ; A = 8-bit $82/F7D4 AD C7 0E LDA $0EC7 ; Load Number of used VRAM Pipeline Entries $82/F7D7 1A INC A ; Increment it (simulate that there will be another entry) $82/F7D8 22 CB AD 80 JSL $80ADCB ; X = A * #$40 + X $82/F7DC E0 00 12 CPX #$1200 ; Is that too much data / too many different VRAM DMAs? $82/F7DF 90 0C BCC $0C ; [$F7ED] If not, branch do the DMA, else wait for NMI
(Manually disassembled)
$82/F7E1 AE D6 16 LDX $16D6 ; ? $82/F7E4 DA PHX $82/F7E5 22 8A A1 80 JSR $80A18A ; Change Bank, wait for NMI and execute code built in WRAM $82/F7E9 FA PLX $82/F7EA 8E D6 16 STX $16D6 ; ?
Execute DMA without VRAM DMA Pipeline
$82/F7ED C2 21 REP #$21 ; 16-bit A + Clear Carry $82/F7EF A5 0A LDA $0A ; Load exact address where tiles on BG1 Tilemap should change $82/F7F1 69 00 70 ADC #$7000 ; Add VRAM-Offset of the BG1 Tilemap $82/F7F4 A8 TAY ; Transfer it in Y as VRAM Destination $82/F7F5 AD D6 16 LDA $16D6 ; Load Write Index for the BG1 Tilemap Buffer $82/F7F8 18 CLC $82/F7F9 69 00 E0 ADC #$E000 ; Add Offset of the BG1 Tilemap Buffer $82/F7FC AA TAX ; Transfer it in X as DMA Source Address $82/F7FD E2 20 SEP #$20 $82/F7FF A9 7F LDA #$7F ; DMA Source Bank $82/F801 22 24 9F 80 JSL $809F24 ; Long Jump to VRAM DMA $82/F805 C2 21 REP #$21 ; 16-bit A, clear Carry $82/F807 A5 0C LDA $0C ; Load number of single bytes to transfer $82/F809 6D D6 16 ADC $16D6 ; Add old Write Index for the BG1 Tilemap Buffer $82/F80C 8D D6 16 STA $16D6 ; Store as new Write Index for the BG1 Tilemap Buffer $82/F80F 60 RTS
$82/F810 Transfer Buffered BG2 Tilemap into VRAM
Used in Battle and in the Game Intro ("Quest Presents") to update the BG2 Tilemap in VRAM according to the BG2 Tilemap Buffer at $7FEC00.
A contains the number of double(!)-bytes to transfer. #$FF double-bytes are max.
$82/F810 29 FF 00 AND #$00FF ; Remove Upper Byte of the Number of Double-bytes to transfer $82/F813 F0 45 BEQ $45 ; [$F85A] Exit if empty $82/F815 0A ASL A ; Multiply by 2 - Now it's the number of single bytes to transfer $82/F816 85 0C STA $0C ; Store in $0C (for the VRAM DMA subroutine that gets called later)
Check if the VRAM Pipeline entry is full
$82/F818 18 CLC ; Add Data Size of the already used VRAM Pipeline Entries... $82/F819 6D C5 0E ADC $0EC5 ; ... to this DMA's Size $82/F81C AA TAX ; Transfer it to X for the upcoming multiplication $82/F81D E2 20 SEP #$20 ; A = 8-bit $82/F81F AD C7 0E LDA $0EC7 ; Load Number of used VRAM DMA Pipeline Entries $82/F822 1A INC A ; Increment it (simulate that there will be another entry) $82/F823 22 CB AD 80 JSL $80ADCB ; X = A * #$40 + X $82/F827 E0 00 12 CPX #$1200 ;Is there too much data / too many different VRAM DMAs? $82/F82A 90 0C BCC $0C ; [$F838] If not branch to do the DMA, else wait for NMI
(Manually disassembled)
$82/F7E1 AE D6 16 LDX $16D6 ; ? $82/F7E4 DA PHX $82/F7E5 22 8A A1 80 JSR $80A18A ; Change Bank, wait for NMI and execute code built in WRAM $82/F7E9 FA PLX $82/F7EA 8E D6 16 STX $16D6 ; ?
Execute DMA without VRAM DMA Pipeline
$82/F838 C2 21 REP #$21 ; 16-bit A + Clear Carry $82/F83A A5 0A LDA $0A ; Load exact address where tiles on BG2 Tilemap should change $82/F83C 69 00 78 ADC #$7800 ; Add Offset for the BG2 Tilemap $82/F83F A8 TAY ; VRAM Destination Address $82/F840 AD D8 16 LDA $16D8 ; Load Write Index for the BG2 Tilemap Buffer $82/F843 18 CLC $82/F844 69 00 EC ADC #$EC00 ; Add Offset for the BG2 Tilemap Buffer $82/F847 AA TAX ; DMA Source Address $82/F848 E2 20 SEP #$20 $82/F84A A9 7F LDA #$7F ; VRAM DMA Source Bank $82/F84C 22 24 9F 80 JSL $809F24 ; VRAM DMA Setup Execution $82/F850 C2 21 REP #$21 ; 16-bit A, clear Carry $82/F852 A5 0C LDA $0C ; Load number of single bytes to transfer $82/F854 6D D8 16 ADC $16D8 ; Add old Write Index for the BG2 Tilemap Buffer $82/F857 8D D8 16 STA $16D8 ; Store as new Write Index for the BG2 Tilemap Buffer $82/F85A 60 RTS
$82/F85B ?
$82/F85B 8B PHB ; Preserve Data Bank $82/F85C 4B PHK ; Set Data Bank to $82 $82/F85D AB PLB $82/F85E 48 PHA ; ??? $82/F85F 20 4E EB JSR $EB4E [$82:EB4E] A:3700 X:0200 Y:0000 P:eNvMxdizc $82/F862 22 46 F4 82 JSL $82F446[$82:F446] A:3700 X:0060 Y:0000 P:envMxdizc $82/F866 A2 00 00 LDX #$0000 $82/F869 8E 91 05 STX $0591 ; Reset BG1 H-Scroll $82/F86C 8E 93 05 STX $0593 ; Reset BG1 V-Scroll $82/F86F 8E 95 05 STX $0595 ; Reset BG2 H-Scroll $82/F872 8E 97 05 STX $0597 ; Reset BG2 V-Scroll $82/F875 22 8A A1 80 JSL $80A18A ; Change Bank, wait for NMI and execute code built in WRAM $82/F879 22 84 EB 82 JSL $82EB84[$82:EB84] A:0780 X:0000 Y:5800 P:eNvMxdizc $82/F87D 68 PLA A:0780 X:0000 Y:FFFF P:eNvMxdizc $82/F87E 85 09 STA $09 [$00:0009] A:0700 X:0000 Y:FFFF P:envMxdiZc $82/F880 A2 00 00 LDX #$0000 ; Clear X (to use it as a Loop Counter) $82/F883 DA PHX ; Buffer Load Index/Loop Counter on stack $82/F884 C2 20 REP #$20 ; A = 16-bit $82/F886 BF DF DB 7E LDA $7EDBDF,x[$7E:DBDF] A:0700 X:0000 Y:FFFF P:envmxdiZc $82/F88A AA TAX A:004B X:0000 Y:FFFF P:envmxdizc $82/F88B E2 20 SEP #$20 ; A = 8-bit $82/F88D BF 00 CC 7F LDA $7FCC00,x ; Load value from Terrain Type Map $82/F891 30 24 BMI $24 [$F8B7] A:0014 X:004B Y:FFFF P:envMxdizc $82/F893 A5 09 LDA $09 [$00:0009] A:0014 X:004B Y:FFFF P:envMxdizc $82/F895 F0 06 BEQ $06 [$F89D] A:0000 X:004B Y:FFFF P:envMxdiZc
- code is missing here
$82/F89D 9B TXY A:0000 X:004B Y:FFFF P:envMxdiZc $82/F89E C2 20 REP #$20 ; A = 16-bit $82/F8A0 AD BE 16 LDA $16BE [$82:16BE] A:0000 X:004B Y:004B P:envmxdizc $82/F8A3 EB XBA A:0000 X:004B Y:004B P:envmxdiZc $82/F8A4 4A LSR A A:0000 X:004B Y:004B P:envmxdiZc $82/F8A5 4A LSR A A:0000 X:004B Y:004B P:envmxdiZc $82/F8A6 4A LSR A A:0000 X:004B Y:004B P:envmxdiZc $82/F8A7 E2 20 SEP #$20 ; A = 8-bit $82/F8A9 1F 00 D4 7F ORA $7FD400,x ; Add "Object" Type Map $82/F8AD AA TAX A:0002 X:004B Y:004B P:envMxdizc $82/F8AE 7B TDC ; Clear 16-bit A $82/F8AF BF DD 8D 8B LDA $8B8DDD,x[$8B:8DDF] A:0000 X:0002 Y:004B P:envMxdiZc $82/F8B3 BB TYX A:0007 X:0002 Y:004B P:envMxdizc $82/F8B4 20 45 E7 JSR $E745 [$82:E745] A:0007 X:004B Y:004B P:envMxdizc $82/F8B7 FA PLX ; Pull Load Index/Loop Counter from stack $82/F8B8 E8 INX ; Increment it twice $82/F8B9 E8 INX $82/F8BA EC EC 16 CPX $16EC ; Is the Loop Limit reached? $82/F8BD 90 C4 BCC $C4 ; [$F883] Loop if not $82/F8BF 20 A5 EB JSR $EBA5 [$82:EBA5] A:0007 X:002E Y:0120 P:envMxdiZC $82/F8C2 A9 71 LDA #$71 ; BG1 Tilemap at $7000 $82/F8C4 8D 8B 05 STA $058B $82/F8C7 A9 79 LDA #$79 ; BG2 Tilemap at $7800 $82/F8C9 8D 8C 05 STA $058C $82/F8CC 20 6B EB JSR $EB6B ; Set BG1/2 Scroll Registers $82/F8CF AB PLB ; Restore Data Bank $82/F8D0 6B RTL
$82/FAAC ?
The second part of this subroutine transfers the data from $164B onwards into the CGRAM buffer and builds actual palettes from it - the data at $164B only contains fourteen colors per planned palette.
The palettes are built the following way:
($FAD2 to $FAD9) The first color is $0000 ($FADA to $FAE9) The next #$0D (thirteen) colors are copied from [$20] = $00/164B + x ($FAEA to $FAEB) The fourteenth color gets left out ($FAEC to $FAF7) The fifteenth and last color gets copied from [$20] = $00/164B + x
$82/FAAC 8B PHB ; Preserve Data Bank $82/FAAD 4B PHK ; Change Data Bank to this $82/FAAE AB PLB $82/FAAF A2 4B 16 LDX #$164B ; Setup 24-bit Address in $20-22 to $00/164B (=$7E/164B) $82/FAB2 86 20 STX $20 $82/FAB4 A9 00 LDA #$00 $82/FAB6 85 22 STA $22 $82/FAB8 22 0F FB 82 JSL $82FB0F ; ??? $82/FABC D4 00 PEI ($00) ; Preserve $00-3 on Stack $82/FABE D4 02 PEI ($02) $82/FAC0 C2 20 REP #$20 $82/FAC2 A2 80 00 LDX #$0080 ; Store Index - where to begin to store in $124B and $144B $82/FAC5 A0 00 00 LDY #$0000 ; Load Index $82/FAC8 A9 04 00 LDA #$0004 ; Setup Palette Counter - how many palettes to do $82/FACB 85 00 STA $00 $82/FACD A9 0D 00 LDA #$000D ; Setup Color counter - counter for the thirteen colors $82/FAD0 85 02 STA $02 $82/FAD2 9E 4B 12 STZ $124B,x ; Clear the first two bytes in the palette (making it pitch-black) $82/FAD5 9E 4B 14 STZ $144B,x ; Do the same in the second CGRAM buffer $82/FAD8 E8 INX ; Increment Store Index so it points to the next color $82/FAD9 E8 INX $82/FADA B7 20 LDA [$20],y ; Load color from around $164B $82/FADC 9D 4B 12 STA $124B,x ; Store it in CGRAM buffer $82/FADF 9D 4B 14 STA $144B,x ; Do the same in the second CGRAM buffer $82/FAE2 C8 INY ; Increment Load Index so it points to the next color $82/FAE3 C8 INY $82/FAE4 E8 INX ; Increment Store Index so it points to the next color $82/FAE5 E8 INX $82/FAE6 C6 02 DEC $02 ; Decrement color counter $82/FAE8 D0 F0 BNE $F0 ; [$FADA] Loop until all thirteen colors are done $82/FAEA E8 INX ; Increment X twice - leave the fourteenth color out $82/FAEB E8 INX $82/FAEC B7 20 LDA [$20],y ; Load color from around $164B $82/FAEE 9D 4B 12 STA $124B,x ; Store it in CGRAM buffer $82/FAF1 9D 4B 14 STA $144B,x ; Do the same in the second CGRAM buffer $82/FAF4 C8 INY ; Increment Load Index so it points to the next color $82/FAF5 C8 INY $82/FAF6 E8 INX ; Increment Store Index so it points to the next color $82/FAF7 E8 INX $82/FAF8 C6 00 DEC $00 ; Decrement Palette Counter $82/FAFA D0 D1 BNE $D1 ; [$FACD] Loop until all four palettes are done $82/FAFC E2 20 SEP #$20 $82/FAFE A9 40 LDA #$40 ; CGRAM Destination $82/FB00 A0 80 00 LDY #$0080 ; Number of Bytes $82/FB03 22 B5 9E 80 JSL $809EB5 ; Transfer these four palettes from CGRAM buffer to CGRAM $82/FB07 7A PLY ; Restore $00-$03 and exit $82/FB08 84 02 STY $02 $82/FB0A 7A PLY $82/FB0B 84 00 STY $00 $82/FB0D AB PLB $82/FB0E 6B RTL
$82/FCEA ?
$82/FCEA AF 89 BD 7E LDA $7EBD89[$7E:BD89] A:0268 X:003E Y:0387 P:envMxdizc $82/FCEE C9 12 CMP #$12 A:020C X:003E Y:0387 P:envMxdizc $82/FCF0 B0 04 BCS $04 [$FCF6] A:020C X:003E Y:0387 P:eNvMxdizc $82/FCF2 C9 06 CMP #$06 A:020C X:003E Y:0387 P:eNvMxdizc $82/FCF4 B0 6B BCS $6B [$FD61] A:020C X:003E Y:0387 P:envMxdizC
- code is missing here
$82/FD61 AD BE 16 LDA $16BE [$82:16BE] A:020C X:003E Y:0387 P:envMxdizC $82/FD64 C9 03 CMP #$03 A:0203 X:003E Y:0387 P:envMxdizC $82/FD66 F0 0C BEQ $0C [$FD74] A:0203 X:003E Y:0387 P:envMxdiZC
- code is missing here
$82/FD74 A9 01 LDA #$01 ; Setup $01 as Row Counter $82/FD76 85 01 STA $01 $82/FD78 A9 01 LDA #$01 ; Setup $00 as Tile per Row Counter $82/FD7A 85 00 STA $00 $82/FD7C 7B TDC ; Clear 16-bit A $82/FD7D A5 01 LDA $01 ; Load Row Counter value $82/FD7F C2 20 REP #$20 ; A = 16-bit $82/FD81 EB XBA ; Row Counter value * #$20 $82/FD82 4A LSR A $82/FD83 4A LSR A $82/FD84 4A LSR A $82/FD85 E2 20 SEP #$20 ; A = 8-bit $82/FD87 05 00 ORA $00 ; Add Tile per Row Counter $82/FD89 AA TAX ; Transfer in X as Store Index $82/FD8A 20 C0 FD JSR $FDC0 [$82:FDC0] A:0021 X:0021 Y:0387 P:envMxdizc $82/FD8D E8 INX ; Increment Store Index $82/FD8E E6 00 INC $00 ; Increment Tile per Row Counter $82/FD90 A5 00 LDA $00 ; Check if Tile per Row Counter has exceeded... $82/FD92 CD C8 16 CMP $16C8 ; the Map Width on the NW-SE-Axis $82/FD95 90 F3 BCC $F3 ; [$FD8A] Loop if not $82/FD97 E6 01 INC $01 ; Else, increment the Row Counter $82/FD99 A5 01 LDA $01 ; Check if it has exceeded the Map Width/NE-SW-Axis $82/FD9B CD CA 16 CMP $16CA $82/FD9E 90 D8 BCC $D8 ; [$FD78] If not, Loop, else exit $82/FDA0 60 RTS
$82/FDC0 ?
$82/FDC0 7B TDC A:0021 X:0021 Y:0387 P:envMxdizc $82/FDC1 BF 00 D0 7F LDA $7FD000,x[$7F:D021] A:0000 X:0021 Y:0387 P:envMxdiZc $82/FDC5 29 1F AND #$1F A:0003 X:0021 Y:0387 P:envMxdizc $82/FDC7 C9 1F CMP #$1F A:0003 X:0021 Y:0387 P:envMxdizc $82/FDC9 D0 2F BNE $2F [$FDFA] A:0003 X:0021 Y:0387 P:eNvMxdizc $82/FDCB BF 00 D0 7F LDA $7FD000,x[$7F:D1C6] A:001F X:01C6 Y:0387 P:envMxdiZC $82/FDCF 29 E0 AND #$E0 A:007F X:01C6 Y:0387 P:envMxdizC $82/FDD1 38 SEC A:0060 X:01C6 Y:0387 P:envMxdizC $82/FDD2 E9 40 SBC #$40 A:0060 X:01C6 Y:0387 P:envMxdizC $82/FDD4 B0 01 BCS $01 [$FDD7] A:0020 X:01C6 Y:0387 P:envMxdizC $82/FDD6 7B TDC A:00C0 X:034D Y:0387 P:eNvMxdizc $82/FDD7 09 1E ORA #$1E A:0020 X:01C6 Y:0387 P:envMxdizC $82/FDD9 9F 00 D0 7F STA $7FD000,x[$7F:D1C6] A:003E X:01C6 Y:0387 P:envMxdizC $82/FDDD 29 1F AND #$1F A:003E X:01C6 Y:0387 P:envMxdizC $82/FDDF 9F 00 D4 7F STA $7FD400,x ; Store in "Object" Type Map $82/FDE3 5A PHY ; Buffer Y on stack $82/FDE4 A8 TAY ; Transfer "Object" Type Map value in Y as Load Index $82/FDE5 B7 26 LDA [$26],y ; Load value from Data Table $82/FDE7 7A PLY ; Restore Y from stack $82/FDE8 9F 00 CC 7F STA $7FCC00,x ; Set A as value for the Terrain Type Map $82/FDEC BF 00 C8 7F LDA $7FC800,x ; Lower Step Map value by 2 $82/FDF0 3A DEC A $82/FDF1 3A DEC A $82/FDF2 9F 00 C8 7F STA $7FC800,x $82/FDF6 9F 00 D8 7F STA $7FD800,x ; Set lowered value as Height Map value $82/FDFA 60 RTS
Bank $83
This is about some color calculation. $20-22 and $23-25 both contain 24-addresses to colors.
$7EB140,x 1st color RED - 2nd color RED 000x.xxxx $7EB141,x 2nd color RED xxxx.x000 $7EB160,x 1st color BLUE - 2nd color BLUE 000x.xxxx $7EB161,x 2nd color BLUE xxxx.x000 $7EB180,x 1st color GREEN - 2nd color GREEN 000x.xxxx $7EB181,x 2nd color GREEN xxxx.x000
$83/A990 7B TDC ; Clear 16-bit A $83/A991 AD A6 17 LDA $17A6 ; Load number of colors to do $83/A994 AA TAX $83/A995 86 06 STX $06 ; Store number of colors to do in $06 and clear $07 $83/A997 AD A7 17 LDA $17A7 ; (Load a Load Index) $83/A99A C2 20 REP #$20 ; 16-bit A $83/A99C 0A ASL A ; Multiply Load Index by 2 (values are 2 bytes in size) $83/A99D A8 TAY ; Transfer in Y $83/A99E A2 00 00 LDX #$0000 ; Clear X (use as store index) $83/A9A1 C2 20 REP #$20 ; 16-bit A again (necessary for loops) $83/A9A3 B7 23 LDA [$23],y ; Buffer 1st color in $02/$03 $83/A9A5 85 02 STA $02 $83/A9A7 B7 20 LDA [$20],y ; Buffer 2nd color in $00/$01 $83/A9A9 85 00 STA $00 $83/A9AB E2 20 SEP #$20 ; A = 16-bit $83/A9AD 29 1F AND #$1F ; Exempt RED Color Segment $83/A9AF 85 04 STA $04 ; Buffer 2nd color RED in $04 $83/A9B1 0A ASL A ; Roll value left thrice $83/A9B2 0A ASL A $83/A9B3 0A ASL A $83/A9B4 9F 41 B1 7E STA $7EB141,x ; Buffer that value $83/A9B8 A5 02 LDA $02 ; Load 1st color $83/A9BA 29 1F AND #$1F ; Exempt RED Color Segment $83/A9BC 38 SEC ; Subtract 2nd color RED $83/A9BD E5 04 SBC $04 $83/A9BF 9F 40 B1 7E STA $7EB140,x ; Buffer result $83/A9C3 C2 20 REP #$20 ; A = 16-bit $83/A9C5 A5 00 LDA $00 ; Load 2nd color $83/A9C7 29 E0 03 AND #$03E0 ; Exempt GREEN Color Segment $83/A9CA 85 04 STA $04 ; Buffer it in $04/$05 $83/A9CC 4A LSR A ; Roll value right twice $83/A9CD 4A LSR A $83/A9CE E2 20 SEP #$20 ; A = 8-bit $83/A9D0 9F 81 B1 7E STA $7EB181,x ; Buffer that value $83/A9D4 C2 20 REP #$20 ; A = 16-bit $83/A9D6 A5 02 LDA $02 ; Load 1st color $83/A9D8 29 E0 03 AND #$03E0 ; Exempt GREEN Color Segment $83/A9DB 38 SEC ; Subtract 2nd color GREEN $83/A9DC E5 04 SBC $04 $83/A9DE 4A LSR A ; Roll result into position $83/A9DF 4A LSR A $83/A9E0 4A LSR A $83/A9E1 4A LSR A $83/A9E2 4A LSR A $83/A9E3 E2 20 SEP #$20 ; A = 8-bit $83/A9E5 9F 80 B1 7E STA $7EB180,x ; Buffer the result $83/A9E9 A5 01 LDA $01 ; Load 2nd color high byte $83/A9EB 29 7C AND #$7C ; Exempt BLUE Color Segment $83/A9ED 85 04 STA $04 ; Buffer 2nd color BLUE in $04 $83/A9EF 0A ASL A ; Roll value left once $83/A9F0 9F 61 B1 7E STA $7EB161,x ; Buffer value $83/A9F4 A5 03 LDA $03 ; Load 1st color high byte $83/A9F6 29 7C AND #$7C ; Exempt BLUE Color Segment $83/A9F8 38 SEC ; Subtract 2nd color BLUE $83/A9F9 E5 04 SBC $04 $83/A9FB 10 06 BPL $06 ; [$AA03] Branch if the result is positive
- code is missing here
$83/AA03 4A LSR A ; Roll result right twice $83/AA04 4A LSR A $83/AA05 9F 60 B1 7E STA $7EB160,x ; Buffer result $83/AA09 C8 INY ; Increment Load Index twice $83/AA0A C8 INY $83/AA0B E8 INX ; Increment Store Index twice $83/AA0C E8 INX $83/AA0D A5 00 LDA $00 ; This line could be removed!?! $83/AA0F C6 06 DEC $06 ; Decrement number of colors to do $83/AA11 D0 8E BNE $8E ; [$A9A1] Loop until counter runs out $83/AA13 60 RTS
$83/AA14 ?
Jump to the subroutine above
$83/AA14 8B PHB A:009C X:DEA2 Y:7000 P:eNvMxdizC $83/AA15 4B PHK A:009C X:DEA2 Y:7000 P:eNvMxdizC $83/AA16 AB PLB A:009C X:DEA2 Y:7000 P:eNvMxdizC $83/AA17 20 90 A9 JSR $A990 [$83:A990] A:009C X:DEA2 Y:7000 P:eNvMxdizC $83/AA1A AB PLB A:0000 X:0020 Y:0020 P:envMxdiZc $83/AA1B 6B RTL A:0000 X:0020 Y:0020 P:eNvMxdizc
Bank $84
$84/8000 ?
$84/8000 8B PHB ; Buffer Data Bank on stack $84/8001 4B PHK ; Set Data Bank to $84 $84/8002 AB PLB $84/8003 9C F4 05 STZ $05F4 [$84:05F4] A:0000 X:0040 Y:0000 P:eNvMxdizC $84/8006 9C F5 05 STZ $05F5 [$84:05F5] A:0000 X:0040 Y:0000 P:eNvMxdizC $84/8009 9C C7 0E STZ $0EC7 ; Clear Counter of used VRAM DMA Pipeline Entries $84/800C 9C C9 11 STZ $11C9 ; Clear Number of the next free Animation VRAM DMA slot $84/800F 9C CA 11 STZ $11CA ; Clear Number of the first used Animation VRAM DMA slot $84/8012 9C C5 0E STZ $0EC5 ; Clear Data Size used VRAM DMA Pipeline Entries - Low Byte $84/8015 9C C6 0E STZ $0EC6 ; Clear Data Size used VRAM DMA Pipeline Entries - High Byte $84/8018 22 5F 80 84 JSL $84805F[$84:805F] A:0000 X:0040 Y:0000 P:eNvMxdizC $84/801C AD F4 05 LDA $05F4 [$84:05F4] A:0001 X:0026 Y:12C0 P:eNvMxdizc $84/801F D0 F7 BNE $F7 [$8018] A:0001 X:0026 Y:12C0 P:envMxdizc $84/8021 A9 03 LDA #$03 A:0000 X:0026 Y:001E P:envMxdiZC $84/8023 85 36 STA $36 [$00:0036] A:0003 X:0026 Y:001E P:envMxdizC $84/8025 AB PLB ; Restore Data Bank from stack $84/8026 6B RTL
$84/805F Do the Tile/Figure Animation
$05F4 is the General Animation Counter. It counts each frame from #$00 to #$07 and then gets reset. In the frames when the counter is $#00 or $01, this subroutine does the Tile Animation, like the movement of the water in the Opening Battle - it replaces the Tile graphics in VRAM via DMA. The other 6 counter steps/frames, this subroutine changes the Tile Graphics for two or four Figures.
$84/805F 8B PHB ; Preserve Data Bank on Stack $84/8060 4B PHK ; Change Data Bank to $84 $84/8061 AB PLB $84/8062 AD C9 11 LDA $11C9 ; Load Number of the next free Animation VRAM DMA slot $84/8065 CD CA 11 CMP $11CA ; Check if all Animation VRAM DMA slots are used $84/8068 F0 03 BEQ $03 ; [$806D] Branch if they are $84/806A 4C CA 80 JMP $80CA ; Exit if not $84/806D D4 39 PEI ($39) ; Push $39-$3C on Stack $84/806F D4 3B PEI ($3B) $84/8071 7B TDC ; Clear 16-bit A $84/8072 AD F4 05 LDA $05F4 ; Load the General Animation Counter $84/8075 0A ASL A ; Use it as a Load Index for the Table at $84/837A - each entry is... $84/8076 0A ASL A ; ... 4 bytes in size, so multiply Value by 4 and... $84/8077 A8 TAY ; Transfer it in Y $84/8078 7B TDC ; Clear 16-bit A $84/8079 B9 7A 83 LDA $837A,y ; Load first byte $84/807C 10 09 BPL $09 ; [$8087] Branch if positive - that means: Animate a Figure! $84/807E C9 FF CMP #$FF ; (This can happen when there are only two figures to do per Frame) $84/8080 F0 39 BEQ $39 ; [$80BB] Increment General Animation Counter and exit $84/8082 20 2E E7 JSR $E72E ; Do the Tile Animation $84/8085 80 34 BRA $34 ; [$80BB] Increment General Animation Counter and exit $84/8087 5A PHY ; Buffer Load Index on Stack $84/8088 A8 TAY ; Transfer it in Y - it's a Figure Number, use it as Load Index $84/8089 B9 AE 17 LDA $17AE,y ; Load Graphic Set of this Figure $84/808C F0 26 BEQ $26 ; [$80B4] Leave this figure out if it has no Graphic Set = isn't activated $84/808E C9 F0 CMP #$F0 A:0001 X:0026 Y:0000 P:envMxdizc $84/8090 B0 04 BCS $04 [$8096] A:0001 X:0026 Y:0000 P:envMxdizc $84/8092 C9 DC CMP #$DC A:0001 X:0026 Y:0000 P:envMxdizc $84/8094 B0 1E BCS $1E [$80B4] A:0001 X:0026 Y:0000 P:envMxdizc $84/8096 BE 3E 1E LDX $1E3E,y[$84:1E3E] A:0001 X:0026 Y:0000 P:envMxdizc $84/8099 BD 03 06 LDA $0603,x[$84:0603] A:0001 X:0000 Y:0000 P:envMxdiZc $84/809C F0 16 BEQ $16 [$80B4] A:0001 X:0000 Y:0000 P:envMxdizc $84/809E B9 DF 19 LDA $19DF,y[$84:19DF] A:0001 X:0000 Y:0000 P:envMxdizc $84/80A1 89 40 BIT #$40 A:0000 X:0000 Y:0000 P:envMxdiZc $84/80A3 D0 0F BNE $0F [$80B4] A:0000 X:0000 Y:0000 P:envMxdiZc $84/80A5 B9 DE 19 LDA $19DE,y[$84:19DE] A:0000 X:0000 Y:0000 P:envMxdiZc $84/80A8 89 02 BIT #$02 A:0000 X:0000 Y:0000 P:envMxdiZc $84/80AA D0 08 BNE $08 [$80B4] A:0000 X:0000 Y:0000 P:envMxdiZc $84/80AC BD C3 06 LDA $06C3,x[$84:06C3] A:0000 X:0000 Y:0000 P:envMxdiZc $84/80AF F0 03 BEQ $03 [$80B4] A:0008 X:0000 Y:0000 P:envMxdizc $84/80B1 20 CC 80 JSR $80CC [$84:80CC] A:0008 X:0000 Y:0000 P:envMxdizc $84/80B4 7A PLY ; Restore Load Index $84/80B5 C8 INY ; Increment it $84/80B6 98 TYA ; These two lines check if it was the fourth time it was incremented... $84/80B7 89 03 BIT #$03 $84/80B9 D0 BD BNE $BD ; [$8078] Loop if it wasn't, else go on - inc General Anim Counter and exit $84/80BB AD F4 05 LDA $05F4 ; Load the General Animation Counter $84/80BE 1A INC A ; Increment it $84/80BF 29 07 AND #$07 ; Jump back to #$00 if it was #$07 before $84/80C1 8D F4 05 STA $05F4 ; Store General Animation Counter back $84/80C4 FA PLX ; Restore $39-$3B from Stack $84/80C5 86 3B STX $3B $84/80C7 FA PLX $84/80C8 86 39 STX $39 $84/80CA AB PLB ; Restore Data Bank $84/80CB 6B RTL
$84/80CC 86 3B STX $3B ; ??? (Buffer Figure's 1E3E value) $84/80CE 84 39 STY $39 ; Buffer Figure's Number $84/80D0 B9 DF 19 LDA $19DF,y[$84:19DF] A:0008 X:0000 Y:0000 P:envMxdizc $84/80D3 10 20 BPL $20 [$80F5] A:0000 X:0000 Y:0000 P:envMxdiZc $84/80F5 B9 AE 17 LDA $17AE,y ; Load Figure's Graphic Set $84/80F8 C9 F0 CMP #$F0 A:0032 X:0000 Y:0000 P:envMxdizc $84/80FA B0 25 BCS $25 [$8121] A:0032 X:0000 Y:0000 P:envMxdizc $84/80FC B9 DE 19 LDA $19DE,y[$84:19DE] A:0032 X:0000 Y:0000 P:envMxdizc $84/80FF 4A LSR A A:0000 X:0000 Y:0000 P:envMxdiZc $84/8100 90 0B BCC $0B [$810D] A:0000 X:0000 Y:0000 P:envMxdiZc $84/810D BB TYX A:0000 X:0000 Y:0000 P:envMxdiZc $84/810E 20 67 C2 JSR $C267 [$84:C267] A:0000 X:0000 Y:0000 P:envMxdiZc $84/8111 D9 EF 1D CMP $1DEF,y[$84:1DEF] A:0001 X:0000 Y:0000 P:envMxdiZc $84/8114 F0 0B BEQ $0B [$8121] A:0001 X:0000 Y:0000 P:envMxdiZC $84/8121 B9 17 1E LDA $1E17,y[$84:1E17] A:0001 X:0000 Y:0000 P:envMxdiZC $84/8124 F0 06 BEQ $06 [$812C] A:0001 X:0000 Y:0000 P:envMxdizC $84/8126 3A DEC A A:0001 X:0000 Y:0000 P:envMxdizC $84/8127 99 17 1E STA $1E17,y[$84:1E17] A:0000 X:0000 Y:0000 P:envMxdiZC $84/812A D0 45 BNE $45 [$8171] A:0000 X:0000 Y:0000 P:envMxdiZC $84/812C 7B TDC A:0000 X:0000 Y:0000 P:envMxdiZC $84/812D B9 EF 1D LDA $1DEF,y[$84:1DEF] A:0000 X:0000 Y:0000 P:envMxdiZC $84/8130 AA TAX A:0001 X:0000 Y:0000 P:envMxdizC $84/8131 BD A6 83 LDA $83A6,x[$84:83A7] A:0001 X:0001 Y:0000 P:envMxdizC $84/8134 18 CLC A:0005 X:0001 Y:0000 P:envMxdizC $84/8135 79 16 1E ADC $1E16,y[$84:1E16] A:0005 X:0001 Y:0000 P:envMxdizc $84/8138 AA TAX A:0009 X:0001 Y:0000 P:envMxdizc $84/8139 BD C9 83 LDA $83C9,x[$84:83D2] A:0009 X:0009 Y:0000 P:envMxdizc $84/813C 10 07 BPL $07 [$8145] A:00FF X:0009 Y:0000 P:eNvMxdizc $84/813E A9 00 LDA #$00 A:00FF X:0009 Y:0000 P:eNvMxdizc $84/8140 99 16 1E STA $1E16,y[$84:1E16] A:0000 X:0009 Y:0000 P:envMxdiZc $84/8143 80 E7 BRA $E7 [$812C] A:0000 X:0009 Y:0000 P:envMxdiZc $84/8145 48 PHA A:0007 X:0005 Y:0000 P:envMxdizc $84/8146 B9 DE 19 LDA $19DE,y[$84:19DE] A:0007 X:0005 Y:0000 P:envMxdizc $84/8149 89 20 BIT #$20 A:0000 X:0005 Y:0000 P:envMxdiZc $84/814B D0 0E BNE $0E [$815B] A:0000 X:0005 Y:0000 P:envMxdiZc $84/814D 89 40 BIT #$40 A:0000 X:0005 Y:0000 P:envMxdiZc $84/814F D0 05 BNE $05 [$8156] A:0000 X:0005 Y:0000 P:envMxdiZc $84/8151 BD 9C 84 LDA $849C,x[$84:84A1] A:0000 X:0005 Y:0000 P:envMxdiZc $84/8154 80 08 BRA $08 [$815E] A:0001 X:0005 Y:0000 P:envMxdizc $84/815E 99 17 1E STA $1E17,y[$84:1E17] A:0001 X:0005 Y:0000 P:envMxdizc $84/8161 B9 16 1E LDA $1E16,y[$84:1E16] A:0001 X:0005 Y:0000 P:envMxdizc $84/8164 1A INC A A:0000 X:0005 Y:0000 P:envMxdiZc $84/8165 99 16 1E STA $1E16,y[$84:1E16] A:0001 X:0005 Y:0000 P:envMxdizc $84/8168 68 PLA A:0001 X:0005 Y:0000 P:envMxdizc $84/8169 A6 3B LDX $3B [$00:003B] A:0007 X:0005 Y:0000 P:envMxdizc $84/816B 9D C4 06 STA $06C4,x[$84:06C4] A:0007 X:0000 Y:0000 P:envMxdiZc $84/816E 20 72 81 JSR $8172 [$84:8172] A:0007 X:0000 Y:0000 P:envMxdiZc $84/8171 60 RTS A:00FF X:000E Y:8A23 P:envMxdiZC
$84/8172 3A DEC A A:0007 X:0000 Y:0000 P:envMxdiZc $84/8173 30 5E BMI $5E ; [$81D3] Exit if A was 0 $84/8175 0A ASL A A:0006 X:0000 Y:0000 P:envMxdizc $84/8176 85 00 STA $00 [$00:0000] A:000C X:0000 Y:0000 P:envMxdizc $84/8178 64 01 STZ $01 [$00:0001] A:000C X:0000 Y:0000 P:envMxdizc $84/817A 7B TDC A:000C X:0000 Y:0000 P:envMxdizc $84/817B BD 03 06 LDA $0603,x[$84:0603] A:0000 X:0000 Y:0000 P:envMxdiZc $84/817E 3A DEC A A:0001 X:0000 Y:0000 P:envMxdizc $84/817F C2 20 REP #$20 A:0000 X:0000 Y:0000 P:envMxdiZc $84/8181 0A ASL A A:0000 X:0000 Y:0000 P:envmxdiZc $84/8182 A8 TAY A:0000 X:0000 Y:0000 P:envmxdiZc $84/8183 B9 15 87 LDA $8715,y[$84:8715] A:0000 X:0000 Y:0000 P:envmxdiZc $84/8186 65 00 ADC $00 [$00:0000] A:87D5 X:0000 Y:0000 P:eNvmxdizc $84/8188 A8 TAY A:87E1 X:0000 Y:0000 P:eNvmxdizc $84/8189 B9 00 00 LDA $0000,y[$84:87E1] A:87E1 X:0000 Y:87E1 P:eNvmxdizc $84/818C A8 TAY A:8A14 X:0000 Y:87E1 P:eNvmxdizc $84/818D BD C3 06 LDA $06C3,x[$84:06C3] A:8A14 X:0000 Y:8A14 P:eNvmxdizc $84/8190 29 FF 00 AND #$00FF A:0708 X:0000 Y:8A14 P:envmxdizc $84/8193 20 13 9E JSR $9E13 [$84:9E13] A:0008 X:0000 Y:8A14 P:envmxdizc $84/8196 85 02 STA $02 [$00:0002] A:4400 X:0000 Y:8A14 P:envmxdizc $84/8198 85 04 STA $04 [$00:0004] A:4400 X:0000 Y:8A14 P:envmxdizc $84/819A E2 20 SEP #$20 A:4400 X:0000 Y:8A14 P:envmxdizc $84/819C 7B TDC A:4400 X:0000 Y:8A14 P:envMxdizc $84/819D B9 00 00 LDA $0000,y[$84:8A14] A:0000 X:0000 Y:8A14 P:envMxdiZc $84/81A0 10 09 BPL $09 [$81AB] A:0081 X:0000 Y:8A14 P:eNvMxdizc $84/81A2 C9 FF CMP #$FF A:0081 X:0000 Y:8A14 P:eNvMxdizc $84/81A4 F0 2D BEQ $2D [$81D3] A:0081 X:0000 Y:8A14 P:eNvMxdizc $84/81A6 20 1A 82 JSR $821A [$84:821A] A:0081 X:0000 Y:8A14 P:eNvMxdizc $84/81A9 80 F1 BRA $F1 [$819C] A:3A01 X:0000 Y:8A16 P:eNvMxdizc $84/81AB C2 20 REP #$20 A:0002 X:0000 Y:8A16 P:envMxdizc $84/81AD EB XBA A:0002 X:0000 Y:8A16 P:envmxdizc $84/81AE 4A LSR A A:0200 X:0000 Y:8A16 P:envmxdiZc $84/81AF 4A LSR A A:0100 X:0000 Y:8A16 P:envmxdizc $84/81B0 4A LSR A A:0080 X:0000 Y:8A16 P:envmxdizc $84/81B1 85 0C STA $0C [$00:000C] A:0040 X:0000 Y:8A16 P:envmxdizc $84/81B3 E2 20 SEP #$20 A:0040 X:0000 Y:8A16 P:envmxdizc $84/81B5 BE 01 00 LDX $0001,y[$84:8A17] A:0040 X:0000 Y:8A16 P:envMxdizc $84/81B8 C8 INY A:0040 X:0728 Y:8A16 P:envMxdizc $84/81B9 C8 INY A:0040 X:0728 Y:8A17 P:eNvMxdizc $84/81BA C8 INY A:0040 X:0728 Y:8A18 P:eNvMxdizc $84/81BB 5A PHY A:0040 X:0728 Y:8A19 P:eNvMxdizc $84/81BC 20 D4 81 JSR $81D4 [$84:81D4] A:0040 X:0728 Y:8A19 P:eNvMxdizc $84/81BF A4 04 LDY $04 ; Load VRAM Destination $84/81C1 22 B7 9F 80 JSL $809FB7 ; Animation VRAM DMA $84/81C5 7A PLY A:9F05 X:0008 Y:4400 P:eNvMxdizc $84/81C6 C2 20 REP #$20 A:9F05 X:0008 Y:8A19 P:eNvMxdizc $84/81C8 A5 0C LDA $0C [$00:000C] A:9F05 X:0008 Y:8A19 P:eNvmxdizc $84/81CA 4A LSR A A:0040 X:0008 Y:8A19 P:envmxdizc $84/81CB 65 04 ADC $04 [$00:0004] A:0020 X:0008 Y:8A19 P:envmxdizc $84/81CD 85 04 STA $04 [$00:0004] A:4420 X:0008 Y:8A19 P:envmxdizc $84/81CF E2 20 SEP #$20 A:4420 X:0008 Y:8A19 P:envmxdizc $84/81D1 80 C9 BRA $C9 [$819C] A:4420 X:0008 Y:8A19 P:envMxdizc $84/81D3 60 RTS
$84/81D4 C2 21 REP #$21 A:0040 X:0728 Y:8A19 P:eNvMxdizc $84/81D6 8A TXA A:0040 X:0728 Y:8A19 P:eNvmxdizc $84/81D7 10 13 BPL $13 [$81EC] A:0728 X:0728 Y:8A19 P:envmxdizc $84/81D9 0A ASL A A:8000 X:8000 Y:89D9 P:eNvmxdizc $84/81DA 0A ASL A A:0000 X:8000 Y:89D9 P:envmxdiZC $84/81DB 0A ASL A A:0000 X:8000 Y:89D9 P:envmxdiZc $84/81DC 0A ASL A A:0000 X:8000 Y:89D9 P:envmxdiZc $84/81DD 0A ASL A A:0000 X:8000 Y:89D9 P:envmxdiZc $84/81DE 69 00 80 ADC #$8000 A:0000 X:8000 Y:89D9 P:envmxdiZc $84/81E1 EB XBA A:8000 X:8000 Y:89D9 P:eNvmxdizc $84/81E2 E2 20 SEP #$20 A:0080 X:8000 Y:89D9 P:eNvmxdizc $84/81E4 65 39 ADC $39 [$00:0039] A:0080 X:8000 Y:89D9 P:eNvMxdizc $84/81E6 EB XBA A:0086 X:8000 Y:89D9 P:eNvMxdizc $84/81E7 AA TAX A:8600 X:8000 Y:89D9 P:envMxdiZc $84/81E8 A9 7E LDA #$7E A:8600 X:8600 Y:89D9 P:eNvMxdizc $84/81EA 80 2D BRA $2D [$8219] A:867E X:8600 Y:89D9 P:envMxdizc $84/81EC 0A ASL A ; Multiply by #$20 $84/81ED 0A ASL A $84/81EE 0A ASL A $84/81EF 0A ASL A $84/81F0 0A ASL A $84/81F1 29 FF 7F AND #$7FFF ; This line could be removed? $84/81F4 18 CLC ; This line could be removed? $84/81F5 69 00 80 ADC #$8000 ; This line could be removed? $84/81F8 09 00 80 ORA #$8000 ; Set MSB $84/81FB 85 06 STA $06 [$00:0006] A:E500 X:0728 Y:8A19 P:eNvmxdizc $84/81FD 8A TXA A:E500 X:0728 Y:8A19 P:eNvmxdizc $84/81FE EB XBA A:0728 X:0728 Y:8A19 P:envmxdizc $84/81FF E2 20 SEP #$20 A:2807 X:0728 Y:8A19 P:envmxdizc $84/8201 08 PHP A:2807 X:0728 Y:8A19 P:envMxdizc $84/8202 4A LSR A A:2807 X:0728 Y:8A19 P:envMxdizc $84/8203 4A LSR A A:2803 X:0728 Y:8A19 P:envMxdizC $84/8204 28 PLP A:2801 X:0728 Y:8A19 P:envMxdizC $84/8205 69 B7 ADC #$B7 A:2801 X:0728 Y:8A19 P:envMxdizc $84/8207 85 08 STA $08 [$00:0008] A:28B8 X:0728 Y:8A19 P:eNvMxdizc $84/8209 C2 21 REP #$21 A:28B8 X:0728 Y:8A19 P:eNvMxdizc $84/820B A5 20 LDA $20 [$00:0020] A:28B8 X:0728 Y:8A19 P:eNvmxdizc $84/820D 65 06 ADC $06 [$00:0006] A:3A00 X:0728 Y:8A19 P:envmxdizc $84/820F 09 00 80 ORA #$8000 A:1F00 X:0728 Y:8A19 P:envmxdizC $84/8212 AA TAX A:9F00 X:0728 Y:8A19 P:eNvmxdizC $84/8213 E2 20 SEP #$20 A:9F00 X:9F00 Y:8A19 P:eNvmxdizC $84/8215 A5 22 LDA $22 [$00:0022] A:9F00 X:9F00 Y:8A19 P:eNvMxdizC $84/8217 65 08 ADC $08 [$00:0008] A:9F01 X:9F00 Y:8A19 P:envMxdizC $84/8219 60 RTS A:9FBA X:9F00 Y:8A19 P:eNvMxdizc
$84/821A Use Jump Table
$84/821A 0A ASL A A:0081 X:0000 Y:89C4 P:eNvMxdizc $84/821B AA TAX A:0002 X:0000 Y:89C4 P:envMxdizC $84/821C 7C 1F 82 JMP ($821F,x)[$84:8254] A:0002 X:0002 Y:89C4 P:envMxdizC
$84/821F Jump Table for $84/821A
2F 82 - $822F - Entry #$00 54 82 - $8254 - Entry #$01 3E 82 - $823E - Entry #$02 54 82 - $8254 - Entry #$03 A4 82 - $82A4 - Entry #$04 E4 82 - $82E4 - Entry #$05 CD 82 - $82CD - Entry #$06 4D 83 - $834D - Entry #$07
$84/822F ?
$84/822F C2 21 REP #$21 A:0000 X:0000 Y:8A1C P:envMxdiZC $84/8231 A5 02 LDA $02 [$00:0002] A:0000 X:0000 Y:8A1C P:envmxdiZc $84/8233 69 00 01 ADC #$0100 A:4400 X:0000 Y:8A1C P:envmxdizc $84/8236 85 02 STA $02 [$00:0002] A:4500 X:0000 Y:8A1C P:envmxdizc $84/8238 85 04 STA $04 [$00:0004] A:4500 X:0000 Y:8A1C P:envmxdizc $84/823A E2 20 SEP #$20 A:4500 X:0000 Y:8A1C P:envmxdizc $84/823C C8 INY A:4500 X:0000 Y:8A1C P:envMxdizc $84/823D 60 RTS A:4500 X:0000 Y:8A1D P:eNvMxdizc
$84/8254 ?
$84/8254 A6 39 LDX $39 [$00:0039] A:0002 X:0002 Y:8A14 P:envMxdizC $84/8256 22 38 A1 88 JSL $88A138 ; Load Figure's Character Class/Graphic Set number $84/825A DA PHX ; Buffer X (Figure Number) on stack $84/825B C2 20 REP #$20 ; A = 16-bit $84/825D 0A ASL A ; X = A * 4 (To use it as Load Index for... $84/825E 0A ASL A ; ... a Table with 4 byte entries) $84/825F AA TAX $84/8260 E2 20 SEP #$20 ; A = 8-bit $84/8262 7B TDC ; Clear 16-bit A $84/8263 BF 41 A6 84 LDA $84A641,x[$84:A709] A:0000 X:00C8 Y:8A14 P:envMxdiZc $84/8267 FA PLX ; Restore X (Figure Number from $39) from stack $84/8268 85 20 STA $20 [$00:0020] A:001F X:0000 Y:8A14 P:envMxdiZc $84/826A 64 21 STZ $21 [$00:0021] A:001F X:0000 Y:8A14 P:envMxdiZc $84/826C B9 01 00 LDA $0001,y[$84:8A15] A:001F X:0000 Y:8A14 P:envMxdiZc $84/826F D0 04 BNE $04 [$8275] A:0006 X:0000 Y:8A14 P:envMxdizc
- code is missing here
$84/8275 C9 03 CMP #$03 A:0006 X:0000 Y:8A14 P:envMxdizc $84/8277 D0 0D BNE $0D [$8286] A:0006 X:0000 Y:8A14 P:envMxdizC $84/8279 C2 21 REP #$21 A:0003 X:0000 Y:8A14 P:envMxdiZC $84/827B A5 20 LDA $20 [$00:0020] A:0003 X:0000 Y:8A14 P:envmxdiZc $84/827D 0A ASL A A:003E X:0000 Y:8A14 P:envmxdizc $84/827E 65 20 ADC $20 [$00:0020] A:007C X:0000 Y:8A14 P:envmxdizc $84/8280 85 20 STA $20 [$00:0020] A:00BA X:0000 Y:8A14 P:envmxdizc $84/8282 E2 20 SEP #$20 A:00BA X:0000 Y:8A14 P:envmxdizc $84/8284 80 09 BRA $09 [$828F] A:00BA X:0000 Y:8A14 P:envMxdizc $84/8286 4A LSR A A:0006 X:0000 Y:8A14 P:envMxdizC $84/8287 F0 06 BEQ $06 [$828F] A:0003 X:0000 Y:8A14 P:envMxdizc $84/8289 06 20 ASL $20 [$00:0020] A:0003 X:0000 Y:8A14 P:envMxdizc $84/828B 26 21 ROL $21 [$00:0021] A:0003 X:0000 Y:8A14 P:envMxdizc $84/828D 80 E6 BRA $E6 [$8275] A:0003 X:0000 Y:8A14 P:envMxdiZc $84/828F C2 20 REP #$20 A:00BA X:0000 Y:8A14 P:envMxdizc $84/8291 A5 20 LDA $20 [$00:0020] A:00BA X:0000 Y:8A14 P:envmxdizc $84/8293 E2 20 SEP #$20 A:00BA X:0000 Y:8A14 P:envmxdizc $84/8295 C9 80 CMP #$80 A:00BA X:0000 Y:8A14 P:envMxdizc $84/8297 29 7F AND #$7F A:00BA X:0000 Y:8A14 P:envMxdizC $84/8299 64 20 STZ $20 [$00:0020] A:003A X:0000 Y:8A14 P:envMxdizC $84/829B 85 21 STA $21 [$00:0021] A:003A X:0000 Y:8A14 P:envMxdizC $84/829D EB XBA A:003A X:0000 Y:8A14 P:envMxdizC $84/829E 2A ROL A A:3A00 X:0000 Y:8A14 P:envMxdiZC $84/829F 85 22 STA $22 [$00:0022] A:3A01 X:0000 Y:8A14 P:envMxdizc $84/82A1 C8 INY A:3A01 X:0000 Y:8A14 P:envMxdizc $84/82A2 C8 INY A:3A01 X:0000 Y:8A15 P:eNvMxdizc $84/82A3 60 RTS
$84/82A4 ?
$84/82A4 7B TDC A:0008 X:0008 Y:8C90 P:envMxdizC $84/82A5 B9 01 00 LDA $0001,y[$84:8C91] A:0000 X:0008 Y:8C90 P:envMxdiZC $84/82A8 C2 20 REP #$20 A:0002 X:0008 Y:8C90 P:envMxdizC $84/82AA EB XBA A:0002 X:0008 Y:8C90 P:envmxdizC $84/82AB 4A LSR A A:0200 X:0008 Y:8C90 P:envmxdiZC $84/82AC 4A LSR A A:0100 X:0008 Y:8C90 P:envmxdizc $84/82AD 4A LSR A A:0080 X:0008 Y:8C90 P:envmxdizc $84/82AE 85 0C STA $0C [$00:000C] A:0040 X:0008 Y:8C90 P:envmxdizc $84/82B0 E2 20 SEP #$20 A:0040 X:0008 Y:8C90 P:envmxdizc $84/82B2 C8 INY A:0040 X:0008 Y:8C90 P:envMxdizc $84/82B3 C8 INY A:0040 X:0008 Y:8C91 P:eNvMxdizc $84/82B4 5A PHY A:0040 X:0008 Y:8C92 P:eNvMxdizc $84/82B5 A4 04 LDY $04 [$00:0004] A:0040 X:0008 Y:8C92 P:eNvMxdizc $84/82B7 A2 15 B8 LDX #$B815 ; VRAM DMA Source Address: #$84/B815 $84/82BA A9 84 LDA #$84 $84/82BC 22 B7 9F 80 JSL $809FB7 ; Animation VRAM DMA $84/82C0 7A PLY A:1800 X:0040 Y:4740 P:eNvMxdizc $84/82C1 C2 20 REP #$20 A:1800 X:0040 Y:8C92 P:eNvMxdizc $84/82C3 A5 0C LDA $0C [$00:000C] A:1800 X:0040 Y:8C92 P:eNvmxdizc $84/82C5 4A LSR A A:0040 X:0040 Y:8C92 P:envmxdizc $84/82C6 65 04 ADC $04 [$00:0004] A:0020 X:0040 Y:8C92 P:envmxdizc $84/82C8 85 04 STA $04 [$00:0004] A:4760 X:0040 Y:8C92 P:envmxdizc $84/82CA E2 20 SEP #$20 A:4760 X:0040 Y:8C92 P:envmxdizc $84/82CC 60 RTS A:4760 X:0040 Y:8C92 P:envMxdizc
$84/837A Tile/Sprite Animation To-Do-List for each General Animation Counter Value
80 FF FF FF - Entry #$00 - Do the Tile Animation 81 FF FF FF - Entry #$01 - Do the Tile Animation and Increment $05F5 00 02 04 06 - Entry #$02 - Do the Figure Animation for #$00, #$02, #$04 and #$06 08 0A 0C 0E - Entry #$03 - Do the Figure Animation for #$08, #$0A, #$0C and #$0E 10 12 FF FF - Entry #$04 - Do the Figure Animation for #$10, and #$12 14 16 18 1A - Entry #$05 - Do the Figure Animation for #$14, #$16, #$18 and #$1A 1C 1E 20 22 - Entry #$06 - Do the Figure Animation for #$1C, #$1E, #$20 and #$22 24 26 FF FF - Entry #$07 - Do the Figure Animation for #$24, and #$26
$84/964C ?
$84/964C 8B PHB ; Preserve Data Bank on Stack $84/964D 4B PHK ; Change Data Bank to $84 $84/964E AB PLB $84/964F 20 54 96 JSR $9654 [$84:9654] A:0000 X:003E Y:000A P:eNvMxdizc $84/9652 AB PLB ; Restore old bank $84/9653 6B RTL
$84/9654 ?
$84/9654 08 PHP ; Push Status Register $84/9655 C2 10 REP #$10 ; X/Y = 16 bit $84/9657 BD 04 07 LDA $0704,x[$84:0742] A:0000 X:003E Y:000A P:eNvMxdizc $84/965A 89 04 BIT #$04 A:0000 X:003E Y:000A P:envMxdiZc $84/965C F0 07 BEQ $07 [$9665] A:0000 X:003E Y:000A P:envMxdiZc
- Code is missing here
$84/9665 BD 84 06 LDA $0684,x[$84:06C2] A:0000 X:003E Y:000A P:envMxdiZc $84/9668 F0 0B BEQ $0B [$9675] A:0005 X:003E Y:000A P:envMxdizc $84/966A C9 FF CMP #$FF A:0005 X:003E Y:000A P:envMxdizc $84/966C F0 05 BEQ $05 [$9673] A:0005 X:003E Y:000A P:envMxdizc $84/966E DE 84 06 DEC $0684,x[$84:06C2] A:0005 X:003E Y:000A P:envMxdizc $84/9671 F0 02 BEQ $02 [$9675] A:0005 X:003E Y:000A P:envMxdizc $84/9673 28 PLP ; Restore Status Register $84/9674 60 RTS $84/9675 8B PHB A:0001 X:003E Y:000A P:envMxdiZc $84/9676 A9 8A LDA #$8A A:0001 X:003E Y:000A P:envMxdiZc $84/9678 48 PHA A:008A X:003E Y:000A P:eNvMxdizc $84/9679 AB PLB A:008A X:003E Y:000A P:eNvMxdizc $84/967A 7B TDC A:008A X:003E Y:000A P:eNvMxdizc $84/967B BD 03 06 LDA $0603,x[$8A:0641] A:0000 X:003E Y:000A P:envMxdiZc $84/967E F0 35 BEQ $35 [$96B5] A:00C9 X:003E Y:000A P:eNvMxdizc $84/9680 BD 43 06 LDA $0643,x[$8A:0681] A:00C9 X:003E Y:000A P:eNvMxdizc $84/9683 C2 20 REP #$20 A:00C9 X:003E Y:000A P:eNvMxdizc $84/9685 0A ASL A A:00C9 X:003E Y:000A P:eNvmxdizc $84/9686 A8 TAY A:0192 X:003E Y:000A P:envmxdizc $84/9687 B9 7A ED LDA $ED7A,y[$8A:EF0C] A:0192 X:003E Y:0192 P:envmxdizc $84/968A 85 20 STA $20 [$00:0020] A:F131 X:003E Y:0192 P:eNvmxdizc $84/968C E2 20 SEP #$20 A:F131 X:003E Y:0192 P:eNvmxdizc $84/968E 7B TDC A:F131 X:003E Y:0192 P:eNvMxdizc $84/968F BD 44 06 LDA $0644,x[$8A:0682] A:0000 X:003E Y:0192 P:envMxdiZc $84/9692 0A ASL A A:0000 X:003E Y:0192 P:envMxdiZc $84/9693 A8 TAY A:0000 X:003E Y:0192 P:envMxdiZc $84/9694 C2 20 REP #$20 A:0000 X:003E Y:0000 P:envMxdiZc $84/9696 B1 20 LDA ($20),y[$8A:F131] A:0000 X:003E Y:0000 P:envmxdiZc $84/9698 85 29 STA $29 [$00:0029] A:F13D X:003E Y:0000 P:eNvmxdizc $84/969A E2 20 SEP #$20 A:F13D X:003E Y:0000 P:eNvmxdizc $84/969C 7B TDC A:F13D X:003E Y:0000 P:eNvMxdizc $84/969D BD 83 06 LDA $0683,x[$8A:06C1] A:0000 X:003E Y:0000 P:envMxdiZc $84/96A0 A8 TAY A:0002 X:003E Y:0000 P:envMxdizc $84/96A1 B1 29 LDA ($29),y[$8A:F13F] A:0002 X:003E Y:0002 P:envMxdizc $84/96A3 C8 INY A:0003 X:003E Y:0002 P:envMxdizc $84/96A4 C9 C0 CMP #$C0 A:0003 X:003E Y:0003 P:envMxdizc $84/96A6 B0 12 BCS $12 [$96BA] A:0003 X:003E Y:0003 P:envMxdizc $84/96A8 9D 04 06 STA $0604,x[$8A:0642] A:0003 X:003E Y:0003 P:envMxdizc $84/96AB B1 29 LDA ($29),y[$8A:F140] A:0003 X:003E Y:0003 P:envMxdizc $84/96AD 9D 84 06 STA $0684,x[$8A:06C2] A:0003 X:003E Y:0003 P:envMxdizc $84/96B0 C8 INY A:0003 X:003E Y:0003 P:envMxdizc $84/96B1 98 TYA A:0003 X:003E Y:0004 P:envMxdizc $84/96B2 9D 83 06 STA $0683,x[$8A:06C1] A:0004 X:003E Y:0004 P:envMxdizc $84/96B5 A6 3B LDX $3B [$00:003B] A:0004 X:003E Y:0004 P:envMxdizc $84/96B7 AB PLB A:0004 X:003E Y:0004 P:envMxdizc $84/96B8 28 PLP A:0004 X:003E Y:0004 P:eNvMxdizc $84/96B9 60 RTS
$84/96BA Use Jump Table
$84/96BA 49 FF EOR #$FF A:00FD X:003E Y:0013 P:envMxdizC $84/96BC 0A ASL A ; Multiply by 2 - 2 bytes per entry (16-bit addresses) $84/96BD AA TAX ; Transfer in X $84/96BE C2 20 REP #$20 ; 16-bit A $84/96C0 BF CD 96 84 LDA $8496CD,x ; Load Addres from Address Table $84/96C4 85 00 STA $00 ; Store in $00/1 $84/96C6 E2 20 SEP #$20 ; 8-bit A again $84/96C8 A6 3B LDX $3B [$00:003B] A:97A0 X:0004 Y:0013 P:eNvMxdizc $84/96CA 6C 00 00 JMP ($0000) ; Jump to Address from Address Table
$84/96CD 50 97 --- Entry #$00 - $9750 $84/96CF 87 97 --- Entry #$01 - $9787 $84/96D1 A0 97 --- Entry #$02 - $97A0 $84/96D3 A6 97 --- Entry #$03 - $97A6 $84/96D5 AE 97 --- Entry #$04 - $97AE $84/96D7 CB 97 --- Entry #$05 - $97CB $84/96D9 EE 97 --- Entry #$06 - $97EE $84/96DB 22 98 --- Entry #$07 - $9822 $84/96DD 34 98 --- Entry #$08 - $9834 $84/96DF A6 98 --- Entry #$09 - $98A6 $84/96E1 DF 98 --- Entry #$0A - $98DF $84/96E3 12 99 --- Entry #$0B - $9912 $84/96E5 9B 99 --- Entry #$0C - $999B $84/96E7 C0 99 --- Entry #$0D - $99C0 $84/96E9 DF 99 --- Entry #$0E - $99DF $84/96EB 7A 97 --- Entry #$0F - $977A $84/96ED 73 9A --- Entry #$10 - $9A73 $84/96EF 43 9A --- Entry #$11 - $9A43 $84/96F1 13 9A --- Entry #$12 - $9A13 $84/96F3 37 99 --- Entry #$13 - $9937 $84/96F5 3B 99 --- Entry #$14 - $993B $84/96F7 3F 99 --- Entry #$15 - $993F $84/96F9 61 99 --- Entry #$16 - $9961 $84/96FB 68 99 --- Entry #$17 - $9968 $84/96FD 74 99 --- Entry #$18 - $9974 $84/96FF F2 97 --- Entry #$19 - $97F2 $84/9701 13 98 --- Entry #$1A - $9813 $84/9703 97 99 --- Entry #$1B - $9997 $84/9705 93 99 --- Entry #$1C - $9993 $84/9707 8F 99 --- Entry #$1D - $998F $84/9709 8B 99 --- Entry #$1E - $998B $84/970B 87 99 --- Entry #$1F - $9987 $84/970D 94 9A --- Entry #$20 - $9A94 $84/970F 98 9A --- Entry #$21 - $9A98 $84/9711 9C 9A --- Entry #$22 - $9A9C $84/9713 A0 9A --- Entry #$23 - $9AA0 $84/9715 A4 9A --- Entry #$24 - $9AA4 $84/9717 A8 9A --- Entry #$25 - $9AA8 $84/9719 AC 9A --- Entry #$26 - $9AAC $84/971B B0 9A --- Entry #$27 - $9AB0 $84/971D 08 9B --- Entry #$28 - $9B08 $84/971F 0C 9B --- Entry #$29 - $9B0C $84/9721 10 9B --- Entry #$2A - $9B10 $84/9723 14 9B --- Entry #$2B - $9B14 $84/9725 18 9B --- Entry #$2C - $9B18 $84/9727 1C 9B --- Entry #$2D - $9B1C $84/9729 20 9B --- Entry #$2E - $9B20 $84/972B 24 9B --- Entry #$2F - $9B24 $84/972D 28 9B --- Entry #$30 - $9B28 $84/972F 2C 9B --- Entry #$31 - $9B2C $84/9731 30 9B --- Entry #$32 - $9B30 $84/9733 34 9B --- Entry #$33 - $9B34 $84/9735 38 9B --- Entry #$34 - $9B38 $84/9737 3C 9B --- Entry #$35 - $9B3C $84/9739 40 9B --- Entry #$36 - $9B40 $84/973B 44 9B --- Entry #$37 - $9B44 $84/973D 48 9B --- Entry #$38 - $9B48 $84/973F 4C 9B --- Entry #$39 - $9B4C $84/9741 50 9B --- Entry #$3A - $9B50 $84/9743 54 9B --- Entry #$3B - $9B54 $84/9745 58 9B --- Entry #$3C - $9B58 $84/9747 5C 9B --- Entry #$3D - $9B5C $84/9749 60 9B --- Entry #$3E - $9B60 $84/974B 64 9B --- Entry #$3F - $9B64 $84/974D 4C 9C --- Entry #$40 - $9C4C
$84/9750 ?
$84/9750 BD 04 07 LDA $0704,x[$8A:070A] A:FC80 X:0006 Y:0005 P:eNvMxdizc $84/9753 89 02 BIT #$02 A:FC10 X:0006 Y:0005 P:envMxdizc $84/9755 F0 14 BEQ $14 [$976B] A:FC10 X:0006 Y:0005 P:envMxdiZc
- code is missing here
$84/976B 9E 43 08 STZ $0843,x[$8A:0849] A:FC10 X:0006 Y:0005 P:envMxdiZc $84/976E 7B TDC A:FC10 X:0006 Y:0005 P:envMxdiZc $84/976F BD C4 09 LDA $09C4,x[$8A:09CA] A:0000 X:0006 Y:0005 P:envMxdiZc $84/9772 10 03 BPL $03 [$9777] A:00FF X:0006 Y:0005 P:eNvMxdizc $84/9774 4C B5 96 JMP $96B5 [$84:96B5] A:00FF X:0006 Y:0005 P:eNvMxdizc
$84/977A ?
$84/977A BD 04 07 LDA $0704,x[$8A:070A] A:977A X:0006 Y:0005 P:envMxdizc $84/977D 09 10 ORA #$10 A:9700 X:0006 Y:0005 P:envMxdiZc $84/977F 9D 04 07 STA $0704,x[$8A:070A] A:9710 X:0006 Y:0005 P:envMxdizc $84/9782 20 AB 9B JSR $9BAB [$84:9BAB] A:9710 X:0006 Y:0005 P:envMxdizc $84/9785 80 C9 BRA $C9 [$9750] A:FC80 X:0006 Y:0005 P:eNvMxdizc
$84/97A0 ?
$84/97A0 9E 83 06 STZ $0683,x[$8A:06C1] A:97A0 X:003E Y:0013 P:envMxdizc $84/97A3 4C 9C 96 JMP $969C [$84:969C] A:97A0 X:003E Y:0013 P:envMxdizc
$84/9B10 ?
$84/9B10 A9 E1 LDA #$E1 A:9B10 X:002C Y:000C P:envMxdizc $84/9B12 80 52 BRA $52 [$9B66] A:9BE1 X:002C Y:000C P:eNvMxdizc
$84/9B14 ?
$84/9B14 A9 21 LDA #$21 A:9B14 X:002A Y:003C P:envMxdizc $84/9B16 80 4E BRA $4E [$9B66] A:9B21 X:002A Y:003C P:envMxdizc
$84/9B18 ?
$84/9B18 A9 1F LDA #$1F A:9B18 X:002A Y:0026 P:envMxdizc $84/9B1A 80 4A BRA $4A [$9B66] A:9B1F X:002A Y:0026 P:envMxdizc
$84/9B1C ?
$84/9B1C A9 FF LDA #$FF A:9B1C X:002A Y:0030 P:envMxdizc $84/9B1E 80 46 BRA $46 [$9B66] A:9BFF X:002A Y:0030 P:eNvMxdizc
$84/9B20 ?
$84/9B20 A9 F1 LDA #$F1 A:9B20 X:002A Y:0018 P:envMxdizc $84/9B22 80 42 BRA $42 [$9B66] A:9BF1 X:002A Y:0018 P:eNvMxdizc
$84/9B24 ?
$84/9B24 A9 11 LDA #$11 A:9B24 X:002A Y:0023 P:envMxdizc $84/9B26 80 3E BRA $3E [$9B66] A:9B11 X:002A Y:0023 P:envMxdizc
$84/9B28 ?
$84/9B28 A9 0C LDA #$0C A:9B28 X:002A Y:0022 P:envMxdizc $84/9B2A 80 3A BRA $3A [$9B66] A:9B0C X:002A Y:0022 P:envMxdizc
$84/9B2C ?
$84/9B2C A9 0D LDA #$0D A:9B2C X:002A Y:0033 P:envMxdizc $84/9B2E 80 36 BRA $36 [$9B66] A:9B0D X:002A Y:0033 P:envMxdizc
$84/9B40 ?
$84/9B40 A9 E0 LDA #$E0 A:9B40 X:002A Y:0023 P:envMxdizc $84/9B42 80 22 BRA $22 [$9B66] A:9BE0 X:002A Y:0023 P:eNvMxdizc
$84/9B4C ?
$84/9B4C A9 03 LDA #$03 A:9B4C X:002C Y:000A P:envMxdizc $84/9B4E 80 16 BRA $16 [$9B66] A:9B03 X:002C Y:000A P:envMxdizc
$84/9B5C ?
$84/9B5C A9 30 LDA #$30 A:9B5C X:002A Y:0032 P:envMxdizc $84/9B5E 80 06 BRA $06 [$9B66] A:9B30 X:002A Y:0032 P:envMxdizc
$84/9B66 Change Figure's Position
ONLY EXECUTED DURING BATTLE ANIMATIONS
A contains a 8-bit value. The High Nybble changes the Position on the NW to SE Axis, the Low Nybble changes the Position on the NE to SW Axis. These are "signed nybbles": The MSB of each Nybble (that is bit 3) decides whether or not this is a positive or negative value.
A = #$30: Move 3 on the NW to SE Axis A = #$0D: Move 3 in the other direction on the NE to SW Axis
$84/9B66 48 PHA ; Buffer A on Stack $84/9B67 4A LSR A ; Store Original A's High Nybble as Low Nybble in $00 $84/9B68 4A LSR A $84/9B69 4A LSR A $84/9B6A 4A LSR A $84/9B6B 85 00 STA $00 $84/9B6D 68 PLA ; Restore A from Stack $84/9B6E 29 0F AND #$0F ; Store Low Nybble in $01 $84/9B70 85 01 STA $01 $84/9B72 7B TDC ; Clear 16-bit A $84/9B73 A5 00 LDA $00 ; Load High Nybble $84/9B75 89 08 BIT #$08 ; Branch if MSB of High Nybble was clear $84/9B77 F0 07 BEQ $07 ; [$9B80] $84/9B79 C2 20 REP #$20 ; A = 16-bit $84/9B7B 09 F0 FF ORA #$FFF0 ; Set every else bit $84/9B7E E2 20 SEP #$20 ; This line could be removed? $84/9B80 C2 21 REP #$21 ; A = 16-bit + Set Carry $84/9B82 7D 03 0A ADC $0A03,x ; Add Position - NW to SE Axis $84/9B85 9D 03 0A STA $0A03,x ; Store as Position - NW to SE Axis $84/9B88 E2 20 SEP #$20 ; A = 8-bit $84/9B8A 7B TDC ; Clear 16-bit A $84/9B8B A5 01 LDA $01 ; Load Low Nybble $84/9B8D 89 08 BIT #$08 ; Branch if MSB of Low Nybble was clear $84/9B8F F0 07 BEQ $07 ; [$9B98] $84/9B91 C2 20 REP #$20 ; A = 16-bit $84/9B93 09 F0 FF ORA #$FFF0 ; Set every else bit $84/9B96 E2 20 SEP #$20 ; This line could be removed? $84/9B98 C2 21 REP #$21 ; A = 16-bit + Set Carry $84/9B9A 7D 43 0A ADC $0A43,x ; Add Position - NE to SW Axis $84/9B9D 9D 43 0A STA $0A43,x ; Store as Position - NE to SW Axis $84/9BA0 E2 20 SEP #$20 ; A = 8-bit $84/9BA2 A6 3B LDX $3B [$00:003B] A:0001 X:002A Y:0018 P:envMxdizc $84/9BA4 98 TYA A:0001 X:002A Y:0018 P:envMxdizc $84/9BA5 9D 83 06 STA $0683,x[$8A:06AD] A:0018 X:002A Y:0018 P:envMxdizc $84/9BA8 4C 9C 96 JMP $969C [$84:969C] A:0018 X:002A Y:0018 P:envMxdizc
$84/9BAB ?
$84/9BAB 8B PHB ; Buffer Data Bank on Stack $84/9BAC A9 8B LDA #$8B ; Set Data Bank to $84 $84/9BAE 48 PHA $84/9BAF AB PLB $84/9BB0 DA PHX ; Buffer X and Y on Stack $84/9BB1 5A PHY $84/9BB2 D4 20 PEI ($20) ; Buffer $20/$21 on Stack $84/9BB4 D4 29 PEI ($29) ; Buffer $29/$2A on Stack $84/9BB6 7B TDC ; Clear 16-bit A $84/9BB7 BD 03 06 LDA $0603,x[$8B:0609] A:0000 X:0006 Y:0005 P:envMxdiZc $84/9BBA 3A DEC A A:0030 X:0006 Y:0005 P:envMxdizc $84/9BBB C2 20 REP #$20 A:002F X:0006 Y:0005 P:envMxdizc $84/9BBD 0A ASL A A:002F X:0006 Y:0005 P:envmxdizc $84/9BBE A8 TAY A:005E X:0006 Y:0005 P:envmxdizc $84/9BBF BD 04 06 LDA $0604,x[$8B:060A] A:005E X:0006 Y:005E P:envmxdizc $84/9BC2 3A DEC A A:CA13 X:0006 Y:005E P:eNvmxdizc $84/9BC3 29 FF 00 AND #$00FF A:CA12 X:0006 Y:005E P:eNvmxdizc $84/9BC6 0A ASL A A:0012 X:0006 Y:005E P:envmxdizc $84/9BC7 79 2F A6 ADC $A62F,y[$8B:A68D] A:0024 X:0006 Y:005E P:envmxdizc $84/9BCA A8 TAY A:AF31 X:0006 Y:005E P:eNvmxdizc $84/9BCB B9 00 00 LDA $0000,y[$8B:AF31] A:AF31 X:0006 Y:AF31 P:eNvmxdizc $84/9BCE 85 20 STA $20 [$00:0020] A:CAAB X:0006 Y:AF31 P:eNvmxdizc $84/9BD0 E2 20 SEP #$20 A:CAAB X:0006 Y:AF31 P:eNvmxdizc $84/9BD2 7B TDC A:CAAB X:0006 Y:AF31 P:eNvMxdizc $84/9BD3 18 CLC A:0000 X:0006 Y:AF31 P:envMxdiZc $84/9BD4 BD C3 06 LDA $06C3,x[$8B:06C9] A:0000 X:0006 Y:AF31 P:envMxdiZc $84/9BD7 29 3C AND #$3C A:000D X:0006 Y:AF31 P:envMxdizc $84/9BD9 7D C3 06 ADC $06C3,x[$8B:06C9] A:000C X:0006 Y:AF31 P:envMxdizc $84/9BDC C2 20 REP #$20 A:0019 X:0006 Y:AF31 P:envMxdizc $84/9BDE 0A ASL A A:0019 X:0006 Y:AF31 P:envmxdizc $84/9BDF 0A ASL A A:0032 X:0006 Y:AF31 P:envmxdizc $84/9BE0 85 02 STA $02 [$00:0002] A:0064 X:0006 Y:AF31 P:envmxdizc $84/9BE2 E2 20 SEP #$20 A:0064 X:0006 Y:AF31 P:envmxdizc $84/9BE4 B2 20 LDA ($20) [$8B:CAAB] A:0064 X:0006 Y:AF31 P:envMxdizc $84/9BE6 85 04 STA $04 [$00:0004] A:0091 X:0006 Y:AF31 P:eNvMxdizc $84/9BE8 29 07 AND #$07 A:0091 X:0006 Y:AF31 P:eNvMxdizc $84/9BEA 85 00 STA $00 [$00:0000] A:0001 X:0006 Y:AF31 P:envMxdizc $84/9BEC A5 04 LDA $04 [$00:0004] A:0001 X:0006 Y:AF31 P:envMxdizc $84/9BEE 4A LSR A A:0091 X:0006 Y:AF31 P:eNvMxdizc $84/9BEF 4A LSR A A:0048 X:0006 Y:AF31 P:envMxdizC $84/9BF0 4A LSR A A:0024 X:0006 Y:AF31 P:envMxdizc $84/9BF1 29 07 AND #$07 A:0012 X:0006 Y:AF31 P:envMxdizc $84/9BF3 85 01 STA $01 [$00:0001] A:0002 X:0006 Y:AF31 P:envMxdizc $84/9BF5 B2 20 LDA ($20) [$8B:CAAB] A:0002 X:0006 Y:AF31 P:envMxdizc $84/9BF7 C9 89 CMP #$89 A:0091 X:0006 Y:AF31 P:eNvMxdizc $84/9BF9 D0 05 BNE $05 [$9C00] A:0091 X:0006 Y:AF31 P:envMxdizC
- code is missing here
$84/9C00 C9 91 CMP #$91 A:0091 X:0006 Y:AF31 P:envMxdizC $84/9C02 D0 05 BNE $05 [$9C09] A:0091 X:0006 Y:AF31 P:envMxdiZC $84/9C04 20 AB 9C JSR $9CAB [$84:9CAB] A:0091 X:0006 Y:AF31 P:envMxdiZC $84/9C07 80 07 BRA $07 [$9C10] A:0040 X:0040 Y:0007 P:envMxdiZc
- code is missing here
$84/9C10 22 8A A1 80 JSL $80A18A ; Wait for NMI $84/9C14 A6 3B LDX $3B [$00:003B] A:0080 X:0040 Y:0007 P:eNvMxdizc $84/9C16 BD 04 07 LDA $0704,x[$8B:070A] A:0080 X:0006 Y:0007 P:envMxdizc $84/9C19 89 20 BIT #$20 A:0010 X:0006 Y:0007 P:envMxdizc $84/9C1B D0 08 BNE $08 [$9C25] A:0010 X:0006 Y:0007 P:envMxdiZc $84/9C1D A2 40 FC LDX #$FC40 A:0010 X:0006 Y:0007 P:envMxdiZc $84/9C20 A9 7F LDA #$7F A:0010 X:FC40 Y:0007 P:eNvMxdizc $84/9C22 20 C2 BC JSR $BCC2 [$84:BCC2] A:007F X:FC40 Y:0007 P:envMxdizc $84/9C25 A6 3B LDX $3B [$00:003B] A:FC00 X:0008 Y:FC70 P:eNvMxdizC $84/9C27 7B TDC A:FC00 X:0006 Y:FC70 P:envMxdizC $84/9C28 BD C4 0B LDA $0BC4,x[$8B:0BCA] A:0000 X:0006 Y:FC70 P:envMxdiZC $84/9C2B A8 TAY A:0002 X:0006 Y:FC70 P:envMxdizC $84/9C2C B9 3E 1E LDA $1E3E,y[$8B:1E40] A:0002 X:0006 Y:0002 P:envMxdizC $84/9C2F A8 TAY A:0002 X:0006 Y:0002 P:envMxdizC $84/9C30 B9 C3 06 LDA $06C3,y[$8B:06C5] A:0002 X:0006 Y:0002 P:envMxdizC $84/9C33 C2 20 REP #$20 A:0009 X:0006 Y:0002 P:envMxdizC $84/9C35 20 13 9E JSR $9E13 [$84:9E13] A:0009 X:0006 Y:0002 P:envmxdizC $84/9C38 A8 TAY A:4440 X:0006 Y:0002 P:envmxdizc $84/9C39 84 02 STY $02 [$00:0002] A:4440 X:0006 Y:4440 P:envmxdizc $84/9C3B E2 20 SEP #$20 A:4440 X:0006 Y:4440 P:envmxdizc $84/9C3D AD CE 11 LDA $11CE [$8B:11CE] A:4440 X:0006 Y:4440 P:envMxdizc $84/9C40 85 00 STA $00 [$00:0000] A:4404 X:0006 Y:4440 P:envMxdizc $84/9C42 64 01 STZ $01 [$00:0001] A:4404 X:0006 Y:4440 P:envMxdizc $84/9C44 A2 00 FC LDX #$FC00 A:4404 X:0006 Y:4440 P:envMxdizc $84/9C47 86 04 STX $04 [$00:0004] A:4404 X:FC00 Y:4440 P:eNvMxdizc $84/9C49 9C CE 11 STZ $11CE [$8B:11CE] A:4404 X:FC00 Y:4440 P:eNvMxdizc $84/9C4C 9C CB 11 STZ $11CB [$8B:11CB] A:4404 X:FC00 Y:4440 P:eNvMxdizc $84/9C4F A9 04 LDA #$04 ; Setup Loop Counter for VRAM DMAs $84/9C51 85 00 STA $00 $84/9C53 A9 80 LDA #$80 ; VRAM DMA Settings ($2115): 16-bit transfer $84/9C55 85 0E STA $0E $84/9C57 E2 20 SEP #$20 ; A = 8-bit $84/9C59 A2 40 00 LDX #$0040 ; VRAM DMA Number of bytes to transfer: #$40 $84/9C5C 86 0C STX $0C $84/9C5E A4 02 LDY $02 ; Load DMA VRAM Destination from $02 $84/9C60 A6 04 LDX $04 ; Load DMA Source Address from $04 $84/9C62 A9 7F LDA #$7F ; DMA Source Bank: $7F $84/9C64 22 24 9F 80 JSL $809F24 ; VRAM DMA $84/9C68 C6 00 DEC $00 ; Decrement Loop Counter $84/9C6A F0 35 BEQ $35 ; [$9CA1] Exit if Counter ran out $84/9C6C C2 21 REP #$21 ; A = 16-bit, Clear Carry $84/9C6E A5 0C LDA $0C [$00:000C] A:FC80 X:0000 Y:4440 P:envmxdizc $84/9C70 65 04 ADC $04 [$00:0004] A:0040 X:0000 Y:4440 P:envmxdizc $84/9C72 85 04 STA $04 [$00:0004] A:FC40 X:0000 Y:4440 P:eNvmxdizc $84/9C74 A5 0C LDA $0C [$00:000C] A:FC40 X:0000 Y:4440 P:eNvmxdizc $84/9C76 4A LSR A A:0040 X:0000 Y:4440 P:envmxdizc $84/9C77 65 02 ADC $02 [$00:0002] A:0020 X:0000 Y:4440 P:envmxdizc $84/9C79 85 02 STA $02 [$00:0002] A:4460 X:0000 Y:4440 P:envmxdizc $84/9C7B 29 FF 01 AND #$01FF A:4460 X:0000 Y:4440 P:envmxdizc $84/9C7E C9 00 01 CMP #$0100 A:0060 X:0000 Y:4440 P:envmxdizc $84/9C81 F0 14 BEQ $14 [$9C97] A:0060 X:0000 Y:4440 P:eNvmxdizc $84/9C83 A5 02 LDA $02 [$00:0002] A:0060 X:0000 Y:4440 P:eNvmxdizc $84/9C85 89 1F 00 BIT #$001F A:4460 X:0000 Y:4440 P:envmxdizc $84/9C88 D0 CD BNE $CD [$9C57] A:4460 X:0000 Y:4440 P:envmxdiZc $84/9C8A 89 00 01 BIT #$0100 A:4460 X:0000 Y:4440 P:envmxdiZc $84/9C8D F0 08 BEQ $08 [$9C97] A:4460 X:0000 Y:4440 P:envmxdiZc $84/9C8F 38 SEC A:4560 X:0002 Y:4540 P:envmxdizC $84/9C90 E9 00 01 SBC #$0100 A:4560 X:0002 Y:4540 P:envmxdizC $84/9C93 85 02 STA $02 [$00:0002] A:4460 X:0002 Y:4540 P:envmxdizC $84/9C95 80 C0 BRA $C0 [$9C57] A:4460 X:0002 Y:4540 P:envmxdizC $84/9C97 A5 02 LDA $02 [$00:0002] A:4460 X:0000 Y:4440 P:envmxdiZc $84/9C99 18 CLC A:4460 X:0000 Y:4440 P:envmxdizc $84/9C9A 69 E0 00 ADC #$00E0 A:4460 X:0000 Y:4440 P:envmxdizc $84/9C9D 85 02 STA $02 [$00:0002] A:4540 X:0000 Y:4440 P:envmxdizc $84/9C9F 80 B6 BRA $B6 [$9C57] A:4540 X:0000 Y:4440 P:envmxdizc $84/9CA1 7A PLY ; Restore $29/$2A from Stack $84/9CA2 84 29 STY $29 $84/9CA4 7A PLY ; Restore $20/$21 from Stack $84/9CA5 84 20 STY $20 $84/9CA7 7A PLY ; Restore Y and X from Stack $84/9CA8 FA PLX $84/9CA9 AB PLB ; Restore Data Bank from Stack $84/9CAA 60 RTS
$84/9CAB ?
$84/9CAB A5 01 LDA $01 ; Load number of Loop Runs to do $84/9CAD C9 01 CMP #$01 $84/9CAF D0 15 BNE $15 ; [$9CC6] Branch if number of Loop Runs isn't one
- Code is missing here
$84/9CC6 A0 03 00 LDY #$0003 A:0002 X:000E Y:AF2B P:envMxdizC $84/9CC9 5A PHY A:0002 X:000E Y:0003 P:envMxdizC $84/9CCA 20 2D 9D JSR $9D2D [$84:9D2D] A:0002 X:000E Y:0003 P:envMxdizC $84/9CCD A2 40 00 LDX #$0040 ; Number of Bytes to Load from VRAM $84/9CD0 22 E4 A0 80 JSL $80A0E4 ; Add Entry to the VRAM Read DMA Pipeline $84/9CD4 C2 21 REP #$21 ; 16-bit A, Clear Carry $84/9CD6 98 TYA ; Transfer VRAM Destination in A $84/9CD7 69 00 01 ADC #$0100 ; Add #$0100 $84/9CDA A8 TAY ; Transfer back to Y (to use for the Read DMA) $84/9CDB E2 20 SEP #$20 ; 8-bit A $84/9CDD 22 E4 A0 80 JSL $80A0E4 ; Add Entry to the VRAM Read DMA Pipeline $84/9CE1 7A PLY A:0040 X:0040 Y:5180 P:eNvMxdizc $84/9CE2 C8 INY A:0040 X:0040 Y:0003 P:envMxdizc $84/9CE3 C8 INY A:0040 X:0040 Y:0004 P:envMxdizc $84/9CE4 C6 01 DEC $01 ; Decrement Loop Counter $84/9CE6 D0 E1 BNE $E1 ; [$9CC9] Loop $84/9CE8 60 RTS
$84/9D2D ?
$84/9D2D C2 21 REP #$21 A:0002 X:000E Y:0003 P:envMxdizC $84/9D2F B1 20 LDA ($20),y[$8B:CA99] A:0002 X:000E Y:0003 P:envmxdizc $84/9D31 29 FF 01 AND #$01FF A:00A4 X:000E Y:0003 P:envmxdizc $84/9D34 65 02 ADC $02 [$00:0002] A:00A4 X:000E Y:0003 P:envmxdizc $84/9D36 85 06 STA $06 [$00:0006] A:0108 X:000E Y:0003 P:envmxdizc $84/9D38 51 20 EOR ($20),y[$8B:CA99] A:0108 X:000E Y:0003 P:envmxdizc $84/9D3A 29 10 00 AND #$0010 A:01AC X:000E Y:0003 P:envmxdizc $84/9D3D 18 CLC A:0000 X:000E Y:0003 P:envmxdiZc $84/9D3E 65 06 ADC $06 [$00:0006] A:0000 X:000E Y:0003 P:envmxdiZc $84/9D40 0A ASL A A:0108 X:000E Y:0003 P:envmxdizc $84/9D41 0A ASL A A:0210 X:000E Y:0003 P:envmxdizc $84/9D42 0A ASL A A:0420 X:000E Y:0003 P:envmxdizc $84/9D43 0A ASL A A:0840 X:000E Y:0003 P:envmxdizc $84/9D44 C9 00 10 CMP #$1000 A:1080 X:000E Y:0003 P:envmxdizc $84/9D47 90 0C BCC $0C [$9D55] A:1080 X:000E Y:0003 P:envmxdizC $84/9D49 85 06 STA $06 [$00:0006] A:1080 X:000E Y:0003 P:envmxdizC $84/9D4B AD 88 05 LDA $0588 ; Load $2101 Buffer $84/9D4E 29 18 00 AND #$0018 ; Exempt the Object Size $84/9D51 EB XBA A:0000 X:000E Y:0003 P:envmxdiZC $84/9D52 0A ASL A A:0000 X:000E Y:0003 P:envmxdiZC $84/9D53 65 06 ADC $06 [$00:0006] A:0000 X:000E Y:0003 P:envmxdiZc $84/9D55 85 06 STA $06 [$00:0006] A:1080 X:000E Y:0003 P:envmxdizc $84/9D57 AD 88 05 LDA $0588 ; Load $2101 Buffer $84/9D5A 29 07 00 AND #$0007 ; Exempt the Object Size $84/9D5D 4A LSR A A:0002 X:000E Y:0003 P:envmxdizc $84/9D5E 6A ROR A A:0001 X:000E Y:0003 P:envmxdizc $84/9D5F 6A ROR A A:0000 X:000E Y:0003 P:envmxdiZC $84/9D60 6A ROR A A:8000 X:000E Y:0003 P:eNvmxdizc $84/9D61 65 06 ADC $06 [$00:0006] A:4000 X:000E Y:0003 P:envmxdizc $84/9D63 A8 TAY A:5080 X:000E Y:0003 P:envmxdizc $84/9D64 E2 20 SEP #$20 A:5080 X:000E Y:5080 P:envmxdizc $84/9D66 60 RTS A:5080 X:000E Y:5080 P:envMxdizc
$84/9E13 BATTLE: Calculate VRAM Destination for Animation
This is entered with a value from $06C3,x in A, the High Byte is always cleared.
This subroutine is entered and left with A = 16 bit. The result in A is used as a VRAM destination for a DMA. When this is subroutine is left, A contains:
A = #%xbbb.aaxc.xxxx.xxxx (Big Endian) a = $2101 bits 4 and 3, Name Base bits, Gap between Sprite #$0FF and #$100 b = $2101 bits 2 to 0, Object Size bits
$84/9E13 85 02 STA $02 [$00:0002] A:000F X:0016 Y:89B4 P:envmxdizc $84/9E15 29 3C 00 AND #$003C ; #%0000.0000.0011.1100 $84/9E18 18 CLC A:000C X:0016 Y:89B4 P:envmxdizc $84/9E19 65 02 ADC $02 [$00:0002] A:000C X:0016 Y:89B4 P:envmxdizc $84/9E1B EB XBA A:001B X:0016 Y:89B4 P:envmxdizc $84/9E1C 4A LSR A A:1B00 X:0016 Y:89B4 P:envmxdiZc $84/9E1D 4A LSR A A:0D80 X:0016 Y:89B4 P:envmxdizc $84/9E1E C9 00 10 CMP #$1000 A:06C0 X:0016 Y:89B4 P:envmxdizc $84/9E21 90 0C BCC $0C ; [$9E2F] Leave out the Name Base stuff because it isn't relevant to this sprite(?) $84/9E23 85 02 STA $02 [$00:0002] A:1000 X:0006 Y:0000 P:envmxdiZC $84/9E25 AD 88 05 LDA $0588 ; Load $2101 Buffer $84/9E28 29 18 00 AND #$0018 ; Exempt Name Base bits $84/9E2B EB XBA A:0000 X:0006 Y:0000 P:envmxdiZC $84/9E2C 0A ASL A A:0000 X:0006 Y:0000 P:envmxdiZC $84/9E2D 65 02 ADC $02 [$00:0002] A:0000 X:0006 Y:0000 P:envmxdiZc $84/9E2F 85 02 STA $02 [$00:0002] A:06C0 X:0016 Y:89B4 P:eNvmxdizc $84/9E31 AD 88 05 LDA $0588 ; Load $2101 Buffer $84/9E34 29 07 00 AND #$0007 ; Exempt the Sprite Graphics Base Offset in VRAM $84/9E37 4A LSR A ; Move Sprite Graphics Base Offset to bits 15 to 12 $84/9E38 6A ROR A $84/9E39 6A ROR A $84/9E3A 6A ROR A $84/9E3B 65 02 ADC $02 [$00:0002] A:4000 X:0016 Y:89B4 P:envmxdizc $84/9E3D 60 RTS
$84/9E3E ?
$84/9E3E DA PHX A:3ABC X:3BBC Y:39BC P:envmxdizc $84/9E3F A6 06 LDX $06 [$00:0006] A:3ABC X:3BBC Y:39BC P:envmxdizc $84/9E41 A5 02 LDA $02 [$00:0002] A:3ABC X:8000 Y:39BC P:eNvmxdizc $84/9E43 C9 00 10 CMP #$1000 A:1040 X:8000 Y:39BC P:envmxdizc $84/9E46 90 0A BCC $0A [$9E52] A:1040 X:8000 Y:39BC P:envmxdizC $84/9E48 AD 88 05 LDA $0588 [$84:0588] A:1040 X:8000 Y:39BC P:envmxdizC $84/9E4B 29 18 00 AND #$0018 A:0902 X:8000 Y:39BC P:envmxdizC $84/9E4E EB XBA A:0000 X:8000 Y:39BC P:envmxdiZC $84/9E4F 0A ASL A A:0000 X:8000 Y:39BC P:envmxdiZC $84/9E50 65 02 ADC $02 [$00:0002] A:0000 X:8000 Y:39BC P:envmxdiZc $84/9E52 85 06 STA $06 [$00:0006] A:1040 X:8000 Y:39BC P:envmxdizc $84/9E54 AD 88 05 LDA $0588 [$84:0588] A:1040 X:8000 Y:39BC P:envmxdizc $84/9E57 29 07 00 AND #$0007 A:0902 X:8000 Y:39BC P:envmxdizc $84/9E5A 4A LSR A A:0002 X:8000 Y:39BC P:envmxdizc $84/9E5B 6A ROR A A:0001 X:8000 Y:39BC P:envmxdizc $84/9E5C 6A ROR A A:0000 X:8000 Y:39BC P:envmxdiZC $84/9E5D 6A ROR A A:8000 X:8000 Y:39BC P:eNvmxdizc $84/9E5E 65 06 ADC $06 [$00:0006] A:4000 X:8000 Y:39BC P:envmxdizc $84/9E60 86 06 STX $06 [$00:0006] A:5040 X:8000 Y:39BC P:envmxdizc $84/9E62 FA PLX A:5040 X:8000 Y:39BC P:envmxdizc $84/9E63 60 RTS A:5040 X:3BBC Y:39BC P:envmxdizc
$84/9E64 ? Use Jump Table
$84/9E64 8B PHB ; Buffer Data Bank on Stack $84/9E65 4B PHK ; Set Data Bank to $84 $84/9E66 AB PLB $84/9E67 7B TDC ; Clear 16-bit A $84/9E68 A5 00 LDA $00 ; Load $00 and use it as Index for the Jump Table $84/9E6A 0A ASL A $84/9E6B AA TAX $84/9E6C FC 71 9E JSR ($9E71,x) $84/9E6F AB PLB ; Restore Data Bank from Stack $84/9E70 6B RTL
$84/9E71 81 9E --- Entry #$00 - $9E81 - MVN Loop (any byte sized MVNs) $84/9E73 A9 9E --- Entry #$01 - $9EA9 - MVN Loop (#$40 byte MVNs) $84/9E75 D2 9E --- Entry #$02 - $9ED2 $84/9E77 D8 9E --- Entry #$03 - $9ED8 $84/9E79 DE 9E --- Entry #$04 - $9EDE $84/9E7B 53 9F --- Entry #$05 - $9F53 $84/9E7D 56 9F --- Entry #$06 - $9F56 $84/9E7F 5C 9F --- Entry #$07 - $9F5C
$84/9E81 ? MVN Loop (any size)
$84/9E81 7B TDC ; Clear 16-bit A $84/9E82 A5 01 LDA $01 [$00:0001] A:0000 X:47D9 Y:45D9 P:envMxdiZc $84/9E84 C2 20 REP #$20 ; A = 16-bit $84/9E86 EB XBA ; Multiply by 4 $84/9E87 4A LSR A $84/9E88 4A LSR A $84/9E89 85 04 STA $04 [$00:0004] A:0100 X:47D9 Y:45D9 P:envmxdizc $84/9E8B D4 02 PEI ($02) ; Buffer $02/$03 on Stack $84/9E8D 48 PHA A:0100 X:47D9 Y:45D9 P:envmxdizc $84/9E8E E2 20 SEP #$20 ; A = 8-bit $84/9E90 20 62 9F JSR $9F62 ; Build MVN Command in WRAM and execute it (any size) $84/9E93 C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/9E95 68 PLA A:0000 X:46D9 Y:6200 P:envmxdiZc $84/9E96 85 04 STA $04 [$00:0004] A:0100 X:46D9 Y:6200 P:envmxdizc $84/9E98 68 PLA A:0100 X:46D9 Y:6200 P:envmxdizc $84/9E99 D4 02 PEI ($02) [$0400] A:0100 X:46D9 Y:6200 P:envmxdizc $84/9E9B 69 00 02 ADC #$0200 A:0100 X:46D9 Y:6200 P:envmxdizc $84/9E9E 85 02 STA $02 [$00:0002] A:0300 X:46D9 Y:6200 P:envmxdizc $84/9EA0 E2 20 SEP #$20 ; A = 8-bit $84/9EA2 20 62 9F JSR $9F62 ; Build MVN Command in WRAM and execute it (any size) $84/9EA5 7A PLY ; Restore $02/$03 from Stack $84/9EA6 84 02 STY $02 $84/9EA8 60 RTS
$84/9EA9 ? MVN Loop (#$40 bytes)
$01 contains the Loop counter $02/3 contain the MVN Destination Address on Bank $7E (minus #$6000) $20/1 contain the MVN Source Address $22 contains the MVN Source Bank
$84/9EA9 20 D4 9F JSR $9FD4 ; Build MVN Command in WRAM and execute it (#$40 bytes) $84/9EAC C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/9EAE A5 02 LDA $02 ; Load MVN Destination Address $84/9EB0 48 PHA ; Buffer MVN Destination Address on Stack $84/9EB1 69 00 02 ADC #$0200 ; Add #$200 to Destination Address $84/9EB4 85 02 STA $02 ; Set as Destination Address for second MVN $84/9EB6 E2 20 SEP #$20 ; A = 8-bit $84/9EB8 20 D4 9F JSR $9FD4 ; Build MVN Command in WRAM and execute it (#$40 bytes) $84/9EBB C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/9EBD 68 PLA ; Restore MVN Destination Address from Stack $84/9EBE 69 40 00 ADC #$0040 ; ??? Test if there waz sum latchin' or wut $84/9EC1 89 00 02 BIT #$0200 A:0040 X:A680 Y:6240 P:envmxdizc $84/9EC4 F0 03 BEQ $03 ; [$9EC9]
- code is missing here
$84/9EC9 85 02 STA $02 ; Store MVN Destination Address $84/9ECB E2 20 SEP #$20 ; A = 8-bit $84/9ECD C6 01 DEC $01 ; Decrement Loop Counter $84/9ECF D0 D8 BNE $D8 ; [$9EA9] Loop if Counter hasn't reached 0 $84/9ED1 60 RTS
$84/9ED2 ?
$84/9ED2 20 06 A2 JSR $A206 [$84:A206] A:0004 X:0004 Y:AB7A P:envMxdizc $84/9ED5 4C 81 9E JMP $9E81 ; MVN Loop (any size)
$84/9EDE ?
$84/9EDE 7B TDC A:000A X:000A Y:ACDD P:envMxdizc $84/9EDF A5 01 LDA $01 [$00:0001] A:0000 X:000A Y:ACDD P:envMxdiZc $84/9EE1 C2 20 REP #$20 A:0004 X:000A Y:ACDD P:envMxdizc $84/9EE3 EB XBA A:0004 X:000A Y:ACDD P:envmxdizc $84/9EE4 4A LSR A A:0400 X:000A Y:ACDD P:envmxdiZc $84/9EE5 4A LSR A A:0200 X:000A Y:ACDD P:envmxdizc $84/9EE6 85 04 STA $04 [$00:0004] A:0100 X:000A Y:ACDD P:envmxdizc $84/9EE8 C2 20 REP #$20 A:0100 X:000A Y:ACDD P:envmxdizc $84/9EEA A5 02 LDA $02 [$00:0002] A:0100 X:000A Y:ACDD P:envmxdizc $84/9EEC 29 FF 01 AND #$01FF A:0C00 X:000A Y:ACDD P:envmxdizc $84/9EEF 49 FF 01 EOR #$01FF A:0000 X:000A Y:ACDD P:envmxdiZc $84/9EF2 1A INC A A:01FF X:000A Y:ACDD P:envmxdizc $84/9EF3 C5 04 CMP $04 [$00:0004] A:0200 X:000A Y:ACDD P:envmxdizc $84/9EF5 90 02 BCC $02 [$9EF9] A:0200 X:000A Y:ACDD P:envmxdizC $84/9EF7 A5 04 LDA $04 [$00:0004] A:0200 X:000A Y:ACDD P:envmxdizC $84/9EF9 85 0C STA $0C [$00:000C] A:0100 X:000A Y:ACDD P:envmxdizC $84/9EFB 18 CLC A:0100 X:000A Y:ACDD P:envmxdizC $84/9EFC 65 20 ADC $20 [$00:0020] A:0100 X:000A Y:ACDD P:envmxdizc $84/9EFE 90 0B BCC $0B [$9F0B] A:C100 X:000A Y:ACDD P:eNvmxdizc $84/9F0B E2 20 SEP #$20 A:C100 X:000A Y:ACDD P:eNvmxdizc $84/9F0D 8B PHB A:C100 X:000A Y:ACDD P:eNvMxdizc $84/9F0E A5 22 LDA $22 [$00:0022] A:C100 X:000A Y:ACDD P:eNvMxdizc $84/9F10 85 AE STA $AE [$00:00AE] A:C1BC X:000A Y:ACDD P:eNvMxdizc $84/9F12 A9 7E LDA #$7E A:C1BC X:000A Y:ACDD P:eNvMxdizc $84/9F14 85 AD STA $AD [$00:00AD] A:C17E X:000A Y:ACDD P:envMxdizc $84/9F16 A9 54 LDA #$54 A:C17E X:000A Y:ACDD P:envMxdizc $84/9F18 85 AC STA $AC [$00:00AC] A:C154 X:000A Y:ACDD P:envMxdizc $84/9F1A A9 60 LDA #$60 A:C154 X:000A Y:ACDD P:envMxdizc $84/9F1C 85 AF STA $AF [$00:00AF] A:C160 X:000A Y:ACDD P:envMxdizc $84/9F1E C2 21 REP #$21 A:C160 X:000A Y:ACDD P:envMxdizc $84/9F20 A5 02 LDA $02 [$00:0002] A:C160 X:000A Y:ACDD P:envmxdizc $84/9F22 69 00 60 ADC #$6000 A:0C00 X:000A Y:ACDD P:envmxdizc $84/9F25 A8 TAY A:6C00 X:000A Y:ACDD P:envmxdizc $84/9F26 A5 0C LDA $0C [$00:000C] A:6C00 X:000A Y:6C00 P:envmxdizc $84/9F28 3A DEC A A:0100 X:000A Y:6C00 P:envmxdizc $84/9F29 A6 20 LDX $20 [$00:0020] A:00FF X:000A Y:6C00 P:envmxdizc $84/9F2B 20 AC 00 JSR $00AC [$84:00AC] A:00FF X:C000 Y:6C00 P:eNvmxdizc $84/9F2E E2 20 SEP #$20 A:FFFF X:C100 Y:6D00 P:eNvmxdizc $84/9F30 AB PLB A:FFFF X:C100 Y:6D00 P:eNvMxdizc $84/9F31 C2 21 REP #$21 A:FFFF X:C100 Y:6D00 P:eNvMxdizc $84/9F33 A5 0C LDA $0C [$00:000C] A:FFFF X:C100 Y:6D00 P:eNvmxdizc $84/9F35 65 20 ADC $20 [$00:0020] A:0100 X:C100 Y:6D00 P:envmxdizc $84/9F37 90 05 BCC $05 [$9F3E] A:C100 X:C100 Y:6D00 P:eNvmxdizc $84/9F3E 85 20 STA $20 [$00:0020] A:C100 X:C100 Y:6D00 P:eNvmxdizc $84/9F40 18 CLC A:C100 X:C100 Y:6D00 P:eNvmxdizc $84/9F41 A5 0C LDA $0C [$00:000C] A:C100 X:C100 Y:6D00 P:eNvmxdizc $84/9F43 65 02 ADC $02 [$00:0002] A:0100 X:C100 Y:6D00 P:envmxdizc $84/9F45 85 02 STA $02 [$00:0002] A:0D00 X:C100 Y:6D00 P:envmxdizc $84/9F47 A5 04 LDA $04 [$00:0004] A:0D00 X:C100 Y:6D00 P:envmxdizc $84/9F49 38 SEC A:0100 X:C100 Y:6D00 P:envmxdizc $84/9F4A E5 0C SBC $0C [$00:000C] A:0100 X:C100 Y:6D00 P:envmxdizC $84/9F4C 85 04 STA $04 [$00:0004] A:0000 X:C100 Y:6D00 P:envmxdiZC $84/9F4E E2 20 SEP #$20 A:0000 X:C100 Y:6D00 P:envmxdiZC $84/9F50 D0 96 BNE $96 [$9EE8] A:0000 X:C100 Y:6D00 P:envMxdiZC $84/9F52 60 RTS A:0000 X:C100 Y:6D00 P:envMxdiZC
$84/9F53 ?
$84/9F53 4C DE 9E JMP $9EDE [$84:9EDE] A:000A X:000A Y:ACDD P:envMxdizc
$84/9F56 ?
$84/9F56 20 4C A2 JSR $A24C [$84:A24C] A:000C X:000C Y:ACE7 P:envMxdizc $84/9F59 4C DE 9E JMP $9EDE [$84:9EDE] A:4202 X:423C Y:41BC P:envMxdizc
$84/9F62 Build MVN Command in WRAM and execute it (any size)
Other than the MVN Command at $84/9FD4, this one isn't bound to #$40 bytes, but can do any number of bytes.
$02/3 contain the Destination Address on Bank $7E (minus #$6000) $0C/D contain the ACTUAL number of bytes to transfer (DEC A for MVN gets done later) $20/1 contain the Source Address $22 contains the Source Bank
$84/9F62 C2 20 REP #$20 A:0100 X:47D9 Y:45D9 P:envMxdizc $84/9F64 A5 02 LDA $02 [$00:0002] A:0100 X:47D9 Y:45D9 P:envmxdizc $84/9F66 29 FF 01 AND #$01FF A:0100 X:47D9 Y:45D9 P:envmxdizc $84/9F69 49 FF 01 EOR #$01FF A:0100 X:47D9 Y:45D9 P:envmxdizc $84/9F6C 1A INC A A:00FF X:47D9 Y:45D9 P:envmxdizc $84/9F6D C5 04 CMP $04 [$00:0004] A:0100 X:47D9 Y:45D9 P:envmxdizc $84/9F6F 90 02 BCC $02 [$9F73] A:0100 X:47D9 Y:45D9 P:envmxdiZC $84/9F71 A5 04 LDA $04 [$00:0004] A:0100 X:47D9 Y:45D9 P:envmxdiZC $84/9F73 85 0C STA $0C [$00:000C] A:0100 X:47D9 Y:45D9 P:envmxdizC $84/9F75 18 CLC A:0100 X:47D9 Y:45D9 P:envmxdizC $84/9F76 65 20 ADC $20 [$00:0020] A:0100 X:47D9 Y:45D9 P:envmxdizc $84/9F78 90 0B BCC $0B [$9F85] A:46D9 X:47D9 Y:45D9 P:envmxdizc
- code is missing here
$84/9F85 E2 20 SEP #$20 A:46D9 X:47D9 Y:45D9 P:envmxdizc $84/9F87 8B PHB ; Buffer Data Bank on Stack $84/9F88 A5 22 LDA $22 ; Set $22 as MVN Source Bank $84/9F8A 85 AE STA $AE $84/9F8C A9 7E LDA #$7E ; Set Bank $7E as MVN Destination Bank $84/9F8E 85 AD STA $AD $84/9F90 A9 54 LDA #$54 ; #$54 = MVN $84/9F92 85 AC STA $AC $84/9F94 A9 60 LDA #$60 ; #$60 = RTS $84/9F96 85 AF STA $AF $84/9F98 C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/9F9A A5 02 LDA $02 ; Load Destination Address $84/9F9C 69 00 60 ADC #$6000 ; Add #$6000 to Destination Address $84/9F9F A8 TAY ; Transfer in Y (MVN Destination Address) $84/9FA0 A5 0C LDA $0C ; Load Number of Bytes to do for MVN $84/9FA2 3A DEC A ; Decrement because MVN does always one more than told $84/9FA3 A6 20 LDX $20 ; Load MVN Source Address $84/9FA5 20 AC 00 JSR $00AC ; EXECUTE MVN COMMAND $84/9FA8 E2 20 SEP #$20 ; this line could be removed? $84/9FAA AB PLB ; Restore Data Bank $84/9FAB C2 21 REP #$21 ; this line could be removed? Replace with CLC? $84/9FAD A5 0C LDA $0C [$00:000C] A:FFFF X:46D9 Y:6200 P:eNvmxdizc $84/9FAF 65 20 ADC $20 [$00:0020] A:0100 X:46D9 Y:6200 P:envmxdizc $84/9FB1 90 05 BCC $05 [$9FB8] A:46D9 X:46D9 Y:6200 P:envmxdizc
- code missing here
$84/9FB8 85 20 STA $20 [$00:0020] A:46D9 X:46D9 Y:6200 P:envmxdizc $84/9FBA A5 0C LDA $0C [$00:000C] A:46D9 X:46D9 Y:6200 P:envmxdizc $84/9FBC 65 02 ADC $02 [$00:0002] A:0100 X:46D9 Y:6200 P:envmxdizc $84/9FBE 89 FF 01 BIT #$01FF A:0200 X:46D9 Y:6200 P:envmxdizc $84/9FC1 D0 03 BNE $03 [$9FC6] A:0200 X:46D9 Y:6200 P:envmxdiZc $84/9FC3 69 00 02 ADC #$0200 A:0200 X:46D9 Y:6200 P:envmxdiZc $84/9FC6 85 02 STA $02 [$00:0002] A:0400 X:46D9 Y:6200 P:envmxdizc $84/9FC8 A5 04 LDA $04 [$00:0004] A:0400 X:46D9 Y:6200 P:envmxdizc $84/9FCA 38 SEC A:0100 X:46D9 Y:6200 P:envmxdizc $84/9FCB E5 0C SBC $0C [$00:000C] A:0100 X:46D9 Y:6200 P:envmxdizC $84/9FCD 85 04 STA $04 [$00:0004] A:0000 X:46D9 Y:6200 P:envmxdiZC $84/9FCF E2 20 SEP #$20 A:0000 X:46D9 Y:6200 P:envmxdiZC $84/9FD1 D0 8F BNE $8F [$9F62] A:0000 X:46D9 Y:6200 P:envMxdiZC $84/9FD3 60 RTS A:0000 X:46D9 Y:6200 P:envMxdiZC
$84/9FD4 Build MVN Command in WRAM and execute it (#$40 bytes)
Transfers #$40 bytes of data from wherever to $7E/6xxx
$02/3 contain the Destination Address on Bank $7E (minus #$6000) $20/1 contain the Source Address $22 contains the Source Bank
$84/9FD4 8B PHB ; Buffer Data Bank on Stack $84/9FD5 A5 22 LDA $22 ; Set $22 as MVN Source Bank $84/9FD7 85 AE STA $AE $84/9FD9 A9 7E LDA #$7E ; Set Bank $7E as MVN Destination Bank $84/9FDB 85 AD STA $AD $84/9FDD A9 54 LDA #$54 ; #$54 = MVN $84/9FDF 85 AC STA $AC $84/9FE1 A9 60 LDA #$60 ; #$60 = RTS $84/9FE3 85 AF STA $AF $84/9FE5 C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/9FE7 A5 02 LDA $02 ; Load Destination Address $84/9FE9 69 00 60 ADC #$6000 ; Add #$6000 to Destination Address $84/9FEC A8 TAY ; Transfer in Y (MVN Destination Address) $84/9FED A9 3F 00 LDA #$003F ; Transfer #$40 bytes via MVN $84/9FF0 A6 20 LDX $20 ; Load MVN Source Address $84/9FF2 20 AC 00 JSR $00AC ; EXECUTE MVN-COMMAND $84/9FF5 E2 20 SEP #$20 ; this line could be removed? $84/9FF7 AB PLB ; Restore Data Bank $84/9FF8 C2 21 REP #$21 ; this line could be removed? Replace with CLC? $84/9FFA A9 40 00 LDA #$0040 ; Add #$40 to Source Address $84/9FFD 65 20 ADC $20 $84/9FFF 90 05 BCC $05 ; [$A006] Branch if no Bank Latch has occurred
- code is missing here
$84/A006 85 20 STA $20 ; Store back incremented Source Address $84/A008 E2 20 SEP #$20 ; A = 8-bit $84/A00A 60 RTS
$84/A00B ?
$84/A00B 8B PHB A:3618 X:000E Y:B5AF P:envMxdizc $84/A00C 4B PHK A:3618 X:000E Y:B5AF P:envMxdizc $84/A00D AB PLB A:3618 X:000E Y:B5AF P:envMxdizc $84/A00E 7B TDC A:3618 X:000E Y:B5AF P:eNvMxdizc $84/A00F A5 00 LDA $00 [$00:0000] A:0000 X:000E Y:B5AF P:envMxdiZc $84/A011 0A ASL A A:0002 X:000E Y:B5AF P:envMxdizc $84/A012 AA TAX A:0004 X:000E Y:B5AF P:envMxdizc $84/A013 FC 18 A0 JSR ($A018,x)[$84:A09E] A:0004 X:0004 Y:B5AF P:envMxdizc $84/A016 AB PLB A:0000 X:4211 Y:5140 P:envMxdiZC $84/A017 6B RTL A:0000 X:4211 Y:5140 P:eNvMxdizC
$84/A018 28 A0 --- Entry #$00 - $A028 $84/A01A 56 A0 --- Entry #$01 - $A056 $84/A01C 9E A0 --- Entry #$02 - $A09E $84/A01E A4 A0 --- Entry #$03 - $A0A4 $84/A020 AA A0 --- Entry #$04 - $A0AA $84/A022 32 A1 --- Entry #$05 - $A132 $84/A024 83 A1 --- Entry #$06 - $A183 $84/A026 89 A1 --- Entry #$07 - $A189
$84/A206 ? MVN Loop (any size) preparation
$84/A206 A6 20 LDX $20 ; Buffer $20 in X $84/A208 A4 5C LDY $5C ; Set $20 (MVN Source Address) to $5C $84/A20A 84 20 STY $20 $84/A20C A9 7E LDA #$7E ; MVN Source Bank: $7E $84/A20E 85 22 STA $22 $84/A210 A5 01 LDA $01 [$00:0001] A:007E X:0A98 Y:45D9 P:envMxdizc $84/A212 85 00 STA $00 ; Setup as Loop Counter $84/A214 A0 02 80 LDY #$8002 A:0004 X:0A98 Y:45D9 P:envMxdizc $84/A217 84 23 STY $23 [$00:0023] A:0004 X:0A98 Y:8002 P:eNvMxdizc $84/A219 A9 C1 LDA #$C1 A:0004 X:0A98 Y:8002 P:eNvMxdizc $84/A21B 85 25 STA $25 [$00:0025] A:00C1 X:0A98 Y:8002 P:eNvMxdizc $84/A21D C2 20 REP #$20 A:00C1 X:0A98 Y:8002 P:eNvMxdizc $84/A21F BF 03 80 BF LDA $BF8003,x[$BF:8A9B] A:00C1 X:0A98 Y:8002 P:eNvmxdizc $84/A223 A8 TAY A:F81B X:0A98 Y:8002 P:eNvmxdizc $84/A224 E2 20 SEP #$20 A:F81B X:0A98 Y:F81B P:eNvmxdizc $84/A226 BF 05 80 BF LDA $BF8005,x[$BF:8A9D] A:F81B X:0A98 Y:F81B P:eNvMxdizc $84/A22A DA PHX A:F8D0 X:0A98 Y:F81B P:eNvMxdizc $84/A22B BB TYX A:F8D0 X:0A98 Y:F81B P:eNvMxdizc $84/A22C 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:F8D0 X:F81B Y:F81B P:eNvMxdizc $84/A230 FA PLX A:00C0 X:F898 Y:0080 P:eNvMxdizC $84/A231 E8 INX A:00C0 X:0A98 Y:0080 P:envMxdizC $84/A232 E8 INX A:00C0 X:0A99 Y:0080 P:envMxdizC $84/A233 E8 INX A:00C0 X:0A9A Y:0080 P:envMxdizC $84/A234 C2 21 REP #$21 A:00C0 X:0A9B Y:0080 P:envMxdizC $84/A236 A5 0E LDA $0E [$00:000E] A:00C0 X:0A9B Y:0080 P:envmxdizc $84/A238 65 20 ADC $20 [$00:0020] A:0080 X:0A9B Y:0080 P:envmxdizc $84/A23A 85 20 STA $20 [$00:0020] A:4659 X:0A9B Y:0080 P:envmxdizc $84/A23C E2 20 SEP #$20 ; A = 8-bit $84/A23E C6 00 DEC $00 ; Decrement Loop Counter $84/A240 D0 D2 BNE $D2 ; [$A214] Loop until Counter ran out $84/A242 A6 20 LDX $20 [$00:0020] A:47D9 X:0AA4 Y:0080 P:envMxdiZc $84/A244 A4 5C LDY $5C [$00:005C] A:47D9 X:47D9 Y:0080 P:envMxdizc $84/A246 84 20 STY $20 [$00:0020] A:47D9 X:47D9 Y:45D9 P:envMxdizc $84/A248 86 5C STX $5C [$00:005C] A:47D9 X:47D9 Y:45D9 P:envMxdizc $84/A24A 18 CLC A:47D9 X:47D9 Y:45D9 P:envMxdizc $84/A24B 60 RTS
$84/A24C ?
$84/A24C A5 01 LDA $01 [$00:0001] A:000C X:000C Y:ACE7 P:envMxdizc $84/A24E 48 PHA A:0002 X:000C Y:ACE7 P:envMxdizc $84/A24F 1A INC A A:0002 X:000C Y:ACE7 P:envMxdizc $84/A250 4A LSR A A:0003 X:000C Y:ACE7 P:envMxdizc $84/A251 85 01 STA $01 [$00:0001] A:0001 X:000C Y:ACE7 P:envMxdizC $84/A253 20 06 A2 JSR $A206 ; MVN Loop (any size) preparation $84/A256 68 PLA A:423C X:423C Y:41BC P:envMxdizc $84/A257 85 01 STA $01 [$00:0001] A:4202 X:423C Y:41BC P:envMxdizc $84/A259 60 RTS A:4202 X:423C Y:41BC P:envMxdizc
$84/A331 ?
$84/A331 85 1E STA $1E [$00:001E] A:0022 X:0000 Y:D203 P:envMxdizc $84/A333 85 1D STA $1D [$00:001D] A:0022 X:0000 Y:D203 P:envMxdizc $84/A335 EB XBA A:0022 X:0000 Y:D203 P:envMxdizc $84/A336 85 1F STA $1F [$00:001F] A:2200 X:0000 Y:D203 P:envMxdiZc $84/A338 7B TDC A:2200 X:0000 Y:D203 P:envMxdiZc $84/A339 A5 1E LDA $1E [$00:001E] A:0000 X:0000 Y:D203 P:envMxdiZc $84/A33B C9 DC CMP #$DC A:0022 X:0000 Y:D203 P:envMxdizc $84/A33D B0 26 BCS $26 [$A365] A:0022 X:0000 Y:D203 P:envMxdizc $84/A33F C9 70 CMP #$70 A:0022 X:0000 Y:D203 P:envMxdizc $84/A341 90 2A BCC $2A [$A36D] A:0022 X:0000 Y:D203 P:eNvMxdizc $84/A343 E9 70 SBC #$70 A:0070 X:0001 Y:D205 P:envMxdiZC $84/A345 0A ASL A A:0000 X:0001 Y:D205 P:envMxdiZC $84/A346 AA TAX A:0000 X:0001 Y:D205 P:envMxdiZc $84/A347 C2 20 REP #$20 A:0000 X:0000 Y:D205 P:envMxdiZc $84/A349 BF 81 A3 84 LDA $84A381,x[$84:A381] A:0000 X:0000 Y:D205 P:envmxdiZc $84/A34D 38 SEC A:AA3D X:0000 Y:D205 P:eNvmxdizc $84/A34E E9 53 A9 SBC #$A953 A:AA3D X:0000 Y:D205 P:eNvmxdizC $84/A351 48 PHA A:00EA X:0000 Y:D205 P:envmxdizC $84/A352 A5 1F LDA $1F [$00:001F] A:00EA X:0000 Y:D205 P:envmxdizC $84/A354 29 FF 00 AND #$00FF A:1101 X:0000 Y:D205 P:envmxdizC $84/A357 0A ASL A A:0001 X:0000 Y:D205 P:envmxdizC $84/A358 63 01 ADC $01,s [$00:1FC5] A:0002 X:0000 Y:D205 P:envmxdizc $84/A35A A8 TAY A:00EC X:0000 Y:D205 P:envmxdizc $84/A35B 68 PLA A:00EC X:0000 Y:00EC P:envmxdizc $84/A35C 8B PHB A:00EA X:0000 Y:00EC P:envmxdizc $84/A35D F4 00 84 PEA $8400 A:00EA X:0000 Y:00EC P:envmxdizc $84/A360 AB PLB A:00EA X:0000 Y:00EC P:envmxdizc $84/A361 AB PLB A:00EA X:0000 Y:00EC P:envmxdiZc $84/A362 4C D5 A3 JMP $A3D5 [$84:A3D5] A:00EA X:0000 Y:00EC P:eNvmxdizc
- code is missing here
$84/A36D C2 20 REP #$20 A:0022 X:0000 Y:D203 P:eNvMxdizc $84/A36F A9 61 A9 LDA #$A961 A:0022 X:0000 Y:D203 P:eNvmxdizc $84/A372 38 SEC A:A961 X:0000 Y:D203 P:eNvmxdizc $84/A373 E9 53 A9 SBC #$A953 A:A961 X:0000 Y:D203 P:eNvmxdizC $84/A376 4A LSR A A:000E X:0000 Y:D203 P:envmxdizC $84/A377 E2 20 SEP #$20 A:0007 X:0000 Y:D203 P:envmxdizc $84/A379 18 CLC A:0007 X:0000 Y:D203 P:envMxdizc $84/A37A 65 1F ADC $1F [$00:001F] A:0007 X:0000 Y:D203 P:envMxdizc $84/A37C 85 1F STA $1F [$00:001F] A:0007 X:0000 Y:D203 P:envMxdizc $84/A37E 4C C9 A3 JMP $A3C9 [$84:A3C9] A:0007 X:0000 Y:D203 P:envMxdizc
$84/A387 ?
$84/A387 EB XBA A:0034 X:0004 Y:0001 P:envMxdizc $84/A388 85 1F STA $1F [$00:001F] A:3400 X:0004 Y:0001 P:envMxdiZc $84/A38A A9 00 LDA #$00 A:3400 X:0004 Y:0001 P:envMxdiZc $84/A38C EB XBA A:3400 X:0004 Y:0001 P:envMxdiZc $84/A38D C9 DC CMP #$DC A:0034 X:0004 Y:0001 P:envMxdizc $84/A38F 90 14 BCC $14 [$A3A5] A:0034 X:0004 Y:0001 P:envMxdizc
- code is missing here
$84/A3A5 C2 20 REP #$20 A:0034 X:0004 Y:0001 P:envMxdizc $84/A3A7 29 FF 00 AND #$00FF A:0034 X:0004 Y:0001 P:envmxdizc $84/A3AA 0A ASL A A:0034 X:0004 Y:0001 P:envmxdizc $84/A3AB 0A ASL A A:0068 X:0004 Y:0001 P:envmxdizc $84/A3AC AA TAX A:00D0 X:0004 Y:0001 P:envmxdizc $84/A3AD BF 3F A6 84 LDA $84A63F,x[$84:A70F] A:00D0 X:00D0 Y:0001 P:envmxdizc $84/A3B1 38 SEC A:A953 X:00D0 Y:0001 P:eNvmxdizc $84/A3B2 E9 53 A9 SBC #$A953 A:A953 X:00D0 Y:0001 P:eNvmxdizC $84/A3B5 4A LSR A A:0000 X:00D0 Y:0001 P:envmxdiZC $84/A3B6 E2 20 SEP #$20 A:0000 X:00D0 Y:0001 P:envmxdiZc $84/A3B8 18 CLC A:0000 X:00D0 Y:0001 P:envMxdiZc $84/A3B9 65 1F ADC $1F [$00:001F] A:0000 X:00D0 Y:0001 P:envMxdiZc $84/A3BB 85 1F STA $1F [$00:001F] A:0000 X:00D0 Y:0001 P:envMxdiZc $84/A3BD BF 41 A6 84 LDA $84A641,x[$84:A711] A:0000 X:00D0 Y:0001 P:envMxdiZc $84/A3C1 85 1E STA $1E [$00:001E] A:0021 X:00D0 Y:0001 P:envMxdizc $84/A3C3 BF 42 A6 84 LDA $84A642,x[$84:A712] A:0021 X:00D0 Y:0001 P:envMxdizc $84/A3C7 85 1D STA $1D [$00:001D] A:0000 X:00D0 Y:0001 P:envMxdiZc $84/A3C9 8B PHB ; Buffer Data Bank on Stack $84/A3CA A9 84 LDA #$84 ; Set Data Bank to #$84 $84/A3CC 48 PHA $84/A3CD AB PLB $84/A3CE 7B TDC ; Clear 16-bit A $84/A3CF A5 1F LDA $1F [$00:001F] A:0000 X:00D0 Y:0001 P:envMxdiZc $84/A3D1 C2 20 REP #$20 ; A = 16-bit $84/A3D3 0A ASL A ; Multiply by 2 and use it as Load Index $84/A3D4 A8 TAY $84/A3D5 B9 53 A9 LDA $A953,y[$84:A953] A:0000 X:00D0 Y:0000 P:envmxdiZc $84/A3D8 A8 TAY A:AB6E X:00D0 Y:0000 P:eNvmxdizc $84/A3D9 64 10 STZ $10 [$00:0010] A:AB6E X:00D0 Y:AB6E P:eNvmxdizc $84/A3DB 64 12 STZ $12 [$00:0012] A:AB6E X:00D0 Y:AB6E P:eNvmxdizc $84/A3DD E2 20 SEP #$20 ; A = 8-bit $84/A3DF 64 14 STZ $14 [$00:0014] A:AB6E X:00D0 Y:AB6E P:eNvMxdizc $84/A3E1 C2 20 REP #$20 ; A = 16-bit $84/A3E3 B9 00 00 LDA $0000,y[$84:AB6E] A:AB6E X:00D0 Y:AB6E P:eNvmxdizc $84/A3E6 85 00 STA $00 [$00:0000] A:8086 X:00D0 Y:AB6E P:eNvmxdizc $84/A3E8 E2 20 SEP #$20 ; A = 8-bit $84/A3EA C9 80 CMP #$80 A:8086 X:00D0 Y:AB6E P:eNvMxdizc $84/A3EC B0 5A BCS $5A [$A448] A:8086 X:00D0 Y:AB6E P:envMxdizC $84/A3EE 29 03 AND #$03 A:0402 X:000E Y:B5AF P:eNvMxdizc $84/A3F0 C9 02 CMP #$02 A:0402 X:000E Y:B5AF P:envMxdizc $84/A3F2 B0 38 BCS $38 [$A42C] A:0402 X:000E Y:B5AF P:envMxdiZC
- code is missing here
$84/A42C C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/A42E B9 02 00 LDA $0002,y[$84:B5B1] A:0402 X:000E Y:B5AF P:envmxdiZc $84/A431 65 10 ADC $10 [$00:0010] A:1208 X:000E Y:B5AF P:envmxdizc $84/A433 85 20 STA $20 [$00:0020] A:1208 X:000E Y:B5AF P:envmxdizc $84/A435 0A ASL A A:1208 X:000E Y:B5AF P:envmxdizc $84/A436 65 20 ADC $20 [$00:0020] A:2410 X:000E Y:B5AF P:envmxdizc $84/A438 85 20 STA $20 [$00:0020] A:3618 X:000E Y:B5AF P:envmxdizc $84/A43A E2 20 SEP #$20 ; A = 8-bit $84/A43C 5A PHY A:3618 X:000E Y:B5AF P:envMxdizc $84/A43D 22 0B A0 84 JSL $84A00B[$84:A00B] A:3618 X:000E Y:B5AF P:envMxdizc
- code is missing here
$84/A448 C9 FF CMP #$FF A:8086 X:00D0 Y:AB6E P:envMxdizC $84/A44A D0 03 BNE $03 [$A44F] A:8086 X:00D0 Y:AB6E P:eNvMxdizc
- code is missing here
$84/A44F C9 83 CMP #$83 A:8086 X:00D0 Y:AB6E P:eNvMxdizc $84/A451 F0 06 BEQ $06 [$A459] A:8086 X:00D0 Y:AB6E P:envMxdizC $84/A453 20 EB A4 JSR $A4EB [$84:A4EB] A:8086 X:00D0 Y:AB6E P:envMxdizC $84/A456 4C E1 A3 JMP $A3E1 [$84:A3E1] A:0020 X:000C Y:AB6F P:eNvMxdizc $84/A459 A6 43 LDX $43 [$00:0043] A:8183 X:0000 Y:AB71 P:envMxdiZC $84/A45B 86 02 STX $02 [$00:0002] A:8183 X:0000 Y:AB71 P:envMxdiZC $84/A45D C8 INY A:8183 X:0000 Y:AB71 P:envMxdiZC $84/A45E C2 20 REP #$20 A:8183 X:0000 Y:AB72 P:eNvMxdizC $84/A460 B9 00 00 LDA $0000,y[$84:AB72] A:8183 X:0000 Y:AB72 P:eNvmxdizC $84/A463 85 00 STA $00 [$00:0000] A:0C81 X:0000 Y:AB72 P:envmxdizC $84/A465 E2 20 SEP #$20 A:0C81 X:0000 Y:AB72 P:envmxdizC $84/A467 C9 80 CMP #$80 A:0C81 X:0000 Y:AB72 P:envMxdizC $84/A469 B0 5B BCS $5B [$A4C6] A:0C81 X:0000 Y:AB72 P:envMxdizC $84/A46B 29 03 AND #$03 A:0401 X:0002 Y:AB74 P:eNvMxdizc $84/A46D C9 02 CMP #$02 A:0401 X:0002 Y:AB74 P:envMxdizc $84/A46F B0 38 BCS $38 [$A4A9] A:0401 X:0002 Y:AB74 P:eNvMxdizc $84/A471 C2 20 REP #$20 A:0401 X:0002 Y:AB74 P:eNvMxdizc $84/A473 B9 02 00 LDA $0002,y[$84:AB76] A:0401 X:0002 Y:AB74 P:eNvmxdizc $84/A476 0A ASL A A:0700 X:0002 Y:AB74 P:envmxdizc $84/A477 0A ASL A A:0E00 X:0002 Y:AB74 P:envmxdizc $84/A478 0A ASL A A:1C00 X:0002 Y:AB74 P:envmxdizc $84/A479 0A ASL A A:3800 X:0002 Y:AB74 P:envmxdizc $84/A47A 0A ASL A A:7000 X:0002 Y:AB74 P:envmxdizc $84/A47B 29 FF 7F AND #$7FFF A:E000 X:0002 Y:AB74 P:eNvmxdizc $84/A47E 18 CLC A:6000 X:0002 Y:AB74 P:envmxdizc $84/A47F 69 00 80 ADC #$8000 A:6000 X:0002 Y:AB74 P:envmxdizc $84/A482 09 00 80 ORA #$8000 A:E000 X:0002 Y:AB74 P:eNvmxdizc $84/A485 85 20 STA $20 [$00:0020] A:E000 X:0002 Y:AB74 P:eNvmxdizc $84/A487 E2 20 SEP #$20 A:E000 X:0002 Y:AB74 P:eNvmxdizc $84/A489 08 PHP A:E000 X:0002 Y:AB74 P:eNvMxdizc $84/A48A B9 03 00 LDA $0003,y[$84:AB77] A:E000 X:0002 Y:AB74 P:eNvMxdizc $84/A48D 4A LSR A A:E007 X:0002 Y:AB74 P:envMxdizc $84/A48E 4A LSR A A:E003 X:0002 Y:AB74 P:envMxdizC $84/A48F 28 PLP A:E001 X:0002 Y:AB74 P:envMxdizC $84/A490 69 B7 ADC #$B7 A:E001 X:0002 Y:AB74 P:eNvMxdizc $84/A492 85 22 STA $22 [$00:0022] A:E0B8 X:0002 Y:AB74 P:eNvMxdizc $84/A494 C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/A496 A5 12 LDA $12 [$00:0012] A:E0B8 X:0002 Y:AB74 P:eNvmxdizc $84/A498 65 20 ADC $20 [$00:0020] A:4600 X:0002 Y:AB74 P:envmxdizc $84/A49A 09 00 80 ORA #$8000 A:2600 X:0002 Y:AB74 P:envmxdizC $84/A49D 85 20 STA $20 [$00:0020] A:A600 X:0002 Y:AB74 P:eNvmxdizC $84/A49F E2 20 SEP #$20 ; A = 8-bit $84/A4A1 A5 14 LDA $14 [$00:0014] A:A600 X:0002 Y:AB74 P:eNvMxdizC $84/A4A3 65 22 ADC $22 [$00:0022] A:A601 X:0002 Y:AB74 P:envMxdizC $84/A4A5 85 22 STA $22 [$00:0022] A:A6BA X:0002 Y:AB74 P:eNvMxdizc $84/A4A7 80 10 BRA $10 [$A4B9] A:A6BA X:0002 Y:AB74 P:eNvMxdizc $84/A4A9 C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/A4AB B9 02 00 LDA $0002,y[$84:AB7C] A:0402 X:0002 Y:AB7A P:envmxdiZc $84/A4AE 65 10 ADC $10 [$00:0010] A:0280 X:0002 Y:AB7A P:envmxdizc $84/A4B0 85 20 STA $20 [$00:0020] A:0388 X:0002 Y:AB7A P:envmxdizc $84/A4B2 0A ASL A A:0388 X:0002 Y:AB7A P:envmxdizc $84/A4B3 65 20 ADC $20 [$00:0020] A:0710 X:0002 Y:AB7A P:envmxdizc $84/A4B5 85 20 STA $20 [$00:0020] A:0A98 X:0002 Y:AB7A P:envmxdizc $84/A4B7 E2 20 SEP #$20 ; A = 8-bit $84/A4B9 5A PHY A:A6BA X:0002 Y:AB74 P:eNvMxdizc $84/A4BA 22 64 9E 84 JSL $849E64[$84:9E64] A:A6BA X:0002 Y:AB74 P:eNvMxdizc $84/A4BE 7A PLY A:0100 X:A800 Y:6300 P:eNvMxdizc $84/A4BF C8 INY A:0100 X:A800 Y:AB74 P:eNvMxdizc $84/A4C0 C8 INY A:0100 X:A800 Y:AB75 P:eNvMxdizc $84/A4C1 C8 INY A:0100 X:A800 Y:AB76 P:eNvMxdizc $84/A4C2 C8 INY A:0100 X:A800 Y:AB77 P:eNvMxdizc $84/A4C3 4C 5E A4 JMP $A45E [$84:A45E] A:0100 X:A800 Y:AB78 P:eNvMxdizc $84/A4C6 C9 FF CMP #$FF A:0C81 X:0000 Y:AB72 P:envMxdizC $84/A4C8 F0 08 BEQ $08 [$A4D2] A:0C81 X:0000 Y:AB72 P:eNvMxdizc $84/A4CA 20 BB A5 JSR $A5BB [$84:A5BB] A:0C81 X:0000 Y:AB72 P:eNvMxdizc $84/A4CD C8 INY A:4601 X:0002 Y:AB72 P:envMxdizc $84/A4CE C8 INY A:4601 X:0002 Y:AB73 P:eNvMxdizc $84/A4CF 4C 5E A4 JMP $A45E ; Loop $84/A4D2 C2 21 REP #$21 ; A = 16-bit + Clear Carry $84/A4D4 A9 20 01 LDA #$0120 A:86FF X:4DD9 Y:AB92 P:envmxdiZc $84/A4D7 65 3F ADC $3F [$00:003F] A:0120 X:4DD9 Y:AB92 P:envmxdizc $84/A4D9 29 C0 3E AND #$3EC0 A:1160 X:4DD9 Y:AB92 P:envmxdizc $84/A4DC 85 3F STA $3F [$00:003F] A:1040 X:4DD9 Y:AB92 P:envmxdizc $84/A4DE C9 01 20 CMP #$2001 A:1040 X:4DD9 Y:AB92 P:envmxdizc $84/A4E1 E2 20 SEP #$20 ; A = 8-bit $84/A4E3 90 04 BCC $04 ; [$A4E9] Exit if less
- code is missing here
$84/A4E9 AB PLB ; Restore Data Bank from Stack $84/A4EA 6B RTL
$84/A4EB ?
$84/A4EB EB XBA ; Clear Hidden High Byte of A $84/A4EC A9 00 LDA #$00 $84/A4EE EB XBA $84/A4EF 0A ASL A ; Multiply A by 2 to use it as a Jump Table Index $84/A4F0 AA TAX $84/A4F1 7C F4 A4 JMP ($A4F4,x) ; Jump (see address table below) $84/A4F4 06 A5 - Entry #$00 - $A506 $84/A4F6 20 A5 - Entry #$01 - $A520 $84/A4F8 24 A5 - Entry #$02 - $A524 $84/A4FA 06 A5 - Entry #$03 - $A506 $84/A4FC 4A A5 - Entry #$04 - $A54A $84/A4FE 62 A5 - Entry #$05 - $A562 $84/A500 6D A5 - Entry #$06 - $A56D $84/A502 81 A5 - Entry #$07 - $A581 $84/A504 9E A5 - Entry #$08 - $A59E
$84/A506 ?
$84/A506 7B TDC ; Clear 16-bit A $84/A507 A5 01 LDA $01 [$00:0001] A:0000 X:0000 Y:AB6F P:envMxdiZC $84/A509 EB XBA ; Multiply by #$20 $84/A50A C2 20 REP #$20 ; A = 16-bit $84/A50C 4A LSR A $84/A50D 4A LSR A $84/A50E 4A LSR A $84/A50F E2 20 SEP #$20 ; A = 8-bit $84/A511 65 3F ADC $3F [$00:003F] A:0040 X:0000 Y:AB6F P:envMxdizc $84/A513 85 3F STA $3F [$00:003F] A:0040 X:0000 Y:AB6F P:envMxdizc $84/A515 EB XBA A:0040 X:0000 Y:AB6F P:envMxdizc $84/A516 69 00 ADC #$00 ; Add Carry from previous addition $84/A518 0A ASL A A:4000 X:0000 Y:AB6F P:envMxdiZc $84/A519 65 40 ADC $40 [$00:0040] A:4000 X:0000 Y:AB6F P:envMxdiZc $84/A51B 85 40 STA $40 [$00:0040] A:4010 X:0000 Y:AB6F P:envMxdizc $84/A51D C8 INY A:4010 X:0000 Y:AB6F P:envMxdizc $84/A51E C8 INY A:4010 X:0000 Y:AB70 P:eNvMxdizc $84/A51F 60 RTS
$84/A56D ?
$84/A56D 5A PHY A:000C X:000C Y:AB6E P:envMxdizC $84/A56E A4 3F LDY $3F [$00:003F] A:000C X:000C Y:AB6E P:envMxdizC $84/A570 22 F9 CA 84 JSL $84CAF9[$84:CAF9] A:000C X:000C Y:1000 P:envMxdizC $84/A574 48 PHA A:0020 X:000C Y:1000 P:envMxdizc $84/A575 7B TDC A:0020 X:000C Y:1000 P:envMxdizc $84/A576 AD E7 1E LDA $1EE7 [$84:1EE7] A:0000 X:000C Y:1000 P:envMxdiZc $84/A579 A8 TAY A:0000 X:000C Y:1000 P:envMxdiZc $84/A57A 68 PLA A:0000 X:000C Y:0000 P:envMxdiZc $84/A57B 99 E8 1E STA $1EE8,y[$84:1EE8] A:0020 X:000C Y:0000 P:envMxdizc $84/A57E 7A PLY A:0020 X:000C Y:0000 P:envMxdizc $84/A57F C8 INY A:0020 X:000C Y:AB6E P:eNvMxdizc $84/A580 60 RTS A:0020 X:000C Y:AB6F P:eNvMxdizc
$84/A581 ?
$84/A581 5A PHY A:000E X:000E Y:AC55 P:envMxdizC $84/A582 C2 20 REP #$20 A:000E X:000E Y:AC55 P:envMxdizC $84/A584 A5 3F LDA $3F [$00:003F] A:000E X:000E Y:AC55 P:envmxdizC $84/A586 38 SEC A:1040 X:000E Y:AC55 P:envmxdizC $84/A587 E9 00 0A SBC #$0A00 A:1040 X:000E Y:AC55 P:envmxdizC $84/A58A A8 TAY A:0640 X:000E Y:AC55 P:envmxdizC $84/A58B E2 20 SEP #$20 A:0640 X:000E Y:0640 P:envmxdizC $84/A58D 22 F9 CA 84 JSL $84CAF9[$84:CAF9] A:0640 X:000E Y:0640 P:envMxdizC $84/A591 48 PHA A:000D X:000E Y:0640 P:envMxdizc $84/A592 7B TDC A:000D X:000E Y:0640 P:envMxdizc $84/A593 AD E7 1E LDA $1EE7 [$84:1EE7] A:0000 X:000E Y:0640 P:envMxdiZc $84/A596 A8 TAY A:0000 X:000E Y:0640 P:envMxdiZc $84/A597 68 PLA A:0000 X:000E Y:0000 P:envMxdiZc $84/A598 99 E9 1E STA $1EE9,y[$84:1EE9] A:000D X:000E Y:0000 P:envMxdizc $84/A59B 7A PLY A:000D X:000E Y:0000 P:envMxdizc $84/A59C C8 INY A:000D X:000E Y:AC55 P:eNvMxdizc $84/A59D 60 RTS A:000D X:000E Y:AC56 P:eNvMxdizc
$84/A59E ?
$84/A59E 5A PHY A:0010 X:0010 Y:B491 P:envMxdizC $84/A59F C2 20 REP #$20 A:0010 X:0010 Y:B491 P:envMxdizC $84/A5A1 A5 3F LDA $3F [$00:003F] A:0010 X:0010 Y:B491 P:envmxdizC $84/A5A3 38 SEC A:1080 X:0010 Y:B491 P:envmxdizC $84/A5A4 E9 00 08 SBC #$0800 A:1080 X:0010 Y:B491 P:envmxdizC $84/A5A7 A8 TAY A:0880 X:0010 Y:B491 P:envmxdizC $84/A5A8 E2 20 SEP #$20 A:0880 X:0010 Y:0880 P:envmxdizC $84/A5AA 22 F9 CA 84 JSL $84CAF9[$84:CAF9] A:0880 X:0010 Y:0880 P:envMxdizC $84/A5AE 48 PHA A:0012 X:0010 Y:0880 P:envMxdizc $84/A5AF 7B TDC A:0012 X:0010 Y:0880 P:envMxdizc $84/A5B0 AD E7 1E LDA $1EE7 [$84:1EE7] A:0000 X:0010 Y:0880 P:envMxdiZc $84/A5B3 A8 TAY A:0000 X:0010 Y:0880 P:envMxdiZc $84/A5B4 68 PLA A:0000 X:0010 Y:0000 P:envMxdiZc $84/A5B5 99 E9 1E STA $1EE9,y[$84:1EE9] A:0012 X:0010 Y:0000 P:envMxdizc $84/A5B8 7A PLY A:0012 X:0010 Y:0000 P:envMxdizc $84/A5B9 C8 INY A:0012 X:0010 Y:B491 P:eNvMxdizc $84/A5BA 60 RTS A:0012 X:0010 Y:B492 P:eNvMxdizc
$84/A5BB ?
$84/A5BB EB XBA A:0C81 X:0000 Y:AB72 P:eNvMxdizc $84/A5BC A9 00 LDA #$00 A:810C X:0000 Y:AB72 P:envMxdizc $84/A5BE EB XBA A:8100 X:0000 Y:AB72 P:envMxdiZc $84/A5BF 0A ASL A A:0081 X:0000 Y:AB72 P:eNvMxdizc $84/A5C0 AA TAX A:0002 X:0000 Y:AB72 P:envMxdizC $84/A5C1 7C C4 A5 JMP ($A5C4,x)[$84:A5F3] A:0002 X:0002 Y:AB72 P:envMxdizC
$84/A5C4 D0 A5 --- Entry #$00 - $A5D0 $84/A5C6 F3 A5 --- Entry #$01 - $A5F3 $84/A5C8 F7 A5 --- Entry #$02 - $A5F7 $84/A5CA D0 A5 --- Entry #$03 - $A5D0 $84/A5CC 1C A6 --- Entry #$04 - $A61C $84/A5CE 34 A6 --- Entry #$05 - $A634
$84/A5F3 ?
$84/A5F3 A5 1E LDA $1E [$00:001E] A:0002 X:0002 Y:AB72 P:envMxdizC $84/A5F5 80 02 BRA $02 [$A5F9] A:0021 X:0002 Y:AB72 P:envMxdizC
$84/A5F7 ?
- code is missing here
$84/A5F9 8D 02 42 STA $4202 [$84:4202] A:0021 X:0002 Y:AB72 P:envMxdizC $84/A5FC B9 01 00 LDA $0001,y[$84:AB73] A:0021 X:0002 Y:AB72 P:envMxdizC $84/A5FF 8D 03 42 STA $4203 [$84:4203] A:000C X:0002 Y:AB72 P:envMxdizC $84/A602 C2 20 REP #$20 A:000C X:0002 Y:AB72 P:envMxdizC $84/A604 EA NOP A:000C X:0002 Y:AB72 P:envmxdizC $84/A605 EA NOP A:000C X:0002 Y:AB72 P:envmxdizC $84/A606 EA NOP A:000C X:0002 Y:AB72 P:envmxdizC $84/A607 AD 16 42 LDA $4216 [$84:4216] A:000C X:0002 Y:AB72 P:envmxdizC $84/A60A 85 10 STA $10 [$00:0010] A:018C X:0002 Y:AB72 P:envmxdizC $84/A60C 4A LSR A A:018C X:0002 Y:AB72 P:envmxdizC $84/A60D E2 20 SEP #$20 A:00C6 X:0002 Y:AB72 P:envmxdizc $84/A60F C9 80 CMP #$80 A:00C6 X:0002 Y:AB72 P:envMxdizc $84/A611 29 7F AND #$7F A:00C6 X:0002 Y:AB72 P:envMxdizC $84/A613 64 12 STZ $12 [$00:0012] A:0046 X:0002 Y:AB72 P:envMxdizC $84/A615 85 13 STA $13 [$00:0013] A:0046 X:0002 Y:AB72 P:envMxdizC $84/A617 EB XBA A:0046 X:0002 Y:AB72 P:envMxdizC $84/A618 2A ROL A A:4600 X:0002 Y:AB72 P:envMxdiZC $84/A619 85 14 STA $14 [$00:0014] A:4601 X:0002 Y:AB72 P:envMxdizc $84/A61B 60 RTS A:4601 X:0002 Y:AB72 P:envMxdizc
$84/B915 ?
$84/B915 8B PHB ; Buffer Data Bank on Stack $84/B916 4B PHK ; Set Data Bank to $84 $84/B917 AB PLB $84/B918 A8 TAY A:0220 X:0006 Y:0004 P:eNvMxdizc $84/B919 84 00 STY $00 [$00:0000] A:0220 X:0006 Y:0220 P:envMxdizc $84/B91B A0 00 00 LDY #$0000 A:0220 X:0006 Y:0220 P:envMxdizc $84/B91E BD 03 0E LDA $0E03,x[$84:0E09] A:0220 X:0006 Y:0000 P:envMxdiZc $84/B921 F0 03 BEQ $03 [$B926] A:0200 X:0006 Y:0000 P:envMxdiZc $84/B923 A0 00 10 LDY #$1000 A:0202 X:000E Y:0000 P:envMxdizc $84/B926 C2 21 REP #$21 A:0200 X:0006 Y:0000 P:envMxdiZc $84/B928 98 TYA A:0200 X:0006 Y:0000 P:envmxdiZc $84/B929 69 00 60 ADC #$6000 A:0000 X:0006 Y:0000 P:envmxdiZc $84/B92C 85 20 STA $20 ; Setup address in [$20]: Either $7E/6000 or $7E/7000 $84/B92E E2 20 SEP #$20 ; A = 8-bit $84/B930 A9 7E LDA #$7E $84/B932 85 22 STA $22 $84/B934 7B TDC ; Clear 16-bit A $84/B935 A5 00 LDA $00 [$00:0000] A:0000 X:0006 Y:0000 P:envMxdiZc $84/B937 C2 20 REP #$20 A:0020 X:0006 Y:0000 P:envMxdizc $84/B939 20 13 9E JSR $9E13 [$84:9E13] A:0020 X:0006 Y:0000 P:envmxdizc $84/B93C A8 TAY A:5000 X:0006 Y:0000 P:envmxdizc $84/B93D E2 20 SEP #$20 A:5000 X:0006 Y:5000 P:envmxdizc $84/B93F BD 03 06 LDA $0603,x[$84:0609] A:5000 X:0006 Y:5000 P:envMxdizc $84/B942 C9 30 CMP #$30 A:5001 X:0006 Y:5000 P:envMxdizc $84/B944 B0 0F BCS $0F [$B955] A:5001 X:0006 Y:5000 P:eNvMxdizc $84/B946 C9 10 CMP #$10 A:5001 X:0006 Y:5000 P:eNvMxdizc $84/B948 B0 1A BCS $1A [$B964] A:5001 X:0006 Y:5000 P:eNvMxdizc $84/B94A C9 02 CMP #$02 A:5001 X:0006 Y:5000 P:eNvMxdizc $84/B94C D0 07 BNE $07 [$B955] A:5001 X:0006 Y:5000 P:eNvMxdizc
- code is missing here
$84/B955 7B TDC A:5001 X:0006 Y:5000 P:eNvMxdizc $84/B956 A5 01 LDA $01 [$00:0001] A:0000 X:0006 Y:5000 P:envMxdiZc $84/B958 AA TAX A:0002 X:0006 Y:5000 P:envMxdizc $84/B959 BD 93 BA LDA $BA93,x[$84:BA95] A:0002 X:0002 Y:5000 P:envMxdizc $84/B95C 09 80 ORA #$80 A:0000 X:0002 Y:5000 P:envMxdiZc $84/B95E 22 8A B9 84 JSL $84B98A[$84:B98A] A:0080 X:0002 Y:5000 P:eNvMxdizc $84/B962 80 24 BRA $24 ; [$B988] Exit
- code is missing here
$84/B988 AB PLB ; Restore Data Bank from Stack $84/B989 6B RTL
$84/B98A BATTLE: Figure Move Animation
This subroutine updates the sprites for a figure
There are some values to this subroutine carried in before it is called:
A contains some Index for a table at $84/BA03 ($0002:3A03)
Y contains the VRAM destination address
$20 to $22 contains an offset for the DMA Source Address
$84/B98A 8B PHB ; Buffer Data Bank on Stack $84/B98B 4B PHK ; Set Data Bank to $84 $84/B98C AB PLB $84/B98D D4 00 PEI ($00) ; Buffer $00-$03 on Stack $84/B98F D4 02 PEI ($02) $84/B991 D4 0C PEI ($0C) ; Buffer $0C-$0F on Stack $84/B993 D4 0E PEI ($0E) $84/B995 09 00 ORA #$00 ; Set the "focus" of the flag register back on the Accumulator??? $84/B997 10 0A BPL $0A ; [$B9A3] Branch if A value is between #$00 and #$7F $84/B999 29 7F AND #$7F ; This line could be removed? - MSB wasn't set anyways $84/B99B 85 00 STA $00 ; Store Original A minus MSB in $00 $84/B99D A9 02 LDA #$02 ; Set up a counter for left/right side of the graphic $84/B99F 85 01 STA $01 ; Yeah, I wouldn't understand that comment, too $84/B9A1 80 04 BRA $04 ; [$B9A7]
- code is missing here
$84/B9A7 84 02 STY $02 ; Buffer VRAM destination in $02 $84/B9A9 A2 40 00 LDX #$0040 ; Number of Bytes to transfer $84/B9AC 86 0C STX $0C $84/B9AE A9 80 LDA #$80 ; VRAM settings for the DMA (for $2115) $84/B9B0 85 0E STA $0E $84/B9B2 7B TDC ; Clear 16-bit A $84/B9B3 A5 00 LDA $00 ; Load Original A value $84/B9B5 0A ASL A ; Multiply by 4 (4 byte sized table entries?) $84/B9B6 0A ASL A $84/B9B7 A8 TAY ; Transfer in Y $84/B9B8 7B TDC ; Clear 16-bit A $84/B9B9 B9 03 BA LDA $BA03,y ; Load Table entry $84/B9BC C9 FF CMP #$FF ; ??? $84/B9BE F0 0F BEQ $0F ; [$B9CF] ??? $84/B9C0 C2 20 REP #$20 ; Multiply loaded byte by #$20 (thirty-two) $84/B9C2 EB XBA $84/B9C3 4A LSR A $84/B9C4 4A LSR A $84/B9C5 4A LSR A $84/B9C6 65 20 ADC $20 ; Add some DMA Source Address Offset that was set up before this subroutine $84/B9C8 AA TAX ; Transfer in X as DMA Source Address $84/B9C9 E2 20 SEP #$20 $84/B9CB A5 22 LDA $22 ; Load $22 in A as DMA SOurce Bank $84/B9CD 80 05 BRA $05 ; [$B9D4] Branch
- Code is missing here
$84/B9D4 5A PHY ; Push Y on stack - it's the Load Index for the table at $BA03 $84/B9D5 A4 02 LDY $02 ; Load VRAM destination address in Y $84/B9D7 22 24 9F 80 JSL $809F24 ; VRAM DMA $84/B9DB 7A PLY ; Restore the Load Index for the table at $BA03 $84/B9DC C8 INY ; Increment it $84/B9DD 98 TYA ; Copy it to A $84/B9DE 29 03 AND #$03 ; Look if it has done 4 graphics; 4 sprite graphics per Unit $84/B9E0 F0 13 BEQ $13 ; [$B9F5] If so, exit $84/B9E2 7B TDC ; Clear 16-bit A $84/B9E3 A9 20 LDA #$20 ; ??? This has something to do with the positioning of sprites in VRAM $84/B9E5 C6 01 DEC $01 ; ??? The right sprite is $20 away from the left, the one below $100 ($20+$E0) $84/B9E7 D0 02 BNE $02 ; [$B9EB] ??? $01 is a counter for this, whether it should add... $84/B9E9 A9 E0 LDA #$E0 ; ??? $20 or $E0 to get to the VRAM address to reach the next graphic $84/B9EB C2 21 REP #$21 ; Add this $20 or $E0 to the VRAM address, store it in it's buffer... $84/B9ED 65 02 ADC $02 $84/B9EF 85 02 STA $02 $84/B9F1 E2 20 SEP #$20 $84/B9F3 80 C3 BRA $C3 ; [$B9B8] ... and loop $84/B9F5 FA PLX ; Restore the $0C-$0F from Stack $84/B9F6 86 0E STX $0E $84/B9F8 FA PLX $84/B9F9 86 0C STX $0C $84/B9FB FA PLX ; Restore the $00-$03 from Stack $84/B9FC 86 02 STX $02 $84/B9FE FA PLX $84/B9FF 86 00 STX $00 $84/BA01 AB PLB ; Restore Data Bank from Stack $84/BA02 6B RTL
$84/BA03 08 00 18 10 $84/BA07 0A 02 1A 12 $84/BA0B 0C 04 1C 14 $84/BA0F 0E 06 1E 16 $84/BA13 44 40 54 50 $84/BA17 46 42 56 52 $84/BA1B 28 20 38 30 $84/BA1F 2A 22 3A 32 $84/BA23 2C 24 3C 34 $84/BA27 2E 26 3E 36 $84/BA2B 4C 48 5C 58 $84/BA2F 4E 4A 5E 5A $84/BA33 60 00 FF 10 $84/BA37 62 02 FF 12 $84/BA3B 64 04 FF 14 $84/BA3F 66 06 FF 16 $84/BA43 70 40 FF 50 $84/BA47 72 42 FF 52 $84/BA4B 68 20 FF 30 $84/BA4F 6A 22 FF 32 $84/BA53 6C 24 FF 34 $84/BA57 6E 26 FF 36 $84/BA5B 74 48 FF 58 $84/BA5F 76 4A FF 5A $84/BA63 46 42 56 52 $84/BA67 FF FF FF FF $84/BA6B FF FF 00 FF $84/BA6F 00 FF 10 FF $84/BA73 10 FF 08 00 $84/BA77 22 FF 32 FF $84/BA7B 32 FF 28 22 $84/BA7F FF FF FF FF $84/BA83 08 00 FF 10 $84/BA87 08 40 FF 50 $84/BA8B 28 20 38 30 $84/BA8F 2E 26 FF 36 $84/BA93 FF FF 00 01 $84/BA97 02 03 04 05 $84/BA9B 18 FF 06 07 $84/BA9F 08 09 0A 0B
$84/BBC4 ?
$84/BBC4 8B PHB ; Buffer Data Bank on Stack $84/BBC5 EB XBA ; Buffer 16-bit A on Stack $84/BBC6 48 PHA $84/BBC7 EB XBA $84/BBC8 48 PHA $84/BBC9 7B TDC ; Clear 16-bit A $84/BBCA A3 01 LDA $01,s [$00:1FD2] A:0000 X:0006 Y:0005 P:envMxdiZc $84/BBCC 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $84/BBD0 B0 70 BCS $70 [$BC42] A:003B X:0006 Y:0005 P:envMxdizc $84/BBD2 A3 01 LDA $01,s [$00:1FD2] A:003B X:0006 Y:0005 P:envMxdizc $84/BBD4 C9 F0 CMP #$F0 A:003B X:0006 Y:0005 P:envMxdizc $84/BBD6 F0 6A BEQ $6A [$BC42] A:003B X:0006 Y:0005 P:envMxdizc $84/BBD8 A3 02 LDA $02,s [$00:1FD3] A:003B X:0006 Y:0005 P:envMxdizc $84/BBDA EB XBA A:003B X:0006 Y:0005 P:envMxdizc $84/BBDB A3 01 LDA $01,s [$00:1FD2] A:3B00 X:0006 Y:0005 P:envMxdiZc $84/BBDD 22 1F A1 88 JSL $88A11F[$88:A11F] A:3B3B X:0006 Y:0005 P:envMxdizc $84/BBE1 83 01 STA $01,s [$00:1FD2] A:0028 X:0006 Y:0005 P:envMxdizc $84/BBE3 C2 21 REP #$21 A:0028 X:0006 Y:0005 P:envMxdizc $84/BBE5 8A TXA A:0028 X:0006 Y:0005 P:envmxdizc $84/BBE6 EB XBA A:0006 X:0006 Y:0005 P:envmxdizc $84/BBE7 69 00 80 ADC #$8000 A:0600 X:0006 Y:0005 P:envmxdiZc $84/BBEA 85 29 STA $29 [$00:0029] A:8600 X:0006 Y:0005 P:eNvmxdizc $84/BBEC E2 20 SEP #$20 A:8600 X:0006 Y:0005 P:eNvmxdizc $84/BBEE A9 7E LDA #$7E A:8600 X:0006 Y:0005 P:eNvMxdizc $84/BBF0 85 2B STA $2B [$00:002B] A:867E X:0006 Y:0005 P:envMxdizc $84/BBF2 7B TDC A:867E X:0006 Y:0005 P:envMxdizc $84/BBF3 A3 01 LDA $01,s [$00:1FD2] A:0000 X:0006 Y:0005 P:envMxdiZc $84/BBF5 C2 20 REP #$20 A:0028 X:0006 Y:0005 P:envMxdizc $84/BBF7 0A ASL A A:0028 X:0006 Y:0005 P:envmxdizc $84/BBF8 0A ASL A A:0050 X:0006 Y:0005 P:envmxdizc $84/BBF9 0A ASL A A:00A0 X:0006 Y:0005 P:envmxdizc $84/BBFA 69 81 02 ADC #$0281 A:0140 X:0006 Y:0005 P:envmxdizc $84/BBFD 85 0E STA $0E [$00:000E] A:03C1 X:0006 Y:0005 P:envmxdizc $84/BBFF 0A ASL A A:03C1 X:0006 Y:0005 P:envmxdizc $84/BC00 65 0E ADC $0E [$00:000E] A:0782 X:0006 Y:0005 P:envmxdizc $84/BC02 AA TAX A:0B43 X:0006 Y:0005 P:envmxdizc $84/BC03 E2 20 SEP #$20 A:0B43 X:0B43 Y:0005 P:envmxdizc $84/BC05 D4 29 PEI ($29) [$8600] A:0B43 X:0B43 Y:0005 P:envMxdizc $84/BC07 DA PHX A:0B43 X:0B43 Y:0005 P:envMxdizc $84/BC08 20 46 BC JSR $BC46 [$84:BC46] A:0B43 X:0B43 Y:0005 P:envMxdizc $84/BC0B C2 21 REP #$21 A:0000 X:8640 Y:3951 P:envMxdizC $84/BC0D A9 00 01 LDA #$0100 A:0000 X:8640 Y:3951 P:envmxdizc $84/BC10 65 29 ADC $29 [$00:0029] A:0100 X:8640 Y:3951 P:envmxdizc $84/BC12 85 29 STA $29 [$00:0029] A:8700 X:8640 Y:3951 P:eNvmxdizc $84/BC14 68 PLA A:8700 X:8640 Y:3951 P:eNvmxdizc $84/BC15 69 0C 00 ADC #$000C A:0B43 X:8640 Y:3951 P:envmxdizc $84/BC18 AA TAX A:0B4F X:8640 Y:3951 P:envmxdizc $84/BC19 E2 20 SEP #$20 A:0B4F X:0B4F Y:3951 P:envmxdizc $84/BC1B 20 46 BC JSR $BC46 [$84:BC46] A:0B4F X:0B4F Y:3951 P:envMxdizc $84/BC1E FA PLX A:0000 X:8740 Y:3951 P:envMxdizC $84/BC1F 86 29 STX $29 [$00:0029] A:0000 X:8600 Y:3951 P:eNvMxdizC $84/BC21 A9 04 LDA #$04 A:0000 X:8600 Y:3951 P:eNvMxdizC $84/BC23 48 PHA A:0004 X:8600 Y:3951 P:envMxdizC $84/BC24 C2 21 REP #$21 A:0004 X:8600 Y:3951 P:envMxdizC $84/BC26 A5 29 LDA $29 [$00:0029] A:0004 X:8600 Y:3951 P:envmxdizc $84/BC28 69 40 00 ADC #$0040 A:8600 X:8600 Y:3951 P:eNvmxdizc $84/BC2B AA TAX A:8640 X:8600 Y:3951 P:eNvmxdizc $84/BC2C E2 20 SEP #$20 A:8640 X:8640 Y:3951 P:eNvmxdizc $84/BC2E A5 2B LDA $2B [$00:002B] A:8640 X:8640 Y:3951 P:eNvMxdizc $84/BC30 20 C2 BC JSR $BCC2 [$84:BCC2] A:867E X:8640 Y:3951 P:envMxdizc $84/BC33 C2 21 REP #$21 A:8600 X:0008 Y:8670 P:envMxdizC $84/BC35 A5 29 LDA $29 [$00:0029] A:8600 X:0008 Y:8670 P:envmxdizc $84/BC37 69 80 00 ADC #$0080 A:8600 X:0008 Y:8670 P:eNvmxdizc $84/BC3A 85 29 STA $29 [$00:0029] A:8680 X:0008 Y:8670 P:eNvmxdizc $84/BC3C E2 20 SEP #$20 A:8680 X:0008 Y:8670 P:eNvmxdizc $84/BC3E 68 PLA A:8680 X:0008 Y:8670 P:eNvMxdizc $84/BC3F 3A DEC A A:8604 X:0008 Y:8670 P:envMxdizc $84/BC40 D0 E1 BNE $E1 [$BC23] A:8603 X:0008 Y:8670 P:envMxdizc $84/BC42 68 PLA A:8800 X:0008 Y:87F0 P:envMxdiZc $84/BC43 68 PLA A:8828 X:0008 Y:87F0 P:envMxdizc $84/BC44 AB PLB A:883B X:0008 Y:87F0 P:envMxdizc $84/BC45 6B RTL A:883B X:0008 Y:87F0 P:envMxdizc
$84/BC46 ?
$84/BC46 A4 5C LDY $5C [$00:005C] A:0B43 X:0B43 Y:0005 P:envMxdizc $84/BC48 84 20 STY $20 [$00:0020] A:0B43 X:0B43 Y:3911 P:envMxdizc $84/BC4A A9 7E LDA #$7E A:0B43 X:0B43 Y:3911 P:envMxdizc $84/BC4C 85 22 STA $22 [$00:0022] A:0B7E X:0B43 Y:3911 P:envMxdizc $84/BC4E A0 02 80 LDY #$8002 A:0B7E X:0B43 Y:3911 P:envMxdizc $84/BC51 84 23 STY $23 [$00:0023] A:0B7E X:0B43 Y:8002 P:eNvMxdizc $84/BC53 A9 C1 LDA #$C1 A:0B7E X:0B43 Y:8002 P:eNvMxdizc $84/BC55 85 25 STA $25 [$00:0025] A:0BC1 X:0B43 Y:8002 P:eNvMxdizc $84/BC57 DA PHX A:0BC1 X:0B43 Y:8002 P:eNvMxdizc $84/BC58 C2 20 REP #$20 A:0BC1 X:0B43 Y:8002 P:eNvMxdizc $84/BC5A BF 03 80 BF LDA $BF8003,x[$BF:8B46] A:0BC1 X:0B43 Y:8002 P:eNvmxdizc $84/BC5E A8 TAY A:BF21 X:0B43 Y:8002 P:eNvmxdizc $84/BC5F E2 20 SEP #$20 A:BF21 X:0B43 Y:BF21 P:eNvmxdizc $84/BC61 BF 05 80 BF LDA $BF8005,x[$BF:8B48] A:BF21 X:0B43 Y:BF21 P:eNvMxdizc $84/BC65 BB TYX A:BFCE X:0B43 Y:BF21 P:eNvMxdizc $84/BC66 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:BFCE X:BF21 Y:BF21 P:eNvMxdizc $84/BC6A A0 02 80 LDY #$8002 A:0080 X:BFA9 Y:0080 P:envMxdizC $84/BC6D 84 23 STY $23 [$00:0023] A:0080 X:BFA9 Y:8002 P:eNvMxdizC $84/BC6F A9 C1 LDA #$C1 A:0080 X:BFA9 Y:8002 P:eNvMxdizC $84/BC71 85 25 STA $25 [$00:0025] A:00C1 X:BFA9 Y:8002 P:eNvMxdizC $84/BC73 FA PLX A:00C1 X:BFA9 Y:8002 P:eNvMxdizC $84/BC74 C2 21 REP #$21 A:00C1 X:0B43 Y:8002 P:envMxdizC $84/BC76 A5 0E LDA $0E [$00:000E] A:00C1 X:0B43 Y:8002 P:envmxdizc $84/BC78 65 20 ADC $20 [$00:0020] A:0080 X:0B43 Y:8002 P:envmxdizc $84/BC7A 85 20 STA $20 [$00:0020] A:3991 X:0B43 Y:8002 P:envmxdizc $84/BC7C BF 09 80 BF LDA $BF8009,x[$BF:8B4C] A:3991 X:0B43 Y:8002 P:envmxdizc $84/BC80 A8 TAY A:C46B X:0B43 Y:8002 P:eNvmxdizc $84/BC81 E2 20 SEP #$20 A:C46B X:0B43 Y:C46B P:eNvmxdizc $84/BC83 BF 0B 80 BF LDA $BF800B,x[$BF:8B4E] A:C46B X:0B43 Y:C46B P:eNvMxdizc $84/BC87 BB TYX A:C4D9 X:0B43 Y:C46B P:eNvMxdizc $84/BC88 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:C4D9 X:C46B Y:C46B P:eNvMxdizc $84/BC8C 8B PHB ; Buffer Data Bank on Stack $84/BC8D A9 7E LDA #$7E ; Set Data Bank to $7E $84/BC8F 48 PHA $84/BC90 AB PLB $84/BC91 A4 5C LDY $5C [$00:005C] A:007E X:C490 Y:0080 P:envMxdizC $84/BC93 A6 29 LDX $29 [$00:0029] A:007E X:C490 Y:3911 P:envMxdizC $84/BC95 C2 20 REP #$20 ; A = 16-bit $84/BC97 A9 20 00 LDA #$0020 ; Setup Loop Counter in $00 $84/BC9A 85 00 STA $00 $84/BC9C B9 00 00 LDA $0000,y[$7E:3911] A:0020 X:8600 Y:3911 P:envmxdizC $84/BC9F 9D 00 00 STA $0000,x[$7E:8600] A:0400 X:8600 Y:3911 P:envmxdizC $84/BCA2 B9 40 00 LDA $0040,y[$7E:3951] A:0400 X:8600 Y:3911 P:envmxdizC $84/BCA5 48 PHA A:0721 X:8600 Y:3911 P:envmxdizC $84/BCA6 B9 80 00 LDA $0080,y[$7E:3991] A:0721 X:8600 Y:3911 P:envmxdizC $84/BCA9 9D 40 00 STA $0040,x[$7E:8640] A:3834 X:8600 Y:3911 P:envmxdizC $84/BCAC 68 PLA A:3834 X:8600 Y:3911 P:envmxdizC $84/BCAD 9D 80 00 STA $0080,x[$7E:8680] A:0721 X:8600 Y:3911 P:envmxdizC $84/BCB0 B9 C0 00 LDA $00C0,y[$7E:39D1] A:0721 X:8600 Y:3911 P:envmxdizC $84/BCB3 9D C0 00 STA $00C0,x[$7E:86C0] A:0105 X:8600 Y:3911 P:envmxdizC $84/BCB6 C8 INY ; Increment Load Index twice $84/BCB7 C8 INY $84/BCB8 E8 INX ; Increment Store Index twice $84/BCB9 E8 INX $84/BCBA C6 00 DEC $00 ; Decrement Loop Counter $84/BCBC D0 DE BNE $DE ; [$BC9C] Loop until Counter ran out $84/BCBE E2 20 SEP #$20 ; A = 8-bit $84/BCC0 AB PLB ; Restore Data Bank from Stack $84/BCC1 60 RTS
$84/BD29 ?
$84/BD29 8B PHB ; Buffer Data Bank on Stack $84/BD2A 4B PHK ; Set Data Bank to $84 $84/BD2B AB PLB $84/BD2C DA PHX ; Buffer X and Y on Stack $84/BD2D 5A PHY $84/BD2E D4 00 PEI ($00) ; Buffer $00-$03 on Stack $84/BD30 D4 02 PEI ($02) $84/BD32 84 02 STY $02 [$00:0002] A:0000 X:0000 Y:0004 P:eNvMxdizc $84/BD34 DA PHX A:0000 X:0000 Y:0004 P:eNvMxdizc $84/BD35 A6 5C LDX $5C [$00:005C] A:0000 X:0000 Y:0004 P:eNvMxdizc $84/BD37 A9 7E LDA #$7E A:0000 X:45D9 Y:0004 P:envMxdizc $84/BD39 86 20 STX $20 [$00:0020] A:007E X:45D9 Y:0004 P:envMxdizc $84/BD3B 85 22 STA $22 [$00:0022] A:007E X:45D9 Y:0004 P:envMxdizc $84/BD3D A6 02 LDX $02 [$00:0002] A:007E X:45D9 Y:0004 P:envMxdizc $84/BD3F 22 38 A1 88 JSL $88A138 ; Load Figure's Character Class/Graphic Set number $84/BD43 BC 3E 1E LDY $1E3E,x[$84:1E42] A:0034 X:0004 Y:0004 P:envMxdizc $84/BD46 EB XBA A:0034 X:0004 Y:0004 P:envMxdizc $84/BD47 B9 03 06 LDA $0603,y[$84:0607] A:3400 X:0004 Y:0004 P:envMxdiZc $84/BD4A EB XBA A:3401 X:0004 Y:0004 P:envMxdizc $84/BD4B FA PLX A:0134 X:0004 Y:0004 P:envMxdizc $84/BD4C 22 F4 BD 84 JSL $84BDF4[$84:BDF4] A:0134 X:0000 Y:0004 P:envMxdiZc $84/BD50 C2 20 REP #$20 A:0100 X:0000 Y:0100 P:eNvMxdizC $84/BD52 98 TYA A:0100 X:0000 Y:0100 P:eNvmxdizC $84/BD53 4A LSR A A:0100 X:0000 Y:0100 P:envmxdizC $84/BD54 85 0C STA $0C [$00:000C] A:0080 X:0000 Y:0100 P:envmxdizc $84/BD56 A6 02 LDX $02 [$00:0002] A:0080 X:0000 Y:0100 P:envmxdizc $84/BD58 BC 3E 1E LDY $1E3E,x[$84:1E42] A:0080 X:0004 Y:0100 P:envmxdizc $84/BD5B B9 C3 06 LDA $06C3,y[$84:06C7] A:0080 X:0004 Y:0004 P:envmxdizc $84/BD5E 29 FF 00 AND #$00FF A:010A X:0004 Y:0004 P:envmxdizc $84/BD61 20 13 9E JSR $9E13 [$84:9E13] A:000A X:0004 Y:0004 P:envmxdizc $84/BD64 A8 TAY A:4480 X:0004 Y:0004 P:envmxdizc $84/BD65 E2 20 SEP #$20 A:4480 X:0004 Y:4480 P:envmxdizc $84/BD67 A9 80 LDA #$80 A:4480 X:0004 Y:4480 P:envMxdizc $84/BD69 85 0E STA $0E [$00:000E] A:4480 X:0004 Y:4480 P:eNvMxdizc $84/BD6B 5A PHY A:4480 X:0004 Y:4480 P:eNvMxdizc $84/BD6C A6 20 LDX $20 [$00:0020] A:4480 X:0004 Y:4480 P:eNvMxdizc $84/BD6E A5 22 LDA $22 [$00:0022] A:4480 X:45D9 Y:4480 P:envMxdizc $84/BD70 22 24 9F 80 JSL $809F24[$80:9F24] A:447E X:45D9 Y:4480 P:envMxdizc $84/BD74 C2 21 REP #$21 A:4580 X:0000 Y:4480 P:eNvMxdizc $84/BD76 68 PLA A:4580 X:0000 Y:4480 P:eNvmxdizc $84/BD77 69 00 01 ADC #$0100 A:4480 X:0000 Y:4480 P:envmxdizc $84/BD7A A8 TAY A:4580 X:0000 Y:4480 P:envmxdizc $84/BD7B A5 0C LDA $0C [$00:000C] A:4580 X:0000 Y:4580 P:envmxdizc $84/BD7D 18 CLC A:0080 X:0000 Y:4580 P:envmxdizc $84/BD7E 65 20 ADC $20 [$00:0020] A:0080 X:0000 Y:4580 P:envmxdizc $84/BD80 AA TAX A:4659 X:0000 Y:4580 P:envmxdizc $84/BD81 E2 20 SEP #$20 A:4659 X:4659 Y:4580 P:envmxdizc $84/BD83 A5 22 LDA $22 [$00:0022] A:4659 X:4659 Y:4580 P:envMxdizc $84/BD85 22 24 9F 80 JSL $809F24[$80:9F24] A:467E X:4659 Y:4580 P:envMxdizc $84/BD89 7A PLY ; Restore $00-$03 from Stack $84/BD8A 84 02 STY $02 $84/BD8C 7A PLY $84/BD8D 84 00 STY $00 $84/BD8F 7A PLY ; Restore Y and X from Stack $84/BD90 FA PLX $84/BD91 AB PLB ; Restore Data Bank from Stack $84/BD92 6B RTL
$84/BDF0 ?
$84/BDF0 EB XBA A:0035 X:0000 Y:0000 P:envMxdiZc $84/BDF1 A9 00 LDA #$00 A:3500 X:0000 Y:0000 P:envMxdiZc $84/BDF3 EB XBA A:3500 X:0000 Y:0000 P:envMxdiZc $84/BDF4 8B PHB A:0035 X:0000 Y:0000 P:envMxdizc $84/BDF5 4B PHK A:0035 X:0000 Y:0000 P:envMxdizc $84/BDF6 AB PLB A:0035 X:0000 Y:0000 P:envMxdizc $84/BDF7 DA PHX A:0035 X:0000 Y:0000 P:eNvMxdizc $84/BDF8 D4 00 PEI ($00) [$0000] A:0035 X:0000 Y:0000 P:eNvMxdizc $84/BDFA 85 00 STA $00 [$00:0000] A:0035 X:0000 Y:0000 P:eNvMxdizc $84/BDFC 8A TXA A:0035 X:0000 Y:0000 P:eNvMxdizc $84/BDFD 85 01 STA $01 [$00:0001] A:0000 X:0000 Y:0000 P:envMxdiZc $84/BDFF D4 20 PEI ($20) [$45D9] A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE01 A9 00 LDA #$00 A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE03 EB XBA A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE04 09 00 ORA #$00 A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE06 F0 05 BEQ $05 [$BE0D] A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE08 3A DEC A A:0001 X:0000 Y:0004 P:envMxdizc $84/BE09 0A ASL A A:0000 X:0000 Y:0004 P:envMxdiZc $84/BE0A A8 TAY A:0000 X:0000 Y:0004 P:envMxdiZc $84/BE0B 80 15 BRA $15 [$BE22] A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE0D A5 00 LDA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE0F A0 16 00 LDY #$0016 A:0035 X:0000 Y:0000 P:envMxdizc $84/BE12 C9 DC CMP #$DC A:0035 X:0000 Y:0016 P:envMxdizc $84/BE14 B0 0C BCS $0C [$BE22] A:0035 X:0000 Y:0016 P:envMxdizc $84/BE16 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $84/BE1A A0 00 00 LDY #$0000 A:0035 X:0000 Y:0016 P:envMxdiZc $84/BE1D 90 03 BCC $03 [$BE22] A:0035 X:0000 Y:0000 P:envMxdiZc $84/BE22 7B TDC A:0035 X:0000 Y:0000 P:envMxdiZc $84/BE23 A5 01 LDA $01 [$00:0001] A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE25 C2 21 REP #$21 A:0000 X:0000 Y:0000 P:envMxdiZc $84/BE27 0A ASL A A:0000 X:0000 Y:0000 P:envmxdiZc $84/BE28 79 15 87 ADC $8715,y[$84:8715] A:0000 X:0000 Y:0000 P:envmxdiZc $84/BE2B A8 TAY A:87D5 X:0000 Y:0000 P:eNvmxdizc $84/BE2C B9 00 00 LDA $0000,y[$84:87D5] A:87D5 X:0000 Y:87D5 P:eNvmxdizc $84/BE2F A8 TAY A:89B4 X:0000 Y:87D5 P:eNvmxdizc $84/BE30 E2 20 SEP #$20 A:89B4 X:0000 Y:89B4 P:eNvmxdizc $84/BE32 7B TDC A:89B4 X:0000 Y:89B4 P:eNvMxdizc $84/BE33 B9 00 00 LDA $0000,y[$84:89B4] A:0000 X:0000 Y:89B4 P:envMxdiZc $84/BE36 10 09 BPL $09 [$BE41] A:0081 X:0000 Y:89B4 P:eNvMxdizc $84/BE38 C9 FF CMP #$FF A:0081 X:0000 Y:89B4 P:eNvMxdizc $84/BE3A F0 34 BEQ $34 [$BE70] A:0081 X:0000 Y:89B4 P:eNvMxdizc $84/BE3C 20 31 BF JSR $BF31 [$84:BF31] A:0081 X:0000 Y:89B4 P:eNvMxdizc $84/BE3F 80 F1 BRA $F1 [$BE32] A:4C01 X:00D4 Y:89B6 P:eNvMxdizc $84/BE41 C2 20 REP #$20 A:0002 X:00D4 Y:89B6 P:envMxdizc $84/BE43 EB XBA A:0002 X:00D4 Y:89B6 P:envmxdizc $84/BE44 4A LSR A A:0200 X:00D4 Y:89B6 P:envmxdiZc $84/BE45 4A LSR A A:0100 X:00D4 Y:89B6 P:envmxdizc $84/BE46 4A LSR A A:0080 X:00D4 Y:89B6 P:envmxdizc $84/BE47 85 0C STA $0C [$00:000C] A:0040 X:00D4 Y:89B6 P:envmxdizc $84/BE49 E2 20 SEP #$20 A:0040 X:00D4 Y:89B6 P:envmxdizc $84/BE4B BE 01 00 LDX $0001,y[$84:89B7] A:0040 X:00D4 Y:89B6 P:envMxdizc $84/BE4E C8 INY A:0040 X:0720 Y:89B6 P:envMxdizc $84/BE4F C8 INY A:0040 X:0720 Y:89B7 P:eNvMxdizc $84/BE50 C8 INY A:0040 X:0720 Y:89B8 P:eNvMxdizc $84/BE51 5A PHY A:0040 X:0720 Y:89B9 P:eNvMxdizc $84/BE52 C2 21 REP #$21 A:0040 X:0720 Y:89B9 P:eNvMxdizc $84/BE54 8A TXA A:0040 X:0720 Y:89B9 P:eNvmxdizc $84/BE55 10 07 BPL $07 [$BE5E] A:0720 X:0720 Y:89B9 P:envmxdizc $84/BE5E E2 20 SEP #$20 A:0720 X:0720 Y:89B9 P:envmxdizc $84/BE60 20 83 BE JSR $BE83 [$84:BE83] A:0720 X:0720 Y:89B9 P:envMxdizc $84/BE63 7A PLY A:FFFF X:B040 Y:4619 P:eNvMxdizc $84/BE64 C2 21 REP #$21 A:FFFF X:B040 Y:89B9 P:eNvMxdizc $84/BE66 A5 0C LDA $0C [$00:000C] A:FFFF X:B040 Y:89B9 P:eNvmxdizc $84/BE68 65 20 ADC $20 [$00:0020] A:0040 X:B040 Y:89B9 P:envmxdizc $84/BE6A 85 20 STA $20 [$00:0020] A:4619 X:B040 Y:89B9 P:envmxdizc $84/BE6C E2 20 SEP #$20 A:4619 X:B040 Y:89B9 P:envmxdizc $84/BE6E 80 C2 BRA $C2 [$BE32] A:4619 X:B040 Y:89B9 P:envMxdizc $84/BE70 C2 20 REP #$20 A:00FF X:AC80 Y:89C3 P:envMxdiZC $84/BE72 A5 20 LDA $20 [$00:0020] A:00FF X:AC80 Y:89C3 P:envmxdiZC $84/BE74 FA PLX A:46D9 X:AC80 Y:89C3 P:envmxdizC $84/BE75 86 20 STX $20 [$00:0020] A:46D9 X:45D9 Y:89C3 P:envmxdizC $84/BE77 38 SEC A:46D9 X:45D9 Y:89C3 P:envmxdizC $84/BE78 E5 20 SBC $20 [$00:0020] A:46D9 X:45D9 Y:89C3 P:envmxdizC $84/BE7A A8 TAY A:0100 X:45D9 Y:89C3 P:envmxdizC $84/BE7B E2 20 SEP #$20 A:0100 X:45D9 Y:0100 P:envmxdizC $84/BE7D FA PLX A:0100 X:45D9 Y:0100 P:envMxdizC $84/BE7E 86 00 STX $00 [$00:0000] A:0100 X:0000 Y:0100 P:envMxdiZC $84/BE80 FA PLX A:0100 X:0000 Y:0100 P:envMxdiZC $84/BE81 AB PLB A:0100 X:0000 Y:0100 P:envMxdiZC $84/BE82 6B RTL A:0100 X:0000 Y:0100 P:envMxdizC
$84/BE83 ?
$84/BE83 C2 20 REP #$20 A:0720 X:0720 Y:89B9 P:envMxdizc $84/BE85 0A ASL A A:0720 X:0720 Y:89B9 P:envmxdizc $84/BE86 0A ASL A A:0E40 X:0720 Y:89B9 P:envmxdizc $84/BE87 0A ASL A A:1C80 X:0720 Y:89B9 P:envmxdizc $84/BE88 0A ASL A A:3900 X:0720 Y:89B9 P:envmxdizc $84/BE89 0A ASL A A:7200 X:0720 Y:89B9 P:envmxdizc $84/BE8A 29 FF 7F AND #$7FFF A:E400 X:0720 Y:89B9 P:eNvmxdizc $84/BE8D 18 CLC A:6400 X:0720 Y:89B9 P:envmxdizc $84/BE8E 69 00 80 ADC #$8000 A:6400 X:0720 Y:89B9 P:envmxdizc $84/BE91 09 00 80 ORA #$8000 A:E400 X:0720 Y:89B9 P:eNvmxdizc $84/BE94 85 06 STA $06 [$00:0006] A:E400 X:0720 Y:89B9 P:eNvmxdizc $84/BE96 8A TXA A:E400 X:0720 Y:89B9 P:eNvmxdizc $84/BE97 EB XBA A:0720 X:0720 Y:89B9 P:envmxdizc $84/BE98 E2 20 SEP #$20 A:2007 X:0720 Y:89B9 P:envmxdizc $84/BE9A 08 PHP A:2007 X:0720 Y:89B9 P:envMxdizc $84/BE9B 4A LSR A A:2007 X:0720 Y:89B9 P:envMxdizc $84/BE9C 4A LSR A A:2003 X:0720 Y:89B9 P:envMxdizC $84/BE9D 28 PLP A:2001 X:0720 Y:89B9 P:envMxdizC $84/BE9E 69 B7 ADC #$B7 A:2001 X:0720 Y:89B9 P:envMxdizc $84/BEA0 85 08 STA $08 [$00:0008] A:20B8 X:0720 Y:89B9 P:eNvMxdizc $84/BEA2 C2 21 REP #$21 A:20B8 X:0720 Y:89B9 P:eNvMxdizc $84/BEA4 A5 29 LDA $29 [$00:0029] A:20B8 X:0720 Y:89B9 P:eNvmxdizc $84/BEA6 65 06 ADC $06 [$00:0006] A:4C00 X:0720 Y:89B9 P:envmxdizc $84/BEA8 09 00 80 ORA #$8000 A:3000 X:0720 Y:89B9 P:envmxdizC $84/BEAB AA TAX A:B000 X:0720 Y:89B9 P:eNvmxdizC $84/BEAC E2 20 SEP #$20 A:B000 X:B000 Y:89B9 P:eNvmxdizC $84/BEAE A5 2B LDA $2B [$00:002B] A:B000 X:B000 Y:89B9 P:eNvMxdizC $84/BEB0 65 08 ADC $08 [$00:0008] A:B001 X:B000 Y:89B9 P:envMxdizC $84/BEB2 8B PHB A:B0BA X:B000 Y:89B9 P:eNvMxdizc $84/BEB3 85 AE STA $AE [$00:00AE] A:B0BA X:B000 Y:89B9 P:eNvMxdizc $84/BEB5 A5 22 LDA $22 [$00:0022] A:B0BA X:B000 Y:89B9 P:eNvMxdizc $84/BEB7 85 AD STA $AD [$00:00AD] A:B07E X:B000 Y:89B9 P:envMxdizc $84/BEB9 A9 54 LDA #$54 A:B07E X:B000 Y:89B9 P:envMxdizc $84/BEBB 85 AC STA $AC [$00:00AC] A:B054 X:B000 Y:89B9 P:envMxdizc $84/BEBD A9 60 LDA #$60 A:B054 X:B000 Y:89B9 P:envMxdizc $84/BEBF 85 AF STA $AF [$00:00AF] A:B060 X:B000 Y:89B9 P:envMxdizc $84/BEC1 A4 20 LDY $20 [$00:0020] A:B060 X:B000 Y:89B9 P:envMxdizc $84/BEC3 C2 20 REP #$20 A:B060 X:B000 Y:45D9 P:envMxdizc $84/BEC5 A5 0C LDA $0C [$00:000C] A:B060 X:B000 Y:45D9 P:envmxdizc $84/BEC7 3A DEC A A:0040 X:B000 Y:45D9 P:envmxdizc $84/BEC8 20 AC 00 JSR $00AC [$84:00AC] A:003F X:B000 Y:45D9 P:envmxdizc $84/BECB E2 20 SEP #$20 A:FFFF X:B040 Y:4619 P:envmxdizc $84/BECD AB PLB A:FFFF X:B040 Y:4619 P:envMxdizc $84/BECE 60 RTS A:FFFF X:B040 Y:4619 P:eNvMxdizc
$84/BF31 ?
$84/BF31 0A ASL A A:0081 X:0000 Y:89B4 P:eNvMxdizc $84/BF32 AA TAX A:0002 X:0000 Y:89B4 P:envMxdizC $84/BF33 7C 36 BF JMP ($BF36,x)[$84:BF5D] A:0002 X:0002 Y:89B4 P:envMxdizC
$84/BF36 ? Address Table for the subroutine above
$84/BF36 4A BF $84/BF38 5D BF $84/BF3A 4C BF $84/BF3C 5D BF $84/BF3E 94 BF $84/BF40 C0 BF $84/BF42 AF BF $84/BF44 12 C0 $84/BF46 2D C0 $84/BF48 78 C0
$84/BF4A ?
$84/BF4A C8 INY A:0000 X:0000 Y:89BC P:envMxdiZC $84/BF4B 60 RTS A:0000 X:0000 Y:89BD P:eNvMxdizC
$84/BF5D ?
$84/BF5D 7B TDC A:0002 X:0002 Y:89B4 P:envMxdizC $84/BF5E A5 00 LDA $00 [$00:0000] A:0000 X:0002 Y:89B4 P:envMxdiZC $84/BF60 C2 20 REP #$20 A:0035 X:0002 Y:89B4 P:envMxdizC $84/BF62 0A ASL A A:0035 X:0002 Y:89B4 P:envmxdizC $84/BF63 0A ASL A A:006A X:0002 Y:89B4 P:envmxdizc $84/BF64 AA TAX A:00D4 X:0002 Y:89B4 P:envmxdizc $84/BF65 E2 20 SEP #$20 A:00D4 X:00D4 Y:89B4 P:envmxdizc $84/BF67 7B TDC A:00D4 X:00D4 Y:89B4 P:envMxdizc $84/BF68 BF 41 A6 84 LDA $84A641,x[$84:A715] A:0000 X:00D4 Y:89B4 P:envMxdiZc $84/BF6C 8D 02 42 STA $4202 [$84:4202] A:0022 X:00D4 Y:89B4 P:envMxdizc $84/BF6F EB XBA A:0022 X:00D4 Y:89B4 P:envMxdizc $84/BF70 B9 01 00 LDA $0001,y[$84:89B5] A:2200 X:00D4 Y:89B4 P:envMxdiZc $84/BF73 8D 03 42 STA $4203 [$84:4203] A:2206 X:00D4 Y:89B4 P:envMxdizc $84/BF76 A9 00 LDA #$00 A:2206 X:00D4 Y:89B4 P:envMxdizc $84/BF78 C2 20 REP #$20 A:2200 X:00D4 Y:89B4 P:envMxdiZc $84/BF7A EB XBA A:2200 X:00D4 Y:89B4 P:envmxdiZc $84/BF7B 0A ASL A A:0022 X:00D4 Y:89B4 P:envmxdizc $84/BF7C 0A ASL A A:0044 X:00D4 Y:89B4 P:envmxdizc $84/BF7D 0A ASL A A:0088 X:00D4 Y:89B4 P:envmxdizc $84/BF7E 85 04 STA $04 [$00:0004] A:0110 X:00D4 Y:89B4 P:envmxdizc $84/BF80 AD 16 42 LDA $4216 [$84:4216] A:0110 X:00D4 Y:89B4 P:envmxdizc $84/BF83 E2 20 SEP #$20 A:00CC X:00D4 Y:89B4 P:envmxdizc $84/BF85 64 29 STZ $29 [$00:0029] A:00CC X:00D4 Y:89B4 P:envMxdizc $84/BF87 C9 80 CMP #$80 A:00CC X:00D4 Y:89B4 P:envMxdizc $84/BF89 29 7F AND #$7F A:00CC X:00D4 Y:89B4 P:envMxdizC $84/BF8B 85 2A STA $2A [$00:002A] A:004C X:00D4 Y:89B4 P:envMxdizC $84/BF8D EB XBA A:004C X:00D4 Y:89B4 P:envMxdizC $84/BF8E 2A ROL A A:4C00 X:00D4 Y:89B4 P:envMxdiZC $84/BF8F 85 2B STA $2B [$00:002B] A:4C01 X:00D4 Y:89B4 P:envMxdizc $84/BF91 C8 INY A:4C01 X:00D4 Y:89B4 P:envMxdizc $84/BF92 C8 INY A:4C01 X:00D4 Y:89B5 P:eNvMxdizc $84/BF93 60 RTS A:4C01 X:00D4 Y:89B6 P:eNvMxdizc
$84/C19F ? (Related to Moving/Move Animation?)
$84/C19F 8B PHB ; Buffer Data Bank on Stack $84/C1A0 4B PHK ; Set Data Bank $84 $84/C1A1 AB PLB $84/C1A2 DA PHX ; Buffer X and Y on Stack $84/C1A3 5A PHY $84/C1A4 D4 39 PEI ($39) ; Buffer $39-$3C on Stack $84/C1A6 D4 3B PEI ($3B) $84/C1A8 84 39 STY $39 [$00:0039] A:0040 X:0006 Y:0004 P:eNvMxdizc $84/C1AA BE 3E 1E LDX $1E3E,y ; (1E3E: "? Related to the Animation Changing the value stops it") $84/C1AD 86 3B STX $3B [$00:003B] A:0040 X:0004 Y:0004 P:envMxdizc $84/C1AF BD 04 07 LDA $0704,x[$84:0708] A:0040 X:0004 Y:0004 P:envMxdizc $84/C1B2 48 PHA ; Buffer value on Stack $84/C1B3 29 FE AND #$FE ; Remove LSB $84/C1B5 9D 04 07 STA $0704,x ; Store value sans LSB back (for now) $84/C1B8 B9 16 1E LDA $1E16,y[$84:1E1A] A:0000 X:0004 Y:0004 P:envMxdiZc $84/C1BB D0 04 BNE $04 [$C1C1] A:0000 X:0004 Y:0004 P:envMxdiZc $84/C1BD 1A INC A A:0000 X:0004 Y:0004 P:envMxdiZc $84/C1BE 99 16 1E STA $1E16,y[$84:1E1A] A:0001 X:0004 Y:0004 P:envMxdizc $84/C1C1 22 D3 C1 84 JSL $84C1D3[$84:C1D3] A:0001 X:0004 Y:0004 P:envMxdizc $84/C1C5 68 PLA ; Pull original value from $0704,x from Stack $84/C1C6 9D 04 07 STA $0704,x ; Store it back $84/C1C9 FA PLX ; Restore $39-$3C from Stack $84/C1CA 86 3B STX $3B $84/C1CC FA PLX $84/C1CD 86 39 STX $39 $84/C1CF 7A PLY ; Restore Y and X from Stack $84/C1D0 FA PLX $84/C1D1 AB PLB ; Restore Data Bank from Stack $84/C1D2 6B RTL
$84/C1D3 ?
$84/C1D3 8B PHB ; Buffer Data Bank on Stack $84/C1D4 4B PHK ; Set Data Bank to $84 $84/C1D5 AB PLB $84/C1D6 DA PHX ; Buffer X and Y on Stack $84/C1D7 5A PHY $84/C1D8 D4 00 PEI ($00) ; Buffer $00-$03 on Stack $84/C1DA D4 02 PEI ($02) $84/C1DC A6 39 LDX $39 ; Load Figure number $84/C1DE A4 3B LDY $3B ; Load another Figure number $84/C1E0 B9 04 07 LDA $0704,y[$84:0708] A:0001 X:0004 Y:0004 P:envMxdizc $84/C1E3 4A LSR A ; Branch if the LSB is set $84/C1E4 B0 37 BCS $37 ; [$C21D] $84/C1E6 7B TDC ; Clear 16-bit A $84/C1E7 A5 ED LDA $ED [$00:00ED] A:0000 X:0004 Y:0004 P:envMxdiZc $84/C1E9 4A LSR A A:0000 X:0004 Y:0004 P:envMxdiZc $84/C1EA BD EF 1D LDA $1DEF,x[$84:1DF3] A:0000 X:0004 Y:0004 P:envMxdiZc $84/C1ED B0 11 BCS $11 [$C200] A:0000 X:0004 Y:0004 P:envMxdiZc $84/C1EF BD AE 17 LDA $17AE,x ; Load Figure's Sprite number $84/C1F2 C9 F0 CMP #$F0 A:0034 X:0004 Y:0004 P:envMxdizc $84/C1F4 D0 04 BNE $04 [$C1FA] A:0034 X:0004 Y:0004 P:envMxdizc
- code is missing here
$84/C1FA 20 67 C2 JSR $C267 [$84:C267] A:0034 X:0004 Y:0004 P:envMxdizc $84/C1FD 9D EF 1D STA $1DEF,x[$84:1DF3] A:0000 X:0004 Y:0004 P:envMxdizc $84/C200 A8 TAY A:0000 X:0004 Y:0004 P:envMxdizc $84/C201 18 CLC A:0000 X:0004 Y:0000 P:envMxdiZc $84/C202 B9 A6 83 LDA $83A6,y[$84:83A6] A:0000 X:0004 Y:0000 P:envMxdiZc $84/C205 7D 16 1E ADC $1E16,x[$84:1E1A] A:0000 X:0004 Y:0000 P:envMxdiZc $84/C208 3A DEC A A:0001 X:0004 Y:0000 P:envMxdizc $84/C209 AA TAX A:0000 X:0004 Y:0000 P:envMxdiZc $84/C20A 7B TDC ; Clear 16-bit A $84/C20B BD C9 83 LDA $83C9,x[$84:83C9] A:0000 X:0000 Y:0000 P:envMxdiZc $84/C20E A6 3B LDX $3B [$00:003B] A:0001 X:0000 Y:0000 P:envMxdizc $84/C210 9D C4 06 STA $06C4,x[$84:06C8] A:0001 X:0004 Y:0000 P:envMxdizc $84/C213 3A DEC A A:0001 X:0004 Y:0000 P:envMxdizc $84/C214 AA TAX A:0000 X:0004 Y:0000 P:envMxdiZc $84/C215 A4 39 LDY $39 [$00:0039] A:0000 X:0000 Y:0000 P:envMxdiZc $84/C217 22 29 BD 84 JSL $84BD29[$84:BD29] A:0000 X:0000 Y:0004 P:envMxdizc $84/C21B 80 40 BRA $40 ; [$C25D] Restore Registers and exit
- code is missing here
$84/C25D 7A PLY ; Restore $00-$03 from Stack $84/C25E 84 02 STY $02 $84/C260 7A PLY $84/C261 84 00 STY $00 $84/C263 7A PLY ; Resotre Y and X from Stack $84/C264 FA PLX $84/C265 AB PLB ; Restore Data Bank from Stack $84/C266 6B RTL
X and Y contain the same Figure Number.
I forced this subroutine to be left always with 01, and all the figures faced away from the camera. I forced 00, and whenever a character should've looked to the upper left, they looked to the lower right instead.
$84/C267 5A PHY ; Buffer Figure Number on Stack $84/C268 A0 00 00 LDY #$0000 A:0000 X:0008 Y:0008 P:enVMxdizc $84/C26B BD DE 19 LDA $19DE,x[$84:19E6] A:0000 X:0008 Y:0000 P:enVMxdiZc $84/C26E C8 INY A:0000 X:0008 Y:0000 P:enVMxdiZc $84/C26F 89 04 BIT #$04 A:0000 X:0008 Y:0001 P:enVMxdizc $84/C271 D0 2A BNE $2A [$C29D] A:0000 X:0008 Y:0001 P:enVMxdiZc $84/C273 C8 INY A:0000 X:0008 Y:0001 P:enVMxdiZc $84/C274 89 08 BIT #$08 A:0000 X:0008 Y:0002 P:enVMxdizc $84/C276 D0 25 BNE $25 [$C29D] A:0000 X:0008 Y:0002 P:enVMxdiZc $84/C278 C8 INY A:0000 X:0008 Y:0002 P:enVMxdiZc $84/C279 89 80 BIT #$80 A:0000 X:0008 Y:0003 P:enVMxdizc $84/C27B D0 20 BNE $20 [$C29D] A:0000 X:0008 Y:0003 P:enVMxdiZc $84/C27D C8 INY A:0000 X:0008 Y:0003 P:enVMxdiZc $84/C27E BD DF 19 LDA $19DF,x[$84:19E7] A:0000 X:0008 Y:0004 P:enVMxdizc $84/C281 89 01 BIT #$01 A:0020 X:0008 Y:0004 P:enVMxdizc $84/C283 D0 18 BNE $18 [$C29D] A:0020 X:0008 Y:0004 P:enVMxdiZc $84/C285 C8 INY A:0020 X:0008 Y:0004 P:enVMxdiZc $84/C286 BD DE 19 LDA $19DE,x[$84:19E6] A:0020 X:0008 Y:0005 P:enVMxdizc $84/C289 89 02 BIT #$02 A:0000 X:0008 Y:0005 P:enVMxdiZc $84/C28B D0 10 BNE $10 [$C29D] A:0000 X:0008 Y:0005 P:enVMxdiZc $84/C28D 89 01 BIT #$01 A:0000 X:0008 Y:0005 P:enVMxdiZc $84/C28F F0 09 BEQ $09 [$C29A] A:0000 X:0008 Y:0005 P:enVMxdiZc
- Code is missing here
$84/C29A A0 00 00 LDY #$0000 A:0000 X:0008 Y:0005 P:enVMxdiZc $84/C29D 7B TDC ; Clear 16-bit A $84/C29E BD 6E 1B LDA $1B6E,x[$84:1B76] A:0000 X:0008 Y:0000 P:enVMxdiZc $84/C2A1 4A LSR A A:0001 X:0008 Y:0000 P:enVMxdizc $84/C2A2 4A LSR A A:0000 X:0008 Y:0000 P:enVMxdiZC $84/C2A3 98 TYA A:0000 X:0008 Y:0000 P:enVMxdiZc $84/C2A4 2A ROL A A:0000 X:0008 Y:0000 P:enVMxdiZc $84/C2A5 A8 TAY A:0000 X:0008 Y:0000 P:enVMxdiZc $84/C2A6 7B TDC ; Clear 16-bit A $84/C2A7 B9 9A 83 LDA $839A,y[$84:839A] A:0000 X:0008 Y:0000 P:enVMxdiZc $84/C2AA 7A PLY ; Restore Original Y $84/C2AB 60 RTS
$84/C2AC ?
$84/C2AC 8B PHB ; Buffer Data Bank on Stack $84/C2AD 4B PHK ; Set Data Bank to $84 $84/C2AE AB PLB $84/C2AF DA PHX ; Buffer X and Y on Stack $84/C2B0 5A PHY $84/C2B1 D4 00 PEI ($00) ; Buffer $00/$01 on Stack $84/C2B3 22 9B CA 84 JSL $84CA9B[$84:CA9B] A:0105 X:0004 Y:0001 P:eNvMxdizc $84/C2B7 BD C7 1D LDA $1DC7,x[$84:1DCB] A:0020 X:0004 Y:0001 P:eNvMxdizc $84/C2BA 29 03 AND #$03 A:0001 X:0004 Y:0001 P:envMxdizc $84/C2BC C9 02 CMP #$02 A:0001 X:0004 Y:0001 P:envMxdizc $84/C2BE D0 09 BNE $09 [$C2C9] A:0001 X:0004 Y:0001 P:eNvMxdizc $84/C2C9 22 38 A1 88 JSL $88A138 ; Load Figure's Character Class/Graphic Set number $84/C2CD EB XBA ; Clear High Byte $84/C2CE A9 00 LDA #$00 $84/C2D0 EB XBA $84/C2D1 DA PHX A:0034 X:0004 Y:0001 P:envMxdizc $84/C2D2 22 87 A3 84 JSL $84A387[$84:A387] A:0034 X:0004 Y:0001 P:envMxdizc $84/C2D6 FA PLX A:1040 X:4DD9 Y:AB92 P:eNvMxdizc $84/C2D7 BD C7 1D LDA $1DC7,x[$84:1DCB] A:1040 X:0004 Y:AB92 P:envMxdizc $84/C2DA 4A LSR A A:1001 X:0004 Y:AB92 P:envMxdizc $84/C2DB 4A LSR A A:1000 X:0004 Y:AB92 P:envMxdiZC $84/C2DC C9 01 CMP #$01 A:1000 X:0004 Y:AB92 P:envMxdiZc $84/C2DE D0 06 BNE $06 [$C2E6] A:1000 X:0004 Y:AB92 P:eNvMxdizc
- code is missing here
$84/C2E6 C9 02 CMP #$02 A:1000 X:0004 Y:AB92 P:eNvMxdizc $84/C2E8 D0 04 BNE $04 [$C2EE] A:1000 X:0004 Y:AB92 P:eNvMxdizc
- code is missing here
$84/C2EE BD C7 1D LDA $1DC7,x[$84:1DCB] A:1000 X:0004 Y:AB92 P:eNvMxdizc $84/C2F1 29 03 AND #$03 A:1001 X:0004 Y:AB92 P:envMxdizc $84/C2F3 C9 02 CMP #$02 A:1001 X:0004 Y:AB92 P:envMxdizc $84/C2F5 D0 16 BNE $16 [$C30D] A:1001 X:0004 Y:AB92 P:eNvMxdizc
- code is missing here
$84/C30D 7A PLY ; Restore $00/$01 from Stack $84/C30E 84 00 STY $00 $84/C310 7A PLY ; Restore Y and X from Stack $84/C311 FA PLX $84/C312 AB PLB ; Restore Data Bank from Stack $84/C313 6B RTL
$84/CA93 ?
$84/CA93 8B PHB ; Buffer Data Bank on Stack $84/CA94 4B PHK ; Set Data Bank to $84 $84/CA95 AB PLB $84/CA96 1C E6 1E TRB $1EE6 [$84:1EE6] A:0001 X:0006 Y:000E P:eNvMxdizc $84/CA99 AB PLB ; Restore Data Bank from Stack $84/CA9A 6B RTL
$84/CA9B ?
$84/CA9B 8B PHB ; Buffer Data Bank on Stack $84/CA9C 4B PHK ; Set Data Bank to $84 $84/CA9D AB PLB $84/CA9E DA PHX ; Buffer X and Y on Stack $84/CA9F 5A PHY $84/CAA0 A9 01 LDA #$01 ; Check if LSB in $1EE6 is set $84/CAA2 2C E6 1E BIT $1EE6 $84/CAA5 F0 0D BEQ $0D ; [$CAB4] Branch if not $84/CAA7 A0 00 10 LDY #$1000 A:0001 X:0008 Y:0001 P:envMxdizc $84/CAAA A9 02 LDA #$02 ; Check if Bit 1 in $1EE6 is set $84/CAAC 2C E6 1E BIT $1EE6 $84/CAAF F0 20 BEQ $20 ; [$CAD1] Branch if not
- code is missing here
$84/CAB4 0C E6 1E TSB $1EE6 ; Set LSB in $1EE6 $84/CAB7 A9 00 LDA #$00 ; ??? Reset (?)-Pointer in $1EE7 $84/CAB9 8D E7 1E STA $1EE7 $84/CABC A0 00 00 LDY #$0000 A:0100 X:0004 Y:0001 P:envMxdiZc $84/CABF 84 43 STY $43 [$00:0043] A:0100 X:0004 Y:0000 P:envMxdiZc $84/CAC1 A0 00 10 LDY #$1000 A:0100 X:0004 Y:0000 P:envMxdiZc $84/CAC4 84 3F STY $3F [$00:003F] A:0100 X:0004 Y:1000 P:envMxdizc $84/CAC6 84 41 STY $41 [$00:0041] A:0100 X:0004 Y:1000 P:envMxdizc $84/CAC8 22 F9 CA 84 JSL $84CAF9[$84:CAF9] A:0100 X:0004 Y:1000 P:envMxdizc $84/CACC 8D EC 1E STA $1EEC [$84:1EEC] A:0020 X:0004 Y:1000 P:envMxdizc $84/CACF 80 16 BRA $16 [$CAE7] A:0020 X:0004 Y:1000 P:envMxdizc $84/CAD1 0C E6 1E TSB $1EE6 [$84:1EE6] A:0002 X:0008 Y:1000 P:envMxdiZc $84/CAD4 A9 02 LDA #$02 A:0002 X:0008 Y:1000 P:envMxdiZc $84/CAD6 8D E7 1E STA $1EE7 [$84:1EE7] A:0002 X:0008 Y:1000 P:envMxdizc $84/CAD9 A0 00 10 LDY #$1000 A:0002 X:0008 Y:1000 P:envMxdizc $84/CADC 84 43 STY $43 [$00:0043] A:0002 X:0008 Y:1000 P:envMxdizc $84/CADE A4 3F LDY $3F [$00:003F] A:0002 X:0008 Y:1000 P:envMxdizc $84/CAE0 22 F9 CA 84 JSL $84CAF9[$84:CAF9] A:0002 X:0008 Y:1040 P:envMxdizc $84/CAE4 8D EC 1E STA $1EEC [$84:1EEC] A:0021 X:0008 Y:1040 P:envMxdizc $84/CAE7 48 PHA ; Buffer A on stack $84/CAE8 7B TDC ; Clear 16-bit A $84/CAE9 AD E7 1E LDA $1EE7 ; Set $1EE7 as Store Index for $1EE8,y $84/CAEC A8 TAY $84/CAED 68 PLA ; Load 8-bit value for storing from stack $84/CAEE 99 E8 1E STA $1EE8,y ; Store in $1EE8/9,y $84/CAF1 99 E9 1E STA $1EE9,y $84/CAF4 18 CLC ; ??? "Job's done successfully"-Flag? $84/CAF5 7A PLY ; Restore Y and X from Stack $84/CAF6 FA PLX $84/CAF7 AB PLB ; Restore Data Bank from Stack $84/CAF8 6B RTL
$84/CAF9 ?
This subroutine takes the 16-bit value in Y, pushes some bits around and puts them into 8-bit A. The transformation is as follows:
Y : XXXa.bcdX.efXX.XXXX A : XXab.cdef
The Original Value for Y gets restored in Y before the subroutine is left. This value gets stored in $7E1EEC after this subroutine is left.
$84/CAF9 5A PHY ; Buffer Y on Stack $84/CAFA D4 00 PEI ($00) ; Buffer $00/$01 on Stack $84/CAFC C2 20 REP #$20 ; A = 16-bit $84/CAFE 98 TYA ; Transfer Y in A $84/CAFF 29 00 1E AND #$1E00 ; Remove bits #%000x.xxx0.0000.0000 $84/CB02 4A LSR A ; #%0000.xxxx.0000.0000 $84/CB03 85 00 STA $00 ; Buffer in $00/1 $84/CB05 98 TYA ; Transfer Y in A again $84/CB06 29 C0 00 AND #$00C0 ; Remove bits #%0000.0000.yy00.0000 $84/CB09 05 00 ORA $00 ; Add bits together #%0000.xxxx.yy00.0000 $84/CB0B 0A ASL A ; Push bits left twice so all are in High Byte $84/CB0C 0A ASL A $84/CB0D EB XBA ; XBA so it's in Low Byte $84/CB0E E2 20 SEP #$20 ; A = 8-bit $84/CB10 7A PLY ; Restore $00/$01 from Stack $84/CB11 84 00 STY $00 $84/CB13 7A PLY ; Restore Orignal Y value from Stack $84/CB14 6B RTL
$84/CC9E ?
$84/CC9E 8B PHB ; Buffer Data Bank on Stack $84/CC9F 4B PHK ; Set Data Bank to $84 $84/CCA0 AB PLB $84/CCA1 D4 10 PEI ($10) ; Buffer $10-$13 on Stack $84/CCA3 D4 12 PEI ($12) $84/CCA5 86 91 STX $91 [$00:0091] A:0003 X:0002 Y:377B P:eNvMxdizc $84/CCA7 86 39 STX $39 [$00:0039] A:0003 X:0002 Y:377B P:eNvMxdizc $84/CCA9 A8 TAY A:0003 X:0002 Y:377B P:eNvMxdizc $84/CCAA 5A PHY A:0003 X:0002 Y:0003 P:envMxdizc $84/CCAB 22 9B CA 84 JSL $84CA9B[$84:CA9B] A:0003 X:0002 Y:0003 P:envMxdizc $84/CCAF C2 20 REP #$20 A:0020 X:0002 Y:0003 P:eNvMxdizc $84/CCB1 68 PLA A:0020 X:0002 Y:0003 P:eNvmxdizc $84/CCB2 0A ASL A A:0003 X:0002 Y:0003 P:envmxdizc $84/CCB3 A8 TAY A:0006 X:0002 Y:0003 P:envmxdizc $84/CCB4 B9 F2 CD LDA $CDF2,y[$84:CDF8] A:0006 X:0002 Y:0006 P:envmxdizc $84/CCB7 A8 TAY A:D202 X:0002 Y:0006 P:eNvmxdizc $84/CCB8 E2 20 SEP #$20 A:D202 X:0002 Y:D202 P:eNvmxdizc $84/CCBA B9 00 00 LDA $0000,y[$84:D202] A:D202 X:0002 Y:D202 P:eNvMxdizc $84/CCBD 85 00 STA $00 [$00:0000] A:D20C X:0002 Y:D202 P:envMxdizc $84/CCBF 64 01 STZ $01 [$00:0001] A:D20C X:0002 Y:D202 P:envMxdizc $84/CCC1 C8 INY A:D20C X:0002 Y:D202 P:envMxdizc $84/CCC2 7B TDC A:D20C X:0002 Y:D203 P:eNvMxdizc $84/CCC3 A5 01 LDA $01 [$00:0001] A:0000 X:0002 Y:D203 P:envMxdiZc $84/CCC5 AA TAX A:0000 X:0002 Y:D203 P:envMxdiZc $84/CCC6 BF BE CD 84 LDA $84CDBE,x[$84:CDBE] A:0000 X:0000 Y:D203 P:envMxdiZc $84/CCCA 24 00 BIT $00 [$00:0000] A:0008 X:0000 Y:D203 P:envMxdizc $84/CCCC F0 1C BEQ $1C [$CCEA] A:0008 X:0000 Y:D203 P:envMxdizc $84/CCCE 5A PHY A:0008 X:0000 Y:D203 P:envMxdizc $84/CCCF D4 00 PEI ($00) [$000C] A:0008 X:0000 Y:D203 P:envMxdizc $84/CCD1 C2 20 REP #$20 A:0008 X:0000 Y:D203 P:envMxdizc $84/CCD3 B9 00 00 LDA $0000,y[$84:D203] A:0008 X:0000 Y:D203 P:envmxdizc $84/CCD6 E2 20 SEP #$20 A:0022 X:0000 Y:D203 P:envmxdizc $84/CCD8 10 06 BPL $06 [$CCE0] A:0022 X:0000 Y:D203 P:envMxdizc $84/CCE0 22 31 A3 84 JSL $84A331[$84:A331] A:0022 X:0000 Y:D203 P:envMxdizc $84/CCE4 7A PLY A:1040 X:4111 Y:AC77 P:eNvMxdizc $84/CCE5 84 00 STY $00 [$00:0000] A:1040 X:4111 Y:000C P:envMxdizc $84/CCE7 7A PLY A:1040 X:4111 Y:000C P:envMxdizc $84/CCE8 C8 INY A:1040 X:4111 Y:D203 P:eNvMxdizc $84/CCE9 C8 INY A:1040 X:4111 Y:D204 P:eNvMxdizc $84/CCEA E6 01 INC $01 [$00:0001] A:1040 X:4111 Y:D205 P:eNvMxdizc $84/CCEC A5 01 LDA $01 [$00:0001] A:1040 X:4111 Y:D205 P:envMxdizc $84/CCEE C9 02 CMP #$02 A:1001 X:4111 Y:D205 P:envMxdizc $84/CCF0 90 D0 BCC $D0 [$CCC2] A:1001 X:4111 Y:D205 P:eNvMxdizc $84/CCF2 7B TDC A:1202 X:4491 Y:D207 P:envMxdiZC $84/CCF3 A5 01 LDA $01 [$00:0001] A:0000 X:4491 Y:D207 P:envMxdiZC $84/CCF5 AA TAX A:0002 X:4491 Y:D207 P:envMxdizC $84/CCF6 BF BE CD 84 LDA $84CDBE,x[$84:CDC0] A:0002 X:0002 Y:D207 P:envMxdizC $84/CCFA 24 00 BIT $00 [$00:0000] A:0002 X:0002 Y:D207 P:envMxdizC $84/CCFC F0 2F BEQ $2F [$CD2D] A:0002 X:0002 Y:D207 P:envMxdiZC
- code is missing here
$84/CD2D B9 00 00 LDA $0000,y[$84:D207] A:0002 X:0002 Y:D207 P:envMxdiZC $84/CD30 85 13 STA $13 [$00:0013] A:0030 X:0002 Y:D207 P:envMxdizC $84/CD32 B9 01 00 LDA $0001,y[$84:D208] A:0030 X:0002 Y:D207 P:envMxdizC $84/CD35 85 0C STA $0C [$00:000C] A:00FF X:0002 Y:D207 P:eNvMxdizC $84/CD37 B9 02 00 LDA $0002,y[$84:D209] A:00FF X:0002 Y:D207 P:eNvMxdizC $84/CD3A 85 0D STA $0D [$00:000D] A:00FF X:0002 Y:D207 P:eNvMxdizC $84/CD3C B9 03 00 LDA $0003,y[$84:D20A] A:00FF X:0002 Y:D207 P:eNvMxdizC $84/CD3F 85 0A STA $0A [$00:000A] A:0070 X:0002 Y:D207 P:envMxdizC $84/CD41 B9 04 00 LDA $0004,y[$84:D20B] A:0070 X:0002 Y:D207 P:envMxdizC $84/CD44 29 7F AND #$7F A:0003 X:0002 Y:D207 P:envMxdizC $84/CD46 85 01 STA $01 [$00:0001] A:0003 X:0002 Y:D207 P:envMxdizC $84/CD48 A5 0C LDA $0C [$00:000C] A:0003 X:0002 Y:D207 P:envMxdizC $84/CD4A C9 FF CMP #$FF A:00FF X:0002 Y:D207 P:eNvMxdizC $84/CD4C F0 0B BEQ $0B [$CD59] A:00FF X:0002 Y:D207 P:envMxdiZC $84/CD59 7B TDC A:00FF X:0002 Y:D207 P:envMxdiZC $84/CD5A A5 0A LDA $0A [$00:000A] A:0000 X:0002 Y:D207 P:envMxdiZC $84/CD5C C2 20 REP #$20 A:0070 X:0002 Y:D207 P:envMxdizC $84/CD5E 0A ASL A A:0070 X:0002 Y:D207 P:envmxdizC $84/CD5F AA TAX A:00E0 X:0002 Y:D207 P:envmxdizc $84/CD60 BF 2C 84 8A LDA $8A842C,x[$8A:850C] A:00E0 X:00E0 Y:D207 P:envmxdizc $84/CD64 85 20 STA $20 [$00:0020] A:899C X:00E0 Y:D207 P:eNvmxdizc $84/CD66 E2 20 SEP #$20 A:899C X:00E0 Y:D207 P:eNvmxdizc $84/CD68 A9 8A LDA #$8A A:899C X:00E0 Y:D207 P:eNvMxdizc $84/CD6A 85 22 STA $22 [$00:0022] A:898A X:00E0 Y:D207 P:eNvMxdizc $84/CD6C 5A PHY A:898A X:00E0 Y:D207 P:eNvMxdizc $84/CD6D A9 02 LDA #$02 A:898A X:00E0 Y:D207 P:eNvMxdizc $84/CD6F 85 12 STA $12 [$00:0012] A:8902 X:00E0 Y:D207 P:envMxdizc $84/CD71 7B TDC A:8902 X:00E0 Y:D207 P:envMxdizc $84/CD72 A5 01 LDA $01 [$00:0001] A:0000 X:00E0 Y:D207 P:envMxdiZc $84/CD74 0A ASL A A:0003 X:00E0 Y:D207 P:envMxdizc $84/CD75 0A ASL A A:0006 X:00E0 Y:D207 P:envMxdizc $84/CD76 A8 TAY A:000C X:00E0 Y:D207 P:envMxdizc $84/CD77 B7 20 LDA [$20],y[$8A:89A8] A:000C X:00E0 Y:000C P:envMxdizc $84/CD79 85 0B STA $0B [$00:000B] A:0006 X:00E0 Y:000C P:envMxdizc $84/CD7B C8 INY A:0006 X:00E0 Y:000C P:envMxdizc $84/CD7C A5 0C LDA $0C [$00:000C] A:0006 X:00E0 Y:000D P:envMxdizc $84/CD7E C9 FF CMP #$FF A:00FF X:00E0 Y:000D P:eNvMxdizc $84/CD80 F0 09 BEQ $09 [$CD8B] A:00FF X:00E0 Y:000D P:envMxdiZC $84/CD8B 7A PLY A:00FF X:00E0 Y:000D P:envMxdiZC $84/CD8C A6 39 LDX $39 [$00:0039] A:00FF X:00E0 Y:D207 P:eNvMxdizC $84/CD8E B9 04 00 LDA $0004,y[$84:D20B] A:00FF X:0002 Y:D207 P:envMxdizC $84/CD91 10 12 BPL $12 [$CDA5] A:0003 X:0002 Y:D207 P:envMxdizC
- code is missing here
$84/CDA5 AD E7 1E LDA $1EE7 [$84:1EE7] A:0003 X:0002 Y:D207 P:envMxdizC $84/CDA8 22 80 D5 80 JSL $80D580[$80:D580] A:0000 X:0002 Y:D207 P:envMxdiZC $84/CDAC 7B TDC A:FFFF X:0002 Y:0002 P:eNvMxdizC $84/CDAD B9 C4 08 LDA $08C4,y[$84:08C6] A:0000 X:0002 Y:0002 P:envMxdiZC $84/CDB0 AA TAX A:0006 X:0002 Y:0002 P:envMxdizC $84/CDB1 A9 30 LDA #$30 A:0006 X:0006 Y:0002 P:envMxdizC $84/CDB3 9D C3 08 STA $08C3,x[$84:08C9] A:0030 X:0006 Y:0002 P:envMxdizC $84/CDB6 FA PLX ; Restore $10-$13 from Stack $84/CDB7 86 12 STX $12 $84/CDB9 FA PLX $84/CDBA 86 10 STX $10 $84/CDBC AB PLB ; Restore Data Bank from Stack $84/CDBD 6B RTL
$84/CDC2 ?
$84/CDC2 C2 20 REP #$20 A:9290 X:0001 Y:D4DB P:eNvMxdizc $84/CDC4 29 FF 7F AND #$7FFF A:9290 X:0001 Y:D4DB P:eNvmxdizc $84/CDC7 48 PHA A:1290 X:0001 Y:D4DB P:envmxdizc $84/CDC8 0A ASL A A:1290 X:0001 Y:D4DB P:envmxdizc $84/CDC9 63 01 ADC $01,s [$00:1FC5] A:2520 X:0001 Y:D4DB P:envmxdizc $84/CDCB 85 20 STA $20 [$00:0020] A:37B0 X:0001 Y:D4DB P:envmxdizc $84/CDCD 68 PLA A:37B0 X:0001 Y:D4DB P:envmxdizc $84/CDCE A5 3F LDA $3F [$00:003F] A:1290 X:0001 Y:D4DB P:envmxdizc $84/CDD0 38 SEC A:1040 X:0001 Y:D4DB P:envmxdizc $84/CDD1 E9 00 0A SBC #$0A00 A:1040 X:0001 Y:D4DB P:envmxdizC $84/CDD4 A8 TAY A:0640 X:0001 Y:D4DB P:envmxdizC $84/CDD5 E2 20 SEP #$20 A:0640 X:0001 Y:0640 P:envmxdizC $84/CDD7 22 F9 CA 84 JSL $84CAF9[$84:CAF9] A:0640 X:0001 Y:0640 P:envMxdizC $84/CDDB 48 PHA A:000D X:0001 Y:0640 P:envMxdizc $84/CDDC 7B TDC A:000D X:0001 Y:0640 P:envMxdizc $84/CDDD AD E7 1E LDA $1EE7 [$84:1EE7] A:0000 X:0001 Y:0640 P:envMxdiZc $84/CDE0 A8 TAY A:0000 X:0001 Y:0640 P:envMxdiZc $84/CDE1 68 PLA A:0000 X:0001 Y:0000 P:envMxdiZc $84/CDE2 99 E9 1E STA $1EE9,y[$84:1EE9] A:000D X:0001 Y:0000 P:envMxdizc $84/CDE5 A9 02 LDA #$02 A:000D X:0001 Y:0000 P:envMxdizc $84/CDE7 85 00 STA $00 [$00:0000] A:0002 X:0001 Y:0000 P:envMxdizc $84/CDE9 A9 04 LDA #$04 A:0002 X:0001 Y:0000 P:envMxdizc $84/CDEB 85 01 STA $01 [$00:0001] A:0004 X:0001 Y:0000 P:envMxdizc $84/CDED 22 0B A0 84 JSL $84A00B[$84:A00B] A:0004 X:0001 Y:0000 P:envMxdizc $84/CDF1 6B RTL A:0000 X:4ED9 Y:5140 P:eNvMxdizC
$84/E72E Do the Tile Animation
$84/E72E 48 PHA A:0080 X:00DB Y:0000 P:eNvMxdizc $84/E72F 7B TDC ; Clear 17-bit A $84/E730 AD F5 05 LDA $05F5 ; Load Animation Step Counter for the Tile Animation $84/E733 29 07 AND #$07 ; (Animations loop after eight steps) $84/E735 85 06 STA $06 ; Store it in $06 $84/E737 64 07 STZ $07 ; Clear $07 for 16-bit operations $84/E739 7B TDC ; Clear 17-bit A $84/E73A AD BE 16 LDA $16BE [$84:16BE] A:0000 X:00DB Y:0000 P:envMxdiZc $84/E73D 0A ASL A A:0000 X:00DB Y:0000 P:envMxdiZc $84/E73E AA TAX A:0000 X:00DB Y:0000 P:envMxdiZc $84/E73F A3 01 LDA $01,s [$00:1FCA] A:0000 X:0000 Y:0000 P:envMxdiZc $84/E741 4A LSR A A:0080 X:0000 Y:0000 P:eNvMxdizc $84/E742 B0 39 BCS $39 [$E77D] A:0040 X:0000 Y:0000 P:envMxdizc $84/E744 AD BE 16 LDA $16BE [$84:16BE] A:0040 X:0000 Y:0000 P:envMxdizc $84/E747 C9 12 CMP #$12 A:0000 X:0000 Y:0000 P:envMxdiZc $84/E749 D0 0B BNE $0B [$E756] A:0000 X:0000 Y:0000 P:eNvMxdizc
- code is missing here
$84/E756 AD A2 1E LDA $1EA2 [$84:1EA2] A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E759 C9 02 CMP #$02 A:0000 X:0000 Y:0000 P:envMxdiZc $84/E75B F0 11 BEQ $11 [$E76E] A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E75D C9 03 CMP #$03 A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E75F F0 12 BEQ $12 [$E773] A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E761 C9 04 CMP #$04 A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E763 F0 13 BEQ $13 [$E778] A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E765 C9 08 CMP #$08 A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E767 F0 0A BEQ $0A [$E773] A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E769 BC 53 EC LDY $EC53,x[$84:EC53] A:0000 X:0000 Y:0000 P:eNvMxdizc $84/E76C 80 34 BRA $34 [$E7A2] A:0000 X:0000 Y:EDD3 P:eNvMxdizc
- code is missing here
$84/E77D AD A2 1E LDA $1EA2 [$84:1EA2] A:0040 X:0000 Y:0004 P:envMxdizC $84/E780 C9 02 CMP #$02 A:0000 X:0000 Y:0004 P:envMxdiZC $84/E782 F0 11 BEQ $11 [$E795] A:0000 X:0000 Y:0004 P:eNvMxdizc $84/E784 C9 03 CMP #$03 A:0000 X:0000 Y:0004 P:eNvMxdizc $84/E786 F0 12 BEQ $12 [$E79A] A:0000 X:0000 Y:0004 P:eNvMxdizc $84/E788 C9 04 CMP #$04 A:0000 X:0000 Y:0004 P:eNvMxdizc $84/E78A F0 13 BEQ $13 [$E79F] A:0000 X:0000 Y:0004 P:eNvMxdizc $84/E78C C9 08 CMP #$08 A:0000 X:0000 Y:0004 P:eNvMxdizc $84/E78E F0 0A BEQ $0A [$E79A] A:0000 X:0000 Y:0004 P:eNvMxdizc $84/E790 BC 13 ED LDY $ED13,x[$84:ED13] A:0000 X:0000 Y:0004 P:eNvMxdizc $84/E793 80 0D BRA $0D [$E7A2] A:0000 X:0000 Y:EDE4 P:eNvMxdizc
- code is missing here
$84/E7A2 BB TYX A:0000 X:0000 Y:EDD3 P:eNvMxdizc $84/E7A3 A0 80 00 LDY #$0080 ; Number of Bytes for the Upcoming Animation VRAM DMA $84/E7A6 84 0C STY $0C $84/E7A8 7B TDC ; Clear 16-bit A $84/E7A9 BD 00 00 LDA $0000,x ; Load first byte - VRAM Destination $84/E7AC C9 FF CMP #$FF ; Check if that value is #$FF $84/E7AE F0 35 BEQ $35 ; [$E7E5] If it is, exit $84/E7B0 DA PHX ; Push the Load Index on Stack $84/E7B1 C2 20 REP #$20 ; 16-bit A $84/E7B3 EB XBA ; Multiply A by #$40 $84/E7B4 4A LSR A $84/E7B5 4A LSR A $84/E7B6 A8 TAY ; Transfer in Y - VRAM Destination $84/E7B7 BD 01 00 LDA $0001,x ; Load next byte(s) $84/E7BA 29 FF 00 AND #$00FF ; Remove the third byte that was loaded, too $84/E7BD 0A ASL A ; The byte is a Load Index for a Table whose entry itself contains values... $84/E7BE 0A ASL A ; ... for each of the 8 animation steps. So first, you multiply it by 8... $84/E7BF 0A ASL A $84/E7C0 65 06 ADC $06 ; ... add the current animation step... $84/E7C2 0A ASL A ; ... multiply it by 2 because each entry in the entry is 2 bytes in size $84/E7C3 AA TAX ; Transfer it in X as Load Index $84/E7C4 BF F3 E7 84 LDA $84E7F3,x ; Load that Entry's Entry $84/E7C8 85 04 STA $04 ; Store it in $04/05 $84/E7CA EB XBA ; Remove the second byte and multiply the first by #$80 $84/E7CB 29 00 FF AND #$FF00 $84/E7CE 4A LSR A $84/E7CF 69 00 80 ADC #$8000 A:0400 X:000E Y:07C0 P:envmxdizc $84/E7D2 09 00 80 ORA #$8000 A:8400 X:000E Y:07C0 P:eNvmxdizc $84/E7D5 AA TAX A:8400 X:000E Y:07C0 P:eNvmxdizc $84/E7D6 E2 20 SEP #$20 A:8400 X:8400 Y:07C0 P:eNvmxdizc $84/E7D8 A5 05 LDA $05 [$00:0005] A:8400 X:8400 Y:07C0 P:eNvMxdizc $84/E7DA 69 A0 ADC #$A0 A:8400 X:8400 Y:07C0 P:envMxdiZc $84/E7DC 22 B7 9F 80 JSL $809FB7 ; Animation VRAM DMA $84/E7E0 FA PLX ; Pull the Load Index on Stack $84/E7E1 E8 INX ; Increment it twice (each entry has 2 byte) $84/E7E2 E8 INX $84/E7E3 80 C3 BRA $C3 ; [$E7A8] Loop $84/E7E5 68 PLA A:00FF X:EDE3 Y:0EC0 P:envMxdiZC $84/E7E6 4A LSR A ; If the lowest bit is 0... $84/E7E7 90 09 BCC $09 ; [$E7F2] .. then don't inc Animation Step Counter and exit directly $84/E7E9 AD F5 05 LDA $05F5 ; Load Animation Step Counter for the Tile Animation $84/E7EC 1A INC A ; Increment it $84/E7ED 29 0F AND #$0F ; Make the value loop after $0F to $00 $84/E7EF 8D F5 05 STA $05F5 ; Store Animation Step Counter back $84/E7F2 60 RTS
Bank $85
$85/8000 Use Jump Table
$85/8000 8B PHB ; Buffer Data Bank on Stack $85/8001 A9 85 LDA #$85 ; Set Data Bank to $85 $85/8003 48 PHA $85/8004 AB PLB $85/8005 AD A2 1E LDA $1EA2 [$85:1EA2] A:0085 X:0004 Y:001C P:eNvMxdizc $85/8008 EB XBA A:0000 X:0004 Y:001C P:envMxdiZc $85/8009 A9 00 LDA #$00 A:0000 X:0004 Y:001C P:envMxdiZc $85/800B EB XBA A:0000 X:0004 Y:001C P:envMxdiZc $85/800C 0A ASL A A:0000 X:0004 Y:001C P:envMxdiZc $85/800D AA TAX A:0000 X:0004 Y:001C P:envMxdiZc $85/800E 7C 11 80 JMP ($8011,x)[$85:832F] A:0000 X:0000 Y:001C P:envMxdiZc
2F 83 - Entry #$00 - Exit 2F 83 - Entry #$01 - Exit 21 80 - Entry #$02 4D 80 - Entry #$03 7F 80 - Entry #$04 71 81 - Entry #$05 FD 81 - Entry #$06 9E 82 - Entry #$07
$85/832F Direct Exit?
$85/832F AB PLB ; Restore Data Bank $85/8330 6B RTL
$85/84E9 ?
$85/84E9 8B PHB A:3600 X:0080 Y:007E P:envMxdiZC $85/84EA 4B PHK A:3600 X:0080 Y:007E P:envMxdiZC $85/84EB AB PLB A:3600 X:0080 Y:007E P:envMxdiZC $85/84EC 20 F1 84 JSR $84F1 [$85:84F1] A:3600 X:0080 Y:007E P:eNvMxdizC $85/84EF AB PLB A:C8F8 X:0008 Y:0020 P:envMxdiZc $85/84F0 6B RTL A:C8F8 X:0008 Y:0020 P:eNvMxdizc
$85/84F1 ?
$85/84F1 E2 30 SEP #$30 A:3600 X:0080 Y:007E P:eNvMxdizC $85/84F3 0A ASL A A:3600 X:0080 Y:007E P:eNvMXdizC $85/84F4 0A ASL A A:3600 X:0080 Y:007E P:envMXdiZc $85/84F5 0A ASL A A:3600 X:0080 Y:007E P:envMXdiZc $85/84F6 AA TAX A:3600 X:0080 Y:007E P:envMXdiZc $85/84F7 A9 08 LDA #$08 A:3600 X:0000 Y:007E P:envMXdiZc $85/84F9 85 02 STA $02 [$00:0002] A:3608 X:0000 Y:007E P:envMXdizc $85/84FB 7B TDC A:3608 X:0000 Y:007E P:envMXdizc $85/84FC A8 TAY A:0000 X:0000 Y:007E P:envMXdiZc $85/84FD DA PHX A:0000 X:0000 Y:0000 P:envMXdiZc $85/84FE BF 57 AB 85 LDA $85AB57,x[$85:AB57] A:0000 X:0000 Y:0000 P:envMXdiZc $85/8502 85 00 STA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envMXdiZc $85/8504 29 07 AND #$07 A:0000 X:0000 Y:0000 P:envMXdiZc $85/8506 D0 08 BNE $08 [$8510] A:0000 X:0000 Y:0000 P:envMXdiZc $85/8508 A9 0C LDA #$0C A:0000 X:0000 Y:0000 P:envMXdiZc $85/850A 99 02 01 STA $0102,y[$85:0102] A:000C X:0000 Y:0000 P:envMXdizc $85/850D 7B TDC A:000C X:0000 Y:0000 P:envMXdizc $85/850E 80 08 BRA $08 [$8518] A:0000 X:0000 Y:0000 P:envMXdiZc
- code is missing here
$85/8518 99 03 01 STA $0103,y[$85:0103] A:0000 X:0000 Y:0000 P:envMXdiZc $85/851B A5 00 LDA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envMXdiZc $85/851D 4A LSR A A:0000 X:0000 Y:0000 P:envMXdiZc $85/851E 4A LSR A A:0000 X:0000 Y:0000 P:envMXdiZc $85/851F 4A LSR A A:0000 X:0000 Y:0000 P:envMXdiZc $85/8520 29 07 AND #$07 A:0000 X:0000 Y:0000 P:envMXdiZc $85/8522 D0 08 BNE $08 [$852C] A:0000 X:0000 Y:0000 P:envMXdiZc $85/8524 A9 0C LDA #$0C A:0000 X:0000 Y:0000 P:envMXdiZc $85/8526 99 22 03 STA $0322,y[$85:0322] A:000C X:0000 Y:0000 P:envMXdizc $85/8529 7B TDC A:000C X:0000 Y:0000 P:envMXdizc $85/852A 80 08 BRA $08 [$8534] A:0000 X:0000 Y:0000 P:envMXdiZc
- code is missing here
$85/8534 99 23 03 STA $0323,y[$85:0323] A:0000 X:0000 Y:0000 P:envMXdiZc $85/8537 C2 20 REP #$20 A:0000 X:0000 Y:0000 P:envMXdiZc $85/8539 98 TYA A:0000 X:0000 Y:0000 P:envmXdiZc $85/853A AA TAX A:0000 X:0000 Y:0000 P:envmXdiZc $85/853B A5 00 LDA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmXdiZc $85/853D 89 C0 00 BIT #$00C0 A:0200 X:0000 Y:0000 P:envmXdizc $85/8540 D0 09 BNE $09 [$854B] A:0200 X:0000 Y:0000 P:envmXdiZc $85/8542 BF 17 AB 85 LDA $85AB17,x[$85:AB17] A:0200 X:0000 Y:0000 P:envmXdiZc $85/8546 99 00 01 STA $0100,y[$85:0100] A:38CC X:0000 Y:0000 P:envmXdizc $85/8549 80 0B BRA $0B [$8556] A:38CC X:0000 Y:0000 P:envmXdizc
- code is missing here
$85/8556 99 20 03 STA $0320,y[$85:0320] A:38CC X:0000 Y:0000 P:envmXdizc $85/8559 E2 20 SEP #$20 A:38CC X:0000 Y:0000 P:envmXdizc $85/855B FA PLX A:38CC X:0000 Y:0000 P:envMXdizc $85/855C C8 INY A:38CC X:0000 Y:0000 P:envMXdiZc $85/855D C8 INY A:38CC X:0000 Y:0001 P:envMXdizc $85/855E C8 INY A:38CC X:0000 Y:0002 P:envMXdizc $85/855F C8 INY A:38CC X:0000 Y:0003 P:envMXdizc $85/8560 E8 INX A:38CC X:0000 Y:0004 P:envMXdizc $85/8561 C6 02 DEC $02 [$00:0002] A:38CC X:0001 Y:0004 P:envMXdizc $85/8563 D0 98 BNE $98 [$84FD] A:38CC X:0001 Y:0004 P:envMXdizc $85/8565 C2 10 REP #$10 A:C8F8 X:0008 Y:0020 P:envMXdiZc $85/8567 60 RTS A:C8F8 X:0008 Y:0020 P:envMxdiZc
$85/FD4F ?
$85/FD4F EA NOP A:0022 X:9258 Y:0000 P:envMxdizC $85/FD50 AF 00 20 70 LDA $702000[$70:2000] A:0022 X:9258 Y:0000 P:envMxdizC $85/FD54 85 00 STA $00 [$00:0000] A:0023 X:9258 Y:0000 P:envMxdizC $85/FD56 49 FF EOR #$FF A:0023 X:9258 Y:0000 P:envMxdizC $85/FD58 8F 00 20 70 STA $702000[$70:2000] A:00DC X:9258 Y:0000 P:eNvMxdizC $85/FD5C AF 00 20 70 LDA $702000[$70:2000] A:00DC X:9258 Y:0000 P:eNvMxdizC $85/FD60 C5 00 CMP $00 [$00:0000] A:00DC X:9258 Y:0000 P:eNvMxdizC $85/FD62 18 CLC A:00DC X:9258 Y:0000 P:eNvMxdizC $85/FD63 08 PHP A:00DC X:9258 Y:0000 P:eNvMxdizc $85/FD64 A5 00 LDA $00 [$00:0000] A:00DC X:9258 Y:0000 P:eNvMxdizc $85/FD66 8F 00 20 70 STA $702000[$70:2000] A:0023 X:9258 Y:0000 P:envMxdizc $85/FD6A 68 PLA A:0023 X:9258 Y:0000 P:envMxdizc $85/FD6B 6B RTL A:00A0 X:9258 Y:0000 P:eNvMxdizc
Bank $86
$86/8000 ?
$86/8000 8B PHB ; Buffer Data Bank on Stack $86/8001 4B PHK ; Set Data Bank to $86 $86/8002 AB PLB $86/8003 C2 20 REP #$20 ; A = 16-bit $86/8005 A2 3E 00 LDX #$003E A:1200 X:0000 Y:0200 P:eNvmxdizc $86/8008 9E 03 06 STZ $0603,x[$86:0641] A:1200 X:003E Y:0200 P:envmxdizc $86/800B CA DEX A:1200 X:003E Y:0200 P:envmxdizc $86/800C CA DEX A:1200 X:003D Y:0200 P:envmxdizc $86/800D 10 F9 BPL $F9 [$8008] A:1200 X:003C Y:0200 P:envmxdizc $86/800F A9 FF FF LDA #$FFFF A:1200 X:FFFE Y:0200 P:eNvmxdizc $86/8012 8D 83 0E STA $0E83 [$86:0E83] A:FFFF X:FFFE Y:0200 P:eNvmxdizc $86/8015 E2 20 SEP #$20 ; A = 8-bit $86/8017 AB PLB ; Restore Data Bank from Stack $86/8018 6B RTL
$86/8019 ?
This is executed in the title screen demo, when the soldier jumps over the gap and beats the archeress(?)
$86/8019 8B PHB ; Preserve Data Bank on Stack $86/801A 4B PHK ; Set Data Bank to $86 $86/801B AB PLB $86/801C A2 20 05 LDX #$0520 ; [assumed] start of the OAM high table buffer $86/801F A0 20 03 LDY #$0320 ; [assumed] start of the OAM low table buffer $86/8022 CC 45 05 CPY $0545 ; Is this actually the position? $86/8025 D0 06 BNE $06 ; [$802D] If it isn't, skip this next part $86/8027 A2 00 03 LDX #$0300 ; ??? Change position of OAM high table buffer? $86/802A A0 00 01 LDY #$0100 ; ??? Change position of OAM high table buffer? $86/802D 86 26 STX $26 ; Store in Temp Register $86/802F 84 29 STY $29 ; Store in Temp Register $86/8031 C2 20 REP #$20 $86/8033 AD 43 05 LDA $0543 ; ??? Load number currently used sprites? $86/8036 0A ASL A $86/8037 0A ASL A ; Multiply by 4 (each sprite needs 4 bytes in Low Table) $86/8038 65 29 ADC $29 ; Add Low Table Offset $86/803A 85 29 STA $29 ; Store in $29 the address of the first unused Low Table entry $86/803C AD 43 05 LDA $0543 ; ??? Load number currently used sprites? $86/803F 4A LSR A $86/8040 4A LSR A ; Divide by 4 (each sprite needs 2 bits in High Table) $86/8041 65 26 ADC $26 ; Add High Table Offset $86/8043 85 26 STA $26 ; Store in $26 the address of the first unused High Table entry $86/8045 E2 20 SEP #$20 $86/8047 A9 80 LDA #$80 ; Max. number of sprites $86/8049 38 SEC $86/804A ED 43 05 SBC $0543 ; Subtract number of used sprites(?) $86/804D 85 2B STA $2B ; Store in $2B (Number of free sprites) $86/804F A9 80 LDA #$80 ; ??? $86/8051 85 28 STA $28 ; ??? $86/8053 A0 00 00 LDY #$0000 ; ??? $86/8056 BE 83 0E LDX $0E83,y ; ??? $86/8059 30 4A BMI $4A ; [$80A5] $86/805B 5A PHY ; ??? $86/805C 7B TDC ; ??? $86/805D BD C3 09 LDA $09C3,x ; ??? $86/8060 10 05 BPL $05 ; [$8067] $86/8062 20 81 81 JSR $8181 ; ??? $86/8065 80 37 BRA $37 ; [$809E]
Code is missing here
$86/809E 7A PLY ; ??? $86/809F C8 INY ; ??? $86/80A0 C8 INY ; ??? $86/80A1 A5 2B LDA $2B ; ??? $86/80A3 D0 B1 BNE $B1 ; [$8056] $86/80A5 20 96 84 JSR $8496 ; Check if more Sprites are needed and clear OAM entries for it $86/80A8 A0 20 03 LDY #$0320 ; Change OAM Buffer address from $100 to $320 or vice versa $86/80AB CC 45 05 CPY $0545 $86/80AE D0 03 BNE $03 ; [$80B3] Take branch if it isn't $320 $86/80B0 A0 00 01 LDY #$0100 $86/80B3 8C 45 05 STY $0545 $86/80B6 A9 01 LDA #$01 ; Set OAM Update flag $86/80B8 8D 40 05 STA $0540 $86/80BB AB PLB ; Restore Data Bank $86/80BC 6B RTL
$86/8181 ?
$86/8181 BD 03 06 LDA $0603,x[$86:0603] A:00FF X:0000 Y:0000 P:eNVMxdizC $86/8184 F0 0B BEQ $0B [$8191] A:0001 X:0000 Y:0000 P:enVMxdizC $86/8186 BD 04 06 LDA $0604,x[$86:0604] A:0001 X:0000 Y:0000 P:enVMxdizC $86/8189 F0 06 BEQ $06 [$8191] A:0001 X:0000 Y:0000 P:enVMxdizC $86/818B BD 04 07 LDA $0704,x[$86:0704] A:0001 X:0000 Y:0000 P:enVMxdizC $86/818E 4A LSR A A:0000 X:0000 Y:0000 P:enVMxdiZC $86/818F 90 03 BCC $03 [$8194] A:0000 X:0000 Y:0000 P:enVMxdiZc $86/8191 4C 60 83 JMP $8360 [$86:8360] A:0000 X:0004 Y:0008 P:envMxdiZC $86/8194 A9 8B LDA #$8B ; Set Data Bank to $8B $86/8196 48 PHA $86/8197 AB PLB $86/8198 86 3B STX $3B [$00:003B] A:008B X:0000 Y:0000 P:eNVMxdizc $86/819A BD 03 07 LDA $0703,x[$8B:0703] A:008B X:0000 Y:0000 P:eNVMxdizc $86/819D 85 06 STA $06 [$00:0006] A:0006 X:0000 Y:0000 P:enVMxdizc $86/819F BD 43 08 LDA $0843,x[$8B:0843] A:0006 X:0000 Y:0000 P:enVMxdizc $86/81A2 85 05 STA $05 [$00:0005] A:0001 X:0000 Y:0000 P:enVMxdizc $86/81A4 7B TDC A:0001 X:0000 Y:0000 P:enVMxdizc $86/81A5 BD 03 06 LDA $0603,x[$8B:0603] A:0000 X:0000 Y:0000 P:enVMxdiZc $86/81A8 C2 20 REP #$20 A:0001 X:0000 Y:0000 P:enVMxdizc $86/81AA 3A DEC A A:0001 X:0000 Y:0000 P:enVmxdizc $86/81AB 0A ASL A A:0000 X:0000 Y:0000 P:enVmxdiZc $86/81AC 69 2F A6 ADC #$A62F A:0000 X:0000 Y:0000 P:enVmxdiZc $86/81AF A8 TAY A:A62F X:0000 Y:0000 P:eNvmxdizc $86/81B0 BD 04 06 LDA $0604,x[$8B:0604] A:A62F X:0000 Y:A62F P:eNvmxdizc $86/81B3 3A DEC A A:0001 X:0000 Y:A62F P:envmxdizc $86/81B4 29 FF 00 AND #$00FF A:0000 X:0000 Y:A62F P:envmxdiZc $86/81B7 0A ASL A A:0000 X:0000 Y:A62F P:envmxdiZc $86/81B8 79 00 00 ADC $0000,y[$8B:A62F] A:0000 X:0000 Y:A62F P:envmxdiZc $86/81BB A8 TAY A:A7E9 X:0000 Y:A62F P:eNvmxdizc $86/81BC B9 00 00 LDA $0000,y[$8B:A7E9] A:A7E9 X:0000 Y:A7E9 P:eNvmxdizc $86/81BF 85 23 STA $23 [$00:0023] A:B5DF X:0000 Y:A7E9 P:eNvmxdizc $86/81C1 BD 83 09 LDA $0983,x[$8B:0983] A:B5DF X:0000 Y:A7E9 P:eNvmxdizc $86/81C4 85 00 STA $00 [$00:0000] A:0000 X:0000 Y:A7E9 P:envmxdiZc $86/81C6 A5 29 LDA $29 [$00:0029] A:0000 X:0000 Y:A7E9 P:envmxdiZc $86/81C8 9D 83 09 STA $0983,x[$8B:0983] A:03A0 X:0000 Y:A7E9 P:envmxdizc $86/81CB E2 20 SEP #$20 A:03A0 X:0000 Y:A7E9 P:envmxdizc $86/81CD B2 23 LDA ($23) [$8B:B5DF] A:03A0 X:0000 Y:A7E9 P:envMxdizc $86/81CF D0 03 BNE $03 [$81D4] A:0391 X:0000 Y:A7E9 P:eNvMxdizc
- code is missing here
$86/81D4 7B TDC A:0391 X:0000 Y:A7E9 P:eNvMxdizc $86/81D5 18 CLC A:0000 X:0000 Y:A7E9 P:envMxdiZc $86/81D6 BD C3 06 LDA $06C3,x[$8B:06C3] A:0000 X:0000 Y:A7E9 P:envMxdiZc $86/81D9 29 3C AND #$3C A:0008 X:0000 Y:A7E9 P:envMxdizc $86/81DB 7D C3 06 ADC $06C3,x[$8B:06C3] A:0008 X:0000 Y:A7E9 P:envMxdizc $86/81DE C2 20 REP #$20 A:0010 X:0000 Y:A7E9 P:envMxdizc $86/81E0 0A ASL A A:0010 X:0000 Y:A7E9 P:envmxdizc $86/81E1 0A ASL A A:0020 X:0000 Y:A7E9 P:envmxdizc $86/81E2 85 08 STA $08 [$00:0008] A:0040 X:0000 Y:A7E9 P:envmxdizc $86/81E4 E2 20 SEP #$20 A:0040 X:0000 Y:A7E9 P:envmxdizc $86/81E6 A6 29 LDX $29 [$00:0029] A:0040 X:0000 Y:A7E9 P:envMxdizc $86/81E8 DA PHX A:0040 X:03A0 Y:A7E9 P:envMxdizc $86/81E9 A6 3B LDX $3B [$00:003B] A:0040 X:03A0 Y:A7E9 P:envMxdizc $86/81EB A0 10 00 LDY #$0010 A:0040 X:0000 Y:A7E9 P:envMxdiZc $86/81EE B2 23 LDA ($23) [$8B:B5DF] A:0040 X:0000 Y:0010 P:envMxdizc $86/81F0 30 03 BMI $03 [$81F5] A:0091 X:0000 Y:0010 P:eNvMxdizc $86/81F2 A0 08 00 LDY #$0008 A:0011 X:003E Y:0010 P:envMxdizc $86/81F5 84 0E STY $0E [$00:000E] A:0091 X:0000 Y:0010 P:eNvMxdizc $86/81F7 4A LSR A A:0091 X:0000 Y:0010 P:eNvMxdizc $86/81F8 4A LSR A A:0048 X:0000 Y:0010 P:envMxdizC $86/81F9 4A LSR A A:0024 X:0000 Y:0010 P:envMxdizc $86/81FA 29 07 AND #$07 A:0012 X:0000 Y:0010 P:envMxdizc $86/81FC 85 02 STA $02 [$00:0002] A:0002 X:0000 Y:0010 P:envMxdizc $86/81FE B2 23 LDA ($23) [$8B:B5DF] A:0002 X:0000 Y:0010 P:envMxdizc $86/8200 29 07 AND #$07 A:0091 X:0000 Y:0010 P:eNvMxdizc $86/8202 85 03 STA $03 [$00:0003] A:0001 X:0000 Y:0010 P:envMxdizc $86/8204 A0 01 00 LDY #$0001 A:0001 X:0000 Y:0010 P:envMxdizc $86/8207 A5 06 LDA $06 [$00:0006] A:0001 X:0000 Y:0001 P:envMxdizc $86/8209 0A ASL A A:0006 X:0000 Y:0001 P:envMxdizc $86/820A 0A ASL A A:000C X:0000 Y:0001 P:envMxdizc $86/820B 7B TDC A:0018 X:0000 Y:0001 P:envMxdizc $86/820C B1 23 LDA ($23),y[$8B:B5E0] A:0000 X:0000 Y:0001 P:envMxdiZc $86/820E 90 06 BCC $06 [$8216] A:00F8 X:0000 Y:0001 P:eNvMxdizc $86/8210 18 CLC A:00F8 X:0002 Y:0001 P:eNvMxdizC $86/8211 65 0E ADC $0E [$00:000E] A:00F8 X:0002 Y:0001 P:eNvMxdizc $86/8213 49 FF EOR #$FF A:0008 X:0002 Y:0001 P:envMxdizC $86/8215 1A INC A A:00F7 X:0002 Y:0001 P:eNvMxdizC $86/8216 C2 20 REP #$20 A:00F8 X:0000 Y:0001 P:eNvMxdizc $86/8218 C9 80 00 CMP #$0080 A:00F8 X:0000 Y:0001 P:eNvmxdizc $86/821B 90 03 BCC $03 [$8220] A:00F8 X:0000 Y:0001 P:envmxdizC $86/821D E9 00 01 SBC #$0100 A:00F8 X:0000 Y:0001 P:envmxdizC $86/8220 18 CLC A:FFF8 X:0000 Y:0001 P:eNvmxdizc $86/8221 7D 43 07 ADC $0743,x ; Add GLOBAL X-Position of the Figure on screen $86/8224 85 0A STA $0A [$00:000A] A:0088 X:0000 Y:0001 P:envmxdizC $86/8226 E2 20 SEP #$20 A:0088 X:0000 Y:0001 P:envmxdizC $86/8228 C8 INY A:0088 X:0000 Y:0001 P:envMxdizC $86/8229 A5 06 LDA $06 [$00:0006] A:0088 X:0000 Y:0002 P:envMxdizC $86/822B 0A ASL A A:0006 X:0000 Y:0002 P:envMxdizC $86/822C 7B TDC A:000C X:0000 Y:0002 P:envMxdizc $86/822D B1 23 LDA ($23),y[$8B:B5E1] A:0000 X:0000 Y:0002 P:envMxdiZc $86/822F 90 06 BCC $06 [$8237] A:00F6 X:0000 Y:0002 P:eNvMxdizc
- code is missing here
$86/8237 C2 20 REP #$20 A:00F6 X:0000 Y:0002 P:eNvMxdizc $86/8239 C9 80 00 CMP #$0080 A:00F6 X:0000 Y:0002 P:eNvmxdizc $86/823C 90 03 BCC $03 [$8241] A:00F6 X:0000 Y:0002 P:envmxdizC $86/823E E9 00 01 SBC #$0100 A:00F6 X:0000 Y:0002 P:envmxdizC $86/8241 18 CLC A:FFF6 X:0000 Y:0002 P:eNvmxdizc $86/8242 7D 83 07 ADC $0783,x ; Add GLOBAL Y-Position of the Figure on screen $86/8245 3A DEC A A:003D X:0000 Y:0002 P:envmxdizC $86/8246 85 20 STA $20 [$00:0020] A:003C X:0000 Y:0002 P:envmxdizC $86/8248 E2 20 SEP #$20 A:003C X:0000 Y:0002 P:envmxdizC $86/824A C8 INY A:003C X:0000 Y:0002 P:envMxdizC $86/824B FA PLX A:003C X:0000 Y:0003 P:envMxdizC $86/824C A5 02 LDA $02 [$00:0002] A:003C X:03A0 Y:0003 P:envMxdizC $86/824E 85 04 STA $04 [$00:0004] A:0002 X:03A0 Y:0003 P:envMxdizC $86/8250 C2 20 REP #$20 A:0002 X:03A0 Y:0003 P:envMxdizC $86/8252 A5 20 LDA $20 [$00:0020] A:0002 X:03A0 Y:0003 P:envmxdizC $86/8254 85 0C STA $0C [$00:000C] A:003C X:03A0 Y:0003 P:envmxdizC $86/8256 B1 23 LDA ($23),y[$8B:B5E2] A:003C X:03A0 Y:0003 P:envmxdizC $86/8258 C9 FF FF CMP #$FFFF A:0000 X:03A0 Y:0003 P:envmxdiZC $86/825B D0 07 BNE $07 [$8264] A:0000 X:03A0 Y:0003 P:envmxdizc
- code is missing here
$86/8264 A5 0C LDA $0C [$00:000C] A:0000 X:03A0 Y:0003 P:envmxdizc $86/8266 38 SEC $86/8267 ED 97 05 SBC $0597 ; Subtract BG2 Y-Scroll $86/826A C9 E0 00 CMP #$00E0 A:0064 X:03A0 Y:0003 P:envmxdizc $86/826D 90 05 BCC $05 [$8274] A:0064 X:03A0 Y:0003 P:eNvmxdizc
- code is missing here
$86/8274 E2 20 SEP #$20 A:0064 X:03A0 Y:0003 P:eNvmxdizc $86/8276 95 01 STA $01,x [$00:03A1] A:0064 X:03A0 Y:0003 P:eNvMxdizc $86/8278 C2 20 REP #$20 A:0064 X:03A0 Y:0003 P:eNvMxdizc $86/827A A5 0A LDA $0A [$00:000A] A:0064 X:03A0 Y:0003 P:eNvmxdizc $86/827C 38 SEC $86/827D ED 95 05 SBC $0595 ; Subtract BG2 X-Scroll $86/8280 C9 00 01 CMP #$0100 A:0078 X:03A0 Y:0003 P:envmxdizC $86/8283 90 05 BCC $05 [$828A] A:0078 X:03A0 Y:0003 P:eNvmxdizc $86/8285 C9 F1 FF CMP #$FFF1 A:FF98 X:0190 Y:0003 P:eNvmxdizC $86/8288 90 0A BCC $0A [$8294] A:FF98 X:0190 Y:0003 P:eNvmxdizc $86/828A E2 20 SEP #$20 A:0078 X:03A0 Y:0003 P:eNvmxdizc $86/828C 95 00 STA $00,x [$00:03A0] A:0078 X:03A0 Y:0003 P:eNvMxdizc $86/828E EB XBA A:0078 X:03A0 Y:0003 P:eNvMxdizc $86/828F 4A LSR A A:7800 X:03A0 Y:0003 P:envMxdiZc $86/8290 66 28 ROR $28 [$00:0028] A:7800 X:03A0 Y:0003 P:envMxdiZc $86/8292 80 09 BRA $09 [$829D] A:7800 X:03A0 Y:0003 P:envMxdizc $86/8294 A9 00 E8 LDA #$E800 A:FF98 X:0190 Y:0003 P:eNvmxdizc $86/8297 95 00 STA $00,x [$00:0190] A:E800 X:0190 Y:0003 P:eNvmxdizc $86/8299 E2 20 SEP #$20 A:E800 X:0190 Y:0003 P:eNvmxdizc $86/829B 46 28 LSR $28 [$00:0028] A:E800 X:0190 Y:0003 P:eNvMxdizc $86/829D A5 05 LDA $05 [$00:0005] A:7800 X:03A0 Y:0003 P:envMxdizc $86/829F D0 16 BNE $16 [$82B7] A:7801 X:03A0 Y:0003 P:envMxdizc $86/82A1 C2 20 REP #$20 A:0800 X:0180 Y:0003 P:envMxdiZc $86/82A3 8A TXA A:0800 X:0180 Y:0003 P:envmxdiZc $86/82A4 38 SEC A:0180 X:0180 Y:0003 P:envmxdizc $86/82A5 E5 29 SBC $29 [$00:0029] A:0180 X:0180 Y:0003 P:envmxdizC $86/82A7 18 CLC A:0000 X:0180 Y:0003 P:envmxdiZC $86/82A8 65 00 ADC $00 [$00:0000] A:0000 X:0180 Y:0003 P:envmxdiZc $86/82AA DA PHX A:03A0 X:0180 Y:0003 P:envmxdizc $86/82AB AA TAX A:03A0 X:0180 Y:0003 P:envmxdizc $86/82AC B5 02 LDA $02,x [$00:03A2] A:03A0 X:03A0 Y:0003 P:envmxdizc $86/82AE FA PLX A:7644 X:03A0 Y:0003 P:envmxdizc $86/82AF 95 02 STA $02,x [$00:0182] A:7644 X:0180 Y:0003 P:envmxdizc $86/82B1 E2 20 SEP #$20 A:7644 X:0180 Y:0003 P:envmxdizc $86/82B3 C8 INY A:7644 X:0180 Y:0003 P:envMxdizc $86/82B4 C8 INY A:7644 X:0180 Y:0004 P:envMxdizc $86/82B5 80 3D BRA $3D [$82F4] A:7644 X:0180 Y:0005 P:envMxdizc $86/82B7 B1 23 LDA ($23),y[$8B:B5E2] A:7801 X:03A0 Y:0003 P:envMxdizc $86/82B9 18 CLC A:7800 X:03A0 Y:0003 P:envMxdiZc $86/82BA 65 08 ADC $08 [$00:0008] A:7800 X:03A0 Y:0003 P:envMxdiZc $86/82BC 95 02 STA $02,x [$00:03A2] A:7840 X:03A0 Y:0003 P:envMxdizc $86/82BE 08 PHP A:7840 X:03A0 Y:0003 P:envMxdizc $86/82BF 51 23 EOR ($23),y[$8B:B5E2] A:7840 X:03A0 Y:0003 P:envMxdizc $86/82C1 29 10 AND #$10 A:7840 X:03A0 Y:0003 P:envMxdizc $86/82C3 18 CLC A:7800 X:03A0 Y:0003 P:envMxdiZc $86/82C4 75 02 ADC $02,x [$00:03A2] A:7800 X:03A0 Y:0003 P:envMxdiZc $86/82C6 95 02 STA $02,x [$00:03A2] A:7840 X:03A0 Y:0003 P:envMxdizc $86/82C8 C8 INY A:7840 X:03A0 Y:0003 P:envMxdizc $86/82C9 B1 23 LDA ($23),y[$8B:B5E3] A:7840 X:03A0 Y:0004 P:envMxdizc $86/82CB C8 INY A:7800 X:03A0 Y:0004 P:envMxdiZc $86/82CC 85 25 STA $25 [$00:0025] A:7800 X:03A0 Y:0005 P:envMxdizc $86/82CE A5 06 LDA $06 [$00:0006] A:7800 X:03A0 Y:0005 P:envMxdizc $86/82D0 29 0E AND #$0E A:7806 X:03A0 Y:0005 P:envMxdizc $86/82D2 F0 08 BEQ $08 [$82DC] A:7806 X:03A0 Y:0005 P:envMxdizc $86/82D4 EB XBA A:7806 X:03A0 Y:0005 P:envMxdizc $86/82D5 A9 0E LDA #$0E A:0678 X:03A0 Y:0005 P:envMxdizc $86/82D7 14 25 TRB $25 [$00:0025] A:060E X:03A0 Y:0005 P:envMxdizc $86/82D9 EB XBA A:060E X:03A0 Y:0005 P:envMxdiZc $86/82DA 04 25 TSB $25 [$00:0025] A:0E06 X:03A0 Y:0005 P:envMxdizc $86/82DC A5 06 LDA $06 [$00:0006] A:0E06 X:03A0 Y:0005 P:envMxdiZc $86/82DE 29 C0 AND #$C0 A:0E06 X:03A0 Y:0005 P:envMxdizc $86/82E0 45 25 EOR $25 [$00:0025] A:0E00 X:03A0 Y:0005 P:envMxdiZc $86/82E2 28 PLP A:0E06 X:03A0 Y:0005 P:envMxdizc $86/82E3 65 09 ADC $09 [$00:0009] A:0E06 X:03A0 Y:0005 P:envMxdizc $86/82E5 85 25 STA $25 [$00:0025] A:0E06 X:03A0 Y:0005 P:envMxdizc $86/82E7 A5 06 LDA $06 [$00:0006] A:0E06 X:03A0 Y:0005 P:envMxdizc $86/82E9 29 30 AND #$30 A:0E06 X:03A0 Y:0005 P:envMxdizc $86/82EB D0 03 BNE $03 [$82F0] A:0E00 X:03A0 Y:0005 P:envMxdiZc $86/82ED 20 61 83 JSR $8361 [$86:8361] A:0E00 X:03A0 Y:0005 P:envMxdiZc $86/82F0 05 25 ORA $25 [$00:0025] A:0430 X:01A8 Y:0005 P:envMxdizc $86/82F2 95 03 STA $03,x [$00:01AB] A:0436 X:01A8 Y:0005 P:envMxdizc $86/82F4 B2 23 LDA ($23) [$8B:B5DF] A:7644 X:0180 Y:0005 P:envMxdizc $86/82F6 0A ASL A A:7691 X:0180 Y:0005 P:eNvMxdizc $86/82F7 66 28 ROR $28 [$00:0028] A:7622 X:0180 Y:0005 P:envMxdizC $86/82F9 90 0E BCC $0E [$8309] A:7622 X:0180 Y:0005 P:eNvMxdizc $86/82FB A5 28 LDA $28 [$00:0028] A:7422 X:018C Y:0007 P:eNvMxdizC $86/82FD 92 26 STA ($26) [$8B:0308] A:74AA X:018C Y:0007 P:eNvMxdizC $86/82FF A9 80 LDA #$80 A:74AA X:018C Y:0007 P:eNvMxdizC $86/8301 85 28 STA $28 [$00:0028] A:7480 X:018C Y:0007 P:eNvMxdizC $86/8303 E6 26 INC $26 [$00:0026] A:7480 X:018C Y:0007 P:eNvMxdizC $86/8305 D0 02 BNE $02 [$8309] A:7480 X:018C Y:0007 P:envMxdizC
- code is missing here
$86/8309 E8 INX A:7622 X:0180 Y:0005 P:eNvMxdizc $86/830A E8 INX A:7622 X:0181 Y:0005 P:envMxdizc $86/830B E8 INX A:7622 X:0182 Y:0005 P:envMxdizc $86/830C E8 INX A:7622 X:0183 Y:0005 P:envMxdizc $86/830D C6 2B DEC $2B [$00:002B] A:7622 X:0184 Y:0005 P:envMxdizc $86/830F F0 49 BEQ $49 [$835A] A:7622 X:0184 Y:0005 P:envMxdizc $86/8311 C6 04 DEC $04 [$00:0004] A:7622 X:0184 Y:0005 P:envMxdizc $86/8313 F0 16 BEQ $16 [$832B] A:7622 X:0184 Y:0005 P:envMxdizc $86/8315 A5 06 LDA $06 [$00:0006] A:7622 X:0184 Y:0005 P:envMxdizc $86/8317 0A ASL A A:7646 X:0184 Y:0005 P:envMxdizc $86/8318 C2 20 REP #$20 A:768C X:0184 Y:0005 P:eNvMxdizc $86/831A A5 0C LDA $0C [$00:000C] A:768C X:0184 Y:0005 P:eNvmxdizc $86/831C B0 05 BCS $05 [$8323] A:00C4 X:0184 Y:0005 P:envmxdizc $86/831E 38 SEC A:00C4 X:0184 Y:0005 P:envmxdizc $86/831F E5 0E SBC $0E [$00:000E] A:00C4 X:0184 Y:0005 P:envmxdizC $86/8321 80 03 BRA $03 [$8326] A:00B4 X:0184 Y:0005 P:envmxdizC
- code is missing here
$86/8326 85 0C STA $0C [$00:000C] A:00B4 X:0184 Y:0005 P:envmxdizC $86/8328 4C 56 82 JMP $8256 [$86:8256] A:00B4 X:0184 Y:0005 P:envmxdizC $86/832B C6 03 DEC $03 [$00:0003] A:7622 X:0188 Y:0007 P:envMxdiZc $86/832D F0 19 BEQ $19 [$8348] A:7622 X:0188 Y:0007 P:envMxdiZc $86/832F A5 06 LDA $06 [$00:0006] A:0614 X:019C Y:0005 P:envMxdizc $86/8331 0A ASL A A:0606 X:019C Y:0005 P:envMxdizc $86/8332 0A ASL A A:060C X:019C Y:0005 P:envMxdizc $86/8333 C2 20 REP #$20 A:0618 X:019C Y:0005 P:envMxdizc $86/8335 A5 0A LDA $0A [$00:000A] A:0618 X:019C Y:0005 P:envmxdizc $86/8337 B0 05 BCS $05 [$833E] A:0159 X:019C Y:0005 P:envmxdizc $86/8339 18 CLC A:0159 X:019C Y:0005 P:envmxdizc $86/833A 65 0E ADC $0E [$00:000E] A:0159 X:019C Y:0005 P:envmxdizc $86/833C 80 03 BRA $03 [$8341] A:0161 X:019C Y:0005 P:envmxdizc
- code is missing here
$86/8341 85 0A STA $0A [$00:000A] A:0161 X:019C Y:0005 P:envmxdizc $86/8343 E2 20 SEP #$20 A:0161 X:019C Y:0005 P:envmxdizc $86/8345 4C 4C 82 JMP $824C [$86:824C] A:0161 X:019C Y:0005 P:envMxdizc $86/8348 B2 23 LDA ($23) [$8B:B5DF] A:7622 X:0188 Y:0007 P:envMxdiZc $86/834A 89 40 BIT #$40 A:7691 X:0188 Y:0007 P:eNvMxdizc $86/834C F0 0C BEQ $0C [$835A] A:7691 X:0188 Y:0007 P:eNvMxdiZc $86/834E C2 21 REP #$21 A:0549 X:01C4 Y:0005 P:envMxdizc $86/8350 98 TYA A:0549 X:01C4 Y:0005 P:envmxdizc $86/8351 65 23 ADC $23 [$00:0023] A:0005 X:01C4 Y:0005 P:envmxdizc $86/8353 85 23 STA $23 [$00:0023] A:D9A3 X:01C4 Y:0005 P:eNvmxdizc $86/8355 E2 20 SEP #$20 A:D9A3 X:01C4 Y:0005 P:eNvmxdizc $86/8357 4C E8 81 JMP $81E8 [$86:81E8] A:D9A3 X:01C4 Y:0005 P:eNvMxdizc $86/835A 86 29 STX $29 [$00:0029] A:7691 X:0188 Y:0007 P:eNvMxdiZc $86/835C A6 3B LDX $3B [$00:003B] A:7691 X:0188 Y:0007 P:eNvMxdiZc $86/835E 4B PHK ; Set Data Bank to $86 $86/835F AB PLB $86/8360 60 RTS
$86/8361 ?
$86/8361 DA PHX ; Buffer X and Y on stack $86/8362 5A PHY $86/8363 A4 3B LDY $3B [$00:003B] A:0E00 X:01A8 Y:0005 P:envMxdiZc $86/8365 C2 20 REP #$20 A:0E00 X:01A8 Y:003E P:envMxdizc $86/8367 A5 0C LDA $0C [$00:000C] A:0E00 X:01A8 Y:003E P:envmxdizc $86/8369 4A LSR A ; Div by 8 and multiply by #$100 - round down bits 0 to 2 and multiply by #$20 $86/836A 4A LSR A $86/836B 4A LSR A $86/836C EB XBA $86/836D 09 40 00 ORA #$0040 A:1200 X:01A8 Y:003E P:envmxdiZC $86/8370 8D 02 42 STA $4202 [$8B:4202] A:1240 X:01A8 Y:003E P:envmxdizC $86/8373 A5 0A LDA $0A [$00:000A] A:1240 X:01A8 Y:003E P:envmxdizC $86/8375 4A LSR A ; Div by #$10 $86/8376 4A LSR A $86/8377 4A LSR A $86/8378 4A LSR A $86/8379 18 CLC A:001C X:01A8 Y:003E P:envmxdizC $86/837A 6D 16 42 ADC $4216 [$8B:4216] A:001C X:01A8 Y:003E P:envmxdizc $86/837D AA TAX A:049C X:01A8 Y:003E P:envmxdizc $86/837E E2 20 SEP #$20 A:049C X:049C Y:003E P:envmxdizc $86/8380 A9 30 LDA #$30 A:049C X:049C Y:003E P:envMxdizc $86/8382 85 22 STA $22 [$00:0022] A:0430 X:049C Y:003E P:envMxdizc $86/8384 A9 08 LDA #$08 A:0430 X:049C Y:003E P:envMxdizc $86/8386 C5 0E CMP $0E [$00:000E] A:0408 X:049C Y:003E P:envMxdizc $86/8388 F0 50 BEQ $50 [$83DA] A:0408 X:049C Y:003E P:envMxdiZC $86/838A 20 10 84 JSR $8410 [$86:8410] A:0608 X:06D7 Y:0002 P:eNvMxdizc $86/838D B0 46 BCS $46 [$83D5] A:0600 X:06D7 Y:0002 P:envMxdizc $86/838F A5 0A LDA $0A [$00:000A] A:0600 X:06D7 Y:0002 P:envMxdizc $86/8391 29 0F AND #$0F A:0678 X:06D7 Y:0002 P:envMxdizc $86/8393 F0 07 BEQ $07 [$839C] A:0608 X:06D7 Y:0002 P:envMxdizc $86/8395 E8 INX A:0608 X:06D7 Y:0002 P:envMxdizc $86/8396 20 10 84 JSR $8410 [$86:8410] A:0608 X:06D8 Y:0002 P:envMxdizc $86/8399 B0 3A BCS $3A [$83D5] A:0600 X:06D8 Y:0002 P:envMxdizc $86/839B CA DEX A:0600 X:06D8 Y:0002 P:envMxdizc $86/839C C2 21 REP #$21 A:0600 X:06D7 Y:0002 P:envMxdizc $86/839E 8A TXA A:0600 X:06D7 Y:0002 P:envmxdizc $86/839F 69 40 00 ADC #$0040 A:06D7 X:06D7 Y:0002 P:envmxdizc $86/83A2 AA TAX A:0717 X:06D7 Y:0002 P:envmxdizc $86/83A3 E2 20 SEP #$20 A:0717 X:0717 Y:0002 P:envmxdizc $86/83A5 20 10 84 JSR $8410 [$86:8410] A:0717 X:0717 Y:0002 P:envMxdizc $86/83A8 B0 2B BCS $2B [$83D5] A:0700 X:0717 Y:0002 P:envMxdizc $86/83AA A5 0A LDA $0A [$00:000A] A:0700 X:0717 Y:0002 P:envMxdizc $86/83AC 29 0F AND #$0F A:0778 X:0717 Y:0002 P:envMxdizc $86/83AE F0 07 BEQ $07 [$83B7] A:0708 X:0717 Y:0002 P:envMxdizc $86/83B0 E8 INX A:0708 X:0717 Y:0002 P:envMxdizc $86/83B1 20 10 84 JSR $8410 [$86:8410] A:0708 X:0718 Y:0002 P:envMxdizc $86/83B4 B0 1F BCS $1F [$83D5] A:0700 X:0718 Y:0002 P:envMxdizc $86/83B6 CA DEX A:0700 X:0718 Y:0002 P:envMxdizc $86/83B7 A5 0C LDA $0C [$00:000C] A:0700 X:0717 Y:0002 P:envMxdizc $86/83B9 29 0F AND #$0F A:07DC X:0717 Y:0002 P:eNvMxdizc $86/83BB F0 18 BEQ $18 [$83D5] A:070C X:0717 Y:0002 P:envMxdizc $86/83BD C2 21 REP #$21 A:070C X:0717 Y:0002 P:envMxdizc $86/83BF 8A TXA A:070C X:0717 Y:0002 P:envmxdizc $86/83C0 69 40 00 ADC #$0040 A:0717 X:0717 Y:0002 P:envmxdizc $86/83C3 AA TAX A:0757 X:0717 Y:0002 P:envmxdizc $86/83C4 E2 20 SEP #$20 A:0757 X:0757 Y:0002 P:envmxdizc $86/83C6 20 10 84 JSR $8410 [$86:8410] A:0757 X:0757 Y:0002 P:envMxdizc $86/83C9 B0 0A BCS $0A [$83D5] A:0700 X:0757 Y:0002 P:envMxdizc $86/83CB A5 0A LDA $0A [$00:000A] A:0700 X:0757 Y:0002 P:envMxdizc $86/83CD 29 0F AND #$0F A:0778 X:0757 Y:0002 P:envMxdizc $86/83CF F0 04 BEQ $04 [$83D5] A:0708 X:0757 Y:0002 P:envMxdizc $86/83D1 E8 INX A:0708 X:0757 Y:0002 P:envMxdizc $86/83D2 20 10 84 JSR $8410 [$86:8410] A:0708 X:0758 Y:0002 P:envMxdizc $86/83D5 A5 22 LDA $22 [$00:0022] A:0403 X:04DD Y:003E P:envMxdizc $86/83D7 7A PLY ; Restore Y and X and exit $86/83D8 FA PLX $86/83D9 60 RTS $86/83DA 20 10 84 JSR $8410 [$86:8410] A:0408 X:049C Y:003E P:envMxdiZC $86/83DD B0 F6 BCS $F6 ; [$83D5] Branch to the exit if carry is set $86/83DF A5 0A LDA $0A [$00:000A] A:0400 X:049C Y:003E P:envMxdizc $86/83E1 29 0F AND #$0F A:04CC X:049C Y:003E P:eNvMxdizc $86/83E3 C9 09 CMP #$09 A:040C X:049C Y:003E P:envMxdizc $86/83E5 90 07 BCC $07 [$83EE] A:040C X:049C Y:003E P:envMxdizC $86/83E7 E8 INX A:040C X:049C Y:003E P:envMxdizC $86/83E8 20 10 84 JSR $8410 [$86:8410] A:040C X:049D Y:003E P:envMxdizC $86/83EB B0 E8 BCS $E8 ; [$83D5] Branch to the exit if carry is set $86/83ED CA DEX A:0401 X:049D Y:003E P:envMxdizc $86/83EE A5 0C LDA $0C [$00:000C] A:0401 X:049C Y:003E P:envMxdizc $86/83F0 29 07 AND #$07 A:0497 X:049C Y:003E P:eNvMxdizc $86/83F2 F0 E1 BEQ $E1 [$83D5] A:0407 X:049C Y:003E P:envMxdizc $86/83F4 C2 21 REP #$21 A:0407 X:049C Y:003E P:envMxdizc $86/83F6 8A TXA A:0407 X:049C Y:003E P:envmxdizc $86/83F7 69 40 00 ADC #$0040 A:049C X:049C Y:003E P:envmxdizc $86/83FA AA TAX A:04DC X:049C Y:003E P:envmxdizc $86/83FB E2 20 SEP #$20 A:04DC X:04DC Y:003E P:envmxdizc $86/83FD 20 10 84 JSR $8410 [$86:8410] A:04DC X:04DC Y:003E P:envMxdizc $86/8400 B0 D3 BCS $D3 ; [$83D5] Branch to the exit if carry is set $86/8402 A5 0A LDA $0A [$00:000A] A:0400 X:04DC Y:003E P:envMxdizc $86/8404 29 0F AND #$0F A:04CC X:04DC Y:003E P:eNvMxdizc $86/8406 C9 09 CMP #$09 A:040C X:04DC Y:003E P:envMxdizc $86/8408 90 CB BCC $CB [$83D5] A:040C X:04DC Y:003E P:envMxdizC $86/840A E8 INX A:040C X:04DC Y:003E P:envMxdizC $86/840B 20 10 84 JSR $8410 [$86:8410] A:040C X:04DD Y:003E P:envMxdizC $86/840E 80 C5 BRA $C5 ; [$83D5] Branch to the exit
$86/8410 ?
Y contains the figures number
This subroutine sets or clears the carry depending on it's calculations' results. If the carry is set, the subroutine above gets ended
$86/8410 DA PHX A:0408 X:049C Y:003E P:envMxdiZC $86/8411 BF 00 80 7F LDA $7F8000,x[$7F:849C] A:0408 X:049C Y:003E P:envMxdiZC $86/8415 29 0F AND #$0F A:0450 X:049C Y:003E P:envMxdizC $86/8417 F0 43 BEQ $43 [$845C] A:0400 X:049C Y:003E P:envMxdiZC $86/8419 48 PHA A:0401 X:049D Y:003E P:envMxdizC $86/841A BF 00 B0 7F LDA $7FB000,x[$7F:B49D] A:0401 X:049D Y:003E P:envMxdizC $86/841E F0 3F BEQ $3F [$845F] A:0400 X:049D Y:003E P:envMxdiZC $86/8420 8D 02 42 STA $4202 [$8B:4202] A:0F12 X:0F5F Y:0010 P:envMxdizc $86/8423 A9 20 LDA #$20 A:0F12 X:0F5F Y:0010 P:envMxdizc $86/8425 8D 03 42 STA $4203 [$8B:4203] A:0F20 X:0F5F Y:0010 P:envMxdizc $86/8428 7B TDC A:0F20 X:0F5F Y:0010 P:envMxdizc $86/8429 BF 00 98 7F LDA $7F9800,x[$7F:A75F] A:0000 X:0F5F Y:0010 P:envMxdiZc $86/842D C2 21 REP #$21 A:0012 X:0F5F Y:0010 P:envMxdizc $86/842F DA PHX A:0012 X:0F5F Y:0010 P:envmxdizc $86/8430 6D 16 42 ADC $4216 [$8B:4216] A:0012 X:0F5F Y:0010 P:envmxdizc $86/8433 AA TAX A:0252 X:0F5F Y:0010 P:envmxdizc $86/8434 E2 20 SEP #$20 A:0252 X:0252 Y:0010 P:envmxdizc $86/8436 B9 84 0A LDA $0A84,y ; Load Height value the Figure is standing on $86/8439 4A LSR A ; Div by 2 (the value always is doubled?) $86/843A DF 00 C8 7F CMP $7FC800,x ; Compare with Step Map value $86/843E FA PLX A:0206 X:0252 Y:0010 P:envMxdiZC $86/843F 68 PLA A:0206 X:0F5F Y:0010 P:envMxdizC $86/8440 B0 1A BCS $1A ; [$845C] Branch if Height is higher than Step Map value $86/8442 C9 09 CMP #$09 A:0204 X:0DD7 Y:001A P:envMxdizc $86/8444 F0 26 BEQ $26 [$846C] A:0204 X:0DD7 Y:001A P:eNvMxdizc $86/8446 C9 0A CMP #$0A A:0204 X:0DD7 Y:001A P:eNvMxdizc $86/8448 F0 37 BEQ $37 [$8481] A:0204 X:0DD7 Y:001A P:eNvMxdizc $86/844A B9 43 09 LDA $0943,y[$8B:095D] A:0204 X:0DD7 Y:001A P:eNvMxdizc $86/844D DF 00 98 7F CMP $7F9800,x[$7F:A5D7] A:020D X:0DD7 Y:001A P:envMxdizc $86/8451 90 12 BCC $12 [$8465] A:020D X:0DD7 Y:001A P:envMxdizC $86/8453 B9 44 09 LDA $0944,y[$8B:095E] A:020D X:0DD7 Y:001A P:envMxdizC $86/8456 DF 00 B0 7F CMP $7FB000,x[$7F:BDD7] A:0215 X:0DD7 Y:001A P:envMxdizC $86/845A 90 09 BCC $09 [$8465] A:0215 X:0DD7 Y:001A P:envMxdizC $86/845C 18 CLC A:0400 X:049C Y:003E P:envMxdiZC $86/845D FA PLX A:0400 X:049C Y:003E P:envMxdiZc $86/845E 60 RTS A:0400 X:049C Y:003E P:envMxdizc $86/845F E2 20 SEP #$20 A:0400 X:049D Y:003E P:envMxdiZC $86/8461 68 PLA A:0400 X:049D Y:003E P:envMxdiZC $86/8462 FA PLX A:0401 X:049D Y:003E P:envMxdizC $86/8463 18 CLC A:0401 X:049D Y:003E P:envMxdizC $86/8464 60 RTS A:0401 X:049D Y:003E P:envMxdizc $86/8465 A9 20 LDA #$20 A:0211 X:0C98 Y:001C P:eNvMxdizc $86/8467 85 22 STA $22 [$00:0022] A:0220 X:0C98 Y:001C P:envMxdizc $86/8469 38 SEC A:0220 X:0C98 Y:001C P:envMxdizc $86/846A 80 F1 BRA $F1 ; [$845D] PLX, RTS $86/846C B9 43 09 LDA $0943,y[$8B:096B] A:0109 X:0AA2 Y:0028 P:envMxdiZC $86/846F 1A INC A A:010E X:0AA2 Y:0028 P:envMxdizC $86/8470 DF 00 98 7F CMP $7F9800,x[$7F:A2A2] A:010F X:0AA2 Y:0028 P:envMxdizC $86/8474 90 EF BCC $EF [$8465] A:010F X:0AA2 Y:0028 P:envMxdizC $86/8476 B9 44 09 LDA $0944,y[$8B:096C] A:010F X:0AA2 Y:0028 P:envMxdizC $86/8479 DF 00 B0 7F CMP $7FB000,x[$7F:BAA2] A:010B X:0AA2 Y:0028 P:envMxdizC $86/847D 90 E6 BCC $E6 [$8465] A:010B X:0AA2 Y:0028 P:envMxdizC $86/847F 80 DB BRA $DB ; [$845C] CLC, PLX, RTS $86/8481 B9 43 09 LDA $0943,y[$8B:0945] A:020A X:0D1E Y:0002 P:envMxdiZC $86/8484 DF 00 98 7F CMP $7F9800,x[$7F:A51E] A:0210 X:0D1E Y:0002 P:envMxdizC $86/8488 90 DB BCC $DB [$8465] A:0210 X:0D1E Y:0002 P:envMxdizC $86/848A B9 44 09 LDA $0944,y[$8B:0946] A:0210 X:0D1E Y:0002 P:envMxdizC $86/848D 1A INC A A:0210 X:0D1E Y:0002 P:envMxdizC $86/848E DF 00 B0 7F CMP $7FB000,x[$7F:BD1E] A:0211 X:0D1E Y:0002 P:envMxdizC $86/8492 90 D1 BCC $D1 [$8465] A:0211 X:0D1E Y:0002 P:envMxdizC $86/8494 80 C6 BRA $C6 ; [$845C] CLC, PLX, RTS
$86/8496 Check if more Sprites are needed and clear OAM entries for it
This seems to check if the program needs more, less or the same number of sprites in the next frame as it does in the current one.
$86/8496 A2 42 05 LDX #$0542 ; Load Number of free Sprites in OAM at $7E0100 $86/8499 A0 20 03 LDY #$0320 ; Test if OAM buffer at $320 is active or not $86/849C CC 45 05 CPY $0545 $86/849F D0 03 BNE $03 ; [$84A4] If $100 is active, keep X = #$0542, else... $86/84A1 A2 41 05 LDX #$0541 ; replace it with #$0541 $86/84A4 86 02 STX $02 ; Temp store it $86/84A6 7B TDC ; Clear 16-bit A $86/84A7 A5 2B LDA $2B ; Load number of free sprites $86/84A9 F0 28 BEQ $28 ; [$84D3] Exit if none is free $86/84AB 38 SEC $86/84AC F2 02 SBC ($02) ; Subtract the old value (in $0541 or $0542) $86/84AE 90 17 BCC $17 ; [$84C7] Branch if the number of needed sprites has decreased $86/84B0 F0 15 BEQ $15 ; [$84C7] Branch if the number of needed sprites is the same as before
If more sprites are needed
$86/84B2 A8 TAY ; Y contains the additional amount of sprites needed in this frame $86/84B3 A6 29 LDX $29 ; Load start point of OAM low table $86/84B5 C2 20 REP #$20 $86/84B7 A9 00 E8 LDA #$E800 ; Clear the additionally needed OAM Low Table entries $86/84BA 95 00 STA $00,x ; Sprite position: 0 to the left, appear at scanline 232 (outside the visible area) $86/84BC 74 02 STZ $02,x ; H/V flip, priority 2, palette 4 $86/84BE E8 INX ; Increment write index to point to the next entry's start $86/84BF E8 INX $86/84C0 E8 INX $86/84C1 E8 INX $86/84C2 88 DEY ; Decrement number of additionally needed sprite entries $86/84C3 D0 F5 BNE $F5 ; [$84BA] Loop until all of them are done $86/84C5 E2 20 SEP #$20
If less or the same number of sprites are needed
$86/84C7 A5 28 LDA $28 ; ??? Probably the number of used OAM entries (= sprites)? $86/84C9 C9 80 CMP #$80 ; ??? Are all sprites used(?) $86/84CB F0 06 BEQ $06 ; [$84D3] ??? Exit if equal $86/84CD 4A LSR A ; ??? $86/84CE 4A LSR A ; ??? $86/84CF 90 FC BCC $FC ; [$84CD] ??? $86/84D1 92 26 STA ($26) ; ??? $86/84D3 A5 2B LDA $2B ; Store number of free Sprites in $0541/$0542 $86/84D5 92 02 STA ($02) $86/84D7 60 RTS
$86/84D8 ?
$86/84D8 8B PHB ; Buffer Data Bank on Stack $86/84D9 A9 7E LDA #$7E ; Set Data Bank to $7E $86/84DB 48 PHA $86/84DC AB PLB $86/84DD A0 C4 BD LDY #$BDC4 ; Write "$0000" for #$80 bytes at $7E/BDC4 $86/84E0 A2 80 00 LDX #$0080 $86/84E3 7B TDC $86/84E4 C2 20 REP #$20 $86/84E6 22 C8 9D 80 JSL $809DC8 ; Long Jump to Write Empty Tilemap in WRAM $86/84EA E2 20 SEP #$20 A:0000 X:AD38 Y:BE44 P:eNvmxdIzc $86/84EC A0 03 00 LDY #$0003 A:0000 X:AD38 Y:BE44 P:eNvMxdIzc $86/84EF A2 79 00 LDX #$0079 A:0000 X:AD38 Y:0003 P:envMxdIzc $86/84F2 22 B6 A6 9B JSL $9BA6B6[$9B:A6B6] A:0000 X:0079 Y:0003 P:envMxdIzc $86/84F6 E8 INX A:0000 X:0079 Y:0003 P:envMxdIzc $86/84F7 88 DEY A:0000 X:007A Y:0003 P:envMxdIzc $86/84F8 D0 F8 BNE $F8 [$84F2] A:0000 X:007A Y:0002 P:envMxdIzc $86/84FA AB PLB ; Restore Data Bank on Stack $86/84FB 6B RTL
$86/9B29 ?
$86/9B29 8B PHB ; Buffer Data Bank on Stack $86/9B2A 4B PHK ; Set Data Bank to $86 $86/9B2B AB PLB $86/9B2C 5A PHY ; Buffer Y on Stack $86/9B2D D4 0E PEI ($0E) ; Buffer $0E/$0F on Stack $86/9B2F 48 PHA ; Buffer A on Stack $86/9B30 BD D6 1C LDA $1CD6,x ; Buffer Position from where the possible Movement is calculated - NW-SE-Axis on Stack $86/9B33 48 PHA $86/9B34 BD D7 1C LDA $1CD7,x ; Buffer Position from where the possible Movement is calculated - NE-SW-Axis on Stack $86/9B37 48 PHA $86/9B38 5A PHY ; Buffer Y on Stack (again) $86/9B39 86 91 STX $91 [$00:0091] A:0007 X:0004 Y:0002 P:envMxdizc $86/9B3B A6 20 LDX $20 ; Setup the address from [$20] in [$29] $86/9B3D A5 22 LDA $22 $86/9B3F 86 29 STX $29 $86/9B41 85 2B STA $2B $86/9B43 A0 00 00 LDY #$0000 ; Setup a Load Index in Y $86/9B46 B7 29 LDA [$29],y[$7E:339B] A:007E X:339B Y:0000 P:envMxdiZc $86/9B48 85 61 STA $61 [$00:0061] A:000A X:339B Y:0000 P:envMxdizc $86/9B4A C8 INY A:000A X:339B Y:0000 P:envMxdizc $86/9B4B B7 29 LDA [$29],y[$7E:339C] A:000A X:339B Y:0001 P:envMxdizc $86/9B4D 85 63 STA $63 [$00:0063] A:0007 X:339B Y:0001 P:envMxdizc $86/9B4F A6 91 LDX $91 [$00:0091] A:0007 X:339B Y:0001 P:envMxdizc $86/9B51 BD EE 1D LDA $1DEE,x[$86:1DF2] A:0007 X:0004 Y:0001 P:envMxdizc $86/9B54 48 PHA A:0005 X:0004 Y:0001 P:envMxdizc $86/9B55 A9 FF LDA #$FF A:0005 X:0004 Y:0001 P:envMxdizc $86/9B57 9D EE 1D STA $1DEE,x[$86:1DF2] A:00FF X:0004 Y:0001 P:eNvMxdizc $86/9B5A D4 0E PEI ($0E) [$0010] A:00FF X:0004 Y:0001 P:eNvMxdizc $86/9B5C 22 50 9C 86 JSL $869C50[$86:9C50] A:00FF X:0004 Y:0001 P:eNvMxdizc $86/9B60 FA PLX A:01D4 X:0004 Y:0001 P:eNvMxdizc $86/9B61 86 0E STX $0E [$00:000E] A:01D4 X:0010 Y:0001 P:envMxdizc $86/9B63 68 PLA A:01D4 X:0010 Y:0001 P:envMxdizc $86/9B64 A6 91 LDX $91 [$00:0091] A:0105 X:0010 Y:0001 P:envMxdizc $86/9B66 9D EE 1D STA $1DEE,x[$86:1DF2] A:0105 X:0004 Y:0001 P:envMxdizc $86/9B69 90 04 BCC $04 [$9B6F] A:0105 X:0004 Y:0001 P:envMxdizc
- code is missing here
$86/9B6F A6 91 LDX $91 [$00:0091] A:0105 X:0004 Y:0001 P:envMxdizc $86/9B71 22 AC C2 84 JSL $84C2AC[$84:C2AC] A:0105 X:0004 Y:0001 P:envMxdizc $86/9B75 22 8A A1 80 JSL $80A18A ; Wait for NMI $86/9B79 A5 9E LDA $9E [$00:009E] A:1080 X:0004 Y:0001 P:eNvMxdizc $86/9B7B 85 0E STA $0E [$00:000E] A:1000 X:0004 Y:0001 P:envMxdiZc $86/9B7D 64 0F STZ $0F [$00:000F] A:1000 X:0004 Y:0001 P:envMxdiZc $86/9B7F 48 PHA A:1000 X:0004 Y:0001 P:envMxdiZc $86/9B80 A5 00 LDA $00 [$00:0000] A:1000 X:0004 Y:0001 P:envMxdiZc $86/9B82 48 PHA A:1000 X:0004 Y:0001 P:envMxdiZc $86/9B83 A0 00 00 LDY #$0000 A:1000 X:0004 Y:0001 P:envMxdiZc $86/9B86 B7 29 LDA [$29],y[$7E:339B] A:1000 X:0004 Y:0000 P:envMxdiZc $86/9B88 85 61 STA $61 [$00:0061] A:100A X:0004 Y:0000 P:envMxdizc $86/9B8A C8 INY A:100A X:0004 Y:0000 P:envMxdizc $86/9B8B B7 29 LDA [$29],y[$7E:339C] A:100A X:0004 Y:0001 P:envMxdizc $86/9B8D 85 63 STA $63 [$00:0063] A:1007 X:0004 Y:0001 P:envMxdizc $86/9B8F A4 29 LDY $29 [$00:0029] A:1007 X:0004 Y:0001 P:envMxdizc $86/9B91 C8 INY A:1007 X:0004 Y:339B P:envMxdizc $86/9B92 C8 INY A:1007 X:0004 Y:339C P:envMxdizc $86/9B93 84 29 STY $29 [$00:0029] A:1007 X:0004 Y:339D P:envMxdizc $86/9B95 A6 91 LDX $91 [$00:0091] A:1007 X:0004 Y:339D P:envMxdizc $86/9B97 BD EE 1D LDA $1DEE,x[$86:1DF2] A:1007 X:0004 Y:339D P:envMxdizc $86/9B9A 48 PHA A:1005 X:0004 Y:339D P:envMxdizc $86/9B9B A9 FF LDA #$FF A:1005 X:0004 Y:339D P:envMxdizc $86/9B9D 9D EE 1D STA $1DEE,x[$86:1DF2] A:10FF X:0004 Y:339D P:eNvMxdizc $86/9BA0 D4 0E PEI ($0E) [$0000] A:10FF X:0004 Y:339D P:eNvMxdizc $86/9BA2 22 50 9C 86 JSL $869C50[$86:9C50] A:10FF X:0004 Y:339D P:eNvMxdizc $86/9BA6 FA PLX A:01D4 X:0004 Y:339D P:eNvMxdizc $86/9BA7 86 0E STX $0E [$00:000E] A:01D4 X:0000 Y:339D P:envMxdiZc $86/9BA9 A6 91 LDX $91 [$00:0091] A:01D4 X:0000 Y:339D P:envMxdiZc $86/9BAB 68 PLA A:01D4 X:0004 Y:339D P:envMxdizc $86/9BAC 9D EE 1D STA $1DEE,x[$86:1DF2] A:0105 X:0004 Y:339D P:envMxdizc $86/9BAF 22 05 AC 86 JSL $86AC05[$86:AC05] A:0105 X:0004 Y:339D P:envMxdizc $86/9BB3 A3 07 LDA $07,s [$00:1FC5] A:0000 X:0004 Y:339D P:envMxdiZC $86/9BB5 F0 15 BEQ $15 [$9BCC] A:0000 X:0004 Y:339D P:envMxdiZC
- code is missing here
$86/9BCC 68 PLA A:0000 X:0004 Y:339D P:envMxdiZC $86/9BCD 85 08 STA $08 [$00:0008] A:0000 X:0004 Y:339D P:envMxdiZC $86/9BCF 68 PLA A:0000 X:0004 Y:339D P:envMxdiZC $86/9BD0 EB XBA A:0000 X:0004 Y:339D P:envMxdiZC $86/9BD1 AD E7 1E LDA $1EE7 [$86:1EE7] A:0000 X:0004 Y:339D P:envMxdiZC $86/9BD4 22 66 CE 80 JSL $80CE66[$80:CE66] A:0000 X:0004 Y:339D P:envMxdiZC $86/9BD8 7A PLY A:FFFF X:0006 Y:0008 P:eNvMxdizC $86/9BD9 C0 00 00 CPY #$0000 A:FFFF X:0006 Y:0002 P:envMxdizC $86/9BDC F0 0A BEQ $0A [$9BE8] A:FFFF X:0006 Y:0002 P:envMxdizC $86/9BDE A9 20 LDA #$20 A:FFFF X:0006 Y:0002 P:envMxdizC $86/9BE0 88 DEY A:FF20 X:0006 Y:0002 P:envMxdizC $86/9BE1 F0 02 BEQ $02 [$9BE5] A:FF20 X:0006 Y:0001 P:envMxdizC $86/9BE3 A9 08 LDA #$08 A:FF20 X:0006 Y:0001 P:envMxdizC $86/9BE5 9D 84 08 STA $0884,x[$86:088A] A:FF08 X:0006 Y:0001 P:envMxdizC $86/9BE8 86 3B STX $3B [$00:003B] A:FF08 X:0006 Y:0001 P:envMxdizC $86/9BEA 18 CLC A:FF08 X:0006 Y:0001 P:envMxdizC $86/9BEB A6 91 LDX $91 [$00:0091] A:FF08 X:0006 Y:0001 P:envMxdizc $86/9BED 68 PLA ; Restore Position from where the possible Movement is calculated - NE-SW-Axis from Stack $86/9BEE 9D D7 1C STA $1CD7,x $86/9BF1 68 PLA ; Restore Position from where the possible Movement is calculated - NW-SE-Axis from Stack $86/9BF2 9D D6 1C STA $1CD6,x $86/9BF5 68 PLA ; Restore A from Stack $86/9BF6 7A PLY ; Restore $0E/$0F from Stack $86/9BF7 84 0E STY $0E $86/9BF9 7A PLY ; Restore Y from Stack $86/9BFA AB PLB ; Restore Data Bank from Stack $86/9BFB 6B RTL
$86/9BFC ?
$86/9BFC 8B PHB ; Buffer Data Bank on Stack $86/9BFD 4B PHK ; Set Data Bank to $86 $86/9BFE AB PLB $86/9BFF BD D6 1C LDA $1CD6,x ; Buffer Calculation Position (NW-SE-Axis) on Stack $86/9C02 48 PHA $86/9C03 BD D7 1C LDA $1CD7,x ; Buffer Calculation Position (NE-SW-Axis) on Stack $86/9C06 48 PHA $86/9C07 5A PHY ; Buffer Y on Stack $86/9C08 86 91 STX $91 ; Store Figure Number in $92/$93 $86/9C0A A6 20 LDX $20 [$00:0020] A:0001 X:000C Y:0002 P:envMxdizc $86/9C0C A5 22 LDA $22 [$00:0022] A:0001 X:339B Y:0002 P:envMxdizc $86/9C0E 86 29 STX $29 [$00:0029] A:007E X:339B Y:0002 P:envMxdizc $86/9C10 85 2B STA $2B [$00:002B] A:007E X:339B Y:0002 P:envMxdizc $86/9C12 A6 91 LDX $91 ; Restore Figure Number from $92/$93 $86/9C14 22 AC C2 84 JSL $84C2AC[$84:C2AC] A:007E X:000C Y:0002 P:envMxdizc $86/9C18 22 8A A1 80 JSL $80A18A ; Wait for NMI $86/9C1C A5 9E LDA $9E [$00:009E] A:0080 X:000C Y:0002 P:eNvMxdizc $86/9C1E 48 PHA A:0009 X:000C Y:0002 P:envMxdizc $86/9C1F A5 00 LDA $00 [$00:0000] A:0009 X:000C Y:0002 P:envMxdizc $86/9C21 48 PHA A:0000 X:000C Y:0002 P:envMxdiZc $86/9C22 22 F5 AD 86 JSL $86ADF5[$86:ADF5] A:0000 X:000C Y:0002 P:envMxdiZc $86/9C26 68 PLA A:0009 X:0000 Y:0001 P:envMxdizC $86/9C27 85 08 STA $08 [$00:0008] A:0000 X:0000 Y:0001 P:envMxdiZC $86/9C29 68 PLA A:0000 X:0000 Y:0001 P:envMxdiZC $86/9C2A EB XBA A:0009 X:0000 Y:0001 P:envMxdizC $86/9C2B AD E7 1E LDA $1EE7 [$86:1EE7] A:0900 X:0000 Y:0001 P:envMxdiZC $86/9C2E 22 66 CE 80 JSL $80CE66[$80:CE66] A:0902 X:0000 Y:0001 P:envMxdizC $86/9C32 7A PLY A:FFFF X:0012 Y:0014 P:eNvMxdizC $86/9C33 C0 00 00 CPY #$0000 A:FFFF X:0012 Y:0002 P:envMxdizC $86/9C36 F0 0A BEQ $0A [$9C42] A:FFFF X:0012 Y:0002 P:envMxdizC $86/9C38 A9 20 LDA #$20 A:FFFF X:0012 Y:0002 P:envMxdizC $86/9C3A 88 DEY A:FF20 X:0012 Y:0002 P:envMxdizC $86/9C3B F0 02 BEQ $02 [$9C3F] A:FF20 X:0012 Y:0001 P:envMxdizC $86/9C3D A9 08 LDA #$08 A:FF20 X:0012 Y:0001 P:envMxdizC $86/9C3F 9D 84 08 STA $0884,x[$86:0896] A:FF08 X:0012 Y:0001 P:envMxdizC $86/9C42 86 3B STX $3B [$00:003B] A:FF08 X:0012 Y:0001 P:envMxdizC $86/9C44 A6 91 LDX $91 [$00:0091] A:FF08 X:0012 Y:0001 P:envMxdizC $86/9C46 68 PLA ; Restore Calculation Position (NE-SW-Axis) from Stack $86/9C47 9D D7 1C STA $1CD7,x $86/9C4A 68 PLA ; Restore Calculation Position (NW-SE-Axis) from Stack $86/9C4B 9D D6 1C STA $1CD6,x $86/9C4E AB PLB ; Restore Data Bank from Stack $86/9C4F 6B RTL
$86/9C50 ?
$86/9C50 8B PHB ; Buffer Data Bank on Stack $86/9C51 4B PHK ; Set Data Bank to $86 $86/9C52 AB PLB $86/9C53 DA PHX ; Buffer X and Y on Stack $86/9C54 5A PHY $86/9C55 D4 00 PEI ($00) ; Buffer $00/$01 on Stack $86/9C57 D4 10 PEI ($10) ; Buffer $10/$11 on Stack $86/9C59 D4 14 PEI ($14) ; Buffer $14-$17 on Stack $86/9C5B D4 16 PEI ($16) $86/9C5D 64 62 STZ $62 [$00:0062] A:00FF X:0004 Y:0001 P:eNvMxdizc $86/9C5F 64 64 STZ $64 [$00:0064] A:00FF X:0004 Y:0001 P:eNvMxdizc $86/9C61 20 A2 9E JSR $9EA2 [$86:9EA2] A:00FF X:0004 Y:0001 P:eNvMxdizc $86/9C64 7B TDC A:01D2 X:0004 Y:0001 P:envMxdizc $86/9C65 A5 63 LDA $63 [$00:0063] A:0000 X:0004 Y:0001 P:envMxdiZc $86/9C67 C2 20 REP #$20 A:0007 X:0004 Y:0001 P:envMxdizc $86/9C69 EB XBA A:0007 X:0004 Y:0001 P:envmxdizc $86/9C6A 4A LSR A A:0700 X:0004 Y:0001 P:envmxdiZc $86/9C6B 4A LSR A A:0380 X:0004 Y:0001 P:envmxdizc $86/9C6C 4A LSR A A:01C0 X:0004 Y:0001 P:envmxdizc $86/9C6D E2 20 SEP #$20 A:00E0 X:0004 Y:0001 P:envmxdizc $86/9C6F 05 61 ORA $61 [$00:0061] A:00E0 X:0004 Y:0001 P:envMxdizc $86/9C71 C2 20 REP #$20 A:00EA X:0004 Y:0001 P:eNvMxdizc $86/9C73 0A ASL A A:00EA X:0004 Y:0001 P:eNvmxdizc $86/9C74 85 0C STA $0C [$00:000C] A:01D4 X:0004 Y:0001 P:envmxdizc $86/9C76 E2 20 SEP #$20 A:01D4 X:0004 Y:0001 P:envmxdizc $86/9C78 20 D6 9E JSR $9ED6 [$86:9ED6] A:01D4 X:0004 Y:0001 P:envMxdizc $86/9C7B 20 9C E1 JSR $E19C [$86:E19C] A:0000 X:0540 Y:F11F P:eNvMxdizc $86/9C7E 20 7C 9F JSR $9F7C [$86:9F7C] A:0005 X:0002 Y:FFFF P:eNvMxdizC $86/9C81 FA PLX ; Restore $17-$14 from Stack $86/9C82 86 16 STX $16 $86/9C84 FA PLX $86/9C85 86 14 STX $14 $86/9C87 FA PLX ; Restore $10/$11 from Stack $86/9C88 86 10 STX $10 $86/9C8A FA PLX ; Restore $00/$01 from Stack $86/9C8B 86 00 STX $00 $86/9C8D 7A PLY ; Restore Y and X from Stack $86/9C8E FA PLX $86/9C8F AB PLB ; Restore Data Bank from Stack $86/9C90 6B RTL
$86/9EA2 ?
$86/9EA2 BD AF 17 LDA $17AF,x ; Buffer Figure's Class $86/9EA5 85 10 STA $10 $86/9EA7 BD 6E 1B LDA $1B6E,x[$86:1B6E] A:0001 X:0000 Y:000A P:envMxdizc $86/9EAA 85 0B STA $0B [$00:000B] A:0002 X:0000 Y:000A P:envMxdizc $86/9EAC BD C7 1D LDA $1DC7,x[$86:1DC7] A:0002 X:0000 Y:000A P:envMxdizc $86/9EAF 85 08 STA $08 [$00:0008] A:0001 X:0000 Y:000A P:envMxdizc $86/9EB1 BD 2E 1A LDA $1A2E,x[$86:1A2E] A:0001 X:0000 Y:000A P:envMxdizc $86/9EB4 4A LSR A A:0000 X:0000 Y:000A P:envMxdiZc $86/9EB5 85 09 STA $09 [$00:0009] A:0000 X:0000 Y:000A P:envMxdiZc $86/9EB7 7B TDC ; Clear 16-bit A $86/9EB8 BD EE 1D LDA $1DEE,x ; Buffer Figure's Move Number $86/9EBB 85 02 STA $02 $86/9EBD 64 03 STZ $03 ; Clear "High Byte"
Turns the figure's position into the Map Offset
$86/9EBF 7B TDC ; Clear 16-bit A $86/9EC0 BD D7 1C LDA $1CD7,x ; Load Figure's Position (NE-SW-Axis) $86/9EC3 C2 20 REP #$20 ; A = 16-bit $86/9EC5 EB XBA ; Multiply by 20 $86/9EC6 4A LSR A $86/9EC7 4A LSR A $86/9EC8 4A LSR A $86/9EC9 E2 20 SEP #$20 ; A = 8-bit $86/9ECB 1D D6 1C ORA $1CD6,x ; Add the Figure's Position on the NW-SE-Axis $86/9ECE C2 20 REP #$20 $86/9ED0 0A ASL A ; Multiply by 2 $86/9ED1 85 0E STA $0E ; Store in $0E $86/9ED3 E2 20 SEP #$20 $86/9ED5 60 RTS
$86/9ED6 ?
$86/9ED6 8B PHB ; Buffer Data Bank on Stack $86/9ED7 F4 00 7E PEA $7E00 ; Set Data Bank to $7E $86/9EDA AB PLB $86/9EDB AB PLB $86/9EDC 08 PHP ; Buffer Flag Register value on Stack $86/9EDD C2 20 REP #$20 ; A = 16-bit $86/9EDF D4 00 PEI ($00) ; Buffer $00/$01 on Stack $86/9EE1 AD CA 16 LDA $16CA ; Load Width of the Map on the NE-SW-Axis $86/9EE4 1A INC A ; Increment value $86/9EE5 EB XBA ; Multiply by #$40 $86/9EE6 4A LSR A $86/9EE7 4A LSR A $86/9EE8 AA TAX A:0540 X:0004 Y:0001 P:envmxdizc $86/9EE9 86 00 STX $00 [$00:0000] A:0540 X:0540 Y:0001 P:envmxdizc $86/9EEB A9 FF FF LDA #$FFFF A:0540 X:0540 Y:0001 P:envmxdizc $86/9EEE A0 DF D3 LDY #$D3DF A:FFFF X:0540 Y:0001 P:eNvmxdizc $86/9EF1 22 C8 9D 80 JSL $809DC8[$80:9DC8] A:FFFF X:0540 Y:D3DF P:eNvmxdizc $86/9EF5 A6 00 LDX $00 [$00:0000] A:FFFF X:0540 Y:D91F P:envmxdizc $86/9EF7 A9 FF FF LDA #$FFFF A:FFFF X:0540 Y:D91F P:envmxdizc $86/9EFA A0 DF DB LDY #$DBDF A:FFFF X:0540 Y:D91F P:eNvmxdizc $86/9EFD 22 C8 9D 80 JSL $809DC8[$80:9DC8] A:FFFF X:0540 Y:DBDF P:eNvmxdizc $86/9F01 A6 00 LDX $00 [$00:0000] A:FFFF X:0540 Y:E11F P:envmxdizc $86/9F03 A9 FF FF LDA #$FFFF A:FFFF X:0540 Y:E11F P:envmxdizc $86/9F06 A0 DF E3 LDY #$E3DF A:FFFF X:0540 Y:E11F P:eNvmxdizc $86/9F09 22 C8 9D 80 JSL $809DC8[$80:9DC8] A:FFFF X:0540 Y:E3DF P:eNvmxdizc $86/9F0D A9 FF FF LDA #$FFFF A:FFFF X:0540 Y:E91F P:envmxdizc $86/9F10 A0 00 48 LDY #$4800 A:FFFF X:0540 Y:E91F P:eNvmxdizc $86/9F13 22 C8 9D 80 JSL $809DC8[$80:9DC8] A:FFFF X:0540 Y:4800 P:envmxdizc $86/9F17 A6 00 LDX $00 [$00:0000] A:FFFF X:0540 Y:4D40 P:envmxdizc $86/9F19 A9 FF FF LDA #$FFFF A:FFFF X:0540 Y:4D40 P:envmxdizc $86/9F1C A0 00 50 LDY #$5000 A:FFFF X:0540 Y:4D40 P:eNvmxdizc $86/9F1F 22 C8 9D 80 JSL $809DC8[$80:9DC8] A:FFFF X:0540 Y:5000 P:envmxdizc $86/9F23 A6 00 LDX $00 [$00:0000] A:FFFF X:0540 Y:5540 P:envmxdizc $86/9F25 A9 FF FF LDA #$FFFF A:FFFF X:0540 Y:5540 P:envmxdizc $86/9F28 A0 DF EB LDY #$EBDF A:FFFF X:0540 Y:5540 P:eNvmxdizc $86/9F2B 22 C8 9D 80 JSL $809DC8[$80:9DC8] A:FFFF X:0540 Y:EBDF P:eNvmxdizc $86/9F2F 68 PLA ; Restore $00/$01 from Stack $86/9F30 85 00 STA $00 $86/9F32 28 PLP ; Restore Status Register value from Stack $86/9F33 AB PLB ; Restore Data Bank from Stack $86/9F34 60 RTS
$86/9F35 ?
$86/9F35 8B PHB ; Buffer Data Bank on Stack $86/9F36 F4 00 7E PEA $7E00 ; Set Data Bank to $7E $86/9F39 AB PLB $86/9F3A AB PLB $86/9F3B 08 PHP ; Push Status Register $86/9F3C C2 20 REP #$20 ; A 16-bit $86/9F3E D4 00 PEI ($00) ; Buffer $00/1 on Stack $86/9F40 AD CA 16 LDA $16CA ; Load Width of the Map on the NE-SW-Axis $86/9F43 1A INC A ; A = (Width + 1) * #$40 $86/9F44 EB XBA $86/9F45 4A LSR A $86/9F46 4A LSR A $86/9F47 AA TAX ; Transfer in X - used as number of bytes to do $86/9F48 86 00 STX $00 ; Store in X $86/9F4A A9 FF FF LDA #$FFFF ; Write for X bytes "$FFFF" in $7E/D3DF $86/9F4D A0 DF D3 LDY #$D3DF $86/9F50 22 C8 9D 80 JSL $809DC8 ; Long Jump to Write Empty Tilemap in WRAM $86/9F54 A6 00 LDX $00 ; Write for X bytes "$FFFF" in $7E/DBDF $86/9F56 A9 FF FF LDA #$FFFF $86/9F59 A0 DF DB LDY #$DBDF $86/9F5C 22 C8 9D 80 JSL $809DC8 $86/9F60 A9 FF FF LDA #$FFFF ; Write for X bytes "$FFFF" in $7E/4800 $86/9F63 A0 00 48 LDY #$4800 $86/9F66 22 C8 9D 80 JSL $809DC8 $86/9F6A A6 00 LDX $00 ; Write for X bytes "$FFFF" in $7E/5000 $86/9F6C A9 FF FF LDA #$FFFF $86/9F6F A0 00 50 LDY #$5000 $86/9F72 22 C8 9D 80 JSL $809DC8 $86/9F76 68 PLA ; Restore $00/1 from Stack $86/9F77 85 00 STA $00 $86/9F79 28 PLP ; Pull Status Register $86/9F7A AB PLB ; Restore Data Bank $86/9F7B 60 RTS
$86/9F7C ?
$86/9F7C 8B PHB ; Buffer Data Bank on Stack $86/9F7D A9 7E LDA #$7E ; Set Data Bank to $7E $86/9F7F 48 PHA $86/9F80 AB PLB $86/9F81 C2 20 REP #$20 ; A = 16-bit $86/9F83 A5 06 LDA $06 [$00:0006] A:007E X:0002 Y:FFFF P:envmxdizC $86/9F85 C9 FF FF CMP #$FFFF A:0001 X:0002 Y:FFFF P:envmxdizC $86/9F88 F0 48 BEQ $48 [$9FD2] A:0001 X:0002 Y:FFFF P:envmxdizc $86/9F8A A0 00 00 LDY #$0000 A:0001 X:0002 Y:FFFF P:envmxdizc $86/9F8D A5 0C LDA $0C [$00:000C] A:0001 X:0002 Y:0000 P:envmxdiZc $86/9F8F 09 00 00 ORA #$0000 A:01D4 X:0002 Y:0000 P:envmxdizc $86/9F92 10 09 BPL $09 [$9F9D] A:01D4 X:0002 Y:0000 P:envmxdizc
- code is missing here
$86/9F9D AA TAX A:01D4 X:0002 Y:0000 P:envmxdizc $86/9F9E BD DF DB LDA $DBDF,x[$7E:DDB3] A:01D4 X:01D4 Y:0000 P:envmxdizc $86/9FA1 C8 INY A:01D2 X:01D4 Y:0000 P:envmxdizc $86/9FA2 C8 INY A:01D2 X:01D4 Y:0001 P:envmxdizc $86/9FA3 C5 0E CMP $0E [$00:000E] A:01D2 X:01D4 Y:0002 P:envmxdizc $86/9FA5 D0 E8 BNE $E8 [$9F8F] A:01D2 X:01D4 Y:0002 P:envmxdiZC $86/9FA7 8C EC 16 STY $16EC [$7E:16EC] A:01D2 X:01D4 Y:0002 P:envmxdiZC $86/9FAA A9 00 00 LDA #$0000 A:01D2 X:01D4 Y:0002 P:envmxdiZC $86/9FAD 99 E0 E3 STA $E3E0,y[$7E:E3E2] A:0000 X:01D4 Y:0002 P:envmxdiZC $86/9FB0 88 DEY A:0000 X:01D4 Y:0002 P:envmxdiZC $86/9FB1 88 DEY A:0000 X:01D4 Y:0001 P:envmxdizC $86/9FB2 A5 0C LDA $0C [$00:000C] A:0000 X:01D4 Y:0000 P:envmxdiZC $86/9FB4 80 12 BRA $12 [$9FC8] A:01D4 X:01D4 Y:0000 P:envmxdizC
- code is missing here
$86/9FC8 99 E0 E3 STA $E3E0,y[$7E:E3E0] A:01D4 X:01D4 Y:0000 P:envmxdizC $86/9FCB 88 DEY A:01D4 X:01D4 Y:0000 P:envmxdizC $86/9FCC 88 DEY A:01D4 X:01D4 Y:FFFF P:eNvmxdizC $86/9FCD 10 E7 BPL $E7 [$9FB6] A:01D4 X:01D4 Y:FFFE P:eNvmxdizC $86/9FCF 18 CLC A:01D4 X:01D4 Y:FFFE P:eNvmxdizC $86/9FD0 80 04 BRA $04 [$9FD6] A:01D4 X:01D4 Y:FFFE P:eNvmxdizc
- code is missing here
$86/9FD6 E2 20 SEP #$20 ; A = 8-bit $86/9FD8 AB PLB ; Restore Data Bank from Stack $86/9FD9 60 RTS
$86/A082 4A LSR A A:01D4 X:01D0 Y:01D2 P:envmxdizc $86/A083 AA TAX A:00EA X:01D0 Y:01D2 P:envmxdizc $86/A084 E2 20 SEP #$20 ; A = 8 bit $86/A086 20 D5 AA JSR $AAD5 [$86:AAD5] A:00EA X:00EA Y:01D2 P:envMxdizc $86/A089 B0 26 BCS $26 [$A0B1] A:00FF X:00EA Y:FFFF P:eNvMxdizC
- code is missing here
$86/A0B1 BF 00 C8 7F LDA $7FC800,x ; Load entry from Step Map $86/A0B5 F0 01 BEQ $01 [$A0B8] A:0003 X:00EA Y:FFFF P:envMxdizC $86/A0B7 3A DEC A A:0003 X:00EA Y:FFFF P:envMxdizC $86/A0B8 C5 0A CMP $0A [$00:000A] A:0002 X:00EA Y:FFFF P:envMxdizC $86/A0BA C2 20 REP #$20 ; A = 16-bit $86/A0BC 60 RTS
$86/A0BD ?
$86/A0BD 8B PHB ; Buffer Data Bank on Stack $86/A0BE 4B PHK ; Set Data Bank to $86 $86/A0BF AB PLB $86/A0C0 4A LSR A A:01D4 X:00E9 Y:01D2 P:eNvmxdizc $86/A0C1 48 PHA A:00EA X:00E9 Y:01D2 P:envmxdizc $86/A0C2 7B TDC A:00EA X:00E9 Y:01D2 P:envmxdizc $86/A0C3 E2 20 SEP #$20 A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/A0C5 64 21 STZ $21 [$00:0021] A:0000 X:00E9 Y:01D2 P:envMxdiZc $86/A0C7 A5 08 LDA $08 [$00:0008] A:0000 X:00E9 Y:01D2 P:envMxdiZc $86/A0C9 29 03 AND #$03 A:0001 X:00E9 Y:01D2 P:envMxdizc $86/A0CB 0A ASL A A:0001 X:00E9 Y:01D2 P:envMxdizc $86/A0CC AA TAX A:0002 X:00E9 Y:01D2 P:envMxdizc $86/A0CD 7C D0 A0 JMP ($A0D0,x)[$86:A0D8] A:0002 X:0002 Y:01D2 P:envMxdizc
Jump Table
$86/A0D0 D8 A0 - Entry #$00 - $86/A0D8 $86/A0D2 D8 A0 - Entry #$01 - $86/A0D8 $86/A0D4 28 A1 - Entry #$02 - $86/A128 $86/A0D6 48 A1 - Entry #$03 - $86/A148
$86/A0D8 ?
$86/A0D8 FA PLX A:0002 X:0002 Y:01D2 P:envMxdizc $86/A0D9 20 D5 AA JSR $AAD5 [$86:AAD5] A:0002 X:00EA Y:01D2 P:envMxdizc $86/A0DC B0 1E BCS $1E [$A0FC] A:00FF X:00EA Y:FFFF P:eNvMxdizC $86/A0DE B9 2E 1A LDA $1A2E,y[$86:1A30] A:0000 X:00EB Y:0002 P:envMxdiZc $86/A0E1 4A LSR A A:0000 X:00EB Y:0002 P:envMxdiZc $86/A0E2 C5 09 CMP $09 [$00:0009] A:0000 X:00EB Y:0002 P:envMxdiZc $86/A0E4 D0 6F BNE $6F [$A155] A:0000 X:00EB Y:0002 P:envMxdiZC $86/A0E6 B9 AF 17 LDA $17AF,y[$86:17B1] A:0000 X:00EB Y:0002 P:envMxdiZC $86/A0E9 22 DF A3 88 JSL $88A3DF ; Load Big Sprite Flag for this Character $86/A0ED 90 0D BCC $0D [$A0FC] A:0035 X:00EB Y:0002 P:envMxdizc
- code is missing here
$86/A0FC BF 00 C8 7F LDA $7FC800,x ; Load entry from Step Map $86/A100 F0 53 BEQ $53 [$A155] A:0003 X:00EA Y:FFFF P:envMxdizC $86/A102 C9 FF CMP #$FF A:0003 X:00EA Y:FFFF P:envMxdizC $86/A104 F0 4F BEQ $4F [$A155] A:0003 X:00EA Y:FFFF P:envMxdizc $86/A106 48 PHA ; Buffer Step Map entry on Stack $86/A107 A5 08 LDA $08 [$00:0008] A:0003 X:00EA Y:FFFF P:envMxdizc $86/A109 4A LSR A A:0001 X:00EA Y:FFFF P:envMxdizc $86/A10A 4A LSR A A:0000 X:00EA Y:FFFF P:envMxdiZC $86/A10B C9 02 CMP #$02 A:0000 X:00EA Y:FFFF P:envMxdiZc $86/A10D D0 0A BNE $0A [$A119] A:0000 X:00EA Y:FFFF P:eNvMxdizc
- code is missing here
$86/A119 68 PLA ; Pull Step Map entry from Stack $86/A11A 20 9F A1 JSR $A19F [$86:A19F] A:0003 X:00EA Y:FFFF P:envMxdizc $86/A11D B0 36 BCS $36 [$A155] A:001F X:00EA Y:0001 P:envMxdizc $86/A11F 20 EB A1 JSR $A1EB [$86:A1EB] A:001F X:00EA Y:0001 P:envMxdizc $86/A122 C9 FF CMP #$FF A:0001 X:00EA Y:0001 P:envMxdizc $86/A124 D0 3C BNE $3C [$A162] A:0001 X:00EA Y:0001 P:envMxdizc $86/A126 80 2D BRA $2D [$A155] A:00FF X:00C9 Y:0001 P:envMxdiZC
- code is missing hre
$86/A155 A5 21 LDA $21 [$00:0021] A:00FF X:00C9 Y:0001 P:envMxdiZC $86/A157 4A LSR A A:0000 X:00C9 Y:0001 P:envMxdiZC $86/A158 49 01 EOR #$01 A:0000 X:00C9 Y:0001 P:envMxdiZc $86/A15A 4A LSR A A:0001 X:00C9 Y:0001 P:envMxdizc $86/A15B C2 20 REP #$20 A:0000 X:00C9 Y:0001 P:envMxdiZC $86/A15D A9 FF 00 LDA #$00FF A:0000 X:00C9 Y:0001 P:envmxdiZC $86/A160 AB PLB A:00FF X:00C9 Y:0001 P:envmxdizC $86/A161 60 RTS A:00FF X:00C9 Y:0001 P:envmxdizC $86/A162 48 PHA A:0001 X:00EA Y:0001 P:envMxdizc $86/A163 A9 01 LDA #$01 A:0001 X:00EA Y:0001 P:envMxdizc $86/A165 04 21 TSB $21 [$00:0021] A:0001 X:00EA Y:0001 P:envMxdizc $86/A167 7B TDC ; Clear 16-bit A $86/A168 68 PLA ; Restore A from Stack $86/A169 C2 21 REP #$21 ; A = 16-bit, Clear Carry $86/A16B AB PLB ; Restore Data Bank from Stack $86/A16C 60 RTS
$86/A19F ?
$86/A19F 38 SEC A:0003 X:00EA Y:FFFF P:envMxdizc $86/A1A0 E5 0A SBC $0A [$00:000A] A:0003 X:00EA Y:FFFF P:envMxdizC $86/A1A2 18 CLC A:00FF X:00EA Y:FFFF P:eNvMxdizc $86/A1A3 69 20 ADC #$20 A:00FF X:00EA Y:FFFF P:eNvMxdizc $86/A1A5 48 PHA A:001F X:00EA Y:FFFF P:envMxdizC $86/A1A6 7B TDC A:001F X:00EA Y:FFFF P:envMxdizC $86/A1A7 A5 08 LDA $08 [$00:0008] A:0000 X:00EA Y:FFFF P:envMxdiZC $86/A1A9 29 03 AND #$03 A:0001 X:00EA Y:FFFF P:envMxdizC $86/A1AB A8 TAY A:0001 X:00EA Y:FFFF P:envMxdizC $86/A1AC A5 10 LDA $10 [$00:0010] A:0001 X:00EA Y:0001 P:envMxdizC $86/A1AE C9 07 CMP #$07 A:0034 X:00EA Y:0001 P:envMxdizC $86/A1B0 F0 04 BEQ $04 [$A1B6] A:0034 X:00EA Y:0001 P:envMxdizC $86/A1B2 C9 61 CMP #$61 A:0034 X:00EA Y:0001 P:envMxdizC $86/A1B4 D0 10 BNE $10 [$A1C6] A:0034 X:00EA Y:0001 P:eNvMxdizc
- code is missing here
$86/A1C6 68 PLA A:0034 X:00EA Y:0001 P:eNvMxdizc $86/A1C7 D9 B4 A2 CMP $A2B4,y[$86:A2B5] A:001F X:00EA Y:0001 P:envMxdizc $86/A1CA B0 07 BCS $07 [$A1D3] A:001F X:00EA Y:0001 P:eNvMxdizc $86/A1CC D9 C8 A2 CMP $A2C8,y[$86:A2C9] A:001F X:00EA Y:0001 P:eNvMxdizc $86/A1CF 90 02 BCC $02 [$A1D3] A:001F X:00EA Y:0001 P:envMxdizC $86/A1D1 18 CLC A:001F X:00EA Y:0001 P:envMxdizC $86/A1D2 60 RTS A:001F X:00EA Y:0001 P:envMxdizc
- code is missing here
$86/A1EB DA PHX ; Buffer X on stack $86/A1EC 7B TDC ; Clear 16-bit A $86/A1ED BF 00 CC 7F LDA $7FCC00,x ; Load Entry from Terrain Type Map $86/A1F1 30 36 BMI $36 ; [$A229] Branch/Exit if MSB is set (Object?) $86/A1F3 F0 34 BEQ $34 ; [$A229] Branch/Exit if #$00 (no description) $86/A1F5 3A DEC A A:0001 X:00EA Y:0001 P:envMxdizc $86/A1F6 48 PHA A:0000 X:00EA Y:0001 P:envMxdiZc $86/A1F7 A5 08 LDA $08 [$00:0008] A:0000 X:00EA Y:0001 P:envMxdiZc $86/A1F9 29 1C AND #$1C A:0001 X:00EA Y:0001 P:envMxdizc $86/A1FB 0A ASL A A:0000 X:00EA Y:0001 P:envMxdiZc $86/A1FC 0A ASL A A:0000 X:00EA Y:0001 P:envMxdiZc $86/A1FD 0A ASL A A:0000 X:00EA Y:0001 P:envMxdiZc $86/A1FE 03 01 ORA $01,s [$00:1F9D] A:0000 X:00EA Y:0001 P:envMxdiZc $86/A200 AA TAX A:0000 X:00EA Y:0001 P:envMxdiZc $86/A201 68 PLA A:0000 X:0000 Y:0001 P:envMxdiZc $86/A202 BF DC A2 86 LDA $86A2DC,x[$86:A2DC] A:0000 X:0000 Y:0001 P:envMxdiZc $86/A206 C9 64 CMP #$64 A:0001 X:0000 Y:0001 P:envMxdizc $86/A208 F0 14 BEQ $14 [$A21E] A:0001 X:0000 Y:0001 P:eNvMxdizc $86/A20A C9 65 CMP #$65 A:0001 X:0000 Y:0001 P:eNvMxdizc $86/A20C D0 1D BNE $1D [$A22B] A:0001 X:0000 Y:0001 P:eNvMxdizc
- code is missing here
$86/A229 A9 FF LDA #$FF A:0080 X:00C9 Y:0001 P:eNvMxdizc $86/A22B FA PLX ; Restore X from Stack $86/A22C 60 RTS
$86/A296 ?
$86/A296 4A LSR A A:01D6 X:00EA Y:FFFF P:envmxdizc $86/A297 AA TAX A:00EB X:00EA Y:FFFF P:envmxdizc $86/A298 E2 20 SEP #$20 ; A = 8-bit $86/A29A BF 00 C8 7F LDA $7FC800,x ; Load value from Step Map $86/A29E F0 10 BEQ $10 ; [$A2B0] If empty, set Carry and exit $86/A2A0 C9 FF CMP #$FF $86/A2A2 F0 0C BEQ $0C ; [$A2B0] If #$FF, set Carry and exit $86/A2A4 3A DEC A A:0003 X:00EB Y:FFFF P:envMxdizc $86/A2A5 C5 0A CMP $0A [$00:000A] A:0002 X:00EB Y:FFFF P:envMxdizc $86/A2A7 B0 07 BCS $07 [$A2B0] A:0002 X:00EB Y:FFFF P:eNvMxdizc $86/A2A9 C2 20 REP #$20 ; A = 16-bit $86/A2AB 8A TXA A:0002 X:00EB Y:FFFF P:eNvmxdizc $86/A2AC 0A ASL A A:00EB X:00EB Y:FFFF P:envmxdizc $86/A2AD 4C BD A0 JMP $A0BD [$86:A0BD] A:01D6 X:00EB Y:FFFF P:envmxdizc $86/A2B0 C2 20 REP #$20 ; A = 16-bit $86/A2B2 38 SEC ; Set Carry (Error Flag?) $86/A2B3 60 RTS
$86/A815 ?
$86/A815 5A PHY ; Buffer Y on Stack $86/A816 D4 00 PEI ($00) ; Buffer $00/$01 on Stack $86/A818 4A LSR A A:0002 X:0043 Y:0000 P:envMxdizc $86/A819 85 01 STA $01 [$00:0001] A:0001 X:0043 Y:0000 P:envMxdizc $86/A81B 7B TDC A:0001 X:0043 Y:0000 P:envMxdizc $86/A81C BF 00 DC 7F LDA $7FDC00,x[$7F:DC43] A:0000 X:0043 Y:0000 P:envMxdiZc $86/A820 C9 FF CMP #$FF A:00FF X:0043 Y:0000 P:eNvMxdizc $86/A822 F0 32 BEQ $32 [$A856] A:00FF X:0043 Y:0000 P:envMxdiZC $86/A856 BF 00 C8 7F LDA $7FC800,x[$7F:C843] A:00FF X:0043 Y:0000 P:envMxdiZC $86/A85A EB XBA A:000B X:0043 Y:0000 P:envMxdizC $86/A85B A9 00 LDA #$00 A:0B00 X:0043 Y:0000 P:envMxdiZC $86/A85D EB XBA A:0B00 X:0043 Y:0000 P:envMxdiZC $86/A85E 7A PLY ; Restore $00/$01 from Stack $86/A85F 84 00 STY $00 $86/A861 7A PLY ; Restore Y from Stack $86/A862 60 RTS
$86/AAD5 ? Some Figure on the Map check
$86/AAD5 7B TDC ; Clear 16-bit A $86/AAD6 BF 00 DC 7F LDA $7FDC00,x ; Load entry from Map which Figure Stands where $86/AADA C9 FF CMP #$FF ; Is this rhomb empty? $86/AADC F0 14 BEQ $14 ; [$AAF2] If it is, branch, set flag and exit $86/AADE A8 TAY ; Transfer Character number in Y as Load Index $86/AADF B9 AE 17 LDA $17AE,y ; Load figure's Character Number $86/AAE2 F0 0E BEQ $0E ; [$AAF2] If it is empty, branch, set flag and exit $86/AAE4 C9 F0 CMP #$F0 A:0035 X:00EB Y:0002 P:envMxdizc $86/AAE6 B0 0A BCS $0A [$AAF2] A:0035 X:00EB Y:0002 P:envMxdizc $86/AAE8 B9 DE 19 LDA $19DE,y[$86:19E0] A:0035 X:00EB Y:0002 P:envMxdizc $86/AAEB 89 01 BIT #$01 A:0000 X:00EB Y:0002 P:envMxdiZc $86/AAED D0 03 BNE $03 [$AAF2] A:0000 X:00EB Y:0002 P:envMxdiZc $86/AAEF 18 CLC ; Clear Carry $86/AAF0 80 04 BRA $04 ; [$AAF6] Exit $86/AAF2 A0 FF FF LDY #$FFFF A:00FF X:00EA Y:01D2 P:envMxdiZC $86/AAF5 38 SEC ; Set Carry $86/AAF6 60 RTS
$86/AC05 ?
$86/AC05 A5 9E LDA $9E [$00:009E] A:0105 X:0004 Y:339D P:envMxdizc $86/AC07 48 PHA A:0100 X:0004 Y:339D P:envMxdiZc $86/AC08 A6 91 LDX $91 [$00:0091] A:0100 X:0004 Y:339D P:envMxdiZc $86/AC0A BD C7 1D LDA $1DC7,x[$86:1DCB] A:0100 X:0004 Y:339D P:envMxdizc $86/AC0D C9 0E CMP #$0E A:0101 X:0004 Y:339D P:envMxdizc $86/AC0F D0 03 BNE $03 [$AC14] A:0101 X:0004 Y:339D P:eNvMxdizc
- code is missing here
$86/AC14 29 03 AND #$03 A:0101 X:0004 Y:339D P:eNvMxdizc $86/AC16 C9 02 CMP #$02 A:0101 X:0004 Y:339D P:envMxdizc $86/AC18 D0 0C BNE $0C [$AC26] A:0101 X:0004 Y:339D P:eNvMxdizc
- code is missing here
$86/AC26 8B PHB ; Buffer Data Bank on Stack $86/AC27 A9 7E LDA #$7E ; Set Data Bank to $7E $86/AC29 48 PHA $86/AC2A AB PLB $86/AC2B DA PHX ; Buffer X and Y on Stack $86/AC2C 5A PHY $86/AC2D D4 0C PEI ($0C) ; Buffer $0C/$0D on Stack $86/AC2F D4 10 PEI ($10) ; Buffer $10-$13 on Stack $86/AC31 D4 12 PEI ($12) $86/AC33 7B TDC ; Clear 16-bit A $86/AC34 BD AF 17 LDA $17AF,x ; Buffer Figure's Character Class in $10 $86/AC37 85 10 STA $10 $86/AC39 DA PHX ; Buffer Figure's number on Stack (again) $86/AC3A 3A DEC A ; Decrement Class number and use it as Load Index $86/AC3B AA TAX $86/AC3C BF 5B C7 88 LDA $88C75B,x[$88:C78E] A:0033 X:0033 Y:339D P:envMxdizc $86/AC40 FA PLX A:0001 X:0033 Y:339D P:envMxdizc $86/AC41 29 03 AND #$03 A:0001 X:0004 Y:339D P:envMxdizc $86/AC43 85 12 STA $12 [$00:0012] A:0001 X:0004 Y:339D P:envMxdizc $86/AC45 BD 2E 1A LDA $1A2E,x[$7E:1A32] A:0001 X:0004 Y:339D P:envMxdizc $86/AC48 4A LSR A A:0000 X:0004 Y:339D P:envMxdiZc $86/AC49 85 11 STA $11 [$00:0011] A:0000 X:0004 Y:339D P:envMxdiZc $86/AC4B BD C7 1D LDA $1DC7,x[$7E:1DCB] A:0000 X:0004 Y:339D P:envMxdiZc $86/AC4E 29 03 AND #$03 A:0001 X:0004 Y:339D P:envMxdizc $86/AC50 85 06 STA $06 [$00:0006] A:0001 X:0004 Y:339D P:envMxdizc $86/AC52 BD C7 1D LDA $1DC7,x[$7E:1DCB] A:0001 X:0004 Y:339D P:envMxdizc $86/AC55 4A LSR A A:0001 X:0004 Y:339D P:envMxdizc $86/AC56 4A LSR A A:0000 X:0004 Y:339D P:envMxdiZC $86/AC57 85 07 STA $07 [$00:0007] A:0000 X:0004 Y:339D P:envMxdiZc $86/AC59 7B TDC A:0000 X:0004 Y:339D P:envMxdiZc $86/AC5A BD D7 1C LDA $1CD7,x ; Load Position from where the possible Movement is calculated - NE-SW-Axis $86/AC5D EB XBA ; Multiply by #$20 $86/AC5E C2 20 REP #$20 $86/AC60 4A LSR A $86/AC61 4A LSR A $86/AC62 4A LSR A $86/AC63 E2 20 SEP #$20 $86/AC65 1D D6 1C ORA $1CD6,x ; Add Position from where the possible Movement is calculated - NW-SE-Axis $86/AC68 AA TAX ; Transfer Movement Calc Position in X as Load Index $86/AC69 86 02 STX $02 ; Buffer Movement Calc Position in $02 $86/AC6B BF 00 C8 7F LDA $7FC800,x ; Load that value from Step Map $86/AC6F 85 08 STA $08 ; Buffer Step Map entry in $08 $86/AC71 A5 07 LDA $07 [$00:0007] A:0004 X:00E9 Y:339D P:envMxdizc $86/AC73 C9 02 CMP #$02 A:0000 X:00E9 Y:339D P:envMxdiZc $86/AC75 D0 07 BNE $07 [$AC7E] A:0000 X:00E9 Y:339D P:eNvMxdizc
- code is missing here
$86/AC7E A6 0E LDX $0E [$00:000E] A:0000 X:00E9 Y:339D P:eNvMxdizc $86/AC80 A5 08 LDA $08 [$00:0008] A:0000 X:0000 Y:339D P:envMxdiZc $86/AC82 9F 00 F9 7F STA $7FF900,x[$7F:F900] A:0004 X:0000 Y:339D P:envMxdizc $86/AC86 E8 INX A:0004 X:0000 Y:339D P:envMxdizc $86/AC87 86 0E STX $0E [$00:000E] A:0004 X:0001 Y:339D P:envMxdizc $86/AC89 7B TDC A:0004 X:0001 Y:339D P:envMxdizc $86/AC8A A5 9E LDA $9E [$00:009E] A:0000 X:0001 Y:339D P:envMxdiZc $86/AC8C AA TAX A:0000 X:0001 Y:339D P:envMxdiZc $86/AC8D A0 00 00 LDY #$0000 A:0000 X:0000 Y:339D P:envMxdiZc $86/AC90 B9 E1 E3 LDA $E3E1,y[$7E:E3E1] A:0000 X:0000 Y:0000 P:envMxdiZc $86/AC93 0A ASL A A:0001 X:0000 Y:0000 P:envMxdizc $86/AC94 7B TDC A:0002 X:0000 Y:0000 P:envMxdizc $86/AC95 2A ROL A A:0000 X:0000 Y:0000 P:envMxdiZc $86/AC96 C2 20 REP #$20 A:0000 X:0000 Y:0000 P:envMxdiZc $86/AC98 85 0C STA $0C [$00:000C] A:0000 X:0000 Y:0000 P:envmxdiZc $86/AC9A B9 E0 E3 LDA $E3E0,y[$7E:E3E0] A:0000 X:0000 Y:0000 P:envmxdiZc $86/AC9D 29 FF 7F AND #$7FFF A:01D4 X:0000 Y:0000 P:envmxdizc $86/ACA0 4A LSR A A:01D4 X:0000 Y:0000 P:envmxdizc $86/ACA1 85 04 STA $04 [$00:0004] A:00EA X:0000 Y:0000 P:envmxdizc $86/ACA3 E2 20 SEP #$20 A:00EA X:0000 Y:0000 P:envmxdizc $86/ACA5 A5 06 LDA $06 [$00:0006] A:00EA X:0000 Y:0000 P:envMxdizc $86/ACA7 C9 02 CMP #$02 A:0001 X:0000 Y:0000 P:envMxdizc $86/ACA9 D0 17 BNE $17 [$ACC2] A:0001 X:0000 Y:0000 P:eNvMxdizc
- code is missing here
$86/ACC2 C2 20 REP #$20 A:0001 X:0000 Y:0000 P:eNvMxdizc $86/ACC4 A5 04 LDA $04 [$00:0004] A:0001 X:0000 Y:0000 P:eNvmxdizc $86/ACC6 38 SEC A:00EA X:0000 Y:0000 P:envmxdizc $86/ACC7 E5 02 SBC $02 [$00:0002] A:00EA X:0000 Y:0000 P:envmxdizC $86/ACC9 85 00 STA $00 [$00:0000] A:0001 X:0000 Y:0000 P:envmxdizC $86/ACCB 89 1F 00 BIT #$001F A:0001 X:0000 Y:0000 P:envmxdizC $86/ACCE E2 20 SEP #$20 A:0001 X:0000 Y:0000 P:envmxdizC $86/ACD0 F0 09 BEQ $09 [$ACDB] A:0001 X:0000 Y:0000 P:envMxdizC $86/ACD2 0A ASL A A:0001 X:0000 Y:0000 P:envMxdizC $86/ACD3 A9 00 LDA #$00 A:0002 X:0000 Y:0000 P:envMxdizc $86/ACD5 90 0B BCC $0B [$ACE2] A:0000 X:0000 Y:0000 P:envMxdiZc
- code is missing here
$86/ACE2 9D E0 D2 STA $D2E0,x[$7E:D2E0] A:0000 X:0000 Y:0000 P:envMxdiZc $86/ACE5 DA PHX A:0000 X:0000 Y:0000 P:envMxdiZc $86/ACE6 A6 04 LDX $04 [$00:0004] A:0000 X:0000 Y:0000 P:envMxdiZc $86/ACE8 A5 0C LDA $0C [$00:000C] A:0000 X:00EA Y:0000 P:envMxdizc $86/ACEA F0 23 BEQ $23 [$AD0F] A:0000 X:00EA Y:0000 P:envMxdiZc
- code is missing here
$86/AD0F BF 00 C8 7F LDA $7FC800,x[$7F:C8EA] A:0000 X:00EA Y:0000 P:envMxdiZc $86/AD13 85 0A STA $0A [$00:000A] A:0003 X:00EA Y:0000 P:envMxdizc $86/AD15 A5 07 LDA $07 [$00:0007] A:0003 X:00EA Y:0000 P:envMxdizc $86/AD17 C9 02 CMP #$02 A:0000 X:00EA Y:0000 P:envMxdiZc $86/AD19 D0 07 BNE $07 [$AD22] A:0000 X:00EA Y:0000 P:eNvMxdizc
- code is missing here
$86/AD22 A5 00 LDA $00 [$00:0000] A:0000 X:00EA Y:0000 P:eNvMxdizc $86/AD24 89 3F BIT #$3F A:0001 X:00EA Y:0000 P:envMxdizc $86/AD26 F0 06 BEQ $06 [$AD2E] A:0001 X:00EA Y:0000 P:envMxdizc $86/AD28 29 03 AND #$03 A:0001 X:00EA Y:0000 P:envMxdizc $86/AD2A C9 02 CMP #$02 A:0001 X:00EA Y:0000 P:envMxdizc $86/AD2C D0 21 BNE $21 [$AD4F] A:0001 X:00EA Y:0000 P:eNvMxdizc
- code is missing here
$86/AD4F 20 9B AD JSR $AD9B [$86:AD9B] A:0001 X:00EA Y:0000 P:eNvMxdizc $86/AD52 FA PLX A:000D X:0001 Y:0000 P:envMxdizC $86/AD53 9D DF D2 STA $D2DF,x[$7E:D2DF] A:000D X:0000 Y:0000 P:envMxdiZC $86/AD56 DA PHX A:000D X:0000 Y:0000 P:envMxdiZC $86/AD57 A6 0E LDX $0E [$00:000E] A:000D X:0000 Y:0000 P:envMxdiZC $86/AD59 A5 0A LDA $0A [$00:000A] A:000D X:0001 Y:0000 P:envMxdizC $86/AD5B 9F 00 F9 7F STA $7FF900,x[$7F:F901] A:0003 X:0001 Y:0000 P:envMxdizC $86/AD5F E8 INX A:0003 X:0001 Y:0000 P:envMxdizC $86/AD60 86 0E STX $0E [$00:000E] A:0003 X:0002 Y:0000 P:envMxdizC $86/AD62 FA PLX A:0003 X:0002 Y:0000 P:envMxdizC $86/AD63 E8 INX A:0003 X:0000 Y:0000 P:envMxdiZC $86/AD64 E8 INX A:0003 X:0001 Y:0000 P:envMxdizC $86/AD65 C8 INY A:0003 X:0002 Y:0000 P:envMxdizC $86/AD66 C8 INY A:0003 X:0002 Y:0001 P:envMxdizC $86/AD67 CC EC 16 CPY $16EC [$7E:16EC] A:0003 X:0002 Y:0002 P:envMxdizC $86/AD6A B0 0F BCS $0F [$AD7B] A:0003 X:0002 Y:0002 P:envMxdiZC
- code is missing here
$86/AD7B A9 FF LDA #$FF A:0003 X:0002 Y:0002 P:envMxdiZC $86/AD7D 9D DF D2 STA $D2DF,x[$7E:D2E1] A:00FF X:0002 Y:0002 P:eNvMxdizC $86/AD80 E8 INX A:00FF X:0002 Y:0002 P:eNvMxdizC $86/AD81 8A TXA A:00FF X:0003 Y:0002 P:envMxdizC $86/AD82 85 9E STA $9E [$00:009E] A:0003 X:0003 Y:0002 P:envMxdizC $86/AD84 80 07 BRA $07 [$AD8D] A:0003 X:0003 Y:0002 P:envMxdizC
- code is missing here
$86/AD8D 7A PLY A:0003 X:0003 Y:0002 P:envMxdizC $86/AD8E 84 12 STY $12 [$00:0012] A:0003 X:0003 Y:0400 P:envMxdizC $86/AD90 7A PLY A:0003 X:0003 Y:0400 P:envMxdizC $86/AD91 84 10 STY $10 [$00:0010] A:0003 X:0003 Y:0108 P:envMxdizC $86/AD93 7A PLY A:0003 X:0003 Y:0108 P:envMxdizC $86/AD94 84 0C STY $0C [$00:000C] A:0003 X:0003 Y:01D4 P:envMxdizC $86/AD96 7A PLY A:0003 X:0003 Y:01D4 P:envMxdizC $86/AD97 FA PLX A:0003 X:0003 Y:339D P:envMxdizC $86/AD98 AB PLB A:0003 X:0004 Y:339D P:envMxdizC $86/AD99 68 PLA A:0003 X:0004 Y:339D P:eNvMxdizC $86/AD9A 6B RTL A:0000 X:0004 Y:339D P:envMxdiZC
$86/AD9B ?
$86/AD9B 7B TDC A:0001 X:00EA Y:0000 P:eNvMxdizc $86/AD9C A5 0A LDA $0A [$00:000A] A:0000 X:00EA Y:0000 P:envMxdiZc $86/AD9E 38 SEC A:0003 X:00EA Y:0000 P:envMxdizc $86/AD9F E5 08 SBC $08 [$00:0008] A:0003 X:00EA Y:0000 P:envMxdizC $86/ADA1 18 CLC A:00FF X:00EA Y:0000 P:eNvMxdizc $86/ADA2 69 04 ADC #$04 A:00FF X:00EA Y:0000 P:eNvMxdizc $86/ADA4 AA TAX A:0003 X:00EA Y:0000 P:envMxdizC $86/ADA5 BF AF AD 86 LDA $86ADAF,x[$86:ADB2] A:0003 X:0003 Y:0000 P:envMxdizC $86/ADA9 AA TAX A:0001 X:0003 Y:0000 P:envMxdizC $86/ADAA BF 66 D2 80 LDA $80D266,x[$80:D267] A:0001 X:0001 Y:0000 P:envMxdizC $86/ADAE 60 RTS A:000D X:0001 Y:0000 P:envMxdizC
$86/ADF5 ?
$86/ADF5 A5 9E LDA $9E [$00:009E] A:0000 X:000C Y:0002 P:envMxdiZc $86/ADF7 48 PHA A:0009 X:000C Y:0002 P:envMxdizc $86/ADF8 8B PHB A:0009 X:000C Y:0002 P:envMxdizc $86/ADF9 A9 7E LDA #$7E A:0009 X:000C Y:0002 P:envMxdizc $86/ADFB 48 PHA A:007E X:000C Y:0002 P:envMxdizc $86/ADFC AB PLB A:007E X:000C Y:0002 P:envMxdizc $86/ADFD A6 91 LDX $91 [$00:0091] A:007E X:000C Y:0002 P:envMxdizc $86/ADFF 7B TDC A:007E X:000C Y:0002 P:envMxdizc $86/AE00 BD D7 1C LDA $1CD7,x[$7E:1CE3] A:0000 X:000C Y:0002 P:envMxdiZc $86/AE03 EB XBA A:0001 X:000C Y:0002 P:envMxdizc $86/AE04 C2 20 REP #$20 A:0100 X:000C Y:0002 P:envMxdiZc $86/AE06 4A LSR A A:0100 X:000C Y:0002 P:envmxdiZc $86/AE07 4A LSR A A:0080 X:000C Y:0002 P:envmxdizc $86/AE08 4A LSR A A:0040 X:000C Y:0002 P:envmxdizc $86/AE09 E2 20 SEP #$20 A:0020 X:000C Y:0002 P:envmxdizc $86/AE0B 1D D6 1C ORA $1CD6,x[$7E:1CE2] A:0020 X:000C Y:0002 P:envMxdizc $86/AE0E AA TAX A:0023 X:000C Y:0002 P:envMxdizc $86/AE0F 86 02 STX $02 [$00:0002] A:0023 X:0023 Y:0002 P:envMxdizc $86/AE11 BF 00 C8 7F LDA $7FC800,x[$7F:C823] A:0023 X:0023 Y:0002 P:envMxdizc $86/AE15 85 08 STA $08 [$00:0008] A:000B X:0023 Y:0002 P:envMxdizc $86/AE17 C2 20 REP #$20 A:000B X:0023 Y:0002 P:envMxdizc $86/AE19 29 FF 00 AND #$00FF A:000B X:0023 Y:0002 P:envmxdizc $86/AE1C 0A ASL A A:000B X:0023 Y:0002 P:envmxdizc $86/AE1D 0A ASL A A:0016 X:0023 Y:0002 P:envmxdizc $86/AE1E 0A ASL A A:002C X:0023 Y:0002 P:envmxdizc $86/AE1F 0A ASL A A:0058 X:0023 Y:0002 P:envmxdizc $86/AE20 8D E0 DD STA $DDE0 [$7E:DDE0] A:00B0 X:0023 Y:0002 P:envmxdizc $86/AE23 9C E0 DB STZ $DBE0 [$7E:DBE0] A:00B0 X:0023 Y:0002 P:envmxdizc $86/AE26 E2 20 SEP #$20 A:00B0 X:0023 Y:0002 P:envmxdizc $86/AE28 A9 01 LDA #$01 A:00B0 X:0023 Y:0002 P:envMxdizc $86/AE2A 8D DF DB STA $DBDF [$7E:DBDF] A:0001 X:0023 Y:0002 P:envMxdizc $86/AE2D 7B TDC A:0001 X:0023 Y:0002 P:envMxdizc $86/AE2E A5 9E LDA $9E [$00:009E] A:0000 X:0023 Y:0002 P:envMxdiZc $86/AE30 AA TAX A:0009 X:0023 Y:0002 P:envMxdizc $86/AE31 A0 00 00 LDY #$0000 A:0009 X:0009 Y:0002 P:envMxdizc $86/AE34 AF 6E D2 80 LDA $80D26E[$80:D26E] A:0009 X:0009 Y:0000 P:envMxdiZc $86/AE38 9D DF D2 STA $D2DF,x[$7E:D2E8] A:0056 X:0009 Y:0000 P:envMxdizc $86/AE3B C2 20 REP #$20 A:0056 X:0009 Y:0000 P:envMxdizc $86/AE3D B9 E0 E3 LDA $E3E0,y[$7E:E3E0] A:0056 X:0009 Y:0000 P:envmxdizc $86/AE40 4A LSR A A:0086 X:0009 Y:0000 P:envmxdizc $86/AE41 85 04 STA $04 [$00:0004] A:0043 X:0009 Y:0000 P:envmxdizc $86/AE43 38 SEC A:0043 X:0009 Y:0000 P:envmxdizc $86/AE44 E5 02 SBC $02 [$00:0002] A:0043 X:0009 Y:0000 P:envmxdizC $86/AE46 85 00 STA $00 [$00:0000] A:0020 X:0009 Y:0000 P:envmxdizC $86/AE48 89 1F 00 BIT #$001F A:0020 X:0009 Y:0000 P:envmxdizC $86/AE4B E2 20 SEP #$20 A:0020 X:0009 Y:0000 P:envmxdiZC $86/AE4D F0 09 BEQ $09 [$AE58] A:0020 X:0009 Y:0000 P:envMxdiZC $86/AE4F 0A ASL A A:0001 X:0017 Y:000E P:envMxdizC $86/AE50 A9 00 LDA #$00 A:0002 X:0017 Y:000E P:envMxdizc $86/AE52 90 0B BCC $0B [$AE5F] A:0000 X:0017 Y:000E P:envMxdiZc $86/AE58 0A ASL A A:0020 X:0009 Y:0000 P:envMxdiZC $86/AE59 A9 01 LDA #$01 A:0040 X:0009 Y:0000 P:envMxdizc $86/AE5B 90 02 BCC $02 [$AE5F] A:0001 X:0009 Y:0000 P:envMxdizc $86/AE5F 9D E0 D2 STA $D2E0,x[$7E:D2E9] A:0001 X:0009 Y:0000 P:envMxdizc $86/AE62 20 04 B3 JSR $B304 [$86:B304] A:0001 X:0009 Y:0000 P:envMxdizc $86/AE65 E8 INX A:0080 X:0009 Y:0000 P:envMxdizc $86/AE66 E8 INX A:0080 X:000A Y:0000 P:envMxdizc $86/AE67 C8 INY A:0080 X:000B Y:0000 P:envMxdizc $86/AE68 C8 INY A:0080 X:000B Y:0001 P:envMxdizc $86/AE69 CC EC 16 CPY $16EC [$7E:16EC] A:0080 X:000B Y:0002 P:envMxdizc $86/AE6C B0 0F BCS $0F [$AE7D] A:0080 X:000B Y:0002 P:eNvMxdizc $86/AE6E C2 20 REP #$20 A:0080 X:000B Y:0002 P:eNvMxdizc $86/AE70 A5 04 LDA $04 [$00:0004] A:0080 X:000B Y:0002 P:eNvmxdizc $86/AE72 85 02 STA $02 [$00:0002] A:0043 X:000B Y:0002 P:envmxdizc $86/AE74 A5 0A LDA $0A [$00:000A] A:0043 X:000B Y:0002 P:envmxdizc $86/AE76 85 08 STA $08 [$00:0008] A:F90B X:000B Y:0002 P:eNvmxdizc $86/AE78 E2 20 SEP #$20 A:F90B X:000B Y:0002 P:eNvmxdizc $86/AE7A 4C 34 AE JMP $AE34 [$86:AE34] A:F90B X:000B Y:0002 P:eNvMxdizc $86/AE7D A9 FF LDA #$FF A:0480 X:001B Y:0012 P:envMxdiZC $86/AE7F 9D DF D2 STA $D2DF,x[$7E:D2FA] A:04FF X:001B Y:0012 P:eNvMxdizC $86/AE82 E8 INX A:04FF X:001B Y:0012 P:eNvMxdizC $86/AE83 8A TXA A:04FF X:001C Y:0012 P:envMxdizC $86/AE84 85 9E STA $9E [$00:009E] A:041C X:001C Y:0012 P:envMxdizC $86/AE86 7B TDC A:041C X:001C Y:0012 P:envMxdizC $86/AE87 AD DF DB LDA $DBDF [$7E:DBDF] A:0000 X:001C Y:0012 P:envMxdiZC $86/AE8A 3A DEC A A:0013 X:001C Y:0012 P:envMxdizC $86/AE8B C2 20 REP #$20 A:0012 X:001C Y:0012 P:envMxdizC $86/AE8D 0A ASL A A:0012 X:001C Y:0012 P:envmxdizC $86/AE8E 85 02 STA $02 [$00:0002] A:0024 X:001C Y:0012 P:envmxdizc $86/AE90 A2 00 00 LDX #$0000 A:0024 X:001C Y:0012 P:envmxdizc $86/AE93 86 00 STX $00 [$00:0000] A:0024 X:0000 Y:0012 P:envmxdiZc $86/AE95 A4 02 LDY $02 [$00:0002] A:0024 X:0000 Y:0012 P:envmxdiZc $86/AE97 98 TYA A:0024 X:0000 Y:0024 P:envmxdizc $86/AE98 3A DEC A A:0024 X:0000 Y:0024 P:envmxdizc $86/AE99 3A DEC A A:0023 X:0000 Y:0024 P:envmxdizc $86/AE9A C5 00 CMP $00 [$00:0000] A:0022 X:0000 Y:0024 P:envmxdizc $86/AE9C F0 08 BEQ $08 [$AEA6] A:0022 X:0000 Y:0024 P:envmxdizC $86/AE9E 20 50 B3 JSR $B350 [$86:B350] A:0022 X:0000 Y:0024 P:envmxdizC $86/AEA1 90 F5 BCC $F5 [$AE98] A:0022 X:0000 Y:0024 P:envmxdizC $86/AEA3 A8 TAY A:0022 X:0000 Y:0024 P:envmxdizC $86/AEA4 80 F2 BRA $F2 [$AE98] A:0022 X:0000 Y:0022 P:envmxdizC $86/AEA6 20 AE B3 JSR $B3AE [$86:B3AE] A:0000 X:0000 Y:000A P:envmxdiZC $86/AEA9 A6 00 LDX $00 [$00:0000] A:0050 X:001C Y:0026 P:envmxdizC $86/AEAB E8 INX A:0050 X:0000 Y:0026 P:envmxdiZC $86/AEAC E8 INX A:0050 X:0001 Y:0026 P:envmxdizC $86/AEAD 86 00 STX $00 [$00:0000] A:0050 X:0002 Y:0026 P:envmxdizC $86/AEAF E4 02 CPX $02 [$00:0002] A:0050 X:0002 Y:0026 P:envmxdizC $86/AEB1 D0 E2 BNE $E2 [$AE95] A:0050 X:0002 Y:0026 P:eNvmxdizc $86/AEB3 A5 00 LDA $00 [$00:0000] A:0050 X:0008 Y:000E P:envmxdiZC $86/AEB5 4A LSR A A:0008 X:0008 Y:000E P:envmxdizC $86/AEB6 1A INC A A:0004 X:0008 Y:000E P:envmxdizc $86/AEB7 E2 20 SEP #$20 A:0005 X:0008 Y:000E P:envmxdizc $86/AEB9 8D DF DB STA $DBDF [$7E:DBDF] A:0005 X:0008 Y:000E P:envMxdizc $86/AEBC 7B TDC A:0005 X:0008 Y:000E P:envMxdizc $86/AEBD AD DF DB LDA $DBDF [$7E:DBDF] A:0000 X:0008 Y:000E P:envMxdiZc $86/AEC0 3A DEC A A:0005 X:0008 Y:000E P:envMxdizc $86/AEC1 C2 20 REP #$20 A:0004 X:0008 Y:000E P:envMxdizc $86/AEC3 0A ASL A A:0004 X:0008 Y:000E P:envmxdizc $86/AEC4 A8 TAY A:0008 X:0008 Y:000E P:envmxdizc $86/AEC5 0A ASL A A:0008 X:0008 Y:0008 P:envmxdizc $86/AEC6 AA TAX A:0010 X:0008 Y:0008 P:envmxdizc $86/AEC7 B9 E0 DB LDA $DBE0,y[$7E:DBE8] A:0010 X:0010 Y:0008 P:envmxdizc $86/AECA 9D E2 DB STA $DBE2,x[$7E:DBF2] A:0480 X:0010 Y:0008 P:envmxdizc $86/AECD 9E E0 DB STZ $DBE0,x[$7E:DBF0] A:0480 X:0010 Y:0008 P:envmxdizc $86/AED0 B9 E0 DD LDA $DDE0,y[$7E:DDE8] A:0480 X:0010 Y:0008 P:envmxdizc $86/AED3 9D E2 DD STA $DDE2,x[$7E:DDF2] A:0050 X:0010 Y:0008 P:envmxdizc $86/AED6 9E E0 DD STZ $DDE0,x[$7E:DDF0] A:0050 X:0010 Y:0008 P:envmxdizc $86/AED9 CA DEX A:0050 X:0010 Y:0008 P:envmxdizc $86/AEDA CA DEX A:0050 X:000F Y:0008 P:envmxdizc $86/AEDB CA DEX A:0050 X:000E Y:0008 P:envmxdizc $86/AEDC CA DEX A:0050 X:000D Y:0008 P:envmxdizc $86/AEDD 88 DEY A:0050 X:000C Y:0008 P:envmxdizc $86/AEDE 88 DEY A:0050 X:000C Y:0007 P:envmxdizc $86/AEDF 10 E6 BPL $E6 [$AEC7] A:0050 X:000C Y:0006 P:envmxdizc $86/AEE1 E2 20 SEP #$20 A:00B0 X:FFFC Y:FFFE P:eNvmxdizc $86/AEE3 22 EA AE 86 JSL $86AEEA[$86:AEEA] A:00B0 X:FFFC Y:FFFE P:eNvMxdizc $86/AEE7 AB PLB A:0000 X:0000 Y:0001 P:envMxdizC $86/AEE8 68 PLA A:0000 X:0000 Y:0001 P:eNvMxdizC $86/AEE9 6B RTL A:0009 X:0000 Y:0001 P:envMxdizC
$86/AEEA ?
$86/AEEA 8B PHB A:00B0 X:FFFC Y:FFFE P:eNvMxdizc $86/AEEB A9 7E LDA #$7E A:00B0 X:FFFC Y:FFFE P:eNvMxdizc $86/AEED 48 PHA A:007E X:FFFC Y:FFFE P:envMxdizc $86/AEEE AB PLB A:007E X:FFFC Y:FFFE P:envMxdizc $86/AEEF C2 20 REP #$20 A:007E X:FFFC Y:FFFE P:envMxdizc $86/AEF1 AD DF DB LDA $DBDF [$7E:DBDF] A:007E X:FFFC Y:FFFE P:envmxdizc $86/AEF4 3A DEC A A:0005 X:FFFC Y:FFFE P:envmxdizc $86/AEF5 0A ASL A A:0004 X:FFFC Y:FFFE P:envmxdizc $86/AEF6 0A ASL A A:0008 X:FFFC Y:FFFE P:envmxdizc $86/AEF7 85 0E STA $0E [$00:000E] A:0010 X:FFFC Y:FFFE P:envmxdizc $86/AEF9 AA TAX A:0010 X:FFFC Y:FFFE P:envmxdizc $86/AEFA 9C E0 DF STZ $DFE0 [$7E:DFE0] A:0010 X:0010 Y:FFFE P:envmxdizc $86/AEFD 9C E2 DF STZ $DFE2 [$7E:DFE2] A:0010 X:0010 Y:FFFE P:envmxdizc $86/AF00 9E E0 DF STZ $DFE0,x[$7E:DFF0] A:0010 X:0010 Y:FFFE P:envmxdizc $86/AF03 9E E2 DF STZ $DFE2,x[$7E:DFF2] A:0010 X:0010 Y:FFFE P:envmxdizc $86/AF06 9C E8 E5 STZ $E5E8 [$7E:E5E8] A:0010 X:0010 Y:FFFE P:envmxdizc $86/AF09 9C EA E5 STZ $E5EA [$7E:E5EA] A:0010 X:0010 Y:FFFE P:envmxdizc $86/AF0C A2 00 00 LDX #$0000 A:0010 X:0010 Y:FFFE P:envmxdizc $86/AF0F 38 SEC A:0010 X:0000 Y:FFFE P:envmxdiZc $86/AF10 BD E4 DB LDA $DBE4,x[$7E:DBE4] A:0010 X:0000 Y:FFFE P:envmxdiZC $86/AF13 FD E0 DB SBC $DBE0,x[$7E:DBE0] A:0000 X:0000 Y:FFFE P:envmxdiZC $86/AF16 9D E0 E1 STA $E1E0,x[$7E:E1E0] A:0000 X:0000 Y:FFFE P:envmxdiZC $86/AF19 85 08 STA $08 [$00:0008] A:0000 X:0000 Y:FFFE P:envmxdiZC $86/AF1B BD E6 DB LDA $DBE6,x[$7E:DBE6] A:0000 X:0000 Y:FFFE P:envmxdiZC $86/AF1E FD E2 DB SBC $DBE2,x[$7E:DBE2] A:0140 X:0000 Y:FFFE P:envmxdizC $86/AF21 9D E2 E1 STA $E1E2,x[$7E:E1E2] A:0140 X:0000 Y:FFFE P:envmxdizC $86/AF24 85 0A STA $0A [$00:000A] A:0140 X:0000 Y:FFFE P:envmxdizC $86/AF26 64 00 STZ $00 [$00:0000] A:0140 X:0000 Y:FFFE P:envmxdizC $86/AF28 64 06 STZ $06 [$00:0006] A:0140 X:0000 Y:FFFE P:envmxdizC $86/AF2A 38 SEC A:0140 X:0000 Y:FFFE P:envmxdizC $86/AF2B BD E4 DD LDA $DDE4,x[$7E:DDE4] A:0140 X:0000 Y:FFFE P:envmxdizC $86/AF2E FD E0 DD SBC $DDE0,x[$7E:DDE0] A:0000 X:0000 Y:FFFE P:envmxdiZC $86/AF31 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:FFFE P:envmxdiZC $86/AF33 BD E6 DD LDA $DDE6,x[$7E:DDE6] A:0000 X:0000 Y:FFFE P:envmxdiZC $86/AF36 FD E2 DD SBC $DDE2,x[$7E:DDE2] A:00E0 X:0000 Y:FFFE P:envmxdizC $86/AF39 85 04 STA $04 [$00:0004] A:0030 X:0000 Y:FFFE P:envmxdizC $86/AF3B 10 02 BPL $02 [$AF3F] A:0030 X:0000 Y:FFFE P:envmxdizC $86/AF3D C6 06 DEC $06 [$00:0006] A:FFD0 X:0008 Y:0000 P:eNvmxdizc $86/AF3F 22 C6 A7 80 JSL $80A7C6[$80:A7C6] A:0030 X:0000 Y:FFFE P:envmxdizC $86/AF43 A5 10 LDA $10 [$00:0010] A:0000 X:0000 Y:0000 P:envmxdiZc $86/AF45 9D E4 E5 STA $E5E4,x[$7E:E5E4] A:2666 X:0000 Y:0000 P:envmxdizc $86/AF48 A5 12 LDA $12 [$00:0012] A:2666 X:0000 Y:0000 P:envmxdizc $86/AF4A 9D E6 E5 STA $E5E6,x[$7E:E5E6] A:0000 X:0000 Y:0000 P:envmxdiZc $86/AF4D E8 INX A:0000 X:0000 Y:0000 P:envmxdiZc $86/AF4E E8 INX A:0000 X:0001 Y:0000 P:envmxdizc $86/AF4F E8 INX A:0000 X:0002 Y:0000 P:envmxdizc $86/AF50 E8 INX A:0000 X:0003 Y:0000 P:envmxdizc $86/AF51 E4 0E CPX $0E [$00:000E] A:0000 X:0004 Y:0000 P:envmxdizc $86/AF53 90 BA BCC $BA [$AF0F] A:0000 X:0004 Y:0000 P:eNvmxdizc $86/AF55 38 SEC A:FFFF X:0010 Y:0001 P:envmxdiZC $86/AF56 AD E8 E5 LDA $E5E8 [$7E:E5E8] A:FFFF X:0010 Y:0001 P:envmxdiZC $86/AF59 ED E4 E5 SBC $E5E4 [$7E:E5E4] A:0000 X:0010 Y:0001 P:envmxdiZC $86/AF5C 8D E4 DF STA $DFE4 [$7E:DFE4] A:D99A X:0010 Y:0001 P:eNvmxdizc $86/AF5F AD EA E5 LDA $E5EA [$7E:E5EA] A:D99A X:0010 Y:0001 P:eNvmxdizc $86/AF62 ED E6 E5 SBC $E5E6 [$7E:E5E6] A:0000 X:0010 Y:0001 P:envmxdiZc $86/AF65 8D E6 DF STA $DFE6 [$7E:DFE6] A:FFFF X:0010 Y:0001 P:eNvmxdizc $86/AF68 38 SEC A:FFFF X:0010 Y:0001 P:eNvmxdizc $86/AF69 AD E8 DB LDA $DBE8 [$7E:DBE8] A:FFFF X:0010 Y:0001 P:eNvmxdizC $86/AF6C ED E0 DB SBC $DBE0 [$7E:DBE0] A:0000 X:0010 Y:0001 P:envmxdiZC $86/AF6F 8D E4 E5 STA $E5E4 [$7E:E5E4] A:0000 X:0010 Y:0001 P:envmxdiZC $86/AF72 AD EA DB LDA $DBEA [$7E:DBEA] A:0000 X:0010 Y:0001 P:envmxdiZC $86/AF75 ED E2 DB SBC $DBE2 [$7E:DBE2] A:0340 X:0010 Y:0001 P:envmxdizC $86/AF78 0E E4 E5 ASL $E5E4 [$7E:E5E4] A:0340 X:0010 Y:0001 P:envmxdizC $86/AF7B 2A ROL A A:0340 X:0010 Y:0001 P:envmxdiZc $86/AF7C 8D E6 E5 STA $E5E6 [$7E:E5E6] A:0680 X:0010 Y:0001 P:envmxdizc $86/AF7F A5 0E LDA $0E [$00:000E] A:0680 X:0010 Y:0001 P:envmxdizc $86/AF81 38 SEC A:0010 X:0010 Y:0001 P:envmxdizc $86/AF82 E9 04 00 SBC #$0004 A:0010 X:0010 Y:0001 P:envmxdizC $86/AF85 85 0E STA $0E [$00:000E] A:000C X:0010 Y:0001 P:envmxdizC $86/AF87 A2 04 00 LDX #$0004 A:000C X:0010 Y:0001 P:envmxdizC $86/AF8A 4C 16 B0 JMP $B016 [$86:B016] A:000C X:0004 Y:0001 P:envmxdizC $86/AF8D BD E0 E1 LDA $E1E0,x[$7E:E1E4] A:000C X:0004 Y:0001 P:eNvmxdizc $86/AF90 85 00 STA $00 [$00:0000] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AF92 BD E2 E1 LDA $E1E2,x[$7E:E1E6] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AF95 85 02 STA $02 [$00:0002] A:0200 X:0004 Y:0001 P:envmxdizc $86/AF97 BD E0 DF LDA $DFE0,x[$7E:DFE4] A:0200 X:0004 Y:0001 P:envmxdizc $86/AF9A 85 04 STA $04 [$00:0004] A:D99A X:0004 Y:0001 P:eNvmxdizc $86/AF9C BD E2 DF LDA $DFE2,x[$7E:DFE6] A:D99A X:0004 Y:0001 P:eNvmxdizc $86/AF9F 85 06 STA $06 [$00:0006] A:FFFF X:0004 Y:0001 P:eNvmxdizc $86/AFA1 BD E0 E5 LDA $E5E0,x[$7E:E5E4] A:FFFF X:0004 Y:0001 P:eNvmxdizc $86/AFA4 85 08 STA $08 [$00:0008] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AFA6 BD E2 E5 LDA $E5E2,x[$7E:E5E6] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AFA9 85 0A STA $0A [$00:000A] A:0680 X:0004 Y:0001 P:envmxdizc $86/AFAB 22 86 A8 80 JSL $80A886[$80:A886] A:0680 X:0004 Y:0001 P:envmxdizc $86/AFAF 38 SEC A:FFFF X:0004 Y:0001 P:eNvmxdizc $86/AFB0 BD E8 E5 LDA $E5E8,x[$7E:E5EC] A:FFFF X:0004 Y:0001 P:eNvmxdizC $86/AFB3 FD E4 E5 SBC $E5E4,x[$7E:E5E8] A:A000 X:0004 Y:0001 P:eNvmxdizC $86/AFB6 9D E4 DF STA $DFE4,x[$7E:DFE8] A:A000 X:0004 Y:0001 P:eNvmxdizC $86/AFB9 BD EA E5 LDA $E5EA,x[$7E:E5EE] A:A000 X:0004 Y:0001 P:eNvmxdizC $86/AFBC FD E6 E5 SBC $E5E6,x[$7E:E5EA] A:FFFF X:0004 Y:0001 P:eNvmxdizC $86/AFBF 9D E6 DF STA $DFE6,x[$7E:DFEA] A:FFFF X:0004 Y:0001 P:eNvmxdizC $86/AFC2 38 SEC A:FFFF X:0004 Y:0001 P:eNvmxdizC $86/AFC3 BD E4 DF LDA $DFE4,x[$7E:DFE8] A:FFFF X:0004 Y:0001 P:eNvmxdizC $86/AFC6 E5 10 SBC $10 [$00:0010] A:A000 X:0004 Y:0001 P:eNvmxdizC $86/AFC8 9D E4 DF STA $DFE4,x[$7E:DFE8] A:ABD0 X:0004 Y:0001 P:eNvmxdizc $86/AFCB BD E6 DF LDA $DFE6,x[$7E:DFEA] A:ABD0 X:0004 Y:0001 P:eNvmxdizc $86/AFCE E5 12 SBC $12 [$00:0012] A:FFFF X:0004 Y:0001 P:eNvmxdizc $86/AFD0 9D E6 DF STA $DFE6,x[$7E:DFEA] A:FFFF X:0004 Y:0001 P:eNvmxdizc $86/AFD3 BD E0 E1 LDA $E1E0,x[$7E:E1E4] A:FFFF X:0004 Y:0001 P:eNvmxdizc $86/AFD6 85 00 STA $00 [$00:0000] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AFD8 85 04 STA $04 [$00:0004] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AFDA BD E2 E1 LDA $E1E2,x[$7E:E1E6] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AFDD 85 02 STA $02 [$00:0002] A:0200 X:0004 Y:0001 P:envmxdizc $86/AFDF 85 06 STA $06 [$00:0006] A:0200 X:0004 Y:0001 P:envmxdizc $86/AFE1 BD E0 E5 LDA $E5E0,x[$7E:E5E4] A:0200 X:0004 Y:0001 P:envmxdizc $86/AFE4 85 08 STA $08 [$00:0008] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AFE6 BD E2 E5 LDA $E5E2,x[$7E:E5E6] A:0000 X:0004 Y:0001 P:envmxdiZc $86/AFE9 85 0A STA $0A [$00:000A] A:0680 X:0004 Y:0001 P:envmxdizc $86/AFEB 22 86 A8 80 JSL $80A886[$80:A886] A:0680 X:0004 Y:0001 P:envmxdizc $86/AFEF 38 SEC A:0000 X:0004 Y:0000 P:envmxdiZc $86/AFF0 BD E8 DB LDA $DBE8,x[$7E:DBEC] A:0000 X:0004 Y:0000 P:envmxdiZC $86/AFF3 FD E0 DB SBC $DBE0,x[$7E:DBE4] A:0000 X:0004 Y:0000 P:envmxdiZC $86/AFF6 85 00 STA $00 [$00:0000] A:0000 X:0004 Y:0000 P:envmxdiZC $86/AFF8 BD EA DB LDA $DBEA,x[$7E:DBEE] A:0000 X:0004 Y:0000 P:envmxdiZC $86/AFFB FD E2 DB SBC $DBE2,x[$7E:DBE6] A:03C0 X:0004 Y:0000 P:envmxdizC $86/AFFE 06 00 ASL $00 [$00:0000] A:0280 X:0004 Y:0000 P:envmxdizC $86/B000 2A ROL A A:0280 X:0004 Y:0000 P:envmxdiZc $86/B001 85 02 STA $02 [$00:0002] A:0500 X:0004 Y:0000 P:envmxdizc $86/B003 38 SEC A:0500 X:0004 Y:0000 P:envmxdizc $86/B004 A5 00 LDA $00 [$00:0000] A:0500 X:0004 Y:0000 P:envmxdizC $86/B006 E5 10 SBC $10 [$00:0010] A:0000 X:0004 Y:0000 P:envmxdiZC $86/B008 9D E4 E5 STA $E5E4,x[$7E:E5E8] A:7628 X:0004 Y:0000 P:envmxdizc $86/B00B A5 02 LDA $02 [$00:0002] A:7628 X:0004 Y:0000 P:envmxdizc $86/B00D E5 12 SBC $12 [$00:0012] A:0500 X:0004 Y:0000 P:envmxdizc $86/B00F 9D E6 E5 STA $E5E6,x[$7E:E5EA] A:0462 X:0004 Y:0000 P:envmxdizC $86/B012 E8 INX A:0462 X:0004 Y:0000 P:envmxdizC $86/B013 E8 INX A:0462 X:0005 Y:0000 P:envmxdizC $86/B014 E8 INX A:0462 X:0006 Y:0000 P:envmxdizC $86/B015 E8 INX A:0462 X:0007 Y:0000 P:envmxdizC $86/B016 E4 0E CPX $0E [$00:000E] A:000C X:0004 Y:0001 P:envmxdizC $86/B018 B0 03 BCS $03 [$B01D] A:000C X:0004 Y:0001 P:eNvmxdizc $86/B01A 4C 8D AF JMP $AF8D [$86:AF8D] A:000C X:0004 Y:0001 P:eNvmxdizc $86/B01D A6 0E LDX $0E [$00:000E] A:0271 X:000C Y:0000 P:envmxdiZC $86/B01F BD E0 E1 LDA $E1E0,x[$7E:E1EC] A:0271 X:000C Y:0000 P:envmxdizC $86/B022 85 00 STA $00 [$00:0000] A:0000 X:000C Y:0000 P:envmxdiZC $86/B024 BD E2 E1 LDA $E1E2,x[$7E:E1EE] A:0000 X:000C Y:0000 P:envmxdiZC $86/B027 85 02 STA $02 [$00:0002] A:00C0 X:000C Y:0000 P:envmxdizC $86/B029 BD E4 DF LDA $DFE4,x[$7E:DFF0] A:00C0 X:000C Y:0000 P:envmxdizC $86/B02C 85 04 STA $04 [$00:0004] A:0000 X:000C Y:0000 P:envmxdiZC $86/B02E BD E6 DF LDA $DFE6,x[$7E:DFF2] A:0000 X:000C Y:0000 P:envmxdiZC $86/B031 85 06 STA $06 [$00:0006] A:0000 X:000C Y:0000 P:envmxdiZC $86/B033 22 87 A7 80 JSL $80A787[$80:A787] A:0000 X:000C Y:0000 P:envmxdiZC $86/B037 38 SEC A:0000 X:000C Y:0000 P:envmxdiZc $86/B038 BD E0 DF LDA $DFE0,x[$7E:DFEC] A:0000 X:000C Y:0000 P:envmxdiZC $86/B03B E5 06 SBC $06 [$00:0006] A:E999 X:000C Y:0000 P:eNvmxdizC $86/B03D 9D E0 DF STA $DFE0,x[$7E:DFEC] A:E999 X:000C Y:0000 P:eNvmxdizC $86/B040 BD E2 DF LDA $DFE2,x[$7E:DFEE] A:E999 X:000C Y:0000 P:eNvmxdizC $86/B043 E5 08 SBC $08 [$00:0008] A:FFFF X:000C Y:0000 P:eNvmxdizC $86/B045 9D E2 DF STA $DFE2,x[$7E:DFEE] A:FFFF X:000C Y:0000 P:eNvmxdizC $86/B048 8A TXA A:FFFF X:000C Y:0000 P:eNvmxdizC $86/B049 F0 58 BEQ $58 [$B0A3] A:000C X:000C Y:0000 P:envmxdizC $86/B04B BD E0 E1 LDA $E1E0,x[$7E:E1EC] A:000C X:000C Y:0000 P:envmxdizC $86/B04E 85 00 STA $00 [$00:0000] A:0000 X:000C Y:0000 P:envmxdiZC $86/B050 BD E2 E1 LDA $E1E2,x[$7E:E1EE] A:0000 X:000C Y:0000 P:envmxdiZC $86/B053 85 02 STA $02 [$00:0002] A:00C0 X:000C Y:0000 P:envmxdizC $86/B055 BD E4 DF LDA $DFE4,x[$7E:DFF0] A:00C0 X:000C Y:0000 P:envmxdizC $86/B058 85 04 STA $04 [$00:0004] A:0000 X:000C Y:0000 P:envmxdiZC $86/B05A BD E6 DF LDA $DFE6,x[$7E:DFF2] A:0000 X:000C Y:0000 P:envmxdiZC $86/B05D 85 06 STA $06 [$00:0006] A:0000 X:000C Y:0000 P:envmxdiZC $86/B05F 22 87 A7 80 JSL $80A787[$80:A787] A:0000 X:000C Y:0000 P:envmxdiZC $86/B063 A0 00 00 LDY #$0000 A:0000 X:000C Y:0000 P:envmxdiZc $86/B066 BD E2 DF LDA $DFE2,x[$7E:DFEE] A:0000 X:000C Y:0000 P:envmxdiZc $86/B069 10 01 BPL $01 [$B06C] A:FFFF X:000C Y:0000 P:eNvmxdizc $86/B06B 88 DEY A:FFFF X:000C Y:0000 P:eNvmxdizc $86/B06C 38 SEC A:FFFF X:000C Y:FFFF P:eNvmxdizc $86/B06D 7B TDC A:FFFF X:000C Y:FFFF P:eNvmxdizC $86/B06E E5 04 SBC $04 [$00:0004] A:0000 X:000C Y:FFFF P:envmxdiZC $86/B070 85 00 STA $00 [$00:0000] A:0000 X:000C Y:FFFF P:envmxdiZC $86/B072 BD E0 DF LDA $DFE0,x[$7E:DFEC] A:0000 X:000C Y:FFFF P:envmxdiZC $86/B075 E5 06 SBC $06 [$00:0006] A:E999 X:000C Y:FFFF P:eNvmxdizC $86/B077 85 02 STA $02 [$00:0002] A:E999 X:000C Y:FFFF P:eNvmxdizC $86/B079 BD E2 DF LDA $DFE2,x[$7E:DFEE] A:E999 X:000C Y:FFFF P:eNvmxdizC $86/B07C E5 08 SBC $08 [$00:0008] A:FFFF X:000C Y:FFFF P:eNvmxdizC $86/B07E 85 04 STA $04 [$00:0004] A:FFFF X:000C Y:FFFF P:eNvmxdizC $86/B080 98 TYA A:FFFF X:000C Y:FFFF P:eNvmxdizC $86/B081 E5 0A SBC $0A [$00:000A] A:FFFF X:000C Y:FFFF P:eNvmxdizC $86/B083 85 06 STA $06 [$00:0006] A:FFFF X:000C Y:FFFF P:eNvmxdizC $86/B085 BD E0 E5 LDA $E5E0,x[$7E:E5EC] A:FFFF X:000C Y:FFFF P:eNvmxdizC $86/B088 85 08 STA $08 [$00:0008] A:674D X:000C Y:FFFF P:envmxdizC $86/B08A BD E2 E5 LDA $E5E2,x[$7E:E5EE] A:674D X:000C Y:FFFF P:envmxdizC $86/B08D 85 0A STA $0A [$00:000A] A:0271 X:000C Y:FFFF P:envmxdizC $86/B08F 22 C6 A7 80 JSL $80A7C6[$80:A7C6] A:0271 X:000C Y:FFFF P:envmxdizC $86/B093 A5 10 LDA $10 [$00:0010] A:FFFF X:000C Y:0001 P:eNvmxdizc $86/B095 9D E0 DF STA $DFE0,x[$7E:DFEC] A:FFF7 X:000C Y:0001 P:eNvmxdizc $86/B098 A5 12 LDA $12 [$00:0012] A:FFF7 X:000C Y:0001 P:eNvmxdizc $86/B09A 9D E2 DF STA $DFE2,x[$7E:DFEE] A:FFFF X:000C Y:0001 P:eNvmxdizc $86/B09D CA DEX A:FFFF X:000C Y:0001 P:eNvmxdizc $86/B09E CA DEX A:FFFF X:000B Y:0001 P:envmxdizc $86/B09F CA DEX A:FFFF X:000A Y:0001 P:envmxdizc $86/B0A0 CA DEX A:FFFF X:0009 Y:0001 P:envmxdizc $86/B0A1 10 A5 BPL $A5 [$B048] A:FFFF X:0008 Y:0001 P:envmxdizc $86/B0A3 E2 20 SEP #$20 A:0000 X:0000 Y:0001 P:envmxdiZC $86/B0A5 AB PLB A:0000 X:0000 Y:0001 P:envMxdiZC $86/B0A6 6B RTL A:0000 X:0000 Y:0001 P:envMxdizC
$86/B0A7 ?
$86/B0A7 8B PHB ; Buffer Data Bank on Stack $86/B0A8 A9 7E LDA #$7E ; Set Data Bank to $7E $86/B0AA 48 PHA $86/B0AB AB PLB $86/B0AC 86 0E STX $0E [$00:000E] A:007E X:0004 Y:0001 P:envMxdizc $86/B0AE 7B TDC A:007E X:0004 Y:0001 P:envMxdizc $86/B0AF AD DF DB LDA $DBDF [$7E:DBDF] A:0000 X:0004 Y:0001 P:envMxdiZc $86/B0B2 3A DEC A A:0005 X:0004 Y:0001 P:envMxdizc $86/B0B3 C2 20 REP #$20 A:0004 X:0004 Y:0001 P:envMxdizc $86/B0B5 0A ASL A A:0004 X:0004 Y:0001 P:envmxdizc $86/B0B6 0A ASL A A:0008 X:0004 Y:0001 P:envmxdizc $86/B0B7 85 00 STA $00 [$00:0000] A:0010 X:0004 Y:0001 P:envmxdizc $86/B0B9 A2 00 00 LDX #$0000 A:0010 X:0004 Y:0001 P:envmxdizc $86/B0BC E4 00 CPX $00 [$00:0000] A:0010 X:0000 Y:0001 P:envmxdiZc $86/B0BE B0 1B BCS $1B [$B0DB] A:0010 X:0000 Y:0001 P:eNvmxdizc $86/B0C0 8A TXA A:0010 X:0000 Y:0001 P:eNvmxdizc $86/B0C1 18 CLC A:0000 X:0000 Y:0001 P:envmxdiZc $86/B0C2 65 00 ADC $00 [$00:0000] A:0000 X:0000 Y:0001 P:envmxdiZc $86/B0C4 4A LSR A A:0010 X:0000 Y:0001 P:envmxdizc $86/B0C5 29 FC FF AND #$FFFC A:0008 X:0000 Y:0001 P:envmxdizc $86/B0C8 A8 TAY A:0008 X:0000 Y:0001 P:envmxdizc $86/B0C9 B9 E2 DB LDA $DBE2,y[$7E:DBEA] A:0008 X:0000 Y:0008 P:envmxdizc $86/B0CC C5 0E CMP $0E [$00:000E] A:0340 X:0000 Y:0008 P:envmxdizc $86/B0CE B0 07 BCS $07 [$B0D7] A:0340 X:0000 Y:0008 P:envmxdizC $86/B0D0 98 TYA A:0000 X:0000 Y:0000 P:eNvmxdizc $86/B0D1 69 04 00 ADC #$0004 A:0000 X:0000 Y:0000 P:envmxdiZc $86/B0D4 AA TAX A:0004 X:0000 Y:0000 P:envmxdizc $86/B0D5 80 02 BRA $02 [$B0D9] A:0004 X:0004 Y:0000 P:envmxdizc $86/B0D7 84 00 STY $00 [$00:0000] A:0340 X:0000 Y:0008 P:envmxdizC $86/B0D9 80 E1 BRA $E1 [$B0BC] A:0340 X:0000 Y:0008 P:envmxdizC $86/B0DB 8A TXA A:0004 X:0004 Y:0000 P:envmxdiZC $86/B0DC F0 05 BEQ $05 [$B0E3] A:0004 X:0004 Y:0000 P:envmxdizC $86/B0DE 38 SEC A:0004 X:0004 Y:0000 P:envmxdizC $86/B0DF E9 04 00 SBC #$0004 A:0004 X:0004 Y:0000 P:envmxdizC $86/B0E2 AA TAX A:0000 X:0004 Y:0000 P:envmxdiZC $86/B0E3 38 SEC A:0000 X:0000 Y:0000 P:envmxdiZC $86/B0E4 BD E6 DB LDA $DBE6,x[$7E:DBE6] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B0E7 FD E2 DB SBC $DBE2,x[$7E:DBE2] A:0140 X:0000 Y:0000 P:envmxdizC $86/B0EA 85 20 STA $20 [$00:0020] A:0140 X:0000 Y:0000 P:envmxdizC $86/B0EC 38 SEC A:0140 X:0000 Y:0000 P:envmxdizC $86/B0ED A5 0E LDA $0E [$00:000E] A:0140 X:0000 Y:0000 P:envmxdizC $86/B0EF FD E2 DB SBC $DBE2,x[$7E:DBE2] A:0004 X:0000 Y:0000 P:envmxdizC $86/B0F2 85 22 STA $22 [$00:0022] A:0004 X:0000 Y:0000 P:envmxdizC $86/B0F4 38 SEC A:0004 X:0000 Y:0000 P:envmxdizC $86/B0F5 BD E4 DF LDA $DFE4,x[$7E:DFE4] A:0004 X:0000 Y:0000 P:envmxdizC $86/B0F8 FD E0 DF SBC $DFE0,x[$7E:DFE0] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B0FB 85 00 STA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B0FD BD E6 DF LDA $DFE6,x[$7E:DFE6] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B100 FD E2 DF SBC $DFE2,x[$7E:DFE2] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B103 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B105 64 04 STZ $04 [$00:0004] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B107 A5 22 LDA $22 [$00:0022] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B109 85 06 STA $06 [$00:0006] A:0004 X:0000 Y:0000 P:envmxdizC $86/B10B 64 08 STZ $08 [$00:0008] A:0004 X:0000 Y:0000 P:envmxdizC $86/B10D A5 20 LDA $20 [$00:0020] A:0004 X:0000 Y:0000 P:envmxdizC $86/B10F 85 0A STA $0A [$00:000A] A:0140 X:0000 Y:0000 P:envmxdizC $86/B111 22 86 A8 80 JSL $80A886[$80:A886] A:0140 X:0000 Y:0000 P:envmxdizC $86/B115 BD E0 DF LDA $DFE0,x[$7E:DFE0] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B118 85 00 STA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B11A BD E2 DF LDA $DFE2,x[$7E:DFE2] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B11D 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B11F A9 03 00 LDA #$0003 A:0000 X:0000 Y:0000 P:envmxdiZc $86/B122 85 04 STA $04 [$00:0004] A:0003 X:0000 Y:0000 P:envmxdizc $86/B124 64 06 STZ $06 [$00:0006] A:0003 X:0000 Y:0000 P:envmxdizc $86/B126 22 87 A7 80 JSL $80A787[$80:A787] A:0003 X:0000 Y:0000 P:envmxdizc $86/B12A 18 CLC A:0000 X:0000 Y:0000 P:envmxdiZc $86/B12B A5 04 LDA $04 [$00:0004] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B12D 65 10 ADC $10 [$00:0010] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B12F 85 00 STA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B131 A5 06 LDA $06 [$00:0006] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B133 65 12 ADC $12 [$00:0012] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B135 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B137 A5 22 LDA $22 [$00:0022] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B139 85 04 STA $04 [$00:0004] A:0004 X:0000 Y:0000 P:envmxdizc $86/B13B 64 06 STZ $06 [$00:0006] A:0004 X:0000 Y:0000 P:envmxdizc $86/B13D 22 87 A7 80 JSL $80A787[$80:A787] A:0004 X:0000 Y:0000 P:envmxdizc $86/B141 D4 04 PEI ($04) [$0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B143 D4 06 PEI ($06) [$0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B145 BD E0 DF LDA $DFE0,x[$7E:DFE0] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B148 0A ASL A A:0000 X:0000 Y:0000 P:envmxdiZc $86/B149 85 00 STA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B14B BD E2 DF LDA $DFE2,x[$7E:DFE2] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B14E 2A ROL A A:0000 X:0000 Y:0000 P:envmxdiZc $86/B14F 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B151 18 CLC A:0000 X:0000 Y:0000 P:envmxdiZc $86/B152 BD E4 DF LDA $DFE4,x[$7E:DFE4] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B155 65 00 ADC $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B157 85 00 STA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B159 BD E6 DF LDA $DFE6,x[$7E:DFE6] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B15C 65 02 ADC $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B15E 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B160 A5 20 LDA $20 [$00:0020] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B162 85 04 STA $04 [$00:0004] A:0140 X:0000 Y:0000 P:envmxdizc $86/B164 64 06 STZ $06 [$00:0006] A:0140 X:0000 Y:0000 P:envmxdizc $86/B166 22 87 A7 80 JSL $80A787[$80:A787] A:0140 X:0000 Y:0000 P:envmxdizc $86/B16A D4 04 PEI ($04) [$0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B16C D4 06 PEI ($06) [$0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B16E 64 00 STZ $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B170 38 SEC A:0000 X:0000 Y:0000 P:envmxdiZc $86/B171 BD E6 DD LDA $DDE6,x[$7E:DDE6] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B174 FD E2 DD SBC $DDE2,x[$7E:DDE2] A:00E0 X:0000 Y:0000 P:envmxdizC $86/B177 85 02 STA $02 [$00:0002] A:0030 X:0000 Y:0000 P:envmxdizC $86/B179 A5 20 LDA $20 [$00:0020] A:0030 X:0000 Y:0000 P:envmxdizC $86/B17B 85 08 STA $08 [$00:0008] A:0140 X:0000 Y:0000 P:envmxdizC $86/B17D 22 0F A8 80 JSL $80A80F[$80:A80F] A:0140 X:0000 Y:0000 P:envmxdizC $86/B181 64 08 STZ $08 [$00:0008] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B183 A5 06 LDA $06 [$00:0006] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B185 10 02 BPL $02 [$B189] A:0000 X:0000 Y:0000 P:envmxdiZc
- code is missing here
$86/B189 68 PLA A:0000 X:0000 Y:0000 P:envmxdiZc $86/B18A 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B18C 68 PLA A:0000 X:0000 Y:0000 P:envmxdiZc $86/B18D 85 00 STA $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B18F 38 SEC A:0000 X:0000 Y:0000 P:envmxdiZc $86/B190 A5 04 LDA $04 [$00:0004] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B192 E5 00 SBC $00 [$00:0000] A:2666 X:0000 Y:0000 P:envmxdizC $86/B194 85 00 STA $00 [$00:0000] A:2666 X:0000 Y:0000 P:envmxdizC $86/B196 A5 06 LDA $06 [$00:0006] A:2666 X:0000 Y:0000 P:envmxdizC $86/B198 E5 02 SBC $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B19A 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZC $86/B19C 7A PLY A:0000 X:0000 Y:0000 P:envmxdiZC $86/B19D 68 PLA A:0000 X:0000 Y:0000 P:envmxdiZC $86/B19E 18 CLC A:0000 X:0000 Y:0000 P:envmxdiZC $86/B19F 65 00 ADC $00 [$00:0000] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B1A1 85 00 STA $00 [$00:0000] A:2666 X:0000 Y:0000 P:envmxdizc $86/B1A3 98 TYA A:2666 X:0000 Y:0000 P:envmxdizc $86/B1A4 65 02 ADC $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B1A6 85 02 STA $02 [$00:0002] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B1A8 A5 22 LDA $22 [$00:0022] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B1AA 85 04 STA $04 [$00:0004] A:0004 X:0000 Y:0000 P:envmxdizc $86/B1AC 64 06 STZ $06 [$00:0006] A:0004 X:0000 Y:0000 P:envmxdizc $86/B1AE 22 87 A7 80 JSL $80A787[$80:A787] A:0004 X:0000 Y:0000 P:envmxdizc $86/B1B2 18 CLC A:0000 X:0000 Y:0000 P:envmxdiZc $86/B1B3 BD E2 DD LDA $DDE2,x[$7E:DDE2] A:0000 X:0000 Y:0000 P:envmxdiZc $86/B1B6 65 06 ADC $06 [$00:0006] A:00B0 X:0000 Y:0000 P:envmxdizc $86/B1B8 AA TAX A:00B0 X:0000 Y:0000 P:envmxdizc $86/B1B9 E2 20 SEP #$20 A:00B0 X:00B0 Y:0000 P:envmxdizc $86/B1BB AB PLB A:00B0 X:00B0 Y:0000 P:envMxdizc $86/B1BC 6B RTL A:00B0 X:00B0 Y:0000 P:eNvMxdizc
$86/B304 ?
$86/B304 DA PHX ; Buffer X on Stack $86/B305 A6 91 LDX $91 [$00:0091] A:0001 X:0009 Y:0000 P:envMxdizc $86/B307 BD 2E 1A LDA $1A2E,x[$7E:1A3A] A:0001 X:000C Y:0000 P:envMxdizc $86/B30A A6 04 LDX $04 [$00:0004] A:0002 X:000C Y:0000 P:envMxdizc $86/B30C 20 15 A8 JSR $A815 [$86:A815] A:0002 X:0043 Y:0000 P:envMxdizc $86/B30F 85 0A STA $0A [$00:000A] A:000B X:0043 Y:0000 P:envMxdiZC $86/B311 7B TDC A:000B X:0043 Y:0000 P:envMxdiZC $86/B312 AD DF DB LDA $DBDF [$7E:DBDF] A:0000 X:0043 Y:0000 P:envMxdiZC $86/B315 0A ASL A A:0001 X:0043 Y:0000 P:envMxdizC $86/B316 AA TAX A:0002 X:0043 Y:0000 P:envMxdizc $86/B317 7B TDC A:0002 X:0002 Y:0000 P:envMxdizc $86/B318 A5 0A LDA $0A [$00:000A] A:0000 X:0002 Y:0000 P:envMxdiZc $86/B31A C5 08 CMP $08 [$00:0008] A:000B X:0002 Y:0000 P:envMxdizc $86/B31C B0 02 BCS $02 [$B320] A:000B X:0002 Y:0000 P:envMxdiZC $86/B31E A5 08 LDA $08 [$00:0008] A:000B X:001A Y:000C P:eNvMxdizc $86/B320 C2 20 REP #$20 A:000B X:0002 Y:0000 P:envMxdiZC $86/B322 0A ASL A A:000B X:0002 Y:0000 P:envmxdiZC $86/B323 0A ASL A A:0016 X:0002 Y:0000 P:envmxdizc $86/B324 0A ASL A A:002C X:0002 Y:0000 P:envmxdizc $86/B325 0A ASL A A:0058 X:0002 Y:0000 P:envmxdizc $86/B326 9D E0 DD STA $DDE0,x[$7E:DDE2] A:00B0 X:0002 Y:0000 P:envmxdizc $86/B329 A5 0A LDA $0A [$00:000A] A:00B0 X:0002 Y:0000 P:envmxdizc $86/B32B 29 FF 00 AND #$00FF A:F90B X:0002 Y:0000 P:eNvmxdizc $86/B32E 0A ASL A A:000B X:0002 Y:0000 P:envmxdizc $86/B32F 0A ASL A A:0016 X:0002 Y:0000 P:envmxdizc $86/B330 0A ASL A A:002C X:0002 Y:0000 P:envmxdizc $86/B331 0A ASL A A:0058 X:0002 Y:0000 P:envmxdizc $86/B332 9D E2 DD STA $DDE2,x[$7E:DDE4] A:00B0 X:0002 Y:0000 P:envmxdizc $86/B335 BD DE DB LDA $DBDE,x[$7E:DBE0] A:00B0 X:0002 Y:0000 P:envmxdizc $86/B338 18 CLC A:0000 X:0002 Y:0000 P:envmxdiZc $86/B339 69 40 00 ADC #$0040 A:0000 X:0002 Y:0000 P:envmxdiZc $86/B33C 9D E0 DB STA $DBE0,x[$7E:DBE2] A:0040 X:0002 Y:0000 P:envmxdizc $86/B33F 18 CLC A:0040 X:0002 Y:0000 P:envmxdizc $86/B340 69 40 00 ADC #$0040 A:0040 X:0002 Y:0000 P:envmxdizc $86/B343 9D E2 DB STA $DBE2,x[$7E:DBE4] A:0080 X:0002 Y:0000 P:envmxdizc $86/B346 E2 20 SEP #$20 A:0080 X:0002 Y:0000 P:envmxdizc $86/B348 EE DF DB INC $DBDF [$7E:DBDF] A:0080 X:0002 Y:0000 P:envMxdizc $86/B34B EE DF DB INC $DBDF [$7E:DBDF] A:0080 X:0002 Y:0000 P:envMxdizc $86/B34E FA PLX ; Restore X from Stack $86/B34F 60 RTS
$86/B350 ?
$86/B350 48 PHA ; Buffer A, X and Y on Stack $86/B351 DA PHX $86/B352 5A PHY $86/B353 D4 00 PEI ($00) ; Buffer $00-$03 on Stack $86/B355 D4 02 PEI ($02) $86/B357 48 PHA A:0022 X:0000 Y:0024 P:envmxdizC $86/B358 64 0A STZ $0A [$00:000A] A:0022 X:0000 Y:0024 P:envmxdizC $86/B35A BD E0 DD LDA $DDE0,x[$7E:DDE0] A:0022 X:0000 Y:0024 P:envmxdizC $86/B35D D9 E0 DD CMP $DDE0,y[$7E:DE04] A:00B0 X:0000 Y:0024 P:envmxdizC $86/B360 26 0A ROL $0A [$00:000A] A:00B0 X:0000 Y:0024 P:envmxdizC $86/B362 38 SEC A:00B0 X:0000 Y:0024 P:envmxdizc $86/B363 B9 E0 DD LDA $DDE0,y[$7E:DE04] A:00B0 X:0000 Y:0024 P:envmxdizC $86/B366 FD E0 DD SBC $DDE0,x[$7E:DDE0] A:0050 X:0000 Y:0024 P:envmxdizC $86/B369 10 04 BPL $04 [$B36F] A:FFA0 X:0000 Y:0024 P:eNvmxdizc $86/B36B 49 FF FF EOR #$FFFF A:FFA0 X:0000 Y:0024 P:eNvmxdizc $86/B36E 1A INC A A:005F X:0000 Y:0024 P:envmxdizc $86/B36F 85 00 STA $00 [$00:0000] A:0060 X:0000 Y:0024 P:envmxdizc $86/B371 38 SEC A:0060 X:0000 Y:0024 P:envmxdizc $86/B372 B9 E0 DB LDA $DBE0,y[$7E:DC04] A:0060 X:0000 Y:0024 P:envmxdizC $86/B375 FD E0 DB SBC $DBE0,x[$7E:DBE0] A:0480 X:0000 Y:0024 P:envmxdizC $86/B378 85 08 STA $08 [$00:0008] A:0480 X:0000 Y:0024 P:envmxdizC $86/B37A 7A PLY A:0480 X:0000 Y:0024 P:envmxdizC $86/B37B 38 SEC A:0480 X:0000 Y:0022 P:envmxdizC $86/B37C B9 E0 DB LDA $DBE0,y[$7E:DC02] A:0480 X:0000 Y:0022 P:envmxdizC $86/B37F FD E0 DB SBC $DBE0,x[$7E:DBE0] A:0440 X:0000 Y:0022 P:envmxdizC $86/B382 85 04 STA $04 [$00:0004] A:0440 X:0000 Y:0022 P:envmxdizC $86/B384 22 44 A5 80 JSL $80A544[$80:A544] A:0440 X:0000 Y:0022 P:envmxdizC $86/B388 22 06 A6 80 JSL $80A606[$80:A606] A:0001 X:0000 Y:0022 P:envmxdizc $86/B38C BD E0 DD LDA $DDE0,x[$7E:DDE0] A:0300 X:0000 Y:0022 P:envmxdizC $86/B38F 46 0A LSR $0A [$00:000A] A:00B0 X:0000 Y:0022 P:envmxdizC $86/B391 B0 05 BCS $05 [$B398] A:00B0 X:0000 Y:0022 P:envmxdiZC $86/B393 18 CLC A:00B0 X:0000 Y:0018 P:envmxdiZc $86/B394 65 04 ADC $04 [$00:0004] A:00B0 X:0000 Y:0018 P:envmxdiZc $86/B396 80 03 BRA $03 [$B39B] A:00DC X:0000 Y:0018 P:envmxdizc $86/B398 38 SEC A:00B0 X:0000 Y:0022 P:envmxdiZC $86/B399 E5 04 SBC $04 [$00:0004] A:00B0 X:0000 Y:0022 P:envmxdiZC $86/B39B D9 E0 DD CMP $DDE0,y[$7E:DE02] A:0056 X:0000 Y:0022 P:envmxdizC $86/B39E B0 03 BCS $03 [$B3A3] A:0056 X:0000 Y:0022 P:eNvmxdizc $86/B3A0 38 SEC A:0056 X:0000 Y:0022 P:eNvmxdizc $86/B3A1 80 01 BRA $01 [$B3A4] A:0056 X:0000 Y:0022 P:eNvmxdizC $86/B3A3 18 CLC A:0065 X:0000 Y:0020 P:envmxdizC $86/B3A4 7A PLY ; Restore $03-$00 from Stack $86/B3A5 84 02 STY $02 $86/B3A7 7A PLY $86/B3A8 84 00 STY $00 $86/B3AA 7A PLY ; Restore Y, X and A from Stack $86/B3AB FA PLX $86/B3AC 68 PLA $86/B3AD 60 RTS
$86/B3AE ?
$86/B3AE 84 04 STY $04 [$00:0004] A:0000 X:0000 Y:000A P:envmxdiZC $86/B3B0 E8 INX A:0000 X:0000 Y:000A P:envmxdiZC $86/B3B1 E8 INX A:0000 X:0001 Y:000A P:envmxdizC $86/B3B2 E4 04 CPX $04 [$00:0004] A:0000 X:0002 Y:000A P:envmxdizC $86/B3B4 F0 1A BEQ $1A ; [$B3D0] Exit if equal $86/B3B6 B9 E0 DB LDA $DBE0,y[$7E:DBEA] A:0000 X:0002 Y:000A P:eNvmxdizc $86/B3B9 9D E0 DB STA $DBE0,x[$7E:DBE2] A:0140 X:0002 Y:000A P:envmxdizc $86/B3BC B9 E0 DD LDA $DDE0,y[$7E:DDEA] A:0140 X:0002 Y:000A P:envmxdizc $86/B3BF 9D E0 DD STA $DDE0,x[$7E:DDE2] A:00E0 X:0002 Y:000A P:envmxdizc $86/B3C2 E8 INX A:00E0 X:0002 Y:000A P:envmxdizc $86/B3C3 E8 INX A:00E0 X:0003 Y:000A P:envmxdizc $86/B3C4 C8 INY A:00E0 X:0004 Y:000A P:envmxdizc $86/B3C5 C8 INY A:00E0 X:0004 Y:000B P:envmxdizc $86/B3C6 C4 02 CPY $02 [$00:0002] A:00E0 X:0004 Y:000C P:envmxdizc $86/B3C8 90 EC BCC $EC [$B3B6] A:00E0 X:0004 Y:000C P:eNvmxdizc $86/B3CA F0 EA BEQ $EA [$B3B6] A:0060 X:001C Y:0024 P:envmxdiZC $86/B3CC CA DEX A:0050 X:001E Y:0026 P:envmxdizC $86/B3CD CA DEX A:0050 X:001D Y:0026 P:envmxdizC $86/B3CE 86 02 STX $02 [$00:0002] A:0050 X:001C Y:0026 P:envmxdizC $86/B3D0 60 RTS A:0050 X:001C Y:0026 P:envmxdizC
$86/E19C ?
$86/E19C 8B PHB ; Buffer Data Bank on Stack $86/E19D A9 7E LDA #$7E ; Set Data Bank to $7E $86/E19F 48 PHA $86/E1A0 AB PLB $86/E1A1 C2 20 REP #$20 ; A = 16-bit $86/E1A3 A9 FF FF LDA #$FFFF A:007E X:0540 Y:F11F P:envmxdizc $86/E1A6 85 06 STA $06 [$00:0006] A:FFFF X:0540 Y:F11F P:eNvmxdizc $86/E1A8 A6 0E LDX $0E [$00:000E] A:FFFF X:0540 Y:F11F P:eNvmxdizc $86/E1AA 8E 00 58 STX $5800 [$7E:5800] A:FFFF X:01D2 Y:F11F P:envmxdizc $86/E1AD 9E DF D3 STZ $D3DF,x ; Clear entry for Map of Number-of-Steps-to-use $86/E1B0 9E DF DB STZ $DBDF,x[$7E:DDB1] A:FFFF X:01D2 Y:F11F P:envmxdizc $86/E1B3 9E DF E3 STZ $E3DF,x[$7E:E5B1] A:FFFF X:01D2 Y:F11F P:envmxdizc $86/E1B6 A0 02 00 LDY #$0002 A:FFFF X:01D2 Y:F11F P:envmxdizc $86/E1B9 8C F2 16 STY $16F2 [$7E:16F2] A:FFFF X:01D2 Y:0002 P:envmxdizc $86/E1BC A2 00 00 LDX #$0000 A:FFFF X:01D2 Y:0002 P:envmxdizc $86/E1BF BD 00 58 LDA $5800,x[$7E:5800] A:FFFF X:0000 Y:0002 P:envmxdiZc $86/E1C2 10 10 BPL $10 [$E1D4] A:01D2 X:0000 Y:0002 P:envmxdizc
- code is missing here
$86/E1D4 85 04 STA $04 [$00:0004] A:01D2 X:0000 Y:0002 P:envmxdizc $86/E1D6 A8 TAY A:01D2 X:0000 Y:0002 P:envmxdizc $86/E1D7 64 20 STZ $20 [$00:0020] A:01D2 X:0000 Y:01D2 P:envmxdizc $86/E1D9 E8 INX A:01D2 X:0000 Y:01D2 P:envmxdizc $86/E1DA E8 INX A:01D2 X:0001 Y:01D2 P:envmxdizc $86/E1DB E0 00 08 CPX #$0800 A:01D2 X:0002 Y:01D2 P:envmxdizc $86/E1DE D0 03 BNE $03 [$E1E3] A:01D2 X:0002 Y:01D2 P:eNvmxdizc
- code is missing here
$86/E1E3 DA PHX A:01D2 X:0002 Y:01D2 P:eNvmxdizc $86/E1E4 EC F2 16 CPX $16F2 [$7E:16F2] A:01D2 X:0002 Y:01D2 P:eNvmxdizc $86/E1E7 F0 14 BEQ $14 [$E1FD] A:01D2 X:0002 Y:01D2 P:envmxdiZC
- code is missing here
$86/E1FD 98 TYA A:01D2 X:0002 Y:01D2 P:envmxdiZC $86/E1FE 4A LSR A A:01D2 X:0002 Y:01D2 P:envmxdizC $86/E1FF AA TAX A:00E9 X:0002 Y:01D2 P:envmxdizc $86/E200 E2 20 SEP #$20 A:00E9 X:00E9 Y:01D2 P:envmxdizc $86/E202 64 26 STZ $26 [$00:0026] A:00E9 X:00E9 Y:01D2 P:envMxdizc $86/E204 A5 20 LDA $20 [$00:0020] A:00E9 X:00E9 Y:01D2 P:envMxdizc $86/E206 F0 21 BEQ $21 [$E229] A:0000 X:00E9 Y:01D2 P:envMxdiZc
- code is missing here
$86/E229 BF 00 C8 7F LDA $7FC800,x[$7F:C8E9] A:0000 X:00E9 Y:01D2 P:envMxdiZc $86/E22D 85 0A STA $0A [$00:000A] A:0004 X:00E9 Y:01D2 P:envMxdizc $86/E22F A5 08 LDA $08 [$00:0008] A:0004 X:00E9 Y:01D2 P:envMxdizc $86/E231 4A LSR A A:0001 X:00E9 Y:01D2 P:envMxdizc $86/E232 4A LSR A A:0000 X:00E9 Y:01D2 P:envMxdiZC $86/E233 C9 02 CMP #$02 A:0000 X:00E9 Y:01D2 P:envMxdiZc $86/E235 D0 09 BNE $09 [$E240] A:0000 X:00E9 Y:01D2 P:eNvMxdizc
- code is missing here
$86/E240 C2 20 REP #$20 A:0000 X:00E9 Y:01D2 P:eNvMxdizc $86/E242 A5 20 LDA $20 [$00:0020] A:0000 X:00E9 Y:01D2 P:eNvmxdizc $86/E244 4A LSR A A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E245 B9 DF DB LDA $DBDF,y[$7E:DDB1] A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E248 90 03 BCC $03 [$E24D] A:0000 X:00E9 Y:01D2 P:envmxdiZc
- code is missing here
$86/E24D 29 FF 7F AND #$7FFF A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E250 D0 0F BNE $0F [$E261] A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E252 A5 0B LDA $0B [$00:000B] A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E254 29 FF 00 AND #$00FF A:D400 X:00E9 Y:01D2 P:eNvmxdizc $86/E257 F0 1B BEQ $1B [$E274] A:0000 X:00E9 Y:01D2 P:envmxdiZc
- code is missing here
$86/E274 A9 00 00 LDA #$0000 A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E277 20 2A E3 JSR $E32A [$86:E32A] A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E27A A9 01 00 LDA #$0001 A:1F80 X:01D4 Y:01D2 P:envmxdizc $86/E27D 20 3C E3 JSR $E33C [$86:E33C] A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E280 A9 01 00 LDA #$0001 A:1F80 X:0212 Y:01D2 P:envmxdizc $86/E283 20 45 E3 JSR $E345 [$86:E345] A:0001 X:0212 Y:01D2 P:envmxdizc $86/E286 A9 02 00 LDA #$0002 A:00FF X:0192 Y:0001 P:envmxdizC $86/E289 20 33 E3 JSR $E333 [$86:E333] A:0002 X:0192 Y:0001 P:envmxdizC $86/E28C 80 56 BRA $56 [$E2E4] A:00FF X:01D0 Y:0001 P:envmxdizC
- code is missing here
$86/E2E4 A5 08 LDA $08 [$00:0008] A:00FF X:01D0 Y:0001 P:envmxdizC $86/E2E6 29 03 00 AND #$0003 A:0001 X:01D0 Y:0001 P:envmxdizC $86/E2E9 C9 02 00 CMP #$0002 A:0001 X:01D0 Y:0001 P:envmxdizC $86/E2EC B0 2F BCS $2F [$E31D] A:0001 X:01D0 Y:0001 P:eNvmxdizc $86/E2EE A5 26 LDA $26 [$00:0026] A:0001 X:01D0 Y:0001 P:eNvmxdizc $86/E2F0 4A LSR A A:0500 X:01D0 Y:0001 P:envmxdizc $86/E2F1 B0 2A BCS $2A [$E31D] A:0280 X:01D0 Y:0001 P:envmxdizc $86/E2F3 A4 04 LDY $04 [$00:0004] A:0280 X:01D0 Y:0001 P:envmxdizc $86/E2F5 A5 20 LDA $20 [$00:0020] A:0280 X:01D0 Y:01D2 P:envmxdizc $86/E2F7 4A LSR A A:0000 X:01D0 Y:01D2 P:envmxdiZc $86/E2F8 B9 DF D3 LDA $D3DF,y[$7E:D5B1] A:0000 X:01D0 Y:01D2 P:envmxdiZc $86/E2FB 90 03 BCC $03 [$E300] A:0000 X:01D0 Y:01D2 P:envmxdiZc
- code is missing here
$86/E300 1A INC A A:0000 X:01D0 Y:01D2 P:envmxdiZc $86/E301 C5 02 CMP $02 [$00:0002] A:0001 X:01D0 Y:01D2 P:envmxdizc $86/E303 B0 18 BCS $18 [$E31D] A:0001 X:01D0 Y:01D2 P:eNvmxdizc $86/E305 A9 00 00 LDA #$0000 A:0001 X:01D0 Y:01D2 P:eNvmxdizc $86/E308 20 6F E3 JSR $E36F [$86:E36F] A:0000 X:01D0 Y:01D2 P:envmxdiZc $86/E30B A9 01 00 LDA #$0001 A:1F80 X:01D6 Y:01D2 P:envmxdizc $86/E30E 20 78 E3 JSR $E378 [$86:E378] A:0001 X:01D6 Y:01D2 P:envmxdizc $86/E311 A9 01 00 LDA #$0001 A:0005 X:00E8 Y:FFFF P:envmxdizC $86/E314 20 81 E3 JSR $E381 [$86:E381] A:0001 X:00E8 Y:FFFF P:envmxdizC $86/E317 A9 02 00 LDA #$0002 A:1F80 X:0252 Y:01D2 P:envmxdizc $86/E31A 20 8A E3 JSR $E38A [$86:E38A] A:0002 X:0252 Y:01D2 P:envmxdizc $86/E31D FA PLX A:0005 X:00C9 Y:FFFF P:envmxdizC $86/E31E EC F2 16 CPX $16F2 [$7E:16F2] A:0005 X:0002 Y:FFFF P:envmxdizC $86/E321 F0 03 BEQ $03 [$E326] A:0005 X:0002 Y:FFFF P:envmxdiZC
- code is missing here
$86/E326 E2 20 SEP #$20 ; A = 8-bit $86/E328 AB PLB ; Restore Data Bank from Stack $86/E329 60 RTS
$86/E32A ?
$86/E32A 85 14 STA $14 [$00:0014] A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E32C 85 16 STA $16 [$00:0016] A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E32E A9 02 00 LDA #$0002 A:0000 X:00E9 Y:01D2 P:envmxdiZc $86/E331 80 19 BRA $19 [$E34C] A:0002 X:00E9 Y:01D2 P:envmxdizc
$86/E333 ?
$86/E333 85 14 STA $14 [$00:0014] A:0002 X:0192 Y:0001 P:envmxdizC $86/E335 85 16 STA $16 [$00:0016] A:0002 X:0192 Y:0001 P:envmxdizC $86/E337 A9 FE FF LDA #$FFFE A:0002 X:0192 Y:0001 P:envmxdizC $86/E33A 80 10 BRA $10 [$E34C] A:FFFE X:0192 Y:0001 P:eNvmxdizC
$86/E33C ?
$86/E33C 85 14 STA $14 [$00:0014] A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E33E 85 16 STA $16 [$00:0016] A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E340 A9 40 00 LDA #$0040 A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E343 80 07 BRA $07 [$E34C] A:0040 X:01D4 Y:01D2 P:envmxdizc
$86/E345 ?
$86/E345 85 14 STA $14 [$00:0014] A:0001 X:0212 Y:01D2 P:envmxdizc $86/E347 85 16 STA $16 [$00:0016] A:0001 X:0212 Y:01D2 P:envmxdizc $86/E349 A9 C0 FF LDA #$FFC0 A:0001 X:0212 Y:01D2 P:envmxdizc $86/E34C 18 CLC A:0002 X:00E9 Y:01D2 P:envmxdizc $86/E34D 65 04 ADC $04 [$00:0004] A:0002 X:00E9 Y:01D2 P:envmxdizc $86/E34F 64 00 STZ $00 [$00:0000] A:01D4 X:00E9 Y:01D2 P:envmxdizc $86/E351 48 PHA A:01D4 X:00E9 Y:01D2 P:envmxdizc $86/E352 20 BD A0 JSR $A0BD [$86:A0BD] A:01D4 X:00E9 Y:01D2 P:envmxdizc $86/E355 FA PLX A:0001 X:00EA Y:0001 P:envmxdizc $86/E356 B0 16 BCS $16 [$E36E] A:0001 X:01D4 Y:0001 P:envmxdizc $86/E358 A8 TAY A:0001 X:01D4 Y:0001 P:envmxdizc $86/E359 A5 21 LDA $21 [$00:0021] A:0001 X:01D4 Y:0001 P:envmxdizc $86/E35B 4A LSR A A:7E01 X:01D4 Y:0001 P:envmxdizc $86/E35C 98 TYA A:3F00 X:01D4 Y:0001 P:envmxdizC $86/E35D 90 03 BCC $03 [$E362] A:0001 X:01D4 Y:0001 P:envmxdizC $86/E35F 20 C5 E3 JSR $E3C5 [$86:E3C5] A:0001 X:01D4 Y:0001 P:envmxdizC $86/E362 A5 21 LDA $21 [$00:0021] A:0001 X:01D4 Y:01D2 P:envmxdiZC $86/E364 4A LSR A A:7E01 X:01D4 Y:01D2 P:envmxdizC $86/E365 4A LSR A A:3F00 X:01D4 Y:01D2 P:envmxdizC $86/E366 90 06 BCC $06 [$E36E] A:1F80 X:01D4 Y:01D2 P:envmxdizc
- code is missing here
$86/E36E 60 RTS A:1F80 X:01D4 Y:01D2 P:envmxdizc
$86/E36F ?
$86/E36F 85 14 STA $14 [$00:0014] A:0000 X:01D0 Y:01D2 P:envmxdiZc $86/E371 85 16 STA $16 [$00:0016] A:0000 X:01D0 Y:01D2 P:envmxdiZc $86/E373 A9 02 00 LDA #$0002 A:0000 X:01D0 Y:01D2 P:envmxdiZc $86/E376 80 19 BRA $19 [$E391] A:0002 X:01D0 Y:01D2 P:envmxdizc
$86/E378 ?
$86/E378 85 14 STA $14 [$00:0014] A:0001 X:01D6 Y:01D2 P:envmxdizc $86/E37A 85 16 STA $16 [$00:0016] A:0001 X:01D6 Y:01D2 P:envmxdizc $86/E37C A9 FE FF LDA #$FFFE A:0001 X:01D6 Y:01D2 P:envmxdizc $86/E37F 80 10 BRA $10 [$E391] A:FFFE X:01D6 Y:01D2 P:eNvmxdizc
$86/E381 ?
$86/E381 85 14 STA $14 [$00:0014] A:0001 X:00E8 Y:FFFF P:envmxdizC $86/E383 85 16 STA $16 [$00:0016] A:0001 X:00E8 Y:FFFF P:envmxdizC $86/E385 A9 40 00 LDA #$0040 A:0001 X:00E8 Y:FFFF P:envmxdizC $86/E388 80 07 BRA $07 [$E391] A:0040 X:00E8 Y:FFFF P:envmxdizC
$86/E38A ?
$86/E38A 85 14 STA $14 [$00:0014] A:0002 X:0252 Y:01D2 P:envmxdizc $86/E38C 85 16 STA $16 [$00:0016] A:0002 X:0252 Y:01D2 P:envmxdizc $86/E38E A9 C0 FF LDA #$FFC0 A:0002 X:0252 Y:01D2 P:envmxdizc $86/E391 85 23 STA $23 [$00:0023] A:0002 X:01D0 Y:01D2 P:envmxdizc $86/E393 18 CLC A:0002 X:01D0 Y:01D2 P:envmxdizc $86/E394 65 04 ADC $04 [$00:0004] A:0002 X:01D0 Y:01D2 P:envmxdizc $86/E396 20 82 A0 JSR $A082 [$86:A082] A:01D4 X:01D0 Y:01D2 P:envmxdizc $86/E399 B0 29 BCS $29 [$E3C4] A:0002 X:00EA Y:FFFF P:eNvmxdizc $86/E39B A9 05 00 LDA #$0005 A:0002 X:00EA Y:FFFF P:eNvmxdizc $86/E39E 85 00 STA $00 [$00:0000] A:0005 X:00EA Y:FFFF P:envmxdizc $86/E3A0 A5 23 LDA $23 [$00:0023] A:0005 X:00EA Y:FFFF P:envmxdizc $86/E3A2 0A ASL A A:0002 X:00EA Y:FFFF P:envmxdizc $86/E3A3 18 CLC A:0004 X:00EA Y:FFFF P:envmxdizc $86/E3A4 65 04 ADC $04 [$00:0004] A:0004 X:00EA Y:FFFF P:envmxdizc $86/E3A6 48 PHA A:01D6 X:00EA Y:FFFF P:envmxdizc $86/E3A7 20 96 A2 JSR $A296 [$86:A296] A:01D6 X:00EA Y:FFFF P:envmxdizc $86/E3AA FA PLX A:0001 X:00EB Y:0001 P:envmxdizc $86/E3AB B0 17 BCS $17 ; [$E3C4] Exit if Error Flag was set by $A296 $86/E3AD 1A INC A A:0001 X:01D6 Y:0001 P:envmxdizc $86/E3AE A8 TAY A:0002 X:01D6 Y:0001 P:envmxdizc $86/E3AF A5 21 LDA $21 [$00:0021] A:0002 X:01D6 Y:0002 P:envmxdizc $86/E3B1 4A LSR A A:7E01 X:01D6 Y:0002 P:envmxdizc $86/E3B2 98 TYA A:3F00 X:01D6 Y:0002 P:envmxdizC $86/E3B3 90 03 BCC $03 [$E3B8] A:0002 X:01D6 Y:0002 P:envmxdizC $86/E3B5 20 C5 E3 JSR $E3C5 [$86:E3C5] A:0002 X:01D6 Y:0002 P:envmxdizC $86/E3B8 A5 21 LDA $21 [$00:0021] A:0002 X:01D6 Y:01D2 P:envmxdizC $86/E3BA 4A LSR A A:7E01 X:01D6 Y:01D2 P:envmxdizC $86/E3BB 4A LSR A A:3F00 X:01D6 Y:01D2 P:envmxdizC $86/E3BC 90 06 BCC $06 [$E3C4] A:1F80 X:01D6 Y:01D2 P:envmxdizc
- code is missing here
$86/E3C4 60 RTS A:1F80 X:01D6 Y:01D2 P:envmxdizc
$20 contains a case-decidier bit
$04 contains a raw value for the Map of Number-of-Steps-to-use entry
$86/E3C5 A8 TAY ; Buffer A in Y $86/E3C6 A5 20 LDA $20 ; Rollout the LSB from $20 in Carry $86/E3C8 4A LSR A $86/E3C9 98 TYA ; Restore A from Y $86/E3CA A4 04 LDY $04 [$00:0004] A:0001 X:01D4 Y:0001 P:envmxdizc $86/E3CC B0 39 BCS $39 ; [$E407] Branch if LSB from $20 was set $86/E3CE 18 CLC ; This line could be removed? $86/E3CF 79 DF D3 ADC $D3DF,y[$7E:D5B1] A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E3D2 DD DF D3 CMP $D3DF,x[$7E:D5B3] A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E3D5 90 14 BCC $14 [$E3EB] A:0001 X:01D4 Y:01D2 P:envmxdizc
- code is missing here
$86/E3EB 9D DF D3 STA $D3DF,x ; Store in Map of Number-of-Steps-to-use $86/E3EE 18 CLC A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E3EF B9 DF E3 LDA $E3DF,y[$7E:E5B1] A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E3F2 65 00 ADC $00 [$00:0000] A:0000 X:01D4 Y:01D2 P:envmxdiZc $86/E3F4 65 14 ADC $14 [$00:0014] A:0000 X:01D4 Y:01D2 P:envmxdiZc $86/E3F6 C9 FF 3F CMP #$3FFF A:0000 X:01D4 Y:01D2 P:envmxdiZc $86/E3F9 90 03 BCC $03 [$E3FE] A:0000 X:01D4 Y:01D2 P:eNvmxdizc
- code is missing here
$86/E3FE 9D DF E3 STA $E3DF,x[$7E:E5B3] A:0000 X:01D4 Y:01D2 P:eNvmxdizc $86/E401 98 TYA A:0000 X:01D4 Y:01D2 P:eNvmxdizc $86/E402 9D DF DB STA $DBDF,x[$7E:DDB3] A:01D2 X:01D4 Y:01D2 P:envmxdizc $86/E405 80 37 BRA $37 [$E43E] A:01D2 X:01D4 Y:01D2 P:envmxdizc
- code is missing here
$86/E43E BD DF D3 LDA $D3DF,x ; Load Map of Number-of-Steps-to-use $86/E441 E4 0C CPX $0C [$00:000C] A:0001 X:01D4 Y:01D2 P:envmxdizc $86/E443 D0 03 BNE $03 [$E448] A:0001 X:01D4 Y:01D2 P:envmxdiZC $86/E445 85 06 STA $06 [$00:0006] A:0001 X:01D4 Y:01D2 P:envmxdiZC $86/E447 60 RTS A:0001 X:01D4 Y:01D2 P:envmxdiZC $86/E448 C5 06 CMP $06 [$00:0006] A:0001 X:0212 Y:01D2 P:envmxdizC $86/E44A B0 18 BCS $18 [$E464] A:0001 X:0212 Y:01D2 P:envmxdiZC
- code is missing here
$86/E464 60 RTS A:0001 X:0212 Y:01D2 P:envmxdiZC
Bank $88
$88/8000 ?
$88/8000 AE 47 05 LDX $0547 ; ??? ("Has-Joypad-inputs"-register?) $88/8003 F0 4F BEQ $4F ; [$8054] $88/8005 A5 A1 LDA $A1 [$00:00A1] A:0000 X:0101 Y:0004 P:enVMxdIzC $88/8007 89 81 BIT #$81 A:0000 X:0101 Y:0004 P:enVMxdIZC $88/8009 D0 00 BNE $00 ; [$800B] this line could be removed(?) $88/800B A2 00 00 LDX #$0000 ; Clear X (Joypad-Counter) $88/800E 7B TDC ; Clear 16-bit A $88/800F AD 5B 05 LDA $055B [$80:055B] A:0000 X:0000 Y:0004 P:enVMxdIZC $88/8012 29 7F AND #$7F A:0000 X:0000 Y:0004 P:enVMxdIZC $88/8014 F0 21 BEQ $21 [$8037] A:0000 X:0000 Y:0004 P:enVMxdIZC
Code is missing here
$88/8037 BD 47 05 LDA $0547,x ; ??? ("Has-Joypad-inputs"-register?) $88/803A F0 18 BEQ $18 ; [$8054] ??? Branch if there are no inputs? $88/803C 7B TDC ; Clear 16-bit A $88/803D 8A TXA ; Multiply 2 - from now on, every Joypad Entry is 2 bytes in size $88/803E 0A ASL A $88/803F AA TAX $88/8040 BC 49 05 LDY $0549,x ; Joypad x Inputs $88/8043 8C 61 05 STY $0561 $88/8046 BC 51 05 LDY $0551,x ; Last frame's Joypad x Inputs $88/8049 8C 63 05 STY $0563 $88/804C BC 4D 05 LDY $054D,x ; Joypad x held buttons $88/804F 8C 65 05 STY $0565 $88/8052 80 0C BRA $0C ; [$8060] Exit
- Code is missing here
$88/8060 6B RTL
$88/8061 A5 A1 LDA $A1 [$00:00A1] A:0000 X:0002 Y:0004 P:enVMxdIZC $88/8063 89 81 BIT #$81 $88/8065 D0 03 BNE $03 ; [$806A] Go on if on of those bits are set $88/8067 4C F7 80 JMP $80F7 ; Exit $88/806A AD 47 05 LDA $0547 [$80:0547] A:0080 X:0002 Y:0004 P:eNVMxdIzC $88/806D F0 44 BEQ $44 [$80B3] A:0001 X:0002 Y:0004 P:enVMxdIzC $88/806F A5 A1 LDA $A1 [$00:00A1] A:0001 X:0002 Y:0004 P:enVMxdIzC $88/8071 89 02 BIT #$02 A:0080 X:0002 Y:0004 P:eNVMxdIzC $88/8073 D0 3E BNE $3E [$80B3] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/8075 89 08 BIT #$08 A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/8077 D0 24 BNE $24 [$809D] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/8079 A5 A1 LDA $A1 [$00:00A1] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/807B 89 01 BIT #$01 A:0080 X:0002 Y:0004 P:eNVMxdIzC $88/807D D0 09 BNE $09 [$8088] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/807F AD 5B 05 LDA $055B [$80:055B] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/8082 29 7F AND #$7F A:0000 X:0002 Y:0004 P:enVMxdIZC $88/8084 C9 00 CMP #$00 A:0000 X:0002 Y:0004 P:enVMxdIZC $88/8086 F0 2B BEQ $2B [$80B3] A:0000 X:0002 Y:0004 P:enVMxdIZC
- Code is missing here
$88/80B3 AD 48 05 LDA $0548 [$80:0548] A:0000 X:0002 Y:0004 P:enVMxdIZC $88/80B6 F0 3F BEQ $3F [$80F7] A:0001 X:0002 Y:0004 P:enVMxdIzC $88/80B8 A5 A1 LDA $A1 [$00:00A1] A:0001 X:0002 Y:0004 P:enVMxdIzC $88/80BA 89 04 BIT #$04 A:0080 X:0002 Y:0004 P:eNVMxdIzC $88/80BC D0 39 BNE $39 [$80F7] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/80BE 89 10 BIT #$10 A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/80C0 D0 1F BNE $1F [$80E1] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/80C2 A5 A1 LDA $A1 [$00:00A1] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/80C4 89 01 BIT #$01 A:0080 X:0002 Y:0004 P:eNVMxdIzC $88/80C6 D0 09 BNE $09 [$80D1] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/80C8 AD 5B 05 LDA $055B [$80:055B] A:0080 X:0002 Y:0004 P:eNVMxdIZC $88/80CB 29 7F AND #$7F A:0000 X:0002 Y:0004 P:enVMxdIZC $88/80CD C9 01 CMP #$01 A:0000 X:0002 Y:0004 P:enVMxdIZC $88/80CF F0 26 BEQ $26 [$80F7] A:0000 X:0002 Y:0004 P:eNVMxdIzc $88/80D1 20 08 81 JSR $8108 [$88:8108] A:0000 X:0002 Y:0004 P:eNVMxdIzc $88/80D4 B0 21 BCS $21 [$80F7] A:0001 X:0002 Y:0004 P:eNVMxdIzC
- Code is missing here
$88/80F7 6B RTL A:0001 X:0002 Y:0004 P:eNVMxdIzC
$88/8118 ?
$88/8118 A2 00 00 LDX #$0000 A:0000 X:0000 Y:0000 P:enVMxdIZc $88/811B 8E 67 05 STX $0567 [$80:0567] A:0000 X:0000 Y:0000 P:enVMxdIZc $88/811E AE 61 05 LDX $0561 [$80:0561] A:0000 X:0000 Y:0000 P:enVMxdIZc $88/8121 F0 49 BEQ $49 ; [$816C] Exit if empty $88/8123 AE 65 05 LDX $0565 [$80:0565] A:0000 X:0080 Y:0080 P:enVMxdIzc $88/8126 F0 0A BEQ $0A [$8132] A:0000 X:0080 Y:0080 P:enVMxdIzc $88/8128 8E 67 05 STX $0567 [$80:0567] A:0000 X:0080 Y:0080 P:enVMxdIzc $88/812B 9C 59 05 STZ $0559 [$80:0559] A:0000 X:0080 Y:0080 P:enVMxdIzc $88/812E 9C 5A 05 STZ $055A [$80:055A] A:0000 X:0080 Y:0080 P:enVMxdIzc $88/8131 6B RTL A:0000 X:0080 Y:0080 P:enVMxdIzc
$88/8132 Input Delay
Used when the cursor is moved in battle. When you push a direction button, the cursor moves immediately one rhomb. If you keep on pushing in the same direction, the game has a certain delay until it moves the cursor on the next Rhomb. If you still keep on pushing, it goes on moving. You will have recognized that the delay between the first and second move is longer than the following moves. This whole stuff happens here.
This subroutine serves for the delay when you move the cursor one Rhomb that it doesn't move automatically to the next Rhomb in the next frame (= next split second).
$49 is the Cursor Speed Setting
$0559 Is the counter for the frames that you hold that button for the delay between the first and second move
$055A Is the counter for the frames that you hold that button for the delay after the second move
Keep in mind that $0559 gets COUNTED UP, $055A gets COUNTED DOWN.
$88/8132 AE 61 05 LDX $0561 ; Joypad Inputs - Copy $88/8135 EC 63 05 CPX $0563 ; Compare with Last frame's Joypad Inputs - Copy $88/8138 F0 07 BEQ $07 ; [$8141] Branch if Inputs haven't changed
- Code is missing here
$88/8141 7B TDC $88/8142 A5 49 LDA $49 ; Load the Cursor Speed Setting $88/8144 AA TAX ; Transfer to X, use as a Index on the Table for the Number of Delay Frames $88/8145 AD 59 05 LDA $0559 ; Load Number of Frames the button is hold $88/8148 DF 6D 81 88 CMP $88816D,x ; Compare with Table for the Number of Delay Frames $88/814C B0 04 BCS $04 ; [$8152] Branch if the delay has expired $88/814E EE 59 05 INC $0559 ; If not (yet), increment the Frame Counter and exit $88/8151 6B RTL $88/8152 AD 5A 05 LDA $055A ; Check if the After-Second-Movement-counter is empty $88/8155 F0 04 BEQ $04 ; [$815B] If it is, transfer Control Input and reset Counter $88/8157 CE 5A 05 DEC $055A ; If not, decrement After-Second-Movement-counter and exit $88/815A 6B RTL $88/815B AE 61 05 LDX $0561 ; Load actual Inputs $88/815E 8E 67 05 STX $0567 ; Transfer in Input-Register that get actually worked off. $88/8161 7B TDC ; Clear 16-bit A $88/8162 A5 49 LDA $49 ; Load the Cursor Speed Setting $88/8164 AA TAX ; Transfer to X, use as a Index on the Table for the Number of Delay Frames $88/8165 BF 70 81 88 LDA $888170,x ; Load Delay Value from Table for the Number of Delay Frames $88/8169 8D 5A 05 STA $055A ; Setup After-Second-Movement-counter $88/816C 6B RTL
$88/816D Table for the Number of Delay Frames
$88/816D 08 - Delay between first and second Cursor Move - SLOW $88/816E 10 - Delay between first and second Cursor Move - MEDIUM $88/816F 20 - Delay between first and second Cursor Move - FAST $88/8170 02 - Delay after second Cursor Move - SLOW $88/8171 04 - Delay after second Cursor Move - MEDIUM $88/8172 06 - Delay after second Cursor Move - FAST
$88/8173 ?
$88/8173 C2 21 REP #$21 A:0001 X:B010 Y:0000 P:eNVMxdIzC $88/8175 A9 01 00 LDA #$0001 A:0001 X:B010 Y:0000 P:eNVmxdIzc $88/8178 6F 8E BD 7E ADC $7EBD8E[$7E:BD8E] A:0001 X:B010 Y:0000 P:enVmxdIzc $88/817C 8F 8E BD 7E STA $7EBD8E[$7E:BD8E] A:31D1 X:B010 Y:0000 P:envmxdIzc $88/8180 7B TDC A:31D1 X:B010 Y:0000 P:envmxdIzc $88/8181 6F 90 BD 7E ADC $7EBD90[$7E:BD90] A:0000 X:B010 Y:0000 P:envmxdIZc $88/8185 8F 90 BD 7E STA $7EBD90[$7E:BD90] A:0000 X:B010 Y:0000 P:envmxdIZc $88/8189 90 0B BCC $0B [$8196] A:0000 X:B010 Y:0000 P:envmxdIZc
- code is missing here
$88/8196 E2 20 SEP #$20 A:0000 X:B010 Y:0000 P:envmxdIZc $88/8198 6B RTL A:0000 X:B010 Y:0000 P:envMxdIZc
$88/9E40 ?
$88/9E40 8B PHB ; Preserve Program Bank $88/9E41 4B PHK $88/9E42 AB PLB $88/9E43 A0 00 A8 LDY #$A800 ; Setup write address for the Tilemap Rectangle Builder $88/9E46 84 20 STY $20 ; This time, it's the BG3 Buffer for the Battle Stats Menu $88/9E48 A9 7E LDA #$7E $88/9E4A 85 22 STA $22 $88/9E4C A9 08 LDA #$08 ; Tilemap Rectangle Builder: Number of Columns $88/9E4E 85 00 STA $00 $88/9E50 A9 04 LDA #$04 ; Tilemap Rectangle Builder: Number of Rows $88/9E52 85 02 STA $02 $88/9E54 A0 42 00 LDY #$0042 ; Where to write index: $42 Bytes after the buffer begin $88/9E57 A5 04 LDA $04 [$00:0004] A:2004 X:0000 Y:0042 P:envMxdizc $88/9E59 05 05 ORA $05 [$00:0005] A:2008 X:0000 Y:0042 P:envMxdizc $88/9E5B D0 09 BNE $09 [$9E66] A:2008 X:0000 Y:0042 P:envMxdizc
Code is missing here
$88/9E66 A2 9F 9E LDX #$9E9F A:2008 X:0000 Y:0042 P:envMxdizc $88/9E69 22 05 A4 80 JSL $80A405[$80:A405] A:2008 X:9E9F Y:0042 P:eNvMxdizc $88/9E6D A9 06 LDA #$06 ; Tilemap Rectangle Builder: Number of Columns $88/9E6F 85 00 STA $00 $88/9E71 A9 02 LDA #$02 ; Tilemap Rectangle Builder: Number of Rows $88/9E73 85 02 STA $02 $88/9E75 A0 B2 00 LDY #$00B2 A:0102 X:9EDF Y:0142 P:envMxdizc $88/9E78 A5 06 LDA $06 [$00:0006] A:0102 X:9EDF Y:00B2 P:envMxdizc $88/9E7A D0 09 BNE $09 [$9E85] A:0103 X:9EDF Y:00B2 P:envMxdizc
Code is missing here
$88/9E85 A2 DF 9E LDX #$9EDF A:0103 X:9EDF Y:00B2 P:envMxdizc $88/9E88 22 05 A4 80 JSL $80A405[$80:A405] A:0103 X:9EDF Y:00B2 P:eNvMxdizc $88/9E8C 22 EB 9E 80 JSL $809EEB ; VRAM DMA of the following data: $88/9E90 40 A8 7E Address: $7E/A840 $88/9E93 20 3C VRAM Address: $3C20 (Battle Stat Menu BG3 Tilemap + $20, skips the menu border tile line) $88/9E95 D2 00 Transfer $00D2 Bytes $88/9E97 22 D9 BA 82 JSL $82BAD9[$82:BAD9] A:A880 X:0200 Y:3C20 P:eNvMxdizc $88/9E9B AB PLB ; Restore Program Bank $88/9E9C 6B RTL
$88/A11F ?
$88/A11F DA PHX ; Buffer X on Stack $88/A120 EB XBA ; Buffer B (hidden high byte of 8-bit A) on Stack $88/A121 48 PHA $88/A122 A9 00 LDA #$00 ; Clear B $88/A124 EB XBA $88/A125 AA TAX ; Use 8-bit A value as Load Index $88/A126 BF 02 A7 88 LDA $88A702,x[$88:A73D] A:003B X:003B Y:0005 P:envMxdizc $88/A12A C9 FF CMP #$FF A:0028 X:003B Y:0005 P:envMxdizc $88/A12C D0 03 BNE $03 [$A131] A:0028 X:003B Y:0005 P:envMxdizc $88/A12E A3 01 LDA $01,s [$00:1FE4] A:00FF X:001E Y:0005 P:envMxdiZC $88/A130 AA TAX A:001E X:001E Y:0005 P:envMxdizC $88/A131 68 PLA A:0028 X:003B Y:0005 P:envMxdizc $88/A132 BF 02 A7 88 LDA $88A702,x[$88:A73D] A:003B X:003B Y:0005 P:envMxdizc $88/A136 FA PLX ; Restore X $88/A137 6B RTL
$88/A138 Load Figure's Character Class/Graphic Set number
At the end, A contains the Graphic Set number or the Character Class number of the Figure number in X. It depends on the table at $88/A702. The Figure number is the index for this table. If the Figure's value on this table is #$FF, A contain the Graphic Set number in the end, else it keeps the Character Class number.
I think this is relevant for VIP figures that use standard graphic sets. They look the same as the "background actors", but have a unique name/character class. But I can be totally wrong.
$88/A138 BD AF 17 LDA $17AF,x ; Load Figure's Character Class Number $88/A13B EB XBA $88/A13C BD AE 17 LDA $17AE,x ; Load Figure's Graphic Set Number $88/A13F DA PHX ; Push Figure Number on Stack $88/A140 48 PHA ; Push Graphic Set Number on Stack $88/A141 EB XBA $88/A142 48 PHA ; Push Figure's Character Class Number on Stack $88/A143 7B TDC ; Clear 16-bit A $88/A144 A3 02 LDA $02,s ; Load Graphic Set Number $88/A146 AA TAX ; Transfer it in X as Load Index $88/A147 BF 02 A7 88 LDA $88A702,x[$88:A734] A:0032 X:0032 Y:8A14 P:envMxdizC $88/A14B C9 FF CMP #$FF $88/A14D D0 04 BNE $04 ; [$A153] If not #$FF, keep Class number $88/A14F A3 01 LDA $01,s ; Replace buffered Class number with Graphic Set number $88/A151 83 02 STA $02,s $88/A153 68 PLA ; Remove Character Class Number from Stack $88/A154 68 PLA ; Remove (Character Class or) Graphic Set Number from Stack $88/A155 FA PLX ; Load Figure Number from Stack in X $88/A156 6B RTL
$88/A3D1 ?
$88/A3D1 DA PHX ; Buffer X on Stack $88/A3D2 EB XBA ; Clear Hidden 8-bit Accumulator $88/A3D3 A9 00 LDA #$00 $88/A3D5 EB XBA $88/A3D6 AA TAX ; Transfer 16-bit A in X as Load Index $88/A3D7 BF E2 A9 88 LDA $88A9E2,x[$88:AA16] A:0034 X:0034 Y:0009 P:envMxdizc $88/A3DB FA PLX ; Restore X from Stack $88/A3DC 09 00 ORA #$00 A:0034 X:3300 Y:0009 P:envMxdizc $88/A3DE 6B RTL A:0034 X:3300 Y:0009 P:envMxdizc
$88/A3DF Load Big Sprite Flag for this Character
This subroutine loads the Big Sprite Flag bit for this Character Class from a Data Table at $88/AD9E. The Load Index (i. e. the Character Sprite/Class number) is in A, and Bits 2-0 contain the number of the bit that should be loaded (like #%.....010: Bit 2 or #%.....101: Bit 5), while Bit 7-3 form the actual load index (like #%00000...: Load the first Byte [i. e. Byte 0] or #%00011...: Load the fourth Byte [i.e. Byte 3]).
$88/A3DF DA PHX ; Buffer X and A on Stack $88/A3E0 48 PHA $88/A3E1 7B TDC ; Clear 16-bit A $88/A3E2 A3 01 LDA $01,s ; Load Sprite/Class number (while keeping it on Stack) $88/A3E4 29 07 AND #$07 ; Set Bits 2-0 free $88/A3E6 0A ASL A ; Multiply by 2 $88/A3E7 AA TAX ; Buffer in X $88/A3E8 A3 01 LDA $01,s ; Load Sprite/Class number (while keeping it on Stack) $88/A3EA 4A LSR A ; Remove Bits 2-0 $88/A3EB 4A LSR A $88/A3EC 4A LSR A $88/A3ED DA PHX ; Buffer X (Bits 2-0) on Stack $88/A3EE AA TAX ; Transfer Bits 7-3 to X $88/A3EF BF 9E AD 88 LDA $88AD9E,x ; Use it as a Load Index for the Flag Data Byte $88/A3F3 FA PLX ; Pull Bits 2-0 from Stack $88/A3F4 7C F7 A3 JMP ($A3F7,x) ; Use them as Index for the Jump Table
Jump Table
$88/A3F7 0E A4 $88/A3F9 0D A4 $88/A3FB 0C A4 $88/A3FD 0B A4 $88/A3FE 0A A4 $88/A401 09 A4 $88/A403 08 A4 $88/A405 07 A4
Last Part - Roll out the Big Sprite Flag bit into Carry
$88/A407 4A LSR A ; Do a Logical Shift right as often as... $88/A408 4A LSR A ; ... Bits 2-0 told you to (LSR changes the Carry) $88/A409 4A LSR A $88/A40A 4A LSR A $88/A40B 4A LSR A $88/A40C 4A LSR A $88/A40D 4A LSR A $88/A40E 4A LSR A $88/A40F 68 PLA ; Restore Original A and X $88/A410 FA PLX $88/A411 6B RTL
$88/A4B2 ?
$88/A4B2 C9 29 CMP #$29 A:8135 X:0002 Y:0002 P:envMxdizc $88/A4B4 F0 0E BEQ $0E [$A4C4] A:8135 X:0002 Y:0002 P:envMxdizC $88/A4B6 C9 2A CMP #$2A A:8135 X:0002 Y:0002 P:envMxdizC $88/A4B8 F0 0A BEQ $0A [$A4C4] A:8135 X:0002 Y:0002 P:envMxdizC $88/A4BA C9 81 CMP #$81 A:8135 X:0002 Y:0002 P:envMxdizC $88/A4BC F0 06 BEQ $06 [$A4C4] A:8135 X:0002 Y:0002 P:eNvMxdizc $88/A4BE C9 82 CMP #$82 A:8135 X:0002 Y:0002 P:eNvMxdizc $88/A4C0 F0 02 BEQ $02 [$A4C4] A:8135 X:0002 Y:0002 P:eNvMxdizc $88/A4C2 18 CLC A:8135 X:0002 Y:0002 P:eNvMxdizc $88/A4C3 6B RTL A:8135 X:0002 Y:0002 P:eNvMxdizc
- code is missing here
$88/A54C ?
$88/A54C 7B TDC ; Clear 16-bit A $88/A54D BD AE 17 LDA $17AE,x ; Load Character Sprite number $88/A550 C9 F0 CMP #$F0 $88/A552 90 0F BCC $0F ; [$A563] Branch if lower than #$F1 (normal)
- code is missing here
$88/A563 DA PHX ; Buffer X on stack $88/A564 AA TAX ; Transfer Sprite number in X as Load Index $88/A565 BF F2 A7 88 LDA $88A7F2,x[$88:A82D] A:003B X:003B Y:0006 P:envMxdizc $88/A569 FA PLX ; Restore X from Stack $88/A56A C9 FF CMP #$FF A:0003 X:0006 Y:0006 P:envMxdizc $88/A56C F0 19 BEQ $19 [$A587] A:0003 X:0006 Y:0006 P:envMxdizc $88/A56E C9 FE CMP #$FE A:0003 X:0006 Y:0006 P:envMxdizc $88/A570 F0 0D BEQ $0D [$A57F] A:0003 X:0006 Y:0006 P:envMxdizc $88/A572 C9 FD CMP #$FD A:0003 X:0006 Y:0006 P:envMxdizc $88/A574 D0 26 BNE $26 [$A59C] A:0003 X:0006 Y:0006 P:envMxdizc
- code is missing here
$88/A59C C9 03 CMP #$03 A:0003 X:0006 Y:0006 P:envMxdizc $88/A59E F0 08 BEQ $08 [$A5A8] A:0003 X:0006 Y:0006 P:envMxdiZC $88/A5A0 C9 02 CMP #$02 A:0002 X:0002 Y:0006 P:eNvMxdizc $88/A5A2 D0 06 BNE $06 [$A5AA] A:0002 X:0002 Y:0006 P:envMxdiZC $88/A5A4 A9 01 LDA #$01 A:0002 X:0002 Y:0006 P:envMxdiZC $88/A5A6 80 02 BRA $02 [$A5AA] A:0001 X:0002 Y:0006 P:envMxdizC $88/A5A8 A9 00 LDA #$00 A:0003 X:0006 Y:0006 P:envMxdiZC $88/A5AA C9 02 CMP #$02 ; This line could be removed? - Some check if this is stupid or super-clever $88/A5AC 6B RTL
$88/A5B7 ?
$88/A5B7 DA PHX ; Buffer X on stack $88/A5B8 EB XBA ; Clear Hidden 8-bit A part $88/A5B9 A9 00 LDA #$00 $88/A5BB EB XBA $88/A5BC C9 10 CMP #$10 $88/A5BE 90 02 BCC $02 ; [$A5C2] Branch if value is lower than #$11
- code is missing here
$88/A5C2 AA TAX ; Transfer A in X as Load Index $88/A5C3 BF C9 A5 88 LDA $88A5C9,x ; Load value from the table below $88/A5C7 FA PLX ; Restore X from stack $88/A5C8 6B RTL
$88/A5C9 01 $88/A5CA 01 $88/A5CB 02 $88/A5CC 00 $88/A5CD 00 $88/A5CE 06 $88/A5CF 00 $88/A5D0 03 $88/A5D1 04 $88/A5D2 05 $88/A5D3 02 $88/A5D4 05 $88/A5D5 04 $88/A5D6 05 $88/A5D7 07 $88/A5D8 00
$88/A5D9 ?
$88/A5D9 DA PHX ; Buffer X (Figure number) on stack $88/A5DA 22 38 A1 88 JSL $88A138 ; Load Figure's Character Class/Graphic Set number $88/A5DE AA TAX ; Transfer Figure's Character Class/Graphic Set number in X $88/A5DF BF F2 A8 88 LDA $88A8F2,x[$88:A926] A:0034 X:0034 Y:0004 P:envMxdizc $88/A5E3 FA PLX ; Restore X (Figure Number) from stack $88/A5E4 6B RTL
This is related to the lower sprite for one animation step for the characters on the battle field, its the animation step that stays on screen the most.
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 50 51 50 51 52 53 54 55 56 57 5B 5B 58 59 5A 2F 30 08 3F 1F 20 21 22 23 24 25 26 27 28 39 3C 3A 3B 29 2A 2B 2C 32 33 34 35 36 2D 37 38 3C 3A 3B 29 FF 3E FF FF FF FF FF FF FF FF FF 40 38 3D 12 31 31 21 31 21 2E 2E 31 38 38 39 0C 21 08 53 58 56 55 1A 04 07 55 5A 56 56 58 19 53 56 56 51 53 55 5A 5B 5B 55 57 51 59 56 55 59 5A 01 02 03 09 0E 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED DE EF
$88/A8F2 ? Data Table
00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 04 05 05 06 01 01 01 01 01 10 10 10 10 10 11 10 12 14 14 17 18 16 15 13 01 01 01 01 01 01 01 01 01 01 01 01 06 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 11 16 14 12 01 01 01 12 13 14 14 16 06 11 14 14 10 11 12 13 17 18 12 14 10 15 14 12 15 13 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 14 14 01 01 01 01 01 01 01 01 01 01 14 14 01 01 01 01 06 01 01 01 01 01 01 01 01 01 01 01 06 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
$88/A9E2 List for 88/A3D1
This list turns a Character Sprite number ($17AE) into another value, see $88/A3D1.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 31 32 32 34 35 35 35 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 3D 3E 3F 40 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 34 62 34 64 65 66 4B 5C 3C 5D 34 9B 6D 6E 6F 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE 00 00 00 00 00 00 00 00 00 00 00 00 00 DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED DE EF
$88/AAD2 List?
These Values are transfered to $7E17AF,X. These are values for Battle figures.
$88/AAD2 00 - Entry #$00 $88/AAD3 01 - Entry #$01 $88/AAD4 02 - Entry #$02 $88/AAD5 03 - Entry #$03 $88/AAD6 04 - Entry #$04 $88/AAD7 05 - Entry #$05 $88/AAD8 06 - Entry #$06 $88/AAD9 07 - Entry #$07 $88/AADA 08 - Entry #$08 $88/AADB 09 - Entry #$09 $88/AADC 0A - Entry #$0A $88/AADD 0B - Entry #$0B $88/AADE 0C - Entry #$0C $88/AADF 0D - Entry #$0D $88/AAE0 0E - Entry #$0E $88/AAE1 0F - Entry #$0F $88/AAE2 10 - Entry #$10 $88/AAE3 11 - Entry #$11 $88/AAE4 12 - Entry #$12 $88/AAE5 13 - Entry #$13 $88/AAE6 14 - Entry #$14 $88/AAE7 15 - Entry #$15 $88/AAE8 16 - Entry #$16 $88/AAE9 17 - Entry #$17 $88/AAEA 18 - Entry #$18 $88/AAEB 19 - Entry #$19 $88/AAEC 1A - Entry #$1A $88/AAED 1B - Entry #$1B $88/AAEE 1C - Entry #$1C $88/AAEF 1D - Entry #$1D $88/AAF0 1E - Entry #$1E $88/AAF1 1F - Entry #$1F $88/AAF2 20 - Entry #$20 $88/AAF3 21 - Entry #$21 $88/AAF4 22 - Entry #$22 $88/AAF5 23 - Entry #$23 $88/AAF6 24 - Entry #$24 $88/AAF7 25 - Entry #$25 $88/AAF8 26 - Entry #$26 $88/AAF9 27 - Entry #$27 $88/AAFA 28 - Entry #$28 $88/AAFB 29 - Entry #$29 $88/AAFC 2A - Entry #$2A $88/AAFD 2B - Entry #$2B $88/AAFE 2C - Entry #$2C $88/AAFF 2D - Entry #$2D $88/AB00 2E - Entry #$2E $88/AB01 2F - Entry #$2F $88/AB02 6C - Entry #$30 $88/AB03 31 - Entry #$31 $88/AB04 FF - Entry #$32 $88/AB05 33 - Entry #$33 $88/AB06 34 - Entry #$34 $88/AB07 35 - Entry #$35 $88/AB08 36 - Entry #$36 $88/AB09 37 - Entry #$37 $88/AB0A 38 - Entry #$38 $88/AB0B 39 - Entry #$39 $88/AB0C 3A - Entry #$3A $88/AB0D 3B - Entry #$3B $88/AB0E 3C - Entry #$3C $88/AB0F 3D - Entry #$3D $88/AB10 3E - Entry #$3E $88/AB11 3F - Entry #$3F $88/AB12 40 - Entry #$40 $88/AB13 41 - Entry #$41 $88/AB14 42 - Entry #$42 $88/AB15 43 - Entry #$43 $88/AB16 44 - Entry #$44 $88/AB17 45 - Entry #$45 $88/AB18 46 - Entry #$46 $88/AB19 47 - Entry #$47 $88/AB1A 48 - Entry #$48 $88/AB1B 49 - Entry #$49 $88/AB1C 4A - Entry #$4A $88/AB1D 02 - Entry #$4B $88/AB1E 0E - Entry #$4C $88/AB1F 0F - Entry #$4D $88/AB20 12 - Entry #$4E $88/AB21 15 - Entry #$4F $88/AB22 0B - Entry #$50 $88/AB23 05 - Entry #$51 $88/AB24 02 - Entry #$52 $88/AB25 09 - Entry #$53 $88/AB26 10 - Entry #$54 $88/AB27 11 - Entry #$55 $88/AB28 06 - Entry #$56 $88/AB29 03 - Entry #$57 $88/AB2A 04 - Entry #$58 $88/AB2B 15 - Entry #$59 $88/AB2C 0A - Entry #$5A $88/AB2D 05 - Entry #$5B $88/AB2E 02 - Entry #$5C $88/AB2F 5D - Entry #$5D $88/AB30 5E - Entry #$5E $88/AB31 5F - Entry #$5F $88/AB32 60 - Entry #$60 $88/AB33 61 - Entry #$61 $88/AB34 62 - Entry #$62 $88/AB35 63 - Entry #$63 $88/AB36 64 - Entry #$64 $88/AB37 65 - Entry #$65 $88/AB38 66 - Entry #$66 $88/AB39 67 - Entry #$67 $88/AB3A 68 - Entry #$68 $88/AB3B 69 - Entry #$69 $88/AB3C 6A - Entry #$6A $88/AB3D 6B - Entry #$6B $88/AB3E 6C - Entry #$6C $88/AB3F 6D - Entry #$6D $88/AB40 6E - Entry #$6E $88/AB41 6F - Entry #$6F $88/AB42 70 - Entry #$70 $88/AB43 71 - Entry #$71 $88/AB44 72 - Entry #$72 $88/AB45 73 - Entry #$73 $88/AB46 74 - Entry #$74 $88/AB47 75 - Entry #$75 $88/AB48 76 - Entry #$76 $88/AB49 77 - Entry #$77 $88/AB4A 78 - Entry #$78 $88/AB4B 79 - Entry #$79 $88/AB4C 7A - Entry #$7A $88/AB4D 7B - Entry #$7B $88/AB4E 7C - Entry #$7C $88/AB4F 7D - Entry #$7D $88/AB50 7E - Entry #$7E $88/AB51 7F - Entry #$7F $88/AB52 80 - Entry #$80 $88/AB53 81 - Entry #$81 $88/AB54 82 - Entry #$82 $88/AB55 83 - Entry #$83 $88/AB56 84 - Entry #$84 $88/AB57 85 - Entry #$85 $88/AB58 86 - Entry #$86 $88/AB59 87 - Entry #$87 $88/AB5A 88 - Entry #$88 $88/AB5B 89 - Entry #$89 $88/AB5C 8A - Entry #$8A $88/AB5D 8B - Entry #$8B $88/AB5E 8C - Entry #$8C $88/AB5F 8D - Entry #$8D $88/AB60 8E - Entry #$8E $88/AB61 8F - Entry #$8F $88/AB62 90 - Entry #$90 $88/AB63 03 - Entry #$91 $88/AB64 02 - Entry #$92 $88/AB65 09 - Entry #$93 $88/AB66 13 - Entry #$94 $88/AB67 10 - Entry #$95 $88/AB68 02 - Entry #$96 $88/AB69 14 - Entry #$97 $88/AB6A 03 - Entry #$98 $88/AB6B 02 - Entry #$99 $88/AB6C 02 - Entry #$9A $88/AB6D 08 - Entry #$9B $88/AB6E 27 - Entry #$9C $88/AB6F 27 - Entry #$9D $88/AB70 07 - Entry #$9E $88/AB71 02 - Entry #$9F $88/AB72 03 - Entry #$A0 $88/AB73 0F - Entry #$A1 $88/AB74 09 - Entry #$A2 $88/AB75 09 - Entry #$A3 $88/AB76 10 - Entry #$A4 $88/AB77 07 - Entry #$A5 $88/AB78 04 - Entry #$A6 $88/AB79 14 - Entry #$A7 $88/AB7A 28 - Entry #$A8 $88/AB7B 28 - Entry #$A9 $88/AB7C 09 - Entry #$AA $88/AB7D 0F - Entry #$AB $88/AB7E 02 - Entry #$AC $88/AB7F 09 - Entry #$AD $88/AB80 19 - Entry #$AE $88/AB81 12 - Entry #$AF $88/AB82 13 - Entry #$B0 $88/AB83 05 - Entry #$B1 $88/AB84 02 - Entry #$B2 $88/AB85 03 - Entry #$B3 $88/AB86 02 - Entry #$B4 $88/AB87 04 - Entry #$B5 $88/AB88 02 - Entry #$B6 $88/AB89 0B - Entry #$B7 $88/AB8A 15 - Entry #$B8 $88/AB8B 09 - Entry #$B9 $88/AB8C 19 - Entry #$BA $88/AB8D 07 - Entry #$BB $88/AB8E 04 - Entry #$BC $88/AB8F 09 - Entry #$BD $88/AB90 0A - Entry #$BE $88/AB91 06 - Entry #$BF $88/AB92 0D - Entry #$C0 $88/AB93 08 - Entry #$C1 $88/AB94 05 - Entry #$C2 $88/AB95 11 - Entry #$C3 $88/AB96 04 - Entry #$C4 $88/AB97 02 - Entry #$C5 $88/AB98 02 - Entry #$C6 $88/AB99 0B - Entry #$C7 $88/AB9A 0D - Entry #$C8 $88/AB9B 03 - Entry #$C9 $88/AB9C 05 - Entry #$CA $88/AB9D 03 - Entry #$CB $88/AB9E 0C - Entry #$CC $88/AB9F 2E - Entry #$CD $88/ABA0 0C - Entry #$CE $88/ABA1 00 - Entry #$CF
$88/AD9E Big Sprite Flag Table
These bits correspond to a Character Class value (stored in $17AF,x). If the bit is set, this is a big sprite (double width, like dragons or octopusses).
$88/AD9E 00 - %0000.0000 $88/AD9F 00 - %0000.0000 $88/ADA0 00 - %0000.0000 $88/ADA1 80 - %1000.0000 $88/ADA2 FF - %1111.1111 $88/ADA3 3F - %0111.1111 $88/ADA4 00 - %0000.0000 $88/ADA5 00 - %0000.0000 $88/ADA6 00 - %0000.0000 $88/ADA7 00 - %0000.0000 $88/ADA8 00 - %0000.0000 $88/ADA9 00 - %0000.0000 $88/ADAA 00 - %0000.0000 $88/ADAB E0 - %1110.0000 $88/ADAC F1 - %1111.0001 $88/ADAD FD - %1111.1101 $88/ADAE FF - %1111.1111 $88/ADAF 07 - %0000.0111 $88/ADB0 00 - %0000.0000 $88/ADB1 30 - %0011.0000 $88/ADB2 00 - %0000.0000 $88/ADB3 03 - %0000.0011 $88/ADB4 00 - %0000.0000 $88/ADB5 00 - %0000.0000 $88/ADB6 00 - %0000.0000 $88/ADB7 00 - %0000.0000 $88/ADB8 00 - %0000.0000 $88/ADB9 00 - %0000.0000 $88/ADBA 00 - %0000.0000 $88/ADBB 00 - %0000.0000 $88/ADBC 00 - %0000.0000 $88/ADBD 00 - %0000.0000
$88/C75B ? Data List for Figure Character Class values
01 01 01 01 01 01 05 01 00 00 00 00 01 09 09 09 09 00 01 00 00 02 0E 0E 02 09 01 01 0F 01 00 00 00 00 00 00 00 00 02 02 08 08 00 00 01 00 01 FF 01 FF 05 01 00 00 00 01 00 02 01 01 00 00 00 00 01 00 03 01 01 01 01 01 09 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 01 00 00 05 00 01 00 00 00 01 01 01 00 01 01 00 00 02 00 01 01 05 00 00 02 02 00 02 00 02 02 00 00 00 00 08 08 00 02 00 00 02 00 00 01 01 01 01 01 01 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Bank $89
$89/B62A NEW GAME: Symbol Cloud Pattern OAM entries
During the new game creation process, there are symbols that appear and rotate (thanks to window mask effects). These symbols are filled with a half-transparent cloud pattern. This pattern is a number of sprites that are moving constantly upwards. This subroutine creates the OAM entries for these sprites. Right behind this subroutines are some "green bodies" for those entries which are loaded and marginally altered.
$89/B3EA A6 DF LDX $DF [$00:00DF] A:0000 X:38FB Y:02BE P:envMxdiZc $89/B3EC DE A5 00 DEC $00A5,x ; Decrement scroll value - sprite move upwards $89/B3EF BD A5 00 LDA $00A5,x ; Load Scroll value and buffer it in $00 $89/B3F2 85 00 STA $00 $89/B3F4 7B TDC ; Clear 16-bit A $89/B3F5 AA TAX ; Clear X (to use it as Load/Store Index) $89/B3F6 BF 36 B4 89 LDA $89B436,x ; Load X-value from green body $89/B3FA 9D 00 01 STA $0100,x ; Set as X-value in OAM buffer $89/B3FD BF 37 B4 89 LDA $89B437,x ; Load Y-value from green body $89/B401 18 CLC ; Add buffered scroll value $89/B402 65 00 ADC $00 $89/B404 9D 01 01 STA $0101,x ; Set as Y-value in OAM buffer $89/B407 BF 38 B4 89 LDA $89B438,x ; Load graphic number from green body $89/B40B 9D 02 01 STA $0102,x ; Set as graphic number in OAM buffer $89/B40E BF 39 B4 89 LDA $89B439,x ; Load graphic settings from green body $89/B412 9D 03 01 STA $0103,x ; Set as graphic settings in OAM buffer $89/B415 E8 INX ; Increment Index four times so it points... $89/B416 E8 INX ; ... to the next OAM entry $89/B417 E8 INX $89/B418 E8 INX $89/B419 E0 38 00 CPX #$0038 ; Repeat until every entry is done $89/B41C 90 D8 BCC $D8 ; [$B3F6] $89/B41E A9 AA LDA #$AA A:00B2 X:0038 Y:02BE P:envMxdiZC $89/B420 8D 00 03 STA $0300 [$7E:0300] A:00AA X:0038 Y:02BE P:eNvMxdizC $89/B423 A9 AA LDA #$AA A:00AA X:0038 Y:02BE P:eNvMxdizC $89/B425 8D 01 03 STA $0301 [$7E:0301] A:00AA X:0038 Y:02BE P:eNvMxdizC $89/B428 A9 AA LDA #$AA A:00AA X:0038 Y:02BE P:eNvMxdizC $89/B42A 8D 02 03 STA $0302 [$7E:0302] A:00AA X:0038 Y:02BE P:eNvMxdizC $89/B42D A9 0A LDA #$0A A:00AA X:0038 Y:02BE P:eNvMxdizC $89/B42F 8D 03 03 STA $0303 [$7E:0303] A:000A X:0038 Y:02BE P:envMxdizC $89/B432 EE 40 05 INC $0540 [$7E:0540] A:000A X:0038 Y:02BE P:envMxdizC $89/B435 60 RTS A:000A X:0038 Y:02BE P:envMxdizC
$89/B436 00 00 00 B2 - SPRITE 0: X: 00 Y:00 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B43A 40 00 00 B2 - SPRITE 1: X: 40 Y:00 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B43E 80 00 00 B2 - SPRITE 2: X: 80 Y:00 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B442 C0 00 00 B2 - SPRITE 3: X: C0 Y:00 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B446 20 40 00 B2 - SPRITE 4: X: 20 Y:40 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B44A 60 40 00 B2 - SPRITE 5: X: 60 Y:40 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B44E A0 40 00 B2 - SPRITE 6: X: A0 Y:40 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B452 00 80 00 B2 - SPRITE 7: X: 00 Y:80 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B456 40 80 00 B2 - SPRITE 8: X: 40 Y:80 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B45A 80 80 00 B2 - SPRITE 9: X: 80 Y:80 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B45E C0 80 00 B2 - SPRITE A: X: C0 Y:80 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B462 20 C0 00 B2 - SPRITE B: X: 20 Y:C0 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B466 60 C0 00 B2 - SPRITE C: X: 50 Y:C0 Graphic: 00 V-Flip, Priority 3, Palette 1 $89/B46A A0 C0 00 B2 - SPRITE D: X: A0 Y:C0 Graphic: 00 V-Flip, Priority 3, Palette 1
$89/B62A NEW GAME: ?
During the new game creation process, this is executed when one of these artworks gets loaded
$89/B62A 22 EB 9E 80 JSL $809EEB ; VRAM DMA of the following data: $89/B62E 80 F1 7F Address: $7F/F180 $89/B631 C0 7E VRAM Address: $7EC0 $89/B633 00 01 Transfer $0100 Bytes $89/B635 60 RTS
$89/BE00 NEW GAME: ?
During the new game creation process, this is executed when one of the Goddesses' artworks gets loaded
This sets the BG2 tilemap (which is the artwork of the figure)
$89/BE00 A2 80 ED LDX #$ED80 ; Set up data transfer to $7FED80 - BG2 Tilemap Buffer $89/BE03 86 20 STX $20 $89/BE05 A9 7F LDA #$7F $89/BE07 85 22 STA $22 $89/BE09 A6 DF LDX $DF [$00:00DF] A:FF7F X:ED80 Y:61D7 P:envMxdizC $89/BE0B 7B TDC ; Clear 16-bit A $89/BE0C BD 27 00 LDA $0027,x[$7E:2027] A:0000 X:2000 Y:61D7 P:envMxdiZC $89/BE0F EB XBA ; Multiply value by #$0400 and set A to 16-bit $89/BE10 C2 20 REP #$20 $89/BE12 0A ASL A $89/BE13 0A ASL A $89/BE14 65 5C ADC $5C [$00:005C] A:0800 X:2000 Y:61D7 P:envmxdizc $89/BE16 AA TAX A:59D7 X:2000 Y:61D7 P:envmxdizc $89/BE17 E2 20 SEP #$20 A:59D7 X:59D7 Y:61D7 P:envmxdizc $89/BE19 A9 7E LDA #$7E $89/BE1B A0 00 04 LDY #$0400 ; Transfer $0400 Byte $89/BE1E 22 33 8D 9A JSL $9A8D33 ; Transfer Data from $7E/59D7 to $7F/ED80 $89/BE22 A9 80 LDA #$80 ; VRAM transfer settings ($2115) $89/BE24 85 0E STA $0E $89/BE26 A2 00 04 LDX #$0400 ; Number of Bytes to transfer: #$400 $89/BE29 86 0C STX $0C $89/BE2B A0 C0 7C LDY #$7CC0 ; VRAM Destination $7CC0 $89/BE2E A2 80 ED LDX #$ED80 ; Source Address: $7F/ED80 $89/BE31 A9 7F LDA #$7F $89/BE33 22 24 9F 80 JSL $809F24 ; VRAM DMA $89/BE37 60 RTS
Bank $8B
$8B/81C6 ?
$8B/81C6 64 45 STZ $45 [$00:0045] A:0001 X:0006 Y:0001 P:envMxdizc $8B/81C8 64 46 STZ $46 [$00:0046] A:0001 X:0006 Y:0001 P:envMxdizc $8B/81CA 8B PHB A:0001 X:0006 Y:0001 P:envMxdizc $8B/81CB 4B PHK A:0001 X:0006 Y:0001 P:envMxdizc $8B/81CC AB PLB A:0001 X:0006 Y:0001 P:envMxdizc $8B/81CD 48 PHA A:0001 X:0006 Y:0001 P:eNvMxdizc $8B/81CE EB XBA A:0001 X:0006 Y:0001 P:eNvMxdizc $8B/81CF 68 PLA A:0100 X:0006 Y:0001 P:envMxdiZc $8B/81D0 20 69 82 JSR $8269 [$8B:8269] A:0101 X:0006 Y:0001 P:envMxdizc $8B/81D3 A5 00 LDA $00 [$00:0000] A:01FF X:0006 Y:0001 P:eNvMxdizc $8B/81D5 9D 04 0A STA $0A04,x[$8B:0A0A] A:0109 X:0006 Y:0001 P:envMxdizc $8B/81D8 A5 01 LDA $01 [$00:0001] A:0109 X:0006 Y:0001 P:envMxdizc $8B/81DA 9D 44 0A STA $0A44,x[$8B:0A4A] A:0107 X:0006 Y:0001 P:envMxdizc $8B/81DD A5 02 LDA $02 [$00:0002] A:0107 X:0006 Y:0001 P:envMxdizc $8B/81DF 9D 84 0A STA $0A84,x[$8B:0A8A] A:0108 X:0006 Y:0001 P:envMxdizc $8B/81E2 A9 80 LDA #$80 A:0108 X:0006 Y:0001 P:envMxdizc $8B/81E4 9D 03 0A STA $0A03,x[$8B:0A09] A:0180 X:0006 Y:0001 P:eNvMxdizc $8B/81E7 9D 43 0A STA $0A43,x[$8B:0A49] A:0180 X:0006 Y:0001 P:eNvMxdizc $8B/81EA 9E 83 0A STZ $0A83,x[$8B:0A89] A:0180 X:0006 Y:0001 P:eNvMxdizc $8B/81ED A9 01 LDA #$01 A:0180 X:0006 Y:0001 P:eNvMxdizc $8B/81EF 9D 04 06 STA $0604,x[$8B:060A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/81F2 9D 44 0C STA $0C44,x[$8B:0C4A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/81F5 A9 01 LDA #$01 A:0101 X:0006 Y:0001 P:envMxdizc $8B/81F7 9D 43 08 STA $0843,x[$8B:0849] A:0101 X:0006 Y:0001 P:envMxdizc $8B/81FA B9 0B 82 LDA $820B,y[$8B:820C] A:0101 X:0006 Y:0001 P:envMxdizc $8B/81FD 9D C3 08 STA $08C3,x[$8B:08C9] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8200 C2 20 REP #$20 A:0101 X:0006 Y:0001 P:envMxdizc $8B/8202 A5 00 LDA $00 [$00:0000] A:0101 X:0006 Y:0001 P:envmxdizc $8B/8204 9D 43 09 STA $0943,x[$8B:0949] A:0709 X:0006 Y:0001 P:envmxdizc $8B/8207 E2 20 SEP #$20 A:0709 X:0006 Y:0001 P:envmxdizc $8B/8209 AB PLB A:0709 X:0006 Y:0001 P:envMxdizc $8B/820A 6B RTL A:0709 X:0006 Y:0001 P:eNvMxdizc
$8B/8269 ?
$8B/8269 9D 03 06 STA $0603,x[$8B:0609] A:0101 X:0006 Y:0001 P:envMxdizc $8B/826C EB XBA A:0101 X:0006 Y:0001 P:envMxdizc $8B/826D 9D 43 06 STA $0643,x[$8B:0649] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8270 9E 04 06 STZ $0604,x[$8B:060A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8273 9E 44 0C STZ $0C44,x[$8B:0C4A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8276 9E 44 06 STZ $0644,x[$8B:064A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8279 9E 83 06 STZ $0683,x[$8B:0689] A:0101 X:0006 Y:0001 P:envMxdizc $8B/827C 9E 84 06 STZ $0684,x[$8B:068A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/827F 9E C3 07 STZ $07C3,x[$8B:07C9] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8282 9E 43 08 STZ $0843,x[$8B:0849] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8285 9E 44 08 STZ $0844,x[$8B:084A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8288 9E 04 07 STZ $0704,x[$8B:070A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/828B 9E C3 08 STZ $08C3,x[$8B:08C9] A:0101 X:0006 Y:0001 P:envMxdizc $8B/828E 9E C4 08 STZ $08C4,x[$8B:08CA] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8291 9E 83 08 STZ $0883,x[$8B:0889] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8294 9E 03 09 STZ $0903,x[$8B:0909] A:0101 X:0006 Y:0001 P:envMxdizc $8B/8297 9E 83 0B STZ $0B83,x[$8B:0B89] A:0101 X:0006 Y:0001 P:envMxdizc $8B/829A 9E 84 0B STZ $0B84,x[$8B:0B8A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/829D 9E C3 0B STZ $0BC3,x[$8B:0BC9] A:0101 X:0006 Y:0001 P:envMxdizc $8B/82A0 9E 04 09 STZ $0904,x[$8B:090A] A:0101 X:0006 Y:0001 P:envMxdizc $8B/82A3 A9 FF LDA #$FF A:0101 X:0006 Y:0001 P:envMxdizc $8B/82A5 9D C4 09 STA $09C4,x[$8B:09CA] A:01FF X:0006 Y:0001 P:eNvMxdizc $8B/82A8 9D C3 09 STA $09C3,x[$8B:09C9] A:01FF X:0006 Y:0001 P:eNvMxdizc $8B/82AB 9E C3 06 STZ $06C3,x[$8B:06C9] A:01FF X:0006 Y:0001 P:eNvMxdizc $8B/82AE 9D C4 06 STA $06C4,x[$8B:06CA] A:01FF X:0006 Y:0001 P:eNvMxdizc $8B/82B1 C2 20 REP #$20 A:01FF X:0006 Y:0001 P:eNvMxdizc $8B/82B3 9E C3 0A STZ $0AC3,x[$8B:0AC9] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82B6 9E 03 0B STZ $0B03,x[$8B:0B09] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82B9 9E 43 0B STZ $0B43,x[$8B:0B49] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82BC 9E 83 0C STZ $0C83,x[$8B:0C89] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82BF 9E C3 0C STZ $0CC3,x[$8B:0CC9] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82C2 9E 03 0D STZ $0D03,x[$8B:0D09] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82C5 9E 43 0D STZ $0D43,x[$8B:0D49] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82C8 9E 83 0D STZ $0D83,x[$8B:0D89] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82CB 9E C3 0D STZ $0DC3,x[$8B:0DC9] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82CE 9E 03 0E STZ $0E03,x[$8B:0E09] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82D1 9E 43 0E STZ $0E43,x[$8B:0E49] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82D4 9E 83 09 STZ $0983,x[$8B:0989] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82D7 9E 43 09 STZ $0943,x[$8B:0949] A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82DA E2 20 SEP #$20 A:01FF X:0006 Y:0001 P:eNvmxdizc $8B/82DC 60 RTS A:01FF X:0006 Y:0001 P:eNvMxdizc
Bank $8F
$8F/8000 CENTRAL SOUND JUMP TABLE
$8F/8000 4C 0F 80 JMP $800F [$8F:800F] A:0001 X:8069 Y:2000 P:envMxdIzc $8F/8003 4C 8E 80 JMP $808E [$8F:808E] A:0021 X:05DD Y:0004 P:envMxdIzc
$8F/800C 4C 10 84 JMP $8410 [$8F:8410] A:A100 X:05DD Y:0004 P:envMxdIZc
$8F/800F SOUND: SPC boot / APU/CPU handshake
Line $8F/808C could be removed, because when this part of the code is executed, there is nothing outside of this subroutine that checks this error flag.
$8F/800F 08 PHP ; Buffer Status Register and Data Bank on Stack $8F/8010 8B PHB $8F/8011 4B PHK ; Set Data Bank to $8F $8F/8012 AB PLB $8F/8013 E2 20 SEP #$20 ; A = 8-bit $8F/8015 C2 10 REP #$10 ; X/Y = 16-bit $8F/8017 A0 00 00 LDY #$0000 ; Setup retry counter $8F/801A A9 FF LDA #$FF A:0001 X:8069 Y:0000 P:envMxdIZc $8F/801C 85 F4 STA $F4 [$00:00F4] A:00FF X:8069 Y:0000 P:eNvMxdIzc $8F/801E 85 F9 STA $F9 [$00:00F9] A:00FF X:8069 Y:0000 P:eNvMxdIzc $8F/8020 A2 AA BB LDX #$BBAA ; Check if the SPC sends it Ready signal $8F/8023 EC 40 21 CPX $2140 $8F/8026 F0 05 BEQ $05 ; [$802D] Branch if it does $8F/8028 88 DEY ; Decrement retry counter $8F/8029 D0 EF BNE $EF ; [$801A] Loop if retry counter hasn't reached zero $8F/802B 80 54 BRA $54 ; [$8081] Branch if retry counter has run out $8F/802D A2 00 06 LDX #$0600 A:00FF X:BBAA Y:0000 P:envMxdIZC $8F/8030 8E 42 21 STX $2142 [$8F:2142] A:00FF X:0600 Y:0000 P:envMxdIzC $8F/8033 A9 01 LDA #$01 A:00FF X:0600 Y:0000 P:envMxdIzC $8F/8035 8D 41 21 STA $2141 [$8F:2141] A:0001 X:0600 Y:0000 P:envMxdIzC $8F/8038 A9 CC LDA #$CC A:0001 X:0600 Y:0000 P:envMxdIzC $8F/803A 8D 40 21 STA $2140 [$8F:2140] A:00CC X:0600 Y:0000 P:eNvMxdIzC $8F/803D CD 40 21 CMP $2140 [$8F:2140] A:00CC X:0600 Y:0000 P:eNvMxdIzC $8F/8040 D0 EB BNE $EB [$802D] A:00CC X:0600 Y:0000 P:envMxdIzC $8F/8042 A2 E2 19 LDX #$19E2 A:00CC X:0600 Y:0000 P:envMxdIZC $8F/8045 A0 00 00 LDY #$0000 A:00CC X:19E2 Y:0000 P:envMxdIzC $8F/8048 B9 4E 84 LDA $844E,y[$8F:844E] A:00CC X:19E2 Y:0000 P:envMxdIZC $8F/804B 8D 41 21 STA $2141 [$8F:2141] A:0020 X:19E2 Y:0000 P:envMxdIzC $8F/804E 98 TYA A:0020 X:19E2 Y:0000 P:envMxdIzC $8F/804F 8D 40 21 STA $2140 [$8F:2140] A:0000 X:19E2 Y:0000 P:envMxdIZC $8F/8052 CD 40 21 CMP $2140 [$8F:2140] A:0000 X:19E2 Y:0000 P:envMxdIZC $8F/8055 D0 F1 BNE $F1 [$8048] A:0000 X:19E2 Y:0000 P:envMxdIzc $8F/8057 C8 INY A:0000 X:19E2 Y:0000 P:envMxdIZC $8F/8058 CA DEX A:0000 X:19E2 Y:0001 P:envMxdIzC $8F/8059 D0 ED BNE $ED [$8048] A:0000 X:19E1 Y:0001 P:envMxdIzC $8F/805B A2 00 06 LDX #$0600 A:00E1 X:0000 Y:19E2 P:envMxdIZC $8F/805E 8E 42 21 STX $2142 [$8F:2142] A:00E1 X:0600 Y:19E2 P:envMxdIzC $8F/8061 8A TXA A:00E1 X:0600 Y:19E2 P:envMxdIzC $8F/8062 8D 41 21 STA $2141 [$8F:2141] A:0000 X:0600 Y:19E2 P:envMxdIZC $8F/8065 98 TYA A:0000 X:0600 Y:19E2 P:envMxdIZC $8F/8066 69 03 ADC #$03 A:00E2 X:0600 Y:19E2 P:eNvMxdIzC $8F/8068 F0 FC BEQ $FC [$8066] A:00E6 X:0600 Y:19E2 P:eNvMxdIzc $8F/806A 8D 40 21 STA $2140 [$8F:2140] A:00E6 X:0600 Y:19E2 P:eNvMxdIzc $8F/806D AE 42 21 LDX $2142 [$8F:2142] A:00E6 X:0600 Y:19E2 P:eNvMxdIzc $8F/8070 E0 00 01 CPX #$0100 A:00E6 X:0000 Y:19E2 P:envMxdIZc $8F/8073 D0 F5 BNE $F5 [$806A] A:00E6 X:0000 Y:19E2 P:eNvMxdIzc $8F/8075 E2 20 SEP #$20 A:00E6 X:0100 Y:19E2 P:envMxdIZC $8F/8077 A9 01 LDA #$01 A:00E6 X:0100 Y:19E2 P:envMxdIZC $8F/8079 85 FA STA $FA [$00:00FA] A:0001 X:0100 Y:19E2 P:envMxdIzC $8F/807B 64 F9 STZ $F9 [$00:00F9] A:0001 X:0100 Y:19E2 P:envMxdIzC $8F/807D AB PLB A:0001 X:0100 Y:19E2 P:envMxdIzC $8F/807E 28 PLP A:0001 X:0100 Y:19E2 P:envMxdIZC $8F/807F 18 CLC A:0001 X:0100 Y:19E2 P:envMxdIzc $8F/8080 6B RTL A:0001 X:0100 Y:19E2 P:envMxdIzc $8F/8081 E2 20 SEP #$20 ; A = 8-bit $8F/8083 AD 43 21 LDA $2143 ; Update $2143 Buffer (might contain an error code?) $8F/8086 85 FA STA $FA $8F/8088 64 F9 STZ $F9 [$00:00F9] A:0036 X:BBAA Y:0000 P:envMxdIzC $8F/808A AB PLB ; Restore Data Bank and Status Flag register $8F/808B 28 PLP $8F/808C 38 SEC ; This line could be removed - Set error flag $8F/808D 6B RTL
This subroutine seems to correspond with the subroutine in the SPC code at $1D95.
This subroutine waits for the ready signal #$33CC in the registers $2140/1 ($F4/5). After that, it can prepare the values that should be transfered to the SPC in $2142/3 ($F6/7). If that is done, the CPU puts #$AA in $2140 ($F4) to signal it is done with putting in instructions.
$8F/808E 08 PHP ; Buffer Status Flag register and Data Bank on Stack $8F/808F 8B PHB $8F/8090 4B PHK ; Set Data Bank to $8F $8F/8091 AB PLB $8F/8092 E2 30 SEP #$30 ; A/X/Y = 8-bit $8F/8094 0A ASL A A:0021 X:00DD Y:0004 P:eNvMXdIzc $8F/8095 AA TAX A:0042 X:00DD Y:0004 P:envMXdIzc $8F/8096 C2 10 REP #$10 ; X/Y = 16-bit $8F/8098 BC BD 80 LDY $80BD,x[$8F:80FF] A:0042 X:0042 Y:0004 P:envMxdIzc $8F/809B 5A PHY A:0042 X:0042 Y:9E57 P:eNvMxdIzc $8F/809C A9 FF LDA #$FF A:0042 X:0042 Y:9E57 P:eNvMxdIzc $8F/809E 85 F9 STA $F9 [$00:00F9] A:00FF X:0042 Y:9E57 P:eNvMxdIzc $8F/80A0 85 F4 STA $F4 [$00:00F4] A:00FF X:0042 Y:9E57 P:eNvMxdIzc $8F/80A2 A9 FC LDA #$FC A:00FF X:0042 Y:9E57 P:eNvMxdIzc $8F/80A4 85 F5 STA $F5 [$00:00F5] A:00FC X:0042 Y:9E57 P:eNvMxdIzc $8F/80A6 22 CE 83 8F JSL $8F83CE ; Check for signals from the SPC $8F/80AA B0 F6 BCS $F6 ; [$80A2] Loop if there is a signal $8F/80AC A0 CC 33 LDY #$33CC ; Wait for SPC ready signal #$33CC in $2140/1 $8F/80AF CC 40 21 CPY $2140 $8F/80B2 D0 F8 BNE $F8 ; [$80AC] Loop until then $8F/80B4 7A PLY A:0039 X:0042 Y:33CC P:envMxdIzC $8F/80B5 20 08 83 JSR $8308 [$8F:8308] A:0039 X:0042 Y:9E57 P:eNvMxdIzC $8F/80B8 64 F9 STZ $F9 [$00:00F9] A:0002 X:33CC Y:9E7A P:envMxdIzC $8F/80BA AB PLB ; Restore Data Bank and Status Flag register $8F/80BB 28 PLP $8F/80BC 6B RTL
This subroutine seems to correspond with the subroutine in the SPC code at $1D95.
See $8F/808E for further explanation.
$8F/8308 84 02 STY $02 [$00:0002] A:0039 X:0042 Y:9E57 P:eNvMxdIzC $8F/830A 64 FF STZ $FF [$00:00FF] A:0039 X:0042 Y:9E57 P:eNvMxdIzC $8F/830C 64 FD STZ $FD [$00:00FD] A:0039 X:0042 Y:9E57 P:eNvMxdIzC $8F/830E 64 FE STZ $FE [$00:00FE] A:0039 X:0042 Y:9E57 P:eNvMxdIzC $8F/8310 64 FB STZ $FB [$00:00FB] A:0039 X:0042 Y:9E57 P:eNvMxdIzC $8F/8312 64 FC STZ $FC [$00:00FC] A:0039 X:0042 Y:9E57 P:eNvMxdIzC $8F/8314 A9 80 LDA #$80 A:0039 X:0042 Y:9E57 P:eNvMxdIzC $8F/8316 85 F9 STA $F9 [$00:00F9] A:0080 X:0042 Y:9E57 P:eNvMxdIzC $8F/8318 8B PHB A:0080 X:0042 Y:9E57 P:eNvMxdIzC $8F/8319 A4 02 LDY $02 [$00:0002] A:0080 X:0042 Y:9E57 P:eNvMxdIzC $8F/831B 84 04 STY $04 [$00:0004] A:0080 X:0042 Y:9E57 P:eNvMxdIzC $8F/831D C2 20 REP #$20 ; A = 16-bit $8F/831F B9 00 00 LDA $0000,y ; Transfer a double byte to SPC via $2142/3 $8F/8322 8D 42 21 STA $2142 $8F/8325 F0 6C BEQ $6C ; [$8393] Branch (exit?) if that double byte was empty $8F/8327 E2 20 SEP #$20 ; A = 8-bit $8F/8329 A9 AA LDA #$AA ; Send transfer start signal to SPC $8F/832B 8D 40 21 STA $2140 $8F/832E AD 40 21 LDA $2140 [$8F:2140] A:02AA X:0042 Y:9E57 P:eNvMxdIzC $8F/8331 C9 01 CMP #$01 A:02AA X:0042 Y:9E57 P:eNvMxdIzC $8F/8333 D0 E8 BNE $E8 [$831D] A:02AA X:0042 Y:9E57 P:eNvMxdIzC $8F/8335 C8 INY A:02AA X:0042 Y:9E57 P:eNvMxdIzC $8F/8336 C8 INY A:02AA X:0042 Y:9E58 P:eNvMxdIzC $8F/8337 C2 20 REP #$20 A:02AA X:0042 Y:9E59 P:eNvMxdIzC $8F/8339 B9 00 00 LDA $0000,y[$8F:9E59] A:02AA X:0042 Y:9E59 P:eNvmxdIzC $8F/833C 85 06 STA $06 [$00:0006] A:A0B1 X:0042 Y:9E59 P:eNvmxdIzC $8F/833E C8 INY A:A0B1 X:0042 Y:9E59 P:eNvmxdIzC $8F/833F C8 INY A:A0B1 X:0042 Y:9E5A P:eNvmxdIzC $8F/8340 B9 00 00 LDA $0000,y[$8F:9E5B] A:A0B1 X:0042 Y:9E5B P:eNvmxdIzC $8F/8343 48 PHA A:A075 X:0042 Y:9E5B P:eNvmxdIzC $8F/8344 C8 INY A:A075 X:0042 Y:9E5B P:eNvmxdIzC $8F/8345 C8 INY A:A075 X:0042 Y:9E5C P:eNvmxdIzC $8F/8346 E2 20 SEP #$20 A:A075 X:0042 Y:9E5D P:eNvmxdIzC $8F/8348 B9 00 00 LDA $0000,y[$8F:9E5D] A:A075 X:0042 Y:9E5D P:eNvMxdIzC $8F/834B 48 PHA A:A08F X:0042 Y:9E5D P:eNvMxdIzC $8F/834C C8 INY A:A08F X:0042 Y:9E5D P:eNvMxdIzC $8F/834D 84 02 STY $02 [$00:0002] A:A08F X:0042 Y:9E5E P:eNvMxdIzC $8F/834F AB PLB A:A08F X:0042 Y:9E5E P:eNvMxdIzC $8F/8350 7A PLY A:A08F X:0042 Y:9E5E P:eNvMxdIzC $8F/8351 A9 01 LDA #$01 A:A08F X:0042 Y:A075 P:eNvMxdIzC $8F/8353 BE 00 00 LDX $0000,y[$8F:A075] A:A001 X:0042 Y:A075 P:envMxdIzC $8F/8356 8E 42 21 STX $2142 [$8F:2142] A:A001 X:3960 Y:A075 P:envMxdIzC $8F/8359 8D 40 21 STA $2140 [$8F:2140] A:A001 X:3960 Y:A075 P:envMxdIzC $8F/835C 1A INC A A:A001 X:3960 Y:A075 P:envMxdIzC $8F/835D 10 02 BPL $02 [$8361] A:A002 X:3960 Y:A075 P:envMxdIzC
- code is missing here
$8F/8361 C8 INY A:A002 X:3960 Y:A075 P:envMxdIzC $8F/8362 C8 INY A:A002 X:3960 Y:A076 P:eNvMxdIzC $8F/8363 A6 FD LDX $FD [$00:00FD] A:A002 X:3960 Y:A077 P:eNvMxdIzC $8F/8365 D0 1F BNE $1F [$8386] A:A002 X:0000 Y:A077 P:envMxdIZC $8F/8367 CD 40 21 CMP $2140 [$8F:2140] A:A002 X:0000 Y:A077 P:envMxdIZC $8F/836A D0 F7 BNE $F7 [$8363] A:A002 X:0000 Y:A077 P:envMxdIzC $8F/836C C4 06 CPY $06 [$00:0006] A:A002 X:0000 Y:A077 P:envMxdIzC $8F/836E D0 E3 BNE $E3 [$8353] A:A002 X:0000 Y:A077 P:eNvMxdIzc $8F/8370 AB PLB A:A01F X:0000 Y:A0B1 P:envMxdIZC $8F/8371 A9 66 LDA #$66 A:A01F X:0000 Y:A0B1 P:eNvMxdIzC $8F/8373 8D 41 21 STA $2141 [$8F:2141] A:A066 X:0000 Y:A0B1 P:envMxdIzC $8F/8376 A9 99 LDA #$99 A:A066 X:0000 Y:A0B1 P:envMxdIzC $8F/8378 8D 40 21 STA $2140 [$8F:2140] A:A099 X:0000 Y:A0B1 P:eNvMxdIzC $8F/837B A2 CC 33 LDX #$33CC A:A099 X:0000 Y:A0B1 P:eNvMxdIzC $8F/837E EC 40 21 CPX $2140 [$8F:2140] A:A099 X:33CC Y:A0B1 P:envMxdIzC $8F/8381 D0 EE BNE $EE [$8371] A:A099 X:33CC Y:A0B1 P:eNvMxdIzc $8F/8383 82 92 FF BRL $FF92 [$8318] A:A099 X:33CC Y:A0B1 P:eNvMxdIzc $8F/835F A9 01 LDA #$01 A:BC80 X:EF32 Y:BD43 P:eNvMxdIzc $8F/8393 E2 20 SEP #$20 A:0000 X:33CC Y:9E7A P:envmxdIZc $8F/8395 AB PLB A:0000 X:33CC Y:9E7A P:envMxdIZc $8F/8396 A9 AA LDA #$AA ; Send transfer start signal to SPC $8F/8398 8D 40 21 STA $2140 $8F/839B A9 01 LDA #$01 A:00AA X:33CC Y:9E7A P:eNvMxdIzc $8F/839D CD 40 21 CMP $2140 [$8F:2140] A:0001 X:33CC Y:9E7A P:envMxdIzc $8F/83A0 D0 F4 BNE $F4 [$8396] A:0001 X:33CC Y:9E7A P:envMxdIzc $8F/83A2 CD 43 21 CMP $2143 [$8F:2143] A:0001 X:33CC Y:9E7A P:envMxdIzc $8F/83A5 D0 EF BNE $EF [$8396] A:0001 X:33CC Y:9E7A P:envMxdIzC $8F/83A7 9C 40 21 STZ $2140 [$8F:2140] A:0001 X:33CC Y:9E7A P:envMxdIzC $8F/83AA 9C 41 21 STZ $2141 [$8F:2141] A:0001 X:33CC Y:9E7A P:envMxdIzC $8F/83AD 9C 42 21 STZ $2142 [$8F:2142] A:0001 X:33CC Y:9E7A P:envMxdIzC $8F/83B0 A9 02 LDA #$02 A:0001 X:33CC Y:9E7A P:envMxdIzC $8F/83B2 85 FA STA $FA [$00:00FA] A:0002 X:33CC Y:9E7A P:envMxdIzC $8F/83B4 8D 43 21 STA $2143 [$8F:2143] A:0002 X:33CC Y:9E7A P:envMxdIzC $8F/83B7 CD 43 21 CMP $2143 [$8F:2143] A:0002 X:33CC Y:9E7A P:envMxdIzC $8F/83BA F0 0C BEQ $0C [$83C8] A:0002 X:33CC Y:9E7A P:envMxdIZC
- code is missing here
$8F/83C8 E6 FA INC $FA [$00:00FA] A:0002 X:33CC Y:9E7A P:envMxdIZC $8F/83CA 9C 42 21 STZ $2142 [$8F:2142] A:0002 X:33CC Y:9E7A P:envMxdIzC $8F/83CD 60 RTS A:0002 X:33CC Y:9E7A P:envMxdIzC
$8F/83CE A5 FA LDA $FA ; Check buffered $2143 value $8F/83D0 30 38 BMI $38 ; [$840A] Exit (w/ flag) if negative $8F/83D2 F0 36 BEQ $36 ; [$840A] Exit (w/ flag) if zero $8F/83D4 AD 43 21 LDA $2143 ; Check current $2143 value $8F/83D7 30 31 BMI $31 ; [$840A] Exit (w/ flag) if negative $8F/83D9 F0 32 BEQ $32 ; [$840D] ??? $8F/83DB C5 FA CMP $FA ; Compare to buffered $2143 value $8F/83DD D0 2B BNE $2B ; [$840A] Exit if they are the same $8F/83DF A5 F5 LDA $F5 ; Check if buffers for $2140/1/2 are zero $8F/83E1 05 F6 ORA $F6 $8F/83E3 05 F7 ORA $F7 $8F/83E5 F0 21 BEQ $21 ; [$8408] Exit (w/o flag) if zero
- code is missing here
$8F/8408 18 CLC ; Clear Carry (Flag) $8F/8409 6B RTL $8F/840A 7B TDC ; Clear 16-bit A $8F/840B 38 SEC ; Set Carry (Flag) $8F/840C 6B RTL
- code is missing here
$8F/83DB C5 FA CMP $FA ; ??? $8F/83DD D0 2B BNE $2B [$840A] $8F/83DF A5 F5 LDA $F5 $8F/83E1 05 F6 ORA $F6 $8F/83E3 05 F7 ORA $F7 $8F/83E5 F0 21 BEQ $21 ; If $F5/$F6/$F7 are empty, exit $8F/83E7 A5 F5 LDA $F5 ; Transfer buffer to $2140 $8F/83E9 8D 40 21 STA $2140 $8F/83EC A5 F6 LDA $F6 ; Transfer buffer to $2141 $8F/83EE 8D 41 21 STA $2141 $8F/83F1 A5 F7 LDA $F7 ; Transfer buffer to $2142 $8F/83F3 8D 42 21 STA $2142 $8F/83F6 64 F5 STZ $F5 ; Clear buffers $F5, $F6 and $F7 $8F/83F8 64 F6 STZ $F6 $8F/83FA 64 F7 STZ $F7 $8F/83FC A5 FA LDA $FA ; Transfer buffer to $2143 $8F/83FE 8D 43 21 STA $2143 $8F/8401 1A INC A ; Increment $FA value $8F/8402 29 7F AND #$7F ; If it turned #$80 ==> #$00 $8F/8404 F0 FB BEQ $FB ; If #$00 ==> Increment again $8F/8406 85 FA STA $FA ; Store back in $FA $8F/8408 18 CLC ; ??? $8F/8409 6B RTL
$8F/8410 08 PHP ; Buffer Status register $8F/8411 8B PHB ; Buffer Data Bank $8F/8412 4B PHK ; Set Data Bank to $8F $8F/8413 AB PLB $8F/8414 E2 20 SEP #$20 ; A = 8-bit $8F/8416 A5 F9 LDA $F9 [$00:00F9] A:A100 X:05DD Y:0004 P:eNvMxdIzc $8F/8418 30 0F BMI $0F [$8429] A:A100 X:05DD Y:0004 P:envMxdIZc $8F/841A F0 06 BEQ $06 [$8422] A:A100 X:05DD Y:0004 P:envMxdIZc
- code is missing here
$8F/8422 22 CE 83 8F JSL $8F83CE ; Check for signals from the SPC $8F/8426 AB PLB ; Restore Data Bank and Status Register $8F/8427 28 PLP $8F/8428 6B RTL
- code is missing here
$8F/844E SPC Sound Program
See Tactics_Ogre:SPC_Sound_Program
Bank $99
$99/8001 ?
Executed while loading the Title Demo
$99/8001 AA TAX A:0000 X:05ED Y:0000 P:envMxdiZc $99/8002 86 00 STX $00 [$00:0000] A:0000 X:0000 Y:0000 P:envMxdiZc $99/8004 8B PHB ; Buffer Data Bank on Stack $99/8005 4B PHK ; Set Data Bank to $99 $99/8006 AB PLB $99/8007 A6 00 LDX $00 [$00:0000] A:0000 X:0000 Y:0000 P:eNvMxdizc $99/8009 DA PHX A:0000 X:0000 Y:0000 P:envMxdiZc $99/800A 22 C4 F3 81 JSL $81F3C4 ; Fade Screen Out $99/800E 22 4A A1 80 JSL $80A14A ; Long Jump to Deactivate NMI, Auto-Joypad and HDMAs $99/8012 22 45 B5 80 JSL $80B545 ; Long Jump to Clear Graphic Setup Registers $99/8016 A5 59 LDA $59 ; Buffer $59 on Stack $99/8018 48 PHA $99/8019 D4 5C PEI ($5C) ; Buffer $5A-5F on Stack $99/801B D4 5A PEI ($5A) $99/801D D4 5E PEI ($5E) $99/801F 22 C5 B5 80 JSL $80B5C5[$80:B5C5] A:0000 X:0000 Y:0000 P:envMxdiZc $99/8023 FA PLX ; Restore $59-$5F from Stack $99/8024 86 5E STX $5E $99/8026 FA PLX $99/8027 86 5A STX $5A $99/8029 FA PLX $99/802A 86 5C STX $5C $99/802C 68 PLA $99/802D 85 59 STA $59 $99/802F C2 20 REP #$20 ; CLEAR WHOLE VRAM: $99/8031 A9 00 00 LDA #$0000 ; Number of Bytes for VRAM Clear DMA: #$(1)0000 $99/8034 8F 05 43 00 STA $004305 $99/8038 E2 20 SEP #$20 $99/803A A9 81 LDA #$81 ; Source Address for the Clear Byte for the VRAM Clear: $81/F3A4 $99/803C A2 A4 F3 LDX #$F3A4 $99/803F A0 00 00 LDY #$0000 ; VRAM Start Address $99/8042 22 81 9D 80 JSL $809D81 ; Long Jump to VRAM Clear $99/8046 22 67 AE 9D JSL $9DAE67[$9D:AE67] A:0001 X:F3A4 Y:0000 P:eNvMxdizC $99/804A A9 00 LDA #$00 A:0000 X:F3A4 Y:0000 P:envMxdiZC $99/804C 22 A5 9B 9B JSL $9B9BA5 ; (Decompress and) Transfer graphic data sets to VRAM $99/8050 A9 03 LDA #$03 A:FFFF X:0500 Y:9C60 P:eNvMxdizC $99/8052 85 A4 STA $A4 [$00:00A4] A:FF03 X:0500 Y:9C60 P:envMxdizC $99/8054 A9 00 LDA #$00 A:FF03 X:0500 Y:9C60 P:envMxdizC $99/8056 85 A5 STA $A5 [$00:00A5] A:FF00 X:0500 Y:9C60 P:envMxdiZC $99/8058 A9 00 LDA #$00 A:FF00 X:0500 Y:9C60 P:envMxdiZC $99/805A 22 A4 9C 9B JSL $9B9CA4[$9B:9CA4] A:FF00 X:0500 Y:9C60 P:envMxdiZC $99/805E 22 3B A1 80 JSL $80A13B[$80:A13B] A:1200 X:124B Y:0200 P:eNvMxdizc $99/8062 9C 0C 42 STZ $420C ; Deactivate HDMAs $99/8065 9C B0 05 STZ $05B0 ; Clear Buffer for the HDMA flags $99/8068 22 00 80 86 JSL $868000[$86:8000] A:1200 X:124B Y:0200 P:eNvMxdizc $99/806C A2 FF FF LDX #$FFFF A:FFFF X:FFFE Y:0200 P:eNvMxdizc $99/806F 8E 3D 00 STX $003D [$99:003D] A:FFFF X:FFFF Y:0200 P:eNvMxdizc $99/8072 22 01 BE 9E JSL $9EBE01 ; Long Jump to Clear OAM Buffers $99/8076 FA PLX A:FF00 X:0100 Y:0020 P:envMxdizC $99/8077 DA PHX A:FF00 X:0000 Y:0020 P:envMxdiZC $99/8078 20 85 D7 JSR $D785 [$99:D785] A:FF00 X:0000 Y:0020 P:envMxdiZC $99/807B 22 4B 9F 9E JSL $9E9F4B[$9E:9F4B] A:0103 X:2000 Y:0001 P:eNvMxdizc $99/807F 22 60 81 99 JSL $998160[$99:8160] A:00FF X:0040 Y:0001 P:eNvMxdizC $99/8083 B0 1A BCS $1A [$809F] A:00FF X:0040 Y:0001 P:envMxdizC
- Code is missing here
$99/809F 22 D8 84 86 JSL $8684D8[$86:84D8] A:00FF X:0040 Y:0001 P:envMxdizC $99/80A3 22 AC FA 82 JSL $82FAAC[$82:FAAC] A:0000 X:007C Y:0000 P:eNvMxdizc $99/80A7 22 36 F9 82 JSL $82F936[$82:F936] A:1200 X:12CB Y:0017 P:eNvMxdizc $99/80AB 22 25 DE 82 JSL $82DE25 ; ??? (Load new Map?) $99/80AF 22 93 E0 82 JSL $82E093[$82:E093] A:0000 X:1F1F Y:0387 P:eNvMxdizC $99/80B3 22 75 89 80 JSL $808975[$80:8975] A:101F X:001F Y:0001 P:eNvMxdizC $99/80B7 22 C5 80 99 JSL $9980C5[$99:80C5] A:0700 X:0028 Y:7BA0 P:eNvMxdizc $99/80BB 22 27 A1 80 JSL $80A127 ; Long Jump to Activate NMI and Auto-Joypad Read $99/80BF 9C 38 00 STZ $0038 [$99:0038] A:0081 X:0000 Y:0020 P:eNvMxdizc $99/80C2 FA PLX A:0081 X:0000 Y:0020 P:eNvMxdizc $99/80C3 AB PLB A:0081 X:0000 Y:0020 P:envMxdiZc $99/80C4 6B RTL A:0081 X:0000 Y:0020 P:eNvMxdizc
$99/80C5 ?
$99/80C5 22 31 84 85 JSL $858431[$85:8431] A:0700 X:0028 Y:7BA0 P:eNvMxdizc $99/80C9 C2 20 REP #$20 A:36F8 X:0080 Y:007E P:eNvMxdizC $99/80CB 9C 00 03 STZ $0300 [$99:0300] A:36F8 X:0080 Y:007E P:eNvmxdizC $99/80CE 1C 02 03 TRB $0302 [$99:0302] A:36F8 X:0080 Y:007E P:eNvmxdizC $99/80D1 1C 04 03 TRB $0304 [$99:0304] A:36F8 X:0080 Y:007E P:eNvmxdiZC $99/80D4 E2 20 SEP #$20 A:36F8 X:0080 Y:007E P:eNvmxdiZC $99/80D6 AD A2 1E LDA $1EA2 [$99:1EA2] A:36F8 X:0080 Y:007E P:eNvMxdiZC $99/80D9 22 E9 84 85 JSL $8584E9[$85:84E9] A:3600 X:0080 Y:007E P:envMxdiZC $99/80DD AD A2 1E LDA $1EA2 [$99:1EA2] A:C8F8 X:0008 Y:0020 P:eNvMxdizc $99/80E0 C9 03 CMP #$03 A:C800 X:0008 Y:0020 P:envMxdiZc $99/80E2 F0 08 BEQ $08 [$80EC] A:C800 X:0008 Y:0020 P:eNvMxdizc $99/80E4 C9 04 CMP #$04 A:C800 X:0008 Y:0020 P:eNvMxdizc $99/80E6 F0 04 BEQ $04 [$80EC] A:C800 X:0008 Y:0020 P:eNvMxdizc $99/80E8 C9 08 CMP #$08 A:C800 X:0008 Y:0020 P:eNvMxdizc $99/80EA D0 08 BNE $08 [$80F4] A:C800 X:0008 Y:0020 P:eNvMxdizc
- Code is missing here
$99/80F4 22 AF 84 85 JSL $8584AF[$85:84AF] A:C800 X:0008 Y:0020 P:eNvMxdizc $99/80F8 9C AC 17 STZ $17AC [$99:17AC] A:0000 X:0000 Y:0020 P:eNvMxdizc $99/80FB 9C AD 17 STZ $17AD [$99:17AD] A:0000 X:0000 Y:0020 P:eNvMxdizc $99/80FE AD A2 1E LDA $1EA2 [$99:1EA2] A:0000 X:0000 Y:0020 P:eNvMxdizc $99/8101 C9 04 CMP #$04 A:0000 X:0000 Y:0020 P:envMxdiZc $99/8103 D0 03 BNE $03 [$8108] A:0000 X:0000 Y:0020 P:eNvMxdizc
- Code is missing here
$99/8108 A9 01 LDA #$01 ; Set Flag for CGRAM Update $99/810A 8D 49 12 STA $1249 $99/810D 6B RTL
$99/8160 ?
$99/8160 DA PHX A:0002 X:3300 Y:FFFE P:eNvMxdizC $99/8161 AE BE 16 LDX $16BE [$80:16BE] A:0002 X:3300 Y:FFFE P:eNvMxdizC $99/8164 E0 16 00 CPX #$0016 A:0002 X:0000 Y:FFFE P:envMxdiZC $99/8167 F0 07 BEQ $07 [$8170] A:0002 X:0000 Y:FFFE P:eNvMxdizc $99/8169 E0 17 00 CPX #$0017 A:0002 X:0000 Y:FFFE P:eNvMxdizc $99/816C F0 0D BEQ $0D [$817B] A:0002 X:0000 Y:FFFE P:eNvMxdizc $99/816E 80 0E BRA $0E [$817E] A:0002 X:0000 Y:FFFE P:eNvMxdizc
- code is missing here
$99/817E FA PLX A:0002 X:0000 Y:FFFE P:eNvMxdizc $99/817F 38 SEC A:0002 X:3300 Y:FFFE P:envMxdizc $99/8180 6B RTL A:0002 X:3300 Y:FFFE P:envMxdizC
$99/87F5 ?
$99/87F5 8B PHB ; Buffer Data Bank on Stack $99/87F6 A9 7E LDA #$7E ; Set Data Bank to $7E $99/87F8 48 PHA $99/87F9 AB PLB $99/87FA 20 23 8A JSR $8A23 [$99:8A23] A:FF7E X:3300 Y:000A P:envMxdizc $99/87FD C2 20 REP #$20 ; A = 16-bit $99/87FF A6 E1 LDX $E1 [$00:00E1] A:0000 X:3300 Y:3762 P:envmxdiZc $99/8801 A5 E3 LDA $E3 ; Store 24-bit Data Load Address back $99/8803 9D 06 00 STA $0006,x $99/8806 E2 20 SEP #$20 ; A = 8-bit $99/8808 A5 E5 LDA $E5 $99/880A 9D 08 00 STA $0008,x $99/880D 20 80 C8 JSR $C880 [$99:C880] A:377E X:3300 Y:3762 P:envMxdizc $99/8810 A6 E1 LDX $E1 [$00:00E1] A:FF01 X:1758 Y:000A P:envMxdizC $99/8812 BD 0B 00 LDA $000B,x[$7E:330B] A:FF01 X:3300 Y:000A P:envMxdizC $99/8815 AB PLB ; Restore Data Bank from Stack $99/8816 6B RTL
$99/8A23 ?
This sets up a 24-bit data load address in [$E3] and loads another value. If the value is != #$00, it is used as a Jump Index for the 1st Jump Table. Else, the first byte at [$E3] is checked. If that one is != #$FF, it is used as a Jump Index for the 2nd Jump Table.
$99/8A23 E2 20 SEP #$20 ; A = 8-bit $99/8A25 A6 E1 LDX $E1 ; Load Data Load Index in X $99/8A27 BC 06 00 LDY $0006,x ; Setup a 24-bit address in [$E3] $99/8A2A 84 E3 STY $E3 ; (In this case, it is $7E/375A) $99/8A2C BD 08 00 LDA $0008,x $99/8A2F 85 E5 STA $E5 $99/8A31 E2 20 SEP #$20 ; A = 8-bit $99/8A33 A6 E1 LDX $E1 ; Load Data Load Index in X $99/8A35 7B TDC ; Clear 16-bit A $99/8A36 BD 0B 00 LDA $000B,x[$7E:330B] A:0000 X:3300 Y:375A P:envMxdiZC $99/8A39 F0 0A BEQ $0A [$8A45] A:0000 X:3300 Y:375A P:envMxdiZC $99/8A3B 3A DEC A A:0006 X:3300 Y:3762 P:envMxdizc $99/8A3C C2 20 REP #$20 ; A = 16-bit $99/8A3E 0A ASL A ; Transform it to a Jump Table Index $99/8A3F AA TAX ; (Multiply by 2 and transfer to X) $99/8A40 E2 20 SEP #$20 ; A = 8-bit $99/8A42 7C 5D 8A JMP ($8A5D,x) ; Use 1st Jump Table $99/8A45 7B TDC ; Clear 16-bit A $99/8A46 A7 E3 LDA [$E3] [$7E:375A] A:0000 X:3300 Y:375A P:envMxdiZC $99/8A48 C9 FF CMP #$FF A:0065 X:3300 Y:375A P:envMxdizC $99/8A4A D0 08 BNE $08 [$8A54] A:0065 X:3300 Y:375A P:envMxdizc
- code is missing here
$99/8A54 C2 20 REP #$20 ; A = 16-bit $99/8A56 0A ASL A ; Transform it to a Jump Table Index $99/8A57 AA TAX ; (Multiply by 2 and transfer to X) $99/8A58 E6 E3 INC $E3 ; Increment Data Load Address $99/8A5A 7C 77 8A JMP ($8A77,x) ; Use 2nd Jump Table
1st Jump Table
$99/8A5D BC 90 --- Entry #$00 - $90BC $99/8A5F C9 90 --- Entry #$01 - $90C9 $99/8A61 F1 90 --- Entry #$02 - $90F1 $99/8A63 00 91 --- Entry #$03 - $9100 $99/8A65 0B 91 --- Entry #$04 - $910B $99/8A67 1B 91 --- Entry #$05 - $911B $99/8A69 26 91 --- Entry #$06 - $9126 $99/8A6B 3C 91 --- Entry #$07 - $913C $99/8A6D 54 91 --- Entry #$08 - $9154 $99/8A6F 7D 91 --- Entry #$09 - $917D $99/8A71 A6 91 --- Entry #$0A - $91A6 $99/8A73 B3 91 --- Entry #$0B - $91B3 $99/8A75 EA 91 --- Entry #$0C - $91EA
2nd Jump Table
$99/8A77 01 92 --- Entry #$00 - $9210 $99/8A79 0B 92 --- Entry #$01 - $920B $99/8A7B 15 92 --- Entry #$02 - $9215 $99/8A7D 26 92 --- Entry #$03 - $9226 $99/8A7F 37 92 --- Entry #$04 - $9237 $99/8A81 4F 92 --- Entry #$05 - $924F $99/8A83 60 92 --- Entry #$06 - $9260 $99/8A85 71 92 --- Entry #$07 - $9271 $99/8A87 81 92 --- Entry #$08 - $9281 $99/8A89 8E 92 --- Entry #$09 - $928E $99/8A8B 9B 92 --- Entry #$0A - $929B $99/8A8D A8 92 --- Entry #$0B - $92A8 $99/8A8F B5 92 --- Entry #$0C - $92B5 $99/8A91 BF 92 --- Entry #$0D - $92BF $99/8A93 71 8C --- Entry #$0E - $8C71 $99/8A95 31 8A --- Entry #$0F - $8A31 - Direct Return to the Main Subroutine $99/8A97 F0 92 --- Entry #$10 - $92F0 $99/8A99 20 93 --- Entry #$11 - $9320 $99/8A9B 71 8C --- Entry #$12 - $8C71 $99/8A9D 50 93 --- Entry #$13 - $9350 $99/8A9F E7 93 --- Entry #$14 - $93E7 $99/8AA1 71 8C --- Entry #$15 - $8C71 $99/8AA3 BB 9B --- Entry #$16 - $9BBB $99/8AA5 DC 9B --- Entry #$17 - $9BDC $99/8AA7 0D 9C --- Entry #$18 - $9C0D $99/8AA9 18 9C --- Entry #$19 - $9C18 $99/8AAB 4A 9C --- Entry #$1A - $9C4A $99/8AAD 91 9C --- Entry #$1B - $9C91 $99/8AAF D0 9C --- Entry #$1C - $9CD0 $99/8AB1 DA 9C --- Entry #$1D - $9CDA $99/8AB3 DA 9C --- Entry #$1E - $9CDA $99/8AB5 71 8C --- Entry #$1F - $8C71 $99/8AB7 73 8C --- Entry #$20 - $8C73 $99/8AB9 79 98 --- Entry #$21 - $9879 $99/8ABB 9D 99 --- Entry #$22 - $999D $99/8ABD 92 8C --- Entry #$23 - $8C92 $99/8ABF 0B 99 --- Entry #$24 - $990B $99/8AC1 2F 9A --- Entry #$25 - $9A2F $99/8AC3 03 99 --- Entry #$26 - $9903 $99/8AC5 27 9A --- Entry #$27 - $9A27 $99/8AC7 ED 94 --- Entry #$28 - $94ED $99/8AC9 F1 96 --- Entry #$29 - $96F1 $99/8ACB 76 97 --- Entry #$2A - $9776 $99/8ACD F8 97 --- Entry #$2B - $97F8 $99/8ACE E5 94 --- Entry #$2C - $94E5 $99/8AD1 E9 96 --- Entry #$2D - $96E9 $99/8AD3 7F 98 --- Entry #$2E - $987F $99/8AD5 A3 99 --- Entry #$2F - $99A3 $99/8AD7 6A 9F --- Entry #$30 - $9F6A $99/8AD9 96 9F --- Entry #$31 - $9F96 $99/8ADB 2E BD --- Entry #$32 - $BD2E $99/8ADD DA C2 --- Entry #$33 - $C2DA $99/8ADF 00 C5 --- Entry #$34 - $C500 $99/8AE1 12 C5 --- Entry #$35 - $C512 $99/8AE3 CE C0 --- Entry #$36 - $C0CE $99/8AE5 28 C7 --- Entry #$37 - $C728 $99/8AE7 28 C8 --- Entry #$38 - $C828 $99/8AE9 43 C8 --- Entry #$39 - $C843 $99/8AEB AB BE --- Entry #$3A - $BEAB $99/8AED EA 9C --- Entry #$3B - $9CEA $99/8AEF F3 9C --- Entry #$3C - $9CF3 $99/8AF1 F7 C5 --- Entry #$3D - $C5F7 $99/8AF3 5E B2 --- Entry #$3E - $B25E $99/8AF5 56 B2 --- Entry #$3F - $B256 $99/8AF7 D0 B2 --- Entry #$40 - $B2D0 $99/8AF9 C4 B2 --- Entry #$41 - $B2C4 $99/8AFB DA 9C --- Entry #$42 - $9CDA $99/8AFD DA 9C --- Entry #$43 - $9CDA $99/8AFF EE BC --- Entry #$44 - $BCEE $99/8B01 DE 9C --- Entry #$45 - $9CDE $99/8B03 DE 9C --- Entry #$46 - $9CDE $99/8B05 E6 9F --- Entry #$47 - $9FE6 $99/8B07 DE 9C --- Entry #$48 - $9CDE $99/8B09 DE 9C --- Entry #$49 - $9CDE $99/8B0B EF B5 --- Entry #$4A - $B5EF $99/8B0D EF B5 --- Entry #$4B - $B5EF $99/8B0F B8 9A --- Entry #$4C - $9AB8 $99/8B11 65 9E --- Entry #$4D - $9E65 $99/8B13 DE 9E --- Entry #$4E - $9EDE $99/8B15 E9 9E --- Entry #$4F - $9EE9 $99/8B17 BA B1 --- Entry #$50 - $B1BA $99/8B19 38 9F --- Entry #$51 - $9F38 $99/8B1B AB C7 --- Entry #$52 - $C7AB $99/8B1D EF C7 --- Entry #$53 - $C7EF $99/8B1F 25 C5 --- Entry #$54 - $C525 $99/8B21 3A C4 --- Entry #$55 - $C43A $99/8B23 75 C4 --- Entry #$56 - $C475 $99/8B25 5E C8 --- Entry #$57 - $C85E $99/8B27 BD 9F --- Entry #$58 - $9FBD $99/8B29 FD 9F --- Entry #$59 - $9FFD $99/8B2B 27 A0 --- Entry #$5A - $A027 $99/8B2D C0 BE --- Entry #$5B - $BEC0 $99/8B2F 73 C0 --- Entry #$5C - $C073 $99/8B31 ED C0 --- Entry #$5D - $C0ED $99/8B33 2B C0 --- Entry #$5E - $C02B $99/8B35 FA C3 --- Entry #$5F - $C3FA $99/8B37 FD 9B --- Entry #$60 - $9BFD $99/8B39 05 BC --- Entry #$61 - $BC05 $99/8B3B E4 BC --- Entry #$62 - $BCE4 $99/8B3D DA C2 --- Entry #$63 - $C2DA $99/8B3F 49 A0 --- Entry #$64 - $A049 $99/8B41 1B 90 --- Entry #$65 - $901B - Load Music(?)
$99/8F23 ?
$99/8F23 BD DE 19 LDA $19DE,x[$7E:19DE] A:0132 X:0000 Y:37B4 P:envMxdizc $99/8F26 89 8F BIT #$8F A:0100 X:0000 Y:37B4 P:envMxdiZc $99/8F28 D0 09 BNE $09 [$8F33] A:0100 X:0000 Y:37B4 P:envMxdiZc $99/8F2A BD DF 19 LDA $19DF,x[$7E:19DF] A:0100 X:0000 Y:37B4 P:envMxdiZc $99/8F2D 89 01 BIT #$01 A:0140 X:0000 Y:37B4 P:envMxdizc $99/8F2F D0 02 BNE $02 [$8F33] A:0140 X:0000 Y:37B4 P:envMxdiZc $99/8F31 18 CLC A:0140 X:0000 Y:37B4 P:envMxdiZc $99/8F32 60 RTS A:0140 X:0000 Y:37B4 P:envMxdiZc
- code is missing here
$99/901B ?
$99/901B E2 20 SEP #$20 A:00CA X:00CA Y:375A P:envmxdizc $99/901D AD AC 17 LDA $17AC [$7E:17AC] A:00CA X:00CA Y:375A P:envMxdizc $99/9020 48 PHA A:0000 X:00CA Y:375A P:envMxdiZc $99/9021 9C AC 17 STZ $17AC [$7E:17AC] A:0000 X:00CA Y:375A P:envMxdiZc $99/9024 7B TDC A:0000 X:00CA Y:375A P:envMxdiZc $99/9025 A7 E3 LDA [$E3] [$7E:375B] A:0000 X:00CA Y:375A P:envMxdiZc $99/9027 C9 4D CMP #$4D A:000D X:00CA Y:375A P:envMxdizc $99/9029 B0 14 BCS $14 [$903F] A:000D X:00CA Y:375A P:eNvMxdizc $99/902B A8 TAY A:000D X:00CA Y:375A P:eNvMxdizc $99/902C A2 5E 90 LDX #$905E A:000D X:00CA Y:000D P:envMxdizc $99/902F A9 99 LDA #$99 A:000D X:905E Y:000D P:eNvMxdizc $99/9031 22 8F EF 81 JSL $81EF8F[$81:EF8F] A:0099 X:905E Y:000D P:eNvMxdizc $99/9035 B0 08 BCS $08 [$903F] A:0020 X:905F Y:000D P:envMxdizc $99/9037 A7 E3 LDA [$E3] [$7E:375B] A:0020 X:905F Y:000D P:envMxdizc $99/9039 22 F2 AE 80 JSL $80AEF2 ; Load Music $99/903D 80 14 BRA $14 [$9053] A:0000 X:33CC Y:D686 P:envMxdizc
- code is missing here
$99/9053 68 PLA A:0000 X:33CC Y:D686 P:envMxdizc $99/9054 8D AC 17 STA $17AC [$7E:17AC] A:0000 X:33CC Y:D686 P:envMxdiZc $99/9057 C2 20 REP #$20 ; A = 16-bit $99/9059 E6 E3 INC $E3 ; Increment Data Load Address $99/905B 4C 31 8A JMP $8A31 ; Loop, use Jump Table again
$99/910B ?
$99/910B A6 E1 LDX $E1 [$00:00E1] A:0008 X:0008 Y:3774 P:envMxdizc $99/910D BD 21 00 LDA $0021,x[$7E:3321] A:0008 X:3300 Y:3774 P:envMxdizc $99/9110 D0 08 BNE $08 [$911A] A:0003 X:3300 Y:3774 P:envMxdizc $99/9112 BD 3B 00 LDA $003B,x[$7E:333B] A:0000 X:3300 Y:3774 P:envMxdiZc $99/9115 D0 03 BNE $03 [$911A] A:0000 X:3300 Y:3774 P:envMxdiZc $99/9117 9E 0B 00 STZ $000B,x[$7E:330B] A:0000 X:3300 Y:3774 P:envMxdiZc $99/911A 60 RTS A:0003 X:3300 Y:3774 P:envMxdizc
$99/911B ?
$99/90F1 A6 E1 LDX $E1 [$00:00E1] A:0004 X:0004 Y:3765 P:envMxdizc $99/90F3 C2 20 REP #$20 A:0004 X:3300 Y:3765 P:envMxdizc $99/90F5 DE 0C 00 DEC $000C,x[$7E:330C] A:0004 X:3300 Y:3765 P:envmxdizc $99/90F8 E2 20 SEP #$20 A:0004 X:3300 Y:3765 P:envmxdizc $99/90FA D0 03 BNE $03 [$90FF] A:0004 X:3300 Y:3765 P:envMxdizc $99/90FC 9E 0B 00 STZ $000B,x[$7E:330B] A:0004 X:3300 Y:3765 P:envMxdiZc $99/90FF 60 RTS A:0004 X:3300 Y:3765 P:envMxdizc
$99/911B ?
$99/911B A6 E1 LDX $E1 [$00:00E1] A:000A X:000A Y:3762 P:envMxdizc $99/911D BD C3 02 LDA $02C3,x[$7E:35C3] A:000A X:3300 Y:3762 P:envMxdizc $99/9120 F0 03 BEQ $03 [$9125] A:0000 X:3300 Y:3762 P:envMxdiZc $99/9122 9E 0B 00 STZ $000B,x[$7E:330B] A:0001 X:3300 Y:3762 P:envMxdizc $99/9125 60 RTS A:0000 X:3300 Y:3762 P:envMxdiZc
$99/9154 ?
$99/9154 A6 E1 LDX $E1 [$00:00E1] A:0010 X:0010 Y:3765 P:envMxdizc $99/9156 BD C3 02 LDA $02C3,x[$7E:35C3] A:0010 X:3300 Y:3765 P:envMxdizc $99/9159 F0 21 BEQ $21 ; [$917C] Exit if #$00 $99/915B 9E 0B 00 STZ $000B,x[$7E:330B] A:0001 X:3300 Y:3765 P:envMxdizc $99/915E 22 DA 82 81 JSL $8182DA[$81:82DA] A:0001 X:3300 Y:3765 P:envMxdizc $99/9162 B0 09 BCS $09 [$916D] A:A87E X:3300 Y:3C00 P:envMxdizc $99/9164 20 80 C8 JSR $C880 [$99:C880] A:A87E X:3300 Y:3C00 P:envMxdizc $99/9167 22 8A A1 80 JSL $80A18A ; Wait for NMI and then loop $99/916B 80 F1 BRA $F1 ; [$915E] $99/916D A6 E1 LDX $E1 [$00:00E1] A:0001 X:1758 Y:3C00 P:envMxdizC $99/916F A9 03 LDA #$03 A:0001 X:3300 Y:3C00 P:envMxdizC $99/9171 9D 0B 00 STA $000B,x[$7E:330B] A:0003 X:3300 Y:3C00 P:envMxdizC $99/9174 A9 0A LDA #$0A A:0003 X:3300 Y:3C00 P:envMxdizC $99/9176 9D 0C 00 STA $000C,x[$7E:330C] A:000A X:3300 Y:3C00 P:envMxdizC $99/9179 9E 0D 00 STZ $000D,x[$7E:330D] A:000A X:3300 Y:3C00 P:envMxdizC $99/917C 60 RTS
$99/9471 ?
$99/9471 E2 20 SEP #$20 ; A = 8-bit $99/9473 A9 34 LDA #$34 A:018C X:018C Y:3762 P:envMxdizc $99/9475 80 10 BRA $10 [$9487] A:0134 X:018C Y:3762 P:envMxdizc
- code is missing here
$99/9487 48 PHA A:0134 X:018C Y:3762 P:envMxdizc $99/9488 C2 20 REP #$20 ; A = 16-bit $99/948A 20 81 D4 JSR $D481 [$99:D481] A:0134 X:018C Y:3762 P:envmxdizc $99/948D 18 CLC A:086F X:0000 Y:3762 P:envmxdizc $99/948E 67 E3 ADC [$E3] [$7E:3763] A:086F X:0000 Y:3762 P:envmxdizc $99/9490 85 B2 STA $B2 [$00:00B2] A:0879 X:0000 Y:3762 P:envmxdizc $99/9492 A6 E1 LDX $E1 [$00:00E1] A:0879 X:0000 Y:3762 P:envmxdizc $99/9494 BD 01 00 LDA $0001,x[$7E:3301] A:0879 X:3300 Y:3762 P:envmxdizc $99/9497 85 00 STA $00 [$00:0000] A:0032 X:3300 Y:3762 P:envmxdizc $99/9499 E6 E3 INC $E3 ; Increment Data Load Address twice $99/949B E6 E3 INC $E3 $99/949D E2 20 SEP #$20 ; A = 8-bit $99/949F A4 B2 LDY $B2 [$00:00B2] A:0032 X:3300 Y:3762 P:envMxdizc $99/94A1 22 B0 D4 81 JSL $81D4B0[$81:D4B0] A:0032 X:3300 Y:0879 P:envMxdizc $99/94A5 8A TXA A:0032 X:0013 Y:0009 P:envMxdizc $99/94A6 85 04 STA $04 [$00:0004] A:0013 X:0013 Y:0009 P:envMxdizc $99/94A8 A6 E1 LDX $E1 [$00:00E1] A:0013 X:0013 Y:0009 P:envMxdizc $99/94AA BD C4 02 LDA $02C4,x[$7E:35C4] A:0013 X:3300 Y:0009 P:envMxdizc $99/94AD 85 B1 STA $B1 [$00:00B1] A:0000 X:3300 Y:0009 P:envMxdiZc $99/94AF 68 PLA A:0000 X:3300 Y:0009 P:envMxdiZc $99/94B0 22 31 93 9A JSL $9A9331[$9A:9331] A:0034 X:3300 Y:0009 P:envMxdizc $99/94B4 86 39 STX $39 ; Store Figure Number in $39 $99/94B6 BD 56 1A LDA $1A56,x[$7E:1A5A] A:0034 X:0004 Y:0009 P:envMxdizc $99/94B9 85 B0 STA $B0 [$00:00B0] A:0008 X:0004 Y:0009 P:envMxdizc $99/94BB BD AE 17 LDA $17AE,x ; Load Figure's Character Sprite number $99/94BE 22 86 EB 81 JSL $81EB86[$81:EB86] A:0034 X:0004 Y:0009 P:envMxdizc $99/94C2 85 08 STA $08 [$00:0008] A:0032 X:0004 Y:0009 P:envMxdizc $99/94C4 20 BD 9A JSR $9ABD [$99:9ABD] A:0032 X:0004 Y:0009 P:envMxdizc $99/94C7 A0 00 00 LDY #$0000 A:0002 X:0004 Y:0004 P:envMxdizc $99/94CA 20 72 95 JSR $9572 [$99:9572] A:0002 X:0004 Y:0000 P:envMxdiZc $99/94CD 64 B8 STZ $B8 [$00:00B8] A:00AC X:0004 Y:0001 P:eNvMxdizC $99/94CF 64 B9 STZ $B9 [$00:00B9] A:00AC X:0004 Y:0001 P:eNvMxdizC $99/94D1 22 42 81 81 JSL $818142[$81:8142] A:00AC X:0004 Y:0001 P:eNvMxdizC $99/94D5 22 E8 95 80 JSL $8095E8[$80:95E8] A:4503 X:0004 Y:0002 P:envMxdizC $99/94D9 22 8A A1 80 JSL $80A18A ; Wait for NMI $99/94DD A6 E1 LDX $E1 [$00:00E1] A:FF80 X:1758 Y:000A P:envMxdizc $99/94DF A9 09 LDA #$09 A:FF80 X:3300 Y:000A P:envMxdizc $99/94E1 9D 0B 00 STA $000B,x[$7E:330B] A:FF09 X:3300 Y:000A P:envMxdizc $99/94E4 60 RTS
$99/9572 ?
$99/9572 B7 E3 LDA [$E3],y[$7E:3765] A:0002 X:0004 Y:0000 P:envMxdiZc $99/9574 C9 85 CMP #$85 A:0045 X:0004 Y:0000 P:envMxdizc $99/9576 F0 31 BEQ $31 [$95A9] A:0045 X:0004 Y:0000 P:eNvMxdizc $99/9578 C9 9B CMP #$9B A:0045 X:0004 Y:0000 P:eNvMxdizc $99/957A F0 34 BEQ $34 [$95B0] A:0045 X:0004 Y:0000 P:eNvMxdizc $99/957C C9 1D CMP #$1D A:0045 X:0004 Y:0000 P:eNvMxdizc $99/957E F0 43 BEQ $43 [$95C3] A:0045 X:0004 Y:0000 P:envMxdizC $99/9580 C9 1E CMP #$1E A:0045 X:0004 Y:0000 P:envMxdizC $99/9582 F0 3F BEQ $3F [$95C3] A:0045 X:0004 Y:0000 P:envMxdizC $99/9584 C9 42 CMP #$42 A:0045 X:0004 Y:0000 P:envMxdizC $99/9586 F0 43 BEQ $43 [$95CB] A:0045 X:0004 Y:0000 P:envMxdizC $99/9588 C9 43 CMP #$43 A:0045 X:0004 Y:0000 P:envMxdizC $99/958A F0 47 BEQ $47 [$95D3] A:0045 X:0004 Y:0000 P:envMxdizC $99/958C C9 45 CMP #$45 A:0045 X:0004 Y:0000 P:envMxdizC $99/958E F0 4B BEQ $4B [$95DB] A:0045 X:0004 Y:0000 P:envMxdiZC $99/9590 C9 46 CMP #$46 A:00AC X:0004 Y:0001 P:envMxdizC $99/9592 F0 4B BEQ $4B [$95DF] A:00AC X:0004 Y:0001 P:envMxdizC $99/9594 C9 48 CMP #$48 A:00AC X:0004 Y:0001 P:envMxdizC $99/9596 F0 4B BEQ $4B [$95E3] A:00AC X:0004 Y:0001 P:envMxdizC $99/9598 C9 49 CMP #$49 A:00AC X:0004 Y:0001 P:envMxdizC $99/959A F0 4B BEQ $4B [$95E7] A:00AC X:0004 Y:0001 P:envMxdizC $99/959C C9 4C CMP #$4C A:00AC X:0004 Y:0001 P:envMxdizC $99/959E F0 4B BEQ $4B [$95EB] A:00AC X:0004 Y:0001 P:envMxdizC $99/95A0 C9 0F CMP #$0F A:00AC X:0004 Y:0001 P:envMxdizC $99/95A2 F0 02 BEQ $02 [$95A6] A:00AC X:0004 Y:0001 P:eNvMxdizC $99/95A4 80 4E BRA $4E [$95F4] A:00AC X:0004 Y:0001 P:eNvMxdizC
- code is missing here
$99/95D6 85 03 STA $03 [$00:0003] A:0003 X:0004 Y:0000 P:envMxdizC $99/95D8 C8 INY A:0003 X:0004 Y:0000 P:envMxdizC $99/95D9 80 97 BRA $97 [$9572] A:0003 X:0004 Y:0001 P:envMxdizC $99/95DB A9 03 LDA #$03 A:0045 X:0004 Y:0000 P:envMxdiZC $99/95DD 80 F7 BRA $F7 [$95D6] A:0003 X:0004 Y:0000 P:envMxdizC $99/95DF A9 04 LDA #$04 A:0046 X:0004 Y:0000 P:envMxdiZC $99/95E1 80 F3 BRA $F3 [$95D6] A:0004 X:0004 Y:0000 P:envMxdizC
- code is missing here
$99/95F4 60 RTS A:00AC X:0004 Y:0001 P:eNvMxdizC
$99/95F5 ?
$99/95F5 B7 E3 LDA [$E3],y[$7E:3782] A:001D X:0002 Y:0000 P:envMxdiZc $99/95F7 C9 85 CMP #$85 A:0061 X:0002 Y:0000 P:envMxdizc $99/95F9 F0 31 BEQ $31 [$962C] A:0061 X:0002 Y:0000 P:eNvMxdizc $99/95FB C9 9B CMP #$9B A:0061 X:0002 Y:0000 P:eNvMxdizc $99/95FD F0 34 BEQ $34 [$9633] A:0061 X:0002 Y:0000 P:eNvMxdizc $99/95FF C9 1D CMP #$1D A:0061 X:0002 Y:0000 P:eNvMxdizc $99/9601 F0 41 BEQ $41 [$9644] A:0061 X:0002 Y:0000 P:envMxdizC $99/9603 C9 1E CMP #$1E A:0061 X:0002 Y:0000 P:envMxdizC $99/9605 F0 3D BEQ $3D [$9644] A:0061 X:0002 Y:0000 P:envMxdizC $99/9607 C9 42 CMP #$42 A:0061 X:0002 Y:0000 P:envMxdizC $99/9609 F0 41 BEQ $41 [$964C] A:0061 X:0002 Y:0000 P:envMxdizC $99/960B C9 43 CMP #$43 A:0061 X:0002 Y:0000 P:envMxdizC $99/960D F0 45 BEQ $45 [$9654] A:0061 X:0002 Y:0000 P:envMxdizC $99/960F C9 45 CMP #$45 A:0061 X:0002 Y:0000 P:envMxdizC $99/9611 F0 49 BEQ $49 [$965C] A:0061 X:0002 Y:0000 P:envMxdizC $99/9613 C9 46 CMP #$46 A:0061 X:0002 Y:0000 P:envMxdizC $99/9615 F0 49 BEQ $49 [$9660] A:0061 X:0002 Y:0000 P:envMxdizC $99/9617 C9 48 CMP #$48 A:0061 X:0002 Y:0000 P:envMxdizC $99/9619 F0 49 BEQ $49 [$9664] A:0061 X:0002 Y:0000 P:envMxdizC $99/961B C9 49 CMP #$49 A:0061 X:0002 Y:0000 P:envMxdizC $99/961D F0 49 BEQ $49 [$9668] A:0061 X:0002 Y:0000 P:envMxdizC $99/961F C9 4C CMP #$4C A:0061 X:0002 Y:0000 P:envMxdizC $99/9621 F0 49 BEQ $49 [$966C] A:0061 X:0002 Y:0000 P:envMxdizC $99/9623 C9 0F CMP #$0F A:0061 X:0002 Y:0000 P:envMxdizC $99/9625 F0 02 BEQ $02 [$9629] A:0061 X:0002 Y:0000 P:envMxdizC $99/9627 80 4B BRA $4B ; [$9674] Else, exit
- code is missing here
$99/9674 60 RTS
$99/99A3 ?
$99/99A3 E2 20 SEP #$20 A:005E X:005E Y:37A6 P:envmxdizc $99/99A5 A9 32 LDA #$32 A:005E X:005E Y:37A6 P:envMxdizc $99/99A7 48 PHA A:0032 X:005E Y:37A6 P:envMxdizc $99/99A8 C2 20 REP #$20 A:0032 X:005E Y:37A6 P:envMxdizc $99/99AA 20 81 D4 JSR $D481 [$99:D481] A:0032 X:005E Y:37A6 P:envmxdizc $99/99AD 18 CLC A:086F X:0000 Y:37A6 P:envmxdizc $99/99AE 67 E3 ADC [$E3] [$7E:37A7] A:086F X:0000 Y:37A6 P:envmxdizc $99/99B0 85 B2 STA $B2 [$00:00B2] A:087D X:0000 Y:37A6 P:envmxdizc $99/99B2 C6 E3 DEC $E3 [$00:00E3] A:087D X:0000 Y:37A6 P:envmxdizc $99/99B4 A6 E1 LDX $E1 [$00:00E1] A:087D X:0000 Y:37A6 P:envmxdizc $99/99B6 BD 01 00 LDA $0001,x[$7E:3301] A:087D X:3300 Y:37A6 P:envmxdizc $99/99B9 85 00 STA $00 [$00:0000] A:0032 X:3300 Y:37A6 P:envmxdizc $99/99BB D4 5C PEI ($5C) [$3911] A:0032 X:3300 Y:37A6 P:envmxdizc $99/99BD 20 B3 D4 JSR $D4B3 [$99:D4B3] A:0032 X:3300 Y:37A6 P:envmxdizc $99/99C0 FA PLX A:007E X:37A6 Y:0002 P:envmxdizC $99/99C1 86 5C STX $5C [$00:005C] A:007E X:3911 Y:0002 P:envmxdizC $99/99C3 E2 20 SEP #$20 A:007E X:3911 Y:0002 P:envmxdizC $99/99C5 A3 01 LDA $01,s [$00:1FD7] A:007E X:3911 Y:0002 P:envMxdizC $99/99C7 48 PHA A:0032 X:3911 Y:0002 P:envMxdizC $99/99C8 A7 E3 LDA [$E3] [$7E:37A6] A:0032 X:3911 Y:0002 P:envMxdizC $99/99CA 83 02 STA $02,s [$00:1FD7] A:002F X:3911 Y:0002 P:envMxdizC $99/99CC C2 20 REP #$20 A:002F X:3911 Y:0002 P:envMxdizC $99/99CE E6 E3 INC $E3 [$00:00E3] A:002F X:3911 Y:0002 P:envmxdizC $99/99D0 E6 E3 INC $E3 [$00:00E3] A:002F X:3911 Y:0002 P:envmxdizC $99/99D2 E6 E3 INC $E3 [$00:00E3] A:002F X:3911 Y:0002 P:envmxdizC $99/99D4 E2 20 SEP #$20 A:002F X:3911 Y:0002 P:envmxdizC $99/99D6 A6 E1 LDX $E1 [$00:00E1] A:002F X:3911 Y:0002 P:envMxdizC $99/99D8 BD C4 02 LDA $02C4,x[$7E:35C4] A:002F X:3300 Y:0002 P:envMxdizC $99/99DB 85 B1 STA $B1 [$00:00B1] A:0000 X:3300 Y:0002 P:envMxdiZC $99/99DD 68 PLA A:0000 X:3300 Y:0002 P:envMxdiZC $99/99DE 22 31 93 9A JSL $9A9331[$9A:9331] A:0032 X:3300 Y:0002 P:envMxdizC $99/99E2 86 39 STX $39 [$00:0039] A:0032 X:0000 Y:0002 P:envMxdizc $99/99E4 BD 56 1A LDA $1A56,x[$7E:1A56] A:0032 X:0000 Y:0002 P:envMxdizc $99/99E7 85 B0 STA $B0 [$00:00B0] A:0008 X:0000 Y:0002 P:envMxdizc $99/99E9 BD AE 17 LDA $17AE,x[$7E:17AE] A:0008 X:0000 Y:0002 P:envMxdizc $99/99EC 22 86 EB 81 JSL $81EB86[$81:EB86] A:0032 X:0000 Y:0002 P:envMxdizc $99/99F0 85 08 STA $08 [$00:0008] A:0030 X:0000 Y:0002 P:envMxdiZc $99/99F2 20 3D 9B JSR $9B3D [$99:9B3D] A:0030 X:0000 Y:0002 P:envMxdiZc $99/99F5 A0 00 00 LDY #$0000 A:001D X:0000 Y:0000 P:envMxdizc $99/99F8 20 F5 95 JSR $95F5 [$99:95F5] A:001D X:0000 Y:0000 P:envMxdiZc $99/99FB 64 B8 STZ $B8 [$00:00B8] A:00AB X:0000 Y:0001 P:eNvMxdizC $99/99FD 64 B9 STZ $B9 [$00:00B9] A:00AB X:0000 Y:0001 P:eNvMxdizC $99/99FF 22 C5 81 81 JSL $8181C5[$81:81C5] A:00AB X:0000 Y:0001 P:eNvMxdizC $99/9A03 22 E8 95 80 JSL $8095E8[$80:95E8] A:3900 X:0000 Y:0002 P:envMxdizc $99/9A07 22 8A A1 80 JSL $80A18A ; Wait for NMI $99/9A0B 68 PLA A:FF80 X:1744 Y:000A P:envMxdizc $99/9A0C C9 BD CMP #$BD A:FF2F X:1744 Y:000A P:envMxdizc $99/9A0E F0 0C BEQ $0C [$9A1C] A:FF2F X:1744 Y:000A P:envMxdizc $99/9A10 C9 BF CMP #$BF A:FF2F X:1744 Y:000A P:envMxdizc $99/9A12 F0 08 BEQ $08 [$9A1C] A:FF2F X:1744 Y:000A P:envMxdizc $99/9A14 C9 C3 CMP #$C3 A:FF2F X:1744 Y:000A P:envMxdizc $99/9A16 F0 04 BEQ $04 [$9A1C] A:FF2F X:1744 Y:000A P:envMxdizc $99/9A18 C9 C9 CMP #$C9 A:FF2F X:1744 Y:000A P:envMxdizc $99/9A1A D0 08 BNE $08 [$9A24] A:FF2F X:1744 Y:000A P:envMxdizc
- code is missing here
$99/9A24 4C 31 8A JMP $8A31 [$99:8A31] A:FF2F X:1744 Y:000A P:envMxdizc
$99/9ABD ?
$99/9ABD 48 PHA A:0032 X:0004 Y:0009 P:envMxdizc $99/9ABE A4 39 LDY $39 [$00:0039] A:0032 X:0004 Y:0009 P:envMxdizc $99/9AC0 BE 3E 1E LDX $1E3E,y[$7E:1E42] A:0032 X:0004 Y:0004 P:envMxdizc $99/9AC3 C2 20 REP #$20 A:0032 X:0004 Y:0004 P:envMxdizc $99/9AC5 BD 43 07 LDA $0743,x[$7E:0747] A:0032 X:0004 Y:0004 P:envmxdizc $99/9AC8 38 SEC A:0160 X:0004 Y:0004 P:envmxdizc $99/9AC9 ED 95 05 SBC $0595 [$7E:0595] A:0160 X:0004 Y:0004 P:envmxdizC $99/9ACC 10 01 BPL $01 [$9ACF] A:0070 X:0004 Y:0004 P:envmxdizC
- code is missing here
$99/9ACF 4A LSR A A:0070 X:0004 Y:0004 P:envmxdizC $99/9AD0 4A LSR A A:0038 X:0004 Y:0004 P:envmxdizc $99/9AD1 4A LSR A A:001C X:0004 Y:0004 P:envmxdizc $99/9AD2 E2 20 SEP #$20 A:000E X:0004 Y:0004 P:envmxdizc $99/9AD4 85 10 STA $10 [$00:0010] A:000E X:0004 Y:0004 P:envMxdizc $99/9AD6 A5 04 LDA $04 [$00:0004] A:000E X:0004 Y:0004 P:envMxdizc $99/9AD8 18 CLC A:0013 X:0004 Y:0004 P:envMxdizc $99/9AD9 69 05 ADC #$05 A:0013 X:0004 Y:0004 P:envMxdizc $99/9ADB 4A LSR A A:0018 X:0004 Y:0004 P:envMxdizc $99/9ADC 83 01 STA $01,s [$00:1FD5] A:000C X:0004 Y:0004 P:envMxdizc $99/9ADE A5 10 LDA $10 [$00:0010] A:000C X:0004 Y:0004 P:envMxdizc $99/9AE0 38 SEC A:000E X:0004 Y:0004 P:envMxdizc $99/9AE1 E3 01 SBC $01,s [$00:1FD5] A:000E X:0004 Y:0004 P:envMxdizC $99/9AE3 83 01 STA $01,s [$00:1FD5] A:0002 X:0004 Y:0004 P:envMxdizC $99/9AE5 30 2B BMI $2B [$9B12] A:0002 X:0004 Y:0004 P:envMxdizC $99/9AE7 C9 03 CMP #$03 A:0002 X:0004 Y:0004 P:envMxdizC $99/9AE9 90 27 BCC $27 [$9B12] A:0002 X:0004 Y:0004 P:eNvMxdizc $99/9AEB A5 04 LDA $04 [$00:0004] A:0005 X:0004 Y:0004 P:envMxdizC $99/9AED 18 CLC A:0011 X:0004 Y:0004 P:envMxdizC $99/9AEE 69 05 ADC #$05 A:0011 X:0004 Y:0004 P:envMxdizc $99/9AF0 4A LSR A A:0016 X:0004 Y:0004 P:envMxdizc $99/9AF1 83 01 STA $01,s [$00:1FD4] A:000B X:0004 Y:0004 P:envMxdizc $99/9AF3 A5 10 LDA $10 [$00:0010] A:000B X:0004 Y:0004 P:envMxdizc $99/9AF5 18 CLC A:0010 X:0004 Y:0004 P:envMxdizc $99/9AF6 63 01 ADC $01,s [$00:1FD4] A:0010 X:0004 Y:0004 P:envMxdizc $99/9AF8 83 01 STA $01,s [$00:1FD4] A:001B X:0004 Y:0004 P:envMxdizc $99/9AFA C9 1C CMP #$1C A:001B X:0004 Y:0004 P:envMxdizc $99/9AFC B0 1A BCS $1A [$9B18] A:001B X:0004 Y:0004 P:eNvMxdizc $99/9AFE A5 04 LDA $04 [$00:0004] A:001B X:0004 Y:0004 P:eNvMxdizc $99/9B00 18 CLC A:0011 X:0004 Y:0004 P:envMxdizc $99/9B01 69 05 ADC #$05 A:0011 X:0004 Y:0004 P:envMxdizc $99/9B03 4A LSR A A:0016 X:0004 Y:0004 P:envMxdizc $99/9B04 83 01 STA $01,s [$00:1FD4] A:000B X:0004 Y:0004 P:envMxdizc $99/9B06 A5 10 LDA $10 [$00:0010] A:000B X:0004 Y:0004 P:envMxdizc $99/9B08 38 SEC A:0010 X:0004 Y:0004 P:envMxdizc $99/9B09 E3 01 SBC $01,s [$00:1FD4] A:0010 X:0004 Y:0004 P:envMxdizC $99/9B0B 18 CLC A:0005 X:0004 Y:0004 P:envMxdizC $99/9B0C 69 05 ADC #$05 A:0005 X:0004 Y:0004 P:envMxdizc $99/9B0E 85 02 STA $02 [$00:0002] A:000A X:0004 Y:0004 P:envMxdizc $99/9B10 80 0D BRA $0D [$9B1F] A:000A X:0004 Y:0004 P:envMxdizc $99/9B12 A9 08 LDA #$08 A:0002 X:0004 Y:0004 P:eNvMxdizc $99/9B14 85 02 STA $02 [$00:0002] A:0008 X:0004 Y:0004 P:envMxdizc $99/9B16 80 07 BRA $07 [$9B1F] A:0008 X:0004 Y:0004 P:envMxdizc
- code is missing here
$99/9B1F 64 0A STZ $0A [$00:000A] A:0008 X:0004 Y:0004 P:envMxdizc $99/9B21 A5 10 LDA $10 [$00:0010] A:0008 X:0004 Y:0004 P:envMxdizc $99/9B23 C9 03 CMP #$03 A:000E X:0004 Y:0004 P:envMxdizc $99/9B25 90 08 BCC $08 [$9B2F] A:000E X:0004 Y:0004 P:envMxdizC $99/9B27 C9 1D CMP #$1D A:000E X:0004 Y:0004 P:envMxdizC $99/9B29 B0 04 BCS $04 [$9B2F] A:000E X:0004 Y:0004 P:eNvMxdizc $99/9B2B 09 80 ORA #$80 A:000E X:0004 Y:0004 P:eNvMxdizc $99/9B2D 85 0A STA $0A [$00:000A] A:008E X:0004 Y:0004 P:eNvMxdizc $99/9B2F A9 02 LDA #$02 A:008E X:0004 Y:0004 P:eNvMxdizc $99/9B31 85 03 STA $03 [$00:0003] A:0002 X:0004 Y:0004 P:envMxdizc $99/9B33 A9 06 LDA #$06 A:0002 X:0004 Y:0004 P:envMxdizc $99/9B35 85 05 STA $05 [$00:0005] A:0006 X:0004 Y:0004 P:envMxdizc $99/9B37 A9 00 LDA #$00 A:0006 X:0004 Y:0004 P:envMxdizc $99/9B39 85 09 STA $09 [$00:0009] A:0000 X:0004 Y:0004 P:envMxdiZc $99/9B3B 68 PLA A:0000 X:0004 Y:0004 P:envMxdiZc $99/9B3C 60 RTS A:0002 X:0004 Y:0004 P:envMxdizc
$99/9B3D ?
$99/9B3D 48 PHA A:0033 X:0002 Y:0003 P:envMxdizc $99/9B3E A4 39 LDY $39 [$00:0039] A:0033 X:0002 Y:0003 P:envMxdizc $99/9B40 BE 3E 1E LDX $1E3E,y[$7E:1E40] A:0033 X:0002 Y:0002 P:envMxdizc $99/9B43 C2 20 REP #$20 A:0033 X:0002 Y:0002 P:envMxdizc $99/9B45 BD 43 07 LDA $0743,x[$7E:0745] A:0033 X:0002 Y:0002 P:envmxdizc $99/9B48 38 SEC A:0180 X:0002 Y:0002 P:envmxdizc $99/9B49 ED 95 05 SBC $0595 [$7E:0595] A:0180 X:0002 Y:0002 P:envmxdizC $99/9B4C 10 01 BPL $01 [$9B4F] A:0090 X:0002 Y:0002 P:envmxdizC
- code is missing here
$99/9B4F 4A LSR A A:0090 X:0002 Y:0002 P:envmxdizC $99/9B50 4A LSR A A:0048 X:0002 Y:0002 P:envmxdizc $99/9B51 4A LSR A A:0024 X:0002 Y:0002 P:envmxdizc $99/9B52 E2 20 SEP #$20 A:0012 X:0002 Y:0002 P:envmxdizc $99/9B54 85 10 STA $10 [$00:0010] A:0012 X:0002 Y:0002 P:envMxdizc $99/9B56 A5 04 LDA $04 [$00:0004] A:0012 X:0002 Y:0002 P:envMxdizc $99/9B58 18 CLC A:0012 X:0002 Y:0002 P:envMxdizc $99/9B59 69 05 ADC #$05 A:0012 X:0002 Y:0002 P:envMxdizc $99/9B5B 4A LSR A A:0017 X:0002 Y:0002 P:envMxdizc $99/9B5C 83 01 STA $01,s [$00:1FD5] A:000B X:0002 Y:0002 P:envMxdizC $99/9B5E A5 10 LDA $10 [$00:0010] A:000B X:0002 Y:0002 P:envMxdizC $99/9B60 38 SEC A:0012 X:0002 Y:0002 P:envMxdizC $99/9B61 E3 01 SBC $01,s [$00:1FD5] A:0012 X:0002 Y:0002 P:envMxdizC $99/9B63 83 01 STA $01,s [$00:1FD5] A:0007 X:0002 Y:0002 P:envMxdizC $99/9B65 30 29 BMI $29 [$9B90] A:0007 X:0002 Y:0002 P:envMxdizC $99/9B67 C9 03 CMP #$03 A:0007 X:0002 Y:0002 P:envMxdizC $99/9B69 90 25 BCC $25 [$9B90] A:0007 X:0002 Y:0002 P:envMxdizC $99/9B6B A5 04 LDA $04 [$00:0004] A:0007 X:0002 Y:0002 P:envMxdizC $99/9B6D 18 CLC A:0012 X:0002 Y:0002 P:envMxdizC $99/9B6E 69 05 ADC #$05 A:0012 X:0002 Y:0002 P:envMxdizc $99/9B70 4A LSR A A:0017 X:0002 Y:0002 P:envMxdizc $99/9B71 83 01 STA $01,s [$00:1FD5] A:000B X:0002 Y:0002 P:envMxdizC $99/9B73 A5 10 LDA $10 [$00:0010] A:000B X:0002 Y:0002 P:envMxdizC $99/9B75 18 CLC A:0012 X:0002 Y:0002 P:envMxdizC $99/9B76 63 01 ADC $01,s [$00:1FD5] A:0012 X:0002 Y:0002 P:envMxdizc $99/9B78 83 01 STA $01,s [$00:1FD5] A:001D X:0002 Y:0002 P:envMxdizc $99/9B7A C9 1D CMP #$1D A:001D X:0002 Y:0002 P:envMxdizc $99/9B7C B0 18 BCS $18 [$9B96] A:001D X:0002 Y:0002 P:envMxdiZC
- code is missing here
$99/9B96 A9 1D LDA #$1D A:001D X:0002 Y:0002 P:envMxdiZC $99/9B98 38 SEC A:001D X:0002 Y:0002 P:envMxdizC $99/9B99 E5 04 SBC $04 [$00:0004] A:001D X:0002 Y:0002 P:envMxdizC $99/9B9B E9 05 SBC #$05 A:000B X:0002 Y:0002 P:envMxdizC $99/9B9D 85 02 STA $02 [$00:0002] A:0006 X:0002 Y:0002 P:envMxdizC $99/9B9F 64 0A STZ $0A [$00:000A] A:0006 X:0002 Y:0002 P:envMxdizC $99/9BA1 A5 10 LDA $10 [$00:0010] A:0006 X:0002 Y:0002 P:envMxdizC $99/9BA3 C9 03 CMP #$03 A:0012 X:0002 Y:0002 P:envMxdizC $99/9BA5 90 06 BCC $06 [$9BAD] A:0012 X:0002 Y:0002 P:envMxdizC $99/9BA7 C9 1D CMP #$1D A:0012 X:0002 Y:0002 P:envMxdizC $99/9BA9 B0 02 BCS $02 [$9BAD] A:0012 X:0002 Y:0002 P:eNvMxdizc $99/9BAB 85 0A STA $0A [$00:000A] A:0012 X:0002 Y:0002 P:eNvMxdizc $99/9BAD A9 14 LDA #$14 A:0012 X:0002 Y:0002 P:eNvMxdizc $99/9BAF 85 03 STA $03 [$00:0003] A:0014 X:0002 Y:0002 P:envMxdizc $99/9BB1 A9 06 LDA #$06 A:0014 X:0002 Y:0002 P:envMxdizc $99/9BB3 85 05 STA $05 [$00:0005] A:0006 X:0002 Y:0002 P:envMxdizc $99/9BB5 A9 40 LDA #$40 A:0006 X:0002 Y:0002 P:envMxdizc $99/9BB7 85 09 STA $09 [$00:0009] A:0040 X:0002 Y:0002 P:envMxdizc $99/9BB9 68 PLA A:0040 X:0002 Y:0002 P:envMxdizc $99/9BBA 60 RTS A:001D X:0002 Y:0002 P:envMxdizc
$99/9CD0 ?
$99/9CD0 E2 20 SEP #$20 A:0038 X:0038 Y:37BE P:envmxdizc $99/9CD2 A6 E1 LDX $E1 [$00:00E1] A:0038 X:0038 Y:37BE P:envMxdizc $99/9CD4 A9 06 LDA #$06 A:0038 X:3300 Y:37BE P:envMxdizc $99/9CD6 9D 0B 00 STA $000B,x[$7E:330B] A:0006 X:3300 Y:37BE P:envMxdizc $99/9CD9 60 RTS A:0006 X:3300 Y:37BE P:envMxdizc
$99/9CDE ?
$99/9CDE 4C 31 8A JMP $8A31 [$99:8A31] A:008A X:008A Y:3765 P:envmxdizc
$99/B591 ?
$99/B591 DA PHX A:0002 X:0002 Y:0002 P:envMxdizc $99/B592 C2 21 REP #$21 A:0002 X:0002 Y:0002 P:envMxdizc $99/B594 29 FF 00 AND #$00FF A:0002 X:0002 Y:0002 P:envmxdizc $99/B597 4A LSR A A:0002 X:0002 Y:0002 P:envmxdizc $99/B598 65 E1 ADC $E1 [$00:00E1] A:0001 X:0002 Y:0002 P:envmxdizc $99/B59A AA TAX A:3301 X:0002 Y:0002 P:envmxdizc $99/B59B E2 20 SEP #$20 A:3301 X:3301 Y:0002 P:envmxdizc $99/B59D A9 01 LDA #$01 A:3301 X:3301 Y:0002 P:envMxdizc $99/B59F 9D C7 02 STA $02C7,x[$7E:35C8] A:3301 X:3301 Y:0002 P:envMxdizc $99/B5A2 FA PLX A:3301 X:3301 Y:0002 P:envMxdizc $99/B5A3 60 RTS A:3301 X:0002 Y:0002 P:envMxdizc
$99/BC05 ?
$99/BC05 E2 20 SEP #$20 A:00C2 X:00C2 Y:3782 P:envmxdizc $99/BC07 22 8F 9B 9E JSL $9E9B8F[$9E:9B8F] A:00C2 X:00C2 Y:3782 P:envMxdizc $99/BC0B A6 39 LDX $39 [$00:0039] A:0000 X:0006 Y:3782 P:envMxdiZc $99/BC0D 22 DA 9F 9E JSL $9E9FDA[$9E:9FDA] A:0000 X:0006 Y:3782 P:envMxdizc $99/BC11 7B TDC A:003E X:0006 Y:3782 P:envMxdizc $99/BC12 A7 E3 LDA [$E3] [$7E:3783] A:0000 X:0006 Y:3782 P:envMxdiZc $99/BC14 A4 39 LDY $39 [$00:0039] A:003B X:0006 Y:3782 P:envMxdizc $99/BC16 99 AE 17 STA $17AE,y[$7E:17B4] A:003B X:0006 Y:0006 P:envMxdizc $99/BC19 AA TAX A:003B X:0006 Y:0006 P:envMxdizc $99/BC1A BF D2 AA 88 LDA $88AAD2,x[$88:AB0D] A:003B X:003B Y:0006 P:envMxdizc $99/BC1E C9 FF CMP #$FF A:003B X:003B Y:0006 P:envMxdizc $99/BC20 D0 02 BNE $02 [$BC24] A:003B X:003B Y:0006 P:envMxdizc
- code is missing here
$99/BC24 99 AF 17 STA $17AF,y[$7E:17B5] A:003B X:003B Y:0006 P:envMxdizc $99/BC27 22 21 D9 99 JSL $99D921[$99:D921] A:003B X:003B Y:0006 P:envMxdizc $99/BC2B E6 8E INC $8E [$00:008E] A:0001 X:003B Y:0006 P:envMxdizc $99/BC2D A6 39 LDX $39 [$00:0039] A:0001 X:003B Y:0006 P:envMxdizc $99/BC2F A0 01 00 LDY #$0001 A:0001 X:0006 Y:0006 P:envMxdizc $99/BC32 B7 E3 LDA [$E3],y[$7E:3784] A:0001 X:0006 Y:0001 P:envMxdizc $99/BC34 9D D6 1C STA $1CD6,x[$7E:1CDC] A:0004 X:0006 Y:0001 P:envMxdizc $99/BC37 C8 INY A:0004 X:0006 Y:0001 P:envMxdizc $99/BC38 B7 E3 LDA [$E3],y[$7E:3785] A:0004 X:0006 Y:0002 P:envMxdizc $99/BC3A 9D D7 1C STA $1CD7,x[$7E:1CDD] A:0002 X:0006 Y:0002 P:envMxdizc $99/BC3D C8 INY A:0002 X:0006 Y:0002 P:envMxdizc $99/BC3E B7 E3 LDA [$E3],y[$7E:3786] A:0002 X:0006 Y:0003 P:envMxdizc $99/BC40 5A PHY A:00FF X:0006 Y:0003 P:eNvMxdizc $99/BC41 9B TXY A:00FF X:0006 Y:0003 P:eNvMxdizc $99/BC42 22 31 D9 99 JSL $99D931[$99:D931] A:00FF X:0006 Y:0006 P:envMxdizc $99/BC46 7A PLY A:000B X:0006 Y:0006 P:envMxdizc $99/BC47 9D C6 1D STA $1DC6,x[$7E:1DCC] A:000B X:0006 Y:0003 P:envMxdizc $99/BC4A C8 INY A:000B X:0006 Y:0003 P:envMxdizc $99/BC4B B7 E3 LDA [$E3],y[$7E:3787] A:000B X:0006 Y:0004 P:envMxdizc $99/BC4D 9D 6E 1B STA $1B6E,x[$7E:1B74] A:0001 X:0006 Y:0004 P:envMxdizc $99/BC50 C8 INY A:0001 X:0006 Y:0004 P:envMxdizc $99/BC51 9E 2F 1A STZ $1A2F,x[$7E:1A35] A:0001 X:0006 Y:0005 P:envMxdizc $99/BC54 B7 E3 LDA [$E3],y[$7E:3788] A:0001 X:0006 Y:0005 P:envMxdizc $99/BC56 10 0A BPL $0A [$BC62] A:0006 X:0006 Y:0005 P:envMxdizc
- code is missing here
$99/BC62 B7 E3 LDA [$E3],y[$7E:3788] A:0006 X:0006 Y:0005 P:envMxdizc $99/BC64 29 7F AND #$7F A:0006 X:0006 Y:0005 P:envMxdizc $99/BC66 9D 56 1A STA $1A56,x[$7E:1A5C] A:0006 X:0006 Y:0005 P:envMxdizc $99/BC69 C2 20 REP #$20 A:0006 X:0006 Y:0005 P:envMxdizc $99/BC6B A9 24 B8 LDA #$B824 A:0006 X:0006 Y:0005 P:envmxdizc $99/BC6E 9D 9E 1D STA $1D9E,x[$7E:1DA4] A:B824 X:0006 Y:0005 P:eNvmxdizc $99/BC71 E2 20 SEP #$20 A:B824 X:0006 Y:0005 P:eNvmxdizc $99/BC73 A2 00 00 LDX #$0000 A:B824 X:0006 Y:0005 P:eNvMxdizc $99/BC76 86 3B STX $3B [$00:003B] A:B824 X:0000 Y:0005 P:envMxdiZc $99/BC78 A6 39 LDX $39 [$00:0039] A:B824 X:0000 Y:0005 P:envMxdiZc $99/BC7A BD AF 17 LDA $17AF,x[$7E:17B5] A:B824 X:0006 Y:0005 P:envMxdizc $99/BC7D EB XBA A:B83B X:0006 Y:0005 P:envMxdizc $99/BC7E BD AE 17 LDA $17AE,x[$7E:17B4] A:3BB8 X:0006 Y:0005 P:eNvMxdizc $99/BC81 22 C4 BB 84 JSL $84BBC4[$84:BBC4] A:3B3B X:0006 Y:0005 P:envMxdizc $99/BC85 A6 39 LDX $39 [$00:0039] A:883B X:0008 Y:87F0 P:envMxdizc $99/BC87 22 10 B9 80 JSL $80B910[$80:B910] A:883B X:0006 Y:87F0 P:envMxdizc $99/BC8B 85 06 STA $06 [$00:0006] A:000B X:0006 Y:87F0 P:envMxdizc $99/BC8D 85 07 STA $07 [$00:0007] A:000B X:0006 Y:87F0 P:envMxdizc $99/BC8F 22 D6 B7 80 JSL $80B7D6[$80:B7D6] A:000B X:0006 Y:87F0 P:envMxdizc $99/BC93 A6 39 LDX $39 [$00:0039] A:8102 X:0006 Y:0006 P:envMxdizc $99/BC95 A9 40 LDA #$40 A:8102 X:0006 Y:0006 P:envMxdizc $99/BC97 9D DF 19 STA $19DF,x[$7E:19E5] A:8140 X:0006 Y:0006 P:envMxdizc $99/BC9A A9 01 LDA #$01 A:8140 X:0006 Y:0006 P:envMxdizc $99/BC9C 9D 16 1E STA $1E16,x[$7E:1E1C] A:8101 X:0006 Y:0006 P:envMxdizc $99/BC9F A6 3B LDX $3B [$00:003B] A:8101 X:0006 Y:0006 P:envMxdizc $99/BCA1 A9 19 LDA #$19 A:8101 X:0006 Y:0006 P:envMxdizc $99/BCA3 9D C3 08 STA $08C3,x[$7E:08C9] A:8119 X:0006 Y:0006 P:envMxdizc $99/BCA6 A6 39 LDX $39 [$00:0039] A:8119 X:0006 Y:0006 P:envMxdizc $99/BCA8 22 F4 89 82 JSL $8289F4[$82:89F4] A:8119 X:0006 Y:0006 P:envMxdizc $99/BCAC A6 39 LDX $39 [$00:0039] A:0006 X:0006 Y:0006 P:envMxdizC $99/BCAE BD D6 1C LDA $1CD6,x[$7E:1CDC] A:0006 X:0006 Y:0006 P:envMxdizC $99/BCB1 85 02 STA $02 [$00:0002] A:0004 X:0006 Y:0006 P:envMxdizC $99/BCB3 BD D7 1C LDA $1CD7,x[$7E:1CDD] A:0004 X:0006 Y:0006 P:envMxdizC $99/BCB6 85 03 STA $03 [$00:0003] A:0002 X:0006 Y:0006 P:envMxdizC $99/BCB8 BD C6 1D LDA $1DC6,x[$7E:1DCC] A:0002 X:0006 Y:0006 P:envMxdizC $99/BCBB 85 04 STA $04 [$00:0004] A:000B X:0006 Y:0006 P:envMxdizC $99/BCBD 22 CE 99 9E JSL $9E99CE[$9E:99CE] A:000B X:0006 Y:0006 P:envMxdizC $99/BCC1 20 60 C6 JSR $C660 [$99:C660] A:8102 X:0006 Y:0006 P:envMxdizc $99/BCC4 22 5E 9A 80 JSL $809A5E[$80:9A5E] A:3980 X:0002 Y:44C0 P:envMxdizc $99/BCC8 22 B0 A4 9B JSL $9BA4B0[$9B:A4B0] A:12C0 X:0200 Y:0006 P:envMxdizC $99/BCCC 20 80 C8 JSR $C880 [$99:C880] A:0000 X:0200 Y:0006 P:envMxdizC $99/BCCF 22 8A A1 80 JSL $80A18A ; Wait for NMI $99/BCD3 C2 20 REP #$20 ; A = 16-bit $99/BCD5 E6 E3 INC $E3 ; Increment Data Load Address six times $99/BCD7 E6 E3 INC $E3 $99/BCD9 E6 E3 INC $E3 $99/BCDB E6 E3 INC $E3 $99/BCDD E6 E3 INC $E3 $99/BCDF E6 E3 INC $E3 $99/BCE1 4C 31 8A JMP $8A31 [$99:8A31] A:FF80 X:003C Y:0002 P:envmxdizc
$99/BDEF ?
$99/BDEF 5A PHY A:0001 X:0002 Y:0000 P:envMxdizc $99/BDF0 9B TXY A:0001 X:0002 Y:0000 P:envMxdizc $99/BDF1 B7 E3 LDA [$E3],y[$7E:376A] A:0001 X:0002 Y:0002 P:envMxdizc $99/BDF3 C9 3A CMP #$3A A:00AB X:0002 Y:0002 P:eNvMxdizc $99/BDF5 F0 33 BEQ $33 [$BE2A] A:00AB X:0002 Y:0002 P:envMxdizC $99/BDF7 C9 E8 CMP #$E8 A:00AB X:0002 Y:0002 P:envMxdizC $99/BDF9 F0 31 BEQ $31 [$BE2C] A:00AB X:0002 Y:0002 P:eNvMxdizc $99/BDFB C9 0F CMP #$0F A:00AB X:0002 Y:0002 P:eNvMxdizc $99/BDFD F0 2D BEQ $2D [$BE2C] A:00AB X:0002 Y:0002 P:eNvMxdizC $99/BDFF C9 4A CMP #$4A A:00AB X:0002 Y:0002 P:eNvMxdizC $99/BE01 F0 2C BEQ $2C [$BE2F] A:00AB X:0002 Y:0002 P:envMxdizC $99/BE03 C9 4B CMP #$4B A:00AB X:0002 Y:0002 P:envMxdizC $99/BE05 F0 2E BEQ $2E [$BE35] A:00AB X:0002 Y:0002 P:envMxdizC $99/BE07 C9 E0 CMP #$E0 A:00AB X:0002 Y:0002 P:envMxdizC $99/BE09 D0 33 BNE $33 [$BE3E] A:00AB X:0002 Y:0002 P:eNvMxdizc
- code is missing here
$99/BE3E 7A PLY A:00AB X:0002 Y:0002 P:eNvMxdizc $99/BE3F 18 CLC A:00AB X:0002 Y:0000 P:envMxdiZc $99/BE40 60 RTS A:00AB X:0002 Y:0000 P:envMxdiZc
$99/BEAB ?
$99/BEAB E6 E3 INC $E3 [$00:00E3] A:0074 X:0074 Y:0002 P:envmxdizc $99/BEAD E6 E3 INC $E3 [$00:00E3] A:0074 X:0074 Y:0002 P:envmxdizc $99/BEAF 4C 31 8A JMP $8A31 [$99:8A31] A:0074 X:0074 Y:0002 P:envmxdizc
$99/C660 ?
$99/C660 7B TDC A:8135 X:0002 Y:0002 P:envMxdizc $99/C661 48 PHA A:0000 X:0002 Y:0002 P:envMxdiZc $99/C662 A6 39 LDX $39 [$00:0039] A:0000 X:0002 Y:0002 P:envMxdiZc $99/C664 BC 3E 1E LDY $1E3E,x[$7E:1E40] A:0000 X:0002 Y:0002 P:envMxdizc $99/C667 84 3B STY $3B [$00:003B] A:0000 X:0002 Y:0002 P:envMxdizc $99/C669 7B TDC A:0000 X:0002 Y:0002 P:envMxdizc $99/C66A B9 C3 06 LDA $06C3,y[$7E:06C5] A:0000 X:0002 Y:0002 P:envMxdiZc $99/C66D C2 20 REP #$20 A:0009 X:0002 Y:0002 P:envMxdizc $99/C66F 20 FD C6 JSR $C6FD [$99:C6FD] A:0009 X:0002 Y:0002 P:envmxdizc $99/C672 48 PHA A:4440 X:0002 Y:0002 P:envmxdizc $99/C673 A5 5C LDA $5C [$00:005C] A:4440 X:0002 Y:0002 P:envmxdizc $99/C675 85 20 STA $20 [$00:0020] A:45D9 X:0002 Y:0002 P:envmxdizc $99/C677 E2 20 SEP #$20 A:45D9 X:0002 Y:0002 P:envmxdizc $99/C679 A9 7E LDA #$7E A:45D9 X:0002 Y:0002 P:envMxdizc $99/C67B 85 22 STA $22 [$00:0022] A:457E X:0002 Y:0002 P:envMxdizc $99/C67D 64 00 STZ $00 [$00:0000] A:457E X:0002 Y:0002 P:envMxdizc $99/C67F 7B TDC A:457E X:0002 Y:0002 P:envMxdizc $99/C680 A6 39 LDX $39 [$00:0039] A:0000 X:0002 Y:0002 P:envMxdiZc $99/C682 BD D7 1C LDA $1CD7,x[$7E:1CD9] A:0000 X:0002 Y:0002 P:envMxdizc $99/C685 C2 20 REP #$20 A:0007 X:0002 Y:0002 P:envMxdizc $99/C687 EB XBA A:0007 X:0002 Y:0002 P:envmxdizc $99/C688 4A LSR A A:0700 X:0002 Y:0002 P:envmxdiZc $99/C689 4A LSR A A:0380 X:0002 Y:0002 P:envmxdizc $99/C68A 4A LSR A A:01C0 X:0002 Y:0002 P:envmxdizc $99/C68B E2 20 SEP #$20 A:00E0 X:0002 Y:0002 P:envmxdizc $99/C68D 1D D6 1C ORA $1CD6,x[$7E:1CD8] A:00E0 X:0002 Y:0002 P:envMxdizc $99/C690 A8 TAY A:00EB X:0002 Y:0002 P:eNvMxdizc $99/C691 BD C7 1D LDA $1DC7,x[$7E:1DC9] A:00EB X:0002 Y:00EB P:envMxdizc $99/C694 BB TYX A:0000 X:0002 Y:00EB P:envMxdiZc $99/C695 22 76 C2 80 JSL $80C276[$80:C276] A:0000 X:00EB Y:00EB P:envMxdizc $99/C699 90 04 BCC $04 [$C69F] A:0003 X:00EB Y:00EB P:envMxdizc
- code is missing here
$99/C69F A6 39 LDX $39 [$00:0039] A:0003 X:00EB Y:00EB P:envMxdizc $99/C6A1 7B TDC A:0003 X:0002 Y:00EB P:envMxdizc $99/C6A2 A3 03 LDA $03,s [$00:1FD5] A:0000 X:0002 Y:00EB P:envMxdiZc $99/C6A4 0A ASL A A:0000 X:0002 Y:00EB P:envMxdiZc $99/C6A5 0A ASL A A:0000 X:0002 Y:00EB P:envMxdiZc $99/C6A6 83 03 STA $03,s [$00:1FD5] A:0000 X:0002 Y:00EB P:envMxdiZc $99/C6A8 BD 6E 1B LDA $1B6E,x[$7E:1B70] A:0000 X:0002 Y:00EB P:envMxdiZc $99/C6AB 29 03 AND #$03 A:0001 X:0002 Y:00EB P:envMxdizc $99/C6AD 63 03 ADC $03,s [$00:1FD5] A:0001 X:0002 Y:00EB P:envMxdizc $99/C6AF AA TAX A:0001 X:0002 Y:00EB P:envMxdizc $99/C6B0 BF E1 C6 99 LDA $99C6E1,x[$99:C6E2] A:0001 X:0001 Y:00EB P:envMxdizc $99/C6B4 18 CLC A:0000 X:0001 Y:00EB P:envMxdiZc $99/C6B5 65 00 ADC $00 [$00:0000] A:0000 X:0001 Y:00EB P:envMxdiZc $99/C6B7 A8 TAY A:0000 X:0001 Y:00EB P:envMxdiZc $99/C6B8 A6 39 LDX $39 [$00:0039] A:0000 X:0001 Y:0000 P:envMxdiZc $99/C6BA BD AF 17 LDA $17AF,x[$7E:17B1] A:0000 X:0002 Y:0000 P:envMxdizc $99/C6BD EB XBA A:0035 X:0002 Y:0000 P:envMxdizc $99/C6BE BD AE 17 LDA $17AE,x[$7E:17B0] A:3500 X:0002 Y:0000 P:envMxdiZc $99/C6C1 22 3F A1 88 JSL $88A13F[$88:A13F] A:3535 X:0002 Y:0000 P:envMxdizc $99/C6C5 BB TYX A:0035 X:0002 Y:0000 P:envMxdizc $99/C6C6 22 F0 BD 84 JSL $84BDF0[$84:BDF0] A:0035 X:0000 Y:0000 P:envMxdiZc $99/C6CA AD 87 05 LDA $0587 [$7E:0587] A:0100 X:0000 Y:0100 P:envMxdizC $99/C6CD 29 7F AND #$7F A:010F X:0000 Y:0100 P:envMxdizC $99/C6CF 8D 87 05 STA $0587 [$7E:0587] A:010F X:0000 Y:0100 P:envMxdizC $99/C6D2 8D 6A 05 STA $056A [$7E:056A] A:010F X:0000 Y:0100 P:envMxdizC $99/C6D5 7A PLY A:010F X:0000 Y:0100 P:envMxdizC $99/C6D6 68 PLA A:010F X:0000 Y:4440 P:envMxdizC $99/C6D7 A6 39 LDX $39 [$00:0039] A:0100 X:0000 Y:4440 P:envMxdiZC $99/C6D9 BD AF 17 LDA $17AF,x[$7E:17B1] A:0100 X:0002 Y:4440 P:envMxdizC $99/C6DC 22 A2 FC 81 JSL $81FCA2[$81:FCA2] A:0135 X:0002 Y:4440 P:envMxdizC $99/C6E0 60 RTS A:4680 X:0002 Y:4440 P:envMxdizc
$99/C6FD (the same as $84/9E13)
This subroutine is exactly the same as $84/9E13. Please look for a detailled description there. This subroutine was implemented twice into the program, because it is bound to a bank ($80 and, in this case, $99) by the RTS command. I guess they didn't change it to a long Jump/Return command (JSL/RTL) due to cycle management issues.
$99/C6FD 85 02 STA $02 $99/C6FF 29 3C 00 AND #$003C $99/C702 18 CLC $99/C703 65 02 ADC $02 $99/C705 EB XBA $99/C706 4A LSR A $99/C707 4A LSR A $99/C708 C9 00 10 CMP #$1000 $99/C70B 90 0C BCC $0C ; [$C719]
- code is missing here
$99/C719 85 02 STA $02 $99/C71B AD 88 05 LDA $0588 $99/C71E 29 07 00 AND #$0007 $99/C721 4A LSR A $99/C722 6A ROR A $99/C723 6A ROR A $99/C724 6A ROR A $99/C725 65 02 ADC $02 $99/C727 60 RTS
$99/C86F ?
$99/C86F A6 E1 LDX $E1 [$00:00E1] A:000A X:0004 Y:0001 P:envMxdizC $99/C871 BD 21 00 LDA $0021,x[$7E:3321] A:000A X:3300 Y:0001 P:envMxdizC $99/C874 F0 09 BEQ $09 [$C87F] A:0000 X:3300 Y:0001 P:envMxdiZC $99/C876 C2 21 REP #$21 A:0003 X:3300 Y:0001 P:envMxdizC $99/C878 8A TXA A:0003 X:3300 Y:0001 P:envmxdizc $99/C879 69 1A 00 ADC #$001A A:3300 X:3300 Y:0001 P:envmxdizc $99/C87C AA TAX A:331A X:3300 Y:0001 P:envmxdizc $99/C87D E2 20 SEP #$20 A:331A X:331A Y:0001 P:envmxdizc $99/C87F 60 RTS A:0000 X:3300 Y:0001 P:envMxdiZC
$99/C880 ?
$99/C880 A6 E1 LDX $E1 [$00:00E1] A:377E X:3300 Y:3762 P:envMxdizc $99/C882 BD ED 02 LDA $02ED,x[$7E:35ED] A:377E X:3300 Y:3762 P:envMxdizc $99/C885 F0 03 BEQ $03 [$C88A] A:3700 X:3300 Y:3762 P:envMxdiZc $99/C88A 22 BF 80 81 JSL $8180BF[$81:80BF] A:3700 X:3300 Y:3762 P:envMxdiZc $99/C88E B0 4D BCS $4D [$C8DD] A:0002 X:3911 Y:0002 P:envMxdizc $99/C890 20 66 D1 JSR $D166 [$99:D166] A:0002 X:3911 Y:0002 P:envMxdizc $99/C893 20 D8 CC JSR $CCD8 [$99:CCD8] A:0000 X:3300 Y:0002 P:envMxdiZc $99/C896 20 E4 CC JSR $CCE4 [$99:CCE4] A:0000 X:3300 Y:3300 P:envMxdiZc $99/C899 20 21 C9 JSR $C921 [$99:C921] A:0000 X:3320 Y:0040 P:envMxdiZC $99/C89C 20 60 CA JSR $CA60 [$99:CA60] A:0000 X:3305 Y:0040 P:envMxdiZC $99/C89F 22 B6 9A 80 JSL $809AB6[$80:9AB6] A:0000 X:0040 Y:0040 P:envMxdiZC $99/C8A3 20 BE CB JSR $CBBE [$99:CBBE] A:0000 X:FFFF Y:0006 P:envMxdizC $99/C8A6 22 19 80 86 JSL $868019[$86:8019] A:0000 X:3314 Y:0028 P:envMxdiZC $99/C8AA 20 3C F7 JSR $F73C [$99:F73C] A:0001 X:0541 Y:0100 P:envMxdizC $99/C8AD 20 87 F9 JSR $F987 [$99:F987] A:0028 X:3328 Y:0100 P:envMxdiZC $99/C8B0 20 CD FB JSR $FBCD [$99:FBCD] A:0028 X:3328 Y:0100 P:envMxdiZC $99/C8B3 20 5F FC JSR $FC5F [$99:FC5F] A:0000 X:3300 Y:0100 P:envMxdiZC $99/C8B6 A6 E1 LDX $E1 [$00:00E1] A:0000 X:3300 Y:0100 P:envMxdiZC $99/C8B8 BD C6 02 LDA $02C6,x[$7E:35C6] A:0000 X:3300 Y:0100 P:envMxdizC $99/C8BB D0 11 BNE $11 [$C8CE] A:0000 X:3300 Y:0100 P:envMxdiZC $99/C8BD 22 9E 84 81 JSL $81849E[$81:849E] A:0000 X:3300 Y:0100 P:envMxdiZC $99/C8C1 7B TDC A:0001 X:3300 Y:3C00 P:envMxdizc $99/C8C2 69 00 ADC #$00 A:0000 X:3300 Y:3C00 P:envMxdiZc $99/C8C4 A6 E1 LDX $E1 [$00:00E1] A:0000 X:3300 Y:3C00 P:envMxdiZc $99/C8C6 9D C3 02 STA $02C3,x[$7E:35C3] A:0000 X:3300 Y:3C00 P:envMxdizc $99/C8C9 A5 B8 LDA $B8 [$00:00B8] A:0000 X:3300 Y:3C00 P:envMxdizc $99/C8CB 9D 0E 00 STA $000E,x[$7E:330E] A:0000 X:3300 Y:3C00 P:envMxdiZc $99/C8CE BD EC 02 LDA $02EC,x[$7E:35EC] A:0000 X:3300 Y:3C00 P:envMxdiZc $99/C8D1 D0 04 BNE $04 [$C8D7] A:0000 X:3300 Y:3C00 P:envMxdiZc $99/C8D3 22 E8 95 80 JSL $8095E8[$80:95E8] A:0000 X:3300 Y:3C00 P:envMxdiZc $99/C8D7 A9 01 LDA #$01 A:FF20 X:1758 Y:000A P:envMxdizC $99/C8D9 8D 49 12 STA $1249 [$7E:1249] A:FF01 X:1758 Y:000A P:envMxdizC $99/C8DC 60 RTS A:FF01 X:1758 Y:000A P:envMxdizC $99/C8DD 20 66 D1 JSR $D166 [$99:D166] A:0002 X:3300 Y:FFFE P:envMxdizC $99/C8E0 20 D8 CC JSR $CCD8 [$99:CCD8] A:0000 X:3300 Y:FFFE P:envMxdiZC $99/C8E3 20 E4 CC JSR $CCE4 [$99:CCE4] A:0000 X:3300 Y:3300 P:envMxdiZC $99/C8E6 20 21 C9 JSR $C921 [$99:C921] A:0000 X:3320 Y:0040 P:envMxdiZC $99/C8E9 20 60 CA JSR $CA60 [$99:CA60] A:0000 X:3305 Y:0040 P:envMxdiZC $99/C8EC 22 B6 9A 80 JSL $809AB6[$80:9AB6] A:0000 X:0040 Y:0040 P:envMxdiZC $99/C8F0 20 0B CE JSR $CE0B [$99:CE0B] A:0000 X:FFFF Y:0006 P:envMxdizC $99/C8F3 20 BE CB JSR $CBBE [$99:CBBE] A:0000 X:3300 Y:0006 P:eNvMxdizc $99/C8F6 20 DC F0 JSR $F0DC [$99:F0DC] A:0000 X:3314 Y:0028 P:envMxdiZC $99/C8F9 22 19 80 86 JSL $868019[$86:8019] A:0028 X:3328 Y:0028 P:envMxdiZC $99/C8FD 20 3C F7 JSR $F73C [$99:F73C] A:0001 X:0542 Y:0320 P:envMxdizC $99/C900 20 87 F9 JSR $F987 [$99:F987] A:0028 X:3328 Y:0320 P:envMxdiZC $99/C903 20 CD FB JSR $FBCD [$99:FBCD] A:0028 X:3328 Y:0320 P:envMxdiZC $99/C906 20 5F FC JSR $FC5F [$99:FC5F] A:0000 X:3300 Y:0320 P:envMxdiZC $99/C909 A6 E1 LDX $E1 [$00:00E1] A:0000 X:3300 Y:0320 P:envMxdiZC $99/C90B BD EC 02 LDA $02EC,x[$7E:35EC] A:0000 X:3300 Y:0320 P:envMxdizC $99/C90E D0 04 BNE $04 [$C914] A:0000 X:3300 Y:0320 P:envMxdiZC $99/C910 22 E8 95 80 JSL $8095E8[$80:95E8] A:0000 X:3300 Y:0320 P:envMxdiZC $99/C914 A9 01 LDA #$01 A:FF20 X:1758 Y:000A P:envMxdizC $99/C916 8D 49 12 STA $1249 [$7E:1249] A:FF01 X:1758 Y:000A P:envMxdizC $99/C919 20 47 D1 JSR $D147 [$99:D147] A:FF01 X:1758 Y:000A P:envMxdizC $99/C91C 60 RTS A:FF02 X:003C Y:0002 P:envMxdizC
$99/C921 ?
$99/C921 A6 E1 LDX $E1 [$00:00E1] A:0000 X:3320 Y:0040 P:envMxdiZC $99/C923 A9 05 LDA #$05 A:0000 X:3300 Y:0040 P:envMxdizC $99/C925 48 PHA A:0005 X:3300 Y:0040 P:envMxdizC $99/C926 7B TDC A:0005 X:3300 Y:0040 P:envMxdizC $99/C927 BD 55 00 LDA $0055,x[$7E:3355] A:0000 X:3300 Y:0040 P:envMxdiZC $99/C92A C9 FF CMP #$FF A:00FF X:3300 Y:0040 P:eNvMxdizC $99/C92C F0 4C BEQ $4C [$C97A] A:00FF X:3300 Y:0040 P:envMxdiZC
- code is missing here
$99/C97A E8 INX A:00FF X:3300 Y:0040 P:envMxdiZC $99/C97B 68 PLA A:00FF X:3301 Y:0040 P:envMxdizC $99/C97C 3A DEC A A:0005 X:3301 Y:0040 P:envMxdizC $99/C97D D0 A6 BNE $A6 [$C925] A:0004 X:3301 Y:0040 P:envMxdizC $99/C97F 60 RTS A:0000 X:3305 Y:0040 P:envMxdiZC
$99/CA60 ?
$99/CA60 A2 00 00 LDX #$0000 A:0000 X:3305 Y:0040 P:envMxdiZC $99/CA63 86 3B STX $3B [$00:003B] A:0000 X:0000 Y:0040 P:envMxdiZC $99/CA65 BD 03 06 LDA $0603,x[$7E:0603] A:0000 X:0000 Y:0040 P:envMxdiZC $99/CA68 C9 CB CMP #$CB A:0001 X:0000 Y:0040 P:envMxdizC $99/CA6A D0 05 BNE $05 [$CA71] A:0001 X:0000 Y:0040 P:envMxdizc
- code is missing here
$99/CA71 E8 INX A:0001 X:0000 Y:0040 P:envMxdizc $99/CA72 E8 INX A:0001 X:0001 Y:0040 P:envMxdizc $99/CA73 E0 40 00 CPX #$0040 A:0001 X:0002 Y:0040 P:envMxdizc $99/CA76 90 EB BCC $EB [$CA63] A:0001 X:0002 Y:0040 P:eNvMxdizc $99/CA78 60 RTS A:0000 X:0040 Y:0040 P:envMxdiZC
$99/CBBE ?
$99/CBBE A6 E1 LDX $E1 [$00:00E1] A:0000 X:FFFF Y:0006 P:envMxdizC $99/CBC0 A0 00 00 LDY #$0000 A:0000 X:3300 Y:0006 P:envMxdizC $99/CBC3 BD 9B 02 LDA $029B,x[$7E:35A1] A:0000 X:3306 Y:000C P:eNvMxdizc $99/CBC6 D0 03 BNE $03 [$CBCB] A:0000 X:3306 Y:000C P:envMxdiZc $99/CBC8 4C 51 CC JMP $CC51 [$99:CC51] A:0000 X:3306 Y:000C P:envMxdiZc
$99/CC51 ?
Might be part of CBBE
$99/CC51 E8 INX A:0000 X:3305 Y:000A P:envMxdiZc $99/CC52 C8 INY A:0000 X:3306 Y:000A P:envMxdizc $99/CC53 C8 INY A:0000 X:3306 Y:000B P:envMxdizc $99/CC54 C0 28 00 CPY #$0028 A:0000 X:3306 Y:000C P:envMxdizc $99/CC57 B0 03 BCS $03 ; [$CC5C] Exit if Compare value was surpassed $99/CC59 4C C3 CB JMP $CBC3 ; Else, Loop $99/CC5C 60 RTS
$99/CCD8 ?
$99/CCD8 A4 E1 LDY $E1 [$00:00E1] A:0000 X:3300 Y:0002 P:envMxdiZc $99/CCDA B9 EB 02 LDA $02EB,y[$7E:35EB] A:0000 X:3300 Y:3300 P:envMxdizc $99/CCDD F0 04 BEQ $04 [$CCE3] A:0000 X:3300 Y:3300 P:envMxdiZc
- code is missing here
$99/CCE3 60 RTS A:0000 X:3300 Y:3300 P:envMxdiZc
$99/CCE4 ?
$99/CCE4 A4 E1 LDY $E1 [$00:00E1] A:0000 X:3300 Y:3300 P:envMxdiZc $99/CCE6 7B TDC A:0000 X:3300 Y:3300 P:envMxdizc $99/CCE7 B9 21 00 LDA $0021,y[$7E:3321] A:0000 X:3300 Y:3300 P:envMxdiZc $99/CCEA F0 05 BEQ $05 [$CCF1] A:0000 X:3300 Y:3300 P:envMxdiZc $99/CCEC 0A ASL A A:0001 X:3300 Y:3300 P:envMxdizc $99/CCED AA TAX A:0002 X:3300 Y:3300 P:envMxdizc $99/CCEE FC 19 CD JSR ($CD19,x)[$99:CD2B] A:0002 X:0002 Y:3300 P:envMxdizc $99/CCF1 C2 21 REP #$21 A:0000 X:3300 Y:3300 P:envMxdiZc $99/CCF3 A5 E1 LDA $E1 [$00:00E1] A:0000 X:3300 Y:3300 P:envmxdiZc $99/CCF5 69 1A 00 ADC #$001A A:3300 X:3300 Y:3300 P:envmxdizc $99/CCF8 A8 TAY A:331A X:3300 Y:3300 P:envmxdizc $99/CCF9 E2 20 SEP #$20 A:331A X:3300 Y:331A P:envmxdizc $99/CCFB 7B TDC A:331A X:3300 Y:331A P:envMxdizc $99/CCFC B9 21 00 LDA $0021,y[$7E:333B] A:0000 X:3300 Y:331A P:envMxdiZc $99/CCFF F0 10 BEQ $10 [$CD11] A:0000 X:3300 Y:331A P:envMxdiZc $99/CD01 0A ASL A A:0001 X:3300 Y:331A P:envMxdizc $99/CD02 AA TAX A:0002 X:3300 Y:331A P:envMxdizc $99/CD03 AD 87 05 LDA $0587 [$7E:0587] A:0002 X:0002 Y:331A P:envMxdizc $99/CD06 29 7F AND #$7F A:000F X:0002 Y:331A P:envMxdizc $99/CD08 8D 87 05 STA $0587 [$7E:0587] A:000F X:0002 Y:331A P:envMxdizc $99/CD0B 8D 6A 05 STA $056A [$7E:056A] A:000F X:0002 Y:331A P:envMxdizc $99/CD0E FC 19 CD JSR ($CD19,x)[$99:CD2B] A:000F X:0002 Y:331A P:envMxdizc $99/CD11 22 B2 B9 80 JSL $80B9B2[$80:B9B2] A:0000 X:3300 Y:331A P:envMxdiZc $99/CD15 20 EF CD JSR $CDEF [$99:CDEF] A:0000 X:0040 Y:0000 P:envMxdizC $99/CD18 60 RTS A:0000 X:3320 Y:0040 P:envMxdiZC
$99/CD19 00 00 --- Entry #$00 - $0000 $99/CD1B 2B CD --- Entry #$01 - $CD2B $99/CD1D 1E D2 --- Entry #$02 - $D21E $99/CD1F 69 CD --- Entry #$03 - $CD69 $99/CD21 DF D1 --- Entry #$04 - $D1DF $99/CD23 BB CD --- Entry #$05 - $CDBB $99/CD25 4A CD --- Entry #$06 - $CD4A $99/CD27 00 00 --- Entry #$07 - $0000 $99/CD29 87 CD --- Entry #$08 - $CD87
$99/CD2B ?
$99/CD2B BB TYX A:0002 X:0002 Y:3300 P:envMxdizc $99/CD2C E4 E1 CPX $E1 [$00:00E1] A:0002 X:3300 Y:3300 P:envMxdizc $99/CD2E D0 09 BNE $09 [$CD39] A:0002 X:3300 Y:3300 P:envMxdiZC $99/CD30 BD 3B 00 LDA $003B,x[$7E:333B] A:0002 X:3300 Y:3300 P:envMxdiZC $99/CD33 C9 03 CMP #$03 A:0000 X:3300 Y:3300 P:envMxdiZC $99/CD35 F0 0F BEQ $0F [$CD46] A:0000 X:3300 Y:3300 P:eNvMxdizc $99/CD37 64 9E STZ $9E [$00:009E] A:0000 X:3300 Y:3300 P:eNvMxdizc $99/CD39 DA PHX A:0000 X:3300 Y:3300 P:eNvMxdizc $99/CD3A A6 E1 LDX $E1 [$00:00E1] A:0000 X:3300 Y:3300 P:eNvMxdizc $99/CD3C BD 21 00 LDA $0021,x[$7E:3321] A:0000 X:3300 Y:3300 P:envMxdizc $99/CD3F C9 03 CMP #$03 A:0001 X:3300 Y:3300 P:envMxdizc $99/CD41 F0 02 BEQ $02 [$CD45] A:0001 X:3300 Y:3300 P:eNvMxdizc $99/CD43 64 9E STZ $9E [$00:009E] A:0001 X:3300 Y:3300 P:eNvMxdizc $99/CD45 FA PLX A:0001 X:3300 Y:3300 P:eNvMxdizc $99/CD46 20 7A D2 JSR $D27A [$99:D27A] A:0001 X:3300 Y:3300 P:envMxdizc $99/CD49 60 RTS A:0080 X:3300 Y:0004 P:envMxdizc
$99/CD69 ?
$99/CD69 BB TYX A:0006 X:0006 Y:3300 P:envMxdizc $99/CD6A BC 23 00 LDY $0023,x[$7E:3323] A:0006 X:3300 Y:3300 P:envMxdizc $99/CD6D B9 03 06 LDA $0603,y[$7E:0607] A:0006 X:3300 Y:0004 P:envMxdizc $99/CD70 F0 11 BEQ $11 [$CD83] A:0001 X:3300 Y:0004 P:envMxdizc $99/CD72 B9 C3 08 LDA $08C3,y[$7E:08C7] A:0001 X:3300 Y:0004 P:envMxdizc $99/CD75 D0 0F BNE $0F ; [$CD86] Exit if not equal $99/CD77 B9 43 08 LDA $0843,y[$7E:0847] A:0000 X:3300 Y:0004 P:envMxdiZc $99/CD7A D0 0A BNE $0A ; [$CD86] Exit if not equal $99/CD7C B9 04 07 LDA $0704,y[$7E:0708] A:0000 X:3300 Y:0004 P:envMxdiZc $99/CD7F 89 01 BIT #$01 A:0001 X:3300 Y:0004 P:envMxdizc $99/CD81 D0 03 BNE $03 ; [$CD86] Exit if not equal $99/CD83 9E 21 00 STZ $0021,x[$7E:3321] A:0000 X:3300 Y:0004 P:envMxdiZc $99/CD86 60 RTS
$99/CDEF ?
$99/CDEF A9 20 LDA #$20 A:0000 X:0040 Y:0000 P:envMxdizC $99/CDF1 85 00 STA $00 [$00:0000] A:0020 X:0040 Y:0000 P:envMxdizC $99/CDF3 A6 E1 LDX $E1 [$00:00E1] A:0020 X:0040 Y:0000 P:envMxdizC $99/CDF5 A0 00 00 LDY #$0000 A:0020 X:3300 Y:0000 P:envMxdizC $99/CDF8 BD C7 02 LDA $02C7,x[$7E:35C7] A:0020 X:3300 Y:0000 P:envMxdiZC $99/CDFB F0 06 BEQ $06 [$CE03] A:0000 X:3300 Y:0000 P:envMxdiZC $99/CDFD 99 43 08 STA $0843,y[$7E:0845] A:0001 X:3301 Y:0002 P:envMxdizC $99/CE00 9E C7 02 STZ $02C7,x[$7E:35C8] A:0001 X:3301 Y:0002 P:envMxdizC $99/CE03 E8 INX A:0000 X:3300 Y:0000 P:envMxdiZC $99/CE04 C8 INY A:0000 X:3301 Y:0000 P:envMxdizC $99/CE05 C8 INY A:0000 X:3301 Y:0001 P:envMxdizC $99/CE06 C6 00 DEC $00 [$00:0000] A:0000 X:3301 Y:0002 P:envMxdizC $99/CE08 D0 EE BNE $EE [$CDF8] A:0000 X:3301 Y:0002 P:envMxdizC $99/CE0A 60 RTS A:0000 X:3320 Y:0040 P:envMxdiZC
$99/CE0B ?
$99/CE0B A6 E1 LDX $E1 [$00:00E1] A:0000 X:FFFF Y:0006 P:envMxdizC $99/CE0D BD 11 00 LDA $0011,x[$7E:3311] A:0000 X:3300 Y:0006 P:envMxdizC $99/CE10 3A DEC A A:0000 X:3300 Y:0006 P:envMxdiZC $99/CE11 F0 0C BEQ $0C [$CE1F] A:00FF X:3300 Y:0006 P:eNvMxdizC $99/CE13 3A DEC A A:00FF X:3300 Y:0006 P:eNvMxdizC $99/CE14 F0 27 BEQ $27 [$CE3D] A:00FE X:3300 Y:0006 P:eNvMxdizC $99/CE16 3A DEC A A:00FE X:3300 Y:0006 P:eNvMxdizC $99/CE17 3A DEC A A:00FD X:3300 Y:0006 P:eNvMxdizC $99/CE18 F0 24 BEQ $24 [$CE3E] A:00FC X:3300 Y:0006 P:eNvMxdizC $99/CE1A 3A DEC A A:00FC X:3300 Y:0006 P:eNvMxdizC $99/CE1B F0 29 BEQ $29 [$CE46] A:00FB X:3300 Y:0006 P:eNvMxdizC $99/CE1D 80 2F BRA $2F [$CE4E] A:00FB X:3300 Y:0006 P:eNvMxdizC
- code is missing here
$99/CE4E A6 E1 LDX $E1 [$00:00E1] A:00FB X:3300 Y:0006 P:eNvMxdizC $99/CE50 BD 1A 00 LDA $001A,x[$7E:331A] A:00FB X:3300 Y:0006 P:envMxdizC $99/CE53 C9 01 CMP #$01 A:0000 X:3300 Y:0006 P:envMxdiZC $99/CE55 F0 05 BEQ $05 [$CE5C] A:0000 X:3300 Y:0006 P:eNvMxdizc $99/CE57 C9 02 CMP #$02 A:0000 X:3300 Y:0006 P:eNvMxdizc $99/CE59 F0 09 BEQ $09 [$CE64] A:0000 X:3300 Y:0006 P:eNvMxdizc $99/CE5B 60 RTS A:0000 X:3300 Y:0006 P:eNvMxdizc
- code is missing here
$99/D056 ?
$99/D056 C2 21 REP #$21 ; 16-bit A, Clear Carry $99/D058 A6 E1 LDX $E1 [$00:00E1] A:0B00 X:3300 Y:0014 P:envmxdiZc $99/D05A AD 91 05 LDA $0591 ; Load $210D Buffer $99/D05D 69 00 10 ADC #$1000 A:00E6 X:3300 Y:0014 P:envmxdizc $99/D060 85 0A STA $0A [$00:000A] A:10E6 X:3300 Y:0014 P:envmxdizc $99/D062 BD 12 00 LDA $0012,x[$7E:3312] A:10E6 X:3300 Y:0014 P:envmxdizc $99/D065 18 CLC A:00B0 X:3300 Y:0014 P:envmxdizc $99/D066 69 00 10 ADC #$1000 A:00B0 X:3300 Y:0014 P:envmxdizc $99/D069 85 0C STA $0C [$00:000C] A:10B0 X:3300 Y:0014 P:envmxdizc $99/D06B BD 16 00 LDA $0016,x[$7E:3316] A:10B0 X:3300 Y:0014 P:envmxdizc $99/D06E 85 08 STA $08 [$00:0008] A:006D X:3300 Y:0014 P:envmxdizc $99/D070 A5 0A LDA $0A [$00:000A] A:006D X:3300 Y:0014 P:envmxdizc $99/D072 38 SEC A:10E6 X:3300 Y:0014 P:envmxdizc $99/D073 E5 0C SBC $0C [$00:000C] A:10E6 X:3300 Y:0014 P:envmxdizC $99/D075 10 04 BPL $04 [$D07B] A:0036 X:3300 Y:0014 P:envmxdizC
- Code is missing here
$99/D07B 64 02 STZ $02 [$00:0002] A:0036 X:3300 Y:0014 P:envmxdizC $99/D07D 64 00 STZ $00 [$00:0000] A:0036 X:3300 Y:0014 P:envmxdizC $99/D07F 85 01 STA $01 [$00:0001] A:0036 X:3300 Y:0014 P:envmxdizC $99/D081 22 06 A6 80 JSL $80A606[$80:A606] A:0036 X:3300 Y:0014 P:envmxdizC $99/D085 A5 0A LDA $0A [$00:000A] A:005A X:3300 Y:0014 P:envmxdizC $99/D087 C5 0C CMP $0C [$00:000C] A:10E6 X:3300 Y:0014 P:envmxdizC $99/D089 90 1C BCC $1C [$D0A7] A:10E6 X:3300 Y:0014 P:envmxdizC $99/D08B E2 21 SEP #$21 A:10E6 X:3300 Y:0014 P:envmxdizC $99/D08D BD 18 00 LDA $0018,x[$7E:3318] A:10E6 X:3300 Y:0014 P:envMxdizC $99/D090 E5 04 SBC $04 [$00:0004] A:10CE X:3300 Y:0014 P:eNvMxdizC $99/D092 9D 18 00 STA $0018,x[$7E:3318] A:1050 X:3300 Y:0014 P:enVMxdizC $99/D095 AD 91 05 LDA $0591 [$7E:0591] A:1050 X:3300 Y:0014 P:enVMxdizC $99/D098 E5 05 SBC $05 [$00:0005] A:10E6 X:3300 Y:0014 P:eNVMxdizC $99/D09A 8D 91 05 STA $0591 [$7E:0591] A:10E6 X:3300 Y:0014 P:eNvMxdizC $99/D09D AD 92 05 LDA $0592 [$7E:0592] A:10E6 X:3300 Y:0014 P:eNvMxdizC $99/D0A0 E9 00 SBC #$00 A:1000 X:3300 Y:0014 P:envMxdiZC $99/D0A2 8D 92 05 STA $0592 [$7E:0592] A:1000 X:3300 Y:0014 P:envMxdiZC $99/D0A5 80 1A BRA $1A [$D0C1] A:1000 X:3300 Y:0014 P:envMxdiZC
- Code is missing here
$99/D0C1 C2 21 REP #$21 A:1000 X:3300 Y:0014 P:envMxdiZC $99/D0C3 A6 E1 LDX $E1 [$00:00E1] A:1000 X:3300 Y:0014 P:envmxdiZc $99/D0C5 AD 93 05 LDA $0593 [$7E:0593] A:1000 X:3300 Y:0014 P:envmxdizc $99/D0C8 69 00 10 ADC #$1000 A:0060 X:3300 Y:0014 P:envmxdizc $99/D0CB 85 0A STA $0A [$00:000A] A:1060 X:3300 Y:0014 P:envmxdizc $99/D0CD BD 14 00 LDA $0014,x[$7E:3314] A:1060 X:3300 Y:0014 P:envmxdizc $99/D0D0 18 CLC A:0060 X:3300 Y:0014 P:envmxdizc $99/D0D1 69 00 10 ADC #$1000 A:0060 X:3300 Y:0014 P:envmxdizc $99/D0D4 85 0C STA $0C [$00:000C] A:1060 X:3300 Y:0014 P:envmxdizc $99/D0D6 BD 16 00 LDA $0016,x[$7E:3316] A:1060 X:3300 Y:0014 P:envmxdizc $99/D0D9 85 08 STA $08 [$00:0008] A:006D X:3300 Y:0014 P:envmxdizc $99/D0DB A5 0A LDA $0A [$00:000A] A:006D X:3300 Y:0014 P:envmxdizc $99/D0DD 38 SEC A:1060 X:3300 Y:0014 P:envmxdizc $99/D0DE E5 0C SBC $0C [$00:000C] A:1060 X:3300 Y:0014 P:envmxdizC $99/D0E0 10 04 BPL $04 [$D0E6] A:0000 X:3300 Y:0014 P:envmxdiZC
- Code is missing here
$99/D0E6 64 02 STZ $02 [$00:0002] A:0000 X:3300 Y:0014 P:envmxdiZC $99/D0E8 64 00 STZ $00 [$00:0000] A:0000 X:3300 Y:0014 P:envmxdiZC $99/D0EA 85 01 STA $01 [$00:0001] A:0000 X:3300 Y:0014 P:envmxdiZC $99/D0EC 22 06 A6 80 JSL $80A606[$80:A606] A:0000 X:3300 Y:0014 P:envmxdiZC $99/D0F0 A5 0A LDA $0A [$00:000A] A:0000 X:3300 Y:0014 P:envmxdizC $99/D0F2 C5 0C CMP $0C [$00:000C] A:1060 X:3300 Y:0014 P:envmxdizC $99/D0F4 90 1C BCC $1C [$D112] A:1060 X:3300 Y:0014 P:envmxdiZC $99/D0F6 E2 21 SEP #$21 A:1060 X:3300 Y:0014 P:envmxdiZC $99/D0F8 BD 19 00 LDA $0019,x[$7E:3319] A:1060 X:3300 Y:0014 P:envMxdiZC $99/D0FB E5 04 SBC $04 [$00:0004] A:1024 X:3300 Y:0014 P:envMxdizC $99/D0FD 9D 19 00 STA $0019,x[$7E:3319] A:1024 X:3300 Y:0014 P:envMxdizC $99/D100 AD 93 05 LDA $0593 [$7E:0593] A:1024 X:3300 Y:0014 P:envMxdizC $99/D103 E5 05 SBC $05 [$00:0005] A:1060 X:3300 Y:0014 P:envMxdizC $99/D105 8D 93 05 STA $0593 [$7E:0593] A:1060 X:3300 Y:0014 P:envMxdizC $99/D108 AD 94 05 LDA $0594 [$7E:0594] A:1060 X:3300 Y:0014 P:envMxdizC $99/D10B E9 00 SBC #$00 ; Subtract the Carry (if it was set by the low byte subtraction) $99/D10D 8D 94 05 STA $0594 [$7E:0594] A:1000 X:3300 Y:0014 P:envMxdiZC $99/D110 80 1A BRA $1A [$D12C] A:1000 X:3300 Y:0014 P:envMxdiZC
- Code is missing here
$99/D12C C2 20 REP #$20 A:1000 X:3300 Y:0014 P:envMxdiZC $99/D12E DE 16 00 DEC $0016,x[$7E:3316] A:1000 X:3300 Y:0014 P:envmxdiZC $99/D131 D0 11 BNE $11 [$D144] A:1000 X:3300 Y:0014 P:envmxdizC $99/D133 BD 12 00 LDA $0012,x[$7E:3312] A:1000 X:3300 Y:0010 P:envmxdiZC $99/D136 8D 91 05 STA $0591 [$7E:0591] A:00B0 X:3300 Y:0010 P:envmxdizC $99/D139 BD 14 00 LDA $0014,x[$7E:3314] A:00B0 X:3300 Y:0010 P:envmxdizC $99/D13C 8D 93 05 STA $0593 [$7E:0593] A:0060 X:3300 Y:0010 P:envmxdizC $99/D13F E2 20 SEP #$20 A:0060 X:3300 Y:0010 P:envmxdizC $99/D141 9E 11 00 STZ $0011,x[$7E:3311] A:0060 X:3300 Y:0010 P:envMxdizC $99/D144 E2 20 SEP #$20 $99/D146 60 RTS $99/D147 A6 E1 LDX $E1 [$00:00E1] A:FF01 X:1744 Y:000A P:envMxdizC $99/D149 BD 11 00 LDA $0011,x[$7E:3311] A:FF01 X:3300 Y:000A P:envMxdizC $99/D14C C9 02 CMP #$02 A:FF04 X:3300 Y:000A P:envMxdizC $99/D14E F0 15 BEQ $15 [$D165] A:FF04 X:3300 Y:000A P:envMxdizC $99/D150 C9 04 CMP #$04 A:FF04 X:3300 Y:000A P:envMxdizC $99/D152 F0 11 BEQ $11 [$D165] A:FF04 X:3300 Y:000A P:envMxdiZC $99/D154 C9 05 CMP #$05 A:FF00 X:3300 Y:000A P:eNvMxdizc $99/D156 F0 0D BEQ $0D [$D165] A:FF00 X:3300 Y:000A P:eNvMxdizc $99/D158 22 AA 89 80 JSL $8089AA ; Long Jump to Check if the Cursor is in Screen Center $99/D15C C9 00 CMP #$00 ; Is the Cursor in Center? $99/D15E D0 05 BNE $05 ; [$D165] Exit if not
- Code is missing here
$99/D165 60 RTS A:FF04 X:3300 Y:000A P:envMxdiZC $99/D166 A6 E1 LDX $E1 [$00:00E1] A:0002 X:3300 Y:FFFE P:envMxdizC $99/D168 BD 1D 00 LDA $001D,x[$7E:331D] A:0002 X:3300 Y:FFFE P:envMxdizC $99/D16B F0 5C BEQ $5C [$D1C9] A:0000 X:3300 Y:FFFE P:envMxdiZC
- code is missing here
$99/D1C9 60 RTS A:0000 X:3300 Y:FFFE P:envMxdiZC
$99/D27A ?
$99/D27A DA PHX A:0001 X:3300 Y:3300 P:envMxdizc $99/D27B C2 21 REP #$21 A:0001 X:3300 Y:3300 P:envMxdizc $99/D27D A5 E1 LDA $E1 [$00:00E1] A:0001 X:3300 Y:3300 P:envmxdizc $99/D27F 69 9B 00 ADC #$009B A:3300 X:3300 Y:3300 P:envmxdizc $99/D282 85 20 STA $20 [$00:0020] A:339B X:3300 Y:3300 P:envmxdizc $99/D284 BD 26 00 LDA $0026,x[$7E:3326] A:339B X:3300 Y:3300 P:envmxdizc $99/D287 AA TAX A:3773 X:3300 Y:3300 P:envmxdizc $99/D288 E2 20 SEP #$20 A:3773 X:3773 Y:3300 P:envmxdizc $99/D28A A9 7E LDA #$7E A:3773 X:3773 Y:3300 P:envMxdizc $99/D28C 85 22 STA $22 [$00:0022] A:377E X:3773 Y:3300 P:envMxdizc $99/D28E 64 01 STZ $01 [$00:0001] A:377E X:3773 Y:3300 P:envMxdizc $99/D290 64 00 STZ $00 [$00:0000] A:377E X:3773 Y:3300 P:envMxdizc $99/D292 A0 00 00 LDY #$0000 A:377E X:3773 Y:3300 P:envMxdizc $99/D295 BD 00 00 LDA $0000,x[$7E:3773] A:377E X:3773 Y:0000 P:envMxdiZc $99/D298 C9 3A CMP #$3A A:3754 X:3773 Y:0000 P:envMxdizc $99/D29A F0 0D BEQ $0D [$D2A9] A:3754 X:3773 Y:0000 P:envMxdizC $99/D29C C9 E9 CMP #$E9 A:3754 X:3773 Y:0000 P:envMxdizC $99/D29E D0 20 BNE $20 [$D2C0] A:3754 X:3773 Y:0000 P:envMxdizc
- code is missing here
$99/D2C0 FA PLX A:3754 X:3773 Y:0000 P:envMxdizc $99/D2C1 DA PHX A:3754 X:3300 Y:0000 P:envMxdizc $99/D2C2 BD 23 00 LDA $0023,x[$7E:3323] A:3754 X:3300 Y:0000 P:envMxdizc $99/D2C5 91 20 STA ($20),y[$7E:339B] A:370A X:3300 Y:0000 P:envMxdizc $99/D2C7 C8 INY A:370A X:3300 Y:0000 P:envMxdizc $99/D2C8 BD 24 00 LDA $0024,x[$7E:3324] A:370A X:3300 Y:0001 P:envMxdizc $99/D2CB 91 20 STA ($20),y[$7E:339C] A:3707 X:3300 Y:0001 P:envMxdizc $99/D2CD 7B TDC A:3707 X:3300 Y:0001 P:envMxdizc $99/D2CE BD 25 00 LDA $0025,x[$7E:3325] A:0000 X:3300 Y:0001 P:envMxdiZc $99/D2D1 A8 TAY A:0002 X:3300 Y:0001 P:envMxdizc $99/D2D2 7B TDC A:0002 X:3300 Y:0002 P:envMxdizc $99/D2D3 BD 22 00 LDA $0022,x[$7E:3322] A:0000 X:3300 Y:0002 P:envMxdiZc $99/D2D6 0A ASL A A:0002 X:3300 Y:0002 P:envMxdizc $99/D2D7 AA TAX A:0004 X:3300 Y:0002 P:envMxdizc $99/D2D8 A5 01 LDA $01 [$00:0001] A:0004 X:0004 Y:0002 P:envMxdizc $99/D2DA 22 29 9B 86 JSL $869B29[$86:9B29] A:0000 X:0004 Y:0002 P:envMxdiZc $99/D2DE A9 01 LDA #$01 A:FF00 X:0004 Y:0002 P:envMxdizc $99/D2E0 04 95 TSB $95 [$00:0095] A:FF01 X:0004 Y:0002 P:envMxdizc $99/D2E2 A6 E1 LDX $E1 [$00:00E1] A:FF01 X:0004 Y:0002 P:envMxdizc $99/D2E4 9E 0E 00 STZ $000E,x[$7E:330E] A:FF01 X:3300 Y:0002 P:envMxdizc $99/D2E7 AC EC 16 LDY $16EC [$7E:16EC] A:FF01 X:3300 Y:0002 P:envMxdizc $99/D2EA D0 0A BNE $0A [$D2F6] A:FF01 X:3300 Y:0002 P:envMxdizc
- code is missing here
$99/D2F6 FA PLX A:FF01 X:3300 Y:0002 P:envMxdizc $99/D2F7 A9 03 LDA #$03 A:FF01 X:3300 Y:0002 P:envMxdizc $99/D2F9 9D 21 00 STA $0021,x[$7E:3321] A:FF03 X:3300 Y:0002 P:envMxdizc $99/D2FC C2 20 REP #$20 A:FF03 X:3300 Y:0002 P:envMxdizc $99/D2FE BD 22 00 LDA $0022,x[$7E:3322] A:FF03 X:3300 Y:0002 P:envmxdizc $99/D301 29 FF 00 AND #$00FF A:0A02 X:3300 Y:0002 P:envmxdizc $99/D304 0A ASL A A:0002 X:3300 Y:0002 P:envmxdizc $99/D305 A8 TAY A:0004 X:3300 Y:0002 P:envmxdizc $99/D306 B9 3E 1E LDA $1E3E,y[$7E:1E42] A:0004 X:3300 Y:0004 P:envmxdizc $99/D309 9D 23 00 STA $0023,x[$7E:3323] A:0004 X:3300 Y:0004 P:envmxdizc $99/D30C AD 3B 00 LDA $003B [$7E:003B] A:0004 X:3300 Y:0004 P:envmxdizc $99/D30F 9D 25 00 STA $0025,x[$7E:3325] A:0006 X:3300 Y:0004 P:envmxdizc $99/D312 E2 20 SEP #$20 A:0006 X:3300 Y:0004 P:envmxdizc $99/D314 B9 DF 19 LDA $19DF,y[$7E:19E3] A:0006 X:3300 Y:0004 P:envMxdizc $99/D317 29 FC AND #$FC A:0040 X:3300 Y:0004 P:envMxdizc $99/D319 99 DF 19 STA $19DF,y[$7E:19E3] A:0040 X:3300 Y:0004 P:envMxdizc $99/D31C B9 DE 19 LDA $19DE,y[$7E:19E2] A:0040 X:3300 Y:0004 P:envMxdizc $99/D31F 29 FC AND #$FC A:0000 X:3300 Y:0004 P:envMxdiZc $99/D321 99 DE 19 STA $19DE,y[$7E:19E2] A:0000 X:3300 Y:0004 P:envMxdiZc $99/D324 22 8A A1 80 JSL $80A18A ; Wait for NMI $99/D328 60 RTS
$99/D39B ?
$99/D39B FA PLX A:0200 X:0100 Y:0004 P:envMxdizC $99/D39C DA PHX A:0200 X:331A Y:0004 P:envMxdizC $99/D39D 7B TDC A:0200 X:331A Y:0004 P:envMxdizC $99/D39E BD 25 00 LDA $0025,x[$7E:333F] A:0000 X:331A Y:0004 P:envMxdiZC $99/D3A1 A8 TAY A:0002 X:331A Y:0004 P:envMxdizC $99/D3A2 7B TDC A:0002 X:331A Y:0002 P:envMxdizC $99/D3A3 BD 22 00 LDA $0022,x[$7E:333C] A:0000 X:331A Y:0002 P:envMxdiZC $99/D3A6 0A ASL A A:0006 X:331A Y:0002 P:envMxdizC $99/D3A7 AA TAX A:000C X:331A Y:0002 P:envMxdizc $99/D3A8 22 FC 9B 86 JSL $869BFC[$86:9BFC] A:000C X:000C Y:0002 P:envMxdizc $99/D3AC A9 01 LDA #$01 A:FF03 X:000C Y:0001 P:envMxdizC $99/D3AE 04 95 TSB $95 [$00:0095] A:FF01 X:000C Y:0001 P:envMxdizC $99/D3B0 FA PLX A:FF01 X:000C Y:0001 P:envMxdizC $99/D3B1 A9 03 LDA #$03 A:FF01 X:331A Y:0001 P:envMxdizC $99/D3B3 9D 21 00 STA $0021,x[$7E:333B] A:FF03 X:331A Y:0001 P:envMxdizC $99/D3B6 C2 20 REP #$20 A:FF03 X:331A Y:0001 P:envMxdizC $99/D3B8 BD 22 00 LDA $0022,x[$7E:333C] A:FF03 X:331A Y:0001 P:envmxdizC $99/D3BB 29 FF 00 AND #$00FF A:0506 X:331A Y:0001 P:envmxdizC $99/D3BE 0A ASL A A:0006 X:331A Y:0001 P:envmxdizC $99/D3BF A8 TAY A:000C X:331A Y:0001 P:envmxdizc $99/D3C0 B9 3E 1E LDA $1E3E,y[$7E:1E4A] A:000C X:331A Y:000C P:envmxdizc $99/D3C3 9D 23 00 STA $0023,x[$7E:333D] A:000C X:331A Y:000C P:envmxdizc $99/D3C6 AD 3B 00 LDA $003B [$7E:003B] A:000C X:331A Y:000C P:envmxdizc $99/D3C9 9D 25 00 STA $0025,x[$7E:333F] A:0012 X:331A Y:000C P:envmxdizc $99/D3CC E2 20 SEP #$20 A:0012 X:331A Y:000C P:envmxdizc $99/D3CE B9 DF 19 LDA $19DF,y[$7E:19EB] A:0012 X:331A Y:000C P:envMxdizc $99/D3D1 29 FC AND #$FC A:0040 X:331A Y:000C P:envMxdizc $99/D3D3 99 DF 19 STA $19DF,y[$7E:19EB] A:0040 X:331A Y:000C P:envMxdizc $99/D3D6 B9 DE 19 LDA $19DE,y[$7E:19EA] A:0040 X:331A Y:000C P:envMxdizc $99/D3D9 29 FC AND #$FC A:0000 X:331A Y:000C P:envMxdiZc $99/D3DB 99 DE 19 STA $19DE,y[$7E:19EA] A:0000 X:331A Y:000C P:envMxdiZc $99/D3DE 22 8A A1 80 JSL $80A18A ; Wait for NMI $99/D3E2 60 RTS
$99/D3E3 ?
$99/D3E3 D4 00 PEI ($00) ; Buffer $00-03 on Stack $99/D3E5 D4 02 PEI ($02) $99/D3E7 A5 01 LDA $01 [$00:0001] A:0001 X:331A Y:000C P:envMxdizc $99/D3E9 85 00 STA $00 [$00:0000] A:0001 X:331A Y:000C P:envMxdizc $99/D3EB A2 00 00 LDX #$0000 A:0001 X:331A Y:000C P:envMxdizc $99/D3EE A0 00 00 LDY #$0000 A:0001 X:0000 Y:000C P:envMxdiZc $99/D3F1 80 17 BRA $17 [$D40A] A:0001 X:0000 Y:0000 P:envMxdiZc $99/D3F3 7B TDC A:0007 X:0000 Y:0000 P:envMxdizC $99/D3F4 A5 03 LDA $03 [$00:0003] A:0000 X:0000 Y:0000 P:envMxdiZC $99/D3F6 C2 20 REP #$20 A:0002 X:0000 Y:0000 P:envMxdizC $99/D3F8 EB XBA A:0002 X:0000 Y:0000 P:envmxdizC $99/D3F9 4A LSR A A:0200 X:0000 Y:0000 P:envmxdiZC $99/D3FA 4A LSR A A:0100 X:0000 Y:0000 P:envmxdizc $99/D3FB 4A LSR A A:0080 X:0000 Y:0000 P:envmxdizc $99/D3FC E2 20 SEP #$20 A:0040 X:0000 Y:0000 P:envmxdizc $99/D3FE 05 02 ORA $02 [$00:0002] A:0040 X:0000 Y:0000 P:envMxdizc $99/D400 C2 20 REP #$20 A:0043 X:0000 Y:0000 P:envMxdizc $99/D402 0A ASL A A:0043 X:0000 Y:0000 P:envmxdizc $99/D403 9D E0 E3 STA $E3E0,x[$7E:E3E0] A:0086 X:0000 Y:0000 P:envmxdizc $99/D406 E2 20 SEP #$20 A:0086 X:0000 Y:0000 P:envmxdizc $99/D408 E8 INX A:0086 X:0000 Y:0000 P:envMxdizc $99/D409 E8 INX A:0086 X:0001 Y:0000 P:envMxdizc $99/D40A B1 20 LDA ($20),y[$7E:339B] A:0001 X:0000 Y:0000 P:envMxdiZc $99/D40C 38 SEC A:0003 X:0000 Y:0000 P:envMxdizc $99/D40D E5 02 SBC $02 [$00:0002] A:0003 X:0000 Y:0000 P:envMxdizC $99/D40F F0 0A BEQ $0A [$D41B] A:0000 X:0000 Y:0000 P:envMxdiZC $99/D411 30 04 BMI $04 [$D417] A:0202 X:000E Y:0002 P:envMxdizC $99/D413 E6 02 INC $02 [$00:0002] A:0202 X:000E Y:0002 P:envMxdizC $99/D415 80 DC BRA $DC [$D3F3] A:0202 X:000E Y:0002 P:envMxdizC
- code is missing here
$99/D41B C8 INY A:0000 X:0000 Y:0000 P:envMxdiZC $99/D41C B1 20 LDA ($20),y[$7E:339C] A:0000 X:0000 Y:0001 P:envMxdizC $99/D41E 88 DEY A:0008 X:0000 Y:0001 P:envMxdizC $99/D41F 38 SEC A:0008 X:0000 Y:0000 P:envMxdiZC $99/D420 E5 03 SBC $03 [$00:0003] A:0008 X:0000 Y:0000 P:envMxdiZC $99/D422 F0 0A BEQ $0A [$D42E] A:0007 X:0000 Y:0000 P:envMxdizC $99/D424 30 04 BMI $04 [$D42A] A:0007 X:0000 Y:0000 P:envMxdizC $99/D426 E6 03 INC $03 [$00:0003] A:0007 X:0000 Y:0000 P:envMxdizC $99/D428 80 C9 BRA $C9 [$D3F3] A:0007 X:0000 Y:0000 P:envMxdizC $99/D42E C8 INY A:0200 X:000E Y:0000 P:envMxdiZC $99/D42F C8 INY A:0200 X:000E Y:0001 P:envMxdizC $99/D430 A5 00 LDA $00 [$00:0000] A:0200 X:000E Y:0002 P:envMxdizC $99/D432 F0 04 BEQ $04 [$D438] A:0201 X:000E Y:0002 P:envMxdizC $99/D434 C6 00 DEC $00 [$00:0000] A:0201 X:000E Y:0002 P:envMxdizC $99/D436 80 D2 BRA $D2 [$D40A] A:0201 X:000E Y:0002 P:envMxdiZC $99/D438 8E EC 16 STX $16EC [$7E:16EC] A:0200 X:0012 Y:0004 P:envMxdiZC $99/D43B FA PLX ; Restore $03-$00 from Stack $99/D43C 86 02 STX $02 $99/D43E FA PLX $99/D43F 86 00 STX $00 $99/D441 60 RTS
$99/D456 ?
$99/D456 7B TDC ; Clear 16-bit A $99/D457 B7 E3 LDA [$E3],y[$7E:3768] A:0000 X:00E4 Y:0000 P:envMxdiZc $99/D459 22 31 93 9A JSL $9A9331[$9A:9331] A:0035 X:00E4 Y:0000 P:envMxdizc $99/D45D 08 PHP ; Buffer Status Register on Stack $99/D45E 8A TXA A:0035 X:0002 Y:0000 P:envMxdiZc $99/D45F 4A LSR A A:0002 X:0002 Y:0000 P:envMxdizc $99/D460 97 E3 STA [$E3],y[$7E:3768] A:0001 X:0002 Y:0000 P:envMxdizc $99/D462 28 PLP ; Restore Status Register from Stack $99/D463 60 RTS
$99/D481 ?
$99/D481 E2 20 SEP #$20 A:0134 X:018C Y:3762 P:envmxdizc $99/D483 A6 E1 LDX $E1 [$00:00E1] A:0134 X:018C Y:3762 P:envMxdizc $99/D485 7B TDC A:0134 X:3300 Y:3762 P:envMxdizc $99/D486 BD C5 02 LDA $02C5,x[$7E:35C5] A:0000 X:3300 Y:3762 P:envMxdiZc $99/D489 0A ASL A A:0000 X:3300 Y:3762 P:envMxdiZc $99/D48A AA TAX A:0000 X:3300 Y:3762 P:envMxdiZc $99/D48B C2 20 REP #$20 A:0000 X:0000 Y:3762 P:envMxdiZc $99/D48D BF 92 D4 99 LDA $99D492,x[$99:D492] A:0000 X:0000 Y:3762 P:envmxdiZc $99/D491 60 RTS A:086F X:0000 Y:3762 P:envmxdizc
$99/D492 6F 08 --- Entry #$00 - #$086F $99/D494 E4 09 --- Entry #$01 - #$09E4 $99/D496 E4 09 --- Entry #$02 - #$09E4 $99/D498 A1 0C --- Entry #$03 - #$0CA1 $99/D49A A1 0C --- Entry #$04 - #$0CA1 $99/D49C A1 0C --- Entry #$05 - #$0CA1 $99/D49E 6C 10 --- Entry #$06 - #$106C $99/D4A0 6C 10 --- Entry #$07 - #$106C $99/D4A2 F2 14 --- Entry #$08 - #$14F2 $99/D4A4 8A 07 --- Entry #$09 - #$078A
$99/D4A6 ?
$99/D4A6 D4 E3 PEI ($E3) [$3775] A:0032 X:3300 Y:3775 P:envmxdizc $99/D4A8 E2 20 SEP #$20 A:0032 X:3300 Y:3775 P:envmxdizc $99/D4AA A5 E5 LDA $E5 [$00:00E5] A:0032 X:3300 Y:3775 P:envMxdizc $99/D4AC 48 PHA A:007E X:3300 Y:3775 P:envMxdizc $99/D4AD 64 04 STZ $04 [$00:0004] A:007E X:3300 Y:3775 P:envMxdizc $99/D4AF 64 05 STZ $05 [$00:0005] A:007E X:3300 Y:3775 P:envMxdizc $99/D4B1 80 0D BRA $0D [$D4C0] A:007E X:3300 Y:3775 P:envMxdizc
- code is missing here
$99/D4C0 BD 0A 00 LDA $000A,x[$7E:330A] A:007E X:3300 Y:3775 P:envMxdizc $99/D4C3 F0 0C BEQ $0C [$D4D1] A:0000 X:3300 Y:3775 P:envMxdiZc
- code is missing here
$99/D4D1 C2 20 REP #$20 A:0000 X:3300 Y:3775 P:envMxdiZc $99/D4D3 A5 E3 LDA $E3 [$00:00E3] A:0000 X:3300 Y:3775 P:envmxdiZc $99/D4D5 38 SEC A:3775 X:3300 Y:3775 P:envmxdizc $99/D4D6 FD 03 00 SBC $0003,x[$7E:3303] A:3775 X:3300 Y:3775 P:envmxdizC $99/D4D9 85 E3 STA $E3 [$00:00E3] A:001B X:3300 Y:3775 P:envmxdizC $99/D4DB A5 00 LDA $00 [$00:0000] A:001B X:3300 Y:3775 P:envmxdizC $99/D4DD C9 FF FF CMP #$FFFF A:0032 X:3300 Y:3775 P:envmxdizC $99/D4E0 F0 23 BEQ $23 [$D505] A:0032 X:3300 Y:3775 P:envmxdizc $99/D4E2 AA TAX A:0032 X:3300 Y:3775 P:envmxdizc $99/D4E3 E2 20 SEP #$20 A:0032 X:0032 Y:3775 P:envmxdizc $99/D4E5 20 59 D7 JSR $D759 [$99:D759] A:0032 X:0032 Y:3775 P:envMxdizc $99/D4E8 A6 5C LDX $5C [$00:005C] A:0100 X:D805 Y:01DC P:envMxdizC $99/D4EA C2 21 REP #$21 A:0100 X:45D9 Y:01DC P:envMxdizC $99/D4EC A5 5C LDA $5C [$00:005C] A:0100 X:45D9 Y:01DC P:envmxdizc $99/D4EE 65 0E ADC $0E [$00:000E] A:45D9 X:45D9 Y:01DC P:envmxdizc $99/D4F0 85 5C STA $5C [$00:005C] A:47B5 X:45D9 Y:01DC P:envmxdizc $99/D4F2 E2 20 SEP #$20 A:47B5 X:45D9 Y:01DC P:envmxdizc $99/D4F4 20 1E D7 JSR $D71E [$99:D71E] A:47B5 X:45D9 Y:01DC P:envMxdizc $99/D4F7 20 30 D7 JSR $D730 [$99:D730] A:45E2 X:45E2 Y:01DC P:envMxdizc $99/D4FA E8 INX A:45FF X:45FC Y:0008 P:envMxdizC $99/D4FB E8 INX A:45FF X:45FD Y:0008 P:envMxdizC $99/D4FC C2 21 REP #$21 A:45FF X:45FE Y:0008 P:envMxdizC $99/D4FE 8A TXA A:45FF X:45FE Y:0008 P:envmxdizc $99/D4FF 65 E3 ADC $E3 [$00:00E3] A:45FE X:45FE Y:0008 P:envmxdizc $99/D501 85 E3 STA $E3 [$00:00E3] A:4619 X:45FE Y:0008 P:envmxdizc $99/D503 80 35 BRA $35 [$D53A] A:4619 X:45FE Y:0008 P:envmxdizc
- code is missing here
$99/D53A E2 20 SEP #$20 A:4619 X:45FE Y:0008 P:envmxdizc $99/D53C 7B TDC A:4619 X:45FE Y:0008 P:envMxdizc $99/D53D A7 E3 LDA [$E3] [$7E:4619] A:0000 X:45FE Y:0008 P:envMxdiZc $99/D53F C9 30 CMP #$30 A:00C8 X:45FE Y:0008 P:eNvMxdizc $99/D541 90 1D BCC $1D [$D560] A:00C8 X:45FE Y:0008 P:eNvMxdizC $99/D543 C9 B0 CMP #$B0 A:00C8 X:45FE Y:0008 P:eNvMxdizC $99/D545 B0 03 BCS $03 [$D54A] A:00C8 X:45FE Y:0008 P:envMxdizC $99/D547 4C 06 D6 JMP $D606 [$99:D606] A:0046 X:0011 Y:0006 P:eNvMxdizc $99/D54A C9 CC CMP #$CC A:00C8 X:45FE Y:0008 P:envMxdizC $99/D54C 90 03 BCC $03 [$D551] A:00C8 X:45FE Y:0008 P:eNvMxdizc
- code is missing here
$99/D551 38 SEC A:00C8 X:45FE Y:0008 P:eNvMxdizc $99/D552 E9 B0 SBC #$B0 A:00C8 X:45FE Y:0008 P:eNvMxdizC $99/D554 0A ASL A A:0018 X:45FE Y:0008 P:envMxdizC $99/D555 AA TAX A:0030 X:45FE Y:0008 P:envMxdizc $99/D556 7B TDC A:0030 X:0030 Y:0008 P:envMxdizc $99/D557 87 E3 STA [$E3] [$7E:4619] A:0000 X:0030 Y:0008 P:envMxdiZc $99/D559 C2 20 REP #$20 A:0000 X:0030 Y:0008 P:envMxdiZc $99/D55B E6 E3 INC $E3 [$00:00E3] A:0000 X:0030 Y:0008 P:envmxdiZc $99/D55D 7C CE D5 JMP ($D5CE,x)[$99:D672] A:0000 X:0030 Y:0008 P:envmxdizc $99/D560 0A ASL A A:0011 X:0046 Y:0006 P:eNvMxdizc $99/D561 AA TAX A:0022 X:0046 Y:0006 P:envMxdizc $99/D562 7B TDC A:0022 X:0022 Y:0006 P:envMxdizc $99/D563 87 E3 STA [$E3] [$7E:461D] A:0000 X:0022 Y:0006 P:envMxdiZc $99/D565 C2 20 REP #$20 A:0000 X:0022 Y:0006 P:envMxdiZc $99/D567 E6 E3 INC $E3 [$00:00E3] A:0000 X:0022 Y:0006 P:envmxdiZc $99/D569 7C 6C D5 JMP ($D56C,x)[$99:D71B] A:0000 X:0022 Y:0006 P:envmxdizc
$99/D56C 20 D6 $99/D56E 34 D6 $99/D570 40 D6 $99/D572 40 D6 $99/D574 3E D6 $99/D576 40 D6 $99/D578 40 D6 $99/D57A 4E D6 $99/D57C 3A D5 $99/D57E 3A D5 $99/D580 3A D5 $99/D582 3A D5 $99/D584 3A D5 $99/D586 3A D5 $99/D588 CC D5 $99/D58A 3A D5 $99/D58C 1B D7 $99/D58E 1B D7 $99/D590 CC D5 $99/D592 53 D6 $99/D594 96 D6 $99/D596 CC D5 $99/D598 05 D7 $99/D59A 10 D7 $99/D59C 4C D6 $99/D59E 4C D6 $99/D5A0 9D D6 $99/D5A2 FE D6 $99/D5A4 3A D5 $99/D5A6 4E D6 $99/D5A8 4E D6 $99/D5AA CC D5 $99/D5AC 06 D6 $99/D5AE 72 D6 $99/D5B0 8F D6 $99/D5B2 06 D6 $99/D5B4 53 D6 $99/D5B6 96 D6 $99/D5B8 53 D6 $99/D5BA 96 D6 $99/D5BC BA D6 $99/D5BE BE D6 $99/D5C0 BA D6 $99/D5C2 BE D6 $99/D5C4 BA D6 $99/D5C6 BE D6 $99/D5C8 72 D6 $99/D5CA 8F D6
- code is msising here, it is 80 FE, which is is a BRA branch command
$99/D5CE DC D6 $99/D5D0 E0 D6 $99/D5D2 DC D6 $99/D5D4 E0 D6 $99/D5D6 53 D6 $99/D5D8 96 D6 $99/D5DA 53 D6 $99/D5DC 96 D6 $99/D5DE 53 D6 $99/D5E0 96 D6 $99/D5E2 9D D6 $99/D5E4 FE D6 $99/D5E6 72 D6 $99/D5E8 8F D6 $99/D5EA 72 D6 $99/D5EC 8F D6 $99/D5EE DC D6 $99/D5F0 E0 D6 $99/D5F2 72 D6 $99/D5F4 8F D6 $99/D5F6 72 D6 $99/D5F8 8F D6 $99/D5FA DC D6 $99/D5FC E0 D6 $99/D5FE 72 D6 $99/D600 8F D6 $99/D602 72 D6 $99/D604 8F D6
$99/D606 ?
$99/D606 E2 20 SEP #$20 A:0046 X:0011 Y:0006 P:eNvMxdizc $99/D608 7B TDC A:0046 X:0011 Y:0006 P:eNvMxdizc $99/D609 A7 E3 LDA [$E3] [$7E:461C] A:0000 X:0011 Y:0006 P:envMxdiZc $99/D60B AA TAX A:0046 X:0011 Y:0006 P:envMxdizc $99/D60C 7B TDC A:0046 X:0046 Y:0006 P:envMxdizc $99/D60D 87 E3 STA [$E3] [$7E:461C] A:0000 X:0046 Y:0006 P:envMxdiZc $99/D60F C2 20 REP #$20 A:0000 X:0046 Y:0006 P:envMxdiZc $99/D611 BF 90 9A 9E LDA $9E9A90,x[$9E:9AD6] A:0000 X:0046 Y:0006 P:envmxdiZc $99/D615 38 SEC A:0000 X:0046 Y:0006 P:envmxdiZc $99/D616 29 FF 00 AND #$00FF A:0000 X:0046 Y:0006 P:envmxdiZC $99/D619 65 E3 ADC $E3 [$00:00E3] A:0000 X:0046 Y:0006 P:envmxdiZC $99/D61B 85 E3 STA $E3 [$00:00E3] A:461D X:0046 Y:0006 P:envmxdizc $99/D61D 4C 3A D5 JMP $D53A [$99:D53A] A:461D X:0046 Y:0006 P:envmxdizc
$99/D620 ?
$99/D620 E2 20 SEP #$20 A:0000 X:0022 Y:0006 P:envmxdizc $99/D622 68 PLA A:0000 X:0022 Y:0006 P:envMxdizc $99/D623 85 E5 STA $E5 [$00:00E5] A:007E X:0022 Y:0006 P:envMxdizc $99/D625 C2 20 REP #$20 A:007E X:0022 Y:0006 P:envMxdizc $99/D627 FA PLX A:007E X:0022 Y:0006 P:envmxdizc $99/D628 86 E3 STX $E3 [$00:00E3] A:007E X:3775 Y:0006 P:envmxdizc $99/D62A 60 RTS A:007E X:3775 Y:0006 P:envmxdizc
$99/D672 ?
$99/D672 A5 05 LDA $05 [$00:0005] A:0000 X:0030 Y:0008 P:envmxdizc $99/D674 4A LSR A A:0000 X:0030 Y:0008 P:envmxdiZc $99/D675 B0 14 BCS $14 [$D68B] A:0000 X:0030 Y:0008 P:envmxdiZc $99/D677 20 81 D4 JSR $D481 [$99:D481] A:0000 X:0030 Y:0008 P:envmxdiZc $99/D67A 18 CLC A:086F X:0000 Y:0008 P:envmxdizc $99/D67B 67 E3 ADC [$E3] [$7E:461A] A:086F X:0000 Y:0008 P:envmxdizc $99/D67D A8 TAY A:087B X:0000 Y:0008 P:envmxdizc $99/D67E E2 20 SEP #$20 A:087B X:0000 Y:087B P:envmxdizc $99/D680 22 B0 D4 81 JSL $81D4B0[$81:D4B0] A:087B X:0000 Y:087B P:envMxdizc $99/D684 8A TXA A:0008 X:0011 Y:0006 P:envMxdizc $99/D685 C5 04 CMP $04 [$00:0004] A:0011 X:0011 Y:0006 P:envMxdizc $99/D687 90 02 BCC $02 [$D68B] A:0011 X:0011 Y:0006 P:envMxdizC $99/D689 85 04 STA $04 [$00:0004] A:0011 X:0011 Y:0006 P:envMxdizC $99/D68B C2 20 REP #$20 A:0011 X:0011 Y:0006 P:envMxdizC $99/D68D 80 BD BRA $BD [$D64C] A:0011 X:0011 Y:0006 P:envmxdizC $99/D64C E6 E3 INC $E3 [$00:00E3] A:0011 X:0011 Y:0006 P:envmxdizC $99/D64E E6 E3 INC $E3 [$00:00E3] A:0011 X:0011 Y:0006 P:envmxdizC $99/D650 4C 3A D5 JMP $D53A [$99:D53A] A:0011 X:0011 Y:0006 P:envmxdizC
$99/D71B ?
$99/D71B 4C 20 D6 JMP $D620 [$99:D620] A:0000 X:0022 Y:0006 P:envmxdizc
$99/D71E ?
This subroutine loads a byte from a Data Load address ($0000,x is here $7E/2000 and seems to contain character start value information). It checks if the value is #$FF. If it is, it exits, if not, it adds #$08 to the Data Load Index in X.
$99/D71E BD 00 00 LDA $0000,x ; ??? Loads some Data Byte $99/D721 E8 INX ; Increment Data Load Index $99/D722 C9 FF CMP #$FF $99/D724 F0 09 BEQ $09 ; [$D72F] Exit if the Data Byte was $#FF $99/D726 C2 21 REP #$21 ; 16-bit A + Clear Carry $99/D728 8A TXA ; Add additional #$08 to Data Load Index $99/D729 69 08 00 ADC #$0008 $99/D72C AA TAX $99/D72D E2 20 SEP #$20 ; 8-bit A $99/D72F 60 RTS
$99/D730 ?
$99/D730 A0 08 00 LDY #$0008 A:45E2 X:45E2 Y:01DC P:envMxdizc $99/D733 84 00 STY $00 [$00:0000] A:45E2 X:45E2 Y:0008 P:envMxdizc $99/D735 BD 00 00 LDA $0000,x[$7E:45E2] A:45E2 X:45E2 Y:0008 P:envMxdizc $99/D738 C9 FF CMP #$FF A:4501 X:45E2 Y:0008 P:envMxdizc $99/D73A F0 1B BEQ $1B ; [$D757] INX and exit $99/D73C C9 01 CMP #$01 A:4501 X:45E2 Y:0008 P:envMxdizc $99/D73E F0 05 BEQ $05 [$D745] A:4501 X:45E2 Y:0008 P:envMxdiZC
- code is missing here
$99/D745 E8 INX A:4501 X:45E2 Y:0008 P:envMxdiZC $99/D746 BD 00 00 LDA $0000,x[$7E:45E3] A:4501 X:45E3 Y:0008 P:envMxdizC $99/D749 C9 FF CMP #$FF A:4532 X:45E3 Y:0008 P:envMxdizC $99/D74B F0 0A BEQ $0A ; [$D757] INX and exit $99/D74D C2 21 REP #$21 A:4532 X:45E3 Y:0008 P:envMxdizc $99/D74F 8A TXA A:4532 X:45E3 Y:0008 P:envmxdizc $99/D750 65 00 ADC $00 [$00:0000] A:45E3 X:45E3 Y:0008 P:envmxdizc $99/D752 AA TAX A:45EB X:45E3 Y:0008 P:envmxdizc $99/D753 E2 20 SEP #$20 A:45EB X:45EB Y:0008 P:envmxdizc $99/D755 80 EF BRA $EF [$D746] A:45EB X:45EB Y:0008 P:envMxdizc $99/D757 E8 INX A:45FF X:45FB Y:0008 P:envMxdiZC $99/D758 60 RTS A:45FF X:45FC Y:0008 P:envMxdizC
$99/D759 ?
$99/D759 C2 20 REP #$20 A:0032 X:0032 Y:3775 P:envMxdizc $99/D75B 8A TXA A:0032 X:0032 Y:3775 P:envmxdizc $99/D75C 48 PHA A:0032 X:0032 Y:3775 P:envmxdizc $99/D75D 0A ASL A A:0032 X:0032 Y:3775 P:envmxdizc $99/D75E 63 01 ADC $01,s [$00:1FCC] A:0064 X:0032 Y:3775 P:envmxdizc $99/D760 83 01 STA $01,s [$00:1FCC] A:0096 X:0032 Y:3775 P:envmxdizc $99/D762 A6 5C LDX $5C [$00:005C] A:0096 X:0032 Y:3775 P:envmxdizc $99/D764 86 20 STX $20 [$00:0020] A:0096 X:45D9 Y:3775 P:envmxdizc $99/D766 A2 7D CC LDX #$CC7D A:0096 X:45D9 Y:3775 P:envmxdizc $99/D769 86 23 STX $23 [$00:0023] A:0096 X:CC7D Y:3775 P:eNvmxdizc $99/D76B FA PLX A:0096 X:CC7D Y:3775 P:eNvmxdizc $99/D76C BF 80 CD C1 LDA $C1CD80,x[$C1:CE16] A:0096 X:0096 Y:3775 P:envmxdizc $99/D770 A8 TAY A:D67E X:0096 Y:3775 P:eNvmxdizc $99/D771 E2 20 SEP #$20 A:D67E X:0096 Y:D67E P:eNvmxdizc $99/D773 A9 7E LDA #$7E A:D67E X:0096 Y:D67E P:eNvMxdizc $99/D775 85 22 STA $22 [$00:0022] A:D67E X:0096 Y:D67E P:envMxdizc $99/D777 A9 BE LDA #$BE A:D67E X:0096 Y:D67E P:envMxdizc $99/D779 85 25 STA $25 [$00:0025] A:D6BE X:0096 Y:D67E P:eNvMxdizc $99/D77B BF 82 CD C1 LDA $C1CD82,x[$C1:CE18] A:D6BE X:0096 Y:D67E P:eNvMxdizc $99/D77F BB TYX A:D6CA X:0096 Y:D67E P:eNvMxdizc $99/D780 22 CC F7 81 JSL $81F7CC[$81:F7CC] A:D6CA X:D67E Y:D67E P:eNvMxdizc $99/D784 60 RTS A:0100 X:D805 Y:01DC P:envMxdizC
$99/D7E2 ?
$99/D7E2 8B PHB ; Buffer current Data Bank $99/D7E3 DA PHX ; Buffer X on Stack $99/D7E4 4B PHK ; Set Data Bank to $99 $99/D7E5 AB PLB $99/D7E6 22 B0 89 82 JSL $8289B0 ; Clear Map that shows which Figure Stands where $99/D7EA 22 DD 89 82 JSL $8289DD[$82:89DD] A:FFFF X:0200 Y:E000 P:eNvMxdizc $99/D7EE 22 C8 89 82 JSL $8289C8[$82:89C8] A:FFFF X:0039 Y:E000 P:eNvMxdizC $99/D7F2 22 4B 9F 9E JSL $9E9F4B[$9E:9F4B] A:FF7E X:FFFE Y:E000 P:eNvMxdizC $99/D7F6 A9 20 LDA #$20 ; Set Number of used sprites in $100 OAM Buffer to $20? $99/D7F8 8D 43 05 STA $0543 $99/D7FB A9 7E LDA #$7E ; Set Data Bank to $7E $99/D7FD 48 PHA $99/D7FE AB PLB $99/D7FF FA PLX ; Restore Original X $99/D800 20 59 D7 JSR $D759 [$99:D759] A:007E X:0000 Y:E000 P:envMxdiZC $99/D803 A6 5C LDX $5C ; Address of the buffered Data on Bank $7E $99/D805 20 1E D7 JSR $D71E [$99:D71E] A:030F X:2000 Y:030F P:envMxdizC $99/D808 7B TDC ; Clear 16-Bit A $99/D809 A8 TAY ; Clear Y $99/D80A BD 00 00 LDA $0000,x[$7E:2009] A:0000 X:2009 Y:0000 P:envMxdiZc $99/D80D C9 FF CMP #$FF A:0001 X:2009 Y:0000 P:envMxdizc $99/D80F D0 03 BNE $03 [$D814] A:0001 X:2009 Y:0000 P:envMxdizc
- Code is missing here
$99/D814 C9 01 CMP #$01 A:0001 X:2009 Y:0000 P:envMxdizc $99/D816 D0 03 BNE $03 [$D81B] A:0001 X:2009 Y:0000 P:envMxdiZC $99/D818 4C A9 D8 JMP $D8A9 ; Setup Character Data
- Code is missing here
$99/D8A9 Setup Character Data
This subroutine sets up the Character Data in the corresponding registers (i. e. the tables at $7E/1xxx). The data is structured this way in the Address where it is loaded (in this case, it was $7E/2000).
$0000, X - Character Sprite $0001, X - Position from where the possible Movement is calculated - NW-SE-Axis $0002, X - Position from where the possible Movement is calculated - NE-SW-Axis $0003, X - ??? --> $1DC6 $0004, X - Facing Direction? --> $1B6E $0005, X - ??? --> $1A56 $0006, X - ??? --> $1A2E $0007, X - Which Entry Number this one should get
$99/D8A9 E8 INX ; Increment Load Index $99/D8AA 7B TDC ; Clear 16-bit A $99/D8AB BD 07 00 LDA $0007,x ; Load which Entry Number in all the Value Tables this is going to have $99/D8AE A8 TAY ; Transfer in Y as Store Index $99/D8AF BD 00 00 LDA $0000,x ; Load first value (what kind of figure is this (What Sprite, Portrait n Stuff)?) $99/D8B2 C9 FF CMP #$FF ; If this is #$FF, exit this $99/D8B4 F0 65 BEQ $65 ; [$D91B] Exit $99/D8B6 99 AE 17 STA $17AE,y ; Store this value as figure graphic set number $99/D8B9 DA PHX ; Push Load Index on Stack $99/D8BA AA TAX A:0001 X:200A Y:0000 P:envMxdizc $99/D8BB 7B TDC A:0001 X:0001 Y:0000 P:envMxdizc $99/D8BC BF D2 AA 88 LDA $88AAD2,x[$88:AAD3] A:0000 X:0001 Y:0000 P:envMxdiZc $99/D8C0 C9 FF CMP #$FF A:0001 X:0001 Y:0000 P:envMxdizc $99/D8C2 D0 02 BNE $02 [$D8C6] A:0001 X:0001 Y:0000 P:envMxdizc $99/D8C6 99 AF 17 STA $17AF,y[$7E:17AF] A:0001 X:0001 Y:0000 P:envMxdizc $99/D8C9 AA TAX A:0001 X:0001 Y:0000 P:envMxdizc $99/D8CA BF 49 C8 88 LDA $88C849,x[$88:C84A] A:0001 X:0001 Y:0000 P:envMxdizc $99/D8CE 99 EE 1D STA $1DEE,y[$7E:1DEE] A:0005 X:0001 Y:0000 P:envMxdizc $99/D8D1 FA PLX ; Restore Load Index $99/D8D2 22 21 D9 99 JSL $99D921[$99:D921] A:0005 X:200A Y:0000 P:envMxdizc $99/D8D6 BD 01 00 LDA $0001,x ; Set Position from where the possible Movement is calculated - NW-SE-Axis $99/D8D9 99 D6 1C STA $1CD6,y $99/D8DC BD 02 00 LDA $0002,x ; Position from where the possible Movement is calculated - NE-SW-Axis $99/D8DF 99 D7 1C STA $1CD7,y $99/D8E2 BD 03 00 LDA $0003,x[$7E:200D] A:000C X:200A Y:0000 P:envMxdizc $99/D8E5 22 31 D9 99 JSL $99D931[$99:D931] A:00FF X:200A Y:0000 P:eNvMxdizc $99/D8E9 99 C6 1D STA $1DC6,y[$7E:1DC6] A:000B X:200A Y:0000 P:envMxdizc $99/D8EC BD 04 00 LDA $0004,x[$7E:200E] A:000B X:200A Y:0000 P:envMxdizc $99/D8EF 99 6E 1B STA $1B6E,y[$7E:1B6E] A:0001 X:200A Y:0000 P:envMxdizc $99/D8F2 BD 05 00 LDA $0005,x[$7E:200F] A:0001 X:200A Y:0000 P:envMxdizc $99/D8F5 99 56 1A STA $1A56,y[$7E:1A56] A:0003 X:200A Y:0000 P:envMxdizc $99/D8F8 BD 06 00 LDA $0006,x[$7E:2010] A:0003 X:200A Y:0000 P:envMxdizc $99/D8FB 99 2E 1A STA $1A2E,y[$7E:1A2E] A:0000 X:200A Y:0000 P:envMxdiZc $99/D8FE 89 02 BIT #$02 A:0000 X:200A Y:0000 P:envMxdiZc $99/D900 F0 05 BEQ $05 [$D907] A:0000 X:200A Y:0000 P:envMxdiZc
- Code is missing here
$99/D907 DA PHX A:0000 X:200A Y:0000 P:envMxdiZc $99/D908 BB TYX A:0000 X:200A Y:0000 P:envMxdiZc $99/D909 22 50 D9 99 JSL $99D950[$99:D950] A:0000 X:0000 Y:0000 P:envMxdiZc $99/D90D FA PLX A:0100 X:0000 Y:0000 P:envMxdiZC $99/D90E C2 21 REP #$21 A:0100 X:200A Y:0000 P:envMxdizC $99/D910 8A TXA A:0100 X:200A Y:0000 P:envmxdizc $99/D911 69 08 00 ADC #$0008 A:200A X:200A Y:0000 P:envmxdizc $99/D914 AA TAX A:2012 X:200A Y:0000 P:envmxdizc $99/D915 E2 20 SEP #$20 A:2012 X:2012 Y:0000 P:envmxdizc $99/D917 E6 8E INC $8E [$00:008E] A:2012 X:2012 Y:0000 P:envMxdizc $99/D919 80 8F BRA $8F [$D8AA] A:2012 X:2012 Y:0000 P:envMxdizc
$99/D921 ?
$99/D921 DA PHX ; Buffer X on Stack $99/D922 7B TDC ; Clear 16-bit A $99/D923 B9 AF 17 LDA $17AF,y[$7E:17B5] A:0000 X:003B Y:0006 P:envMxdiZc $99/D926 3A DEC A A:003B X:003B Y:0006 P:envMxdizc $99/D927 AA TAX A:003A X:003B Y:0006 P:envMxdizc $99/D928 BF 5B C7 88 LDA $88C75B,x[$88:C795] A:003A X:003A Y:0006 P:envMxdizc $99/D92C 99 C7 1D STA $1DC7,y[$7E:1DCD] A:0001 X:003A Y:0006 P:envMxdizc $99/D92F FA PLX ; Restore X from Stack $99/D930 6B RTL
$99/D931 ?
$99/D931 DA PHX ; Buffer X and Y on Stack $99/D932 5A PHY $99/D933 C9 FF CMP #$FF ; Exit if A isn't #$FF $99/D935 D0 16 BNE $16 ; [$D94D] $99/D937 B9 D7 1C LDA $1CD7,y[$7E:1CDD] A:00FF X:0006 Y:0006 P:envMxdiZC $99/D93A C2 20 REP #$20 A:0002 X:0006 Y:0006 P:envMxdizC $99/D93C EB XBA A:0002 X:0006 Y:0006 P:envmxdizC $99/D93D 4A LSR A A:0200 X:0006 Y:0006 P:envmxdiZC $99/D93E 4A LSR A A:0100 X:0006 Y:0006 P:envmxdizc $99/D93F 4A LSR A A:0080 X:0006 Y:0006 P:envmxdizc $99/D940 E2 20 SEP #$20 A:0040 X:0006 Y:0006 P:envmxdizc $99/D942 19 D6 1C ORA $1CD6,y[$7E:1CDC] A:0040 X:0006 Y:0006 P:envMxdizc $99/D945 AA TAX A:0044 X:0006 Y:0006 P:envMxdizc $99/D946 B9 C7 1D LDA $1DC7,y[$7E:1DCD] A:0044 X:0044 Y:0006 P:envMxdizc $99/D949 22 76 C2 80 JSL $80C276[$80:C276] A:0001 X:0044 Y:0006 P:envMxdizc $99/D94D 7A PLY ; Restore Y and X from Stack $99/D94E FA PLX $99/D94F 6B RTL
$99/F0DC ?
$99/F0DC C2 20 REP #$20 A:0000 X:3314 Y:0028 P:envMxdiZC $99/F0DE AD 75 05 LDA $0575 [$7E:0575] A:0000 X:3314 Y:0028 P:envmxdiZC $99/F0E1 38 SEC A:00F0 X:3314 Y:0028 P:envmxdizC $99/F0E2 ED 95 05 SBC $0595 [$7E:0595] A:00F0 X:3314 Y:0028 P:envmxdizC $99/F0E5 85 00 STA $00 [$00:0000] A:0000 X:3314 Y:0028 P:envmxdiZC $99/F0E7 AD 77 05 LDA $0577 [$7E:0577] A:0000 X:3314 Y:0028 P:envmxdiZC $99/F0EA 38 SEC A:0060 X:3314 Y:0028 P:envmxdizC $99/F0EB ED 97 05 SBC $0597 [$7E:0597] A:0060 X:3314 Y:0028 P:envmxdizC $99/F0EE 85 02 STA $02 [$00:0002] A:0000 X:3314 Y:0028 P:envmxdiZC $99/F0F0 E2 20 SEP #$20 A:0000 X:3314 Y:0028 P:envmxdiZC $99/F0F2 A6 E1 LDX $E1 [$00:00E1] A:0000 X:3314 Y:0028 P:envMxdiZC $99/F0F4 BD F2 02 LDA $02F2,x[$7E:35F2] A:0000 X:3300 Y:0028 P:envMxdizC $99/F0F7 F0 15 BEQ $15 [$F10E] A:0000 X:3300 Y:0028 P:envMxdiZC
- code is missing here
$99/F10E E8 INX A:0000 X:3300 Y:0028 P:envMxdiZC $99/F10F E8 INX A:0000 X:3301 Y:0028 P:envMxdizC $99/F110 C2 20 REP #$20 A:0000 X:3302 Y:0028 P:envMxdizC $99/F112 8A TXA A:0000 X:3302 Y:0028 P:envmxdizC $99/F113 38 SEC A:3302 X:3302 Y:0028 P:envmxdizC $99/F114 E5 E1 SBC $E1 [$00:00E1] A:3302 X:3302 Y:0028 P:envmxdizC $99/F116 C9 28 00 CMP #$0028 A:0002 X:3302 Y:0028 P:envmxdizC $99/F119 E2 20 SEP #$20 A:0002 X:3302 Y:0028 P:eNvmxdizc $99/F11B 90 D7 BCC $D7 [$F0F4] A:0002 X:3302 Y:0028 P:eNvMxdizc $99/F11D 60 RTS A:0028 X:3328 Y:0028 P:envMxdiZC
$99/F73C ?
$99/F73C A6 E1 LDX $E1 [$00:00E1] A:0001 X:0541 Y:0100 P:envMxdizC $99/F73E 7B TDC A:0001 X:3300 Y:0100 P:envMxdizC $99/F73F BD F2 02 LDA $02F2,x[$7E:35F2] A:0000 X:3300 Y:0100 P:envMxdiZC $99/F742 F0 03 BEQ $03 [$F747] A:0000 X:3300 Y:0100 P:envMxdiZC
- code is missing here
$99/F747 E8 INX A:0000 X:3300 Y:0100 P:envMxdiZC $99/F748 E8 INX A:0000 X:3301 Y:0100 P:envMxdizC $99/F749 C2 20 REP #$20 A:0000 X:3302 Y:0100 P:envMxdizC $99/F74B 8A TXA A:0000 X:3302 Y:0100 P:envmxdizC $99/F74C 38 SEC A:3302 X:3302 Y:0100 P:envmxdizC $99/F74D E5 E1 SBC $E1 [$00:00E1] A:3302 X:3302 Y:0100 P:envmxdizC $99/F74F C9 28 00 CMP #$0028 A:0002 X:3302 Y:0100 P:envmxdizC $99/F752 E2 20 SEP #$20 A:0002 X:3302 Y:0100 P:eNvmxdizc $99/F754 90 E8 BCC $E8 [$F73E] A:0002 X:3302 Y:0100 P:eNvMxdizc $99/F756 60 RTS A:0028 X:3328 Y:0100 P:envMxdiZC
$99/F987 ?
$99/F987 A6 E1 LDX $E1 [$00:00E1] A:0028 X:3328 Y:0100 P:envMxdiZC $99/F989 BD F2 02 LDA $02F2,x[$7E:35F2] A:0028 X:3300 Y:0100 P:envMxdizC $99/F98C F0 05 BEQ $05 [$F993] A:0000 X:3300 Y:0100 P:envMxdiZC
- code is missing here
$99/F993 E8 INX A:0000 X:3300 Y:0100 P:envMxdiZC $99/F994 E8 INX A:0000 X:3301 Y:0100 P:envMxdizC $99/F995 C2 20 REP #$20 A:0000 X:3302 Y:0100 P:envMxdizC $99/F997 8A TXA A:0000 X:3302 Y:0100 P:envmxdizC $99/F998 38 SEC A:3302 X:3302 Y:0100 P:envmxdizC $99/F999 E5 E1 SBC $E1 [$00:00E1] A:3302 X:3302 Y:0100 P:envmxdizC $99/F99B C9 28 00 CMP #$0028 A:0002 X:3302 Y:0100 P:envmxdizC $99/F99E E2 20 SEP #$20 A:0002 X:3302 Y:0100 P:eNvmxdizc $99/F9A0 90 E7 BCC $E7 [$F989] A:0002 X:3302 Y:0100 P:eNvMxdizc $99/F9A2 60 RTS A:0028 X:3328 Y:0100 P:envMxdiZC
$99/FBCD ?
$99/FBCD A6 E1 LDX $E1 [$00:00E1] A:0028 X:3328 Y:0100 P:envMxdiZC $99/FBCF BD F1 02 LDA $02F1,x[$7E:35F1] A:0028 X:3300 Y:0100 P:envMxdizC $99/FBD2 D0 01 BNE $01 [$FBD5] A:0000 X:3300 Y:0100 P:envMxdiZC $99/FBD4 60 RTS A:0000 X:3300 Y:0100 P:envMxdiZC
- code is missing here
$99/FC5F ?
$99/FC5F A6 E1 LDX $E1 [$00:00E1] A:0000 X:3300 Y:0100 P:envMxdiZC $99/FC61 BD F1 02 LDA $02F1,x[$7E:35F1] A:0000 X:3300 Y:0100 P:envMxdizC $99/FC64 D0 01 BNE $01 [$FC67] A:0000 X:3300 Y:0100 P:envMxdiZC $99/FC66 60 RTS A:0000 X:3300 Y:0100 P:envMxdiZC
- code is missing here
Bank $9A
$9A/8000 ?
This seems to be a main subroutine of some sorts
$9A/8000 A9 7E LDA #$7E A:0000 X:0000 Y:01A1 P:envMxdiZc $9A/8002 48 PHA A:007E X:0000 Y:01A1 P:envMxdizc $9A/8003 AB PLB A:007E X:0000 Y:01A1 P:envMxdizc $9A/8004 58 CLI A:007E X:0000 Y:01A1 P:envMxdizc $9A/8005 22 27 A1 80 JSL $80A127[$80:A127] A:007E X:0000 Y:01A1 P:envMxdizc $9A/8009 22 A4 A6 9B JSL $9BA6A4[$9B:A6A4] A:0081 X:0000 Y:01A1 P:envMxdizc $9A/800D 22 84 AD 9E JSL $9EAD84[$9E:AD84] A:007E X:0000 Y:01A1 P:envMxdizc $9A/8011 22 6B BE 9D JSL $9DBE6B[$9D:BE6B] A:FF00 X:000F Y:01A1 P:envMxdiZC $9A/8015 22 C4 F3 81 JSL $81F3C4[$81:F3C4] A:0000 X:0000 Y:01A1 P:envMxdiZC $9A/8019 22 59 A9 89 JSL $89A959[$89:A959] A:0080 X:0000 Y:01A1 P:eNvMxdizc $9A/801D 80 04 BRA $04 [$8023] A:0000 X:51D7 Y:2000 P:envMxdizc
- code is missing here
$9A/8023 A9 01 LDA #$01 A:0000 X:51D7 Y:2000 P:envMxdizc $9A/8025 8D 88 BD STA $BD88 [$7E:BD88] A:0001 X:51D7 Y:2000 P:envMxdizc $9A/8028 A9 01 LDA #$01 A:0001 X:51D7 Y:2000 P:envMxdizc $9A/802A 8D 87 BD STA $BD87 [$7E:BD87] A:0001 X:51D7 Y:2000 P:envMxdizc $9A/802D 9C 86 BD STZ $BD86 [$7E:BD86] A:0001 X:51D7 Y:2000 P:envMxdizc $9A/8030 9C BB 16 STZ $16BB [$7E:16BB] A:0001 X:51D7 Y:2000 P:envMxdizc $9A/8033 9C A3 00 STZ $00A3 [$7E:00A3] A:0001 X:51D7 Y:2000 P:envMxdizc $9A/8036 22 10 A9 9B JSL $9BA910[$9B:A910] A:0001 X:51D7 Y:2000 P:envMxdizc $9A/803A 22 98 A9 9D JSL $9DA998[$9D:A998] A:0000 X:0000 Y:2000 P:envMxdiZc $9A/803E 7B TDC A:0320 X:00FF Y:00FF P:envMxdizc $9A/803F A9 06 LDA #$06 A:0000 X:00FF Y:00FF P:envMxdiZc $9A/8041 22 92 87 99 JSL $998792[$99:8792] A:0006 X:00FF Y:00FF P:envMxdizc $9A/8045 22 8A A1 80 JSL $80A18A ; Wait for NMI $9A/8049 22 F5 87 99 JSL $9987F5[$99:87F5] A:E880 X:FFFE Y:0320 P:envMxdizc $9A/804D C9 FF CMP #$FF A:FF03 X:3300 Y:0002 P:envMxdizC $9A/804F D0 F4 BNE $F4 [$8045] A:FF03 X:3300 Y:0002 P:envMxdizc $9A/8051 A9 7E LDA #$7E A:00FF X:3300 Y:0200 P:envMxdiZC $9A/8053 48 PHA A:007E X:3300 Y:0200 P:envMxdizC $9A/8054 AB PLB A:007E X:3300 Y:0200 P:envMxdizC $9A/8055 22 17 88 99 JSL $998817[$99:8817] A:007E X:3300 Y:0200 P:envMxdizC $9A/8059 7B TDC A:0004 X:0000 Y:0000 P:envMxdizC $9A/805A 22 AA DA 9D JSL $9DDAAA[$9D:DAAA] A:0000 X:0000 Y:0000 P:envMxdiZC $9A/805E 22 14 AF 80 JSL $80AF14[$80:AF14] A:0000 X:0000 Y:0000 P:envMxdiZc $9A/8062 7B TDC A:00FF X:33CC Y:9E7A P:envMxdizc $9A/8063 A9 31 LDA #$31 A:0000 X:33CC Y:9E7A P:envMxdiZc $9A/8065 22 51 81 99 JSL $998151[$99:8151] A:0031 X:33CC Y:9E7A P:envMxdizc $9A/8069 7B TDC A:FF20 X:1744 Y:000A P:envMxdizC $9A/806A A9 31 LDA #$31 A:0000 X:1744 Y:000A P:envMxdiZC $9A/806C 22 92 87 99 JSL $998792[$99:8792] A:0031 X:1744 Y:000A P:envMxdizC $9A/8070 20 12 8F JSR $8F12 [$9A:8F12] A:000C X:FFFE Y:0100 P:envMxdizC $9A/8073 22 17 88 99 JSL $998817[$99:8817] A:FFFF X:3300 Y:0002 P:envMxdiZC $9A/8077 C2 20 REP #$20 A:0004 X:0000 Y:0000 P:envMxdizC $9A/8079 7B TDC A:0004 X:0000 Y:0000 P:envmxdizC $9A/807A 8F C0 16 00 STA $0016C0[$00:16C0] A:0000 X:0000 Y:0000 P:envmxdiZC $9A/807E 8F BE 16 00 STA $0016BE[$00:16BE] A:0000 X:0000 Y:0000 P:envmxdiZC $9A/8082 A9 19 00 LDA #$0019 A:0000 X:0000 Y:0000 P:envmxdiZC $9A/8085 8F BC 16 00 STA $0016BC[$00:16BC] A:0019 X:0000 Y:0000 P:envmxdizC $9A/8089 E2 20 SEP #$20 A:0019 X:0000 Y:0000 P:envmxdizC $9A/808B A2 3E 00 LDX #$003E A:0019 X:0000 Y:0000 P:envMxdizC $9A/808E 22 DF A6 9B JSL $9BA6DF[$9B:A6DF] A:0019 X:003E Y:0000 P:envMxdizC $9A/8092 22 52 EC 9B JSL $9BEC52[$9B:EC52] A:0040 X:003E Y:0000 P:envMxdizc $9A/8096 22 2B 81 9A JSL $9A812B[$9A:812B] A:0003 X:003E Y:0000 P:envMxdizC
- code is missing here
$9A/8D33 Transfer Data Loop
This is used at least during the new game creation process, this is executed when one of these artworks gets loaded
This subroutine moves data from one position to another via loop. As it is via loop, it makes more sense to use this method for smaller amounts of data. Should be noted that the transfer works with an 8-bit Accumulator, so it can transfer an odd number of bytes, too.
These registers have to contain the settings for this transfer:
A has to contain the bank where the data is (like, $7E or $7F)
X contains the address on that bank where the data is
Y contains the number of bytes to transfer
$20-$22 contains the 24-bit address where to store
$9A/8D33 8B PHB ; Preserve current Data Bank $9A/8D34 48 PHA ; Set the value in A as new Bank $9A/8D35 AB PLB $9A/8D36 5A PHY ; Put Y (number of Bytes to transfer) on stack $9A/8D37 A0 00 00 LDY #$0000 ; Set up write index $9A/8D3A BD 00 00 LDA $0000,x ; Load Byte $9A/8D3D 97 20 STA [$20],y ; Store Byte $9A/8D3F E8 INX ; Increment Read and Write Index $9A/8D40 C8 INY $9A/8D41 C2 20 REP #$20 ; This loads the number of bytes from stack, decrements it and stores it back $9A/8D43 A3 01 LDA $01,s $9A/8D45 3A DEC A $9A/8D46 83 01 STA $01,s $9A/8D48 E2 20 SEP #$20 $9A/8D4A D0 EE BNE $EE ; [$8D3A] Loop until all bytes are done $9A/8D4C 7A PLY $9A/8D4D AB PLB ; Restore Program Bank $9A/8D4E 6B RTL
$9A/9331 BATTLE: ? Some Character check
This subroutine is entered with a Character Sprite number (like the ones that are stored in $17AE) and checks them according to the table used in $88/A3D1 to be of a special kind, and if it is not, it checks all active Figures, if one of them is one of this special kind (whatever that is). If it is, the number of that figure gets transfered in X and the subroutine is exited this a cleared carry (i. e. a cleared Error flag).
$9A/9331 5A PHY ; Buffer Y and A on Stack $9A/9332 48 PHA $9A/9333 7B TDC ; Clear 16-bit A $9A/9334 A3 01 LDA $01,s ; Load Original A value (8-bit) back in A $9A/9336 22 D1 A3 88 JSL $88A3D1[$88:A3D1] A:0034 X:3300 Y:0009 P:envMxdizc $9A/933A C9 00 CMP #$00 A:0034 X:3300 Y:0009 P:envMxdizc $9A/933C F0 02 BEQ $02 [$9340] A:0034 X:3300 Y:0009 P:envMxdizC $9A/933E 83 01 STA $01,s ; Clear Second Compare Value $9A/9340 A0 00 00 LDY #$0000 ; Clear Load Index $9A/9343 7B TDC ; Clear 16-bit A $9A/9344 B9 AE 17 LDA $17AE,y ; Load Figure's Character Sprite number $9A/9347 22 D1 A3 88 JSL $88A3D1[$88:A3D1] A:0032 X:3300 Y:0000 P:envMxdizC $9A/934B C9 00 CMP #$00 ; Check if it is #$00 (First Compare Value) $9A/934D D0 03 BNE $03 [$9352] A:0032 X:3300 Y:0000 P:envMxdizC
- code is missing here
$9A/9352 C3 01 CMP $01,s ; Compare with Second Compare Value $9A/9354 F0 0E BEQ $0E ; [$9364] A:0032 X:3300 Y:0000 P:eNvMxdizc $9A/9356 C8 INY ; Increment Load Index for Figure Data twice $9A/9357 C8 INY $9A/9358 C0 28 00 CPY #$0028 ; Are all Figure's already done? $9A/935B 90 E7 BCC $E7 ; [$9344] Loop if not
- code is missing here
$9A/9364 BB TYX ; Transfer Figure number in X $9A/9365 68 PLA ; Restore A and Y from Stack $9A/9366 7A PLY $9A/9367 18 CLC ; Clear Carry as clear Error Flag $9A/9368 6B RTL
Bank $9B
$9B/80DE ?
This subroutines main part is about copying three palettes; I *think* this is for the small figure you can see in the Battle Stats menu; that figure is on a BG plain, while the very same graphic you see above is a sprite. So, I think this is for this.
$9B/80DE 8B PHB ; Buffer Program Bank on Stack $9B/80DF 4B PHK $9B/80E0 AB PLB ; Change Program Bank $9B/80E1 DA PHX ; Buffer X and Y $9B/80E2 5A PHY $9B/80E3 D4 00 PEI ($00) ; Buffer registers $00 to $0F and $20 to $2B $9B/80E5 D4 02 PEI ($02) $9B/80E7 D4 04 PEI ($04) $9B/80E9 D4 06 PEI ($06) $9B/80EB D4 08 PEI ($08) $9B/80ED D4 0A PEI ($0A) $9B/80EF D4 0C PEI ($0C) $9B/80F1 D4 0E PEI ($0E) $9B/80F3 D4 20 PEI ($20) $9B/80F5 D4 22 PEI ($22) $9B/80F7 D4 24 PEI ($24) $9B/80F9 D4 26 PEI ($26) $9B/80FB D4 28 PEI ($28) $9B/80FD D4 2A PEI ($2A) $9B/80FF A2 00 00 LDX #$0000 ; Set up counter $9B/8102 BD AE 17 LDA $17AE,x ; Load each figure's graphic number (i. e. "this figure is Denam, it has Denam graphics") $9B/8105 F0 3B BEQ $3B ; [$8142] Go to next figure if this is empty $9B/8107 BC 3E 1E LDY $1E3E,x ; ??? $9B/810A C9 F0 CMP #$F0 ; ??? (Note to self: It's CMP, not CPY!) $9B/810C F0 16 BEQ $16 ; [$8124] ??? $9B/810E BD DE 19 LDA $19DE,x ; ??? (Status effects?) $9B/8111 89 10 BIT #$10 ; ??? $9B/8113 F0 0F BEQ $0F ; [$8124] ??? $9B/8124 B9 03 07 LDA $0703,y ; ??? $9B/8127 89 06 BIT #$06 ; ??? $9B/8129 F0 17 BEQ $17 ; [$8142] ??? $9B/812B 89 08 BIT #$08 ; ??? $9B/812D F0 13 BEQ $13 ; [$8142] ???
Code is missing here
$9B/8142 E8 INX ; Increment Loop counter $9B/8143 E8 INX $9B/8144 E0 28 00 CPX #$0028 ; Loop until every figure is done $9B/8147 90 B9 BCC $B9 ; [$8102] $9B/8149 AD B9 05 LDA $05B9 ; ??? $9B/814C 29 18 AND #$18 ; ??? $9B/814E D0 1D BNE $1D ; [$816D] ??? $9B/8150 C2 20 REP #$20 A:FF00 X:0028 Y:000E P:envMxdiZC $9B/8152 A2 00 00 LDX #$0000 A:FF00 X:0028 Y:000E P:envmxdiZC $9B/8155 A0 0F 00 LDY #$000F A:FF00 X:0000 Y:000E P:envmxdiZC $9B/8158 BD B5 81 LDA $81B5,x ; [$9B:81B5] $9B/815B 9D ED 13 STA $13ED,x ; ??? This replaces the last three palettes with this one $9B/815E 9D 0D 14 STA $140D,x[$9B:140D] A:0C23 X:0000 Y:000F P:envmxdizC $9B/8161 9D 2D 14 STA $142D,x[$9B:142D] A:0C23 X:0000 Y:000F P:envmxdizC $9B/8164 E8 INX A:0C23 X:0000 Y:000F P:envmxdizC $9B/8165 E8 INX A:0C23 X:0001 Y:000F P:envmxdizC $9B/8166 88 DEY A:0C23 X:0002 Y:000F P:envmxdizC $9B/8167 D0 EF BNE $EF [$8158] A:0C23 X:0002 Y:000E P:envmxdizC $9B/8169 E2 20 SEP #$20 A:6176 X:001E Y:0000 P:envmxdiZC $9B/816B 80 15 BRA $15 [$8182] A:6176 X:001E Y:0000 P:envMxdiZC $9B/816D C2 20 REP #$20 ; This sets up and executes a loop that copies three palettes $9B/816F A2 20 01 LDX #$0120 $9B/8172 A0 30 00 LDY #$0030 $9B/8175 BD 4B 12 LDA $124B,x $9B/8178 9D CB 12 STA $12CB,x $9B/817B E8 INX $9B/817C E8 INX $9B/817D 88 DEY $9B/817E D0 F5 BNE $F5 ; [$8175] $9B/8180 E2 20 SEP #$20 $9B/8182 A9 01 LDA #$01 ; Set flag for CGRAM update $9B/8184 8D 49 12 STA $1249 $9B/8187 7A PLY ; Restore all the buffered registers $9B/8188 84 2A STY $2A $9B/818A 7A PLY $9B/818B 84 28 STY $28 $9B/818D 7A PLY $9B/818E 84 26 STY $26 $9B/8190 7A PLY $9B/8191 84 24 STY $24 $9B/8193 7A PLY $9B/8194 84 22 STY $22 $9B/8196 7A PLY $9B/8197 84 20 STY $20 $9B/8199 7A PLY $9B/819A 84 0E STY $0E $9B/819C 7A PLY $9B/819D 84 0C STY $0C $9B/819F 7A PLY $9B/81A0 84 0A STY $0A $9B/81A2 7A PLY $9B/81A3 84 08 STY $08 $9B/81A5 7A PLY $9B/81A6 84 06 STY $06 $9B/81A8 7A PLY $9B/81A9 84 04 STY $04 $9B/81AB 7A PLY $9B/81AC 84 02 STY $02 $9B/81AE 7A PLY $9B/81AF 84 00 STY $00 $9B/81B1 7A PLY ; Restore Y, X, Program Bank $9B/81B2 FA PLX $9B/81B3 AB PLB $9B/81B4 6B RTL
$9B/9BA5 (Decompress and) Transfer graphic data sets to VRAM
At $9B/9C17 ($000D:9C17) is an address table. When this subroutine gets called, A contains an entry number for this address table. The corresponding address is loaded. The data there is a chain of different "graphic sets" that are transfered here. The data's first value (16 bit) can be negative or positive:
If negative, this is a standard VRAM DMA.
The first two byte are the VRAM destination (MSB gets removed) the next three bytes are the 24 bit address of the graphic data in the ROM the last two byte are the 16 bit value of how many bytes are to be transfered
If the first value is positive, the data has to be decompressed before it gets transfered to VRAM by DMA.
(as before) The first two byte are the VRAM destination (as before) the next three bytes are the 24 bit address of the COMPRESSED graphic data in the ROM the last three bytes are the 24-bit-address where to temp store the decompressed data
If positive, it is not necessary to add the size of the data, because that is already part of the compressed data
This stuff gets executed when you start a new game, screwing this up removes the script from the text boxes, so I can imagine this is for the whole Kanji sets / Hiragana / Katakana.
$9B/9BA5 8B PHB ; Preserve Program Bank on stack $9B/9BA6 4B PHK ; Change Program Bank $9B/9BA7 AB PLB $9B/9BA8 C2 20 REP #$20 $9B/9BAA 29 FF 00 AND #$00FF ; The value that was in A at the start is an index for a Table $9B/9BAD 0A ASL A ; It gets multiplied by 2 and transfered in Y... $9B/9BAE A8 TAY $9B/9BAF B9 17 9C LDA $9C17,y ; ... and the table value gets loaded $9B/9BB2 A8 TAY ; The value itself is an address... $9B/9BB3 B9 00 00 LDA $0000,y ; ... from which we load data $9B/9BB6 30 33 BMI $33 ; [$9BEB] Branch if the loaded data is between #$8000-#$FFFF $9B/9BB8 5A PHY ; IF POSITIVE: Push the address that was loaded at the very beginning on stack $9B/9BB9 48 PHA ; Put the secondly loaded value on stack, too $9B/9BBA E2 20 SEP #$20 $9B/9BBC BE 05 00 LDX $0005,y ; Set up the temp store address of the decompressed data in $20-$22 $9B/9BBF B9 07 00 LDA $0007,y $9B/9BC2 86 20 STX $20 $9B/9BC4 85 22 STA $22 $9B/9BC6 C9 7E CMP #$7E ; Branch if the Temp Address isn't $7E/2000 $9B/9BC8 D0 0E BNE $0E ; [$9BD8] $9B/9BCA E0 00 20 CPX #$2000 $9B/9BCD D0 09 BNE $09 ; [$9BD8] $9B/9BCF AD 6A 05 LDA $056A ; $2100 Buffer (FBLANK / Screen Brightness) $9B/9BD2 30 04 BMI $04 ; [$9BD8] Branch if FBLANK is active
Code is missing here
$9B/9BD8 BE 02 00 LDX $0002,y ; Load the Address of the Compressed Data $9B/9BDB B9 04 00 LDA $0004,y ; Load the Bank of the Compressed Data $9B/9BDE 7A PLY ; Restore VRAM Address $9B/9BDF 22 7B 9E 80 JSL $809E7B ; Decompress Data and transfer it to VRAM $9B/9BE3 C2 21 REP #$21 ; A = 16 bit, clear carry $9B/9BE5 68 PLA ; Load the address from the address table $9B/9BE6 69 08 00 ADC #$0008 ; Add 8 (next entry) $9B/9BE9 80 C7 BRA $C7 ; [$9BB2] Loop, do the next entry in this list $9B/9BEB C9 FF FF CMP #$FFFF ; Is the loaded data #$FFFF? $9B/9BEE F0 23 BEQ $23 ; [$9C13] Exit if it is $9B/9BF0 5A PHY ; Push the address that was loaded at the very beginning on stack $9B/9BF1 29 FF 7F AND #$7FFF ; Remove the MSB from the secondly loaded data $9B/9BF4 48 PHA ; And throw it on stack $9B/9BF5 E2 20 SEP #$20 ; Now, a VRAM DMA is built $9B/9BF7 A9 80 LDA #$80 ; These are VRAM transfer settings (for $2115) $9B/9BF9 85 0E STA $0E $9B/9BFB BE 05 00 LDX $0005,y ; Loaded Data Address + 5 contains the number of bytes to be transfered (16 bit value) $9B/9BFE 86 0C STX $0C $9B/9C00 BE 02 00 LDX $0002,y ; Loaded Data Address + 2 contains the DMA Source Address (16 bit, of course) $9B/9C03 B9 04 00 LDA $0004,y ; Loaded Data Address + 4 contains the DMA Source Bank (8 bit) $9B/9C06 7A PLY ; The modified loaded data value is the VRAM destination address $9B/9C07 22 24 9F 80 JSL $809F24 ; VRAM DMA $9B/9C0B C2 21 REP #$21 ; A = 16 bit, clear carry $9B/9C0D 68 PLA ; Load the address from the address table $9B/9C0E 69 07 00 ADC #$0007 ; Add 7 (next entry) $9B/9C11 80 9F BRA $9F ; [$9BB2] Loop, do the next entry in this list $9B/9C13 E2 20 SEP #$20 ; Restore everything and exit $9B/9C15 AB PLB $9B/9C16 6B RTL
$9B/9C17 Address Table for $9B/9BA5
$9B/9C17 31 9C Entry $00: $9C31 $9B/9C19 58 9C Entry $01: $9C58 $9B/9C1B 62 9C Entry $02: $9C62 $9B/9C1D 6B 9C Entry $03: $9C6B $9B/9C1F 31 9C Entry $04-$0C: The same as Entry $00 $9B/9C21 31 9C $9B/9C23 31 9C $9B/9C25 31 9C $9B/9C27 31 9C $9B/9C29 31 9C $9B/9C2B 31 9C $9B/9C2D 31 9C $9B/9C2F 31 9C
$9B/9C31 Graphic Set $00 for $9B/9BA5
$9B/9C31 00 C0 00 80 B7 00 04 ; B78000 These are Debug(???) Numbers and Symbols that are never seen(?) $9B/9C38 00 28 00 80 BF 00 20 7E $9B/9C40 00 2A DB 80 DA 00 20 7E $9B/9C48 00 30 D0 81 DA 00 20 7E
After this, the stuff for the next Graphic Set gets executed, too. Graphic Set 1 is a part of Graphic Set 0
$9B/9C50 Graphic Set $01 for $9B/9BA5
$9B/9C50 00 65 65 88 DA 00 20 7E $9B/9C58 00 61 58 97 DA 00 20 7E $9B/9C60 FF FF
$9B/9C62 Graphic Set $01 for $9B/9BA5
$9B/9C62 00 C0 00 80 B7 00 04 $9B/9C69 FF FF
$9B/9C6B Graphic Set $03 for $9B/9BA5
$9B/9C6B 00 65 65 88 DA 00 20 7E $9B/9C73 00 61 58 97 DA 00 20 7E $9B/9C7B 00 10 D0 81 DA 00 20 7E $9B/9C83 00 78 41 BE DB 00 20 7E $9B/9C8B 00 00 AB CA DB 00 20 7E $9B/9C93 00 50 9E F1 DB 00 20 7E $9B/9C9B C0 8F 74 EA 9B 80 00 $9B/9CA2 FF FF
$9B/A4B0 ?
$9B/A4B0 8B PHB ; Buffer Data Bank on Stack $9B/A4B1 4B PHK ; Set Data Bank to $9B $9B/A4B2 AB PLB $9B/A4B3 DA PHX ; Buffer X and Y $9B/A4B4 5A PHY $9B/A4B5 A2 00 00 LDX #$0000 ; Setup X as Counter $9B/A4B8 7B TDC ; Clear 16-bit A $9B/A4B9 BD AE 17 LDA $17AE,x[$9B:17AE] A:0000 X:0000 Y:0006 P:envMxdiZC $9B/A4BC F0 06 BEQ $06 ; [$A4C4] Do next entry if empty $9B/A4BE 22 4C A5 88 JSL $88A54C[$88:A54C] A:0032 X:0000 Y:0006 P:envMxdizC $9B/A4C2 B0 09 BCS $09 [$A4CD] A:0000 X:0000 Y:0006 P:eNvMxdizc $9B/A4C4 E8 INX ; Double-Increment Loop Counter / Load Index $9B/A4C5 E8 INX $9B/A4C6 E0 28 00 CPX #$0028 A:0000 X:0002 Y:0006 P:envMxdizc $9B/A4C9 90 ED BCC $ED [$A4B8] A:0000 X:0002 Y:0006 P:eNvMxdizc $9B/A4CB 80 32 BRA $32 ; [$A4FF] Exit
- code is missing here
$9B/A4FF 7A PLY ; Restore Y, X and Data Bank $9B/A500 FA PLX $9B/A501 AB PLB $9B/A502 6B RTL
$9B/A6B6 ? Clear Bit
X is the only important value for this subroutine. The value in X gets devided into two numbers, bits 7 to 3 and bits 2 to 0.
This subroutine removes a bit in a register around $7EFBCF. Which bit gets cleared depends on the value in X's bits 2 to 0. The register which gets that bit cleared depends on the value in X's bits 7 to 3.
$9B/A6B6 8B PHB ; Buffer Data Bank on Stack $9B/A6B7 A9 7E LDA #$7E ; Set Data Bank to $7E $9B/A6B9 48 PHA $9B/A6BA AB PLB $9B/A6BB DA PHX ; Buffer X and Y on Stack $9B/A6BC 5A PHY $9B/A6BD C2 20 REP #$20 ; A = 16-bit $9B/A6BF 8A TXA ; Store Bits 2-0 of X in Y $9B/A6C0 29 07 00 AND #$0007 $9B/A6C3 A8 TAY $9B/A6C4 8A TXA ; Shift Bits 2-0 out of X $9B/A6C5 4A LSR A $9B/A6C6 4A LSR A $9B/A6C7 4A LSR A $9B/A6C8 AA TAX $9B/A6C9 E2 20 SEP #$20 ; A = 8-bit $9B/A6CB A9 01 LDA #$01 ; Y = [n]. After this, the [n]th bit of A is set $9B/A6CD 80 01 BRA $01 ; [$A6D0] $9B/A6CF 0A ASL A $9B/A6D0 88 DEY $9B/A6D1 10 FC BPL $FC ; [$A6CF] $9B/A6D3 49 FF EOR #$FF ; Form an AND-Mask where all but that bit stay set $9B/A6D5 3D CF FB AND $FBCF,x ; Use the AND-Mask $9B/A6D8 9D CF FB STA $FBCF,x ; Store the result $9B/A6DB 7A PLY ; Restore Y, X and Data Byte from Stack $9B/A6DC FA PLX $9B/A6DD AB PLB $9B/A6DE 6B RTL
$9B/A910 ?
$9B/A910 7B TDC A:01F4 X:007C Y:0000 P:envMxdIzc $9B/A911 AF 87 BD 7E LDA $7EBD87[$7E:BD87] A:0000 X:007C Y:0000 P:envMxdIZc $9B/A915 3A DEC A A:0000 X:007C Y:0000 P:envMxdIZc $9B/A916 AA TAX A:00FF X:007C Y:0000 P:eNvMxdIzc $9B/A917 BF 20 A9 9B LDA $9BA920,x[$9B:AA1F] A:00FF X:00FF Y:0000 P:envMxdIzc $9B/A91B 8F 85 BD 7E STA $7EBD85[$7E:BD85] A:0017 X:00FF Y:0000 P:envMxdIzc $9B/A91F 6B RTL A:0017 X:00FF Y:0000 P:envMxdIzc
$9B/A920 ? Data Table
Table for the Subroutine above. Spans from $9B/A920 to $9B/AA1F
Bank $9C
$9C/8B49 Jump Table for $05C0
$9C/8B49 AD C0 05 LDA $05C0 ; Load Jump Table Index $9C/8B4C EB XBA ; Fill the other byte of A with #$00 $9C/8B4D A9 00 LDA #$00 $9C/8B4F EB XBA ; Switch it back and multiply by 2 $9C/8B50 0A ASL A $9C/8B51 AA TAX ; Transfer in X $9C/8B52 7C 55 8B JMP ($8B55,x) ; Table is at $9C/8B55, jump to the entry
$9C/8B55 Table for $9C/8B49
A7 8B $8BA7 - Entry #$00 49 8E $8E49 - Entry #$01 6A 8E $8E6A - Entry #$02 D2 8E $8ED2 - Entry #$03 7F 8F $8F7F - Entry #$04 70 90 $9070 - Entry #$05 E5 90 $90E5 - Entry #$06 F0 95 $95F0 - Entry #$07 30 97 $9730 - Entry #$08 97 98 $9897 - Entry #$09 A1 98 $98A1 - Entry #$0A 59 95 $9559 - Entry #$0B 75 99 $9975 - Entry #$0C 59 91 $9159 - Entry #$0D 8C 93 $938C - Entry #$0E
$9C/8BA7 ? Game Boot Intro
A lot of loading, some Mode 7 stuff
This is a program part that $9C/8B49 jumps to.
$9C/8BA7 22 70 A1 80 JSL $80A170 ; Long Jump to Disable IRQ $9C/8BAB 22 4A A1 80 JSL $80A14A ; Long Jump to Deactivate NMI, Auto Joypad, HDMAs $9C/8BAF 22 B6 A1 80 JSL $80A1B6 ; Write Executable Code in WRAM $9C/8BB3 A9 30 LDA #$30 ; Write HBLANK/VBLANK IRQ activation bits in $4200 Buffer $9C/8BB5 1C AF 05 TRB $05AF $9C/8BB8 A9 FF LDA #$FF ; ??? (Sound related?) $9C/8BBA 85 F5 STA $F5 $9C/8BBC 20 DE 9C JSR $9CDE ; Wait to the end of HBLANK, then FBLANK $9C/8BBF 20 E7 BD JSR $BDE7 [$9C:BDE7] A:A180 X:05ED Y:0000 P:eNVMxdizc $9C/8BC2 AD 9D 17 LDA $179D [$9C:179D] A:0000 X:0000 Y:0000 P:envMxdiZC $9C/8BC5 D0 03 BNE $03 [$8BCA] A:0000 X:0000 Y:0000 P:envMxdiZC $9C/8BC7 20 91 C5 JSR $C591 [$9C:C591] A:0000 X:0000 Y:0000 P:envMxdiZC $9C/8BCA 64 36 STZ $36 [$00:0036] A:0000 X:0000 Y:0000 P:envMxdiZC $9C/8BCC 9C C7 0E STZ $0EC7 [$9C:0EC7] A:0000 X:0000 Y:0000 P:envMxdiZC $9C/8BCF 9C C9 11 STZ $11C9 ; Clear Number of the next free Animation VRAM DMA slot $9C/8BD2 9C CA 11 STZ $11CA ; Clear Number of the first used Animation VRAM DMA slot $9C/8BD5 22 98 C5 9C JSL $9CC598 ; Test SRAM $9C/8BD9 64 C1 STZ $C1 [$00:00C1] A:0020 X:0004 Y:0000 P:envMxdiZC $9C/8BDB A2 00 20 LDX #$2000 A:0020 X:0004 Y:0000 P:envMxdiZC $9C/8BDE 86 5A STX $5A [$00:005A] A:0020 X:2000 Y:0000 P:envMxdizC $9C/8BE0 86 5C STX $5C [$00:005C] A:0020 X:2000 Y:0000 P:envMxdizC $9C/8BE2 A2 00 A8 LDX #$A800 A:0020 X:2000 Y:0000 P:envMxdizC $9C/8BE5 86 5E STX $5E [$00:005E] A:0020 X:A800 Y:0000 P:eNvMxdizC $9C/8BE7 C2 20 REP #$20 A:0020 X:A800 Y:0000 P:eNvMxdizC $9C/8BE9 A9 00 00 LDA #$0000 ; Setup the whole VRAM Clear - DMA Data Size: Clear WHOLE VRAM $9C/8BEC 8F 05 43 00 STA $004305 $9C/8BF0 E2 20 SEP #$20 $9C/8BF2 A9 9C LDA #$9C ; Position of the Clear Byte: $9C/9258 $9C/8BF4 A2 58 92 LDX #$9258 $9C/8BF7 A0 00 00 LDY #$0000 ; VRAM Start Position: $0000 $9C/8BFA 22 81 9D 80 JSL $809D81 ; Long Jump to VRAM Clear $9C/8BFE 22 D2 9C 9C JSL $9C9CD2[$9C:9CD2] A:0001 X:9258 Y:0000 P:eNvMxdizC $9C/8C02 D0 01 BNE $01 [$8C05] A:0000 X:9258 Y:0000 P:envMxdiZC $9C/8C04 1A INC A A:0000 X:9258 Y:0000 P:envMxdiZC $9C/8C05 8F 02 42 00 STA $004202[$00:4202] A:0001 X:9258 Y:0000 P:envMxdizC $9C/8C09 A9 22 LDA #$22 A:0001 X:9258 Y:0000 P:envMxdizC $9C/8C0B 22 4F FD 85 JSL $85FD4F[$85:FD4F] A:0022 X:9258 Y:0000 P:envMxdizC $9C/8C0F 8F 03 42 00 STA $004203[$00:4203] A:00A0 X:9258 Y:0000 P:eNvMxdizc $9C/8C13 A0 57 9B LDY #$9B57 ; Decompress all the Tiles and Tilemaps for the Title Intro $9C/8C16 20 15 9B JSR $9B15 ; Decompress Data and transfer it to VRAM in a Row $9C/8C19 20 7B 9C JSR $9C7B ; Calculate Shadow effect for the BG3 Vertical Japanese Text
After the Quest and Hermit logos, you see vertical Japanese text appear over the cloudy background. The following VRAM DMA transfers the graphic data for the shadows(!) of the vertical text to $0000 in VRAM. These shadows are designated to BG3.
$9C/8C1C A9 80 LDA #$80 ; VRAM settings ($2115) $9C/8C1E 85 0E STA $0E $9C/8C20 A0 00 00 LDY #$0000 ; VRAM Destination $9C/8C23 A2 00 14 LDX #$1400 ; Number of Bytes to transfer $9C/8C26 86 0C STX $0C $9C/8C28 A2 00 20 LDX #$2000 ; VRAM DMA Source Address: $7E/2000 $9C/8C2B A9 7E LDA #$7E $9C/8C2D 22 24 9F 80 JSL $809F24 ; Long Jump to VRAM: $7E/2000 to $0000 VRAM
$9C/8C31 C2 20 REP #$20 $9C/8C33 7B TDC ; Clear 16-bit A $9C/8C34 AA TAX ; Clear X $9C/8C35 A0 A0 00 LDY #$00A0 $9C/8C38 BF 47 A0 CB LDA $CBA047,x ; Transfer the palettes for the whole manufacturer's logo intro... $9C/8C3C 9D 4B 12 STA $124B,x ; ... to the CGRAM buffer $9C/8C3F 9D 4B 14 STA $144B,x ; ... and a second CGRAM buffer? $9C/8C42 E8 INX $9C/8C43 E8 INX $9C/8C44 88 DEY $9C/8C45 D0 F1 BNE $F1 ; [$8C38] $9C/8C47 E2 20 SEP #$20 $9C/8C49 A9 09 LDA #$09 ; BG Mode 1 $9C/8C4B 8D 05 21 STA $2105 $9C/8C4E 8D 89 05 STA $0589 ; Update Buffer register, too $9C/8C51 A9 1C LDA #$1C ; BG Tilemap 1 is at $1C00 in VRAM $9C/8C53 8D 07 21 STA $2107 $9C/8C56 8D 8B 05 STA $058B ; Update Buffer register, too $9C/8C59 A9 14 LDA #$14 ; BG Tilemap 2 is at $1400 in VRAM $9C/8C5B 8D 08 21 STA $2108 $9C/8C5E 8D 8C 05 STA $058C ; Update Buffer register, too $9C/8C61 A9 1C LDA #$1C ; BG Tilemap 3 is at $1C00 in VRAM $9C/8C63 8D 09 21 STA $2109 $9C/8C66 8D 8D 05 STA $058D ; Update Buffer register, too $9C/8C69 A9 02 LDA #$02 ; Sprite size 8x8 and 64x64 $9C/8C6B 8D 88 05 STA $0588 ; Store only buffer $9C/8C6E A9 35 LDA #$35 ; BG1 Tiles at $3000, BG2 Tiles at $5000 $9C/8C70 8D 0B 21 STA $210B $9C/8C73 8D 8F 05 STA $058F ; Update Buffer register, too $9C/8C76 9C 0C 21 STZ $210C ; BG3/4 Tiles at $0000 $9C/8C79 9C 90 05 STZ $0590 ; Update Buffer register, too $9C/8C7C A9 02 LDA #$02 ; Only BG2 on Main Screen $9C/8C7E 8D 2C 21 STA $212C $9C/8C81 8D A6 05 STA $05A6 ; Update Buffer register, too $9C/8C84 9C 2D 21 STZ $212D ; Nothing on Subscreen $9C/8C87 9C A7 05 STZ $05A7 ; Update Buffer register, too $9C/8C8A A9 05 LDA #$05 ; BG3 Window Mask Designation on Main Screen $9C/8C8C 8D A8 05 STA $05A8 ; Update Buffer register, too $9C/8C8F 8D 2E 21 STA $212E $9C/8C92 9C A9 05 STZ $05A9 ; Update Buffer register, too $9C/8C95 9C 2F 21 STZ $212F ; No Window Mask Designation on Subscreen $9C/8C98 A9 02 LDA #$02 ; Add Subscreen - $2130 $9C/8C9A 8D AA 05 STA $05AA $9C/8C9D A9 E0 LDA #$E0 $9C/8C9F 8D AC 05 STA $05AC ; $2132 Buffer - Deactivate $9C/8CA2 8D AD 05 STA $05AD ; $2132 Buffer - Deactivate $9C/8CA5 8D AE 05 STA $05AE ; $2132 Buffer - Deactivate $9C/8CA8 9C 8A 05 STZ $058A ; $212E buffer. Window Mask Designation for Main Screen $9C/8CAB A2 68 97 LDX #$9768 ; Window 1 Left/Right Position $9C/8CAE 8E 26 21 STX $2126 $9C/8CB1 A2 03 03 LDX #$0303 ; Enable Window 1 and Window 1 Inversion for BG1/3 $9C/8CB4 8E 23 21 STX $2123 $9C/8CB7 A9 30 LDA #$30 ; Enable Window 1 and Window 1 Inversion for Color $9C/8CB9 8D 25 21 STA $2125 $9C/8CBC A9 26 LDA #$26 ; ??? $9C/8CBE 8D AB 05 STA $05AB $9C/8CC1 A9 01 LDA #$01 ; Set the Flag for CGRAM Update $9C/8CC3 8D 49 12 STA $1249 $9C/8CC6 7B TDC ; Clear 16-bit A $9C/8CC7 AA TAX ; Clear X $9C/8CC8 8E 91 05 STX $0591 ; (Mode 7) BG1 H Scroll = 0 $9C/8CCB 8E 93 05 STX $0593 ; (Mode 7) BG1 V Scroll = 0 $9C/8CCE 8E 97 05 STX $0597 ; BG2 V Scroll = 0 $9C/8CD1 CA DEX ; X = #$FFFF $9C/8CD2 8E 9B 05 STX $059B ; BG3 V Scroll = #$FFFF $9C/8CD5 A2 04 00 LDX #$0004 $9C/8CD8 8E 95 05 STX $0595 ; BG2 H Scroll = 4 $9C/8CDB 9C B0 05 STZ $05B0 ; HDMA Activation Flag Buffer $9C/8CDE A9 42 LDA #$42 ; HDMA Addressing Mode, 1 register write twice $9C/8CE0 8D 10 43 STA $4310 $9C/8CE3 8D 20 43 STA $4320 $9C/8CE6 A9 1B LDA #$1B ; First HDMA Destination: $211B (Mode 7 Matrix A) $9C/8CE8 8D 11 43 STA $4311 $9C/8CEB A9 1E LDA #$1E ; First HDMA Destination: $211E (Mode 7 Matrix D) $9C/8CED 8D 21 43 STA $4321 $9C/8CF0 A2 11 9B LDX #$9B11 ; HDMA Source address for both: $9C/9B11 -(000E:1B11) $9C/8CF3 8E 12 43 STX $4312 $9C/8CF6 8E 22 43 STX $4322 $9C/8CF9 A9 9C LDA #$9C $9C/8CFB 8D 14 43 STA $4314 $9C/8CFE 8D 24 43 STA $4324 $9C/8D01 A9 00 LDA #$00 ; Both HDMA Indirect addresses are on Bank $00 $9C/8D03 8D 17 43 STA $4317 $9C/8D06 8D 27 43 STA $4327 $9C/8D09 A9 00 LDA #$00 ; Mode 7 Settings $9C/8D0B 8D 1A 21 STA $211A $9C/8D0E 9C 1B 21 STZ $211B ; Mode 7 Matrix A $9C/8D11 A9 01 LDA #$01 $9C/8D13 8D 1B 21 STA $211B $9C/8D16 9C 1C 21 STZ $211C ; Mode 7 Matrix B $9C/8D19 9C 1C 21 STZ $211C $9C/8D1C 9C 1D 21 STZ $211D ; Mode 7 Matrix C $9C/8D1F 9C 1D 21 STZ $211D $9C/8D22 A9 01 LDA #$01 $9C/8D24 9C 1E 21 STZ $211E ; Mode 7 Matrix D $9C/8D27 8D 1E 21 STA $211E $9C/8D2A A9 80 LDA #$80 $9C/8D2C 8D 1F 21 STA $211F ; Mode 7 Center X $9C/8D2F 9C 1F 21 STZ $211F $9C/8D32 A9 58 LDA #$58 $9C/8D34 8D 20 21 STA $2120 ; Mode 7 Center X $9C/8D37 9C 20 21 STZ $2120 $9C/8D3A C2 20 REP #$20 $9C/8D3C A2 00 02 LDX #$0200 ; Write "$E000" at $7E/0100 for $200 byte - this clears OAM Buffer 1's Low Table $9C/8D3F A0 00 01 LDY #$0100 $9C/8D42 A9 00 E0 LDA #$E000 $9C/8D45 22 C8 9D 80 JSL $809DC8 $9C/8D49 A2 00 02 LDX #$0200 ; Write "$E000" at $7E/0320 for $200 byte - this clears OAM Buffer 2's Low Table $9C/8D4C A0 20 03 LDY #$0320 $9C/8D4F A9 00 E0 LDA #$E000 $9C/8D52 22 C8 9D 80 JSL $809DC8 $9C/8D56 A2 20 00 LDX #$0020 ; Write "$0000" at $7E/0300 for $20 byte - this clears OAM Buffer 1's High Table $9C/8D59 A0 00 03 LDY #$0300 $9C/8D5C A9 00 00 LDA #$0000 $9C/8D5F 22 C8 9D 80 JSL $809DC8 $9C/8D63 A2 20 00 LDX #$0020 ; Write "$0000" at $7E/0520 for $20 byte - this clears OAM Buffer 2's High Table $9C/8D66 A0 20 05 LDY #$0520 $9C/8D69 A9 00 00 LDA #$0000 $9C/8D6C 22 C8 9D 80 JSL $809DC8 $9C/8D70 7B TDC ; Clear 16-bit A $9C/8D71 AA TAX ; Clear X $9C/8D72 BF 9A DD 9C LDA $9CDD9A,x ; Transfer Data from ROM to WRAM $9C/8D76 9D 00 01 STA $0100,x ; This is for a OAM Low Table $9C/8D79 E8 INX $9C/8D7A E8 INX $9C/8D7B E0 08 01 CPX #$0108 $9C/8D7E D0 F2 BNE $F2 ; [$8D72] $9C/8D80 E2 20 SEP #$20 $9C/8D82 7B TDC ; Clear 16-bit A $9C/8D83 AA TAX ; Clear X $9C/8D84 BF 74 DD 9C LDA $9CDD74,x ; Transfer Data from ROM to WRAM $9C/8D88 9D 00 03 STA $0300,x ; This is for a OAM Hi Table $9C/8D8B E8 INX $9C/8D8C E0 11 00 CPX #$0011 $9C/8D8F D0 F3 BNE $F3 ; [$8D84] $9C/8D91 A2 00 01 LDX #$0100 ; OAM Buffer is at $0100 $9C/8D94 8E 45 05 STX $0545 $9C/8D97 A9 01 LDA #$01 ; Update OAM $9C/8D99 8D 40 05 STA $0540 $9C/8D9C A9 7F LDA #$7F ; Data Bank = $7F $9C/8D9E 48 PHA $9C/8D9F AB PLB $9C/8DA0 C2 20 REP #$20 $9C/8DA2 A2 00 80 LDX #$8000 ; Write "$001F" at $7F/0000 to $7F/7FFF $9C/8DA5 A0 00 00 LDY #$0000 $9C/8DA8 A9 1F 00 LDA #$001F $9C/8DAB 22 C8 9D 80 JSL $809DC8 $9C/8DAF E2 20 SEP #$20 ; This line could be removed? (If nothing ever jumps to $9C/8DB3) $9C/8DB1 4B PHK ; This line could be removed? $9C/8DB2 AB PLB ; This line could be removed? $9C/8DB3 A9 7F LDA #$7F ; This line could be removed? $9C/8DB5 48 PHA ; This line could be removed? $9C/8DB6 AB PLB ; This line could be removed? $9C/8DB7 C2 20 REP #$20 ; This line could be removed? $9C/8DB9 A2 00 60 LDX #$6000 ; Write "$0000" at $7F/A000 to $7F/FFFF $9C/8DBC A0 00 A0 LDY #$A000 $9C/8DBF A9 00 00 LDA #$0000 $9C/8DC2 22 C8 9D 80 JSL $809DC8 $9C/8DC6 E2 20 SEP #$20 $9C/8DC8 4B PHK ; Set Data Bank to $9C $9C/8DC9 AB PLB $9C/8DCA A9 85 LDA #$85 ; Data Address of colors for several palettes $85/B170 $9C/8DCC 85 22 STA $22 $9C/8DCE A2 70 B1 LDX #$B170 $9C/8DD1 86 20 STX $20 $9C/8DD3 20 AB 9C JSR $9CAB ; Replace three colors in several palettes $9C/8DD6 A9 CA LDA #$CA ; Set up address for transfer loop: $CA/BD25 $9C/8DD8 85 22 STA $22 $9C/8DDA A2 25 BD LDX #$BD25 $9C/8DDD 86 20 STX $20 $9C/8DDF 7B TDC ; Clear 16-bit A $9C/8DE0 AA TAX ; Clear X $9C/8DE1 A8 TAY ; Clear Y $9C/8DE2 A9 20 LDA #$20 ; Set up transfer loop counter $9C/8DE4 85 00 STA $00 $9C/8DE6 B7 20 LDA [$20],y ; ??? $9C/8DE8 9F 00 00 7F STA $7F0000,x ; ??? $9C/8DEC C8 INY $9C/8DED C6 00 DEC $00 $9C/8DEF D0 0E BNE $0E ; [$8DFF] $9C/8DFF E8 INX $9C/8E00 E8 INX $9C/8E01 C0 A0 01 CPY #$01A0 $9C/8E04 D0 E0 BNE $E0 ; [$8DE6] $9C/8DF1 C2 20 REP #$20 $9C/8DF3 8A TXA ; ??? $9C/8DF4 18 CLC ; ??? $9C/8DF5 69 C0 00 ADC #$00C0 ; ??? $9C/8DF8 AA TAX ; ??? $9C/8DF9 E2 20 SEP #$20 ; A = 8-bit $9C/8DFB A9 20 LDA #$20 ; ??? $9C/8DFD 85 00 STA $00 ; ??? $9C/8E06 A9 00 LDA #$00 ; ??? $9C/8E08 22 03 80 8F JSL $8F8003 ; ??? $9C/8E0C A9 20 LDA #$20 ; ??? $9C/8E0E 22 03 80 8F JSL $8F8003 ; ??? $9C/8E12 64 E7 STZ $E7 ; ??? $9C/8E14 9C 9C 17 STZ $179C ; Clear Register for Frame Counter $9C/8E17 9C E6 1E STZ $1EE6 ; ??? $9C/8E1A 7B TDC ; Clear 16-bit A $9C/8E1B AA TAX ; Clear X $9C/8E1C 8E 61 00 STX $0061 ; ??? $9C/8E1F 8E 63 00 STX $0063 ; ??? $9C/8E22 8E 65 00 STX $0065 ; ??? $9C/8E25 8F 28 B2 7E STA $7EB228 ; ??? $9C/8E29 8F 29 B2 7E STA $7EB229 ; ??? $9C/8E2D 8F A9 B2 7E STA $7EB2A9 ; ??? $9C/8E31 EE C0 05 INC $05C0 ; Increment Intro Jump Table Index $9C/8E34 A9 00 LDA #$00 ; Deactivate FBLANK, Screen Brightness = 0% $9C/8E36 8D 00 21 STA $2100 $9C/8E39 8D 87 05 STA $0587 ; Update Buffer register, too $9C/8E3C 8D 6A 05 STA $056A ; Update (second?) Buffer register, too $9C/8E3F 22 27 A1 80 JSL $80A127 ; ??? $9C/8E43 A9 81 LDA #$81 ; Activate NMI and Auto-Joypad Read $9C/8E45 0C AF 05 TSB $05AF ; Store in Buffer $9C/8E48 60 RTS
$9C/8E49 GAME INTRO: Quest Logo
This handles the fade-in and the fade-out of the Quest logo
$9C/8E49 EE 9C 17 INC $179C ; Increment Timer (Frame Counter) $9C/8E4C AD 9C 17 LDA $179C ; Load Timer value $9C/8E4F C9 9E CMP #$9E ; Is the limit reached? $9C/8E51 B0 03 BCS $03 ; [$8E56] Leave out Screen fade-in if higher than #$9E $9C/8E53 4C 64 9C JMP $9C64 ; Screen fade-in (and leave out the rest here) $9C/8E56 4A LSR A ; Push LSB into Carry (Clear = Even number, Set = odd number) $9C/8E57 90 10 BCC $10 ; [$8E69] Exit if $179C was even $9C/8E59 CE 87 05 DEC $0587 ; Decrement Screen Brightness (Buffer value) $9C/8E5C D0 0B BNE $0B ; [$8E69] Exit if Brightness hasn't reached zero $9C/8E5E A9 0C LDA #$0C ; Set BG2 Tilemap Address to #$0C00 in VRAM $9C/8E60 8D 8C 05 STA $058C $9C/8E63 9C 9C 17 STZ $179C ; Reset Timer $9C/8E66 EE C0 05 INC $05C0 ; Increment the overall pointer - do the next step in the Intro $9C/8E69 60 RTS
$9C/8E6A GAME INTRO: Hermit Logo/Music Start
The Tilemap for the Hermit Logo is already in VRAM Buffer (at $0C00). The BG2 Tilemap address ($2108, buffered in $058C) is already set to #$0C in the Game Intro step before (at $9C/8E49, or at $9C/8E5E to be exact).
This subroutine
- increments the Frame Counter ($9C/8E6A)
- checks if #$96 was reached - at #$96, it starts the music ($9C/8E6D to $9C/8E79)
- checks if #$9E was surpassed - if not, it jumps to the Screen fade-in ($9C/8E7A to $9C/8E7E)
- if >#$9E: Decrement the Screen Brightness every two frames (every even frame number) ($9C/8E81 to $9C/8E87)
$9C/8E6A EE 9C 17 INC $179C ; Increment Timer $9C/8E6D AD 9C 17 LDA $179C ; Check Timer $9C/8E70 C9 96 CMP #$96 ; Is the Timer value reached to start the music? $9C/8E72 D0 06 BNE $06 ; [$8E7A] Branch if not $9C/8E74 48 PHA ; Else, buffer Timer value on Stack $9C/8E75 A9 01 LDA #$01 ; Store #$01 in $F5 to start music $9C/8E77 85 F5 STA $F5 $9C/8E79 68 PLA ; Restore Timer value from Stack $9C/8E7A C9 9E CMP #$9E ; Is the Timer (Frame Counter) higher than #$9E? $9C/8E7C B0 03 BCS $03 ; [$8E81] Branch if it IS $9C/8E7E 4C 64 9C JMP $9C64 ; Jump to Screen fade-in (leave this subroutine) $9C/8E81 4A LSR A ; Push LSB into Carry (Clear = Even number, Set = odd number) $9C/8E82 90 4D BCC $4D ; [$8ED1] Exit if even number $9C/8E84 CE 87 05 DEC $0587 ; Else, decrement Screen Brightness $9C/8E87 D0 48 BNE $48 ; [$8ED1] Exit if Screen Brightness isn't zero yet $9C/8E89 A9 10 LDA #$10 ; (Number of Colors to do with the color Subroutine later) $9C/8E8B 8D A6 17 STA $17A6 $9C/8E8E 9C A7 17 STZ $17A7 $9C/8E91 A9 00 LDA #$00 ; Setup the Address of CGRAM Buffer ($00/124B) in $20-$22 $9C/8E93 85 22 STA $22 $9C/8E95 A2 4B 12 LDX #$124B $9C/8E98 86 20 STX $20 $9C/8E9A A9 9C LDA #$9C ; Setup the Address of a Palette ($9C/DCD4) in $23-25 $9C/8E9C 85 25 STA $25 $9C/8E9E A2 D4 DC LDX #$DCD4 $9C/8EA1 86 23 STX $23 $9C/8EA3 22 14 AA 83 JSL $83AA14[$83:AA14] A:009C X:DCD4 Y:9E53 P:eNvMxdizC $9C/8EA7 9C 87 05 STZ $0587 ; $2100 Buffer - Turn Screen off $9C/8EAA A9 02 LDA #$02 ; $212C Buffer - Put BG2 on Main Screen $9C/8EAC 8D A6 05 STA $05A6 $9C/8EAF A9 01 LDA #$01 ; $212D Buffer - Put BG1 on Subscreen $9C/8EB1 8D A7 05 STA $05A7 $9C/8EB4 A9 18 LDA #$18 ; BG1 Tilemap Address: $1800 $9C/8EB6 8D 8B 05 STA $058B $9C/8EB9 A9 10 LDA #$10 ; BG2 Tilemap Address: $1000 $9C/8EBB 8D 8C 05 STA $058C $9C/8EBE A9 53 LDA #$53 ; BG2 Tileset Address: $5000, BG1 Tileset Address: $3000 $9C/8EC0 8D 8F 05 STA $058F $9C/8EC3 7B TDC ; Clear 16-bit A $9C/8EC4 AA TAX ; Clear X $9C/8EC5 8E 9C 17 STX $179C ; Reset Frame Counter $9C/8EC8 8E 9E 17 STX $179E [$9C:179E] A:0000 X:0000 Y:0020 P:envMxdiZc $9C/8ECB 8E 95 05 STX $0595 ; Set BG2 Horizontal Scroll Register to #$0000 $9C/8ECE EE C0 05 INC $05C0 ; Increment the overall pointer - do the next step in the Intro $9C/8ED1 60 RTS
$9C/8ED2 GAME INTRO: Quest Presents/Fade to Sky Intro
Like in the subroutine before, this subroutine handles different things depending on the value of a frame counter (in $179C).
- If the timer is <#0124, the screen fades in ($9C/87FB)
- If the timer has reached #$124, ?????????? ($9C/8F29)
- If the timer is between #$125 and #$1AD, ?????????? ($9C/8F34)
- If the timer has reached #$1AE, ?????????? ($9C/8EDE)
$9C/8ED2 AE 9C 17 LDX $179C ; Load Timer (Frame Counter) $9C/8ED5 E8 INX ; Inc Timer $9C/8ED6 8E 9C 17 STX $179C ; Store incremented Timer back $9C/8ED9 E0 AE 01 CPX #$01AE ; Has Timer reached #$01AE? $9C/8EDC D0 44 BNE $44 ; [$8F22] Branch if not $9C/8EDE A9 00 LDA #$00 ; Setup 24-bit address of VGRAM buffer ($00/12EB) in [$20] $9C/8EE0 85 22 STA $22 $9C/8EE2 A2 EB 12 LDX #$12EB $9C/8EE5 86 20 STX $20 $9C/8EE7 A9 9C LDA #$9C ; Setup 24-bit address ($9C/DCF4) in [$23] $9C/8EE9 85 25 STA $25 $9C/8EEB A2 F4 DC LDX #$DCF4 $9C/8EEE 86 23 STX $23 $9C/8EF0 22 14 AA 83 JSL $83AA14[$83:AA14] A:009C X:DCF4 Y:009B P:eNvMxdizC $9C/8EF4 7B TDC ; Clear 16-bit A $9C/8EF5 AA TAX ; Clear X $9C/8EF6 8E 9C 17 STX $179C ; Clear Frame Counter $9C/8EF9 8E 9E 17 STX $179E ; Clear Special Frame Counter $9C/8EFC A9 1C LDA #$1C ; BG1 Tilemap address: $1C00, no mirroring $9C/8EFE 8D 8B 05 STA $058B $9C/8F01 A9 06 LDA #$06 ; BG2/3 on Main Screen $9C/8F03 8D A6 05 STA $05A6 $9C/8F06 A9 01 LDA #$01 ; BG1 on Subscreen $9C/8F08 8D A7 05 STA $05A7 $9C/8F0B A9 22 LDA #$22 ; NotMathWindow Mask $9C/8F0D 8D AA 05 STA $05AA $9C/8F10 A2 64 01 LDX #$0164 $9C/8F13 8E 91 05 STX $0591 ; BG1 Horizontal Scroll: #$0164 $9C/8F16 8E 99 05 STX $0599 ; BG3 Horizontal Scroll: #$0164 $9C/8F19 EE C0 05 INC $05C0 ; Increment the overall pointer - do the next step in the Intro $9C/8F1C 60 RTS $9C/8F1D 9C A7 05 STZ $05A7 ; Remove BG1 from Subscreen $9C/8F20 80 56 BRA $56 ; [$8F78] Increment Special Frame Counter/BG2 X-Scroll $9C/8F22 E0 24 01 CPX #$0124 ; Has Timer reached #$0124? $9C/8F25 90 54 BCC $54 ; [$8F7B] Branch if not (Screen fade in and exit) $9C/8F27 D0 0B BNE $0B ; [$8F34] Branch if it is between #$0125 and #$01AD $9C/8F29 A9 01 LDA #$01 A:0006 X:0124 Y:0020 P:envMxdiZC $9C/8F2B 8D 9E 17 STA $179E [$9C:179E] A:0001 X:0124 Y:0020 P:envMxdizC $9C/8F2E 9C 9F 17 STZ $179F [$9C:179F] A:0001 X:0124 Y:0020 P:envMxdizC $9C/8F31 9C 9A 17 STZ $179A [$9C:179A] A:0001 X:0124 Y:0020 P:envMxdizC $9C/8F34 AD 9F 17 LDA $179F [$9C:179F] A:0001 X:0124 Y:0020 P:envMxdizC $9C/8F37 C9 07 CMP #$07 A:0000 X:0124 Y:0020 P:envMxdiZC $9C/8F39 B0 E2 BCS $E2 [$8F1D] A:0000 X:0124 Y:0020 P:eNvMxdizc $9C/8F3B CE 9E 17 DEC $179E [$9C:179E] A:0000 X:0124 Y:0020 P:eNvMxdizc $9C/8F3E D0 38 BNE $38 [$8F78] A:0000 X:0124 Y:0020 P:envMxdiZc $9C/8F40 A9 0F LDA #$0F A:0000 X:0124 Y:0020 P:envMxdiZc $9C/8F42 8D 9E 17 STA $179E [$9C:179E] A:000F X:0124 Y:0020 P:envMxdizc $9C/8F45 EE 9F 17 INC $179F [$9C:179F] A:000F X:0124 Y:0020 P:envMxdizc $9C/8F48 A9 00 LDA #$00 ; Setup 24-bit address of VGRAM buffer ($00/12EB) in [$20] $9C/8F4A 85 22 STA $22 $9C/8F4C A2 4B 12 LDX #$124B $9C/8F4F 86 20 STX $20 $9C/8F51 22 76 A9 83 JSL $83A976[$83:A976] A:0000 X:124B Y:0020 P:envMxdizc $9C/8F55 A2 A0 00 LDX #$00A0 A:0C63 X:0020 Y:0020 P:eNvMxdizc $9C/8F58 C2 20 REP #$20 A:0C63 X:00A0 Y:0020 P:envMxdizc $9C/8F5A BD 4B 12 LDA $124B,x[$9C:12EB] A:0C63 X:00A0 Y:0020 P:envmxdizc $9C/8F5D A0 19 00 LDY #$0019 A:0000 X:00A0 Y:0020 P:envmxdiZc $9C/8F60 22 AA 83 83 JSL $8383AA[$83:83AA] A:0000 X:00A0 Y:0019 P:envmxdizc $9C/8F64 9D 4B 12 STA $124B,x[$9C:12EB] A:0000 X:00A0 Y:009B P:eNvmxdizc $9C/8F67 9D 4B 14 STA $144B,x[$9C:14EB] A:0000 X:00A0 Y:009B P:eNvmxdizc $9C/8F6A E8 INX A:0000 X:00A0 Y:009B P:eNvmxdizc $9C/8F6B E8 INX A:0000 X:00A1 Y:009B P:envmxdizc $9C/8F6C E0 B0 00 CPX #$00B0 A:0000 X:00A2 Y:009B P:envmxdizc $9C/8F6F D0 E9 BNE $E9 [$8F5A] A:0000 X:00A2 Y:009B P:eNvmxdizc $9C/8F71 E2 20 SEP #$20 ; A = 8-bit $9C/8F73 A9 01 LDA #$01 ; Set Flag for CGRAM Update $9C/8F75 8D 49 12 STA $1249 $9C/8F78 4C 41 91 JMP $9141 ; Increment Special Frame Counter/BG2 X-Scroll $9C/8F7B 20 64 9C JSR $9C64 ; Screen fade in $9C/8F7E 60 RTS
$9C/8F7F GAME INTRO: Sky Intro?
$9C/8F7F 7B TDC ; Clear 16-bit A $9C/8F80 A8 TAY ; Clear Y $9C/8F81 C2 20 REP #$20 A:0000 X:0008 Y:0000 P:envMxdiZc $9C/8F83 80 02 BRA $02 [$8F87] A:0000 X:0008 Y:0000 P:envmxdiZc $9C/8F85 C8 INY A:0000 X:0008 Y:0000 P:eNvmxdizc $9C/8F86 C8 INY A:0000 X:0008 Y:0001 P:envmxdizc $9C/8F87 B9 DE 8F LDA $8FDE,y[$9C:8FDE] A:0000 X:0008 Y:0000 P:envmxdiZc $9C/8F8A 30 09 BMI $09 [$8F95] A:0000 X:0008 Y:0000 P:envmxdiZc $9C/8F8C CD 9E 17 CMP $179E [$9C:179E] A:0000 X:0008 Y:0000 P:envmxdiZc $9C/8F8F F0 6D BEQ $6D [$8FFE] A:0000 X:0008 Y:0000 P:envmxdiZC $9C/8F91 90 F2 BCC $F2 [$8F85] A:0000 X:0008 Y:0000 P:eNvmxdizc $9C/8F93 80 78 BRA $78 [$900D] A:00D4 X:0008 Y:0002 P:envmxdizC $9C/8F95 E2 20 SEP #$20 A:8000 X:0008 Y:000E P:eNvmxdizc $9C/8F97 A2 47 A0 LDX #$A047 A:8000 X:0008 Y:000E P:eNvMxdizc $9C/8F9A 86 20 STX $20 [$00:0020] A:8000 X:A047 Y:000E P:eNvMxdizc $9C/8F9C A9 CB LDA #$CB A:8000 X:A047 Y:000E P:eNvMxdizc $9C/8F9E 85 22 STA $22 [$00:0022] A:80CB X:A047 Y:000E P:eNvMxdizc $9C/8FA0 A9 08 LDA #$08 A:80CB X:A047 Y:000E P:eNvMxdizc $9C/8FA2 A2 A0 00 LDX #$00A0 A:8008 X:A047 Y:000E P:envMxdizc $9C/8FA5 20 53 90 JSR $9053 [$9C:9053] A:8008 X:00A0 Y:000E P:envMxdizc $9C/8FA8 A9 00 LDA #$00 A:0001 X:00B0 Y:0010 P:envMxdizc $9C/8FAA 85 22 STA $22 [$00:0022] A:0000 X:00B0 Y:0010 P:envMxdiZc $9C/8FAC A2 EB 12 LDX #$12EB A:0000 X:00B0 Y:0010 P:envMxdiZc $9C/8FAF 86 20 STX $20 [$00:0020] A:0000 X:12EB Y:0010 P:envMxdizc $9C/8FB1 A9 9C LDA #$9C A:0000 X:12EB Y:0010 P:envMxdizc $9C/8FB3 85 25 STA $25 [$00:0025] A:009C X:12EB Y:0010 P:eNvMxdizc $9C/8FB5 A2 F4 DC LDX #$DCF4 A:009C X:12EB Y:0010 P:eNvMxdizc $9C/8FB8 86 23 STX $23 [$00:0023] A:009C X:DCF4 Y:0010 P:eNvMxdizc $9C/8FBA 22 14 AA 83 JSL $83AA14[$83:AA14] A:009C X:DCF4 Y:0010 P:eNvMxdizc $9C/8FBE A9 0C LDA #$0C A:0094 X:0020 Y:0020 P:eNvMxdizc $9C/8FC0 8D 8B 05 STA $058B [$9C:058B] A:000C X:0020 Y:0020 P:envMxdizc $9C/8FC3 A9 02 LDA #$02 A:000C X:0020 Y:0020 P:envMxdizc $9C/8FC5 8D A6 05 STA $05A6 [$9C:05A6] A:0002 X:0020 Y:0020 P:envMxdizc $9C/8FC8 A9 10 LDA #$10 A:0002 X:0020 Y:0020 P:envMxdizc $9C/8FCA 8D A7 05 STA $05A7 [$9C:05A7] A:0010 X:0020 Y:0020 P:envMxdizc $9C/8FCD A9 02 LDA #$02 A:0010 X:0020 Y:0020 P:envMxdizc $9C/8FCF 8D AA 05 STA $05AA [$9C:05AA] A:0002 X:0020 Y:0020 P:envMxdizc $9C/8FD2 7B TDC A:0002 X:0020 Y:0020 P:envMxdizc $9C/8FD3 AA TAX A:0000 X:0020 Y:0020 P:envMxdiZc $9C/8FD4 8E 91 05 STX $0591 [$9C:0591] A:0000 X:0000 Y:0020 P:envMxdiZc $9C/8FD7 8E 9C 17 STX $179C [$9C:179C] A:0000 X:0000 Y:0020 P:envMxdiZc $9C/8FDA EE C0 05 INC $05C0 ; Increment the overall pointer - do the next step in the Intro $9C/8FDD 60 RTS
- code is missing here
$9C/8FFE B9 EE 8F LDA $8FEE,y[$9C:8FEE] A:0000 X:0008 Y:0000 P:envmxdiZC $9C/9001 8D 91 05 STA $0591 [$9C:0591] A:0164 X:0008 Y:0000 P:envmxdizC $9C/9004 3A DEC A A:0164 X:0008 Y:0000 P:envmxdizC $9C/9005 8D 99 05 STA $0599 [$9C:0599] A:0163 X:0008 Y:0000 P:envmxdizC $9C/9008 9C 9C 17 STZ $179C [$9C:179C] A:0163 X:0008 Y:0000 P:envmxdizC $9C/900B 84 0E STY $0E [$00:000E] A:0163 X:0008 Y:0000 P:envmxdizC $9C/900D EE 9E 17 INC $179E [$9C:179E] A:0163 X:0008 Y:0000 P:envmxdizC $9C/9010 20 41 91 JSR $9141 [$9C:9141] A:0163 X:0008 Y:0000 P:envmxdizC $9C/9013 7B TDC A:0109 X:0008 Y:0000 P:eNvMxdizc $9C/9014 E2 20 SEP #$20 A:0000 X:0008 Y:0000 P:envMxdiZc $9C/9016 AD 9C 17 LDA $179C [$9C:179C] A:0000 X:0008 Y:0000 P:envMxdiZc $9C/9019 C9 10 CMP #$10 A:0000 X:0008 Y:0000 P:envMxdiZc $9C/901B B0 24 BCS $24 [$9041] A:0000 X:0008 Y:0000 P:eNvMxdizc $9C/901D 85 00 STA $00 [$00:0000] A:0000 X:0008 Y:0000 P:eNvMxdizc $9C/901F A9 0F LDA #$0F A:0000 X:0008 Y:0000 P:eNvMxdizc $9C/9021 38 SEC A:000F X:0008 Y:0000 P:envMxdizc $9C/9022 E5 00 SBC $00 [$00:0000] A:000F X:0008 Y:0000 P:envMxdizC $9C/9024 C2 20 REP #$20 A:000F X:0008 Y:0000 P:envMxdizC $9C/9026 4A LSR A A:000F X:0008 Y:0000 P:envmxdizC $9C/9027 0A ASL A A:0007 X:0008 Y:0000 P:envmxdizC $9C/9028 0A ASL A A:000E X:0008 Y:0000 P:envmxdizc $9C/9029 0A ASL A A:001C X:0008 Y:0000 P:envmxdizc $9C/902A 0A ASL A A:0038 X:0008 Y:0000 P:envmxdizc $9C/902B 18 CLC A:0070 X:0008 Y:0000 P:envmxdizc $9C/902C 69 F4 DC ADC #$DCF4 A:0070 X:0008 Y:0000 P:envmxdizc $9C/902F 85 20 STA $20 [$00:0020] A:DD64 X:0008 Y:0000 P:eNvmxdizc $9C/9031 E2 20 SEP #$20 A:DD64 X:0008 Y:0000 P:eNvmxdizc $9C/9033 A9 9C LDA #$9C A:DD64 X:0008 Y:0000 P:eNvMxdizc $9C/9035 85 22 STA $22 [$00:0022] A:DD9C X:0008 Y:0000 P:eNvMxdizc $9C/9037 A9 08 LDA #$08 A:DD9C X:0008 Y:0000 P:eNvMxdizc $9C/9039 A2 A0 00 LDX #$00A0 A:DD08 X:0008 Y:0000 P:envMxdizc $9C/903C 20 53 90 JSR $9053 [$9C:9053] A:DD08 X:00A0 Y:0000 P:envMxdizc $9C/903F 80 09 BRA $09 [$904A] A:1801 X:00B0 Y:0010 P:envMxdizc $9C/9041 C9 C4 CMP #$C4 A:0010 X:0008 Y:0002 P:envMxdiZC $9C/9043 90 0A BCC $0A [$904F] A:0010 X:0008 Y:0002 P:envMxdizc $9C/9045 38 SEC A:00C4 X:0008 Y:0002 P:envMxdiZC $9C/9046 E9 C4 SBC #$C4 A:00C4 X:0008 Y:0002 P:envMxdiZC $9C/9048 80 DA BRA $DA [$9024] A:0000 X:0008 Y:0002 P:envMxdiZC $9C/904A A9 01 LDA #$01 A:1801 X:00B0 Y:0010 P:envMxdizc $9C/904C 8D 49 12 STA $1249 [$9C:1249] A:1801 X:00B0 Y:0010 P:envMxdizc $9C/904F EE 9C 17 INC $179C [$9C:179C] A:1801 X:00B0 Y:0010 P:envMxdizc $9C/9052 60 RTS A:1801 X:00B0 Y:0010 P:envMxdizc
$9C/9053 Transfer colors to CGRAM buffer
This transfers colors to the CGRAM buffer and sets the flag that CGRAM gets updated the next time
A contains the number of Colors (number of 16-bit-values!) to transfer
X contains the Index where to store in the CGRAM buffer
$20-$22 contain the Load Address.
$9C/9053 85 00 STA $00 ; Carried in A value is the counter value for the transfer $9C/9055 64 01 STZ $01 ; Clear upper Byte of the counter $9C/9057 7B TDC ; Clear 16 bit A $9C/9058 A8 TAY ; Clear Y $9C/9059 C2 20 REP #$20 $9C/905B B7 20 LDA [$20],y ; Transfer data from address $9C/905D 9D 4B 12 STA $124B,x ; Store CGRAM buffer $9C/9060 C8 INY ; Increment Load index $9C/9061 C8 INY $9C/9062 E8 INX ; Increment Store index $9C/9063 E8 INX $9C/9064 C6 00 DEC $00 ; Decrement Loop counter $9C/9066 D0 F3 BNE $F3 ; [$905B] $9C/9068 E2 20 SEP #$20 $9C/906A A9 01 LDA #$01 ; Set Flag for CGRAM Update $9C/906C 8D 49 12 STA $1249 $9C/906F 60 RTS
$9C/9141 GAME INTRO: Increment Special Frame Counter/BG2 X-Scroll
$9C/9141 E2 20 SEP #$20 ; A = 8-bit $9C/9143 EE 9A 17 INC $179A ; Increment Special Frame Counter $9C/9146 AD 9A 17 LDA $179A ; Has Special Frame Counter reached #$0A $9C/9149 C9 0A CMP #$0A $9C/914B D0 08 BNE $08 ; [$9155] If not, exit $9C/914D 7B TDC ; Clear 16-bit A $9C/914E AE 95 05 LDX $0595 ; Load Buffered BG2 Horizontal Scroll value $9C/9151 E8 INX ; Increment it $9C/9152 8E 95 05 STX $0595 ; Store it back $9C/9155 8D 9A 17 STA $179A ; Reset Special Frame Counter $9C/9158 60 RTS
$9C/9234 ?
I don't know if this subroutine starts here, just for a quick note
$9C/9234 A9 21 LDA #$21 A:00FF X:001A Y:01A1 P:envMxdiZC $9C/9236 22 03 80 8F JSL $8F8003[$8F:8003] A:0021 X:001A Y:01A1 P:envMxdizC
The "$21" is the sound that gets played when the soldier hits the archeress in the intro demo
$9C/9258 Clear Byte for $9C/8BE9
$9C/9258 00 00
$9C/98A1 Title Screen BG1 Tilemap builder
This builds the BG1 tilemap for the TO start screen in WRAM at $7F:E000
$9C/98A1 A9 7F LDA #$7F ; Setup 24-bit Address in $20: $7F:E000 $9C/98A3 85 22 STA $22 $9C/98A5 A2 00 E0 LDX #$E000 $9C/98A8 86 20 STX $20 $9C/98AA 7B TDC ; Clear 16-bit A $9C/98AB AA TAX ; Clear X $9C/98AC A8 TAY ; Clear Y $9C/98AD BF 25 BD CA LDA $CABD25,x ; This loads the Low byte of the Tilemap from the ROM $9C/98B1 EB XBA $9C/98B2 A9 32 LDA #$32 ; This adds the Tilemap high byte of #$32 $9C/98B4 EB XBA $9C/98B5 C2 20 REP #$20 ; A = 16 bit $9C/98B7 97 20 STA [$20],y ; This now stores both bytes in WRAM $9C/98B9 E2 20 SEP #$20 ; A = 8 bit $9C/98BB C8 INY ; Increment the index registers $9C/98BC C8 INY $9C/98BD E8 INX $9C/98BE E0 A0 01 CPX #$01A0 $9C/98C1 D0 EA BNE $EA ; [$98AD]
THis transers some palettes to the CGRAM buffer. These are the palettes that are used in the intro sequence where the text appears on the cloudy sky.
$9C/98C3 A9 CB LDA #$CB ; Data Address of a palette: $CB/A047 (= $0025:A047) $9C/98C5 85 22 STA $22 $9C/98C7 A2 47 A0 LDX #$A047 $9C/98CA 86 20 STX $20 $9C/98CC A9 10 LDA #$10 ; Transfer #$10 Colors $9C/98CE A2 80 00 LDX #$0080 ; Transfer it as the palette no. 0 for sprites $9C/98D1 20 53 90 JSR $9053 ; Transfer Data into the CGRAM Buffer $9C/98D4 A9 20 LDA #$20 ; Transfer the #$20 Colors after that $9C/98D6 A2 00 00 LDX #$0000 ; And set them as BG palettes $9C/98D9 20 53 90 JSR $9053 ; Transfer Data into the CGRAM Buffer $9C/98DC A9 08 LDA #$08 ; Transfer half an palette $9C/98DE A2 A0 00 LDX #$00A0 ; Somethere in the sprite palette department $9C/98E1 20 53 90 JSR $9053 ; Transfer Data into the CGRAM Buffer $9C/98E4 A9 CB LDA #$CB ; Reset the address to $CB/A047 as before $9C/98E6 85 22 STA $22 $9C/98E8 A2 47 A0 LDX #$A047 $9C/98EB 86 20 STX $20 $9C/98ED A9 10 LDA #$10 ; Transfer #$10 Colors (which should be an all-pitchblack palette) $9C/98EF A2 20 00 LDX #$0020 ; Set it as third BG palette $9C/98F2 20 53 90 JSR $9053 ; Transfer Data into the CGRAM Buffer
$9C/98F5 A2 FE 01 LDX #$01FE ; BG1-H-Scroll: #$1FE $9C/98F8 8E 91 05 STX $0591 $9C/98FB A2 FF 01 LDX #$01FF ; BG1-V-Scroll: #$1FF $9C/98FE 8E 93 05 STX $0593 $9C/9901 A9 03 LDA #$03 ; BG1 Tiles are at $3000 in VRAM (BG2 Tiles at $0000) $9C/9903 8D 8F 05 STA $058F ; Store in Buffer register $9C/9906 A9 11 LDA #$11 ; BG3/4 Tiles are at $1000 in VRAM $9C/9908 8D 90 05 STA $0590 ; Store in Buffer register $9C/990B A9 70 LDA #$70 ; BG1 Tilemap at $7000 in VRAM $9C/990D 8D 8B 05 STA $058B ; Store in Buffer register $9C/9910 A9 01 LDA #$01 ; Show BG1 on Main Screen $9C/9912 8D A6 05 STA $05A6 ; Store in Buffer register $9C/9915 A9 29 LDA #$29 ; Mode 1 + BG3 priority, BG2 with big Tiles $9C/9917 8D 89 05 STA $0589 ; Store in Buffer register $9C/991A A9 80 LDA #$80 ; Settings for $2115 for the upcoming VRAM DMA $9C/991C 85 0E STA $0E $9C/991E A0 00 70 LDY #$7000 ; VRAM destination: $7000 (BG1 Tilemap) $9C/9921 A2 40 03 LDX #$0340 ; Transfer $0340 Bytes $9C/9924 86 0C STX $0C $9C/9926 A2 00 E0 LDX #$E000 ; Source Address: $7F/E000 $9C/9929 A9 7F LDA #$7F $9C/992B 22 24 9F 80 JSL $809F24 ; Sets up and executes a DMA from $7F/E000 to VRAM $7000 $9C/992F 7B TDC ; Clear 16-bit A $9C/9930 AA TAX ; Clear X $9C/9931 8E 99 05 STX $0599 ; ??? $9C/9934 A9 78 LDA #$78 ; BG2 Tilemap at $7800 $9C/9936 8D 8C 05 STA $058C ; Store in Buffer register $9C/9939 A9 74 LDA #$74 ; BG3 Tilemap at $7400 $9C/993B 8D 8D 05 STA $058D ; Store in Buffer register $9C/993E A9 15 LDA #$15 ; Show BG1-3 + Sprites on Main Screen $9C/9940 8D A6 05 STA $05A6 ; Store in Buffer register $9C/9943 A9 02 LDA #$02 ; Show BG2 on Subscreen $9C/9945 8D A7 05 STA $05A7 ; Store in Buffer register $9C/9948 A9 04 LDA #$04 ; ??? $9C/994A 8D AB 05 STA $05AB ; ??? $9C/994D A9 10 LDA #$10 ; ??? $9C/994F 8D A6 17 STA $17A6 ; ??? $9C/9952 9C A7 17 STZ $17A7 ; ??? $9C/9955 A9 CB LDA #$CB ; Reset the address to $CB/A047 as before $9C/9957 85 22 STA $22 $9C/9959 A2 47 A0 LDX #$A047 $9C/995C 86 20 STX $20 $9C/995E A9 9C LDA #$9C ; Setup 24-bit addresss in $23: $9C/DEA2 $9C/9960 85 25 STA $25 $9C/9962 A2 A2 DE LDX #$DEA2 $9C/9965 86 23 STX $23 $9C/9967 22 14 AA 83 JSL $83AA14 ; ??? $9C/996B 9C 9C 17 STZ $179C ; ??? $9C/996E 9C 9D 17 STZ $179D ; ??? $9C/9971 EE C0 05 INC $05C0 ; ??? $9C/9974 60 RTS
$9C/9B15 Decompress Data and transfer it to VRAM in a Row
This subroutine decompresses and transfers data to VRAM and can do this in a row.
It has to receive the address of a list of data to do, this list has to be structured this way:
3 bytes - 24-bit address for the temp store of the decompressed data 3 bytes - 24-bit address of the compressed data 2 bytes - VRAM destination / VRAM DMA transfer leave-out flag
If as VRAM destination you have $8000, the VRAM DMA gets left out. If after any of these 8 byte entries there is a $FFFF, this subroutine gets exited.
When this subroutine is called, Y contains the address of the data list - the Data Bank has to be set to the list's bank.
$9C/9B15 B9 02 00 LDA $0002,y ; Load the 1st 3 bytes and set them as store address of the decomp subroutine $9C/9B18 85 22 STA $22 $9C/9B1A BE 00 00 LDX $0000,y $9C/9B1D 86 20 STX $20 $9C/9B1F C8 INY ; Increment the Load Index thrice $9C/9B20 C8 INY $9C/9B21 C8 INY $9C/9B22 B9 02 00 LDA $0002,y ; Load next three bytes - the address of the compressed data $9C/9B25 BE 00 00 LDX $0000,y $9C/9B28 C8 INY ; Increment the Load Index thrice $9C/9B29 C8 INY $9C/9B2A C8 INY $9C/9B2B 5A PHY ; Buffer Load Index on Stack $9C/9B2C 22 E5 F9 81 JSL $81F9E5 ; Decompress data $9C/9B30 7A PLY ; Restore Load Index $9C/9B31 A6 0E LDX $0E ; Load size of decompressed data... $9C/9B33 86 0C STX $0C ; ... set it as bytes to transfer $9C/9B35 A9 80 LDA #$80 ; VRAM settings ($2115) $9C/9B37 85 0E STA $0E $9C/9B39 BE 00 00 LDX $0000,y ; Load next two bytes (VRAM destination) $9C/9B3C C8 INY ; Increment the Load Index twice $9C/9B3D C8 INY $9C/9B3E 5A PHY ; Buffer Load Index on Stack $9C/9B3F 9B TXY ; Transfer VRAM destination to Y (for the upcoming VRAM DMA subroutine) $9C/9B40 C0 00 80 CPY #$8000 ; If "VRAM Destination" is $8000, leave out the VRAM DMA $9C/9B43 F0 08 BEQ $08 ; [$9B4D] $9C/9B45 A6 20 LDX $20 ; Pick up the decrompession address as source address for the VRAM DMA $9C/9B47 A5 22 LDA $22 $9C/9B49 22 24 9F 80 JSL $809F24 ; Long Jump to VRAM DMA $9C/9B4D 7A PLY ; Restore Load Index $9C/9B4E BE 00 00 LDX $0000,y ; Load next double byte $9C/9B51 E0 FF FF CPX #$FFFF ; Look if there is the End-signal $9C/9B54 D0 BF BNE $BF ; [$9B15] Loop if not $9C/9B56 60 RTS
$9C/9B57 Data List for $9C/9B15
This is a list of compressed data for the subroutine at $9C/9B15 to decompress and transfer to VRAM.
00 20 7E BB BF DF 00 10 ; Sky Tilemap 00 20 7E 53 BC DF 00 1C ; Intro Japanese text Tilemap 00 20 7E 63 B2 DF 00 70 ; Part of the Sky Tileset 00 20 7E 80 9F DF 00 60 ; Part of the Sky Tileset 00 20 7E EB 8B DF 00 50 ; Part of the Sky Tileset 00 20 7E 45 C5 DF 00 14 ; Quest Logo Tilemap 00 20 7E DC C5 DF 00 18 ; "Quest Presents" Tilemap 00 20 7E 6E C6 DF 00 0C ; Hermit Logo Tilemap 00 20 7E 07 E9 DE 00 30 ; Part of Intro Japanese text Tileset 00 40 7E 3B FD DE 00 40 ; Part of Intro Japanese text Tileset/Quest/Hermet/"Quest Presents" Tileset 00 94 7F 20 CD DF 00 80 ; ??? (Don't transfer to VRAM) FF FF
$9C/9C64 Screen fade in
$9C/9C64 AD 87 05 LDA $0587 ; Check if Screen Brightness is on maximum or FBLANK is active $9C/9C67 C9 0F CMP #$0F $9C/9C69 90 01 BCC $01 ; [$9C6C] Exit if it is $9C/9C6B 60 RTS $9C/9C6C A9 01 LDA #$01 ; Set Screen Fade In Flag $9C/9C6E 8D C2 05 STA $05C2 $9C/9C71 22 6A 8D 80 JSL $808D6A ; Turn Brightness higher if not maximum $9C/9C75 22 8A A1 80 JSL $80A18A ; Wait for NMI $9C/9C79 18 CLC $9C/9C7A 60 RTS
$9C/9C7B ? Intro Text Shadow effect (and probably more?)
This subroutine is called from $9C/8BA7. This is during the Startup of the game, where Japanese Vertical Text appears over a cloudy background. This subroutine calculates a proper shadow effect for that text. When this subroutine is called, at $7E/2000 is still the decompressed tiles for the text itself (in-game shown in white on BG1). This subroutine turns that graphic data into that shadow for BG3.
$9C/9C7B C2 20 REP #$20 ; 16 Bit A $9C/9C7D 7B TDC ; Clear A, X, Y $9C/9C7E AA TAX $9C/9C7F A8 TAY $9C/9C80 F4 00 7E PEA $7E00 ; Set Data Bank to $7E $9C/9C83 AB PLB $9C/9C84 AB PLB $9C/9C85 A9 08 00 LDA #$0008 A:0000 X:0000 Y:0000 P:envmxdizC $9C/9C88 85 00 STA $00 [$00:0000] A:0008 X:0000 Y:0000 P:envmxdizC $9C/9C8A BD 00 20 LDA $2000,x[$7E:2000] A:0008 X:0000 Y:0000 P:envmxdizC $9C/9C8D 1D 10 20 ORA $2010,x[$7E:2010] A:0000 X:0000 Y:0000 P:envmxdiZC $9C/9C90 99 00 20 STA $2000,y[$7E:2000] A:0000 X:0000 Y:0000 P:envmxdiZC $9C/9C93 E8 INX A:0000 X:0000 Y:0000 P:envmxdiZC $9C/9C94 E8 INX A:0000 X:0001 Y:0000 P:envmxdizC $9C/9C95 C8 INY A:0000 X:0002 Y:0000 P:envmxdizC $9C/9C96 C8 INY A:0000 X:0002 Y:0001 P:envmxdizC $9C/9C97 C6 00 DEC $00 [$00:0000] A:0000 X:0002 Y:0002 P:envmxdizC $9C/9C99 D0 EF BNE $EF [$9C8A] A:0000 X:0002 Y:0002 P:envmxdizC $9C/9C9B 8A TXA A:0000 X:0010 Y:0010 P:envmxdiZC $9C/9C9C 18 CLC A:0010 X:0010 Y:0010 P:envmxdizC $9C/9C9D 69 10 00 ADC #$0010 A:0010 X:0010 Y:0010 P:envmxdizc $9C/9CA0 AA TAX A:0020 X:0010 Y:0010 P:envmxdizc $9C/9CA1 C0 00 14 CPY #$1400 A:0020 X:0020 Y:0010 P:envmxdizc $9C/9CA4 D0 DF BNE $DF [$9C85] A:0020 X:0020 Y:0010 P:eNvmxdizc $9C/9CA6 4B PHK ; Set Data Bank to $9C $9C/9CA7 AB PLB $9C/9CA8 E2 20 SEP #$20 ; 8 Bit A $9C/9CAA 60 RTS
$9C/9CAB Replace three colors in several palettes
This subroutine replaces three colors in several palettes
$9C/9CAB A0 06 00 LDY #$0006 ; Set up the Loop Counter $9C/9CAE A2 42 01 LDX #$0142 ; Where to store in CGRAM buffer (sprite palettes) $9C/9CB1 A9 03 LDA #$03 ; Number of colors $9C/9CB3 5A PHY ; Push Y on the counter, because Y needs to be used in the upcoming Subroutine $9C/9CB4 DA PHX ; Buffer the start point where to store $9C/9CB5 20 53 90 JSR $9053 ; Transfer Data into the CGRAM Buffer $9C/9CB8 FA PLX ; Restore the start point where to store $9C/9CB9 7A PLY ; Restore loop counter $9C/9CBA 88 DEY ; Decrement counter $9C/9CBB F0 14 BEQ $14 ; [$9CD1] Exit if counter reached zero $9C/9CBD C2 20 REP #$20 $9C/9CBF A5 20 LDA $20 ; Load Data Source Address $9C/9CC1 18 CLC ; Increase the Address (6 bytes were transfered, so increase by 6) $9C/9CC2 69 06 00 ADC #$0006 $9C/9CC5 85 20 STA $20 ; Store back $9C/9CC7 8A TXA ; Add #$20 to the start point where to store - point at the next palette $9C/9CC8 18 CLC $9C/9CC9 69 20 00 ADC #$0020 $9C/9CCC AA TAX ; Transfer back to X $9C/9CCD E2 20 SEP #$20 $9C/9CCF 80 E0 BRA $E0 ; [$9CB1] $9C/9CD1 60 RTS
$9C/9CD2 ?
$9C/9CD2 AF 4F FD 85 LDA $85FD4F[$85:FD4F] A:0001 X:9258 Y:0000 P:eNvMxdizC $9C/9CD6 49 15 EOR #$15 A:00EA X:9258 Y:0000 P:eNvMxdizC $9C/9CD8 1A INC A A:00FF X:9258 Y:0000 P:eNvMxdizC $9C/9CD9 F0 02 BEQ $02 [$9CDD] A:0000 X:9258 Y:0000 P:envMxdiZC
- code is missing here
$9C/9CDD 6B RTL A:0000 X:9258 Y:0000 P:envMxdiZC
$9C/9CDE Wait to the end of HBLANK, then FBLANK
$9C/9CDE A9 80 LDA #$80 $9C/9CE0 2C 12 42 BIT $4212 $9C/9CE3 70 FB BVS $FB ; [$9CE0] Wait for a HBLANK to start $9C/9CE5 2C 12 42 BIT $4212 $9C/9CE8 50 FB BVC $FB ; [$9CE5] Wait for a HBLANK to end $9C/9CEA 8D 00 21 STA $2100 ; FBLANK $9C/9CED 8D 87 05 STA $0587 ; Update $2100 Buffer 1 $9C/9CF0 8D 6A 05 STA $056A ; Update $2100 Buffer 2 $9C/9CF3 9C 2C 21 STZ $212C ; Remove all Main Screen Designations $9C/9CF6 9C 2D 21 STZ $212D ; Remove all Subscreen Designations $9C/9CF9 60 RTS
$9C/C598 Test SRAM and store in it
$9C/C598 7B TDC ; Clear 16-bit A $9C/C599 AA TAX ; Clear X $9C/C59A BF CA C5 9C LDA $9CC5CA,x ; Transfer the ASCII-Code "#T-O" in SRAM $9C/C59E 9F 00 00 70 STA $700000,x $9C/C5A2 E8 INX $9C/C5A3 E0 04 00 CPX #$0004 $9C/C5A6 D0 F2 BNE $F2 ; [$C59A] $9C/C5A8 BF CA C5 9C LDA $9CC5CA,x ; Test if the ASCII-Code is in SRAM $9C/C5AC DF 00 00 70 CMP $700000,x $9C/C5B0 D0 07 BNE $07 [$C5B9] A:0043 X:0004 Y:0000 P:eNvMxdizc $9C/C5B2 E8 INX ; MANUALLY DISASSEMBLED LINE $9C/C5B3 E0 08 00 CPX #$0008 ; MANUALLY DISASSEMBLED LINE $9C/C5B6 D0 F0 BNE $F0 ; [$C5A8] MANUALLY DISASSEMBLED LINE $9C/C5B8 6B RTL ; MANUALLY DISASSEMBLED LINE $9C/C5B9 7B TDC ; Clear 16-bit A $9C/C5BA AA TAX ; Clear X $9C/C5BB BF D2 C5 9C LDA $9CC5D2,x ; Transfer the ASCII-Code "GRE " in SRAM $9C/C5BF 9F 04 00 70 STA $700004,x $9C/C5C3 E8 INX A:0047 X:0000 Y:0000 P:envMxdizc $9C/C5C4 E0 04 00 CPX #$0004 A:0047 X:0001 Y:0000 P:envMxdizc $9C/C5C7 D0 F2 BNE $F2 [$C5BB] A:0047 X:0001 Y:0000 P:eNvMxdizc $9C/C5C9 6B RTL A:0020 X:0004 Y:0000 P:envMxdiZC $9C/C5CA 23 54 2D 4F ASCII-Code for "#T-O" $9C/C5CE 43 4F 4D 50 ASCII-Code for "COMP" $9C/C5D2 47 52 45 20 ASCII-Code for "GRE "
$9C/C7D3 Stuff with the NES-Style Controller Registers
$9C/C7D3 08 PHP ; Push Flag Register $9C/C7D4 E2 20 SEP #$20 $9C/C7D6 A9 00 LDA #$00 ; Deactivate NMI and Auto-Joypad Read $9C/C7D8 8F 00 42 00 STA $004200 $9C/C7DC A9 01 LDA #$01 ; The NES-style Joypad Access... Doin' some latchin' $9C/C7DE 8F 16 40 00 STA $004016 $9C/C7E2 A9 00 LDA #$00 $9C/C7E4 8F 16 40 00 STA $004016 $9C/C7E8 85 00 STA $00 ; ??? $9C/C7EA 85 01 STA $01 ; ??? $9C/C7EC 85 02 STA $02 ; ??? $9C/C7EE 85 03 STA $03 ; ??? $9C/C7F0 A2 08 00 LDX #$0008 ; ??? $9C/C7F3 AF 17 40 00 LDA $004017 ; ??? $9C/C7F7 4A LSR A ; ??? $9C/C7F8 26 01 ROL $01 ; ??? $9C/C7FA CA DEX ; ??? $9C/C7FB D0 F6 BNE $F6 ; ??? $9C/C7FD A2 08 00 LDX #$0008 ; ??? $9C/C800 AF 17 40 00 LDA $004017 ; ??? $9C/C804 4A LSR A ; ??? $9C/C805 26 00 ROL $00 ; ??? $9C/C807 CA DEX ; ??? $9C/C808 D0 F6 BNE $F6 ; ??? $9C/C80A A2 08 00 LDX #$0008 ; ??? $9C/C80D AF 17 40 00 LDA $004017 ; ??? $9C/C811 4A LSR A ; ??? $9C/C812 26 02 ROL $02 ; ??? $9C/C814 CA DEX ; ??? $9C/C815 D0 F6 BNE $F6 ; ??? $9C/C817 A9 81 LDA #$81 ; Reactivate NMI and Auto Joypad Read $9C/C819 8F 00 42 00 STA $004200 $9C/C81D 28 PLP ; Restore Flag Register $9C/C81E 60 RTS
Bank $9D
$9D/9FE4 Clear BG3 Tilemap Buffer
This subroutine writes an empty tilemap for BG3 in WRAM. It writes at 7E/A800 "$03EE" for $800 bytes and transfers this to VRAM at $3C00, where the BG3 Tilemap in many/most of the cases is located. "$03EE" is of course an empty tile - "$0000" is used by some sprite tiles.
This is about the same as the subroutine at $82/B1DA, but the other one transfers this to VRAM in the same move, but this one only does the preparation for this in WRAM.
$9D/9FE4 8B PHB ; Buffer Data Bank Register on Stack $9D/9FE5 A9 7E LDA #$7E ; Set Data Bank to $7E $9D/9FE7 48 PHA $9D/9FE8 AB PLB $9D/9FE9 C2 20 REP #$20 $9D/9FEB A2 00 08 LDX #$0800 ; Write "$03EE" at $7E/A800 and onwards for #$0800 times $9D/9FEE A0 00 A8 LDY #$A800 $9D/9FF1 A9 EE 03 LDA #$03EE $9D/9FF4 22 C8 9D 80 JSL $809DC8 $9D/9FF8 E2 20 SEP #$20 A:03EE X:0000 Y:B000 P:envmxdiZc $9D/9FFA AB PLB ; Restore Data Bank $9D/9FFB 6B RTL
$9D/A998 ?
$9D/A998 8B PHB ; Buffer Data Bank Register on Stack $9D/A999 4B PHK ; Set Data Bank to $9D $9D/A99A AB PLB $9D/A99B 22 C4 F3 81 JSL $81F3C4 ; Fade Screen out $9D/A99F 22 4A A1 80 JSL $80A14A ; Deactivate NMI, Auto-Joypad and HDMAs $9D/A9A3 9C 36 00 STZ $0036 ; ??? $9D/A9A6 22 6B B6 80 JSL $80B66B ; Clear Registers, clear WRAM Bank $7F $9D/A9AA 22 45 B5 80 JSL $80B545 ; Clear Graphic Setup Registers $9D/A9AE 22 C5 B5 80 JSL $80B5C5 ; ??? Clears some values $9D/A9B2 22 B6 A1 80 JSL $80A1B6 ; Write Executable Code in WRAM $9D/A9B6 A9 01 LDA #$01 ; DEACTIVATE MASK WINDOWS $9D/A9B8 8F 26 21 00 STA $002126 ; Set Windows Left Positions to 1 $9D/A9BC 8F 28 21 00 STA $002128 $9D/A9C0 7B TDC ; Set Windows Right Positions to 0 $9D/A9C1 8F 27 21 00 STA $002127 $9D/A9C5 8F 29 21 00 STA $002129 $9D/A9C9 A9 00 LDA #$00 A:0000 X:05ED Y:0000 P:envMxdiZC $9D/A9CB 22 A5 9B 9B JSL $9B9BA5 ; (Decompress and) Transfer graphic data sets to VRAM $9D/A9CF A9 01 LDA #$01 A:FFFF X:0500 Y:9C60 P:eNvMxdizC $9D/A9D1 22 A5 9B 9B JSL $9B9BA5 ; (Decompress and) Transfer graphic data sets to VRAM $9D/A9D5 A9 03 LDA #$03 A:FFFF X:0500 Y:9C60 P:eNvMxdizC $9D/A9D7 85 A4 STA $A4 [$00:00A4] A:FF03 X:0500 Y:9C60 P:envMxdizC $9D/A9D9 A9 00 LDA #$00 A:FF03 X:0500 Y:9C60 P:envMxdizC $9D/A9DB 85 A5 STA $A5 [$00:00A5] A:FF00 X:0500 Y:9C60 P:envMxdiZC $9D/A9DD A9 00 LDA #$00 A:FF00 X:0500 Y:9C60 P:envMxdiZC $9D/A9DF 22 A4 9C 9B JSL $9B9CA4[$9B:9CA4] A:FF00 X:0500 Y:9C60 P:envMxdiZC $9D/A9E3 A2 00 00 LDX #$0000 $9D/A9E6 8E 91 05 STX $0591 ; Reset BG1 H-Scroll $9D/A9E9 8E 93 05 STX $0593 ; Reset BG1 V-Scroll $9D/A9EC 8E 95 05 STX $0595 ; Reset BG2 H-Scroll $9D/A9EF 8E 97 05 STX $0597 ; Reset BG2 V-Scroll $9D/A9F2 8E 99 05 STX $0599 ; Reset BG3 H-Scroll $9D/A9F5 8E 9B 05 STX $059B ; Reset BG3 V-Scroll $9D/A9F8 9C 0C 42 STZ $420C ; Disable all HDMAs... $9D/A9FB 9C B0 05 STZ $05B0 ; ... and clear $420C buffer $9D/A9FE 22 00 80 86 JSL $868000[$86:8000] A:1200 X:0000 Y:0200 P:envMxdiZc $9D/AA02 A2 FF FF LDX #$FFFF A:FFFF X:FFFE Y:0200 P:eNvMxdizc $9D/AA05 8E 3D 00 STX $003D [$9D:003D] A:FFFF X:FFFF Y:0200 P:eNvMxdizc $9D/AA08 22 01 BE 9E JSL $9EBE01 ; Clear OAM Buffers $9D/AA0C 22 E4 9F 9D JSL $9D9FE4[$9D:9FE4] A:FF00 X:0100 Y:0020 P:envMxdizC $9D/AA10 22 36 E8 81 JSL $81E836[$81:E836] A:03EE X:0000 Y:B000 P:eNvMxdizc $9D/AA14 22 49 E8 81 JSL $81E849[$81:E849] A:03EE X:FFFF Y:B000 P:eNvMxdizc $9D/AA18 22 27 A1 80 JSL $80A127 ; Activate NMI and Auto-Joypad Read $9D/AA1C 22 62 A1 80 JSL $80A162 ; Enable VBLANK IRQ $9D/AA20 AB PLB ; Restore Bank $9D/AA21 6B RTL
$9D/AE67 Deactivate Mask Windows
This sets the left position of the Mask Windows to 1 and the right positions to 0, which deactivates the windows.
$9D/AE67 A9 01 LDA #$01 ; Set Windows Left Positions to 1 $9D/AE69 8F 26 21 00 STA $002126 $9D/AE6D 8F 28 21 00 STA $002128 $9D/AE71 7B TDC ; Set Windows Right Positions to 0 $9D/AE72 8F 27 21 00 STA $002127 $9D/AE76 8F 29 21 00 STA $002129 $9D/AE7A 6B RTL
Bank $9E
$9E/99CE 8B PHB ; Buffer Data Bank on Stack $9E/99CF A9 80 LDA #$80 ; Set Data Bank to $80 $9E/99D1 48 PHA $9E/99D2 AB PLB $9E/99D3 D4 04 PEI ($04) ; Buffer $04/$05 on Stack $9E/99D5 A6 39 LDX $39 [$00:0039] A:0080 X:0006 Y:0006 P:eNvMxdizC $9E/99D7 BC D6 1C LDY $1CD6,x[$80:1CDC] A:0080 X:0006 Y:0006 P:envMxdizC $9E/99DA 84 00 STY $00 [$00:0000] A:0080 X:0006 Y:0204 P:envMxdizC $9E/99DC 22 B6 8A 82 JSL $828AB6[$82:8AB6] A:0080 X:0006 Y:0204 P:envMxdizC $9E/99E0 B0 7A BCS $7A [$9A5C] A:0004 X:0006 Y:0204 P:eNvMxdizc $9E/99E2 A5 02 LDA $02 [$00:0002] A:0004 X:0006 Y:0204 P:eNvMxdizc $9E/99E4 9D D6 1C STA $1CD6,x[$80:1CDC] A:0004 X:0006 Y:0204 P:envMxdizc $9E/99E7 A5 03 LDA $03 [$00:0003] A:0004 X:0006 Y:0204 P:envMxdizc $9E/99E9 9D D7 1C STA $1CD7,x[$80:1CDD] A:0002 X:0006 Y:0204 P:envMxdizc $9E/99EC 7A PLY A:0002 X:0006 Y:0204 P:envMxdizc $9E/99ED 84 04 STY $04 [$00:0004] A:0002 X:0006 Y:020B P:envMxdizc $9E/99EF A5 04 LDA $04 [$00:0004] A:0002 X:0006 Y:020B P:envMxdizc $9E/99F1 C9 FF CMP #$FF A:000B X:0006 Y:020B P:envMxdizc $9E/99F3 F0 06 BEQ $06 [$99FB] A:000B X:0006 Y:020B P:envMxdizc $9E/99F5 9D C6 1D STA $1DC6,x[$80:1DCC] A:000B X:0006 Y:020B P:envMxdizc $9E/99F8 18 CLC A:000B X:0006 Y:020B P:envMxdizc $9E/99F9 80 1C BRA $1C [$9A17] A:000B X:0006 Y:020B P:envMxdizc $9E/9A17 7B TDC A:000B X:0006 Y:020B P:envMxdizc $9E/9A18 2A ROL A A:0000 X:0006 Y:020B P:envMxdiZc $9E/9A19 1A INC A A:0000 X:0006 Y:020B P:envMxdiZc $9E/9A1A EB XBA A:0001 X:0006 Y:020B P:envMxdizc $9E/9A1B BC 3E 1E LDY $1E3E,x[$80:1E44] A:0100 X:0006 Y:020B P:envMxdiZc $9E/9A1E B9 03 06 LDA $0603,y[$80:0609] A:0100 X:0006 Y:0006 P:envMxdizc $9E/9A21 C9 06 CMP #$06 A:0101 X:0006 Y:0006 P:envMxdizc $9E/9A23 B0 04 BCS $04 [$9A29] A:0101 X:0006 Y:0006 P:eNvMxdizc $9E/9A25 EB XBA A:0101 X:0006 Y:0006 P:eNvMxdizc $9E/9A26 99 03 06 STA $0603,y[$80:0609] A:0101 X:0006 Y:0006 P:envMxdizc $9E/9A29 BD D6 1C LDA $1CD6,x[$80:1CDC] A:0101 X:0006 Y:0006 P:envMxdizc $9E/9A2C 99 04 0A STA $0A04,y[$80:0A0A] A:0104 X:0006 Y:0006 P:envMxdizc $9E/9A2F BD D7 1C LDA $1CD7,x[$80:1CDD] A:0104 X:0006 Y:0006 P:envMxdizc $9E/9A32 99 44 0A STA $0A44,y[$80:0A4A] A:0102 X:0006 Y:0006 P:envMxdizc $9E/9A35 BD C6 1D LDA $1DC6,x[$80:1DCC] A:0102 X:0006 Y:0006 P:envMxdizc $9E/9A38 0A ASL A A:010B X:0006 Y:0006 P:envMxdizc $9E/9A39 99 84 0A STA $0A84,y[$80:0A8A] A:0116 X:0006 Y:0006 P:envMxdizc $9E/9A3C B9 03 07 LDA $0703,y[$80:0709] A:0116 X:0006 Y:0006 P:envMxdizc $9E/9A3F 29 BF AND #$BF A:0146 X:0006 Y:0006 P:envMxdizc $9E/9A41 99 03 07 STA $0703,y[$80:0709] A:0106 X:0006 Y:0006 P:envMxdizc $9E/9A44 BD 6E 1B LDA $1B6E,x[$80:1B74] A:0106 X:0006 Y:0006 P:envMxdizc $9E/9A47 4A LSR A A:0101 X:0006 Y:0006 P:envMxdizc $9E/9A48 90 08 BCC $08 [$9A52] A:0100 X:0006 Y:0006 P:envMxdiZC $9E/9A4A B9 03 07 LDA $0703,y[$80:0709] A:0100 X:0006 Y:0006 P:envMxdiZC $9E/9A4D 09 40 ORA #$40 A:0106 X:0006 Y:0006 P:envMxdizC $9E/9A4F 99 03 07 STA $0703,y[$80:0709] A:0146 X:0006 Y:0006 P:envMxdizC $9E/9A52 A9 01 LDA #$01 A:0146 X:0006 Y:0006 P:envMxdizC $9E/9A54 99 43 08 STA $0843,y[$80:0849] A:0101 X:0006 Y:0006 P:envMxdizC $9E/9A57 BB TYX A:0101 X:0006 Y:0006 P:envMxdizC $9E/9A58 22 9C 99 80 JSL $80999C[$80:999C] A:0101 X:0006 Y:0006 P:envMxdizC $9E/9A5C AB PLB ; Restore Data Bank from Stack $9E/9A5D 6B RTL
$9E/9B8F ?
$9E/9B8F A2 00 00 LDX #$0000 A:00C2 X:00C2 Y:3782 P:envMxdizc $9E/9B92 BD AE 17 LDA $17AE,x[$7E:17AE] A:00C2 X:0000 Y:3782 P:envMxdiZc $9E/9B95 F0 0A BEQ $0A [$9BA1] A:0032 X:0000 Y:3782 P:envMxdizc $9E/9B97 E8 INX A:0032 X:0000 Y:3782 P:envMxdizc $9E/9B98 E8 INX A:0032 X:0001 Y:3782 P:envMxdizc $9E/9B99 E0 28 00 CPX #$0028 A:0032 X:0002 Y:3782 P:envMxdizc $9E/9B9C 90 F4 BCC $F4 [$9B92] A:0032 X:0002 Y:3782 P:eNvMxdizc
- code is missing here
$9E/9BA1 86 39 STX $39 [$00:0039] A:0000 X:0006 Y:3782 P:envMxdiZc $9E/9BA3 6B RTL A:0000 X:0006 Y:3782 P:envMxdiZc
$9E/9F4B Clear All Figures' Table Entries
$9E/9F4B 8B PHB ; Buffer Data Bank Register on Stack $9E/9F4C A9 00 LDA #$00 ; Set Data Bank to $00 $9E/9F4E 48 PHA $9E/9F4F AB PLB $9E/9F50 7B TDC ; Clear 16-bit A $9E/9F51 AA TAX ; Clear X $9E/9F52 86 39 STX $39 [$00:0039] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/9F54 86 3B STX $3B [$00:003B] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/9F56 86 91 STX $91 [$00:0091] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/9F58 8E E6 1E STX $1EE6 [$00:1EE6] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/9F5B 64 8E STZ $8E [$00:008E] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/9F5D 22 DA 9F 9E JSL $9E9FDA ; Clear Figure's Table Entries $9E/9F61 E8 INX ; Increment X twice - do next Figure $9E/9F62 E8 INX $9E/9F63 E0 28 00 CPX #$0028 ; Do all Figures $9E/9F66 B0 03 BCS $03 ; [$9F6B] Branch when everything is done $9E/9F68 4C 5D 9F JMP $9F5D ; Loop (why isn't this a Branch Command?) $9E/9F6B A2 00 00 LDX #$0000 ; Set up Loop Counter $9E/9F6E 22 AB A0 9E JSL $9EA0AB[$9E:A0AB] A:003E X:0000 Y:0001 P:envMxdiZC $9E/9F72 E8 INX ; Increment Loop Counter twice $9E/9F73 E8 INX $9E/9F74 E0 40 00 CPX #$0040 A:00FF X:0002 Y:0001 P:envMxdizC $9E/9F77 B0 03 BCS $03 ; [$9F7C] Branch when everything is done $9E/9F79 4C 6E 9F JMP $9F6E ; Loop (why isn't this a Branch Command?) $9E/9F7C AB PLB ; Restore Data Bank Register $9E/9F7D 6B RTL
$9E/9FDA Clear Figures' Table Entries
$9E/9FDA 9E AE 17 STZ $17AE,x ; Clear Figure's Graphic Set $9E/9FDD 9E AF 17 STZ $17AF,x ; Clear Figure's Class $9E/9FE0 9E D6 17 STZ $17D6,x ; Clear Figure's Alignment $9E/9FE3 9E D7 17 STZ $17D7,x ; Clear Figure's Element $9E/9FE6 9E FE 17 STZ $17FE,x ; Clear Figure's Level $9E/9FE9 9E FF 17 STZ $17FF,x ; Clear Figure's Exp $9E/9FEC C2 20 REP #$20 $9E/9FEE 9E 26 18 STZ $1826,x ; Clear Figure's Current HP $9E/9FF1 9E 4E 18 STZ $184E,x ; Clear Figure's Max HP $9E/9FF4 9E 76 18 STZ $1876,x ; Clear Figure's Current MP $9E/9FF7 9E 9E 18 STZ $189E,x ; Clear Figure's Max MP $9E/9FFA 9E C6 18 STZ $18C6,x ; Clear Figure's STR $9E/9FFD 9E EE 18 STZ $18EE,x ; Clear Figure's INT $9E/A000 9E 16 19 STZ $1916,x ; Clear Figure's AGI $9E/A003 9E 3E 19 STZ $193E,x ; Clear Figure's DEX $9E/A006 9E 66 19 STZ $1966,x ; Clear Figure's VIT $9E/A009 9E 8E 19 STZ $198E,x ; Clear Figure's MEN $9E/A00C E2 20 SEP #$20 $9E/A00E 9E B6 19 STZ $19B6,x ; Clear Figure's LUK $9E/A011 9E B7 19 STZ $19B7,x[$00:19B7] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A014 9E DE 19 STZ $19DE,x[$00:19DE] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A017 9E DF 19 STZ $19DF,x[$00:19DF] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A01A 9E 07 1A STZ $1A07,x[$00:1A07] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A01D 9E 2E 1A STZ $1A2E,x[$00:1A2E] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A020 9E 2F 1A STZ $1A2F,x ; Clear Figure's No. $9E/A023 9E 56 1A STZ $1A56,x[$00:1A56] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A026 9E 57 1A STZ $1A57,x[$00:1A57] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A029 9E 7E 1A STZ $1A7E,x ; Clear Figure's Equipment UL corner $9E/A02C 9E 7F 1A STZ $1A7F,x ; Clear Figure's Equipment UR corner $9E/A02F 9E A6 1A STZ $1AA6,x ; Clear Figure's Equipment LL corner $9E/A032 9E A7 1A STZ $1AA7,x ; Clear Figure's Equipment LR corner $9E/A035 9E CE 1A STZ $1ACE,x ; Clear Figure's Second Screen Item 1 $9E/A038 9E CF 1A STZ $1ACF,x ; Clear Figure's Second Screen Item 2 $9E/A03B 9E F6 1A STZ $1AF6,x ; Clear Figure's Second Screen Item 3 $9E/A03E 9E F7 1A STZ $1AF7,x ; Clear Figure's Second Screen Item 4 $9E/A041 9E 1E 1B STZ $1B1E,x ; Clear Figure's Bonus/Malus on Equipment UL corner $9E/A044 9E 1F 1B STZ $1B1F,x ; Clear Figure's Bonus/Malus on Equipment UR corner $9E/A047 9E 46 1B STZ $1B46,x ; Clear Figure's Bonus/Malus on Equipment LL corner $9E/A04A 9E 47 1B STZ $1B47,x ; Clear Figure's Bonus/Malus on Equipment LR corner $9E/A04D 9E 6E 1B STZ $1B6E,x[$00:1B6E] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A050 9E 6F 1B STZ $1B6F,x ; Clear Figure's AT $9E/A053 C2 20 REP #$20 $9E/A055 9E 96 1B STZ $1B96,x ; Clear Figure's Current WT $9E/A058 9E BE 1B STZ $1BBE,x[$00:1BBE] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A05B 9E E6 1B STZ $1BE6,x[$00:1BE6] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A05E 9E 0E 1C STZ $1C0E,x[$00:1C0E] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A061 9E 36 1C STZ $1C36,x[$00:1C36] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A064 9E 5E 1C STZ $1C5E,x[$00:1C5E] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A067 9E 86 1C STZ $1C86,x[$00:1C86] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A06A 9E AE 1C STZ $1CAE,x[$00:1CAE] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A06D E2 20 SEP #$20 A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A06F 9E D6 1C STZ $1CD6,x ; Clear Figure's Position from where the possible Movement is calculated - NW-SE-Axis $9E/A072 9E D7 1C STZ $1CD7,x ; Clear Figure's Position from where the possible Movement is calculated - NE-SW-Axis $9E/A075 C2 20 REP #$20 A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A077 9E FE 1C STZ $1CFE,x[$00:1CFE] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A07A E2 20 SEP #$20 A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A07C 9E 26 1D STZ $1D26,x[$00:1D26] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A07F 9E 27 1D STZ $1D27,x[$00:1D27] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A082 9E 4E 1D STZ $1D4E,x[$00:1D4E] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A085 C2 20 REP #$20 A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A087 9E 9E 1D STZ $1D9E,x[$00:1D9E] A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A08A E2 20 SEP #$20 A:0000 X:0000 Y:0001 P:envmxdiZc $9E/A08C 9E C6 1D STZ $1DC6,x[$00:1DC6] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A08F 9E C7 1D STZ $1DC7,x[$00:1DC7] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A092 9E EE 1D STZ $1DEE,x ; Clear Figure's Move $9E/A095 9E EF 1D STZ $1DEF,x[$00:1DEF] A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A098 A9 01 LDA #$01 A:0000 X:0000 Y:0001 P:envMxdiZc $9E/A09A 9D 16 1E STA $1E16,x[$00:1E16] A:0001 X:0000 Y:0001 P:envMxdizc $9E/A09D 9E 17 1E STZ $1E17,x[$00:1E17] A:0001 X:0000 Y:0001 P:envMxdizc $9E/A0A0 C2 20 REP #$20 $9E/A0A2 A9 3E 00 LDA #$003E A:0001 X:0000 Y:0001 P:envmxdizc $9E/A0A5 9D 3E 1E STA $1E3E,x[$00:1E3E] A:003E X:0000 Y:0001 P:envmxdizc $9E/A0A8 E2 20 SEP #$20 $9E/A0AA 6B RTL
$9E/A0AB ?
$9E/A0AB 9E 03 06 STZ $0603,x[$00:0603] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0AE 9E 04 06 STZ $0604,x[$00:0604] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0B1 9E 43 06 STZ $0643,x[$00:0643] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0B4 9E 44 06 STZ $0644,x[$00:0644] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0B7 9E 83 06 STZ $0683,x[$00:0683] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0BA 9E 84 06 STZ $0684,x[$00:0684] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0BD 9E C3 06 STZ $06C3,x[$00:06C3] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0C0 9E C4 06 STZ $06C4,x[$00:06C4] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0C3 9E 03 07 STZ $0703,x[$00:0703] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0C6 9E 04 07 STZ $0704,x[$00:0704] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0C9 9E 43 07 STZ $0743,x[$00:0743] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0CC 9E 43 07 STZ $0743,x[$00:0743] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0CF 9E 44 07 STZ $0744,x[$00:0744] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0D2 9E 83 07 STZ $0783,x[$00:0783] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0D5 9E 83 07 STZ $0783,x[$00:0783] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0D8 9E 84 07 STZ $0784,x[$00:0784] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0DB 9E C3 07 STZ $07C3,x[$00:07C3] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0DE C2 20 REP #$20 A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0E0 9E 03 08 STZ $0803,x[$00:0803] A:003E X:0000 Y:0001 P:envmxdiZC $9E/A0E3 E2 20 SEP #$20 A:003E X:0000 Y:0001 P:envmxdiZC $9E/A0E5 9E 43 08 STZ $0843,x[$00:0843] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0E8 9E 44 08 STZ $0844,x[$00:0844] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0EB 9E 83 08 STZ $0883,x[$00:0883] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0EE 9E 84 08 STZ $0884,x[$00:0884] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0F1 9E C3 08 STZ $08C3,x[$00:08C3] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0F4 9E C4 08 STZ $08C4,x[$00:08C4] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0F7 9E 03 09 STZ $0903,x[$00:0903] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0FA 9E 04 09 STZ $0904,x[$00:0904] A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0FD C2 20 REP #$20 A:003E X:0000 Y:0001 P:envMxdiZC $9E/A0FF 9E 43 09 STZ $0943,x[$00:0943] A:003E X:0000 Y:0001 P:envmxdiZC $9E/A102 9E 83 09 STZ $0983,x[$00:0983] A:003E X:0000 Y:0001 P:envmxdiZC $9E/A105 E2 20 SEP #$20 A:003E X:0000 Y:0001 P:envmxdiZC $9E/A107 A9 FF LDA #$FF A:003E X:0000 Y:0001 P:envMxdiZC $9E/A109 9D C3 09 STA $09C3,x[$00:09C3] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A10C 9D C4 09 STA $09C4,x[$00:09C4] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A10F 9E 03 0A STZ $0A03,x[$00:0A03] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A112 9E 03 0A STZ $0A03,x[$00:0A03] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A115 9E 04 0A STZ $0A04,x[$00:0A04] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A118 9E 43 0A STZ $0A43,x[$00:0A43] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A11B 9E 43 0A STZ $0A43,x[$00:0A43] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A11E 9E 44 0A STZ $0A44,x[$00:0A44] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A121 9E 83 0A STZ $0A83,x[$00:0A83] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A124 9E 83 0A STZ $0A83,x[$00:0A83] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A127 9E 84 0A STZ $0A84,x[$00:0A84] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A12A 9E C3 0A STZ $0AC3,x[$00:0AC3] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A12D 9E C3 0A STZ $0AC3,x[$00:0AC3] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A130 9E C4 0A STZ $0AC4,x[$00:0AC4] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A133 9E 03 0B STZ $0B03,x[$00:0B03] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A136 9E 03 0B STZ $0B03,x[$00:0B03] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A139 9E 04 0B STZ $0B04,x[$00:0B04] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A13C 9E 43 0B STZ $0B43,x[$00:0B43] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A13F 9E 43 0B STZ $0B43,x[$00:0B43] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A142 9E 44 0B STZ $0B44,x[$00:0B44] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A145 9E 83 0B STZ $0B83,x[$00:0B83] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A148 9E 84 0B STZ $0B84,x[$00:0B84] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A14B 9E C3 0B STZ $0BC3,x[$00:0BC3] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A14E 9E C4 0B STZ $0BC4,x[$00:0BC4] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A151 C2 20 REP #$20 A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A153 9E 03 0C STZ $0C03,x[$00:0C03] A:00FF X:0000 Y:0001 P:eNvmxdizC $9E/A156 E2 20 SEP #$20 A:00FF X:0000 Y:0001 P:eNvmxdizC $9E/A158 9E 43 0C STZ $0C43,x[$00:0C43] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A15B 9E 44 0C STZ $0C44,x[$00:0C44] A:00FF X:0000 Y:0001 P:eNvMxdizC $9E/A15E 6B RTL A:00FF X:0000 Y:0001 P:eNvMxdizC
$9E/BE01 Long Jump to Clear OAM Buffers
$9E/BE01 20 05 BE JSR $BE05 ; Clear OAM Buffers $9E/BE04 6B RTL
$9E/BE05 Clear OAM Buffers
$9E/BE05 A0 00 00 LDY #$0000 ; Clear Low Tables $9E/BE08 A9 E8 LDA #$E8 ; This is the value that puts the sprites so low they're invisible $9E/BE0A 99 01 01 STA $0101,y $9E/BE0D 99 21 03 STA $0321,y $9E/BE10 C8 INY $9E/BE11 C8 INY $9E/BE12 C8 INY $9E/BE13 C8 INY $9E/BE14 C0 00 02 CPY #$0200 $9E/BE17 90 F1 BCC $F1 ; [$BE0A] $9E/BE19 A0 00 00 LDY #$0000 ; Clear High Tables $9E/BE1C A9 00 LDA #$00 $9E/BE1E 99 00 03 STA $0300,y $9E/BE21 99 20 05 STA $0520,y $9E/BE24 C8 INY $9E/BE25 C0 20 00 CPY #$0020 $9E/BE28 90 F4 BCC $F4 ; [$BE1E] $9E/BE2A A2 00 01 LDX #$0100 ; Set OAM Buffer address to $100 $9E/BE2D 8E 45 05 STX $0545 $9E/BE30 EE 40 05 INC $0540 ; Set Flag for OAM Buffers $9E/BE33 60 RTS
Bank $CB
$CB/A047 Palettes
$CB/A047-$CB/A066 - Empty Palette $CB/A067-$CB/A086 - Palette used in the intro for the manufacturer's logos and the intro $CB/A087-$CB/A0A6 - Palette used in the intro for the manufacturer's logos and the intro
Bank $DE
$DE/E907 GAME INTRO Part of Japanese Text Tileset (Compressed)
Gets Decompressed with $9C/9B15
$DE/FD3B GAME INTRO Part of Japanese Text/Quest/Hermet/"Quest Presents" Tileset (Compressed)
Gets Decompressed with $9C/9B15
Bank $DF
$DF/8BEB GAME INTRO Part of Sky BG Tileset (Compressed)
Gets Decompressed with $9C/9B15
$DF/9F80 GAME INTRO Part of Sky BG Tileset (Compressed)
Gets Decompressed with $9C/9B15
$DF/B263 GAME INTRO Part of Sky BG Tileset (Compressed)
Gets Decompressed with $9C/9B15
$DF/BC53 GAME INTRO Japanese Text Tilemap (Compressed)
Gets Decompressed with $9C/9B15
$DF/BFBB GAME INTRO Sky BG Tilemap (Compressed)
Gets Decompressed with $9C/9B15
$DF/C545 GAME INTRO Quest Logo Tilemap (Compressed)
Gets Decompressed with $9C/9B15
$DF/C5DC GAME INTRO "Quest Presents" Tilemap (Compressed)
Gets Decompressed with $9C/9B15
$DF/C66E GAME INTRO Hermit Logo Tilemap (Compressed)
Gets Decompressed with $9C/9B15
$DF/CD20 GAME INTRO ??? (Compressed)
Gets Decompressed with $9C/9B15
Unknown Graphics Data, I think it is related to the Shadow Effect of he Vertical Japanese Text that appears above the Sky Background in the Game Intro
Internal Data for Tactics Ogre
| |
---|---|