source: xtideuniversalbios/trunk/Assembly_Library/Src/Display/DisplayPage.asm@ 121

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

Changes to Assembly Library:

  • Some minor size optimizations to Display Library.
File size: 1.8 KB
Line 
1; Project name : Assembly Library
2; Description : Functions for managing display page.
3
4; Section containing code
5SECTION .text
6
7;--------------------------------------------------------------------
8; DisplayPage_SetFromAL
9; Parameters:
10; AL: New display page
11; DS: BDA segment (zero)
12; Returns:
13; Nothing
14; Corrupts registers:
15; AX, DX
16;--------------------------------------------------------------------
17ALIGN JUMP_ALIGN
18DisplayPage_SetFromAL:
19 xor ah, ah
20 mul WORD [VIDEO_BDA.wBytesPerPage] ; AX = Offset to page
21 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition], ax
22 ret
23
24
25;--------------------------------------------------------------------
26; DisplayPage_GetColumnsToALandRowsToAH
27; Parameters:
28; DS: BDA segment (zero)
29; Returns:
30; AL: Number of columns in selected text mode
31; AH: Number of rows in selected text mode
32; Corrupts registers:
33; Nothing
34;--------------------------------------------------------------------
35ALIGN JUMP_ALIGN
36DisplayPage_GetColumnsToALandRowsToAH:
37 mov al, [VIDEO_BDA.wColumns] ; 40 or 80
38 mov ah, 25 ; Always 25 rows on standard text modes
39 ret
40
41
42;--------------------------------------------------------------------
43; DisplayPage_SynchronizeToHardware
44; Parameters:
45; DS: BDA segment (zero)
46; Returns:
47; Nothing
48; Corrupts registers:
49; AX, DX
50;--------------------------------------------------------------------
51ALIGN JUMP_ALIGN
52DisplayPage_SynchronizeToHardware:
53 xor dx, dx
54 mov ax, [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition]
55 div WORD [VIDEO_BDA.wBytesPerPage] ; AX = Page
56
57 cmp al, [VIDEO_BDA.bActivePage]
58 je SHORT .Return ; Same page, no need to synchronize
59 mov ah, SELECT_ACTIVE_DISPLAY_PAGE
60 int BIOS_VIDEO_INTERRUPT_10h
61.Return:
62 ret
Note: See TracBrowser for help on using the repository browser.