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

Last change on this file since 89 was 84, checked in by krille_n_@…, 14 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.