Bob Ammerman [rammerman at prodigy.net] of RAm Systems says
The PIC18Cxx2 chips contain quite a few nice new features. One of the neatest is programmable access to the stack. This feature allows many powerful tricks.Notes:
- this code has _NOT_ been tested!
- all multi-byte values are little-endian
- I assume the code space never exceeds 16 bits worth (which it never will on the 242, 252, 442 or 452 chips).
Unlimited computed goto (or table lookup) Allows tables aligned on any boundary, of any size that will fit in memory. CBLOCK GOTOARG:2 ; Table index ENDC mov?? GOTOARG ; setup argument rcall comp_goto retlw xxx retlw xxx . . retlw xxx comp_goto: movf GOTOARG,W,A ; get lsbits of argument addwf TOSL,F,A movf GOTOARG+1,W,A ; get msbits of argument addwfc TOSH,F,A return Note: Alternatively 'comp_goto' could itself compute the value to be added to TOSx instead of setting it up before hand. Note: GOTOARG should be even!