source: xtideuniversalbios/trunk/Assembly_Library/Src/Display/Display.asm @ 369

Last change on this file since 369 was 369, checked in by gregli@…, 12 years ago

Removed align directives for initalization code and added define for align in boot-time calls to the assembly library (defaulting to 1), resulting in a significant savings for the AT and 386 builds. Fixed a bug with switch command line handling in the serial server. Put in CR characters in licesnse.txt, so that it properly displays on Windows. In the configurator, added default values for user supplied CHS and LBA values, defaulting to values within range when those features are enabled. Updated the copyright message in the configurator as the literal word Copyright is important.

File size: 3.9 KB
Line 
1; Project name  :   Assembly Library
2; Description   :   Display Library functions for CALL_DISPLAY_LIBRARY macro
3;                   that users should use to make library call.
4
5; Section containing code
6SECTION .text
7
8;--------------------------------------------------------------------
9; DisplayFunctionFromDI
10;   Parameters:
11;       DI:     Function to call (DISPLAY_LIB.functionName)
12;       Others: Depends on function to call (DX cannot be parameter)
13;   Returns:
14;       Depends on function to call
15;   Corrupts registers:
16;       AX (unless used as a return register), DI
17;--------------------------------------------------------------------
18ALIGN DISPLAY_JUMP_ALIGN
19Display_FunctionFromDI:
20    push    es
21    push    ds
22    push    dx
23
24    cld
25    LOAD_BDA_SEGMENT_TO ds, dx
26    mov     dx, di
27    les     di, [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition]
28    call    dx
29    mov     [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition], di
30
31    pop     dx
32    pop     ds
33    pop     es
34    ret
35
36;--------------------------------------------------------------------
37; Display_FormatNullTerminatedStringFromCSSI
38;   Parameters:
39;       Same as DisplayPrint_FormattedNullTerminatedStringFromCSSI
40;   Returns:
41;       Stack variables will be cleaned
42;   Corrupts registers:
43;       AX
44;--------------------------------------------------------------------
45ALIGN DISPLAY_JUMP_ALIGN
46Display_FormatNullTerminatedStringFromCSSI:
47    pop     ax                  ; Discard return address to inside Display_FunctionFromDI
48    call    DisplayPrint_FormattedNullTerminatedStringFromCSSI
49    mov     [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition], di
50
51    pop     dx
52    pop     ds
53    pop     es
54
55    pop     ax                  ; Pop return address
56    mov     sp, bp              ; Clean stack variables
57    jmp     ax
58
59
60    %define InitializeDisplayContext                        DisplayContext_Initialize
61
62%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
63    %define SetCharacterPointerFromBXAX                     DisplayContext_SetCharacterPointerFromBXAX
64%endif
65    %define SetCharOutputFunctionFromAXwithAttribFlagInBL   DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagInBL
66    %define SetCharacterOutputParameterFromAX               DisplayContext_SetCharacterOutputParameterFromAX
67    %define SetCharacterAttributeFromAL                     DisplayContext_SetCharacterAttributeFromAL
68    %define SetCursorShapeFromAX                            DisplayCursor_SetShapeFromAX
69    %define SetCursorCoordinatesFromAX                      DisplayCursor_SetCoordinatesFromAX
70    %define SetNewPageFromAL                                DisplayPage_SetFromAL
71    %define SynchronizeDisplayContextToHardware             DisplayContext_SynchronizeToHardware
72
73%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
74    %define GetCharacterPointerToBXAX                       DisplayContext_GetCharacterPointerToBXAX
75%endif
76    %define GetSoftwareCoordinatesToAX                      DisplayCursor_GetSoftwareCoordinatesToAX
77    %define GetColumnsToALandRowsToAH                       DisplayPage_GetColumnsToALandRowsToAH
78
79    %define FormatNullTerminatedStringFromCSSI              Display_FormatNullTerminatedStringFromCSSI
80%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
81    %define PrintSignedWordFromAXWithBaseInBX               DisplayPrint_SignedWordFromAXWithBaseInBX
82%endif
83    %define PrintWordFromAXwithBaseInBX                     DisplayPrint_WordFromAXWithBaseInBX
84%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG
85    %define PrintQWordFromSSBPwithBaseInBX                  DisplayPrint_QWordFromSSBPwithBaseInBX
86%endif
87    %define PrintCharBufferFromBXSIwithLengthInCX           DisplayPrint_CharacterBufferFromBXSIwithLengthInCX
88    %define PrintNullTerminatedStringFromBXSI               DisplayPrint_NullTerminatedStringFromBXSI
89    %define PrintNullTerminatedStringFromCSSI               DisplayPrint_NullTerminatedStringFromCSSI
90    %define PrintRepeatedCharacterFromALwithCountInCX       DisplayPrint_RepeatCharacterFromALwithCountInCX
91    %define PrintCharacterFromAL                            DisplayPrint_CharacterFromAL
92    %define PrintNewlineCharacters                          DisplayPrint_Newline
93%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
94    %define ClearAreaWithHeightInAHandWidthInAL             DisplayPrint_ClearAreaWithHeightInAHandWidthInAL
95%endif
96    %define ClearScreenWithCharInALandAttrInAH              DisplayPrint_ClearScreenWithCharInALandAttributeInAH
97
Note: See TracBrowser for help on using the repository browser.