home *** CD-ROM | disk | FTP | other *** search
/ Old Hackers Atari User Group Newsletter / Old_Hackers_Atari_User_Group_Newsletter_OHMA93A.atr / kdsksavr.txt < prev    next >
Text File  |  2023-02-26  |  5KB  |  1 lines

  1.              ******¢       DISKSAVR1.BAS DOCS!¢       The program  is  on this  disk!¢¢ Ever  copy a  disk only  to have  the¢ routine choke on ONE bad sector? Well¢ DiskSaver! is the  remedy!  Works  on¢ Sparta Sngl.  or Enh. Density.   Uses¢ direct    disk   access   thru   USR.¢ Allocates bad sectors in  bit-map  so¢ no  data  can  be  written  to  them.¢ Writes  to  the boot sectors so "DIR"¢ will show the correct amount of  free¢ sectors. Will  also  fix  disks  that¢ show freespace greater than the whole¢ disk. Ever  have  that happen? I hope¢ you  find  this routine useful. Watch¢ for a dbl density version on: The REM¢ lab. The WeB BBs 24hr 7 days 708-884-¢ 0315¢ * DiskSaver! v1.0 (c) 1990 by  REMlab¢ *************************************¢     First things first.¢ I got to looking at the pile of disks¢ I  had  that  wouldn't format for one¢ reason   or   another   and   got  to¢ wondering just how  large  that  pile¢ was going to get before having to pay¢ extra rent. Then I started to  wonder¢ just why those disks wouldn't format.¢ Using a sector editor,  I  discovered¢ that  most  of  the  disks  had a bad¢ sector or two. Realizing that  a  box¢ of  "cheap"  disks cost as much as $6¢ retail, I would be throwing them away¢ to  the  tune  of over $20.00. Yes, I¢ had a pile of over thirty disks  that¢ wouldn't  format  correctly!  So,   I¢ decided to see if I could get ANY use¢ out of that pile.¢ I discovered that  I  could  fix  the¢ disks  using  a  sector  editor. This¢ required a great deal  of  typing  to¢ write  the  boot sectors the way they¢ were intended.¢ Then I discovered I  could  fool  the¢ editor  by  starting   off   with   a¢ properly    formatted   blank   disk,¢ reading the boot sectors,  one  at  a¢ time,  and  swapping  disks  to write¢ those  sectors  to  the  "bad"  disk.¢ Still   alot   of   typing  and  time¢ consuming too.  I  wanted  a  routine¢ that  I  could  just load and run and¢ let the machine do the work  like  it¢ was  intended to do. No problem, just¢ read the boot sectors of a good  disk¢ and  write  them to the bad one. It's¢ that easy. ¢¢ WRONG!!!!!!!!¢ You can't read the boot sectors  like¢ you  would a read a file! And even if¢ you   could,   what   about  the  bad¢ sector/s? How  do  you  prevent  data¢ from  being written to those sectors?¢ I thought of creating  a  file  using¢ the  bad sectors. But, then how would¢ I get DOS to write the file to  those¢ particular  sectors  and  if the file¢ ever   got  accidentally  erased  how¢ could DOS be prevented  from  writing¢ data to those sectors? ¢¢ Things  seemed  impossible  and I was¢ about to give up when I  was  messing¢ with  the  sector  editor  again  and¢ realized  I might be able to allocate¢ sectors without having  to  create  a¢ file  that  uses  those  sectors.  It¢ worked!  Now  I  had to find a way of¢ getting the machine  to  do  all  the¢ work  so  I  wouldn't have to use the¢ editor sector by sector. I found a 49¢ byte  USR  routine in a BASIC utility¢ package  I  had  laying  around  that¢ would  allow  direct  access  to  the¢ disk, one sector at a time,  and  any¢ sector on the disk.¢ Using  that  USR routine I could read¢ each sector except the bad ones and a¢ simple  error  trap would branch to a¢ line that would tell me which  sector¢ was bad.¢ Now  came the hard part, changing the¢ sector map so DOS would skip the  bad¢ sectors.  I  tried  and tried until I¢ discovered that the sector map allows¢ for  sector  0.  SECTOR   0   DOESN'T¢ EXIST!!!  But,  it's  in  the  sector¢ map!¢ Figure that one out! Okay, the sector¢ editor,   then   the   USR   routine,¢ allocate  the bad sectors, a bad disk¢ becomes a good disk, right?¢¢ WRONG!!!!!!!!¢ I had a "fixed" disk and I started to¢ copy some files to that disk. I did a¢ "DIR" in the disk and guess  what  it¢ showed.  123  FREE SECTORS I tried to¢ copy one  more  file,  a  121  sector¢ file.¢¢ ERROR  162!?  How  can  that  be? How¢ could I  be  so  dumb?  I  forgot  to¢ change  the  bytes  that tell you how¢ many free sectors are on the disk. Oh¢ well,  just  remember  that there are¢ fewer sectors  on  the  disk  than  a¢ "DIR" shows.¢¢ WRONG!!!!!!!!¢ Finding   the   free   sector   bytes¢ required alot of trial and error. ie;¢ sector editor, change a byte, exit to¢ DOS,   "DIR",   wrong  bytes,  sector¢ editor, change a byte, back  to  DOS,¢ "DIR", wrong bytes, etc. etc....¢¢ It  about  drove me nuts! Back to the¢ ol' drawing board? No! I only had  to¢ add  a  few  lines  that would keep a¢ count of the bad  sector  and  change¢ the  free sector bytes before writing¢ the boot sectors and  sector  map  to¢ the disk.¢¢ So, here's beta-test version 1.¢ DiskSaver! by REMlab.¢ It loads from DOS with BASIC enabled.¢ Sorry, SpartaDos  3.2  only  in  this¢ version  and  no double density, yet.¢ (But, I'm still working on  it.  When¢ perfected,  it  will handle ALL DOSes¢ known  to the  Atari 8-bit [I hope].)¢ Before I forget, DiskSaver! has taken¢ up a large chunk of my time, and, I'm¢ not yet through with it. But, I still¢ gotta  eat!  Any  donations  will  be¢ gladly  accepted  and will be devoted¢ to writing more useful stuff  and  to¢ the running of my board.¢ If you feel the need, send it to:¢ REMlab  %  R.  Cook,  P.O.  Box  1144¢ Arlington Hts., IL, 60006-1144¢ Atari! Power without the price!    ¢              **END**¢