Changeset 505 in xtideuniversalbios for trunk/Assembly_Library/Src


Ignore:
Timestamp:
Feb 25, 2013, 4:23:09 PM (11 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Reverted the changes to MenuEvents.inc done in r492 since they broke the F1 key function in XTIDECFG.
  • Added a tail-call optimized variant of the CALL_DISPLAY_LIBRARY macro (JMP_DISPLAY_LIBRARY).
  • Put a block size limit in AH1Eh_ChangeXTCFmodeBasedOnControlRegisterInAL. I think it's needed but if not, it's easy to remove.
  • Other optimizations and fixes.
Location:
trunk/Assembly_Library/Src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Assembly_Library/Src/Display/DisplayFormatCompressed.asm

    r445 r505  
    139139
    140140.PrintDigit:
    141     add     al, 90h                     ; Convert binary digit in AL to ASCII hex digit (0 - 9 or A - F)
    142     daa
    143     adc     al, 40h
    144     daa
     141    cmp     al, 10                      ; Convert binary digit in AL to ASCII hex digit ('0'-'9' or 'A'-'F')
     142    sbb     al, 69h
     143    das
    145144
    146145    call    DisplayPrint_CharacterFromAL
  • trunk/Assembly_Library/Src/Display/DisplayPrint.asm

    r492 r505  
    306306%endif
    307307
    308 %ifndef EXCLUDE             
     308%ifndef EXCLUDE
    309309;--------------------------------------------------------------------
    310310; DisplayPrint_RepeatCharacterFromALwithCountInCX
     
    397397;   Parameters:
    398398;       AL:     Character to display
    399 ;               Zero value is ignored (no characer is printed)
     399;               Zero value is ignored (no character is printed)
    400400;       DS:     BDA segment (zero)
    401401;       ES:DI:  Ptr to cursor location in video RAM
     
    407407ALIGN DISPLAY_JUMP_ALIGN
    408408DisplayPrint_CharacterFromAL:
    409     test    al,al
     409    test    al, al
    410410    jz      DisplayPrint_Ret
    411411
  • trunk/Assembly_Library/Src/Menu/CharOutLineSplitter.asm

    r445 r505  
    4545    xchg    ax, dx          ; AL = First text line column offset
    4646    mov     ah, dl          ; AH = Last text line column offset
    47     CALL_DISPLAY_LIBRARY SetCharacterOutputParameterFromAX
    48     ret
     47    JMP_DISPLAY_LIBRARY SetCharacterOutputParameterFromAX
    4948
    5049
  • trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm

    r376 r505  
    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
    1818;
     
    197197    call    .FindMatchingFilesAndPrintThemToOffScreenBuffer
    198198
    199     CALL_DISPLAY_LIBRARY PopDisplayContext
    200     ret
     199    JMP_DISPLAY_LIBRARY PopDisplayContext
    201200
    202201;--------------------------------------------------------------------
     
    372371ALIGN JUMP_ALIGN
    373372.FormatStringInCSSIandReturn:
    374     CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    375     ret
     373    JMP_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    376374
    377375
     
    755753    call    MenuText_PrepareToDrawInformationArea
    756754    mov     si, g_szLoadingPleaseWait
    757     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    758     ret
     755    JMP_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    759756
    760757
  • trunk/Assembly_Library/Src/Menu/Dialog/DialogProgress.asm

    r491 r505  
    216216ALIGN JUMP_ALIGN
    217217.RepeatProgressCharacterCXtimesFromAL:
    218     jcxz    .NothingToRepeat
    219     CALL_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX
    220 ALIGN JUMP_ALIGN, ret
    221 .NothingToRepeat:
    222     ret
     218    jcxz    NothingToRepeat
     219    JMP_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX
    223220
    224221
     
    236233    mov     bx, [si+PROGRESS_DIALOG_IO.wMaxProgressValue]
    237234    sub     bx, [si+PROGRESS_DIALOG_IO.wMinProgressValue]
     235NothingToRepeat:
    238236    ret
    239237
  • trunk/Assembly_Library/Src/Menu/Dialog/DialogWord.asm

    r376 r505  
    1 ; File name     :   DialogWord.asm
    21; Project name  :   Assembly Library
    3 ; Created date  :   10.8.2010
    4 ; Last update   :   18.11.2010
    5 ; Author        :   Tomi Tilli
    62; Description   :   Displays word input dialog.
    73
    84;
    9 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    106; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    117;
     
    1410; the Free Software Foundation; either version 2 of the License, or
    1511; (at your option) any later version.
    16 ; 
     12;
    1713; This program is distributed in the hope that it will be useful,
    1814; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1915; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    20 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    2117; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    2218;
    23        
     19
    2420
    2521; Section containing code
     
    142138
    143139    xchg    ax, dx
    144     CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
    145     ret
     140    JMP_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
     141
  • trunk/Assembly_Library/Src/Menu/MenuAttributes.asm

    r376 r505  
    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
    17 ; GNU General Public License for more details.     
     17; GNU General Public License for more details.
    1818; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    1919;
    20        
     20
    2121
    2222; Struct containing border characters for different types of menu window lines
     
    4848MenuAttribute_SetToDisplayContextFromTypeInSI:
    4949    call    MenuAttribute_GetToAXfromTypeInSI
    50     CALL_DISPLAY_LIBRARY SetCharacterAttributeFromAL
    51     ret
     50    JMP_DISPLAY_LIBRARY SetCharacterAttributeFromAL
    5251
    5352
  • trunk/Assembly_Library/Src/Menu/MenuBorders.asm

    r376 r505  
    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
    1818;
    19        
     19
    2020
    2121; Struct containing border characters for different types of menu window lines
     
    296296ALIGN MENU_JUMP_ALIGN
    297297PrintNewlineToEndBorderLine:
    298     CALL_DISPLAY_LIBRARY PrintNewlineCharacters
    299     ret
     298    JMP_DISPLAY_LIBRARY PrintNewlineCharacters
    300299
    301300
     
    325324    call    MenuBorders_PrintMultipleBorderCharactersFromAL ; AL does not matter
    326325
    327     CALL_DISPLAY_LIBRARY PopDisplayContext
    328     ret
     326    JMP_DISPLAY_LIBRARY PopDisplayContext
    329327
    330328
     
    365363ALIGN MENU_JUMP_ALIGN
    366364MenuBorders_PrintSingleBorderCharacterFromAL:
    367     CALL_DISPLAY_LIBRARY PrintCharacterFromAL
    368     ret
     365    JMP_DISPLAY_LIBRARY PrintCharacterFromAL
    369366
    370367ALIGN MENU_JUMP_ALIGN
  • trunk/Assembly_Library/Src/Menu/MenuEvent.asm

    r492 r505  
    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
    1818;
    19        
     19
    2020
    2121; Section containing code
     
    5858    jmp     SHORT MenuEvent_SendFromBX
    5959%endif
    60        
     60
    6161
    6262%ifdef MENUEVENT_IDLEPROCESSING_ENABLE
     
    155155;       AX, BX, DX
    156156;--------------------------------------------------------------------
    157 %ifdef MENUEVENT_KeyStrokInAX
     157%ifdef MENUEVENT_KeyStrokeInAX
    158158ALIGN MENU_JUMP_ALIGN
    159159MenuEvent_KeyStrokeInAX:
  • trunk/Assembly_Library/Src/Menu/MenuText.asm

    r376 r505  
    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
    1818;
    19        
     19
    2020
    2121; Section containing code
     
    4040    jmp     SHORT MenuText_ClearInformationArea.ClearCLlinesOfText
    4141%endif
    42        
     42
    4343ALIGN MENU_JUMP_ALIGN
    4444MenuText_ClearInformationArea:
     
    5353    mov     al, ' '
    5454    CALL_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX
    55     CALL_DISPLAY_LIBRARY PopDisplayContext
    56     ret
     55    JMP_DISPLAY_LIBRARY PopDisplayContext
    5756
    5857
     
    220219
    221220    xchg    ax, bx
    222     CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
    223     ret
     221    JMP_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
    224222
    225223
  • trunk/Assembly_Library/Src/TimerTest.asm

    r376 r505  
    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; Include .inc files
     
    109109;   Parameters:
    110110;       AX:     Difference in register and memory access durations
    111 ;               (Precise Event Timer Ticks) 
     111;               (Precise Event Timer Ticks)
    112112;   Returns:
    113113;       AX:     Duration for single BYTE in nanosecs
     
    182182    push    dx
    183183    push    ax
    184     CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    185     ret
     184    JMP_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    186185
    187186
Note: See TracChangeset for help on using the changeset viewer.