Start exploring graphical video modes for VGA console (#637)

This commit is contained in:
tkchia 2022-10-02 16:50:16 +08:00 committed by GitHub
parent 304cf8869c
commit ecb2ef7c39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 964 additions and 70 deletions

View file

@ -18,8 +18,27 @@ struct mman {
unsigned char pc_drive_last_head; /* 0x1d21 */
unsigned char pc_drive; /* 0x1d22 */
char bad_idt[6]; /* 0x1d23 */
unsigned char pc_video_type; /* 0x1d29 */
unsigned short pc_video_stride; /* 0x1d2a — line width, including any
invisible "pixels" in
bytes (NOTE) */
unsigned short pc_video_width; /* 0x1d2c — width in chars. (text)
or pixels (graphics) */
unsigned short pc_video_height; /* 0x1d2e — height in chars. (text)
or pixels (graphics) */
uint64_t pc_video_framebuffer; /* 0x1d30 — physical address of
video frame buffer */
uint64_t pc_video_framebuffer_size; /* 0x1d38 */
};
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
/* Values for mman::pc_video_type. TODO: implement graphics modes. */
#define PC_VIDEO_TEXT 0
#define PC_VIDEO_BGR565 1
#define PC_VIDEO_BGR555 2
#define PC_VIDEO_BGRX8888 3
#define PC_VIDEO_RGBX8888 4
#endif /* COSMOPOLITAN_LIBC_RUNTIME_MMAN_H_ */