Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
High memory area
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== References == {{Reflist|refs= <ref name="Paul_2002_HMA">{{cite newsgroup |title=Treiber dynamisch nachladen (Intra-Segment-Offset-Relokation zum Laden von TSRs in die HMA) |trans-title=Loading drivers dynamically (Intra-segment offset relocation to load TSRs into the HMA) |author-first=Matthias R. |author-last=Paul |date=2002-02-02 |newsgroup=de.comp.os.msdos |language=de |url=https://groups.google.com/d/msg/de.comp.os.msdos/tdvpBoMVN6A/a_zqDxGk22IJ |access-date=2017-07-02 |url-status=live |archive-url=https://archive.today/20170909085006/https://groups.google.com/forum/%23!msg/de.comp.os.msdos/tdvpBoMVN6A/a_zqDxGk22IJ |archive-date=2017-09-09}} (NB. Gives a comprehensive overview on the history and "nature" of the HMA and the non-obvious design constraints to be observed when developing resident system extensions to be loaded into the HMA. It also describes how to address these issues using [[DOS memory stub|stub]]s, backdoors, and intra-segment offset relocation, a method used by [[DR-DOS]] drivers capable of relocating into the HMA and similar to a (more sophisticated) method used as the basis for the [[dynamic dead code elimination]] in the author's FreeKEYB driver.)</ref> <ref name="Paul_2002_MSDOS7">{{cite web |title=[fd-dev] HMA access from TSR |author-first=Matthias R. |author-last=Paul |date=2002-04-10 |work=freedos-dev |url=https://marc.info/?l=freedos-dev&m=101846072627263&w=4 |access-date=2017-09-09 |url-status=live |archive-url=https://archive.today/20170909125117/https://marc.info/?l=freedos-dev&m=101846072627263&w=4 |archive-date=2017-09-09 |quote=[…] [[MS-DOS 7.0]]+ adds INT 21h/AX=4A03h and INT 21h/AX=4A04h. [[RBIL]]61 INT 21h/AH=52h has some info on the MS-DOS 7.0+ HMA MCB chain […] HMA relocation for TSRs makes much sense for [[DR-DOS]]: Although you can load large parts of the [[BIOS (DOS)|BIOS]] and [[BDOS (DOS)|BDOS]], the resident part of the shell, the [[BUFFERS (CONFIG.SYS directive)|BUFFERS]], and DR-DOS TSRs like [[SHARE (DOS command)|SHARE]], [[KEYB (DOS command)|KEYB]], and [[NLSFUNC (DOS command)|NLSFUNC]] (and in some issues parts of TASKMGR and [[NWCACHE]]) into the HMA, there is usually still free space available, typically around 10 Kb (up to ca. 20 Kb when you use a 3rd party shell). It also makes sense for [[MS-DOS 5.0]] - [[MS-DOS 6.22|6.22]] and [[PC DOS]] up to [[PC DOS 2000|2000]], which typically leave 4 - 7 Kb of the HMA memory unused (SHARE, KEYB, and NLSFUNC cannot load into the HMA, but [[DBLSPACE]] and [[HIMEM]] can to some extent). Available HMA space can be rather tight with [[MS-DOS 7.0]]+, since this issue introduced a new and for the most part undocumented RMD data structure usually located in the HMA. The kernel collects and records configuration and Real Mode Driver data during boot (type of driver, interrupts hooked by driver, [[CONFIG.SYS]] line of invocation, etc.) and stores this information in an […] complicated […] and […] growing data structure. Presumably this info is meant to be used by the Windows core to get a better picture of the loaded Real Mode drivers instead of treating DOS as a monolithic block, or even […] attempt to unhook or unload some of them, however, it is only used to a very limited extent (for example you can see some of the info reflected in the log files created on Windows 9x startup, and some parts of the Windows configuration manager also make use of it), leaving room for speculation much beyond the technical side - in particular because nothing of the interesting stuff is documented… […]}}</ref> <ref name="Paul_2002_HMA7">{{cite newsgroup |title=Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird |author-first=Matthias R. |author-last=Paul |date=2002-08-13 |newsgroup=de.comp.lang.assembler.x86 |language=de |url=https://groups.google.com/d/msg/de.comp.lang.assembler.x86/boKnIpqPl-Q/ZLDFDX9E1e0J |access-date=2017-09-03 |url-status=live |archive-url=https://archive.today/20170904001428/https://groups.google.com/forum/%23!msg/de.comp.lang.assembler.x86/boKnIpqPl-Q/ZLDFDX9E1e0J |archive-date=2017-09-04}}</ref> <ref name="Dryfoos_1991_DOS5">{{cite web |title=MS-DOS 5.0 Development Post-Mortem Report |date=1991-09-18 |orig-date=1991-07-19 |editor-first=Mike |editor-last=Dryfoos |publisher=[[Microsoft]] |type=mail as court document |id=MS-PCA1179169 (MS-PCA1179159-MS-PCA1179191). MS7020988 (MS7020978-MS7021010). Depo. Ex. 1109. [[Comes v Microsoft]] Plaintiff's Exhibit 3473. C<!-- or O? -->A.No.2:96CV645B<!-- or E? --> Plaintiff's Exhibit 477. |page=10 |url=http://www.windowswiki.info/wp-content/uploads/codenames/PX03473.pdf |access-date=2019-07-22 |url-status=live |archive-url=https://web.archive.org/web/20190402223233/http://www.windowswiki.info/wp-content/uploads/codenames/PX03473.pdf |archive-date=2019-04-02 |quote=[…] One of the most important stimulanta for adding features was competitive pressure from [[DR DOS 5.0|DRDOS 5.0]], which we first learnt of in the spring of 1990. The DRDOS feature set led us to add [[upper memory block|UMB]] support, task swapping, and Undelete. […] Considerable amounts of the team's management attention was diverted to new features such as file transfer software, undelete and network installation […] Eventually this situation reached a crisis point at the end of July 1990, and, led by [[Brad Silverberg|BradS]], the team's management spent an arduous series of meetings nailing down a schedule and process for closing the project down […]}} (1+32 pages)</ref> <ref name="Schulman_1994_Undocumented-DOS">{{cite book |author-first1=Andrew |author-last1=Schulman |author-first2=Ralf D. |author-last2=Brown |author-link2=Ralf D. Brown |author-first3=David |author-last3=Maxey |author-first4=Raymond J. |author-last4=Michels |author-first5=Jim |author-last5=Kyle |title=Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 |series=The Andrew Schulman Programming Series |publisher=[[Addison Wesley Publishing Company]] |editor-first=Andrew |editor-last=Williams |edition=1st printing, 2nd |date=1994 |orig-date=November 1993<!-- 1st printing --> |isbn=0-201-63287-X |id={{ISBN|978-0-201-63287-3}} |location=Reading, Massachusetts, USA |pages=42, 349–350, 437–438 |url=https://archive.org/details/undocumenteddosp00andr_0 |url-access=registration}} (xviii+856+vi pages, 3.5"-floppy [https://web.archive.org/web/20200223185605/https://gopher.tildeverse.org/gopher.viste.fr/9/programming/PC/DOS/Undocumented%20DOS/Undocumented%20DOS%202nd%20edition.zip]) Errata: [https://web.archive.org/web/20190417215556/http://www.cs.cmu.edu/afs/cs/user/ralf/pub/books/UndocumentedDOS/errata.ud2][https://web.archive.org/web/20190417212906/https://www.pcjs.org/pubs/pc/programming/Undocumented_DOS/#errata-2nd-edition]</ref> <ref name="Brooks_2014_HMA">{{cite web |title=This is a detailed list of the changes I made in PC DOS 7.0 |date=2014 |author-first=Vernon C. |author-last=Brooks |work=PC DOS Retro |url=https://sites.google.com/site/pcdosretro/dosmods |access-date=2020-02-18 |url-status=live |archive-url=https://web.archive.org/web/20200218150946/https://sites.google.com/site/pcdosretro/dosmods |archive-date=2020-02-18 |quote=[…] [[DOSKEY.COM]] […] Move code to HMA if available. […] [[SHARE.EXE]] […] Move code to HMA if available and added /NOHMA option force loading low. […]}}</ref> <ref name="RBIL_2000_HMA">{{cite web |title=Format of HMA Memory Block (DR DOS 6.0 kernel loaded in HMA) |work=[[RBIL]] |date=2000 |url=http://faydoc.tripod.com/structures/15/1588.htm |access-date=2020-02-18 |url-status=live |archive-url=https://web.archive.org/web/20200218224303/http://faydoc.tripod.com/structures/15/1588.htm |archive-date=2020-02-18}}</ref> <ref name="Cooper_2002_MS-DOS">{{cite book |title=Using MS-DOS 6.22 |author-first=Jim |author-last=Cooper |edition=special 3rd |publisher=[[Que Publishing]] |date=2002 |isbn=0-78972573-8 |id={{ISBN|978-0-78972573-8}} |page=669 |url=https://books.google.com/books?id=u7oN-5y7nGsC&pg=PA669 |access-date=2020-02-18 |url-status=live |archive-url=https://web.archive.org/web/20200218235235/https://books.google.de/books?id=u7oN-5y7nGsC&pg=PA669&lpg=PA669&dq=PC+DOS+/NOHMA&source=bl&ots=j6q5YKPvuZ&sig=ACfU3U3d7o_AIeo7d3lmFOKFOYKYfkGIiA&hl=de&sa=X&ved=2ahUKEwi0qa2Nn9vnAhVRLewKHf_lCqQQ6AEwAXoECAoQAQ#v=onepage&q=PC%20DOS%20%2FNOHMA&f=false |archive-date=2020-02-18}}</ref> <ref name="Chappell_1994_Internals">{{cite book |title=DOS Internals |author-first=Geoff |author-last=Chappell |editor-first1=Andrew |editor-last1=Schulman |editor-first2=Amorette |editor-last2=Pedersen |date=January 1994 |edition=1st printing, 1st |series=The Andrew Schulman Programming Series |publisher=[[Addison Wesley Publishing Company]] |isbn=978-0-201-60835-9 |id={{ISBN|0-201-60835-9}} |pages=4, 21, 100–106, 127–129}} (xxvi+738+iv pages, 3.5"-floppy [https://web.archive.org/web/20190421200111/https://gopher.tildeverse.org/gopher.viste.fr/9/programming/PC/DOS/DOS%2520Internals/DOS_Internals.zip][https://web.archive.org/web/20200222111608/https://www.pcjs.org/pubs/pc/programming/DOS_Internals/]) Errata: [https://web.archive.org/web/20200222111742/http://www.geoffchappell.com/notes/dos/internals/][https://web.archive.org/web/20200222111853/https://gopher.tildeverse.org/gopher.viste.fr/1/programming/PC/DOS/DOS%2520Internals/crtdrvr][https://web.archive.org/web/20200222111945/https://gopher.tildeverse.org/gopher.viste.fr/1/programming/PC/DOS/DOS%2520Internals/xmswatch]</ref> <ref name="Paul_1997_NWDOSTIP">{{cite book |title=NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds |chapter=II.4. Undokumentierte Eigenschaften externer Kommandos |series=MPDOSTIP |author-first=Matthias R. |author-last=Paul |date=1997-07-30 |orig-date=1994-05-01 |edition=3 |language=de |url=http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm |access-date=2012-01-11 |url-status=live |archive-url=https://web.archive.org/web/20161105172944/http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm |archive-date=2016-11-05}} (NB. <code>NWDOSTIP.TXT</code> is a comprehensive work on [[Novell DOS 7]] and [[OpenDOS 7.01]], including the description of many undocumented features and internals. It is part of the author's yet larger <code>MPDOSTIP.ZIP</code><!-- still named TIPS_MP.ZIP between 1991 and 1996-11 --> collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the file.) [https://web.archive.org/web/20190601152204/https://www.sac.sk/download/text/mpdostip.zip<!-- A yet older version 155 from 1997-05-13 of the 1997-07-15 distribution archive. -->]</ref> <ref name="Paul_2001_NWDOSTIP">{{cite book |title=NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds |chapter=II.4. Undokumentierte Eigenschaften externer Kommandos |series=MPDOSTIP |author-first=Matthias R. |author-last=Paul |date=2001-04-09 |edition=3 |language=de}}</ref> <ref name="Paul_1997_OD-A3">{{cite web |author-first=Matthias R. |author-last=Paul |title=Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT and BOOT.TXT - A short description of how OpenDOS is booted |url=http://www.uni-bonn.de/~uzs180/download/ibmbioa3.zip |date=1997-10-02 |orig-date=1997-09-29 |access-date=2009-03-29 |url-status=dead |archive-url=https://web.archive.org/web/20031004074600/http://www-student.informatik.uni-bonn.de/~frinke/ibmbioa3.zip |archive-date=2003-10-04}} [https://web.archive.org/web/20181225154705/http://mirror.macintosharchive.org/max1zzz.co.uk/+Windows%20&%20DOS/DOS/System/Novell/Support/Bins/Op702src.zip<!-- Op702src.zip is an unofficial renamed distribution of the ibmbioa3.zip file -->]</ref> <ref name="Paul_2002_DISPLAY">{{cite web |title=[fd-dev] DISPLAY CON? |author-first=Matthias R. |author-last=Paul |date=2002-12-04 |work=freedos-dev |url=https://marc.info/?l=freedos-dev&m=103902610816421&w=2 |access-date= |url-status=live |archive-url=https://web.archive.org/web/20211208192532/https://marc.info/?l=freedos-dev&m=103902610816421&w=2 |archive-date=2021-12-08 |quote=[…] some issues of DISPLAY.SYS (of [[PC DOS 7]]/[[PC DOS 2000|2000]], for example) store the currently unused fonts in [[XMS memory]]. Some earlier issues of MS-DOS/PC DOS [[DISPLAY.SYS]] seem to have had a facility to store them in the HMA […]}}</ref> <ref name="Sweger_2002">{{cite web |title=ANSIPLUS and Windows |author-first=Kristofer |author-last=Sweger |date=2007 |orig-date=2002-07-15 |url=http://www.sweger.com/ansiplus/TechNotesWindows.html |access-date=2021-11-28 |url-status=live |archive-url=https://web.archive.org/web/20211128093722/http://www.sweger.com/ansiplus/TechNotesWindows.html |archive-date=2021-11-28 |quote=[…] ANSIPLUS's code cannot be loaded to the HMA under [[MS-DOS 7]] (Windows 9x only) because there apparently is not enough unused HMA memory available. […]}}</ref> <ref name="Ingenoso_1998">{{cite book |title=Making Code Work Better - How to minimize the size of 80x86 code and sometimes make it faster |chapter=Chapter 13 - The A20 gate and the HMA |author-first=Tony |author-last=Ingenoso |date=1998-12-20 |type=e-book |url=http://www.bobeager.uk/tonyingenoso/chap13.htm |access-date=2019-11-18 |url-status=live |archive-url=https://web.archive.org/web/20191118001750/http://www.bobeager.uk/tonyingenoso/chap13.htm |archive-date=2019-11-18}}</ref> <ref name="Novell_1994_DR6">{{cite web |title=Third Party Memory Managers |author-first1=K. |author-last1=Banta |author-first2=D. |author-last2=Partridge |work=[[DR DOS 6.0]] |type=Technical information document |id=TID800074 (replaces FYI-M-1303) |version=Revision A |date=1994-08-18 |publisher=[[Novell]] |url=https://ftp.zx.net.nz/pub/archive/novell/drdos/6/DR6TID/800074.TXT |access-date=2021-12-15 |url-status=live |archive-url=https://web.archive.org/web/20211215193532/https://ftp.zx.net.nz/pub/archive/novell/drdos/6/DR6TID/800074.TXT |archive-date=2021-12-15}}</ref> }}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)