./P command

Use the ./P command to define a patch to be applied to an application program. The patch is applied only one time, either at the next LOAD of the application program, or immediately if the application program is currently being run.

Usage notes

You can specify multiple ./P commands.

A patch can also be applied to the BTS Common Area by specifying MBR=BTSCOM00.

Some specifications can be made by both the ./P and the ./E command. In such cases, it is probably easier so is better to use the ./E command than ./P command.

Format

 ./P      MBR=           application_program_load_module_name

          PA=            patch_address

          PC=            character_patch_text

          [CA=           000000 | CSECT_address]

          [PX=           00 | hexadecimal_patch_text]          

Keywords and operands

CA=
Specifies the offset of the CSECT within the load module where the patch is to be applied and can be obtained from a link-editing map. The CSECT address must be a positive six-digit hexadecimal number and leading zeros must be provided. The default value is CA=000000.
MBR=
Specifies the name of the application program load module to which the patch is to be applied. The load module name must be a name defined by the MBR= operand of a ./T command.
PA=
Specifies the offset within the CSECT where the patch is to be applied. The patch address must be a positive six-digit hexadecimal number and leading zeros must be provided.
PC=
Provides the patch text in character format. The text is delimited by a single blank.
PX=
Provides the patch text in hexadecimal format, two characters per byte. The text is delimited by a single blank. Default patch text is PX=00.

Examples

Example 1 for ./P command
To copy (zap) the constant DC C'12345', defined at offset X'0DAC' in your single CSECT application program, to DC C'54321' for only the first transaction you process (the remaining transactions use the original value), your input stream might contain:
 ./T    TC=ZAPTEST MBR=MYPGM PLC=1

 ./P    MBR=MYPGM PA=000DAC PC=54321

 ZAPTEST FIRST TRANSACTION     $

 ZAPTEST SUBSEQUENT TRANSACTION     $

IMS Batch Terminal Simulator puts the patch on a patch queue when the ./P command is processed. Then, as each application program is loaded, any patches on the queue are applied and dequeued. Because the patch is only applied once and PLC=1, a fresh copy of MYPGM is fetched for the second ZAPTEST transaction.

Example 2 for ./P command
To set a specified branch to no operation at offset X'010E' in the third CSECT of your application load module, when your link-editing map shows that CSECT begins at X'2C80', your patch statement might be:
 ./P     MBR=TESTPGM PA=00010E CA=002C80 PX=4700
or
 ./P     MBR=TESTPGM PA=002D8E PX=4700
Example 3 for ./P command
To change the constant DC C'X Y Z', which is defined at offset X'011C' in your load module to DC C'A B C', your patch statement might be:
 ./P     MBR=PATCHES PA=00011C PX=C140C240C3
Example 4 for ./P command
To support applications that require lowercase input, modify the translation table in the BTS Common Area by specifying:
 ./P     MBR=BTSCOM00 PA=000414 PX=40818283848586878889
 ./P     MBR=BTSCOM00 PA=000424 PX=40919293949596979899
 ./P     MBR=BTSCOM00 PA=000434 PX=40A1A2A3A4A5A6A7A8A9

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the LCI= parameter, see ./E command.

Example 5 for ./P command
To set USERID01 in the I/O PCB USERID field, specify:
 ./P     MBR=BTSCOM00 PA=0000D8 PC=USERID01

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the USERID= parameter, see ./E command.

Example 6 for ./P command
To set the date in the I/O PCB, specify:
 ./P     MBR=BTSCOM00 PA=0000C4 PX=0082365F
 ./P     MBR=BTSCOM00 PA=0000E8 PX=1982365F

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the IODATE= and IOUDATE= parameters, see ./E command.

Example 7 for ./P command
To set the time in the I/O PCB, specify:
 ./P     MBR=BTSCOM00 PA=0000C8 PX=1245090F
 ./P     MBR=BTSCOM00 PA=0000EC PX=12450902040136C

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the IOTIME= and IOUTIME= parameters, see ./E command.

Example 8 for ./P command
The maximum number of lines per page for the BTSOUT data set defaults to 60. To set a different value, such as 80 lines per page, specify:
 ./P     MBR=BTSCOM00 PA=000236 PX=0050

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the MAXL= and MLINE= parameters, see ./E command.

Example 9 for ./P command
When SCREEN=INOUT and ATR=NO is specified in the ./O command, a blank line is written to BTSOUT where the field attribute characters would otherwise be displayed in a screen image. To suppress the blank line, specify:
 ./P     MBR=BTSCOM00 PA=000228 PX=01

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the SPACE= parameter, see ./E command.

Example 10 for ./P command
To activate BTS 3270 extended attribute support (if supported by your TSO terminal and your application), specify:
 ./P     MBR=BTSCOM00 PA=00018B PX=10
PS/55 users can specify the following to activate BTS 3270 extended attribute support and to indicate that a PS/55 computer is being used:
 ./P     MBR=BTSCOM00 PA=00018B PX=11
Example 11 for ./P command
When a PSB is immediately rescheduled in DBB batch execution, the same PCBs are passed to the application program unchanged from the prior execution. To reattach the IMS region controller for each transaction, and thus get a fresh copy of the PSB, specify:
 ./P     MBR=BTSCOM00 PA=0004DE PX=01

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the REATTCH= parameter, see ./E command.

