Bring the Olivetti M290 out of the Dev branch.
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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()
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 *);
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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 */
|
|
||||||
|
|||||||
@@ -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. */
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user