*** /usr/src/sys/i386/isa/atapi-cd.c.orig	Tue May 11 19:33:27 1999
--- /usr/src/sys/i386/isa/atapi-cd.c	Mon Nov 22 02:49:02 1999
***************
*** 27,32 ****
--- 27,39 ----
   *
   *	$Id: atapi-cd.c,v 1.7.2.1 1999/05/11 10:33:27 jkh Exp $
   */
+ /* modified by shige for NEC CD60D (NEC 260), Sun Jun 27 17:29:00 JST 1999
+  * shige@iee.niit.ac.jp
+  * for FreeBSD(98) 3.2R-Rev01 by Mizno MWE (s7097219@ipc.akita-u.ac.jp)
+  */
+ /* #undef NEC260 */
+ #define NEC260
+ 
  
  #include "wdc.h"
  #include "acd.h"
***************
*** 793,814 ****
--- 800,844 ----
  	{
              struct ioc_play_msf *args = (struct ioc_play_msf *)addr;
  
+ #ifndef NEC260
              return acd_request_wait(cdp, ATAPI_PLAY_MSF, 0, 0,
                  		    args->start_m, args->start_s, args->start_f,
                  		    args->end_m, args->end_s, args->end_f,
  				    0, 0, 0);
+ #else /* NEC260 */
+ 		return acd_request_wait(cdp, ATAPI_PLAY_MSF, 0, 0,
+ 			bin2bcd(args->start_m), bin2bcd(args->start_s),
+ 			bin2bcd(args->start_f),
+ 			bin2bcd(args->end_m), bin2bcd(args->end_s),
+ 			bin2bcd(args->end_f), 0, 0, 0);
+ #endif /* NEC260 */
          }
  
      case CDIOCPLAYBLOCKS:
  	{
              struct ioc_play_blocks *args = (struct ioc_play_blocks *)addr;
  
+ #ifndef NEC260
              return acd_request_wait(cdp, ATAPI_PLAY_BIG, 0,
                  		    args->blk>>24 & 0xff, args->blk>>16 & 0xff,
                  		    args->blk>>8 & 0xff, args->blk & 0xff,
                  		    args->len>>24 & 0xff, args->len>>16 & 0xff,
                  		    args->len>>8 & 0xff, args->len & 0xff,
  				    0, 0);
+ #else /* NEC260 */
+ 		{
+ 			u_long start,end;
+ 			u_char s_m,s_s,s_f,e_m,e_s,e_f;
+ 
+ 			start=args->blk; end=args->blk+args->len;
+ 			lba2msf(start,&s_m,&s_s,&s_f);
+ 			lba2msf(end,&e_m,&e_s,&e_f);
+ 			return acd_request_wait(cdp, ATAPI_PLAY_MSF, 0, 0,
+ 				bin2bcd(s_m), bin2bcd(s_s), bin2bcd(s_f),
+ 				bin2bcd(e_m), bin2bcd(e_s), bin2bcd(e_f),
+ 				0, 0, 0);
+ 		}
+ #endif /* NEC260 */
          }
  
      case CDIOCPLAYTRACKS:
***************
*** 831,841 ****
--- 861,885 ----
              start = ntohl(cdp->toc.tab[t1].addr.lba);
              len = ntohl(cdp->toc.tab[t2].addr.lba) - start;
  
+ #ifndef NEC260
              return acd_request_wait(cdp, ATAPI_PLAY_BIG, 0,
                  		    start>>24 & 0xff, start>>16 & 0xff,
                  		    start>>8 & 0xff, start & 0xff,
                  		    len>>24 & 0xff, len>>16 & 0xff,
                  		    len>>8 & 0xff, len & 0xff, 0, 0);
+ #else /* NEC260 */
+ 		{
+ 			u_long end;
+ 			u_char s_m,s_s,s_f,e_m,e_s,e_f;
+ 
+ 			end=start+len;
+ 			lba2msf(start,&s_m,&s_s,&s_f);
+ 			lba2msf(end,&e_m,&e_s,&e_f);
+ 			return acd_request_wait(cdp, ATAPI_PLAY_MSF, 0, 0,
+ 				bin2bcd(s_m),bin2bcd(s_s),bin2bcd(s_f),
+ 				bin2bcd(e_m),bin2bcd(e_s),bin2bcd(e_f),0,0,0);
+ 		}
+ #endif /* NEC260 */
          }
  
      case CDIOCREADAUDIO:
