   S E N D M A P   -  Platform: MVS/TSO


   This utility allow a REXX program to do full screen maps in TSO
environment, setting some REXX variables and recalling this program.


   In this distribution file (SENDMAP.ZIP) there is:

SENDMAP.OBJ              executable for MVS/TSO mainframe, in obj form
SENDMAP.HIL              Hilmas source of this file
README.TXT               this help file 
LINKEDIT.JCL             job example to install SENDMAP
TESTSNDM.REX             a REXX example of the use of SENDMAP


OBJ installation:

- Create in MVS a sequential file, for example 'MYUSER.PROGRAM.OBJ'
  with RECFM=FB and LRECL=80, for example of 1 cylinder.

- SEND obj module from PC to MVS in this file in BINARY form, with your 
  3270 emulation; the most important thing is a binary transfer (therefore 
  without ASCII CRLF) in a file with record length of 80 bytes.
  Use this PC command (in a PC with IBM/PCOMM 4.1 3270 emulation installed):

     SEND SENDMAP.OBJ 'MYUSER.PROGRAM.OBJ'

- Prepare a Job to Linkedit transferred obj in a load library (possibily
  in Linklist): use LINKEDIT.JCL as example: fit this JCL to your needs
  changing library names

- Submit linkedit job to create load module; output library must be a
  load library used by TSO users (i.e. in  //JOBLIB ) or a linklist library
  (in this case, you must refresh linklist with F LLA,REFRESH command)

- Bring the REXX sample program TESTSNDM.REX in a CLIST library seen
  by TSO users, with, for example:

     SEND TESTSNDM.REX 'MYUSER.EXEC.SOURCE(TESTSNDM)' ASCII CRLF

  and run it in your TSO session to see an example of the use of SENDMAP.


Program instruction:

  Recalled by a REXX program, SENDMAP read REXX variables with fields
  descriptions of the 3270 map, send the map, wait for input of the
  unprotected fields and return these values to the REXX variables.
 
  Use:
         SENDMAP  <map-name>  <number-of-fields>  <options>

  Every REXX variable of name <map-name>.1, <map-name>.2, etc.
  must contain:
         <mode>,<row>,<column>,<length>,<attribute>,<name>
  <mode> can be:      C : <name> is a constant in Output (without quote)
                      O : <name> is a REXX variable only in Output
                      I : <name> is a REXX variable in Input/Output
  <row> and <column> show field position (mandatory)
  <length>           is field length; if is 0 or X is used the length
                     of the REXX variable
  <attribute> can be:       X (or nothing) :  normal
                            H Hilight (white or red)
                            D Dark    (invisible)

  <option>    can be:       NOWAIT : don't wait input from terminal
                            BEEP or ALARM  : play a short beep
                            UPPER  : translate into uppercase input fields

  No parameter can be omitted.
  Maximum length of a 'C' field or of a REXX variable is 256 bytes.
  Maximum length of a REXX variable NAME is 32.

  Optionally, variable <map-name>.0 can contain order number of Input
  field on which put the cursor (default field is 1).

