1  COM A0$[7]
2  IF LEN(A0$)>0 THEN 5
3  A0$="$INFORM"
5  REM PROGRAM CONTINUES HERE
100  PRINT "INFORMS YOU ABOUT THE 2000/ACCESS"
110  REM:  PATCHED INTO $INFORM 1/3/76
120  B$="Y"
1000  REM:  "F/OUT" (REV.#2), WRITTEN 11-27-75 BY MIKE SCHWEIZER
1010  REM:  PRODUCED AT THE EDP RESOURCE CENTER, SAN FRANCISCO, CALIF.
1020  DIM A$[72]
1030  FILES *
1040  REM:  INSTRUCTIONS SECTION
1050  GOTO 1240
1060  GOSUB 2170
1070  IF A$[1,1]#"Y" THEN 1240
1080  PRINT 
1090  PRINT "THIS PROGRAM GIVES YOU A 'CLEAN' SERIAL FILE DUMP, WITH THE"
1100  PRINT "ABILITY TO HAVE YOUR OUTPUT FORMATTED INTO NUMBERED 8 1/2"
1110  PRINT "BY 11 INCH PAGES (ASSUMING YOU CHOOSE 55 LINES PER PAGE,"
1120  PRINT "THE DEFAULT OPTION).  ALTHOUGH NO PROVISION IS MADE TO START"
1130  PRINT "FROM A SPECIFIC FILE RECORD, YOU CAN START FROM A SPECIFIED"
1140  PRINT "PAGE WHEN RUNNING UNDER THE PAGINATION OPTION.  SIMPLY TYPE"
1150  PRINT "IN THE REQUESTED INFORMATION WHEN ASKED, OR PRESS 'RETURN'"
1160  PRINT "IF NOT APPLICABLE.  THIS PROGRAM IS INTENDED FOR DISPLAYING"
1170  PRINT "THE CONTENTS OF STRING FILES, BUT NUMERICS WILL ALSO BE"
1180  PRINT "PRINTED, ONE PER LINE, FOR USER CONVENIENCE IN DUMPING"
1190  PRINT "UNKNOWN FILES.  THIS PROGRAM SHOULD NOT BE USED FOR THIS"
1200  PRINT "PURPOSE, HOWEVER, BECAUSE RANDOM-ACCESS FILES WILL PRODUCE"
1210  PRINT "UNPREDICTABLE RESULTS.  IF THE FILE YOU WISH TO PRINT IS"
1220  PRINT "MASKED, TYPE A COMMA (,) AND THE MASK AFTER THE FILE NAME."
1230  REM:  ASSIGN AND CHECK FILE
1240  GOTO 1330
1250  ENTER 60,R,A$
1260  GOSUB 2190
1270  IF LEN(A$)=0 THEN 2210
1280  REM:  CHECK FOR MASK, DEFINE AND BLOCK OUT IF PRESENT
1290  FOR I=1 TO LEN(A$)
1300  IF A$[I,I]="," THEN 1360
1310  NEXT I
1320  REM:  NO COMMA (,) FOUND, ASSIGN FILE WITHOUT MASK
1330  ASSIGN "INFO.A100",1,R
1340  GOTO 1400
1350  REM:  MASK FOUND, ASSIGN FILE WITH IT
1360  ASSIGN A$[1,I-1],1,R,A$[I+1]
1370  REM:  BLOCK OUT MASK
1380  P=I+14
1390  PRINT TAB(P);"XXXXXX";LIN(0);TAB(P);"HHHHHH";LIN(0);TAB(P);"$$$$$$"
1400  PRINT 
1410  IF R<3 THEN 1510
1420  REM:  FILE IS BAD, PRINT DIAGNOSTIC
1430  PRINT LIN(-1);"'";A$[1,I-1];"' ";
1440  IF R=5 THEN 1470
1450  PRINT "IS MISSING OR PROTECTED";
1460  GOTO 1480
1470  PRINT "HAS LARGER RECORDS THAN PREVIOUS FILE";
1480  PRINT " AND CANNOT BE READ."
1490  GOTO 1240
1500  REM:  SET UP NON-PAGINATED EXIT
1510  IF  END #1 THEN 2110
1520  REM:  PAGINATION OPTION, INITIALIZE 55 ITEMS/PAGE IN "Q"
1530  Q=55
1560  GOSUB 2180
1580  REM:  USER WANTS PAGINATION, GET STARTING PAGE NUMBER
1590  PRINT "STARTING PAGE: ";
1600  P=1
1610  ENTER 60,R,P
1620  GOSUB 2180
1630  REM:  GET NUMBER OF ITEMS/PAGE FROM USER (DEFAULT IS 55)
1640  Q=55
1660  GOSUB 2180
1670  REM:  CHECK FOR VALID PAGE NUMBER
1680  IF P#ABS(INT(P)) OR P<1 THEN 1590
1690  P=P-1
1700  REM:  READ OUT TO STARTING PAGE (Q ITEMS/PAGE)
1710  FOR K=1 TO P
1720  FOR I=1 TO Q
1730  GOTO TYP(1) OF 1740,1760,1890
1740  READ #1;N
1750  GOTO 1770
1760  READ #1;A$
1770  NEXT I
1780  NEXT K
1790  REM:  SET UP PAGINATED EXIT
1800  IF  END #1 THEN 2140
1810  REM:  ALLOW USER TO POSITION FORM-FEED PAPER
1820  PRINT "POSITION PERFORATIONS, IF ANY, AT PRINT LINE, AND PRESS"
1830  PRINT "'RETURN' TO START.";LIN(-3)
1840  ENTER 255,R,A$
1850  REM:  SET END-OF-PAGE LINEFEED VARIABLE TO ZERO
1860  R=0
1870  GOTO 2050
1880  REM:  PAGE OVERFLOW MESSAGE
1890  PRINT "PAGE OUT OF RANGE, THE LAST PAGE IS";K
1900  REM:  RESET POINTER AND ASK AGAIN
1910  READ #1,1
1920  GOTO 1590
1930  PRINT LIN(-2);"=";LIN(-5)
1940  REM:  PRINT "Q" ITEMS, THEN CHECK FOR PAGINATION
1950  FOR I=1 TO Q
1960  GOTO TYP(1) OF 1970,2000
1970  READ #1;N
1980  PRINT N
1990  GOTO 2020
2000  READ #1;A$
2010  PRINT A$
2020  NEXT I
2030  REM:  IF NOT IN PAGINATING MODE, SKIP PAGINATION ROUTINE
2040  IF B$#"Y" THEN 1950
2050  P=P+1
2060  PRINT LIN(-R);"=";LIN(-2);TAB(68);P;LIN(-3)
2070  REM:  SET START-OF-PAGE LINEFEEDS TO FIVE
2080  R=5
2090  GOTO 1950
2100  REM:  NON-PAGINATED EXIT
2110  PRINT LIN(-5);"=";LIN(3)
2120  GOTO 1240
2130  REM:  PAGINATED EXIT
2140  PRINT LIN(-(61-I));"=";LIN(-5)
2150  STOP 
2160  REM:  "ENTER" CHECK SUBROUTINE
2170  ENTER 60,R,A$
2180  PRINT 
2190  IF R=-256 THEN 2210
2200  RETURN 
2210  END 
