Pointer confusion is hard to overcome...

Oh John i am so impressed ! those braces !! i get to it but not of the top of my head.
I would actually just use a single keymap, more simple

  if (pg>1) {
    key+=15;
   }
char c=keymap[key]