| version 1.7, 2004/08/04 17:09:25 | version 1.11, 2004/08/05 16:47:26 | 
| Line 12 | Line 12 | 
 | #include        "sndctrl.h" | #include        "sndctrl.h" | 
 | #include        "menu.h" | #include        "menu.h" | 
 | #include        "font.h" | #include        "font.h" | 
 | #include        "juliet.h" |  | 
 | #include        "xmilver.h" | #include        "xmilver.h" | 
 | #include        "fddfile.h" | #include        "fddfile.h" | 
 | #include        "calendar.h" | #include        "calendar.h" | 
| Line 28  const OEMCHAR xmilversion[] = OEMTEXT(XM | Line 27  const OEMCHAR xmilversion[] = OEMTEXT(XM | 
 | 0, 0, | 0, 0, | 
 | 0, 0, | 0, 0, | 
 | 0, 0, 0, | 0, 0, 0, | 
 | 1, |  | 
 | 1, 0}; | 1, 0}; | 
 |  |  | 
| PCCORE          pccore = {250, 0, 1, 1, 0}; | PCCORE          pccore = {250, 0, 1, 0}; | 
 | BYTE            mMAIN[0x10000]; | BYTE            mMAIN[0x10000]; | 
 | BYTE            mBIOS[0x8000]; | BYTE            mBIOS[0x8000]; | 
 | BYTE            mBANK[16][0x8000]; | BYTE            mBANK[16][0x8000]; | 
| Line 40  const OEMCHAR xmilversion[] = OEMTEXT(XM | Line 38  const OEMCHAR xmilversion[] = OEMTEXT(XM | 
 |  |  | 
 | BYTE            *RAM0r; | BYTE            *RAM0r; | 
 | BYTE            *RAM0w; | BYTE            *RAM0w; | 
 | BYTE            lastmem; |  | 
 | DWORD           h_cntbase; | DWORD           h_cntbase; | 
 | BRESULT         soundrenewal; | BRESULT         soundrenewal; | 
 |  |  | 
| Line 73  void ipl_load(void) { | Line 70  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) { | BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_SW, BYTE DIP_SW) { | 
 |  |  | 
 | pccore.HSYNC_CLK = 250; | pccore.HSYNC_CLK = 250; | 
 | pccore.ROM_SW = 1; |  | 
 | pccore.ROM_TYPE = ROM_TYPE; | pccore.ROM_TYPE = ROM_TYPE; | 
 | pccore.SOUND_SW = SOUND_SW; | pccore.SOUND_SW = SOUND_SW; | 
 | pccore.DIP_SW = DIP_SW; | pccore.DIP_SW = DIP_SW; | 
| Line 108  BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | Line 94  BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | 
 | ipl_load(); | ipl_load(); | 
 |  |  | 
 | Z80_RESET(); | Z80_RESET(); | 
 |  | iocore_reset(); | 
 |  |  | 
 | lastmem = 0x78; |  | 
 | RAM0r = mBIOS; | RAM0r = mBIOS; | 
 | RAM0w = mMAIN; | RAM0w = mMAIN; | 
 | h_cntbase = 0; | h_cntbase = 0; | 
| Line 123  BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | Line 109  BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | 
 | ctc_reset(); | ctc_reset(); | 
 | dmac_reset(); | dmac_reset(); | 
 | fdc_reset(); | fdc_reset(); | 
 |  | memio_reset(); | 
 | pcg_reset(); | pcg_reset(); | 
 | ppi_reset(); | ppi_reset(); | 
 | sio_reset(); | sio_reset(); | 
| Line 141  BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | Line 128  BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | 
 | ***********************************************************************/ | ***********************************************************************/ | 
 |  |  | 
 | static  BYTE    keyintcnt = 0; | static  BYTE    keyintcnt = 0; | 
 | static  BYTE    flame = 0; |  | 
 | static  BYTE    inttiming = 0; |  | 
 |  |  | 
 | void pccore_initialize(void) { | void pccore_initialize(void) { | 
 |  |  | 
 | sndctrl_initialize(); | sndctrl_initialize(); | 
 |  |  | 
 | init_draw(); | init_draw(); | 
| fnt_load(); | font_load(NULL, TRUE); | 
 |  |  | 
 |  | crtc_initialize(); | 
 | pcg_initialize(); | pcg_initialize(); | 
 | ppi_initialize(); | ppi_initialize(); | 
 |  |  | 
| Line 168  void pccore_reset(void) { | Line 154  void pccore_reset(void) { | 
 | 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 222  void iptrace_out(void) { | Line 210  void iptrace_out(void) { | 
 |  |  | 
 | void x1r_exec(void) { | void x1r_exec(void) { | 
 |  |  | 
| extern  BYTE    disp_flashscreen; | REG8    inttiming; | 
 |  |  | 
 | v_cnt = 0; | v_cnt = 0; | 
 | s_cnt = 0; | s_cnt = 0; | 
 | xmilcfg.DISPSYNC &= 1; | xmilcfg.DISPSYNC &= 1; | 
 | inttiming = xmilcfg.CPU8MHz & 1; | inttiming = xmilcfg.CPU8MHz & 1; | 
 | //      TRACEOUT(("*sync")); |  | 
 |  |  | 
 | while(s_cnt < 266) { | while(s_cnt < 266) { | 
 | while(h_cnt < pccore.HSYNC_CLK) { | 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 | #if IPTRACE | 
 | treip[trpos & (IPTRACE - 1)] = Z80_PC; | treip[trpos & (IPTRACE - 1)] = Z80_PC; | 
 | trpos++; | trpos++; | 
| Line 252  extern BYTE disp_flashscreen; | Line 230  extern BYTE disp_flashscreen; | 
 | 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 267  extern BYTE disp_flashscreen; | Line 245  extern BYTE disp_flashscreen; | 
 | } | } | 
 | 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; | xmilcfg.DISPSYNC |= 0x80; | 
| Line 275  extern BYTE disp_flashscreen; | Line 252  extern BYTE disp_flashscreen; | 
 | } | } | 
 | } | } | 
 | } | } | 
| if (++flame >= 60) { | sound_sync(); | 
| flame = 0; | calendar_inc(); | 
| calendar_inc(); |  | 
| } |  | 
| if (!xmilcfg.SOUNDPLY) { |  | 
| sound_makesample(framesoundcnt); |  | 
| } |  | 
 | if (!(xmilcfg.DISPSYNC & 0x80)) { | if (!(xmilcfg.DISPSYNC & 0x80)) { | 
 | scrnupdate(); | scrnupdate(); | 
 | } | } |