1. Machine info via euphoria
- Posted by John Kinne <JDKINNE at MIAMIU.BITNET> Sep 03, 1996
- 2031 views
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
- Posted by Kirk Lang <kirklang at PRESYS.COM> Sep 03, 1996
- 2032 views
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
- 2029 views
- 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()