Changeset 491 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h


Ignore:
Timestamp:
Dec 15, 2012, 2:46:29 PM (12 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/Handlers/Int13h
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.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
     
    155155    mov     dl, ROMVARS.ideVars0                        ; starting Idevars offset
    156156
    157     ; Get count of ALL Idevars structures, not just the ones that are configured.  This may seem odd, 
     157    ; Get count of ALL Idevars structures, not just the ones that are configured.  This may seem odd,
    158158    ; but it catches the .ideVarsSerialAuto structure, which would not be scanned if the count from
    159159    ; RamVars_GetIdeControllerCountToCX was used.  Unused controllers won't make a difference, since no DPT
     
    174174
    175175.done:
    176 .NoForeignDrivesToReset:
    177176    ret
  • 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
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH24h_HSetBlocks.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
     
    5959;--------------------------------------------------------------------
    6060AH24h_SetBlockSize:
     61%ifdef MODULE_8BIT_IDE
    6162    ; XT-CF does not support largest block size in DMA mode.
    62 %ifdef MODULE_8BIT_IDE
    63     call    AccessDPT_IsThisDeviceXTCF
    64     cmp     ah, DEVICE_8BIT_XTCF_DMA
    65     jne     SHORT .NoNeedToLimitBlockSize
    6663    cmp     al, XTCF_DMA_MODE_MAX_BLOCK_SIZE
    67     ja      SHORT AH1Eh_LoadInvalidCommandToAHandSetCF
     64    jbe     SHORT .NoNeedToLimitBlockSize
     65    cmp     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA
     66    je      SHORT AH1Eh_LoadInvalidCommandToAHandSetCF
    6867.NoNeedToLimitBlockSize:
    6968%endif ; MODULE_8BIT_IDE
Note: See TracChangeset for help on using the changeset viewer.