Changeset 568 in xtideuniversalbios for trunk/Assembly_Library/Src/Menu
- Timestamp:
- Dec 21, 2014, 5:37:53 PM (10 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/Assembly_Library/Src/Menu
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm
r526 r568 623 623 mov cx, STRING_DIALOG_IO_size 624 624 call Memory_ReserveCXbytesFromStackToDSSI 625 call .InitializeStringDialogIoInDSSIforInputtingFileName 626 627 CALL_MENU_LIBRARY GetStringWithIoInDSSI 628 mov al, [si+STRING_DIALOG_IO.bUserCancellation] 629 add sp, BYTE STRING_DIALOG_IO_size 630 test al, al ; User cancellation? 631 jnz SHORT ReturnWithoutHandlingKeystroke 632 jmp CloseFileDialogAfterSuccessfulSelection 633 634 ALIGN JUMP_ALIGN 635 .InitializeStringDialogIoInDSSIforInputtingFileName: 625 626 ;;; InitializeStringDialogIoInDSSIforInputtingFileName 636 627 call InitializeNullStringsToDialogInputInDSSI 637 628 mov WORD [si+DIALOG_INPUT.fszTitle], g_szEnterNewFileOrDirectory … … 642 633 mov [si+STRING_DIALOG_IO.fpReturnBuffer], ax 643 634 mov [si+STRING_DIALOG_IO.fpReturnBuffer+2], es 644 ret 635 ;;; 636 637 CALL_MENU_LIBRARY GetStringWithIoInDSSI 638 mov al, [si+STRING_DIALOG_IO.bUserCancellation] 639 add sp, BYTE STRING_DIALOG_IO_size 640 test al, al ; User cancellation? 641 jnz SHORT ReturnWithoutHandlingKeystroke 642 jmp CloseFileDialogAfterSuccessfulSelection 645 643 646 644 -
trunk/Assembly_Library/Src/Menu/Dialog/DialogString.asm
r526 r568 99 99 mov cx, [si+STRING_DIALOG_IO.wBufferSize] 100 100 les di, [si+STRING_DIALOG_IO.fpReturnBuffer] 101 call .GetCharacterFilterFunctionToDX 101 mov dx, [si+STRING_DIALOG_IO.fnCharFilter] 102 test dx, dx 103 jnz SHORT .CharacterFilterFunctionInDX 104 mov dx, Char_CharIsValid 102 105 106 .CharacterFilterFunctionInDX: 103 107 call Keyboard_ReadUserInputtedStringToESDIWhilePrinting 104 108 jz SHORT .UserCancellation … … 108 112 .UserCancellation: 109 113 ret 110 111 ;--------------------------------------------------------------------112 ; .GetCharacterFilterFunctionToDX113 ; Parameters114 ; DS:SI: Ptr to STRING_DIALOG_IO115 ; SS:BP: Ptr to DIALOG116 ; Returns:117 ; CS:DX: Ptr to character filter function118 ; Corrupts registers:119 ; Nothing120 ;--------------------------------------------------------------------121 ALIGN JUMP_ALIGN122 .GetCharacterFilterFunctionToDX:123 mov dx, [si+STRING_DIALOG_IO.fnCharFilter]124 test dx, dx125 jnz SHORT .ReturnFilterFunctionInDX126 mov dx, Char_CharIsValid127 ALIGN JUMP_ALIGN, ret128 .ReturnFilterFunctionInDX:129 ret -
trunk/Assembly_Library/Src/Menu/Dialog/DialogWord.asm
r526 r568 93 93 ; Nothing (User input stored to WORD_DIALOG_IO) 94 94 ; Corrupts registers: 95 ; AX, BX, DX, SI, DI95 ; AX, BX, CX, DX, SI, DI 96 96 ;-------------------------------------------------------------------- 97 97 ALIGN JUMP_ALIGN … … 100 100 eMOVZX bx, [si+WORD_DIALOG_IO.bNumericBase] 101 101 ALIGN JUMP_ALIGN 102 .GetUserInput IntilValidOrCancelled:102 .GetUserInputUntilValidOrCancelled: 103 103 call Keyboard_ReadUserInputtedWordWhilePrinting 104 104 jz SHORT .UserCancellation … … 116 116 .InputtedWordNotInRange: 117 117 call Keyboard_PlayBellForUnwantedKeystroke 118 call .ClearInputtedWordFromDialog 119 jmp SHORT .GetUserInputIntilValidOrCancelled 120 121 ;-------------------------------------------------------------------- 122 ; .ClearInputtedWordFromDialog 123 ; Parameters 124 ; SS:BP: Ptr to DIALOG 125 ; Returns: 126 ; Nothing 127 ; Corrupts registers: 128 ; AX, CX, DX, DI 129 ;-------------------------------------------------------------------- 130 ALIGN JUMP_ALIGN 131 .ClearInputtedWordFromDialog: 118 ; Clear inputted word from dialog 132 119 CALL_DISPLAY_LIBRARY GetSoftwareCoordinatesToAX 133 120 xchg dx, ax … … 138 125 139 126 xchg ax, dx 140 JMP_DISPLAY_LIBRARY SetCursorCoordinatesFromAX141 127 CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX 128 jmp SHORT .GetUserInputUntilValidOrCancelled -
trunk/Assembly_Library/Src/Menu/MenuBorders.asm
r526 r568 56 56 push RefreshTitleBorders 57 57 push MenuBorders_GetNumberOfMiddleCharactersToDX 58 jmp MenuBorders_AdjustDisplayContextForDrawingBorders58 jmp SHORT MenuBorders_AdjustDisplayContextForDrawingBorders 59 59 %endif 60 60 … … 120 120 CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX 121 121 122 mov si,ATTRIBUTE_CHARS.cBordersAndBackground122 xor si, si ; SI = ATTRIBUTE_CHARS.cBordersAndBackground 123 123 jmp MenuAttribute_SetToDisplayContextFromTypeInSI 124 124 … … 141 141 142 142 ;-------------------------------------------------------------------- 143 ; RefreshItemBorders 143 144 ; RefreshTitleBorders 144 ; Parameters145 ; DX: Number of times to repeat middle character146 ; SS:BP: Ptr to MENU147 ; Returns:148 ; Nothing149 ; Corrupts registers:150 ; AX, BX, CX, SI, DI151 ;--------------------------------------------------------------------152 ALIGN MENU_JUMP_ALIGN153 RefreshTitleBorders:154 call DrawTopBorderLine155 eMOVZX cx, [bp+MENUINIT.bTitleLines]156 jmp SHORT DrawTextBorderLinesByCXtimes157 158 ;--------------------------------------------------------------------159 145 ; RefreshInformationBorders 160 ; Parameters161 ; DX: Number of times to repeat middle character162 ; SS:BP: Ptr to MENU163 ; Returns:164 ; Nothing165 ; Corrupts registers:166 ; AX, BX, CX, SI, DI167 ;--------------------------------------------------------------------168 ALIGN MENU_JUMP_ALIGN169 RefreshInformationBorders:170 call DrawSeparationBorderLine171 eMOVZX cx, [bp+MENUINIT.bInfoLines]172 jmp SHORT DrawTextBorderLinesByCXtimes173 174 ;--------------------------------------------------------------------175 ; RefreshItemBorders176 146 ; Parameters 177 147 ; DX: Number of times to repeat middle character … … 186 156 call DrawSeparationBorderLine 187 157 call MenuScrollbars_GetMaxVisibleItemsOnPageToCX 188 ; Fall to DrawTextBorderLinesByCXtimes 189 190 ;-------------------------------------------------------------------- 158 jmp SHORT DrawTextBorderLinesByCXtimes 159 160 ALIGN MENU_JUMP_ALIGN 161 RefreshTitleBorders: 162 call DrawTopBorderLine 163 mov cl, [bp+MENUINIT.bTitleLines] 164 jmp SHORT DrawTextBorderLinesByCLtimes 165 166 ALIGN MENU_JUMP_ALIGN 167 RefreshInformationBorders: 168 call DrawSeparationBorderLine 169 mov cl, [bp+MENUINIT.bInfoLines] 170 ; Fall to DrawTextBorderLinesByCLtimes 171 172 ;-------------------------------------------------------------------- 173 ; DrawTextBorderLinesByCLtimes 191 174 ; DrawTextBorderLinesByCXtimes 192 175 ; Parameters 193 ; C X:Number of border lines to draw176 ; CL/CX: Number of border lines to draw 194 177 ; DX: Number of times to repeat middle character 195 178 ; SS:BP: Ptr to MENU … … 199 182 ; AX, CX, SI, DI 200 183 ;-------------------------------------------------------------------- 184 DrawTextBorderLinesByCLtimes: 185 xor ch, ch 201 186 DrawTextBorderLinesByCXtimes: 202 187 jcxz .NoBorderLinesToDraw … … 213 198 ; DrawSeparationBorderLine 214 199 ; DrawBottomBorderLine 215 ; DrawTimeoutCounterOverBottomBorderLine216 200 ; DrawBottomShadowLine 217 201 ; DrawTextBorderLine … … 242 226 243 227 call DrawTimeoutCounterString 228 push dx 244 229 sub dx, BYTE MENU_TIMEOUT_STRING_CHARACTERS 245 230 mov si, g_BottomBorderWithTimeoutCharacters 246 231 call PrintBorderCharactersFromCSSIandShadowCharacter 247 add dx, BYTE MENU_TIMEOUT_STRING_CHARACTERS232 pop dx 248 233 ret 249 234 … … 403 388 mov si, ATTRIBUTE_CHARS.cNormalTimeout 404 389 cmp di, BYTE MENU_TIMEOUT_SECONDS_FOR_HURRY 405 eCMOVB si, ATTRIBUTE_CHARS.cHurryTimeout 390 jnb SHORT .NormalTimeout 391 dec si ; SI = ATTRIBUTE_CHARS.cHurryTimeout 392 .NormalTimeout: 406 393 call MenuAttribute_GetToAXfromTypeInSI 407 394 -
trunk/Assembly_Library/Src/Menu/MenuScrollbars.asm
r526 r568 116 116 ALIGN MENU_JUMP_ALIGN 117 117 MenuScrollbars_MoveHighlightedItemByAX: 118 mov cx, [bp+MENUINIT.wHighlightedItem]119 add cx, ax120 ; Fall to .RotateItemInCX121 122 ;--------------------------------------------------------------------123 ; .RotateItemInCX124 ; Parameters125 ; CX: Possibly under of overflown item to be rotated126 ; SS:BP: Ptr to MENU127 ; Returns:128 ; CX: Valid item index129 ; Corrupts registers:130 ; DX131 ;--------------------------------------------------------------------132 ;.RotateItemInCX:133 118 mov dx, [bp+MENUINIT.wItems] 134 test cx, cx 119 add ax, [bp+MENUINIT.wHighlightedItem] 120 xchg cx, ax 135 121 js SHORT .RotateNegativeItemInCX 136 122 sub cx, dx
Note:
See TracChangeset
for help on using the changeset viewer.