Merge branch 'master' of https://github.com/86Box/86Box
This commit is contained in:
@@ -158,7 +158,6 @@ cmake_dependent_option(OLIVETTI "Olivetti M290"
|
||||
cmake_dependent_option(OPEN_AT "OpenAT" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(PAS16 "Pro Audio Spectrum 16" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(SIO_DETECT "Super I/O Detection Helper" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(TANDY_ISA "Tandy PSG ISA clone boards" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(VGAWONDER "ATI VGA Wonder (ATI-18800)" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(XL24 "ATI VGA Wonder XL24 (ATI-28800-6)" ON "DEV_BRANCH" OFF)
|
||||
|
||||
|
||||
11
src/config.c
11
src/config.c
@@ -2050,10 +2050,13 @@ save_general(void)
|
||||
static void
|
||||
save_monitor(int monitor_index)
|
||||
{
|
||||
char cat[sizeof("Monitor #") + 12] = { [0] = 0 };
|
||||
char temp[512];
|
||||
ini_section_t cat;
|
||||
char name[sizeof("Monitor #") + 12] = { [0] = 0 };
|
||||
char temp[512];
|
||||
|
||||
snprintf(name, sizeof(name), "Monitor #%i", monitor_index + 1);
|
||||
cat = ini_find_or_create_section(config, name);
|
||||
|
||||
snprintf(cat, sizeof(cat), "Monitor #%i", monitor_index + 1);
|
||||
if (window_remember) {
|
||||
sprintf(temp, "%i, %i, %i, %i",
|
||||
monitor_settings[monitor_index].mon_window_x, monitor_settings[monitor_index].mon_window_y,
|
||||
@@ -2069,6 +2072,8 @@ save_monitor(int monitor_index)
|
||||
ini_section_delete_var(cat, "window_coordinates");
|
||||
ini_section_delete_var(cat, "window_maximized");
|
||||
}
|
||||
|
||||
ini_delete_section_if_empty(config, cat);
|
||||
}
|
||||
|
||||
/* Save "Machine" section. */
|
||||
|
||||
294
src/cpu/386.c
294
src/cpu/386.c
@@ -6,7 +6,7 @@
|
||||
#include <wchar.h>
|
||||
#include <math.h>
|
||||
#ifndef INFINITY
|
||||
# define INFINITY (__builtin_inff())
|
||||
# define INFINITY (__builtin_inff())
|
||||
#endif
|
||||
|
||||
#define HAVE_STDARG_H
|
||||
@@ -25,14 +25,12 @@
|
||||
#include <86box/gdbstub.h>
|
||||
#include "386_common.h"
|
||||
#ifdef USE_NEW_DYNAREC
|
||||
#include "codegen.h"
|
||||
# include "codegen.h"
|
||||
#endif
|
||||
|
||||
|
||||
#undef CPU_BLOCK_END
|
||||
#define CPU_BLOCK_END()
|
||||
|
||||
|
||||
extern int codegen_flags_changed;
|
||||
|
||||
int tempc, oldcpl, optype, inttype, oddeven = 0;
|
||||
@@ -41,225 +39,231 @@ int timetolive;
|
||||
uint16_t oldcs;
|
||||
|
||||
uint32_t oldds, oldss, olddslimit, oldsslimit,
|
||||
olddslimitw, oldsslimitw;
|
||||
olddslimitw, oldsslimitw;
|
||||
uint32_t oxpc;
|
||||
uint32_t rmdat32;
|
||||
uint32_t backupregs[16];
|
||||
|
||||
x86seg _oldds;
|
||||
|
||||
|
||||
#ifdef ENABLE_386_LOG
|
||||
int x386_do_log = ENABLE_386_LOG;
|
||||
|
||||
|
||||
void
|
||||
x386_log(const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
if (x386_do_log) {
|
||||
va_start(ap, fmt);
|
||||
pclog_ex(fmt, ap);
|
||||
va_end(ap);
|
||||
va_start(ap, fmt);
|
||||
pclog_ex(fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#define x386_log(fmt, ...)
|
||||
# define x386_log(fmt, ...)
|
||||
#endif
|
||||
|
||||
|
||||
#undef CPU_BLOCK_END
|
||||
#define CPU_BLOCK_END()
|
||||
|
||||
#include "x86_flags.h"
|
||||
|
||||
#define getbytef() ((uint8_t)(fetchdat)); cpu_state.pc++
|
||||
#define getwordf() ((uint16_t)(fetchdat)); cpu_state.pc+=2
|
||||
#define getbyte2f() ((uint8_t)(fetchdat>>8)); cpu_state.pc++
|
||||
#define getword2f() ((uint16_t)(fetchdat>>8)); cpu_state.pc+=2
|
||||
/*
|
||||
#define getbytef() \
|
||||
((uint8_t) (fetchdat)); \
|
||||
cpu_state.pc++
|
||||
#define getwordf() \
|
||||
((uint16_t) (fetchdat)); \
|
||||
cpu_state.pc += 2
|
||||
#define getbyte2f() \
|
||||
((uint8_t) (fetchdat >> 8)); \
|
||||
cpu_state.pc++
|
||||
#define getword2f() \
|
||||
((uint16_t) (fetchdat >> 8)); \
|
||||
cpu_state.pc += 2
|
||||
*/
|
||||
|
||||
|
||||
#define OP_TABLE(name) ops_ ## name
|
||||
#define OP_TABLE(name) ops_##name
|
||||
|
||||
#if 0
|
||||
#define CLOCK_CYCLES(c) \
|
||||
{\
|
||||
if (fpu_cycles > 0) {\
|
||||
fpu_cycles -= (c);\
|
||||
if (fpu_cycles < 0) {\
|
||||
cycles += fpu_cycles;\
|
||||
}\
|
||||
} else {\
|
||||
cycles -= (c);\
|
||||
}\
|
||||
}
|
||||
# define CLOCK_CYCLES(c) \
|
||||
{ \
|
||||
if (fpu_cycles > 0) { \
|
||||
fpu_cycles -= (c); \
|
||||
if (fpu_cycles < 0) { \
|
||||
cycles += fpu_cycles; \
|
||||
} \
|
||||
} else { \
|
||||
cycles -= (c); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CLOCK_CYCLES_FPU(c) cycles -= (c)
|
||||
#define CONCURRENCY_CYCLES(c) fpu_cycles = (c)
|
||||
# define CLOCK_CYCLES_FPU(c) cycles -= (c)
|
||||
# define CONCURRENCY_CYCLES(c) fpu_cycles = (c)
|
||||
#else
|
||||
#define CLOCK_CYCLES(c) cycles -= (c)
|
||||
#define CLOCK_CYCLES_FPU(c) cycles -= (c)
|
||||
#define CONCURRENCY_CYCLES(c)
|
||||
# define CLOCK_CYCLES(c) cycles -= (c)
|
||||
# define CLOCK_CYCLES_FPU(c) cycles -= (c)
|
||||
# define CONCURRENCY_CYCLES(c)
|
||||
#endif
|
||||
|
||||
#define CLOCK_CYCLES_ALWAYS(c) cycles -= (c)
|
||||
|
||||
#include "x86_ops.h"
|
||||
|
||||
|
||||
void
|
||||
exec386(int cycs)
|
||||
{
|
||||
int vector, tempi, cycdiff, oldcyc;
|
||||
int cycle_period, ins_cycles;
|
||||
int vector, tempi, cycdiff, oldcyc;
|
||||
int cycle_period, ins_cycles;
|
||||
uint32_t addr;
|
||||
|
||||
cycles += cycs;
|
||||
|
||||
while (cycles > 0) {
|
||||
cycle_period = (timer_target - (uint32_t)tsc) + 1;
|
||||
cycle_period = (timer_target - (uint32_t) tsc) + 1;
|
||||
|
||||
x86_was_reset = 0;
|
||||
cycdiff = 0;
|
||||
oldcyc = cycles;
|
||||
while (cycdiff < cycle_period) {
|
||||
ins_cycles = cycles;
|
||||
x86_was_reset = 0;
|
||||
cycdiff = 0;
|
||||
oldcyc = cycles;
|
||||
while (cycdiff < cycle_period) {
|
||||
ins_cycles = cycles;
|
||||
|
||||
#ifndef USE_NEW_DYNAREC
|
||||
oldcs=CS;
|
||||
oldcpl=CPL;
|
||||
oldcs = CS;
|
||||
oldcpl = CPL;
|
||||
#endif
|
||||
cpu_state.oldpc = cpu_state.pc;
|
||||
cpu_state.op32 = use32;
|
||||
cpu_state.oldpc = cpu_state.pc;
|
||||
cpu_state.op32 = use32;
|
||||
|
||||
#ifndef USE_NEW_DYNAREC
|
||||
x86_was_reset = 0;
|
||||
x86_was_reset = 0;
|
||||
#endif
|
||||
|
||||
cpu_state.ea_seg = &cpu_state.seg_ds;
|
||||
cpu_state.ssegs = 0;
|
||||
cpu_state.ea_seg = &cpu_state.seg_ds;
|
||||
cpu_state.ssegs = 0;
|
||||
|
||||
fetchdat = fastreadl(cs + cpu_state.pc);
|
||||
fetchdat = fastreadl(cs + cpu_state.pc);
|
||||
|
||||
if (!cpu_state.abrt) {
|
||||
if (!cpu_state.abrt) {
|
||||
#ifdef ENABLE_386_LOG
|
||||
if (in_smm)
|
||||
x386_log("[%04X:%08X] %08X\n", CS, cpu_state.pc, fetchdat);
|
||||
if (in_smm)
|
||||
x386_log("[%04X:%08X] %08X\n", CS, cpu_state.pc, fetchdat);
|
||||
#endif
|
||||
opcode = fetchdat & 0xFF;
|
||||
fetchdat >>= 8;
|
||||
trap = cpu_state.flags & T_FLAG;
|
||||
opcode = fetchdat & 0xFF;
|
||||
fetchdat >>= 8;
|
||||
trap = cpu_state.flags & T_FLAG;
|
||||
|
||||
cpu_state.pc++;
|
||||
x86_opcodes[(opcode | cpu_state.op32) & 0x3ff](fetchdat);
|
||||
if (x86_was_reset)
|
||||
break;
|
||||
}
|
||||
cpu_state.pc++;
|
||||
x86_opcodes[(opcode | cpu_state.op32) & 0x3ff](fetchdat);
|
||||
if (x86_was_reset)
|
||||
break;
|
||||
}
|
||||
#ifdef ENABLE_386_LOG
|
||||
else if (in_smm)
|
||||
x386_log("[%04X:%08X] ABRT\n", CS, cpu_state.pc);
|
||||
else if (in_smm)
|
||||
x386_log("[%04X:%08X] ABRT\n", CS, cpu_state.pc);
|
||||
#endif
|
||||
|
||||
#ifndef USE_NEW_DYNAREC
|
||||
if (!use32) cpu_state.pc &= 0xffff;
|
||||
if (!use32)
|
||||
cpu_state.pc &= 0xffff;
|
||||
#endif
|
||||
|
||||
if (cpu_end_block_after_ins)
|
||||
cpu_end_block_after_ins--;
|
||||
if (cpu_end_block_after_ins)
|
||||
cpu_end_block_after_ins--;
|
||||
|
||||
if (cpu_state.abrt) {
|
||||
flags_rebuild();
|
||||
tempi = cpu_state.abrt & ABRT_MASK;
|
||||
cpu_state.abrt = 0;
|
||||
x86_doabrt(tempi);
|
||||
if (cpu_state.abrt) {
|
||||
cpu_state.abrt = 0;
|
||||
if (cpu_state.abrt) {
|
||||
flags_rebuild();
|
||||
tempi = cpu_state.abrt & ABRT_MASK;
|
||||
cpu_state.abrt = 0;
|
||||
x86_doabrt(tempi);
|
||||
if (cpu_state.abrt) {
|
||||
cpu_state.abrt = 0;
|
||||
#ifndef USE_NEW_DYNAREC
|
||||
CS = oldcs;
|
||||
CS = oldcs;
|
||||
#endif
|
||||
cpu_state.pc = cpu_state.oldpc;
|
||||
x386_log("Double fault\n");
|
||||
pmodeint(8, 0);
|
||||
if (cpu_state.abrt) {
|
||||
cpu_state.abrt = 0;
|
||||
softresetx86();
|
||||
cpu_set_edx();
|
||||
cpu_state.pc = cpu_state.oldpc;
|
||||
x386_log("Double fault\n");
|
||||
pmodeint(8, 0);
|
||||
if (cpu_state.abrt) {
|
||||
cpu_state.abrt = 0;
|
||||
softresetx86();
|
||||
cpu_set_edx();
|
||||
#ifdef ENABLE_386_LOG
|
||||
x386_log("Triple fault - reset\n");
|
||||
x386_log("Triple fault - reset\n");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (smi_line)
|
||||
enter_smm_check(0);
|
||||
else if (trap) {
|
||||
flags_rebuild();
|
||||
dr[6] |= 0x4000;
|
||||
if (msw&1)
|
||||
pmodeint(1,0);
|
||||
else {
|
||||
writememw(ss, (SP - 2) & 0xFFFF, cpu_state.flags);
|
||||
writememw(ss, (SP - 4) & 0xFFFF, CS);
|
||||
writememw(ss, (SP - 6) & 0xFFFF, cpu_state.pc);
|
||||
SP -= 6;
|
||||
addr = (1 << 2) + idt.base;
|
||||
cpu_state.flags &= ~I_FLAG;
|
||||
cpu_state.flags &= ~T_FLAG;
|
||||
cpu_state.pc = readmemw(0, addr);
|
||||
loadcs(readmemw(0, addr + 2));
|
||||
}
|
||||
} else if (nmi && nmi_enable && nmi_mask) {
|
||||
cpu_state.oldpc = cpu_state.pc;
|
||||
x86_int(2);
|
||||
nmi_enable = 0;
|
||||
if (smi_line)
|
||||
enter_smm_check(0);
|
||||
else if (trap) {
|
||||
flags_rebuild();
|
||||
dr[6] |= 0x4000;
|
||||
if (msw & 1)
|
||||
pmodeint(1, 0);
|
||||
else {
|
||||
writememw(ss, (SP - 2) & 0xFFFF, cpu_state.flags);
|
||||
writememw(ss, (SP - 4) & 0xFFFF, CS);
|
||||
writememw(ss, (SP - 6) & 0xFFFF, cpu_state.pc);
|
||||
SP -= 6;
|
||||
addr = (1 << 2) + idt.base;
|
||||
cpu_state.flags &= ~I_FLAG;
|
||||
cpu_state.flags &= ~T_FLAG;
|
||||
cpu_state.pc = readmemw(0, addr);
|
||||
loadcs(readmemw(0, addr + 2));
|
||||
}
|
||||
} else if (nmi && nmi_enable && nmi_mask) {
|
||||
cpu_state.oldpc = cpu_state.pc;
|
||||
x86_int(2);
|
||||
nmi_enable = 0;
|
||||
#ifdef OLD_NMI_BEHAVIOR
|
||||
if (nmi_auto_clear) {
|
||||
nmi_auto_clear = 0;
|
||||
nmi = 0;
|
||||
}
|
||||
if (nmi_auto_clear) {
|
||||
nmi_auto_clear = 0;
|
||||
nmi = 0;
|
||||
}
|
||||
#else
|
||||
nmi = 0;
|
||||
nmi = 0;
|
||||
#endif
|
||||
} else if ((cpu_state.flags & I_FLAG) && pic.int_pending && !cpu_end_block_after_ins) {
|
||||
vector = picinterrupt();
|
||||
if (vector != -1) {
|
||||
flags_rebuild();
|
||||
if (msw & 1)
|
||||
pmodeint(vector, 0);
|
||||
else {
|
||||
writememw(ss, (SP - 2) & 0xFFFF, cpu_state.flags);
|
||||
writememw(ss, (SP - 4) & 0xFFFF, CS);
|
||||
writememw(ss, (SP - 6) & 0xFFFF, cpu_state.pc);
|
||||
SP -= 6;
|
||||
addr = (vector << 2) + idt.base;
|
||||
cpu_state.flags &= ~I_FLAG;
|
||||
cpu_state.flags &= ~T_FLAG;
|
||||
cpu_state.pc = readmemw(0, addr);
|
||||
loadcs(readmemw(0, addr + 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ((cpu_state.flags & I_FLAG) && pic.int_pending && !cpu_end_block_after_ins) {
|
||||
vector = picinterrupt();
|
||||
if (vector != -1) {
|
||||
flags_rebuild();
|
||||
if (msw & 1)
|
||||
pmodeint(vector, 0);
|
||||
else {
|
||||
writememw(ss, (SP - 2) & 0xFFFF, cpu_state.flags);
|
||||
writememw(ss, (SP - 4) & 0xFFFF, CS);
|
||||
writememw(ss, (SP - 6) & 0xFFFF, cpu_state.pc);
|
||||
SP -= 6;
|
||||
addr = (vector << 2) + idt.base;
|
||||
cpu_state.flags &= ~I_FLAG;
|
||||
cpu_state.flags &= ~T_FLAG;
|
||||
cpu_state.pc = readmemw(0, addr);
|
||||
loadcs(readmemw(0, addr + 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ins_cycles -= cycles;
|
||||
tsc += ins_cycles;
|
||||
ins_cycles -= cycles;
|
||||
tsc += ins_cycles;
|
||||
|
||||
cycdiff = oldcyc - cycles;
|
||||
cycdiff = oldcyc - cycles;
|
||||
|
||||
if (timetolive) {
|
||||
timetolive--;
|
||||
if (!timetolive)
|
||||
fatal("Life expired\n");
|
||||
}
|
||||
if (timetolive) {
|
||||
timetolive--;
|
||||
if (!timetolive)
|
||||
fatal("Life expired\n");
|
||||
}
|
||||
|
||||
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t) tsc))
|
||||
timer_process_inline();
|
||||
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t) tsc))
|
||||
timer_process_inline();
|
||||
|
||||
#ifdef USE_GDBSTUB
|
||||
if (gdbstub_instruction())
|
||||
return;
|
||||
if (gdbstub_instruction())
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
3553
src/cpu/808x.c
3553
src/cpu/808x.c
File diff suppressed because it is too large
Load Diff
5008
src/cpu/cpu.c
5008
src/cpu/cpu.c
File diff suppressed because it is too large
Load Diff
868
src/cpu/cpu.h
868
src/cpu/cpu.h
File diff suppressed because it is too large
Load Diff
@@ -10,461 +10,455 @@
|
||||
x87_timings_t x87_timings;
|
||||
x87_timings_t x87_concurrency;
|
||||
|
||||
const x87_timings_t x87_timings_8087 =
|
||||
{
|
||||
.f2xm1 = (310 + 630) / 2,
|
||||
.fabs = (10 + 17) / 2,
|
||||
.fadd = (70 + 100) / 2,
|
||||
.fadd_32 = (90 + 120) / 2,
|
||||
.fadd_64 = (95 + 125) / 2,
|
||||
.fbld = (290 + 310) / 2,
|
||||
.fbstp = (520 + 540) / 2,
|
||||
.fchs = (10 + 17) / 2,
|
||||
.fclex = (2 + 8) / 2,
|
||||
.fcom = (40 + 50) / 2,
|
||||
.fcom_32 = (60 + 70) / 2,
|
||||
.fcom_64 = (65 + 75) / 2,
|
||||
.fcos = 0, /*387+*/
|
||||
.fincdecstp = (6 + 12) / 2,
|
||||
.fdisi_eni = (6 + 12) / 2,
|
||||
.fdiv = (193 + 203) / 2,
|
||||
.fdiv_32 = (215 + 225) / 2,
|
||||
.fdiv_64 = (220 + 230) / 2,
|
||||
.ffree = (9 + 16) / 2,
|
||||
.fadd_i16 = (102 + 137) / 2,
|
||||
.fadd_i32 = (108 + 143) / 2,
|
||||
.fcom_i16 = (72 + 86) / 2,
|
||||
.fcom_i32 = (78 + 91) / 2,
|
||||
.fdiv_i16 = (224 + 238) / 2,
|
||||
.fdiv_i32 = (230 + 243) / 2,
|
||||
.fild_16 = (46 + 54) / 2,
|
||||
.fild_32 = (50 + 60) / 2,
|
||||
.fild_64 = (60 + 68) / 2,
|
||||
.fmul_i16 = (124 + 138) / 2,
|
||||
.fmul_i32 = (130 + 144) / 2,
|
||||
.finit = (2 + 8) / 2,
|
||||
.fist_16 = (80 + 90) / 2,
|
||||
.fist_32 = (82 + 92) / 2,
|
||||
.fist_64 = (94 + 105) / 2,
|
||||
.fld = (17 + 22) / 2,
|
||||
.fld_32 = (38 + 56) / 2,
|
||||
.fld_64 = (40 + 60) / 2,
|
||||
.fld_80 = (53 + 65) / 2,
|
||||
.fld_z1 = (11 + 21) / 2,
|
||||
.fld_const = (15 + 24) / 2,
|
||||
.fldcw = (7 + 14) / 2,
|
||||
.fldenv = (35 + 45) / 2,
|
||||
.fmul = (90 + 145) / 2,
|
||||
.fmul_32 = (110 + 125) / 2,
|
||||
.fmul_64 = (154 + 168) / 2,
|
||||
.fnop = (10 + 16) / 2,
|
||||
.fpatan = (250 + 800) / 2,
|
||||
.fprem = (15 + 190) / 2,
|
||||
.fprem1 = 0, /*387+*/
|
||||
.fptan = (30 + 540) / 2,
|
||||
.frndint = (16 + 50) / 2,
|
||||
.frstor = (197 + 207) / 2,
|
||||
.fsave = (197 + 207) / 2,
|
||||
.fscale = (32 + 38) / 2,
|
||||
.fsetpm = 0, /*287+*/
|
||||
.fsin_cos = 0, /*387+*/
|
||||
.fsincos = 0, /*387+*/
|
||||
.fsqrt = (180 + 186) / 2,
|
||||
.fst = (15 + 22) / 2,
|
||||
.fst_32 = (84 + 90) / 2,
|
||||
.fst_64 = (96 + 104) / 2,
|
||||
.fst_80 = (52 + 58) / 2,
|
||||
.fstcw_sw = (12 + 18) / 2,
|
||||
.fstenv = (40 + 50) / 2,
|
||||
.ftst = (38 + 48) / 2,
|
||||
.fucom = 0, /*387+*/
|
||||
.fwait = 4,
|
||||
.fxam = (12 + 23) / 2,
|
||||
.fxch = (10 + 15) / 2,
|
||||
.fxtract = (27 + 55) / 2,
|
||||
.fyl2x = (900 + 1100) / 2,
|
||||
.fyl2xp1 = (700 + 1000) / 2
|
||||
const x87_timings_t x87_timings_8087 = {
|
||||
.f2xm1 = (310 + 630) / 2,
|
||||
.fabs = (10 + 17) / 2,
|
||||
.fadd = (70 + 100) / 2,
|
||||
.fadd_32 = (90 + 120) / 2,
|
||||
.fadd_64 = (95 + 125) / 2,
|
||||
.fbld = (290 + 310) / 2,
|
||||
.fbstp = (520 + 540) / 2,
|
||||
.fchs = (10 + 17) / 2,
|
||||
.fclex = (2 + 8) / 2,
|
||||
.fcom = (40 + 50) / 2,
|
||||
.fcom_32 = (60 + 70) / 2,
|
||||
.fcom_64 = (65 + 75) / 2,
|
||||
.fcos = 0, /*387+*/
|
||||
.fincdecstp = (6 + 12) / 2,
|
||||
.fdisi_eni = (6 + 12) / 2,
|
||||
.fdiv = (193 + 203) / 2,
|
||||
.fdiv_32 = (215 + 225) / 2,
|
||||
.fdiv_64 = (220 + 230) / 2,
|
||||
.ffree = (9 + 16) / 2,
|
||||
.fadd_i16 = (102 + 137) / 2,
|
||||
.fadd_i32 = (108 + 143) / 2,
|
||||
.fcom_i16 = (72 + 86) / 2,
|
||||
.fcom_i32 = (78 + 91) / 2,
|
||||
.fdiv_i16 = (224 + 238) / 2,
|
||||
.fdiv_i32 = (230 + 243) / 2,
|
||||
.fild_16 = (46 + 54) / 2,
|
||||
.fild_32 = (50 + 60) / 2,
|
||||
.fild_64 = (60 + 68) / 2,
|
||||
.fmul_i16 = (124 + 138) / 2,
|
||||
.fmul_i32 = (130 + 144) / 2,
|
||||
.finit = (2 + 8) / 2,
|
||||
.fist_16 = (80 + 90) / 2,
|
||||
.fist_32 = (82 + 92) / 2,
|
||||
.fist_64 = (94 + 105) / 2,
|
||||
.fld = (17 + 22) / 2,
|
||||
.fld_32 = (38 + 56) / 2,
|
||||
.fld_64 = (40 + 60) / 2,
|
||||
.fld_80 = (53 + 65) / 2,
|
||||
.fld_z1 = (11 + 21) / 2,
|
||||
.fld_const = (15 + 24) / 2,
|
||||
.fldcw = (7 + 14) / 2,
|
||||
.fldenv = (35 + 45) / 2,
|
||||
.fmul = (90 + 145) / 2,
|
||||
.fmul_32 = (110 + 125) / 2,
|
||||
.fmul_64 = (154 + 168) / 2,
|
||||
.fnop = (10 + 16) / 2,
|
||||
.fpatan = (250 + 800) / 2,
|
||||
.fprem = (15 + 190) / 2,
|
||||
.fprem1 = 0, /*387+*/
|
||||
.fptan = (30 + 540) / 2,
|
||||
.frndint = (16 + 50) / 2,
|
||||
.frstor = (197 + 207) / 2,
|
||||
.fsave = (197 + 207) / 2,
|
||||
.fscale = (32 + 38) / 2,
|
||||
.fsetpm = 0, /*287+*/
|
||||
.fsin_cos = 0, /*387+*/
|
||||
.fsincos = 0, /*387+*/
|
||||
.fsqrt = (180 + 186) / 2,
|
||||
.fst = (15 + 22) / 2,
|
||||
.fst_32 = (84 + 90) / 2,
|
||||
.fst_64 = (96 + 104) / 2,
|
||||
.fst_80 = (52 + 58) / 2,
|
||||
.fstcw_sw = (12 + 18) / 2,
|
||||
.fstenv = (40 + 50) / 2,
|
||||
.ftst = (38 + 48) / 2,
|
||||
.fucom = 0, /*387+*/
|
||||
.fwait = 4,
|
||||
.fxam = (12 + 23) / 2,
|
||||
.fxch = (10 + 15) / 2,
|
||||
.fxtract = (27 + 55) / 2,
|
||||
.fyl2x = (900 + 1100) / 2,
|
||||
.fyl2xp1 = (700 + 1000) / 2
|
||||
};
|
||||
|
||||
/*Mostly the same as 8087*/
|
||||
const x87_timings_t x87_timings_287 =
|
||||
{
|
||||
.f2xm1 = (310 + 630) / 2,
|
||||
.fabs = (10 + 17) / 2,
|
||||
.fadd = (70 + 100) / 2,
|
||||
.fadd_32 = (90 + 120) / 2,
|
||||
.fadd_64 = (95 + 125) / 2,
|
||||
.fbld = (290 + 310) / 2,
|
||||
.fbstp = (520 + 540) / 2,
|
||||
.fchs = (10 + 17) / 2,
|
||||
.fclex = (2 + 8) / 2,
|
||||
.fcom = (40 + 50) / 2,
|
||||
.fcom_32 = (60 + 70) / 2,
|
||||
.fcom_64 = (65 + 75) / 2,
|
||||
.fcos = 0, /*387+*/
|
||||
.fincdecstp = (6 + 12) / 2,
|
||||
.fdisi_eni = 2,
|
||||
.fdiv = (193 + 203) / 2,
|
||||
.fdiv_32 = (215 + 225) / 2,
|
||||
.fdiv_64 = (220 + 230) / 2,
|
||||
.ffree = (9 + 16) / 2,
|
||||
.fadd_i16 = (102 + 137) / 2,
|
||||
.fadd_i32 = (108 + 143) / 2,
|
||||
.fcom_i16 = (72 + 86) / 2,
|
||||
.fcom_i32 = (78 + 91) / 2,
|
||||
.fdiv_i16 = (224 + 238) / 2,
|
||||
.fdiv_i32 = (230 + 243) / 2,
|
||||
.fild_16 = (46 + 54) / 2,
|
||||
.fild_32 = (50 + 60) / 2,
|
||||
.fild_64 = (60 + 68) / 2,
|
||||
.fmul_i16 = (124 + 138) / 2,
|
||||
.fmul_i32 = (130 + 144) / 2,
|
||||
.finit = (2 + 8) / 2,
|
||||
.fist_16 = (80 + 90) / 2,
|
||||
.fist_32 = (82 + 92) / 2,
|
||||
.fist_64 = (94 + 105) / 2,
|
||||
.fld = (17 + 22) / 2,
|
||||
.fld_32 = (38 + 56) / 2,
|
||||
.fld_64 = (40 + 60) / 2,
|
||||
.fld_80 = (53 + 65) / 2,
|
||||
.fld_z1 = (11 + 21) / 2,
|
||||
.fld_const = (15 + 24) / 2,
|
||||
.fldcw = (7 + 14) / 2,
|
||||
.fldenv = (35 + 45) / 2,
|
||||
.fmul = (90 + 145) / 2,
|
||||
.fmul_32 = (110 + 125) / 2,
|
||||
.fmul_64 = (154 + 168) / 2,
|
||||
.fnop = (10 + 16) / 2,
|
||||
.fpatan = (250 + 800) / 2,
|
||||
.fprem = (15 + 190) / 2,
|
||||
.fprem1 = 0, /*387+*/
|
||||
.fptan = (30 + 540) / 2,
|
||||
.frndint = (16 + 50) / 2,
|
||||
.frstor = (197 + 207) / 2,
|
||||
.fsave = (197 + 207) / 2,
|
||||
.fscale = (32 + 38) / 2,
|
||||
.fsetpm = (2 + 8) / 2, /*287+*/
|
||||
.fsin_cos = 0, /*387+*/
|
||||
.fsincos = 0, /*387+*/
|
||||
.fsqrt = (180 + 186) / 2,
|
||||
.fst = (15 + 22) / 2,
|
||||
.fst_32 = (84 + 90) / 2,
|
||||
.fst_64 = (96 + 104) / 2,
|
||||
.fst_80 = (52 + 58) / 2,
|
||||
.fstcw_sw = (12 + 18) / 2,
|
||||
.fstenv = (40 + 50) / 2,
|
||||
.ftst = (38 + 48) / 2,
|
||||
.fucom = 0, /*387+*/
|
||||
.fwait = 3,
|
||||
.fxam = (12 + 23) / 2,
|
||||
.fxch = (10 + 15) / 2,
|
||||
.fxtract = (27 + 55) / 2,
|
||||
.fyl2x = (900 + 1100) / 2,
|
||||
.fyl2xp1 = (700 + 1000) / 2
|
||||
const x87_timings_t x87_timings_287 = {
|
||||
.f2xm1 = (310 + 630) / 2,
|
||||
.fabs = (10 + 17) / 2,
|
||||
.fadd = (70 + 100) / 2,
|
||||
.fadd_32 = (90 + 120) / 2,
|
||||
.fadd_64 = (95 + 125) / 2,
|
||||
.fbld = (290 + 310) / 2,
|
||||
.fbstp = (520 + 540) / 2,
|
||||
.fchs = (10 + 17) / 2,
|
||||
.fclex = (2 + 8) / 2,
|
||||
.fcom = (40 + 50) / 2,
|
||||
.fcom_32 = (60 + 70) / 2,
|
||||
.fcom_64 = (65 + 75) / 2,
|
||||
.fcos = 0, /*387+*/
|
||||
.fincdecstp = (6 + 12) / 2,
|
||||
.fdisi_eni = 2,
|
||||
.fdiv = (193 + 203) / 2,
|
||||
.fdiv_32 = (215 + 225) / 2,
|
||||
.fdiv_64 = (220 + 230) / 2,
|
||||
.ffree = (9 + 16) / 2,
|
||||
.fadd_i16 = (102 + 137) / 2,
|
||||
.fadd_i32 = (108 + 143) / 2,
|
||||
.fcom_i16 = (72 + 86) / 2,
|
||||
.fcom_i32 = (78 + 91) / 2,
|
||||
.fdiv_i16 = (224 + 238) / 2,
|
||||
.fdiv_i32 = (230 + 243) / 2,
|
||||
.fild_16 = (46 + 54) / 2,
|
||||
.fild_32 = (50 + 60) / 2,
|
||||
.fild_64 = (60 + 68) / 2,
|
||||
.fmul_i16 = (124 + 138) / 2,
|
||||
.fmul_i32 = (130 + 144) / 2,
|
||||
.finit = (2 + 8) / 2,
|
||||
.fist_16 = (80 + 90) / 2,
|
||||
.fist_32 = (82 + 92) / 2,
|
||||
.fist_64 = (94 + 105) / 2,
|
||||
.fld = (17 + 22) / 2,
|
||||
.fld_32 = (38 + 56) / 2,
|
||||
.fld_64 = (40 + 60) / 2,
|
||||
.fld_80 = (53 + 65) / 2,
|
||||
.fld_z1 = (11 + 21) / 2,
|
||||
.fld_const = (15 + 24) / 2,
|
||||
.fldcw = (7 + 14) / 2,
|
||||
.fldenv = (35 + 45) / 2,
|
||||
.fmul = (90 + 145) / 2,
|
||||
.fmul_32 = (110 + 125) / 2,
|
||||
.fmul_64 = (154 + 168) / 2,
|
||||
.fnop = (10 + 16) / 2,
|
||||
.fpatan = (250 + 800) / 2,
|
||||
.fprem = (15 + 190) / 2,
|
||||
.fprem1 = 0, /*387+*/
|
||||
.fptan = (30 + 540) / 2,
|
||||
.frndint = (16 + 50) / 2,
|
||||
.frstor = (197 + 207) / 2,
|
||||
.fsave = (197 + 207) / 2,
|
||||
.fscale = (32 + 38) / 2,
|
||||
.fsetpm = (2 + 8) / 2, /*287+*/
|
||||
.fsin_cos = 0, /*387+*/
|
||||
.fsincos = 0, /*387+*/
|
||||
.fsqrt = (180 + 186) / 2,
|
||||
.fst = (15 + 22) / 2,
|
||||
.fst_32 = (84 + 90) / 2,
|
||||
.fst_64 = (96 + 104) / 2,
|
||||
.fst_80 = (52 + 58) / 2,
|
||||
.fstcw_sw = (12 + 18) / 2,
|
||||
.fstenv = (40 + 50) / 2,
|
||||
.ftst = (38 + 48) / 2,
|
||||
.fucom = 0, /*387+*/
|
||||
.fwait = 3,
|
||||
.fxam = (12 + 23) / 2,
|
||||
.fxch = (10 + 15) / 2,
|
||||
.fxtract = (27 + 55) / 2,
|
||||
.fyl2x = (900 + 1100) / 2,
|
||||
.fyl2xp1 = (700 + 1000) / 2
|
||||
};
|
||||
|
||||
const x87_timings_t x87_timings_387 =
|
||||
{
|
||||
.f2xm1 = (211 + 476) / 2,
|
||||
.fabs = 22,
|
||||
.fadd = (23 + 34) / 2,
|
||||
.fadd_32 = (24 + 32) / 2,
|
||||
.fadd_64 = (29 + 37) / 2,
|
||||
.fbld = (266 + 275) / 2,
|
||||
.fbstp = (512 + 534) / 2,
|
||||
.fchs = (24 + 25) / 2,
|
||||
.fclex = 11,
|
||||
.fcom = 24,
|
||||
.fcom_32 = 26,
|
||||
.fcom_64 = 31,
|
||||
.fcos = (122 + 772) / 2,
|
||||
.fincdecstp = 22,
|
||||
.fdisi_eni = 2,
|
||||
.fdiv = (88 + 91) / 2,
|
||||
.fdiv_32 = 89,
|
||||
.fdiv_64 = 94,
|
||||
.ffree = 18,
|
||||
.fadd_i16 = (71 + 85) / 2,
|
||||
.fadd_i32 = (57 + 72) / 2,
|
||||
.fcom_i16 = (71 + 75) / 2,
|
||||
.fcom_i32 = (56 + 63) / 2,
|
||||
.fdiv_i16 = (136 + 140) / 2,
|
||||
.fdiv_i32 = (120 + 127) / 2,
|
||||
.fild_16 = (61 + 65) / 2,
|
||||
.fild_32 = (45 + 52) / 2,
|
||||
.fild_64 = (56 + 67) / 2,
|
||||
.fmul_i16 = (76 + 87) / 2,
|
||||
.fmul_i32 = (61 + 82) / 2,
|
||||
.finit = 33,
|
||||
.fist_16 = (82 + 95) / 2,
|
||||
.fist_32 = (79 + 93) / 2,
|
||||
.fist_64 = (80 + 97) / 2,
|
||||
.fld = 14,
|
||||
.fld_32 = 20,
|
||||
.fld_64 = 25,
|
||||
.fld_80 = 44,
|
||||
.fld_z1 = (20 + 24) / 2,
|
||||
.fld_const = 40,
|
||||
.fldcw = 19,
|
||||
.fldenv = 71,
|
||||
.fmul = (29 + 57) / 2,
|
||||
.fmul_32 = (27 + 35) / 2,
|
||||
.fmul_64 = (32 + 57) / 2,
|
||||
.fnop = 12,
|
||||
.fpatan = (314 + 487) / 2,
|
||||
.fprem = (74 + 155) / 2,
|
||||
.fprem1 = (95 + 185) / 2,
|
||||
.fptan = (191 + 497) / 2,
|
||||
.frndint = (66 + 80) / 2,
|
||||
.frstor = 308,
|
||||
.fsave = 375,
|
||||
.fscale = (67 + 86) / 2,
|
||||
.fsetpm = 12,
|
||||
.fsin_cos = (122 + 771) / 2,
|
||||
.fsincos = (194 + 809) / 2,
|
||||
.fsqrt = (122 + 129) / 2,
|
||||
.fst = 11,
|
||||
.fst_32 = 44,
|
||||
.fst_64 = 45,
|
||||
.fst_80 = 53,
|
||||
.fstcw_sw = 15,
|
||||
.fstenv = 103,
|
||||
.ftst = 28,
|
||||
.fucom = 24,
|
||||
.fwait = 6,
|
||||
.fxam = (30 + 38) / 2,
|
||||
.fxch = 18,
|
||||
.fxtract = (70 + 76) / 2,
|
||||
.fyl2x = (120 + 538) / 2,
|
||||
.fyl2xp1 = (257 + 547) / 2
|
||||
const x87_timings_t x87_timings_387 = {
|
||||
.f2xm1 = (211 + 476) / 2,
|
||||
.fabs = 22,
|
||||
.fadd = (23 + 34) / 2,
|
||||
.fadd_32 = (24 + 32) / 2,
|
||||
.fadd_64 = (29 + 37) / 2,
|
||||
.fbld = (266 + 275) / 2,
|
||||
.fbstp = (512 + 534) / 2,
|
||||
.fchs = (24 + 25) / 2,
|
||||
.fclex = 11,
|
||||
.fcom = 24,
|
||||
.fcom_32 = 26,
|
||||
.fcom_64 = 31,
|
||||
.fcos = (122 + 772) / 2,
|
||||
.fincdecstp = 22,
|
||||
.fdisi_eni = 2,
|
||||
.fdiv = (88 + 91) / 2,
|
||||
.fdiv_32 = 89,
|
||||
.fdiv_64 = 94,
|
||||
.ffree = 18,
|
||||
.fadd_i16 = (71 + 85) / 2,
|
||||
.fadd_i32 = (57 + 72) / 2,
|
||||
.fcom_i16 = (71 + 75) / 2,
|
||||
.fcom_i32 = (56 + 63) / 2,
|
||||
.fdiv_i16 = (136 + 140) / 2,
|
||||
.fdiv_i32 = (120 + 127) / 2,
|
||||
.fild_16 = (61 + 65) / 2,
|
||||
.fild_32 = (45 + 52) / 2,
|
||||
.fild_64 = (56 + 67) / 2,
|
||||
.fmul_i16 = (76 + 87) / 2,
|
||||
.fmul_i32 = (61 + 82) / 2,
|
||||
.finit = 33,
|
||||
.fist_16 = (82 + 95) / 2,
|
||||
.fist_32 = (79 + 93) / 2,
|
||||
.fist_64 = (80 + 97) / 2,
|
||||
.fld = 14,
|
||||
.fld_32 = 20,
|
||||
.fld_64 = 25,
|
||||
.fld_80 = 44,
|
||||
.fld_z1 = (20 + 24) / 2,
|
||||
.fld_const = 40,
|
||||
.fldcw = 19,
|
||||
.fldenv = 71,
|
||||
.fmul = (29 + 57) / 2,
|
||||
.fmul_32 = (27 + 35) / 2,
|
||||
.fmul_64 = (32 + 57) / 2,
|
||||
.fnop = 12,
|
||||
.fpatan = (314 + 487) / 2,
|
||||
.fprem = (74 + 155) / 2,
|
||||
.fprem1 = (95 + 185) / 2,
|
||||
.fptan = (191 + 497) / 2,
|
||||
.frndint = (66 + 80) / 2,
|
||||
.frstor = 308,
|
||||
.fsave = 375,
|
||||
.fscale = (67 + 86) / 2,
|
||||
.fsetpm = 12,
|
||||
.fsin_cos = (122 + 771) / 2,
|
||||
.fsincos = (194 + 809) / 2,
|
||||
.fsqrt = (122 + 129) / 2,
|
||||
.fst = 11,
|
||||
.fst_32 = 44,
|
||||
.fst_64 = 45,
|
||||
.fst_80 = 53,
|
||||
.fstcw_sw = 15,
|
||||
.fstenv = 103,
|
||||
.ftst = 28,
|
||||
.fucom = 24,
|
||||
.fwait = 6,
|
||||
.fxam = (30 + 38) / 2,
|
||||
.fxch = 18,
|
||||
.fxtract = (70 + 76) / 2,
|
||||
.fyl2x = (120 + 538) / 2,
|
||||
.fyl2xp1 = (257 + 547) / 2
|
||||
};
|
||||
|
||||
const x87_timings_t x87_timings_486 =
|
||||
{
|
||||
.f2xm1 = (140 + 270) / 2,
|
||||
.fabs = 3,
|
||||
.fadd = (8 + 20) / 2,
|
||||
.fadd_32 = (8 + 20) / 2,
|
||||
.fadd_64 = (8 + 20) / 2,
|
||||
.fbld = (70 + 103) / 2,
|
||||
.fbstp = (172 + 176) / 2,
|
||||
.fchs = 6,
|
||||
.fclex = 7,
|
||||
.fcom = 4,
|
||||
.fcom_32 = 4,
|
||||
.fcom_64 = 4,
|
||||
.fcos = (257 + 354) / 2,
|
||||
.fincdecstp = 3,
|
||||
.fdisi_eni = 3,
|
||||
.fdiv = 73,
|
||||
.fdiv_32 = 73,
|
||||
.fdiv_64 = 73,
|
||||
.ffree = 3,
|
||||
.fadd_i16 = (20 + 35) / 2,
|
||||
.fadd_i32 = (19 + 32) / 2,
|
||||
.fcom_i16 = (16 + 20) / 2,
|
||||
.fcom_i32 = (15 + 17) / 2,
|
||||
.fdiv_i16 = (85 + 89) / 2,
|
||||
.fdiv_i32 = (84 + 86) / 2,
|
||||
.fild_16 = (13 + 16) / 2,
|
||||
.fild_32 = (9 + 12) / 2,
|
||||
.fild_64 = (10 + 18) / 2,
|
||||
.fmul_i16 = (23 + 27) / 2,
|
||||
.fmul_i32 = (22 + 24) / 2,
|
||||
.finit = 17,
|
||||
.fist_16 = (29 + 34) / 2,
|
||||
.fist_32 = (28 + 34) / 2,
|
||||
.fist_64 = (29 + 34) / 2,
|
||||
.fld = 4,
|
||||
.fld_32 = 3,
|
||||
.fld_64 = 3,
|
||||
.fld_80 = 6,
|
||||
.fld_z1 = 4,
|
||||
.fld_const = 8,
|
||||
.fldcw = 4,
|
||||
.fldenv = 34,
|
||||
.fmul = 16,
|
||||
.fmul_32 = 11,
|
||||
.fmul_64 = 14,
|
||||
.fnop = 3,
|
||||
.fpatan = (218 + 303) / 2,
|
||||
.fprem = (70 + 138) / 2,
|
||||
.fprem1 = (72 + 167) / 2,
|
||||
.fptan = (200 + 273) / 2,
|
||||
.frndint = (21 + 30) / 2,
|
||||
.frstor = 120,
|
||||
.fsave = 143,
|
||||
.fscale = (30 + 32) / 2,
|
||||
.fsetpm = 3,
|
||||
.fsin_cos = (257 + 354) / 2,
|
||||
.fsincos = (292 + 365) / 2,
|
||||
.fsqrt = (83 + 87) / 2,
|
||||
.fst = 3,
|
||||
.fst_32 = 7,
|
||||
.fst_64 = 8,
|
||||
.fst_80 = 6,
|
||||
.fstcw_sw = 3,
|
||||
.fstenv = 56,
|
||||
.ftst = 4,
|
||||
.fucom = 4,
|
||||
.fwait = (1 + 3) / 2,
|
||||
.fxam = 8,
|
||||
.fxch = 4,
|
||||
.fxtract = (16 + 20) / 2,
|
||||
.fyl2x = (196 + 329) / 2,
|
||||
.fyl2xp1 = (171 + 326) / 2
|
||||
const x87_timings_t x87_timings_486 = {
|
||||
.f2xm1 = (140 + 270) / 2,
|
||||
.fabs = 3,
|
||||
.fadd = (8 + 20) / 2,
|
||||
.fadd_32 = (8 + 20) / 2,
|
||||
.fadd_64 = (8 + 20) / 2,
|
||||
.fbld = (70 + 103) / 2,
|
||||
.fbstp = (172 + 176) / 2,
|
||||
.fchs = 6,
|
||||
.fclex = 7,
|
||||
.fcom = 4,
|
||||
.fcom_32 = 4,
|
||||
.fcom_64 = 4,
|
||||
.fcos = (257 + 354) / 2,
|
||||
.fincdecstp = 3,
|
||||
.fdisi_eni = 3,
|
||||
.fdiv = 73,
|
||||
.fdiv_32 = 73,
|
||||
.fdiv_64 = 73,
|
||||
.ffree = 3,
|
||||
.fadd_i16 = (20 + 35) / 2,
|
||||
.fadd_i32 = (19 + 32) / 2,
|
||||
.fcom_i16 = (16 + 20) / 2,
|
||||
.fcom_i32 = (15 + 17) / 2,
|
||||
.fdiv_i16 = (85 + 89) / 2,
|
||||
.fdiv_i32 = (84 + 86) / 2,
|
||||
.fild_16 = (13 + 16) / 2,
|
||||
.fild_32 = (9 + 12) / 2,
|
||||
.fild_64 = (10 + 18) / 2,
|
||||
.fmul_i16 = (23 + 27) / 2,
|
||||
.fmul_i32 = (22 + 24) / 2,
|
||||
.finit = 17,
|
||||
.fist_16 = (29 + 34) / 2,
|
||||
.fist_32 = (28 + 34) / 2,
|
||||
.fist_64 = (29 + 34) / 2,
|
||||
.fld = 4,
|
||||
.fld_32 = 3,
|
||||
.fld_64 = 3,
|
||||
.fld_80 = 6,
|
||||
.fld_z1 = 4,
|
||||
.fld_const = 8,
|
||||
.fldcw = 4,
|
||||
.fldenv = 34,
|
||||
.fmul = 16,
|
||||
.fmul_32 = 11,
|
||||
.fmul_64 = 14,
|
||||
.fnop = 3,
|
||||
.fpatan = (218 + 303) / 2,
|
||||
.fprem = (70 + 138) / 2,
|
||||
.fprem1 = (72 + 167) / 2,
|
||||
.fptan = (200 + 273) / 2,
|
||||
.frndint = (21 + 30) / 2,
|
||||
.frstor = 120,
|
||||
.fsave = 143,
|
||||
.fscale = (30 + 32) / 2,
|
||||
.fsetpm = 3,
|
||||
.fsin_cos = (257 + 354) / 2,
|
||||
.fsincos = (292 + 365) / 2,
|
||||
.fsqrt = (83 + 87) / 2,
|
||||
.fst = 3,
|
||||
.fst_32 = 7,
|
||||
.fst_64 = 8,
|
||||
.fst_80 = 6,
|
||||
.fstcw_sw = 3,
|
||||
.fstenv = 56,
|
||||
.ftst = 4,
|
||||
.fucom = 4,
|
||||
.fwait = (1 + 3) / 2,
|
||||
.fxam = 8,
|
||||
.fxch = 4,
|
||||
.fxtract = (16 + 20) / 2,
|
||||
.fyl2x = (196 + 329) / 2,
|
||||
.fyl2xp1 = (171 + 326) / 2
|
||||
};
|
||||
|
||||
/* this should be used for FPUs with no concurrency.
|
||||
some pre-486DX Cyrix FPUs reportedly are like this. */
|
||||
const x87_timings_t x87_concurrency_none =
|
||||
{
|
||||
.f2xm1 = 0,
|
||||
.fabs = 0,
|
||||
.fadd = 0,
|
||||
.fadd_32 = 0,
|
||||
.fadd_64 = 0,
|
||||
.fbld = 0,
|
||||
.fbstp = 0,
|
||||
.fchs = 0,
|
||||
.fclex = 0,
|
||||
.fcom = 0,
|
||||
.fcom_32 = 0,
|
||||
.fcom_64 = 0,
|
||||
.fcos = 0,
|
||||
.fincdecstp = 0,
|
||||
.fdisi_eni = 0,
|
||||
.fdiv = 0,
|
||||
.fdiv_32 = 0,
|
||||
.fdiv_64 = 0,
|
||||
.ffree = 0,
|
||||
.fadd_i16 = 0,
|
||||
.fadd_i32 = 0,
|
||||
.fcom_i16 = 0,
|
||||
.fcom_i32 = 0,
|
||||
.fdiv_i16 = 0,
|
||||
.fdiv_i32 = 0,
|
||||
.fild_16 = 0,
|
||||
.fild_32 = 0,
|
||||
.fild_64 = 0,
|
||||
.fmul_i16 = 0,
|
||||
.fmul_i32 = 0,
|
||||
.finit = 0,
|
||||
.fist_16 = 0,
|
||||
.fist_32 = 0,
|
||||
.fist_64 = 0,
|
||||
.fld = 0,
|
||||
.fld_32 = 0,
|
||||
.fld_64 = 0,
|
||||
.fld_80 = 0,
|
||||
.fld_z1 = 0,
|
||||
.fld_const = 0,
|
||||
.fldcw = 0,
|
||||
.fldenv = 0,
|
||||
.fmul = 0,
|
||||
.fmul_32 = 0,
|
||||
.fmul_64 = 0,
|
||||
.fnop = 0,
|
||||
.fpatan = 0,
|
||||
.fprem = 0,
|
||||
.fprem1 = 0,
|
||||
.fptan = 0,
|
||||
.frndint = 0,
|
||||
.frstor = 0,
|
||||
.fsave = 0,
|
||||
.fscale = 0,
|
||||
.fsetpm = 0,
|
||||
.fsin_cos = 0,
|
||||
.fsincos = 0,
|
||||
.fsqrt = 0,
|
||||
.fst = 0,
|
||||
.fst_32 = 0,
|
||||
.fst_64 = 0,
|
||||
.fst_80 = 0,
|
||||
.fstcw_sw = 0,
|
||||
.fstenv = 0,
|
||||
.ftst = 0,
|
||||
.fucom = 0,
|
||||
.fwait = 0,
|
||||
.fxam = 0,
|
||||
.fxch = 0,
|
||||
.fxtract = 0,
|
||||
.fyl2x = 0,
|
||||
.fyl2xp1 = 0,
|
||||
const x87_timings_t x87_concurrency_none = {
|
||||
.f2xm1 = 0,
|
||||
.fabs = 0,
|
||||
.fadd = 0,
|
||||
.fadd_32 = 0,
|
||||
.fadd_64 = 0,
|
||||
.fbld = 0,
|
||||
.fbstp = 0,
|
||||
.fchs = 0,
|
||||
.fclex = 0,
|
||||
.fcom = 0,
|
||||
.fcom_32 = 0,
|
||||
.fcom_64 = 0,
|
||||
.fcos = 0,
|
||||
.fincdecstp = 0,
|
||||
.fdisi_eni = 0,
|
||||
.fdiv = 0,
|
||||
.fdiv_32 = 0,
|
||||
.fdiv_64 = 0,
|
||||
.ffree = 0,
|
||||
.fadd_i16 = 0,
|
||||
.fadd_i32 = 0,
|
||||
.fcom_i16 = 0,
|
||||
.fcom_i32 = 0,
|
||||
.fdiv_i16 = 0,
|
||||
.fdiv_i32 = 0,
|
||||
.fild_16 = 0,
|
||||
.fild_32 = 0,
|
||||
.fild_64 = 0,
|
||||
.fmul_i16 = 0,
|
||||
.fmul_i32 = 0,
|
||||
.finit = 0,
|
||||
.fist_16 = 0,
|
||||
.fist_32 = 0,
|
||||
.fist_64 = 0,
|
||||
.fld = 0,
|
||||
.fld_32 = 0,
|
||||
.fld_64 = 0,
|
||||
.fld_80 = 0,
|
||||
.fld_z1 = 0,
|
||||
.fld_const = 0,
|
||||
.fldcw = 0,
|
||||
.fldenv = 0,
|
||||
.fmul = 0,
|
||||
.fmul_32 = 0,
|
||||
.fmul_64 = 0,
|
||||
.fnop = 0,
|
||||
.fpatan = 0,
|
||||
.fprem = 0,
|
||||
.fprem1 = 0,
|
||||
.fptan = 0,
|
||||
.frndint = 0,
|
||||
.frstor = 0,
|
||||
.fsave = 0,
|
||||
.fscale = 0,
|
||||
.fsetpm = 0,
|
||||
.fsin_cos = 0,
|
||||
.fsincos = 0,
|
||||
.fsqrt = 0,
|
||||
.fst = 0,
|
||||
.fst_32 = 0,
|
||||
.fst_64 = 0,
|
||||
.fst_80 = 0,
|
||||
.fstcw_sw = 0,
|
||||
.fstenv = 0,
|
||||
.ftst = 0,
|
||||
.fucom = 0,
|
||||
.fwait = 0,
|
||||
.fxam = 0,
|
||||
.fxch = 0,
|
||||
.fxtract = 0,
|
||||
.fyl2x = 0,
|
||||
.fyl2xp1 = 0,
|
||||
};
|
||||
|
||||
const x87_timings_t x87_concurrency_486 =
|
||||
{
|
||||
.f2xm1 = 2,
|
||||
.fabs = 0,
|
||||
.fadd = 7,
|
||||
.fadd_32 = 7,
|
||||
.fadd_64 = 7,
|
||||
.fbld = 8,
|
||||
.fbstp = 0,
|
||||
.fchs = 0,
|
||||
.fclex = 0,
|
||||
.fcom = 1,
|
||||
.fcom_32 = 1,
|
||||
.fcom_64 = 1,
|
||||
.fcos = 2,
|
||||
.fincdecstp = 0,
|
||||
.fdisi_eni = 0,
|
||||
.fdiv = 70,
|
||||
.fdiv_32 = 70,
|
||||
.fdiv_64 = 70,
|
||||
.ffree = 0,
|
||||
.fadd_i16 = 7,
|
||||
.fadd_i32 = 7,
|
||||
.fcom_i16 = 1,
|
||||
.fcom_i32 = 1,
|
||||
.fdiv_i16 = 70,
|
||||
.fdiv_i32 = 70,
|
||||
.fild_16 = 4,
|
||||
.fild_32 = 4,
|
||||
.fild_64 = 8,
|
||||
.fmul_i16 = 8,
|
||||
.fmul_i32 = 8,
|
||||
.finit = 0,
|
||||
.fist_16 = 0,
|
||||
.fist_32 = 0,
|
||||
.fist_64 = 0,
|
||||
.fld = 0,
|
||||
.fld_32 = 0,
|
||||
.fld_64 = 0,
|
||||
.fld_80 = 0,
|
||||
.fld_z1 = 0,
|
||||
.fld_const = 2,
|
||||
.fldcw = 0,
|
||||
.fldenv = 0,
|
||||
.fmul = 13,
|
||||
.fmul_32 = 8,
|
||||
.fmul_64 = 11,
|
||||
.fnop = 0,
|
||||
.fpatan = 5,
|
||||
.fprem = 2,
|
||||
.fprem1 = 6,
|
||||
.fptan = 70,
|
||||
.frndint = 0,
|
||||
.frstor = 0,
|
||||
.fsave = 0,
|
||||
.fscale = 2,
|
||||
.fsetpm = 0,
|
||||
.fsin_cos = 2,
|
||||
.fsincos = 2,
|
||||
.fsqrt = 70,
|
||||
.fst = 0,
|
||||
.fst_32 = 0,
|
||||
.fst_64 = 0,
|
||||
.fst_80 = 0,
|
||||
.fstcw_sw = 0,
|
||||
.fstenv = 0,
|
||||
.ftst = 1,
|
||||
.fucom = 1,
|
||||
.fwait = 0,
|
||||
.fxam = 0,
|
||||
.fxch = 0,
|
||||
.fxtract = 4,
|
||||
.fyl2x = 13,
|
||||
.fyl2xp1 = 13,
|
||||
const x87_timings_t x87_concurrency_486 = {
|
||||
.f2xm1 = 2,
|
||||
.fabs = 0,
|
||||
.fadd = 7,
|
||||
.fadd_32 = 7,
|
||||
.fadd_64 = 7,
|
||||
.fbld = 8,
|
||||
.fbstp = 0,
|
||||
.fchs = 0,
|
||||
.fclex = 0,
|
||||
.fcom = 1,
|
||||
.fcom_32 = 1,
|
||||
.fcom_64 = 1,
|
||||
.fcos = 2,
|
||||
.fincdecstp = 0,
|
||||
.fdisi_eni = 0,
|
||||
.fdiv = 70,
|
||||
.fdiv_32 = 70,
|
||||
.fdiv_64 = 70,
|
||||
.ffree = 0,
|
||||
.fadd_i16 = 7,
|
||||
.fadd_i32 = 7,
|
||||
.fcom_i16 = 1,
|
||||
.fcom_i32 = 1,
|
||||
.fdiv_i16 = 70,
|
||||
.fdiv_i32 = 70,
|
||||
.fild_16 = 4,
|
||||
.fild_32 = 4,
|
||||
.fild_64 = 8,
|
||||
.fmul_i16 = 8,
|
||||
.fmul_i32 = 8,
|
||||
.finit = 0,
|
||||
.fist_16 = 0,
|
||||
.fist_32 = 0,
|
||||
.fist_64 = 0,
|
||||
.fld = 0,
|
||||
.fld_32 = 0,
|
||||
.fld_64 = 0,
|
||||
.fld_80 = 0,
|
||||
.fld_z1 = 0,
|
||||
.fld_const = 2,
|
||||
.fldcw = 0,
|
||||
.fldenv = 0,
|
||||
.fmul = 13,
|
||||
.fmul_32 = 8,
|
||||
.fmul_64 = 11,
|
||||
.fnop = 0,
|
||||
.fpatan = 5,
|
||||
.fprem = 2,
|
||||
.fprem1 = 6,
|
||||
.fptan = 70,
|
||||
.frndint = 0,
|
||||
.frstor = 0,
|
||||
.fsave = 0,
|
||||
.fscale = 2,
|
||||
.fsetpm = 0,
|
||||
.fsin_cos = 2,
|
||||
.fsincos = 2,
|
||||
.fsqrt = 70,
|
||||
.fst = 0,
|
||||
.fst_32 = 0,
|
||||
.fst_64 = 0,
|
||||
.fst_80 = 0,
|
||||
.fstcw_sw = 0,
|
||||
.fstenv = 0,
|
||||
.ftst = 1,
|
||||
.fucom = 1,
|
||||
.fwait = 0,
|
||||
.fxam = 0,
|
||||
.fxch = 0,
|
||||
.fxtract = 4,
|
||||
.fyl2x = 13,
|
||||
.fyl2xp1 = 13,
|
||||
};
|
||||
|
||||
@@ -1,51 +1,51 @@
|
||||
typedef struct
|
||||
{
|
||||
int f2xm1;
|
||||
int fabs;
|
||||
int fadd, fadd_32, fadd_64;
|
||||
int fbld;
|
||||
int fbstp;
|
||||
int fchs;
|
||||
int fclex;
|
||||
int fcom, fcom_32, fcom_64;
|
||||
int fcos;
|
||||
int fincdecstp;
|
||||
int fdisi_eni;
|
||||
int fdiv, fdiv_32, fdiv_64;
|
||||
int ffree;
|
||||
int fadd_i16, fadd_i32;
|
||||
int fcom_i16, fcom_i32;
|
||||
int fdiv_i16, fdiv_i32;
|
||||
int fild_16, fild_32, fild_64;
|
||||
int fmul_i16, fmul_i32;
|
||||
int finit;
|
||||
int fist_16, fist_32, fist_64;
|
||||
int fld, fld_32, fld_64, fld_80;
|
||||
int fld_z1, fld_const;
|
||||
int fldcw;
|
||||
int fldenv;
|
||||
int fmul, fmul_32, fmul_64;
|
||||
int fnop;
|
||||
int fpatan;
|
||||
int fprem, fprem1;
|
||||
int fptan;
|
||||
int frndint;
|
||||
int frstor;
|
||||
int fsave;
|
||||
int fscale;
|
||||
int fsetpm;
|
||||
int fsin_cos, fsincos;
|
||||
int fsqrt;
|
||||
int fst, fst_32, fst_64, fst_80;
|
||||
int fstcw_sw;
|
||||
int fstenv;
|
||||
int ftst;
|
||||
int fucom;
|
||||
int fwait;
|
||||
int fxam;
|
||||
int fxch;
|
||||
int fxtract;
|
||||
int fyl2x, fyl2xp1;
|
||||
int f2xm1;
|
||||
int fabs;
|
||||
int fadd, fadd_32, fadd_64;
|
||||
int fbld;
|
||||
int fbstp;
|
||||
int fchs;
|
||||
int fclex;
|
||||
int fcom, fcom_32, fcom_64;
|
||||
int fcos;
|
||||
int fincdecstp;
|
||||
int fdisi_eni;
|
||||
int fdiv, fdiv_32, fdiv_64;
|
||||
int ffree;
|
||||
int fadd_i16, fadd_i32;
|
||||
int fcom_i16, fcom_i32;
|
||||
int fdiv_i16, fdiv_i32;
|
||||
int fild_16, fild_32, fild_64;
|
||||
int fmul_i16, fmul_i32;
|
||||
int finit;
|
||||
int fist_16, fist_32, fist_64;
|
||||
int fld, fld_32, fld_64, fld_80;
|
||||
int fld_z1, fld_const;
|
||||
int fldcw;
|
||||
int fldenv;
|
||||
int fmul, fmul_32, fmul_64;
|
||||
int fnop;
|
||||
int fpatan;
|
||||
int fprem, fprem1;
|
||||
int fptan;
|
||||
int frndint;
|
||||
int frstor;
|
||||
int fsave;
|
||||
int fscale;
|
||||
int fsetpm;
|
||||
int fsin_cos, fsincos;
|
||||
int fsqrt;
|
||||
int fst, fst_32, fst_64, fst_80;
|
||||
int fstcw_sw;
|
||||
int fstenv;
|
||||
int ftst;
|
||||
int fucom;
|
||||
int fwait;
|
||||
int fxam;
|
||||
int fxch;
|
||||
int fxtract;
|
||||
int fyl2x, fyl2xp1;
|
||||
} x87_timings_t;
|
||||
|
||||
extern const x87_timings_t x87_timings_8087;
|
||||
|
||||
@@ -102,10 +102,10 @@ extern const device_t ps1snd_device;
|
||||
|
||||
/* Tandy PSSJ */
|
||||
extern const device_t pssj_device;
|
||||
# if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
extern const device_t pssj_isa_device;
|
||||
|
||||
/* Tandy PSG */
|
||||
extern const device_t tndy_device;
|
||||
# endif
|
||||
|
||||
/* Creative Labs Sound Blaster */
|
||||
extern const device_t sb_1_device;
|
||||
|
||||
@@ -275,7 +275,7 @@ ini_detect_bom(char *fn)
|
||||
#endif
|
||||
if (f == NULL)
|
||||
return (0);
|
||||
fread(bom, 1, 3, f);
|
||||
(void) !fread(bom, 1, 3, f);
|
||||
if (bom[0] == 0xEF && bom[1] == 0xBB && bom[2] == 0xBF) {
|
||||
fclose(f);
|
||||
return 1;
|
||||
|
||||
@@ -117,9 +117,5 @@ if(GUSMAX)
|
||||
target_compile_definitions(snd PRIVATE USE_GUSMAX)
|
||||
endif()
|
||||
|
||||
if(TANDY_ISA)
|
||||
target_compile_definitions(snd PRIVATE USE_TANDY_ISA)
|
||||
endif()
|
||||
|
||||
add_subdirectory(resid-fp)
|
||||
target_link_libraries(86Box resid-fp)
|
||||
|
||||
@@ -208,24 +208,22 @@ pssj_1e0_init(const device_t *info)
|
||||
return pssj;
|
||||
}
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
void *
|
||||
pssj_isa_init(const device_t *info)
|
||||
{
|
||||
pssj_t *pssj = malloc(sizeof(pssj_t));
|
||||
memset(pssj, 0, sizeof(pssj_t));
|
||||
|
||||
sn76489_init(&pssj->sn76489, 0x00c0, 0x0004, PSSJ, 3579545);
|
||||
|
||||
uint16_t addr = device_get_config_hex16("base");
|
||||
|
||||
io_sethandler(addr, 0x0004, pssj_read, NULL, NULL, pssj_write, NULL, NULL, pssj);
|
||||
sn76489_init(&pssj->sn76489, addr, 0x0004, PSSJ, 3579545);
|
||||
|
||||
io_sethandler(addr + 0x04, 0x0004, pssj_read, NULL, NULL, pssj_write, NULL, NULL, pssj);
|
||||
timer_add(&pssj->timer_count, pssj_callback, pssj, pssj->enable);
|
||||
sound_add_handler(pssj_get_buffer, pssj);
|
||||
|
||||
return pssj;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
pssj_close(void *p)
|
||||
@@ -235,7 +233,6 @@ pssj_close(void *p)
|
||||
free(pssj);
|
||||
}
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
static const device_config_t pssj_isa_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -251,6 +248,14 @@ static const device_config_t pssj_isa_config[] = {
|
||||
.description = "0x0C0",
|
||||
.value = 0x0C0
|
||||
},
|
||||
{
|
||||
.description = "0x0E0",
|
||||
.value = 0x0E0
|
||||
},
|
||||
{
|
||||
.description = "0x1C0",
|
||||
.value = 0x1C0
|
||||
},
|
||||
{
|
||||
.description = "0x1E0",
|
||||
.value = 0x1E0
|
||||
@@ -259,13 +264,16 @@ static const device_config_t pssj_isa_config[] = {
|
||||
.description = "0x2C0",
|
||||
.value = 0x2C0
|
||||
},
|
||||
{
|
||||
.description = "0x2E0",
|
||||
.value = 0x2E0
|
||||
},
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
#endif
|
||||
|
||||
const device_t pssj_device = {
|
||||
.name = "Tandy PSSJ",
|
||||
@@ -295,7 +303,6 @@ const device_t pssj_1e0_device = {
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
const device_t pssj_isa_device = {
|
||||
.name = "Tandy PSSJ Clone",
|
||||
.internal_name = "pssj_isa",
|
||||
@@ -309,4 +316,3 @@ const device_t pssj_isa_device = {
|
||||
.force_redraw = NULL,
|
||||
.config = pssj_isa_config
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -209,6 +209,7 @@ sn76489_device_init(const device_t *info)
|
||||
|
||||
return sn76489;
|
||||
}
|
||||
|
||||
void *
|
||||
ncr8496_device_init(const device_t *info)
|
||||
{
|
||||
@@ -220,7 +221,6 @@ ncr8496_device_init(const device_t *info)
|
||||
return sn76489;
|
||||
}
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
void *
|
||||
tndy_device_init(const device_t *info)
|
||||
{
|
||||
@@ -233,7 +233,6 @@ tndy_device_init(const device_t *info)
|
||||
|
||||
return sn76489;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
sn76489_device_close(void *p)
|
||||
@@ -243,7 +242,6 @@ sn76489_device_close(void *p)
|
||||
free(sn76489);
|
||||
}
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
static const device_config_t tndy_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -259,6 +257,14 @@ static const device_config_t tndy_config[] = {
|
||||
.description = "0x0C0",
|
||||
.value = 0x0C0
|
||||
},
|
||||
{
|
||||
.description = "0x0E0",
|
||||
.value = 0x0E0
|
||||
},
|
||||
{
|
||||
.description = "0x1C0",
|
||||
.value = 0x1C0
|
||||
},
|
||||
{
|
||||
.description = "0x1E0",
|
||||
.value = 0x1E0
|
||||
@@ -267,13 +273,16 @@ static const device_config_t tndy_config[] = {
|
||||
.description = "0x2C0",
|
||||
.value = 0x2C0
|
||||
},
|
||||
{
|
||||
.description = "0x2E0",
|
||||
.value = 0x2E0
|
||||
},
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
#endif
|
||||
|
||||
const device_t sn76489_device = {
|
||||
.name = "TI SN74689 PSG",
|
||||
@@ -303,7 +312,6 @@ const device_t ncr8496_device = {
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
const device_t tndy_device = {
|
||||
.name = "TNDY",
|
||||
.internal_name = "tndy",
|
||||
@@ -317,4 +325,3 @@ const device_t tndy_device = {
|
||||
.force_redraw = NULL,
|
||||
.config = tndy_config
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -131,10 +131,8 @@ static const SOUND_CARD sound_cards[] = {
|
||||
#if defined(DEV_BRANCH) && defined(USE_PAS16)
|
||||
{ &pas16_device },
|
||||
#endif
|
||||
#if defined(DEV_BRANCH) && defined(USE_TANDY_ISA)
|
||||
{ &pssj_isa_device },
|
||||
{ &tndy_device },
|
||||
#endif
|
||||
{ &wss_device },
|
||||
{ &adlib_mca_device },
|
||||
{ &ncr_business_audio_device },
|
||||
|
||||
@@ -2688,7 +2688,7 @@ static void
|
||||
|
||||
rom = malloc(xga->bios_rom.sz);
|
||||
memset(rom, 0xff, xga->bios_rom.sz);
|
||||
(void) fread(rom, xga->bios_rom.sz, 1, f);
|
||||
(void) !fread(rom, xga->bios_rom.sz, 1, f);
|
||||
temp -= xga->bios_rom.sz;
|
||||
(void) fclose(f);
|
||||
|
||||
|
||||
@@ -996,9 +996,9 @@ loadfont_common(FILE *f, int format)
|
||||
for (d = 0; d < 4; d++) {
|
||||
/* There are 4 fonts in the ROM */
|
||||
for (c = 0; c < 256; c++) /* 8x14 MDA in 8x16 cell */
|
||||
fread(&fontdatm[256 * d + c][0], 1, 16, f);
|
||||
(void) !fread(&fontdatm[256 * d + c][0], 1, 16, f);
|
||||
for (c = 0; c < 256; c++) { /* 8x8 CGA in 8x16 cell */
|
||||
fread(&fontdat[256 * d + c][0], 1, 8, f);
|
||||
(void) !fread(&fontdat[256 * d + c][0], 1, 8, f);
|
||||
fseek(f, 8, SEEK_CUR);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,9 +79,6 @@ ifeq ($(DEV_BUILD), y)
|
||||
ifndef SIO_DETECT
|
||||
SIO_DETECT := y
|
||||
endif
|
||||
ifndef TANDY_ISA
|
||||
TANDY_ISA := y
|
||||
endif
|
||||
ifndef VGAWONDER
|
||||
VGAWONDER := y
|
||||
endif
|
||||
@@ -143,9 +140,6 @@ else
|
||||
ifndef SIO_DETECT
|
||||
SIO_DETECT := n
|
||||
endif
|
||||
ifndef TANDY_ISA
|
||||
TANDY_ISA := n
|
||||
endif
|
||||
ifndef VGAWONDER
|
||||
VGAWONDER := n
|
||||
endif
|
||||
@@ -495,10 +489,6 @@ OPTS += -DUSE_SIO_DETECT
|
||||
DEVBROBJ += sio_detect.o
|
||||
endif
|
||||
|
||||
ifeq ($(TANDY_ISA), y)
|
||||
OPTS += -DUSE_TANDY_ISA
|
||||
endif
|
||||
|
||||
ifeq ($(VGAWONDER), y)
|
||||
OPTS += -DUSE_VGAWONDER
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user