TIME$

Aus C64-Wiki
Wechseln zu: Navigation, Suche
TIME$
Format: TI$ oder TIME$ oder TI<Buchstaben>$
Parameter
Einordnung
Typ: Zeichenketten-Systemvariable
Kontext: System
Aufgabe: Abfrage der Rechner-Laufzeit
Abkürzung: -
Verwandte Befehle
TI

Anmerkung: Dieser Artikel beschreibt die Systemvariable TI$ unter BASIC V2 des Commodore 64.


Die Systemvariable TI$ enthält einen sechs Zeichen lange Zeichenkette (String), der die Laufzeit des Rechners seit dem letzten Zurücksetzen, einem Überlauf nach 24 Stunden oder den Zeitverlauf seit der letzten Zuweisung in Stunden, Minuten und Sekunden angibt (Format: HHMMSS).
Häufig wird diese Variable auch in einer für Variablennamen möglichen und gültigen Langform − in <Buchstaben> darf kein anderes Schlüsselwort vorkommen − per Konvention als TIME$ oder TIMER$ bezeichnet, um die Lesbarkeit zu erhöhen.

Die Zeitzählung fängt beim Einschalten, beim Überlauf nach 24 h oder nach einem Reset bei "000000" an. Zudem kann der Variablen TI$ eine 6-stellige Zeichenkette zum Setzen eines entsprechenden Zeitwertes zugewiesen werden. Beispielsweise setzt TI$="000000" die Zeitzählung auf den Einschaltzustand zurück.

Die Zeichenkette in TI$ korrespondiert mit dem Wert der Systemvariablen TI (bzw. TIME), die beide auf dem systeminternen Timer (Zeitzähler) basieren. Ein Setzen von TI$ setzt somit auch TI auf den korrespondierenden Wert in 1/60 s.

Die Systemvariable TI$ kann Werte von "000000" bis "235959" annehmen. Beim Bereichsüberlauf weist TI$ wieder den Wert "000000" auf und damit enthält auch TI den Wert 0. Die von TI$ vermerkte Zeit entspricht in der Regel nicht dem Verlauf der Realzeit, da der mit Hilfe der Interrupt-Technik realisierte interne Timer z.B. bei Nutzung des Datasettengeräts oder bei anderen Vorgängen, die Interrupts (IRQ) maskieren (z.B. mit SEI), vorübergehend angehalten wird.

Wird beim Setzen von TI$ kein String verwendet, so erscheint die BASIC-Fehlermeldung ?TYPE MISMATCH ERROR. Entspricht der zugewiesene String nicht gewissen Voraussetzungen (z.B. nicht 6-stellig, enthält verbotene Zeichen wie "-", "+") wird die Fehlermeldung ?ILLEGAL QUANTITY ERROR produziert. Allerdings werden sinnvolle Zeichen und Wertebereiche nicht streng überprüft und so kann TI$ (somit auch TI) kurzfristig einen Wert außerhalb des zulässigen Bereichs annehmen, welcher dann aber innerhalb einer 1/60 Sekunde wieder auf "000000" springt.
Typische Situation, die obigen Fehler auslöst, tritt bei Verwendung von Zeichenketten-Variablennamen ein, die bei den signifikanten ersten beiden Buchstaben TI aufweisen, wie z.B. bei TITEL$ = "C64 Intern - Das große Buch zum Commodore 64".

[Bearbeiten] Beispiele

10 REM Simulation einer Uhr, Abbruch mit RUN/STOP
20 TIME$="235800" : REM Ein Wert kurz vor dem Ueberlauf
30 T$=TIME$ : REM Zeit zwischenspeichern, um Ueberlaufeffekte zu vermeiden
40 PRINT CHR$(147);
50 PRINT LEFT$(T$,2);":";
60 PRINT MID$(T$,3,2);":";
70 PRINT RIGHT$(T$,2)
80 GOTO 30

Am Bildschirm wird links oben die Zeit, im typischen Zeitformat einer Digitaluhranzeige aufbereitet, angezeigt.


In anderen Sprachen