COPYRIGHT NOTICE6This program, its screens, and source are the property of DTG, Inc..All Rights Reserved..Copyright 1989, 1990, David Seifert, DTG, Inc. (Designed and programmed by David Seifert Compile date : January 13, 1990.LICENSE AGREEMENT MAIN MENU4This is the main menu for intel-LIGENCE. The6cursor keys are used to move the selection bar up and6down. When the desired choice is highlighted,2pressing the Enter key will execute the selection.6The Information Window displays a brief description &of each function as it is highlighted. 6The bottom line of the screen will always show the 6keystrokes which are available and their functions. 6Additionally, this area is used to inform the user ofwhat input, if any is expected.USING intel-LIGENCE MENUS#GENERAL SYSTEM INFORMATION - PAGE 16This screen displays the basic configuration ofyour computer.6The BIOS category is shown along with the BIOS6copyright. The equipment inventory of machine being6examined and the type and number of peripheral ports 6installed is reported along with the current I/O port assignments. 6Processor determination is performed and reported. A 6test is performed to confirm the presence of a Math6Coprocessor. Information about the DOS version being6used is reported. If DESQview is present, the versionis noted as well.6I/O port tables for the system being tested are%available by pressing the "PgDn" key.‚#GENERAL SYSTEM INFORMATION - PAGE 2GENERAL SYSTEM INFORMATION"SYSTEM MEMORY INFORMATION - PAGE 16The system memory inventory is evaluated and reported.6If Expanded Memory is installed, the amount, type and6available amount of that memory is displayed. The6version of the Expanded Memory Manager is also displayed. 6If Extended (AT) memory is installed, the amount $installed and available is reported. 6The sub-menu offers a more detailed analysis of6specific aspects of the system memory configuration and status.ƒ"SYSTEM MEMORY INFORMATION - PAGE 2 SYSTEM MEMORYDISK SUBSYSTEM6The basic physical characteristics of the installed6hard disks are displayed. The statistics shown are6determined by either the switch settings (XT) or the-disk type stored in the Real Time Clock (AT).6The sub-menu choices permit a closer look at the hard 6disk structure and usage by the operating system. If 6more than one hard disk is installed, information on /each drive is displayed at each menu selection.BASIC DISK INFORMATIONDISPLAY SUBSYSTEM - PAGE 16The display adapter that is installed and, if6possible, the monitor type in use are reported. Some6adapters automatically indicate a switch between video6modes when its capabilities are being evaluated. In6this case, more than one adapter is reported as6present when, in fact, there is only one display adapter present. 6If a Video Graphics Array adapter is installed, the 6Prompt line will offer a "PgDn" option to view more )detailed information specific to the VGA.…DISPLAY SUBSYSTEM - PAGE 2DISPLAY SUBSYSTEMI/O CARD AREA - PAGE 16The adapter ROM area utilization is displayed in 64K6segments of memory. Each segment is divided into 16K6pages with the status of individual pages identifiedas in use or available.6Address ranges which are currently in use are shown in +a highlight color to indicate their status. 6This display is useful for resolving memory addressing 6conflicts which arise when two or more expansion 6boards attempt to control the same addresses in theBIOS memory area.6Sub-menu choices are used to view either a map of each6segment in 2K increments or the contents of any memoryaddress.†I/O CARD AREA - PAGE 2I/O CARD MAPPINGSYSTEM OVERVIEW6This screen shows the basic system operating6parameters at a glance in a manner which most users will find easily understandable.6Along the left side of the screen is a column which6represents the first megabyte of memory addresses. At 7the top of the screen a close-up window states the 5contents of the currently "magnified" memory segment. 6The balance of the screen is used to show basic system configuration information.7The Boot Time Status or System Board Switch screens are,reached by pressing "PgDn" from this screen.SYSTEM OVERVIEWREPORT GENERATOR6This option is used to create a report of the status5of the system. Each subsystem can be selected for a6report. Selected components are indicated by a "" at6the left side of the component name. Options may be5selected or deselected by moving the menu bar to the*desired item and pressing the "Enter" key. 6The report will be sent to either the printer or to a 6disk file, based upon the user's response to the 6output prompt. If a disk file is selected, the user 6will be prompted to provide a file name. A path may be specified.6To execute the selected report, move the menu bar to*the "Run Report" option and press "Enter".REPORT GENERATOR  TSR MAPPING6This screen shows the names, locations, and sizes of6the Terminate-Stay-Resident programs which are present6in memory. Additionally, any interrupts which aretrapped by the TSR are listed.6This information is useful in resolving conflicts 6which arise when two or more TSR programs seize %control of the same interrupt vector. 6The Interrupt numbers shown are in HEX format, the 6Interrupt Vector Usage table in the Data Tables area4of intel-LEGENCE Help identify the use of each6interrupt. Access this screen through the Help Index. TSR MAPPING DEVICE DRIVER CHAIN - PAGE 16This option is used to display a list of the device'drivers which are active in the system.6Device drivers are the method of communication used6between the operating system and any of the hardware6devices installed in the computer and define the way DOS handles the device. 6A device called "DISK" will be followed by a number. 6This is the number of LOGICAL disk drives which the driver is handling.6Entries shown in a highlighted color are the drivers6devices which have been made available by a "DEVICE="6statement in the system configuration file CONFIG.SYS.ŠDEVICE DRIVER CHAIN - PAGE 2DEVICE DRIVERS INTERRUPT TABLES - PAGE 16These screens display the contents of the table ofInterrupt Vector Table.6Each entry consists of the Segment and Offset address6of the Interrupt Service Routine (ISR) entry point for6the interrupt bearing that number. This address is the6location in memory where the processor will transfer 6execution when an Interrupt with that number is requested. 6The "NORMALIZED" address is the absolute paragraph %address of the beginning of the ISR.6The "" and "" keys scroll the chart by one line, the6"PgUp" and "PgDn" keys scroll the chart by eight lines6the "Home" and "End" keys move to the first and last pages of the table respectively.‹INTERRUPT TABLES - PAGE 2INTERRUPT VECTOR TABLES VIEW MEMORY CONTENTS6This screen will display the contents of any memory6address in either HEX or ASCII format. The user is6prompted to enter a four digit HEX starting address e.g. C800.6The "H" and "A" keys toggle the display from the HEX to ASCII display modes. 6The "" and "" keys move the window through memory in 6paragraph (16 byte) increments. The "PgUp" and "PgDn" .keys move the window through memory 256 bytes.6The absolute address of any byte can be determined by6adding the column heading to the offset value on the6left side of the screen much like using a road mapindex.VIEWING MEMORY CONTENTS PARTITION TABLES6These screens show the contents of partition tables6for each hard disk installed in the system. These6tables define the division of the disk for use by the6operating system. In addition to the type of6partition, its size in cylinders and megabytes isshown. 6The FAT SIZE field indicates the type of File 6Allocation Table which is in use by the partition. 6The active partition is the one from which the system 'will boot if booted from the hard disk.6A disk partition which is handled by a loadable device6driver will probably appear as a "NON-DOS" partition.6This is normal. All standard DOS partitions are known&and appropriate information displayed.HARD DISK PARTITIONSLOW LEVEL DISK DETAIL - PAGE 16This option displays the low level disk parameters6that the operating system uses to address the drive.6This information is generated during the format6process and can be useful when analyzing disk usage6and performance. The disk parameters may change from6volume to volume ("C:", "D:", "E:", etc.) on the same physical device. 6If one of the drives with a letter higher than "C:" is 6a removable disk and no disk is present, the results 6will be unpredictable, insert a disk and access the drive again.6The user may view the parameters for each logical6drive by pressing the "PgDn" or "PgUp" keys asindicated by the Prompt Line.ŽLOW LEVEL DISK DETAIL - PAGE 2LOW LEVEL DISK INFORMATIONDISK STATISTICS6The disk space usage for each logical disk is shown.6The actual number of bytes used by all files acrossthe total drive is shown.6This display differs from the DOS CHKDSK report in6providing the arithmetic total of the logical sizes of 6all the files on the disk. CHKDSK reports the amount 6of disk space actually used to hold the files. The 6"Unavailable Space" value is the amount of disk space ,lost through the DOS disk allocation scheme.6If there is a removable disk drive using a drive6lettered "C:" or higher and no disk is present, an2error will be signaled when the drive is accessed.DISK USAGE STATISTICSBAD TRACK MAPPING6This option creates a file in the root directory of6the drive being tested (if possible). This file6contains a list of any bad tracks detected on theselected drive.6Key components of the drive subsystem are tested6during the process, if an error occurs, the user is 6informed of the error. Running this test on a drive 6verifies that the list of bad tracks supplied by the 6manufacturer is still valid. This test is recommended ,prior to starting a controller level format.6This test will function properly on any device that is6recognized by the controller, even if there is no DOS6partition present. In that case the report will be6created in the root directory of the default DOSdrive.BAD TRACK MAPPING VIEW SEGMENT6These screens are used to display the contents of the0ROM area of the computers memory in fine detail.6Each line displayed shows the status of a 2K area of6memory beginning at the segment address shown at theleft. 6If the address range is found to be in use it is 6searched for a copyright notice. The copyright notice is displayed on the line.5If no copyright message is found in a range a messageis displayed so indicating.VIEWING SEGMENTSI/O PORT USAGE MAP6This screen displays a prototype map of the allocation6of the microprocessor I/O ports. The list shown is5appropriate to the BIOS type installed in the system.6This list is NOT a representation of the devices6actually installed, but a list of the customary &assignments in a machine of this type. 6This screen is useful when installing a new adapter 6which permits several alternatives for its I/O port 7address. Look-up the options on this table and verify6that no currently installed device is using the desired port.I/O PORT USAGE MAPSYSTEM BOARD SWITCHES6The system board switch settings shown on this screen6are determined through interrogation of the system6BIOS. These are the actual settings, not necessarilythe correct settings.6The switch numbers and orientations are based upon the6IBM motherboard layout. The system being tested may 6differ from this layout but the meanings of the 6different switches will be correct if an adjustment is 6made for orientation and assignment. For example, if 6the display shows the Math Coprocessor switch is ON, 6then the switch with the same meaning in the systembeing tested will also be ON.7The System Board Switches Data Tables display provides7a complete definition of the meaning of these switches.1These tables are accessed through the Help Index.BOOT TIME STATUSBOOT TIME STATUS6The Power On Self Test is a system test that is run6each time your computer is booted. This option shows6the results of the most recent POST. Errors are6indicated in a highlight color. Any errors should be corrected using a SETUP program. 6In addition, the display shows several configuration 6parameters. These values are stored in the Real Time 6Clock of the system by the SETUP program provided by the system manufacturer.6The System Overview Screen may be accessed by pressingthe "PgUp" key.BOOT TIME STATUSVGA INFORMATION6This display concerns the range of capabilities of theinstalled VGA.6The Current values reflect the internal operation6parameters in the mode which is being used when SystemSleuth is executed. 6The Maximum values are the maximum capabilities of the 6adapter. Some of these functions are only available in certain display modes. 6The Available Video Modes are all the video modes.which the current display and adapter support.6This report may understate the capabilities of some6"Super" VGA adapters which have features not supportedby the system BIOS.DISPLAY SUBSYSTEM EXAMINE FILE6Any disk file can be viewed sector by sector in HEX or ASCII format.6The numbers on the left side of the screen are the6sector number within the file and the paragraph offset6within the sector. The top scale is the offset within the paragraph (16 bytes). 6The "H" or "A" keys toggles the display from HEX to 6ASCII modes. The "PgUp" and "PgDn" keys move through .the file in 256 byte (half sector) increments. EXAMINE FILEDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORDDUMMY HELP RECORD  TERMINATE-STAY-RESIDENT PROGRAMS6When DOS was first introduced little notice was made6of the curious function call whose documentation6indicated that the program terminated but the location6in memory where it had been executing would remainunused. 6This is, of course, the stated functionality of the 6Terminate-Stay-Resident function. An entire industry 6has grown around this function. A program's ability to 6live, die and be reborn is one of the unique features of DOS.! TERMINATE-STAY-RESIDENT PROGRAMSTSR MAP! TERMINATE-STAY-RESIDENT PROGRAMS!WHY IS THIS CAPABILITY SUPPORTED?6When DOS was originally designed, there was keen5interest in some aspect of Multitasking being6supported by the new machine. This was for good6reason. The PC could address 10 times the memory of 6its predecessors, so it made sense to make use of this )"excess" capacity with multiple programs. 6Since the machine for which DOS was designed was 6specifically intended as a computer for one person,6the use of the typical multiuser operating system was6not desirable and the complexity of a single user/multitasking operating system seemed excessive. "" TERMINATE-STAY-RESIDENT PROGRAMS6As a compromise, the ability to "Serially Multitask"5was provided. This differs from true multitasking in6that a background program does not execute, it only+executes when it has control of the system.6Microsoft liked the idea because it allowed them to 6provide services like the PRINT program as a true 6background print spooling program. Another example 1was the MODE command which also becomes resident. HOW IT WORKS6Leaving a program in memory does not do anything other6than take up space unless there is some mechanism to6restore control to that program, to "wake it up".!#TSR MAP# TERMINATE-STAY-RESIDENT PROGRAMS6This feat is accomplished by leaving a filter program/of sorts in the program's resident memory area.6Generally the resident program has placed its address6in the interrupt table and is getting an opportunity6to "see" all the keystrokes which are typed. If it 6sees the "Magic Keystroke" that it looks for, instead 6of passing the information through, it takes control of the system for itself. 6From that point on the program which was previously6running on the screen has been put on hold until theresident program is done.6It is the job of the resident program to restore the6system to its previous condition before returning'control to the normal chain of command."$TSR MAP$ TERMINATE-STAY-RESIDENT PROGRAMSHOW IT DOESN'T WORK6If for any reason the TSR leaves some aspect of the6system in any condition other than the way it was6originally, the potential for trouble is clear. 6Things get even more interesting if the situation is .compounded by more than one TSR being present. 6If one of the other TSRs is a program like the DOS 6PRINT program which seizes control of the system by6watching the system timer, the possibility of the6system coming grinding to a rather ugly halt is not amatter of IF but of WHEN.#%TSR MAP% TERMINATE-STAY-RESIDENT PROGRAMS6DOS does not provide any means for multiple TSR6programs to communicate with each other. This makes6it difficult for even the most well behaved programs6to handle all the possible situations which can arise#with the complexity of this scheme. DOS IS NOT RE-ENTRANT 6The statement is often made that DOS is not re- %entrant. What does re-entrance mean?6Simply stated re-entrance is the ability of the6operating system to be called from within one of itsown internal routines.$&& TERMINATE-STAY-RESIDENT PROGRAMS6That seems like a perfectly normal request until you6consider that DOS was not designed to have multiple6programs calling DOS function. If there is only one6program running, it is suspended until DOS returns6control after an interrupt call. Since the calling6program has no way of knowing exactly what is 6happening BEFORE is asserts itself, it has no way of 6knowing the state of the system when it makes a DOS call. 6If DOS has changed certain key system settings while6servicing an interrupt, the TSR asserting itself can6result is a system failure since it had to assume that6the system was in a normal state. Most quality6commercial TSR programs have overcome these problems6through the use of undocumented DOS functions whichprevent these disasters.%'' TERMINATE-STAY-RESIDENT PROGRAMSINTERRUPT CONFLICT6Many TSR programs rely on a "hotkey" combination to6invoke themselves and then further confuse the matter6by using a combination which DOS does not recognize.6The intention is to prevent a hotkey from conflicting 6with a program command. In order to see these special 6combinations, the program must replace the BIOS 6keyboard handling routines. If several TSR programs 6are replacing the BIOS keyboard handler, the 6opportunity for conflict increases dramatically.6Difference in keyboard hardware does not make iteasier either.6These are just some of the intricacies of TSRprogramming and management.&(DUMMY HELP RECORDDUMMY HELP RECORD)DUMMY HELP RECORDDUMMY HELP RECORD*DUMMY HELP RECORDDUMMY HELP RECORD+DUMMY HELP RECORDDUMMY HELP RECORD,DUMMY HELP RECORDDUMMY HELP RECORD-DUMMY HELP RECORDDUMMY HELP RECORD.DUMMY HELP RECORDDUMMY HELP RECORD/DUMMY HELP RECORDDUMMY HELP RECORD0 SYSTEM BASICS6During the first six years of its existence the PC was6referred to by its creators, IBM, in terms which had6rarely been used to describe their products, at least6never as a part of an official product name. This6machine was different, not like anything the company6had ever produced before. This was a COMPUTER. The 6major computer companies have always referred to their computing devices as SYSTEMS. 6What is the distinction? Other than sounding more 6powerful, the concept of a system is that of several6processing units, each performing their part of a6larger job. The definition of the PC as just a6computer, a microcomputer at that, gives the6impression that this is not a powerful computing6machine but a glorified, overblown, overpriced calculator.11 SYSTEM BASICS6In the early days the PC was dismissed by Information6Management executives as being some new kind of6typewriter. After all, what real computer cost less6than $50,000 and could run off the same power lines asthe department coffee pot? 6In their defense, the PC of the day had perhaps 256 6kilobytes of memory and relied exclusively upon single 6sided, single density 160 kilobyte diskettes as the 6"mass" storage device, indeed, not much more than a typewriter with a screen.6There was one major difference. System architecture,6the conceptual design of the hardware and the6software. The fact that there are still thousands of6original PCs running today that still have the022 SYSTEM BASICS6original system board but have been endowed with the6latest in display, mass storage and memory6capabilities bears witness to the fact that there7really was a "System" lurking behind the name plate ofthe "computer". WHAT IS A MICROCOMPUTER? 6Three years ago this was an easy question to answer, 6advances in microprocessor design have made the 6distinction between microcomputers and minicomputers a6very fuzzy line. The conventional definition was6based upon distinctions in processing power. Those6classifications fall apart when a microcomputer has an-Intel 80386 or Motorola 68030 processor.133 SYSTEM BASICS6These machines have the speed and processing power of6most minicomputers. The current definition says that6a microcomputer is a computer all of whose memory,6processor and I/O controllers reside on one circuit6board. The introduction of microcomputers which5employ a multiboard design seems to contradict that definition as well. 6What should be clear is that the characteristics that 6quality a machine as a microcomputer is a moving 7target. The current definition holds that the system's7ability to perform I/O operations is the most important6factor in classifying a system. Using this criteriathe PC is a microcomputer.244 SYSTEM BASICS6The fact is that the Personal Computer is very much a6System. Most users are aware that there is an Intel686 family microprocessor in the machine, most don't6realize that there are several other microprocessors6involved as well. For example, there is an 80426Keyboard Controller interfacing the keyboard (which 6has a processor of its own as well), an 8259 6Programmable Interrupt Controller prioritizing CPU 6requests and an 8237 Direct Memory Access Controller 6taking care of the system memory. This list is far 6from complete. The point is that the PC on your desk6embodies the same system design concepts as themainframe computers.355 SYSTEM BASICSTHE PC SUBSYSTEMS6A computer system is composed of several independent5but interconnected subsystems. The typical PC system(is composed of the following subsystems:  Memory Disk  Display  Communication  Expansion Bus6Each of these segments is supervised by a dedicatedµprocessor optimized for the task.components of your System.466 SYSTEM BASICSMEMORY SUBSYSTEM6The memory subsystem is composed of the memory chips6themselves and the support circuitry which manages6access and data movement. This is the most critical6subsystem since the system uses this memory to store its lowest level instructions. 6Access to system memory is cooperatively managed by 6the CPU and the DMA controllers. Since the memory is 6volatile, it is frequently referred to as temporary6storage. When the machine is turned off the data inthe memory is lost.577 SYSTEM BASICSDISK SUBSYSTEM6The disk subsystem is composed of the assorted disk6drives which may be attached to the system and the6dedicated controllers which provide control and*communication with the rest of the system. 6Access to the disk resources is managed by the CPU, 6the DMA controller, the Interrupt controller and the 6disk controller itself. The storage provided by the 6disk subsystem is referred to as permanent storage0since a loss of power does not destroy the data.688 SYSTEM BASICSDISPLAY SUBSYSTEM6The display subsystem is composed of the display6device (monitor) and the dedicated controller. This6is the familiar Monochrome, Color Graphics, Enhanced+Graphics and Video Graphics Array adapters. 6The display scheme in the PC is said to be "memory 6mapped". This means that there is CPU addressable 6memory which is directly related to positions on the 6monitor screen. In order to place a character on the6screen, the CPU places the code for the desired letter6at the appropriate address in memory. The display6controller is constantly updating the screen based6upon the contents of the memory which it is sharing with the CPU.799 SYSTEM BASICSCOMMUNICATIONS6The communications interface is divided into two6realms, the output only (in most cases) Parallel5Printer interface and the bidirectional Serial6Interface. The fundamental difference between these 6schemes is that the parallel interface outputs a full 6byte at a time while the serial interface outputs the 6data as a set of bits. Each of these I/O systems is 6managed by a special purpose dedicated microcontroller.6In addition to these conventional links to the outside6world, the PC also has a complex communication device6to manage the signals which are transferred over theSystem I/O Expansion Bus.8:: SYSTEM BASICSTHE SYSTEM EXPANSION BUS6In addition to these relatively standard interfaces,6the PC is equipped with a system I/O expansion bus.6These are the slots into which feature adapters are6inserted. The expansion bus is the part of the system 6which embodies the "Open Architecture" for which the PC is renowned. 6Virtually all the resources of the system are 6available to devices attached to this channel. The6expansion bus allows the user to add special purpose6hardware to the system and have that hardware enjoy5the advantages of being very closely tied to the CPU.9;DUMMY HELP RECORDDUMMY HELP RECORD<DUMMY HELP RECORDDUMMY HELP RECORD=DUMMY HELP RECORDDUMMY HELP RECORD>DUMMY HELP RECORDDUMMY HELP RECORD?DUMMY HELP RECORDDUMMY HELP RECORD@MEMORY SUBSYSTEM OVERVIEW6One of the prime resources of the PC is the system6memory. It is this resource that gives the PC much of6its speed and flexibility. The PC and the operating6system use this resource for two purposes, program%instruction storage and data storage. 6The advent of the low cost, low power consumption 6memory device has had more to do with the 6microcomputer explosion than almost any other factor. 6It is not uncommon for a microcomputer to be equipped 6with 640K of memory. That is the same amount of6memory which the famous IBM System/360 used to serve)hundreds of users less than 20 years ago.AAMEMORY SUBSYSTEM OVERVIEWMEMORY DEVICES - THE HARDWARE6The memory in computers is referred to as RAM. This6is an acronym for Random Access Memory. These devices6are said to be random access because the contents of6each storage cell are directly accessible through the 6chip connector pins. In contrast, a recording tape is 6not randomly accessible since the part you wish to )read must be moved to the playback heads. 6There are several key values which describe the6characteristics of a memory device. These are it's6size, speed and internal architecture. The size of a6device is usually specified in kilobits (not bytes).@BBMEMORY SUBSYSTEM OVERVIEW6The speed of a device is the time required for the6device to be ready for another access. The internal6architecture describes how the bits are addressed by6the outside world. Each of these basic qualities must0be considered when the system is being designed. 6The size of the device is probably the least critical 6in system design, since the only compromises required 6by using a smaller versus larger devices are the 6amount of circuit board space required to house a 6quantity of memory and the amount of power required to6run the devices. Common device capacities are 16, 64,256 and 1,024 kilobits.ACCMEMORY SUBSYSTEM OVERVIEW6The speed of the device will directly impact upon6system performance. If a slow (less expensive) device6is used the processor will need to pace itself so that6sufficient time elapses between memory accesses. This6is usually accomplished by simply forcing the6processor to do nothing for the necessary period. 6This is called inserting wait-states. Since the 6instructions are stored in memory, this technique can 6cause the overall performance of a system using a fast 6processor to deteriorate. The ideal system would 6operate with no wait-states, however the cost of6memory devices which can meet this performance6criteria is prohibitive for all but the most demanding applications.BDDMEMORY SUBSYSTEM OVERVIEW6The internal architecture of a memory device describes6the internal organization of the memory cells. This6characteristic is specified in the form "256K X 1".6This means that the device has 256,000 addressable6memory cells, each of which holds 1 bit value. An6alternative example is the "32K X 8" device. This 6device would have 32,000 addressable memory cells, 6each of which holds 8 bit values. This would be a 6byte addressable memory. Note however that this is 6still a 256 Kilobit device, only the internal arrangement is different.6The most common arrangement is the single bit device.6Using this kind of device, a set of eight chips are6minimally required to have a byte addressable memoryCEEMEMORY SUBSYSTEM OVERVIEW6array. The selection of this characteristic is a6matter of taste which has little impact on the6performance or cost of the system if the other twofactors remain constant.6If a design requires that the board have 640 KILOBYTES 6of memory the designer could use either 40 sets of 16 6kilobit chips or 10 sets of 64 kilobit chips. The 6most frequent design uses 2 sets of 256 kilobit chips 6and 2 sets of 64 kilobit chips. This design is 6popular because it provides exactly the required6amount of memory in the least number of devices. (Less,space and less power with no wasted memory.)DFFMEMORY SUBSYSTEM OVERVIEW6There are two basic types of memory used in PCs, each6with its specific advantages and disadvantages. The6first type is the Dynamic Random Access Memory (DRAM).6This is the mainstay of the computer industry. The6memory is called Dynamic because it requires a6periodic application of power to retain its data. The 6DRAM has the advantage of being small, relatively 1inexpensive and consumes relatively little power. 6The other kind of memory Static Random Access Memory 6(SRAM). The primary difference between SRAM and DRAM6has to do with the ability to retain data without6constant attention. SRAM requires only that power be6applied constantly, any data stored will remain)unchanged as long as power is continuous.EGGMEMORY SUBSYSTEM OVERVIEW6SRAM can be considerably faster than DRAM.6Unfortunately, SRAM is also several times more6expensive than DRAM, requires more complex power6circuitry and provides less memory per chip than DRAM.6For these reasons SRAM is rarely used for general6purposes except in the most demanding environments 6where the requirement for performance outweighs the cost of the memory. 6There are several other types of memory device 6available each offering unique advantages. For6example Bubble Memory with its ability to retain6information without external power supplies, Gallium6Arsenide with its blinding speed, and Emitter CoupledFHHMEMORY SUBSYSTEM OVERVIEW6Logic the ultra fast memory used in mainframe computer6system, to name a few. Some of these designs,6particularly the Gallium Arsenide device, will6eventually be used in PCs once the cost per megabyte+is competitive with the older technologies. ERROR DETECTION AND CORRECTION 6The values stored in the memory cells of the memory 6device are not immune to contamination. A value can 6be changed by a number of conditions. The most6frequent causes are attempts to access memory at a6rate faster than it is capable of handling. This6happens when a memory board designed for an olderGIIMEMORY SUBSYSTEM OVERVIEW6system is installed in a much faster system. A memory6location can store either a processor instruction or6data. A spurious change in an instruction or data6compromises the integrity of the system and therefore'cannot be permitted to pass undetected. 6The PC uses a simple but effective system of verifying 6that the contents of memory have not been altered 6without the knowledge of the memory management 6hardware. This scheme uses one extra memory chip to 6store a value which represents the accumulated values6of the other bits in that "column" of memory. This6value is updated each time the contents of the memory6is changed and verified during each memory refreshHJJMEMORY SUBSYSTEM OVERVIEW6cycle. If an error is discovered, the processor is6informed of the error through the a special kind of6interrupt called the Non-Maskable Interrupt. In most6cases the system must be restarted when this kind of6error is detected. This situation is referred to as aMEMORY PARITY ERROR. 6Most PCs do not have any hardware which will correct a 6memory error. This design decision was made in the 6interest of controlling the cost of the memory 6management hardware. In contrast, most large computer6systems do provide correction as well as detection of6errors. This is obviously more important in a system which is serving multiple users.IKKMEMORY SUBSYSTEM OVERVIEWMEMORY ARCHITECTURES6Once the memory chips have been installed in a system6a method of referring to each storage cell needs to be6used. This is referred to as the memory architecture. CONVENTIONAL MEMORY 6The Intel 8086/88 processors used in the original PC 6and PC/XT use a 20 bit memory address. This allows 6the microprocessor to address exactly 100000h,(1,048,576 or one megabyte) bytes of memory.6This memory is referred to as Real memory. The top6384K of this megabyte address range has been reservedJLLMEMORY SUBSYSTEM OVERVIEW6for use by various system components and is therefore6not available for use by applications programs. The6remaining memory address range is the familiar 640K6which DOS makes available. This memory is also knownas Conventional or Base memory. EXTENDED MEMORY 6The Intel 80286 processor used in the PC/AT and 6compatibles has 4 additional address lines. This 6means that the maximum address range is increased by a6factor of 16 to 16 megabytes. Unfortunately the 2866processor does not deal with the extended address6space in the same manner as the 8086/88 does and this6memory is not generally available to our applications.KMMMEMORY SUBSYSTEM OVERVIEW6This memory, which has addresses beginning at the 16megabyte point, is referred to as Extended Memory.6This memory is only accessible when the processor is6running in a different mode of operation known as theVirtual Protected Mode. 6This is the mode in which advanced operating systems 6like OS/2 and UNIX run. Some IBM documentation refers #to this memory as Expansion memory. EXPANDED MEMORY (EMS)6As applications became larger and required more memory6it became obvious that some mechanism needed to beLNNMEMORY SUBSYSTEM OVERVIEW6developed to increase the apparent amount of memory6available for applications. Three industry leaders,6Lotus, Intel and Microsoft arrived at a definition of6a way to increase the apparent address space without6increasing the number of hardware address lines. The.technique employed is known as Bank Switching. 6Expanded Memory works in a manner similar to a 6jukebox. There is one record player combined with a 6mechanism to change the currently accessible 6selection. The time required to change records more6than compensates for not needing a number of record%players equal to the number of disks.MOOMEMORY SUBSYSTEM OVERVIEW6Similarly Expanded Memory uses a fixed block of6address space in the first megabyte of memory to serve6as a "window" onto a much larger array of memory which6does not have an address in the 8086/88 memory map.6Instead, the Expanded Memory hardware and software6move the desired "page" of memory into the "pageframe" 6upon request from an application which knows how to use this facility. 6Once the page is in place the application is free to 6use it in the same manner as it would any other6memory. It is the responsibility of the application6program to manage the pages of memory it uses in this6manner. For this reason only software written to takeadvantage of this capability.NPPMEMORY SUBSYSTEM OVERVIEWEMS 3.2 DESCRIPTION6The original EMS specification called for a single 64K6page frame divided into 4 16K pages with a maximum of68 megabytes of bank switchable memory accessible6through 512 pages of 16K each. This is defined as 1version 3.2 of the Expanded Memory Specification. EMS 4.0 DESCRIPTION 6This standard has recently been revised to permit the6use of up to 16 page frames of varying sizes located6in any combination of addresses in the conventional6address space. The number of 16K pages has also been6increased to 2048 to provide a maximum of 32 megabytes6of bank switched memory. This is defined as version)4.0 of the Expanded Memory Specification.OQQMEMORY SUBSYSTEM OVERVIEW6It should be noted that concurrent with the6development of the 3.2 specification, Ashton-Tate,6Quadram and AST proposed and implemented a superset of6the 3.2 specification which is known as the Enhanced6Expanded Memory Specification (EEMS). EEMS and EMS64.0 are almost identical, in fact the hardware used 6for EEMS is fully capable of performing all the EMS (4.0 functions with a change in software.PR+INTRODUCTION TO SEGMENTED MEMORY ADDRESSING6The Intel 86 family of microprocessors are said to6employ a segmented memory addressing scheme. This6technique, while simple in concept, leads to confusion6due to the capability of the scheme to obscure the+spatial relationship between two addresses. $WHAT IS SEGMENTED MEMORY ADDRESSING? 6State simply, segmented memory addressing is the use 6of two values to define a memory location. The first 6part, the segment address is a sixteen bit value6identifying the starting address of a 64K range of6memory. (Note that the zero which defines the actual6starting byte is assumed.) The second part, the offset6address, is the number of bytes "into" the definedSS+INTRODUCTION TO SEGMENTED MEMORY ADDRESSING6segment which define the actual memory location. The6address of any given byte is expressed in writing6using the SEGMENT:OFFSET convention, each part of the2address being expressed as a four digit HEX value.SO WHAT'S THE CONFUSION? 6Since incrementing the segment portion of an address 6will only change the starting address of the segment 6by sixteen bytes and since the offset can range from 0 6to FFFFh, two segment values differing by a value of 16will define the same physical memory with the6exception of the first and last 16 bytes of the two6segments. This makes it possible to identify the sameRTT+INTRODUCTION TO SEGMENTED MEMORY ADDRESSING6byte in memory with thousands of different sets of6segments and offsets. The fact that the same address6is being referenced is not obvious in many cases. For6example, the following segment and offset pairs definethe same address in memory:  F000:0100  F001:00F0  F010:0000  EF00:11006As you can see, this can be very confusing. This is6only a sample of four possibilities out of over 4,0006possible combinations which would describe theaddress.SUU+INTRODUCTION TO SEGMENTED MEMORY ADDRESSING"HOW TO AVOID SOME OF THE CONFUSION6Programmers have adopted an informal convention to6curtail some of the confusion. The idea is to change6segment values as infrequently as possible. This6means that when a range of memory is to be addresses 6the most significant 16 bits of the full 20 bit 6address of the starting address become the segment 6value, all subsequent memory references are made by altering only the offset value.(WHY IS SEGMENTED MEMORY ADDRESSING USED?6The amount of memory that a processor can address is6limited by the number of bits provided for identifying6addresses. Using 16 bits a range of 0 to FFFFh is'possible. This is a 64K address space.TVV+INTRODUCTION TO SEGMENTED MEMORY ADDRESSING6In order to create a one megabyte address space a6total of 20 bits would be required. Since the Intel686 family of processors (except the 80386) are all 166bit devices defining 20 bit addresses would be6impossible since all the internal registers#(workspaces) are only 16 bits wide. 6Creating a 20 bit processor would not make any sense 6since only the memory addressing hardware could make 6use of the extra 4 bits. At the same time it is 6obvious that a 64K linear address space is not6adequate. The solution is to use two 16 bit registersUWW+INTRODUCTION TO SEGMENTED MEMORY ADDRESSING6to identify an address. One, called the SEGMENT6REGISTER holds the most significant 16 bits of the6address while the other register called either the6INDEX or POINTER REGISTER holds the least significant616 bits of the address. Note that there are6apparently 32 bits in the address composed using this 6technique. This is not the case because the absolute 6address is obtained by adding a single 0 to the 6segment address and then adding the offset value, 6resulting in a 20 bit address. It is this 12 bit 6overlap which allows multiple segment and offset)combinations to describe a given address.6The 16 bit Intel processors have four SEGMENT6REGISTERS, three POINTER REGISTERS and two INDEX REGISTERS.VXINTRODUCTION TO INTERRUPTS6All the systems which run PC or MS DOS are based on6either a member of the Intel iAPX-86 family of6microprocessors or a replica of one of these*processors (the NEC V series for example).6Most computers use an interrupt system internally, the 6Intel-MS-DOS combination is unusual in allowing 6programmers to directly access the processor interrupt structure. WHAT IS AN INTERRUPT?6Very simply, an interrupt is a signal which is sent to6the main system processor to inform it that some&device or program needs its attention.WYYINTRODUCTION TO INTERRUPTS6There are two types of interrupt, hardware and software.6A hardware interrupt is one which actually generates6an electrical pulse to the appropriate pin on the CPU.6This is generally done by one of the special function 6microprocessors which are a part of the main system 0board or attached through the I/O expansion bus. 6The hardware interrupts are used to communicate 6critical information to the processor. Typically, the6devices that invoke hardware interrupts are those6which are critical to the system's continued6operation. An example of this kind of interrupt might6be the timer or the keyboard devices requesting theattention of the processor.XZZINTRODUCTION TO INTERRUPTS6Software interrupts do not have the ability to6"interrupt" the processor as do the hardware6interrupts (since software can only be executed when6the processor is running, it would be impossible for/running software to "interrupt" the processor). 6Software interrupts are a request for the processor 6transfer control of the program to some other location. 6Software interrupts are distinguished from one another6by the number which is referenced when the interrupt6is requested. Intel provided for a range of 256 suchnumbers.Y[[INTRODUCTION TO INTERRUPTSTHE INTERRUPT VECTOR TABLE6The first 1,024 bytes of memory (beginning at 0) is6reserved for a table known as the Interrupt Vector6Table. This table is viewed as 256 four byte entries,6with each sequential entry corresponding to the sameinterrupt number. 6The entry for a given interrupt is the address in 6memory (using the segmented memory addressing scheme) 6where control should be transferred upon invocation of 6the interrupt number corresponding to the table entry.6The programs that are started in this manner are*referred to as Interrupt Service Routines.6Generally, this scheme is used to provide access to6standard system services like disk, video andcommunications.Z\\INTRODUCTION TO INTERRUPTS6This method is particularly convenient, in fact6mandatory, for hardware and operating system6designers, since they need not be concerned with the6exact location in memory where a certain routine is5located. Without use of this scheme multivendor0system compatibility would be nearly impossible. 6The only requirement is that a standard system of 6services and interrupt numbers be observed. Some of 6the entries in the Interrupt Vector Table transfer 6control to the ROM-BIOS of the system, others refer to4addresses within the memory resident portion of DOS.6The table holding the transfer addresses is located in6normal RAM, therefore the values can be changed as6needed. This capability provides an extraordinarydegree of flexibility.[]]INTRODUCTION TO INTERRUPTS6The behavior of the system can be modified by changing6the address of the standard system services to that of6of a set of replacement programs. When coupled with6the DOS Terminate-Stay-Resident capability, tremendous"changes can be made to the system. the system. 6In most cases, a user installed Interrupt Service 6Routine (ISR) will be performing some functions which 6are not normally provided by the BIOS or DOS. It is 6very unusual for an ISR to completely replace the6standard routines. They generally are only enhancingthe standard capabilities.\^^INTRODUCTION TO INTERRUPTS#CHAINING INTERRUPT SERVICE ROUTINES6The designers of the operating system (DOS) have6specified a set of programming techniques permitting6several ISRs to be called when invoked by a software interrupt. 6These rules fundamentally say that each ISR should 6pass control to the address that was present in the 6table when it was loaded. This process is known as 6chaining. If strictly observed, all ISRs will receive6control and have an opportunity to do their work and6control will ultimately be passed to the native DOS or6BIOS ISRs present when the system was initiallystarted.]__INTRODUCTION TO INTERRUPTS6Problems occur when these rules are not strictly6observed. If control is not ultimately returned to6the native ISR, then assumptions about the performance6of certain functions are not valid and conflicts willarise. 6These conflicts can manifest themselves as anything 6from strange screen behavior (relatively benign) to (complete system failure (not so benign). 6It should be noted that the ISR chaining conventions6operate exclusively on the honor system. That is to6say, there is no table of links in the chain.6Further, only the most recently loaded ISR can be6tracked to a given interrupt number. Since one missed6relay of control, or one altered register value can^``INTRODUCTION TO INTERRUPTS6completely destroy the integrity of the chain, extreme6caution must be used to keep this system functioning reliably.6TSR authors are familiar with the fragile nature of6the scheme, and they all state their program should be 6the last one loaded. This is the only way to assure 6that when control is passed to your ISR nothing has been contaminated. 6Many TSRs request that they be the last TSR loaded.6Only one program can be loaded last, which is why use6of multiple TSR programs frequently results in locked6keyboards and scrambled screens (the keyboard6interrupt is the most commonly used access point for"pop up" TSR programs)._aaINTRODUCTION TO INTERRUPTSUNDOCUMENTED INTERRUPTS6In order to provide a standard programming6environment, the authors of the operating system and6some hardware manufacturers have published the6specifications of the applications programming 6interface (API) to the interrupt services included in 6DOS or the BIOS. Additionally, both have stated that 3any interface so published will not change. Period. 6In addition to the published API there are other6services which the operating system and hardware6manufacturers have reserved to themselves. These6functions are generally of little concern to the user,6but offer an irresistible temptation to the systemslevel programmer.b`bINTRODUCTION TO INTERRUPTS6They offer special "magic" which is otherwise6unavailable. Since the specifications of these ISRs6have not been published, the operating system and6hardware manufacturers are under no obligation to6continue standard support for them. Also, since they6are undocumented, the possibility exists that 6unintended side-effects can be generated through their use.acDUMMY HELP RECORDDUMMY HELP RECORDdINTRODUCTION TO DEVICE DRIVERS6The MS-DOS device driver is one of the least6understood components of the operating system. A6device driver is a specially formatted program which1contains the instructions which control a device.6A mouse is an example of a device that requires a 6device driver to provide the instructions which make it useful. 6The technique of keeping the instructions which are 6specific to a device in a separate program allows all6applications (and the operating system, too) to use a6standard set of commands to control devices with verydifferent native commands.eeINTRODUCTION TO DEVICE DRIVERS6Before giving examples of the use of device drivers,6it should be pointed out that there are two distinctclasses of device drivers.6The device drivers included as part of DOS are known6as the Kernel Device Drivers. The second type are 6those which are added to the operating system through 6the use of the "DEVICE=" statement in the system 6configuration file CONFIG.SYS. These drivers are known as Installable Device Drivers.6Within these two types of device drivers DOS makes a6further fundamental distinction between the devices6which are being controlled by the driver. Each system6device is defined as either a BLOCK or a CHARACTERdevice.dffINTRODUCTION TO DEVICE DRIVERS6Block devices are those which have the ability to move6data in chunks of bytes. With rare exception, blockdevices are disk drives.6A character device is one to which data is moved one6character at a time. A printer is a good example of a character device. 6Each device attached to the system is given a DEVICE 6NAME by DOS. Block devices are always given single 6letter names while character devices are given multi-6character names. The disk drives A:, B:, C: etc. are6examples of the block device. The parallel printer6LPT1: is an example of the character device. Note6that the device drivers for these devices are6incorporated into the operating system, they areKernel Drivers.eggINTRODUCTION TO DEVICE DRIVERS6The disk drive device driver presents a good example6of how the device driver isolates the user from the6hardware specific commands needed to control the6device. The diskette drives A: and B: require6completely different commands from the fixed disk C:6yet due to the standard device interface an 6application doesn't need to know any difference 6between them. The device driver performs the required 6transformations to provide a standard, device independent interface. DEVICE NAMES6A character device is given its name by DOS when the6driver is loaded. This name is used to address thefhhINTRODUCTION TO DEVICE DRIVERS6device. For example, a text file is sent to the,printer by giving DOS the following command: COPY FILENAME.EXT LPT16This command tells DOS to copy the disk file &FILENAME.EXT to the device named LPT1. 6The name LPT1 was assigned to the first parallel 6printer because the Kernel Device Driver has specified 6that name as part of its instructions. All character6devices contain such a name specification. This name5is coded into the driver instructions at a predefined6location. The name of the file specified in the6'DEVICE=' statement of the system configuration file6CONFIG.SYS does not necessarily correspond to the name-specified by the author of the device driver.giiINTRODUCTION TO DEVICE DRIVERS6Since disk files and character devices share the same6naming convention and in many cases can be read or6written to in the same manner, device names are6specifically designed to avoid conflict with a diskfile with the same name. 6For example, the file containing the device driver for 6an Expanded Memory Board is commonly called EMM.SYS. 6Viewing the intel-LIGENCE Device Chain list shows that %the device was named EMMXXXX0 by DOS.6There are two reasons for using different names, one6of which is specific to the EMS driver, the other6which is common to all character device drivers. By6convention all Expanded Memory Managers use the name6EMMXXXX0. This allows drivers meeting thehjjINTRODUCTION TO DEVICE DRIVERS6specification to be addressed by all applications6which use EMS without regard for the manufacturer ofthe hardware or the software.6If the device name was EMM any attempt to work with a6file named EMM would result in a conflict since DOS 6would not be able to distinguish between the disk file and the device. !COMMUNICATING DEVICE CAPABILITIES6The operating system remains unchanged regardless of6the device drivers installed, therefore, the nature6and number of the functions available for a device6driver to translate don't change. Since the operatingikkINTRODUCTION TO DEVICE DRIVERS6system knows nothing about the device and its6capabilities, it is the responsibility of the device6driver to inform DOS about the device and the driver'scommunication capabilities.6This information is communicated by means of the 6DEVICE ATTRIBUTE. The Device Attribute is two bytes 6which are located at a fixed offset within the device 6driver instructions. This sixteen bit field provides +DOS with the characteristics of the device.6DOS uses this information to decide how to handle the6device. Key questions about basic operations arejllINTRODUCTION TO DEVICE DRIVERS6answered by the values coded into the DeviceAttribute. For example:%'Can this device handle binary data?'6'Is it necessary to see if the disk has been changedsince the last disk operation?' 6'Can applications communicate directly with the device 6driver through the DOS functions designed for that purpose?'kmmINTRODUCTION TO DEVICE DRIVERS&DRIVER DEVICE ATTRIBUTE IS BIT ENCODED6The Device Attribute is said to be bit encoded. That6is to say that each bit has a special significance.6For this reason it is necessary to examine the binary6representation of the value on a position by position +basis rather than as one hexadecimal value. DECODING THE ATTRIBUTE WORD 6Now that the HEX Device Attribute has been converted6to a binary representation it is possible to decode/the meanings of each position within the field.lnnINTRODUCTION TO DEVICE DRIVERS6The digits within a binary numbers are referenced6using a position number. The position numbers range6from 0 to the full width of the expression. Position60 is the rightmost bit. The meanings of the bits in,the Device Attribute are defined as follows: BIT # MEANING 15 Character Device 6If this bit is set the device is a character device,otherwise it is a block device.mooINTRODUCTION TO DEVICE DRIVERS 14 I/O Control is supported6If this bit is set the device driver supports the DOS6IOCTL Input and Output commands. This capability6allows device-aware programs to communicate directly6with the device driver using a standard DOS function call. ,13 Block Device - Non-IBM format device 2 Character device - Output Til Busy Command  available6This bit serves different purposes depending upon6whether the device is a block or character device. IfnppINTRODUCTION TO DEVICE DRIVERS6a block device and the bit is equal to 1 then the6device does not use the IBM block device format,6otherwise the block device uses the IBM format. If a6character device and the bit is equal to 1 then the6driver supports the Output-Til-Busy command which6permits DOS to send strings of characters to the 6device without waiting for verification from the driver. 12 Undefined#This bit should always be set to 0.oqqINTRODUCTION TO DEVICE DRIVERS611 Device Open/Close/Removable Media is supported6If this bit is equal to 1 and the device is a block6device then the driver implements the commands which6report the status of the device. The device may6report that it is open for I/O, closed for I/O and 6whether or not the media (disk) is removable. If the 6device is a character device, only the Device Open and 6Device Closed commands are supported if this bit is equal to 1.6If this bit is equal to 0 then the driver is not6expected to have the ability to report the status of6the device and the operating system uses its internalyrrINTRODUCTION TO DEVICE DRIVERS6defaults to manage the device. (This means that the6device must conform to the DOS standards for behavior6since no custom device handling functions are providedby the driver.)10 Undefined This bit should always be 0. 9 UndefinedThis bit should always be 0.8 UndefinedThis bit should always be 0.qssINTRODUCTION TO DEVICE DRIVERS7 UndefinedThis bit should always be 0.66 Driver supports Get/Set Logical Device command 6If this bit is set then the driver has the ability to 6assign multiple drive letters to a single device. The 6DOS 3.2 DRIVER.SYS driver takes advantage of the fact 6that the DOS 3.2 Kernel Disk Driver implements this 6function. If this bit is not set the driver does not6provide support for this function. Only valid forblock devices.rttINTRODUCTION TO DEVICE DRIVERS5 UndefinedThis bit should always be 014 Driver implements a Fast Putchar function 6If this bit is set the driver implements fast console 6output by replacing the address of INT 29 the Fast 6Putchar interrupt. This function is used only with 6the CONSOLE device. Additionally, only one driver may 6have this bit set since the driver instruction will6replace the standard DOS instructions for Fast6Character Output. If this bit is not set then the6driver does not provide its own instructions for Fast6Character Output and if the driver is the CONSOLE6driver the standard DOS INT 29 handler is NOT used.!Only valid for character devices.suuINTRODUCTION TO DEVICE DRIVERS(3 Driver implements a CLOCK device6If this bit is set then the driver will replace the6standard DOS CLOCK device driver. Only valid forcharacter devices. (2 Driver implements the NUL device 6Only the Kernel NUL Device Driver may have this bit 6set. If any other driver has this bit set in its 6Device Attribute the driver will probably behave erratically.tvvINTRODUCTION TO DEVICE DRIVERS41 Driver implements the Standard Output Device6If this bit is set the driver replaces the Kernel6Driver for handling the Standard Output Device (the6current display). Bit 0 (Standard Input Device)6should also be set if this bit is set. Only valid for character devices. 20 Character - Driver implements the Standard  Input Device3 Block - Driver supports Generic I/O Control6If this bit is set and the device is a character6device the driver replaces the Kernel Driver foruwwINTRODUCTION TO DEVICE DRIVERS6handling the Standard Input Device (the keyboard).6This bit may be set independently of Bit 1 (StandardOutput Device).6If this bit is set and the device is a block device6the driver provides support for Generic I/O Control .through the standard device control protocols. 6Note that not all functions are supported by all 6version of DOS. The Microsoft and IBM DOS Technical 6References have detailed specifications for the devicedriver interface.vxxINTRODUCTION TO DEVICE DRIVERS-EXAMPLE OF A STANDARD DEVICE DEVICE ATTRIBUTE6Under IBM PC/DOS 3.3 the CON (System Console) device6has an Attribute of 8013h. When converted to binary6notation the bitmap is 1000000000010011. This tells6us the following facts about the device and the capabilities of the driver: $1. The device is a character device. 62. The driver does NOT support the IOCTL Input andOutput commands.63. The driver does NOT support the Output-Til-Busy commands.wyyINTRODUCTION TO DEVICE DRIVERS64. The driver DOES NOT support the Open and Closestatus report commands.65. The driver DOES implement the INT 29 Fast CharacterOutput function. 26. The driver DOES NOT implement the CLOCK device. 07. The driver DOES NOT implement the NUL device. 68. The driver DOES implement the Standard OutputDevice.69. The driver DOES implement the Standard InputDevice.xzzINTRODUCTION TO DEVICE DRIVERS6This information was determined by first examining the6value of bit 15 which defined the device as a6character device. Once the device type was6determined, the status of all other bits which apply"to character devices is evaluated. 6The Attribute for the CON device under your version of 6DOS may not be the same as the example shown here. If 6it is different, it is an example of how the device 6driver interface allows the hardware to vary while +retaining a uniform applications interface.y{{INTRODUCTION TO DEVICE DRIVERS$COMPLIANCE WITH STATED FUNCTIONALITY6It is the device drivers responsibility to perform all6the operations whose availability is implied by the6settings in the Device Attribute. Furthermore, all6input and output values MUST conform with the device 6driver interface specifications. If the Device 6Attribute and the underlying instructions do not 6match, a conflict will arise. Similarly, if support 6of a given function requires the driver to return data 6to DOS and that data is not returned in the form6expected by DOS a conflict will arise. Due to the6demanding nature of the device driver interface,6errors of this sort tend to result in system failurewhen the device is accessed.z||INTRODUCTION TO DEVICE DRIVERSINITIALIZING AND RUNNING6In addition to handling the translation of a DOS6request into device specific commands, the device6driver has the added responsibility of performing any6initialization which the device requires. An example 6of this might be an Expanded Memory Manager checking 6for the presence of its hardware, testing the memory 6and setting the initial values for the control registers.6When a device driver is loaded by DOS control is6passed to the device driver for it to perform its6initialization routines. When the device is used by6the operating system at any other time the device{}}INTRODUCTION TO DEVICE DRIVERS6driver is called again, but this time two calls are,6first to alert the driver that its services are needed6and to tell it where to find its input data, and againto allow it to do its work.6In order to accommodate this requirement, device 6drivers are written to have two distinct entry points. 6An entry point is the address in memory where 5execution is transferred when a program or subprogram 6is called. This is unusual since generally a program 6can have only one such entry point. Much like the6Device Attribute, the addresses of the two entry5points are coded into the instructions at predefined6locations so that DOS can call the correct part of thedriver at the right time.|~~INTRODUCTION TO DEVICE DRIVERS6The entry point which is used for the initial call is6referred to as the STRATEGY ADDRESS. The entry point6which is used by service request section is referredto as the INTERRUPT ADDRESS.6Since the device driver becomes an permanent part of 6the operating system which can only be installed when 6the system is booted, the initialization routines are 6only called once, at the time the system is started. 6In order to conserve memory, it is common practice for 6a device driver to be written in such a manner that6the initialization code is placed at the end of the6program. This allows the driver to free this space6for other programs since it can not be called again.}SYSTEM RESOURCES - MEMORY5This screen shows information about the system memory resources. 4The USAGE area shows the total amounts of each class-of memory which is installed as well as free. 4The MANAGER STATUS area shows key information about 2each of the Memory Management modules which may be present in a system. 4In order report this information, intel-LIGENCE must5have access to a functioning Memory Manager. If none#can be found no report is possible.4This information is gained by making the documented 'calls to the available Memory Managers.SYSTEM RESOURCES€&SYSTEM RESOURCES - HARDWARE INTERRUPTS4This screen shows the status of each hardware inter-rupt in a variety of ways.6The IMR Status field shows the status of the InterruptMask Register for the channel. 7The ISR Name field shows the name of the current Inter- 3rupt Service Routine which is installed for each of the available IRQ lines. 7The STD Device field shows the name of the device which2is ordinarily assigned to the particular IRQ line.6If the ISR Name is "Generic BIOS Handler" the IRQ line5is not in use and only handles any erroneous calls. 5Only IRQs with the IMR=Enabled and ISR <> Generic are truly in use.&SYSTEM RESOURCES - HARDWARE INTERRUPTS�!SYSTEM RESOURCES - MEMORY TESTING7This screen shows the status of each page of EMS or XMS(memory which is installed in the system.7Each page is allocated, all addresses are written, read6and verified. Any errors will be reported referencing7a page number which may be mapped to a physical address 3with the assistance of the hardware documentation. 6Only memory which has a functioal manager (EMS or XMS) can be tested. 5The included XMS driver HIMEM.SYS should be installedprior to running this test.!SYSTEM RESOURCES - MEMORY TESTING‚#GENERAL SYSTEM INFORMATION - PAGE 26BIOS Type - This report is based upon the value of the6BIOS identification byte which is embedded in the ROM.4The IBM table is used to determine the machine type.6CPU Type - The CPU type is determined through testing6certain capabilities of the processor. This test does6distinguish between processors which are functionally /equivalent, like the 8086/88/V20 & 80186/88/V30 6Math Coprocessor - The system is tested for the )presence and type of a Math Coprocessor. 6DOS Version - The DOS version reported is the onepresently running the system.6Peripheral Ports - The number of Serial and Parallel6ports is the value reported by the system4configuration. I/O Base Addresses are shown as well.#GENERAL SYSTEM INFORMATION - PAGE 1GENERAL SYSTEM INFORMATIONƒ"SYSTEM MEMORY INFORMATION - PAGE 26Base Memory - This is the memory which is available to6DOS and applications. Sometimes referred to asConventional Memory.6Expanded Memory - The total number of pages, available6pages, pageframe address and the version number are 6provided by the Expanded Memory Manager(EMM). If the 6EMM is capable of performing memory aliasing, the EMS -is deemed Hardware based, otherwise Emulated. 6Extended Memory - The amount and availability of6Extended Memory is determined using the system BIOS.6The amount reported as available is not guaranteed due4to the lack of a standard memory utilization scheme.„"SYSTEM MEMORY INFORMATION - PAGE 1"SYSTEM MEMORY INFORMATION - PAGE 3 SYSTEM MEMORY„"SYSTEM MEMORY INFORMATION - PAGE 34eXtended Memory - The amount and availability of any6XMS compliant memory is determined using the XMS calls1which have been defined in the XMS specification.ƒ"SYSTEM MEMORY INFORMATION - PAGE 2 SYSTEM MEMORY…DISPLAY SUBSYSTEM - PAGE 26Current Adapter - This is the display adapter which is%producing the current screen image.6If a multimode adapter is installed the text mode will6frequently be identified as being the output of the6least capable of the "pseudo" adapters which supports 6the current text mode. For example, VGA adapters will 6generally report that the current adapter is an EGA, 2since it is not operating in a VGA exclusive mode. 6Video Memory - This value is based upon tables which6the BIOS maintains. Some adapters have additional6memory which is not apparent since the BIOS has nosupport for its use.‡DISPLAY SUBSYSTEM - PAGE 1DISPLAY MODE TABLEDISPLAY SUBSYSTEM†I/O CARD AREA - PAGE 26The contents of each range of memory is evaluated to6verify whether the address is being used by an6adapter. If any address in the range under6examination responds in a manner which implies1activity the entire range is considered "In Use". 6Most expansion cards require a range of memory 6addresses which begin at a 16K boundary. For this 6reason the primary display is generally adequate, 6however, the intel-LIGENCE memory evaluation procedure 6is very stringent and false "In Use" readings are possible.6Use the 2K resolution display to reconfirm the resultsof the 16K resolution display.ˆI/O CARD AREA - PAGE 1#I/O CARD AREA - TYPICAL USAGE CHARTI/O CARD MAPPING‡DISPLAY MODE TABLE5MODE ADAPTERS COLORS TYPE LAYOUT50 & 1 CGA/EGA/VGA/MCGA 16 ALPHA 40 x 2552 & 3 CGA/EGA/VGA/MCGA 16 ALPHA 80 x 2574 & 5 CGA/EGA/VGA/MCGA 4 GRAPH 320 x 20076 CGA/EGA/VGA/MCGA 2 GRAPH 640 x 20057 MDA/EGA/VGA/HERC MONO ALPHA 80 x 25 78 PC Jr. 16 GRAPH 160 x 200 79 PC Jr. 16 GRAPH 320 x 200 710 PC Jr. 4 GRAPH 640 x 200 11 & 12 RESERVED FOR EGA BIOS 713 EGA/VGA 16 GRAPH 320 x 200714 EGA/VGA 16 GRAPH 640 x 200715 EGA/VGA MONO GRAPH 640 x 350716 EGA/VGA 4/16 GRAPH 640 x 350717 VGA/MCGA 2 GRAPH 640 x 480718 VGA 16 GRAPH 640 x 480719 VGA/MCGA 256 GRAPH 320 x 200…DISPLAY SUBSYSTEM - PAGE 2DISPLAY SUBSYSTEMˆ#I/O CARD AREA - TYPICAL USAGE CHART6This chart shows the most common users of the I/O cardarea memory address range. )C000-C3FF - EGA BIOS - Most EGA adapters.1C000-C7FF - VGA BIOS - Super EGAs & IBM EGA also.6C800-CBFF - FIXED DISK BIOS - XT and compatibles only.3D000-DFFF - EMS PAGE FRAME - Default EMS pageframe. / - NETWORK INTERFACE CARD - ROM & RAM. 3 - HOST COMMUNICATION ADAPTERS - BIOS ROM. - - EXPANSION ROM CARTRIDGES - PC Jr. 7E000-EFFF - SUPPLEMENTAL SYSTEM ROM - AT & compatibles. , - STANDARD ROM CARTRIDGES - PC Jr.2 - SYSTEM ROM - PS/2 Models 50,60,70 & 803E000-E7FF - COPY OF C000-CFFF ROMS - 80386 systems.5E800-EFFF - ROM BASED SETUP PROGRAMS - 80386 systems.3F000-FFFF - SYSTEM ROM - PS/2 Models 50,60,70 & 80.*F600-F7FF - ROM BASIC - IBM machines only.$F800-FFFF - SYSTEM ROM - PC, XT, AT.†‰I/O CARD AREA - PAGE 2I/O CARD AREA - SPECIAL NOTESI/O CARD MAPPING‰I/O CARD AREA - SPECIAL NOTES7In many 80286 based systems the E Segment is hard wired7to the empty ROM sockets on the system board. In these7cases attempts to decode these addresses on the I/O bus7will fail. Check your system manufacturer's manuals to(see if your system has this restriction. 6Some advanced video adapters make use of addresses in 5the D Segment. intel-LIGENCE is unable to detect this 6use since it only occurs when the video adapter is in 6a control mode. Conflicts with EMS boards and drivers -are frequently generated with these adapters.5Multitasking environments like DESQview and Windows5frequently re-map system memory. intel-LEGENCE will6generate seemingly inconsistent results in some cases.ˆ#I/O CARD AREA - TYPICAL USAGE CHARTI/O CARD AREA MAPPINGŠDEVICE DRIVER CHAIN - PAGE 26ATTR - The Device Attribute - This field tells DOS the6key operating parameters of the device. Each of the616 bits in this field has a meaning. The Device6Driver Attribute Table in the Data Tables section of6intel-LIGENCE explain the meaning of each bit in the Attribute. 6STRAT - The Device Strategy Entry Point - The offset 6in the driver where execution starts when the driver is called by DOS the first time. 6INTR - The Device Interrupt Entry Point - The offset6in the driver where execution is transferred when the&device is accessed on the second call.6Load Address - The starting address in memory of the6device driver code. The base address for the STRATand INTR offsets. DEVICE DRIVER CHAIN - PAGE 1DEVICE DRIVERS‹ INTERRUPT VECTOR TABLES - PAGE 26Segment - The paragraph address which is used as a6base point for the Offset. The processor uses this6address to dispatch the requests for interrupt services.6Offset - The number of bytes from the Segment value 6which defines the address of the start of the Interrupt Service Routine. 6Normalized Address - The most significant 16 bits of 6the 20 bit absolute address of the ISR entry point.6The 32 bit address can be obtained by simply using the6rightmost digit of the Offset as the fifth digit ofthe normalized address. INTERRUPT TABLES - PAGE 1INTERRUPT VECTOR TABLESŒUSER DEFINED MENU6This menu is initialized with values found in the filenamed SLEUTH.CFG."Each entry is arranged as follows: MENU ITEM NAME  MENU INFO LINE 1  MENU INFO LINE 2  FULL PATH AND PROGRAM NAME $ PARAMETERS TO BE PASSED TO PROGRAM,Up to 6 user defined choices may be defined.4Calls may fail if a) the program file can't be found5b) there is insufficient memory or c) the path is notvalid.USER DEFINED MENUS�DUMMY HELP RECORDDUMMY HELP RECORDŽLOW LEVEL DISK DETAIL - PAGE 26Bytes Per Sector - The number of bytes which each sector can hold.6Number of FATs (File Allocation Table) - The number of copies maintained by DOS.6Number of Root Entries - The number of file or- directory entries in the root directory.6Sectors Per Cluster - The number of sectors in a 6 cluster. A cluster is the smallest amount of & space DOS can allocate to a file. 6First Directory Sector - The first disk sector (start- 6 ing at 0) which is devoted to the root directory. 6First Data Sector - The first disk sector (starting at- 0) which is devoted to file information.6Sectors Per FAT - The number of sectors used for each File Allocation Table.6Hidden Sectors - The number of sectors BEFORE the( beginning of the current partition.LOW LEVEL DISK DETAIL - PAGE 1LOW LEVEL DISK INFORMATION�DUMMY HELP RECORDDUMMY HELP RECORD�&INTRODUCTION TO HEXADECIMAL ARITHMETIC6It is well known that digital computers use a base 26(or binary) system for all internal data6representations. It therefore comes as something as a6surprise to many users that virtually all references6to internal representation in technical documents are6in base 16 (or hexadecimal). This bears some explanation. WHAT IS HEXADECIMAL ARITHMETIC? 6Hexadecimal arithmetic (or HEX) is a system which uses6sixteen characters to represent values from 0 to6decimal 16 in each column of a numeric expression.6This system allows the use of only two characters to2represent any value from decimal 0 to decimal 255.‘‘&INTRODUCTION TO HEXADECIMAL ARITHMETIC6Since our Arabic numbering system does not provide6single characters to represent values greater than 96decimal, the letters A,B,C,D,E and F are used to6represent the decimal values 10, 11, 12, 13, 14 and 15 respectively. 6In order to distinguish HEX from decimal values, the 6character H or h is usually added to the number to 6make it clear that this is a HEX value. This is 6important since the value 200H is equivalent to 512 )decimal. The difference can be dramatic.6Note that the characters H and h are NOT valid HEX3values so no confusion can arise through their use.�’’&INTRODUCTION TO HEXADECIMAL ARITHMETICWHY USE HEX ARITHMETIC?6The native binary system which computers use is very6difficult to read. Additionally, the character6representation consumes a considerable amount of5memory compared to the decimal or HEX representation. 6To demonstrate this point, consider the binary value 61010010100000. It is not immediately apparent that 6this is equivalent to the decimal value 5,280, the 6number of feet in a mile. It also requires 136characters to represent. This should be sufficient6reason for not using binary notation for humanreadable forms.‘““&INTRODUCTION TO HEXADECIMAL ARITHMETIC6While decimal notation is the most natural method of6counting for most people (Americans at least), there6is a problem when using decimal notation for values6which are rooted in binary notation. Since 10 is not6a power of two (2,4,8,16,32,64 etc.) there is no6correspondence with the binary positional relationship 6of values expressed in decimal notation. Shifting a 6decimal value one position changes the value by a factor of 10. 6In binary arithmetic a similar one position shift6results in a change by a factor of 2. HEX values can6be converted to binary notation very easily, in fact a6calculator is not required, only a table of 16 HEX to6Binary equivalents. The conversion examples, below,’””&INTRODUCTION TO HEXADECIMAL ARITHMETIC6will clearly demonstrate the superiority of HEXnotation for the work at hand.6The Intel 86 family of processors are said to be 166bit devices. This is to say that the processor6evaluates and operates on data in units of 16 bits, or two bytes. 6Using HEX notation, each byte is represented by two 6HEX characters, each character accurately representing 6the high and low four bits of each byte. An entire 166bit value can be expressed as a four digit HEX value,6whereas decimal notation would require five digits,6each of which has no correspondence to the binary components.“••&INTRODUCTION TO HEXADECIMAL ARITHMETIC6The applicability of HEX notation is even more6apparent when considering that many arithmetic6operations are performed by computers by taking6advantage of the fact that simply shifting a value to6the right or left one position will result in a change6by a factor of 2. In fact the change to the value is 62 raised to the power of the number of places shifted. 6This operation is not easily duplicated visually using decimal techniques. (CONVERTING A HEX VALUE TO A BINARY VALUE6Each hexadecimal digit represents 4 bits. It is,6therefore, possible to convert each HEX digit to its6binary equivalent and then place the resulting strings”––&INTRODUCTION TO HEXADECIMAL ARITHMETIC6of 0s and 1s side-by-side in the same order their HEX1equivalents had occupied the original expression.5The bit patterns for the 16 HEX digits is as follows:+ HEX BINARY HEX BINARY + 0h 0000b 8h 1000b + 1h 0001b 9h 1001b + 2h 0010b Ah 1010b + 3h 0011b Bh 1011b+ 4h 0100b Ch 1100b+ 5h 0101b Dh 1101b+ 6h 0110b Eh 1110b+ 7h 0111b Fh 1111b•——&INTRODUCTION TO HEXADECIMAL ARITHMETIC6Here is an example of a conversion of a word (two- byte) value:HEX value to convert : 5CA8h 5h 0101b  Ch 1100b % Ah 1010b - 8h 1000b - ============================= - 0101 1100 1010 1000b5Thus the binary equivalent of the HEX value 5CA8h is: 0101110010101000b–˜˜&INTRODUCTION TO HEXADECIMAL ARITHMETIC6Note that the binary expressions above have been6expressed with a lower case b at the end. This is6done to indicate that the expression is stated in6binary notation. This is important because a binary6expression is also valid in both decimal and6hexadecimal formats. Similarly, an H or h is appended 6to hexadecimal values. If no base indicator is 6present, the assumption is that the value is a decimal expression. )CONVERTING A HEX VALUE TO A DECIMAL VALUE6All counting systems (with the exception of the Roman6numeral system) share an important characteristic.—™™&INTRODUCTION TO HEXADECIMAL ARITHMETIC6The actual value of a given digit is equal to the6simple digit value multiplied by the base of the6numbering system raised to the n-1th power, where n is6equal to the number of places to the left of the6decimal point occupied by the digit whose actual value6is being evaluated. The following decimal system $example will clarify this principle: 6The decimal value 28,473 can be thought of as being %composed of the following components: 2 * 10,000 8 * 1,000 4 * 100 7 * 10 3 * 1˜šš&INTRODUCTION TO HEXADECIMAL ARITHMETIC6The actual value of the 2 in this expression can be+represented through the following equation:0X = digit * base^(places from decimal point - 1)6Replacing the symbols with the real values in our *example results in the following equation:  X = 2 * 10^(5-1) 6Since 10^(4) is equal to 10,000 this method of%evaluating decimal expressions works.6Note: Any number raised to the power of 0 is equal to1.™››&INTRODUCTION TO HEXADECIMAL ARITHMETIC6When using decimal arithmetic it is not necessary to6perform these calculations since we have committed to6memory the values implied by the position of a givendigit.6The key to understanding non-decimal counting systems 6is to realize that the equation works for all bases by 6simply replacing the base value (10 in our example) 'with the base of the system being used. 6To convert HEX expressions to their decimal equivalent.requires application of the following formula:-X = digit * 16^(places from decimal point- 1)šœœ&INTRODUCTION TO HEXADECIMAL ARITHMETIC6Rather than solve this equation for each HEX number we6need to convert it is simpler to use a table of base6position values then use decimal multiplication and#addition to perform the conversion.*POSITION DECIMAL BASE VALUE ( 1 1 ( 2 16 ( 3 256 ( 4 4,096( 5 65,536( 6 1,048,576( 7 16,777,216( 8 268,435,456( 9 4,294,967,296›��&INTRODUCTION TO HEXADECIMAL ARITHMETIC6Using this table we can see that the HEX value 1AE3B9h6can be converted to decimal form by the followingsteps:( 1 * 1,048,576 = 1,048,576 +( 10 * 65,536 = 655,360 + ( 14 * 4,096 = 57,344 + ( 3 * 256 = 768 + ( 11 * 16 = 176 + ( 9 * 1 = 9 + ( 1,762,233 =6Note: Remember to convert the HEX digits A,B,C,D,E and6F to their decimal equivalents 10,11,12,13,14 and 15%before performing the multiplication.œžDUMMY HELP RECORDDUMMY HELP RECORDŸDUMMY HELP RECORDDUMMY HELP RECORD DUMMY HELP RECORDDUMMY HELP RECORD¡DUMMY HELP RECORDDUMMY HELP RECORD¢DUMMY HELP RECORDDUMMY HELP RECORD£DUMMY HELP RECORDDUMMY HELP RECORD¤DUMMY HELP RECORDDUMMY HELP RECORD¥DUMMY HELP RECORDDUMMY HELP RECORD¦DUMMY HELP RECORDDUMMY HELP RECORD§DUMMY HELP RECORDDUMMY HELP RECORD¨DUMMY HELP RECORDDUMMY HELP RECORD©DUMMY HELP RECORDDUMMY HELP RECORDªDUMMY HELP RECORDDUMMY HELP RECORD«DUMMY HELP RECORDDUMMY HELP RECORD¬DUMMY HELP RECORDDUMMY HELP RECORD­DUMMY HELP RECORDDUMMY HELP RECORD®DUMMY HELP RECORDDUMMY HELP RECORD¯DUMMY HELP RECORDDUMMY HELP RECORD°*INTERRUPT VECTOR USAGE-INTRODUCTION PAGE 1WARNING:6Information regarding Interrupt Services which are6marked as "UNDOCUMENTED" is based upon the best6available information. Due to the undocumented nature6of these services, this information may be either&incomplete or, in some cases, invalid. 6This information is provided to assist intel-LIGENCE 6users in determining the source of system configuration conflicts.WHAT IS THIS LIST?6This list is a summarized version of the tables which6are found in a variety of technical publications.6These services are those which are used by the&operating system and its applications.±±,INTERRUPT VECTOR USAGE - INTRODUCTION PAGE 2WHAT IS IT GOOD FOR?6Since configuration conflicts will manifest themselves6in a few specific ways like distorted displays,6inaccessible disk drives or keyboard anomalies, it is6frequently possible to determine which programs are6conflicting if the applicable interrupt numbers are known. 6This table is the road map which will guide the user 6through the intel-LIGENCE TSR map. In addition, use 6of this table will allow you to see exactly how a TSR6gains control of the system, even if it does so6without apparent invocation by the user (there are!several ways for this to happen).°²²,INTERRUPT VECTOR USAGE - INTRODUCTION PAGE 3WHAT THIS TABLE ISN'T!6This table is not intended as a replacement for the6standard Technical Reference Manuals published by6Microsoft, IBM and others for the purpose of6programming. This table does not provide sufficient6information about the expected input register values 6and the returned structures which is necessary for programming. TABLE FORMAT0These tables are arranged in a series of fields.)Field 1 : Interrupt Number in hexadecimal%Field 2 : Default source of Interrupt Field 3 : Description of Service6Notes on the usage and origin of each interrupt followthe table entry.±³³%INTERRUPT VECTOR USAGE - TABLE PAGE 1# Origin Description(0 CPU Divide by zero error6Called by CPU itself when either DOS or an application6attempts to perform a division by zero. This6operation, if executed, would result in an infinite 6loop since division by zero has an indeterminate 6result. Generally results in a fatal error which ends 6an application or, in the case of DOS, requires that the system be restarted.+1 CPU Execute one instruction6Called by the CPU if the Trace Flag is set. Used by&DEBUG to trace execution of a program.²´´%INTERRUPT VECTOR USAGE - TABLE PAGE 2*2 CPU Non-Maskable Interrupt6Generated by hardware. Allows absolutely critical6events to gain control of the system. Usually causes6system to halt and force a cold restart in the event6of an unrecoverable error such as memory parity6failures. Used by the Math Coprocessor to signal that %it requires the processors attention. "3 CPU Set Breakpoint 6Used by DEBUG and similar programs to signal that a1predefined point in the program has been reached.'4 CPU Arithmetic overflow6Generated to signal that an error occurred during anarithmetic operation.³µµ%INTERRUPT VECTOR USAGE - TABLE PAGE 3+5 KBD PrintScreen key pressed6Usually causes contents of screen to be sent to thefirst parallel printer.,5 CPU Boundary limits exceeded 680186 /286/386 only. Indicates that the BOUND 6instruction found that the tested value was not within the defined range. )6 CPU Undefined instruction680286/386 only. Called when an undefined instruction6opcode is encountered. Used by advanced operating6systems (OS/2 and UNIX) to handle task errors gracefully.´¶¶%INTERRUPT VECTOR USAGE - TABLE PAGE 4'7 CPU No Math Coprocessor680286/386 only. Called when a NPX related instruction6cannot be executed. Used by advanced operating6systems (OS/2 and UNIX) to handle task errors gracefully. -8-F PIC Revectored Hardware Lines 7Software interrupt linkage to the 8 hardware interrupts 7generated by the 8259 Programmable Interrupt Controller&INT# IRQ# DEFAULT ASSIGNMENT 8 0 System Timer'9 1 Keyboard ControllerA 2 I/O Channel7B 3 COM1 - Serial Port (COM 2 on PC/AT) (Chart continues on next screen)µ··%INTERRUPT VECTOR USAGE - TABLE PAGE 57C 4 COM2 - Serial Port (COM 1 on PC/AT).D 5 Fixed Disk (LPT2 on PC/AT)'E 6 Diskette Controller+F 7 LPT1 - Parallel Printer6NOTE: In addition to these uses, interrupts 8-E are6also used by the 80286/386 for special purposes when &executing in virtual (protected) mode. "10 BIOS Video Services 6The BIOS provides considerable video services, ranging6from setting the video mode to loading alternate6character sets. In addition, EGA, VGA and most other6specialized display adapters provide extensions tothese services.¶¸¸%INTERRUPT VECTOR USAGE - TABLE PAGE 6"11 BIOS Equipment List6This interrupt causes the BIOS to report the system6configuration, to the best of its ability. The6information is gathered from either switch settings or3from data stored in the Real Time Clock of a PC/AT. 12 BIOS Memory Size 6This interrupt reports the number of 1K blocks of *contiguous memory installed in the system.!13 BIOS Disk Services6This interrupt provides all the BIOS Disk Services6such as Read, Write, Verify and Format sectors. All6the BIOS services are primitive but very fast. DOSuses these functions also.·¹¹%INTERRUPT VECTOR USAGE - TABLE PAGE 7(14 BIOS Serial Port Services6Primitive serial device functions. The only provided6services are Initialize UART, Transmit Character,6Receive Character and UART Status. These services do6not permit maximum utilization of the UART (Universal6Asynchronous Receive & Transmit) and are therefore 6generally bypassed in favor of direct control of the *UART for improved speed and functionality. *15 BIOS Cassette Port Services6IBM PC-1, PC-2 & PC Jr. only. Primitive control ofCassette Port. - OBSOLETE¸ºº%INTERRUPT VECTOR USAGE - TABLE PAGE 8,15 BIOS BIOS System Services6Advanced system support functions like Extended Memory6size and access, various system status functions. In6PS/2 systems, INT 15 is used to access the POS6(Programmable Option Select) registers located on each 6option adapter. Also used internally by DOS to access /a wide range of undocumented system functions. (15 TOPVIEW & DESQVIEW FUNCTIONS6A wide range of services are provided by these1operating environments through an INT 15 handler.¹»»%INTERRUPT VECTOR USAGE - TABLE PAGE 9%16 BIOS Keyboard Services6BIOS level keyboard services. Well behaved TSRs use6this chain to this function to watch the incoming6keyboard stream for their activation keys. Virtually6all TSRs will trap this interrupt as well as INT 9 the"hardware level keyboard interface. $17 BIOS Printer Services 6Provides basic parallel printer functions. May be 6monitored by some TSRs to see if the printer is inuse.)18 BIOS Transfer to ROM Basic6IBM systems only. Transfers control to ROM Basic(also called Cassette Basic).º¼¼&INTERRUPT VECTOR USAGE - TABLE PAGE 10)19 BIOS Boot System from Disk6Reboots system from disk. Frequently trapped by TSRs6so they may perform some housekeeping prior to asoftware generated system boot. (1A BIOS Time & Date Services 6Provides access to time and date as stored in memory 'or Real Time Clock if one is installed.&1B BIOS Control-Break Flag6Provides BIOS level access to Control-Break detection.-Used by DOS for Control-C checking functions.»½½&INTERRUPT VECTOR USAGE - TABLE PAGE 111C BIOS Timer Tick6Provides clean interface to timer tick (18.2 ticks per6second). Well behaved TSRs which need to be called on6a regular basis will use this interrupt. Since there6is no control over how long an ISR takes to return6control to the chain this function is of little use if 6timing is important. For this reason, most TSRs which 6need a regular interval will trap the hardware level timer tick INT 8. )1D BIOS Video Parameter TableTHIS IS NOT AN INTERRUPT.6The BIOS uses this Interrupt Vector Table entry to6store a pointer (the starting address) to a table.containing several important video parameters.¼¾¾&INTERRUPT VECTOR USAGE - TABLE PAGE 12(1E BIOS Disk Parameter TableTHIS IS NOT AN INTERRUPT6The BIOS uses this Interrupt Vector Table entry to6store a pointer to a table which contains severalimportant disk parameters )1F BIOS Character Definitions THIS IS NOT AN INTERRUPT6The BIOS uses this Interrupt Vector Table entry to6store a pointer to a table in memory which contains6the bitmap definitions of the upper 128 characters in6the IBM PC character set when the display is operatingin a graphics mode.½¿¿&INTERRUPT VECTOR USAGE - TABLE PAGE 13'20 DOS Terminate Program6This interrupt may be used to terminate a program.6Microsoft has declared it obsolete in favor of the6Terminate Program Function of INT 21H. Note, however,6that even if that service is used DOS actually uses (this interrupt to terminate the program. &21 DOS General Services 6This interrupt is the primary interface to the DOS6services. The DOS services provide an extensive set6of services for the programmer. These services can be6slow, therefore, many programmers access the BIOSservices directly.¾ÀÀ&INTERRUPT VECTOR USAGE - TABLE PAGE 14/22 DOS Program Terminate AddressTHIS IS NOT AN INTERRUPT.6DOS uses this entry in the Interrupt Vector Table to6store a pointer to the routine which should be6executed when a program requests that it be terminated. 023 DOS Ctrl-Break Handler Address THIS IS NOT AN INTERRUPT6DOS uses this entry in the Interrupt Vector Table to6store a pointer to the routine which should be6executed when the hardware keyboard controller detects3that either Ctrl-C or Ctrl-Break has been pressed.¿ÁÁ&INTERRUPT VECTOR USAGE - TABLE PAGE 15424 DOS Critical Error Handler AddressTHIS IS NOT AN INTERRUPT6DOS uses this entry in the Interrupt Vector Table to6store a pointer to the routine which should be6executed when a Critical Error has occurred. An 6example of a critical error is an unreadable disk error. (25 DOS Absolute Disk Read6This interrupt is a remapped version of the INT 136Read Sector command with the limitation that it is6only able to access sectors within a DOS disk partition.ÀÃÂ&INTERRUPT VECTOR USAGE - TABLE PAGE 16)26 DOS Absolute Disk Write6This interrupt is a remapped version of the INT 136Write Sector command with the limitation that it is6only able to access sectors within a DOS disk partition. -27 DOS Terminate Stay Resident 6This is the interrupt which terminates a program's6execution but does not reallocate the memory which the6program occupied prior to termination. Microsoft has6declared this interrupt to be obsolete in favor of asimilar DOS function.ÁÃÃ&INTERRUPT VECTOR USAGE - TABLE PAGE 17(28 DOS Keyboard Busy Loop UNDOCUMENTED6This secret interrupt is used to determine whether it6is safe to use one of the DOS General Service Disk6Functions. This is important because of certain6limitation inherent in DOS. This interrupt is hooked 6by virtually all TSRs which make use of the disk 6drive. Due to its undocumented nature, this interrupt (may be suspected when a conflict arises. "29 DOS Fast Putchar UNDOCUMENTED6Another secret interrupt which programmers love to6use. This one accelerates the performance of the DOS6output functions if the output device meets certain criteria.ÂÄÄ&INTERRUPT VECTOR USAGE - TABLE PAGE 18!2A DOS MS-NetworksPARTIALLY UNDOCUMENTED+Provides low-level network support to DOS.'2B-2D DOS Internal Routines UNDOCUMENTED 6Little is known about these interrupts, therefore 5their use by any TSR should be viewed with suspicion.%2E DOS Execute Command UNDOCUMENTED6Used by the command interpreter COMMAND.COM to execute6programs. This interrupt is hooked by the DOS 4.0SHELL program.ÃÅÅ&INTERRUPT VECTOR USAGE - TABLE PAGE 19!2F DOS MultiplexerPARTIALLY UNDOCUMENTED6This interrupt started as a DOS internal function used6primarily for the PRINT program. Beginning with DOS63.0 its functions were documented for the print6spooling function. With each succeeding version of 6DOS more of its functions have been documented. Since 6one of its functions is to provide a decoding and 6switching executive for applications it can present 6difficulties if a program was designed using 6assumptions about the function prior to formal(definition (documentation by Microsoft).6At this writing, INT 2F 's use is documented for use6by SHARE, APPEND, PRINT and ASSIGN. It is most likely6that the interrupt is also used by several other TSRtype DOS commands.ÄÆÆ&INTERRUPT VECTOR USAGE - TABLE PAGE 20"30-31 DOS INTERNAL USE UNDOCUMENTEDTHIS IS NOT AN INTERRUPT6These location in the Interrupt Vector Table are used 6to store the hexadecimal values which represent the 6opcodes for a FAR JMP command to the processor. This 6instruction is maintained only to retain compatibility 6with DOS 1 which had vestiges of CP/M support to ease 6the movement of existing software to the then newoperating system.32 UNUSEDÅÇÇ&INTERRUPT VECTOR USAGE - TABLE PAGE 21%33 MICROSOFT MOUSE6This interrupt provides a full range of device6independent support for any mouse driver which6responds in a manner compatible with the MicrosoftMouse. "34-3E UNDOCUMENTED 6These interrupts are used by programs compiled using a 4variety of Microsoft and Borland language compilers.%3F OVERLAY MANAGER UNDOCUMENTED6This interrupt is used to call the overlay manager6which is included in programs linked to use thisfeature.ÆÈÈ&INTERRUPT VECTOR USAGE - TABLE PAGE 22,40 BIOS Diskette Drive Handler DOS INTERNAL6This interrupt is used by the diskette drive services6if a hard disk controller is installed. Relocated from INT 13. -41 BIOS Fixed Disk Parms-Disk 0 THIS IS NOT AN INTERRUPT.6This location in the Interrupt Vector Table is used to6store a pointer to the current table of parameters for-the first fixed disk installed in the system.ÇÉÉ&INTERRUPT VECTOR USAGE - TABLE PAGE 23+42 BIOS EGA/VGA Video Handler DOS INTERNAL6This interrupt is used by the Video ISR if an EGA or7VGA has installed extended code. Relocated from INT 10. -43 BIOS EGA/VGA Parameter Table THIS IS NOT AN INTERRUPT. 6This location in the Interrupt Vector Table is used to6store a pointer to a table of parameters which the EGA,and VGA use to establish modes of operation.ÈÊÊ&INTERRUPT VECTOR USAGE - TABLE PAGE 24)44 BIOS EGA/VGA Font Tables DOS INTERNALTHIS IS NOT AN INTERRUPT.6This location in the Interrupt Vector Table is used to 6store a pointer to a table of bitmaps for alternate display fonts. -46 BIOS Fixed Disk Parms-Disk 1REFER TO INT 42 .ÉËË&INTERRUPT VECTOR USAGE - TABLE PAGE 25,48-49 BIOS PC Jr. Keyboard TablesTHIS IS NOT AN INTERRUPT.6This location in the Interrupt Vector Table is used to6store a pointer to a table of translation values forhandling the PC Jr. keyboard. )4A BIOS Alarm, Exit Address 6Used by programs which use the alarm functions of the AT Real Time Clock. 4F BIOS IBM Speech Interface+Used to access the IBM Voice Option Adapter50 BIOS AT AlarmÊÌÌ&INTERRUPT VECTOR USAGE - TABLE PAGE 26,50-57 DESQVIEW Revectored IRQ 0-7, 3278 EMULATOR Revectored IRQ 0-7(5A-5C PC Cluster Adapter6Used by some network adapters. 5C is NETBIOS entry point. %5C TOPS TOPS Interface. 7The TOPS software uses this interrupt as an entry point#to its ROM and TSR based interface.(67 EMS Function Interrupt5This is the standard EMS function umbrella interrupt.ËÍÍ&INTERRUPT VECTOR TABLE USAGE - PAGE 27(67 VCPI Function Interrupt4This is the Virtual Control Program Interface access interrupt. (68 APPC/PC Function Interrupt 2This is the Advanced Program-Program Communication program access interrupt. ,6F 10-NET File Sharing Interface# NOVELL PCOX 3270 API* HP ES-12 Extended BIOS Access5This interrupt is used by various hardware & software'vendors to access proprietary hardware.ÌÎÎ&INTERRUPT VECTOR USAGE - TABLE PAGE 28-70-77 PIC Vectored Hardware Lines6These interrupts correspond to the 8 hardware6interrupts and are called by the second 82596Programmable Interrupt Controller found in 80286 and7386 systems. Used by software which monitor the hard-6ware interrupts. i.e. Interrupt driven communications. (INT# IRQ# DEFAULT ASSIGNMENT %70 8 Real Time Clock )71 9 Redirected to IRQ 2 72 A Reserved73 B Reserved74 C Reserved&75 D Math Coprocessor+76 E Fixed Disk Controller77 F ReservedÍÏÏ&INTERRUPT VECTOR USAGE - TABLE PAGE 29!7A NOVELL Netware API. AUTOCAD AutoCAD Device Interface!7B NOVELL BTrieve API17F VIDEO 8514/A Video Controller API 07F 3270 EMULATOR High Level Language API (80-85 Reserved for BASIC 6These interrupts are reserved for use by BASIC andBASICA for internal uses.86-F0 BASICUsed by BASIC.ÎåÐ(PROTOTYPE I/O PORT MAP FOR IBM PC AND XT1000-F DMA CONTROLLER 020-F INT CONTROLLER(040-F TIMER 050-F TIMER5060-F PARALLEL PORT 080-F DMA PAGE REGISTERS4090-F DMA PAGE REGISTERS 0A0-F NMI MASK REGISTER1200-F GAME I/O ADAPTER 210-F EXPANSION UNIT0270-F PARALLEL PRINTER 2 2B0-F ALTERNATE EGA 72C0-F ALTERNATE EGA 2D0-F ALTERNATE EGA - 3270 12F0-F SERIAL PORT 2 300-F PROTOTYPE CARD 5310-F PROTOTYPE CARD 320-F FIXED DISK ADAPTER 5330-F XT/370 370-F PARALLEL PRINTER 1 ,380-F SDLC OR BISYNC #2 3A0-F BISYNC #1.3B0-F MONO DISPLAY ADAPTER 3C0-F EGA ADAPTER73D0-F CGA ADAPTER 3F0-F FDC - SERIAL PORT #1ÑPC/AT PORT MAPÑ$PROTOTYPE I/O PORT MAP FOR IBM PC/AT3000-F DMA CONTROLLER 020-F INT CONTROLLER 1(030-F INT CONTROLLER 1 040-F TIMER+050-F TIMER 060-F KEYBOARD5070-F REAL TIME CLOCK-NMI 080-F DMA PAGE REGISTERS3090-F DMA PAGE REGISTERS 0A0-F INT CONTROLLER 230B0-F INT CONTROLLER 2 0C0-F DMA CONTROLLER 230D0-F DMA CONTROLLER 2 0F0-F MATH COPROCESSOR 31F0-F FIXED DISK 200-F GAME I/O ADAPTER 0270-F PARALLEL PRINTER 2 2B0-F ALTERNATE EGA 02C0-F ALTERNATE EGA 2D0-F ALTERNATE EGA 12E0-F DATA ACQUISITION GPIB 2F0-F SERIAL PORT 2 1300-F PROTOTYPE CARD 310-F PROTOTYPE CARD5360-F PC NETWORK 370-F PARALLEL PRINTER 12380-F SDLC OR BISYNC #2 390-F CLUSTER ADAPTER73A0-F BISYNC # 1 3B0-F MONO DISPLAY ADAPTER.3C0-F EGA ADAPTER 3D0-F CGA ADAPTER3F0-F FDC - SERIAL PORT #1ÐÒPC & PC/XT PORT MAP PS/2 PORT MAPÒ+PROTOTYPE I/O PORT MAP FOR IBM PS/2 SYSTEMS1000-F DMA CONTROLLER 010-F DMA CONTROLLER0020-F INT CONTROLLER 1 040-F SYSTEM TIMERS6060-F KEYBOARD 070-F REAL TIME CLOCK-NMI.080-F DMA PAGE REGISTERS 090-F I/O CHANNEL30A0-F INT CONTROLLER 2 0C0-F DMA CONTROLLER 230D0-F DMA CONTROLLER 2 0F0-F MATH COPROCESSOR5100-F PROG. OPTION SELECT 270-F PARALLEL PRINTER 3 52F0-F SERIAL PORT 2 370-F PARALLEL PRINTER 2 23B0-F VIDEO - PARALLEL 1 3C0-F VIDEO SUBSYSTEM 73D0-F VIDEO SUBSYSTEM 3F0-F FDC - SERIAL PORT #1ÑÓ"I/O CARD AREA - MEMORY USAGE CHARTPC/AT PORT MAPÓ#I/O CARD AREA - TYPICAL USAGE CHARTADDRESS TYPICAL USERANGE)C000-C3FF - EGA BIOS - Most EGA adapters.1C000-C7FF - VGA BIOS - Super EGAs & IBM EGA also.6C800-CBFF - FIXED DISK BIOS - XT and compatibles only.3D000-DFFF - EMS PAGE FRAME - Default EMS pageframe. / - NETWORK INTERFACE CARD - ROM & RAM. 3 - HOST COMMUNICATION ADAPTERS - BIOS ROM. - - EXPANSION ROM CARTRIDGES - PC Jr. 7E000-EFFF - SUPPLEMENTAL SYSTEM ROM - AT & compatibles. , - STANDARD ROM CARTRIDGES - PC Jr.2 - SYSTEM ROM - PS/2 Models 50,60,70 & 803E000-E7FF - COPY OF C000-CFFF ROMS - 80386 systems.5E800-EFFF - ROM BASED SETUP PROGRAMS - 80386 systems.3F000-FFFF - SYSTEM ROM - PS/2 Models 50,60,70 & 80.*F600-F7FF - ROM BASIC - IBM machines only.$F800-FFFF - SYSTEM ROM - PC, XT, AT.Ò×I/O PORT MAP - PS/2I/O CARD AREA - SPECIAL NOTESÔ#DEVICE DRIVER ATTRIBUTE WORD VALUES6The Device Driver Attribute Word is located in the6header of the device driver. This 16 bit value is a6bit field, each bit having a significance of its own.6Note that some of the bits have very different0meanings when applied to different device types. 6The bits are numbered from Least Significant Bit to 7Most Significant Bit with the low bit being numbered 0. . BIT # MEANING IF SET TO 1"15 This is a Character device#14 Device supports I/O ControlÕÕ#DEVICE DRIVER ATTRIBUTE WORD VALUES313 Block Device - Device uses a non-IBM format2 Character device - Output Til Busy Command available12 Undefined 611 Device Open/Close/Removable Media is supported 10 Undefined 9 Undefined 8 Undefined7 Undefined66 Driver supports Get/Set Logical Device command5 UndefinedÔÖÖ#DEVICE DRIVER ATTRIBUTE WORD VALUES14 Driver implements a Fast Putchar function(3 Driver implements a CLOCK device(2 Driver implements the NUL device 41 Driver implements the Standard Output Device 20 Character - Driver implements the Standard  Input Device 3 Block - Driver supports Generic I/O Control,NOTE: All "Undefined" bits MUST be set to 0.6The Device Driver Tutorial Contains an extensive6explanation of each of the bits in the Device(Attribute and Device Drivers in general.Õ×I/O CARD AREA - SPECIAL NOTES7In many 80286 based systems the E Segment is hard wired7to the empty ROM sockets on the system board. In these7cases attempts to decode these addresses on the I/O bus7will fail. Check your system manufacturer's manuals to(see if your system has this restriction. 6Some advanced video adapters make use of addresses in 5the D Segment. intel-LIGENCE is unable to detect this 6use since it only occurs when the video adapter is in 6a control mode. Conflicts with EMS boards and drivers -are frequently generated with these adapters.5Multitasking environments like DESQview and Windows5frequently re-map system memory. intel-LEGENCE will6generate seemingly inconsistent results in some cases.Ó#I/O CARD AREA - TYPICAL USAGE CHARTØ PC - PC/XT SYSTEM BOARD SWITCHES6The switches on the motherboard of an IBM PC aredefined as follows: SW 1 BIT 06This bit set ON indicates the presence of one or more!diskette drives. See bits 6 & 7. SW 1 BIT 1 ,Set to ON if a Math Coprocessor is installed SW 1 BIT 2 & 36The number of 16K banks of memory installed in the6system. Applies only to the PC-1 and PC Jr. If used6the value is zero based so OFF OFF indicates one bank.ÙÙ PC - PC/XT SYSTEM BOARD SWITCHESSW 1 BIT 4 & 5The start-up video mode. OFF OFF = 80 x 25 EGA OFF ON = 40 x 25 CGA ON OFF = 80 x 25 CGA ON ON = 80 x 25 MONO SW 1 BIT 6 & 7 6The number of diskette drives installed if BIT 0 = ON. This value is zero based. OFF OFF = 1 Drive OFF ON = 2 Drives ON OFF = 3 Drives ON ON = 4 DrivesØÚÚ PC - PC/XT SYSTEM BOARD SWITCHESSWITCH 2 BIT 06Set to ON if a DMA device is installed. Applies to PC Jr. Only.SWITCH 2 BIT 1 - 3/The number of RS-232 Serial Adapters installed.  OFF OFF OFF = 0 ports  OFF OFF ON = 1 port  OFF ON OFF = 2 ports  OFF ON ON = 3 ports  ON OFF OFF = 4 ports ON OFF ON = 5 ports ON ON OFF = 6 ports ON ON ON = 7 ports SW 2 BIT 4'Set to ON if a Game Adapter is present.ÙÛÛ PC - PC/XT SYSTEM BOARD SWITCHES SW 2 BIT 56Set to ON if modem is installed. Applies to IBM PCConvertible only.SW 2 BIT 6 & 72The number of Parallel Printer Adapters installed. & OFF OFF = No Parallel Adapters & OFF ON = One Parallel Adapter ' ON OFF = Two Parallel Adapters ) ON ON = Three Parallel AdaptersÚÜ#ASCII - DECIMAL - HEXADECIMAL CHART3 ASCII DECIMAL HEX ASCII DECIMAL HEX2 0 0 € 128 802  1 1 � 129 812  2 2 ‚ 130 822  3 3 ƒ 131 832  4 4 „ 132 842  5 5 … 133 85 2  6 6 † 134 86 2 BEL 7 7 ‡ 135 87 2 BS 8 8 ˆ 136 88 2 TAB 9 9 ‰ 137 89 2 CR 10 A Š 138 8A2 11 B ‹ 139 8B2 FF 12 C Œ 140 8C2 LF 13 D � 141 8D2  14 E Ž 142 8E2  15 F � 143 8F2  16 10 � 144 90ÝÝ#ASCII - DECIMAL - HEXADECIMAL CHART3 ASCII DECIMAL HEX ASCII DECIMAL HEX2  17 11 ‘ 145 912  18 12 ’ 146 922  19 13 “ 147 932  20 14 ” 148 942  21 15 • 149 952  22 16 – 150 96 2  23 17 — 151 97 2  24 18 ˜ 152 98 2  25 19 ™ 153 99 2 EOF 26 1A š 154 9A 2  27 1B › 155 9B2  28 1C œ 156 9C2  29 1D � 157 9D2  30 1E ž 158 9E2 31 1F Ÿ 159 9F2 32 20   160 A02 ! 33 21 ¡ 161 A1ÜÞÞ#ASCII - DECIMAL - HEXADECIMAL CHART3 ASCII DECIMAL HEX ASCII DECIMAL HEX2 " 34 22 ¢ 162 A22 # 35 23 £ 163 A32 $ 36 24 ¤ 164 A42 % 37 25 ¥ 165 A52 & 38 26 ¦ 166 A62 ' 39 27 § 167 A7 2 ( 40 28 ¨ 168 A8 2 ) 41 29 © 169 A9 2 * 42 2A ª 170 AA 2 + 43 2B « 171 AB 2 , 44 2C ¬ 172 AC2 - 45 2D ­ 173 AD2 . 46 2E ® 174 AE2 / 47 2F ¯ 175 AF2 0 48 30 ° 176 B02 1 49 31 ± 177 B12 2 50 32 ² 178 B2Ýßß#ASCII - DECIMAL - HEXADECIMAL CHART3 ASCII DECIMAL HEX ASCII DECIMAL HEX2 3 51 33 ³ 179 B32 4 52 34 ´ 180 B42 5 53 35 µ 181 B52 6 54 36 ¶ 182 B62 7 55 37 · 183 B72 8 56 38 ¸ 184 B8 2 9 57 39 ¹ 185 B9 2 : 58 3A º 186 BA 2 ; 59 3B » 187 BB 2 < 60 3C ¼ 188 BC 2 = 61 3D ½ 189 BD2 > 62 3E ¾ 190 BE2 ? 63 3F ¿ 191 BF2 @ 64 40 À 192 C02 A 65 41 Á 193 C12 B 66 42  194 C22 C 67 43 à 195 C3Þàà#ASCII - DECIMAL - HEXADECIMAL CHART3 ASCII DECIMAL HEX ASCII DECIMAL HEX2 D 68 44 Ä 196 C42 E 69 45 Å 197 C52 F 70 46 Æ 198 C62 G 71 47 Ç 199 C72 H 72 48 È 200 C82 I 73 49 É 201 C9 2 J 74 4A Ê 202 CA 2 K 75 4B Ë 203 CB 2 L 76 4C Ì 204 CC 2 M 77 4D Í 205 CD 2 N 78 4E Î 206 CE2 O 79 4F Ï 207 CF2 P 80 50 Ð 208 D02 Q 81 51 Ñ 209 D12 R 82 52 Ò 210 D22 S 83 53 Ó 211 D32 T 84 54 Ô 212 D4ßáá#ASCII - DECIMAL - HEXADECIMAL CHART3 ASCII DECIMAL HEX ASCII DECIMAL HEX2 U 85 55 Õ 213 D52 V 86 56 Ö 214 D62 W 87 57 × 215 D72 X 88 58 Ø 216 D82 Y 89 59 Ù 217 D92 Z 90 5A Ú 218 DA 2 [ 91 5B Û 219 DB 2 \ 92 5C Ü 220 DC 2 ] 93 5D Ý 221 DD 2 ^ 94 5E Þ 222 DE 2 _ 95 5F ß 223 DF2 ` 96 60 à 224 E02 a 97 61 á 225 E12 b 98 62 â 226 E22 c 99 63 ã 227 E32 d 100 64 ä 228 E42 e 101 65 å 229 E5àââ#ASCII - DECIMAL - HEXADECIMAL CHART3 ASCII DECIMAL HEX ASCII DECIMAL HEX2 f 102 66 æ 230 E62 g 103 67 ç 231 E72 h 104 68 è 232 E82 i 105 69 é 233 E92 j 106 6A ê 234 EA2 k 107 6B ë 235 EB 2 l 108 6C ì 236 EC 2 m 109 6D í 237 ED 2 n 110 6E î 238 EE 2 o 111 6F ï 239 EF 2 p 112 70 ð 240 F02 q 113 71 ñ 241 F12 r 114 72 ò 242 F22 s 115 73 ó 243 F32 t 116 74 ô 244 F42 u 117 75 õ 245 F52 v 118 76 ö 246 F6áãã#ASCII - DECIMAL - HEXADECIMAL CHART3 ASCII DECIMAL HEX ASCII DECIMAL HEX2 w 119 77 ÷ 247 F72 x 120 78 ø 248 F82 y 121 79 ù 249 F92 z 122 7A ú 250 FA2 { 123 7B û 251 FB2 | 124 7C ü 252 FC 2 } 125 7D ý 253 FD 2 ~ 126 7E þ 254 FE 2  127 7F 255 FFâääDISPLAY MODES 4MODE ADAPTERS COLORS TYPE LAYOUT50 & 1 CGA/EGA/VGA/MCGA 16 ALPHA 40 x 2552 & 3 CGA/EGA/VGA/MCGA 16 ALPHA 80 x 2574 & 5 CGA/EGA/VGA/MCGA 4 GRAPH 320 x 20076 CGA/EGA/VGA/MCGA 2 GRAPH 640 x 20057 MDA/EGA/VGA/HERC MONO ALPHA 80 x 25 78 PC Jr. 16 GRAPH 160 x 200 79 PC Jr. 16 GRAPH 320 x 200 710 PC Jr. 4 GRAPH 640 x 200 11 & 12 RESERVED FOR EGA BIOS 713 EGA/VGA 16 GRAPH 320 x 200714 EGA/VGA 16 GRAPH 640 x 200715 EGA/VGA MONO GRAPH 640 x 350716 EGA/VGA 4/16 GRAPH 640 x 350717 VGA/MCGA 2 GRAPH 640 x 480718 VGA 16 GRAPH 640 x 480719 VGA/MCGA 256 GRAPH 320 x 200ãå&INTERRUPT VECTOR USAGE - TABLE PAGE 30-86 Relocated INT 18 Vector6Used by NETBIOS to store old contents of INT 18 (Load ROM BASIC). EF GEM Programming Interface#F1-FF User Programs 6These interrupts are reserved for the use of transient 6programs. (FE & FF destroyed by protected mode in AT.)ÏæDUMMY HELP RECORDDUMMY HELP RECORDçDUMMY HELP RECORDDUMMY HELP RECORDèDUMMY HELP RECORDDUMMY HELP RECORDéDUMMY HELP RECORDDUMMY HELP RECORDêDUMMY HELP RECORDDUMMY HELP RECORDëDUMMY HELP RECORDDUMMY HELP RECORDìDUMMY HELP RECORDDUMMY HELP RECORDíDUMMY HELP RECORDDUMMY HELP RECORDîDUMMY HELP RECORDDUMMY HELP RECORDïDUMMY HELP RECORDDUMMY HELP RECORDðDUMMY HELP RECORDDUMMY HELP RECORDñDUMMY HELP RECORDDUMMY HELP RECORDòDUMMY HELP RECORDDUMMY HELP RECORDóDUMMY HELP RECORDDUMMY HELP RECORDôDUMMY HELP RECORDDUMMY HELP RECORDõDUMMY HELP RECORDDUMMY HELP RECORDöDUMMY HELP RECORDDUMMY HELP RECORD÷DUMMY HELP RECORDDUMMY HELP RECORDøDUMMY HELP RECORDDUMMY HELP RECORDùDUMMY HELP RECORDDUMMY HELP RECORDúDUMMY HELP RECORDDUMMY HELP RECORDûDUMMY HELP RECORDDUMMY HELP RECORDüDUMMY HELP RECORDDUMMY HELP RECORDýDUMMY HELP RECORDDUMMY HELP RECORDþ HELP INDEX, 1. Main Menu 19. Report Options- 2. General Information 20. System Overview. 3. I/O Ports 21. Boot Time Status3 4. Memory Information 22. System Board Switches# 5. TSR Mapping TUTORIALS+ 6. Device Drivers 23. System Basics, 7. Interrupt Tables 24. Memory Systems . 8. View Memory 25. Segmented Memory 5 9. Display Information 26. Non-Decimal Mathematics .10. VGA Information 27. Interrupt System ,11. Disk Information 28. Device Drivers *12. Parition Tables 29. TSR Programs%13. Low Level Disk Info DATA TABLES/14. Disk Statistics 30. Interrupt Vectors315. Bad Track Map 31. System Board Switches716. Examine File 32. I/O Port and Memory Usage/17. I/O Card Area Info 33. Device Attributes418. I/O Card Area Detail 34. ASCII and Video Modes ÿDUMMY HELP RECORDDUMMY HELP RECORD