Changeset 50 in xtideuniversalbios for trunk/Assembly_Library/Src/Display/DisplayContext.asm
- Timestamp:
- Oct 9, 2010, 5:47:26 PM (15 years ago)
- google:author:
- aitotat
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Src/Display/DisplayContext.asm
r48 r50 2 2 ; Project name : Assembly Library 3 3 ; Created date : 25.6.2010 4 ; Last update : 5.10.20104 ; Last update : 9.10.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Functions for managing display context. … … 20 20 ALIGN JUMP_ALIGN 21 21 DisplayContext_Initialize: 22 call .DetectAndSetDisplaySegment 22 call .DetectAndSetDisplaySegment ; and .InitializeFlags 23 23 mov WORD [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fnCharOut], DEFAULT_CHARACTER_OUTPUT 24 24 mov WORD [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.wCursorShape], CURSOR_NORMAL 25 25 mov BYTE [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bAttribute], SCREEN_BACKGROUND_ATTRIBUTE 26 mov BYTE [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], FLG_CONTEXT_ATTRIBUTES27 28 26 xor ax, ax 29 27 call DisplayCursor_SetCoordinatesFromAX 30 jmp SHORTDisplayContext_SynchronizeToHardware28 jmp DisplayContext_SynchronizeToHardware 31 29 32 30 ;-------------------------------------------------------------------- … … 37 35 ; Nothing 38 36 ; Corrupts registers: 39 ; Nothing37 ; AX, DX 40 38 ;-------------------------------------------------------------------- 41 39 .DetectAndSetDisplaySegment: 42 mov WORD [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition+2], COLOR_TEXT_SEGMENT40 mov ax, COLOR_TEXT_SEGMENT 43 41 cmp BYTE [VIDEO_BDA.bMode], MDA_TEXT_MODE 44 jne SHORT .Return 45 sub WORD [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition+2], COLOR_TEXT_SEGMENT - MONO_TEXT_SEGMENT 46 .Return: 42 jne SHORT .StoreSegmentToDisplayContext 43 mov ax, MONO_TEXT_SEGMENT 44 .StoreSegmentToDisplayContext: 45 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition+2], ax 46 ; Fall to InitializeFlags 47 48 ;-------------------------------------------------------------------- 49 ; .InitializeFlags 50 ; Parameters: 51 ; DS: BDA segment (zero) 52 ; Returns: 53 ; Nothing 54 ; Corrupts registers: 55 ; AX, DX 56 ;-------------------------------------------------------------------- 57 .InitializeFlags: 58 mov dl, FLG_CONTEXT_ATTRIBUTES 59 call CgaSnow_IsCgaPresent 60 jnc SHORT .DoNotSetCgaFlag 61 or dl, FLG_CONTEXT_CGA 62 .DoNotSetCgaFlag: 63 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], dl 47 64 ret 48 65 … … 188 205 ; Nothing 189 206 ; Corrupts registers: 190 ; Nothing207 ; BL 191 208 ;-------------------------------------------------------------------- 192 209 ALIGN JUMP_ALIGN 193 210 DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagInBL: 211 and bl, FLG_CONTEXT_ATTRIBUTES 212 and BYTE [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], ~FLG_CONTEXT_ATTRIBUTES 213 or [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], bl 194 214 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fnCharOut], ax 195 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], bl196 215 ret 197 216
Note:
See TracChangeset
for help on using the changeset viewer.