From 55dc0b2f870d6892bb91177c32d7397fc6fc9050 Mon Sep 17 00:00:00 2001 From: Daniel Hepper Date: Sun, 12 Feb 2012 12:09:23 +0100 Subject: [PATCH] Added a simple renderer --- README | 14 ++++++++++++++ render.c | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 render.c diff --git a/README b/README index cc93462..c50799c 100644 --- a/README +++ b/README @@ -10,6 +10,20 @@ font8x8_latin.h contains unicode points U+0000 - U+00FF Author: Daniel Hepper License: Public Domain +Renderer +======== +To visualize the font, a simple renderer is included in render.c + + $ gcc render.c -o render + $ ./render 65 + XX + XXXX + XX XX + XX XX + XXXXXX + XX XX + XX XX + Credits ======= These header files are directly derived from an assembler file fetched from: diff --git a/render.c b/render.c new file mode 100644 index 0000000..da4d004 --- /dev/null +++ b/render.c @@ -0,0 +1,38 @@ +#include + +#include "font8x8_basic.h" + +void usage(char *exec) { + printf("Usage: %s \n", exec); + printf(" Decimal character code between 0 and 127\n"); +} + +void render(char *bitmap) { + int x,y; + int set; + int mask; + for (x=0; x < 8; x++) { + for (y=0; y < 8; y++) { + set = bitmap[x] & 1 << y; + printf("%c", set ? 'X' : ' '); + } + printf("\n"); + } +} + +int main(int argc, char **argv) { + int ord; + if (argc != 2) { + usage(argv[0]); + return 1; + } + ord = atoi(argv[1]); + if (ord > 127 || ord < 0) { + usage(argv[0]); + return 2; + } + char *bitmap = font8x8_basic[ord]; + + render(bitmap); + return 0; +}