// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // This will give a basic character set for an LCD 64 x 125 // graphics type display. It cannot be loaded as a library // because the table is compiled into RAM. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // HISTORY: // // REQUIRES: // #URL-lib "http://pin1.org/forthlib/flb/General/pinsel.flb" sid=100 // #URL-lib "http://pin1.org/forthlib/flb/General/LCD-Graphic.flb" // Use this in conjunction with LCD_Graphic.fth // This provides a character set. NOTE this is s vaey ineficent way // to store bytes // ============ LCD Character set ================== here 40 + constant LCDcharSet &ff c, &ff c, &ff c, &ff c, &ff c, // 32(space) &ff c, &ff c, &a0 c, &ff c, &ff c, // 33(!) &ff c, &f1 c, &ff c, &f1 c, &ff c, // 34(") &eb c, &80 c, &eb c, &80 c, &eb c, // 35(#) &DB c, &D5 c, &94 c, &D5 c, &ED c, // 36($) &9C c, &EC c, &F7 c, &9B c, &9C c, // 37() &CF c, &B5 c, &B2 c, &8D c, &CF c, // 38(&) &FF c, &FF c, &F8 c, &FF c, &FF c, // 39(') &E3 c, &DD c, &BE c, &FF c, &FF c, // 40(() &FF c, &FF c, &BE c, &DD c, &E3 c, // 41()) &FF c, &F6 c, &F9 c, &F9 c, &F6 c, // 42 &01 c, &01 c, &01 c, &01 c, &01 c, // 43(+) &FF c, &FF c, &BF c, &CF c, &FF c, // 44(,) &FF c, &F7 c, &F7 c, &F7 c, &F7 c, // 45(-) &FF c, &FF c, &CF c, &CF c, &FF c, // 46(.) &FF c, &9F c, &E3 c, &FC c, &FF c, // 47(/) &C1 c, &AE c, &B6 c, &BA c, &C1 c, // 48(0) &BB c, &BD c, &80 c, &BF c, &BF c, // 49(1) &9D c, &AE c, &B6 c, &B6 c, &B9 c, // 50(2) &DD c, &BE c, &B6 c, &B6 c, &C9 c, // 51(3) &E7 c, &EB c, &ED c, &80 c, &EF c, // 52(4) &D8 c, &BA c, &BA c, &BA c, &C6 c, // 53(5) &C3 c, &B5 c, &B6 c, &B6 c, &CF c, // 55(6) &FE c, &8E c, &F6 c, &FA c, &FC c, // 56(7) &C9 c, &B6 c, &B6 c, &B6 c, &C9 c, // 57(8) &F9 c, &B6 c, &B6 c, &D6 c, &E1 c, // 57(9) &FF c, &FF c, &93 c, &93 c, &FF c, // 58(:) &FF c, &B9 c, &C9 c, &FF c, &FF c, // 59(;) &FF c, &F7 c, &EB c, &DD c, &FF c, // 60(<) &FF c, &EB c, &EB c, &EB c, &EB c, // 61(=) &FF c, &DD c, &EB c, &F7 c, &FF c, // 62(>) &FD c, &FE c, &A6 c, &FA c, &FD c, // 63(?) &D5 c, &AA c, &A2 c, &AE c, &B1 c, // 64(@) &81 c, &EE c, &EE c, &EE c, &81 c, // 65(A) &80 c, &B6 c, &B6 c, &B6 c, &C9 c, // 66(B) &C1 c, &BE c, &BE c, &BE c, &DD c, // 67(C) &80 c, &BE c, &BE c, &DD c, &E3 c, // 68(D) &80 c, &B6 c, &B6 c, &B6 c, &BE c, // 69(E) &80 c, &F6 c, &F6 c, &F6 c, &FE c, // 70(F) &C1 c, &BE c, &B6 c, &B6 c, &85 c, // 71(G) &80 c, &F7 c, &F7 c, &F7 c, &80 c, // 72(H) &FF c, &BE c, &80 c, &BE c, &FF c, // 73(I) &CF c, &BF c, &BE c, &C0 c, &FE c, // 74(J) &80 c, &F7 c, &EB c, &DD c, &BE c, // 75(K) &80 c, &BF c, &BF c, &BF c, &BF c, // 76(L) &80 c, &FD c, &F3 c, &FD c, &80 c, // 77(M) &80 c, &FB c, &F7 c, &EF c, &80 c, // 78(N) &C1 c, &BE c, &BE c, &BE c, &C1 c, // 79(O) &80 c, &F6 c, &F6 c, &F6 c, &F9 c, // 80(P) &C1 c, &BE c, &9E c, &BE c, &C1 c, // 81(Q) &80 c, &F6 c, &E6 c, &D6 c, &B9 c, // 82(R) &D9 c, &B6 c, &B6 c, &B6 c, &CD c, // 83(S) &FE c, &FE c, &80 c, &FE c, &FE c, // 84(T) &C0 c, &BF c, &BF c, &BF c, &C0 c, // 85(U) &E0 c, &DF c, &BF c, &DF c, &E0 c, // 86(V) &C0 c, &BF c, &C7 c, &BF c, &C0 c, // 87(W) &9C c, &EB c, &F7 c, &EB c, &9C c, // 88(X) &F8 c, &F7 c, &8F c, &F7 c, &F8 c, // 89(Y) &9E c, &AE c, &B6 c, &BA c, &BC c, // 90(Z) &FF c, &FF c, &80 c, &BE c, &FF c, // 91([) &FF c, &FC c, &E3 c, &9F c, &FF c, // 92(\) &FF c, &FF c, &FF c, &BE c, &80 c, // 93(]) &FF c, &FD c, &FE c, &FD c, &FF c, // 94(^) &BF c, &BF c, &BF c, &BF c, &BF c, // 95(_) &FF c, &FE c, &FD c, &FF c, &FF c, // 96(') &DF c, &AB c, &AB c, &AB c, &87 c, // 97(a) &80 c, &BB c, &BB c, &BB c, &C7 c, // 98(b) &C7 c, &BB c, &BB c, &BB c, &B7 c, // 99(c) &C7 c, &BB c, &BB c, &BB c, &80 c, // 100(d) &C7 c, &AB c, &AB c, &AB c, &A7 c, // 101(e) &FF c, &FB c, &81 c, &FA c, &FE c, // 102(f) &B3 c, &AD c, &AD c, &AD c, &C3 c, // 103(g) &81 c, &F7 c, &F7 c, &F7 c, &8F c, // 104(h) &FF c, &BB c, &82 c, &BF c, &FF c, // 105(i) &BF c, &7F c, &7B c, &82 c, &FF c, // 106(j) &FF c, &80 c, &EF c, &D7 c, &BB c, // 107(k) &FF c, &BE c, &80 c, &BF c, &FF c, // 108(l) &83 c, &FB c, &83 c, &FB c, &87 c, // 109(m) &83 c, &FB c, &FB c, &FB c, &87 c, // 110(n) &C7 c, &BB c, &BB c, &BB c, &C7 c, // 111(o) &03 c, &DB c, &DB c, &DB c, &E7 c, // 112(p) &E7 c, &DB c, &DB c, &DB c, &03 c, // 113(q) &FB c, &87 c, &FB c, &FB c, &F7 c, // 114(r) &B7 c, &AB c, &AB c, &AB c, &DB c, // 115(s) &FB c, &C0 c, &BB c, &BB c, &FF c, // 116(t) &C3 c, &BF c, &BF c, &BF c, &83 c, // 117(u) &F3 c, &CF c, &BF c, &CF c, &F3 c, // 118(v) &C3 c, &BF c, &C3 c, &BF c, &C3 c, // 119(w) &BB c, &D7 c, &EF c, &D7 c, &BB c, // 120(x) &E3 c, &5F c, &5F c, &5F c, &83 c, // 121(y) &BB c, &9B c, &AB c, &B3 c, &BB c, // 122(z) align // places character at current position // uses LCDCharSet for data. Alignes position horizonatly // ready for next char // The position of the char is determined by LCDxy as follows // 0 0 LCDxy = top left // 1 0 LCDxy = line 2 // 7 0 LCDxy = line 8 // setting n ( 1 n LCDxy) will position the character at any pixel // along the line // ( char ---) : LCDchar 32 - 5 * LCDCharSet + 5 for dup c@ LCDdata 1+ // inc adress next drop &ff LCDdata // char spacing ; // ============= just for testing purposes ================== : init LCDinit ; : cls LCDcls ;