add stub constants and code for eventual support of 80186 level CPU

emulation.
This commit is contained in:
Jonathan Campbell
2015-04-05 09:13:08 -07:00
parent 74bb1d661d
commit 202ff39f73
3 changed files with 21 additions and 5 deletions

View File

@@ -42,6 +42,7 @@
#define CPU_ARCHTYPE_MIXED 0xff
#define CPU_ARCHTYPE_8086 0x05
#define CPU_ARCHTYPE_80186 0x15
#define CPU_ARCHTYPE_286 0x25
#define CPU_ARCHTYPE_386 0x35
#define CPU_ARCHTYPE_486OLD 0x40

View File

@@ -2811,6 +2811,21 @@ public:
} else {
E_Exit("prefetch queue emulation requires the normal core setting.");
}
} else if (cputype == "80186") {
CPU_ArchitectureType = CPU_ARCHTYPE_80186;
cpudecoder=&CPU_Core286_Normal_Run;
} else if (cputype == "80186_prefetch") { /* 6-byte prefetch queue ref [http://www.phatcode.net/res/224/files/html/ch11/11-02.html] */
CPU_ArchitectureType = CPU_ARCHTYPE_80186;
if (core == "normal") {
cpudecoder=&CPU_Core_Prefetch_Run; /* TODO: Alternate 16-bit only decoder for 286 that does NOT include 386+ instructions */
CPU_PrefetchQueueSize = 6;
} else if (core == "auto") {
cpudecoder=&CPU_Core_Prefetch_Run; /* TODO: Alternate 16-bit only decoder for 286 that does NOT include 386+ instructions */
CPU_PrefetchQueueSize = 6;
CPU_AutoDetermineMode&=(~CPU_AUTODETERMINE_CORE);
} else {
E_Exit("prefetch queue emulation requires the normal core setting.");
}
} else if (cputype == "286") {
CPU_ArchitectureType = CPU_ARCHTYPE_286;
cpudecoder=&CPU_Core286_Normal_Run;
@@ -2861,12 +2876,12 @@ public:
}
/* WARNING */
if (CPU_ArchitectureType == CPU_ARCHTYPE_286) {
LOG_MSG("CPU warning: 286 cpu type is experimental at this time");
}
else if (CPU_ArchitectureType == CPU_ARCHTYPE_8086) {
if (CPU_ArchitectureType == CPU_ARCHTYPE_8086) {
LOG_MSG("CPU warning: 8086 cpu type is experimental at this time");
}
else if (CPU_ArchitectureType == CPU_ARCHTYPE_80186) {
LOG_MSG("CPU warning: 80186 cpu type is experimental at this time");
}
if (CPU_ArchitectureType>=CPU_ARCHTYPE_486NEW) CPU_extflags_toggle=(FLAG_ID|FLAG_AC);
else if (CPU_ArchitectureType>=CPU_ARCHTYPE_486OLD) CPU_extflags_toggle=(FLAG_AC);

View File

@@ -730,7 +730,7 @@ void DOSBOX_Init(void) {
const char* vsyncmode[] = { "off", "on" ,"force", "host", 0 };
const char* blocksizes[] = {"1024", "2048", "4096", "8192", "512", "256", 0};
const char* auxdevices[] = {"none","2button","3button","intellimouse","intellimouse45",0};
const char* cputype_values[] = {"auto", "8086", "8086_prefetch", "286", "286_prefetch", "386", "386_prefetch", "486", "pentium", "pentium_mmx", 0};
const char* cputype_values[] = {"auto", "8086", "8086_prefetch", "80186", "80186_prefetch", "286", "286_prefetch", "386", "386_prefetch", "486", "pentium", "pentium_mmx", 0};
const char* rates[] = { "44100", "48000", "32000","22050", "16000", "11025", "8000", "49716", 0 };
const char* oplrates[] = { "44100", "49716", "48000", "32000","22050", "16000", "11025", "8000", 0 };
const char* devices[] = { "default", "win32", "alsa", "oss", "coreaudio", "coremidi", "mt32", "synth", "timidity", "none", 0}; // FIXME: add some way to offer the actually available choices.