[comp.sys.ibm.pc] Memory allocation in device drivers?

perry@omepd.UUCP (04/15/87)

Hi, NetLanders! This is a questions for those who read (MSDOS) device drivers
with their breakfast.

I am trying to write a loadable device driver that uses a LARGE buffer. (64K
is quite reasonable, sometimes I want more.) So, my driver initialization code
must get ahold of a large chunk of memory.

No problem, I thought. Just add buffer size to my cutoff point (beyond which
things shouldn't be saved) and pass that address back as END ADDRESS. Hehe.
MSDOS doesn't get it. It seems unable to understand that I want MORE memory
than it actually loaded from my driver file. Sigh.

Oh well, I thought, take the straight route and request a memory block (using
function 48h). Arrrgh! No matter how much I request, I always get the carry
bit back. Request failed. On second thought, I can't really expect DOS to be
up and running in full beauty (:-) :-) ...) during system initialization.

Except now I don't know how to get my memory. I distinctly dislike the idea of
making a 200K large driver file just so MSDOS gets the picture.

So, dear MSDOS-specialists and deep hackers: please enlighten me. What am I
missing? Or what thrice-damned hack do I need to get my memory? And while
you're at it - what things can I do in a driver's init code and what is
verboten?! I can't find that info anywhere.
Thanks commensurately for your help.
------------------------------------------------------------------------
  <<  Perry The Cynic >>		   =>> perry@inteloa.intel.com <<=
				      ...!tektronix!ogcvax!omepd!inteloa!perry
   (Peter Kiehtreiber)				...!verdix!omepd!inteloa!perry