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


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/VariablesAndDPTs/DrvDetectInfo.asm

    r397 r399  
    44
    55;
    6 ; XTIDE Universal BIOS and Associated Tools 
     6; XTIDE Universal BIOS and Associated Tools
    77; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    88;
     
    1111; the Free Software Foundation; either version 2 of the License, or
    1212; (at your option) any later version.
    13 ; 
     13;
    1414; This program is distributed in the hope that it will be useful,
    1515; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1616; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1717; GNU General Public License for more details.
    18 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html               
     18; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    1919;
    20                
     20
    2121; Section containing code
    2222SECTION .text
     
    4545    pop     ds
    4646
    47     add     si, BYTE ATA1.strModel              ; DS:SI now points drive name
    48     lea     di, [bx+DRVDETECTINFO.szDrvName]        ; ES:DI now points to name destination
     47    add     si, BYTE ATA1.strModel              ; DS:SI now points drive name (Clears CF)
     48    lea     di, [bx+DRVDETECTINFO.szDrvName]    ; ES:DI now points to name destination
    4949    mov     cx, MAX_HARD_DISK_NAME_LENGTH / 2   ; Max number of WORDs allowed
    5050.CopyNextWord:
     
    5353    stosw
    5454    loop    .CopyNextWord
    55     xor     ax, ax                              ; Zero AX and clear CF
     55    xchg    cx, ax                              ; Zero AX (CF already cleared from the ADD above)
    5656    stosw                                       ; Terminate with NULL
    5757
    5858    pop     si
    5959    pop     ds
    60        
     60
    6161    ret
    6262
     
    7474;--------------------------------------------------------------------
    7575DriveDetectInfo_ConvertDPTtoBX:
    76     mov     ax, di
    77     sub     ax, BYTE RAMVARS_size                   ; subtract off base of DPTs
     76    lea     ax, [di-RAMVARS_size]                   ; subtract off base of DPTs
    7877    mov     bl, DPT_DRVDETECTINFO_SIZE_MULTIPLIER   ; DRVDETECTINFO are a whole number multiple of DPT size
    79     mul     bl                             
     78    mul     bl
    8079    add     ax, BOOTVARS.rgDrvDetectInfo            ; add base of DRVDETECTINFO
    81     xchg    ax, bx
    82     ret 
     80    xchg    bx, ax
     81    ret
Note: See TracChangeset for help on using the changeset viewer.