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
RevLine 
[41]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;--------------------------------------------------------------------
[369]18ALIGN DISPLAY_JUMP_ALIGN
[41]19Display_FunctionFromDI:
20 push es
21 push ds
22 push dx
23
24 cld
25 LOAD_BDA_SEGMENT_TO ds, dx
[177]26 mov dx, di
[41]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;--------------------------------------------------------------------
[177]37; Display_FormatNullTerminatedStringFromCSSI
[41]38; Parameters:
39; Same as DisplayPrint_FormattedNullTerminatedStringFromCSSI
40; Returns:
41; Stack variables will be cleaned
42; Corrupts registers:
43; AX
44;--------------------------------------------------------------------
[369]45ALIGN DISPLAY_JUMP_ALIGN
[177]46Display_FormatNullTerminatedStringFromCSSI:
[101]47 pop ax ; Discard return address to inside Display_FunctionFromDI
[41]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
[181]60 %define InitializeDisplayContext DisplayContext_Initialize
61
[133]62%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
[181]63 %define SetCharacterPointerFromBXAX DisplayContext_SetCharacterPointerFromBXAX
[133]64%endif
[181]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
[41]72
[133]73%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
[181]74 %define GetCharacterPointerToBXAX DisplayContext_GetCharacterPointerToBXAX
[133]75%endif
[181]76 %define GetSoftwareCoordinatesToAX DisplayCursor_GetSoftwareCoordinatesToAX
77 %define GetColumnsToALandRowsToAH DisplayPage_GetColumnsToALandRowsToAH
[41]78
[181]79 %define FormatNullTerminatedStringFromCSSI Display_FormatNullTerminatedStringFromCSSI
[134]80%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
[181]81 %define PrintSignedWordFromAXWithBaseInBX DisplayPrint_SignedWordFromAXWithBaseInBX
[134]82%endif
[181]83 %define PrintWordFromAXwithBaseInBX DisplayPrint_WordFromAXWithBaseInBX
[341]84%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG
[323]85 %define PrintQWordFromSSBPwithBaseInBX DisplayPrint_QWordFromSSBPwithBaseInBX
86%endif
[181]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
[134]93%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
[181]94 %define ClearAreaWithHeightInAHandWidthInAL DisplayPrint_ClearAreaWithHeightInAHandWidthInAL
[134]95%endif
[181]96 %define ClearScreenWithCharInALandAttrInAH DisplayPrint_ClearScreenWithCharInALandAttributeInAH
[177]97
Note: See TracBrowser for help on using the repository browser.