Skip to content

Latest commit

 

History

History
70 lines (61 loc) · 2.67 KB

README.md

File metadata and controls

70 lines (61 loc) · 2.67 KB

font8x16

ASCII font bitmap array 8x16 in C

Demo

#include <stdio.h>

#define FONT8x16_IMPLEMENTATION
#include "font8x16.h"

void print_char_line(unsigned char line)
{
    for (int i = 0; i < 8; i++)
    {
        unsigned char mask = 0x80 >> i;
        if (line & mask)
            printf("@");
        else
            printf(".");
    }
}

void print_string(const char* str)
{
    for (int line = 0; line < 16; line++)
    {
        for (const char* ch = str; *ch != 0; ch++)
        {
            printf(" ");
            print_char_line(font8x16[*ch][line]);
        }
        printf("\n");
    }
}

int main(int argc, char* argv[])
{
    if (argc != 2)
    {
        printf("Usage: %s <text>\n", argv[0]);
        return 1;
    }

    print_string(argv[1]);
    return 0;
}
$ gcc main.c
$ ./a.out "Hello, World!"
 ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
 ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
 @@...@@. ........ ..@@@... ..@@@... ........ ........ ........ @@...@@. ........ ........ ..@@@... ...@@@.. ...@@...
 @@...@@. ........ ...@@... ...@@... ........ ........ ........ @@...@@. ........ ........ ...@@... ....@@.. ..@@@@..
 @@...@@. ........ ...@@... ...@@... ........ ........ ........ @@...@@. ........ ........ ...@@... ....@@.. ..@@@@..
 @@...@@. .@@@@@.. ...@@... ...@@... .@@@@@.. ........ ........ @@...@@. .@@@@@.. @@.@@@.. ...@@... ..@@@@.. ..@@@@..
 @@@@@@@. @@...@@. ...@@... ...@@... @@...@@. ........ ........ @@.@.@@. @@...@@. .@@@.@@. ...@@... .@@.@@.. ...@@...
 @@...@@. @@@@@@@. ...@@... ...@@... @@...@@. ........ ........ @@.@.@@. @@...@@. .@@..@@. ...@@... @@..@@.. ...@@...
 @@...@@. @@...... ...@@... ...@@... @@...@@. ........ ........ @@.@.@@. @@...@@. .@@..... ...@@... @@..@@.. ...@@...
 @@...@@. @@...... ...@@... ...@@... @@...@@. ...@@... ........ @@@@@@@. @@...@@. .@@..... ...@@... @@..@@.. ........
 @@...@@. @@...@@. ...@@... ...@@... @@...@@. ...@@... ........ @@@.@@@. @@...@@. .@@..... ...@@... @@..@@.. ...@@...
 @@...@@. .@@@@@.. ..@@@@.. ..@@@@.. .@@@@@.. ...@@... ........ .@@.@@.. .@@@@@.. @@@@.... ..@@@@.. .@@@.@@. ...@@...
 ........ ........ ........ ........ ........ ..@@.... ........ ........ ........ ........ ........ ........ ........
 ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
 ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
 ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........