Erschienen in 64'er Magazin, Ausgabe 01/1994 · Originaldatei: SCHNEE.TXT
Hinweis: Dies ist das an die Redaktion eingereichte Manuskript, nicht der gedruckte Endtext. Layout, Bildunterschriften, Korrekturen und Kürzungen der Redaktion können in der veröffentlichten Fassung abweichen.
| Objekt | 64'er Magazin |
|---|---|
| Ausgabe | 1/94 |
| Rubrik | Hardware-Bauanleitung |
| Redakteur | Hans-Jürgen JH |
| Autor | Nicki Heusler, XXX/XXXXXX |
| Datum | 4.11.93 |
| Thema | Programmbeschreibung SCHNEE-WECKER |
Programmbeschreibung SCHNEE-WECKER
Nun zur Beschreibung des Programms (Listing, Autor ist Nikolaus Heusler). Speichern Sie das Programm nach der Eingabe auf Diskette. Der Start erfolgt mit RUN. Der Computer legt nun eine kurze Kunstpause (etwa eine halbe Minute) ein, um im Speicher den Datensatz und ein Maschinenprogramm zur Darstellung der großen Ziffern für die Uhrzeit aufzubauen. Wenn Sie das Programm später ein zweites Mal starten, tritt die Pause nicht mehr auf.
Danach soll die aktuelle Uhrzeit eingegeben werden. Der C 64 zeigt als Vorgabewert den momentanen Wert der Variablen TI$ an (z.B. 00:05:21), der natürlich noch nicht die Uhrzeit enthält. Geben Sie also über Tastatur die Zeit im Format HH:MM:SS (die Doppelpunkte erscheinen automatisch) ein. Mit den Cursortasten läßt sich die Eingabe korrigieren. Der Computer nimmt nur sinnvolle Zifferneingaben an, wenn Sie die Eingabe mit RETURN beenden. Die Routine zur Zahleneingabe findet sich ab Zeile 200.
Auf die gleiche Weise soll danach der Zeitpunkt festgelegt werden, zu dem der Computer den Schnee-Sensor heizt und damit für die Messung am nächsten Morgen vorbereitet. Um den Vorgabewert 21:00:00 (also neun Uhr abends) zu übernehmen, genügt die RETURN-Taste. Sonst korrigieren Sie den Wert nach Wunsch.
Gegen Sie nun die beiden Weckzeiten ein: Erst die Zeit, zu der Sie geweckt werden möchten, wenn der Sensor am Morgen Schnee meldet (Vorgabe 04:30:00), dann die zweite Weckzeit, zu der Alarm ausgelöst werden soll, falls dies bei der ersten Weckzeit nicht der Fall war (Vorgabe: 07:30:00).
Werden die drei Vorgaben übernommen, heizt das Programm also um 9 Uhr abends den Sensor so lange, bis kein Schnee mehr auf ihm liegt. Am Morgen um halb fünf wird getestet, ob es in der Nacht geschneit hat. Wenn ja, klingelt der Wecker um halb fünf, und Sie können beispielsweise Ihr Auto und den Gehweg an Ihrem Haus freischaufeln (Vorschrift!), sonst erst um halb acht - das sind drei kostbare Stunden Schlaf für Sie.
Bitte achten Sie bei der Eingabe darauf, daß die Zeiten für »Heizung an« und Weckzeit 1 bzw. 2 jeweils weit auseinander liegen (mindestens zehn Minuten), um einerseits sicherzustellen, daß die Heizung beendet ist, bevor die erste Weckzeit eintritt, und andererseits, daß der Anwender bei einem Wecken zur Zeit 1 genügend Zeit hat, den Summer abzuschalten. Während der Alarm ertönt, kann der Computer nämlich unter Umständen »übersehen«, daß Weckzeit 1 oder 2 oder die Heiz-Zeit eingetreten ist (es wird nur auf Gleichheit überprüft, nicht auf größer-gleich). Außerdem sollte die Weckzeit 2 immer später gewählt werden als Weckzeit 1, da das Programm sonst ohne Schnee-Prüfung bei der verfrüht eintretenden Weckzeit 2 immer Alarm auslöst, und dann danach zur Zeit 1 nochmals, falls es geschneit hat.
Nachdem alle Angaben gemacht sind, erscheint der Status-Bildschirm. Oben enthält er in auffälligen großen Ziffern die aktuelle Uhrzeit. Darunter werden links die beiden Weckzeiten sowie die Zeit angezeigt, zu der die Heizung sich aktiviert.
In dem Kasten rechts daneben zeigt das Programm den Status an: In den ersten drei Zeilen, ob die Heizung momentan aus- oder eingeschaltet ist, ob Schnee auf dem Sensor vorhanden ist oder nicht, und ob der Wecker (Alarm) im Augenblick aus oder an ist.
Darunter informieren fünf »Lämpchen« über den Programmzustand: Die Anzeige »Sensor beheizt« leuchtet dann auf, nachdem sich zum gewünschten Zeitraum die Heizung eingeschaltet und nach dem kompletten Abtauen der Platte wieder abgeschaltet hat. Sie leuchtet normalerweise nicht während des eigentlichen Heizvorgangs, sondern danach. Die Anzeige bei »Weckzeit 1 (bzw. 2) erreicht« wird dann aktiviert, wenn die entsprechende Zeit vom Programm erkannt wurde. Schließlich gibt es noch ein Blinklicht neben »Programm läuft«, das eigentlich nur den mißtrauischen Anwender davon überzeugen soll, daß der Computer noch tätig ist. Das Licht neben »fertig« geht an, nachdem Sie den aufgetretenen Alarm durch einen Tastendruck gelöscht haben.
Das Programm besitzt in dieser Phase auch eine Bildschirmschoner-Funktion: Falls Sie einige Sekunden keine Taste betätigen, schaltet sich die Bildschirmausgabe ab. Dadurch vermeidet man, daß sich die Anzeige in die Mattscheibe einbrennt. Unsichtbar läuft das Programm natürlich ganz normal weiter und wartet, bis eine voreingestellte Zeit eintritt. Durch einen beliebigen Tastendruck schalten Sie den Bildschirm wieder ein (Reaktionszeit des Programms kann allerdings unter Umständen bis zu einer halben Sekunde betragen). Der Bildschirm wird außerdem bei Auftreten eines Alarms vollautomatisch während der Alarm läuft eingeschaltet. Falls Sie das Programm als schmucke Uhrenanzeige ohne Screen-Saver betreiben möchten, setzen Sie in Zeile 2606 hinter dem Kleinerzeichen statt der 20 einen Wert über 100 (zum Beispiel 120) ein. Der Bildschirm schaltet nicht mehr ab.
Der Ablauf ist ganz einfach: Sie geben Montag abends vor dem Zubettgehen die drei gewünschten Zeiten ein und lassen den Computer wachen. Er wird vollautomatisch den Sensor abtauen und am Morgen testen, ob es geschneit hat. Wenn ja, ertönt der Alarm zu der eingestellten Weckzeit 1, sonst später. Der Alarm kann durch einen beliebigen Tastendruck abgestellt werden, er läuft sonst ewig weiter.
»Alarm« bedeutet in diesem Zusammenhang übrigens zweierlei: Einerseits aktiviert der C 64 das Bit PB2 am Userport (von 0 auf 1 für die Dauer des Alarms), außerdem erzeugt der C 64 über seinen Sound-Chip ein (vor allem am frühen Morgen) unangenehmes Geräusch, wie man es von Digitaluhren kennt (Piep-piep-piep). Ist dieses unerwünscht, drehen Sie einfach den Lautstärkeregler am Monitor auf Null, oder stecken die Tonleitung aus. Alternativ könnten Sie die Subroutine ab Zeile 400, die sich für die Tonerzeugung zuständig fühlt, entfernen, indem Sie vor Zeile 402 einen RETURN-Befehl einfügen.
Am nächsten Abend müssen Sie die Prozedur des Einstellens nicht nochmal durchlaufen. Um die Statusanzeige zurückzusetzen - nur dann kann wieder ein Alarm auftreten und nur dann arbeitet das Programm in der nächsten Nacht weiter - drücken Sie die Taste mit dem Pfeil nach oben. Heizung und Alarm werden ausgeschaltet, und das Programm nimmt seine Grundstellung an. Vergessen Sie, diese Taste zu drücken, wird kein Alarm mehr ausgelöst - weder zur Weckzeit 1, noch zur Zeit 2. Zum Beispiel am Wochenende kann das praktisch sein.
Mit diesen Funktionen könnten Sie das Programm im Prinzip ständig laufen lassen, wenn da nicht ein kleiner Schönheitsfehler des C 64 wäre: Die Uhr wird bei diesem Programm aus der Softwareuhr TI$ gespeist, die pro Tag bis zu einer halben Stunde falsch gehen kann. Sie sollten also von Zeit zu Zeit des Programm neu starten und die Uhr wieder stellen. Zu diesem Zweck dient die Taste mit dem Pfeil nach links.
Die Konventionen des Programms entsprechen denen der Hardware:
Userport PB0: 1=Heiz-Relais an
PB1: 1=Schnee auf Sensor
PB2: 1=Alarm-Relais an (Wecker)
Ab Zeile 1030 baut der C 64 intern die Daten zur Darstellung der großen Siebensegment-Ziffern auf. Der »Zeichensatz« ist in Zeilen 1031 bis 1032 gespeichert. Zeile 1100 bis 1105 enthält als DATA codiert ein kurzes Maschinenprogramm, das die Einblendung der Uhrzeit erleichtert.
Sollen die Vorgabewerte für die Weck- und Heizzeiten geändert werden, bedienen Sie sich in den Zeilen 1210, 1220 und 1230.
Sie sollten das Programm im Ablauf nicht mit der Taste RUN STOP abbrechen. Falls das doch einmal notwendig sein sollte, wird eventuell der Cursor nicht sofort sichtbar sein. In diesem Fall löschen Sie bitte »blind« den Bildschirm und tippen den Befehl
POKE 648,4 RETURN
ein.
Soweit zur Programmbeschreibung. Wir hoffen, daß niemals dann Schnell fällt, wenn Sie schippen müssen, und wünschen Ihnen viele Stunden erholsamen Schlaf!