*COMDECK  COMCSRT            SET RECORD TYPE.                            COMCSRT
 SRT      CTEXT  COMCSRT - SET RECORD TYPE.                              COMCSRT
 SRT      SPACE  4,10                                                    COMCSRT
          IF     -DEF,QUAL$,1                                            COMCSRT
          QUAL   COMCSRT                                                 COMCSRT
          BASE   D                                                       COMCSRT
*         COMMENT COPYRIGHT CONTROL DATA CORPORATION.  1970, 1978.       COMCSRT
 SRT      SPACE  4,10                                                    COMCSRT
***       SRT - SET RECORD TYPE.                                         COMCSRT
*                                                                        COMCSRT
*         G. R. MANSFIELD    70/09/04.                                   COMCSRT
*         R. H. GOODELL      71/08/24.                                   COMCSRT
*         R. H. FRANK        73/07/11.                                   COMCSRT
*         P. H. MCQUESTEN    77/06/30.                                   COMCSRT
*         C. J. CONRAD.      81/08/06.
* 
*         ******************************************************* 
*         * THIS COMMON DECK IS PART OF THE COMMON COMMON DECKS * 
*         * RESIDING ON THE COMPASS PROGRAM LIBRARY, AND BEING  * 
*         * MAINTAINED BY THE COMPASS PROJECT.  ANY CHANGES     * 
*         * REQUIRED SHOULD BE DIRECTED TO THE COMPASS PROJECT  * 
*         * THROUGH THE PROPER PROCEDURE.                       * 
*         ******************************************************* 
* 
*                                                                        COMCSRT
*         SRT IDENTIFIES THE FORMAT OF A RECORD FROM THE PREFIX TABLES
*         AND/OR FIRST 64 WORDS OF RECORD LOCATED IN A WORKING BUFFER.
*         IF BUFFER IS NOT LARGE ENOUGH TO CONTAIN ALL PREFIX TABLES
*         AND ENOUGH RECORD TO DETERMINE TYPE, TYPE *TEXT* IS RETURNED. 
 SRT      SPACE  4,10                                                    COMCSRT
***       SRT IDENTIFIES THE FORMAT OF A RECORD FROM THE FIRST           COMCSRT
*         64 WORDS LOCATED IN A WORKING BUFFER.  THE TYPE CODES RETURNED COMCSRT
*         ARE LISTED BELOW.                                              COMCSRT
*                                                                        COMCSRT
*         IF TYPE NUMBER AND RECORD NAME = 0, RECORD IS ZERO LENGTH.     COMCSRT
*                                                                        COMCSRT
*         SYMBOL PROVIDED BY *COMCSRT* --                                COMCSRT
*                *L.SRT* = MAXIMUM RECORD TYPE NUMBER.                   COMCSRT
*                                                                        COMCSRT
*                                                                        COMCSRT
*         ENTRY  (X1) = LWA+1 OF BLOCK.                                  COMCSRT
*                (X2) = FWA OF CURRENT RECORD.                           COMCSRT
*                (B1) = 1.                                               COMCSRT
*                                                                        COMCSRT
*         EXIT   (X6) = 42/ 0L_NAME,  12/ 0,  6/ TYPE.                   COMCSRT
*                (X7) = RECORD NAME (-L- FORMAT).                        COMCSRT
*                                                                        COMCSRT
*         USES   X - 0, 1, 2, 3, 4, 6, 7.                                COMCSRT
*                B - 2, 3.                                               COMCSRT
*                A - 1, 2, 3.                                            COMCSRT
*                                                                        COMCSRT
*         CALLS  NONE.                                                   COMCSRT
          SPACE  4,8
