1
0
Fork 0

Increase number of floppies when using non-disk images as well. Maybe decrease the number on unmount in the future. Thanks ripsaw

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3729
This commit is contained in:
Peter Veenstra 2011-07-16 12:24:46 +00:00
parent 6fc206193e
commit 2b0081cf59
3 changed files with 16 additions and 10 deletions

View file

@ -69,6 +69,7 @@ public:
};
void updateDPT(void);
void incrementFDD(void);
#define MAX_HDD_IMAGES 2

View file

@ -324,6 +324,7 @@ public:
label = drive; label += "_FLOPPY";
newdrive->dirCache.SetLabel(label.c_str(),iscdrom,true);
}
if(type == "floppy") incrementFDD();
return;
showusage:
#if defined (WIN32) || defined(OS2)

View file

@ -85,6 +85,19 @@ void updateDPT(void) {
}
}
void incrementFDD(void) {
Bit16u equipment=mem_readw(BIOS_CONFIGURATION);
if(equipment&1) {
Bitu numofdisks = (equipment>>6)&3;
numofdisks++;
if(numofdisks > 1) numofdisks=1;//max 2 floppies at the moment
equipment&=~0x00C0;
equipment|=(numofdisks<<6);
} else equipment|=1;
mem_writew(BIOS_CONFIGURATION,equipment);
CMOS_SetRegister(0x14, (Bit8u)(equipment&0xff));
}
void swapInDisks(void) {
bool allNull = true;
Bits diskcount = 0;
@ -219,16 +232,7 @@ imageDisk::imageDisk(FILE *imgFile, Bit8u *imgName, Bit32u imgSizeK, bool isHard
if(!founddisk) {
active = false;
} else {
Bit16u equipment=mem_readw(BIOS_CONFIGURATION);
if(equipment&1) {
Bitu numofdisks = (equipment>>6)&3;
numofdisks++;
if(numofdisks > 1) numofdisks=1;//max 2 floppies at the moment
equipment&=~0x00C0;
equipment|=(numofdisks<<6);
} else equipment|=1;
mem_writew(BIOS_CONFIGURATION,equipment);
CMOS_SetRegister(0x14, (Bit8u)(equipment&0xff));
incrementFDD();
}
}
}