Changeset 67 in xtideuniversalbios for trunk/Assembly_Library/Src/Menu/MenuText.asm
- Timestamp:
- Dec 9, 2010, 5:14:25 PM (14 years ago)
- google:author:
- aitotat
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Src/Menu/MenuText.asm
r54 r67 2 2 ; Project name : Assembly Library 3 3 ; Created date : 21.7.2010 4 ; Last update : 24.10.20104 ; Last update : 9.12.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Functions for drawing menu texts by the user. … … 126 126 MenuText_RefreshItemFromAX: 127 127 push cx 128 mov cx, ax ; Backup item to CX 129 128 push ax 129 130 xchg cx, ax 130 131 call MenuScrollbars_IsItemInCXonVisiblePage 131 132 jnc SHORT .InvalidItem 132 133 call MenuText_AdjustDisplayContextForDrawingItemFromCX 134 call ClearPreviousItem 133 135 call MenuEvent_RefreshItemFromCX 134 call DrawScrollbar IfNecessary136 call DrawScrollbarCharacterForItemInCXifNecessary 135 137 .InvalidItem: 136 xchg ax, cx ; Restore AX138 pop ax 137 139 pop cx 138 140 ret … … 181 183 182 184 ;-------------------------------------------------------------------- 185 ; ClearPreviousItem 186 ; Parameters 187 ; SS:BP: Ptr to MENU 188 ; Returns: 189 ; Nothing 190 ; Corrupts registers: 191 ; AX, BX, DX, DI 192 ;-------------------------------------------------------------------- 193 ALIGN JUMP_ALIGN 194 ClearPreviousItem: 195 CALL_DISPLAY_LIBRARY GetSoftwareCoordinatesToAX 196 xchg bx, ax 197 198 call MenuBorders_GetNumberOfMiddleCharactersToDX 199 sub dx, BYTE MENU_TEXT_COLUMN_OFFSET 200 mov al, [cs:g_rgbTextBorderCharacters+BORDER_CHARS.cMiddle] 201 call MenuBorders_PrintMultipleBorderCharactersFromAL 202 203 xchg ax, bx 204 CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX 205 ret 206 207 208 ;-------------------------------------------------------------------- 183 209 ; GetItemTextAttributeTypeToSIforItemInCX 184 210 ; Parameters … … 205 231 206 232 ;-------------------------------------------------------------------- 207 ; DrawScrollbar IfNecessary233 ; DrawScrollbarCharacterForItemInCXifNecessary 208 234 ; Parameters 209 235 ; CX: Item to refresh … … 212 238 ; Nothing 213 239 ; Corrupts registers: 214 ; AX, BX, DX, SI, DI 215 ;-------------------------------------------------------------------- 216 ALIGN JUMP_ALIGN 217 DrawScrollbarIfNecessary: 218 push cx 219 call .DrawSpacesBeforeScrollbarCharacter 240 ; AX, CX, BX, DX, SI, DI 241 ;-------------------------------------------------------------------- 242 ALIGN JUMP_ALIGN 243 DrawScrollbarCharacterForItemInCXifNecessary: 220 244 call MenuScrollbars_AreScrollbarsNeeded 221 pop cx222 245 jc SHORT .DrawScrollbarCharacter 223 246 ret 224 247 225 ;--------------------------------------------------------------------226 ; .DrawSpacesBeforeScrollbarCharacter227 ; Parameters228 ; CX: Item to refresh229 ; SS:BP: Ptr to MENU230 ; Returns:231 ; Nothing232 ; Corrupts registers:233 ; AX, CX, DX, DI234 ;--------------------------------------------------------------------235 ALIGN JUMP_ALIGN236 .DrawSpacesBeforeScrollbarCharacter:237 CALL_DISPLAY_LIBRARY GetSoftwareCoordinatesToAX238 xchg dx, ax ; Current coordinates to DX239 mov ax, cx240 call MenuLocation_GetScrollbarCoordinatesToAXforItemInAX241 sub al, dl242 sub al, MENU_TEXT_COLUMN_OFFSET/2243 244 eMOVZX cx, al245 jcxz .NoSpacesNeeded246 mov al, ' '247 CALL_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX248 ALIGN JUMP_ALIGN, ret249 .NoSpacesNeeded:250 ret251 252 ;--------------------------------------------------------------------253 ; .DrawScrollbarCharacter254 ; Parameters255 ; CX: Item to refresh256 ; SS:BP: Ptr to MENU257 ; Returns:258 ; Nothing259 ; Corrupts registers:260 ; AX, BX, DX, SI, DI261 ;--------------------------------------------------------------------262 248 ALIGN JUMP_ALIGN 263 249 .DrawScrollbarCharacter: 264 push cx265 266 250 call MenuBorders_AdjustDisplayContextForDrawingBorders 267 268 251 mov ax, cx 269 252 call MenuLocation_GetScrollbarCoordinatesToAXforItemInAX … … 273 256 sub di, [bp+MENU.wFirstVisibleItem] ; Item to line 274 257 call MenuScrollbars_GetScrollCharacterToALForLineInDI 275 CALL_DISPLAY_LIBRARY PrintCharacterFromAL 276 277 pop cx 278 ret 258 jmp MenuBorders_PrintSingleBorderCharacterFromAL
Note:
See TracChangeset
for help on using the changeset viewer.