Return to BSD News archive
Newsgroups: comp.unix.bsd Path: sserve!manuel!munnari.oz.au!mips!mips!darwin.sura.net!Sirius.dfn.de!zrz.tu-berlin.de!math.fu-berlin.de!unidui!du9ds3!veit From: veit@du9ds3.uni-duisburg.de (Holger Veit) Subject: Re: Possable pccons.c bug in 0.1 References: <Bsqyun.Jp5@pix.com> Date: 10 Aug 92 12:40:35 GMT Reply-To: veit@du9ds3.uni-duisburg.de Organization: Uni-Duisburg FB9 Datenverarbeitung Sender: @unidui.uni-duisburg.de Message-ID: <veit.713450435@du9ds3> Lines: 45 In <Bsqyun.Jp5@pix.com> stripes@pix.com (Josh Osborne) writes: >In sput() in pccons.c (I think it's with the ISA drivers) we have: >... > was = *cp; > *cp = (u_short) 0xA55A; > if (*cp != 0xA55A) { > addr_6845 = MONO_BASE; > vs.color=0; > } else { > *cp = was; > addr_6845 = CGA_BASE; > Crtat = Crtat + (CGA_BUF-MONO_BUF)/CHR; > vs.color=1; > } >... >I *think* it looks like the if should be > if (was != 0xA55A) ... >However I don't have a monocrome graphics card to try out... >Sorry if the bug has been detected (or if I misread good code). >-- > stripes@pix.com "Security for Unix is like > Josh_Osborne@Real_World,The Multitasking for MS-DOS" > "The dyslexic porgramer" - Kevin Lockwood >We all agree on the necessity of compromise. We just can't agree on >when it's necessary to compromise. - Larry Wall "was" saves the old value at the address "cp" is pointing to. It is restored in the else path if there is RAM at this address. With a Hercules card, there is none there. The only problem that might be there is that the cc must be prevented to put the value "*cp" into a register (after storing it). This might be done by making "cp" "volatile". Holger -- | | / Holger Veit | INTERNET: veit@du9ds3.uni-duisburg.de |__| / University of Duisburg | BITNET: veit%du9ds3.uni-duisburg.de@UNIDO | | / Dept. of Electr. Eng. | "No, my programs are not BUGGY, these are | |/ Inst. f. Dataprocessing | just unexpected FEATURES"