summaryrefslogtreecommitdiff
path: root/emu/emu.c
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2020-11-28 11:20:03 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2020-11-28 11:20:03 +0100
commitaca930d803177cb6ea8ebadd77b6ef09ab2b5b49 (patch)
treee35da8c68588a28534ae51c47025214fe5450e17 /emu/emu.c
parentf829f6893d94ed52044bf007bc447526c9d5e653 (diff)
download6502-aca930d803177cb6ea8ebadd77b6ef09ab2b5b49.tar.gz
6502-aca930d803177cb6ea8ebadd77b6ef09ab2b5b49.tar.bz2
addressed initializiation of components and valgrindified
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 );
}