Autor Thema: Counter gesucht  (Gelesen 425 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline LambdaMikel

Counter gesucht
« am: 22. Juni 2021, 16:38:45 »
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? :)

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 3.775
  • Likes gesamt: 94
  • Karma: +57/-1
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Counter gesucht
« Antwort #1 am: 22. Juni 2021, 22:59:17 »
Guck im Systembuch mal nach denen hier:

&BCE0 KL NEW FAST TICKER

&BCE3 KL ADD FAST TICKER

&BCE6 KL DEL FAST TICKER
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 22.02.2022)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

Offline LambdaMikel

Re: Counter gesucht
« Antwort #2 am: 22. Juni 2021, 23:49:23 »
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:
« Letzte Änderung: 22. Juni 2021, 23:58:43 von LambdaMikel »

Offline Shining

Re: Counter gesucht
« Antwort #3 am: 23. Juni 2021, 09:33:34 »
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.

Offline LambdaMikel

Re: Counter gesucht
« Antwort #4 am: 25. Juni 2021, 05:21:24 »
Prima, besten Dank! Genau was ich suche!