summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenji Dial <benji6283@gmail.com>2021-02-17 16:35:02 -0500
committerBenji Dial <benji6283@gmail.com>2021-02-17 16:35:02 -0500
commit3a3602861226e995d95a8898668cd559c3ca1cf6 (patch)
tree0d5bc0494297a12e9ccb76b31cb365c843216735
parent49d76d30a55707e2bf95fd9ba03296489fac8d1d (diff)
downloadportland-os-3a3602861226e995d95a8898668cd559c3ca1cf6.tar.gz
quick bitmap font format, borrowing new default font from X
-rw-r--r--attribs.txt4
-rw-r--r--doc/pbf.txt18
-rw-r--r--fs-skel/attribs.txt3
-rw-r--r--fs-skel/fonts/berry.bdf3286
-rw-r--r--fs-skel/fonts/fixed-10.pbfbin0 -> 2812 bytes
-rw-r--r--makefile9
-rw-r--r--src/kernel/idt.c3
-rw-r--r--src/user/libfont/bdf.c15
-rw-r--r--src/user/libfont/bdf.h5
-rw-r--r--src/user/libfont/fonts.c21
-rw-r--r--src/user/libfont/pbf.c43
-rw-r--r--src/user/libfont/pbf.h11
-rw-r--r--src/user/popups/info.c2
-rw-r--r--src/user/terminal/main.c2
-rw-r--r--tools/pbf-gen.rb66
15 files changed, 168 insertions, 3320 deletions
diff --git a/attribs.txt b/attribs.txt
new file mode 100644
index 0000000..83609f0
--- /dev/null
+++ b/attribs.txt
@@ -0,0 +1,4 @@
+fs-skel/fonts/fixed-10.pbf:
+ "-misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1"
+ From the X Window System's "misc fixed" set.
+ Public Domain. \ No newline at end of file
diff --git a/doc/pbf.txt b/doc/pbf.txt
new file mode 100644
index 0000000..f42474c
--- /dev/null
+++ b/doc/pbf.txt
@@ -0,0 +1,18 @@
+Portland Bitmap Font format
+
+This format is intended as a quickly readable font format.
+
+Header:
+ byte: character width
+ byte: character height
+ byte: horizontal padding
+ byte: vertical padding
+ dword: offset into file of default character bitmap
+
+For each character (255 of them, 0x01 to 0xff):
+ dword: offset into bitmap data area of character bitmap,
+ or 0xffffffff if the default should be used.
+
+Bitmap data area:
+ bitmaps are from left to right, then from top to bottom.
+ the least significant bit of a byte is the "first" one. \ No newline at end of file
diff --git a/fs-skel/attribs.txt b/fs-skel/attribs.txt
deleted file mode 100644
index 67e3dc1..0000000
--- a/fs-skel/attribs.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-fonts/berry.bdf:
-Modified by me from cherry, by camille, which is under BSD Zero.
-Cherry is available at <https://github.com/turquoise-hexagon/cherry>. \ No newline at end of file
diff --git a/fs-skel/fonts/berry.bdf b/fs-skel/fonts/berry.bdf
deleted file mode 100644
index 4e19453..0000000
--- a/fs-skel/fonts/berry.bdf
+++ /dev/null
@@ -1,3286 +0,0 @@
-STARTFONT 2.1
-FONT -benji-berry-Medium-R-Normal--10-100-75-75-C-100-ISO10646-1
-SIZE 10 75 75
-FONTBOUNDINGBOX 6 10 0 -2
-STARTPROPERTIES 14
-POINT_SIZE 100
-PIXEL_SIZE 10
-RESOLUTION_X 75
-RESOLUTION_Y 75
-AVERAGE_WIDTH 100
-SPACING "C"
-CHARSET_ENCODING "1"
-CHARSET_REGISTRY "ISO10646"
-FOUNDRY "benji"
-FAMILY_NAME "berry"
-FONT_DESCENT 2
-FONT_ASCENT 8
-_GBDFED_INFO "Edited with gbdfed 1.6."
-COPYRIGHT "Public Domain. Based on cherry by camille."
-ENDPROPERTIES
-CHARS 192
-STARTCHAR UNKNOWN
-ENCODING 0
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-48
-10
-20
-00
-20
-00
-FC
-ENDCHAR
-STARTCHAR SPACE
-ENCODING 32
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR EXCLAMATION MARK
-ENCODING 33
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-10
-10
-10
-00
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR QUOTATION MARK
-ENCODING 34
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-28
-28
-28
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR NUMBER SIGN
-ENCODING 35
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-28
-28
-7C
-28
-7C
-28
-28
-00
-00
-ENDCHAR
-STARTCHAR DOLLAR SIGN
-ENCODING 36
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-38
-54
-30
-18
-54
-38
-10
-00
-ENDCHAR
-STARTCHAR PERCENT SIGN
-ENCODING 37
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-24
-54
-28
-10
-28
-54
-48
-00
-00
-ENDCHAR
-STARTCHAR AMPERSAND
-ENCODING 38
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-20
-50
-50
-20
-54
-48
-34
-00
-00
-ENDCHAR
-STARTCHAR APOSTROPHE
-ENCODING 39
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-10
-10
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR LEFT PARENTHESIS
-ENCODING 40
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-18
-20
-20
-20
-20
-20
-20
-18
-00
-ENDCHAR
-STARTCHAR RIGHT PARENTHESIS
-ENCODING 41
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-60
-10
-10
-10
-10
-10
-10
-60
-00
-ENDCHAR
-STARTCHAR ASTERISK
-ENCODING 42
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-28
-10
-7C
-10
-28
-00
-00
-ENDCHAR
-STARTCHAR PLUS SIGN
-ENCODING 43
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-10
-10
-7C
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR COMMA
-ENCODING 44
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-00
-10
-10
-20
-00
-ENDCHAR
-STARTCHAR HYPHEN-MINUS
-ENCODING 45
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-78
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR FULL STOP
-ENCODING 46
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-00
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR SOLIDUS
-ENCODING 47
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-08
-08
-10
-10
-20
-20
-40
-40
-00
-ENDCHAR
-STARTCHAR DIGIT ZERO
-ENCODING 48
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-58
-68
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR DIGIT ONE
-ENCODING 49
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-30
-50
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR DIGIT TWO
-ENCODING 50
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-48
-10
-20
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR DIGIT THREE
-ENCODING 51
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-70
-08
-08
-30
-08
-08
-70
-00
-00
-ENDCHAR
-STARTCHAR DIGIT FOUR
-ENCODING 52
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-30
-30
-50
-78
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR DIGIT FIVE
-ENCODING 53
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-78
-40
-40
-70
-08
-08
-70
-00
-00
-ENDCHAR
-STARTCHAR DIGIT SIX
-ENCODING 54
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-40
-40
-70
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR DIGIT SEVEN
-ENCODING 55
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-78
-08
-10
-10
-20
-20
-20
-00
-00
-ENDCHAR
-STARTCHAR DIGIT EIGHT
-ENCODING 56
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-48
-30
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR DIGIT NINE
-ENCODING 57
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-48
-38
-08
-08
-30
-00
-00
-ENDCHAR
-STARTCHAR COLON
-ENCODING 58
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-10
-10
-00
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR SEMICOLON
-ENCODING 59
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-10
-10
-00
-10
-10
-20
-00
-ENDCHAR
-STARTCHAR LESS-THAN SIGN
-ENCODING 60
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-08
-10
-20
-10
-08
-00
-00
-ENDCHAR
-STARTCHAR EQUALS SIGN
-ENCODING 61
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-78
-00
-78
-00
-00
-00
-ENDCHAR
-STARTCHAR GREATER-THAN SIGN
-ENCODING 62
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-40
-20
-10
-20
-40
-00
-00
-ENDCHAR
-STARTCHAR QUESTION MARK
-ENCODING 63
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-48
-10
-20
-00
-20
-00
-00
-ENDCHAR
-STARTCHAR COMMERCIAL AT
-ENCODING 64
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-38
-44
-5C
-54
-4C
-40
-3C
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER A
-ENCODING 65
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-30
-48
-48
-78
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER B
-ENCODING 66
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-70
-48
-48
-70
-48
-48
-70
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER C
-ENCODING 67
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-40
-40
-40
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER D
-ENCODING 68
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-70
-48
-48
-48
-48
-48
-70
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER E
-ENCODING 69
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-78
-40
-40
-70
-40
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER F
-ENCODING 70
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-78
-40
-40
-70
-40
-40
-40
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER G
-ENCODING 71
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-40
-58
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER H
-ENCODING 72
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-48
-48
-78
-48
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER I
-ENCODING 73
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-38
-10
-10
-10
-10
-10
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER J
-ENCODING 74
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-38
-08
-08
-08
-08
-08
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER K
-ENCODING 75
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-48
-50
-70
-50
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER L
-ENCODING 76
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-40
-40
-40
-40
-40
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER M
-ENCODING 77
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-78
-48
-48
-48
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER N
-ENCODING 78
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-68
-68
-58
-58
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER O
-ENCODING 79
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-48
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER P
-ENCODING 80
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-70
-48
-48
-70
-40
-40
-40
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER Q
-ENCODING 81
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-48
-48
-48
-48
-30
-18
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER R
-ENCODING 82
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-70
-48
-48
-70
-48
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER S
-ENCODING 83
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-40
-30
-08
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER T
-ENCODING 84
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-7C
-10
-10
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER U
-ENCODING 85
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-48
-48
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER V
-ENCODING 86
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-48
-48
-48
-48
-30
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER W
-ENCODING 87
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-48
-48
-48
-48
-78
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER X
-ENCODING 88
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-48
-48
-30
-48
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER Y
-ENCODING 89
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-44
-44
-28
-28
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER Z
-ENCODING 90
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-78
-08
-10
-20
-20
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR LEFT SQUARE BRACKET
-ENCODING 91
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-38
-20
-20
-20
-20
-20
-20
-38
-00
-ENDCHAR
-STARTCHAR REVERSE SOLIDUS
-ENCODING 92
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-40
-40
-20
-20
-10
-10
-08
-08
-00
-ENDCHAR
-STARTCHAR RIGHT SQUARE BRACKET
-ENCODING 93
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-70
-10
-10
-10
-10
-10
-10
-70
-00
-ENDCHAR
-STARTCHAR CIRCUMFLEX ACCENT
-ENCODING 94
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-30
-48
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR LOW LINE
-ENCODING 95
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-00
-00
-78
-00
-00
-ENDCHAR
-STARTCHAR GRAVE ACCENT
-ENCODING 96
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-20
-10
-08
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER A
-ENCODING 97
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-38
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER B
-ENCODING 98
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-40
-40
-70
-48
-48
-48
-70
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER C
-ENCODING 99
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-30
-48
-40
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER D
-ENCODING 100
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-08
-08
-38
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER E
-ENCODING 101
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-30
-48
-78
-40
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER F
-ENCODING 102
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-18
-20
-78
-20
-20
-20
-20
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER G
-ENCODING 103
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-38
-48
-48
-48
-38
-08
-30
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER H
-ENCODING 104
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-40
-40
-70
-48
-48
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER I
-ENCODING 105
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-00
-30
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER J
-ENCODING 106
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-10
-00
-30
-10
-10
-10
-10
-10
-60
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER K
-ENCODING 107
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-40
-40
-48
-50
-70
-50
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER L
-ENCODING 108
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-10
-10
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER M
-ENCODING 109
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-48
-78
-48
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER N
-ENCODING 110
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-70
-48
-48
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER O
-ENCODING 111
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-30
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER P
-ENCODING 112
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-70
-48
-48
-48
-70
-40
-40
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER Q
-ENCODING 113
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-38
-48
-48
-48
-38
-08
-08
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER R
-ENCODING 114
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-58
-60
-40
-40
-40
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER S
-ENCODING 115
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-38
-40
-30
-08
-70
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER T
-ENCODING 116
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-20
-20
-78
-20
-20
-20
-18
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER U
-ENCODING 117
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-48
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER V
-ENCODING 118
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-48
-48
-48
-30
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER W
-ENCODING 119
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-48
-48
-48
-78
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER X
-ENCODING 120
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-48
-48
-30
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER Y
-ENCODING 121
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-48
-48
-48
-48
-38
-08
-30
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER Z
-ENCODING 122
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-78
-10
-20
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR LEFT CURLY BRACKET
-ENCODING 123
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-18
-20
-20
-C0
-C0
-20
-20
-18
-00
-ENDCHAR
-STARTCHAR VERTICAL LINE
-ENCODING 124
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-10
-10
-10
-10
-10
-10
-10
-00
-ENDCHAR
-STARTCHAR RIGHT CURLY BRACKET
-ENCODING 125
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-60
-10
-10
-0C
-0C
-10
-10
-60
-00
-ENDCHAR
-STARTCHAR TILDE
-ENCODING 126
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-20
-54
-08
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR NO-BREAK SPACE
-ENCODING 160
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-00
-48
-78
-00
-00
-ENDCHAR
-STARTCHAR INVERTED EXCLAMATION MARK
-ENCODING 161
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-10
-00
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR CENT SIGN
-ENCODING 162
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-10
-38
-50
-50
-50
-38
-10
-00
-ENDCHAR
-STARTCHAR POUND SIGN
-ENCODING 163
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-18
-24
-20
-70
-20
-24
-7C
-00
-00
-ENDCHAR
-STARTCHAR CURRENCY SIGN
-ENCODING 164
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-44
-38
-28
-38
-44
-00
-00
-ENDCHAR
-STARTCHAR YEN SIGN
-ENCODING 165
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-44
-44
-28
-7C
-10
-7C
-10
-00
-00
-ENDCHAR
-STARTCHAR BROKEN BAR
-ENCODING 166
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-10
-10
-00
-00
-10
-10
-10
-00
-ENDCHAR
-STARTCHAR SECTION SIGN
-ENCODING 167
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-60
-50
-48
-28
-18
-48
-30
-ENDCHAR
-STARTCHAR DIAERESIS
-ENCODING 168
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-28
-00
-00
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR COPYRIGHT SIGN
-ENCODING 169
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-78
-84
-B4
-A4
-B4
-84
-78
-00
-00
-ENDCHAR
-STARTCHAR FEMININE ORDINAL INDICATOR
-ENCODING 170
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-38
-48
-48
-38
-00
-78
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-ENCODING 171
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-24
-48
-48
-24
-00
-00
-00
-ENDCHAR
-STARTCHAR NOT SIGN
-ENCODING 172
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-78
-08
-08
-00
-00
-ENDCHAR
-STARTCHAR SOFT HYPHEN
-ENCODING 173
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-38
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR REGISTERED SIGN
-ENCODING 174
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-78
-84
-B4
-B4
-AC
-84
-78
-00
-00
-ENDCHAR
-STARTCHAR MACRON
-ENCODING 175
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-78
-00
-00
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR DEGREE SIGN
-ENCODING 176
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-48
-30
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR PLUS-MINUS SIGN
-ENCODING 177
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-10
-10
-7C
-10
-10
-7C
-00
-00
-ENDCHAR
-STARTCHAR SUPERSCRIPT TWO
-ENCODING 178
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-10
-20
-78
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR SUPERSCRIPT THREE
-ENCODING 179
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-70
-08
-30
-08
-70
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR ACUTE ACCENT
-ENCODING 180
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-00
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR MICRO SIGN
-ENCODING 181
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-48
-48
-48
-48
-78
-44
-40
-ENDCHAR
-STARTCHAR PILCROW SIGN
-ENCODING 182
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-3C
-74
-74
-34
-14
-14
-14
-00
-00
-ENDCHAR
-STARTCHAR MIDDLE DOT
-ENCODING 183
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-10
-10
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR CEDILLA
-ENCODING 184
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-00
-00
-00
-00
-10
-20
-ENDCHAR
-STARTCHAR SUPERSCRIPT ONE
-ENCODING 185
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-30
-10
-10
-10
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR MASCULINE ORDINAL INDICATOR
-ENCODING 186
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-48
-30
-00
-78
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-ENCODING 187
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-48
-24
-24
-48
-00
-00
-00
-ENDCHAR
-STARTCHAR VULGAR FRACTION ONE QUARTER
-ENCODING 188
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-40
-C4
-48
-50
-20
-54
-94
-1C
-04
-04
-ENDCHAR
-STARTCHAR VULGAR FRACTION ONE HALF
-ENCODING 189
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-40
-C4
-48
-50
-20
-58
-A4
-08
-10
-3C
-ENDCHAR
-STARTCHAR VULGAR FRACTION THREE QUARTERS
-ENCODING 190
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-C0
-24
-C8
-30
-E0
-54
-94
-1C
-04
-04
-ENDCHAR
-STARTCHAR INVERTED QUESTION MARK
-ENCODING 191
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-10
-00
-10
-20
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER A WITH GRAVE
-ENCODING 192
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-30
-48
-78
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER A WITH ACUTE
-ENCODING 193
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-30
-48
-78
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-ENCODING 194
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-00
-30
-48
-78
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER A WITH TILDE
-ENCODING 195
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-28
-50
-00
-30
-48
-78
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER A WITH DIAERESIS
-ENCODING 196
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-00
-30
-48
-78
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER A WITH RING ABOVE
-ENCODING 197
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-30
-30
-48
-78
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER AE
-ENCODING 198
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-1C
-30
-30
-5C
-70
-90
-9C
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER C WITH CEDILLA
-ENCODING 199
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-40
-40
-40
-48
-30
-10
-20
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER E WITH GRAVE
-ENCODING 200
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-78
-40
-70
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER E WITH ACUTE
-ENCODING 201
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-78
-40
-70
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-ENCODING 202
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-00
-78
-40
-70
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER E WITH DIAERESIS
-ENCODING 203
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-00
-78
-40
-70
-40
-78
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER I WITH GRAVE
-ENCODING 204
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-38
-10
-10
-10
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER I WITH ACUTE
-ENCODING 205
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-08
-10
-00
-38
-10
-10
-10
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-ENCODING 206
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-28
-00
-38
-10
-10
-10
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER I WITH DIAERESIS
-ENCODING 207
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-28
-00
-38
-10
-10
-10
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER ETH
-ENCODING 208
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-38
-24
-24
-74
-24
-24
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER N WITH TILDE
-ENCODING 209
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-28
-50
-00
-48
-68
-58
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER O WITH GRAVE
-ENCODING 210
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-30
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER O WITH ACUTE
-ENCODING 211
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-30
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-ENCODING 212
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-00
-30
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER O WITH TILDE
-ENCODING 213
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-28
-50
-00
-30
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER O WITH DIAERESIS
-ENCODING 214
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-00
-30
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR MULTIPLICATION SIGN
-ENCODING 215
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-00
-28
-10
-28
-00
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER O WITH STROKE
-ENCODING 216
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-34
-48
-58
-58
-68
-48
-B0
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER U WITH GRAVE
-ENCODING 217
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-48
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER U WITH ACUTE
-ENCODING 218
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-48
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-ENCODING 219
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-00
-48
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER U WITH DIAERESIS
-ENCODING 220
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-00
-48
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER Y WITH ACUTE
-ENCODING 221
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-08
-10
-00
-44
-28
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN CAPITAL LETTER THORN
-ENCODING 222
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-40
-40
-70
-48
-48
-70
-40
-40
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER SHARP S
-ENCODING 223
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-30
-48
-50
-48
-48
-48
-50
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER A WITH GRAVE
-ENCODING 224
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-38
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER A WITH ACUTE
-ENCODING 225
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-38
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER A WITH CIRCUMFLEX
-ENCODING 226
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-28
-00
-38
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER A WITH TILDE
-ENCODING 227
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-28
-50
-00
-38
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER A WITH DIAERESIS
-ENCODING 228
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-28
-00
-38
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER A WITH RING ABOVE
-ENCODING 229
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-28
-10
-38
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER AE
-ENCODING 230
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-6C
-14
-38
-50
-6C
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER C WITH CEDILLA
-ENCODING 231
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-30
-48
-40
-48
-30
-10
-20
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER E WITH GRAVE
-ENCODING 232
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-30
-48
-78
-40
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER E WITH ACUTE
-ENCODING 233
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-30
-48
-78
-40
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER E WITH CIRCUMFLEX
-ENCODING 234
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-00
-30
-48
-78
-40
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER E WITH DIAERESIS
-ENCODING 235
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-00
-30
-48
-78
-40
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER I WITH GRAVE
-ENCODING 236
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-30
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER I WITH ACUTE
-ENCODING 237
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-08
-10
-00
-30
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER I WITH CIRCUMFLEX
-ENCODING 238
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-28
-00
-30
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER I WITH DIAERESIS
-ENCODING 239
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-28
-00
-30
-10
-10
-10
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER ETH
-ENCODING 240
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-60
-60
-10
-30
-48
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER N WITH TILDE
-ENCODING 241
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-28
-50
-00
-70
-48
-48
-48
-48
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER O WITH GRAVE
-ENCODING 242
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-00
-30
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER O WITH ACUTE
-ENCODING 243
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-00
-30
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER O WITH CIRCUMFLEX
-ENCODING 244
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-00
-00
-30
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER O WITH TILDE
-ENCODING 245
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-28
-50
-00
-00
-30
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER O WITH DIAERESIS
-ENCODING 246
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-00
-00
-30
-48
-48
-30
-00
-00
-ENDCHAR
-STARTCHAR DIVISION SIGN
-ENCODING 247
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-10
-00
-7C
-00
-10
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER O WITH STROKE
-ENCODING 248
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-00
-00
-34
-48
-78
-48
-B0
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER U WITH GRAVE
-ENCODING 249
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-20
-10
-00
-00
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER U WITH ACUTE
-ENCODING 250
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-00
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER U WITH CIRCUMFLEX
-ENCODING 251
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-30
-48
-00
-00
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER U WITH DIAERESIS
-ENCODING 252
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-00
-00
-48
-48
-48
-38
-00
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER Y WITH ACUTE
-ENCODING 253
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-10
-20
-00
-00
-48
-48
-48
-38
-08
-30
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER THORN
-ENCODING 254
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-40
-50
-68
-48
-48
-68
-50
-40
-00
-ENDCHAR
-STARTCHAR LATIN SMALL LETTER Y WITH DIAERESIS
-ENCODING 255
-SWIDTH 576 0
-DWIDTH 6 0
-BBX 6 10 0 -2
-BITMAP
-00
-48
-00
-00
-48
-48
-48
-38
-08
-30
-ENDCHAR
-ENDFONT
diff --git a/fs-skel/fonts/fixed-10.pbf b/fs-skel/fonts/fixed-10.pbf
new file mode 100644
index 0000000..e0b88f1
--- /dev/null
+++ b/fs-skel/fonts/fixed-10.pbf
Binary files differ
diff --git a/makefile b/makefile
index 3dbc96e..68690e6 100644
--- a/makefile
+++ b/makefile
@@ -31,9 +31,9 @@ out/fs/bin/%: obj/%.elf
mkdir -p $(shell dirname $@)
objcopy -S $< $@
-out/fs/man/%.man: src/man/%.pre
- mkdir -p $(shell dirname $@)
- python3 tools/man-gen.py $< $@
+#out/fs/man/%.man: src/man/%.pre
+# mkdir -p $(shell dirname $@)
+# python3 tools/man-gen.py $< $@
out/fs: out/fs/bin/init out/fs/bin/highway out/fs/bin/meminfo \
out/fs/bin/terminal out/fs/bin/hello out/fs/bin/mkpopup
@@ -89,7 +89,8 @@ obj/knob.so: obj/knob/file.o obj/knob/format.o obj/knob/rand.o \
obj/libterm.so: obj/libterm/terminal.o obj/libterm/termtask.o obj/libterm/readline.o
ld ${partlink} $^ -o $@
-obj/libfont.so: obj/libfont/bdf.o obj/libfont/fonts.o obj/libfont/filist.o
+obj/libfont.so: obj/libfont/bdf.o obj/libfont/pbf.o obj/libfont/fonts.o \
+ obj/libfont/filist.o
ld ${partlink} $^ -o $@
obj/popups.so: obj/popups/info.o obj/popups/popup.o
diff --git a/src/kernel/idt.c b/src/kernel/idt.c
index 99284ac..c79ae7b 100644
--- a/src/kernel/idt.c
+++ b/src/kernel/idt.c
@@ -256,9 +256,10 @@ void exception_halt(uint32_t eax, uint32_t ebx, uint32_t ecx,
__builtin_unreachable();
}
+#define MAX_STACK_EXPAND_PAGES 256
//returns true if stack was expanded
bool pf_check_stack(uint32_t cr2) {
- if (cr2 >= active_task->stack_bottom - 0x1000) {
+ if (cr2 >= active_task->stack_bottom - 0x1000 * MAX_STACK_EXPAND_PAGES) {
switch_to_kernel_cr3();
pd_user_allocate(active_task->page_directory, active_task->stack_bottom -= 4096, 1, true);
switch_to_task_cr3();
diff --git a/src/user/libfont/bdf.c b/src/user/libfont/bdf.c
index 2c19a15..de5489d 100644
--- a/src/user/libfont/bdf.c
+++ b/src/user/libfont/bdf.c
@@ -17,16 +17,10 @@ static inline uint8_t hex_to_n(char ch) {
}
//very minimal implementation
-bool try_load_bdf(const char *path, struct font_info *into) {
- struct file *f = open_file(path);
- if (!f)
- PANIC("Can't open font file sent by get_font.");
-
+bool try_load_bdf(struct file *f, struct font_info *into) {
read_line_from_file(f, line_buf, LINE_BUF_SIZE - 1);
- if (!strequ(line_buf, "STARTFONT 2.1")) {
- close_file(f);
+ if (!strequ(line_buf, "STARTFONT 2.1"))
return false;
- }
for (uint16_t i = 0; i < 256; ++i)
into->bitmaps[i] = 0;
@@ -71,9 +65,6 @@ bool try_load_bdf(const char *path, struct font_info *into) {
}
}
- close_file(f);
- f = 0;
-
if ((into->char_height == -1) ||
(into->char_width == -1) ||
(into->space_height == -1) ||
@@ -90,8 +81,6 @@ bool try_load_bdf(const char *path, struct font_info *into) {
return true;
bad_format:
- if (f)
- close_file(f);
for (uint16_t i = 0; i < 256; ++i)
if (into->bitmaps[i])
free_block(into->bitmaps[i]);
diff --git a/src/user/libfont/bdf.h b/src/user/libfont/bdf.h
index 4ed4189..cbf3772 100644
--- a/src/user/libfont/bdf.h
+++ b/src/user/libfont/bdf.h
@@ -1,8 +1,11 @@
#ifndef LIBFONT_BDF_H
#define LIBFONT_BDF_H
+#include <libfont/fonts.h>
+#include <knob/file.h>
+
#include <stdbool.h>
-bool try_load_bdf(const char *path, struct font_info *into);
+bool try_load_bdf(struct file *f, struct font_info *into);
#endif \ No newline at end of file
diff --git a/src/user/libfont/fonts.c b/src/user/libfont/fonts.c
index 1692992..c085604 100644
--- a/src/user/libfont/fonts.c
+++ b/src/user/libfont/fonts.c
@@ -6,14 +6,18 @@
#include "filist.h"
#include "bdf.h"
+#include "pbf.h"
#define FONT_PATH "fonts/"
#define FONT_PATH_L 6
struct font_loader_t {
const char *ext;
- bool (*func)(const char *, struct font_info *);
+ bool (*func)(struct file *f, struct font_info *);
} font_loaders[] = {
+ { .ext = ".pbf",
+ .func = try_load_pbf
+ },
{ .ext = ".bdf",
.func = try_load_bdf
},
@@ -36,20 +40,17 @@ struct font_info *get_font(const char *name) {
blockcpy(buf + FONT_PATH_L, name, name_len);
strcpy(buf + FONT_PATH_L + name_len, i->ext);
struct file *f = open_file(buf);
- if (!f) {
- free_block(buf);
+ free_block(buf);
+ if (!f)
continue;
- }
- syslogf("[libfont] Loading %s%s...", name, i->ext);
- if (i->func(buf, font)) {
+ //syslogf("[libfont] Loading %s%s...", name, i->ext);
+ if (i->func(f, font)) {
close_file(f);
- free_block(buf);
- syslogf("[libfont] Loaded %s%s.", name, i->ext);
+ //syslogf("[libfont] Loaded %s%s.", name, i->ext);
return font;
}
close_file(f);
- free_block(buf);
- syslogf("[libfont] Failed to load %s%s.", name, i->ext);
+ //syslogf("[libfont] Failed to load %s%s.", name, i->ext);
}
del_last();
return 0;
diff --git a/src/user/libfont/pbf.c b/src/user/libfont/pbf.c
new file mode 100644
index 0000000..34d5be5
--- /dev/null
+++ b/src/user/libfont/pbf.c
@@ -0,0 +1,43 @@
+#include <libfont/fonts.h>
+
+#include <knob/panic.h>
+#include <knob/file.h>
+#include <knob/heap.h>
+
+#include <stdbool.h>
+
+bool try_load_pbf(struct file *f, struct font_info *into) {
+ uint8_t head[4];
+ if (read_from_file(f, 4, head) != 4)
+ return false;
+
+ into->space_width = head[0] + head[2];
+ into->space_height = head[1] + head[3];
+ into->char_width = head[0];
+ into->char_height = head[1];
+
+ const uint16_t bm_size = head[0] * head[1];
+ const uint16_t bm_bytes = (bm_size - 1) / 8 + 1;
+
+ uint32_t bm_offsets[256];
+ if (read_from_file(f, 4 * 256, bm_offsets) != 4 * 256)
+ return false;
+
+ uint8_t bm_buf[256 * 256 / 8];
+
+ for (uint16_t i = 0; i < 256; ++i)
+ if (bm_offsets[i] == 0xffffffff)
+ into->bitmaps[i] = 0;
+ else {
+ bool *bp = get_block(bm_size);
+ if (!bp)
+ PANIC("couldn't allocate memory in pbf loader (todo: fail gracefully)");
+ seek_file_to(f, 4 + 4 * 256 + bm_offsets[i]);
+ read_from_file(f, bm_bytes, bm_buf);
+ for (uint16_t j = 0; j < bm_size; ++j)
+ bp[j] = (bm_buf[j / 8] >> (j % 8)) & 1;
+ into->bitmaps[i] = bp;
+ }
+
+ return true;
+} \ No newline at end of file
diff --git a/src/user/libfont/pbf.h b/src/user/libfont/pbf.h
new file mode 100644
index 0000000..bcf5d18
--- /dev/null
+++ b/src/user/libfont/pbf.h
@@ -0,0 +1,11 @@
+#ifndef LIBFONT_PBF_H
+#define LIBFONT_PBF_H
+
+#include <libfont/fonts.h>
+#include <knob/file.h>
+
+#include <stdbool.h>
+
+bool try_load_pbf(struct file *f, struct font_info *into);
+
+#endif \ No newline at end of file
diff --git a/src/user/popups/info.c b/src/user/popups/info.c
index 5b3f6ae..667d440 100644
--- a/src/user/popups/info.c
+++ b/src/user/popups/info.c
@@ -9,7 +9,7 @@
#include <stdarg.h>
#define PADDING 6
-#define FONT "berry"
+#define FONT "fixed-10"
static const struct font_info *info_font = 0;
diff --git a/src/user/terminal/main.c b/src/user/terminal/main.c
index 15ca6a1..08c17e1 100644
--- a/src/user/terminal/main.c
+++ b/src/user/terminal/main.c
@@ -10,7 +10,7 @@
#include <pland/syscall.h>
#include <pland/pcrt.h>
-#define FONT_HARDCODE "berry"
+#define FONT_HARDCODE "fixed-10"
_window_handle_t window;
uint8_t *pixbuf;
diff --git a/tools/pbf-gen.rb b/tools/pbf-gen.rb
new file mode 100644
index 0000000..f4c59c8
--- /dev/null
+++ b/tools/pbf-gen.rb
@@ -0,0 +1,66 @@
+#args: .hex file, .pbf file, hex pitch, char width, char height, hz padding, vt padding
+#converts the .hex output of gbdfed into a pbf file
+#6x9x0x0
+
+bitmaps = {}
+
+File.readlines(ARGV[0]).map do |l|
+ bitmaps[l[0..3].to_i 16] = (l[5..-2].to_i(16) + 2**80).to_s(2)[1..-1]
+end
+
+data_area_entries = {}
+
+bitmaps.each do |cp, bm|
+ lines = bm.scan /.{#{ARGV[2].to_i}}/
+ this_entry = []
+ this_byte = 0
+ byte_mask = 1
+ for y in 0..(ARGV[4].to_i() - 1) do
+ for x in 0..(ARGV[3].to_i() - 1) do
+ if lines[y][x] == '1'
+ this_byte |= byte_mask
+ end
+ byte_mask *= 2
+ if byte_mask == 256
+ byte_mask = 1
+ this_entry << this_byte
+ this_byte = 0
+ end
+ end
+ end
+ if byte_mask != 1
+ this_entry << this_byte
+ end
+ data_area_entries[cp] = this_entry
+end
+
+data_area = []
+
+def put_u32(f, n)
+ f.putc (n % 256)
+ f.putc ((n / 256) % 256)
+ f.putc ((n / 65536) % 256)
+ f.putc ((n / 16777216) % 256)
+end
+
+File.open(ARGV[1], 'wb') do |f|
+ f.putc ARGV[3].to_i
+ f.putc ARGV[4].to_i
+ f.putc ARGV[5].to_i
+ f.putc ARGV[6].to_i
+
+ for cp in 0..255 do
+ if data_area_entries.key? cp
+ put_u32(f, data_area.length)
+ for b in data_area_entries[cp] do
+ data_area << b
+ end
+ else
+ put_u32(f, 0)
+ end
+ end
+
+ for b in data_area do
+ f.putc b
+ end
+end \ No newline at end of file