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,&regs,&regs);
   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,&regs,&regs);
   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,&regs,&regs);
       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
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to