adding support for Gameboy MBC1 rom dumping

This commit is contained in:
Paul XPS 2018-12-02 16:41:54 -06:00
parent b904a6cb11
commit 542bba7583
8 changed files with 1581 additions and 1188 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -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)

View File

@ -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
}

View File

@ -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 );

300
host/scripts/gb/mbc1.lua Normal file
View File

@ -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

View File

@ -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.

View File

@ -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