Home » Archimedes archive » Acorn User » AU 1998-03 B.adf » StarInfo » Windsor/!Patterns/!Help

Windsor/!Patterns/!Help

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 1998-03 B.adf » StarInfo
Filename: Windsor/!Patterns/!Help
Read OK:
File size: 240A bytes
Load address: 0000
Exec address: 0000
File contents
			!Patterns  - Version 1.00
			=========================

!Patterns was written simply as an exercise in desktop programming. It isn't
particularly useful, as far as I can see, unless you need regular polygons
producing in DrawFile format. The algorithms for the 'Rose' and 'Epicycloid'
section were adapted from some programs written by my Dad, Brian Windsor,
some years ago in BASIC on the beeb, for class demonstrations. I decided to
modernise them... The idea for the 'Limacon' section was also derived from
one of his programs, although that only drew the envelope (the outline).

The program produces four types of patterns in the Draw format. Files can be
saved to disk, or dragged straight into Draw. The four object types have been
named as follows:


1.Polygon
=========

This quite simply produces a regular polygon that fits in a circle of the
given radius. If you want a specific length of side, I am afraid you will
have to work out the radius of the circle needed: I have tried to keep the
options as simple as possible.


2.Mystic Rose
=============

This is similar to the polygon option, in that the pattern is produced from a
polygon of the given number of vertices. Again, this fits in the circle of
the radius specified. The difference is that for a polygon, only adjacent
points are connected, showing the sides, while the pattern produced here is
generated by connecting every point to every other around the circumference.


3.Epicycloid
============

At this point, things become a little more complicated. Like the first two
pattern types, this pattern is produced by drawing lines between regularly
spaced points on a circle's circumference. It is the only one in which the
bounding circle is drawn. If we number each point around the circle, point n
is connected to the point (loops + 1) * n. So, if loops = 1, point 1 is
connected to point 2, point 2 to point 4, point 3 to point 6, etc. Position
numbers higher than the total number of points are mapped onto the existing
positions, starting again from point zero. Within the figure, a definite path
can be traced out which loops around a number of times. This number is the
value contained in the "loops" box.

To make this pattern more general, I have allowed non integer values of
'loops', but this should be used with care. The program continues to traverse
the basic circle circumference until it has made a number of revolutions
equal to the reciprocal of the fractional part of 'loops'. For this reason,
selecting a fractional part which has a very high reciprocal will lead to a
high number of revolutions and a lot of lines. As a general rule of thumb,
values such as "x.5" or "x.25" produce acceptable results. Also worth noting
is the fact that a fractional value with a non-integer reciprocal will
produce a pattern that doesn't finish at the point at which it started.

Technically speaking, an epicycloid is the pattern produced by following a
point on the edge of a circle rolling around the circumference of another
circle, in much the same way as a spirograph works. It is the envelope, or
bounding path, of the pattern produced here. The number of loops produced is
therefore dependent on the ratio of the sizes of the two circles: Circles the
same size will produce a single loop (the cardioid, see below), two loops can
be produced by using a rolling circle of half the radius of the fixed one,
and so on. The case when two loops are produced is called a nephroid. When
three or more loops are present, the figure is called a three cusped
epicycloid, four cusped and so on; a cusp being the correct term for the
loops observed. Despite this nomenclature suggesting the lower numbers of
cusps are perhaps more special than higher ones, some very interesting
patterns can be produced using much higher numbers of loops, where the cusps
of the envelope can barely be seen. Try 15 loops, for instance, or 60, 61 and
89.


4.Limacon
=========

As with the epicycloid, the limacon is actually the shape of the envelope
around the pattern of circles seen here. The pattern is produced by starting
from a circle (here called the 'basic' circle, as it is the basis for the
pattern) and drawing a number of other circles with centres all on the
circumference of the this circle. These points are all equally spaced around
the circumference, as before. The second proviso is that each of the
secondary circle's circumferences passes through the 'focus'. This point lies
on the x-axis, and the value given is a fraction of the radius of the basic
circle, i.e. "1.0" specifies a focus on the circumference of the basic
circle, "2.0" specifies a point twice as far from the centre of the basic
circle as its circumference and "0.5" specifies a point half way between the
centre and the circumference. If 'Basic Circle' is selected, the basic circle
will be drawn on the resulting diagram, otherwise it is left off.

The member of the limacon family produced when the focus is on the basic
circle circumference (i.e. focus = 1.0) is called a cardioid, the shape
mentioned above. This is so called because of its similarity to the heart.
Another case worth trying is that of focus = 0.0. This produces a set of
circles of all the same radius, and looks reasonably attractive. My sister
said it would be good to colour in (she's 19!)... Those who remember the
interference generator on the beeb welcome tape (you know, the one where
you pressed a couple of function keys and it drew a Persian carpet) might
like to try limacons with a few hundred circles.

I believe the limacon is the shape you may have seen when holding a mug or
cup under a light, but so far I haven't been able to verify this. The shape
is seen as a bright line across the bottom and sides of the cup. The reason
for its appearance is to do with reflection of light from the circular sides
of the cup. Varying the angle of the sides (thus varying the shape of the
ellipse presented to the light source) changes the path of the line in a way
that represents a change in the position of the focus in this program.


Technical Bits
==============

There isn't really much to say. The program was written in C, and compiled
using GNU C and Desklib. This is the first program I have written to work in
the desktop and I don't have the benefit of the PRM. That I got anywhere is
due to the comprehensive Desklib and SWI StrongHelp manuals and guesswork. As
a result, I still can't get the RamTransfer thingy to work. It works with
Zap, but not Draw. Nevermind.

The file produced is a Draw Selection. I used this format for two reasons,
firstly the selection file format is shorter and therefore easier to work out
than the entire file (I don't have the PRM, and only AFTERWARDS did I
discover the file format was in StrongHelp). Secondly, providing you get the
left and bottom edges of the pattern on the page, Draw will select the best
page size and orientation to get the rest of the pattern on, no matter what
size it is: My program does not need to worry about it. I have fixed it so
that the bottom and left edges of the pattern are always 2cm each from the
bottom and left edges of the page. This seems to always avoid the print
margin (at least with my printer), no matter what the page orientation. The
files can then be printed out immediately, although please note that you
cannot drag the icon directly to the printer driver icon; you must first
transfer the file to Draw.

The entire pattern is defined as a single object, not a group. This allows it
to be drawn more rapidly.

In the future (if I actually do any more to this program) I should like to
find out why my RamTransfer protocol was failing with Draw and fix it, and
also allow dragging directly to the printer driver, or (preferably) add a
Print option within the program window.


Copyright notice
================

The application '!Patterns' is copyright Michael Windsor 1996. I offer no
guarantees as to the reliability/stability of it or any of its functions.

You may copy the program freely provided that the whole application remains
unaltered and all help text is included.

You may not sell the program without my written permission. However, Public
Domain libraries may distribute the program provided they charge at most 3
pounds sterling per disc. If anyone else would like to distribute Patterns
then please write to me first to get my permission.


Acknowledgments
===============

I'd like to give my thanks to Dominic Symes for Zap, which is excellent and
Martin Ebourne who wrote the C mode for Zap, also extremely useful. As I
mentioned earlier, StrongHelp has been invaluable, so thank you Guttorm Vik.

I'd also like to thank Julian Smith and those who have contributed to
Desklib, Peter Burwood, Simon Callan, and Nick Burret (and anyone else) for
the RiscOS port of GCC and UnixLib. A free C compiler with libraries is almost
too good to believe.

Also, my Dad, Brian Windsor, who wrote the original programs about ten years
ago.


I hope I have written the program so that it won't crash, no matter what you
do to it, but if it does please let me know how and (preferably) why. It has
been tested on a Risc PC (OS 3.6 & 3.7) with both a StrongARM and 710 and an
A310 (OS 3.1).

00000000  09 09 09 21 50 61 74 74  65 72 6e 73 20 20 2d 20  |...!Patterns  - |
00000010  56 65 72 73 69 6f 6e 20  31 2e 30 30 0a 09 09 09  |Version 1.00....|
00000020  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00000030  3d 3d 3d 3d 3d 3d 3d 3d  3d 0a 0a 21 50 61 74 74  |=========..!Patt|
00000040  65 72 6e 73 20 77 61 73  20 77 72 69 74 74 65 6e  |erns was written|
00000050  20 73 69 6d 70 6c 79 20  61 73 20 61 6e 20 65 78  | simply as an ex|
00000060  65 72 63 69 73 65 20 69  6e 20 64 65 73 6b 74 6f  |ercise in deskto|
00000070  70 20 70 72 6f 67 72 61  6d 6d 69 6e 67 2e 20 49  |p programming. I|
00000080  74 20 69 73 6e 27 74 0a  70 61 72 74 69 63 75 6c  |t isn't.particul|
00000090  61 72 6c 79 20 75 73 65  66 75 6c 2c 20 61 73 20  |arly useful, as |
000000a0  66 61 72 20 61 73 20 49  20 63 61 6e 20 73 65 65  |far as I can see|
000000b0  2c 20 75 6e 6c 65 73 73  20 79 6f 75 20 6e 65 65  |, unless you nee|
000000c0  64 20 72 65 67 75 6c 61  72 20 70 6f 6c 79 67 6f  |d regular polygo|
000000d0  6e 73 0a 70 72 6f 64 75  63 69 6e 67 20 69 6e 20  |ns.producing in |
000000e0  44 72 61 77 46 69 6c 65  20 66 6f 72 6d 61 74 2e  |DrawFile format.|
000000f0  20 54 68 65 20 61 6c 67  6f 72 69 74 68 6d 73 20  | The algorithms |
00000100  66 6f 72 20 74 68 65 20  27 52 6f 73 65 27 20 61  |for the 'Rose' a|
00000110  6e 64 20 27 45 70 69 63  79 63 6c 6f 69 64 27 0a  |nd 'Epicycloid'.|
00000120  73 65 63 74 69 6f 6e 20  77 65 72 65 20 61 64 61  |section were ada|
00000130  70 74 65 64 20 66 72 6f  6d 20 73 6f 6d 65 20 70  |pted from some p|
00000140  72 6f 67 72 61 6d 73 20  77 72 69 74 74 65 6e 20  |rograms written |
00000150  62 79 20 6d 79 20 44 61  64 2c 20 42 72 69 61 6e  |by my Dad, Brian|
00000160  20 57 69 6e 64 73 6f 72  2c 0a 73 6f 6d 65 20 79  | Windsor,.some y|
00000170  65 61 72 73 20 61 67 6f  20 69 6e 20 42 41 53 49  |ears ago in BASI|
00000180  43 20 6f 6e 20 74 68 65  20 62 65 65 62 2c 20 66  |C on the beeb, f|
00000190  6f 72 20 63 6c 61 73 73  20 64 65 6d 6f 6e 73 74  |or class demonst|
000001a0  72 61 74 69 6f 6e 73 2e  20 49 20 64 65 63 69 64  |rations. I decid|
000001b0  65 64 20 74 6f 0a 6d 6f  64 65 72 6e 69 73 65 20  |ed to.modernise |
000001c0  74 68 65 6d 2e 2e 2e 20  54 68 65 20 69 64 65 61  |them... The idea|
000001d0  20 66 6f 72 20 74 68 65  20 27 4c 69 6d 61 63 6f  | for the 'Limaco|
000001e0  6e 27 20 73 65 63 74 69  6f 6e 20 77 61 73 20 61  |n' section was a|
000001f0  6c 73 6f 20 64 65 72 69  76 65 64 20 66 72 6f 6d  |lso derived from|
00000200  0a 6f 6e 65 20 6f 66 20  68 69 73 20 70 72 6f 67  |.one of his prog|
00000210  72 61 6d 73 2c 20 61 6c  74 68 6f 75 67 68 20 74  |rams, although t|
00000220  68 61 74 20 6f 6e 6c 79  20 64 72 65 77 20 74 68  |hat only drew th|
00000230  65 20 65 6e 76 65 6c 6f  70 65 20 28 74 68 65 20  |e envelope (the |
00000240  6f 75 74 6c 69 6e 65 29  2e 0a 0a 54 68 65 20 70  |outline)...The p|
00000250  72 6f 67 72 61 6d 20 70  72 6f 64 75 63 65 73 20  |rogram produces |
00000260  66 6f 75 72 20 74 79 70  65 73 20 6f 66 20 70 61  |four types of pa|
00000270  74 74 65 72 6e 73 20 69  6e 20 74 68 65 20 44 72  |tterns in the Dr|
00000280  61 77 20 66 6f 72 6d 61  74 2e 20 46 69 6c 65 73  |aw format. Files|
00000290  20 63 61 6e 20 62 65 0a  73 61 76 65 64 20 74 6f  | can be.saved to|
000002a0  20 64 69 73 6b 2c 20 6f  72 20 64 72 61 67 67 65  | disk, or dragge|
000002b0  64 20 73 74 72 61 69 67  68 74 20 69 6e 74 6f 20  |d straight into |
000002c0  44 72 61 77 2e 20 54 68  65 20 66 6f 75 72 20 6f  |Draw. The four o|
000002d0  62 6a 65 63 74 20 74 79  70 65 73 20 68 61 76 65  |bject types have|
000002e0  20 62 65 65 6e 0a 6e 61  6d 65 64 20 61 73 20 66  | been.named as f|
000002f0  6f 6c 6c 6f 77 73 3a 0a  0a 0a 31 2e 50 6f 6c 79  |ollows:...1.Poly|
00000300  67 6f 6e 0a 3d 3d 3d 3d  3d 3d 3d 3d 3d 0a 0a 54  |gon.=========..T|
00000310  68 69 73 20 71 75 69 74  65 20 73 69 6d 70 6c 79  |his quite simply|
00000320  20 70 72 6f 64 75 63 65  73 20 61 20 72 65 67 75  | produces a regu|
00000330  6c 61 72 20 70 6f 6c 79  67 6f 6e 20 74 68 61 74  |lar polygon that|
00000340  20 66 69 74 73 20 69 6e  20 61 20 63 69 72 63 6c  | fits in a circl|
00000350  65 20 6f 66 20 74 68 65  0a 67 69 76 65 6e 20 72  |e of the.given r|
00000360  61 64 69 75 73 2e 20 49  66 20 79 6f 75 20 77 61  |adius. If you wa|
00000370  6e 74 20 61 20 73 70 65  63 69 66 69 63 20 6c 65  |nt a specific le|
00000380  6e 67 74 68 20 6f 66 20  73 69 64 65 2c 20 49 20  |ngth of side, I |
00000390  61 6d 20 61 66 72 61 69  64 20 79 6f 75 20 77 69  |am afraid you wi|
000003a0  6c 6c 0a 68 61 76 65 20  74 6f 20 77 6f 72 6b 20  |ll.have to work |
000003b0  6f 75 74 20 74 68 65 20  72 61 64 69 75 73 20 6f  |out the radius o|
000003c0  66 20 74 68 65 20 63 69  72 63 6c 65 20 6e 65 65  |f the circle nee|
000003d0  64 65 64 3a 20 49 20 68  61 76 65 20 74 72 69 65  |ded: I have trie|
000003e0  64 20 74 6f 20 6b 65 65  70 20 74 68 65 0a 6f 70  |d to keep the.op|
000003f0  74 69 6f 6e 73 20 61 73  20 73 69 6d 70 6c 65 20  |tions as simple |
00000400  61 73 20 70 6f 73 73 69  62 6c 65 2e 0a 0a 0a 32  |as possible....2|
00000410  2e 4d 79 73 74 69 63 20  52 6f 73 65 0a 3d 3d 3d  |.Mystic Rose.===|
00000420  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 0a 0a 54 68 69 73  |==========..This|
00000430  20 69 73 20 73 69 6d 69  6c 61 72 20 74 6f 20 74  | is similar to t|
00000440  68 65 20 70 6f 6c 79 67  6f 6e 20 6f 70 74 69 6f  |he polygon optio|
00000450  6e 2c 20 69 6e 20 74 68  61 74 20 74 68 65 20 70  |n, in that the p|
00000460  61 74 74 65 72 6e 20 69  73 20 70 72 6f 64 75 63  |attern is produc|
00000470  65 64 20 66 72 6f 6d 20  61 0a 70 6f 6c 79 67 6f  |ed from a.polygo|
00000480  6e 20 6f 66 20 74 68 65  20 67 69 76 65 6e 20 6e  |n of the given n|
00000490  75 6d 62 65 72 20 6f 66  20 76 65 72 74 69 63 65  |umber of vertice|
000004a0  73 2e 20 41 67 61 69 6e  2c 20 74 68 69 73 20 66  |s. Again, this f|
000004b0  69 74 73 20 69 6e 20 74  68 65 20 63 69 72 63 6c  |its in the circl|
000004c0  65 20 6f 66 0a 74 68 65  20 72 61 64 69 75 73 20  |e of.the radius |
000004d0  73 70 65 63 69 66 69 65  64 2e 20 54 68 65 20 64  |specified. The d|
000004e0  69 66 66 65 72 65 6e 63  65 20 69 73 20 74 68 61  |ifference is tha|
000004f0  74 20 66 6f 72 20 61 20  70 6f 6c 79 67 6f 6e 2c  |t for a polygon,|
00000500  20 6f 6e 6c 79 20 61 64  6a 61 63 65 6e 74 0a 70  | only adjacent.p|
00000510  6f 69 6e 74 73 20 61 72  65 20 63 6f 6e 6e 65 63  |oints are connec|
00000520  74 65 64 2c 20 73 68 6f  77 69 6e 67 20 74 68 65  |ted, showing the|
00000530  20 73 69 64 65 73 2c 20  77 68 69 6c 65 20 74 68  | sides, while th|
00000540  65 20 70 61 74 74 65 72  6e 20 70 72 6f 64 75 63  |e pattern produc|
00000550  65 64 20 68 65 72 65 20  69 73 0a 67 65 6e 65 72  |ed here is.gener|
00000560  61 74 65 64 20 62 79 20  63 6f 6e 6e 65 63 74 69  |ated by connecti|
00000570  6e 67 20 65 76 65 72 79  20 70 6f 69 6e 74 20 74  |ng every point t|
00000580  6f 20 65 76 65 72 79 20  6f 74 68 65 72 20 61 72  |o every other ar|
00000590  6f 75 6e 64 20 74 68 65  20 63 69 72 63 75 6d 66  |ound the circumf|
000005a0  65 72 65 6e 63 65 2e 0a  0a 0a 33 2e 45 70 69 63  |erence....3.Epic|
000005b0  79 63 6c 6f 69 64 0a 3d  3d 3d 3d 3d 3d 3d 3d 3d  |ycloid.=========|
000005c0  3d 3d 3d 0a 0a 41 74 20  74 68 69 73 20 70 6f 69  |===..At this poi|
000005d0  6e 74 2c 20 74 68 69 6e  67 73 20 62 65 63 6f 6d  |nt, things becom|
000005e0  65 20 61 20 6c 69 74 74  6c 65 20 6d 6f 72 65 20  |e a little more |
000005f0  63 6f 6d 70 6c 69 63 61  74 65 64 2e 20 4c 69 6b  |complicated. Lik|
00000600  65 20 74 68 65 20 66 69  72 73 74 20 74 77 6f 0a  |e the first two.|
00000610  70 61 74 74 65 72 6e 20  74 79 70 65 73 2c 20 74  |pattern types, t|
00000620  68 69 73 20 70 61 74 74  65 72 6e 20 69 73 20 70  |his pattern is p|
00000630  72 6f 64 75 63 65 64 20  62 79 20 64 72 61 77 69  |roduced by drawi|
00000640  6e 67 20 6c 69 6e 65 73  20 62 65 74 77 65 65 6e  |ng lines between|
00000650  20 72 65 67 75 6c 61 72  6c 79 0a 73 70 61 63 65  | regularly.space|
00000660  64 20 70 6f 69 6e 74 73  20 6f 6e 20 61 20 63 69  |d points on a ci|
00000670  72 63 6c 65 27 73 20 63  69 72 63 75 6d 66 65 72  |rcle's circumfer|
00000680  65 6e 63 65 2e 20 49 74  20 69 73 20 74 68 65 20  |ence. It is the |
00000690  6f 6e 6c 79 20 6f 6e 65  20 69 6e 20 77 68 69 63  |only one in whic|
000006a0  68 20 74 68 65 0a 62 6f  75 6e 64 69 6e 67 20 63  |h the.bounding c|
000006b0  69 72 63 6c 65 20 69 73  20 64 72 61 77 6e 2e 20  |ircle is drawn. |
000006c0  49 66 20 77 65 20 6e 75  6d 62 65 72 20 65 61 63  |If we number eac|
000006d0  68 20 70 6f 69 6e 74 20  61 72 6f 75 6e 64 20 74  |h point around t|
000006e0  68 65 20 63 69 72 63 6c  65 2c 20 70 6f 69 6e 74  |he circle, point|
000006f0  20 6e 0a 69 73 20 63 6f  6e 6e 65 63 74 65 64 20  | n.is connected |
00000700  74 6f 20 74 68 65 20 70  6f 69 6e 74 20 28 6c 6f  |to the point (lo|
00000710  6f 70 73 20 2b 20 31 29  20 2a 20 6e 2e 20 53 6f  |ops + 1) * n. So|
00000720  2c 20 69 66 20 6c 6f 6f  70 73 20 3d 20 31 2c 20  |, if loops = 1, |
00000730  70 6f 69 6e 74 20 31 20  69 73 0a 63 6f 6e 6e 65  |point 1 is.conne|
00000740  63 74 65 64 20 74 6f 20  70 6f 69 6e 74 20 32 2c  |cted to point 2,|
00000750  20 70 6f 69 6e 74 20 32  20 74 6f 20 70 6f 69 6e  | point 2 to poin|
00000760  74 20 34 2c 20 70 6f 69  6e 74 20 33 20 74 6f 20  |t 4, point 3 to |
00000770  70 6f 69 6e 74 20 36 2c  20 65 74 63 2e 20 50 6f  |point 6, etc. Po|
00000780  73 69 74 69 6f 6e 0a 6e  75 6d 62 65 72 73 20 68  |sition.numbers h|
00000790  69 67 68 65 72 20 74 68  61 6e 20 74 68 65 20 74  |igher than the t|
000007a0  6f 74 61 6c 20 6e 75 6d  62 65 72 20 6f 66 20 70  |otal number of p|
000007b0  6f 69 6e 74 73 20 61 72  65 20 6d 61 70 70 65 64  |oints are mapped|
000007c0  20 6f 6e 74 6f 20 74 68  65 20 65 78 69 73 74 69  | onto the existi|
000007d0  6e 67 0a 70 6f 73 69 74  69 6f 6e 73 2c 20 73 74  |ng.positions, st|
000007e0  61 72 74 69 6e 67 20 61  67 61 69 6e 20 66 72 6f  |arting again fro|
000007f0  6d 20 70 6f 69 6e 74 20  7a 65 72 6f 2e 20 57 69  |m point zero. Wi|
00000800  74 68 69 6e 20 74 68 65  20 66 69 67 75 72 65 2c  |thin the figure,|
00000810  20 61 20 64 65 66 69 6e  69 74 65 20 70 61 74 68  | a definite path|
00000820  0a 63 61 6e 20 62 65 20  74 72 61 63 65 64 20 6f  |.can be traced o|
00000830  75 74 20 77 68 69 63 68  20 6c 6f 6f 70 73 20 61  |ut which loops a|
00000840  72 6f 75 6e 64 20 61 20  6e 75 6d 62 65 72 20 6f  |round a number o|
00000850  66 20 74 69 6d 65 73 2e  20 54 68 69 73 20 6e 75  |f times. This nu|
00000860  6d 62 65 72 20 69 73 20  74 68 65 0a 76 61 6c 75  |mber is the.valu|
00000870  65 20 63 6f 6e 74 61 69  6e 65 64 20 69 6e 20 74  |e contained in t|
00000880  68 65 20 22 6c 6f 6f 70  73 22 20 62 6f 78 2e 0a  |he "loops" box..|
00000890  0a 54 6f 20 6d 61 6b 65  20 74 68 69 73 20 70 61  |.To make this pa|
000008a0  74 74 65 72 6e 20 6d 6f  72 65 20 67 65 6e 65 72  |ttern more gener|
000008b0  61 6c 2c 20 49 20 68 61  76 65 20 61 6c 6c 6f 77  |al, I have allow|
000008c0  65 64 20 6e 6f 6e 20 69  6e 74 65 67 65 72 20 76  |ed non integer v|
000008d0  61 6c 75 65 73 20 6f 66  0a 27 6c 6f 6f 70 73 27  |alues of.'loops'|
000008e0  2c 20 62 75 74 20 74 68  69 73 20 73 68 6f 75 6c  |, but this shoul|
000008f0  64 20 62 65 20 75 73 65  64 20 77 69 74 68 20 63  |d be used with c|
00000900  61 72 65 2e 20 54 68 65  20 70 72 6f 67 72 61 6d  |are. The program|
00000910  20 63 6f 6e 74 69 6e 75  65 73 20 74 6f 20 74 72  | continues to tr|
00000920  61 76 65 72 73 65 0a 74  68 65 20 62 61 73 69 63  |averse.the basic|
00000930  20 63 69 72 63 6c 65 20  63 69 72 63 75 6d 66 65  | circle circumfe|
00000940  72 65 6e 63 65 20 75 6e  74 69 6c 20 69 74 20 68  |rence until it h|
00000950  61 73 20 6d 61 64 65 20  61 20 6e 75 6d 62 65 72  |as made a number|
00000960  20 6f 66 20 72 65 76 6f  6c 75 74 69 6f 6e 73 0a  | of revolutions.|
00000970  65 71 75 61 6c 20 74 6f  20 74 68 65 20 72 65 63  |equal to the rec|
00000980  69 70 72 6f 63 61 6c 20  6f 66 20 74 68 65 20 66  |iprocal of the f|
00000990  72 61 63 74 69 6f 6e 61  6c 20 70 61 72 74 20 6f  |ractional part o|
000009a0  66 20 27 6c 6f 6f 70 73  27 2e 20 46 6f 72 20 74  |f 'loops'. For t|
000009b0  68 69 73 20 72 65 61 73  6f 6e 2c 0a 73 65 6c 65  |his reason,.sele|
000009c0  63 74 69 6e 67 20 61 20  66 72 61 63 74 69 6f 6e  |cting a fraction|
000009d0  61 6c 20 70 61 72 74 20  77 68 69 63 68 20 68 61  |al part which ha|
000009e0  73 20 61 20 76 65 72 79  20 68 69 67 68 20 72 65  |s a very high re|
000009f0  63 69 70 72 6f 63 61 6c  20 77 69 6c 6c 20 6c 65  |ciprocal will le|
00000a00  61 64 20 74 6f 20 61 0a  68 69 67 68 20 6e 75 6d  |ad to a.high num|
00000a10  62 65 72 20 6f 66 20 72  65 76 6f 6c 75 74 69 6f  |ber of revolutio|
00000a20  6e 73 20 61 6e 64 20 61  20 6c 6f 74 20 6f 66 20  |ns and a lot of |
00000a30  6c 69 6e 65 73 2e 20 41  73 20 61 20 67 65 6e 65  |lines. As a gene|
00000a40  72 61 6c 20 72 75 6c 65  20 6f 66 20 74 68 75 6d  |ral rule of thum|
00000a50  62 2c 0a 76 61 6c 75 65  73 20 73 75 63 68 20 61  |b,.values such a|
00000a60  73 20 22 78 2e 35 22 20  6f 72 20 22 78 2e 32 35  |s "x.5" or "x.25|
00000a70  22 20 70 72 6f 64 75 63  65 20 61 63 63 65 70 74  |" produce accept|
00000a80  61 62 6c 65 20 72 65 73  75 6c 74 73 2e 20 41 6c  |able results. Al|
00000a90  73 6f 20 77 6f 72 74 68  20 6e 6f 74 69 6e 67 0a  |so worth noting.|
00000aa0  69 73 20 74 68 65 20 66  61 63 74 20 74 68 61 74  |is the fact that|
00000ab0  20 61 20 66 72 61 63 74  69 6f 6e 61 6c 20 76 61  | a fractional va|
00000ac0  6c 75 65 20 77 69 74 68  20 61 20 6e 6f 6e 2d 69  |lue with a non-i|
00000ad0  6e 74 65 67 65 72 20 72  65 63 69 70 72 6f 63 61  |nteger reciproca|
00000ae0  6c 20 77 69 6c 6c 0a 70  72 6f 64 75 63 65 20 61  |l will.produce a|
00000af0  20 70 61 74 74 65 72 6e  20 74 68 61 74 20 64 6f  | pattern that do|
00000b00  65 73 6e 27 74 20 66 69  6e 69 73 68 20 61 74 20  |esn't finish at |
00000b10  74 68 65 20 70 6f 69 6e  74 20 61 74 20 77 68 69  |the point at whi|
00000b20  63 68 20 69 74 20 73 74  61 72 74 65 64 2e 0a 0a  |ch it started...|
00000b30  54 65 63 68 6e 69 63 61  6c 6c 79 20 73 70 65 61  |Technically spea|
00000b40  6b 69 6e 67 2c 20 61 6e  20 65 70 69 63 79 63 6c  |king, an epicycl|
00000b50  6f 69 64 20 69 73 20 74  68 65 20 70 61 74 74 65  |oid is the patte|
00000b60  72 6e 20 70 72 6f 64 75  63 65 64 20 62 79 20 66  |rn produced by f|
00000b70  6f 6c 6c 6f 77 69 6e 67  20 61 0a 70 6f 69 6e 74  |ollowing a.point|
00000b80  20 6f 6e 20 74 68 65 20  65 64 67 65 20 6f 66 20  | on the edge of |
00000b90  61 20 63 69 72 63 6c 65  20 72 6f 6c 6c 69 6e 67  |a circle rolling|
00000ba0  20 61 72 6f 75 6e 64 20  74 68 65 20 63 69 72 63  | around the circ|
00000bb0  75 6d 66 65 72 65 6e 63  65 20 6f 66 20 61 6e 6f  |umference of ano|
00000bc0  74 68 65 72 0a 63 69 72  63 6c 65 2c 20 69 6e 20  |ther.circle, in |
00000bd0  6d 75 63 68 20 74 68 65  20 73 61 6d 65 20 77 61  |much the same wa|
00000be0  79 20 61 73 20 61 20 73  70 69 72 6f 67 72 61 70  |y as a spirograp|
00000bf0  68 20 77 6f 72 6b 73 2e  20 49 74 20 69 73 20 74  |h works. It is t|
00000c00  68 65 20 65 6e 76 65 6c  6f 70 65 2c 20 6f 72 0a  |he envelope, or.|
00000c10  62 6f 75 6e 64 69 6e 67  20 70 61 74 68 2c 20 6f  |bounding path, o|
00000c20  66 20 74 68 65 20 70 61  74 74 65 72 6e 20 70 72  |f the pattern pr|
00000c30  6f 64 75 63 65 64 20 68  65 72 65 2e 20 54 68 65  |oduced here. The|
00000c40  20 6e 75 6d 62 65 72 20  6f 66 20 6c 6f 6f 70 73  | number of loops|
00000c50  20 70 72 6f 64 75 63 65  64 20 69 73 0a 74 68 65  | produced is.the|
00000c60  72 65 66 6f 72 65 20 64  65 70 65 6e 64 65 6e 74  |refore dependent|
00000c70  20 6f 6e 20 74 68 65 20  72 61 74 69 6f 20 6f 66  | on the ratio of|
00000c80  20 74 68 65 20 73 69 7a  65 73 20 6f 66 20 74 68  | the sizes of th|
00000c90  65 20 74 77 6f 20 63 69  72 63 6c 65 73 3a 20 43  |e two circles: C|
00000ca0  69 72 63 6c 65 73 20 74  68 65 0a 73 61 6d 65 20  |ircles the.same |
00000cb0  73 69 7a 65 20 77 69 6c  6c 20 70 72 6f 64 75 63  |size will produc|
00000cc0  65 20 61 20 73 69 6e 67  6c 65 20 6c 6f 6f 70 20  |e a single loop |
00000cd0  28 74 68 65 20 63 61 72  64 69 6f 69 64 2c 20 73  |(the cardioid, s|
00000ce0  65 65 20 62 65 6c 6f 77  29 2c 20 74 77 6f 20 6c  |ee below), two l|
00000cf0  6f 6f 70 73 20 63 61 6e  0a 62 65 20 70 72 6f 64  |oops can.be prod|
00000d00  75 63 65 64 20 62 79 20  75 73 69 6e 67 20 61 20  |uced by using a |
00000d10  72 6f 6c 6c 69 6e 67 20  63 69 72 63 6c 65 20 6f  |rolling circle o|
00000d20  66 20 68 61 6c 66 20 74  68 65 20 72 61 64 69 75  |f half the radiu|
00000d30  73 20 6f 66 20 74 68 65  20 66 69 78 65 64 20 6f  |s of the fixed o|
00000d40  6e 65 2c 0a 61 6e 64 20  73 6f 20 6f 6e 2e 20 54  |ne,.and so on. T|
00000d50  68 65 20 63 61 73 65 20  77 68 65 6e 20 74 77 6f  |he case when two|
00000d60  20 6c 6f 6f 70 73 20 61  72 65 20 70 72 6f 64 75  | loops are produ|
00000d70  63 65 64 20 69 73 20 63  61 6c 6c 65 64 20 61 20  |ced is called a |
00000d80  6e 65 70 68 72 6f 69 64  2e 20 57 68 65 6e 0a 74  |nephroid. When.t|
00000d90  68 72 65 65 20 6f 72 20  6d 6f 72 65 20 6c 6f 6f  |hree or more loo|
00000da0  70 73 20 61 72 65 20 70  72 65 73 65 6e 74 2c 20  |ps are present, |
00000db0  74 68 65 20 66 69 67 75  72 65 20 69 73 20 63 61  |the figure is ca|
00000dc0  6c 6c 65 64 20 61 20 74  68 72 65 65 20 63 75 73  |lled a three cus|
00000dd0  70 65 64 0a 65 70 69 63  79 63 6c 6f 69 64 2c 20  |ped.epicycloid, |
00000de0  66 6f 75 72 20 63 75 73  70 65 64 20 61 6e 64 20  |four cusped and |
00000df0  73 6f 20 6f 6e 3b 20 61  20 63 75 73 70 20 62 65  |so on; a cusp be|
00000e00  69 6e 67 20 74 68 65 20  63 6f 72 72 65 63 74 20  |ing the correct |
00000e10  74 65 72 6d 20 66 6f 72  20 74 68 65 0a 6c 6f 6f  |term for the.loo|
00000e20  70 73 20 6f 62 73 65 72  76 65 64 2e 20 44 65 73  |ps observed. Des|
00000e30  70 69 74 65 20 74 68 69  73 20 6e 6f 6d 65 6e 63  |pite this nomenc|
00000e40  6c 61 74 75 72 65 20 73  75 67 67 65 73 74 69 6e  |lature suggestin|
00000e50  67 20 74 68 65 20 6c 6f  77 65 72 20 6e 75 6d 62  |g the lower numb|
00000e60  65 72 73 20 6f 66 0a 63  75 73 70 73 20 61 72 65  |ers of.cusps are|
00000e70  20 70 65 72 68 61 70 73  20 6d 6f 72 65 20 73 70  | perhaps more sp|
00000e80  65 63 69 61 6c 20 74 68  61 6e 20 68 69 67 68 65  |ecial than highe|
00000e90  72 20 6f 6e 65 73 2c 20  73 6f 6d 65 20 76 65 72  |r ones, some ver|
00000ea0  79 20 69 6e 74 65 72 65  73 74 69 6e 67 0a 70 61  |y interesting.pa|
00000eb0  74 74 65 72 6e 73 20 63  61 6e 20 62 65 20 70 72  |tterns can be pr|
00000ec0  6f 64 75 63 65 64 20 75  73 69 6e 67 20 6d 75 63  |oduced using muc|
00000ed0  68 20 68 69 67 68 65 72  20 6e 75 6d 62 65 72 73  |h higher numbers|
00000ee0  20 6f 66 20 6c 6f 6f 70  73 2c 20 77 68 65 72 65  | of loops, where|
00000ef0  20 74 68 65 20 63 75 73  70 73 0a 6f 66 20 74 68  | the cusps.of th|
00000f00  65 20 65 6e 76 65 6c 6f  70 65 20 63 61 6e 20 62  |e envelope can b|
00000f10  61 72 65 6c 79 20 62 65  20 73 65 65 6e 2e 20 54  |arely be seen. T|
00000f20  72 79 20 31 35 20 6c 6f  6f 70 73 2c 20 66 6f 72  |ry 15 loops, for|
00000f30  20 69 6e 73 74 61 6e 63  65 2c 20 6f 72 20 36 30  | instance, or 60|
00000f40  2c 20 36 31 20 61 6e 64  0a 38 39 2e 0a 0a 0a 34  |, 61 and.89....4|
00000f50  2e 4c 69 6d 61 63 6f 6e  0a 3d 3d 3d 3d 3d 3d 3d  |.Limacon.=======|
00000f60  3d 3d 0a 0a 41 73 20 77  69 74 68 20 74 68 65 20  |==..As with the |
00000f70  65 70 69 63 79 63 6c 6f  69 64 2c 20 74 68 65 20  |epicycloid, the |
00000f80  6c 69 6d 61 63 6f 6e 20  69 73 20 61 63 74 75 61  |limacon is actua|
00000f90  6c 6c 79 20 74 68 65 20  73 68 61 70 65 20 6f 66  |lly the shape of|
00000fa0  20 74 68 65 20 65 6e 76  65 6c 6f 70 65 0a 61 72  | the envelope.ar|
00000fb0  6f 75 6e 64 20 74 68 65  20 70 61 74 74 65 72 6e  |ound the pattern|
00000fc0  20 6f 66 20 63 69 72 63  6c 65 73 20 73 65 65 6e  | of circles seen|
00000fd0  20 68 65 72 65 2e 20 54  68 65 20 70 61 74 74 65  | here. The patte|
00000fe0  72 6e 20 69 73 20 70 72  6f 64 75 63 65 64 20 62  |rn is produced b|
00000ff0  79 20 73 74 61 72 74 69  6e 67 0a 66 72 6f 6d 20  |y starting.from |
00001000  61 20 63 69 72 63 6c 65  20 28 68 65 72 65 20 63  |a circle (here c|
00001010  61 6c 6c 65 64 20 74 68  65 20 27 62 61 73 69 63  |alled the 'basic|
00001020  27 20 63 69 72 63 6c 65  2c 20 61 73 20 69 74 20  |' circle, as it |
00001030  69 73 20 74 68 65 20 62  61 73 69 73 20 66 6f 72  |is the basis for|
00001040  20 74 68 65 0a 70 61 74  74 65 72 6e 29 20 61 6e  | the.pattern) an|
00001050  64 20 64 72 61 77 69 6e  67 20 61 20 6e 75 6d 62  |d drawing a numb|
00001060  65 72 20 6f 66 20 6f 74  68 65 72 20 63 69 72 63  |er of other circ|
00001070  6c 65 73 20 77 69 74 68  20 63 65 6e 74 72 65 73  |les with centres|
00001080  20 61 6c 6c 20 6f 6e 20  74 68 65 0a 63 69 72 63  | all on the.circ|
00001090  75 6d 66 65 72 65 6e 63  65 20 6f 66 20 74 68 65  |umference of the|
000010a0  20 74 68 69 73 20 63 69  72 63 6c 65 2e 20 54 68  | this circle. Th|
000010b0  65 73 65 20 70 6f 69 6e  74 73 20 61 72 65 20 61  |ese points are a|
000010c0  6c 6c 20 65 71 75 61 6c  6c 79 20 73 70 61 63 65  |ll equally space|
000010d0  64 20 61 72 6f 75 6e 64  0a 74 68 65 20 63 69 72  |d around.the cir|
000010e0  63 75 6d 66 65 72 65 6e  63 65 2c 20 61 73 20 62  |cumference, as b|
000010f0  65 66 6f 72 65 2e 20 54  68 65 20 73 65 63 6f 6e  |efore. The secon|
00001100  64 20 70 72 6f 76 69 73  6f 20 69 73 20 74 68 61  |d proviso is tha|
00001110  74 20 65 61 63 68 20 6f  66 20 74 68 65 0a 73 65  |t each of the.se|
00001120  63 6f 6e 64 61 72 79 20  63 69 72 63 6c 65 27 73  |condary circle's|
00001130  20 63 69 72 63 75 6d 66  65 72 65 6e 63 65 73 20  | circumferences |
00001140  70 61 73 73 65 73 20 74  68 72 6f 75 67 68 20 74  |passes through t|
00001150  68 65 20 27 66 6f 63 75  73 27 2e 20 54 68 69 73  |he 'focus'. This|
00001160  20 70 6f 69 6e 74 20 6c  69 65 73 0a 6f 6e 20 74  | point lies.on t|
00001170  68 65 20 78 2d 61 78 69  73 2c 20 61 6e 64 20 74  |he x-axis, and t|
00001180  68 65 20 76 61 6c 75 65  20 67 69 76 65 6e 20 69  |he value given i|
00001190  73 20 61 20 66 72 61 63  74 69 6f 6e 20 6f 66 20  |s a fraction of |
000011a0  74 68 65 20 72 61 64 69  75 73 20 6f 66 20 74 68  |the radius of th|
000011b0  65 20 62 61 73 69 63 0a  63 69 72 63 6c 65 2c 20  |e basic.circle, |
000011c0  69 2e 65 2e 20 22 31 2e  30 22 20 73 70 65 63 69  |i.e. "1.0" speci|
000011d0  66 69 65 73 20 61 20 66  6f 63 75 73 20 6f 6e 20  |fies a focus on |
000011e0  74 68 65 20 63 69 72 63  75 6d 66 65 72 65 6e 63  |the circumferenc|
000011f0  65 20 6f 66 20 74 68 65  20 62 61 73 69 63 0a 63  |e of the basic.c|
00001200  69 72 63 6c 65 2c 20 22  32 2e 30 22 20 73 70 65  |ircle, "2.0" spe|
00001210  63 69 66 69 65 73 20 61  20 70 6f 69 6e 74 20 74  |cifies a point t|
00001220  77 69 63 65 20 61 73 20  66 61 72 20 66 72 6f 6d  |wice as far from|
00001230  20 74 68 65 20 63 65 6e  74 72 65 20 6f 66 20 74  | the centre of t|
00001240  68 65 20 62 61 73 69 63  0a 63 69 72 63 6c 65 20  |he basic.circle |
00001250  61 73 20 69 74 73 20 63  69 72 63 75 6d 66 65 72  |as its circumfer|
00001260  65 6e 63 65 20 61 6e 64  20 22 30 2e 35 22 20 73  |ence and "0.5" s|
00001270  70 65 63 69 66 69 65 73  20 61 20 70 6f 69 6e 74  |pecifies a point|
00001280  20 68 61 6c 66 20 77 61  79 20 62 65 74 77 65 65  | half way betwee|
00001290  6e 20 74 68 65 0a 63 65  6e 74 72 65 20 61 6e 64  |n the.centre and|
000012a0  20 74 68 65 20 63 69 72  63 75 6d 66 65 72 65 6e  | the circumferen|
000012b0  63 65 2e 20 49 66 20 27  42 61 73 69 63 20 43 69  |ce. If 'Basic Ci|
000012c0  72 63 6c 65 27 20 69 73  20 73 65 6c 65 63 74 65  |rcle' is selecte|
000012d0  64 2c 20 74 68 65 20 62  61 73 69 63 20 63 69 72  |d, the basic cir|
000012e0  63 6c 65 0a 77 69 6c 6c  20 62 65 20 64 72 61 77  |cle.will be draw|
000012f0  6e 20 6f 6e 20 74 68 65  20 72 65 73 75 6c 74 69  |n on the resulti|
00001300  6e 67 20 64 69 61 67 72  61 6d 2c 20 6f 74 68 65  |ng diagram, othe|
00001310  72 77 69 73 65 20 69 74  20 69 73 20 6c 65 66 74  |rwise it is left|
00001320  20 6f 66 66 2e 0a 0a 54  68 65 20 6d 65 6d 62 65  | off...The membe|
00001330  72 20 6f 66 20 74 68 65  20 6c 69 6d 61 63 6f 6e  |r of the limacon|
00001340  20 66 61 6d 69 6c 79 20  70 72 6f 64 75 63 65 64  | family produced|
00001350  20 77 68 65 6e 20 74 68  65 20 66 6f 63 75 73 20  | when the focus |
00001360  69 73 20 6f 6e 20 74 68  65 20 62 61 73 69 63 0a  |is on the basic.|
00001370  63 69 72 63 6c 65 20 63  69 72 63 75 6d 66 65 72  |circle circumfer|
00001380  65 6e 63 65 20 28 69 2e  65 2e 20 66 6f 63 75 73  |ence (i.e. focus|
00001390  20 3d 20 31 2e 30 29 20  69 73 20 63 61 6c 6c 65  | = 1.0) is calle|
000013a0  64 20 61 20 63 61 72 64  69 6f 69 64 2c 20 74 68  |d a cardioid, th|
000013b0  65 20 73 68 61 70 65 0a  6d 65 6e 74 69 6f 6e 65  |e shape.mentione|
000013c0  64 20 61 62 6f 76 65 2e  20 54 68 69 73 20 69 73  |d above. This is|
000013d0  20 73 6f 20 63 61 6c 6c  65 64 20 62 65 63 61 75  | so called becau|
000013e0  73 65 20 6f 66 20 69 74  73 20 73 69 6d 69 6c 61  |se of its simila|
000013f0  72 69 74 79 20 74 6f 20  74 68 65 20 68 65 61 72  |rity to the hear|
00001400  74 2e 0a 41 6e 6f 74 68  65 72 20 63 61 73 65 20  |t..Another case |
00001410  77 6f 72 74 68 20 74 72  79 69 6e 67 20 69 73 20  |worth trying is |
00001420  74 68 61 74 20 6f 66 20  66 6f 63 75 73 20 3d 20  |that of focus = |
00001430  30 2e 30 2e 20 54 68 69  73 20 70 72 6f 64 75 63  |0.0. This produc|
00001440  65 73 20 61 20 73 65 74  20 6f 66 0a 63 69 72 63  |es a set of.circ|
00001450  6c 65 73 20 6f 66 20 61  6c 6c 20 74 68 65 20 73  |les of all the s|
00001460  61 6d 65 20 72 61 64 69  75 73 2c 20 61 6e 64 20  |ame radius, and |
00001470  6c 6f 6f 6b 73 20 72 65  61 73 6f 6e 61 62 6c 79  |looks reasonably|
00001480  20 61 74 74 72 61 63 74  69 76 65 2e 20 4d 79 20  | attractive. My |
00001490  73 69 73 74 65 72 0a 73  61 69 64 20 69 74 20 77  |sister.said it w|
000014a0  6f 75 6c 64 20 62 65 20  67 6f 6f 64 20 74 6f 20  |ould be good to |
000014b0  63 6f 6c 6f 75 72 20 69  6e 20 28 73 68 65 27 73  |colour in (she's|
000014c0  20 31 39 21 29 2e 2e 2e  20 54 68 6f 73 65 20 77  | 19!)... Those w|
000014d0  68 6f 20 72 65 6d 65 6d  62 65 72 20 74 68 65 0a  |ho remember the.|
000014e0  69 6e 74 65 72 66 65 72  65 6e 63 65 20 67 65 6e  |interference gen|
000014f0  65 72 61 74 6f 72 20 6f  6e 20 74 68 65 20 62 65  |erator on the be|
00001500  65 62 20 77 65 6c 63 6f  6d 65 20 74 61 70 65 20  |eb welcome tape |
00001510  28 79 6f 75 20 6b 6e 6f  77 2c 20 74 68 65 20 6f  |(you know, the o|
00001520  6e 65 20 77 68 65 72 65  0a 79 6f 75 20 70 72 65  |ne where.you pre|
00001530  73 73 65 64 20 61 20 63  6f 75 70 6c 65 20 6f 66  |ssed a couple of|
00001540  20 66 75 6e 63 74 69 6f  6e 20 6b 65 79 73 20 61  | function keys a|
00001550  6e 64 20 69 74 20 64 72  65 77 20 61 20 50 65 72  |nd it drew a Per|
00001560  73 69 61 6e 20 63 61 72  70 65 74 29 20 6d 69 67  |sian carpet) mig|
00001570  68 74 0a 6c 69 6b 65 20  74 6f 20 74 72 79 20 6c  |ht.like to try l|
00001580  69 6d 61 63 6f 6e 73 20  77 69 74 68 20 61 20 66  |imacons with a f|
00001590  65 77 20 68 75 6e 64 72  65 64 20 63 69 72 63 6c  |ew hundred circl|
000015a0  65 73 2e 0a 0a 49 20 62  65 6c 69 65 76 65 20 74  |es...I believe t|
000015b0  68 65 20 6c 69 6d 61 63  6f 6e 20 69 73 20 74 68  |he limacon is th|
000015c0  65 20 73 68 61 70 65 20  79 6f 75 20 6d 61 79 20  |e shape you may |
000015d0  68 61 76 65 20 73 65 65  6e 20 77 68 65 6e 20 68  |have seen when h|
000015e0  6f 6c 64 69 6e 67 20 61  20 6d 75 67 20 6f 72 0a  |olding a mug or.|
000015f0  63 75 70 20 75 6e 64 65  72 20 61 20 6c 69 67 68  |cup under a ligh|
00001600  74 2c 20 62 75 74 20 73  6f 20 66 61 72 20 49 20  |t, but so far I |
00001610  68 61 76 65 6e 27 74 20  62 65 65 6e 20 61 62 6c  |haven't been abl|
00001620  65 20 74 6f 20 76 65 72  69 66 79 20 74 68 69 73  |e to verify this|
00001630  2e 20 54 68 65 20 73 68  61 70 65 0a 69 73 20 73  |. The shape.is s|
00001640  65 65 6e 20 61 73 20 61  20 62 72 69 67 68 74 20  |een as a bright |
00001650  6c 69 6e 65 20 61 63 72  6f 73 73 20 74 68 65 20  |line across the |
00001660  62 6f 74 74 6f 6d 20 61  6e 64 20 73 69 64 65 73  |bottom and sides|
00001670  20 6f 66 20 74 68 65 20  63 75 70 2e 20 54 68 65  | of the cup. The|
00001680  20 72 65 61 73 6f 6e 0a  66 6f 72 20 69 74 73 20  | reason.for its |
00001690  61 70 70 65 61 72 61 6e  63 65 20 69 73 20 74 6f  |appearance is to|
000016a0  20 64 6f 20 77 69 74 68  20 72 65 66 6c 65 63 74  | do with reflect|
000016b0  69 6f 6e 20 6f 66 20 6c  69 67 68 74 20 66 72 6f  |ion of light fro|
000016c0  6d 20 74 68 65 20 63 69  72 63 75 6c 61 72 20 73  |m the circular s|
000016d0  69 64 65 73 0a 6f 66 20  74 68 65 20 63 75 70 2e  |ides.of the cup.|
000016e0  20 56 61 72 79 69 6e 67  20 74 68 65 20 61 6e 67  | Varying the ang|
000016f0  6c 65 20 6f 66 20 74 68  65 20 73 69 64 65 73 20  |le of the sides |
00001700  28 74 68 75 73 20 76 61  72 79 69 6e 67 20 74 68  |(thus varying th|
00001710  65 20 73 68 61 70 65 20  6f 66 20 74 68 65 0a 65  |e shape of the.e|
00001720  6c 6c 69 70 73 65 20 70  72 65 73 65 6e 74 65 64  |llipse presented|
00001730  20 74 6f 20 74 68 65 20  6c 69 67 68 74 20 73 6f  | to the light so|
00001740  75 72 63 65 29 20 63 68  61 6e 67 65 73 20 74 68  |urce) changes th|
00001750  65 20 70 61 74 68 20 6f  66 20 74 68 65 20 6c 69  |e path of the li|
00001760  6e 65 20 69 6e 20 61 20  77 61 79 0a 74 68 61 74  |ne in a way.that|
00001770  20 72 65 70 72 65 73 65  6e 74 73 20 61 20 63 68  | represents a ch|
00001780  61 6e 67 65 20 69 6e 20  74 68 65 20 70 6f 73 69  |ange in the posi|
00001790  74 69 6f 6e 20 6f 66 20  74 68 65 20 66 6f 63 75  |tion of the focu|
000017a0  73 20 69 6e 20 74 68 69  73 20 70 72 6f 67 72 61  |s in this progra|
000017b0  6d 2e 0a 0a 0a 54 65 63  68 6e 69 63 61 6c 20 42  |m....Technical B|
000017c0  69 74 73 0a 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |its.============|
000017d0  3d 3d 0a 0a 54 68 65 72  65 20 69 73 6e 27 74 20  |==..There isn't |
000017e0  72 65 61 6c 6c 79 20 6d  75 63 68 20 74 6f 20 73  |really much to s|
000017f0  61 79 2e 20 54 68 65 20  70 72 6f 67 72 61 6d 20  |ay. The program |
00001800  77 61 73 20 77 72 69 74  74 65 6e 20 69 6e 20 43  |was written in C|
00001810  2c 20 61 6e 64 20 63 6f  6d 70 69 6c 65 64 0a 75  |, and compiled.u|
00001820  73 69 6e 67 20 47 4e 55  20 43 20 61 6e 64 20 44  |sing GNU C and D|
00001830  65 73 6b 6c 69 62 2e 20  54 68 69 73 20 69 73 20  |esklib. This is |
00001840  74 68 65 20 66 69 72 73  74 20 70 72 6f 67 72 61  |the first progra|
00001850  6d 20 49 20 68 61 76 65  20 77 72 69 74 74 65 6e  |m I have written|
00001860  20 74 6f 20 77 6f 72 6b  20 69 6e 0a 74 68 65 20  | to work in.the |
00001870  64 65 73 6b 74 6f 70 20  61 6e 64 20 49 20 64 6f  |desktop and I do|
00001880  6e 27 74 20 68 61 76 65  20 74 68 65 20 62 65 6e  |n't have the ben|
00001890  65 66 69 74 20 6f 66 20  74 68 65 20 50 52 4d 2e  |efit of the PRM.|
000018a0  20 54 68 61 74 20 49 20  67 6f 74 20 61 6e 79 77  | That I got anyw|
000018b0  68 65 72 65 20 69 73 0a  64 75 65 20 74 6f 20 74  |here is.due to t|
000018c0  68 65 20 63 6f 6d 70 72  65 68 65 6e 73 69 76 65  |he comprehensive|
000018d0  20 44 65 73 6b 6c 69 62  20 61 6e 64 20 53 57 49  | Desklib and SWI|
000018e0  20 53 74 72 6f 6e 67 48  65 6c 70 20 6d 61 6e 75  | StrongHelp manu|
000018f0  61 6c 73 20 61 6e 64 20  67 75 65 73 73 77 6f 72  |als and guesswor|
00001900  6b 2e 20 41 73 0a 61 20  72 65 73 75 6c 74 2c 20  |k. As.a result, |
00001910  49 20 73 74 69 6c 6c 20  63 61 6e 27 74 20 67 65  |I still can't ge|
00001920  74 20 74 68 65 20 52 61  6d 54 72 61 6e 73 66 65  |t the RamTransfe|
00001930  72 20 74 68 69 6e 67 79  20 74 6f 20 77 6f 72 6b  |r thingy to work|
00001940  2e 20 49 74 20 77 6f 72  6b 73 20 77 69 74 68 0a  |. It works with.|
00001950  5a 61 70 2c 20 62 75 74  20 6e 6f 74 20 44 72 61  |Zap, but not Dra|
00001960  77 2e 20 4e 65 76 65 72  6d 69 6e 64 2e 0a 0a 54  |w. Nevermind...T|
00001970  68 65 20 66 69 6c 65 20  70 72 6f 64 75 63 65 64  |he file produced|
00001980  20 69 73 20 61 20 44 72  61 77 20 53 65 6c 65 63  | is a Draw Selec|
00001990  74 69 6f 6e 2e 20 49 20  75 73 65 64 20 74 68 69  |tion. I used thi|
000019a0  73 20 66 6f 72 6d 61 74  20 66 6f 72 20 74 77 6f  |s format for two|
000019b0  20 72 65 61 73 6f 6e 73  2c 0a 66 69 72 73 74 6c  | reasons,.firstl|
000019c0  79 20 74 68 65 20 73 65  6c 65 63 74 69 6f 6e 20  |y the selection |
000019d0  66 69 6c 65 20 66 6f 72  6d 61 74 20 69 73 20 73  |file format is s|
000019e0  68 6f 72 74 65 72 20 61  6e 64 20 74 68 65 72 65  |horter and there|
000019f0  66 6f 72 65 20 65 61 73  69 65 72 20 74 6f 20 77  |fore easier to w|
00001a00  6f 72 6b 20 6f 75 74 0a  74 68 61 6e 20 74 68 65  |ork out.than the|
00001a10  20 65 6e 74 69 72 65 20  66 69 6c 65 20 28 49 20  | entire file (I |
00001a20  64 6f 6e 27 74 20 68 61  76 65 20 74 68 65 20 50  |don't have the P|
00001a30  52 4d 2c 20 61 6e 64 20  6f 6e 6c 79 20 41 46 54  |RM, and only AFT|
00001a40  45 52 57 41 52 44 53 20  64 69 64 20 49 0a 64 69  |ERWARDS did I.di|
00001a50  73 63 6f 76 65 72 20 74  68 65 20 66 69 6c 65 20  |scover the file |
00001a60  66 6f 72 6d 61 74 20 77  61 73 20 69 6e 20 53 74  |format was in St|
00001a70  72 6f 6e 67 48 65 6c 70  29 2e 20 53 65 63 6f 6e  |rongHelp). Secon|
00001a80  64 6c 79 2c 20 70 72 6f  76 69 64 69 6e 67 20 79  |dly, providing y|
00001a90  6f 75 20 67 65 74 20 74  68 65 0a 6c 65 66 74 20  |ou get the.left |
00001aa0  61 6e 64 20 62 6f 74 74  6f 6d 20 65 64 67 65 73  |and bottom edges|
00001ab0  20 6f 66 20 74 68 65 20  70 61 74 74 65 72 6e 20  | of the pattern |
00001ac0  6f 6e 20 74 68 65 20 70  61 67 65 2c 20 44 72 61  |on the page, Dra|
00001ad0  77 20 77 69 6c 6c 20 73  65 6c 65 63 74 20 74 68  |w will select th|
00001ae0  65 20 62 65 73 74 0a 70  61 67 65 20 73 69 7a 65  |e best.page size|
00001af0  20 61 6e 64 20 6f 72 69  65 6e 74 61 74 69 6f 6e  | and orientation|
00001b00  20 74 6f 20 67 65 74 20  74 68 65 20 72 65 73 74  | to get the rest|
00001b10  20 6f 66 20 74 68 65 20  70 61 74 74 65 72 6e 20  | of the pattern |
00001b20  6f 6e 2c 20 6e 6f 20 6d  61 74 74 65 72 20 77 68  |on, no matter wh|
00001b30  61 74 0a 73 69 7a 65 20  69 74 20 69 73 3a 20 4d  |at.size it is: M|
00001b40  79 20 70 72 6f 67 72 61  6d 20 64 6f 65 73 20 6e  |y program does n|
00001b50  6f 74 20 6e 65 65 64 20  74 6f 20 77 6f 72 72 79  |ot need to worry|
00001b60  20 61 62 6f 75 74 20 69  74 2e 20 49 20 68 61 76  | about it. I hav|
00001b70  65 20 66 69 78 65 64 20  69 74 20 73 6f 0a 74 68  |e fixed it so.th|
00001b80  61 74 20 74 68 65 20 62  6f 74 74 6f 6d 20 61 6e  |at the bottom an|
00001b90  64 20 6c 65 66 74 20 65  64 67 65 73 20 6f 66 20  |d left edges of |
00001ba0  74 68 65 20 70 61 74 74  65 72 6e 20 61 72 65 20  |the pattern are |
00001bb0  61 6c 77 61 79 73 20 32  63 6d 20 65 61 63 68 20  |always 2cm each |
00001bc0  66 72 6f 6d 20 74 68 65  0a 62 6f 74 74 6f 6d 20  |from the.bottom |
00001bd0  61 6e 64 20 6c 65 66 74  20 65 64 67 65 73 20 6f  |and left edges o|
00001be0  66 20 74 68 65 20 70 61  67 65 2e 20 54 68 69 73  |f the page. This|
00001bf0  20 73 65 65 6d 73 20 74  6f 20 61 6c 77 61 79 73  | seems to always|
00001c00  20 61 76 6f 69 64 20 74  68 65 20 70 72 69 6e 74  | avoid the print|
00001c10  0a 6d 61 72 67 69 6e 20  28 61 74 20 6c 65 61 73  |.margin (at leas|
00001c20  74 20 77 69 74 68 20 6d  79 20 70 72 69 6e 74 65  |t with my printe|
00001c30  72 29 2c 20 6e 6f 20 6d  61 74 74 65 72 20 77 68  |r), no matter wh|
00001c40  61 74 20 74 68 65 20 70  61 67 65 20 6f 72 69 65  |at the page orie|
00001c50  6e 74 61 74 69 6f 6e 2e  20 54 68 65 0a 66 69 6c  |ntation. The.fil|
00001c60  65 73 20 63 61 6e 20 74  68 65 6e 20 62 65 20 70  |es can then be p|
00001c70  72 69 6e 74 65 64 20 6f  75 74 20 69 6d 6d 65 64  |rinted out immed|
00001c80  69 61 74 65 6c 79 2c 20  61 6c 74 68 6f 75 67 68  |iately, although|
00001c90  20 70 6c 65 61 73 65 20  6e 6f 74 65 20 74 68 61  | please note tha|
00001ca0  74 20 79 6f 75 0a 63 61  6e 6e 6f 74 20 64 72 61  |t you.cannot dra|
00001cb0  67 20 74 68 65 20 69 63  6f 6e 20 64 69 72 65 63  |g the icon direc|
00001cc0  74 6c 79 20 74 6f 20 74  68 65 20 70 72 69 6e 74  |tly to the print|
00001cd0  65 72 20 64 72 69 76 65  72 20 69 63 6f 6e 3b 20  |er driver icon; |
00001ce0  79 6f 75 20 6d 75 73 74  20 66 69 72 73 74 0a 74  |you must first.t|
00001cf0  72 61 6e 73 66 65 72 20  74 68 65 20 66 69 6c 65  |ransfer the file|
00001d00  20 74 6f 20 44 72 61 77  2e 0a 0a 54 68 65 20 65  | to Draw...The e|
00001d10  6e 74 69 72 65 20 70 61  74 74 65 72 6e 20 69 73  |ntire pattern is|
00001d20  20 64 65 66 69 6e 65 64  20 61 73 20 61 20 73 69  | defined as a si|
00001d30  6e 67 6c 65 20 6f 62 6a  65 63 74 2c 20 6e 6f 74  |ngle object, not|
00001d40  20 61 20 67 72 6f 75 70  2e 20 54 68 69 73 20 61  | a group. This a|
00001d50  6c 6c 6f 77 73 20 69 74  0a 74 6f 20 62 65 20 64  |llows it.to be d|
00001d60  72 61 77 6e 20 6d 6f 72  65 20 72 61 70 69 64 6c  |rawn more rapidl|
00001d70  79 2e 0a 0a 49 6e 20 74  68 65 20 66 75 74 75 72  |y...In the futur|
00001d80  65 20 28 69 66 20 49 20  61 63 74 75 61 6c 6c 79  |e (if I actually|
00001d90  20 64 6f 20 61 6e 79 20  6d 6f 72 65 20 74 6f 20  | do any more to |
00001da0  74 68 69 73 20 70 72 6f  67 72 61 6d 29 20 49 20  |this program) I |
00001db0  73 68 6f 75 6c 64 20 6c  69 6b 65 20 74 6f 0a 66  |should like to.f|
00001dc0  69 6e 64 20 6f 75 74 20  77 68 79 20 6d 79 20 52  |ind out why my R|
00001dd0  61 6d 54 72 61 6e 73 66  65 72 20 70 72 6f 74 6f  |amTransfer proto|
00001de0  63 6f 6c 20 77 61 73 20  66 61 69 6c 69 6e 67 20  |col was failing |
00001df0  77 69 74 68 20 44 72 61  77 20 61 6e 64 20 66 69  |with Draw and fi|
00001e00  78 20 69 74 2c 20 61 6e  64 0a 61 6c 73 6f 20 61  |x it, and.also a|
00001e10  6c 6c 6f 77 20 64 72 61  67 67 69 6e 67 20 64 69  |llow dragging di|
00001e20  72 65 63 74 6c 79 20 74  6f 20 74 68 65 20 70 72  |rectly to the pr|
00001e30  69 6e 74 65 72 20 64 72  69 76 65 72 2c 20 6f 72  |inter driver, or|
00001e40  20 28 70 72 65 66 65 72  61 62 6c 79 29 20 61 64  | (preferably) ad|
00001e50  64 20 61 0a 50 72 69 6e  74 20 6f 70 74 69 6f 6e  |d a.Print option|
00001e60  20 77 69 74 68 69 6e 20  74 68 65 20 70 72 6f 67  | within the prog|
00001e70  72 61 6d 20 77 69 6e 64  6f 77 2e 0a 0a 0a 43 6f  |ram window....Co|
00001e80  70 79 72 69 67 68 74 20  6e 6f 74 69 63 65 0a 3d  |pyright notice.=|
00001e90  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 0a  |===============.|
00001ea0  0a 54 68 65 20 61 70 70  6c 69 63 61 74 69 6f 6e  |.The application|
00001eb0  20 27 21 50 61 74 74 65  72 6e 73 27 20 69 73 20  | '!Patterns' is |
00001ec0  63 6f 70 79 72 69 67 68  74 20 4d 69 63 68 61 65  |copyright Michae|
00001ed0  6c 20 57 69 6e 64 73 6f  72 20 31 39 39 36 2e 20  |l Windsor 1996. |
00001ee0  49 20 6f 66 66 65 72 20  6e 6f 0a 67 75 61 72 61  |I offer no.guara|
00001ef0  6e 74 65 65 73 20 61 73  20 74 6f 20 74 68 65 20  |ntees as to the |
00001f00  72 65 6c 69 61 62 69 6c  69 74 79 2f 73 74 61 62  |reliability/stab|
00001f10  69 6c 69 74 79 20 6f 66  20 69 74 20 6f 72 20 61  |ility of it or a|
00001f20  6e 79 20 6f 66 20 69 74  73 20 66 75 6e 63 74 69  |ny of its functi|
00001f30  6f 6e 73 2e 0a 0a 59 6f  75 20 6d 61 79 20 63 6f  |ons...You may co|
00001f40  70 79 20 74 68 65 20 70  72 6f 67 72 61 6d 20 66  |py the program f|
00001f50  72 65 65 6c 79 20 70 72  6f 76 69 64 65 64 20 74  |reely provided t|
00001f60  68 61 74 20 74 68 65 20  77 68 6f 6c 65 20 61 70  |hat the whole ap|
00001f70  70 6c 69 63 61 74 69 6f  6e 20 72 65 6d 61 69 6e  |plication remain|
00001f80  73 0a 75 6e 61 6c 74 65  72 65 64 20 61 6e 64 20  |s.unaltered and |
00001f90  61 6c 6c 20 68 65 6c 70  20 74 65 78 74 20 69 73  |all help text is|
00001fa0  20 69 6e 63 6c 75 64 65  64 2e 0a 0a 59 6f 75 20  | included...You |
00001fb0  6d 61 79 20 6e 6f 74 20  73 65 6c 6c 20 74 68 65  |may not sell the|
00001fc0  20 70 72 6f 67 72 61 6d  20 77 69 74 68 6f 75 74  | program without|
00001fd0  20 6d 79 20 77 72 69 74  74 65 6e 20 70 65 72 6d  | my written perm|
00001fe0  69 73 73 69 6f 6e 2e 20  48 6f 77 65 76 65 72 2c  |ission. However,|
00001ff0  20 50 75 62 6c 69 63 0a  44 6f 6d 61 69 6e 20 6c  | Public.Domain l|
00002000  69 62 72 61 72 69 65 73  20 6d 61 79 20 64 69 73  |ibraries may dis|
00002010  74 72 69 62 75 74 65 20  74 68 65 20 70 72 6f 67  |tribute the prog|
00002020  72 61 6d 20 70 72 6f 76  69 64 65 64 20 74 68 65  |ram provided the|
00002030  79 20 63 68 61 72 67 65  20 61 74 20 6d 6f 73 74  |y charge at most|
00002040  20 33 0a 70 6f 75 6e 64  73 20 73 74 65 72 6c 69  | 3.pounds sterli|
00002050  6e 67 20 70 65 72 20 64  69 73 63 2e 20 49 66 20  |ng per disc. If |
00002060  61 6e 79 6f 6e 65 20 65  6c 73 65 20 77 6f 75 6c  |anyone else woul|
00002070  64 20 6c 69 6b 65 20 74  6f 20 64 69 73 74 72 69  |d like to distri|
00002080  62 75 74 65 20 50 61 74  74 65 72 6e 73 0a 74 68  |bute Patterns.th|
00002090  65 6e 20 70 6c 65 61 73  65 20 77 72 69 74 65 20  |en please write |
000020a0  74 6f 20 6d 65 20 66 69  72 73 74 20 74 6f 20 67  |to me first to g|
000020b0  65 74 20 6d 79 20 70 65  72 6d 69 73 73 69 6f 6e  |et my permission|
000020c0  2e 0a 0a 0a 41 63 6b 6e  6f 77 6c 65 64 67 6d 65  |....Acknowledgme|
000020d0  6e 74 73 0a 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |nts.============|
000020e0  3d 3d 3d 0a 0a 49 27 64  20 6c 69 6b 65 20 74 6f  |===..I'd like to|
000020f0  20 67 69 76 65 20 6d 79  20 74 68 61 6e 6b 73 20  | give my thanks |
00002100  74 6f 20 44 6f 6d 69 6e  69 63 20 53 79 6d 65 73  |to Dominic Symes|
00002110  20 66 6f 72 20 5a 61 70  2c 20 77 68 69 63 68 20  | for Zap, which |
00002120  69 73 20 65 78 63 65 6c  6c 65 6e 74 20 61 6e 64  |is excellent and|
00002130  0a 4d 61 72 74 69 6e 20  45 62 6f 75 72 6e 65 20  |.Martin Ebourne |
00002140  77 68 6f 20 77 72 6f 74  65 20 74 68 65 20 43 20  |who wrote the C |
00002150  6d 6f 64 65 20 66 6f 72  20 5a 61 70 2c 20 61 6c  |mode for Zap, al|
00002160  73 6f 20 65 78 74 72 65  6d 65 6c 79 20 75 73 65  |so extremely use|
00002170  66 75 6c 2e 20 41 73 20  49 0a 6d 65 6e 74 69 6f  |ful. As I.mentio|
00002180  6e 65 64 20 65 61 72 6c  69 65 72 2c 20 53 74 72  |ned earlier, Str|
00002190  6f 6e 67 48 65 6c 70 20  68 61 73 20 62 65 65 6e  |ongHelp has been|
000021a0  20 69 6e 76 61 6c 75 61  62 6c 65 2c 20 73 6f 20  | invaluable, so |
000021b0  74 68 61 6e 6b 20 79 6f  75 20 47 75 74 74 6f 72  |thank you Guttor|
000021c0  6d 20 56 69 6b 2e 0a 0a  49 27 64 20 61 6c 73 6f  |m Vik...I'd also|
000021d0  20 6c 69 6b 65 20 74 6f  20 74 68 61 6e 6b 20 4a  | like to thank J|
000021e0  75 6c 69 61 6e 20 53 6d  69 74 68 20 61 6e 64 20  |ulian Smith and |
000021f0  74 68 6f 73 65 20 77 68  6f 20 68 61 76 65 20 63  |those who have c|
00002200  6f 6e 74 72 69 62 75 74  65 64 20 74 6f 0a 44 65  |ontributed to.De|
00002210  73 6b 6c 69 62 2c 20 50  65 74 65 72 20 42 75 72  |sklib, Peter Bur|
00002220  77 6f 6f 64 2c 20 53 69  6d 6f 6e 20 43 61 6c 6c  |wood, Simon Call|
00002230  61 6e 2c 20 61 6e 64 20  4e 69 63 6b 20 42 75 72  |an, and Nick Bur|
00002240  72 65 74 20 28 61 6e 64  20 61 6e 79 6f 6e 65 20  |ret (and anyone |
00002250  65 6c 73 65 29 20 66 6f  72 0a 74 68 65 20 52 69  |else) for.the Ri|
00002260  73 63 4f 53 20 70 6f 72  74 20 6f 66 20 47 43 43  |scOS port of GCC|
00002270  20 61 6e 64 20 55 6e 69  78 4c 69 62 2e 20 41 20  | and UnixLib. A |
00002280  66 72 65 65 20 43 20 63  6f 6d 70 69 6c 65 72 20  |free C compiler |
00002290  77 69 74 68 20 6c 69 62  72 61 72 69 65 73 20 69  |with libraries i|
000022a0  73 20 61 6c 6d 6f 73 74  0a 74 6f 6f 20 67 6f 6f  |s almost.too goo|
000022b0  64 20 74 6f 20 62 65 6c  69 65 76 65 2e 0a 0a 41  |d to believe...A|
000022c0  6c 73 6f 2c 20 6d 79 20  44 61 64 2c 20 42 72 69  |lso, my Dad, Bri|
000022d0  61 6e 20 57 69 6e 64 73  6f 72 2c 20 77 68 6f 20  |an Windsor, who |
000022e0  77 72 6f 74 65 20 74 68  65 20 6f 72 69 67 69 6e  |wrote the origin|
000022f0  61 6c 20 70 72 6f 67 72  61 6d 73 20 61 62 6f 75  |al programs abou|
00002300  74 20 74 65 6e 20 79 65  61 72 73 0a 61 67 6f 2e  |t ten years.ago.|
00002310  0a 0a 0a 49 20 68 6f 70  65 20 49 20 68 61 76 65  |...I hope I have|
00002320  20 77 72 69 74 74 65 6e  20 74 68 65 20 70 72 6f  | written the pro|
00002330  67 72 61 6d 20 73 6f 20  74 68 61 74 20 69 74 20  |gram so that it |
00002340  77 6f 6e 27 74 20 63 72  61 73 68 2c 20 6e 6f 20  |won't crash, no |
00002350  6d 61 74 74 65 72 20 77  68 61 74 20 79 6f 75 0a  |matter what you.|
00002360  64 6f 20 74 6f 20 69 74  2c 20 62 75 74 20 69 66  |do to it, but if|
00002370  20 69 74 20 64 6f 65 73  20 70 6c 65 61 73 65 20  | it does please |
00002380  6c 65 74 20 6d 65 20 6b  6e 6f 77 20 68 6f 77 20  |let me know how |
00002390  61 6e 64 20 28 70 72 65  66 65 72 61 62 6c 79 29  |and (preferably)|
000023a0  20 77 68 79 2e 20 49 74  20 68 61 73 0a 62 65 65  | why. It has.bee|
000023b0  6e 20 74 65 73 74 65 64  20 6f 6e 20 61 20 52 69  |n tested on a Ri|
000023c0  73 63 20 50 43 20 28 4f  53 20 33 2e 36 20 26 20  |sc PC (OS 3.6 & |
000023d0  33 2e 37 29 20 77 69 74  68 20 62 6f 74 68 20 61  |3.7) with both a|
000023e0  20 53 74 72 6f 6e 67 41  52 4d 20 61 6e 64 20 37  | StrongARM and 7|
000023f0  31 30 20 61 6e 64 20 61  6e 0a 41 33 31 30 20 28  |10 and an.A310 (|
00002400  4f 53 20 33 2e 31 29 2e  0a 0a                    |OS 3.1)...|
0000240a