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

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

Changes to all parts of the project:

  • Minor size optimizations
  • Commented away some ALIGN JUMP_ALIGN directives in the Int13h handler (they are either in init procedures, procedures that are rarely called or are unnecessary due to conditional assembly)
  • Fixed what appears to be a typo in EBIOS.inc
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_GetDriveInformationToBufferInESSI
28%else
29 call AH25h_GetDriveInformationToBufferInESSI
30 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
31%endif
32
33
34;--------------------------------------------------------------------
35; AH25h_GetDriveInformationToBufferInESSI
36; Parameters:
37; DS:DI: Ptr to DPT (in RAMVARS segment)
38; ES:SI: Ptr to buffer to receive 512-byte drive information
39; Returns with INTPACK:
40; AH: Int 13h return status
41; CF: 0 if succesfull, 1 if error
42; Corrupts registers:
43; AL, BX, CX, DX
44;--------------------------------------------------------------------
45;ALIGN JUMP_ALIGN
46AH25h_GetDriveInformationToBufferInESSI:
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.