* SCBSETUP                                              HEADER  C:SCSU  0001.000
*                                                                       0002.000
*                  SCBSETUP                                             0003.000
*                                                                       0004.000
         M.PGM     C:SCSU,MPX-32,3.6.1,00                               0005.000
*                                                                       0006.000
         DEF       C:SCSU                                               0007.000
*                                                                       0008.000
*  CALLING SEQUENCE                                                     0009.000
*    BL     C:SCSU                                                      0010.000
*    AC     SCB                                                         0011.000
*    AC     FIT OF SORT FILE                                            0012.000
*    SIT0   INPUT PROCEDURE                                             0013.000
*    SIT1   INPUT PROCEDURE                                             0014.000
*    SIT0   OUTPUT PROCEDURE                                            0015.000
*    SIT1   OUTPUT PROCEDURE                                            0016.000
*    DATAW  SORT KEY LENGTH                                             0017.000
*    AC     SORT COMPOSITE KEY LIST                                     0018.000
*    AC     COLLATING SEQUENCE TBL                                      0019.000
*    DATAW  MERGE FILE COUNT                                            0020.000
*                                                                       0021.000
         M.REQS                                                         0022.000
* SORT CONTROL BLOCK LAYOUT                                             0023.000
SCBWID   EQU       X'0'            WORK FILE ID                         0024.000
SCBISIT  EQU       1W              INPUT PROCEDURE SEGMENT ADDRESS      0025.000
SCBRA    EQU       3W              RECORD ADDRESS                       0026.000
SCBRL    EQU       4W              RECORD LENGTH                        0027.000
SCBKA    EQU       5W              KEY ADDRESS                          0028.000
SCBKL    EQU       6W              KEY LENGTH                           0029.000
SCBOPT   EQU       7W              OPTIONS                              0030.000
SCBSTS   EQU       8W              STATUS                               0031.000
SCBBGM   EQU       10W             BEGINNING LOC OF AVAIL MEMORY        0032.000
SCBEDM   EQU       11W             ENDING LOC OF AVAIL MEMORY           0033.000
SCBFCT   EQU       14W             MERGE FILE COUNT                     0034.000
SCBOSIT  EQU       15W             OUTPUT PROCEDURE SEGMENT ADDRESS     0035.000
SCBRTN   EQU       20W             INPUT/OUTPUT PROCEDURE RTN           0036.000
SCBSKL   EQU       21W             SORT KEY LIST ADDRESS                0037.000
SCBCSQ   EQU       22W             COLLATING SEQ TBL ADDR               0038.000
SCBCKA   EQU       23W             COMPOSITE KEY ADDRESS                0039.000
* FILE IDENTIFICATION TABLE LAYOUT                                      0040.000
LOGFILCD EQU       0               LOGICAL FILE CODE                    0041.000
RECLOC   EQU       9W              ADDRESS OF RECORD AREA               0042.000
MAXSIZE  EQU       47H             RECORD SIZE IN BYTES                 0043.000
*                                                                       0044.000
ADDRMASK DATAW     X'000FFFFF'                                          0045.000
*                                                                       0046.000
C:SCSU  EQU       $                                                     0047.000
         TRR       R0,R1                                                0048.000
         LW        R2,0W,X1        R2 -> SCB                            0049.000
         LW        R3,1W,X1        R3 -> FIT                            0050.000
*                                                                       0051.000
         LW        R0,LOGFILCD,X3  SCB(0) := WORK FILE ID               0052.000
         STW       R0,SCBWID,X2                                         0053.000
         LW        R0,2W,X1        SCB(1) := SEGADDR(INPUT PROCEDURE)   0054.000
         STW       R0,SCBISIT,X2                                        0055.000
         LW        R0,3W,X1        SCB(2) := SEGDSPLC(INPUT PROCEDURE)  0056.000
         STW       R0,SCBISIT+1W,X2                                     0057.000
         LW        R0,4W,X1        SCB(15):= SEGADDR(OUTPUT PROCEDURE)  0058.000
         STW       R0,SCBOSIT,X2                                        0059.000
         LW        R0,5W,X1        SCB(16) := SEGDSPLC(OUTPUT PROCEDURE)0060.000
         STW       R0,SCBOSIT+1W,X2                                     0061.000
         LW        R0,RECLOC,X3    SCB(3) := RECORD ADDRESS             0062.000
         STW       R0,SCBRA,X2                                          0063.000
         LH        R0,MAXSIZE,X3   SCB(4) := RECORD LENGTH (BYTES)      0064.000
         STW       R0,SCBRL,X2                                          0065.000
*  SCB(23) = SORT KEY ADDRESS                                           0066.000
         LW        R0,SCBCKA,X2    SCB(5) := KEY ADDRESS                0067.000
         STW       R0,SCBKA,X2                                          0068.000
         LW        R0,6W,X1        SCB(6) := SORT KEY LENGTH            0069.000
         STW       R0,SCBKL,X2                                          0070.000
         LI        R0,0            INITIALIZE SORT STATUS               0071.000
         STW       R0,SCBSTS,X2                                         0072.000
*  SCB(10) = BEGIN AVAIL MEMORY LOC                                     0073.000
*  SCB(11) = END AVAIL MEMORY LOC                                       0074.000
         ZMW       SCBOPT,X2                                            0075.000
         SBM       31,SCBOPT,X2    INDICATE MEMORY LIMITS SET           0076.000
         LW        R0,9W,X1        SCB(14) := MERGE FILE COUNT          0077.000
         BZ        SCS010                                               0078.000
         SBM       28,SCBOPT,X2    SET FILE MERGE OPTION                0079.000
SCS010   EQU       $                                                    0080.000
         STW       R0,SCBFCT,X2                                         0081.000
         LW        R0,7W,X1        SCB(21) = LOC(SORT KEY LIST)         0082.000
         STW       R0,SCBSKL,X2                                         0083.000
         LW        R0,8W,X1        SCB(22) = LOC(COLLATING SEQ TBL)     0084.000
         STW       R0,SCBCSQ,X2                                         0085.000
         ADI       R1,10W                                               0086.000
         TRSW      R1                                                   0087.000
         END                                                            0088.000
