Changeset 52 in xtideuniversalbios for trunk/Assembly_Library/Src/Menu/Dialog/Dialog.asm
- Timestamp:
- Oct 12, 2010, 6:51:07 PM (15 years ago)
- google:author:
- aitotat
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Src/Menu/Dialog/Dialog.asm
r50 r52 2 2 ; Project name : Assembly Library 3 3 ; Created date : 6.8.2010 4 ; Last update : 9.10.20104 ; Last update : 12.10.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Common functions for many dialogs. … … 38 38 call Keyboard_RemoveAllKeystrokesFromBuffer 39 39 40 mov ax, [bp+MENU .wHighlightedItem]40 mov ax, [bp+MENUINIT.wHighlightedItem] 41 41 eLEAVE_STRUCT DIALOG_size 42 42 pop ds … … 78 78 79 79 ;-------------------------------------------------------------------- 80 ; Dialog_EventInitializeMenuinitFromDSSIforSingleItem 81 ; Parameters: 80 ; Dialog_EventInitializeMenuinitFromDSSIforSingleItemWithHighlightedItemInAX 81 ; Parameters: 82 ; AX: Index of highlighted item 82 83 ; DS:SI: Ptr to MENUINIT struct to initialize 83 84 ; SS:BP: Ptr to DIALOG … … 87 88 ;-------------------------------------------------------------------- 88 89 ALIGN JUMP_ALIGN 89 Dialog_EventInitializeMenuinitFromDSSIforSingleItem :90 Dialog_EventInitializeMenuinitFromDSSIforSingleItemWithHighlightedItemInAX: 90 91 les di, [bp+DIALOG.fpDialogIO] 91 92 mov WORD [es:di+DIALOG_INPUT.fszItems], g_szSingleItem 92 93 mov [es:di+DIALOG_INPUT.fszItems+2], cs 93 ; Fall to Dialog_EventInitializeMenuinitFromDSSI 94 95 ;-------------------------------------------------------------------- 96 ; Dialog_EventInitializeMenuinitFromDSSI 97 ; Parameters: 94 ; Fall to Dialog_EventInitializeMenuinitFromDSSIwithHighlightedItemInAX 95 96 ;-------------------------------------------------------------------- 97 ; Dialog_EventInitializeMenuinitFromDSSIwithHighlightedItemInAX 98 ; Parameters: 99 ; AX: Index of highlighted item 98 100 ; DS:SI: Ptr to MENUINIT struct to initialize 99 101 ; SS:BP: Ptr to DIALOG … … 103 105 ;-------------------------------------------------------------------- 104 106 ALIGN JUMP_ALIGN 105 Dialog_EventInitializeMenuinitFromDSSI: 107 Dialog_EventInitializeMenuinitFromDSSIwithHighlightedItemInAX: 108 mov [bp+MENUINIT.wHighlightedItem], ax 106 109 les di, [bp+DIALOG.fpDialogIO] 107 110 call .GetWidthBasedOnParentMenuToAL 108 111 mov [bp+MENUINIT.bWidth], al 109 112 110 call MenuLocation_GetMaxTextLineLengthToAX111 mov bx, ax112 113 lds si, [es:di+DIALOG_INPUT.fszTitle] 113 call LineSplitter_SplitStringFromDSSIwithMaxLineLengthInAXandGetLineCountToAX114 call ItemLineSplitter_GetLinesToAXforStringInDSSI 114 115 mov [bp+MENUINIT.bTitleLines], al 115 116 116 mov ax, bx117 117 lds si, [es:di+DIALOG_INPUT.fszItems] 118 call LineSplitter_SplitStringFromDSSIwithMaxLineLengthInAXandGetLineCountToAX118 call ItemLineSplitter_GetLinesToAXforStringInDSSI 119 119 mov [bp+MENUINIT.wItems], ax 120 120 121 xchg ax, bx122 121 lds si, [es:di+DIALOG_INPUT.fszInfo] 123 call LineSplitter_SplitStringFromDSSIwithMaxLineLengthInAXandGetLineCountToAX122 call ItemLineSplitter_GetLinesToAXforStringInDSSI 124 123 mov [bp+MENUINIT.bInfoLines], al 125 124 … … 178 177 ALIGN JUMP_ALIGN 179 178 Dialog_EventRefreshTitle: 180 mov dl, [bp+MENUINIT.bTitleLines]181 179 lds si, [bp+DIALOG.fpDialogIO] 182 l es di, [si+DIALOG_INPUT.fszTitle]183 jmp SHORT Print DLlinesFromESDI180 lds si, [si+DIALOG_INPUT.fszTitle] 181 jmp SHORT PrintTitleOrInfoLine 184 182 185 183 ALIGN JUMP_ALIGN 186 184 Dialog_EventRefreshInformation: 187 mov dl, [bp+MENUINIT.bInfoLines]188 185 lds si, [bp+DIALOG.fpDialogIO] 189 les di, [si+DIALOG_INPUT.fszInfo] 190 ; Fall to PrintDLlinesFromESDI 191 192 ALIGN JUMP_ALIGN 193 PrintDLlinesFromESDI: 194 xor cx, cx ; Start from line zero 195 mov dh, cl ; Line count now in DX 196 ALIGN JUMP_ALIGN 197 .PrintNextLine: 198 call LineSplitter_PrintLineInCXfromStringInESDI 199 push di 200 CALL_DISPLAY_LIBRARY PrintNewlineCharacters 201 pop di 202 inc cx 203 dec dx 204 jnz SHORT .PrintNextLine 186 lds si, [si+DIALOG_INPUT.fszInfo] 187 ; Fall to PrintTitleOrInfoLine 188 189 ALIGN JUMP_ALIGN 190 PrintTitleOrInfoLine: 191 mov bx, ds 192 CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromBXSI 205 193 stc 206 194 ret … … 218 206 Dialog_EventRefreshItemFromCX: 219 207 lds si, [bp+DIALOG.fpDialogIO] 220 les di, [si+DIALOG_INPUT.fszItems] 221 call LineSplitter_PrintLineInCXfromStringInESDI 208 lds si, [si+DIALOG_INPUT.fszItems] 209 call ItemLineSplitter_GetLineToDSSIandLengthToCXfromStringInDSSIwithIndexInCX 210 jnc SHORT .LineNotFound 211 212 mov bx, ds 213 CALL_DISPLAY_LIBRARY PrintCharBufferFromBXSIwithLengthInCX 214 .LineNotFound: 222 215 stc 223 216 ret
Note:
See TracChangeset
for help on using the changeset viewer.