ZCOM Message Handling

Multiplexing

If the ZCOM_LTFLAG_OMX bit is set in the LTFLAG word of the logical terminal table, then a logical terminal is enabled for outbound multiplexing. This means that any message sent (by zsend) to this terminal ZLU will be formatted as normal (type 4, ZCOM_MSTYPE_LPLT, message with request descriptor block), but instead of being queued to the physical terminal transmit queue, it will be queued to the program ZLU defined by LTZMXP. These fields must have been defined to the system for each terminal by a prior zset_rcvr call (mode 2, ZcOUTB_MLTPLX) by the outbound multiplexing program during its initialization.

The zcntl call works in a similar way to zsend. For example, an enable of a multiplexed logical terminal ZLU will queue an enable request (type 4, ZCOM_MSTYPE_LPLT, request code 7, ZCOM_MRQCODE_ENB) to the outbound multiplexing program’s input queue. These messages would normally be used to maintain the flags for the logical terminal in LTSTAT. They may also generate a control command to the physical terminal from the multiplexing program.

Inbound Multiplexing

If the ZCOM_LTFLAG_IMX bit is set in the LTFLAG word of the logical terminal table, then the logical terminal is enabled for inbound multiplexing. This means that when an application program selects the terminal for input (using zset_rcvr default mode 0), zset_rcvr will insert the application program’s ZLU into LTZRVR (rather than PTZRVR for a terminal without inbound multiplexing).

It is up to the inbound multiplexing program to define itself to the ZCOM subsystem as the receiver for messages from the physical terminal using the zset_rcvr (mode 1, ZcINB_MLTPLX) call. This sets PTZRVR in the physical terminal table.

32

Chapter 2