CPC-Freunde,
ich will was programmieren in Z80 und brauche dafür einen möglichst unabhängigen 16Bit counter. Haben wir nicht irgendwo im RAM einen Frameticker oder so, den ich nur auslesen muss, der automatisch hochzählt per Interupt? Interupts bleiben bei mir an. Ich kann natürlich auch selbst was aufsetzen, aber a) weiß ich gerade nicht wie das geht mit der Firmware (Frame Fly Ticker oder so), und b) könnte ich natürlich in meiner Anwendung in der "Hauptschleife" einen Zähler aufsetzen, aber schöner wäre halt wenn ich einen schon existierenden Interupt-Counter verwenden könnte der bereits von der Firmware aufgesetzt wurde. Der Kernel sollte doch sowas irgendwo haben? :)
Guck im Systembuch mal nach denen hier:
&BCE0 KL NEW FAST TICKER
&BCE3 KL ADD FAST TICKER
&BCE6 KL DEL FAST TICKER
Ja ok, aber die muss ich ja selbst aufsetzen. Ich dachte, evtl. gibt's im RAM schon ne Addresse wo gezählt wird und die müsste ich nur auslesen dann? Wenn nicht, auch kein Problem, kann ich ja machen.
EDIT: OK, habe mal alle RAM-Addressen mit "count" im Namen aus hier angesehen:
http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/firmware.pdf
Da scheint wirklich keiner "automatisch zu zählen" :gruebel:
Im CPC ist ein 32-Bit Zähler. Reicht dir der?
Unter Basic ist das der mit dem Befehl TIME.
In ASM:
BD0D KL TIME PLEASE
Erfrage den Stand des Interrupt-Zählers
Eingaben: keine
Ausgaben: DEHL enthält die Zeit in 1/300stel Sekunden
Unverändert: AF,BC,IX,IY
Für allgemeine Zeitmessungen lohnt es sich oft nicht, den CPC mit der Rechenzeit
für einen Eventblock zu belasten. Verbrauchte Zeit lässt sich mit diesem Vektor
bequem feststellen. In Basic wird dieser Vektor für die reservierte Variable 'TIME'
benutzt. Da dieser Zähler bei jedem Hardware-Interrupt weitergestellt wird, leidet
seine Genauigkeit mit jedem Kassetten- oder Diskettenzugriff.
BD10 KL TIME SET
Stelle den Interrupt-Zähler auf einen neuen Startwert
Eingaben: DEHL enthält den neuen Wert für den Interrupt-Zähler
Ausgaben: keine
Unverändert: BC,DE,HL,IX,IY
Der Zähler lässt sich auch stellen, um ihn beispielsweise an die Datums- und
Uhrzeit-Eingabe in einem Programm anzupassen. Der gesamte Zeit-Messumfang
des 4-Byte Zählers umfasst etwa 165 Tage.
Prima, besten Dank! Genau was ich suche!