@database AmiForge
@master AmiForge.guide
@$VER: AmiForge Documentation 1.00 (19.06.1997)
@author "Redaelli Paolo"
@(c) "Copyright © GNU 1996/1997 "
@index INDEXNODE

@node "MAIN" "Table of contents"
			     @{b}@{u}AmiForge@{ub}@{uu}
		   Fractal forgery of landscapes and textures
			Version 1.01 March 26 1997
	   Original Un*x version by:
				John Beale
			Amiga Porter: Redaelli Paolo
     This program is GNU: more than Freeware!

The program

 @{" Introduction " link "Introduction" 0}      -  What is AmiForge?
 @{" Amiforge is GNU and DonateWare" link "Donations" 0}      - Amiforge is GNU but READ THIS, please!
 @{" Requirements " link "Requirements" 0}      -  Was is required to run the program?
 @{"Beta Version!!!!!" link "Beta" 0}         - IT'S A BETA!!! FINALE COMING IN SEPTEMBER!!
 @{" Math " link "Math" 0}          -  What kind of math does it use?
 @{" Installation " link "Installation"0}      -  Where to put it to?
 @{" QuickStart" link "QuickStart" 0}         -  How to obtain steady results?
 @{" Options" link "Options"0}     -  What do this buttons & gadgets mean?
 @{" Bugs" link "Bugs"  0}     -  Hope you will not see any of them!
 @{" SeeAlso" link "SeeAlso" 0}              -  Where to find more info?

Important additional information

    @{"Author" link "Author"0}   - Who created the original program (Gforge) !
    @{"Porter" link "Porter" 0}   - Who make the port... (@{"Port" link "Port" 0}an easy port!)
    @{" COPYRIGHT" link "COPYRIGHT" 0} - GNU Licence please, read it!

@endnode

@node "Introduction" "Introduction"
@{u}Introduction - Desciption@{uu}
AmiForge generates a landscape texture by "random  fractal  forgery,"  the
term  coined  by  Richard  F.  Voss of the IBM Thomas J. Watson Research
Center for seemingly realistic pictures of natural objects generated  by
simple algorithms embodying randomness and fractal self-similarity.  The
techniques used by AmiForge are essentially those given by  Voss[1],  par-
ticularly  the  technique of spectral synthesis explained in more detail
by Dietmar Saupe[2]. The source code (and this man page) was mostly tak-
en  from  the  "ppmforge"  module[3]  in the PBMPLUS package of graphics
utilities. The gforge "crater" option was contributed by Heiko Eissfeldt
heiko@colossus.escape.de>.
This Amiga port uses MUI Magic User Interface. Please see the file 
Readme.mui" for further details.
This guide comes stright forth Un*x readme by John P. Beale, who wrote the
original program. His email is: beale@best.com
@endnode

@node "Donations" "Donations"
@{u} Gnu, Shareware and  Donations  @{uu}

I hope you'll find this program useful, especially for ray-tracing graphics  and
demo.  The  core of this program come stright from Un*x version by John Beale. I
have developed only the Amiga Gui. Nevertheless I've spent some time to make  it
stable  and  well designed. I hope it has not any big bug, or lacks of any sort.
At least, I've tested it for almost 2 weeks  and  never  had  a  crash,  obtaing
always  what  I intended to get. Therefore I've decided to make it "RewardWare".
It's a term I invented to say:

"Okey, the program is GNU, i.e.: more  than  free.  But  I  have  no  source  of
monetary  incoming,  yet.  Therefore  I'll  accept warmly a little reward for my
humble work. I assure you I'll use these small sums to improve my machine (i.e.:
PowerPc  versions,  multiprocessor  version  ecc.)  and  to  continue develop of
AmiForge. A small sum about $5 will be sufficient and greatly  appreciated,  but
keep  in  mind  that I'm obliging no one. For those who will be so gentle toward
me, I'll assure also:
- personal version, compiled and prepared to fit the needs of the user.
- constant email support for ANY problem.
- avalaibility on phone, email, IRC
- various supports such as: tips & technics, tutorial on my web site."
And this is exactly what I'll do!

For donations, plese send money enclosed in an envelope to:
Redaelli  Paolo
via Garibaldi, 6
20033  Desio  Milano
Italy

I accept any mayor cash, Usa dollars, Deutch (DM), english pound,  Italian  Lire
ecc.  Send what you can, as any sum will be accepted, and you'll get assistance!
But please don't waste a stamp for a sum not deserving it! If you decide to send
me a donation, it would be better if it'a above 4 american dollars. Thank you in
advance and don't forget to put your e-mail and comments on a sheet!  I'll  read
and  apply them! You can even ask me to solve your problem on-line within an Irc
session.

 ____________________________________________________________________________
/ Redaelli Paolo EMail: redaelli@mi2.flashnet.it | Known as Tybor on #Amiga, \
|                                                | #AmIrc and #AmigaIta      |
\____________________________________________________________________________/


@endnode

@node "Requirements"  "Requirements"
@{u}Requirements@{uu}
Requirements:
This program comes in a variety of flavours:

- 68000 plain,
- 68030 + fpu,
- 68040

Please consider to use the fittest version, since this program does  HEAVY  math
operations,  with  MANY  transcendent,  so  a  Floating Point Unit (FPU) is very
useful, and almost necessary. It takes almost 3  minutes  to  render  a  512*512
pixel picture on my 68060-50 mhz.... 8-/

This Amiga port uses MUI Magic User Interface. Please see the  file  Readme.mui"
for  further  details. The more great the image you want to produce the more ram
you need. You will need moreor less 4 Mb of free memory unfragmented to generate
a  512  pixel square image. If you want to get a big file to use as Height-Field
in ray tracing programs such as Persist of  Vision,  you'll  end  up  trying  to
render  1024 square pictures. Keep in mind that such an image needs 8 Mb of free
unfragmented memory, not counting program and Mui necessities. If you  have  not
plenty  of  Ram, use Virtual Memory (I use VMM 3.3a from Aminet and run smoothly
on my 68060) or buy more  ram...  The  program  need  ixemul.library,  which  is
included  into  the archive. I included the most fitting version, so 68040 & 060
owners will get version "040+fpu", 68030  &  68881-2  owners  will  get  version
"020+fpu" and the plainer version comes with a plain 68000 version @endnode

@node "Math" "Math"
@{u}What kind of math does it use?@{uu}
The generation of a landscape begins with the preparation of an array of  random
data  in  the  frequency domain. The size of this array, the "mesh size," can be
set with the Mesh gadget; the larger the mesh the more  realistic  the  pictures
but  the  calculation time and memory requirement increases as the square of the
mesh size. The degree of roughness, which you can  specify  with  the  dimension
gadget,  determines  whether  the  resulting  terrain is rolling hills or jagged
mountins. As the dimension value is increased, more  high  frequency  components
are  added  into  the  random  mesh.  (Note  that  this number does NOT directly
correspond to a conventional 'fractal' dimension, eg.  a  Hausdorff-  Besicovich
dimension. All gforge surfaces have a 'fractal dimension' near 2.0.)

You may apply a band-pass and/or  band-reject  filter  to  the  frequency  data,
specifying  the  normalized  [0..1]  center  frequency and Q (sharpness) of each
filter. Lowpass and highpass filters are also available. Then an inverse Fourier
transform  is  performed  upon  it, which converts the original random frequency
domain data into spatial amplitudes. We scale the real  components  that  result
from  the  Fourier transform into numbers from 0 to 1 associated with each point
on the mesh. You can further modify this number by applying a "power law  scale"
to it with the -power option. Unity scale leaves the numbers unmodified; a power
scale of 0.5 takes the square root of the numbers in the  mesh,  while  a  power
scale of 3 replaces the numbers in the mesh with their cubes. Powers less than 1
yield landscapes with vertical scarps that look  like  glacially-carved  valleys
(with  -limit -1.0 1.0); powers greater than one make fairy-castle spires (which
require large mesh sizes for best results). Craters, if that option is selected,
are  added  at  this  point.  After  these calculations, we have an array of the
specified size containing numbers that range from 0 to 1. Six output formats are
available as described below. @endnode

@node "Installation" "Installation"
@{u}1.4 Installation @{uu}
Simply drag the drawer of this program where do you want to have it.
@endnode

@node "QuickStart" "QuickStart"
@{u}QuickStart: how to obatin steady results@{uu}
When you lanuch AmiForge the options  are  setted  to  generate  a  file  called
"output.tga"  in  Ram  Disk  which  looks like a somewhat bumpy hillside (in POV
any-way... being a special format, it will look like green speckled noise  in  a
standard viewer).

To get an image of sand use:
Power: 1.00      Dimension: 4.00 File Name "Ram:Sand.png" Type Png
then click "Render" button. You'll get a window where  the  original  Un*x  will
print  out  what's  going on. In this beta version the rendering blocks the gui,
i.e.: when you resize window, the contents will not be updated.  Soon  after  my
vacations  I'll  release  a  full  multi-threading  version, permitting to start
multiple renders, and a PowerPc version (so when  you'll  buy  your  double  604
PowerPc you'll boast it at its fullest!)

To obtain a mountain range to render with Pov you can set options this 
way: power 1.8, dimension 2.4, mesh size 400

Getting your landscape to  look just  right  will  require playing around
with the dimension and power specs.
@endnode



@node "Options" "Options"
@{u}Options@{uu}
Mesh 

The size of the (n x n) IFFT (inverse fast-fourier  transform)  ma-
trix.    To  prevent  the  IFFT  from  becoming  a  slow  fourier
transform, it is suggested that the mesh size be a  power  of  two,
but  you  can  choose  any number you want. If it happens to have a
large prime factor, or be itself a prime number, the IFFT  calcula-
tion  will  be  considerably  slowed.  The default meshsize is 128.
Note that a mesh size of 1024 will require just over 8 megabytes of
memory.


Dimension
Sets the dimension to the specified dim, which may be any  floating
point  value  between  0  and  3.   Higher  dimensions  create more
chaotic'' images, which require higher resolution  output  and  a
larger  FFT  mesh size to look good.  If no dimension is specified,
2.15 is used. To be precise, the initial mesh is filled with  gaus-
sian  noise of amplitude (1/f)^(4 - dim).  Accordingly, dim=4 would
give you pure white noise.

Additional Noises Button & Additional Noises Window
With this window,
Adds an additional component of noise in the frequency domain  with
the dimension ad and amplitude (scaled relative to the first speci-
fied dimension) of ascale.  You can add up to nine  additional  di-
mensions, although one or two is almost certainly enough. Often you
don't need any at all. An example might be to  have  large  rolling
hills  of dim 1.7, with a touch of higher frequencies for a rougher
texture:
Dimension 1.7 One Additional Dimension 2.0 Amplitude 0.1
Power 1.8

Power exponent
Raise the elevation powers to the specified exponent, giving a non-
linear scaling effect, useful for some purposes.

Filters window:
Band Pass and Band Reject Filters
Apply a band-pass and/or band-reject to the frequency data  before  the  inverse
FFT.  To  use  them,  click  on  the gadget "Use it". Center-frequency should be
between 0.0 and 1.0. A band-pass filter at f=0 is just a low-pass filter, and at
f=1.0 it is a high-pass filter. Q ("quality factor") 0.5 is a broad filter, Q=20
is narrow. Try these options to see their effects.

Low Pass and High Pass Filters
Apply a low-pass or high-pass filter to the  frequency  data.  Cutoff-frequency,
between 0 and 1, is the frequency at which the response drops by half. Order may
be any positive value; 1 is a soft filter, 1000 is a brick-wall filter.

Limit Window
Only relevant if a -power exponent other than 1.0 is selected. Scales terrain to
the range Min - Max ] prior to raising to a power. Default is [0.0 - 1.0].

Crater Window
Add craters to the landscape. The optional density parameter controls  how  many
there are. The default 1.0 gives you moderate cratering, but you can specify any
positive value. Crater height defaults to 1.0, for what I felt  were  reasonable
looking  craters.  This is the vertical crater height relative to the underlying
landscape scale, and will need to be changed depending  on  how  you  scale  the
vertical  axis  of  your heightfield when you render it. As height goes to zero,
the craters dwindle in height and disappear. Crater radius follows a  power  law
distribution. The WrapOff Gadget turn off the default wraparound of craters. The
underlying landscape is always tilable, but with  this  option  it  will  become
farther  and  farther from being tilable as more craters are added. I'm not sure
if this is actually useful. Note: cannot be used with the "peak" option, but the
Gui will switch these options for you.


Peak Window
You can specify the location of the largest value (highest peak) in the image as
a  fraction  of  the  image height and width. For example, rendering a file with
Dimension 1.5, Power 3 Peak x=0.5 Peak y=0.5, Name lonelymountain.tga  puts  the
highest peak in the center of the image. This is most useful for lower values of
dim where there is only one or a few broad maxima; at -dim 2 or above  it  tends
to make less difference. If you don't specify it, it's somewhere random.

Seed seed
You can give it a random number seed, otherwise it  chooses  one  based  on  the
current  time  from the system clock. If you use the same seed, you get the same
image every time. P.s.: the default number shown in  this  gadget  is  my  birth
date.

Type
Six options, default is TGA. TGA and PGM are 16-bit formats, and PG8 is just PGM
8-bit binary format. PG8 , will produce a standard PGM file suitable for viewing
in a standard graphic viewer to check out what the options  are  doing  to  your
landscape.  OCT  produces  an  ascii  file  compatible  with  Octave  v1.1.1,  a
matrix-math package similar  in  function  to  Matlab.  MAT  produces  a  32-bit
floatingpoint  file  in  the  Matlab  binary  format.  PNG  generates 16-bit PNG
portable network graphics) greyscale, which at the time of  this  writing  is  a
very new format, but gaining in support.
@endnode


@node "Bugs" "Bugs"
@{u}BUGS@{uu}
tiling 'feature'
Because the FFT operates on periodic functions, the opposite edges of the  image
will  always  match up. If it turns out you want to cover a large area by tiling
these textures together, this is just what you want (ie, it's  a  FEATURE...  in
fact  one  way  to  generate useful tilable textures is by taking the FFT of any
interesting picture, filtering a bit, and doing the inverse transform.)  If  you
don't  want periodicity, just generate a larger image than you need and use some
smaller fraction of it. The "Wrapoff" option applies only  to  craters  crossing
the  page  edge. The "Peak" and "Wrapoff" options cannot be used simultaneously,
but the gui will prevent you from doing so.

Fixed output sizes
The output is always a square grid. If you want a different  aspect  ratio,  you
should  use  another image processing package to crop or rescale as appropriate.
Unfortunately most of them don't support 16 bits  of  precision.  John  Cristy's
ImageMagick  3.6.5  can  be  compiled  to  support  16-bit PNG, and POV-Ray 3.01
supports PNG input, output, imagemaps, and heightfields:

http://www.wizards.dupont.com/cristy/ImageMagick.html
http://www-mddsp.enel.ucalgary.ca/People/adilger/povray/pngpov.html

@endnode


@node "SeeAlso" "SeeAlso"

SEE ALSO
ppmforge(1), ppm(5), POV-Ray docs

1]  Voss, Richard F., ``Random Fractal  Forgeries,''  in  Earnshaw  et.
al.,   Fundamental   Algorithms   for  Computer  Graphics,  Berlin:
Springer-Verlag, 1985.

2]  Peitgen, H.-O., and Saupe, D. eds., The Science Of Fractal  Images,
New York: Springer Verlag, 1988.

3]  Walker, John, "ppmforge.c" in Jef Poskanzer's PBMPLUS raster toolk-
it, 1991.  <kelvin@fourmilab.ch>  <http://www.fourmilab.ch/>

@endnode


@node "Author" "Author"
@{u}Author@{uu}
	  John Beale                              Heiko Eissfeldt
	  P.O. Box 8188                           <heiko@colossus.escape.de>
	  Stanford, CA 94309-8188 USA
	  ---------------------------
	  beale@jumpjibe.stanford.edu
	  http://www-leland.stanford.edu/~beale

@endnode

@node "Porter" "Porter"
@{u}I'm the one who made the Amiga port: @{uu}

	  Redaelli Paolo
	  redaelli@mi2.flashnet.it

I had permission from John Beale - the author of the original program - to make
@{"this port" link "Port" 0} an easy one indeed
@endnode

@node "COPYRIGHT" "COPYRIGHT"
@{u}Copyright@{uu}
   
			 GNU GENERAL PUBLIC LICENSE
				       
   Version 2, June 1991 
   

Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge,
MA 02139, USA

Everyone  is  permitted  to  copy and distribute verbatim copies of this license
document, but changing it is not allowed.
   
Preamble
   
   
The  licenses  for most software are designed to take away your freedom to share
and change it. By contrast, the  GNU  General  Public  License  is  intended  to
guarantee  your  freedom  to  share  and  change free software--to make sure the
software is free for all its users. This General Public License applies to  most
of  the  Free  Software  Foundation's  software  and  to any other program whose
authors commit to using it. (Some other Free  Software  Foundation  software  is
covered  by the GNU Library General Public License instead.) You can apply it to
your programs, too.
   
When we speak of free software, we are referring  to  freedom,  not  price.  Our
General  Public  Licenses are designed to make sure that you have the freedom to
distribute copies of free software (and charge for this service  if  you  wish),
that  you  receive source code or can get it if you want it, that you can change
the software or use pieces of it in new free programs; and that you know you can
do these things.
   
To  protect your rights, we need to make restrictions that forbid anyone to deny
you these rights or to ask you  to  surrender  the  rights.  These  restrictions
translate  to  certain  responsibilities for you if you distribute copies of the
software, or if you modify it.
   
For example, if you distribute copies of such a program, whether gratis or for a
fee,  you  must  give the recipients all the rights that you have. You must make
sure that they, too, receive or can get the source code. And you must show  them
these terms so they know their rights.
   
We  protect your rights with two steps: (1) copyright the software, and 2) offer
you this license which gives you legal permission  to  copy,  distribute  and/or
modify the software.
   
Also,  for  each  author's  protection  and  ours,  we want to make certain that
everyone understands that there is no warranty for this free  software.  If  the
software  is  modified  by someone else and passed on, we want its recipients to
know that what they have is not the original, so that any problems introduced by
others will not reflect on the original authors' reputations.
   
Finally,  any free program is threatened constantly by software patents. We wish
to avoid the danger that redistributors of  a  free  program  will  individually
obtain  patent  licenses,  in  effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's free
use or not licensed at all.
   
The  precise  terms  and  conditions  for copying, distribution and modification
follow.
   
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

   
   
1. This License applies to any program or other work  which  contains  a  notice
placed  by  the copyright holder saying it may be distributed under the terms of
this General Public License. The "Program", below, refers to any such program or
work,  and  a  "work  based  on  the  Program"  means  either the Program or any
derivative work under copyright law: that is  to  say,  a  work  containing  the
Program  or  a  portion  of  it,  either  verbatim  or with modifications and/or
translated into another language. (Hereinafter, translation is included  without
limitation in the term "modification".) Each licensee is addressed as "you".
       
Activities  other than copying, distribution and modification are not covered by
this License; they are outside its scope. The act of running the Program is  not
restricted,  and  the  output  from  the Program is covered only if its contents
constitute a work based on the Program  (independent  of  having  been  made  by
running the Program). Whether that is true depends on what the Program does.
       
2.  You  may copy and distribute verbatim copies of the Program's source code as
you receive it, in any medium, provided that you conspicuously and appropriately
publish on each copy an appropriate copyright notice and disclaimer of warranty;
keep intact all the notices that refer to this License and to the absence of any
warranty;  and  give  any other recipients of the Program a copy of this License
along with the Program.
       
You may charge a fee for the physical act of transferring a copy, and you may at
your option offer warranty protection in exchange for a fee.
       
3.  You may modify your copy or copies of the Program or any portion of it, thus
forming a work based on the Program, and copy and distribute such  modifications
or  work  under the terms of Section 1 above, provided that you also meet all of
these conditions:
       
1. You must cause the modified files to carry prominent notices stating that you
changed the files and the date of any change.
	    
2.  You  must cause any work that you distribute or publish, that in whole or in
part contains or is derived from the Program or any part thereof, to be licensed
as a whole at no charge to all third parties under the terms of this License.
	    
3.  If  the modified program normally reads commands interactively when run, you
must cause it, when started  running  for  such  interactive  use  in  the  most
ordinary  way,  to  print  or  display  an announcement including an appropriate
copyright notice and a notice that there is no warranty (or  else,  saying  that
you  provide a warranty) and that users may redistribute the program under these
conditions, and telling the user how to view a copy of this License. (Exception:
if  the  Program  itself  is  interactive  but  does  not normally print such an
announcement, your work based on  the  Program  is  not  required  to  print  an
announcement.)
   
       
These requirements apply to the  modified  work  as  a  whole.  If  identifiable
sections  of  that  work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License,  and
its  terms,  do not apply to those sections when you distribute them as separate
works. But when you distribute the same sections as part of a whole which  is  a
work based on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the entire  whole,
and thus to each and every part regardless of who wrote it.
       
Thus,  it  is  not  the  intent  of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is  to  exercise  the
right to control the distribution of derivative or collective works based on the
Program.
       
In addition, mere aggregation of another work not based on the Program with  the
Program  (or  with  a  work  based  on  the Program) on a volume of a storage or
distribution medium does not bring the  other  work  under  the  scope  of  this
License.
       
4. You may copy and distribute the Program (or a work based on it, under Section
2) in object code or executable form under the terms of Sections 1 and  2  above
provided that you also do one of the following:
       
1.  Accompany  it  with the complete corresponding machine-readable source code,
which must be distributed under the terms of Sections 1 and 2 above on a  medium
customarily used for software interchange; or,
	    
2.  Accompany  it  with a written offer, valid for at least three years, to give
any third party, for a charge no more than your cost  of  physically  performing
source  distribution,  a  complete  machine-readable  copy  of the corresponding
source code, to be distributed under the terms of Sections 1 and 2  above  on  a
medium customarily used for software interchange; or,
	    
3.  Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only  for  noncommercial
distribution  and  only if you received the program in object code or executable
form with such an offer, in accord with Subsection b above.)
   
       
The  source  code  for  a  work  means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all  the
source  code  for  all  modules  it  contains,  plus  any  associated  interface
definition files, plus the scripts used to control compilation and  installation
of  the executable. However, as a special exception, the source code distributed
need not include anything that is normally  distributed  (in  either  source  or
binary  form)  with  the  major  components (compiler, kernel, and so on) of the
operating system on which the executable  runs,  unless  that  component  itself
accompanies the executable.
       
If  distribution of executable or object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the source code
from the same place counts as distribution of the source code, even though third
parties are not compelled to copy the source along with the object code.
       
5. You may not copy, modify, sublicense, or distribute  the  Program  except  as
expressly  provided  under  this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will  automatically  terminate
your  rights  under  this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses  terminated  so
long as such parties remain in full compliance.
       
6.  You  are  not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the  Program
or  its  derivative  works.  These  actions  are prohibited by law if you do not
accept this License. Therefore, by modifying or distributing the Program (or any
work  based  on the Program), you indicate your acceptance of this License to do
so, and all its terms and conditions for copying, distributing or modifying  the
Program or works based on it.
       
7.  Each  time  you redistribute the Program (or any work based on the Program),
the recipient automatically receives a license from  the  original  licensor  to
copy,  distribute  or  modify the Program subject to these terms and conditions.
You may not impose any further restrictions on the recipients' exercise  of  the
rights granted herein. You are not responsible for enforcing compliance by third
parties to this License.
       
8. If, as a consequence of a court judgment or allegation of patent infringement
or  for  any other reason (not limited to patent issues), conditions are imposed
on you (whether by court order, agreement  or  otherwise)  that  contradict  the
conditions  of  this License, they do not excuse you from the conditions of this
License.  If  you  cannot  distribute  so  as  to  satisfy  simultaneously  your
obligations  under  this  License and any other pertinent obligations, then as a
consequence you may not distribute the Program at all. For example, if a  patent
license would not permit royalty-free redistribution of the Program by all those
who receive copies directly or indirectly through you, then  the  only  way  you
could  satisfy  both  it  and  this  License  would  be to refrain entirely from
distribution of the Program.
       
If any portion of this section  is  held  invalid  or  unenforceable  under  any
particular circumstance, the balance of the section is intended to apply and the
section as a whole is intended to apply in other circumstances.
       
It is not the purpose of this section to induce you to infringe any  patents  or
other  property  right  claims  or  to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of  the  free  software
distribution  system,  which  is  implemented  by public license practices. Many
people  have  made  generous  contributions  to  the  wide  range  of   software
distributed  through  that  system in reliance on consistent application of that
system; it is up to the author/donor to decide  if  he  or  she  is  willing  to
distribute  software  through any other system and a licensee cannot impose that
choice.
       
This section is intended to make thoroughly clear  what  is  believed  to  be  a
consequence of the rest of this License.
       
9.  If  the  distribution  and/or  use  of  the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original copyright
holder   who  places  the  Program  under  this  License  may  add  an  explicit
geographical  distribution  limitation  excluding  those  countries,   so   that
distribution  is permitted only in or among countries not thus excluded. In such
case, this License incorporates the limitation as if written in the body of this
License.
       
10.  The Free Software Foundation may publish revised and/or new versions of the
General Public License from time to time. Such new versions will be  similar  in
spirit  to the present version, but may differ in detail to address new problems
or concerns.
       
Each version is given a distinguishing version number. If the Program  specifies
a  version  number  of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that version
or  of  any  later  version  published  by  the Free Software Foundation. If the
Program does not specify a version number of this License, you  may  choose  any
version ever published by the Free Software Foundation.
       
11.  If  you  wish  to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to  the  author  to  ask  for
permission.  For  software which is copyrighted by the Free Software Foundation,
write to the Free Software Foundation; we sometimes make  exceptions  for  this.
Our  decision  will  be guided by the two goals of preserving the free status of
all derivatives of our free software and of promoting the sharing and  reuse  of
software generally.
       
NO WARRANTY

   
       
12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
OR CORRECTION. 
       
13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
   
END OF TERMS AND CONDITIONS

   
   
How to Apply These Terms to Your New Programs

   
   
If you develop a new program, and you want it to be of the greatest possible use
to  the  public,  the best way to achieve this is to make it free software which
everyone can redistribute and change under these terms.
   
To do so, attach the following notices to the program. It is  safest  to  attach
them  to  the start of each source file to most effectively convey the exclusion
of warranty; and each file should have at  least  the  "copyright"  line  and  a
pointer to where the full notice is found.
   

one line to give the program's name and an idea of  what  it  does.  CopyrightC)
19yy name of author

This program is free software; you can redistribute it and/or modifyit under the
terms of the GNU  General  Public  License  as  publishedby  the  Free  Software
Foundation;  either  version  2  of  the  Licenseor  (at  your option) any later
version.

This program is distributed in the hope that it will be useful,  butWITHOUT  ANY
WARRANTY;  without  even the implied warranty of MERCHANTABILITYor FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General PublicLicense for more details.

You should have received a copy of the GNU General Public License alongwith this
program;  if  not,  write  to  the  Free  Software FoundationInc., 675 Mass Ave,
Cambridge, MA 02139, USA.

   
   
Also add information on how to contact you by electronic and paper mail.
   
If the program is interactive, make it output a short notice like this  when  it
starts in an interactive mode:
   

Gnomovision version 69, Copyright (C) 19yy name of author Gnomovisioncomes  with
ABSOLUTELY  NO  WARRANTY; for details type `show wThis is free software, and you
are welcome to redistributeit  under  certain  conditions;  type  `show  c'  for
details.

   
   
The  hypothetical  commands  `show  w'  and `show c' should show the appropriate
parts of the General Public License. Of course, the  commands  you  use  may  be
called  something  other  than  `show  w'  and  `show  c';  they  could  even be
mouse-clicks or menu items--whatever suits your program.
   
You should also get your employer (if you work as a programmer) or your  school,
if  any, to sign a "copyright disclaimer" for the program, if necessary. Here is
a sample; alter the names:
   

Yoyodyne,   Inc.,   hereby   disclaims  all  copyright  interestin  the  program
`Gnomovision' (which makespasses at compilers) written by James Hacker.

signature of Ty Coon, 1 April 1989 TyCoon, President of Vice

   
   
This General Public License does not  permit  incorporating  your  program  into
proprietary  programs. If your program is a subroutine library, you may consider
it more useful to permit linking proprietary applications with the  library.  If
this  is what you want to do, use the GNU Library General Public License instead
of this License.
 
@endnode

@node "Port" "Port"
@{u}Port@{uu}

@endnode

@node "Beta" "Beta"
@{u}Beta Version!@{uu}
IT'S A BETA VERSION!! IT HAS ALL THE FUNTIONALITIES OF THE ORIGINAL GFORGE, PLUS
THE  MUI,  USER FRIENDLY INTERFACE. IT HAS SOME PARTS NOT WORKING: ALL THE MENUS
EXCEPT RENDER AND QUIT. RENDER MENU IS EQUAL TO THE GADGET, QUIT OPTION IS QUITE
OBVIOUS!  THE  OTHER  FUNCTIONALITIES  WILL ARRIVE ON SEPTEMBER WHEN I'LL RETURN
FROM VACATIONS!
@endnode

