home bbs files messages ]

Just a sample of the Echomail archive

Cooperative anarchy at its finest, still active today. Darkrealms is the Zone 1 Hub.

   OS2      Fidonet International OS/2 Conference      3,371 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 1,471 of 3,371   
   Peter Brown to All   
   Re: New USB host controller dirvers: usb   
   08 Dec 10 19:43:54   
   
   Firefox/4.0b8pre SeaMonkey/2.1b2pre   
   From: Peter Brown    
      
   Hi Lars   
      
   Lars Erdmann wrote:   
   > Lars Erdmann wrote:   
   >> Lars Erdmann wrote:   
   >>> Peter Brown wrote:   
   >>>> Hi Rich   
   >>>>   
   >>>> Rich Walsh wrote:   
   >>>>> On Wed, 8 Dec 2010 01:06:22 UTC, Peter   
   >>>>> Brown wrote:   
   >>>>>   
   >>>>>> I think I've discovered why USBcfg hangs when Lars drivers are in   
   >>>>>> use.   
   >>>>>>   
   >>>>>> The driver build level detection code in USBcfg is looking for a   
   >>>>>> string   
   >>>>>> starting with a '@' followed by a '#' and ending with a '#' - ie   
   >>>>>> @#IBM:10.162#   
   >>>>>>   
   >>>>>> Lars drivers id string starts with '@@' - ie @@#Lars Erdmann:10.163#   
   >>>>>>   
   >>>>>> So, USBcfg is probably "going around in circles" trying to find the   
   >>>>>> "standard" build level identifier string.   
   >>>>>>   
   >>>>>> Looks like I'll have to add this to the list of minor bits to do   
   >>>>>> on the   
   >>>>>> next update of USBcfg - unless Lars reverts to the "standard"   
   >>>>>> identifier   
   >>>>>> string with just the 1 '@'.   
   >>>>>   
   >>>>> The build ID string is preceeded by a byte that identifies its length.   
   >>>>> The length is 64 or 0x40. Rendered as a character, this is '@' -   
   >>>>> whence   
   >>>>> the two '@' in a row.   
   >>>>>   
   >>>>>   
   >>>>   
   >>>>   
   >>>>   
   >>>> Thanks for the explanation.   
   >>>>   
   >>>> As you may have guessed I simply opened usb drivers in a text editor   
   >>>> to discover how to find the build identifier string - no technical   
   >>>> knowledge used :-)   
   >>>>   
   >>>> As this is obviously not a mistake by Lars - Sorry to Lars for   
   >>>> suggesting it could be - I'll have to update USBcfg to cope with the   
   >>>> '@@'.   
   >>>>   
   >>>> Regards   
   >>>>   
   >>>> Pete   
   >>> Peter, you should have a look at the DOS and NE executable header   
   >>> format:   
   >>>   
   >>> \OS2TK45\h\newexe.h   
   >>>   
   >>> It'll take a little trial and error to find the offset field that   
   >>> points to the description string.   
   >>> Also be aware that there exist tools (NELITE.EXE from Veit   
   >>> Kannegieser comes to mind) that are capable   
   >>> of stripping away the DOS header and only leave the NE header so   
   >>> don't rely on finding the DOS header.   
   >>> But this is the only safe method to find the description string.   
   >>>   
   >>> Lars   
   >>   
   >> Here is: first, find the NE header. The best is to search for "NE"   
   >> magic string and then compute complete file CRC and compare with CRC   
   >> in NE header. If that goes well you know that you properly found the   
   >> NE header (CRC is a CRC32, try with the most commonly   
   >> used polynoms, see internet).   
   >> Then the offset to the non-resident names table (given from beginning   
   >> of the file) will directly point to the description   
   >> string length value (1 byte). After the byte follows the description   
   >> string:   
   >>   
   >> struct new_exe NEHeader;   
   >>   
   >> offset_to_length_byte = NE_NRESTAB(NEHeader);   
   >>   
   >> Lars   
   >>   
   >   
   > struct new_exe NEHeader;   
   > CHAR DescriptionString[256];   
   > LONG off;   
   > UCHAR len;   
   >   
   > ... find NE header in file and copy to NEHeader ...   
   >   
   > off = NE_NRESTAB(NEHeader);   
   > fseek(fDriverFile,(LONG)off,SEEK_SET);   
   > fread(&len,sizeof(UCHAR),(size_t)1,fDriverFile);   
   >   
   > memset(DescriptionString,0,sizeof(DescriptionString));   
   > fread(DescriptionString,sizeof(CHAR),(size_t)len,fDriverFile);   
   >   
   > You then have the Description string in "DescriptionString".   
   > It might contain spaces at the very end which you can strip away.   
   >   
   >   
   > Lars   
   >   
   >   
      
      
   Thanks Lars.   
      
   I'll try and translate the above into pascal - USBcfg is built using    
   WDSibyl  http://wdsibyl.org/   
      
   Regards   
      
   Pete   
      
      
      
   --- Internet Rex 2.31   
    * Origin: virginmedia.com (1:261/20.999)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca