I have been working on an OS called UNICORN OS.
My problem is: Interrupt 0x13...
Code: Select all
cmd0104: ;cmd2 - This is jumped to from the command interpreter
mov bx, 0x7c00
mov ch, 0x00
mov cl, 0x02
mov dh, 0x00
mov dl, 0x00
mov ah, 0x03
mov al, 0x01
int 0x13
jmp start ;this jumps back to the interpreter, making it get the next command.
When i look at the disk in a hex editor, sector 1 and two SHOULD be the same. They're not.
Interpreter is tested and working.
The jump to "start"-label works.
What happens is:
My OS boot, and my command line is showing as expected.
I type in "cmd2", and press enter. This makes the program jump to cmd0104.
The floppy drive motor turns on, and then strange things begin to happen.
At the upper left corner of the screen it prints a few symbols in various colors.
The machine goes into a hang, and i can't even ctrl+alt+del it to a reset.
The strange thing is: I used int 0x13 in the bootloader, and it works there.
What is wrong here?
Thanks in advance!