C PROGRAM TO READ PROLOG PROGRAMMER BUFFER AND XFER CONTENTS TO PDP-11 C RT-11 DISK FILE. C CREATED--14-JAN-80, G. BEVER. C 'IBUF' INCREASED--10-DEC-80, G. BEVER. C C .COMPILE PROPDP/NOSWAP C C LINK AS FOLLOWS: C C .R LINK C *PROPDP=PROPDP/F C LOGICAL*1 IBUF(7000) INTEGER*2 ISPEC(39),JSWI(4,1) REAL*4 EXT(2) DATA EXT/6RPRODAT,6RDATDAT/ DATA JSWI/'M',3*0/ DATA IBUF/7000*0/ C K=1 C GET OUTPUT FILE NAME. 4 IF(ICSI(ISPEC,EXT,,JSWI,1).NE.0) GO TO 4 C GET OPEN CHANNEL. ICHAN=IGETC() IF(ICHAN.LT.0) STOP 'NO CHANNEL' C FETCH OUTPUT DEVICE HANDLER INTO MEMORY. IF(IFETCH(ISPEC(16)).NE.0) STOP 'BAD FETCH' C PERFORM CREATE OF OUTPUT FILE. I=IENTER(ICHAN,ISPEC(16),-1) IF(I.LT.0) STOP 'BAD LOOKUP' IBLK=0 C DISABLE LP INTERRUPT. CALL IPOKE("300,0) C SET SPECIAL MODE TT. I=IPEEK("44) I=IOR(I,"010000) CALL IPOKE("44,I) C TERMINATE? IF SO, GO TO 90. 5 I=ITTINR() IF(I.GE.0) GO TO 90 C LOOP UNTIL RECEIVE CHAR. 10 I=IPEEK("176500) IF(IAND(I,"200).EQ.0) GO TO 5 C GET CHAR FROM PROLOG. I=IAND(IPEEK("176502),"377) C OUTPUT CHAR. J=ITTOUR(I) IBUF(K)=I K=K+1 GO TO 5 C WRITE OUT BLOCK TO DISK FILE. 90 L=1 15 I=IWRITW(256,IBUF(L),IBLK,ICHAN) IBLK=IBLK+1 L=L+512 IF(L.LE.K) GO TO 15 C CLOSE OUTPUT FILE. CALL CLOSEC(ICHAN) STOP END