Trying to execute that same code in an Arch machine, it fails to read. If I compile the image in Debian I can execute it in Arch, so it's not something with QEMU.
It seems like some compiler weirdness but I'm using a cross compiler from within a debian docker container so it should be exactly the same across both machines...
right before int 13h i have
Code: Select all
AH=0x42, DL=0x80, DS=0, SI=0x7920
x /b 0x7920+0 -> 0x10
x /b 0x7920+1 -> 0x00
x /h 0x7920+2 -> 0x01
x /w 0x7920+4 -> 0x10880
x /q 0x7920+8 -> 0x01
Code: Select all
CF=0
AH=0
Code: Select all
x /5b 0x10880 -> 0x41 0x0 0x42 0x0 0x43
idk if the code is relevant but here it is:
https://github.com/Bonfra04/BonsOS/blob ... disk.c#L34
(yes it's heavily "inspired" from Limine)