www.delorie.com/djgpp/doc/rbinter/25.html   search  
Table 2543

)
Values critical error handler is called with:
	AH = type and processing flags (see #02544)
	AL = drive number if AH bit 7 clear
	BP:SI -> device driver header (see #01646 at INT 21/AH=52h)
		(BP:[SI+4] bit 15 set if character device)
	DI low byte contains error code if AH bit 7 set (see #02545)
	STACK:	DWORD	return address for INT 24 call
		WORD	flags pushed by INT 24
		WORD	original AX on entry to INT 21
		WORD	BX
		WORD	CX
		WORD	DX
		WORD	SI
		WORD	DI
		WORD	BP
		WORD	DS
		WORD	ES
		DWORD	return address for INT 21 call
		WORD	flags pushed by INT 21
Return: AL = action code (see #02546)
	SS,SP,DS,ES,BX,CX,DX preserved
Notes:	the only DOS calls the handler may make are INT 21/AH=01h-0Ch,30h,59h
	if the handler returns to the application by popping the stack, DOS
	  will be in an unstable state until the first call with AH > 0Ch
	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
	(DOS 3.0+) if a critical error occurs inside the critical error
	  handler, the DOS call is automatically failed (AL set to 03h and
	  the INT 24 call skipped)
	The initial critical error handler is located in the kernel and
	  always results in FAIL. However, by default it is replaced by
	  the critical error handler in the command interpreter when it
	  loads. This can be suppressed (e.g. for BBS systems) by loading
	  the primary DOS 3.00+ COMMAND.COM shell with the undocumented
	  option /F 'Fail'. This syntax is also supported with PTS/DOS 6.51+,
	  S/DOS 1.0+, and DR-OpenDOS 7.02+ (1997-11-13) COMMAND.COM, as well
	  as 4DOS.COM/NDOS.COM.	 OpenDOS 7.01+ COMMAND.COM (1997-03-21)
	  introduced this under /N, which is still supported by newer releases
	  (although it has a slightly different meaning now).
BUG:	DR DOS COMMAND.COM before 1998-05-07 caused incorrect error messages
	  to occur if the error code had a non-zero MSB (e.g. NWCDEX's
	  "IO error reading from device" instead of the correct
	  "not ready error").  This was fixed with the DR-OpenDOS 7.03
	  COMMAND.COM now passing the full error code to any critical error
	  handlers.


  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2000   by Ralf Brown     Updated Jul 2000