diff -ur dosbox-0.73/include/dos_inc.h DOSBox/include/dos_inc.h --- dosbox-0.73/include/dos_inc.h Wed May 27 11:15:40 2009 +++ DOSBox/include/dos_inc.h Mon Jun 29 17:51:20 2009 @@ -72,7 +72,8 @@ enum { MCB_FREE=0x0000,MCB_DOS=0x0008 }; enum { RETURN_EXIT=0,RETURN_CTRLC=1,RETURN_ABORT=2,RETURN_TSR=3}; -#define DOS_FILES 127 +extern Bitu DOS_FILES; + #define DOS_DRIVES 26 #define DOS_DEVICES 10 @@ -93,7 +94,7 @@ /* internal Dos Tables */ -extern DOS_File * Files[DOS_FILES]; +extern DOS_File ** Files; extern DOS_Drive * Drives[DOS_DRIVES]; extern DOS_Device * Devices[DOS_DEVICES]; diff -ur dosbox-0.73/src/dos/dos.cpp DOSBox/src/dos/dos.cpp --- dosbox-0.73/src/dos/dos.cpp Mon May 25 20:44:44 2009 +++ DOSBox/src/dos/dos.cpp Mon Jun 29 17:50:54 2009 @@ -1120,6 +1120,8 @@ // pop ax // iret + Section_prop * section=static_cast(configuration); + DOS_FILES = section->Get_int("files"); DOS_SetupFiles(); /* Setup system File tables */ DOS_SetupDevices(); /* Setup dos devices */ DOS_SetupTables(); @@ -1144,6 +1146,7 @@ } ~DOS(){ for (Bit16u i=0;iAdd_string("keyboardlayout",Property::Changeable::WhenIdle, "auto"); Pstring->Set_help("Language code of the keyboard layout (or none)."); + Pint = secprop->Add_int("files",Property::Changeable::OnlyAtStart,127); + Pint->Set_help("Number of file handles available to DOS programs. (equivalent to \"files=\" in config.sys)"); + // Mscdex secprop->AddInitFunction(&MSCDEX_Init); secprop->AddInitFunction(&DRIVES_Init);