ECP DMA jumpers, configuration via MBDMA where supported, and the Radisys Configuration device.

This commit is contained in:
OBattler
2025-08-13 12:52:24 +02:00
parent 71a1d2a3b6
commit a276ae94f8
15 changed files with 19659 additions and 18538 deletions

View File

@@ -798,6 +798,14 @@ load_ports(void)
char temp[512];
memset(temp, 0, sizeof(temp));
int has_jumpers = machine_has_jumpered_ecp_dma(machine, DMA_ANY);
int def_jumper = machine_get_default_jumpered_ecp_dma(machine);
jumpered_internal_ecp_dma = ini_section_get_int(cat, "jumpered_internal_ecp_dma", -1);
if (!has_jumpers || (jumpered_internal_ecp_dma == def_jumper))
ini_section_delete_var(cat, "jumpered_internal_ecp_dma");
for (int c = 0; c < (SERIAL_MAX - 1); c++) {
sprintf(temp, "serial%d_enabled", c + 1);
com_ports[c].enabled = !!ini_section_get_int(cat, temp, (c >= 2) ? 0 : 1);
@@ -2050,6 +2058,8 @@ config_load(void)
for (int i = 0; i < HDC_MAX; i++)
hdc_current[i] = hdc_get_from_internal_name("none");
jumpered_internal_ecp_dma = -1;
com_ports[0].enabled = 1;
com_ports[1].enabled = 1;
for (i = 2; i < (SERIAL_MAX - 1); i++)
@@ -2711,6 +2721,14 @@ save_ports(void)
ini_section_t cat = ini_find_or_create_section(config, "Ports (COM & LPT)");
char temp[512];
int has_jumpers = machine_has_jumpered_ecp_dma(machine, DMA_ANY);
int def_jumper = machine_get_default_jumpered_ecp_dma(machine);
if (!has_jumpers || (jumpered_internal_ecp_dma == def_jumper))
ini_section_delete_var(cat, "jumpered_internal_ecp_dma");
else
ini_section_set_int(cat, "jumpered_internal_ecp_dma", jumpered_internal_ecp_dma);
for (int c = 0; c < (SERIAL_MAX - 1); c++) {
sprintf(temp, "serial%d_enabled", c + 1);
if (((c < 2) && com_ports[c].enabled) || ((c >= 2) && !com_ports[c].enabled))