I have a computer with a total of 12 GB of RAM. Yet I was very surprised to see that I seem unable to get over about 1.7 GB. Then I searched the forum and could read somewhere that ABBKlaus said that the limit is around 2 GB.
Is there a way to bypass this limit, to load say 3 GB in the Memory in one block? Otherwise I don't understand why computers have more than 2 GB, if no more can be used ????
Furthermore, I do not see any change in Memory usage in the Processes of the Windows' Task Manager.
Thanks for any light that might clarify my brain (which certainly has still an XT-like memory

And I have written a little program to test the memory allocation. It should clone a file's contents 1000 times. With small files, there would be no problem, but with big files, it will stop before reaching 1000:
Code: Select all
EnableExplicit
Procedure.i Test(Array *F(1),Array M(1),i)
If *F(i)=0
MessageRequester("Error","Unable To allocate Memory at attempt #"+Str(i),0)
ProcedureReturn 1
EndIf
ProcedureReturn 0
EndProcedure
Define.s FileName
Define.i Bin,Count,FileSize,i,Occ,Problem
Define.q Tmu
Occ=1000
Dim *F(Occ)
Dim M.i(Occ)
FileName=OpenFileRequester("Select a file","C:\","*.*",0)
Bin=OpenFile(#PB_Any,FileName)
FileSize=Lof(Bin)
For i=1 To Occ
*F(i)=AllocateMemory(FileSize)
Problem=Test(*F(),M(),i)
If Problem
Break
Else
Tmu=Tmu+FileSize
Count=Count+1
EndIf
Next i
For i=1 To Occ
If M(i) : ReadData(Bin,*F(i),FileSize) : EndIf
Next i
MessageRequester("Result","Total Size successufully loaded into Memory: "+Str(Tmu)+" bytes."+#CRLF$+#CRLF$+FileName+#CRLF$+#CRLF$+"could be loaded in memory "+Str(Count)+" time(s).",0)
End; memory is automatically freed