Diff for /np2/io/gdc.c between versions 1.14 and 1.16

version 1.14, 2004/02/09 20:39:39 version 1.16, 2004/02/11 17:39:59
Line 9 Line 9
 #include        "timing.h"  #include        "timing.h"
   
   
 #define SEARHC_SYNC  #define SEARCH_SYNC
 #define TURE_SYNC  #define TURE_SYNC
   
 typedef struct {  typedef struct {
Line 30  static const GDCCLK gdcclk[] = { Line 30  static const GDCCLK gdcclk[] = {
 static const UINT8 defdegpal[4] = {0x04,0x15,0x26,0x37};  static const UINT8 defdegpal[4] = {0x04,0x15,0x26,0x37};
   
 static const UINT8 defsyncm15[8] = {0x10,0x4e,0x07,0x25,0x0d,0x0f,0xc8,0x94};  static const UINT8 defsyncm15[8] = {0x10,0x4e,0x07,0x25,0x0d,0x0f,0xc8,0x94};
 static const UINT8 defsyncs15[8] = {0x06,0x26,0x03,0x11,0x86,0x0f,0xc8,0x84};  static const UINT8 defsyncs15[8] = {0x06,0x26,0x03,0x11,0x86,0x0f,0xc8,0x94};
   
 static const UINT8 defsyncm24[8] = {0x10,0x4e,0x07,0x25,0x07,0x07,0x90,0x65};  static const UINT8 defsyncm24[8] = {0x10,0x4e,0x07,0x25,0x07,0x07,0x90,0x65};
 static const UINT8 defsyncs24[8] = {0x06,0x26,0x03,0x11,0x83,0x07,0x90,0x65};  static const UINT8 defsyncs24[8] = {0x06,0x26,0x03,0x11,0x83,0x07,0x90,0x65};
Line 115  void gdc_paletteinit(void) { Line 115  void gdc_paletteinit(void) {
   
 static void vectdraw(void) {  static void vectdraw(void) {
   
         UINT32  csrw;          UINT32          csrw;
         UINT16  textw;  const GDCVECT   *vect;
           REG16           textw;
           REG8            ope;
   
         csrw = LOADINTELDWORD(gdc.s.para + GDC_CSRW);          csrw = LOADINTELDWORD(gdc.s.para + GDC_CSRW);
           vect = (GDCVECT *)(gdc.s.para + GDC_VECTW);
         textw = LOADINTELWORD(gdc.s.para + GDC_TEXTW);          textw = LOADINTELWORD(gdc.s.para + GDC_TEXTW);
           ope = gdc.s.para[GDC_WRITE];
   
         if (gdc.s.para[GDC_VECTW] & 0x8) {          if (vect->ope & 0x08) {
                 gdcsub_line(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW),                  gdcsub_line(csrw, vect, textw, ope);
                                                                                         textw, gdc.s.para[GDC_WRITE]);          }
         }          if (vect->ope & 0x10) {         // undocumented
         if (gdc.s.para[GDC_VECTW] & 0x20) {                  gdcsub_txt(csrw, vect, textw, ope);
                 gdcsub_circle(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW),          }
                                                                                         textw, gdc.s.para[GDC_WRITE]);          if (vect->ope & 0x20) {
         }                  gdcsub_circle(csrw, vect, textw, ope);
         if (gdc.s.para[GDC_VECTW] & 0x40) {          }
                 gdcsub_box(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW),          if (vect->ope & 0x40) {
                                                                                         textw, gdc.s.para[GDC_WRITE]);                  gdcsub_box(csrw, vect, textw, ope);
         }          }
 }  }
   
 static void textdraw(void) {  static void textdraw(void) {
   
         UINT32  csrw;          UINT32          csrw;
   const GDCVECT   *vect;
           REG16           textw;
           REG8            ope;
   
         if (gdc.s.para[GDC_VECTW] & 0x10) {          csrw = LOADINTELDWORD(gdc.s.para + GDC_CSRW);
                 csrw = LOADINTELDWORD(gdc.s.para + GDC_CSRW);          vect = (GDCVECT *)(gdc.s.para + GDC_VECTW);
                 gdcsub_text(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW),          textw = gdc.s.para[GDC_TEXTW + 7];
                                                                                         gdc.s.para + GDC_TEXTW,          textw = (textw << 8) + textw;
                                                                                         gdc.s.para[GDC_WRITE]);          ope = gdc.s.para[GDC_WRITE];
   
           if (vect->ope & 0x08) {         // undocumented
                   gdcsub_line(csrw, vect, textw, ope);
           }
           if (vect->ope & 0x10) {
                   gdcsub_text(csrw, vect, gdc.s.para + GDC_TEXTW, ope);
           }
           if (vect->ope & 0x20) {         // undocumented
                   gdcsub_circle(csrw, vect, textw, ope);
           }
           if (vect->ope & 0x40) {         // undocumented
                   gdcsub_box(csrw, vect, textw, ope);
         }          }
 }  }
   
Line 211  void gdc_work(int id) { Line 230  void gdc_work(int id) {
                                                 textdraw();                                                  textdraw();
                                         }                                          }
                                         break;                                          break;
                                   
                         }                          }
                         item->ptr = gdc_cmd[data].pos;                          item->ptr = gdc_cmd[data].pos;
                         item->rcv = gdc_cmd[data].outdatas;                          item->rcv = gdc_cmd[data].outdatas;
Line 499  static REG8 IOINPCALL gdc_i60(UINT port) Line 517  static REG8 IOINPCALL gdc_i60(UINT port)
         else {          else {
                 gdc_work(GDCWORK_MASTER);                  gdc_work(GDCWORK_MASTER);
         }          }
 #ifdef SEARHC_SYNC  #ifdef SEARCH_SYNC
         if ((CPU_INPADRS) && (CPU_REMCLOCK >= 5)) {          if ((CPU_INPADRS) && (CPU_REMCLOCK >= 5)) {
                 UINT16 jadr = 0xfa74;                  UINT16 jadr = 0xfa74;
                 UINT16 memv;                  UINT16 memv;
Line 667  static REG8 IOINPCALL gdc_ia0(UINT port) Line 685  static REG8 IOINPCALL gdc_ia0(UINT port)
                 gdc_work(GDCWORK_SLAVE);                  gdc_work(GDCWORK_SLAVE);
                 TRACEOUT(("gdc.s.cnt=%d", gdc.s.cnt));                  TRACEOUT(("gdc.s.cnt=%d", gdc.s.cnt));
         }          }
 #ifdef SEARHC_SYNC  #ifdef SEARCH_SYNC
         if ((CPU_INPADRS) && (CPU_REMCLOCK >= 5)) {          if ((CPU_INPADRS) && (CPU_REMCLOCK >= 5)) {
                 UINT16 jadr = 0xfa74;                  UINT16 jadr = 0xfa74;
                 UINT16 memv;                  UINT16 memv;

Removed from v.1.14  
changed lines
  Added in v.1.16


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