Misplaced Pages

High memory area

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
#494505

109-782: In DOS memory management , the high memory area ( HMA ) is the RAM area consisting of the first 65520 bytes above the one megabyte in an IBM AT or compatible computer. In real mode , the segmentation architecture of the Intel 8086 and subsequent processors identifies memory locations with a 16-bit segment and a 16-bit offset, which is resolved into a physical address via (segment) × 16 + (offset). Although intended to address only 1  Megabyte (MB) (2 bytes) of memory, segment:offset addresses at FFFF:0010 and beyond reference memory beyond 1 MB ( FFFF0 + 0010 = 100000 ). So, on an 80286 and subsequent processors, this mode can actually address

218-451: A GEM -based GUI file management shell. ViewMAX's startup screen would present the slogan "Digital Research - We make computers work". DR DOS 5.0 also introduced the patented BatteryMAX power management system, bundled disk-caching software (DRCACHE), a remote file transfer tool (FILELINK), a cursor shape configuration utility (CURSOR), and offered a vastly improved memory management system (MemoryMAX). For compatibility purposes,

327-582: A fat binary -style safety feature devised by Paul so that they would exit gracefully when called inappropriately. DR-DOS 7.02 was fully Year 2000 compliant and provided special support to work with buggy system BIOSes. It also came with an updated FDISK , which could partition and format FAT32 volumes (but not yet work with LBA). The sources of the Novell patches for the external tools and drivers had meanwhile been found in Germany and could thus be retro-fitted into

436-489: A $ 240 price tag. The proportion of PC buyers prepared to spend six times as much to buy CP/M-86 was very small, and the limited availability of compatible application software, at first in Digital Research's favor, was only temporary. Digital Research fought a long losing battle to promote CP/M-86 and its multi-tasking multi-user successors MP/M-86 and Concurrent CP/M-86 , and eventually decided that they could not beat

545-536: A BDOS 7.3 internally, these were the first versions to report themselves as "PC DOS 7.10" to applications in order to indicate integrated FAT32 support. Designed to be mostly backwards-compatible, the DR-DOS 7.04/7.05 IBMBIO.COM could be combined with the DR-DOS 7.03 IBMDOS.COM in order to give the desktop-approved DR-DOS 7.03 kernel LBA capabilities and work with drives larger than 8 GB. For specific OEM requirements, DR-DOS 7.06 (as of 14 December 1999) by Wightman combined

654-494: A DOS operating system to bundle with their OpenLinux distribution, Novell sold the product line off to Caldera on 23 July 1996, by which time it was of little commercial value to them. Between the Caldera-owned DR-DOS and competition from IBM's PC DOS 6.3, Microsoft moved to make it impossible to use or buy the subsequent Windows version, Windows 95 , with any DOS product other than their own. Claimed by them to be

763-505: A GUI. Microsoft responded with MS-DOS 6.0, which again matched some features of DR DOS 6.0. In December 1991, a pre-release version of Windows 3.1 was found to return a non-fatal error message if it detected a non-Microsoft DOS. This check came to be known as the AARD code . It was a simple matter for Digital Research to patch DR DOS 6.0 to circumvent the AARD code 'authenticity check' in

872-448: A Japanese DOS/V compatible version of DR DOS 6.0. A Korean version appears to have been available as well. In 1992 Digital Research, still under its old name but already bought by Novell in July 1991, also embarked on a spin-off product code-named "Merlin" and later released as NetWare PalmDOS 1, which, as its name implies, was a very resource-light DR DOS 6.0 derivative aimed at

981-479: A MMIO memory hole (15 MiB to 16 MiB) for some ISA devices. The A20 handler is software controlling access to the high memory area. Extended memory managers usually provide this functionality. In DOS, high memory area managers, such as HIMEM.SYS had the extra task of managing A20 and provided an API for opening/closing A20. DOS itself could utilize the area for some of its storage needs, thereby freeing up more conventional memory for programs. This functionality

1090-450: A bit in port 92h to control the A20 line. Disconnecting A20 would not wrap all memory accesses above 1 MiB, just those in the 1 MiB, 3 MiB, 5 MiB, etc. ranges. Real mode software only cared about the area slightly above 1 MiB, so Gate A20 was enough. Virtual 8086 mode , introduced with the Intel 80386 , allows the A20 wrap-around to be simulated by using the virtual memory facilities of

1199-627: A component originally named MultiMAX. This was similar to Multiuser DOS, but now on the basis of a natively DOS compatible environment, similar to Windows 386 Enhanced Mode, but without a GUI. By default, the bundled TASKMGR would behave similar to the former DR DOS 6.0 TASKMAX. However, if EMM386 was loaded with the option /MULTI, EMM386 would load a natively 32-bit 386 Protected Mode operating system core providing API support for pre-emptive multitasking, multi-threading, hardware virtualization and domain management of virtual DOS machines. This API could be used by DR DOS-aware applications. If TASKMGR

SECTION 10

#1732852822495

1308-499: A consultant and, in Andover, assist Paul in his work on "WinGlue", a secret project to create a version of DR-DOS compatible with Windows 95, 98 and 98 SE and replace its MS-DOS 7.xx component. This was demonstrated at CeBIT in March 1998, and later, in a small team, developed into "WinBolt", both versions of DR-DOS, which remained unreleased as of 2023 , but played an important role in

1417-472: A converted barn at the periphery of Andover , Hampshire, UK, nearby the former Digital Research and Novell EDC. Besides other improvements and enhancements all over the system, a string of new key features were added subsequently over the course of the next two years, including a TCP/IP stack (derived from LAN WorkPlace for DOS / NetWare Mobile ), a graphical 32-bit DOS Protected Mode HTML 3.2 web-browser DR-WebSpyder (originally based on source code from

1526-458: A defined value that endures after power is interrupted to the system. On reset or power up, the CPU loads the address from the system ROM and then jumps to a defined ROM location to begin executing the system power-on self-test , and eventually load an operating system. Since an expansion card such as a video adapter, hard drive controller , or network adapter could use allocations of memory in many of

1635-415: A driver program) the expanded memory board to map that part of memory into the processor's address space. Although applications could use expanded memory with relative freedom, many other software components such as drivers and terminate-and-stay-resident programs (TSRs) were still normally constrained to reside within the 640K "conventional memory" area, which soon became a critically scarce resource. When

