W sumie nie ma co opisywać, ponieważ wszystko zostało już opisane tu:
AMI LCD ScreenA w skrócie, potrzebny jest AY z działającym portem A (AY-3-8910 lub AY-3-8912) wraz dekoderem adresów, takim samym jak dla bzyczka, wyświetlacz LCD z układem zgodnym z HD44780 (czyli prawie dowolny LCD 16x2), potencjometr 10K, kilka przewodów oraz 30 minut wolnego czasu.
LCD pracuje w trybie 4 bitowym, ze znakami w 5x8 pikseli, a 8 znaków można sobie dowolnie zdefiniować, pamiętając, że Jupiter operuje domyślne na liczbach w systemie dziesiętnym.
Te osiem definiowalnych znaków jest umiejscowione od adresu 64 (0x40) kontrolera LCD i każdy zajmuje 8 bajtów. W każdym bajcie zapisana jest wartość każdej linii (na 5 bitach) w znaku. W każdym bicie piksel włączony to logiczna "1", a piksel wygaszony to logiczne "0". Jeśli chcemy zdefiniować nowe "s", takie jak na fotce, definicja wygląda następująco:
Matryca 5 x 8 pikseli:B4 | B3 | B2 | B1 | B0 | Dec |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 15 |
0 | 1 | 0 | 0 | 0 | 8 |
0 | 1 | 1 | 1 | 1 | 15 |
0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 15 |
0 | 0 | 0 | 0 | 0 | 0 |
W takim razie, kod w Forth wygląda następująco:
8 wc -- wyłącz LCD, ponieważ na ekranie kursor będzie przemieszczał się oraz mogą być wyświetlanie "śmieci"
64 wc -- wskazanie kolalizacji początku piewszego nowego znaku (adres 0x40 = 64 dziesiętnie)
0 wd -- wysłanie danych dla pikseli w pierwszej linii pod adresem 0x40
0 wd -- druga linia (adres 0x41)
15 wd -- trzecia (0x42)
8 wd -- (..)
15 wd
1 wd
15 wd -- (..)
0 wd -- 8 linia (0x47 = 71 dzisiętnie)
2 wd -- powrót kursora na początek ekranu, w pierwszej linii
1 wd -- wyczyść ekran
Nowy znak zdefiniowany i jego wywołanie na ekran w miejscu kursora:
0 wd
Kolejne definiowalne znaki mają początkowe adresy:
0x48 = 72d
0x50 = 80d
0x58 = 88d
0x60 = 96d
0x68 = 104d
0x70 = 112d
0x78 = 120d