Merge pull request #3147 from jriwanek-forks/machine_table

Fix a bug in the VTech Laser Turbo XT
This commit is contained in:
Miran Grča
2023-03-01 05:45:38 +01:00
committed by GitHub
2 changed files with 21 additions and 14 deletions

View File

@@ -152,7 +152,7 @@ extern const device_t keyboard_xt_t1x00_device;
extern const device_t keyboard_tandy_device;
# if defined(DEV_BRANCH) && defined(USE_LASERXT)
extern const device_t keyboard_xt_lxt3_device;
# endif
# endif /*defined(DEV_BRANCH) && defined(USE_LASERXT) */
extern const device_t keyboard_xt_olivetti_device;
extern const device_t keyboard_xt_zenith_device;
extern const device_t keyboard_xtclone_device;
@@ -176,7 +176,7 @@ extern const device_t keyboard_ps2_ami_pci_device;
extern const device_t keyboard_ps2_intel_ami_pci_device;
extern const device_t keyboard_ps2_acer_pci_device;
extern const device_t keyboard_ps2_ali_pci_device;
#endif
#endif /*EMU_DEVICE_H*/
extern void keyboard_init(void);
extern void keyboard_close(void);

View File

@@ -136,6 +136,22 @@ laserxt_init(int is_lxt3)
laserxt_is_lxt3 = is_lxt3;
}
static void
machine_xt_laserxt_common_init(const machine_t *model,int is_lxt3)
{
machine_common_init(model);
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
nmi_init();
standalone_gameport_type = &gameport_device;
laserxt_init(is_lxt3);
}
int
machine_xt_laserxt_init(const machine_t *model)
{
@@ -147,9 +163,9 @@ machine_xt_laserxt_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_xt_init(model);
device_add(&keyboard_xt_device);
laserxt_init(0);
machine_xt_laserxt_common_init(model, 0);
return ret;
}
@@ -165,18 +181,9 @@ machine_xt_lxt3_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_common_init(model);
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
device_add(&keyboard_xt_lxt3_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
nmi_init();
standalone_gameport_type = &gameport_device;
laserxt_init(1);
machine_xt_laserxt_common_init(model, 1);
return ret;
}