WHAT IS COLUMBIA?

A file compressor. It aims to reduce tape or disc file space. The principle is
that in any file, there is repetition. E.G. a text file, only a few characters
are used: letters, punctuation, numbers.  Yet the CPC stores each in the space
that has a  capacity for up  to 256 values. So, for example, by replacing each
usage  of the word "the" with the  otherwise unused value 128, you will save 2
characters (bytes) per occurrence of the word.

In goes the  original file: out comes the compressed file, either an "archive"
or an "executable" file. The "executable" is for machine code programmers:  it
outputs a RUNable file as the original program, immediately decompressing into
memory. The "archive" option is something that all will find useful:  the file
has to be decompressed by Columbia before it can be used again, but takes up a
lot less space on the disc.

E.G. - say you have a disc on which are  all your personal correspondence. You
are unlikely to read the letters again, later you might  need to find out what
you wrote. Compress them all with Columbia and erase the originals: you've now
saved much disc space, should you need the letter again, all you have to do is
decompress it with Columbia before loading it into your WP.

HOW TO USE COLUMBIA
If you only want to create archive files, this is all you need to know.

Once Columbia has loaded, you will see  five  icons at the foot of the screen.
You can select one of these  with  cursor  keys  and  SPACE, COPY or ENTER. In
order, they are: compress a file, decompress a file, set options, display file
information, and display information about Columbia itself.

Disc users are presented with an  up/down  scrolling  list of all the files on
the disc. Press COPY or SPACE to highlight  the ones you want to compress, and
then press ENTER. Make sure that you  have  enough  space on the disc to store
the compressed files. B-drive  owners  can  select  the source and destination
drives using the "options" icon: use  cursor  keys  (up, down, left, right) to
change the options, and COPY, SPACE or ENTER to finish.

64k users - you are STRONGLY advised  to alter the "compression type" setting,
use the "options" icon to "archive".The standard setting is "automatic":  when
compressing data, this will create executable files from any  machine code you
feed into Columbia (this includes screens and graphics).  On 64k machines,this
is a long-winded process that requires reading the file in twice -  especially
arduous on tape machines. If you've 128k, or are only decompressing files, you
needn't worry about this.

COLUMBIA STRENGTHS/WEAKNESSES. Columbia uses an advanced compression algorithm
known as LZW (Lempel-Ziv-Welch), like hard disc  compression on Macs and PC's.
LZW is very good at compressing text files - the longer the better. One sample
36k file reduced to 18k after Columbia compression.  Graphics should also show
significant improvement, although less so. The saving on machine code programs
is not so dramatic, it is still on a par with other CPC compression programs.

You can only create executable machine code files with Columbia.You can't take
a BASIC program and create an executable file.

CREATING EXECUTABLE FILES. If a machine code file is compressed  when Columbia
is set to "executable" or "automatic" compression, Columbia will create a file
RUNable directly, decompressing into memory. The outcome  on most machine code
programs is a  smaller file  which works exactly  as before, except that after
loading, a few seconds elapse while the program decompresses.

If you plan to use the executable file option, the following notes may help.

First, just because Columbia has compressed a file doesn't necessarily mean it
will RUN correctly! As standard, an executable file is loaded so that it takes
up memory to &A200 (near HIMEM).  If your program began near this address, the
file may not run correctly, as the decompression  code will be  overwritten by
the program code, causing a crash. Problems will also often  occur if Columbia
could not make a saving on the file. To solve this, you can change the "memory
limit" before compressing a file, so it loads lower or higher in memory.

Another point to note is  decompression requires just over 12k of workspace in
memory.  When loading an executable file,  you will usually see junk on screen
for a few seconds: this is where the workspace is located by default. However,
if this is not suitable (e.g. if you have compressed a screen!), you can  move
the workspace somewhere else in memory using the "buffer location"  option. If
the "buffer location" is set to "screen", the buffer will be located in screen
memory, and the screen will be cleared after decompression.

A file with a 0 execution address will return  after calling the decompression
routine, rather than jumping to the execution address.  You may find the "file
information" icon useful when creating executable files.

INCORPORATING DECOMPRESSION ROUTINES INTO YOUR OWN PROGRAMS
Machine code programmers may want  to  use  the decompression routine in their
own programs, so that they  can  access  archive  files  without having to use
Columbia. Fully documented source  code  (Maxam  format)  is provided for this
purpose.

        Richard Fairhurst (CRTC)    Special permission has been obtained to
        Robot PD Library            allow distribution of COLUMBIA with ATM.
        January 1995                For ROBOT SOFTWARE Phone 01353 777006