I think the Intel 8086 assembler did a bunch of the things you are talking about (although it had different things to do, of course.) You could type: call fooo fooo proc near move A,B ret endp and the exact instructions produced for "call", "move", and "ret" would depend on the "declarations" of A, B, and fooo. I found it REALLY ANNOYING, and referred to it as a "strongly typed assembler" (which was supposed to sound funny.) It ended up hiding all sorts of information that is the bread and meat of assembly language programming and optimization, and I was frequently having to override the typing with the equivilent of casts to get pointers to variables, low/high bytes of variables, etc, etc. Perhaps a PIC has less to hide and more to gain, but... BillW -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads