source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH14h_HDiag.asm@ 15

Last change on this file since 15 was 3, checked in by Tomi Tilli, 15 years ago
File size: 1.2 KB
Line 
1; File name : AH14h_HDiag.asm
2; Project name : IDE BIOS
3; Created date : 28.9.2007
4; Last update : 12.4.2010
5; Author : Tomi Tilli
6; Description : Int 13h function AH=14h, Controller Internal Diagnostic.
7
8; Section containing code
9SECTION .text
10
11;--------------------------------------------------------------------
12; Int 13h function AH=14h, Controller Internal Diagnostic.
13;
14; AH14h_HandlerForControllerInternalDiagnostic
15; Parameters:
16; AH: Bios function 14h
17; DL: Drive number (8xh)
18; Parameters loaded by Int13h_Jump:
19; DS: RAMVARS segment
20; Returns:
21; AH: BIOS Error code
22; AL: 0 (custom for this BIOS: .bReset byte from DPT)
23; CF: 0 if succesfull, 1 if error
24; IF: 1
25; Corrupts registers:
26; Flags
27;--------------------------------------------------------------------
28ALIGN JUMP_ALIGN
29AH14h_HandlerForControllerInternalDiagnostic:
30 call FindDPT_ForDriveNumber ; DS:DI now points to DPT
31 mov al, [di+DPT.bReset] ; Load reset byte to AL
32 test al, al ; Any error?
33 jnz SHORT .ReturnError
34 xor ah, ah ; Zero AH and CF since success
35 jmp Int13h_PopDiDsAndReturn
36.ReturnError:
37 mov ah, RET_HD_RESETFAIL
38 stc
39 jmp Int13h_PopDiDsAndReturn
Note: See TracBrowser for help on using the repository browser.