vesa

Switch to VESA/VBE?

北城以北 提交于 2020-05-28 07:53:49
问题 So, I'm currently working on an OS, and I'm stuck in a very dumb situation : switching to VESA/VBE My current code : mov ax, 0x4F02 mov bx, 0x4118 int 0x10 It changes Qemu resolution, but now I have a problem with plotting pixels. The formula of the pixel offset is : uint32 pixel_offset = y * pitch + (x * (bpp/8)) + framebuffer; The problem is that bpp, pitch and framebuffer are supposed to be given by mov ax, 0x4F01 int 0x10 and mov ax, 0x4F00 int 0x10 First, mov ax, 0x4F00 int 0x10 softlock

Switch to VESA/VBE?

百般思念 提交于 2020-05-28 07:53:24
问题 So, I'm currently working on an OS, and I'm stuck in a very dumb situation : switching to VESA/VBE My current code : mov ax, 0x4F02 mov bx, 0x4118 int 0x10 It changes Qemu resolution, but now I have a problem with plotting pixels. The formula of the pixel offset is : uint32 pixel_offset = y * pitch + (x * (bpp/8)) + framebuffer; The problem is that bpp, pitch and framebuffer are supposed to be given by mov ax, 0x4F01 int 0x10 and mov ax, 0x4F00 int 0x10 First, mov ax, 0x4F00 int 0x10 softlock

Switch to VESA/VBE?

与世无争的帅哥 提交于 2020-05-28 07:53:17
问题 So, I'm currently working on an OS, and I'm stuck in a very dumb situation : switching to VESA/VBE My current code : mov ax, 0x4F02 mov bx, 0x4118 int 0x10 It changes Qemu resolution, but now I have a problem with plotting pixels. The formula of the pixel offset is : uint32 pixel_offset = y * pitch + (x * (bpp/8)) + framebuffer; The problem is that bpp, pitch and framebuffer are supposed to be given by mov ax, 0x4F01 int 0x10 and mov ax, 0x4F00 int 0x10 First, mov ax, 0x4F00 int 0x10 softlock

MS-DOS - Is it possible to program 24 bit graphics?

大城市里の小女人 提交于 2019-12-24 01:25:35
问题 Is it possible to program in a color depth of 24 bits on a DOS machine? I know VGA supports 8 bit color depth, but is there a way to finagle out 24 bits? Research on Google has turned up nothing. I am programming on FreeDOS instead of MS-DOS, if that affects the answer. 回答1: Yes, it is possible. You should read about VESA and appropriate drivers. Here is several functions Then you will be able to do: mov ax,4f02h mov bx,103h int 10h This usually provides ax with 004fh if VESA is inited and

How to use real mode BIOS / VESA calls from GRUB?

我只是一个虾纸丫 提交于 2019-12-12 06:04:21
问题 I am developing a simple Grub module which would enable some additional video settings/initializations at the early stage of the boot process. My actual best idea would be to use some VESA calls for the task. Unfortunately, recently I've found real mode calls are unavailable from the Grub. But the GRUB can do really complex operations which are probably unimaginable without the help of the BIOS. How is it possible? How could I call the bios from the grub? 回答1: As far as I can see, grub uses

How to make a VESA linear frame buffer in real mode to use it after in protected mode?

*爱你&永不变心* 提交于 2019-12-08 05:31:50
问题 I want to create a small operating system, but in 32-bit mode with graphics with the full resolution of my screen (1366x768) and 24 bpp. For now, my code in nasm assembly calls the 0x4F02 VESA function in real mode with the value of 0xC118 (the second bit from left is 1 to create a linear frame buffer). After, I enter in 32-bit protected mode and I can only access the first 64Kb of the screen in 0xA0000, so the linear frame buffer hasn't been created. And I can't switch bank because it is in