diff --git a/src/machine/m_at_headland.c b/src/machine/m_at_headland.c index b16b8b794..4a0f9861c 100644 --- a/src/machine/m_at_headland.c +++ b/src/machine/m_at_headland.c @@ -533,7 +533,10 @@ headland_init(void) void machine_at_headland_init(const machine_t *model) { - machine_at_common_ide_init(model); + if (romset == ROM_TG286M) + machine_at_common_init(model); + else + machine_at_common_ide_init(model); device_add(&keyboard_at_ami_device); device_add(&fdc_at_device); diff --git a/src/pc.c b/src/pc.c index 25edae69a..ef1381563 100644 --- a/src/pc.c +++ b/src/pc.c @@ -8,7 +8,7 @@ * * Main emulator module where most things are controlled. * - * Version: @(#)pc.c 1.0.74 2018/08/04 + * Version: @(#)pc.c 1.0.75 2018/08/16 * * Authors: Sarah Walker, * Miran Grca, @@ -766,6 +766,7 @@ pc_reset_hard_init(void) scsi_disk_hard_reset(); /* Initialize the actual machine and its basic modules. */ + video_font_reset(); /* Reset (deallocate) the video font arrays. */ machine_init(); fdd_reset(); diff --git a/src/video/vid_table.c b/src/video/vid_table.c index 7f49f74c5..d329e655f 100644 --- a/src/video/vid_table.c +++ b/src/video/vid_table.c @@ -8,7 +8,7 @@ * * Define all known video cards. * - * Version: @(#)vid_table.c 1.0.32 2018/08/16 + * Version: @(#)vid_table.c 1.0.33 2018/08/16 * * Authors: Miran Grca, * Fred N. van Kempen, @@ -196,6 +196,16 @@ vid_table_log(const char *fmt, ...) } +void +video_font_reset(void) +{ + if (fontdatksc5601) { + free(fontdatksc5601); + fontdatksc5601 = NULL; + } +} + + void video_reset(int card) { @@ -206,11 +216,6 @@ video_reset(int card) cga_palette = 0; cgapal_rebuild(); - if (fontdatksc5601) { - free(fontdatksc5601); - fontdatksc5601 = NULL; - } - /* Do not initialize internal cards here. */ if (!(card == GFX_NONE) && \ !(card == GFX_INTERNAL) && !machines[machine].fixed_gfxcard) { diff --git a/src/video/video.c b/src/video/video.c index a296f16ef..c31afb3e9 100644 --- a/src/video/video.c +++ b/src/video/video.c @@ -40,7 +40,7 @@ * W = 3 bus clocks * L = 4 bus clocks * - * Version: @(#)video.c 1.0.23 2018/05/25 + * Version: @(#)video.c 1.0.24 2018/08/16 * * Authors: Sarah Walker, * Miran Grca, @@ -79,8 +79,8 @@ uint8_t fontdat[2048][8]; /* IBM CGA font */ uint8_t fontdatm[2048][16]; /* IBM MDA font */ uint8_t fontdatw[512][32]; /* Wyse700 font */ uint8_t fontdat8x12[256][16]; /* MDSI Genius font */ -dbcs_font_t *fontdatksc5601; /* Korean KSC-5601 font */ -dbcs_font_t *fontdatksc5601_user; /* Korean KSC-5601 user defined font */ +dbcs_font_t *fontdatksc5601 = NULL; /* Korean KSC-5601 font */ +dbcs_font_t *fontdatksc5601_user = NULL; /* Korean KSC-5601 user defined font */ uint32_t pal_lookup[256]; int xsize = 1, ysize = 1; diff --git a/src/video/video.h b/src/video/video.h index fdf3cc34b..ed960d9bb 100644 --- a/src/video/video.h +++ b/src/video/video.h @@ -243,6 +243,7 @@ extern void updatewindowsize(int x, int y); extern void video_init(void); extern void video_close(void); +extern void video_font_reset(void); extern void video_reset(int card); extern uint8_t video_force_resize_get(void); extern void video_force_resize_set(uint8_t res);