Changeset 45 in xtideuniversalbios for trunk/Assembly_Library
- Timestamp:
- Sep 29, 2010, 5:59:07 PM (14 years ago)
- google:author:
- aitotat
- Location:
- trunk/Assembly_Library
- Files:
-
- 1 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Inc/Debug.inc
r41 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 8.8.2010 4 ; Last update : 8.8.20104 ; Last update : 29.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Debugging macros. … … 20 20 ;-------------------------------------------------------------------- 21 21 %macro DISPLAY_DEBUG_WORD_AND_WAIT_ANY_KEY 2 22 pushf 22 23 push di 23 24 push bx … … 33 34 pop bx 34 35 pop di 36 popf 35 37 %endmacro 36 38 … … 46 48 ;-------------------------------------------------------------------- 47 49 %macro DISPLAY_DEBUG_CHARACTER_AND_WAIT_ANY_KEY 1 50 pushf 48 51 push di 49 52 push ax … … 56 59 pop ax 57 60 pop di 61 popf 58 62 %endmacro 59 63 … … 69 73 ;-------------------------------------------------------------------- 70 74 %macro DISPLAY_DEBUG_CHARACTER 1 75 pushf 71 76 push di 72 77 push ax … … 75 80 pop ax 76 81 pop di 82 popf 77 83 %endmacro 78 84 -
trunk/Assembly_Library/Inc/Dialog.inc
r41 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 15.9.2010 4 ; Last update : 15.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Defines for Menu library dialogs. … … 75 75 76 76 77 ; Progress bar dialog 78 PROGRESS_COMPLETE_CHARACTER EQU BLOCK_FULL_FOREGROUND 79 PROGRESS_INCOMPLETE_CHARACTER EQU BLOCK_MOSTLY_BACKGROUND 80 77 81 ; File dialog 78 82 FILENAME_BUFFER_SIZE EQU 14 ; 8+1+3+NULL+alignment -
trunk/Assembly_Library/Inc/Display.inc
r44 r45 2 2 ; Project name : AssemblyLibrary 3 3 ; Created date : 25.6.2010 4 ; Last update : 2 7.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Defines for display library. … … 40 40 41 41 .SetCharacterPointerFromBXAX resb 2 42 .SetCharOutputFunctionFromAXwithAttribFlagIn DL resb 242 .SetCharOutputFunctionFromAXwithAttribFlagInBL resb 2 43 43 .SetCharacterOutputParameterFromAX resb 2 44 44 .SetCharacterAttributeFromAL resb 2 -
trunk/Assembly_Library/Inc/Menu.inc
r44 r45 107 107 108 108 .bFlags resb 1 ; Menu flags 109 .bLastSecondPrinted resb 1 ; To minimize CGA snow when using timeouts109 resb 1 110 110 .wTimeoutCounter resb 2 111 111 -
trunk/Assembly_Library/Src/AssemblyLibrary.asm
r41 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 15.9.2010 4 ; Last update : 15.9.20104 ; Last update : 29.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Assembly Library main file. This is the only file that … … 71 71 %include "Memory.asm" 72 72 %include "Size.asm" 73 %include "Sort.asm" 73 74 %endif -
trunk/Assembly_Library/Src/Display/Display.asm
r44 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 2.7.2010 4 ; Last update : 2 7.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Display Library functions for CALL_DISPLAY_LIBRARY macro … … 68 68 69 69 at DISPLAY_LIB.SetCharacterPointerFromBXAX, dw DisplayContext_SetCharacterPointerFromBXAX 70 at DISPLAY_LIB.SetCharOutputFunctionFromAXwithAttribFlagIn DL, dw DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagInDL70 at DISPLAY_LIB.SetCharOutputFunctionFromAXwithAttribFlagInBL, dw DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagInBL 71 71 at DISPLAY_LIB.SetCharacterOutputParameterFromAX, dw DisplayContext_SetCharacterOutputParameterFromAX 72 72 at DISPLAY_LIB.SetCharacterAttributeFromAL, dw DisplayContext_SetCharacterAttributeFromAL -
trunk/Assembly_Library/Src/Display/DisplayContext.asm
r44 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 25.6.2010 4 ; Last update : 2 7.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Functions for managing display context. … … 153 153 154 154 ;-------------------------------------------------------------------- 155 ; DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagIn DL155 ; DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagInBL 156 156 ; Parameters: 157 157 ; AX: Offset to character output function 158 ; DL: Attribute Flag159 ; DS: BDA segment (zero) 160 ; Returns: 161 ; Nothing 162 ; Corrupts registers: 163 ; Nothing 164 ;-------------------------------------------------------------------- 165 ALIGN JUMP_ALIGN 166 DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagIn DL:158 ; BL: Attribute Flag 159 ; DS: BDA segment (zero) 160 ; Returns: 161 ; Nothing 162 ; Corrupts registers: 163 ; Nothing 164 ;-------------------------------------------------------------------- 165 ALIGN JUMP_ALIGN 166 DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagInBL: 167 167 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fnCharOut], ax 168 and BYTE [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], ~FLG_CONTEXT_ATTRIBUTES 169 mov al, dl 170 and al, FLG_CONTEXT_ATTRIBUTES 171 or [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], al 168 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], bl 172 169 ret 173 170 -
trunk/Assembly_Library/Src/LibraryTests.asm
r44 r45 33 33 CALL_DISPLAY_LIBRARY ClearScreen 34 34 35 call LibraryTests_ForDisplayLibrary 35 call LibraryTests_Sort 36 ;call LibraryTests_ForDisplayLibrary 36 37 ;call LibraryTests_ForKeyboardLibrary 37 call LibraryTests_ForMenuLibrary38 ;call LibraryTests_ForMenuLibrary 38 39 39 40 ; Exit to DOS … … 254 255 mov ax, si 255 256 CALL_DISPLAY_LIBRARY SetCharacterPointerFromBXAX 256 mov dl, ATTRIBUTES_NOT_USED257 mov bl, ATTRIBUTES_NOT_USED 257 258 mov ax, BUFFER_OUTPUT_WITH_CHAR_ONLY 258 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagIn DL259 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagInBL 259 260 lea ax, [si+STRING_BUFFER_SIZE] 260 261 CALL_DISPLAY_LIBRARY SetCharacterOutputParameterFromAX … … 551 552 .szRepeat: 552 553 db "Repeating character '-': %A%t",LF,CR,NULL 553 554 555 556 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 557 LibraryTests_Sort: 558 call .PrintWords 559 push cs 560 pop ds 561 mov si, .rgwItems 562 mov dx, 7 563 mov cx, 2 564 mov bx, .Comparator 565 call Sort_ItemsFromDSSIwithCountInDXsizeInCXandComparatorInBX 566 call .PrintWords 567 ret 568 569 570 .Comparator: 571 push ax 572 mov ax, [si] 573 ;DISPLAY_DEBUG_CHARACTER 'I' 574 ;DISPLAY_DEBUG_WORD_AND_WAIT_ANY_KEY ax, 10 575 ;DISPLAY_DEBUG_CHARACTER ',' 576 ;DISPLAY_DEBUG_WORD_AND_WAIT_ANY_KEY [es:di], 10 577 ;DISPLAY_DEBUG_CHARACTER ' ' 578 cmp ax, [es:di] 579 pop ax 580 ret 581 582 .PrintWords: 583 CALL_DISPLAY_LIBRARY PrintNewlineCharacters 584 mov cx, 7 585 push cs 586 pop ds 587 mov si, .rgwItems 588 mov bx, 10 589 .Loop: 590 lodsw 591 CALL_DISPLAY_LIBRARY PrintSignedWordFromAXWithBaseInBX 592 CALL_DISPLAY_LIBRARY PrintNewlineCharacters 593 loop .Loop 594 ret 595 596 597 .rgwItems: 598 dw 435 599 dw -31551 600 dw 345 601 dw 0 602 dw -18 603 dw 23 604 dw 435 605 554 606 555 607 -
trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm
r44 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 6.9.2010 4 ; Last update : 2 7.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Displays file dialog. … … 253 253 xchg ax, cx 254 254 CALL_DISPLAY_LIBRARY SetCharacterPointerFromBXAX 255 mov dl, ATTRIBUTES_NOT_USED255 mov bl, ATTRIBUTES_NOT_USED 256 256 mov ax, BUFFER_OUTPUT_WITH_CHAR_ONLY 257 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagIn DL257 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagInBL 258 258 259 259 call .FormatFileOrDirectoryToBufferFromDTAinDSSI -
trunk/Assembly_Library/Src/Menu/Dialog/DialogProgress.asm
r41 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 15.8.2010 4 ; Last update : 16.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Displays progress bar dialog and starts progress task. … … 167 167 jcxz .DrawEmptyCharsOnly 168 168 169 mov al, SCROLL_THUMB_CHARACTER169 mov al, PROGRESS_COMPLETE_CHARACTER 170 170 CALL_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX 171 171 … … 173 173 mov cx, dx 174 174 jcxz .NothingLeftToDraw 175 mov al, SCROLL_TRACK_CHARACTER175 mov al, PROGRESS_INCOMPLETE_CHARACTER 176 176 CALL_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX 177 177 -
trunk/Assembly_Library/Src/Menu/MenuBorders.asm
r44 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 14.7.2010 4 ; Last update : 2 7.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Functions for drawing menu borders. … … 45 45 ; Nothing 46 46 ; Corrupts registers: 47 ; AX, DX, SI, DI47 ; AX, BX, SI, DI 48 48 ;-------------------------------------------------------------------- 49 49 ALIGN JUMP_ALIGN 50 50 MenuBorders_AdjustDisplayContextForDrawingBorders: 51 mov dl, ATTRIBUTES_ARE_USED51 mov bl, ATTRIBUTES_ARE_USED 52 52 mov ax, MenuCharOut_MenuBorderTeletypeOutputWithAttribute 53 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagIn DL53 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagInBL 54 54 55 55 mov ax, bp … … 269 269 call MenuAttribute_SetToDisplayContextFromTypeInSI 270 270 271 push dx272 mov dl, ATTRIBUTES_ARE_USED271 push bx 272 mov bl, ATTRIBUTES_ARE_USED 273 273 mov ax, FAST_OUTPUT_WITH_ATTRIBUTE_ONLY 274 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagIn DL275 pop dx274 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagInBL 275 pop bx 276 276 277 277 call PrintMultipleBorderCharactersFromAL ; AL does not matter -
trunk/Assembly_Library/Src/Menu/MenuText.asm
r44 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 21.7.2010 4 ; Last update : 2 7.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Functions for drawing menu texts by the user. … … 218 218 ; Nothing 219 219 ; Corrupts registers: 220 ; AX, DX, SI, DI220 ; AX, BX, SI, DI 221 221 ;-------------------------------------------------------------------- 222 222 ALIGN JUMP_ALIGN 223 223 AdjustDisplayContextForDrawingTexts: 224 mov dl, ATTRIBUTES_ARE_USED224 mov bl, ATTRIBUTES_ARE_USED 225 225 mov ax, MenuCharOut_MenuTextTeletypeOutputWithAttribute 226 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagIn DL226 CALL_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagInBL 227 227 228 228 mov ax, bp -
trunk/Assembly_Library/Src/Menu/MenuTime.asm
r44 r45 2 2 ; Project name : Assembly Library 3 3 ; Created date : 25.7.2010 4 ; Last update : 2 7.9.20104 ; Last update : 28.9.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Menu timeouts other time related functions. … … 56 56 ALIGN JUMP_ALIGN 57 57 MenuTime_UpdateSelectionTimeout: 58 cmp WORD [bp+MENUINIT.wTimeoutTicks], BYTE 059 je SHORT .ReturnSinceTimeoutDisabled ; CF cleared60 58 push ds 61 59 62 call GetSecondsUntilTimeoutToAXandPtrToTimeoutCounterToDSBX 63 cmp al, [bp+MENU.bLastSecondPrinted] 64 je SHORT .SetCFifTimeoutAndReturn 65 mov [bp+MENU.bLastSecondPrinted], al 66 call DrawTimeoutInAXoverMenuBorders 60 call MenuTime_DrawWithoutUpdating 61 jnc SHORT .TimeoutDisabled 62 call PointDSBXtoTimeoutCounter 63 call TimerTicks_SetCarryIfTimeoutFromDSBX 67 64 68 65 ALIGN JUMP_ALIGN 69 .SetCFifTimeoutAndReturn: 70 call TimerTicks_SetCarryIfTimeoutFromDSBX 66 .TimeoutDisabled: 71 67 pop ds 72 .ReturnSinceTimeoutDisabled:73 68 ret 74 75 69 76 70 ;-------------------------------------------------------------------- … … 79 73 ; SS:BP: Ptr to MENU 80 74 ; Returns: 81 ; Nothing 75 ; CF: Set if timeout enabled 76 ; Cleared if timeout disabled 82 77 ; Corrupts registers: 83 78 ; AX, BX, CX, DX, SI, DI … … 86 81 MenuTime_DrawWithoutUpdating: 87 82 cmp WORD [bp+MENUINIT.wTimeoutTicks], BYTE 0 88 je SHORT .ReturnSinceTimeoutDisabled 83 je SHORT .ReturnSinceTimeoutDisabled ; Clear CF 89 84 90 85 push ds 91 call GetSeconds UntilTimeoutToAXandPtrToTimeoutCounterToDSBX86 call GetSecondsLeftUntilTimeoutToAXandCounterToDSBX 92 87 call DrawTimeoutInAXoverMenuBorders 93 88 pop ds 89 stc 90 ALIGN JUMP_ALIGN, ret 94 91 .ReturnSinceTimeoutDisabled: 95 92 ret 93 94 95 ;-------------------------------------------------------------------- 96 ; GetSecondsLeftUntilTimeoutToAXandCounterToDSBX 97 ; Parameters 98 ; SS:BP: Ptr to MENU 99 ; Returns: 100 ; AX: Seconds until timeout 101 ; DS:BX: Ptr to timeout counter 102 ; Corrupts registers: 103 ; AX, CX, DX 104 ;-------------------------------------------------------------------- 105 ALIGN JUMP_ALIGN 106 GetSecondsLeftUntilTimeoutToAXandCounterToDSBX: 107 call PointDSBXtoTimeoutCounter 108 call TimerTicks_GetElapsedToAXfromDSBX 109 neg ax ; Negate since DS:BX points to end time 110 MAX_S ax, 0 ; Set to zero if overflow 111 xchg dx, ax 112 jmp TimerTicks_GetSecondsToAXfromTicksInDX 96 113 97 114 … … 111 128 lea bx, [bp+MENU.wTimeoutCounter] 112 129 ret 113 114 115 ;--------------------------------------------------------------------116 ; GetSecondsUntilTimeoutToAXandPtrToTimeoutCounterToDSBX117 ; Parameters118 ; SS:BP: Ptr to MENU119 ; Returns:120 ; AX: Seconds until timeout121 ; DS:BX: Ptr to timeout counter122 ; Corrupts registers:123 ; AX, CX, DX124 ;--------------------------------------------------------------------125 ALIGN JUMP_ALIGN126 GetSecondsUntilTimeoutToAXandPtrToTimeoutCounterToDSBX:127 call PointDSBXtoTimeoutCounter128 call TimerTicks_GetElapsedToAXfromDSBX129 neg ax ; Negate since DS:BX points to end time130 MAX_S ax, 0 ; Set to zero if overflow131 xchg dx, ax132 jmp TimerTicks_GetSecondsToAXfromTicksInDX133 130 134 131 … … 173 170 pop bp 174 171 172 ; Draw right border with normal border color 175 173 mov al, DOUBLE_RIGHT_HORIZONTAL_TO_SINGLE_VERTICAL 176 174 jmp MenuBorders_PrintSingleBorderCharacterFromAL … … 178 176 db DOUBLE_BOTTOM_LEFT_CORNER 179 177 db DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL 180 db "%AAutoselection in %2- ds",NULL178 db "%AAutoselection in %2-us",NULL 181 179 182 180 ;--------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.