Contra Bank 6 0x18000 - 0x1BFFF Mapper 1 (21 00) (0010 0001 0000 0000) -------- 18000: 06 Bank Number ---- 18001: Compressed Graphics Data - Code 0C (CDB bytes) 18CDC: Compressed Graphics Data - Code 0D (EFA bytes) 19BD6: Compressed Graphics Data - Code 0E (14A4 bytes) 1B07A: Compressed Graphics Data - Code 15 (E2 bytes) 1B15C: Compressed Graphics Data - Code 16 (106 bytes) ---- 1B262: Pointer table for Text Data (19 * 2 = 32 bytes) E1B2 -> 1B2E1 1 PLAYER E1B2 -> 1B2E1 1 PLAYER ECB2 -> 1B2EC 2 PLAYERS D3B2 -> 1B2D3 PLAY SELECT B4B3 -> 1B3B4 Palettes for Intro Screen (when guys appear) 56B3 -> 1B356 JUNGLE (never used) 33B3 -> 1B333 Palettes for Intro Screen (before guys appear) F8B2 -> 1B2F8 REST (player 1) 02B3 -> 1B302 REST (player 2) 0CB3 -> 1B30C HI 19B3 -> 1B319 1P 26B3 -> 1B326 2P 94B2 -> 1B294 STAGE 9EB2 -> 1B29E GAME OVER C2B2 -> 1B2C2 CONTINUE END AAB2 -> 1B2AA GAME OVER (player 1) B6B2 -> 1B2B6 GAME OVER (player 2) 56B3 -> 1B356 JUNGLE 60B3 -> 1B360 BASE1 6AB3 -> 1B36A WATERFALL 76B3 -> 1B376 BASE2 80B3 -> 1B380 SNOW FIELD 8DB3 -> 1B38D ENERGY ZONE 9BB3 -> 1B39B HANGAR A5B3 -> 1B3A5 ALIEN'S LAIR ---- Game Intro and Level Intro Text Data FE = end of text string FD = set PPU address using next 2 bytes 1B294: 22 0C 53 54 41 47 45 00 00 FE STAGE (A bytes) 1B29E: 22 2A 47 41 4D 45 00 4F 56 45 52 FE GAME OVER (C bytes) 1B2AA: 20 C2 47 41 4D 45 00 4F 56 45 52 FE GAME OVER (C bytes) 1B2B6: 20 D2 47 41 4D 45 00 4F 56 45 52 FE GAME OVER (C bytes) 1B2C2: 22 8C 43 4F 4E 54 49 4E 55 45 FD CONTINUE (B bytes) 22 CC 45 4E 44 FE END (6 bytes) 1B2D3: 22 8A 50 4C 41 59 00 53 45 4C 45 43 54 FE PLAY SELECT (E bytes) 1B2E1: 22 87 31 00 50 4C 41 59 45 52 FE 1 PLAYER (B bytes) 1B2EC: 22 C7 32 00 50 4C 41 59 45 52 53 FE 2 PLAYERS (C bytes) 1B2F8: 20 C2 52 45 53 54 00 00 00 FE REST (A bytes) 1B302: 20 D2 52 45 53 54 00 00 00 FE REST (A bytes) 1B30C: 21 2A 48 49 00 00 00 00 00 00 00 00 FE HI (D bytes) 1B319: 20 82 31 50 00 00 00 00 00 00 00 00 FE 1P (D bytes) 1B326: 20 92 32 50 00 00 00 00 00 00 00 00 FE 2P (D bytes) ---- 1B333: Palettes for Intro Screen (before guys appear) (12 bytes) 3F 00 0F PPU Address 3F00, load F bytes 10 28 16 0F 30 10 15 0F 10 28 38 0F 0F 0F 0F ---- 1B345: Palettes for Intro Guys (when they appear) (11 bytes) 0F 30 10 00 0F 30 38 28 0F 2C 1C 0C 0F 00 00 00 FE ---- 1B356: 22 4B 00 4A 55 4E 47 4C 45 FE JUNGLE (A bytes) 1B360: 22 4B 00 00 42 41 53 45 31 FE BASE1 (A bytes) 1B36A: 22 4B 57 41 54 45 52 46 41 4C 4C FE WATERFALL (C bytes) 1B376: 22 4B 00 00 42 41 53 45 32 FE BASE2 (A bytes) 1B380: 22 4B 53 4E 4F 57 00 46 49 45 4C 44 FE SNOW FIELD (D bytes) 1B38D: 22 4B 45 4E 45 52 47 59 00 5A 4F 4E 45 FE ENERGY ZONE (E bytes) 1B39B: 22 4B 00 48 41 4E 47 41 52 FE HANGAR (A bytes) 1B3A5: 22 4B 41 4C 49 45 4E F7 53 00 4C 41 49 52 FE ALIEN'S LAIR (F bytes) ---- 1B3B4: Palettes for Intro Screen (when guys appear) (13 bytes) 3F 00 PPU Address 3F00 0F 10 28 16 0F 30 10 15 0F 10 28 38 0F 30 36 26 FE ---- 1B3C7: B5 BA LDA $BA,X 1B3C9: 15 C8 ORA $C8,X ; Counter for Electrocution 1B3CB: D0 33 BNE $1B400 1B3CD: B5 B2 LDA $B2,X 1B3CF: F0 0A BEQ $1B3DB 1B3D1: B5 C2 LDA $C2,X 1B3D3: C9 03 CMP #$03 1B3D5: 90 04 BCC $1B3DB 1B3D7: C9 07 CMP #$07 1B3D9: 90 25 BCC $1B400 1B3DB: B5 AA LDA $AA,X ; Current Weapon Code 1B3DD: 29 0F AND #$0F ; keep bits .... xxxx 1B3DF: A8 TAY 1B3E0: A9 40 LDA #$40 ; A = 40 1B3E2: C0 01 CPY #$01 1B3E4: F0 04 BEQ $1B3EA 1B3E6: C0 04 CPY #$04 1B3E8: D0 06 BNE $1B3F0 1B3EA: 35 F1 AND $F1,X 1B3EC: D0 13 BNE $1B401 1B3EE: F0 04 BEQ $1B3F4 1B3F0: 35 F5 AND $F5,X 1B3F2: D0 0D BNE $1B401 1B3F4: B5 AC LDA $AC,X 1B3F6: 29 0F AND #$0F 1B3F8: C9 07 CMP #$07 1B3FA: B0 02 BCS $1B3FE 1B3FC: 69 01 ADC #$01 1B3FE: 95 AC STA $AC,X 1B400: 60 RTS ---- 1B401: 86 11 STX $11 1B403: 20 09B4 JSR $B409 1B406: A6 11 LDX $11 1B408: 60 RTS ---- 1B409: 84 08 STY $08 1B40B: B5 AA LDA $AA,X ; Current Weapon Code 1B40D: 4A LSR 1B40E: 4A LSR 1B40F: 4A LSR 1B410: 4A LSR 1B411: 29 01 AND #$01 ; keep bits .... ...x 1B413: 85 09 STA $09 ; Rapid Fire Flag 1B415: B5 C2 LDA $C2,X 1B417: B4 A0 LDY $A0,X 1B419: 84 0A STY $0A 1B41B: F0 0A BEQ $1B427 1B41D: C9 04 CMP #$04 1B41F: F0 04 BEQ $1B425 1B421: C9 05 CMP #$05 1B423: D0 02 BNE $1B427 1B425: A9 0B LDA #$0B ; A = 0B 1B427: 85 0B STA $0B 1B429: BD 3403 LDA $0334,X ; Player X Position on Screen 1B42C: 85 0C STA $0C 1B42E: BD 1A03 LDA $031A,X ; Player Y Position on Screen 1B431: 85 0D STA $0D 1B433: A5 08 LDA $08 1B435: A4 40 LDY $40 ; Outdoor/Indoor 1B437: 30 05 BMI $1B43E 1B439: F0 03 BEQ $1B43E 1B43B: 18 CLC 1B43C: 69 05 ADC #$05 1B43E: 20 57C8 JSR $C857 ---- 1B441: Pointer table for Weapon Routines (A * 2 = 14 bytes) 55B4 -> 1B455 Standard Weapon 6EB4 -> 1B46E M Weapon AEB4 -> 1B4AE F Weapon CAB4 -> 1B4CA S Weapon 08B5 -> 1B508 L Weapon Variant with R upgrade ? 60B4 -> 1B460 76B4 -> 1B476 B9B4 -> 1B4B9 CAB4 -> 1B4CA 08B5 -> 1B508 ---- Standard Weapon 1B455: 20 65B5 JSR $B565 1B458: D0 1B BNE $1B475 1B45A: 20 C4B5 JSR $B5C4 1B45D: 4C 9EB6 JMP $B69E ---- 1B460: 20 65B5 JSR $B565 1B463: D0 10 BNE $1B475 1B465: 20 52B6 JSR $B652 1B468: 20 A9B7 JSR $B7A9 1B46B: 4C B1B5 JMP $B5B1 ---- M Weapon 1B46E: 20 7CB4 JSR $B47C 1B471: F0 E7 BEQ $1B45A 1B473: A9 01 LDA #$01 ; A = 01 1B475: 60 RTS ---- 1B476: 20 7CB4 JSR $B47C 1B479: F0 EA BEQ $1B465 1B47B: 60 RTS ---- 1B47C: F6 AC INC $AC,X 1B47E: B5 AC LDA $AC,X 1B480: C9 60 CMP #$60 ; delay before pause between rafales 1B482: A0 08 LDY #$08 ; Y = 08 (delay between bullets) 1B484: 90 02 BCC $1B488 1B486: A0 0F LDY #$0F ; Y = 0F (delay between rafales) 1B488: 84 0F STY $0F 1B48A: 29 0F AND #$0F ; keep bits .... xxxx 1B48C: C5 0F CMP $0F 1B48E: 90 E3 BCC $1B473 1B490: B5 AC LDA $AC,X 1B492: 69 0F ADC #$0F 1B494: C9 70 CMP #$70 1B496: 90 02 BCC $1B49A 1B498: A9 00 LDA #$00 ; A = 00 1B49A: 29 F0 AND #$F0 ; keep bits xxxx .... 1B49C: 95 AC STA $AC,X 1B49E: A9 05 LDA #$05 ; A = 05 (Max Bullets on Screen for M Weapon) 1B4A0: 20 67B5 JSR $B567 1B4A3: D0 01 BNE $1B4A6 1B4A5: 60 RTS ---- 1B4A6: A4 11 LDY $11 1B4A8: A9 07 LDA #$07 ; A = 07 1B4AA: 99 AC00 STA $00AC,Y 1B4AD: 60 RTS ---- F Weapon 1B4AE: 20 65B5 JSR $B565 1B4B1: D0 C2 BNE $1B475 1B4B3: 20 5AB4 JSR $B45A 1B4B6: 4C E7B7 JMP $B7E7 ---- 1B4B9: 20 65B5 JSR $B565 1B4BC: D0 B7 BNE $1B475 1B4BE: 20 65B4 JSR $B465 1B4C1: 20 3BB8 JSR $B83B 1B4C4: A5 09 LDA $09 ; Rapid Fire Flag 1B4C6: 9D 5804 STA $0458,X 1B4C9: 60 RTS ---- S Weapon 1B4CA: A9 00 LDA #$00 ; A = 00 1B4CC: 85 17 STA $17 1B4CE: A9 09 LDA #$09 ; A = 09 (Max Bullets Total for S Weapon) 1B4D0: A2 06 LDX #$06 ; X = 06 1B4D2: 20 69B5 JSR $B569 1B4D5: D0 0B BNE $1B4E2 1B4D7: 20 E3B4 JSR $B4E3 1B4DA: E6 17 INC $17 1B4DC: A5 17 LDA $17 1B4DE: C9 05 CMP #$05 ; Max Bullets per Shot for S Weapon 1B4E0: 90 EC BCC $1B4CE 1B4E2: 60 RTS ---- 1B4E3: A5 17 LDA $17 ; Bullet Counter per Shot 1B4E5: 9D A804 STA $04A8,X 1B4E8: A4 40 LDY $40 ; Outdoor/Indoor (0 = Outdoor, 1 = Indoor) 1B4EA: 30 16 BMI $1B502 1B4EC: F0 14 BEQ $1B502 1B4EE: 20 52B6 JSR $B652 1B4F1: 20 A9B7 JSR $B7A9 1B4F4: BD C803 LDA $03C8,X 1B4F7: 9D 7804 STA $0478,X 1B4FA: A5 09 LDA $09 ; Rapid Fire Flag 1B4FC: 9D 8804 STA $0488,X 1B4FF: 4C B1B5 JMP $B5B1 ---- 1B502: 20 C4B5 JSR $B5C4 1B505: 4C 50B8 JMP $B850 ---- L Weapon 1B508: A9 01 LDA #$01 ; A = 01 1B50A: 85 09 STA $09 ; Rapid Fire Flag 1B50C: A0 0A LDY #$0A ; Y = 0A 1B50E: 8A TXA 1B50F: D0 02 BNE $1B513 1B511: A0 00 LDY #$00 ; Y = 00 1B513: 84 10 STY $10 1B515: A9 03 LDA #$03 ; A = 03 1B517: 85 00 STA $00 1B519: B5 F5 LDA $F5,X ; Controller 1/2 Buttons Pressed 1B51B: 29 40 AND #$40 ; keep bits .x.. .... (B Button) 1B51D: D0 0A BNE $1B529 1B51F: B9 8803 LDA $0388,Y 1B522: D0 BE BNE $1B4E2 1B524: C8 INY 1B525: C6 00 DEC $00 1B527: 10 F6 BPL $1B51F 1B529: A9 03 LDA #$03 ; A = 03 (number of laser "bullets") 1B52B: 85 00 STA $00 1B52D: A6 10 LDX $10 1B52F: 20 7CB5 JSR $B57C 1B532: 20 3CB5 JSR $B53C 1B535: E6 10 INC $10 1B537: C6 00 DEC $00 1B539: 10 F2 BPL $1B52D 1B53B: 60 RTS ---- $00 is the bullet number (3 down to 0) 1B53C: A4 00 LDY $00 1B53E: A5 40 LDA $40 ; Outdoor/Indoor (0 = Outdoor, 1 = Indoor) 1B540: F0 06 BEQ $1B548 1B542: 30 04 BMI $1B548 1B544: C8 INY 1B545: C8 INY 1B546: C8 INY 1B547: C8 INY 1B548: B9 5DB5 LDA $B55D,Y 1B54B: 9D 1804 STA $0418,X 1B54E: A5 40 LDA $40 ; Outdoor/Indoor (0 = Outdoor, 1 = Indoor) 1B550: F0 08 BEQ $1B55A 1B552: 30 06 BMI $1B55A 1B554: 20 52B6 JSR $B652 1B557: 4C A9B7 JMP $B7A9 ---- 1B55A: 4C 5AB4 JMP $B45A ---- 1B55D: Table for Laser "bullets" delays (8 bytes) 0A 07 04 01 Outdoor 07 05 03 01 Indoor ---- 1B565: A9 03 LDA #$03 ; A = 03 Max Number of Bullets on Screen for Standard and F Weapon 1B567: A2 0A LDX #$0A ; X = 0A 1B569: 85 00 STA $00 1B56B: A4 11 LDY $11 1B56D: D0 02 BNE $1B571 1B56F: A2 00 LDX #$00 ; X = 00 1B571: BD 8803 LDA $0388,X 1B574: F0 06 BEQ $1B57C 1B576: E8 INX 1B577: C6 00 DEC $00 1B579: 10 F6 BPL $1B571 1B57B: 60 RTS ---- 1B57C: A4 11 LDY $11 ; Temporary Storage for Player Index (0-1) 1B57E: A9 0F LDA #$0F ; A = 0F 1B580: 99 CE00 STA $00CE,Y 1B583: 20 E8BB JSR $BBE8 ; Initialize Bullet 1B586: 98 TYA 1B587: 9D 4804 STA $0448,X ; Bullet Owner (0-1) 1B58A: A5 08 LDA $08 ; Weapon Code 1B58C: 18 CLC 1B58D: 69 01 ADC #$01 1B58F: 9D 8803 STA $0388,X 1B592: A8 TAY 1B593: B9 A6B5 LDA $B5A6,Y ; Table for Weapon Sounds 1B596: 20 6BC1 JSR $C16B ; Play Sound 1B599: B9 ABB5 LDA $B5AB,Y ; Table for Weapon Bullet Types 1B59C: 9D 6803 STA $0368,X ; Player Bullet Tile Code 1B59F: A5 0B LDA $0B 1B5A1: 9D 2804 STA $0428,X 1B5A4: A9 00 LDA #$00 ; A = 00 1B5A6: 60 RTS ---- 1B5A7: 0A 0C 10 12 0E Table for Weapon Sounds (5 bytes) 1B5AB: 1E 1F 22 1F 00 Table for Weapon Bullet Types (5 bytes) ---- 1B5B1: A0 2A LDY #$2A ; Y = 2A 1B5B3: A5 08 LDA $08 1B5B5: C9 04 CMP #$04 1B5B7: F0 06 BEQ $1B5BF 1B5B9: A5 09 LDA $09 ; Rapid Fire Flag 1B5BB: F0 02 BEQ $1B5BF 1B5BD: A0 15 LDY #$15 ; Y = 15 1B5BF: 98 TYA 1B5C0: 9D 1804 STA $0418,X 1B5C3: 60 RTS ---- 1B5C4: A0 00 LDY #$00 ; Y = 00 1B5C6: A5 40 LDA $40 ; Outdoor/Indoor 1B5C8: F0 02 BEQ $1B5CC 1B5CA: A0 04 LDY #$04 ; Y = 04 1B5CC: A5 0A LDA $0A 1B5CE: F0 02 BEQ $1B5D2 1B5D0: C8 INY 1B5D1: C8 INY 1B5D2: B9 F2B5 LDA $B5F2,Y 1B5D5: 85 0E STA $0E 1B5D7: B9 F3B5 LDA $B5F3,Y 1B5DA: 85 0F STA $0F 1B5DC: A5 0B LDA $0B 1B5DE: 0A ASL 1B5DF: A8 TAY 1B5E0: B1 0E LDA ($0E),Y 1B5E2: 18 CLC 1B5E3: 65 0C ADC $0C 1B5E5: 9D C803 STA $03C8,X 1B5E8: C8 INY 1B5E9: B1 0E LDA ($0E),Y 1B5EB: 18 CLC 1B5EC: 65 0D ADC $0D 1B5EE: 9D B803 STA $03B8,X 1B5F1: 60 RTS ---- 1B5F2: Pointer table for Initial Bullet Offsets (4 * 2 = 8 bytes) FAB5 -> 1B5FA Outdoor 0EB6 -> 1B60E Outdoor - Jumping 26B6 -> 1B626 Indoor 3AB6 -> 1B63A Indoor - Jumping ---- 1B5FA: Initial Bullet Offset - Outdoor - On Ground (14 bytes) 05 E5 05 -1B Up 0D F0 0D -10 Up-Right 10 FB 10 -05 Right 0D 06 0D 06 Down-Right 10 09 10 09 Prone Facing Right F0 09 -10 09 Prone Facing Left F3 06 -0D 06 Down-Left F0 FB -10 -05 Left F3 F0 -0D -10 Up-Left FB E5 -05 -1B Down (impossible) ---- 1B60E: Initial Bullet Offset - Outdoor - Jumping (18 bytes) 00 F0 0F F1 10 00 0F 0F 00 10 00 10 F1 0F F0 00 F1 F1 00 F0 00 10 00 10 ---- 1B626: Initial Bullet Offsets - Indoor - On Ground (14 bytes) FF E8 0F F0 10 FA 0F 08 10 0B F0 0B F1 08 F0 FA F1 F0 FF E8 ---- 1B63A: Initial Bullet Offsets - Indoor - Jumping (18 bytes) 00 F0 0F F1 10 00 0F 0F 00 10 00 10 F1 0F F0 00 F1 F1 00 F0 00 F0 00 F0 ---- 1B652: A9 00 LDA #$00 ; A = 00 1B654: 85 0E STA $0E 1B656: A0 00 LDY #$00 ; Y = 00 1B658: A5 0A LDA $0A 1B65A: D0 16 BNE $1B672 1B65C: A0 F4 LDY #$F4 ; Y = F4 1B65E: C6 0E DEC $0E 1B660: A5 0B LDA $0B 1B662: C9 04 CMP #$04 1B664: F0 0C BEQ $1B672 1B666: C9 05 CMP #$05 1B668: F0 08 BEQ $1B672 1B66A: A0 E8 LDY #$E8 ; Y = E8 1B66C: B0 04 BCS $1B672 1B66E: A9 01 LDA #$01 ; A = 01 1B670: 85 0E STA $0E 1B672: 98 TYA 1B673: 18 CLC 1B674: 65 0D ADC $0D 1B676: 9D B803 STA $03B8,X 1B679: A5 0E LDA $0E 1B67B: 18 CLC 1B67C: 65 0C ADC $0C 1B67E: 9D C803 STA $03C8,X 1B681: C0 F4 CPY #$F4 1B683: D0 08 BNE $1B68D 1B685: BD 8803 LDA $0388,X 1B688: 09 80 ORA #$80 ; set bits x... .... 1B68A: 9D 8803 STA $0388,X 1B68D: A5 0A LDA $0A 1B68F: F0 0C BEQ $1B69D 1B691: BD B803 LDA $03B8,X 1B694: C9 98 CMP #$98 1B696: 90 05 BCC $1B69D 1B698: A9 98 LDA #$98 ; A = 98 1B69A: 9D B803 STA $03B8,X 1B69D: 60 RTS ---- 1B69E: A0 04 LDY #$04 ; Y = 04 1B6A0: A5 08 LDA $08 ; Weapon Code 1B6A2: C9 02 CMP #$02 ; 02 = F Weapon 1B6A4: F0 08 BEQ $1B6AE 1B6A6: A0 02 LDY #$02 ; Y = 02 1B6A8: C9 04 CMP #$04 ; 04 = L Weapon 1B6AA: F0 02 BEQ $1B6AE 1B6AC: A0 00 LDY #$00 ; Y = 00 1B6AE: A5 09 LDA $09 ; Rapid Fire Flag 1B6B0: F0 01 BEQ $1B6B3 1B6B2: C8 INY 1B6B3: 98 TYA 1B6B4: 0A ASL 1B6B5: A8 TAY 1B6B6: B9 DDB6 LDA $B6DD,Y 1B6B9: 85 01 STA $01 1B6BB: B9 DEB6 LDA $B6DE,Y 1B6BE: 85 02 STA $02 1B6C0: A5 0B LDA $0B 1B6C2: 0A ASL 1B6C3: 0A ASL 1B6C4: A8 TAY 1B6C5: B1 01 LDA ($01),Y 1B6C7: 9D 0804 STA $0408,X 1B6CA: C8 INY 1B6CB: B1 01 LDA ($01),Y 1B6CD: 9D E803 STA $03E8,X 1B6D0: C8 INY 1B6D1: B1 01 LDA ($01),Y 1B6D3: 9D F803 STA $03F8,X 1B6D6: C8 INY 1B6D7: B1 01 LDA ($01),Y 1B6D9: 9D D803 STA $03D8,X 1B6DC: 60 RTS ---- 1B6DD: Pointer table for Player Bullet Velocity (6 * 2 = C bytes) E9B6 -> B6E9 Standard, M and S Weapon - Normal 19B7 -> B719 Standard, M and S Weapon - Rapid Fire 19B7 -> B719 L Weapon - Normal 19B7 -> B719 L Weapon - Rapid Fire 79B7 -> B779 F Weapon - Normal 49B7 -> B749 F Weapon - Rapid Fire ---- 1B6E9: Player Bullet Velocity - Standard, M and S Weapon - Normal (30 bytes) 4 bytes per angle (2 bytes for X, 2 bytes for Y) C angles possible (should be 8) 00 00 FD 00 000 , -300 02 1F FD E1 21F , -21F 03 00 00 00 300 , 000 02 1F 02 1F 21F , 21F 03 00 00 00 300 , 000 FD 00 00 00 -300 , 000 FD E1 02 1F -21F , 21F FD 00 00 00 -300 , 000 FD E1 FD E1 -21F , -21F 00 00 FD 00 000 , -300 00 00 FD 00 000 , -300 00 00 03 00 000 , 300 Format: XX XX YY YY 00 00 X Velocity - 12h (high byte, low byte) FD 00 Y Velocity - 12h (high byte, low byte) 300 -> 768 decimal sin(45 deg) = 0.707 768 * 0.707 = 543 -> 21F hex ---- 1B719: Player Bullet Velocity - Standard, M and S Weapon - Rapid Fire (30 bytes) L Weapon uses this table for both normal and rapid fire 00 00 FC 00 000 , -400 02 D4 FD 2C 2D4 , -2D4 04 00 00 00 400 , 000 02 D4 02 D4 2D4 , 2D4 04 00 00 00 400 , 000 FC 00 00 00 FD 2C 02 D4 FC 00 00 00 FD 2C FD 2C 00 00 FC 00 00 00 FC 00 00 00 04 00 400 -> 1024 decimal sin(45 deg) = 0.707 1024 * 0.707 = 724 -> 2D4 hex ---- 1B749: Player Bullet Velocity - F Weapon - Rapid Fire (30 bytes) 00 00 FE 00 000 , -200 01 6A FE 96 16A , -16A 02 00 00 00 200 , 000 01 6A 01 6A 02 00 00 00 FE 00 00 00 FE 96 01 6A FE 00 00 00 FE 96 FE 96 00 00 FE 00 00 00 FE 00 00 00 02 00 200 -> 512 decimal sin(45 deg) = 0.707 512 * 0.707 = 362 -> 16A hex ---- 1B779: Player Bullet Velocity - F Weapon - Normal (30 bytes) 00 00 FE 80 0 , -180 01 0F FE F1 10F , -10F 01 80 00 00 180 , 000 01 0F 01 0F 01 80 00 00 FE 80 00 00 FE F1 01 0F FE 80 00 00 FE F1 FE F1 00 00 FE 80 00 00 FE 80 00 00 01 80 180 -> 384 decimal sin(45 deg) = 0.707 384 * 0.707 = 271 -> 10F hex ---- 1B7A9: A9 00 LDA #$00 ; A = 00 1B7AB: 85 12 STA $12 1B7AD: A9 40 LDA #$40 ; A = 40 1B7AF: 20 D7B7 JSR $B7D7 1B7B2: A5 0F LDA $0F 1B7B4: 9D F803 STA $03F8,X 1B7B7: A5 0E LDA $0E 1B7B9: 9D D803 STA $03D8,X 1B7BC: A5 0C LDA $0C 1B7BE: 38 SEC 1B7BF: E9 80 SBC #$80 1B7C1: 85 12 STA $12 1B7C3: B0 04 BCS $1B7C9 1B7C5: 49 FF EOR #$FF ; flip all bits 1B7C7: 69 01 ADC #$01 1B7C9: 20 D7B7 JSR $B7D7 1B7CC: A5 0F LDA $0F 1B7CE: 9D 0804 STA $0408,X 1B7D1: A5 0E LDA $0E 1B7D3: 9D E803 STA $03E8,X 1B7D6: 60 RTS ---- 1B7D7: 85 0F STA $0F 1B7D9: A9 00 LDA #$00 ; A = 00 1B7DB: 85 0E STA $0E 1B7DD: A0 06 LDY #$06 ; Y = 06 1B7DF: A5 09 LDA $09 1B7E1: F0 01 BEQ $1B7E4 1B7E3: 88 DEY 1B7E4: 4C D5D8 JMP $D8D5 ---- 1B7E7: A5 0B LDA $0B 1B7E9: 0A ASL 1B7EA: 18 CLC 1B7EB: 65 0B ADC $0B 1B7ED: A8 TAY 1B7EE: B9 17B8 LDA $B817,Y 1B7F1: 9D 1804 STA $0418,X 1B7F4: B9 18B8 LDA $B818,Y 1B7F7: 18 CLC 1B7F8: 7D C803 ADC $03C8,X 1B7FB: 9D 7804 STA $0478,X 1B7FE: B9 19B8 LDA $B819,Y 1B801: 18 CLC 1B802: 30 07 BMI $1B80B 1B804: 7D B803 ADC $03B8,X 1B807: B0 0B BCS $1B814 1B809: 90 05 BCC $1B810 1B80B: 7D B803 ADC $03B8,X 1B80E: 90 04 BCC $1B814 1B810: 9D 8804 STA $0488,X 1B813: 60 RTS ---- 1B814: 4C E8BB JMP $BBE8 ---- 1B817: Table for ? (24 bytes) 0C 00 F0 0E 0B F5 00 10 00 02 0B 0B 00 10 00 08 F0 00 06 F5 0B 08 F0 00 0A F5 F5 0C 00 F0 0C 00 F0 04 00 10 ---- 1B83B: A9 04 LDA #$04 ; A = 04 1B83D: 9D 6804 STA $0468,X 1B840: BD C803 LDA $03C8,X 1B843: 9D 7804 STA $0478,X 1B846: BD B803 LDA $03B8,X 1B849: 38 SEC 1B84A: E9 02 SBC #$02 1B84C: 9D 8804 STA $0488,X 1B84F: 60 RTS ---- 1B850: A0 00 LDY #$00 ; Y = 00 1B852: A5 09 LDA $09 ; Rapid Fire Flag 1B854: F0 02 BEQ $1B858 1B856: A0 02 LDY #$02 ; Y = 02 1B858: B9 A2B8 LDA $B8A2,Y 1B85B: 85 04 STA $04 1B85D: B9 A3B8 LDA $B8A3,Y 1B860: 85 05 STA $05 1B862: B9 A6B8 LDA $B8A6,Y 1B865: 85 06 STA $06 1B867: B9 A7B8 LDA $B8A7,Y 1B86A: 85 07 STA $07 1B86C: A4 0B LDY $0B 1B86E: B9 91B8 LDA $B891,Y 1B871: A4 17 LDY $17 1B873: 18 CLC 1B874: 79 9DB8 ADC $B89D,Y 1B877: 29 1F AND #$1F ; keep bits ...x xxxx 1B879: 0A ASL 1B87A: A8 TAY 1B87B: B1 04 LDA ($04),Y 1B87D: 9D D803 STA $03D8,X 1B880: B1 06 LDA ($06),Y 1B882: 9D E803 STA $03E8,X 1B885: C8 INY 1B886: B1 04 LDA ($04),Y 1B888: 9D F803 STA $03F8,X 1B88B: B1 06 LDA ($06),Y 1B88D: 9D 0804 STA $0408,X 1B890: 60 RTS ---- 1B891: 00 04 08 0C 08 18 14 18 1C 00 00 10 Table for ? (C bytes) 1B89D: 00 01 FF 02 FE Table for ? (5 bytes) ---- 1B8A2: Pointer table for ? (2 * 2 = 4 bytes) AAB8 -> 1B8AA FAB8 -> 1B8FA ---- 1B8A6: Pointer table for ? (2 * 2 = 4 bytes) BAB8 -> 1B8BA 0AB9 -> 1B90A ---- 1B8AA: Pointer table for ? (8 * 2 = 10 bytes) 03FD -> 1FD03 0FFD -> 1FD0F 3CFD -> 1FD3C 84FD -> 1FD84 E1FD -> 1FDE1 56FE -> 1FE56 DDFE -> 1FEDD 6DFF -> 1FF6D ---- 1B8BA: Table for ? (looks like bullet velocity table) (40 bytes) 00 00 93 00 23 01 AA 01 1F 02 7C 02 C4 02 F1 02 FD 02 F1 02 C4 02 7C 02 1F 02 AA 01 23 01 93 00 00 00 6D FF DD FE 56 FE E1 FD 84 FD 3C FD 0F FD 03 FD 0F FD 3C FD 84 FD E1 FD 56 FE DD FE 6D FF ---- 1B8FA: Pointer table for ? (8 * 2 = 10 bytes) 84FC -> 1FC84 92FC -> 1FC92 C6FC -> 1FCC6 1AFD -> 1FD1A 87FD -> 1FD87 0FFE -> 1FE0F ADFE -> 1FEAD 55FF -> 1FF55 ---- 1B90A: Table for ? (looks like bullet velocity table) (40 bytes) 00 00 AB 00 53 01 F1 01 79 02 E6 02 3A 03 6E 03 7C 03 6E 03 3A 03 E6 02 79 02 F1 01 53 01 AB 00 00 00 55 FF AD FE 0F FE 87 FD 1A FD C6 FC 92 FC 84 FC 92 FC C6 FC 1A FD 87 FD 0F FE AD FE 55 FF ---- 1B94A: A2 00 LDX #$00 ; X = 00 1B94C: BD 8803 LDA $0388,X 1B94F: F0 0A BEQ $1B95B 1B951: 86 10 STX $10 1B953: BD 4804 LDA $0448,X 1B956: 85 11 STA $11 1B958: 20 61B9 JSR $B961 1B95B: E8 INX 1B95C: E0 10 CPX #$10 1B95E: 90 EC BCC $1B94C 1B960: 60 RTS ---- 1B961: BD 8803 LDA $0388,X 1B964: 29 0F AND #$0F ; keep bits .... xxxx 1B966: A4 40 LDY $40 ; Outdoor/Indoor 1B968: 30 05 BMI $1B96F 1B96A: F0 03 BEQ $1B96F 1B96C: 18 CLC 1B96D: 69 06 ADC #$06 1B96F: 0A ASL 1B970: A8 TAY 1B971: B9 8CB9 LDA $B98C,Y 1B974: 85 0A STA $0A 1B976: B9 8DB9 LDA $B98D,Y 1B979: 85 0B STA $0B 1B97B: BD 3804 LDA $0438,X 1B97E: 0A ASL 1B97F: A8 TAY 1B980: B1 0A LDA ($0A),Y 1B982: 85 08 STA $08 1B984: C8 INY 1B985: B1 0A LDA ($0A),Y 1B987: 85 09 STA $09 1B989: 6C 0800 JMP ($0008) ---- 1B98C: Pointer table for ? (C * 2 = 18 bytes) 60B9 -> 1B960 A4B9 -> 1B9A4 AAB9 -> 1B9AA B0B9 -> 1B9B0 B6B9 -> 1B9B6 BCB9 -> 1B9BC 60B9 -> 1B960 C2B9 -> 1B9C2 C8B9 -> 1B9C8 CEB9 -> 1B9CE D4B9 -> 1B9D4 DAB9 -> 1B9DA ---- 1B9A4: Pointer table for ? (2 * 3 = 6 bytes) E0B9 -> 1B9E0 46BA -> 1BA46 1EBC -> 1BC1E ---- 1B9AA: Pointer table for ? (2 * 3 = 6 bytes) E0B9 -> 1B9E0 46BA -> 1BA46 1EBC -> 1BC1E ---- 1B9B0: Pointer table for ? (2 * 3 = 6 bytes) E0B9 -> 1B9E0 4FBA -> 1BA4F 1EBC -> 1BC1E ---- 1B9B6: Pointer table for ? (2 * 3 = 6 bytes) E0B9 -> 1B9E0 60BA -> 1BA60 1EBC -> 1BC1E ---- 1B9BC: Pointer table for ? (2 * 3 = 6 bytes) E3B9 -> 1B9E3 46BA -> 1BA46 1EBC -> 1BC1E ---- 1B9C2: Pointer table for ? (2 * 3 = 6 bytes) 2FBA -> 1BA2F 7CBA -> 1BA7C 1EBC -> 1BC1E ---- 1B9C8: Pointer table for ? (2 * 3 = 6 bytes) 2FBA -> 1BA2F 7CBA -> 1BA7C 1EBC -> 1BC1E ---- 1B9CE: Pointer table for ? (2 * 3 = 6 bytes) 2FBA -> 1BA2F 82BA -> 1BA82 1EBC -> 1BC1E ---- 1B9D4: Pointer table for ? (2 * 3 = 6 bytes) 2FBA -> 1BA2F 8BBA -> 1BA8B 1EBC -> 1BC1E ---- 1B9DA: Pointer table for ? (2 * 3 = 6 bytes) 32BA -> 1BA32 A7BA -> 1BAA7 1EBC -> 1BC1E ---- 1B9E0: 4C 42BA JMP $BA42 ---- 1B9E3: A5 41 LDA $41 ; Scrolling (H/V) 1B9E5: D0 0C BNE $1B9F3 1B9E7: BD C803 LDA $03C8,X 1B9EA: 38 SEC 1B9EB: E5 68 SBC $68 1B9ED: 9D C803 STA $03C8,X 1B9F0: 4C FCB9 JMP $B9FC ---- 1B9F3: BD B803 LDA $03B8,X 1B9F6: 18 CLC 1B9F7: 65 68 ADC $68 1B9F9: 9D B803 STA $03B8,X 1B9FC: DE 1804 DEC $0418,X 1B9FF: F0 01 BEQ $1BA02 1BA01: 60 RTS ---- 1BA02: 20 42BA JSR $BA42 1BA05: BD 2804 LDA $0428,X 1BA08: 0A ASL 1BA09: A8 TAY 1BA0A: B9 17BA LDA $BA17,Y 1BA0D: 9D 6803 STA $0368,X 1BA10: B9 18BA LDA $BA18,Y 1BA13: 9D 7803 STA $0378,X 1BA16: 60 RTS ---- 1BA17: Table for ? (18 bytes) 23 00 25 80 24 00 25 00 24 00 24 40 25 40 24 40 25 C0 23 00 23 80 23 80 ---- 1BA2F: 4C 42BA JMP $BA42 ---- 1BA32: DE 1804 DEC $0418,X 1BA35: D0 DF BNE $1BA16 1BA37: 20 42BA JSR $BA42 1BA3A: A9 15 LDA #$15 ; A = 15 1BA3C: 9D 1804 STA $0418,X 1BA3F: 4C EDBC JMP $BCED ---- 1BA42: FE 3804 INC $0438,X 1BA45: 60 RTS ---- 1BA46: 20 91BB JSR $BB91 1BA49: 20 3ABB JSR $BB3A 1BA4C: 4C D2BB JMP $BBD2 ---- 1BA4F: 20 BDBB JSR $BBBD 1BA52: 30 F1 BMI $1BA45 1BA54: 20 52BB JSR $BB52 1BA57: 20 6ABB JSR $BB6A 1BA5A: 20 ADBA JSR $BAAD 1BA5D: 4C D2BB JMP $BBD2 ---- 1BA60: FE 6804 INC $0468,X 1BA63: BD 6804 LDA $0468,X 1BA66: A0 02 LDY #$02 ; Y = 20 1BA68: C9 20 CMP #$20 1BA6A: B0 06 BCS $1BA72 1BA6C: 88 DEY 1BA6D: C9 10 CMP #$10 1BA6F: B0 01 BCS $1BA72 1BA71: 88 DEY 1BA72: 98 TYA 1BA73: 18 CLC 1BA74: 69 1F ADC #$1F 1BA76: 9D 6803 STA $0368,X 1BA79: 4C 46BA JMP $BA46 ---- 1BA7C: 20 91BB JSR $BB91 1BA7F: 4C 1DBD JMP $BD1D ---- 1BA82: 20 6ABB JSR $BB6A 1BA85: 20 30BC JSR $BC30 1BA88: 4C 1DBD JMP $BD1D ---- 1BA8B: A0 00 LDY #$00 ; Y = 00 1BA8D: BD 1804 LDA $0418,X 1BA90: C9 1A CMP #$1A 1BA92: B0 06 BCS $1BA9A 1BA94: C8 INY 1BA95: C9 0A CMP #$0A 1BA97: B0 01 BCS $1BA9A 1BA99: C8 INY 1BA9A: 98 TYA 1BA9B: 18 CLC 1BA9C: 69 1F ADC #$1F 1BA9E: 9D 6803 STA $0368,X 1BAA1: 20 9EBC JSR $BC9E 1BAA4: 4C 1DBD JMP $BD1D ---- 1BAA7: 20 91BB JSR $BB91 1BAAA: 4C 1DBD JMP $BD1D ---- 1BAAD: BD 1804 LDA $0418,X 1BAB0: 29 0F AND #$0F ; keep bits .... xxxx 1BAB2: A8 TAY 1BAB3: B9 E2BA LDA $BAE2,Y 1BAB6: 18 CLC 1BAB7: 7D 7804 ADC $0478,X 1BABA: 9D C803 STA $03C8,X 1BABD: B9 DEBA LDA $BADE,Y 1BAC0: 18 CLC 1BAC1: 7D 8804 ADC $0488,X 1BAC4: 9D B803 STA $03B8,X 1BAC7: BD 2804 LDA $0428,X 1BACA: C9 0A CMP #$0A 1BACC: F0 06 BEQ $1BAD4 1BACE: C9 05 CMP #$05 1BAD0: A9 FF LDA #$FF ; A = FF 1BAD2: B0 02 BCS $1BAD6 1BAD4: A9 01 LDA #$01 ; A = 01 1BAD6: 18 CLC 1BAD7: 7D 1804 ADC $0418,X 1BADA: 9D 1804 STA $0418,X 1BADD: 60 RTS ---- 1BADE: Table for ? (14 bytes) 00 FA F5 F2 F1 F2 F5 FA 00 06 0B 0E 0F 0E 0B 06 00 FA F5 F2 ---- 1BAF2: Pointer table for ? (6 * 2 = C bytes) 2ABB -> BB2A 26BB -> BB26 16BB -> BB16 12BB -> BB12 02BB -> BB02 FEBA -> BAFE ---- 1BAFE: 00 FC F8 F5 Table for ? (4 bytes) 1BB02: F5 F5 F8 FC 00 04 08 0B 0B 0B 08 04 00 FC F8 F5 Table for ? (10 bytes) 1BB12: 00 FD FB F9 Table for ? (4 bytes) 1BB16: F9 F9 FB FD 00 03 05 07 07 07 05 03 00 FD FB F9 Table for ? (10 bytes) 1BB26: 00 FF FE FD Table for ? (4 bytes) 1BB2A: FD FD FE FF 00 01 02 03 03 03 02 01 00 FF FE FD Table for ? (10 bytes) ---- 1BB3A: A5 68 LDA $68 1BB3C: F0 13 BEQ $1BB51 1BB3E: A5 41 LDA $41 ; Scrolling (H/V) 1BB40: D0 06 BNE $1BB48 1BB42: DE C803 DEC $03C8,X 1BB45: 4C 51BB JMP $BB51 ---- 1BB48: BD B803 LDA $03B8,X 1BB4B: 18 CLC 1BB4C: 65 68 ADC $68 1BB4E: 9D B803 STA $03B8,X 1BB51: 60 RTS ---- 1BB52: A5 68 LDA $68 1BB54: F0 13 BEQ $1BB69 1BB56: A4 41 LDY $41 ; Scrolling (H/V) 1BB58: D0 06 BNE $1BB60 1BB5A: DE 7804 DEC $0478,X 1BB5D: 4C 51BB JMP $BB51 ---- 1BB60: BD 8804 LDA $0488,X 1BB63: 18 CLC 1BB64: 65 68 ADC $68 1BB66: 9D 8804 STA $0488,X 1BB69: 60 RTS ---- 1BB6A: BD A804 LDA $04A8,X 1BB6D: 18 CLC 1BB6E: 7D D803 ADC $03D8,X 1BB71: 9D A804 STA $04A8,X 1BB74: BD 8804 LDA $0488,X 1BB77: 7D F803 ADC $03F8,X 1BB7A: 9D 8804 STA $0488,X 1BB7D: BD 9804 LDA $0498,X 1BB80: 18 CLC 1BB81: 7D E803 ADC $03E8,X 1BB84: 9D 9804 STA $0498,X 1BB87: BD 7804 LDA $0478,X 1BB8A: 7D 0804 ADC $0408,X 1BB8D: 9D 7804 STA $0478,X 1BB90: 60 RTS ---- 1BB91: 20 BDBB JSR $BBBD 1BB94: 30 26 BMI $1BBBC 1BB96: BD A803 LDA $03A8,X 1BB99: 18 CLC 1BB9A: 7D E803 ADC $03E8,X 1BB9D: 9D A803 STA $03A8,X 1BBA0: BD C803 LDA $03C8,X 1BBA3: 7D 0804 ADC $0408,X 1BBA6: 9D C803 STA $03C8,X 1BBA9: 18 CLC 1BBAA: BD 9803 LDA $0398,X 1BBAD: 7D D803 ADC $03D8,X 1BBB0: 9D 9803 STA $0398,X 1BBB3: BD B803 LDA $03B8,X 1BBB6: 7D F803 ADC $03F8,X 1BBB9: 9D B803 STA $03B8,X 1BBBC: 60 RTS ---- 1BBBD: A5 59 LDA $59 1BBBF: 10 FB BPL $1BBBC 1BBC1: BC B803 LDY $03B8,X 1BBC4: BD C803 LDA $03C8,X 1BBC7: 20 87E0 JSR $E087 1BBCA: 10 F0 BPL $1BBBC 1BBCC: 20 CDE3 JSR $E3CD 1BBCF: A9 80 LDA #$80 ; A = 80 1BBD1: 60 RTS ---- 1BBD2: BD C803 LDA $03C8,X 1BBD5: C9 05 CMP #$05 1BBD7: 90 0F BCC $1BBE8 1BBD9: C9 FB CMP #$FB 1BBDB: B0 0B BCS $1BBE8 1BBDD: BD B803 LDA $03B8,X 1BBE0: C9 05 CMP #$05 1BBE2: 90 04 BCC $1BBE8 1BBE4: C9 E8 CMP #$E8 1BBE6: 90 35 BCC $1BC1D 1BBE8: A9 00 LDA #$00 ; A = 00 1BBEA: 9D 8803 STA $0388,X 1BBED: 9D 6803 STA $0368,X 1BBF0: 9D 7803 STA $0378,X 1BBF3: 9D 3804 STA $0438,X 1BBF6: 9D 4804 STA $0448,X 1BBF9: 9D 1804 STA $0418,X 1BBFC: 9D 7804 STA $0478,X 1BBFF: 9D 9804 STA $0498,X 1BC02: 9D 8804 STA $0488,X 1BC05: 9D A804 STA $04A8,X 1BC08: 9D 5804 STA $0458,X 1BC0B: 9D 6804 STA $0468,X 1BC0E: 9D 2804 STA $0428,X 1BC11: 9D 0804 STA $0408,X 1BC14: 9D E803 STA $03E8,X 1BC17: 9D F803 STA $03F8,X 1BC1A: 9D D803 STA $03D8,X 1BC1D: 60 RTS ---- 1BC1E: A5 37 LDA $37 ; Indoor Screen cleared (0 = not cleared) 1BC20: D0 C6 BNE $1BBE8 1BC22: A9 47 LDA #$47 ; A = 47 1BC24: 9D 6803 STA $0368,X 1BC27: 20 3ABB JSR $BB3A 1BC2A: DE 1804 DEC $0418,X 1BC2D: F0 B9 BEQ $1BBE8 1BC2F: 60 RTS ---- 1BC30: A0 00 LDY #$00 ; Y = 00 1BC32: BD 5804 LDA $0458,X 1BC35: F0 02 BEQ $1BC39 1BC37: A0 02 LDY #$02 ; Y = 02 1BC39: A9 02 LDA #$02 ; A = 02 1BC3B: 85 0B STA $0B 1BC3D: BD 1804 LDA $0418,X 1BC40: C9 02 CMP #$02 1BC42: B0 0D BCS $1BC51 1BC44: BD 7804 LDA $0478,X 1BC47: 9D C803 STA $03C8,X 1BC4A: BD 8804 LDA $0488,X 1BC4D: 9D B803 STA $03B8,X 1BC50: 60 RTS ---- 1BC51: D9 9ABC CMP $BC9A,Y 1BC54: B0 05 BCS $1BC5B 1BC56: C8 INY 1BC57: C6 0B DEC $0B 1BC59: D0 F6 BNE $1BC51 1BC5B: A5 0B LDA $0B 1BC5D: 0A ASL 1BC5E: 0A ASL 1BC5F: A8 TAY 1BC60: B9 F2BA LDA $BAF2,Y 1BC63: 85 08 STA $08 1BC65: B9 F3BA LDA $BAF3,Y 1BC68: 85 09 STA $09 1BC6A: B9 F4BA LDA $BAF4,Y 1BC6D: 85 0A STA $0A 1BC6F: B9 F5BA LDA $BAF5,Y 1BC72: 85 0B STA $0B 1BC74: BD 6804 LDA $0468,X 1BC77: 29 0F AND #$0F ; keep bits .... xxxx 1BC79: A8 TAY 1BC7A: B1 08 LDA ($08),Y 1BC7C: 18 CLC 1BC7D: 7D 7804 ADC $0478,X 1BC80: 9D C803 STA $03C8,X 1BC83: B1 0A LDA ($0A),Y 1BC85: 18 CLC 1BC86: 7D 8804 ADC $0488,X 1BC89: 9D B803 STA $03B8,X 1BC8C: BD 5804 LDA $0458,X 1BC8F: 18 CLC 1BC90: 69 01 ADC #$01 1BC92: 18 CLC 1BC93: 7D 6804 ADC $0468,X 1BC96: 9D 6804 STA $0468,X 1BC99: 60 RTS ---- 1BC9A: 1C 0E 0E 07 Table for ? (4 bytes) ---- 1BC9E: 20 7DBB JSR $BB7D 1BCA1: 20 A9BB JSR $BBA9 1BCA4: BD 9804 LDA $0498,X 1BCA7: 18 CLC 1BCA8: 7D 6804 ADC $0468,X 1BCAB: 9D A803 STA $03A8,X 1BCAE: BD 7804 LDA $0478,X 1BCB1: 18 CLC 1BCB2: 7D 5804 ADC $0458,X 1BCB5: 9D C803 STA $03C8,X 1BCB8: BD 8804 LDA $0488,X 1BCBB: 4A LSR 1BCBC: BD A804 LDA $04A8,X 1BCBF: 90 02 BCC $1BCC3 1BCC1: 69 04 ADC #$04 1BCC3: 0A ASL 1BCC4: A8 TAY 1BCC5: B9 D9BC LDA $BCD9,Y 1BCC8: 18 CLC 1BCC9: 7D 6804 ADC $0468,X 1BCCC: 9D 6804 STA $0468,X 1BCCF: B9 DABC LDA $BCDA,Y 1BCD2: 7D 5804 ADC $0458,X 1BCD5: 9D 5804 STA $0458,X 1BCD8: 60 RTS ---- 1BCD9: Table for ? (14 bytes) 00 00 20 00 E0 FF 40 00 C0 FF 00 00 40 00 C0 FF 80 00 80 FF ---- 1BCED: BD C803 LDA $03C8,X 1BCF0: A0 08 LDY #$08 ; Y = 08 1BCF2: D9 0BBD CMP $BD0B,Y 1BCF5: B0 03 BCS $1BCFA 1BCF7: 88 DEY 1BCF8: D0 F8 BNE $1BCF2 1BCFA: B9 14BD LDA $BD14,Y 1BCFD: 9D 6803 STA $0368,X 1BD00: A9 40 LDA #$40 ; A = 40 1BD02: C0 04 CPY #$04 1BD04: 90 02 BCC $1BD08 1BD06: A9 00 LDA #$00 ; A = 00 1BD08: 9D 7803 STA $0378,X 1BD0B: 60 RTS ---- 1BD0C: 40 50 60 74 8C A0 B0 C0 Table for ? (8 bytes) 1BD14: 92 84 83 82 23 82 83 84 92 Table for ? (9 bytes) ---- 1BD1D: DE 1804 DEC $0418,X 1BD20: D0 03 BNE $1BD25 1BD22: 4C CDE3 JMP $E3CD ---- 1BD25: 60 RTS ---- 1BD26: Unused Space (2DA bytes) ---- // End of Bank // --------