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.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm

    r477 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
     
    6363    call    AccessDPT_IsThisDeviceXTCF
    6464    jne     SHORT XTCFnotFound
    65     and     ax, BYTE 7Fh                ; Subcommand now in AX
     65    and     ax, BYTE 7Fh                ; Subcommand now in AX (clears AH and CF)
    6666    jz      SHORT .ReturnWithSuccess    ; IS_THIS_DRIVE_XTCF
    6767
     
    7070    jnz     SHORT .SkipReadXtcfControlRegisterToDH
    7171    mov     dx, [di+DPT.wBasePort]
    72     add     dl, XTCF_CONTROL_REGISTER
     72    add     dl, XTCF_CONTROL_REGISTER   ; Will never overflow (keeps CF cleared)
    7373    in      al, dx
    7474    mov     [bp+IDEPACK.intpack+INTPACK.dh], al
    7575.ReturnWithSuccess:
    76     xor     ah, ah
    77     ret
     76    ret     ; With AH and CF cleared
     77
    7878.SkipReadXtcfControlRegisterToDH:
    79 
    8079    ; WRITE_DH_TO_XTCF_CONTROL_REGISTER
    8180    dec     ax                          ; Subcommand
     
    122121    mov     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_PIO8
    123122    ; Fall to .Enable8bitPioMode
    124    
     123
    125124    ; We always need to enable 8-bit mode since 16-bit mode is restored
    126     ; when controller is reset (AH=0h or Dh)
    127 .Enable8bitPioMode: 
     125    ; when controller is reset (AH=00h or 0Dh)
     126.Enable8bitPioMode:
    128127    jmp     AH23h_Enable8bitPioMode
    129128
     
    143142AH1Eh_DetectXTCFwithBasePortInDX:
    144143    push    dx
    145     add     dl, XTCT_CONTROL_REGISTER_INVERTED_in   ; set DX to XT-CF config register (inverted)
     144    add     dl, XTCF_CONTROL_REGISTER_INVERTED_in   ; set DX to XT-CF config register (inverted)
    146145    in      al, dx      ; get value
    147146    mov     ah, al      ; save in ah
Note: See TracChangeset for help on using the changeset viewer.