Printing and understanding international chars

This is what I got so far and unluckily it isn't working. I'm trying to make it print the char '[ch915]'.

This is the function:

void ht1632_putchar_greek(int x, int y, char c)
{
  byte charIndex;

  if (c < 193 || c > 254)
    charIndex = 0;
  else
    charIndex = c - 33;

  for (byte row=0; row<8; row++) {
    byte rowDots = pgm_read_byte_near(&greek[charIndex][row]);
    for (byte col=0; col<6; col++) {
      if (rowDots & (1<<(5-col)))
        ht1632_plot(x+col, y+row, 1);
      else 
        ht1632_plot(x+col, y+row, 0);
      }
  }
}

This is the array (just the first 4 chars for now):

unsigned char PROGMEM greek[4][8] = {
  {
    0x00,    // ________   blank (ascii 32)
    0x00,    // ________
    0x00,    // ________
    0x00,    // ________
    0x00,    // ________
    0x00,    // ________
    0x00,    // ________
    0x00     // ________
  },
  {
    0x00,    // ________   A
    0x1C,    // ___XXX__
    0x22,    // __X___X_
    0x22,    // __X___X_
    0x3E,    // __XXXXX_
    0x22,    // __X___X_
    0x22,    // __X___X_
    0x00     // ________
  },
  {
    0x00,    // ________   B
    0x3C,    // __XXXX__
    0x22,    // __X___X_
    0x3C,    // __XXXX__
    0x22,    // __X___X_
    0x22,    // __X___X_
    0x3C,    // __XXXX__
    0x00     // ________
  },
  {
    0x00,    // ________
    0x3E,    // __XXXXX_
    0x20,    // __X_____
    0x20,    // __X_____
    0x20,    // __X_____
    0x20,    // __X_____
    0x20,    // __X_____
    0x00     // ________
  }
};

EDIT:
I call the function like this:

ht1632_putchar_greek(0, 0, '[ch915]');