/* ************************************************************************
 *
 *   monospaced fonts for numbers 1,2,3 based on ISO 8859-1, 
 *   with numbers as tiles,
 *   horizontally aligned, horizontal bit order flipped
 *
 *   (c) 2016-2020 by Markus Reschke
 *   Mod (c) 2021 by Feliciano
 *
 * ************************************************************************ */


/* ************************************************************************
 *   font data
 * ************************************************************************ */

#ifdef FONT_6X8_number_tiles_HF


/* source management */
#define FONT_SET                   /* font set included */

/* font size */
#define FONT_SIZE_X         6     /* width:  6 dots */
#define FONT_SIZE_Y         8     /* height: 8 dots */

/* font data format */
#define FONT_BYTES_N        8     /* 8 bytes per character */
#define FONT_BYTES_X        1     /* 1 bytes in x direction */
#define FONT_BYTES_Y        8     /* 8 bytes in y direction */


/*
 *  character bitmaps
 *  - format:
 *    - 8 bytes per character 
 *    - first byte: first horizontal line (top to down)
 *    - bit #0: left / bit #7: right (horizontally flipped)
 */
 
  const uint8_t FontData[] PROGMEM = {
  /* numbers 1,2,3 */
  0x37,0x33,0x37,0x37,0x37,0x37,0x23,0x3F,   /* inverted_color 0x21 1 */
  0x23,0x1D,0x1F,0x27,0x3B,0x3D,0x01,0x3F,   /* inverted_color 0x22 2 */
  0x23,0x1D,0x1F,0x23,0x1F,0x1D,0x23,0x3F,   /* inverted_color 0x23 3 */
};

/*
 *  font lookup table for ISO 8859-1
 *  - 8 bit ISO 8859-1 to custom font
 *  - ff: no bitmap available
 */

const uint8_t FontTable[] PROGMEM = {
  0x21,        /* 0x31 -> 1 */
  0x22,        /* 0x32 -> 2 */
  0x23,        /* 0x33 -> 3 */
};


#endif

#ifdef FONT_8X8_number_tiles_HF


/* source management */
#define FONT_SET                   /* font set included */

/* font size */
#define FONT_SIZE_X         8     /* width:  8 dots */
#define FONT_SIZE_Y         8     /* height: 8 dots */

/* font data format */
#define FONT_BYTES_N        8     /* 8 bytes per character */
#define FONT_BYTES_X        1     /* 1 bytes in x direction */
#define FONT_BYTES_Y        8     /* 8 bytes in y direction */


/*
 *  character bitmaps
 *  - format:
 *    - 8 bytes per character 
 *    - first byte: first horizontal line (top to down)
 *    - bit #0: left / bit #7: right (horizontally flipped)
 */
 
  const uint8_t FontData[] PROGMEM = {
  /* numbers 1,2,3 */
  0xF3,0xF1,0xF3,0xF3,0xF3,0xF3,0xE1,0xFF,   /* inverted_color 0x21 1 */
  0xC1,0x9C,0x9F,0xC7,0xF1,0xFC,0x80,0xFF,   /* inverted_color 0x22 2 */
  0xC1,0x9C,0x9F,0xE7,0x9F,0x9C,0xC1,0xFF,   /* inverted_color 0x23 3 */
};

/*
 *  font lookup table for ISO 8859-1
 *  - 8 bit ISO 8859-1 to custom font
 *  - ff: no bitmap available
 */

const uint8_t FontTable[] PROGMEM = {
  0x21,        /* 0x31 -> 1 */
  0x22,        /* 0x32 -> 2 */
  0x23,        /* 0x33 -> 3 */
};


#endif

#ifdef FONT_10X16_number_tiles_HF


/* source management */
#define FONT_SET                   /* font set included */

/* font size */
#define FONT_SIZE_X         10     /* width:  10 dots */
#define FONT_SIZE_Y         16     /* height: 16 dots */

/* font data format */
#define FONT_BYTES_N        32     /* 328 bytes per character */
#define FONT_BYTES_X         2     /* 2 bytes in x direction */
#define FONT_BYTES_Y        16     /* 16 bytes in y direction */


