Files
aster-core/boot/boot.asm
T
2026-07-12 05:44:42 +02:00

75 lines
1.0 KiB
NASM

; /*
; * AsterOS Kernel
; * Autor: Pavel Kalaš
; * Rok: 2026
; *
; */
[org 0x7C00]
[bits 16]
STAGE2_SECTORS equ 16
STAGE2_LBA equ 1
start:
cli
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x7C00
sti
mov [boot_drive], dl
mov si, boot_msg
call print_string
mov word [dap + 2], STAGE2_SECTORS
mov word [dap + 4], 0x8000
mov word [dap + 6], 0x0000
mov dword [dap + 8], STAGE2_LBA
mov dword [dap + 12], 0
mov si, dap
mov ah, 0x42
mov dl, [boot_drive]
int 0x13
jc disk_error
jmp 0x0000:0x8000
disk_error:
mov si, disk_msg
call print_string
jmp $
print_string:
lodsb
test al, al
jz .done
mov ah, 0x0E
mov bh, 0x00
mov bl, 0x0F
int 0x10
jmp print_string
.done:
ret
boot_drive: db 0
boot_msg: db "Aster Bootloader stage1", 13, 10, 0
disk_msg: db "Disk read error", 13, 10, 0
align 8
dap:
db 0x10
db 0
dw 0
dw 0
dw 0
dd 0
dd 0
times 510 - ($ - $$) db 0
dw 0xAA55