home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / zsus / z3help / z.lbr / ZSLB.HZP / ZSLB.HLP
Encoding:
Text File  |  1991-11-18  |  12.8 KB  |  212 lines

  1. ;
  2.                                   ZSLIB.COM                                   
  3.  
  4.              Size (recs) CRC   Version    Author/Latest Issue      Disk
  5. ZSLIBS.REL    27k (211)  B72C  3.4        Gene Pizzetta 10/91      Z3LIB3
  6. ZSLIBM.REL    29k (228)  1C4E  3.4        Gene Pizzetta 10/91      Z3LIB3
  7.  
  8.   1- Introduction  2- Notes                                                   
  9.  
  10.    ZSLIB is  a package of assembly language routines to  assist programmers in 
  11. handling datestamp maintenance under ZSDOS, Z3PLUS, and CP/M Plus.  
  12.  
  13.    Two versions of ZSLIB are included:   ZSLIBM.REL in  Microsoft  format, and
  14. ZSLIBS.REL in SLR format.  Also included is ZSLIBDEM, a program to demonstrate
  15. the date and time output routines.
  16.  
  17.    Comprehensive help on ZSLIB routines can be accessed from Z3HELP-Y.LBR.
  18. :1
  19.  Introduction 
  20.  
  21.      One of the most attractive features of ZSDOS from  a programming point of
  22. view is  built-in file datestamping.   For the first time,  a  standard set of 
  23. functions has  been implemented  which make  file datestamp  maintenance fast, 
  24. transparent,  and secure.   ZSLIB provides assembly language programs with the 
  25. low-level tools to  handle most routine datestamp tasks under ZSDOS.   Several 
  26. parallel  routines for CP/M Plus have  also  been  added  in  the  interest of 
  27. maintaining  program compatibility with  that system.   For a demonstration of 
  28. the ZSLIB routines under ZSDOS or CP/M Plus, run the ZSLIBDEM program included
  29. in ZSLIB10.LBR by typing "ZSLIBDEM" or "ZSLIBDEM <filename>".
  30.  
  31.      ZSLIB  is  distributed in  two  library formats:  the standard  Microsoft
  32. library format and the newer and faster SLR format.   ZSLIBS is the SLR format
  33. and ZSLIBM is the  Microsoft format version.  ZSLIB is designed to work  along
  34. with SYSLIB to provide standard  assembly  language  interfaces  and  maximize
  35. efficiency  by  removing  redundant  code.    Therefore,  several  of  ZSLIB's
  36. routines, like those of Z3LIB and VLIB,  reference SYSLIB routines,  requiring
  37. that SYSLIB be linked to the program after ZSLIB.
  38.  
  39.    Calling any of the routines in a  module as an  external automatically adds
  40. all other routines in the module to the program's code.
  41. :2
  42.  ZSLIB Notes - 1/9 
  43.  
  44.    a. Vs. 3.4 updates (10/09/91, Gene Pizzetta):
  45.       - A new S-series of routines,  compatible with the  S-series in  SYSLIB,
  46.         with switchable console and/or printer output  (or no output for quiet
  47.         mode) are included.  The new series includes date,  time, day of week,
  48.         and numeric output.  All S-series  date  and  time  routines  are dual
  49.         format (American or European date, civilian or military time): SDATSx,
  50.         STIMSx, STIMXx, and SWDAYx.   The  new  S-series numeric routines are:
  51.         SAFHC, SAHC, SHL2DC, SHL3DC, and SHL4DC.
  52.       - The LHL5DC, MHL5DC, and PHL5DC modules have been  renamed  to  LHL4DC,
  53.         MHL4DC, and PHL4DC.  
  54.       - The entries for  five-character  decimal  output  have been eliminated
  55.         because they are duplicated in SYSLIB.   Benefits include  ending  any
  56.         confusion over the  routines  existing  in  both  libraries  and  much
  57.         smaller size for the modules.   The  eliminated  entries  are: LHL5DC,
  58.         MHL5DC, PHL5DC, LHLDC, MHLDC, and PHLDC.
  59.       - SPARSDS, PARSDS, PARSDT -- lingering bugs have been eliminated and the
  60.         size of the modules has been dramatically reduced.
  61.  ZSLIB Notes - 2/9 
  62.  
  63.       - Four tables used by several date and day of  week  routines  have been
  64.         moved to separate modules to  cut  the size of the REL libraries and a
  65.         temporary routine (ZOUT) was added to compensate for a bug in SYSLIB's
  66.         SOUT switchable output routine.   Do not call  ZOUT from your programs
  67.         because it will be eliminated from ZSLIB as soon as a bug-free SOUT is
  68.         available.
  69.  
  70.    c. Vs. 3.3 updates (09/29/91, Gene Pizzetta):
  71.       - HVPSTR -- Not just the standout and standend strings were  being sent,
  72.         but so were the  ^A  and  ^B.   Not only that, non-printing characters
  73.         were being added to the tab expansion column counter  (a strange char-
  74.         acteristic of the SYSLIB and VLIB routines).   While fixing it,  a few
  75.         bytes were saved.
  76.       - HIVID -- Saved an unnecessary byte.
  77.       - ZSLIBZLB.ZEX --  This script, which creates a Microsoft REL version of
  78.         ZSLIB using Al Hawley's ZMLIB,  has been changed to use "GO" after its
  79.         initial call to ZMLIB, which speeds it up a little.
  80.  ZSLIB Notes - 3/9 
  81.  
  82.    d. Vs. 3.2 updates (09/08/91, Gene Pizzetta):
  83.       - A new set of "HV" routines allows simple video highlighting  using the
  84.         TCAP standout strings and are  much  smaller than  similar  modules in
  85.         VLIB4.   Z3INIT from Z3LIB must be called before using these routines,
  86.         but the huge Z3VINIT is unnecessary.   If any other  VLIB routines are
  87.         used in your program, the size advantage offered by these new routines
  88.         will be lost.  In theory HV calls are somewhat slower than their VLIB4
  89.         counterparts, but I don't think anybody will notice.  The new routines
  90.         are:
  91.         HVON and HVOFF -- turn video highlighting on and off.
  92.         HVTINIT and HVDINIT -- initialize and de-initialize the terminal.
  93.         HVPRINT and HVPSTR -- print strings with video highlighting controlled
  94.         by embedded ^A and ^B characters.  Unlike VLIB's VPRINT and VPSTR, the
  95.         HV routines also expand tabs and allow  use of  strings  terminated by
  96.         either a null character or by a character with its high bit set.
  97.       - PARGET -- A RET instruction  (thankfully, little used) would return to
  98.         nowhere because the stack had been PUSH'd.   This bug that had existed
  99.         since the module appeared in PARMLIB.
  100.       - PARSDT -- A DB instruction which  should have  been a  DS  was causing
  101.         part of the data segment to be included in the COM file.
  102.  ZSLIB Notes - 4/9 
  103.  
  104.       - WDAY0 -- It was suggested that this  routine  call the new SYSLIB SDIV
  105.         routine instead of MULHD and DIVHD, for a considerable savings in code
  106.         size.   WDAY0 is  called by  the  xWDAYn  routines,  so  they are also
  107.         affected.
  108.       - xTIMFn and xTIMXn --  These time routines are one byte smaller because
  109.         of a code change suggested by Bruce Morgen.
  110.  
  111.    d. Vs. 3.1 updates (08/18/91, Gene Pizzetta):
  112.       - Versions of ZSLIB prior to 3.0 were incompatible with DSLIB because of
  113.         conflicting public symbols.   This has been corrected,  but the result
  114.         is that earlier programs that called  ZSLIB's DOSTYP routine will have
  115.         to be modified.   That routine is now called  BDOSTYP and it's related
  116.         global variable DOSVER has been renamed BDOSVER.  References to DOSTYP
  117.         and DOSVER in earlier programs will have to be changed to  BDOSTYP and
  118.         BDOSVER.   No other changes should be necessary.   Several date output
  119.         routines have been renamed, but the old entries have been retained, so
  120.         no changes in earlier programs are necessary.
  121.  ZSLIB Notes - 5/9 
  122.  
  123.       - Several new routines allow dual output in  either  American (mm/dd/yy)
  124.         or European (dd.mm.yy) date order.   The routines have been renamed to
  125.         make them easier to remember.   All routine names are in the following
  126.         format:
  127.         oDATfn - The "o" is the output type: "L" for list (printer),  "M"  for
  128.         memory, and "P" for printing on the console.   The  "f"  is  the  date
  129.         format type: "A" for American date order, "E" for European date order, 
  130.         and "S" for dual (switchable)  American or  European date order.   The
  131.         final element of the name ("n") is a  number:  "1"  for  the long form
  132.         with the month spelled out,  "2" for the  intermediate  form  with the
  133.         month abbreviated to three letters,  "3" for the short numeric form of
  134.         the date, and "4" for the very short  numeric  form with the month and
  135.         day truncated to a single digit when appropriate.
  136.       - A large number of new routines  are included,  including some that are
  137.         dual military and  civilian  format and some that output seconds.  All
  138.         routine names are in the following format:
  139.  ZSLIB Notes - 6/9 
  140.  
  141.         oTIMfn - The "o" is the output type  ("L", "M", and "P") like the date
  142.         routines discussed above.   The  "f"  is the  format type: "C" for the
  143.         short civilian type with an  "a" or  "p" immediate following the time,
  144.         "M" for military time, "F" for the long civilian type with a full "am"
  145.         or "pm" following the time,  "S" for dual  (switchable) short civilian
  146.         (C) and military format,  and  "X" for dual (switchable) long civilian
  147.         (F) and military format.   The final  element of the  name  ("n") is a
  148.         number:  "1" and "4" always output two-digit numbers,  "2" and "5" pad
  149.         single-digit hours with a space where  appropriate,  and  "3" and  "6"
  150.         produce the shortest possible output with unpadded  single-digit hours
  151.         when  appropriate.   Routines  numbered  1-3  output  only  hours  and
  152.         minutes, while 4-6 also output seconds.
  153.       - Several new or  modified  routines  make  command  line  parsing  less
  154.         painful, including  PARCHR,  PARCNT,  and  PARGET modified from Carson
  155.         Wilson's PARMLIB.   The EATSPC and EATNSPC routines can serve the same
  156.         purpose and the  SKSP and  SKNSP  routines in  SYSLIB,  but  they  are
  157.         smaller because they are only concerned with spaces and tabs, and they
  158.         are easier to use because they return with the  zero  flag  set if the
  159.         end of the string is reached.  Flexible command line entry of date and
  160.         time specifications is  provided  by the  SPARSDS and  PARSDT  parsing
  161.         routines in American or European date order.
  162.  ZSLIB Notes - 7/9 
  163.  
  164.       - HPRINT and HPSTR are the beginnings of a  set of routines that outputs
  165.         strings terminated by a  character  with  its  high  bit  set.   These
  166.         routines also terminate when  a null byte is encountered,  so they can
  167.         in most cases serve as complete replacements for  PRINT, EPRINT, PSTR,
  168.         and EPSTR.   There is also  a  small  routine for outputting a counted
  169.         string to the printer  (the first byte of the string is expected to be
  170.         its length).  In addition,  UNCAPS is included as a mirror of SYSLIB's
  171.         CAPS routine.   TCOUT and TCOUT7 are character output routines similar
  172.         to COUT and COUT7, but they expand tabs.  The small line input editor,
  173.         TLINE, offers simplicity and complete security.
  174.       - Other new routines include:  GCOMNAM, which gets a program's disk name
  175.         from the external file control block and stores it for later printing;
  176.         GETDMA  and  PUTDMA,  which save and restore the  current  DMA address
  177.         under ZSDOS and  ZRDOS;  REGDUMP,  a debugging  module;  REVCAS, which
  178.         reverses the case of a character.
  179.  ZSLIB Notes - 8/9 
  180.  
  181.    b. Vs. 2.1 updates (02/02/90, Carson Wilson):
  182.       - PRDATx and MDATx routines  no  longer  check  for  a  valid datestamp.
  183.         Instead,  they assume that the  caller has  already  verified  the BCD
  184.         stamp with  a call to ISBCDD.   This not  only  saves code, it is also
  185.         more  intuitive  and  allows  the  routines  to  use  fewer registers.
  186.         Several other routines have also been reduced in size.  
  187.       - Empty module ZSLIBVER added as a means of identifying which version of
  188.         ZSLIB a .REL library contains.   The version is the last two digits of
  189.         the public symbol "VERSxx" which is  contained in the ZSLIBVER module.
  190.       - Fix to  SMHL5DC+,  which resulted in faulty time  storage for relative
  191.         ("+nnnn") times.  
  192.  ZSLIB Notes - 9/9 
  193.  
  194.    c. Vs. 2.0 updates (01/21/90, Carson Wilson):
  195.       - SMHL5DC+ - Parallel to SPHL5DC+, stores ASCII number to memory.
  196.       - ZSISBCDD - Checks BCD time/date at HL for validity.
  197.       - ZSMAFHC  - Parallel to PAFHC routine, stores result to memory.
  198.       - ZSMAHC   - Parallel to PAHC routine, stores result to memory.
  199.       - ZSMDAT1  - Parallel to PRDATx routines, stores result to memory.
  200.       - ZSMDAT2  -   "
  201.       - ZSMDAT3  -   "
  202.       - ZSMOUT   - Parallel to SYSLIB COUT routine, stores result to memory.
  203.       - ZSMSTR   - Parallel to SYSLIB PSTR routine, stores result to memory.
  204.       - ZSMTIMC1 - Parallel to PTIM??? routines, store results to memory.
  205.       - ZSMTIMC2 -   "
  206.       - ZSMTIMC3 -   "
  207.       - ZSMTIMM1 -   "
  208.       - ZSMTIMM2 -   "
  209.       - ZSMTIMM3 -   "
  210.       - ZSPARSDS - ASCII datespec to BCD buffer parser.  Very powerful.
  211.       - ZSSSTPCP - Set CP/M Plus or Z3PLUS datestamp.
  212.