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


Ignore:
Timestamp:
Dec 15, 2012, 2:46:29 PM (11 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Added a new define (USE_UNDOC_INTEL) that enables optimizations possible by using undocumented instructions available on all Intel processors and truly compatible clones. AFAIK the only exceptions are the NEC V-series and the Sony CXQ70108 processors so this option should be safe for use on the AT builds.
  • Building BIOSDRVS or the BIOS without MODULE_STRINGS_COMPRESSED would fail due to the recent code exclusions so I changed them a bit. Also fixed the mistaken change to Main.asm
  • Changed the Tandy specific info in Configuration_FullMode.txt so it matches the info in the Wiki.
  • Optimizations and fixes in general.
Location:
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AccessDPT.asm

    r473 r491  
    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
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Section containing code
     
    6767AccessDPT_GetDeviceControlByteToAL:
    6868%ifdef MODULE_IRQ
     69
     70%ifndef USE_UNDOC_INTEL
    6971    xor     al, al
    70     test    BYTE [di+DPT.bFlagsLow], FLGL_DPT_ENABLE_IRQ
     72%endif
     73
     74    test    BYTE [di+DPT.bFlagsLow], FLGL_DPT_ENABLE_IRQ    ; Clears CF
     75
     76%ifdef USE_UNDOC_INTEL
     77    eSALC   ; Clears AL using CF while preserving flags
     78%endif
     79
    7180    jnz     SHORT .EnableDeviceIrq
    7281    or      al, FLG_DEVCONTROL_nIEN ; Disable IRQ
     
    7483%else
    7584    mov     al, FLG_DEVCONTROL_nIEN ; Disable IRQ
    76 %endif
     85%endif ; MODULE_IRQ
    7786    ret
    7887
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm

    r445 r491  
    8181AtaGeometry_GetLCHStoAXBLBHfromAtaInfoInESSIandTranslateModeInDX:
    8282    call    AtaGeometry_GetPCHStoAXBLBHfromAtaInfoInESSI
    83     ; Fall to AtaGeometry_GetLCHStoAXBLBHfromPCHSinAXBLBH
     83    ; Fall to AtaGeometry_GetLCHStoAXBLBHfromPCHSinAXBLBHandTranslateModeInDX
    8484
    8585AtaGeometry_GetLCHStoAXBLBHfromPCHSinAXBLBHandTranslateModeInDX:
    8686    ; Check if user defined translate mode
    87     test    dx, dx
    88     jnz     SHORT .CheckIfLargeTranslationWanted
     87    dec     dx                      ; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL
     88    jns     SHORT .CheckIfLargeTranslationWanted
    8989    MIN_U   ax, MAX_LCHS_CYLINDERS  ; TRANSLATEMODE_NORMAL maximum cylinders
    9090    inc     dx
    9191.CheckIfLargeTranslationWanted:
    92     dec     dx                      ; Set ZF if TRANSLATEMODE_LARGE
    9392    jz      SHORT ConvertPCHfromAXBLtoRevisedEnhancedCHinAXBL
    9493    dec     dx                      ; Set ZF if TRANSLATEMODE_ASSISTED_LBA
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/BootVars.asm

    r489 r491  
    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
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Section containing code
     
    3333BootVars_Initialize:
    3434%ifdef MODULE_8BIT_IDE
    35     mov     WORD [es:BOOTVARS.wNextXTCFportToScan], XTCF_BASE_PORT_1
     35    mov     WORD [es:BOOTVARS.wNextXTCFportToScan], XTCF_BASE_PORT_DETECTION_SEED
    3636%endif
    3737
     
    7272
    7373%endif ; MODULE_HOTKEYS
    74 
    75 
    76 %ifdef MODULE_8BIT_IDE
    77 ;--------------------------------------------------------------------
    78 ; BootVars_GetNextXTCFportToDetectToDX
    79 ;   Parameters:
    80 ;       ES:     BDA Segment
    81 ;   Returns:
    82 ;       DX:     Next XT-CF port to detect
    83 ;   Corrupts registers:
    84 ;       AX
    85 ;--------------------------------------------------------------------
    86 BootVars_GetNextXTCFportToDetectToDX:
    87     mov     dx, [es:BOOTVARS.wNextXTCFportToScan]
    88     test    dl, dl
    89     jz      SHORT .NextOneIs240hor340h
    90     add     WORD [es:BOOTVARS.wNextXTCFportToScan], XTCF_BASE_PORT_3 - XTCF_BASE_PORT_2
    91     ret
    92 .NextOneIs240hor340h:
    93     mov     BYTE [es:BOOTVARS.wNextXTCFportToScan], XTCF_BASE_PORT_2 & 0FFh ; 40h
    94     ret     
    95 %endif ; MODULE_8BIT_IDE
Note: See TracChangeset for help on using the changeset viewer.