_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

PFIOT

FILE INFORMATION

FILENAME(S): PFIOT

FILE TYPE(S): SEQ

FILE SIZE: 1.7K

FIRST SEEN: 2025-11-30 21:07:03

APPEARS ON: 1 disk(s)

FILE HASH

54f18cbbc5c0d41cff9ffd90ffd1955be4f78cfce19c26acfd73546288bd8a56

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
UTILITY PET 02 PFIOT SEQ DuncanTwain 11 4 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 28 2A 20 4B 4D 4D 4D 20  50 41 53 43 41 4C 20 46  |(* KMMM PASCAL F|
00000010: 49 4C 45 20 49 2F 4F 20  54 45 53 54 20 20 22 50  |ILE I/O TEST  "P|
00000020: 46 49 4F 54 22 20 20 36  2F 31 39 2F 38 31 20 2A  |FIOT"  6/19/81 *|
00000030: 29 0D 0A 43 4F 4E 53 54  20 43 4F 4E 53 54 46 49  |)..CONST CONSTFI|
00000040: 4C 45 4E 41 4D 45 3D 27  31 3A 50 41 53 43 54 45  |LENAME='1:PASCTE|
00000050: 53 54 27 3B 0D 0A 56 41  52 20 46 49 4C 45 31 2C  |ST';..VAR FILE1,|
00000060: 20 46 49 4C 45 32 3A 20  54 45 58 54 3B 0D 0A 20  | FILE2: TEXT;.. |
00000070: 20 20 20 43 48 3A 20 43  48 41 52 3B 0D 0A 20 20  |   CH: CHAR;..  |
00000080: 20 20 4C 49 4E 45 31 2C  20 4C 49 4E 45 32 3A 20  |  LINE1, LINE2: |
00000090: 41 52 52 41 59 5B 31 2E  2E 34 30 5D 20 4F 46 20  |ARRAY[1..40] OF |
000000A0: 43 48 41 52 3B 0D 0A 20  20 20 20 49 2C 20 4A 2C  |CHAR;..    I, J,|
000000B0: 20 4E 41 4D 45 53 49 5A  45 3A 20 49 4E 54 45 47  | NAMESIZE: INTEG|
000000C0: 45 52 3B 0D 0A 20 20 20  20 56 41 52 46 49 4C 45  |ER;..    VARFILE|
000000D0: 4E 41 4D 45 3A 20 41 52  52 41 59 5B 30 2E 2E 31  |NAME: ARRAY[0..1|
000000E0: 36 5D 20 4F 46 20 43 48  41 52 3B 0D 0A 50 52 4F  |6] OF CHAR;..PRO|
000000F0: 43 45 44 55 52 45 20 41  52 52 43 4F 4D 50 28 4C  |CEDURE ARRCOMP(L|
00000100: 49 4D 49 54 3A 49 4E 54  45 47 45 52 3B 0D 0A 20  |IMIT:INTEGER;.. |
00000110: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000120: 20 46 49 4C 45 4E 4F 3A  43 48 41 52 29 3B 0D 0A  | FILENO:CHAR);..|
00000130: 20 20 56 41 52 20 4A 3A  49 4E 54 45 47 45 52 3B  |  VAR J:INTEGER;|
00000140: 0D 0A 20 20 20 20 20 20  4E 4F 4D 41 54 43 48 3A  |..      NOMATCH:|
00000150: 42 4F 4F 4C 45 41 4E 3B  0D 0A 20 20 42 45 47 49  |BOOLEAN;..  BEGI|
00000160: 4E 0D 0A 20 20 20 20 4E  4F 4D 41 54 43 48 3A 3D  |N..    NOMATCH:=|
00000170: 46 41 4C 53 45 3B 0D 0A  20 20 20 20 46 4F 52 20  |FALSE;..    FOR |
00000180: 4A 20 3A 3D 20 31 20 54  4F 20 4C 49 4D 49 54 2D  |J := 1 TO LIMIT-|
00000190: 32 0D 0A 20 20 20 20 20  20 44 4F 20 49 46 20 4C  |2..      DO IF L|
000001A0: 49 4E 45 31 5B 4A 5D 3C  3E 4C 49 4E 45 32 5B 4A  |INE1[J]<>LINE2[J|
000001B0: 5D 0D 0A 20 20 20 20 20  20 20 20 20 20 20 20 20  |]..             |
000001C0: 54 48 45 4E 20 4E 4F 4D  41 54 43 48 20 3A 3D 20  |THEN NOMATCH := |
000001D0: 54 52 55 45 3B 0D 0A 20  20 20 20 49 46 20 4E 4F  |TRUE;..    IF NO|
000001E0: 4D 41 54 43 48 0D 0A 20  20 20 20 20 20 20 20 54  |MATCH..        T|
000001F0: 48 45 4E 20 57 52 49 54  45 4C 4E 28 27 4D 49 53  |HEN WRITELN('MIS|
00000200: 4D 41 54 43 48 20 4F 4E  20 46 49 4C 45 20 27 2C  |MATCH ON FILE ',|
00000210: 46 49 4C 45 4E 4F 29 0D  0A 20 20 45 4E 44 3B 0D  |FILENO)..  END;.|
00000220: 0A 42 45 47 49 4E 0D 0A  20 20 28 2A 20 50 52 49  |.BEGIN..  (* PRI|
00000230: 4E 54 20 50 52 4F 4D 50  54 20 4D 45 53 53 41 47  |NT PROMPT MESSAG|
00000240: 45 20 2A 29 0D 0A 20 20  57 52 49 54 45 28 27 45  |E *)..  WRITE('E|
00000250: 4E 54 45 52 20 53 54 52  49 4E 47 20 54 4F 20 43  |NTER STRING TO C|
00000260: 4F 50 59 20 2D 20 27 29  3B 0D 0A 20 20 28 2A 20  |OPY - ');..  (* |
00000270: 52 45 41 44 20 41 52 52  41 59 20 46 52 4F 4D 20  |READ ARRAY FROM |
00000280: 53 43 52 45 45 4E 20 2A  29 0D 0A 20 20 49 20 3A  |SCREEN *)..  I :|
00000290: 3D 20 31 3B 0D 0A 20 20  52 45 50 45 41 54 0D 0A  |= 1;..  REPEAT..|
000002A0: 20 20 20 20 52 45 41 44  28 43 48 29 3B 0D 0A 20  |    READ(CH);.. |
000002B0: 20 20 20 4C 49 4E 45 31  5B 49 5D 20 3A 3D 20 43  |   LINE1[I] := C|
000002C0: 48 3B 0D 0A 20 20 20 20  49 20 3A 3D 20 49 20 2B  |H;..    I := I +|
000002D0: 20 31 0D 0A 20 20 55 4E  54 49 4C 20 43 48 3D 43  | 1..  UNTIL CH=C|
000002E0: 48 52 28 31 33 29 3B 0D  0A 20 20 57 52 49 54 45  |HR(13);..  WRITE|
000002F0: 4C 4E 3B 0D 0A 20 20 49  20 3A 3D 20 49 20 2D 20  |LN;..  I := I - |
00000300: 32 3B 0D 0A 20 20 28 2A  20 57 52 49 54 45 20 41  |2;..  (* WRITE A|
00000310: 52 52 41 59 20 54 4F 20  46 49 4C 45 20 57 49 54  |RRAY TO FILE WIT|
00000320: 48 20 43 4F 4E 53 54 41  4E 54 20 4E 41 4D 45 20  |H CONSTANT NAME |
00000330: 2A 29 0D 0A 20 20 52 45  57 52 49 54 45 28 46 49  |*)..  REWRITE(FI|
00000340: 4C 45 31 2C 27 31 3A 50  41 53 43 54 45 53 54 27  |LE1,'1:PASCTEST'|
00000350: 29 3B 0D 0A 20 20 46 4F  52 20 4A 20 3A 3D 20 31  |);..  FOR J := 1|
00000360: 20 54 4F 20 49 0D 0A 20  20 20 20 44 4F 20 57 52  | TO I..    DO WR|
00000370: 49 54 45 28 46 49 4C 45  31 2C 4C 49 4E 45 31 5B  |ITE(FILE1,LINE1[|
00000380: 4A 5D 29 3B 0D 0A 20 20  57 52 49 54 45 4C 4E 28  |J]);..  WRITELN(|
00000390: 46 49 4C 45 31 29 3B 0D  0A 20 20 28 2A 20 47 45  |FILE1);..  (* GE|
000003A0: 54 20 46 49 4C 45 20 4E  41 4D 45 20 46 52 4F 4D  |T FILE NAME FROM|
000003B0: 20 4F 50 45 52 41 54 4F  52 20 2A 29 0D 0A 20 20  | OPERATOR *)..  |
000003C0: 4E 41 4D 45 53 49 5A 45  20 3A 3D 20 30 3B 0D 0A  |NAMESIZE := 0;..|
000003D0: 20 20 57 52 49 54 45 28  27 45 4E 54 45 52 20 46  |  WRITE('ENTER F|
000003E0: 49 4C 45 20 4E 41 4D 45  3A 20 27 29 3B 0D 0A 20  |ILE NAME: ');.. |
000003F0: 20 52 45 50 45 41 54 0D  0A 20 20 20 20 4E 41 4D  | REPEAT..    NAM|
00000400: 45 53 49 5A 45 20 3A 3D  20 4E 41 4D 45 53 49 5A  |ESIZE := NAMESIZ|
00000410: 45 20 2B 20 31 3B 0D 0A  20 20 20 20 52 45 41 44  |E + 1;..    READ|
00000420: 28 43 48 29 3B 0D 0A 20  20 20 20 56 41 52 46 49  |(CH);..    VARFI|
00000430: 4C 45 4E 41 4D 45 5B 4E  41 4D 45 53 49 5A 45 5D  |LENAME[NAMESIZE]|
00000440: 20 3A 3D 20 43 48 0D 0A  20 20 55 4E 54 49 4C 20  | := CH..  UNTIL |
00000450: 43 48 20 3D 20 43 48 52  28 31 33 29 3B 0D 0A 20  |CH = CHR(13);.. |
00000460: 20 57 52 49 54 45 4C 4E  3B 0D 0A 20 20 56 41 52  | WRITELN;..  VAR|
00000470: 46 49 4C 45 4E 41 4D 45  5B 30 5D 20 3A 3D 20 43  |FILENAME[0] := C|
00000480: 48 52 28 4E 41 4D 45 53  49 5A 45 20 2D 20 31 29  |HR(NAMESIZE - 1)|
00000490: 3B 0D 0A 20 20 28 2A 20  57 52 49 54 45 20 41 52  |;..  (* WRITE AR|
000004A0: 52 41 59 20 54 4F 20 46  49 4C 45 20 57 49 54 48  |RAY TO FILE WITH|
000004B0: 20 56 41 52 49 41 42 4C  45 20 4E 41 4D 45 20 2A  | VARIABLE NAME *|
000004C0: 29 0D 0A 20 20 52 45 57  52 49 54 45 28 46 49 4C  |)..  REWRITE(FIL|
000004D0: 45 32 2C 56 41 52 46 49  4C 45 4E 41 4D 45 29 3B  |E2,VARFILENAME);|
000004E0: 0D 0A 20 20 46 4F 52 20  4A 20 3A 3D 20 31 20 54  |..  FOR J := 1 T|
000004F0: 4F 20 49 0D 0A 20 20 20  20 44 4F 20 57 52 49 54  |O I..    DO WRIT|
00000500: 45 28 46 49 4C 45 32 2C  4C 49 4E 45 31 5B 4A 5D  |E(FILE2,LINE1[J]|
00000510: 29 3B 0D 0A 20 20 57 52  49 54 45 4C 4E 28 46 49  |);..  WRITELN(FI|
00000520: 4C 45 32 29 3B 0D 0A 20  20 52 45 53 45 54 28 46  |LE2);..  RESET(F|
00000530: 49 4C 45 31 2C 43 4F 4E  53 54 46 49 4C 45 4E 41  |ILE1,CONSTFILENA|
00000540: 4D 45 29 3B 0D 0A 20 20  4A 20 3A 3D 20 31 3B 0D  |ME);..  J := 1;.|
00000550: 0A 20 20 52 45 50 45 41  54 0D 0A 20 20 20 20 52  |.  REPEAT..    R|
00000560: 45 41 44 28 46 49 4C 45  31 2C 43 48 29 3B 0D 0A  |EAD(FILE1,CH);..|
00000570: 20 20 20 20 4C 49 4E 45  32 5B 4A 5D 20 3A 3D 20  |    LINE2[J] := |
00000580: 43 48 3B 0D 0A 20 20 20  20 4A 20 3A 3D 20 4A 20  |CH;..    J := J |
00000590: 2B 20 31 0D 0A 20 20 55  4E 54 49 4C 20 43 48 3D  |+ 1..  UNTIL CH=|
000005A0: 43 48 52 28 31 33 29 3B  0D 0A 20 20 41 52 52 43  |CHR(13);..  ARRC|
000005B0: 4F 4D 50 28 4A 2C 27 31  27 29 3B 0D 0A 20 20 52  |OMP(J,'1');..  R|
000005C0: 45 53 45 54 28 46 49 4C  45 32 2C 56 41 52 46 49  |ESET(FILE2,VARFI|
000005D0: 4C 45 4E 41 4D 45 29 3B  0D 0A 20 20 4A 20 3A 3D  |LENAME);..  J :=|
000005E0: 20 31 3B 0D 0A 20 20 52  45 50 45 41 54 0D 0A 20  | 1;..  REPEAT.. |
000005F0: 20 20 20 52 45 41 44 28  46 49 4C 45 32 2C 43 48  |   READ(FILE2,CH|
00000600: 29 3B 0D 0A 20 20 20 20  4C 49 4E 45 32 5B 4A 5D  |);..    LINE2[J]|
00000610: 20 3A 3D 20 43 48 3B 0D  0A 20 20 20 20 4A 20 3A  | := CH;..    J :|
00000620: 3D 20 4A 20 2B 20 31 0D  0A 20 20 55 4E 54 49 4C  |= J + 1..  UNTIL|
00000630: 20 43 48 3D 43 48 52 28  31 33 29 3B 0D 0A 20 20  | CH=CHR(13);..  |
00000640: 41 52 52 43 4F 4D 50 28  4A 2C 27 32 27 29 3B 0D  |ARRCOMP(J,'2');.|
00000650: 0A 20 20 28 2A 20 57 52  49 54 45 20 41 52 52 41  |.  (* WRITE ARRA|
00000660: 59 20 54 4F 20 53 43 52  45 45 4E 20 2A 29 0D 0A  |Y TO SCREEN *)..|
00000670: 20 20 46 4F 52 20 4A 20  3A 3D 20 31 20 54 4F 20  |  FOR J := 1 TO |
00000680: 49 0D 0A 20 20 20 20 44  4F 20 57 52 49 54 45 28  |I..    DO WRITE(|
00000690: 4C 49 4E 45 31 5B 4A 5D  29 3B 0D 0A 20 20 57 52  |LINE1[J]);..  WR|
000006A0: 49 54 45 4C 4E 28 27 20  45 4E 44 27 29 0D 0A 45  |ITELN(' END')..E|
000006B0: 4E 44 2E 0D 0A 03 0D 0A                           |ND......        |
(* KMMM PASCAL FILE I/O TEST  "PFIOT"  6
/19/81 *)..CONST CONSTFILENAME='1:PASCTE
ST';..VAR FILE1, FILE2: TEXT;..    CH: C
HAR;..    LINE1, LINE2: ARRAY[1..40] OF 
CHAR;..    I, J, NAMESIZE: INTEGER;..   
 VARFILENAME: ARRAY[0..16] OF CHAR;..PRO
CEDURE ARRCOMP(LIMIT:INTEGER;..         
         FILENO:CHAR);..  VAR J:INTEGER;
..      NOMATCH:BOOLEAN;..  BEGIN..    N
OMATCH:=FALSE;..    FOR J := 1 TO LIMIT-
2..      DO IF LINE1[J]<>LINE2[J]..     
        THEN NOMATCH := TRUE;..    IF NO
MATCH..        THEN WRITELN('MISMATCH ON
 FILE ',FILENO)..  END;..BEGIN..  (* PRI
NT PROMPT MESSAGE *)..  WRITE('ENTER STR
ING TO COPY - ');..  (* READ ARRAY FROM 
SCREEN *)..  I := 1;..  REPEAT..    READ
(CH);..    LINE1[I] := CH;..    I := I +
 1..  UNTIL CH=CHR(13);..  WRITELN;..  I
 := I - 2;..  (* WRITE ARRAY TO FILE WIT
H CONSTANT NAME *)..  REWRITE(FILE1,'1:P
ASCTEST');..  FOR J := 1 TO I..    DO WR
ITE(FILE1,LINE1[J]);..  WRITELN(FILE1);.
.  (* GET FILE NAME FROM OPERATOR *)..  
NAMESIZE := 0;..  WRITE('ENTER FILE NAME
: ');..  REPEAT..    NAMESIZE := NAMESIZ
E + 1;..    READ(CH);..    VARFILENAME[N
AMESIZE] := CH..  UNTIL CH = CHR(13);.. 
 WRITELN;..  VARFILENAME[0] := CHR(NAMES
IZE - 1);..  (* WRITE ARRAY TO FILE WITH
 VARIABLE NAME *)..  REWRITE(FILE2,VARFI
LENAME);..  FOR J := 1 TO I..    DO WRIT
E(FILE2,LINE1[J]);..  WRITELN(FILE2);.. 
 RESET(FILE1,CONSTFILENAME);..  J := 1;.
.  REPEAT..    READ(FILE1,CH);..    LINE
2[J] := CH;..    J := J + 1..  UNTIL CH=
CHR(13);..  ARRCOMP(J,'1');..  RESET(FIL
E2,VARFILENAME);..  J := 1;..  REPEAT.. 
   READ(FILE2,CH);..    LINE2[J] := CH;.
.    J := J + 1..  UNTIL CH=CHR(13);..  
ARRCOMP(J,'2');..  (* WRITE ARRAY TO SCR
EEN *)..  FOR J := 1 TO I..    DO WRITE(
LINE1[J]);..  WRITELN(' END')..END......
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL