"Fidelity: A virtue peculiar to those who are about to be
betrayed."
MULTITOS - HOW TO GET MORE OUT OF IT
by Wilfred Kilwinger
Some time ago, the Dutch computer magazine "Atari ST Nieuws"
(the magazine that is for some reason often confused with ST
NEWS) released an article on MultiTOS written by main software
support honcho at Atari Benelux, Wilfred Kilwinger. Both Wilfred
and "Atari ST Nieuws" considered it fine if I translated this
article for use in ST NEWS.
For a while now, Atari has been marketing the "MultiTOS" multi-
tasking operating system. Thanks to "MultiTOS" your computer can
execute several tasks (i.e. programs) simultaneously. But there's
quite a lot to being able to execute several programs at the same
time. Atari did their best to make "MultiTOS" to make sure that
you barely notice you're working with a multi-tasking
environment, and without all the intricate installation
procedures normally required. Still, it would be handy to give
you some extra tips on how to get more from "MultiTOS" and use it
more easily. I'll try to use as little deep theory as possible,
but at times it will be impossible evade. First I'll get you
acquainted with the important segments of "MultiTOS", i.e. "MiNT"
(the multi-tasking layer on top of the BIOS) and GEM.SYS (the
multi-tasking AES and desktop). Both have their own specific
configuration files and their own specific tricks. Once you've
read this article you will understand more of "MultiTOS".
MiNT was made by the Canadian Eric Smith in close cooperation
with Atari programmer Alan Pratt. Eric wanted to make a GEMDOS
capable of multi-tasking and that would give access to the
Atari's I/O system. Originally, MiNT means "MiNT is Not TOS", but
after Atari licenced it it became "MiNT is Now TOS". Originally
it was available through the Public Domain and even the source
code could be obtained.
Eric Smith still spreads the PD version of MiNT, but the version
of "MultiTOS" marketed by Atari has some Atari-specific parts
that are not Public Domain and of which the source code cannot be
obtained.
MiNT is a very important part of "MultiTOS"; it contains the
scheduler for multi-tasking, the part that controls all multi-
tasking and that is necessary to have several tasks make use of
memory, system I/O and the file system.
UNIX
The UNIX Operating System was the rolemodel for MiNT. This can
be noticed by the Operating System calls and by inter-process
calls such as messages, pipes and device drivers.
MiNT had one disadvantage, however - it only allowed one GEM
program to run or several TOS (i.e. non-mouse text applications)
programs. This was caused by the fact that Eric didn't have a
multi-tasking AES.
AES is the part of GEM that is responsible for programs,
accessories, menus, dialog boxes, etc. The other part of GEM,
VDI, is responsible for the graphic parts of GEM.
To create "MultiTOS" Atari had to make a multi-tasking AES and
corresponding desktop. And that's exactly what happened. Atari
also continued the road it has embarked upon with TOS 2.06/3.06
and increasing the optics of the desktop by adding 3D buttons,
movable alert boxes and a lot more. This 3D look, by the way,
only works when you work with at least 16 colours.
UTILITIES
So the actual parts of "MultiTOS" are MiNT and the multi-
tasking AES. "MultiTOS" is supplied with some extra utilities
that may appear actually to be part of "MultiTOS" but really
aren't.
One of these utilities is "VIEW.APP", a program which makes it
possible to view text files in a window instead of viewing them
directly on the desktop which would cause them to appear all over
whatever tasks you're executing there.
By means of the "GEM.CNF" configuration file it is possible to
integrate such a viewing utility with "MultiTOS". Similarly, the
desktop copy-and format-routines can be replaced by other
programs.
"MultiTOS" is supplied with an easy-to-use installation program
with which you and your sister can install it on hard disk.
Further usage information can be obtained from the short user
manual.
"MultiTOS" can be configured extensively, but Atari has not made
the appropriate information available to prevent the
inexperienced user from using "MultiTOS" wrongly and decreasing
the trustability of the system. This article, however, will
feature most of this information.
WHICH ATARI?
Many ST users think that "MultiTOS" will work only on a Falcon
030 or TT. However, it will work on any ST with TOS versions 1.04
or up, at least 2 Mb of memory and a hard disk. "MultiTOS" itself
does not actually take up 2 Mb of memory, but to have something
left of your memory to use two or more programs sensible you
would need such an amount of memory anyway. "MultiTOS" will also
work on a 1040 ST with memory expansion, of course. It has to be
noted that "MultiTOS" will not be particularly fast when running
at 8 Mhz (i.e. with a standard ST or MEGA ST), but it's always
nice to have several applications in memory at the same time if
you have enough memory for it.
On an Atari MEGA STE, "MultiTOS" results are quite OK. But to
work with it at its best you would need a TT or Falcon 030. The
whole thing will also be more crash-resistent due to the 68030's
built-in MMU.
In practise most programs will also work correctly on a normal
ST, but there is a bigger chance that certain programs will crash
the whole thing.
DESKTOP
When you start up "MultiTOS" you will get to see a desktop
similar to that of TOS 2.06/3.06, but with some small changes in
the menus. In case you were used to TOS 1.04 it will be a bit of
a surprise because, for example, all menu entries can be selected
by user-definable keyboard shortcuts. There are also more icons,
and each program or other file can have its own icon. You can
drag programs onto the desktop to launch them from there at a
later time, or you can define a function key to launch a specific
program. You can press the [HELP] key if you want assistance
about the built-in functions.
DRIVE U:
It might not have struck you yet, but there's a special drive
icon on the desktop. It has the "U:" identifier ("U" stands for
"Unified Drive"). With "Install devices" you can create an icon
for this drive. You can open it using the [ALT] and "U" keys.
After having opened drive U: you will get the names of all
present drives/partitions (for example A-F) and four folders with
the names DEV, PIPE, PROC and SHM. The DEV folder contains all
device drivers, the PIPE directory contains the active pipes,
PROC all the processes and SHM contains the shared memory that
one or several programs can have. UNIX was the rolemodel for
MiNT, so as with UNIX, a lot of things happen through special
files in the file system. Drive U: contains the entire file
system.
U:\DEV
DEV is the folder containing all device drivers. These are
special files that give access to I/O ports such as AUX, PRN,
KBD, MOUSE and MIDI, but also UNIX thingies such as STDIN,
STDOUT, STDERR and TTY.
It would for example be possible to drag a text file onto
U:\DEV\PRN to have it printed out or to use a shell command to
redirect output through data >u:\dev\prn.
U:\PIPE
With any possible pipes present you can't really do a lot. They
are used to interchange messages between two programs. When you
look at it you might find a file called ALERT. This is the name
of a pipe that MiNT uses to forward error messages to ALERT.ACC,
that can then put the error message in an alert box on the
screen.
U:\PROC
This directory contains all running tasks/processes. In text
mode or when using "Show Info" you can see the date on which it
started (file date and time), the amount of memory it consumes
(file size) and whether it's active at the moment or not (a small
triangle that normally indicates whether a file is "read-only").
Because all tasks are now represented in the file system you can
perform such functions as you can normally do with files, e.g.
delete them to quit a process.
There is a faster way to quit (i.e. kill) a process - simply
klick on the application name in the desk application menu
(leftmost pull-down menu) and keep the [CONTROL] key pressed.
U:\SHM
This folder contains files that point to a part of your
computer's memory that is used by several programs. It's usualyl
empty, or otherwise indicates two programs that use the same
patch of memory.
U: IS NOT A NORMAL DRIVE!
It should be noted that drive U: is not just an ordinary drive.
You can't do the same things with it that you would otherwise do
with a normal partition. You can't copy files onto the special
directories, for example. You can do a "Show Info" in the PROC
folder to establish the amount of memory that is currently being
used. A "Show Info" in drive U: will tell you the total amount of
memory on the drives and in RAM. The system will also ask for
"A:\" and "Insert disk B: in drive A" if you have not drive B.
MOVABLE ALERT BOXES
You can move alert boxes by clicking on them, keeping the mouse
button pressed, and moving them around. This is handy of the
alert box is on top of something you might want to see to check
out what is going on.
SWITCHING BETWEEN PROGRAMS
The fact that you can work with several programs at once with
"MultiTOS" is commonly known. But what to do with all those
overlapping windows and how do you get from one program to the
other quickly?
There are two ways: The first is by means of clicking on the
application's name in the "Desk Menu" list. The second way is
even easier, by means of pressing [ALTERNATE][CONTROL] and the
[TAB] key. By pressing the [TAB] key will cycle through the tasks
currently in memory. The application currently activated will
have its window displayed on top.
ICONIFY
There is another way to handle a desktop full of programs. You
can change any window you might not want to use for a while into
an icon - this is called iconification. This is not yet
implemented in "MultiTOS", but will be in a future version. For
now it's accessible by pressing [CONTROL] and "6", though a
rather more elegant means will be found in said future version.
After having pressed the proper keys you will see a small face
in the left top corner with the word "NEWDESK" under it. The
desktop is now sortof 'folded'. If you click on it again you will
get back to the desktop. After you press [CLR HOME] all icons
will be displayed again.
Watch it! When you do this when no other programs are activated
you will enter the "MultiTOS" menu. Never access that with the
mouse or "MultiTOS" will crash.
The iconify option will be included in a future version of
"MultiTOS".
CLEAR AWAY REDRAW ERRORS
Some programs don't feel at home in the "MultiTOS" environment
and don't take into consideration that several programs might be
active on screen at the same time. This might cause graphical
parts of one program to remain on the icon or window of another
application. "Holes" will be left in one application made by
another.
This can be easily solved by making the desktop the active task
and pressing the [CLR HOME] key. All applications will not
receive a so-called redraw message and the screen will be built
anew.
Most of these problems occur when opening or closing an
application. By entering the following commands in the GEM.CNF
files these problems can be evaded:
SETENV AE_SREDRAW=1
SETENV AE_TREDRAW=1
This will cause all active application to get a redraw message
whenever a new application will be started or an old one will be
terminated.
LOST YOUR DESKTOP, START ANEW
If the desktop should crash for any reason, "MultiTOS" is not
suddenly rendered uncontrollable. Atari did this by making a
"MultiTOS" menu from which you can start a new desktop again.
This can easily be experimented with. Simply delete the
"NEWDESK.00x" file from U:\PROC\. If you then click on "SCREEN"
in the "Desk Menu" you will get the "MultiTOS" menu. Here you can
load a desktop or another application.
LOADING DESK ACCESSORIES
According to the "MultiTOS" user manual you can run extra
accessories by double-clicking on them like you would any other
program file. In practice, however, this only works if you modify
the NEWDESK.INF file. You would have to add the following line:
#A 03 04 00 *.ACC@ @ @
UTILITIES SUPPLIED WITH "MULTITOS"
"MultiTOS" is supplied with some utilities. The manual sortof
doesn't mention them at all, so you'll get some extra information
here.
ALERT.ACC is a small desk accessory that watches the pipe
U:\PIPE\ALERT and displays everything that it is piped (er?) in
an alert box. Usually this concerns memory violation errors, i.e.
errors of programs that violate some kind of memory protection.
CHPROT.APP allows you to adapt the memory protection bits in a
program file's header. This is easiest of you drag a program on
top of CHPROT, which would make it useful to put CHPROT on the
desktop.
CLOCK.APP is a small program to demonstrate the multi-tasking
capabilities of the Atari computer. LINES.APP is a similar
program. You can start them as often as you want to see if your
computer can still keep up with things. "LINES" can be fed an
argument (10 or 20 or something) to determine its window size.
LPR.APP is a printer spooler that is always active due to it
being mentioned in the GEM.CNF file.
MINIWIN.APP is a program that will redirect all output of a .TOS
program (text-based) into a window. When executing a .TOS file
you had best drag it on top of the MINIWIN.APP icon, so it would
be ideally suited when put on the desktop.
VIEWER.APP is also active through the GEM.CNF file and displays
any text file you click on in a window. Other programs can be
specified in the GEM.CNF file instead of VIEWER.APP.
PROBLEM CASES (PRGFLAGS)
Most of the programs you have are written in a time when
"MultiTOS" didn't yet exist. Back on those days people didn't
have to take the things into consideration that multi-tasking
progams have to.
It can happen that a program won't work with "MultiTOS"
installed because it's not programmed according to the rules for
multi-tasking programming.
Atari has tried to catch up these programs as good as possible.
This can be done by setting or clearing individual bits within
the file header, for example to clear part of "MultiTOS" memory
protection. This can be compared with the fast-load bit and TT
memory installation.
With the PRGFLAGS program you can install these values
yourself. There are four possibilities:
1. PRIVATE. Only the application and the Operating System can use
the memory is takes up.
2. GLOBAL. The memory used by the application is not protected at
all.
3. SUPER. The memory used by the program can be accessed from
other programs in supervisor mode.
4. PRIVATE/READABLE. All other applications can read the memory
occupied by an application but can't write to it.
By default, all programs load into PRIVATE memory. Many AUTO
folder programs (TSR programs) can;t work in this memory. These
had then better be defined to run in GLOBAL or SUPER memory.
Programs that are located in the AUTO folder before "MiNT" are
always put to GLOBAL memory. That way programs like RAMdisks,
FOLDR100, CACHE080 and other programs can work with "MultiTOS"
without problems. A program in GLOBAL memory doesn't have access
to PRIVATE memory belonging to other programs.
MORE DIRECTIONS
In the mean time some experience has been had using "MultiTOS".
Some programs don't work perfectly with it, and often that can be
fixed. Below are some of these experiences.
"1st Word Plus" is a program that takes up all free memory (up
to and including version 3.20TT at least). This is called memory
hogging, and means that you can't start any other programs
afterwards. You can solve this problem by setting MAXMEM in the
"MINT.CNF" file to 200 Kb.
"LDW Power", a spreadsheet, freezes the total screen when you
start it, causing you to no longer be able to do anything. If you
run "LDW Power" throught the CHPROT utility mentioned above, you
won't have any further problems. The GLOBAL bit will be switched
on and the problem will be solved. Alternatively you can use the
PRGFLAGS program to switch on the SUPER bit. This is better, and
also works.
"GfA Basic" is also a bit of a problem. No "GfA Basic" programs
will work as long as the memory protection of "MultiTOS" is
switched on. With a special CPX module you can switch it off,
after which you'll have to start the system anew to make it work.
But even in those cases quite a lot of "GfA Basic" programs won't
work properly.
CONFIGURATION FILES
Finally, I would like to present you with two fully documented
versions of the "MINT.CNF" and "GEM.CFN" configuration files. The
information contained in them will surely help you in the future!
GEM.CNF
# gem.cnf
# Last Modified on 10/29/1993 10:53
#===============================================================
#
# setenv <NAME=VALUE>; this command puts the NAME=VALUE
# command in the AES environment. The "#" symbol means "remark"
#
setenv PATH=.,C:\MULTITOS,C:\MULTITOS\BIN,C:\MULTITOS\APP
#
# The path from which accessories should be loaded
setenv ACCPATH=C:\
#
# Below the extensions are set for accessories, GEM programs and
# TOS programs respectively
setenv ACCEXT=ACC,ACX
setenv GEMEXT=PRG,APP,GTP
setenv TOSEXT=TOS,TTP
#
# The viewer, printer (spooler) and .TOS file handlers are
# defined here. You can use "GemView" instead of "VIEWER.APP",
# for example
setenv SHSHOW=C:\MULTITOS\VIEWER.APP
setenv SHPRINT=C:\MULTITOS\LPR.APP
setenv TOSRUN=C:\MULTITOS\MINIWIN.APP
#
# Here you can define alternative format and copy programs
setenv DESKFMT=D:\COPIERS\KOBOLD.2_5\KOBOLD_2.PRG
setenv DESKCOPY=D:\COPIERS\KOBOLD.2_5\KOBOLD_2.PRG
#
# With the aes_sredraw option you can cause a redraw message
# to be sent to all applications when a new application is
# started. 1 if you want it to happen, 0 switches off
setenv AE_SREDRAW=1
#
# With the aes_tredraw option you can cause a redraw message
# to be sent to all applications when an application is
# terminated. 1 if you want it to happen, 0 switched off
setenv AE_TREDRAW=1
#
# With the run <program> option you can boot GEM applications
# during booting
run c:\multitos\app\clock.app
#
# With the shell <program> option you can cause a shell
# to be loaded. When not found, it will just start up the desktop
shell c:\mint\mw.prg
MINT.CNF
# multitos.cnf
# Last Modified on 5/7/1993 23:13
# ===============================================================
# Start up the GEM Desktop. Without this line, the program will
# by default look for c:\multitos\gem.sys
GEM=C:\MULTITOS\GEM.SYS
#
# OK; other things you can change if you want to. There are
# reasonable defaults for all of these.
#
# MAXMEM= gives the maximum amount of memory that any process may
# use (in kilobytes). The default makes this unlimited, but if
# you have a lot of memory and/or programs that grab more memory
# than they should, try setting this:
# e.g. to limit processes to 4096K of memory:
MAXMEM=4096
#
# SLICES controls how long a process may run before being
# interrupted. The default value (2) is usually best, but if you
# tend to run very processor-intensive applications in the
# foreground, you might want to use SLICES=3 (this makes CPU hogs
# get more time than they otherwise would)
SLICES=3
#
# DEBUG_LEVEL controls output of debugging information. The
# higher the level, the more stuff MiNT will spew about about
# what it's doing. The average user doesn't want to hear about
# this stuff, so the default is 0.
# DEBUG_DEVNO is the BIOS device number to which the info should
# be sent. The default is the screen (2).
DEBUG_LEVEL=1
DEBUG_DEVNO=3
#
# BIOSBUF controls the way BIOS I/O is performed. Normally,
# MiNT tries to buffer this to provide a (considerable)
# improvement in speed. However, some applications may get upset
# by this. BIOSBUF=no turns off all buffering for maximum
# compatibility.
BIOSBUF=no
#
# Below you will find some command that you can give MiNT:
#
# Make a fake 'drive' that actually points to the given path
alias r: c:\this\is\a\really\deeply\nested\path
#
# Change the MiNT default directoru
cd c:\path\
#
# The echo command prints something on the screen
echo Now Booting MultiTOS
#
# The exec command executes a program BEFORE GEM is installed.
# You have to specify the full path and extension, and you can
# even pass on command line parameters. Mostly used to install
# device drivers. And what about an automatic check for viruses
# by means of a virus killer such as "UVK"?
exec c:\mint\clockdev.prg -a
#
# The sln <path> <link> command makes a symbolic link named
# link pointing to path. Link must be on drive U: for it to work
sln c:\bin u:\bin
sln c:\mint\app u:\app
sln d:\termcap\etc u:\etc
#
# Examples follow
#
# Old versions of MiNT used drive letters Q:, X:, and V: to stand
# for the pipe, process, and device directories, respectively.
# This is no longer directly supported, but we can use 'alias' to
# achieve the same effect, as follows:
# alias q: u:\pipe
# alias x: u:\proc
alias v: u:\dev #in order to make CONSOLE.TOS work
#
# You could also use "alias" to provide a quick way of getting at
# nested directories, e.g. if you do
# alias r: c:\some\long\path
# then clicking on drive r: puts you into the folder
# c:\some\long\path
#
# The "sln" command may be used to create "links" on drive U:. If
# u:\foo is a link to c:\bar, then u:\foo\foo.txt is another way
# of saying c:\bar\foo.txt. Judicious use of links can make
# re-arranging hard disks and directories painless (if you always
# use the names on drive u:, it doesn't matter where you put
# the actual directories).
# sln c:\bin u:\bin
# sln c:\mint\app u:\app
# sln d:\termcap\etc u:\etc
MULTITOS HOT KEYS
The Desktop:
ClrHome Sends a redraw message to all applications,
causing the screen to be drawn anew.
CTRL 6 Temporary 'iconify' experiment key (might not last
into other versions).
AES:
CTRL-ALT-TAB This cycles through any active applications.
MiNT:
CTRL-ALT-C Sends a SIGINT signal to the process group. All
running tasks will stop. This can be useful if all
screen I/O has frozen for some reason or other.
"MultiTOS" programs can be protected from it
(might not last into other versions).
CTRL-ALT-UNDO
or
CTRL-ALT-\ Same as above, but now a SIGQUIT signal and no
protection is possible (might not last into other
versions).
There's one more keyboard shortcut. Try it for yourself and see
the rather useless thing that it does. It's CTRL-SHIFT-ALT-RIGHT
MOUSE KEY-CLRHOME.
That's it. On behalf of Atari Benelux I hope to have made your
life with "MultiTOS" a bit easier and more flexible.
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.