I just have a little comment about the part "making PCBs global".It's a shame that IMS didn't do something like that from the beginning. As it is, we'll have to know about both interfaces for years to come.As it happens the way you describe it is exactly how it works in COMPOSER (formerly IEF) from Texas Instruments.
In recent IMS releases, however, IBM has introduced a "built-in" way to be able to code DL/1 "unaware" modules (i.e. not having to pass PCB addresses in every CALL).
This is possible by:
This entry-point can:
- Coding a sub-parameter in the PCB-macro, PCBNAME, thereby giving every PCB a symbolic name.
- Accessing DL/1 by means of the AIBTDLI entry-point (as opposed to e.g. CBLTDLI).
If you choose to use the second method however you will NOT get the status codes available since AIBTDLI returns RETURN CODE and REASON CODE. If you are anxious to get a status code you HAVE to get a PCB-address as described above. After acquiring it you can test the status code.
- Be used to "inquire" the PCB-address by supplying the symbolic name. After this has been successfully accomplished you can set up addressability to a "dummy" PCB in LINKAGE and start doing your CALL CBLTDLI, or
- Use the AIBTDLI entry-point in "normal" function calls (e.g. GU, GN and so on).
Thanks, Lars. My apologies for not keeping up with IMS developments.