--- xmil/pccore.c 2004/08/01 05:31:29 1.1 +++ xmil/pccore.c 2004/08/05 04:53:15 1.8 @@ -7,10 +7,6 @@ #include "z80core.h" #include "pccore.h" #include "iocore.h" -#include "x1_io.h" -#include "x1_crtc.h" -#include "x1_vram.h" -#include "x1_fdc.h" #include "draw.h" #include "sound.h" #include "sndctrl.h" @@ -35,19 +31,15 @@ const OEMCHAR xmilversion[] = OEMTEXT(XM 1, 1, 0}; - PCCORE pccore = {250, 0, 1, 1, 0}; + PCCORE pccore = {250, 0, 1, 0}; BYTE mMAIN[0x10000]; BYTE mBIOS[0x8000]; BYTE mBANK[16][0x8000]; -// BYTE KNJ_FNT[0x4bc00]; - BYTE GRP_RAM[0x20000]; - BYTE TXT_RAM[0x01800]; WORD v_cnt; int s_cnt; BYTE *RAM0r; BYTE *RAM0w; - BYTE lastmem; DWORD h_cntbase; BRESULT soundrenewal; @@ -62,16 +54,16 @@ void ipl_load(void) { FILEH hdl; ZeroMemory(mBIOS, sizeof(mBIOS)); - memcpy(mBIOS, DEFROM, sizeof(DEFROM)); + CopyMemory(mBIOS, DEFROM, sizeof(DEFROM)); if (pccore.ROM_TYPE >= 2) { - if ((hdl = file_open_c("IPLROM.X1T")) != FILEH_INVALID) { + if ((hdl = file_open_c(OEMTEXT("IPLROM.X1T"))) != FILEH_INVALID) { file_read(hdl, mBIOS, 0x8000); file_close(hdl); } } else if (pccore.ROM_TYPE == 1) { - if ((hdl = file_open_c("IPLROM.X1")) != FILEH_INVALID) { + if ((hdl = file_open_c(OEMTEXT("IPLROM.X1"))) != FILEH_INVALID) { file_read(hdl, mBIOS, 0x8000); file_close(hdl); } @@ -80,23 +72,12 @@ void ipl_load(void) { /*********************************************************************** - FONT-ROM LOAD -***********************************************************************/ - -void fnt_load(void) { - - font_load(NULL, TRUE); -} - - -/*********************************************************************** ½é´ü²½ ***********************************************************************/ BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_SW, BYTE DIP_SW) { pccore.HSYNC_CLK = 250; - pccore.ROM_SW = 1; pccore.ROM_TYPE = ROM_TYPE; pccore.SOUND_SW = SOUND_SW; pccore.DIP_SW = DIP_SW; @@ -115,8 +96,8 @@ BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ ipl_load(); Z80_RESET(); + iocore_reset(); - lastmem = 0x78; RAM0r = mBIOS; RAM0w = mMAIN; h_cntbase = 0; @@ -124,19 +105,19 @@ BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ calendar_initialize(); - init_fdc(); - subcpu_reset(); - ppi_reset(); - init_crtc(); - init_vram(); - cgrom_reset(); cmt_reset(); + crtc_reset(); ctc_reset(); dmac_reset(); + fdc_reset(); + memio_reset(); pcg_reset(); + ppi_reset(); sio_reset(); sndboard_reset(); + subcpu_reset(); + vramio_reset(); timing_reset(); return(SUCCESS); @@ -157,8 +138,9 @@ void pccore_initialize(void) { sndctrl_initialize(); init_draw(); - fnt_load(); + font_load(NULL, TRUE); + crtc_initialize(); pcg_initialize(); ppi_initialize(); @@ -236,9 +218,19 @@ extern BYTE disp_flashscreen; s_cnt = 0; xmilcfg.DISPSYNC &= 1; inttiming = xmilcfg.CPU8MHz & 1; +// TRACEOUT(("*sync")); while(s_cnt < 266) { while(h_cnt < pccore.HSYNC_CLK) { +#if defined(TRACE) +// TRACEOUT(("%.4x", Z80_PC)); +// if (Z80_PC == 0x8198) { +// TRACEOUT(("---->sound")); +// } +// if (Z80_PC == 0x8188) { +// TRACEOUT(("-- poll sound")); +// } +#endif #if IPTRACE treip[trpos & (IPTRACE - 1)] = Z80_PC; trpos++; @@ -264,7 +256,8 @@ extern BYTE disp_flashscreen; } } v_cnt++; - if (crtc.CRT_YL == v_cnt) { + if (crtc.s.CRT_YL == v_cnt) { +// TRACEOUT(("--->sync")); pcg.r.vsync = 1; if (xmilcfg.DISPSYNC == 1) { xmilcfg.DISPSYNC |= 0x80;