*DECK C$SORTP 
          IDENT  C$SORTP
          TITLE  C$SORTP - SORT/MERGE PARAMETERS PASSED BY USER 
          COMMENT  ENTER C.SORTP PROCESSOR
          SST 
          EJECT 
*  USER CALLS THIS ROUTINE TO SET UP TWO PARAMETERS FOR SORT/MERGE
*    1) SORT/MERGE SPACE ALLOCATION (VIA -RJ =XS.SRTSZ-)
*    2) -RETAIN- SEQUENCE IF DUPLICATE KEYS (VIA -OPTIONS- MACRO) 
*   IF ILLEGAL (NON-COMP-1) PARAMETER, THIS ROUTINE DOES NOTHING BUT PUT
*   OUT AN INFORMATIVE DAYFILE MESSAGE. 
* 
          ENTRY  C.SORTP
 C.SORTP  BSS    1
          SA2    X1          X2=PARAM-1 
          BX6    X2 
          RJ     C.SORTP2    TEST FOR COMP-1
          SA1    A1+B1
          BX7    X1 
          ZR     X1,C.SORTP1  JUMP IF NO PARAM-2
          SA2    X1          X2=PARAM-2 
          BX7    X2 
          RJ     C.SORTP2 
 C.SORTP1 SA6    =XC.SMSZE   SET SIZE TO USE FOR SORT OR MERGE
          SA7    =XC.SMRSF   SET RETAIN SEQUENCE FLAG (0 IF DO, 1 IF NOT
          EQ     C.SORTP
* 
 C.SORTP2 BSS    1           ENSURE PARAM-1 AND PARAM-2 (IF SPECIFIED)
          MX0    57           ARE COMP-1 - X1 IS PARAMETER WORD 
          LX1    60-18
          BX1    -X0*X1 
          SX1    X1-4 
          ZR     X1,C.SORTP2  JUMP IF LEGAL (COMP-1) PAFAMETER
          SA3    =9L-C.SORTP-  DAYFILE MESSAGE INSERT 
          BX6    X3 
          SA6    =XC.MSINS
          SX1    #PRMERR     MESSAGE NUMBER 
          MX2    1           X2"0, MESSAGE HAS INSERT 
          SA3    C.SORTP     ISOLATE SOURCE LINE NUMBER (FROM BITS 29-18
          AX3    30           OF -RJ C.SORTP-) AND PLACE IN LOWER HALF
          SX3    X3-1        ADDR OF LINE 
          MX6    0           NO ABORT BY -CBMSG-
 C.SORTP3 RJ     =XC.MSG     MESSAGE TO DAYFILE 
 -        VFD    30/0        FILLED IN ABOVE
          EQ     C.SORTP
          EJECT 
          END 
