Type ASSEMBLE
Source Lines : 330
Fixes Applied : 0
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [Unmodified]
Module
DMSSVN (DMSSVN)
Function
THE CMS DMSSVN ROUTINE PROCESSES OS WAIT AND POST MACROS. ALL THE OS MACRO OPTIONS ARE SUPPORTED.
Attributes
REENTRANT, SEGMENT RESIDENT
Operation
THE DMSSVN ROUTINE HAS FOUR ENTRY POINTS: DMSSVN1,DMSSVN2, DMSSVN93 AND DMSSVN94. IF AN OS WAIT MACRO IS ISSUED, CONTROL IS PASSED TO THE DMSSVN1 ENTRY POINT IN DMSSVN. DMSSVN CHECKS TO SEE IF ENOUGH ECB'S ARE POSTED TO SATISFY THE ECB COUNT INDICATED. IF NOT, THE WAIT BITS IN THE ECB'S ARE TURNED ON AND SUCCESSIVE WAIT PSW'S ARE LOADED UNTIL THE WAIT COUNT IS SATISFIED. AFTER THE WAIT COUNT IS SATISFIED, THE WAIT BITS IN THE ECB'S SPECIFIED ARE TURNED OFF AND CONTROL IS RETURNED TO THE USER. IF THE WAIT COUNT IS LARGER THAN THE ECB COUNT, THE USER IS ABENDED. IF AN OS POST MACRO IS ISSUED, CONTROL IS PASSED TO THE DMSSVN2 ENTRY POINT IN DMSSVN. DMSSVN STORES THE COMPLETION CODE IN THE ECB, SETS THE COMPLETION BIT IN THE FIRST BYTE OF THE ECB AND RETURNS CONTROL TO THE USER. IF A TGET OR TPUT SVC IS ISSUED, CONTROL IS PASSED TO THE DMSSVN93 (SVC 93) ENTRY POINT IN DMSSVN. THIS ROUTINE CHECKS THE HIGH ORDER BIT OF USER REGISTER 1. IF IT IS ON, TGET HAS BEEN REQUESTED, IF OFF, THE REQUEST IS FOR TPUT. TGET STORES THE ADDRESS OF THE USER'S I/O AREA INTO THE 'WAITRD' PLIST, AND ISSUES A CALL TO DMSCRD VIA AN SVC. UPON RETURN FROM DMSCRD, THE LENGTH OF THE I/O OPERATION IS STORED INTO THE USER'S REGISTER SAVE AREA, AND RETURN IS MADE THROUGH A COMMON RETURN ROUTINE, DESCRIBED IN TPUT. TPUT STORES THE USER'S BUFFER ADDRESS AND I/O LENGTH INTO THE DMSCWR P-LIST AND LINKS TO DMSCWR VIA SVC. UPON RETURN, RETURN IS MADE AFTER CHECKING IF AN ATTENTION INTERUPT HAS OCCURRED DURING THE I/O OPERATION. IF IT HAS NOT, A RETURN CODE OF '0' IS STORED INTO THE USER'S REGISTER SAVE AREA,IF THE INTERUPT HAS OCCURRED A RETURN CODE OF '4' IS SET. IF A TCLEARQ SVC (SVC 94) IS ISSUED, CONTROL IS PASSED TO ENTRY POINT DMSSVN94 IN DMSSVN. A CHECK IS MADE TO DETERMINE IF THE REQUEST IS FOR INPUT OR OUTPUT BY CHECKING THE HI- ORDER BIT OF REGISTER 0. IF THE BIT IS OFF, THE REQUEST IS FOR OUTPUT. SINCE THIS OPTION IS NOT SUPPORTED, CONTROL IS RETURNED TO THE USER. IF THE BIT IS ON, A CALL IS MADE TO DMSCIT (DMSCITDB/DESBUF) TO DESTROY THE TERMINAL INPUT BUFFER VIA BALR. UPON RETURN, CONTROL IS RETURNED TO THE CALLER.
Calls to Other Routines
DMSSAB.