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

new topic     » topic index » view message » categorize

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 sad, 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

new topic     » goto parent     » topic index » view message » categorize

3. Re: Machine info via euphoria

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()

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu