Bare metal VGA: allow for 64-bit video frame buffer address

This commit is contained in:
tkchia 2022-09-25 13:17:33 +00:00
parent 388c4f6060
commit 32921e60c2
2 changed files with 6 additions and 2 deletions

View file

@ -26,8 +26,9 @@ struct mman {
or pixels (graphics) */
unsigned short pc_video_height; /* 0x1d2e — height in chars. (text)
or pixels (graphics) */
uint32_t pc_video_framebuffer; /* 0x1d30 */
uint32_t pc_video_framebuffer_size; /* 0x1d34 */
uint64_t pc_video_framebuffer; /* 0x1d30 — physical address of
video frame buffer */
uint64_t pc_video_framebuffer_size; /* 0x1d38 */
};
COSMOPOLITAN_C_END_

View file

@ -66,6 +66,9 @@
movw $25,mm+"struct mman::pc_video_height"
movl $0xb8000,mm+"struct mman::pc_video_framebuffer"
movl $0x8000,mm+"struct mman::pc_video_framebuffer_size"
xor %eax,%eax
mov %eax,mm+"struct mman::pc_video_framebuffer"+4
mov %eax,mm+"struct mman::pc_video_framebuffer_size"+4
mov $0x1003,%ax # enable/disable VGA text blinking
#ifdef VGA_USE_BLINK
mov $1,%bx