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

Last change on this file since 444 was 376, checked in by gregli@…, 12 years ago

WIDE checkin... Added copyright and license information to sorce files, as per the GPL instructions for usage.

File size: 3.0 KB
RevLine 
[148]1; Project name : XTIDE Universal BIOS
[3]2; Description : Int 13h function AH=23h,
3; Set Controller Features Register.
4
[376]5;
6; XTIDE Universal BIOS and Associated Tools
7; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 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
[3]21; Section containing code
22SECTION .text
23
24;--------------------------------------------------------------------
25; Int 13h function AH=23h, Set Controller Features Register.
26;
27; AH23h_HandlerForSetControllerFeatures
28; Parameters:
[148]29; AL, CX: Same as in INTPACK
30; DL: Translated Drive number
31; DS:DI: Ptr to DPT (in RAMVARS segment)
[150]32; SS:BP: Ptr to IDEPACK
33; Parameters on INTPACK:
[3]34; AL: Feature Number (parameter to Features Register = subcommand)
[150]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:
[148]41; AH: Int 13h return status
[294]42; CF: 0 if successful, 1 if error
[148]43;--------------------------------------------------------------------
44AH23h_HandlerForSetControllerFeatures:
[150]45 xchg si, ax ; SI = Feature Number
46 mov dx, [bp+IDEPACK.intpack+INTPACK.bx]
[148]47%ifndef USE_186
48 call AH23h_SetControllerFeatures
49 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
50%else
51 push Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
[162]52 ; Fall to AH23h_SetControllerFeatures
[148]53%endif
54
55
56;--------------------------------------------------------------------
57; AH23h_SetControllerFeatures
58; Parameters:
[150]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)
[148]64; DS:DI: Ptr to DPT (in RAMVARS segment)
[150]65; SS:BP: Ptr to IDEPACK
[3]66; Returns:
67; AH: Int 13h return status
[294]68; CF: 0 if successful, 1 if error
[3]69; Corrupts registers:
[150]70; AL, BX, CX, DX
[3]71;--------------------------------------------------------------------
[148]72AH23h_SetControllerFeatures:
[150]73 mov al, COMMAND_SET_FEATURES
74 mov bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_BSY, FLG_STATUS_BSY)
75 jmp Idepack_StoreNonExtParametersAndIssueCommandFromAL
Note: See TracBrowser for help on using the repository browser.