Bring the Olivetti M290 out of the Dev branch.

This commit is contained in:
OBattler
2025-05-28 05:51:40 +02:00
parent 265b69c7ea
commit 76e9a20e12
7 changed files with 15 additions and 36 deletions

View File

@@ -179,7 +179,6 @@ cmake_dependent_option(GUSMAX "Gravis UltraSound MAX"
cmake_dependent_option(ISAMEM_RAMPAGE "AST Rampage" ON "DEV_BRANCH" OFF) cmake_dependent_option(ISAMEM_RAMPAGE "AST Rampage" ON "DEV_BRANCH" OFF)
cmake_dependent_option(ISAMEM_IAB "Intel Above Board" ON "DEV_BRANCH" OFF) cmake_dependent_option(ISAMEM_IAB "Intel Above Board" ON "DEV_BRANCH" OFF)
cmake_dependent_option(ISAMEM_BRAT "BocaRAM/AT" ON "DEV_BRANCH" OFF) cmake_dependent_option(ISAMEM_BRAT "BocaRAM/AT" ON "DEV_BRANCH" OFF)
cmake_dependent_option(OLIVETTI "Olivetti M290" ON "DEV_BRANCH" OFF)
cmake_dependent_option(OPEN_AT "OpenAT" ON "DEV_BRANCH" OFF) cmake_dependent_option(OPEN_AT "OpenAT" ON "DEV_BRANCH" OFF)
cmake_dependent_option(OPL4ML "OPL4-ML daughterboard" ON "DEV_BRANCH" OFF) cmake_dependent_option(OPL4ML "OPL4-ML daughterboard" ON "DEV_BRANCH" OFF)
cmake_dependent_option(PCL "Generic PCL5e Printer" ON "DEV_BRANCH" OFF) cmake_dependent_option(PCL "Generic PCL5e Printer" ON "DEV_BRANCH" OFF)

View File

@@ -43,6 +43,7 @@ add_library(chipset OBJECT
isa486c.c isa486c.c
../ioapic.c ../ioapic.c
neat.c neat.c
olivetti_eva.c
opti283.c opti283.c
opti291.c opti291.c
opti391.c opti391.c
@@ -86,7 +87,3 @@ add_library(chipset OBJECT
vl82c480.c vl82c480.c
wd76c10.c wd76c10.c
) )
if(OLIVETTI)
target_sources(chipset PRIVATE olivetti_eva.c)
endif()

View File

@@ -73,26 +73,24 @@ olivetti_eva_write(uint16_t addr, uint8_t val, void *priv)
break; break;
case 0x069: case 0x069:
dev->reg_069 = val; dev->reg_069 = val;
/* mem_remap_top(0);
* Unfortunately, if triggered, the BIOS remapping function fails causing if (val == 0x01) {
* a fatal error. Therefore, this code section is currently commented.
*/
#if 0
if (val & 1) {
/* /*
* Set the register to 7 or above for the BIOS to trigger the * Set the register to 7 or above for the BIOS to trigger the
* memory remapping function if shadowing is active. * memory remapping function if shadowing is active.
*/ */
dev->reg_069 = 0x7; dev->reg_069 = 0x07;
} }
if (val & 8) { if (val & 0x08) {
/* /*
* Activate shadowing for region e0000-fffff * Activate shadowing for region e0000-fffff
*/ */
mem_remap_top(256); mem_remap_top(256);
mem_set_mem_state_both(0xa0000, 0x60000, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL); mem_set_mem_state_both(0xe0000, 0x20000, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL);
} else {
mem_remap_top(384);
mem_set_mem_state_both(0xe0000, 0x20000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
} }
#endif
break; break;
default: default:
break; break;
@@ -143,7 +141,7 @@ olivetti_eva_init(UNUSED(const device_t *info))
dev->reg_067 = 0x00; dev->reg_067 = 0x00;
/* RAM enable registers */ /* RAM enable registers */
dev->reg_069 = 0x0; dev->reg_069 = 0x00;
io_sethandler(0x0065, 0x0001, olivetti_eva_read, NULL, NULL, olivetti_eva_write, NULL, NULL, dev); io_sethandler(0x0065, 0x0001, olivetti_eva_read, NULL, NULL, olivetti_eva_write, NULL, NULL, dev);
io_sethandler(0x0067, 0x0001, olivetti_eva_read, NULL, NULL, olivetti_eva_write, NULL, NULL, dev); io_sethandler(0x0067, 0x0001, olivetti_eva_read, NULL, NULL, olivetti_eva_write, NULL, NULL, dev);
@@ -152,13 +150,6 @@ olivetti_eva_init(UNUSED(const device_t *info))
/* When shadowing is not enabled in BIOS, all upper memory is available as XMS */ /* When shadowing is not enabled in BIOS, all upper memory is available as XMS */
mem_remap_top(384); mem_remap_top(384);
/*
* Default settings when NVRAM is cleared activate shadowing.
* Thus, to avoid boot errors, remap only 256k from UMB to XMS.
* Remove this block once BIOS memory remapping works.
*/
mem_remap_top(256);
return dev; return dev;
} }