1744-591: A hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles . Upon its introduction in 1988, it was the first DOS that attempted to be compatible with IBM PC DOS and MS-DOS (which were the same product sold under different names). DR-DOS was developed by Gary A. Kildall 's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86 . As ownership changed, various later versions were produced with names including Novell DOS and Caldera OpenDOS . Digital Research 's original CP/M for

1853-531: A lever in their comprehensive strategy to break the Microsoft monopoly. (This was part of a massive and ultimately disastrous spending spree for Novell: they bought WordPerfect Corporation at about the same time, some of Borland 's products, and invested heavily in Unix as well.) The planned "DR DOS 7.0", internally named "Panther", intended to trump Microsoft's troubled MS-DOS 6.0, was repeatedly delayed, while Novell

1962-628: A little manual tweaking, could load all this and still keep all of its conventional memory free – allowing for some necessary DOS data structures, as much as 620 KB out of the 640 KB. With MEMMAX +V, the conventional memory region could even be extended into unused portions of the graphics adapter card typically providing another 64 to 96 KB more free DOS memory. Because DR DOS left so much conventional memory available, some old programs using certain address wrapping techniques failed to run properly as they were now loaded unexpectedly (or, under MS-DOS, "impossibly") low in memory – inside

2071-549: A magic sub-version of 255, it would even disable its own internal BDOS version check in order to cope with programs specifically probing for "DR-DOS". The modified kernel and SETVER driver by Paul would, in an hierarchical model, also support load paths in order to distinguish between multiple executables of the same file name, and it introduced an extended mode, in which SETVER could not only fake DOS versions, but also BDOS kernel versions. Sub-versions of 128 to 255 would be reported as DOS sub-versions 0 to 127 to applications, but with

2180-430: A megabyte, or more, of expanded memory, with logic on the board to make that memory accessible to the processor in defined parts of the 8088 address space. Allocation and use of expanded memory was not transparent to application programs. The application had to keep track of which bank of expanded memory contained a particular piece of data, and when access to that data was required, the application had to request (through

2289-403: A memory manager might involve hours of experimentation with options, repeatedly rebooting the machine, and testing the results. But conventional memory was so valuable that PC owners felt that such time was well-spent if the result was to free up 30 or 40 KiB of conventional memory space. In the context of IBM PC-compatible computers, extended memory refers to memory in the address space of

SECTION 20

#1732852822495

2398-413: A monochrome display adapter was used, the address space between 0xA0000 and 0xAFFFF could be used for RAM, which would be contiguous with the conventional memory. The system BIOS ROMs must be at the upper end of the address space because the CPU starting address is fixed by the design of the processor. The starting address is loaded into the program counter of the CPU after a hardware reset and must have

2507-589: A network-enabled 3D arcade game . Novell DOS 7 and Personal NetWare required several bug-fix releases (D70xyy with x=language, yy=number) and were not completely stable when the next development occurred. With beta versions of Microsoft's " Chicago " (what would later become Windows 95) in sight, Novell wound down further development on Novell DOS 7 in September 1994 and stopped maintenance in January 1996 after more than 15 updates. When Caldera approached Novell looking for

2616-502: A newer version of PNUNPACK and brought a much advanced version of NetWars . Parts of OpenDOS 7.01 were released as open source in form of the M.R.S. kit (for Machine Readable Sources) in May 1997, but with license terms mostly incompatible with existing open-source licenses . The source was then closed again as Gross felt this would undermine the commercial aspirations of the system. After beta releases in September and November 1997,

2725-566: A purely technical change, this was later to be the subject of a major lawsuit brought in Salt Lake City by Caldera with the help of the Canopy Group . Microsoft lawyers tried repeatedly to have the case dismissed but without success. Immediately after the completion of the pre-trial deposition stage (where the parties list the evidence they intend to present), there was an out-of-court settlement on 7 January 2000 for an undisclosed sum. This

2834-537: A single NEWLDR MBR and boot sector, so that the code would continue to load any version of DR-DOS down to 3.31 (and since DR-DOS 7.04 also with FAT32 support), but could also be used to launch the PC ;DOS or MS-DOS system files, including those of Windows 9x and PC DOS 7.10. At the same time the kernel could not only be booted by the new sectors, but also by any previously DR-DOS formatted disks, as well as off disks with existing PC DOS or MS-DOS boot sectors and

2943-476: A task-switcher named TASKMAX with support for the industry-standard task-switching API to run multiple applications at the same time. In contrast to Digital Research's Multiuser DOS (successor of Concurrent DOS in the multi-user products line), which would run DOS applications in pre-emptively multitasked virtual DOS machines, the DR ;DOS 6.0 task switcher would freeze background applications until brought back into

3052-505: A true port of Apple's System 7.1 to run under the new DR DOS multitasker named "Vladivar"). When DR DOS eventually arrived in December 1993 (with localized versions released in March 1994), renamed Novell DOS 7 (a.k.a. "NWDOS"), and without these three components, it was a disappointment to some. It was larger and lacked some finishing touches, but was nevertheless seen as best DOS by many industry experts. In Germany, Novell DOS 7

3161-773: The F5 / F6 / F7 / F8 hotkeys and the TRACE and TIMEOUT commands, thereby also improving the integration of alternative command line shells such as 4DOS . Together with LOADER, SYS /DR:ext and the CHAIN directive, it brought enhanced multi-configuration support for DR/D/CONFIG.ext files and came with enhancements to the BASIC-like CONFIG.SYS language for more powerful boot menus, convenient user interaction and programmatical acting upon conditions ( CPU386 ), return codes and error levels ( ERROR , ONERROR ). It also allowed to change

3270-449: The Arachne web browser by Michal Polák ) with LAN and modem dialup, a POSIX Pthreads extension to the multi-tasker by Andy T. Wightman, long filename (LONGNAME) support by Edward N. Hill Jr., as well as LBA and FAT32 support (DRFAT32) by Matthias R. Paul. Gross also hired Andrew Schulman (who had been, with Geoff Chappell, instrumental in identifying the AARD code in 1992) to work as

3379-582: The High Memory Area (HMA), the first 64 KB of extended memory which are accessible in real mode . This freed up the equivalent amount of critical "base" or conventional memory , the first 640 KB of the PC's RAM – the area in which all DOS applications run. Additionally, on Intel 80386 machines, DR DOS's EMS memory manager allowed the operating system to load DOS device drivers into upper memory blocks, further freeing base memory. DR DOS 5.0

High memory area - Misplaced Pages Continue

3488-517: The IBM PC/AT was introduced, the segmented memory architecture of the Intel family processors had the byproduct of allowing slightly more than 1 MiB of memory to be addressed in the "real" mode. Since the 80286 had more than 20 address lines, certain combinations of segment and offset could point into memory above the 0x0100000 (2 ) location. The 80286 could address up to 16 MiB of system memory, thus removing

3597-632: The PRN: and AUX: defaults. The handling of environment variables in CONFIG.SYS was improved and new load-high facilities included such as the HIFILES / FILESHIGH and HIFCBS / FCBSHIGH options to relocate file handles and FCB structures into UMBs, which typically gave between 1 and 4 KB (and up to 15 KB) more free conventional memory compared to previous versions, or the HISHELL / SHELLHIGH SIZE directive to control

3706-566: The SCROLLOCK , CAPSLOCK , INSERT and VERIFY settings as well as the SWITCHAR , YESCHAR , NOCHAR and RESUMECHAR characters. Various behavioural details could be controlled with new parameters /Q (Quiet), /L (Lowercase), /Y (Yes) and /S (Switch) for SWITCHES . Further, it provided optional support for a LPT4: device and allowed to configure the built-in COMx: and LPTx: devices as well as to change

3815-510: The court case . Caldera UK officially released Caldera OpenDOS 7.01 on 3 February 1997, but this version was just Novell DOS 7 update 10 (as of December 1994) compiled only with the necessary adaptations to incorporate the new name in display messages as well as in environment variables and file names. It was missing a year's worth of patches which had been developed for the Novell DOS updates 11 (January 1995) to 15.2 (January 1996). This

3924-461: The motherboard to simulate the wrapping around. This circuit was a simple logic gate which could disconnect the microprocessor's 21st addressing line, A20 , from the rest of the motherboard. This gate could be controlled, initially through the keyboard controller , to allow running programs which wanted to access the entire RAM. So-called A20 handlers could control the addressing mode dynamically, thereby allowing programs to load themselves into

4033-558: The 1024–1088 KB region and run in real mode. Code suitable to be executed in the HMA must either be coded to be position-independent (using only relative references), be compiled to work at the specific addresses in the HMA (typically allowing only one or at most two pieces of code to share the HMA), or it must be designed to be paragraph boundary or even offset relocatable (with all addresses being fixed up during load). Before code (or data) in

4142-572: The 8-bit Intel 8080 - and Z80 -based systems spawned numerous spin-off versions, most notably CP/M-86 for the Intel 8086 / 8088 family of processors. Although CP/M had dominated the market since the mid-1970s, and was shipped with the vast majority of non-proprietary-architecture personal computers, the IBM PC in 1981 brought the beginning of what was eventually to be a massive change. IBM originally approached Digital Research in 1980, seeking an x86 version of CP/M. However, there were disagreements over

4251-416: The 80286 and subsequent processors, beyond the 1 megabyte limit imposed by the 20 address lines of the 8088 and 8086. Such memory is not directly available to DOS applications running in the so-called "real mode" of the 80286 and subsequent processors. This memory is only accessible in the protected or virtual modes of 80286 and higher processors. DR DOS 6.0 DR-DOS (written as DR DOS , without

4360-518: The AT wrap around to low memory as they would have on an 8088 processor. This gate could be controlled, initially through the keyboard controller , to allow running programs which were designed for this to access an additional 65,520 bytes (64 KiB) of memory in real mode . At boot time, the BIOS first enables A20 when counting and testing all of the system's memory, and disables it before transferring control to

4469-616: The BDOS version check disabled, while sub-versions 100 to 127 could be used to fake different BDOS versions, whereas the DOS revision number (typically set to 0 in a static, pre-boot patchable data structure) would be taken as the reported sub-version instead, so that SETVER /G /X 6.114 would allow versions of DR-DOS since 7.02 to still report themselves as a "DOS 6.0" and with a faked BDOS version 7.2 (114 decimal = 72 hexadecimal), thereby masquerading as Novell DOS 7 / OpenDOS 7.01. While otherwise beneficial,

High memory area - Misplaced Pages Continue

4578-896: The DOS arena, Microsoft responded with an announcement of a yet-to-be released MS-DOS 5.0 in May 1990. This would be released in June 1991 and include similar advanced features to those of DR DOS. It included matches of the DR's enhancements in memory management. Almost immediately in September 1991, Digital Research responded with DR DOS 6.0, code-named "Buxton". DR DOS 6.0, while already at BDOS level 6.7 internally, would still report itself as "IBM PC DOS 3.31" to normal DOS applications for compatibility purposes. This bundled in SuperStor on-the-fly disk compression, to maximize available hard disk space, and file deletion tracking and undelete functionality by Roger A. Gross. DR DOS 6.0 also included

4687-697: The DOSMGR API and internal data structures had been updated, its BDOS 7.2 kernel could report with a DOS version of 6.0 and OEM ID "IBM" without risking compatibility problems with Windows. Most tools would report this as "PC DOS 6.1", because IBM PC DOS 6.1 also reported as DOS 6.0 to applications. Novell DOS 7 introduced much advanced memory management including new support for DPMI ( DOS Protected Mode Interface ) and DPMS ( DOS Protected Mode Services ) as well as more flexible loadhigh options. It also introduced support for "true" pre-emptive multitasking of multiple DOS applications in virtual DOS machines (VDM),

4796-473: The DR DOS 5.0 system files were now named IBMBIO.COM (for the DOS-BIOS) and IBMDOS.COM (for the BDOS kernel) and due to the advanced loader in the boot sector could be physically stored anywhere on disk. The OEM label in the boot sectors was changed to "IBM␠␠3.3". DR DOS 5.0 was the first DOS to include load-high capabilities. The kernel and data structures such as disk buffers could be relocated in

4905-451: The DR DOS name designation, 2001 Sales, Inc. marketed it under the name EZ-DOS 3.41 (also known as EZ-DOS 4.1). DR DOS version 5.0 (code-named "Leopard") was released in May 1990, still reporting itself as "PC DOS 3.31" for compatibility purposes, but internally indicating a single-user BDOS 6.4 kernel. (Version 4 was skipped to avoid being associated with the relatively unpopular MS-DOS 4.0 .) This introduced ViewMAX ,

5014-683: The HMA (unless DBLSPACE / DRVSPACE /NOHMA is invoked). Under PC DOS 7.0 (1995) and 2000 , DOSKEY loads into the HMA (if available), and SHARE can be loaded into the HMA as well (unless its /NOHMA option is given). Under MS-DOS 7.0 (1995) to 8.0 (2000), parts of the HMA are also used as a scratchpad to hold a growing data structure recording various properties of the loaded real-mode drivers. DOS memory management In IBM PC compatible computing, DOS memory management refers to software and techniques employed to give applications access to more than 640 kibibytes (640*1024 bytes) (KiB) of "conventional memory". The 640 KiB limit

5123-462: The HMA among Microsoft products was Windows 2.0 in 1987, which introduced the HIMEM.SYS device driver. Starting with versions 5.0 of DR-DOS (1990) and of MS-DOS (1991), parts of the operating system could be loaded into HMA as well, freeing up to 46 KiB of conventional memory . Other components, such as device drivers and TSRs, could be loaded into the upper memory area (UMA). 80286 introduced

5232-444: The HMA as well. Novell 's NLCACHE from NetWare Lite and early versions of NWCACHE from Personal NetWare and Novell DOS 7 could utilize the HMA as well. Under MS-DOS/PC DOS, a ca. 2 KB shared portion of COMMAND.COM can be relocated into the HMA, as well as DISPLAY.SYS bitmaps for prepared codepages . Under MS-DOS 6.2 (1993) and higher, a ca. 5 KB portion of DBLSPACE.BIN / DRVSPACE.BIN can coexist with DOS in

5341-447: The HMA can be addressed by the CPU, the corresponding driver must ensure that the HMA is mapped in. This requires that any such requests are tunneled through a stub remaining in memory outside the HMA, which would invoke the A20 handler in order to (temporarily) enable the A20 gate . If the driver does not exhibit any public data structures and only uses interrupts or calls already controlled by

5450-485: The HMA. Under DR DOS 6.0 (1991) and higher, the disk buffers (via HIBUFFERS , and later also BUFFERSHIGH ), parts of the command processor COMMAND.COM as well as several special self-relocating drivers like KEYB , NLSFUNC and SHARE could load into the HMA as well (using their /MH option), thereby freeing up even more conventional memory and upper memory for conventional DOS software to work with. TASKMAX seems to have relocated parts of itself into

5559-495: The Microsoft-IBM lead in application software availability, so they modified Concurrent CP/M-86 to allow it to run the same applications as MS-DOS and PC DOS. This was shown publicly in December 1983 and shipped in March 1984 as Concurrent DOS 3.1 (a.k.a. CDOS with BDOS 3.1) to hardware vendors. While Concurrent DOS continued to evolve in various flavours over the years to eventually become Multiuser DOS and REAL/32 , it

SECTION 50

#1732852822495

5668-615: The US and closed the highly successful UK operation in February 1999 after Gross resigned and set up iCentrix to develop the MarioNet split web browser . Development was then moved into the US (which never worked out due to a total lack of expertise in this field at Caldera US), and the DR-DOS line fell to its branch company, Caldera Thin Clients, which was renamed Lineo , Inc. on 20 July 1999. DR-WebSpyder

5777-632: The US-based Caldera, Inc. created two new subsidiaries, Caldera Systems , Inc. for the Linux business, and Caldera Thin Clients , Inc. for the embedded and thin-client market. Another version, DR-DOS 7.03 (still with BDOS 7.3 and reporting itself to applications as "PC DOS 6.0" for compatibility purposes), was pre-released at Christmas 1998 and then officially released on 6 January 1999 by Caldera UK. It came with significantly improved memory managers (in particular enhanced DPMI support in conjunction with

5886-533: The Windows 3.1 beta by rearranging the order of two internal tables in memory (with no changes in functionality), and the patched version, named "business update", was on the streets within six weeks of the release of Windows 3.1. With the detection code disabled, Windows ran perfectly under DR DOS and its successor Novell DOS. The code was present but disabled in the released version of Windows 3.1. In July 1992, Digital Research Japan released DR DOS 6.0/V,

5995-402: The address space up to 640 KiB was available for RAM. This part of the address space is called "conventional memory" since it is accessible to all versions of DOS automatically on startup. Segment 0, the first 64 KiB of conventional memory, is also called low memory area . Normally expansion memory is set to be contiguous in the address space with the memory on the motherboard. If there

6104-400: The behavior of memory addresses "wrapping around". Since the required address line now existed, the combination F800:8000 would no longer point to the physical address 0x0000000 but the correct address 0x00100000. As a result, some DOS programs would no longer work. To maintain compatibility with the PC and XT behavior, the AT included an A20 line gate (Gate A20) that made memory addresses on

6213-478: The bulk of the code for a driver or TSR into extended memory and replace it with a small fingerhold that was capable of accessing the extended-memory-resident code. They might analyze memory usage to detect drivers that required more RAM during startup than they did subsequently, and recover and reuse the memory that was no longer needed after startup. They might even remap areas of memory normally used for memory-mapped I/O. Many of these tricks involved assumptions about

6322-606: The contract, and IBM withdrew. Instead, a deal was struck with Microsoft , who purchased another operating system, 86-DOS , from Seattle Computer Products (SCP). This became Microsoft MS-DOS and IBM PC DOS . 86-DOS's command structure and application programming interface imitated that of CP/M 2.2 (with BDOS 2.2). Digital Research threatened legal action, claiming PC DOS/MS-DOS to be too similar to CP/M. In early 1982, IBM settled by agreeing to sell Digital Research's x86 version of CP/M, CP/M-86 , alongside PC DOS. However, PC DOS sold for US$ 40 while CP/M-86 had

6431-410: The disk OEM label used was "DIGITAL␠". DR DOS offered some extended command line tools with command line help, verbose error messages, sophisticated command line history and editing ( HISTORY directive) as well as support for file and directory passwords built right into the kernel. It was also cheaper to license than MS-DOS, and was ROMable right from the start. The ROMed version of DR DOS

6540-410: The emerging Palmtop / PDA market. PalmDOS was the first operating system in the family to support the new BDOS 7.0 kernel with native DOS compatible internal data structures instead of emulations thereof. Replacing the DOS emulation on top of a CP/M kernel by a true DOS compatible kernel helped a lot in improving compatibility with some applications using some of DOS' internal data structures and also

6649-442: The first 64 KB segment (known as " low memory "). Therefore, DR DOS 5.0's new MEMMAX -L command worked around this by pre-allocating a chunk of memory at the start of the memory map in order for programs to load above this barrier (but with less usable conventional memory then). By default, MEMMAX was configured for +L, so that applications could take advantage of the extra memory. Faced with substantial competition in

SECTION 60

#1732852822495

6758-542: The first 65520 bytes of extended memory as part of the 64 KB range starting 16 bytes before the 1 MB mark— FFFF:0000 (0xFFFF0) to FFFF:FFFF (0x10FFEF) . The Intel 8086 and 8088 processors, with only 1 MB of memory and only 20  address lines , wrapped around at the 20th bit, so that address FFFF:0010 was equivalent to 0000:0000 . To allow running existing DOS programs which relied on this feature to access low memory on their newer IBM PC AT computers, IBM added special circuitry on

6867-450: The foreground. While it ran on x86-machines, it was able to swap to XMS memory on 286+ machines. TASKMAX did support some Copy & Paste facility between applications. Via the task-switcher API, graphical user interfaces such as ViewMAX or PC/GEOS could register as the task manager menu and thereby replace the TASKMAX text mode menu, so that users could switch between tasks from within

6976-421: The functioning of drivers and other components. In effect, memory managers might reverse-engineer and modify other vendors' code on the fly. As might be expected, such tricks did not always work. Therefore, memory managers also incorporated very elaborate systems of configurable options, and provisions for recovery should a selected option render the PC unbootable (a frequent occurrence). Installing and configuring

7085-491: The gate and must still deal with external peripherals (the chipset ) for that. Intel processors from the 386 onward allowed a virtual 8086 mode , which simplified the hardware required to implement expanded memory for DOS applications. Expanded memory managers such as Quarterdeck 's QEMM product and Microsoft's EMM386 supported the expanded memory standard without requirement for special memory boards. On 386 and subsequent processors, memory managers like QEMM might move

7194-460: The internal BDOS ( Basic Disk Operating System ) kernel version was reported as 6.0, single-user nature, reflecting its origin as derivative of Concurrent DOS 6.0 with the multitasking and multiuser capabilities as well as CP/M API support stripped out and the XIOS replaced by an IBM-compatible DOS-BIOS . The system files were named DRBIOS.SYS (for the DOS-BIOS) and DRBDOS.SYS (for the BDOS kernel),

7303-544: The kernel files into a single binary executable, so that, similar to IO.SYS of Windows 98 , it could be booted by MS-DOS 7.10 boot sectors (but no longer by DR-DOS boot sectors). DR-DOS 7.07 (with BDOS 7.4/7.7) by Paul introduced new bootstrap loaders and updated disk tools in order to combine support for CHS and LBA disk access, the FAT12 , FAT16 and FAT32 file systems, and the differing bootstrapping conventions of DR-DOS, PC DOS, MS-DOS, Windows, REAL/32 and LOADER into

7412-660: The kernel small and not run into compatibility problems with Windows, which would expect the DOSMGR API to be implemented for any DOS version since 5.0. As well as a ROM-executing kernel, PalmDOS had palmtop-type support for features such as PCMCIA PC Cards (with DPMS support), power management ( BatteryMAX and the $ IDLE$ device driver with its patented dynamic idle detection by Gross and John P. Constant), MINIMAX task switcher support for PIM (Personal Information Modules) applications stored and executed from ROM via XIP ( Execute-In-Place ), etc. The PCMCIA stack for PalmDOS

7521-448: The logic gate was a gate connected to the Intel 8042 keyboard controller. Controlling it was a relatively slow process. Other methods have since been added to allow for more efficient multitasking of programs which require this wrap-around with programs that access all of the system's memory. There was at first a variety of methods, but eventually the industry settled on the PS/2 method of using

7630-410: The missing Novell DOS updates. The BIOS improved the coexistence of DR-DOS with Windows 9x and its support for third-party disk compression drivers such as Microsoft's DriveSpace . It introduced a diagnostics mode (activated by Scroll Lock ), integrated debugger support (with DEBUG=ON and a debugger loaded before or from within CONFIG.SYS) and more flexible CONFIG.SYS tracing capabilities via

7739-406: The multitasker) and other enhancements, such as added DEVLOAD and DRMOUSE utilities, but a changed OEM label in the boot sector of volumes formatted under DR-DOS could also cause problems under other operating systems (which can be circumvented by NOVOLTRK). DR-DOS 7.03 would become the last version of DR-DOS also tailored for desktop use. Caldera, Inc. wanted to relocate the DR-DOS business into

7848-568: The new HIFILES triggered a compatibility problem in the DOS-UP feature of the third-party memory manager QEMM 8, which was hard-wired to expect a chunk of five handle structures in conventional memory under DR-DOS (as with previous versions up to 7.01), whereas version 7.02 by design left eight handles in low memory when loading high files in order to maintain full compatibility with older versions of Windows 3.xx. Compatibility with Windows for Workgroups 3.11 had not been affected by this. A maintenance fix

7957-536: The next official release came in December 1997, with the name changed to Caldera DR-OpenDOS 7.02, soon followed by a further release in March 1998, when the DR-DOS name returned as Caldera DR-DOS 7.02, now for the first time written with a hyphen. Version 7.02 (now reporting itself as BDOS 7.3) incorporated improved BIOS and BDOS issues, developed by Paul, adding many new boot and configuration options, integrating many compatibility enhancements, bug-fixes and optimizations for size and speed, and re-implementing all fixes of

8066-549: The operating system work on Concurrent DOS 386 and XM , Multiuser DOS, DR DOS and PalmDOS was done in Digital Research's European Development Centre (EDC) in Hungerford , Berkshire. Later on some work was also done by Digital Research GmbH in Munich , Germany. As requested by several OEMs , Digital Research started a plan to develop a new DOS operating system addressing the defects left by MS-DOS in 1987. Of particular importance

8175-413: The operating system's BIOS and kernel could be loaded into the HMA as well, freeing up to 46 KB of conventional memory . Other components, such as device drivers and terminate-and-stay-resident programs (TSRs), could at least be loaded into the upper memory area (UMA), but not into the HMA. Under DOS 5.0 and higher, with DOS=HIGH , the system additionally attempted to move the disk buffers into

8284-440: The operating system. Enabling the A20 line is one of the first steps a protected mode x86 operating system does in the bootup process, often before control has been passed onto the kernel from the bootstrap (in the case of Linux, for example). The high memory area ( HMA ) is the RAM area consisting of the first 64 KiB, minus 16 bytes , of the extended memory on an IBM PC/AT or compatible microcomputer. Originally,

8393-657: The original CP/M-86. Its DOS compatibility was limited, and Digital Research made another attempt, this time a native DOS system. This new disk operating system was launched in 1988 as DR DOS. Although DRI was based in Pacific Grove and later in Monterey , California, USA, the work on DOS Plus started in Newbury , Berkshire in the UK, where Digital Research Europe had its OEM Support Group located since 1983. Beginning in 1986, most of

8502-501: The original arbitrary 640 KiB limit of the IBM PC, managing the memory of a personal computer no longer requires the user to manually manipulate internal settings and parameters of the system. The 640 KiB limit imposed great complexity on hardware and software intended to circumvent it; the physical memory in a machine could be organised as a combination of base or conventional memory (including lower memory), upper memory, high memory (not

8611-538: The pre-allocation of HMA memory for COMMAND.COM , which helped to avoid memory fragmentation and thereby typically gave between 5 and 8 KB more continuous HMA memory for HMA-capable third-party drivers to work with in conjunction with third-party command line shells, which could not load into the HMA as COMMAND.COM with its /MH option. At a reduced memory footprint version 7.02 also brought an enhanced NLS 4.xx sub-system by Paul to allow multiple, distributed and possibly user-configured COUNTRY.SYS files to be used by

8720-442: The processor's address space. The process was a form of bank switching . When extra RAM was needed, driver software would temporarily make a piece of expanded memory accessible to the processor; when the data in that piece of memory was updated, another part could be swapped into the processor's address space. For the IBM PC and IBM PC/XT , with only 20 address lines, special-purpose expanded memory cards were made containing perhaps

8829-475: The processor. As memory prices declined, application programs such as spreadsheets and computer-aided drafting were changed to take advantage of more and more physical memory in the system. Virtual memory in the 8088 and 8086 was not supported by the processor hardware, and disk technology of the time would make it too slow and cumbersome to be practical. Expanded memory was a system that allowed application programs to access more RAM than directly visible to

8938-422: The processor: physical memory may be mapped to multiple virtual addresses, thus allowing that the memory mapped at the first megabyte of virtual memory may be mapped again in the second megabyte of virtual memory. The operating system may intercept changes to Gate A20 and make corresponding changes to the virtual memory address space, which also makes irrelevant the efficiency of Gate-A20 toggling. The first user of

9047-399: The product line off to Caldera on 23 July 1996, after it approached Novell looking for a DOS operating system to bundle with its OpenLinux distribution. Marc Perkel claimed to have had inspired Novell in February 1991 to buy Digital Research and develop something he envisioned as "NovOS". Novell had actually bought Digital Research in July 1991 with a view to using DR's product line as

9156-459: The same as upper memory), extended memory, and expanded memory, all handled in different ways. The Intel 8088 processor used in the original IBM PC had 20 address lines and so could directly address 1 MiB (2 bytes) of memory. Different areas of this address space were allocated to different kinds of memory used for different purposes. Starting at the lowest end of the address space, the PC had read/write random access memory (RAM) installed, which

9265-503: The system as well, so that DR-DOS 7.02 finally not only caught up with Novell DOS 7, but was a true step forward. The release was followed by various updates in June, August and September 1998. The updated internal BDOS version number introduced a new problem: some legacy third-party applications with special support for Novell DOS, which were no longer being updated, stopped working. SETVER already allowed Novell DOS to disguise itself as DOS versions by file name and globally and, specifying

9374-561: The system at the same time in a hierarchical model. This also gave dynamic parser support for MS-DOS/PC DOS COUNTRY.SYS file formats in addition to DR-DOS' own COUNTRY.SYS formats, and it introduced support for the ISO 8601 international date format (including automatic detection) and the then-new Euro currency . Some DR-DOS files such as IBMBIO.COM, IBMDOS.COM and COUNTRY.SYS carried misleading file extensions for compatibility reasons; with DR-DOS 7.02 they were enhanced to incorporate

9483-486: The system consisting only of the kernel and command shell. With a specialized native implementation of FAT32 and large hard disk support they could be found bundled with Ontrack 's Easy Recovery 5 in 2000, replacing the dynamically loadable DRFAT32 redirector driver, which still came with Easy Recovery 4. They were also used for Seagate Technology 's SeaTools and the CD imaging software Nero Burning ROM . While still reporting

9592-528: The underlying operating system, it might be possible to register the driver with the system in a way so that the system will take care of A20 itself thereby eliminating the need for a separate stub. The first user of the HMA among Microsoft products was Windows/286  2.1 in 1988, which introduced the HIMEM.SYS device driver. Starting in 1990 with Digital Research 's DR DOS 5.0 (via HIDOS.SYS / BDOS =FFFF and CONFIG.SYS HIDOS =ON ) and since 1991 with MS-DOS 5.0 (via DOS =HIGH ), parts of

9701-460: The upper memory areas, configuration of some combinations of cards required careful reading of documentation, or experimentation, to find card settings and memory mappings that worked. Mapping two devices to use the same physical memory addresses could result in a stalled or unstable system. Not all addresses in the upper memory area were used in a typical system; unused physical addresses would return undefined and system-dependent data if accessed by

9810-528: Was Novell's second attempt at a peer-to-peer networking system, Personal NetWare (PNW). This was better than its predecessor, NetWare Lite (NWL), but it was incompatible with Microsoft's networking system, now growing popular with support in Windows for Workgroups , OS/2 , and Windows NT . A considerable amount of manual configuration was needed to get both to co-exist on the same PC, and Personal NetWare never achieved much success. Since Novell DOS 7 implemented

9919-588: Was a million dollar deal with Kazuhiko "Kay" Nishi of ASCII Corporation , who had previously been instrumental in opening the Japanese OEM market for Microsoft. The first DR DOS version was released on 28 May 1988. Version numbers were chosen to reflect features relative to MS-DOS; the first version promoted to the public was DR DOS 3.31, which offered features comparable to Compaq MS-DOS 3.31 with large disk support ( FAT16B a.k.a. "BIGDOS"). DR DOS 3.31 reported itself as "IBM PC DOS 3.31", while

10028-475: Was aggressively marketed with the slogan " Trau keinem DOS unter 7 " ( Don't trust any DOS below 7 ) in the press and with free demo floppies in computer magazines. The campaign aimed at 20% of the DOS market and resulted in about 1.5 million copies sold until February 1994 and more than 3000 dealers interested to carry the product. Novell DOS 7 was available through various OEMs, a dedicated mail order shop and authorized dealers. A major functional addition

10137-836: Was also named ROS (ROM Operating System). DRI was approached by a number of PC manufacturers who were interested in a third-party DOS, which prompted several updates to the system. At this time, MS-DOS was only available to OEMs bundled with hardware. Consequently, DR DOS achieved some immediate success when it became possible for consumers to buy it through normal retail channels beginning with version 3.4x. Known versions are DR DOS 3.31 (BDOS 6.0, June 1988, OEM only), 3.32 (BDOS 6.0, 17 August 1988, OEM only), 3.33 (BDOS 6.0, 1 September 1988, OEM only), 3.34 (BDOS 6.0, OEM only), 3.35 (BDOS 6.0, 21 October 1988, OEM only), 3.40 (BDOS 6.0, 25 January 1989), 3.41 (BDOS 6.3, June 1989, OEM and retail). Like MS-DOS, most of them were produced in several variants for different hardware. While most OEMs kept

10246-404: Was an unallocated gap between motherboard memory and the expansion memory, the memory would not be automatically detected as usable by DOS. The upper memory area (UMA) refers to the address space between 640 and 1024 KiB (0xA0000–0xFFFFF). The 128 KiB region between 0xA0000 and 0xBFFFF was reserved for VGA screen memory and legacy SMM. The 128 KiB region between 0xC0000 and 0xDFFFF

10355-540: Was devised to patch a single byte in IBMBIO.COM in order to switch the behaviour and optionally re-invoke the old chunking. This freed some 150 bytes of conventional memory and enabled full compatibility with DOS-UP, but at the same time broke compatibility with older versions of Windows 3.xx when using the HIFILES feature, and vice versa. The patch named IBMBIO85.SCR continued to work with newer versions of DR-DOS. In August 1998

10464-514: Was due to parts of the Novell DOS sources having been lost at Novell meanwhile. Consequently, this version still reported an internal BDOS version of 7.2, identical to Novell DOS 7. The new suite also lacked the SETFIFO command, which had been added with one of the Novell DOS updates, as well as Fifth Generation 's Search&Destroy virus scanner and FastBack Plus 2.0 utility, which previously came bundled with Novell DOS. Instead it came bundled with

10573-494: Was enabled by the " DOS =HIGH" directive in the CONFIG.SYS configuration file. The Intel 80486 and Pentium added a special pin named A20M# , which when asserted low forces bit 20 of the physical address to be zero for all on-chip cache or external memory accesses. This was necessary since the 80486 introduced an on-chip cache, and therefore masking this bit in external logic was no longer possible. Software still needs to manipulate

10682-474: Was hired and tasked to set up a new subsidiary in the UK. On 10 September 1996, Caldera announced the coming release of OpenDOS (COD) and their intent to also release the source code to the system, and Caldera UK Ltd. was incorporated on 20 September 1996. Gross hired some of the original developers of the operating system from the Novell EDC as well as some new talents to continue work on the operating system in

10791-420: Was not specifically tailored for the desktop market and too expensive for single-user applications. Therefore, over time two attempts were made to sideline the product: In 1985, Digital Research developed DOS Plus 1.0 to 2.1 , a stripped-down and modified single-user derivative of Concurrent DOS 4.1 and 5.0 , which ran applications for both platforms, and allowed switching between several tasks as did

10900-934: Was partially written by Ian H. S. Cullimore , the original instigator of the PCMCIA/PC Card movement. Novell DOS was Novell Corporation's name for DR DOS during the period when Novell sold DR DOS, after the acquisition of Digital Research in 1991. Regarding features and performance, it was typically at least one release ahead of MS-DOS. In 1993, PC DOS 6.1 , MS-DOS 6.2 and PC DOS 6.3 were trumped by Novell's DOS 7 . Novell CEO Robert J. Frankenberg 's strategy included "major trimming", selling off products like transactional database Btrieve and killing others such as Novell DOS and WordPerfect 's multimedia Main Street children's titles. Novell licensed technology from Stac Electronics for use in Novell DOS and its network operating system NetWare . Novell sold

11009-503: Was renamed Embrowser and was said to be ported to Linux. Lineo re-released DR-DOS 7.03 in June and September 1999, still branded as "Caldera DR-DOS" and without any changes, but otherwise focussed on Linux for embedded systems, based on a stripped-down version of OpenLinux named Embedix . Among the latest and independently developed versions of DR-DOS were OEM DR-DOS 7.04 (as of 19 August 1999) and 7.05 (as of 30 November 1999), still branded as "Caldera DR-DOS". These were variants of

11118-480: Was reserved for device Option ROMs , including Video BIOS . The 64 KiB of the address space from 0xE0000 to 0xEFFFF was reserved for the BIOS or Option ROMs . The IBM PC reserved the uppermost 64 KiB of the address space from 0xF0000 to 0xFFFFF for the BIOS and Cassette BASIC read-only memory (ROM). For example, the monochrome video adapter memory area ran from 704 to 736 KiB (0xB0000–0xB7FFF). If only

11227-534: Was revealed in November 2009 to be $ 280 million. In August 1996, the US-based Caldera, Inc. was approached by Roger A. Gross, one of the original DR-DOS engineers, with a proposal to restart DR-DOS development and to make Windows 95 run on DR-DOS which would help the court case. Following a meeting in September 1996 in Lindon , Utah, USA, between Gross, Ransom H. Love , Bryan Wayne Sparks and Raymond John Noorda , Gross

11336-416: Was run later on, it would use this API to instance the current 16-bit DOS system environment, create virtual DOS machines and run applications in them instead of using its own Real Mode task-switcher support. The multitasker was compatible with Windows, so that tasks started before launching Windows could be seen as tasks under Windows as well. Novell DOS 7 and Personal NetWare 1.0 also shipped with NetWars ,

11445-722: Was specific to the IBM PC and close compatibles; other machines running MS-DOS had different limits, for example the Apricot PC could have up to 768 KiB and the Sirius Victor 9000, 896 KiB. Memory management on the IBM family was made complex by the need to maintain backward compatibility to the original PC design and real-mode DOS, while allowing computer users to take advantage of large amounts of low-cost memory and new generations of processors. Since DOS has given way to Microsoft Windows and other 32-bit operating systems not restricted by

11554-605: Was the first DOS to integrate such functionality into the base OS (loading device drivers into upper memory blocks was already possible using third-party software like QEMM ). This allowed it, on 286 systems with supported chipsets and on 386 systems, to provide significantly more free conventional memory than any other DOS. Once drivers for a mouse, multimedia hardware and a network stack were loaded, an MS-DOS/PC DOS machine typically might only have had 300 to 400 KB of free conventional memory – too little to run much late-1980s software. In contrast to this, DR DOS 5.0, with

11663-674: Was the key in reducing the resident size of the kernel code even further—a particular requirement for the PDA market. On the other hand, introducing a genuine Current Directory Structure ( CDS ) imposed a limit on the depth of working directories down to 66 characters (as in MS-DOS/PC ;DOS), whereas previous issues of DR DOS had no such limitation due to their internal organization of directories as relative links to parent directories instead of as absolute paths. PalmDOS still reported itself as "PC DOS 3.31" to applications in order to keep

11772-411: Was used by DOS and application programs. The first part of this memory was installed on the motherboard of the system (in very early machines, 64 KiB, later revised to 256 KiB). Additional memory could be added with cards plugged into the expansion slots; each card contained straps or switches to control what part of the address space accesses memory and devices on that card. On the IBM PC, all

11881-432: Was working on an optionally loadable Unix-like multi-user security extension (with, if loaded, file commands like BACKUP , DELPURGE , MOVE , TOUCH , TREE , UNDELETE , XATTRIB , XCOPY , XDEL and XDIR supporting an otherwise disabled /U:name command line option to select specific users or groups, compatible with Multiuser DOS) and two new graphical user interfaces ( ViewMAX 3 , a derivative of GEM, and " Star Trek ",

#494505