★ APPLICATIONS ★ DIVERS ★ NUN WEISS AUCH DER SCHNEIDER, WAS ES GESCHLAGEN HAT! ★ |
Digitaluhr (Computer Schau) | Applications Divers |
Für die Besitzer und Benutzer des in den letzten Monaten „Furore” machenden „Schneider” liegt noch vieles im „argen”. Es sind bisher noch sehr wenig Details über diesen Computer bzw. seine Eigenheiten bekannt. Wir versuchen dem ein wenig abzuhelfen. Die Zeit. Wissen Sie, woher dieser Computer seine Informationen holt, die er zur Ausgabe der bereits abgelaufenen Zeit braucht? Wissen Sie, wie diese Uhr überhaupt gestellt werden kann? Für alle Besitzer des CPC 464, die diese beiden Fragen mit Nein beantworten mußten, aber auch für diejenigen, die mit diesen Speicherzellen arbeiten und die Uhrzeit in ein eigenes Programm einbauen wollen, haben wir das Programm „Digitaluhr für CPC 464“ geschrieben. Grundsätzliches Über den Befehl TIME steht im Handbuch nachzulesen, daß die Zeit zurückgegeben wird, die seit dem Einschalten vergangen ist. Das Programmbeispiel aber gibt die abgelaufenen Sekunden ab dem Programmstart aus. Auch das unter dem Befehl WEND zu findende Programm hilft nicht in allen Fällen weiter, deswegen haben wir uns entschlossen, Hilfestellung in Form eines Programmes zu geben. Durch den Aufruf von print TIME antwortet der Computer mit der Ausgabe einer Zahl, die pro Sekunde um 300 weiterzählt. Das heißt, daß Sie dann, wenn Sie sehr schnell sind, kurz nach dem Einschalten auf den Befehl: print TIMEeine Zahl in der Größenordnung von etwa 600 bis 700 auf dem Monitor lesen können. Bis Sie nämlich die Eingabe gemacht haben, sind bereits ca. zwei Sekunden vergangen. Geben Sie diese Frage aber später ein und teilen das Ergebnis durch 300, dann wissen Sie, wieviele Sekunden seit dem Einschaltvorgang vergangen sind. Also: print TIME/300 oder print int(Time/300). Bei der zweiten Art entfallen die Nachkommastellen. Teilen Sie dieses Ergebnis dann durch 60, dann erhalten Sie die Anzahl der Minuten usw. Programmanalyse Am besten analysieren wir aber das nachstehende Digitaluhr-Programm und gehen Schritt für Schritt vor. Die Zeilen 100 bis 430 bereiten nur alles vor. In Zeile 100 wird der MODE 1 (40 Zeichen) gesetzt und der Text ausgegeben. In den Zeilen 150 bis 170 erfolgt die Definition der Cursorsteuerzeichen. Dies machen wir aus zwei Gründen. Erstens ist es für Besitzer anderer Computer dann leichter, dieses Programm umzusetzen und zweitens wird es dann beim Zusammenbau der Ziffernstrings kürzer, als wenn dauernd die chr$-Definitionen zusammengebaut werden müssen. Um weiterhin Platz beim Zusammenbau zu sparen, haben wir in Zeile 200 der Variablen g$ drei Leerzeichen zugeordnet. Für die Stringvariablen in den Zeilen 210 und 220 gilt dies analog, nur die Zeichenzuordnung ist anders. In Zeile 230 wird der String für den Doppelpunkt definiert. Wenn Sie sich dies etwas näher ansehen, dann verstehen Sie auch, wie die Ziffernstrings erzeugt werden. Die Zahl 227 legt fest, daß es sich um das Karo-Zeichen handelt. Also: Karozeichen, dann Cursor zweimal nach unten, Cursor nach links und wieder das Karozeichen. Zur Erleichterung nehmen Sie sich vielleicht ein Blatt kariertes Papier und vollziehen dies nach. Am besten natürlich auch mal für einen Ziffernstring, dann erkennen Sie sehr schnell, welch simple Methode dahintersteckt. Probleme mit der Position In Zeile 250 haben wir die Grundwerte für die Horizontal- und Vertikalposition definiert, das heißt, ab diesen Punkten erfolgt (relativ gesehen) dann auch das Plazieren der Strings bei der Zeitausgabe. In den Zeilen 280 bis 330 sind dann die Positionierungs strings für die Ziffernstellen. Kurz zur Erklärung, po$ (3) und po$ (4) geben an, an welcher Horizontal position die Minuten-Ziffern stehen sollen. Weshalb dies erforderlich wurde, wollen wir durch ein kleines Demonstrationsprogramm erläutern (siehe Programmlisting). Am besten geben Sie dieses Programm in Ihren Schneider ein, dann sehen Sie, wo die Problematik für uns war. Um alle Schwierigkeiten zu meiden, haben wir den im Programm beschrittenen Lösungsweg eingeschlagen. Ziffernstrings werden in den Zeilen 340 bis 430 generiert. Diese Methode ist die gleiche, wie die bei der Doppelpunkterzeugung. Die Zeile 450 positioniert Diese wird in den Zeilen 470 bis 490 in Stunden, Minuten und Sekunden zerlegt und in die Variablen tl bis t3 abgelegt. In Zeile 500 wird die Anzahl der Sekunden berechnet. 510 bis 530 rechnen um, damit - in die entsprechenden Adressen - die Werte gepokt werden können, die der tatsächlichen Zeit entsprechen (Zeile 540). Durch Zeile 550 werden außer dem Löschen des Bildschirmes die beiden Karo-Doppelpunkte an die gewünschten Bildschirmpositionen gebracht. Zeile 570 überprüft, ob die Uhrzeit auf „000000“ gesetzt werden muß, falls es gleich oder später als „24:00:00“ ist. In 590 wird der Variablen t0 die Zeit in Sekunden zugewiesen. In den Zeilen 610 bis 630 werden die Stunden, Minuten und Sekunden zurückgewonnen. Weshalb dies durch die Funktion right$(...,2) erfolgen muß, wollen wir durch ein kurzes Beispiel erläutern. Geben Sie bitte in Ihren Computer folgende Befehle ein: a = 123Wie Sie sehen können, wird die Variable a$ auf dem Bildschirm um ein Zeichen nach rechts versetzt, asc(a$) ist 32 und die Länge der Stringvariablen ist vier! |
Kurz und bündig Neben dem Programm Digitalu.hr für den CPC 464, welches ausführlich erklärt wird, ist in diesem selbst nachzusehen, wo seine Speicherstellen für die Uhr sind. Interessant ist aber auch das Verhalten dieses Computers bei der String-verknüpfung bzw. der nachfolgenden Ausgabe dieser. Das Demon-strationslisting hierfür ist ebenfalls abgedruckt. |
|
|