Table of Contents

DMSARN Abstract

Statistics

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

Synopsis

Module

     DMSARN (ASM3705)

Function

       ASM3705 COMMAND.   TO PROVIDE THE  INTERFACE BETWEEN
       THE USER AND THE 370X ASSEMBLER.

Attributes

     DISK RESIDENT

Operation

       ASM3705 FIRST SETS A BIT (COMPSWT,X'80') IN
       OSSFLAGS TO INDICATE THE 370X ASSEMBLER IS RUNNING.

       ASM3705 NEXT  SCANS THE  OPTIONS SPECIFIED  AND USES
       THE INFORMATION THEREBY OBTAINED TO SET UP THE OPTION
       LIST FOR THE 370X ASSEMBLER AND THE FILEDEF PLISTS FOR THE
       CALLS  TO FILEDEF.   IF A  PARTICULAR  OPTION IS  NOT
       SELECTED, THE CORRESPONDING DEFAULT  VALUE APPEARS IN
       THE LIST, WHICH IS  COMPACTED TO ELIMINATE BLANKS
       BEFORE PASSING IT TO THE ASSEMBLER.

      IF RUNNING UNDER THE BATCH MONITOR,
       ASM3705 TYPES A  MESSAGE AT THE TERMINAL  GIVING THE
       NAME  OF THE  FILE ABOUT  TO BE  ASSEMBLED.  IT  THEN
       CALLS STATE TO VERIFY THE EXISTENCE OF THIS FILE.  IF
       IT DOES NOT  EXIST, ASSEMBLE ISSUES AN  ERROR MESSAGE
       AND RETURNS TO THE CALLER.  IF IT DOES EXIST,
       ASM3705  CHECKS THE  ITEM  LENGTH,  ISSUES AN  ERROR
       MESSAGE IF  ITEM LENGTH IS  INCORRECT AND  RETURNS TO
       THE CALLER.

       IF THE  LENGTH IS  CORRECT, ASM3705  CALLS ERASE  TO
       DELETE ANY EXISTING TEXT,  LISTING, AND UTILITY FILES
       FOR THE CURRENT ASM3705 FILE, AND SETS UP STORAGE BY
       CALLS TO STRINIT AND GETMAIN.

       IT  THEN  CALLS ADTLKW  TO  OBTAIN  THE MODE  OF  THE
       READ-WRITE DISK WITH MOST AVAILABLE SPACE AND USES IT
       TO SET UP THE FILEDEF PLIST FOR THE SYSUT FILES AND
       CHECKS TO SEE IF THE DISK WITH THE MOST SPACE IS THE SOURCE
       DISK. IF IT IS DIFFERENT, THE SYSUT FILES ARE ERASED
       FROM IT (SYSUT FILES ALREADY ERASED FROM SOURCE). IF
       NOT SPECIFIED BY THE USER, THE TEXT AND LISTING FILES
       ARE WRITTEN  ON THE 1)  DISK FROM WHICH  THE ASM3705
       SOURCE  IS READ;   2) ON  THE "PARENT"  DISK, IF  THE
       FIRST  DISK  IS  A READ-ONLY  EXTENSION;  OR  3)  THE
       PRIMARY  A-DISK.    IF  NONE  OF  THESE   CHOICES  IS
       AVAILABLE,  THE  COMMAND  WILL  BE  TERMINATED.   CMS
       CONTROL BLOCKS (CMSCB'S), WHICH  REFLECT THE SELECTED
       OPTION, ARE SET  UP FOR THE TEXT,  LISTING, ASM3705 AND
       UTILITY  FILES.  AFTER  EACH  SUCCESSFUL RETURN  FROM
       FILEDEF,  ASM3705 SETS  A CLEAR  SWITCH TO  INDICATE
       WHICH  CMSCB'S  ARE  TO  BE CLEARED  AT  THE  END  OF
       THE ASSEMBLY. ASM3705 FINALLY BRANCHES TO THE 370X ASSEMBLER.

       ON RETURN FROM THE 370X ASSEMBLER, ASM3705 ERASES THE
       UTILITY FILES AND CLEARS THE CMSCBS WHICH IT HAD SET UP.
       AFTER ANY NECESSARY ERROR MESSAGES, ASM3705 FINALLY
       SETS  THE  RELEASE  PAGE  BIT,  CLEARS  THE  SSTATEXT
       EXTENSION,  CLEAR OSSFLAGS,  PLACES THE  ERROR CODE  IN
       REGISTER 15 AND RETURNS TO THE USER.


       SPECIAL OUTPUT HANDLING ROUTINE:  ASMHAND

       THE  SYSTEM  ROUTINE SOEOB  INTERFACES  WITH  ASMHAND
      WHENEVER ANY I/O ACTIVITY PERTAINS TO THE
       SYSUT2 FILE DURING THE ASSEMBLY.

       SYSUT2 - IF THE FILE IS BEING READ IN ASSEMBLER PHASE
       1,  ASMHAND ACCESSES  THE  UTILITY  CONTROL TABLE  TO
       ASCERTAIN THE LENGTH  AND LOCATION OF THE  RECORDS TO
       BE MOVED AND MOVES IT  TO THE SPECIFIED INPUT BUFFER.
       IF THE FILE IS BEING READ,  BUT NOT IN PHASE 1, FIXED
       LENGTH IS FORCED AND ASMHAND RETURNS TO SOEOB.

       IF THE FILE IS BEING WRITTEN  IN PHASE 1, THE UTILITY
       CONTROL TABLE  IS FIRST SET UP  BY A CALL  TO GETMAIN
       AND THEN UPDATED TO REFLECT THE NUMBERS OF RECORDS TO
       BE WRITTEN.  IF THE FILE IS  BEING WRITTEN BUT IS NOT
       IN PHASE 1, ASMHAND FORCES A  WRITE OF 4000 BYTES AND
       RETURNS TO THE CALLER.

Calls to Other Routines

      DMSERSA - ERASE OLD FILES
       DMSSMNE - INITIALIZE STORAGE POINTERS
       DMSSTTA - LOCATE THE FILE
       IFKASM  - 370X ASSEMBLER ROOT SEGMENT