'***************************************************************************
'*                                                                         *
'*                                LCD.Amos                                 *
'*                                                                         *
'*                     © 1993,94,95 Andreas Heinrich                       *
'*                                                                         *
'*             Dieses Programm steuert ein LCD-Display an und              *
'*          gibt die ASCII-Codes von 0-255 an das Display weiter.          *
'*                                                                         *
'***************************************************************************
'  A=Adresse
'  N=Wert
'  U=1 = Neue Zeile
'  T=Positionszähler
'  Procedure Daten = Datenwort wird über Port 3 an das LCD-Display geschickt
'  Procedure Kommando = Steuerwort wird gesendet
'
   Global A,N,U,T
'
'**************************** Init für In_Out_Board ************************
'
   INIT
'
'********************** Init Kommandos für LCD - Display *******************
'
N=$38 : Rem             Display initialisieren
KOMMANDO
N=$1 : Rem              Anzeige löschen
KOMMANDO
Wait 1 : Rem            Muß hier 1/50 Sekunde warten
'
N=$E : Rem              Schreibmarke einschalten
KOMMANDO
N=$6 : Rem              Cursor an
KOMMANDO
'
'**************************** Demo für die Ausgabe **************************
'
'      ( Ab hier können dann eigene Programme eingefügt werden.)
'
'          Gibt die Werte von 0 bis 255 auf die Anzeige
'          Nicht jedem Wert ist auch ein Zeichen zugeordnet
NOCH_EINMAL:
T=1
For B=0 To 255
 N=B
  DATEN
   Wait 5 : Rem   Hier ist kleine Warteschleife, damit man den Cursor sieht.
     Inc T
'*************** Diese Routine löscht nach 1 Sekunde das Display ************
'
 If T=17
   U=1
    N=$C0
  KOMMANDO
End If
'
If T=33 and U=1
  U=0
    T=1
       Wait 50
     N=$1
   KOMMANDO
End If
'
'****************************************************************************
'
Next B
Goto NOCH_EINMAL : Rem   Und noch einmal nach NOCH_EINMAL
'
'********************************* Ende *************************************
'
'******************************* Proceduren *********************************
'
Procedure SCHREIBEN
'
Poke 12570624,248+A : Rem  Adresse A selektieren
Poke 12575489,255 : Rem    Port als Ausgang schalten
Poke 12574977,N : Rem      Wert N schreiben
Poke 12570624,255 : Rem    Ready LED einschalten
'
End Proc
'
Procedure INIT
'
'******************** Nach dem Einschalten aufrufen ***********************
'
Poke 12571136,199 : Rem    Busy,P-aus und SEL=Bitmuster Ausgabe
Poke 12570624,255 : Rem    Adresse 7 selektieren (Ready LED ein)
Poke 12575489,0 : Rem      Port als Eingang schalten
'
'**************************************************************************
End Proc
'
Procedure KOMMANDO
'
A=3 : Rem Steuerwort an Port 3 senden
SCHREIBEN
'
'******************** Umschalten nach Steuerwort **************************
'                          LCD-Freigabe usw.
A=4
N=3
SCHREIBEN
'
N=1
SCHREIBEN
'
N=2
SCHREIBEN
'
N=3
SCHREIBEN
'
'**************************************************************************
End Proc
'
Procedure DATEN
A=3 : Rem Datenwort nach Port 3
SCHREIBEN
'
'*************************** LCD-Freigabe ********************************
'
A=4
N=2
SCHREIBEN
'
N=3
SCHREIBEN
'*************************************************************************
End Proc
'
