summaryrefslogtreecommitdiff
path: root/src/drivers/video/vga.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/video/vga.c')
-rw-r--r--src/drivers/video/vga.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/drivers/video/vga.c b/src/drivers/video/vga.c
index 751cbc5..fd5bb10 100644
--- a/src/drivers/video/vga.c
+++ b/src/drivers/video/vga.c
@@ -284,6 +284,7 @@ bool vga_set_mode( vga_t *vga, const vga_mode_t mode )
vga->mode = mode;
vga->mode.segment = get_frame_buffer_segment( vga );
+ vga->mode.segment_size = get_frame_buffer_segment_size( vga );
vga_use_z_buffer( vga, false );
@@ -429,8 +430,7 @@ void vga_use_z_buffer( vga_t *vga, bool use )
vga->use_z_buffer = use;
if( vga->use_z_buffer ) {
- size_t size = get_frame_buffer_segment_size( vga );
- vga->zbuffer = (uint8_t *)malloc( size );
+ vga->zbuffer = (uint8_t *)malloc( vga->mode.segment_size );
vga->base_addr = &vga->zbuffer[0];
} else {
if( vga->zbuffer != NULL ) {
@@ -445,7 +445,7 @@ void vga_refresh( vga_t *vga )
{
if( vga->use_z_buffer ) {
vga_wait_for_retrace( vga );
- memcpy( vga->mode.segment, vga->zbuffer, 65535 );
+ memcpy( vga->mode.segment, vga->zbuffer, vga->mode.segment_size );
}
}