Path: utzoo!attcan!uunet!ssbell!mcmi!unocss!ho@fergvax.unl.edu From: ho@fergvax.unl.edu (Tiny Bubbles...) Newsgroups: comp.sys.ibm.pc.programmer Subject: Re: reading directly from screen Message-ID: <2724@unocss.unomaha.edu> Date: 10 Apr 90 23:14:03 GMT References: <399@techbook.UUCP> Sender: news@unocss.unomaha.edu Reply-To: ho@fergvax.unl.edu Lines: 23 From article <399@techbook.UUCP>, by paulb@techbook.UUCP (Paul Buder): >>In article <3850@plains.UUCP> person@plains.UUCP (Brett G. Person) writes: >>>How do I make Microsoft C read directly from video memory. I need to >>>access the memory starting from b800. > > [...] How about the simple solution: > > char (far *screen)[80][2]=(char (far *)[80][2])0xb8000000; > > Then to read the character at the 4th row, 10th column: > ch=screen[4][10][0]; Trouble with this might be that on EGA systems, if I'm not mistaken, it is possible to move the "beginning" of display memory, such that it is no longer at segment 0xb800. I think it would require a couple of EGA BIOS calls to determine that. I'm betting the VGA is even more flexible ("confusing"), but as I don't have access to a VGA card, I can't speculate. --- ... Michael Ho, University of Nebraska Internet: ho@hoss.unl.edu