From 97b3ca34302ff9c739f52a7dd3dbeaf0929bce1b Mon Sep 17 00:00:00 2001 From: waltje Date: Fri, 13 Oct 2017 02:41:17 -0400 Subject: [PATCH] Fix for ROMs not loading properly on many machines - my bad. --- src/machine/machine.c | 8 ++++++-- src/machine/machine.h | 4 +++- src/machine/machine_amstrad.c | 3 --- src/machine/machine_at.c | 2 -- src/machine/machine_europc.c | 1 - src/machine/machine_olivetti_m24.c | 1 - src/machine/machine_pcjr.c | 1 - src/machine/machine_ps1.c | 6 ------ src/machine/machine_ps2_isa.c | 6 ------ src/machine/machine_ps2_mca.c | 6 ------ src/machine/machine_tandy.c | 4 +--- src/machine/machine_xt.c | 2 -- 12 files changed, 10 insertions(+), 34 deletions(-) diff --git a/src/machine/machine.c b/src/machine/machine.c index 208f328aa..2b69c25ee 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -8,7 +8,7 @@ * * Handling of the emulated machines. * - * Version: @(#)machine.c 1.0.18 2017/10/07 + * Version: @(#)machine.c 1.0.19 2017/10/12 * * Authors: Sarah Walker, * Miran Grca, @@ -140,7 +140,11 @@ machine_init(void) { pclog("Initializing as \"%s\"\n", machine_getname()); - AMSTRAD = AT = PCI = TANDY = 0; + /* Set up the architecture flags. */ + AT = IS_ARCH(machine, MACHINE_AT); + PCI = IS_ARCH(machine, MACHINE_PCI); + AMSTRAD = IS_ARCH(machine, MACHINE_AMSTRAD); + TANDY = 0; /* Load the machine's ROM BIOS. */ rom_load_bios(romset); diff --git a/src/machine/machine.h b/src/machine/machine.h index 3e706a7e9..590d13a07 100644 --- a/src/machine/machine.h +++ b/src/machine/machine.h @@ -8,7 +8,7 @@ * * Handling of the emulated machines. * - * Version: @(#)machine.h 1.0.6 2017/10/07 + * Version: @(#)machine.h 1.0.7 2017/10/12 * * Authors: Sarah Walker, * Miran Grca, @@ -41,6 +41,8 @@ #define MACHINE_OLIM24 0x080000 #define MACHINE_RM 0x100000 +#define IS_ARCH(m, a) (machines[(m)].flags & (a)) ? 1 : 0; + typedef struct _machine_ { char name[64]; diff --git a/src/machine/machine_amstrad.c b/src/machine/machine_amstrad.c index 610807afe..d2eb674cf 100644 --- a/src/machine/machine_amstrad.c +++ b/src/machine/machine_amstrad.c @@ -138,11 +138,8 @@ static void amstrad_init(void) void machine_amstrad_init(machine_t *model) { - AMSTRAD = 1; - machine_common_init(model); - mem_add_bios(); amstrad_init(); keyboard_amstrad_init(); diff --git a/src/machine/machine_at.c b/src/machine/machine_at.c index e80d1afab..0c6faab0c 100644 --- a/src/machine/machine_at.c +++ b/src/machine/machine_at.c @@ -21,8 +21,6 @@ void machine_at_init(machine_t *model) { - AT = 1; - machine_common_init(model); pit_set_out_func(&pit, 1, pit_refresh_timer_at); diff --git a/src/machine/machine_europc.c b/src/machine/machine_europc.c index 182662a91..9328293a3 100644 --- a/src/machine/machine_europc.c +++ b/src/machine/machine_europc.c @@ -135,7 +135,6 @@ machine_europc_init(machine_t *model) { machine_common_init(model); - mem_add_bios(); lpt3_init(0x3bc); jim_init(); keyboard_xt_init(); diff --git a/src/machine/machine_olivetti_m24.c b/src/machine/machine_olivetti_m24.c index 5609d4514..36ca77f1f 100644 --- a/src/machine/machine_olivetti_m24.c +++ b/src/machine/machine_olivetti_m24.c @@ -40,7 +40,6 @@ machine_olim24_init(machine_t *model) { machine_common_init(model); - mem_add_bios(); keyboard_olim24_init(); /* FIXME: make sure this is correct?? */ diff --git a/src/machine/machine_pcjr.c b/src/machine/machine_pcjr.c index 0114a164d..aace2715e 100644 --- a/src/machine/machine_pcjr.c +++ b/src/machine/machine_pcjr.c @@ -20,7 +20,6 @@ void machine_pcjr_init(machine_t *model) { - mem_add_bios(); fdc_add_pcjr(); pic_init(); pit_init(); diff --git a/src/machine/machine_ps1.c b/src/machine/machine_ps1.c index b1aa7b056..3e2be3012 100644 --- a/src/machine/machine_ps1.c +++ b/src/machine/machine_ps1.c @@ -338,14 +338,8 @@ static void ps1mb_m2133_init(void) static void machine_ps1_common_init(machine_t *model) { - AT = 1; - machine_common_init(model); -#if 0 - /* Already done in machine.c */ - mem_add_bios(); -#endif pit_set_out_func(&pit, 1, pit_refresh_timer_at); dma16_init(); if (romset != ROM_IBMPS1_2011) diff --git a/src/machine/machine_ps2_isa.c b/src/machine/machine_ps2_isa.c index c5e762b7a..c3b71007a 100644 --- a/src/machine/machine_ps2_isa.c +++ b/src/machine/machine_ps2_isa.c @@ -156,14 +156,8 @@ static void ps2board_init(void) void machine_ps2_m30_286_init(machine_t *model) { - AT = 1; - machine_common_init(model); -#if 0 - /* Already done in machine.c */ -#endif - mem_add_bios(); pit_set_out_func(&pit, 1, pit_refresh_timer_at); dma16_init(); keyboard_at_init(); diff --git a/src/machine/machine_ps2_mca.c b/src/machine/machine_ps2_mca.c index b68fdfd65..c4ddc4ec9 100644 --- a/src/machine/machine_ps2_mca.c +++ b/src/machine/machine_ps2_mca.c @@ -805,14 +805,8 @@ static void ps2_mca_board_model_80_type2_init() static void machine_ps2_common_init(machine_t *model) { - AT = 1; - machine_common_init(model); -#if 1 - /* Already done in machine.c. */ - mem_add_bios(); -#endif dma16_init(); ps2_dma_init(); keyboard_at_init(); diff --git a/src/machine/machine_tandy.c b/src/machine/machine_tandy.c index d583b4827..0698ad6f9 100644 --- a/src/machine/machine_tandy.c +++ b/src/machine/machine_tandy.c @@ -19,11 +19,10 @@ void machine_tandy1k_init(machine_t *model) { - TANDY = 1; + TANDY = 1; machine_common_init(model); - mem_add_bios(); keyboard_tandy_init(); if (romset == ROM_TANDY) device_add(&sn76489_device); @@ -42,7 +41,6 @@ machine_tandy1ksl2_init(machine_t *model) { machine_common_init(model); - mem_add_bios(); keyboard_tandy_init(); device_add(&pssj_device); nmi_init(); diff --git a/src/machine/machine_xt.c b/src/machine/machine_xt.c index b148016f9..183482fd5 100644 --- a/src/machine/machine_xt.c +++ b/src/machine/machine_xt.c @@ -18,8 +18,6 @@ machine_xt_init(machine_t *model) { machine_common_init(model); - mem_add_bios(); - pit_set_out_func(&pit, 1, pit_refresh_timer_xt); keyboard_xt_init();