Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Z1013 - INKEY Routine » Themenansicht

Autor Thread - Seiten: -1-
000
31.12.2020, 17:21 Uhr
G.Fischer



Für die Assembler-Programmierung von Z1013-Spielen mit schnellen Tasten-Reaktionen könnte die INKEY Routine ganz nützlich sein, wenn da nicht die softwareseitige Tastenentprellung wäre, die die Repeat-Funktion verhindert. Manche Monitor-Varianten geben die Repeat-Funktion zumindest nach kurzer Zeit frei, was allerdings auch nicht optimal ist. Anscheinend wurde nur im A2-Monitor (in diesem Fall glücklicherweise) auf die Tastenentprellung verzichtet.

Hat jemand eine alternative Idee für schnelle Tastaturabfragen und der Möglichkeit, eine Taste gedrückt zu halten? Direkte Hardware-Abfragen (über die PIO) kommen aus Kompatibilitätsgründen nicht infrage.

Grüße, Gunter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
31.12.2020, 18:12 Uhr
Hobi



vor dem Aufruf die Speicherzelle 4 auf 0 setzen, dann wird nicht mehr auf die Wiederholung gewartet. Das hat dann auch den Vorteil, dass es kompatibel mit allen Monitorvarianten ist.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
31.12.2020, 18:31 Uhr
ralle



Meines Wissens wurde der Tastaturrepreat hardware-Seitig gelöst, also mittels Logik. Da gibt es genügend Anleitungen.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
31.12.2020, 19:00 Uhr
G.Fischer



Besten Dank, Hobi!

Ich habe es gleich ausprobiert und ja, das funktioniert einwandfrei.
Damit wird die Tastenentprellung ausgehebelt.

Grüße und guten Rutsch,
Gunter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
31.12.2020, 22:40 Uhr
Bert




Zitat:
ralle schrieb
Meines Wissens wurde der Tastaturrepreat hardware-Seitig gelöst, also mittels Logik. Da gibt es genügend Anleitungen.


Beim Original-Z1013 hängen die Spalten (Ausgänge) der Tastaturmatrix an einem Latch + 1-aus-10-Dekoder (D175 + MH7442). Die Zeilen (Eingänge) gehen an die PIO, Port B, Bit 0 bis 3. Außer ein paar zusätzlichen Pullup-Widerständen ist da nix weiter verbaut.
Das mag bei einer der vielen Tastaturalternativen für den Z1013 anders sein...

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
01.01.2021, 08:57 Uhr
ralle



Bei Holm auf seinem Server oder bei Volker sollte der Schaltplan für Autorepreat liegen.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
01.01.2021, 14:08 Uhr
G.Fischer



Das Problem ist gelöst, vielen Dank für die Unterstützung. Es war eine reine Softwarefrage, keine Hardwarefrage.

Kurz zusammengefasst:
In der INKEY Routine ist eine Schleife (vermutlich zur Tastenentprellung) implementiert, die nicht oder erst nach einer gewissen Zeit verlassen wird, solange die Taste gedrückt bleibt. Bei Spielen mit Tastaturbedienung stört das gewaltig.
Im Speicher (Adr. 0004h) wird der Tasten-Code von INKEY zwischengespeichert. Wird die Routine erneut aufgerufen, vergleicht sie die gedrückte Taste mit dem gespeicherten Wert. Falls die Werte gleich sind, bleibt die Routine in einer Schleife, bis die Taste losgelassen wird. Wenn man, wie von Hobi vorgeschlagen, vor dem Aufruf der INKEY Routine eine 0 einträgt, wird die möglicherweise schon länger gedrückte Taste als frisch gedrückt interpretiert und ausgegeben.
Wenn man den Zwischenspeicher immer vor dem Aufruf der INKEY Routine löscht, kann man eine Polling-Funktion (analog zu Sprungverteiler: JMP POLL) realisieren.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek