Hardware > Hardware (Classic 16-/32-Bit)

Tastatur mit CapsLock Controlle

<< < (12/27) > >>

Gast120501:
Es stellt sich die Frage, ob der Caps-Lock-Status überhaupt im Tastaturprozessor gespeichert wird, oder erst im ST (TOS). Man müsste sich mal ansehen, ob der Tastaturprozessor immer die selben oder untschiedliche Scancodes versendet, wenn Caps-Lock gedrück oder nicht gedrückt wurde, daraus könnte man das rückfolgern.

ToPeG:
Für den Tastaturprozessor ist CapsLock eine Taste wie jede andere. Es wird kein Unterschied gemacht.
Weiterhin ist der TaststurRAM fast vollständig belegt. Nur ein paar Bytes sind bei den Puffern frei, können aber jederzeit überschrieben werden, wenn die Puffer größer werden.
Der CapsLock Status ist mit den anderen Tasten dieser Art (Shift Control Alternate etc.) Im ST-RAM hinterlegt und mit dem BIOS Befehl Kbshift kann das abgefragt und gesetzt werden.
Soweit ich es sehe, macht das Programm CAPSLOCK.PRG es genau so. Es Hängt eine Routiene in den Interruptvektor des VBLANK, die erst den Capslock Status abfragt und danach das Bit im Port über das Memory-read und write richtig setzt.
CAPSLOCK.PRG ist dabei sehr unsauber programmiert und nutzt fast keine TOS funktionen. Weshalb es nur recht eingeschränkt funktioniert.

Gast120501:
Genau das habe ich vermutet. Demnach gibts für Caps-Lock keine Sonderbehandlung im Tastaturchip und folglich wird er deswegen auch diesen Port rein automatisch durch den IKBD nicht setzen können.

Die Sache mit der Tastaturmatrix über ein riesen-UND-Gatter zu überwachen fällt auch flach, denn während man die Taste drückt, fragt der IKBD die gesamte Matrix mehrere tausende Male ab, das JK-Flipflop am Ausgang des UND würde flattern. Oder man muss was mit dem flatternden Ausgang machen - Falltern=Status umschalten, aber wie...?  Hmmm... ne Diode hinter das UND, darüber einen kleinen Kondensator laden, und diese Spannung auf TTL-Niveau verstärken und das aufs JK-Flipflop...? - Damit werden aber evtl. kurze Tastendrücke nicht registriert?

Neuen leeren HD6301 kaufen und modifizierte Firmware rein? Wer machts...?

Es bleibt, auf der ST-Hauptplatine einen freien IO-Port, 1 Bit, zu finden, und ein Autostart-Programm, welches CapsLock aus dem TOS ausliest, und dementsprechend über den Port die LED ein und ausschaltet. Bei den Tastaturcomputern 260/520/1040ST/STE kann man dann die LED in die Tastatur setzen, bei den abgesetzten Tastaturen im Mega ST/E und TT geht das nicht.

Am elegantesten wäre wohl, den Status auflösungsunabhängig auf dem Monitor anzuzeigen, oder ein AT/PS/2-Tastaturinterface anzustöpseln und ne PC-Tastatur zu verwenden. Die hat die entsprechende LED.

ToPeG:
Das Bit0 an Port3 das IKBD bekommt man gesetzt, das ist kein Problem. Das bekommt man sogar einigermaßen Portabel hin, wenn man die Bios-Funktionen benutzt und beim Start das System abfragt. Dann kann man auch gleich ein Cookie setzen. Das es im CAPSLOCK.PRG schlecht gemacht ist, heißt nicht das man es so machen muss.
Übers das Bios und IKBD-Befehle kann man den Bit0 Port3 abfragen und setzen. (abfragen ist nötig, da über den Port auch die Tastaturmatrix angesteuert wird, dem will man ja nicht dazwischen funken)
Ich sehe keine grundsätzlichen Probleme.

Wenn du es über eine Schaltlogik machen willst:
Nachteil: Die Schaltung bekommt nicht wenn ein Programm den Capslockstatus ändert.

EDIT: kleiner Fehler im Schaltbild.

gstoll:

--- Zitat von: oneSTone o2o am Sa 11.08.2012, 20:02:39 ---den ST-Tastaturchip für einen der Emulatoren komplett disassembliert hat.

--- Ende Zitat ---
Falls es noch was bringt und aus einer andern Quelle.

Unten hängt der Sourcecode des Betriebssystem des Tastaturprozessor (PDF -> LZH)

Ob Atari aber jetzt unterschiedliche Version erstellt hat kann ich nicht schreiben.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln