Moved the AMD K5 and K6 CPU's and the ATi VGA Wonder XL24 to the Dev branch;

Turned the char arrays in gameport.h into const char pointers;
The makefile no longer links in the (unfinished) PIIX4 emulation code (which is currently not used by anything even in the Dev branch).
This commit is contained in:
OBattler
2018-02-18 13:43:49 +01:00
parent e0a9de85c9
commit 1405d9b10b
13 changed files with 120 additions and 18 deletions

View File

@@ -8,7 +8,7 @@
* *
* 286/386+ instruction handlers list. * 286/386+ instruction handlers list.
* *
* Version: @(#)386_ops.h 1.0.1 2018/01/01 * Version: @(#)386_ops.h 1.0.2 2018/02/18
* *
* Author: Sarah Walker, <http://pcem-emulator.co.uk/> * Author: Sarah Walker, <http://pcem-emulator.co.uk/>
* leilei, * leilei,
@@ -148,7 +148,11 @@ static int ILLEGAL(uint32_t fetchdat)
} }
#include "x86seg.h" #include "x86seg.h"
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
#include "x86_ops_amd.h" #include "x86_ops_amd.h"
#endif
#endif
#include "x86_ops_arith.h" #include "x86_ops_arith.h"
#include "x86_ops_atomic.h" #include "x86_ops_atomic.h"
#include "x86_ops_bcd.h" #include "x86_ops_bcd.h"
@@ -778,6 +782,8 @@ OpFn OP_TABLE(pentiummmx_0f)[1024] =
/*f0*/ ILLEGAL, opPSLLW_a32, opPSLLD_a32, opPSLLQ_a32, ILLEGAL, opPMADDWD_a32, ILLEGAL, ILLEGAL, opPSUBB_a32, opPSUBW_a32, opPSUBD_a32, ILLEGAL, opPADDB_a32, opPADDW_a32, opPADDD_a32, ILLEGAL, /*f0*/ ILLEGAL, opPSLLW_a32, opPSLLD_a32, opPSLLQ_a32, ILLEGAL, opPMADDWD_a32, ILLEGAL, ILLEGAL, opPSUBB_a32, opPSUBW_a32, opPSUBD_a32, ILLEGAL, opPADDB_a32, opPADDW_a32, opPADDD_a32, ILLEGAL,
}; };
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
OpFn OP_TABLE(k6_0f)[1024] = OpFn OP_TABLE(k6_0f)[1024] =
{ {
/*16-bit data, 16-bit addr*/ /*16-bit data, 16-bit addr*/
@@ -868,6 +874,8 @@ OpFn OP_TABLE(k6_0f)[1024] =
/*e0*/ ILLEGAL, opPSRAW_a32, opPSRAD_a32, ILLEGAL, ILLEGAL, opPMULHW_a32, ILLEGAL, ILLEGAL, opPSUBSB_a32, opPSUBSW_a32, NULL, opPOR_a32, opPADDSB_a32, opPADDSW_a32, NULL, opPXOR_a32, /*e0*/ ILLEGAL, opPSRAW_a32, opPSRAD_a32, ILLEGAL, ILLEGAL, opPMULHW_a32, ILLEGAL, ILLEGAL, opPSUBSB_a32, opPSUBSW_a32, NULL, opPOR_a32, opPADDSB_a32, opPADDSW_a32, NULL, opPXOR_a32,
/*f0*/ ILLEGAL, opPSLLW_a32, opPSLLD_a32, opPSLLQ_a32, ILLEGAL, opPMADDWD_a32, ILLEGAL, ILLEGAL, opPSUBB_a32, opPSUBW_a32, opPSUBD_a32, ILLEGAL, opPADDB_a32, opPADDW_a32, opPADDD_a32, ILLEGAL, /*f0*/ ILLEGAL, opPSLLW_a32, opPSLLD_a32, opPSLLQ_a32, ILLEGAL, opPMADDWD_a32, ILLEGAL, ILLEGAL, opPSUBB_a32, opPSUBW_a32, opPSUBD_a32, ILLEGAL, opPADDB_a32, opPADDW_a32, opPADDD_a32, ILLEGAL,
}; };
#endif
#endif
OpFn OP_TABLE(c6x86mx_0f)[1024] = OpFn OP_TABLE(c6x86mx_0f)[1024] =
{ {

View File

@@ -8,7 +8,7 @@
* *
* CPU type handler. * CPU type handler.
* *
* Version: @(#)cpu.c 1.0.10 2018/02/01 * Version: @(#)cpu.c 1.0.11 2018/02/18
* *
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/> * Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* leilei, * leilei,
@@ -156,11 +156,15 @@ uint64_t ecx570_msr = 0;
#endif #endif
#endif #endif
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
/* AMD K5 and K6 MSR's. */ /* AMD K5 and K6 MSR's. */
uint64_t ecx83_msr = 0; uint64_t ecx83_msr = 0;
/* These are K6-only. */ /* These are K6-only. */
uint64_t star = 0; uint64_t star = 0;
uint64_t sfmask = 0; uint64_t sfmask = 0;
#endif
#endif
int timing_rr; int timing_rr;
int timing_mr, timing_mrl; int timing_mr, timing_mrl;
@@ -1068,6 +1072,8 @@ void cpu_set()
ccr4 = 0x80; ccr4 = 0x80;
break; break;
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
case CPU_K5: case CPU_K5:
case CPU_5K86: case CPU_5K86:
#ifdef USE_DYNAREC #ifdef USE_DYNAREC
@@ -1120,6 +1126,8 @@ void cpu_set()
codegen_timing_set(&codegen_timing_pentium); codegen_timing_set(&codegen_timing_pentium);
#endif #endif
break; break;
#endif
#endif
#ifdef DEV_BRANCH #ifdef DEV_BRANCH
#ifdef USE_I686 #ifdef USE_I686
@@ -1391,6 +1399,8 @@ void cpu_CPUID()
EAX = 0; EAX = 0;
break; break;
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
case CPU_K5: case CPU_K5:
if (!EAX) if (!EAX)
{ {
@@ -1522,6 +1532,8 @@ void cpu_CPUID()
else else
EAX = 0; EAX = 0;
break; break;
#endif
#endif
case CPU_PENTIUMMMX: case CPU_PENTIUMMMX:
if (!EAX) if (!EAX)
@@ -1728,6 +1740,8 @@ void cpu_RDMSR()
} }
break; break;
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
case CPU_K5: case CPU_K5:
case CPU_5K86: case CPU_5K86:
case CPU_K6: case CPU_K6:
@@ -1761,6 +1775,8 @@ void cpu_RDMSR()
break; break;
} }
break; break;
#endif
#endif
case CPU_PENTIUM: case CPU_PENTIUM:
case CPU_PENTIUMMMX: case CPU_PENTIUMMMX:
@@ -1953,6 +1969,8 @@ void cpu_WRMSR()
break; break;
} }
break; break;
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
case CPU_K5: case CPU_K5:
case CPU_5K86: case CPU_5K86:
case CPU_K6: case CPU_K6:
@@ -1975,6 +1993,8 @@ void cpu_WRMSR()
break; break;
} }
break; break;
#endif
#endif
case CPU_PENTIUM: case CPU_PENTIUM:
case CPU_PENTIUMMMX: case CPU_PENTIUMMMX:

View File

@@ -45,9 +45,13 @@
#define CPU_Cx6x86MX 20 #define CPU_Cx6x86MX 20
#define CPU_Cx6x86L 21 #define CPU_Cx6x86L 21
#define CPU_CxGX1 22 #define CPU_CxGX1 22
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
#define CPU_K5 23 #define CPU_K5 23
#define CPU_5K86 24 #define CPU_5K86 24
#define CPU_K6 25 #define CPU_K6 25
#endif
#endif
#ifdef DEV_BRANCH #ifdef DEV_BRANCH
#ifdef USE_I686 #ifdef USE_I686
#define CPU_PENTIUMPRO 26 /* 686 class CPUs */ #define CPU_PENTIUMPRO 26 /* 686 class CPUs */
@@ -101,8 +105,12 @@ extern CPU cpus_WinChip[];
extern CPU cpus_Pentium5V[]; extern CPU cpus_Pentium5V[];
extern CPU cpus_Pentium5V50[]; extern CPU cpus_Pentium5V50[];
extern CPU cpus_PentiumS5[]; extern CPU cpus_PentiumS5[];
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
extern CPU cpus_K5[]; extern CPU cpus_K5[];
extern CPU cpus_K56[]; extern CPU cpus_K56[];
#endif
#endif
extern CPU cpus_Pentium[]; extern CPU cpus_Pentium[];
extern CPU cpus_6x86[]; extern CPU cpus_6x86[];
#ifdef DEV_BRANCH #ifdef DEV_BRANCH

