Migration to the new server completed.

Please add any new defect you notice here!


Die Migration auf den neuen Server ist abgeschlossen.

Bitte neue Defekte hier vermerken!

TIME$

Aus C64-Wiki
Wechseln zu: Navigation, Suche

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

Typ: Systemvariable als Zeichenkette
Allgemeine Programmier-Syntax: TI$ oder TIME$ 

Die Systemvariable TI$ (üblicherweise in einer Langform als TIME$ bezeichnet) enthält einen sechs Zeichen langen String, der die Laufzeit des Rechners seit dem letzten Zurücksetzen oder den Zeitverlauf seit der letzten Zuweisung in Stunden, Minuten und Sekunden angibt (Format: HHMMSS).

Die Zeitzählung fängt beim Einschalten oder nach einem Reset bei "000000" an. Zudem kann der Variablen TI$ ein 6-stelliger String zum Setzen eines entsprechenden Zeitwertes zugewiesen werden. Beispielsweise setzt auch TI$="000000" die Zeitzählung auf den Einschaltzustand zurück.

Der Zeitstring aus TI$ korrespondiert mit dem Wert der Systemvariablen TI (bzw. TIME), die beide auf dem systeminternen Timer (Zeitzähler) basieren. Ein Setzen von TI$ beeinflusst somit auch TI.

Die Systemvariable TI$ kann Werte von "000000" bis "235959" annehmen. Beim Bereichsüberlauf beginnt TI wieder mit 0 und TI$ weist wieder den Wert "000000" auf. Da der über einen Interrupt realisierte Timer bei Nutzung des Datasettengeräts angehalten wird, entspricht TI$ nicht mehr dem Verlauf der Realzeit.

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. 6-stellig, enthält verbotene Zeichen wie "-", "+") wird die Fehlermeldung ?ILLEGAL QUANTITY ERROR produziert. Dies passiert auch bei Verwendung von String-Variablennamen, die mit den signifikanten 2 Buchstaben TI beginnen, 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"
30 T$=TIME$:REM Zeit zwischenspeichern, um Überlaufeffekte zu vermeiden
40 PRINTCHR$(147);LEFT$(T$,2);":";
50 PRINT MID$(T$,3,2);":";
60 PRINT RIGHT$(T$,2): GOTO 30
In anderen Sprachen