Tip of the dayTime to work on displaying that mp4 movie
<90' rotated image>
(edit: posts moved; context added)
Tip of the dayTime to work on displaying that mp4 movie
<90' rotated image>
Got sources or references for that?mateuszb wrote:native intel graphics also working
Sortie wrote:
- Don't play the role of an operating systems developer, be one.
- Be truly afraid of undefined [behavior].
- Your operating system should be itself, not fight what it is.
How did you exactly get Grub modesetting working?(This site is down: https://www.southpatron.com/software/vbe-grub/ ). Grub modesetting sounds interesting to me. I know it is not the best way of supporting VESA, but I don't want to add VM86 support or some other ugly hacks to my microkernel.Peterbjornx wrote:Added a framebuffer driver + console (modesetting done by GRUB)
It's all written down quite nicely in the Multiboot specification, sections 3.1.2 and 3.1.4. The framebuffer address and pixel format will be passed to your kernel in the multiboot structure, fields starting from framebuffer_addr. These are not reflected in the specification, though, see multiboot.h.martinFTW wrote:Grub modesetting sounds interesting to me.
Thanks a lot. The framebuffer addr is not directly passed in the multiboot structure but the multiboot structure contains a two pointers ‘vbe_control_info’ and most important ‘vbe_mode_info’:Icee wrote:It's all written down quite nicely in the Multiboot specification, sections 3.1.2 and 3.1.4. The framebuffer address and pixel format will be passed to your kernel in the multiboot structure, fields starting from framebuffer_addr. These are not reflected in the specification, though, see multiboot.h.martinFTW wrote:Grub modesetting sounds interesting to me.
Inside of the vbe_mode_info structure there is a dword pointer at offset 0x28, which exactly, what we want.The fields ‘vbe_control_info’ and ‘vbe_mode_info’ contain the physical addresses of vbe control information returned by the vbe Function 00h and vbe mode information returned by the vbe Function 01h, respectively.
Code: Select all
#include <stdio.h>
#include <stdint.h>
uint32_t hello(void* arg)
{
printf("hello from shared object\n");
return 0;
}
Code: Select all
include 'a32.inc'
; Yes we need an .so file
REQUIRE_SO = 1
so_init:
_start:
NATIVE_CALL hello_lib, hello_proc, 0
VM_EXIT
_end_start:
_data:
hello_lib: DECLARE_NATIVE_LIB "./hello1.so"
hello_proc: DECLARE_NATIVE_PROC "hello"
_end_data:
_bss:
_end_bss: