diff --git a/CircuitPython_displayio/Helvetica-Bold-16.bdf b/CircuitPython_displayio/Helvetica-Bold-16.bdf new file mode 100644 index 000000000..2a34591f9 --- /dev/null +++ b/CircuitPython_displayio/Helvetica-Bold-16.bdf @@ -0,0 +1,4194 @@ +STARTFONT 2.1 +FONT -FontForge-Helvetica-Bold-R-Normal--17-160-75-75-P-93-ISO10646-1 +SIZE 16 75 75 +FONTBOUNDINGBOX 20 21 -3 -4 +COMMENT "Generated by fontforge, http://fontforge.sourceforge.net" +COMMENT "Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries." +STARTPROPERTIES 40 +FOUNDRY "FontForge" +FAMILY_NAME "Helvetica" +WEIGHT_NAME "Bold" +SLANT "R" +SETWIDTH_NAME "Normal" +ADD_STYLE_NAME "" +PIXEL_SIZE 17 +POINT_SIZE 160 +RESOLUTION_X 75 +RESOLUTION_Y 75 +SPACING "P" +AVERAGE_WIDTH 93 +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +FONTNAME_REGISTRY "" +CHARSET_COLLECTIONS "ISO10646-1" +FONT_NAME "Helvetica-Bold" +FACE_NAME "Helvetica Bold" +COPYRIGHT "Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries." +FONT_VERSION "001.007" +FONT_ASCENT 14 +FONT_DESCENT 3 +UNDERLINE_POSITION -2 +UNDERLINE_THICKNESS 1 +X_HEIGHT 8 +CAP_HEIGHT 12 +RAW_ASCENT 800 +RAW_DESCENT 200 +NORM_SPACE 5 +RELATIVE_WEIGHT 70 +RELATIVE_SETWIDTH 50 +SUPERSCRIPT_X 0 +SUPERSCRIPT_Y 8 +SUPERSCRIPT_SIZE 11 +SUBSCRIPT_X 0 +SUBSCRIPT_Y 2 +SUBSCRIPT_SIZE 11 +FIGURE_WIDTH 9 +AVG_LOWERCASE_WIDTH 90 +AVG_UPPERCASE_WIDTH 113 +ENDPROPERTIES +CHARS 229 +STARTCHAR space +ENCODING 32 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 1 1 0 0 +BITMAP +00 +ENDCHAR +STARTCHAR exclam +ENCODING 33 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 2 13 2 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +80 +00 +00 +C0 +C0 +ENDCHAR +STARTCHAR quotedbl +ENCODING 34 +SWIDTH 474 0 +DWIDTH 8 0 +BBX 4 5 2 8 +BITMAP +90 +90 +90 +90 +90 +ENDCHAR +STARTCHAR numbersign +ENCODING 35 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +1B00 +1B00 +1300 +7F80 +7F80 +3200 +3600 +FF80 +FF00 +2600 +2600 +2400 +ENDCHAR +STARTCHAR dollar +ENCODING 36 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 15 1 -2 +BITMAP +10 +7C +FE +D6 +D7 +D0 +F0 +7C +1E +17 +D3 +FE +7C +10 +10 +ENDCHAR +STARTCHAR percent +ENCODING 37 +SWIDTH 889 0 +DWIDTH 15 0 +BBX 14 12 1 0 +BITMAP +7040 +F8C0 +8C80 +8D80 +F900 +7200 +0270 +04F8 +058C +098C +18F8 +1070 +ENDCHAR +STARTCHAR ampersand +ENCODING 38 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 11 13 1 0 +BITMAP +1C00 +3E00 +7300 +7300 +3600 +3E00 +3CC0 +7EC0 +E7C0 +C780 +E380 +7FC0 +3CE0 +ENDCHAR +STARTCHAR quotesingle +ENCODING 39 +SWIDTH 238 0 +DWIDTH 4 0 +BBX 2 5 1 8 +BITMAP +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR parenleft +ENCODING 40 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 4 17 1 -4 +BITMAP +30 +30 +60 +60 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +60 +60 +30 +30 +ENDCHAR +STARTCHAR parenright +ENCODING 41 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 4 17 1 -4 +BITMAP +80 +C0 +60 +60 +60 +70 +30 +30 +30 +30 +30 +70 +60 +60 +60 +C0 +80 +ENDCHAR +STARTCHAR asterisk +ENCODING 42 +SWIDTH 389 0 +DWIDTH 7 0 +BBX 5 6 1 7 +BITMAP +20 +20 +F8 +70 +D0 +10 +ENDCHAR +STARTCHAR plus +ENCODING 43 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 8 1 0 +BITMAP +18 +18 +18 +FF +FF +18 +18 +18 +ENDCHAR +STARTCHAR comma +ENCODING 44 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 5 1 -3 +BITMAP +E0 +E0 +60 +40 +80 +ENDCHAR +STARTCHAR hyphen +ENCODING 45 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 5 2 0 4 +BITMAP +F8 +F8 +ENDCHAR +STARTCHAR period +ENCODING 46 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 2 1 0 +BITMAP +E0 +E0 +ENDCHAR +STARTCHAR slash +ENCODING 47 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 5 13 0 0 +BITMAP +18 +18 +18 +30 +30 +30 +60 +60 +60 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR zero +ENCODING 48 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 12 1 0 +BITMAP +3C +7E +E6 +C7 +C7 +C7 +C7 +C7 +C7 +E6 +7E +3C +ENDCHAR +STARTCHAR one +ENCODING 49 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 5 12 1 0 +BITMAP +18 +18 +F8 +F8 +18 +18 +18 +18 +18 +18 +18 +18 +ENDCHAR +STARTCHAR two +ENCODING 50 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +3E00 +7F00 +6300 +6380 +0380 +0700 +0F00 +1C00 +3800 +7000 +7F80 +FF80 +ENDCHAR +STARTCHAR three +ENCODING 51 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +3E00 +7F00 +6300 +6300 +0300 +0E00 +0F00 +0380 +E380 +6380 +7F00 +3E00 +ENDCHAR +STARTCHAR four +ENCODING 52 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +0700 +0F00 +1F00 +1F00 +3700 +6700 +6700 +FF80 +FF80 +0700 +0700 +0700 +ENDCHAR +STARTCHAR five +ENCODING 53 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 12 1 0 +BITMAP +7E +FE +C0 +C0 +FC +FE +C7 +07 +07 +C6 +FE +7C +ENDCHAR +STARTCHAR six +ENCODING 54 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 12 1 0 +BITMAP +3C +7E +E6 +C0 +FC +FE +C7 +C7 +C7 +C7 +7E +3C +ENDCHAR +STARTCHAR seven +ENCODING 55 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +FF80 +FF80 +0300 +0700 +0600 +0C00 +0C00 +1C00 +1800 +3800 +3800 +3800 +ENDCHAR +STARTCHAR eight +ENCODING 56 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 12 1 0 +BITMAP +3C +FE +C6 +C6 +E6 +7C +FE +C7 +C7 +C7 +FE +7C +ENDCHAR +STARTCHAR nine +ENCODING 57 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 12 1 0 +BITMAP +7C +FE +C6 +C7 +C7 +C7 +FF +7F +07 +C6 +FE +78 +ENDCHAR +STARTCHAR colon +ENCODING 58 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 2 8 2 0 +BITMAP +C0 +C0 +00 +00 +00 +00 +C0 +C0 +ENDCHAR +STARTCHAR semicolon +ENCODING 59 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 2 11 2 -3 +BITMAP +C0 +C0 +00 +00 +00 +00 +C0 +C0 +40 +C0 +80 +ENDCHAR +STARTCHAR less +ENCODING 60 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 9 1 0 +BITMAP +01 +07 +1E +F8 +C0 +F0 +3E +07 +01 +ENDCHAR +STARTCHAR equal +ENCODING 61 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 6 1 1 +BITMAP +FF +FF +00 +00 +FF +FF +ENDCHAR +STARTCHAR greater +ENCODING 62 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 8 1 0 +BITMAP +E0 +78 +1E +03 +0F +7C +E0 +80 +ENDCHAR +STARTCHAR question +ENCODING 63 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 13 1 0 +BITMAP +3C +7F +E7 +E3 +03 +07 +0E +1C +18 +00 +00 +1C +1C +ENDCHAR +STARTCHAR at +ENCODING 64 +SWIDTH 975 0 +DWIDTH 17 0 +BBX 13 13 2 0 +BITMAP +0F80 +38E0 +6030 +4750 +CFD0 +D8D8 +D890 +D990 +DFE0 +6FC0 +7020 +3CE0 +0F80 +ENDCHAR +STARTCHAR A +ENCODING 65 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 12 13 0 0 +BITMAP +0700 +0F00 +0F00 +0F80 +1D80 +1980 +19C0 +38C0 +3FC0 +3FE0 +70E0 +6060 +E070 +ENDCHAR +STARTCHAR B +ENCODING 66 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 13 1 0 +BITMAP +FF00 +FFC0 +E1C0 +E0C0 +E1C0 +FF80 +FFC0 +E1C0 +E0C0 +E0C0 +E1C0 +FFC0 +FF80 +ENDCHAR +STARTCHAR C +ENCODING 67 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 11 13 1 0 +BITMAP +1F00 +7F80 +71C0 +E0C0 +E000 +C000 +C000 +C000 +E0E0 +E0C0 +71C0 +7F80 +1F00 +ENDCHAR +STARTCHAR D +ENCODING 68 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 11 13 1 0 +BITMAP +FF00 +FF80 +E1C0 +E0C0 +E0E0 +E0E0 +E0E0 +E0E0 +E0C0 +E1C0 +E1C0 +FF80 +FF00 +ENDCHAR +STARTCHAR E +ENCODING 69 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 13 1 0 +BITMAP +FF80 +FF80 +E000 +E000 +E000 +FF80 +FF80 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR F +ENCODING 70 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 1 0 +BITMAP +FF80 +FF80 +E000 +E000 +E000 +FF00 +FF00 +E000 +E000 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR G +ENCODING 71 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 11 13 1 0 +BITMAP +1F00 +3FC0 +71E0 +E0E0 +E000 +C000 +C3E0 +C3E0 +E060 +E0E0 +71E0 +3FE0 +1F60 +ENDCHAR +STARTCHAR H +ENCODING 72 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 13 1 0 +BITMAP +E0C0 +E0C0 +E0C0 +E0C0 +E0C0 +FFC0 +FFC0 +E0C0 +E0C0 +E0C0 +E0C0 +E0C0 +E0C0 +ENDCHAR +STARTCHAR I +ENCODING 73 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 13 1 0 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR J +ENCODING 74 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 13 0 0 +BITMAP +03 +03 +03 +03 +03 +03 +03 +03 +E3 +E3 +67 +7F +3E +ENDCHAR +STARTCHAR K +ENCODING 75 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 11 13 1 0 +BITMAP +E1E0 +E3C0 +E780 +E700 +EE00 +FC00 +FE00 +FE00 +E700 +E380 +E3C0 +E1C0 +E0E0 +ENDCHAR +STARTCHAR L +ENCODING 76 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 1 0 +BITMAP +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +E000 +FF80 +FF80 +ENDCHAR +STARTCHAR M +ENCODING 77 +SWIDTH 833 0 +DWIDTH 14 0 +BBX 12 13 1 0 +BITMAP +F0F0 +F0F0 +F0B0 +F8B0 +F9B0 +F9B0 +F9B0 +E930 +ED30 +EF30 +EF30 +E730 +E630 +ENDCHAR +STARTCHAR N +ENCODING 78 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 13 1 0 +BITMAP +E0C0 +F0C0 +F0C0 +F8C0 +F8C0 +ECC0 +ECC0 +E6C0 +E6C0 +E3C0 +E3C0 +E1C0 +E1C0 +ENDCHAR +STARTCHAR O +ENCODING 79 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 11 13 1 0 +BITMAP +1F00 +3FC0 +71C0 +E0E0 +E060 +C060 +C060 +C060 +E060 +E0E0 +71C0 +3FC0 +1F00 +ENDCHAR +STARTCHAR P +ENCODING 80 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 13 1 0 +BITMAP +FF00 +FF80 +E180 +E1C0 +E1C0 +E180 +FF80 +FF00 +E000 +E000 +E000 +E000 +E000 +ENDCHAR +STARTCHAR Q +ENCODING 81 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 11 13 1 0 +BITMAP +1F00 +3FC0 +71C0 +E0E0 +E060 +C060 +C060 +C060 +E160 +E3E0 +71C0 +3FE0 +1F60 +ENDCHAR +STARTCHAR R +ENCODING 82 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 13 1 0 +BITMAP +FF80 +FFC0 +E1C0 +E0C0 +E0C0 +E0C0 +E1C0 +FF80 +FF80 +E1C0 +E1C0 +E1C0 +E0C0 +ENDCHAR +STARTCHAR S +ENCODING 83 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 13 1 0 +BITMAP +3E00 +7F00 +E380 +C180 +E000 +FC00 +7F80 +0F80 +01C0 +C1C0 +E180 +7F80 +3E00 +ENDCHAR +STARTCHAR T +ENCODING 84 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 10 13 0 0 +BITMAP +FFC0 +FFC0 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR U +ENCODING 85 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 13 1 0 +BITMAP +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +71C0 +7F80 +1F00 +ENDCHAR +STARTCHAR V +ENCODING 86 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 11 13 0 0 +BITMAP +E0E0 +60E0 +70C0 +71C0 +31C0 +3980 +3980 +1B80 +1B00 +1F00 +0F00 +0E00 +0E00 +ENDCHAR +STARTCHAR W +ENCODING 87 +SWIDTH 944 0 +DWIDTH 16 0 +BBX 16 13 0 0 +BITMAP +E187 +63C6 +73C6 +73CE +73CE +33CC +366C +3E6C +1E7C +1E78 +1E78 +1C38 +0C30 +ENDCHAR +STARTCHAR X +ENCODING 88 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 13 1 0 +BITMAP +E1C0 +E380 +7300 +7700 +3E00 +1E00 +1C00 +3E00 +3E00 +7700 +7380 +E380 +C1C0 +ENDCHAR +STARTCHAR Y +ENCODING 89 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 13 1 0 +BITMAP +C1C0 +E180 +6380 +7300 +3700 +3E00 +1E00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +ENDCHAR +STARTCHAR Z +ENCODING 90 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 10 13 0 0 +BITMAP +7FC0 +7FC0 +03C0 +0380 +0700 +0E00 +0E00 +1C00 +3800 +7800 +7000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR bracketleft +ENCODING 91 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 4 17 1 -4 +BITMAP +F0 +F0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +F0 +F0 +ENDCHAR +STARTCHAR backslash +ENCODING 92 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 5 13 0 0 +BITMAP +C0 +C0 +C0 +C0 +60 +60 +60 +30 +30 +30 +18 +18 +18 +ENDCHAR +STARTCHAR bracketright +ENCODING 93 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 5 17 0 -4 +BITMAP +F8 +F8 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +18 +F8 +F8 +ENDCHAR +STARTCHAR asciicircum +ENCODING 94 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 7 6 1 6 +BITMAP +18 +3C +3C +64 +66 +C2 +ENDCHAR +STARTCHAR underscore +ENCODING 95 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 1 0 -2 +BITMAP +FF80 +ENDCHAR +STARTCHAR grave +ENCODING 96 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 3 2 0 11 +BITMAP +E0 +60 +ENDCHAR +STARTCHAR a +ENCODING 97 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 9 0 0 +BITMAP +3E00 +7F00 +6300 +0300 +3F00 +6300 +E300 +7F00 +7B80 +ENDCHAR +STARTCHAR b +ENCODING 98 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 1 0 +BITMAP +C000 +C000 +C000 +C000 +DE00 +FF00 +E380 +C380 +C380 +C380 +E300 +FF00 +DE00 +ENDCHAR +STARTCHAR c +ENCODING 99 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 9 1 0 +BITMAP +3C +FE +E7 +C0 +C0 +C0 +E7 +FE +3C +ENDCHAR +STARTCHAR d +ENCODING 100 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 13 1 0 +BITMAP +03 +03 +03 +03 +7B +FF +E7 +C3 +C3 +C3 +E7 +FF +7B +ENDCHAR +STARTCHAR e +ENCODING 101 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 9 0 0 +BITMAP +3E00 +7F00 +6380 +FF80 +FF80 +E000 +6380 +7F00 +3E00 +ENDCHAR +STARTCHAR f +ENCODING 102 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 5 13 0 0 +BITMAP +38 +38 +70 +70 +F8 +F8 +70 +70 +70 +70 +70 +70 +70 +ENDCHAR +STARTCHAR g +ENCODING 103 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 13 1 -4 +BITMAP +3B +7F +E7 +C3 +C3 +C3 +E7 +FF +3B +03 +E3 +FF +7C +ENDCHAR +STARTCHAR h +ENCODING 104 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 13 1 0 +BITMAP +C0 +C0 +C0 +C0 +DE +FF +E3 +E3 +C3 +C3 +C3 +C3 +C3 +ENDCHAR +STARTCHAR i +ENCODING 105 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 13 1 0 +BITMAP +E0 +E0 +00 +00 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR j +ENCODING 106 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 4 17 0 -4 +BITMAP +70 +70 +00 +00 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +E0 +E0 +ENDCHAR +STARTCHAR k +ENCODING 107 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 13 1 0 +BITMAP +E0 +E0 +E0 +E0 +E7 +EE +FC +F8 +FC +EC +EE +E7 +E7 +ENDCHAR +STARTCHAR l +ENCODING 108 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 13 1 0 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR m +ENCODING 109 +SWIDTH 889 0 +DWIDTH 15 0 +BBX 13 9 1 0 +BITMAP +DEF0 +FFF8 +E738 +C718 +C718 +C718 +C718 +C718 +C718 +ENDCHAR +STARTCHAR n +ENCODING 110 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 9 1 0 +BITMAP +DE +FF +E3 +E3 +C3 +C3 +C3 +C3 +C3 +ENDCHAR +STARTCHAR o +ENCODING 111 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 9 1 0 +BITMAP +3C00 +7F00 +E300 +C380 +C380 +C380 +E300 +7F00 +3C00 +ENDCHAR +STARTCHAR p +ENCODING 112 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 1 -4 +BITMAP +DE00 +FF00 +E380 +C380 +C380 +C380 +E300 +FF00 +DE00 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR q +ENCODING 113 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 13 1 -4 +BITMAP +3B +FF +E7 +C3 +C3 +C3 +E7 +FF +7B +03 +03 +03 +03 +ENDCHAR +STARTCHAR r +ENCODING 114 +SWIDTH 389 0 +DWIDTH 7 0 +BBX 5 9 1 0 +BITMAP +D8 +F8 +E0 +E0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR s +ENCODING 115 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 9 1 0 +BITMAP +7C +FE +C7 +FC +7E +07 +C7 +FE +7C +ENDCHAR +STARTCHAR t +ENCODING 116 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 5 11 0 0 +BITMAP +70 +70 +F8 +F8 +70 +70 +70 +70 +70 +78 +38 +ENDCHAR +STARTCHAR u +ENCODING 117 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 9 1 0 +BITMAP +E3 +E3 +E3 +E3 +E3 +E3 +E7 +FF +7B +ENDCHAR +STARTCHAR v +ENCODING 118 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 9 0 0 +BITMAP +E180 +6380 +7300 +7300 +3700 +3600 +1E00 +1C00 +1C00 +ENDCHAR +STARTCHAR w +ENCODING 119 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 13 9 0 0 +BITMAP +E718 +6738 +6730 +65B0 +75B0 +3DE0 +3DE0 +38E0 +18E0 +ENDCHAR +STARTCHAR x +ENCODING 120 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 9 1 0 +BITMAP +E7 +E6 +7E +7C +38 +38 +7C +EE +C7 +ENDCHAR +STARTCHAR y +ENCODING 121 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 13 0 -4 +BITMAP +E180 +6380 +7300 +7300 +3700 +3600 +3E00 +1E00 +1C00 +1C00 +1C00 +7800 +7800 +ENDCHAR +STARTCHAR z +ENCODING 122 +SWIDTH 500 0 +DWIDTH 9 0 +BBX 8 9 0 0 +BITMAP +7F +7F +0F +0E +1C +38 +70 +FF +FF +ENDCHAR +STARTCHAR braceleft +ENCODING 123 +SWIDTH 389 0 +DWIDTH 7 0 +BBX 5 16 1 -3 +BITMAP +38 +38 +60 +60 +60 +60 +60 +E0 +C0 +60 +60 +60 +60 +60 +70 +38 +ENDCHAR +STARTCHAR bar +ENCODING 124 +SWIDTH 280 0 +DWIDTH 5 0 +BBX 2 13 1 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR braceright +ENCODING 125 +SWIDTH 389 0 +DWIDTH 7 0 +BBX 6 16 0 -3 +BITMAP +E0 +70 +30 +30 +30 +30 +30 +1C +1C +38 +30 +30 +30 +30 +30 +F0 +ENDCHAR +STARTCHAR asciitilde +ENCODING 126 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 3 1 3 +BITMAP +72 +FF +8E +ENDCHAR +STARTCHAR exclamdown +ENCODING 161 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 2 12 2 -3 +BITMAP +C0 +C0 +00 +80 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR cent +ENCODING 162 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 11 1 -1 +BITMAP +04 +3C +7E +EF +D0 +D0 +D0 +F7 +FE +7C +20 +ENDCHAR +STARTCHAR sterling +ENCODING 163 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 13 0 0 +BITMAP +1E00 +7F00 +7380 +6180 +6000 +7000 +FC00 +3000 +3000 +3000 +7C80 +7F80 +4780 +ENDCHAR +STARTCHAR currency +ENCODING 164 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 10 0 1 +BITMAP +0080 +DD80 +7F00 +7300 +6300 +6300 +7300 +7F00 +DD80 +0080 +ENDCHAR +STARTCHAR yen +ENCODING 165 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +E180 +6380 +7300 +3300 +3E00 +FF80 +1C00 +FF80 +0C00 +0C00 +0C00 +0C00 +ENDCHAR +STARTCHAR brokenbar +ENCODING 166 +SWIDTH 280 0 +DWIDTH 5 0 +BBX 2 13 1 0 +BITMAP +C0 +C0 +C0 +C0 +C0 +00 +00 +00 +C0 +C0 +C0 +C0 +C0 +ENDCHAR +STARTCHAR section +ENCODING 167 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 16 1 -3 +BITMAP +3C +7E +C6 +E0 +78 +7C +DE +C7 +E3 +FE +3C +0E +06 +E6 +7E +3C +ENDCHAR +STARTCHAR dieresis +ENCODING 168 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 6 2 0 11 +BITMAP +DC +DC +ENDCHAR +STARTCHAR copyright +ENCODING 169 +SWIDTH 737 0 +DWIDTH 13 0 +BBX 13 13 0 0 +BITMAP +0F80 +3DE0 +6070 +CFB0 +D890 +D818 +D818 +D8D8 +CDB0 +6730 +6060 +3DC0 +0F80 +ENDCHAR +STARTCHAR ordfeminine +ENCODING 170 +SWIDTH 370 0 +DWIDTH 6 0 +BBX 6 9 0 4 +BITMAP +78 +4C +7C +CC +CC +7C +00 +00 +7C +ENDCHAR +STARTCHAR guillemotleft +ENCODING 171 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 7 7 1 1 +BITMAP +02 +26 +6C +C8 +CC +66 +22 +ENDCHAR +STARTCHAR logicalnot +ENCODING 172 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 5 1 2 +BITMAP +FF +FF +03 +03 +03 +ENDCHAR +STARTCHAR registered +ENCODING 174 +SWIDTH 737 0 +DWIDTH 13 0 +BBX 13 13 0 0 +BITMAP +0F80 +3FE0 +6060 +EF30 +C990 +C998 +CF98 +CB18 +C910 +E9B0 +6060 +3DE0 +0F80 +ENDCHAR +STARTCHAR macron +ENCODING 175 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 6 1 0 10 +BITMAP +FC +ENDCHAR +STARTCHAR degree +ENCODING 176 +SWIDTH 400 0 +DWIDTH 7 0 +BBX 5 5 1 7 +BITMAP +70 +88 +88 +98 +70 +ENDCHAR +STARTCHAR plusminus +ENCODING 177 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 9 1 0 +BITMAP +18 +18 +FF +FF +18 +18 +18 +FF +FF +ENDCHAR +STARTCHAR twosuperior +ENCODING 178 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 6 8 0 4 +BITMAP +78 +D8 +C8 +18 +38 +70 +40 +FC +ENDCHAR +STARTCHAR threesuperior +ENCODING 179 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 6 8 0 4 +BITMAP +78 +D8 +08 +38 +08 +CC +C8 +78 +ENDCHAR +STARTCHAR acute +ENCODING 180 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 4 2 2 11 +BITMAP +70 +E0 +ENDCHAR +STARTCHAR mu +ENCODING 181 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 13 1 -4 +BITMAP +E3 +E3 +E3 +E3 +E3 +E3 +E7 +FF +FB +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR paragraph +ENCODING 182 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 15 0 -3 +BITMAP +7F80 +FD80 +FD80 +FD80 +FD80 +7D80 +0D80 +0D80 +0D80 +0D80 +0D80 +0D80 +0D80 +0D80 +0D80 +ENDCHAR +STARTCHAR periodcentered +ENCODING 183 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 3 1 3 +BITMAP +40 +E0 +C0 +ENDCHAR +STARTCHAR cedilla +ENCODING 184 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 4 4 0 -4 +BITMAP +20 +70 +10 +F0 +ENDCHAR +STARTCHAR onesuperior +ENCODING 185 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 4 8 0 4 +BITMAP +30 +F0 +30 +30 +30 +30 +30 +30 +ENDCHAR +STARTCHAR ordmasculine +ENCODING 186 +SWIDTH 365 0 +DWIDTH 6 0 +BBX 6 9 0 4 +BITMAP +78 +CC +CC +CC +CC +78 +00 +00 +7C +ENDCHAR +STARTCHAR guillemotright +ENCODING 187 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 7 7 1 1 +BITMAP +80 +C8 +6C +26 +66 +CC +88 +ENDCHAR +STARTCHAR onequarter +ENCODING 188 +SWIDTH 834 0 +DWIDTH 14 0 +BBX 13 12 0 0 +BITMAP +3060 +F040 +3080 +3180 +3100 +3300 +3230 +3450 +0CD0 +0890 +19F8 +1010 +ENDCHAR +STARTCHAR onehalf +ENCODING 189 +SWIDTH 834 0 +DWIDTH 14 0 +BBX 13 12 0 0 +BITMAP +3060 +F040 +3080 +3180 +3100 +3370 +32D8 +34C8 +0C18 +0830 +1840 +10F8 +ENDCHAR +STARTCHAR threequarters +ENCODING 190 +SWIDTH 834 0 +DWIDTH 14 0 +BBX 14 12 0 0 +BITMAP +7820 +4860 +0840 +38C0 +0C80 +CD18 +CB38 +7A58 +06D8 +04FC +0818 +1818 +ENDCHAR +STARTCHAR questiondown +ENCODING 191 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 12 1 -3 +BITMAP +18 +18 +00 +18 +18 +38 +70 +E0 +C3 +E7 +7F +3C +ENDCHAR +STARTCHAR Agrave +ENCODING 192 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 12 16 0 0 +BITMAP +1C00 +0600 +0000 +0700 +0F00 +0F00 +0F80 +1D80 +1980 +19C0 +38C0 +3FC0 +3FE0 +70E0 +6060 +E070 +ENDCHAR +STARTCHAR Aacute +ENCODING 193 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 12 16 0 0 +BITMAP +0380 +0600 +0000 +0700 +0F00 +0F00 +0F80 +1D80 +1980 +19C0 +38C0 +3FC0 +3FE0 +70E0 +6060 +E070 +ENDCHAR +STARTCHAR Acircumflex +ENCODING 194 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 12 16 0 0 +BITMAP +0F00 +0980 +0000 +0700 +0F00 +0F00 +0F80 +1D80 +1980 +19C0 +38C0 +3FC0 +3FE0 +70E0 +6060 +E070 +ENDCHAR +STARTCHAR Atilde +ENCODING 195 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 12 16 0 0 +BITMAP +0E80 +1300 +0000 +0700 +0F00 +0F00 +0F80 +1D80 +1980 +19C0 +38C0 +3FC0 +3FE0 +70E0 +6060 +E070 +ENDCHAR +STARTCHAR Adieresis +ENCODING 196 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 12 16 0 0 +BITMAP +1D80 +1D80 +0000 +0700 +0F00 +0F00 +0F80 +1D80 +1980 +19C0 +38C0 +3FC0 +3FE0 +70E0 +6060 +E070 +ENDCHAR +STARTCHAR Aring +ENCODING 197 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 12 17 0 0 +BITMAP +0600 +0900 +0600 +0000 +0700 +0F00 +0F00 +0F80 +1D80 +1980 +19C0 +38C0 +3FC0 +3FE0 +70E0 +6060 +E070 +ENDCHAR +STARTCHAR AE +ENCODING 198 +SWIDTH 1000 0 +DWIDTH 17 0 +BBX 16 13 0 0 +BITMAP +0FFF +0FFF +0DC0 +1DC0 +19C0 +19FE +39FE +31C0 +3FC0 +7FC0 +61C0 +61FF +E1FF +ENDCHAR +STARTCHAR Ccedilla +ENCODING 199 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 11 17 1 -4 +BITMAP +1F00 +7F80 +71C0 +E0C0 +E000 +C000 +C000 +C000 +E0E0 +E0C0 +71C0 +7F80 +1F00 +0800 +0E00 +0600 +1C00 +ENDCHAR +STARTCHAR Egrave +ENCODING 200 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 16 1 0 +BITMAP +3800 +1800 +0000 +FF80 +FF80 +E000 +E000 +E000 +FF80 +FF80 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR Eacute +ENCODING 201 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 16 1 0 +BITMAP +0600 +0C00 +0000 +FF80 +FF80 +E000 +E000 +E000 +FF80 +FF80 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR Ecircumflex +ENCODING 202 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 16 1 0 +BITMAP +1C00 +3600 +0000 +FF80 +FF80 +E000 +E000 +E000 +FF80 +FF80 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR Edieresis +ENCODING 203 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 16 1 0 +BITMAP +3600 +3600 +0000 +FF80 +FF80 +E000 +E000 +E000 +FF80 +FF80 +E000 +E000 +E000 +E000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR Igrave +ENCODING 204 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 4 16 0 0 +BITMAP +C0 +60 +00 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +ENDCHAR +STARTCHAR Iacute +ENCODING 205 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 4 16 1 0 +BITMAP +70 +60 +00 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR Icircumflex +ENCODING 206 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 5 16 0 0 +BITMAP +70 +D8 +00 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +ENDCHAR +STARTCHAR Idieresis +ENCODING 207 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 5 16 0 0 +BITMAP +D8 +D8 +00 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +70 +ENDCHAR +STARTCHAR Eth +ENCODING 208 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 12 13 0 0 +BITMAP +7F80 +7FC0 +70E0 +7060 +7070 +FE70 +FE70 +7070 +7060 +70E0 +70E0 +7FC0 +7F80 +ENDCHAR +STARTCHAR Ntilde +ENCODING 209 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 16 1 0 +BITMAP +1D00 +2600 +0000 +E0C0 +F0C0 +F0C0 +F8C0 +F8C0 +ECC0 +ECC0 +E6C0 +E6C0 +E3C0 +E3C0 +E1C0 +E1C0 +ENDCHAR +STARTCHAR Ograve +ENCODING 210 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 11 16 1 0 +BITMAP +1C00 +0C00 +0000 +1F00 +3FC0 +71C0 +E0E0 +E060 +C060 +C060 +C060 +E060 +E0E0 +71C0 +3FC0 +1F00 +ENDCHAR +STARTCHAR Oacute +ENCODING 211 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 11 16 1 0 +BITMAP +0300 +0600 +0000 +1F00 +3FC0 +71C0 +E0E0 +E060 +C060 +C060 +C060 +E060 +E0E0 +71C0 +3FC0 +1F00 +ENDCHAR +STARTCHAR Ocircumflex +ENCODING 212 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 11 16 1 0 +BITMAP +0E00 +1B00 +0000 +1F00 +3FC0 +71C0 +E0E0 +E060 +C060 +C060 +C060 +E060 +E0E0 +71C0 +3FC0 +1F00 +ENDCHAR +STARTCHAR Otilde +ENCODING 213 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 11 16 1 0 +BITMAP +1F80 +1700 +0000 +1F00 +3FC0 +71C0 +E0E0 +E060 +C060 +C060 +C060 +E060 +E0E0 +71C0 +3FC0 +1F00 +ENDCHAR +STARTCHAR Odieresis +ENCODING 214 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 11 16 1 0 +BITMAP +1B00 +1B00 +0000 +1F00 +3FC0 +71C0 +E0E0 +E060 +C060 +C060 +C060 +E060 +E0E0 +71C0 +3FC0 +1F00 +ENDCHAR +STARTCHAR multiply +ENCODING 215 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 8 1 0 +BITMAP +C3 +E7 +7E +3C +3C +7E +E7 +42 +ENDCHAR +STARTCHAR Oslash +ENCODING 216 +SWIDTH 778 0 +DWIDTH 13 0 +BBX 12 13 1 0 +BITMAP +1F30 +3FE0 +71C0 +E0E0 +E160 +C260 +C460 +C860 +F060 +F0E0 +71C0 +FFC0 +9F00 +ENDCHAR +STARTCHAR Ugrave +ENCODING 217 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 16 1 0 +BITMAP +3800 +0C00 +0000 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +71C0 +7F80 +1F00 +ENDCHAR +STARTCHAR Uacute +ENCODING 218 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 16 1 0 +BITMAP +0700 +0C00 +0000 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +71C0 +7F80 +1F00 +ENDCHAR +STARTCHAR Ucircumflex +ENCODING 219 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 16 1 0 +BITMAP +1E00 +1300 +0000 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +71C0 +7F80 +1F00 +ENDCHAR +STARTCHAR Udieresis +ENCODING 220 +SWIDTH 722 0 +DWIDTH 12 0 +BBX 10 16 1 0 +BITMAP +3B00 +3B00 +0000 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +E1C0 +71C0 +7F80 +1F00 +ENDCHAR +STARTCHAR Yacute +ENCODING 221 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 16 1 0 +BITMAP +0600 +0C00 +0000 +C1C0 +E180 +6380 +7300 +3700 +3E00 +1E00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +ENDCHAR +STARTCHAR Thorn +ENCODING 222 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 13 1 0 +BITMAP +E000 +E000 +FF00 +FF80 +E180 +E1C0 +E1C0 +E180 +FF80 +FF00 +E000 +E000 +E000 +ENDCHAR +STARTCHAR germandbls +ENCODING 223 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 1 0 +BITMAP +3E00 +7F00 +E700 +E300 +E700 +EE00 +EF00 +E380 +E380 +E380 +E380 +EF00 +EE00 +ENDCHAR +STARTCHAR agrave +ENCODING 224 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +3800 +1800 +0000 +3E00 +7F00 +6300 +0300 +3F00 +6300 +E300 +7F00 +7B80 +ENDCHAR +STARTCHAR aacute +ENCODING 225 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +0600 +0C00 +0000 +3E00 +7F00 +6300 +0300 +3F00 +6300 +E300 +7F00 +7B80 +ENDCHAR +STARTCHAR acircumflex +ENCODING 226 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +1E00 +3600 +0000 +3E00 +7F00 +6300 +0300 +3F00 +6300 +E300 +7F00 +7B80 +ENDCHAR +STARTCHAR atilde +ENCODING 227 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 13 0 0 +BITMAP +3B00 +2E00 +0000 +0000 +3E00 +7F00 +6300 +0300 +3F00 +6300 +E300 +7F00 +7B80 +ENDCHAR +STARTCHAR adieresis +ENCODING 228 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 13 0 0 +BITMAP +3600 +3600 +0000 +0000 +3E00 +7F00 +6300 +0300 +3F00 +6300 +E300 +7F00 +7B80 +ENDCHAR +STARTCHAR aring +ENCODING 229 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 13 0 0 +BITMAP +0C00 +1200 +1200 +0C00 +3E00 +7F00 +6300 +0300 +3F00 +6300 +E300 +7F00 +7B80 +ENDCHAR +STARTCHAR ae +ENCODING 230 +SWIDTH 889 0 +DWIDTH 15 0 +BBX 15 9 0 0 +BITMAP +3EF8 +7FFC +638C +0FFE +7FFE +6300 +E38C +7FFC +3CF8 +ENDCHAR +STARTCHAR ccedilla +ENCODING 231 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 13 1 -4 +BITMAP +3C +FE +E7 +C0 +C0 +C0 +E7 +FE +3C +10 +38 +08 +78 +ENDCHAR +STARTCHAR egrave +ENCODING 232 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +3800 +1800 +0000 +3E00 +7F00 +6380 +FF80 +FF80 +E000 +6380 +7F00 +3E00 +ENDCHAR +STARTCHAR eacute +ENCODING 233 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +0600 +0C00 +0000 +3E00 +7F00 +6380 +FF80 +FF80 +E000 +6380 +7F00 +3E00 +ENDCHAR +STARTCHAR ecircumflex +ENCODING 234 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 12 0 0 +BITMAP +1E00 +3600 +0000 +3E00 +7F00 +6380 +FF80 +FF80 +E000 +6380 +7F00 +3E00 +ENDCHAR +STARTCHAR edieresis +ENCODING 235 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 13 0 0 +BITMAP +3600 +3600 +0000 +0000 +3E00 +7F00 +6380 +FF80 +FF80 +E000 +6380 +7F00 +3E00 +ENDCHAR +STARTCHAR igrave +ENCODING 236 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 4 12 0 0 +BITMAP +C0 +60 +00 +70 +70 +70 +70 +70 +70 +70 +70 +70 +ENDCHAR +STARTCHAR iacute +ENCODING 237 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 4 12 1 0 +BITMAP +70 +60 +00 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR icircumflex +ENCODING 238 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 5 12 0 0 +BITMAP +70 +D8 +00 +70 +70 +70 +70 +70 +70 +70 +70 +70 +ENDCHAR +STARTCHAR idieresis +ENCODING 239 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 5 13 0 0 +BITMAP +D8 +D8 +00 +00 +70 +70 +70 +70 +70 +70 +70 +70 +70 +ENDCHAR +STARTCHAR eth +ENCODING 240 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 1 0 +BITMAP +1A00 +3E00 +3E00 +2700 +3B00 +7F00 +E380 +C380 +C380 +C380 +E300 +7F00 +3C00 +ENDCHAR +STARTCHAR ntilde +ENCODING 241 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 13 1 0 +BITMAP +3A +7E +00 +00 +DE +FF +E3 +E3 +C3 +C3 +C3 +C3 +C3 +ENDCHAR +STARTCHAR ograve +ENCODING 242 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 12 1 0 +BITMAP +7000 +1800 +0000 +3C00 +7F00 +E300 +C380 +C380 +C380 +E300 +7F00 +3C00 +ENDCHAR +STARTCHAR oacute +ENCODING 243 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 12 1 0 +BITMAP +0E00 +0800 +0000 +3C00 +7F00 +E300 +C380 +C380 +C380 +E300 +7F00 +3C00 +ENDCHAR +STARTCHAR ocircumflex +ENCODING 244 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 12 1 0 +BITMAP +3C00 +2600 +0000 +3C00 +7F00 +E300 +C380 +C380 +C380 +E300 +7F00 +3C00 +ENDCHAR +STARTCHAR otilde +ENCODING 245 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 1 0 +BITMAP +3A00 +7E00 +0000 +0000 +3C00 +7F00 +E300 +C380 +C380 +C380 +E300 +7F00 +3C00 +ENDCHAR +STARTCHAR odieresis +ENCODING 246 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 1 0 +BITMAP +7600 +7600 +0000 +0000 +3C00 +7F00 +E300 +C380 +C380 +C380 +E300 +7F00 +3C00 +ENDCHAR +STARTCHAR divide +ENCODING 247 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 10 1 -1 +BITMAP +18 +38 +18 +00 +FF +FF +00 +18 +38 +18 +ENDCHAR +STARTCHAR oslash +ENCODING 248 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 9 1 0 +BITMAP +3C80 +7F00 +E300 +C780 +CB80 +D380 +E300 +FF00 +BC00 +ENDCHAR +STARTCHAR ugrave +ENCODING 249 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 12 1 0 +BITMAP +70 +18 +00 +E3 +E3 +E3 +E3 +E3 +E3 +E7 +FF +7B +ENDCHAR +STARTCHAR uacute +ENCODING 250 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 12 1 0 +BITMAP +0E +08 +00 +E3 +E3 +E3 +E3 +E3 +E3 +E7 +FF +7B +ENDCHAR +STARTCHAR ucircumflex +ENCODING 251 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 12 1 0 +BITMAP +3C +26 +00 +E3 +E3 +E3 +E3 +E3 +E3 +E7 +FF +7B +ENDCHAR +STARTCHAR udieresis +ENCODING 252 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 8 13 1 0 +BITMAP +76 +76 +00 +00 +E3 +E3 +E3 +E3 +E3 +E3 +E7 +FF +7B +ENDCHAR +STARTCHAR yacute +ENCODING 253 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 16 0 -4 +BITMAP +0600 +0C00 +0000 +E180 +6380 +7300 +7300 +3700 +3600 +3E00 +1E00 +1C00 +1C00 +1C00 +7800 +7800 +ENDCHAR +STARTCHAR thorn +ENCODING 254 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 17 1 -4 +BITMAP +C000 +C000 +C000 +C000 +DE00 +FF00 +E380 +C380 +C380 +C380 +E300 +FF00 +DE00 +C000 +C000 +C000 +C000 +ENDCHAR +STARTCHAR ydieresis +ENCODING 255 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 17 0 -4 +BITMAP +3600 +3600 +0000 +0000 +E180 +6380 +7300 +7300 +3700 +3600 +3E00 +1E00 +1C00 +1C00 +1C00 +7800 +7800 +ENDCHAR +STARTCHAR dotlessi +ENCODING 305 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 9 1 0 +BITMAP +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR Lslash +ENCODING 321 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 10 13 0 0 +BITMAP +7000 +7000 +7000 +7000 +7400 +7C00 +7000 +F000 +7000 +7000 +7000 +7FC0 +7FC0 +ENDCHAR +STARTCHAR lslash +ENCODING 322 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 5 13 0 0 +BITMAP +70 +70 +70 +70 +78 +78 +70 +F0 +F0 +70 +70 +70 +70 +ENDCHAR +STARTCHAR OE +ENCODING 338 +SWIDTH 1000 0 +DWIDTH 17 0 +BBX 15 13 1 0 +BITMAP +3FFE +7FFE +F1C0 +E1C0 +C1C0 +C1FE +C1FE +C1C0 +C1C0 +E1C0 +F3C0 +7FFE +1FFE +ENDCHAR +STARTCHAR oe +ENCODING 339 +SWIDTH 944 0 +DWIDTH 16 0 +BBX 15 9 1 0 +BITMAP +3CF0 +7FFC +E38C +C3FC +C3FE +C300 +E38C +7FFC +3CF8 +ENDCHAR +STARTCHAR Scaron +ENCODING 352 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 16 1 0 +BITMAP +3600 +1C00 +0000 +3E00 +7F00 +E380 +C180 +E000 +FC00 +7F80 +0F80 +01C0 +C1C0 +E180 +7F80 +3E00 +ENDCHAR +STARTCHAR scaron +ENCODING 353 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 12 1 0 +BITMAP +6C +38 +00 +7C +FE +C7 +FC +7E +07 +C7 +FE +7C +ENDCHAR +STARTCHAR Ydieresis +ENCODING 376 +SWIDTH 667 0 +DWIDTH 11 0 +BBX 10 16 1 0 +BITMAP +3600 +3600 +0000 +C1C0 +E180 +6380 +7300 +3700 +3E00 +1E00 +1C00 +1C00 +1C00 +1C00 +1C00 +1C00 +ENDCHAR +STARTCHAR Zcaron +ENCODING 381 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 10 16 0 0 +BITMAP +1B00 +0E00 +0000 +7FC0 +7FC0 +03C0 +0380 +0700 +0E00 +0E00 +1C00 +3800 +7800 +7000 +FFC0 +FFC0 +ENDCHAR +STARTCHAR zcaron +ENCODING 382 +SWIDTH 500 0 +DWIDTH 9 0 +BBX 8 12 0 0 +BITMAP +36 +1C +00 +7F +7F +0F +0E +1C +38 +70 +FF +FF +ENDCHAR +STARTCHAR florin +ENCODING 402 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 17 0 -4 +BITMAP +0780 +0F80 +0C00 +0C00 +7F00 +7F00 +1C00 +1C00 +1800 +1800 +1800 +1800 +3800 +3800 +3000 +F000 +E000 +ENDCHAR +STARTCHAR circumflex +ENCODING 710 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 5 2 0 11 +BITMAP +70 +F8 +ENDCHAR +STARTCHAR caron +ENCODING 711 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 5 2 0 11 +BITMAP +C8 +78 +ENDCHAR +STARTCHAR breve +ENCODING 728 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 5 2 0 10 +BITMAP +C8 +78 +ENDCHAR +STARTCHAR dotaccent +ENCODING 729 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 2 2 2 11 +BITMAP +C0 +C0 +ENDCHAR +STARTCHAR ring +ENCODING 730 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 4 3 1 10 +BITMAP +60 +90 +60 +ENDCHAR +STARTCHAR ogonek +ENCODING 731 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 4 4 1 -4 +BITMAP +60 +C0 +C0 +70 +ENDCHAR +STARTCHAR tilde +ENCODING 732 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 6 2 0 11 +BITMAP +64 +B8 +ENDCHAR +STARTCHAR hungarumlaut +ENCODING 733 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 7 2 1 11 +BITMAP +EE +CC +ENDCHAR +STARTCHAR endash +ENCODING 8211 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 9 2 0 4 +BITMAP +FF80 +FF80 +ENDCHAR +STARTCHAR emdash +ENCODING 8212 +SWIDTH 1000 0 +DWIDTH 17 0 +BBX 17 2 0 4 +BITMAP +FFFF80 +FFFF80 +ENDCHAR +STARTCHAR quoteleft +ENCODING 8216 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 5 1 8 +BITMAP +60 +C0 +E0 +E0 +E0 +ENDCHAR +STARTCHAR quoteright +ENCODING 8217 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 5 1 8 +BITMAP +E0 +E0 +40 +40 +80 +ENDCHAR +STARTCHAR quotesinglbase +ENCODING 8218 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 3 4 1 -2 +BITMAP +E0 +E0 +40 +40 +ENDCHAR +STARTCHAR quotedblleft +ENCODING 8220 +SWIDTH 500 0 +DWIDTH 9 0 +BBX 6 5 1 8 +BITMAP +44 +88 +CC +CC +CC +ENDCHAR +STARTCHAR quotedblright +ENCODING 8221 +SWIDTH 500 0 +DWIDTH 9 0 +BBX 6 5 1 8 +BITMAP +CC +CC +44 +44 +88 +ENDCHAR +STARTCHAR quotedblbase +ENCODING 8222 +SWIDTH 500 0 +DWIDTH 9 0 +BBX 6 5 1 -3 +BITMAP +CC +CC +44 +C4 +08 +ENDCHAR +STARTCHAR dagger +ENCODING 8224 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 15 1 -2 +BITMAP +18 +18 +18 +18 +FF +FF +18 +18 +18 +18 +18 +18 +18 +18 +18 +ENDCHAR +STARTCHAR daggerdbl +ENCODING 8225 +SWIDTH 556 0 +DWIDTH 9 0 +BBX 8 16 1 -3 +BITMAP +18 +18 +18 +18 +FF +FF +18 +18 +18 +18 +FF +FF +18 +18 +18 +18 +ENDCHAR +STARTCHAR bullet +ENCODING 8226 +SWIDTH 350 0 +DWIDTH 6 0 +BBX 6 6 0 3 +BITMAP +78 +F8 +FC +FC +78 +30 +ENDCHAR +STARTCHAR ellipsis +ENCODING 8230 +SWIDTH 1000 0 +DWIDTH 17 0 +BBX 13 2 2 0 +BITMAP +C718 +C718 +ENDCHAR +STARTCHAR perthousand +ENCODING 8240 +SWIDTH 1000 0 +DWIDTH 17 0 +BBX 17 12 0 0 +BITMAP +708000 +F90000 +C90000 +CA0000 +FA0000 +340000 +0D8600 +0BCF80 +1E6980 +166980 +23EF80 +21C700 +ENDCHAR +STARTCHAR guilsinglleft +ENCODING 8249 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 3 6 1 1 +BITMAP +20 +60 +C0 +C0 +60 +20 +ENDCHAR +STARTCHAR guilsinglright +ENCODING 8250 +SWIDTH 333 0 +DWIDTH 6 0 +BBX 3 6 1 1 +BITMAP +C0 +E0 +20 +20 +E0 +C0 +ENDCHAR +STARTCHAR fraction +ENCODING 8260 +SWIDTH 167 0 +DWIDTH 3 0 +BBX 8 12 -3 0 +BITMAP +01 +03 +02 +06 +04 +08 +18 +10 +30 +20 +40 +C0 +ENDCHAR +STARTCHAR trademark +ENCODING 8482 +SWIDTH 1000 0 +DWIDTH 17 0 +BBX 15 7 1 6 +BITMAP +FDCE +31CE +31CE +31FE +31FE +31B6 +31B6 +ENDCHAR +STARTCHAR minus +ENCODING 8722 +SWIDTH 584 0 +DWIDTH 10 0 +BBX 8 2 1 3 +BITMAP +FF +FF +ENDCHAR +STARTCHAR fi +ENCODING 64257 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3980 +3980 +7000 +7000 +F980 +F980 +7180 +7180 +7180 +7180 +7180 +7180 +7180 +ENDCHAR +STARTCHAR fl +ENCODING 64258 +SWIDTH 611 0 +DWIDTH 10 0 +BBX 9 13 0 0 +BITMAP +3980 +3980 +7180 +7180 +F980 +F980 +7180 +7180 +7180 +7180 +7180 +7180 +7180 +ENDCHAR +STARTCHAR .notdef +ENCODING -1 +SWIDTH 278 0 +DWIDTH 5 0 +BBX 1 1 0 0 +BITMAP +00 +ENDCHAR +ENDFONT diff --git a/CircuitPython_displayio/castle_sprite_sheet.bmp b/CircuitPython_displayio/castle_sprite_sheet.bmp new file mode 100644 index 000000000..84d9c8191 Binary files /dev/null and b/CircuitPython_displayio/castle_sprite_sheet.bmp differ diff --git a/CircuitPython_displayio/cp_sprite_sheet.bmp b/CircuitPython_displayio/cp_sprite_sheet.bmp new file mode 100644 index 000000000..d51b03b04 Binary files /dev/null and b/CircuitPython_displayio/cp_sprite_sheet.bmp differ diff --git a/CircuitPython_displayio/displayio_display_driver.py b/CircuitPython_displayio/displayio_display_driver.py new file mode 100644 index 000000000..e40f300ba --- /dev/null +++ b/CircuitPython_displayio/displayio_display_driver.py @@ -0,0 +1,40 @@ +import board +import displayio +import adafruit_ili9341 + +# Release any previously configured displays +displayio.release_displays() + +# Setup SPI bus +spi_bus = board.SPI() + +# Digital pins to use +tft_cs = board.D10 +tft_dc = board.D9 + +# Setup the display bus +display_bus = displayio.FourWire(spi_bus, command=tft_dc, chip_select=tft_cs) + +# Setup the Display +display = adafruit_ili9341.ILI9341(display_bus, width=320, height=240) + +# +# DONE - now you can use the display however you want +# + +bitmap = displayio.Bitmap(320, 240, 2) + +palette = displayio.Palette(2) +palette[0] = 0 +palette[1] = 0xFFFFFF + +for x in range(10, 20): + for y in range(10, 20): + bitmap[x, y] = 1 + +tile_grid = displayio.TileGrid(bitmap, pixel_shader=palette) + +group = displayio.Group() +group.append(tile_grid) +display.show(group) +display.refresh_soon() diff --git a/CircuitPython_displayio/displayio_display_manual.py b/CircuitPython_displayio/displayio_display_manual.py new file mode 100644 index 000000000..4d1df4cd8 --- /dev/null +++ b/CircuitPython_displayio/displayio_display_manual.py @@ -0,0 +1,67 @@ +import board +import displayio + +# Release any previously configured displays +displayio.release_displays() + +# Setup SPI bus +spi_bus = board.SPI() + +# Digital pins to use +tft_cs = board.D10 +tft_dc = board.D9 + +# Setup the display bus +display_bus = displayio.FourWire(spi_bus, command=tft_dc, chip_select=tft_cs) + +# Setup the initialization sequence +# stolen from adafruit_ili9341.py +INIT_SEQUENCE = ( + b"\x01\x80\x80" # Software reset then delay 0x80 (128ms) + b"\xEF\x03\x03\x80\x02" + b"\xCF\x03\x00\xC1\x30" + b"\xED\x04\x64\x03\x12\x81" + b"\xE8\x03\x85\x00\x78" + b"\xCB\x05\x39\x2C\x00\x34\x02" + b"\xF7\x01\x20" + b"\xEA\x02\x00\x00" + b"\xc0\x01\x23" # Power control VRH[5:0] + b"\xc1\x01\x10" # Power control SAP[2:0];BT[3:0] + b"\xc5\x02\x3e\x28" # VCM control + b"\xc7\x01\x86" # VCM control2 + b"\x36\x01\x38" # Memory Access Control + b"\x37\x01\x00" # Vertical scroll zero + b"\x3a\x01\x55" # COLMOD: Pixel Format Set + b"\xb1\x02\x00\x18" # Frame Rate Control (In Normal Mode/Full Colors) + b"\xb6\x03\x08\x82\x27" # Display Function Control + b"\xF2\x01\x00" # 3Gamma Function Disable + b"\x26\x01\x01" # Gamma curve selected + b"\xe0\x0f\x0F\x31\x2B\x0C\x0E\x08\x4E\xF1\x37\x07\x10\x03\x0E\x09\x00" # Set Gamma + b"\xe1\x0f\x00\x0E\x14\x03\x11\x07\x31\xC1\x48\x08\x0F\x0C\x31\x36\x0F" # Set Gamma + b"\x11\x80\x78" # Exit Sleep then delay 0x78 (120ms) + b"\x29\x80\x78" # Display on then delay 0x78 (120ms) +) + +# Setup the Display +display = displayio.Display(display_bus, INIT_SEQUENCE, width=320, height=240) + +# +# DONE - now you can use the display however you want +# + +bitmap = displayio.Bitmap(320, 240, 2) + +palette = displayio.Palette(2) +palette[0] = 0 +palette[1] = 0xFFFFFF + +for x in range(10, 20): + for y in range(10, 20): + bitmap[x, y] = 1 + +tile_grid = displayio.TileGrid(bitmap, pixel_shader=palette) + +group = displayio.Group() +group.append(tile_grid) +display.show(group) +display.refresh_soon() \ No newline at end of file diff --git a/CircuitPython_displayio/displayio_font.py b/CircuitPython_displayio/displayio_font.py new file mode 100644 index 000000000..60ffee1ab --- /dev/null +++ b/CircuitPython_displayio/displayio_font.py @@ -0,0 +1,21 @@ +import board +import displayio +from adafruit_bitmap_font import bitmap_font +from adafruit_display_text import label + +display = board.DISPLAY + +# Set text, font, and color +text = "HELLO WORLD" +font = bitmap_font.load_font("/Helvetica-Bold-16.bdf") +color = 0xFF00FF + +# Create the tet label +text_area = label.Label(font, text=text, color=color) + +# Set the location +text_area.x = 20 +text_area.y = 20 + +# Show it +display.show(text_area) \ No newline at end of file diff --git a/CircuitPython_displayio/displayio_imageload.py b/CircuitPython_displayio/displayio_imageload.py new file mode 100644 index 000000000..666a6bf04 --- /dev/null +++ b/CircuitPython_displayio/displayio_imageload.py @@ -0,0 +1,25 @@ +import board +import displayio +import adafruit_imageload + +display = board.DISPLAY + +bitmap, palette = adafruit_imageload.load("/purple.bmp", + bitmap=displayio.Bitmap, + palette=displayio.Palette) + +# Create a TileGrid to hold the bitmap +tile_grid = displayio.TileGrid(bitmap, pixel_shader=palette) + +# Create a Group to hold the TileGrid +group = displayio.Group() + +# Add the TileGrid to the Group +group.append(tile_grid) + +# Add the Group to the Display +display.show(group) + +# Loop forever so you can enjoy your image +while True: + pass \ No newline at end of file diff --git a/CircuitPython_displayio/displayio_ondiskbitmap.py b/CircuitPython_displayio/displayio_ondiskbitmap.py new file mode 100644 index 000000000..aed61b897 --- /dev/null +++ b/CircuitPython_displayio/displayio_ondiskbitmap.py @@ -0,0 +1,26 @@ +import board +import displayio + +display = board.DISPLAY + +# Open the file +with open("/purple.bmp", "rb") as bitmap_file: + + # Setup the file as the bitmap data source + bitmap = displayio.OnDiskBitmap(bitmap_file) + + # Create a TileGrid to hold the bitmap + tile_grid = displayio.TileGrid(bitmap, pixel_shader=displayio.ColorConverter()) + + # Create a Group to hold the TileGrid + group = displayio.Group() + + # Add the TileGrid to the Group + group.append(tile_grid) + + # Add the Group to the Display + display.show(group) + + # Loop forever so you can enjoy your image + while True: + pass \ No newline at end of file diff --git a/CircuitPython_displayio/displayio_parallelbus.py b/CircuitPython_displayio/displayio_parallelbus.py new file mode 100644 index 000000000..562fc1cc0 --- /dev/null +++ b/CircuitPython_displayio/displayio_parallelbus.py @@ -0,0 +1,65 @@ +import board +import displayio + +# Release any previously configured displays +displayio.release_displays() + +# Setup the display bus +# Tested with a Metro M4 Express +display_bus = displayio.ParallelBus(data0=board.D13, + command=board.D6, + chip_select=board.D7, + write=board.D5, + read=board.D4) + +# Setup the initialization sequence +# stolen from adafruit_ili9341.py +INIT_SEQUENCE = ( + b"\x01\x80\x80" # Software reset then delay 0x80 (128ms) + b"\xEF\x03\x03\x80\x02" + b"\xCF\x03\x00\xC1\x30" + b"\xED\x04\x64\x03\x12\x81" + b"\xE8\x03\x85\x00\x78" + b"\xCB\x05\x39\x2C\x00\x34\x02" + b"\xF7\x01\x20" + b"\xEA\x02\x00\x00" + b"\xc0\x01\x23" # Power control VRH[5:0] + b"\xc1\x01\x10" # Power control SAP[2:0];BT[3:0] + b"\xc5\x02\x3e\x28" # VCM control + b"\xc7\x01\x86" # VCM control2 + b"\x36\x01\x38" # Memory Access Control + b"\x37\x01\x00" # Vertical scroll zero + b"\x3a\x01\x55" # COLMOD: Pixel Format Set + b"\xb1\x02\x00\x18" # Frame Rate Control (In Normal Mode/Full Colors) + b"\xb6\x03\x08\x82\x27" # Display Function Control + b"\xF2\x01\x00" # 3Gamma Function Disable + b"\x26\x01\x01" # Gamma curve selected + b"\xe0\x0f\x0F\x31\x2B\x0C\x0E\x08\x4E\xF1\x37\x07\x10\x03\x0E\x09\x00" # Set Gamma + b"\xe1\x0f\x00\x0E\x14\x03\x11\x07\x31\xC1\x48\x08\x0F\x0C\x31\x36\x0F" # Set Gamma + b"\x11\x80\x78" # Exit Sleep then delay 0x78 (120ms) + b"\x29\x80\x78" # Display on then delay 0x78 (120ms) +) + +# Setup the Display +display = displayio.Display(display_bus, INIT_SEQUENCE, width=320, height=240) + +# +# DONE - now you can use the display however you want +# + +bitmap = displayio.Bitmap(320, 240, 2) + +palette = displayio.Palette(2) +palette[0] = 0 +palette[1] = 0xFFFFFF + +for x in range(10, 20): + for y in range(10, 20): + bitmap[x, y] = 1 + +tile_grid = displayio.TileGrid(bitmap, pixel_shader=palette) + +group = displayio.Group() +group.append(tile_grid) +display.show(group) +display.refresh_soon() \ No newline at end of file diff --git a/CircuitPython_displayio/displayio_pixels.py b/CircuitPython_displayio/displayio_pixels.py new file mode 100644 index 000000000..a37dc01f2 --- /dev/null +++ b/CircuitPython_displayio/displayio_pixels.py @@ -0,0 +1,32 @@ +import board +import displayio + +display = board.DISPLAY + +# Create a bitmap with two colors +bitmap = displayio.Bitmap(display.width, display.height, 2) + +# Create a two color palette +palette = displayio.Palette(2) +palette[0] = 0x000000 +palette[1] = 0xffffff + +# Create a TileGrid using the Bitmap and Palette +tile_grid = displayio.TileGrid(bitmap, pixel_shader=palette) + +# Create a Group +group = displayio.Group() + +# Add the TileGrid to the Group +group.append(tile_grid) + +# Add the Group to the Display +display.show(group) + +# Draw a pixel +bitmap[80, 50] = 1 + +# Draw even more pixels +for x in range(150, 170): + for y in range(100, 110): + bitmap[x, y] = 1 \ No newline at end of file diff --git a/CircuitPython_displayio/displayio_sprite_sheet.py b/CircuitPython_displayio/displayio_sprite_sheet.py new file mode 100644 index 000000000..0f4caa15b --- /dev/null +++ b/CircuitPython_displayio/displayio_sprite_sheet.py @@ -0,0 +1,38 @@ +import time +import board +import displayio +import adafruit_imageload + +display = board.DISPLAY + +# Load the sprite sheet (bitmap) +sprite_sheet, palette = adafruit_imageload.load("/cp_sprite_sheet.bmp", + bitmap=displayio.Bitmap, + palette=displayio.Palette) + +# Create a sprite (tilegrid) +sprite = displayio.TileGrid(sprite_sheet, pixel_shader=palette, + width = 1, + height = 1, + tile_width = 16, + tile_height = 16) + +# Create a Group to hold the sprite +group = displayio.Group(scale=1) + +# Add the sprite to the Group +group.append(sprite) + +# Add the Group to the Display +display.show(group) + +# Set sprite location +group.x = 120 +group.y = 80 + +# Loop through each sprite in the sprite sheet +source_index = 0 +while True: + sprite[0] = source_index % 6 + source_index += 1 + time.sleep(2) \ No newline at end of file diff --git a/CircuitPython_displayio/displayio_text.py b/CircuitPython_displayio/displayio_text.py new file mode 100644 index 000000000..d7a89fd48 --- /dev/null +++ b/CircuitPython_displayio/displayio_text.py @@ -0,0 +1,21 @@ +import board +import displayio +import terminalio +from adafruit_display_text import label + +display = board.DISPLAY + +# Set text, font, and color +text = "HELLO WORLD" +font = terminalio.FONT +color = 0x0000FF + +# Create the tet label +text_area = label.Label(font, text="HELLO WORLD", color=0x00FF00) + +# Set the location +text_area.x = 100 +text_area.y = 80 + +# Show it +display.show(text_area) \ No newline at end of file diff --git a/CircuitPython_displayio/displayio_tilegrids.py b/CircuitPython_displayio/displayio_tilegrids.py new file mode 100644 index 000000000..4737b277f --- /dev/null +++ b/CircuitPython_displayio/displayio_tilegrids.py @@ -0,0 +1,66 @@ +import board +import displayio +import adafruit_imageload + +display = board.DISPLAY + +# Load the sprite sheet (bitmap) +sprite_sheet, palette = adafruit_imageload.load("/castle_sprite_sheet.bmp", + bitmap=displayio.Bitmap, + palette=displayio.Palette) + +# Create the sprite TileGrid +sprite = displayio.TileGrid(sprite_sheet, pixel_shader=palette, + width = 1, + height = 1, + tile_width = 16, + tile_height = 16, + default_tile = 0) + +# Create the castle TileGrid +castle = displayio.TileGrid(sprite_sheet, pixel_shader=palette, + width = 6, + height = 5, + tile_width = 16, + tile_height = 16) + +# Create a Group to hold the sprite and add it +sprite_group = displayio.Group() +sprite_group.append(sprite) + +# Create a Group to hold the castle and add it +castle_group = displayio.Group(scale=3) +castle_group.append(castle) + +# Create a Group to hold the sprite and castle +group = displayio.Group() + +# Add the sprite and castle to the group +group.append(castle_group) +group.append(sprite_group) + +# Castle tile assignments +# corners +castle[0, 0] = 3 # upper left +castle[5, 0] = 5 # upper right +castle[0, 4] = 9 # lower left +castle[5, 4] = 11 # lower right +# top / bottom walls +for x in range(1, 5): + castle[x, 0] = 4 # top + castle[x, 4] = 10 # bottom +# left/ right walls +for y in range(1, 4): + castle[0, y] = 6 # left + castle[5, y] = 8 # right +# floor +for x in range(1, 5): + for y in range(1, 4): + castle[x, y] = 7 # floor + +# put the sprite somewhere in the castle +sprite.x = 110 +sprite.y = 70 + +# Add the Group to the Display +display.show(group) \ No newline at end of file diff --git a/CircuitPython_displayio/purple.bmp b/CircuitPython_displayio/purple.bmp new file mode 100644 index 000000000..022e71309 Binary files /dev/null and b/CircuitPython_displayio/purple.bmp differ