Merge branch '86Box:master' into machine_23
This commit is contained in:
@@ -26,18 +26,22 @@
|
||||
#define MACHINE_BUS_NONE 0x00000000 /* sys has no bus */
|
||||
/* Feature flags for BUS'es. */
|
||||
#define MACHINE_BUS_ISA 0x00000001 /* sys has ISA bus */
|
||||
#define MACHINE_BUS_CARTRIDGE 0x00000002 /* sys has two cartridge bays */
|
||||
#define MACHINE_BUS_ISA16 0x00000004 /* sys has ISA16 bus - PC/AT architecture */
|
||||
#define MACHINE_BUS_CBUS 0x00000008 /* sys has C-BUS bus */
|
||||
#define MACHINE_BUS_PS2 0x00000010 /* system has PS/2 keyboard and mouse ports */
|
||||
#define MACHINE_BUS_EISA 0x00000020 /* sys has EISA bus */
|
||||
#define MACHINE_BUS_VLB 0x00000040 /* sys has VL bus */
|
||||
#define MACHINE_BUS_MCA 0x00000080 /* sys has MCA bus */
|
||||
#define MACHINE_BUS_PCI 0x00000100 /* sys has PCI bus */
|
||||
#define MACHINE_BUS_PCMCIA 0x00000200 /* sys has PCMCIA bus */
|
||||
#define MACHINE_BUS_AGP 0x00000400 /* sys has AGP bus */
|
||||
#define MACHINE_BUS_AC97 0x00000800 /* sys has AC97 bus (ACR/AMR/CNR slot) */
|
||||
#define MACHINE_BUS_CASSETTE 0x00000002 /* sys has cassette port */
|
||||
#define MACHINE_BUS_CARTRIDGE 0x00000004 /* sys has two cartridge bays */
|
||||
#define MACHINE_BUS_ISA16 0x00000008 /* sys has ISA16 bus - PC/AT architecture */
|
||||
#define MACHINE_BUS_CBUS 0x00000010 /* sys has C-BUS bus */
|
||||
#define MACHINE_BUS_PS2_LATCH 0x00000020 /* system has PS/2 keyboard controller IRQ latch */
|
||||
#define MACHINE_BUS_PS2_PORTS 0x00000040 /* system has PS/2 keyboard and mouse ports */
|
||||
#define MACHINE_BUS_PS2 (MACHINE_BUS_PS2_LATCH | MACHINE_BUS_PS2_PORTS)
|
||||
#define MACHINE_BUS_EISA 0x00000080 /* sys has EISA bus */
|
||||
#define MACHINE_BUS_VLB 0x00000100 /* sys has VL bus */
|
||||
#define MACHINE_BUS_MCA 0x00000200 /* sys has MCA bus */
|
||||
#define MACHINE_BUS_PCI 0x00000400 /* sys has PCI bus */
|
||||
#define MACHINE_BUS_PCMCIA 0x00000800 /* sys has PCMCIA bus */
|
||||
#define MACHINE_BUS_AGP 0x00001000 /* sys has AGP bus */
|
||||
#define MACHINE_BUS_AC97 0x00002000 /* sys has AC97 bus (ACR/AMR/CNR slot) */
|
||||
/* Aliases. */
|
||||
#define MACHINE_CASSETTE (MACHINE_BUS_CASSETTE) /* sys has cassette port */
|
||||
#define MACHINE_CARTRIDGE (MACHINE_BUS_CARTRIDGE) /* sys has two cartridge bays */
|
||||
/* Combined flags. */
|
||||
#define MACHINE_PC (MACHINE_BUS_ISA) /* sys is PC/XT-compatible (ISA) */
|
||||
@@ -57,16 +61,17 @@
|
||||
#define MACHINE_AGP (MACHINE_BUS_AGP | MACHINE_PCI) /* sys is AT-compatible with AGP */
|
||||
#define MACHINE_AGP98 (MACHINE_BUS_AGP | MACHINE_PCI98) /* sys is NEC PC-98x1 series with AGP (did that even exist?) */
|
||||
|
||||
#define MACHINE_PCJR (MACHINE_PC | MACHINE_CARTRIDGE) /* sys is PCjr */
|
||||
#define MACHINE_PS2 (MACHINE_AT | MACHINE_BUS_PS2) /* sys is PS/2 */
|
||||
#define MACHINE_PS2_MCA (MACHINE_MCA | MACHINE_BUS_PS2) /* sys is MCA PS/2 */
|
||||
#define MACHINE_PS2_VLB (MACHINE_VLB | MACHINE_BUS_PS2) /* sys is VLB PS/2 */
|
||||
#define MACHINE_PS2_PCI (MACHINE_PCI | MACHINE_BUS_PS2) /* sys is PCI PS/2 */
|
||||
#define MACHINE_PS2_PCIV (MACHINE_PCIV | MACHINE_BUS_PS2) /* sys is VLB/PCI PS/2 */
|
||||
#define MACHINE_PS2_AGP (MACHINE_AGP | MACHINE_BUS_PS2) /* sys is AGP PS/2 */
|
||||
#define MACHINE_PS2_A97 (MACHINE_PS2_AGP | MACHINE_BUS_AC97) /* sys is AGP/AC97 PS/2 */
|
||||
#define MACHINE_PS2_NOISA (MACHINE_PS2_AGP & ~MACHINE_AT) /* sys is AGP PS/2 without ISA */
|
||||
#define MACHINE_PS2_NOI97 (MACHINE_PS2_A97 & ~MACHINE_AT) /* sys is AGP/AC97 PS/2 without ISA */
|
||||
#define MACHINE_PC5150 (MACHINE_PC | MACHINE_CASSETTE) /* sys is IBM PC 5150 */
|
||||
#define MACHINE_PCJR (MACHINE_PC | MACHINE_CASSETTE | MACHINE_CARTRIDGE) /* sys is PCjr */
|
||||
#define MACHINE_PS2 (MACHINE_AT | MACHINE_BUS_PS2) /* sys is PS/2 */
|
||||
#define MACHINE_PS2_MCA (MACHINE_MCA | MACHINE_BUS_PS2) /* sys is MCA PS/2 */
|
||||
#define MACHINE_PS2_VLB (MACHINE_VLB | MACHINE_BUS_PS2) /* sys is VLB PS/2 */
|
||||
#define MACHINE_PS2_PCI (MACHINE_PCI | MACHINE_BUS_PS2) /* sys is PCI PS/2 */
|
||||
#define MACHINE_PS2_PCIV (MACHINE_PCIV | MACHINE_BUS_PS2) /* sys is VLB/PCI PS/2 */
|
||||
#define MACHINE_PS2_AGP (MACHINE_AGP | MACHINE_BUS_PS2) /* sys is AGP PS/2 */
|
||||
#define MACHINE_PS2_A97 (MACHINE_PS2_AGP | MACHINE_BUS_AC97) /* sys is AGP/AC97 PS/2 */
|
||||
#define MACHINE_PS2_NOISA (MACHINE_PS2_AGP & ~MACHINE_AT) /* sys is AGP PS/2 without ISA */
|
||||
#define MACHINE_PS2_NOI97 (MACHINE_PS2_A97 & ~MACHINE_AT) /* sys is AGP/AC97 PS/2 without ISA */
|
||||
/* Feature flags for miscellaneous internal devices. */
|
||||
#define MACHINE_FLAGS_NONE 0x00000000 /* sys has no int devices */
|
||||
#define MACHINE_VIDEO 0x00000001 /* sys has int video */
|
||||
@@ -95,19 +100,20 @@
|
||||
#define MACHINE_AV (MACHINE_VIDEO | MACHINE_SOUND) /* sys has video and sound */
|
||||
#define MACHINE_AG (MACHINE_SOUND | MACHINE_GAMEPORT) /* sys has sound and game port */
|
||||
/* Feature flags for internal storage controllers. */
|
||||
#define MACHINE_HDC 0x03FE0000 /* sys has int HDC */
|
||||
#define MACHINE_MFM 0x00020000 /* sys has int MFM/RLL */
|
||||
#define MACHINE_XTA 0x00040000 /* sys has int XTA */
|
||||
#define MACHINE_ESDI 0x00080000 /* sys has int ESDI */
|
||||
#define MACHINE_IDE_PRI 0x00100000 /* sys has int pri IDE/ATAPI */
|
||||
#define MACHINE_IDE_SEC 0x00200000 /* sys has int sec IDE/ATAPI */
|
||||
#define MACHINE_IDE_TER 0x00400000 /* sys has int ter IDE/ATAPI */
|
||||
#define MACHINE_IDE_QUA 0x00800000 /* sys has int qua IDE/ATAPI */
|
||||
#define MACHINE_SCSI_PRI 0x01000000 /* sys has int pri SCSI */
|
||||
#define MACHINE_SCSI_SEC 0x02000000 /* sys has int sec SCSI */
|
||||
#define MACHINE_USB_PRI 0x04000000 /* sys has int pri USB */
|
||||
#define MACHINE_USB_SEC 0x08000000 /* sys has int sec USB */
|
||||
#define MACHINE_COREBOOT 0x10000000 /* sys has coreboot BIOS */
|
||||
#define MACHINE_HDC 0x03FE0000 /* sys has int HDC */
|
||||
#define MACHINE_MFM 0x00020000 /* sys has int MFM/RLL */
|
||||
#define MACHINE_XTA 0x00040000 /* sys has int XTA */
|
||||
#define MACHINE_ESDI 0x00080000 /* sys has int ESDI */
|
||||
#define MACHINE_IDE_PRI 0x00100000 /* sys has int pri IDE/ATAPI */
|
||||
#define MACHINE_IDE_SEC 0x00200000 /* sys has int sec IDE/ATAPI */
|
||||
#define MACHINE_IDE_TER 0x00400000 /* sys has int ter IDE/ATAPI */
|
||||
#define MACHINE_IDE_QUA 0x00800000 /* sys has int qua IDE/ATAPI */
|
||||
#define MACHINE_SCSI_PRI 0x01000000 /* sys has int pri SCSI */
|
||||
#define MACHINE_SCSI_SEC 0x02000000 /* sys has int sec SCSI */
|
||||
#define MACHINE_USB_PRI 0x04000000 /* sys has int pri USB */
|
||||
#define MACHINE_USB_SEC 0x08000000 /* sys has int sec USB */
|
||||
#define MACHINE_COREBOOT 0x10000000 /* sys has coreboot BIOS */
|
||||
#define MACHINE_SOFTFLOAT_ONLY 0x20000000 /* sys requires softfloat FPU */
|
||||
/* Combined flags. */
|
||||
#define MACHINE_IDE (MACHINE_IDE_PRI) /* sys has int single IDE/ATAPI - mark as pri IDE/ATAPI */
|
||||
#define MACHINE_IDE_DUAL (MACHINE_IDE_PRI | MACHINE_IDE_SEC) /* sys has int dual IDE/ATAPI - mark as both pri and sec IDE/ATAPI */
|
||||
@@ -143,31 +149,31 @@
|
||||
#endif
|
||||
|
||||
enum {
|
||||
MACHINE_TYPE_NONE = 0,
|
||||
MACHINE_TYPE_8088,
|
||||
MACHINE_TYPE_8086,
|
||||
MACHINE_TYPE_286,
|
||||
MACHINE_TYPE_386SX,
|
||||
MACHINE_TYPE_486SLC,
|
||||
MACHINE_TYPE_386DX,
|
||||
MACHINE_TYPE_386DX_486,
|
||||
MACHINE_TYPE_486,
|
||||
MACHINE_TYPE_486_S2,
|
||||
MACHINE_TYPE_486_S3,
|
||||
MACHINE_TYPE_486_MISC,
|
||||
MACHINE_TYPE_SOCKET4,
|
||||
MACHINE_TYPE_SOCKET5,
|
||||
MACHINE_TYPE_SOCKET7_3V,
|
||||
MACHINE_TYPE_SOCKET7,
|
||||
MACHINE_TYPE_SOCKETS7,
|
||||
MACHINE_TYPE_SOCKET8,
|
||||
MACHINE_TYPE_SLOT1,
|
||||
MACHINE_TYPE_SLOT1_2,
|
||||
MACHINE_TYPE_SLOT1_370,
|
||||
MACHINE_TYPE_SLOT2,
|
||||
MACHINE_TYPE_SOCKET370,
|
||||
MACHINE_TYPE_MISC,
|
||||
MACHINE_TYPE_MAX
|
||||
MACHINE_TYPE_NONE = 0,
|
||||
MACHINE_TYPE_8088 = 1,
|
||||
MACHINE_TYPE_8086 = 2,
|
||||
MACHINE_TYPE_286 = 3,
|
||||
MACHINE_TYPE_386SX = 4,
|
||||
MACHINE_TYPE_486SLC = 5,
|
||||
MACHINE_TYPE_386DX = 6,
|
||||
MACHINE_TYPE_386DX_486 = 7,
|
||||
MACHINE_TYPE_486 = 8,
|
||||
MACHINE_TYPE_486_S2 = 9,
|
||||
MACHINE_TYPE_486_S3 = 10,
|
||||
MACHINE_TYPE_486_MISC = 11,
|
||||
MACHINE_TYPE_SOCKET4 = 12,
|
||||
MACHINE_TYPE_SOCKET5 = 13,
|
||||
MACHINE_TYPE_SOCKET7_3V = 14,
|
||||
MACHINE_TYPE_SOCKET7 = 15,
|
||||
MACHINE_TYPE_SOCKETS7 = 16,
|
||||
MACHINE_TYPE_SOCKET8 = 17,
|
||||
MACHINE_TYPE_SLOT1 = 18,
|
||||
MACHINE_TYPE_SLOT1_2 = 19,
|
||||
MACHINE_TYPE_SLOT1_370 = 20,
|
||||
MACHINE_TYPE_SLOT2 = 21,
|
||||
MACHINE_TYPE_SOCKET370 = 22,
|
||||
MACHINE_TYPE_MISC = 23,
|
||||
MACHINE_TYPE_MAX = 24
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -279,9 +285,12 @@ typedef struct _machine_ {
|
||||
const char *name;
|
||||
const char *internal_name;
|
||||
uint32_t type;
|
||||
uint32_t chipset;
|
||||
uintptr_t chipset;
|
||||
int (*init)(const struct _machine_ *);
|
||||
uintptr_t pad, pad0, pad1, pad2;
|
||||
uintptr_t pad;
|
||||
uintptr_t pad0;
|
||||
uintptr_t pad1;
|
||||
uintptr_t pad2;
|
||||
const machine_cpu_t cpu;
|
||||
uintptr_t bus_flags;
|
||||
uintptr_t flags;
|
||||
@@ -317,8 +326,8 @@ typedef struct _machine_ {
|
||||
} machine_t;
|
||||
|
||||
/* Global variables. */
|
||||
extern const machine_filter_t machine_types[],
|
||||
machine_chipsets[];
|
||||
extern const machine_filter_t machine_types[];
|
||||
extern const machine_filter_t machine_chipsets[];
|
||||
extern const machine_t machines[];
|
||||
extern int bios_only;
|
||||
extern int machine;
|
||||
@@ -612,6 +621,7 @@ extern int machine_at_acerv35n_init(const machine_t *);
|
||||
extern int machine_at_p55t2p4_init(const machine_t *);
|
||||
extern int machine_at_m7shi_init(const machine_t *);
|
||||
extern int machine_at_tc430hx_init(const machine_t *);
|
||||
extern int machine_at_infinia7200_init(const machine_t *);
|
||||
extern int machine_at_equium5200_init(const machine_t *);
|
||||
extern int machine_at_pcv90_init(const machine_t *);
|
||||
extern int machine_at_p65up5_cp55t2d_init(const machine_t *);
|
||||
@@ -770,6 +780,7 @@ extern int machine_ps2_model_65sx_init(const machine_t *);
|
||||
extern int machine_ps2_model_70_type3_init(const machine_t *);
|
||||
extern int machine_ps2_model_80_init(const machine_t *);
|
||||
extern int machine_ps2_model_80_axx_init(const machine_t *);
|
||||
extern int machine_ps2_model_70_type4_init(const machine_t *);
|
||||
|
||||
/* m_tandy.c */
|
||||
extern int tandy1k_eeprom_read(void);
|
||||
|
||||
Reference in New Issue
Block a user