summaryrefslogtreecommitdiff
path: root/emu/emu.c
diff options
context:
space:
mode:
Diffstat (limited to 'emu/emu.c')
-rw-r--r--emu/emu.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/emu/emu.c b/emu/emu.c
index 95bc5cb..53431c2 100644
--- a/emu/emu.c
+++ b/emu/emu.c
@@ -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 );
}