
Unlike earlier versions of ST-Zip, version 2.4 has an annoying (and
unnecessary) 5 second startup delay.  D.Livingston found the cause
(and the solution), which required a simple patch, posted in Cat 2,
Topic 26.

Reasoning that not everyone has a patching utility (or is comfortable
in using it), I whipped up a quick (5 minute) and dirty (no error-
checking) little program to do the needed patching automatically.
It does check to make sure that the expected long delay is in the
proper location, then replaces it with a short delay.

Since this change has been approved by Vincent Pomey, the author of
ST-Zip, I'm releasing this quick patcher for everyone's convenience.
The source code is included, so there are no hidden secrets.  I've
used it on my copy of ST-Zip with no ill effects.

-- Mark O'Bryan, Feb15/94

~~~~~~~~~~~~8<~~~~~~~~~~~~~~~~~~ snip ~~~~~~~~~~~~~~~~~~>8~~~~~~~~~~~~

(*
  Message 66        Fri Jan 28, 1994
  D.LIVINGST11 [ErnestBovine]  at 06:01 EST

  The long slowdown when stzip24 boots is an evnt_multi waiting for a GEM
  message or a timer event of 5000 milliseconds, whichever comes first.
  I don't know why it wants to check for messages for 5 seconds.

  The timer value is the word $18466 bytes from start of the program file.
  I changed $1388 (5000 decimal) to $01f4 (half a second) and it seems to
  work fine so far without the delay.  (others used 100 mS)
*)

program Zip24Qwk;
  {Patch ST-Zip v2.4 to eliminate the 5 second startup delay.}
  {Written by Mark O'Bryan on Feb01/94, in HighSpeed Pascal}
var
  bin   : file of word;
  delay : word;
  loc   : longInt;
  fname : string;
begin
  loc := ($18466 div 2);

  writeln;
  write   ('ST-Zip24 file to patch? ');
  readln  (fname);
  reset   (bin, fname);

  seek    (bin, loc);
  read    (bin, delay);
  writeln ('The current delay value is ', delay, ' mS.');

  if (delay <> 5000) then
    writeln (^G, 'Didn''t find expected value of 5000 mS!')
  else begin
    writeln ('Found 5 second delay, changing to 0.1 second.');
    delay := 100 {mS};
    seek  (bin, loc);
    write (bin, delay);
  end {if};

  close (bin);
  write ('Press RETURN to exit...');
  readln {pause};
end {program}.

