data = (char_table[text[((i)/(6-compressed_charset))]-32][((i)%(6-compressed_charset))] << shift);
00024 unsigned char char_table[103][6] ={{0, 0, 0, 0, 0, 0},
00025 {0, 0, 79, 0, 0, 0},
00026 {0, 7, 0, 7, 0, 0},
00027 {20, 127, 20, 127, 20, 0},
00028 {36, 42, 127, 42, 18, 0},
00029 {35, 19, 8, 100, 98, 0},
00030 {54, 73, 85, 33, 80, 0},
00031 {0, 5, 3, 0, 0, 0},
00032 {0, 28, 34, 65, 0, 0},
00033 {0, 65, 34, 28, 0, 0},
00034 {20, 8, 62, 8, 20, 0},
00035 {8, 8, 62, 8, 8, 0},
00036 {0, 160, 96, 0, 0, 0},
00037 {8, 8, 8, 8, 8, 0},
00038 {0, 96, 96, 0, 0, 0},
00039 {32, 16, 8, 4, 2, 0},
00040 {62, 81, 73, 69, 62, 0},
00041 {0, 66, 127, 64, 0, 0},
00042 {66, 97, 81, 73, 70, 0},
00043 {33, 65, 69, 71, 57, 0},
00044 {24, 20, 18, 127, 16, 0},
00045 {39, 69, 69, 69, 57, 0},
00046 {60, 74, 73, 73, 48, 0},
00047 {1, 113, 9, 5, 3, 0},
00048 {54, 73, 73, 73, 54, 0},
00049 {6, 73, 73, 41, 30, 0},
00050 {0, 108, 108, 0, 0, 0},
00051 {0, 172, 108, 0, 0, 0},
00052 {8, 20, 34, 65, 0, 0},
00053 {20, 20, 20, 20, 20, 0},
00054 {0, 65, 34, 20, 8, 0},
00055 {2, 1, 81, 9, 6, 0},
00056 {50, 73, 121, 65, 62, 0},
00057 {126, 9, 9, 9, 126, 0},
00058 {127, 73, 73, 73, 54, 0},
00059 {62, 65, 65, 65, 34, 0},
00060 {127, 65, 65, 65, 62, 0},
00061 {127, 73, 73, 73, 73, 0},
00062 {127, 9, 9, 9, 9, 0},
00063 {62, 65, 73, 73, 58, 0},
00064 {127, 8, 8, 8, 127, 0},
00065 {0, 65, 127, 65, 0, 0},
00066 {33, 65, 65, 65, 63, 0},
00067 {127, 8, 20, 34, 65, 0},
00068 {127, 64, 64, 64, 64, 0},
00069 {127, 2, 4, 2, 127, 0},
00070 {127, 2, 4, 8, 127, 0},
00071 {62, 65, 65, 65, 62, 0},
00072 {127, 9, 9, 9, 6, 0},
00073 {62, 65, 97, 65, 190, 0},
00074 {127, 9, 25, 41, 70, 0},
00075 {38, 73, 73, 73, 50, 0},
00076 {1, 1, 127, 1, 1, 0},
00077 {63, 64, 64, 64, 63, 0},
00078 {31, 32, 64, 32, 31, 0},
00079 {127, 32, 16, 32, 127, 0},
00080 {99, 20, 8, 20, 99, 0},
00081 {3, 4, 120, 4, 3, 0},
00082 {97, 81, 73, 69, 67, 0},
00083 {0, 127, 65, 65, 0, 0},
00084 {2, 4, 8, 16, 32, 0},
00085 {0, 65, 65, 127, 0, 0},
00086 {4, 2, 1, 2, 4, 0},
00087 {64, 64, 64, 64, 64, 0},
00088 {0, 1, 2, 4, 0, 0},
00089 {32, 84, 84, 84, 120, 0},
00090 {127, 72, 68, 68, 56, 0},
00091 {56, 68, 68, 68, 68, 0},
00092 {56, 68, 68, 72, 127, 0},
00093 {56, 84, 84, 84, 24, 0},
00094 {8, 126, 9, 1, 2, 0},
00095 {24, 164, 164, 164, 124, 0},
00096 {127, 8, 4, 4, 120, 0},
00097 {0, 68, 125, 64, 0, 0},
00098 {32, 64, 68, 61, 0, 0},
00099 {127, 16, 40, 68, 0, 0},
00100 {0, 65, 127, 64, 0, 0},
00101 {124, 4, 24, 4, 120, 0},
00102 {124, 8, 4, 4, 120, 0},
00103 {56, 68, 68, 68, 56, 0},
00104 {252, 36, 36, 36, 24, 0},
00105 {24, 36, 36, 36, 252, 0},
00106 {124, 8, 4, 4, 8, 0},
00107 {72, 84, 84, 84, 32, 0},
00108 {4, 127, 68, 64, 32, 0},
00109 {60, 64, 64, 32, 124, 0},
00110 {28, 32, 64, 32, 28, 0},
00111 {60, 64, 48, 64, 60, 0},
00112 {68, 40, 16, 40, 68, 0},
00113 {12, 80, 80, 80, 60, 0},
00114 {68, 100, 84, 76, 68, 0},
00115 {0, 8, 54, 65, 0, 0},
00116 {0, 0, 127, 0, 0, 0},
00117 {0, 65, 54, 8, 0, 0},
00118 {8, 4, 8, 16, 8, 0},
00119 {0, 0, 0, 0, 0, 0},
00120 {32, 85, 84, 85, 120, 0},
00121 {56, 69, 68, 69, 56, 0},
00122 {56, 66, 64, 66, 56, 0},
00123 {124, 11, 10, 11, 124, 0},
00124 {60, 67, 66, 67, 60, 0},
00125 {60, 65, 64, 65, 60, 0},
00126 {254, 9, 73, 73, 54, 0}};
compressed_charset (0 | 1) "frisst" die leerzeichen zwischen den zeichen.
der Charset stammt aus meinen Spielereien mit 5x8 DOT-Matrix-LED-Displays. Irgendwie muss ich die 10 tück noch mal zusammenbasteln
Die ganze Zeile addressiert ein Byte aus dem ganzen String anhand des darzustellenden ASCII-Zeichens.
Zeilennummern müsst ihr selbst entfernen
i ist der laufindex durch den text
, shift schiebt den text nach unten
/medra