mirror of
https://github.com/86Box/86Box.git
synced 2026-02-22 09:35:32 -07:00
All devices now have the bus marked in their name;
The Settings dialog now correctly filters devices by bus; Split the dual VLB/PCI graphics cards into VLB and PCI versions; Device filtering is now done using the new device_is_valid() call that compares device flags to machine flags; Moved the NCR-based SCSI controllers to the main branch; Moved the NE1000 to the dev branch until it's finished.
This commit is contained in:
@@ -68,8 +68,8 @@ endif
|
||||
ifndef CIRRUS
|
||||
CIRRUS := n
|
||||
endif
|
||||
ifndef NCR_SCSI
|
||||
NCR_SCSI := n
|
||||
ifndef NE1000
|
||||
NE1000 := n
|
||||
endif
|
||||
ifndef NV_RIVA
|
||||
NV_RIVA := n
|
||||
@@ -90,7 +90,7 @@ endif
|
||||
ifeq ($(DEV_BUILD), y)
|
||||
DEV_BRANCH := y
|
||||
CIRRUS := y
|
||||
NCR_SCSI := y
|
||||
NE1000 := y
|
||||
NV_RIVA := y
|
||||
PAS16 := y
|
||||
endif
|
||||
@@ -205,9 +205,8 @@ CFLAGS += -DUSE_CIRRUS
|
||||
DEVBROBJ += vid_cl_gd.o vid_cl_gd_blit.o vid_cl_ramdac.o
|
||||
endif
|
||||
|
||||
ifeq ($(NCR_SCSI), y)
|
||||
CFLAGS += -DUSE_NCR
|
||||
DEVBROBJ += scsi_bus.o scsi_ncr5380.o
|
||||
ifeq ($(NE1000), y)
|
||||
CFLAGS += -DUSE_NE1000
|
||||
endif
|
||||
|
||||
ifeq ($(NV_RIVA), y)
|
||||
@@ -296,8 +295,9 @@ USBOBJ := usb.o
|
||||
endif
|
||||
|
||||
SCSIOBJ := scsi.o \
|
||||
scsi_bios_command.o scsi_device.o scsi_disk.o \
|
||||
scsi_buslogic.o scsi_aha154x.o
|
||||
scsi_bios_command.o scsi_bus.o scsi_device.o scsi_disk.o \
|
||||
scsi_buslogic.o scsi_aha154x.o \
|
||||
scsi_ncr5380.o
|
||||
|
||||
NETOBJ := network.o \
|
||||
net_pcap.o \
|
||||
|
||||
48
src/device.c
48
src/device.c
@@ -329,6 +329,54 @@ device_set_config_mac(char *s, int val)
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
device_is_valid(device_t *device, int machine_flags)
|
||||
{
|
||||
if (!device)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_AT) && !(machine_flags & MACHINE_AT)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_CBUS) && !(machine_flags & MACHINE_CBUS)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_ISA) && !(machine_flags & MACHINE_ISA)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_MCA) && !(machine_flags & MACHINE_MCA)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_EISA) && !(machine_flags & MACHINE_EISA)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_VLB) && !(machine_flags & MACHINE_VLB)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_PCI) && !(machine_flags & MACHINE_PCI)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_PS2) && !(machine_flags & MACHINE_PS2_HDD)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((device->flags & DEVICE_AGP) && !(machine_flags & MACHINE_AGP)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
machine_get_config_int(char *s)
|
||||
{
|
||||
|
||||
@@ -112,6 +112,7 @@ extern void device_set_config_hex16(char *s, int val);
|
||||
extern void device_set_config_hex20(char *s, int val);
|
||||
extern void device_set_config_mac(char *s, int val);
|
||||
extern char *device_get_config_string(char *name);
|
||||
extern int device_is_valid(device_t *device, int machine_flags);
|
||||
|
||||
extern int machine_get_config_int(char *s);
|
||||
extern char *machine_get_config_string(char *s);
|
||||
|
||||
@@ -82,41 +82,41 @@ static struct {
|
||||
{ "Internal Controller", "internal",
|
||||
&inthdc_device, 0 },
|
||||
|
||||
{ "[MFM] IBM PC Fixed Disk Adapter", "mfm_xebec",
|
||||
{ "[ISA] [MFM] IBM PC Fixed Disk Adapter", "mfm_xebec",
|
||||
&mfm_xt_xebec_device, 1 },
|
||||
|
||||
{ "[MFM] DTC-5150X Fixed Disk Adapter", "mfm_dtc5150x",
|
||||
{ "[ISA] [MFM] DTC-5150X Fixed Disk Adapter", "mfm_dtc5150x",
|
||||
&mfm_xt_dtc5150x_device, 1 },
|
||||
|
||||
{ "[MFM] IBM PC/AT Fixed Disk Adapter", "mfm_at",
|
||||
{ "[ISA] [MFM] IBM PC/AT Fixed Disk Adapter", "mfm_at",
|
||||
&mfm_at_wd1003_device, 1 },
|
||||
|
||||
{ "[ESDI] PC/AT ESDI Fixed Disk Adapter", "esdi_wd1007vse1",
|
||||
{ "[ISA] [ESDI] PC/AT ESDI Fixed Disk Adapter", "esdi_wd1007vse1",
|
||||
&esdi_at_wd1007vse1_device, 0 },
|
||||
|
||||
{ "[ESDI] IBM PS/2 ESDI Fixed Disk Adapter","esdi_mca",
|
||||
&esdi_ps2_device, 1 },
|
||||
|
||||
#if 0
|
||||
{ "[IDE] PC/AT IDE Adapter", "ide_isa",
|
||||
{ "[ISA] [IDE] PC/AT IDE Adapter", "ide_isa",
|
||||
&ide_isa_device, 0 },
|
||||
|
||||
{ "[IDE] PCI IDE Adapter", "ide_pci",
|
||||
{ "[PCI] [IDE] PCI IDE Adapter", "ide_pci",
|
||||
&ide_pci_device, 0 },
|
||||
#endif
|
||||
|
||||
{ "[IDE] PC/XT XTIDE", "xtide",
|
||||
{ "[ISA] [IDE] PC/XT XTIDE", "xtide",
|
||||
&xtide_device , 0 },
|
||||
|
||||
{ "[IDE] PC/AT XTIDE", "xtide_at",
|
||||
{ "[ISA] [IDE] PC/AT XTIDE", "xtide_at",
|
||||
&xtide_at_device, 0 },
|
||||
|
||||
{ "[IDE] PS/2 XTIDE (Acculogic)", "xtide_ps2",
|
||||
{ "[ISA] [IDE] PS/2 XTIDE (Acculogic)", "xtide_ps2",
|
||||
&xtide_ps2_device, 0 },
|
||||
|
||||
{ "[IDE] PS/2 AT XTIDE (1.1.5)", "xtide_at_ps2",
|
||||
{ "[ISA] [IDE] PS/2 AT XTIDE (1.1.5)", "xtide_at_ps2",
|
||||
&xtide_at_ps2_device, 0 },
|
||||
|
||||
{ "[MCA] [ESDI] IBM PS/2 ESDI Fixed Disk Adapter","esdi_mca",
|
||||
&esdi_ps2_device, 1 },
|
||||
|
||||
{ "", "", NULL, 0 }
|
||||
};
|
||||
|
||||
@@ -165,6 +165,13 @@ hdc_get_internal_name(int hdc)
|
||||
}
|
||||
|
||||
|
||||
device_t *
|
||||
hdc_get_device(int hdc)
|
||||
{
|
||||
return(controllers[hdc].device);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
hdc_get_flags(int hdc)
|
||||
{
|
||||
|
||||
@@ -49,6 +49,7 @@ extern void hdc_reset(void);
|
||||
|
||||
extern char *hdc_get_name(int hdc);
|
||||
extern char *hdc_get_internal_name(int hdc);
|
||||
extern device_t *hdc_get_device(int hdc);
|
||||
extern int hdc_get_flags(int hdc);
|
||||
extern int hdc_available(int hdc);
|
||||
extern int hdc_current_is_mfm(void);
|
||||
|
||||
@@ -842,7 +842,7 @@ wd1007vse1_available(void)
|
||||
|
||||
device_t esdi_at_wd1007vse1_device = {
|
||||
"Western Digital WD1007V-SE1 (ESDI)",
|
||||
DEVICE_AT,
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0,
|
||||
wd1007vse1_init,
|
||||
wd1007vse1_close,
|
||||
|
||||
@@ -760,7 +760,7 @@ mfm_close(void *priv)
|
||||
|
||||
device_t mfm_at_wd1003_device = {
|
||||
"WD1003 AT MFM/RLL Controller",
|
||||
DEVICE_AT, 0,
|
||||
DEVICE_ISA | DEVICE_AT, 0,
|
||||
mfm_init, mfm_close, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
};
|
||||
|
||||
@@ -908,7 +908,7 @@ dtc5150x_available(void)
|
||||
|
||||
device_t mfm_xt_dtc5150x_device = {
|
||||
"DTC 5150X",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
dtc5150x_init, mfm_close, NULL,
|
||||
dtc5150x_available, NULL, NULL, NULL,
|
||||
NULL
|
||||
|
||||
@@ -236,7 +236,7 @@ xtide_close(void *priv)
|
||||
|
||||
device_t xtide_device = {
|
||||
"XTIDE",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
xtide_init, xtide_close, NULL,
|
||||
xtide_available, NULL, NULL, NULL,
|
||||
@@ -245,7 +245,7 @@ device_t xtide_device = {
|
||||
|
||||
device_t xtide_at_device = {
|
||||
"XTIDE (AT)",
|
||||
DEVICE_AT,
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0,
|
||||
xtide_at_init, xtide_close, NULL,
|
||||
xtide_at_available, NULL, NULL, NULL,
|
||||
@@ -254,7 +254,7 @@ device_t xtide_at_device = {
|
||||
|
||||
device_t xtide_ps2_device = {
|
||||
"XTIDE (Acculogic)",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
xtide_ps2_init, xtide_close, NULL,
|
||||
xtide_ps2_available, NULL, NULL, NULL,
|
||||
@@ -263,7 +263,7 @@ device_t xtide_ps2_device = {
|
||||
|
||||
device_t xtide_at_ps2_device = {
|
||||
"XTIDE (AT) (1.1.5)",
|
||||
DEVICE_PS2,
|
||||
DEVICE_ISA | DEVICE_PS2,
|
||||
0,
|
||||
xtide_at_ps2_init, xtide_close, NULL,
|
||||
xtide_at_ps2_available, NULL, NULL, NULL,
|
||||
|
||||
93
src/ibm.h
93
src/ibm.h
@@ -392,50 +392,63 @@ enum
|
||||
GFX_CGA = 0,
|
||||
GFX_MDA,
|
||||
GFX_HERCULES,
|
||||
GFX_EGA, /*Using IBM EGA BIOS*/
|
||||
GFX_TVGA, /*Using Trident TVGA8900D BIOS*/
|
||||
GFX_ET4000, /*Tseng ET4000*/
|
||||
GFX_ET4000W32, /*Tseng ET4000/W32p (Diamond Stealth 32)*/
|
||||
GFX_BAHAMAS64, /*S3 Vision864 (Paradise Bahamas 64)*/
|
||||
GFX_N9_9FX, /*S3 764/Trio64 (Number Nine 9FX)*/
|
||||
GFX_VIRGE, /*S3 Virge*/
|
||||
GFX_TGUI9440, /*Trident TGUI9440*/
|
||||
GFX_VGA, /*IBM VGA*/
|
||||
GFX_VGAEDGE16, /*ATI VGA Edge-16 (18800-1)*/
|
||||
GFX_VGACHARGER, /*ATI VGA Charger (28800-5)*/
|
||||
GFX_OTI067, /*Oak OTI-067*/
|
||||
GFX_MACH64GX, /*ATI Graphics Pro Turbo (Mach64)*/
|
||||
GFX_CL_GD5429, /*Cirrus Logic CL-GD5429*/
|
||||
GFX_VIRGEDX, /*S3 Virge/DX*/
|
||||
GFX_PHOENIX_TRIO32, /*S3 732/Trio32 (Phoenix)*/
|
||||
GFX_PHOENIX_TRIO64, /*S3 764/Trio64 (Phoenix)*/
|
||||
GFX_INCOLOR, /* Hercules InColor */
|
||||
GFX_COLORPLUS, /* Plantronics ColorPlus */
|
||||
GFX_WY700, /* Wyse 700 */
|
||||
GFX_GENIUS, /* MDSI Genius */
|
||||
GFX_MACH64VT2, /*ATI Mach64 VT2*/
|
||||
GFX_EGA, /*Using IBM EGA BIOS*/
|
||||
GFX_TVGA, /*Using Trident TVGA8900D BIOS*/
|
||||
GFX_ET4000, /*Tseng ET4000*/
|
||||
GFX_ET4000W32_VLB, /*Tseng ET4000/W32p (Diamond Stealth 32) VLB*/
|
||||
GFX_ET4000W32_PCI, /*Tseng ET4000/W32p (Diamond Stealth 32) PCI*/
|
||||
GFX_BAHAMAS64_VLB, /*S3 Vision864 (Paradise Bahamas 64) VLB*/
|
||||
GFX_BAHAMAS64_PCI, /*S3 Vision864 (Paradise Bahamas 64) PCI*/
|
||||
GFX_N9_9FX_VLB, /*S3 764/Trio64 (Number Nine 9FX) VLB*/
|
||||
GFX_N9_9FX_PCI, /*S3 764/Trio64 (Number Nine 9FX) PCI*/
|
||||
GFX_VIRGE_VLB, /*S3 Virge VLB*/
|
||||
GFX_VIRGE_PCI, /*S3 Virge PCI*/
|
||||
GFX_TGUI9440_VLB, /*Trident TGUI9440 VLB*/
|
||||
GFX_TGUI9440_PCI, /*Trident TGUI9440 PCI*/
|
||||
GFX_VGA, /*IBM VGA*/
|
||||
GFX_VGAEDGE16, /*ATI VGA Edge-16 (18800-1)*/
|
||||
GFX_VGACHARGER, /*ATI VGA Charger (28800-5)*/
|
||||
GFX_OTI067, /*Oak OTI-067*/
|
||||
GFX_MACH64GX_VLB, /*ATI Graphics Pro Turbo (Mach64) VLB*/
|
||||
GFX_MACH64GX_PCI, /*ATI Graphics Pro Turbo (Mach64) PCI*/
|
||||
GFX_CL_GD5429, /*Cirrus Logic CL-GD5429*/
|
||||
GFX_VIRGEDX_VLB, /*S3 Virge/DX VLB*/
|
||||
GFX_VIRGEDX_PCI, /*S3 Virge/DX PCI*/
|
||||
GFX_PHOENIX_TRIO32_VLB, /*S3 732/Trio32 (Phoenix) VLB*/
|
||||
GFX_PHOENIX_TRIO32_PCI, /*S3 732/Trio32 (Phoenix) PCI*/
|
||||
GFX_PHOENIX_TRIO64_VLB, /*S3 764/Trio64 (Phoenix) VLB*/
|
||||
GFX_PHOENIX_TRIO64_PCI, /*S3 764/Trio64 (Phoenix) PCI*/
|
||||
GFX_INCOLOR, /*Hercules InColor*/
|
||||
GFX_COLORPLUS, /*Plantronics ColorPlus*/
|
||||
GFX_WY700, /*Wyse 700*/
|
||||
GFX_GENIUS, /*MDSI Genius*/
|
||||
GFX_MACH64VT2, /*ATI Mach64 VT2*/
|
||||
|
||||
GFX_COMPAQ_EGA, /*Compaq EGA*/
|
||||
GFX_SUPER_EGA, /*Using Chips & Technologies SuperEGA BIOS*/
|
||||
GFX_COMPAQ_VGA, /*Compaq/Paradise VGA*/
|
||||
GFX_MIRO_VISION964, /*S3 Vision964 (Miro Crystal)*/
|
||||
GFX_CL_GD5446, /*Cirrus Logic CL-GD5446*/
|
||||
GFX_VGAWONDERXL, /*Compaq ATI VGA Wonder XL (28800-5)*/
|
||||
GFX_WD90C11, /*Paradise WD90C11 Standalone*/
|
||||
GFX_OTI077, /*Oak OTI-077*/
|
||||
GFX_VGAWONDERXL24, /*Compaq ATI VGA Wonder XL24 (28800-6)*/
|
||||
GFX_STEALTH64, /*S3 Vision864 (Diamond Stealth 64)*/
|
||||
GFX_PHOENIX_VISION864, /*S3 Vision864 (Phoenix)*/
|
||||
GFX_RIVATNT,
|
||||
GFX_RIVA128,
|
||||
GFX_COMPAQ_EGA, /*Compaq EGA*/
|
||||
GFX_SUPER_EGA, /*Using Chips & Technologies SuperEGA BIOS*/
|
||||
GFX_COMPAQ_VGA, /*Compaq/Paradise VGA*/
|
||||
GFX_CL_GD5446, /*Cirrus Logic CL-GD5446*/
|
||||
GFX_VGAWONDERXL, /*Compaq ATI VGA Wonder XL (28800-5)*/
|
||||
GFX_WD90C11, /*Paradise WD90C11 Standalone*/
|
||||
GFX_OTI077, /*Oak OTI-077*/
|
||||
GFX_VGAWONDERXL24, /*Compaq ATI VGA Wonder XL24 (28800-6)*/
|
||||
GFX_STEALTH64_VLB, /*S3 Vision864 (Diamond Stealth 64) VLB*/
|
||||
GFX_STEALTH64_PCI, /*S3 Vision864 (Diamond Stealth 64) PCI*/
|
||||
GFX_PHOENIX_VISION864_VLB, /*S3 Vision864 (Phoenix) VLB*/
|
||||
GFX_PHOENIX_VISION864_PCI, /*S3 Vision864 (Phoenix) PCI*/
|
||||
GFX_RIVATNT, /*nVidia Riva TNT*/
|
||||
GFX_RIVATNT2, /*nVidia Riva TNT2*/
|
||||
GFX_RIVA128, /*nVidia Riva 128*/
|
||||
GFX_HERCULESPLUS,
|
||||
GFX_RIVATNT2,
|
||||
GFX_VIRGEVX_VLB, /*S3 Virge/VX VLB*/
|
||||
GFX_VIRGEVX_PCI, /*S3 Virge/VX PCI*/
|
||||
GFX_VIRGEDX4_VLB, /*S3 Virge/DX (VBE 2.0) VLB*/
|
||||
GFX_VIRGEDX4_PCI, /*S3 Virge/DX (VBE 2.0) PCI*/
|
||||
|
||||
GFX_TRIGEM_UNK,
|
||||
GFX_OTI037, /*Oak OTI-037*/
|
||||
GFX_OTI037, /*Oak OTI-037*/
|
||||
|
||||
GFX_VIRGEVX, /*S3 Virge/VX*/
|
||||
GFX_VIRGEDX4, /*S3 Virge/DX (VBE 2.0)*/
|
||||
GFX_TRIGEM_UNK, /*Unknown TriGem graphics card with Hangeul ROM*/
|
||||
GFX_MIRO_VISION964, /*S3 Vision964 (Miro Crystal)*/
|
||||
|
||||
GFX_MAX
|
||||
};
|
||||
|
||||
86
src/io.c
86
src/io.c
@@ -73,6 +73,44 @@ void io_sethandler(uint16_t base, int size,
|
||||
}
|
||||
}
|
||||
|
||||
void io_sethandler_interleaved(uint16_t base, int size,
|
||||
uint8_t (*inb)(uint16_t addr, void *priv),
|
||||
uint16_t (*inw)(uint16_t addr, void *priv),
|
||||
uint32_t (*inl)(uint16_t addr, void *priv),
|
||||
void (*outb)(uint16_t addr, uint8_t val, void *priv),
|
||||
void (*outw)(uint16_t addr, uint16_t val, void *priv),
|
||||
void (*outl)(uint16_t addr, uint32_t val, void *priv),
|
||||
void *priv)
|
||||
{
|
||||
int c;
|
||||
size <<= 2;
|
||||
for (c = 0; c < size; c += 2)
|
||||
{
|
||||
if (!port_inb[ base + c][0] && !port_inw[ base + c][0] && !port_inl[ base + c][0] &&
|
||||
!port_outb[base + c][0] && !port_outw[base + c][0] && !port_outl[base + c][0])
|
||||
{
|
||||
port_inb[ base + c][0] = inb;
|
||||
port_inw[ base + c][0] = inw;
|
||||
port_inl[ base + c][0] = inl;
|
||||
port_outb[base + c][0] = outb;
|
||||
port_outw[base + c][0] = outw;
|
||||
port_outl[base + c][0] = outl;
|
||||
port_priv[base + c][0] = priv;
|
||||
}
|
||||
else if (!port_inb[ base + c][1] && !port_inw[ base + c][1] && !port_inl[ base + c][1] &&
|
||||
!port_outb[base + c][1] && !port_outw[base + c][1] && !port_outl[base + c][1])
|
||||
{
|
||||
port_inb[ base + c][1] = inb;
|
||||
port_inw[ base + c][1] = inw;
|
||||
port_inl[ base + c][1] = inl;
|
||||
port_outb[base + c][1] = outb;
|
||||
port_outw[base + c][1] = outw;
|
||||
port_outl[base + c][1] = outl;
|
||||
port_priv[base + c][1] = priv;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void io_removehandler(uint16_t base, int size,
|
||||
uint8_t (*inb)(uint16_t addr, void *priv),
|
||||
uint16_t (*inw)(uint16_t addr, void *priv),
|
||||
@@ -120,6 +158,54 @@ void io_removehandler(uint16_t base, int size,
|
||||
}
|
||||
}
|
||||
|
||||
void io_removehandler_interleaved(uint16_t base, int size,
|
||||
uint8_t (*inb)(uint16_t addr, void *priv),
|
||||
uint16_t (*inw)(uint16_t addr, void *priv),
|
||||
uint32_t (*inl)(uint16_t addr, void *priv),
|
||||
void (*outb)(uint16_t addr, uint8_t val, void *priv),
|
||||
void (*outw)(uint16_t addr, uint16_t val, void *priv),
|
||||
void (*outl)(uint16_t addr, uint32_t val, void *priv),
|
||||
void *priv)
|
||||
{
|
||||
int c;
|
||||
size <<= 2;
|
||||
for (c = 0; c < size; c += 2)
|
||||
{
|
||||
if (port_priv[base + c][0] == priv)
|
||||
{
|
||||
if (port_inb[ base + c][0] == inb)
|
||||
port_inb[ base + c][0] = NULL;
|
||||
if (port_inw[ base + c][0] == inw)
|
||||
port_inw[ base + c][0] = NULL;
|
||||
if (port_inl[ base + c][0] == inl)
|
||||
port_inl[ base + c][0] = NULL;
|
||||
if (port_outb[ base + c][0] == outb)
|
||||
port_outb[ base + c][0] = NULL;
|
||||
if (port_outw[ base + c][0] == outw)
|
||||
port_outw[ base + c][0] = NULL;
|
||||
if (port_outl[ base + c][0] == outl)
|
||||
port_outl[ base + c][0] = NULL;
|
||||
port_priv[base + c][0] = NULL;
|
||||
}
|
||||
if (port_priv[base + c][1] == priv)
|
||||
{
|
||||
if (port_inb[ base + c][1] == inb)
|
||||
port_inb[ base + c][1] = NULL;
|
||||
if (port_inw[ base + c][1] == inw)
|
||||
port_inw[ base + c][1] = NULL;
|
||||
if (port_inl[ base + c][1] == inl)
|
||||
port_inl[ base + c][1] = NULL;
|
||||
if (port_outb[ base + c][1] == outb)
|
||||
port_outb[ base + c][1] = NULL;
|
||||
if (port_outw[ base + c][1] == outw)
|
||||
port_outw[ base + c][1] = NULL;
|
||||
if (port_outl[ base + c][1] == outl)
|
||||
port_outl[ base + c][1] = NULL;
|
||||
port_priv[base + c][1] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
uint8_t cgamode,cgastat=0,cgacol;
|
||||
int hsync;
|
||||
|
||||
20
src/io.h
20
src/io.h
@@ -11,7 +11,16 @@ extern void io_sethandler(uint16_t base, int size,
|
||||
void (*outw)(uint16_t addr, uint16_t val, void *priv),
|
||||
void (*outl)(uint16_t addr, uint32_t val, void *priv),
|
||||
void *priv);
|
||||
|
||||
|
||||
extern void io_sethandler_interleaved(uint16_t base, int size,
|
||||
uint8_t (*inb)(uint16_t addr, void *priv),
|
||||
uint16_t (*inw)(uint16_t addr, void *priv),
|
||||
uint32_t (*inl)(uint16_t addr, void *priv),
|
||||
void (*outb)(uint16_t addr, uint8_t val, void *priv),
|
||||
void (*outw)(uint16_t addr, uint16_t val, void *priv),
|
||||
void (*outl)(uint16_t addr, uint32_t val, void *priv),
|
||||
void *priv);
|
||||
|
||||
extern void io_removehandler(uint16_t base, int size,
|
||||
uint8_t (*inb)(uint16_t addr, void *priv),
|
||||
uint16_t (*inw)(uint16_t addr, void *priv),
|
||||
@@ -20,3 +29,12 @@ extern void io_removehandler(uint16_t base, int size,
|
||||
void (*outw)(uint16_t addr, uint16_t val, void *priv),
|
||||
void (*outl)(uint16_t addr, uint32_t val, void *priv),
|
||||
void *priv);
|
||||
|
||||
extern void io_removehandler_interleaved(uint16_t base, int size,
|
||||
uint8_t (*inb)(uint16_t addr, void *priv),
|
||||
uint16_t (*inw)(uint16_t addr, void *priv),
|
||||
uint32_t (*inl)(uint16_t addr, void *priv),
|
||||
void (*outb)(uint16_t addr, uint8_t val, void *priv),
|
||||
void (*outw)(uint16_t addr, uint16_t val, void *priv),
|
||||
void (*outl)(uint16_t addr, uint32_t val, void *priv),
|
||||
void *priv);
|
||||
|
||||
@@ -46,92 +46,92 @@ int romset;
|
||||
|
||||
machine_t machines[] =
|
||||
{
|
||||
{"[8088] AMI XT clone", ROM_AMIXT, "amixt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Compaq Portable", ROM_PORTABLE, "portable", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 128, 640, 128, 0, machine_xt_init, NULL },
|
||||
{"[8088] DTK XT clone", ROM_DTKXT, "dtk", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] IBM PC", ROM_IBMPC, "ibmpc", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 32, 0, machine_xt_init, NULL },
|
||||
{"[8088] IBM PCjr", ROM_IBMPCJR, "ibmpcjr", {{"", cpus_pcjr}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, 0, 128, 640, 128, 0, machine_pcjr_init, pcjr_get_device },
|
||||
{"[8088] IBM XT", ROM_IBMXT, "ibmxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Generic XT clone", ROM_GENXT, "genxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Juko XT clone", ROM_JUKOPC, "jukopc", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Phoenix XT clone", ROM_PXXT, "pxxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Schneider EuroPC", ROM_EUROPC, "europc", {{"Siemens",cpus_europc}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_HAS_HDC, 512, 640, 128, 0, machine_europc_init, NULL },
|
||||
{"[8088] Tandy 1000", ROM_TANDY, "tandy", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, 0, 128, 640, 128, 0, machine_tandy1k_init, tandy1000_get_device },
|
||||
{"[8088] Tandy 1000 HX", ROM_TANDY1000HX, "tandy1000hx", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, 0, 256, 640, 128, 0, machine_tandy1k_init, tandy1000hx_get_device },
|
||||
{"[8088] VTech Laser Turbo XT", ROM_LTXT, "ltxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 1152, 64, 0, machine_xt_laserxt_init, NULL },
|
||||
{"[8088] VTech Laser XT3", ROM_LXT3, "lxt3", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, 0, 64, 1152, 64, 0, machine_xt_laserxt_init, NULL },
|
||||
{"[8088] AMI XT clone", ROM_AMIXT, "amixt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Compaq Portable", ROM_PORTABLE, "portable", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 128, 640, 128, 0, machine_xt_init, NULL },
|
||||
{"[8088] DTK XT clone", ROM_DTKXT, "dtk", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] IBM PC", ROM_IBMPC, "ibmpc", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 640, 32, 0, machine_xt_init, NULL },
|
||||
{"[8088] IBM PCjr", ROM_IBMPCJR, "ibmpcjr", {{"", cpus_pcjr}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 128, 640, 128, 0, machine_pcjr_init, pcjr_get_device },
|
||||
{"[8088] IBM XT", ROM_IBMXT, "ibmxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Generic XT clone", ROM_GENXT, "genxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Juko XT clone", ROM_JUKOPC, "jukopc", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Phoenix XT clone", ROM_PXXT, "pxxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 640, 64, 0, machine_xt_init, NULL },
|
||||
{"[8088] Schneider EuroPC", ROM_EUROPC, "europc", {{"Siemens",cpus_europc}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_HAS_HDC, 512, 640, 128, 0, machine_europc_init, NULL },
|
||||
{"[8088] Tandy 1000", ROM_TANDY, "tandy", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 128, 640, 128, 0, machine_tandy1k_init, tandy1000_get_device },
|
||||
{"[8088] Tandy 1000 HX", ROM_TANDY1000HX, "tandy1000hx", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 256, 640, 128, 0, machine_tandy1k_init, tandy1000hx_get_device },
|
||||
{"[8088] VTech Laser Turbo XT", ROM_LTXT, "ltxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 1152, 64, 0, machine_xt_laserxt_init, NULL },
|
||||
{"[8088] VTech Laser XT3", ROM_LXT3, "lxt3", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 64, 1152, 64, 0, machine_xt_laserxt_init, NULL },
|
||||
|
||||
{"[8086] Amstrad PC1512", ROM_PC1512, "pc1512", {{"", cpus_pc1512}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_AMSTRAD, 512, 640, 128, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Amstrad PC1640", ROM_PC1640, "pc1640", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_AMSTRAD, 640, 640, 0, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Amstrad PC2086", ROM_PC2086, "pc2086", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_AMSTRAD, 640, 640, 0, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Amstrad PC3086", ROM_PC3086, "pc3086", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_AMSTRAD, 640, 640, 0, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Olivetti M24", ROM_OLIM24, "olivetti_m24", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_OLIM24, 128, 640, 128, 0, machine_olim24_init, NULL },
|
||||
{"[8086] Sinclair PC200", ROM_PC200, "pc200", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_AMSTRAD, 512, 640, 128, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Tandy 1000 SL/2", ROM_TANDY1000SL2, "tandy1000sl2", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, 0, 512, 768, 128, 0, machine_tandy1ksl2_init, NULL },
|
||||
{"[8086] Amstrad PC1512", ROM_PC1512, "pc1512", {{"", cpus_pc1512}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AMSTRAD, 512, 640, 128, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Amstrad PC1640", ROM_PC1640, "pc1640", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AMSTRAD, 640, 640, 0, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Amstrad PC2086", ROM_PC2086, "pc2086", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AMSTRAD, 640, 640, 0, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Amstrad PC3086", ROM_PC3086, "pc3086", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AMSTRAD, 640, 640, 0, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Olivetti M24", ROM_OLIM24, "olivetti_m24", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_OLIM24, 128, 640, 128, 0, machine_olim24_init, NULL },
|
||||
{"[8086] Sinclair PC200", ROM_PC200, "pc200", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AMSTRAD, 512, 640, 128, 63, machine_amstrad_init, NULL },
|
||||
{"[8086] Tandy 1000 SL/2", ROM_TANDY1000SL2, "tandy1000sl2", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 512, 768, 128, 0, machine_tandy1ksl2_init, NULL },
|
||||
|
||||
{"[286 ISA] AMI 286 clone", ROM_AMI286, "ami286", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT, 512,16384, 128, 127, machine_at_neat_init, NULL },
|
||||
{"[286 ISA] Award 286 clone", ROM_AWARD286, "award286", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT, 512,16384, 128, 127, machine_at_scat_init, NULL },
|
||||
{"[286 ISA] Commodore PC 30 III", ROM_CMDPC30, "cmdpc30", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT, 640,16384, 128, 127, machine_at_cmdpc_init, NULL },
|
||||
{"[286 ISA] Hyundai Super-286TR", ROM_SUPER286TR, "super286tr", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT, 512,16384, 128, 127, machine_at_scat_init, NULL },
|
||||
{"[286 ISA] IBM AT", ROM_IBMAT, "ibmat", {{"", cpus_ibmat}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT, 256,15872, 128, 63, machine_at_top_remap_init, NULL },
|
||||
{"[286 ISA] IBM PS/1 model 2011", ROM_IBMPS1_2011, "ibmps1es", {{"", cpus_ps1_m2011}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD, 512,16384, 512, 127, machine_ps1_m2011_init, NULL },
|
||||
{"[286 ISA] IBM PS/2 model 30-286", ROM_IBMPS2_M30_286, "ibmps2_m30_286", {{"", cpus_ps2_m30_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD, 1, 16, 1, 127, machine_ps2_m30_286_init, NULL },
|
||||
{"[286 ISA] Samsung SPC-4200P", ROM_SPC4200P, "spc4200p", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2, 512,16384, 128, 127, machine_at_scat_init, NULL },
|
||||
{"[286 ISA] AMI 286 clone", ROM_AMI286, "ami286", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT, 512,16384, 128, 127, machine_at_neat_init, NULL },
|
||||
{"[286 ISA] Award 286 clone", ROM_AWARD286, "award286", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT, 512,16384, 128, 127, machine_at_scat_init, NULL },
|
||||
{"[286 ISA] Commodore PC 30 III", ROM_CMDPC30, "cmdpc30", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT, 640,16384, 128, 127, machine_at_cmdpc_init, NULL },
|
||||
{"[286 ISA] Hyundai Super-286TR", ROM_SUPER286TR, "super286tr", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT, 512,16384, 128, 127, machine_at_scat_init, NULL },
|
||||
{"[286 ISA] IBM AT", ROM_IBMAT, "ibmat", {{"", cpus_ibmat}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT, 256,15872, 128, 63, machine_at_top_remap_init, NULL },
|
||||
{"[286 ISA] IBM PS/1 model 2011", ROM_IBMPS1_2011, "ibmps1es", {{"", cpus_ps1_m2011}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD, 512,16384, 512, 127, machine_ps1_m2011_init, NULL },
|
||||
{"[286 ISA] IBM PS/2 model 30-286", ROM_IBMPS2_M30_286, "ibmps2_m30_286", {{"", cpus_ps2_m30_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD, 1, 16, 1, 127, machine_ps2_m30_286_init, NULL },
|
||||
{"[286 ISA] Samsung SPC-4200P", ROM_SPC4200P, "spc4200p", {{"", cpus_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_PS2, 512,16384, 128, 127, machine_at_scat_init, NULL },
|
||||
|
||||
{"[286 MCA] IBM PS/2 model 50", ROM_IBMPS2_M50, "ibmps2_m50", {{"", cpus_ps2_m30_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD | MACHINE_MCA, 1, 16, 1, 63, machine_ps2_model_50_init, NULL },
|
||||
{"[286 MCA] IBM PS/2 model 50", ROM_IBMPS2_M50, "ibmps2_m50", {{"", cpus_ps2_m30_286}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_MCA | MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD, 1, 16, 1, 63, machine_ps2_model_50_init, NULL },
|
||||
|
||||
{"[386SX ISA] AMI 386SX clone", ROM_AMI386SX, "ami386", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 512,16384, 128, 127, machine_at_headland_init, NULL },
|
||||
{"[386SX ISA] Amstrad MegaPC", ROM_MEGAPC, "megapc", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 16, 1, 127, machine_at_wd76c10_init, NULL },
|
||||
{"[386SX ISA] Award 386SX clone", ROM_AWARD386SX_OPTI495, "award386sx", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[386SX ISA] DTK 386SX clone", ROM_DTK386, "dtk386", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 512,16384, 128, 127, machine_at_neat_init, NULL },
|
||||
{"[386SX ISA] IBM PS/1 model 2121", ROM_IBMPS1_2121, "ibmps1_2121", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 16, 1, 127, machine_ps1_m2121_init, NULL },
|
||||
{"[386SX ISA] IBM PS/1 m.2121+ISA", ROM_IBMPS1_2121_ISA, "ibmps1_2121_isa", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 16, 1, 127, machine_ps1_m2121_init, NULL },
|
||||
{"[386SX ISA] AMI 386SX clone", ROM_AMI386SX, "ami386", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 512,16384, 128, 127, machine_at_headland_init, NULL },
|
||||
{"[386SX ISA] Amstrad MegaPC", ROM_MEGAPC, "megapc", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 16, 1, 127, machine_at_wd76c10_init, NULL },
|
||||
{"[386SX ISA] Award 386SX clone", ROM_AWARD386SX_OPTI495, "award386sx", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[386SX ISA] DTK 386SX clone", ROM_DTK386, "dtk386", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 512,16384, 128, 127, machine_at_neat_init, NULL },
|
||||
{"[386SX ISA] IBM PS/1 model 2121", ROM_IBMPS1_2121, "ibmps1_2121", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 16, 1, 127, machine_ps1_m2121_init, NULL },
|
||||
{"[386SX ISA] IBM PS/1 m.2121+ISA", ROM_IBMPS1_2121_ISA, "ibmps1_2121_isa", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 16, 1, 127, machine_ps1_m2121_init, NULL },
|
||||
|
||||
{"[386SX MCA] IBM PS/2 model 55SX", ROM_IBMPS2_M55SX, "ibmps2_m55sx", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD | MACHINE_MCA, 1, 8, 1, 63, machine_ps2_model_55sx_init, NULL },
|
||||
{"[386SX MCA] IBM PS/2 model 55SX", ROM_IBMPS2_M55SX, "ibmps2_m55sx", {{"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_MCA | MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD, 1, 8, 1, 63, machine_ps2_model_55sx_init, NULL },
|
||||
|
||||
{"[386DX ISA] AMI 386DX clone", ROM_AMI386DX_OPTI495, "ami386dx", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[386DX ISA] Amstrad MegaPC 386DX", ROM_MEGAPCDX, "megapcdx", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 16, 1, 127, machine_at_wd76c10_init, NULL },
|
||||
{"[386DX ISA] Award 386DX clone", ROM_AWARD386DX_OPTI495, "award386dx", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[386DX ISA] MR 386DX clone", ROM_MR386DX_OPTI495, "mr386dx", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[386DX ISA] AMI 386DX clone", ROM_AMI386DX_OPTI495, "ami386dx", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[386DX ISA] Amstrad MegaPC 386DX", ROM_MEGAPCDX, "megapcdx", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 16, 1, 127, machine_at_wd76c10_init, NULL },
|
||||
{"[386DX ISA] Award 386DX clone", ROM_AWARD386DX_OPTI495, "award386dx", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[386DX ISA] MR 386DX clone", ROM_MR386DX_OPTI495, "mr386dx", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
|
||||
{"[386DX MCA] IBM PS/2 model 80", ROM_IBMPS2_M80, "ibmps2_m80", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD | MACHINE_MCA, 1, 12, 1, 63, machine_ps2_model_80_init, NULL },
|
||||
{"[386DX MCA] IBM PS/2 model 80", ROM_IBMPS2_M80, "ibmps2_m80", {{"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}, {"", NULL}, {"", NULL}}, 1, MACHINE_MCA | MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD, 1, 12, 1, 63, machine_ps2_model_80_init, NULL },
|
||||
|
||||
{"[486 ISA] AMI 486 clone", ROM_AMI486, "ami486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_ali1429_init, NULL },
|
||||
{"[486 ISA] AMI WinBIOS 486", ROM_WIN486, "win486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_ali1429_init, NULL },
|
||||
{"[486 ISA] Award 486 clone", ROM_AWARD486_OPTI495, "award486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[486 ISA] DTK PKM-0038S E-2", ROM_DTK486, "dtk486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC, 1, 128, 1, 127, machine_at_dtk486_init, NULL },
|
||||
{"[486 ISA] IBM PS/1 machine 2133", ROM_IBMPS1_2133, "ibmps1_2133", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_ps1_m2133_init, NULL },
|
||||
{"[486 ISA] AMI 486 clone", ROM_AMI486, "ami486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_ali1429_init, NULL },
|
||||
{"[486 ISA] AMI WinBIOS 486", ROM_WIN486, "win486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_ali1429_init, NULL },
|
||||
{"[486 ISA] Award 486 clone", ROM_AWARD486_OPTI495, "award486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_at_opti495_init, NULL },
|
||||
{"[486 ISA] DTK PKM-0038S E-2", ROM_DTK486, "dtk486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_HAS_HDC, 1, 128, 1, 127, machine_at_dtk486_init, NULL },
|
||||
{"[486 ISA] IBM PS/1 machine 2133", ROM_IBMPS1_2133, "ibmps1_2133", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 1, 64, 1, 127, machine_ps1_m2133_init, NULL },
|
||||
|
||||
{"[486 MCA] IBM PS/2 model 80-486", ROM_IBMPS2_M80_486, "ibmps2_m80-486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 1, MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD | MACHINE_MCA, 1, 32, 1, 63, machine_ps2_model_80_486_init, NULL },
|
||||
{"[486 MCA] IBM PS/2 model 80-486", ROM_IBMPS2_M80_486, "ibmps2_m80-486", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 1, MACHINE_MCA | MACHINE_AT | MACHINE_PS2 | MACHINE_PS2_HDD, 1, 32, 1, 63, machine_ps2_model_80_486_init, NULL },
|
||||
|
||||
{"[486 PCI] Rise Computer R418", ROM_R418, "r418", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC | MACHINE_PCI, 1, 255, 1, 127, machine_at_r418_init, NULL },
|
||||
{"[486 PCI] Rise Computer R418", ROM_R418, "r418", {{"Intel", cpus_i486}, {"AMD", cpus_Am486}, {"Cyrix", cpus_Cx486}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_HAS_HDC, 1, 255, 1, 127, machine_at_r418_init, NULL },
|
||||
|
||||
{"[Socket 4 LX] Intel Premiere/PCI", ROM_REVENGE, "revenge", {{"Intel", cpus_Pentium5V}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 2, 128, 2, 127, machine_at_batman_init, NULL },
|
||||
{"[Socket 4 LX] Intel Premiere/PCI", ROM_REVENGE, "revenge", {{"Intel", cpus_Pentium5V}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 2, 128, 2, 127, machine_at_batman_init, NULL },
|
||||
|
||||
{"[Socket 5 NX] Intel Premiere/PCI II", ROM_PLATO, "plato", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 2, 128, 2, 127, machine_at_plato_init, NULL },
|
||||
{"[Socket 5 NX] Intel Premiere/PCI II", ROM_PLATO, "plato", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 2, 128, 2, 127, machine_at_plato_init, NULL },
|
||||
|
||||
{"[Socket 5 FX] ASUS P/I-P54TP4XE", ROM_P54TP4XE, "p54tp4xe", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_p54tp4xe_init, NULL },
|
||||
{"[Socket 5 FX] Intel Advanced/EV", ROM_ENDEAVOR, "endeavor", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_endeavor_init, NULL },
|
||||
{"[Socket 5 FX] Intel Advanced/ZP", ROM_ZAPPA, "zappa", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_zappa_init, NULL },
|
||||
{"[Socket 5 FX] PC Partner MB500N", ROM_MB500N, "mb500n", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_mb500n_init, NULL },
|
||||
{"[Socket 5 FX] President Award 430FX PCI",ROM_PRESIDENT, "president", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_president_init, NULL },
|
||||
{"[Socket 5 FX] ASUS P/I-P54TP4XE", ROM_P54TP4XE, "p54tp4xe", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_p54tp4xe_init, NULL },
|
||||
{"[Socket 5 FX] Intel Advanced/EV", ROM_ENDEAVOR, "endeavor", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_endeavor_init, NULL },
|
||||
{"[Socket 5 FX] Intel Advanced/ZP", ROM_ZAPPA, "zappa", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_zappa_init, NULL },
|
||||
{"[Socket 5 FX] PC Partner MB500N", ROM_MB500N, "mb500n", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_mb500n_init, NULL },
|
||||
{"[Socket 5 FX] President Award 430FX PCI",ROM_PRESIDENT, "president", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"AMD", cpus_K5}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_president_init, NULL },
|
||||
|
||||
{"[Socket 7 FX] Intel Advanced/ATX", ROM_THOR, "thor", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_thor_init, NULL },
|
||||
{"[Socket 7 FX] MR Intel Advanced/ATX", ROM_MRTHOR, "mrthor", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_thor_init, NULL },
|
||||
{"[Socket 7 FX] Intel Advanced/ATX", ROM_THOR, "thor", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_thor_init, NULL },
|
||||
{"[Socket 7 FX] MR Intel Advanced/ATX", ROM_MRTHOR, "mrthor", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_thor_init, NULL },
|
||||
|
||||
{"[Socket 7 HX] Acer M3a", ROM_ACERM3A, "acerm3a", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 192, 8, 127, machine_at_acerm3a_init, NULL },
|
||||
{"[Socket 7 HX] Acer V35n", ROM_ACERV35N, "acerv35n", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 192, 8, 127, machine_at_acerv35n_init, NULL },
|
||||
{"[Socket 7 HX] AOpen AP53", ROM_AP53, "ap53", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 512, 8, 127, machine_at_ap53_init, NULL },
|
||||
{"[Socket 7 HX] ASUS P/I-P55T2P4", ROM_P55T2P4, "p55t2p4", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 512, 8, 127, machine_at_p55t2p4_init, NULL },
|
||||
{"[Socket 7 HX] SuperMicro Super P55T2S",ROM_P55T2S, "p55t2s", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 768, 8, 127, machine_at_p55t2s_init, NULL },
|
||||
{"[Socket 7 HX] Acer M3a", ROM_ACERM3A, "acerm3a", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 192, 8, 127, machine_at_acerm3a_init, NULL },
|
||||
{"[Socket 7 HX] Acer V35n", ROM_ACERV35N, "acerv35n", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 192, 8, 127, machine_at_acerv35n_init, NULL },
|
||||
{"[Socket 7 HX] AOpen AP53", ROM_AP53, "ap53", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 512, 8, 127, machine_at_ap53_init, NULL },
|
||||
{"[Socket 7 HX] ASUS P/I-P55T2P4", ROM_P55T2P4, "p55t2p4", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 512, 8, 127, machine_at_p55t2p4_init, NULL },
|
||||
{"[Socket 7 HX] SuperMicro Super P55T2S",ROM_P55T2S, "p55t2s", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 768, 8, 127, machine_at_p55t2s_init, NULL },
|
||||
|
||||
{"[Socket 7 VX] ASUS P/I-P55TVP4", ROM_P55TVP4, "p55tvp4", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_p55tvp4_init, NULL },
|
||||
{"[Socket 7 VX] Award 430VX PCI", ROM_430VX, "430vx", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_i430vx_init, NULL },
|
||||
{"[Socket 7 VX] Epox P55-VA", ROM_P55VA, "p55va", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 128, 8, 127, machine_at_p55va_init, NULL },
|
||||
{"[Socket 7 VX] ASUS P/I-P55TVP4", ROM_P55TVP4, "p55tvp4", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_p55tvp4_init, NULL },
|
||||
{"[Socket 7 VX] Award 430VX PCI", ROM_430VX, "430vx", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_i430vx_init, NULL },
|
||||
{"[Socket 7 VX] Epox P55-VA", ROM_P55VA, "p55va", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"AMD", cpus_K56}, {"Cyrix", cpus_6x86},{"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 128, 8, 127, machine_at_p55va_init, NULL },
|
||||
|
||||
{"[Socket 8 FX] Tyan Titan-Pro AT", ROM_440FX, "440fx", {{"Intel", cpus_PentiumPro}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 1024, 8, 127, machine_at_i440fx_init, NULL },
|
||||
{"[Socket 8 FX] Tyan Titan-Pro ATX", ROM_S1668, "tpatx", {{"Intel", cpus_PentiumPro}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC | MACHINE_PCI, 8, 1024, 8, 127, machine_at_s1668_init, NULL },
|
||||
{"", -1, "", {{"", 0}, {"", 0}, {"", 0}}, 0,0,0,0, 0 }
|
||||
{"[Socket 8 FX] Tyan Titan-Pro AT", ROM_440FX, "440fx", {{"Intel", cpus_PentiumPro}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 1024, 8, 127, machine_at_i440fx_init, NULL },
|
||||
{"[Socket 8 FX] Tyan Titan-Pro ATX", ROM_S1668, "tpatx", {{"Intel", cpus_PentiumPro}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HAS_HDC, 8, 1024, 8, 127, machine_at_s1668_init, NULL },
|
||||
{"", -1, "", {{"", 0}, {"", 0}, {"", 0}}, 0,0,0,0, 0 }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -42,7 +42,11 @@
|
||||
|
||||
|
||||
/* ROM BIOS file paths. */
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_NE1000
|
||||
#define ROM_PATH_NE1000 L"roms/network/ne1000/ne1000.rom"
|
||||
#endif
|
||||
#endif
|
||||
#define ROM_PATH_NE2000 L"roms/network/ne2000/ne2000.rom"
|
||||
#define ROM_PATH_RTL8029 L"roms/network/rtl8029as/rtl8029as.rom"
|
||||
|
||||
@@ -1890,6 +1894,8 @@ nic_init(device_t *info)
|
||||
dev->board = info->local;
|
||||
rom = NULL;
|
||||
switch(dev->board) {
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_NE1000
|
||||
case NE2K_NE1000:
|
||||
strcpy(dev->name, "NE1000");
|
||||
dev->maclocal[0] = 0x00; /* 00:00:D8 (NE1000 ISA OID) */
|
||||
@@ -1897,6 +1903,8 @@ nic_init(device_t *info)
|
||||
dev->maclocal[2] = 0xD8;
|
||||
rom = ROM_PATH_NE1000;
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
case NE2K_NE2000:
|
||||
strcpy(dev->name, "NE2000");
|
||||
@@ -2063,6 +2071,8 @@ nic_close(void *priv)
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_NE1000
|
||||
static device_config_t ne1000_config[] =
|
||||
{
|
||||
{
|
||||
@@ -2135,6 +2145,8 @@ static device_config_t ne1000_config[] =
|
||||
"", "", -1
|
||||
}
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static device_config_t ne2000_config[] =
|
||||
{
|
||||
@@ -2229,19 +2241,22 @@ static device_config_t rtl8029as_config[] =
|
||||
};
|
||||
|
||||
|
||||
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_NE1000
|
||||
device_t ne1000_device = {
|
||||
"Novell NE1000",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
NE2K_NE1000,
|
||||
nic_init, nic_close, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
ne1000_config
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
device_t ne2000_device = {
|
||||
"Novell NE2000",
|
||||
DEVICE_AT,
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
NE2K_NE2000,
|
||||
nic_init, nic_close, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
|
||||
@@ -31,11 +31,15 @@
|
||||
static netcard_t net_cards[] = {
|
||||
{ "None", "none", NULL,
|
||||
NULL, NULL },
|
||||
{ "Novell NE1000", "ne1k", &ne1000_device,
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_NE1000
|
||||
{ "[ISA] Novell NE1000", "ne1k", &ne1000_device,
|
||||
NULL, NULL },
|
||||
{ "Novell NE2000", "ne2k", &ne2000_device,
|
||||
#endif
|
||||
#endif
|
||||
{ "[ISA] Novell NE2000", "ne2k", &ne2000_device,
|
||||
NULL, NULL },
|
||||
{ "Realtek RTL8029AS", "ne2kpci", &rtl8029as_device,
|
||||
{ "[PCI] Realtek RTL8029AS","ne2kpci", &rtl8029as_device,
|
||||
NULL, NULL },
|
||||
{ "", "", NULL,
|
||||
NULL, NULL }
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Handling of the SCSI controllers.
|
||||
*
|
||||
* Version: @(#)scsi.c 1.0.8 2017/10/07
|
||||
* Version: @(#)scsi.c 1.0.9 2017/10/10
|
||||
*
|
||||
* Authors: TheCollector1995, <mariogplayer@gmail.com>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
@@ -30,11 +30,7 @@
|
||||
#include "scsi.h"
|
||||
#include "scsi_aha154x.h"
|
||||
#include "scsi_buslogic.h"
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_NCR
|
||||
#include "scsi_ncr5380.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
scsi_device_t SCSIDevices[SCSI_ID_MAX][SCSI_LUN_MAX];
|
||||
@@ -60,19 +56,15 @@ typedef struct {
|
||||
|
||||
static SCSI_CARD scsi_cards[] = {
|
||||
{ "None", "none", NULL, NULL },
|
||||
{ "Adaptec AHA-1540B", "aha1540b", &aha1540b_device, aha_device_reset },
|
||||
{ "Adaptec AHA-1542C", "aha1542c", &aha1542c_device, aha_device_reset },
|
||||
{ "Adaptec AHA-1542CF", "aha1542cf", &aha1542cf_device, aha_device_reset },
|
||||
{ "Adaptec AHA-1640", "aha1640", &aha1640_device, aha_device_reset },
|
||||
{ "BusLogic BT-545C", "bt545c", &buslogic_device, BuslogicDeviceReset },
|
||||
{ "BusLogic BT-958D PCI", "bt958d", &buslogic_pci_device, BuslogicDeviceReset },
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_NCR
|
||||
{ "Longshine LCS-6821N", "lcs6821n", &scsi_lcs6821n_device,NULL },
|
||||
{ "Ranco RT1000B", "rt1000b", &scsi_rt1000b_device, NULL },
|
||||
{ "Trantor T130B", "t130b", &scsi_t130b_device, NULL },
|
||||
#endif
|
||||
#endif
|
||||
{ "[ISA] Adaptec AHA-1540B","aha1540b", &aha1540b_device, aha_device_reset },
|
||||
{ "[ISA] Adaptec AHA-1542C","aha1542c", &aha1542c_device, aha_device_reset },
|
||||
{ "[ISA] Adaptec AHA-1542CF","aha1542cf", &aha1542cf_device, aha_device_reset },
|
||||
{ "[ISA] Longshine LCS-6821N","lcs6821n", &scsi_lcs6821n_device,NULL },
|
||||
{ "[ISA] Ranco RT1000B", "rt1000b", &scsi_rt1000b_device, NULL },
|
||||
{ "[ISA] Trantor T130B", "t130b", &scsi_t130b_device, NULL },
|
||||
{ "[MCA] Adaptec AHA-1640", "aha1640", &aha1640_device, aha_device_reset },
|
||||
{ "[PCI] BusLogic BT-545C", "bt545c", &buslogic_device, BuslogicDeviceReset },
|
||||
{ "[PCI] BusLogic BT-958D", "bt958d", &buslogic_pci_device, BuslogicDeviceReset },
|
||||
{ "", "", NULL, NULL },
|
||||
};
|
||||
|
||||
|
||||
@@ -2294,7 +2294,7 @@ static device_config_t aha_154x_config[] = {
|
||||
|
||||
device_t aha1540b_device = {
|
||||
"Adaptec AHA-1540B",
|
||||
0,
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
AHA_154xB,
|
||||
aha_init,
|
||||
aha_close,
|
||||
@@ -2308,7 +2308,7 @@ device_t aha1540b_device = {
|
||||
|
||||
device_t aha1542c_device = {
|
||||
"Adaptec AHA-1542C",
|
||||
0,
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
AHA_154xC,
|
||||
aha_init,
|
||||
aha_close,
|
||||
@@ -2322,7 +2322,7 @@ device_t aha1542c_device = {
|
||||
|
||||
device_t aha1542cf_device = {
|
||||
"Adaptec AHA-1542CF",
|
||||
0,
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
AHA_154xCF,
|
||||
aha_init,
|
||||
aha_close,
|
||||
|
||||
@@ -3157,7 +3157,7 @@ static device_config_t BT958D_Config[] = {
|
||||
|
||||
device_t buslogic_device = {
|
||||
"Buslogic BT-545C ISA",
|
||||
0,
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
CHIP_BUSLOGIC_ISA,
|
||||
Buslogic_Init,
|
||||
BuslogicClose,
|
||||
|
||||
@@ -837,7 +837,7 @@ t130b_available(void)
|
||||
device_t scsi_lcs6821n_device =
|
||||
{
|
||||
"Longshine LCS-6821N (SCSI)",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ncr_init, ncr_close, NULL,
|
||||
lcs6821n_available,
|
||||
@@ -848,7 +848,7 @@ device_t scsi_lcs6821n_device =
|
||||
device_t scsi_rt1000b_device =
|
||||
{
|
||||
"Ranco RT1000B (SCSI)",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
1,
|
||||
ncr_init, ncr_close, NULL,
|
||||
rt1000b_available,
|
||||
@@ -859,7 +859,7 @@ device_t scsi_rt1000b_device =
|
||||
device_t scsi_t130b_device =
|
||||
{
|
||||
"Trantor T130B (SCSI)",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
2,
|
||||
ncr_init, ncr_close, NULL,
|
||||
t130b_available,
|
||||
|
||||
@@ -97,7 +97,7 @@ void adlib_close(void *p)
|
||||
device_t adlib_device =
|
||||
{
|
||||
"AdLib",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
adlib_init, adlib_close, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
|
||||
@@ -840,7 +840,7 @@ static device_config_t adgold_config[] =
|
||||
device_t adgold_device =
|
||||
{
|
||||
"AdLib Gold",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
adgold_init,
|
||||
adgold_close,
|
||||
NULL,
|
||||
|
||||
@@ -746,7 +746,7 @@ static void pas16_close(void *p)
|
||||
device_t pas16_device =
|
||||
{
|
||||
"Pro Audio Spectrum 16",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
pas16_init, pas16_close, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
|
||||
@@ -1211,7 +1211,7 @@ static device_config_t sb_awe32_config[] =
|
||||
device_t sb_1_device =
|
||||
{
|
||||
"Sound Blaster v1.0",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
sb_1_init, sb_close, NULL, NULL,
|
||||
sb_speed_changed,
|
||||
@@ -1222,7 +1222,7 @@ device_t sb_1_device =
|
||||
device_t sb_15_device =
|
||||
{
|
||||
"Sound Blaster v1.5",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
sb_15_init, sb_close, NULL, NULL,
|
||||
sb_speed_changed,
|
||||
@@ -1244,7 +1244,7 @@ device_t sb_mcv_device =
|
||||
device_t sb_2_device =
|
||||
{
|
||||
"Sound Blaster v2.0",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
sb_2_init, sb_close, NULL, NULL,
|
||||
sb_speed_changed,
|
||||
@@ -1255,7 +1255,7 @@ device_t sb_2_device =
|
||||
device_t sb_pro_v1_device =
|
||||
{
|
||||
"Sound Blaster Pro v1",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
sb_pro_v1_init, sb_close, NULL, NULL,
|
||||
sb_speed_changed,
|
||||
@@ -1266,7 +1266,7 @@ device_t sb_pro_v1_device =
|
||||
device_t sb_pro_v2_device =
|
||||
{
|
||||
"Sound Blaster Pro v2",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
sb_pro_v2_init, sb_close, NULL, NULL,
|
||||
sb_speed_changed,
|
||||
@@ -1288,7 +1288,7 @@ device_t sb_pro_mcv_device =
|
||||
device_t sb_16_device =
|
||||
{
|
||||
"Sound Blaster 16",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
sb_16_init, sb_close, NULL, NULL,
|
||||
sb_speed_changed,
|
||||
@@ -1299,7 +1299,7 @@ device_t sb_16_device =
|
||||
device_t sb_awe32_device =
|
||||
{
|
||||
"Sound Blaster AWE32",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
sb_awe32_init, sb_close, NULL,
|
||||
sb_awe32_available,
|
||||
|
||||
@@ -115,7 +115,7 @@ void wss_speed_changed(void *p)
|
||||
device_t wss_device =
|
||||
{
|
||||
"Windows Sound System",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
wss_init, wss_close, NULL,
|
||||
NULL,
|
||||
wss_speed_changed,
|
||||
|
||||
@@ -54,25 +54,25 @@ typedef struct
|
||||
|
||||
static SOUND_CARD sound_cards[] =
|
||||
{
|
||||
{ "None", "none", NULL },
|
||||
{ "Adlib", "adlib", &adlib_device },
|
||||
{ "Adlib MCA", "adlib_mca", &adlib_mca_device },
|
||||
{ "Sound Blaster 1.0", "sb", &sb_1_device },
|
||||
{ "Sound Blaster 1.5", "sb1.5", &sb_15_device },
|
||||
{ "Sound Blaster MCV", "sbmcv", &sb_mcv_device },
|
||||
{ "Sound Blaster 2.0", "sb2.0", &sb_2_device },
|
||||
{ "Sound Blaster Pro v1", "sbprov1", &sb_pro_v1_device },
|
||||
{ "Sound Blaster Pro v2", "sbprov2", &sb_pro_v2_device },
|
||||
{ "Sound Blaster Pro MCV", "sbpromcv", &sb_pro_mcv_device },
|
||||
{ "Sound Blaster 16", "sb16", &sb_16_device },
|
||||
{ "Sound Blaster AWE32", "sbawe32", &sb_awe32_device },
|
||||
{ "Adlib Gold", "adlibgold", &adgold_device },
|
||||
{ "Windows Sound System", "wss", &wss_device },
|
||||
{ "None", "none", NULL },
|
||||
{ "[ISA] Adlib", "adlib", &adlib_device },
|
||||
{ "[ISA] Adlib Gold", "adlibgold",&adgold_device },
|
||||
{ "[ISA] Sound Blaster 1.0", "sb", &sb_1_device },
|
||||
{ "[ISA] Sound Blaster 1.5", "sb1.5", &sb_15_device },
|
||||
{ "[ISA] Sound Blaster 2.0", "sb2.0", &sb_2_device },
|
||||
{ "[ISA] Sound Blaster Pro v1", "sbprov1", &sb_pro_v1_device },
|
||||
{ "[ISA] Sound Blaster Pro v2", "sbprov2", &sb_pro_v2_device },
|
||||
{ "[ISA] Sound Blaster 16", "sb16", &sb_16_device },
|
||||
{ "[ISA] Sound Blaster AWE32", "sbawe32", &sb_awe32_device },
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_PAS16
|
||||
{ "Pro Audio Spectrum 16", "pas16", &pas16_device },
|
||||
{ "[ISA] Pro Audio Spectrum 16","pas16", &pas16_device },
|
||||
#endif
|
||||
#endif
|
||||
{ "[ISA] Windows Sound System", "wss", &wss_device },
|
||||
{ "[MCA] Adlib", "adlib_mca", &adlib_mca_device },
|
||||
{ "[MCA] Sound Blaster MCV","sbmcv", &sb_mcv_device },
|
||||
{ "[MCA] Sound Blaster Pro MCV","sbpromcv", &sb_pro_mcv_device },
|
||||
{ "", "", NULL }
|
||||
};
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@ void ati18800_add_status_info(char *s, int max_len, void *p)
|
||||
device_t ati18800_device =
|
||||
{
|
||||
"ATI-18800",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
ati18800_init,
|
||||
ati18800_close,
|
||||
NULL,
|
||||
|
||||
@@ -489,7 +489,7 @@ static device_config_t ati28800_wonderxl_config[] =
|
||||
device_t ati28800_device =
|
||||
{
|
||||
"ATI-28800",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ati28800_init,
|
||||
ati28800_close,
|
||||
@@ -504,7 +504,7 @@ device_t ati28800_device =
|
||||
device_t compaq_ati28800_device =
|
||||
{
|
||||
"Compaq ATI-28800",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ati28800_init,
|
||||
ati28800_close,
|
||||
@@ -519,7 +519,7 @@ device_t compaq_ati28800_device =
|
||||
device_t ati28800_wonderxl24_device =
|
||||
{
|
||||
"ATI-28800 (VGA Wonder XL24)",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ati28800_init,
|
||||
ati28800_close,
|
||||
|
||||
@@ -85,7 +85,7 @@ typedef struct mach64_t
|
||||
|
||||
uint8_t regs[256];
|
||||
int index;
|
||||
|
||||
|
||||
int type;
|
||||
|
||||
uint8_t pci_regs[256];
|
||||
@@ -3294,7 +3294,7 @@ void mach64_pci_write(int func, int addr, uint8_t val, void *p)
|
||||
}
|
||||
}
|
||||
|
||||
static void *mach64_common_init(void)
|
||||
static void *mach64_common_init(device_t *info)
|
||||
{
|
||||
mach64_t *mach64 = malloc(sizeof(mach64_t));
|
||||
memset(mach64, 0, sizeof(mach64_t));
|
||||
@@ -3308,7 +3308,7 @@ static void *mach64_common_init(void)
|
||||
mach64_hwcursor_draw,
|
||||
mach64_overlay_draw);
|
||||
|
||||
if (PCI)
|
||||
if (info->flags & DEVICE_PCI)
|
||||
mem_mapping_disable(&mach64->bios_rom.mapping);
|
||||
|
||||
mem_mapping_add(&mach64->linear_mapping, 0, 0, svga_read_linear, svga_readw_linear, svga_readl_linear, svga_write_linear, svga_writew_linear, svga_writel_linear, NULL, 0, &mach64->svga);
|
||||
@@ -3319,12 +3319,15 @@ static void *mach64_common_init(void)
|
||||
|
||||
mach64_io_set(mach64);
|
||||
|
||||
mach64->card = pci_add_card(PCI_ADD_VIDEO, mach64_pci_read, mach64_pci_write, mach64);
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
mach64->card = pci_add_card(PCI_ADD_VIDEO, mach64_pci_read, mach64_pci_write, mach64);
|
||||
|
||||
mach64->pci_regs[PCI_REG_COMMAND] = 3;
|
||||
mach64->pci_regs[0x30] = 0x00;
|
||||
mach64->pci_regs[0x32] = 0x0c;
|
||||
mach64->pci_regs[0x33] = 0x00;
|
||||
mach64->pci_regs[PCI_REG_COMMAND] = 3;
|
||||
mach64->pci_regs[0x30] = 0x00;
|
||||
mach64->pci_regs[0x32] = 0x0c;
|
||||
mach64->pci_regs[0x33] = 0x00;
|
||||
}
|
||||
|
||||
ati68860_ramdac_init(&mach64->ramdac);
|
||||
|
||||
@@ -3339,14 +3342,14 @@ static void *mach64_common_init(void)
|
||||
|
||||
static void *mach64gx_init(device_t *info)
|
||||
{
|
||||
mach64_t *mach64 = mach64_common_init();
|
||||
mach64_t *mach64 = mach64_common_init(info);
|
||||
|
||||
mach64->type = MACH64_GX;
|
||||
mach64->pci_id = (int)'X' | ((int)'G' << 8);
|
||||
mach64->config_chip_id = 0x020000d7;
|
||||
mach64->dac_cntl = 5 << 16; /*ATI 68860 RAMDAC*/
|
||||
mach64->config_stat0 = (5 << 9) | (3 << 3); /*ATI-68860, 256Kx16 DRAM*/
|
||||
if (PCI)
|
||||
if (info->flags & DEVICE_PCI)
|
||||
mach64->config_stat0 |= 0; /*PCI, 256Kx16 DRAM*/
|
||||
else
|
||||
mach64->config_stat0 |= 1; /*VLB, 256Kx16 DRAM*/
|
||||
@@ -3359,7 +3362,7 @@ static void *mach64gx_init(device_t *info)
|
||||
}
|
||||
static void *mach64vt2_init(device_t *info)
|
||||
{
|
||||
mach64_t *mach64 = mach64_common_init();
|
||||
mach64_t *mach64 = mach64_common_init(info);
|
||||
svga_t *svga = &mach64->svga;
|
||||
|
||||
mach64->type = MACH64_VT2;
|
||||
@@ -3507,10 +3510,10 @@ static device_config_t mach64vt2_config[] =
|
||||
}
|
||||
};
|
||||
|
||||
device_t mach64gx_device =
|
||||
device_t mach64gx_vlb_device =
|
||||
{
|
||||
"ATI Mach64GX",
|
||||
0,
|
||||
"ATI Mach64GX VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
mach64gx_init,
|
||||
mach64_close,
|
||||
@@ -3521,6 +3524,22 @@ device_t mach64gx_device =
|
||||
mach64_add_status_info,
|
||||
mach64gx_config
|
||||
};
|
||||
|
||||
device_t mach64gx_pci_device =
|
||||
{
|
||||
"ATI Mach64GX PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
mach64gx_init,
|
||||
mach64_close,
|
||||
NULL,
|
||||
mach64gx_available,
|
||||
mach64_speed_changed,
|
||||
mach64_force_redraw,
|
||||
mach64_add_status_info,
|
||||
mach64gx_config
|
||||
};
|
||||
|
||||
device_t mach64vt2_device =
|
||||
{
|
||||
"ATI Mach64VT2",
|
||||
|
||||
@@ -16,5 +16,6 @@
|
||||
* Copyright 2016-2017 Miran Grca.
|
||||
*/
|
||||
|
||||
extern device_t mach64gx_device;
|
||||
extern device_t mach64gx_vlb_device;
|
||||
extern device_t mach64gx_pci_device;
|
||||
extern device_t mach64vt2_device;
|
||||
|
||||
@@ -578,7 +578,7 @@ static device_config_t cga_config[] =
|
||||
device_t cga_device =
|
||||
{
|
||||
"CGA",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
cga_standalone_init,
|
||||
cga_close,
|
||||
NULL,
|
||||
|
||||
@@ -1006,7 +1006,7 @@ void clgd_add_status_info(char *s, int max_len, void *p)
|
||||
device_t gd5422_device =
|
||||
{
|
||||
"Cirrus Logic GD5422",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
gd5422_init,
|
||||
clgd_close,
|
||||
@@ -1021,7 +1021,7 @@ device_t gd5422_device =
|
||||
device_t gd5429_device =
|
||||
{
|
||||
"Cirrus Logic GD5429",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
gd5429_init,
|
||||
clgd_close,
|
||||
@@ -1036,7 +1036,7 @@ device_t gd5429_device =
|
||||
device_t gd5430_device =
|
||||
{
|
||||
"Cirrus Logic GD5430",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
gd5430_init,
|
||||
clgd_close,
|
||||
@@ -1051,7 +1051,7 @@ device_t gd5430_device =
|
||||
device_t dia5430_device =
|
||||
{
|
||||
"Diamond CL-GD5430",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
dia5430_init,
|
||||
clgd_close,
|
||||
@@ -1066,7 +1066,7 @@ device_t dia5430_device =
|
||||
device_t gd5434_device =
|
||||
{
|
||||
"Cirrus Logic GD5434",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
gd5434_init,
|
||||
clgd_close,
|
||||
@@ -1081,7 +1081,7 @@ device_t gd5434_device =
|
||||
device_t gd5436_device =
|
||||
{
|
||||
"Cirrus Logic GD5436",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
gd5436_init,
|
||||
clgd_close,
|
||||
@@ -1096,7 +1096,7 @@ device_t gd5436_device =
|
||||
device_t gd5440_device =
|
||||
{
|
||||
"Cirrus Logic GD5440",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
gd5440_init,
|
||||
clgd_close,
|
||||
@@ -1111,7 +1111,7 @@ device_t gd5440_device =
|
||||
device_t gd5446_device =
|
||||
{
|
||||
"Cirrus Logic GD5446",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
gd5446_init,
|
||||
clgd_close,
|
||||
@@ -1126,7 +1126,7 @@ device_t gd5446_device =
|
||||
device_t gd6235_device =
|
||||
{
|
||||
"Cirrus Logic GD6235",
|
||||
DEVICE_NOT_WORKING,
|
||||
DEVICE_ISA | DEVICE_NOT_WORKING,
|
||||
0,
|
||||
gd6235_init,
|
||||
clgd_close,
|
||||
|
||||
@@ -445,7 +445,7 @@ static device_config_t colorplus_config[] =
|
||||
device_t colorplus_device =
|
||||
{
|
||||
"Colorplus",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
colorplus_standalone_init,
|
||||
colorplus_close,
|
||||
NULL, NULL,
|
||||
|
||||
@@ -1325,7 +1325,7 @@ static device_config_t ega_config[] =
|
||||
device_t ega_device =
|
||||
{
|
||||
"EGA",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ega_standalone_init,
|
||||
ega_close,
|
||||
@@ -1340,7 +1340,7 @@ device_t ega_device =
|
||||
device_t cpqega_device =
|
||||
{
|
||||
"Compaq EGA",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
cpqega_standalone_init,
|
||||
ega_close,
|
||||
@@ -1355,7 +1355,7 @@ device_t cpqega_device =
|
||||
device_t sega_device =
|
||||
{
|
||||
"SuperEGA",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
sega_standalone_init,
|
||||
ega_close,
|
||||
@@ -1371,7 +1371,7 @@ device_t sega_device =
|
||||
device_t jega_device =
|
||||
{
|
||||
"AX JEGA",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
jega_standalone_init,
|
||||
ega_close,
|
||||
|
||||
@@ -199,7 +199,7 @@ void et4000_add_status_info(char *s, int max_len, void *p)
|
||||
device_t et4000_device =
|
||||
{
|
||||
"Tseng Labs ET4000AX",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
et4000_init,
|
||||
et4000_close,
|
||||
|
||||
@@ -57,6 +57,7 @@ typedef struct et4000w32p_t
|
||||
icd2061_t icd2061;
|
||||
|
||||
int index;
|
||||
int pci;
|
||||
uint8_t regs[256];
|
||||
uint32_t linearbase, linearbase_old;
|
||||
|
||||
@@ -177,7 +178,7 @@ void et4000w32p_out(uint16_t addr, uint8_t val, void *p)
|
||||
}
|
||||
if (svga->crtcreg == 0x30)
|
||||
{
|
||||
if (PCI)
|
||||
if (et4000->pci)
|
||||
{
|
||||
et4000->linearbase &= 0xc0000000;
|
||||
et4000->linearbase = (val & 0xfc) << 22;
|
||||
@@ -248,8 +249,8 @@ uint8_t et4000w32p_in(uint16_t addr, void *p)
|
||||
return (et4000->regs[0xec] & 0xf) | 0x60; /*ET4000/W32p rev D*/
|
||||
if (et4000->index == 0xef)
|
||||
{
|
||||
if (PCI) return et4000->regs[0xef] | 0xe0; /*PCI*/
|
||||
else return et4000->regs[0xef] | 0x60; /*VESA local bus*/
|
||||
if (et4000->pci) return et4000->regs[0xef] | 0xe0; /*PCI*/
|
||||
else return et4000->regs[0xef] | 0x60; /*VESA local bus*/
|
||||
}
|
||||
return et4000->regs[et4000->index];
|
||||
}
|
||||
@@ -1157,7 +1158,8 @@ void *et4000w32p_init(device_t *info)
|
||||
NULL);
|
||||
|
||||
rom_init(&et4000->bios_rom, L"roms/video/et4000w32/et4000w32.bin", 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
if (PCI)
|
||||
et4000->pci = !!(info->flags & DEVICE_PCI);
|
||||
if (info->flags & DEVICE_PCI)
|
||||
mem_mapping_disable(&et4000->bios_rom.mapping);
|
||||
|
||||
mem_mapping_add(&et4000->linear_mapping, 0, 0, svga_read_linear, svga_readw_linear, svga_readl_linear, svga_write_linear, svga_writew_linear, svga_writel_linear, NULL, 0, &et4000->svga);
|
||||
@@ -1165,7 +1167,8 @@ void *et4000w32p_init(device_t *info)
|
||||
|
||||
et4000w32p_io_set(et4000);
|
||||
|
||||
pci_add_card(PCI_ADD_VIDEO, et4000w32p_pci_read, et4000w32p_pci_write, et4000);
|
||||
if (info->flags & DEVICE_PCI)
|
||||
pci_add_card(PCI_ADD_VIDEO, et4000w32p_pci_read, et4000w32p_pci_write, et4000);
|
||||
|
||||
/* Hardwired bits: 00000000 1xx0x0xx */
|
||||
/* R/W bits: xx xxxx */
|
||||
@@ -1258,10 +1261,25 @@ static device_config_t et4000w32p_config[] =
|
||||
}
|
||||
};
|
||||
|
||||
device_t et4000w32p_device =
|
||||
device_t et4000w32p_vlb_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p",
|
||||
0,
|
||||
"Tseng Labs ET4000/w32p VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
et4000w32p_init,
|
||||
et4000w32p_close,
|
||||
NULL,
|
||||
et4000w32p_available,
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_add_status_info,
|
||||
et4000w32p_config
|
||||
};
|
||||
|
||||
device_t et4000w32p_pci_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
et4000w32p_init,
|
||||
et4000w32p_close,
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
extern device_t et4000w32p_device;
|
||||
extern device_t et4000w32p_vlb_device;
|
||||
extern device_t et4000w32p_pci_device;
|
||||
|
||||
@@ -624,7 +624,7 @@ void genius_speed_changed(void *p)
|
||||
device_t genius_device =
|
||||
{
|
||||
"Genius VHR",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
genius_init,
|
||||
genius_close,
|
||||
NULL,
|
||||
|
||||
@@ -410,7 +410,7 @@ static device_config_t hercules_config[] =
|
||||
device_t hercules_device =
|
||||
{
|
||||
"Hercules",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
hercules_init,
|
||||
hercules_close,
|
||||
NULL,
|
||||
|
||||
@@ -715,7 +715,7 @@ void herculesplus_speed_changed(void *p)
|
||||
device_t herculesplus_device =
|
||||
{
|
||||
"Hercules Plus",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
herculesplus_init,
|
||||
herculesplus_close,
|
||||
NULL,
|
||||
|
||||
@@ -1062,7 +1062,7 @@ void incolor_speed_changed(void *p)
|
||||
device_t incolor_device =
|
||||
{
|
||||
"Hercules InColor",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
incolor_init,
|
||||
incolor_close,
|
||||
NULL,
|
||||
|
||||
@@ -359,7 +359,7 @@ static device_config_t mda_config[] =
|
||||
device_t mda_device =
|
||||
{
|
||||
"MDA",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
mda_init,
|
||||
mda_close,
|
||||
NULL,
|
||||
|
||||
@@ -3065,7 +3065,7 @@ device_config_t riva128zx_config[] =
|
||||
device_t riva128_device =
|
||||
{
|
||||
"nVidia RIVA 128",
|
||||
0,
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
riva128_init,
|
||||
riva128_close,
|
||||
@@ -3259,7 +3259,7 @@ device_config_t rivatnt_config[] =
|
||||
device_t rivatnt_device =
|
||||
{
|
||||
"nVidia RIVA TNT",
|
||||
0,
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
rivatnt_init,
|
||||
rivatnt_close,
|
||||
@@ -3482,7 +3482,7 @@ device_config_t rivatnt2_config[] =
|
||||
device_t rivatnt2_device =
|
||||
{
|
||||
"nVidia RIVA TNT2",
|
||||
0,
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
rivatnt2_init,
|
||||
rivatnt2_close,
|
||||
|
||||
@@ -287,7 +287,7 @@ static device_config_t oti077_config[] =
|
||||
device_t oti067_device =
|
||||
{
|
||||
"Oak OTI-067",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
oti067_init,
|
||||
oti067_close,
|
||||
@@ -301,7 +301,7 @@ device_t oti067_device =
|
||||
device_t oti077_device =
|
||||
{
|
||||
"Oak OTI-077",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
oti077_init,
|
||||
oti067_close,
|
||||
|
||||
@@ -433,7 +433,7 @@ device_t paradise_wd90c11_megapc_device =
|
||||
device_t paradise_wd90c11_device =
|
||||
{
|
||||
"Paradise WD90C11",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
paradise_wd90c11_megapc_init,
|
||||
paradise_close,
|
||||
|
||||
@@ -2143,7 +2143,7 @@ static int vram_sizes[] =
|
||||
3 /*8 MB*/
|
||||
};
|
||||
|
||||
static void *s3_init(wchar_t *bios_fn, int chip)
|
||||
static void *s3_init(device_t *info, wchar_t *bios_fn, int chip)
|
||||
{
|
||||
s3_t *s3 = malloc(sizeof(s3_t));
|
||||
svga_t *svga = &s3->svga;
|
||||
@@ -2160,7 +2160,7 @@ static void *s3_init(wchar_t *bios_fn, int chip)
|
||||
s3->vram_mask = vram_size - 1;
|
||||
|
||||
rom_init(&s3->bios_rom, bios_fn, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
if (PCI)
|
||||
if (info->flags & DEVICE_PCI)
|
||||
mem_mapping_disable(&s3->bios_rom.mapping);
|
||||
|
||||
mem_mapping_add(&s3->linear_mapping, 0, 0, svga_read_linear, svga_readw_linear, svga_readl_linear, svga_write_linear, svga_writew_linear, svga_writel_linear, NULL, MEM_MAPPING_EXTERNAL, &s3->svga);
|
||||
@@ -2173,7 +2173,7 @@ static void *s3_init(wchar_t *bios_fn, int chip)
|
||||
s3_hwcursor_draw,
|
||||
NULL);
|
||||
|
||||
if (PCI)
|
||||
if (info->flags & DEVICE_PCI)
|
||||
svga->crtc[0x36] = 2 | (3 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
|
||||
else
|
||||
svga->crtc[0x36] = 1 | (3 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
|
||||
@@ -2183,13 +2183,16 @@ static void *s3_init(wchar_t *bios_fn, int chip)
|
||||
|
||||
s3_io_set(s3);
|
||||
|
||||
s3->card = pci_add_card(PCI_ADD_VIDEO, s3_pci_read, s3_pci_write, s3);
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
s3->card = pci_add_card(PCI_ADD_VIDEO, s3_pci_read, s3_pci_write, s3);
|
||||
|
||||
s3->pci_regs[0x04] = 7;
|
||||
s3->pci_regs[0x04] = 7;
|
||||
|
||||
s3->pci_regs[0x30] = 0x00;
|
||||
s3->pci_regs[0x32] = 0x0c;
|
||||
s3->pci_regs[0x33] = 0x00;
|
||||
s3->pci_regs[0x30] = 0x00;
|
||||
s3->pci_regs[0x32] = 0x0c;
|
||||
s3->pci_regs[0x33] = 0x00;
|
||||
}
|
||||
|
||||
s3->chip = chip;
|
||||
|
||||
@@ -2202,9 +2205,9 @@ static void *s3_init(wchar_t *bios_fn, int chip)
|
||||
return s3;
|
||||
}
|
||||
|
||||
void *s3_vision864_init(wchar_t *bios_fn)
|
||||
void *s3_vision864_init(device_t *info, wchar_t *bios_fn)
|
||||
{
|
||||
s3_t *s3 = s3_init(bios_fn, S3_VISION864);
|
||||
s3_t *s3 = s3_init(info, bios_fn, S3_VISION864);
|
||||
|
||||
s3->id = 0xc1; /*Vision864P*/
|
||||
s3->id_ext = s3->id_ext_pci = 0xc1;
|
||||
@@ -2219,13 +2222,13 @@ void *s3_vision864_init(wchar_t *bios_fn)
|
||||
|
||||
static void *s3_bahamas64_init(device_t *info)
|
||||
{
|
||||
s3_t *s3 = s3_vision864_init(L"roms/video/s3/bahamas64.BIN");
|
||||
s3_t *s3 = s3_vision864_init(info, L"roms/video/s3/bahamas64.BIN");
|
||||
return s3;
|
||||
}
|
||||
|
||||
static void *s3_phoenix_vision864_init(device_t *info)
|
||||
{
|
||||
s3_t *s3 = s3_vision864_init(L"roms/video/s3/86c864p.bin");
|
||||
s3_t *s3 = s3_vision864_init(info, L"roms/video/s3/86c864p.bin");
|
||||
return s3;
|
||||
}
|
||||
|
||||
@@ -2241,7 +2244,7 @@ static int s3_phoenix_vision864_available(void)
|
||||
|
||||
static void *s3_phoenix_trio32_init(device_t *info)
|
||||
{
|
||||
s3_t *s3 = s3_init(L"roms/video/s3/86C732P.bin", S3_TRIO32);
|
||||
s3_t *s3 = s3_init(info, L"roms/video/s3/86C732P.bin", S3_TRIO32);
|
||||
|
||||
s3->id = 0xe1; /*Trio32*/
|
||||
s3->id_ext = 0x10;
|
||||
@@ -2259,9 +2262,9 @@ static int s3_phoenix_trio32_available(void)
|
||||
return rom_present(L"roms/video/s3/86C732P.bin");
|
||||
}
|
||||
|
||||
static void *s3_trio64_init(wchar_t *bios_fn)
|
||||
static void *s3_trio64_init(device_t *info, wchar_t *bios_fn)
|
||||
{
|
||||
s3_t *s3 = s3_init(bios_fn, S3_TRIO64);
|
||||
s3_t *s3 = s3_init(info, bios_fn, S3_TRIO64);
|
||||
|
||||
s3->id = 0xe1; /*Trio64*/
|
||||
s3->id_ext = s3->id_ext_pci = 0x11;
|
||||
@@ -2275,19 +2278,19 @@ static void *s3_trio64_init(wchar_t *bios_fn)
|
||||
|
||||
static void *s3_9fx_init(device_t *info)
|
||||
{
|
||||
s3_t *s3 = s3_trio64_init(L"roms/video/s3/s3_764.bin");
|
||||
s3_t *s3 = s3_trio64_init(info, L"roms/video/s3/s3_764.bin");
|
||||
return s3;
|
||||
}
|
||||
|
||||
static void *s3_phoenix_trio64_init(device_t *info)
|
||||
{
|
||||
s3_t *s3 = s3_trio64_init(L"roms/video/s3/86C764X1.bin");
|
||||
s3_t *s3 = s3_trio64_init(info, L"roms/video/s3/86C764X1.bin");
|
||||
return s3;
|
||||
}
|
||||
|
||||
static void *s3_diamond_stealth64_init(device_t *info)
|
||||
{
|
||||
s3_t *s3 = s3_trio64_init(L"roms/video/s3/STEALT64.BIN");
|
||||
s3_t *s3 = s3_trio64_init(info, L"roms/video/s3/STEALT64.BIN");
|
||||
return s3;
|
||||
}
|
||||
|
||||
@@ -2463,10 +2466,10 @@ static device_config_t s3_phoenix_trio64_config[] =
|
||||
}
|
||||
};
|
||||
|
||||
device_t s3_bahamas64_device =
|
||||
device_t s3_bahamas64_vlb_device =
|
||||
{
|
||||
"Paradise Bahamas 64 (S3 Vision864)",
|
||||
0,
|
||||
"Paradise Bahamas 64 (S3 Vision864) VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_bahamas64_init,
|
||||
s3_close,
|
||||
@@ -2478,10 +2481,25 @@ device_t s3_bahamas64_device =
|
||||
s3_bahamas64_config
|
||||
};
|
||||
|
||||
device_t s3_9fx_device =
|
||||
device_t s3_bahamas64_pci_device =
|
||||
{
|
||||
"Number 9 9FX (S3 Trio64)",
|
||||
0,
|
||||
"Paradise Bahamas 64 (S3 Vision864) PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_bahamas64_init,
|
||||
s3_close,
|
||||
NULL,
|
||||
s3_bahamas64_available,
|
||||
s3_speed_changed,
|
||||
s3_force_redraw,
|
||||
s3_add_status_info,
|
||||
s3_bahamas64_config
|
||||
};
|
||||
|
||||
device_t s3_9fx_vlb_device =
|
||||
{
|
||||
"Number 9 9FX (S3 Trio64) VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_9fx_init,
|
||||
s3_close,
|
||||
@@ -2493,10 +2511,25 @@ device_t s3_9fx_device =
|
||||
s3_9fx_config
|
||||
};
|
||||
|
||||
device_t s3_phoenix_trio32_device =
|
||||
device_t s3_9fx_pci_device =
|
||||
{
|
||||
"Phoenix S3 Trio32",
|
||||
0,
|
||||
"Number 9 9FX (S3 Trio64) PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_9fx_init,
|
||||
s3_close,
|
||||
NULL,
|
||||
s3_9fx_available,
|
||||
s3_speed_changed,
|
||||
s3_force_redraw,
|
||||
s3_add_status_info,
|
||||
s3_9fx_config
|
||||
};
|
||||
|
||||
device_t s3_phoenix_trio32_vlb_device =
|
||||
{
|
||||
"Phoenix S3 Trio32 VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_phoenix_trio32_init,
|
||||
s3_close,
|
||||
@@ -2508,10 +2541,25 @@ device_t s3_phoenix_trio32_device =
|
||||
s3_phoenix_trio32_config
|
||||
};
|
||||
|
||||
device_t s3_phoenix_trio64_device =
|
||||
device_t s3_phoenix_trio32_pci_device =
|
||||
{
|
||||
"Phoenix S3 Trio64",
|
||||
0,
|
||||
"Phoenix S3 Trio32 PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_phoenix_trio32_init,
|
||||
s3_close,
|
||||
NULL,
|
||||
s3_phoenix_trio32_available,
|
||||
s3_speed_changed,
|
||||
s3_force_redraw,
|
||||
s3_add_status_info,
|
||||
s3_phoenix_trio32_config
|
||||
};
|
||||
|
||||
device_t s3_phoenix_trio64_vlb_device =
|
||||
{
|
||||
"Phoenix S3 Trio64 VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_phoenix_trio64_init,
|
||||
s3_close,
|
||||
@@ -2523,10 +2571,25 @@ device_t s3_phoenix_trio64_device =
|
||||
s3_phoenix_trio64_config
|
||||
};
|
||||
|
||||
device_t s3_phoenix_vision864_device =
|
||||
device_t s3_phoenix_trio64_pci_device =
|
||||
{
|
||||
"Phoenix S3 Vision864",
|
||||
0,
|
||||
"Phoenix S3 Trio64 PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_phoenix_trio64_init,
|
||||
s3_close,
|
||||
NULL,
|
||||
s3_phoenix_trio64_available,
|
||||
s3_speed_changed,
|
||||
s3_force_redraw,
|
||||
s3_add_status_info,
|
||||
s3_phoenix_trio64_config
|
||||
};
|
||||
|
||||
device_t s3_phoenix_vision864_vlb_device =
|
||||
{
|
||||
"Phoenix S3 Vision864 VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_phoenix_vision864_init,
|
||||
s3_close,
|
||||
@@ -2538,10 +2601,40 @@ device_t s3_phoenix_vision864_device =
|
||||
s3_bahamas64_config
|
||||
};
|
||||
|
||||
device_t s3_diamond_stealth64_device =
|
||||
device_t s3_phoenix_vision864_pci_device =
|
||||
{
|
||||
"S3 Trio64 (Diamond Stealth64 DRAM)",
|
||||
0,
|
||||
"Phoenix S3 Vision864 PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_phoenix_vision864_init,
|
||||
s3_close,
|
||||
NULL,
|
||||
s3_phoenix_vision864_available,
|
||||
s3_speed_changed,
|
||||
s3_force_redraw,
|
||||
s3_add_status_info,
|
||||
s3_bahamas64_config
|
||||
};
|
||||
|
||||
device_t s3_diamond_stealth64_vlb_device =
|
||||
{
|
||||
"S3 Trio64 (Diamond Stealth64 DRAM) VLB",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_diamond_stealth64_init,
|
||||
s3_close,
|
||||
NULL,
|
||||
s3_diamond_stealth64_available,
|
||||
s3_speed_changed,
|
||||
s3_force_redraw,
|
||||
s3_add_status_info,
|
||||
s3_phoenix_trio64_config
|
||||
};
|
||||
|
||||
device_t s3_diamond_stealth64_pci_device =
|
||||
{
|
||||
"S3 Trio64 (Diamond Stealth64 DRAM) PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_diamond_stealth64_init,
|
||||
s3_close,
|
||||
|
||||
@@ -17,10 +17,16 @@
|
||||
* Copyright 2016-2017 Miran Grca.
|
||||
*/
|
||||
|
||||
device_t s3_bahamas64_device;
|
||||
device_t s3_9fx_device;
|
||||
device_t s3_phoenix_trio32_device;
|
||||
device_t s3_phoenix_trio64_device;
|
||||
device_t s3_phoenix_vision864_device;
|
||||
device_t s3_diamond_stealth64_device;
|
||||
device_t s3_bahamas64_vlb_device;
|
||||
device_t s3_bahamas64_pci_device;
|
||||
device_t s3_9fx_vlb_device;
|
||||
device_t s3_9fx_pci_device;
|
||||
device_t s3_phoenix_trio32_vlb_device;
|
||||
device_t s3_phoenix_trio32_pci_device;
|
||||
device_t s3_phoenix_trio64_vlb_device;
|
||||
device_t s3_phoenix_trio64_pci_device;
|
||||
device_t s3_phoenix_vision864_pci_device;
|
||||
device_t s3_phoenix_vision864_vlb_device;
|
||||
device_t s3_diamond_stealth64_pci_device;
|
||||
device_t s3_diamond_stealth64_vlb_device;
|
||||
/* device_t s3_miro_vision964_device; */
|
||||
|
||||
@@ -127,6 +127,7 @@ typedef struct virge_t
|
||||
uint8_t pci_regs[256];
|
||||
int card;
|
||||
|
||||
int pci;
|
||||
int is_375;
|
||||
|
||||
int bilinear_enabled;
|
||||
@@ -308,7 +309,7 @@ enum
|
||||
|
||||
static void s3_virge_update_irqs(virge_t *virge)
|
||||
{
|
||||
if (!PCI)
|
||||
if (!virge->pci)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -442,7 +443,7 @@ static void s3_virge_out(uint16_t addr, uint8_t val, void *p)
|
||||
case 2: case 3: svga->bpp = 15; break;
|
||||
case 4: case 5: svga->bpp = 16; break;
|
||||
case 7: svga->bpp = 24; break;
|
||||
case 13: svga->bpp = (gfxcard == GFX_VIRGEVX) ? 24 : 32; break;
|
||||
case 13: svga->bpp = ((gfxcard == GFX_VIRGEVX_VLB) || (gfxcard == GFX_VIRGEVX_PCI)) ? 24 : 32; break;
|
||||
default: svga->bpp = 8; break;
|
||||
}
|
||||
break;
|
||||
@@ -557,7 +558,7 @@ static void s3_virge_recalctimings(svga_t *svga)
|
||||
}
|
||||
}
|
||||
|
||||
if (gfxcard != GFX_VIRGEVX)
|
||||
if ((gfxcard != GFX_VIRGEVX_VLB) && (gfxcard != GFX_VIRGEVX_PCI))
|
||||
{
|
||||
if ((svga->bpp == 15) || (svga->bpp == 16))
|
||||
{
|
||||
@@ -621,7 +622,7 @@ static void s3_virge_recalctimings(svga_t *svga)
|
||||
if (((svga->miscout >> 2) & 3) == 3)
|
||||
{
|
||||
int n = svga->seqregs[0x12] & 0x1f;
|
||||
int r = (svga->seqregs[0x12] >> 5) & ((virge->is_375 || (gfxcard == GFX_VIRGEVX)) ? 7 : 3);
|
||||
int r = (svga->seqregs[0x12] >> 5) & ((virge->is_375 || ((gfxcard == GFX_VIRGEVX_VLB) || (gfxcard == GFX_VIRGEVX_PCI))) ? 7 : 3);
|
||||
int m = svga->seqregs[0x13] & 0x7f;
|
||||
double freq = (((double)m + 2) / (((double)n + 2) * (double)(1 << r))) * 14318184.0;
|
||||
|
||||
@@ -3767,8 +3768,10 @@ static void *s3_virge_init(device_t *info)
|
||||
s3_virge_overlay_draw);
|
||||
virge->svga.vblank_start = s3_virge_vblank_start;
|
||||
|
||||
virge->pci = !!(info->flags & DEVICE_PCI);
|
||||
|
||||
rom_init(&virge->bios_rom, L"roms/video/s3virge/s3virge.bin", 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
if (PCI)
|
||||
if (info->flags & DEVICE_PCI)
|
||||
mem_mapping_disable(&virge->bios_rom.mapping);
|
||||
|
||||
mem_mapping_add(&virge->mmio_mapping, 0, 0, s3_virge_mmio_read,
|
||||
@@ -3801,14 +3804,17 @@ static void *s3_virge_init(device_t *info)
|
||||
|
||||
io_sethandler(0x03c0, 0x0020, s3_virge_in, NULL, NULL, s3_virge_out, NULL, NULL, virge);
|
||||
|
||||
virge->pci_regs[4] = 3;
|
||||
virge->pci_regs[5] = 0;
|
||||
virge->pci_regs[6] = 0;
|
||||
virge->pci_regs[7] = 2;
|
||||
virge->pci_regs[0x32] = 0x0c;
|
||||
virge->pci_regs[0x3d] = 1;
|
||||
virge->pci_regs[0x3e] = 4;
|
||||
virge->pci_regs[0x3f] = 0xff;
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
virge->pci_regs[4] = 3;
|
||||
virge->pci_regs[5] = 0;
|
||||
virge->pci_regs[6] = 0;
|
||||
virge->pci_regs[7] = 2;
|
||||
virge->pci_regs[0x32] = 0x0c;
|
||||
virge->pci_regs[0x3d] = 1;
|
||||
virge->pci_regs[0x3e] = 4;
|
||||
virge->pci_regs[0x3f] = 0xff;
|
||||
}
|
||||
|
||||
virge->virge_id_high = 0x56;
|
||||
virge->virge_id_low = 0x31;
|
||||
@@ -3832,7 +3838,10 @@ static void *s3_virge_init(device_t *info)
|
||||
|
||||
virge->is_375 = 0;
|
||||
|
||||
virge->card = pci_add_card(PCI_ADD_VIDEO, s3_virge_pci_read, s3_virge_pci_write, virge);
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
virge->card = pci_add_card(PCI_ADD_VIDEO, s3_virge_pci_read, s3_virge_pci_write, virge);
|
||||
}
|
||||
|
||||
virge->wake_render_thread = thread_create_event();
|
||||
virge->wake_main_thread = thread_create_event();
|
||||
@@ -3861,8 +3870,10 @@ static void *s3_virge_988_init(device_t *info)
|
||||
s3_virge_hwcursor_draw,
|
||||
s3_virge_overlay_draw);
|
||||
|
||||
virge->pci = !!(info->flags & DEVICE_PCI);
|
||||
|
||||
rom_init(&virge->bios_rom, L"roms/video/s3virge/diamondstealth3000.VBI", 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
if (PCI)
|
||||
if (info->flags & DEVICE_PCI)
|
||||
mem_mapping_disable(&virge->bios_rom.mapping);
|
||||
|
||||
mem_mapping_add(&virge->mmio_mapping, 0, 0, s3_virge_mmio_read,
|
||||
@@ -3895,14 +3906,17 @@ static void *s3_virge_988_init(device_t *info)
|
||||
|
||||
io_sethandler(0x03c0, 0x0020, s3_virge_in, NULL, NULL, s3_virge_out, NULL, NULL, virge);
|
||||
|
||||
virge->pci_regs[4] = 3;
|
||||
virge->pci_regs[5] = 0;
|
||||
virge->pci_regs[6] = 0;
|
||||
virge->pci_regs[7] = 2;
|
||||
virge->pci_regs[0x32] = 0x0c;
|
||||
virge->pci_regs[0x3d] = 1;
|
||||
virge->pci_regs[0x3e] = 4;
|
||||
virge->pci_regs[0x3f] = 0xff;
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
virge->pci_regs[4] = 3;
|
||||
virge->pci_regs[5] = 0;
|
||||
virge->pci_regs[6] = 0;
|
||||
virge->pci_regs[7] = 2;
|
||||
virge->pci_regs[0x32] = 0x0c;
|
||||
virge->pci_regs[0x3d] = 1;
|
||||
virge->pci_regs[0x3e] = 4;
|
||||
virge->pci_regs[0x3f] = 0xff;
|
||||
}
|
||||
|
||||
virge->virge_id_high = 0x88;
|
||||
virge->virge_id_low = 0x3d;
|
||||
@@ -3926,7 +3940,10 @@ static void *s3_virge_988_init(device_t *info)
|
||||
|
||||
virge->is_375 = 0;
|
||||
|
||||
virge->card = pci_add_card(PCI_ADD_VIDEO, s3_virge_pci_read, s3_virge_pci_write, virge);
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
virge->card = pci_add_card(PCI_ADD_VIDEO, s3_virge_pci_read, s3_virge_pci_write, virge);
|
||||
}
|
||||
|
||||
virge->wake_render_thread = thread_create_event();
|
||||
virge->wake_main_thread = thread_create_event();
|
||||
@@ -3940,7 +3957,7 @@ static void *s3_virge_988_init(device_t *info)
|
||||
return virge;
|
||||
}
|
||||
|
||||
static void *s3_virge_375_init(wchar_t *romfn)
|
||||
static void *s3_virge_375_init(device_t *info, wchar_t *romfn)
|
||||
{
|
||||
virge_t *virge = malloc(sizeof(virge_t));
|
||||
memset(virge, 0, sizeof(virge_t));
|
||||
@@ -3955,8 +3972,10 @@ static void *s3_virge_375_init(wchar_t *romfn)
|
||||
s3_virge_hwcursor_draw,
|
||||
s3_virge_overlay_draw);
|
||||
|
||||
virge->pci = !!(info->flags & DEVICE_PCI);
|
||||
|
||||
rom_init(&virge->bios_rom, romfn, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
if (PCI)
|
||||
if (info->flags & DEVICE_PCI)
|
||||
mem_mapping_disable(&virge->bios_rom.mapping);
|
||||
|
||||
mem_mapping_add(&virge->mmio_mapping, 0, 0, s3_virge_mmio_read,
|
||||
@@ -3989,14 +4008,17 @@ static void *s3_virge_375_init(wchar_t *romfn)
|
||||
|
||||
io_sethandler(0x03c0, 0x0020, s3_virge_in, NULL, NULL, s3_virge_out, NULL, NULL, virge);
|
||||
|
||||
virge->pci_regs[4] = 3;
|
||||
virge->pci_regs[5] = 0;
|
||||
virge->pci_regs[6] = 0;
|
||||
virge->pci_regs[7] = 2;
|
||||
virge->pci_regs[0x32] = 0x0c;
|
||||
virge->pci_regs[0x3d] = 1;
|
||||
virge->pci_regs[0x3e] = 4;
|
||||
virge->pci_regs[0x3f] = 0xff;
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
virge->pci_regs[4] = 3;
|
||||
virge->pci_regs[5] = 0;
|
||||
virge->pci_regs[6] = 0;
|
||||
virge->pci_regs[7] = 2;
|
||||
virge->pci_regs[0x32] = 0x0c;
|
||||
virge->pci_regs[0x3d] = 1;
|
||||
virge->pci_regs[0x3e] = 4;
|
||||
virge->pci_regs[0x3f] = 0xff;
|
||||
}
|
||||
|
||||
virge->virge_id_high = 0x8a;
|
||||
virge->virge_id_low = 0x01;
|
||||
@@ -4021,7 +4043,10 @@ static void *s3_virge_375_init(wchar_t *romfn)
|
||||
|
||||
virge->is_375 = 1;
|
||||
|
||||
virge->card = pci_add_card(PCI_ADD_VIDEO, s3_virge_pci_read, s3_virge_pci_write, virge);
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
virge->card = pci_add_card(PCI_ADD_VIDEO, s3_virge_pci_read, s3_virge_pci_write, virge);
|
||||
}
|
||||
|
||||
virge->wake_render_thread = thread_create_event();
|
||||
virge->wake_main_thread = thread_create_event();
|
||||
@@ -4037,12 +4062,12 @@ static void *s3_virge_375_init(wchar_t *romfn)
|
||||
|
||||
static void *s3_virge_375_1_init(device_t *info)
|
||||
{
|
||||
return s3_virge_375_init(L"roms/video/s3virge/86c375_1.bin");
|
||||
return s3_virge_375_init(info, L"roms/video/s3virge/86c375_1.bin");
|
||||
}
|
||||
|
||||
static void *s3_virge_375_4_init(device_t *info)
|
||||
{
|
||||
return s3_virge_375_init(L"roms/video/s3virge/86c375_4.bin");
|
||||
return s3_virge_375_init(info, L"roms/video/s3virge/86c375_4.bin");
|
||||
}
|
||||
|
||||
static void s3_virge_close(void *p)
|
||||
@@ -4150,10 +4175,10 @@ static device_config_t s3_virge_config[] =
|
||||
}
|
||||
};
|
||||
|
||||
device_t s3_virge_device =
|
||||
device_t s3_virge_vlb_device =
|
||||
{
|
||||
"Diamond Stealth 3D 2000 (S3 ViRGE)",
|
||||
0,
|
||||
"Diamond Stealth 3D 2000 (S3 ViRGE) VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
@@ -4165,10 +4190,25 @@ device_t s3_virge_device =
|
||||
s3_virge_config
|
||||
};
|
||||
|
||||
device_t s3_virge_988_device =
|
||||
device_t s3_virge_pci_device =
|
||||
{
|
||||
"Diamond Stealth 3D 3000 (S3 ViRGE/VX)",
|
||||
"Diamond Stealth 3D 2000 (S3 ViRGE) PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
NULL,
|
||||
s3_virge_available,
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_add_status_info,
|
||||
s3_virge_config
|
||||
};
|
||||
|
||||
device_t s3_virge_988_vlb_device =
|
||||
{
|
||||
"Diamond Stealth 3D 3000 (S3 ViRGE/VX) VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_virge_988_init,
|
||||
s3_virge_close,
|
||||
@@ -4180,10 +4220,25 @@ device_t s3_virge_988_device =
|
||||
s3_virge_config
|
||||
};
|
||||
|
||||
device_t s3_virge_375_device =
|
||||
device_t s3_virge_988_pci_device =
|
||||
{
|
||||
"S3 ViRGE/DX",
|
||||
"Diamond Stealth 3D 3000 (S3 ViRGE/VX) PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_virge_988_init,
|
||||
s3_virge_close,
|
||||
NULL,
|
||||
s3_virge_988_available,
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_add_status_info,
|
||||
s3_virge_config
|
||||
};
|
||||
|
||||
device_t s3_virge_375_vlb_device =
|
||||
{
|
||||
"S3 ViRGE/DX VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_virge_375_1_init,
|
||||
s3_virge_close,
|
||||
@@ -4195,10 +4250,40 @@ device_t s3_virge_375_device =
|
||||
s3_virge_config
|
||||
};
|
||||
|
||||
device_t s3_virge_375_4_device =
|
||||
device_t s3_virge_375_pci_device =
|
||||
{
|
||||
"S3 ViRGE/DX (VBE 2.0)",
|
||||
"S3 ViRGE/DX PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_virge_375_1_init,
|
||||
s3_virge_close,
|
||||
NULL,
|
||||
s3_virge_375_1_available,
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_add_status_info,
|
||||
s3_virge_config
|
||||
};
|
||||
|
||||
device_t s3_virge_375_4_vlb_device =
|
||||
{
|
||||
"S3 ViRGE/DX (VBE 2.0) VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
s3_virge_375_4_init,
|
||||
s3_virge_close,
|
||||
NULL,
|
||||
s3_virge_375_4_available,
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_add_status_info,
|
||||
s3_virge_config
|
||||
};
|
||||
|
||||
device_t s3_virge_375_4_pci_device =
|
||||
{
|
||||
"S3 ViRGE/DX (VBE 2.0) PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
s3_virge_375_4_init,
|
||||
s3_virge_close,
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
/* Copyright holders: Sarah Walker
|
||||
see COPYING for more details
|
||||
*/
|
||||
extern device_t s3_virge_device;
|
||||
extern device_t s3_virge_988_device;
|
||||
extern device_t s3_virge_375_device;
|
||||
extern device_t s3_virge_375_4_device;
|
||||
extern device_t s3_virge_vlb_device;
|
||||
extern device_t s3_virge_pci_device;
|
||||
extern device_t s3_virge_988_vlb_device;
|
||||
extern device_t s3_virge_988_pci_device;
|
||||
extern device_t s3_virge_375_vlb_device;
|
||||
extern device_t s3_virge_375_pci_device;
|
||||
extern device_t s3_virge_375_4_vlb_device;
|
||||
extern device_t s3_virge_375_4_pci_device;
|
||||
|
||||
@@ -55,6 +55,7 @@ typedef struct tgui_t
|
||||
rom_t bios_rom;
|
||||
|
||||
svga_t svga;
|
||||
int pci;
|
||||
|
||||
struct
|
||||
{
|
||||
@@ -229,7 +230,7 @@ void tgui_out(uint16_t addr, uint8_t val, void *p)
|
||||
case 0x21:
|
||||
if (old != val)
|
||||
{
|
||||
if (!PCI)
|
||||
if (!tgui->pci)
|
||||
{
|
||||
tgui->linear_base = ((val & 0xf) | ((val >> 2) & 0x30)) << 20;
|
||||
tgui->linear_size = (val & 0x10) ? 0x200000 : 0x100000;
|
||||
@@ -515,6 +516,8 @@ void *tgui9440_init(device_t *info)
|
||||
tgui->vram_size = device_get_config_int("memory") << 20;
|
||||
tgui->vram_mask = tgui->vram_size - 1;
|
||||
|
||||
tgui->pci = !!(info->flags & DEVICE_PCI);
|
||||
|
||||
rom_init(&tgui->bios_rom, L"roms/video/tgui9440/9440.vbi", 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
|
||||
svga_init(&tgui->svga, tgui, tgui->vram_size,
|
||||
@@ -530,7 +533,10 @@ void *tgui9440_init(device_t *info)
|
||||
io_sethandler(0x03c0, 0x0020, tgui_in, NULL, NULL, tgui_out, NULL, NULL, tgui);
|
||||
io_sethandler(0x43c8, 0x0002, tgui_in, NULL, NULL, tgui_out, NULL, NULL, tgui);
|
||||
|
||||
pci_add_card(PCI_ADD_VIDEO, tgui_pci_read, tgui_pci_write, tgui);
|
||||
if (info->flags & DEVICE_PCI)
|
||||
{
|
||||
pci_add_card(PCI_ADD_VIDEO, tgui_pci_read, tgui_pci_write, tgui);
|
||||
}
|
||||
|
||||
tgui->wake_fifo_thread = thread_create_event();
|
||||
tgui->fifo_not_full_event = thread_create_event();
|
||||
@@ -1271,10 +1277,25 @@ static device_config_t tgui9440_config[] =
|
||||
}
|
||||
};
|
||||
|
||||
device_t tgui9440_device =
|
||||
device_t tgui9440_vlb_device =
|
||||
{
|
||||
"Trident TGUI 9440",
|
||||
0,
|
||||
"Trident TGUI 9440 VLB",
|
||||
DEVICE_VLB,
|
||||
0,
|
||||
tgui9440_init,
|
||||
tgui_close,
|
||||
NULL,
|
||||
tgui9440_available,
|
||||
tgui_speed_changed,
|
||||
tgui_force_redraw,
|
||||
tgui_add_status_info,
|
||||
tgui9440_config
|
||||
};
|
||||
|
||||
device_t tgui9440_pci_device =
|
||||
{
|
||||
"Trident TGUI 9440 PCI",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
tgui9440_init,
|
||||
tgui_close,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/* Copyright holders: Sarah Walker
|
||||
see COPYING for more details
|
||||
*/
|
||||
extern device_t tgui9440_device;
|
||||
extern device_t tgui9440_vlb_device;
|
||||
extern device_t tgui9440_pci_device;
|
||||
|
||||
@@ -367,7 +367,7 @@ static device_config_t tvga_config[] =
|
||||
device_t tvga8900d_device =
|
||||
{
|
||||
"Trident TVGA 8900D",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
tvga8900d_init,
|
||||
tvga_close,
|
||||
|
||||
@@ -192,7 +192,7 @@ void vga_add_status_info(char *s, int max_len, void *p)
|
||||
device_t vga_device =
|
||||
{
|
||||
"VGA",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
vga_init,
|
||||
vga_close,
|
||||
@@ -206,7 +206,7 @@ device_t vga_device =
|
||||
device_t trigem_unk_device =
|
||||
{
|
||||
"VGA",
|
||||
0,
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
trigem_unk_init,
|
||||
vga_close,
|
||||
|
||||
@@ -987,7 +987,7 @@ void wy700_speed_changed(void *p)
|
||||
device_t wy700_device =
|
||||
{
|
||||
"Wyse 700",
|
||||
0, 0,
|
||||
DEVICE_ISA, 0,
|
||||
wy700_init,
|
||||
wy700_close,
|
||||
NULL,
|
||||
|
||||
@@ -80,49 +80,62 @@ typedef struct
|
||||
|
||||
static VIDEO_CARD video_cards[] =
|
||||
{
|
||||
{"ATI Graphics Pro Turbo (Mach64 GX)", "mach64x", &mach64gx_device, GFX_MACH64GX},
|
||||
{"ATI Video Xpression (Mach64 VT2)", "mach64vt2", &mach64vt2_device, GFX_MACH64VT2},
|
||||
{"ATI VGA Charger (ATI-28800-5)", "ati28800", &ati28800_device, GFX_VGACHARGER},
|
||||
{"ATI VGA Wonder XL24 (ATI-28800-6)", "ati28800w", &ati28800_wonderxl24_device, GFX_VGAWONDERXL24},
|
||||
{"ATI VGA Edge-16 (ATI-18800)", "ati18800", &ati18800_device, GFX_VGAEDGE16},
|
||||
{"CGA", "cga", &cga_device, GFX_CGA},
|
||||
{"Diamond Stealth 32 (Tseng ET4000/w32p)", "stealth32", &et4000w32p_device, GFX_ET4000W32},
|
||||
{"Diamond Stealth 64 DRAM (S3 Trio64)", "stealth64d", &s3_diamond_stealth64_device,GFX_STEALTH64},
|
||||
{"Diamond Stealth 3D 2000 (S3 ViRGE)", "stealth3d_2000", &s3_virge_device, GFX_VIRGE},
|
||||
{"Diamond Stealth 3D 3000 (S3 ViRGE/VX)", "stealth3d_3000", &s3_virge_988_device, GFX_VIRGEVX},
|
||||
{"EGA", "ega", &ega_device, GFX_EGA},
|
||||
{"Chips & Technologies SuperEGA", "superega", &sega_device, GFX_SUPER_EGA},
|
||||
{"Compaq ATI VGA Wonder XL (ATI-28800-5)", "compaq_ati28800", &compaq_ati28800_device, GFX_VGAWONDERXL},
|
||||
{"Compaq EGA", "compaq_ega", &cpqega_device, GFX_COMPAQ_EGA},
|
||||
{"Hercules", "hercules", &hercules_device, GFX_HERCULES},
|
||||
{"Hercules Plus", "hercules_plus", &herculesplus_device, GFX_HERCULESPLUS},
|
||||
{"Hercules InColor", "incolor", &incolor_device, GFX_INCOLOR},
|
||||
{"MDA", "mda", &mda_device, GFX_MDA},
|
||||
{"MDSI Genius", "genius", &genius_device, GFX_GENIUS},
|
||||
{"Number Nine 9FX (S3 Trio64)", "n9_9fx", &s3_9fx_device, GFX_N9_9FX},
|
||||
{"[ISA] ATI VGA Charger (ATI-28800-5)", "ati28800", &ati28800_device, GFX_VGACHARGER},
|
||||
{"[ISA] ATI VGA Wonder XL24 (ATI-28800-6)", "ati28800w", &ati28800_wonderxl24_device, GFX_VGAWONDERXL24},
|
||||
{"[ISA] ATI VGA Edge-16 (ATI-18800)", "ati18800", &ati18800_device, GFX_VGAEDGE16},
|
||||
{"[ISA] CGA", "cga", &cga_device, GFX_CGA},
|
||||
{"[ISA] Chips & Technologies SuperEGA", "superega", &sega_device, GFX_SUPER_EGA},
|
||||
{"[ISA] Compaq ATI VGA Wonder XL (ATI-28800-5)","compaq_ati28800", &compaq_ati28800_device, GFX_VGAWONDERXL},
|
||||
{"[ISA] Compaq EGA", "compaq_ega", &cpqega_device, GFX_COMPAQ_EGA},
|
||||
{"[ISA] EGA", "ega", &ega_device, GFX_EGA},
|
||||
{"[ISA] Hercules", "hercules", &hercules_device, GFX_HERCULES},
|
||||
{"[ISA] Hercules Plus", "hercules_plus", &herculesplus_device, GFX_HERCULESPLUS},
|
||||
{"[ISA] Hercules InColor", "incolor", &incolor_device, GFX_INCOLOR},
|
||||
{"[ISA] MDA", "mda", &mda_device, GFX_MDA},
|
||||
{"[ISA] MDSI Genius", "genius", &genius_device, GFX_GENIUS},
|
||||
{"[ISA] OAK OTI-067", "oti067", &oti067_device, GFX_OTI067},
|
||||
{"[ISA] OAK OTI-077", "oti077", &oti077_device, GFX_OTI077},
|
||||
{"[ISA] Paradise WD90C11", "wd90c11", ¶dise_wd90c11_device, GFX_WD90C11},
|
||||
{"[ISA] Plantronics ColorPlus", "plantronics", &colorplus_device, GFX_COLORPLUS},
|
||||
{"[ISA] Trident TVGA8900D", "tvga8900d", &tvga8900d_device, GFX_TVGA},
|
||||
{"[ISA] Tseng ET4000AX", "et4000ax", &et4000_device, GFX_ET4000},
|
||||
{"[ISA] VGA", "vga", &vga_device, GFX_VGA},
|
||||
{"[ISA] Wyse 700", "wy700", &wy700_device, GFX_WY700},
|
||||
{"[VLB] ATI Graphics Pro Turbo (Mach64 GX)", "mach64x_vlb", &mach64gx_vlb_device, GFX_MACH64GX_VLB},
|
||||
{"[VLB] Diamond Stealth 32 (Tseng ET4000/w32p)","stealth32_vlb", &et4000w32p_vlb_device, GFX_ET4000W32_VLB},
|
||||
{"[VLB] Diamond Stealth 3D 2000 (S3 ViRGE)", "stealth3d_2000_vlb", &s3_virge_vlb_device, GFX_VIRGE_VLB},
|
||||
{"[VLB] Diamond Stealth 3D 3000 (S3 ViRGE/VX)", "stealth3d_3000_vlb", &s3_virge_988_vlb_device, GFX_VIRGEVX_VLB},
|
||||
{"[VLB] Diamond Stealth 64 DRAM (S3 Trio64)", "stealth64d_vlb", &s3_diamond_stealth64_vlb_device, GFX_STEALTH64_VLB},
|
||||
{"[VLB] Number Nine 9FX (S3 Trio64)", "n9_9fx_vlb", &s3_9fx_vlb_device, GFX_N9_9FX_VLB},
|
||||
{"[VLB] Paradise Bahamas 64 (S3 Vision864)", "bahamas64_vlb", &s3_bahamas64_vlb_device, GFX_BAHAMAS64_VLB},
|
||||
{"[VLB] Phoenix S3 Vision864", "px_vision864_vlb", &s3_phoenix_vision864_vlb_device, GFX_PHOENIX_VISION864_VLB},
|
||||
{"[VLB] Phoenix S3 Trio32", "px_trio32_vlb", &s3_phoenix_trio32_vlb_device, GFX_PHOENIX_TRIO32_VLB},
|
||||
{"[VLB] Phoenix S3 Trio64", "px_trio64_vlb", &s3_phoenix_trio64_vlb_device, GFX_PHOENIX_TRIO64_VLB},
|
||||
{"[VLB] S3 ViRGE/DX", "virge375_vlb", &s3_virge_375_vlb_device, GFX_VIRGEDX_VLB},
|
||||
{"[VLB] S3 ViRGE/DX (VBE 2.0)", "virge375_vbe20_vlb", &s3_virge_375_4_vlb_device, GFX_VIRGEDX4_VLB},
|
||||
{"[VLB] Trident TGUI9440", "tgui9440_vlb", &tgui9440_vlb_device, GFX_TGUI9440_VLB},
|
||||
{"[PCI] ATI Graphics Pro Turbo (Mach64 GX)", "mach64x_pci", &mach64gx_pci_device, GFX_MACH64GX_PCI},
|
||||
{"[PCI] ATI Video Xpression (Mach64 VT2)", "mach64vt2", &mach64vt2_device, GFX_MACH64VT2},
|
||||
{"[PCI] Diamond Stealth 32 (Tseng ET4000/w32p)","stealth32_pci", &et4000w32p_pci_device, GFX_ET4000W32_PCI},
|
||||
{"[PCI] Diamond Stealth 3D 2000 (S3 ViRGE)", "stealth3d_2000_pci", &s3_virge_pci_device, GFX_VIRGE_PCI},
|
||||
{"[PCI] Diamond Stealth 3D 3000 (S3 ViRGE/VX)", "stealth3d_3000_pci", &s3_virge_988_pci_device, GFX_VIRGEVX_PCI},
|
||||
{"[PCI] Diamond Stealth 64 DRAM (S3 Trio64)", "stealth64d_pci", &s3_diamond_stealth64_pci_device, GFX_STEALTH64_PCI},
|
||||
#ifdef DEV_BRANCH
|
||||
#ifdef USE_RIVA
|
||||
{"nVidia RIVA 128", "riva128", &riva128_device, GFX_RIVA128},
|
||||
{"nVidia RIVA TNT", "rivatnt", &rivatnt_device, GFX_RIVATNT},
|
||||
{"nVidia RIVA TNT2", "rivatnt2", &rivatnt2_device, GFX_RIVATNT2},
|
||||
{"[PCI] nVidia RIVA 128", "riva128", &riva128_device, GFX_RIVA128},
|
||||
{"[PCI] nVidia RIVA TNT", "rivatnt", &rivatnt_device, GFX_RIVATNT},
|
||||
{"[PCI] nVidia RIVA TNT2", "rivatnt2", &rivatnt2_device, GFX_RIVATNT2},
|
||||
#endif
|
||||
#endif
|
||||
{"OAK OTI-067", "oti067", &oti067_device, GFX_OTI067},
|
||||
{"OAK OTI-077", "oti077", &oti077_device, GFX_OTI077},
|
||||
{"Paradise Bahamas 64 (S3 Vision864)", "bahamas64", &s3_bahamas64_device, GFX_BAHAMAS64},
|
||||
{"Paradise WD90C11", "wd90c11", ¶dise_wd90c11_device, GFX_WD90C11},
|
||||
{"Phoenix S3 Vision864", "px_vision864", &s3_phoenix_vision864_device,GFX_PHOENIX_VISION864},
|
||||
{"Phoenix S3 Trio32", "px_trio32", &s3_phoenix_trio32_device, GFX_PHOENIX_TRIO32},
|
||||
{"Phoenix S3 Trio64", "px_trio64", &s3_phoenix_trio64_device, GFX_PHOENIX_TRIO64},
|
||||
{"Plantronics ColorPlus", "plantronics", &colorplus_device, GFX_COLORPLUS},
|
||||
{"S3 ViRGE/DX", "virge375", &s3_virge_375_device, GFX_VIRGEDX},
|
||||
{"S3 ViRGE/DX (VBE 2.0)", "virge375_vbe20", &s3_virge_375_4_device, GFX_VIRGEDX4},
|
||||
{"Trident TGUI9440", "tgui9440", &tgui9440_device, GFX_TGUI9440},
|
||||
{"Trident TVGA8900D", "tvga8900d", &tvga8900d_device, GFX_TVGA},
|
||||
{"Tseng ET4000AX", "et4000ax", &et4000_device, GFX_ET4000},
|
||||
{"VGA", "vga", &vga_device, GFX_VGA},
|
||||
{"Wyse 700", "wy700", &wy700_device, GFX_WY700},
|
||||
{"", "", NULL, 0}
|
||||
{"[PCI] Number Nine 9FX (S3 Trio64)", "n9_9fx_pci", &s3_9fx_pci_device, GFX_N9_9FX_PCI},
|
||||
{"[PCI] Paradise Bahamas 64 (S3 Vision864)", "bahamas64_pci", &s3_bahamas64_pci_device, GFX_BAHAMAS64_PCI},
|
||||
{"[PCI] Phoenix S3 Vision864", "px_vision864_pci", &s3_phoenix_vision864_pci_device, GFX_PHOENIX_VISION864_PCI},
|
||||
{"[PCI] Phoenix S3 Trio32", "px_trio32_pci", &s3_phoenix_trio32_pci_device, GFX_PHOENIX_TRIO32_PCI},
|
||||
{"[PCI] Phoenix S3 Trio64", "px_trio64_pci", &s3_phoenix_trio64_pci_device, GFX_PHOENIX_TRIO64_PCI},
|
||||
{"[PCI] S3 ViRGE/DX", "virge375_pci", &s3_virge_375_pci_device, GFX_VIRGEDX_PCI},
|
||||
{"[PCI] S3 ViRGE/DX (VBE 2.0)", "virge375_vbe20_pci", &s3_virge_375_4_pci_device, GFX_VIRGEDX4_PCI},
|
||||
{"[PCI] Trident TGUI9440", "tgui9440_pci", &tgui9440_pci_device, GFX_TGUI9440_PCI},
|
||||
{"", "", NULL, 0}
|
||||
};
|
||||
|
||||
int video_card_available(int card)
|
||||
|
||||
@@ -701,7 +701,7 @@ static void recalc_vid_list(HWND hdlg)
|
||||
break;
|
||||
|
||||
if (video_card_available(c) && gfx_present[video_new_to_old(c)] &&
|
||||
((machines[temp_machine].flags & MACHINE_PCI) || !(video_card_getdevice(c)->flags & DEVICE_PCI)))
|
||||
device_is_valid(video_card_getdevice(c), machines[temp_machine].flags))
|
||||
{
|
||||
mbstowcs(szText, s, strlen(s) + 1);
|
||||
SendMessage(h, CB_ADDSTRING, 0, (LPARAM) szText);
|
||||
@@ -1057,7 +1057,7 @@ static BOOL CALLBACK win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wPa
|
||||
{
|
||||
sound_dev = sound_card_getdevice(c);
|
||||
|
||||
if (!sound_dev || (sound_dev->flags & DEVICE_MCA) == (machines[temp_machine].flags & MACHINE_MCA) || (sound_dev->flags & DEVICE_PCI) == (machines[temp_machine].flags & MACHINE_PCI))
|
||||
if (device_is_valid(sound_dev, machines[temp_machine].flags))
|
||||
{
|
||||
if (c == 0)
|
||||
{
|
||||
@@ -1077,6 +1077,8 @@ static BOOL CALLBACK win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wPa
|
||||
}
|
||||
SendMessage(h, CB_SETCURSEL, settings_sound_to_list[temp_sound_card], 0);
|
||||
|
||||
EnableWindow(h, d ? TRUE : FALSE);
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_CONFIGURE_SND);
|
||||
if (sound_card_has_config(temp_sound_card))
|
||||
{
|
||||
@@ -1104,7 +1106,7 @@ static BOOL CALLBACK win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wPa
|
||||
{
|
||||
midi_dev = midi_device_getdevice(c);
|
||||
|
||||
if (!midi_dev || (midi_dev->flags & DEVICE_MCA) == (machines[temp_machine].flags & MACHINE_MCA))
|
||||
if (!midi_dev)
|
||||
{
|
||||
if (c == 0)
|
||||
{
|
||||
@@ -1394,32 +1396,7 @@ static void recalc_hdc_list(HWND hdlg, int machine, int use_selected_hdc)
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
if ((hdc_get_flags(c) & DEVICE_AT) && !(machines[machine].flags & MACHINE_AT))
|
||||
{
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
if ((hdc_get_flags(c) & DEVICE_PS2) && !(machines[machine].flags & MACHINE_PS2_HDD))
|
||||
{
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
if ((hdc_get_flags(c) & DEVICE_MCA) && !(machines[machine].flags & MACHINE_MCA))
|
||||
{
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
if ((hdc_get_flags(c) & DEVICE_VLB) && !(machines[machine].flags & MACHINE_VLB))
|
||||
{
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
if ((hdc_get_flags(c) & DEVICE_PCI) && !(machines[machine].flags & MACHINE_PCI))
|
||||
{
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
if (!hdc_available(c))
|
||||
if (!hdc_available(c) || !device_is_valid(hdc_get_device(c), machines[temp_machine].flags))
|
||||
{
|
||||
c++;
|
||||
continue;
|
||||
@@ -1442,7 +1419,7 @@ static void recalc_hdc_list(HWND hdlg, int machine, int use_selected_hdc)
|
||||
SendMessage(h, CB_SETCURSEL, 0, 0);
|
||||
}
|
||||
|
||||
EnableWindow(h, TRUE);
|
||||
EnableWindow(h, d ? TRUE : FALSE);
|
||||
|
||||
free(lptsTemp);
|
||||
}
|
||||
@@ -1497,10 +1474,8 @@ static BOOL CALLBACK win_settings_peripherals_proc(HWND hdlg, UINT message, WPAR
|
||||
if (scsi_card_available(c))
|
||||
{
|
||||
scsi_dev = scsi_card_getdevice(c);
|
||||
|
||||
if (!scsi_dev || ((scsi_dev->flags & DEVICE_MCA) == (machines[temp_machine].flags & MACHINE_MCA)) ||
|
||||
((scsi_dev->flags & DEVICE_VLB) == (machines[temp_machine].flags & MACHINE_VLB)) ||
|
||||
((scsi_dev->flags & DEVICE_PCI) == (machines[temp_machine].flags & MACHINE_PCI)))
|
||||
|
||||
if (device_is_valid(scsi_dev, machines[temp_machine].flags))
|
||||
{
|
||||
if (c == 0)
|
||||
{
|
||||
@@ -1520,6 +1495,8 @@ static BOOL CALLBACK win_settings_peripherals_proc(HWND hdlg, UINT message, WPAR
|
||||
}
|
||||
SendMessage(h, CB_SETCURSEL, settings_scsi_to_list[temp_scsi_card], 0);
|
||||
|
||||
EnableWindow(h, d ? TRUE : FALSE);
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_CONFIGURE_SCSI);
|
||||
if (scsi_card_has_config(temp_scsi_card))
|
||||
{
|
||||
@@ -1746,8 +1723,7 @@ static BOOL CALLBACK win_settings_network_proc(HWND hdlg, UINT message, WPARAM w
|
||||
|
||||
settings_network_to_list[c] = d;
|
||||
|
||||
if (network_card_available(c) || ((network_card_getdevice(c)->flags & DEVICE_MCA) == (machines[temp_machine].flags & MACHINE_MCA)) ||
|
||||
((network_card_getdevice(c)->flags & DEVICE_PCI) == (machines[temp_machine].flags & MACHINE_PCI)))
|
||||
if (network_card_available(c) && device_is_valid(network_card_getdevice(c), machines[temp_machine].flags))
|
||||
{
|
||||
if (c == 0)
|
||||
{
|
||||
@@ -1766,6 +1742,8 @@ static BOOL CALLBACK win_settings_network_proc(HWND hdlg, UINT message, WPARAM w
|
||||
}
|
||||
SendMessage(h, CB_SETCURSEL, settings_network_to_list[temp_net_card], 0);
|
||||
|
||||
EnableWindow(h, d ? TRUE : FALSE);
|
||||
|
||||
network_recalc_combos(hdlg);
|
||||
|
||||
free(lptsTemp);
|
||||
|
||||
Reference in New Issue
Block a user