Rugxulo
Usono, 19.12.2009, 03:33 |
> 3 GB of RAM (hypothetical), CWSDPMI (Developers)Thread locked |
(quoting Charles Sandmann):
---------------------------------------------------
"If I am to deal with more than around 3GB of memory, I need to deal with the physical memory map. This site contains a good summary and some example code:
http://wiki.osdev.org/How_Do_I_Determine_The_Amount_Of_RAM
I typically build a little TC/BCC/TASM image to check things first before I build them into new code. CWSDPMI currently uses:
Int 15, AH=0x88 first. Then it tries Int 15, AX=E801, and only uses the results if it shows no memory hole before the 16MB mark. It then truncates the memory at a little less than 2GB to stop from overruning an array fixed at 64KB in size (but that's another story, to be fixed...). For systems with memory holes I have always suggested using HIMEM.SYS, and let them deal with it (these were fairly rare anyway, when shifting from the ISA bus).
The recommendation to check for mega-memory systems is to use Int 15, AX=E820 (sample assembler provided in link above). So I need some test code to see if it works, then prints the map to the screen. Then I need to hack that to provide just a 32-bit version by 4KB page start, count. I am hoping the current code is fine for everything up to 3GB of memory, so maybe the new routine would only display 4KB page start, count pairs for memory that isn't currently "found" by the previous calls.
So this is two mini-projects. One is for me to hack cwsdpmi to handle at least 3.5GB of memory (messing with a new 4MB page bitmap for more than 256MB of memory). When that works, the 4MB page bitmap will only be around 128 bytes, so could easily be expanded to whatever size is needed, supporting up to 64GB of memory (of which you could map any 4GB into your address space at a time). But to know what physical memory is mapped, to put into the 4MB page bitmap, I need the second mini-project, the little test program above.
I will also move the base address from 0x10000000 to just 4MB, so you can use 4GB-4MB." |
Rugxulo
Usono, 26.12.2009, 15:09
@ Rugxulo
|
> 3 GB of RAM (hypothetical), CWSDPMI |
> (quoting Charles Sandmann):
Well, don't get your hopes up too high, but he has been polishing off r6 a bit, fixing bugs, etc. He might want more testers in the near future, so keep your eyes peeled. |
DOS386
27.12.2009, 02:21
@ Rugxulo
|
> 3 GiB of RAM (physical), CWSDPMI |
> "If I am to deal with more than around 3GB of memory, I need to deal with
> the physical memory map. This site contains a good summary and some
> example code:
> http://wiki.osdev.org/How_Do_I_Determine_The_Amount_Of_RAM
Nice info
I personally however most likely won't use CWSDPMI even if it can use 4 GiB one day, for well known reasons --- This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft *** |
Rugxulo
Usono, 27.12.2009, 02:32
@ DOS386
|
> 3 GiB of RAM (physical), CWSDPMI |
> I personally however most likely won't use CWSDPMI even if it can use 4
> GiB one day, for well known reasons
Well, in case anybody wants to test (although it's not finished, so do expect some bugs):
meminfo.exe 22-Dec-2009 00:46 7k
memmapt.exe 22-Dec-2009 00:46 4k
cwsdpmi6.exe 26-Dec-2009 01:05 21k
|
Laaca
Czech republic, 27.12.2009, 12:20
@ Rugxulo
|
> 3 GiB of RAM (physical), CWSDPMI |
> cwsdpmi6.exe
> 26-Dec-2009 01:05 21k
> [/code]
Who is the cwsdpmi6.exe by?
It is by Charles Sandmann? --- DOS-u-akbar! |
Rugxulo
Usono, 27.12.2009, 14:25
@ Laaca
|
> 3 GiB of RAM (physical), CWSDPMI r6 |
> > cwsdpmi6.exe
>
> > 26-Dec-2009 01:05 21k
> > [/code]
>
> Who is the cwsdpmi6.exe by?
> It is by Charles Sandmann?
Yes, but it's not quite polished up completely. And he's already updated it again.
cwsdpmi6.exe 27-Dec-2009 00:43 21k
|
DOS386
28.12.2009, 08:14
@ Laaca
|
> 3 GiB of RAM (physical), CWSDPMI |
> Who is the cwsdpmi6.exe by? It is by Charles Sandmann?
Of course it is. Why is it called CWSDPMI after all ? And Alpha's of v.6 have been around since 2001
The MEMINFO works, just (C) is 2000 and the MEMMAP also, just not very verbose and no (C) at all. --- This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft *** |
Rugxulo
Usono, 28.12.2009, 16:13
@ DOS386
|
> 3 GiB of RAM (physical), CWSDPMI |
> > Who is the cwsdpmi6.exe by? It is by Charles Sandmann?
>
> Of course it is. Why is it called CWSDPMI after all ? And Alpha's
> of v.6 have been around since 2001
Well, it is GPL-derivative, so I think somebody else could in theory modify it. But I don't think anyone ever did.
Yes, older r6 has been around a while. The main feature (assuming I understand it, barely) is faster speed with 4 MB pages, esp. due to less low memory requirements (no more swapping for page tables).
Don't be fooled, this is indeed a new update, but it's not finished or anything.
CWSDPMI V0.90+ (6t) Copyright (C) 2009 CW Sandmann ABSOLUTELY NO WARRANTY |
Rugxulo
Usono, 30.12.2009, 13:48
@ Rugxulo
|
> 3 GiB of RAM (physical), CWSDPMI |
> CWSDPMI V0.90+ (6t) Copyright (C) 2009 CW Sandmann ABSOLUTELY NO WARRANTY
cwsdpmi6.exe 30-Dec-2009 00:29 21k |
Rugxulo
Usono, 31.12.2009, 06:57
@ Rugxulo
|
> 3 GiB of RAM (physical), CWSDPMI |
cwsdpmi6.exe 30-Dec-2009 20:40 21k |
Rugxulo
Usono, 03.01.2010, 17:20
@ Rugxulo
|
> 3 GiB of RAM (physical), CWSDPMI |
cwsdpmi6.exe 03-Jan-2010 01:15 21k |
RayeR
CZ, 05.01.2010, 21:20
@ Rugxulo
|
> 3 GiB of RAM (physical), CWSDPMI |
> cwsdpmi6.exe
> 03-Jan-2010 01:15 21k
I'm not sure if it's necessary to post everyday builds, let us know when it will be stable and ready for common use :) --- DOS gives me freedom to unlimited HW access. |
Rugxulo
Usono, 06.01.2010, 18:21
@ RayeR
|
> 3 GiB of RAM (physical), CWSDPMI |
> I'm not sure if it's necessary to post everyday builds, let us know when
> it will be stable and ready for common use :)
Well, he claims he found and fixed some massively obvious bugs in the 2003 r6, hence it hasn't been tested too well in real-world use. So he's being a bit cautious on releasing it as-is. In particular, I didn't want anybody here to test only an old version. But it does work building Stone Soup 0.5.2 with -O2 (G++ 3.4.4 or 4.2.3) in FreeDOS w/ DOSLFN w/ XMGR and/or JEMM386 MAX=400000. That alone uses > 100 MB. |