mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-28 15:34:31 +00:00
66 lines
965 B
NASM
66 lines
965 B
NASM
[ORG 0x7C00]
|
|
[BITS 16]
|
|
|
|
start:
|
|
jmp 0x0000:Boot
|
|
nop
|
|
|
|
times 8-($-$$) db 0
|
|
PrimaryVolumeDescriptor dd 0
|
|
BootFileLocation dd 0
|
|
BootFileLength dd 0
|
|
Checksum dd 0
|
|
Reserved times 40 db 0
|
|
times 90-($-$$) db 0
|
|
|
|
%include "print.inc"
|
|
|
|
Boot:
|
|
cli
|
|
mov [BOOT_DISK], dl
|
|
xor ax, ax
|
|
mov ds, ax
|
|
mov ss, ax
|
|
mov sp, 0x9C00
|
|
|
|
mov si, ErrorText
|
|
call Print
|
|
hlt
|
|
jmp $
|
|
|
|
mov si, BootloaderText
|
|
call Print
|
|
call ReadDisk
|
|
jmp EX_ADDRESS
|
|
jmp $
|
|
|
|
ReadDisk:
|
|
sti
|
|
mov ah, 0x02
|
|
mov bx, EX_ADDRESS
|
|
mov al, 20 ; max 65
|
|
mov dl, [BOOT_DISK]
|
|
mov ch, 0x00
|
|
mov dh, 0x00
|
|
mov cl, 0x02
|
|
int 0x13
|
|
jc DiskError
|
|
cli
|
|
ret
|
|
|
|
DiskError:
|
|
cli
|
|
mov si, DiskReadingErrorMessage
|
|
call Print
|
|
jmp $
|
|
|
|
ErrorText db 'BIOS boot not implemented', 0
|
|
BootloaderText db 'Lynx Bootloader', 0
|
|
DiskReadingErrorMessage: db ' Disk Error', 0
|
|
EX_ADDRESS equ 0x8000
|
|
BOOT_DISK: db 0
|
|
|
|
times 510-($-$$) db 0
|
|
db 0x55
|
|
db 0xAA
|