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.