Added "Loading..." text at boot

This commit is contained in:
Alex 2022-10-13 07:35:59 +03:00
parent 3620ad914d
commit 8f108466fa
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD

View File

@ -31,42 +31,52 @@ extern _kernel_end
global _start global _start
_start: _start:
mov esp, STACK_TOP - KERNEL_VIRTUAL_BASE mov word [0xb8000], 0x074C ; L
mov edi, BOOT_PAGE_TBL0 - KERNEL_VIRTUAL_BASE mov word [0xb8002], 0x076F ; o
mov esi, 0 mov word [0xb8004], 0x0761 ; a
mov ecx, 2048 - 301 mov word [0xb8006], 0x0764 ; d
mov word [0xb8008], 0x0769 ; i
mov word [0xb800a], 0x076E ; n
mov word [0xb800c], 0x0767 ; g
mov word [0xb800e], 0x072E ; .
mov word [0xb8010], 0x072E ; .
mov word [0xb8012], 0x072E ; .
mov esp, STACK_TOP - KERNEL_VIRTUAL_BASE
mov edi, BOOT_PAGE_TBL0 - KERNEL_VIRTUAL_BASE
mov esi, 0
mov ecx, 2048 - 301
.PagingLoop: .PagingLoop:
cmp esi, _kernel_start - KERNEL_VIRTUAL_BASE cmp esi, _kernel_start - KERNEL_VIRTUAL_BASE
jl .LoopInside jl .LoopInside
cmp esi, _kernel_end - KERNEL_VIRTUAL_BASE cmp esi, _kernel_end - KERNEL_VIRTUAL_BASE
jge .LoopEnd jge .LoopEnd
mov eax, esi mov eax, esi
or eax, 3 or eax, 3
mov [edi], eax mov [edi], eax
.LoopInside: .LoopInside:
add esi, 4096 add esi, 4096
add edi, 4 add edi, 4
loop .PagingLoop loop .PagingLoop
.LoopEnd: .LoopEnd:
push ebx push ebx
mov dword [BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE + (000 * 4)], (BOOT_PAGE_TBL0 - KERNEL_VIRTUAL_BASE + 3) mov dword [BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE + (000 * 4)], (BOOT_PAGE_TBL0 - KERNEL_VIRTUAL_BASE + 3)
mov dword [BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE + (001 * 4)], (BOOT_PAGE_TBL1 - KERNEL_VIRTUAL_BASE + 3) mov dword [BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE + (001 * 4)], (BOOT_PAGE_TBL1 - KERNEL_VIRTUAL_BASE + 3)
mov dword [BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE + (896 * 4)], (BOOT_PAGE_TBL0 - KERNEL_VIRTUAL_BASE + 3) mov dword [BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE + (896 * 4)], (BOOT_PAGE_TBL0 - KERNEL_VIRTUAL_BASE + 3)
mov dword [BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE + (897 * 4)], (BOOT_PAGE_TBL1 - KERNEL_VIRTUAL_BASE + 3) mov dword [BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE + (897 * 4)], (BOOT_PAGE_TBL1 - KERNEL_VIRTUAL_BASE + 3)
mov ecx, BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE mov ecx, BOOT_PAGE_DIR0 - KERNEL_VIRTUAL_BASE
mov cr3, ecx mov cr3, ecx
mov ecx, cr0 mov ecx, cr0
or ecx, 0x80010000 or ecx, 0x80010000
mov cr0, ecx mov cr0, ecx
add esp, KERNEL_VIRTUAL_BASE add esp, KERNEL_VIRTUAL_BASE
mov eax, CallKernelMain mov eax, CallKernelMain
jmp eax jmp eax
section .text section .text
CallKernelMain: CallKernelMain:
push ebx push ebx
call x32Entry call x32Entry
cli cli
.hang: .hang:
hlt hlt
jmp .hang jmp .hang