C o l u m b i a
help file
WHAT IS COLUMBIA?
Columbia is a file compressor. It aims to reduce the amount of space a tape or
disc file takes up. This works on the principle that in any file, there is a
certain amount of repetition. For example, in a text file - a letter created
on your word processor, say - only a certain number of characters are used:
letters, punctuation, numbers. Yet the CPC stores each of these in the space
that has a capacity for up to 256 values. So, for example, by replacing each
occurrence of the word "the" with the otherwise unused value 128, you will
save 2 characters (bytes) per occurrence of the word.
In one end, you feed the original file: out of the other end comes the
compressed file, which can be either an "archive" or an "executable" file. The
"executable" option is meant for machine code programmers: it produces a file
which can be RUN like the original program, and decompresses into memory
immediately. The "archive" option, on the other hand, is something that
everyone will find useful: the file has to be decompressed by Columbia before
it can be used again, but it takes up a lot less space on the disc.
For example, say that you have a disc on which you store all your personal
correspondence. You are unlikely to read the letters ever again, but you might
need to find out what you wrote at some point. So compress them all with
Columbia and erase the originals: you've now saved a lot of disc space, but
should you want to look at a letter again, all you have to do is decompress it
with Columbia before loading it into your word-processor.
HOW TO USE COLUMBIA
If you're only interested in creating archive files, this is all you need to
know.
There are two versions of Columbia on your covertape: the tape version and the
disc version. If you select Columbia from the menu on tape, the tape version
will load. If you transfer the tape to disc, only the disc version will end up
on your disc.
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.
To compress a file from tape, select the first icon and type in the filename
to be compressed. Then type in the name of the new compressed file to be
created. (It is recommended that you use two separate tapes.) Whenever you see
"Press PLAY then any key", insert the tape with the original file on. "Press
REC and PLAY then any key" means you should insert the tape for the new file.
Decompression is very similar: "Press PLAY" means insert the tape with the
compressed file on, and at "Press REC and PLAY", you should insert the tape to
put the new uncompressed file on.
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.
If you only have 64k, you are STRONGLY recommended to change the "compression
type" setting, using 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 other
graphics). With 64k machines, this is a long-winded process that requires
reading the file in twice - especially arduous on tape machines. If you have
128k, or you are only decompressing files, you needn't worry about this.
COLUMBIA'S STRENGTHS AND WEAKNESSES
Columbia uses an advanced compression algorithm known as LZW (Lempel-Ziv-
Welch), which is similar to that used on PCs and Macintoshes for hard disc
compression.
LZW is very good at compressing text files - the longer the better. One sample
36k file was reduced to 18k after compression with Columbia. Graphics should
also show a significant improvement, although less so. Although 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 cannot
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 which can be RUN directly
and decompresses into memory. The result of this on most machine code programs
will be a smaller file which works exactly the same way as before, except that
immediately after loading, a few seconds elapse while the program
decompresses. If you have transferred Crazy Cars 3 to disc from a past
covertape, try compressing the file "CC3.BIN" for an example.
If you plan to use the executable file option, the following notes may help.
First of all, just because a file has been compressed by Columbia does not
necessarily mean that it will RUN correctly! As standard, an executable file
is loaded so that it takes up memory to &A200 (near HIMEM). However, if your
program originally approached 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 frequently 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
that it loads lower or higher in memory accordingly.
Another point to note is that decompression requires just over 12k of
workspace in memory. When loading an executable file, you will usually see
junk on the screen for a few seconds: this is where the workspace is located
by default. However, if this is not suitable (for example, 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 an execution address of 0 will return after the decompression
routine is called, 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)
Robot PD Library
January 1995
*