Recently I've been studying DOS. Although I studied it a long time ago, there are still some things I'm not very clear about. In the past two days I've looked through a lot of materials.
Regarding system configuration, such as CONFIG.SYS, there are a few points where I see many people explaining things in a confused way. First, this is how I understand it:
1, The memory managed by DOS should be divided into:
conventional memory 1-640K
upper memory (UMB) 640-1024K
high memory (HMA) the first 64K part of extended memory
expanded memory (EMS) more or less the same as extended memory
extended memory (XMS) the part after 1024K
2, DEVICE= loads drivers into conventional memory,
DEVIDEHIGH= loads drivers into high memory (HMA)
dos=high,umb means DOS manages the UMB created by EMM386.EXE, and loads part of itself into HMA
But in a lot of materials I see upper memory UMB and high memory HMA being confused with each other.
For example, some say DEVIDEHIGH= is loaded into upper memory UMB,
and dos=high is also loaded into upper memory UMB.
I don't know which one is actually correct. Also, high memory HMA is only 64K. If both drivers and part of DOS are loaded into this area, will there be any effect? And if it goes over 64K, then what?
Also, is it true that all DOS programs can only run in the 640K space? If so, then what is the real significance of the extended memory provided by HIMEM.SYS??
I'm too much of a newbie. I hope a moderator or some expert can answer, I'd be extremely grateful!!!!
[ Last edited by hulongzhuo on 2007-3-17 at 06:06 PM ]
Regarding system configuration, such as CONFIG.SYS, there are a few points where I see many people explaining things in a confused way. First, this is how I understand it:
1, The memory managed by DOS should be divided into:
conventional memory 1-640K
upper memory (UMB) 640-1024K
high memory (HMA) the first 64K part of extended memory
expanded memory (EMS) more or less the same as extended memory
extended memory (XMS) the part after 1024K
2, DEVICE= loads drivers into conventional memory,
DEVIDEHIGH= loads drivers into high memory (HMA)
dos=high,umb means DOS manages the UMB created by EMM386.EXE, and loads part of itself into HMA
But in a lot of materials I see upper memory UMB and high memory HMA being confused with each other.
For example, some say DEVIDEHIGH= is loaded into upper memory UMB,
and dos=high is also loaded into upper memory UMB.
I don't know which one is actually correct. Also, high memory HMA is only 64K. If both drivers and part of DOS are loaded into this area, will there be any effect? And if it goes over 64K, then what?
Also, is it true that all DOS programs can only run in the 640K space? If so, then what is the real significance of the extended memory provided by HIMEM.SYS??
I'm too much of a newbie. I hope a moderator or some expert can answer, I'd be extremely grateful!!!!
[ Last edited by hulongzhuo on 2007-3-17 at 06:06 PM ]


