Diff for /xmil/io/pcg.c between versions 1.6 and 1.8

version 1.6, 2004/08/12 13:32:52 version 1.8, 2004/08/13 04:08:33
Line 2 Line 2
 #include        "z80core.h"  #include        "z80core.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
   #include        "nevent.h"
 #include        "vram.h"  #include        "vram.h"
 #include        "font.h"  #include        "font.h"
   
Line 48  static UINT knj_offset(void) { Line 49  static UINT knj_offset(void) {
   
 static UINT nowsyncoffset(void) {  static UINT nowsyncoffset(void) {
   
         UINT    ret;          SINT32  clock;
         UINT    h;          UINT    h;
         UINT    v;          UINT    v;
           UINT    ret;
           UINT    line;
   
         v = pccore_getraster(&h);          clock = nevent_getwork(NEVENT_FRAMES);
           if (corestat.vsync) {
         ret = ((v / crtc.e.fonty) * crtc.s.TXT_XL) + crtc.s.TXT_TOP;                  clock += corestat.dispclock;
         ret += (h * crtc.s.TXT_XL) / 250;          }
           v = clock / RASTER_CLOCK;
           h = clock - (v * RASTER_CLOCK);
           ret = v / crtc.e.fonty;
           line = v - (ret * crtc.e.fonty);
           ret = (ret * crtc.s.reg[CRTCREG_HDISP]) + crtc.e.pos;
           ret += (h * crtc.s.reg[CRTCREG_HDISP]) / RASTER_CLOCK;
         if (ret >= 0x0800) {          if (ret >= 0x0800) {
                 ret = 0x07ff;           // オーバーフロー                  ret = 0x07ff;           // オーバーフロー
         }          }
Line 123  REG8 IOINPCALL pcg_i(UINT port) { Line 131  REG8 IOINPCALL pcg_i(UINT port) {
   
         UINT    off;          UINT    off;
         int             l;          int             l;
         BYTE    chr,knj,val;          UINT8   chr,knj,val;
   
         val = 0xff;          val = 0xff;
         if (crtc.s.SCRN_BITS & SCRN_PCGMODE) {          if (crtc.s.SCRN_BITS & SCRN_PCGMODE) {
Line 133  REG8 IOINPCALL pcg_i(UINT port) { Line 141  REG8 IOINPCALL pcg_i(UINT port) {
                         chr = tram[TRAM_ANK + off];                          chr = tram[TRAM_ANK + off];
                         knj = tram[TRAM_KNJ + off];                          knj = tram[TRAM_KNJ + off];
                         if (knj & 0x80) {                          if (knj & 0x80) {
                                 DWORD p;                                  UINT p;
                                 p = ((((DWORD)knj << 8) | chr) & 0x1fff) << 4;                                  p = (((knj << 8) | chr) & 0x1fff) << 4;
                                 if (knj & 0x40) {                                  if (knj & 0x40) {
                                         val = font_knjx1t[p + l + FONTX1T_LR];                                          val = font_knjx1t[p + l + FONTX1T_LR];
                                 }                                  }

Removed from v.1.6  
changed lines
  Added in v.1.8


RetroPC.NET-CVS <cvs@retropc.net>