Sei sulla pagina 1di 24

DOS Function Index - Quick Reference Subset

All DOS Fns File/GetInfo Service Groups DOS Interrupts 00H Terminate 01H Kybd Input 02H Display Char File 05H Prn Output 06H Console I/O Strategy 07H NoEcho RawInp 08H NoEcho Inp File 09H Display Text 0aH Bufrd Input 0bH Get InpStatus 0cH Clear & Input Redirect 0dH Reset Disk Fns 0eH Set Dflt Disk 19H Get Dflt Disk Data 1aH Set DTA File 25H Set INT Vector 3cH Create File 2aH 2bH 2cH 2dH 2eH 2fH Get Set Get Set Set Get Sys Date Sys Date Sys Time Sys Time Verify DTA 3dH 3eH 3fH 40H 41H 42H Open File Close File Read File Write File Delete File Move File Ptr 4eH Find 4fH 50H 51H 52H 54H 56H Find Next File Set Cur PSP Get Cur PSP List Of Lists Get Verify Rename/Move

30H Get Version 31H TSR

43H File Attrib 44H IOCTL

57H Time/Date File 58H MemAlloc 59H Get Err Info 5aH Create Uniq 5bH 5cH 5eH 5fH Create New File Lock File Network Misc Network

32H Get DPB 45H Dup Handle 3300H Get BreakLvl 46H Redir Handle 3301H Set BreakLvl 3305H Get Boot Drv 34H Get InDOS 35H Get INT Vector 47H 48H 49H 4aH Get Mem Mem Mem Dflt Dir Alloc Free Resize

36H Disk Size/Free 4bH Exec 39H MkDir 3aH RmDir 3bH ChDir -*-

65H National Lang

4cH Terminate 67H Set Handle Cnt 4dH Get Exit Code 68H Commit File 6cH Open/Create

System Service Groups


Character I/O Device Drivers Directory and File Display Disk Drives File I/O File I/O via FCB Memory Management Miscellaneous National Language Support Network and File-Sharing Printer Process Control System Information TSR/Popup Functions DOS Function Lists Quick Reference Subset Complete list, by Fn Number 2.0+ Fns, by Version Superseded DOS Functions DOS Interrupts

DOS & BIOS Data Structures


