I can boot from a floppy and format, parition, add files, execute files and read files from it (I'm using the XT-IDE BIOS in 8-bit mode, set by the autodetect).
When I try to boot it(any mounted harddisk), I'm getting an error 80h (after which it tries to boot a floppy which also gives a 80h error resulting in a full reboot of the system). Anyone knows why this happens (It shouldn't timeout according to my logs?)
It's logging:
10:00:10:58.7.0304: Set features:0,0=01 2 30:00:10:58.8.0418: IDENTIFY:0,0=EC 4 50:00:12:90.5.0344: Set features:0,0=01 6 70:00:12:90.6.0139: Set features:0,0=82 8 90:00:12:90.6.0931: SEEK:0,0=70 10 110:00:12:90.6.0933: Seeked!
Edit: While debugging I notice that the hard drive isn't read when executing a hard disk read request (AH=2, DL=0x80). It's firing interupt 13h with AH=02h and DL=02h? It seems to try to load a 'third floppy drive' instead of the hard disk? Anyone knows why this happens?
So the boot disk to be booted at 0009FC0C is incorrect (it contains 2 instead of 80h). Anyone can tell me why?
Edit: Found the problem: The BIOS detects 4 floppy drives (The BIOS Equipment word has bits 7&6 set to 1, so it detected 4 floppy drives (two times two floppy drives)). Now I just need to find out why the BIOS detects 4 floppy drives instead of 2 (actually installed floppy drives).
I've fixed the problem: The PPI ports 0x62 and 0x63 needed to be added to properly detect the 2 floppy drives (instead of detecting 4 floppy drives and confusing the hard disk BIOS (drives A,B,C,D are floppy, drives E,F,G,H hard disk/cdrom in that case. It tries to boot the C drive (floppy #3) which doesn't exist, so it gives a timeout even through it's supposed to boot the harddisk.
I've just found out another problem: For some reason the BIOS seems to detect 4 floppy drives instead of the 2 floppy drives installed. Anyone knows how the Turbo XT BIOS detects the amount of floppy drives installed (0,1,2,3 or 4 drives)?