diff options
author | Volker Ruppert <info@vruppert.de> | 2003-11-17 21:03:42 +0000 |
---|---|---|
committer | Volker Ruppert <info@vruppert.de> | 2003-11-17 21:03:42 +0000 |
commit | dab33735761f9650b0ae6d3c328d5de34750be00 (patch) | |
tree | 13428e81c90b2298d3afd5e47468bb9ca8dcadd3 | |
parent | 9db7d0d640202ef21802f1fe7398d5ae696e624c (diff) | |
download | vgabios-dab33735761f9650b0ae6d3c328d5de34750be00.tar.gz |
- new VBE presence flag stored at unused BDA address 0xB9
- VBE init code rewritten
- added BIOS TTY flag for VBE mode 0x0102 (TODO: scrolling)
- vgabios_init_func: load and activate text font already done by set_video_mode
- function biosfn_get_all_palette_reg() fixed
-rw-r--r-- | vbe.c | 14 | ||||
-rw-r--r-- | vbetables.h | 1 | ||||
-rw-r--r-- | vgabios.c | 16 | ||||
-rw-r--r-- | vgatables.h | 1 |
4 files changed, 7 insertions, 25 deletions
@@ -323,9 +323,7 @@ static ModeInfoListItem* mode_info_find_mode(mode, using_lfb) */ Boolean vbe_has_vbe_display() { - dispi_set_id(VBE_DISPI_ID2); - - return (dispi_get_id()==VBE_DISPI_ID2); + return read_byte(BIOSMEM_SEG,BIOSMEM_VBE_FLAG); } /** VBE Init - Initialise the Vesa Bios Extension Code @@ -341,16 +339,12 @@ void vbe_init() dispi_id=inw(VBE_DISPI_IOPORT_DATA); - if (dispi_id!=VBE_DISPI_ID0) + if (dispi_id==VBE_DISPI_ID0) { -//FIXME this results in a 'rombios.c' line panic, but it's actually a 'vbe.c' panic -ASM_START - HALT(__LINE__) -ASM_END + write_byte(BIOSMEM_SEG,BIOSMEM_VBE_FLAG,0x01); + dispi_set_id(VBE_DISPI_ID2); } -//#ifdef DEBUG printf("VBE Bios $Id$\n"); -//#endif } /** VBE Display Info - Display information on screen about the VBE diff --git a/vbetables.h b/vbetables.h index e9dee6f..b7ed7f9 100644 --- a/vbetables.h +++ b/vbetables.h @@ -234,6 +234,7 @@ static ModeInfoListItem mode_info_list[]= // Mandatory information for all VBE revisions /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | VBE_MODE_ATTRIBUTE_EXTENDED_INFORMATION_AVAILABLE | + VBE_MODE_ATTRIBUTE_TTY_BIOS_SUPPORT | VBE_MODE_ATTRIBUTE_COLOR_MODE | VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_RELOCATABLE | @@ -236,14 +236,8 @@ vgabios_init_func: call _init_bios_area #ifdef VBE - call _vbe_has_vbe_display - cmp al, #0x00 - je init_no_vbe_display - ;; init vbe functions call _vbe_init - -init_no_vbe_display: #endif ;; set int10 vect @@ -256,14 +250,6 @@ init_no_vbe_display: mov ax,#0x0003 int #0x10 -;; copy and activate 8x16 font - mov ax, #0x1104 - mov bl, #0x00 - int #0x10 - mov ax, #0x1103 - mov bl, #0x00 - int #0x10 - ;; show info call _display_info @@ -1641,7 +1627,7 @@ static void biosfn_get_all_palette_reg (seg,offset) Bit16u seg;Bit16u offset; Bit8u i; // First the colors - for(i=0;i<=0x10;i++) + for(i=0;i<0x10;i++) { inb(VGAREG_ACTL_RESET); outb(VGAREG_ACTL_ADDRESS,i); diff --git a/vgatables.h b/vgatables.h index 7f29a13..0255fb8 100644 --- a/vgatables.h +++ b/vgatables.h @@ -23,6 +23,7 @@ #define BIOSMEM_MODESET_CTL 0x89 #define BIOSMEM_DCC_INDEX 0x8A #define BIOSMEM_VS_POINTER 0xA8 +#define BIOSMEM_VBE_FLAG 0xB9 #define BIOSMEM_VBE_MODE 0xBA |