gtpi1m68System Installation Support Reference

Loading System Components to an Existing TPF System

The auxiliary loader is the main method for performing system loads for an existing TPF system. The general file loader is only necessary at system generation time or if an emergency load condition in which no fallback image exists.

Use the auxiliary loader to load system components from a storage medium to any defined and disabled TPF image. Because the auxiliary loader operates in 1052 state or above, the subsystem must be initialized through a full load before the auxiliary loader can be used. The auxiliary loader requires only a hard IPL to switch the now active image.

Multiple Image Users

If you are running more than one TPF image, make sure the FCTBs and RIATs for each system have compatible structures. That is, make sure the tables:

  • Do not point to different addresses for the same record.
  • Do not point to the same address for different records.

Perform the following steps to load system components to an existing TPF system:

  1. Create a new fallback image.
  2. Create an auxiliary load deck.
  3. Load system components to a storage medium.
  4. Load the storage medium to the system.
  5. Enable the image.
  6. Move keypoints to the #KEYPT working area (optional, see Moving Keypoints to the Working Area).
  7. IPL the image.

Creating a New Fallback Image

To load system components to a fallback image, you must first have a fallback image. If you do not have a fallback image, or want to create a new fallback image, you must do the following:

  1. Define the fallback image.
  2. Copy CTKX, CIMR components, IPL areas, and program areas from another image to the new fallback image.

Defining a Fallback Image

To define a new image (for example, TPF02) enter ZIMAG DEF TPF02 NUM 2 IPL x PROG y.

Note:
Where x is the IPL area and y is the PROG area for TPF02.

Copying CTKX, IPL Areas, Program Areas, and CIMR Components

To physically copy CTKX, IPL areas, program areas, and CIMR components to a fallback image, do the following:

  1. Enter ZIMAG COPY TPF01 TPF02 CTKX to physically copy CTKX from image TPF01 to image TPF02,
    Note:
    CTKX must be loaded or copied to an image before any CIMR components can be copied.
  2. Enter ZIMAG COPY TPF01 TPF02 IPL to physically copy IPL areas from image TPF01 to image TPF02,
  3. Enter ZIMAG COPY TPF01 TPF02 PROG to physically copy program areas from image TPF01 to image TPF02,
  4. Enter ZIMAG COPY TPF01 TPF02 COMP ALL PHYSICAL to physically copy all CIMR components from image TPF01 to image TPF02,

To logically copy CIMR components from image TPF01 to image TPF02, use the ZIMAG COPY LOGICAL command. For example, enter ZIMAG COPY TPF01 TPF02 COMP FCTB.ICDF.ACPL.SIGT.RIAT.USR1.USR2 LOGICAL, assuming that you are loading a new CPS0.

Notes:

  1. The CTKX, IPL areas, and program areas cannot be logically copied.

  2. A logical copy cannot be made of the IPAT if the two images are using different program areas.

Creating an Auxiliary Load Deck

This section shows the steps to take to create a load deck.

Enter the JCL Cards

The following JCL cards are used to run the auxiliary loader offline segment (TLDR); nn is the release identification and ssid is the subsystem ID.

Figure 19. TLDR Run Load Deck (to Tape) Example

