mirror of
https://github.com/JannisHeydemann/BoredOS.git
synced 2026-05-30 02:16:58 +00:00
Initial commit
This commit is contained in:
206
src/kernel/font.h
Normal file
206
src/kernel/font.h
Normal file
@@ -0,0 +1,206 @@
|
||||
#ifndef FONT_H
|
||||
#define FONT_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// Minimal 8x8 font for ASCII 32-127
|
||||
// Derived from standard VGA font
|
||||
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, 0x3C, 0x3C, 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
|
||||
Reference in New Issue
Block a user