moved from dev to prod
This commit is contained in:
BIN
THING/TOS2GEM/T2GRESET.PRG
Normal file
BIN
THING/TOS2GEM/T2GRESET.PRG
Normal file
Binary file not shown.
BIN
THING/TOS2GEM/T2G_INTR.PRG
Normal file
BIN
THING/TOS2GEM/T2G_INTR.PRG
Normal file
Binary file not shown.
BIN
THING/TOS2GEM/TOS2GEM.PRG
Normal file
BIN
THING/TOS2GEM/TOS2GEM.PRG
Normal file
Binary file not shown.
452
THING/TOS2GEM/TOS2GEM.TXT
Normal file
452
THING/TOS2GEM/TOS2GEM.TXT
Normal file
@@ -0,0 +1,452 @@
|
||||
Short information for TOS2GEM of 13.09.1996. As at: 13.09.1996
|
||||
--------------------------------------------------------------
|
||||
|
||||
1. What is TOS2GEM?
|
||||
-------------------
|
||||
|
||||
TOS2GEM is a program for the AUTO-folder which offers GEM applications
|
||||
a flexible way to redirect screen output of .TOS or .TTP programs to
|
||||
a window. This is achieved with VDI text commands, and allows
|
||||
programmers of shells or alternative desktops to install a kind of
|
||||
Console window without much effort.
|
||||
|
||||
From this it becomes clear, of course, that TOS2GEM is intended for
|
||||
use mainly under SingleTOS. Actually it will also run under Geneva,
|
||||
MagiC and MultiTOS, though here its use is of course very restricted
|
||||
as TOS programs under these systems run in windows anyway (if they
|
||||
are started correctly).
|
||||
|
||||
The most important properties of TOS2GEM at a glance:
|
||||
- Offers programmers a clean way of diverting output of TOS programs
|
||||
started after it to a GEM window
|
||||
- Simulates TOS screens of any desired size (so not just the boring
|
||||
80x25), that may also be only partly visible
|
||||
- Works with all non-proportional fonts in any point size
|
||||
- With (optional) output buffering can have faster output than with
|
||||
GEMDOS/BIOS (only for SingleTOS/MagiC)
|
||||
- Optionally offers a 'history' buffer for older output ('scroll-back')
|
||||
- Has complete VT52 emulation (colour sequences only optional)
|
||||
|
||||
|
||||
2. How does one install it?
|
||||
---------------------------
|
||||
|
||||
TOS2GEM.PRG is simply copied to the AUTO-folder on the boot partition
|
||||
and during each boot process creates a cookie which the programmer
|
||||
can use to control the use of TOS2GEM. But if required TOS2GEM.PRG
|
||||
can also be started from ther desktop.
|
||||
|
||||
|
||||
3. What is T2GRESET.PRG?
|
||||
-------------------------
|
||||
|
||||
Programs have to reserve TOS2GEM for themselves; until it is released
|
||||
other programs cannot make use of TOS2GEM. Should a program that has
|
||||
reserved TOS2GEM for itself crash, or forget to release it when it
|
||||
terminates, then this blockage can be removed by calling T2GRESET.
|
||||
It is not advisable to call T2GRESET while the application that
|
||||
reserved TOS2GEM is still running, because this will necessarily lead
|
||||
to serious complications. An indication that such a blockage has
|
||||
occurred is when no program using TOS2GEM is running and a newly
|
||||
started one reports that it cannot reserve it for itself.
|
||||
|
||||
|
||||
4. What is T2G_INTR.PRG?
|
||||
------------------------
|
||||
|
||||
Since the beta version of 09.07.1995 TOS2GEM hooks into the VBL
|
||||
(vertical blanking) interrupt in order to be able to trigger a
|
||||
refresh of the screen contents during time-controlled buffering even
|
||||
when the running program has made no output for some time (previously
|
||||
checks were made directly during output only to see whether the time
|
||||
interval had been exceeded). If this should give rise to unexpected
|
||||
problems (e.g. unexplained crashes while output redirection is
|
||||
active) one can use T2G_INTR.PRG to switch off the use of the
|
||||
interrupt (and switch it back on again if required). If this is
|
||||
desired or required permanently, then T2G_INTR.PRG should be placed
|
||||
physically after TOS2GEM.PRG in the AUTO folder.
|
||||
|
||||
Important: Those who have included the mini-package of TOS2GEM with
|
||||
their own programs in the past (see item 9) should ensure that
|
||||
T2G_INTR.PRG is included in this pckage!
|
||||
|
||||
|
||||
5. What are T2G_BSP.PRG/T2G_TEST.PRG and PRIMZAHL.TOS/PRIME_NO.TOS?
|
||||
-------------------------------------------------------------------
|
||||
|
||||
As it is difficult to visualise what TOS2GEM actually does from a
|
||||
theoretical description of how it works, I have written a small
|
||||
example program (called T2G_BSP.PRG for 'TOS2GEM-Beispiel' (-example)
|
||||
in German and T2G_TEST.PRG in the English translation). Incidentally,
|
||||
neither file is contained in the small archive (see item 9) such as
|
||||
the one included with Thing!
|
||||
|
||||
After starting this program (TOS2GEM must of course have been started
|
||||
earlier) a dialog box appears in which one can specify the dimensions
|
||||
of the TOS screen to be simulated by TOS2GEM, and the maximum amount
|
||||
of this to be visible. In addition one can select here whether and how
|
||||
output buffering and colour support are to be used by TOS2GEM.
|
||||
|
||||
Following this a corresponding window will be opened to which (already
|
||||
using TOS2GEM redirection) the dimensions to be realised are written.
|
||||
Directly after this the program PRIMZAHL.TOS (PRIME_NO.TOS in English)
|
||||
will be started (it has to be present in the same directory) which
|
||||
can calculate all the primes up to a specified number which the user
|
||||
is asked to input, using the 'Sieve of Eratosthenes' algorithm; one
|
||||
could also use any other .TOS program as long as it is placed in the
|
||||
correct directory and renamed to PRIMZAHL.TOS or PRIME_NO.TOS for the
|
||||
German and English versions of the example program respectively.
|
||||
|
||||
At the end of the prime number program one can position the window
|
||||
into which clean output was made anywhere on the screen. Clicking on
|
||||
the 'Closer' button terminates the program, a click within the working
|
||||
area of the window brings up an alert offering three choices: 'Resize'
|
||||
permits altering the TOS2GEM window size (with the same dialog as at
|
||||
its start; the screen is cleared if the total size is altered). With
|
||||
'Rerun' PRIMZAHL/PRIME_NO.TOS can be started again and 'Nothing' does
|
||||
just that...
|
||||
|
||||
The example program has been kept simple deliberately, so that one
|
||||
can see that TOS2GEM support is relatively easy. Not all capabilities
|
||||
of TOS2GEM are demonstrated (in particular neither various fonts and
|
||||
character sizes nor a 'scroll-back' history buffer are available),
|
||||
but it should make clear the possibilities that TOS2GEM offers.
|
||||
|
||||
Those who would like to obtain the source code in order to obtain a
|
||||
concrete picture of TOS2GEM support should get in touch with me (see
|
||||
below). As the source has been extensively furnished with comments
|
||||
(in German) and some library fuinctions have been incorporated
|
||||
directly so that it can be compiled as it stands, its size has grown
|
||||
to some 46 kilobytes. However the portion that is required for TOS2GEM
|
||||
support only is relatively small (excluding the comments), so there's
|
||||
no need to be afraid...
|
||||
|
||||
|
||||
6. Docs for programmers
|
||||
-----------------------
|
||||
|
||||
I have decided to release the hypertext with information (not only)
|
||||
for programmers in its still incomplete version, since it may be
|
||||
half-way usable in its present state. To view it one requires ST-GUIDE
|
||||
by Holger Weets, whom I'd like to thank here once more for this
|
||||
excellent utility.
|
||||
|
||||
In addition to the hypertext docs, those who can read German may be
|
||||
helped by a look at 'ST-Computer' 04/95 and 05/95.
|
||||
|
||||
In addition I'd advise everyone to take a look at the TOS2GEM library
|
||||
by Dirk Klemmt (klemmt@stud.uni-frankfurt.de) for Pure and Gnu C,
|
||||
which makes using TOS2GEM child's play. A short summary of its
|
||||
capabilities can be obtained from 'ST-Computer' 05/95. Anyone wishing
|
||||
to know more please get in touch directly with Dirk, as I have little
|
||||
or nothing to do with the library itself.
|
||||
|
||||
|
||||
7. INSPECT.TTP
|
||||
--------------
|
||||
|
||||
This tiny program serves as an aid for programmers who wish to write
|
||||
applications with TOS2GEM support. More about this can be found in the
|
||||
hypertext.
|
||||
|
||||
|
||||
8. Legal
|
||||
--------
|
||||
|
||||
TOS2GEM was programmed with great care and tested extensively.
|
||||
However one cannot exclude the possibility that some bugs remain. I
|
||||
can therefore neither guarantee fault-free operation of TOS2GEM nor
|
||||
its fitness for any particular purpose.
|
||||
|
||||
Furthermore, you use TOS2GEM at your own risk! I, Thomas Binder, do
|
||||
not accept any liability or responsibility for any direct or indirect
|
||||
damage that may arise, either financial, material or any other kind
|
||||
from either the use or misuse of TOS2GEM.
|
||||
|
||||
The same applies, of course, to the associated applications, utilities
|
||||
and documentation contained in the archive.
|
||||
|
||||
|
||||
9. Distribution of TOS2GEM
|
||||
--------------------------
|
||||
|
||||
TOS2GEM is freeware and may be copied and used freely. For general
|
||||
distribution one of two of the following packages has to be chosen,
|
||||
where all the named files have to be copied unchanged in each case
|
||||
(archiving is permitted):
|
||||
|
||||
a) Complete package
|
||||
Contains TOS2GEM.PRG, T2GRESET.PRG, T2G_INTR.PRG, TOS2GEM.H,
|
||||
TOS2GEM.TXT, T2G_BSP/T2G_TEST.PRG, PRIMZAHL/PRIME_NO.TOS, INSPECT.TTP,
|
||||
as well as TOS2GEM.HYP and TOS2GEM.REF. This package is mainly
|
||||
intended for distributing TOS2GEM on its own (when it is not included
|
||||
with another program).
|
||||
|
||||
b) Mini-package
|
||||
Contains only TOS2GEM.PRG, T2GRESET.PRG, T2G_INTR.PRG and TOS2GEM.TXT.
|
||||
This variant should only be used when one wants TOS2GEM to accompany a
|
||||
program that requires it.
|
||||
|
||||
Those who have developed their own programs that support or require
|
||||
TOS2GEM may include TOS2GEM in their program package (in one of the
|
||||
forms mentioned above) no matter whether it is PD/Shareware or
|
||||
commercial software, as long as the following conditions are fulfilled:
|
||||
|
||||
- TOS2GEM must be copied to its own folder
|
||||
- The documentation or the program must contain instructions for
|
||||
using TOS2GEM
|
||||
- It must be clear from the documentation that TOS2GEM is a separate,
|
||||
free-standing utility developed by me, and that it does not belong
|
||||
to the actual program
|
||||
|
||||
Additionally I would be most grateful if you would send me a sample of
|
||||
the program.
|
||||
|
||||
|
||||
10. Contact with the Author
|
||||
---------------------------
|
||||
|
||||
Anyone who has found any bugs, would like the source code, needs help
|
||||
for programming TOS2GEM applications, wishes to send praise, criticism
|
||||
and/or suggestions or just simply wishes to 'chat' with me can make
|
||||
use of the following addresses:
|
||||
|
||||
Thomas Binder
|
||||
Johann-Valentin-May-Stra<72>e 7
|
||||
64665 Alsbach-H<>hnlein
|
||||
Deutschland/Germany
|
||||
|
||||
InterNet: binder@rbg.informatik.tu-darmstadt.de (preferred)
|
||||
gryf@hrzpub.tu-darmstadt.de
|
||||
MausNet: Thomas_Binder @ HD (no mails > 16K!)
|
||||
IRC: Gryf
|
||||
|
||||
Those who would like to obtain the extensively commented source code
|
||||
for the TOS2GEM example should either send me a self-addressed
|
||||
envelope with German stamps or 2 International Reply Coupons, or be
|
||||
in a position to receive binaries by Email. In addition you should
|
||||
specify whether you want the code for the old or new TOS2GEM example.
|
||||
The newer one uses a little more complicated but in return
|
||||
multitasking-friendly method of control, while the old version
|
||||
proceeds 'conventionally'. I'd only recommend the new version to
|
||||
those who have had previous experience with TOS2GEM programming! For
|
||||
beginners I suggest the older source code.
|
||||
|
||||
Naturally I'd be very happy if some of you would reward the work
|
||||
that I have put into TOS2GEM with a small contribution sent to my bank
|
||||
account (or to my British representative - see SUPPORT.TXT.) Every
|
||||
contributions safeguards further development of TOS2GEM, which I hope
|
||||
is desirable.
|
||||
|
||||
My banking details:
|
||||
Dresdner Bank AG Frankfurt am Main
|
||||
Konto-Nummer/Account No.00
|
||||
Bankleitzahl/Sort code: 500 800 00
|
||||
|
||||
Many thanks!
|
||||
|
||||
|
||||
11. Which programs support TOS2GEM?
|
||||
-----------------------------------
|
||||
|
||||
Up to now I am aware of four programs that use TOS2GEM to redirect
|
||||
output of TOS programs into a window:
|
||||
|
||||
- The POVShell by Dirk Klemmt (klemmt@stud.uni-frankfurt.de) from
|
||||
Version 1.3 onwards
|
||||
- The alternative desktop Thing originally programmed by Arno Welzel
|
||||
(arno@alphasystems.de) and now with continued development by me
|
||||
- The Shell Easy-PGP by Manfred Ssykor (msy@lafp.tng.oche.de)
|
||||
- A POV-3.0 port by Szymon Stasik (ss158962@students.mimuw.edu.pl)
|
||||
|
||||
Since in the age of MagiC and N.AES no other people seem to be
|
||||
interested in supporting TOS2GEM in their own programs, I have not
|
||||
done much more in the docs for programmers. I don't want to do
|
||||
unnecessary work ;)
|
||||
|
||||
12. Thanks
|
||||
----------
|
||||
|
||||
The following people took part in the development of TOS2GEM, directly
|
||||
or indirectly (in alphabetical order):
|
||||
|
||||
- Denesh Bhabuta
|
||||
- Alexander Clauss
|
||||
- Joe Connor
|
||||
- Frank Danapfel
|
||||
- Dirk Klemmt
|
||||
- Harald Sch<63>nfeld
|
||||
- Thomas Schulze
|
||||
- Manfred Ssykor
|
||||
- Arno Welzel
|
||||
|
||||
In addition I'd like to thank all those who have sent me a
|
||||
contribution for TOS2GEM.
|
||||
|
||||
|
||||
13. Outlook for further development of TOS2GEM
|
||||
----------------------------------------------
|
||||
|
||||
Apart from some possible bug fixes I doubt if I'll do much more with
|
||||
TOS2GEM, since in my opinion it's already relatively mature; in any
|
||||
case there seems to be no great demand for it from programmers or
|
||||
users any more.
|
||||
|
||||
|
||||
14. History
|
||||
-----------
|
||||
|
||||
The history only contains changes from the last pre-release
|
||||
beta-version of TOS2GEM, as it would get a bit long otherwise...
|
||||
|
||||
TOS2GEM of 13.09.1996:
|
||||
- No more crashes if the visible portion lies outside the physical
|
||||
screen (even though this is not allowed anyway according to the docs)
|
||||
- Under certain circumstances the internal colour-buffer pointer
|
||||
introduced in the beta of 10.02.1996 was not updated when diversion
|
||||
was switched back on again, which resulted in the colour buffer
|
||||
being kept at the wrong position
|
||||
|
||||
TOS2GEM-beta of 01.03.1996:
|
||||
- Further small increase in output speed with buffering active
|
||||
|
||||
TOS2GEM-beta of 10.02.1996:
|
||||
- If the time interval for time- and(!) interrupt-controlled buffering
|
||||
is smaller than 200ms, TOS2GEM omits refreshes during input as one
|
||||
happens often enough. Thanks to this output from Mupfel under MagiC
|
||||
is no longer painfully slow (Mupfel asks after outputting each(!)
|
||||
character whether a character is on the way, which TOS2GEM under
|
||||
MagiC must normally evaluate as a refresh request)
|
||||
- The output speed in colour mode is now almost as fast with a white
|
||||
background as in monochrome, since in this case the additional
|
||||
drawing of the character background is dispensed with in favour of
|
||||
the replace-mode. Since a white background is the norm, this
|
||||
improvement is very noticeable
|
||||
- Output buffering too has now become appreciably more efficient when
|
||||
lines contain many space charactes at the ends. Although this is
|
||||
not quite as common as a white background, it still happens often
|
||||
enough to make an appreciable difference
|
||||
|
||||
TOS2GEM of 26.07.1995:
|
||||
- Stupidly the 'MiNT' cookie was only looked for when TOS2GEM was
|
||||
started, so that TOS2GEM also buffered under MiNT when this was
|
||||
started first (recognition of input requests doesn't work with MiNT
|
||||
so one may not buffer with it)
|
||||
- The TOS2GEM example program now exploits the possibility of
|
||||
reserving TOS2GEM really only when it is needed. So one can now
|
||||
start it several times (with multitasking) as TOS2GEM is not
|
||||
permanently engaged
|
||||
|
||||
TOS2GEM-beta of 09.07.1995:
|
||||
- A number of errors or inadequacies in the stats-evaluation removed
|
||||
- With time-controlled buffering TOS2GEM hooks into the VBL (vertical
|
||||
blanking) interrupt in order to be able to trigger a refresh of the
|
||||
screen contents even when the running program has made no output for
|
||||
some time (previously checks were made directly during output only
|
||||
to see whether the time interval had been exceeded)
|
||||
- New file 'T2G_INTR.PRG' to switch interrupt usage on and off, in
|
||||
case of problems arising
|
||||
- With active buffering TOS2GEM now also clears the buffer when the
|
||||
visible area is moved
|
||||
|
||||
TOS2GEM of 21.06.1995:
|
||||
- New cookie-element 'stats', in which the contents of several
|
||||
internal variables can be stored when output redirection is
|
||||
inactive, to be read out again later (see more about this in the
|
||||
docs)
|
||||
|
||||
TOS2GEM-beta of 01.06.1995:
|
||||
- During initialising of the text buffers setting Null bytes for the
|
||||
line end was omitted (the source line seems to have got lost while
|
||||
incorporating colour support...)
|
||||
|
||||
TOS2GEM-beta of 11.05.1995
|
||||
- Serious error under MiNT removed: Due to an oversight in the source,
|
||||
buffering took place under MiNT though the recognition of input
|
||||
does not work there
|
||||
- TOS2GEM can now also use time-controlled output buffering, where
|
||||
refreshes take place at specified time intervals. This is achieved
|
||||
by negative values in the cookie element 'buffer_output'
|
||||
- The line redraw in colour mode was altered to a 'flicker-free'
|
||||
method, which while being slower is far easier on the eye
|
||||
|
||||
TOS2GEM-beta of 07.04.1995
|
||||
- TOS2GEM now also uses the colour sequences (which also includes
|
||||
inversion!). The new cookie element 'color' sets the type of colour
|
||||
support (compatible or VDI-conforming). More about this in the .HYP
|
||||
docs, which have now been released
|
||||
- Under SingleTOS, TOS2GEM now also uses a timer that triggers a
|
||||
refresh after 500 ms at Bconstat calls during output buffering. This
|
||||
permits TOS programs that interrogate the keyboard with Bconstat/
|
||||
Bconin to work correctly (e.g. SYSOK). Under MagiC this is not
|
||||
necessary as in that case the buffer is cleared anyway at each
|
||||
Bconstat call
|
||||
|
||||
TOS2GEM of 24.03.1995
|
||||
- As a bug report informed me that the 'TOS2GEM' cookie was still
|
||||
present after a reset, TOS2GEM no also hooks into the reset vector
|
||||
to clear the cookie pointer even when it only needs to extend the
|
||||
cookie jar. I hope this has removed the problem (I could not
|
||||
duplicate it)
|
||||
- With output buffering active, a 'refresh' will also be executed now
|
||||
when the screen contents (internally) have moved by the height of
|
||||
the window. This prevents any output from being completely
|
||||
'swallowed'
|
||||
|
||||
TOS2GEM-beta of 02.02.1995
|
||||
- Now the recognition of keyboard input also works under MagiC, so
|
||||
that buffering is also possible with that operating system.
|
||||
Unfortunately it does not work with MiNT/MultiTOS (but there one
|
||||
would use TOSWIN/MINIWIN in preference to TOS2GEM anyway, which also
|
||||
applies to VT52 under MagiC, of course
|
||||
- Buffering could be improved once more so that output now takes place
|
||||
more than twice as fast as without buffering (in part this is faster
|
||||
than the standard GEMDOS/BIOS output)
|
||||
|
||||
TOS2GEM-beta of 31.01.1995(?)
|
||||
- With the new cookie element 'buffer_output' one can achieve
|
||||
buffering of the output, which brings a marked speed increase.
|
||||
Unfortunately this only works with SingleTOS, as TOS2GEM can only
|
||||
recognise keyboard input correctly there (in such a case the buffer
|
||||
has to be cleared to make it possible to see what is to be input)
|
||||
|
||||
TOS2GEM of 19.01.1995
|
||||
- If TOS2GEM had to create or extend the cookie jar, this was lost at
|
||||
the first activation of output redirection, as it lay in the same
|
||||
memory region as the VDI array
|
||||
|
||||
TOS2GEM of 03.01.1995
|
||||
- When reactivating output redirection with 'switch_output' the
|
||||
y_offset was not adapted correctly. As this is a not inconsiderable
|
||||
error, it is advisable to use at least this TOS2GEM version with
|
||||
programs in which the size of the TOS2GEM window can be altered
|
||||
(take note of the 'date' cookie element!)
|
||||
- TOS2GEM.PRG now has the memory protection flag 'Global' once again
|
||||
(I had forgotten this the last time because the Pure C linker
|
||||
unfortunately cannot do this (at least not the one from PC 1.0))
|
||||
- The header file has been improved: The constant RESERVED_SIZE now
|
||||
exists for the 'reserved' field of the cookie, specifying the size
|
||||
of the field
|
||||
|
||||
TOS2GEM of 12.12.1994:
|
||||
- A small error crept into the calculation of two internal variables
|
||||
which led to faulty scrolling in certain circumstances (if only the
|
||||
first row of pixels of a line was visible)
|
||||
- TOS2GEM example included into the 'large' archive so that one can
|
||||
visualise what TOS2GEM actually does and how it works. I hadn't
|
||||
thought of this originally (thanks to Dirk Klemmt, who pointed this
|
||||
out to me)
|
||||
|
||||
TOS2GEM of 22.11.1994:
|
||||
- First official version, unfortunately still without ST-Guide docs
|
||||
(I wanted to 'release' TOS2GEM at the proTOS...)
|
||||
- Under MagiC there is a workaround for the problem that an 'Fread'
|
||||
call for the Console switches on the 'real' cursor and places the
|
||||
one for TOS2GEM in completely the wrong place. The solution is a
|
||||
little 'dirty' (write access to the negative LineA variables) but I
|
||||
could find no other reliable method to accomplish this
|
||||
- TOS2GEM now has the memory protection flag 'Global', so that no
|
||||
problems should arise with this under MiNT/MultiTOS
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
English translation of this and associated files: Peter West, TransAction.
|
||||
Reference in New Issue
Block a user