Ignore:
Timestamp:
Nov 13, 2011, 3:38:40 PM (12 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes to all parts of the project:

  • Size optimizations.
  • Added a define (EXCLUDE_FROM_XTIDECFG) to exclude unused library code from XTIDECFG.
  • Tried to minimize time spent with interrupts disabled.
  • Some minor attempts to improve speed (reordering instructions etc).
  • Tried to improve readability, did some cleanup and fixed some errors in comments.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Assembly_Library/Src/Menu/Dialog/DialogProgress.asm

    r73 r181  
    1 ; File name     :   DialogProgress.asm
    21; Project name  :   Assembly Library
    3 ; Created date  :   15.8.2010
    4 ; Last update   :   10.12.2010
    5 ; Author        :   Tomi Tilli
    62; Description   :   Displays progress bar dialog and starts progress task.
    73
     
    4137    lds     si, [bp+DIALOG.fpDialogIO]
    4238    mov     bx, [si+PROGRESS_DIALOG_IO.wMaxProgressValue]
    43     MIN_U   ax, bx
    44     cmp     ax, bx  ; Make sure that last progress character is shown
    45     je      SHORT .UpdateProgressBar
    46 
     39    cmp     ax, bx
     40    jb      SHORT .AXlessThanBX
     41    mov     ax, bx
     42    jmp     SHORT .UpdateProgressBar
     43ALIGN JUMP_ALIGN
     44.AXlessThanBX:
    4745    mov     bx, ax
    4846    sub     bx, [si+PROGRESS_DIALOG_IO.wCurrentProgressValue]
     
    172170ALIGN JUMP_ALIGN
    173171DrawProgressBarFromDialogIoInDSSI:
    174     call    .GetFullCharsToCXandEmptyCharsToDXwithDialogIoInDSSI
    175 
    176     mov     al, PROGRESS_COMPLETE_CHARACTER
    177     call    .RepeatProgressCharacterCXtimesFromAL
    178 
    179     mov     cx, dx
    180     mov     al, PROGRESS_INCOMPLETE_CHARACTER
    181     jmp     SHORT .RepeatProgressCharacterCXtimesFromAL
    182 
    183 ;--------------------------------------------------------------------
    184 ; .GetFullCharsToCXandEmptyCharsToDXwithDialogIoInDSSI
    185 ;   Parameters:
    186 ;       DS:SI:  Ptr to PROGRESS_DIALOG_IO
    187 ;       SS:BP:  Ptr to DIALOG
    188 ;   Returns:
    189 ;       CX:     Number of full progress bar characters
    190 ;       DX:     Number of empty progress bar characters
    191 ;   Corrupts:
    192 ;       AX, BX
    193 ;--------------------------------------------------------------------
    194 ALIGN JUMP_ALIGN
    195 .GetFullCharsToCXandEmptyCharsToDXwithDialogIoInDSSI:
     172    ; Get full chars to CX and empty chars to DX
    196173    call    MenuLocation_GetMaxTextLineLengthToAX
    197174    mov     cx, ax
     
    200177    div     bx
    201178    xchg    cx, ax      ; AX = Text line length, CX = Number of full chars
    202 
    203179    sub     ax, cx
    204180    xchg    dx, ax      ; DX = Number of empty chars
    205     ret
     181
     182    mov     al, PROGRESS_COMPLETE_CHARACTER
     183    call    .RepeatProgressCharacterCXtimesFromAL
     184
     185    mov     cx, dx
     186    mov     al, PROGRESS_INCOMPLETE_CHARACTER
     187    ; Fall to .RepeatProgressCharacterCXtimesFromAL
    206188
    207189;--------------------------------------------------------------------
     
    239221    ret
    240222
    241    
     223
    242224;--------------------------------------------------------------------
    243225; DrawTimeElapsedFromDX
     
    286268
    287269    sub     cx, [si+PROGRESS_DIALOG_IO.wMinProgressValue]
    288     jcxz    .PreventDivisionByZero
     270    jz      SHORT .PreventDivisionByZero
    289271    div     cx          ; AX = Estimated ticks left
    290272    xchg    dx, ax
    291     jmp     SHORT FormatTicksFromDX
     273    SKIP2B  f   ; cmp ax, <next instruction>
    292274.PreventDivisionByZero:
    293275    xor     dx, dx
Note: See TracChangeset for help on using the changeset viewer.