From ba57ed190b26a8b72dbbfba7a3137b311cb2aa62 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Sun, 8 Jan 2023 15:58:36 -0500 Subject: [PATCH] Fix a bug in the VTech Laser Turbo XT --- src/include/86box/keyboard.h | 4 ++-- src/machine/m_xt_laserxt.c | 31 +++++++++++++++++++------------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/include/86box/keyboard.h b/src/include/86box/keyboard.h index 1f7d8860c..b89c4504d 100644 --- a/src/include/86box/keyboard.h +++ b/src/include/86box/keyboard.h @@ -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); diff --git a/src/machine/m_xt_laserxt.c b/src/machine/m_xt_laserxt.c index 02635ee8b..418835a0b 100644 --- a/src/machine/m_xt_laserxt.c +++ b/src/machine/m_xt_laserxt.c @@ -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; }