"...OK - did I miss something here.. How the hell did this topic get from discussing telescope drives to discussing the merrits of death row ???

I gather the original poster gave up in the end and purchased a commercial driver. Maybe because the topic went way off topic, maybe as purchasing a ready made alternative to developing his own was the easy option...."


No, I'm actually just waiting here for the off-topic discussion to die down. I went and purchased a commercial microstepping chip to use instead of the L293D, but I still expect to drive it using a PIC. In fact, I have some more problems now, because I thought PIC assembler was fairly simple, and it turns out not to be!

I am confused by the memory allocation of variables. As far as I can see, a PIC .ASM file comprises a set of memory declarations followed by some commands. Variables are defined by naming them and giving their locations, thus:

VAR1 EQU H'10' ;defines the location H10 as VAR1
VAR2 EQU H'22' ;defines the location H22 as VAR2

and then you can load them:

MOVLW D'5'
MOVWF VAR1 ;puts 5 in VAR1 (location H10)
.
.
MOVLW VAR1 ;puts 5 back in the W Register

and generally play with them. But when I try to alter the program I have, it complains that some of the variables I create are in 'Restricted Memory'. I can't find any way to work out what is legal memory and what isn't. I have tried putting variable in random places until the error goes away, and then I hit the next problem, which seems to be that other processes also write to the memory locations I am using, so every so often my counts jump up by 20 or so. There are several simple tutorials on the web for blinking LEDs, but none seem to cover this sort of problem...