diff --git a/src/dos/dos_programs.cpp b/src/dos/dos_programs.cpp index 9bfeba00..902ac3d6 100644 --- a/src/dos/dos_programs.cpp +++ b/src/dos/dos_programs.cpp @@ -125,12 +125,12 @@ public: str_size="512,1,2880,2880";/* All space free */ mediaid=0xF0; /* Floppy 1.44 media */ } else if (type=="dir") { - // 512*32*65535==~1GB total size + // 512*32*32765==~500MB total size // 512*32*16000==~250MB total free size - str_size="512,32,65535,16000"; + str_size="512,32,32765,16000"; mediaid=0xF8; /* Hard Disk */ } else if (type=="cdrom") { - str_size="2048,1,65535,0"; + str_size="2048,1,32765,0"; mediaid=0xF8; /* Hard Disk */ } else { WriteOut(MSG_Get("PROGAM_MOUNT_ILL_TYPE"),type.c_str()); @@ -145,8 +145,12 @@ public: // freesize in kb sprintf(teststr,"512,1,2880,%d",freesize*1024/(512*1)); } else { - // freesize in mb - sprintf(teststr,"512,32,65535,%d",freesize*1024*1024/(512*32)); + Bit32u total_size_cyl=32765; + Bit32u free_size_cyl=(Bit32u)freesize*1024*1024/(512*32); + if (free_size_cyl>65534) free_size_cyl=65534; + if (total_size_cyl65534) total_size_cyl=65534; + sprintf(teststr,"512,32,%d,%d",total_size_cyl,free_size_cyl); } str_size=teststr; } diff --git a/src/dos/drive_virtual.cpp b/src/dos/drive_virtual.cpp index 43619616..c119d873 100644 --- a/src/dos/drive_virtual.cpp +++ b/src/dos/drive_virtual.cpp @@ -250,7 +250,7 @@ bool Virtual_Drive::Rename(char * oldname,char * newname) { bool Virtual_Drive::AllocationInfo(Bit16u * _bytes_sector,Bit8u * _sectors_cluster,Bit16u * _total_clusters,Bit16u * _free_clusters) { *_bytes_sector=512; *_sectors_cluster=32; - *_total_clusters=65535; // total size is always 1 gb + *_total_clusters=32765; // total size is always 500 mb *_free_clusters=0; // nothing free here return true; }