' Grafik-LCD-Treiber
Declare Sub GlcdPutChar(ByVal Glcd_AsciiChar As Byte)
Declare Sub GlcdPutBigChar(ByVal Glcd_AsciiChar As Byte)
Declare Sub GlcdWriteText(ByVal Glcd_Text As String)
Declare Sub GlcdLocate(ByVal Zeile As Byte, ByVal Spalte As Byte)
Declare Sub GlcdInvert()
Declare Sub GlcdPset(ByVal Glcd_X As Byte, ByVal Glcd_Y As Byte)
Declare Sub GlcdLine(ByVal X1 As Byte, ByVal Y1 As Byte, ByVal X2 As Byte, ByVal Y2 As Byte)
Declare Sub GlcdWriteData(ByVal GLCD_Data As Byte)
Declare Function GlcdReadData() As Byte
Declare Sub GlcdWriteCommand(ByVal Glcd_Command As Byte, ByVal Glcd_Chip As Byte)
Declare Sub GlcdInit()
Declare Sub GlcdCls()
Declare Sub Glcd_Enable()
Declare Sub GlcdWait()
Declare Sub Glcd_ChipSelect(ByVal Glcd_Chip As Byte)
Declare Sub GlcdGotoXY(ByVal Glcd_X As Byte, ByVal Glcd_Y As Byte)

$RegFile = "m8def.dat"
$Crystal = 8000000

Dim i              As Byte
Dim ii             As Word
Dim n              As Byte
Dim nn             As Word
Dim p              As Byte
Dim AktWert        As Byte
Dim TestWert       As Byte

' Grafik-LCD-Treiber
Dim GlcdInverted   As Boolean    ' Modus Inverse Darstellung
Dim GlcdWordWrap   As Boolean    ' Modus Umbuch übrelanger Texte
Dim GlcdBigFont    As Boolean    ' Modus Großbuchstaben
Dim GlcdAktXAlt    As Byte       ' Vorherige Aktuelle X-Position
Dim GlcdAktX       As Byte       ' Aktuelle X-Position
Dim GlcdAktY       As Byte       ' Aktuelle Y-Position
Dim GlcdAktP       As Byte       ' Aktuelle Page
Dim GlcdOffsY      As Byte       ' Aktueller Y-Offset
Dim GlcdTmpCmd     As Byte       ' Temporäres Command-Byte
Dim GlcdCmdPort    As Byte       ' Daten Command-Port
Dim GlcdDataPort   As Byte       ' Daten Daten-Port
Dim GlcdChip       As Byte       ' Selektierter Chip
Dim GlcdAktChar    As String * 1 ' Aktuelles Zeichen
Dim DisplayText    As String * 21' Zu schreibender Text

Const cGlcdOn         = &b00111111  ' &h3F
Const cGlcdOff        = &b00111110  ' &h3E
Const cGlcdSetAdd     = &b01000000  ' &h40
Const cGlcdSetPage    = &b10111000  ' &hB8
Const cGlcdDispStart  = &b11000000  ' &hC0
Const cGlcdChip1      = &b00000000  ' &h00
Const cGlcdChip2      = &b00000001  ' &h01

Glcd_CS1     Alias PortB.0
Glcd_CS2     Alias PortB.1
Glcd_RST     Alias PortB.2
Glcd_E       Alias PortB.3
Glcd_RW      Alias PortB.4
Glcd_DI      Alias PortB.5

DataIn       Alias PinD
DataOut      Alias PortD

Config PinB.0 = Output
Config PinB.1 = Output
Config PinB.2 = Output
Config PinB.3 = Output
Config PinB.4 = Output
Config PinB.5 = Output

'LED1         Alias PortC.0
'Config PinC.0 = Output

Config ADC=Single, Prescaler = Auto, Reference = AVCC
Start ADC

' Grafikdisplay Initialisieren
Wait 1
Enable Interrupts
GlcdInit
Wait 1

