From d2142e02cb9ae4bd161b2a7afaaa5a7434914bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Thu, 17 Nov 2016 17:40:26 +0000 Subject: [PATCH] activate video mode 1280x1024x256@71 on Radeon --- BaS_gcc/video/offscreen.c | 16 ++++++++-------- BaS_gcc/video/video.c | 25 +++++++++++++------------ BaS_gcc/x86emu/x86biosemu.c | 10 ---------- 3 files changed, 21 insertions(+), 30 deletions(-) diff --git a/BaS_gcc/video/offscreen.c b/BaS_gcc/video/offscreen.c index 652570d..f6925fb 100644 --- a/BaS_gcc/video/offscreen.c +++ b/BaS_gcc/video/offscreen.c @@ -245,24 +245,24 @@ void offscreen_init(struct fb_info *info) long size_screen; long max_offscreen_size; - wrap = (long) info->var.xres_virtual * (long)(info->var.bits_per_pixel / 8); - size_screen = (long)info->var.yres_virtual * wrap; + wrap = (long) info->var.xres_virtual * (long) (info->var.bits_per_pixel / 8); + size_screen = (long) info->var.yres_virtual * wrap; if (!size_screen) - size_screen = (long)info->screen_size; + size_screen = (long) info->screen_size; pmd.mp_mfl = pmd.mp_rover = &tab_md[0]; - tab_md[0].m_link = (MD *)NULL; - tab_md[0].m_start = (long)((unsigned long)info->ram_base + (unsigned long)size_screen); - tab_md[0].m_length = (long)info->ram_size - size_screen; + tab_md[0].m_link = (MD *) NULL; + tab_md[0].m_start = (long)((unsigned long) info->ram_base + (unsigned long) size_screen); + tab_md[0].m_length = (long) info->ram_size - size_screen; tab_md[0].m_own = (void *)1L; - max_offscreen_size = ((long)info->var.xres_virtual * 8192L * (long)(info->var.bits_per_pixel / 8)) - size_screen; + max_offscreen_size = ((long) info->var.xres_virtual * 8192L * (long)(info->var.bits_per_pixel / 8)) - size_screen; if (max_offscreen_size < 0) max_offscreen_size = 0; if (tab_md[0].m_length > max_offscreen_size) tab_md[0].m_length = max_offscreen_size; - dbg("offscreen_init start %p, length 0x%ld, ram size 0x%ld\r\n", + dbg("offscreen_init start %p, length %ld, ram size %ld\r\n", tab_md[0].m_start, tab_md[0].m_length, (long) info->ram_size); pmd.mp_mal = (MD *)NULL; } diff --git a/BaS_gcc/video/video.c b/BaS_gcc/video/video.c index 3f7c625..35573aa 100644 --- a/BaS_gcc/video/video.c +++ b/BaS_gcc/video/video.c @@ -283,10 +283,10 @@ static struct radeonfb_info rfb = static struct fb_var_screeninfo default_fb = { - .xres = 640, - .yres = 480, - .xres_virtual = 640, - .yres_virtual = 480, + .xres = 1280, + .yres = 1024, + .xres_virtual = 1280, + .yres_virtual = 1024, .bits_per_pixel = 8, .grayscale = 0, .red = { .length = 8 }, @@ -295,14 +295,15 @@ static struct fb_var_screeninfo default_fb = .activate = FB_ACTIVATE_NOW, .height = -1, .width = -1, - .pixclock = 39721, - .left_margin = 40, - .right_margin = 24, - .upper_margin = 32, - .lower_margin = 11, - .hsync_len = 96, - .vsync_len = 2, + .pixclock = 7407, + .left_margin = 256, + .right_margin = 32, + .upper_margin = 34, + .lower_margin = 3, + .hsync_len = 144, + .vsync_len = 3, .vmode = FB_VMODE_NONINTERLACED, + .activate = FB_ACTIVATE_ALL | FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW }; static struct fb_info fb = @@ -339,7 +340,7 @@ struct mode_option resolution = .height = 480, .bpp = 8, .freq = 60, - .flags = 0 + .flags = 0, }; int16_t force_measure_pll = 0; diff --git a/BaS_gcc/x86emu/x86biosemu.c b/BaS_gcc/x86emu/x86biosemu.c index 167ad24..861fae5 100644 --- a/BaS_gcc/x86emu/x86biosemu.c +++ b/BaS_gcc/x86emu/x86biosemu.c @@ -401,16 +401,6 @@ void run_bios(struct radeonfb_info *rinfo) emu.emu_wrb(&emu, 0xffff7, '/'); emu.emu_wrb(&emu, 0xffffa, '/'); - /* - * FixME: move PIT (programmable interval timer) init to its own file - * do we really need this? - don't think it does anything sensible ... - */ - outb(&emu, 0x36, 0x43); - outb(&emu, 0x00, 0x40); - outb(&emu, 0x00, 0x40); - - // setup_int_vect(); - /* cpu setup */ emu.x86.R_AX = devfn ? devfn : 0xff; emu.x86.R_DX = 0x80;