diff --git a/src/ints/bios_disk.cpp b/src/ints/bios_disk.cpp index 87e1abfc..363c02ed 100644 --- a/src/ints/bios_disk.cpp +++ b/src/ints/bios_disk.cpp @@ -512,17 +512,19 @@ static Bitu INT13_DiskHandler(void) { Bit64u largesize = tmpheads*tmpcyl*tmpsect*tmpsize; largesize/=512; Bit32u ts = static_cast(largesize); - reg_ah = (drivenum <2)?2:3; - reg_cx = static_cast(ts >>16); - reg_dx = static_cast(ts & 0xffff); + reg_ah = (drivenum <2)?1:3; //With 2 for floppy MSDOS starts calling int 13 ah 16 + if(reg_ah == 3) { + reg_cx = static_cast(ts >>16); + reg_dx = static_cast(ts & 0xffff); + } CALLBACK_SCF(false); } else { if (drivenum