 Determine BDOS Type             - BDOSTYP
 Save and Restore DMA Address    - GETDMA, PUTDMA
 Get CP/M Plus Label Data        - CP3LBL
 Display Register Contents       - REGDUMP
 Get Current ZSLIB Version       - ZSVERS
 Data Tables                     - DPERMO, DSTRM3, DSTRMO, DSTRW3, DSTRWK
 Temporary Output Routine        - ZOUT
:
BDOSTYP - Gets BDOS type and version.

  ENTER: None
  EXIT:  A = extended BDOS code, zero flag reset (NZ), if extended BDOS,
         A = FFh, zero flag set (Z), if not extended BDOS,
         BDOSVER (global) = extended BDOS indentifier or 0FFh if none,
         CPMVER (global) = CP/M version (22h = CP/M 2.2).
  USES:  AF

Usage: BDOSVER and CPMVER are public variable bytes (globals) available 
after this routine is called.  For convenience, A = BDOSVER on exit.  The 
extended BDOS identifiers currently in use are:
           0  = ZRDOS
          "S" = ZSDOS
          "D" = ZDDOS
:
GETDMA - Gets and stores current DMA address.

  ENTER: None.
  EXIT:  None.
  USES:  None.

Usage: Gets current DMA address under ZSDOS, ZDDOS, and ZRDOS.  The address 
is stored internally for later use by PUTDMA.  CP/M does not return the 
current DMA address, so it the programmer's responsibility to make sure he 
is running under an extended BDOS.

PUTDMA - Restores DMA address.

  ENTER: None.
  EXIT:  None.
  USES:  None.

Usage: Restore DMA address stored internally by GETDMA under ZSDOS, ZDDOS, 
and ZRDOS.  Do not call this routine if GETDMA has not been previously 
called or if not running under an extended BDOS.
:
CP3LBL - Gets CP/M Plus disk label data.

  ENTER: B = drive (A=0, B=1, etc.)
  EXIT:  A = label data, zero flag reset (NZ), if okay,
         A = 0, zero flag set (Z), if no label exists,
         A = FFh, zero flag set (Z), if extended error,
         H = error code if A=FFh:
           01 = disk I/O,
           04 = invalid drive.
  USES:  HL (on error only), AF

Usage: Label data returned in A is bit-mapped as follows:
           b4 = create date file stamping available,
           b5 = update date file stamping available,
           b6 = access date file stamping available,
           b7 = passwords required on protected files.
:
REGDUMP - Debugging module displays register contents.

  ENTER: None.
  EXIT:  None.
  USES:  None.

Usage: Displays contents of registers A, HL, BC, DE, IX, and IY on console 
in a single line.  Execution stops until a key is pressed.  Pressing 
control-C (^C) causes an immediate exit via a warm boot.
:
ZSVERS - Returns current ZSLIB version.

  ENTER: None.
  EXIT:  HL = ZSLIB version in BCD:
           H = major version,
           L = minor version.
  USES:  HL

Usage: For ZSLIB version 3.0, for example, H = 3 and L = 0.  An alpha 
revision level identifier and the revision date are included in a null- 
terminated text string beginning at ZSVERS + 4.
:
These data tables are used internally by some ZSLIB routines.  Check a 
table's source code for the details of its contents.

DPERMO - One-byte wide table of days per month (non-leap year).

DSTRM3 - Three-byte wide month abbreviations table.

DSTRMO - Two-byte wide table pointing to month names.

DSTRW3 - Three-byte wide day of week abbreviations table.

DSTRWK - One-byte wide table of offsets pointing to day of week names.
:
ZOUT - Switchable character output.

  ENTER: A = character to print.
  EXIT:  None.
  USES:  None.

Usage: This is a temporary module and should not be used.  It will probably 
not be included in future versions of ZSLIB.  The module compensates for a 
bug in SYSLIB's SOUT routine, which does not preserve the flags.
