boredos_mirror/src/kernel/wm/font.h
2026-03-16 00:27:27 +01:00

208 lines
6.8 KiB
C

// Copyright (c) 2023-2026 Chris (boreddevnl)
// This software is released under the GNU General Public License v3.0. See LICENSE file for details.
// This header needs to maintain in any file it is present in, as per the GPL license terms.
#ifndef FONT_H
#define FONT_H
#include <stdint.h>
// Minimal 8x8 font for ASCII 32-127
static const uint8_t font8x8_basic[128][8] = {
// 0-31 Control chars (empty)
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
// 32 Space
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
// 33 !
{0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00},
// 34 "
{0x66, 0x66, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00},
// 35 #
{0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00},
// 36 $
{0x18, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x18, 0x00},
// 37 %
{0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00},
// 38 &
{0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00},
// 39 '
{0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00},
// 40 (
{0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00},
// 41 )
{0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00},
// 42 *
{0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00},
// 43 +
{0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00},
// 44 ,
{0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30},
// 45 -
{0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00},
// 46 .
{0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00},
// 47 /
{0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x00},
// 48 0
{0x3C, 0x66, 0x6E, 0x76, 0x66, 0x66, 0x3C, 0x00},
// 49 1
{0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7E, 0x00},
// 50 2
{0x3C, 0x66, 0x06, 0x0C, 0x30, 0x60, 0x7E, 0x00},
// 51 3
{0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C, 0x00},
// 52 4
{0x06, 0x0E, 0x1E, 0x36, 0x66, 0x7F, 0x06, 0x00},
// 53 5
{0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C, 0x00},
// 54 6
{0x3C, 0x66, 0x60, 0x7C, 0x66, 0x66, 0x3C, 0x00},
// 55 7
{0x7E, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00},
// 56 8
{0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00},
// 57 9
{0x3C, 0x66, 0x66, 0x3E, 0x06, 0x66, 0x3C, 0x00},
// 58 :
{0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00},
// 59 ;
{0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30},
// 60 <
{0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00},
// 61 =
{0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00},
// 62 >
{0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00},
// 63 ?
{0x3C, 0x66, 0x06, 0x0C, 0x18, 0x00, 0x18, 0x00},
// 64 @
{0x3C, 0x66, 0x6E, 0x6A, 0x68, 0x60, 0x3C, 0x00},
// 65 A
{0x18, 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00},
// 66 B
{0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00},
// 67 C
{0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x00},
// 68 D
{0x78, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x00},
// 69 E
{0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x7E, 0x00},
// 70 F
{0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x00},
// 71 G
{0x3C, 0x66, 0x60, 0x6E, 0x66, 0x66, 0x3C, 0x00},
// 72 H
{0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00},
// 73 I
{0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00},
// 74 J
{0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00},
// 75 K
{0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66, 0x00},
// 76 L
{0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00},
// 77 M
{0x63, 0x77, 0x7F, 0x6B, 0x63, 0x63, 0x63, 0x00},
// 78 N
{0x66, 0x76, 0x7E, 0x7E, 0x6E, 0x66, 0x66, 0x00},
// 79 O
{0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00},
// 80 P
{0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x00},
// 81 Q
{0x3C, 0x66, 0x66, 0x66, 0x6A, 0x3C, 0x0E, 0x00},
// 82 R
{0x7C, 0x66, 0x66, 0x7C, 0x78, 0x6C, 0x66, 0x00},
// 83 S
{0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C, 0x00},
// 84 T
{0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00},
// 85 U
{0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00},
// 86 V
{0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00},
// 87 W
{0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00},
// 88 X
{0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00},
// 89 Y
{0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00},
// 90 Z
{0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E, 0x00},
// 91 [
{0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00},
// 92 backslash
{0x00, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00},
// 93 ]
{0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00},
// 94 ^
{0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00},
// 95 _
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF},
// 96 `
{0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00},
// 97 a
{0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00},
// 98 b
{0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00},
// 99 c
{0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C, 0x00},
// 100 d
{0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00},
// 101 e
{0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00},
// 102 f
{0x0C, 0x18, 0x18, 0x3E, 0x18, 0x18, 0x18, 0x00},
// 103 g
{0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x3C},
// 104 h
{0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00},
// 105 i
{0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00},
// 106 j
{0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3C, 0x00},
// 107 k
{0x60, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0x00},
// 108 l
{0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00},
// 109 m
{0x00, 0x00, 0x76, 0x7F, 0x6B, 0x6B, 0x63, 0x00},
// 110 n
{0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00},
// 111 o
{0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00},
// 112 p
{0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60},
// 113 q
{0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06},
// 114 r
{0x00, 0x00, 0x5C, 0x62, 0x60, 0x60, 0x60, 0x00},
// 115 s
{0x00, 0x00, 0x3C, 0x60, 0x3C, 0x06, 0x3C, 0x00},
// 116 t
{0x10, 0x10, 0x3E, 0x10, 0x10, 0x10, 0x0C, 0x00},
// 117 u
{0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00},
// 118 v
{0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00},
// 119 w
{0x00, 0x00, 0x63, 0x6B, 0x7F, 0x3E, 0x36, 0x00},
// 120 x
{0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00},
// 121 y
{0x00, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x06, 0x3C},
// 122 z
{0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00},
// 123 {
{0x0E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0E, 0x00},
// 124 |
{0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00},
// 125 }
{0x70, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x70, 0x00},
// 126 ~
{0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
// 127 DEL
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
};
#endif