MicrOS
vbe.c File Reference
#include "vbe.h"
#include "../v8086/v8086.h"
#include "../v8086/memory_operations.h"
#include <stdbool.h>
#include <string.h>
#include "../memory/heap/heap.h"

Functions

void VBE_initialize ()
 
void VBE_close ()
 
bool VBE_is_initialized ()
 
VBEStatus VBE_check_existance_of_VESA ()
 
VBEStatus VBE_get_svga_information (svga_information **information_struct_ptr)
 
VBEStatus VBE_get_vesa_mode_information (svga_mode_information *infromation_struct, uint16_t mode_number)
 
uint16_t VBE_get_word (uint32_t seg, uint32_t offset)
 
uint32_t VBE_get_dword (uint32_t seg, uint32_t offset)
 
VBEStatus VBE_destroy_svga_information (svga_information *svga_information_ptr)
 
VBEStatus VBE_set_video_mode (uint16_t mode_number, bool clear_screen)
 
VBEStatus VBE_get_current_video_mode (uint16_t *mode_number)
 
VBEStatus VBE_set_current_bank (uint32_t bank_number)
 
VBEStatus VBE_return_save_restore_state_buffer_size (uint16_t requested_states, uint16_t *buffer_block_number)
 
VBEStatus VBE_save_state (uint16_t requested_states, uint16_t buffer_pointer)
 
VBEStatus VBE_restore_state (uint16_t requested_states, uint16_t buffer_pointer)
 
VBEStatus VBE_display_window_control_set_16bit (uint8_t window_number, uint8_t window_mem_number)
 
VBEStatus VBE_display_window_control_get_16bit (uint8_t window_number, uint8_t *window_mem_number)
 
VBEStatus VBE_display_window_control_set_32bit (uint8_t window_number, uint8_t window_mem_number, uint16_t memory_selector)
 
VBEStatus VBE_get_logical_scan_line_length (uint16_t *bytes_per_line, uint16_t *actual_pixel_in_line, uint16_t *maximum_scan_lines_number)
 
VBEStatus VBE_get_maximum_logical_scan_line_length (uint16_t *bytes_per_line, uint16_t *actual_pixel_in_line, uint16_t *maximum_scan_lines_number)
 
VBEStatus VBE_set_logical_scan_line_length_in_pixels (uint16_t length, uint16_t *bytes_per_line, uint16_t *actual_pixel_in_line, uint16_t *maximum_scan_lines_number)
 
VBEStatus VBE_set_logical_scan_line_length_in_bytes (uint16_t length, uint16_t *bytes_per_line, uint16_t *actual_pixel_in_line, uint16_t *maximum_scan_lines_number)
 
VBEStatus VBE_set_display_start_16bit (bool during_vertical_retrace, uint16_t first_line, uint16_t first_pixel_in_line)
 
VBEStatus VBE_get_display_start_16bit (uint16_t *first_line, uint16_t *first_pixel_in_line)
 
VBEStatus VBE_schedule_display_start_16bit (bool during_vertical_retrace, uint32_t display_start_address_byte)
 
VBEStatus VBE_schedule_stereoscopic_display_start_16bit (bool during_vertical_retrace, uint32_t left_image_address_byte, uint32_t right_image_address_byte)
 
VBEStatus VBE_get_scheduled_display_start_16bit (bool *flip_occured)
 
VBEStatus VBE_enable_stereoscopic_mode ()
 
VBEStatus VBE_disable_stereoscopic_mode ()
 
VBEStatus VBE_set_display_start_32bit (bool during_vertical_retrace, uint16_t first_half_start_address, uint16_t second_half_start_address, uint16_t memory_selector)
 
VBEStatus VBE_set_dac_palette_format (uint8_t primary_color_bits, uint8_t *curent_number_color_bits)
 
VBEStatus VBE_get_dac_palette_format (uint8_t *curent_number_color_bits)
 
VBEStatus VBE_set_palette_data_16bit (bool secondary_palette, uint8_t index, uint8_t palette_table[], uint16_t table_size)
 
VBEStatus VBE_set_during_vertical_retrace_palette_data_16bit (uint16_t index, uint8_t palette_table[], uint16_t table_size)
 
VBEStatus VBE_get_palette_data_16bit (bool secondary_palette, uint16_t index, uint8_t palette_table[], uint16_t table_size)
 