***       RECORD TYPES ARE AS FOLLOWS --
* 
*         TYPE   NUMBER      FORMAT 
* 
*         TEXT   0           TEXT RECORD. 
*         6PP    1           6000-SERIES PERIPHERAL PROCESSOR OVERLAY.
*         OVCAP  2           OVERLAY CAPSULE. 
*         REL    3           RELOCATABLE SUBPROGRAM.
*         OVL    4           CENTRAL PROCESSOR OVERLAY. 
*         ULIB   5           NOS USER LIBRARY.
*         OPL    6           MODIFY PROGRAM LIBRARY DECK. 
*         OPLC   7           MODIFY PROGRAM LIBRARY COMMON DECK.
*         OPLD   8           MODIFY PROGRAM LIBRARY DIRECTORY.
*         ABS    9           MULTIPLE ENTRY POINT OVERLAY.
*         7PP    10          7000-SERIES PERIPHERAL PROCESSOR OVERLAY.
*         UPL    11          UPDATE SEQUENTIAL PROGRAM LIBRARY. 
*         UCF    12          UPDATE COMPRESSED COMPILE FILE.
*         ACF    13          MODIFY COMPRESSED COMPILE FILE.
*         CAP    14          FAST DYNAMIC LOAD CAPSULE. 
*         DATA   15          ARBITRARY DATA.
*         PROC   16          PROCEDURE RECORD.
*                17          (CDC RESERVED).
*         SDR    18          SPECIAL DEADSTART RECORD.
*         UPLR   19          UPDATE RANDOM PROGRAM LIBRARY. 
*         UPLRC  20          UPDATE RANDOM PROGRAM LIBRARY COMMON DECK. 
*         8PP    21          CYBER 180 PERIPHERAL PROCESSOR OVERLAY.
 SRT      SPACE  4,10                                                    COMCSRT
****      TYPES - ONE OF THE FOLLOWING RECORD TYPES IS RETURNED.         COMCSRT
*                                                                        COMCSRT
*                                                                        COMCSRT
* TYPE           NUMBER      FORMAT                                      COMCSRT
                                                                         COMCSRT
                                                                         COMCSRT
 O.TEXT   EQU    0           TEXT RECORD                                 COMCSRT
 O.6PP    EQU    1           6000-SERIES PERIPHERAL PROCESSOR OVERLAY    COMCSRT
 O.OVCAP  EQU    2           OVERLAY CAPSULE. 
 O.REL    EQU    3           RELOCATABLE SUBPROGRAM                      COMCSRT
 O.OVL    EQU    4           CENTRAL PROCESSOR OVERLAY                   COMCSRT
 O.ULIB   EQU    5           USER LIBRARY                                COMCSRT
 O.OPL    EQU    6           MODIFY PROGRAM LIBRARY DECK                 COMCSRT
 O.OPLC   EQU    7           MODIFY PROGRAM LIBRARY COMMON DECK          COMCSRT
 O.OPLD   EQU    8           MODIFY PROGRAM LIBRARY DIRECTORY            COMCSRT
 O.ABS    EQU    9           MULTIPLE ENTRY POINT OVERLAY                COMCSRT
 O.7PP    EQU    10          7000-SERIES PERIPHERAL PROCESSOR OVERLAY    COMCSRT
 O.UPL    EQU    11          UPDATE SEQUENTIAL PROGRAM LIBRARY           COMCSRT
 O.UCF    EQU    12          UPDATE COMPRESSED COMPILE FILE              COMCSRT
 O.ACF    EQU    13          MODIFY COMPRESSED COMPILE FILE              COMCSRT
 O.CAP    EQU    14          FAST DYNAMIC LOAD CAPSULE                   COMCSRT
 O.DATA   EQU    15          ARBITRARY DATA                              COMCSRT
 O.PROC   EQU    16          PROCEDURE RECORD 
*                17          (CDC RESERVED) 
 O.SDR    EQU    18          SPECIAL DEADSTART RECORD                    COMCSRT
 O.UPLR   EQU    19          UPDATE RANDOM PROGRAM LIBRARY. 
 O.UPLRC  EQU    20          UPDATE RANDOM PROGRAM LIBRARY COMMON DECK. 
 O.8PP    EQU    21          CYBER 180 PERIPHERAL PROCESSOR OVERLAY.
****                                                                     COMCSRT
                                                                         COMCSRT
 L.SRT    EQU    O.8PP       MAX TYPE NUMBER
                                                                         COMCSRT
                                                                         COMCSRT
 SRT      SUBR               ENTRY/EXIT                                  COMCSRT
          BX7    X7-X7                                                   COMCSRT
          IX6    X2-X1                                                   COMCSRT
          ZR     X6,SRTX     IF ZERO LENGTH RECORD, RETURN               COMCSRT
          BX4    -X1         LWA+1 OF RECORD
          SA1    X2          CHECK FIRST WORD                            COMCSRT
          MX0    42 
          BX6    X1          (X6) = PROGRAM NAME                         COMCSRT
          BX2    X0*X1       (X2) = RECORD NAME 
          MX0    48                                                      COMCSRT
          LX1    12                                                      COMCSRT
          BX3    -X0*X1                                                  COMCSRT
          SB2    X3-7700B                                                COMCSRT
          NZ     B2,SRT16    IF NO 7700 TABLE                            COMCSRT
                                                                         COMCSRT