//TLDRVTAP JOB MSGLEVEL=1,CLASS=A,MSGCLASS=A
//TLDR   EXEC  PGM=TPFLDRnn,REGION=7000K,PARM='TLDR,SYS=ACP,CLMSIZE=4000000'
//STEPLIB  DD  DSN=ACP.LINK.RELnn.ssid,DISP=SHR
//         DD  DSN=SYS1.EDC.SEDCLINK,DISP=SHR
//         DD  DSN=SYS1.PLI.SIBMLINK,DISP=SHR
//SALTB    DD  DSN=ACP.SALTBL.RELnn.ssid,DISP=SHR
//OBJDD    DD  DSN=ACP.OBJ.RELnn.ssid,DISP=SHR
//LOADMOD  DD  DSN=ACP.LINK.RELnn.ssid,DISP=SHR
//ALDRCPL  DD  DSN=ACP.LINK.RELnn.ssid,DISP=SHR
//ADATAIN  DD  PDS=xxx
//ADATATMP DD  DSN=&&SYSUT1,SPACE=(TRK,(100,20)),UNIT=SYSDA
//TLDROUT  DD  UNIT=SYSDA,DSN=&&TLDROUT,DISP=(NEW,PASS)
//TAPEOUT  DD  DSN=&&SYSUT1,SPACE=(TRK,(100,20)),UNIT=SYSDA
//TEMPLOAD DD  DSN=&&SYSUT1,SPACE=(TRK,(100,20)),UNIT=SYSDA
//LOADLIST DD  SYSOUT=A
//LOADSUM  DD  DSN=&&LOADSUM,DISP=(NEW,PASS),UNIT=SYSDA,
//             LRECL=133,SPACE=(TRK,(10,10)),RECFM=FBA
//SYSUDUMP DD  SYSOUT=*
//SYSABEND DD  SYSOUT=*
//LDRTRACE DD  SYSOUT=*
//SYSIN    DD  *
*** INPUT CONTROL CARDS ARE PLACED HERE
/*
//MKTAPE EXEC PGM=IEBGENER,REGION=58K
//SYSPRINT DD SYSOUT=*
//SYSIN    DD DUMMY
//SYSUT2   DD DSN=TLD.TAPE,LABEL=(,SL),UNIT=3480,
//            VOL=SER=vvvvvv,DISP=(,KEEP),
//            DCB=(BLKSIZE=4095,RECFM=U)
//SYSUT1   DD DSN=&&TLDROUT,UNIT=SYSDA,DISP=(OLD,DELETE)
//PRTSUM EXEC PGM=IEBPTPCH
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=&&LOADSUM,UNIT=SYSDA,DISP=(OLD,DELETE)
//SYSUT2   DD SYSOUT=*,LRECL=133
//SYSIN    DD *
   PRINT   PREFORM=A
/*

Notes:

  1. DD names SALTB, OBJDD, TAPEOUT, TEMPLOAD, LOADLIST, TLDROUT, LOADSUM, SYSIN, and LOADMOD are required.

  2. DD name LDRTRACE is required only if you specify TRACE(ON) as a parameter.

  3. Data set concatenation is sequence dependent.

  4. Figure 19 shows a TLDR load deck using tape as the storage medium. Appendix A, JCL Load Deck Examples shows JCL load decks using other storage medium.

  5. If the storage medium is tape, use standard label tapes.

TPFLDR Exec Card

The TPFLDR Exec card identifies the specified version of the TPF offline loader program (TPFLDR).

The following parameters can be specified on the EXEC card:

  1. TLDR

    indicates that the auxiliary loader (TLDR) is to be run.

  2. PGMNBR = x

    where x is the maximum number of program calls that can be done in the load. This number is used to GETMAIN an area for a program table. The current maximum value is 599 186. Coding a value greater than this will result in a PARM ERROR message. If not specified, the PGMNBR default is the value of the SALCOUNT field in the header of the offline SALTBL referred to by the SALVERS control card.

  3. PTCHNBR = x

    where x is the maximum number of REP cards that can be included in the load. This number is used to determine the storage area size for a patch table. The size of the area, in bytes, is 84 times the PTCHNBR. The current maximum value is 199 728. Coding a value greater than this will result in a PARM ERROR message. If not specified, the PTCHNBR default is 800 REP cards.

  4. BUFSIZE = x

    where x is the maximum size of any component that is included in the load deck. The default value is 2 000 000. Check the size of the IPAT, FCTB, and CP to determine the correct value for this parameter. Any number up to 7 digits is allowed.

    Note:
    When using the PGMNBR, PTCHNBR, and BUFSIZE defaults, specify a REGION of at least 7000K on the EXEC card.
  5. SYS = nnn

    where nnn is a 3-character ID printed in the load listing and load summary. The default is blanks.

  6. CLMSIZE = x

    where x is greater than or equal to the MVS file size of the largest C load module to be loaded. If a C load module contains a higher than normal ratio of VCONs to executable code, CLMSIZE must be larger. TLDR searches only the OBJDD DSN (not LOADMOD DSN) when CLMSIZE = 0.

  7. ADATASIZE = x

    where x is greater than or equal to the MVS file size of the largest ADATA file to be loaded. ADATA does not attempt to load ADATA files when ADATASIZE=0.

  8. TRACE(ON|OFF)

    If you specify TRACE(ON), selective trace data will be written to the LDRTRACE DD name. This trace data can be useful to system programmers to debug problems that occur while running TPFLDR. TRACE(ON) is primarily intended for TPF development personnel for this purpose. TRACE(OFF) is the default. If you specify TRACE(OFF), no trace data is written.

STEPLIB Card

The STEPLIB card identifies the partitioned data sets that contain the offline loader programs.

SALTB Card

The SALTB card identifies partitioned data sets that contain the system allocator table (SALTBL). The SALTBL contains information necessary for the TPF linkage editor to resolve virtual address constants (VCONs). These VCONs can be program addresses, tape names, macro parameters, and others that are put in the SALTBL to allow relocation of resources in the online system. See System Allocator for more information on the SALTBL.

OBJDD Card

The OBJDD card identifies object libraries. Object libraries are partitioned data sets of assembled programs. All programs to be loaded must be in object libraries with the exception of the control program, FACE table, and C load modules. Library contents are maintained and updated using MVS procedures. For more information, see TPF System Generation.

LOADMOD Card

The LOADMOD card identifies the partitioned data set (LOADMOD) that contains the link-edited C load modules. When an E-type program is being loaded, the data sets identified by the LOADMOD card are searched before the data sets identified by the OBJDD card are searched. The C load modules are compiled and link-edited using standard MVS facilities. For more information, see TPF System Generation.

ALDRCPL Card

The ALDRCPL card identifies the partitioned data set that contains the link-edited control program. The control program is assembled and link-edited using standard MVS facilities. For more information see TPF System Generation.

ADATAIN Card

The optional ADATAIN card identifies the partitioned data set (PDS) that contains ADATA files to be loaded with real-time programs. If the ADATAIN card is present, TLDR will attempt to find ADATA files in the data set specified by the ADATAIN card. SYSADATA files are generated by the high level assembler (HLASM) and must be processed by the SYSADATA postprocessor (program TPFDBG) to create ADATA files before they can be loaded. When TLDR loads a basic assembly language (BAL) program, it will attempt to find an ADATA file by searching for a PDS member with a matching name. When TLDR loads an E-type load module, it will attempt to find an ADATA file for each object module linked into the load module. TLDR will ensure that the assembly date of the ADATA file matches the assembly date of the assembler language program before loading an ADATA file.

Note:
If a program was assembled more than once on a given date, it is possible for TLDR to load an incorrect ADATA file with an assembler language program. You must ensure this does not happen. Whenever an E-type program (BAL or load module) is loaded to the online system by the auxiliary loader, any ADATA file associated with a previously loaded version of that program is effectively erased. For more information, see TPF System Generation.

ADATATMP Card

The ADATATMP card specifies a temporary data set used to hold ADATA files before they are written to the output medium.

TLDROUT Card

The TLDROUT card identifies the output device to which offline programs and data are written.

TAPEOUT Card

If E-type programs are loaded, the TAPEOUT card creates program version records (PVRs) and writes them to the TAPEOUT file.

TEMPLOAD Card

The TEMPLOAD card reads load cards and checks the format. It adds program names to a name table and copies the input card image to temporary data sets used to generate the detail report.

LOADLIST Card

The LOADLIST card causes an output listing that details all system components loaded to the storage medium to be produced. Errors that do not cause the program to abend are also written in this listing. Abend error messages and informational messages are sent to the operator console. For more information on error messages see Messages (System Error and Offline) and Messages (Online).

LOADSUM Card

The LOADSUM card causes an output listing summary of the system components loaded to the storage medium.

Enter the Input Control Cards

Figure 20 shows a sample TLDR input control load deck. The example explains the order of the cards and states if the cards are required or optional. This order is not affected by deleting optional cards or adding comment cards.

Figure 20. TLDR Input Control Load Deck Example

================================================================================
    Initialization part of the load deck - Must be first input control cards
================================================================================
SYSID=BSS                      <-- Required, must be first
SALVERS=40                     <-- Required, immediately after SYSID
LOADER   LOAD  CTKX 40         <-- Optional
================================================================================
    Main part of the load deck - Must be second input control cards
================================================================================
LOADER   LOAD  CP   40         <-- Optional, before file-resident programs
LOADER   LOAD  IPAT 40         <-- Optional, anywhere after LOAD CP
LOADER   LOAD  KEYPT           <-- Optional, anywhere after LOAD CP
LOADER   CALL  KEYPTCTK040     <-- Optional, immediately after LOAD KEYPT
LOADER   CALL  KEYPTCTK140
LOADER   CALL  KEYPTCTK241
LOADER   CALL  KEYPTCTK340
LOADER   CALL  KEYPTCTK440
LOADER   CALL  KEYPTCTK540
LOADER   CALL  KEYPTCTK640
LOADER   CALL  KEYPTCTK940
LOADER   CALL  KEYPTCTKA40
LOADER   CALL  KEYPTCTKB40
LOADER   CALL  KEYPTCTKC40
LOADER   CALL  KEYPTCTKD40
LOADER   CALL  KEYPTCTKE40
LOADER   CALL  KEYPTCTKI40
LOADER   CALL  KEYPTCTKM40
LOADER   CALL  KEYPTCTKV40
LOADER   CALL  KEYPTCTKA40   C
LOADER   PROG-MOD-BASE CLEAR   <-- Optional, anywhere after LOAD CP and LOAD OPL
LOADER   APRG CLEAR            <-- Optional, anywhere after LOAD CP
LOADER   ELDR CLEAR            <-- Optional, anywhere after LOAD CP
LOADER   LOAD  OPL             <-- Optional, anywhere after ELDR CLEAR
 PARS40                        <-- Optional, immediately after LOAD OPL
 PARS4D
 PARSP1
LOADER   LOAD  AP              <-- Optional, anywhere after LOAD CP
LOADER   CALL  PROG COSY40     <-- Optional, immediately after LOAD AP
LOADER   CALL  PROG BXAX40
LOADER   CALL  PROG CCKP40
LOADER   CALL  PROG COHA40
LOADER   CALL  PROG COHB40
LOADER   CALL  PROG UF00P1
 REP  000348 0014700       <- Optional, immediately after CALL PROG ->    UF00P1
LOADER   LOAD  ACPL 40          <-- Optional, anywhere after LOAD CP
LOADER   LOAD  FCTB 40          <-- Optional, anywhere after LOAD CP
LOADER   LOAD  ICDF 40          <-- Optional, anywhere after LOAD CP
LOADER   LOAD  IPLA 40          <-- Optional, anywhere after LOAD CP
LOADER   LOAD  IPLB 40          <-- Optional, anywhere after LOAD CP
LOADER   LOAD  SIGT 40          <-- Optional, anywhere after LOAD CP
LOADER   LOAD  RIAT 40          <-- Optional, anywhere after LOAD CP
LOADER   LOAD  USR1 40          <-- Optional, anywhere after LOAD CP
LOADER   LOAD  USR2 40          <-- Optional, anywhere after LOAD CP
 LDT                            <-- Required, must be last
/*

Figure 21 shows a sample TLDR input control load deck that makes use of the PATH card to load an FCTB in program object format from an HFS path.

Figure 21. TLDR Input Control Load Deck Example Showing FCTB in Program Object Format from HFS

================================================================================
    Initialization part of the load deck - Must be first input control cards
================================================================================
SYSID=BSS                      <-- Required, must be first
SALVERS=40                     <-- Required, immediately after SYSID
LOADER   LOAD  CTKX 40         <-- Optional
================================================================================
    Main part of the load deck - Must be second input control cards
================================================================================
LOADER   PATH  FCTBPATH         This search path can be used to find FCTB
         /u/tpf41/product_components/system/;                                  X
         /u/tpf41/product_components/test/;                                    X
         /u/user1/my_project/tables
LOADER   LOAD  FCTB 40/FCTBPATH <-- FCTBPATH indicates search path to use
 LDT                            <-- Required, must be last
/*

All following cards in the same section (for example, LOADER LOAD KEYPT section or LOADER LOAD AP section) will be marked as unknown card and ignored when a card format error or sequence error is detected.

The IMAGE CLEAR card is not supported. A warning message will be generated if it is included in the load deck. Use the ZIMAG CLEAR command to initialize an image.

Comment Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
*comments

Comment cards can be placed anywhere in the load deck. Comments are identified by an asterisk (*) in card column 1.

PROG-MOD-BASE Clear Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   PROG-MOD-BASE CLEAR

The PROG-MOD-BASE clear card resets the master extra program record so that all extra program records (#XPRGn fixed file records) are available to be dispensed. If the clear card is present, TLDR sets an indicator for the online part of the auxiliary loader to initialize the master extra program record. This occurs on the target image.

The card is optional and can be placed anywhere after the LOAD CP card and before the LOAD OPL and LOAD AP cards. The card must be included to initialize a program base before any C load modules are loaded to that image.

Notes:

  1. All C load modules must be reloaded when the PROG-MOD-BASE clear card is included.

  2. If the LOADER PROG-MOD-BASE CLEAR card is added while a ZOLDR ACCEPT is in progress for a loadset that contains a C load module, then the ELDR Clear card must also be included in the load deck.

APRGn Record Clear Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   APRG CLEAR

The APRGn Record Clear card resets the master APRGn record so that all APRGn records (#APRGn fixed file records) are available to be dispensed. If the Clear card is present, TLDR sets an indicator for the online part of the auxiliary loader to initialize the master APRGn record. This occurs on the target image.

The card is optional and can be placed anywhere after the LOAD CP card and before the LOAD OPL and LOAD AP cards. The card must be included to initialize newly allocated APRGn records before ADATA files can be loaded with any assembler language programs.

Notes:

  1. All online ADATA files are effectively erased when the LOADER APRG CLEAR card is included; if ADATA files are required to be online for any programs, those programs must be reloaded.

ELDR Clear Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   ELDR CLEAR

The ELDR Clear card ensures clean E-type loader record definitions. If it is present, TLDR will set an indicator for the online part of the auxiliary loader to clear and reinitialize all E-type loader records for the target image.

Attention: The ELDR Clear card will cause all E-type programs that were loaded or activated (but not accepted) with the E-type loader to be cleared on the online system.

Subsystem ID Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
SYSID=nnnn
 
nnnn = Subsystem ID

The Subsystem ID card must be the first noncomment card in the deck. It identifies the subsystem to be loaded. This ID is also the prefix of the command that activates the online segment.

System Allocator Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
SALVERS=vv
 
vv = version

The System Allocator card specifies the version of the SALTBL to be used for link-editing. The program will terminate if this is not the second non-comment card in the deck.

Load CTKX Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  CTKX vv
 
vv   = version number

The Load CTKX card causes the image pointer record (CTKX) to be loaded to a storage medium in a 4KB record.

Patching

One or more REP cards can follow the Load CTKX card.

Load Control Program Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  CP   vv
 
vv = version number

The Load Control Program card is valid only for a load to the basic subsystem (BSS). The offline segment builds a copy of the control program in main storage from the load module library. The CP is then filed on a storage medium as a chain of 4KB records. A version number must be specified in columns 21-22.

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx  ccccccvv
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
cccccc = CP CSECT name
vv     = version number

Patch the control program by placing REP cards after the Load Control Program card. Control program patching is done by patching CP CSECT individually, starting at relative address zero. Each REP card must contain the CP CSECT name starting in column 73.

Load IPAT Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  IPAT vv
 
vv = version number

The Load IPAT card causes the program allocation table (PAT) to be loaded to a storage medium as core-image records. The time stamp in the header of system allocator table (SALTBL) will be used to validate the IPAT. If the time stamp in the header of the IPAT does not match the time stamp of the system allocator table (SALTBL), the load will end.

Patching

One or more REP cards can follow the Load IPAT card. Each REP card must contain the IPAT in card columns 75-78 and the version number in columns 79-80.

Load Keypoint Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  KEYPT
 

The Load Keypoint card tells the offline segment that there are keypoints to be loaded. The keypoints are identified by Call Keypoint cards or Patch Keypoint cards which must follow the Load Keypoint card.

Note:
Be careful when you enter ZIMAG KEYPT MOVE to move loaded keypoints into the working area (#KEYPT). ZIMAG KEYPT MOVE affects all images and can, for certain keypoints, affect all loosely coupled processors. If a mistake is made, the original contents of the keypoints can be recovered with the ZIMAG KEYPT RESTORE command. Online updates to keypoint data, made between the MOVE and the RESTORE, will be lost.

Call Keypoint Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   CALL  KEYPTnnnnvvON i
 
nnnn = Keypoint name
vv   = version number
ON   = an optional statement
i    = processor ID (optional)

The Call Keypoint card specifies the name and version number of a keypoint in columns 21-26.

Note:
See Call Online Keypoint Card for a list of keypoint names.

The keypoint specified is written to the a storage medium. This new keypoint will be written to the keypoint staging area of the target image. After the image is enabled, the keypoints can be moved to their working areas with the ZIMAG KEYPT MOVE command.

In a loosely coupled environment, when a processor-unique keypoint is being loaded, the processor ID is specified in column 30. If column 30 is blank, the default is the ID of the first processor in the system. When shared keypoints are being loaded, column 30 can be blank or any valid processor ID.

Leaving columns 27 and 28 blank on the Call Keypoint card (as in the example that follows) causes any associated REP card information to patch the Call Keypoint card information before the keypoint is loaded.

LOADER   CALL  KEYPTCTKA40   C    <-- Loads keypoint CTKA
 REP  000348 0014700    <-- Patches the new keypoint before loading -->   CKTA40

Placing ON in columns 27 and 28 of the Call Keypoint card (as in the example that follows) causes the associated REP card information to be written to the online keypoint without loading the new keypoint.

LOADER   CALL  KEYPTCTKA40ON C    <-- No load of keypoint CTKA
 REP  000348 0014700    <-- Patches applied to online keypoint CTKA -->   CKTA40
Note:
At least one REP card must follow the Call Keypoint card when using the ON facility.

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    nnnnvv
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
nnnn   = Associated keypoint name
vv     = version number

Each REP card must contain the same name and version number in card columns 75-80 as that punched in card columns 21-26 of the corresponding Call Keypoint card.

Patch Keypoint Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   PATCH KEYPTnnnnvv    i
 
nnnn = Keypoint name
vv   = version number
ON   = an optional statement
i    = processor ID (optional)

The Patch Keypoint card specifies the name and version number of a keypoint in columns 21-26. The Patch Keypoint card performs the same function as the Call Keypoint card using the ON facility. The Patch Keypoint card can be used by the TLDR only. The Patch Keypoint card causes the associated REP card information to be written to the online keypoint without loading the new keypoint.

Note:
As shown in the example that follows, at least one REP card must follow the Patch Keypoint card.
LOADER   PATCH KEYPTCTKA40   C    <-- No load of keypoint CTKA
 REP  000348 0014700    <-- Patches applied to online keypoint CTKA -->   CKTA40

The format of the REP card is identical to REP cards for Call Keypoint cards.

In a loosely coupled environment, when a processor-unique keypoint is being loaded, the processor ID is specified in column 30. If column 30 is blank, the default is the ID of the first processor in the system. When shared keypoints are being loaded, column 30 can be blank or any valid processor ID.

Note:
Patch Keypoint cards cannot be used with Call Keypoint cards if both specify the same keypoint.

Load OPL Card and PARS Card
Load OPL Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  OPL            LIST
 
LIST = an optional parameter that causes the auxiliary file loader to print
          the name and version number of each program loaded.
 
 
PARS Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
 PARSvv
 
vv = PARS list version

These cards cause E-type programs to be loaded to a storage medium. The programs are defined by one or more operational program list (OPL) records. Each OPL record contains a series of segment names and version numbers. Each of these records resides on the object module library with the name PARS and a unique 2-character version number. Different lists are indicated by different PARS cards. The Load OPL card must be followed by at least one PARS card.

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    nnnnvv
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
nnnn   = Segment name
vv     = version number

One or more REP cards can follow the PARS cards. Each REP card must contain the segment name and version number in card columns 75-80. Although the program will handle patch cards for different segments in any sequence and freely intermixed, the execution time will be minimized if all REP cards for any given segment are in one group. This eliminates needless I/O operations.

Note:
REP cards for C load modules are not supported. If a REP card is specified for a C load module, a warning message is issued and the REP card is ignored.

Load AP Card and Call Program Card
Load AP Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  AP             LIST
 
LIST = an optional parameter that causes the auxiliary loader to print
          the name and version of each program loaded.
 
 
Call Program Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   CALL  PROG nnnnvv
 
 
nnnn = program name
vv   = version number

The Load AP card tells the auxiliary loader offline segment to accept Call Program cards for the selective loading of E-type programs. If there are different version codes for a program in the OPL and AP lists, the auxiliary loader loads the last version specified in the AP list.

Note:
If there is a Call Program card syntax error, that program will not load. Also, all cards that follow the incorrect card (with the same Load AP card) will not load.

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    nnnnvv
 
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
nnnn   = Segment name
vv     = version number

One or more REP cards can follow a Call Program card. Each REP card must contain the same name and version number in card columns 75-80 as that punched in card columns 21-26 of the corresponding Call Program card.

Note:
REP cards for C load modules are not supported. If a REP card is specified for a C load module, a warning message is issued and the REP card is ignored.
Note:
If you include a REP card to patch a real time program that will have an ADATA file loaded, the TPF Assembler Debugger for VisualAge Client may not display an accurate listing view of the program.

Load ACPL Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  ACPL vv
 
vv = version number

When the auxiliary loader encounters the Load ACPL card, the general file loader online segment is loaded to a storage medium as core-image records.

Note:
This program can only be loaded to a basic subsystem (BSS).

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    ACPLvv
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
vv     = version number

One or more REP cards can follow the Load ACPL card. Each REP card must contain ACPL in card columns 75-78 and the version number in columns 79-80.

Load ICDF Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  ICDF vv
 
vv   = version number

The Load ICDF card causes the in-core dump formatter (ICDF) to be loaded to a storage medium as core-image records.

Note:
This program can only be loaded to a basic subsystem (BSS).

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    ICDFvv
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
vv     = version number

One or more REP cards can follow the Load ICDF card. Each REP card must contain ICDF in card columns 75-78 and the version number in columns 79-80.

Load FCTB Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  FCTB vv
 
vv = version number

The Load FCTB card causes the FACE table to be loaded to a storage medium as core image records. If the FCTB is to be loaded in program object format from the hierarchical file system (HFS) under OS/390 UNIX System Services (OS/390 UNIX), specify the name of a search path that was previously initalized in the load deck by a Path card. The format of the Load FCTB card, including the optional path name, follows.

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  FCTB vv/pathname
 
vv = version number
pathname = variable length alphanumeric name assigned by user to search path

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    FCTBvv
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
vv     = version number

Only data in the first 16 MB of the FCTB can be patched. One or more REP cards can follow the Load FCTB card. Each REP card must contain FCTB in card columns 75-78 and the version number in columns 79-80.

Load SIGT Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  SIGT vv
 
vv = version number

The Load SIGT card causes the Global Synchronization Table (SIGT) to be loaded to a storage medium as core-image records.

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    SIGTvv
 
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
vv     = version number

One or more REP cards can follow the Load SIGT card. Each REP card must contain SIGT in card columns 75-78 and the version number in columns 79-80.

Load USR1 Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  USR1 vv
 
vv = version number

The Load USR1 card causes the first user-defined CIMR area (USR1) to be loaded to a storage medium as core-image records.

Note:
This program can only be loaded to a basic subsystem (BSS).

Patching

One or more REP cards can follow the Load USR1 card. Each REP card must contain USR1 in card columns 75-78 and the version number in columns 79-80.

Load USR2 Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  USR2 vv
 
vv = version number

The Load USR2 card causes the second user defined CIMR area (USR2) to be loaded to a storage medium as core-image records.

Patching

One or more REP cards can follow the Load USR2 card. Each REP card must contain USR2 in card columns 75-78 and the version number in columns 79-80.

Load IPLA Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  IPLA vv
 
vv = version number

The Load IPLA card causes the IPL program, IPLA, to be loaded to a storage medium in 4KB records.

Note:
This program can only be loaded to a basic subsystem (BSS).

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    IPLAvv
 
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
vv     = version number

One or more REP cards can follow the Load IPLA card. Each REP card must contain IPLA in card columns 75-78 and the version number in columns 79-80.

Load IPLB Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  IPLB vv
 
vv = version number

The Load IPLB card causes the IPL program, IPLB, to be loaded to a storage medium in 4KB records.

Note:
This program can only be loaded to a basic subsystem (BSS).

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    IPLBvv
 
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
vv     = version number

One or more REP cards can follow the Load IPLB card. Each REP card must contain IPLB in card columns 75-78 and the version number in columns 79-80.

Load RIAT Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   LOAD  RIAT vv
 
vv = version number

The Load RIAT card causes the record identifier attribute table (RIAT) to be loaded to a storage medium as core-image records.

Patching
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
zREP  aaaaaa 001xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx    RIATvv
 
 
z      = Any character except *
aaaaaa = Address of the patch area
xxxx   = Patch data.  The data is entered 2 hex bytes at a
         time, separated by commas or blanks.
vv     = version number

One or more REP cards can follow the Load RIAT card. Each REP card must contain RIAT in card columns 75-78 and the version number in columns 79-80.

LDT Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
 LDT

This must always be the last control card for a given run and ends processing.

Path Card
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER   PATH  pathname        optional comments
         searchpath
 
pathname = alphanumeric name, up to 16 characters in length, used to reference the search path
searchpath = fully qualified search path occupying up to 14 input cards, as described below

The optional Path card actually consists of two or more cards in the input deck and is used to initialize a search path that can be referenced on a subsequent Load FCTB card to load an FCTB, in program object format, from the hierarchical file system (HFS) under OS/390 UNIX System Services (OS/390 UNIX). The first card specifies the name that can be used on a subsequent Load FCTB card to reference the search path. After the actual Path card, as many as 14 additional input cards can be included to specify directories in the search path.

One or more absolute directories can be specified starting with the first directory to be searched. If more than one directory is specified, a ; symbol must separate directories. The presence of any character other than a blank in column 80 indicates that the search path continues starting in column 10 on the next card in the load deck. If there is no continuation character in column 80, the path will include all characters starting in column 10 and ending with the last nonblank on the input card. Comments can be included on the Path card starting in column 33. However, comments cannot be included on the subsequent cards that specify the actual search path because all nonblank characters are considered part of the path. An example of a Path card and continuation card that is used to specify a search path for the FCTB follows:

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
 
LOADER  PATH   FCTBPATH        Defining FCTBPATH for later user
        /u/tpf41/produt_components/system/;                                    X
        /u/tpf41/product_components/test/;                                     X
        /u/user1/my_project/tables;                                            X
        /u/tpf41/my_project/phase_one/beta_test_versions/file_address_compute_ X
        table/program_object
 

If the Path card shown in the previous example was specified before a Load FCTB card for FCTB40 that specifies FCTBPATH in the load deck, TPFLDR would then attempt to locate the FCTB as a program object file by searching for the following files in order:

  1. /u/tpf41/product_components/system/FCTB40
  2. /u/tpf41/product_components/test/FCTB40
  3. /u/user1/my_project/tables/FCTB40
  4. /u/tpf41/my_project/phase_one/beta_test_versions/file_address_compute_ table/program_object/FCTB40
Note:
A path name can be defined only once in the load deck. The Path card defining a path name must precede the Load FCTB card that references the path name.

Loading System Components to a Storage Medium

Figure 22. Auxiliary Load via Auxiliary Loader (Offline -- MVS)




The auxiliary loader offline segment runs under MVS control and places the components to be loaded on a storage medium. The storage medium is then loaded to the system by the ZTPLD command. For more information about the ZTPLD command, see TPF Operations.

Note:
If you are writing to a virtual reader, use the ELDRVRDR EXEC to convert TLDR JOB output to a spool file that supports virtual reader input. A sample ELDRVRDR EXEC is shipped as segment UELV.

Output Listing

A load listing that details all programs and patches loaded, with any error messages, is produced by the offline segment. A load summary is also printed. In the load summary example that follows, items that are highlighted are explained in the Key to Output Listing. See Messages (System Error and Offline) and Messages (Online) for more information.

Figure 23. Sample Summary Listing for Auxiliary Loader (with Key to Output Listing)

      * LOAD SUMMARY *   DATE: 88.059     TIME: 15.40.48
 
 4     ACPDAB-OPL   2-ADESAB        AFGVAB-AP     BFDAAB-OPL
 8     CTK1AB-KPT     CVEHAB-OPL    DALBAB-OPL    DFREAB-AP
12   2-IPLBKK         JCD0AB-OPL    KXOPAB-OPL    MIFFAB-OPL
16     OOZECD-AP      PTV2CD-AP     QIE1CD-AP     WQXRCD-AP
 
ALLOCATOR VERSION = AB
 
-----------------------------------------------------------------------------
 
THE FOLLOWING PROGRAMS WERE NOT LOADED
 
NAME     TYPE   REASON
----     ----   ------
CTKMAB   KPT   - KEYPT CONFIGURATION DEPENDENT
CTLBAB   OPL   - THIS AP PGM RECORD NOT ALLOWED
PREPCD   AP    - PGM NOT FOUND ON OBJ LIBRARY
 
-----------------------------------------------------------------------------
 
THE FOLLOWING PROGRAMS HAVE WARNINGS
 
NAME     TYPE   WARNING
----     ----   -------
WQXRCD   AP    - PGM HAS UNRESOLVED V-CONS
 
-----------------------------------------------------------------------------
 
LIST OF UNRESOLVED V-CONS
 
WQXRCD - WQX1 WQX2 WQX3 WQX4

Key to Output Listing


4
Number of programs loaded.

ACPD
Program name.

AB
Program version.

OPL
Program was part of operational program list.

2
Number of patch cards applied (*** in this location means 255
or more patches were applied).

AP
Individually called program.

KPT
Keypoint.

Output Listing Return Codes

When inspecting the load listing returned after running the JCL job, there will be a TLDR return code. The return codes are shown below with an explanation and user response.

0

Explanation: No errors or warnings.

User Response: Load the components to a TPF image.

4

Explanation: Unknown card found in the AP/OPL section of the load deck.

User Response: Check for messages to the right of the particular card in error. Some common errors are misspelling a card name, putting a card in the wrong sequence, or including a non-TLDR card. A return code of 4 is usually a warning, so you can still load the components to a TPF image.

8

Explanation: The E-type program was not loaded, patches for the E-type program were not applied, or a program call was superseded by a later call.

User Response: Check for messages to the right of the particular program being flagged.

Notes:

  1. If an item is not found, make sure the required library is included in the TLDR JCL.

  2. If the program has been superseded by a later call, check to make sure that the later version is the version you want and that it loaded successfully. If it is successful, you can load the components to a TPF image.

12

Explanation: Error processing the CP, keypoints, core image programs, or their patches.

User Response: Check for messages to the right of the item in error. The TLDR JCL may have created a correct module to load, but it is not complete as intended.

1000

Explanation: Error on a C function when attempting to open a file, read from a file, or write to a file.

User Response: Check for a message specifying the exact error that occurred. The SYSERR card must be included in the JCL to see the C function error messages. Determine and correct the problem with the file.

Loading from a Storage Medium to the TPF System

Figure 24. Auxiliary Load via Auxiliary Loader (Online -- TPF)




The online segment is started by the ZTPLD command. For more information about this command, see TPF Operations.

Notes:

  1. Use the ZTPLD command to load system components to a target image. The target image must be disabled and its IPL and PROG areas must not be referred to by any enabled image (if loading IPL or PROG components).

    Use the ZIMAG DISABLE command to disable an image. Use the ZIMAG DISPLAY command to display the status of the IPL and PROG areas. See TPF Operations for more information about the use of these commands.

  2. If you are loading from a virtual reader, make sure your TLDR job output has been converted. Use the ELDRVRDR EXEC to convert TLDR JOB output to a spool file that supports virtual reader input. A sample ELDRVRDR EXEC is shipped as segment UELV.

The online segment sends the following message after a successful load:
TPLD0004I hh.mm.ss LOAD COMPLETE

where hh.mm.ss is a time stamp.

Additional status and error messages are also sent to the operator console. For more information about auxiliary loader messages, see Messages (System Error and Offline) and Messages (Online).

Enabling an Image

Once an image is loaded, enter the ZIMAG ENABLE command to enable it. For example, to enable image TPF02, enter ZIMAG ENABLE TPF02. You will receive a message that tells you if the components were loaded or not. To display any CIMR components that were not loaded, enter ZIMAG DISP IMAGE TPF02. This will show you the information about all of the CIMR components for TPF02. If a CIMR component is missing, you can copy it from TPF01 using the ZIMAG COPY command (if no changes were made to that component). To display any IPL components that were not loaded, enter ZIMAG DISP IPL and look at the IPL2 line. It should show that both IPLA and IPLB are loaded. If an IPL area is missing, you must use the ZIMAG COPY IPL command or do an auxiliary load (TLDR) to load the missing area.

Moving Keypoints to the Working Area

Before Beginning

If the existing keypoints are compatible with the new image, you do not have to load or move new keypoints.

Because it is dangerous to overlay keypoints, they are not loaded directly to an image, they are loaded to a staging area. Use the ZIMAG KEYPT MOVE command to move the keypoints from the staging area (#KSAx) to the working area (#KEYPT). The ZIMAG KEYPT MOVE command prompts you to continue (ZIMAG KEYPT CONT) or abort (ZIMAG KEYPT ABORT). After you move the keypoints to the working area, perform a hard IPL to put them in core storage.

Note:
Keypoints are shared for all images. If there is something wrong with a keypoint, that prevents you from bringing a system to NORM, IPL your loader general file and use the ZIMAG KEYPT RESTORE command to restore the keypoints you had before you entered the ZIMAG KEYPT MOVE command. This allows you to come up again on your prime mod.

IPLing an Image

To use an enabled image, you must perform a hard IPL, choose image selection, and enter the name of the image.

Notes:

  1. If you are IPLing an image that has a different core layout from the previously used image, IPL with CLEAR to clear the VFA buffers.

  2. If the image does not IPL successfully, IPL another image and debug the problem image.