Dim AktXPos        As Byte
Dim AktAdcWert     As Word
Dim AktMaxWert     As Byte
Dim AktMidWert     As Word
Dim AktYPos        As Byte
Dim AktYPos2       As Byte
Dim Messreihe(10)  As Word

GlcdInvert
GlcdInverted = Not GlcdInverted

Do

For AktXPos = 0 To 127
  AktMaxWert = AktMaxWert / 2
  AktAdcWert = GetADC(1) / 10
  If AktAdcWert > AktMaxWert Then AktMaxWert = AktAdcWert
  For i = 0 To 63 Step 8
    GlcdGoToXY AktXPos, i
    GlcdWriteData 0
  Next i
  AktYPos = 30 - AktMaxWert
  AktYPos2 = 32 + AktMaxWert
  For i = AktYPos To AktYPos2
    GlcdPset AktXPos, i
  Next i
  'GlcdLine AktXPos, AktYPos, AktXPos, 63
  'GlcdLocate 1, 1
  'DisplayText = Str(AktAdcWert)
  'DisplayText = DisplayText + "   "
  'GlcdWriteText DisplayText
  WaitMs 5
Next AktXPos
Loop

Do

  Do
    AktAdcWert = GetADC(1)
    If AktAdcWert > 512 Then Exit Do
  Loop

For AktXPos = 1 To 128
  AktAdcWert = GetADC(1) / 16
  Messreihe(AktXPos) = AktAdcWert
Next AktXPos

GlcdCls
For AktXPos = 0 To 127
  AktYPos = 63 - Messreihe(AktXPos - 1)
  GlcdPset AktXPos, AktYPos
  'GlcdLocate 1, 1
  'DisplayText = Str(AktAdcWert)
  'DisplayText = DisplayText + "   "
  'GlcdWriteText DisplayText
Next AktXPos
'WaitMs 250
Loop
Do

'(
  GlcdCls
  GlcdBigFont = 0
  GlcdWordWrap = 0
  GlcdLocate 1, 1
  GlcdInverted = 1
  GlcdWriteText "Wolfgang Schmid 2006 "
  GlcdInverted = 0
  GlcdBigFont = 1
  GlcdLocate 3, 5
  GlcdWriteText "MDS-5"
  GlcdLocate 6, 2
  GlcdWriteText "28,41 mV"

  For p = 1 To 10
    GlcdLocate 3, 2
    GlcdPutBigChar 127
    GlcdPutChar 127
    Sound LED1, 100, 240
    WaitMs 400
    GlcdLocate 3, 2
    GlcdPutBigChar 32
    GlcdPutChar 32
    WaitMs 500
  Next p

  Wait 2
  GlcdInvert
  Wait 2
  GlcdInvert
  Wait 2
  GlcdInvert
  Wait 2
  GlcdInvert
  Wait 2

  GlcdCls
  GlcdWordWrap = 1
  For p = 32 To 127
    GlcdPutChar p
  Next p
  GlcdInverted = 1
  For p = 32 To 103
    GlcdPutChar p
  Next p

  Wait 2

  GlcdInverted = 0
  For p = 0 To 7
    For i = 0 To 63 Step 8
      GlcdGoToXY 0, i
      For n = 0 To 127
        TestWert = Rnd(255)
        GlcdWriteData TestWert
        LED1 = TestWert.0
      Next n
    Next i
  Next p
  ')

Loop

' ***********************************************************************
' Grafik-LCD-Treiber
' ***********************************************************************

' Typ:      Grafikdisplay 128x64 Zeichen / LED-Beleuchtung
' Display:  FG12864E
' Firma:    FH
' SerNo.:   12864EPCB1 REV:B
' Threat:   http://www.mikrocontroller.net/forum/read-1-107170.html
' TreiberC: http://www.mikrocontroller.net/forum/read-4-67157.html#new

Sub GlcdLine(ByVal X1 As Byte, ByVal Y1 As Byte, ByVal X2 As Byte, ByVal Y2 As Byte)