/*
 *  character bitmaps
 *  - format:
 *    - 32 bytes per character 
 *    - first two bytes: first horizontal line (top to down)
 *      first byte: left part, second byte: right part (6 bits unused)
 *    - bit #0: left / bit #7: right (horizontally flipped)
 */
 
 const uint8_t FontData[] PROGMEM = {
  /* numbers 1,2,3 */
  0xFF,0x03,0xEF,0x03,0xE1,0x03,0xEF,0x03,0xEF,0x03,0xEF,0x03,0xEF,0x03,0xEF,0x03,0xEF,0x03,0xEF,0x03,0xEF,0x03,0xEF,0x03,0x01,0x03,0xFF,0x03,0xFF,0x03,0xFF,0x03,   /* inverted_color 0x21 1 */
  0xFF,0x03,0xC1,0x03,0xBD,0x03,0xBF,0x03,0xBF,0x03,0xBF,0x03,0xDF,0x03,0xDF,0x03,0xEF,0x03,0xF7,0x03,0xFB,0x03,0xFD,0x03,0x81,0x03,0xFF,0x03,0xFF,0x03,0xFF,0x03,   /* inverted_color 0x22 2 */
  0xFF,0x03,0xC3,0x03,0xBF,0x03,0xBF,0x03,0xBF,0x03,0xBF,0x03,0xC7,0x03,0xBF,0x03,0xBF,0x03,0xBF,0x03,0xBF,0x03,0xBF,0x03,0xC3,0x03,0xFF,0x03,0xFF,0x03,0xFF,0x03,   /* inverted_color 0x23 3 */
};

/*
 *  font lookup table for ISO 8859-1
 *  - 8 bit ISO 8859-1 to custom font
 *  - ff: no bitmap available
 */

const uint8_t FontTable[] PROGMEM = {
  0x21,        /* 0x31 -> 1 */
  0x22,        /* 0x32 -> 2 */
  0x23,        /* 0x33 -> 3 */
};


#endif

#ifdef FONT_12X16_number_tiles_HF


/* source management */
#define FONT_SET                   /* font set included */

/* font size */
#define FONT_SIZE_X         12     /* width:  12 dots */
#define FONT_SIZE_Y         16     /* height: 16 dots */

/* font data format */
#define FONT_BYTES_N        32     /* 32 bytes per character */
#define FONT_BYTES_X         2     /* 2 bytes in x direction */
#define FONT_BYTES_Y        16     /* 16 bytes in y direction */


/*
 *  character bitmaps
 *  - format:
 *    - 32 bytes per character 
 *    - first two bytes: first horizontal line (top to down)
 *      first byte: left part, second byte: right part (4 bits unused)
 *    - bit #0: left / bit #7: right (horizontally flipped)
 */

const uint8_t FontData[] PROGMEM = {
  /* numbers 1,2,3 */
  0x3F,0x0F,0x1F,0x0F,0x07,0x0F,0x07,0x0F,0x3F,0x0F,0x3F,0x0F,0x3F,0x0F,0x3F,0x0F,0x3F,0x0F,0x3F,0x0F,0x3F,0x0F,0x3F,0x0F,0x07,0x08,0x07,0x08,0xFF,0x0F,0xFF,0x0F,   /* inverted_color 0x21 1 */
  0x07,0x0C,0x03,0x08,0xF1,0x01,0xF9,0x03,0xF9,0x01,0xFF,0x08,0x7F,0x0C,0x3F,0x0E,0x1F,0x0F,0x8F,0x0F,0xC7,0x0F,0xE3,0x0F,0x01,0x00,0x01,0x00,0xFF,0x0F,0xFF,0x0F,   /* inverted_color 0x22 2 */
  0x07,0x0C,0x03,0x08,0xF1,0x01,0xF9,0x03,0xFF,0x03,0xFF,0x01,0x0F,0x08,0x0F,0x0C,0xFF,0x09,0xFF,0x03,0xF9,0x03,0xF1,0x01,0x03,0x08,0x07,0x0C,0xFF,0x0F,0xFF,0x0F,   /* inverted_color 0x23 3 */
};


/*
 *  font lookup table for ISO 8859-1
 *  - 8 bit ISO 8859-1 to custom font
 *  - ff: no bitmap available
 */

const uint8_t FontTable[] PROGMEM = {
  0x21,        /* 0x31 -> 1 */
  0x22,        /* 0x32 -> 2 */
  0x23,        /* 0x33 -> 3 */
};


#endif

/* ************************************************************************
 *   EOF
 * ************************************************************************ */
