--- np2/pccore.c 2003/10/21 11:22:05 1.7 +++ np2/pccore.c 2003/11/12 20:02:54 1.14 @@ -4,6 +4,7 @@ #include "timemng.h" #include "i286.h" #include "memory.h" +#include "np2ver.h" #include "pccore.h" #include "iocore.h" #include "cbuscore.h" @@ -28,23 +29,23 @@ #include "calendar.h" #include "timing.h" //#include "hostdrv.h" +#include "debugsub.h" - const char np2version[] = "ver.0.38"; + const char np2version[] = NP2VER_CORE; NP2CFG np2cfg = { PCBASECLOCK25, 4, 0, {0x3e, 0x63, 0x7a}, - {0x48, 0x05, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x6E}, - {0x0c, 0x08, 0x0c, 0x06, 0x03, 0x0c}, // ver0.27 + {0x48, 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6E}, + {0x0c, 0x0c, 0x08, 0x06, 0x03, 0x0c}, {1, 1, 6, 1, 8, 1}, 0, 4, 32, 22050, 800, 0, 1, 1, 0, 0, 0, -// 0, 0, {1, 2, 2, 1}, // ver0.28 0, {0, 0, 0}, 0xd1, 0x7f, 0xd1, 0, 0, 1, 0x82, // ver0.30 1, 80, 3, 1, 1, 0, 0x000000, 0xffffff, 0, 0, 0, 0x40, 0, - 64, 64, 64, 64, 64, // ver0.27 + 64, 64, 64, 64, 64, 0, {0x17, 0x04, 0x1f}, {0x0c, 0x0c, 0x02, 0x10, 0x3f, 0x3f}, 2, 1, 0, 0, {"", ""}, ""}; @@ -61,9 +62,10 @@ 100, 20, 0}; - // on=0, off=1 - BYTE dip_default[3] = {0x3e, 0x63, 0x7a}; - BYTE msw_default[8] = {0x48, 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6E}; +// // on=0, off=1 +// BYTE dip_default[3] = {0x3e, 0x63, 0x7a}; +static const BYTE msw_default[8] = + {0x48, 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6E}; BYTE screenupdate = 3; int screendispflag = 1; @@ -71,12 +73,12 @@ BOOL drawframe; UINT drawcount = 0; - BYTE mem[0x200000]; // ver0.28 + BYTE mem[0x200000]; // --------------------------------------------------------------------------- -static void setvsyncclock(void) { // ver0.28 +static void setvsyncclock(void) { UINT vfp; UINT vbp; @@ -202,6 +204,8 @@ void pccore_init(void) { void pccore_term(void) { + sound_term(); + fdd_eject(0); fdd_eject(1); fdd_eject(2); @@ -215,8 +219,6 @@ void pccore_term(void) { rs232c_destruct(); mpu98ii_destruct(); - sound_term(); - sxsi_trash(); } @@ -286,7 +288,7 @@ void pccore_reset(void) { cbuscore_bind(); fmboard_bind(); - timing_init(); + timing_reset(); fddmtr_init(); calendar_init(); vram_init(); @@ -487,6 +489,7 @@ void screenvsync(NEVENTITEM item) { void pccore_exec(BOOL draw) { drawframe = draw; + keyext_flash(); soundmng_sync(); mouseif_sync(); pal_eventclear(); @@ -513,7 +516,7 @@ void pccore_exec(BOOL draw) { i286_resetprefetch(); } -#if 1 // ndef TRACE +#ifndef TRACE if (I286_REMCLOCK > 0) { if (!(CPUTYPE & CPUTYPE_V30)) { i286(); @@ -523,20 +526,24 @@ void pccore_exec(BOOL draw) { } } #else - while(nevent.remainclock > 0) { -{ -static FILEH fh = FILEH_INVALID; -if (I286_CS == 0x0e14) { - if (fh == FILEH_INVALID) { - fh = file_create("log.txt"); + while(I286_REMCLOCK > 0) { +static BYTE sw = 0; +if (*(UINT32 *)(mem + 0x48) == 0x18000114) { + if (sw == 0) { + sw = 1; + TRACEOUT(("[%.8x] %.4x:%.4x %s", + *(UINT32 *)(mem + 0x48), + I286_CS, I286_IP, debugsub_regs())); + } +} +else { + if (sw != 0) { + sw = 0; + TRACEOUT(("[%.8x] %.4x:%.4x %s", + *(UINT32 *)(mem + 0x48), + I286_CS, I286_IP, debugsub_regs())); } } -if (fh != FILEH_INVALID) { -char buf[32]; -wsprintf(buf, "%.4x:%.4x\r\n", I286_CS, I286_IP); -file_write(fh, buf, strlen(buf)); -} -} i286_step(); } #endif