gtps2m3i | ACF/SNA Data Communications Reference |
Specifying COMEXIT=YES on the SIP MSGRT macro provides the user exit routine (segment COBC) to be included in the generated TPF system. The sample code released with TPF consists of nothing more than a 'BACKC' macro. The user should replace this with the desired logic.
This routine is given control whenever a message is received by the Message Router or the Communication Source package and the destination is an application. The message includes both those from terminals and those generated by another application.
It should be noted that upon return from this routine, TPF no longer examines the input message and all subsequent processing is based entirely upon the RCPL information. If the destination specified in the RCPL has been changed by this routine to anything other than a local TPF application, TPF issues a 'ROUTC' upon receiving control from this routine.
The INPUT/OUTPUT interface between the TPF packages (Message Router and Communication Source) and the user coded COBC segment is as follows:
INPUT to COBC
EBW000-EBWXXX = The RCPL of the destination message (The length depends on whether it is an expanded RCPL and the size of the RCPL General Data Area.) EBSW01-EBSW03 = 0 EBCM01-EBCM03 = 0 EBER01 = 0 EBX000-EBX063 = Unpredictable and may be used by COBC. EBX064-EBX103 = Reserved and must not be altered. EBXSW0-EBXSW7 = Unpredictable and may be used by COBC. EBROUT = Reserved and must not be altered. CE1DBI = Database ID of Basic Subsystem CE1PBI = Program Base ID of Basic Subsystem CE1SSU = SubSystem User ID of Basic Subsystem CE1USA = Unpredictable and may be used by COBC.
ALL OTHER ECB FIELDS ARE RESERVED
D0 = INPUT MESSAGE IN AMSG FORMAT D1 = If a core block exists, it is the AAA of the terminal in the Basic Subsystem. This level should not be altered by the user. D2 = Reserved and may not be used by COBC. D3 = If a core block exists, it is the RCB of the terminal in the Basic Subsystem. This level should not be altered by the user.
ALL OTHER LEVELS ARE AVAILABLE FOR USE BY THIS ROUTINE
R0-R7 = Unpredictable and available for use. R8 = Base of program COBC R9 = Base of the ECB R14-R15 = Unpredictable and available for use.
OUTPUT from COBC
EBW000-EBWXXX = The RCPL of the destination message (The length depends on whether it is an expanded RCPL and the size of the RCPL General Data Area.) EBSW01-EBER01 = Unpredictable, but will be set to zero by TPF prior activating the application. EBX000-EBX063 = Unpredictable and TPF may use it. EBX064-EBX103 = reserved and must not be altered. EBXSW0-EBXSW7 = Unpredictable. EBROUT = Reserved. CE1DBI = Must not be altered CE1PBI = Must not be altered CE1SSU = Must not be altered CE1USA = Unpredictable
D0 = INPUT MESSAGE IN AM0SG FORMAT (USER MAY MODIFY THE CONTENT OF THE MESSAGE) D1 = MUST NOT BE ALTERED BY USER D2 = MUST NOT BE ALTERED BY USER D3 = MUST NOT BE ALTERED BY USER
ALL OTHER LEVELS MUST NOT BE HOLDING ANY CORE BLOCK
R0-R7 UNPREDICTABLE R14-R15 UNPREDICTABLE
The TPF services and facilities that may be started by the routine are:
The Non-SNA Log Processor.
The Unsolicited Message Package.
The SMP Prefixing Facility.
All TPF macros.
The following are examples of the services that could be implemented in a user's input edit routine.
Input from the following sources is passed to the user Input Edit routine: