Byron: It just occurred to me that adding a dll to an install directory does not automatically work. The main program needs to know it's there. Even when dynamically (? run- time?) loading with LoadLibrary(), the program needs to know what dll to load. (the dll header in the main app is what causes the other loading method to be used.) Now if you use an AxtiveX dll (easily done with ATL via MSVC++, which you're not using,) the main program could read the registry info for the control (make an extra key for this) and load the chip number that control supports into a drop down list. HKCR/software-whatever-the-hell-key-you-use/installed-components 16f628.class I can't remember all that COM crap right now. I think there's a way to query for interfaces to discover what's there, but if all the controls have the same functions, you'd just use p_interface->16f628->program(...); I personally still think the low level code should be in a dll. Each function should have an on/off and/or time parameter. THen the main program could just check a text file for the timing params for each chip. The syntax of the file would be such that the main program can load the chip drop down from the text file info. >Because it's a lot more difficult the track data than it is to track code. The >fact of the matter is that a programming algorithm is an algorithm, which >means that it naturally translates to code. it also means that it had to be described in words first, so the timing params and sequence can be put in a list The list could also define p-port pins used (which can be used to set up hardware test check boxes dynamically.) USB... tell me how. A list is hackable which is consistent with home-brew programmers. Remember, when I made my version of your programmer - the ULAVP ugly little any voltage programmer, I got lucky and found that IC-Prog worked if I set it to Conquest programmer, not THVP or Tait. A hackable file would have been helpful. Since you want to port linux code to winders, I strongly suggest www.wxwindows.org - a free cross-platform UI framework. It even does a TCP/IP type of COM, handles disk and DB access and more. You can write code once, use the USENet forum for help, and use the on-line CVS help doc which ain't perfect, but it's good enough... and then you only have to recompile for whatever platform you want. There's really no reason to not use wxwindows. No excuse. period. full stop :-) HTH, Mike - Active8 ( a broadband term from CATV and wow, I just realized I named a class after it for that PC scope program. It was derived from the thread class, IIRC.) -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads