update main #1

Merged
Sinipelto merged 240 commits from Bananymous/banan-os:main into main 2023-11-20 13:20:51 +02:00
3 changed files with 18 additions and 11 deletions
Showing only changes of commit 5f4d81a502 - Show all commits

View File

@ -82,15 +82,20 @@ stage2_main:
call elf_read_kernel_to_memory call elf_read_kernel_to_memory
cli # re-enter 80x25 text mode to clear screen
pushw %ax
movb $0x03, %al
movb $0x00, %ah
int $0x10
popw %ax
cli
# setup protected mode # setup protected mode
movl %cr0, %ebx movl %cr0, %ebx
orb $1, %bl orb $1, %bl
movl %ebx, %cr0 movl %ebx, %cr0
# jump to kernel in protected mode # jump to kernel in protected mode
ljmpl $0x18, $protected_mode ljmpl $0x18, $protected_mode

View File

@ -170,7 +170,7 @@ elf_read_kernel_to_memory:
andl $0x7FFFFFFF, %edi andl $0x7FFFFFFF, %edi
movl (elf_program_header + p_filesz), %ecx movl (elf_program_header + p_filesz), %ecx
call print_hex32; call print_newline #call print_hex32; call print_newline
call *%esi call *%esi

View File

@ -409,13 +409,14 @@ ext2_inode_read_bytes:
addl %edx, %esi addl %edx, %esi
# very dumb memcpy with 32 bit addresses # very dumb memcpy with 32 bit addresses
movl $0, %ebx
.ext2_inode_read_bytes_memcpy_partial: .ext2_inode_read_bytes_memcpy_partial:
movb (%esi), %al movb (%esi, %ebx), %al
movb %al, (%edi) movb %al, (%edi, %ebx)
incl %esi incl %ebx
incl %edi
decl %ecx decl %ecx
jnz .ext2_inode_read_bytes_memcpy_partial jnz .ext2_inode_read_bytes_memcpy_partial
addl %ebx, %edi
# check if all sectors are read # check if all sectors are read
cmpl $0, 4(%esp) cmpl $0, 4(%esp)
@ -441,13 +442,14 @@ ext2_inode_read_bytes:
# very dumb memcpy with 32 bit addresses # very dumb memcpy with 32 bit addresses
movl $ext2_block_buffer, %esi movl $ext2_block_buffer, %esi
movl $0, %ebx
.ext2_inode_read_bytes_memcpy: .ext2_inode_read_bytes_memcpy:
movb (%esi), %al movb (%esi, %ebx), %al
movb %al, (%edi) movb %al, (%edi, %ebx)
incl %esi incl %ebx
incl %edi
decl %ecx decl %ecx
jnz .ext2_inode_read_bytes_memcpy jnz .ext2_inode_read_bytes_memcpy
addl %ebx, %edi
# read next block if more sectors remaining # read next block if more sectors remaining
cmpl $0, 4(%esp) cmpl $0, 4(%esp)