-.macro READ_1
- movs r1, REG_ADDR, lsr #13
- adr lr, 9999f
- @@ 0¤Ç¤Ê¤¤»þ¤Ï¥¸¥ã¥ó¥×¤¹¤ë¡£
- @@ ¤Á¤ç¤Ã¤È¹©Éפ·¤Æ1¥¯¥í¥Ã¥¯¸º¤é¤¹
- ldrne pc, [lr, -r1, lsl #2]
- @@ RAM¤«¤é¥í¡¼¥É
- bic r0, REG_ADDR, #0x1800
- add r0, r0, #OTOFFS_NES_RAM
- ldrb r0, [r0, REG_OP_TABLE]
-.endm
-
-.macro READ_2
- .long read_rom_byte
- .long read_rom_byte
- .long read_rom_byte
- .long read_rom_byte
- .long read_save_ram
- .long read_high_reg
- .long read_ppu_reg
-9999:
-.endm
-
-.macro READ
- mov r1, REG_ADDR, lsr #13
- adr lr, 1f
- ldr pc, [pc, r1, lsl #2]
- nop
- .long 2f @ fast path
- .long read_ppu_reg
- .long read_high_reg
- .long read_save_ram
- .long read_rom_byte
- .long read_rom_byte
- .long read_rom_byte
- .long read_rom_byte
-2:
- bic r0, REG_ADDR, #0x1800
- add r0, r0, #OTOFFS_NES_RAM
- ldrb r0, [r0, REG_OP_TABLE]
- @@ ¤È¤¤¤¦¤ï¤±¤Ç¥¸¥ã¥ó¥×¤¹¤ëɬÍפϤʤ¤
-1:
+.macro READ unused_param
+ tst REG_ADDR, #0xe000
+ @ RAM
+ biceq r0, REG_ADDR, #0x1800
+ addeq r0, r0, #OTOFFS_NES_RAM
+ ldreqb r0, [r0, REG_OP_TABLE]
+ blne read_byte