home *** CD-ROM | disk | FTP | other *** search
-
- ** Programmer's Technical Reference for MSDOS and the IBM PC **
- USA copyright TXG 392-616 ALL RIGHTS RESERVED
- ───────────────────────────────┤ DOSREF (tm) ├────────────────────────────────
- ISBN 1-878830-02-3 (disk-based text)
- Copyright (c) 1987, 1991 Dave Williams
- ┌─────────────────────────────┐
- │ Shareware Version, 09/05/91 │
- │ Please Register Your Copy │
- └─────────────────────────────┘
-
-
- The rest of the chapters aren't included in this shareware demonstration
- package. Since the complete manual takes about 1000k even compressed in
- LHarc format, something had to give somewhere.
-
- Here's a sample of what you're missing:
-
- DOS 5 information (mainly in registered chapters 4, and 5)
-
-
- (Chapters 1, 2, and 3 are the same as the registered version, less additions
- since this demo was released)
-
-
- TABLE OF CONTENTS
-
-
- INTRO Introduction, credits, copyrights
-
-
- CHAPTER 1 DOS and the PC
-
- Some History .......................................................... 1**1
- What is DOS? .......................................................... 1**2
- Other Operating Systems ............................................... 1**3
- Specific Versions of MS/PC-DOS ........................................ 1**4
- The Operating System Heirarchy ........................................ 1**5
- DOS Structure ......................................................... 1**6
- DOS Initialization .................................................... 1**7
-
-
- CHAPTER 2 Low Memory and Absolute Addresses
-
- Introduction .......................................................... 2**1
- System Memory Map ..................................................... 2**2
- A Brief Guide to Current Memory Terminology ........................... 2**3
- PC Port Assignment .................................................... 2**4
- Reserved Memory Locations ............................................. 2**5
- Absolute Addresses .................................................... 2**6
- The IBM PC System Interrupts (Overview) ............................... 2**7
- Quick Chart of Interrupts 00h-0FFh .................................... 2**8
- The IBM-PC System Interrupts 00h-0Fh (in detail) ...................... 2**9
-
-
- CHAPTER 3 The IBM ROM BIOS
-
- Calling the ROM BIOS .................................................. 3**1
- Interrupt 10h Video Services ......................................... 3**2
- Interrupt 11h Equipment Check ........................................ 3**3
- Interrupt 12h Memory Size ............................................ 3**4
- Interrupt 13h Disk Functions ......................................... 3**5
- Interrupt 14h Initialize and Access Serial Port ...................... 3**6
- FOSSIL Drivers ......................................... 3**7
- Interrupt 15h Cassette I/O ........................................... 3**8
- Interrupt 16h Keyboard I/O ........................................... 3**9
- Interrupt 17h Printer ................................................ 3**10
- Interrupt 18h ROM BASIC .............................................. 3**11
- Interrupt 19h Bootstrap Loader ....................................... 3**12
- Interrupt 1Ah Time of Day ............................................ 3**13
- Interrupt 1Bh Control-Break .......................................... 3**14
- Interrupt 1Ch Timer Tick ............................................. 3**15
- Interrupt 1Dh Vector of Video Initialization Parameters .............. 3**16
- Interrupt 1Eh Vector of Diskette Controller Parameters ............... 3**17
- Interrupt 1Fh Ptr to Graphics Character Extensions (Graphics Set 2) .. 3**18
-
-
- CHAPTER 4 DOS Function Requests
-
- General Programming Guides ............................................ 4**1
- DOS Registers ......................................................... 4**2
- DOS Stacks ............................................................ 4**3
- DOS Interrupts ........................................................ 4**4
- Interrupt 20h (Terminate) ............................................. 4**5
- DOS Services (quick list) ............................................. 4**6
- Calling the DOS Services .............................................. 4**7
- Version Specific Information .......................................... 4**8
- Compatibility Problems With DOS 4.0+ .................................. 4**9
- PCjr Cartridge Support ................................................ 4**10
- eDOS 4.0 .............................................................. 4**11
- DOS Services in Detail ................................................ 4**12
-
-
- CHAPTER 5 Interrupts 22h through 0FFh
-
- Interrupt 22h Terminate Address ..................................... 5**1
- Interrupt 23h Ctrl-Break Exit Address ............................... 5**2
- Interrupt 24h Critical Error Handler ................................ 5**3
- Interrupt 25h Absolute Disk Read .................................... 5**4
- Interrupt 26h Absolute Disk Write ................................... 5**5
- Interrupt 27h Terminate And Stay Resident ........................... 5**6
- Interrupt 28h (not documented by Microsoft) ......................... 5**7
- Interrupt 29h (not documented by Microsoft) ......................... 5**8
- Interrupt 2Ah Microsoft Networks - Session Layer Interrupt .......... 5**9
- Interrupt 2Bh Unknown ............................................... 5**10
- Interrupt 2Ch Unknown ............................................... 5**11
- Interrupt 2Dh Unknown ............................................... 5**12
- Interrupt 2Eh Alternate EXEC (DOS 2.0+) ............................. 5**13
- Interrupt 2Fh Multiplex Interrupt ................................... 5**14
- Interrupt 30h FAR jump instruction for CP/M-style calls ............. 5**15
- Interrupt 31h Unknown ............................................... 5**16
- Interrupt 32h Unknown ............................................... 5**17
- Interrupt 33h Used by Microsoft Mouse Driver Function Calls ......... 5**18
- Interrupt 34h Turbo C/Microsoft languages - Floating Point emulation 5**19
- Interrupt 35h Turbo C/Microsoft languages - Floating Point emulation 5**20
- Interrupt 36h Turbo C/Microsoft languages - Floating Point emulation 5**21
- Interrupt 37h Turbo C/Microsoft languages - Floating Point emulation 5**22
- Interrupt 38h Turbo C/Microsoft languages - Floating Point emulation 5**23
- Interrupt 39h Turbo C/Microsoft languages - Floating Point emulation 5**24
- Interrupt 3Ah Turbo C/Microsoft languages - Floating Point emulation 5**25
- Interrupt 3Bh Turbo C/Microsoft languages - Floating Point emulation 5**26
- Interrupt 3Ch Turbo C/Microsoft languages - Floating Point emulation 5**27
- Interrupt 3Dh Turbo C/Microsoft languages - Floating Point emulation 5**28
- Interrupt 3Eh Turbo C/Microsoft languages - Floating Point emulation 5**29
- Interrupt 3Fh Overlay Manager Interrupt (Microsoft LINK.EXE) ........ 5**30
- Interrupt 40h Hard Disk BIOS ........................................ 5**31
- Interrupt 41h Hard Disk Parameters .................................. 5**32
- Interrupt 42h Pointer to screen BIOS entry .......................... 5**33
- Interrupt 43h Pointer to EGA Graphics Character Table ............... 5**34
- Interrupt 44h Pointer to graphics character table ................... 5**35
- Interrupt 45h Reserved by IBM (not initialized) .................... 5**36
- Interrupt 46h Pointer to second hard disk parameter block ........... 5**37
- Interrupt 47h Reserved by IBM (not initialized) .................... 5**38
- Interrupt 48h Cordless Keyboard Translation ......................... 5**39
- Interrupt 49h Non-keyboard Scan Code Translation Table Address (PCjr) 5**40
- Interrupt 4Ah Real-Time Clock Alarm (Convertible, PS/2) ............. 5**41
- Interrupt 4Bh Reserved by IBM (not initialized) .................... 5**42
- Interrupt 4Ch Reserved by IBM (not initialized) .................... 5**43
- Interrupt 4Dh Reserved by IBM (not initialized) .................... 5**44
- Interrupt 4Eh Reserved by IBM (not initialized) .................... 5**45
- Interrupt 4Fh Reserved by IBM (not initialized) .................... 5**46
- Interrupt 50-57 IRQ0-IRQ7 Relocation .................................. 5**47
- Interrupt 58h Reserved by IBM (not initialized) .................... 5**48
- Interrupt 59h Reserved by IBM (not initialized) .................... 5**49
- Interrupt 5Ah Reserved by IBM (not initialized) ................... 5**50
- Interrupt 5Bh Reserved by IBM (not initialized) .................... 5**51
- Interrupt 5Ah Cluster Adapter BIOS entry address .................... 5**52
- Interrupt 5Bh Reserved by IBM (not initialized) .................... 5**53
- Interrupt 5Ch NETBIOS interface entry port, TOPS .................... 5**54
- Interrupt 5Dh Reserved by IBM (not initialized) .................... 5**55
- Interrupt 5Eh Reserved by IBM (not initialized) .................... 5**56
- Interrupt 5Fh Reserved by IBM (not initialized) .................... 5**57
- Interrupt 60h-67h User Program Interrupts ............................ 5**58
- Interrupt 60h Network OS Interface .................................. 5**59
- Interrupt 67h Expanded Memory Board Driver Interrupt ................ 5**60
- Interrupt 68h Not Used (not initialized) ........................... 5**61
- Interrupt 69h Not Used (not initialized) ........................... 5**62
- Interrupt 6Ah Not Used (not initialized) ........................... 5**63
- Interrupt 6Bh Not Used (not initialized) ........................... 5**64
- Interrupt 6Ch System Resume Vector (Convertible) .................... 5**65
- Interrupt 6Dh Not Used (not initialized) ........................... 5**66
- Interrupt 6Eh Not Used (not initialized) ........................... 5**67
- Interrupt 6Fh 10-Net API............................................. 5**68
- Interrupt 70h IRQ 8, Real Time Clock Interrupt (AT, XT/286, PS/2) ... 5**69
- Interrupt 71h IRQ 9, Redirected to IRQ 8 (AT, XT/286, PS/2) ......... 5**70
- Interrupt 72h IRQ 10 (AT, XT/286, PS/2) Reserved .................. 5**71
- Interrupt 73h IRQ 11 (AT, XT/286, PS/2) Reserved .................. 5**72
- Interrupt 74h IRQ 12 Mouse Interrupt (PS/2) ........................ 5**73
- Interrupt 75h IRQ 13, Coprocessor Error (AT) ........................ 5**74
- Interrupt 76h IRQ 14, Hard Disk Controller (AT, XT/286, PS/2) ....... 5**75
- Interrupt 77h IRQ 15 (AT, XT/286, PS/2) Reserved ................... 5**76
- Interrupt 78h Not Used .............................................. 5**77
- Interrupt 79h Not Used .............................................. 5**78
- Interrupt 7Ah Reserved .............................................. 5**79
- Interrupt 7Bh-7Eh Not Used by IBM .................................... 5**80
- Interrupt 7Ch REXX-PC API ........................................... 5**81
- Interrupt 7Fh IBM 8514/A Graphics Adapter API ....................... 5**82
- Interrupt 80h-85h Reserved by BASIC .................................. 5**83
- Interrupt 86h Int 18 when relocated by NETBIOS ...................... 5**84
- Interrupt 86h-0F0h Used by BASIC when BASIC interpreter is running ... 5**85
- Interrupt 0A4h Right Hand Man API .................................... 5**86
- Interrupt 0D4h PC-MOS/386 API ........................................ 5**87
- Interrupt 0E0h Digital Research CP/M-86 function calls ............... 5**88
- Interrupt 0E1h PC Cluster Disk Server Information .................... 5**89
- Interrupt 0E2h PC Cluster Program .................................... 5**90
- Interrupt 0E4h Logitech Modula-2 v2.0 Monitor Entry ................ 5**91
- Interrupt 0E5h Not Used .............................................. 5**92
- Interrupt 0E6h Not Used .............................................. 5**93
- Interrupt 0E7h Not Used .............................................. 5**94
- Interrupt 0E8h Not Used .............................................. 5**95
- Interrupt 0E9h Not Used .............................................. 5**96
- Interrupt 0EAh Not Used .............................................. 5**97
- Interrupt 0EBh Not Used .............................................. 5**98
- Interrupt 0ECh Not Used .............................................. 5**99
- Interrupt 0EDh Not Used ............................................. 5**100
- Interrupt 0EEh Not Used ............................................. 5**101
- Interrupt 0EFh GEM interface (Digital Research) ..................... 5**102
- Interrupt 0F0h unknown .............................................. 5**103
- Interrupts 0F1h-0FFh (absolute addresses 3C4h-3FFh) ................. 5**104
- Interrupt 0F4h Not Used ............ ................................ 5**105
- Interrupt 0F5h Not Used ............ ................................ 5**106
- Interrupt 0F8h Set Shell Interrupt (OEM) ............................ 5**107
- Interrupt 0F9h Reserved ............................................. 5**108
- Interrupt 0FAh USART ready (RS-232C) ................................ 5**109
- Interrupt 0FBh USART RS ready (keyboard) ............................ 5**110
- Interrupt 0FCh Unknown ...............................................5**111
- Interrupt 0FDh reserved for user interrupt .......................... 5**112
- Interrupt 0FEh reserved by IBM ...................................... 5**113
- Interrupt 0FFh reserved by IBM ...................................... 5**114
-
-
-
- CHAPTER 6 DOS Control Blocks and Work Areas
-
- DOS Address Space ..................................................... 6**1
- Storage Blocks ........................................................ 6**2
- Disk Transfer Area (DTA) .............................................. 6**3
- Program Segment Prefix ................................................ 6**4
- Memory Control Blocks ................................................. 6**5
- DOS Program Segment ................................................... 6**6
-
-
- CHAPTER 7 DOS File Information
-
- File Management Functions ............................................. 7**1
- FCB Function Calls .................................................... 7**2
- Handle Function Calls ................................................. 7**3
- Special File Handles .................................................. 7**4
- Raw and Cooked File I/O ............................................... 7**5
- Number of Open Files Allowed ......................................... 7**6
- Restrictions on FCB Usage ............................................. 7**7
- Restrictions on Handle usage .......................................... 7**8
- Allocating Space to a File ............................................ 7**9
- MSDOS / PCDOS Differences ............................................. 7**10
- .COM File Structure ................................................... 7**11
- .EXE File Structure ................................................... 7**12
- The Relocation Table .................................................. 7**13
- "NEW" .EXE Format (Microsoft Windows and OS/2) ........................ 7**14
- Standard File Control Block ........................................... 7**15
- Extended File Control Block ........................................... 7**16
- Disk Transfer Area .................................................... 7**17
-
-
- CHAPTER 8 DOS Disk Information
-
- The DOS Area .......................................................... 8**1
- The Boot Record ....................................................... 8**2
- DOS File Allocation Table (FAT) ....................................... 8**3
- Media Descriptor Byte ......................................... 8**4
- 12 Bit FATs ................................................... 8**5
- 16 Bit FATs ................................................... 8**6
- 32 Bit FATs ................................................... 8**7
- DOS Disk Directory .................................................... 8**8
- The Data Area ......................................................... 8**9
- Floppy Disk Types ..................................................... 8**10
- Hard Disk Layout ...................................................... 8**11
- System Initialization ................................................. 8**12
- Boot Record/Partition Table ........................................... 8**13
- Hard Disk Technical Information ....................................... 8**14
- Determining Hard Disk File Allocation ................................. 8**15
- BIOS Disk Functions ................................................... 8**16
-
-
- CHAPTER 9 Device Drivers
-
-
- CHAPTER 10 Lotus/Intel/Microsoft Expanded Memory Specification
-
- History ............................................................... 10**1
- Uses of Expanded Memory ............................................... 10**2
- DOS and Expanded Memory ............................................... 10**3
- Different Memory Types ................................................ 10**4
- AST/Quadram/Ashton-Tate Enhanced EMM .................................. 10**5
- EMS Address Space Map ................................................. 10**6
- Writing Programs That Use Expanded Memory ............................. 10**7
- Page Frames ........................................................... 10**8
- Calling the Manager ................................................... 10**9
- Detecting EMS ......................................................... 10**10
- Terminate and Stay Resident (TSR) Program Cooperation ................. 10**11
- Expanded Memory Services Quick List ................................... 10**12
- Expanded Memory Services .............................................. 10**13
- LIM 3.2 Specification ......................................... 10**14
- LIM 4.0 Specification ......................................... 10**15
- AQA EEMS 3.2 Specification .................................... 10**16
- VCPI API 1.0 .................................................. 10**17
- Expanded Memory Manager Error Codes ................................... 10**18
- Microsoft Extended Memory Specification 2.0 ........................... 10**19
-
-
- CHAPTER 11 Conversion Between Operating Systems
-
- Overview .............................................................. 11**1
- Special Considerations ................................................ 11**2
- Example Operating Systems ............................................. 11**3
- Atari ST .............................................................. 11**4
- CP/M .................................................................. 11**5
- MacOS ................................................................. 11**6
- AmigaDOS .............................................................. 11**7
- OS/2 .................................................................. 11**8
- UNIX .................................................................. 11**9
-
-
- CHAPTER 12 Microsoft Windows API
-
- Overview .............................................................. 12**1
- Programming Windows ................................................... 12**2
- Versions .............................................................. 12**3
- Functions ............................................................. 12**4
- Error Codes ........................................................... 12**5
-
-
- CHAPTER 13 Network APIs
-
- FTP Driver - PC/TCP Packet Driver Specification ....................... 13**1
- 10-Net Network ........................................................ 13**2
- LANtastic LANOS API ................................................... 13**3
- Novell NetWare 2.11 API ............................................... 13**4
- APPC/PC ............................................................... 13**5
-
-
- CHAPTER 14 Mouse Programming
-
- General Information ................................................... 14**1
- Register Usage ........................................................ 14**2
- Interrupt 33h Function Requests ....................................... 14**3
- Interrupt 10h Function Requests ....................................... 14**4
-
-
- CHAPTER 15 Register-Level Programming
-
- 8555 Peripheral Interface ............................................. 15**1
- 8259 Interrupt Controller ............................................. 15**2
- AT CMOS RAM Configuration ............................................. 15**3
-
-
- CHAPTER 16 Video Programming
-
- Quick List of BIOS Interrupt 10h Functions ............................ 16**1
- BIOS Interrupt 10h Functions in Detail ................................ 16**2
-
-
- CHAPTER 17 Multitasking Shells
-
- Introduction .......................................................... 17**1
- Programming Practices ................................................. 17**2
- TopView/DESQview API (interrupt 15h, "System Services" interface) ..... 17**3
- TopView/DESQview API (interrupt 16h, "BIOS Video" interface) .......... 17**4
-
-
- CHAPTER 18 Viruses and Trojan Horses
-
-
- CHAPTER 19 Tips and Tricks
-
-
- MISCSTUF Miscellaneous Stuff
-
- AFTERWRD Afterword
-
- CREDITS Credits and Bibliography
-
-
-
- A P P E N D I C E S
-
- APPENDIX 1 Keyboard scan code chart
-
- APPENDIX 2 ASCII character chart
-
- APPENDIX 3 IBM PC character set
-
- APPENDIX 4 IBM PC error code listing
-
- APPENDIX 5 Addresses of various manufacturers
-
- APPENDIX 6 Hard disk information
-
- APPENDIX 7 Floppy and Tape Devices
-
- APPENDIX 8 Pinouts of various connectors on the IBM PC
-
- APPENDIX 9 Sizes of various drivers installed in CONFIG.SYS
-
- APPENDIX 10 Common modem instruction sets
-
- APPENDIX 11 Glossary of computer terminology
-
- APPENDIX 12 Various busses used in MSDOS machines
-
- APPENDIX 13 Common filename extensions
-
- APPENDIX 14 Clock speeds of various expansion cards
-
- APPENDIX 15 Header formats used by various archive utilities
-
- APPENDIX 16 Miscellaneous Hardware Information
-
- APPENDIX 17 HP LaserJet Setup Codes
-
- APPENDIX 18 ANSI.SYS Escape Sequences
-
- APPENDIX 19 DEC VT100 Escape Sequences
-
- APPENDIX 20 Various Paint Program Formats
-
- APPENDIX 21 Some Commonly Used Hot-Keys
-
- APPENDIX 22 Sound Blaster API
-
- APPENDIX 23 French-Canadian accented character chart
-
- APPENDIX 24 Compuserve Graphic Image Format '89a
-
- APPENDIX 25 Hex Chart
-
- APPENDIX 26 Microsoft TSR Specification 1.0
-