This repository has been archived on 2026-03-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2026-02-27 22:22:48 +02:00

55 lines
997 B
NASM

[org 0x7C00]
bits 16
KERNEL_OFFSET equ 0x1000
start:
cli
mov [BOOT_DRIVE], dl
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x7C00
sti
call load_kernel
jmp KERNEL_OFFSET
; -----------------------
; Зчитування kernel
; -----------------------
load_kernel:
mov bx, KERNEL_OFFSET ; куди завантажити
mov dh, 5 ; кількість секторів (тимчасово 5)
mov dl, [BOOT_DRIVE]
mov ah, 0x02 ; BIOS read sector
mov al, dh ; скільки секторів
mov ch, 0x00 ; cylinder
mov dh, 0x00 ; head
mov cl, 0x02 ; сектор 2 (після bootloader)
int 0x13
jc disk_error
ret
disk_error:
mov si, error_msg
.print:
lodsb
cmp al, 0
je $
mov ah, 0x0E
int 0x10
jmp .print
BOOT_DRIVE db 0
error_msg db "Disk read error!", 0
times 510 - ($ - $$) db 0
dw 0xAA55