gtpm1m4dTPF V4R1 Migration Guide: 3.1 to 4.1

Changes to Application Utilities

There are changes in the following areas:

Changes to I-Stream Unique Globals

In the TPF 3.1 system, because of the layout of main storage, an ECB on one I-stream could access the I-stream unique globals of another I-stream. This is no longer possible. If you have utilities that modify the unique globals in other I-streams, you must change these utilities to save the data, switch to the target I-stream, and update the target I-stream's globals using the saved data. This is because the addresses of global data unique to one I-stream are meaningless to another I-stream.

You can use the SWISC ENTER or SWISC CREATE macros to get from one I-stream to another. The SWISC CREATE macro creates a new ECB for processing on another I-stream. The SWISC ENTER macro simply switches the existing ECB to another I-stream without creating a new ECB.

To Use the SWISC ENTER Macro

  1. Save the data in any available core block or in the ECB itself.
  2. Issue the SWISC ENTER macro.
  3. Copy the saved data to the new global field.

To Use the SWISC CREATE Macro

  1. Save the data in any available core block.
  2. Issue the SWISC CREATE macro to create a new ECB, and specify the level on which the core block is attached.
  3. Issue EVNWC to wait for the other ECB to finish.
  4. Write a second program that:
    1. Receives the core block from the other ECB
    2. Copies the data into the global area
    3. Issues a POSTC to notify the first ECB that processing is complete
    4. Issues EXITC.

    The core block is attached to level 0 of the new ECB.

Testing Global Attribute Indicators

In the TPF 4.1 system, all global attribute indicators reside in the global attribute table (GAT). If you have application programs that test the global attribute indicators in the high order byte of a global directory entry, you must change them to use the IGATC macro to obtain the address of the GAT entry corresponding to the global.

Block Scanning or ECB Checking

You can scan blocks or check ECBs by moving data between address spaces with the MOVEC macro, or from the correct address space. 31-bit addresses are required. You can also use the GSVAC macro to get the address of a block attached to another ECB.

Using Input/Output Blocks (IOBs)

In the TPF 4.1 system, SWBs are used instead of input/output blocks (IOBs) as work blocks for the control program. To make this change in your programs, make the following changes:

Monitoring System Activity

Monitors must be rewritten to track frames, common frames, ECBs, SWBs, and IOBs, rather than the blocks used in the TPF 3.1 system. Also, IOBs are no longer used as work blocks for the control program (CP), except for DASD code.

Shutdown Levels

Shutdown processing is now based on frames, ECBs, SWBs, and IOBs. Specify the values as a percentage of the total number allocated after any system-induced storage reductions have occurred. In general, you can set these values to shut down early, and then fine tune them based on TPF data collection reports.

Querying the Number of Storage Blocks

The MAXBC and NUMBC macros are based on these logical block types:

Registers specified on the TYPE parameter must contain these logical storage block types.