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

Last change on this file since 35 was 35, checked in by aitotat, 14 years ago

Cleaned recent changes a bit to save few bytes.

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   :   24.8.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.