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

CANTOR

FILE INFORMATION

FILENAME(S): CANTOR

FILE TYPE(S): SEQ

FILE SIZE: 1.7K

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

APPEARS ON: 1 disk(s)

FILE HASH

a6999961b2e7f24c979fde364f58258dd80b48a2ff51303c493389cd60078708

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
VCGN D 64007 CANTOR SEQ DuncanTwain 5 3 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 50 52 4F 47 52 41 4D 0D  20 20 20 20 20 20 20 20  |PROGRAM.        |
00000010: 63 61 6E 74 6F 72 3B 0D  43 4F 4E 53 54 0D 20 20  |cantor;.CONST.  |
00000020: 20 20 20 20 66 6D 61 78  3D 20 31 36 3B 0D 20 20  |    fmax= 16;.  |
00000030: 20 20 20 20 67 6D 61 78  3D 20 38 3B 0D 54 59 50  |    gmax= 8;.TYP|
00000040: 45 0D 20 20 20 20 20 74  61 62 65 6C 3D 20 41 52  |E.     tabel= AR|
00000050: 52 41 59 20 5B 31 2E 2E  66 6D 61 78 5D 20 4F 46  |RAY [1..fmax] OF|
00000060: 0D 20 20 20 20 20 20 20  20 20 20 20 20 52 45 43  |.            REC|
00000070: 4F 52 44 0D 20 20 20 20  20 20 20 20 20 20 20 20  |ORD.            |
00000080: 20 20 64 72 61 61 69 3A  20 69 6E 74 65 67 65 72  |  draai: integer|
00000090: 3B 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |;.              |
000000A0: 20 20 70 65 6E 3A 20 62  6F 6F 6C 65 61 6E 3B 0D  |  pen: boolean;.|
000000B0: 20 20 20 20 20 20 20 20  20 20 20 20 45 4E 44 3B  |            END;|
000000C0: 0D 20 20 20 20 20 20 6C  79 73 74 3D 20 41 52 52  |.      lyst= ARR|
000000D0: 41 59 20 5B 31 2E 2E 67  6D 61 78 5D 0D 20 20 20  |AY [1..gmax].   |
000000E0: 20 20 20 20 20 20 20 20  20 4F 46 A0 69 6E 74 65  |         OF.inte|
000000F0: 67 65 72 3B 0D 56 41 52  0D 20 20 20 20 20 20 61  |ger;.VAR.      a|
00000100: 6E 73 77 65 72 3A 20 63  68 61 72 3B 0D 20 20 20  |nswer: char;.   |
00000110: 20 20 20 20 20 61 6C 66  61 3A 20 69 6E 74 65 67  |     alfa: integ|
00000120: 65 72 3B 0D 20 20 20 20  20 20 20 6C 2C 78 2C 79  |er;.       l,x,y|
00000130: 3A 20 69 6E 74 65 67 65  72 3B 0D 20 20 20 20 20  |: integer;.     |
00000140: 6E 67 2C 6F 72 64 65 3A  20 69 6E 74 65 67 65 72  |ng,orde: integer|
00000150: 3B 0D 20 20 20 20 20 20  20 78 30 2C 79 30 3A 20  |;.       x0,y0: |
00000160: 69 6E 74 65 67 65 72 3B  0D 20 20 20 20 20 20 20  |integer;.       |
00000170: 72 65 65 6B 73 3A 20 41  52 52 41 59 20 5B 31 2E  |reeks: ARRAY [1.|
00000180: 2E 67 6D 61 78 5D 0D 20  20 20 20 20 20 20 20 20  |.gmax].         |
00000190: 20 20 20 20 20 4F 46 20  74 61 62 65 6C 3B 0D 20  |     OF tabel;. |
000001A0: 20 20 6E 66 2C 67 65 6E  A4 72 79 3A 20 6C 79 73  |  nf,gen.ry: lys|
000001B0: 74 3B 0D 20 20 20 20 20  20 20 70 6F 77 65 72 3A  |t;.       power:|
000001C0: 20 6C 79 73 74 3B 0D 20  20 20 20 20 20 20 20 20  | lyst;.         |
000001D0: 20 20 65 3A 20 41 52 52  41 59 20 5B 30 2E 2E 33  |  e: ARRAY [0..3|
000001E0: 5D 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |].              |
000001F0: 4F 46 20 52 45 43 4F 52  44 0D 20 20 20 20 20 20  |OF RECORD.      |
00000200: 20 20 20 20 20 20 20 20  20 20 78 2C 79 3A 20 69  |          x,y: i|
00000210: 6E 74 65 67 65 72 3B 0D  20 20 20 20 20 20 20 20  |nteger;.        |
00000220: 20 20 20 20 20 20 45 4E  44 3B 0D 23 61 72 74 2E  |      END;.#art.|
00000230: 6C 69 62 0D 50 52 4F 43  45 44 55 52 45 0D 20 20  |lib.PROCEDURE.  |
00000240: 20 20 20 20 20 20 20 20  70 72 69 6D 69 74 69 65  |        primitie|
00000250: 76 65 6E 3B 0D 56 41 52  0D 20 20 20 20 20 20 69  |ven;.VAR.      i|
00000260: 2C 6A 3A 20 69 6E 74 65  67 65 72 3B 0D 42 45 47  |,j: integer;.BEG|
00000270: 49 4E 0D 20 20 65 5B 30  5D 2E 78 3A 3D 31 3B 20  |IN.  e[0].x:=1; |
00000280: 65 5B 30 5D 2E 79 3A 3D  30 3B 0D 20 20 46 4F 52  |e[0].y:=0;.  FOR|
00000290: 20 69 3A 3D 31 20 54 4F  20 33 20 44 4F 20 42 45  | i:=1 TO 3 DO BE|
000002A0: 47 49 4E 0D 20 20 20 20  6A 3A 3D 69 2D 31 3B 0D  |GIN.    j:=i-1;.|
000002B0: 20 20 20 20 65 5B 69 5D  2E 78 3A 3D 2B 65 5B 6A  |    e[i].x:=+e[j|
000002C0: 5D 2E 79 3B 0D 20 20 20  20 65 5B 69 5D 2E 79 3A  |].y;.    e[i].y:|
000002D0: 3D 2D 65 5B 6A 5D 2E 78  3B 0D 20 20 45 4E 44 0D  |=-e[j].x;.  END.|
000002E0: 45 4E 44 0D 3B 0D 50 52  4F 43 45 44 55 52 45 0D  |END.;.PROCEDURE.|
000002F0: 20 20 20 20 20 20 20 20  20 20 73 65 74 70 65 6E  |          setpen|
00000300: 20 28 61 2C 62 3A 20 69  6E 74 65 67 65 72 29 3B  | (a,b: integer);|
00000310: 0D 42 45 47 49 4E 0D 20  20 78 3A 3D 61 3B 20 79  |.BEGIN.  x:=a; y|
00000320: 3A 3D 62 3B 0D 45 4E 44  0D 3B 0D 50 52 4F 43 45  |:=b;.END.;.PROCE|
00000330: 44 55 52 45 0D 20 20 20  20 20 20 20 20 20 20 64  |DURE.          d|
00000340: 72 61 77 0D 20 20 20 20  20 20 20 20 20 20 28 6C  |raw.          (l|
00000350: 2C 61 3A 20 69 6E 74 65  67 65 72 29 3B 0D 56 41  |,a: integer);.VA|
00000360: 52 0D 20 20 20 20 20 20  78 31 2C 79 31 3A 20 69  |R.      x1,y1: i|
00000370: 6E 74 65 67 65 72 3B 0D  42 45 47 49 4E 0D 20 20  |nteger;.BEGIN.  |
00000380: 61 3A 3D 28 61 2B 34 29  20 4D 4F 44 20 34 3B 0D  |a:=(a+4) MOD 4;.|
00000390: 20 20 78 31 3A 3D 78 2B  6C 2A 65 5B 61 5D 2E 78  |  x1:=x+l*e[a].x|
000003A0: 3B 0D 20 20 79 31 3A 3D  79 2B 6C 2A 65 5B 61 5D  |;.  y1:=y+l*e[a]|
000003B0: 2E 79 3B 0D 20 20 70 6C  6F 74 28 32 2C 78 2C 79  |.y;.  plot(2,x,y|
000003C0: 2C 78 31 2C 79 31 29 3B  0D 20 20 78 3A 3D 78 31  |,x1,y1);.  x:=x1|
000003D0: 3B 0D 20 20 79 3A 3D 79  31 3B 0D 45 4E 44 0D 3B  |;.  y:=y1;.END.;|
000003E0: 0D 50 52 4F 43 45 44 55  52 45 0D 20 20 20 20 20  |.PROCEDURE.     |
000003F0: 20 20 20 20 20 6D 6F 76  65 74 6F 28 6C 2C 6B 3A  |     moveto(l,k:|
00000400: 20 69 6E 74 65 67 65 72  29 3B 0D 42 45 47 49 4E  | integer);.BEGIN|
00000410: 0D 20 20 78 3A 3D 78 2B  6C 2A 65 5B 6B 5D 2E 78  |.  x:=x+l*e[k].x|
00000420: 3B 0D 20 20 79 3A 3D 79  2B 6C 2A 65 5B 6B 5D 2E  |;.  y:=y+l*e[k].|
00000430: 79 3B 0D 45 4E 44 0D 3B  0D 23 70 61 72 61 6D 65  |y;.END.;.#parame|
00000440: 74 65 72 0D 50 52 4F 43  45 44 55 52 45 0D 20 20  |ter.PROCEDURE.  |
00000450: 20 20 20 20 20 20 67 65  6E 65 72 61 74 65 28 67  |      generate(g|
00000460: 2C 61 6C 66 61 3A 20 69  6E 74 65 67 65 72 29 3B  |,alfa: integer);|
00000470: 0D 56 41 52 0D 20 20 20  20 20 20 20 20 66 2C 6B  |.VAR.        f,k|
00000480: 2C 68 6F 65 6B 3A 20 69  6E 74 65 67 65 72 3B 0D  |,hoek: integer;.|
00000490: 20 20 20 20 20 20 20 20  20 20 73 74 61 74 75 73  |          status|
000004A0: 3A 20 62 6F 6F 6C 65 61  6E 3B 0D 42 45 47 49 4E  |: boolean;.BEGIN|
000004B0: 0D 20 20 49 46 20 28 67  3D 6F 72 64 65 2B 31 29  |.  IF (g=orde+1)|
000004C0: 0D 20 20 20 54 48 45 4E  20 64 72 61 77 28 6C 2C  |.   THEN draw(l,|
000004D0: 61 6C 66 61 29 0D 20 20  20 45 4C 53 45 20 42 45  |alfa).   ELSE BE|
000004E0: 47 49 4E 0D 20 20 20 20  6B 3A 3D 67 65 6E A4 72  |GIN.    k:=gen.r|
000004F0: 79 5B 67 5D 3B 0D 20 20  20 20 20 49 46 20 28 6B  |y[g];.     IF (k|
00000500: 3D 30 29 20 54 48 45 4E  0D 20 20 20 20 20 20 20  |=0) THEN.       |
00000510: 20 6B 3A 3D 32 2B 72 61  6E 64 6F 6D 20 4D 4F 44  | k:=2+random MOD|
00000520: 20 28 6E 67 2D 31 29 3B  0D 20 20 20 20 46 4F 52  | (ng-1);.    FOR|
00000530: 20 66 3A 3D 31 20 54 4F  20 6E 66 5B 6B 5D 20 44  | f:=1 TO nf[k] D|
00000540: 4F 20 42 45 47 49 4E 0D  20 20 20 20 20 68 6F 65  |O BEGIN.     hoe|
00000550: 6B 3A 3D 72 65 65 6B 73  5B 6B 5D 5B 66 5D 2E 64  |k:=reeks[k][f].d|
00000560: 72 61 61 69 3B 0D 20 20  20 20 20 73 74 61 74 75  |raai;.     statu|
00000570: 73 3A 3D 72 65 65 6B 73  5B 6B 5D 5B 66 5D 2E 70  |s:=reeks[k][f].p|
00000580: 65 6E 3B 0D 20 20 20 20  20 61 6C 66 61 3A 3D 28  |en;.     alfa:=(|
00000590: 61 6C 66 61 2B 68 6F 65  6B 29 20 4D 4F 44 20 34  |alfa+hoek) MOD 4|
000005A0: 3B 0D 20 20 20 20 20 49  46 20 73 74 61 74 75 73  |;.     IF status|
000005B0: 0D 20 20 20 20 20 20 54  48 45 4E 20 67 65 6E 65  |.      THEN gene|
000005C0: 72 61 74 65 28 67 2B 31  2C 61 6C 66 61 29 0D 20  |rate(g+1,alfa). |
000005D0: 20 20 20 20 20 45 4C 53  45 20 6D 6F 76 65 74 6F  |     ELSE moveto|
000005E0: 28 70 6F 77 65 72 5B 67  5D 2C 61 6C 66 61 29 0D  |(power[g],alfa).|
000005F0: 20 20 20 20 45 4E 44 0D  20 20 20 45 4E 44 0D 45  |    END.   END.E|
00000600: 4E 44 0D 3B 0D 42 45 47  49 4E 20 28 2A 20 69 73  |ND.;.BEGIN (* is|
00000610: 6C 65 73 20 2A 29 0D 20  20 70 72 69 6D 69 74 69  |les *).  primiti|
00000620: 65 76 65 6E 3B 0D 20 20  52 45 50 45 41 54 0D 20  |even;.  REPEAT. |
00000630: 20 20 20 70 61 72 61 6D  65 74 65 72 73 3B 0D 20  |   parameters;. |
00000640: 20 20 20 67 72 61 66 69  6E 69 74 28 30 2C 32 29  |   grafinit(0,2)|
00000650: 3B 0D 20 20 20 20 73 65  74 70 65 6E 28 78 30 2C  |;.    setpen(x0,|
00000660: 79 30 29 3B 0D 20 20 20  20 69 6E 6B 28 37 29 3B  |y0);.    ink(7);|
00000670: 0D 20 20 20 20 67 65 6E  65 72 61 74 65 28 31 2C  |.    generate(1,|
00000680: 30 29 3B 0D 20 20 20 20  49 46 20 61 66 64 72 75  |0);.    IF afdru|
00000690: 6B 20 54 48 45 4E 20 42  45 47 49 4E 0D 20 20 20  |k THEN BEGIN.   |
000006A0: 20 20 20 20 6D 6F 76 65  3B 20 68 61 72 64 63 6F  |    move; hardco|
000006B0: 70 79 0D 20 20 20 20 45  4E 44 0D 20 20 55 4E 54  |py.    END.  UNT|
000006C0: 49 4C 20 6B 6C 61 61 72  6F 76 65 72 0D 45 4E 44  |IL klaarover.END|
000006D0: 2E 0D AA                                          |...             |
PROGRAM.        CANTOR;.CONST.      FMAX
= 16;.      GMAX= 8;.TYPE.     TABEL= AR
RAY [1..FMAX] OF.            RECORD.    
          DRAAI: INTEGER;.              
  PEN: BOOLEAN;.            END;.      L
