diff --git a/src/Makefile.local b/src/Makefile.local index 4c0ad7d3d..aec3856c5 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.16 2018/08/01 +# Version: @(#)Makefile.local 1.0.17 2018/09/03 # # Author: Fred N. van Kempen, # @@ -42,6 +42,8 @@ STUFF := # -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. # -DENABLE_MEM_LOG=N sets logging level at N. # -DENABLE_MOUSE_LOG=N sets logging level at N. # -DENABLE_MOUSE_BUS_LOG=N sets logging level at N. @@ -88,6 +90,7 @@ STUFF := # -DENABLE_AMSTRAD_LOG=N sets logging level at N. # -DENABLE_EUROPC_LOG=N sets logging level at N. # -DENABLE_MACHINE_LOG=N sets logging level at N. +# -DENABLE_NEAT_LOG=N sets logging level at N. # -DENABLE_PS1_HDC_LOG=N sets logging level at N. # -DENABLE_PS2_MCA_LOG=N sets logging level at N. # -DENABLE_T1000_LOG=N sets logging level at N. diff --git a/src/isamem.c b/src/isamem.c index 0229f6eac..0a962121f 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.1 2018/08/18 + * Version: @(#)isamem.c 1.0.2 2018/09/03 * * Author: Fred N. van Kempen, * @@ -130,6 +130,27 @@ typedef struct { emsreg_t ems[EMS_MAXPAGE]; /* EMS controller registers */ } memdev_t; +#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; + + if (isamem_do_log) + { + va_start(ap, fmt); + pclog_ex(fmt, ap); + va_end(ap); + } +#endif +} + + /* Read one byte from onboard RAM. */ static uint8_t ram_readb(uint32_t addr, void *priv) @@ -280,7 +301,7 @@ ems_read(uint16_t port, void *priv) } #if 0 - pclog("ISAMEM: read(%04x) = %02x)\n", port, ret); + isamem_log("ISAMEM: read(%04x) = %02x)\n", port, ret); #endif return(ret); @@ -298,7 +319,7 @@ ems_write(uint16_t port, uint8_t val, void *priv) vpage = (port / EMS_PGSIZE); #if 0 - pclog("ISAMEM: write(%04x, %02x) page=%d\n", port, val, vpage); + isamem_log("ISAMEM: write(%04x, %02x) page=%d\n", port, val, vpage); #endif switch(port & 0x02ff) { @@ -426,18 +447,18 @@ dev->frame_addr = 0xE0000; dev->start_addr <<= 10; /* Say hello! */ - pclog("ISAMEM: %s (%iKB", info->name, dev->total_size); - if (dev->total_size != tot) pclog(", %iKB for RAM", tot); - if (dev->flags & FLAG_FAST) pclog(", FAST"); - if (dev->flags & FLAG_WIDE) pclog(", 16BIT"); - pclog(")\n"); + isamem_log("ISAMEM: %s (%iKB", info->name, dev->total_size); + if (dev->total_size != tot) isamem_log(", %iKB for RAM", tot); + if (dev->flags & FLAG_FAST) isamem_log(", FAST"); + if (dev->flags & FLAG_WIDE) isamem_log(", 16BIT"); + isamem_log(")\n"); /* Force (back to) 8-bit bus if needed. */ if (AT) { if (! cpu_16bitbus) - pclog("ISAMEM: *WARNING* this board will slow down your PC!\n"); + isamem_log("ISAMEM: *WARNING* this board will slow down your PC!\n"); } else { - pclog("ISAMEM: not AT+ system, forcing 8-bit mode!\n"); + isamem_log("ISAMEM: not AT+ system, forcing 8-bit mode!\n"); dev->flags &= ~FLAG_WIDE; } @@ -473,7 +494,7 @@ dev->frame_addr = 0xE0000; */ if (t > tot) t = tot; - pclog("ISAMEM: RAM at %05iKB (%iKB)\n", addr>>10, t>>10); + isamem_log("ISAMEM: RAM at %05iKB (%iKB)\n", addr>>10, t>>10); /* Create, initialize and enable the low-memory mapping. */ mem_mapping_add(&dev->low_mapping, addr, t, @@ -506,7 +527,7 @@ dev->frame_addr = 0xE0000; */ t = RAM_UMAMEM; /* 384KB */ - pclog("ISAMEM: RAM at %05iKB (%iKB)\n", addr>>10, t>>10); + isamem_log("ISAMEM: RAM at %05iKB (%iKB)\n", addr>>10, t>>10); /* Update and enable the remap. */ mem_mapping_del(&ram_remapped_mapping); @@ -540,7 +561,7 @@ dev->frame_addr = 0xE0000; */ if (AT && addr > 0 && tot > 0) { t = tot; - pclog("ISAMEM: RAM at %05iKB (%iKB)\n", addr>>10, t>>10); + isamem_log("ISAMEM: RAM at %05iKB (%iKB)\n", addr>>10, t>>10); /* Create, initialize and enable the high-memory mapping. */ mem_mapping_add(&dev->high_mapping, addr, t, @@ -569,11 +590,11 @@ dev->frame_addr = 0xE0000; dev->ems_start = ptr - dev->ram; dev->ems_size = t >> 10; dev->ems_pages = t / EMS_PGSIZE; - pclog("ISAMEM: EMS enabled, I/O=%04xH, %iKB (%i pages)", + isamem_log("ISAMEM: EMS enabled, I/O=%04xH, %iKB (%i pages)", dev->base_addr, dev->ems_size, dev->ems_pages); if (dev->frame_addr > 0) - pclog(", Frame=%05XH", dev->frame_addr); - pclog("\n"); + isamem_log(", Frame=%05XH", dev->frame_addr); + isamem_log("\n"); /* * For each supported page (we can have a maximum of 4), diff --git a/src/isartc.c b/src/isartc.c index 9fc98a543..b5b4363b6 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.4 2018/08/31 + * Version: @(#)isartc.c 1.0.5 2018/09/03 * * Author: Fred N. van Kempen, * @@ -148,6 +148,26 @@ typedef struct { #define MM67_STBYIRQ 22 /* standby IRQ */ #define MM67_TEST 31 /* test mode */ +#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; + + if (isartc_do_log) + { + va_start(ap, fmt); + pclog_ex(fmt, ap); + va_end(ap); + } +#endif +} + /* Check if the current time matches a set alarm time. */ static int8_t @@ -286,7 +306,7 @@ mm67_time_get(nvr_t *nvr, struct tm *tm) tm->tm_year += (regs[MM67_CENTURY] * 100) - 1900; #endif #if ISARTC_DEBUG > 1 - pclog("ISARTC: get_time: year=%i [%02x]\n", tm->tm_year, regs[dev->year]); + isartc_log("ISARTC: get_time: year=%i [%02x]\n", tm->tm_year, regs[dev->year]); #endif } } @@ -319,7 +339,7 @@ mm67_time_set(nvr_t *nvr, struct tm *tm) regs[MM67_CENTURY] = (year + 1900) / 100; #endif #if ISARTC_DEBUG > 1 - pclog("ISARTC: set_time: [%02x] year=%i (%i)\n", regs[dev->year], year, tm->tm_year); + isartc_log("ISARTC: set_time: [%02x] year=%i (%i)\n", regs[dev->year], year, tm->tm_year); #endif } } @@ -383,7 +403,7 @@ mm67_read(uint16_t port, void *priv) } #if ISARTC_DEBUG - pclog("ISARTC: read(%04x) = %02x\n", port-dev->base_addr, ret); + isartc_log("ISARTC: read(%04x) = %02x\n", port-dev->base_addr, ret); #endif return(ret); @@ -399,7 +419,7 @@ mm67_write(uint16_t port, uint8_t val, void *priv) int i; #if ISARTC_DEBUG - pclog("ISARTC: write(%04x, %02x)\n", port-dev->base_addr, val); + isartc_log("ISARTC: write(%04x, %02x)\n", port-dev->base_addr, val); #endif /* This chip is directly mapped on I/O. */ @@ -443,15 +463,15 @@ mm67_write(uint16_t port, uint8_t val, void *priv) break; case MM67_GOCMD: -pclog("RTC: write gocmd=%02x\n", val); +isartc_log("RTC: write gocmd=%02x\n", val); break; case MM67_STBYIRQ: -pclog("RTC: write stby=%02x\n", val); +isartc_log("RTC: write stby=%02x\n", val); break; case MM67_TEST: -pclog("RTC: write test=%02x\n", val); +isartc_log("RTC: write test=%02x\n", val); break; default: @@ -528,10 +548,10 @@ isartc_init(const device_t *info) } /* Say hello! */ - pclog("ISARTC: %s (I/O=%04XH", info->name, dev->base_addr); + isartc_log("ISARTC: %s (I/O=%04XH", info->name, dev->base_addr); if (dev->irq != -1) - pclog(", IRQ%i", dev->irq); - pclog(")\n"); + isartc_log(", IRQ%i", dev->irq); + isartc_log(")\n"); /* Set up an I/O port handler. */ io_sethandler(dev->base_addr, dev->base_addrsz, diff --git a/src/machine/m_at_neat.c b/src/machine/m_at_neat.c index 19bd40304..59524c3cb 100644 --- a/src/machine/m_at_neat.c +++ b/src/machine/m_at_neat.c @@ -13,7 +13,7 @@ * 8MB of DRAM chips', because it works fine with bus-based * memory expansion. * - * Version: @(#)m_at_neat.c 1.0.1 2018/07/22 + * Version: @(#)m_at_neat.c 1.0.2 2018/09/03 * * Author: Fred N. van Kempen, * @@ -262,6 +262,26 @@ typedef struct { emspage_t ems[EMS_MAXPAGE]; /* EMS page registers */ } neat_t; +#ifdef ENABLE_NEAT_LOG +int neat_do_log = ENABLE_NEAT_LOG; +#endif + + +static void +neat_log(const char *fmt, ...) +{ +#ifdef ENABLE_NEAT_LOG + va_list ap; + + if (neat_do_log) + { + va_start(ap, fmt); + pclog_ex(fmt, ap); + va_end(ap); + } +#endif +} + /* Read one byte from paged RAM. */ static uint8_t ems_readb(uint32_t addr, void *priv) @@ -348,7 +368,7 @@ ems_recalc(neat_t *dev, emspage_t *ems) mem_mapping_enable(&ems->mapping); #if NEAT_DEBUG > 1 - pclog("NEAT EMS: page %d set to %08lx, %sabled)\n", + neat_log("NEAT EMS: page %d set to %08lx, %sabled)\n", ems->page, ems->addr-ram, ems->enabled?"en":"dis"); #endif } else { @@ -365,7 +385,7 @@ ems_write(uint16_t port, uint8_t val, void *priv) int vpage; #if NEAT_DEBUG > 1 - pclog("NEAT: ems_write(%04x, %02x)\n", port, val); + neat_log("NEAT: ems_write(%04x, %02x)\n", port, val); #endif /* Get the viewport page number. */ @@ -402,7 +422,7 @@ ems_read(uint16_t port, void *priv) } #if NEAT_DEBUG > 1 - pclog("NEAT: ems_read(%04x) = %02x\n", port, ret); + neat_log("NEAT: ems_read(%04x) = %02x\n", port, ret); #endif return(ret); @@ -425,7 +445,7 @@ ems_init(neat_t *dev, int en) ems_read,NULL,NULL, ems_write,NULL,NULL, dev); } - pclog("NEAT: EMS disabled\n"); + neat_log("NEAT: EMS disabled\n"); return; } @@ -466,7 +486,7 @@ ems_init(neat_t *dev, int en) */ } - pclog("NEAT: EMS enabled, I/O=%04xH, Frame=%05XH\n", + neat_log("NEAT: EMS enabled, I/O=%04xH, Frame=%05XH\n", dev->ems_base, dev->ems_frame); } @@ -478,7 +498,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) int i; #if NEAT_DEBUG > 2 - pclog("NEAT: write(%04x, %02x)\n", port, val); + neat_log("NEAT: write(%04x, %02x)\n", port, val); #endif switch (port) { @@ -495,7 +515,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) *reg = (*reg & ~RA0_MASK) | val | \ (RA0_REV_ID << RA0_REV_SH); #if NEAT_DEBUG > 1 - pclog("NEAT: RA0=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RA0=%02x(%02x)\n", val, *reg); #endif break; @@ -503,7 +523,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RA1_MASK; *reg = (*reg & ~RA1_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RA1=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RA1=%02x(%02x)\n", val, *reg); #endif break; @@ -511,7 +531,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RA2_MASK; *reg = (*reg & ~RA2_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RA2=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RA2=%02x(%02x)\n", val, *reg); #endif break; @@ -520,7 +540,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) *reg = (*reg & ~RB0_MASK) | val | \ (RB0_REV_ID << RB0_REV_SH); #if NEAT_DEBUG > 1 - pclog("NEAT: RB0=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB0=%02x(%02x)\n", val, *reg); #endif break; @@ -528,7 +548,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB1_MASK; *reg = (*reg & ~RB1_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB1=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB1=%02x(%02x)\n", val, *reg); #endif break; @@ -536,7 +556,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB2_MASK; *reg = (*reg & ~RB2_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB2=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB2=%02x(%02x)\n", val, *reg); #endif break; @@ -544,7 +564,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB3_MASK; *reg = (*reg & ~RB3_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB3=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB3=%02x(%02x)\n", val, *reg); #endif break; @@ -552,7 +572,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB4_MASK; *reg = (*reg & ~RB4_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB4=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB4=%02x(%02x)\n", val, *reg); #endif break; @@ -560,7 +580,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB5_MASK; *reg = (*reg & ~RB5_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB5=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB5=%02x(%02x)\n", val, *reg); #endif break; @@ -568,7 +588,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB6_MASK; *reg = (*reg & ~RB6_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB6=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB6=%02x(%02x)\n", val, *reg); #endif break; @@ -576,7 +596,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB7_MASK; *reg = (*reg & ~RB7_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB7=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB7=%02x(%02x)\n", val, *reg); #endif if (val & RB7_EMSEN) ems_init(dev, 1); @@ -595,7 +615,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB8_MASK; *reg = (*reg & ~RB8_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB8=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB8=%02x(%02x)\n", val, *reg); #endif break; @@ -603,7 +623,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB9_MASK; *reg = (*reg & ~RB9_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB9=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB9=%02x(%02x)\n", val, *reg); #endif if (dev->regs[REG_RB7] & RB7_EMSEN) { ems_init(dev, 0); @@ -615,7 +635,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB10_MASK; *reg = (*reg & ~RB10_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB10=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB10=%02x(%02x)\n", val, *reg); #endif dev->ems[3].start = ((val & RB10_P3EXT) >> RB10_P3EXT_SH) << 21; @@ -630,7 +650,7 @@ neat_write(uint16_t port, uint8_t val, void *priv) val &= RB11_MASK; *reg = (*reg & ~RB11_MASK) | val; #if NEAT_DEBUG > 1 - pclog("NEAT: RB11=%02x(%02x)\n", val, *reg); + neat_log("NEAT: RB11=%02x(%02x)\n", val, *reg); #endif i = (val & RB11_EMSLEN) >> RB11_EMSLEN_SH; switch(i) { @@ -650,12 +670,12 @@ neat_write(uint16_t port, uint8_t val, void *priv) } dev->ems_pages = (dev->ems_size << 10) / EMS_PGSIZE; if (dev->regs[REG_RB7] & RB7_EMSEN) - pclog("NEAT: EMS %iKB (%i pages)\n", + neat_log("NEAT: EMS %iKB (%i pages)\n", dev->ems_size, dev->ems_pages); break; default: - pclog("NEAT: inv write to reg %02x (%02x)\n", + neat_log("NEAT: inv write to reg %02x (%02x)\n", dev->indx, val); break; } @@ -684,7 +704,7 @@ neat_read(uint16_t port, void *priv) } #if NEAT_DEBUG > 2 - pclog("NEAT: read(%04x) = %02x\n", port, ret); + neat_log("NEAT: read(%04x) = %02x\n", port, ret); #endif return(ret); @@ -838,10 +858,10 @@ neat_init(void) break; default: - pclog("NEAT: **INVALID DRAM SIZE %iKB !**\n", mem_size); + neat_log("NEAT: **INVALID DRAM SIZE %iKB !**\n", mem_size); } if (i > 0) - pclog("NEAT: using DRAM mode #%i (mem=%iKB)\n", i, mem_size); + neat_log("NEAT: using DRAM mode #%i (mem=%iKB)\n", i, mem_size); /* Set up an I/O handler for the chipset. */ io_sethandler(0x0022, 2,