Changeset 9 in xtideuniversalbios for trunk/Configurator/Src/Libraries/menu/menuloop.asm


Ignore:
Timestamp:
May 25, 2010, 5:01:46 PM (14 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Now assembles with Yasm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Configurator/Src/Libraries/menu/menuloop.asm

    r2 r9  
    22; Project name  :   Menu library
    33; Created date  :   11.11.2009
    4 ; Last update   :   10.12.2009
     4; Last update   :   25.5.2010
    55; Author        :   Tomi Tilli
    66; Description   :   ASM library to menu system.
     
    9292; MenuLoop_SendEvent        Sends any event to user event handler
    9393;   Parameters:
    94 ;       BX:     Event code
     94;       BX:     Event code (MenuLoop_SendEvent only)
    9595;       DX:     Event parameter (event specific)
    9696;       SS:BP:  Ptr to MENUVARS
     
    193193    mov     [bp+MENUVARS.wItemSel], ax      ; Store new index
    194194    cmp     ax, [bp+MENUVARS.wItemTop]      ; Need to scroll?
    195     jae     .DrawSelection                  ;  If not, go to draw selection
     195    jb      SHORT .ScrollUp
     196    jmp     .DrawSelection                  ;  If not, go to draw selection
     197ALIGN JUMP_ALIGN
     198.ScrollUp:
    196199    dec     WORD [bp+MENUVARS.wItemTop]     ; Scroll
    197200    jmp     .ScrollMenu
     
    222225    add     bx, [bp+MENUVARS.wItemTop]      ; BX to one past last visible index
    223226    cmp     ax, bx                          ; Need to scroll?
    224     jb      .DrawSelection                  ;  If not, go to draw selection
     227    jae     .ScrollDown
     228    jmp     .DrawSelection
     229ALIGN JUMP_ALIGN
     230.ScrollDown:
    225231    inc     WORD [bp+MENUVARS.wItemTop]     ; Scroll
    226232    jmp     .ScrollMenu
     
    236242    jmp     .ScrollMenu
    237243%endif
     244
     245    ; HOME pressed
     246ALIGN JUMP_ALIGN
     247.KeyHome:
     248    xor     ax, ax
     249    mov     [bp+MENUVARS.wItemSel], ax
     250    mov     [bp+MENUVARS.wItemTop], ax
     251    jmp     .ScrollMenu
     252
     253    ; END pressed
     254ALIGN JUMP_ALIGN
     255.KeyEnd:
     256    mov     ax, [bp+MENUVARS.wItemCnt]      ; Load number if menuitems
     257    mov     bx, ax                          ; Copy menuitem count to BX
     258    dec     ax                              ; Decrement for last index
     259    mov     [bp+MENUVARS.wItemSel], ax      ; Store new selection
     260    sub     bl, [bp+MENUVARS.bVisCnt]       ; BX to first menuitem to draw
     261    sbb     bh, 0
     262    mov     [bp+MENUVARS.wItemTop], bx      ; Store first menuitem to draw
     263    jnc     .ScrollMenu
     264    mov     WORD [bp+MENUVARS.wItemTop], 0  ; Overflow, start with 0
     265    jmp     .ScrollMenu
    238266
    239267    ; PGUP pressed
     
    262290    mov     [bp+MENUVARS.wItemSel], ax
    263291    mov     [bp+MENUVARS.wItemTop], ax
    264     jmp     .ScrollMenu
    265 
    266     ; HOME pressed
    267 ALIGN JUMP_ALIGN
    268 .KeyHome:
    269     xor     ax, ax
    270     mov     [bp+MENUVARS.wItemSel], ax
    271     mov     [bp+MENUVARS.wItemTop], ax
    272     jmp     .ScrollMenu
    273 
    274     ; END pressed
    275 ALIGN JUMP_ALIGN
    276 .KeyEnd:
    277     mov     ax, [bp+MENUVARS.wItemCnt]      ; Load number if menuitems
    278     mov     bx, ax                          ; Copy menuitem count to BX
    279     dec     ax                              ; Decrement for last index
    280     mov     [bp+MENUVARS.wItemSel], ax      ; Store new selection
    281     sub     bl, [bp+MENUVARS.bVisCnt]       ; BX to first menuitem to draw
    282     sbb     bh, 0
    283     mov     [bp+MENUVARS.wItemTop], bx      ; Store first menuitem to draw
    284     jnc     .ScrollMenu
    285     mov     WORD [bp+MENUVARS.wItemTop], 0  ; Overflow, start with 0
    286292    ; Fall to .ScrollMenu
    287293
Note: See TracChangeset for help on using the changeset viewer.