**        7700-TABLE IS PRESENT.  IF IT HAS A WORD COUNT OF ZERO, THIS   COMCSRT
*         IS AN UPDATE COMPRESSED COMPILE FILE.                          COMCSRT
                                                                         COMCSRT
          SA2    A1+B1       (X2) = NAME IN 7700 TABLE                   COMCSRT
          LX1    12                                                      COMCSRT
          BX3    -X0*X1                                                  COMCSRT
          SB3    X3+1        WORD COUNT PLUS 1
          SB3    A1+B3       LWA+1 OF 77 TABLE
          SX6    X4+B3       COMPARE FILE SIZE TO TABLE SIZE
          PL     X6,SRT13    ILLEGAL 77 TABLE, TEXT RECORD
          SB2    O.UCF                                                   COMCSRT
          ZR     X3,SRT13    IF UPDATE COMPRESSED COMPILE FILE           COMCSRT
          SB3    X2                                                      COMCSRT
          SB2    O.ACF                                                   COMCSRT
          NZ     B3,SRT13    IF MODIFY COMPRESSED COMPILE FILE           COMCSRT
          SB3    X3                                                      COMCSRT
          SA1    A2+B3                                                   COMCSRT
          BX6    X1          (X6) = FIRST WORD OF PROGRAM                COMCSRT
                                                                         COMCSRT
**        IDENTIFY PP PROGRAM FORMAT.                                    COMCSRT
*                CHARACTER 3 .NZ.,                                       COMCSRT
*                CHARACTER 4 = 0,                                        COMCSRT
*                BYTE 3 = 0,                                             COMCSRT
*                BYTE 4 .NZ.                                             COMCSRT
*                IF CHARACTER 1 IS ALPHA, BYTE 2 .NZ.                    COMCSRT
*                                                                        COMCSRT
*         ENTRY  (X2) = NAME IN 7700 TABLE.                              COMCSRT
*                (X6) = FIRST WORD OF PROGRAM.                           COMCSRT
*                                                                        COMCSRT
 SRT1     SA3    SRTA        =77000077770000B                            COMCSRT
          SB2    O.DATA                                                  COMCSRT
          BX3    X3*X6       CHECK (NAME .LE. 3 CHARS) AND (BYTE 3 = 0)  COMCSRT
          MX0    12                                                      COMCSRT
          BX1    X0*X6       CHECK FOR NUMERIC FIRST CHARACTER           COMCSRT
          LX0    48                                                      COMCSRT
          BX7    X0*X6       CHECK FOR 3-CHARACTER NAME 
          LX1    12                                                      COMCSRT
          LX0    48                                                      COMCSRT
          NZ     X3,SRT3     IF (NAME .GE. 3 CHARS) OR (BYTE 3 .NZ.)     COMCSRT
          ZR     X7,SRT3     IF NAME .LT. 3 CHARACTERS
          SB3    X1-2R0A                                                 COMCSRT
          BX3    X0*X6                                                   COMCSRT
          MX0    6                                                       COMCSRT
          LX0    54                                                      COMCSRT
          BX7    X0*X6                                                   COMCSRT
          ZR     X7,SRT3     IF CHARACTER 2 = 0                          COMCSRT
          PL     B3,SRT2     IF NUMERIC PP NAME                          COMCSRT
          ZR     X3,SRT3     IF NO LOAD ADDRESS                          COMCSRT
 SRT2     MX0    18                                                      COMCSRT
          SB3    X6                                                      COMCSRT
          ZR     B3,SRT3     IF ZERO LENGTH PROGRAM                      COMCSRT
          SB2    B1          O.6PP                                       COMCSRT
          BX2    X0*X2                                                   COMCSRT
          EQ     SRT13       EXIT                                        COMCSRT
                                                                         COMCSRT
                                                                         COMCSRT
