A poorly written OS for the x86 arch. (WIP)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
eOS/src/bootloader.asm

45 lines
922 B

[org 0x7c00] ; bootsector
; Save the boot drive index
mov [BOOT_DRIVE], dl
; Move the stack pointer somewhere safe
mov bp, 0x8000 ; move it to 0x8000
mov sp, bp
; Print the welcome string
mov bx, welcome_string
call println
; Read second sector (outside bootsector)
mov bx, 0x9000 ; LOAD LOCATION
mov dh, 2 ; SECTOR-COUNT
mov dl, [BOOT_DRIVE] ; DISK-INDEX
call disk_read
; Print out whatever bloated data that was read
mov dx, [0x9000]
call print_hex
mov bx, [ASCII_END]
call println
mov dx, [0x9000 + 512] ; read from second sector too
call print_hex
jmp $ ; inf loop
%include "equ/ASCII.asm"
%include "bios.asm"
; Data
welcome_string: db "e Operating-System (eOS)", ASCII_CARRIAGE_RETURN, ASCII_LINEBREAK, "Version 2021 0.0", ASCII_END
BOOT_DRIVE: db 0
; Bootsector
times 510-($-$$) db 0
dw 0xaa55 ; magic BIOS numbers
; After bootsector
times 256 dw 0xEEEE
times 256 dw 0xAAAA