[comp.sys.ibm.pc] Interrupt list diffs INTERRUP.A v89.4 -> v89.5

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