C ******************************************************* C * * C * THIS SOFTWARE WAS DEVELOPED WITH SUPPORT * C * FROM THE NATIONAL INSTITUTES OF HEALTH: * C * NIH CA06927 * C * NIH CA22780 * C * * C * DIRECT INQUIRIES TO: * C * COMPUTER CENTER * C * THE INSTITUTE FOR CANCER RESEARCH * C * 7701 BURHOLME AVENUE * C * PHILADELPHIA, PENNSYLVANIA 19111 * C * * C * NO WARRANTY OR REPRESENTATION, EXPRESS OR * C * IMPLIED, IS MADE WITH RESPECT TO THE * C * CORRECTNESS, COMPLETENESS, OR USEFULNESS * C * OF THIS SOFTWARE, NOR THAT USE OF THIS * C * SOFTWARE MIGHT NOT INFRINGE PRIVATELY * C * OWNED RIGHTS. * C * * C * NO LIABILITY IS ASSUMED WITH RESPECT TO * C * THE USE OF, OR FOR DAMAGES RESULTING FROM * C * THE USE OF THIS SOFTWARE * C * * C ******************************************************* C * * C * THIS SOFTWARE WAS DESIGNED FOR USE ON A * C * PDP-11/70 OPERATING UNDER IAS V3.0 USING * C * THE FORTRAN-IV PLUS COMPILER. * C * * C ******************************************************* 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 = 132 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