Changeset 9 in xtideuniversalbios for trunk/Configurator/Src
- Timestamp:
- May 25, 2010, 5:01:46 PM (15 years ago)
- google:author:
- aitotat
- Location:
- trunk/Configurator/Src/Libraries/menu
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Configurator/Src/Libraries/menu/menudraw.asm
r2 r9 2 2 ; Project name : Menu library 3 3 ; Created date : 9.11.2009 4 ; Last update : 2 1.1.20104 ; Last update : 25.5.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : ASM library to menu system. … … 288 288 xor dx, dx ; Zero DX 289 289 call MenuCrsr_PointNfoBrdr ; Set cursor 290 cmp BYTE [bp+MENUVARS.bInfoH], 0 ; Any info strings? 291 jz MenuDraw_BottomBorder ; If not, draw bottom border 292 test BYTE [bp+MENUVARS.bFlags], FLG_MNU_HIDENFO 293 jnz MenuDraw_BottomBorder ; Draw bottom border if info is hidden 290 eMOVZX cx, BYTE [bp+MENUVARS.bInfoH] ; Load number of info strings 291 test BYTE [bp+MENUVARS.bFlags], FLG_MNU_HIDENFO ; Information hidden? 292 jnz SHORT .JumpToBottomBorder 293 test cx, cx ; Any info strings? 294 jz SHORT MenuDraw_BottomBorder 295 push cx 294 296 call MenuDraw_MiddleBorder ; Draw middle border 295 297 call MenuDraw_NewlineBrdr ; Change line 296 eMOVZX cx, BYTE [bp+MENUVARS.bInfoH] ; Load number of info strings298 pop cx 297 299 ALIGN JUMP_ALIGN 298 300 .LineLoop: … … 302 304 pop cx 303 305 loop .LineLoop 304 jmp MenuDraw_BottomBorder 305 306 ALIGN JUMP_ALIGN 307 .JumpToBottomBorder: 308 jmp SHORT MenuDraw_BottomBorder 309 306 310 ALIGN JUMP_ALIGN 307 311 MenuDraw_Timeout: … … 309 313 call MenuCrsr_PointNfoBrdr ; Set cursor 310 314 mov ch, [bp+MENUVARS.bInfoH] ; Load info str count to CH 311 test ch, ch ; Any info strings?312 jz MenuDraw_BottomBorder; If not, draw bottom border315 and cx, 0FF00h ; Any info strings? (clears CL) 316 jz SHORT MenuDraw_BottomBorder ; If not, draw bottom border 313 317 inc ch ; Increment for info top border 314 xor cl, cl ; Zero X coordinate315 318 call MenuCrsr_Move ; Move cursor 316 jmp MenuDraw_BottomBorder319 jmp SHORT MenuDraw_BottomBorder 317 320 318 321 ALIGN JUMP_ALIGN 319 322 MenuDraw_ItemBorders: 320 cmp WORD [bp+MENUVARS.wItemCnt], 0 ; Any items?321 jz .Return; If not, return323 cmp WORD [bp+MENUVARS.wItemCnt], BYTE 0 ; Any items? 324 jz SHORT .Return ; If not, return 322 325 xor dx, dx ; Zero DX 323 326 call MenuCrsr_PointItemBrdr ; Set cursor … … 354 357 mov bl, B_H 355 358 mov dh, B_TR 356 jmp MenuDraw_BorderChars359 jmp SHORT MenuDraw_BorderChars 357 360 358 361 ALIGN JUMP_ALIGN … … 361 364 mov bl, ' ' 362 365 mov dh, B_V 363 jmp MenuDraw_BorderChars366 jmp SHORT MenuDraw_BorderChars 364 367 365 368 ALIGN JUMP_ALIGN … … 368 371 mov bh, B_V 369 372 mov bl, ' ' 370 jmp MenuDraw_BorderChars373 jmp SHORT MenuDraw_BorderChars 371 374 372 375 ALIGN JUMP_ALIGN -
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.