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

Last change on this file since 372 was 370, checked in by krille_n_@…, 13 years ago

Changes:

  • Added some missing PIO mode timings to ATA_ID.inc (based on info from http://www.singlix.net/specs/cfspc4_0.pdf)
  • Updated Configuration_FullMode.txt but it may need additional changes as the Tandy info doesn't match the wiki.
  • Optimizations.
  • Excluded some unused code from XTIDECFG.
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%ifndef EXCLUDE_FROM_XTIDECFG
71 %define SetNewPageFromAL DisplayPage_SetFromAL
72%endif
73 %define SynchronizeDisplayContextToHardware DisplayContext_SynchronizeToHardware
74
75%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
76 %define GetCharacterPointerToBXAX DisplayContext_GetCharacterPointerToBXAX
77%endif
78 %define GetSoftwareCoordinatesToAX DisplayCursor_GetSoftwareCoordinatesToAX
79 %define GetColumnsToALandRowsToAH DisplayPage_GetColumnsToALandRowsToAH
80
81 %define FormatNullTerminatedStringFromCSSI Display_FormatNullTerminatedStringFromCSSI
82%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
83 %define PrintSignedWordFromAXWithBaseInBX DisplayPrint_SignedWordFromAXWithBaseInBX
84%endif
85 %define PrintWordFromAXwithBaseInBX DisplayPrint_WordFromAXWithBaseInBX
86%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG
87 %define PrintQWordFromSSBPwithBaseInBX DisplayPrint_QWordFromSSBPwithBaseInBX
88%endif
89 %define PrintCharBufferFromBXSIwithLengthInCX DisplayPrint_CharacterBufferFromBXSIwithLengthInCX
90 %define PrintNullTerminatedStringFromBXSI DisplayPrint_NullTerminatedStringFromBXSI
91 %define PrintNullTerminatedStringFromCSSI DisplayPrint_NullTerminatedStringFromCSSI
92 %define PrintRepeatedCharacterFromALwithCountInCX DisplayPrint_RepeatCharacterFromALwithCountInCX
93 %define PrintCharacterFromAL DisplayPrint_CharacterFromAL
94 %define PrintNewlineCharacters DisplayPrint_Newline
95%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
96 %define ClearAreaWithHeightInAHandWidthInAL DisplayPrint_ClearAreaWithHeightInAHandWidthInAL
97%endif
98 %define ClearScreenWithCharInALandAttrInAH DisplayPrint_ClearScreenWithCharInALandAttributeInAH
99
Note: See TracBrowser for help on using the repository browser.