SPL, L, M, O, T, C
      NAME RDCRD(8) "REV G  770324" 
! 
!     SUBROUTINE TO READ NEXT LINE
RD:    SUBROUTINE 
       LET SOURC,SPTR BE INTEGER,EXTERNAL 
       LET SODC4,CMDLN,CHAR,OBT,INLU,EKOLU BE INTEGER,EXTERNAL
       LET SODCB BE INTEGER,EXTERNAL
       LET READF BE SUBROUTINE,EXTERNAL 
       LET EXEC,TRBAK,DIAG BE SUBROUTINE,EXTERNAL 
       LET ISTR BE FUNCTION,EXTERNAL
       LET ICP BE PSEUDO,EXTERNAL 
       LET CONTN BE INTEGER   !CONTINUATION CHARACTER 
        INITIALIZE CONTN TO "&" 
       LET COMID BE CONSTANT(26400K)    !COMMAND ID CHAR(-) 
       LET PRMPT BE INTEGER(2)          !PROMPT CHARACTER 
        INITIALIZE PRMPT TO 3407K,"-_"
       LET IAILU BE INTEGER,EXTERNAL     !INTERACTIVE INPUT DEVICE FLAG 
       LET EQT5  BE INTEGER 
       LET DRT   BE CONSTANT(1652K) 
! 
R0:    CHAR,T_@OBT+1
       IAILU _ 0
       LU77 _ INLU AND 77K
       EQT5 _ $($DRT+LU77-1) AND 77K
       IF LU77 # 0 AND EQT5 # 0 THEN [\       MUST BE A VALID LU
          CALL EXEC(13,LU77,EQT5);\          !GET STATUS OF INPUT DEVICE
          IF [EQT5_(EQT5 -> 8) AND 77K] = 5\  IF TYPE = 5 THEN CHECK
             THEN [EQT5_(($($DRT+LU77-1) -<5) AND 37K)];\ FOR SUBCH 0 
          IF EQT5 = 0 THEN [\                !SET INTERACTIVE FLAG ON,
             IAILU _ 1;\
             CALL EXEC (2,INLU,PRMPT,2)]]    ! AND PRINT PROMPT 
       CALL READF($SODC4,ERR,$T,40,CMDLN) 
       IF CMDLN<0 THEN [CALL TRBAK; GOTO R0]!EOF--TRANSFER BACK 
       IF ERR<0 THEN CALL DIAG(16,@SODCB) 
       IF EKOLU THEN CALL EXEC(2,EKOLU,OBT,CMDLN+1) 
! 
!   CHECK FOR COMMENT 
       IF[C_ $T AND 77400K] =25000K\"*"; IGNORE COMMENTS
   THEN GOTO R0        !IGNORE COMMENTS 
! 
!     CHECK FOR COMMAND IDENTIFIER CHARACTER
! 
      IF C# COMID THEN[ IF IAILU =0 THEN\ 
      CALL DIAG(17,0)],\!COMMAND ID REQUIRED BUT NOT FOUND
      ELSE $T_($T AND 177K) OR 20000K!SET COMMAND ID CHAR TO BLANK
       RETURN 
       END
! 
RDCRD: SUBROUTINE GLOBAL
!  SUBROUTINE TO READ NEXT STATEMENT
       SOURC_ISTR(SPTR) 
R1:   CALL RD       !GET NEXT LINE
       L_CMDLN<-1;
                         WHILE L DO\
      [C_$T; IFNOT (L AND 1) THEN C_C-<8,\
              ELSE T_T+1;IF[C_C AND 177K]=CONTN THEN GOTO R1;\
           ICP(SPTR)_C; L_L-1]
       ICP(SPTR)_15K          !PUT IN CARRIAGE RETURN 
       SPTR_SOURC                       !START AT HEAD OF STRING
       RETURN 
       END
       END
       END$ 
                                                                                    