Type ASSEMBLE
Source Lines : 1,610
Fixes Applied : 0
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [Unmodified]
Module
DMSCLS * *
Function
DMSCLS CLOSES CMS/DOS FILES ASSOCIATED WITH THE * FOLLOWING DTFS - DTFCN, DTFCD, DTFPR, DTFMT, DTFDI, * DTFCP AND DTFSD. THE CLOSE OPERATION DEPENDS ON * BOTH DTF TYPE AND DEVICE TYPE AS DETERMINED FROM THE * PUB ASSIGNMENT. ONCE THE DTF TABLE HAS BEEN IDENTIFIED * AS CLOSED, A 'CP CLOSE' IS PERFORMED IN THE CASE OF * READER, PRINTER, AND PUNCH. IF A DISK FILE IS BEING * CLOSED, A 'FINIS FN FT FM' IS PERFORMED. IF A DISK * WORKFILE IS BEING CLOSED AND DELETFL=NO IS NOT * SPECIFIED, THE WORKFILE IS ERASED (DMSERS). * *
Attributes
DISCONTIGUOUS SHARED SEGMENT * REENTRANT * *
Operation
DMSCLS IS THE SIMULATED CLOSE ROUTINE USED BY THE *
CMS/DOS SUPPORT TO CLOSE SUPPORTED DTF TYPES. DMSCLS * IS USED INSTEAD OF THE MANY $$B-TRANSIENTS * USED BY DOS/VS. * * DMSCLS PERFORMS THE FOLLOWING MAJOR ACTIVITIES: * * 1. DMSCLS OBTAINS ITS WORK AREA FROM FREE STORAGE. * * 2. THE PROGRAM THEN SCANS THE LIST OF DTF/ACB FILES * TO BE CLOSED. UPON ENCOUNTERING AN ACB, CONTROL * IS PASSED TO THE VSAM CLOSE ROUTINE ($$BCVSAM) * TO CLOSE THE SPECIFIED ACB. * * 3. ONCE THIS IS ACCOMPLISHED, THE DTF TYPE IS EXAMINED* AND CONTROL IS PASSED TO A ROUTINE WHICH CLOSES * THAT PARTICULAR DTF TYPE. * * OPEN IGNORE BIT POSTED - NO ACTION. * * UNIT RECORD EQUIPMENT - (DTF TYPES X'02', X '04', * X'08') RESET OPEN INDICATOR IN DTF. * * TAPE WORKFILE (DTF TYPE X'10') - * IF NOREWIND IS SPECIFIED, THE TAPE IS NOT REWOUND. * IF REWIND/UNLOAD IS SPECIFIED, THE TAPE * IS REWOUND AND UNLOADED. IF A WRITE COMMAND IS * FOUND IN THE DTF, A TAPE MARK IS WRITTEN. * * TAPE DATA FILES (DTF TYPES X'11', X'12', X'14') * IF OUTPUT FILE, AND BLOCKED RECORDS, RETURN CONTROL* TO TRUNCS ROUTINE IN LOGIC MODULE VIA SVC 8. * IF OUTPUT FILE, AND UNBLOCKED RECORDS A TAPE MARK * IS WRITTEN. IF REWIND/UNLOAD IS INDICATED, * THIS ACTION IS TAKEN AND THE DTF IS POSTED CLOSED. * IF A TAPE DATA INPUT FILE, AND NO USASI * COBOL CLOSE, THE NORMAL REWIND/UNLOAD IS * DONE IF SPECIFIED. IF TAPE DATA INPUT FILE, * AND USASI COBOL CLOSE IS SPECIFIED, AND * NONSTANDARD LABEL TAPE, EXIT IS MADE TO USER * LABEL ROUTINE IF SPECIFIED. IN OTHER INPUT CASES, * THE TAPE IS REWOUND/UNLOADED AS SPECIFIED. * * DISK FILES (DTFSD/DTFCP/DTFDI) * IN THE CASE OF OUTPUT FILES, AN EXIT IS MADE TO * THE LOGIC MODULE TO WRITE THE LAST RECORD IF * REQUIRED. OTHERWISE, FIELDS ARE INITIALIZED TO * CLOSE STATUS IN THE DTF AND A CALL IS MADE * TO FINIS TO CLOSE THE DISK FILE. IN THE CASE * OF A DISK WORKFILE WHEN DELETFL=NO HAS NOT * BEEN SPECIFIED ON THE DTF MACRO, A CALL IS MADE * TO DMSERS TO ERASE THE WORKFILE. * * IN THE CASE OF DTFCP SYSTEM TAPE FILES, * NO REWIND OR UNLOAD IS PERFORMED. THIS IS NECESSARY* FOR COMPILER FILES. * * * 4. AFTER EACH DTF TABLE IS INITIALIZED PER THE CLOSE * RULES, A CHECK IS MADE TO SEE IF MORE DTFS REMAIN * TO BE CLOSED. IF SO, PROCESSING CONTINUES AS OUT- * LINED ABOVE IN (3). * * 5. WHEN ALL FILES HAVE BEEN CLOSED, EXIT IS MADE BY * AN SVC 11 TO THE PROBLEM PROGRAM ASSUMING THERE * WERE NO ACBS TO CLOSE. IF ACBS REMAIN TO BE * CLOSED, AN SVC 2 IS ISSUED FOR $$BCVSAM. CONTROL * RETURNS TO DMSBOP AND EXIT IS MADE VIA AND SVC 11. * * 6. WHEN ERRORS ARE ENCOUNTERED, AN APPROPRIATE ERROR * MESSAGE IS ISSUED AND EXIT IS MADE VIA AN SVC 6 * (CANCEL - ABNORMAL TERMINATION). *
Calls to Other Routines
DMSTIO - SVC 202 * DMSFNS - FINIS (BALR) * DMSFREB - DMSFREE FOR FREE STORAGE * 'CP CLOSE' TO CLOSE READER, PRINTER AND PUNCH FILES. * DMSXCP - SVC 0 TO PERFORM IO * DMSERR - ERROR MESSAGES * DMSERS - TO ERASE DISK WORKFILES. * *