Interrupt List Release 61 Last change 16jul00
Copyright (c) 1989-1999,2000 Ralf Brown
Index for interrupt INT 41

Table of Contents by Order
41 - INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE ADDRESS [NOT A VECTOR!]
41 - INT 41 - Z100 - Master 8259 - Processor Swap
41 - INT 41 - TI Professional PC - IRQ1
41 - INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT
410000 - INT 41 CPU - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
410001 - INT 41 CPU - MS Windows debugging kernel - INPUT CHARACTER
41000D - INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT
41000E - INT 41 CPU - MS Windows debugging kernel - TASK COMING IN
410012 - INT 41 CPU - MS Windows debugging kernel - "OutputDebugString"
41004F - INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
410050 - INT 41 P - MS Windows debugging kernel - "DefineDebugSegment"
410051 - INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT
410052 - INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT
410059 - INT 41 CPU - MS Windows debugging kernel - LOAD TASK
41005C - INT 41 CPU - MS Windows debugging kernel - FREE INITIAL SEGMENT
410060 - INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT LOAD
410061 - INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD
410062 - INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING
410063 - INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
410064 - INT 41 CPU - MS Windows debugging kernel - DLL LOADED
410065 - INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED
410066 - INT 41 CPU - MS Windows debugging kernel - ERROR
410067 - INT 41 CPU - MS Windows debugging kernel - PARAMETER ERROR


41 - INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE ADDRESS [NOT A VECTOR!]
INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE ADDRESS [NOT A VECTOR!]
Notes:	the default parameter table array is located at F000h:E401h in 100%
	  compatible BIOSes; the pointer may be overridden by the hard disk
	  controller's BIOS to support drive formats unknown to the ROM BIOS
	not used by some PS/2 models
	BIOSes which support four hard drives may store the parameter tables
	  for drives 81h-83h immediately following the parameter table pointed
	  at by INT 41, with a separate copy of the drive 81h table for INT 46.
	  The check for such an arrangement is to test whether INT 46 points
	  somewhere other than exactly 16 bytes past INT 41, and the sixteen
	  bytes starting at offset 10h from INT 41 are identical to the sixteen
	  bytes pointed at by INT 46
	another arrangement for BIOSes which support four IDE drives is to have
	  four tables pointed at by INT 41 in the order primary master,
	  primary slave, secondary master, and secondary slave, in which case
	  (for example) a system with only primary master and secondary master
	  will have valid tables at offsets 00h and 20h, with garbage (but
	  sectors-per-track = 00h) at offsets 10h and 30h
SeeAlso: #03196,INT 13/AH=09h,INT 1E,INT 46"HARD DISK 1",INT 60"Adaptec"
SeeAlso: INT C0"AMI"

Format of fixed disk parameters:
Offset	Size	Description	(Table 03196)
 00h	WORD	number of cylinders
 02h	BYTE	number of heads
 03h	WORD	starting reduced write current cylinder (XT only, 0 for others)
 05h	WORD	starting write precompensation cylinder number
 07h	BYTE	maximum ECC burst length (XT only)
 08h	BYTE	control byte (see #03197,#03198)
 09h	BYTE	standard timeout (XT only, 0 for others)
 0Ah	BYTE	formatting timeout (XT and WD1002 only, 0 for others)
 0Bh	BYTE	timeout for checking drive (XT and WD1002 only, 0 for others)
 0Ch	WORD	cylinder number of landing zone (AT and later only)
 0Eh	BYTE	number of sectors per track (AT and later only)
 0Fh	BYTE	reserved
SeeAlso: #00273,#00277

Bitfields for XT fixed disk control byte:
Bit(s)	Description	(Table 03197)
 2-0	drive step speed
	000  3ms
	100  200ms
	101  70ms (default)
	110  3ms
	111  3ms
 5-3	unused
 6	disable ECC retries
 7	disable access retries

Bitfields for AT fixed disk control byte:
Bit(s)	Description	(Table 03198)
 0	unused
 1	reserved (0)  (disable IRQ)
 2	reserved (0)  (no reset)
 3	set if more than 8 heads
 4	always 0
 5	set if manufacturer's defect map on max cylinder+1  (AT and later only)
 6	disable ECC retries
 7	disable access retries

Top
41 - INT 41 - Z100 - Master 8259 - Processor Swap
INT 41 - Z100 - Master 8259 - Processor Swap
SeeAlso: INT 40"Z100",INT 42"Z100"

Top
41 - INT 41 - TI Professional PC - IRQ1
INT 41 - TI Professional PC - IRQ1
Note:	on the TI Pro, IRQ1 is connected to the same pin on the expansion bus
	  that IBM connects to IRQ3
SeeAlso: INT 0B"IRQ3",INT 40"TI Professional",INT 42"TI Professional"

Top
41 - INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT
INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT
	AL = function
	    01h put bytes sequentially
	    02h put bytes, ignoring sequential pointer
	    03h get bytes sequentially
	    04h get bytes, ignoring sequential pointer
	    05h get media title and boot option
	    06h get current device and directory
	    07h get current library and device
	    08h search directory
	DS:BX -> control block (see #03199)
Return: CF clear if successful
	CF set on error
	AL = 00h if operation attempted
	AL unchanged if unsupported function
SeeAlso: INT 40"Acorn",INT 42"Acorn",INT 43"Acorn"

Format of BBC Master control block:
Offset	Size	Description	(Table 03199)
 00h	BYTE	file handle
 01h	DWORD	pointer to data in either I/O processor or Tube processor
 05h	DWORD	number of bytes to be transferred
 09h	DWORD	transfer address

Top
410000 - INT 41 CPU - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
INT 41 CPU - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
	AX = 0000h
	DS:DX -> character
Note:	the kernel calls this function when it wants the user program to
	  output a character
SeeAlso: AX=0001h

Top
410001 - INT 41 CPU - MS Windows debugging kernel - INPUT CHARACTER
INT 41 CPU - MS Windows debugging kernel - INPUT CHARACTER
	AX = 0001h
Return: AL = character
Note:	the kernel calls this function when it needs to input a character
SeeAlso: AX=0000h

Top
41000D - INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT
INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT
	AX = 000Dh
SeeAlso: AX=000Eh

Top
41000E - INT 41 CPU - MS Windows debugging kernel - TASK COMING IN
INT 41 CPU - MS Windows debugging kernel - TASK COMING IN
	AX = 000Eh
SeeAlso: AX=000Dh

Top
410012 - INT 41 CPU - MS Windows debugging kernel - "OutputDebugString"
INT 41 CPU - MS Windows debugging kernel - "OutputDebugString"
	AX = 0012h
	DS:SI -> string (Windows 3.0)
	ES:SI -> string (Windows 3.1)
Return: nothing???
Note:	this function is called by the kernel when it wants to output a
	  string through the debugger
SeeAlso: AX=0050h,INT 68/AH=47h

Top
41004F - INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
	AX = 004Fh
Return: AX = F386h if debugger is present
SeeAlso: INT 68/AX=4400h

Top
410050 - INT 41 P - MS Windows debugging kernel - "DefineDebugSegment"
INT 41 P - MS Windows debugging kernel - "DefineDebugSegment"
	AX = 0050h
	BX = segment number in executable (0-based)
	CX = selector
	DX = instance handle
	SI = segment flags (0=code, 1=data)
	ES:DI -> module name of owner
Return: ???
SeeAlso: AX=0012h,AX=004Fh

Top
410051 - INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT
INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT
	AX = 0051h
	???
Return: ???
SeeAlso: AX=0050h,AX=0052h

Top
410052 - INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT
INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT
	AX = 0052h
	BX = freed selector
SeeAlso: AX=0050h,AX=0051h,AX=005Ch

Top
410059 - INT 41 CPU - MS Windows debugging kernel - LOAD TASK
INT 41 CPU - MS Windows debugging kernel - LOAD TASK
	AX = 0059h
	???:BX = CS:IP of new task's starting point

Top
41005C - INT 41 CPU - MS Windows debugging kernel - FREE INITIAL SEGMENT
INT 41 CPU - MS Windows debugging kernel - FREE INITIAL SEGMENT
	AX = 005Ch
	BX = freed selector
Note:	called only when KERNEL starts, once for CS and once for the DS alias
	  to CS
SeeAlso: AX=0052h

Top
410060 - INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT LOAD
INT 41 CPU - MS Windows debugging kernel -  END OF SEGMENT LOAD
	AX = 0060h
	???
Return: ???
SeeAlso: AX=0061h

Top
410061 - INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD
INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD
	AX = 0061h
	???
Return: ???
SeeAlso: AX=0060h

Top
410062 - INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING
INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING
	AX = 0062h
STACK:	BYTE	exit code
Return: ???
	STACK unchanged???
SeeAlso: AX=0064h

Top
410063 - INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
	AX = 0063h

Top
410064 - INT 41 CPU - MS Windows debugging kernel - DLL LOADED
INT 41 CPU - MS Windows debugging kernel - DLL LOADED
	AX = 0064h
	CX:BX = DLL entry point CS:IP
	SI = module handle
SeeAlso: AX=0062h,AX=0065h

Top
410065 - INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED
INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED
	AX = 0065h
	ES = module handle
SeeAlso: AX=0064h

Top
410066 - INT 41 CPU - MS Windows debugging kernel - ERROR
INT 41 CPU - MS Windows debugging kernel - ERROR
	AX = 0066h
Note:	called by LogError()
SeeAlso: AX=0067h

Top
410067 - INT 41 CPU - MS Windows debugging kernel - PARAMETER ERROR
INT 41 CPU - MS Windows debugging kernel - PARAMETER ERROR
	AX = 0067h
Note:	called by LogParamError()
SeeAlso: AX=0066h

Top
Home Interrupt Index: by Category by Number TOC: by Order Top