Imre Leber escreveu:
>>
> It always amazes me how little sense I talk.
Sorry if I missunderstood you...
But what I mean is that if you can test for dosemu, then you don't need
to use #define and decide real time if defrag may work on not.
I have also a very big test of OS version, it did take a lot of time to
test on many many diferent versions.
Just in case some part of it could be usefull, here it is:
( _bprintf is OW's version of vsnprintf)
//--------------------------------------
char* DosGetName(void) // Le Nome do DOS
{
int OEMNumber;
int DOSMajor30;
int DOSMinor30;
int DOSMajor33;
int DOSMinor33;
int DOSRevision;
static char dosName[35];
union REGS regs;
regs.w.ax=0x3000; // get DOS version
int386(0x21,®s,®s);
OEMNumber = regs.h.bh; // save version
DOSMajor30 = regs.h.al;
DOSMinor30 = regs.h.ah;
if (DOSMajor30 == 0x00)
DOSMajor30 = 0x01; // DOS 1.x
regs.w.ax=0x3306; // get DOS TRUE (?) version
regs.w.bx=0;
regs.w.dx=0;
int386(0x21,®s,®s);
DOSMajor33 = regs.h.bl;
DOSMinor33 = regs.h.bh;
DOSRevision= regs.h.dl;
switch (OEMNumber){
case 0xFD:
_bprintf(dosName,sizeof(dosName),"%sFreeDOS,
Ver=%d.%02d",isDosEmu?"DosEmu+":"",DOSMajor33,DOSMinor33);
break;
case 0xFF:
if (DOSMajor30 <= 6)
_bprintf(dosName,sizeof(dosName),"MSDOS,
Ver=%d.%02d",DOSMajor33,DOSMinor33);
else if (getenv("windir"))
_bprintf(dosName,sizeof(dosName),"WINDOWS,
Ver=%d.%02d",DOSMajor33,DOSMinor33);
else
_bprintf(dosName,sizeof(dosName),"MSDOS,
Ver=%d.%02d",DOSMajor33,DOSMinor33);
break;
case 0x00:
regs.w.ax = 0x4452; // get DR-DOS version
int386(0x21,®s,®s);
if (regs.w.cflag) // CY=1 if not DR-DOS
_bprintf(dosName,sizeof(dosName),"PCDOS,
Ver=%d.%02d",DOSMajor33,DOSMinor33);
else
switch(regs.w.ax&0xff){
case 0x65:
_bprintf(dosName,sizeof(dosName),"DRDOS, Ver=5.0");
break;
case 0x67:
_bprintf(dosName,sizeof(dosName),"DRDOS, Ver=6.0");
break;
case 0x71:
case 0x72:
case 0x73:
_bprintf(dosName,sizeof(dosName),"DRDOS,
Ver=%d.0%d",(regs.w.ax&0xf0)>>4,regs.w.ax&0xf);
break;
default:
_bprintf(dosName,sizeof(dosName),"DRDOS,
Ver=(%02X)",regs.w.ax&0xff);
}
break;
case 0xEE:
_bprintf(dosName,sizeof(dosName),"DRDOS,
Ver=%d.%02d",DOSMajor33,DOSMinor33);
break;
case 0xEF:
_bprintf(dosName,sizeof(dosName),"NWDOS,
Ver=%d.%02d",DOSMajor33,DOSMinor33);
break;
case 0x66:
_bprintf(dosName,sizeof(dosName),"PTSDOS,
Ver=%d.%02d",DOSMajor33,DOSMinor33);
break;
case 0x5E:
_bprintf(dosName,sizeof(dosName),"RXDOS,
Ver=%d.%02d",DOSMajor33,DOSMinor33);
break;
default:
_bprintf(dosName,sizeof(dosName),"UNKNOWN,
Ver=%d.%02d",DOSMajor30,DOSMinor30);
}
return (dosName);
}
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel