Anarchy Road Software presents: Update v1.00 (21 Mar 91) Copyright © 1991 by Brian Fehdrau. All rights reserved. This is a little I-needed-it program. How useful it will be to other authors, I don't know. Its purpose is to take a rather large file (in my case, an executable) that is mostly similar to another (as is often the case with program updates), and create a difference/update file which can be run through Update again along with the original to create the new version of the file. This program is not buggy, but it isn't really the most elegant contraption ever. For instance, in the archive stage, one needs two blocks of continuous memory, of sizeof(old_file)+4096 and of sizeof(new_file)+4096. This isn't so bad, except in cases like mine, where that means two ~230K blocks. I have plenty of memory, so that's not a problem for me. Unarchiving only requires one block, of sizeof(old_file)+4096. The users that are meant to be applying the updates should be able to handle that, or they couldn't run the original program in the first place. Archiving speed depends very much on how different the files are. Two 200K files, exactly alike, should take only a few seconds, once read off the disk. Two completely dissimilar 200K files would probably take about fifteen minutes (I'm not in any mood to actually try it, though... it may take longer). Unarchiving should be pretty fast. It'll be a little slower for similar files, but not a lot. Usage is simple: update a|e [.up] Where 'a' means archive and 'e' mean extract. For example: Me: update a falcon.up last_version/falcon this_version/falcon (archive it, upload it) Them: (download it, unarchive it) update e falcon.up falcon falcon They may have written the updated file to a temporary file for safety, but you get the idea. Easy, huh? Files are verified like this: The sizes and CRCs of the old and new files are saved in the update. These are checked against the files when the update is applied, to be sure it is applied to the correct file and to be sure it worked. The update file itself is also be checked to see it it is indeed an update and if it's possible to apply it with the version of the program you have. For more theoretical information on the process, see Update_Techie.doc. Final note: I strongly suggest you try out any update files you make. The program seems to work, but you never know... Distribution This is ShareWare. You aren't allowed to make money off of it, but it's otherwise freely distributable, ie. you may give it to Fred Fish, upload it, give it to a friend, eat it for lunch, etc., but not sell it for profit. Talk to me if you want to include it with other software. If you like Update, you could try sending $15 to the snail mail address below. Brian Fehdrau 21 Mar 91 Snail: P.O. Box 7635 Saskatoon, SK Canada S7K 4R4 UUCP: bf@weyr.fidonet.org Fido: 1:140/22.2 or 1:140/22 Plug: For a look at my Amiga Fido-compatible Opus clone, Falcon CBCS, call Falcon's Point, 1 306 382-3757 (in Saskatoon, SK, Canada). It's running a 9600 HST.