From cb67a389b17ec1aa03be9a0fa51e631b2160e659 Mon Sep 17 00:00:00 2001 From: Akamaki <97360908+akmed772@users.noreply.github.com> Date: Sat, 15 Feb 2025 08:14:31 +0900 Subject: [PATCH] modified ps/55 configuration, added a mca func I forgot updating some files --- src/86box.c | 2 +- src/config.c | 6 ++++++ src/mca.c | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/86box.c b/src/86box.c index 82eedbd78..9b77263a2 100644 --- a/src/86box.c +++ b/src/86box.c @@ -1062,7 +1062,7 @@ pc_init_modules(void) void pc_send_ca(uint16_t sc) { - /* Use R-Alt because 5576-002 keyboard assigns L-Alt as */ + /* Use R-Alt because PS/55 DOS assigns L-Alt as Kanji */ keyboard_input(1, 0x1D); /* Ctrl key pressed */ keyboard_input(1, 0x138); /* R-Alt key pressed */ keyboard_input(1, sc); diff --git a/src/config.c b/src/config.c index 2c0781028..7a5d76465 100644 --- a/src/config.c +++ b/src/config.c @@ -456,6 +456,7 @@ load_video(void) ibm8514_active = ibm8514_standalone_enabled; xga_standalone_enabled = !!ini_section_get_int(cat, "xga", 0); xga_active = xga_standalone_enabled; + da2_standalone_enabled = !!ini_section_get_int(cat, "da2", 0); show_second_monitors = !!ini_section_get_int(cat, "show_second_monitors", 1); video_fullscreen_scale_maximized = !!ini_section_get_int(cat, "video_fullscreen_scale_maximized", 0); @@ -2013,6 +2014,11 @@ save_video(void) else ini_section_set_int(cat, "xga", xga_standalone_enabled); + if (da2_standalone_enabled == 0) + ini_section_delete_var(cat, "da2"); + else + ini_section_set_int(cat, "da2", da2_standalone_enabled); + // TODO for (uint8_t i = 1; i < GFXCARD_MAX; i ++) { if (gfxcard[i] == 0) diff --git a/src/mca.c b/src/mca.c index 871060bb4..a14fea6fa 100644 --- a/src/mca.c +++ b/src/mca.c @@ -101,3 +101,19 @@ mca_add(uint8_t (*read)(int addr, void *priv), void (*write)(int addr, uint8_t v } } } + +void +mca_add_to_slot(uint8_t (*read)(int addr, void* priv), void (*write)(int addr, uint8_t val, void* priv), uint8_t(*feedb)(void* priv), void (*reset)(void* priv), void* priv, int c) +{ + if (mca_card_read[c] || mca_card_write[c]) + { + //pclog("cannot add the device to slot %d\n", num); + return; + } + mca_card_read[c] = read; + mca_card_write[c] = write; + mca_card_feedb[c] = feedb; + mca_card_reset[c] = reset; + mca_priv[c] = priv; + return; +}