End Sub

Sub GlcdPset(ByVal Glcd_X As Byte, ByVal Glcd_Y As Byte)
  Local GlcdPset_Data    As Byte
  Local GlcdPset_Bit     As Byte

  GlcdGoToXY Glcd_X, Glcd_Y
  GlcdPset_Data = GlcdReadData()

  GlcdPset_Bit = Glcd_Y Mod 8
  GlcdPset_Data.GlcdPset_Bit = 1

  GlcdGoToXY Glcd_X, Glcd_Y
  GlcdWriteData GlcdPset_Data
End Sub

Sub GlcdInvert()
  Local GlcdIntert_a   As Byte
  Local GlcdIntert_b   As Byte
  Local GlcdIntert_c   As Byte

  For GlcdIntert_a = 0 To 63 Step 8
    GlcdGoToXY 0, GlcdIntert_a
    For GlcdIntert_b = 0 To 127
      GlcdAktXAlt = GlcdAktX
      GlcdIntert_c = GlcdReadData()
      GlcdIntert_c = Not GlcdIntert_c
      GlcdWriteData GlcdIntert_c
    Next GlcdIntert_b
  Next GlcdIntert_a
End Sub

Sub GlcdLocate(ByVal Zeile As Byte, ByVal Spalte As Byte)
  GlcdAktXAlt = GlcdAktX
  GlcdAktX = Spalte - 1
  GlcdAktX = GlcdAktX * 6
  GlcdAktY = Zeile - 1
  GlcdAktY = GlcdAktY * 8
  GlcdAktY = GlcdAktY And &b11111000
End Sub

Sub GlcdWriteText(ByVal Glcd_Text As String)
  Local GlcdWriteText_a   As Byte
  Local GlcdWriteText_b   As Byte
  Local GlcdWriteText_c   As Byte

  GlcdWriteText_a = Len(Glcd_Text)
  For GlcdWriteText_c = 1 To GlcdWriteText_a
    GlcdAktChar = Mid(Glcd_Text, GlcdWriteText_c, 1)
    GlcdWriteText_b = GlcdAktChar
    If GlcdBigFont = 0 Then
      GlcdPutChar GlcdWriteText_b
    Else
      GlcdPutBigChar GlcdWriteText_b
    End If
  Next GlcdWriteText_c
End Sub

Sub GlcdPutBigChar(ByVal Glcd_AsciiChar As Byte)
  Local GlcdPutChar_a   As Byte
  Local GlcdPutChar_b   As Byte
  Local GlcdPutChar_aa  As Word

  GlcdPutChar_aa = Glcd_AsciiChar - 32
  GlcdPutChar_aa = GlcdPutChar_aa * 5
  For GlcdPutChar_a = 1 To 5
    AktWert = LookUp(GlcdPutChar_aa, GlcdFontTab)
    AktWert.7 = AktWert.3
    AktWert.6 = AktWert.3
    AktWert.5 = AktWert.2
    AktWert.4 = AktWert.2
    AktWert.3 = AktWert.1
    AktWert.2 = AktWert.1
    AktWert.1 = AktWert.0
    GlcdWriteData AktWert
    GlcdWriteData AktWert
    Incr GlcdPutChar_aa
  Next GlcdPutChar_a
  GlcdWriteData 0
  GlcdWriteData 0
  GlcdPutChar_aa = GlcdPutChar_aa - 5
  GlcdAktXAlt = GlcdAktX
  GlcdAktX = GlcdAktX - 12
  GlcdAktY = GlcdAktY + 8
  GlcdGoToXY GlcdAktX, GlcdAktY
  For GlcdPutChar_a = 1 To 5
    AktWert = LookUp(GlcdPutChar_aa, GlcdFontTab)
    AktWert.0 = AktWert.4
    AktWert.1 = AktWert.4
    AktWert.2 = AktWert.5
    AktWert.3 = AktWert.5
    AktWert.4 = AktWert.6
    AktWert.5 = AktWert.6
    AktWert.6 = AktWert.7
    GlcdWriteData AktWert
    GlcdWriteData AktWert
    Incr GlcdPutChar_aa
  Next GlcdPutChar_a
  GlcdWriteData 0
  GlcdWriteData 0
  GlcdAktY = GlcdAktY - 8
  GlcdGoToXY GlcdAktX, GlcdAktY
  If GlcdWordWrap = 0 Then Exit Sub
  If GlcdAktX > 117 Then
    GlcdAktXAlt = GlcdAktX
    GlcdAktX = GlcdAktX Mod 12
    GlcdAktY = GlcdAktY + 16
    GlcdAktY = GlcdAktY And &b00111000
    GlcdGoToXY GlcdAktX, GlcdAktY
  End If
