Tom, Andy and Imre: Thank you very much for your thoughtful responses. I'd just like to add little reaction and some more thoughts. First, one thought about macros. While it wouldn't immediately solve the portablity problem, it occured to me that it should be somewhat straightforward to use GNU M4 -- http://www.seindal.dk/rene/gnu/ -- as a macro preprocessor for CVASM16. I wouldn't expect M4 to immediately handle the macro syntax of other assemblers, but then M4 is a powerful enough tool that it might just be possible to use M4 to build a tool that would. Still, it would right out of the box give you the ability to code up macros for CVASM16. M4 is available for the DOS platform via DJCPP or for Win32 in Cygnus' Cygwin project -- http://sourceware.cygnus.com/cygwin/ -- which no Windows-based software development system should be without, IMHO. The hardest part of using M4 would probably be integrating it into the TDE environment, which may or may not be possible... anyone have a guess? Second, Andy, while I've been using MPASM, that doesn't mean I like it. It's kind of a quaint language, and of course it takes you as close to the hardware as you can get, but damn if it isn't a funky thing to get your head around. And I've probably used two or three dozen programming languages over the years, so I don't think that it's just me. It reminds me, in sort of a kindred spirit kind of way, of Intercal -- http://www.tuxedo.org/~esr/intercal/. So, once I read all y'all's responses, I was kind of intrigued. I've skimmed through the instruction set and read a couple of examples, and it does seem a bunch more livable. The big question mark of course being the ability of this thing to process this code I need to work with. As it turns out, the emWare emMicro source code is available both in "generic 8051" and in MPASM. Unfortunately, the MPASM code is just dripping with macros, so that got kind of nowhere fast. The 8051 code, however, seemed a little more promising. Nonetheless, that too turns out to be somewhat probelmatic. The 8051 code was written to the Metalink ASM51 assembler, and I quickly found bunchs of stuff that had to be fixed. The emMicro code used SET and BIT instructions, for example, and a bunch of assembler directives that didn't work. I commented out a bunch of stuff that didn't seem important ($LIST directives and such), and changed $INCLUDE directives to the proper INCLUDE syntax. Once I got that stuff fixed, I started running into macros :-( I can't release the file, but emWare's "lite"/free version includes the 8051 assembler source I'm talking about... It's a 10MB download from the URL http://www.emstore.com/cgifile/EMIT3.01SDKLite.exe while the user's manual is at http://www.emstore.com/cgifile/EMITLiteFastStart.pdf There's probably enough stuff in that package to actually do something with an 8051, but you'd have to be pretty good at reading assembler source; the developer's manual is only availble if you pay them money. (emWare will probably be mad at me for those links... they want you to register, and I know from experience that a salesperson *will call*. The top level is http://www.emware.com FWIW.) Once you unpack it, the files will be in ...\emWare\emMicro\Samples\8051\emSdk and ...\emWare\emMicro\Samples\8051\emMicro. The MPASM source hasn't been relased like this. If there's any CVASM16 gurus out there so bored out of their skulls that they'd like to take a look at that source and guess whether it would ever work to run a PIC with it via CVASM16, I'd be interested to know what you think. Thanks again. I might just use CVASM16 for things besides this, and I might just see what I can do with M4 and CVASM16. But it seems as if trying to make it work on this emWare stuff would be a huge time sink with little payoff. --Bob -- ============================================================ Bob Drzyzgula It's not a problem bob@drzyzgula.org until something bad happens ============================================================