diff options
author | Volker Ruppert <info@vruppert.de> | 2002-10-20 15:12:32 +0000 |
---|---|---|
committer | Volker Ruppert <info@vruppert.de> | 2002-10-20 15:12:32 +0000 |
commit | 4e3a25a7107f80e63f87cae8de52d35ddc711672 (patch) | |
tree | b71d41c9a304532b5555cce42fc17fe2b2a5e48e | |
parent | 3d99ff40076d51eed6eb01187a9cb60813ba7f7e (diff) | |
download | vgabios-4e3a25a7107f80e63f87cae8de52d35ddc711672.tar.gz |
- new function set_scan_lines() for the font size change (patch from Hartmut Birr)
- cursor shape start and end must be updated in set_scan_lines()
- set_scan_lines() is called by the functions 0x1110, 0x1111, 0x1112 and 0x1114
after copying the font data
-rw-r--r-- | vgabios.c | 26 |
1 files changed, 22 insertions, 4 deletions
@@ -1649,6 +1649,24 @@ static void release_font_access() outw( VGAREG_GRDC_ADDRESS, 0x0e06 ); } +static void set_scan_lines(lines) Bit8u lines; +{ + Bit8u crtc9; + + outb(read_word(BIOSMEM_SEG,BIOSMEM_CRTC_ADDRESS), 0x09); + crtc9 = inb(read_word(BIOSMEM_SEG,BIOSMEM_CRTC_ADDRESS)+1); + crtc9 = (crtc9 & 0xe0) | (lines - 1); + outb(read_word(BIOSMEM_SEG,BIOSMEM_CRTC_ADDRESS)+1, crtc9); + if(lines==8) + { + biosfn_set_cursor_shape(0x06,0x07); + } + else + { + biosfn_set_cursor_shape(lines-4,lines-3); + } +} + static void biosfn_load_text_user_pat (AL,ES,BP,CX,DX,BL,BH) Bit8u AL;Bit16u ES;Bit16u BP;Bit16u CX;Bit16u DX;Bit8u BL;Bit8u BH; { Bit16u blockaddr,dest,i,j,src; @@ -1667,7 +1685,7 @@ static void biosfn_load_text_user_pat (AL,ES,BP,CX,DX,BL,BH) Bit8u AL;Bit16u ES; release_font_access(); if(AL>=0x10) { - printf("Function 0x1110 not finished\n"); + set_scan_lines(BH); } } @@ -1689,7 +1707,7 @@ static void biosfn_load_text_8_14_pat (AL,BL) Bit8u AL;Bit8u BL; release_font_access(); if(AL>=0x10) { - printf("Function 0x1111 not finished\n"); + set_scan_lines(14); } } @@ -1711,7 +1729,7 @@ static void biosfn_load_text_8_8_pat (AL,BL) Bit8u AL;Bit8u BL; release_font_access(); if(AL>=0x10) { - printf("Function 0x1112 not finished\n"); + set_scan_lines(8); } } @@ -1739,7 +1757,7 @@ static void biosfn_load_text_8_16_pat (AL,BL) Bit8u AL;Bit8u BL; release_font_access(); if(AL>=0x10) { - printf("Function 0x1114 not finished\n"); + set_scan_lines(16); } } |