Alan B. Pearce wrote: > Grief, you guys seem to be making a rod for your own back. I shudder to > think of the possibilities for having the code go into hyperspace because > you have managed to cross a page boundary. Hi Alan, firstly, the (2kword) page boundary doesn't make any more difference than with a normal goto. It's not a computed goto like a table, just that the preprocessor and assembler do the work for you instead of forcing you to think up a goto tag name and use it. :o) Second, I didn't say that I do it that way all the time, in fact it is just for those times when it is *better* because in assembler there are many times in logic processing code where you test a bit, then perform an action. The standard asm only lets you perform a one-instruction action. ie: btfsc input,2 ; test bit blah ; the one-instruction action Many easy tasks require a superfluous goto like this: btfss input,2 ; test input goto waste_of_a_tag_147 ; movlw b'11001100' ; input == hi, so do these 3 movwf lastb ; movwf PORTB ; waste_of_a_tag_147 I think that goto tags are much better suited to defining "blocks" of code that perform specific functions, instead of just a mechanism to enable simple logic decisions. In some cases the code can be more readable when superfluous goto tags are removed for SOME basic decision making tasks, and reserved for pieces of code that mean something. More like: btfss input,2 ; test input skp3 ; movlw b'11001100' ; input == hi, so do these 3 movwf lastb ; movwf PORTB ; I don't do this a lot, but there are some sections of my code that cleaned up really well using skp2 and skp3. -Roman -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads