Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!sri-spam!ames!sdcsvax!ucbvax!ucdavis!deneb!ccs016 From: ccs016@deneb.UUCP Newsgroups: comp.sys.ibm.pc Subject: Re: Direct video access Message-ID: <769@ucdavis.UUCP> Date: Thu, 17-Sep-87 16:33:51 EDT Article-I.D.: ucdavis.769 Posted: Thu Sep 17 16:33:51 1987 Date-Received: Sat, 19-Sep-87 09:42:51 EDT References: <7871.1678.forumexp@mts.rpi.edu> Organization: University of California, Davis Lines: 29 > > I know you can get the current MODEM and video PAGE from > INT 0x10. These numbers are also stored in low (0:400) memory. > Are the values in low memory always (100%) accurate? > > Also, I've come up with some direct video read/write routines. > I seem to get trouble when I use pointers (*vidp = buf[i], etc. > where vidp is a far pointer pointing to the current video page) > but if I use PEEKs and POKEs I have no problems. Is there > a problem with using far pointers (vidp = ((unsigned char *) 0xB800) Yes, you forgot the offset. Just add on more 0's on your address. main() { long address = 0xb800000; char far buf; int x; buf = (char far *) address; for (x=1;x<4000;x+=2) /* skip the attributes */ printf("%c",*buf++); } This should work. I just wrote this so please don flame me. However, it has worked in the past. Patrick Tully pstully@ucdavis