This specification is required in the following cases:
  • When an application program that relies on cleared PCB fields on entry is to be iteratively scheduled.
  • When a COBOL program is invoked (via LINK, XCTL, LOAD, or scheduled by BTS) immediately after the same program has been run under control of the COBOL interactive debug. (COBOL interactive debug is not invoked if the same program is subsequently invoked again.)
  • When Db2® application programs run consecutively and issue XRST calls. If ./E REATTCH= option is not specified, IMS Batch Terminal Simulator is terminated with ABEND04E (rc=00D44054) when the second XRST call is issued.
  • When one JOB executes multiple transactions that issue EXEC DLI commands.
Example 12 for ./P command
To run IMS Batch Terminal Simulator in batch IMS (that is, KW=DLI or DBB) with Db2 applications, the SSID must be specified as follows:
 ./P     MBR=BTSCOM00 PA=000C14 PC=ssid

where ssid is your 3- to 4-character Db2 subsystem ID.

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the SSID= parameter, see ./E command.

Example 13 for ./P command
To set RACFGPNM in the I/O PCB RACF® GROUP NAME field, specify:
 ./P     MBR=BTSCOM00 PA=0000E0 PC=RACFGPNM

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the RACFGPN= parameter, see ./E command.

Example 14 for ./P command
To support applications that require the input and output of Katakana characters, modify the translation table in the BTS Common Area by specifying the following commands:
./P MBR=BTSCOM00 PA=0003D4 PX=404142434445464748494A4B4C4D4E4F
./P MBR=BTSCOM00 PA=0003E4 PX=505152535455565758595A5B5C5D5E5F
./P MBR=BTSCOM00 PA=0003F4 PX=606162636465666768696A6B6C6D6E6F
./P MBR=BTSCOM00 PA=000404 PX=707172737475767778797A7B7C7D7E7F
./P MBR=BTSCOM00 PA=000414 PX=808182838485868788898A8B8C8D8E8F
./P MBR=BTSCOM00 PA=000424 PX=909192939495969798999A9B9C9D9E9F
./P MBR=BTSCOM00 PA=000434 PX=A0A1A2A3A4A5A6A7A8A9AAABACADAEAF
./P MBR=BTSCOM00 PA=000444 PX=B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the KATAKANA= parameter, see ./E command.

Example 15 for ./P command
To activate TSO Disconnect and Reconnect support, specify:
 ./P     MBR=BTSCOM00 PA=000D01 PC=SYSRQ
With this specification, IMS Batch Terminal Simulator does nothing when PA2 is entered. To define the PA2 function (NEXTMSG) for the FSS session in PFK, specify:
 ./P     MBR=BTSCOM00 PA=000D13 PX=D7C1F24040       (PA2 → PF1 )
 ./P     MBR=BTSCOM00 PA=000D19 PX=D7C1F24040       (PA2 → PF2 )
 ./P     MBR=BTSCOM00 PA=000D1F PX=D7C1F24040       (PA2 → PF3 )
 ./P     MBR=BTSCOM00 PA=000D25 PX=D7C1F24040       (PA2 → PF4 )
 ./P     MBR=BTSCOM00 PA=000D2B PX=D7C1F24040       (PA2 → PF5 )
 ./P     MBR=BTSCOM00 PA=000D31 PX=D7C1F24040       (PA2 → PF6 )
 ./P     MBR=BTSCOM00 PA=000D37 PX=D7C1F24040       (PA2 → PF7 )
 ./P     MBR=BTSCOM00 PA=000D3D PX=D7C1F24040       (PA2 → PF8 )
 ./P     MBR=BTSCOM00 PA=000D43 PX=D7C1F24040       (PA2 → PF9 )
 ./P     MBR=BTSCOM00 PA=000D49 PX=D7C1F24040       (PA2 → PF10)
 ./P     MBR=BTSCOM00 PA=000D4F PX=D7C1F24040       (PA2 → PF11)
 ./P     MBR=BTSCOM00 PA=000D55 PX=D7C1F24040       (PA2 → PF12)

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the SYSRQ= and PA2= parameters, see ./E command.

Example 16 for ./P command
To support MFS bypass without basic input-editing for the inbound D/T3270 data stream, specify the following command:
 ./P     MBR=BTSCOM00 PA=0004DF PX=01

In this case, the message output descriptor (MOD) must be DFS.EDTN.

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the DT3270= parameter, see ./E command.

Example 17 for ./P command
When running IMS Batch Terminal Simulator in batch IMS (that is, KW=DLI or DBB) with the Db2 DL/I Batch Support, the unit group name for the work data set must be specified to IMS Batch Terminal Simulator. The default unit group name is SYSDA. If you want to override the default, specify:
 ./P     MBR=BTSCOM00 PA=000C18 PC=unit-group-name

where unit-group-name is your 1- to 5-character unit group name for the work data set.

This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the UGN= parameter, see ./E command.

Example 18 for ./P command
When an INQY call is issued with the NULL subfunction, the application program obtains information related to the PCB. The default location and default status are as follows:
Terminal location:
'LOCAL '
Queue status:
'STARTED '
Session status:
'ACTIVE '
Transaction location:
'LOCAL '
Transaction status:
'STARTED '
Destination status:
'STARTED '
If you want to override the defaults, specify:
./P    MBR=BTSCOM00 PA=000BD0 PC=terminal-location
./P    MBR=BTSCOM00 PA=000BD8 PC=queue-status
./P    MBR=BTSCOM00 PA=000BE0 PC=session-status
./P    MBR=BTSCOM00 PA=000BE8 PC=transaction-location
./P    MBR=BTSCOM00 PA=000BF0 PC=transaction-status
./P    MBR=BTSCOM00 PA=000BF8 PC=destination-status