home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / unix / bsd / 4837 < prev    next >
Encoding:
Internet Message Format  |  1992-08-29  |  6.8 KB

  1. Path: sparky!uunet!mcsun!sunic!chalmers.se!dtek.chalmers.se!dxper
  2. From: dxper@dtek.chalmers.se (Per Anders Olausson)
  3. Newsgroups: comp.unix.bsd
  4. Subject: 386BSD:  720Kb floppy driver + mtools patches
  5. Keywords: 386bsd floppy 720kb
  6. Message-ID: <13817@chalmers.se>
  7. Date: 29 Aug 92 17:20:08 GMT
  8. Sender: news@chalmers.se
  9. Organization: Chalmers University of Technology, Gothenburg Sweden
  10. Lines: 201
  11.  
  12.  
  13.   Since people seem to like the idea of putting 720kb floppy disks into 1.44Mb
  14. drives and I myself had need for it I went through the floppy driver and 
  15. uncommented all the floppy type code which was already there + added an entry
  16. for 720kb floppies. This works for me and hopefully for all you netpeople out
  17. there but I'm naturally wondering why it was all commented. Hmmmm . . .
  18.  
  19.   I also changed the device specification to mtools so that it uses the
  20. correct device names. I didn't remove the 320kb entry in mtools however, even
  21. though there is no support for it in the device driver.
  22.  
  23. After you have recompiled the kernel and mtools all you need to do is:
  24.  
  25.     $ cd /dev
  26.     $ MAKEDEV fd0
  27.     $ MAKEDEV fd1
  28.  
  29. if you haven't patched the kernel to support #! stuff you have to run 
  30.  
  31.     $ sh MAKEDEV fd0
  32.  
  33. instead.
  34.  
  35.   Now back to our favorite What's-the-name-of-the-group-flame-contest...
  36.  
  37. pao
  38.  
  39. # This is a shell archive.  Save it in a file, remove anything before
  40. # this line, and then unpack it by entering "sh file".  Note, it may
  41. # create directories; files and directories will be owned by you and
  42. # have default permissions.
  43. #
  44. # This archive contains:
  45. #
  46. #    fd.patch
  47. #    mtools.patch
  48. #
  49. echo x - fd.patch
  50. sed 's/^X//' >fd.patch << 'END-of-fd.patch'
  51. X*** fd.c.orig    Sat Aug 29 18:22:39 1992
  52. X--- fd.c    Sat Aug 29 18:24:56 1992
  53. X***************
  54. X*** 60,66 ****
  55. X  #define b_cylin b_resid
  56. X  #define b_step b_resid
  57. X  #define FDBLK 512
  58. X! #define NUMTYPES 4
  59. X  
  60. X  struct fd_type {
  61. X      int    sectrac;        /* sectors per track         */
  62. X--- 60,66 ----
  63. X  #define b_cylin b_resid
  64. X  #define b_step b_resid
  65. X  #define FDBLK 512
  66. X! #define NUMTYPES 5
  67. X  
  68. X  struct fd_type {
  69. X      int    sectrac;        /* sectors per track         */
  70. X***************
  71. X*** 76,81 ****
  72. X--- 76,82 ----
  73. X  struct fd_type fd_types[NUMTYPES] = {
  74. X       { 18,2,0xFF,0x1B,80,2880,1,0 },    /* 1.44 meg HD 3.5in floppy    */
  75. X      { 15,2,0xFF,0x1B,80,2400,1,0 },    /* 1.2 meg HD floppy           */
  76. X+     { 9,2,0xFF,0x20,80,1440,1,2  }, /* 720k floppy in HD drive     */
  77. X      { 9,2,0xFF,0x23,40,720,2,1 },    /* 360k floppy in 1.2meg drive */
  78. X      { 9,2,0xFF,0x2A,40,720,1,1 },    /* 360k floppy in DD drive     */
  79. X  };
  80. X***************
  81. X*** 211,218 ****
  82. X       int    unit, type, s;
  83. X  
  84. X       unit = FDUNIT(minor(bp->b_dev));
  85. X!      /*type = FDTYPE(minor(bp->b_dev));*/
  86. X!     type = fd_unit[unit].type;
  87. X  
  88. X  #ifdef FDTEST
  89. X  printf("fdstrat%d, blk = %d, bcount = %d, addr = %x|",
  90. X--- 212,219 ----
  91. X       int    unit, type, s;
  92. X  
  93. X       unit = FDUNIT(minor(bp->b_dev));
  94. X!      type = FDTYPE(minor(bp->b_dev));
  95. X!     /*type = fd_unit[unit].type;*/
  96. X  
  97. X  #ifdef FDTEST
  98. X  printf("fdstrat%d, blk = %d, bcount = %d, addr = %x|",
  99. X***************
  100. X*** 281,288 ****
  101. X  int unit;
  102. X  {
  103. X      fd_unit[unit].motor = 0;
  104. X!     if (unit) set_motor(0,0);
  105. X!     else set_motor(1,0);
  106. X  }
  107. X  
  108. X  fd_turnon(unit)
  109. X--- 282,288 ----
  110. X  int unit;
  111. X  {
  112. X      fd_unit[unit].motor = 0;
  113. X!     set_motor(unit,0);
  114. X  }
  115. X  
  116. X  fd_turnon(unit)
  117. X***************
  118. X*** 327,339 ****
  119. X      int    flags;
  120. X  {
  121. X       int unit = FDUNIT(minor(dev));
  122. X!      /*int type = FDTYPE(minor(dev));*/
  123. X      int s;
  124. X  
  125. X      fdopenf = 1;
  126. X      /* check bounds */
  127. X      if (unit >= NFD) return(ENXIO);
  128. X!     /*if (type >= NUMTYPES) return(ENXIO);*/
  129. X  
  130. X      /* Set proper disk type, only allow one type */
  131. X      return 0;
  132. X--- 327,339 ----
  133. X      int    flags;
  134. X  {
  135. X       int unit = FDUNIT(minor(dev));
  136. X!      int type = FDTYPE(minor(dev));
  137. X      int s;
  138. X  
  139. X      fdopenf = 1;
  140. X      /* check bounds */
  141. X      if (unit >= NFD) return(ENXIO);
  142. X!     if (type >= NUMTYPES) return(ENXIO);
  143. X  
  144. X      /* Set proper disk type, only allow one type */
  145. X      return 0;
  146. X***************
  147. X*** 442,449 ****
  148. X      dp = &fd_unit[fd_drive].head;
  149. X      bp = dp->b_actf;
  150. X      read = bp->b_flags & B_READ;
  151. X!      /*ft = &fd_types[FDTYPE(bp->b_dev)];*/
  152. X!      ft = &fd_types[fd_unit[fd_drive].type];
  153. X  
  154. X      switch (fd_state) {
  155. X      case 1 : /* SEEK DONE, START DMA */
  156. X--- 442,449 ----
  157. X      dp = &fd_unit[fd_drive].head;
  158. X      bp = dp->b_actf;
  159. X      read = bp->b_flags & B_READ;
  160. X!      ft = &fd_types[FDTYPE(bp->b_dev)];
  161. X!      /*ft = &fd_types[fd_unit[fd_drive].type];*/
  162. X  
  163. X      switch (fd_state) {
  164. X      case 1 : /* SEEK DONE, START DMA */
  165. END-of-fd.patch
  166. echo x - mtools.patch
  167. sed 's/^X//' >mtools.patch << 'END-of-mtools.patch'
  168. X*** devices.c.0_1    Sat Jun 27 23:05:01 1992
  169. X--- devices.c    Sat Aug 29 18:59:22 1992
  170. X***************
  171. X*** 20,34 ****
  172. X  #ifdef __386BSD__
  173. X  struct device devices[] = {
  174. X      {'A', "/dev/rfd0a", 0L, 12, 0, (int (*) ()) 0, 80, 2, 18}, /* 1.44m */
  175. X!     {'A', "/dev/rfd0a", 0L, 12, 0, (int (*) ()) 0, 80, 2, 15}, /* 1.2m */
  176. X!     {'A', "/dev/rfd0a", 0L, 12, 0, (int (*) ()) 0, 80, 2, 9},  /* 720k */
  177. X!     {'A', "/dev/rfd0a", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},  /* 360k */
  178. X!     {'A', "/dev/rfd0a", 0L, 12, 0, (int (*) ()) 0, 40, 2, 8},  /* 320k */
  179. X      {'B', "/dev/rfd1a", 0L, 12, 0, (int (*) ()) 0, 80, 2, 18}, /* 1.44m */
  180. X!     {'B', "/dev/rfd1a", 0L, 12, 0, (int (*) ()) 0, 80, 2, 15}, /* 1.2m */
  181. X!     {'B', "/dev/rfd1a", 0L, 12, 0, (int (*) ()) 0, 80, 2, 9},  /* 720k */
  182. X!     {'B', "/dev/rfd1a", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},  /* 360k */
  183. X!     {'B', "/dev/rfd1a", 0L, 12, 0, (int (*) ()) 0, 40, 2, 8},  /* 320k */
  184. X      {'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0}
  185. X  };
  186. X  #endif /* __386BSD__ */
  187. X--- 20,36 ----
  188. X  #ifdef __386BSD__
  189. X  struct device devices[] = {
  190. X      {'A', "/dev/rfd0a", 0L, 12, 0, (int (*) ()) 0, 80, 2, 18}, /* 1.44m */
  191. X!     {'A', "/dev/rfd0b", 0L, 12, 0, (int (*) ()) 0, 80, 2, 15}, /* 1.2m */
  192. X!     {'A', "/dev/rfd0c", 0L, 12, 0, (int (*) ()) 0, 80, 2, 9},  /* 720k */
  193. X!     {'A', "/dev/rfd0d", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},  /* 360k */
  194. X!     {'A', "/dev/rfd0e", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},  /* 360k */
  195. X!     {'A', "/dev/rfd0f", 0L, 12, 0, (int (*) ()) 0, 40, 2, 8},  /* 320k */
  196. X      {'B', "/dev/rfd1a", 0L, 12, 0, (int (*) ()) 0, 80, 2, 18}, /* 1.44m */
  197. X!     {'B', "/dev/rfd1b", 0L, 12, 0, (int (*) ()) 0, 80, 2, 15}, /* 1.2m */
  198. X!     {'B', "/dev/rfd1c", 0L, 12, 0, (int (*) ()) 0, 80, 2, 9},  /* 720k */
  199. X!     {'B', "/dev/rfd1d", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},  /* 360k */
  200. X!     {'B', "/dev/rfd1e", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},  /* 360k */
  201. X!     {'B', "/dev/rfd1f", 0L, 12, 0, (int (*) ()) 0, 40, 2, 8},  /* 320k */
  202. X      {'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0}
  203. X  };
  204. X  #endif /* __386BSD__ */
  205. END-of-mtools.patch
  206. exit
  207.  
  208. --
  209. -------------------------------Andrew Olausson--------------------------------
  210. --------------------------Unemployed Unix Specialist--------------------------
  211. ------------------------------pao@cd.chalmers.se------------------------------
  212. -------------------------------pa-ola@proxxi.se-------------------------------
  213.