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

Last change on this file since 44 was 44, checked in by Tomi Tilli, 14 years ago

Spaces can now be generated before format specifier when printing formatted string.
Background character and attribute can now be easily specified before compiling.

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