🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.atari.st
Article #31583

Re: TRAP handler question

#31583
From: Jos Vermaseren
Date: Wed, 30 Mar 1988 09:54
38 lines
2484 bytes
Reguarding the interception of trap 1 and inparticular Cconws to make the
screen faster:

One much faster way to write to the screen is the use of Bconout(5,c) which
is a poorly documented feature. It writes characters to the screen in a 'raw'
mode. This means that the VT52 escape codes are not interpreted and all
characters are written, including escapes, hex 00 etc. The controle codes
can then be done with Bconout(2,c). This gives an improvement of a factor
two or more over using Cconout and also an improvement of about a factor two
over Cconws. Much time is used in the filtering of the escape codes apparently.

To make another BIOS traphandler doesn't look like a solution, as most of
the screen writing time sits in the trap handler and the saving of registers
that comes with it.
The reason that some programs like Tempus have such a fast screen has several
reasons:
1:	The screen routines are user routines that are directly accessible
	for the program. They are written in such a way that it is not
	necessary to save registers.
2:	In Tempus the font files have been reshuffled to make the order of
	the pixels different from the GEM format.
3:	Absolutely no interpretation of tabs takes place. A good tab handler
	would slow the output down by about a factor two (guestimate).
Putting a trap handler inbetween would spoil much already. I think that Tempus
comes rather close to what is possible on the ST so any general solution
will never come close to it.

What is missing from the BIOS would be an equivalent of Cconws. Let us call that
Bconws. It would have to accept a device number and the number of characters
in the string because the raw output should not be stopped by a 0x00. That
would avoid the traphandler for most of the output. If you install such an
extra function your screen will become much faster than the Bconout(5,c) call.
All other BIOS calls will become a little slower then, unless you find a
version independent way to copy the BIOS jumptables at the installation of
your program.

Jos Vermaseren
T68@nikhefh.hep.nl
Technical Details
Message-ID: <444@nikhefh.hep.nl>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!mcvax!nikhefh!t68
References: <3738@watcgl.waterloo.edu> <197@bdt.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!mcvax!nikhefh!t68
From: t68@nikhefh.hep.nl (Jos Vermaseren)
Newsgroups: comp.sys.atari.st
Subject: Re: TRAP handler question
Message-ID: <444@nikhefh.hep.nl>
Date: 30 Mar 88 09:54:14 GMT
References: <3738@watcgl.waterloo.edu> <197@bdt.UUCP>
Reply-To: t68@nikhefh.hep.nl (Jos Vermaseren)
Organization: Nikhef-H, Amsterdam (the Netherlands).
Lines: 38