Xref: news2.mv.net comp.os.msdos.djgpp:2419 From: Eli Zaretskii Newsgroups: comp.os.msdos.djgpp Subject: Re: DJGPP v2 and direct memory writing Date: Wed, 3 Apr 1996 07:40:17 +0200 Organization: NetVision LTD. Lines: 28 Message-ID: References: <4jqo2o$7ud AT news DOT mdata DOT fi> NNTP-Posting-Host: is.elta.co.il Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII In-Reply-To: <4jqo2o$7ud@news.mdata.fi> To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp On 1 Apr 1996, Vesa-Matti Heino wrote: > I use in my programs direct screen writing routines. When I upgradet to version > 2 of djgpp, my programs wont work anymore. GCC compiles them just right, but > when I run these files Gcc gives error and register values. What is wrong... > > Here is one of functions, whitch wont work: > > char *screen=(char *)0xD0000000; > > void inline plot(short x,short y,char col){ > screen[(y<<8)+(y<<6)+x]=col; > } > > Also my direct textmode routines wont work... :( Direct access to video RAM (and any other memory-mapped device) by poking a constant address like 0xD0000000 doesn't work in v2.0. In fact, it didn't even work in v1.x in DPMI mode, and v2.0 is DPMI-only environment. Read the __djgpp_nearptr_enable section in the libc.a on-line Info docs, or point your Web browser to this URL: http://www.delorie.com/djgpp/doc/libc-2.00/libc_111.html#SEC111. Section 18.4 in the FAQ list (available as v2/faq200b.zip from the same place you get DJGPP) tells you about other available methods of accessing conventional memory and memory-mapped devices. I suggest you read it.