End Sub

Sub GlcdPutChar(ByVal Glcd_AsciiChar As Byte)
  Local GlcdPutChar_a   As Byte
  Local GlcdPutChar_aa  As Word

  GlcdPutChar_aa = Glcd_AsciiChar - 32
  GlcdPutChar_aa = GlcdPutChar_aa * 5
  For GlcdPutChar_a = 1 To 5
    AktWert = LookUp(GlcdPutChar_aa, GlcdFontTab)
    GlcdWriteData AktWert
    Incr GlcdPutChar_aa
  Next GlcdPutChar_a
  GlcdWriteData 0
  If GlcdWordWrap = 0 Then Exit Sub
  If GlcdAktX > 122 Then
    GlcdAktXAlt = GlcdAktX
    GlcdAktX = GlcdAktX Mod 6
    GlcdAktY = GlcdAktY + 8
    GlcdAktY = GlcdAktY And &b00111000
    GlcdGoToXY GlcdAktX, GlcdAktY
  End If
End Sub

Sub GlcdWriteData(ByVal GLCD_Data As Byte)
  If GlcdAktX.7 = 1 Then Exit Sub
  'If GlcdAktXAlt.6 <> GlcdAktX.6 Then
    GlcdGoToXY GlcdAktX, GlcdAktY
  'End If
  GlcdChip.0 = GlcdAktX.6
  Glcd_ChipSelect GlcdChip
  'GlcdWait
  Glcd_DI = 1
  Glcd_RW = 0
  DDRD = 255
  If GlcdInverted = 1 Then
    Glcd_Data = Not Glcd_Data
  End If
  DataOut = Glcd_Data
  Glcd_Enable
  DataOut = 0
  GlcdAktXAlt = GlcdAktX
  Incr GlcdAktX
End Sub

Function GlcdReadData() As Byte
  If GlcdAktX.7 = 1 Then Exit Sub
  DDRD = 0
  DataOut = 0
  GlcdChip.0 = GlcdAktX.6
  Glcd_ChipSelect GlcdChip
  'wuff wuff
  'If GlcdAktX = 64 Then
  '  GlcdWriteCommand cGlcdSetAdd, cGlcdChip2
  'End If
  Glcd_DI = 1
  Glcd_RW = 1
  Glcd_E = 1
  WaitUs 1
  Glcd_E = 0
  WaitUs 1 'GlcdWait
  GlcdGoToXY GlcdAktX, GlcdAktY

  DDRD = 0
  DataOut = 0
  GlcdChip.0 = GlcdAktX.6
  Glcd_ChipSelect GlcdChip
  'wuff wuff
  'If GlcdAktX = 64 Then
  '  GlcdWriteCommand cGlcdSetAdd, cGlcdChip2
  'End If
  Glcd_DI = 1
  Glcd_RW = 1
  Glcd_E = 1
  WaitUs 1
  GlcdReadData = DataIn
  Glcd_E = 0
  WaitUs 1 'GlcdWait
  GlcdGoToXY GlcdAktX, GlcdAktY
  If GlcdInverted = 1 Then
    GlcdReadData = Not GlcdReadData
  End If
End Function