VBEStatus VBE_set_palette_data_32bit (uint16_t index, uint8_t palette_table[], uint16_t table_size, uint16_t memory_selector)
 
VBEStatus VBE_set_during_vertical_retrace_palette_data_32bit (uint16_t index, uint8_t palette_table[], uint16_t table_size, uint16_t memory_selector)
 
VBEStatus VBE_get_protected_mode_interface (uint16_t *real_mode_table_segment, uint16_t *table_offset, uint16_t *table_length)
 
VBEStatus VBE_get_set_pixel_clock (uint16_t pixel_clock, uint16_t mode_number, uint16_t *closest_pixel_clock)
 
void VBE_draw_pixel_8_8_8 (uint32_t mode_width, uint32_t mode_height, uint32_t winsize, uint32_t granularity, uint32_t x, uint32_t y, uint8_t r, uint8_t g, uint8_t b)
 

Variables

v8086machine = NULL
 
bool initialized = false
 
int currentBank = -1
 
uint8_t * mem_buff = (uint8_t*)0xc0000000 + 0xA0000
 

Function Documentation

◆ VBE_check_existance_of_VESA()

VBEStatus VBE_check_existance_of_VESA ( )

◆ VBE_close()

void VBE_close ( )

◆ VBE_destroy_svga_information()

VBEStatus VBE_destroy_svga_information ( svga_information svga_information_ptr)

◆ VBE_disable_stereoscopic_mode()

VBEStatus VBE_disable_stereoscopic_mode ( )

◆ VBE_display_window_control_get_16bit()

VBEStatus VBE_display_window_control_get_16bit ( uint8_t  window_number,
uint8_t *  window_mem_number 
)

◆ VBE_display_window_control_set_16bit()

VBEStatus VBE_display_window_control_set_16bit ( uint8_t  window_number,
uint8_t  window_mem_number 
)

◆ VBE_display_window_control_set_32bit()

VBEStatus VBE_display_window_control_set_32bit ( uint8_t  window_number,
uint8_t  window_mem_number,
uint16_t  memory_selector 
)

◆ VBE_draw_pixel_8_8_8()

void VBE_draw_pixel_8_8_8 ( uint32_t  mode_width,
uint32_t  mode_height,
uint32_t  winsize,
uint32_t  granularity,
uint32_t  x,
uint32_t  y,
uint8_t  r,
uint8_t  g,
uint8_t  b 
)

◆ VBE_enable_stereoscopic_mode()

VBEStatus VBE_enable_stereoscopic_mode ( )

◆ VBE_get_current_video_mode()

VBEStatus VBE_get_current_video_mode ( uint16_t *  mode_number)

◆ VBE_get_dac_palette_format()

VBEStatus VBE_get_dac_palette_format ( uint8_t *  curent_number_color_bits)

◆ VBE_get_display_start_16bit()

VBEStatus VBE_get_display_start_16bit ( uint16_t *  first_line,
uint16_t *  first_pixel_in_line 
)

◆ VBE_get_dword()

uint32_t VBE_get_dword ( uint32_t  seg,
uint32_t  offset 
)

◆ VBE_get_logical_scan_line_length()

VBEStatus VBE_get_logical_scan_line_length ( uint16_t *  bytes_per_line,
uint16_t *  actual_pixel_in_line,
uint16_t *  maximum_scan_lines_number 
)

◆ VBE_get_maximum_logical_scan_line_length()

VBEStatus VBE_get_maximum_logical_scan_line_length ( uint16_t *  bytes_per_line,
uint16_t *  actual_pixel_in_line,
uint16_t *  maximum_scan_lines_number 
)

◆ VBE_get_palette_data_16bit()

VBEStatus VBE_get_palette_data_16bit ( bool  secondary_palette,
uint16_t  index,
uint8_t  palette_table[],
uint16_t  table_size 
)

◆ VBE_get_protected_mode_interface()

VBEStatus VBE_get_protected_mode_interface ( uint16_t *  real_mode_table_segment,
uint16_t *  table_offset,
uint16_t *  table_length 
)

◆ VBE_get_scheduled_display_start_16bit()

VBEStatus VBE_get_scheduled_display_start_16bit ( bool *  flip_occured)

◆ VBE_get_set_pixel_clock()

VBEStatus VBE_get_set_pixel_clock ( uint16_t  pixel_clock,
uint16_t  mode_number,
uint16_t *  closest_pixel_clock 
)

◆ VBE_get_svga_information()

VBEStatus VBE_get_svga_information ( svga_information **  information_struct_ptr)

◆ VBE_get_vesa_mode_information()

VBEStatus VBE_get_vesa_mode_information ( svga_mode_information infromation_struct,
uint16_t  mode_number 
)

◆ VBE_get_word()

uint16_t VBE_get_word ( uint32_t  seg,
uint32_t  offset 
)

◆ VBE_initialize()

void VBE_initialize ( )

◆ VBE_is_initialized()

bool VBE_is_initialized ( )

◆ VBE_restore_state()

VBEStatus VBE_restore_state ( uint16_t  requested_states,
uint16_t  buffer_pointer 
)

◆ VBE_return_save_restore_state_buffer_size()

VBEStatus VBE_return_save_restore_state_buffer_size ( uint16_t  requested_states,
uint16_t *  buffer_block_number 
)

◆ VBE_save_state()

VBEStatus VBE_save_state ( uint16_t  requested_states,
uint16_t  buffer_pointer 
)

◆ VBE_schedule_display_start_16bit()

VBEStatus VBE_schedule_display_start_16bit ( bool  during_vertical_retrace,
uint32_t  display_start_address_byte 
)

◆ VBE_schedule_stereoscopic_display_start_16bit()

VBEStatus VBE_schedule_stereoscopic_display_start_16bit ( bool  during_vertical_retrace,
uint32_t  left_image_address_byte,
uint32_t  right_image_address_byte 
)

◆ VBE_set_current_bank()

VBEStatus VBE_set_current_bank ( uint32_t  bank_number)

◆ VBE_set_dac_palette_format()

VBEStatus VBE_set_dac_palette_format ( uint8_t  primary_color_bits,
uint8_t *  curent_number_color_bits 
)

◆ VBE_set_display_start_16bit()

VBEStatus VBE_set_display_start_16bit ( bool  during_vertical_retrace,
uint16_t  first_line,
uint16_t  first_pixel_in_line 
)

◆ VBE_set_display_start_32bit()

VBEStatus VBE_set_display_start_32bit ( bool  during_vertical_retrace,
uint16_t  first_half_start_address,
uint16_t  second_half_start_address,
uint16_t  memory_selector 
)

◆ VBE_set_during_vertical_retrace_palette_data_16bit()

VBEStatus VBE_set_during_vertical_retrace_palette_data_16bit ( uint16_t  index,
uint8_t  palette_table[],
uint16_t  table_size 
)

◆ VBE_set_during_vertical_retrace_palette_data_32bit()

VBEStatus VBE_set_during_vertical_retrace_palette_data_32bit ( uint16_t  index,
uint8_t  palette_table[],
uint16_t  table_size,
uint16_t  memory_selector 
)

◆ VBE_set_logical_scan_line_length_in_bytes()

VBEStatus VBE_set_logical_scan_line_length_in_bytes ( uint16_t  length,
uint16_t *  bytes_per_line,
uint16_t *  actual_pixel_in_line,
uint16_t *  maximum_scan_lines_number 
)

◆ VBE_set_logical_scan_line_length_in_pixels()

VBEStatus VBE_set_logical_scan_line_length_in_pixels ( uint16_t  length,
uint16_t *  bytes_per_line,
uint16_t *  actual_pixel_in_line,
uint16_t *  maximum_scan_lines_number 
)

◆ VBE_set_palette_data_16bit()

VBEStatus VBE_set_palette_data_16bit ( bool  secondary_palette,
uint8_t  index,
uint8_t  palette_table[],
uint16_t  table_size 
)

◆ VBE_set_palette_data_32bit()

VBEStatus VBE_set_palette_data_32bit ( uint16_t  index,
uint8_t  palette_table[],
uint16_t  table_size,
uint16_t  memory_selector 
)

◆ VBE_set_video_mode()

VBEStatus VBE_set_video_mode ( uint16_t  mode_number,
bool  clear_screen 
)

Variable Documentation

◆ currentBank

int currentBank = -1

◆ initialized

bool initialized = false

◆ machine

v8086* machine = NULL

◆ mem_buff

uint8_t* mem_buff = (uint8_t*)0xc0000000 + 0xA0000