Adding two lines of assembly for program clarity is clever! >From what I recall of Forth (I took a one day class from Forth, Inc MANY years ago), you defined new "words" in the Forth dictionary based on existing words. You could then use these to define more new words. When you were done, your program consisted of a single word in the Forth dictionary. This is, I think, really similar to ANY bottom-up programming. Start at the hardware, write routines to talk to it, then write the routines above that, etc. I like bottom-up programming since I can test everything along the way (and I got into this from the hardware side). When programming in assembly, macros are nice in that you can do parameter passing. It might be nice for any subroutine that needs more than just a byte passed in w to be surrounded by a macro to pass in all the parameters. Recently, I've been doing everything in C except for ISRs, which are still in assembly. I originally tried them in C, but they were too slow (probably because of all the stuff that had to be stored away during each subroutine call). I really like C parameter passing. I think macros could do the same thing for assembly, making code more concise and clear. Harold -- FCC Rules Updated Daily at http://www.hallikainen.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist