#include "romimage.h"
#include "reader_master.h"
#include "reader_kazzo.h"
+#include "reader_dummy.h"
#include "script_dump.h"
#include "flash_device.h"
#include "script_program.h"
config.cpu.access = &r->cpu;
config.ppu.access = &r->ppu;
config.compare = false;
- config.testrun = false;
switch(v[1][0]){
- case 'a':
- config.testrun = true;
- break;
- case 'F':
+ case wgT('F'): case wgT('X'):
config.compare = true;
break;
}
PUTS(wgT("argument error"));
return;
}
- config.cpu.increase = 1;
+ config.cpu.increase = INCREASE_AUTO;
config.ppu.increase = 1;
config.progress = true;
switch(v[1][0]){
+ case wgT('d'): case wgT('z'):
+ config.mode = MODE_ROM_DUMP;
+ break;
case wgT('D'):
+ config.mode = MODE_ROM_DUMP;
config.progress = false;
break;
+ case wgT('r'): case wgT('R'):
+ config.mode = MODE_RAM_READ;
+ break;
+ case wgT('w'): case wgT('W'):
+ config.mode = MODE_RAM_WRITE;
+ break;
}
switch(v[1][1]){
+ case wgT('1'):
+ config.cpu.increase = 1;
+ break;
case wgT('2'):
config.cpu.increase = 2;
break;
config.control = &r->control;
config.cpu.access = &r->cpu;
config.ppu.access = &r->ppu;
- cui_gauge_new(&config.cpu.gauge, wgT("Program ROM"), 2, -2);
+ if(config.mode == MODE_ROM_DUMP){
+ cui_gauge_new(&config.cpu.gauge, wgT("Program ROM"), 2, -2);
+ }else{
+ cui_gauge_new(&config.cpu.gauge, wgT("Work RAM"), 2, -2);
+ }
cui_gauge_new(&config.ppu.gauge, wgT("Charcter ROM"), 1, -1);
config.except = except;
config.mappernum = -1;
}
config.battery = false;
log_set(&config.log);
- script_dump_execute(&config);
+ if(config.mode == MODE_ROM_DUMP){
+ script_dump_execute(&config);
+ }else{
+ script_workram_execute(&config);
+ }
cui_gauge_destory(&config.cpu.gauge);
cui_gauge_destory(&config.ppu.gauge);
}
{
PUTS(wgT("famicom bus simluator 'anago'"));
PRINTF(wgT("%s [mode] [script] [target] ....\n"), v);
+ PUTS(wgT("d - ROM dump with kazzo"));
+ PUTS(wgT("fF- flash program with kazzo"));
+ PUTS(wgT("r - workram read with kazzo"));
+ PUTS(wgT("w - workram write with kazzo"));
+ if(DEBUG == 1){
+ PUTS(wgT("z - ROM dump for test"));
+ PUTS(wgT("xX- flash program for test"));
+ PUTS(wgT("R - workram read for test"));
+ PUTS(wgT("W - workram write for test"));
+ }
}
-#if DEBUG==1
-extern const struct reader_driver DRIVER_DUMMY;
-#endif
-
#ifdef WIN32
int main(int c, char **vv)
#else
}
#endif
switch(v[1][0]){
-#if DEBUG==1
- case wgT('x'):
- r = &DRIVER_DUMMY;
-#endif
+ case wgT('x'): case wgT('X'):
+ r = &DRIVER_DUMMY; //though down
case wgT('f'): case wgT('F'):
program(c, v, r);
break;
-#if DEBUG==1
- case wgT('z'):
- r = &DRIVER_DUMMY;
-#endif
+ case wgT('z'): case wgT('R'): case wgT('W'):
+ r = &DRIVER_DUMMY; //though down
case wgT('d'): case wgT('D'):
+ case wgT('r'): case wgT('w'):
dump(c,v, r);
break;
default: