I have a customer with a Toshibia Laptop.
Using MS DOS 7.1, the EMM386 driver will load, and the fre-11 function
validates that there is EMS available for our virtual arrays.
However, any virtual arrays that we try to load data into, will
freeze DOS.
This little test program loads a string into an array, then prints DONE
when the array is loaded.
_______________________________________
$ERROR ALL
DEFINT A-Z
DIM VIRTUAL LB(0:1000000) AS STRING*12
DIM X AS QUAD
FOR X=0 TO 1000000
LB(X)=STRING$(12,"A")
REM IF INP(&H60)=1 THEN ERASE LB:END
NEXT
PRINT "DONE"
END
_______________________________________
What happens is this:
The program displays DONE, but the system is now froze, and can not
be reset by Ctrl+Alt+Del..only pwr/on/off will work.
I tried this code on a few different machines, and it of-course works properly, but
not for this Toshiba.
From my customers Laptop:
Windows Expanded Memory Driver Version 4.95
Copyright 1988-1995 Microsoft Corp.
Available expanded memory . . . . . . . . 32,76KB
LIM/EMS version . . . . . . . . . . . . . 4.0
Total expanded memory pages . . . . . . . 2,07
Available expanded memory pages . . . . . 2,04
Total handles . . . . . . . . . . . . . . 64
Active handles . . . . . . . . . . . . . 1
Page frame segment . . . . . . . . . . . E000 H
Total upper memory available . . . . . . 0 KB
Largest Upper Memory Block available . . 0 KB
Upper memory starting address . . . . . . CF00 H
EMM386 Active.
Memory Type Total Used Free
---------------- -------- -------- --------
Conventional 640K 122K 518K
Upper 31K 20K 11K
Reserved 0K 0K 0K
Extended (XMS)* 457,633K 3,003K 454,630K
---------------- -------- -------- --------
Total memory 458,304K 3,145K 455,159K
Total under 1 MB 671K 142K 529K
Total Expanded (EMS) 32M (33,947,648 bytes)
Free Expanded (EMS)* 32M (33,554,432 bytes)
* EMM386 is using XMS memory to simulate EMS memory as needed.
Free EMS memory may change as free XMS memory changes.
Largest executable program size 518K (530,224 bytes)
Largest free upper memory block 8K (8,368 bytes)
MS-DOS is resident in the high memory area.
I have been using the fre-11 function in program, to send to customers to do a pre check
to determine if there system is configured properly to use EMS.
For this particular Toshiba, the Fre-11 function reports back:
EMS Memory Available = 33,554,432
I have tried several include/exclude ranges to try to obtain a contiguous
64k page frame, and can not prevent the system from freezing after the array is loaded.
Is there any test that will validate what page frames are available for EMM386?
TIA,
Tim Camarda
------------------
Using MS DOS 7.1, the EMM386 driver will load, and the fre-11 function
validates that there is EMS available for our virtual arrays.
However, any virtual arrays that we try to load data into, will
freeze DOS.
This little test program loads a string into an array, then prints DONE
when the array is loaded.
_______________________________________
$ERROR ALL
DEFINT A-Z
DIM VIRTUAL LB(0:1000000) AS STRING*12
DIM X AS QUAD
FOR X=0 TO 1000000
LB(X)=STRING$(12,"A")
REM IF INP(&H60)=1 THEN ERASE LB:END
NEXT
PRINT "DONE"
END
_______________________________________
What happens is this:
The program displays DONE, but the system is now froze, and can not
be reset by Ctrl+Alt+Del..only pwr/on/off will work.
I tried this code on a few different machines, and it of-course works properly, but
not for this Toshiba.
From my customers Laptop:
Windows Expanded Memory Driver Version 4.95
Copyright 1988-1995 Microsoft Corp.
Available expanded memory . . . . . . . . 32,76KB
LIM/EMS version . . . . . . . . . . . . . 4.0
Total expanded memory pages . . . . . . . 2,07
Available expanded memory pages . . . . . 2,04
Total handles . . . . . . . . . . . . . . 64
Active handles . . . . . . . . . . . . . 1
Page frame segment . . . . . . . . . . . E000 H
Total upper memory available . . . . . . 0 KB
Largest Upper Memory Block available . . 0 KB
Upper memory starting address . . . . . . CF00 H
EMM386 Active.
Memory Type Total Used Free
---------------- -------- -------- --------
Conventional 640K 122K 518K
Upper 31K 20K 11K
Reserved 0K 0K 0K
Extended (XMS)* 457,633K 3,003K 454,630K
---------------- -------- -------- --------
Total memory 458,304K 3,145K 455,159K
Total under 1 MB 671K 142K 529K
Total Expanded (EMS) 32M (33,947,648 bytes)
Free Expanded (EMS)* 32M (33,554,432 bytes)
* EMM386 is using XMS memory to simulate EMS memory as needed.
Free EMS memory may change as free XMS memory changes.
Largest executable program size 518K (530,224 bytes)
Largest free upper memory block 8K (8,368 bytes)
MS-DOS is resident in the high memory area.
I have been using the fre-11 function in program, to send to customers to do a pre check
to determine if there system is configured properly to use EMS.
For this particular Toshiba, the Fre-11 function reports back:
EMS Memory Available = 33,554,432
I have tried several include/exclude ranges to try to obtain a contiguous
64k page frame, and can not prevent the system from freezing after the array is loaded.
Is there any test that will validate what page frames are available for EMM386?
TIA,
Tim Camarda
------------------
Comment