Add the DEC Venturis 4xx

This commit is contained in:
BurnedPinguin
2023-07-22 23:06:43 +02:00
parent 6a18980528
commit c26327d9e2
5 changed files with 103 additions and 0 deletions

View File

@@ -548,6 +548,7 @@ extern int machine_at_spc7700plw_init(const machine_t *);
extern int machine_at_ms4134_init(const machine_t *);
extern int machine_at_tg486gp_init(const machine_t *);
extern int machine_at_tg486g_init(const machine_t *);
extern int machine_at_dvent4xx_init(const machine_t *);
extern int machine_at_ecsal486_init(const machine_t *);
extern int machine_at_ap4100aa_init(const machine_t *);
extern int machine_at_atc1762_init(const machine_t *);

View File

@@ -465,7 +465,9 @@ extern const device_t s3_bahamas64_vlb_device;
extern const device_t s3_bahamas64_pci_device;
extern const device_t s3_9fx_vlb_device;
extern const device_t s3_9fx_pci_device;
extern const device_t s3_phoenix_trio32_onboard_vlb_device;
extern const device_t s3_phoenix_trio32_vlb_device;
extern const device_t s3_phoenix_trio32_onboard_pci_device;
extern const device_t s3_phoenix_trio32_pci_device;
extern const device_t s3_diamond_stealth_se_vlb_device;
extern const device_t s3_diamond_stealth_se_pci_device;

View File

@@ -2107,6 +2107,29 @@ machine_at_tg486g_init(const machine_t *model)
return ret;
}
int
machine_at_dvent4xx_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/dvent4xx/Venturis466_BIOS.BIN",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
device_add(&sis_85c471_device);
device_add(&ide_cmd640_vlb_pri_device);
device_add(&fdc37c665_ide_device);
device_add(&keyboard_ps2_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(&s3_phoenix_trio32_onboard_vlb_device);
return ret;
}
int
machine_at_ecsal486_init(const machine_t *model)
{

View File

@@ -6293,6 +6293,45 @@ const machine_t machines[] = {
.snd_device = NULL,
.net_device = NULL
},
/* Unknown revision phoenix 1993 multikey */
{
.name = "[SiS 471] DEC Venturis 4xx",
.internal_name = "dvent4xx",
.type = MACHINE_TYPE_486_S3,
.chipset = MACHINE_CHIPSET_SIS_471,
.init = machine_at_dvent4xx_init,
.pad = 0,
.pad0 = 0,
.pad1 = MACHINE_AVAILABLE,
.pad2 = 0,
.cpu = {
.package = CPU_PKG_SOCKET3,
.block = CPU_BLOCK_NONE,
.min_bus = 0,
.max_bus = 0,
.min_voltage = 0,
.max_voltage = 0,
.min_multi = 0,
.max_multi = 0
},
.bus_flags = MACHINE_PS2,
.flags = MACHINE_IDE_DUAL | MACHINE_SUPER_IO | MACHINE_APM | MACHINE_VIDEO,
.ram = {
.min = 1024,
.max = 65536,
.step = 1024
},
.nvrmask = 127,
.kbc_device = NULL,
.kbc_p1 = 0,
.gpio = 0,
.device = &s3_phoenix_trio32_onboard_vlb_device,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.snd_device = NULL,
.net_device = NULL
},
/* This has an AMIKey-2, which is an updated version of type 'H'. */
{
.name = "[ALi M1429G] ECS AL486",

View File

@@ -77,6 +77,7 @@ enum {
S3_PARADISE_BAHAMAS64,
S3_DIAMOND_STEALTH64_964,
S3_PHOENIX_TRIO32,
S3_PHOENIX_TRIO32_ONBOARD,
S3_PHOENIX_TRIO64,
S3_PHOENIX_TRIO64_ONBOARD,
S3_PHOENIX_VISION864,
@@ -7866,6 +7867,14 @@ s3_init(const device_t *info)
else
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_trio32_vlb);
break;
case S3_PHOENIX_TRIO32_ONBOARD:
bios_fn = NULL;
chip = S3_TRIO32;
if (info->flags & DEVICE_PCI)
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_trio32_pci);
else
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_trio32_vlb);
break;
case S3_DIAMOND_STEALTH_SE:
bios_fn = ROM_DIAMOND_STEALTH_SE;
chip = S3_TRIO32;
@@ -8298,6 +8307,7 @@ s3_init(const device_t *info)
break;
case S3_PHOENIX_TRIO32:
case S3_PHOENIX_TRIO32_ONBOARD:
case S3_DIAMOND_STEALTH_SE:
svga->decode_mask = (4 << 20) - 1;
s3->id = 0xe1; /*Trio32*/
@@ -9057,6 +9067,20 @@ const device_t s3_9fx_pci_device = {
.config = s3_9fx_config
};
const device_t s3_phoenix_trio32_onboard_vlb_device = {
.name = "S3 Trio32 VLB On-Board (Phoenix)",
.internal_name = "px_trio32_onboard_vlb",
.flags = DEVICE_VLB,
.local = S3_PHOENIX_TRIO32_ONBOARD,
.init = s3_init,
.close = s3_close,
.reset = s3_reset,
{ .available = NULL },
.speed_changed = s3_speed_changed,
.force_redraw = s3_force_redraw,
.config = s3_phoenix_trio32_config
};
const device_t s3_phoenix_trio32_vlb_device = {
.name = "S3 Trio32 VLB (Phoenix)",
.internal_name = "px_trio32_vlb",
@@ -9071,6 +9095,20 @@ const device_t s3_phoenix_trio32_vlb_device = {
.config = s3_phoenix_trio32_config
};
const device_t s3_phoenix_trio32_onboard_pci_device = {
.name = "S3 Trio32 PCI On-Board (Phoenix)",
.internal_name = "px_trio32_onboard_pci",
.flags = DEVICE_PCI,
.local = S3_PHOENIX_TRIO32_ONBOARD,
.init = s3_init,
.close = s3_close,
.reset = s3_reset,
{ .available = NULL },
.speed_changed = s3_speed_changed,
.force_redraw = s3_force_redraw,
.config = s3_phoenix_trio32_config
};
const device_t s3_phoenix_trio32_pci_device = {
.name = "S3 Trio32 PCI (Phoenix)",
.internal_name = "px_trio32_pci",