diff --git a/src/Makefile.local b/src/Makefile.local index bef02fd13..e3963554b 100644 --- a/src/Makefile.local +++ b/src/Makefile.local @@ -10,7 +10,7 @@ # settings, so we can avoid changing the main one for all of # our local setups. # -# Version: @(#)Makefile.local 1.0.17 2018/09/03 +# Version: @(#)Makefile.local 1.0.18 2018/10/17 # # Author: Fred N. van Kempen, # @@ -38,9 +38,7 @@ STUFF := # -DENABLE_BUGGER_LOG=N sets logging level at N. # -DENABLE_CONFIG_LOG=N sets logging level at N. # -DENABLE_DEVICE_LOG=N sets logging level at N. -# -DENABLE_KEYBOARD_AMSTRAD_LOG=N sets logging level at N. # -DENABLE_KEYBOARD_AT_LOG=N sets logging level at N. -# -DENABLE_KEYBOARD_LOG=N sets logging level at N. # -DENABLE_IO_LOG=N sets logging level at N. # -DENABLE_ISAMEM_LOG=N sets logging level at N. # -DENABLE_ISARTC_LOG=N sets logging level at N. @@ -97,10 +95,12 @@ STUFF := # -DENABLE_T3100E_LOG=N sets logging level at N. # -DENABLE_TANDY_LOG=N sets logging level at N. # network/ logging: +# -DENABLE_3COM503_LOG=N sets logging level at N. # -DENABLE_NETWORK_LOG=N sets logging level at N. # -DENABLE_NIC_LOG=N sets logging level at N. # -DENABLE_PCAP_LOG=N sets logging level at N. # -DENABLE_SLIRP_LOG=N sets logging level at N. +# -DENABLE_WD_LOG=N sets logging level at N. # scsi/ logging: # -DENABLE_AHA154X_LOG=N sets logging level at N. # -DENABLE_BUSLOGIC_LOG=N sets logging level at N. @@ -122,8 +122,6 @@ STUFF := # -DENABLE_ATI28800_LOG=N sets logging level at N. # -DENABLE_MACH64_LOG=N sets logging level at N. # -DENABLE_ET4000W32_LOG=N sets logging level at N. -# -DENABLE_NV_RIVA_LOG=N sets logging level at N. -# -DENABLE_NVIDIA_LOG=N sets logging level at N. # -DENABLE_S3_VIRGE_LOG=N sets logging level at N. # -DENABLE_VID_TABLE_LOG=N sets logging level at N. # -DENABLE_VOODOO_LOG=N sets logging level at N. diff --git a/src/bugger.c b/src/bugger.c index 0619a0bb0..cd2d843d9 100644 --- a/src/bugger.c +++ b/src/bugger.c @@ -44,7 +44,7 @@ * configuration register (CTRL_SPCFG bit set) but have to * remember that stuff first... * - * Version: @(#)bugger.c 1.0.12 2018/04/29 + * Version: @(#)bugger.c 1.0.13 2018/10/17 * * Author: Fred N. van Kempen, * Copyright 1989-2018 Fred N. van Kempen. @@ -93,22 +93,22 @@ extern void ui_sb_bugui(char *__str); #ifdef ENABLE_BUGGER_LOG int bugger_do_log = ENABLE_BUGGER_LOG; -#endif static void -bugger_log(const char *format, ...) +bugger_log(const char *fmt, ...) { -#ifdef ENABLE_BUGGER_LOG va_list ap; if (bugger_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define bugger_log(fmt, ...) +#endif /* Update the system's UI with the actual Bugger status. */ diff --git a/src/cpu/386.c b/src/cpu/386.c index 60012df57..b71c779cc 100644 --- a/src/cpu/386.c +++ b/src/cpu/386.c @@ -111,13 +111,11 @@ extern int dontprint; #ifdef ENABLE_386_LOG int x386_do_log = ENABLE_386_LOG; -#endif static void x386_log(const char *fmt, ...) { -#ifdef ENABLE_386_LOG va_list ap; if (x386_do_log) { @@ -125,8 +123,10 @@ x386_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define x386_log(fmt, ...) +#endif void exec386(int cycs) diff --git a/src/cpu/386_dynarec.c b/src/cpu/386_dynarec.c index f7e5dea68..54ea6832c 100644 --- a/src/cpu/386_dynarec.c +++ b/src/cpu/386_dynarec.c @@ -73,14 +73,12 @@ uint32_t *mod1seg[8]; #ifdef ENABLE_386_DYNAREC_LOG -int x386_dynarec_do_log = ENABLE_386_DYNAREC_LOG; -#endif +int x386_dynarec_do_log = ENABLE_386_DYNAREC_LOG;#endif void x386_dynarec_log(const char *fmt, ...) { -#ifdef ENABLE_386_DYNAREC_LOG va_list ap; if (x386_dynarec_do_log) { @@ -88,8 +86,10 @@ x386_dynarec_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define x86_dynarec_log (fmt, ...) +#endif static __inline void fetch_ea_32_long(uint32_t rmdat) @@ -233,7 +233,9 @@ void x86_int(int num) cpu_state.abrt = 0; softresetx86(); cpu_set_edx(); +#ifdef ENABLE_386_DYNAREC_LOG x386_dynarec_log("Triple fault in real mode - reset\n"); +#endif } else x86_int(8); @@ -326,9 +328,21 @@ int x86_int_sw_rm(int num) if (cpu_state.abrt) return 1; - writememw(ss,((SP-2)&0xFFFF),flags); if (cpu_state.abrt) {x386_dynarec_log("abrt5\n"); return 1; } + writememw(ss,((SP-2)&0xFFFF),flags); + if (cpu_state.abrt) { +#ifdef ENABLE_386_DYNAREC_LOG + x386_dynarec_log("abrt5\n"); +#endif + return 1; + } writememw(ss,((SP-4)&0xFFFF),CS); - writememw(ss,((SP-6)&0xFFFF),cpu_state.pc); if (cpu_state.abrt) {x386_dynarec_log("abrt6\n"); return 1; } + writememw(ss,((SP-6)&0xFFFF),cpu_state.pc); + if (cpu_state.abrt) { +#ifdef ENABLE_386_DYNAREC_LOG + x386_dynarec_log("abrt6\n"); +#endif + return 1; + } SP-=6; eflags &= ~VIF_FLAG; @@ -858,14 +872,18 @@ inrecomp=0; cpu_state.abrt = 0; CS = oldcs; cpu_state.pc = cpu_state.oldpc; +#ifdef ENABLE_386_DYNAREC_LOG x386_dynarec_log("Double fault %i\n", ins); +#endif pmodeint(8, 0); if (cpu_state.abrt) { cpu_state.abrt = 0; softresetx86(); cpu_set_edx(); +#ifdef ENABLE_386_DYNAREC_LOG x386_dynarec_log("Triple fault - reset\n"); +#endif } } } diff --git a/src/cpu/386_ops.h b/src/cpu/386_ops.h index a5f5d3a88..45f2ddf67 100644 --- a/src/cpu/386_ops.h +++ b/src/cpu/386_ops.h @@ -8,7 +8,7 @@ * * 286/386+ instruction handlers list. * - * Version: @(#)386_ops.h 1.0.4 2018/09/19 + * Version: @(#)386_ops.h 1.0.5 2018/10/17 * * Authors: Fred N. van Kempen, * Sarah Walker, @@ -176,7 +176,13 @@ static int internal_illegal(char *s) } #endif +#ifdef ENABLE_386_DYNAREC_LOG extern void x386_dynarec_log(const char *fmt, ...); +#else +#ifndef x386_dynarec_log +#define x386_dynarec_log(fmt, ...) +#endif +#endif #include "x86seg.h" #if defined(DEV_BRANCH) && defined(USE_AMD_K) diff --git a/src/cpu/808x.c b/src/cpu/808x.c index dcbc7b9d4..c75cbeaad 100644 --- a/src/cpu/808x.c +++ b/src/cpu/808x.c @@ -18,7 +18,7 @@ * 2 clocks - fetch opcode 1 2 clocks - execute * 2 clocks - fetch opcode 2 etc * - * Version: @(#)808x.c 1.0.6 2018/09/20 + * Version: @(#)808x.c 1.0.7 2018/10/17 * * Authors: Sarah Walker, * Miran Grca, @@ -86,13 +86,11 @@ void writememll(uint32_t seg, uint32_t addr, uint32_t val); #ifdef ENABLE_808X_LOG int x808x_do_log = ENABLE_808X_LOG; -#endif static void x808x_log(const char *fmt, ...) { -#ifdef ENABLE_808X_LOG va_list ap; if (x808x_do_log) { @@ -100,8 +98,10 @@ x808x_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define x808x_log(fmt, ...) +#endif #undef readmemb diff --git a/src/cpu/x86_ops_amd.h b/src/cpu/x86_ops_amd.h index acd7790ff..54e567721 100644 --- a/src/cpu/x86_ops_amd.h +++ b/src/cpu/x86_ops_amd.h @@ -8,7 +8,7 @@ * * AMD SYSCALL and SYSRET CPU Instructions. * - * Version: @(#)x86_ops_amd.h 1.0.3 2018/04/25 + * Version: @(#)x86_ops_amd.h 1.0.4 2018/10/17 * * Author: Miran Grca, * Copyright 2016-2018 Miran Grca. @@ -55,7 +55,7 @@ static int opSYSCALL(uint32_t fetchdat) { if (_cs.seg >= ldt.limit) { - pclog("Bigger than LDT limit %04X %04X CS\n",AMD_SYSCALL_SB,ldt.limit); + x386_dynarec_log("Bigger than LDT limit %04X %04X CS\n",AMD_SYSCALL_SB,ldt.limit); x86gpf(NULL, AMD_SYSCALL_SB & ~3); return 1; } @@ -65,7 +65,7 @@ static int opSYSCALL(uint32_t fetchdat) { if (_cs.seg >= gdt.limit) { - pclog("Bigger than GDT limit %04X %04X CS\n",AMD_SYSCALL_SB,gdt.limit); + x386_dynarec_log("Bigger than GDT limit %04X %04X CS\n",AMD_SYSCALL_SB,gdt.limit); x86gpf(NULL, AMD_SYSCALL_SB & ~3); return 1; } @@ -133,7 +133,7 @@ static int opSYSRET(uint32_t fetchdat) { if (_cs.seg >= ldt.limit) { - pclog("Bigger than LDT limit %04X %04X CS\n",AMD_SYSRET_SB,ldt.limit); + x386_dynarec_log("Bigger than LDT limit %04X %04X CS\n",AMD_SYSRET_SB,ldt.limit); x86gpf(NULL, AMD_SYSRET_SB & ~3); return 1; } @@ -143,7 +143,7 @@ static int opSYSRET(uint32_t fetchdat) { if (_cs.seg >= gdt.limit) { - pclog("Bigger than GDT limit %04X %04X CS\n",AMD_SYSRET_SB,gdt.limit); + x386_dynarec_log("Bigger than GDT limit %04X %04X CS\n",AMD_SYSRET_SB,gdt.limit); x86gpf(NULL, AMD_SYSRET_SB & ~3); return 1; } diff --git a/src/cpu/x86_ops_bit.h b/src/cpu/x86_ops_bit.h index dc10b4f6c..7390265a8 100644 --- a/src/cpu/x86_ops_bit.h +++ b/src/cpu/x86_ops_bit.h @@ -171,7 +171,7 @@ static int opBA_w_a16(uint32_t fetchdat) break; default: - pclog("Bad 0F BA opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad 0F BA opcode %02X\n", rmdat & 0x38); cpu_state.pc = cpu_state.oldpc; x86illegal(); break; @@ -213,7 +213,7 @@ static int opBA_w_a32(uint32_t fetchdat) break; default: - pclog("Bad 0F BA opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad 0F BA opcode %02X\n", rmdat & 0x38); cpu_state.pc = cpu_state.oldpc; x86illegal(); break; @@ -256,7 +256,7 @@ static int opBA_l_a16(uint32_t fetchdat) break; default: - pclog("Bad 0F BA opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad 0F BA opcode %02X\n", rmdat & 0x38); cpu_state.pc = cpu_state.oldpc; x86illegal(); break; @@ -298,7 +298,7 @@ static int opBA_l_a32(uint32_t fetchdat) break; default: - pclog("Bad 0F BA opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad 0F BA opcode %02X\n", rmdat & 0x38); cpu_state.pc = cpu_state.oldpc; x86illegal(); break; diff --git a/src/cpu/x86_ops_i686.h b/src/cpu/x86_ops_i686.h index d4418bfb4..7d0eeb16e 100644 --- a/src/cpu/x86_ops_i686.h +++ b/src/cpu/x86_ops_i686.h @@ -8,7 +8,7 @@ * * x86 i686 (Pentium Pro/Pentium II) CPU Instructions. * - * Version: @(#)x86_ops_i686.h 1.0.4 2018/04/25 + * Version: @(#)x86_ops_i686.h 1.0.5 2018/10/17 * * Author: Miran Grca, * Copyright 2016-2018 Miran Grca. @@ -40,18 +40,18 @@ static int opSYSENTER(uint32_t fetchdat) uint16_t sysenter_ss_seg_data[4]; #ifdef SYSENTER_LOG - pclog("SYSENTER called\n"); + x386_dynarec_log("SYSENTER called\n"); #endif if (!(cr0 & 1)) return internal_illegal("SYSENTER: CPU not in protected mode"); if (!(cs_msr & 0xFFFC)) return internal_illegal("SYSENTER: CS MSR is zero"); #ifdef SYSENTER_LOG - pclog("SYSENTER started:\n"); - pclog("CS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", CS, _cs.base, _cs.limit, _cs.access, _cs.seg, _cs.limit_low, _cs.limit_high, _cs.checked); - pclog("SS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", SS, _ss.base, _ss.limit, _ss.access, _ss.seg, _ss.limit_low, _ss.limit_high, _ss.checked); - pclog("Model specific registers: cs_msr=%04X, esp_msr=%08X, eip_msr=%08X\n", cs_msr, esp_msr, eip_msr); - pclog("Other information: eip=%08X esp=%08X eflags=%04X flags=%04X use32=%04X stack32=%i\n", cpu_state.pc, ESP, eflags, flags, use32, stack32); + x386_dynarec_log("SYSENTER started:\n"); + x386_dynarec_log("CS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", CS, _cs.base, _cs.limit, _cs.access, _cs.seg, _cs.limit_low, _cs.limit_high, _cs.checked); + x386_dynarec_log("SS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", SS, _ss.base, _ss.limit, _ss.access, _ss.seg, _ss.limit_low, _ss.limit_high, _ss.checked); + x386_dynarec_log("Model specific registers: cs_msr=%04X, esp_msr=%08X, eip_msr=%08X\n", cs_msr, esp_msr, eip_msr); + x386_dynarec_log("Other information: eip=%08X esp=%08X eflags=%04X flags=%04X use32=%04X stack32=%i\n", cpu_state.pc, ESP, eflags, flags, use32, stack32); #endif if (cpu_state.abrt) return 1; @@ -83,11 +83,11 @@ static int opSYSENTER(uint32_t fetchdat) CPU_BLOCK_END(); #ifdef SYSENTER_LOG - pclog("SYSENTER completed:\n"); - pclog("CS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", CS, _cs.base, _cs.limit, _cs.access, _cs.seg, _cs.limit_low, _cs.limit_high, _cs.checked); - pclog("SS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", SS, _ss.base, _ss.limit, _ss.access, _ss.seg, _ss.limit_low, _ss.limit_high, _ss.checked); - pclog("Model specific registers: cs_msr=%04X, esp_msr=%08X, eip_msr=%08X\n", cs_msr, esp_msr, eip_msr); - pclog("Other information: eip=%08X esp=%08X eflags=%04X flags=%04X use32=%04X stack32=%i\n", cpu_state.pc, ESP, eflags, flags, use32, stack32); + x386_dynarec_log("SYSENTER completed:\n"); + x386_dynarec_log("CS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", CS, _cs.base, _cs.limit, _cs.access, _cs.seg, _cs.limit_low, _cs.limit_high, _cs.checked); + x386_dynarec_log("SS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", SS, _ss.base, _ss.limit, _ss.access, _ss.seg, _ss.limit_low, _ss.limit_high, _ss.checked); + x386_dynarec_log("Model specific registers: cs_msr=%04X, esp_msr=%08X, eip_msr=%08X\n", cs_msr, esp_msr, eip_msr); + x386_dynarec_log("Other information: eip=%08X esp=%08X eflags=%04X flags=%04X use32=%04X stack32=%i\n", cpu_state.pc, ESP, eflags, flags, use32, stack32); #endif return 0; @@ -99,7 +99,7 @@ static int opSYSEXIT(uint32_t fetchdat) uint16_t sysexit_ss_seg_data[4]; #ifdef SYSEXIT_LOG - pclog("SYSEXIT called\n"); + x386_dynarec_log("SYSEXIT called\n"); #endif if (!(cs_msr & 0xFFFC)) return internal_illegal("SYSEXIT: CS MSR is zero"); @@ -107,11 +107,11 @@ static int opSYSEXIT(uint32_t fetchdat) if (CS & 3) return internal_illegal("SYSEXIT: CPL not 0"); #ifdef SYSEXIT_LOG - pclog("SYSEXIT start:\n"); - pclog("CS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", CS, _cs.base, _cs.limit, _cs.access, _cs.seg, _cs.limit_low, _cs.limit_high, _cs.checked); - pclog("SS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", SS, _ss.base, _ss.limit, _ss.access, _ss.seg, _ss.limit_low, _ss.limit_high, _ss.checked); - pclog("Model specific registers: cs_msr=%04X, esp_msr=%08X, eip_msr=%08X\n", cs_msr, esp_msr, eip_msr); - pclog("Other information: eip=%08X esp=%08X eflags=%04X flags=%04X use32=%04X stack32=%i ECX=%08X EDX=%08X\n", cpu_state.pc, ESP, eflags, flags, use32, stack32, ECX, EDX); + x386_dynarec_log("SYSEXIT start:\n"); + x386_dynarec_log("CS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", CS, _cs.base, _cs.limit, _cs.access, _cs.seg, _cs.limit_low, _cs.limit_high, _cs.checked); + x386_dynarec_log("SS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", SS, _ss.base, _ss.limit, _ss.access, _ss.seg, _ss.limit_low, _ss.limit_high, _ss.checked); + x386_dynarec_log("Model specific registers: cs_msr=%04X, esp_msr=%08X, eip_msr=%08X\n", cs_msr, esp_msr, eip_msr); + x386_dynarec_log("Other information: eip=%08X esp=%08X eflags=%04X flags=%04X use32=%04X stack32=%i ECX=%08X EDX=%08X\n", cpu_state.pc, ESP, eflags, flags, use32, stack32, ECX, EDX); #endif if (cpu_state.abrt) return 1; @@ -141,11 +141,11 @@ static int opSYSEXIT(uint32_t fetchdat) CPU_BLOCK_END(); #ifdef SYSEXIT_LOG - pclog("SYSEXIT completed:\n"); - pclog("CS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", CS, _cs.base, _cs.limit, _cs.access, _cs.seg, _cs.limit_low, _cs.limit_high, _cs.checked); - pclog("SS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", SS, _ss.base, _ss.limit, _ss.access, _ss.seg, _ss.limit_low, _ss.limit_high, _ss.checked); - pclog("Model specific registers: cs_msr=%04X, esp_msr=%08X, eip_msr=%08X\n", cs_msr, esp_msr, eip_msr); - pclog("Other information: eip=%08X esp=%08X eflags=%04X flags=%04X use32=%04X stack32=%i ECX=%08X EDX=%08X\n", cpu_state.pc, ESP, eflags, flags, use32, stack32, ECX, EDX); + x386_dynarec_log("SYSEXIT completed:\n"); + x386_dynarec_log("CS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", CS, _cs.base, _cs.limit, _cs.access, _cs.seg, _cs.limit_low, _cs.limit_high, _cs.checked); + x386_dynarec_log("SS (%04X): base=%08X, limit=%08X, access=%02X, seg=%04X, limit_low=%08X, limit_high=%08X, checked=%i\n", SS, _ss.base, _ss.limit, _ss.access, _ss.seg, _ss.limit_low, _ss.limit_high, _ss.checked); + x386_dynarec_log("Model specific registers: cs_msr=%04X, esp_msr=%08X, eip_msr=%08X\n", cs_msr, esp_msr, eip_msr); + x386_dynarec_log("Other information: eip=%08X esp=%08X eflags=%04X flags=%04X use32=%04X stack32=%i ECX=%08X EDX=%08X\n", cpu_state.pc, ESP, eflags, flags, use32, stack32, ECX, EDX); #endif return 0; @@ -169,7 +169,7 @@ static int opFXSAVESTOR_a16(uint32_t fetchdat) if (cpu_state.eaaddr & 0xf) { - pclog("Effective address %04X not on 16-byte boundary\n", cpu_state.eaaddr); + x386_dynarec_log("Effective address %04X not on 16-byte boundary\n", cpu_state.eaaddr); x86gpf(NULL, 0); return cpu_state.abrt; } @@ -262,7 +262,7 @@ static int opFXSAVESTOR_a16(uint32_t fetchdat) CLOCK_CYCLES((cr0 & 1) ? 34 : 44); - if(cpu_state.abrt) pclog("FXRSTOR: abrt != 0\n"); + if(cpu_state.abrt) x386_dynarec_log("FXRSTOR: abrt != 0\n"); } else { @@ -323,7 +323,7 @@ static int opFXSAVESTOR_a16(uint32_t fetchdat) CLOCK_CYCLES((cr0 & 1) ? 56 : 67); - if(cpu_state.abrt) pclog("FXSAVE: abrt != 0\n"); + if(cpu_state.abrt) x386_dynarec_log("FXSAVE: abrt != 0\n"); } return cpu_state.abrt; @@ -347,7 +347,7 @@ static int opFXSAVESTOR_a32(uint32_t fetchdat) if (cpu_state.eaaddr & 0xf) { - pclog("Effective address %08X not on 16-byte boundary\n", cpu_state.eaaddr); + x386_dynarec_log("Effective address %08X not on 16-byte boundary\n", cpu_state.eaaddr); x86gpf(NULL, 0); return cpu_state.abrt; } @@ -440,7 +440,7 @@ static int opFXSAVESTOR_a32(uint32_t fetchdat) CLOCK_CYCLES((cr0 & 1) ? 34 : 44); - if(cpu_state.abrt) pclog("FXRSTOR: abrt != 0\n"); + if(cpu_state.abrt) x386_dynarec_log("FXRSTOR: abrt != 0\n"); } else { @@ -501,7 +501,7 @@ static int opFXSAVESTOR_a32(uint32_t fetchdat) CLOCK_CYCLES((cr0 & 1) ? 56 : 67); - if(cpu_state.abrt) pclog("FXSAVE: abrt != 0\n"); + if(cpu_state.abrt) x386_dynarec_log("FXSAVE: abrt != 0\n"); } return cpu_state.abrt; diff --git a/src/cpu/x86_ops_misc.h b/src/cpu/x86_ops_misc.h index 9fa219919..f7bf454b6 100644 --- a/src/cpu/x86_ops_misc.h +++ b/src/cpu/x86_ops_misc.h @@ -8,7 +8,7 @@ * * Miscellaneous x86 CPU Instructions. * - * Version: @(#)x86_ops_misc.h 1.0.1 2018/04/12 + * Version: @(#)x86_ops_misc.h 1.0.2 2018/10/17 * * Author: Sarah Walker, * Miran Grca, @@ -160,7 +160,7 @@ static int opF6_a16(uint32_t fetchdat) break; default: - pclog("Bad F6 opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad F6 opcode %02X\n", rmdat & 0x38); x86illegal(); } return 0; @@ -259,7 +259,7 @@ static int opF6_a32(uint32_t fetchdat) break; default: - pclog("Bad F6 opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad F6 opcode %02X\n", rmdat & 0x38); x86illegal(); } return 0; @@ -354,7 +354,7 @@ static int opF7_w_a16(uint32_t fetchdat) break; default: - pclog("Bad F7 opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad F7 opcode %02X\n", rmdat & 0x38); x86illegal(); } return 0; @@ -446,7 +446,7 @@ static int opF7_w_a32(uint32_t fetchdat) break; default: - pclog("Bad F7 opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad F7 opcode %02X\n", rmdat & 0x38); x86illegal(); } return 0; @@ -517,7 +517,7 @@ static int opF7_l_a16(uint32_t fetchdat) break; default: - pclog("Bad F7 opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad F7 opcode %02X\n", rmdat & 0x38); x86illegal(); } return 0; @@ -587,7 +587,7 @@ static int opF7_l_a32(uint32_t fetchdat) break; default: - pclog("Bad F7 opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad F7 opcode %02X\n", rmdat & 0x38); x86illegal(); } return 0; @@ -714,7 +714,7 @@ static int opCLTS(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't CLTS\n"); + x386_dynarec_log("Can't CLTS\n"); x86gpf(NULL,0); return 1; } diff --git a/src/cpu/x86_ops_mmx_shift.h b/src/cpu/x86_ops_mmx_shift.h index 429347598..ce60d32ef 100644 --- a/src/cpu/x86_ops_mmx_shift.h +++ b/src/cpu/x86_ops_mmx_shift.h @@ -52,7 +52,7 @@ static int opPSxxW_imm(uint32_t fetchdat) } break; default: - pclog("Bad PSxxW (0F 71) instruction %02X\n", op); + x386_dynarec_log("Bad PSxxW (0F 71) instruction %02X\n", op); cpu_state.pc = cpu_state.oldpc; x86illegal(); return 0; @@ -223,7 +223,7 @@ static int opPSxxD_imm(uint32_t fetchdat) } break; default: - pclog("Bad PSxxD (0F 72) instruction %02X\n", op); + x386_dynarec_log("Bad PSxxD (0F 72) instruction %02X\n", op); cpu_state.pc = cpu_state.oldpc; x86illegal(); return 0; @@ -375,7 +375,7 @@ static int opPSxxQ_imm(uint32_t fetchdat) cpu_state.MM[reg].q <<= shift; break; default: - pclog("Bad PSxxQ (0F 73) instruction %02X\n", op); + x386_dynarec_log("Bad PSxxQ (0F 73) instruction %02X\n", op); cpu_state.pc = cpu_state.oldpc; x86illegal(); return 0; diff --git a/src/cpu/x86_ops_mov_ctrl.h b/src/cpu/x86_ops_mov_ctrl.h index 3a522a652..9c715f14c 100644 --- a/src/cpu/x86_ops_mov_ctrl.h +++ b/src/cpu/x86_ops_mov_ctrl.h @@ -2,7 +2,7 @@ static int opMOV_r_CRx_a16(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load from CRx\n"); + x386_dynarec_log("Can't load from CRx\n"); x86gpf(NULL, 0); return 1; } @@ -27,7 +27,7 @@ static int opMOV_r_CRx_a16(uint32_t fetchdat) break; } default: - pclog("Bad read of CR%i %i\n",rmdat&7,cpu_reg); + x386_dynarec_log("Bad read of CR%i %i\n",rmdat&7,cpu_reg); cpu_state.pc = cpu_state.oldpc; x86illegal(); break; @@ -40,7 +40,7 @@ static int opMOV_r_CRx_a32(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load from CRx\n"); + x386_dynarec_log("Can't load from CRx\n"); x86gpf(NULL, 0); return 1; } @@ -65,7 +65,7 @@ static int opMOV_r_CRx_a32(uint32_t fetchdat) break; } default: - pclog("Bad read of CR%i %i\n",rmdat&7,cpu_reg); + x386_dynarec_log("Bad read of CR%i %i\n",rmdat&7,cpu_reg); cpu_state.pc = cpu_state.oldpc; x86illegal(); break; @@ -79,7 +79,7 @@ static int opMOV_r_DRx_a16(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load from DRx\n"); + x386_dynarec_log("Can't load from DRx\n"); x86gpf(NULL, 0); return 1; } @@ -93,7 +93,7 @@ static int opMOV_r_DRx_a32(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load from DRx\n"); + x386_dynarec_log("Can't load from DRx\n"); x86gpf(NULL, 0); return 1; } @@ -110,7 +110,7 @@ static int opMOV_CRx_r_a16(uint32_t fetchdat) if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load CRx\n"); + x386_dynarec_log("Can't load CRx\n"); x86gpf(NULL,0); return 1; } @@ -151,7 +151,7 @@ static int opMOV_CRx_r_a16(uint32_t fetchdat) } default: - pclog("Bad load CR%i\n", cpu_reg); + x386_dynarec_log("Bad load CR%i\n", cpu_reg); cpu_state.pc = cpu_state.oldpc; x86illegal(); break; @@ -166,7 +166,7 @@ static int opMOV_CRx_r_a32(uint32_t fetchdat) if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load CRx\n"); + x386_dynarec_log("Can't load CRx\n"); x86gpf(NULL,0); return 1; } @@ -207,7 +207,7 @@ static int opMOV_CRx_r_a32(uint32_t fetchdat) } default: - pclog("Bad load CR%i\n", cpu_reg); + x386_dynarec_log("Bad load CR%i\n", cpu_reg); cpu_state.pc = cpu_state.oldpc; x86illegal(); break; @@ -221,7 +221,7 @@ static int opMOV_DRx_r_a16(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load DRx\n"); + x386_dynarec_log("Can't load DRx\n"); x86gpf(NULL, 0); return 1; } @@ -235,7 +235,7 @@ static int opMOV_DRx_r_a32(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load DRx\n"); + x386_dynarec_log("Can't load DRx\n"); x86gpf(NULL, 0); return 1; } @@ -250,7 +250,7 @@ static int opMOV_r_TRx_a16(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load from TRx\n"); + x386_dynarec_log("Can't load from TRx\n"); x86gpf(NULL, 0); return 1; } @@ -264,7 +264,7 @@ static int opMOV_r_TRx_a32(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load from TRx\n"); + x386_dynarec_log("Can't load from TRx\n"); x86gpf(NULL, 0); return 1; } @@ -279,7 +279,7 @@ static int opMOV_TRx_r_a16(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load TRx\n"); + x386_dynarec_log("Can't load TRx\n"); x86gpf(NULL, 0); return 1; } @@ -292,7 +292,7 @@ static int opMOV_TRx_r_a32(uint32_t fetchdat) { if ((CPL || (eflags&VM_FLAG)) && (cr0&1)) { - pclog("Can't load TRx\n"); + x386_dynarec_log("Can't load TRx\n"); x86gpf(NULL, 0); return 1; } diff --git a/src/cpu/x86_ops_pmode.h b/src/cpu/x86_ops_pmode.h index 46e324322..d1d85f231 100644 --- a/src/cpu/x86_ops_pmode.h +++ b/src/cpu/x86_ops_pmode.h @@ -4,7 +4,7 @@ static int opARPL_a16(uint32_t fetchdat) NOTRM fetch_ea_16(fetchdat); - /* pclog("ARPL_a16\n"); */ + /* x386_dynarec_log("ARPL_a16\n"); */ temp_seg = geteaw(); if (cpu_state.abrt) return 1; flags_rebuild(); @@ -27,7 +27,7 @@ static int opARPL_a32(uint32_t fetchdat) NOTRM fetch_ea_32(fetchdat); - /* pclog("ARPL_a32\n"); */ + /* x386_dynarec_log("ARPL_a32\n"); */ temp_seg = geteaw(); if (cpu_state.abrt) return 1; flags_rebuild(); @@ -159,7 +159,7 @@ static int op0F00_common(uint32_t fetchdat, int ea32) uint16_t desc, sel; uint8_t access; - /* pclog("op0F00 %02X %04X:%04X\n", rmdat & 0x38, CS, pc); */ + /* x386_dynarec_log("op0F00 %02X %04X:%04X\n", rmdat & 0x38, CS, pc); */ switch (rmdat & 0x38) { case 0x00: /*SLDT*/ @@ -175,7 +175,7 @@ static int op0F00_common(uint32_t fetchdat, int ea32) case 0x10: /*LLDT*/ if ((CPL || eflags&VM_FLAG) && (cr0&1)) { - pclog("Invalid LLDT!\n"); + x386_dynarec_log("Invalid LLDT!\n"); x86gpf(NULL,0); return 1; } @@ -201,7 +201,7 @@ static int op0F00_common(uint32_t fetchdat, int ea32) case 0x18: /*LTR*/ if ((CPL || eflags&VM_FLAG) && (cr0&1)) { - pclog("Invalid LTR!\n"); + x386_dynarec_log("Invalid LTR!\n"); x86gpf(NULL,0); break; } @@ -267,7 +267,7 @@ static int op0F00_common(uint32_t fetchdat, int ea32) break; default: - pclog("Bad 0F 00 opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad 0F 00 opcode %02X\n", rmdat & 0x38); cpu_state.pc -= 3; x86illegal(); break; @@ -296,7 +296,7 @@ static int op0F01_common(uint32_t fetchdat, int is32, int is286, int ea32) { uint32_t base; uint16_t limit, tempw; - /* pclog("op0F01 %02X %04X:%04X\n", rmdat & 0x38, CS, pc); */ + /* x386_dynarec_log("op0F01 %02X %04X:%04X\n", rmdat & 0x38, CS, pc); */ switch (rmdat & 0x38) { case 0x00: /*SGDT*/ @@ -320,14 +320,14 @@ static int op0F01_common(uint32_t fetchdat, int is32, int is286, int ea32) case 0x10: /*LGDT*/ if ((CPL || eflags&VM_FLAG) && (cr0&1)) { - pclog("Invalid LGDT!\n"); + x386_dynarec_log("Invalid LGDT!\n"); x86gpf(NULL,0); break; } - /* pclog("LGDT %08X:%08X\n", easeg, eaaddr); */ + /* x386_dynarec_log("LGDT %08X:%08X\n", easeg, eaaddr); */ limit = geteaw(); base = readmeml(0, easeg + cpu_state.eaaddr + 2); if (cpu_state.abrt) return 1; - /* pclog(" %08X %04X\n", base, limit); */ + /* x386_dynarec_log(" %08X %04X\n", base, limit); */ gdt.limit = limit; gdt.base = base; if (!is32) gdt.base &= 0xffffff; @@ -337,14 +337,14 @@ static int op0F01_common(uint32_t fetchdat, int is32, int is286, int ea32) case 0x18: /*LIDT*/ if ((CPL || eflags&VM_FLAG) && (cr0&1)) { - pclog("Invalid LIDT!\n"); + x386_dynarec_log("Invalid LIDT!\n"); x86gpf(NULL,0); break; } - /* pclog("LIDT %08X:%08X\n", easeg, eaaddr); */ + /* x386_dynarec_log("LIDT %08X:%08X\n", easeg, eaaddr); */ limit = geteaw(); base = readmeml(0, easeg + cpu_state.eaaddr + 2); if (cpu_state.abrt) return 1; - /* pclog(" %08X %04X\n", base, limit); */ + /* x386_dynarec_log(" %08X %04X\n", base, limit); */ idt.limit = limit; idt.base = base; if (!is32) idt.base &= 0xffffff; @@ -362,7 +362,7 @@ static int op0F01_common(uint32_t fetchdat, int is32, int is286, int ea32) case 0x30: /*LMSW*/ if ((CPL || eflags&VM_FLAG) && (msw&1)) { - pclog("LMSW - ring not zero!\n"); + x386_dynarec_log("LMSW - ring not zero!\n"); x86gpf(NULL, 0); break; } @@ -387,7 +387,7 @@ static int op0F01_common(uint32_t fetchdat, int is32, int is286, int ea32) { if ((CPL || eflags&VM_FLAG) && (cr0&1)) { - pclog("Invalid INVLPG!\n"); + x386_dynarec_log("Invalid INVLPG!\n"); x86gpf(NULL, 0); break; } @@ -398,7 +398,7 @@ static int op0F01_common(uint32_t fetchdat, int is32, int is286, int ea32) } default: - pclog("Bad 0F 01 opcode %02X\n", rmdat & 0x38); + x386_dynarec_log("Bad 0F 01 opcode %02X\n", rmdat & 0x38); cpu_state.pc -= 3; x86illegal(); break; diff --git a/src/cpu/x86seg.c b/src/cpu/x86seg.c index 3447a2628..6a5ea0478 100644 --- a/src/cpu/x86seg.c +++ b/src/cpu/x86seg.c @@ -8,7 +8,7 @@ * * x86 CPU segment emulation. * - * Version: @(#)x86seg.c 1.0.7 2018/04/29 + * Version: @(#)x86seg.c 1.0.8 2018/10/17 * * Authors: Sarah Walker, * Miran Grca, @@ -63,13 +63,11 @@ void pmodeint(int num, int soft); #ifdef ENABLE_X86SEG_LOG int x86seg_do_log = ENABLE_X86SEG_LOG; -#endif static void x86seg_log(const char *fmt, ...) { -#ifdef ENABLE_X86SEG_LOG va_list ap; if (x86seg_do_log) { @@ -77,8 +75,10 @@ x86seg_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define x86seg_log(fmt, ...) +#endif void x86abort(const char *format, ...) diff --git a/src/cpu/x87.c b/src/cpu/x87.c index b7de97394..72d8142a0 100644 --- a/src/cpu/x87.c +++ b/src/cpu/x87.c @@ -19,13 +19,11 @@ #ifdef ENABLE_FPU_LOG int fpu_do_log = ENABLE_FPU_LOG; -#endif static void fpu_log(const char *fmt, ...) { -#ifdef ENABLE_FPU_LOG va_list ap; if (fpu_log) { @@ -33,8 +31,10 @@ fpu_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define fpu_log(fmt, ...) +#endif uint16_t x87_gettag() diff --git a/src/cpu/x87_ops.h b/src/cpu/x87_ops.h index a5e42ce80..4cc514cb7 100644 --- a/src/cpu/x87_ops.h +++ b/src/cpu/x87_ops.h @@ -8,7 +8,7 @@ * * x87 FPU instructions core. * - * Version: @(#)x87_ops.h 1.0.6 2018/08/01 + * Version: @(#)x87_ops.h 1.0.7 2018/10/17 * * Authors: Fred N. van Kempen, * Sarah Walker, @@ -44,7 +44,13 @@ # include #endif -#define fplog 0 +#ifdef ENABLE_FPU_LOG +extern void fpu_log(const char *fmt, ...); +#else +#ifndef fpu_log +#define fpu_log(fmt, ...) +#endif +#endif static int rounding_modes[4] = {FE_TONEAREST, FE_DOWNWARD, FE_UPWARD, FE_TOWARDZERO}; @@ -66,7 +72,7 @@ static int rounding_modes[4] = {FE_TONEAREST, FE_DOWNWARD, FE_UPWARD, FE_TOWARDZ dst = src1 / (double)src2; \ else \ { \ - x386_dynarec_log("FPU : divide by zero\n"); \ + fpu_log("FPU : divide by zero\n"); \ picint(1 << 13); \ } \ return 1; \ @@ -289,7 +295,7 @@ static __inline uint16_t x87_compare(double a, double b) { if (((a == INFINITY) || (a == -INFINITY)) && ((b == INFINITY) || (b == -INFINITY))) { - /* x386_dynarec_log("Comparing infinity\n"); */ + /* fpu_log("Comparing infinity\n"); */ #ifndef _MSC_VER __asm volatile ("" : : : "memory"); diff --git a/src/cpu/x87_ops_arith.h b/src/cpu/x87_ops_arith.h index 0e58db63c..391078475 100644 --- a/src/cpu/x87_ops_arith.h +++ b/src/cpu/x87_ops_arith.h @@ -111,7 +111,7 @@ static int opFADD(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FADD\n"); + fpu_log("FADD\n"); ST(0) = ST(0) + ST(fetchdat & 7); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(8); @@ -121,7 +121,7 @@ static int opFADDr(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FADD\n"); + fpu_log("FADD\n"); ST(fetchdat & 7) = ST(fetchdat & 7) + ST(0); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; CLOCK_CYCLES(8); @@ -131,7 +131,7 @@ static int opFADDP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FADDP\n"); + fpu_log("FADDP\n"); ST(fetchdat & 7) = ST(fetchdat & 7) + ST(0); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; x87_pop(); @@ -143,7 +143,7 @@ static int opFCOM(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FCOM\n"); + fpu_log("FCOM\n"); cpu_state.npxs &= ~(C0|C2|C3); if (ST(0) == ST(fetchdat & 7)) cpu_state.npxs |= C3; else if (ST(0) < ST(fetchdat & 7)) cpu_state.npxs |= C0; @@ -155,7 +155,7 @@ static int opFCOMP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FCOMP\n"); + fpu_log("FCOMP\n"); cpu_state.npxs &= ~(C0|C2|C3); cpu_state.npxs |= x87_compare(ST(0), ST(fetchdat & 7)); x87_pop(); @@ -168,7 +168,7 @@ static int opFCOMPP(uint32_t fetchdat) uint64_t *p, *q; FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FCOMPP\n"); + fpu_log("FCOMPP\n"); cpu_state.npxs &= ~(C0|C2|C3); p = (uint64_t *)&ST(0); q = (uint64_t *)&ST(1); @@ -186,7 +186,7 @@ static int opFUCOMPP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FUCOMPP\n", easeg, cpu_state.eaaddr); + fpu_log("FUCOMPP\n", easeg, cpu_state.eaaddr); cpu_state.npxs &= ~(C0|C2|C3); cpu_state.npxs |= x87_ucompare(ST(0), ST(1)); x87_pop(); @@ -199,7 +199,7 @@ static int opFCOMI(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FICOM\n"); + fpu_log("FICOM\n"); flags_rebuild(); flags &= ~(Z_FLAG | P_FLAG | C_FLAG); if (ST(0) == ST(fetchdat & 7)) flags |= Z_FLAG; @@ -211,7 +211,7 @@ static int opFCOMIP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FICOMP\n"); + fpu_log("FICOMP\n"); flags_rebuild(); flags &= ~(Z_FLAG | P_FLAG | C_FLAG); if (ST(0) == ST(fetchdat & 7)) flags |= Z_FLAG; @@ -225,7 +225,7 @@ static int opFDIV(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FDIV\n"); + fpu_log("FDIV\n"); x87_div(ST(0), ST(0), ST(fetchdat & 7)); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(73); @@ -235,7 +235,7 @@ static int opFDIVr(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FDIV\n"); + fpu_log("FDIV\n"); x87_div(ST(fetchdat & 7), ST(fetchdat & 7), ST(0)); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; CLOCK_CYCLES(73); @@ -245,7 +245,7 @@ static int opFDIVP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FDIVP\n"); + fpu_log("FDIVP\n"); x87_div(ST(fetchdat & 7), ST(fetchdat & 7), ST(0)); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; x87_pop(); @@ -257,7 +257,7 @@ static int opFDIVR(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FDIVR\n"); + fpu_log("FDIVR\n"); x87_div(ST(0), ST(fetchdat&7), ST(0)); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(73); @@ -267,7 +267,7 @@ static int opFDIVRr(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FDIVR\n"); + fpu_log("FDIVR\n"); x87_div(ST(fetchdat & 7), ST(0), ST(fetchdat & 7)); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; CLOCK_CYCLES(73); @@ -277,7 +277,7 @@ static int opFDIVRP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FDIVR\n"); + fpu_log("FDIVR\n"); x87_div(ST(fetchdat & 7), ST(0), ST(fetchdat & 7)); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; x87_pop(); @@ -289,7 +289,7 @@ static int opFMUL(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FMUL\n"); + fpu_log("FMUL\n"); ST(0) = ST(0) * ST(fetchdat & 7); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(16); @@ -299,7 +299,7 @@ static int opFMULr(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FMUL\n"); + fpu_log("FMUL\n"); ST(fetchdat & 7) = ST(0) * ST(fetchdat & 7); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; CLOCK_CYCLES(16); @@ -309,7 +309,7 @@ static int opFMULP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FMULP\n"); + fpu_log("FMULP\n"); ST(fetchdat & 7) = ST(0) * ST(fetchdat & 7); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; x87_pop(); @@ -321,7 +321,7 @@ static int opFSUB(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FSUB\n"); + fpu_log("FSUB\n"); ST(0) = ST(0) - ST(fetchdat & 7); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(8); @@ -331,7 +331,7 @@ static int opFSUBr(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FSUB\n"); + fpu_log("FSUB\n"); ST(fetchdat & 7) = ST(fetchdat & 7) - ST(0); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; CLOCK_CYCLES(8); @@ -341,7 +341,7 @@ static int opFSUBP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FSUBP\n"); + fpu_log("FSUBP\n"); ST(fetchdat & 7) = ST(fetchdat & 7) - ST(0); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; x87_pop(); @@ -353,7 +353,7 @@ static int opFSUBR(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FSUBR\n"); + fpu_log("FSUBR\n"); ST(0) = ST(fetchdat & 7) - ST(0); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(8); @@ -363,7 +363,7 @@ static int opFSUBRr(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FSUBR\n"); + fpu_log("FSUBR\n"); ST(fetchdat & 7) = ST(0) - ST(fetchdat & 7); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; CLOCK_CYCLES(8); @@ -373,7 +373,7 @@ static int opFSUBRP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FSUBRP\n"); + fpu_log("FSUBRP\n"); ST(fetchdat & 7) = ST(0) - ST(fetchdat & 7); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] &= ~TAG_UINT64; x87_pop(); @@ -385,7 +385,7 @@ static int opFUCOM(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FUCOM\n"); + fpu_log("FUCOM\n"); cpu_state.npxs &= ~(C0|C2|C3); cpu_state.npxs |= x87_ucompare(ST(0), ST(fetchdat & 7)); CLOCK_CYCLES(4); @@ -396,7 +396,7 @@ static int opFUCOMP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FUCOMP\n"); + fpu_log("FUCOMP\n"); cpu_state.npxs &= ~(C0|C2|C3); cpu_state.npxs |= x87_ucompare(ST(0), ST(fetchdat & 7)); x87_pop(); @@ -408,7 +408,7 @@ static int opFUCOMI(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FUCOMI\n"); + fpu_log("FUCOMI\n"); flags_rebuild(); flags &= ~(Z_FLAG | P_FLAG | C_FLAG); if (ST(0) == ST(fetchdat & 7)) flags |= Z_FLAG; @@ -420,7 +420,7 @@ static int opFUCOMIP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - x386_dynarec_log("FUCOMIP\n"); + fpu_log("FUCOMIP\n"); flags_rebuild(); flags &= ~(Z_FLAG | P_FLAG | C_FLAG); if (ST(0) == ST(fetchdat & 7)) flags |= Z_FLAG; diff --git a/src/cpu/x87_ops_loadstore.h b/src/cpu/x87_ops_loadstore.h index 39a14c4fb..80e5ba391 100644 --- a/src/cpu/x87_ops_loadstore.h +++ b/src/cpu/x87_ops_loadstore.h @@ -8,7 +8,7 @@ * * x87 FPU instructions core. * - * Version: @(#)x87_ops_loadstore.h 1.0.0 2017/05/30 + * Version: @(#)x87_ops_loadstore.h 1.0.1 2017/10/17 * * Author: Sarah Walker, * Miran Grca, @@ -21,9 +21,9 @@ static int opFILDiw_a16(uint32_t fetchdat) int16_t temp; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FILDw %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FILDw %08X:%08X\n", easeg, cpu_state.eaaddr); temp = geteaw(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f\n", (double)temp); + fpu_log(" %f\n", (double)temp); x87_push((double)temp); CLOCK_CYCLES(13); return 0; @@ -33,9 +33,9 @@ static int opFILDiw_a32(uint32_t fetchdat) int16_t temp; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FILDw %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FILDw %08X:%08X\n", easeg, cpu_state.eaaddr); temp = geteaw(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f\n", (double)temp); + fpu_log(" %f\n", (double)temp); x87_push((double)temp); CLOCK_CYCLES(13); return 0; @@ -46,7 +46,7 @@ static int opFISTiw_a16(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FISTw %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTw %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = x87_fround(ST(0)); /* if (temp64 > 32767 || temp64 < -32768) fatal("FISTw overflow %i\n", temp64);*/ @@ -59,7 +59,7 @@ static int opFISTiw_a32(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FISTw %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTw %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = x87_fround(ST(0)); /* if (temp64 > 32767 || temp64 < -32768) fatal("FISTw overflow %i\n", temp64);*/ @@ -73,7 +73,7 @@ static int opFISTPiw_a16(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FISTw %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTw %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = x87_fround(ST(0)); /* if (temp64 > 32767 || temp64 < -32768) fatal("FISTw overflow %i\n", temp64);*/ @@ -87,7 +87,7 @@ static int opFISTPiw_a32(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FISTw %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTw %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = x87_fround(ST(0)); /* if (temp64 > 32767 || temp64 < -32768) fatal("FISTw overflow %i\n", temp64);*/ @@ -102,9 +102,9 @@ static int opFILDiq_a16(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FILDl %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FILDl %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = geteaq(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f %08X %08X\n", (double)temp64, readmeml(easeg,cpu_state.eaaddr), readmeml(easeg,cpu_state.eaaddr+4)); + fpu_log(" %f %08X %08X\n", (double)temp64, readmeml(easeg,cpu_state.eaaddr), readmeml(easeg,cpu_state.eaaddr+4)); x87_push((double)temp64); cpu_state.MM[cpu_state.TOP].q = temp64; cpu_state.tag[cpu_state.TOP] |= TAG_UINT64; @@ -117,9 +117,9 @@ static int opFILDiq_a32(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FILDl %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FILDl %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = geteaq(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f %08X %08X\n", (double)temp64, readmeml(easeg,cpu_state.eaaddr), readmeml(easeg,cpu_state.eaaddr+4)); + fpu_log(" %f %08X %08X\n", (double)temp64, readmeml(easeg,cpu_state.eaaddr), readmeml(easeg,cpu_state.eaaddr+4)); x87_push((double)temp64); cpu_state.MM[cpu_state.TOP].q = temp64; cpu_state.tag[cpu_state.TOP] |= TAG_UINT64; @@ -134,7 +134,7 @@ static int FBSTP_a16(uint32_t fetchdat) int c; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FBSTP %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FBSTP %08X:%08X\n", easeg, cpu_state.eaaddr); tempd = ST(0); if (tempd < 0.0) tempd = -tempd; @@ -160,7 +160,7 @@ static int FBSTP_a32(uint32_t fetchdat) int c; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FBSTP %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FBSTP %08X:%08X\n", easeg, cpu_state.eaaddr); tempd = ST(0); if (tempd < 0.0) tempd = -tempd; @@ -186,7 +186,7 @@ static int FISTPiq_a16(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FISTPl %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTPl %08X:%08X\n", easeg, cpu_state.eaaddr); if (cpu_state.tag[cpu_state.TOP] & TAG_UINT64) temp64 = cpu_state.MM[cpu_state.TOP].q; else @@ -201,7 +201,7 @@ static int FISTPiq_a32(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FISTPl %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTPl %08X:%08X\n", easeg, cpu_state.eaaddr); if (cpu_state.tag[cpu_state.TOP] & TAG_UINT64) temp64 = cpu_state.MM[cpu_state.TOP].q; else @@ -217,9 +217,9 @@ static int opFILDil_a16(uint32_t fetchdat) int32_t templ; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FILDs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FILDs %08X:%08X\n", easeg, cpu_state.eaaddr); templ = geteal(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f %08X %i\n", (double)templ, templ, templ); + fpu_log(" %f %08X %i\n", (double)templ, templ, templ); x87_push((double)templ); CLOCK_CYCLES(9); return 0; @@ -229,9 +229,9 @@ static int opFILDil_a32(uint32_t fetchdat) int32_t templ; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FILDs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FILDs %08X:%08X\n", easeg, cpu_state.eaaddr); templ = geteal(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f %08X %i\n", (double)templ, templ, templ); + fpu_log(" %f %08X %i\n", (double)templ, templ, templ); x87_push((double)templ); CLOCK_CYCLES(9); return 0; @@ -242,7 +242,7 @@ static int opFISTil_a16(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FISTs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTs %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = x87_fround(ST(0)); /* if (temp64 > 2147483647 || temp64 < -2147483647) fatal("FISTl out of range! %i\n", temp64);*/ @@ -255,7 +255,7 @@ static int opFISTil_a32(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FISTs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTs %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = x87_fround(ST(0)); /* if (temp64 > 2147483647 || temp64 < -2147483647) fatal("FISTl out of range! %i\n", temp64);*/ @@ -269,7 +269,7 @@ static int opFISTPil_a16(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FISTs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTs %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = x87_fround(ST(0)); /* if (temp64 > 2147483647 || temp64 < -2147483647) fatal("FISTl out of range! %i\n", temp64);*/ @@ -283,7 +283,7 @@ static int opFISTPil_a32(uint32_t fetchdat) int64_t temp64; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FISTs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FISTs %08X:%08X\n", easeg, cpu_state.eaaddr); temp64 = x87_fround(ST(0)); /* if (temp64 > 2147483647 || temp64 < -2147483647) fatal("FISTl out of range! %i\n", temp64);*/ @@ -298,9 +298,9 @@ static int opFLDe_a16(uint32_t fetchdat) double t; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FLDe %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDe %08X:%08X\n", easeg, cpu_state.eaaddr); t=x87_ld80(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f\n", t); + fpu_log(" %f\n", t); x87_push(t); CLOCK_CYCLES(6); return 0; @@ -310,9 +310,9 @@ static int opFLDe_a32(uint32_t fetchdat) double t; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FLDe %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDe %08X:%08X\n", easeg, cpu_state.eaaddr); t=x87_ld80(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f\n", t); + fpu_log(" %f\n", t); x87_push(t); CLOCK_CYCLES(6); return 0; @@ -322,7 +322,7 @@ static int opFSTPe_a16(uint32_t fetchdat) { FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FSTPe %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTPe %08X:%08X\n", easeg, cpu_state.eaaddr); x87_st80(ST(0)); if (cpu_state.abrt) return 1; x87_pop(); CLOCK_CYCLES(6); @@ -332,7 +332,7 @@ static int opFSTPe_a32(uint32_t fetchdat) { FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FSTPe %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTPe %08X:%08X\n", easeg, cpu_state.eaaddr); x87_st80(ST(0)); if (cpu_state.abrt) return 1; x87_pop(); CLOCK_CYCLES(6); @@ -344,9 +344,9 @@ static int opFLDd_a16(uint32_t fetchdat) x87_td t; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FLDd %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDd %08X:%08X\n", easeg, cpu_state.eaaddr); t.i = geteaq(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f\n", t.d); + fpu_log(" %f\n", t.d); x87_push(t.d); CLOCK_CYCLES(3); return 0; @@ -356,9 +356,9 @@ static int opFLDd_a32(uint32_t fetchdat) x87_td t; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FLDd %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDd %08X:%08X\n", easeg, cpu_state.eaaddr); t.i = geteaq(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f\n", t.d); + fpu_log(" %f\n", t.d); x87_push(t.d); CLOCK_CYCLES(3); return 0; @@ -369,7 +369,7 @@ static int opFSTd_a16(uint32_t fetchdat) x87_td t; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FSTd %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTd %08X:%08X\n", easeg, cpu_state.eaaddr); t.d = ST(0); seteaq(t.i); CLOCK_CYCLES(8); @@ -380,7 +380,7 @@ static int opFSTd_a32(uint32_t fetchdat) x87_td t; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FSTd %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTd %08X:%08X\n", easeg, cpu_state.eaaddr); t.d = ST(0); seteaq(t.i); CLOCK_CYCLES(8); @@ -393,7 +393,7 @@ static int opFSTPd_a16(uint32_t fetchdat) FP_ENTER(); fetch_ea_16(fetchdat); CHECK_WRITE(cpu_state.ea_seg, cpu_state.eaaddr, cpu_state.eaaddr + 7); - if (fplog) pclog("FSTd %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTd %08X:%08X\n", easeg, cpu_state.eaaddr); t.d = ST(0); seteaq(t.i); if (cpu_state.abrt) return 1; x87_pop(); @@ -406,7 +406,7 @@ static int opFSTPd_a32(uint32_t fetchdat) FP_ENTER(); fetch_ea_32(fetchdat); CHECK_WRITE(cpu_state.ea_seg, cpu_state.eaaddr, cpu_state.eaaddr + 7); - if (fplog) pclog("FSTd %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTd %08X:%08X\n", easeg, cpu_state.eaaddr); t.d = ST(0); seteaq(t.i); if (cpu_state.abrt) return 1; x87_pop(); @@ -419,9 +419,9 @@ static int opFLDs_a16(uint32_t fetchdat) x87_ts ts; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FLDs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDs %08X:%08X\n", easeg, cpu_state.eaaddr); ts.i = geteal(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f\n", ts.s); + fpu_log(" %f\n", ts.s); x87_push((double)ts.s); CLOCK_CYCLES(3); return 0; @@ -431,9 +431,9 @@ static int opFLDs_a32(uint32_t fetchdat) x87_ts ts; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FLDs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDs %08X:%08X\n", easeg, cpu_state.eaaddr); ts.i = geteal(); if (cpu_state.abrt) return 1; - if (fplog) pclog(" %f\n", ts.s); + fpu_log(" %f\n", ts.s); x87_push((double)ts.s); CLOCK_CYCLES(3); return 0; @@ -444,7 +444,7 @@ static int opFSTs_a16(uint32_t fetchdat) x87_ts ts; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FSTs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTs %08X:%08X\n", easeg, cpu_state.eaaddr); ts.s = (float)ST(0); seteal(ts.i); CLOCK_CYCLES(7); @@ -455,7 +455,7 @@ static int opFSTs_a32(uint32_t fetchdat) x87_ts ts; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FSTs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTs %08X:%08X\n", easeg, cpu_state.eaaddr); ts.s = (float)ST(0); seteal(ts.i); CLOCK_CYCLES(7); @@ -467,7 +467,7 @@ static int opFSTPs_a16(uint32_t fetchdat) x87_ts ts; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FSTs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTs %08X:%08X\n", easeg, cpu_state.eaaddr); ts.s = (float)ST(0); seteal(ts.i); if (cpu_state.abrt) return 1; x87_pop(); @@ -479,7 +479,7 @@ static int opFSTPs_a32(uint32_t fetchdat) x87_ts ts; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FSTs %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTs %08X:%08X\n", easeg, cpu_state.eaaddr); ts.s = (float)ST(0); seteal(ts.i); if (cpu_state.abrt) return 1; x87_pop(); diff --git a/src/cpu/x87_ops_misc.h b/src/cpu/x87_ops_misc.h index bf4eb3c7f..267b302ba 100644 --- a/src/cpu/x87_ops_misc.h +++ b/src/cpu/x87_ops_misc.h @@ -2,7 +2,7 @@ static int opFSTSW_AX(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FSTSW\n"); + fpu_log("FSTSW\n"); AX = cpu_state.npxs; CLOCK_CYCLES(3); return 0; @@ -48,7 +48,7 @@ static int opFFREE(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FFREE\n"); + fpu_log("FFREE\n"); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] = 3; CLOCK_CYCLES(3); return 0; @@ -58,7 +58,7 @@ static int opFFREEP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FFREE\n"); + fpu_log("FFREE\n"); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] = 3; if (cpu_state.abrt) return 1; x87_pop(); CLOCK_CYCLES(3); @@ -69,7 +69,7 @@ static int opFST(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FST\n"); + fpu_log("FST\n"); ST(fetchdat & 7) = ST(0); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] = cpu_state.tag[cpu_state.TOP & 7]; CLOCK_CYCLES(3); @@ -80,7 +80,7 @@ static int opFSTP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FSTP\n"); + fpu_log("FSTP\n"); ST(fetchdat & 7) = ST(0); cpu_state.tag[(cpu_state.TOP + fetchdat) & 7] = cpu_state.tag[cpu_state.TOP & 7]; x87_pop(); @@ -135,7 +135,7 @@ static int FSTOR() cpu_state.ismmx = 1; CLOCK_CYCLES((cr0 & 1) ? 34 : 44); - if (fplog) pclog("FRSTOR %08X:%08X %i %i %04X\n", easeg, cpu_state.eaaddr, cpu_state.ismmx, cpu_state.TOP, x87_gettag()); + fpu_log("FRSTOR %08X:%08X %i %i %04X\n", easeg, cpu_state.eaaddr, cpu_state.ismmx, cpu_state.TOP, x87_gettag()); return cpu_state.abrt; } static int opFSTOR_a16(uint32_t fetchdat) @@ -158,7 +158,7 @@ static int FSAVE() uint64_t *p; FP_ENTER(); - if (fplog) pclog("FSAVE %08X:%08X %i\n", easeg, cpu_state.eaaddr, cpu_state.ismmx); + fpu_log("FSAVE %08X:%08X %i\n", easeg, cpu_state.eaaddr, cpu_state.ismmx); cpu_state.npxs = (cpu_state.npxs & ~(7 << 11)) | (cpu_state.TOP << 11); switch ((cr0 & 1) | (cpu_state.op32 & 0x100)) @@ -320,7 +320,7 @@ static int opFSTSW_a16(uint32_t fetchdat) { FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FSTSW %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTSW %08X:%08X\n", easeg, cpu_state.eaaddr); seteaw((cpu_state.npxs & 0xC7FF) | (cpu_state.TOP << 11)); CLOCK_CYCLES(3); return cpu_state.abrt; @@ -329,7 +329,7 @@ static int opFSTSW_a32(uint32_t fetchdat) { FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FSTSW %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTSW %08X:%08X\n", easeg, cpu_state.eaaddr); seteaw((cpu_state.npxs & 0xC7FF) | (cpu_state.TOP << 11)); CLOCK_CYCLES(3); return cpu_state.abrt; @@ -343,7 +343,7 @@ static int opFLD(uint32_t fetchdat) FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FLD %f\n", ST(fetchdat & 7)); + fpu_log("FLD %f\n", ST(fetchdat & 7)); old_tag = cpu_state.tag[(cpu_state.TOP + fetchdat) & 7]; old_i64 = cpu_state.MM[(cpu_state.TOP + fetchdat) & 7].q; x87_push(ST(fetchdat&7)); @@ -360,7 +360,7 @@ static int opFXCH(uint32_t fetchdat) uint64_t old_i64; FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FXCH\n"); + fpu_log("FXCH\n"); td = ST(0); ST(0) = ST(fetchdat&7); ST(fetchdat&7) = td; @@ -379,7 +379,7 @@ static int opFCHS(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FCHS\n"); + fpu_log("FCHS\n"); ST(0) = -ST(0); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(6); @@ -390,7 +390,7 @@ static int opFABS(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FABS %f\n", ST(0)); + fpu_log("FABS %f\n", ST(0)); ST(0) = fabs(ST(0)); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(3); @@ -401,7 +401,7 @@ static int opFTST(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FTST\n"); + fpu_log("FTST\n"); cpu_state.npxs &= ~(C0|C2|C3); if (ST(0) == 0.0) cpu_state.npxs |= C3; else if (ST(0) < 0.0) cpu_state.npxs |= C0; @@ -413,7 +413,7 @@ static int opFXAM(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FXAM %i %f\n", cpu_state.tag[cpu_state.TOP&7], ST(0)); + fpu_log("FXAM %i %f\n", cpu_state.tag[cpu_state.TOP&7], ST(0)); cpu_state.npxs &= ~(C0|C1|C2|C3); if (cpu_state.tag[cpu_state.TOP&7] == 3) cpu_state.npxs |= (C0|C3); else if (ST(0) == 0.0) cpu_state.npxs |= C3; @@ -427,7 +427,7 @@ static int opFLD1(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FLD1\n"); + fpu_log("FLD1\n"); x87_push(1.0); CLOCK_CYCLES(4); return 0; @@ -437,7 +437,7 @@ static int opFLDL2T(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FLDL2T\n"); + fpu_log("FLDL2T\n"); x87_push(3.3219280948873623); CLOCK_CYCLES(8); return 0; @@ -447,7 +447,7 @@ static int opFLDL2E(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FLDL2E\n"); + fpu_log("FLDL2E\n"); x87_push(1.4426950408889634); CLOCK_CYCLES(8); return 0; @@ -457,7 +457,7 @@ static int opFLDPI(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FLDPI\n"); + fpu_log("FLDPI\n"); x87_push(3.141592653589793); CLOCK_CYCLES(8); return 0; @@ -467,7 +467,7 @@ static int opFLDEG2(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FLDEG2\n"); + fpu_log("FLDEG2\n"); x87_push(0.3010299956639812); CLOCK_CYCLES(8); return 0; @@ -477,7 +477,7 @@ static int opFLDLN2(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FLDLN2\n"); + fpu_log("FLDLN2\n"); x87_push_u64(0x3fe62e42fefa39f0ull); CLOCK_CYCLES(8); return 0; @@ -487,7 +487,7 @@ static int opFLDZ(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FLDZ\n"); + fpu_log("FLDZ\n"); x87_push(0.0); cpu_state.tag[cpu_state.TOP&7] = 1; CLOCK_CYCLES(4); @@ -498,7 +498,7 @@ static int opF2XM1(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("F2XM1\n"); + fpu_log("F2XM1\n"); ST(0) = pow(2.0, ST(0)) - 1.0; cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(200); @@ -509,7 +509,7 @@ static int opFYL2X(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FYL2X\n"); + fpu_log("FYL2X\n"); ST(1) = ST(1) * (log(ST(0)) / log(2.0)); cpu_state.tag[(cpu_state.TOP + 1) & 7] &= ~TAG_UINT64; x87_pop(); @@ -521,7 +521,7 @@ static int opFYL2XP1(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FYL2XP1\n"); + fpu_log("FYL2XP1\n"); ST(1) = ST(1) * (log1p(ST(0)) / log(2.0)); cpu_state.tag[(cpu_state.TOP + 1) & 7] &= ~TAG_UINT64; x87_pop(); @@ -533,7 +533,7 @@ static int opFPTAN(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FPTAN\n"); + fpu_log("FPTAN\n"); ST(0) = tan(ST(0)); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; x87_push(1.0); @@ -546,7 +546,7 @@ static int opFPATAN(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FPATAN\n"); + fpu_log("FPATAN\n"); ST(1) = atan2(ST(1), ST(0)); cpu_state.tag[(cpu_state.TOP + 1) & 7] &= ~TAG_UINT64; x87_pop(); @@ -558,7 +558,7 @@ static int opFDECSTP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FDECSTP\n"); + fpu_log("FDECSTP\n"); cpu_state.TOP = (cpu_state.TOP - 1) & 7; CLOCK_CYCLES(4); return 0; @@ -568,7 +568,7 @@ static int opFINCSTP(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FDECSTP\n"); + fpu_log("FDECSTP\n"); cpu_state.TOP = (cpu_state.TOP + 1) & 7; CLOCK_CYCLES(4); return 0; @@ -579,11 +579,11 @@ static int opFPREM(uint32_t fetchdat) int64_t temp64; FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FPREM %f %f ", ST(0), ST(1)); + fpu_log("FPREM %f %f ", ST(0), ST(1)); temp64 = (int64_t)(ST(0) / ST(1)); ST(0) = ST(0) - (ST(1) * (double)temp64); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; - if (fplog) pclog("%f\n", ST(0)); + fpu_log("%f\n", ST(0)); cpu_state.npxs &= ~(C0|C1|C2|C3); if (temp64 & 4) cpu_state.npxs|=C0; if (temp64 & 2) cpu_state.npxs|=C3; @@ -596,11 +596,11 @@ static int opFPREM1(uint32_t fetchdat) int64_t temp64; FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FPREM1 %f %f ", ST(0), ST(1)); + fpu_log("FPREM1 %f %f ", ST(0), ST(1)); temp64 = (int64_t)(ST(0) / ST(1)); ST(0) = ST(0) - (ST(1) * (double)temp64); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; - if (fplog) pclog("%f\n", ST(0)); + fpu_log("%f\n", ST(0)); cpu_state.npxs &= ~(C0|C1|C2|C3); if (temp64 & 4) cpu_state.npxs|=C0; if (temp64 & 2) cpu_state.npxs|=C3; @@ -613,7 +613,7 @@ static int opFSQRT(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FSQRT\n"); + fpu_log("FSQRT\n"); ST(0) = sqrt(ST(0)); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; CLOCK_CYCLES(83); @@ -625,7 +625,7 @@ static int opFSINCOS(uint32_t fetchdat) double td; FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FSINCOS\n"); + fpu_log("FSINCOS\n"); td = ST(0); ST(0) = sin(td); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; @@ -639,10 +639,10 @@ static int opFRNDINT(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FRNDINT %g ", ST(0)); + fpu_log("FRNDINT %g ", ST(0)); ST(0) = (double)x87_fround(ST(0)); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; - if (fplog) pclog("%g\n", ST(0)); + fpu_log("%g\n", ST(0)); CLOCK_CYCLES(21); return 0; } @@ -652,7 +652,7 @@ static int opFSCALE(uint32_t fetchdat) int64_t temp64; FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FSCALE\n"); + fpu_log("FSCALE\n"); temp64 = (int64_t)ST(1); ST(0) = ST(0) * pow(2.0, (double)temp64); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; @@ -664,7 +664,7 @@ static int opFSIN(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FSIN\n"); + fpu_log("FSIN\n"); ST(0) = sin(ST(0)); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; cpu_state.npxs &= ~C2; @@ -676,7 +676,7 @@ static int opFCOS(uint32_t fetchdat) { FP_ENTER(); cpu_state.pc++; - if (fplog) pclog("FCOS\n"); + fpu_log("FCOS\n"); ST(0) = cos(ST(0)); cpu_state.tag[cpu_state.TOP] &= ~TAG_UINT64; cpu_state.npxs &= ~C2; @@ -688,7 +688,7 @@ static int opFCOS(uint32_t fetchdat) static int FLDENV() { FP_ENTER(); - if (fplog) pclog("FLDENV %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDENV %08X:%08X\n", easeg, cpu_state.eaaddr); switch ((cr0 & 1) | (cpu_state.op32 & 0x100)) { case 0x000: /*16-bit real mode*/ @@ -732,7 +732,7 @@ static int opFLDCW_a16(uint32_t fetchdat) uint16_t tempw; FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FLDCW %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDCW %08X:%08X\n", easeg, cpu_state.eaaddr); tempw = geteaw(); if (cpu_state.abrt) return 1; cpu_state.npxc = tempw; @@ -745,7 +745,7 @@ static int opFLDCW_a32(uint32_t fetchdat) uint16_t tempw; FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FLDCW %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FLDCW %08X:%08X\n", easeg, cpu_state.eaaddr); tempw = geteaw(); if (cpu_state.abrt) return 1; cpu_state.npxc = tempw; @@ -757,7 +757,7 @@ static int opFLDCW_a32(uint32_t fetchdat) static int FSTENV() { FP_ENTER(); - if (fplog) pclog("FSTENV %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTENV %08X:%08X\n", easeg, cpu_state.eaaddr); switch ((cr0 & 1) | (cpu_state.op32 & 0x100)) { case 0x000: /*16-bit real mode*/ @@ -817,7 +817,7 @@ static int opFSTCW_a16(uint32_t fetchdat) { FP_ENTER(); fetch_ea_16(fetchdat); - if (fplog) pclog("FSTCW %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTCW %08X:%08X\n", easeg, cpu_state.eaaddr); seteaw(cpu_state.npxc); CLOCK_CYCLES(3); return cpu_state.abrt; @@ -826,7 +826,7 @@ static int opFSTCW_a32(uint32_t fetchdat) { FP_ENTER(); fetch_ea_32(fetchdat); - if (fplog) pclog("FSTCW %08X:%08X\n", easeg, cpu_state.eaaddr); + fpu_log("FSTCW %08X:%08X\n", easeg, cpu_state.eaaddr); seteaw(cpu_state.npxc); CLOCK_CYCLES(3); return cpu_state.abrt; @@ -837,7 +837,7 @@ static int opFSTCW_a32(uint32_t fetchdat) { \ FP_ENTER(); \ cpu_state.pc++; \ - if (fplog) pclog("FCMOV %f\n", ST(fetchdat & 7)); \ + fpu_log("FCMOV %f\n", ST(fetchdat & 7)); \ if (cond_ ## condition) \ { \ cpu_state.tag[cpu_state.TOP] = cpu_state.tag[(cpu_state.TOP + fetchdat) & 7]; \ diff --git a/src/device.c b/src/device.c index 32ca8075a..1aed9ef53 100644 --- a/src/device.c +++ b/src/device.c @@ -9,7 +9,7 @@ * Implementation of the generic device interface to handle * all devices attached to the emulator. * - * Version: @(#)device.c 1.0.19 2018/10/10 + * Version: @(#)device.c 1.0.20 2018/10/17 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -69,22 +69,22 @@ static clonedev_t *clones = NULL; #ifdef ENABLE_DEVICE_LOG int device_do_log = ENABLE_DEVICE_LOG; -#endif static void -device_log(const char *format, ...) +device_log(const char *fmt, ...) { -#ifdef ENABLE_DEVICE_LOG va_list ap; if (device_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define device_log(fmt, ...) +#endif /* Initialize the module for use. */ void @@ -154,6 +154,7 @@ device_add(const device_t *d) { void *priv = NULL; int c; + device_t *old; for (c = 0; c < 256; c++) { if (devices[c] == (device_t *)d) { @@ -165,6 +166,7 @@ device_add(const device_t *d) if (c >= DEVICE_MAX) fatal("DEVICE: too many devices\n"); + old = device_current; device_current = (device_t *)d; devices[c] = (device_t *)d; @@ -184,6 +186,7 @@ device_add(const device_t *d) } device_priv[c] = priv; + device_current = old; return(priv); } @@ -205,8 +208,6 @@ device_add_ex(const device_t *d, void *priv) if (c >= DEVICE_MAX) fatal("device_add: too many devices\n"); - device_current = (device_t *)d; - devices[c] = (device_t *)d; device_priv[c] = priv; } diff --git a/src/disk/hdc.c b/src/disk/hdc.c index 37d036e99..e409778a7 100644 --- a/src/disk/hdc.c +++ b/src/disk/hdc.c @@ -8,7 +8,7 @@ * * Common code to handle all sorts of disk controllers. * - * Version: @(#)hdc.c 1.0.15 2018/04/29 + * Version: @(#)hdc.c 1.0.16 2018/10/17 * * Authors: Miran Grca, * Fred N. van Kempen, @@ -36,13 +36,11 @@ int hdc_current; #ifdef ENABLE_HDC_LOG int hdc_do_log = ENABLE_HDC_LOG; -#endif static void hdc_log(const char *fmt, ...) { -#ifdef ENABLE_HDC_LOG va_list ap; if (hdc_do_log) { @@ -50,8 +48,10 @@ hdc_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define hdc_log(fmt, ...) +#endif static void * diff --git a/src/disk/hdc_esdi_at.c b/src/disk/hdc_esdi_at.c index 1a4539388..2426e2a4c 100644 --- a/src/disk/hdc_esdi_at.c +++ b/src/disk/hdc_esdi_at.c @@ -8,7 +8,7 @@ * * Driver for the ESDI controller (WD1007-vse1) for PC/AT. * - * Version: @(#)hdc_esdi_at.c 1.0.13 2018/05/02 + * Version: @(#)hdc_esdi_at.c 1.0.14 2018/10/17 * * Authors: Sarah Walker, * Miran Grca, @@ -108,13 +108,11 @@ typedef struct { #ifdef ENABLE_ESDI_AT_LOG int esdi_at_do_log = ENABLE_ESDI_AT_LOG; -#endif static void esdi_at_log(const char *fmt, ...) { -#ifdef ENABLE_ESDI_AT_LOG va_list ap; if (esdi_at_do_log) { @@ -122,8 +120,10 @@ esdi_at_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define esdi_at_log(fmt, ...) +#endif static inline void diff --git a/src/disk/hdc_esdi_mca.c b/src/disk/hdc_esdi_mca.c index f92301415..f16c69ce6 100644 --- a/src/disk/hdc_esdi_mca.c +++ b/src/disk/hdc_esdi_mca.c @@ -52,7 +52,7 @@ * however, are auto-configured by the system software as * shown above. * - * Version: @(#)hdc_esdi_mca.c 1.0.13 2018/04/29 + * Version: @(#)hdc_esdi_mca.c 1.0.14 2018/10/17 * * Authors: Sarah Walker, * Fred N. van Kempen, @@ -196,13 +196,11 @@ typedef struct esdi { #ifdef ENABLE_ESDI_MCA_LOG int esdi_mca_do_log = ENABLE_ESDI_MCA_LOG; -#endif static void esdi_mca_log(const char *fmt, ...) { -#ifdef ENABLE_ESDI_MCA_LOG va_list ap; if (esdi_mca_do_log) { @@ -210,8 +208,10 @@ esdi_mca_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define esdi_mca_log(fmt, ...) +#endif static __inline void diff --git a/src/disk/hdc_mfm_at.c b/src/disk/hdc_mfm_at.c index de2bf728e..8de6a6210 100644 --- a/src/disk/hdc_mfm_at.c +++ b/src/disk/hdc_mfm_at.c @@ -12,7 +12,7 @@ * based design. Most cards were WD1003-WA2 or -WAH, where the * -WA2 cards had a floppy controller as well (to save space.) * - * Version: @(#)hdc_mfm_at.c 1.0.17 2018/05/02 + * Version: @(#)hdc_mfm_at.c 1.0.18 2018/10/17 * * Authors: Sarah Walker, * Fred N. van Kempen, @@ -114,13 +114,11 @@ typedef struct { #ifdef ENABLE_MFM_AT_LOG int mfm_at_do_log = ENABLE_MFM_AT_LOG; -#endif static void mfm_at_log(const char *fmt, ...) { -#ifdef ENABLE_MFM_AT_LOG va_list ap; if (mfm_at_do_log) { @@ -128,8 +126,10 @@ mfm_at_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define mfm_at_log(fmt, ...) +#endif static inline void diff --git a/src/disk/hdc_mfm_xt.c b/src/disk/hdc_mfm_xt.c index 6d86fe070..d1adb1005 100644 --- a/src/disk/hdc_mfm_xt.c +++ b/src/disk/hdc_mfm_xt.c @@ -41,7 +41,7 @@ * Since all controllers (including the ones made by DTC) use * (mostly) the same API, we keep them all in this module. * - * Version: @(#)hdc_mfm_xt.c 1.0.17 2018/04/29 + * Version: @(#)hdc_mfm_xt.c 1.0.18 2018/10/17 * * Authors: Sarah Walker, * Fred N. van Kempen, @@ -157,13 +157,11 @@ typedef struct { #ifdef ENABLE_MFM_XT_LOG int mfm_xt_do_log = ENABLE_MFM_XT_LOG; -#endif static void mfm_xt_log(const char *fmt, ...) { -#ifdef ENABLE_MFM_XT_LOG va_list ap; if (mfm_xt_do_log) { @@ -171,8 +169,10 @@ mfm_xt_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define mfm_xt_log(fmt, ...) +#endif static uint8_t diff --git a/src/disk/hdc_xta.c b/src/disk/hdc_xta.c index 00528b096..a99d987b9 100644 --- a/src/disk/hdc_xta.c +++ b/src/disk/hdc_xta.c @@ -46,7 +46,7 @@ * * NOTE: The XTA interface is 0-based for sector numbers !! * - * Version: @(#)hdc_ide_xta.c 1.0.8 2018/04/29 + * Version: @(#)hdc_ide_xta.c 1.0.9 2018/10/17 * * Author: Fred N. van Kempen, * @@ -281,13 +281,11 @@ typedef struct { #ifdef ENABLE_XTA_LOG int xta_do_log = ENABLE_XTA_LOG; -#endif static void xta_log(const char *fmt, ...) { -#ifdef ENABLE_XTA_LOG va_list ap; if (xta_do_log) { @@ -295,8 +293,10 @@ xta_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define xta_log(fmt, ...) +#endif static void diff --git a/src/disk/hdd_image.c b/src/disk/hdd_image.c index 198aba5c9..e183f2dc6 100644 --- a/src/disk/hdd_image.c +++ b/src/disk/hdd_image.c @@ -8,7 +8,7 @@ * * Handling of hard disk image files. * - * Version: @(#)hdd_image.c 1.0.18 2018/10/08 + * Version: @(#)hdd_image.c 1.0.19 2018/10/17 * * Authors: Miran Grca, * Fred N. van Kempen, @@ -72,13 +72,11 @@ static char *empty_sector_1mb; #ifdef ENABLE_HDD_IMAGE_LOG int hdd_image_do_log = ENABLE_HDD_IMAGE_LOG; -#endif static void hdd_image_log(const char *fmt, ...) { -#ifdef ENABLE_HDD_IMAGE_LOG va_list ap; if (hdd_image_do_log) { @@ -86,8 +84,10 @@ hdd_image_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define hdd_image_log(fmt, ...) +#endif int diff --git a/src/disk/zip.c b/src/disk/zip.c index bf7a173e8..6b2ac5d20 100644 --- a/src/disk/zip.c +++ b/src/disk/zip.c @@ -9,7 +9,7 @@ * Implementation of the Iomega ZIP drive with SCSI(-like) * commands, for both ATAPI and SCSI usage. * - * Version: @(#)zip.c 1.0.26 2018/10/09 + * Version: @(#)zip.c 1.0.27 2018/10/17 * * Author: Miran Grca, * @@ -458,22 +458,22 @@ static void zip_callback(void *p); #ifdef ENABLE_ZIP_LOG int zip_do_log = ENABLE_ZIP_LOG; -#endif static void -zip_log(const char *format, ...) +zip_log(const char *fmt, ...) { -#ifdef ENABLE_ZIP_LOG va_list ap; if (zip_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define zip_log(fmt, ...) +#endif int @@ -2347,7 +2347,9 @@ zip_irq_raise(zip_t *dev) static int zip_read_from_dma(zip_t *dev) { +#ifdef ENABLE_ZIP_LOG int32_t *BufLen = &scsi_devices[dev->drv->scsi_device_id].buffer_length; +#endif int ret = 0; if (dev->drv->bus_type == ZIP_BUS_SCSI) @@ -2417,7 +2419,9 @@ zip_write_to_scsi_dma(uint8_t scsi_id) static int zip_write_to_dma(zip_t *dev) { +#ifdef ENABLE_ZIP_LOG int32_t *BufLen = &scsi_devices[dev->drv->scsi_device_id].buffer_length; +#endif int ret = 0; if (dev->drv->bus_type == ZIP_BUS_SCSI) { diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 28818c20d..32b0eda7b 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -9,7 +9,7 @@ * Implementation of the NEC uPD-765 and compatible floppy disk * controller. * - * Version: @(#)fdc.c 1.0.11 2018/09/22 + * Version: @(#)fdc.c 1.0.12 2018/10/18 * * Authors: Miran Grca, * Sarah Walker, @@ -111,13 +111,11 @@ int floppyrate[4]; #ifdef ENABLE_FDC_LOG int fdc_do_log = ENABLE_FDC_LOG; -#endif static void fdc_log(const char *fmt, ...) { -#ifdef ENABLE_FDC_LOG va_list ap; if (fdc_do_log) @@ -126,8 +124,10 @@ fdc_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define fdc_log(fmt, ...) +#endif uint8_t diff --git a/src/floppy/fdd.c b/src/floppy/fdd.c index 4d8846662..70305494b 100644 --- a/src/floppy/fdd.c +++ b/src/floppy/fdd.c @@ -8,7 +8,7 @@ * * Implementation of the floppy drive emulation. * - * Version: @(#)fdd.c 1.0.11 2018/10/02 + * Version: @(#)fdd.c 1.0.12 2018/10/18 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -227,13 +227,11 @@ static const struct #ifdef ENABLE_FDD_LOG int fdd_do_log = ENABLE_FDD_LOG; -#endif static void fdd_log(const char *fmt, ...) { -#ifdef ENABLE_FDD_LOG va_list ap; if (fdd_do_log) @@ -242,8 +240,10 @@ fdd_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define fdd_log(fmt, ...) +#endif char *fdd_getname(int type) diff --git a/src/floppy/fdd_86f.c b/src/floppy/fdd_86f.c index 4822cc912..2c2295443 100644 --- a/src/floppy/fdd_86f.c +++ b/src/floppy/fdd_86f.c @@ -10,7 +10,7 @@ * data in the form of FM/MFM-encoded transitions) which also * forms the core of the emulator's floppy disk emulation. * - * Version: @(#)fdd_86f.c 1.0.15 2018/10/02 + * Version: @(#)fdd_86f.c 1.0.16 2018/10/17 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -239,11 +239,6 @@ typedef struct { } d86f_t; -#ifdef ENABLE_D86F_LOG -int d86f_do_log = ENABLE_D86F_LOG; -#endif - - static const uint8_t encoded_fm[64] = { 0xaa, 0xab, 0xae, 0xaf, 0xba, 0xbb, 0xbe, 0xbf, 0xea, 0xeb, 0xee, 0xef, 0xfa, 0xfb, 0xfe, 0xff, @@ -280,19 +275,24 @@ void d86f_poll_write_data(int drive, int side, uint16_t pos, uint8_t data); int d86f_format_conditions(int drive); -static void -d86f_log(const char *format, ...) -{ #ifdef ENABLE_D86F_LOG +int d86f_do_log = ENABLE_D86F_LOG; + + +static void +d86f_log(const char *fmt, ...) +{ va_list ap; if (d86f_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define d86f_log(fmt, ...) +#endif static void diff --git a/src/floppy/fdd_fdi.c b/src/floppy/fdd_fdi.c index a8c7a0dce..df3cdbe21 100644 --- a/src/floppy/fdd_fdi.c +++ b/src/floppy/fdd_fdi.c @@ -9,7 +9,7 @@ * Implementation of the FDI floppy stream image format * interface to the FDI2RAW module. * - * Version: @(#)fdd_fdi.c 1.0.3 2018/04/29 + * Version: @(#)fdd_fdi.c 1.0.4 2018/10/18 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -75,13 +75,11 @@ static fdc_t *fdi_fdc; #ifdef ENABLE_FDI_LOG int fdi_do_log = ENABLE_FDI_LOG; -#endif static void fdi_log(const char *fmt, ...) { -#ifdef ENABLE_FDI_LOG va_list ap; if (fdi_do_log) @@ -90,8 +88,10 @@ fdi_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define fdi_log(fmt, ...) +#endif static uint16_t diff --git a/src/floppy/fdd_imd.c b/src/floppy/fdd_imd.c index 9e690a479..81fdd5783 100644 --- a/src/floppy/fdd_imd.c +++ b/src/floppy/fdd_imd.c @@ -8,7 +8,7 @@ * * Implementation of the IMD floppy image format. * - * Version: @(#)fdd_imd.c 1.0.7 2018/04/29 + * Version: @(#)fdd_imd.c 1.0.8 2018/10/18 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -86,13 +86,11 @@ static fdc_t *imd_fdc; #ifdef ENABLE_IMD_LOG int imd_do_log = ENABLE_IMD_LOG; -#endif static void imd_log(const char *fmt, ...) { -#ifdef ENABLE_IMD_LOG va_list ap; if (imd_do_log) @@ -101,8 +99,10 @@ imd_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define imd_log(fmt, ...) +#endif static uint32_t diff --git a/src/floppy/fdd_img.c b/src/floppy/fdd_img.c index 09bd27655..4e9e56f16 100644 --- a/src/floppy/fdd_img.c +++ b/src/floppy/fdd_img.c @@ -13,7 +13,7 @@ * re-merged with the other files. Much of it is generic to * all formats. * - * Version: @(#)fdd_img.c 1.0.8 2018/05/09 + * Version: @(#)fdd_img.c 1.0.9 2018/10/18 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -301,13 +301,11 @@ const int gap3_sizes[5][8][48] = { { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, #ifdef ENABLE_IMG_LOG int img_do_log = ENABLE_IMG_LOG; -#endif static void img_log(const char *fmt, ...) { -#ifdef ENABLE_IMG_LOG va_list ap; if (img_do_log) @@ -316,8 +314,10 @@ img_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define img_log(fmt, ...) +#endif /* Generic */ diff --git a/src/floppy/fdd_json.c b/src/floppy/fdd_json.c index c56bbd80d..e806b068d 100644 --- a/src/floppy/fdd_json.c +++ b/src/floppy/fdd_json.c @@ -8,7 +8,7 @@ * * Implementation of the PCjs JSON floppy image format. * - * Version: @(#)fdd_json.c 1.0.5 2018/04/29 + * Version: @(#)fdd_json.c 1.0.6 2018/10/18 * * Author: Fred N. van Kempen, * @@ -108,13 +108,11 @@ static json_t *images[FDD_NUM]; #ifdef ENABLE_JSON_LOG int json_do_log = ENABLE_JSON_LOG; -#endif static void json_log(const char *fmt, ...) { -#ifdef ENABLE_JSON_LOG va_list ap; if (json_do_log) @@ -123,8 +121,10 @@ json_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define json_log(fmt, ...) +#endif static void diff --git a/src/floppy/fdd_td0.c b/src/floppy/fdd_td0.c index f956e9421..33d153dfb 100644 --- a/src/floppy/fdd_td0.c +++ b/src/floppy/fdd_td0.c @@ -8,7 +8,7 @@ * * Implementation of the Teledisk floppy image format. * - * Version: @(#)fdd_td0.c 1.0.6 2018/04/29 + * Version: @(#)fdd_td0.c 1.0.7 2018/10/18 * * Authors: Fred N. van Kempen, * Miran Grca, @@ -222,13 +222,11 @@ static td0_t *td0[FDD_NUM]; #ifdef ENABLE_TD0_LOG int td0_do_log = ENABLE_TD0_LOG; -#endif static void td0_log(const char *fmt, ...) { -#ifdef ENABLE_TD0_LOG va_list ap; if (td0_do_log) @@ -237,8 +235,10 @@ td0_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define td0_log(fmt, ...) +#endif static void diff --git a/src/floppy/fdi2raw.c b/src/floppy/fdi2raw.c index dee8dbfdf..ffb4c68d5 100644 --- a/src/floppy/fdi2raw.c +++ b/src/floppy/fdi2raw.c @@ -12,7 +12,7 @@ * addition of get_last_head and C++ callability by Thomas * Harte. * - * Version: @(#)fdi2raw.c 1.0.3 2018/04/29 + * Version: @(#)fdi2raw.c 1.0.4 2018/10/18 * * Authors: Toni Wilen, * and Vincent Joguin, @@ -66,13 +66,11 @@ #ifdef ENABLE_FDI2RAW_LOG int fdi2raw_do_log = ENABLE_FDI2RAW_LOG; -#endif static void fdi2raw_log(const char *fmt, ...) { -#ifdef ENABLE_FDI2RAW_LOG va_list ap; if (fdi2raw_do_log) @@ -81,10 +79,13 @@ fdi2raw_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define fdi2raw_log(fmt, ...) +#endif +#ifdef ENABLE_FDI2RAW_LOG #ifdef DEBUG static char *datalog(uae_u8 *src, int len) { @@ -110,6 +111,8 @@ static char *datalog(uae_u8 *src, int len) { return ""; } #endif static int fdi_allocated; +#endif + #ifdef DEBUG static void fdi_free (void *p) { @@ -1329,8 +1332,10 @@ static void fix_mfm_sync (FDI *fdi) static int handle_sectors_described_track (FDI *fdi) { +#ifdef ENABLE_FDI2RAW_LOG int oldout; uae_u8 *start_src = fdi->track_src ; +#endif fdi->encoding_type = *fdi->track_src++; fdi->index_offset = get_u32(fdi->track_src); fdi->index_offset >>= 8; @@ -1340,10 +1345,14 @@ static int handle_sectors_described_track (FDI *fdi) do { fdi->track_type = *fdi->track_src++; fdi2raw_log("%06.6X %06.6X %02.2X:",fdi->track_src - start_src + 0x200, fdi->out/8, fdi->track_type); +#ifdef ENABLE_FDI2RAW_LOG oldout = fdi->out; +#endif decode_sectors_described_track[fdi->track_type](fdi); fdi2raw_log(" %d\n", fdi->out - oldout); +#ifdef ENABLE_FDI2RAW_LOG oldout = fdi->out; +#endif if (fdi->out < 0 || fdi->err) { fdi2raw_log("\nin %d bytes, out %d bits\n", fdi->track_src - fdi->track_src_buffer, fdi->out); return -1; diff --git a/src/io.c b/src/io.c index 8a8b5b6d2..5747d3975 100644 --- a/src/io.c +++ b/src/io.c @@ -8,7 +8,7 @@ * * Implement I/O ports and their operations. * - * Version: @(#)io.c 1.0.4 2018/04/29 + * Version: @(#)io.c 1.0.5 2018/10/17 * * Authors: Sarah Walker, * Miran Grca, @@ -52,23 +52,21 @@ io_t *io[NPORTS], *io_last[NPORTS]; #ifdef ENABLE_IO_LOG int io_do_log = ENABLE_IO_LOG; -#endif -#ifdef ENABLE_IO_LOG static void -io_log(const char *format, ...) +io_log(const char *fmt, ...) { -#ifdef ENABLE_IO_LOG va_list ap; if (io_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define io_log(fmt, ...) #endif diff --git a/src/isamem.c b/src/isamem.c index 50a4c1e49..c0d743511 100644 --- a/src/isamem.c +++ b/src/isamem.c @@ -32,7 +32,7 @@ * TODO: The EV159 is supposed to support 16b EMS transfers, but the * EMM.sys driver for it doesn't seem to want to do that.. * - * Version: @(#)isamem.c 1.0.6 2018/10/02 + * Version: @(#)isamem.c 1.0.7 2018/10/17 * * Author: Fred N. van Kempen, * @@ -133,23 +133,22 @@ typedef struct { #ifdef ENABLE_ISAMEM_LOG int isamem_do_log = ENABLE_ISAMEM_LOG; -#endif static void isamem_log(const char *fmt, ...) { -#ifdef ENABLE_ISAMEM_LOG - va_list ap; + va_list ap; - if (isamem_do_log) - { - va_start(ap, fmt); - pclog_ex(fmt, ap); - va_end(ap); - } -#endif + if (isamem_do_log) { + va_start(ap, fmt); + pclog_ex(fmt, ap); + va_end(ap); + } } +#else +#define isamem_log(fmt, ...) +#endif /* Local variables. */ diff --git a/src/isartc.c b/src/isartc.c index f72743d42..8332fa91e 100644 --- a/src/isartc.c +++ b/src/isartc.c @@ -28,7 +28,7 @@ * NOTE: The IRQ functionalities have been implemented, but not yet * tested, as I need to write test software for them first :) * - * Version: @(#)isartc.c 1.0.6 2018/10/07 + * Version: @(#)isartc.c 1.0.7 2018/10/17 * * Author: Fred N. van Kempen, * @@ -151,23 +151,22 @@ typedef struct { #ifdef ENABLE_ISARTC_LOG int isartc_do_log = ENABLE_ISARTC_LOG; -#endif static void isartc_log(const char *fmt, ...) { -#ifdef ENABLE_ISARTC_LOG - va_list ap; + va_list ap; - if (isartc_do_log) - { - va_start(ap, fmt); - pclog_ex(fmt, ap); - va_end(ap); - } -#endif + if (isartc_do_log) { + va_start(ap, fmt); + pclog_ex(fmt, ap); + va_end(ap); + } } +#else +#define isartc_log(fmt, ...) +#endif /* Check if the current time matches a set alarm time. */ diff --git a/src/keyboard_at.c b/src/keyboard_at.c index 9c16616d1..f9163bc5b 100644 --- a/src/keyboard_at.c +++ b/src/keyboard_at.c @@ -8,7 +8,7 @@ * * Intel 8042 (AT keyboard controller) emulation. * - * Version: @(#)keyboard_at.c 1.0.41 2018/09/21 + * Version: @(#)keyboard_at.c 1.0.42 2018/10/17 * * Authors: Sarah Walker, * Miran Grca, @@ -581,15 +581,12 @@ static const scancode scancode_set3[512] = { #ifdef ENABLE_KEYBOARD_AT_LOG -#define ENABLE_KEYBOARD_LOG int keyboard_at_do_log = ENABLE_KEYBOARD_AT_LOG; -#endif static void kbd_log(const char *fmt, ...) { -#ifdef ENABLE_KEYBOARD_AT_LOG va_list ap; if (keyboard_at_do_log) { @@ -597,8 +594,10 @@ kbd_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define kbd_log(fmt, ...) +#endif static void kbd_setmap(atkbd_t *kbd) diff --git a/src/mem.c b/src/mem.c index c412a8499..2312641f6 100644 --- a/src/mem.c +++ b/src/mem.c @@ -154,22 +154,22 @@ static int port_92_reg = 0; #ifdef ENABLE_MEM_LOG int mem_do_log = ENABLE_MEM_LOG; -#endif static void -mem_log(const char *format, ...) +mem_log(const char *fmt, ...) { -#ifdef ENABLE_MEM_LOG va_list ap; if (mem_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define mem_log(fmt, ...) +#endif void diff --git a/src/mouse.c b/src/mouse.c index 64364b81e..b98ebecea 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -11,7 +11,7 @@ * TODO: Add the Genius bus- and serial mouse. * Remove the '3-button' flag from mouse types. * - * Version: @(#)mouse.c 1.0.27 2018/04/29 + * Version: @(#)mouse.c 1.0.28 2018/10/17 * * Authors: Miran Grca, * Fred N. van Kempen, @@ -82,22 +82,22 @@ static int (*mouse_dev_poll)(); #ifdef ENABLE_MOUSE_LOG int mouse_do_log = ENABLE_MOUSE_LOG; -#endif static void -mouse_log(const char *format, ...) +mouse_log(const char *fmt, ...) { -#ifdef ENABLE_MOUSE_LOG va_list ap; if (mouse_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define mouse_log(fmt, ...) +#endif /* Initialize the mouse module. */ diff --git a/src/mouse_bus.c b/src/mouse_bus.c index c78846279..e5551ef26 100644 --- a/src/mouse_bus.c +++ b/src/mouse_bus.c @@ -40,6 +40,8 @@ * Logitech Mouse.exe 6.50 * Microsoft Mouse.com 2.00 * Microsoft Mouse.sys 3.00 + * Microsoft Mouse.com 7.04 + * Microsoft Mouse.com 8.21J * Microsoft Windows 1.00 DR5 * Microsoft Windows 3.10.026 * Microsoft Windows NT 3.1 @@ -51,7 +53,7 @@ * Microsoft Windows NT 3.1 * Microsoft Windows 98 SE * - * Version: @(#)mouse_bus.c 1.0.2 2018/10/09 + * Version: @(#)mouse_bus.c 1.0.3 2018/10/17 * * Authors: Miran Grca, * Fred N. van Kempen, @@ -144,22 +146,22 @@ typedef struct mouse { #ifdef ENABLE_MOUSE_BUS_LOG int bm_do_log = ENABLE_MOUSE_BUS_LOG; -#endif static void -bm_log(const char *format, ...) +bm_log(const char *fmt, ...) { -#ifdef ENABLE_MOUSE_BUS_LOG va_list ap; if (bm_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define bm_log(fmt, ...) +#endif /* Handle a READ operation from one of our registers. */ diff --git a/src/mouse_ps2.c b/src/mouse_ps2.c index 42bdf7194..cb7653664 100644 --- a/src/mouse_ps2.c +++ b/src/mouse_ps2.c @@ -8,7 +8,7 @@ * * Implementation of PS/2 series Mouse devices. * - * Version: @(#)mouse_ps2.c 1.0.11 2018/10/02 + * Version: @(#)mouse_ps2.c 1.0.12 2018/10/17 * * Authors: Fred N. van Kempen, */ @@ -60,22 +60,22 @@ int mouse_scan = 0; #ifdef ENABLE_MOUSE_PS2_LOG int mouse_ps2_do_log = ENABLE_MOUSE_PS2_LOG; -#endif static void -mouse_ps2_log(const char *format, ...) +mouse_ps2_log(const char *fmt, ...) { -#ifdef ENABLE_MOUSE_PS2_LOG va_list ap; if (mouse_ps2_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define mouse_ps2_log(fmt, ...) +#endif void diff --git a/src/mouse_serial.c b/src/mouse_serial.c index f58b834cf..77bba50e3 100644 --- a/src/mouse_serial.c +++ b/src/mouse_serial.c @@ -10,7 +10,7 @@ * * TODO: Add the Genius Serial Mouse. * - * Version: @(#)mouse_serial.c 1.0.24 2018/10/02 + * Version: @(#)mouse_serial.c 1.0.25 2018/10/17 * * Author: Fred N. van Kempen, */ @@ -53,22 +53,22 @@ typedef struct { #ifdef ENABLE_MOUSE_SERIAL_LOG int mouse_serial_do_log = ENABLE_MOUSE_SERIAL_LOG; -#endif static void -mouse_serial_log(const char *format, ...) +mouse_serial_log(const char *fmt, ...) { -#ifdef ENABLE_MOUSE_SERIAL_LOG va_list ap; if (mouse_serial_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define mouse_serial_log(fmt, ...) +#endif /* Callback from serial driver: RTS was toggled. */ diff --git a/src/nvr.c b/src/nvr.c index 42a9affe1..e71faa60a 100644 --- a/src/nvr.c +++ b/src/nvr.c @@ -8,7 +8,7 @@ * * Implement a generic NVRAM/CMOS/RTC device. * - * Version: @(#)nvr.c 1.0.14 2018/10/02 + * Version: @(#)nvr.c 1.0.15 2018/10/17 * * Authors: Fred N. van Kempen, , * David Hrdlička, @@ -72,22 +72,22 @@ static nvr_t *saved_nvr = NULL; #ifdef ENABLE_NVR_LOG int nvr_do_log = ENABLE_NVR_LOG; -#endif static void -nvr_log(const char *format, ...) +nvr_log(const char *fmt, ...) { -#ifdef ENABLE_NVR_LOG va_list ap; if (nvr_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define nvr_log(fmt, ...) +#endif /* Determine whether or not the year is leap. */ diff --git a/src/pc.c b/src/pc.c index 3a1ce5434..e02552845 100644 --- a/src/pc.c +++ b/src/pc.c @@ -8,7 +8,7 @@ * * Main emulator module where most things are controlled. * - * Version: @(#)pc.c 1.0.84 2018/10/17 + * Version: @(#)pc.c 1.0.85 2018/10/17 * * Authors: Sarah Walker, * Miran Grca, @@ -275,22 +275,22 @@ fatal(const char *fmt, ...) #ifdef ENABLE_PC_LOG int pc_do_log = ENABLE_PC_LOG; -#endif static void -pc_log(const char *format, ...) +pc_log(const char *fmt, ...) { -#ifdef ENABLE_PC_LOG va_list ap; if (pc_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define pc_log(fmt, ...) +#endif /* diff --git a/src/pci.c b/src/pci.c index 223dd2107..18a79dec7 100644 --- a/src/pci.c +++ b/src/pci.c @@ -51,23 +51,22 @@ static int trc_reg = 0; #ifdef ENABLE_PCI_LOG int pci_do_log = ENABLE_PCI_LOG; -#endif static void -pcilog(const char *fmt, ...) +pci_log(const char *fmt, ...) { -#ifdef ENABLE_PCI_LOG - va_list ap; + va_list ap; - if (pci_do_log) - { - va_start(ap, fmt); - pclog_ex(fmt, ap); - va_end(ap); - } -#endif + if (pci_do_log) { + va_start(ap, fmt); + pclog_ex(fmt, ap); + va_end(ap); + } } +#else +#define pci_log(fmt, ...) +#endif static void pci_cf8_write(uint16_t port, uint32_t val, void *p) @@ -101,7 +100,7 @@ static void pci_write(uint16_t port, uint8_t val, void *priv) { if (pci_cards[slot].write) { - /* pcilog("Reading PCI card on slot %02X (pci_cards[%i])...\n", pci_card, slot); */ + /* pci_log("Reading PCI card on slot %02X (pci_cards[%i])...\n", pci_card, slot); */ pci_cards[slot].write(pci_func, pci_index | (port & 3), val, pci_cards[slot].priv); } } @@ -140,7 +139,7 @@ static uint8_t pci_read(uint16_t port, void *priv) static void elcr_write(uint16_t port, uint8_t val, void *priv) { - /* pcilog("ELCR%i: WRITE %02X\n", port & 1, val); */ + /* pci_log("ELCR%i: WRITE %02X\n", port & 1, val); */ if (port & 1) { val &= 0xDE; @@ -151,12 +150,12 @@ static void elcr_write(uint16_t port, uint8_t val, void *priv) } elcr[port & 1] = val; - pcilog("ELCR %i: %c %c %c %c %c %c %c %c\n", port & 1, (val & 1) ? 'L' : 'E', (val & 2) ? 'L' : 'E', (val & 4) ? 'L' : 'E', (val & 8) ? 'L' : 'E', (val & 0x10) ? 'L' : 'E', (val & 0x20) ? 'L' : 'E', (val & 0x40) ? 'L' : 'E', (val & 0x80) ? 'L' : 'E'); + pci_log("ELCR %i: %c %c %c %c %c %c %c %c\n", port & 1, (val & 1) ? 'L' : 'E', (val & 2) ? 'L' : 'E', (val & 4) ? 'L' : 'E', (val & 8) ? 'L' : 'E', (val & 0x10) ? 'L' : 'E', (val & 0x20) ? 'L' : 'E', (val & 0x40) ? 'L' : 'E', (val & 0x80) ? 'L' : 'E'); } static uint8_t elcr_read(uint16_t port, void *priv) { - /* pcilog("ELCR%i: READ %02X\n", port & 1, elcr[port & 1]); */ + /* pci_log("ELCR%i: READ %02X\n", port & 1, elcr[port & 1]); */ return elcr[port & 1]; } @@ -288,7 +287,7 @@ uint8_t pci_use_mirq(uint8_t mirq) return 1; } -#define pci_mirq_log pcilog +#define pci_mirq_log pci_log void pci_set_mirq(uint8_t mirq) { @@ -359,82 +358,82 @@ void pci_set_irq(uint8_t card, uint8_t pci_int) if (!last_pci_card) { - pcilog("pci_set_irq(%02X, %02X): No PCI slots (how are we even here?!)\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): No PCI slots (how are we even here?!)\n", card, pci_int); return; } else { - pcilog("pci_set_irq(%02X, %02X): %i PCI slots\n", card, pci_int, last_pci_card); + pci_log("pci_set_irq(%02X, %02X): %i PCI slots\n", card, pci_int, last_pci_card); } slot = pci_card_to_slot_mapping[card]; if (slot == 0xFF) { - pcilog("pci_set_irq(%02X, %02X): Card is not on a PCI slot (how are we even here?!)\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): Card is not on a PCI slot (how are we even here?!)\n", card, pci_int); return; } else { - pcilog("pci_set_irq(%02X, %02X): Card is on PCI slot %02X\n", card, pci_int, slot); + pci_log("pci_set_irq(%02X, %02X): Card is on PCI slot %02X\n", card, pci_int, slot); } if (!pci_cards[slot].irq_routing[pci_int_index]) { - pcilog("pci_set_irq(%02X, %02X): No IRQ routing for this slot and INT pin combination\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): No IRQ routing for this slot and INT pin combination\n", card, pci_int); return; } else { irq_routing = (pci_cards[slot].irq_routing[pci_int_index] - PCI_INTA) & 3; - pcilog("pci_set_irq(%02X, %02X): IRQ routing for this slot and INT pin combination: %02X\n", card, pci_int, irq_routing); + pci_log("pci_set_irq(%02X, %02X): IRQ routing for this slot and INT pin combination: %02X\n", card, pci_int, irq_routing); } if (pci_irqs[irq_routing] > 0x0F) { - pcilog("pci_set_irq(%02X, %02X): IRQ line is disabled\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): IRQ line is disabled\n", card, pci_int); return; } else { irq_line = pci_irqs[irq_routing]; - pcilog("pci_set_irq(%02X, %02X): Using IRQ %i\n", card, pci_int, irq_line); + pci_log("pci_set_irq(%02X, %02X): Using IRQ %i\n", card, pci_int, irq_line); } if (pci_irq_is_level(irq_line) && (pci_irq_hold[irq_line] & (1 << card))) { /* IRQ already held, do nothing. */ - pcilog("pci_set_irq(%02X, %02X): Card is already holding the IRQ\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): Card is already holding the IRQ\n", card, pci_int); return; } else { - pcilog("pci_set_irq(%02X, %02X): Card not yet holding the IRQ\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): Card not yet holding the IRQ\n", card, pci_int); } level = pci_irq_is_level(irq_line); if (!level || !pci_irq_hold[irq_line]) { - pcilog("pci_set_irq(%02X, %02X): Issuing %s-triggered IRQ (%sheld)\n", card, pci_int, level ? "level" : "edge", pci_irq_hold[irq_line] ? "" : "not "); + pci_log("pci_set_irq(%02X, %02X): Issuing %s-triggered IRQ (%sheld)\n", card, pci_int, level ? "level" : "edge", pci_irq_hold[irq_line] ? "" : "not "); /* Only raise the interrupt if it's edge-triggered or level-triggered and not yet being held. */ picintlevel(1 << irq_line); } else if (level && pci_irq_hold[irq_line]) { - pcilog("pci_set_irq(%02X, %02X): IRQ line already being held\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): IRQ line already being held\n", card, pci_int); } /* If the IRQ is level-triggered, mark that this card is holding it. */ if (pci_irq_is_level(irq_line)) { - pcilog("pci_set_irq(%02X, %02X): Marking that this card is holding the IRQ\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): Marking that this card is holding the IRQ\n", card, pci_int); pci_irq_hold[irq_line] |= (1 << card); } else { - pcilog("pci_set_irq(%02X, %02X): Edge-triggered interrupt, not marking\n", card, pci_int); + pci_log("pci_set_irq(%02X, %02X): Edge-triggered interrupt, not marking\n", card, pci_int); } } @@ -509,52 +508,52 @@ void pci_clear_irq(uint8_t card, uint8_t pci_int) if (!last_pci_card) { - pcilog("pci_clear_irq(%02X, %02X): No PCI slots (how are we even here?!)\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): No PCI slots (how are we even here?!)\n", card, pci_int); return; } else { - pcilog("pci_clear_irq(%02X, %02X): %i PCI slots\n", card, pci_int, last_pci_card); + pci_log("pci_clear_irq(%02X, %02X): %i PCI slots\n", card, pci_int, last_pci_card); } slot = pci_card_to_slot_mapping[card]; if (slot == 0xFF) { - pcilog("pci_clear_irq(%02X, %02X): Card is not on a PCI slot (how are we even here?!)\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): Card is not on a PCI slot (how are we even here?!)\n", card, pci_int); return; } else { - pcilog("pci_clear_irq(%02X, %02X): Card is on PCI slot %02X\n", card, pci_int, slot); + pci_log("pci_clear_irq(%02X, %02X): Card is on PCI slot %02X\n", card, pci_int, slot); } if (!pci_cards[slot].irq_routing[pci_int_index]) { - pcilog("pci_clear_irq(%02X, %02X): No IRQ routing for this slot and INT pin combination\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): No IRQ routing for this slot and INT pin combination\n", card, pci_int); return; } else { irq_routing = (pci_cards[slot].irq_routing[pci_int_index] - PCI_INTA) & 3; - pcilog("pci_clear_irq(%02X, %02X): IRQ routing for this slot and INT pin combination: %02X\n", card, pci_int, irq_routing); + pci_log("pci_clear_irq(%02X, %02X): IRQ routing for this slot and INT pin combination: %02X\n", card, pci_int, irq_routing); } if (pci_irqs[irq_routing] > 0x0F) { - pcilog("pci_clear_irq(%02X, %02X): IRQ line is disabled\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): IRQ line is disabled\n", card, pci_int); return; } else { irq_line = pci_irqs[irq_routing]; - pcilog("pci_clear_irq(%02X, %02X): Using IRQ %i\n", card, pci_int, irq_line); + pci_log("pci_clear_irq(%02X, %02X): Using IRQ %i\n", card, pci_int, irq_line); } if (pci_irq_is_level(irq_line) && !(pci_irq_hold[irq_line] & (1 << card))) { /* IRQ not held, do nothing. */ - pcilog("pci_clear_irq(%02X, %02X): Card is not holding the IRQ\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): Card is not holding the IRQ\n", card, pci_int); return; } @@ -562,22 +561,22 @@ void pci_clear_irq(uint8_t card, uint8_t pci_int) if (level) { - pcilog("pci_clear_irq(%02X, %02X): Releasing this card's hold on the IRQ\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): Releasing this card's hold on the IRQ\n", card, pci_int); pci_irq_hold[irq_line] &= ~(1 << card); if (!pci_irq_hold[irq_line]) { - pcilog("pci_clear_irq(%02X, %02X): IRQ no longer held by any card, clearing it\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): IRQ no longer held by any card, clearing it\n", card, pci_int); picintc(1 << irq_line); } else { - pcilog("pci_clear_irq(%02X, %02X): IRQ is still being held\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): IRQ is still being held\n", card, pci_int); } } else { - pcilog("pci_clear_irq(%02X, %02X): Clearing edge-triggered interrupt\n", card, pci_int); + pci_log("pci_clear_irq(%02X, %02X): Clearing edge-triggered interrupt\n", card, pci_int); picintc(1 << irq_line); } } @@ -644,7 +643,7 @@ static void trc_reset(uint8_t val) static void trc_write(uint16_t port, uint8_t val, void *priv) { - /* pcilog("TRC Write: %02X\n", val); */ + /* pci_log("TRC Write: %02X\n", val); */ if (!(trc_reg & 4) && (val & 4)) { trc_reset(val); @@ -708,7 +707,7 @@ void pci_register_slot(int card, int type, int inta, int intb, int intc, int int pci_cards[last_pci_card].write = NULL; pci_cards[last_pci_card].priv = NULL; pci_card_to_slot_mapping[card] = last_pci_card; - pcilog("pci_register_slot(): pci_cards[%i].id = %02X\n", last_pci_card, card); + pci_log("pci_register_slot(): pci_cards[%i].id = %02X\n", last_pci_card, card); last_pci_card++; } @@ -718,18 +717,18 @@ uint8_t pci_add_card(uint8_t add_type, uint8_t (*read)(int func, int addr, void if (add_type < PCI_ADD_NORMAL) { - pcilog("pci_add_card(): Adding PCI CARD at specific slot %02X [SPECIFIC]\n", add_type); + pci_log("pci_add_card(): Adding PCI CARD at specific slot %02X [SPECIFIC]\n", add_type); } if (!PCI) { - pcilog("pci_add_card(): Adding PCI CARD failed (non-PCI machine) [%s]\n", (add_type == PCI_ADD_NORMAL) ? "NORMAL" : ((add_type == PCI_ADD_VIDEO) ? "VIDEO" : "SPECIFIC")); + pci_log("pci_add_card(): Adding PCI CARD failed (non-PCI machine) [%s]\n", (add_type == PCI_ADD_NORMAL) ? "NORMAL" : ((add_type == PCI_ADD_VIDEO) ? "VIDEO" : "SPECIFIC")); return 0xFF; } if (!last_pci_card) { - pcilog("pci_add_card(): Adding PCI CARD failed (no PCI slots) [%s]\n", (add_type == PCI_ADD_NORMAL) ? "NORMAL" : ((add_type == PCI_ADD_VIDEO) ? "VIDEO" : "SPECIFIC")); + pci_log("pci_add_card(): Adding PCI CARD failed (no PCI slots) [%s]\n", (add_type == PCI_ADD_NORMAL) ? "NORMAL" : ((add_type == PCI_ADD_VIDEO) ? "VIDEO" : "SPECIFIC")); return 0xFF; } @@ -744,12 +743,12 @@ uint8_t pci_add_card(uint8_t add_type, uint8_t (*read)(int func, int addr, void pci_cards[i].read = read; pci_cards[i].write = write; pci_cards[i].priv = priv; - pcilog("pci_add_card(): Adding PCI CARD to pci_cards[%i] (slot %02X) [%s]\n", i, pci_cards[i].id, (add_type == PCI_ADD_NORMAL) ? "NORMAL" : ((add_type == PCI_ADD_VIDEO) ? "VIDEO" : "SPECIFIC")); + pci_log("pci_add_card(): Adding PCI CARD to pci_cards[%i] (slot %02X) [%s]\n", i, pci_cards[i].id, (add_type == PCI_ADD_NORMAL) ? "NORMAL" : ((add_type == PCI_ADD_VIDEO) ? "VIDEO" : "SPECIFIC")); return pci_cards[i].id; } } } - pcilog("pci_add_card(): Adding PCI CARD failed (unable to find a suitable PCI slot) [%s]\n", (add_type == PCI_ADD_NORMAL) ? "NORMAL" : ((add_type == PCI_ADD_VIDEO) ? "VIDEO" : "SPECIFIC")); + pci_log("pci_add_card(): Adding PCI CARD failed (unable to find a suitable PCI slot) [%s]\n", (add_type == PCI_ADD_NORMAL) ? "NORMAL" : ((add_type == PCI_ADD_VIDEO) ? "VIDEO" : "SPECIFIC")); return 0xFF; } diff --git a/src/pic.c b/src/pic.c index b7149d898..e1cc04290 100644 --- a/src/pic.c +++ b/src/pic.c @@ -8,7 +8,7 @@ * * Implementation of the Intel PIC chip emulation. * - * Version: @(#)pic.c 1.0.1 2018/10/02 + * Version: @(#)pic.c 1.0.2 2018/10/17 * * Author: Miran Grca, * @@ -38,22 +38,22 @@ uint16_t pic_current; #ifdef ENABLE_PIC_LOG int pic_do_log = ENABLE_PIC_LOG; -#endif static void -pic_log(const char *format, ...) +pic_log(const char *fmt, ...) { -#ifdef ENABLE_PIC_LOG va_list ap; if (pic_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define pic_log(fmt, ...) +#endif void diff --git a/src/rom.c b/src/rom.c index a4db53873..5c067594a 100644 --- a/src/rom.c +++ b/src/rom.c @@ -13,7 +13,7 @@ * - c386sx16 BIOS fails checksum * - the loadfont() calls should be done elsewhere * - * Version: @(#)rom.c 1.0.40 2018/10/02 + * Version: @(#)rom.c 1.0.41 2018/10/17 * * Authors: Sarah Walker, * Miran Grca, @@ -43,22 +43,22 @@ int romspresent[ROM_MAX]; #ifdef ENABLE_ROM_LOG int rom_do_log = ENABLE_ROM_LOG; -#endif static void -rom_log(const char *format, ...) +rom_log(const char *fmt, ...) { -#ifdef ENABLE_ROM_LOG va_list ap; if (rom_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define rom_log(fmt, ...) +#endif FILE * diff --git a/src/scsi/scsi_aha154x.c b/src/scsi/scsi_aha154x.c index a314d4672..41f9540df 100644 --- a/src/scsi/scsi_aha154x.c +++ b/src/scsi/scsi_aha154x.c @@ -10,7 +10,7 @@ * made by Adaptec, Inc. These controllers were designed for * the ISA bus. * - * Version: @(#)scsi_aha154x.c 1.0.43 2018/10/02 + * Version: @(#)scsi_aha154x.c 1.0.44 2018/10/18 * * Authors: Fred N. van Kempen, * Original Buslogic version by SA1988 and Miran Grca. @@ -82,13 +82,11 @@ typedef struct { #ifdef ENABLE_AHA154X_LOG int aha_do_log = ENABLE_AHA154X_LOG; -#endif static void aha_log(const char *fmt, ...) { -#ifdef ENABLE_AHA154X_LOG va_list ap; if (aha_do_log) { @@ -96,8 +94,10 @@ aha_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define aha_log(fmt, ...) +#endif /* diff --git a/src/scsi/scsi_buslogic.c b/src/scsi/scsi_buslogic.c index 50367741c..ddf579dde 100644 --- a/src/scsi/scsi_buslogic.c +++ b/src/scsi/scsi_buslogic.c @@ -11,7 +11,7 @@ * 1 - BT-545S ISA; * 2 - BT-958D PCI * - * Version: @(#)scsi_buslogic.c 1.0.40 2018/10/09 + * Version: @(#)scsi_buslogic.c 1.0.41 2018/10/18 * * Authors: TheCollector1995, * Miran Grca, @@ -240,13 +240,11 @@ enum { #ifdef ENABLE_BUSLOGIC_LOG int buslogic_do_log = ENABLE_BUSLOGIC_LOG; -#endif static void buslogic_log(const char *fmt, ...) { -#ifdef ENABLE_BUSLOGIC_LOG va_list ap; if (buslogic_do_log) { @@ -254,8 +252,10 @@ buslogic_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define buslogic_log(fmt, ...) +#endif static wchar_t * @@ -590,7 +590,9 @@ BuslogicSCSIBIOSRequestSetup(x54x_t *dev, uint8_t *CmdBuf, uint8_t *DataInBuf, u uint32_t i; uint8_t temp_cdb[12]; int target_cdb_len = 12; +#ifdef ENABLE_BUSLOGIC_LOG uint8_t target_id = 0; +#endif int phase; scsi_device_t *sd = &scsi_devices[ESCSICmd->TargetId]; @@ -1112,7 +1114,9 @@ static uint8_t BuslogicPCIRead(int func, int addr, void *p) { x54x_t *dev = (x54x_t *)p; +#ifdef ENABLE_BUSLOGIC_LOG buslogic_data_t *bl = (buslogic_data_t *) dev->ven_data; +#endif buslogic_log("BT-958D: Reading register %02X\n", addr & 0xff); diff --git a/src/scsi/scsi_disk.c b/src/scsi/scsi_disk.c index d7518cf81..b1dd08155 100644 --- a/src/scsi/scsi_disk.c +++ b/src/scsi/scsi_disk.c @@ -6,7 +6,7 @@ * * Emulation of SCSI fixed disks. * - * Version: @(#)scsi_disk.c 1.0.24 2018/10/09 + * Version: @(#)scsi_disk.c 1.0.25 2018/10/18 * * Author: Miran Grca, * @@ -145,13 +145,11 @@ static void scsi_disk_callback(void *p); #ifdef ENABLE_SCSI_DISK_LOG int scsi_disk_do_log = ENABLE_SCSI_DISK_LOG; -#endif static void scsi_disk_log(const char *fmt, ...) { -#ifdef ENABLE_SCSI_DISK_LOG va_list ap; if (scsi_disk_do_log) { @@ -159,8 +157,10 @@ scsi_disk_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define scsi_disk_log(fmt, ...) +#endif /* Translates ATAPI status (ERR_STAT flag) to SCSI status. */ @@ -555,7 +555,9 @@ static void scsi_disk_command(void *p, uint8_t *cdb) { scsi_disk_t *dev = (scsi_disk_t *) p; +#ifdef ENABLE_SCSI_DISK_LOG uint8_t *hdbufferb; +#endif int32_t *BufLen; int32_t len, max_len, alloc_length; int pos = 0; @@ -566,7 +568,9 @@ scsi_disk_command(void *p, uint8_t *cdb) char device_identify_ex[15] = { '8', '6', 'B', '_', 'H', 'D', '0', '0', ' ', 'v', '1', '.', '0', '0', 0 }; int block_desc = 0; +#ifdef ENABLE_SCSI_DISK_LOG hdbufferb = scsi_devices[dev->drv->scsi_id].cmd_buffer; +#endif BufLen = &scsi_devices[dev->drv->scsi_id].buffer_length; last_sector = hdd_image_get_last_sector(dev->id); diff --git a/src/scsi/scsi_ncr5380.c b/src/scsi/scsi_ncr5380.c index e09e64992..4a05e9b88 100644 --- a/src/scsi/scsi_ncr5380.c +++ b/src/scsi/scsi_ncr5380.c @@ -9,7 +9,7 @@ * Implementation of the NCR 5380 series of SCSI Host Adapters * made by NCR. These controllers were designed for the ISA bus. * - * Version: @(#)scsi_ncr5380.c 1.0.22 2018/10/09 + * Version: @(#)scsi_ncr5380.c 1.0.23 2018/10/18 * * Authors: Sarah Walker, * TheCollector1995, @@ -170,13 +170,11 @@ static int cmd_len[8] = {6, 10, 10, 6, 16, 12, 6, 6}; #ifdef ENABLE_NCR5380_LOG int ncr5380_do_log = ENABLE_NCR5380_LOG; -#endif static void ncr_log(const char *fmt, ...) { -#ifdef ENABLE_NCR5380_LOG va_list ap; if (ncr5380_do_log) { @@ -184,8 +182,11 @@ ncr_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define ncr_log(fmt, ...) +#endif + #define SET_BUS_STATE(ncr, state) ncr->cur_bus = (ncr->cur_bus & ~(SCSI_PHASE_MESSAGE_IN)) | (state & (SCSI_PHASE_MESSAGE_IN)) diff --git a/src/scsi/scsi_ncr53c810.c b/src/scsi/scsi_ncr53c810.c index 4ac48f67f..b8196b24d 100644 --- a/src/scsi/scsi_ncr53c810.c +++ b/src/scsi/scsi_ncr53c810.c @@ -10,7 +10,7 @@ * NCR and later Symbios and LSI. This controller was designed * for the PCI bus. * - * Version: @(#)scsi_ncr53c810.c 1.0.15 2018/10/09 + * Version: @(#)scsi_ncr53c810.c 1.0.16 2018/10/18 * * Authors: Paul Brook (QEMU) * Artyom Tarasenko (QEMU) @@ -282,13 +282,11 @@ typedef struct { #ifdef ENABLE_NCR53C810_LOG int ncr53c810_do_log = ENABLE_NCR53C810_LOG; -#endif static void ncr53c810_log(const char *fmt, ...) { -#ifdef ENABLE_NCR53C810_LOG va_list ap; if (ncr53c810_do_log) { @@ -296,8 +294,10 @@ ncr53c810_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define ncr53c810_log(fmt, ...) +#endif static uint8_t ncr53c810_reg_readb(ncr53c810_t *dev, uint32_t offset); @@ -829,12 +829,16 @@ ncr53c810_do_msgout(ncr53c810_t *dev, uint8_t id) { uint8_t msg; int len; +#ifdef ENABLE_NCR53C810_LOG uint32_t current_tag; +#endif scsi_device_t *sd; sd = &scsi_devices[id]; +#ifdef ENABLE_NCR53C810_LOG current_tag = id; +#endif ncr53c810_log("MSG out len=%d\n", dev->dbc); while (dev->dbc) { @@ -952,7 +956,10 @@ ncr53c810_process_script(ncr53c810_t *dev) uint32_t insn, addr, id, buf[2], dest; int opcode, insn_processed = 0, reg, operator, cond, jmp, n, i, c; int32_t offset; - uint8_t op0, op1, data8, mask, data[7], *pp; + uint8_t op0, op1, data8, mask, data[7]; +#ifdef ENABLE_NCR53C810_LOG + uint8_t *pp; +#endif dev->sstop = 0; again: @@ -1278,7 +1285,9 @@ again: dev->dsp += 4; ncr53c810_memcpy(dev, dest, addr, insn & 0xffffff); } else { +#ifdef ENABLE_NCR53C810_LOG pp = data; +#endif if (insn & (1 << 28)) addr = dev->dsa + sextract32(addr, 0, 24); diff --git a/src/scsi/scsi_x54x.c b/src/scsi/scsi_x54x.c index 4e26005c4..59e93b961 100644 --- a/src/scsi/scsi_x54x.c +++ b/src/scsi/scsi_x54x.c @@ -11,7 +11,7 @@ * series of SCSI Host Adapters made by Mylex. * These controllers were designed for various buses. * - * Version: @(#)scsi_x54x.c 1.0.24 2018/10/11 + * Version: @(#)scsi_x54x.c 1.0.25 2018/10/18 * * Authors: TheCollector1995, * Miran Grca, @@ -57,13 +57,11 @@ x54x_t *x54x_dev; #ifdef ENABLE_X54X_LOG int x54x_do_log = ENABLE_X54X_LOG; -#endif static void x54x_log(const char *fmt, ...) { -#ifdef ENABLE_X54X_LOG va_list ap; if (x54x_do_log) { @@ -72,8 +70,10 @@ x54x_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define x54x_log(fmt, ...) +#endif static void @@ -952,7 +952,10 @@ static void x54x_scsi_cmd(x54x_t *dev) { Req_t *req = &dev->Req; - uint8_t id, lun, phase, bit24 = !!req->Is24bit; + uint8_t id, phase, bit24 = !!req->Is24bit; +#ifdef ENABLE_X54X_LOG + uint8_t lun; +#endif uint8_t temp_cdb[12]; uint32_t i, SenseBufferAddress; int target_data_len, target_cdb_len = 12; @@ -962,7 +965,9 @@ x54x_scsi_cmd(x54x_t *dev) id = req->TargetID; sd = &scsi_devices[id]; +#ifdef ENABLE_X54X_LOG lun = req->LUN; +#endif target_cdb_len = 12; target_data_len = x54x_get_length(req, bit24); diff --git a/src/serial.c b/src/serial.c index 920f381c3..6b7ed6915 100644 --- a/src/serial.c +++ b/src/serial.c @@ -30,22 +30,22 @@ int serial_do_log = 0; #ifdef ENABLE_SERIAL_LOG int serial_do_log = ENABLE_SERIAL_LOG; -#endif static void -serial_log(const char *format, ...) +serial_log(const char *fmt, ...) { -#ifdef ENABLE_SERIAL_LOG va_list ap; if (serial_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define serial_log(fmt, ...) +#endif void serial_reset() diff --git a/src/sound/snd_adlib.c b/src/sound/snd_adlib.c index 0628ec932..998c14dab 100644 --- a/src/sound/snd_adlib.c +++ b/src/sound/snd_adlib.c @@ -16,13 +16,11 @@ #ifdef ENABLE_ADLIB_LOG int adlib_do_log = ENABLE_ADLIB_LOG; -#endif static void adlib_log(const char *fmt, ...) { -#ifdef ENABLE_ADLIB_LOG va_list ap; if (adlib_do_log) { @@ -30,8 +28,10 @@ adlib_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define adlib_log(fmt, ...) +#endif typedef struct adlib_t diff --git a/src/sound/snd_audiopci.c b/src/sound/snd_audiopci.c index 999c91d4e..c43fb3a1e 100644 --- a/src/sound/snd_audiopci.c +++ b/src/sound/snd_audiopci.c @@ -138,13 +138,11 @@ static void update_legacy(es1371_t *es1371); #ifdef ENABLE_AUDIOPCI_LOG int audiopci_do_log = ENABLE_AUDIOPCI_LOG; -#endif static void audiopci_log(const char *fmt, ...) { -#ifdef ENABLE_AUDIOPCI_LOG va_list ap; if (audiopci_do_log) { @@ -152,8 +150,10 @@ audiopci_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define audiopci_log(fmt, ...) +#endif static void es1371_update_irqs(es1371_t *es1371) diff --git a/src/sound/snd_emu8k.c b/src/sound/snd_emu8k.c index d273e4953..f5d19daac 100644 --- a/src/sound/snd_emu8k.c +++ b/src/sound/snd_emu8k.c @@ -295,13 +295,11 @@ uint32_t rep_count_w = 0; #ifdef ENABLE_EMU8K_LOG int emu8k_do_log = ENABLE_EMU8K_LOG; -#endif static void emu8k_log(const char *fmt, ...) { -#ifdef ENABLE_EMU8K_LOG va_list ap; if (emu8k_do_log) { @@ -309,8 +307,10 @@ emu8k_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define emu8k_log(fmt, ...) +#endif static inline int16_t EMU8K_READ(emu8k_t *emu8k, uint32_t addr) diff --git a/src/sound/snd_mpu401.c b/src/sound/snd_mpu401.c index 6a48dc255..5944cb57b 100644 --- a/src/sound/snd_mpu401.c +++ b/src/sound/snd_mpu401.c @@ -8,7 +8,7 @@ * * Roland MPU-401 emulation. * - * Version: @(#)snd_mpu401.c 1.0.17 2018/09/15 + * Version: @(#)snd_mpu401.c 1.0.18 2018/10/18 * * Authors: Sarah Walker, * DOSBox Team, @@ -58,13 +58,11 @@ static void MPU401_EOIHandlerDispatch(void *p); #ifdef ENABLE_MPU401_LOG int mpu401_do_log = ENABLE_MPU401_LOG; -#endif static void mpu401_log(const char *fmt, ...) { -#ifdef ENABLE_MPU401_LOG va_list ap; if (mpu401_do_log) { @@ -72,8 +70,10 @@ mpu401_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define mpu401_log(fmt, ...) +#endif static void diff --git a/src/sound/snd_pas16.c b/src/sound/snd_pas16.c index e93bdfcb6..ce6451647 100644 --- a/src/sound/snd_pas16.c +++ b/src/sound/snd_pas16.c @@ -181,13 +181,11 @@ enum #ifdef ENABLE_PAS16_LOG int pas16_do_log = ENABLE_PAS16_LOG; -#endif static void pas16_log(const char *fmt, ...) { -#ifdef ENABLE_PAS16_LOG va_list ap; if (pas16_do_log) { @@ -195,8 +193,10 @@ pas16_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define pas16_log(fmt, ...) +#endif static uint8_t pas16_in(uint16_t port, void *p) diff --git a/src/sound/snd_sb.c b/src/sound/snd_sb.c index feb285f30..545a208a2 100644 --- a/src/sound/snd_sb.c +++ b/src/sound/snd_sb.c @@ -8,7 +8,7 @@ * * Sound Blaster emulation. * - * Version: @(#)sound_sb.c 1.0.13 2018/09/11 + * Version: @(#)sound_sb.c 1.0.14 2018/10/18 * * Authors: Sarah Walker, * Miran Grca, @@ -173,13 +173,11 @@ const int32_t sb_att_7dbstep_2bits[]= #ifdef ENABLE_SB_LOG int sb_do_log = ENABLE_SB_LOG; -#endif static void sb_log(const char *fmt, ...) { -#ifdef ENABLE_SB_LOG va_list ap; if (sb_do_log) { @@ -187,8 +185,10 @@ sb_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define sb_log(fmt, ...) +#endif /* sb 1, 1.5, 2, 2 mvc do not have a mixer, so signal is hardwired */ diff --git a/src/sound/snd_sb_dsp.c b/src/sound/snd_sb_dsp.c index c10d135fe..feb3581f9 100644 --- a/src/sound/snd_sb_dsp.c +++ b/src/sound/snd_sb_dsp.c @@ -113,13 +113,11 @@ float low_fir_sb16_coef[SB16_NCoef]; #ifdef ENABLE_SB_DSP_LOG int sb_dsp_do_log = ENABLE_SB_DSP_LOG; -#endif static void sb_dsp_log(const char *fmt, ...) { -#ifdef ENABLE_SB_DSP_LOG va_list ap; if (sb_dsp_do_log) { @@ -127,8 +125,10 @@ sb_dsp_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define sb_dsp_log(fmt, ...) +#endif static inline double sinc(double x) diff --git a/src/video/vid_ati28800.c b/src/video/vid_ati28800.c index 36f5c222d..965a56f4b 100644 --- a/src/video/vid_ati28800.c +++ b/src/video/vid_ati28800.c @@ -8,7 +8,7 @@ * * ATI 28800 emulation (VGA Charger and Korean VGA) * - * Version: @(#)vid_ati28800.c 1.0.25 2018/10/04 + * Version: @(#)vid_ati28800.c 1.0.26 2018/10/18 * * Authors: Sarah Walker, * Miran Grca, @@ -84,13 +84,11 @@ static video_timings_t timing_ati28800 = {VIDEO_ISA, 3, 3, 6, 5, 5, 10}; #ifdef ENABLE_ATI28800_LOG int ati28800_do_log = ENABLE_ATI28800_LOG; -#endif static void ati28800_log(const char *fmt, ...) { -#ifdef ENABLE_ATI28800_LOG va_list ap; if (ati28800_do_log) { @@ -98,8 +96,11 @@ ati28800_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define ati28800_log(fmt, ...) +#endif + static void ati28800_recalctimings(svga_t *svga); diff --git a/src/video/vid_ati_mach64.c b/src/video/vid_ati_mach64.c index b34f31251..4f416cc9d 100644 --- a/src/video/vid_ati_mach64.c +++ b/src/video/vid_ati_mach64.c @@ -8,7 +8,7 @@ * * ATi Mach64 graphics card emulation. * - * Version: @(#)vid_ati_mach64.c 1.0.25 2018/10/04 + * Version: @(#)vid_ati_mach64.c 1.0.26 2018/10/18 * * Authors: Sarah Walker, * Miran Grca, @@ -344,13 +344,11 @@ void mach64_ext_writel(uint32_t addr, uint32_t val, void *priv); #ifdef ENABLE_MACH64_LOG int mach64_do_log = ENABLE_MACH64_LOG; -#endif static void mach64_log(const char *fmt, ...) { -#ifdef ENABLE_MACH64_LOG va_list ap; if (mach64_do_log) { @@ -358,8 +356,10 @@ mach64_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define mach64_log(fmt, ...) +#endif void mach64_out(uint16_t addr, uint8_t val, void *p) diff --git a/src/video/vid_et4000w32.c b/src/video/vid_et4000w32.c index d6bac4e90..05aaf83a4 100644 --- a/src/video/vid_et4000w32.c +++ b/src/video/vid_et4000w32.c @@ -10,7 +10,7 @@ * * Known bugs: Accelerator doesn't work in planar modes * - * Version: @(#)vid_et4000w32.c 1.0.20 2018/10/04 + * Version: @(#)vid_et4000w32.c 1.0.21 2018/10/18 * * Authors: Sarah Walker, * Miran Grca, @@ -154,22 +154,22 @@ void et4000w32_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input, et400 #ifdef ENABLE_ET4000W32_LOG int et4000w32_do_log = ENABLE_ET4000W32_LOG; -#endif static void -et4000w32_log(const char *format, ...) +et4000w32_log(const char *fmt, ...) { -#ifdef ENABLE_ET4000W32_LOG va_list ap; if (et4000w32_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define et4000w32_log(fmt, ...) +#endif uint8_t et4000w32p_in(uint16_t addr, void *p); diff --git a/src/video/vid_s3_virge.c b/src/video/vid_s3_virge.c index ce8efffb5..aa3482569 100644 --- a/src/video/vid_s3_virge.c +++ b/src/video/vid_s3_virge.c @@ -8,7 +8,7 @@ * * S3 ViRGE emulation. * - * Version: @(#)vid_s3_virge.c 1.0.15 2018/09/21 + * Version: @(#)vid_s3_virge.c 1.0.16 2018/10/18 * * Authors: Sarah Walker, * Miran Grca, @@ -347,22 +347,22 @@ enum #ifdef ENABLE_S3_VIRGE_LOG int s3_virge_do_log = ENABLE_S3_VIRGE_LOG; -#endif static void -s3_virge_log(const char *format, ...) +s3_virge_log(const char *fmt, ...) { -#ifdef ENABLE_S3_VIRGE_LOG va_list ap; if (s3_virge_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define s3_virge_log(fmt, ...) +#endif static void s3_virge_update_irqs(virge_t *virge) diff --git a/src/video/vid_voodoo.c b/src/video/vid_voodoo.c index 1bbdcc64a..20c573d02 100644 --- a/src/video/vid_voodoo.c +++ b/src/video/vid_voodoo.c @@ -8,7 +8,7 @@ * * Emulation of the 3DFX Voodoo Graphics controller. * - * Version: @(#)vid_voodoo.c 1.0.14 2018/04/26 + * Version: @(#)vid_voodoo.c 1.0.15 2018/10/18 * * Authors: Sarah Walker, * leilei @@ -1044,13 +1044,11 @@ enum #ifdef ENABLE_VOODOO_LOG int voodoo_do_log = ENABLE_VOODOO_LOG; -#endif static void voodoo_log(const char *fmt, ...) { -#ifdef ENABLE_VOODOO_LOG va_list ap; if (voodoo_do_log) { @@ -1058,8 +1056,10 @@ voodoo_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define voodoo_log(fmt, ...) +#endif static void voodoo_threshold_check(voodoo_t *voodoo); @@ -2802,7 +2802,10 @@ static void voodoo_half_triangle(voodoo_t *voodoo, voodoo_params_t *params, vood { int x, x2; int real_y = (state->y << 4) + 8; - int start_x, start_x2; + int start_x; +#ifdef ENABLE_VOODOO_LOG + int start_x2; +#endif int dx; uint16_t *fb_mem, *aux_mem; @@ -2849,7 +2852,9 @@ static void voodoo_half_triangle(voodoo_t *voodoo, voodoo_params_t *params, vood else x -= (1 << 16); dx = ((x + 0x7000) >> 16) - (((state->vertexAx << 12) + 0x7000) >> 16); +#ifdef ENABLE_VOODOO_LOG start_x2 = x + 0x7000; +#endif x = (x + 0x7000) >> 16; x2 = (x2 + 0x7000) >> 16; diff --git a/src/vnc.c b/src/vnc.c index 6365df9c5..9b28438fe 100644 --- a/src/vnc.c +++ b/src/vnc.c @@ -8,7 +8,7 @@ * * Implement the VNC remote renderer with LibVNCServer. * - * Version: @(#)vnc.c 1.0.13 2018/09/03 + * Version: @(#)vnc.c 1.0.14 2018/10/17 * * Authors: Fred N. van Kempen, * Based on raw code by RichardG, @@ -49,22 +49,22 @@ static int ptr_x, ptr_y, ptr_but; #ifdef ENABLE_VNC_LOG int vnc_do_log = ENABLE_VNC_LOG; -#endif static void -vnc_log(const char *format, ...) +vnc_log(const char *fmt, ...) { -#ifdef ENABLE_VNC_LOG va_list ap; if (vnc_do_log) { - va_start(ap, format); - pclog_ex(format, ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define vnc_log(fmt, ...) +#endif static void diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index c4a24e07e..e2447c50f 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -8,7 +8,7 @@ # # Makefile for Win32 (MinGW32) environment. # -# Version: @(#)Makefile.mingw 1.0.130 2018/10/17 +# Version: @(#)Makefile.mingw 1.0.131 2018/10/17 # # Authors: Miran Grca, # Fred N. van Kempen, @@ -543,6 +543,7 @@ VIDOBJ := video.o \ vid_ti_cf62011.o \ vid_tvga.o \ vid_tgui9440.o vid_tkd8001_ramdac.o \ + vid_v7vga.o \ vid_s3.o vid_s3_virge.o \ vid_sdac_ramdac.o \ vid_voodoo.o diff --git a/src/win/win.c b/src/win/win.c index 07ab1647c..e4950b7f8 100644 --- a/src/win/win.c +++ b/src/win/win.c @@ -8,7 +8,7 @@ * * Platform main support module for Windows. * - * Version: @(#)win.c 1.0.53 2018/10/12 + * Version: @(#)win.c 1.0.54 2018/10/18 * * Authors: Sarah Walker, * Miran Grca, @@ -107,13 +107,11 @@ static struct { #ifdef ENABLE_WIN_LOG int win_do_log = ENABLE_WIN_LOG; -#endif static void win_log(const char *fmt, ...) { -#ifdef ENABLE_WIN_LOG va_list ap; if (win_do_log) { @@ -121,8 +119,10 @@ win_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define win_log(fmt, ...) +#endif static void diff --git a/src/win/win_d2d.cpp b/src/win/win_d2d.cpp index a956c6e51..bea716d3b 100644 --- a/src/win/win_d2d.cpp +++ b/src/win/win_d2d.cpp @@ -1,4 +1,4 @@ -/* +/* * 86Box A hypervisor and IBM PC system emulator that specializes in * running old operating systems and software designed for IBM * PC systems and compatibles from 1981 through fairly recent @@ -8,7 +8,7 @@ * * Rendering module for Microsoft Direct2D. * - * Version: @(#)win_d2d.cpp 1.0.1 2018/07/28 + * Version: @(#)win_d2d.cpp 1.0.2 2018/10/18 * * Authors: David Hrdlička, * @@ -52,13 +52,11 @@ static int d2d_width, d2d_height, d2d_screen_width, d2d_screen_height, d2d_fs; #ifdef ENABLE_D2D_LOG int d2d_do_log = ENABLE_D2D_LOG; -#endif static void d2d_log(const char *fmt, ...) { -#ifdef ENABLE_D2D_LOG va_list ap; if (d2d_do_log) { @@ -66,8 +64,10 @@ d2d_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define d2d_log(fmt, ...) +#endif #ifdef USE_D2D diff --git a/src/win/win_ddraw.cpp b/src/win/win_ddraw.cpp index f4e5fda00..c62b1bff0 100644 --- a/src/win/win_ddraw.cpp +++ b/src/win/win_ddraw.cpp @@ -11,7 +11,7 @@ * NOTES: This code should be re-merged into a single init() with a * 'fullscreen' argument, indicating FS mode is requested. * - * Version: @(#)win_ddraw.cpp 1.0.11 2018/10/10 + * Version: @(#)win_ddraw.cpp 1.0.12 2018/10/18 * * Authors: Sarah Walker, * Miran Grca, @@ -60,13 +60,11 @@ static png_infop info_ptr; #ifdef ENABLE_DDRAW_LOG int ddraw_do_log = ENABLE_DDRAW_LOG; -#endif static void ddraw_log(const char *fmt, ...) { -#ifdef ENABLE_DDRAW_LOG va_list ap; if (ddraw_do_log) { @@ -74,8 +72,10 @@ ddraw_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define ddraw_log(fmt, ...) +#endif static void diff --git a/src/win/win_dynld.c b/src/win/win_dynld.c index a8901c4fc..6043e36d6 100644 --- a/src/win/win_dynld.c +++ b/src/win/win_dynld.c @@ -8,7 +8,7 @@ * * Try to load a support DLL. * - * Version: @(#)win_dynld.c 1.0.7 2018/04/29 + * Version: @(#)win_dynld.c 1.0.8 2018/10/18 * * Author: Fred N. van Kempen, * @@ -28,13 +28,11 @@ #ifdef ENABLE_DYNLD_LOG int dynld_do_log = ENABLE_DYNLD_LOG; -#endif static void dynld_log(const char *fmt, ...) { -#ifdef ENABLE_DYNLD_LOG va_list ap; if (dynld_do_log) { @@ -42,8 +40,10 @@ dynld_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define dynld_log(fmt, ...) +#endif void * diff --git a/src/win/win_joystick.cpp b/src/win/win_joystick.cpp index 5cba358e1..2985c2da5 100644 --- a/src/win/win_joystick.cpp +++ b/src/win/win_joystick.cpp @@ -8,7 +8,7 @@ * * Joystick interface to host device. * - * Version: @(#)win_joystick.cpp 1.0.9 2018/04/29 + * Version: @(#)win_joystick.cpp 1.0.10 2018/10/18 * * Authors: Sarah Walker, * Miran Grca, @@ -42,13 +42,11 @@ static GUID joystick_guids[MAX_JOYSTICKS]; #ifdef ENABLE_JOYSTICK_LOG int joystick_do_log = ENABLE_JOYSTICK_LOG; -#endif static void joystick_log(const char *fmt, ...) { -#ifdef ENABLE_JOYSTICK_LOG va_list ap; if (joystick_do_log) { @@ -56,8 +54,10 @@ joystick_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define joystick_log(fmt, ...) +#endif static BOOL CALLBACK joystick_enum_callback(LPCDIDEVICEINSTANCE lpddi, UNUSED(LPVOID data)) diff --git a/src/win/win_sdl.c b/src/win/win_sdl.c index 81a5a4434..288477f23 100644 --- a/src/win/win_sdl.c +++ b/src/win/win_sdl.c @@ -12,7 +12,7 @@ * we will not use that, but, instead, use a new window which * coverrs the entire desktop. * - * Version: @(#)win_sdl.c 1.0.1 2018/10/10 + * Version: @(#)win_sdl.c 1.0.2 2018/10/18 * * Authors: Fred N. van Kempen, * Michael Dring, @@ -146,13 +146,11 @@ static dllimp_t sdl_imports[] = { #ifdef ENABLE_SDL_LOG int sdl_do_log = ENABLE_SDL_LOG; -#endif static void sdl_log(const char *fmt, ...) { -#ifdef ENABLE_SDL_LOG va_list ap; if (sdl_do_log) { @@ -160,8 +158,10 @@ sdl_log(const char *fmt, ...) pclog_ex(fmt, ap); va_end(ap); } -#endif } +#else +#define sdl_log(fmt, ...) +#endif static void