;
                                 Z33LIB.LIB                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
Z33LIB.REL     2k (15)   CD14  0.5        Jay Sage 10/87           Z3LIB2

                                                                              

   Z33LIB is a collection of the module headers from the source code for the
Z33LIB routines that have been written to date.

   A - FCB1CHK    I - GETER3      Q - PUTER1     Y - SCAN
   B - FCB2CHK    J - GETSFCB     R - PUTER3     Z - SETEPB
   C - FCBCHK     K - GETSRUN     S - PUTERC     1 - STOPXSUB
   D - GCMDDU     L - GETSUB      T - PUTSUB     2 - SUBON
   E - GDEFDU     M - HALTSUB     U - QERROR     3 - Z33CHK
   F - GETCCP     N - HIGHUSER    V - REPARSE    4 - Z33FNAME
   G - GETECP     O - PARSE2      W - RESEPB
   H - GETER1     P - PDEFDU      X - RETCST
:a 


 FCB1CHK 

   This routine checks the  first  default file control block to  see  if  the
token  parsed there  was  a valid  file specification.   If there was an error
(signalled by  a nonzero value in the  record-count byte),  then  this routine
returns NZ and register A nonzero.   A zero value and Z flag signals  a  valid
FCB.
:b


 FCB2CHK 

   This routine checks the  second default file control  block to see  if  the
token parsed there  was  a valid file specification.   If there  was  an error
(signalled by  a nonzero value in  the record-count byte),  then  this routine
returns NZ and register A nonzero.   A zero value and Z flag signals  a  valid
FCB.
:c


 FCBCHK 

   This routine checks the file control block pointed to  by DE  to see  if it
contains  a validly parsed file specification.   ZCPR33 sets  the record-count
byte  to  a nonzero value if there was  an error  in  resolving the file spec.
If the FCB is valid,  this routine returns Z and A=0.   No other registers are
affected.

:d


 GCMDDU 

   This routine examines the external commmand file control block to determine
the directory (drive/user) in which  the  file  was located  during  the  path
search.   The values are  returned in  the BC register pair, with the drive in
B being in the range 0..15.  No other registers are affected.
:e


 GDEFDU 

   This routine  gets  the values  of the current default  (logged) drive/user 
area into BC by reading the CURDR and CURUSR bytes in the message buffer.   No
registers other than BC are affected.
:f


 GETCCP 

   This routine calculates the starting address of  the CCP based on  the BIOS
warmboot  vector.   The result  is returned  in HL.   No  other registers  are
affected.
:g


 GETECP 

   This routine  locates  the  name  of  the ECP in  the command processor and 
returns its address in HL.  All other registers are preserved.
:h


 GETER1 

   This routine supercedes the  same routine in Z3LIB.   It examines the error
command line  to determine if  an error command is present  or not.   If  none
is present,  A=0 and the Z flag is set.   If an error command line is present,
then A<>0, and NZ is returned.  No other register is affected.
:i


 GETER3 

   This routine returns the value of the command error flag in register A  and
sets the flags accordingly.  No other registers are affected.
:j


 GETSFCB 

   This routine locates  the submit  FCB in the command processor  and returns
its address in DE.   If SUBMIT is not enabled or if ZCPR33  is  not in memory,
then  the  routine returns  with  the  Z flag set.   All other  registers  are
preserved.
:k


 GETSRUN 

   This routine determines whether or not  a SUBMIT job is currently  running.
If one is, the routine returns NZ.  Only register AF is affected.
:l


 GETSUB 

   This routine gets the XSUB input redirection flag into the A register.   No
other registers are affected.
:m


 HALTSUB 

   This routine stops a submit job by deleting the $$$.SUB file.   It uses the
submit  FCB  in the command processor so that it adapts automatically   to the
correct drive and file name and type.  No registers are affected.
:n


 HIGHUSER 

   This routine tests to  see  whether  or  not the command processor supports