**        HAVE ALREADY SKIPPED (OPTIONAL) 7700-TABLE, NOW CHECK FOR --   COMCSRT
*         3      REL         (7000, WC .NZ.),  3400                      COMCSRT
*         2      OVCAP       6000, WITH BIT 18 SET
*         4      OVL         (7000, WC .NZ.),  5000                      COMCSRT
*         5      ULIB        7600                                        COMCSRT
*         6      OPL         7001                                        COMCSRT
*         7      OPLC        7002                                        COMCSRT
*         8      OPLD        (7000, WC .ZR.)                             COMCSRT
*         9      ABS         (7000, WC .NZ.), 5100                       COMCSRT
*         10     7PP         5200                                        COMCSRT
*         14     CAP         6000                                        COMCSRT
*         16     .PROC       5720 = 36/6L.PROC, 
*         19     UPLR        6000, YANK, DECK 
*         20     UPLRC       6000, COMDECK
*         21     8PP         6100 
                                                                         COMCSRT
 SRT3     SB2    O.REL                                                   COMCSRT
          SB3    X1-3400B                                                COMCSRT
          ZR     B3,SRT17    IF 3400, MAY BE PIDL TABLE 
          SB3    X1-7000B                                                COMCSRT
          NZ     B3,SRT4     IF NOT LDSET OR OPLD TABLE                  COMCSRT
          BX1    X6                                                      COMCSRT
          LX1    -36                                                     COMCSRT
          MX0    -12         EXTRACT 7000 TABLE WORD COUNT               COMCSRT
          BX1    -X0*X1                                                  COMCSRT
          SB2    O.OPLD                                                  COMCSRT
          ZR     X1,SRT13    IF OPL DIRECTORY (7000,WC=0)                COMCSRT
                                                                         COMCSRT
          SB2    X1+B1       NO, IS LDSET TABLE (7000, WC .NZ.)          COMCSRT
          SX3    A1+B2       ADDR OF WORD PAST LDSET TABLE
          SB2    O.TEXT      *TEXT*, JUST IN CASE WE RUN OUT OF ROOM
          IX1    X3+X4       COMPARE NEXT ADDR TO BUFFER LWA+1
          PL     X1,SRT13 
          SA1    X3          POSITION PAST THE LDSET TABLE
          BX6    X1          FIRST WORD OF PROGRAM                       COMCSRT
          LX1    12                                                      COMCSRT
          BX1    -X0*X1      TABLE TYPE                                  COMCSRT
          EQ     SRT3                                                    COMCSRT
                                                                         COMCSRT
 SRT4     SB2    O.ULIB                                                  COMCSRT
          SB3    X1-7600B                                                COMCSRT
          ZR     B3,SRT13    IF USER LIBRARY                             COMCSRT
          SB2    O.OPL                                                   COMCSRT
          SB3    X1-7001B                                                COMCSRT
          ZR     B3,SRT13    IF OLD PROGRAM LIBRARY                      COMCSRT
          SB2    O.OPLC                                                  COMCSRT
          SB3    X1-7002B                                                COMCSRT
          ZR     B3,SRT13    IF OPL COMMON DECK                          COMCSRT
          SB2    O.ABS                                                   COMCSRT
          SB3    X1-5100B                                                COMCSRT
          ZR     B3,SRT13    IF ABS                                      COMCSRT
          SB3    X1-5300B                                                COMCSRT
          NZ     B3,SRT6     IF NOT 5300 TABLE                           COMCSRT
          SB3    X6+                                                     COMCSRT
          NG     B3,SRT13    IF ABSOLUTE MODULE                          COMCSRT
 SRT5     SB2    O.OVL                                                   COMCSRT
          EQ     SRT13       IF OVL                                      COMCSRT
                                                                         COMCSRT
 SRT6     SB3    X1-5400B                                                COMCSRT
          NZ     B3,SRT7     IF NOT 5400 TABLE                           COMCSRT
          BX3    X6                                                      COMCSRT
          LX3    -36                                                     COMCSRT
          SX4    X3                                                      COMCSRT
          ZR     X4,SRT13    IF (0,0) OVERLAY, TYPE ABSOLUTE             COMCSRT
          EQ     SRT5        ELSE TYPE OVL                               COMCSRT
                                                                         COMCSRT
 SRT7     SB2    O.CAP                                                   COMCSRT
          SB3    X1-6000B                                                COMCSRT
          NZ     B3,SRT7.5   IF NOT CAPSULE OR RANDOM PL. 
          SA1    A1 
          MX0    -12
          LX1    -36
          BX1    -X0*X1 
          SX1    X1-1 
          SA3    A1+B1       FETCH SECOND WORD
          MX0    42          7 CHARACTERS 
          SB3    48          SHIFT FACTOR 
          BX4    X3 
          LX4    6
          BX6    X4*X0
          SA3    SRTD        *COMDECK 
          MX0    48 
          BX6    X6-X3
          SX7    O.UPLRC
          ZR     X6,SRT7.1   IF COMDECK, THEN RANDOM PL.
          MX0    24 
          SB3    30          SHIFT FACTOR FOR EXTRACTING *DECK DECK NAME
          BX4    X0*X4
          SA3    SRTE        *YANK
          MX0    30          SET UP MASK FOR EXTRACTING *DECK DECK NAME.
          IX6    X4-X3
          NZ     X6,SRT7.0   IF NOT YANK DECK 
          SA2    SRTG        YANK DECK (MUST BE RANDOM PL)
          SB2    O.UPLR 
          EQ     SRT13       INDICATE YANK$$$, TYPE UPLR
  
 SRT7.0   SA3    SRTF        *DECK
          IX6    X4-X3
          SX7    O.UPLR 
          ZR     X6,SRT7.1   IF DECK, THEN RANDOM PL
          SA1    A1 
          BX6    X1 
          LX6    59-18       CHECK OVCAP FLAG 
          PL     X6,SRT13    IF NOT SET, CAPSULE. 
          SB2    O.OVCAP     ELSE, OVERLAY CAPSULE. 
          EQ     SRT13
  