View File

@@ -481,9 +481,7 @@ extern int machine_at_dells200_init(const machine_t *);
extern int machine_at_pc8_init(const machine_t *); extern int machine_at_pc8_init(const machine_t *);
extern int machine_at_3302_init(const machine_t *); extern int machine_at_3302_init(const machine_t *);
#ifdef USE_OLIVETTI
extern int machine_at_m290_init(const machine_t *); extern int machine_at_m290_init(const machine_t *);
#endif /* USE_OLIVETTI */
extern int machine_at_shuttle386sx_init(const machine_t *); extern int machine_at_shuttle386sx_init(const machine_t *);
extern int machine_at_adi386sx_init(const machine_t *); extern int machine_at_adi386sx_init(const machine_t *);

View File

@@ -57,10 +57,6 @@ add_library(mch OBJECT
m_at_misc.c m_at_misc.c
) )
if(OLIVETTI)
target_compile_definitions(mch PRIVATE USE_OLIVETTI)
endif()
if(OPEN_AT) if(OPEN_AT)
target_compile_definitions(mch PRIVATE USE_OPEN_AT) target_compile_definitions(mch PRIVATE USE_OPEN_AT)
endif() endif()

View File

@@ -1069,7 +1069,6 @@ machine_at_pc916sx_init(const machine_t *model)
return ret; return ret;
} }
#ifdef USE_OLIVETTI
int int
machine_at_m290_init(const machine_t *model) machine_at_m290_init(const machine_t *model)
{ {
@@ -1081,15 +1080,16 @@ machine_at_m290_init(const machine_t *model)
if (bios_only || !ret) if (bios_only || !ret)
return ret; return ret;
machine_at_common_init_ex(model, 4); machine_at_common_init_ex(model, 6);
device_add(&keyboard_at_olivetti_device); device_add(&amstrad_megapc_nvr_device);
device_add(&olivetti_eva_device);
device_add(&port_6x_olivetti_device); device_add(&port_6x_olivetti_device);
if (fdc_current[0] == FDC_INTERNAL) if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device); device_add(&fdc_at_device);
device_add(&olivetti_eva_device); device_add(&keyboard_at_olivetti_device);
return ret; return ret;
} }
#endif /* USE_OLIVETTI */

View File

@@ -3096,7 +3096,6 @@ const machine_t machines[] = {
.snd_device = NULL, .snd_device = NULL,
.net_device = NULL .net_device = NULL
}, },
#ifdef USE_OLIVETTI
/* Has Olivetti KBC firmware. */ /* Has Olivetti KBC firmware. */
{ {
.name = "[ISA] Olivetti M290", .name = "[ISA] Olivetti M290",
@@ -3137,7 +3136,6 @@ const machine_t machines[] = {
.snd_device = NULL, .snd_device = NULL,
.net_device = NULL .net_device = NULL
}, },
#endif /* USE_OLIVETTI */
#ifdef USE_OPEN_AT #ifdef USE_OPEN_AT
/* Has IBM AT KBC firmware. */ /* Has IBM AT KBC firmware. */
{ {