Xref: news2.mv.net comp.os.msdos.djgpp:3560 From: Enrico Horn Newsgroups: comp.os.msdos.djgpp Subject: Re: MK_FP, peekb and pokeb Date: Tue, 07 May 1996 15:01:45 +0200 Organization: Technische Universitaet Ilmenau Lines: 43 Message-ID: <318F49B9.7BD4@prakinf.tu-ilmenau.de> References: NNTP-Posting-Host: ipisparc4.prakinf.tu-ilmenau.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: Bruno Kraychete da Costa DJ-Gateway: from newsgroup comp.os.msdos.djgpp Bruno Kraychete da Costa wrote: > I tried somethink like: > char *p; > p=(char *)(0xb8000); > ... but I've got a SIGSEGV signal. Since I've never worked >with protected mode, I don't know how to do that work. Yes you can't do that under protected mode, cause the memory outside your data segment (segment may not be the right word) is not directly accessible. All the memory is PROTECTED (that's why it's called protected mode 8)). However there are a few possibilities to make that. If you need a pointer the best method is: #include char *p; __djgpp_nearptr_enable(); p=(char *)(0xb8000); . . . at the end of your program (or if you don't need the pointer anymore): __djgpp_nearptr_disable(); The main work is done by __djgpp_nearptr_enable which sets your data segment to the size of all available physical memory (the method is called FAT DS) so that you can use a nearptr to access every memory location. But be careful: a wild pointer can destruct memory contents (real DOS programmer don't care about that, I do). But there are also more secure methods: 1. _farpokeb/_farpokew/_farpokel to write one/two/four bytes at a specific memory location (there are _farpeek calls to read bytes) 2. dosmemputb/dosmemputw/dosmemputl to write more bytes/words/longs at a time (there are dosmemget calls) Consult the library reference for the syntax. Regards, Enrico. /---------------------------------------------------------------------\ |Enrico Horn Tel. 036738/41929 | |07426 Lichta E-mail: enrico DOT horn AT prakinf DOT tu-ilmenau DOT de | |Ortsstrasse Nr. 14 http://www.prakinf.tu-ilmenau.de/~ehorn | \---------------------------------------------------------------------/