================================ UPDATE.DOC ================================ **************************************************************************** Revision History of DIET 1.45f ----- Copyright(C) 1992-6/25 by Teddy Matsumoto ----- **************************************************************************** History: Version 1.00x Test Versions. Version 1.01a (2/1/91) The first version with TSR type. Version 1.01b (2/16/91) Program which detects EMS memory by checking "EMMXXXX0" is open, conflicts with DIET. Diet conflicts with programs which hooked a function call in int21h for disk I/O. Version 1.02a (2/24/91) Changed method for detecting charcter Device. Memory resident part of Diet decreased with EMS use. TSR is disabled while a program, registered in environmental string DIETOFF, is running. DIET returns decompressed file size for the function call AH=4Eh/4Fh, while a program registered in DIETOFF. Version 1.02b (3/4/91) TSR disabled when DIETOFF specifies COMMAND.COM only when COMSPEC is specified first in environments. Now COMSPEC may set in any position in Environment. Sometimes DIET failed to make temporary files in the directory specified by -T option. Version 1.10a (4/1/91) Automated recompress feature added. New -P option. -Z option revised and new -ZR option is used. -B option, new. Overlay mode compression, -V option, is newly devised. New environmental Strings DIETOPT and TMP. When TSR part fails to decompress, DIET beeps at you. Function call AH=4B03 is supported. DIET hanged when it tries to compress a large, approximately 1MB in size, file. This Bug is fixed. DIET sometimes failed to compress EXE file with -O option. This Bug is fixed. Version 1.11 (5/12/91) DIET detects if DIET of a different version stays resident. DIET warns and exits. If you open a file with SHARE.exe, DIET sometimes fails to erase temporary files. This Bug is fixed. There are executable programs with extensions neither .COM nor .EXE. DIET checks such files. New -! option to check authenticity of DIET.EXE. Version 1.20 (8/20/91) -C option for Check Time Stamp. Old -C options is replaced by -H option now. New -D option to compress Device drivers. New -K option to kill temporary files after the termination of a program. The DIETed-file Listing option displays all files with DIETed file in reverse color. Version 1.20b(8/30/91) Device driver with xxxxx.EXE can now be compressed as a device driver. Sometimes DIET keeps inactive after it stayed resident until some command activates it. Bug fixed. IO.SYS, NEC' BIOS ver3.30jis, compressed safely now. Version 1.30x(10/x/91) TEST for New Version at Nifty:FLABO. Version 1.42 (11/8/91) The first version of Major revision 4. Different self-extraction routines are organized into a sole format. Compression modes are organized into Data-type and eXecutables only. DIET compresses overlays as Executable self- extracting data file. device=c:\bin\DIET.exe is possible. A New code area is moved to EMS, letting resident part of DIET is dramatically decreased. New K-option deletes temporary files only after the termination of the process to speed up. Newly created file recompressed with new option -W. Environmental string 'DIETSIZE' replaced by -S. Commands DIET ON, DIET OFF newly supported. DIETAPI interface is designed and documented. Version 1.43 (11/22/91) Environmental String NODIET is set. TIME STAMP of compressed file updated. DIET returns its EXIT codes even when it did automated recompression. Version 1.43a(11/24/91) NODIET=*.ABC matches "*.", this bug fixed. Files specified in NODIET string will be copied as they are even with -C option, without Decompress- Recompress. Version 1.43b(12/14/91) Automated recompression takes place only when all open files were closed. Version 1.44 (1/22/92) -G option for faster decompression. -N and -$ options to let DIET activate before you leave terminal. -P option detects overwritten files as decompressed. When DIET overwrites a DIETed file, -P option automatically recompress this file without -W option. -W option sets automatically -P option on. When a DIETed file is archived as the first file with LHA with no-compress option, DIET detects the whole archive as a DIETed file. Bug fixed. With MS-DOS ver5.0 MEM.exe has extra characters with DIET on display. Fixed. Major Revisions from version 1.44 --------------------------------- <<<< Version1.44 to 1.45a >>>> Timing of erasing Temporary Files. --------------------------------- You execute a DIETed file with READONLY. Call COMMAND.COM as a child process, and exit to the original program. Since the child process terminated, DIET deletes the decompressed temporary file. There is only the DIETed original. You were lost with entry point. Now DIET stores information about time stamp in so-called PSP in every temporary file generated by unDIETing, and checks this value before deleting. More explicitly, every time a process terminates, DIET tries to delete temporary file without -K option flag set. Checks its current PSP value, if the value is not the same of DOS, DIET leaves the temporary file as it is. When DOS terminates a process, DOS lets DIET erase all the temporary files. DIET refrain deleting if the recorded PSP value is smaller than the current PSP, Program Segment Prefix. Collisions on EMS. ----------------- Some TSR program places filenames on EMS page frame DS:DX. DIET staying resident on EMS, receives function call from such TSR program, then DIET switches pages and continues processing. However filename may be processed erroneously by either one of DIET or the other TSR program. DIET watches filename on the page frame and process it correctly now. Renamed Compressed Filename. --------------------------- With auto-compress created file -W option set. Suppose an editor does: copy textfile.DOC textfile.TMP rename textfile.DOC textfile.BAK edit textfile.TMP rename textfile.TMP textfile.DOC Only the textfile.TMP is recorded as the object for automated compression, if the file-names are concerned. DIET set -P option automatically with -W. Now DIET sets auto-recompression flag on files renamed with function call 56H. With this change, DIET compresses textfile.DOC and erases textfile.TMP. Please try with your editor. <<<< Version1.45a to 1.45b >>>> New -E option to retrieve files opened with Read Only attribute. --------------------------------------------------------------- When a file with READONLY attribute is accessed by Multiple Tasks or a file renamed as temporary under Task-Swapping, a temporary file might remain on your disk. DIET makes a decompressed temporary file when a READ-ONLY file is accessed, and its file handle is handed to a procedure. With this -E option, DIET decompresses the named file, and hand it over to procedure. Then the decompressed file has auto-recompression flag on, and is decompressed automatically if you specify -P option. I am quite sure, that you have a chance to use this option Try if your application uses a read-only file with some of the temporary file remain on your disk. DIET detects file with auto-recompress flags. -------------------------------------------- In case of editors, there are two types of editors. Type A creates a file with extension .TMP, say, renames the original with .BAK. works with .TMP and renames it to the original name when editing is over. Type B does not leave .BAK, renames original with .TMP, and DELETES the original first, then works with .TMP and renames. When editing is done, DIET has to move file-handle to the right file to be recompressed, with extraneous efforts for both types of editors. Time Stamp Set. -------------- DIET opens a file and reads its time stamp, copies it on the TMP file. For READ-ONLY file, DIET deletes TMP file when a process terminates and recompresses the original with time stamp that of TMP file. DIET version 1.45a has changed algorithm of copying TIME STUMP slightly. Consequently some application failed to transact to files distributed from updated versions. DIET newly introduced a well organized system to deal with TIME STAMP recording. <<<< Version1.45b to 1.45c >>>> DIET stays on UMB. When you use DOS 5.00 with device driver like HIMEM.sys, you may use Upper Memory Block for DIET to stay. You just don't do anything. DIET automatically detects available UMB, and moves into the area and stays resident there. I could not check all of the similar device drivers. However, you may try and will succeed to let it stay UMB resident. DRDOS6.00 and shell 4DOS does not support DIETAPI. You write a line in your config.sys, (o) device=diet.exe /z0 /p /j ... and if you have available UMB, you see DIET becomes TSR on UMB, NOT as a device driver. LOADHIGH is not necessary for DIET, namely, you don't have to write a line in the form: (x) devicehigh=diet.exe /z0 /p /j ... DIET does detect UMB by itself. Bug fixed with COMMAND.COM in UMB --------------------------------- With version 1.44 DIET acted abnormally when COMMAND.COM or BUFFERS were in UMB area. This Bug is fixed now. <<<< Version1.45c to 1.45d >>>> Bugs fixed. ---------- Set -P or -W option with TSR DIET. Activate a shell program, issue a command within the shell, a DIETed program. Then suddenly you are exited from shell you started. These phenomena happened with shell programs FD and FILMNT, popular in Japan. In some cases, you are exited even without doing anything. Japanese popular encoder ISH.COM, equivalent of UUENCODE-DECODE, failed to recover original file extension, when file name does not have full length of 8 letters. These Bugs were fixed. Change in Algorithm. ------------------- In modern applications, a file will suffer from renamings, copying to temporary files and deletions. DIET is must follow the correct file name which is to be restored finally. DOSSHELL or other shells with TASK-SWAPPING made DIET difficult to follow, or made DIET do unnecessary jobs for temporary files abusing your time. DIET essentially follows the two principles: 1. When a DIETed file is renamed or deleted, file name is recorded by DIET, but the file does not have auto-compress flag on. 2. When an unDIETed file is renamed to a name DIET has recorded, the file has auto-compress flag on. Remark. There were some minor revisions made to improve performance. <<<< 1.45d to 1.45f >>>> 06/25/1992 CPU cache for 80486 ------------------- Self-extracting DIETed halted with CPU80486 because of 32 bytes cache in CPU. This version revised from 145d, mainly for this reason. Since this is a test version, there is a new optional command to reveal information in the process of DIETing and unDIETing. ' -^ ' :option diet -^ xxx.exe shows informations with 'xxx.exe' if it is a DIETed executable. ------------------------------------------------------------------ 92/6/25 Nifty: GBG00230 Teddy Matsumoto ------------------------------------------------------------------ The address in DIET144.DOC okubo@tansei.cc.u-tokyo.ac.jp is not valid anymore. Internet users please direct mails to either one of the following: kenjirou@mathdent.im.uec.ac.jp c00236@sinet.ad.jp Kenjirou Okubo