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

PFIOT

FILE INFORMATION

FILENAME(S): PFIOT

FILE TYPE(S): SEQ

FILE SIZE: 1.7K

FIRST SEEN: 2025-12-01 01:07:53

APPEARS ON: 1 disk(s)

FILE HASH

bc147b7a78094337e15d7fa1841cb1d26a7c5aa45b5f91cea5c90b860995d2db

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
04 DODDLE PFIOT SEQ hedning, Kaevlinge 32 4 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 50 52 4F 47 52 41 4D 20  50 46 49 4F 54 28 4B 4D  |PROGRAM PFIOT(KM|
00000010: 4D 4D 20 50 41 53 43 41  4C 20 46 49 4C 45 20 49  |MM PASCAL FILE I|
00000020: 2F 4F 20 54 45 53 54 2C  31 2F 35 2F 38 33 29 3B  |/O TEST,1/5/83);|
00000030: 0D 0D 43 4F 4E 53 54 20  43 4F 4E 53 54 46 49 4C  |..CONST CONSTFIL|
00000040: 45 4E 41 4D 45 3D 27 30  3A 50 41 53 43 54 45 53  |ENAME='0:PASCTES|
00000050: 54 27 3B 0D 0D 56 41 52  20 46 49 4C 45 31 2C 20  |T';..VAR FILE1, |
00000060: 46 49 4C 45 32 3A 20 54  45 58 54 3B 0D 20 20 20  |FILE2: TEXT;.   |
00000070: 20 43 48 3A 20 43 48 41  52 3B 0D 20 20 20 20 4C  | CH: CHAR;.    L|
00000080: 49 4E 45 31 2C 20 4C 49  4E 45 32 3A 20 41 52 52  |INE1, LINE2: ARR|
00000090: 41 59 5B 31 2E 2E 34 30  5D 20 4F 46 20 43 48 41  |AY[1..40] OF CHA|
000000A0: 52 3B 0D 20 20 20 20 49  2C 20 4A 2C 20 53 49 5A  |R;.    I, J, SIZ|
000000B0: 45 3A 20 49 4E 54 45 47  45 52 3B 0D 20 20 20 20  |E: INTEGER;.    |
000000C0: 56 41 52 46 49 4C 45 4E  41 4D 45 3A 20 53 54 52  |VARFILENAME: STR|
000000D0: 49 4E 47 3B 0D 0D 50 52  4F 43 45 44 55 52 45 20  |ING;..PROCEDURE |
000000E0: 41 52 52 43 4F 4D 50 28  4C 49 4D 49 54 3A 49 4E  |ARRCOMP(LIMIT:IN|
000000F0: 54 45 47 45 52 3B 0D 20  20 20 20 20 20 20 20 20  |TEGER;.         |
00000100: 20 20 20 20 20 20 20 20  20 46 49 4C 45 4E 4F 3A  |         FILENO:|
00000110: 43 48 41 52 29 3B 0D 20  20 56 41 52 20 4A 3A 49  |CHAR);.  VAR J:I|
00000120: 4E 54 45 47 45 52 3B 0D  20 20 20 20 20 20 4E 4F  |NTEGER;.      NO|
00000130: 4D 41 54 43 48 3A 42 4F  4F 4C 45 41 4E 3B 0D 20  |MATCH:BOOLEAN;. |
00000140: 20 42 45 47 49 4E 0D 20  20 20 20 4E 4F 4D 41 54  | BEGIN.    NOMAT|
00000150: 43 48 3A 3D 46 41 4C 53  45 3B 0D 20 20 20 20 46  |CH:=FALSE;.    F|
00000160: 4F 52 20 4A 20 3A 3D 20  31 20 54 4F 20 4C 49 4D  |OR J := 1 TO LIM|
00000170: 49 54 2D 32 0D 20 20 20  20 20 20 44 4F 20 49 46  |IT-2.      DO IF|
00000180: 20 4C 49 4E 45 31 5B 4A  5D 3C 3E 4C 49 4E 45 32  | LINE1[J]<>LINE2|
00000190: 5B 4A 5D 0D 20 20 20 20  20 20 20 20 20 20 20 20  |[J].            |
000001A0: 20 54 48 45 4E 20 4E 4F  4D 41 54 43 48 20 3A 3D  | THEN NOMATCH :=|
000001B0: 20 54 52 55 45 3B 0D 20  20 20 20 49 46 20 4E 4F  | TRUE;.    IF NO|
000001C0: 4D 41 54 43 48 0D 20 20  20 20 20 20 20 20 54 48  |MATCH.        TH|
000001D0: 45 4E 20 57 52 49 54 45  4C 4E 28 27 4D 49 53 4D  |EN WRITELN('MISM|
000001E0: 41 54 43 48 20 4F 4E 20  46 49 4C 45 20 27 2C 46  |ATCH ON FILE ',F|
000001F0: 49 4C 45 4E 4F 29 0D 20  20 45 4E 44 3B 0D 0D 42  |ILENO).  END;..B|
00000200: 45 47 49 4E 0D 20 20 28  2A 20 50 52 49 4E 54 20  |EGIN.  (* PRINT |
00000210: 50 52 4F 4D 50 54 20 4D  45 53 53 41 47 45 20 2A  |PROMPT MESSAGE *|
00000220: 29 0D 20 20 57 52 49 54  45 28 27 45 4E 54 45 52  |).  WRITE('ENTER|
00000230: 20 53 54 52 49 4E 47 20  54 4F 20 43 4F 50 59 20  | STRING TO COPY |
00000240: 2D 20 27 29 3B 0D 20 20  28 2A 20 52 45 41 44 20  |- ');.  (* READ |
00000250: 41 52 52 41 59 20 46 52  4F 4D 20 53 43 52 45 45  |ARRAY FROM SCREE|
00000260: 4E 20 2A 29 0D 20 20 49  20 3A 3D 20 31 3B 0D 20  |N *).  I := 1;. |
00000270: 20 52 45 50 45 41 54 0D  20 20 20 20 52 45 41 44  | REPEAT.    READ|
00000280: 28 43 48 29 3B 0D 20 20  20 20 4C 49 4E 45 31 5B  |(CH);.    LINE1[|
00000290: 49 5D 20 3A 3D 20 43 48  3B 0D 20 20 20 20 49 20  |I] := CH;.    I |
000002A0: 3A 3D 20 49 20 2B 20 31  0D 20 20 55 4E 54 49 4C  |:= I + 1.  UNTIL|
000002B0: 20 43 48 3D 43 48 52 28  31 33 29 3B 0D 20 20 57  | CH=CHR(13);.  W|
000002C0: 52 49 54 45 4C 4E 3B 0D  20 20 49 20 3A 3D 20 49  |RITELN;.  I := I|
000002D0: 20 2D 20 32 3B 0D 20 20  28 2A 20 57 52 49 54 45  | - 2;.  (* WRITE|
000002E0: 20 41 52 52 41 59 20 54  4F 20 46 49 4C 45 20 57  | ARRAY TO FILE W|
000002F0: 49 54 48 20 43 4F 4E 53  54 41 4E 54 20 4E 41 4D  |ITH CONSTANT NAM|
00000300: 45 20 2A 29 0D 20 20 52  45 57 52 49 54 45 28 46  |E *).  REWRITE(F|
00000310: 49 4C 45 31 2C 27 30 3A  50 41 53 43 54 45 53 54  |ILE1,'0:PASCTEST|
00000320: 27 29 3B 0D 20 20 46 4F  52 20 4A 20 3A 3D 20 31  |');.  FOR J := 1|
00000330: 20 54 4F 20 49 0D 20 20  20 20 44 4F 20 57 52 49  | TO I.    DO WRI|
00000340: 54 45 28 46 49 4C 45 31  2C 4C 49 4E 45 31 5B 4A  |TE(FILE1,LINE1[J|
00000350: 5D 29 3B 0D 20 20 57 52  49 54 45 4C 4E 28 46 49  |]);.  WRITELN(FI|
00000360: 4C 45 31 29 3B 0D 20 20  28 2A 20 47 45 54 20 46  |LE1);.  (* GET F|
00000370: 49 4C 45 20 4E 41 4D 45  20 46 52 4F 4D 20 4F 50  |ILE NAME FROM OP|
00000380: 45 52 41 54 4F 52 20 2A  29 0D 20 20 52 45 50 45  |ERATOR *).  REPE|
00000390: 41 54 0D 20 20 20 20 57  52 49 54 45 28 27 45 4E  |AT.    WRITE('EN|
000003A0: 54 45 52 20 46 49 4C 45  20 4E 41 4D 45 3A 20 27  |TER FILE NAME: '|
000003B0: 29 3B 0D 20 20 20 20 52  45 41 44 4C 4E 28 56 41  |);.    READLN(VA|
000003C0: 52 46 49 4C 45 4E 41 4D  45 29 3B 0D 20 20 20 20  |RFILENAME);.    |
000003D0: 53 49 5A 45 3A 3D 4C 45  4E 47 54 48 28 56 41 52  |SIZE:=LENGTH(VAR|
000003E0: 46 49 4C 45 4E 41 4D 45  29 0D 20 20 55 4E 54 49  |FILENAME).  UNTI|
000003F0: 4C 20 53 49 5A 45 3E 32  3B 0D 20 20 28 2A 20 47  |L SIZE>2;.  (* G|
00000400: 45 54 20 44 52 49 56 45  20 50 52 45 46 49 58 20  |ET DRIVE PREFIX |
00000410: 49 46 20 4E 4F 54 20 50  52 45 53 45 4E 54 20 2A  |IF NOT PRESENT *|
00000420: 29 0D 20 20 49 46 20 56  41 52 46 49 4C 45 4E 41  |).  IF VARFILENA|
00000430: 4D 45 5B 32 5D 3C 3E 27  3A 27 0D 20 20 20 20 20  |ME[2]<>':'.     |
00000440: 20 54 48 45 4E 20 42 45  47 49 4E 0D 20 20 20 20  | THEN BEGIN.    |
00000450: 20 20 20 20 20 20 20 20  20 57 52 49 54 45 28 27  |         WRITE('|
00000460: 44 52 49 56 45 3F 20 27  29 3B 0D 20 20 20 20 20  |DRIVE? ');.     |
00000470: 20 20 20 20 20 20 20 20  52 45 41 44 4C 4E 28 43  |        READLN(C|
00000480: 48 29 3B 0D 20 20 20 20  20 20 20 20 20 20 20 20  |H);.            |
00000490: 20 56 41 52 46 49 4C 45  4E 41 4D 45 3A 3D 43 4F  | VARFILENAME:=CO|
000004A0: 4E 43 41 54 28 43 48 2C  27 3A 27 2C 56 41 52 46  |NCAT(CH,':',VARF|
000004B0: 49 4C 45 4E 41 4D 45 29  0D 20 20 20 20 20 20 20  |ILENAME).       |
000004C0: 20 20 20 20 45 4E 44 3B  0D 20 20 28 2A 20 57 52  |    END;.  (* WR|
000004D0: 49 54 45 20 41 52 52 41  59 20 54 4F 20 46 49 4C  |ITE ARRAY TO FIL|
000004E0: 45 20 57 49 54 48 20 56  41 52 49 41 42 4C 45 20  |E WITH VARIABLE |
000004F0: 4E 41 4D 45 20 2A 29 0D  20 20 52 45 57 52 49 54  |NAME *).  REWRIT|
00000500: 45 28 46 49 4C 45 32 2C  56 41 52 46 49 4C 45 4E  |E(FILE2,VARFILEN|
00000510: 41 4D 45 29 3B 0D 20 20  46 4F 52 20 4A 20 3A 3D  |AME);.  FOR J :=|
00000520: 20 31 20 54 4F 20 49 0D  20 20 20 20 44 4F 20 57  | 1 TO I.    DO W|
00000530: 52 49 54 45 28 46 49 4C  45 32 2C 4C 49 4E 45 31  |RITE(FILE2,LINE1|
00000540: 5B 4A 5D 29 3B 0D 20 20  57 52 49 54 45 4C 4E 28  |[J]);.  WRITELN(|
00000550: 46 49 4C 45 32 29 3B 0D  20 20 52 45 53 45 54 28  |FILE2);.  RESET(|
00000560: 46 49 4C 45 31 2C 43 4F  4E 53 54 46 49 4C 45 4E  |FILE1,CONSTFILEN|
00000570: 41 4D 45 29 3B 0D 20 20  4A 20 3A 3D 20 31 3B 0D  |AME);.  J := 1;.|
00000580: 20 20 52 45 50 45 41 54  0D 20 20 20 20 52 45 41  |  REPEAT.    REA|
00000590: 44 28 46 49 4C 45 31 2C  43 48 29 3B 0D 20 20 20  |D(FILE1,CH);.   |
000005A0: 20 4C 49 4E 45 32 5B 4A  5D 20 3A 3D 20 43 48 3B  | LINE2[J] := CH;|
000005B0: 0D 20 20 20 20 4A 20 3A  3D 20 4A 20 2B 20 31 0D  |.    J := J + 1.|
000005C0: 20 20 55 4E 54 49 4C 20  43 48 3D 43 48 52 28 31  |  UNTIL CH=CHR(1|
000005D0: 33 29 3B 0D 20 20 41 52  52 43 4F 4D 50 28 4A 2C  |3);.  ARRCOMP(J,|
000005E0: 27 31 27 29 3B 0D 20 20  52 45 53 45 54 28 46 49  |'1');.  RESET(FI|
000005F0: 4C 45 32 2C 56 41 52 46  49 4C 45 4E 41 4D 45 29  |LE2,VARFILENAME)|
00000600: 3B 0D 20 20 4A 20 3A 3D  20 31 3B 0D 20 20 52 45  |;.  J := 1;.  RE|
00000610: 50 45 41 54 0D 20 20 20  20 52 45 41 44 28 46 49  |PEAT.    READ(FI|
00000620: 4C 45 32 2C 43 48 29 3B  0D 20 20 20 20 4C 49 4E  |LE2,CH);.    LIN|
00000630: 45 32 5B 4A 5D 20 3A 3D  20 43 48 3B 0D 20 20 20  |E2[J] := CH;.   |
00000640: 20 4A 20 3A 3D 20 4A 20  2B 20 31 0D 20 20 55 4E  | J := J + 1.  UN|
00000650: 54 49 4C 20 43 48 3D 43  48 52 28 31 33 29 3B 0D  |TIL CH=CHR(13);.|
00000660: 20 20 41 52 52 43 4F 4D  50 28 4A 2C 27 32 27 29  |  ARRCOMP(J,'2')|
00000670: 3B 0D 20 20 28 2A 20 57  52 49 54 45 20 41 52 52  |;.  (* WRITE ARR|
00000680: 41 59 20 54 4F 20 53 43  52 45 45 4E 20 2A 29 0D  |AY TO SCREEN *).|
00000690: 20 20 46 4F 52 20 4A 20  3A 3D 20 31 20 54 4F 20  |  FOR J := 1 TO |
000006A0: 49 0D 20 20 20 20 44 4F  20 57 52 49 54 45 28 4C  |I.    DO WRITE(L|
000006B0: 49 4E 45 31 5B 4A 5D 29  3B 0D 20 20 57 52 49 54  |INE1[J]);.  WRIT|
000006C0: 45 4C 4E 28 27 20 45 4E  44 27 29 0D 45 4E 44 2E  |ELN(' END').END.|
000006D0: 0D 03 54                                          |..T             |
PROGRAM PFIOT(KMMM PASCAL FILE I/O TEST,
1/5/83);..CONST CONSTFILENAME='0:PASCTES
T';..VAR FILE1, FILE2: TEXT;.    CH: CHA
R;.    LINE1, LINE2: ARRAY[1..40] OF CHA
R;.    I, J, SIZE: INTEGER;.    VARFILEN
AME: STRING;..PROCEDURE ARRCOMP(LIMIT:IN
TEGER;.                  FILENO:CHAR);. 
 VAR J:INTEGER;.      NOMATCH:BOOLEAN;. 
 BEGIN.    NOMATCH:=FALSE;.    FOR J := 
1 TO LIMIT-2.      DO IF LINE1[J]<>LINE2
[J].             THEN NOMATCH := TRUE;. 
   IF NOMATCH.        THEN WRITELN('MISM
ATCH ON FILE ',FILENO).  END;..BEGIN.  (
* PRINT PROMPT MESSAGE *).  WRITE('ENTER
 STRING TO COPY - ');.  (* READ ARRAY FR
OM SCREEN *).  I := 1;.  REPEAT.    READ
(CH);.    LINE1[I] := CH;.    I := I + 1
.  UNTIL CH=CHR(13);.  WRITELN;.  I := I
 - 2;.  (* WRITE ARRAY TO FILE WITH CONS
TANT NAME *).  REWRITE(FILE1,'0:PASCTEST
');.  FOR J := 1 TO I.    DO WRITE(FILE1
,LINE1[J]);.  WRITELN(FILE1);.  (* GET F
ILE NAME FROM OPERATOR *).  REPEAT.    W
RITE('ENTER FILE NAME: ');.    READLN(VA
RFILENAME);.    SIZE:=LENGTH(VARFILENAME
).  UNTIL SIZE>2;.  (* GET DRIVE PREFIX 
IF NOT PRESENT *).  IF VARFILENAME[2]<>'
:'.      THEN BEGIN.             WRITE('
DRIVE? ');.             READLN(CH);.    
         VARFILENAME:=CONCAT(CH,':',VARF
ILENAME).           END;.  (* WRITE ARRA
Y TO FILE WITH VARIABLE NAME *).  REWRIT
E(FILE2,VARFILENAME);.  FOR J := 1 TO I.
    DO WRITE(FILE2,LINE1[J]);.  WRITELN(
FILE2);.  RESET(FILE1,CONSTFILENAME);.  
J := 1;.  REPEAT.    READ(FILE1,CH);.   
 LINE2[J] := CH;.    J := J + 1.  UNTIL 
CH=CHR(13);.  ARRCOMP(J,'1');.  RESET(FI
LE2,VARFILENAME);.  J := 1;.  REPEAT.   
 READ(FILE2,CH);.    LINE2[J] := CH;.   
 J := J + 1.  UNTIL CH=CHR(13);.  ARRCOM
P(J,'2');.  (* WRITE ARRAY TO SCREEN *).
  FOR J := 1 TO I.    DO WRITE(LINE1[J])
;.  WRITELN(' END').END...T
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL