So you actually want to make another copy of Flu?
This gets complicated..

All programs assume you have the required files
in the RAM disk, and store their output in there
too. This is because I am paranoid about the data
on my hard-drive. Most data generators will give
strange error messages if they can't find the files
they need.

To avoid constantly filling up the RAM disk, ensure
it is 1 meg or so.



First, you must generate the various data files.
The raw data is provided in MakeData (which should
be copied to RAMdisk). The programs are in MakeCode,
and should run from anywhere. They usually show you
what they are doing, or at least give a clue. :-)


In order, by part:

* Flu Flash
Generate a 1bpp datafile 'LogoDat' from the spritefile
'FluSprite' by running ''

* Flame-Phoebe
Generate a run-length encoded datafile 'RLEPheDat2'
from the spritefile 'TinyPhe' by running ''

* Reflections
Generate a delta-compressed, run-length compressed
file 'Mooncrunch' from the spritefile 'Moon256' by running
''

* Fishy
Generate an interpolated, delta-compressed, patched
data file 'DeltaFish2' from the previous datafile 'fish5bpp'
(I supply a copy of the original sprite
(256 colours) but no converter to that because I
don't have one (Alain did it originally) and
it looks like a trivial removal of the 3 least
significant bits by right-shifting each pixel.)

Colour-blobs needs no external data.

* Music
'' generates 2 files from 'flowerc_xm': 'flowercol' and
'sizes'. The latter holds 3 words of data which are legacy
from Eli's 8k music demo. Currently still required I'm
afraid.

Create a directory called 'Music' and put the
compressed music file 'flowercol' inside, along with the
player 'TimPlayer' which you can find a copy of
in Flu.Music . You will need these to run Flu it has been
made.



So you should now have in RamFS:
DeltaFish2
LogoDat
Mooncrunch
Music.flowercol
Music.TimPlayer
RLEPheDat2
sizes

These may have various filetypes because I've not
been too rigorous about typing them.

I suggest you tidy up RAM:$ now if you have not
already, and copy the data files somewhere so you
don't have to go through this rigermarole again.


Now generate the executable by running 'FluSource'.
This takes some time because it is not just
assembling the code, but also compressing it using
BASIC routines. I apologise for this but it does
work ... sometimes. The technique is quite hairy so
I was just glad that it worked. (I would like to
make a 2k util to do this for any program, but I
seriously doubt I'll have time before the end of
CC#2.) Anyway, when that has finished you should
have a working copy of Flu.
Until then, if you want to play around with it, I've left in
a debugging aid.

There are two variables at the very start of FluSource -
temp_path% and temp_cont%
If the former is 1 then after assembling but before
compressing, flu will save a file 'initial'. Running flu, it
will decompact itself and save to a file 'saveuncomp'.
If the latter variable is set the program will attempt to
continue.
The file 'MinCompare' will compare the two files,
printing out the words which don't match. If all goes
well there should just be 4 words near the start
(which are patched after compression).
You can then try to work out what the problem is by
dissasembling. I use StrongEd. 


Tony Haines    28/4/2000

a.s.haines@bham.ac.uk
(All routines freeware, correspondence welcome,
credits gratefully received, no responsibility
accepted for loss of life, property or sanity.)

