It sounds like you have loaded an uninitialized RAM location into A before executing your jump. A common problem is to typo a code label name which causes the assembler to give you an automatically allocated RAM address. Example:
(LOOP)
<more code here>
@LOP
0;JMP
@LOP gets assigned a RAM address (for instance, 18) so instead of jumping to (LOOP) the program jumps to address 18 in your program and bad things happen...
If you can't find the error, you may email me your Rect.asm and I'll take a look at it when I get a chance later this evening. Please comment your code so that I know how you intend it to work.
--Mark