|
|
| version 1.6, 2004/08/04 15:18:25 | version 1.9, 2004/08/05 11:30:12 |
|---|---|
| Line 7 | Line 7 |
| #include "z80core.h" | #include "z80core.h" |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "x1_io.h" | |
| #include "x1_crtc.h" | |
| #include "draw.h" | #include "draw.h" |
| #include "sound.h" | #include "sound.h" |
| #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 33 const OEMCHAR xmilversion[] = OEMTEXT(XM | Line 30 const OEMCHAR xmilversion[] = OEMTEXT(XM |
| 1, | 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 42 const OEMCHAR xmilversion[] = OEMTEXT(XM | Line 39 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 75 void ipl_load(void) { | Line 71 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 110 BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | Line 95 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 119 BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | Line 104 BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ |
| calendar_initialize(); | calendar_initialize(); |
| subcpu_reset(); | |
| ppi_reset(); | |
| init_crtc(); | |
| cgrom_reset(); | cgrom_reset(); |
| cmt_reset(); | cmt_reset(); |
| crtc_reset(); | |
| ctc_reset(); | ctc_reset(); |
| dmac_reset(); | dmac_reset(); |
| fdc_reset(); | fdc_reset(); |
| memio_reset(); | |
| pcg_reset(); | pcg_reset(); |
| ppi_reset(); | |
| sio_reset(); | sio_reset(); |
| sndboard_reset(); | sndboard_reset(); |
| subcpu_reset(); | |
| vramio_reset(); | vramio_reset(); |
| timing_reset(); | timing_reset(); |
| Line 144 BYTE reset_x1(BYTE ROM_TYPE, BYTE SOUND_ | Line 129 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 225 void iptrace_out(void) { | Line 209 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 257 extern BYTE disp_flashscreen; | Line 231 extern BYTE disp_flashscreen; |
| if (inttiming != 3) { | if (inttiming != 3) { |
| if (xmilcfg.SOUNDPLY) { | if (xmilcfg.SOUNDPLY) { |
| sound_makesample(pcmbufsize[s_cnt]); | sound_makesample(pcmbufsize[s_cnt]); |
| juliet2_exec(); | // juliet2_exec(); |
| } | } |
| s_cnt++; | s_cnt++; |
| x1_ctc_int(); | x1_ctc_int(); |
| Line 269 extern BYTE disp_flashscreen; | Line 243 extern BYTE disp_flashscreen; |
| } | } |
| } | } |
| v_cnt++; | v_cnt++; |
| if (crtc.CRT_YL == v_cnt) { | if (crtc.s.CRT_YL == v_cnt) { |
| // TRACEOUT(("--->sync")); | // TRACEOUT(("--->sync")); |
| pcg.r.vsync = 1; | pcg.r.vsync = 1; |
| if (xmilcfg.DISPSYNC == 1) { | if (xmilcfg.DISPSYNC == 1) { |
| Line 278 extern BYTE disp_flashscreen; | Line 252 extern BYTE disp_flashscreen; |
| } | } |
| } | } |
| } | } |
| if (++flame >= 60) { | calendar_inc(); |
| flame = 0; | |
| calendar_inc(); | |
| } | |
| if (!xmilcfg.SOUNDPLY) { | if (!xmilcfg.SOUNDPLY) { |
| sound_makesample(framesoundcnt); | sound_makesample(framesoundcnt); |
| } | } |