mirror of
https://github.com/86Box/86Box.git
synced 2026-02-21 09:05:32 -07:00
Merge pull request #6822 from win2kgamer/clgd5428-fix
Cirrus VBIOS fixes part deux
This commit is contained in:
@@ -384,6 +384,7 @@ extern const device_t gd5424_onboard_device;
|
||||
extern const device_t gd5426_isa_device;
|
||||
extern const device_t gd5426_diamond_speedstar_pro_a1_isa_device;
|
||||
extern const device_t gd5426_vlb_device;
|
||||
extern const device_t gd5426_onboard_isa_device;
|
||||
extern const device_t gd5426_onboard_device;
|
||||
extern const device_t gd5428_isa_device;
|
||||
extern const device_t gd5428_vlb_onboard_device;
|
||||
|
||||
@@ -7779,7 +7779,7 @@ const machine_t machines[] = {
|
||||
.kbd_device = NULL,
|
||||
.fdc_device = NULL,
|
||||
.sio_device = NULL, /*Has SIO (sorta): VLSI VL82C113A SCAMP Combination I/O*/
|
||||
.vid_device = &gd5428_onboard_device,
|
||||
.vid_device = &gd5426_onboard_isa_device,
|
||||
.snd_device = NULL,
|
||||
.net_device = NULL
|
||||
},
|
||||
|
||||
@@ -4317,7 +4317,10 @@ gd54xx_init(const device_t *info)
|
||||
|
||||
case CIRRUS_ID_CLGD5426:
|
||||
if (info->local & 0x200)
|
||||
romfn = NULL;
|
||||
if (machines[machine].init == machine_at_vect486vl_init)
|
||||
romfn = BIOS_GD5428_ISA_PATH;
|
||||
else
|
||||
romfn = NULL;
|
||||
else {
|
||||
if (info->local & 0x100)
|
||||
romfn = BIOS_GD5426_DIAMOND_A1_ISA_PATH;
|
||||
@@ -4334,10 +4337,8 @@ gd54xx_init(const device_t *info)
|
||||
|
||||
case CIRRUS_ID_CLGD5428:
|
||||
if (info->local & 0x200) {
|
||||
if (machines[machine].init == machine_at_vect486vl_init)
|
||||
romfn = BIOS_GD5428_ONBOARD_HP_PATH;
|
||||
else if (machines[machine].init == machine_at_d824_init)
|
||||
romfn = BIOS_GD5428_ONBOARD_SNI_PATH;
|
||||
if (machines[machine].init == machine_at_d824_init)
|
||||
romfn = BIOS_GD5428_ISA_PATH;
|
||||
else if (machines[machine].init == machine_at_acera1g_init)
|
||||
romfn = BIOS_GD5428_ONBOARD_ACER_PATH;
|
||||
else
|
||||
@@ -4444,7 +4445,7 @@ gd54xx_init(const device_t *info)
|
||||
if (id <= CIRRUS_ID_CLGD5428) {
|
||||
if ((id == CIRRUS_ID_CLGD5428) && (info->local & 0x200) && (info->local & 0x1000))
|
||||
vram = 1024;
|
||||
else if ((id == CIRRUS_ID_CLGD5426) && (info->local & 0x200))
|
||||
else if ((id == CIRRUS_ID_CLGD5426) && (info->local & 0x200) && (info->local & 0x1000))
|
||||
vram = 1024;
|
||||
else if (id == CIRRUS_ID_CLGD5401)
|
||||
vram = 256;
|
||||
@@ -5193,11 +5194,25 @@ const device_t gd5426_vlb_device = {
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5426_onboard_isa_device = {
|
||||
.name = "Cirrus Logic GD5426 (ISA) (On-Board)",
|
||||
.internal_name = "cl_gd5426_onboard",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = CIRRUS_ID_CLGD5426 | 0x200,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
.available = gd5428_isa_available,
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd542x_config
|
||||
};
|
||||
|
||||
const device_t gd5426_onboard_device = {
|
||||
.name = "Cirrus Logic GD5426 (VLB) (On-Board)",
|
||||
.internal_name = "cl_gd5426_onboard",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5426 | 0x200,
|
||||
.local = CIRRUS_ID_CLGD5426 | 0x200 | 0x1000,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
|
||||
Reference in New Issue
Block a user