commit dfbfa2b732f2799fdd745ee4927b290c3f7b7593 Author: august Date: Mon Feb 12 01:54:14 2024 -0500 Initial commit, font address order works i think diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..71572dc --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,206 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "bdf" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f550a6818e6f42ccd5883f44e45fff4f68415a0d09abdc81e7d1d78e0780af14" +dependencies = [ + "bit-set", + "thiserror", +] + +[[package]] +name = "bit-set" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84527c7b0452f22545cc010e72d366a435561d2b28b978035550b3778c4d428d" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bits" +version = "0.1.0" +dependencies = [ + "bdf", + "bitvec", + "png", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "png" +version = "0.17.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a" +dependencies = [ + "bitflags", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "proc-macro2" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "syn" +version = "2.0.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "thiserror" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..b44ad2f --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "bits" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +bdf = "0.6.0" +bitvec = "1.0.1" +png = "0.17.11" diff --git a/Cozette.sfd b/Cozette.sfd new file mode 100644 index 0000000..89b6662 --- /dev/null +++ b/Cozette.sfd @@ -0,0 +1,1748 @@ +SplineFontDB: 3.2 +FontName: Cozette +FullName: Cozette +FamilyName: Cozette +Weight: Medium +Copyright: (c) 2020-2023 Slavfox +UComments: "2024-2-11: Created with FontForge (http://fontforge.org)" +Version: 001.000 +ItalicAngle: 0 +UnderlinePosition: 13 +UnderlineWidth: 50 +Ascent: 769 +Descent: 231 +InvalidEm: 0 +LayerCount: 2 +Layer: 0 0 "Back" 1 +Layer: 1 0 "Fore" 0 +XUID: [1021 883 -213293449 12548082] +StyleMap: 0x0000 +FSType: 0 +OS2Version: 0 +OS2_WeightWidthSlopeOnly: 0 +OS2_UseTypoMetrics: 1 +CreationTime: 1707687904 +ModificationTime: 1707715626 +OS2TypoAscent: 0 +OS2TypoAOffset: 1 +OS2TypoDescent: 0 +OS2TypoDOffset: 1 +OS2TypoLinegap: 90 +OS2WinAscent: 0 +OS2WinAOffset: 1 +OS2WinDescent: 0 +OS2WinDOffset: 1 +HheadAscent: 0 +HheadAOffset: 1 +HheadDescent: 0 +HheadDOffset: 1 +DEI: 91125 +Encoding: +UnicodeInterp: none +NameList: AGL For New Fonts +DisplaySize: 13 +AntiAlias: 1 +FitToEm: 0 +WinInfo: 0 32 14 +OnlyBitmaps: 1 +BeginChars: 318 190 + +StartChar: uni0295 +Encoding: 0 661 0 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni0097 +Encoding: 1 151 1 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni1D25 +Encoding: 2 7461 2 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni0294 +Encoding: 3 660 3 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2661 +Encoding: 4 9825 4 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: heart +Encoding: 5 9829 5 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2B50 +Encoding: 6 11088 6 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni272D +Encoding: 7 10029 7 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uniF005 +Encoding: 256 61445 8 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2726 +Encoding: 257 10022 9 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2728 +Encoding: 258 10024 10 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: female +Encoding: 8 9792 11 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: male +Encoding: 9 9794 12 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni26A2 +Encoding: 259 9890 13 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni26A3 +Encoding: 260 9891 14 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni26A5 +Encoding: 261 9893 15 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2669 +Encoding: 10 9833 16 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: musicalnote +Encoding: 11 9834 17 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: musicalnotedbl +Encoding: 12 9835 18 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni266C +Encoding: 262 9836 19 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: space +Encoding: 32 32 20 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: exclam +Encoding: 33 33 21 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: quotedbl +Encoding: 34 34 22 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: numbersign +Encoding: 35 35 23 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: dollar +Encoding: 36 36 24 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: percent +Encoding: 37 37 25 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: ampersand +Encoding: 38 38 26 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: quotesingle +Encoding: 39 39 27 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: parenleft +Encoding: 40 40 28 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: parenright +Encoding: 41 41 29 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: asterisk +Encoding: 42 42 30 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: plus +Encoding: 43 43 31 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: comma +Encoding: 44 44 32 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: hyphen +Encoding: 45 45 33 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: period +Encoding: 46 46 34 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: slash +Encoding: 47 47 35 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: zero +Encoding: 48 48 36 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: one +Encoding: 49 49 37 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: two +Encoding: 50 50 38 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: three +Encoding: 51 51 39 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: four +Encoding: 52 52 40 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: five +Encoding: 53 53 41 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: six +Encoding: 54 54 42 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: seven +Encoding: 55 55 43 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: eight +Encoding: 56 56 44 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: nine +Encoding: 57 57 45 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: colon +Encoding: 58 58 46 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: semicolon +Encoding: 59 59 47 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: less +Encoding: 60 60 48 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: equal +Encoding: 61 61 49 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: greater +Encoding: 62 62 50 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: question +Encoding: 63 63 51 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: at +Encoding: 64 64 52 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: A +Encoding: 65 65 53 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: B +Encoding: 66 66 54 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: C +Encoding: 67 67 55 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: D +Encoding: 68 68 56 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: E +Encoding: 69 69 57 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: F +Encoding: 70 70 58 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: G +Encoding: 71 71 59 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: H +Encoding: 72 72 60 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: I +Encoding: 73 73 61 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: J +Encoding: 74 74 62 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: K +Encoding: 75 75 63 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: L +Encoding: 76 76 64 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: M +Encoding: 77 77 65 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: N +Encoding: 78 78 66 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: O +Encoding: 79 79 67 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: P +Encoding: 80 80 68 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: Q +Encoding: 81 81 69 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: R +Encoding: 82 82 70 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: S +Encoding: 83 83 71 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: T +Encoding: 84 84 72 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: U +Encoding: 85 85 73 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: V +Encoding: 86 86 74 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: W +Encoding: 87 87 75 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: X +Encoding: 88 88 76 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: Y +Encoding: 89 89 77 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: Z +Encoding: 90 90 78 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: bracketleft +Encoding: 91 91 79 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: backslash +Encoding: 92 92 80 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: bracketright +Encoding: 93 93 81 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: asciicircum +Encoding: 94 94 82 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: underscore +Encoding: 95 95 83 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: grave +Encoding: 96 96 84 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: a +Encoding: 97 97 85 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: b +Encoding: 98 98 86 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: c +Encoding: 99 99 87 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: d +Encoding: 100 100 88 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: e +Encoding: 101 101 89 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: f +Encoding: 102 102 90 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: g +Encoding: 103 103 91 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: h +Encoding: 104 104 92 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: i +Encoding: 105 105 93 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: j +Encoding: 106 106 94 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: k +Encoding: 107 107 95 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: l +Encoding: 108 108 96 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: m +Encoding: 109 109 97 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: n +Encoding: 110 110 98 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: o +Encoding: 111 111 99 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: p +Encoding: 112 112 100 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: q +Encoding: 113 113 101 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: r +Encoding: 114 114 102 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: s +Encoding: 115 115 103 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: t +Encoding: 116 116 104 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: u +Encoding: 117 117 105 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: v +Encoding: 118 118 106 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: w +Encoding: 119 119 107 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: x +Encoding: 120 120 108 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: y +Encoding: 121 121 109 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: z +Encoding: 122 122 110 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: braceleft +Encoding: 123 123 111 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: bar +Encoding: 124 124 112 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: braceright +Encoding: 125 125 113 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: asciitilde +Encoding: 126 126 114 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF100000 +Encoding: 13 9472 115 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF110000 +Encoding: 14 9474 116 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF010000 +Encoding: 15 9484 117 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF020000 +Encoding: 16 9492 118 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF080000 +Encoding: 17 9500 119 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF090000 +Encoding: 18 9508 120 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF060000 +Encoding: 19 9516 121 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF070000 +Encoding: 20 9524 122 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: SF050000 +Encoding: 21 9532 123 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni256D +Encoding: 263 9581 124 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni256E +Encoding: 264 9582 125 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni256F +Encoding: 265 9583 126 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2570 +Encoding: 266 9584 127 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2571 +Encoding: 267 9585 128 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2572 +Encoding: 268 9586 129 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2573 +Encoding: 269 9587 130 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF430000 +Encoding: 270 9552 131 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF240000 +Encoding: 271 9553 132 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF390000 +Encoding: 272 9556 133 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF250000 +Encoding: 273 9559 134 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF380000 +Encoding: 274 9562 135 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF260000 +Encoding: 275 9565 136 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF420000 +Encoding: 276 9568 137 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF230000 +Encoding: 277 9571 138 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF410000 +Encoding: 278 9574 139 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF400000 +Encoding: 279 9577 140 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: SF440000 +Encoding: 280 9580 141 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uniE0B0 +Encoding: 281 57520 142 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uniE0B2 +Encoding: 282 57522 143 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uniE0B4 +Encoding: 283 57524 144 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uniE0B6 +Encoding: 284 57526 145 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uniE0B8 +Encoding: 285 57528 146 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uniE0BA +Encoding: 286 57530 147 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uniE0BC +Encoding: 287 57532 148 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uniE0BE +Encoding: 288 57534 149 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2581 +Encoding: 25 9601 150 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2582 +Encoding: 26 9602 151 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2583 +Encoding: 27 9603 152 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: dnblock +Encoding: 28 9604 153 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2585 +Encoding: 29 9605 154 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2586 +Encoding: 30 9606 155 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2587 +Encoding: 31 9607 156 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: block +Encoding: 127 9608 157 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2589 +Encoding: 289 9609 158 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni258A +Encoding: 290 9610 159 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni258B +Encoding: 291 9611 160 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: lfblock +Encoding: 292 9612 161 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni258D +Encoding: 293 9613 162 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni258E +Encoding: 294 9614 163 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni258F +Encoding: 295 9615 164 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: ltshade +Encoding: 22 9617 165 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: shade +Encoding: 23 9618 166 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: dkshade +Encoding: 24 9619 167 +Width: 500 +Flags: W +LayerCount: 2 +EndChar + +StartChar: uni2596 +Encoding: 296 9622 168 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2597 +Encoding: 297 9623 169 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2598 +Encoding: 298 9624 170 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2599 +Encoding: 299 9625 171 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni259A +Encoding: 300 9626 172 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni259B +Encoding: 301 9627 173 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni259C +Encoding: 302 9628 174 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni259D +Encoding: 303 9629 175 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni259E +Encoding: 304 9630 176 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni259F +Encoding: 305 9631 177 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: arrowleft +Encoding: 306 8592 178 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: arrowup +Encoding: 307 8593 179 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: arrowright +Encoding: 308 8594 180 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: arrowdown +Encoding: 309 8595 181 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2B60 +Encoding: 310 11104 182 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2B61 +Encoding: 311 11105 183 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2B62 +Encoding: 312 11106 184 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2B63 +Encoding: 313 11107 185 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2B80 +Encoding: 314 11136 186 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2B81 +Encoding: 315 11137 187 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2B82 +Encoding: 316 11138 188 +Width: 1000 +LayerCount: 2 +EndChar + +StartChar: uni2B83 +Encoding: 317 11139 189 +Width: 1000 +LayerCount: 2 +EndChar +EndChars +BitmapFont: 13 190 10 3 1 slavfox +BDFStartProperties: 45 +FONT 1 "-slavfox-Cozette-Medium-R-Normal--13-120-75-75-M-60--0" +SIZE 1 "12 75 75" +FONTBOUNDINGBOX 16 "7 13 0 -3" +COMMENT 0 "Generated by fontforge, http://fontforge.sourceforge.net" +COMMENT 0 "(c) 2020-2023 Slavfox" +FOUNDRY 16 "slavfox" +FAMILY_NAME 16 "Cozette" +WEIGHT_NAME 16 "Medium" +SLANT 16 "R" +SETWIDTH_NAME 16 "Normal" +ADD_STYLE_NAME 16 "" +PIXEL_SIZE 18 13 +POINT_SIZE 18 120 +RESOLUTION_X 19 75 +RESOLUTION_Y 19 75 +SPACING 16 "M" +AVERAGE_WIDTH 18 60 +CHARSET_REGISTRY 16 "" +CHARSET_ENCODING 16 "0" +FONTNAME_REGISTRY 16 "" +FONT_NAME 16 "Cozette" +FACE_NAME 16 "Cozette" +COPYRIGHT 16 "(c) 2020-2023 Slavfox" +FONT_VERSION 16 "1.232" +FONT_ASCENT 18 10 +FONT_DESCENT 18 3 +UNDERLINE_POSITION 18 -19 +UNDERLINE_THICKNESS 18 13 +X_HEIGHT 18 5 +CAP_HEIGHT 18 7 +DEFAULT_CHAR 19 0 +RAW_ASCENT 18 769 +RAW_DESCENT 18 230 +NORM_SPACE 18 6 +RELATIVE_WEIGHT 19 50 +RELATIVE_SETWIDTH 19 50 +SUPERSCRIPT_X 18 0 +SUPERSCRIPT_Y 18 2 +SUPERSCRIPT_SIZE 18 2 +SUBSCRIPT_X 18 0 +SUBSCRIPT_Y 18 2 +SUBSCRIPT_SIZE 18 2 +FIGURE_WIDTH 18 6 +AVG_LOWERCASE_WIDTH 18 60 +AVG_UPPERCASE_WIDTH 18 60 +BDFEndProperties +Resolution: 75 +BDFChar: 0 0 6 1 5 0 7 +E/9$p?m$R7 +BDFChar: 1 1 6 2 4 2 4 +5i=m- +BDFChar: 2 2 6 1 5 0 5 +E,]b=+P6Yo +BDFChar: 3 3 6 1 5 0 7 +E/4c*0H_J\ +BDFChar: 4 4 6 0 6 0 6 +Cm'C%6mrTH +BDFChar: 5 5 6 0 6 0 6 +D#XG5HoMZ; +BDFChar: 6 6 6 1 5 1 6 ++<^GUE/4Jo +BDFChar: 7 7 6 1 5 1 6 ++<^GuE/4Jo +BDFChar: 8 256 6 0 0 0 0 +z +BDFChar: 9 257 6 0 0 0 0 +z +BDFChar: 10 258 12 0 0 0 0 +z +BDFChar: 11 8 6 1 5 -2 5 +E/9=+E$0*B +BDFChar: 12 9 6 0 5 0 5 +*"6qNOC/%g +BDFChar: 13 259 6 0 0 0 0 +z +BDFChar: 14 260 6 0 0 0 0 +z +BDFChar: 15 261 6 0 0 0 0 +z +BDFChar: 16 10 6 2 3 0 6 +5X7S"5et/8 +BDFChar: 17 11 6 2 5 0 6 +?r0*R5et/8 +BDFChar: 18 12 6 0 5 0 7 +E(iYf7)[:X +BDFChar: 19 262 6 0 0 0 0 +z +BDFChar: 20 32 6 6 6 -1 -1 +z +BDFChar: 21 33 6 3 3 0 7 +J:N0#J:IWM +BDFChar: 22 34 6 2 4 6 8 +TV.qX +BDFChar: 23 35 6 1 5 0 7 +:f-p`;#!j` +BDFChar: 24 36 6 1 5 -1 8 ++E49PE%!-5E$,,\ +BDFChar: 25 37 6 1 5 0 8 +5bLXZ+@)#:&-)\1 +BDFChar: 26 38 6 1 5 0 8 ++AblWBTS=;BE/#4 +BDFChar: 27 39 6 3 3 6 8 +J:N.M +BDFChar: 28 40 6 2 4 -2 8 ++@&2BJ:N0#5X6Fl +BDFChar: 29 41 6 2 4 -2 8 +J3Z@B+9S +BDFChar: 64 76 6 1 5 0 7 +J:N0#J:N1F +BDFChar: 65 77 6 1 5 0 7 +LtJZ)LkpkC +BDFChar: 66 78 6 1 5 0 7 +LrdZ9W0is. +BDFChar: 67 79 6 1 5 0 7 +E/9=+Lkpk+ +BDFChar: 68 80 6 1 5 0 7 +n;)mVn:6%> +BDFChar: 69 81 6 1 5 -1 7 +E/9=+Lkq.+#QOi) +BDFChar: 70 82 6 1 5 0 7 +n;)niOGJ^K +BDFChar: 71 83 6 1 5 0 7 +E/9$`#RH6* +BDFChar: 72 84 6 1 5 0 7 +p`L\%+LkpkCn,NFg +BDFChar: 87 99 6 1 5 0 5 +E/9$pLi<=o +BDFChar: 88 100 6 1 5 0 8 +#RC]\LkpkCGQ7^D +BDFChar: 89 101 6 1 5 0 5 +E/=:>Li<=o +BDFChar: 90 102 6 1 5 0 8 +3']au5X7S"5QCca +BDFChar: 91 103 6 1 5 -3 5 +G_h03Lj012Du]k< +BDFChar: 92 104 6 1 5 0 8 +J:N1>LkpkCL]@DT +BDFChar: 93 105 6 2 5 0 7 +5QJSb5X7Rg +BDFChar: 94 106 6 2 4 -2 7 ++95dl+qUM +BDFChar: 115 13 6 0 6 3 3 +rVuou +BDFChar: 116 14 6 3 3 -3 9 +J:N0#J:N0#J:N0#J,fQL +BDFChar: 117 15 6 3 6 -3 3 +n:6%>J:N.M +BDFChar: 118 16 6 3 6 3 9 +J:N0#J:R+h +BDFChar: 119 17 6 3 6 -3 9 +J:N0#J:R->J:N0#J,fQL +BDFChar: 120 18 6 0 3 -3 9 +&.fBa&.n=B&.fBa&-)\1 +BDFChar: 121 19 6 0 6 -3 3 +rX]VP&.fBQ +BDFChar: 122 20 6 0 6 3 9 +&.fBa&.ng@ +BDFChar: 123 21 6 0 6 -3 9 +&.fBa&.ngP&.fBa&-)\1 +BDFChar: 124 263 6 0 0 0 0 +z +BDFChar: 125 264 6 0 0 0 0 +z +BDFChar: 126 265 6 0 0 0 0 +z +BDFChar: 127 266 6 0 0 0 0 +z +BDFChar: 128 267 6 0 0 0 0 +z +BDFChar: 129 268 6 0 0 0 0 +z +BDFChar: 130 269 6 0 0 0 0 +z +BDFChar: 131 270 6 0 0 0 0 +z +BDFChar: 132 271 6 0 0 0 0 +z +BDFChar: 133 272 6 0 0 0 0 +z +BDFChar: 134 273 6 0 0 0 0 +z +BDFChar: 135 274 6 0 0 0 0 +z +BDFChar: 136 275 6 0 0 0 0 +z +BDFChar: 137 276 6 0 0 0 0 +z +BDFChar: 138 277 6 0 0 0 0 +z +BDFChar: 139 278 6 0 0 0 0 +z +BDFChar: 140 279 6 0 0 0 0 +z +BDFChar: 141 280 6 0 0 0 0 +z +BDFChar: 142 281 6 0 0 0 0 +z +BDFChar: 143 282 6 0 0 0 0 +z +BDFChar: 144 283 6 0 0 0 0 +z +BDFChar: 145 284 6 0 0 0 0 +z +BDFChar: 146 285 6 0 0 0 0 +z +BDFChar: 147 286 6 0 0 0 0 +z +BDFChar: 148 287 6 0 0 0 0 +z +BDFChar: 149 288 6 0 0 0 0 +z +BDFChar: 150 25 6 0 6 -3 -2 +rr)lt +BDFChar: 151 26 6 0 6 -3 0 +rr2or +BDFChar: 152 27 6 0 6 -3 1 +rr2orrVuou +BDFChar: 153 28 6 0 6 -3 3 +rr2orrr2ls +BDFChar: 154 29 6 0 6 -3 5 +rr2orrr2orrVuou +BDFChar: 155 30 6 0 6 -3 7 +rr2orrr2orrr2ls +BDFChar: 156 31 6 0 6 -3 8 +rr2orrr2orrr2or +BDFChar: 157 127 6 0 6 -3 9 +rr2orrr2orrr2orrVuou +BDFChar: 158 289 6 0 0 0 0 +z +BDFChar: 159 290 6 0 0 0 0 +z +BDFChar: 160 291 6 0 0 0 0 +z +BDFChar: 161 292 6 0 0 0 0 +z +BDFChar: 162 293 6 0 0 0 0 +z +BDFChar: 163 294 6 0 0 0 0 +z +BDFChar: 164 295 6 0 0 0 0 +z +BDFChar: 165 22 6 0 6 -3 9 +La%X!La%X!La%X!L]@DT +BDFChar: 166 23 6 0 6 -3 9 +W`5utW`5utW`5utWW3#! +BDFChar: 167 24 6 0 6 -3 9 +]'d/t]'d/t]'d/t\c;^1 +BDFChar: 168 296 6 0 0 0 0 +z +BDFChar: 169 297 6 0 0 0 0 +z +BDFChar: 170 298 6 0 0 0 0 +z +BDFChar: 171 299 6 0 0 0 0 +z +BDFChar: 172 300 6 0 0 0 0 +z +BDFChar: 173 301 6 0 0 0 0 +z +BDFChar: 174 302 6 0 0 0 0 +z +BDFChar: 175 303 6 0 0 0 0 +z +BDFChar: 176 304 6 0 0 0 0 +z +BDFChar: 177 305 6 0 0 0 0 +z +BDFChar: 178 306 6 0 0 0 0 +z +BDFChar: 179 307 6 0 0 0 0 +z +BDFChar: 180 308 6 0 0 0 0 +z +BDFChar: 181 309 6 0 0 0 0 +z +BDFChar: 182 310 6 0 0 0 0 +z +BDFChar: 183 311 6 0 0 0 0 +z +BDFChar: 184 312 6 0 0 0 0 +z +BDFChar: 185 313 6 0 0 0 0 +z +BDFChar: 186 314 6 0 0 0 0 +z +BDFChar: 187 315 6 0 0 0 0 +z +BDFChar: 188 316 6 0 0 0 0 +z +BDFChar: 189 317 6 0 0 0 0 +z +EndBitmapFont +EndSplineFont diff --git a/cozette.bdf b/cozette.bdf new file mode 100644 index 0000000..e9fd4a8 --- /dev/null +++ b/cozette.bdf @@ -0,0 +1,1921 @@ +STARTFONT 2.1 +FONT -slavfox-Cozette-Medium-R-Normal--13-120-75-75-M-60--0 +SIZE 12 75 75 +FONTBOUNDINGBOX 7 13 0 -3 +COMMENT "Generated by fontforge, http://fontforge.sourceforge.net" +COMMENT "(c) 2020-2023 Slavfox" +STARTPROPERTIES 41 +FONTBOUNDINGBOX "7 13 0 -3" +FOUNDRY "slavfox" +FAMILY_NAME "Cozette" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "Normal" +ADD_STYLE_NAME "" +PIXEL_SIZE 13 +POINT_SIZE 120 +RESOLUTION_X 75 +RESOLUTION_Y 75 +SPACING "M" +AVERAGE_WIDTH 60 +CHARSET_REGISTRY "" +CHARSET_ENCODING "0" +FONTNAME_REGISTRY "" +FONT_NAME "Cozette" +FACE_NAME "Cozette" +COPYRIGHT "(c) 2020-2023 Slavfox" +FONT_VERSION "1.232" +FONT_ASCENT 10 +FONT_DESCENT 3 +UNDERLINE_POSITION -19 +UNDERLINE_THICKNESS 13 +X_HEIGHT 5 +CAP_HEIGHT 7 +DEFAULT_CHAR 0 +RAW_ASCENT 769 +RAW_DESCENT 230 +NORM_SPACE 6 +RELATIVE_WEIGHT 50 +RELATIVE_SETWIDTH 50 +SUPERSCRIPT_X 0 +SUPERSCRIPT_Y 2 +SUPERSCRIPT_SIZE 2 +SUBSCRIPT_X 0 +SUBSCRIPT_Y 2 +SUBSCRIPT_SIZE 2 +FIGURE_WIDTH 6 +AVG_LOWERCASE_WIDTH 60 +AVG_UPPERCASE_WIDTH 60 +ENDPROPERTIES +CHARS 128 +STARTCHAR uni0295 +ENCODING 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +80 +80 +60 +20 +20 +20 +ENDCHAR +STARTCHAR uni0097 +ENCODING 1 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 3 2 2 +BITMAP +40 +E0 +40 +ENDCHAR +STARTCHAR uni1D25 +ENCODING 2 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +70 +70 +70 +20 +20 +D8 +ENDCHAR +STARTCHAR uni0294 +ENCODING 3 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +08 +08 +30 +20 +20 +20 +ENDCHAR +STARTCHAR uni2661 +ENCODING 4 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 7 0 0 +BITMAP +6C +92 +82 +82 +44 +28 +10 +ENDCHAR +STARTCHAR heart +ENCODING 5 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 7 0 0 +BITMAP +6C +FE +FE +FE +7C +38 +10 +ENDCHAR +STARTCHAR uni2B50 +ENCODING 6 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 1 +BITMAP +20 +20 +F8 +50 +70 +88 +ENDCHAR +STARTCHAR uni272D +ENCODING 7 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 1 +BITMAP +20 +20 +F8 +70 +70 +88 +ENDCHAR +STARTCHAR female +ENCODING 8 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 -2 +BITMAP +70 +88 +88 +88 +70 +20 +70 +20 +ENDCHAR +STARTCHAR male +ENCODING 9 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 6 0 0 +BITMAP +1C +0C +74 +90 +90 +60 +ENDCHAR +STARTCHAR uni2669 +ENCODING 10 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 2 7 2 0 +BITMAP +40 +40 +40 +40 +40 +C0 +C0 +ENDCHAR +STARTCHAR musicalnote +ENCODING 11 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 4 7 2 0 +BITMAP +60 +50 +40 +40 +40 +C0 +C0 +ENDCHAR +STARTCHAR musicalnotedbl +ENCODING 12 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 8 0 0 +BITMAP +70 +4C +44 +44 +44 +C4 +CC +0C +ENDCHAR +STARTCHAR SF100000 +ENCODING 13 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 1 0 3 +BITMAP +FE +ENDCHAR +STARTCHAR SF110000 +ENCODING 14 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 1 13 3 -3 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR SF010000 +ENCODING 15 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 4 7 3 -3 +BITMAP +F0 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR SF020000 +ENCODING 16 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 4 7 3 3 +BITMAP +80 +80 +80 +80 +80 +80 +F0 +ENDCHAR +STARTCHAR SF080000 +ENCODING 17 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 4 13 3 -3 +BITMAP +80 +80 +80 +80 +80 +80 +F0 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR SF090000 +ENCODING 18 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 4 13 0 -3 +BITMAP +10 +10 +10 +10 +10 +10 +F0 +10 +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR SF060000 +ENCODING 19 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 7 0 -3 +BITMAP +FE +10 +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR SF070000 +ENCODING 20 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 7 0 3 +BITMAP +10 +10 +10 +10 +10 +10 +FE +ENDCHAR +STARTCHAR SF050000 +ENCODING 21 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 13 0 -3 +BITMAP +10 +10 +10 +10 +10 +10 +FE +10 +10 +10 +10 +10 +10 +ENDCHAR +STARTCHAR ltshade +ENCODING 22 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 13 0 -3 +BITMAP +88 +22 +88 +22 +88 +22 +88 +22 +88 +22 +88 +22 +88 +ENDCHAR +STARTCHAR shade +ENCODING 23 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 13 0 -3 +BITMAP +AA +54 +AA +54 +AA +54 +AA +54 +AA +54 +AA +54 +AA +ENDCHAR +STARTCHAR dkshade +ENCODING 24 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 13 0 -3 +BITMAP +BA +EE +BA +EE +BA +EE +BA +EE +BA +EE +BA +EE +BA +ENDCHAR +STARTCHAR uni2581 +ENCODING 25 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 2 0 -3 +BITMAP +FE +FE +ENDCHAR +STARTCHAR uni2582 +ENCODING 26 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 4 0 -3 +BITMAP +FE +FE +FE +FE +ENDCHAR +STARTCHAR uni2583 +ENCODING 27 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 5 0 -3 +BITMAP +FE +FE +FE +FE +FE +ENDCHAR +STARTCHAR dnblock +ENCODING 28 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 7 0 -3 +BITMAP +FE +FE +FE +FE +FE +FE +FE +ENDCHAR +STARTCHAR uni2585 +ENCODING 29 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 9 0 -3 +BITMAP +FE +FE +FE +FE +FE +FE +FE +FE +FE +ENDCHAR +STARTCHAR uni2586 +ENCODING 30 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 11 0 -3 +BITMAP +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +ENDCHAR +STARTCHAR uni2587 +ENCODING 31 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 12 0 -3 +BITMAP +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +ENDCHAR +STARTCHAR space +ENCODING 32 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 1 1 6 -1 +BITMAP +00 +ENDCHAR +STARTCHAR exclam +ENCODING 33 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 1 8 3 0 +BITMAP +80 +80 +80 +80 +80 +80 +00 +80 +ENDCHAR +STARTCHAR quotedbl +ENCODING 34 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 3 2 6 +BITMAP +A0 +A0 +A0 +ENDCHAR +STARTCHAR numbersign +ENCODING 35 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +50 +50 +F8 +50 +50 +F8 +50 +50 +ENDCHAR +STARTCHAR dollar +ENCODING 36 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 10 1 -1 +BITMAP +20 +70 +A8 +A0 +70 +28 +28 +A8 +70 +20 +ENDCHAR +STARTCHAR percent +ENCODING 37 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 0 +BITMAP +40 +A0 +48 +10 +20 +40 +90 +28 +10 +ENDCHAR +STARTCHAR ampersand +ENCODING 38 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 0 +BITMAP +20 +50 +50 +20 +68 +90 +90 +90 +68 +ENDCHAR +STARTCHAR quotesingle +ENCODING 39 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 1 3 3 6 +BITMAP +80 +80 +80 +ENDCHAR +STARTCHAR parenleft +ENCODING 40 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 11 2 -2 +BITMAP +20 +40 +40 +80 +80 +80 +80 +80 +40 +40 +20 +ENDCHAR +STARTCHAR parenright +ENCODING 41 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 11 2 -2 +BITMAP +80 +40 +40 +20 +20 +20 +20 +20 +40 +40 +80 +ENDCHAR +STARTCHAR asterisk +ENCODING 42 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 5 1 1 +BITMAP +50 +20 +F8 +20 +50 +ENDCHAR +STARTCHAR plus +ENCODING 43 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 5 1 1 +BITMAP +20 +20 +F8 +20 +20 +ENDCHAR +STARTCHAR comma +ENCODING 44 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 2 4 2 -2 +BITMAP +C0 +C0 +40 +80 +ENDCHAR +STARTCHAR hyphen +ENCODING 45 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 1 1 3 +BITMAP +F8 +ENDCHAR +STARTCHAR period +ENCODING 46 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 2 2 2 0 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR slash +ENCODING 47 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 10 1 -1 +BITMAP +08 +08 +10 +10 +20 +20 +40 +40 +80 +80 +ENDCHAR +STARTCHAR zero +ENCODING 48 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +88 +A8 +A8 +88 +88 +70 +ENDCHAR +STARTCHAR one +ENCODING 49 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +20 +60 +A0 +20 +20 +20 +20 +F8 +ENDCHAR +STARTCHAR two +ENCODING 50 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +08 +10 +20 +40 +80 +F8 +ENDCHAR +STARTCHAR three +ENCODING 51 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +08 +30 +08 +08 +88 +70 +ENDCHAR +STARTCHAR four +ENCODING 52 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 8 1 0 +BITMAP +08 +18 +28 +48 +88 +FC +08 +08 +ENDCHAR +STARTCHAR five +ENCODING 53 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F8 +80 +80 +F0 +08 +08 +88 +70 +ENDCHAR +STARTCHAR six +ENCODING 54 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +30 +40 +80 +F0 +88 +88 +88 +70 +ENDCHAR +STARTCHAR seven +ENCODING 55 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F8 +08 +10 +10 +20 +20 +40 +40 +ENDCHAR +STARTCHAR eight +ENCODING 56 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +88 +70 +88 +88 +88 +70 +ENDCHAR +STARTCHAR nine +ENCODING 57 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +88 +88 +78 +08 +10 +60 +ENDCHAR +STARTCHAR colon +ENCODING 58 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 2 6 2 0 +BITMAP +C0 +C0 +00 +00 +C0 +C0 +ENDCHAR +STARTCHAR semicolon +ENCODING 59 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 2 8 2 -2 +BITMAP +C0 +C0 +00 +00 +C0 +C0 +40 +80 +ENDCHAR +STARTCHAR less +ENCODING 60 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 4 7 2 0 +BITMAP +10 +20 +40 +80 +40 +20 +10 +ENDCHAR +STARTCHAR equal +ENCODING 61 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 3 1 2 +BITMAP +F8 +00 +F8 +ENDCHAR +STARTCHAR greater +ENCODING 62 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 4 7 1 0 +BITMAP +80 +40 +20 +10 +20 +40 +80 +ENDCHAR +STARTCHAR question +ENCODING 63 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +08 +10 +20 +20 +00 +20 +ENDCHAR +STARTCHAR at +ENCODING 64 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +88 +B8 +A8 +B8 +80 +78 +ENDCHAR +STARTCHAR A +ENCODING 65 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +88 +88 +F8 +88 +88 +88 +ENDCHAR +STARTCHAR B +ENCODING 66 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F0 +88 +88 +F0 +88 +88 +88 +F0 +ENDCHAR +STARTCHAR C +ENCODING 67 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +80 +80 +80 +80 +88 +70 +ENDCHAR +STARTCHAR D +ENCODING 68 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +E0 +90 +88 +88 +88 +88 +90 +E0 +ENDCHAR +STARTCHAR E +ENCODING 69 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F8 +80 +80 +F0 +80 +80 +80 +F8 +ENDCHAR +STARTCHAR F +ENCODING 70 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F8 +80 +80 +F0 +80 +80 +80 +80 +ENDCHAR +STARTCHAR G +ENCODING 71 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +80 +80 +98 +88 +88 +70 +ENDCHAR +STARTCHAR H +ENCODING 72 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +88 +88 +F8 +88 +88 +88 +88 +ENDCHAR +STARTCHAR I +ENCODING 73 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 8 2 0 +BITMAP +E0 +40 +40 +40 +40 +40 +40 +E0 +ENDCHAR +STARTCHAR J +ENCODING 74 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +38 +08 +08 +08 +08 +88 +88 +70 +ENDCHAR +STARTCHAR K +ENCODING 75 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +90 +A0 +E0 +90 +90 +88 +88 +ENDCHAR +STARTCHAR L +ENCODING 76 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +80 +80 +80 +80 +80 +80 +80 +F8 +ENDCHAR +STARTCHAR M +ENCODING 77 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +D8 +A8 +A8 +88 +88 +88 +88 +ENDCHAR +STARTCHAR N +ENCODING 78 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +C8 +C8 +A8 +A8 +98 +98 +88 +ENDCHAR +STARTCHAR O +ENCODING 79 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR P +ENCODING 80 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F0 +88 +88 +88 +F0 +80 +80 +80 +ENDCHAR +STARTCHAR Q +ENCODING 81 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 -1 +BITMAP +70 +88 +88 +88 +88 +88 +90 +68 +08 +ENDCHAR +STARTCHAR R +ENCODING 82 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F0 +88 +88 +F0 +90 +88 +88 +88 +ENDCHAR +STARTCHAR S +ENCODING 83 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +70 +88 +80 +70 +08 +08 +88 +70 +ENDCHAR +STARTCHAR T +ENCODING 84 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F8 +20 +20 +20 +20 +20 +20 +20 +ENDCHAR +STARTCHAR U +ENCODING 85 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +88 +88 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR V +ENCODING 86 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +88 +88 +50 +50 +50 +20 +20 +ENDCHAR +STARTCHAR W +ENCODING 87 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +88 +88 +A8 +A8 +70 +50 +50 +ENDCHAR +STARTCHAR X +ENCODING 88 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +88 +50 +20 +20 +50 +88 +88 +ENDCHAR +STARTCHAR Y +ENCODING 89 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +88 +88 +88 +50 +20 +20 +20 +20 +ENDCHAR +STARTCHAR Z +ENCODING 90 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +F8 +10 +20 +20 +40 +40 +80 +F8 +ENDCHAR +STARTCHAR bracketleft +ENCODING 91 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 11 2 -2 +BITMAP +E0 +80 +80 +80 +80 +80 +80 +80 +80 +80 +E0 +ENDCHAR +STARTCHAR backslash +ENCODING 92 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 10 1 -1 +BITMAP +80 +80 +40 +40 +20 +20 +10 +10 +08 +08 +ENDCHAR +STARTCHAR bracketright +ENCODING 93 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 11 2 -2 +BITMAP +E0 +20 +20 +20 +20 +20 +20 +20 +20 +20 +E0 +ENDCHAR +STARTCHAR asciicircum +ENCODING 94 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 3 1 7 +BITMAP +20 +50 +88 +ENDCHAR +STARTCHAR underscore +ENCODING 95 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 1 1 -1 +BITMAP +F8 +ENDCHAR +STARTCHAR grave +ENCODING 96 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 2 2 2 7 +BITMAP +80 +40 +ENDCHAR +STARTCHAR a +ENCODING 97 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +78 +88 +88 +88 +98 +68 +ENDCHAR +STARTCHAR b +ENCODING 98 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 0 +BITMAP +80 +80 +80 +F0 +88 +88 +88 +88 +F0 +ENDCHAR +STARTCHAR c +ENCODING 99 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +70 +88 +80 +80 +88 +70 +ENDCHAR +STARTCHAR d +ENCODING 100 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 0 +BITMAP +08 +08 +08 +78 +88 +88 +88 +88 +78 +ENDCHAR +STARTCHAR e +ENCODING 101 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +70 +88 +F8 +80 +88 +70 +ENDCHAR +STARTCHAR f +ENCODING 102 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 0 +BITMAP +38 +40 +40 +F0 +40 +40 +40 +40 +40 +ENDCHAR +STARTCHAR g +ENCODING 103 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 -3 +BITMAP +78 +88 +88 +88 +88 +78 +08 +08 +70 +ENDCHAR +STARTCHAR h +ENCODING 104 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 0 +BITMAP +80 +80 +80 +F0 +88 +88 +88 +88 +88 +ENDCHAR +STARTCHAR i +ENCODING 105 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 4 8 2 0 +BITMAP +40 +00 +C0 +40 +40 +40 +40 +30 +ENDCHAR +STARTCHAR j +ENCODING 106 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 10 2 -2 +BITMAP +20 +00 +60 +20 +20 +20 +20 +20 +A0 +40 +ENDCHAR +STARTCHAR k +ENCODING 107 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 0 +BITMAP +80 +80 +80 +88 +90 +A0 +E0 +90 +88 +ENDCHAR +STARTCHAR l +ENCODING 108 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 3 9 2 0 +BITMAP +C0 +40 +40 +40 +40 +40 +40 +40 +60 +ENDCHAR +STARTCHAR m +ENCODING 109 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +D0 +A8 +A8 +A8 +A8 +A8 +ENDCHAR +STARTCHAR n +ENCODING 110 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +F0 +88 +88 +88 +88 +88 +ENDCHAR +STARTCHAR o +ENCODING 111 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +70 +88 +88 +88 +88 +70 +ENDCHAR +STARTCHAR p +ENCODING 112 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 -3 +BITMAP +F0 +88 +88 +88 +88 +F0 +80 +80 +80 +ENDCHAR +STARTCHAR q +ENCODING 113 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 6 9 1 -3 +BITMAP +78 +88 +88 +88 +88 +78 +08 +08 +0C +ENDCHAR +STARTCHAR r +ENCODING 114 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +F0 +88 +80 +80 +80 +80 +ENDCHAR +STARTCHAR s +ENCODING 115 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +78 +80 +70 +08 +08 +F0 +ENDCHAR +STARTCHAR t +ENCODING 116 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 1 0 +BITMAP +40 +40 +F0 +40 +40 +40 +40 +38 +ENDCHAR +STARTCHAR u +ENCODING 117 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +88 +88 +88 +88 +88 +78 +ENDCHAR +STARTCHAR v +ENCODING 118 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +88 +88 +50 +50 +20 +20 +ENDCHAR +STARTCHAR w +ENCODING 119 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +88 +88 +A8 +A8 +50 +50 +ENDCHAR +STARTCHAR x +ENCODING 120 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +88 +50 +20 +20 +50 +88 +ENDCHAR +STARTCHAR y +ENCODING 121 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 1 -3 +BITMAP +88 +88 +88 +88 +88 +78 +08 +08 +70 +ENDCHAR +STARTCHAR z +ENCODING 122 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 1 0 +BITMAP +F8 +10 +20 +40 +80 +F8 +ENDCHAR +STARTCHAR braceleft +ENCODING 123 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 11 1 -2 +BITMAP +18 +20 +20 +20 +20 +C0 +20 +20 +20 +20 +18 +ENDCHAR +STARTCHAR bar +ENCODING 124 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 1 11 3 -2 +BITMAP +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +ENDCHAR +STARTCHAR braceright +ENCODING 125 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 11 1 -2 +BITMAP +C0 +20 +20 +20 +20 +18 +20 +20 +20 +20 +C0 +ENDCHAR +STARTCHAR asciitilde +ENCODING 126 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 3 1 2 +BITMAP +48 +A8 +90 +ENDCHAR +STARTCHAR block +ENCODING 127 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 7 13 0 -3 +BITMAP +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +FE +ENDCHAR +ENDFONT diff --git a/cozette.png b/cozette.png new file mode 100644 index 0000000..303518b Binary files /dev/null and b/cozette.png differ diff --git a/src/Cozette.bmap b/src/Cozette.bmap new file mode 100644 index 0000000..e69de29 diff --git a/src/Cozette.otb b/src/Cozette.otb new file mode 100644 index 0000000..20a67d0 Binary files /dev/null and b/src/Cozette.otb differ diff --git a/src/cozette.bmp b/src/cozette.bmp new file mode 100644 index 0000000..e69de29 diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..be4fca3 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,73 @@ +#![allow(dead_code, clippy::println_empty_string)] +use std::{ + fs::File, + ops::{Add, AddAssign}, +}; + +extern crate png; + +extern crate bdf; +const ADDRESS_SIZE: usize = 13; +const ROW_BITS: usize = 5; +const CHAR_BITS: usize = 8; + +const MAX_ROWS: usize = 13; +const MAX_CHARS: u8 = 0xFF; + +struct CharRowAddress { + row_address: u8, + char_address: u8, +} + +impl CharRowAddress { + fn new() -> Self { + Self { + row_address: 0x00, + char_address: 0x00, + } + } + fn inc_row(&mut self) { + if self.row_address.add(0x01) > 0b0001_1111 { + } else { + self.row_address.add_assign(0x01); + } + } + fn inc_char(&mut self) { + if self.char_address.add(0x01) > 0b0111_1111 { + } else { + self.char_address.add_assign(0x01); + } + } +} + +impl std::fmt::Display for CharRowAddress { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:05b}{:07b}", self.row_address, self.char_address) + } +} + +fn main() -> std::io::Result<()> { + let decoder = png::Decoder::new(File::open("./cozette.png").unwrap()); + let mut reader = decoder.read_info().unwrap(); + let mut buf = vec![0; reader.output_buffer_size()]; + let info = reader.next_frame(&mut buf).unwrap(); + let bytes = &buf[..info.buffer_size()]; + let compressed: Vec = bytes.iter().step_by(4).cloned().collect(); + let mut address = CharRowAddress::new(); + for row in 0..MAX_ROWS { + address.inc_row(); + for character in 0x00..0x7F { + address.inc_char(); + print!("{} ", character as usize * row); + for i in 0..7 { + if compressed[character as usize * 7 + i + (row * 0x7f)] == 255 { + print!("█"); + } else { + print!(" "); + } + } + println!(""); + } + } + Ok(()) +}