A number of machine fixes and PIT clock (crystal/bus speed) and CPU are now initialized before everything else, fixes Olivetti M19 with 8088 4.77 MHz and also fixes switching between 286/386SX and 386DX+ machines.
This commit is contained in:
@@ -766,9 +766,6 @@ machine_xt_m24_init(const machine_t *model)
|
||||
/* Address 66-67 = mainboard dip-switch settings */
|
||||
io_sethandler(0x0066, 2, m24_read, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
m24_kbd_init(m24_kbd);
|
||||
device_add_ex(&m24_kbd_device, m24_kbd);
|
||||
|
||||
/* FIXME: make sure this is correct?? */
|
||||
device_add(&at_nvr_device);
|
||||
|
||||
@@ -781,6 +778,9 @@ machine_xt_m24_init(const machine_t *model)
|
||||
if (gfxcard == VID_INTERNAL)
|
||||
device_add(&ogc_m24_device);
|
||||
|
||||
m24_kbd_init(m24_kbd);
|
||||
device_add_ex(&m24_kbd_device, m24_kbd);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -852,21 +852,21 @@ machine_xt_m19_init(const machine_t *model)
|
||||
|
||||
machine_common_init(model);
|
||||
|
||||
pit_ctr_set_out_func(&pit->counters[1], pit_refresh_timer_xt);
|
||||
|
||||
/* On-board FDC cannot be disabled */
|
||||
device_add(&fdc_xt_device);
|
||||
|
||||
nmi_init();
|
||||
|
||||
video_reset(gfxcard);
|
||||
|
||||
m19_vid_init(vid);
|
||||
device_add_ex(&m19_vid_device, vid);
|
||||
|
||||
device_add(&keyboard_xt_olivetti_device);
|
||||
|
||||
nmi_init();
|
||||
|
||||
video_reset(gfxcard);
|
||||
|
||||
if (gfxcard == VID_INTERNAL)
|
||||
device_add(&ogc_m24_device);
|
||||
pit_set_clock(14318184.0);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
@@ -82,6 +82,9 @@ machine_init_ex(int m)
|
||||
AT = IS_AT(machine);
|
||||
PCI = IS_ARCH(machine, MACHINE_BUS_PCI);
|
||||
|
||||
cpu_set();
|
||||
pc_speed_changed();
|
||||
|
||||
/* Reset the memory state. */
|
||||
mem_reset();
|
||||
smbase = is_am486dxl ? 0x00060000 : 0x00030000;
|
||||
@@ -132,7 +135,5 @@ machine_common_init(const machine_t *model)
|
||||
pic_init();
|
||||
dma_init();
|
||||
|
||||
cpu_set();
|
||||
|
||||
pit_common_init(!!AT, pit_irq0_timer, NULL);
|
||||
}
|
||||
|
@@ -75,7 +75,7 @@ const machine_t machines[] = {
|
||||
{ "[8088] Juko XT clone", "jukopc", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_jukopc_init, NULL },
|
||||
{ "[8088] Multitech PC-700", "pc700", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_pc700_init, NULL },
|
||||
{ "[8088] NCR PC4i", "pc4i", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 256, 0, machine_xt_pc4i_init, NULL },
|
||||
{ "[8088] Olivetti M19", "m19", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 256, 640, 256, 0, machine_xt_m19_init, NULL },
|
||||
{ "[8088] Olivetti M19", "m19", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 256, 640, 256, 0, machine_xt_m19_init, m19_get_device },
|
||||
{ "[8088] OpenXT", "openxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_openxt_init, NULL },
|
||||
{ "[8088] Philips P3105/NMS9100", "p3105", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_XTA, 256, 768, 256, 0, machine_xt_p3105_init, NULL },
|
||||
{ "[8088] Phoenix XT clone", "pxxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_pxxt_init, NULL },
|
||||
|
Reference in New Issue
Block a user