From: Corelli Marco Newsgroups: comp.os.msdos.djgpp Subject: Accesing from 0xFFFF:F000 to 0xFFFF:FFFF physical memory address Date: Thu, 12 Oct 2000 18:00:10 +0200 Organization: IUnet Lines: 43 Message-ID: <39E5E00A.39A80E46@gtwparc.padova.ccr.it> NNTP-Posting-Host: proxy.iperv.it Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: serv1.iunet.it 971366103 16412 151.4.122.158 (12 Oct 2000 15:55:03 GMT) X-Complaints-To: newsmaster AT iunet DOT it NNTP-Posting-Date: 12 Oct 2000 15:55:03 GMT X-Mailer: Mozilla 4.75 [en] (Win98; U) X-Accept-Language: en To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hi All, I need to access from 0xFFFC:0000 to 0xFFFF:FFFF physical addess to program a Flash device but when I try to map the address 0xFFFF:F000 to 0xFFFF:FFFF my program crash !!!! I use this code for map physical address to linear memory int selector; __dpmi_meminfo mem; mem.address = 0xFFFF0000L; mem.size = 0x10000; //* Mapping physical address... if ( __dpmi_physical_address_mapping( &mem ) == -1 ) printf ( "\nERR: __dpmi_physical_address_mapping" ) ; //* Create new selector to access physical address selector = __dpmi_allocate_ldt_descriptors ( 1 ) ; if ( *selector == -1 ) printf ( "\nERR: __dpmi_allocate_ldt_descriptors\n" ) ; //* Set current base segment if ( __dpmi_set_segment_base_address ( selector, mem.address ) == -1 ) printf ( "\nERR: __dpmi_set_segment_base_address\n" ) ; //* Set segment limit if ( __dpmi_set_segment_limit ( selector, mem.size - 1 ) == -1 ) printf ( "\nERR: __dpmi_set_segment_limit\n" ) ; and access the location : byte_read = _farpeekb ( selector, offset ) ; at this time my program crash !!!! Bye Marco N.B. If I run my program in a DOS window under Win98 all is OK !!!!