Changeset 9 in xtideuniversalbios for trunk/Configurator/Src/Libraries/menu/menuloop.asm
- Timestamp:
- May 25, 2010, 5:01:46 PM (15 years ago)
- google:author:
- aitotat
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Configurator/Src/Libraries/menu/menuloop.asm
r2 r9 2 2 ; Project name : Menu library 3 3 ; Created date : 11.11.2009 4 ; Last update : 10.12.20094 ; Last update : 25.5.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : ASM library to menu system. … … 92 92 ; MenuLoop_SendEvent Sends any event to user event handler 93 93 ; Parameters: 94 ; BX: Event code 94 ; BX: Event code (MenuLoop_SendEvent only) 95 95 ; DX: Event parameter (event specific) 96 96 ; SS:BP: Ptr to MENUVARS … … 193 193 mov [bp+MENUVARS.wItemSel], ax ; Store new index 194 194 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 197 ALIGN JUMP_ALIGN 198 .ScrollUp: 196 199 dec WORD [bp+MENUVARS.wItemTop] ; Scroll 197 200 jmp .ScrollMenu … … 222 225 add bx, [bp+MENUVARS.wItemTop] ; BX to one past last visible index 223 226 cmp ax, bx ; Need to scroll? 224 jb .DrawSelection ; If not, go to draw selection 227 jae .ScrollDown 228 jmp .DrawSelection 229 ALIGN JUMP_ALIGN 230 .ScrollDown: 225 231 inc WORD [bp+MENUVARS.wItemTop] ; Scroll 226 232 jmp .ScrollMenu … … 236 242 jmp .ScrollMenu 237 243 %endif 244 245 ; HOME pressed 246 ALIGN 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 254 ALIGN 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 238 266 239 267 ; PGUP pressed … … 262 290 mov [bp+MENUVARS.wItemSel], ax 263 291 mov [bp+MENUVARS.wItemTop], ax 264 jmp .ScrollMenu265 266 ; HOME pressed267 ALIGN JUMP_ALIGN268 .KeyHome:269 xor ax, ax270 mov [bp+MENUVARS.wItemSel], ax271 mov [bp+MENUVARS.wItemTop], ax272 jmp .ScrollMenu273 274 ; END pressed275 ALIGN JUMP_ALIGN276 .KeyEnd:277 mov ax, [bp+MENUVARS.wItemCnt] ; Load number if menuitems278 mov bx, ax ; Copy menuitem count to BX279 dec ax ; Decrement for last index280 mov [bp+MENUVARS.wItemSel], ax ; Store new selection281 sub bl, [bp+MENUVARS.bVisCnt] ; BX to first menuitem to draw282 sbb bh, 0283 mov [bp+MENUVARS.wItemTop], bx ; Store first menuitem to draw284 jnc .ScrollMenu285 mov WORD [bp+MENUVARS.wItemTop], 0 ; Overflow, start with 0286 292 ; Fall to .ScrollMenu 287 293
Note:
See TracChangeset
for help on using the changeset viewer.