Home » Archimedes archive » Acorn User » AU 1997-Xmas B.adf » Regulars » StarInfo/vanMourik/FRACTAL4

StarInfo/vanMourik/FRACTAL4

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1997-Xmas B.adf » Regulars
Filename: StarInfo/vanMourik/FRACTAL4
Read OK:
File size: 0425 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >FRACTAL4
   20REM JEAN VAN MOURIK MILLCOTTAGE DERWYDD AMMANFORD DYFED SA183LQ  UK. 1996
   30REM ROUTINE FROM R. BAGULA.
   40PROCMODE:OFF:FOR X=0TO15:READ R,G,B:COLOUR X,R,G,B:NEXT
   50INPUT"CAN BE FRACTIONAL  (1.4 < S < 7)  S=";S
   55REM D DETEMINES THE SIZE OF THE AREA OF THE FRACTAL 0,0 IS ALWAYS AT THE SCREEN CENTRE.
   60D=2:E=D*1.25:K=D/128:L=E/160:C%=4:IF MODE=20 C%=2:K=D/256:L=E/320
   70IFS<1.4 OR S>7 S=1.618
   80PRINTS
   90 
  100REM MAIN LOOP
  110X%=640:FORI=0TO E STEPL:Y%=0
  120FORJ=-D TOD STEPK:F=J:G=I:R=SQR(F*F+G*G):IF R<.0001 NEXT
  130FOR K%=0TO99:IFR=0 W=0 ELSE W=ACS(F/R)*SGNG
  135IF G=0 W=ACS(F/R)
  140T=R^S:U=S*W:F=COSU*(T+1/T)-COSW/R+J-F:G=SINU*(T-1/T)+SINW/R+I-G:R=SQR(F*F+G*G):IFR<9 NEXT:Y%+=C%:NEXT:X%+=C%:NEXT:GOTO160
  150GCOL K%MOD15+1:POINT X%,Y%:POINT 1280-X%,Y%:Y%+=C%:NEXTJ:X%+=C%:NEXT
  170END
  180 
  190REM SUITABLE MODE DETECTION ROUTINE.
  200DEFPROCMODE LOCAL C%,F%
  210SYS "OS_CheckModeValid",20 TO ;F%
  220C%=(F%AND%0010)>>1
  230IF NOT (C%=1) MODE 20 ELSE MODE 9
  240OFF:ENDPROC
  250 
  260DATA 0,0,0,192,0,240,144,48,240,96,96,240,48,144,240,0,192,240,0,240,192,48,240,144,96,240,96,144,240,48,192,240,0,240,192,0,240,144,48,240,96,96,240,48,144,240,0,192  REM R,G,B VALUES TO DEFINE THE PALETTE

� >FRACTAL4
K� JEAN VAN MOURIK MILLCOTTAGE DERWYDD AMMANFORD DYFED SA183LQ  UK. 1996
� ROUTINE FROM R. BAGULA.
((�MODE:�:� X=0�15:� R,G,B:� X,R,G,B:�
2-�"CAN BE FRACTIONAL  (1.4 < S < 7)  S=";S
7Y� D DETEMINES THE SIZE OF THE AREA OF THE FRACTAL 0,0 IS ALWAYS AT THE SCREEN CENTRE.
<AD=2:E=D*1.25:K=D/128:L=E/160:C%=4:� �=20 C%=2:K=D/256:L=E/320
F�S<1.4 � S>7 S=1.618
P�S
Z 
d� MAIN LOOP
nX%=640:�I=0� E �L:Y%=0
x0�J=-D �D �K:F=J:G=I:R=�(F*F+G*G):� R<.0001 �
�$� K%=0�99:�R=0 W=0 � W=�(F/R)*�G
�� G=0 W=�(F/R)
�gT=R^S:U=S*W:F=�U*(T+1/T)-�W/R+J-F:G=�U*(T-1/T)+�W/R+I-G:R=�(F*F+G*G):�R<9 �:Y%+=C%:�:X%+=C%:�:�t`@
�7� K%�15+1:Ȓ X%,Y%:Ȓ 1280-X%,Y%:Y%+=C%:�J:X%+=C%:�
��
� 
�&� SUITABLE MODE DETECTION ROUTINE.
���MODE � C%,F%
�#ș "OS_CheckModeValid",20 � ;F%
�C%=(F%�%0010)>>1
�� � (C%=1) � 20 � � 9
��:�
� 
�� 0,0,0,192,0,240,144,48,240,96,96,240,48,144,240,0,192,240,0,240,192,48,240,144,96,240,96,144,240,48,192,240,0,240,192,0,240,144,48,240,96,96,240,48,144,240,0,192  REM R,G,B VALUES TO DEFINE THE PALETTE
�
00000000  0d 00 0a 0f f4 20 3e 46  52 41 43 54 41 4c 34 0d  |..... >FRACTAL4.|
00000010  00 14 4b f4 20 4a 45 41  4e 20 56 41 4e 20 4d 4f  |..K. JEAN VAN MO|
00000020  55 52 49 4b 20 4d 49 4c  4c 43 4f 54 54 41 47 45  |URIK MILLCOTTAGE|
00000030  20 44 45 52 57 59 44 44  20 41 4d 4d 41 4e 46 4f  | DERWYDD AMMANFO|
00000040  52 44 20 44 59 46 45 44  20 53 41 31 38 33 4c 51  |RD DYFED SA183LQ|
00000050  20 20 55 4b 2e 20 31 39  39 36 0d 00 1e 1d f4 20  |  UK. 1996..... |
00000060  52 4f 55 54 49 4e 45 20  46 52 4f 4d 20 52 2e 20  |ROUTINE FROM R. |
00000070  42 41 47 55 4c 41 2e 0d  00 28 28 f2 4d 4f 44 45  |BAGULA...((.MODE|
00000080  3a 87 3a e3 20 58 3d 30  b8 31 35 3a f3 20 52 2c  |:.:. X=0.15:. R,|
00000090  47 2c 42 3a fb 20 58 2c  52 2c 47 2c 42 3a ed 0d  |G,B:. X,R,G,B:..|
000000a0  00 32 2d e8 22 43 41 4e  20 42 45 20 46 52 41 43  |.2-."CAN BE FRAC|
000000b0  54 49 4f 4e 41 4c 20 20  28 31 2e 34 20 3c 20 53  |TIONAL  (1.4 < S|
000000c0  20 3c 20 37 29 20 20 53  3d 22 3b 53 0d 00 37 59  | < 7)  S=";S..7Y|
000000d0  f4 20 44 20 44 45 54 45  4d 49 4e 45 53 20 54 48  |. D DETEMINES TH|
000000e0  45 20 53 49 5a 45 20 4f  46 20 54 48 45 20 41 52  |E SIZE OF THE AR|
000000f0  45 41 20 4f 46 20 54 48  45 20 46 52 41 43 54 41  |EA OF THE FRACTA|
00000100  4c 20 30 2c 30 20 49 53  20 41 4c 57 41 59 53 20  |L 0,0 IS ALWAYS |
00000110  41 54 20 54 48 45 20 53  43 52 45 45 4e 20 43 45  |AT THE SCREEN CE|
00000120  4e 54 52 45 2e 0d 00 3c  41 44 3d 32 3a 45 3d 44  |NTRE...<AD=2:E=D|
00000130  2a 31 2e 32 35 3a 4b 3d  44 2f 31 32 38 3a 4c 3d  |*1.25:K=D/128:L=|
00000140  45 2f 31 36 30 3a 43 25  3d 34 3a e7 20 eb 3d 32  |E/160:C%=4:. .=2|
00000150  30 20 43 25 3d 32 3a 4b  3d 44 2f 32 35 36 3a 4c  |0 C%=2:K=D/256:L|
00000160  3d 45 2f 33 32 30 0d 00  46 18 e7 53 3c 31 2e 34  |=E/320..F..S<1.4|
00000170  20 84 20 53 3e 37 20 53  3d 31 2e 36 31 38 0d 00  | . S>7 S=1.618..|
00000180  50 06 f1 53 0d 00 5a 05  20 0d 00 64 0f f4 20 4d  |P..S..Z. ..d.. M|
00000190  41 49 4e 20 4c 4f 4f 50  0d 00 6e 1a 58 25 3d 36  |AIN LOOP..n.X%=6|
000001a0  34 30 3a e3 49 3d 30 b8  20 45 20 88 4c 3a 59 25  |40:.I=0. E .L:Y%|
000001b0  3d 30 0d 00 78 30 e3 4a  3d 2d 44 20 b8 44 20 88  |=0..x0.J=-D .D .|
000001c0  4b 3a 46 3d 4a 3a 47 3d  49 3a 52 3d b6 28 46 2a  |K:F=J:G=I:R=.(F*|
000001d0  46 2b 47 2a 47 29 3a e7  20 52 3c 2e 30 30 30 31  |F+G*G):. R<.0001|
000001e0  20 ed 0d 00 82 24 e3 20  4b 25 3d 30 b8 39 39 3a  | ....$. K%=0.99:|
000001f0  e7 52 3d 30 20 57 3d 30  20 8b 20 57 3d 95 28 46  |.R=0 W=0 . W=.(F|
00000200  2f 52 29 2a b4 47 0d 00  87 12 e7 20 47 3d 30 20  |/R)*.G..... G=0 |
00000210  57 3d 95 28 46 2f 52 29  0d 00 8c 67 54 3d 52 5e  |W=.(F/R)...gT=R^|
00000220  53 3a 55 3d 53 2a 57 3a  46 3d 9b 55 2a 28 54 2b  |S:U=S*W:F=.U*(T+|
00000230  31 2f 54 29 2d 9b 57 2f  52 2b 4a 2d 46 3a 47 3d  |1/T)-.W/R+J-F:G=|
00000240  b5 55 2a 28 54 2d 31 2f  54 29 2b b5 57 2f 52 2b  |.U*(T-1/T)+.W/R+|
00000250  49 2d 47 3a 52 3d b6 28  46 2a 46 2b 47 2a 47 29  |I-G:R=.(F*F+G*G)|
00000260  3a e7 52 3c 39 20 ed 3a  59 25 2b 3d 43 25 3a ed  |:.R<9 .:Y%+=C%:.|
00000270  3a 58 25 2b 3d 43 25 3a  ed 3a e5 8d 74 60 40 0d  |:X%+=C%:.:..t`@.|
00000280  00 96 37 e6 20 4b 25 83  31 35 2b 31 3a c8 92 20  |..7. K%.15+1:.. |
00000290  58 25 2c 59 25 3a c8 92  20 31 32 38 30 2d 58 25  |X%,Y%:.. 1280-X%|
000002a0  2c 59 25 3a 59 25 2b 3d  43 25 3a ed 4a 3a 58 25  |,Y%:Y%+=C%:.J:X%|
000002b0  2b 3d 43 25 3a ed 0d 00  aa 05 e0 0d 00 b4 05 20  |+=C%:.......... |
000002c0  0d 00 be 26 f4 20 53 55  49 54 41 42 4c 45 20 4d  |...&. SUITABLE M|
000002d0  4f 44 45 20 44 45 54 45  43 54 49 4f 4e 20 52 4f  |ODE DETECTION RO|
000002e0  55 54 49 4e 45 2e 0d 00  c8 12 dd f2 4d 4f 44 45  |UTINE.......MODE|
000002f0  20 ea 20 43 25 2c 46 25  0d 00 d2 23 c8 99 20 22  | . C%,F%...#.. "|
00000300  4f 53 5f 43 68 65 63 6b  4d 6f 64 65 56 61 6c 69  |OS_CheckModeVali|
00000310  64 22 2c 32 30 20 b8 20  3b 46 25 0d 00 dc 14 43  |d",20 . ;F%....C|
00000320  25 3d 28 46 25 80 25 30  30 31 30 29 3e 3e 31 0d  |%=(F%.%0010)>>1.|
00000330  00 e6 19 e7 20 ac 20 28  43 25 3d 31 29 20 eb 20  |.... . (C%=1) . |
00000340  32 30 20 8b 20 eb 20 39  0d 00 f0 07 87 3a e1 0d  |20 . . 9.....:..|
00000350  00 fa 05 20 0d 01 04 cf  dc 20 30 2c 30 2c 30 2c  |... ..... 0,0,0,|
00000360  31 39 32 2c 30 2c 32 34  30 2c 31 34 34 2c 34 38  |192,0,240,144,48|
00000370  2c 32 34 30 2c 39 36 2c  39 36 2c 32 34 30 2c 34  |,240,96,96,240,4|
00000380  38 2c 31 34 34 2c 32 34  30 2c 30 2c 31 39 32 2c  |8,144,240,0,192,|
00000390  32 34 30 2c 30 2c 32 34  30 2c 31 39 32 2c 34 38  |240,0,240,192,48|
000003a0  2c 32 34 30 2c 31 34 34  2c 39 36 2c 32 34 30 2c  |,240,144,96,240,|
000003b0  39 36 2c 31 34 34 2c 32  34 30 2c 34 38 2c 31 39  |96,144,240,48,19|
000003c0  32 2c 32 34 30 2c 30 2c  32 34 30 2c 31 39 32 2c  |2,240,0,240,192,|
000003d0  30 2c 32 34 30 2c 31 34  34 2c 34 38 2c 32 34 30  |0,240,144,48,240|
000003e0  2c 39 36 2c 39 36 2c 32  34 30 2c 34 38 2c 31 34  |,96,96,240,48,14|
000003f0  34 2c 32 34 30 2c 30 2c  31 39 32 20 20 52 45 4d  |4,240,0,192  REM|
00000400  20 52 2c 47 2c 42 20 56  41 4c 55 45 53 20 54 4f  | R,G,B VALUES TO|
00000410  20 44 45 46 49 4e 45 20  54 48 45 20 50 41 4c 45  | DEFINE THE PALE|
00000420  54 54 45 0d ff                                    |TTE..|
00000425