Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I've read from Ralf Brown's Interrupt List that INT 0x15 AH=0xE801 returns:
CF clear if successful
AX = extended memory between 1M and 16M, in K (max 3C00h = 15MB)
BX = extended memory above 16M, in 64K blocks
I wonder why
(max 3C00h = 15MB)
??? The maximum extended memory between 1M and 16M is 14 MB (3800h)!
May be it returns extended memory which is mapped to the address space between 1M offset and 17M offset, so one can determine is there ISA hole or not? In this case all is clear: if there is no ISA-hole and PC has RAM more than 16 MB, then
it returns 15MB.
Since first grade arithmetic seems to be too difficult, I decided to draw some segments, each representing 1 MiB. The first row of segments is the physical memory up to the 16 MiB mark. The second row of segments represents the memory which the interrupt function in question accounts for. If in doubt, please use your index finger to count how many of them there are. If you prefer, I can prepare a figure with longer segments.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| (16 MiB)
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| (15 MiB)
^
ISA memory hole may
or may not occupy
some or all of this
MiB.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
ISA memory hole may
or may not occupy
some or all of this
MiB.
Bah, I didn't realize the ISA hole was optional, since Wikipedia says there are still some things that use ISA internally. In that case, yes, 15MB is the max.
Stupid backwards compatibility and having/not having it.
The whole point of this interrupt is to tell you whether or not there is a hole and how big it is. Was the fact that it returns both how much memory there is in the range 1--16 MiB and the 16--64 MiB range seriously not a clue? If not, I believe the wiki is pretty explicit.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
Firestryke31 wrote:
Bah, I didn't realize the ISA hole was optional, since Wikipedia says there are still some things that use ISA internally. In that case, yes, 15MB is the max.
Stupid backwards compatibility and having/not having it.
On machines that support it, the ISA memory hole is enabled/disabled by the user from the BIOS -- depending on whether the machine has a board that needs to be mapped into that area.