Q: Allocating XMS at the Top of Memory

(Note: This  is a repost. The original never showed up -  perhaps my
ISP lost it. I'll try posting to each newsgroup individually instead
of crossposting.)

  alt.lang.asm
  comp.lang.asm.x86
  comp.lang.pascal.borland
  borland.public.turbopascal

  To XMS Gurus,

  Does anyone know how to allocate a block of XMS memory at the top of
  memory instead of the bottom?

  Many legacy apps, like Borland's TD286 de{*word*81}, will crash  if they
  load above  16 meg. If you try to allocate a large block  of  XMS in
  your program, these apps will not work.

  Franck Uberto's  XMSDSK.EXE  can load at the top  of  XMS,  and many
  other apps can also, but there seems to be nothing in the Himem spec
  that shows how to do this.

  I've gone through the source for Himem but can't find any reference.

  I also  tried allocating blocks of memory,  then  de-allocating them
  out of order, but that doesn't seem to work.

  If anyone knows how, please take a minute and explain the trick!

  Thanks for your help.

  Ref XMSDSK:
  ftp://ftp.simtel.net/pub/simtelnet/msdos/ramdisk/fu_rd19i.zip

Best Regards,

Michael R. Monett