I've been using the MSP430 since 1998, and, despite trying various other micros still keep churning out designs based around this thing, manly because I like the timers especially, but most other peripherals are decent and mostly easy to use. I have always had one wish above everything else (well 2 actually, one being orthogonal src/dst addressing) and that is for more registers. I write pretty much exclusively in assembler for the MSP430 (whatever happended to the assembler samples::) and the registers are amazingly useful when it comes to speeding up your code, but I always run out of them far too quickly, plus there is always that evil bug when you forget that a regsiter has been allocated to a forground task, then you use it in an interrupt handler. There are lots of spare bits in the Status register, so my thought has always been to either select a bank using a bit in the SR or to simply allocate one set of registers to be available for ISR use only (less useful, but possibly easier to do) with a mechanism to allow access to them. ISR's are particularly important because they need to be as concise and fast as possible. I tend to run lots of ISR's, and you need to know how long your ISRs take to execute worst case so that you can ensure there are no misses, or clashes. Also on comms intensive or even some I/O intensive designs it would make a huge differenc eif you could allocate often use variables to registers. Or even do this in loop control for foreground routines