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

KOCH(ORTHO)

FILE INFORMATION

FILENAME(S): KOCH(ORTHO)

FILE TYPE(S): SEQ

FILE SIZE: 2.3K

FIRST SEEN: 2025-11-30 21:28:18

APPEARS ON: 1 disk(s)

FILE HASH

8d7c85f11c2353c5f9680a1b7a92e58b87f0ead86886a6e5440a37e0caa9bfe1

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
VCGN D 64007 KOCH(ORTHO) SEQ DuncanTwain 19 1 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 50 52 4F 47 52 41 4D 0D  20 20 20 20 20 20 20 20  |PROGRAM.        |
00000010: 6B 6F 63 68 A4 6F 72 74  68 6F 3B 0D 43 4F 4E 53  |koch.ortho;.CONS|
00000020: 54 0D 20 20 20 20 20 20  66 6D 61 78 3D 20 31 36  |T.      fmax= 16|
00000030: 3B 0D 20 20 20 20 20 20  20 63 68 69 3D 20 31 3B  |;.       chi= 1;|
00000040: 0D 54 59 50 45 0D 20 20  20 20 20 74 61 62 65 6C  |.TYPE.     tabel|
00000050: 3D 20 41 52 52 41 59 20  5B 31 2E 2E 66 6D 61 78  |= ARRAY [1..fmax|
00000060: 5D 0D 20 20 20 20 20 20  20 20 20 20 20 20 4F 46  |].            OF|
00000070: 20 69 6E 74 65 67 65 72  3B 0D 56 41 52 0D 20 20  | integer;.VAR.  |
00000080: 20 20 20 20 61 6E 73 77  65 72 3A 20 63 68 61 72  |    answer: char|
00000090: 3B 0D 20 20 20 20 20 20  20 20 61 6C 66 61 3A 20  |;.        alfa: |
000000A0: 69 6E 74 65 67 65 72 3B  0D 20 20 20 20 20 20 20  |integer;.       |
000000B0: 6C 2C 78 2C 79 3A 20 69  6E 74 65 67 65 72 3B 0D  |l,x,y: integer;.|
000000C0: 20 20 20 20 20 20 20 20  20 70 68 69 3A 20 74 61  |         phi: ta|
000000D0: 62 65 6C 3B 0D 20 20 20  20 20 20 20 6E 66 2C 6E  |bel;.       nf,n|
000000E0: 67 3A 20 69 6E 74 65 67  65 72 3B 0D 20 20 20 20  |g: integer;.    |
000000F0: 20 20 20 67 72 61 61 64  3A 20 69 6E 74 65 67 65  |   graad: intege|
00000100: 72 3B 0D 20 20 20 20 20  20 20 78 30 2C 79 30 3A  |r;.       x0,y0:|
00000110: 20 69 6E 74 65 67 65 72  3B 0D 20 20 20 20 20 20  | integer;.      |
00000120: 20 20 20 20 20 65 3A 20  41 52 52 41 59 20 5B 30  |     e: ARRAY [0|
00000130: 2E 2E 33 5D 20 4F 46 0D  20 20 20 20 20 20 20 20  |..3] OF.        |
00000140: 20 20 20 20 20 20 52 45  43 4F 52 44 0D 20 20 20  |      RECORD.   |
00000150: 20 20 20 20 20 20 20 20  20 20 20 20 20 78 2C 79  |             x,y|
00000160: 3A 20 69 6E 74 65 67 65  72 3B 0D 20 20 20 20 20  |: integer;.     |
00000170: 20 20 20 20 20 20 20 20  20 45 4E 44 3B 0D 23 61  |         END;.#a|
00000180: 72 74 2E 6C 69 62 0D 50  52 4F 43 45 44 55 52 45  |rt.lib.PROCEDURE|
00000190: 0D 20 20 20 20 20 20 20  20 20 20 70 72 69 6D 69  |.          primi|
000001A0: 74 69 65 76 65 6E 3B 0D  56 41 52 0D 20 20 20 20  |tieven;.VAR.    |
000001B0: 20 20 69 2C 6A 3A 20 69  6E 74 65 67 65 72 3B 0D  |  i,j: integer;.|
000001C0: 42 45 47 49 4E 0D 20 20  65 5B 30 5D 2E 78 3A 3D  |BEGIN.  e[0].x:=|
000001D0: 31 3B 20 65 5B 30 5D 2E  79 3A 3D 30 3B 0D 20 20  |1; e[0].y:=0;.  |
000001E0: 46 4F 52 20 69 3A 3D 31  20 54 4F 20 33 20 44 4F  |FOR i:=1 TO 3 DO|
000001F0: 20 42 45 47 49 4E 0D 20  20 20 20 6A 3A 3D 69 2D  | BEGIN.    j:=i-|
00000200: 31 3B 0D 20 20 20 20 65  5B 69 5D 2E 78 3A 3D 2B  |1;.    e[i].x:=+|
00000210: 65 5B 6A 5D 2E 79 3B 0D  20 20 20 20 65 5B 69 5D  |e[j].y;.    e[i]|
00000220: 2E 79 3A 3D 2D 65 5B 6A  5D 2E 78 3B 0D 20 20 45  |.y:=-e[j].x;.  E|
00000230: 4E 44 0D 45 4E 44 0D 3B  0D 50 52 4F 43 45 44 55  |ND.END.;.PROCEDU|
00000240: 52 45 0D 20 20 20 20 20  20 20 20 20 20 73 65 74  |RE.          set|
00000250: 70 65 6E 20 28 61 2C 62  3A 20 69 6E 74 65 67 65  |pen (a,b: intege|
00000260: 72 29 3B 0D 42 45 47 49  4E 0D 20 20 78 3A 3D 61  |r);.BEGIN.  x:=a|
00000270: 3B 20 79 3A 3D 62 3B 0D  45 4E 44 0D 3B 0D 50 52  |; y:=b;.END.;.PR|
00000280: 4F 43 45 44 55 52 45 0D  20 20 20 20 20 20 20 20  |OCEDURE.        |
00000290: 20 20 64 72 61 77 0D 20  20 20 20 20 20 20 20 20  |  draw.         |
000002A0: 20 28 6C 2C 61 3A 20 69  6E 74 65 67 65 72 29 3B  | (l,a: integer);|
000002B0: 0D 56 41 52 0D 20 20 20  20 20 20 78 31 2C 79 31  |.VAR.      x1,y1|
000002C0: 3A 20 69 6E 74 65 67 65  72 3B 0D 42 45 47 49 4E  |: integer;.BEGIN|
000002D0: 0D 20 20 61 3A 3D 28 61  2B 34 29 20 4D 4F 44 20  |.  a:=(a+4) MOD |
000002E0: 34 3B 0D 20 20 78 31 3A  3D 78 2B 6C 2A 65 5B 61  |4;.  x1:=x+l*e[a|
000002F0: 5D 2E 78 3B 0D 20 20 79  31 3A 3D 79 2B 6C 2A 65  |].x;.  y1:=y+l*e|
00000300: 5B 61 5D 2E 79 3B 0D 20  20 70 6C 6F 74 28 32 2C  |[a].y;.  plot(2,|
00000310: 78 2C 79 2C 78 31 2C 79  31 29 3B 0D 20 20 78 3A  |x,y,x1,y1);.  x:|
00000320: 3D 78 31 3B 0D 20 20 79  3A 3D 79 31 3B 0D 45 4E  |=x1;.  y:=y1;.EN|
00000330: 44 0D 3B 0D 50 52 4F 43  45 44 55 52 45 0D 20 20  |D.;.PROCEDURE.  |
00000340: 20 20 20 20 20 20 20 20  70 61 72 61 6D 65 74 65  |        paramete|
00000350: 72 73 3B 0D 56 41 52 0D  20 20 20 20 20 20 20 20  |rs;.VAR.        |
00000360: 69 2C 68 6F 65 6B 3A 20  69 6E 74 65 67 65 72 3B  |i,hoek: integer;|
00000370: 0D 20 20 20 20 20 20 20  20 20 20 20 20 63 72 3A  |.            cr:|
00000380: 20 63 68 61 72 3B 0D 20  20 50 52 4F 43 45 44 55  | char;.  PROCEDU|
00000390: 52 45 0D 20 20 20 20 20  20 20 20 20 20 20 20 74  |RE.            t|
000003A0: 61 62 3B 0D 20 20 42 45  47 49 4E 0D 20 20 20 20  |ab;.  BEGIN.    |
000003B0: 20 20 20 20 77 72 69 74  65 28 27 20 20 20 20 27  |    write('    '|
000003C0: 29 0D 20 20 45 4E 44 0D  20 20 3B 0D 42 45 47 49  |).  END.  ;.BEGI|
000003D0: 4E 20 28 2A 20 70 61 72  61 6D 65 74 65 72 73 20  |N (* parameters |
000003E0: 2A 29 0D 20 20 63 72 3A  3D 63 68 72 28 31 33 29  |*).  cr:=chr(13)|
000003F0: 3B 0D 20 20 70 61 67 65  3B 20 65 6D 70 74 79 3B  |;.  page; empty;|
00000400: 0D 20 20 77 72 69 74 65  6C 6E 28 27 20 4B 4F 43  |.  writeln(' KOC|
00000410: 48 A0 49 53 4C 45 20 27  2C 63 72 29 3B 0D 20 20  |H.ISLE ',cr);.  |
00000420: 77 72 69 74 65 6C 6E 28  27 20 28 4F 72 74 68 6F  |writeln(' (Ortho|
00000430: 67 6F 6E 61 6C 65 20 62  61 73 69 73 29 27 29 3B  |gonale basis)');|
00000440: 0D 20 20 77 72 69 74 65  6C 6E 28 27 20 20 49 6E  |.  writeln('  In|
00000450: 69 74 69 61 74 6F 72 20  3A 27 29 3B 0D 20 20 74  |itiator :');.  t|
00000460: 61 62 3B 0D 20 20 77 72  69 74 65 28 27 47 72 61  |ab;.  write('Gra|
00000470: 61 64 20 70 6F 6C 79 67  6F 6F 6E 20 27 29 3B 0D  |ad polygoon ');.|
00000480: 20 20 77 72 69 74 65 28  27 20 5B 31 2C 34 5D 20  |  write(' [1,4] |
00000490: 3D 20 27 29 3B 0D 20 20  72 65 61 64 6C 6E 28 67  |= ');.  readln(g|
000004A0: 72 61 61 64 29 3B 0D 20  20 49 46 20 4E 4F 54 20  |raad);.  IF NOT |
000004B0: 28 67 72 61 61 64 20 49  4E 20 5B 31 2C 34 5D 29  |(graad IN [1,4])|
000004C0: 0D 20 20 20 20 20 54 48  45 4E 20 67 72 61 61 64  |.     THEN graad|
000004D0: 3A 3D 31 3B 0D 20 20 74  61 62 3B 20 77 72 69 74  |:=1;.  tab; writ|
000004E0: 65 28 27 4C 65 6E 67 74  65 20 7A 79 64 65 20 3D  |e('Lengte zyde =|
000004F0: 20 27 29 3B 0D 20 20 72  65 61 64 6C 6E 28 6C 29  | ');.  readln(l)|
00000500: 3B 0D 20 20 77 72 69 74  65 6C 6E 28 63 72 2C 27  |;.  writeln(cr,'|
00000510: 20 20 47 65 6E 65 72 61  74 6F 72 20 3A 27 29 3B  |  Generator :');|
00000520: 0D 20 20 74 61 62 3B 0D  20 20 77 72 69 74 65 28  |.  tab;.  write(|
00000530: 27 41 61 6E 74 61 6C 20  67 65 6E 65 72 61 74 69  |'Aantal generati|
00000540: 65 73 20 3D 20 27 29 3B  0D 20 20 72 65 61 64 6C  |es = ');.  readl|
00000550: 6E 28 6E 67 29 3B 0D 20  20 74 61 62 3B 0D 20 20  |n(ng);.  tab;.  |
00000560: 77 72 69 74 65 28 27 41  61 6E 74 61 6C 20 66 72  |write('Aantal fr|
00000570: 61 63 74 75 72 65 73 20  20 3D 20 27 29 3B 0D 20  |actures  = ');. |
00000580: 20 72 65 61 64 6C 6E 28  6E 66 29 3B 0D 20 20 49  | readln(nf);.  I|
00000590: 46 20 6E 66 3E 66 6D 61  78 20 54 48 45 4E A0 6E  |F nf>fmax THEN.n|
000005A0: 66 3A 3D 66 6D 61 78 3B  0D 20 20 77 72 69 74 65  |f:=fmax;.  write|
000005B0: 28 63 72 29 3B 20 74 61  62 3B 0D 20 20 77 72 69  |(cr); tab;.  wri|
000005C0: 74 65 28 27 48 6F 65 6B  65 6E 20 69 6E 20 6E 2A  |te('Hoeken in n*|
000005D0: 39 30 20 67 72 61 64 65  6E 27 29 3B 0D 20 20 77  |90 graden');.  w|
000005E0: 72 69 74 65 28 63 72 29  3B 0D 20 77 72 69 74 65  |rite(cr);. write|
000005F0: 28 27 20 44 65 20 72 65  65 6B 73 20 3D 20 27 29  |(' De reeks = ')|
00000600: 3B 0D 20 20 46 4F 52 20  69 3A 3D 31 20 54 4F 20  |;.  FOR i:=1 TO |
00000610: 6E 66 20 44 4F 20 42 45  47 49 4E 0D 20 20 20 20  |nf DO BEGIN.    |
00000620: 72 65 61 64 28 68 6F 65  6B 29 3B 0D 20 20 20 20  |read(hoek);.    |
00000630: 70 68 69 5B 69 5D 3A 3D  28 68 6F 65 6B 2B 34 29  |phi[i]:=(hoek+4)|
00000640: 20 4D 4F 44 20 34 3B 0D  20 20 45 4E 44 3B 0D 20  | MOD 4;.  END;. |
00000650: 20 72 65 61 64 6C 6E 3B  0D 20 20 77 72 69 74 65  | readln;.  write|
00000660: 28 27 53 74 61 72 74 20  70 6F 73 69 74 69 65 20  |('Start positie |
00000670: 5B 78 20 79 5D 20 3D 20  27 29 3B 0D 20 20 72 65  |[x y] = ');.  re|
00000680: 61 64 6C 6E 28 78 30 2C  79 30 29 3B 0D 45 4E 44  |adln(x0,y0);.END|
00000690: 0D 3B 0D 50 52 4F 43 45  44 55 52 45 0D 20 20 20  |.;.PROCEDURE.   |
000006A0: 20 20 20 20 20 20 20 69  6E 69 74 69 61 74 6F 72  |       initiator|
000006B0: 3B 0D 56 41 52 0D 20 20  20 20 20 20 20 20 20 20  |;.VAR.          |
000006C0: 20 20 69 3A 20 69 6E 74  65 67 65 72 3B 0D 20 20  |  i: integer;.  |
000006D0: 50 52 4F 43 45 44 55 52  45 0D 20 20 20 20 20 20  |PROCEDURE.      |
000006E0: 20 20 20 20 20 20 67 65  6E 65 72 61 74 65 0D 20  |      generate. |
000006F0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 28  |               (|
00000700: 67 2C 61 6C 66 61 3A 20  69 6E 74 65 67 65 72 29  |g,alfa: integer)|
00000710: 3B 0D 20 20 56 41 52 0D  20 20 20 20 20 20 6A 2C  |;.  VAR.      j,|
00000720: 6B 3A 20 69 6E 74 65 67  65 72 3B 0D 20 20 42 45  |k: integer;.  BE|
00000730: 47 49 4E 0D 20 20 20 20  49 46 20 28 67 3D 30 29  |GIN.    IF (g=0)|
00000740: 0D 20 20 20 20 20 20 20  54 48 45 4E 20 64 72 61  |.       THEN dra|
00000750: 77 28 6C 2C 61 6C 66 61  29 0D 20 20 20 20 20 20  |w(l,alfa).      |
00000760: 20 45 4C 53 45 20 42 45  47 49 4E 0D 20 20 20 20  | ELSE BEGIN.    |
00000770: 20 20 20 20 20 46 4F 52  20 6A 3A 3D 31 20 54 4F  |     FOR j:=1 TO|
00000780: 20 6E 66 20 44 4F 20 42  45 47 49 4E 0D 20 20 20  | nf DO BEGIN.   |
00000790: 20 20 20 20 20 20 20 20  61 6C 66 61 3A 3D 61 6C  |        alfa:=al|
000007A0: 66 61 2B 70 68 69 5B 6A  5D 3B 0D 20 20 20 20 20  |fa+phi[j];.     |
000007B0: 20 20 20 20 20 20 67 65  6E 65 72 61 74 65 28 67  |      generate(g|
000007C0: 2D 31 2C 61 6C 66 61 29  3B 0D 20 20 20 20 20 20  |-1,alfa);.      |
000007D0: 20 20 20 45 4E 44 0D 20  20 20 20 20 20 20 45 4E  |   END.       EN|
000007E0: 44 0D 20 20 45 4E 44 0D  20 20 3B 0D 42 45 47 49  |D.  END.  ;.BEGI|
000007F0: 4E 20 28 2A 20 69 6E 69  74 69 61 74 6F 72 20 2A  |N (* initiator *|
00000800: 29 0D 20 20 61 6C 66 61  3A 3D 30 3B 0D 20 20 46  |).  alfa:=0;.  F|
00000810: 4F 52 20 69 3A 3D 31 20  54 4F 20 67 72 61 61 64  |OR i:=1 TO graad|
00000820: 20 44 4F 20 42 45 47 49  4E 0D 20 20 20 20 67 65  | DO BEGIN.    ge|
00000830: 6E 65 72 61 74 65 28 6E  67 2C 61 6C 66 61 29 3B  |nerate(ng,alfa);|
00000840: 0D 20 20 20 20 61 6C 66  61 3A 3D 61 6C 66 61 2B  |.    alfa:=alfa+|
00000850: 63 68 69 3B 0D 20 20 45  4E 44 0D 45 4E 44 0D 3B  |chi;.  END.END.;|
00000860: 0D 42 45 47 49 4E 20 28  2A 20 6B 6F 63 68 20 69  |.BEGIN (* koch i|
00000870: 73 6C 65 20 2A 29 0D 20  20 70 72 69 6D 69 74 69  |sle *).  primiti|
00000880: 65 76 65 6E 3B 0D 20 20  52 45 50 45 41 54 0D 20  |even;.  REPEAT. |
00000890: 20 20 20 70 61 72 61 6D  65 74 65 72 73 3B 0D 20  |   parameters;. |
000008A0: 20 20 20 67 72 61 66 69  6E 69 74 28 30 2C 32 29  |   grafinit(0,2)|
000008B0: 3B 0D 20 20 20 20 73 65  74 70 65 6E 28 78 30 2C  |;.    setpen(x0,|
000008C0: 79 30 29 3B 0D 20 20 20  20 69 6E 6B 28 37 29 3B  |y0);.    ink(7);|
000008D0: 0D 20 20 20 20 69 6E 69  74 69 61 74 6F 72 3B 0D  |.    initiator;.|
000008E0: 20 20 20 20 49 46 20 61  66 64 72 75 6B 20 54 48  |    IF afdruk TH|
000008F0: 45 4E 20 42 45 47 49 4E  0D 20 20 20 20 20 20 20  |EN BEGIN.       |
00000900: 6D 6F 76 65 3B 20 68 61  72 64 63 6F 70 79 0D 20  |move; hardcopy. |
00000910: 20 20 20 45 4E 44 0D 20  20 55 4E 54 49 4C 20 6B  |   END.  UNTIL k|
00000920: 6C 61 61 72 6F 76 65 72  0D 45 4E 44 2E 0D 34     |laarover.END..4 |
PROGRAM.        KOCH.ORTHO;.CONST.      
FMAX= 16;.       CHI= 1;.TYPE.     TABEL
= ARRAY [1..FMAX].            OF INTEGER
;.VAR.      ANSWER: CHAR;.        ALFA: 
INTEGER;.       L,X,Y: INTEGER;.        
 PHI: TABEL;.       NF,NG: INTEGER;.    
   GRAAD: INTEGER;.       X0,Y0: INTEGER
;.           E: ARRAY [0..3] OF.        
      RECORD.                X,Y: INTEGE
R;.              END;.#ART.LIB.PROCEDURE
.          PRIMITIEVEN;.VAR.      I,J: I
NTEGER;.BEGIN.  E[0].X:=1; E[0].Y:=0;.  
FOR I:=1 TO 3 DO BEGIN.    J:=I-1;.    E
[I].X:=+E[J].Y;.    E[I].Y:=-E[J].X;.  E
ND.END.;.PROCEDURE.          SETPEN (A,B
: INTEGER);.BEGIN.  X:=A; Y:=B;.END.;.PR
OCEDURE.          DRAW.          (L,A: I
NTEGER);.VAR.      X1,Y1: INTEGER;.BEGIN
.  A:=(A+4) MOD 4;.  X1:=X+L*E[A].X;.  Y
1:=Y+L*E[A].Y;.  PLOT(2,X,Y,X1,Y1);.  X:
=X1;.  Y:=Y1;.END.;.PROCEDURE.          
PARAMETERS;.VAR.        I,HOEK: INTEGER;
.            CR: CHAR;.  PROCEDURE.     
       TAB;.  BEGIN.        WRITE('    '
).  END.  ;.BEGIN (* PARAMETERS *).  CR:
=CHR(13);.  PAGE; EMPTY;.  WRITELN(' KOC
H ISLE ',CR);.  WRITELN(' (ORTHOGONALE B
ASIS)');.  WRITELN('  INITIATOR :');.  T
AB;.  WRITE('GRAAD POLYGOON ');.  WRITE(
' [1,4] = ');.  READLN(GRAAD);.  IF NOT 
(GRAAD IN [1,4]).     THEN GRAAD:=1;.  T
AB; WRITE('LENGTE ZYDE = ');.  READLN(L)
;.  WRITELN(CR,'  GENERATOR :');.  TAB;.
  WRITE('AANTAL GENERATIES = ');.  READL
N(NG);.  TAB;.  WRITE('AANTAL FRACTURES 
 = ');.  READLN(NF);.  IF NF>FMAX THEN N
F:=FMAX;.  WRITE(CR); TAB;.  WRITE('HOEK
EN IN N*90 GRADEN');.  WRITE(CR);. WRITE
(' DE REEKS = ');.  FOR I:=1 TO NF DO BE
GIN.    READ(HOEK);.    PHI[I]:=(HOEK+4)
 MOD 4;.  END;.  READLN;.  WRITE('START 
POSITIE [X Y] = ');.  READLN(X0,Y0);.END
.;.PROCEDURE.          INITIATOR;.VAR.  
          I: INTEGER;.  PROCEDURE.      
      GENERATE.                (G,ALFA: 
INTEGER);.  VAR.      J,K: INTEGER;.  BE
GIN.    IF (G=0).       THEN DRAW(L,ALFA
).       ELSE BEGIN.         FOR J:=1 TO
 NF DO BEGIN.           ALFA:=ALFA+PHI[J
];.           GENERATE(G-1,ALFA);.      
   END.       END.  END.  ;.BEGIN (* INI
TIATOR *).  ALFA:=0;.  FOR I:=1 TO GRAAD
 DO BEGIN.    GENERATE(NG,ALFA);.    ALF
A:=ALFA+CHI;.  END.END.;.BEGIN (* KOCH I
SLE *).  PRIMITIEVEN;.  REPEAT.    PARAM
ETERS;.    GRAFINIT(0,2);.    SETPEN(X0,
Y0);.    INK(7);.    INITIATOR;.    IF A
FDRUK THEN BEGIN.       MOVE; HARDCOPY. 
   END.  UNTIL KLAAROVER.END..4
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL