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

Last change on this file since 369 was 369, checked in by gregli@…, 13 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.