Diff for /np2/cbus/pc9861k.c between versions 1.5 and 1.6

version 1.5, 2004/01/30 01:56:01 version 1.6, 2004/01/30 14:33:27
Line 9 Line 9
 #include        "pc9861k.h"  #include        "pc9861k.h"
   
   
         UINT            pc9861en;          _PC9861K        pc9861k;
         _PC9861CH       pc9861ch1;  
         _PC9861CH       pc9861ch2;  
   
         COMMNG          cm_pc9861ch1;          COMMNG          cm_pc9861ch1;
         COMMNG          cm_pc9861ch2;          COMMNG          cm_pc9861ch2;
   
Line 57  static void pc9861k_callback(COMMNG cm,  Line 54  static void pc9861k_callback(COMMNG cm, 
 void pc9861ch1cb(NEVENTITEM item) {  void pc9861ch1cb(NEVENTITEM item) {
   
         if (item->flag & NEVENT_SETEVENT) {          if (item->flag & NEVENT_SETEVENT) {
                 nevent_set(NEVENT_PC9861CH1, pc9861ch1.clk, pc9861ch1cb,                  nevent_set(NEVENT_PC9861CH1, pc9861k.ch1.clk, pc9861ch1cb,
                                                                                                                 NEVENT_RELATIVE);                                                                                                                  NEVENT_RELATIVE);
         }          }
         pc9861k_callback(cm_pc9861ch1, &pc9861ch1);          pc9861k_callback(cm_pc9861ch1, &pc9861k.ch1);
 }  }
   
 void pc9861ch2cb(NEVENTITEM item) {  void pc9861ch2cb(NEVENTITEM item) {
   
         if (item->flag & NEVENT_SETEVENT) {          if (item->flag & NEVENT_SETEVENT) {
                 nevent_set(NEVENT_PC9861CH2, pc9861ch2.clk, pc9861ch2cb,                  nevent_set(NEVENT_PC9861CH2, pc9861k.ch2.clk, pc9861ch2cb,
                                                                                                                 NEVENT_RELATIVE);                                                                                                                  NEVENT_RELATIVE);
         }          }
         pc9861k_callback(cm_pc9861ch2, &pc9861ch2);          pc9861k_callback(cm_pc9861ch2, &pc9861k.ch2);
 }  }
   
 static UINT32 pc9861k_getspeed(REG8 dip) {  static UINT32 pc9861k_getspeed(REG8 dip) {
Line 100  static void pc9861ch1_open(void) { Line 97  static void pc9861ch1_open(void) {
   
         cm_pc9861ch1 = commng_create(COMCREATE_PC9861K1);          cm_pc9861ch1 = commng_create(COMCREATE_PC9861K1);
   
         pc9861ch1.dip = np2cfg.pc9861sw[0];          pc9861k.ch1.dip = np2cfg.pc9861sw[0];
         pc9861ch1.speed = pc9861k_getspeed(pc9861ch1.dip);          pc9861k.ch1.speed = pc9861k_getspeed(pc9861k.ch1.dip);
         pc9861ch1.vect = ((np2cfg.pc9861sw[1] >> 1) & 1) |          pc9861k.ch1.vect = ((np2cfg.pc9861sw[1] >> 1) & 1) |
                                                 ((np2cfg.pc9861sw[1] << 1) & 2);                                                  ((np2cfg.pc9861sw[1] << 1) & 2);
         pc9861ch1.irq = ch1_irq[pc9861ch1.vect];          pc9861k.ch1.irq = ch1_irq[pc9861k.ch1.vect];
         pc9861_makeclk(&pc9861ch1, 10*2);          pc9861_makeclk(&pc9861k.ch1, 10*2);
         nevent_set(NEVENT_PC9861CH1, pc9861ch1.clk, pc9861ch1cb, NEVENT_ABSOLUTE);          nevent_set(NEVENT_PC9861CH1, pc9861k.ch1.clk,
                                                                                           pc9861ch1cb, NEVENT_ABSOLUTE);
 }  }
   
 static void pc9861ch2_open(void) {  static void pc9861ch2_open(void) {
   
         cm_pc9861ch2 = commng_create(COMCREATE_PC9861K2);          cm_pc9861ch2 = commng_create(COMCREATE_PC9861K2);
   
         pc9861ch2.dip = np2cfg.pc9861sw[2];          pc9861k.ch2.dip = np2cfg.pc9861sw[2];
         pc9861ch2.speed = pc9861k_getspeed(pc9861ch2.dip);          pc9861k.ch2.speed = pc9861k_getspeed(pc9861k.ch2.dip);
         pc9861ch2.vect = ((np2cfg.pc9861sw[1] >> 3) & 1) |          pc9861k.ch2.vect = ((np2cfg.pc9861sw[1] >> 3) & 1) |
                                                 ((np2cfg.pc9861sw[1] >> 1) & 2);                                                  ((np2cfg.pc9861sw[1] >> 1) & 2);
         pc9861ch2.irq = ch1_irq[pc9861ch2.vect];          pc9861k.ch2.irq = ch1_irq[pc9861k.ch2.vect];
         pc9861_makeclk(&pc9861ch2, 10*2);          pc9861_makeclk(&pc9861k.ch2, 10*2);
         nevent_set(NEVENT_PC9861CH2, pc9861ch2.clk, pc9861ch2cb, NEVENT_ABSOLUTE);          nevent_set(NEVENT_PC9861CH2, pc9861k.ch2.clk,
                                                                                           pc9861ch2cb, NEVENT_ABSOLUTE);
 }  }
   
   
Line 211  static void IOOUTCALL pc9861k_ob0(UINT p Line 210  static void IOOUTCALL pc9861k_ob0(UINT p
         if (cm_pc9861ch1 == NULL) {          if (cm_pc9861ch1 == NULL) {
                 pc9861ch1_open();                  pc9861ch1_open();
         }          }
         pc9861ch1.signal = dat;          pc9861k.ch1.signal = dat;
         (void)port;          (void)port;
 }  }
   
Line 220  static void IOOUTCALL pc9861k_ob2(UINT p Line 219  static void IOOUTCALL pc9861k_ob2(UINT p
         if (cm_pc9861ch2 == NULL) {          if (cm_pc9861ch2 == NULL) {
                 pc9861ch2_open();                  pc9861ch2_open();
         }          }
         pc9861ch2.signal = dat;          pc9861k.ch2.signal = dat;
         (void)port;          (void)port;
 }  }
   
Line 230  static REG8 IOINPCALL pc9861k_ib0(UINT p Line 229  static REG8 IOINPCALL pc9861k_ib0(UINT p
                 pc9861ch1_open();                  pc9861ch1_open();
         }          }
         (void)port;          (void)port;
         return(cm_pc9861ch1->getstat(cm_pc9861ch1) | pc9861ch1.vect);          return(cm_pc9861ch1->getstat(cm_pc9861ch1) | pc9861k.ch1.vect);
 }  }
   
 static REG8 IOINPCALL pc9861k_ib2(UINT port) {  static REG8 IOINPCALL pc9861k_ib2(UINT port) {
Line 239  static REG8 IOINPCALL pc9861k_ib2(UINT p Line 238  static REG8 IOINPCALL pc9861k_ib2(UINT p
                 pc9861ch2_open();                  pc9861ch2_open();
         }          }
         (void)port;          (void)port;
         return(cm_pc9861ch2->getstat(cm_pc9861ch2) | pc9861ch2.vect);          return(cm_pc9861ch2->getstat(cm_pc9861ch2) | pc9861k.ch2.vect);
 }  }
   
   
Line 248  static void IOOUTCALL pc9861k_ob1(UINT p Line 247  static void IOOUTCALL pc9861k_ob1(UINT p
         if (cm_pc9861ch1 == NULL) {          if (cm_pc9861ch1 == NULL) {
                 pc9861ch1_open();                  pc9861ch1_open();
         }          }
         pc9861data_w8(cm_pc9861ch1, &pc9861ch1, port, dat);          pc9861data_w8(cm_pc9861ch1, &pc9861k.ch1, port, dat);
 }  }
   
 static REG8 IOINPCALL pc9861k_ib1(UINT port) {  static REG8 IOINPCALL pc9861k_ib1(UINT port) {
Line 256  static REG8 IOINPCALL pc9861k_ib1(UINT p Line 255  static REG8 IOINPCALL pc9861k_ib1(UINT p
         if (cm_pc9861ch2 == NULL) {          if (cm_pc9861ch2 == NULL) {
                 pc9861ch1_open();                  pc9861ch1_open();
         }          }
         return(pc9861data_r8(cm_pc9861ch1, &pc9861ch1, port));          return(pc9861data_r8(cm_pc9861ch1, &pc9861k.ch1, port));
 }  }
   
   
Line 265  static void IOOUTCALL pc9861k_ob9(UINT p Line 264  static void IOOUTCALL pc9861k_ob9(UINT p
         if (cm_pc9861ch2 == NULL) {          if (cm_pc9861ch2 == NULL) {
                 pc9861ch2_open();                  pc9861ch2_open();
         }          }
         pc9861data_w8(cm_pc9861ch2, &pc9861ch2, port, dat);          pc9861data_w8(cm_pc9861ch2, &pc9861k.ch2, port, dat);
 }  }
   
 static REG8 IOINPCALL pc9861k_ib9(UINT port) {  static REG8 IOINPCALL pc9861k_ib9(UINT port) {
Line 273  static REG8 IOINPCALL pc9861k_ib9(UINT p Line 272  static REG8 IOINPCALL pc9861k_ib9(UINT p
         if (cm_pc9861ch2 == NULL) {          if (cm_pc9861ch2 == NULL) {
                 pc9861ch2_open();                  pc9861ch2_open();
         }          }
         return(pc9861data_r8(cm_pc9861ch2, &pc9861ch2, port));          return(pc9861data_r8(cm_pc9861ch2, &pc9861k.ch2, port));
 }  }
   
   
Line 300  void pc9861k_reset(void) { Line 299  void pc9861k_reset(void) {
         commng_destroy(cm_pc9861ch2);          commng_destroy(cm_pc9861ch2);
         cm_pc9861ch2 = NULL;          cm_pc9861ch2 = NULL;
   
         pc9861ch1 = pc9861def;          pc9861k.ch1 = pc9861def;
         pc9861ch2 = pc9861def;          pc9861k.ch2 = pc9861def;
         pc9861en = np2cfg.pc9861enable & 1;          pc9861k.en = np2cfg.pc9861enable & 1;
 }  }
   
 void pc9861k_bind(void) {  void pc9861k_bind(void) {
   
         if (pc9861en) {          pc9861k_deinitialize();
           if (pc9861k.en) {
                 iocore_attachout(0xb0, pc9861k_ob0);                  iocore_attachout(0xb0, pc9861k_ob0);
                 iocore_attachout(0xb2, pc9861k_ob2);                  iocore_attachout(0xb2, pc9861k_ob2);
                 iocore_attachinp(0xb0, pc9861k_ib0);                  iocore_attachinp(0xb0, pc9861k_ib0);

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


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