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$