Changeset 52 in xtideuniversalbios for trunk/Assembly_Library/Src/Menu/MenuText.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/MenuText.asm
r48 r52 2 2 ; Project name : Assembly Library 3 3 ; Created date : 21.7.2010 4 ; Last update : 7.10.20104 ; Last update : 12.10.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Functions for drawing menu texts by the user. … … 76 76 PrepareToDrawTitleArea: 77 77 mov si, ATTRIBUTE_CHARS.cTitle 78 mov ax, MenuCharOut_MenuTextTeletypeOutputWithAttributeAndAutomaticLineChange79 call AdjustDisplayContextForDrawingTextsWithCharOutFunctionFromAX80 78 call MenuLocation_GetTitleTextTopLeftCoordinatesToAX 81 CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX 82 ret 79 jmp SHORT FinishPreparationsToDrawTitleOrInformationArea 83 80 84 81 ALIGN JUMP_ALIGN 85 82 PrepareToDrawInformationArea: 86 83 mov si, ATTRIBUTE_CHARS.cInformation 87 mov ax, MenuCharOut_MenuTextTeletypeOutputWithAttributeAndAutomaticLineChange88 call AdjustDisplayContextForDrawingTextsWithCharOutFunctionFromAX89 84 call MenuLocation_GetInformationTextTopLeftCoordinatesToAX 90 CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX 91 ret 85 FinishPreparationsToDrawTitleOrInformationArea: 86 mov dx, MenuCharOut_MenuTeletypeOutputWithAutomaticLineChange 87 jmp SHORT AdjustDisplayContextForDrawingTextsAtCoordsInAXwithAttrTypeInSIandCharOutFunctionInDX 92 88 93 89 … … 134 130 call MenuScrollbars_IsItemInCXonVisiblePage 135 131 jnc SHORT .InvalidItem 136 mov ax, cx 137 call MenuText_AdjustDisplayContextForDrawingItemFromAX 132 call MenuText_AdjustDisplayContextForDrawingItemFromCX 138 133 call MenuEvent_RefreshItemFromCX 139 134 call DrawScrollbarIfNecessary … … 144 139 145 140 ;-------------------------------------------------------------------- 146 ; MenuText_AdjustDisplayContextForDrawingItemFromAX 147 ; Parameters 148 ; AX: Item to refresh 149 ; SS:BP: Ptr to MENU 150 ; Returns: 151 ; CX: Item to refresh 152 ; Corrupts registers: 153 ; AX, SI, DI 154 ;-------------------------------------------------------------------- 155 ALIGN JUMP_ALIGN 156 MenuText_AdjustDisplayContextForDrawingItemFromAX: 157 mov cx, ax 141 ; MenuText_AdjustDisplayContextForDrawingItemFromCX 142 ; Parameters 143 ; CX: Item to refresh 144 ; SS:BP: Ptr to MENU 145 ; Returns: 146 ; Nothing 147 ; Corrupts registers: 148 ; AX, BX, DX, SI, DI 149 ;-------------------------------------------------------------------- 150 ALIGN JUMP_ALIGN 151 MenuText_AdjustDisplayContextForDrawingItemFromCX: 152 mov ax, cx 153 call GetItemTextAttributeTypeToSIforItemInCX 158 154 call MenuLocation_GetTextCoordinatesToAXforItemInAX 155 mov dx, MenuCharOut_MenuTeletypeOutput 156 ; Fall to AdjustDisplayContextForDrawingTextsAtCoordinatesInAXwithAttributeTypeInSI 157 158 ;-------------------------------------------------------------------- 159 ; AdjustDisplayContextForDrawingTextsAtCoordsInAXwithAttrTypeInSIandCharOutFunctionInDX 160 ; Parameters 161 ; AX: Cursor coordinates to set 162 ; DX: Character output function 163 ; SI: Attribute type (from ATTRIBUTE_CHARS) 164 ; SS:BP: Ptr to MENU 165 ; Returns: 166 ; Nothing 167 ; Corrupts registers: 168 ; AX, BX, DX, SI, DI 169 ;-------------------------------------------------------------------- 170 ALIGN JUMP_ALIGN 171 AdjustDisplayContextForDrawingTextsAtCoordsInAXwithAttrTypeInSIandCharOutFunctionInDX: 159 172 CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX 160 call .GetItemTextAttributeTypeToSIforItemInCX 161 mov ax, MenuCharOut_MenuTextTeletypeOutputWithAttribute 162 jmp SHORT AdjustDisplayContextForDrawingTextsWithCharOutFunctionFromAX 163 164 ;-------------------------------------------------------------------- 165 ; .GetItemTextAttributeTypeToSIforItemInCX 173 174 xchg ax, dx 175 mov bl, ATTRIBUTES_ARE_USED 176 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagInBL 177 178 call CharOutLineSplitter_PrepareForPrintingTextLines 179 jmp MenuAttribute_SetToDisplayContextFromTypeInSI 180 181 182 ;-------------------------------------------------------------------- 183 ; GetItemTextAttributeTypeToSIforItemInCX 166 184 ; Parameters 167 185 ; CX: Item to refresh … … 173 191 ;-------------------------------------------------------------------- 174 192 ALIGN JUMP_ALIGN 175 .GetItemTextAttributeTypeToSIforItemInCX:193 GetItemTextAttributeTypeToSIforItemInCX: 176 194 mov si, ATTRIBUTE_CHARS.cItem 177 195 test BYTE [bp+MENU.bFlags], FLG_MENU_NOHIGHLIGHT 178 196 jnz SHORT .ReturnAttributeTypeInSI 179 cmp cx, [bp+MENU.wHighlightedItem] 197 198 cmp cx, [bp+MENUINIT.wHighlightedItem] 180 199 jne SHORT .ReturnAttributeTypeInSI 181 200 sub si, BYTE ATTRIBUTE_CHARS.cItem - ATTRIBUTE_CHARS.cHighlightedItem … … 258 277 pop cx 259 278 ret 260 261 262 ;--------------------------------------------------------------------263 ; AdjustDisplayContextForDrawingTextsWithCharOutFunctionFromAX264 ; Parameters265 ; AX: Character output function266 ; SI: Attribute type (from ATTRIBUTE_CHARS)267 ; SS:BP: Ptr to MENU268 ; Returns:269 ; Nothing270 ; Corrupts registers:271 ; AX, BX, SI, DI272 ;--------------------------------------------------------------------273 ALIGN JUMP_ALIGN274 AdjustDisplayContextForDrawingTextsWithCharOutFunctionFromAX:275 mov bl, ATTRIBUTES_ARE_USED276 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagInBL277 278 mov ax, bp279 CALL_DISPLAY_LIBRARY SetCharacterOutputParameterFromAX280 281 jmp MenuAttribute_SetToDisplayContextFromTypeInSI
Note:
See TracChangeset
for help on using the changeset viewer.