*DECK S$ALOPM 
          PROC S$ALOPM(SMT$, WSAO$, SPEC$, REC$); 
  
          #** PROC S$ALOPM(SMT$, WSAO$, SPEC$, REC$)                   #
          #                                                            #
          # GIVEN-                                                     #
          #  SMT$, WSAO$, SPEC$, REC$                                  #
          #                                                            #
          # DOES-                                                      #
          # THE SIMPLE CALCULATIONS NECESSARY TO FINALIZE WSAO$        #
  
          BEGIN 
  
*CALL A 
*CALL SMT$
*CALL WSAO$ 
*CALL SPEC$ 
*CALL MACHINE 
*CALL REC$
  
          ITEM OFFSET I;
          ITEM LOREC  I;
  
          CONTROL INERT;
  
          CONTROL DISJOINT; 
  
CONTROL EJECT;
  
          IF SPEC$FIXED THEN
              LOREC = (SPEC$FIXLEN + WORD - 1) / WORD;
          ELSE
              LOREC = (SPEC$MRL + WORD - 1) / WORD + 1; # + 1 BECAUSE  #
          # S$GNCVE MAY CLOBBER LAST WORD + 1                          #
  
          WSAO$LTRN = SMT$NFILES; 
          OFFSET = WSAO$LTRN; 
          WSAO$ORSA = OFFSET; 
          OFFSET = OFFSET + (WSAO$LTRN * REC$IRRL); 
          WSAO$OREC = OFFSET; 
          OFFSET = OFFSET + LOREC;
          WSAO$LOREC = LOREC; 
          SPEC$LWSA = OFFSET + 1; 
  
          END 
          TERM
