Changeset 399 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device


Ignore:
Timestamp:
Apr 19, 2012, 10:39:44 PM (12 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Added Power Management (Standby Timer) support to the BIOS and made it part of an optional module (MODULE_FEATURE_SETS). The total amount of ROM space used by this feature is 37 bytes. UNTESTED
  • Size optimizations (mostly inlining of procedures) and fixed a few bugs in AH9h_HInit.asm:
    1. DPT_ATA.bInitError would be cleared only if MODULE_SERIAL was not defined.
    2. The FLG_INITERROR_FAILED_TO_SET_BLOCK_MODE flag could never be set.
    3. InitializeBlockMode could potentially loop forever if there was an error.
  • Removed some odd looking code in .PushResetStatus in BootMenuPrintCfg.asm
  • Made some changes to XTIDECFG so it can be built.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeDPT.asm

    r376 r399  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1616; GNU General Public License for more details.
    17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html               
    18 ;       
     17; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     18;
    1919
    2020; Section containing code
     
    3434IdeDPT_Finalize:
    3535
     36%ifdef MODULE_FEATURE_SETS
     37;--------------------------------------------------------------------
     38; .DetectPowerManagementSupport
     39;   Parameters:
     40;       DS:DI:  Ptr to Disk Parameter Table
     41;       ES:SI:  Ptr to 512-byte ATA information read from the drive
     42;   Returns:
     43;       Nothing
     44;   Corrupts registers:
     45;       Nothing
     46;--------------------------------------------------------------------
     47.DetectPowerManagementSupport:
     48    test    BYTE [es:si+ATA6.wSetSup82], A6_wSetSup82_POWERMAN
     49    jz      .NoPowerManagementSupport
     50    or      BYTE [di+DPT.bFlagsHigh], FLGH_DPT_POWER_MANAGEMENT_SUPPORTED
     51.NoPowerManagementSupport:
     52%endif ; MODULE_FEATURE_SETS
     53
    3654;--------------------------------------------------------------------
    3755; .StoreBlockMode
    3856;   Parameters:
    3957;       DS:DI:  Ptr to Disk Parameter Table
    40 ;       ES:SI:  Ptr to 512-byte ATA information read from the drive
    41 ;       CS:BP:  Ptr to IDEVARS for the controller
    4258;   Returns:
    4359;       Nothing
    4460;   Corrupts registers:
    45 ;       AX
     61;       Nothing
    4662;--------------------------------------------------------------------
    4763.StoreBlockMode:
     
    7894    mov     [di+DPT_ADVANCED_ATA.wMinPioCycleTime], cx
    7995    mov     [di+DPT_ADVANCED_ATA.bPioMode], al
    80     or      [di+DPT.bFlagsHigh], ah 
     96    or      [di+DPT.bFlagsHigh], ah
    8197
    8298;--------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.