DECpc LPV fixes and implementation of the on-board S3 805 with the AT&T 490 RAMDAC, fixes #2349.
This commit is contained in:
@@ -441,6 +441,7 @@ extern const device_t s3_metheus_86c928_isa_device;
|
|||||||
extern const device_t s3_metheus_86c928_vlb_device;
|
extern const device_t s3_metheus_86c928_vlb_device;
|
||||||
extern const device_t s3_spea_mercury_lite_86c928_pci_device;
|
extern const device_t s3_spea_mercury_lite_86c928_pci_device;
|
||||||
extern const device_t s3_spea_mirage_86c801_isa_device;
|
extern const device_t s3_spea_mirage_86c801_isa_device;
|
||||||
|
extern const device_t s3_86c805_onboard_vlb_device;
|
||||||
extern const device_t s3_spea_mirage_86c805_vlb_device;
|
extern const device_t s3_spea_mirage_86c805_vlb_device;
|
||||||
extern const device_t s3_mirocrystal_8s_805_vlb_device;
|
extern const device_t s3_mirocrystal_8s_805_vlb_device;
|
||||||
extern const device_t s3_mirocrystal_10sd_805_vlb_device;
|
extern const device_t s3_mirocrystal_10sd_805_vlb_device;
|
||||||
|
|||||||
@@ -441,11 +441,14 @@ machine_at_decpclpv_init(const machine_t *model)
|
|||||||
machine_at_common_init(model);
|
machine_at_common_init(model);
|
||||||
|
|
||||||
device_add(&sis_85c461_device);
|
device_add(&sis_85c461_device);
|
||||||
|
|
||||||
|
if (gfxcard == VID_INTERNAL)
|
||||||
|
device_add(&s3_86c805_onboard_vlb_device);
|
||||||
|
|
||||||
/* TODO: Phoenix MultiKey KBC */
|
/* TODO: Phoenix MultiKey KBC */
|
||||||
device_add(&keyboard_ps2_ami_pci_device);
|
device_add(&keyboard_ps2_ami_pci_device);
|
||||||
device_add(&ide_isa_2ch_device);
|
device_add(&ide_isa_2ch_device);
|
||||||
device_add(&fdc37c663_device);
|
device_add(&fdc37c663_ide_device);
|
||||||
/* TODO: On-board S3 805 with AT&T 490 RAM DAC. */
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4721,7 +4721,7 @@ const machine_t machines[] = {
|
|||||||
.max_multi = 0
|
.max_multi = 0
|
||||||
},
|
},
|
||||||
.bus_flags = MACHINE_PS2,
|
.bus_flags = MACHINE_PS2,
|
||||||
.flags = MACHINE_IDE_DUAL, /* No MACHINE_VIDEO yet, because on-board video is not yet implemented. */
|
.flags = MACHINE_IDE_DUAL | MACHINE_VIDEO,
|
||||||
.ram = {
|
.ram = {
|
||||||
.min = 1024,
|
.min = 1024,
|
||||||
.max = 32768,
|
.max = 32768,
|
||||||
@@ -4731,7 +4731,7 @@ const machine_t machines[] = {
|
|||||||
.kbc = KBC_UNKNOWN,
|
.kbc = KBC_UNKNOWN,
|
||||||
.kbc_p1 = 0,
|
.kbc_p1 = 0,
|
||||||
.gpio = 0,
|
.gpio = 0,
|
||||||
.device = NULL,
|
.device = &s3_86c805_onboard_vlb_device,
|
||||||
.vid_device = NULL
|
.vid_device = NULL
|
||||||
},
|
},
|
||||||
/* Uses an NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware. */
|
/* Uses an NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware. */
|
||||||
|
|||||||
@@ -107,7 +107,8 @@ enum
|
|||||||
S3_MIROCRYSTAL8S_805,
|
S3_MIROCRYSTAL8S_805,
|
||||||
S3_NUMBER9_9FX_531,
|
S3_NUMBER9_9FX_531,
|
||||||
S3_NUMBER9_9FX_771,
|
S3_NUMBER9_9FX_771,
|
||||||
S3_SPEA_MERCURY_LITE_PCI
|
S3_SPEA_MERCURY_LITE_PCI,
|
||||||
|
S3_86C805_ONBOARD
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -6803,6 +6804,11 @@ static void *s3_init(const device_t *info)
|
|||||||
chip = S3_86C801;
|
chip = S3_86C801;
|
||||||
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_86c801);
|
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_86c801);
|
||||||
break;
|
break;
|
||||||
|
case S3_86C805_ONBOARD:
|
||||||
|
bios_fn = NULL;
|
||||||
|
chip = S3_86C805;
|
||||||
|
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_86c805);
|
||||||
|
break;
|
||||||
case S3_SPEA_MIRAGE_86C805:
|
case S3_SPEA_MIRAGE_86C805:
|
||||||
bios_fn = ROM_SPEA_MIRAGE_86C805;
|
bios_fn = ROM_SPEA_MIRAGE_86C805;
|
||||||
chip = S3_86C805;
|
chip = S3_86C805;
|
||||||
@@ -7213,6 +7219,20 @@ static void *s3_init(const device_t *info)
|
|||||||
svga->getclock = av9194_getclock;
|
svga->getclock = av9194_getclock;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case S3_86C805_ONBOARD:
|
||||||
|
svga->decode_mask = (2 << 20) - 1;
|
||||||
|
stepping = 0xa0; /*86C801/86C805*/
|
||||||
|
s3->id = stepping;
|
||||||
|
s3->id_ext = stepping;
|
||||||
|
s3->id_ext_pci = 0;
|
||||||
|
s3->packed_mmio = 0;
|
||||||
|
svga->crtc[0x5a] = 0x0a;
|
||||||
|
|
||||||
|
svga->ramdac = device_add(&att490_ramdac_device);
|
||||||
|
svga->clock_gen = device_add(&av9194_device);
|
||||||
|
svga->getclock = av9194_getclock;
|
||||||
|
break;
|
||||||
|
|
||||||
case S3_PHOENIX_86C801:
|
case S3_PHOENIX_86C801:
|
||||||
case S3_PHOENIX_86C805:
|
case S3_PHOENIX_86C805:
|
||||||
svga->decode_mask = (2 << 20) - 1;
|
svga->decode_mask = (2 << 20) - 1;
|
||||||
@@ -7818,6 +7838,20 @@ const device_t s3_spea_mirage_86c801_isa_device = {
|
|||||||
.config = s3_9fx_config
|
.config = s3_9fx_config
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const device_t s3_86c805_onboard_vlb_device = {
|
||||||
|
.name = "S3 86c805 VLB On-Board",
|
||||||
|
.internal_name = "px_s3_805_onboard_vlb",
|
||||||
|
.flags = DEVICE_VLB,
|
||||||
|
.local = S3_86C805_ONBOARD,
|
||||||
|
.init = s3_init,
|
||||||
|
.close = s3_close,
|
||||||
|
.reset = s3_reset,
|
||||||
|
{ .available = NULL },
|
||||||
|
.speed_changed = s3_speed_changed,
|
||||||
|
.force_redraw = s3_force_redraw,
|
||||||
|
.config = s3_9fx_config
|
||||||
|
};
|
||||||
|
|
||||||
const device_t s3_spea_mirage_86c805_vlb_device = {
|
const device_t s3_spea_mirage_86c805_vlb_device = {
|
||||||
.name = "S3 86c805 VLB (SPEA Mirage VL)",
|
.name = "S3 86c805 VLB (SPEA Mirage VL)",
|
||||||
.internal_name = "px_s3_v7_805_vlb",
|
.internal_name = "px_s3_v7_805_vlb",
|
||||||
|
|||||||
Reference in New Issue
Block a user