Improved memory management of Olivetti machines.
Added On-board video card for NCR 3302
This commit is contained in:
@@ -244,11 +244,6 @@ extern int machine_at_mr286_init(const machine_t *);
|
|||||||
|
|
||||||
extern int machine_at_neat_init(const machine_t *);
|
extern int machine_at_neat_init(const machine_t *);
|
||||||
extern int machine_at_neat_ami_init(const machine_t *);
|
extern int machine_at_neat_ami_init(const machine_t *);
|
||||||
extern int machine_at_olim300_05_init(const machine_t *);
|
|
||||||
extern int machine_at_olim300_10_init(const machine_t *);
|
|
||||||
extern int machine_at_olim300_08_init(const machine_t *);
|
|
||||||
extern int machine_at_olim300_15_init(const machine_t *);
|
|
||||||
extern int machine_at_ncrpc916sx_init(const machine_t *);
|
|
||||||
|
|
||||||
extern int machine_at_award286_init(const machine_t *);
|
extern int machine_at_award286_init(const machine_t *);
|
||||||
extern int machine_at_gdc212m_init(const machine_t *);
|
extern int machine_at_gdc212m_init(const machine_t *);
|
||||||
@@ -260,6 +255,12 @@ extern int machine_at_spc4620p_init(const machine_t *);
|
|||||||
extern int machine_at_kmxc02_init(const machine_t *);
|
extern int machine_at_kmxc02_init(const machine_t *);
|
||||||
extern int machine_at_deskmaster286_init(const machine_t *);
|
extern int machine_at_deskmaster286_init(const machine_t *);
|
||||||
|
|
||||||
|
extern int machine_at_olim290_init(const machine_t *);
|
||||||
|
extern int machine_at_olim290s_init(const machine_t *);
|
||||||
|
|
||||||
|
extern int machine_at_ncrpc8_init(const machine_t *);
|
||||||
|
extern int machine_at_ncr3302_init(const machine_t *);
|
||||||
|
|
||||||
extern int machine_at_shuttle386sx_init(const machine_t *);
|
extern int machine_at_shuttle386sx_init(const machine_t *);
|
||||||
extern int machine_at_adi386sx_init(const machine_t *);
|
extern int machine_at_adi386sx_init(const machine_t *);
|
||||||
extern int machine_at_commodore_sl386sx16_init(const machine_t *);
|
extern int machine_at_commodore_sl386sx16_init(const machine_t *);
|
||||||
@@ -267,8 +268,12 @@ extern int machine_at_commodore_sl386sx25_init(const machine_t *);
|
|||||||
extern int machine_at_spc6033p_init(const machine_t *);
|
extern int machine_at_spc6033p_init(const machine_t *);
|
||||||
extern int machine_at_wd76c10_init(const machine_t *);
|
extern int machine_at_wd76c10_init(const machine_t *);
|
||||||
|
|
||||||
extern int machine_at_olim290_init(const machine_t *);
|
extern int machine_at_olim300_05_init(const machine_t *);
|
||||||
extern int machine_at_olim290s_init(const machine_t *);
|
extern int machine_at_olim300_10_init(const machine_t *);
|
||||||
|
extern int machine_at_olim300_08_init(const machine_t *);
|
||||||
|
extern int machine_at_olim300_15_init(const machine_t *);
|
||||||
|
|
||||||
|
extern int machine_at_ncrpc916sx_init(const machine_t *);
|
||||||
|
|
||||||
extern int machine_at_ncrpc8_init(const machine_t *);
|
extern int machine_at_ncrpc8_init(const machine_t *);
|
||||||
extern int machine_at_ncr3302_init(const machine_t *);
|
extern int machine_at_ncr3302_init(const machine_t *);
|
||||||
@@ -284,6 +289,7 @@ extern const device_t *at_ama932j_get_device(void);
|
|||||||
extern const device_t *at_commodore_sl386sx25_get_device(void);
|
extern const device_t *at_commodore_sl386sx25_get_device(void);
|
||||||
extern const device_t *at_spc4620p_get_device(void);
|
extern const device_t *at_spc4620p_get_device(void);
|
||||||
extern const device_t *at_spc6033p_get_device(void);
|
extern const device_t *at_spc6033p_get_device(void);
|
||||||
|
extern const device_t *at_ncr3302_get_device(void);
|
||||||
extern const device_t *at_m300_08_get_device(void);
|
extern const device_t *at_m300_08_get_device(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -296,6 +296,7 @@ extern const device_t oti067_m300_device;
|
|||||||
extern const device_t oti077_device;
|
extern const device_t oti077_device;
|
||||||
|
|
||||||
/* Paradise/WD (S)VGA */
|
/* Paradise/WD (S)VGA */
|
||||||
|
extern const device_t paradise_pvga1a_ncr3302_device;
|
||||||
extern const device_t paradise_pvga1a_pc2086_device;
|
extern const device_t paradise_pvga1a_pc2086_device;
|
||||||
extern const device_t paradise_pvga1a_pc3086_device;
|
extern const device_t paradise_pvga1a_pc3086_device;
|
||||||
extern const device_t paradise_pvga1a_device;
|
extern const device_t paradise_pvga1a_device;
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
#include <86box/rom.h>
|
#include <86box/rom.h>
|
||||||
#include <86box/fdd.h>
|
#include <86box/fdd.h>
|
||||||
#include <86box/fdc.h>
|
#include <86box/fdc.h>
|
||||||
|
#include <86box/fdc_ext.h>
|
||||||
#include <86box/hdc.h>
|
#include <86box/hdc.h>
|
||||||
#include <86box/sio.h>
|
#include <86box/sio.h>
|
||||||
#include <86box/serial.h>
|
#include <86box/serial.h>
|
||||||
@@ -645,8 +646,7 @@ machine_at_pja511m_init(const machine_t *model)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Current bugs:
|
* Current bugs:
|
||||||
* - Automatic soft-reboot after saving CMOS settings produces an 8042 error
|
* - soft-reboot after saving CMOS settings/pressing ctrl-alt-del produces an 8042 error
|
||||||
* - no EMS management due to missing chipset implementation
|
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
machine_at_ncrpc8_init(const machine_t *model)
|
machine_at_ncrpc8_init(const machine_t *model)
|
||||||
@@ -662,14 +662,23 @@ machine_at_ncrpc8_init(const machine_t *model)
|
|||||||
|
|
||||||
machine_at_common_init(model);
|
machine_at_common_init(model);
|
||||||
device_add(&keyboard_at_ncr_device);
|
device_add(&keyboard_at_ncr_device);
|
||||||
device_add(&fdc_at_device);
|
mem_remap_top(384);
|
||||||
|
|
||||||
|
if (fdc_type == FDC_INTERNAL)
|
||||||
|
device_add(&fdc_at_device);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const device_t *
|
||||||
|
at_ncr3302_get_device(void)
|
||||||
|
{
|
||||||
|
return ¶dise_pvga1a_ncr3302_device;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Current bugs:
|
* Current bugs:
|
||||||
* - Automatic soft-reboot after saving CMOS settings produces an 8042 error
|
* - soft-reboot after saving CMOS settings/pressing ctrl-alt-del produces an 8042 error
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
machine_at_ncr3302_init(const machine_t *model)
|
machine_at_ncr3302_init(const machine_t *model)
|
||||||
@@ -690,10 +699,12 @@ machine_at_ncr3302_init(const machine_t *model)
|
|||||||
machine_at_common_ide_init(model);
|
machine_at_common_ide_init(model);
|
||||||
device_add(&neat_device);
|
device_add(&neat_device);
|
||||||
device_add(&keyboard_at_ncr_device);
|
device_add(&keyboard_at_ncr_device);
|
||||||
device_add(&fdc_at_device);
|
|
||||||
|
if (fdc_type == FDC_INTERNAL)
|
||||||
|
device_add(&fdc_at_device);
|
||||||
|
|
||||||
if (gfxcard == VID_INTERNAL)
|
if (gfxcard == VID_INTERNAL)
|
||||||
device_add(¶dise_pvga1a_device);
|
device_add(¶dise_pvga1a_ncr3302_device);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -701,8 +712,7 @@ machine_at_ncr3302_init(const machine_t *model)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Current bugs:
|
* Current bugs:
|
||||||
* - Automatic soft-reboot after saving CMOS settings produces an 8042 error
|
* - soft-reboot after saving CMOS settings/pressing ctrl-alt-del produces an 8042 error
|
||||||
* - no EMS management due to missing chipset implementation (TACT82300)
|
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
machine_at_ncrpc916sx_init(const machine_t *model)
|
machine_at_ncrpc916sx_init(const machine_t *model)
|
||||||
@@ -719,7 +729,11 @@ machine_at_ncrpc916sx_init(const machine_t *model)
|
|||||||
machine_at_common_init(model);
|
machine_at_common_init(model);
|
||||||
|
|
||||||
device_add(&keyboard_at_ncr_device);
|
device_add(&keyboard_at_ncr_device);
|
||||||
device_add(&fdc_at_device);
|
mem_remap_top(384);
|
||||||
|
|
||||||
|
if (fdc_type == FDC_INTERNAL)
|
||||||
|
device_add(&fdc_at_device);
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -741,7 +755,9 @@ machine_at_olim290_init(const machine_t *model)
|
|||||||
|
|
||||||
machine_at_common_init(model);
|
machine_at_common_init(model);
|
||||||
device_add(&keyboard_at_olivetti_device);
|
device_add(&keyboard_at_olivetti_device);
|
||||||
device_add(&fdc_at_device);
|
|
||||||
|
if (fdc_type == FDC_INTERNAL)
|
||||||
|
device_add(&fdc_at_device);
|
||||||
|
|
||||||
device_add(&olivetti_m290_registers_device);
|
device_add(&olivetti_m290_registers_device);
|
||||||
|
|
||||||
@@ -751,7 +767,7 @@ machine_at_olim290_init(const machine_t *model)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Current bugs:
|
* Current bugs:
|
||||||
* - no EMS management due to missing chipset implementation (TACT82300)
|
* - no EMS management due to missing chipset implementation (unidentified chip)
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
machine_at_olim290s_init(const machine_t *model)
|
machine_at_olim290s_init(const machine_t *model)
|
||||||
@@ -767,12 +783,15 @@ machine_at_olim290s_init(const machine_t *model)
|
|||||||
|
|
||||||
machine_at_common_ide_init(model);
|
machine_at_common_ide_init(model);
|
||||||
|
|
||||||
device_add(&keyboard_ps2_olivetti_device);
|
/* replace with correct chipset implementation */
|
||||||
device_add(&fdc_at_device);
|
mem_remap_top(384);
|
||||||
|
|
||||||
if (gfxcard == VID_INTERNAL)
|
device_add(&keyboard_ps2_olivetti_device);
|
||||||
/* should use custom BIOS */
|
device_add(&fdc_at_device);
|
||||||
device_add(¶dise_pvga1a_device);
|
|
||||||
|
/* should use custom BIOS */
|
||||||
|
if (gfxcard == VID_INTERNAL)
|
||||||
|
device_add(¶dise_pvga1a_device);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -824,9 +843,9 @@ machine_at_olim300_15_init(const machine_t *model)
|
|||||||
device_add(&keyboard_ps2_olivetti_device);
|
device_add(&keyboard_ps2_olivetti_device);
|
||||||
device_add(&pc87310_ide_device);
|
device_add(&pc87310_ide_device);
|
||||||
|
|
||||||
if (gfxcard == VID_INTERNAL)
|
/* Stock VRAM is maxed out, so no need to expose video card config */
|
||||||
/* Stock VRAM is maxed out, so no need to expose video card config */
|
if (gfxcard == VID_INTERNAL)
|
||||||
device_add(&oti067_m300_device);
|
device_add(&oti067_m300_device);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -834,10 +853,12 @@ machine_at_olim300_15_init(const machine_t *model)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Current bugs:
|
* Current bugs:
|
||||||
|
* - soft-reboot causes a fatal error
|
||||||
* - BIOS complains about FPU if not installed, pressing F1 allows to continue booting.
|
* - BIOS complains about FPU if not installed, pressing F1 allows to continue booting.
|
||||||
* - BIOS throws a cache memory error (since L2 cache is not implemented yet), pressing F1 allows to continue booting.
|
* - BIOS throws a cache memory error (since L2 cache is not implemented yet), pressing F1 allows to continue booting.
|
||||||
* - no EMS management due to missing chipset implementation (custom ASIC)
|
* - no shadow memory due to missing chipset implementation (custom ASIC)
|
||||||
*/
|
*/
|
||||||
|
//todo: check if fdc can be disabled
|
||||||
int
|
int
|
||||||
machine_at_olim300_10_init(const machine_t *model)
|
machine_at_olim300_10_init(const machine_t *model)
|
||||||
{
|
{
|
||||||
@@ -851,14 +872,16 @@ machine_at_olim300_10_init(const machine_t *model)
|
|||||||
|
|
||||||
machine_at_common_ide_init(model);
|
machine_at_common_ide_init(model);
|
||||||
|
|
||||||
device_add(&neat_device);
|
/* replace with correct chipset implementation */
|
||||||
|
mem_remap_top(384);
|
||||||
|
|
||||||
device_add(&keyboard_ps2_olivetti_device);
|
device_add(&keyboard_ps2_olivetti_device);
|
||||||
/* fdc should be dp8473, however it does not work. Instead, standard AT fdc works. */
|
/* fdc should be dp8473, however it does not work. Instead, standard AT fdc works. */
|
||||||
device_add(&fdc_at_device);
|
device_add(&fdc_at_device);
|
||||||
|
|
||||||
if (gfxcard == VID_INTERNAL)
|
/* should be a PVGA1B/WD90C00 with custom BIOS */
|
||||||
/* should be a PVGA1B/WD90C00 with custom BIOS */
|
if (gfxcard == VID_INTERNAL)
|
||||||
device_add(¶dise_pvga1a_device);
|
device_add(¶dise_wd90c11_device);
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@@ -866,8 +889,9 @@ machine_at_olim300_10_init(const machine_t *model)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Current bugs:
|
* Current bugs:
|
||||||
|
* - soft-reboot causes a fatal error
|
||||||
* - BIOS complains about FPU if not installed, pressing F1 allows to continue booting.
|
* - BIOS complains about FPU if not installed, pressing F1 allows to continue booting.
|
||||||
* - no EMS management due to missing chipset implementation (custom ASIC)
|
* - no shadow memory due to missing chipset implementation (custom ASIC)
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
machine_at_olim300_05_init(const machine_t *model)
|
machine_at_olim300_05_init(const machine_t *model)
|
||||||
@@ -881,15 +905,17 @@ machine_at_olim300_05_init(const machine_t *model)
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
machine_at_common_ide_init(model);
|
machine_at_common_ide_init(model);
|
||||||
|
|
||||||
|
/* replace with correct chipset implementation */
|
||||||
|
mem_remap_top(384);
|
||||||
|
|
||||||
device_add(&neat_device);
|
|
||||||
device_add(&keyboard_ps2_olivetti_device);
|
device_add(&keyboard_ps2_olivetti_device);
|
||||||
/* fdc should be dp8473, however it does not work. Instead, standard AT fdc works. */
|
/* fdc should be dp8473, however it does not work. Instead, standard AT fdc works. */
|
||||||
device_add(&fdc_at_device);
|
device_add(&fdc_at_device);
|
||||||
|
|
||||||
if (gfxcard == VID_INTERNAL)
|
/* should be a PVGA1B/WD90C00 with custom BIOS */
|
||||||
/* should be a PVGA1B/WD90C00 with custom BIOS */
|
if (gfxcard == VID_INTERNAL)
|
||||||
device_add(¶dise_pvga1a_device);
|
device_add(¶dise_wd90c11_device);
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
@@ -121,8 +121,8 @@ const machine_t machines[] = {
|
|||||||
{ "[ISA] Compaq Portable II", "portableii", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 640, 16384, 128, 127, machine_at_portableii_init, NULL },
|
{ "[ISA] Compaq Portable II", "portableii", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 640, 16384, 128, 127, machine_at_portableii_init, NULL },
|
||||||
{ "[ISA] Compaq Portable III", "portableiii", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_VIDEO, 640, 16384, 128, 127, machine_at_portableiii_init, at_cpqiii_get_device },
|
{ "[ISA] Compaq Portable III", "portableiii", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_VIDEO, 640, 16384, 128, 127, machine_at_portableiii_init, at_cpqiii_get_device },
|
||||||
{ "[ISA] MR 286 clone", "mr286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 512, 16384, 128, 127, machine_at_mr286_init, NULL },
|
{ "[ISA] MR 286 clone", "mr286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 512, 16384, 128, 127, machine_at_mr286_init, NULL },
|
||||||
{ "[ISA] NCR PC8/810/710/3390/3392", "ncr_pc8", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_ncrpc8_init, NULL },
|
{ "[ISA] NCR PC8/810/710/3390/3392", "ncr_pc8", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_ncrpc8_init, NULL },
|
||||||
{ "[ISA] Olivetti M290", "olivetti_m290", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 640, 16384, 128, 127, machine_at_olim290_init, NULL },
|
{ "[ISA] Olivetti M290", "olivetti_m290", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 640, 16384, 128, 127, machine_at_olim290_init, NULL },
|
||||||
#if defined(DEV_BRANCH) && defined(USE_OPEN_AT)
|
#if defined(DEV_BRANCH) && defined(USE_OPEN_AT)
|
||||||
{ "[ISA] OpenAT", "open_at", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 256, 15872, 128, 63, machine_at_open_at_init, NULL },
|
{ "[ISA] OpenAT", "open_at", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 256, 15872, 128, 63, machine_at_open_at_init, NULL },
|
||||||
#endif
|
#endif
|
||||||
@@ -133,7 +133,7 @@ const machine_t machines[] = {
|
|||||||
{ "[GC103] Quadtel 286 clone", "quadt286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_quadt286_init, NULL },
|
{ "[GC103] Quadtel 286 clone", "quadt286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_quadt286_init, NULL },
|
||||||
{ "[GC103] Trigem 286M", "tg286m", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 512, 8192, 128, 127, machine_at_tg286m_init, NULL },
|
{ "[GC103] Trigem 286M", "tg286m", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 512, 8192, 128, 127, machine_at_tg286m_init, NULL },
|
||||||
{ "[NEAT] AMI 286 clone", "ami286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_neat_ami_init, NULL },
|
{ "[NEAT] AMI 286 clone", "ami286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_neat_ami_init, NULL },
|
||||||
{ "[NEAT] NCR 3302", "ncr_3302", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_VIDEO, 512, 16384, 128, 127, machine_at_ncr3302_init, NULL },
|
{ "[NEAT] NCR 3302", "ncr_3302", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE | MACHINE_VIDEO, 512, 16384, 128, 127, machine_at_ncr3302_init, at_ncr3302_get_device },
|
||||||
{ "[NEAT] Phoenix 286 clone", "px286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_px286_init, NULL },
|
{ "[NEAT] Phoenix 286 clone", "px286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_px286_init, NULL },
|
||||||
{ "[SCAT] Award 286 clone", "award286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_award286_init, NULL },
|
{ "[SCAT] Award 286 clone", "award286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_award286_init, NULL },
|
||||||
{ "[SCAT] GW-286CT GEAR", "gw286ct", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_gw286ct_init, NULL },
|
{ "[SCAT] GW-286CT GEAR", "gw286ct", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_gw286ct_init, NULL },
|
||||||
@@ -143,7 +143,7 @@ const machine_t machines[] = {
|
|||||||
{ "[SCAT] Samsung SPC-4216P", "spc4216p", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2, 1024, 5120,1024, 127, machine_at_spc4216p_init, NULL },
|
{ "[SCAT] Samsung SPC-4216P", "spc4216p", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2, 1024, 5120,1024, 127, machine_at_spc4216p_init, NULL },
|
||||||
{ "[SCAT] Samsung SPC-4620P", "spc4620p", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_VIDEO, 1024, 5120,1024, 127, machine_at_spc4620p_init, NULL },
|
{ "[SCAT] Samsung SPC-4620P", "spc4620p", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_VIDEO, 1024, 5120,1024, 127, machine_at_spc4620p_init, NULL },
|
||||||
{ "[SCAT] Samsung Deskmaster 286", "deskmaster286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_deskmaster286_init, NULL },
|
{ "[SCAT] Samsung Deskmaster 286", "deskmaster286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_deskmaster286_init, NULL },
|
||||||
{ "[TACT82300] Olivetti M290S", "olivetti_m290s", MACHINE_TYPE_286, CPU_PKG_286, 0, 16000000, 16000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024,16384, 512, 127, machine_at_olim290s_init, NULL },
|
{ "[TACT82300] Olivetti M290S", "olivetti_m290s", MACHINE_TYPE_286, CPU_PKG_286, 0, 16000000, 16000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024,16384, 512, 127, machine_at_olim290s_init, NULL },
|
||||||
|
|
||||||
/* 286 machines that utilize the MCA bus */
|
/* 286 machines that utilize the MCA bus */
|
||||||
{ "[MCA] IBM PS/2 model 50", "ibmps2_m50", MACHINE_TYPE_286, CPU_PKG_286 | CPU_PKG_486SLC_IBM, 0, 10000000, 0, 0, 0, 0, 0, MACHINE_MCA | MACHINE_BUS_PS2 | MACHINE_VIDEO, 1024, 10240,1024, 63, machine_ps2_model_50_init, NULL },
|
{ "[MCA] IBM PS/2 model 50", "ibmps2_m50", MACHINE_TYPE_286, CPU_PKG_286 | CPU_PKG_486SLC_IBM, 0, 10000000, 0, 0, 0, 0, 0, MACHINE_MCA | MACHINE_BUS_PS2 | MACHINE_VIDEO, 1024, 10240,1024, 63, machine_ps2_model_50_init, NULL },
|
||||||
@@ -151,8 +151,8 @@ const machine_t machines[] = {
|
|||||||
/* 386SX machines */
|
/* 386SX machines */
|
||||||
{ "[ISA] IBM PS/1 model 2121", "ibmps1_2121", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO_FIXED, 2048, 6144,1024, 63, machine_ps1_m2121_init, NULL },
|
{ "[ISA] IBM PS/1 model 2121", "ibmps1_2121", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO_FIXED, 2048, 6144,1024, 63, machine_ps1_m2121_init, NULL },
|
||||||
{ "[ISA] IBM PS/1 m.2121+ISA", "ibmps1_2121_isa", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 6144,1024, 63, machine_ps1_m2121_init, NULL },
|
{ "[ISA] IBM PS/1 m.2121+ISA", "ibmps1_2121_isa", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 6144,1024, 63, machine_ps1_m2121_init, NULL },
|
||||||
{ "[ISA] Olivetti M300-05", "olivetti_m300_05", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 16000000, 16000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 11264, 1024, 127, machine_at_olim300_05_init, NULL },
|
{ "[ISA] Olivetti M300-01/05", "olivetti_m300_05", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 16000000, 16000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 11264,1024, 127, machine_at_olim300_05_init, NULL },
|
||||||
{ "[ISA] Olivetti M300-10", "olivetti_m300_10", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 20000000, 20000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 12288, 1024, 127, machine_at_olim300_10_init, NULL },
|
{ "[ISA] Olivetti M300-10", "olivetti_m300_10", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 20000000, 20000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 12288,1024, 127, machine_at_olim300_10_init, NULL },
|
||||||
#if defined(DEV_BRANCH) && defined(USE_M6117)
|
#if defined(DEV_BRANCH) && defined(USE_M6117)
|
||||||
{ "[ALi M6117D] Acrosser AR-B1375", "arb1375", MACHINE_TYPE_386SX, CPU_PKG_M6117, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 32768,1024, 127, machine_at_arb1375_init, NULL },
|
{ "[ALi M6117D] Acrosser AR-B1375", "arb1375", MACHINE_TYPE_386SX, CPU_PKG_M6117, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 32768,1024, 127, machine_at_arb1375_init, NULL },
|
||||||
{ "[ALi M6117D] Acrosser PJ-A511M", "pja511m", MACHINE_TYPE_386SX, CPU_PKG_M6117, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 32768,1024, 127, machine_at_pja511m_init, NULL },
|
{ "[ALi M6117D] Acrosser PJ-A511M", "pja511m", MACHINE_TYPE_386SX, CPU_PKG_M6117, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 32768,1024, 127, machine_at_pja511m_init, NULL },
|
||||||
@@ -162,13 +162,13 @@ const machine_t machines[] = {
|
|||||||
{ "[Intel 82335] Shuttle 386SX", "shuttle386sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_shuttle386sx_init, NULL },
|
{ "[Intel 82335] Shuttle 386SX", "shuttle386sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_shuttle386sx_init, NULL },
|
||||||
{ "[NEAT] Commodore SL386SX-16", "cbm_sl386sx16", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 8192, 512, 127, machine_at_commodore_sl386sx16_init, NULL },
|
{ "[NEAT] Commodore SL386SX-16", "cbm_sl386sx16", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 8192, 512, 127, machine_at_commodore_sl386sx16_init, NULL },
|
||||||
{ "[NEAT] DTK 386SX clone", "dtk386", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_neat_init, NULL },
|
{ "[NEAT] DTK 386SX clone", "dtk386", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_neat_init, NULL },
|
||||||
{ "[OPTi 283] Olivetti M300-08", "olivetti_m300_08", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 20000000, 20000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 16384, 2048, 127, machine_at_olim300_08_init, at_m300_08_get_device },
|
{ "[OPTi 283] Olivetti M300-08", "olivetti_m300_08", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 20000000, 20000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 16384, 2048, 127, machine_at_olim300_08_init, at_m300_08_get_device },
|
||||||
{ "[OPTi 283] Olivetti M300-15", "olivetti_m300_15", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 25000000, 25000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 16384, 2048, 127, machine_at_olim300_15_init, NULL },
|
{ "[OPTi 283] Olivetti M300-15", "olivetti_m300_15", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 25000000, 25000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 16384, 2048, 127, machine_at_olim300_15_init, NULL },
|
||||||
{ "[OPTi 291] DTK PPM-3333P", "awardsx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 1024, 127, machine_at_awardsx_init, NULL },
|
{ "[OPTi 291] DTK PPM-3333P", "awardsx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 1024, 127, machine_at_awardsx_init, NULL },
|
||||||
{ "[SCAMP] Commodore SL386SX-25", "cbm_sl386sx25", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 8192, 512, 127, machine_at_commodore_sl386sx25_init, at_commodore_sl386sx25_get_device },
|
{ "[SCAMP] Commodore SL386SX-25", "cbm_sl386sx25", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 8192, 512, 127, machine_at_commodore_sl386sx25_init, at_commodore_sl386sx25_get_device },
|
||||||
{ "[SCAMP] Samsung SPC-6033P", "spc6033p", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 12288, 2048, 127, machine_at_spc6033p_init, at_spc6033p_get_device },
|
{ "[SCAMP] Samsung SPC-6033P", "spc6033p", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 12288, 2048, 127, machine_at_spc6033p_init, at_spc6033p_get_device },
|
||||||
{ "[SCAT] KMX-C-02", "kmxc02", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 512, 127, machine_at_kmxc02_init, NULL },
|
{ "[SCAT] KMX-C-02", "kmxc02", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 512, 127, machine_at_kmxc02_init, NULL },
|
||||||
{ "[TACT82300] NCR PC916SX", "ncr_pc916sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 128, 127, machine_at_ncrpc916sx_init, NULL },
|
{ "[TACT82300] NCR PC916SX", "ncr_pc916sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 128, 127, machine_at_ncrpc916sx_init, NULL },
|
||||||
{ "[WD76C10] Amstrad MegaPC", "megapc", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 32768, 1024, 127, machine_at_wd76c10_init, NULL },
|
{ "[WD76C10] Amstrad MegaPC", "megapc", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 32768, 1024, 127, machine_at_wd76c10_init, NULL },
|
||||||
|
|
||||||
/* 386SX machines which utilize the MCA bus */
|
/* 386SX machines which utilize the MCA bus */
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
add_library(sio OBJECT sio_acc3221.c sio_f82c710.c sio_82091aa.c sio_fdc37c661.c
|
add_library(sio OBJECT sio_acc3221.c sio_f82c710.c sio_82091aa.c sio_fdc37c661.c
|
||||||
sio_fdc37c66x.c sio_fdc37c669.c sio_fdc37c93x.c sio_fdc37m60x.c
|
sio_fdc37c66x.c sio_fdc37c669.c sio_fdc37c93x.c sio_fdc37m60x.c
|
||||||
sio_pc87306.c sio_pc87307.c sio_pc87309.c sio_pc87311.c sio_pc87332.c
|
sio_pc87306.c sio_pc87307.c sio_pc87309.c sio_pc87310.c sio_pc87311.c sio_pc87332.c
|
||||||
sio_prime3c.c sio_w83787f.c sio_w83877f.c sio_w83977f.c sio_um8669f.c
|
sio_prime3c.c sio_w83787f.c sio_w83877f.c sio_w83977f.c sio_um8669f.c
|
||||||
sio_vt82c686.c)
|
sio_vt82c686.c)
|
||||||
|
|
||||||
|
|||||||
@@ -352,6 +352,16 @@ void *paradise_init(const device_t *info, uint32_t memsize)
|
|||||||
return paradise;
|
return paradise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *paradise_pvga1a_ncr3302_init(const device_t *info)
|
||||||
|
{
|
||||||
|
paradise_t *paradise = paradise_init(info, 1 << 18);
|
||||||
|
|
||||||
|
if (paradise)
|
||||||
|
rom_init(¶dise->bios_rom, L"roms/machines/ncr_3302/c000-wd_1987-1989-740011-003058-019c.bin", 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||||
|
|
||||||
|
return paradise;
|
||||||
|
}
|
||||||
|
|
||||||
static void *paradise_pvga1a_pc2086_init(const device_t *info)
|
static void *paradise_pvga1a_pc2086_init(const device_t *info)
|
||||||
{
|
{
|
||||||
paradise_t *paradise = paradise_init(info, 1 << 18);
|
paradise_t *paradise = paradise_init(info, 1 << 18);
|
||||||
@@ -361,6 +371,7 @@ static void *paradise_pvga1a_pc2086_init(const device_t *info)
|
|||||||
|
|
||||||
return paradise;
|
return paradise;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *paradise_pvga1a_pc3086_init(const device_t *info)
|
static void *paradise_pvga1a_pc3086_init(const device_t *info)
|
||||||
{
|
{
|
||||||
paradise_t *paradise = paradise_init(info, 1 << 18);
|
paradise_t *paradise = paradise_init(info, 1 << 18);
|
||||||
@@ -464,7 +475,6 @@ void paradise_force_redraw(void *p)
|
|||||||
paradise->svga.fullchange = changeframecount;
|
paradise->svga.fullchange = changeframecount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const device_t paradise_pvga1a_pc2086_device =
|
const device_t paradise_pvga1a_pc2086_device =
|
||||||
{
|
{
|
||||||
"Paradise PVGA1A (Amstrad PC2086)",
|
"Paradise PVGA1A (Amstrad PC2086)",
|
||||||
@@ -478,6 +488,7 @@ const device_t paradise_pvga1a_pc2086_device =
|
|||||||
paradise_force_redraw,
|
paradise_force_redraw,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
const device_t paradise_pvga1a_pc3086_device =
|
const device_t paradise_pvga1a_pc3086_device =
|
||||||
{
|
{
|
||||||
"Paradise PVGA1A (Amstrad PC3086)",
|
"Paradise PVGA1A (Amstrad PC3086)",
|
||||||
@@ -516,6 +527,20 @@ static const device_config_t paradise_pvga1a_config[] =
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const device_t paradise_pvga1a_ncr3302_device =
|
||||||
|
{
|
||||||
|
"Paradise PVGA1A (NCR 3302)",
|
||||||
|
0,
|
||||||
|
PVGA1A,
|
||||||
|
paradise_pvga1a_ncr3302_init,
|
||||||
|
paradise_close,
|
||||||
|
NULL,
|
||||||
|
{ NULL },
|
||||||
|
paradise_speed_changed,
|
||||||
|
paradise_force_redraw,
|
||||||
|
paradise_pvga1a_config
|
||||||
|
};
|
||||||
|
|
||||||
const device_t paradise_pvga1a_device =
|
const device_t paradise_pvga1a_device =
|
||||||
{
|
{
|
||||||
"Paradise PVGA1A",
|
"Paradise PVGA1A",
|
||||||
|
|||||||
Reference in New Issue
Block a user