About Structures DOS - File System DOS - Other Dblspace/MRCI BPB: BIOS Parameter Block ListOfLists (undoc'ed) CVF Layout CDS: Current Directories MCB: Memory Control BlockMDBPB DPB: Drive Parameter Block PSP: Prgrm Segment PrefixBitFAT DTA: Disk Transfer Address MDFAT FAT: File Allocation Table Environment Layout BootSect FCB: File Control Block Predefined E-vars FAT RootDir AbsDiskIORec ExecParamRec Sector Heap Boot Sector Layout ExecStateRec "MD Stamps" Directory Entry Layout ExecOverlayRec Disk Partition Table ExecLoadRec Mapping FAT>MDFAT Extended DOS Partition EXE File Header DBLSPACE.INI FileInfoRec Media Descriptor Error Codes ErrorMode MRCInfoRec ErrorInfoRec InDOS Flag MRCRequestRec File Access Mode File Attribute BIOS - General File Handle BIOS Data Area CMOS Memory File Time/Date Format General Memory Map Equipment List ROM-Scan Switch Settings Device Drivers & IOCTL Device Header Layout BIOS - Video Device Attribute Video Modes SVGA Video Modes

Device Request Header Video Attributes SVGA Info Block Device Status Word Video Font Definition SVGA Mode Info Video Memory Layouts IOCTL Device Info Color Table IoctlDriveInfoRec IoctlHandleInfoRec EGA/VGA Data Areas VgaDynamicStateRec EgaDynamicSaveRec Generic IOCTL Data Packets VgaStaticFnalityRec EgaGfxFontRec IoctlCpIdRec VgaDccRec EgaMiscInfoRec IoctlCpListRec VgaFlagsRec EgaSavePtrRec IoctlCpPrepRec VgaPaletteProfileRec EgaTxtFontRec IoctlDisplayModeRec VgaSavePtr2Rec EgaVidParmsRec IoctlDeviceParmsRec IoctlFmtVrfyTrackRec VidInitRec IoctlMediaIdRec IoctlRdWrtTrackRec BIOS - Keyboard TrackLayoutRec Extended ASCII Keystrokes ASCII Table Keyboard Scan Codes Control Codes CLOCK$ I/O Structure Shift-Key Status Flags National Language BIOS - Disk Country Codes Diskette Parameter Table Master Boot Record Code Page Hard Disk Parameter Table Hard Disk Types Code Page Font Files Country ID Codes Error Codes Country Info Block APM API Error Codes DPMI Error Codes

Extended Country Info BIOS COM status codes EMM Status BIOS disk error codes MRCI Error Codes DOS Shell/Task Switcher BIOS Printer Status Flags XMS Error Codes SwApiInfoRec Device Driver Errors SwCallbackInfoRec DOS Error Codes POST Error Codes SwStartupInfoRec DoubleSpace Error Codes SwInstanceItemRec SwVersionRec See Also: BIOS Data Area General Memory Map Cables and Pin Outs General Index -*-

DOS, BIOS & Extensions Service Index


This is the complete, combined list of DOS functions and BIOS interrupts and common DOS extension services covered by TECH Help! These are listed by interrupt number, then sub-function number. For more manageable chunks, see: API Index ........ Individual APIs listed separately Service Groups ... Indexes with functions grouped by category TECH Topics ...... Often used topics, plus API overviews and articles General Index .... Lots of ways to find stuff DOS Fns QuickRef by Number by DOS Version Obsolete Fns DOS Interrupts Interrupts and BIOS Services INT 00H: Division Overflow INT 01H: Single-Step Interrupt INT 02H: Non-Maskable Interrupt INT 03H: Breakpoint Interrupt INT 04H: Overflow Interrupt INT 05H: Print Screen / Bounds Exception INT 06H: Invalid Opcode INT 07H: Math Coprocessor Not Present INT 08H: Timer Interrupt INT 09H: Keyboard Interrupt INT 0aH: IRQ 2 Cascade / Invalid Task State INT 0bH: IRQ 3 COM2/4 / Segment Not Present INT 0cH: IRQ 4 COM1/3 / Stack Overflow INT 0dH: IRQ 5 LPT2 / General Protection Fault INT 0eH: Diskette Interrupt / Page Fault INT 0fH: IRQ 7 LPT1 INT 10H: Video Services

INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT

10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H 10H

00H: Set Video Mode 01H: Set Cursor Shape & Size 02H: Set Cursor Position 03H: Query Cursor Position and Size 04H: Query Light Pen 05H: Select Video Page 06H: Scroll Up / Clear Screen Rectangle 07H: Scroll Down / Clear Screen Rectangle 08H: Read Character/Attribute at Cursor Location 09H: Write Character/Attribute to Cursor Location 0aH: Write Character to Cursor Location 0bH: Select Graphics Palette or Text Border Color 0cH: Write Graphics Pixel 0dH: Read Graphics Pixel 0eH: Write Character as TTY 0fH: Query Current Video Info 13H: AT/EGA/VGA String Display Functions 1300H: Display String 1301H: Display String and Update Cursor 1302H: Display Character/Attribute Cells 1303H: Display Char/Attr Cells & Update Cursor 10H: EGA/VGA Palette Functions 1000H: Set One Palette Register 1001H: Set Overscan/Border Color Register 1002H: Set All Palette Registers and Overscan 1003H: Select Foreground Blink or Bold Background 1007H: Read One Palette Register 1008H: Read Overscan Register 1009H: Read All Palette Registers 1010H: Set One DAC Color Register 1012H: Set a Block of DAC Color Register 1013H: DAC Color Paging Functions 1015H: Read One DAC Color Register 1017H: Read a Block of DAC Color Registers 101aH: Query DAC Color Paging State 101bH: Convert DAC Colors to Gray-Scale Values 11H: EGA/VGA Character Generator Functions 1100H: Load User-Defined Font 1101H: Load ROM 8x14 Character Set 1102H: Load ROM 8x8 Character Set 1103H: Activate Font Block 1104H: Load ROM 8x16 Character Set 1110H: Load and Activate User-Defined Font 1111H: Load and Activate ROM 8x14 Character Set 1112H: Load and Activate ROM 8x8 Character Set 1114H: Load and activate ROM 8x16 Character Set 1120H: Setup INT 1fH Vector 1121H: Setup User-Defined Font for Graphics Mode 1122H: Setup ROM 8x14 Font for Graphics Mode 1123H: Setup ROM 8x8 Font for Graphics Mode 1124H: Setup ROM 8x16 Font for Graphics Mode 1130H: Get Current Character Generator Info 12H: EGA/VGA Special Functions/Alternate Select 12H BL=10H: Get EGA information 12H BL=20H: Select Alternate Print Screen Handler 12H BL=30H: Select Scan Lines for Text Modes 12H BL=31H: Palette Loading on Mode Set 12H BL=32H: Enable/Disable Video RAM & I/O Ports 12H BL=33H: Enable/Disable Gray-Scale Summing 12H BL=34H: Cursor Emulation (Scaling) 12H BL=35H: Switch PS/2 Displays

INT 10H 12H BL=36H: Enable/Disable Screen Refresh INT 10H 1aH: Set or Query Display Combination Code INT 10H 1bH: Get VGA Functionality and State Info INT 10H 1cH: VGA State Save/Restore Functions INT 10H 1c00H: VGA Query Size of State-Save Buffer INT 10H 1c01H: VGA Save Video State INT 10H 1c02H: VGA Restore Video State VESA/SVGA BIOS Functions INT 10H 4f00H - Query SuperVGA Support INT 10H 4f01H - Query SuperVGA Mode Information INT 10H 4f02H - Set SuperVGA Video Mode INT 10H 4f03H - Query Current SuperVGA Video Mode INT 10H 4f04H - Save/Restore SuperVGA State INT 10H 4f05H - Query/Set SuperVGA Video Memory Window INT 11H: Equipment Check INT 12H: Conventional Memory Size INT 13H: BIOS Disk I/O INT 13H 00H: Reset Drive INT 13H 01H: Query Disk Error Status INT 13H 02H: Read Sectors INT 13H 03H: Write Sectors INT 13H 04H: Verify Sectors INT 13H 05H: Format Track INT 13H 08H: Get Drive Parameters INT 13H 09H: Initialize Drive Parameter Table INT 13H 0aH: Read Sector Plus ECC INT 13H 0bH: Write Sector Plus ECC INT 13H 0cH: Seek Cylinder INT 13H 0dH: Alternate Reset Drive INT 13H 10H: Test Drive Ready INT 13H 11H: Recalibrate Drive INT 13H 14H: Controller Self-Test INT 13H 15H: Get Diskette Type or Check Hard Drive Installed INT 13H 16H: Detect Media Change INT 13H 17H: Set Media Transfer Rate INT 13H 18H: Set Media Type for Format INT 14H: Serial Port I/O INT 14H 00H: Initialize Asynchronous Communication Port INT 14H 01H: Send a Character INT 14H 02H: Receive a Character INT 14H 03H: Query Serial Port Status INT 15H: AT Extended Services / APM INT 15H 4fH: Keyboard Intercept INT 15H 80H: Device Open INT 15H 81H: Device Close INT 15H 82H: Program Termination INT 15H 8300H: Set Event Wait Interval INT 15H 8301H: Cancel Event Wait Interval INT 15H 84H: Joystick Support INT 15H 85H: SysReq Key INT 15H 86H: Wait INT 15H 87H: Move Memory Block INT 15H 88H: Get Extended Memory Size INT 15H 89H: Switch to Protected mode INT 15H 90H: Device Busy

INT 15H 91H: Interrupt Finished INT 15H c0H: Get System Parameters Power Management API INT 15H 5300H: Installation Check INT 15H 5301H: Interface Connect INT 15H 5302H: Interface Connect (Prot. Mode/16-bit) INT 15H 5303H: Interface Connect (Prot. Mode/32-bit) INT 15H 5304H: Interface Disconnect INT 15H 5305H: CPU Idle INT 15H 5306H: CPU Busy INT 15H 5307H: Set Power State INT 15H 5308H: Enable/Disable Power Management INT 15H 5309H: Restore System-BIOS Power-On Defaults INT 15H 530aH: Query Power Status INT 15H 530bH: Get Power Management Event INT 16H: Keyboard Services INT 16H 00H: Read (Wait for) Next Keystroke INT 16H 01H: Query Keyboard Status / Preview Key INT 16H 02H: Query Keyboard Shift Status INT 16H 03H: Set Keyboard Typematic Rate and Delay INT 16H 05H: Store Keystroke Data INT 16H 10H: Read Extended Keyboard Input INT 16H 11H: Query Extended Keyboard Status / Preview Key INT 16H 12H: Query Extended Keyboard Shift Status INT 17H: Printer Support INT 17H 00H: Print One Character INT 17H 01H: Initialize Printer Port INT 17H 02H: Query Printer Status INT 18H: ROM-BASIC INT 19H: Bootstrap Loader INT 1aH: Timer I/O (and MRCI POST Hook) INT 1aH 00H: Read System Clock (Ticks) INT 1aH 01H: Set System Clock (Ticks) INT 1aH 02H: Read Time from Real-Time Clock INT 1aH 03H: Set Time on Real-Time Clock INT 1aH 04H: Read Date from Real-Time Clock INT 1aH 05H: Set Date on Real-Time Clock INT 1aH 06H: Set Real-Time Clock Alarm INT 1aH 07H: Cancel Real-Time Clock Alarm INT 1aH b001H: Query ROM/Hardware-Based MRCI Support INT INT INT INT INT 1bH: 1cH: 1dH: 1eH: 1fH: Keyboard Break User Timer Interrupt Video Initialization Table Pointer Diskette Parameter Pointer CGA Graphics Character Font Pointer

INT 20H: Program Terminate INT 21H: DOS Functions DOS Fn 00H: Terminate a Program DOS Fns 01H-0cH: Low-level I/O DOS Fn 01H: Keyboard Input DOS Fn 02H: Display Output

DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS

Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn

03H: Auxiliary Input 04H: Auxiliary Output 05H: Printer Output 06H: Console I/O 07H: No Echo Unfiltered Console Input 08H: No Echo Console Input 09H: Display String 0aH: Buffered String Input 0bH: Check Input Status 0cH: Clear & Input 0dH: Reset Disk 0eH: Select DOS Default Disk 0fH: Open File via FCB 10H: Close File via FCB 11H: Find 1st Matching File via FCB 12H: Find Next Matching File via FCB 13H: Delete File via FCB 14H: Read Sequential File via FCB 15H: Write Sequential File via FCB 16H: Create File via FCB 17H: Rename File via FCB 19H: Query DOS Default Disk 1aH: Set Disk Transfer Address (DTA) 1bH: Get Drive Info (current disk) 1cH: Get Drive Info (any disk) 1fH: Get Drive Parameter Block (current disk) 21H: Read Random File Record 22H: Write Random File Record 23H: Query File Size via FCB 24H: Set Random File Block Address 25H: Set Interrupt Vector 26H: Create Program Segment Prefix 27H: Read Random File Block 28H: Write Random File Block 29H: Parse Filename 2aH: Query DOS Date 2bH: Set DOS Date 2cH: Query DOS Time 2dH: Set DOS Time 2eH: Set/Reset Verify Switch 2fH: Query Disk Transfer Address (DTA) 30H: Get DOS Version Number 31H: Terminate & Stay Resident 32H: Get DPB (Drive Parameter Block) 33H: Set/Query Break-check; Query DOS Info 3300H: Query Break-Check Flag 3301H: Set Break-check level 3305H: Get Boot Drive 3306H: Get DOS Version Info 34H: Get InDOS Address (DOS Reentrancy Status) 35H: Get Interrupt Vector 36H: Get Disk Free Space 37H: Set or Query Switch Character 3700H: Query Switchar 3701H: Set Switchar 38H: Get/Set Country-dependent Info 39H: Create a New Directory -- MKDIR 3aH: Delete a Directory -- RMDIR 3bH: Set DOS Default Directory -- CHDIR 3cH: Create a File via Handle 3dH: Open a File via Handle

DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS

Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn

DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS

Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn Fn

3eH: Close a File Handle 3fH: Read from File via Handle 40H: Write to File via Handle 41H: Delete File 42H: Set File Pointer 43H: Set or Query File attributes 4300H: Query File Attribute 4301H: Set File Attribute 44H: Device I/O Control -- IOCTL 4400H: IOCTL Query Device/File Flags 4401H: IOCTL Set Device/File Flags 4402H: IOCTL Receive Control Data from Char Device 4403H: IOCTL Send Control Data to Character Device 4404H: IOCTL Receive Control Data from Block Device DoubleSpace IOCTL fn 'F': Flush DoubleSpace Cache DoubleSpace IOCTL fn 'I': Flush and Invalidate Cache DoubleSpace IOCTL fn 'S': Get DriveSpace Pointers 4405H: IOCTL Send Control Data to Block Device 4406H: IOCTL Query Handle Input Status 4407H: IOCTL Query Handle Output Status 4408H: IOCTL Does Drive Use Removable Media 4409H: IOCTL Is Drive Remote or SUBST 440aH: IOCTL Is File/Device Remote 440bH: IOCTL Set Sharing Retry Count 440cH: Generic I/O Control -- Character Devices 440cH CL=45H: IOCTL Set Retry Iteration Count 440cH CL=4AH: IOCTL Select Code Page 440cH CL=4CH: IOCTL Start Code Page Prepare 440cH CL=4DH: IOCTL End Code Page Prepare 440cH CL=5Fh: IOCTL Set Display Mode 440cH CL=65H: IOCTL Query Retry Iteration Count 440cH CL=6AH: IOCTL Query Current Code Page 440cH CL=6BH: IOCTL Query Code Page List 440cH CL=7Fh: IOCTL Query Display Mode 440dH: Generic I/O Control -- Block Devices 440dH CL=40H: IOCTL Set Device Parameters 440dH CL=41H: IOCTL Write Track on Logical Drive 440dH CL=42H: IOCTL Format Track on Logical Drive 440dH CL=46H: IOCTL Set Media ID 440dH CL=47H: IOCTL Set Access Flag 440dH CL=60H: IOCTL Query Device Parameters 440dH CL=61H: IOCTL Read Track on Logical Drive 440dH CL=62H: IOCTL Verify Track on Logical Drive 440dH CL=66H: IOCTL Query Media ID 440dH CL=67H: IOCTL Query Access Flag 440dH CL=68H: IOCTL Sense Media Type 440eH: IOCTL Query Logical Drive Map 440fH: IOCTL Set Logical Drive Map 4410H: IOCTL Query IOCTL Support for Handle 4411H: IOCTL Query IOCTL Support for Device 45H: Duplicate a File Handle 46H: Redirect a Handle 47H: Query Default Directory 48H: Allocate Memory / Query Free Memory 49H: Free Allocated Memory Block 4aH: Shrink or Expand a Memory Block 4bH: Load or Execute a program 4b00H: Execute a Program 4b01H: Load Program 4b03H: Load Overlay 4b05H: Set Execution State

DOS Fn 4cH: Terminate Program DOS Fn 4dH: Get Program Exit Code DOS Fn 4eH: Find 1st Matching File DOS Fn 4fH: Find Next Matching File DOS Fn 50H: Set PSP DOS Fn 51H: Query Current PSP DOS Fn 52H: Get DOS Variables DOS Fn 53H: Convert BPB to DPB DOS Fn 54H: Get DOS Verify State DOS Fn 56H: Rename/Move a File DOS Fn 57H: Set or Query File Time/Date DOS Fn 5700H: Query File Time/Date DOS Fn 5701H: Set File Time/Date DOS Fn 58H: Set or Query Memory Allocation Options DOS Fn 5800H: Query Memory Allocation Strategy DOS Fn 5801H: Set Memory Allocation Strategy DOS Fn 5802H: Query Upper-Memory Link State DOS Fn 5803H: Set Upper-Memory Link State DOS Fn 59H: Get Extended Error Info DOS Fn 5aH: Create Unique Temporary File DOS Fn 5bH: Create New File DOS Fn 5cH: Lock/Unlock File Access DOS Fn 5c00H: Lock File Access DOS Fn 5c01H: Unlock File Access DOS Fn 5d0aH: Set Extended Error DOS Fn 5eH: Network Miscellaneous DOS Fn 5e00H: Query Network Node Name DOS Fn 5e02H: Set Network Printer Setup DOS Fn 5e03H: Query Network Printer Setup DOS Fn 5fH: Network Device Redirection DOS Fn 5f02H: Network Query Assign-List Entry DOS Fn 5f03H: Make Network Connection DOS Fn 5f04H: Delete Network Connection DOS Fn 60H: Query TrueName DOS Fn 62H: Query Current PSP DOS Fn 65H: Extended Country Information Functions DOS Fn 6501H: Get Extended Country Information DOS Fn 6504H: Get Uppercase Table DOS Fn 6505H: Get Filename Character Table DOS Fn 6506H: Get Collating Sequence Table DOS Fn 6507H: Get Double-Byte Character Set DOS Fn 6520H: Upshift Character DOS Fn 6521H: Upshift String DOS Fn 6522H: Upshift ASCIIZ String DOS Fn 66H: Set or Query Active Code Page DOS Fn 6601H: Query Active Code Page DOS Fn 6602H: Activate Code Page DOS Fn 67H: Set File Handle Count DOS Fn 68H: Commit File DOS Fn 6cH: Extended Open/Create Device Driver Requests Device Request 00H: Initialize device Device Request 01H: Media Check Device Request 02H: Build BPB Device Request 03H: IOCTL Input Device Request 04H: Input (Read Data from Device) Device Request 05H: Non-destructive Input Device Request 06H: Input Status Device Request 07H: Input Flush Device Request 08H: Output (Write Data to Device)

Device Device Device Device Device Device Device Device Device Device Device Device

Request Request Request Request Request Request Request Request Request Request Request Request

09H: 0aH: 0bH: 0cH: 0dH: 0eH: 0fH: 10H: 13H: 17H: 18H: 19H:

Output (Write/Verify Data to Device) Output Status Output Flush IOCTL Output Device Open Device Close Removable Media Output Until Busy Generic IOCTL Request Get Logical Device Set Logical Device IOCTL Support Query

INT 22H: Terminate Address INT 23H: Ctrl-Break Exit Address INT 24H: Critical Error Handler INT 25H/26H: Absolute Disk Read/Write INT 27H: Terminate but Stay Resident INT 28H: DOS Idle INT 29H: Fast PUTCHAR INT 2aH: Microsoft Network Services INT 2eH: Perform DOS Command INT 2fH: Multiplex Interrupt INT 2fH 01xxH: DOS Print Spooler Functions INT 2fH 0100H: Is Print.Exe Installed? INT 2fH 0101H: Submit File to Spooler INT 2fH 0102H: Remove File from Print Queue INT 2fH 0103H: Cancel All Files INT 2fH 0104H: Hold All Jobs and Get Status INT 2fH 0105H: Resume Printing INT 2fH 0106H: Get Printer Device Driver Header INT 2fH 0600H: Is Assign.Com Installed? INT 2fH 1000H: Is Share.Exe Installed? INT 2fH 1100H: Is Network Support Installed? INT 2fH 1400H: Is Nlsfunc.Exe Installed? INT 2fH 15xxH: Mscdex CD-ROM Functions INT 2fH 1500H: Is MSCDEX Installed?/Count Drive Letters INT 2fH 150dH: Query CD-ROM Drive Letters INT 2fH 16xxH: Enh386 Windows Services & Notifications INT 2fH 1600H: Is Enh386 Windows Installed? INT 2fH 1602H: Get Enh386 Windows Entry-Point Address INT 2fH 1605H: Windows Is About to Startup INT 2fH 1606H: Windows Is About to Terminate INT 2fH 1607H: Device Call Out INT 2fH 1608H: Windows Initialization is Complete INT 2fH 1609H: Windows is Terminating INT 2fH 1680H: Program Idle (Release Timeslice) INT 2fH 1681H: Begin Critical Section INT 2fH 1682H: End Critical Section INT 2fH 1683H: Get Current Virtual Machine ID INT 2fH 1684H: Get Device Entry-Point Address (for VxDs) INT 2fH 1685H: Switch VMs and CallBack INT 2fH 1686H: Detect INT 31h DPMI Services (see also: INT 31H, below)

INT 2fH 1687H: Get Real-to-Protected Mode Switch Address INT 2fH 168AH: Get Vendor-Specific DPMI API Entry Address

(see INT 31H) (see INT 31H)

INT 2fH 17xxH: Windows Clipboard Functions INT 2fH 1700H: Is Clipboard Available? INT 2fH 1701H: Get Access to Clipboard INT 2fH 1702H: Discard Clipboard Contents INT 2fH 1703H: Put Data into the Clipboard INT 2fH 1704H: Query Size of Clipboard Data INT 2fH 1705H: Copy Clipboard Data to Buffer INT 2fH 1708H: Release Control of the Clipboard INT 2fH 1709H: See if Data Will Fit in Clipboard INT 2fH 170aH: Obtain Device Capabilities INT 2fH 1a00H: Is ANSI.SYS Installed? INT 2fH 40xxH: Virtual Display Driver Functions INT 2fH 4000H: Enable VM-Assisted Video Save/Restore INT 2fH 4001H: Notify Background Switch INT 2fH 4002H: Notify Foreground Switch INT 2fH 4003H: Enter Critical Section INT 2fH 4004H: Exit Critical Section INT 2fH 4005H: Save Video Register State INT 2fH 4006H: Restore Video Register State INT 2fH 4007H: Disable VM-Assisted Video Save/Restore XMS Functions INT 2fH 4300H: Is HIMEM.SYS (XMS Support) Installed? INT 2fH 4310H: Get HIMEM.SYS (XMM) Entry Address XMS 00H: Get XMS Version Number XMS 01H: Request High Memory Area XMS 02H: Release High Memory Area XMS 03H: Global Enable A20 XMS 04H: Global Disable A20 XMS 05H: Local Enable A20 XMS 06H: Local Disable A20 XMS 07H: Query A20 State XMS 08H: Query Free Extended Memory XMS 09H: Allocate Extended Memory Block XMS 0aH: Free Extended Memory Block XMS 0bH: Move Extended Memory Block XMS 0cH: Lock Extended Memory Block XMS 0dH: Unlock Extended Memory Block XMS 0eH: Get Handle Information XMS 0fH: Resize Extended Memory Block XMS 10H: Request Upper Memory Block XMS 11H: Release Upper Memory Block INT 2fH 48xxH: DOSKEY.COM Functions INT 2fH 4800H: Is DOSKEY.COM Installed? INT 2fH 4810H: Get Keyboard Input with Doskey Editing INT 2fH 4axxH: HMA Suballocations INT 2fH 4a01H: Query HMA Free Space and Address INT 2fH 4a02H: Suballocate HMA Memory

Microsoft Real-time Compression Interface (MRCI) INT 2fH 4a12H: Get MRCI Installed State and Entry Address MRCI Fn 0001H: Compress Data MRCI Fn 0002H: Decompress Data MRCI Fn 0020H: Incrementally Decompress Data MRCI Fn ffffH: Deinstall Server INT 2fH 4a11H: DoubleSpace API Services INT 2fH 4a11H BX=0000H: Get Dblspace Version & Drives INT 2fH 4a11H BX=0001H: Get Dblspace Drive Mapping INT 2fH 4a11H BX=0002H: Dblspace Swap Drive INT 2fH 4a11H BX=0005H: Mount Dblspace Drive INT 2fH 4a11H BX=0006H: Unmount Dblspace Drive INT 2fH 4a11H BX=0007H: Get Dblspace Disk Size / Free Space INT 2fH 4a11H BX=0008H: Get CVF Fragmentation Info INT 2fH 4a11H BX=0009H: Get Count of DISK_UNIT Structures INT 2fH 4a11H BX=000aH: Set Automount Drives INT 2fH 4a11H BX=000bH: Query Automount Drives Switcher API INT 2fH 4BxxH: Task Switcher Functions INT 2fH 4B01H: Build Notification Chain INT 2fH 4B02H: Is Switcher Installed? / Get Service Addr INT 2fH 4B03H: Allocate Switcher ID INT 2fH 4B04H: Free Switcher ID INT 2fH 4B05H: Identify Instance Data SwNtfy Fn 0000H: A Switcher Is Being Initialized SwNtfy Fn 0001H: Can Switcher Suspend Your Session? SwNtfy Fn 0002H: Switcher Is Suspending Your Session SwNtfy Fn 0003H: Switcher Is Activating Your Session SwNtfy Fn 0004H: Session Is Now Active SwNtfy Fn 0005H: Switcher Is Creating a Session SwNtfy Fn 0006H: Switcher Is Destroying a Session SwNtfy Fn 0007H: Switcher Is Exiting SwSrvc Fn 0000H: Get Switcher Version SwSrvc Fn 0001H: Test Memory Region SwSrvc Fn 0002H: Suspend Switcher SwSrvc Fn 0003H: Resume Switcher SwSrvc Fn 0004H: Hook Notification Chain SwSrvc Fn 0005H: Unhook Notification Chain SwSrvc Fn 0006H: Query API Support INT 2fH adxxH: KEYB.COM Functions INT 2fH ad80H: Is KEYB.COM Installed? / Get Version INT 2fH ad81H: Set KEYB.COM Active Code Page INT 2fH ad82H: Set KEYB.COM Country Flag INT 2fH ad83H: Query KEYB.COM Country Flag INT 2fH aexxH: Command Processor Command-Line Hook INT 2fH ae00H: Notify Pending Command INT 2fH ae01H: Process Hooked Command INT 2fH b000H: Is GRAFTABL.COM Installed?

INT 2fH b7xxH: APPEND.EXE Functions INT 2fH b700H: Is APPEND.EXE Installed? INT 2fH b702H: Get APPEND.EXE Version INT 2fH b704H: Get APPEND.EXE Path String INT 2fH b706H: Query APPEND.EXE Option Settings INT 2fH b707H: Set APPEND.EXE Options / Disable APPEND INT 2fH b711H: Set APPEND.EXE Truename Flag INT 2fH xxfbH: FaxBIOS Functions DPMI Services INT 2fH 1687H: Get Real-to-Protected Mode Switch Address INT 2fH 168AH: Get Vendor-Specific DPMI API Entry Address INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 31H 0000H: 0001H: 0002H: 0003H: 0006H: 0007H: 0008H: 0009H: 000aH: 000bH: 000cH: 000dH: 000eH: 000fH: 0100H: 0101H: 0102H: 0200H: 0201H: 0202H: 0203H: 0204H: 0205H: 0210H: 0211H: 0212H: 0213H: 0300H: 0301H: 0302H: 0303H: 0304H: 0305H: 0306H: 0400H: 0401H: 0500H: 0501H: 0502H: 0503H: 0504H: 0505H: 0506H: 0507H: 0508H: 0509H: Allocate LDT Descriptors Free LDT Descriptor Segment to Descriptor Query Selector Increment Value Query Segment Base Address Set Segment Base Address Set Segment Limit Set Descriptor Access Rights Create Alias Descriptor Query Descriptor Set Descriptor Allocate Specific Descriptor Query Multiple Descriptors Set Multiple Descriptors Allocate DOS Memory Block Free DOS Memory Block Resize DOS Memory Block Query Real-mode Interrupt Vector Set Real-mode Interrupt Vector Query Processor Exception Handler Vector Set Processor Exception Handler Vector Query Protected-Mode Interrupt Vector Set Protected-mode Interrupt Vector Query Exception Handler Vector (Prot. Mode) Query Exception Handler Vector (Real Mode) Set Exception Handler Vector (Prot. Mode) Set Exception Handler Vector (Real Mode) Simulate Real Mode Interrupt Simulate Real Mode FAR CALL Simulate Real Mode CALL for IRET Allocate Real-mode Callback Address Free Real-mode Callback Address Query State Save/Restore Addresses Query Raw Mode-Switch Address Query DPMI Version Query DPMI Capabilities Query Free Memory Information Allocate Memory Block Free Memory Block Resize Memory Block Allocate Linear Memory Block Resize Linear Memory Block Query Page Attributes Set Page Attributes Map Device in Memory Block Map Conventional Memory in Memory Block

INT 31H 050aH: Query Memory Block Size and Base INT 31H 050bH: Query Memory Information INT 31H 0600H: Lock Linear Region INT 31H 0601H: Unlock Linear Region INT 31H 0602H: Mark Real-Mode Region as Pageable INT 31H 0603H: Relock Real-Mode Region INT 31H 0604H: Query Page Size INT 31H 0700H: Mark Page as Demand-Paging Candidate INT 31H 0701H: Discard Page Contents INT 31H 0800H: Physical Address Mapping INT 31H 0801H: Free Physical Address Mapping INT 31H 0900H: Query and Disable Virtual Interrupt State INT 31H 0901H: Query and Disable Virtual Interrupt State INT 31H 0902H: Query Virtual Interrupt State INT 31H 0a00H: Get Vendor-Specific API Entry Address INT 31H 0b00H: Set Debug Watchpoint INT 31H 0b01H: Clear Debug Watchpoint INT 31H 0b02H: Query State of Debug Watchpoint INT 31H 0b03H: Reset Debug Watchpoint INT 31H 0c00H: Setup DPMI TSR Callback INT 31H 0c01H: Protected-Mode Terminate and Stay Resident INT 31H 0d00H: Allocate Shared Memory INT 31H 0d01H: Free Shared Memory INT 31H 0d02H: Serialize on Shared Memory INT 31H 0d03H: Free Serialization on Shared Memory INT 31H 0e00H: Query Coprocessor Status INT 31H 0e01H: Set Coprocessor Emulation INT 33H: Mouse Support INT 33H 0000H: Reset/Query Installed State INT 33H 0001H: Show Mouse Pointer INT 33H 0002H: Hide Mouse Pointer INT 33H 0003H: Query Position / Button Status INT 33H 0004H: Set Mouse Pointer Position INT 33H 0005H: Query Button-Pressed Counter INT 33H 0006H: Query Button-Released Counter INT 33H 0007H: Set Horizontal Range INT 33H 0008H: Set Vertical Range INT 33H 0009H: Set Graphics Pointer Shape INT 33H 000aH: Set Text Pointer Mask INT 33H 000bH: Query Motion Distance INT 33H 000cH: Set Mouse Event Handler INT 33H 000dH: Enable Lightpen Emulation INT 33H 000eH: Disable Lightpen Emulation INT 33H 000fH: Set Pointer Speed INT 33H 0010H: Set Exclusion Area INT 33H 0013H: Set Speed-Doubling Threshold INT 33H 0014H: Exchange Mouse Event Handler INT 33H 0015H: Query Size of Mouse Status Buffer INT 33H 0016H: Save Mouse Status INT 33H 0017H: Restore Mouse Status INT 33H 0018H: Set Alternate Event Handler INT 33H 0019H: Query User Alternate Event Handler INT 33H 001aH: Set Mouse Sensitivity INT 33H 001bH: Query Mouse Sensitivity INT 33H 001cH: Set Inport Mouse Interrupt Rate INT 33H 001dH: Set Mouse Display Page INT 33H 001eH: Query Mouse Display Page INT 33H 001fH: Deactivate Mouse Driver INT 33H 0020H: Reenable Mouse Driver INT 33H 0021H: Reset Mouse Driver

INT 33H 0024H: Query Mouse Type/Driver Version/IRQ# INT 40H: Diskette BIOS Revector INT 41H and INT 46H: Hard Disk Parameter Pointers INT 43H: EGA/VGA Graphics Character Font Pointer INT 4aH: User Alarm Handler EMM Functions INT 67H 4000H: Get EMM Status INT 67H 4100H: Get Frame Segment Address INT 67H 4200H: Get EMS Memory Total / Available INT 67H 4300H: Open EMM Handle and Allocate Memory INT 67H 44xxH: Map Memory into Page Frame INT 67H 4500H: Close EMM Handle and Free Memory INT 67H 4600H: Get EMM Version Number INT 67H 4700H: Save Mapping Context INT 67H 4800H: Restore Mapping Context INT 67H 4b00H: Count Handle's Pages INT 67H 4c00H: Count Active Handles INT 67H 4d00H: Get Page Information For All Handles INT 67H 4exxH: Get/Set Entire Page Map INT 67H 4fxxH: Get/Set Partial Page Map INT 67H 50xxH: Map/Unmap Multiple Pages INT 67H 5100H: Resize EMS Handle INT 67H 52xxH: Get/Set Handle Attribute INT 67H 53xxH: Get/Set Handle Name INT 67H 54xxH: Find Named Handle INT 67H 55xxH: Alter Page Map and JMP INT 67H 56xxH: Alter Page Map and CALL INT 67H 57xxH: Move/Exchange Memory INT 67H 58xxH: Get Mappable Physical Address Array INT 67H 59xxH: Get Hardware Configuration INT 67H 5axxH: Allocate Standard or Raw Pages INT 67H 5bxxH: Alternate Map Register Set INT 67H 5c00H: Prepare for warm boot INT 67H 5dxxH: Enable/Disable OS Function Set Functions INT 70H: Real-Time Clock Interrupt Handler See Also: API Index DOS Fns QuickRef DOS Interrupts Service Groups General Index by Number by DOS Version Obsolete Fns

-*-

ROM-BIOS Variables
This maps the most important of the ROM-BIOS variables and data areas. All addresses are documented and should be valid in future BIOSes. The map is sequential by memory address, with blank lines indicating rough functional groups. Addresses not shown should be considered reserved.

Note: Although this table shows addresses as offsets from segment 40H, it is valid to use offsets from absolute segment 00H. For instance, a variable shown to be at address 40:0012 can also be addressed at 0:0412. Address Size Contents 40:0000 2 Base port address of first RS-232 adapter (COM1) See COM Ports 40:0002 2 Port of COM2 40:0004 2 Port of COM3 40:0006 2 Port of COM4 40:0008 2 Base port addr of first parallel printer (LPT1) Printer Ports 40:000A 2 Port of LPT2 40:000C 2 Port of LPT3 40:000E 2 Port of LPT4 40:0010 2 Equipment/hardware installed/active; see Equipment List 40:0012 1 Errors in PCjr infrared keyboard link 40:0013 2 Total memory in K-bytes (same as obtained via INT 12H) 40:0015 2 Scratch pad for manufacturing error tests 40:0017 40:0019 40:001a 40:001c 40:001e 40:003e 40:003f 40:0040 40:0041 40:0042 2 1 2 2 32 1 1 1 1 7 Keyboard status bits; see Keyboard Shift Status Flags Current (accumulating) value of Alt+numpad pseudo-key input; normally 0. When [Alt] is released, value is stored in keyboard buffer at 001e. Addr of keyboard buffer head (keystroke at that addr is next) Address of keyboard buffer tail Keyboard buffer. BIOS stores keystrokes here (head and tail point to addresses from 041eH to 043dH inclusive). Diskette drive needs recalibration (bit 0=A, bit 1=B, etc.) bits 4-5 indicate which drive is currently selected Diskette motor is running (bit 0=drive A, bit 1=B, etc.) Time until motor off. INT 08H turns motor off when this is 0. Diskette error status; same as status returned by INT 13H Diskette controller status information area Current active video mode. See Video Modes and INT 10H. Screen width in text columns Length (in bytes) of video area (regen size) Offset from video segment of active video memory page Cursor location (8 byte-pairs; low byte=clm, hi byte=row) Cursor size/shape. Low byte=end scan line; hi byte=start Current active video page number Port address for 6845 video controller chip; see CGA I/O Ports Current value of 6845 video ctrlr CRT_MODE (port 3x8H Current value of 6845 video ctrlr CRT_PALETTE (port 3x9H reg) Cassette data area or POST data area Timer tick counter (count of 55ms ticks since CPU reset) Timer overflow flag (timer has rolled over 24 hr) Ctrl-Break flag. Bit 7=1 when break was pressed. This never gets reset unless you do it yourself. 1234H means Ctrl+Alt+Del reboot is in progress. BIOS checks this to avoid doing a "cold boot" with the time-consuming POST 4321H means reset, preserving memory 5678H, 9abcH, and abcdH (are internal PC Convertible codes)

40:0049 1 40:004a 2 40:004c 2 40:004e 2 40:0050 16 40:0060 2 line. 40:0062 1 40:0063 2 40:0065 1 register) 40:0066 1 40:0067 40:006c 40:0070 40:0071 40:0072 5 4 1 1 2

40:0074 (0074) (0075) (0077) 40:0078 40:007c 40:0080 40:0082 40:0084 40:0085 40:0087 40:0088 40:0089 40:008b 40:008c 40:008d 40:008e 40:0090 40:0091 40:0092 40:0093 40:0094 40:0095 40:0096 40:0097 40:0098 40:009c 40:00a0 40:00a1 40:00a8 40:00f0

PCjr diskette or AT hard disk control area 1 Status of last fixed-disk drive operation 1 Number of hard disk drives for AT 1 Hard disk port for XT. See XT Hard Disk Ports. 4 Printer time-out values (478H=Lpt1, 478H=Lpt2...) 4 RS-232 time-out values (47cH=Com1, 47dH=Com2...) 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 4 1 7 4 AT PS/2 keyboard buffer offset start address (usually 01eH) end address (usually 003eH) EGA EGA EGA EGA VGA See AT AT AT AT text rows-1 (maximum valid row value) bytes per character (scan-lines/char used in active mode) flags; see EgaMiscInfoRec flags; see EgaMiscInfo2Rec flags; see VgaFlagsRec also: EGA/VGA Data Areas PS/2 PS/2 PS/2 PS/2 Media control: data rate, step rate Hard disk drive controller status Hard disk drive error status Hard disk drive interrupt control

AT PS/2 Disk media state bits for drive 0 for drive 1 AT PS/2 Disk operation started flag for drive 0 for drive 1 AT PS/2 Present cylinder number for drive 0 for drive 1 AT Keyboard flag bit 4=1 (10H) if 101-key keyboard is attached AT Keyboard flag for LED 'key lock' display bits 0-2 are ScrollLock, NumLock, CapsLock AT Pointer to 8-bit user wait flag; see INT 15H 86H AT Microseconds before user wait is done AT User wait activity flag: 01H=busy, 80H=posted, 00H=acknowledged AT Reserved for network adapters EGA Address of table of pointers; see EgaSavePtrRec (IAC) Inter-Aapplication Communication area. Programs may use this area to store status, etc. Might get overwritten by another program. Print-screen status: 00H=ok; 01H=printing; 0ffH=error while printing screen

16

40:0100 40:0104

1 1

Phantom-floppy status; see also DOS fn 440eH 01H=drive A is acting as drive B. 40:0110 17 Used by BASIC interpreter 40:0130 3 Used by MODE command f000:fff0 5 FAR JMP instruction to begin POST (after a hard reset, the CPU jumps here) f000:fff5 8 ROM-BIOS release date in ASCII (eg, "04/24/81" is original PC) f000:fffc 2 (unused)

f000:fffe 1

IBM computer-type code; see also BIOS INT 15H C0H 0ffH = original PC 0feH = XT or Portable PC 0fdH = PCjr 0fcH = AT (or XT model 286) (or PS/2 Model 50/60) 0fbH = XT with 640K motherboard 0faH = PS/2 Model 30 0f9H = Convertible PC (easily converts into a paperweight) 0f8H = PS/2 Model 80

See Also: General Memory Map EGA/VGA Data Areas I/O Port Map ROM-BIOS Functions -*-

General Memory Map


Overview of the general memory-layout of PC/XT/AT while operating. Address Name / Description 0000:0000 Interrupt vector table: 256 4-byte addresses 0040:0000 ROM-BIOS data area. See BIOS Data Area for details 0050:0000 DOS data area. xxxx:0000 DOS low-level BIOS code (read from IO.SYS on boot disk) xxxx:0000 DOS interrupt handlers, including INT 21H (IBMDOS.COM) xxxx:0000 DOS buffers, data areas, and installed device drivers xxxx:0000 resident portion of COMMAND.COM includes handlers for INT 22H INT 23H and INT 24H xxxx:0000 TSR-style programs and data xxxx:0000 | Currently-executing application program (.COM or .EXE program) | Programs initially own all of memory up to 640K (a000:0000) or | whatever is the memory-ceiling in the PC.

xxxx:0000 Transient portion of COMMAND.COM. Command processor, internal commands, etc. Gets reloaded if any program overwrites this are xxxx:0000 Extended BIOS Data Area on PS/2 (highest memory below 640K) a000:0000 On 386+ CPUs, addresses from a000:0 to f000:0 that are not through occupied by ROM are available as UMBs^ when supported by e000:ffff EMM386.EXE or other memory-management software a000:0000 EGA and VGA memory for certain video modes b000:0000 MDA display adapter video memory (also Hercules & clones) b800:0000 CGA video memory (also Hercules page 2) c800:0000 External ROM code. ROM-BIOS looks here (in 2K-block increments) through for code to be executed at boot time. Such ROMS usually install e000:0000 a device handler (e.g., hard disk or EGA BIOS); see ROM-Scan also Physical paging addresses for EMS expanded memory. e000:0000 AT motherboard ROM modules in 64K-block increments. through See ROM-Scan e000:ffff f600:0000 ROM-resident BASIC interpreter (ancient IBM-logoed PC only) fe00:0000 ROM-BIOS: POST, boot code, interrupt handlers, the whole banana f000:fff0 JMP instruction to first opcode to execute on power up or reset f000:fff5 BIOS release date (in ASCII)

f000:fffe IBM PC identification code. See BIOS Data Area (end of table) ffff:0000 This is the High Memory Area, available to 286+ computers. through It is the first 64K (less 16 bytes) of extended^ memory, but is ffff:fff0 set up to be accessible while in real mode. Above 1M Area above 1 MB is extended^ memory available to AT-class computers via BIOS function INT 15H and (when HIMEM.SYS or other XMS provider is installed) XMS Services. The CPU is switched into protected mode to make this memory accessible. See also: About DPMI. Extended memory is currently used by DOS only for RAM-disk, disk caching, and by a few DOS TSRs. Windows, OS/2, Xenix, and other operating systems or control programs may use this area for multitasking or general-purpose memory. See Also: BIOS Data Area EGA/VGA Data Areas I/O Port Map

Interrupts and BIOS Services


Services Interrupts Pointers 10H Video services 00H Division by 0 1bH Keyboard break 11H Equipment list 01H Single-step 1cH User timer interrupt 12H Conv. memory size 02H Non-Maskable 1dH Video parms 13H Disk I/O 03H Breakpoint 1eH Diskette parms 14H Serial port I/O 04H Overflow 1fH Graphics chars 15H AT services; APM 05H Print screen 16H Keyboard I/O 06H Invalid opcode 22H Terminate addr 17H Printer I/O 07H no math chip 23H Ctrl+Break addr 18H ROM-BASIC 08H IRQ 0 Timer 24H Critical Error addr 19H Bootstrap 09H IRQ 1 Keyboard 1aH Time I/O; MRCI hook 0aH IRQ 2 cascade 40H diskette revector 0bH IRQ 3 COM 2/4 41H hard disk 0 parms 20H-2fH: DOS Interrupts 0cH IRQ 4 COM 1/3 46H hard disk 1 parms 0dH IRQ 5 LPT 2 2fH: Multiplex Services 0eH IRQ 6 diskette 43H EGA font table 0fH IRQ 7 LPT 1

31H DPMI services 33H Mouse Support 67H Expanded Memory Fns

4aH User alarm address 70H 71H 72H 73H 74H 75H 76H 77H IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ 8 RT Clock 9 redir IRQ 2 10 (reserved) 11 (reserved) 12 (reserved) 13 math chip 14 hard disk 15 (reserved)

See Also: IRQs: Hardware Interrupts DOS Functions API Service Index DOS & BIOS Data Structures BIOS Data Area -*-

IRQs: Hardware Interrupts


Overview Devices such as the keyboard and disk controller are connected to the CPU via Interrupt ReQuest lines (IRQs). When these devices need servicing, they signal to the CPU which immediately begins executing code at a particular interrupt vector. Standard IRQs INT 08H IRQ 0 Timer INT 09H IRQ 1 Keyboard Interrupts every 55ms (18.2 times per second) Interrupts on each press and release of a key and periodically while the key is held down. See Keyboard Ports. Connected to the secondary 8259a interrupt controller on ATs; may be used by EGA for vertical retrace. See EGA I/O Ports. Interrupts when COM2 or COM4 has something to say. See Serial Ports. Interrupts when COM1 or COM3 has something to say. See Serial Ports. AT: Interrupts when the printer on LPT2 is for another character (only if printer port 27aH is set up for this). See Printer Ports. See PC/XT: This was used for the hard disk. XT Hard Disk Ports. INT 0eH IRQ 6 diskette

INT 0aH IRQ 2 cascade

INT 0bH IRQ 3 COM 2/4 INT 0cH IRQ 4 COM 1/3 INT 0dH IRQ 5 LPT 2 ready

Interrupts after each action of the floppy diskette controller (read, write, seek, etc). See FDC Ports.

INT 0fH IRQ 7 LPT 1 set

Interrupts when LPT1 is ready for another character (only when controller port 37aH is up for this). See Printer Ports.

INT 70H IRQ 8 RT Clock or

Interrupts 1024 times per second (on AT-class better computers). This is generated by the same hardware that handles the non-volatile

data in the CMOS Memory. INT 71H IRQ 9 redir IRQ2 On AT-class computers, IRQ 2 is used as the connection to a secondary 8259a interrupt controller. Actual occurrences of IRQ 2 are redirected to IRQ 9. This IRQ may be generated by EGA/VGA. See EGA I/O Ports.

INT 72H IRQ 10 (reserved) There is no default device for this IRQ. INT 73H IRQ 11 (reserved) There is no default device for this IRQ. INT 74H IRQ 12 (reserved) There is no default device for this IRQ. INT 75H IRQ 13 math chip INT 76H IRQ 14 hard disk The 80x87 math coprocessor generates this interrupt on exceptions (errors). Interrupts when the hard disk controller finishes an operation. See AT Hard Disk Ports.

INT 77H IRQ 15 (reserved) There is no default device for this IRQ. See Also: Interrupts and BIOS Services I/O Port Map

INT 1aH 04H: Read Date from Real-Time Clock


[AT] Expects: AH 04H

Returns: AH CH CL DH DL CF 0 century, in BCD^ (19H ... 20H) year, in BCD month, in BCD day, in BCD (00H ... 99H) (i.e., 01H=Jan ... 12H=Dec) (00H ... 31H)

NC (0) clock operating

CY (1) clock not operating or busy being updated Info: Obtains the current date from the battery-backed CMOS Real-Time Clock.

Return values are in BCD^; for instance, CX = 1998H = 1998.

The BIOS avoids reentrancy by not returning the date if the clock happens to be in the process of being updated. Thus, if CF is

set on return, you should try a few more times before giving up.

See Also: INT 1aH (BIOS Time I/O) DOS fn 2aH (get system date) ROM-BIOS Functions -*-

Potrebbero piacerti anche