Requirements for logon-interpret routines

Entry from:
Telnet
Entry point:
routine name
Contents of registers at entry:
Register 0:
Length of logon message (any length from 1 to 80)
Register 1:
Address of first byte of logon message. For LOGON requests, Telnet searches the interpret table again, after USS translation, looking only for the specified APPLID. After USS translation, register 1 contains the address of the first byte of the APPLID.
Register 2:
Address of an 8-byte logical unit name
Register 4:
Address of parameter list for the network identifier and resource name.
Register 13:
Address of a 72-byte save area provided by Telnet.
Register 14:
Return address
Register 15:
Address of entry point of this routine.
Contents of Registers at Exit: If the interpreted name in the parameter list is blank, Registers 0 and 1 contain the name of the VTAM® application program (in EBCDIC characters) with which Telnet is to establish a session:
Register 0:
First 4 characters of name (left-aligned).
Register 1:
Last 4 characters of name (left-aligned).
Registers 2–14:
Restored to condition at entry.
Register 15:
Return code:
00
Application program was found and the name is placed in registers 0 and 1.
Non0
Application program was not found and the name is not placed in registers 0 and 1.

If the name of the application program contains fewer than 8 characters, use blanks to provide a name with 8 characters.

Logon-interpret routine parameter list

When the exit gets control, the address of the following parameter list is in register 4. Offsets 0 through 27 include information about the fixed or interpreted name. Offset 28 includes the uninterpreted name.

Table 1. Logon interpret routine parameter list
Dec offset Size (bytes) Description Input or output
0 2 Length of parameter list Input
2 8 Name of requesting LU Input
10 17 Interpreted name (in the form or either name or netid.name) Output
27 1 Length of uninterpreted name Input
28 n Uninterpreted name Input

Operation: The logon-interpret routine is run synchronously in pageable storage under the control of Telnet and not under the control of an application program. For the application program to receive the logon, this routine must validate the logon, obtain the name of the application program to receive control, and provide this name back to Telnet. Otherwise, the routine specifies that the logon is not valid or that the name of the application program was not found inTelnet.

The logon-interpret routine must also:
  • Save and restore the contents of registers 2–14 when receiving and passing control.
  • Use re-enterable code (the routine must not store anything within itself or modify itself during execution).
  • Perform no I/O operations; an I/O request causes the routine to terminate abnormally.

The routine gets control in supervisor state with a Telnet storage key, so errors within the routine could cause damage to Telnet or to system control blocks and modules.

You can modify the logon message pointed to by register 1 that is passed to the interpret routine. However, remember these two points:
  • Telnet does not look at the changed storage; it is passed as user data to the application.
  • You should modify with caution, as modification outside the message storage boundaries could result in Telnet or TCP/IP stack outages.
The uninterrupted Logon message in the parameter list should not be changed as it is not passed as user data to the application.