home *** CD-ROM | disk | FTP | other *** search
- Parse Command Line Date and Time - SPARSDS, PARSDT
- Scan for Character - PARCHR
- Count Command Line Parameters - PARCNT
- Get Specified Parameter - PARGET
- Skip Blanks or Non-blanks - EATSPC, EATNSPC
- Change Character Case - UNCAPS, REVCAS
- Get Program Name - GCOMNAM
- :
- SPARSDS - Parses date and time specifications for file stamps.
-
- ENTER: HL = address of datespec (14 characters or less),
- DE = address of initialized memory buffer (5 bytes),
- A = date format flag (0=American, FFh=European).
- EXIT : Zero flag set (Z) if memory buffer contains valid BCD date/time:
- A = 2Ah ("*") if wildcard character encountered,
- A = 0 if no wildcard or invalid characters encountered,
- Zero flag reset (NZ), if parsed datespec was out of range or an
- invalid character was encountered.
- USES : AF
-
- PARSDT -- Parse date and time specification of system clock.
-
- ENTER: HL = address of datespec (16 characters or less),
- DE = address of initialized memory buffer (6 bytes),
- A = date format flag (0=American, FFh=European).
- EXIT: A = 0, zero flag set (Z), if memory buffer contains valid BCD date
- and time,
- A <> 0, zero flag reset (NZ), if parsed datespec was out of range
- or an invalid character was encountered.
- USES: AF
-
- SPARSDS and PARSDT (continued)
-
- Usage: Parsing by SPARSDS and PARSDT is dependent on how the memory buffer
- is initialized. If the buffer is initialized to all FFh's, then only a
- complete datespec is accepted. If the buffer is initialized with a valid
- BCD date and time string, the initialized values will be used for any
- element missing from the datespec. (Any individual element of the buffer
- may be initialized to FFh to force entry of that particular element.) For
- example, if "//yy" or "..yy" are entered, only the year byte in the entry
- buffer will be changed. If a colon is used in the datespec (e.g., "15:"
- for 3 p.m.) then the "//" date delimiters are not needed.
-
- Wildcard characters ("*", "?", or "??") are considered illegal by PARSDT,
- but are accepted by SPARSDS. If wildcard characters are detected by
- SPARSDS, they are stored as ASCII "*" (2Ah) and A = 2Ah on return. Your
- application can handle wildcards as you see fit.
-
- Parsing will stop when an illegal character is encountered in the datespec
- and NZ will be returned. An illegal character encountered while checking
- for the timespec will not be flagged as an error, which can be useful in
- detecting a trailing option list. Your application can handle this
- situation as you see fit.
-
- SPARSDS and PARSDT (continued)
-
- If the date format byte in A is non-zero, the command line datespec for
- PARSDT takes the following forms (European date format):
- {{dd}.{mm}.{yy}} {{hh}:{mm}:{ss}} [real time]
- or
- {{dd}.{mm}.{yy}} {+nnnn} [relative time]
-
- If date format byte in A is zero, the command line datespec takes the
- following forms (American date format):
- {{mm}/{dd}/{yy}} {{hh}:{mm}:{ss}} [real time]
- or
- {{mm}/{dd}/{yy}} {+nnnn} [relative time]
-
- All items in braces are optional. Each date or time element may be two
- ASCII digits or less.
-
- The command line datespec for SPARSDS takes the same form, except that
- seconds are not parsed.
- :
- PARCHR - Scans string for specified character.
-
- ENTER: A = character to search for,
- HL = address of null-terminated string.
- EXIT: A = character, zero flag reset (NZ), if found,
- A = 0, zero flag set (Z), if not found,
- HL = address of found character or null terminator.
- USES: AF, HL
-
- Usage: Stops at first match. Does not scan for ^@ (null).
- :
- PARCNT - Count command line parameters.
-
- ENTER: HL = address of null-terminated command line string.
- EXIT: A = number, zero flag reset (NZ), if parameters found,
- A = 0, zero flag set (Z), if no parameters found.
- USES: AF
-
- Usage: On entry HL should point to the second byte of the default DMA
- buffer (81h), unless the command line has been moved elsewhere in memory.
- Parameters are expected to be delimited by spaces or tabs.
- :
- PARGET - Get address of specified command line parameter.
-
- ENTER: A = number of the desired command line parameter,
- HL = address of null-terminated command line string.
- EXIT: A = first character of parameter, zero flag reset (NZ), if found,
- A = 0, zero flag set (Z), if not found,
- HL = address of parameter, if found.
- USES: AF, HL
-
- Usage: On entry HL should point to the second byte of the default DMA
- buffer (81h), unless the command line has been moved elsewhere in memory.
- Parameters are expected to be delimited by spaces or tabs.
- :
- EATSPC - Skips spaces and tabs.
-
- ENTER: HL = address of null-terminated string.
- EXIT: HL = address of first non-blank character,
- A = found character, zero flag reset (NZ), if non-blank found,
- A = 0, zero flag set (Z), if null encountered.
- USES: AF, HL
-
- EATNSPC - Skips characters not spaces, tabs, or nulls.
-
- ENTER: HL = address of null-terminated string.
- EXIT: HL = address of first blank or null character,
- A = found character, zero flag reset (NZ), if blank found,
- A = 0, zero flag set (Z), if null encountered.
- USES: AF, HL
-
- Usage: All characters that are not spaces or tabs are considered non-
- blanks. These routines are smaller than SYSLIB's SKSP and SKNSP and set
- the zero flag if the end of the string is encountered.
- :
- UNCAPS - Lower-cases a character.
-
- ENTER: A = character.
- EXIT: A = character in lower-case.
- USES: AF
-
- REVCAS - Reverses the case of a character.
-
- ENTER: A = character.
- EXIT: A = character with case reversed.
- USES: AF
-
- Usage: These routines reset the character's high bit. If the entry
- character is alphabetic, UNCAPS always returns a lower-case character.
- REVCAS returns a lower-case character, if the entry character is upper-
- case; it returns an upper-case character, if the entry character is lower-
- case.
- :
- GCOMNAM -- Get and store program's invocation name.
-
- ENTER: HL = address of default program name (space terminated)
- EXIT: COMNAM (global) = program name (null-terminated).
- USES: None
-
- Usage: Gets program's invocation name from ZCPR3 external file control
- block, if it exists. If not, the default program name is stored. The
- default program name must be either 8 characters long or terminated by a
- space character. The program name (minus any trailing spaces) is stored as
- a null-terminated string at public label COMNAM (global) that can be
- accessed by print routines such as HPSTR and SYSLIB's PSTR and EPSTR.
-
- Once this routine has stored the invocation name, subsequent calls merely
- return, doing nothing. Repeated calls via the GO command will not change
- the original invocation name.
-
- IMPORTANT NOTE: This routine requires a linker search of Z3LIB after the
- search of ZSLIB.