Clever Geek Handbook
📜 ⬆️ ⬇️

HIMEM.SYS

HIMEM.SYS is an extended memory and HMA memory driver for the MS-DOS operating system that provides support for additional memory (extended or expanded).

HIMEM.SYS was introduced into MS-DOS 5.0 to enable loading the DOS kernel in the High Memory Area in order to increase the size of the available main memory by specifying DOS=HIGH in CONFIG.SYS .

HIMEM.SYS provides access to RAM beyond the first megabyte of space, and therefore the driver is needed for MS Windows9x / ME systems to load the graphical part of operating systems. In FreeDOS, the corresponding file is called HIMEM.EXE and can be loaded from the FreeDOS configuration files with the names FDCONFIG.SYS or CONFIG.SYS.

Content

Advanced Memory Management

When using HIMEM.SYS, it becomes possible to place part of the MS-DOS kernel, system service tables and I / O buffer in the additional (extended or expanded memory) memory area. You can also upload COMMAND.COM there . If the personal computer is made on the microprocessor 80386 , then you can also free up the main memory from most resident drivers .

Changing the organization of memory access in Windows NT sharply limited the use of memory managers, including HIMEM.SYS.

Using the Command

To load HIMEM.SYS under MS-DOS , the line is added to the CONFIG.SYS file (or CONFIG.NT for Windows NT- based systems ):

(at 80286)(on 80386 and beyond)
DOS = HIGHDOS = HIGH, UMB
device = ( drive:) ( path ) HIMEM.SYSdevice = ( drive:) ( path ) HIMEM.SYS
DEVICE = EMM386.EXE RAM
DEVICEHIGH = ...

where ( drive:) and ( path ) are respectively the name of the drive and the path to the directory where the HIMEM.SYS file is located.

In addition, the LOADHIGH (LH) command is allowed for 80386.

Optional HIMEM.SYS Driver Parameters

ParameterExplanation
/ A20CONTROL: ONDefault: OFF, that is, DOS controls the A20 only if another program does not do the same.
/ CPUCLOCK: ONThis parameter is recommended to be indicated if in the presence of HIMEM.SYS the clock slows down.
/ Hmamin = nIf the driver uses less than (n) KB of memory, it will not be called. 0 <= n <= 63.
/ INT15 = nThe number of kB reserved in additional memory for programs such as Paradox, QEMM, and the like.
/ MACHINE: computer code(AT, PS2, etc.) The code table is provided in the documentation for MS-DOS 5.00. It depends on the code which A20 handler is used.
/ NUMHANDLES = nThis is the maximum number of extra processors. memory. 6 bytes per block are required. 1 <= n <= 128.
/ SHADOWRAM: OFFDo not copy ROM-BIOS to RAM (OFF saves memory but slows down). Default: ON.

Optional EMM386.EXE driver parameters (in CONFIG.SYS)

ParameterExplanation
memory- in KB, the default is 256.
Code- code of the starting starting address of the EMS:

1,2,3,4 (C000, C400, C800, CC00) 5,6,7,8 (D000, D400, D800, DC00) 9 (E000) 10,11,12,13 (8000,8400,8800, 8C00) 14 (9000)

FRAME = address- similarly, explicit assignment of the EMS base
/ Address- same
/ Pn = address- EMS page segment address

n = 0 | 1 | 2 | 3 | 254 | 255

/ X = start-con- do not use this section (both addresses are hexadecimal numbers)
B = address- beginning Bank switching address (default 4000)
L = n- leave (n) kb as extended memory
A = n- number of alternative registers, from 0 to 254, default 7
H = n- the number of handlers, from 2 to 255, the default is 64
RAM or NOEMS- occupy part of the upper memory (640kB-1MB)

Functionality

An example of an MS-DOS memory card after loading HIMEM.SYS

  Maximum program size: 639,056 (624K)
  Largest free upper memory block: 143,232 (140K)
  The resident part of MS-DOS is loaded into the HMA segment.
  Memory Type Size Occupied Free
  ---------------- ----------- ----------- -----------
  Normal 655.360 16.288 639.072
  Upper 158.208 14.976 143.232
  Reserved 0 0 0
  XMS memory 32,282,112 275,968 32,006,144
  ---------------- ----------- ----------- -----------
  Total memory: 33,095,680 307,232 32,788,448
  Below 1 MB: 813,568 31,264 782,304
  Name Size Normal memory Upper memory
  -------- ---------------- ---------------- ---------- ------
  SYSTEM 18,464 (18K) 10,656 (10K) 7,808 (8K)
  HIMEM 1.168 (1K) 1.168 (1K) 0 (0K)
  EMM386 4.256 (4K) 4.256 (4K) 0 (0K)
  COMMAND 7.168 (7K) 0 (0K) 7.168 (7K)
  Available 782.304 (764K) 639.072 (624K) 143.232 (140K)

Notes

  • Programmer's Technical Reference for MS-DOS and the IBM PC
  • User's manual
  • Programmer Reference Guide

See also

  • Memory manager
  • Dos


Source - https://ru.wikipedia.org/w/index.php?title=HIMEM.SYS&oldid=72219456


More articles:

  • NGC 3843
  • Alan Kardek
  • NGC 3853
  • Uspensky, Victor Valentinovich
  • Gargoyles
  • Sabrina Underwater
  • NGC 3869
  • NGC 3872
  • New American Gospel
  • Chromatic Polynomial

All articles

Clever Geek | 2019