mods to hercules driver: 386, faster, better, ...

David F. Carlson dave at micropen
Wed Jun 22 00:18:03 AEST 1988


First, I'd like to thank John Antypas for the hercules graphics driver
he posted recently.  To keep it going I'd like to contribute the following
tips.

1).	The use of fpbyte/spbyte are easy but require (I believe) a subroutine
linkage for *each pixel set*!!!!  This is very painful and costs far more than
the math to be done on the pixel.  

Under SV/386 the the lines in open() and the following macros make things
work at memory speed rather than subroutine linkage speed:

static char *base;  /* extern scope */

in open():

base = sptalloc(8, PG_P | PG_RW, herc_base >> 12, 0);
	/* allocates 8 pages (32k page 0 memory) at physical address herc_base */

then the following some where:

	/* no range checking so be careful!! */
#define fpbyte(address)	(*(address - base))
#define spbyte(address, val)	(*(address - base) = val) 

Further gains may be eeked out by removing the gratuitous subtraction
required for address - base = offset computation, but this requires
source code mods.


Have fun kiddies.

-- 
David F. Carlson, Micropen, Inc.
...!{ames|harvard|rutgers|topaz|...}!rochester!ur-valhalla!micropen!dave

"The faster I go, the behinder I get." --Lewis Carroll



More information about the Comp.unix.microport mailing list