 Function   0: Boot         -- Miscellaneous Functions --
 Function  12: Return CP/M Version Number
 Function  48: Return Enhanced DOS Version
 Function  98: Get System Time
 Function  99: Set System Time
 Function 100: Get ZSDOS Flags
 Function 101: Set ZSDOS Flags
 Function 102: Get File Stamp
 Function 103: Set File Stamp
 Time/Date Codes
:

     +---------------------------------------------------------------+
     |                      FUNCTION 0 -- BOOT                       |
     +------------------------------+--------------------------------+
     | Entry:  C = 0 (00h)          | Exit:  None                    |
     |                              |                                |
     |                              |                                |
     +------------------------------+--------------------------------+

Rarely used, but provides a clean termination of program: removable disks 
are reset, the DMA address is set to the default 80h, and the CCP is 
reloaded.

The same results are obtained if the terminating program jumps to location 
00h.

It is usually more desirable to terminate an program by returning (RET) to 
the CCP, if it has not been overwritten.
:

     +---------------------------------------------------------------+
     |           FUNCTION 12 -- RETURN CP/M VERSION NUMBER           |
     +------------------------------+--------------------------------+
     | Entry:  C = 12 (0Ch)         | Exit:  HL = 22h                |
     |                              |                                |
     |                              |                                |
     +------------------------------+--------------------------------+

Returns 22h to indicate compatibility with CP/M 2.2.  To confirm the ZSDOS 
version use Function 48.

For compatibility with older programs written for Plu*Perfect DateStamper, 
if DateStamper file date stamping is running, the function also returns the 
address of the DateStamper clock routine in DE, if "D" (44h) is passed in E 
when the function is called.
:

     +---------------------------------------------------------------+
     |          FUNCTION 48 -- RETURN ENHANCED DOS VERSION           |
     +-------------------------------+-------------------------------+
     | Entry:  C = 48 (30h)          | Exit:  A = Version number     |
     |                               |        H = DOS identifier     |
     |                               |        L = Same as A          |
     +-------------------------------+-------------------------------+

Returns the current ZSDOS version number in both A and L.  In addition, an 
indentifier is returned in H to allow differentiation between the various 
enhanced DOS's.

CP/M returns zero (not implemented) in A and L.  Only three DOS identifiers 
are currently in use:
                            0           ZRDOS
                           'D' (44h)    ZDDOS
                           'S' (53h)    ZSDOS
:

     +---------------------------------------------------------------+
     |                    FUNCTION 98 -- GET TIME                    |
     +-------------------------------+-------------------------------+
     | Entry:  C = 98 (62h)          | Exit:  A = Time/date code     |
     |        DE = Address of buffer |                               |
     |                               |                               |
     +-------------------------------+-------------------------------+

Puts system time as a 6-byte BCD date specification into the buffer whose 
address is passed in DE.

Returns an error if the clock cannot be read or if no clock driver is 
installed.
:

     +---------------------------------------------------------------+
     |                    FUNCTION 99 -- SET TIME                    |
     +-------------------------------+-------------------------------+
     | Entry:  C = 99 (63h)          | Exit:  A = Time/date code     |
     |        DE = Address of buffer |                               |
     |                               |                               |
     +-------------------------------+-------------------------------+

Sets the system time from a 6-byte BCD date specification in the buffer 
whose address is passed in DE.

Returns an error if the clock cannot be set or if no clock drive is 
installed.
:

     +---------------------------------------------------------------+
     |                   FUNCTION 100 -- GET FLAGS                   |
     +-------------------------------+-------------------------------+
     | Entry:  C = 100 (64h)         | Exit: HL = Flags              |
     |                               |                               |
     |                               |                               |
     +-------------------------------+-------------------------------+

Returns current ZSDOS configuration flags in L.  For future compatibility H 
is set to zero.

Bit flags in L (1=enable, 0=disable):
     b0 = allow public files using public attribute
     b1 = allow writing to public files or along path
     b2 = preserve write-protect vector across warm boots
     b3 = allow fast fixed disk relog
     b4 = issue warning of disk change
     b5 = use ZCPR path to open system files (not used by ZDDOS)
     b6 = allow opening non-system files on path (if b5 is set)
     b7 = reserved
:

     +---------------------------------------------------------------+
     |                   FUNCTION 101 -- SET FLAGS                   |
     +-------------------------------+-------------------------------+
     | Entry:  C = 101 (65h)         | Exit:  None                   |
     |        DE = Flags             |                               |
     |                               |                               |
     +-------------------------------+-------------------------------+

Sets current ZSDOS configuration flags from the value passed in E.  For 
future compatibility D should be set to zero, although it is currently 
ignored by this function.

Bit flags in E (1=enable, 0=disable):
     b0 = allow public files using public attribute
     b1 = allow writing to public files or along path
     b2 = preserve write-protect vector across warm boots
     b3 = allow fast fixed disk relog
     b4 = issue warning of disk change
     b5 = use ZCPR path to open system files (not used by ZDDOS)
     b6 = allow opening non-system files on path (if b5 is set)
     b7 = reserved
:

     +---------------------------------------------------------------+
     |                   FUNCTION 102 -- GET STAMP                   |
     +-------------------------------+-------------------------------+
     | Entry:  C = 102 (66h)         | Exit:  A = Time/date code     |
     |        DE = Address of FCB    |                               |
     |                               |                               |
     +-------------------------------+-------------------------------+

Puts the BCD file stamp for the file in the file control block (FCB) in the 
first 15 bytes of the current DMA buffer.  The buffer length must be at 
least 128 bytes.

Returns an error if the stamp could not be read or if no driver is 
installed.

The extent (FCB+12) and data module (FCB+14) bytes in the FCB must be zero, 
and the correct user number for the file must be set via Functions 32 or 
45.
:

     +---------------------------------------------------------------+
     |                   FUNCTION 103 -- SET STAMP                   |
     +-------------------------------+-------------------------------+
     | Entry:  C = 103 (67h)         | Exit:  A = Time/date code     |
     |        DE = Address of FCB    |                               |
     |                               |                               |
     +-------------------------------+-------------------------------+

Gets the BCD file stamp for the file in the file control block (FCB) from 
the first 15 bytes of the current DMA buffer and records it on disk.  The 
buffer length must be at least 128 bytes.

Returns an error if the stamp could not be written or if no driver is 
installed.  No stamp will be written if the disk is write protected.

The extent (FCB+12) and data module (FCB+14) bytes in the FCB must be zero, 
and the correct user number for the file must be set via either Functions 
32 or 45.
:


                              TIME/DATE CODES

               (Returned by Functions 98, 99, 102, and 103)

                            A = 1     no error
                            A = FFh   error