**        OBTAIN NAME OF DECK 
*         B3 = SHIFT FACTOR TO LEFT JUSTIFY DECKNAME. 
  
 SRT7.1   SA3    A1+B1       REFETCH SECOND WORD
          MX6    -6          MASK FOR ONE CHARACTER 
  
 SRT7.2   SB2    B3-60
          NZ     B2,SRT7.3
          SA3    A3+B1       FETCH THE NEXT WORD
          SB3    0
          MX0    0
 SRT7.3   SB2    B3+6 
          LX2    X3,B2       SHIFT FIRST CHAR. TO LOWEST POSITION 
          BX2    -X6*X2      MASK OFF CHARACTER 
          SB2    X2-1R       TEST FOR BLANK 
          ZR     B2,SRT7.36 
          SB2    X2-1R,      TEST FOR COMMA 
          ZR     B2,SRT7.36 
          NZ     X2,SRT7.4   READY TO GO
          SB3    B3+6        SHIFT FIRST CHARACTER POSITION 
          AX0    6
          SB2    B3-60
          NZ     B2,SRT7.36  SHIFT SECOND CHARACTER POSITION
          SA3    A3+B1       FAKE THE SECOND SHIFT
          SB3    0
          MX0    0
          EQ     SRT7.2 
 SRT7.36  SB3    B3+6        INCREMENT SHIFT
 SRT7.37  ZR     X0,SRT7.39  RESET MASK 
          AX0    6
          EQ     SRT7.2 
 SRT7.38  MX0    6
          EQ     SRT7.2      TRY NEXT CHARACTER 
 SRT7.39  PL     X0,SRT7.38 
          MX0    0
          EQ     SRT7.2 
 SRT7.4   BX2    -X0*X3 
          MX3    0
          ZR     X1,SRT7.41  IF ONLY ONE WORD ENTRY 
          SA3    A3+B1       FETCH NEXT WORD
 SRT7.41  BX3    X0*X3
          BX2    X2+X3       PUT THE NAME IN ONE WORD 
          LX2    B3          POSITION  DECK NAME. 
          MX0    6           CURRENT CHARACTER MASK 
          SB3    6
 SRT7.43  BX6    X0*X2       CHARACTER
          LX6    X6,B3       POSITION AS LOW ORDER 6 BITS 
          ZR     X6,SRT7.46  IF A ZERO
          SX6    X6-1R
          ZR     X6,SRT7.46  IF A BLANK 
          SB3    B3+6 
          LX0    -6          NEXT CHARACTER 
          SB2    B3-60
          NZ     B2,SRT7.43 
 SRT7.46  SB3    B3-6 
          MX0    6
          AX0    X0,B3       FINAL MASK 
          BX2    X0*X2       DECK NAME
          SB2    X7 
          EQ     SRT13
  
 SRT7.5   SB2    O.7PP
          SB3    X1-5200B                                                COMCSRT
          ZR     B3,SRT13    IF PPU                                      COMCSRT
          SB2    O.8PP
          SB3    X1-6100B 
          ZR     B3,SRT13    IF 180 PPU 
          SB3    X1-5000B                                                COMCSRT
          NZ     B3,SRT8     IF NOT OVERLAY                              COMCSRT
                                                                         COMCSRT
          SB2    O.OVL                                                   COMCSRT
          BX7    X2-X6                                                   COMCSRT
          NZ     X7,SRT13    IF NAME .NE. FIRST WORD OF PROGRAM          COMCSRT
