MicrOS
vbe.h
Go to the documentation of this file.
1 #ifndef VBE_H
2 #define VBE_H
3 
4 #include <stdbool.h>
5 #include <stdint.h>
6 #include <stddef.h>
7 
8 typedef struct _svga_information{
9  char signature[5];
13  uint16_t* mode_array;
16 
17 typedef struct _svga_mode_information{
18  uint16_t mode_attributes;
21  uint16_t granularity;
22  uint16_t windows_size;
27  uint16_t mode_width;
28  uint16_t mode_height;
31  uint8_t plane_count;
32  uint8_t bits_per_pixel;
33  uint8_t bank_count;
35  uint8_t bank_size;
36  uint8_t page_count;
37  uint8_t reserved;
38 
39  uint8_t mask_size_red;
41  uint8_t mask_size_green;
43  uint8_t mask_size_blue;
48 
51  uint16_t reserved2;
53 
54 typedef enum _VBEStatus{
56 } VBEStatus;
57 
58 
59 void VBE_initialize();
60 void VBE_close();
61 bool VBE_is_initialized();
63 VBEStatus VBE_get_svga_information(svga_information** information_struct_ptr);
64 VBEStatus VBE_get_vesa_mode_information(svga_mode_information* infromation_struct, uint16_t mode_number);
66 VBEStatus VBE_set_video_mode(uint16_t mode_number, bool clear_screen);
67 VBEStatus VBE_get_current_video_mode(uint16_t* mode_number);
68 uint16_t VBE_get_word(uint32_t seg, uint32_t offset);
70 VBEStatus VBE_return_save_restore_state_buffer_size(uint16_t requested_states, uint16_t* buffer_block_number);
71 VBEStatus VBE_save_state(uint16_t requested_states, uint16_t buffer_pointer);
72 VBEStatus VBE_restore_state(uint16_t requested_states, uint16_t buffer_pointer);
73 VBEStatus VBE_display_window_control_set_16bit(uint8_t window_number, uint8_t window_mem_number);
74 VBEStatus VBE_display_window_control_get_16bit(uint8_t window_number, uint8_t* window_mem_number);
75 VBEStatus VBE_display_window_control_set_32bit(uint8_t window_number, uint8_t window_mem_number, uint16_t memory_selector);
76 VBEStatus VBE_get_logical_scan_line_length(uint16_t* bytes_per_line, uint16_t* actual_pixel_in_line, uint16_t* maximum_scan_lines_number);
77 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);
78 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);
79 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);
80 VBEStatus VBE_set_display_start_16bit(bool during_vertical_retrace, uint16_t first_line, uint16_t first_pixel_in_line);
81 VBEStatus VBE_get_display_start_16bit(uint16_t* first_line, uint16_t* first_pixel_in_line);
82 VBEStatus VBE_schedule_display_start_16bit(bool during_vertical_retrace, uint32_t display_start_address_byte);
83 VBEStatus VBE_schedule_stereoscopic_display_start_16bit(bool during_vertical_retrace, uint32_t left_image_address_byte, uint32_t right_image_address_byte);
87 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);
88 VBEStatus VBE_set_dac_palette_format(uint8_t primary_color_bits, uint8_t* curent_number_color_bits);
89 VBEStatus VBE_get_dac_palette_format(uint8_t* curent_number_color_bits);
90 VBEStatus VBE_set_palette_data_16bit(bool secondary_palette, uint8_t index, uint8_t palette_table[], uint16_t table_size);
91 VBEStatus VBE_set_during_vertical_retrace_palette_data_16bit(uint16_t index, uint8_t palette_table[], uint16_t table_size);
92 VBEStatus VBE_get_palette_data_16bit(bool secondary_palette, uint16_t index, uint8_t palette_table[], uint16_t table_size);
93 VBEStatus VBE_set_palette_data_32bit(uint16_t index, uint8_t palette_table[], uint16_t table_size, uint16_t memory_selector);
94 VBEStatus VBE_set_during_vertical_retrace_palette_data_32bit(uint16_t index, uint8_t palette_table[], uint16_t table_size, uint16_t memory_selector);
95 VBEStatus VBE_get_protected_mode_interface(uint16_t* real_mode_table_segment, uint16_t* table_offset, uint16_t* table_length);
96 VBEStatus VBE_get_set_pixel_clock(uint16_t pixel_clock, uint16_t mode_number, uint16_t* closest_pixel_clock);
97 
98 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);
99 #endif
VBEStatus VBE_get_scheduled_display_start_16bit(bool *flip_occured)
Definition: vbe.c:401
uint8_t mask_size_green
Definition: vbe.h:41
uint8_t mask_size_red
Definition: vbe.h:39
uint16_t mode_width
Definition: vbe.h:27
VBEStatus VBE_get_vesa_mode_information(svga_mode_information *infromation_struct, uint16_t mode_number)
Definition: vbe.c:77
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)
Definition: vbe.c:310
uint16_t VBE_get_word(uint32_t seg, uint32_t offset)
Definition: vbe.c:124
VBEStatus VBE_set_display_start_16bit(bool during_vertical_retrace, uint16_t first_line, uint16_t first_pixel_in_line)
Definition: vbe.c:342
void VBE_close()
Definition: vbe.c:24
VBEStatus VBE_get_logical_scan_line_length(uint16_t *bytes_per_line, uint16_t *actual_pixel_in_line, uint16_t *maximum_scan_lines_number)
Definition: vbe.c:280
uint32_t frame_buffor_phys_address
Definition: vbe.h:49
uint8_t mask_size_direct_color
Definition: vbe.h:45
VBEStatus VBE_restore_state(uint16_t requested_states, uint16_t buffer_pointer)
Definition: vbe.c:223
uint8_t bits_per_pixel
Definition: vbe.h:32
uint8_t bank_size
Definition: vbe.h:35
uint8_t field_position_red
Definition: vbe.h:40
VBEStatus VBE_display_window_control_set_16bit(uint8_t window_number, uint8_t window_mem_number)
Definition: vbe.c:238
uint16_t vesa_standard_number
Definition: vbe.h:10
VBEStatus VBE_get_palette_data_16bit(bool secondary_palette, uint16_t index, uint8_t palette_table[], uint16_t table_size)
Definition: vbe.c:523
char * producent_text
Definition: vbe.h:11
uint16_t mode_height
Definition: vbe.h:28
void VBE_initialize()
Definition: vbe.c:13
Definition: vbe.h:55
uint32_t additional_info
Definition: vbe.h:12
VBEStatus VBE_get_display_start_16bit(uint16_t *first_line, uint16_t *first_pixel_in_line)
Definition: vbe.c:357
VBEStatus VBE_display_window_control_set_32bit(uint8_t window_number, uint8_t window_mem_number, uint16_t memory_selector)
Definition: vbe.c:266
uint8_t direct_color_mode_info
Definition: vbe.h:47
VBEStatus VBE_schedule_display_start_16bit(bool during_vertical_retrace, uint32_t display_start_address_byte)
Definition: vbe.c:372
VBEStatus VBE_set_palette_data_32bit(uint16_t index, uint8_t palette_table[], uint16_t table_size, uint16_t memory_selector)
Definition: vbe.c:543
uint16_t reserved2
Definition: vbe.h:51
Definition: vbe.h:55
uint16_t windows_size
Definition: vbe.h:22
bool VBE_is_initialized()
Definition: vbe.c:33
VBEStatus VBE_enable_stereoscopic_mode()
Definition: vbe.c:415
VBEStatus VBE_get_svga_information(svga_information **information_struct_ptr)
Definition: vbe.c:47
VBEStatus VBE_check_existance_of_VESA()
Definition: vbe.c:38
uint32_t VBE_get_dword(uint32_t seg, uint32_t offset)
Definition: vbe.c:129
VBEStatus VBE_schedule_stereoscopic_display_start_16bit(bool during_vertical_retrace, uint32_t left_image_address_byte, uint32_t right_image_address_byte)
Definition: vbe.c:386
uint8_t char_matrix_height
Definition: vbe.h:30
VBEStatus VBE_get_current_video_mode(uint16_t *mode_number)
Definition: vbe.c:156
uint8_t mask_size_blue
Definition: vbe.h:43
VBEStatus VBE_set_dac_palette_format(uint8_t primary_color_bits, uint8_t *curent_number_color_bits)
Definition: vbe.c:456
VBEStatus VBE_set_during_vertical_retrace_palette_data_16bit(uint16_t index, uint8_t palette_table[], uint16_t table_size)
Definition: vbe.c:503
Definition: vbe.h:55
uint32_t far_pointer_to_bank_swap_function
Definition: vbe.h:25
uint16_t segment_of_window_b
Definition: vbe.h:24
uint16_t * mode_array
Definition: vbe.h:13
VBEStatus
Definition: vbe.h:54
VBEStatus VBE_disable_stereoscopic_mode()
Definition: vbe.c:428
VBEStatus VBE_get_protected_mode_interface(uint16_t *real_mode_table_segment, uint16_t *table_offset, uint16_t *table_length)
Definition: vbe.c:584
uint8_t field_position_direct_color
Definition: vbe.h:46
uint8_t window_a_attributes
Definition: vbe.h:19
VBEStatus VBE_set_video_mode(uint16_t mode_number, bool clear_screen)
Definition: vbe.c:142
uint16_t logical_line_length
Definition: vbe.h:26
VBEStatus VBE_save_state(uint16_t requested_states, uint16_t buffer_pointer)
Definition: vbe.c:208
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)
Definition: vbe.c:614
uint32_t reserved1
Definition: vbe.h:50
uint8_t page_count
Definition: vbe.h:36
Definition: vbe.h:8
VBEStatus VBE_get_set_pixel_clock(uint16_t pixel_clock, uint16_t mode_number, uint16_t *closest_pixel_clock)
Definition: vbe.c:599
uint16_t mode_attributes
Definition: vbe.h:18
uint8_t plane_count
Definition: vbe.h:31
VBEStatus VBE_display_window_control_get_16bit(uint8_t window_number, uint8_t *window_mem_number)
Definition: vbe.c:252
size_t number_of_modes
Definition: vbe.h:14
VBEStatus VBE_set_palette_data_16bit(bool secondary_palette, uint8_t index, uint8_t palette_table[], uint16_t table_size)
Definition: vbe.c:483
uint8_t memory_organization
Definition: vbe.h:34
VBEStatus VBE_destroy_svga_information(svga_information *svga_information_ptr)
Definition: vbe.c:134
uint8_t char_matrix_width
Definition: vbe.h:29
VBEStatus VBE_get_dac_palette_format(uint8_t *curent_number_color_bits)
Definition: vbe.c:470
VBEStatus VBE_set_during_vertical_retrace_palette_data_32bit(uint16_t index, uint8_t palette_table[], uint16_t table_size, uint16_t memory_selector)
Definition: vbe.c:564
uint8_t field_position_green
Definition: vbe.h:42
uint8_t field_position_blue
Definition: vbe.h:44
uint16_t granularity
Definition: vbe.h:21
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)
Definition: vbe.c:295
uint16_t segment_of_window_a
Definition: vbe.h:23
uint8_t bank_count
Definition: vbe.h:33
uint8_t window_b_attributes
Definition: vbe.h:20
uint8_t reserved
Definition: vbe.h:37
VBEStatus VBE_return_save_restore_state_buffer_size(uint16_t requested_states, uint16_t *buffer_block_number)
Definition: vbe.c:194
size_t uint32_t
Unsigned integral type.
Definition: string.h:8
Definition: vbe.h:55
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)
Definition: vbe.c:441
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)
Definition: vbe.c:326
Definition: vbe.h:17
Definition: vbe.h:55