Another thing about the graphic part, I've messed with it a lot recently and I saved a load of code space by skipping the whole SELCT-CASE + Lookup thing by using something like
Code:
SearchChar:
        read (index), char
        if char == TheCharYoureLookingFor then
            Gosub PrintIt
            index=endtable
            endif
        index=index+6
        if (index)<endtable then SearchChar
But you need to modify a little bit the way your DATA lines are done.
Code:
            DATA @0,"0",$3E,$51,$49,$45,$3E,_       ';// 0                   
                    "1",$00,$42,$7F,$40,$00,_       ';// 1
                    "2",$42,$61,$51,$49,$46,_       ';// 2
                    "3",$21,$41,$45,$4B,$31,_       ';// 3
                    "4",$18,$14,$12,$7F,$10,_       ';// 4
                    "5",$27,$45,$45,$45,$39,_       ';// 5
                    "6",$3C,$4A,$49,$49,$30,_       ';// 6
                    "7",$01,$71,$09,$05,$03,_       ';// 7
                    "8",$36,$49,$49,$49,$36,_       ';// 8
                    "9",$06,$49,$49,$29,$1E,_       ';// 9
                    "+",$08,$08,$3E,$08,$08,_       ';// +
                    "-",$08,$08,$08,$08,$08,_       ';// -
                    ".",$00,$60,$60,$00,$00,_       ';// .
                    "G",$00,$02,$05,$02,$00,_       ' grad
                    "C",$3E,$41,$41,$41,$22,_       ' C
                    "M",$7F,$02,$0C,$02,$7F,_       ' M     
                    " ",$00,$00,$00,$00,$00,_       ' space
                    "^",$08,$04,$7F,$04,$08,_       ' arrow up
                    "_",$20,$40,$7F,$40,$20         ' arrow down
so when you want to display your grad character, just need to send G to that routine above. Simple... if it fits the EEPROM ...