> When I started programming in the 80's, the let statement seemed > pretty stupid... commodore code... copy the value of the variable > to a register, copy the value you want to set into another register, > sys a kernel routine to copy the value to it, then sys another routine=20 One the most useful books I bought when programming the C64 was one that I still refer to from time to time. "What's Really Inside The Commodore 64" by Milton Bathurst, 1983, is a commented disassembly of the machine language of the operating system (I also have a companion book, The Anatomy Of The 1541 Disk Drive, also a commented disassembly). A really cool thing about the C64 was that it had shadow RAM at the same address as the ROMs, so you could make a copy of the O/S in RAM and edit it. This included devising new instructions/ tokens for BASIC and writing your own ML routines to process them, or alter BASIC or KERNEL functions. I had a lot of fun with it, as well as valuable learning as to how ML works. They packed a lot into 2 x 8k and to see it explained line by line was just great FYI, on the C64 LET is detected and processed as a token but with the same routine that simply processes the variable following as if there was no LET $A7F1 BCC $A804 ;perform LET .... $A804 JMP $A9A5 ;execute command LET .... $A9A5 JSR $B08B ;gather name and get pointer to variable etc Ahhh, that takes me back Joe --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .