[1mDiskSalv 2 (V11.32) Release Notes[0m This is the sixth public BBS/Network release of the DiskSalv 2 program. The DiskSalv program and distribution materials are Copyright 1991-1994 by Dave Haynie, All Rights Reserved. This program is freely redistributable copyrighted software. It may only be distributed as a complete package. You may not remove any files from this archive. No fees other than reasonable copying and media charges may be collected for non-commercial distribution. A shareware fee of US$10 is suggested for anyone using this program. Registered users can order the latest release from me for $10 (please include a copy of your registration form), or obtain it from the nets or Fish disks/CD. When ordered with registration, the latest disk is only US$5. DiskSalv 3, the professional release with many new features, is now available. [1mLicensing[0m This Shareware version of DiskSalv may be freely copied subject to the following conditions. No additional restrictions may be added to the distribution of the DiskSalv program sets. No charges other than normal download charges, for BBS/Network systems, or disk media and copying charges (no more than $5.00, including local postage and handling), for disk-based distribution, may be applied. The DiskSalv package must be kept intact. For BBS/Network distribution, this is in the form of two archives, the main DiskSalv archive and the DiskSalv locale archive. For disk-based distribution, both sets must be included, optionally de-archived. Commercial distribution is permitted for commercial BBS/Network systems, as long as they charge no unusual or premium download fees for the DiskSalv system. Commercial distribution for magazine "cover disks" is permitted as long as they obey the above basic rules for "disk collection" media distribution and return a filled-in copy of the included "CoverDisk.txt" license form. For support of DiskSalv and shareware (DiskSalv 2) registraion ONLY: mail: Dave Haynie 284 Memorial Avenue Gibbstown, NJ 08027 USA email: disksalv@iam.com FAX: +1-609-224-0442 Do NOT contact me directly for orders of DiskSalv 3 or my video tape. See the iam.guide in this distribution. If you want any kind of reply via FAX, please include a REAL return FAX number, not "maybe I'll have my PhonePak turned on between 7:00AM and 7:03AM on alternate Thursdays following the full moon", etc. I don't usually have the time to reply to every letter I get, though I will make a sincere effort to respond to any questions you send me along with any disk I send you. "Hey, I found this bug, here's a floppy that demonstrates it" is something I'll be working on a few hours after I get it, though I may not reply immediately. "My GVP hard disk controller isn't working", "you're an evil rat-bastard to want dime one in return for DiskSalv", etc. are all examples of wasting both our time. I try to answer some of these general questions in this file. [1mAbout DiskSalv[0m DiskSalv is a "Disk Salvage" program. It can recover data from a disk in severe trouble, it can fix a good portion of disk problems directly on the problem disk, and it can locate valid partitions on a disk with an unknown layout or damaged rigid disk block. It supports all AmigaDOS file systems through AmigaOS 3.1. The included "Cheap" manual details the basic functions available, while the commercial manual covers every little detail, theory of operation, and other good stuff. If you're the type who would rather just run the program and see what happens, type "DiskSalv" or click on the icon to begin. Brief help on individual menu items and gadgets is available via the HELP key. HELP will active the help message for any gadget or menu item that's currently under the mouse pointer. [1mDistribution Contents[0m The DiskSalv 2 distribution comes in two archives for on-line release, one for the program and English documentation, one for the updates locale files. This release contains all of the current translations. For software library distribution, it comes with the program expanded, the locale and documentation information compressed. The files themselves are the same in any case. The main program distribution (all files have associated .info files) is in the file DiskSalv11_30.lha, and it includes: DiskSalv2/README This file DiskSalv2/DiskSalv The main program DiskSalv2/Project.info A sample project icon DiskSalv2/OrderForm.txt An ASCII Order Form DiskSalv2/BugReport.txt An ASCII Bug Report form DiskSalv2/CoverDisk.txt An ASCII Cover Disk license DiskSalv2/Install The main install script DiskSalv2/MakeBoot Install on a bootable floppy DiskSalv2/locale/docs The documentation files DiskSalv2/locale/docs/english English docs directory DiskSalv2/locale/docs/english/DiskSalv.doc The cheap manual, in English As usual, the ".txt" files are in reasonably generic ASCII, though may contain a few ANSI sequences. The documentation files are in full ANSI (eg, ASCII with lots of ANSI formatting codes). This is intended to be sent to the PRT: device, which should allow it to print nicely on any Amiga printer device (since PRT: supports the ANSI codes in a device independent fashion). It can also be viewed on the Amiga console device, and some other display tools (though I have seen a few that mess up on ANSI sequences). The locale file is called DSLocale11_30.lha. It should be manually placed in the DiskSalv 2 directory, and it includes the following: locale/catalogs/dansk/DiskSalv.catalog Danish catalog locale/catalogs/deutsch/DiskSalv.catalog German catalog locale/catalogs/español/DiskSalv.catalog Spanish catalog locale/docs/español/DiskSalv.doc Spanish docs locale/catalogs/français/DiskSalv.catalog French catalog locale/docs/français/DiskSalv.doc French docs locale/catalogs/italiano/DiskSalv.catalog Italian catalog locale/catalogs/norsk/DiskSalv.catalog Norweigian catalog locale/catalogs/suomi/DiskSalv.catalog Finnish catalog locale/catalogs/svenska/DiskSalv.catalog Swedish catalog locale/docs/svenska/DiskSalv.doc Swedish docs Not all of these files have been updated for DiskSalv 2 V11.31, so a few strings may not be translated, depending on the language. [1mSpecial Acknowledgements[0m First, a quick but meaningful thanks to anyone who sent me bug reports. And there were many, not all of which I could ignore. Which makes this release the best DiskSalv ever, unless I screwed up elsewhere. Special thanks to those who sent me disks, floppy archives via email, Enforcer hits, or other really good clues. I would like to acknowledge some of the help I had on this project. There are individuals too numerous to mention who had a part, either by making suggestions or testing. Thanks go to the Commodore-Amiga Software group for help with the GUI development and pushing me to use style-guide standards and post 2.04 things like localization. And I want to call particular attention to those who did the translations for me: Danish translation by Jesper Kehlet email: kehlet@kehlet.adsp.sub.org French translation by Jean-Francois Dreyfuss email: dreyfusj@issy.cnet.fr German translation by Holger Lubitz email: hal@caty.north.de Italian translation by Fabrizio Lodi email: lodi@ghost.sm.dsi.unimi.it Norwegian translation by Petter Nilsen of Ultima Thule Software email: petter@pnilsen.adsp.sub.org Finnish translation by Jukka Marin email: jmarin@messi.uku.fi Spanish translation by Antonio Joaquin Gomez Gonzalez email: u0868551@oboe.etsiig.uniovi.es Swedish translation by Mathias Axelsson email: d92max@txfs1.hfb.se I hope I didn't screw any of these up much -- I did as little editing as possible on them. Extra special thanks goes to Mathias Axelsson and Jean-Francois Dreyfuss. Not only did they manage to each complete a full "cheap" manual translation, but they got the extra stuff for V11.28 out within about a week after I sent the documentation and locale files. Extra special thanks to Antonio Joaquin Gomez Gonzalez, who did the Spanish translation, catalog and manual, in record time. Once again, special thanks go to AUGS (Amiga User's Group Sweden), for organizing some registrations and converting to US dollars en masse. These guys are more organized than many companies I have dealt with. [1mRevision History[0m V11.31 SIZE 110884 bytes, CHANGE +132 bytes o Fixed a bug in the stream restoration function. Cleaned up the restoration display. Restoration can now be from devices that don't support Lock(), such as the standard Commodore PIPE: device. o Which caused another PIPE: related problem. Since a pipe is a FIFO, it can only be read once. The recovery code was reading it twice, once to be certain it was a proper pipe, once when the actual restoration began. The checking code was redesigned to open only once. o The PIPE: device also had a problem with AmigaDOS buffered I/O. Going to standard Read() functions solves this. o Empty files were being reported as mangled on output. Now only truely mangled files will be so-reported. o Enforcer hit on exit after a restore-only run eliminated. V11.30 SIZE 110752 bytes, CHANGE +84 bytes o More enhancements to the fix-in-place engine. o Additional tweaking of the directory cache support code. o Now compiled with SAS C V6.51. V11.29 SIZE 110668 bytes, CHANGE +2128 bytes o The cache setting after a fix-in-place was left as "off". Now it's restored. This shouldn't affect single use of the device, but it could have left the cache off for subsequent passes on the same device. o Improvements were made to the fix-in-place routine to detect directory cross links. Previously, it was possible to miss repairing the case in which a directory somehow becomes a child of multiple parent directories. The "Directory Check" pass works from DiskSalv's internal disk model (built in the scanning phase), so it doesn't catch this. Now the hash check routine does. o Unformat now attempts to bring back as much from a disk as possible. Earlier versions forced reconstruction of the root block, now every directory encountered will be rebuilt in full. Thus, Unformat is useful as a general "get anything back you can" routine. o Another bug in the fix-in-place code for Directory Caching file systems was fixed. This was related to the reconstruction of directories from the DiskSalv disk model. Such reconstruction was rare in processing disks under earlier DiskSalv released, but it's used all the time in Unformat now. o Memory allocation to support directory reconstruction under fix-in-place operations is now handled dynamically with respect to directory, rather than dynamically over the course of a whole disk's worth of processing. There shouldn't be much speed penalty, and the memory usage could be substantially less. o In order to support the new Unformat's ability to safely resurrect most of a disk, several features have been added. The "purge" routine under Unformat puts any objects detected as deleted at the end of their respective list, so that undeleted objects are considered prior to deleted objects. Object renaming has been implemented, such that several objects under the same name can be restored without causing file system problems. o "AppWindow" drop-in functions are now implemented for Input, Output, and Custom windows. The Input and Custom windows support dropping of either directory or DOSDrivers icons. o Now compiled with SAS C V6.5! Many, many thanks to Doug Walker for the compiler update. I'm looking forward to downing a few good liters when we next meet! V11.28 SIZE 108540 bytes, CHANGE +776 bytes o A fix-in-place operation would could change an FFS partition to FFS-Intl, but not back. Now it properly mutates, though this isn't suggested. o A failed output device request wasn't always tracked right by the output window gadgets, allowing output to go when it shouldn't. This is fixed. o Improved checks in the "Restore..." requester now reject non-archive files properly and interlock the "Start" button right. o A minor bug in the "Load Device..." function caused an Enforcer hit. This has been fixed. o A complex chain of events caused the fix-in-place routine to unduely reject directories on Directory Caching partitions. This made lots of files and directories get eliminated for no obvious reason. Both this bug, and a related problem that made it even worse on floppies, has been fixed. o Extra processing of the AmigaDOS "environment vector" should allow a better identification of strange devices, especially new ones. o The "Link_Generator" script (written by DiskSalv) had the "FROM" and "TO" keywords reversed to the "MakeLink" command. This has been fixed. o Link processing by the fix-in-place routines has been improved, to avoid any possible contradictions and also deal much better with irresolvable loops. o A bug in the fix-in-place routines would occasionally cause a trip up on processing of "special" file types (special in the way DiskSalv processes them, nothing necessarily visable on the outside). This has been corrected, which should eliminate a number of rare and hard-to-reproduce problems with DiskSalv which usually manifested itself as DiskSalv not finding some rather easy-to-find error. V11.27 SIZE 107764 bytes, CHANGE +384 bytes o Fixed a minor bug in the gadget text formatting code. o All locales, and internal English, cleaned up a bit and tested for a proper fit on a 640x200 Workbench with Topaz 8 font. V11.26 SIZE 107380 bytes, CHANGE -11340 bytes o One major bug was reported in DiskSalv V11.25. It seems that, when launched from Workbench, it wasn't being freed upon exist. So you would waste a little over 100K every time DiskSalv was started. This is now fixed. o A surprising inefficiency in DiskSalv's fix-in-place code on very large files (10MB+) was called to my attention. There was apparently a small bit of processing which increased at roughly N!, where N is the number of blocks in a file. When acting on such large files, specially on slower machines, it could appear for all the world like DiskSalv just hung up. This part of the fix-in-place routine has been recoded. It may use a bit more memory for small files, but the time for processing a file is now more like N. This technique also eliminates some code. o Four out of DiskSalv's 434 or so C functions weren't actually being called anywhere. While they were each reasonably small, they have been eliminated. o The window is no longer automatically activated when the program state changes. This makes it much cleaner to use in the "background". o Log files now record activity for "Restore..." and "Custom..." operations as well as normal salvages. o The scanner window now includes the device or path name being accessed as part of its informational display. o A warning requester is now generated if DiskSalv can't lock the input disk given, assuming locking is enabled. This usually happens when another program has an open file or lock on that device. Scanning a device that has other disk activity going on it is not recommended, as it can easily lead to improper DiskSalv operation. o Parameters to CLI keywords, such as those for "MODE" and "FILESYSTEM", can now be specified in either English or the localized language. o The code that traps on OS releases prior to V37 (KS2.04) will now actually run under OS releases prior to V37. Previously, this was accidently dependent on several 2.0x features, and had a couple of bugs as well. o A few changes were made in the documentation files. They're now compiled for 70 columns, since a few people complained about them not quite fitting on the printer. I changed the text compiler to use MuchMore-compatible ANSI codes, in preparation for a Fred Fish disk release. This should have no effect on actual printing of the files. o Now compiled with SAS V6.3. [1mSince You Asked[0m From time to time I have received various questions about DiskSalv. As I mentioned earlier, I don't have the time to answer every questions. This is not to say I don't think such questions are not important, only that my time is better spent working on improvements to DiskSalv than answering every leter I get. [1] Where the h*ll is DiskSalv 3? It will be ready in June. I'm very sorry that the schedule keeps slipping. The problems with Commodore going out of business lately have been a severe drain on my time -- very little work was done on DiskSalv 3 from mid-April to mid-May. That's over with, I have been back on DiskSalv 3, and while I'm no Kreskin, I expect no additional delays. [2] Don't you feel like a jerk in getting DS3 out so late? Yup. It's sobering to realize that you're not Superman. This DiskSalv thing is very much an experiment, and like most, it involves new things. I haven't tried to be a whole company before this, and find it does take longer than one might think. If I spend a week releasing updates, DiskSalv 3 is week later. If I get sick, or I'm just too tired to stay up 'till 5AM, DiskSalv 3 is delayed. And so on. But ultimately, it does get done. For everyone who pre-ordered, you'll definitely get your package some time in May. You'll also get the first update, which will hopefully go out in the summer. I know exactly what is going into that release, it's not just some "wouldn't that be nice" thing I made up to make everyone feel better. [3] Hey, about that update thing. I ordered DiskSalv 2 updates, but haven't heard from you in months. It is my policy only to send out updates when you really need them. I suppose I could make it a DiskSalv-of-the-month thing, but that's not, in my opinion, a fair use of your money. I don't send out an update if a new release nearing completion. In this last one, it has taken me awhile to get the DiskSalv 2 release out. Part of this is the DiskSalv 3 workload, part is simply that some of the fixes in this new release have been evidenced for some time, but proved rather difficult to track down. And I try to get some testing on things before a general release. [4] I wrote you last year about problems with my [C=|GVP|PropTronics|etc.] [computer|hard disk|video board|etc.], and you haven't written back. I am only doing technical support for my own products at this address. This is not C=, GVP, or anything other than my own business, which at preset in only DiskSalv. I do currently work for Commodore Technology (Commodore's Engineering Branch), and while I am not responsible for any technical support, I do try on occasion to answer questions about Commodore stuff, and Amigas in general, on the nets. I do that because I do what I can to improve the Amiga community as a whole. But time is scarce, even for someone like me who sleeps about 4 hours a night. Please don't write me about these other things. You can send email to my C= or BIX accounts on these matters, and I'll attempt to answer then just as I would any other question. Well, if you tell me you're a registered DiskSalv user, I try a bit harder. [5] I sent my $10, where's my disk? The Shareware Registration fee isn't for a disk, it's simply a registration fee, and earns you a registration certificate by return mail. If you registered, you will eventually get one of these, signed by with, with your number on it. I know some other authors of "shareware" do it differently. It's commonplace, for example, under MS-DOS and MS-Windows, for folks to send in money for a "registered" version. You'll also notice, however, that many of these make that necessary, since the freely redistributable version can be classified as "guiltware" or "crippleware". In the former case, you get a "friendly reminder" that you need to register the program every time you run it. In the latter case, you get a subset of features. I chose to do neither of these, and to keep the registration fee low. So you can feel right about paying for DiskSalv without having to pay for a program you already have. And I don't have to spend time crippling my code or doing redundant mailings. For folks who want more, there is DiskSalv 3. [6] Yeah, about that DiskSalv 3. Why should I pay $40 when the shareware registration is just $10. Isn't it the same program? DiskSalv 3 is not the same program. It does everything DiskSalv 2 does, and it does other things. The GUI has been completely reworked, and I think it's easier to use than DiskSalv 2. Does everyone need DiskSalv 3? While I wish they did, some probably don't. Many folks already have a good backup program, don't care about disk checks or cleaning, etc. Many are happy with DiskSalv 2 and understand its use completely. If you, that's ok, I don't want to sell anyone a program they don't want. DiskSalv 2 exists to give every Amiga user the chance at having a disk recovery program they can resort to when they need it. Some never need it. Some won't pay, thinking basic disk recovery should come with the OS (a belief I happen to share, but, since it doesn't come with the OS, do consider where it does come from next time you use an unregistered DiskSalv). If you want more features, an extensive printed and on-line manual, and more stuff to come, get DiskSalv 3. [7] But aren't you betraying the Grand Spirit of Amiga Freeware? Say what? Oh, you must be from Berkeley. But seriously folks... Some people write code just for the fun of it. And they give it away. Great, that's the way software and personal computers started out, I was there. Of course, this wasn't necessarily great software, it might have had problems, but it was free, after all. Since then (and who reading this _really_ was using microcomputers back in the 70s?), people have made money on software. Others still give it away for free, some give it away and demand money. You even find some, like that Richard Stallman guy up at MIT, who claim selling ("hording" to use his words) software is immoral. You're all correct. Let's look at parallels outside the world of software. When I design a computer, few would honestly argue that it's immoral to sell copies of that computer. After all, we have to pay for the materials. And the cost of developing the technology, and supporting the livelihood of the folks who developed this technology. And maybe even the financial viability of the company supporting this work, since, unless you have some more altruistic agency supporting such work, money made on such sales is necessary to continue the venture. And as any fan of modern genetics will tell you, altruism is not a viable strategy. Software follows the same set of rules as hardware. Materials costs are less, development costs often more, but the same financial model applies. Another parallel is found in the world of the arts. If I wrote a book, I don't think anyone would be complaining about having to buy that book in order to read it. I'm not a professional writer, but I do occasionally write, and I do get paid for it. I'm not writing just for the money -- I like writing, and while I'm sure AmigaWorld would love a few free articles, I don't know that writing their specific requirements would be my first choice of how to spend an evening were they not paying. Most of you, hopefully, would not be bothered by having to pay $3.95 ($4.95 in Canada) for that last issue of AmigaWorld. If I spent my time instead out in my garage painting a few pictures or carving a bokken or two (which I do on occasion), you wouldn't expect to get the fruits of that work for free. Who knows, maybe Haynie Bokkens would demand a premium at Amiga shows. The point being, I am not morally troubled by receiving some payment for my work. My main point is not the money, but I doubt I would have put up with Commodore all these years if money was the main point of my Amiga hardware work. Yet, ultimately, I must feed myself and my family. And I need CDs. Lots of them. Music sure has improved in the 90s. If you object to paying for a work of mine, than feel free to not pay and work out the morality of that for yourself. Just keep in mind that not paying for DiskSalv 3, just as not paying for an A3000, is illegal and could land you jail in most parts of the world. For more elaborate words on the subject, I recommend "The Dispossessed" by Ursula K. LeGuin and "Atlas Shrugged" by Ayn Rand. [8] But who in the world would buy DiskSalv 3 at $40 when DiskSalv 2 registration is so much less? To date, the registration tally runs 40% for DiskSalv 3, 60% for DiskSalv 2. This has actually been fairly even since I've had a large enough sample to have some statistical significance. I expect when DiskSalv 3 shows up in computer stores this balance will tip in favor of DiskSalv 3. [9] Didn't I see you playing keyboards with some orchestra in Greece? No, that was Yanni. I'm taller, my hair is a tad longer, and usually tie it back.