Added the following new machines:

- Zenith Data Systems Z-151/152/161
- Zenith Data Systems Z-159
- Columbia Data Products MPC-1600
- Eagle PC Spirit

Minor tweaks and renamings
This commit is contained in:
EngiNerd89
2020-12-19 12:16:42 +01:00
parent 4a00adc501
commit 643f9b46ea
6 changed files with 255 additions and 47 deletions

View File

@@ -42,6 +42,8 @@
#include <86box/lpt.h>
#include <86box/serial.h>
#include <86box/machine.h>
#include <86box/io.h>
#include <86box/vid_cga.h>
typedef struct {
@@ -105,8 +107,36 @@ static const device_t zenith_scratchpad_device = {
};
void
machine_zenith_init(const machine_t *model){
machine_common_init(model);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
device_add(&zenith_scratchpad_device);
pit_ctr_set_out_func(&pit->counters[1], pit_refresh_timer_xt);
device_add(&keyboard_xt_zenith_device);
nmi_init();
}
const device_t *
z184_get_device(void)
{
return &cga_device;
}
/*
* Current bugs and limitations:
* - missing NVRAM implementation
*/
int
machine_xt_zenith_init(const machine_t *model)
machine_xt_z184_init(const machine_t *model)
{
int ret;
@@ -114,22 +144,61 @@ machine_xt_zenith_init(const machine_t *model)
0x000f8000, 32768, 0);
if (bios_only || !ret)
return ret;
return ret;
machine_common_init(model);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
machine_zenith_init(model);
lpt1_remove(); /* only one parallel port */
lpt2_remove();
lpt1_init(0x278);
device_add(&i8250_device);
serial_set_next_inst(2); /* So that serial_standalone_init() won't do anything. */
device_add(&zenith_scratchpad_device);
pit_ctr_set_out_func(&pit->counters[1], pit_refresh_timer_xt);
device_add(&keyboard_xt_compaq_device);
nmi_init();
device_add(&cga_device);
return ret;
}
int
machine_xt_z151_init(const machine_t *model)
{
int ret;
ret = bios_load_linear(L"roms/machines/zdsz151/444-229-18.bin",
0x000fc000, 32768, 0);
if (ret) {
bios_load_aux_linear(L"roms/machines/zdsz151/444-260-18.bin",
0x000f8000, 16384, 0);
}
if (bios_only || !ret)
return ret;
machine_zenith_init(model);
return ret;
}
/*
* Current bugs and limitations:
* - Memory board support for EMS currently missing
*/
int
machine_xt_z159_init(const machine_t *model)
{
int ret;
ret = bios_load_linear(L"roms/machines/zdsz159/z159m v2.9e.10d",
0x000f8000, 32768, 0);
if (bios_only || !ret)
return ret;
machine_zenith_init(model);
/* parallel port is on the memory board */
lpt1_remove(); /* only one parallel port */
lpt2_remove();
lpt1_init(0x278);
return ret;
}