From: Nathael Pajani Date: Wed, 22 Jul 2015 01:04:23 +0000 (+0200) Subject: Add an 8x8 font with ascii characters only. X-Git-Url: http://git.techno-innov.fr/?a=commitdiff_plain;h=8fff51383fe97f215bfa2597d3b09ac799602e70;p=soft%2Flpc122x%2Fcore Add an 8x8 font with ascii characters only. --- diff --git a/include/lib/font.h b/include/lib/font.h new file mode 100644 index 0000000..3473f5e --- /dev/null +++ b/include/lib/font.h @@ -0,0 +1,38 @@ +/************************************************************************ + * lib/font.h + * + * Copyright (C) Lisa Milne 2014 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + * + ************************************************************************/ + +/* + * The font has been found on opengameart.org: + * http://opengameart.org/content/8x8-ascii-bitmap-font-with-c-source + */ + +#ifndef LIB_FONT_H +#define LIB_FONT_H + +/* + * The values in this array are a 8x8 bitmap font for ascii characters + * As memory is a very precious ressource on a micro-controller all chars + * before "space" (0x20) have been removed. + */ +#define NB_FONT_TILES 95 +extern uint8_t first_font_char; +extern uint64_t font[NB_FONT_TILES]; + +#endif /* LIB_FONT_H */ diff --git a/lib/font.c b/lib/font.c new file mode 100644 index 0000000..e73904d --- /dev/null +++ b/lib/font.c @@ -0,0 +1,132 @@ +/************************************************************************ + * lib/font.c + * + * Copyright (C) Lisa Milne 2014 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + * + ************************************************************************/ + +/* + * The font has been found on opengameart.org: + * http://opengameart.org/content/8x8-ascii-bitmap-font-with-c-source + */ + +#include +#include "lib/font.h" + +/* + * The values in this array are a 8x8 bitmap font for ascii characters + * As memory is a very precious ressource on a micro-controller all chars + * before "space" (0x20) have been removed. + */ +uint8_t first_font_char = 0x20; +uint64_t font[NB_FONT_TILES] = { + 0x0000000000000000, /* (space) */ /* 0x20 */ + 0x0808080800080000, /* ! */ + 0x2828000000000000, /* " */ + 0x00287C287C280000, /* # */ + 0x081E281C0A3C0800, /* $ */ + 0x6094681629060000, /* % */ + 0x1C20201926190000, /* & */ + 0x0808000000000000, /* ' */ + 0x0810202010080000, /* ( */ + 0x1008040408100000, /* ) */ + 0x2A1C3E1C2A000000, /* * */ + 0x0008083E08080000, /* + */ + 0x0000000000081000, /* , */ + 0x0000003C00000000, /* - */ + 0x0000000000080000, /* . */ + 0x0204081020400000, /* / */ + 0x1824424224180000, /* 0 */ /*x30 */ + 0x08180808081C0000, /* 1 */ + 0x3C420418207E0000, /* 2 */ + 0x3C420418423C0000, /* 3 */ + 0x081828487C080000, /* 4 */ + 0x7E407C02423C0000, /* 5 */ + 0x3C407C42423C0000, /* 6 */ + 0x7E04081020400000, /* 7 */ + 0x3C423C42423C0000, /* 8 */ + 0x3C42423E023C0000, /* 9 */ + 0x0000080000080000, /* : */ + 0x0000080000081000, /* ; */ + 0x0006186018060000, /* < */ + 0x00007E007E000000, /* = */ + 0x0060180618600000, /* > */ + 0x3844041800100000, /* ? */ + 0x003C449C945C201C, /* @ */ /* 0x40 */ + 0x1818243C42420000, /* A */ + 0x7844784444780000, /* B */ + 0x3844808044380000, /* C */ + 0x7844444444780000, /* D */ + 0x7C407840407C0000, /* E */ + 0x7C40784040400000, /* F */ + 0x3844809C44380000, /* G */ + 0x42427E4242420000, /* H */ + 0x3E080808083E0000, /* I */ + 0x1C04040444380000, /* J */ + 0x4448507048440000, /* K */ + 0x40404040407E0000, /* L */ + 0x4163554941410000, /* M */ + 0x4262524A46420000, /* N */ + 0x1C222222221C0000, /* O */ + 0x7844784040400000, /* P */ /* 0x50 */ + 0x1C222222221C0200, /* Q */ + 0x7844785048440000, /* R */ + 0x1C22100C221C0000, /* S */ + 0x7F08080808080000, /* T */ + 0x42424242423C0000, /* U */ + 0x8142422424180000, /* V */ + 0x4141495563410000, /* W */ + 0x4224181824420000, /* X */ + 0x4122140808080000, /* Y */ + 0x7E040810207E0000, /* Z */ + 0x3820202020380000, /* [ */ + 0x4020100804020000, /* \ */ + 0x3808080808380000, /* ] */ + 0x1028000000000000, /* ^ */ + 0x00000000007E0000, /* _ */ + 0x1008000000000000, /* ` */ /* 0x60 */ + 0x003C023E463A0000, /* a */ + 0x40407C42625C0000, /* b */ + 0x00001C20201C0000, /* c */ + 0x02023E42463A0000, /* d */ + 0x003C427E403C0000, /* e */ + 0x0018103810100000, /* f */ + 0x0000344C44340438, /* g */ + 0x2020382424240000, /* h */ + 0x0800080808080000, /* i */ + 0x0800180808080870, /* j */ + 0x20202428302C0000, /* k */ + 0x1010101010180000, /* l */ + 0x0000665A42420000, /* m */ + 0x00002E3222220000, /* n */ + 0x00003C42423C0000, /* o */ + 0x00005C62427C4040, /* p */ /* 0x70 */ + 0x00003A46423E0202, /* q */ + 0x00002C3220200000, /* r */ + 0x001C201804380000, /* s */ + 0x00103C1010180000, /* t */ + 0x00002222261A0000, /* u */ + 0x0000424224180000, /* v */ + 0x000081815A660000, /* w */ + 0x0000422418660000, /* x */ + 0x0000422214081060, /* y */ + 0x00003C08103C0000, /* z */ + 0x1C103030101C0000, /* { */ + 0x0808080808080800, /* | */ + 0x38080C0C08380000, /* } */ + 0x000000324C000000, /* ~ */ +}; +