Table of Contents

DMSCLS Abstract

Statistics

Type ASSEMBLE
Source Lines : 1,610
Fixes Applied : 0
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [Unmodified]

Synopsis

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.                      *
                                                             *