Sub GlcdWriteCommand(ByVal Glcd_Command As Byte, ByVal Glcd_Chip As Byte)
  Glcd_ChipSelect Glcd_Chip
  'GlcdWait
  Glcd_DI = 0
  Glcd_RW = 0
  DDRD = 255
  DataOut = Glcd_Command
  Glcd_Enable
  DataOut = 0
End Sub

Sub GlcdGoToXY(ByVal Glcd_X As Byte, ByVal Glcd_Y As Byte)
  Glcd_X.7 = 0
  Glcd_Y = Glcd_Y And &b00111000
  GlcdAktXAlt = GlcdAktX
  GlcdAktX = Glcd_X
  GlcdAktY = Glcd_Y
  GlcdChip.0 = Glcd_X.6
  GlcdAktP = Glcd_Y / 8
  GlcdTmpCmd = cGlcdSetPage Or GlcdAktP
  GlcdWriteCommand GlcdTmpCmd, GlcdChip
  GlcdTmpCmd = Glcd_X And &b00111111
  GlcdTmpCmd = cGlcdSetAdd Or GlcdTmpCmd
  GlcdWriteCommand GlcdTmpCmd, GlcdChip
End Sub

Sub GlcdCls()
  For i = 0 To 63 Step 8
    GlcdGoToXY 0, i
    For n = 0 To 127
      GlcdWriteData 0
    Next n
  Next i
  GlcdGoToXY 0, 0
End Sub

Sub GlcdWait()
  DDRD = 0
  DataOut = 0
  Glcd_DI = 0
  Glcd_RW = 1
  Glcd_Enable
  Do: Loop Until DataIn.7 = 0
End Sub

Sub Glcd_Enable()
  Glcd_E = 1
  Glcd_E = 0
End Sub

Sub Glcd_ChipSelect(ByVal Glcd_Chip As Byte)
  If Glcd_Chip = 0 Then
    Glcd_CS1 = 1
    Glcd_CS2 = 0
  Else
    Glcd_CS1 = 0
    Glcd_CS2 = 1
  End If
End Sub

' Display zurücksetzen
Sub GlcdInit()
  DDRD = 0
  DataOut = 0
  Glcd_RST = 0
  Glcd_CS1 = 0
  Glcd_CS2 = 0
  WaitUs 5
  Glcd_RST = 1
  GlcdAktX = 0
  GlcdAktY = 0
  GlcdAktP = 0
  GlcdInverted = 0
  GlcdCls
  GlcdWriteCommand cGlcdOn, cGlcdChip1
  GlcdWriteCommand cGlcdOn, cGlcdChip2
  GlcdWriteCommand cGlcdDispStart, cGlcdChip1
  GlcdWriteCommand cGlcdDispStart, cGlcdChip2
  GlcdGoToXY 0, 0
End Sub

End

