Я пишу кое-что MSDOS-подобное и понял, что не умею заменять прерывания. Вот, что я попытался сделать:
format binary as "mbr"
short fix
use16
org 0x7C00
fake_boot:
jmp short boot
nop
header:
db "EONDISK "
dw 512
db 1
dw 1
db 2
dw 224
dw 2880
db 0xF0
dw 9
dw 18
dw 2
dq 0
dw 0
db 41
dd 0
db "EON DISK "
db "FAT12 "
boot:
push word 0
pop es
mov bx, 0x11*2+0xF000
mov word [es:bx], int10-$$
int 0x11
cli
hlt
int10:
mov ah, 0x0E
mov al, 'X'
int 0x10
iret
times 510-$+$$ db 0x00
dw 0xAA55
написано в fasm'е.
Я пытался гуглить, всю ночь потратил, но попадал только на гайды "напиши свою недоОС с нуля на опкодах".
Т. е. проблема в отсутствии информации, а не сложности задачи.