The Hercules Graphics Card ( HGC ) is a computer graphics controller formerly made by Hercules Computer Technology, Inc. that combines IBM 's text-only MDA display standard with a bitmapped graphics mode, also offering a parallel printer port . This allows the HGC to offer both high-quality text and graphics from a single card.
40-542: The HGC was very popular and became a widely supported de facto display standard on IBM PC compatibles . The HGC standard was used long after more technically capable systems had entered the market, especially on dual-monitor setups. The Hercules Graphics Card was released to fill a gap in the IBM video product lineup. When the IBM Personal Computer was launched in 1981, it had two graphics cards available:
80-489: A de facto standard , support in software was widespread. The Hercules Graphics Card had several versions. Several updated versions of the original Hercules Graphics Card exist. The original board from 1982 is referenced as GB100 , with updated versions in 1983 ( GB101 ), 1984 ( GB102 ) and 1988 ( GB102Z ). The Hercules Graphics Card Plus or HGC+ ( GB112 ) was released in June 1986 at an original retail price of $ 299. It
120-456: A TSR was a challenge of achieving the smallest possible size for it, and checking it for compatibility with a lot of software products from different vendors—often a very frustrating task. In the late 1980s and early 1990s, many video games on the PC platform pushed up against this limit and left less and less space for TSRs—even essential ones like CD-ROM drivers—and arranging things so that there
160-585: A computer to boot into a DOS Kernel by shutting down Windows Me; thus TSRs became useless on Windows Me. The Windows NT series (including Windows 2000 , Windows XP , and later) replaced DOS completely and run in protected mode or long mode (later 64-bit versions only) all the time, disabling the ability to switch to real mode, which is needed for TSRs to function. Instead these operating systems have modern driver and service frameworks with memory protection and preemptive multitasking , allowing multiple programs and device drivers to run simultaneously without
200-440: A controlled manner. It is modeled after IBM's Interrupt Sharing Protocol, originally invented for sharing hardware interrupts of an x86 processor. AMIS services are available via Int 2Dh. The proposal never gained a widespread traction among programmers in its days. It existed alongside several other competing specifications of varying sophistication. While very useful, or even essential to overcome DOS 's limitations, TSRs have
240-592: A different vertical refresh rate and a different aspect ratio via a different pixel clock and number of scanlines. The Hercules card provides two modes: The text mode of the Hercules card uses the same signal timing as the MDA text mode. The Hercules graphics mode is similar to the CGA high-resolution ( 640 × 200 ) two-color mode; the video buffer contains a packed-pixel bitmap (eight pixels per byte, one bit per pixel) with
280-403: A hardware interrupt vector allows such a program to react to hardware events. Installing a software interrupt vector allows it to be called by the currently running program. Installing a timer interrupt handler allows a TSR to run periodically (using a programmable interval timer ). The typical method of using an interrupt vector involves reading its present value (the address), storing it within
320-452: A reboot. However unloading is possible externally, using utilities like the MARK.EXE / RELEASE.EXE combo by TurboPower Software or soft reboot TSRs which will catch a specific key combination and release all TSRs loaded after them. As the chain of ISRs is singly linked, and a TSR may store the link to its predecessor anywhere it chooses, there is no general way for a TSR to remove itself from
360-472: A reputation as troublemakers. Many hijack the operating system in varying documented or undocumented ways, often causing systems to crash on their activation or deactivation when used with particular applications or other TSRs. By chaining the interrupt vectors TSRs can take complete control of the computer. A TSR can have one of two behaviors: The terminate-and-stay-resident method is used by most DOS viruses and other malware, which can either take control of
400-603: A standard by market forces and competition , in a two-sided market , after a dispute . Examples: An example of an ongoing dispute is OASIS 's OpenDocument format vs Microsoft's Office Open XML format. Terminate-and-stay-resident program A terminate-and-stay-resident program (commonly TSR ) is a computer program running under DOS that uses a system call to return control to DOS as though it has finished, but remains in computer memory so it can be reactivated later. This technique partially overcame DOS's limitation of executing only one program, or task , at
440-400: A standard required by law (also known as de jure standards ). Joint technical committee on information technology (ISO/IEC JTC1) developed a procedure in order for de facto standards to be processed through the formal standardization system to be transformed into international standards from ISO and IEC . In social sciences a voluntary standard that is also a de facto standard is
SECTION 10
#1732780330561480-611: A time penalty (unless they utilize techniques such as DPMS or CLOAKING ). With the arrival of expanded memory boards and especially of Intel 80386 processors in the second half of the 1980s, it became possible to use memory above 640 KB to load TSRs. This required complex software solutions, named expanded memory managers . Some memory managers are QRAM and QEMM by Quarterdeck , 386 by Qualitas , CEMM by Compaq , and later EMM386 by Microsoft . The memory areas usable for loading TSRs above 640 KB are called " upper memory blocks " (UMBs) and loading programs into them
520-513: A time. TSRs are used only in DOS, not in Windows . Some TSRs are utility software that a computer user might call up several times a day, while working in another program, by using a hotkey . Borland Sidekick was an early and popular example of this type. Others serve as device drivers for hardware that the operating system does not directly support. Normally DOS can run only one program at
560-514: A time. When a program finishes, it returns control to DOS using the system call INT 21h/4Ch of the DOS API . The memory and system resources used are then marked as unused. This makes it impossible to restart parts of the program without having to reload it all. However, if a program ends with the system call INT 27h or INT 21h/31h , the operating system does not reuse a certain specified part of its memory. The original call, INT 27h ,
600-409: A typical solution to a coordination problem . The choice of a de facto standard tends to be stable in situations in which all parties can realize mutual gains, but only by making mutually consistent decisions. In contrast, an enforced de jure standard is a solution to the prisoner's problem . Examples of some well known de facto standards: There are many examples of de facto consolidation of
640-423: Is a custom or convention that is commonly used even though its use is not required. De facto is a Latin phrase (literally " of fact "), here meaning "in practice but not necessarily ordained by law" or "in practice or actuality, but not officially established". A de facto standard contrasts an international standard which is defined by an organization such as International Standards Organization , or
680-601: Is an 8-bit ISA card with 64 KB of RAM , visible on the board as eight 4164 RAM chips, and a DE-9 output compatible with the IBM monochrome monitor used with the MDA. Like the MDA, it includes a parallel interface for attaching a printer. The video output is 5 V TTL , as with the MDA card. Nominally, the Hercules card provides a horizontal scanning frequency of 18.425 ± 0.500 kHz and 50 Hz vertical. It runs at two slightly different sets of frequencies depending on whether in text or graphics mode, providing
720-403: Is called loading high . Later, memory managers started including programs such as Quarterdeck's Optimize or Microsoft's MEMMAKER which try to maximize the available space in the first 640 KB by determining how best to allocate TSRs between low and high memory. With the development of games using DOS extenders (an early example was Doom ) which bypassed the 640 KB barrier, many of
760-444: Is called "terminate but stay resident", hence the name "TSR". Using this call, a program can make up to 64 KB of its memory resident. MS-DOS version 2.0 introduced an improved call, INT 21h/31h ('Keep Process'), which removed this limitation and let the program return an exit code . Before making this call, the program can install one or several interrupt handlers pointing into itself, so that it can be called again. Installing
800-574: The Color Graphics Adapter (CGA) and the Monochrome Display And Printer Adapter (MDA). CGA offered low-resolution ( 320 × 200 ) color graphics and medium-resolution ( 640 × 200 ) monochrome graphics, while MDA offers a sharper text mode (equivalent to 720 × 350 ) but has no per-pixel addressing modes and is limited to a fixed character set . These adapters were quickly found to be inadequate by
840-760: The Hercules Network Card Plus , ( HNC NB112 ) a variant of the Graphics Card Plus with an integrated TOPS /FlashTalk-compatible network adapter. Like the HGC+, it supported RAMFONT, but lacked a printer port. The InColor Card ( GB222 ) was introduced in April 1987. It included color capabilities similar to the EGA , with 16 colors from a palette of 64. It retained the same two modes ( 80 × 25 text with redefinable fonts and 720 × 348 graphics), and
SECTION 20
#1732780330561880-494: The HGC. Hercules developed extensions, called HBASIC , for IBM Advanced BASIC to add HGC support and Hercules cards came with Graph X , a software library for Hercules graphical-mode support and geometric primitives . Popular IBM PC programs such as Lotus 1-2-3 spreadsheet, AutoCAD computer-aided drafting, Pagemaker and Xerox Ventura desktop publishing, and Microsoft Flight Simulator 2.0 came with their own drivers to use
920-520: The Hercules appeared, including generic models at very low prices, usually without the printer port. Hercules advertisements implied that use of generic Hercules clones can damage the monitor. The Hercules Graphics Card was very successful, especially after Lotus 1-2-3 supported it, with one-half million units sold by 1985. As of June 1986 Hercules Computer Technology had 18% of the graphics card market, second to IBM. Hercules-compatible graphics cards shipped as standard hardware with most PC clones . As
960-499: The Hercules graphics mode. Though the graphics mode of the Hercules card is not CGA-compatible, it is similar enough to the two CGA graphics modes that with the use of third-party terminate-and-stay-resident programs it can also work with programs written for the CGA card's standard graphics modes. As the Hercules card does not actually have color-generating circuitry, nor can it connect to a color monitor, color appears as simulated grayscale in varying dithering patterns . Clones of
1000-498: The Hercules mode instead of two as in the CGA modes. Also, to represent 720 pixels per line instead of 640 as on the CGA, each scanline has 90 bytes of pixel data instead of 80. The 64 KB RAM of the HGC can hold two graphics display pages. Either page can be selected for display by setting a single bit in the Mode Control Register. Another bit, in a configuration register exclusive to the HGC, determines whether
1040-487: The PC or stay in the background. This malware can react to disk I/O or execution events by infecting executable (.EXE or .COM) files when it is run and data files when they are opened. Additionally, in DOS all programs, even those with large amounts of physical RAM , must be loaded into the first 640 KB of RAM (the conventional memory ). TSRs are no exception, and take chunks from that 640 KB that are thus unavailable to other applications. This meant that writing
1080-472: The chain. So usually a stub must be left in memory when unloading a TSR, causing memory fragmentation. This problem gave rise to TSR cooperation frameworks such as TesSeRact and AMIS. To manage problems with many TSRs sharing the same interrupt, a method called Alternate Multiplex Interrupt Specification (AMIS) was proposed by Ralf D. Brown as an improvement over previously used services offered via INT 2Fh. AMIS provides ways to share software interrupts in
1120-412: The extended memory area. Because programming with many overlays is a challenge in and of itself, once the program was too big to fit entirely into about 512 KB, use of extended memory was almost always done using a third-party DOS extender implementing VCPI or DPMI , because it becomes much easier and faster to access memory above the 1 MB boundary, and possible to run code in that area, when
1160-474: The issues relating to TSRs disappeared, and with the widespread adoption of Microsoft Windows and especially Windows 95 (followed by Windows 98 ) – which rendered most TSRs unnecessary and some TSRs incompatible – the TSR faded into obsolescence, though Win16 applications can do TSR-like tricks such as patching the interrupt descriptor table (IDT) because Windows allowed it. Windows Me does not allow
1200-535: The market, creating a demand for a card that offers high-resolution graphics and text. The founder of Hercules Computer Technology , Van Suwannukul, created the Hercules Graphics Card so that he could work on his doctoral thesis on an IBM PC using the Thai alphabet , impossible with the low resolution of CGA or the fixed character set of MDA. It initially retailed in 1982 for $ 499. The original HGC
1240-458: The memory space of the TSR, and replacing it with an address in its own code. The stored address is called from the TSR, in effect forming a singly linked list of interrupt handlers , also called interrupt service routines , or ISRs. This procedure of installing ISRs is called chaining or hooking an interrupt or an interrupt vector. TSRs can be loaded at any time; either during the DOS startup sequence (for example, from AUTOEXEC.BAT ), or at
Hercules Graphics Card - Misplaced Pages Continue
1280-584: The same addresses. A version without printer port exists The Hercules Text Card was a text-only MDA clone, but offered a parallel printer port. Other boards offered Hercules compatibility. Certain later models of the Tandy 1000 (such as the 1000 TL and SL) and the Epson Equity contained circuitry built into their CPU boards that supported Hercules display modes in addition to their standard CGA modes. De facto standard A de facto standard
1320-410: The same byte format—including the pixel-to-bit mapping and byte order—as the CGA two-color graphics mode, and the video buffer is also split into interleaved banks, each 8 KB in size. However, because in the Hercules graphics mode there are more than 256 scanlines and the display buffer size is nearly 32 KB (instead of 16 KB as in all CGA graphics modes), four interleaved banks are used in
1360-507: The second 32 KB of RAM on the HGC is accessible to the CPU at the base address B8000h. This bit is reset at system reset (e.g. power-on) so that the card does not conflict with a CGA or other color card at address B8000h. In text mode, the HGC appears exactly like an MDA card. Graphics mode requires new techniques to use. Unlike the MDA and CGA, the PC BIOS provides no intrinsic support for
1400-704: The user's request (for example, Borland 's Sidekick and Turbo Debugger, Quicken's QuickPay, or FunStuff Software's Personal Calendar). Parts of DOS itself use this technique, especially in DOS versions 5.0 and later. For example, the DOSKEY command-line editor and various other utilities are installed by running them at the command line (manually, or from AUTOEXEC.BAT or through INSTALL from within CONFIG.SYS ) rather than loading them as device drivers through DEVICE statements in CONFIG.SYS. Some TSRs have no way to unload themselves, so they will remain in memory until
1440-461: The x86 processor is switched from real mode to protected mode . However, since DOS and most DOS programs run in real mode (VCPI or DPMI makes a protected-mode program look like a real-mode program to DOS and the rest of the system by switching back and forth between the two modes), DOS TSRs and device drivers also run in real mode, and so any time one gets control, the DOS extender has to switch back to real mode until it relinquishes control, incurring
1480-463: Was an enhancement of the HGC, adding support for redefinable fonts called RAMFONT in MDA -compatible text mode. It was based around a specialty chip designed by Hercules Computer Technology, unlike the original Hercules Graphics Card, which used standard components. Software support included Lotus 1-2-3 v2, Symphony 1.1, Framework II and Microsoft Word 3. In 1988 Hercules released
1520-488: Was backward-compatible with software written for the earlier monochrome Hercules cards. The Hercules Color Card ( GB200 ) was a CGA-compatible video board and should not be confused with the InColor Card. This board could coexist with the HGC and still allow both graphics pages to be used. It would detect when the second graphics page was selected and disable access to its own memory, which would otherwise have been at
1560-409: Was enough free RAM to run the games, while keeping the necessary TSRs present, became very complicated. Many gamers had several boot disks with different configurations for different games. In later versions of MS-DOS, "boot menu" scripts allowed various configurations to be selectable via a single menu entry. In the mid- to later 1990s, while many games were still written for DOS, the 640 KB limit
1600-410: Was eventually overcome by putting parts of the game's data above the first 1 MB of memory and using the code below 640 KB to access the extended memory using expanded memory (EMS) by making use of overlay technique. An alternative later approach was to switch the CPU into Protected Mode by using DOS extenders and run the program in protected mode. The latter allowed to have code and data in
#560439