add set_text_color, add constants for colors
This commit is contained in:
@@ -19,6 +19,15 @@ include '../const.inc'
|
|||||||
purge DQ ; because of some struct DQ in const.inc
|
purge DQ ; because of some struct DQ in const.inc
|
||||||
include 'uefi64.inc'
|
include 'uefi64.inc'
|
||||||
|
|
||||||
|
; rbx - efi table
|
||||||
|
; rcx - color = fore | back
|
||||||
|
proc set_text_color; uses rax
|
||||||
|
mov rax, rcx
|
||||||
|
mov rcx, [rbx+EFI_SYSTEM_TABLE.ConOut]
|
||||||
|
fstcall [rcx+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute], rcx, rax
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
proc main _efi_handle, _efi_table
|
proc main _efi_handle, _efi_table
|
||||||
mov [efi_handle], rcx
|
mov [efi_handle], rcx
|
||||||
mov [efi_table], rdx
|
mov [efi_table], rdx
|
||||||
@@ -28,8 +37,16 @@ proc main _efi_handle, _efi_table
|
|||||||
fstcall [rcx+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset], rcx, 1
|
fstcall [rcx+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset], rcx, 1
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jnz $ ; what can I do here?
|
jnz $ ; what can I do here?
|
||||||
|
|
||||||
|
fstcall set_text_color, EFI_BLUE or EFI_BACKGROUND_GREEN
|
||||||
|
|
||||||
mov rcx, [rbx+EFI_SYSTEM_TABLE.ConOut]
|
mov rcx, [rbx+EFI_SYSTEM_TABLE.ConOut]
|
||||||
fstcall [rcx+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], rcx, msg_hello_k64_loader
|
fstcall [rcx+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], rcx, msg_hello_k64_loader ; todo functions for write text like set_text_color
|
||||||
|
|
||||||
|
fstcall set_text_color, EFI_LIGHTRED
|
||||||
|
|
||||||
|
mov rcx, [rbx+EFI_SYSTEM_TABLE.ConOut]
|
||||||
|
fstcall [rcx+EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString], rcx, msg_2
|
||||||
|
|
||||||
jmp $
|
jmp $
|
||||||
endp
|
endp
|
||||||
@@ -42,6 +59,7 @@ efi_table dq 0
|
|||||||
|
|
||||||
section '.rodata' data readable
|
section '.rodata' data readable
|
||||||
msg_hello_k64_loader du "Hello from Kolibri64 efi loader",13,10,0
|
msg_hello_k64_loader du "Hello from Kolibri64 efi loader",13,10,0
|
||||||
|
msg_2 du "Lorem ipsum !",13,10,0
|
||||||
|
|
||||||
|
|
||||||
section '.reloc' fixups data discardable
|
section '.reloc' fixups data discardable
|
||||||
|
@@ -107,6 +107,35 @@ EFI_FILE_MODE_READ = 1
|
|||||||
EFI_FILE_MODE_WRITE = 2
|
EFI_FILE_MODE_WRITE = 2
|
||||||
EFI_FILE_MODE_CREATE = 0x8000000000000000
|
EFI_FILE_MODE_CREATE = 0x8000000000000000
|
||||||
|
|
||||||
|
; foreground colors
|
||||||
|
EFI_BLACK = 0x00
|
||||||
|
EFI_BLUE = 0x01
|
||||||
|
EFI_GREEN = 0x02
|
||||||
|
EFI_CYAN = 0x03
|
||||||
|
EFI_RED = 0x04
|
||||||
|
EFI_MAGENTA = 0x05
|
||||||
|
EFI_BROWN = 0x06
|
||||||
|
EFI_LIGHTGRAY = 0x07
|
||||||
|
EFI_BRIGHT = 0x08
|
||||||
|
EFI_DARKGRAY = 0x08
|
||||||
|
EFI_LIGHTBLUE = 0x09
|
||||||
|
EFI_LIGHTGREEN = 0x0A
|
||||||
|
EFI_LIGHTCYAN = 0x0B
|
||||||
|
EFI_LIGHTRED = 0x0C
|
||||||
|
EFI_LIGHTMAGENTA = 0x0D
|
||||||
|
EFI_YELLOW = 0x0E
|
||||||
|
EFI_WHITE = 0x0F
|
||||||
|
|
||||||
|
; background colors
|
||||||
|
EFI_BACKGROUND_BLACK = 0x00
|
||||||
|
EFI_BACKGROUND_BLUE = 0x10
|
||||||
|
EFI_BACKGROUND_GREEN = 0x20
|
||||||
|
EFI_BACKGROUND_CYAN = 0x30
|
||||||
|
EFI_BACKGROUND_RED = 0x40
|
||||||
|
EFI_BACKGROUND_MAGENTA = 0x50
|
||||||
|
EFI_BACKGROUND_BROWN = 0x60
|
||||||
|
EFI_BACKGROUND_LIGHTGRAY = 0x70
|
||||||
|
|
||||||
struct EFI_MEMORY_DESCRIPTOR
|
struct EFI_MEMORY_DESCRIPTOR
|
||||||
Type dd ?
|
Type dd ?
|
||||||
dd ? ; align
|
dd ? ; align
|
||||||
|
Reference in New Issue
Block a user