X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=vgasrc%2Fvga.c;h=e7b96ff734f290d041d8dc0c63c436ede750bb2a;hb=87233e9ddac7f833d14031be5d7afc705aed5f25;hp=d1de5cceda91edf8efad78172703c52862174a7d;hpb=e48a53795452212a259a34e685e05f38d823cafe;p=seabios.git diff --git a/vgasrc/vga.c b/vgasrc/vga.c index d1de5cc..e7b96ff 100644 --- a/vgasrc/vga.c +++ b/vgasrc/vga.c @@ -175,8 +175,7 @@ set_active_page(u8 page) // Start address address = SCREEN_IO_START(nbcols, nbrows, page); } else { - struct VideoParam_s *vparam_g = GET_GLOBAL(vmode_g->vparam); - address = page * GET_GLOBAL(vparam_g->slength); + address = page * GET_GLOBAL(vmode_g->slength); } vgahw_set_active_page(address); @@ -394,8 +393,7 @@ vga_set_mode(u8 mode, u8 noclearmem) perform_gray_scale_summing(0x00, 0x100); } - struct VideoParam_s *vparam_g = GET_GLOBAL(vmode_g->vparam); - vgahw_set_mode(vparam_g); + vgahw_set_mode(vmode_g); if (noclearmem == 0x00) clear_screen(vmode_g); @@ -406,12 +404,12 @@ vga_set_mode(u8 mode, u8 noclearmem) crtc_addr = VGAREG_MDA_CRTC_ADDRESS; // Set the BIOS mem - u16 cheight = GET_GLOBAL(vparam_g->cheight); + u16 cheight = GET_GLOBAL(vmode_g->cheight); SET_BDA(video_mode, mode); - SET_BDA(video_cols, GET_GLOBAL(vparam_g->twidth)); - SET_BDA(video_pagesize, GET_GLOBAL(vparam_g->slength)); + SET_BDA(video_cols, GET_GLOBAL(vmode_g->twidth)); + SET_BDA(video_pagesize, GET_GLOBAL(vmode_g->slength)); SET_BDA(crtc_address, crtc_addr); - SET_BDA(video_rows, GET_GLOBAL(vparam_g->theightm1)); + SET_BDA(video_rows, GET_GLOBAL(vmode_g->theight)-1); SET_BDA(char_height, cheight); SET_BDA(video_ctl, (0x60 | noclearmem)); SET_BDA(video_switches, 0xF9); @@ -420,7 +418,7 @@ vga_set_mode(u8 mode, u8 noclearmem) // FIXME We nearly have the good tables. to be reworked SET_BDA(dcc_index, 0x08); // 8 is VGA should be ok for now SET_BDA(video_savetable - , SEGOFF(get_global_seg(), (u32)video_save_pointer_table)); + , SEGOFF(get_global_seg(), (u32)&video_save_pointer_table)); // FIXME SET_BDA(video_msr, 0x00); // Unavailable on vanilla vga, but... @@ -1092,8 +1090,7 @@ handle_101a(struct bregs *regs) struct funcInfo { - u16 static_functionality_off; - u16 static_functionality_seg; + struct segoff_s static_functionality; u8 bda_0x49[30]; u8 bda_0x84[3]; u8 dcc_index; @@ -1119,8 +1116,8 @@ handle_101b(struct bregs *regs) struct funcInfo *info = (void*)(regs->di+0); memset_far(seg, info, 0, sizeof(*info)); // Address of static functionality table - SET_FARVAR(seg, info->static_functionality_off, (u32)static_functionality); - SET_FARVAR(seg, info->static_functionality_seg, get_global_seg()); + SET_FARVAR(seg, info->static_functionality + , SEGOFF(get_global_seg(), (u32)static_functionality)); // Hard coded copy from BIOS area. Should it be cleaner ? memcpy_far(seg, info->bda_0x49, SEG_BDA, (void*)0x49 @@ -1586,8 +1583,8 @@ vga_post(struct bregs *regs) // XXX - clear screen and display info // XXX: fill it - SET_VGA(video_save_pointer_table[0], (u32)video_param_table); - SET_VGA(video_save_pointer_table[1], get_global_seg()); + SET_VGA(video_save_pointer_table.videoparam + , SEGOFF(get_global_seg(), (u32)video_param_table)); // Fixup checksum extern u8 _rom_header_size, _rom_header_checksum;