gtpm1m4d | TPF V4R1 Migration Guide: 3.1 to 4.1 |
There are changes in the following areas:
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.
The core block is attached to level 0 of the new ECB.
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.
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.
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:
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 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.
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.