On 12 May 2014 23:18, IVP wrote: > > 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 > > 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. I found something vaguely the opposite with Apple II. I built a communication aid for a very severely handicapped user, which linked two Apple II's - one running the user's program and another running the communicator. An interface card in each provided a bridge between the two systems. As much as possible was in Apple BASIC but I wrote machine code programs (sans assembler) for the 6502 to carry out some functions. I found that the BASIC program was being corrupted by my machine code - AFAIR some constants were being altered so that if you saved the program after running it did different things than when first loaded. This does not feel QUITE right - a bit more thinking (or somebody else's comment) may refine: .... Gets worse as I try to recall - I'll leave as I recall it and it may clarify as it knocks around the back of my brain: So ... The "problem" was that the system used program RAM memory as variable memory and would alter program values. The solution was to carry out an assignment that forced a new value to be used prior to calling the machine code programs so that a memory area outside occupied program memory was then used. [Yes. Doesn't quite make sense. Somebody else will have met this]. Russell --=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 .