To use this file copy and paste this:    // #URL-lib "http://pin1.org/forthlib/flb/Examples/LCD-Graphic-T.fth"   into BV Terminal 3 or here to download.

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 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"


Full Contents of File

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
// 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 ==================
: initLCDinit  ;
: clsLCDcls  ;