SUBROUTINE READPR (LUN,PROMPT,BUFFER,STAT,MAXLEN,TERM) C C SUBROUTINE TO DO A FORTRAN READ/PROMPT C C INPUTS C LUN LOGICAL UNIT FOR I/O C PROMPT FORTRAN LITERAL CONTAINING PROMPT W/O C IF PROMPT IS NULL A READ W/O PROMPT IS DONE C MAXLEN LENGTH OF BUFFER C C OUTPUTS C BUFFER LINE ENTERED BY USER C STAT + NUMBER OF CHARACTERS IN BUFFER C - FCS ERROR CODE C TERM LINE TERMINATOR C PARAMETER MAXPMT = 40 PARAMETER CR = "15, LF = "12, ESC = "33 PARAMETER IORPR="4400, IORVB="10400, ISESC="15401 INTEGER LUN,STAT,MAXLEN,TSTAT(2),DPB(6),FUNC,DSW BYTE PROMPT(MAXPMT),TPROMP(MAXPMT+2),BUFFER(1),BTSTAT(4) BYTE TERM EQUIVALENCE (TSTAT,BTSTAT) DATA TPROMP(1),TPROMP(2)/CR,LF/ C DO 10 I = 1,MAXPMT IF (PROMPT(I).EQ.0) GO TO 20 TPROMP(I+2) = PROMPT(I) 10 CONTINUE I = MAXPMT+1 20 CONTINUE I=I-1 C CALL GETADR(DPB(1),BUFFER) DPB(2) = MAXLEN CALL GETADR(DPB(4),TPROMP) DPB(5) = I+2 FUNC = IORPR IF (I.EQ.0) FUNC = IORVB CALL WTQIO(FUNC,LUN,LUN,,TSTAT,DPB,DSW) IF (DSW.LT.0) GO TO 1000 IF (BTSTAT(1).LT.0) GO TO 1010 TERM = CR IF (TSTAT(1).EQ.ISESC) TERM = ESC STAT = TSTAT(2) RETURN C 1000 CONTINUE STAT = DSW RETURN 1010 CONTINUE STAT = BTSTAT(1) RETURN END