user  numbers  above 15.   If  ZCPR33  is  not running or if high user support
is disabled,  then HIGHUSER  returns with the zero  flag  set.   No  registers
except AF are affected.
:o


 PARSE2 

   This  routine  calls  the REPARSE  entry point  in the command processor to
reparse the command line pointed to by HL.   It  is  the user's responsibility
to  be  sure that  the command  processor has  not been overwritten in memory.
No registers are changed.  The two default file control blocks are filled.
:p


 PDEFDU 

   This routine puts  the drive/user values  in  BC into  the CURDR and CURUSR 
bytes in the message buffer,  making that directory the default directory.  No
registers are affected.
:q


 PUTER1 

   This routine supercedes the  same routine in Z3LIB,  and  its purpose is to
disable  the  function.   In ZCPR33 there  is  no  way to turn  external error
handling on and  off other than loading  or clearing the error  command  line.
The  flag formerly used for this  purpose  is  now used  for the command error
flag,  which indicates  the kind  of command error  that  was detected.   This
replacement routine does nothing
:r


 PUTER3 

   This  routine stores the  value  in register A into the command error flag.
No registers are affected.
:s


 PUTERC 

   This routine supercedes the  same routine in Z3LIB and differs only in that
it  limits the length  of the error command line  to 28 bytes,  since the four
bytes at  the end of the command line space have been assigned other purposes.
On entry,  HL points to  a  null-terminated command string.   This  string  is
copied to the error command line,  if  it will fit.   If it will not fit, then
the error command line is cleared, and on return A=0 and  the Z  flag  is set.
On exit,  HL points  to the character in the  new command line just  after the
last one copied.  Other registers are preserved.
:t


 PUTSUB 

   This routine  stores  the  contents  of  the A register into the XSUB input
redirection flag.  No registers are affected.
:u


 QERROR 

   This routine returns Z if the command status flag in the message buffer has
the error bit set.  Only register AF is affected.
:v


 REPARSE 

   This routine calls  the  REPARSE entry  point  in  the command processor to
reparse  the  command  line  starting  one  token later.   It  is  the  user's
responsibility to be sure that the command processor  has not been overwritten
in memory.   No registers  are changed.   The  two default file control blocks
are filled.
:w


 RESEPB 

   This routine resets  the external program  bit  in the command status flag.
No registers are affected.
:x


 RETCST 

   This routine returns the address of the command status flag in HL.  None of
the other registers is affected.
:y


 SCAN 

   This routine first initializes the FCB pointed to by DE  and then calls the
SCAN entry point in the command processor to parse a single token  pointed  to
by  HL into  it.   It is the user's responsibility to be sure that the command
processor has  not been  overwritten  in  memory.   No  registers are changed.
:z


 SETEPB 

   This routine sets the external program bit in the command  status flag.  No
registers are affected.
:1


 STOPXSUB 

   This routine resets the XSUB input redirection flag in  the message buffer.
No registers are affected.
:2


 SUBON 

   This routine tests  to  see if  SUBMIT processing is enabled in the command
processor.  If so,  it returns NZ.   It will return Z if SUBMIT is not enabled
or  if  the  ZCPR33 command processor cannot be detected.   Only  register  AF
is affected.
:3


 Z33CHK 

   This routine checks  to  see that the version of the CCP that is running is
version 3.X.  Two tests must be passed.  First,  the version byte must be 3xH.
Secondly,  the byte at offset 3 must be a relative  jump  instruction  (opcode 
18H).   If both tests pass,  the routine returns  with  the zero flag set (Z).  
Otherwise the flag is reset (NZ).
:4


 Z33FNAME 

   This routine first initializes the FCB pointed  to by DE and then calls the
SCAN entry point in the command processor to parse a  single token pointed  to
by  HL into  it.   It is the user's responsibility to be sure that the command
processor has not been  overwritten  in memory.   The routine  returns with HL
pointing to  the character  the  delimited  the  token.   Valid delimiters are
space, comma, semicolon, equals,  greater than,  less than,  underscore or any
control character less than space.  No other registers are affected.
