X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=emulator.c;h=5283fcea281135a67d253ee24bb198aef760f423;hb=f441dadfe6b7451f2b78d4153afecebdc1ffc4b1;hp=78ee1a5d18e5e2ad5df3bfbfed94e33bc94a5885;hpb=57cb77b19fa1aff0e058500f3894479771682a0b;p=pistorm diff --git a/emulator.c b/emulator.c index 78ee1a5..5283fce 100644 --- a/emulator.c +++ b/emulator.c @@ -461,8 +461,12 @@ int main(int argc, char *argv[]) { printf("%s switch found, but no config filename specified.\n", argv[g]); } else { g++; - cfg = load_config_file(argv[g]); - if (cfg) { + FILE *chk = fopen(argv[g], "rb"); + if (chk == NULL) { + printf("Config file %s does not exist, please check that you've specified the path correctly.\n", argv[g]); + } else { + fclose(chk); + load_new_config = 1; set_pistorm_devcfg_filename(argv[g]); } } @@ -480,19 +484,20 @@ int main(int argc, char *argv[]) { switch_config: srand(clock()); + ps_setup_protocol(); + ps_reset_state_machine(); + ps_pulse_reset(); + usleep(1500); + if (load_new_config != 0) { uint8_t config_action = load_new_config - 1; load_new_config = 0; - free_config_file(cfg); if (cfg) { + free_config_file(cfg); free(cfg); cfg = NULL; } - /*for(int i = 0; i < 2 * SIZE_MEGA; i++) { - write8(i, 0); - }*/ - switch(config_action) { case PICFG_LOAD: case PICFG_RELOAD: @@ -569,43 +574,11 @@ switch_config: InitGayle(); signal(SIGINT, sigint_handler); - /*setup_io(); - - //goto skip_everything; - - // Enable 200MHz CLK output on GPIO4, adjust divider and pll source depending - // on pi model - printf("Enable 200MHz GPCLK0 on GPIO4\n"); - gpio_enable_200mhz(); - - // reset cpld statemachine first - - write_reg(0x01); - usleep(100); - usleep(1500); - write_reg(0x00); - usleep(100); - // reset amiga and statemachine - skip_everything:; - - usleep(1500); - - m68k_init(); - printf("Setting CPU type to %d.\n", cpu_type); - m68k_set_cpu_type(cpu_type); - cpu_pulse_reset(); - - if (maprom == 1) { - m68k_set_reg(M68K_REG_PC, 0xF80002); - } else { - m68k_set_reg(M68K_REG_PC, 0x0); - }*/ - ps_setup_protocol(); ps_reset_state_machine(); ps_pulse_reset(); - usleep(1500); + m68k_init(); printf("Setting CPU type to %d.\n", cpu_type); m68k_set_cpu_type(cpu_type);