X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fsrc%2Fadventure%2FIO.FT;fp=sw%2Fsrc%2Fadventure%2FIO.FT;h=5b6964105a439fd4829d922b7d421c8c0d001fa0;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/src/adventure/IO.FT b/sw/src/adventure/IO.FT new file mode 100644 index 0000000..5b69641 --- /dev/null +++ b/sw/src/adventure/IO.FT @@ -0,0 +1,27 @@ + SUBROUTINE IO(RECORD) +C +C +C This function reads the direct access file and unpacks it. +C we put 6 13-character records into a single direct access record +C because OS/8 FORTRAN puts every record into a single block. +C Packing this saves one-sixth the space. +C + COMMON /TXTCOM/ RTEXT,LINES,ASCVAR,TXTLOC,DATA + INTEGER RTEXT(205),LINES(12),DATA(78),RECORD + INTEGER OLDREC,TXTLOC +C COMMON /RECMEM/OLDREC + DATA OLDREC/-1/ + +C WRITE (1,111) RECORD + IREC = RECORD/6 + 1 +C WRITE (1,112) OLDREC, IREC + IF (IREC .NE. OLDREC)READ(8'IREC)DATA + OLDREC = IREC + N = 13 * (MOD(RECORD-1,6)) + 1 + TXTLOC = DATA(N) + DO 10 I = 1, 12 +10 LINES(I) = DATA(N+I) + RETURN +C111 FORMAT(' IO FOR ', I15) +C112 FORMAT(' IO, OLD=', I15, ' NEW=',I15) + END