Changeset 45 in xtideuniversalbios for trunk/Assembly_Library/Src/Menu/MenuTime.asm
- Timestamp:
- Sep 29, 2010, 5:59:07 PM (15 years ago)
- google:author:
- aitotat
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Src/Menu/MenuTime.asm
r44 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 25.7.2010 4 ; Last update : 2 7.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Menu timeouts other time related functions. … … 56 56 ALIGN JUMP_ALIGN 57 57 MenuTime_UpdateSelectionTimeout: 58 cmp WORD [bp+MENUINIT.wTimeoutTicks], BYTE 059 je SHORT .ReturnSinceTimeoutDisabled ; CF cleared60 58 push ds 61 59 62 call GetSecondsUntilTimeoutToAXandPtrToTimeoutCounterToDSBX 63 cmp al, [bp+MENU.bLastSecondPrinted] 64 je SHORT .SetCFifTimeoutAndReturn 65 mov [bp+MENU.bLastSecondPrinted], al 66 call DrawTimeoutInAXoverMenuBorders 60 call MenuTime_DrawWithoutUpdating 61 jnc SHORT .TimeoutDisabled 62 call PointDSBXtoTimeoutCounter 63 call TimerTicks_SetCarryIfTimeoutFromDSBX 67 64 68 65 ALIGN JUMP_ALIGN 69 .SetCFifTimeoutAndReturn: 70 call TimerTicks_SetCarryIfTimeoutFromDSBX 66 .TimeoutDisabled: 71 67 pop ds 72 .ReturnSinceTimeoutDisabled:73 68 ret 74 75 69 76 70 ;-------------------------------------------------------------------- … … 79 73 ; SS:BP: Ptr to MENU 80 74 ; Returns: 81 ; Nothing 75 ; CF: Set if timeout enabled 76 ; Cleared if timeout disabled 82 77 ; Corrupts registers: 83 78 ; AX, BX, CX, DX, SI, DI … … 86 81 MenuTime_DrawWithoutUpdating: 87 82 cmp WORD [bp+MENUINIT.wTimeoutTicks], BYTE 0 88 je SHORT .ReturnSinceTimeoutDisabled 83 je SHORT .ReturnSinceTimeoutDisabled ; Clear CF 89 84 90 85 push ds 91 call GetSeconds UntilTimeoutToAXandPtrToTimeoutCounterToDSBX86 call GetSecondsLeftUntilTimeoutToAXandCounterToDSBX 92 87 call DrawTimeoutInAXoverMenuBorders 93 88 pop ds 89 stc 90 ALIGN JUMP_ALIGN, ret 94 91 .ReturnSinceTimeoutDisabled: 95 92 ret 93 94 95 ;-------------------------------------------------------------------- 96 ; GetSecondsLeftUntilTimeoutToAXandCounterToDSBX 97 ; Parameters 98 ; SS:BP: Ptr to MENU 99 ; Returns: 100 ; AX: Seconds until timeout 101 ; DS:BX: Ptr to timeout counter 102 ; Corrupts registers: 103 ; AX, CX, DX 104 ;-------------------------------------------------------------------- 105 ALIGN JUMP_ALIGN 106 GetSecondsLeftUntilTimeoutToAXandCounterToDSBX: 107 call PointDSBXtoTimeoutCounter 108 call TimerTicks_GetElapsedToAXfromDSBX 109 neg ax ; Negate since DS:BX points to end time 110 MAX_S ax, 0 ; Set to zero if overflow 111 xchg dx, ax 112 jmp TimerTicks_GetSecondsToAXfromTicksInDX 96 113 97 114 … … 111 128 lea bx, [bp+MENU.wTimeoutCounter] 112 129 ret 113 114 115 ;--------------------------------------------------------------------116 ; GetSecondsUntilTimeoutToAXandPtrToTimeoutCounterToDSBX117 ; Parameters118 ; SS:BP: Ptr to MENU119 ; Returns:120 ; AX: Seconds until timeout121 ; DS:BX: Ptr to timeout counter122 ; Corrupts registers:123 ; AX, CX, DX124 ;--------------------------------------------------------------------125 ALIGN JUMP_ALIGN126 GetSecondsUntilTimeoutToAXandPtrToTimeoutCounterToDSBX:127 call PointDSBXtoTimeoutCounter128 call TimerTicks_GetElapsedToAXfromDSBX129 neg ax ; Negate since DS:BX points to end time130 MAX_S ax, 0 ; Set to zero if overflow131 xchg dx, ax132 jmp TimerTicks_GetSecondsToAXfromTicksInDX133 130 134 131 … … 173 170 pop bp 174 171 172 ; Draw right border with normal border color 175 173 mov al, DOUBLE_RIGHT_HORIZONTAL_TO_SINGLE_VERTICAL 176 174 jmp MenuBorders_PrintSingleBorderCharacterFromAL … … 178 176 db DOUBLE_BOTTOM_LEFT_CORNER 179 177 db DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL 180 db "%AAutoselection in %2- ds",NULL178 db "%AAutoselection in %2-us",NULL 181 179 182 180 ;--------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.