Jameco Electronics 3000 User Manual

Page of 349
48
Rabbit 3000 Microprocessor
3.5.6  Computed Long Calls and Jumps
The instruction to set the XPC is privileged to so that a computed long call or jump can be 
made. This would be done by the following sequence.
LD xpc,a
JP (HL)
In this case, A has the new XPC, and HL has the new PC. This code should normally be 
executed in the root segment so as not to pull the memory out from under the JP (HL) 
instruction.
A call to a computed address can be performed by the following code.
; A=xpc, IY=address
   LD A,newxpc
   LD IY,newaddress
   LCALL DOCALL   ; call utility routine in the root
;
; The DOCALL routine
DOCALL:
   LD xpc,a 
 ; SET xpc
   JP (IY)     ; go to the routine