GlcdFontTab:
  Data &b0000000, &b0000000, &b0000000, &b0000000, &b0000000  ' Space
  Data &b0000000, &b0000000, &b1001111, &b0000000, &b0000000  ' !
  Data &b0000000, &b0000111, &b0000000, &b0000111, &b0000000  ' "
  Data &b0010100, &b1111111, &b0010100, &b1111111, &b0010100  ' #
  Data &b0100100, &b0101010, &b1111111, &b0101010, &b0010010  ' $
  Data &b0100011, &b0010011, &b0001000, &b1100100, &b1100010  ' %
  Data &b0110110, &b1001001, &b1010101, &b0100010, &b1010000  ' &
  Data &b0000000, &b0000101, &b0000011, &b0000000, &b0000000  ' '
  Data &b0000000, &b0011100, &b0100010, &b1000001, &b0000000  ' (
  Data &b0000000, &b1000001, &b0100010, &b0011100, &b0000000  ' )
  Data &b0010100, &b0001000, &b0111110, &b0001000, &b0010100  ' *
  Data &b0001000, &b0001000, &b0111110, &b0001000, &b0001000  ' +
  Data &b0000000, &b1010000, &b0110000, &b0000000, &b0000000  ' ,
  Data &b0001000, &b0001000, &b0001000, &b0001000, &b0001000  ' -
  Data &b0000000, &b1100000, &b1100000, &b0000000, &b0000000  ' .
  Data &b0100000, &b0010000, &b0001000, &b0000100, &b0000010  ' /
  Data &b0111110, &b1010001, &b1001001, &b1000101, &b0111110  ' 0
  Data &b0000000, &b1000010, &b1111111, &b1000000, &b0000000  ' 1
  Data &b1000010, &b1100001, &b1010001, &b1001001, &b1000110  ' 2
  Data &b0100001, &b1000001, &b1000101, &b1001011, &b0110001  ' 3
  Data &b0011000, &b0010100, &b0010010, &b1111111, &b0010000  ' 4
  Data &b0100111, &b1000101, &b1000101, &b1000101, &b0111001  ' 5
  Data &b0111100, &b1001010, &b1001001, &b1001001, &b0110000  ' 6
  Data &b0000001, &b1110001, &b0001001, &b0000101, &b0000011  ' 7
  Data &b0110110, &b1001001, &b1001001, &b1001001, &b0110110  ' 8
  Data &b0000110, &b1001001, &b1001001, &b0101001, &b0011110  ' 9
  Data &b0000000, &b0110110, &b0110110, &b0000000, &b0000000  ' :
  Data &b0000000, &b1010110, &b0110110, &b0000000, &b0000000  ' ;
  Data &b0001000, &b0010100, &b0100010, &b1000001, &b0000000  ' <
  Data &b0010100, &b0010100, &b0010100, &b0010100, &b0010100  ' =
  Data &b0000000, &b1000001, &b0100010, &b0010100, &b0001000  ' >
  Data &b0000010, &b0000001, &b1010001, &b0001001, &b0000110  ' ?
  Data &b0110010, &b1001001, &b1111001, &b1000001, &b0111110  ' @
  Data &b1111110, &b0010001, &b0010001, &b0010001, &b1111110  ' A
  Data &b1111111, &b1001001, &b1001001, &b1001001, &b0110110  ' B
  Data &b0111110, &b1000001, &b1000001, &b1000001, &b0100010  ' C
  Data &b1111111, &b1000001, &b1000001, &b0100010, &b0011100  ' D
  Data &b1111111, &b1001001, &b1001001, &b1001001, &b1000001  ' E
  Data &b1111111, &b0001001, &b0001001, &b0001001, &b0000001  ' F
  Data &b0111110, &b1000001, &b1001001, &b1001001, &b1111010  ' G
  Data &b1111111, &b0001000, &b0001000, &b0001000, &b1111111  ' H
  Data &b0000000, &b1000001, &b1111111, &b1000001, &b0000000  ' I
  Data &b0100000, &b1000000, &b1000001, &b0111111, &b0000001  ' J
  Data &b1111111, &b0001000, &b0010100, &b0100010, &b1000001  ' K
  Data &b1111111, &b1000000, &b1000000, &b1000000, &b1000000  ' L
  Data &b1111111, &b0000010, &b0001100, &b0000010, &b1111111  ' M
  Data &b1111111, &b0000100, &b0001000, &b0010000, &b1111111  ' N
  Data &b0111110, &b1000001, &b1000001, &b1000001, &b0111110  ' O
  Data &b1111111, &b0001001, &b0001001, &b0001001, &b0000110  ' P
  Data &b0111110, &b1000001, &b1010001, &b0100001, &b1011110  ' Q
  Data &b1111111, &b0001001, &b0011001, &b0101001, &b1000110  ' R
  Data &b1000110, &b1001001, &b1001001, &b1001001, &b0110001  ' S
  Data &b0000001, &b0000001, &b1111111, &b0000001, &b0000001  ' T
  Data &b0111111, &b1000000, &b1000000, &b1000000, &b0111111  ' U
  Data &b0011111, &b0100000, &b1000000, &b0100000, &b0011111  ' V
  Data &b0111111, &b1000000, &b0111000, &b1000000, &b0111111  ' W
  Data &b1100011, &b0010100, &b0001000, &b0010100, &b1100011  ' X
  Data &b0000111, &b0001000, &b1110000, &b0001000, &b0000111  ' Y
  Data &b1100001, &b1010001, &b1001001, &b1000101, &b1000011  ' Z
  Data &b0000000, &b1111111, &b1000001, &b1000001, &b0000000  ' [
  Data &b0000010, &b0000100, &b0001000, &b0010000, &b0100000  ' \
  Data &b0000000, &b1000001, &b1000001, &b1111111, &b0000000  ' ]
  Data &b0000000, &b0000100, &b0000010, &b0000100, &b0000000  ' ^
  Data &b1000000, &b1000000, &b1000000, &b1000000, &b1000000  ' _
  Data &b0000000, &b0000001, &b0000010, &b0000100, &b0000000  ' `
  Data &b0100000, &b1010100, &b1010100, &b1010100, &b1111000  ' a
  Data &b1111111, &b1001000, &b1000100, &b1000100, &b0111000  ' b
  Data &b0111000, &b1000100, &b1000100, &b1000100, &b0100000  ' c
  Data &b0111000, &b1000100, &b1000100, &b1001000, &b1111111  ' d
  Data &b0111000, &b1010100, &b1010100, &b1010100, &b0011000  ' e
  Data &b0001000, &b1111110, &b0001001, &b0000001, &b0000010  ' f
  Data &b0001100, &b1010010, &b1010010, &b1010010, &b0111110  ' g
  Data &b1111111, &b0001000, &b0000100, &b0000100, &b1111000  ' h
  Data &b0000000, &b1000100, &b1111101, &b1000000, &b0000000  ' i
  Data &b0100000, &b1000000, &b1000000, &b0111101, &b0000000  ' j
  Data &b1111111, &b0010000, &b0101000, &b1000100, &b0000000  ' k
  Data &b0000000, &b1000001, &b1111111, &b1000000, &b0000000  ' l
  Data &b1111100, &b0000100, &b0011000, &b0000100, &b1111000  ' m
  Data &b1111100, &b0001000, &b0000100, &b0000100, &b1111000  ' n
  Data &b0111000, &b1000100, &b1000100, &b1000100, &b0111000  ' o
  Data &b1111100, &b0010100, &b0010100, &b0010100, &b0001000  ' p
  Data &b0001000, &b0010100, &b0010100, &b0011000, &b1111100  ' q
  Data &b1111100, &b0001000, &b0000100, &b0000100, &b0001000  ' r
  Data &b1001000, &b1010100, &b1010100, &b1010100, &b0100000  ' s
  Data &b0000100, &b0111111, &b1000100, &b1000000, &b0100000  ' t
  Data &b0111100, &b1000000, &b1000000, &b0100000, &b1111100  ' u
  Data &b0011100, &b0100000, &b1000000, &b0100000, &b0011100  ' v
  Data &b0111100, &b1000000, &b0110000, &b1000000, &b0111100  ' w
  Data &b1000100, &b0101000, &b0010000, &b0101000, &b1000100  ' x
  Data &b0001100, &b1010000, &b1010000, &b1010000, &b0111100  ' y
  Data &b1000100, &b1100100, &b1010100, &b1001100, &b1000100  ' z
  Data &b0000000, &b0000000, &b0000000, &b0000000, &b0000000  '  {
  Data &b0000000, &b0000000, &b0000000, &b0000000, &b0000000  '  |
  Data &b0000000, &b0000000, &b0000000, &b0000000, &b0000000  '  }
  Data &b0000000, &b0000000, &b0000000, &b0000000, &b0000000  '  ~
  Data &b0011100, &b0111110, &b0111110, &b0111110, &b0011100  ' Punkt