nanogui: Microwindows for Hercules
Subject:
Re: Microwindows for Hercules
From:
Jakob Eriksson ####@####.####
Date:
15 Jul 1999 16:40:28 -0000
Message-Id: <Pine.GSO.3.95.990715182840.5200A-100000@bilbo.mdh.se>
On Thu, 15 Jul 1999, Greg Haerr wrote:
> : I am not really up to writing the driver myself because I have never writen a
> : driver before, but I will test it for you. I have 2 8086's with herc cards
> : in.
>
> Well, last night I took Jacob's hercules code samples and wrote
k :-)
> a complete hercules graphics driver for MicroWindows and Nano-X. I wrote
> all the driver entry points, but since I don't have a hercules card, I can't test it.
> Basically, the hercules card appears to use 32k of graphics ram for 720x350 mono
> pixels starting at segment b000. Each "screen ram line" corresponds to 4 physical
> scan lines, and there's one bit per pixel. There's a sequence of OUT instructions
> to turn the card from text to graphics modes and back, and I use int10 to get
> the bios rom's character set map.
>
> The files mwin/src/drivers/scr_herc.c are the hercules driver and
> mwin/src/drivers/elksutil.c are some support functions to read/write far data, etc.
>
> I'm looking for volunteers to test, I think this baby should run pretty quickly.
> It will be slow, since I've implemented hline by calling drawpixel. This
> needs to be sped up by drawing a scan line directly. I didn't want to do that
> until I knew drawpixel() works.
Excellent!
I have examples on how to draw fast lines horizontal, vertical and
(x1, y1) -> (x2, y2) using Bresenham.
These are in a book in asm. so I don't know about their copyright but
I think they are intended to be used, ie public domain.
Bresenham on Hercules is a little tricky.
If I don't remember wrong, there are two buffers on a Hercules (2 * 32k mem)
so you can even doublebuffer changes. Now that would be cool to work into
the driver.
If you other people fix it into working order, I can fix double buffering.
Jakob