Fix sys_framebuffer_bpp size and assignment in KStart16.

This commit is contained in:
TomAwezome 2022-08-28 02:10:37 -04:00
parent 5a4351d10c
commit 14515d7a19
5 changed files with 9 additions and 17 deletions

Binary file not shown.

View file

@ -50,11 +50,11 @@ GDT_TR: DU8 MP_PROCESSORS_NUM * 16 DUP(0);
GDT_TR_RING3: DU8 MP_PROCESSORS_NUM * 16 DUP(0);
#assert $$ - SYS_GDT == sizeof(CGDT)
SYS_FRAMEBUFFER_ADDR:: DU64 0;
SYS_FRAMEBUFFER_WIDTH:: DU64 0;
SYS_FRAMEBUFFER_ADDR:: DU64 0;
SYS_FRAMEBUFFER_WIDTH:: DU64 0;
SYS_FRAMEBUFFER_HEIGHT:: DU64 0;
SYS_FRAMEBUFFER_PITCH:: DU64 0;
SYS_FRAMEBUFFER_BPP:: DU16 0;
SYS_FRAMEBUFFER_PITCH:: DU64 0;
SYS_FRAMEBUFFER_BPP:: DU8 0;
SYS_SMBIOS_ENTRY:: DU64 0;
@ -222,8 +222,8 @@ GET_IP: POP BX
MOV U16 [SYS_FRAMEBUFFER_WIDTH], AX
MOV AX, CVBEMode.pitch[DI]
MOV U16 [SYS_FRAMEBUFFER_PITCH], AX
MOV AX, CVBEMode.bpp[DI]
MOV U16 [SYS_FRAMEBUFFER_BPP], AX
MOV AL, CVBEMode.bpp[DI]
MOV U8 [SYS_FRAMEBUFFER_BPP], AL
BTS U32 [SYS_RUN_LEVEL], RLf_VESA
@@35:

View file

@ -536,14 +536,6 @@ class CVBEMode
};
#assert sizeof(CVBEMode) == 256
class CVBEModeShort
{
U16 width,
height,
mode_num;
U32 max_pixel_clock; //TODO refresh rates.
};
#help_index "Boot"
class CKernel
{//Must match $LK,"OSStartUp",A="FF:::/Kernel/KStart16.ZC,MEM_BOOT_BASE"$
@ -568,7 +560,7 @@ class CKernel
U64 sys_framebuffer_width;
U64 sys_framebuffer_height;
U64 sys_framebuffer_pitch;
U16 sys_framebuffer_bpp;
U8 sys_framebuffer_bpp;
U64 sys_smbios_entry;
U64 sys_disk_uuid[2];
};

View file

@ -248,7 +248,7 @@ public _extern SYS_FRAMEBUFFER_ADDR U8 *sys_framebuffer_addr;
public _extern SYS_FRAMEBUFFER_WIDTH U64 sys_framebuffer_width;
public _extern SYS_FRAMEBUFFER_HEIGHT U64 sys_framebuffer_height;
public _extern SYS_FRAMEBUFFER_PITCH U64 sys_framebuffer_pitch;
public _extern SYS_FRAMEBUFFER_BPP U16 sys_framebuffer_bpp;
public _extern SYS_FRAMEBUFFER_BPP U8 sys_framebuffer_bpp;
#help_index "Processor/SMBIOS"
public _extern SYS_SMBIOS_ENTRY U8 *sys_smbios_entry;

View file

@ -105,7 +105,7 @@ struct CKernel {
uint64_t sys_framebuffer_width;
uint64_t sys_framebuffer_height;
uint64_t sys_framebuffer_pitch;
uint16_t sys_framebuffer_bpp;
uint8_t sys_framebuffer_bpp;
uint64_t sys_smbios_entry;
uint32_t sys_disk_uuid_a;
uint16_t sys_disk_uuid_b;