adding support for Gameboy MBC1 rom dumping
This commit is contained in:
parent
b904a6cb11
commit
542bba7583
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
|
@ -1,7 +1,7 @@
|
|||
Archive member included to satisfy reference by file (symbol)
|
||||
|
||||
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
C:\Users\paul\AppData\Local\Temp\ccILlO7q.o (__aeabi_unwind_cpp_pr0)
|
||||
C:\Users\paul\AppData\Local\Temp\ccUa15vO.o (__aeabi_unwind_cpp_pr0)
|
||||
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(libunwind.o)
|
||||
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o) (restore_core_regs)
|
||||
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
|
||||
|
|
@ -51,9 +51,9 @@ c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3
|
|||
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
|
||||
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o) (_exit)
|
||||
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
|
||||
C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o (__gnu_thumb1_case_uqi)
|
||||
C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o (__gnu_thumb1_case_uqi)
|
||||
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
|
||||
C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
|
||||
C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
|
||||
|
||||
Allocating common symbols
|
||||
Common symbol size file
|
||||
|
|
@ -128,39 +128,39 @@ Discarded input sections
|
|||
.ARM.exidx 0x00000000 0x8 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
|
||||
.ARM.attributes
|
||||
0x00000000 0x1b c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.stack 0x00000000 0xc00 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.heap 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.debug_line 0x00000000 0x7c C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.debug_info 0x00000000 0x22 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.debug_abbrev 0x00000000 0x12 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.stack 0x00000000 0xc00 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.heap 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.debug_line 0x00000000 0x7c C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.debug_info 0x00000000 0x22 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.debug_abbrev 0x00000000 0x12 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.debug_aranges
|
||||
0x00000000 0x28 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.debug_str 0x00000000 0x80 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.debug_ranges 0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
0x00000000 0x28 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.debug_str 0x00000000 0x80 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.debug_ranges 0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.ARM.attributes
|
||||
0x00000000 0x1b C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.text 0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.ARM.exidx 0x00000000 0x8 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.debug_line 0x00000000 0x49 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.debug_info 0x00000000 0x26 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
0x00000000 0x1b C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text 0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.ARM.exidx 0x00000000 0x8 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.debug_line 0x00000000 0x49 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.debug_info 0x00000000 0x26 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.debug_aranges
|
||||
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.debug_str 0x00000000 0x7d C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.debug_str 0x00000000 0x7d C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.ARM.attributes
|
||||
0x00000000 0x21 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
0x00000000 0x21 C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
.debug_frame 0x00000000 0x2b4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
|
|
@ -423,10 +423,10 @@ Linker script and memory map
|
|||
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
|
||||
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
|
||||
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccUa15vO.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
START GROUP
|
||||
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a
|
||||
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a
|
||||
|
|
@ -440,17 +440,17 @@ END GROUP
|
|||
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtend.o
|
||||
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtn.o
|
||||
|
||||
.text 0x08000000 0x4f50
|
||||
.text 0x08000000 0x4fd0
|
||||
*(.isr_vector)
|
||||
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
0x08000000 __isr_vector
|
||||
*(.usb_driver)
|
||||
.usb_driver 0x080000c0 0x3bc C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.usb_driver 0x080000c0 0x3bc C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
0x08000198 USB_IRQHandler
|
||||
*(.usb_desc)
|
||||
.usb_desc 0x0800047c 0xb8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.usb_desc 0x0800047c 0xb8 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*(.hardfault)
|
||||
.hardfault 0x08000534 0x2 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.hardfault 0x08000534 0x2 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
0x08000534 TIM1_CC_IRQHandler
|
||||
0x08000534 TSC_IRQHandler
|
||||
0x08000534 ADC1_COMP_IRQHandler
|
||||
|
|
@ -489,7 +489,7 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
0x08000534 USART1_IRQHandler
|
||||
0x08000534 TIM1_BRK_UP_TRG_COM_IRQHandler
|
||||
*fill* 0x08000536 0x2 ff
|
||||
.hardfault 0x08000538 0xc C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.hardfault 0x08000538 0xc C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
0x08000538 HardFault_Handler
|
||||
*_thumb1_case_uqi.o()
|
||||
.text 0x08000544 0x14 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
|
||||
|
|
@ -505,11 +505,11 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
0x0800058c 0x1e c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
|
||||
*(.fw_update)
|
||||
*fill* 0x080005aa 0x2 ff
|
||||
.fw_update 0x080005ac 0x150 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.fw_update 0x080005ac 0x150 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
0x00000770 . = 0x770
|
||||
*fill* 0x080006fc 0x74 ff
|
||||
*(.fw_up_main)
|
||||
.fw_up_main 0x08000770 0x70 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.fw_up_main 0x08000770 0x70 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
0x00000800 . = 0x800
|
||||
*fill* 0x080007e0 0x20 ff
|
||||
*(.appver)
|
||||
|
|
@ -517,170 +517,169 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*fill* 0x08000800 0x4 ff
|
||||
*(.reset_handler)
|
||||
.reset_handler
|
||||
0x08000804 0x3c C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
0x08000804 0x3c C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
0x08000804 Reset_Handler
|
||||
*(.usbFuncWrite)
|
||||
.usbFuncWrite 0x08000840 0x44 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.usbFuncWrite 0x08000840 0x44 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*(.usbFuncSetup)
|
||||
.usbFuncSetup 0x08000884 0x1800 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.usbFuncSetup 0x08000884 0x1888 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*(.text*)
|
||||
.text.snes_page_rd_poll.constprop.23
|
||||
0x08002084 0x7c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.text.nes_cpu_page_rd_poll.constprop.22
|
||||
0x08002100 0x6c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.text.nes_ppu_page_rd_poll.constprop.19
|
||||
0x0800216c 0x68 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.text.snes_page_rd_poll.constprop.24
|
||||
0x0800210c 0x7c C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nes_cpu_page_rd_poll.constprop.23
|
||||
0x08002188 0x6c C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nes_ppu_page_rd_poll.constprop.20
|
||||
0x080021f4 0x68 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.append_pairity
|
||||
0x080021d4 0x1e C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x0800225c 0x1e C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.delay_us
|
||||
0x080021f2 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
*fill* 0x08002206 0x2 ff
|
||||
.text.snes_wr 0x08002208 0x60 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.text.snes_rd 0x08002268 0x48 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.text.write_page_snes.constprop.31
|
||||
0x080022b0 0x194 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x0800227a 0x14 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x0800228e 0x2 ff
|
||||
.text.snes_wr 0x08002290 0x60 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.snes_rd 0x080022f0 0x48 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.write_page_snes.constprop.32
|
||||
0x08002338 0x194 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.snes_3v_flash_wr
|
||||
0x08002444 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x080024cc 0x50 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.snes_5v_flash_wr
|
||||
0x08002494 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x0800251c 0x50 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nes_dualport_wr
|
||||
0x080024e4 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x0800256c 0x50 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nes_dualport_rd
|
||||
0x08002534 0x38 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x080025bc 0x38 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nes_ppu_wr
|
||||
0x0800256c 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x080025f4 0x50 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nes_ppu_rd
|
||||
0x080025bc 0x38 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002644 0x38 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.mmc3_chrrom_flash_wr
|
||||
0x080025f4 0x44 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x0800267c 0x44 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nrom_chrrom_flash_wr
|
||||
0x08002638 0x44 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x080026c0 0x44 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nes_cpu_wr
|
||||
0x0800267c 0x6c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002704 0x6c C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.cdream_chrrom_flash_wr
|
||||
0x080026e8 0x84 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002770 0x84 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.mmc4_chrrom_flash_wr
|
||||
0x0800276c 0x74 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x080027f4 0x74 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.cnrom_chrrom_flash_wr
|
||||
0x080027e0 0x7c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002868 0x7c C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nes_cpu_rd
|
||||
0x0800285c 0x40 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x080028e4 0x40 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.mmc4_prgrom_sop_flash_wr
|
||||
0x0800289c 0x54 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002924 0x54 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.mmc3_prgrom_flash_wr
|
||||
0x080028f0 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002978 0x50 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.disc_push_exp0_prgrom_wr
|
||||
0x08002940 0x48 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x080029c8 0x48 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.discrete_exp0_prgrom_wr
|
||||
0x08002988 0x58 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002a10 0x58 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.unrom_prgrom_flash_wr
|
||||
0x080029e0 0x64 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002a68 0x64 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.nrom_prgrom_flash_wr
|
||||
0x08002a44 0x44 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002acc 0x44 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.pbje_scan
|
||||
0x08002a88 0x10c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002b10 0x10c C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.pbje_state_change
|
||||
0x08002b94 0x88 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002c1c 0x88 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.jtag_init_pbje
|
||||
0x08002c1c 0xe0 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002ca4 0xe0 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.jtag_run_pbje.part.0
|
||||
0x08002cfc 0xb8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002d84 0xb8 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.io_reset
|
||||
0x08002db4 0x15c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002e3c 0x15c C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.write_page_verify
|
||||
0x08002f10 0x5c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002f98 0x5c C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.write_page
|
||||
0x08002f6c 0x34 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08002ff4 0x34 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.get_next_buff
|
||||
0x08002fa0 0x54 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08003028 0x54 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.mmc1_wr.constprop.11
|
||||
0x08002ff4 0x22 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
*fill* 0x08003016 0x2 ff
|
||||
0x0800307c 0x22 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x0800309e 0x2 ff
|
||||
.text.mmc1_chrrom_flash_wr
|
||||
0x08003018 0x60 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x080030a0 0x60 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.mmc1_prgrom_flash_wr
|
||||
0x08003078 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08003100 0x50 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.swim_wotf
|
||||
0x080030c8 0xb4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08003150 0xb4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.swim_rotf
|
||||
0x0800317c 0xac C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08003204 0xac C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.text.startup.main
|
||||
0x08003228 0xb80 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x08003228 main
|
||||
*fill* 0x08003da8 0x8 ff
|
||||
.text 0x08003db0 0x154 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
0x08003db0 swim_xfr
|
||||
.text 0x08003f04 0xa08 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
0x080041c0 _Unwind_GetCFA
|
||||
0x080041c4 __gnu_Unwind_RaiseException
|
||||
0x08004218 __gnu_Unwind_ForcedUnwind
|
||||
0x0800422c __gnu_Unwind_Resume
|
||||
0x08004274 __gnu_Unwind_Resume_or_Rethrow
|
||||
0x08004290 _Unwind_Complete
|
||||
0x08004294 _Unwind_DeleteException
|
||||
0x080042a4 _Unwind_VRS_Get
|
||||
0x080042ec _Unwind_VRS_Set
|
||||
0x08004334 __gnu_Unwind_Backtrace
|
||||
0x08004684 __aeabi_unwind_cpp_pr0
|
||||
0x08004690 __aeabi_unwind_cpp_pr1
|
||||
0x0800469c __aeabi_unwind_cpp_pr2
|
||||
0x080046a8 _Unwind_VRS_Pop
|
||||
.text 0x0800490c 0x144 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(libunwind.o)
|
||||
0x0800490c __restore_core_regs
|
||||
0x0800490c restore_core_regs
|
||||
0x08004938 __gnu_Unwind_Restore_VFP
|
||||
0x0800493c __gnu_Unwind_Save_VFP
|
||||
0x08004940 __gnu_Unwind_Restore_VFP_D
|
||||
0x08004944 __gnu_Unwind_Save_VFP_D
|
||||
0x08004948 __gnu_Unwind_Restore_VFP_D_16_to_31
|
||||
0x0800494c __gnu_Unwind_Save_VFP_D_16_to_31
|
||||
0x08004950 __gnu_Unwind_Restore_WMMXD
|
||||
0x08004954 __gnu_Unwind_Save_WMMXD
|
||||
0x08004958 __gnu_Unwind_Restore_WMMXC
|
||||
0x0800495c __gnu_Unwind_Save_WMMXC
|
||||
0x08004960 ___Unwind_RaiseException
|
||||
0x08004960 _Unwind_RaiseException
|
||||
0x08004990 _Unwind_Resume
|
||||
0x08004990 ___Unwind_Resume
|
||||
0x080049c0 _Unwind_Resume_or_Rethrow
|
||||
0x080049c0 ___Unwind_Resume_or_Rethrow
|
||||
0x080049f0 _Unwind_ForcedUnwind
|
||||
0x080049f0 ___Unwind_ForcedUnwind
|
||||
0x08004a20 ___Unwind_Backtrace
|
||||
0x08004a20 _Unwind_Backtrace
|
||||
.text 0x08004a50 0x39c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
|
||||
0x08004aa4 __gnu_unwind_execute
|
||||
0x08004d94 __gnu_unwind_frame
|
||||
0x08004dbc _Unwind_GetRegionStart
|
||||
0x08004dc8 _Unwind_GetLanguageSpecificData
|
||||
0x08004ddc _Unwind_GetDataRelBase
|
||||
0x08004de4 _Unwind_GetTextRelBase
|
||||
.text.abort 0x08004dec 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
|
||||
0x08004dec abort
|
||||
.text.memcpy 0x08004dfc 0x88 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
|
||||
0x08004dfc memcpy
|
||||
0x080032b0 0xb80 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
0x080032b0 main
|
||||
.text 0x08003e30 0x154 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
0x08003e30 swim_xfr
|
||||
.text 0x08003f84 0xa08 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
0x08004240 _Unwind_GetCFA
|
||||
0x08004244 __gnu_Unwind_RaiseException
|
||||
0x08004298 __gnu_Unwind_ForcedUnwind
|
||||
0x080042ac __gnu_Unwind_Resume
|
||||
0x080042f4 __gnu_Unwind_Resume_or_Rethrow
|
||||
0x08004310 _Unwind_Complete
|
||||
0x08004314 _Unwind_DeleteException
|
||||
0x08004324 _Unwind_VRS_Get
|
||||
0x0800436c _Unwind_VRS_Set
|
||||
0x080043b4 __gnu_Unwind_Backtrace
|
||||
0x08004704 __aeabi_unwind_cpp_pr0
|
||||
0x08004710 __aeabi_unwind_cpp_pr1
|
||||
0x0800471c __aeabi_unwind_cpp_pr2
|
||||
0x08004728 _Unwind_VRS_Pop
|
||||
.text 0x0800498c 0x144 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(libunwind.o)
|
||||
0x0800498c __restore_core_regs
|
||||
0x0800498c restore_core_regs
|
||||
0x080049b8 __gnu_Unwind_Restore_VFP
|
||||
0x080049bc __gnu_Unwind_Save_VFP
|
||||
0x080049c0 __gnu_Unwind_Restore_VFP_D
|
||||
0x080049c4 __gnu_Unwind_Save_VFP_D
|
||||
0x080049c8 __gnu_Unwind_Restore_VFP_D_16_to_31
|
||||
0x080049cc __gnu_Unwind_Save_VFP_D_16_to_31
|
||||
0x080049d0 __gnu_Unwind_Restore_WMMXD
|
||||
0x080049d4 __gnu_Unwind_Save_WMMXD
|
||||
0x080049d8 __gnu_Unwind_Restore_WMMXC
|
||||
0x080049dc __gnu_Unwind_Save_WMMXC
|
||||
0x080049e0 ___Unwind_RaiseException
|
||||
0x080049e0 _Unwind_RaiseException
|
||||
0x08004a10 _Unwind_Resume
|
||||
0x08004a10 ___Unwind_Resume
|
||||
0x08004a40 _Unwind_Resume_or_Rethrow
|
||||
0x08004a40 ___Unwind_Resume_or_Rethrow
|
||||
0x08004a70 _Unwind_ForcedUnwind
|
||||
0x08004a70 ___Unwind_ForcedUnwind
|
||||
0x08004aa0 ___Unwind_Backtrace
|
||||
0x08004aa0 _Unwind_Backtrace
|
||||
.text 0x08004ad0 0x39c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
|
||||
0x08004b24 __gnu_unwind_execute
|
||||
0x08004e14 __gnu_unwind_frame
|
||||
0x08004e3c _Unwind_GetRegionStart
|
||||
0x08004e48 _Unwind_GetLanguageSpecificData
|
||||
0x08004e5c _Unwind_GetDataRelBase
|
||||
0x08004e64 _Unwind_GetTextRelBase
|
||||
.text.abort 0x08004e6c 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
|
||||
0x08004e6c abort
|
||||
.text.memcpy 0x08004e7c 0x88 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
|
||||
0x08004e7c memcpy
|
||||
.text._raise_r
|
||||
0x08004e84 0x5c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
|
||||
0x08004e84 _raise_r
|
||||
.text.raise 0x08004ee0 0x14 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
|
||||
0x08004ee0 raise
|
||||
.text._kill_r 0x08004ef4 0x28 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
|
||||
0x08004ef4 _kill_r
|
||||
0x08004f04 0x5c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
|
||||
0x08004f04 _raise_r
|
||||
.text.raise 0x08004f60 0x14 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
|
||||
0x08004f60 raise
|
||||
.text._kill_r 0x08004f74 0x28 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
|
||||
0x08004f74 _kill_r
|
||||
.text._getpid_r
|
||||
0x08004f1c 0x8 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
|
||||
0x08004f1c _getpid_r
|
||||
.text._getpid 0x08004f24 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
|
||||
0x08004f24 _getpid
|
||||
.text._kill 0x08004f34 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
|
||||
0x08004f34 _kill
|
||||
.text._exit 0x08004f44 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
|
||||
0x08004f44 _exit
|
||||
0x08004f9c 0x8 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
|
||||
0x08004f9c _getpid_r
|
||||
.text._getpid 0x08004fa4 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
|
||||
0x08004fa4 _getpid
|
||||
.text._kill 0x08004fb4 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
|
||||
0x08004fb4 _kill
|
||||
.text._exit 0x08004fc4 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
|
||||
0x08004fc4 _exit
|
||||
*(.init)
|
||||
.init 0x08004f48 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
|
||||
0x08004f48 _init
|
||||
.init 0x08004fc8 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
|
||||
0x08004fc8 _init
|
||||
*(.fini)
|
||||
.fini 0x08004f4c 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
|
||||
0x08004f4c _fini
|
||||
.fini 0x08004fcc 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
|
||||
0x08004fcc _fini
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors)
|
||||
|
|
@ -694,42 +693,42 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*(.rodata*)
|
||||
*(.eh_frame*)
|
||||
|
||||
.glue_7 0x08004f50 0x0
|
||||
.glue_7 0x08004f50 0x0 linker stubs
|
||||
.glue_7 0x08004fd0 0x0
|
||||
.glue_7 0x08004fd0 0x0 linker stubs
|
||||
|
||||
.glue_7t 0x08004f50 0x0
|
||||
.glue_7t 0x08004f50 0x0 linker stubs
|
||||
.glue_7t 0x08004fd0 0x0
|
||||
.glue_7t 0x08004fd0 0x0 linker stubs
|
||||
|
||||
.vfp11_veneer 0x08004f50 0x0
|
||||
.vfp11_veneer 0x08004f50 0x0 linker stubs
|
||||
.vfp11_veneer 0x08004fd0 0x0
|
||||
.vfp11_veneer 0x08004fd0 0x0 linker stubs
|
||||
|
||||
.v4_bx 0x08004f50 0x0
|
||||
.v4_bx 0x08004f50 0x0 linker stubs
|
||||
.v4_bx 0x08004fd0 0x0
|
||||
.v4_bx 0x08004fd0 0x0 linker stubs
|
||||
|
||||
.iplt 0x08004f50 0x0
|
||||
.iplt 0x08004f50 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.iplt 0x08004fd0 0x0
|
||||
.iplt 0x08004fd0 0x0 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
|
||||
.ARM.extab 0x08004f50 0x30
|
||||
.ARM.extab 0x08004fd0 0x30
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
.ARM.extab 0x08004f50 0x24 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
.ARM.extab 0x08004f74 0xc c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
|
||||
0x08004f80 __exidx_start = .
|
||||
.ARM.extab 0x08004fd0 0x24 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
.ARM.extab 0x08004ff4 0xc c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
|
||||
0x08005000 __exidx_start = .
|
||||
|
||||
.ARM.exidx 0x08004f80 0xd0
|
||||
.ARM.exidx 0x08005000 0xd0
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
.ARM.exidx 0x08004f80 0x8 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
.ARM.exidx 0x08005000 0x8 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
0x10 (size before relaxing)
|
||||
.ARM.exidx 0x08004f88 0x98 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
.ARM.exidx 0x08005008 0x98 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
|
||||
0xd8 (size before relaxing)
|
||||
.ARM.exidx 0x08005020 0x30 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
|
||||
.ARM.exidx 0x080050a0 0x30 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
|
||||
0x48 (size before relaxing)
|
||||
0x08005050 __exidx_end = .
|
||||
0x08005050 __etext = ALIGN (0x4)
|
||||
0x080050d0 __exidx_end = .
|
||||
0x080050d0 __etext = ALIGN (0x4)
|
||||
|
||||
.rel.dyn 0x08005050 0x0
|
||||
.rel.iplt 0x08005050 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.rel.dyn 0x080050d0 0x0
|
||||
.rel.iplt 0x080050d0 0x0 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
|
||||
.data 0x20000000 0x430 load address 0x08005050
|
||||
.data 0x20000000 0x430 load address 0x080050d0
|
||||
0x20000000 __data_start__ = .
|
||||
*(vtable)
|
||||
*(.data*)
|
||||
|
|
@ -757,65 +756,65 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*(.fastrun)
|
||||
0x20000430 __data_end__ = .
|
||||
|
||||
.igot.plt 0x20000430 0x0 load address 0x08005480
|
||||
.igot.plt 0x20000430 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
|
||||
.igot.plt 0x20000430 0x0 load address 0x08005500
|
||||
.igot.plt 0x20000430 0x0 C:\Users\paul\AppData\Local\Temp\ccsrnNLz.o
|
||||
|
||||
.bss 0x20000430 0x2f8 load address 0x08005480
|
||||
.bss 0x20000430 0x2f8 load address 0x08005500
|
||||
0x20000430 . = ALIGN (0x4)
|
||||
0x20000430 __bss_start__ = .
|
||||
*(.bss*)
|
||||
.bss.addr_ptr 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.addrh 0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.addr_ptr 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.addrh 0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.bank_table
|
||||
0x20000436 0x2 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.cur_bank 0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x20000436 0x2 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.cur_bank 0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x20000489 0x3
|
||||
.bss.cur_buff 0x2000048c 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.cur_buff 0x2000048c 0x4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.cur_usb_load_buff
|
||||
0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.incoming_bytes_remain
|
||||
0x20000494 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x20000494 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.num_buff.5073
|
||||
0x20000495 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x20000495 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x20000496 0x2
|
||||
.bss.oper_info_struct
|
||||
0x20000498 0x20 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x20000498 0x20 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.pbje_command
|
||||
0x200004b8 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200004b8 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.pbje_data
|
||||
0x200004b9 0x20 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200004b9 0x20 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.pbje_numclk
|
||||
0x200004d9 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200004d9 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.pbje_status
|
||||
0x200004da 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200004da 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.raw_bank_status
|
||||
0x200004db 0x10 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200004db 0x10 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x200004eb 0x1
|
||||
.bss.raw_buffer16
|
||||
0x200004ec 0x200 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200004ec 0x200 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.rv16.4756
|
||||
0x200006ec 0x8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200006ec 0x8 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.rv16.4993
|
||||
0x200006f4 0x8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200006f4 0x8 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.swim_base
|
||||
0x200006fc 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.swim_pin 0x20000700 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x200006fc 0x4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.swim_pin 0x20000700 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x20000701 0x3
|
||||
.bss.tck_base 0x20000704 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.tck_pin 0x20000708 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.tck_base 0x20000704 0x4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.tck_pin 0x20000708 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x20000709 0x3
|
||||
.bss.tdi_base 0x2000070c 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.tdi_pin 0x20000710 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.tdi_base 0x2000070c 0x4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.tdi_pin 0x20000710 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x20000711 0x3
|
||||
.bss.tdo_base 0x20000714 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.tdo_pin 0x20000718 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.tdo_base 0x20000714 0x4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.tdo_pin 0x20000718 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*fill* 0x20000719 0x3
|
||||
.bss.tms_base 0x2000071c 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.tms_pin 0x20000720 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.bss.tms_base 0x2000071c 0x4 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.bss.tms_pin 0x20000720 0x1 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
*(COMMON)
|
||||
*fill* 0x20000721 0x3
|
||||
COMMON 0x20000724 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
|
||||
|
|
@ -842,45 +841,45 @@ OUTPUT(build_stm/inlretro_stm.elf elf32-littlearm)
|
|||
.ARM.attributes
|
||||
0x00000000 0x1e c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
|
||||
.ARM.attributes
|
||||
0x0000001e 0x2f C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x0000001e 0x2f C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.ARM.attributes
|
||||
0x0000004d 0x21 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
0x0000004d 0x21 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
|
||||
.comment 0x00000000 0x7f
|
||||
.comment 0x00000000 0x7f C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.comment 0x00000000 0x7f C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
0x80 (size before relaxing)
|
||||
|
||||
.debug_info 0x00000000 0x4cf2
|
||||
.debug_info 0x00000000 0x4ccc C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.debug_info 0x00004ccc 0x26 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
.debug_info 0x00000000 0x4df9
|
||||
.debug_info 0x00000000 0x4dd3 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.debug_info 0x00004dd3 0x26 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
|
||||
.debug_abbrev 0x00000000 0x67b
|
||||
.debug_abbrev 0x00000000 0x667 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.debug_abbrev 0x00000667 0x14 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
.debug_abbrev 0x00000000 0x686
|
||||
.debug_abbrev 0x00000000 0x672 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.debug_abbrev 0x00000672 0x14 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
|
||||
.debug_loc 0x00000000 0x500b
|
||||
.debug_loc 0x00000000 0x500b C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.debug_loc 0x00000000 0x511b
|
||||
.debug_loc 0x00000000 0x511b C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
|
||||
.debug_aranges 0x00000000 0x1c8
|
||||
.debug_aranges
|
||||
0x00000000 0x1a8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x00000000 0x1a8 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.debug_aranges
|
||||
0x000001a8 0x20 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
0x000001a8 0x20 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
|
||||
.debug_ranges 0x00000000 0xc80
|
||||
.debug_ranges 0x00000000 0xc80 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.debug_ranges 0x00000000 0xcb0
|
||||
.debug_ranges 0x00000000 0xcb0 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
|
||||
.debug_line 0x00000000 0x184b
|
||||
.debug_line 0x00000000 0x1758 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.debug_line 0x00001758 0xf3 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
.debug_line 0x00000000 0x189a
|
||||
.debug_line 0x00000000 0x17a7 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
.debug_line 0x000017a7 0xf3 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
|
||||
.debug_str 0x00000000 0x1115
|
||||
.debug_str 0x00000000 0x109c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
0x11b1 (size before relaxing)
|
||||
.debug_str 0x0000109c 0x79 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
|
||||
.debug_str 0x00000000 0x113f
|
||||
.debug_str 0x00000000 0x10c6 C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
0x11db (size before relaxing)
|
||||
.debug_str 0x000010c6 0x79 C:\Users\paul\AppData\Local\Temp\ccAbCkC8.o
|
||||
|
||||
.debug_frame 0x00000000 0x54c
|
||||
.debug_frame 0x00000000 0x54c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
|
||||
.debug_frame 0x00000000 0x54c C:\Users\paul\AppData\Local\Temp\ccvII1EV.ltrans0.ltrans.o
|
||||
|
||||
.stabstr 0x00000000 0x76
|
||||
.stabstr 0x00000000 0x76 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
|
||||
|
|
|
|||
|
|
@ -32,14 +32,14 @@ uint8_t gameboy_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_
|
|||
|
||||
switch (opcode) {
|
||||
// //no return value:
|
||||
case DMG_WR:
|
||||
dmg_wr( operand, miscdata );
|
||||
case GAMEBOY_WR:
|
||||
gameboy_wr( operand, miscdata );
|
||||
break;
|
||||
|
||||
//8bit return values:
|
||||
case DMG_RD:
|
||||
case GAMEBOY_RD:
|
||||
rdata[RD_LEN] = BYTE_LEN;
|
||||
rdata[RD0] = dmg_rd( operand );
|
||||
rdata[RD0] = gameboy_rd( operand );
|
||||
break;
|
||||
default:
|
||||
//macro doesn't exist
|
||||
|
|
@ -50,15 +50,100 @@ uint8_t gameboy_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_
|
|||
|
||||
}
|
||||
|
||||
uint8_t dmg_rd( uint16_t addr )
|
||||
/* Desc:Gameboy CPU Read without being so slow
|
||||
* decode A15-14 from addrH to set SRAM /CS as expected
|
||||
* ignore clock pin toggling pretty sure it's unconnected on most carts
|
||||
* going by reference here:
|
||||
* https://dhole.github.io/media/gameboy_stm32f4/cpu_manual_timing_small.png
|
||||
* Pre: gameboy_init() setup of io pins
|
||||
* Post:address left on bus
|
||||
* data bus left clear
|
||||
* Rtn: Byte read from cartridge at addrHL
|
||||
*/
|
||||
uint8_t gameboy_rd( uint16_t addr )
|
||||
{
|
||||
return 0xAA;
|
||||
uint8_t read; //return value
|
||||
|
||||
//cycle would start with clock rise
|
||||
|
||||
//set address bus
|
||||
ADDR_SET(addr);
|
||||
|
||||
//enable /RD pin
|
||||
CSRD_LO();
|
||||
|
||||
//set SRAM /CS
|
||||
//low for $A000-BFFF
|
||||
if( (addr >= 0xA000) && (addr < 0xC000) ) { //addressing cart RAM space
|
||||
ROMSEL_LO(); //this is actually the SRAM /CS pin
|
||||
}
|
||||
|
||||
//half cycle with clock fall
|
||||
//and /WR low for writes
|
||||
|
||||
//couple more NOP's waiting for data
|
||||
//zero nop's returned previous databus value
|
||||
NOP(); //one nop got most of the bits right
|
||||
NOP(); //two nop got all the bits right
|
||||
NOP(); //add third nop for some extra
|
||||
NOP(); //one more can't hurt
|
||||
//might need to wait longer for some carts...
|
||||
|
||||
//latch data
|
||||
DATA_RD(read);
|
||||
|
||||
//return bus to default
|
||||
ROMSEL_HI();
|
||||
CSRD_HI();
|
||||
|
||||
//next cycle clock rise
|
||||
|
||||
return read;
|
||||
}
|
||||
|
||||
|
||||
void dmg_wr( uint16_t addr, uint8_t data )
|
||||
/* Desc:Gameboy CPU Write
|
||||
* decode A15-14 from addrH to set SRAM /CS as expected
|
||||
* ignore clock pin toggling pretty sure it's unconnected on most carts
|
||||
* Pre: gameboy_init() setup of io pins
|
||||
* Post:data latched by anything listening on the bus
|
||||
* address left on bus
|
||||
* data left on bus, but pullup only
|
||||
* Rtn: None
|
||||
*/
|
||||
void gameboy_wr( uint16_t addr, uint8_t data )
|
||||
{
|
||||
return;
|
||||
//cycle would start with clock rise
|
||||
|
||||
//set address bus
|
||||
ADDR_SET(addr);
|
||||
|
||||
//set SRAM /CS
|
||||
//low for $A000-BFFF
|
||||
if( (addr >= 0xA000) && (addr < 0xC000) ) { //addressing cart RAM space
|
||||
ROMSEL_LO(); //this is actually the SRAM /CS pin
|
||||
}
|
||||
|
||||
|
||||
//put data on bus
|
||||
DATA_OP();
|
||||
DATA_SET(data);
|
||||
|
||||
//half cycle with clock fall
|
||||
//and /WR low for writes
|
||||
CSWR_LO();
|
||||
|
||||
//give some time
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
|
||||
//latch data to cart memory/mapper
|
||||
CSWR_HI();
|
||||
ROMSEL_HI();
|
||||
|
||||
//Free data bus
|
||||
DATA_IP();
|
||||
}
|
||||
|
||||
/* Desc:GAMEBOY 8bit CPU Page Read with optional USB polling
|
||||
|
|
@ -84,7 +169,7 @@ uint8_t gameboy_page_rd_poll( uint8_t *data, uint8_t addrH, uint8_t first, uint8
|
|||
|
||||
//set SRAM /CS
|
||||
//low for $A000-BFFF
|
||||
if( (addrH >= 0xA0) && (addrH <= 0xBF) ) { //addressing cart RAM space
|
||||
if( (addrH >= 0xA0) && (addrH < 0xC0) ) { //addressing cart RAM space
|
||||
ROMSEL_LO(); //this is actually the SRAM /CS pin
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
|
||||
uint8_t gameboy_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *rdata );
|
||||
|
||||
uint8_t dmg_rd( uint16_t addr );
|
||||
void dmg_wr( uint16_t addr, uint8_t data );
|
||||
uint8_t gameboy_rd( uint16_t addr );
|
||||
void gameboy_wr( uint16_t addr, uint8_t data );
|
||||
|
||||
uint8_t gameboy_page_rd_poll( uint8_t *data, uint8_t addrH, uint8_t first, uint8_t len, uint8_t poll );
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,300 @@
|
|||
|
||||
-- create the module's table
|
||||
local mbc1 = {}
|
||||
|
||||
-- import required modules
|
||||
local dict = require "scripts.app.dict"
|
||||
local dump = require "scripts.app.dump"
|
||||
local flash = require "scripts.app.flash"
|
||||
|
||||
-- file constants
|
||||
local mapname = "ROMONLY"
|
||||
|
||||
-- local functions
|
||||
|
||||
--read PRG-ROM flash ID
|
||||
local function rom_manf_id( debug )
|
||||
|
||||
--init_mapper()
|
||||
|
||||
if debug then print("reading PRG-ROM manf ID") end
|
||||
|
||||
--enter software mode
|
||||
--ROMSEL controls PRG-ROM /OE which needs to be low for flash writes
|
||||
--So unlock commands need to be addressed below $8000
|
||||
--DISCRETE_EXP0_PRGROM_WR doesn't toggle /ROMSEL by definition though, so A15 is unused
|
||||
-- 15 14 13 12
|
||||
-- 0x5 = 0b 0 1 0 1 -> $5555
|
||||
-- 0x2 = 0b 0 0 1 0 -> $2AAA
|
||||
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xAA)
|
||||
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x2AAA, 0x55)
|
||||
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0x90)
|
||||
|
||||
--read manf ID
|
||||
local rv = dict.nes("NES_CPU_RD", 0x8000)
|
||||
if debug then print("attempted read PRG-ROM manf ID:", string.format("%X", rv)) end
|
||||
|
||||
--read prod ID
|
||||
rv = dict.nes("NES_CPU_RD", 0x8001)
|
||||
if debug then print("attempted read PRG-ROM prod ID:", string.format("%X", rv)) end
|
||||
|
||||
--exit software
|
||||
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x8000, 0xF0)
|
||||
|
||||
--verify exited
|
||||
-- rv = dict.nes("NES_CPU_RD", 0x8001)
|
||||
-- if debug then print("attempted read PRG-ROM prod ID:", string.format("%X", rv)) end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
--dump the ROM
|
||||
local function dump_rom( file, rom_size_KB, debug )
|
||||
|
||||
|
||||
--ROM ONLY dump all 32KB, most of this code is overkill for no MBC.
|
||||
-- but follows same format as MBC's
|
||||
local KB_per_read = 16 --read half the ROM space (16KByte)
|
||||
local num_reads = rom_size_KB / KB_per_read
|
||||
local read_count = 0
|
||||
local addr_base = 0x00 -- $0000 base address for ROM
|
||||
|
||||
--the first bank is fixed & only visible at $0000-3FFF
|
||||
if debug then print( "dump ROM part ", read_count, " of ", num_reads) end
|
||||
dump.dumptofile( file, KB_per_read, addr_base, "GAMEBOY_PAGE", false )
|
||||
read_count = 1
|
||||
|
||||
--remaining banks must be read from $4000-7FFF
|
||||
addr_base = 0x40
|
||||
--banks 0x20, 0x40, 0x60 are not visible, they present 0x21, 0x41, 0x61 instead
|
||||
--much like how 0x00 would present 0x01 at $4000-7FFF
|
||||
--so there's a max of 125 banks because of these 3 lost banks.. (almost 2MByte)
|
||||
--this doesn't affect roms that are 512KByte or less because they only
|
||||
--use mapper bits 5-0, and bits 6 & 7 are the ones that are affected by this.
|
||||
|
||||
while ( read_count < num_reads ) do
|
||||
|
||||
--select the current bank (write to $2000-3FFF)
|
||||
dict.gameboy("GAMEBOY_WR", 0x2000, read_count)
|
||||
--I'm assuming MBC isn't subject to bus conflicts...
|
||||
|
||||
if debug then print( "dump ROM part ", read_count, " of ", num_reads) end
|
||||
|
||||
dump.dumptofile( file, KB_per_read, addr_base, "GAMEBOY_PAGE", false )
|
||||
|
||||
read_count = read_count + 1
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--write a single byte to ROM flash
|
||||
local function wr_flash_byte(addr, value, debug)
|
||||
|
||||
if (addr < 0x8000 or addr > 0xFFFF) then
|
||||
print("\n ERROR! flash write to PRG-ROM", string.format("$%X", addr), "must be $8000-FFFF \n\n")
|
||||
return
|
||||
end
|
||||
|
||||
--send unlock command and write byte
|
||||
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xAA)
|
||||
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x2AAA, 0x55)
|
||||
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xA0)
|
||||
dict.nes("DISCRETE_EXP0_PRGROM_WR", addr, value)
|
||||
|
||||
local rv = dict.nes("NES_CPU_RD", addr)
|
||||
|
||||
local i = 0
|
||||
|
||||
while ( rv ~= value ) do
|
||||
rv = dict.nes("NES_CPU_RD", addr)
|
||||
i = i + 1
|
||||
end
|
||||
if debug then print(i, "naks, done writing byte.") end
|
||||
|
||||
--TODO handle timeout for problems
|
||||
|
||||
--TODO return pass/fail/info
|
||||
end
|
||||
|
||||
|
||||
|
||||
--fast host flash one bank at a time...
|
||||
--this is controlled from the host side one bank at a time
|
||||
--but requires specific firmware MMC3 flashing functions
|
||||
--there is super slow version commented out that doesn't require MMC3 specific firmware code
|
||||
local function flash_rom(file, rom_size_KB, debug)
|
||||
|
||||
--init_mapper()
|
||||
|
||||
--test some bytes
|
||||
--wr_flash_byte(0x8000, 0xA5, true)
|
||||
--wr_flash_byte(0xFFFF, 0x5A, true)
|
||||
|
||||
|
||||
print("\nProgramming PRG-ROM flash")
|
||||
|
||||
--most of this is overkill for NROM, but it's how we want to handle things for bigger mappers
|
||||
local base_addr = 0x8000 --writes occur $8000-9FFF
|
||||
local bank_size = 32*1024 --MMC3 8KByte per PRG bank
|
||||
local buff_size = 1 --number of bytes to write at a time
|
||||
local cur_bank = 0
|
||||
local total_banks = rom_size_KB*1024/bank_size
|
||||
|
||||
local byte_num --byte number gets reset for each bank
|
||||
local byte_str, data, readdata
|
||||
|
||||
while cur_bank < total_banks do
|
||||
|
||||
if (cur_bank %8 == 0) then
|
||||
print("writting PRG bank: ", cur_bank, " of ", total_banks-1)
|
||||
end
|
||||
|
||||
--program the entire bank's worth of data
|
||||
flash.write_file( file, 32, mapname, "PRGROM", false )
|
||||
|
||||
cur_bank = cur_bank + 1
|
||||
end
|
||||
|
||||
print("Done Programming PRG-ROM flash")
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
--Cart should be in reset state upon calling this function
|
||||
--this function processes all user requests for this specific board/mapper
|
||||
local function process( test, read, erase, program, verify, dumpfile, flashfile, verifyfile, mirror)
|
||||
|
||||
local rv = nil
|
||||
local file
|
||||
local rom_size = 256
|
||||
local ram_size = 0
|
||||
|
||||
--initialize device i/o for NES
|
||||
dict.io("IO_RESET")
|
||||
dict.io("GAMEBOY_INIT")
|
||||
|
||||
dict.io("GB_POWER_5V") --gameboy carts prob run fine at 3v if want to be safe
|
||||
|
||||
--test the cart
|
||||
if test then
|
||||
-- print("Testing ", mapname)
|
||||
|
||||
-- nes.detect_mapper_mirroring(true)
|
||||
-- print("EXP0 pull-up test:", dict.io("EXP0_PULLUP_TEST"))
|
||||
-- --nes.read_flashID_prgrom_exp0(true)
|
||||
-- rom_manf_id(true)
|
||||
-- --nes.read_flashID_chrrom_8K(true)
|
||||
-- chrrom_manf_id(true)
|
||||
end
|
||||
|
||||
--dump the cart to dumpfile
|
||||
if read then
|
||||
|
||||
print("\nDumping ROM...")
|
||||
|
||||
--init_mapper()
|
||||
|
||||
file = assert(io.open(dumpfile, "wb"))
|
||||
|
||||
--dump cart into file
|
||||
dump_rom(file, rom_size, false)
|
||||
|
||||
--close file
|
||||
assert(file:close())
|
||||
print("DONE Dumping ROM")
|
||||
end
|
||||
|
||||
|
||||
--erase the cart
|
||||
if erase then
|
||||
|
||||
-- print("\nErasing ", mapname);
|
||||
--
|
||||
-- --init_mapper()
|
||||
--
|
||||
-- print("erasing PRG-ROM");
|
||||
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xAA)
|
||||
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x2AAA, 0x55)
|
||||
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0x80)
|
||||
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xAA)
|
||||
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x2AAA, 0x55)
|
||||
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0x10)
|
||||
-- rv = dict.nes("NES_CPU_RD", 0x8000)
|
||||
--
|
||||
-- local i = 0
|
||||
--
|
||||
-- --TODO create some function to pass the read value
|
||||
-- --that's smart enough to figure out if the board is actually erasing or not
|
||||
-- while ( rv ~= 0xFF ) do
|
||||
-- rv = dict.nes("NES_CPU_RD", 0x8000)
|
||||
-- i = i + 1
|
||||
-- end
|
||||
-- print(i, "naks, done erasing prg.");
|
||||
--
|
||||
-- print("erasing CHR-ROM");
|
||||
-- dict.nes("NES_PPU_WR", 0x1555, 0xAA)
|
||||
-- dict.nes("NES_PPU_WR", 0x0AAA, 0x55)
|
||||
-- dict.nes("NES_PPU_WR", 0x1555, 0x80)
|
||||
-- dict.nes("NES_PPU_WR", 0x1555, 0xAA)
|
||||
-- dict.nes("NES_PPU_WR", 0x0AAA, 0x55)
|
||||
-- dict.nes("NES_PPU_WR", 0x1555, 0x10)
|
||||
-- rv = dict.nes("NES_PPU_RD", 0x0000)
|
||||
--
|
||||
-- i = 0
|
||||
-- while ( rv ~= 0xFF ) do
|
||||
-- rv = dict.nes("NES_PPU_RD", 0x0000)
|
||||
-- i = i + 1
|
||||
-- end
|
||||
-- print(i, "naks, done erasing chr.\n");
|
||||
end
|
||||
|
||||
|
||||
--program flashfile to the cart
|
||||
if program then
|
||||
-- --open file
|
||||
-- file = assert(io.open(flashfile, "rb"))
|
||||
-- --determine if auto-doubling, deinterleaving, etc,
|
||||
-- --needs done to make board compatible with rom
|
||||
-- --flash cart
|
||||
-- flash_rom(file, rom_size, true)
|
||||
-- --close file
|
||||
-- assert(file:close())
|
||||
--
|
||||
end
|
||||
|
||||
--verify flashfile is on the cart
|
||||
if verify then
|
||||
--for now let's just dump the file and verify manually
|
||||
print("\nPost dumping ROM...")
|
||||
|
||||
--init_mapper()
|
||||
|
||||
file = assert(io.open(verifyfile, "wb"))
|
||||
|
||||
--dump cart into file
|
||||
dump_rom(file, rom_size, false)
|
||||
|
||||
--close file
|
||||
assert(file:close())
|
||||
|
||||
print("DONE post dumping ROM")
|
||||
end
|
||||
|
||||
dict.io("IO_RESET")
|
||||
end
|
||||
|
||||
|
||||
-- global variables so other modules can use them
|
||||
|
||||
|
||||
-- call functions desired to run when script is called/imported
|
||||
|
||||
|
||||
-- functions other modules are able to call
|
||||
mbc1.process = process
|
||||
|
||||
-- return the module's table
|
||||
return mbc1
|
||||
|
|
@ -85,7 +85,8 @@ function main ()
|
|||
--local curcart = require "scripts.snes.lorom_5volt" --catskull design
|
||||
--local curcart = require "scripts.snes.v2proto"
|
||||
--local curcart = require "scripts.snes.v2proto_hirom" --quickly becoming the master SNES script...
|
||||
local curcart = require "scripts.gb.romonly"
|
||||
--local curcart = require "scripts.gb.romonly"
|
||||
local curcart = require "scripts.gb.mbc1"
|
||||
|
||||
-- =====================================================
|
||||
-- USERS: set cart_console to the to point to the mapper script you would like to use here.
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@
|
|||
//=============================================================================================
|
||||
|
||||
|
||||
#define DMG_RD 0 //RL=3 return error code, data len = 1, 1 byte of data
|
||||
#define DMG_WR 1
|
||||
#define GAMEBOY_RD 0 //RL=3 return error code, data len = 1, 1 byte of data
|
||||
#define GAMEBOY_WR 1
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue