|
|
| version 1.9, 2004/08/05 11:30:12 | version 1.17, 2004/08/08 17:45:52 |
|---|---|
| Line 4 | Line 4 |
| #include "soundmng.h" | #include "soundmng.h" |
| #include "sysmng.h" | #include "sysmng.h" |
| #include "timemng.h" | #include "timemng.h" |
| #include "xmilver.h" | |
| #include "z80core.h" | #include "z80core.h" |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "draw.h" | #include "timing.h" |
| #include "calendar.h" | |
| #include "keystat.h" | |
| #include "palettes.h" | |
| #include "makescrn.h" | |
| #include "sound.h" | #include "sound.h" |
| #include "sndctrl.h" | #include "sndctrl.h" |
| #include "menu.h" | |
| #include "font.h" | #include "font.h" |
| #include "xmilver.h" | |
| #include "fddfile.h" | #include "fddfile.h" |
| #include "calendar.h" | |
| #include "timing.h" | |
| #include "defrom.res" | #include "defrom.res" |
| #include "keystat.h" | |
| const OEMCHAR xmilversion[] = OEMTEXT(XMILVER_CORE); | const OEMCHAR xmilversion[] = OEMTEXT(XMILVER_CORE); |
| XMILCFG xmilcfg = { 0, 0, 1, 0, 1, 2, 0, 1, | XMILCFG xmilcfg = { 2, 0, 1, |
| 22050, 1000, 0, 80, | 1, 0, 0, 0, |
| 0, 0, | 22050, 500, 0, 0, 80, |
| 0, 0, | 0, 0, 0, 0}; |
| 0, 0, 0, | |
| 1, | |
| 1, 0}; | |
| PCCORE pccore = {250, 0, 1, 0}; | PCCORE pccore = {250, 0, 1, 0}; |
| CORESTAT corestat; | |
| BYTE mMAIN[0x10000]; | BYTE mMAIN[0x10000]; |
| BYTE mBIOS[0x8000]; | BYTE mBIOS[0x8000]; |
| BYTE mBANK[16][0x8000]; | #if defined(SUPPORT_EMS) |
| WORD v_cnt; | UINT8 mBANK[16][0x8000]; |
| int s_cnt; | #endif |
| UINT v_cnt; | |
| UINT s_cnt; | |
| BYTE *RAM0r; | BYTE *RAM0r; |
| BYTE *RAM0w; | BYTE *RAM0w; |
| DWORD h_cntbase; | DWORD h_cntbase; |
| BRESULT soundrenewal; | |
| Line 48 const OEMCHAR xmilversion[] = OEMTEXT(XM | Line 47 const OEMCHAR xmilversion[] = OEMTEXT(XM |
| IPL-ROM LOAD | IPL-ROM LOAD |
| ***********************************************************************/ | ***********************************************************************/ |
| void ipl_load(void) { | static void ipl_load(void) { |
| FILEH hdl; | FILEH hdl; |
| Line 74 void ipl_load(void) { | Line 73 void ipl_load(void) { |
| 初期化 | 初期化 |
| ***********************************************************************/ | ***********************************************************************/ |
| BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_SW, BYTE DIP_SW) { | static BRESULT reset_x1(BYTE ROM_TYPE, BYTE SOUND_SW, BYTE DIP_SW) { |
| pccore.HSYNC_CLK = 250; | pccore.HSYNC_CLK = 250; |
| pccore.ROM_TYPE = ROM_TYPE; | pccore.ROM_TYPE = ROM_TYPE; |
| Line 91 BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | Line 90 BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ |
| scrnmng_setcolormode(FALSE); | scrnmng_setcolormode(FALSE); |
| } | } |
| textdrawproc_renewal(); | |
| ipl_load(); | ipl_load(); |
| Z80_RESET(); | Z80_RESET(); |
| Line 118 BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | Line 116 BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ |
| subcpu_reset(); | subcpu_reset(); |
| vramio_reset(); | vramio_reset(); |
| pal_reset(); | |
| makescrn_reset(); | |
| timing_reset(); | timing_reset(); |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| Line 133 static BYTE keyintcnt = 0; | Line 133 static BYTE keyintcnt = 0; |
| void pccore_initialize(void) { | void pccore_initialize(void) { |
| sndctrl_initialize(); | sndctrl_initialize(); |
| makescrn_initialize(); | |
| init_draw(); | |
| font_load(NULL, TRUE); | font_load(NULL, TRUE); |
| crtc_initialize(); | crtc_initialize(); |
| pcg_initialize(); | pcg_initialize(); |
| ppi_initialize(); | ppi_initialize(); |
| reset_x1(xmilcfg.ROM_TYPE, xmilcfg.SOUND_SW, xmilcfg.DIP_SW); | |
| // keystat_initialize(); | |
| // keystat_reset(); | |
| } | } |
| void pccore_reset(void) { | void pccore_reset(void) { |
| soundmng_stop(); | soundmng_stop(); |
| if (soundrenewal) { | if (corestat.soundrenewal) { |
| soundrenewal = 0; | corestat.soundrenewal = 0; |
| sndctrl_deinitialize(); | sndctrl_deinitialize(); |
| sndctrl_initialize(); | sndctrl_initialize(); |
| } | } |
| sound_reset(); | |
| reset_x1(xmilcfg.ROM_TYPE, xmilcfg.SOUND_SW, xmilcfg.DIP_SW); | reset_x1(xmilcfg.ROM_TYPE, xmilcfg.SOUND_SW, xmilcfg.DIP_SW); |
| soundmng_play(); | soundmng_play(); |
| } | } |
| Line 205 void iptrace_out(void) { | Line 202 void iptrace_out(void) { |
| } | } |
| #endif | #endif |
| void pccore_exec(BRESULT draw) { | |
| void x1r_exec(void) { | |
| REG8 inttiming; | REG8 inttiming; |
| corestat.drawframe = draw; | |
| soundmng_sync(); | |
| v_cnt = 0; | v_cnt = 0; |
| s_cnt = 0; | s_cnt = 0; |
| xmilcfg.DISPSYNC &= 1; | |
| inttiming = xmilcfg.CPU8MHz & 1; | inttiming = xmilcfg.CPU8MHz & 1; |
| while(s_cnt < 266) { | while(s_cnt < 266) { |
| while(h_cnt < pccore.HSYNC_CLK) { | while(h_cnt < pccore.HSYNC_CLK) { |
| #if IPTRACE | #if defined(TRACE) && IPTRACE |
| treip[trpos & (IPTRACE - 1)] = Z80_PC; | treip[trpos & (IPTRACE - 1)] = Z80_PC; |
| trpos++; | trpos++; |
| #endif | #endif |
| Line 229 void x1r_exec(void) { | Line 226 void x1r_exec(void) { |
| h_cntbase += pccore.HSYNC_CLK; | h_cntbase += pccore.HSYNC_CLK; |
| inttiming ^= 2; | inttiming ^= 2; |
| if (inttiming != 3) { | if (inttiming != 3) { |
| if (xmilcfg.SOUNDPLY) { | sound_makesample(pcmbufsize[s_cnt]); |
| sound_makesample(pcmbufsize[s_cnt]); | // if (xmilcfg.SOUNDPLY) { |
| // juliet2_exec(); | // juliet2_exec(); |
| } | // } |
| s_cnt++; | s_cnt++; |
| x1_ctc_int(); | x1_ctc_int(); |
| if (!((++keyintcnt) & 15)) { | if (!((++keyintcnt) & 15)) { |
| Line 244 void x1r_exec(void) { | Line 241 void x1r_exec(void) { |
| } | } |
| v_cnt++; | v_cnt++; |
| if (crtc.s.CRT_YL == v_cnt) { | if (crtc.s.CRT_YL == v_cnt) { |
| // TRACEOUT(("--->sync")); | |
| pcg.r.vsync = 1; | pcg.r.vsync = 1; |
| if (xmilcfg.DISPSYNC == 1) { | if (xmilcfg.DISPSYNC & 1) { |
| xmilcfg.DISPSYNC |= 0x80; | |
| scrnupdate(); | scrnupdate(); |
| } | } |
| } | } |
| } | } |
| scrnupdate(); | |
| calendar_inc(); | calendar_inc(); |
| if (!xmilcfg.SOUNDPLY) { | sound_sync(); |
| sound_makesample(framesoundcnt); | |
| } | |
| if (!(xmilcfg.DISPSYNC & 0x80)) { | |
| scrnupdate(); | |
| } | |
| } | } |