SRT8      SA3    A1          REFETCH FIRST WORD                          COMCSRT
          MX0    36                                                      COMCSRT
          BX7    X0*X3       ISOLATE POSSIBLE *.PROC,*                   COMCSRT
          BX4    -X0*X3                                                  COMCSRT
          SA3    SRTC        *.PROC,*                                    COMCSRT
          BX7    X7-X3                                                   COMCSRT
          NZ     X7,SRT11    IF NOT *.PROC,*                             COMCSRT
                                                                         COMCSRT
*         OBTAIN NAME OF PROCEDURE.                                      COMCSRT
                                                                         COMCSRT
          SA3    A1+B1       PICK UP SECOND WORD OF BINARY               COMCSRT
          MX0    24                                                      COMCSRT
          BX3    X0*X3       ISOLATE THE NEXT FOUR CHARACTERS            COMCSRT
          BX4    X4+X3       COMBINE ALL EIGHT CHARACTERS                COMCSRT
          LX4    36          SHIFT INTO PLACE AT LEFT                    COMCSRT
          MX0    -6                                                      COMCSRT
          SB3    48                                                      COMCSRT
          SB2    53          CONSTANT FOR CREATING MASK                  COMCSRT
 SRT9     LX4    6           SHIFT NEXT CHARACTER TO LOW ORDER           COMCSRT
          BX7    -X0*X4                                                  COMCSRT
          ZR     X7,SRT10    IF NOT LEGAL CHARACTER                      COMCSRT
          SX7    X7-1R+ 
          PL     X7,SRT10    IF NOT ALPHA-NUMERIC                        COMCSRT
          SB3    B3-6        DECREMENT CHARACTER COUNT                   COMCSRT
          ZR     B3,SRT11    IF EIGHT CHARACTERS AND NO COMMA            COMCSRT
          EQ     SRT9                                                    COMCSRT
                                                                         COMCSRT
 SRT10    SB3    B3-48                                                   COMCSRT
          ZR     B3,SRT11    IF NULL NAME                                COMCSRT
          SB3    B3+54       SHIFT COUNT TO RESTORE NAME IN PLACE        COMCSRT
          SB2    B2-B3                                                   COMCSRT
          MX7    1                                                       COMCSRT
          AX7    B2          MASK FOR NAME                               COMCSRT
          LX4    B3          RESTORE NAME                                COMCSRT
          BX2    X7*X4       ISOLATE NAME                                COMCSRT
          SB2    O.PROC      PROCEDURE TYPE                              COMCSRT
          EQ     SRT13                                                   COMCSRT
                                                                         COMCSRT
 SRT11    BX4    X6                                                      COMCSRT
          SB3    X6                                                      COMCSRT
          LX4    59-17                                                   COMCSRT
          BX7    X4+X6                                                   COMCSRT
          MI     X7,SRT12    IF POSSIBLE TEXT                            COMCSRT
          SB2    O.TEXT 
          NZ     B3,SRT13    IF COS                                      COMCSRT
 SRT12    MX0    -12                                                     COMCSRT
          BX7    -X0*X6                                                  COMCSRT
          SB2    O.DATA                                                  COMCSRT
          NZ     X7,SRT13    IF DATA                                     COMCSRT
          MX0    6                                                       COMCSRT
          BX7    X0*X4                                                   COMCSRT
          SB2    B0          O.TEXT                                      COMCSRT
          ZR     X7,SRT13    IF LOWER 18 BITS ARE ZERO, TEXT TYPE        COMCSRT
          LX7    6                                                       COMCSRT
          SB3    X7-1R                                                   COMCSRT
          ZR     B3,SRT13    IF 8TH CHARACTER IS SPACE                   COMCSRT
          SB2    O.DATA                                                  COMCSRT
                                                                         COMCSRT
