> Using my understanding of orthogonal, you should be able to use any > operation with any register > add a,b add m,c mov a,a > > Your mention on C++ gives thought to one thing I don't like about > operator overloading > > String s1 = "123"; > String s2 = "234"; > > String s3 = s1 + s2; Should you get "123234" or "357" ? Isn't it modality between classes that's giving you heartburn? >From a global perspective you're spot on. Ideally "+" should mean one thing, not concatenation for some classes and summation for others. But as a practical matter that would be a straight-jacket because there are only so many symbols conveniently available on the keyboard. The C/C++ solution is "classes," each one of which may or may not be orthogonal. Within a class overloading gives the programmer a choice to reuse a symbol that could mean something else in a different class -- and if one wants a shorthand for concatenation the "+" symbol is a lot faster that typing a function. Perhaps you remember APL -- powerful math language IMHO, but it has the wildest collection of operator symbols and is nearly brain dead when it comes to text. Perhaps that's the price one pays to avoid the ambiguity you pointed out. Aza D. Oberman -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist