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

Last change on this file since 84 was 84, checked in by krille_n_@…, 13 years ago

Minor size optimizations in various files.

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   :   14.1.2011
5; Author        :   Tomi Tilli,
6;               :   Krister Nordvall (optimizations)
7; Description   :   Int 13h function AH=14h, Controller Internal Diagnostic.
8
9; Section containing code
10SECTION .text
11
12;--------------------------------------------------------------------
13; Int 13h function AH=14h, Controller Internal Diagnostic.
14;
15; AH14h_HandlerForControllerInternalDiagnostic
16;   Parameters:
17;       AH:     Bios function 14h
18;       DL:     Drive number (8xh)
19;   Parameters loaded by Int13h_Jump:
20;       DS:     RAMVARS segment
21;   Returns:
22;       AH:     BIOS Error code
23;       AL:     0 (custom for this BIOS: .bReset byte from DPT)
24;       CF:     0 if succesfull, 1 if error
25;       IF:     1
26;   Corrupts registers:
27;       Flags
28;--------------------------------------------------------------------
29ALIGN JUMP_ALIGN
30AH14h_HandlerForControllerInternalDiagnostic:
31    call    FindDPT_ForDriveNumber      ; DS:DI now points to DPT
32    mov     al, [di+DPT.bReset]         ; Load reset byte to AL
33    test    al, al                      ; Any error?
34    mov     ah, RET_HD_RESETFAIL        ; Assume there was an error
35    stc
36    jnz     SHORT .Return
37    xor     ah, ah                      ; Zero AH and CF since success
38.Return:
39    jmp     Int13h_PopDiDsAndReturn
Note: See TracBrowser for help on using the repository browser.