Changeset 491 in xtideuniversalbios for trunk/Assembly_Library/Src/String/Char.asm


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/Assembly_Library/Src/String/Char.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
     
    2929;       %3:     Last accepted value in range
    3030;   Returns:
    31 ;       CF:     Set if character is range
     31;       CF:     Set if character in range
    3232;               (Jumps to Char_CharIsNotValid if before range)
    3333;   Corrupts registers:
     
    5151;       Nothing
    5252;--------------------------------------------------------------------
     53%ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
     54    %ifndef MODULE_HOTKEYS
     55        %define EXCLUDE
     56    %endif
     57%endif
     58
     59%ifndef EXCLUDE
    5360ALIGN STRING_JUMP_ALIGN
    5461Char_IsLowerCaseLetterInAL:
    5562    IS_BETWEEN_IMMEDIATES al, 'a', 'z'
    5663    ret
     64%endif
     65%undef EXCLUDE
     66
    5767
    5868;--------------------------------------------------------------------
     
    7282    ret
    7383%endif
     84
    7485
    7586;--------------------------------------------------------------------
     
    94105%endif
    95106
     107
    96108;--------------------------------------------------------------------
    97109; Char_IsDecimalDigitInAL
     
    110122    ret
    111123%endif
     124
    112125
    113126;--------------------------------------------------------------------
     
    141154%endif
    142155
     156
    143157;--------------------------------------------------------------------
    144158; Char_CharIsValid
     
    159173%endif
    160174
     175
     176%ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
     177    %ifndef MODULE_HOTKEYS
     178        %define EXCLUDE
     179    %endif
     180    %ifndef MODULE_STRINGS_COMPRESSED
     181        %undef EXCLUDE
     182    %endif
     183%endif
     184
     185%ifndef EXCLUDE
    161186ALIGN STRING_JUMP_ALIGN
    162187Char_CharIsNotValid:
    163188    clc
    164189    ret
     190%endif
     191%undef EXCLUDE
    165192
    166193
     
    181208%endif
    182209
    183                
     210
    184211;--------------------------------------------------------------------
    185212; Char_ALtoUpperCaseLetter
     
    191218;       Nothing
    192219;--------------------------------------------------------------------
    193 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS       
     220%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
    194221ALIGN STRING_JUMP_ALIGN
    195222Char_ALtoUpperCaseLetter:
     
    200227%endif
    201228
    202        
     229
    203230;--------------------------------------------------------------------
    204231; Char_ChangeCaseInAL
     
    210237;       Nothing
    211238;--------------------------------------------------------------------
     239%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
    212240Char_ChangeCaseInAL:
    213241    xor     al, 32
    214242.Return:
    215243    ret
     244%endif
     245
    216246
    217247;--------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.