Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!uunet!mcsun!inria!laas!ralph From: ralph@laas.fr (Ralph P. Sobek) Newsgroups: comp.sys.atari.st Subject: Re: SPARCstation floppy drive (again) Message-ID: Date: 8 Oct 90 11:14:08 GMT References: <14582@mentor.cc.purdue.edu> Sender: news@laas.laas.fr Reply-To: ralph@laas.fr Organization: LAAS-CNRS France Lines: 68 In-reply-to: scott@tab00.larc.nasa.gov's message of 1 Oct 90 04:03:40 GMT I have absolutely no problem in formating/reading/writing PC and ST compatible floppies, using the mtools package which was posted to the net (comp.sources.sun, I believe). I had to add another patch in order to make the floppies readable under Gulam; Gulam does not seem to like an all-blanks volume label. Mtools is not perfect, but I use it very often. I've tried to contact the author -- but no luck. For those that might be interested I'll post my private `patch4' here. Just run it through patch. *** ./init.c Thu Jun 14 13:01:58 1990 --- 1.6.2/init.c Tue May 29 17:41:27 1990 *************** *** 11,17 **** #include "devices.h" #include "msdos.h" ! #define DUP_FAT extern int fd, dir_len, dir_start, clus_size, fat_len, num_clus; extern unsigned char *fatbuf; --- 11,17 ---- #include "devices.h" #include "msdos.h" ! /* #undef DUP_FAT */ extern int fd, dir_len, dir_start, clus_size, fat_len, num_clus; extern unsigned char *fatbuf; *** ./mkdfs.c Thu Jun 14 12:39:04 1990 --- 1.6.2/mkdfs.c Wed Jun 6 10:55:32 1990 *************** *** 95,108 **** for( sec=fat_len; --sec ; ) Write(fd,buf,MSECSIZ) ; /* Rest of FAT */ } ! if (strncmp(disklabel," ",11) != 0) { ! strcpy(((struct directory *)buf)->name,disklabel) ; ! ((struct directory *)buf)->attr= VOLLBL ; ! Write(fd,buf,MSECSIZ) ; /* Root dir */ ! bzero(buf,strlen(disklabel)) ; ! ((struct directory *)buf)->attr= 0 ; ! } ! else dir_len++ ; for( ; --dir_len ; ) Write(fd,buf,MSECSIZ) ; /* Root dir */ } --- 95,105 ---- for( sec=fat_len; --sec ; ) Write(fd,buf,MSECSIZ) ; /* Rest of FAT */ } ! strcpy(((struct directory *)buf)->name,disklabel) ; ! ((struct directory *)buf)->attr= VOLLBL ; ! Write(fd,buf,MSECSIZ) ; /* Root dir */ ! bzero(buf,strlen(disklabel)) ; ! ((struct directory *)buf)->attr= 0 ; for( ; --dir_len ; ) Write(fd,buf,MSECSIZ) ; /* Root dir */ } -- Ralph P. Sobek Disclaimer: The above ruminations are my own. ralph@laas.fr Addresses are ordered by importance. ralph@laas.uucp, or ...!uunet!laas!ralph If all else fails, try: sobek@eclair.Berkeley.EDU =============================================================================== Reliable software should kill people reliably! -Andy Mickel, Pascal News #13,78