Seite 1 von 2
Keyboard Treiber DE
Verfasst: Mi 27. Mär 2013, 18:05
von Feinmechaniker
Hallo,
im Zusammenhang mit dem Aufbau eines VT100 Terminals für CP/M sitze ich seit zwei Tagen an einem deutschen Keyboardtreiber hier aus dem Forum (keyboard_1252.spin)
Ist alles soweit kein Problem, nur die Zeichen die mit R-ALT (Alt Gr) aufgerufen werden kommen fehlerhaft („@²³{[]}\“). Soweit ich den Code nun auseinandergenommen habe, wird die Routine die den Scancode für R-Alt+Zeichen aus der Tabelle holt nicht angesprungen (Bitmuster in Testbefehl stimmt nicht überein). Setze ich ein anderes Bitmuster z.B. R-SHFT dafür ein, kommen die Zeichen richtig. Hat jemand dieses Problem schon mal gehabt oder kenn jemand eine Lösung dafür?
Gruß Joe
Re: Keyboard Treiber DE
Verfasst: Mi 27. Mär 2013, 18:32
von PIC18F2550
Hi und herzlich willkommen.
Nimm mal den Treiber aus dem WIKI.
Ich habe mich hauptsächlich um die deutschen Zeichensatz gekümmert.
Re: Keyboard Treiber DE
Verfasst: Mi 27. Mär 2013, 22:06
von drohne235
@Feinmechaniker: Hol dir mal die aktuelle TriOS Version für den Hive. Dort findest du im Verzeichnis "lib" den Treiber "bel-keyb.spin" mit welchem die gesamte deutsche Belegung inklusive der rechten AltGR-Taste funktioniert. Das Handling kannst du dir im Bellatrix-Code anschauen, oder einfach hier fragen...

Re: Keyboard Treiber DE
Verfasst: Do 28. Mär 2013, 09:59
von Feinmechaniker
Danke, Super, das ging ja richtig schnell!
Leider ist damit das Problem nicht behoben. Ich habe auch den Treiber aus der aktuellen TriOS Version versuchsweise getestet. Immer das gleiche Problem. Die R-Alt Routine wird nicht angesprungen. Nun vermutete ich schon fast eine exotische Tastatur, doch eine zweite Tastatur zeigt den gleichen Fehler. Ich hab mal das Codefragment anhegängt.
Wenn ich ALR-R drücke ist y bei mir #%11000000
'Translate scan-codes with characters from "table_alt_r"
'
'
' test y,#%11000000 wz 'get ALT-R (AltGr) into nz
{test with CTRL-R} test y,#%00001000 wz 'get CTRL-R into nz
'original test y,#%00100000 wz 'get ALR-R into nz
if_nz mov data,data_s 'reload scancode
if_nz call #look_alt_r 'translate by table_alt_r
Re: Keyboard Treiber DE
Verfasst: Do 28. Mär 2013, 17:21
von drohne235
Ich hab es nur ganz praktisch getestet: Sowohl in der Kommandozeile von TriOS, als auch in mental (verwendet den gleichen Treiber) kann ich Zeichen wie {[]} problemlos per Tastatur eingeben.
Hmm, mal zum Verständnis: du hast einen einzelnen Propellerchip, welchen du mit Keyboard und VGA-Monitor als Terminal für einen CP/M-Rechner verwenden möchtest?
Re: Keyboard Treiber DE
Verfasst: Do 28. Mär 2013, 20:05
von Feinmechaniker
Ja, richtig. Es gibt nur einen einzigen Propeller-Chip mit simpler Standardbeschaltung der das VT100 Terminal nachbildet. Ich könnte den Code auch mal zusenden. Mein Schwerpunkt liegt ja mehr auf CP/M oder AVR, mit dem Propeller tue ich mich noch schwer.
Re: Keyboard Treiber DE
Verfasst: Do 28. Mär 2013, 20:17
von drohne235
Jo, pack doch mal ein Archiv mit dem Code hier in den Fred, ist ja durchaus ein interessantes Thema. Im Prinzip kann ich das gut mit dem Hive testen, wird halt nur der Bellatrix-Chip genutzt.
Re: Keyboard Treiber DE
Verfasst: Fr 29. Mär 2013, 10:07
von Feinmechaniker
Danke für die Hilfe!
Hier der Code. Die Software stellt derzeit ein VT100 Terminal mit 115200 Baud 8N1 bereit. Es ist erst ein Anfang, viele der zukünfig geplanten ESC Sequenzen sind noch nicht implementiert, doch das CP/M läßt sich schon damit bedienen. Im Keyboard Treiber (Keyb-DE) habe ich an der Stelle {Translate scan-codes with characters from "table_alt_r"} versucht den Fehler zu finden, möglicherweise dilletantisch

Vielleicht findet ihr den Fehler sofort und ich hab wieder was gelernt

Re: Keyboard Treiber DE
Verfasst: Fr 29. Mär 2013, 11:11
von drohne235
Hab jetzt deinen Code noch nicht genau angeschaut, aber zufällig gerade ein kleinen Democode zusammengeschrieben.
belterm0 - gibt Zeichencode und Zeichen aus
belterm1 - gibt nur Zeichen aus
belterm2 - gibt Zeichen zusätzlich mit 115200 Baud an der Seriellen aus
Die Pins für Keyboard und VGA musst du anpassen. In allen Fällen funktioniert dabei die komplette Tastaturbelegung. Vielleicht wird dir da schon sichtbar, wo der Fehler sitzt.
Edit (siehe zweites Archiv): Zumindest in der angehängten Testversion von deinem VT100-Code mit meinem Keyboardtreiber kommt über die Serielle die gesamte Tastaturbelegung --> der Keyboardtreiber von TriOS/mental liefert also erstmal den passenden Zeichencode. Jetzt mal schauen wo er im Terminalcode verschwindet...

Re: Keyboard Treiber DE
Verfasst: Fr 29. Mär 2013, 12:13
von Feinmechaniker
Danke!
Lustige VGA-Auflösung

ABER die Tastatur geht nun. Jetzt kann ich ja mal in Ruhe meinen Fehler suchen. Ich berichte dann später von meinem Ergebnis.
Außerdem: Ich bin wirklich beeindruckt von der im Hive-Projekt geleisteten Arbeit. Mal sehen was sich in Bezug von CP/M noch daraus entwickelt.