forked from KolibriOS/kolibrios
uefi4kos: Fix boot and mouse pointer on some configurations.
UEFI firmware doesn't use VESA mode codes, so disable this check for UEFI boot. git-svn-id: svn://kolibrios.org@8284 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a27b206a90
commit
295aa0ad77
@ -24,6 +24,7 @@ FILE_BUFFER_SIZE = 0x1000
|
|||||||
|
|
||||||
KERNEL_BASE = 0x10000
|
KERNEL_BASE = 0x10000
|
||||||
RAMDISK_BASE = 0x100000
|
RAMDISK_BASE = 0x100000
|
||||||
|
MAX_FILE_SIZE = 0x10000000
|
||||||
|
|
||||||
CODE_32_SELECTOR = 8
|
CODE_32_SELECTOR = 8
|
||||||
DATA_32_SELECTOR = 16
|
DATA_32_SELECTOR = 16
|
||||||
@ -410,12 +411,12 @@ main:
|
|||||||
mov eax, [esi+EFI_SYSTEM_TABLE.ConOut]
|
mov eax, [esi+EFI_SYSTEM_TABLE.ConOut]
|
||||||
ccall [eax+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], eax, \
|
ccall [eax+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], eax, \
|
||||||
msg_load_kernel
|
msg_load_kernel
|
||||||
stdcall load_file, [esp_root], kernel_name, KERNEL_BASE, -1, 1
|
stdcall load_file, [esp_root], kernel_name, KERNEL_BASE, MAX_FILE_SIZE, 1
|
||||||
|
|
||||||
mov eax, [esi+EFI_SYSTEM_TABLE.ConOut]
|
mov eax, [esi+EFI_SYSTEM_TABLE.ConOut]
|
||||||
ccall [eax+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], eax, \
|
ccall [eax+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], eax, \
|
||||||
msg_load_ramdisk
|
msg_load_ramdisk
|
||||||
stdcall load_file, [esp_root], ramdisk_name, RAMDISK_BASE, -1, 1
|
stdcall load_file, [esp_root], ramdisk_name, RAMDISK_BASE, MAX_FILE_SIZE, 1
|
||||||
|
|
||||||
mov eax, [esi+EFI_SYSTEM_TABLE.ConOut]
|
mov eax, [esi+EFI_SYSTEM_TABLE.ConOut]
|
||||||
ccall [eax+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], eax, \
|
ccall [eax+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], eax, \
|
||||||
@ -845,43 +846,25 @@ proc clearbuf
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
section '.data' data readable writeable
|
section '.rodata' data readable
|
||||||
efi_handle dd 0
|
align 16
|
||||||
efi_table dd 0
|
|
||||||
|
|
||||||
GDTR:
|
GDTR:
|
||||||
dw 3*8-1
|
dw 3*8-1
|
||||||
dq GDT
|
dq GDT
|
||||||
|
align 16
|
||||||
GDT:
|
GDT:
|
||||||
dw 0, 0, 0, 0
|
dw 0, 0, 0, 0
|
||||||
dw 0FFFFh,0,9A00h,0CFh ; 32-bit code
|
dw 0FFFFh,0,9A00h,0CFh ; 32-bit code
|
||||||
dw 0FFFFh,0,9200h,0CFh ; flat data
|
dw 0FFFFh,0,9200h,0CFh ; flat data
|
||||||
|
|
||||||
|
|
||||||
fb_base dd 0
|
|
||||||
|
|
||||||
gopuuid db EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
|
gopuuid db EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
|
||||||
gop_buffer_size dd GOP_BUFFER_SIZE
|
|
||||||
gop_handle dd 0
|
|
||||||
gop_interface dd 0
|
|
||||||
gop_info_size dd 0
|
|
||||||
gop_info dd 0
|
|
||||||
|
|
||||||
lipuuid db EFI_LOADED_IMAGE_PROTOCOL_GUID
|
lipuuid db EFI_LOADED_IMAGE_PROTOCOL_GUID
|
||||||
lip_buffer_size dd LIP_BUFFER_SIZE
|
|
||||||
lip_handle dd 0
|
|
||||||
lip_interface dd 0
|
|
||||||
|
|
||||||
sfspguid db EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
|
sfspguid db EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
|
||||||
sfsp_interface dd 0
|
|
||||||
|
|
||||||
esp_root dd ?
|
|
||||||
file_handle dd ?
|
|
||||||
file_name du "\EFI\KOLIBRIOS\KOLIBRI.INI",0
|
file_name du "\EFI\KOLIBRIOS\KOLIBRI.INI",0
|
||||||
kernel_name du "\EFI\KOLIBRIOS\KOLIBRI.KRN",0
|
kernel_name du "\EFI\KOLIBRIOS\KOLIBRI.KRN",0
|
||||||
ramdisk_name du "\EFI\KOLIBRIOS\KOLIBRI.IMG",0
|
ramdisk_name du "\EFI\KOLIBRIOS\KOLIBRI.IMG",0
|
||||||
devicesdat_name du "\EFI\KOLIBRIOS\DEVICES.DAT",0
|
devicesdat_name du "\EFI\KOLIBRIOS\DEVICES.DAT",0
|
||||||
file_buffer_size dd FILE_BUFFER_SIZE-1 ; leave the last byte for \0
|
|
||||||
|
|
||||||
config_options dd cfg_opt_name_resolution, cfg_opt_func_resolution, \
|
config_options dd cfg_opt_name_resolution, cfg_opt_func_resolution, \
|
||||||
cfg_opt_cmnt_resolution, \
|
cfg_opt_cmnt_resolution, \
|
||||||
@ -922,30 +905,6 @@ cfg_opt_cmnt_ask_params db "# Interrupt booting to ask the user for boot", \
|
|||||||
cfg_opt_cmnt_imgfrom db "# Where to load ramdisk image from",0
|
cfg_opt_cmnt_imgfrom db "# Where to load ramdisk image from",0
|
||||||
cfg_opt_cmnt_syspath db "# Path to /sys directory",0
|
cfg_opt_cmnt_syspath db "# Path to /sys directory",0
|
||||||
|
|
||||||
cfg_opt_used_resolution db 0
|
|
||||||
cfg_opt_used_acpi db 0
|
|
||||||
cfg_opt_used_debug_print db 0
|
|
||||||
cfg_opt_used_launcher_start db 0
|
|
||||||
cfg_opt_used_mtrr db 0
|
|
||||||
cfg_opt_used_ask_params db 0
|
|
||||||
cfg_opt_used_imgfrom db 0
|
|
||||||
cfg_opt_used_syspath db 0
|
|
||||||
|
|
||||||
cfg_opt_value_vmode db 0
|
|
||||||
cfg_opt_value_acpi db 0
|
|
||||||
cfg_opt_value_debug_print db 0
|
|
||||||
cfg_opt_value_launcher_start db 1
|
|
||||||
cfg_opt_value_mtrr db 0
|
|
||||||
cfg_opt_value_ask_params db 0
|
|
||||||
cfg_opt_value_imgfrom db RD_LOAD_FROM_MEMORY
|
|
||||||
cfg_opt_value_syspath db "/RD/1",0
|
|
||||||
rb 20
|
|
||||||
|
|
||||||
memory_map_key dd 0
|
|
||||||
descriptor_size dd 0
|
|
||||||
descriptor_ver dd 0
|
|
||||||
memory_map_size dd MEMORY_MAP_SIZE
|
|
||||||
|
|
||||||
msg_u4k_loaded du "uefi32kos loaded",13,10,0
|
msg_u4k_loaded du "uefi32kos loaded",13,10,0
|
||||||
msg_read_options du "Read options from config file",13,10,0
|
msg_read_options du "Read options from config file",13,10,0
|
||||||
msg_load_kernel du "Load kernel",13,10,0
|
msg_load_kernel du "Load kernel",13,10,0
|
||||||
@ -971,6 +930,53 @@ msg_error_out_of_handlers du "Out of handlers",13,10,0
|
|||||||
msg_error_open_file du "Error: can't open file ",0
|
msg_error_open_file du "Error: can't open file ",0
|
||||||
msg du 79 dup " ",13,10,0
|
msg du 79 dup " ",13,10,0
|
||||||
|
|
||||||
|
|
||||||
|
section '.data' data readable writeable
|
||||||
|
efi_handle dd 0
|
||||||
|
efi_table dd 0
|
||||||
|
|
||||||
|
fb_base dd 0
|
||||||
|
|
||||||
|
gop_buffer_size dd GOP_BUFFER_SIZE
|
||||||
|
gop_handle dd 0
|
||||||
|
gop_interface dd 0
|
||||||
|
gop_info_size dd 0
|
||||||
|
gop_info dd 0
|
||||||
|
|
||||||
|
lip_buffer_size dd LIP_BUFFER_SIZE
|
||||||
|
lip_handle dd 0
|
||||||
|
lip_interface dd 0
|
||||||
|
|
||||||
|
sfsp_interface dd 0
|
||||||
|
|
||||||
|
esp_root dd ?
|
||||||
|
file_handle dd ?
|
||||||
|
file_buffer_size dd FILE_BUFFER_SIZE-1 ; leave the last byte for \0
|
||||||
|
|
||||||
|
cfg_opt_used_resolution db 0
|
||||||
|
cfg_opt_used_acpi db 0
|
||||||
|
cfg_opt_used_debug_print db 0
|
||||||
|
cfg_opt_used_launcher_start db 0
|
||||||
|
cfg_opt_used_mtrr db 0
|
||||||
|
cfg_opt_used_ask_params db 0
|
||||||
|
cfg_opt_used_imgfrom db 0
|
||||||
|
cfg_opt_used_syspath db 0
|
||||||
|
|
||||||
|
cfg_opt_value_vmode db 0
|
||||||
|
cfg_opt_value_acpi db 0
|
||||||
|
cfg_opt_value_debug_print db 0
|
||||||
|
cfg_opt_value_launcher_start db 1
|
||||||
|
cfg_opt_value_mtrr db 0
|
||||||
|
cfg_opt_value_ask_params db 0
|
||||||
|
cfg_opt_value_imgfrom db RD_LOAD_FROM_MEMORY
|
||||||
|
cfg_opt_value_syspath db "/RD/1",0
|
||||||
|
rb 20
|
||||||
|
|
||||||
|
memory_map_key dd 0
|
||||||
|
descriptor_size dd 0
|
||||||
|
descriptor_ver dd 0
|
||||||
|
memory_map_size dd MEMORY_MAP_SIZE
|
||||||
|
|
||||||
efi_fs_info_id db EFI_FILE_SYSTEM_INFO_ID
|
efi_fs_info_id db EFI_FILE_SYSTEM_INFO_ID
|
||||||
efi_fs_info_size dq sizeof.EFI_FILE_SYSTEM_INFO
|
efi_fs_info_size dq sizeof.EFI_FILE_SYSTEM_INFO
|
||||||
efi_fs_info EFI_FILE_SYSTEM_INFO
|
efi_fs_info EFI_FILE_SYSTEM_INFO
|
||||||
|
@ -25,6 +25,7 @@ FILE_BUFFER_SIZE = 0x1000
|
|||||||
|
|
||||||
KERNEL_BASE = 0x10000
|
KERNEL_BASE = 0x10000
|
||||||
RAMDISK_BASE = 0x100000
|
RAMDISK_BASE = 0x100000
|
||||||
|
MAX_FILE_SIZE = 0x10000000
|
||||||
|
|
||||||
CODE_32_SELECTOR = 8
|
CODE_32_SELECTOR = 8
|
||||||
DATA_32_SELECTOR = 16
|
DATA_32_SELECTOR = 16
|
||||||
@ -400,7 +401,7 @@ find_vmode_index_by_resolution:
|
|||||||
movzx eax, [cfg_opt_value_vmode]
|
movzx eax, [cfg_opt_value_vmode]
|
||||||
mov rcx, [gop_interface]
|
mov rcx, [gop_interface]
|
||||||
mov rdx, [rcx+EFI_GRAPHICS_OUTPUT_PROTOCOL.Mode]
|
mov rdx, [rcx+EFI_GRAPHICS_OUTPUT_PROTOCOL.Mode]
|
||||||
cmp eax, 8;[rdx+EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE.MaxMode]
|
cmp eax, [rdx+EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE.MaxMode]
|
||||||
jnz .next_mode
|
jnz .next_mode
|
||||||
mov [cfg_opt_used_resolution], 0
|
mov [cfg_opt_used_resolution], 0
|
||||||
mov [cfg_opt_value_ask_params], 1
|
mov [cfg_opt_value_ask_params], 1
|
||||||
@ -526,8 +527,8 @@ main:
|
|||||||
mov rbx, [rbx+EFI_SYSTEM_TABLE.ConOut]
|
mov rbx, [rbx+EFI_SYSTEM_TABLE.ConOut]
|
||||||
eficall rbx, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString, rbx, \
|
eficall rbx, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString, rbx, \
|
||||||
msg_load_kernel
|
msg_load_kernel
|
||||||
push 1
|
push 1 ; fatal
|
||||||
push -1
|
push MAX_FILE_SIZE
|
||||||
push KERNEL_BASE
|
push KERNEL_BASE
|
||||||
; push kernel_name
|
; push kernel_name
|
||||||
mov rax, kernel_name
|
mov rax, kernel_name
|
||||||
@ -540,8 +541,8 @@ main:
|
|||||||
mov rbx, [rbx+EFI_SYSTEM_TABLE.ConOut]
|
mov rbx, [rbx+EFI_SYSTEM_TABLE.ConOut]
|
||||||
eficall rbx, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString, rbx, \
|
eficall rbx, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString, rbx, \
|
||||||
msg_load_ramdisk
|
msg_load_ramdisk
|
||||||
push 1
|
push 1 ; fatal
|
||||||
push -1
|
push MAX_FILE_SIZE
|
||||||
push RAMDISK_BASE
|
push RAMDISK_BASE
|
||||||
; push ramdisk_name
|
; push ramdisk_name
|
||||||
mov rax, ramdisk_name
|
mov rax, ramdisk_name
|
||||||
@ -1085,45 +1086,26 @@ clearbuf:
|
|||||||
pop rdi rsi rdx rcx rbx rax
|
pop rdi rsi rdx rcx rbx rax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
section '.data' data readable writeable
|
section '.rodata' data readable
|
||||||
efi_handle dq 0
|
align 16
|
||||||
efi_table dq 0
|
|
||||||
uefi_rsptmp dq 0
|
|
||||||
|
|
||||||
GDTR:
|
GDTR:
|
||||||
dw 4*8-1
|
dw 4*8-1
|
||||||
dq GDT
|
dq GDT
|
||||||
|
align 16
|
||||||
GDT:
|
GDT:
|
||||||
dw 0, 0, 0, 0
|
dw 0, 0, 0, 0
|
||||||
dw 0FFFFh,0,9A00h,0CFh ; 32-bit code
|
dw 0FFFFh,0,9A00h,0CFh ; 32-bit code
|
||||||
dw 0FFFFh,0,9200h,0CFh ; flat data
|
dw 0FFFFh,0,9200h,0CFh ; flat data
|
||||||
dw 0FFFFh,0,9A00h,0AFh ; 64-bit code
|
dw 0FFFFh,0,9A00h,0AFh ; 64-bit code
|
||||||
|
|
||||||
|
|
||||||
fb_base dq 0
|
|
||||||
|
|
||||||
gopuuid db EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
|
gopuuid db EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
|
||||||
gop_buffer_size dq GOP_BUFFER_SIZE
|
|
||||||
gop_handle dq 0
|
|
||||||
gop_interface dq 0
|
|
||||||
gop_info_size dq 0
|
|
||||||
gop_info dq 0
|
|
||||||
|
|
||||||
lipuuid db EFI_LOADED_IMAGE_PROTOCOL_GUID
|
lipuuid db EFI_LOADED_IMAGE_PROTOCOL_GUID
|
||||||
lip_buffer_size dq LIP_BUFFER_SIZE
|
|
||||||
lip_handle dq 0
|
|
||||||
lip_interface dq 0
|
|
||||||
|
|
||||||
sfspguid db EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
|
sfspguid db EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
|
||||||
sfsp_interface dq 0
|
|
||||||
|
|
||||||
esp_root dq ?
|
|
||||||
file_handle dq ?
|
|
||||||
file_name du '\EFI\KOLIBRIOS\KOLIBRI.INI',0
|
file_name du '\EFI\KOLIBRIOS\KOLIBRI.INI',0
|
||||||
kernel_name du '\EFI\KOLIBRIOS\KOLIBRI.KRN',0
|
kernel_name du '\EFI\KOLIBRIOS\KOLIBRI.KRN',0
|
||||||
ramdisk_name du '\EFI\KOLIBRIOS\KOLIBRI.IMG',0
|
ramdisk_name du '\EFI\KOLIBRIOS\KOLIBRI.IMG',0
|
||||||
devicesdat_name du '\EFI\KOLIBRIOS\DEVICES.DAT',0
|
devicesdat_name du '\EFI\KOLIBRIOS\DEVICES.DAT',0
|
||||||
file_buffer_size dq FILE_BUFFER_SIZE-1 ; leave the last byte for \0
|
|
||||||
|
|
||||||
config_options dq cfg_opt_name_resolution, cfg_opt_func_resolution, \
|
config_options dq cfg_opt_name_resolution, cfg_opt_func_resolution, \
|
||||||
cfg_opt_cmnt_resolution, \
|
cfg_opt_cmnt_resolution, \
|
||||||
@ -1164,30 +1146,6 @@ cfg_opt_cmnt_ask_params db "# Interrupt booting to ask the user for boot", \
|
|||||||
cfg_opt_cmnt_imgfrom db "# Where to load ramdisk image from",0
|
cfg_opt_cmnt_imgfrom db "# Where to load ramdisk image from",0
|
||||||
cfg_opt_cmnt_syspath db "# Path to /sys directory",0
|
cfg_opt_cmnt_syspath db "# Path to /sys directory",0
|
||||||
|
|
||||||
cfg_opt_used_resolution db 0
|
|
||||||
cfg_opt_used_acpi db 0
|
|
||||||
cfg_opt_used_debug_print db 0
|
|
||||||
cfg_opt_used_launcher_start db 0
|
|
||||||
cfg_opt_used_mtrr db 0
|
|
||||||
cfg_opt_used_ask_params db 0
|
|
||||||
cfg_opt_used_imgfrom db 0
|
|
||||||
cfg_opt_used_syspath db 0
|
|
||||||
|
|
||||||
cfg_opt_value_vmode db 0
|
|
||||||
cfg_opt_value_acpi db 0
|
|
||||||
cfg_opt_value_debug_print db 0
|
|
||||||
cfg_opt_value_launcher_start db 1
|
|
||||||
cfg_opt_value_mtrr db 0
|
|
||||||
cfg_opt_value_ask_params db 0
|
|
||||||
cfg_opt_value_imgfrom db RD_LOAD_FROM_MEMORY
|
|
||||||
cfg_opt_value_syspath db "/RD/1",0
|
|
||||||
rb 20
|
|
||||||
|
|
||||||
memory_map_key dq 0
|
|
||||||
descriptor_size dq 0
|
|
||||||
descriptor_ver dq 0
|
|
||||||
memory_map_size dq MEMORY_MAP_SIZE
|
|
||||||
|
|
||||||
msg_u4k_loaded du "uefi64kos loaded",13,10,0
|
msg_u4k_loaded du "uefi64kos loaded",13,10,0
|
||||||
msg_read_options du "Read options from config file",13,10,0
|
msg_read_options du "Read options from config file",13,10,0
|
||||||
msg_file_size du "File size:",13,10,0
|
msg_file_size du "File size:",13,10,0
|
||||||
@ -1220,6 +1178,54 @@ msg_error_open_file du "Error: can't open file ",0
|
|||||||
msg_error_exit_boot_services du "Error: Exit boot services",13,10,0
|
msg_error_exit_boot_services du "Error: Exit boot services",13,10,0
|
||||||
msg du 79 dup " ",13,10,0
|
msg du 79 dup " ",13,10,0
|
||||||
|
|
||||||
|
|
||||||
|
section '.data' data readable writeable
|
||||||
|
efi_handle dq 0
|
||||||
|
efi_table dq 0
|
||||||
|
uefi_rsptmp dq 0
|
||||||
|
|
||||||
|
fb_base dq 0
|
||||||
|
|
||||||
|
gop_buffer_size dq GOP_BUFFER_SIZE
|
||||||
|
gop_handle dq 0
|
||||||
|
gop_interface dq 0
|
||||||
|
gop_info_size dq 0
|
||||||
|
gop_info dq 0
|
||||||
|
|
||||||
|
lip_buffer_size dq LIP_BUFFER_SIZE
|
||||||
|
lip_handle dq 0
|
||||||
|
lip_interface dq 0
|
||||||
|
|
||||||
|
sfsp_interface dq 0
|
||||||
|
|
||||||
|
esp_root dq ?
|
||||||
|
file_handle dq ?
|
||||||
|
file_buffer_size dq FILE_BUFFER_SIZE-1 ; leave the last byte for \0
|
||||||
|
|
||||||
|
cfg_opt_used_resolution db 0
|
||||||
|
cfg_opt_used_acpi db 0
|
||||||
|
cfg_opt_used_debug_print db 0
|
||||||
|
cfg_opt_used_launcher_start db 0
|
||||||
|
cfg_opt_used_mtrr db 0
|
||||||
|
cfg_opt_used_ask_params db 0
|
||||||
|
cfg_opt_used_imgfrom db 0
|
||||||
|
cfg_opt_used_syspath db 0
|
||||||
|
|
||||||
|
cfg_opt_value_vmode db 0
|
||||||
|
cfg_opt_value_acpi db 0
|
||||||
|
cfg_opt_value_debug_print db 0
|
||||||
|
cfg_opt_value_launcher_start db 1
|
||||||
|
cfg_opt_value_mtrr db 0
|
||||||
|
cfg_opt_value_ask_params db 0
|
||||||
|
cfg_opt_value_imgfrom db RD_LOAD_FROM_MEMORY
|
||||||
|
cfg_opt_value_syspath db "/RD/1",0
|
||||||
|
rb 20
|
||||||
|
|
||||||
|
memory_map_key dq 0
|
||||||
|
descriptor_size dq 0
|
||||||
|
descriptor_ver dq 0
|
||||||
|
memory_map_size dq MEMORY_MAP_SIZE
|
||||||
|
|
||||||
efi_fs_info_id db EFI_FILE_SYSTEM_INFO_ID
|
efi_fs_info_id db EFI_FILE_SYSTEM_INFO_ID
|
||||||
efi_fs_info_size dq sizeof.EFI_FILE_SYSTEM_INFO
|
efi_fs_info_size dq sizeof.EFI_FILE_SYSTEM_INFO
|
||||||
efi_fs_info EFI_FILE_SYSTEM_INFO
|
efi_fs_info EFI_FILE_SYSTEM_INFO
|
||||||
|
@ -70,7 +70,7 @@ proc init_mem
|
|||||||
; ignore memory after 4 GiB
|
; ignore memory after 4 GiB
|
||||||
cmp [edi+e820entry.addr.hi], 0
|
cmp [edi+e820entry.addr.hi], 0
|
||||||
jnz .unusable
|
jnz .unusable
|
||||||
mov eax, [edi]
|
mov eax, [edi+e820entry.addr.lo]
|
||||||
cmp [edi+e820entry.size.hi], 0
|
cmp [edi+e820entry.size.hi], 0
|
||||||
jnz .overflow
|
jnz .overflow
|
||||||
add eax, [edi+e820entry.size.lo]
|
add eax, [edi+e820entry.size.lo]
|
||||||
|
@ -1165,12 +1165,13 @@ init_display:
|
|||||||
mov [edi+display_t.cr_list.next], ecx
|
mov [edi+display_t.cr_list.next], ecx
|
||||||
mov [edi+display_t.cr_list.prev], ecx
|
mov [edi+display_t.cr_list.prev], ecx
|
||||||
|
|
||||||
|
if ~defined UEFI
|
||||||
cmp [SCR_MODE], word 0x13
|
cmp [SCR_MODE], word 0x13
|
||||||
jbe .fail
|
jbe .fail
|
||||||
|
|
||||||
test word [SCR_MODE], 0x4000
|
test word [SCR_MODE], 0x4000
|
||||||
jz .fail
|
jz .fail
|
||||||
|
end if
|
||||||
mov ebx, restore_32
|
mov ebx, restore_32
|
||||||
mov ecx, move_cursor_32
|
mov ecx, move_cursor_32
|
||||||
mov edx, Vesa20_putpixel32_new
|
mov edx, Vesa20_putpixel32_new
|
||||||
|
Loading…
Reference in New Issue
Block a user