A DOS extender is a computer software program running under DOS that enables software to run in a protected mode environment even though the host operating system is only capable of operating in real mode .
46-548: DOS extenders were initially developed in the 1980s following the introduction of the Intel 80286 processor (and later expanded upon with the Intel 80386 ), to cope with the memory limitations of DOS . A DOS extender is a program that "extends" DOS so that programs running in protected mode can transparently interface with the underlying DOS API . This was necessary because many of the functions provided by DOS require 16-bit segment and offset addresses pointing to memory locations within
92-550: A BIOS call (INT 15h, AH=87h), as a RAM disk , or as emulation of expanded memory . The difficulty lay in the incompatibility of older real-mode DOS programs with protected mode. They simply could not natively run in this new mode without significant modification. In protected mode, memory management and interrupt handling were done differently than in real mode. In addition, DOS programs typically would directly access data and code segments that did not belong to them, as real mode allowed them to do without restriction; in contrast,
138-403: A dedicated unit in the 80286, while the older 8086 had to do effective address computation using its general ALU , consuming several extra clock cycles in many cases. Also, the 80286 was more efficient in the prefetch of instructions, buffering, execution of jumps, and in complex microcoded numerical operations such as MUL / DIV than its predecessor. The 80286 included, in addition to all of
184-547: A few (such as SMSW and LMSW) are useful for real mode itself. The Intel 80286 had a 24-bit address bus and as such had a 16 MB physical address space , compared to the 1 MB address space of prior x86 processors. It was the first x86 processor to support virtual memory supporting up to 1 GB via segmentation. However, memory cost and the initial rarity of software using the memory above 1 MB meant that until late in its production, 80286 computers rarely shipped with more than 1 MB of RAM. Additionally, there
230-488: A mass market. Included with Watcom 's C, C++, and Fortran compilers for 386 class processors, it soon became a ubiquitous mainstay of PC applications and games such as id Software 's successful Doom . While initially it was the memory-hungry business applications that drove the development of DOS extenders, it would be PC games that truly brought them into the spotlight. As a result of the development of DOS extenders, two new software interfaces were created to take care of
276-448: A relatively time consuming operation, the extender attempts to minimize the number of switches by duplicating the functionality of many real mode operations within its own protected mode environment. As DOS uses interrupts extensively for communication between the operating system and user level software, DOS extenders intercept many of the common hardware (e.g. the real-time clock and keyboard controller) and software (e.g. DOS itself and
322-503: A significant enough performance advantage over the 8086-compatible real mode to justify supporting its capabilities; actually, except for task switches when multitasking, it yielded only a performance disadvantage, by slowing down many instructions through a litany of added privilege checks. In protected mode, registers were still 16-bit, and the programmer was still forced to use a memory map composed of 64 kB segments, just like in real mode. In January 1985, Digital Research previewed
368-781: The 1.5 μm HMOS-III process for US$ 36 in quantities of 100. The 12.5 MHz Intel 80C186 version using the CHMOS III-E technology using approximately 90 mA under normal load and only 32 mA under power-save mode. It was available in 68-pin PLCC, CPGA , or CLCC package. The military version of Intel M80C186 embedded controller was available in 10 and 12 MHz version. They met MIL-STD-883 Rev. C and MIL-STD-1553 bus application standards. The 12 MHz CHMOS version consumes approximately 100 mA. The available packages were 68-pin CPGA and CQFP . The 10 MHz M80C186 PGA version
414-523: The Concurrent DOS 286 1.0 operating system developed in cooperation with Intel . The product would function strictly as an 80286 native-mode (i.e. protected-mode) operating system, allowing users to take full advantage of the protected mode to perform multi-user, multitasking operations while running 8086 emulation. This worked on the B-1 prototype step of the chip, but Digital Research discovered problems with
460-678: The IBM ;PC/AT , released in August 1984. Most other PC-compatible manufactures followed. Regardless, several notable personal computers used the 80186: In addition to the above examples of stand-alone implementations of the 80186 for personal computers, there were at least two examples of "add-in" accelerator card implementations: the BBC Master 512 , Acorn 's plug-in for the BBC Master range of computers containing an 80186–10 with 512 KB of RAM, and
506-471: The Orchid Technology PC Turbo 186, released in 1985. It was intended for use with the original Intel 8088 -based IBM PC (Model 5150). The Intel 80186 and 80188 are often embedded in electronic devices that are not primarily computers. For example: On March 30, 2006, Intel announced that production of the 80186 and 80188, along with the production of other processor models such as
SECTION 10
#1732875962004552-570: The application-specific standard product using the 1-micron CHMOS IV technology. They were available in 3- and 5-Volts version with 84-lead PLCC and 80-lead EIAJ QFP version. It was also available for US$ 15.15 in 1,000 unit quantities. The 80188 series was generally intended for embedded systems , as microcontrollers with external memory. Therefore, to reduce the number of chips required, it included features such as clock generator , interrupt controller , timers, wait state generator, DMA channels, and external chip select lines. While
598-527: The first 640 kilobytes of memory . Protected mode, however, uses an incompatible addressing method where the segment registers (now called selectors) are used to point to an entry in the Global Descriptor Table which describes the characteristics of the segment. The two methods of addressing are mutually exclusive, with the processor having to make costly switches to real (or V86 ) mode to service non-protected mode requests. In addition to setting up
644-541: The iAPX 186 , or just 186 , is a microprocessor and microcontroller introduced in 1982. It was based on the Intel 8086 and, like it, had a 16-bit external data bus multiplexed with a 20-bit address bus . The 80188 variant, with an 8-bit external data bus was also available. The 80186 series was designed to reduce the number of integrated circuits required. It included features such as clock generator , interrupt controller , timers , wait state generator, DMA channels, and external chip select lines. It
690-491: The 80286 over the 8086 (or 8088) could be more than 100% per clock cycle in many programs (i.e., a doubled performance at the same clock speed). This was a large increase, fully comparable to the speed improvements seven years later when the i486 (1989) or the original Pentium (1993) were introduced. This was partly due to the non-multiplexed address and data buses, but mainly to the fact that address calculations (such as base+index ) were less expensive. They were performed by
736-804: The 80286 was designed to be a new processor with many similarities to its predecessors, while real mode on the 80286 was offered for smaller-scale systems that could benefit from a more advanced version of the 80186 CPU core, with advantages such as higher clock rates, faster instruction execution (measured in clock cycles), and unmultiplexed buses, but not the 24-bit (16 MB) memory space. To support protected mode, new instructions have been added: ARPL, VERR, VERW, LAR, LSL, SMSW, SGDT, SIDT, SLDT, STR, LMSW, LGDT, LIDT, LLDT, LTR, CLTS. There are also new exceptions (internal interrupts): invalid opcode, coprocessor not available, double fault , coprocessor segment overrun, stack fault, segment overrun/general protection fault, and others only for protected mode. The protected mode of
782-547: The 80286 was free of the several significant errata that caused problems for programmers and operating-system writers in the earlier B-step and C-step CPUs (common in the AT and AT clones). This E-2 stepping part may have been available in later 1986. Intel second sourced this microprocessor to Fujitsu Limited in about 1985. Intel expected the 286 to be used primarily in industrial automation, transaction processing, and telecommunications, instead of in personal computers. The CPU
828-515: The 80286 was not routinely utilized in PC applications until many years after its release, in part because of the high cost of adding extended memory to a PC, but also because of the need for software to support the large user base of 8086 PCs. For example, in 1986 the only program that made use of it was VDISK, a RAM disk driver included with PC DOS 3.0 and 3.1. A DOS could utilize the additional RAM available in protected mode ( extended memory ) either via
874-467: The 80286 was the 80C286. On average, the 80286 was said to have a speed of about 0.21 instructions per clock on "typical" programs, although it could be significantly faster on optimized code and in tight loops, as many instructions could execute in 2 clock cycles each. The 6 MHz, 10 MHz, and 12 MHz models were reportedly measured to operate at 0.9 MIPS, 1.5 MIPS, and 2.66 MIPS respectively. The later E- stepping level of
920-452: The 8086 instructions, all of the new instructions of the 80186: ENTER, LEAVE, BOUND, INS, OUTS, PUSHA, POPA, PUSH immediate, IMUL immediate, and immediate shifts and rotates. The 80286 also added new instructions for protected mode: ARPL, CLTS, LAR, LGDT, LIDT, LLDT, LMSW, LSL, LTR, SGDT, SIDT, SLDT, SMSW, STR, VERR, and VERW. Some of the instructions for protected mode can (or must) be used in real mode to set up and switch to protected mode, and
966-497: The N80188 was compatible with the 8087 numeric co-processor, the 80C188 was not. It did not have the ESC control codes integrated. Because the integrated hardware included in the 80186 was incompatible with the support chips chosen by IBM for the 8088 -based IBM PC released a few months earlier, the chip did not see wide success in the PC market. IBM chose the 80286 for its successor,
SECTION 20
#17328759620041012-417: The advantages of protected mode except the extended (24-bit) address space. The choice that OS developers faced was either to start from scratch and create an OS that would not run the vast majority of the old programs, or to come up with a version of DOS that was slow and ugly (i.e., ugly from an internal technical viewpoint) but would still run a majority of the old programs. Protected mode also did not provide
1058-473: The basis of their IBM 4680 computer for IBM Plant System products and point-of-sale terminals in 1986. Digital Research's FlexOS 286 version 1.3, a derivation of Concurrent DOS 286, was developed in 1986, introduced in January 1987, and later adopted by IBM for their IBM 4690 OS , but the same limitations affected it. The problems led to Bill Gates referring to the 80286 as a "brain-damaged" chip, since it
1104-421: The design intent of protected mode was to prevent programs from accessing any segments other than their own unless special access was explicitly allowed. While it was possible to set up a protected-mode environment that allowed all programs access to all segments (by putting all segment descriptors into the Global Descriptor Table (GDT) and assigning them all the same privilege level), this undermined nearly all of
1150-506: The early 1990s. In 1987, Intel shipped its five-millionth 80286 microprocessor. Intel's first 80286 chips were specified for a maximum clockrate of 5, 6 or 8 MHz and later releases for 12.5 MHz. AMD and Harris later produced 16 MHz, 20 MHz and 25 MHz parts, respectively. Intel, Intersil and Fujitsu also designed fully static CMOS versions of Intel's original depletion-load nMOS implementation, largely aimed at battery-powered devices. Intel's CMOS version of
1196-503: The emulation on the production level C-1 step in May, which would not allow Concurrent DOS 286 to run 8086 software in protected mode. The release of Concurrent DOS 286 was delayed until Intel would develop a new version of the chip. In August, after extensive testing on E-1 step samples of the 80286, Digital Research acknowledged that Intel corrected all documented 286 errata, but said that there were still undocumented chip performance problems with
1242-445: The environment and loading the actual program to be executed, the DOS extender also provides (amongst other things) a translation layer that maintains buffers allocated below the 1 MB real mode memory barrier. These buffers are used to transfer data between the underlying real mode operating system and the protected mode program. Since switching between real/V86 mode and protected mode is
1288-405: The extender to set up the switch to protected mode, and allowed multiple protected mode programs to coexist peacefully. Intel 80286 The Intel 80286 (also marketed as the iAPX 286 and often called Intel 286 ) is a 16-bit microprocessor that was introduced on February 1, 1982. It was the first 8086-based CPU with separate, non- multiplexed address and data buses and also
1334-458: The first time and compete in the Unix -dominated server / workstation market. Several additional instructions were introduced in the protected mode of 80286, which are helpful for multitasking operating systems. Another important feature of 80286 is the prevention of unauthorized access. This is achieved by: In 80286 (and in its co-processor Intel 80287 ), arithmetic operations can be performed on
1380-479: The first with memory management and wide protection abilities. The 80286 used approximately 134,000 transistors in its original nMOS ( HMOS ) incarnation and, just like the contemporary 80186 , it can correctly execute most software written for the earlier Intel 8086 and 8088 processors. The 80286 was employed for the IBM PC/AT , introduced in 1984, and then widely used in most PC/AT compatible computers until
1426-568: The following different types of numbers: By design, the 286 could not revert from protected mode to the basic 8086-compatible real address mode (" real mode ") without a hardware-initiated reset. In the PC/AT introduced in 1984, IBM added external circuitry, as well as specialized code in the ROM BIOS and the 8042 keyboard microcontroller to enable software to cause the reset, allowing real-mode reentry while retaining active memory and returning control to
DOS extender - Misplaced Pages Continue
1472-529: The limitations of the 80286 protected mode because they did not aim to run MS-DOS applications or other real-mode programs. In its successor 80386 chip, Intel enhanced the protected mode to address more memory and also added the separate virtual 8086 mode , a mode within protected mode with much better MS-DOS compatibility, in order to satisfy the diverging needs of the market. This list of bus interface components that connects to Intel 80286 microprocessor. Intel 80186 The Intel 80186 , also known as
1518-773: The many potential conflicts that could arise from the varied methods of memory management that already existed, as well as provide a uniform interface for client programs. The first of these interfaces was the Virtual Control Program Interface (VCPI), but this was rapidly overshadowed by the DOS Protected Mode Interface (DPMI) specification, which grew from the Windows 3.0 development. They provided an API through which an extended program could interface with real mode software, allocate memory, and handle interrupt services. They also provided an easy method for
1564-446: The mouse API) interrupts. Some extenders also handle other common interrupt functions, such as video BIOS routines. Essentially, a DOS extender is like a miniature operating system, handling much of the functionality of the underlying operating system itself. The DOS extender was arguably invented by Phar Lap , but it was Tenberry Software 's (formerly Rational Systems) 386 extender DOS/4GW that brought protected mode DOS programs to
1610-530: The prerelease version of Concurrent DOS 286 running on the E-1 step. Intel said that the approach Digital Research wished to take in emulating 8086 software in protected mode differed from the original specifications. Nevertheless, in the E-2 step, they implemented minor changes in the microcode that would allow Digital Research to run emulation mode much faster. Named IBM 4680 OS , IBM originally chose DR Concurrent DOS 286 as
1656-505: The program that initiated the reset. (The BIOS is necessarily involved because it obtains control directly whenever the CPU resets.) Though it worked correctly, the method imposed a huge performance penalty. In theory, real-mode applications could be directly executed in 16-bit protected mode if certain rules (newly proposed with the introduction of the 80286) were followed; however, as many DOS programs did not conform to those rules, protected mode
1702-536: Was a performance penalty involved in accessing extended memory from real mode as noted below. The 286 was the first of the x86 CPU family to support protected virtual-address mode , commonly called " protected mode ". In addition, it was the first commercially available microprocessor with on-chip memory management unit (MMU) capabilities (systems using the contemporaneous Motorola 68010 and NS320xx could be equipped with an optional MMU controller). This would allow IBM compatibles to have advanced multitasking OSes for
1748-611: Was added for the push , imul , and multi-bit shift instructions. These instructions were also included in the contemporary 80286 and in successor chips. The (redesigned) CMOS version, 80C186, introduced DRAM refresh , a power-save mode, and a direct interface to the 80C187 floating-point numeric coprocessor . Intel second-sourced this microprocessor to Fujitsu Limited around 1985. Both packages for Intel 80186 version were available in 68-pin PLCC and PGA in sampling at third quarter of 1985. The 12.5 MHz Intel 80186-12 version using
1794-468: Was also available; this made it less expensive to connect to peripherals . The 16-bit registers and the one megabyte address range were unchanged, however. It had a throughput of 1 million instructions per second . Intel second sourced this microprocessor to Fujitsu Limited around 1985. Both packages of Intel 80188 version were available in 68-pin PLCC and PGA in sampling at third quarter of 1985. The available 80C188EB in fully static design for
1840-655: Was available for US$ 17.70 in quantites of 1,000 units. This microcontroller only available in 5-volt version. Both Intel 80C186EC and 80C186EA contains three different power-management modes, which has idle, powerdown and powersave. The 80C186EA has both 5- and 3-volt versions. The 80C186XL version was available up to 20 MHz, which is compatible with existing CMOS version of 80C186 that has 25% higher performance and 50% lower power consumption. This version used 1 μm CHMOS process technology. Both 80C186EA and 80C186XL were available for US$ 11.80 in quantities of 1,000 units. The 80188 variant, with an 8-bit external data bus
1886-480: Was available for US$ 378 in 100-unit quantities. The 80C186EB in fully static design for the application-specific standard product using the 1 μm CHMOS IV technology. They were available in 3- and 5-volt versions with 84-lead PLCC and 80-lead EIAJ QFP packaging. It was also available for US$ 16.95 in 1,000-unit quantities. The Intel 80C186EC contains 4 DMA channels, 2 interrupt controllers, 22 I/O which control two serial channels, and 4 timers. This version
DOS extender - Misplaced Pages Continue
1932-480: Was clear that the new Microsoft Windows environment would not be able to run multiple MS-DOS applications with the 286. It was arguably responsible for the split between Microsoft and IBM, since IBM insisted that OS/2 , originally a joint venture between IBM and Microsoft, would run on a 286 (and in text mode). Other operating systems that used the protected mode of the 286 were Microsoft Xenix (around 1984), Coherent , and Minix . These were less hindered by
1978-556: Was designed for multi-user systems with multitasking applications, including communications (such as automated PBXs ) and real-time process control . It had 134,000 transistors and consisted of four independent units: the address unit, bus unit, instruction unit, and execution unit, organized into a loosely coupled (buffered) pipeline , just as in the 8086. It was produced in a 68-pin package, including PLCC ( plastic leaded chip carrier ), LCC ( leadless chip carrier ) and PGA ( pin grid array ) packages. The performance increase of
2024-461: Was not widely used until the appearance of its successor, the 32-bit Intel 80386 , which was designed to go back and forth between modes easily and to provide an emulation of real mode within protected mode. When Intel designed the 286, it was not designed to be able to multitask real-mode applications; real mode was intended to be a simple way for a bootstrap loader to prepare the system and then switch to protected mode; essentially, in protected mode
2070-673: Was significantly faster than on the 8086, especially when a memory location was both (one of) the operand(s) and the destination. Multiply and divide also showed great improvement, being several times as fast as on the original 8086, and multi-bit shifts were done almost four times as quickly as in the 8086. A few new instructions were introduced with the 80186 (referred to as the 8086-2 instruction set in some datasheets ): enter / leave (replacing several instructions when handling stack frames), pusha / popa (push/pop all general registers), bound (check array index against bounds), and ins / outs (input/output of string). A useful immediate mode
2116-408: Was used in numerous embedded systems , as microcontrollers with external memory. The initial clock rate of the 80186 was 6 MHz , but due to more hardware available for the microcode to use, especially for address calculation, many individual instructions completed in fewer clock cycles than on an 8086 at the same clock frequency. For instance, the common register+immediate addressing mode
#3996