Changeset 181 in xtideuniversalbios for trunk/Assembly_Library/Src/Menu/Dialog
- Timestamp:
- Nov 13, 2011, 3:38:40 PM (13 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/Assembly_Library/Src/Menu/Dialog
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Src/Menu/Dialog/Dialog.asm
r162 r181 127 127 ret 128 128 129 129 130 ;-------------------------------------------------------------------- 130 131 ; .GetWidthBasedOnParentMenuToAL … … 141 142 mov al, [ss:bx+MENUINIT.bWidth] 142 143 sub al, DIALOG_DELTA_WIDTH_FROM_PARENT 143 MIN_U al, DIALOG_MAX_WIDTH 144 ret 144 cmp al, DIALOG_MAX_WIDTH 145 jb .ALlessThanDIALOG_MAX_WIDTH 146 mov al, DIALOG_MAX_WIDTH 147 ALIGN JUMP_ALIGN, ret 148 .ALlessThanDIALOG_MAX_WIDTH: 149 ret 150 145 151 146 152 ;-------------------------------------------------------------------- … … 161 167 add ah, [bp+MENUINIT.bInfoLines] 162 168 add ah, BYTE MENU_VERTICAL_BORDER_LINES 163 MIN_U ah, bh 164 MIN_U ah, DIALOG_MAX_HEIGHT 169 cmp ah, bh 170 jb .AHlessThanBH 171 xchg bx, ax 172 ALIGN JUMP_ALIGN 173 .AHlessThanBH: 174 cmp ah, DIALOG_MAX_HEIGHT 175 jb .AHlessThanDIALOG_MAX_HEIGHT 176 mov ah, DIALOG_MAX_HEIGHT 177 ALIGN JUMP_ALIGN, ret 178 .AHlessThanDIALOG_MAX_HEIGHT: 165 179 ret 166 180 -
trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm
r170 r181 265 265 .FilterCurrentDirectory: 266 266 cmp WORD [si+DTA.szFile], CURRENTDIR_CHARACTERS 267 je SHORT . ReturnWithFiltering267 je SHORT .DoFilter 268 268 ret 269 269 … … 274 274 cmp WORD [si+DTA.szFile], UPDIR_CHARACTERS 275 275 jne SHORT .ReturnWithoutFiltering 276 . ReturnWithFiltering:276 .DoFilter: 277 277 add sp, BYTE 2 ; Remove return address from stack 278 278 ALIGN JUMP_ALIGN, ret … … 375 375 SortDirectoryContentsStringFromESDIwithCountInCX: 376 376 call Registers_CopyESDItoDSSI 377 call .AddDirectoryContentsStringLengthToDI 378 mov bx, .FileStringComparator 379 xchg dx, cx 380 mov cx, FILE_STRING_LENGTH 381 jmp Sort_ItemsFromDSSIwithCountInDXsizeInCXandComparatorInBX 382 383 ALIGN JUMP_ALIGN 384 .AddDirectoryContentsStringLengthToDI: 377 378 ; Add directory contents string length to DI 385 379 mov ax, FILE_STRING_LENGTH 380 push ax 386 381 mul cx 387 382 add di, ax 388 ret 383 384 mov dx, cx 385 pop cx 386 mov bx, .FileStringComparator 387 jmp Sort_ItemsFromDSSIwithCountInDXsizeInCXandComparatorInBX 389 388 390 389 ;-------------------------------------------------------------------- … … 395 394 ; ES:DI: Ptr to second item to compare 396 395 ; Returns: 397 ; FLAGS: Signed compari tion between first and second item396 ; FLAGS: Signed comparison between first and second item 398 397 ; Corrupts registers: 399 398 ; Nothing -
trunk/Assembly_Library/Src/Menu/Dialog/DialogProgress.asm
r73 r181 1 ; File name : DialogProgress.asm2 1 ; Project name : Assembly Library 3 ; Created date : 15.8.20104 ; Last update : 10.12.20105 ; Author : Tomi Tilli6 2 ; Description : Displays progress bar dialog and starts progress task. 7 3 … … 41 37 lds si, [bp+DIALOG.fpDialogIO] 42 38 mov bx, [si+PROGRESS_DIALOG_IO.wMaxProgressValue] 43 MIN_U ax, bx 44 cmp ax, bx ; Make sure that last progress character is shown 45 je SHORT .UpdateProgressBar 46 39 cmp ax, bx 40 jb SHORT .AXlessThanBX 41 mov ax, bx 42 jmp SHORT .UpdateProgressBar 43 ALIGN JUMP_ALIGN 44 .AXlessThanBX: 47 45 mov bx, ax 48 46 sub bx, [si+PROGRESS_DIALOG_IO.wCurrentProgressValue] … … 172 170 ALIGN JUMP_ALIGN 173 171 DrawProgressBarFromDialogIoInDSSI: 174 call .GetFullCharsToCXandEmptyCharsToDXwithDialogIoInDSSI 175 176 mov al, PROGRESS_COMPLETE_CHARACTER 177 call .RepeatProgressCharacterCXtimesFromAL 178 179 mov cx, dx 180 mov al, PROGRESS_INCOMPLETE_CHARACTER 181 jmp SHORT .RepeatProgressCharacterCXtimesFromAL 182 183 ;-------------------------------------------------------------------- 184 ; .GetFullCharsToCXandEmptyCharsToDXwithDialogIoInDSSI 185 ; Parameters: 186 ; DS:SI: Ptr to PROGRESS_DIALOG_IO 187 ; SS:BP: Ptr to DIALOG 188 ; Returns: 189 ; CX: Number of full progress bar characters 190 ; DX: Number of empty progress bar characters 191 ; Corrupts: 192 ; AX, BX 193 ;-------------------------------------------------------------------- 194 ALIGN JUMP_ALIGN 195 .GetFullCharsToCXandEmptyCharsToDXwithDialogIoInDSSI: 172 ; Get full chars to CX and empty chars to DX 196 173 call MenuLocation_GetMaxTextLineLengthToAX 197 174 mov cx, ax … … 200 177 div bx 201 178 xchg cx, ax ; AX = Text line length, CX = Number of full chars 202 203 179 sub ax, cx 204 180 xchg dx, ax ; DX = Number of empty chars 205 ret 181 182 mov al, PROGRESS_COMPLETE_CHARACTER 183 call .RepeatProgressCharacterCXtimesFromAL 184 185 mov cx, dx 186 mov al, PROGRESS_INCOMPLETE_CHARACTER 187 ; Fall to .RepeatProgressCharacterCXtimesFromAL 206 188 207 189 ;-------------------------------------------------------------------- … … 239 221 ret 240 222 241 223 242 224 ;-------------------------------------------------------------------- 243 225 ; DrawTimeElapsedFromDX … … 286 268 287 269 sub cx, [si+PROGRESS_DIALOG_IO.wMinProgressValue] 288 j cxz.PreventDivisionByZero270 jz SHORT .PreventDivisionByZero 289 271 div cx ; AX = Estimated ticks left 290 272 xchg dx, ax 291 jmp SHORT FormatTicksFromDX273 SKIP2B f ; cmp ax, <next instruction> 292 274 .PreventDivisionByZero: 293 275 xor dx, dx -
trunk/Assembly_Library/Src/Menu/Dialog/ItemLineSplitter.asm
r133 r181 115 115 ALIGN JUMP_ALIGN 116 116 .CheckLineLength: 117 cmp cx, [bp+ITEM_LINE_SPLITTER.wMaxTextLineLength] 118 ja SHORT .ChangeToNextLine 119 clc 120 ret 117 cmp [bp+ITEM_LINE_SPLITTER.wMaxTextLineLength], cx 118 jb SHORT .ChangeToNextLine 119 ret ; With CF cleared 121 120 122 121 ALIGN JUMP_ALIGN
Note:
See TracChangeset
for help on using the changeset viewer.