Extremely easy-to-read Tornado documentation.

by N. Douglas.

Last update was Saturday 23rd of Septemeber 1995.

Introduction
-=-=-=-=-=-=
   As anyone who knows me will testify, I don't particularly like RO3.1 or
anything of that thereafter. There's a simple reason to this: I think RO2 was
the last great update to RISC-OS, and since then there's been nothing added
to the OS.
   That's why I came up with Tornado. About 80% IMHO of programs written for
RISC-OS are written for the desktop environment, and yet the method of using
the desktop and writing for it are arcane and haven't changed greatly since
RISC-OS 2.
   The entire philosophy of writing for Tornado is different. You no longer
write applications as programs in their own right. You write code which
defines your program as what you want it to be. You don't write code to
redraw windows, you don't write code to open menus, you don't write code to
load or save files. You don't write code to manage memory. You don't write
code to recognise the difference a double click from a triple click. You
don't even write code to load in your user-defined configuration.
   The whole thing about Tornado that will scare most programmers is how
little you /do/ do. And the great advantage of that is that the Tornado
operating system suddenly has a lot of power over every app using it - and
the great advantage of this is it allows applications to function as a single
unit in a fashion never before seen on ANY platform.
   And despite all this automation, Tornado increases the power available to
a task by incredible amounts. Suddenly, things like printing no longer take
over the desktop. Tornado applications can just as easily print five files,
while recalculating a spreadsheet and converting a set of files from GIF to
JPEG *on* *a* *1Mb* *machine* (it uses virtual memory) as allow you to
move the mouse around the screen. And this BTW, _doesn't_ require any
applications loaded in other than a single spreadsheet.
   Tornado offers processing occurring on a task at multiple levels, via a
mixture of multithreading multiprocessing and its TAOS-like subtask
facilites. Files loaded into one application can appear in another
application's window without consuming any extra memory, and any operations
performed on one 'view' affect all other 'views', as actually they are all
multiple views of the same file [1]. Files can be OLEd and RAM transferred to
and from any app, including non-Tornado one's (although OLEing between
Tornado apps is _much_ more pleasant and convenient).

   The foremost objective of Tornado /is/ /to/ /increase/ /productivity/.
Above all else, it will do this to its fullest extent. The second objective
is to be frugal with resources ie; be quick & responsive, not consume vast
amounts of memory to do simple operations (like certain PC GUIs), and not to
take up vast stretches of disc space. The tertiary objective is to remove as
much programming time from the programmer as possible, and to make life on
him/her as easy as possible.

[1] It would seem some people don't quite understand this. A view of a file
is updated in all views if any of the views are altered (this might seem like
it's slow, but remember that while all the displays are updated, you can
work on as tornado multitasks during window redraws, unlike RISC-OS). Note
also that a view can be marked as a seperate file - and should the view
marked so be altered, it is made into its own copy, delinked from the other
views and then altered. This way, memory isn't wasted on multiple copies of
the same file.
   I'll also mention here that loading a file into one app, and then the same
file into another will make tornado actually consider both files to be the
same (and thus one a view of the other) - using only one copy of the file -
but should either be changed, they are then delinked and two copies appear in
memory.



Index
-=-=-
1: What is tornado exactly?
2: Memory management
3: The tornado shell
4: Crash protection
5: Subtasks
6: File renderers
7: I/O, OLE and hotlinking
8: Things tornado will *not* do for you
9: Misc




Well, unfortunately, as always, here's the copyright notice:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
(Note, you don't /have/ to read it, but not reading it means you are still
usually under its influence - read it to find out!)

   Copyright for absolutely everything described, implicated or inferred to
(ideas included), whether intentionally or not, within the data as contained
within the unaltered copy of this archive remains with me Niall Douglas, if
so granted by the laws of the country in which you are reading this;
otherwise, copyright remains with me for the same as aforementioned above up
to and including that which is deemed maximum by the laws of the country in
which you are reading this.
   The reader is permitted to distribute this archive wherever he/she
chooses, so long as it remains unaltered and its archived state. Any
recipient of this archive is also bound by these copyright restrictions from
the moment of posessing a copy of the archive whether he/she has read these
restrictions or not, unless this statement and the statement previous to that
cannot be upheld by the laws of the country in which the copy of this archive
is being held, in which case the aforementioned statements as written above
in this paragraph are stated to be in force up to and including that which is
deemed maximum by the laws of the country in which the copy of this archive
is residing.
   I take this opportunity to declare no responsibility for any inaccuracies,
misleading statements (whether intentional or otherwise) or any other liable
information or statements, unless this resolution cannot be upheld by the
laws of the country in which this archive is being held, in which case the
aforementioned statements as written above in this paragraph are stated to be
in force up to and including that which is deemed maximum by the laws of the
country in which this archive is residing.
  By reading these restrictions, or having the ability to read them (whether
it be direct or indirect), you are agreeing to be bound by them. Again, this
is unless this statement cannot be upheld by the laws of the country in which
the copy of this archive is being held.

(C) Niall Douglas 1995





BTW, before anyone asks, no - I haven't done law yet :-)