*         SET NAME AND TYPE.                                             COMCSRT
*         (X2) = RECORD NAME.                                            COMCSRT
*         (B2) = RECORD TYPE.                                            COMCSRT
                                                                         COMCSRT
 SRT13    MX0    54 
          SX4    1R                                                      COMCSRT
          BX7    X0*X2                                                   COMCSRT
          LX4    12                                                      COMCSRT
          MX2    6                                                       COMCSRT
          LX2    -42                                                     COMCSRT
                                                                         COMCSRT
*         STRIP TRAILING SPACES FROM NAME.                               COMCSRT
                                                                         COMCSRT
 SRT14    LX4    6                                                       COMCSRT
          NG     X2,SRT15    IF END OF WORD                              COMCSRT
          LX2    6                                                       COMCSRT
          BX3    X2*X7                                                   COMCSRT
          ZR     X3,SRT14    IF COLON OR NULL CHARACTER                  COMCSRT
          BX6    X4-X3                                                   COMCSRT
          NZ     X6,SRT15    IF NOT BLANK                                COMCSRT
          BX7    -X2*X7      DELETE TRAILING BLANK                       COMCSRT
          EQ     SRT14                                                   COMCSRT
                                                                         COMCSRT
 SRT15    MX0    42 
          SX6    B2          TYPE 
          BX3    X0*X7
          IX6    X6+X3
          NZ     X6,SRTX     IF NAME NOT ALL BLANKS, RETURN              COMCSRT
          SX6    O.DATA                                                  COMCSRT
          EQ     SRTX        RETURN                                      COMCSRT
                                                                         COMCSRT
*         (X6) = FIRST WORD OF PROGRAM.                                  COMCSRT
                                                                         COMCSRT
 SRT16    MX0    30 
          SA3    SRTB        *CHECK*                                     COMCSRT
          BX4    X0*X6                                                   COMCSRT
          SB2    O.UPL                                                   COMCSRT
          IX7    X4-X3                                                   COMCSRT
          MX0    12                                                      COMCSRT
          ZR     X7,SRT13    IF UPL                                      COMCSRT
                                                                         COMCSRT
**        CHECK FOR *SDR* TYPE.                                          COMCSRT
*         *SDR* TYPE DEFINED AS A RECORD STARTING WITH A 50 TABLE.       COMCSRT
                                                                         COMCSRT
          BX1    X0*X4                                                   COMCSRT
          LX1    12                                                      COMCSRT
          SB2    X1-5000B                                                CPSA104
          NZ     B2,SRT1     IF NOT 50 TABLE                             CPSA104
          SA2    A1+B1       LOAD 77 TABLE NAME                          COMCSRT
          SB2    O.SDR                                                   COMCSRT
          EQ     SRT13                                                   COMCSRT
  
**        CHECK FOR *LEGAL* PIDL TABLE
*         LEGAL PIDL TABLE HAS WC .GT. ZERO 
  
 SRT17    BX1    X6          SHIFT TO GET WORD COUNT
          LX1    12 
          SB3    X1 
          NZ     B3,SRT13    IF LEGAL PIDL, RELOCATABLE 
          SB2    O.DATA      IF NOT A LEGAL PIDL, MUST BE DATA
          EQ     SRT13
                                                                         COMCSRT
 SRTA     CON    77000077770000B                                         COMCSRT
 SRTB     CON    5LCHECK                                                 COMCSRT
 SRTC     CON    6L.PROC,                                                COMCSRT
 SRTD     CON    7LCOMDECK
 SRTE     CON    4LYANK 
 SRTF     CON    4LDECK 
 SRTG     CON    7LYANK$$$
SRT       SPACE  4,10                                                    COMCSRT
          BASE   *                                                       COMCSRT
 QUAL$    IF     -DEF,QUAL$                                              COMCSRT
          QUAL   *                                                       COMCSRT
 SRT      EQU    /COMCSRT/SRT                                            COMCSRT
 SRT=     EQU    /COMCSRT/SRT 
 L.SRT    EQU    /COMCSRT/L.SRT                                          COMCSRT
 QUAL$    ENDIF                                                          COMCSRT
 SRT      ENDX                                                           COMCSRT