View File

@@ -29,7 +29,7 @@
* 16 = 180 MHz * 16 = 180 MHz
* 17 = 200 MHz * 17 = 200 MHz
* *
* Version: @(#)cpu_table.c 1.0.3 2018/02/01 * Version: @(#)cpu_table.c 1.0.4 2018/02/18
* *
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/> * Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* leilei, * leilei,
@@ -382,6 +382,8 @@ CPU cpus_Pentium[] = {
{"", -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0} {"", -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0}
}; };
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
CPU cpus_K5[] = { CPU cpus_K5[] = {
/*AMD K5 (Socket 5)*/ /*AMD K5 (Socket 5)*/
{"K5 (5k86) 75 (P75)", CPU_K5, 9, 75000000, 2, 25000000, 0x500, 0x500, 0, CPU_SUPPORTS_DYNAREC | CPU_REQUIRES_DYNAREC, 7,7,4,4, 9}, {"K5 (5k86) 75 (P75)", CPU_K5, 9, 75000000, 2, 25000000, 0x500, 0x500, 0, CPU_SUPPORTS_DYNAREC | CPU_REQUIRES_DYNAREC, 7,7,4,4, 9},
@@ -420,6 +422,8 @@ CPU cpus_K56[] = {
{"K6 (Model 7) 300", CPU_K6, 28, 300000000, 5, 33333333, 0x570, 0x570, 0, CPU_SUPPORTS_DYNAREC | CPU_REQUIRES_DYNAREC, 27,27,13,13, 36}, {"K6 (Model 7) 300", CPU_K6, 28, 300000000, 5, 33333333, 0x570, 0x570, 0, CPU_SUPPORTS_DYNAREC | CPU_REQUIRES_DYNAREC, 27,27,13,13, 36},
{"", -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0} {"", -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0}
}; };
#endif
#endif
#ifdef DEV_BRANCH #ifdef DEV_BRANCH
#ifdef USE_I686 #ifdef USE_I686

View File

@@ -48,7 +48,11 @@ extern OpFn dynarec_ops_pentium_0f[1024];
extern OpFn dynarec_ops_pentiummmx_0f[1024]; extern OpFn dynarec_ops_pentiummmx_0f[1024];
extern OpFn dynarec_ops_c6x86mx_0f[1024]; extern OpFn dynarec_ops_c6x86mx_0f[1024];
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
extern OpFn dynarec_ops_k6_0f[1024]; extern OpFn dynarec_ops_k6_0f[1024];
#endif
#endif
#ifdef DEV_BRANCH #ifdef DEV_BRANCH
#ifdef USE_I686 #ifdef USE_I686
@@ -140,7 +144,11 @@ extern OpFn ops_pentiummmx_0f[1024];
extern OpFn ops_c6x86mx_0f[1024]; extern OpFn ops_c6x86mx_0f[1024];
#ifdef DEV_BRANCH
#ifdef USE_AMD_K
extern OpFn ops_k6_0f[1024]; extern OpFn ops_k6_0f[1024];
#endif
#endif
#ifdef DEV_BRANCH #ifdef DEV_BRANCH
#ifdef USE_I686 #ifdef USE_I686

View File

@@ -54,7 +54,7 @@ char *joystick_get_name(int64_t joystick)
{ {
if (!joystick_list[joystick]) if (!joystick_list[joystick])
return NULL; return NULL;
return joystick_list[joystick]->name; return (char *) joystick_list[joystick]->name;
} }
int64_t joystick_get_max_joysticks(int64_t joystick) int64_t joystick_get_max_joysticks(int64_t joystick)
@@ -79,17 +79,17 @@ int64_t joystick_get_pov_count(int64_t joystick)
char *joystick_get_axis_name(int64_t joystick, int64_t id) char *joystick_get_axis_name(int64_t joystick, int64_t id)
{ {
return joystick_list[joystick]->axis_names[id]; return (char *) joystick_list[joystick]->axis_names[id];
} }
char *joystick_get_button_name(int64_t joystick, int64_t id) char *joystick_get_button_name(int64_t joystick, int64_t id)
{ {
return joystick_list[joystick]->button_names[id]; return (char *) joystick_list[joystick]->button_names[id];
} }
char *joystick_get_pov_name(int64_t joystick, int64_t id) char *joystick_get_pov_name(int64_t joystick, int64_t id)
{ {
return joystick_list[joystick]->pov_names[id]; return (char *) joystick_list[joystick]->pov_names[id];
} }
typedef struct gameport_axis_t typedef struct gameport_axis_t

View File

@@ -10,7 +10,7 @@
typedef struct typedef struct
{ {
char name[80]; const char *name;
void *(*init)(void); void *(*init)(void);
void (*close)(void *p); void (*close)(void *p);
uint8_t (*read)(void *p); uint8_t (*read)(void *p);
@@ -19,9 +19,9 @@ typedef struct
void (*a0_over)(void *p); void (*a0_over)(void *p);
int axis_count, button_count, pov_count; int axis_count, button_count, pov_count;
int max_joysticks; int max_joysticks;
char axis_names[8][32]; const char *axis_names[8];
char button_names[32][32]; const char *button_names[32];
char pov_names[4][32]; const char *pov_names[4];
} joystick_if_t; } joystick_if_t;

View File

@@ -11,7 +11,7 @@
* NOTES: OpenAT wip for 286-class machine with open BIOS. * NOTES: OpenAT wip for 286-class machine with open BIOS.
* PS2_M80-486 wip, pending receipt of TRM's for machine. * PS2_M80-486 wip, pending receipt of TRM's for machine.
* *
* Version: @(#)machine_table.c 1.0.18 2018/02/09 * Version: @(#)machine_table.c 1.0.19 2018/02/18
* *
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/> * Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -119,6 +119,7 @@ machine_t machines[] = {
{ "[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_HDC, 2, 128, 2, 127, machine_at_batman_init, NULL, nvr_at_close }, { "[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_HDC, 2, 128, 2, 127, machine_at_batman_init, NULL, nvr_at_close },
#if defined(DEV_BRANCH) && defined(USE_AMD_K)
{ "[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_HDC, 2, 128, 2, 127, machine_at_plato_init, NULL, nvr_at_close }, { "[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_HDC, 2, 128, 2, 127, machine_at_plato_init, NULL, nvr_at_close },
{ "[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_HDC, 8, 128, 8, 127, machine_at_p54tp4xe_init, NULL, nvr_at_close }, { "[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_HDC, 8, 128, 8, 127, machine_at_p54tp4xe_init, NULL, nvr_at_close },
@@ -139,6 +140,28 @@ machine_t machines[] = {
{ "[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_HDC, 8, 128, 8, 127, machine_at_p55tvp4_init, NULL, nvr_at_close }, { "[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_HDC, 8, 128, 8, 127, machine_at_p55tvp4_init, NULL, nvr_at_close },
{ "[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_HDC, 8, 128, 8, 127, machine_at_i430vx_init, NULL, nvr_at_close }, { "[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_HDC, 8, 128, 8, 127, machine_at_i430vx_init, NULL, nvr_at_close },
{ "[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_HDC, 8, 128, 8, 127, machine_at_p55va_init, NULL, nvr_at_close }, { "[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_HDC, 8, 128, 8, 127, machine_at_p55va_init, NULL, nvr_at_close },
#else
{ "[Socket 5 NX] Intel Premiere/PCI II", ROM_PLATO, "plato", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 2, 128, 2, 127, machine_at_plato_init, NULL, nvr_at_close },
{ "[Socket 5 FX] ASUS P/I-P54TP4XE", ROM_P54TP4XE, "p54tp4xe", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_HDC, 8, 128, 8, 127, machine_at_p54tp4xe_init, NULL, nvr_at_close },
{ "[Socket 5 FX] Intel Advanced/EV", ROM_ENDEAVOR, "endeavor", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC | MACHINE_VIDEO, 8, 128, 8, 127, machine_at_endeavor_init, at_endeavor_get_device, nvr_at_close },
{ "[Socket 5 FX] Intel Advanced/ZP", ROM_ZAPPA, "zappa", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_zappa_init, NULL, nvr_at_close },
{ "[Socket 5 FX] PC Partner MB500N", ROM_MB500N, "mb500n", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_HDC, 8, 128, 8, 127, machine_at_mb500n_init, NULL, nvr_at_close },
{ "[Socket 5 FX] President Award 430FX PCI",ROM_PRESIDENT, "president", {{ "Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_HDC, 8, 128, 8, 127, machine_at_president_init, NULL, nvr_at_close },
{ "[Socket 7 FX] Intel Advanced/ATX", ROM_THOR, "thor", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_thor_init, NULL, nvr_at_close },
{ "[Socket 7 FX] MR Intel Advanced/ATX", ROM_MRTHOR, "mrthor", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_thor_init, NULL, nvr_at_close },
{ "[Socket 7 HX] Acer M3a", ROM_ACERM3A, "acerm3a", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 192, 8, 127, machine_at_acerm3a_init, NULL, nvr_at_close },
{ "[Socket 7 HX] Acer V35n", ROM_ACERV35N, "acerv35n", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 192, 8, 127, machine_at_acerv35n_init, NULL, nvr_at_close },
{ "[Socket 7 HX] AOpen AP53", ROM_AP53, "ap53", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 512, 8, 127, machine_at_ap53_init, NULL, nvr_at_close },
{ "[Socket 7 HX] ASUS P/I-P55T2P4", ROM_P55T2P4, "p55t2p4", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 512, 8, 127, machine_at_p55t2p4_init, NULL, nvr_at_close },
{ "[Socket 7 HX] SuperMicro Super P55T2S", ROM_P55T2S, "p55t2s", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 768, 8, 127, machine_at_p55t2s_init, NULL, nvr_at_close },
{ "[Socket 7 VX] ASUS P/I-P55TVP4", ROM_P55TVP4, "p55tvp4", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_p55tvp4_init, NULL, nvr_at_close },
{ "[Socket 7 VX] Award 430VX PCI", ROM_430VX, "430vx", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_i430vx_init, NULL, nvr_at_close },
{ "[Socket 7 VX] Epox P55-VA", ROM_P55VA, "p55va", {{"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}, {"", NULL}, {"", NULL}}, 0, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_p55va_init, NULL, nvr_at_close },
#endif
#if defined(DEV_BRANCH) && defined(USE_I686) #if defined(DEV_BRANCH) && defined(USE_I686)
{ "[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_HDC, 8, 1024, 8, 127, machine_at_i440fx_init, NULL, nvr_at_close }, { "[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_HDC, 8, 1024, 8, 127, machine_at_i440fx_init, NULL, nvr_at_close },

View File

@@ -8,7 +8,7 @@
* *
* ATI 28800 emulation (VGA Charger) * ATI 28800 emulation (VGA Charger)
* *
* Version: @(#)vid_ati28800.c 1.0.6 2018/02/12 * Version: @(#)vid_ati28800.c 1.0.7 2018/02/18
* *
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/> * Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -39,8 +39,10 @@
#define BIOS_VGAXL_EVEN_PATH L"roms/video/ati28800/xleven.bin" #define BIOS_VGAXL_EVEN_PATH L"roms/video/ati28800/xleven.bin"
#define BIOS_VGAXL_ODD_PATH L"roms/video/ati28800/xlodd.bin" #define BIOS_VGAXL_ODD_PATH L"roms/video/ati28800/xlodd.bin"
#if defined(DEV_BRANCH) && defined(USE_XL24)
#define BIOS_XL24_EVEN_PATH L"roms/video/ati28800/112-14318-102.bin" #define BIOS_XL24_EVEN_PATH L"roms/video/ati28800/112-14318-102.bin"
#define BIOS_XL24_ODD_PATH L"roms/video/ati28800/112-14319-102.bin" #define BIOS_XL24_ODD_PATH L"roms/video/ati28800/112-14319-102.bin"
#endif
#define BIOS_ROM_PATH L"roms/video/ati28800/bios.bin" #define BIOS_ROM_PATH L"roms/video/ati28800/bios.bin"
@@ -202,6 +204,7 @@ memory <<= 10;
0, MEM_MAPPING_EXTERNAL); 0, MEM_MAPPING_EXTERNAL);
break; break;
#if defined(DEV_BRANCH) && defined(USE_XL24)
case GFX_VGAWONDERXL24: case GFX_VGAWONDERXL24:
rom_init_interleaved(&ati->bios_rom, rom_init_interleaved(&ati->bios_rom,
BIOS_XL24_EVEN_PATH, BIOS_XL24_EVEN_PATH,
@@ -209,6 +212,7 @@ memory <<= 10;
0xc0000, 0x10000, 0xffff, 0xc0000, 0x10000, 0xffff,
0, MEM_MAPPING_EXTERNAL); 0, MEM_MAPPING_EXTERNAL);
break; break;
#endif
default: default:
rom_init(&ati->bios_rom, rom_init(&ati->bios_rom,
@@ -253,11 +257,13 @@ compaq_ati28800_available(void)
} }
#if defined(DEV_BRANCH) && defined(USE_XL24)
static int static int
ati28800_wonderxl24_available(void) ati28800_wonderxl24_available(void)
{ {
return((rom_present(BIOS_XL24_EVEN_PATH) && rom_present(BIOS_XL24_ODD_PATH))); return((rom_present(BIOS_XL24_EVEN_PATH) && rom_present(BIOS_XL24_ODD_PATH)));
} }
#endif
static void static void
@@ -317,6 +323,7 @@ static device_config_t ati28800_config[] =
} }
}; };
#if defined(DEV_BRANCH) && defined(USE_XL24)
static device_config_t ati28800_wonderxl_config[] = static device_config_t ati28800_wonderxl_config[] =
{ {
{ {
@@ -340,6 +347,7 @@ static device_config_t ati28800_wonderxl_config[] =
"", "", -1 "", "", -1
} }
}; };
#endif
device_t ati28800_device = device_t ati28800_device =
{ {
@@ -367,6 +375,7 @@ device_t compaq_ati28800_device =
ati28800_config ati28800_config
}; };
#if defined(DEV_BRANCH) && defined(USE_XL24)
device_t ati28800_wonderxl24_device = device_t ati28800_wonderxl24_device =
{ {
"ATI-28800 (VGA Wonder XL24)", "ATI-28800 (VGA Wonder XL24)",
@@ -379,3 +388,4 @@ device_t ati28800_wonderxl24_device =
ati28800_add_status_info, ati28800_add_status_info,
ati28800_wonderxl_config ati28800_wonderxl_config
}; };
#endif

View File

@@ -3,4 +3,6 @@
*/ */
extern device_t ati28800_device; extern device_t ati28800_device;
extern device_t compaq_ati28800_device; extern device_t compaq_ati28800_device;
#if defined(DEV_BRANCH) && defined(USE_XL24)
extern device_t ati28800_wonderxl24_device; extern device_t ati28800_wonderxl24_device;
#endif

View File

@@ -8,7 +8,7 @@
* *
* Define all known video cards. * Define all known video cards.
* *
* Version: @(#)vid_table.c 1.0.19 2018/02/18 * Version: @(#)vid_table.c 1.0.20 2018/02/18
* *
* Authors: Miran Grca, <mgrca8@gmail.com> * Authors: Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com> * Fred N. van Kempen, <decwiz@yahoo.com>
@@ -86,7 +86,9 @@ video_cards[] = {
{ "[ISA] ATI VGA Charger (ATI-28800-5)", "ati28800", &ati28800_device, GFX_VGACHARGER, {VIDEO_ISA, 3, 3, 6, 5, 5, 10}}, { "[ISA] ATI VGA Charger (ATI-28800-5)", "ati28800", &ati28800_device, GFX_VGACHARGER, {VIDEO_ISA, 3, 3, 6, 5, 5, 10}},
{ "[ISA] ATI VGA Edge-16 (ATI-18800-5)", "ati18800", &ati18800_device, GFX_VGAEDGE16, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}}, { "[ISA] ATI VGA Edge-16 (ATI-18800-5)", "ati18800", &ati18800_device, GFX_VGAEDGE16, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}},
{ "[ISA] ATI VGA Wonder (ATI-18800)", "ati18800w", &ati18800_wonder_device, GFX_VGAWONDER, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}}, { "[ISA] ATI VGA Wonder (ATI-18800)", "ati18800w", &ati18800_wonder_device, GFX_VGAWONDER, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}},
#if defined(DEV_BRANCH) && defined(USE_XL24)
{ "[ISA] ATI VGA Wonder XL24 (ATI-28800-6)", "ati28800w", &ati28800_wonderxl24_device, GFX_VGAWONDERXL24, {VIDEO_ISA, 3, 3, 6, 5, 5, 10}}, { "[ISA] ATI VGA Wonder XL24 (ATI-28800-6)", "ati28800w", &ati28800_wonderxl24_device, GFX_VGAWONDERXL24, {VIDEO_ISA, 3, 3, 6, 5, 5, 10}},
#endif
{ "[ISA] CGA", "cga", &cga_device, GFX_CGA, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}}, { "[ISA] CGA", "cga", &cga_device, GFX_CGA, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}},
{ "[ISA] Chips & Technologies SuperEGA", "superega", &sega_device, GFX_SUPER_EGA, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}}, { "[ISA] Chips & Technologies SuperEGA", "superega", &sega_device, GFX_SUPER_EGA, {VIDEO_ISA, 8, 16, 32, 8, 16, 32}},
{ "[ISA] Compaq ATI VGA Wonder XL (ATI-28800-5)","compaq_ati28800", &compaq_ati28800_device, GFX_VGAWONDERXL, {VIDEO_ISA, 3, 3, 6, 5, 5, 10}}, { "[ISA] Compaq ATI VGA Wonder XL (ATI-28800-5)","compaq_ati28800", &compaq_ati28800_device, GFX_VGAWONDERXL, {VIDEO_ISA, 3, 3, 6, 5, 5, 10}},

View File

@@ -8,7 +8,7 @@
* *
* Definitions for the video controller module. * Definitions for the video controller module.
* *
* Version: @(#)video.h 1.0.17 2018/02/18 * Version: @(#)video.h 1.0.18 2018/02/18
* *
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/> * Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com> * Miran Grca, <mgrca8@gmail.com>
@@ -63,7 +63,9 @@ enum {
GFX_VGACHARGER, /* ATI VGA Charger (28800-5) */ GFX_VGACHARGER, /* ATI VGA Charger (28800-5) */
GFX_VGAWONDER, /* Compaq ATI VGA Wonder (18800) */ GFX_VGAWONDER, /* Compaq ATI VGA Wonder (18800) */
GFX_VGAWONDERXL, /* Compaq ATI VGA Wonder XL (28800-5) */ GFX_VGAWONDERXL, /* Compaq ATI VGA Wonder XL (28800-5) */
#if defined(DEV_BRANCH) && defined(USE_XL24)
GFX_VGAWONDERXL24, /* Compaq ATI VGA Wonder XL24 (28800-6) */ GFX_VGAWONDERXL24, /* Compaq ATI VGA Wonder XL24 (28800-6) */
#endif
GFX_MACH64GX_ISA, /* ATI Graphics Pro Turbo (Mach64) ISA */ GFX_MACH64GX_ISA, /* ATI Graphics Pro Turbo (Mach64) ISA */
GFX_MACH64GX_VLB, /* ATI Graphics Pro Turbo (Mach64) VLB */ GFX_MACH64GX_VLB, /* ATI Graphics Pro Turbo (Mach64) VLB */
GFX_MACH64GX_PCI, /* ATI Graphics Pro Turbo (Mach64) PCI */ GFX_MACH64GX_PCI, /* ATI Graphics Pro Turbo (Mach64) PCI */

View File

@@ -8,7 +8,7 @@
# #
# Makefile for Win32 (MinGW32) environment. # Makefile for Win32 (MinGW32) environment.
# #
# Version: @(#)Makefile.mingw 1.0.102 2018/02/18 # Version: @(#)Makefile.mingw 1.0.103 2018/02/18
# #
# Authors: Miran Grca, <mgrca8@gmail.com> # Authors: Miran Grca, <mgrca8@gmail.com>
# Fred N. van Kempen, <decwiz@yahoo.com> # Fred N. van Kempen, <decwiz@yahoo.com>
@@ -58,6 +58,9 @@ endif
ifndef DEV_BRANCH ifndef DEV_BRANCH
DEV_BRANCH := n DEV_BRANCH := n
endif endif
ifndef AMD_K
AMD_K := n
endif
ifndef CRASHDUMP ifndef CRASHDUMP
CRASHDUMP := n CRASHDUMP := n
endif endif
@@ -91,6 +94,9 @@ endif
ifndef STEALTH32 ifndef STEALTH32
STEALTH32 := n STEALTH32 := n
endif endif
ifndef XL24
XL24 := n
endif
ifndef DYNAREC ifndef DYNAREC
DYNAREC := y DYNAREC := y
endif endif
@@ -108,6 +114,7 @@ endif
ifeq ($(DEV_BUILD), y) ifeq ($(DEV_BUILD), y)
DEBUG := y DEBUG := y
DEV_BRANCH := y DEV_BRANCH := y
AMD_K := y
CRASHDUMP := y CRASHDUMP := y
GREENB := y GREENB := y
I686 := y I686 := y
@@ -117,6 +124,7 @@ PAS16 := y
PORTABLE3 := y PORTABLE3 := y
STEALTH32 := y STEALTH32 := y
VNC := y VNC := y
XL24 := y
endif endif
# WxWidgets basic info. Extract using the config program. # WxWidgets basic info. Extract using the config program.
@@ -301,6 +309,10 @@ ifeq ($(DEV_BRANCH), y)
OPTS += -DDEV_BRANCH OPTS += -DDEV_BRANCH
DEVBROBJ := DEVBROBJ :=
ifeq ($(AMD_K), y)
OPTS += -DUSE_AMD_K
endif
ifeq ($(CRASHDUMPOBJ), y) ifeq ($(CRASHDUMPOBJ), y)
OPTS += -DUSE_CRASHDUMP OPTS += -DUSE_CRASHDUMP
DEVBROBJ += win_crashdump.o DEVBROBJ += win_crashdump.o
@@ -340,6 +352,10 @@ OPTS += -DUSE_STEALTH32
DEVBROBJ += vid_icd2061.o DEVBROBJ += vid_icd2061.o
endif endif
ifeq ($(XL24), y)
OPTS += -DUSE_XL24
endif
endif endif
@@ -370,8 +386,7 @@ MAINOBJ := pc.o config.o random.o timer.o io.o dma.o nmi.o pic.o \
INTELOBJ := intel.o \ INTELOBJ := intel.o \
intel_flash.o \ intel_flash.o \
intel_sio.o \ intel_sio.o intel_piix.o
intel_piix.o intel_piix4.o
CPUOBJ := cpu.o cpu_table.o \ CPUOBJ := cpu.o cpu_table.o \
808x.o 386.o 386_dynarec.o \ 808x.o 386.o 386_dynarec.o \