45 - remote status inquiry for break/disconnect report.

Usage:

mme     gerout
vfd     18/ID,o6/45,h12/0
zero    STATPTR,COURTESY

Where:

ID
identifies a terminal if the program is acknowledging a previously reported status; otherwise, it should contain zeroes.
STATPTR
points to a word where status information can be written. After MME GEROUT returns, the status word will hold
Bits 0-17:   ID of terminal to which status
             applies
Bits 18-35:  1 if break, 2 if disconnect
COURTESY
gives the courtesy call address.

Description:

This version of MME GEROUT may only be used in DAC mode. It lets a slave program request the break/disconnect status of a line connected to the program, and/or acknowledge a previously returned status.

If there are no unreported BREAK or disconnect statuses to be returned when .MROUT receives the request, the condition is retained in a manner similar to Remote Inquiry processing.

MME GEROUT delays the return of break acknowledgement or disconnect accepted operation codes until the DAC program connected to the line has acknowledged receipt of the status. Disconnects are acknowledged immediately if the program is aborting.

When .MROUT receives this MME GEROUT, all subsequent status returns are handled as defined for this MME. Therefore, a program intending to use this functionality should issue the generalized remote status inquiry immediately before its first Remote Inquiry (MME GEROUT (05)) upon entering execution.

When operating in main level, a program using courtesy call to satisfy a remote status inquiry must not issue a break/disconnect acknowledgement at courtesy call level and then return to main level and issue I/O to that terminal.

When operating in generalized remote status inquiry mode, statuses will only be reported via new or outstanding MME GEROUT (45) operations. The status returned on I/O that has been terminated because of a break or disconnect is defined as

octal 400: I/O aborted

The .MROUT module maintains a table that is used to record outstanding status inquiries. Each two-word entry in this table has the following form:.

Word 0, upper:   program number
Word 0, lower:   relative location of MME+1
 
Word 1, upper:   STATPTR
Word 2, lower:   courtesy call queue offset
Word 1 contains an offset to the reserved I/O queue; this is zero if a courtesy call is not requested.

When an entry is made to this table, .MROUT obtains an I/O queue if courtesy call is requested in the MME GEROUT call. If courtesy call is requested, any break/disconnect status is reported to the program immediately.

The .MDNET module also maintains the two-word table set up by .MROUT that is used to record the status reporting mode selected by a DAC slave program. Each bit position in this table corresponds to a program number. A bit that is on indicates that the corresponding program is in the generalized remote status inquiry role. In addition, a word in each entry in the terminal line table contains status bits as follows:

Bit 0:   if on, break received, program not notified
Bit 1:   if on, break returned to DAC program, not
         acknowledged
Bit 2:   if on, disconnect received, not reported to
         DAC program
Bit 3:   if on, disconnect returned to DAC program,
         not acknowledged
Bit 4:   if on, last line for which status was returned

Copyright © 2000, Thinkage Ltd.