2000 2ce7 0000 T ... SYSTEMUHR B4 1.3
		===============================
		=   Systemuhr fuer  Z 1013    =
		= ext. 1s-Takt an PIO-PORT B4 =
		= (c) by rehn-soft     feb/88 =
		===============================

Stellt man am nicht benutzten PIO-PORT B4 einen extern erzeugten
1s-Takt zur Verfuegung  (Steckverbinder X2 , Anschluss A3) ,  so
kann man  ohne Nutzung eines  CTC-Schaltkreises  eine  Systemuhr
fuer den  Z 1013 erzeugen.   Der 1s-Takt sollte stromsparend mit
einem CMOS-Uhren-IC (zB. U 118 F) erzeugt werden.  Ebenso laesst
sich die  Taktgeberleiterplatte aus einem Quarzwecker verwenden.
Eine entsprechende Programmierung des PIO sogt dafuer, dass aus-
geloest vom  1s-Takt  ein gerade laufendes Programm unterbrochen
und die aktuelle  Uhrzeit  auf dem Bildschirm oben rechts einge-
blendet wird.     Danach wird das unterbrochene Programm fortge-
setzt.   Bei dieser einfachen  Software-Loesung  muss fuer  SAVE
und LOAD die Uhr durch RESET abgeschaltet werden.
Das gesamte Uhrprogramm besteht aus zwei Teilen:
- UHRD (Darstellung der akt. Uhrzeit)
- INIT (Stellen der Uhr, Initialisieren des PIO)
UHRD  weisst keine Besonderheiten auf und soll nicht naeher dar-
gestellt werden.  Es kann auf beliebigen Adressen stehen.    Die
Startadresse dieses Programms wird fuer INIT benoetigt.
INIT  besteht wiederum aus zwei Teilen.     Zu Gunsten der  PIO-
Programmierung wird hier das  Stellen der Uhr  nicht erlaeutert.
Das Programm traegt auf  0B0h fuer "@U" einen Sprung zum Stellen
der Uhr ein.    Eventuell dort vorhandene Sprungadressen bleiben
erhalten.
Folgende RAM-Zellen werden benutzt:
- 0000: =0...Uhr aufgeblendet, #0...Uhr laeuft verdeckt
- 0008: Sekundenzaehler
- 0009: Minutenzaehler
- 000A: Stundenzaehler
- 0010: NWT der Startadresse von UHRD
_ 0011: HWT der Startadresse von UHRD
Die Interrupt-Programmierung des PIOs sieht etwa wie folgt aus:
1. PIO auf Bit-E/A , Bit 4 auf Eingabe
2. Startadresse von UHRD in 0010/0011 eintragen
3. Laden des Interrupt-Registers der CPU
4. Laden des Interrupt-Vektor-Registers des PIOs
5. Ausgabe des Interrupt-Steuerwortes an den PIO
6. Ausgabe des Interrupt-Maskenwortes an den PIO
7. Freigabe des Interrupts

Die vollstaendige  Assembler-Quelle kann beim  Autor  eingesehen
werden.

INIT ab 3F00H:
21  DC  00  11  DF  00  01  2E  00  ED  B8  3E  55  32  B0  00
21 >16--3F< 22  B1  00 *E7* 02  61  6B  74  75  65  6C  6C  65
20  5A  65  69  74  BA  21  0A  00  0E  03  06  02  E7  01  E7
00  D6  30  ED  6F  10  F6  E7  0E  2B  0D  20  EE  F3  ED  5E
21 +57--3F+ 22  10  00  AF  ED  47  3E  10  D3  03  3E  97  D3
03  3E  EF  D3  03  FB  C9

UHRD ab '3F57H':
F5  E5  D5  21  08  00  7E  C6 #01# 27  FE  60  38  01  AF  77
38  20  23  FE  C6  01  27  FE  60  38  01  AF  77  38  13  2B
7E  C6  01  27  FE  24  38  01  AF  77  38  06  D1  E1  F1  FB
ED  4D  2A  2B  00  E5  ED  5B  1F  00  3A  00  00  B7  2A  1A
21  16  EC  22  2B  00  21  0A  00  7E  E7  06  E7  02  BA  2B
7E  E7  06  E7  02  BA  2B  7E  E7  06  E1  ED  53  1F  00  22
2B  00  3E  20  32  1F  EC  18  C3

Bei Verschiebung auf andere Adressen muss der Inhalt von    >--<
auf  * *  und  +--+  auf die Adresse von  ' '  zeigen.  Wird nur
ein 2s-Takt genutzt, so ist  # # auf "02" zu aendern.

                              SCHWARZENBERG,11.02.88
                              U. REHN , D. BITTNER