APPLICATIONSDIVERS ★ NUN WEISS AUCH DER SCHNEIDER, WAS ES GESCHLAGEN HAT! ★

Digitaluhr (Computer Schau)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

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 TIME

eine 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.
Platz sparen
In Zeile 190 haben wir festgelegt, daß das Zeichen für die Zifferndarstellung ein Rechteck ist.

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
auf Zeile 12, Spalte 1 und in der Variablen zs$ befindet sich anschließend die Zeit.

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 = 123
a$=str$(a)
print a$
print asc(a$)
print len(a$)

Wie 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!

Das heißt, daß bei der Umwandlung der Zahl in die Stringvariable ein „Space“ vorangestellt wurde. Um dieses Zeichen abzutrennen, war diese Art der Programmierung erforderlich.

In Zeile 650 wird dann der Zeitstring für die Schleifenausgabe „zusammengebaut“, um durch die Schleife (Zeile 670 bis 680 - Laufvariable t) an den entsprechenden Bildschirmpositionen ausgegeben zu werden.

Zeile 680 bewirkt dann noch die Verzweigung, damit das Programm im „Kreis“ läuft.

Nun brauchen Sie nur noch das Programm korrekt in Ihren Schneider CPC 464 einzugeben, damit er weiß, was die Stunde geschlagen hat.

Lothar Miedel , ComputerSchau

Listing „Digitaluhr für den CPC 464“ auf der folgenden Seite.

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.

★ PUBLISHER: COMPUTER SCHAU
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: Lothar Miedel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Digitaluhr    (Computer  Schau)    GERMAN    LISTINGDATE: 2023-10-28
DL: 37
TYPE: PDF
SiZE: 509Ko
NOTE: Supplied by www.acpc.me ; 1 page/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Kunden-Datei (Schneider Aktiv)
» Applications » Euro-Datei (Happy Computer)
» Applications » Plattendatei (Schneider Aktiv)
» Applications » Dateiverwaltung CPC 464
» Applications » Unidat - CPC 6128 - Datei (CPC Amstrad International)
» Applications » Dateiumsetzung (Schneider Aktiv)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 692 millisecondes et consultée 190 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.