;
                                 LBREXT.COM                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
               8k (62)   CE71  3.2        Howard Goldstein 4/91    Z3COM11

  1- Syntax/Options  2- Notes                                                 


   LBREXT is something like LGET,  except that LBREXT will extract 'crunched',
'squeezed' and 'LZH'-encoded files.   It has a brief help display, invoked  by
typing '//' after the name.  

   LBREXT maintains dates according to the most precise information available,
either from ZSDOS, DateStamper's  "!!!TIME&.DAT" files,  the  LBR's  DRI-style
member  dates  (ala' SETD.COM) or  from  CR23D-style  imbedded  datespecs,  as 
appropriate.  If  DateStamper  is  not  running,  it  operates  like  previous 
versions of LBREXT.  Version 2.0 by Bob Peddicord.
:1

   Syntax   LBREXT dir:lbrname dir:afn1,dir:afn2,... o

  Options   U - uncompress squeezed/crunched/LZH-encoded files 

            O - overwrite existing files without being asked

   Wildcard  filename(s)  may be specified.   Files will be extracted  to  the 
current directory if no output DU or DIR is specified.  Don't forget to  put a
comma between filenames if specifying  more than  one filename.  ^C aborts  to
the  command  line (if  in  the  middle  of  a  file, the  output file will be 
deleted). 
:2
 LBREXT Notes - 1/5 

   a.  Vs 3.2 updates (3/23/91, Howard Goldstein):
       -- Added code to extract creation  and  modify  times  from the library
          directory.  
       -- Removed code that  forced  all extractions to  default  directory if
          wheel byte not set.  
       -- Cleaned up I/O routines for a slight speed improvement.

   b.  Vs 3.1 updates (10/14/90, Howard Goldstein):
       -- If a destination directory is specified without a file name,  *.* is
          assumed.  As a side effect, .ext is equivalent to *.ext.
       -- If a CRC error occurs during file  extraction,  a warning message is
          displayed but LBREXT no longer aborts.   This is  to accommote older
          libraries that did not contain CRC's.
       -- LBREXT no longer needs to be manually patched in order to change the
          default configuration.  A CFG file for use with ZCNFG is provided.
 LBREXT Notes - 2/5 

   b.  Vs 3.0 updates (3/29/90, Howard Goldstein):
       -- Fixed bug in the  SCAN  routine that caused the program to misbehave
          occasionally in various unpredictable ways depending on the previous
          contents of memory.  

   c.  Vs 2.9 updates (1/11/90, Howard Goldtsein):
       -- Added CRC check during member file extraction.

   d.  Vs 2.8 updates (12/27/89, Howard Goldstein):
       -- Correctly handles squeezed files  with short extensions and uses the
          right default directory under BGii and Z3Plus.
       -- ASCII strings before the option flags changed to upper case.
       -- Typos fixed in comments.
 LBREXT Notes - 3/5 

   e.  Vs 2.7 updates (10/24/89, Howard Goldtsein):
       -- Now expands LZH encoded files as well as squeezed and crunched.
       -- Uses DSLIB routines (for ZSDOS, as well as DateStamper, support).
       -- When extracting members with  date  stamps,  the  output file's last
          access stamp is set to the current date and time.
       -- 'Mod' date, rather than 'create' date, is displayed 
       -- Type spec on LBR file no longer ignored.  LBR assumed if none given.
       -- Check for user abort now done once every 128 chars instead of before 
          each char is extracted from LBR.  BIOS calls used for this purpose.
       -- Buffer allocation more dynamic  (type of  decompression required and
          number of members extracted determine size of input/output buffers).
       -- (OVWRT>) moved from 102h to 111h.   Another patch  point  UCPRS>) at
          118h determines whether or not files are compressed by default.
       -- First  two bytes of the member file (rather than middle letter)  are 
          checked to determine if file is compressed.
       -- Top of memory is determined from extended env if available.
       -- Bugs  fixed:  endless  loop  when  a  member  could  not  be  found;  
          inability to  uncrunch certain  files in  large  LBR'S;  failure  to 
          recognize 'directory full' condition when opening output files.
       -- Version 4 LIBs and ZSLIB now required for assembly and linking.
 LBREXT Notes - 4/5 

   f.  Vs 2.6 updates (3/24/88, Bruce Morgen):
       -- DateStamper compatibilty,  including CR23D-style imbedded datespecs.
          Note that this  version  employs  a  modified  version of the SYSLIB
          module LUOPEN,  with the public  2-byte buffer called LUDATE holding
          the DRI-format date  of the last LBR member opened.   DSLIB and Sigi
          Kluger's DATE.REL (Z80ified version of the one from SIG/M v.226) are
          also required.
       -- A patch point is  provided  at  102H,  change this byte to FFH (from
          zero) if you want  LBREXT to  overwrite  any  existing  files as its
          default mode.
       -- The help screen now reflects the state of this new switch as well as 
          the actual name of this program.
       -- Note:  zero and FFH are the ONLY legal values for the patch point.  
       -- All previous  LBREXT upgrades as of version 2.5 are  supported, with
          the exception of the change in  the  file-list delimiter,  which has
          reverted to the ZCPR3 convention  (the comma) used in LGET and LPUT,
          as well as in LBREXT before Version 2.4.
 LBREXT Notes - 5/5 

   g. Vs 2.2 updates (9/10/87, Bruce Morgen):
       -- Made buffer sizing automatic at runtime
       -- Fixed bug so that files will be extracted to current directory if no
          output DU or DIR is specified
       -- Used DSEG and new Z80-only  Z3LIB and  SYSLIB beta versions to mini-
          mize COMfile size, 
       -- Slimmed down buffer setup code somewhat 
       -- Did some nit-picking  ("ADD A,A" instead of "SLA A",  "OR A" instead
          of "CP 0", etc.)  in critical spots that might contribute to overall
          performance,  although  the  optimized  (at  least  for  uncrunching
          operations) buffer allocation is probably the biggest factor.
       -- LBREXT is now  competitive in  speed  (within 5-10%)  with  LGET for 
          normal and unsqueeze operations as well.  
       -- Included a Z80fied version of Joe Wright's improved ARGV from LX 1.1
          to prevent the system crashes that plague LGET if "=" is used in the
          command line.

   h.  Vs 2.1 updates (Bob Peddicord):
       -- Restored proper ZCPR3 tool format, increased buffer size.
