source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH25h_HDrvID.asm@ 165

Last change on this file since 165 was 165, checked in by aitotat@…, 14 years ago

Changes to XTIDE Universal BIOS:

  • Hopefully this commit is successful. Sorry for the mess.
File size: 1.8 KB
Line 
1; Project name : XTIDE Universal BIOS
2; Description : Int 13h function AH=25h, Get Drive Information.
3
4; Section containing code
5SECTION .text
6
7;--------------------------------------------------------------------
8; Int 13h function AH=25h, Get Drive Information.
9;
10; AH25h_HandlerForGetDriveInformation
11; Parameters:
12; ES: Same as in INTPACK
13; DL: Translated Drive number
14; DS:DI: Ptr to DPT (in RAMVARS segment)
15; SS:BP: Ptr to IDEPACK
16; Parameters on INTPACK:
17; ES:BX: Ptr to buffer to receive 512-byte drive information
18; Returns with INTPACK:
19; AH: Int 13h return status
20; CF: 0 if succesfull, 1 if error
21;--------------------------------------------------------------------
22ALIGN JUMP_ALIGN
23AH25h_HandlerForGetDriveInformation:
24 mov si, [bp+IDEPACK.intpack+INTPACK.bx]
25%ifdef USE_186
26 push Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
27 ; Fall to AH25h_GetDriveInformationToBufferInESSIfromDriveInDL
28%else
29 call AH25h_GetDriveInformationToBufferInESSIfromDriveInDL
30 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
31%endif
32
33
34;--------------------------------------------------------------------
35; AH25h_GetDriveInformationToBufferInESSIfromDriveInDL
36; Parameters:
37; DL: Translated Drive number
38; DS:DI: Ptr to DPT (in RAMVARS segment)
39; ES:SI: Ptr to buffer to receive 512-byte drive information
40; Returns with INTPACK:
41; AH: Int 13h return status
42; CF: 0 if succesfull, 1 if error
43; Corrupts registers:
44; AL, BX, CX, DX
45;--------------------------------------------------------------------
46AH25h_GetDriveInformationToBufferInESSIfromDriveInDL:
47 push es
48 push bp
49 push di
50 push si
51
52 call AccessDPT_GetDriveSelectByteToAL
53 mov bh, al
54 eMOVZX ax, BYTE [di+DPT.bIdevarsOffset]
55 xchg bp, ax
56 call Device_IdentifyToBufferInESSIwithDriveSelectByteInBH
57
58 pop si
59 pop di
60 pop bp
61 pop es
62 ret
Note: See TracBrowser for help on using the repository browser.