"I'm redesigning the dumbest instrument ever made..."
LOL! - At times I have had that thought! ;-)
"Saving the code was to a cassette tape for those young enough to remember. If you needed more RAM you would piggy back memory chips, solder one on top of another. I really thought my 2 MHz chip was fast! " - RST
Yeah Chris - those were the days! There are still a few of us left who think back on those days with some nostalgia.
As for : "To avoid latency in theremin response, I can imagine a revisit to machine language?" :
IMO, the latency problems one can get with digital theremin implementation are not primarily due to processor operations or bloated code, they are down to physics - There are things which can only be speeded up by having a faster clock (resolution when counting the interval between pulses, for example, is entirely down to the speed of the clock incrementing / decrementing the interval timer.. A 48MHz clock will give 1/4 the resolution of a 200MHz clock - and a 48MHz clock is only about 1/2 what one needs to start to get to acceptable resolution).. Back in the old days, 8MHz was fast, these days we do have fast enough hardware.
Where Assembler is, IMO, vital, is for handeling interrupts - One wants to get in and out of the interrupt extremely quickly, and take great care about priorotizing the interrupts.
"I never learned how to easily pass a variable between Assembly to C or Basic other than a push/pop to the stack.."
I found that the above becomes simple (particularly with C) when one understands how the compiler works.. The best compilers will output a listing which shows the generated assembly code - when one has this, you can easily see what the compiler is doing - and more importantly - see the stupid things it is doing! - One can then edit / modify the compiler generated .asm to speed it up, and get the best of all worlds.
"but apparently you don't get points for being a smarty-pants .." GordonC
LOL ! - Been there, and it doesnt just apply to college assignments - I was given a mind-numbingly boring job (my first programming job, in fact) - The company had about 10 products which all used a 6303 OPT MCU, and this part was discontinued - They opted for the H8 family of MCU's to replace it - my job was to translate all the asm code to move the firmware to the new MCUs..
I had just acquired a home pc (Amstrad 1512) and was teaching myself C - I suggested writing a program to automate the conversion, but was forbidden - my superior really didnt like me and couldnt get rid of me - he thought 6 months of translating asm would cause me to resign!
I wrote the conversion routine (took me 2 weeks at home), and fed it with the code - When I presented translated code for all 10 projects on the deadline date for the first project, I expected promotion.. Did I get it? Nah!
Fred.