Board index » delphi » Direct access to memory above 1MB ?

Direct access to memory above 1MB ?

Good Afternoon,

I'm looking for a possibility to access memory above the 1MB threshold
directly.
I would like to avoid the EMM386. Perhaps there is some way to deal with
the HIMEM.SYS ? The memory area accessable should be at least 2MB and is
meant to be a sort of data - buffer.

- Has anybody done this before ?
- Who knows how to address memory above 1MB directly and could tell me
  how to do it ?
- Has anybody detailed information about the HIMEM.SYS ?

Checking my computers memory with the DOS 6.xx command MEM /DEBUG and no
HIMEM nor EMM loaded, I get an information about an interrupt 15h that
still would allow me to access memory above 1MB.

- Does anybody know about this interrupt ?
- Which registers are used by interrupt 15h and in which way ?

Even Robert Browns interrupt list didn't help me here. Suggestions ?

Thanks in advance,
Yours Michael

--
............................................................................
Michael Benndorf                                        Universiteit Utrecht
                                                          Sectie Atoomfysica
                                                              Postbus 80,000
mailto:m.bennd...@fys.ruu.nl                                 NL-3508 TA Utrecht
http://www.fys.ruu.nl/~benndorf                                /+31/ 30-253 2372
............................................................................

 

Re:Direct access to memory above 1MB ?


Hi!

In article <343A5F0F.4...@fys.ruu.nl>, M.Bennd...@fys.ruu.nl says...

Quote
> I'm looking for a possibility to access memory above the 1MB threshold

  directly.
  I would like to avoid the EMM386. Perhaps there is some way to deal with
  the HIMEM.SYS ? The memory area accessable should be at least 2MB and is
  meant to be a sort of data - buffer.
  - Has anybody done this before ?

Yes! I think you have to use the XMS interface! This works without EMM386
but requires an XMM. (Himem.sys, XMSMMGR.EXE, etc)

Quote
>  - Who knows how to address memory above 1MB directly and could tell me

     how to do it ?

The XMS has functions to acces only a small portion of your mem buffer.
This solves indexing problems (64K in 16bit real mode). And easy to use!

Quote
>  - Has anybody detailed information about the HIMEM.SYS ?

I coded an XMS unit. I use it frequently, and seems to be correct.
The MS-DOS users' guide has an appendix containing full XMS specs.

Quote
>Checking my computers memory with the DOS 6.xx command MEM /DEBUG and no
>HIMEM nor EMM loaded, I get an information about an interrupt 15h that
>still would allow me to access memory above 1MB.

Yes, you can access the memory directly in protected mode or use INT 15h to
transfer data blocks, but does not work with some mem managers...

Quote
>   - Does anybody know about this interrupt ?
>- Which registers are used by interrupt 15h and in which way ?

Flambeaux Software's Tech Help 4.0

See the http://www.cs.vu.nl/~jprins/tp.html for nice sources.

BandiT

Re:Direct access to memory above 1MB ?


Quote
>Subject: Direct access to memory above 1MB ?
>From: "M.Benndorf" <M.Bennd...@fys.ruu.nl>
>Date: Tue, Oct 7, 1997 12:10 EDT
>Message-id: <343A5F0F.4...@fys.ruu.nl>

>Good Afternoon,

>I'm looking for a possibility to access memory above the 1MB threshold
><snip>
>Checking my computers memory with the DOS 6.xx command MEM /DEBUG and no
>HIMEM nor EMM loaded, I get an information about an interrupt 15h that
>still would allow me to access memory above 1MB.

>- Does anybody know about this interrupt ?
>- Which registers are used by interrupt 15h and in which way ?

>Even Robert Browns interrupt list didn't help me here. Suggestions ?

Yeah:  don't use it!!!

Int 15h is the BIOS "miscellaneous" function.  It actually has many
 subfuctions.  There are two for accessing extended memory in the days when the
 XMS standard hasn't been created yet.  However, they are designed so that only
 one program is suppose to use it at a time.  (And that's why later they have
 the XMS standard).

Nowadays those functions are pretty much obsolete.  Chances are that the XMS
 manager will take over the interrupt and essentially disable the two
 functions, so you can't use it anyway even if you wanted to.  The only time
 you might consider using it is when no memory manager whatsoever has been
 loaded, nowadays a very rare case.

- Show quoted text -

Quote

>Thanks in advance,
>Yours Michael

Re:Direct access to memory above 1MB ?


You could use FlatMode (32 bit ofs).
E-Mail me for source code or more info.

Quote
cbongc...@aol.com (CBongChan) wrote:
>>Good Afternoon,

>>I'm looking for a possibility to access memory above the 1MB threshold
>><snip>
>>Checking my computers memory with the DOS 6.xx command MEM /DEBUG and no
>>HIMEM nor EMM loaded, I get an information about an interrupt 15h that
>>still would allow me to access memory above 1MB.

Mail to S...@EuroNet.NL

Other Threads