A large commit.
[pdp8.git] / sw / src / adventure / IO.FT
diff --git a/sw/src/adventure/IO.FT b/sw/src/adventure/IO.FT
new file mode 100644 (file)
index 0000000..5b69641
--- /dev/null
@@ -0,0 +1,27 @@
+       SUBROUTINE IO(RECORD)\r
+C\r
+C\r
+C      This function reads the direct access file and unpacks it.\r
+C      we put 6 13-character records into a single direct access record\r
+C      because OS/8 FORTRAN puts every record into a single block.\r
+C      Packing this saves one-sixth the space.\r
+C\r
+       COMMON /TXTCOM/ RTEXT,LINES,ASCVAR,TXTLOC,DATA\r
+       INTEGER RTEXT(205),LINES(12),DATA(78),RECORD\r
+       INTEGER OLDREC,TXTLOC\r
+C      COMMON /RECMEM/OLDREC\r
+       DATA    OLDREC/-1/\r
+\r
+C      WRITE (1,111) RECORD\r
+       IREC = RECORD/6 + 1\r
+C      WRITE (1,112) OLDREC, IREC\r
+       IF (IREC .NE. OLDREC)READ(8'IREC)DATA\r
+       OLDREC = IREC\r
+       N = 13 * (MOD(RECORD-1,6)) + 1\r
+       TXTLOC = DATA(N)\r
+       DO 10 I = 1, 12\r
+10     LINES(I) = DATA(N+I)\r
+       RETURN\r
+C111   FORMAT(' IO FOR  ', I15)\r
+C112   FORMAT(' IO, OLD=', I15, ' NEW=',I15)\r
+       END\r