home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.os.msdos.programmer
- Path: sparky!uunet!pipex!warwick!mrccrc!doc.ic.ac.uk!rhbnc!csqx.cs.rhbnc.ac.uk!adrian
- From: adrian@csqx.cs.rhbnc.ac.uk (A Johnstone)
- Subject: Virtual to physical address mapping
- Message-ID: <1992Aug17.100034.11097@csqx.cs.rhbnc.ac.uk>
- Sender: news@csqx.cs.rhbnc.ac.uk (USENET News System)
- Nntp-Posting-Host: csqx.cs.rhbnc.ac.uk
- Reply-To: adrian@csqx.cs.rhbnc.ac.uk (A Johnstone)
- Organization: Dept of Comp Sci, Royal Holloway & Bedford New College Uni London
- Date: Mon, 17 Aug 1992 10:00:34 GMT
- Lines: 22
-
- I'm a hardware engineer with plenty of Unix and VMS systems programming experience
- but rather ignorant about MS-DOS internals, so please pardon my naivity.
-
- I have a homebrew SCSI card that is meant to perform DMA. It works fine on an
- XT but not on an AT. On an XT, buffers live at the same physical addresses as
- the compiler and linker specify, so it is easy to figure out what to put in the
- DMA controller registers. On a 386 under MS-DOS 5 this is no longer true. I have
- no way of figuring out what the true physical address of a particlular virtual
- address is, and since I don't know where in the hardware address space my buffer
- is living, I can't tell my SCSI chip where to DMA to. I must stress that even under
- the simplest MS-DOS setup, with no high drivers or other cleverness, program
- addresses no longer equal hardware addresses. I assume that under Windows or when
- using memory extenders the situation becomes even murkier.
-
- Any advice, hints or pointers to the literature on the subject of memory allocation
- in an extended memory environment would be welcome. What I'm really hoping is
- that one of you will be able to tell me about an MS-DOS interrupt that takes a
- segment:offset pair and returns a 24-bit number containg the equivalent physical
- main-memory address. However I've got this hunch that things in MS-DOS land are not
- so simple...
-
- Adrian
-