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
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 retriesTop
INT 41 - Z100 - Master 8259 - Processor Swap SeeAlso: INT 40"Z100",INT 42"Z100"Top
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
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 addressTop
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=0001hTop
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=0000hTop
INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT AX = 000Dh SeeAlso: AX=000EhTop
INT 41 CPU - MS Windows debugging kernel - TASK COMING IN AX = 000Eh SeeAlso: AX=000DhTop
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=47hTop
INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK AX = 004Fh Return: AX = F386h if debugger is present SeeAlso: INT 68/AX=4400hTop
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=004FhTop
INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT AX = 0051h ??? Return: ??? SeeAlso: AX=0050h,AX=0052hTop
INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT AX = 0052h BX = freed selector SeeAlso: AX=0050h,AX=0051h,AX=005ChTop
INT 41 CPU - MS Windows debugging kernel - LOAD TASK AX = 0059h ???:BX = CS:IP of new task's starting pointTop
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=0052hTop
INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT LOAD AX = 0060h ??? Return: ??? SeeAlso: AX=0061hTop
INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD AX = 0061h ??? Return: ??? SeeAlso: AX=0060hTop
INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING AX = 0062h STACK: BYTE exit code Return: ??? STACK unchanged??? SeeAlso: AX=0064hTop
INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq) AX = 0063hTop
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=0065hTop
INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED AX = 0065h ES = module handle SeeAlso: AX=0064hTop
INT 41 CPU - MS Windows debugging kernel - ERROR AX = 0066h Note: called by LogError() SeeAlso: AX=0067hTop
INT 41 CPU - MS Windows debugging kernel - PARAMETER ERROR AX = 0067h Note: called by LogParamError() SeeAlso: AX=0066hTop