home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Share Gallery 1
/
share_gal_1.zip
/
share_gal_1
/
LA
/
LA023.ZIP
/
DOSREF17.ZIP
/
CONTENTS
< prev
next >
Wrap
Text File
|
1990-03-21
|
22KB
|
388 lines
** Programmer's Technical Reference for MSDOS and the IBM PC **
─────────────────────────┤ Shareware User Version ├───────────────────────────
Copyright (c) 1987, 1990 Dave Williams
TABLE OF CONTENTS
Note to shareware version:
Chapters 9 through 17 and the appendices are not included in the shareware
version of the Reference. This isn't CrippleWare; what you have is complete
and useful (though perhaps slightly out of date, depending on how old this
archive is when you get it). The deletions were to keep the file size down
around 200k for easier transmission.
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
PC Port Assignment .................................................... 2**3
Reserved Memory Locations ............................................. 2**4
Interrupt Vector Table ....................................... "
BIOS Data Area ................................................ "
DOS Data Area ................................................. "
BASIC Data Area ............................................... "
EGA Signature ................................................. "
Model and BIOS ID ............................................. "
The IBM PC System Interrupts (Overview) ............................... 2**5
Quick Chart 00h-0FFh .......................................... "
The IBM-PC System Interrupts (in detail) .............................. 2**6
00h-0Fh ....................................................... "
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
DOS Registers ......................................................... 4**1
DOS Stacks ............................................................ 4**2
DOS Interrupts ........................................................ 4**3
Interrupt 20h Terminate Current Program .............................. 4**4
DOS Services (quick list) ............................................. 4**5
Calling the DOS Services .............................................. 4**6
Version Specific Information .......................................... 4**7
DOS Services in Detail ................................................ 4**8
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
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
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 drive information
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
APPENDIX 19 DEC VT100 escape sequences