mirror of
https://github.com/86Box/86Box.git
synced 2026-02-23 01:48:21 -07:00
Added the Dell 466/NP, closes #3585.
This commit is contained in:
@@ -532,6 +532,8 @@ extern int machine_at_cs4031_init(const machine_t *);
|
||||
extern int machine_at_pb410a_init(const machine_t *);
|
||||
|
||||
extern int machine_at_decpclpv_init(const machine_t *);
|
||||
extern int machine_at_dell466np_init(const machine_t *);
|
||||
|
||||
extern int machine_at_acerv10_init(const machine_t *);
|
||||
|
||||
extern int machine_at_acera1g_init(const machine_t *);
|
||||
|
||||
@@ -365,6 +365,7 @@ extern const device_t gd5428_boca_isa_device;
|
||||
extern const device_t gd5428_mca_device;
|
||||
extern const device_t gd5426_mca_device;
|
||||
extern const device_t gd5428_onboard_device;
|
||||
extern const device_t gd5428_onboard_vlb_device;
|
||||
extern const device_t gd5429_isa_device;
|
||||
extern const device_t gd5429_vlb_device;
|
||||
extern const device_t gd5430_diamond_speedstar_pro_se_a8_vlb_device;
|
||||
|
||||
@@ -545,16 +545,47 @@ machine_at_decpclpv_init(const machine_t *model)
|
||||
device_add(&sis_85c461_device);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(&s3_86c805_onboard_vlb_device);
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
device_add(&keyboard_ps2_phoenix_pci_device);
|
||||
|
||||
/* TODO: Phoenix MultiKey KBC */
|
||||
device_add(&keyboard_ps2_ami_pci_device);
|
||||
device_add(&ide_isa_2ch_device);
|
||||
device_add(&fdc37c663_ide_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_dell466np_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/dell466np/466np.bin",
|
||||
0x000c0000, 262144, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init(model);
|
||||
device_add(&sis_85c461_device);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
else {
|
||||
for (uint16_t i = 0; i < 32768; i++)
|
||||
rom[i] = mem_readb_phys(0x000c0000 + i);
|
||||
}
|
||||
mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000);
|
||||
mem_mapping_set_exec(&bios_mapping, rom);
|
||||
|
||||
device_add(&keyboard_ps2_phoenix_pci_device);
|
||||
|
||||
device_add(&ide_isa_device);
|
||||
device_add(&fdc37c661_ide_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
machine_at_ali1429_common_init(const machine_t *model, int is_green)
|
||||
{
|
||||
|
||||
@@ -6934,6 +6934,46 @@ const machine_t machines[] = {
|
||||
.snd_device = NULL,
|
||||
.net_device = NULL
|
||||
},
|
||||
/* Uses a ???? KBC. */
|
||||
{
|
||||
.name = "[SiS 461] Dell 466/NP",
|
||||
.internal_name = "dell466np",
|
||||
.type = MACHINE_TYPE_486_S2,
|
||||
.chipset = MACHINE_CHIPSET_SIS_461,
|
||||
.init = machine_at_dell466np_init,
|
||||
.p1_handler = NULL,
|
||||
.gpio_handler = NULL,
|
||||
.available_flag = MACHINE_AVAILABLE,
|
||||
.gpio_acpi_handler = NULL,
|
||||
.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 | MACHINE_VIDEO | MACHINE_APM,
|
||||
.ram = {
|
||||
.min = 1024,
|
||||
.max = 32768,
|
||||
.step = 1024
|
||||
},
|
||||
.nvrmask = 127,
|
||||
.kbc_device = NULL,
|
||||
.kbc_p1 = 0xff,
|
||||
.gpio = 0xffffffff,
|
||||
.gpio_acpi = 0xffffffff,
|
||||
.device = NULL,
|
||||
.fdc_device = NULL,
|
||||
.sio_device = NULL,
|
||||
.vid_device = &gd5428_onboard_vlb_device,
|
||||
.snd_device = NULL,
|
||||
.net_device = NULL
|
||||
},
|
||||
/* The BIOS does not send any non-standard keyboard controller commands and wants
|
||||
a PS/2 mouse, so it's an IBM PS/2 KBC (Type 1) firmware. */
|
||||
{
|
||||
|
||||
@@ -4273,7 +4273,10 @@ gd54xx_init(const device_t *info)
|
||||
break;
|
||||
|
||||
case CIRRUS_ID_CLGD5428:
|
||||
if (info->local & 0x100)
|
||||
if (info->local & 0x200) {
|
||||
romfn = NULL;
|
||||
gd54xx->has_bios = 0;
|
||||
} else if (info->local & 0x100)
|
||||
if (gd54xx->vlb)
|
||||
romfn = BIOS_GD5428_DIAMOND_B1_VLB_PATH;
|
||||
else {
|
||||
@@ -4750,26 +4753,6 @@ static const device_config_t gd5426_config[] = {
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t gd5428_onboard_config[] = {
|
||||
{
|
||||
.name = "memory",
|
||||
.description = "Memory size",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = NULL,
|
||||
.default_int = 2048,
|
||||
.file_filter = NULL,
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "512 KB", .value = 512 },
|
||||
{ .description = "1 MB", .value = 1024 },
|
||||
{ .description = "2 MB", .value = 2048 },
|
||||
{ .description = "" }
|
||||
},
|
||||
.bios = { { 0 } }
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
};
|
||||
|
||||
static const device_config_t gd5429_config[] = {
|
||||
{
|
||||
.name = "memory",
|
||||
@@ -5176,7 +5159,7 @@ const device_t gd5428_onboard_device = {
|
||||
.available = gd5428_isa_available,
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5428_onboard_config
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5428_vlb_onboard_device = {
|
||||
@@ -5190,7 +5173,21 @@ const device_t gd5428_vlb_onboard_device = {
|
||||
.available = NULL,
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5428_onboard_config
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5428_onboard_vlb_device = {
|
||||
.name = "Cirrus Logic GD5428 (VLB) (On-Board) (Dell)",
|
||||
.internal_name = "cl_gd5428_onboard_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5428 | 0x200,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd542x_config
|
||||
};
|
||||
|
||||
const device_t gd5429_isa_device = {
|
||||
|
||||
Reference in New Issue
Block a user