So be it
Threaten no more
To secure peace of to prepare for war
So be it
Settle the score
Touch me again for the words that you'll hear evermore...
"Don't tread on me" - Metallica
HOW TO MAKE YOUR ST FASTER
(And how to make an article that spits on structure rules)
by Richard Karsmakers
It's truly unimaginable that, after about one year of using the
ST with TOS 1.4 or higher, I have never actually found out how to
make file loading faster. I have been experimenting like a
lunatic with Cache programs and a strange little program called
"Pinhed".
But let me not stray before I have explained to you the
principle of the 'fast load bit'.
The fast load bit
I suppose most of you have at least heard of the mysterious
'fast load bit', and most of you will probably also know that it
is located in an executable file's header (the first $1C bytes of
e.g. a .PRG or .TOS file).
Atari seems to have refused to document this feature properly,
but if you have a look at the table below you'll see where it is
located exactly.
---------------------------------------------------------------
Offset: Contains:
---------------------------------------------------------------
$00 BRA.S ($601A; BRanch Always instruction)
$02 Bytes in text segment
$06 Bytes in data segment
$0A Bytes in BSS (Block Storage Segment)
$0E Bytes in symbol table
$12 Zero (reserved)
$16 ph_flag (longword)
ST/STE/TT:
Bit 0 = Fastload bit (<----- There it is!!)
TT only:
Bit 1 = Load program into TT Ram bit
Bit 2 = Use TT Ram only bit
$1A Zero if no relocation bits
---------------------------------------------------------------
$1C Start of program text segment
---------------------------------------------------------------
File header contents
Now. What does the fast load bit actually do besides just
sitting there?
In TOS 1.4 and up, the Operating System checks if this bit is
set each time a file is loaded and executed. If it is, then it
does not clear all memory (which can be up to 4 Mb on MEGA ST 4),
but only a part that is needed by the program the run. This saves
time. If the bit is cleared, everything remains the same and
memory is cleared as usual. This does make things slower.
Pinhed
An American chap by the name of Charles F. Johnson wrote a
little program called "Pinhed". "Pinhed" does nothing more than
allowing the fast load bit principle to work on TOS versions
lower than 1.4. With TOS 1.4 and higher, it improved
compatibility of programs that would otherwise maybe not work
with the fast-load bit set. All in all, a clever little piece of
programming. When you have a TOS version lower than 1.4, your
computer will NOT load any faster unless you used "Pinhed"!
"Pinhed", by the way, is Shareware.
More info about it is contained in the (English) text file in
the PROGRAMS folder.
Yes! Let's have a look at the PROGRAMS folder
In the PROGRAMS folder, there is another folder called MAKEFAST.
This contains three program files.
With the aid of the programs in this folder, you can make your
system a lot faster, specially if you've got an AUTO folder with
lots of stuff on it (which is usually the case if you've got a
harddisk and a fair bit of memory). I've got almost 15 AUTO
folder programs installed usually, and I've got 4 meg. Count the
profit!
Anyway. The files.
MAKEFAST.PRG A program that can manipulate ONE file's FLoad-bit
MF .TOS A program that can manipulate ALL Fload-bits
PINHED .PRG The program mentioned above
Makefast
This program was written in 1989 by Ken Badertscher from Atari
Corp., Sunnyvale, Ustated Nites. With the help of this program,
it is possible to set or clear the fast load bit of an individual
file (or several files), or check what the status of a file is.
It is Public Domain.
When you run "Makefast" from the desktop, it presents you with
(surprise!) an alert box. The first one asks you if you want to
Continue or Quit. If you bravely select Continue, you are
presented with an alert box which asks you which function you
want to perform: MakeFast (set a program's fastload bit),
MakeSlow (clear a program's fastload bit), or Check (see if a
program is set for fastload). Make a selection, and use the file
selector which appears to select the program to check. Don't
worry if you make a mistake and select a "Spectrum" picture
instead of a program - "Makefast" won't do anything with files
that aren't executable. It will let you know if you selected a
file which was not an executable program. Also, if you try to
"Makefast" a program which is already set for fastload (or
MakeSlow one which is not set for fastload), it will leave the
program alone and tell you that there was no change. After the
function is complete, you're back to the "Continue/Quit" alert
box.
When installed as a TOS Takes Parameters application (i.e. when
it has the extension .TTP), or when run from a command line
shell, "Makefast" can be used to manipulate more than one file at
a time. From a command line shell, type:
makefast -h
to get a message describing the usage. A user manual, thus.
Note that if you are using "Makefast" as a TTP application, you
don't have to type "makefast" at the beginning of the command
line - the desktop fills in that part of the command for you.
To set the fastload bit in file1, file2, and file3, you are to
use the command:
makefast file1 file2 file3
To clear the fastload bit in filea and fileb, use the -Slow
option:
makefast -s filea fileb
To check the fastload bit in all files in a directory, use the -
Check option:
makefast -c *.*
If any of the files are not executable, "Makefast" will inform
you of that fact. Note that filename wildcards will NOT be
expanded if you are running makefast from the Desktop TTP dialog.
If you are using the TTP dialog, you must type out all the
filenames to check.
MF
"MF" is an enhanced version of "Makefast". It was also written
in 1989, but by Marcel Waldvogel of Germany.
It is Public Domain.
Principally, is is the same as "Makefast" but it has one major
exception. Whereas "Makefast" is difficult to use with multiple
files, "MF" works on all files in a given partition or on a given
disk that have the extension .PR?, .APP, .TOS or .TTP (the '?' in
.PR? is a wildcard).
Just like "Makefast", several options can be given to the
program:
-h (help) Shows a short user manual
-c (check) Shows the fastload status
-s (slow) Clears the fast load bit
When nothing is specified, the fast load bit will be set.
Problems, or: Why the fast load bit can be cleared as well
Some programs are programmed rather clumsily - or rather, the
programs do not anticipate the user suddenly not clearing all
memory before they start. This causes these programs to work
incorrectly, or even crash, when the fast load bit it set.
No panic, however: Just revert the fast load bit, i.e. clear it
again.
Problems like this are known to occur with "GfA Basic" (as well
as many compiled GfA programs), the original "ARC.TTP" and
"MicroSoft Write". Also, using accessories that have their fast-
load-bits set can give various problems.
Do note that these may work when using "Pinhed"!
Well...
What's stopping you? Go and make your system a lot faster! NOW!
Disclaimer
The text of the articles is identical to the originals like they appeared
in old ST NEWS issues. Please take into consideration that the author(s)
was (were) a lot younger and less responsible back then. So bad jokes,
bad English, youthful arrogance, insults, bravura, over-crediting and
tastelessness should be taken with at least a grain of salt. Any contact
and/or payment information, as well as deadlines/release dates of any
kind should be regarded as outdated. Due to the fact that these pages are
not actually contained in an Atari executable here, references to scroll
texts, featured demo screens and hidden articles may also be irrelevant.