Overview
IBM Bisync operates in two general modes; point-to-point and multi-drop. The initial handshakes differ between the two as follows:
In multi-drop, one station is the "controlling" station and all the others are "tributary" stations. The controlling station is responsible for polling the tributaries for any transmissions they may have and selecting them when there is traffic for them. All traffic goes through the controlling station.
The transmission is ended with EOT.
An application may desire to halt both the prepare-read operation and the operation described above before they have reached their natural end. An additional domain could provide this service, or the application could call the device key directly. I (WSF) currently lean toward the extra domain. Its key would be returned on the factory call.
Additional calls could be defined to:
Automatically recover from certain errors. e.g. Check the ACK-0/1 sequence on write operation and deliver ACK-0/1s on reads.
Send a file using 2780/3780/HASP protocol.
etc.
.(ACB) - BISYNC could accept two calls (at the same time). BISYNC(cancel_operation ==>) would cancel a prepare/read (etc). This implementation is not dissimilar to the X.25 Circuit Key which accepts both a read and a write. An extra domain is not needed as only the RESUME key needs to be stashed away while waiting for the Prepare/read to complete or the cancel call.
PSB is a prompt space bank, M is a meter, SB is a space bank and DEVICE is a device I/O key to a hardware BISYNC control unit.
c=0 - BISYNC is a key to a new BISYNC device driver which communicates through device DEVICE.
c=1,2 - As from the factory
c=3 = DEVICE is not an acceptable key or its device is not acceptable.
c=2 - Unit check (Enable timeout), no connection exists, sense is the data returned by the device key.
c=0 - Connection complete, sense is X'0000'
c=2 - Unit check, sense is the sense data returned by the device key.
c=2 - Unit check (Modem timeout on disable), sense is the sense data returned by the device key.
c=0 - Mode set complete
c=kt+3 - mode is not 0 or X'40'
c=1 - Unit Exception (i.e. EOT received).
c=2 - Unit check, data is (2,sense data from device key), (n,data from line).
c=0 - No errors occured, data is data read from line
c=1 - Unit Exception (i.e. EOT received).
c=2 - Unit check on prepare CCW, data is (2,sense data from device key).
c=3 - Unit check on read CCW, data is (2,sense data from device key), (n,data from line).
c=0 - No errors occured, sense is X'0000'.
c=1 - Unit Exception (i.e. EOT received), sense is X'0000'.
c=2 - Unit check, sense is (2,sense data from device key).
c=0 - No errors occured, sense is X'0000'.
c=1 - Unit Exception (i.e. EOT received), sense is X'0000'.
c=2 - Unit check, sense is (2,sense data from device key).
c=kt+3 - Data doesn't start with a DLE/STX or is less than 4 bytes long.
c=0 - No errors occured, data2 is the data returned by the read CCW.
c=1 - Unit Exception (i.e. EOT received), data2 is the data returned by the read CCW.
c=2 - Unit check on write CCW, data2 is (2,sense data from device key).
c=3 - Unit check on read CCW, data2 is (2,sense data from device key), (n,data from read CCW).
c=0 - No errors occured, data2 is the data returned by the read CCW.
c=1 - Unit Exception (i.e. EOT received), data2 is the data returned by the read CCW.
c=2 - Unit check on one of the write CCWs, data2 is (2,sense data from device key).
c=3 - Unit check on read CCW, data2 is (2,sense data from device key), (n,data from read CCW).
c=kt+3 - Data doesn't start with a DLE/STX or is less than 4 bytes long.
c=0 - Successful poll, data is the data returned by the read CCW and consists of the <index> from the polldata followed by the data returned from the remote station.
c=1 - Poll list complete, no station has anything to send.
c=2 - Unit check on poll CCW, data is (2,sense data from device key).
c=3 - Unit check on read CCW, data is (2,sense data from device key), (n,data from read CCW).
c=kt+3 - Polldata doesn't end with an EOT.
c=0 - Unit was selected, data is the data returned by the first read CCW.
c=1 - Unit was polled, data is the data returned by the second read CCW. (i.e. The Address prepare CCW ended with Status Modifier.)
c=2 - Unit check on address prepare CCW, data is (2,sense data from device key).
c=3 - Unit check on first read CCW, data is (2,sense data from device key), (n,data from first read CCW).
c=4 - Unit check on second read CCW, data is (2,sense data from device key), (n,data from second read CCW).