riml@softart.UUCP (Research in Motion Limited) (10/05/88)
[Why upload a 200K program when only 20K has changed?] We're busy designing our new product and we were thinking ahead to the day when we would have a BBS for software support and enquiries. The subject of updates to executable programs was brought up, and it seemed obvious that reducing transmission time for a user trying to download a revision change would be well appreciated. However, normal ARC (tm someone ;-) files don't do much for EXE files and other dense binary-type files. So how could we help? I opened my big mouth and suggested a software package that would compare the old revision to the new one and then generate a PATCH file. The PATCH would describe how to convert the old revision into the new one. Unfortunately, no such program existed so far as I or any of my associates could determine. So I wrote a pair of programs. One (DIFFS) does the comparison and generates a patch file. The other (PATCH) takes the old revision and the patch file and generates the new revision. Does it work? Sure does. The PATCH file contains CRC information for the old and new files, so that PATCH.EXE can determine whether the process worked correctly. The PATCH file can contain arbitrary text strings that PATCH.EXE displays on the screen for the user's edification. The programs are written in reasonably vanilla C. For speed considerations I re-wrote portions of the code in ASM for the PC. As an example, we used the programs on one of our commercial software packages, a C optimizer (for Aztec C-Z80 (tm Manx...)). I had added several new functions and re-arranged some code in order to fix a bug. The EXE files were still both around 175K long. The PATCH file was only 29K long! That's 4.8 minutes XMODEMing @ 1200 baud, instead of 29.1 minutes. How long to generate the PATCH file? On a 10MHz AT+28ms HD, 39 seconds. We were wondering if anyone out there would be interested in such a set of programs. For now, we will be using them strictly in-house. If there is a luke-warm interest, we might consider a share-ware type of arrangement. If there is tremendous interest, we would have to arrange something else. What do you say? Michael A. Barnstijn USENET: ...{ihnp4|sun|decvax}!watmath!softart!riml VP Software Systems PHONE: (519) 888-7465 Research In Motion Limited SLOMAIL: Suite 6, 465 Phillip St., Waterloo, Ontario, Canada N2L 6C7