source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH23h_HFeatures.asm @ 526

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

Changes:

  • Update of the copyright notices to include the year 2013.
File size: 3.6 KB
Line 
1; Project name  :   XTIDE Universal BIOS
2; Description   :   Int 13h function AH=23h,
3;                   Set Controller Features Register.
4
5;
6; XTIDE Universal BIOS and Associated Tools
7; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
8;
9; This program is free software; you can redistribute it and/or modify
10; it under the terms of the GNU General Public License as published by
11; the Free Software Foundation; either version 2 of the License, or
12; (at your option) any later version.
13;
14; This program is distributed in the hope that it will be useful,
15; but WITHOUT ANY WARRANTY; without even the implied warranty of
16; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17; GNU General Public License for more details.
18; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19;
20
21; Section containing code
22SECTION .text
23
24;--------------------------------------------------------------------
25; Int 13h function AH=23h, Set Controller Features Register.
26;
27; AH23h_HandlerForSetControllerFeatures
28;   Parameters:
29;       AL, CX: Same as in INTPACK
30;       DL:     Translated Drive number
31;       DS:DI:  Ptr to DPT (in RAMVARS segment)
32;       SS:BP:  Ptr to IDEPACK
33;   Parameters on INTPACK:
34;       AL:     Feature Number (parameter to Features Register = subcommand)
35;   (Parameter registers are undocumented, these are specific for this BIOS):
36;       BL:     Parameter to Sector Count Register (subcommand specific)
37;       BH:     Parameter to LBA Low / Sector Number Register (subcommand specific)
38;       CL:     Parameter to LBA Middle / Cylinder Low Register (subcommand specific)
39;       CH:     Parameter to LBA High / Cylinder High Register (subcommand specific)
40;   Returns with INTPACK:
41;       AH:     Int 13h return status
42;       CF:     0 if successful, 1 if error
43;--------------------------------------------------------------------
44AH23h_HandlerForSetControllerFeatures:
45    xchg    si, ax      ; SI = Feature Number
46    mov     dx, [bp+IDEPACK.intpack+INTPACK.bx]
47%ifndef USE_186
48    call    AH23h_SetControllerFeatures
49    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
50%else
51    push    Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
52    ; Fall to AH23h_SetControllerFeatures
53%endif
54
55
56;--------------------------------------------------------------------
57; AH23h_SetControllerFeatures
58;   Parameters:
59;       DL:     Parameter to Sector Count Register (subcommand specific)
60;       DH:     Parameter to LBA Low / Sector Number Register (subcommand specific)
61;       CL:     Parameter to LBA Middle / Cylinder Low Register (subcommand specific)
62;       CH:     Parameter to LBA High / Cylinder High Register (subcommand specific)
63;       SI:     Feature Number (parameter to Features Register = subcommand)
64;       DS:DI:  Ptr to DPT (in RAMVARS segment)
65;       SS:BP:  Ptr to IDEPACK
66;   Returns:
67;       AH:     Int 13h return status
68;       CF:     0 if successful, 1 if error
69;   Corrupts registers:
70;       AL, BX, CX, DX
71;--------------------------------------------------------------------
72AH23h_SetControllerFeatures:
73    mov     al, COMMAND_SET_FEATURES
74    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_BSY, FLG_STATUS_BSY)
75    jmp     Idepack_StoreNonExtParametersAndIssueCommandFromAL
76
77
78;--------------------------------------------------------------------
79; AH23h_Enable8bitPioMode
80;   Parameters:
81;       DS:DI:  Ptr to DPT (in RAMVARS segment)
82;       SS:BP:  Ptr to IDEPACK
83;   Returns:
84;       AH:     Int 13h return status
85;       CF:     0 if successful, 1 if error
86;   Corrupts registers:
87;       AL, BX, CX, DX, SI
88;--------------------------------------------------------------------
89%ifdef MODULE_8BIT_IDE
90AH23h_Enable8bitPioMode:
91    mov     si, FEATURE_ENABLE_8BIT_PIO_TRANSFER_MODE
92    jmp     SHORT AH23h_SetControllerFeatures
93%endif
Note: See TracBrowser for help on using the repository browser.