Type ASSEMBLE
Source Lines : 222
Fixes Applied : 1
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [HRC002DS]
Module
DMSIOW P3031
Function
PLACE THE VIRTUAL CPU IN THE WAIT STATE UNTIL THE COMPLETION OF AN I/O OPERATION ON ONE OR MORE DEVICES.
Attributes
NUCLEUS RESIDENT, REENTRANT, CALLED VIA SVC OR BALR IF CALLER'S SYSTEM MASK IS X'00'.
Operation
WAIT LOOKS UP THE FIRST SYMBOLIC DEVICE NAME IN THE USER-DEFINED INTERRUPT TABLE (IF ANY -- AS INITIALIZED BY THE HNDINT FUNCTION PROGRAM), OR IN THE DEVICE TABLE (DEVTAB) IN THE NUCLEUS. IF THE DEVICE IS NOT IN EITHER TABLE, WAIT RETURNS TO THE CALLER WITH ERROR CODE 1. IF THE DEVICE WAS FOUND, WAIT PUTS THE PSEUDO-WAIT BIT IN THE CORRESPONDING DEVICE TABLE ENTRY ON. WAIT REPEATS THIS PROCEDURE FOR EACH SYMBOLIC DEVICE NAME ON THE PARAMETER LIST. IT THEN LOADS A PSW WITH THE WAIT BIT ON. THIS CAUSES THE SYSTEM TO ENTER THE WAIT STATE UNTIL AN I/O OPERATION IN ONE OF THE SPECIFIED DEVICES IS COMPLETED. AFTER THE I/O OPERATION IS COMPLETED, IOINT RETURNS CONTROL TO WAIT, WHICH PLACES THE SYMBOLIC NAME OF THE INTERUPTING DEVICE (THAT IS, THE DEVICE ON WHICH THE I/O OPERATION WAS COMPLETED) IN THE LAST ENTRY IN THE PARAMETER LIST AND RETURNS CONTROL TO THE CALLER. WAIT CAN BE CALLED VIA SVC, OR CAN ALSO BE CALLED BY BALR IF THE CALLER'S SYSTEM MASK IS X'00'. FOR DISK RESIDENT PROGRAMS DOING THEIR OWN I/O OPERATIONS WAIT SHOULD BE CALLED VIA SVC.
Calls to Other Routines
NONE.