- allocate vbe memory dynamicly (saves memory if extension Bochs VBE is not selected)

This commit is contained in:
Volker Ruppert 2005-10-27 17:53:41 +00:00
parent 2bbf61deed
commit d7807a9841
2 changed files with 15 additions and 4 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: vga.cc,v 1.121 2005-10-27 09:32:02 vruppert Exp $
// $Id: vga.cc,v 1.122 2005-10-27 17:53:39 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002 MandrakeSoft S.A.
@ -109,12 +109,19 @@ bx_vga_c::bx_vga_c(void)
s.x_tilesize = X_TILESIZE;
s.y_tilesize = Y_TILESIZE;
timer_id = BX_NULL_TIMER_HANDLE;
#if BX_SUPPORT_VBE
s.vbe_memory = NULL;
#endif
}
bx_vga_c::~bx_vga_c(void)
{
// nothing for now
#if BX_SUPPORT_VBE
if (s.vbe_memory != NULL) {
delete [] s.vbe_memory;
}
#endif
}
@ -293,6 +300,10 @@ bx_vga_c::init(void)
DEV_register_memory_handlers(mem_read_handler, theVga, mem_write_handler,
theVga, VBE_DISPI_LFB_PHYSICAL_ADDRESS,
VBE_DISPI_LFB_PHYSICAL_ADDRESS + VBE_DISPI_TOTAL_VIDEO_MEMORY_BYTES - 1);
if (BX_VGA_THIS s.vbe_memory == NULL)
BX_VGA_THIS s.vbe_memory = new Bit8u[VBE_DISPI_TOTAL_VIDEO_MEMORY_BYTES];
memset(BX_VGA_THIS s.vbe_memory, 0, VBE_DISPI_TOTAL_VIDEO_MEMORY_BYTES);
BX_VGA_THIS s.vbe_cur_dispi=VBE_DISPI_ID0;
BX_VGA_THIS s.vbe_xres=640;
BX_VGA_THIS s.vbe_yres=480;

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: vga.h,v 1.47 2005-10-27 09:32:02 vruppert Exp $
// $Id: vga.h,v 1.48 2005-10-27 17:53:41 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002 MandrakeSoft S.A.
@ -280,7 +280,7 @@ protected:
Bit8u last_bpp;
#if BX_SUPPORT_VBE
Bit8u vbe_memory[VBE_DISPI_TOTAL_VIDEO_MEMORY_BYTES];
Bit8u *vbe_memory;
Bit16u vbe_cur_dispi;
Bit16u vbe_xres;
Bit16u vbe_yres;