Inhaltsverzeichnis

practic 11/90, S. 37-38

O. Matthäi

Real-Time-Clock-Modul für den Z 1013

In vielen 8-Bit-Rechnern ist noch keine Echtzeituhr implementiert. Wir stellen eine vor, die außerdem

Kernstück neben den »Pfennig-IC« 74LS00 und 8205 ist der RTC 62421. Er wird für etwa 10,- DM gehandelt und beinhaltet eine komplette Echtzeituhr (Quarzgenerator, Uhrzeitspeicher mit Sekunden, Minuten, Stunden, Tag, Monat, Jahr, Woche und drei Kontrollregistern. Die insgesamt 16 I/O-Register können gelesen und beschrieben werden.

Der Betrieb der Baugruppe ist an allen 8-Bit-Rechnern möglich. Die hier vorgestellten Anschlüsse und das Maschinenprogramm entsprechen jedoch dem Z1013. Demzufolge wählte ich die I/O-Adressen 70H-7FH Es sind noch folgende Adressen möglich 10H-1FH, 30H-3FH, BoH-BFH, DoH-DFH. Eine Kollision mit anderen Adressen (z.B. der RAM-Floppy-Karte) müssen Sie vermeiden!

Nach dem unkritischen Aufbau stecken Sie das Modul ohne RTC an den Rechnerbus und starten das BASIC-Programm. Nun muß die I/O-LED leuchten. Danach (Betriebsspannung abschalten!) kann der RTC in seine Fassung. Nach erneutem Start des BASIC-Programms können Sie die unten links zu sehende Uhrzeit einstellen und haben, solange Sie das BASIC-Programm laufen lassen, die aktuelle Zeit.

Ein Maschinenprogramm ist besser und universeller einsetzbar. Die hier vorgestellte Version ist nicht optimiert. Sie besteht aus den Teilen INITRTC zur Initialisierung und RTC zur Zeitdarstellung in der rechten oberen Ecke (Bildschirmadresse EC17H-EC1FH). Während der Initialisierung müssen Sie die aktuelle Zeit in der Reihenfolge der Abfrage eingeben. Diese ist vom Schaltkreis vorgegeben und darf nicht verändert werden. Unter dem Betriebssystem SCP2RFxxx kann man diesen Teil z.B. durch BOOT aufrufen.

Das Programm RTC ruft TSTS im Pollingbetrieb auf. Die aktuelle Zeit wird also immer dann angezeigt, wenn bei Bildschirmein- oder -ausgaben, beim Drucken usw. die Tastatur abgefragt wird (INKEY). Also 1…50 mal in der Sekunde.

practic-90-111.jpg
Zeichnung: H Schütze

BASIC-Programm

  1   OUT(125),1: Out(127),15
  2   CLS: PRINT" TIME ?": PRINT:
      INPUT"H*10";HZ: INPUT"H*1";HE
  3   INPUT"M*10";MZ: INPUT"M*1";ME
  10  OUT(112),0: OUT(113),0:
      OUT(114),ME: OUT(115),MZ:
  20  OUT(116),HE: OUT(117),HZ:
  30  OUT(125),0
  40  OUT(126),4
  50  OUT(127),0
  60  CLS
  70  A=INP(112): B=INP(113)
  80  C=INP(114): D=INP(115)
  90  E=INP(116): F=INP(117)
  100 PRINT AT(30,6);D: PRINT AT(30,8);C
      PRINT AT(30,12);B: PRINT AT(30,14);A
  110 PRINT AT(30,0);F: PRINT AT(30,2)E
  120 GOTO 70

INITRTC

  700 F5 C5 3E 01 D3 7D 3E 00 387
  708 D3 7F E7 02 54 49 4D 45 36A
  710 20 3F FF E7 01 D3 75 E7 475
  718 01 D3 74 E7 01 D3 73 E7 45D
  720 01 D3 72 3E 00 D3 70 D3 39A
  728 71 D3 7D 3E 04 D3 7E 3E 392
  730 00 D3 7F C1 F1 C9 00 00 3CD

RTC

  800 C5 D5 E5 0E 70 ED 78 0E 470
  808 71 ED 40 0E 72 ED 50 0E 369
  810 73 ED 58 0E 74 ED 60 0E 395
  818 75 ED 68 C6 30 32 1F EC 3FD
  820 78 C6 30 32 1E EC 7A C6 3EA
  828 30 32 1C EC 7B C6 30 32 30D
  830 1B EC 7C C6 30 32 19 EC 3B0
  838 7D C6 30 32 18 EC E1 D1 45B
  840 C1 C9 00 00 00 00 00 00 18B
Offset Name D3 D2 D1 D0 Zählweite
+0 SECEINER S8 S4 S2 S1 0..9
+1 SECZEHNER * S40 S20 S10 0..5
+2 MINIEINER M8 M4 M2 M1 0..9
+3 MINIZEHNER * M40 M20 M10 0..5
+4 STDEINER H8 H4 H2 H1 0..9
+5 STDZEHNER * AM/PM H20 H10 0..2/0..1
+6 DEINER D8 D4 D2 D1 0..9
+7 DZEHNER * * D20 D10 0..3
+8 MEINER M8 M4 M2 M1 0..9
+9 MZEHNER * * * M10 0..1
+A YEINER Y8 Y4 Y2 Y1 0..9
+B YZEHNER Y80 Y40 Y20 Y10 0..9
+C WEEKDAY * W4 W2 W1 0..6
+D Kontrollregister D
+E Kontrollregister E
+F Kontrollregister F