From: rafael DOT ramirez AT channel1 DOT com (Rafael Ramirez) Date: 30 Jan 93 (21:35) To: djgpp AT sun DOT soe DOT clarkson DOT edu Subject: how to access 0x00800000 Sorry to bother, but I'm behind schedule on a project and I need to find out ASAP this: -We have 386's with a "funny memory map" and I'm testing DJGCC to see how it does for a new version of an application we have done here (currently uses Watcom). There are four Megabytes of RAM at 0-640 and 1MB ...3.5MB. Of course, some video and other adapters' RAM between 640-and 1MB. But I also have a full megabyte of memory from another adapter at 00800000-008FFFFF. No problem accessing the "real mode" memory (first MB). No problem accessing the other 3.5MB, as managed by GO32. No problem accessing the Video Adapter RAM as managed by GO32. But it seems that I can not access (at least directly) the "*physical* address range" 00800000-008FFFFF. I've tried the address 01800000 (01000000+00800000), but it doesn't seem to work either (should it?) I can choose where the 1Meg of RAM from this adapter is mapped into the physical address space, in 1 MB boundaries from 0x000000 (not a good idea since there is already the "real mode" 1st MB) up to 0xf00000. Now, how do I access this MB of "physical" RAM and what's the best way to do it? I need ultra-fast access, so nothing like poke() or memcpy() would do. I need to do something like: MemPtr = (long *) 00800000L; MemPtr+MatrixXY=x*y*z; MemPtr++; Please, help! I need answers a bit concrete, since I'm not that familiar with the GO32 code (but I can rebuild it and modify it if necessary). But I wan't be able to follow an answer of the type "just create a new LSS and specify the mapping range ..." Thanks. And while we are at it, three quickies: -how does GO32 determine which physical addresses are "real" (mapped to RAM) and which ones are not (faults to VM)? -how do you use a local label when using in-line assembly? I've tried to write something like L1: as the manual suggests and as it seems logic, but it doesn't work! I.e. something like __asm{ cmp %eax,%ebx; jz L1; L1: cli; } -And last I'd like to know if there is a way for somebody w/o ftp access to get a hold of the .DOCs for GASS * SLMR 2.1a * Rafael DOT Ramirez AT channel1 DOT com from SPAIN! (A.K.A. RRC) -- Channel 1 (R) Cambridge, MA