YST= ARRAY [1..GMAX].            OF INTE
GER;.VAR.      ANSWER: CHAR;.        ALF
A: INTEGER;.       L,X,Y: INTEGER;.     
NG,ORDE: INTEGER;.       X0,Y0: INTEGER;
.       REEKS: ARRAY [1..GMAX].         
     OF TABEL;.   NF,GEN.RY: LYST;.     
  POWER: LYST;.           E: ARRAY [0..3
].              OF RECORD.              
  X,Y: INTEGER;.              END;.#ART.
LIB.PROCEDURE.          PRIMITIEVEN;.VAR
.      I,J: INTEGER;.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;.  END.END.;.PROCEDURE.        
  SETPEN (A,B: INTEGER);.BEGIN.  X:=A; Y
:=B;.END.;.PROCEDURE.          DRAW.    
      (L,A: INTEGER);.VAR.      X1,Y1: I
NTEGER;.BEGIN.  A:=(A+4) MOD 4;.  X1:=X+
L*E[A].X;.  Y1:=Y+L*E[A].Y;.  PLOT(2,X,Y
,X1,Y1);.  X:=X1;.  Y:=Y1;.END.;.PROCEDU
RE.          MOVETO(L,K: INTEGER);.BEGIN
.  X:=X+L*E[K].X;.  Y:=Y+L*E[K].Y;.END.;
.#PARAMETER.PROCEDURE.        GENERATE(G
,ALFA: INTEGER);.VAR.        F,K,HOEK: I
NTEGER;.          STATUS: BOOLEAN;.BEGIN
.  IF (G=ORDE+1).   THEN DRAW(L,ALFA).  
 ELSE BEGIN.    K:=GEN.RY[G];.     IF (K
=0) THEN.        K:=2+RANDOM MOD (NG-1);
.    FOR F:=1 TO NF[K] DO BEGIN.     HOE
K:=REEKS[K][F].DRAAI;.     STATUS:=REEKS
[K][F].PEN;.     ALFA:=(ALFA+HOEK) MOD 4
;.     IF STATUS.      THEN GENERATE(G+1
,ALFA).      ELSE MOVETO(POWER[G],ALFA).
    END.   END.END.;.BEGIN (* ISLES *). 
 PRIMITIEVEN;.  REPEAT.    PARAMETERS;. 
   GRAFINIT(0,2);.    SETPEN(X0,Y0);.   
 INK(7);.    GENERATE(1,0);.    IF AFDRU
K THEN BEGIN.       MOVE; HARDCOPY.    E
ND.  UNTIL KLAAROVER.END...
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL