1. Machine info via euphoria
Hello All
I am tring unsuccessfully to use int 15 function 88 to get extended
memory size. I always get a zero. My code follows. Any ideas?
I would like to see the source of the Microsoft MSD program. It is
installed in my Windows directory & seems to have access to all sorts
of info about my machine. I need to determine this info programmatically
and for the most part have not been able to do so.
function GetEmem()
sequence reg_list -- list of register values
integer ememsize
reg_list = repeat(0, 10)
reg_list[REG_AX] = #8800 -- function: AH = #88 ==> Get extended mem siz
reg_list = dos_interrupt(#15, reg_list) -- Call DOS interrupt #15
ememsize = reg_list[REG_AX]
return ememsize
end function
2. Re: Machine info via euphoria
John Kinne wrote:
> reg_list = dos_interrupt(#15, reg_list) -- Call DOS interrupt #15
According to my docs, which could be wrong
, int 0x15 (15 hex) is for
the tape casset port (who uses tapes, anyway?)
My docs don't have information on EMS, thought. (probably because they
want me to buy the whole thing!). If you want a copy of my DOS REF files
(really good stuff!), email me at kirklang at presys.com They are
copyrighted (shareware) in '94, so they are a coupla years old.
Sorry I couldn't be much help.
Kirk Lang
3. Re: Machine info via euphoria
- Posted by Jacques Deschjnes <desja at QUEBECTEL.COM>
Sep 04, 1996
-
Last edited Sep 05, 1996
John Kinne wrote:
> Hello All
>
> I am tring unsuccessfully to use int 15 function 88 to get extended
> memory size. I always get a zero. My code follows. Any ideas?
>
> I would like to see the source of the Microsoft MSD program. It is
> installed in my Windows directory & seems to have access to all sorts
> of info about my machine. I need to determine this info programmatically
> and for the most part have not been able to do so.
>
> function GetEmem()
> sequence reg_list -- list of register values
> integer ememsize
>
> reg_list = repeat(0, 10)
>
> reg_list[REG_AX] = #8800 -- function: AH = #88 ==> Get extended mem siz
>
> reg_list = dos_interrupt(#15, reg_list) -- Call DOS interrupt #15
> ememsize = reg_list[REG_AX]
>
> return ememsize
> end function
A further investigation showed me that extended memory manager trap
function #88 of
interrupt #15 and force it to answer with zero extended memory.
To know if there is an extended memory manager installed you can use the
following function.
function XmsInstalled()
sequence r
r= repeat(0,10)
r[REG_AX] = #4300
r = dos_interrupt(#2F,r)
if remainder(r[REG_AX],256) = #80 then
return 1
else
return 0
end if
end function -- XmsInstalled()