diff options
Diffstat (limited to 'emu/emu.c')
-rw-r--r-- | emu/emu.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -34,23 +34,23 @@ int main( int argc, char *argv[] ) } if( args_info.long_version_given ) { - printf( "emu version: %s, Copyright (c) 2020, LGPLv3, Andreas Baumann <mail at andreasbaumann dot cc>\n", EMU_VERSION ); + printf( "emu version: %s, Copyright (c) 2020, GPLv3, Andreas Baumann <mail at andreasbaumann dot cc>\n", EMU_VERSION ); exit( EXIT_SUCCESS ); } bus_init( &bus ); - memory_init( &rom, MEMORY_ROM, ROM_START, ROM_SIZE ); + memory_init( &rom, MEMORY_ROM, ROM_START, ROM_SIZE, args_info.initialize_given ); memory_load( &rom, args_info.rom_arg ); bus_register( &bus, &rom.base, ROM_START, ROM_END ); - memory_init( &ram, MEMORY_RAM, RAM_START, RAM_SIZE ); + memory_init( &ram, MEMORY_RAM, RAM_START, RAM_SIZE, args_info.initialize_given ); bus_register( &bus, &ram.base, RAM_START, RAM_END ); - seg7_init( &seg7, VIA_START ); + seg7_init( &seg7, VIA_START, args_info.initialize_given ); bus_register( &bus, &seg7.base, VIA_START, VIA_END ); - cpu_6502_init( &cpu, &bus ); + cpu_6502_init( &cpu, &bus, args_info.initialize_given ); if( args_info.debug_given ) { if( args_info.print_cpu_given ) { cpu.debug_flags |= DEBUG_STATUS; @@ -65,7 +65,6 @@ int main( int argc, char *argv[] ) seg7.debug = true; } } - cpu_6502_reset( &cpu ); emul_init( &emul, &cpu, &bus, args_info.width_arg, args_info.height_arg ); if( args_info.gui_given ) { @@ -76,10 +75,13 @@ int main( int argc, char *argv[] ) emul.gui = true; } emul_start( &emul ); + + cpu_6502_reset( &cpu ); emul_run( &emul, args_info.steps_arg ); bus_deinit( &bus ); emul_free( &emul ); + cmdline_parser_free( &args_info ); exit( EXIT_SUCCESS ); } |