Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!utgpu!water!watmath!watdcsu!broehl
From: broehl@watdcsu.UUCP
Newsgroups: comp.sys.ibm.pc
Subject: Re: SETCGA, SIMCGA info?
Message-ID: <3595@watdcsu.UUCP>
Date: Mon, 6-Jul-87 09:46:42 EDT
Article-I.D.: watdcsu.3595
Posted: Mon Jul  6 09:46:42 1987
Date-Received: Tue, 7-Jul-87 02:28:55 EDT
References: <2490007@hpsadla.HP> <1685@kontron.UUCP> <2801@ncoast.UUCP>
Reply-To: broehl@watdcsu.waterloo.edu (Bernie Roehl)
Organization: U. of Waterloo, Ontario
Lines: 24

In article <2801@ncoast.UUCP> allbery@ncoast.UUCP (Brandon Allbery) writes:
>
>BTW, SIMCGA does not use the CGA card; it translates BIOS calls for the CGA
>into equivalent Hercules card commands, allowing CGA programs that go through
>the BIOS to run unmodified on Hercules monitors.  (I assume it's BIOS only,
>since it's doubtful that software could deal with writing directly to the
>CGA.)

Not quite true.  SIMCGA takes advantage of the fact that Hercules cards and
compatibles have memory at both B000:0 and B800:0; SIMCGA wakes up on clock
interrupts (approx 18/sec) and copies scan lines from stuff from B800:0 to
B000:0, swapping them scanlines as it does so to allow for the difference in
interleave.

It's an extrememly clever solution to the problem, and works with virtually
all the software I've tried (regardless of whether that software uses the
BIOS calls or not).  The only programs it *won't* work with are ones that
either disable interrupts, trap the clock interrupt vector without chaining,
or attempt to directly access the CGA's 6845 registers (which of course
are not physically present unless you have a CGA or compatible).

Just for the record, SIMCGA was written by someone named "C. P. Guzis";
unfortunately I don't know any more than that, but if he's out there
listening, he deserves some congratulations on a brilliant piece of code.