I've moved up from 16f877 to 18f452 and want/need to take advantage of all that ram in the 18f parts. I d/l and printed all of the data sheet. I know there is some 16 bit pointer registers, but I don't quite know what to do with them.

What are the ways to get to the 16 banks of ram?

I tried changing the BSR bits, but that didn't seem to work. I'm not using any includes so I don't know if that is not defined or what. It compiled without errors.

------
For a little bit more background:

- I'm using 256 variables on a 16f877. I'm have 16 sets of 16 variables. Push one of 16 buttons and see that set of 16 numbers on an LCD.

- I had this working using JAL (thanks Wouter), but was having a hard time wrapping my head around JAL and some of its limitations.

- I moved to PBP. Cool! This stuff rocks! Whipped out some code... smaller, easier to read than JAL, but PBP uses more ram so I could no longer have 256 variables. (Kinda cool though - I would push a button, see a new set of 16 and some of them would be counting. Gee, that must be my program loop variables taking the same spot as my data variables. Fun that I could watch my program variables change, BUT NOT WHAT I HAD IN MIND.)

- Getting 256 variable out of a 16f877 that only has 384 bytes of ram is kinda tight.

- Onward to the 18f452. Ah... 16*256 bytes of ram. Now, how do I get at them?

Thanks - Robert

http://www.bitwranglers.com/rshanks/seq_run1.jpg