dave@micropen (David F. Carlson) (06/21/88)
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