Type ASSEMBLE
Source Lines : 1,008
Fixes Applied : 0
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [Unmodified]
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