ralf@b.gp.cs.cmu.edu (Ralf Brown) (10/08/89)
Apply these diffs to the file INTERRUP.A from your copy of INTER489. ---cut---cut---cut--- [also trim .signature] 0a1,2 > Interrupt List Release 89.5 Last change 10/7/89 > --------------------------------------------- 2c4 < named INTER489: --- > named INTER589: 4,5c6,7 < INTERRUP.A INT 00 through INT 27 \ total 223 pages at 60 lines < INTERRUP.B INT 28 through INT FF / per page, 241 with INTPRINT -p --- > INTERRUP.A INT 00 through INT 27 \ total 242 pages at 60 lines > INTERRUP.B INT 28 through INT FF / per page, 263 with INTPRINT -p 11,12d12 < Release 89.4 Last change 7/22/89 < --------------------------------------------- 25a26 > CIS: >INTERNET:ralf@cs.cmu.edu is supposed to work 51a53 > SeeAlso: INT 04 57a60 > SeeAlso: INT 03 81a85 > SeeAlso: INT 01 86a91 > SeeAlso: INT 00 106a112 > SeeAlso: INT 1C 116a123 > SeeAlso: INT 15/AH=4Fh, INT 15/AH=85h, INT 16, INT 1B 121,122c128,134 < Notes: on the Tandy 1000, this interrupt is used by the hard disk < the TOPS and PCnet adapters use this interrupt request line by default --- > Notes: on the Tandy 1000, this interrupt is used by the hard disk > the TOPS and PCnet adapters use this interrupt request line by default > DOS 3.2 revectors IRQ2 to a stack-switching routine > on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and > connects to the slave 8259. The BIOS redirects the interrupt for > IRQ9 back here. > SeeAlso: INT 71 127,130c139,143 < Note: the TOPS and PCnet adapters use this interrupt request line as an < alternate < Note: on PS/2's, COM2 through COM8 share this interrupt < on many PC's, COM4 shares this interrupt --- > Notes: the TOPS and PCnet adapters use this interrupt request line as an > alternate > on PS/2's, COM2 through COM8 share this interrupt on many PC's, COM4 > shares this interrupt > SeeAlso: INT 0C 138c151,152 < Note: on many PC's, COM3 shares this interrupt --- > Note: on many PC's, COM3 shares this interrupt > SeeAlso: INT 0B 162c176,178 < Note: most printer adapters do not reliably generate this interrupt. --- > Notes: most printer adapters do not reliably generate this interrupt. > the 8259 interrupt controller generates an interrupt corresponding to > IRQ7 when an error condition occurs 248a265 > = 720x350 2 3270 PC 321c338 < = 132x43 8x9 4 B000 Paradisk VGA on multisync --- > = 132x43 8x9 4 B000 Paradise VGA on multisync 340a358,362 > 5Bh = 800x600 16 Maxxon > 5Ch = 640x400 256 Logix, ATI Prism Elite > = 640x400 256 Maxxon > 5Dh = 640x480 256 Logix, ATI Prism Elite > = 640x480 256 Maxxon 344a367 > = 800x600 16 Logix, ATI Prism Elite 349a373,374 > = 1024x768 16 Logix, ATI Prism Elite > = 1024x768 16 Maxxon 387,388d411 < ??? = 640x225 Z-100 < ??? = 640x400 Z-100 392c415,416 < Note: IBM standard modes do not clear the screen if the high bit of AL is set --- > Notes: IBM standard modes do not clear the screen if the high bit of AL is set > SeeAlso: AX=0070h,6F05h 462a487 > SeeAlso: AH=03h 470a496 > SeeAlso: AH=03h 480a507 > SeeAlso: AH=01h,02h 495a523 > SeeAlso: AH=0Fh 524a553 > Warning: some implementations have a bug which destroys BP 531a561 > Warning: some implementations have a bug which destroys BP 537a568 > SeeAlso: AH=09h 546c577,578 < Note: all characters are displayed, including CR, LF, and BS --- > Note: all characters are displayed, including CR, LF, and BS > SeeAlso: AH=08h 557c589,590 < Note: all characters are displayed, including CR, LF, and BS --- > Note: all characters are displayed, including CR, LF, and BS > SeeAlso: AH=08h 577c610,611 < Note: only valid in graphics modes --- > Note: only valid in graphics modes > SeeAlso: AH=0Dh 585a620 > SeeAlso: AH=0Ch 592,593c627,629 < Note: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted < and do the expected things --- > Note: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted > and do the expected things > SeeAlso: AH=02h,0Ah 601a638 > SeeAlso: AH=00h,05h 840c877 < INT 10 - VIDEO - ALTERNATE FUNCTION SELECT - ??? --- > INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES 842,843c879,901 < BX = 5500h ??? (used by ATI and TAXAN) < BX = 5502h ??? (used by ATI and TAXAN) --- > BH = 55h > BL = subfunction > 00h disabled enhanced features > 01h enable enhanced features > 02h get status > Return: AL = status flags > bit 3: set if enhanced features enabled > bits 7-5 monitor type > 000 PS/2 mono > 001 PS/2 color > 010 multi-sync > 011 Taxan 650 25kHz > 100 RGB > 101 mono > 110 EGA > 111 Compaq internal > 03h disable register trapping (CGA emulation) > 04h enable register trapping > 05h program mode described by table at ES:BP > 06h get mode table > AL = video mode > Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h) > BP = FFFFh on error 855c913,914 < Note: recognizes CR, LF, BS, and bell --- > Note: recognizes CR, LF, BS, and bell > SeeAlso: AH=09h,0Ah 1098a1158,1162 > DI = x coordinate of lower left corner > BP = y coordinate of lower left corner > BX = height in pixels > CX = width in pixels > Note: draws a solid rectangle 1110c1174,1177 < ??? --- > AL = quadrant (1 = upper right, 2 = upper left, etc) > DI = x coordinate of center > BP = y coordinate of center > BX = radius 1114c1181,1183 < ??? --- > DI = x of center > BP = y of center > BX = radius 1117a1187,1190 > DI = x coordinate of an interior point > BP = y coordinate of an interior point > Notes: fills convex polygonal areas > the first fill makes the figure solid, the second erases it 1216a1290 > SeeAlso: AH=00h 1255a1330 > SeeAlso: AH=73h 1263a1339 > SeeAlso: AH=72h 1357,1360c1433,1443 < Return: DX = ??? < Note: MSHERC.COM is a program included with the PC Tech Journal high-level < benchmark suite that adds video modes 08h and 88h for Hercules cards, < and supports text in the new graphics modes. --- > Return: DL = video adapter type > 00h original Hercules > 01h ??? > 02h ??? > FFh non-Hercules > DH = ??? > Note: MSHERC.COM is a support program for Microsoft Quick-C which makes its > graphics library compatible with a Hercules card by adding video > modes 08h and 88h, and supporting text in the new graphics modes. > While in mode 08h or 88h, INT 10 supports the Hercules card much > like a CGA. 1364a1448 > BH = 00h 1376a1461 > SeeAlso: AH=F1h 1381,1382c1466,1470 < BL = register number < BH = value to write --- > if single register: > BL = value to write > otherwise > BL = register number > BH = value to write 1383a1472 > SeeAlso: AH=F0h 1394a1484 > SeeAlso: AH=F3h 1401a1492 > SeeAlso: AH=F2h 1407a1499 > SeeAlso: AH=F5h 1467a1560,1564 > Notes: if no multitasker is installed, ES:DI is returned unchanged > TopView requires a call to AH=FFh to notify if that the screen has > changed; DESQview will check for changes itself until the first call > to AH=FFh > SeeAlso: INT 15/AX=1024h 1490c1587,1588 < 8 0 = DMA present, 1 = no DMA on system (PCjr) --- > 8 0 = DMA present > 1 = no DMA on system (PCjr, some Tandy 1000s, 1400LT) 1502a1601,1602 > Note: forces controller to recalibrate drive heads (seek to track 0) > SeeAlso: AH=0Dh 1544a1645,1649 > Notes: results undefined if attempting to read zero sectors > AWARD AT BIOS extended to handle more than 1024 cylinders by placing > bits 10 and 11 of the cylinder number into bits 6 and 7 of DH > apparently, the AMI BIOS also follows this convention > SeeAlso: AH=03h,0Ah 1556a1662,1666 > Notes: results undefined if attempting to write zero sectors > AWARD AT BIOS extended to handle more than 1024 cylinders by placing > bits 10 and 11 of the cylinder number into bits 6 and 7 of DH > apparently, the AMI BIOS also follows this convention > SeeAlso: AH=02h,0Bh 1567a1678,1680 > Notes: AWARD AT BIOS extended to handle more than 1024 cylinders by placing > bits 10 and 11 of the cylinder number into bits 6 and 7 of DH > apparently, the AMI BIOS also follows this convention 1577,1580c1690,1693 < byte 1 = track < byte 2 = head < byte 3 = sector < byte 4 = bytes/sector 0=128, 1=256, 2=512, 3=1024 --- > BYTE track > BYTE head > BYTE sector > BYTE bytes/sector 0=128, 1=256, 2=512, 3=1024 1595a1709,1711 > Notes: AWARD AT BIOS extended to handle more than 1024 cylinders by placing > bits 10 and 11 of the cylinder number into bits 6 and 7 of DH > apparently, the AMI BIOS also follows this convention 1604a1721,1723 > Notes: AWARD AT BIOS extended to handle more than 1024 cylinders by placing > bits 10 and 11 of the cylinder number into bits 6 and 7 of DH > apparently, the AMI BIOS also follows this convention 1614a1734,1737 > Note: AWARD AT BIOS extended to handle more than 1024 cylinders by placing > bits 10 and 11 of the cylinder number into bits 6 and 7 of DH > apparently, the AMI BIOS also follows this convention > SeeAlso: AH=1Ah 1645a1769 > SeeAlso: AH=02h,0Bh 1657a1782 > SeeAlso: AH=03h,0Ah 1671a1797,1798 > Note: not for PS/2 ESDI drives > SeeAlso: AH=00h 1679a1807 > SeeAlso: AH=0Ah 1687c1815 < sector buffer. --- > sector buffer. 1688a1817 > SeeAlso: AH=0Bh 1700a1830 > SeeAlso: AH=19h 1706a1837 > SeeAlso: AH=13h,14h 1712a1844 > SeeAlso: AH=12h,14h 1718a1851 > SeeAlso: AH=12h,13h 1729a1863 > SeeAlso: AH=17h 1746a1881,1882 > Note: I assume that 05h and 06h are 720K in 1.44M and 1.44M in 1.44M > SeeAlso: AH=15h 1758a1895 > SeeAlso: AH=05h,07h,17h 1764a1902 > SeeAlso: AH=11h 1780a1919 > SeeAlso: AH=07h 1824a1964,1999 > INT 13 - IBMCACHE.SYS - CACHE STATUS > AH = 1Dh > AL = subfunction > 01h get status record > DL = drive??? > Return: ES:BX -> status record > CF set on error > AH = error code > 02h set cache status > ES:BX -> status record > DL = drive??? > Return: CF set on error > > Format of status record: > Offset Size Description > 00h DWORD total number of read requests > 04h DWORD total number of hits > 08h DWORD number of physical disk reads > 0Ch DWORD total number of sectors requested by physical disk reads > 10h 6 bytes ??? > 16h DWORD pointer to start of error list > 1Ah DWORD pointer to end of error list > 1Eh WORD ??? > 20h BYTE using extended memory if nonzero > 21h BYTE ??? > 22h 4 BYTEs ASCII version number > 26h WORD cache size in K > 28h WORD sectors per page > > Format of error list: > Offset Size Description > 00h DWORD relative block address of bad page > 04h BYTE drive > 05h BYTE sector bit-map > 06h WORD next error > --------------------------------------------- 1863a2039 > SeeAlso: AH=05h 1972a2149 > SeeAlso: AH=00h 2273c2450,2451 < Note: called during ESDI drive formatting after each cylinder is completed --- > Note: called during ESDI drive formatting after each cylinder is completed > SeeAlso: INT 13/AH=1Ah 2294a2473 > SeeAlso: AX=1002h,DE0Ch 2299a2479 > SeeAlso: AX=1001h,DE0Dh 2306c2486 < Note: BX=0 does not display anything, it only positions the hardware cursor --- > Note: BX=0 does not display anything, it only positions the hardware cursor 2317a2498 > SeeAlso: AX=1014h,1015h 2321a2503 > SeeAlso: AX=1013h,1015h 2327a2510 > SeeAlso: AX=1013h,1014h 2333a2517 > SeeAlso: AX=DE14h 2353,2356c2537,2540 < Notes: if another tone is already playing, the new tone does not start until < completion of the previous one. In DV 2.00, it is possible to enqueue < about 32 tones before the process is blocked until a note completes. < in DV 2.00, the lowest tone allowed is 20 Hz --- > Notes: if another tone is already playing, the new tone does not start until > completion of the previous one. In DV 2.00, it is possible to enqueue > about 32 tones before the process is blocked until a note completes. > in DV 2.00, the lowest tone allowed is 20 Hz 2360a2545 > SeeAlso: AX=1025h 2365c2550,2551 < Note: will not task-switch until END CRITICAL REGION (AX = 101Ch) called --- > Note: will not task-switch until END CRITICAL REGION (AX = 101Ch) called > SeeAlso: AX=101Ch 2369a2556 > SeeAlso: AX=101Bh 2376,2377c2563,2565 < Note: at least in DV 2.00, this function is ignored unless the indicated task < is the current task. --- > Note: at least in DV 2.00, this function is ignored unless the indicated task > is the current task. > SeeAlso: AX=101Eh,102Bh 2383a2572 > SeeAlso: AX=101Dh,102Bh 2400c2589 < Note: window remains on-screen until ESC or indicated mouse button is pressed --- > Note: window remains on-screen until ESC or indicated mouse button is pressed 2411c2600 < Note: the current ES, DS, SI, DI, and BP are passed to the FAR routine --- > Note: the current ES, DS, SI, DI, and BP are passed to the FAR routine 2418c2607 < Notes: TaskView returns BX = 0001h, DESQview 2.0 returns BX = 0A01h --- > Notes: TaskView returns BX = 0001h, DESQview 2.0 returns BX = 0A01h 2449a2639 > SeeAlso: INT 10/AH=FEh 2454c2644,2645 < Note: call only after INT 15h/AX=101Ah --- > Note: call only after having switched to private stack > SeeAlso: AX=101Ah 2464a2656 > SeeAlso: AX=101Dh,101Eh 2563a2756 > SeeAlso: AH=DEh 2578,2579c2771,2773 < a mapping context ensures that the associated program and data areas < are in memory for access. Usable by drivers, TSRs and shared programs. --- > a mapping context ensures that the associated program and data areas > are in memory for access. Usable by drivers, TSRs and shared > programs. 2722,2725c2916,2922 < bit 7 \ 11 means new window created < bit 6 / 01 means existing window used < bit 5 if set, create a new keyboard and put in field mode < bit 4 if set and bit 5 set, make new keyboard active --- > bit 7 \ 11 means create new window > bit 6 / 10 means create new field table for existing window > 01 means use existing window and field table > bit 5 if set, panel contains a field table > (creates a new keyboard and puts it in field mode) > bit 4 if set, panel contains input fields > bit 3 if set, panel contains select fields but no input fields 3027c3224 < F7h "multiple fill" write data to fields with program output bit set --- > F7h "broadcast write" write data to fields with broadcast bit set 3045c3242,3243 < bit 3 if set, menu fields return ' ' rather than 'Y' or 'N' --- > bit 3 if set, select fields return contents or blanks rather > than 'Y' or 'N' 3049,3061c3247,3256 < all fields packed together, with menu fields < represented by the character 'Y' if selected < and 'N' if not selected < 10 data returned as variable-length records for < all fields < 11 data returned as variable-length records for < the fields which were modified < BYTE field in which cursor was when entry was terminated < (updated by DESQview) < BYTE field in which mouse was when entry was terminated < (updated by DESQview) < BYTE color of field currently pointed to during entry < BYTE color of input fields which have been selected --- > all fields packed together, with no field > numbers > 10 data returned as numbered variable-length > records for all fields > 11 data returned as numbered variable-length > records for the fields which were modified > BYTE current input field (updated by DESQview) > BYTE current select field (updated by DESQview) > BYTE attribute for select fields when they are pointed at > BYTE attribute for select fields which have been selected 3072c3267 < bits 7,6 = 00 non-entry field --- > bits 7,6 = 00 inactive (non-entry) field 3075,3076c3270,3271 < 11 menu selection < bit 5 program output--field can be filled by F7h opcode --- > 11 select field > bit 5 field can be filled by broadcast write (F7h opcode) 3084c3279 < bit 7 if set, beep when field is full --- > bit 7 if set, automatically enter CR when field full 3093c3288 < if type is menu selection, first key to press to activate --- > if select field, first key to press to activate 3096,3099c3291,3292 < BYTE for menu item, color of field after cursor or mouse < passes through it < BYTE second key for activating menu selection if field type is < C0h (0 = only single key). This byte is present iff --- > BYTE (select field only) normal color of field > BYTE second key for select field. This byte is present iff 3486c3679 < the panel file --- > the panel file 3843c4036,4039 < AH = status --- > AH = status > CF clear if successful > AH = 00h > SeeAlso: AH=81h,82h 3850c4046,4049 < AH = status --- > AH = status > CF clear if successful > AH = 00h > SeeAlso: AH=80h,82h 3856,3857c4055,4059 < AH = status < Note: closes all devices opened with function 80h --- > AH = status > CF clear if successful > AH = 00h > Note: closes all devices opened with function 80h > SeeAlso: AH=80h,81h 3866a4069 > SeeAlso: AH=86h 3885a4089 > SeeAlso: INT 09 3891a4096 > SeeAlso: AH=83h 3902a4108 > SeeAlso: AH=88h 3918a4125 > SeeAlso: AH=87h 3954a4162 > SeeAlso: AH=91h 3960a4169 > SeeAlso: AH=90h 3985a4195 > 0Ah AWARD copyright notice here 4011a4222 > SeeAlso: INT 33/AX=0000h 4024a4236 > SeeAlso: INT 33/AX=001Ch 4073a4286 > SeeAlso: INT 33/AX=000Ch 4094a4308 > SeeAlso: AX=DE07h 4124a4339 > SeeAlso: AX=DE05h,DE06h 4130a4346 > SeeAlso: AX=DE04h,DE06h 4136a4353 > SeeAlso: AX=DE04h,DE05h 4140a4358 > SeeAlso: AX=DE00h 4157c4375 < of current size of window (even entirely hidden) --- > of current size of window (even entirely hidden) 4159c4377,4378 < into display memory --- > into display memory > SeeAlso: AX=1003h 4172a4392 > SeeAlso: AX=1001h,DE0Dh 4177a4398 > SeeAlso: AX=1002h,DE0Ch 4190,4191c4411,4412 < Notes: sends a manager stream with opcodes AEh, BDh, and BFh to task's window < enables an additional mouse mode --- > Notes: sends a manager stream with opcodes AEh, BDh, and BFh to task's window > enables an additional mouse mode 4228a4450 > SeeAlso: AX=1016h 4255a4478,4480 > Note: on extended keyboards, this function discards any extended keystrokes, > returning only when a non-extended keystroke is available > SeeAlso: AH=10h 4262a4488 > SeeAlso: AH=11h 4274a4501 > SeeAlso: AH=12h 4297c4524 < Return: AL = 1 if buffer full --- > Return: AL = 01h if buffer full 4302a4530,4531 > Note: unlike AH=00h, this function does not discard extended keystrokes > SeeAlso: AH=00h 4309a4539 > SeeAlso: AH=01h 4330c4560,4563 < bit 0: Right Alt key down --- > bit 0: Left Ctrl key down > Notes: AL bit 3 set only for left Alt key on many machines > AH bits 7 through 4 always clear on a Compaq SLT/286 > SeeAlso: AH=02h 4342a4576 > DX = PSP segment of resident code 4498a4733,4766 > INT 16 - PC Tools v5.5 DESKTOP API - ??? > AX = FFB2h > Return: DS:SI -> ??? > --------------------------------------------- > INT 16 - PC Tools v5.5 DESKTOP API - ??? > AX = FFB3h > ??? > Return: ??? > Note: available only when popped up > --------------------------------------------- > INT 16 - PC Tools v5.5 DESKTOP API - ??? > AX = FFB4h > ??? > Return: ??? > Note: available only when popped up > --------------------------------------------- > INT 16 - PC Tools v5.5 DESKTOP API - GET/SET ??? > AX = FFB5h > BX = ??? (000Fh to 0019h) > DX = 0000h get, nonzero = set > ES:DI -> 16-byte buffer with new values or to receive old values > --------------------------------------------- > INT 16 - PC Tools v5.5 DESKTOP API - ??? > AX = FFB6h > ??? > Return: AH = ??? > AL = ??? > --------------------------------------------- > INT 16 - PC Tools v5.5 DESKTOP API - SET ??? > AX = FFB7h > DS:SI -> 10-byte buffer with ??? > ??? > Return: ??? > --------------------------------------------- 4987a5256,5269 > INT 17 - FLASHUP.COM - INSTALLATION CHECK > AH = 60h > Return: AL = 60h > DX = CS of resident code > Note: FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co. > FLASHUP also hooks INT 10 and received commands via INT 10/AH=09h,0Ah > consisting of an 80h followed by the actual command > --------------------------------------------- > INT 17 - SPEEDSCR.COM - INSTALLATION CHECK > AH = 61h > Return: AL = 61h > DX = CS of resident code > Note: SPEEDSCR.COM is by The Software Bottling Co. > --------------------------------------------- 5000a5283 > SeeAlso: INT 21/AH=2Ch 5005a5289 > SeeAlso: INT 21/AH=2Dh 5026a5311 > SeeAlso: INT 21/AH=2Ah 5034a5320 > SeeAlso: INT 21/AH=2Bh 5083c5369 < Return: BX = day count (1 = Jan 1, 1984) --- > Return: BX = day count (0 = Jan 1, 1984) 5087a5374 > SeeAlso: INT 21/AH=2Ah,2Ch 5088a5376,5385 > INT 1A - AT&T 6300 - SET TIME AND DATE > AH = FFh > BX = day count (0 = Jan 1, 1984) > CH = hour > CL = minute > DH = second > DL = hundredths > Return: ??? > SeeAlso: INT 21/AH=2Bh,2Dh > --------------------------------------------- 5094a5392 > SeeAlso: INT 23 5098a5397 > SeeAlso: INT 08 5116a5416 > SeeAlso: INT 41 5120,5122c5420,5422 < 00h BYTE step rate & head unload times < 01h BYTE head load time & DMA < 02h BYTE motor off time in clock ticks (36 or 37 typical) --- > 00h BYTE 4-bit step rate & 4-bit head unload times > 01h BYTE 7-bit head load time & 1-bit DMA flag > 02h BYTE motor off time in clock ticks (36 to 38 typical) 5145a5446 > Note: IBM and Microsoft recommend using INT 21/AH=4Ch for DOS 2+ 5164a5466 > SeeAlso: INT 14/AH=02h 5168a5471 > SeeAlso: INT 14/AH=01h 5172a5476 > SeeAlso: INT 17/AH=00h 5180c5484 < DL = 0FFh --- > DL = FFh 5184,5185c5488,5489 < Notes: Character is echoed to STDOUT if received. < ^C/^Break are NOT checked --- > Notes: character is echoed to STDOUT if received. > ^C/^Break are NOT checked 5219,5222c5523,5526 < Notes: Flushes all typeahead input, then executes function specified by AL < (effectively moving it to AH and repeating the INT 21 call). < If AL contains a value not in the list above, the keyboard buffer is < flushed and no other action is taken. --- > Notes: flushes all typeahead input, then executes function specified by AL > (effectively moving it to AH and repeating the INT 21 call). > if AL contains a value not in the list above, the keyboard buffer is > flushed and no other action is taken. 5231a5536 > SeeAlso: AH=19h 5238a5544 > SeeAlso: AH=3Dh 5257a5564,5584 > Format of reserved field for DOS 1.x: > Offset Size Description > 18h BYTE bit 7: set if logical device > bit 6: set if open??? > bits 5-0: disk number or logical device ID > 19h WORD absolute current cluster number > 1Bh WORD starting cluster number > 1Dh WORD relative current cluster number > 1Fh BYTE unused??? > > Format of reserved field for DOS 2.x: > Offset Size Description > 18h BYTE bit 7: set if logical device > bit 6: set if open??? > bits 5-0: ??? > 19h WORD starting cluster number > 1Bh WORD ??? > 1Dh BYTE ??? > 1Eh BYTE ??? > 1Fh BYTE ??? > 5289a5617 > SeeAlso: AH=3Eh 5297a5626 > SeeAlso: AH=4Eh 5305a5635 > SeeAlso: AH=4Fh 5313a5644 > SeeAlso: AH=41h 5322a5654 > SeeAlso: AH=3Fh 5330a5663 > SeeAlso: AH=40h 5338a5672 > SeeAlso: AH=3Ch 5346a5681 > SeeAlso: AH=56h 5354a5690 > SeeAlo: AH=0Eh 5358a5695 > SeeAlso: AH=2Fh 5360c5697 < INT 21 - DOS - ALLOCATION TABLE INFORMATION --- > INT 21 - DOS - GET ALLOCATION TABLE INFORMATION FOR DEFAULT DRIVE 5365a5703 > SeeAlso: AH=36h 5367c5705 < INT 21 - DOS - ALLOCATION TABLE INFORMATION FOR SPECIFIC DEVICE --- > INT 21 - DOS - GET ALLOCATION TABLE INFORMATION FOR SPECIFIC DEVICE 5373a5712 > SeeAlso: AH=36h 5388a5728 > SeeAlso: AH=32h 5401a5742 > SeeAlso: AH=3Fh 5406c5747,5751 < Return: AL = status (see AH=21h) --- > Return: AL = status > 00h successful write > 01h disk full > 02h data transfer area too small > SeeAlso: AH=40h 5415a5761 > SeeAlso: AH=42h 5421a5768 > SeeAlso: AH=42h 5426a5774 > SeeAlso: AH=35h 5433a5782 > SeeAlso: AH=55h,67h 5446c5795 < 2Ch WORD DOS 2+ environment segment --- > 2Ch WORD DOS 2+ environment segment (see below) 5450c5799 < 38h DWORD DOS 3+ ??? (set to FFFFFFFFh in DOS 3.1 and 3.3) --- > 38h DWORD DOS 3+ pointer to previous PSP??? (set to FFFFFFFFh in 3.1,3.3) 5460a5810,5821 > > Format of environment block: > Offset Size Description > 00h N BYTEs first environment variable, ASCIZ string of form "var=value" > N BYTEs second environment variable, ASCIZ string > ... > N BYTEs last environment variable, ASCIZ string of form "var=value" > BYTE 00h > ---DOS 3+--- > WORD number of strings following environment (normally 1) > N BYTEs ASCIZ full pathname of program owning this environment > other strings may follow 5470a5832 > SeeAlso: AH=3Fh 5480a5843 > SeeAlso: AH=40h 5501a5865,5867 > Notes: asterisks expanded to question marks in the FCB > all processing stops when a filename terminator is encountered > cannot be used with filespecs which include a path (DOS 2+) 5545c5911 < CX = 6378h --- > CX = 6378h ('cx') 5555a5922 > SeeAlso: INT 1A/AH=00h,FEh 5565a5933 > SeeAlso: INT 1A/AH=01h,FFh 5571a5940 > SeeAlso: AH=54h 5575a5945 > SeeAlso: AH=1Ah 5579,5580c5949,5950 < Return: AL = Major Version number (0 for DOS 1.x) < AH = Minor Version number --- > Return: AL = major version number (0 for DOS 1.x) > AH = minor version number 5584a5955 > Note: the OS/2 Penalty Box returns 10 for the major version 5589a5961,5963 > Note: most TSRs can save some memory by releasing their environment block > before terminating (see AH=26h) > SeeAlso: INT 27 5636c6010,6012 < 1Fh WORD number of free clusters on drive, FFFFh = unknown??? --- > 1Fh WORD number of free clusters on drive, FFFFh = unknown > > Note: the OS/2 compatibility box supports this call except for the DWORD at 12h 5662,5664c6038,6039 < executed. It is safe to enter DOS when both the critical section flag < and the critical error flag are zero. < --- > executed. It is safe to enter DOS when both the critical section > flag and the critical error flag are zero. 5666,5668c6041,6045 < DOS 2.x, and the byte BEFORE the critical section flag in DOS 3.x < (except COMPAQ DOS 3.0, where the critical error flag is located 1AAh < bytes BEFORE the critical section flag) --- > DOS 2.x, and the byte BEFORE the critical section flag in DOS 3.x > (except COMPAQ DOS 3.0, where the critical error flag is located 1AAh > bytes BEFORE the critical section flag) > For DOS 3.1+, an undocumented call exists to get the address of the > critical error flag (see AX=5D06h) 5673a6051 > SeeAlso: AH=25h 5683,5684c6061,6065 < Note: multiply AX * CX * BX for free space on disk < multiply AX * CX * DX for total disk space --- > Notes: multiply AX * CX * BX for free space on disk > multiply AX * CX * DX for total disk space > according to Dave Williams' MSDOS reference, the value in DX is > incorrect for non-default drives after ASSIGN is run > SeeAlso: AH=1Ch 5689a6071 > Note: documented in some OEM versions of some releases of DOS 5694a6077 > Note: documented in some OEM versions of some releases of DOS 5723a6107 > SeeAlso: AH=65h 5759c6143,6144 < 12h DWORD address of case map routine (FAR CALL, AL = char to map) --- > 12h DWORD address of case map routine > (FAR CALL, AL = char to map to upper case [>= 80h]) 5776c6161 < DS:DX -> ASCIZ pathname --- > DS:DX -> ASCIZ pathname (may include drive) 5782c6167 < DS:DX -> ASCIZ pathname --- > DS:DX -> ASCIZ pathname (may include drive) 5788c6173 < DS:DX -> ASCIZ directory name --- > DS:DX -> ASCIZ directory name (may include drive) 5790a6176,6178 > Note: if new directory name includes a drive letter, the default drive is > not changed, only the current directory on that drive > SeeAlso: AH=47h 5798c6186 < 3: volume label --- > 3: volume label (ignored) 5802c6190 < DS:DX -> ASCIZ filename --- > DS:DX -> ASCIZ filename (may include drive and path) 5806a6195 > Note: if a file with the given name exists, it is truncated to zero length 5827a6217,6220 > Notes: file pointer is set to start of file > file handles which are inherited from a parent also inherit sharing > and access restrictions > SeeAlso: AH=0Fh 5833a6227,6229 > Note: if the file was written to, the time and date stamps are set to the > current time > SeeAlso: AH=10h 5843a6240,6243 > Note: the returned AX may be smaller than the request in CX if a partial > read occurred > if reading from CON, read stops at first CR > SeeAlso: AH=27h 5854,5855c6254,6257 < Note: if CX is zero, no data is written, and the file is truncated or extended < to the current position --- > Note: if CX is zero, no data is written, and the file is truncated or > extended to the current position > the usual cause for AX < CX on return is a full disk > SeeAlso: AH=28h 5859c6261 < DS:DX -> ASCIZ name of file to delete --- > DS:DX -> ASCIZ pathname of file to delete (no wildcards allowed) 5861a6264 > SeeAlso: AH=13h 5874c6277,6278 < DX:AX = new offset --- > DX:AX = new absolute offset from beginning of file > SeeAlso: AH=24h 5896a6301 > Note: will not change volume label or directory attributes 6091c6496,6497 < 47h set access flag (DOS 4.0) --- > 46h (DOS 4.0) set ??? > 47h (DOS 4.0) set access flag 6095c6501 < 67h get access flag (DOS 4.0) --- > 67h (DOS 4.0) get access flag 6184a6591 > Note: moving file pointer for either handle will also move it for the other 6192c6599,6600 < Note: closes file with handle BX if it is still open --- > Notes: closes file with handle BX if it is still open > moving file pointer for either handle will also move it for the other 6200c6608,6609 < Note: the returned path does not include the initial backslash --- > Note: the returned path does not include a drive or the initial backslash > SeeAlso: AH=3Bh 6209a6619 > SeeAlso: AH=58h 6240c6650,6653 < Note: DOS 2.x destroys all registers, including SS:SP --- > Notes: DOS 2.x destroys all registers, including SS:SP > for functions 00h and 01h, the calling process must ensure that there > is enough unallocated memory available, if necessary by releasing > memory with AH=49h or AH=4Ah 6244c6657 < 00h WORD segment of environment (0 = use current) --- > 00h WORD segment of environment (0 = use current) (see AH=26h) 6251c6664 < 00h WORD segment of environment (0 = use current) --- > 00h WORD segment of environment (0 = use current) (see AH=26h) 6282a6696,6697 > Note: unless the process is its own parent (see AH=26h, offset 16h in PSP), > all open files are closed 6292a6708,6714 > INT 21 - WILDUNIX.COM internal - INSTALLATION CHECK > AH = 4Eh > DS:DX = 0000h:0000h > Return: AH = 99h if installed > Note: WILDUNIX.COM is a resident Unix-style wildcard expander by Steve Hosgood > and Terry Barnaby > --------------------------------------------- 6296c6718 < DS:DX -> ASCIZ filename --- > DS:DX -> ASCIZ filespec (drive, path, and wildcards allowed) 6300a6723 > SeeAlso: AH=11h 6311a6735,6737 > ---WILDUNIX.COM--- > 00h 12 BYTEs 15-character wildcard search pattern and drive letter (packed) > 0Ch BYTE search attributes 6314c6740 < 0Fh 4 BYTEs reserved --- > 0Fh DWORD pointer to DTA??? 6339a6766 > SeeAlso: AH=12h 6345c6772 < handler without setting the Critical Error flag --- > handler without setting the Critical Error flag 6347c6774 < and is thus fully reentrant --- > and is thus fully reentrant 6353c6780 < handler without setting the Critical Error flag --- > handler without setting the Critical Error flag 6355c6782,6783 < and is thus fully reentrant --- > and is thus fully reentrant > SeeAlso: AH=62h 6380c6808,6821 < ---DOS 3.x--- --- > ---DOS 3.0--- > 10h BYTE number of block devices > 11h WORD maximum bytes/block of any block device > 13h DWORD pointer to first disk buffer (see below) > 17h DWORD pointer to array of drive info (see below) > 1Bh BYTE value of LASTDRIVE command in CONFIG.SYS (default 5) > 1Ch DWORD pointer to STRING= workspace area > 20h WORD size of STRING area (the x in STRING=x from CONFIG.SYS) > 22h DWORD pointer to FCB table > 26h WORD the y in FCBS=x,y from CONFIG.SYS > 28h Beginning (not a pointer--the real beginning!) of NUL device driver. > This is the first device on DOS's linked list of device drivers. > (see below for format) > ---DOS 3.1-3.3--- 6385c6826 < 1Eh WORD size of FCB table --- > 1Eh WORD number of protected FCBs (the y in FCBS=x,y) 6392,6400c6833,6934 < ---DOS 3.1-3.3--- < 35h BYTE ??? 90h (probably padding from "EVEN" assembler directive) < 36h DWORD SHARE.EXE hook: pointer to FAR routine for ??? < 3Ah DWORD SHARE.EXE hook: pointer to FAR routine for ??? < 3Eh DWORD SHARE.EXE hook -> FAR routine called on closing file??? < 42h DWORD SHARE.EXE hook: pointer to ??? (called by AX=5D03h) < 46h DWORD SHARE.EXE hook: pointer to ??? (called by AX=5D04h) < 4Ah DWORD SHARE.EXE hook: pointer to ??? (called by AX=5D02h) < 4Eh DWORD SHARE.EXE hook -> FAR routine to lock region of file --- > ---DOS 4.x--- > 10h WORD maximum bytes/block of any block device > 12h DWORD pointer to disk buffer info (see below) > 16h DWORD pointer to array of drive info (see below) > 1Ah DWORD pointer to FCB table (if CONFIG.SYS contains FCBS=) > 1Eh WORD number of protected FCBs (the y in FCBS=x,y) > 20h BYTE number of block devices > 21h BYTE value of LASTDRIVE command in CONFIG.SYS (default 5) > 22h 18 BYTEs actual NUL device driver header (not a pointer!) > This is the first device on DOS's linked list of device > drivers. (see below for format) > 34h BYTE number of JOIN'ed drives??? > 35h WORD pointer within IBMDOS code segment to list of special program > names > 37h DWORD pointer to ??? > 3Bh DWORD pointer to chain of IFS (installable file system) drivers > 3Fh WORD the x in BUFFERS x,y (rounded up to multiple of 30 if in EMS) > 41h WORD the y in BUFFERS x,y > 43h BYTE boot drive??? (1=A:) > 44h BYTE ??? seems always to be zero > 45h BYTE flags??? > bit 7: MCA??? (clear on XT,AT,PS/2-30, set on PS/2-50,60) > 46h BYTE ??? > > Format of memory control block: > Offset Size Description > 00h BYTE block type: 5Ah if last block in chain, otherwise 4Dh > 01h WORD PSP segment of owner, 0000h if free, 0008h if belongs to DOS > 03h WORD size of memory block in paragraphs > 05h 3 BYTEs unused > ---DOS 3.x--- > 08h 8 BYTEs unused > ---DOS 4.x--- > 08h 8 BYTEs ASCII program name if PSP memory block, else garbage > null-terminated if less than 8 characters > Notes: under DOS 3.1+, the first memory block is the DOS data segment, > containing installable drivers, buffers, etc. > under DOS 4.x it is divided into subsegments, each with its own memory > control block (see below), the first of which is at offset 0000h > > Format of DOS 4.x data segment subsegment control blocks: > Offset Size Description > 00h BYTE subsegment type (blocks typically appear in this order) > "D" device driver > "E" device driver appendage > "I" IFS (Installable File System) driver > "F" FILES= control block storage area (for FILES>5) > "X" FCBS= control block storage area, if present > "C" BUFFERS EMS workspace area (if BUFFERS /X option used) > "B" BUFFERS= storage area > "L" LASTDRIVE= drive info table storage area > "S" STACKS= code and data area, if present (see below) > 01h WORD paragraph of subsegment start (usually the next paragraph) > 03h WORD size of subsegment in paragraphs > 05h 3 BYTEs unused > 08h 8 BYTEs for types "D" and "I", base name of file from which the driver > was loaded (unused for other types) > > Format of data at start of STACKS code segment (if present): > Offset Size Description > 00h WORD ??? > 02h WORD number of stacks (the x in STACKS=x,y) > 04h WORD size of stack control block array (should be 8*x) > 06h WORD size of each stack (the y in STACKS=x,y) > 08h DWORD ptr to STACKS data segment > 0Ch WORD offset in STACKS data segment of stack control block array > 0Eh WORD offset in STACKS data segment of last element of that array > 10h WORD offset in STACKS data segment of the entry in that array for > the next stack to be allocated (initially same as value in 0Eh > and works its way down in steps of 8 to the value in 0Ch as > hardware interrupts pre-empt each other) > Note: the STACKS code segment data may, if present, be located as follows: > DOS 3.2: The code segment data is at a paragraph boundary fairly early > in the IBMBIO segment (seen at 0070:0190h) > DOS 3.3: The code segment is at a paragraph boundary in the DOS data > segment, which may be determined by inspecting the segment > pointers of the vectors for those of interrupts 02h, 08h-0Eh, > 70h, 72-77h which have not been redirected by device drivers or > TSRs. > DOS 4.x: Identified by sub-segment control block type "S" within the DOS > data segment. > > Format of array elements in STACKS data segment: > Offset Size Description > 00h BYTE status: 00h=free, 01h=in use, 03h=corrupted by overflow of > higher stack. > 01h BYTE not used > 02h WORD previous SP > 04h WORD previous SS > 06h WORD ptr to word at top of stack (new value for SP). The word at the > top of the stack is preset to point back to this control block. > > SHARE.EXE hooks (DOS 3.1-4.01): > (offsets from first system file table--pointed at by ListOfLists+04h) > Offset Size Description > -3Ch DWORD pointer to FAR routine for ??? > -38h DWORD pointer to FAR routine for ??? > -34h DWORD pointer to FAR routine called on closing file??? > -30h DWORD pointer to FAR routine for ??? (called by AX=5D03h) > -2Ch DWORD pointer to FAR routine for ??? (called by AX=5D04h) > -28h DWORD pointer to FAR routine for ??? (called by AX=5D02h) > -24h DWORD pointer to FAR routine to lock region of file 6407c6941 < 52h DWORD SHARE.EXE hook -> FAR routine to unlock region of file --- > -20h DWORD pointer to FAR routine to unlock region of file 6414c6948 < 56h DWORD SHARE.EXE hook -> FAR routine to check if file region is locked --- > -1Ch DWORD pointer to FAR routine to check if file region is locked 6419c6953 < 5Ah DWORD SHARE.EXE hook: pointer to ??? (called by AX=5D05h) --- > -18h DWORD pointer to ??? (called by AX=5D05h) 6425c6959 < 5Eh DWORD SHARE.EXE hook: pointer to FAR routine for opening FCB??? --- > -14h DWORD pointer to FAR routine for opening FCB??? 6433c6967 < 62h DWORD SHARE.EXE hook: pointer to FAR routine for ??? --- > -10h DWORD pointer to FAR routine for ??? 6440c6974 < 66h DWORD SHARE.EXE hook: pointer to FAR routine for ??? --- > -0Ch DWORD pointer to FAR routine for ??? 6442,6443c6976,6977 < 6Ah DWORD SHARE.EXE hook: pointer to FAR routine for ??? < 6Eh DWORD SHARE.EXE hook -> FAR routine to update directory info in --- > -08h DWORD pointer to FAR routine for ??? > -04h DWORD pointer to FAR routine to update directory info in 6456,6468c6990 < Note: follows pointers at offset 2Bh in system file table < ---DOS 4.x--- < 10h WORD maximum bytes/block of any block device < 12h DWORD pointer to disk buffer info (see below) < 16h DWORD pointer to array of drive info (see below) < 1Ah DWORD pointer to FCB table (if CONFIG.SYS contains FCBS=) < 1Eh WORD size of FCB table < 20h BYTE number of block devices < 21h BYTE value of LASTDRIVE command in CONFIG.SYS (default 5) < 22h 18 BYTEs actual NUL device driver header (not a pointer!) < This is the first device on DOS's linked list of device < drivers. (see below for format) < 34h BYTE number of JOIN'ed drives??? --- > Note: follows ptr at offset 2Bh in system file table entries 6470,6481d6991 < Format of memory control block: < Offset Size Description < 00h BYTE block type: 5Ah if last block in chain, otherwise 4Dh < 01h WORD PSP segment of owner, 0000h if free, 0008h if belongs to DOS < 03h WORD size of memory block in paragraphs < 05h 3 BYTEs unused < ---DOS 3.x--- < 08h 8 BYTEs unused < ---DOS 4.x--- < 08h 8 BYTEs ASCII program name if PSP memory block, else garbage < null-terminated if less than 8 characters < 6509c7019 < Format of DOS 3+ system file tables and FCB tables: --- > Format of DOS 3.x system file tables and FCB tables: 6516a7027 > bit 15 set if this file opened via FCB 6532c7043 < 2Fh WORD (SHARE.EXE) ??? --- > 2Fh WORD (SHARE.EXE) network machine number which opened file??? 6536a7048,7083 > Format of DOS 4+ system file tables and FCB tables: > Offset Size Description > 00h DWORD pointer to next file table > 04h WORD number of files in this table > 06h 3Bh bytes per file > Offset Size Description > 00h WORD number of file handles referring to this file > 02h WORD file open mode (see AH=3Dh) > bit 15 set if this file opened via FCB > 04h BYTE file attribute > 05h WORD device info word (see AX=4400h) > 07h DWORD pointer to device driver header if character device > else pointer to DOS Device Control Block (see AH=32h) > 0Bh WORD starting cluster of file > 0Dh WORD file time in packed format (see AX=5700h) > 0Fh WORD file date in packed format (see AX=5700h) > 11h DWORD file size > 15h DWORD current offset in file > ---local file--- > 19h WORD relative cluster within file of last cluster read > 1Bh DWORD number of sector containing directory entry > 1Fh BYTE number of dir entry within sector (byte offset/32) > ---network redirector--- > 19h DWORD pointer to REDIRIFS record > 1Dh 3 BYTEs ??? > ------ > 20h 11 BYTEs filename in FCB format (no path/period, blank-padded) > 2Bh DWORD (SHARE.EXE) pointer to previous SFT sharing same file > 2Fh WORD (SHARE.EXE) network machine number which opened file??? > 31h WORD PSP segment of file's owner (see AH=26h) > 33h WORD offset within SHARE.EXE code segment of > sharing record (see below) 0000h = none > 35h WORD (local) absolute cluster number of last cluster read > (redirector) ??? > 37h DWORD pointer to IFS driver for file, 0000000h if native DOS > 6567a7115 > ---local drives--- 6571a7120,7123 > ---network drives--- > 49h DWORD pointer to a REDIRIFS record, else FFFFFFFFh > 4Dh WORD ???? > ------ 6576c7128,7130 < 51h 7 BYTEs unknown, seems to always be zeros --- > 51h BYTE ??? used by network > 52h DWORD pointer to IFS driver for this drive, 00000000h if native DOS > 56h WORD ??? 6580c7134 < 00h DWORD pointer to next driver or FFFFh if last driver --- > 00h DWORD pointer to next driver, offset=FFFFh if last driver 6584c7138 < bit 14 IOCTL supported --- > bit 14 IOCTL supported (see AH=44h) 6589c7143,7144 < bit 6 ??? (set by DOS 3.3 DISPLAY.SYS) --- > bit 6 Generic IOCTL call supported (command 13h) > (see AX=440Ch,440Dh) 6605c7160,7164 < bits 7-2 reserved --- > bit 7 reserved > bit 6 Generic IOCTL call supported (command 13h) > implies support for commands 17h and 18h > (see AX=440Ch,440Dh,440Eh,440Fh) > bits 5-2 reserved 6649c7208 < Format of DOS 4.x disk buffer info: --- > Format of DOS 4.00 disk buffer info: 6662a7222,7236 > Format of DOS 4.01 (from UR 25066 on) disk buffer info: > Offset Size Description > 00h DWORD pointer to array of chain heads (see below) > 04h WORD number of disk buffer chains (referred to as NDBCH below) > 06h DWORD pointer to lookahead buffer, zero if not present > 0Ah BYTE number of lookahead sectors, else zero (the y in BUFFERS=x,y) > 0Bh 9 BYTEs ??? > 14h DWORD pointer to workspace buffer, purpose ???, allocated in main > memory if BUFFERS/XS or /XD options in effect > 18h WORD EMS handle for buffers, zero if not in EMS > 1Ah WORD EMS physical page number used for buffers (usually 255) > 1Ch WORD ??? seems always to be 1 > 1Eh WORD segment of EMS physical page frame > 20h WORD ??? seems always to be zero > 6669c7243 < 06h WORD ??? seems always to be zero --- > 06h WORD number of dirty buffers on this chain??? 6708c7282 < Format of BPB: --- > Format of BIOS Parameter Block: 6733a7308 > SeeAlso: AH=2Eh 6739a7315 > SeeAlso: AH=26h 6743c7319 < DS:DX -> ASCIZ old name --- > DS:DX -> ASCIZ old name (drive and path allowed, no wildcards) 6748a7325 > SeeAlso: AH=17h 6798a7376 > SeeAlso: AH=48h,49h,4Ah 6807a7386 > SeeAlso: AX=5D0Ah 6819c7398 < 0Ah environment invalid --- > 0Ah environment invalid (usually >32K in length) 6919a7499 > SeeAlso: AH=3Ch 6929a7510 > SeeAlso: AH=3Ch 6994a7576,7577 > the Critical Error flag is used in conjunction with the InDOS flag > (see AH=34h) to determine when it is safe to enter DOS from a TSR 6996c7579 < DOS 2.x by forcing use of correct stack --- > DOS 2.x by forcing use of correct stack 7009a7593 > SeeAlso: AH=59h 7107c7691 < DS:SI -> ASCIZ relative path string --- > DS:SI -> ASCIZ relative path string or directory name 7115c7699,7703 < AX = ??? (0000h, 0040h, 004Eh, 0050h, 005Ch seen) --- > AH = 00h > AL = '\' if relative path refers to something in root directory > = uppercased last letter of relative path if relative path > refers to current directory or subdir of current directory > = 00h otherwise 7117,7120c7705,7715 < Note: if path string is on a JOINed drive, the returned name is the one that < would be needed if the drive were not JOINed; similarly for a SUBSTed < drive letter. Because of this, it is possible to get a qualified name < that is not legal with the current combination of SUBSTs and JOINs --- > Notes: the input path need not actually exist > letters are uppercased, forward slashes converted to backslashes, > asterisks converted to appropriate number of question marks, and > file and directory names are truncated to 8.3 if necessary. > '.' and '..' in the path are resolved > if path string is on a JOINed drive, the returned name is the one that > would be needed if the drive were not JOINed; similarly for a > SUBSTed drive letter. Because of this, it is possible to get a > qualified name that is not legal with the current combination of > SUBSTs and JOINs > SeeAlso: INT 2F/AX=1221h 7130a7726 > SeeAlso: AH=51h 7181a7778 > SeeAlso: AH=38h 7244a7842 > SeeAlso: AH=26h 7323a7922 > SeeAlso: AH=3Ch,3Dh 7797a8397 > AL = 02h if caller is running in the invisible partition 7948a8549,8579 > INT 21 - DOS v??? - SET OEM INT 21 HANDLER > AH = F8h > DS:DX -> OEM INT 21 handler for functions F9h to FFh > FFFFh:FFFFh resets to original handlers > > Notes: calls to AH=F9h through AH=FFH will return CF set and AX=1 (invalid > function) if no handler set > handler is called with all registers exactly as set by caller, and > should exit with IRET > --------------------------------------------- > INT 21 - DOS v??? - OEM FUNCTION > AH = F9h > --------------------------------------------- > INT 21 - DOS v??? - OEM FUNCTION > AH = FAh > --------------------------------------------- > INT 21 - DOS v??? - OEM FUNCTION > AH = FBh > --------------------------------------------- > INT 21 - DOS v??? - OEM FUNCTION > AH = FCh > --------------------------------------------- > INT 21 - DOS v??? - OEM FUNCTION > AH = FDh > --------------------------------------------- > INT 21 - DOS v??? - OEM FUNCTION > AH = FEh > --------------------------------------------- > INT 21 - DOS v??? - OEM FUNCTION > AH = FFh > --------------------------------------------- 7972a8604 > SeeAlso: INT 1B 8017a8650,8654 > Note: for DOS 3.1+, IGNORE (AL=00h) is turned into FAIL (AL=03h) on network > critical errors > if IGNORE specified but not allowed, it is turned into FAIL > if RETRY specified but not allowed, it is turned into FAIL > if FAIL specified but not allowed, it is turned into ABORT 8082a8720,8721 > Note: this is an obselete call > SeeAlso: INT 21/AH=31h ---cut---cut---cut---cut--- -- {backbone}!cs.cmu.edu!ralf ARPA: RALF@CS.CMU.EDU FIDO: Ralf Brown 1:129/46 BITnet: RALF%CS.CMU.EDU@CMUCCVMA AT&Tnet: (412)268-3053 (school) FAX: ask DISCLAIMER? |"Humor is laughing at what you haven't got when you ought to What's that?| have it." -- Langston Hughes