;
                                Z33TRCP.Z80                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
              12k (77)   AF33  1.1        Cameron Cotrill 9/87     Z3RCP3

  1- Usage  2 - Installation  3- Notes                                        

   The Z33 Temporary Resident Command Package RSX is designed to  address  the 
situation where TPA hungry programs such  as WS4 are  going to run on a ZCPR33
system and defining  a 2k block for the RCP makes the difference  between such 
programs running and not running.   Z33TRCP creates  a  removable  RCP  buffer
below ZCPR33,  making the RCP available on systems that couldn't use it other-
wise due to TPA size restrictions.

   Because Z33TRCP exists at the top of TPA and can be removed quickly, it can
get out of the way of programs that need big TPAs in  a way that is impossible 
to do with  a 'normal' ZCPR33 system.   This in effect allows dynamic resizing
of the TPA.
:1


Usage:

   Z33TRCP can be invoked from the command line, alias, shell, or submit file.
It WILL NOT load while ZEX (or any other RSX such as DateStamper running below
CCP) is present.   It is a true ZCPR utility and needs to be installed (though
this step is automatic with ZCPR33).   There are no command options other than
the normal ZCPR help message.

   If Z33TRCP is unsuccessful in creating the RCP buffer,  it prints a message
on the console confirming this if the quiet flag is off.  LDR may then be used
to load the RCP in the normal manner.

   To remove Z33TRCP, use the RCPX command.  This will remove the RCP and free
up the  TPA space  (provided no  other  RSX's are loaded  below it).  Like the 
Z33TRCP command, the RCPX command can't be issued when ZEX is running.  If you
own  BackGrounder II, the REMOVE.COM utility supplied with BGII  may  also  be 
used to remove Z33TRCP.



Usage (continued):

   Once Z33TRCP is loaded,  ZEX may  be used as normal.   Note that  you  must
use ZEX31A or later with Z33TRCP or any other  RSX.   Earlier versions  of ZEX
will overwrite the RCP and could crash the system upon exit.

   Z33TRCP sets the command error byte  at  the  base address  of the  message
buffer  and  signals  ZCPR33  to invoke the error handler under the  following
cases:
        1. An  attempt is made to load Z33TRCP when other RSX's are already
           loaded.   This generates error #20.   Z33TRCP will also print  a
           short error message.

        2. An attempt is made to remove Z33TRCP when other RSX's are loaded.
           This generates error #21.
:2


Installation:

   Z33TRCP must be assembled for the target system.  SYSDEF.LIB and Z3BASE.LIB
must be available at assembly time.   Be sure that Z3BASE has the RCP and RCPS
values coded in properly.  A good way to set the RCP equate is:

RCPS EQU  16               ; size of RCP in 128 byte blocks (2k)
RCP  EQU  CCP-[RCPS*128]   ; address of RCP

Note that the automatic address setting  of Z3BASE can't be used with Z33TRCP.
Z33TRCP is coded for the ZAS 3.0 assembler and uses .phase and .dephase pseudo
ops.   Assemble with the command:  ZAS [dir:]Z33TRCP.   Link with the command:
ZLINK [dir:]Z33TRCP.  Z33TRCP is  a  type 3 program,  so the $R option may  be 
used if you want Z33TRCP to load high.



Installation (continued):

   To  use Z33TRCP,  ZCPR33 must  be configured to obtain the RCP address from
the environment.  Because of this requirement,  Z33TRCP will not work with any
version of ZCPR lower than 3.3.   Z3BASE must contain the information of where
the RCP  will exist when loaded,  howver,  the loaded .ENV should not have it.
In  order to remove Z33TRCP,  the command RCPX is used.   Normally RCPX  is  a 
transient  program,  but it may be made RCP resident if desired by adding  the
following line to the command macro in Z33RCP.LIB:

;                     wheel protect
       command RCPX,true,<true or false>,rcp-7ah

This step is optional.
:3

 
Z33TRCP Notes:

   a. Z33TRCP creates  the RCP buffer below  ZCPR33  as  a  RSX,  patches  the
      environment  to  show  its presence as an RCP, clears the new RCP space,
      patches the  BDOS jump to  0005h  to protect itself,  and  then exits to
      ZCPR33.  Z33TRCP  has  a  Plu*Perfect RSX header and all the proper  RSX
      support, including a remove routine.   Z33TRCP  is  not  relocatable and
      must be the highest RSX in memory.

   b. Z33TRCP does not  actually load the RCP.  It  only creates the space for
      it.   LDR is used to  load the  RCP itself,  just as if the RCP was in a
      normal location.  
