Diff for /np2/cbus/mpu98ii.c between versions 1.2 and 1.3

version 1.2, 2003/10/21 11:22:05 version 1.3, 2003/12/08 00:55:30
Line 40  enum { Line 40  enum {
         COMMNG          cm_mpu98;          COMMNG          cm_mpu98;
   
   
 static const BYTE mpuirqnum[4] = {3, 5, 6, 12};  static const UINT8 mpuirqnum[4] = {3, 5, 6, 12};
   
 static const BYTE fd_step1[4][4] = {{0, 0, 0, 0}, {1, 0, 0, 0},  static const UINT8 fd_step1[4][4] = {{0, 0, 0, 0}, {1, 0, 0, 0},
                                                                 {1, 0, 1, 0}, {1, 1, 1, 0}};                                                                          {1, 0, 1, 0}, {1, 1, 1, 0}};
   
   
 static void makeintclock(void) {  static void makeintclock(void) {
Line 58  static void makeintclock(void) { Line 58  static void makeintclock(void) {
         mpu98.clock = (pc.realclock * 5 / l);           //      /12          mpu98.clock = (pc.realclock * 5 / l);           //      /12
 }  }
   
 static void sendallclocks(BYTE data) {  static void sendallclocks(REG8 data) {
   
         BYTE    quarter;          REG8    quarter;
         int             i;          int             i;
   
         quarter = data >> 2;          quarter = data >> 2;
Line 68  static void sendallclocks(BYTE data) { Line 68  static void sendallclocks(BYTE data) {
                 quarter = 64;                  quarter = 64;
         }          }
         for (i=0; i<4; i++) {          for (i=0; i<4; i++) {
                 mpu98.fd_step[i] = fd_step1[data & 3][i];                  mpu98.fd_step[i] = quarter + fd_step1[data & 3][i];
                 mpu98.fd_step[i] += quarter;  
         }          }
         mpu98.fd_remain = 0;          mpu98.fd_remain = 0;
 }  }
   
 static void setrecvdata(BYTE data) {  static void setrecvdata(REG8 data) {
   
         if (mpu98.cnt < MPU98_RECVBUFS) {          if (mpu98.cnt < MPU98_RECVBUFS) {
                 mpu98.buf[(mpu98.pos + mpu98.cnt) & (MPU98_RECVBUFS - 1)] = data;                  mpu98.buf[(mpu98.pos + mpu98.cnt) & (MPU98_RECVBUFS - 1)] = data;
Line 90  static void mpu98ii_int(void) { Line 89  static void mpu98ii_int(void) {
 static void ch_step(void) {  static void ch_step(void) {
   
         int             i;          int             i;
         BYTE    bit;          REG8    bit;
   
         if (mpu98.flag1 & MPU1FLAG_F9) {          if (mpu98.flag1 & MPU1FLAG_F9) {
                 if (mpu98.f9.step) {                  if (mpu98.f9.step) {
                         mpu98.f9.step--;                          mpu98.f9.step--;
                 }                  }
         }          }
         for (i=0, bit=1; bit; bit<<=1, i++) {          for (i=0, bit=1; i<8; bit<<=1, i++) {
                 if (mpu98.intch & bit) {                  if (mpu98.intch & bit) {
                         if (mpu98.ch[i].step) {                          if (mpu98.ch[i].step) {
                                 mpu98.ch[i].step--;                                  mpu98.ch[i].step--;
Line 109  static void ch_step(void) { Line 108  static void ch_step(void) {
 static BOOL ch_nextsearch(void) {  static BOOL ch_nextsearch(void) {
   
         int             i;          int             i;
         BYTE    bit;          REG8    bit;
   
 ch_nextsearch_more:  ch_nextsearch_more:
         if (mpu98.intreq == 9) {          if (mpu98.intreq == 9) {
Line 147  ch_nextsearch_more: Line 146  ch_nextsearch_more:
                                         }                                          }
                                         ch->datas = 0;                                          ch->datas = 0;
                                 }                                  }
                                 setrecvdata((BYTE)(0xf0 + mpu98.intreq));                                  setrecvdata((REG8)(0xf0 + mpu98.intreq));
                                 mpu98ii_int();                                  mpu98ii_int();
                                 mpu98.recvevent |= MIDIE_STEP;                                  mpu98.recvevent |= MIDIE_STEP;
                                 return(TRUE);                                  return(TRUE);
Line 204  static void midiwait(SINT32 waitclock) { Line 203  static void midiwait(SINT32 waitclock) {
         }          }
 }  }
   
 static BOOL sendcmd(BYTE cmd) {  static BOOL sendcmd(REG8 cmd) {
   
         BYTE    work;          REG8    work;
   
         mpu98.cmd = cmd;          mpu98.cmd = cmd;
         switch(cmd & 0xf0) {          switch(cmd & 0xf0) {
Line 338  static BOOL sendcmd(BYTE cmd) { Line 337  static BOOL sendcmd(BYTE cmd) {
         return(TRUE);          return(TRUE);
 }  }
   
 static void group_ex(BYTE cmd, BYTE data) {  static void group_ex(REG8 cmd, REG8 data) {
   
         switch(cmd) {          switch(cmd) {
                 case 0xe0:                              // tempo                  case 0xe0:                              // tempo
Line 372  static void group_ex(BYTE cmd, BYTE data Line 371  static void group_ex(BYTE cmd, BYTE data
         }          }
 }  }
   
 static void senddat(BYTE data) {  static void senddat(REG8 data) {
   
         MPUCH   *ch;          MPUCH   *ch;
   
Line 505  static void senddat(BYTE data) { Line 504  static void senddat(BYTE data) {
 }  }
   
   
 static void IOOUTCALL mpu98ii_o0(UINT port, BYTE dat) {  static void IOOUTCALL mpu98ii_o0(UINT port, REG8 dat) {
   
         UINT    sent;          UINT    sent;
   
Line 515  static void IOOUTCALL mpu98ii_o0(UINT po Line 514  static void IOOUTCALL mpu98ii_o0(UINT po
         if (cm_mpu98->connect != COMCONNECT_OFF) {          if (cm_mpu98->connect != COMCONNECT_OFF) {
   
                 if (mpu98.mode) {                  if (mpu98.mode) {
                         sent = cm_mpu98->write(cm_mpu98, dat);                          sent = cm_mpu98->write(cm_mpu98, (BYTE)dat);
                 }                  }
                 else {                  else {
                         if ((mpu98.cmd == 0xd0) || (mpu98.cmd == 0xdf)) {                          if ((mpu98.cmd == 0xd0) || (mpu98.cmd == 0xdf)) {
                                 sent = cm_mpu98->write(cm_mpu98, dat);                                  sent = cm_mpu98->write(cm_mpu98, (BYTE)dat);
                         }                          }
                         else {                          else {
                                 senddat(dat);                                  senddat(dat);
Line 533  static void IOOUTCALL mpu98ii_o0(UINT po Line 532  static void IOOUTCALL mpu98ii_o0(UINT po
         (void)port;          (void)port;
 }  }
   
 static void IOOUTCALL mpu98ii_o2(UINT port, BYTE dat) {  static void IOOUTCALL mpu98ii_o2(UINT port, REG8 dat) {
   
         if (cm_mpu98 == NULL) {          if (cm_mpu98 == NULL) {
                 cm_mpu98 = commng_create(COMCREATE_MPU98II);                  cm_mpu98 = commng_create(COMCREATE_MPU98II);
Line 564  static void IOOUTCALL mpu98ii_o2(UINT po Line 563  static void IOOUTCALL mpu98ii_o2(UINT po
         (void)port;          (void)port;
 }  }
   
 static BYTE IOINPCALL mpu98ii_i0(UINT port) {  static REG8 IOINPCALL mpu98ii_i0(UINT port) {
   
         if (cm_mpu98 == NULL) {          if (cm_mpu98 == NULL) {
                 cm_mpu98 = commng_create(COMCREATE_MPU98II);                  cm_mpu98 = commng_create(COMCREATE_MPU98II);
Line 587  static BYTE IOINPCALL mpu98ii_i0(UINT po Line 586  static BYTE IOINPCALL mpu98ii_i0(UINT po
         return(0xff);          return(0xff);
 }  }
   
 static BYTE IOINPCALL mpu98ii_i2(UINT port) {  static REG8 IOINPCALL mpu98ii_i2(UINT port) {
   
         BYTE    ret;          REG8    ret;
   
         if (cm_mpu98 == NULL) {          if (cm_mpu98 == NULL) {
                 cm_mpu98 = commng_create(COMCREATE_MPU98II);                  cm_mpu98 = commng_create(COMCREATE_MPU98II);

Removed from v.1.2  
changed lines
  Added in v.1.3


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