Changeset 101 in xtideuniversalbios for trunk/Assembly_Library/Src/Display/DisplayContext.asm


Ignore:
Timestamp:
Jan 31, 2011, 7:03:22 PM (13 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Changes to Assembly Library:

  • Some minor size optimizations to Display Library.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Assembly_Library/Src/Display/DisplayContext.asm

    r52 r101  
    1 ; File name     :   DisplayContext.asm
    21; Project name  :   Assembly Library
    3 ; Created date  :   25.6.2010
    4 ; Last update   :   11.10.2010
    5 ; Author        :   Tomi Tilli
    62; Description   :   Functions for managing display context.
    73
     
    2016ALIGN JUMP_ALIGN
    2117DisplayContext_Initialize:
    22     call    .DetectAndSetDisplaySegment ; and .InitializeFlags
    2318    mov     WORD [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fnCharOut], DEFAULT_CHARACTER_OUTPUT
    2419    mov     WORD [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.wCursorShape], CURSOR_NORMAL
    2520    mov     BYTE [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bAttribute], SCREEN_BACKGROUND_ATTRIBUTE
    26     xor     ax, ax
    27     call    DisplayCursor_SetCoordinatesFromAX
    28     jmp     DisplayContext_SynchronizeToHardware
     21    ; Fall to .DetectAndSetDisplaySegment
    2922
    3023;--------------------------------------------------------------------
     
    4033    mov     ax, COLOR_TEXT_SEGMENT
    4134    cmp     BYTE [VIDEO_BDA.bMode], MDA_TEXT_MODE
    42     jne     SHORT .StoreSegmentToDisplayContext
    43     mov     ax, MONO_TEXT_SEGMENT
    44 .StoreSegmentToDisplayContext:
     35    eCMOVE  ah, MONO_TEXT_SEGMENT >> 8
    4536    mov     [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition+2], ax
    46     ; Fall to InitializeFlags
     37    ; Fall to .InitializeFlags
    4738
    4839;--------------------------------------------------------------------
     
    6253.DoNotSetCgaFlag:
    6354    mov     [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bFlags], dl
    64     ret
     55    ; Fall to .InitializeCursor
     56
     57;--------------------------------------------------------------------
     58; .InitializeCursor
     59;   Parameters:
     60;       DS:     BDA segment (zero)
     61;   Returns:
     62;       Nothing
     63;   Corrupts registers:
     64;       AX, DX
     65;--------------------------------------------------------------------
     66.InitializeCursor:
     67    xor     ax, ax
     68    call    DisplayCursor_SetCoordinatesFromAX
     69    ; Fall to DisplayContext_SynchronizeToHardware
     70
     71;--------------------------------------------------------------------
     72; DisplayContext_SynchronizeToHardware
     73;   Parameters:
     74;       DS:     BDA segment (zero)
     75;   Returns:
     76;       Nothing
     77;   Corrupts registers:
     78;       AX, DX
     79;--------------------------------------------------------------------
     80ALIGN JUMP_ALIGN
     81DisplayContext_SynchronizeToHardware:
     82    call    DisplayPage_SynchronizeToHardware
     83    call    DisplayCursor_SynchronizeShapeToHardware
     84    jmp     DisplayCursor_SynchronizeCoordinatesToHardware
    6585
    6686
     
    145165    pop     ds
    146166    ret
    147 
    148 
    149 ;--------------------------------------------------------------------
    150 ; DisplayContext_SynchronizeToHardware
    151 ;   Parameters:
    152 ;       DS:     BDA segment (zero)
    153 ;   Returns:
    154 ;       Nothing
    155 ;   Corrupts registers:
    156 ;       AX, DX
    157 ;--------------------------------------------------------------------
    158 ALIGN JUMP_ALIGN
    159 DisplayContext_SynchronizeToHardware:
    160     call    DisplayPage_SynchronizeToHardware
    161     call    DisplayCursor_SynchronizeShapeToHardware
    162     jmp     DisplayCursor_SynchronizeCoordinatesToHardware
    163167
    164168
Note: See TracChangeset for help on using the changeset viewer.