atari-home.de - Foren
Hardware => Hardware (Classic 16-/32-Bit) => Thema gestartet von: Lukas Frank am Mo 26.06.2017, 16:11:09
-
Ich hatte noch eine alte Chicony KB-5193 R Tastatur. Gestern war der bestellte PS/2-AT Adapter in der Post und heute morgen mal schnell das Gehäuse bei 35 Grad in die Spülmaschine und die Tastenkappen im Wäschenetz bei 40 Grad mit Wäsche in die Waschmaschine. Jetzt ist das Teil wieder schön sauber ...
Die Tastatur ist eine AT/XT (Umschaltbar) PC Tastatur mit Klick und einem sehr gutem Schreibgefühl. Wahrscheinlich so wie die Schalter aussehen ein Cherry Clone aus den 80/90iger Jahren.
Bin bis jetzt sehr zufrieden mit der Tastatur bis auf das Fehlen des "#" Zeichens. @Ektus ... wie kann ich das INF File entsprechend anpassen? Habe da so ein kleines Programm das mir einen Scancode von "0X2B" für die Taste angibt, egal ob normal gedrückt oder mit Shift. Das kann aber nicht stimmen, oder?
/* German Shift table stored in Flash (program memory) */
/* Hexa values, 00: unused => use the Unshift table */
/* FF: invalid => no scancode */
/* scancode + 80: status frame => send */
/* F6 05 00 00 00 00 00 scancode, or send */
/* F6 05 00 00 00 00 00 scancode+80 for break code */
/* Azerty keys, Querty keys are in () */
:00 /* offset + 0x00 not used */
:00 /* offset + 0x01 not used */
:00 /* offset + 0x02 not used */
:00 /* offset + 0x03 not used */
:00 /* offset + 0x04 not used */
:00 /* offset + 0x05 not used */
:00 /* offset + 0x06 not used */
:54 /* offset + 0x07 F1 */
:01 /* offset + 0x08 ESC */
:00 /* offset + 0x09 not used */
:00 /* offset + 0x0A not used */
:00 /* offset + 0x0B not used */
:00 /* offset + 0x0C not used */
:0F /* offset + 0x0D TABULATION */
:34 /* offset + 0x0E <2> (`) ( at left key 1 ) */
:55 /* offset + 0x0F F2 */
:00 /* offset + 0x10 not used */
:1D /* offset + 0x11 LEFT CTRL (Atari has just CTRL) */
:2A /* offset + 0x12 LEFT SHIFT */
:60 /* offset + 0x13 >< */
:3A /* offset + 0x14 CAPS */
:10 /* offset + 0x15 A (Q) */
:02 /* offset + 0x16 1 */
:56 /* offset + 0x17 F3 */
:00 /* offset + 0x18 not used */
:38 /* offset + 0x19 LEFT ALT (Atari has just ALT) */
:2C /* offset + 0x1A W (Z) */
:1F /* offset + 0x1B S */
:1E /* offset + 0x1C Q (A) */
:11 /* offset + 0x1D Z (W) */
:03 /* offset + 0x1E 2 */
:57 /* offset + 0x1F F4 */
:00 /* offset + 0x20 not used */
:2E /* offset + 0x21 C */
:2D /* offset + 0x22 X */
:20 /* offset + 0x23 D */
:12 /* offset + 0x24 E */
:05 /* offset + 0x25 4 */
:04 /* offset + 0x26 3 */
:58 /* offset + 0x27 F5 */
:00 /* offset + 0x28 not used */
:39 /* offset + 0x29 SPACE BAR */
:2F /* offset + 0x2A V */
:21 /* offset + 0x2B F */
:14 /* offset + 0x2C T */
:13 /* offset + 0x2D R */
:06 /* offset + 0x2E 5 */
:59 /* offset + 0x2F F6 */
:00 /* offset + 0x30 not used */
:31 /* offset + 0x31 N */
:30 /* offset + 0x32 B */
:23 /* offset + 0x33 H */
:22 /* offset + 0x34 G */
:15 /* offset + 0x35 Y */
:07 /* offset + 0x36 6 */
:5A /* offset + 0x37 F7 */
:00 /* offset + 0x38 not used */
:00 /* offset + 0x39 RIGHT ALT GR (Atari has just ALT) */
:32 /* offset + 0x3A <,> (M) */
:24 /* offset + 0x3B J */
:16 /* offset + 0x3C U */
:08 /* offset + 0x3D 7 */
:09 /* offset + 0x3E 8 */
:5B /* offset + 0x3F F8 */
:00 /* offset + 0x40 not used */
:33 /* offset + 0x41 <;> (,) */
:25 /* offset + 0x42 K */
:17 /* offset + 0x43 I */
:18 /* offset + 0x44 O */
:0B /* offset + 0x45 0 (ZERO) */
:0A /* offset + 0x46 9 */
:5C /* offset + 0x47 F9 */
:00 /* offset + 0x48 not used */
:34 /* offset + 0x49 <:> (.) */
:35 /* offset + 0x4A <!> (/) */
:26 /* offset + 0x4B L */
:27 /* offset + 0x4C M (;) */
:19 /* offset + 0x4D P */
:0C /* offset + 0x4E <)> (-) (deutsch Fragezeichen auf shift-) */
:5D /* offset + 0x4F F10 */
:00 /* offset + 0x50 not used */
:00 /* offset + 0x51 not used */
:28 /* offset + 0x52 <> (') */
:0D /* offset + 0x53 <*> (\) COMPAQ */
:1A /* offset + 0x54 <^> ([) */
:0D /* offset + 0x55 <=> (=) */
:63 /* offset + 0x56 F11 */
:62 /* offset + 0x57 PRINT SCREEN */
:1D /* offset + 0x58 RIGHT CTRL (Atari has just CTRL) */
:36 /* offset + 0x59 RIGHT SHIFT */
:1C /* offset + 0x5A RETURN */
:1B /* offset + 0x5B <$> (]) */
:0D /* offset + 0x5C <*> (\) */
:00 /* offset + 0x5D not used */
:64 /* offset + 0x5E F12 */
:50 /* offset + 0x5F SCROLL */
:50 /* offset + 0x60 DOWN ARROW */
:4B /* offset + 0x61 LEFT ARROW */
:61 /* offset + 0x62 PAUSE */
:48 /* offset + 0x63 UP ARROW */
:53 /* offset + 0x64 DELETE */
:47 /* offset + 0x65 END */
:0E /* offset + 0x66 BACKSPACE */
:52 /* offset + 0x67 INSERT */
:00 /* offset + 0x68 not used */
:6D /* offset + 0x69 KP 1 */
:4D /* offset + 0x6A RIGHT ARROW */
:6A /* offset + 0x6B KP 4 */
:67 /* offset + 0x6C KP 7 */
:50 /* offset + 0x6D PAGE DOWN (unused on Atari before) (arrow down) */
:47 /* offset + 0x6E CLEAR HOME */
:48 /* offset + 0x6F PAGE UP (unused on Atari before) (arrow up) */
:70 /* offset + 0x70 KP 0 (ZERO) */
:71 /* offset + 0x71 KP . */
:6E /* offset + 0x72 KP 2 */
:6B /* offset + 0x73 KP 5 */
:6C /* offset + 0x74 KP 6 */
:68 /* offset + 0x75 KP 8 */
:54 /* offset + 0x76 VERR NUM (unused on Atari before) */
:65 /* offset + 0x77 KP / */
:00 /* offset + 0x78 not used */
:72 /* offset + 0x79 KP ENTER */
:6F /* offset + 0x7A KP 3 */
:00 /* offset + 0x7B not used */
:4E /* offset + 0x7C KP + */
:69 /* offset + 0x7D KP 9 */
:66 /* offset + 0x7E KP * */
:F4 /* offset + 0x7F SLEEP */
:F3 /* offset + 0x80 POWER */
:F5 /* offset + 0x81 WAKE UP */
:00 /* offset + 0x82 not used */
:00 /* offset + 0x83 not used */
:4A /* offset + 0x84 KP - */
:00 /* offset + 0x85 not used */
:00 /* offset + 0x86 not used */
:00 /* offset + 0x87 not used */
:00 /* offset + 0x88 not used */
:00 /* offset + 0x89 not used */
:00 /* offset + 0x8A not used */
:0F /* offset + 0x8B LEFT WIN */
:0F /* offset + 0x8C RIGHT WIN */
:60 /* offset + 0x8D POPUP WIN */
:00 /* offset + 0x8E not used */
:00 /* offset + 0x8F not used */
(http://forum.atari-home.de/index.php?action=dlattach;topic=13678.0;attach=14019;image)
-
Habe da so ein kleines Programm das mir einen Scancode von "0X2B" für die Taste angibt, egal ob normal gedrückt oder mit Shift. Das kann aber nicht stimmen, oder?
Warum sollte das nicht stimmen ? ??? Die Shift Tasten haben doch jeweils eigene Scancodes !
https://www.tu-chemnitz.de/informatik/RA/lehre/mop/dos_stuff/scancodes.html (https://www.tu-chemnitz.de/informatik/RA/lehre/mop/dos_stuff/scancodes.html)
-
Deswegen -> :21 /* offset + 0x2B F */
... dachte ich und weil immer "0X2B" kommt bei der Taste einzeln gedrückt und auch mit Shift gedrückt immer 0X2B. Mit Shift müsste das doch anders sein, oder?
-
Die Chicony Tastaturen damals waren eigentlich ganz gut, auf dem Foto sieht man auch warum. XT/AT-Umschaltbar, da bin ich jetzt doch ein bischen neidisch! :..
-
... Habe da so ein kleines Programm das mir einen Scancode von "0X2B" für die Taste angibt, egal ob normal gedrückt oder mit Shift. Das kann aber nicht stimmen, oder?
Wo läuft das Programm? Auf dem ST?
Grundsätzlich liefert (sowohl auf dem ST als auch beim PC) jede Taste (auch die Umschalttasten Strg, Alt, Shift, ...) ihren eigenen Scancode. Genaugenommen sogar zwei - einen für's Drücken und einen für's Loslassen. Ein großes "A" hat also keinen eigenen Scancode, sondern besteht aus den Scancodes für "Shift gedrückt", "a gedrückt" "a losgelassen", "Shift losgelassen".
-
Hier mal das Tool ...
-
Dann liefert dein Programm - wenn die Atari-Tabellen in das Eiffel-Dingens geladen sind - logischerweise nicht den PC-Scancode, sondern den Atari-Scancode.
Der Scancode 0x2B ist - deutsche Tastaturbelegung (TOS) vorausgesetzt, die Tilde (~). Wie der Zufall es wil ( ;) ) wäre das bei einer englischen Tastatur (/TOS) das Hash-Zeichen (#).
-
Hier mal das Tool ...
Zum Vergleich:
KEYBOARD.PRG -> Anhang.
-
Dein Programm gibt aus für die Taste " ˝ 2BH 7EH ˝ 7EH ˝ " und gedrückt mit Shift " l 2BH 7CH l 17CH l " ...
-
Auf meinem Falcon mit orig. Tastatur wird für die ´#´-Taste ausgegeben Scan 29H, Ascii 23H und mit Shift Scan 29H, Ascii 5EH. Laut ASCII-Tabelle ist ´#´ = 23H und ´^´ = 5EH.
Der imho einzig mögliche Schluß: Deine Tastenkappe sitzt auf der falschen Taste oder Deine Zuordnungs-Tabelle stimmt nicht.
Es ist lt. ASCII-Tabelle ´~´ = 7EH, und auf der Atari-Tastatur ist 2BH tatsächlich der Scan der Tilde-Taste.
PS: ´Tschuldigung, daß die Ausgabe von keyboard.prg etwas ´tanzt´, bei Gelegenheit muß Theodor da mal etwas Kosmetik machen.
Edit.: Unter ´plain´ TOS oder MAGX gibt´s kein tanzen. Vielleicht ein weiterer Bug in MiNT?
-
Tja, er hat aber keine Atari-Tastatur, sondern eine PC-Tastatur. Und am PC ist durchaus 2B der Code für #. den muss er dann halt mit Eiffel nach 29 übersetzen, oder wie auch immer der Scancode für # auf dem Atari ist. Und warum in Post 3 immer noch geglaubt wird, shift würde irgendwas am scancode anderer tasten ändern, obwohl ich in Post 2 schon schrieb, dass dem gerade nicht so ist, ist mir auch unklar.
-
Genau.
Bloß ist Post 2 = #1 un d Post 3 = #2.
PS:
„Du mußt verstehn!
Aus Eins mach’ Zehn,
Und Zwei laß gehn,
Und Drei mach’ gleich,
So bist Du reich.
Verlier’ die Vier!
Aus Fünf und Sechs,
So sagt die Hex’,
Mach’ Sieben und Acht,
So ist’s vollbracht:
Und Neun ist Eins,
Und Zehn ist keins.
Das ist das Hexen-Einmal-Eins!“
(Goethe, Faust II)
-
Mit den Informationen kann ich nichts anfangen. Wie wird das in unten stehender Tabelle umgesetzt/Eingetragen ?
/* German Shift table stored in Flash (program memory) */
/* Hexa values, 00: unused => use the Unshift table */
/* FF: invalid => no scancode */
/* scancode + 80: status frame => send */
/* F6 05 00 00 00 00 00 scancode, or send */
/* F6 05 00 00 00 00 00 scancode+80 for break code */
/* Azerty keys, Querty keys are in () */
:00 /* offset + 0x00 not used */
:00 /* offset + 0x01 not used */
:00 /* offset + 0x02 not used */
:00 /* offset + 0x03 not used */
:00 /* offset + 0x04 not used */
:00 /* offset + 0x05 not used */
:00 /* offset + 0x06 not used */
:54 /* offset + 0x07 F1 */
:01 /* offset + 0x08 ESC */
:00 /* offset + 0x09 not used */
:00 /* offset + 0x0A not used */
:00 /* offset + 0x0B not used */
:00 /* offset + 0x0C not used */
:0F /* offset + 0x0D TABULATION */
:34 /* offset + 0x0E <2> (`) ( at left key 1 ) */
:55 /* offset + 0x0F F2 */
:00 /* offset + 0x10 not used */
:1D /* offset + 0x11 LEFT CTRL (Atari has just CTRL) */
:2A /* offset + 0x12 LEFT SHIFT */
:60 /* offset + 0x13 >< */
:3A /* offset + 0x14 CAPS */
:10 /* offset + 0x15 A (Q) */
:02 /* offset + 0x16 1 */
:56 /* offset + 0x17 F3 */
:00 /* offset + 0x18 not used */
:38 /* offset + 0x19 LEFT ALT (Atari has just ALT) */
:2C /* offset + 0x1A W (Z) */
:1F /* offset + 0x1B S */
:1E /* offset + 0x1C Q (A) */
:11 /* offset + 0x1D Z (W) */
:03 /* offset + 0x1E 2 */
:57 /* offset + 0x1F F4 */
:00 /* offset + 0x20 not used */
:2E /* offset + 0x21 C */
:2D /* offset + 0x22 X */
:20 /* offset + 0x23 D */
:12 /* offset + 0x24 E */
:05 /* offset + 0x25 4 */
:04 /* offset + 0x26 3 */
:58 /* offset + 0x27 F5 */
:00 /* offset + 0x28 not used */
:39 /* offset + 0x29 SPACE BAR */
:2F /* offset + 0x2A V */
:21 /* offset + 0x2B F */
:14 /* offset + 0x2C T */
:13 /* offset + 0x2D R */
:06 /* offset + 0x2E 5 */
:59 /* offset + 0x2F F6 */
:00 /* offset + 0x30 not used */
:31 /* offset + 0x31 N */
:30 /* offset + 0x32 B */
:23 /* offset + 0x33 H */
:22 /* offset + 0x34 G */
:15 /* offset + 0x35 Y */
:07 /* offset + 0x36 6 */
:5A /* offset + 0x37 F7 */
:00 /* offset + 0x38 not used */
:00 /* offset + 0x39 RIGHT ALT GR (Atari has just ALT) */
:32 /* offset + 0x3A <,> (M) */
:24 /* offset + 0x3B J */
:16 /* offset + 0x3C U */
:08 /* offset + 0x3D 7 */
:09 /* offset + 0x3E 8 */
:5B /* offset + 0x3F F8 */
:00 /* offset + 0x40 not used */
:33 /* offset + 0x41 <;> (,) */
:25 /* offset + 0x42 K */
:17 /* offset + 0x43 I */
:18 /* offset + 0x44 O */
:0B /* offset + 0x45 0 (ZERO) */
:0A /* offset + 0x46 9 */
:5C /* offset + 0x47 F9 */
:00 /* offset + 0x48 not used */
:34 /* offset + 0x49 <:> (.) */
:35 /* offset + 0x4A <!> (/) */
:26 /* offset + 0x4B L */
:27 /* offset + 0x4C M (;) */
:19 /* offset + 0x4D P */
:0C /* offset + 0x4E <)> (-) (deutsch Fragezeichen auf shift-) */
:5D /* offset + 0x4F F10 */
:00 /* offset + 0x50 not used */
:00 /* offset + 0x51 not used */
:28 /* offset + 0x52 <> (') */
:0D /* offset + 0x53 <*> (\) COMPAQ */
:1A /* offset + 0x54 <^> ([) */
:0D /* offset + 0x55 <=> (=) */
:63 /* offset + 0x56 F11 */
:62 /* offset + 0x57 PRINT SCREEN */
:1D /* offset + 0x58 RIGHT CTRL (Atari has just CTRL) */
:36 /* offset + 0x59 RIGHT SHIFT */
:1C /* offset + 0x5A RETURN */
:1B /* offset + 0x5B <$> (]) */
:0D /* offset + 0x5C <*> (\) */
:00 /* offset + 0x5D not used */
:64 /* offset + 0x5E F12 */
:50 /* offset + 0x5F SCROLL */
:50 /* offset + 0x60 DOWN ARROW */
:4B /* offset + 0x61 LEFT ARROW */
:61 /* offset + 0x62 PAUSE */
:48 /* offset + 0x63 UP ARROW */
:53 /* offset + 0x64 DELETE */
:47 /* offset + 0x65 END */
:0E /* offset + 0x66 BACKSPACE */
:52 /* offset + 0x67 INSERT */
:00 /* offset + 0x68 not used */
:6D /* offset + 0x69 KP 1 */
:4D /* offset + 0x6A RIGHT ARROW */
:6A /* offset + 0x6B KP 4 */
:67 /* offset + 0x6C KP 7 */
:50 /* offset + 0x6D PAGE DOWN (unused on Atari before) (arrow down) */
:47 /* offset + 0x6E CLEAR HOME */
:48 /* offset + 0x6F PAGE UP (unused on Atari before) (arrow up) */
:70 /* offset + 0x70 KP 0 (ZERO) */
:71 /* offset + 0x71 KP . */
:6E /* offset + 0x72 KP 2 */
:6B /* offset + 0x73 KP 5 */
:6C /* offset + 0x74 KP 6 */
:68 /* offset + 0x75 KP 8 */
:54 /* offset + 0x76 VERR NUM (unused on Atari before) */
:65 /* offset + 0x77 KP / */
:00 /* offset + 0x78 not used */
:72 /* offset + 0x79 KP ENTER */
:6F /* offset + 0x7A KP 3 */
:00 /* offset + 0x7B not used */
:4E /* offset + 0x7C KP + */
:69 /* offset + 0x7D KP 9 */
:66 /* offset + 0x7E KP * */
:F4 /* offset + 0x7F SLEEP */
:F3 /* offset + 0x80 POWER */
:F5 /* offset + 0x81 WAKE UP */
:00 /* offset + 0x82 not used */
:00 /* offset + 0x83 not used */
:4A /* offset + 0x84 KP - */
:00 /* offset + 0x85 not used */
:00 /* offset + 0x86 not used */
:00 /* offset + 0x87 not used */
:00 /* offset + 0x88 not used */
:00 /* offset + 0x89 not used */
:00 /* offset + 0x8A not used */
:0F /* offset + 0x8B LEFT WIN */
:0F /* offset + 0x8C RIGHT WIN */
:60 /* offset + 0x8D POPUP WIN */
:00 /* offset + 0x8E not used */
:00 /* offset + 0x8F not used */
-
Auf meiner SchleppTop-Tastatur ist für die Taste ´Shift #´ ein ´'´ eingetragen, vermutlich also ASCII 27H, das sitzt auf meiner Atari-Tastatur ohne Shift auf der Taste mit Scan 0DH.
Falls Deine Tastatur der meines Labtops entspricht:
Es müßte also in Deiner obigen German Shift Table einen Eintrag 2BH geben, der auf ASCII 27H verweist.
Entsprechend müßte die Normal-Tabelle einen Eintrag 2BH haben, der auf ASCII 23H verweist.
Ich vermute mal, daß Du in obiger Tabelle einfach die Zeilen bis 2BH abzählen mußt, dann an der Zeile mit dieser Nr. den Eintrag ändern, also 17 -> 27 ? Natürlich muß dann 17H = ´|´ anderwohin.
-
Hast du dir die Tabelle mal angesehen, da gibt es kein 2BH oder ähnliches ...
Und die auch nicht richtig belegte Taste kann ich auch nicht finden.
-
Hast du dir die Tabelle mal angesehen, da gibt es kein 2BH oder ähnliches ...
Und die auch nicht richtig belegte Taste kann ich auch nicht finden.
Die Tabelle funktioniert offensichtlich so, daß mit dem Scancode der PC-Tastatur (den Du natürlich erst mal wissen mußt) die Zeile festgelegt wird, wo der entsprechende Atari-Scancode steht.
ESC ist auf der PC-Tastatur der Scancode 08, beim Atari 01. Entsprechend steht in der 8. Zeile (die sind freundlicherweise im Kommentar nummeriert) eine 1.
Weil es viele verschiedene PC-Tastaturen gibt, würde ich - wenn Du's genau haben willst - erst mal eine 1:1 Tabelle (128 Zeilen, Scancodes fortlaufend von 0 - 127) basteln. Mit der Starten (da stimmt natürlich nix) und dein Programm laufen lassen - so kannst Du zunächst für jede Taste den PC-Scancode ermitteln.
Aus der Atari-Tabelle im Profibuch host Du dir dann die Scancodes, die das Eiffel-Dingens an den ST schicken soll und trägst die entsprechend ein.
-
Warum ist im Thread eigentlich so oft die Rede von Shift bzw. warum wird die German Shift table diskutiert? '#' ist doch eine Taste, die sowohl auf der (deutschen) PC- als auch der (deutschen) Atari-Tastatur ohne Shift erreichbar ist.
-
Ich verstehe das eh nicht !
Es gibt vier INF Files ...
altgr.inf, modifier.inf, shift.inf, unshift.inf
... und im Config Programm kann ich nur altgr und shift auswählen/einstellen.
(http://forum.atari-home.de/index.php?action=dlattach;topic=13678.0;attach=14027;image)
-
Hm, also ich sehe dort neben "Load Shift Table" (=shift.inf) und "Load AltGr Table" (=altgr.inf) auch Buttons für "Load Modifier Table" (=modifier.inf) und "Load Keyb Table" (=unshift.inf). Du musst sicherlich alle vier Tabellen passend zu Deinem Tastaturlayout laden.
-
^^-- Klaro.
Warum ist im Thread eigentlich so oft die Rede von Shift bzw. warum wird die German Shift table diskutiert? '#' ist doch eine Taste, die sowohl auf der (deutschen) PC- als auch der (deutschen) Atari-Tastatur ohne Shift erreichbar ist.
Genau darauf wollte ich aufmerksam machen durch die Hervorhebungen in #13.
Es genügt nämlich nicht, bloß die Scans umzusetzen, sondern in manchen Fällen muß außerdem der Status geändert werden. Möglicherweise dient dazu die Modifier-Tabelle?
Jedenfall ist ´'´ auf der PC-Tastatur shifted, aber bei Atari unshifted, und ´|´ ist auf dem PC altgr., aber für Atari shifted.
Erst einmal mit ´#´ in der unshifted table anfangen.
-
Meine Idee ist jetzt die Belegung so zu lassen und das fehlende "#" Zeichen mit Shift + Alt * Taste oder Alternativ mit AltGr + Taste zu belegen. Da ich aber die Tabellen immer noch nicht verstehe habe ich keine Idee wie ich das umsetzen könnte ...
-
Vorschlag:
Als erstes solltest Du Dir eine verläßliche ScanCode-Tabelle für Deine Chicony-Tastatur besorgen. Die lt. Doku von LF verwendete AT-Tabelle (Set 3), siehe ATSCANCO.TXT, paßt vielleicht nicht zu Deiner Tastatur?
Daraus dann als ersten Schritt mal den Chicony-ScanCode für die ´#´-Taste ´raussuchen und damit wie von mfro beschrieben die betrfd. Zeile in unshift.inf suchen und dort die 29 eintragen (und den Kommentar entspr. ändern), dann mal flashen und schauen, ob ´#´ auf dem Atari funzt...
PS: Ich habe in der unshift.inf die 29 an der Pos. 0E gefunden, das paßt ebenso wenig wie der Kommentar dahinter.
-
Was mir sonst noch auffiel:
https://www.tu-chemnitz.de/informatik/RA/lehre/mop/dos_stuff/scancodes.html (https://www.tu-chemnitz.de/informatik/RA/lehre/mop/dos_stuff/scancodes.html)
enthält Fehler, zB. ist für 29 eingetragen ´< >´ anstatt ´# ^´ und hinter 2b steht ´# '´ anstatt ´~ |´ und für beide ScanCodes ist die gleiche amerikanische Taste ´\ |´ eingetragen...
-
Ich gebe auf ...
Ich verstehe die Tabellen nicht und finde auch nichts in Netz, da ist "#" immer Shift + 3.
Das muss mir schon jemand Haarklein für Leute mit Brett vor dem Kopf erklären.
-
Ein Tipp, stelle dir mal einen DOS-PC vor, mit einer deutschen Tastatur. Gib mal gedanklich folgende DOS Befehle ein...
C:\> keyb gr
C:\> keyb us
C:\> keyb fr
C:\> keyb it
Fragen:
- Ändert sich dadurch die Beschriftung einer Taste?
- Ändert sich dadurch der Scancode irgendeiner Taste?
- Ändert sich dadurch die Übersetzungstabelle von Scancode zu ASCII Code?
Hilft dir das?
-
Ich gebe auf ...
Bloß nicht! Strampeln, bis es Butter wird! >:D
Ich verstehe die Tabellen nicht und finde auch nichts in Netz, da ist "#" immer Shift + 3.
Ich versteh´ sie auch noch nicht. Vorn sieht unshift.inf so aus, wie von @mfro beschrieben (-> ESC), aber weiter hinten... Deshalb mein Vorschlag in #21, ein Experiment zu machen.
Falls die Chicony-ScanCodes sonst nicht zu finden sind, kannst Du sie notfalls auslesen (den EIFFEL mit den ´Defaults´ flashen und am Atari unter TOS mit board.prg das Chicony checken (nB.: habe #9 nochmal editiert). Das ist mühsam & langweilig, aber vielleicht reicht schon eine Stichprobe um weiterzukommen).
PS: Hast Du Dir EIFFEL.HTM mal angeschaut?
-
Es gibt übrigens keine Chicony-Scancodes. Die müssen bei allen AT-Tastatur-Herstellern gleich sein. Es sind also AT-Scancodes.
-
Heißt das, daß die Tabelle in EIFFEL\DOC\ATSCANCO.TXT doch die richtige ist? Da finde ich aber ´#´ überhaupt nicht. Und für MAKE = 29 ist ´SPACE´ eingetragen sowie ´F´ für MAKE = 2B.
PS: Ich meine beim Stöbern mit Google einen Hinweis gesehen zu haben, daß es bei Chicony ´Sondertasten´ gibt.
-
Es wäre sicher das Beste, sich mal frei im Internet verfügbare Scancode-Tabellen für AT-Tastaturen zu suchen.
Z.B. diese hier: https://msdn.microsoft.com/en-us/library/aa299374(v=vs.60).aspx
Google Suchbegriff:
- at keyboard scancodes
- at keyboard scancode table
Hinweis: Die Tastenbezeichnungen beziehen sich immer auf US-amerikanische Layouts!
-
Hinweis: Gebraucht wird eine deutsche Tabelle.
Wußte ich noch nicht, daß die Yankies kein ´#´ haben.
Fehlt das bei den Franzen auch?
-
Du wirst keine deutsche Tabelle finden. Scancodes ändern sich nicht, wenn du einen anderen Keyboard-Treiber (keyb gr) lädtst. Du musst schauen, welches Zeichen sich auf einer amerikanischen Tastatur auf der Taste an dieser Stelle befindet. Du weißt, aus Y wird Z, und wenn du ein deutsches Y in Ä ändern willst, musst du den Scancode vom amerikanischen Z verwenden.
Beim Atari ist es ja auch nicht anders, da werden für die einzelnen Länder nur die Tastenkappen anders bedruckt, der 6301 sendet für die Taste an der Position weiterhin den selben Scancode. Die Nationalität der Tastatur erledigt TOS. Am deutlichsten dürfte das beim Falcon zu sehen sein, denn dort kann man das Sprachlayout per Software ändern, ohne dass sich die Tastenkappen umbeschriften.
-
Können wir das Niveau mal ein ganz klein bißchen anheben?
Ich habe keine amerikanische Tastatur, und schon gar nicht Chicony. Die von @nobox in #1 verlinkte Liste ist anscheinend AT Set_2 und enthält die Entsprechungen DE - US. Gebraucht wird imho genau solch eine Liste für AT Set_3.
Erratum: Lies AT Set_1 anstatt AT Set_2
-
Stell doch einfach mal einen PC auf US-amerikanische Tastatur um und drücke die Taste, wo auf der deutschen Tastatur ein "#" aufgedruckt ist. Und schaue mal was dabei raus kommt...
-
Schlaumeier.
Ich werde sicher nicht meine Labtop-Tastatur auf US umstellen (kann ich auch gar nicht), mal ganz davon abgesehen, daß die nicht von Chicony ist. Aber wenn das für Dich so einfach ist, warum stellst _Du_ nicht einfach mal eben die besagte Liste auf anstatt wieder bloß ´rumzulabern? Nicht für mich, sondern für FL. Ist ja nicht mein Projekt.
-
Aufgedruckt ist das Kreuz "#" rechts vom "Ä" da kommt jetzt aber die Tilde und ein senkrechter Strich wenn man Shift drückt. Ich würde das gerne so lassen weil ich auch nicht weiss wo ich die anderweitig hinlegen sollte. Mein Problem ist ja das ich die besagten Zeichen in der Tabelle nicht wiederfinden kann.
Ich würde das "#" gerne via AltGr + rechte Taste neben "Ä" und Return legen wollen, weiss aber nicht wie ich das bewerkstelligen soll ?
-
Du mußt zuverlässig herausfinden, welchen ScanCode die Taste mit dem ´Kreuz "#" rechts vom "Ä"´ hat, dann in unshift.inf die entsprechende Zeile ändern (im Kommentar steht die Zeilen-Nr.!) auf 29 (= Atari ´#´) ...
Habe gerade eine deutsche ScanCode-Tabelle, jedoch in Form eines Bildes (https://www.google.de/search?q=scancode+table+deutsch+german&tbm=isch&imgil=qX2PGwoojnGjPM%253A%253BAqUDNCd1kuu1DM%253Bhttps%25253A%25252F%25252Fmsdn.microsoft.com%25252Fen-us%25252Flibrary%25252Faa299374(v%2525253Dvs.60).aspx&source=iu&pf=m&fir=qX2PGwoojnGjPM%253A%252CAqUDNCd1kuu1DM%252C_&usg=__kzunUnCaX3nPHg8SglDKhZA7tCk%3D&biw=973&bih=604&ved=0ahUKEwjP4IXayOXUAhVJKVAKHVghA58QyjcIUw&ei=v0NWWY-FIcnSwALYwoz4CQ#imgrc=-A5fLUTXvFNepM:&spf=1498825816286) gefunden, da hat diese Taste den ScanCode die Tasten-Nummer 42 =2AH. Das könnte aber bei Deiner Chicony anders sein (bisher dachte ich, deren ScanCode sei 2BH).
Edit.: Halt mal, da gibt´s noch etwas, worüber ich mal nachdenken muß...
Könnte es sein, daß modifier.inf _vor_ den anderen ausgewertet wird?
Edit.: Noch ´was: Eingetragen im Bild sind ´Tasten-Nummern´, nicht ScanCodes - was soll das denn nun wieder...
Ist denn die ´#´-Taste die einzige, die Probleme macht?
-
Probleme sind das ja keine. Ist ja alles da bis auf das # ...
-
Auf 42 steht ...
:42 /* offset + 0x3F F8 */
Auf 29 steht ...
:29 /* offset + 0x5C <*> (\) */
-
Nein, Du darfst nicht Dezimal-Zahlen und Hexa-Zahlen durcheinanderbringen - auch wenn an letzteren kein ´H´ dranhängt... Die Zeilen in den .INFs sind im Kommentar mit Hexa durchnumeriert.
-
Auf 42 steht ...
:42 /* offset + 0x3F F8 */
Auf 29 steht ...
:29 /* offset + 0x5C <*> (\) */
Wenn die :42 und auch 0x3F beides HEX ist, macht das ganze auch keinen Sinn. Was ist denn gemeint :29 oder 0x3F ?
-
:42 ist die Tastenkappe auf der Tastatur ?
0x3F ist das damit belegte Acsii Zeichen ?
Wo sind denn für diese Taste belegte Zeichen mit Shift + Taste, Alt + Shift + Taste und AltGr + Taste ?
-
Bsp.1:
Im ATSCANCO.TXT steht für den Key ´ESC´ der MAKE-Code 08 (hexa!).
Im Atari hat die Taste ´ESC´ den KeyCode 01H.
Im unsfift.inf ist nach der 8ten Zeile (hinter den 6 Zeilen des einleitenden Kommentars) eingetragen:
:01 /* offset + 0x08 ESC */
Also wird der ScanCode 08H der AT-Tastatur auf den ScanCode 01H der Atari-Tastatur abgebildet.
(Der offset gibt offenbar nur an, wo die Tabelle im Kontext beginnt).
Bsp.2:
Im ATSCANCO.TXT steht für den Key ´A´ der MAKE-Code 1C (hexa!).
Im Atari hat die Taste ´A´ den KeyCode 1EH.
Im unshift.inf ist in der Zeile mit der Nummer 1CH = 18. Zeile eingetragen:
:1E /* offset + 0x1C Q (A) */
Also wird der ScanCode 1CH der AT-Tastatur zum ScanCode 1EH der dt. Atari-Tastatur .
Bsp.3:
Im ATSCANCO.TXT steht für den Key ´KP EN´ der MAKE-Code 79 (hexa!).
Im Atari hat die Taste ´Enter´ den KeyCode 72H.
Im unshift.inf ist in der Zeile mit der Nummer 79H = 121. Zeile eingetragen:
:72 /* offset + 0x79 KP ENTER */
Also wird der ScanCode 79H der AT-Tastatur zum ScanCode 72H der Atari-Tastatur.
Bsp.4:
Im ATSCANCO.TXT steht für den Key ´@´ der MAKE-Code 15 (hexa).
Im Atari hat die Taste ´@´ den KeyCode 1AH.
Im altgr.inf ist in der Zeile mit der Nummer 15H = 21. Zeile eingetragen:
:1A /* offset + 0x15 A (Q) (deutsch Klammeraffe auf AltGr-Q) */
Also wird der ScanCode 15H der ´@´-AT-Taste zum ScanCode 1AH der ´@´-Atari-Taste.
Bsp.5:
Im ATSCANCO.TXT steht für den Key ´µ´ der MAKE-Code 3A (hexa!).
Im Atari gibt es keine Taste ´µ´.
Im altgr.inf ist in der Zeile mit der Nummer 3AH = 58. Zeile eingetragen:
:FF /* offset + 0x3A <,> (M) */
Das bedeutet ´invalid => no scancode´.
-------
Ganz analog müßte es imho in unshift.inf eine Zeile geben, in der steht:
:29 /* offset + 0xyy # */
Stattdessen gibt es drei Zeilen
:29 /* offset + 0x0E <2> (`) (atleft key 1, Deutsch ^ ) */
:29 /* offset + 0x53 <*> (\) COMPAQ */
:29 /* offset + 0x5C <*> (\) */
deren erste vermutlich richtig ist, deren zweite vermutlich ignoriert werden kann (weil Chicony keine Compaq-Taste hat und weil der ScanCode 53H für AT Set 3 nicht vergeben ist) und deren dritte vermutlich fehlerhaft ist - aber nur im Kommentar, denn 5CH ist tatsächlich der AT-MAKE für die amerik. ´\´-Taste, sie müßte also lauten
:29 /* offset + 0x5C # */
Da aber das Zeichen ´#´ nicht erscheint, muß der wirksame Fehler anderswo passieren.
Gegenprobe: Wo wird in unshift.inf ein Atari-Scancode 2BH erzeugt? Nirgends.
@Lukas Frank , bist Du sicher, daß nicht etwa gerade die ´#´-Taste Deiner Chicony kaputt ist?
Oder daß nicht versehentlich CapsLock eingeschaltet war?
-------
Funzt das ´=´ auf der Chicony am Atari?
-
Die Tastatur ist eine AT/XT (Umschaltbar) PC Tastatur
Und wie steht der Schalter? Richtung AT wäre richtig.
-
Und wie steht der Schalter? Richtung AT wäre richtig.
Ja steht auf AT, hatte auch ein SIemens reines PS/2 Keyboard dran mit dem selben Ergebnis.
@ari.tao ... anbei zwei Bilder vom keyboard.prg ...
Eiffel Keyboard in der Reihenfolge # Taste, Shift + Taste, Shift + Alt + Taste, AltGr + Taste
(http://forum.atari-home.de/index.php?action=dlattach;topic=13678.0;attach=14048;image)
Atari Tastatur, da fehlt natürlich AltGr weil diese Taste nicht da ist. # Taste, Shift + Taste, Shift + Alt + Taste
(http://forum.atari-home.de/index.php?action=dlattach;topic=13678.0;attach=14050;image)
Wie muss ich das denn jetzt umsetzen/eintragen. Ich bin immer noch verwirrt und verstehe das ganze immer noch nicht !
:29 /* offset + 0x5C <*> (\) */
Ist die 0x5C jetzt die Tastenkappe auf der Tastatur und das :29 das Acsii Zeichen? Und was ist das <*> (\), ist das egal was da steht?
-
Weder in der deutschen unshift.inf noch in der deutschen shift.inf kommt der Scancode 2B überhaupt vor. Daher noch einmal meine Frage: Bist Du sicher, dass Du alle vier inf-Dateien für die deutsche Tastatur korrekt in Dein Eiffel programmiert hast?
-
Sicher ist nichts ...
Zusammen mit dem hex habe ich shift.inf, altgr.inf und modifier.inf geladen/ausgewählt und geflasht.
unshift über Load Keytable ausgewählt. Und auf Reset ...
Ich habe Null Ahnung was ich da mache, die Anleitung ist für mich nicht eindeutig genug !
Alle Zeichen sind da bis auf das # ...
-
Wie verhält es sich denn mit ...
shift.inf = Zeichen mit Shift gedrückt
altgr.inf = Zeichen mit AltGr gedrückt
modifier.inf = ?
unshift.inf = ?
... die sehen für mich aber alle Gleich aus !?!
-
unshift über Load Keytable ausgewählt. Und auf Reset ...
Ich habe Null Ahnung was ich da mache, die Anleitung ist für mich nicht eindeutig genug !
Und ich habe kein Eiffel, um Dich da Schritt für Schritt durchzulotsen. Einfacher Test: Drück mal die Taste "^/°" (links von der "1") ohne und mit Shift. Welche Scancodes bekommst Du angezeigt?
-
Mit Eiffel Taste links von der "1" ...
Erster Eintrag ohne Shift und zweiter mit Shift.
(http://forum.atari-home.de/index.php?action=dlattach;topic=13678.0;attach=14052;image)
-
OK, dann hast Du nicht die deutschen Tastaturtabellen in Deinem Eiffel. 0x5B mit und ohne Shift ist das, was man für die Taste links von der 1 mit den Tabellen im Ordner default bekommt:
Aus default\unshift.inf
:5B /* offset + 0x0E <2> (`) ( at left key 1 ) */
Mit den deutschen Tabellen würdest Du bekommen: 0x29 (ohne Shift, für "^") und 0x34 (mit Shift, für ".", weil es kein "°" auf der Ataritastatur gibt).
-
Mit QED habe ich aber die deutschen Umlaute !?!
-
Doku -> http://phoenix.inf.upol.cz/~opichals/libhyp/hypview.cgi?url=http://fglukas.lima-city.de/hyp/eiffel.hyp&index=1
-
Du hast trotzdem keine deutsche Tastaturtabelle geladen.
Ich versuche, mal das Konzept von Scancodes zu erläutern:
Die Taste rechts von "P" hat auf der PC-Tastatur (mit Scancode-Set 3) den Scancode 0x54, egal ob es eine amerikanische Tastatur ist (Taste "[") oder eine deutsche (Taste "ü"). Sowohl die englische als auch die deutsche Tastaturtabelle für Eiffel übersetzen den PC-Scancode 0x54 in den Atari-Scancode 0x1A. Mit einem amerikanischen TOS kommt bei dem Atari-Scancode 0x1A ein "[" heraus, mit dem deutschen TOS ein "ü". Somit hast Du auch mit den falschen Übersetzungstabellen im Eiffel deutsche Umlaute.
Tatsächlich unterscheiden sich die Übersetzungstabellen für Eiffel nur an wenigen Stellen. Ein Beispiel ist das "#", wie Du schon herausgefunden hast, "^" ist ein anderes. Daher hatte ich diese Taste genommen.
Fazit: Du musst herausfinden, wie Du die korrekten Tabellen in Dein Eiffel lädst. Und da kann ich Dir nicht helfen, mangels Eiffel. Alles, was ich oben geschrieben habe, lässt sich durch einen kurzen Blick in die inf-Dateien herausfinden; wie die Bedienung der Hardware ist, musst Du schon selbst wissen.
-
PS: Das gleiche gilt auch für die Tasten, die auf der deutschen Tastatur mit "ö" und "ä" beschriftet sind.
-
Ich blicke das alles nicht. Ich überlege mir dir eine Eiffel aufzubauen vorausgesetzt du hast zuhause noch eine alte PS/2 Tastatur, Maus hätte ich auch noch ...
-
Ich blicke das alles nicht. Ich überlege mir dir eine Eiffel aufzubauen vorausgesetzt du hast zuhause noch eine alte PS/2 Tastatur, Maus hätte ich auch noch ...
Danke, lass mal. Ich hätte ohnehin keine Verwendung für ein Eiffel-Board (und zudem auch keine PS/2-Tastatur).
-
Wie verhält es sich denn mit ...
shift.inf = Zeichen mit Shift gedrückt
altgr.inf = Zeichen mit AltGr gedrückt
modifier.inf = ?
unshift.inf = ?
unshift.inf = Taste ohne zusätzliche Status-Taste gedrückt.
Die modifier.inf ist für Tasten zuständig, die den Status wechseln, zB. muß auf der amerik. AT-Tastatur für ´~´ Shift gedrückt werden, auf der dt. AT-Tastatur AltGr und auf der dt. Atari-Tastatur darf gar keine Status-Taste gedrückt sein.
Ich habe inzwischen im gloogalen Dschungel * eine Abbildung einer amerik. AT-Tastatur (https://www.google.de/search?q=scancode+table+deutsch+german&tbm=isch&imgil=qX2PGwoojnGjPM%253A%253BAqUDNCd1kuu1DM%253Bhttps%25253A%25252F%25252Fmsdn.microsoft.com%25252Fen-us%25252Flibrary%25252Faa299374(v%2525253Dvs.60).aspx&source=iu&pf=m&fir=qX2PGwoojnGjPM%253A%252CAqUDNCd1kuu1DM%252C_&usg=__kzunUnCaX3nPHg8SglDKhZA7tCk%3D&biw=973&bih=604&ved=0ahUKEwjP4IXayOXUAhVJKVAKHVghA58QyjcIUw&ei=v0NWWY-FIcnSwALYwoz4CQ#imgrc=rUbq6m_MBBYtdM:&spf=1498825816286) gefunden und konnte damit die amerik. Taste ´\ |´ mit MAKE 5CH als dt. AT-Taste ´# '´ identifizieren...
:42 ist die Tastenkappe auf der Tastatur ?
0x3F ist das damit belegte Acsii Zeichen ?
Wo sind denn für diese Taste belegte Zeichen mit Shift + Taste, Alt + Shift + Taste und AltGr + Taste ?
Unterscheide mal deutlich zw. der Taste (mit ihrem ScanCode und dem/den aufgemalten Zeichen) und dem Font-Zeichen, das Du auf dem Bildschirm siehst. Die Zuordnung von ScanCode zu ASCII (oder IBM-Zeichensatz oder sonstwas) und weiter zum Font-Zeichen geschieht im BIOS. Für das Problem mit der ´#´-Taste ist ASCII & Co. zunächst völlig uninteressant (erst wenn man den Wunsch verspürt, die oben zitierte ´µ´-Taste für den Atari zu aktivieren, müßte man da etwas ändern).
Möglicherweise war das hier:
... Zusammen mit dem hex habe ich shift.inf, altgr.inf und modifier.inf geladen/ausgewählt und geflasht.
unshift über Load Keytable ausgewählt. Und auf Reset ...
Dein Fehler (Hervorhebung von mir), weil Du mit ´Reset´ vermutlich die gerade geladenen Tafeln wieder ´rausgeschmissen hast...
Lade alle vier Tables , dann Init und dann Prg.Flash... (Aber schau vorher nochmal in die Anleitung auf Phoenix oder EIFFEL.HTM).
* Das ist etwas übel, welches Chaos Google in seinem Werbe-Wahn da anbietet, man muß ziemlich suchen...
-
Habe jetzt das # Zeichen aber habe null Plan wie ich das gemacht habe ...
Ich meine das ich das schon zuvor auch ohne Reset schon mehrmals gemacht habe !?!
-
Bingo!
Hoffentlich stimmen auch alle andern...
Und wenn Du willst, dann können wir uns auch mal um ´µ´ & Co. kümmern.
PS: Mit Geduld und Spucke fängt man eine Mucke!
-
Sehr vielen Dank für deine Unterstützung ...
Was mir so auf die schnelle aufgefallen ist, ist dass die Taste links neben der 1 auch mit dem # belegt ist und mit Shift kommt richtig ^ ...
Was eigentlich fehlt ist das | Zeichen, bin mir aber nicht sicher wo dieses Zeichen auf einer Atari Tastatur überhaupt vorhanden ist.
-
Ich blicke das alles nicht. Ich überlege mir dir eine Eiffel aufzubauen vorausgesetzt du hast zuhause noch eine alte PS/2 Tastatur, Maus hätte ich auch noch ...
Das ist doch ganz einfach: Der Keyboard-Controller in einer PC Tastatur sendet immer den selben Scancode, egal ob die Tastatur Deutsch, Englisch, US-Amerikanisch, italiensisch, spanisch, ... bedruckt ist. Ausschlag gebend ist wo die Taste angeordent ist, nicht deren Bedruckung. Die Taste Y auf einer deutschen Tastatur hat den selben Scancode wie die Taste Z auf einer englischen Tastatur.
Du musst dir das Layout einer englischen, besser us-amerikanischen Tastatur (das ist bei PCs der Default) neben die deutsche Tastatur legen und dieses als Vorlage verwenden.
-
^^-- Das war doch längst geklärt.
Was mir so auf die schnelle aufgefallen ist, ist dass die Taste links neben der 1 auch mit dem # belegt ist und mit Shift kommt richtig ^ ...
Was eigentlich fehlt ist das | Zeichen, bin mir aber nicht sicher wo dieses Zeichen auf einer Atari Tastatur überhaupt vorhanden ist.
Dann ist da immer noch ´was faul.
Die Taste links neben ´1´ ist auf meiner Labtop-Tastatur ´^ °´, da sollte also ´^´ _ohne_ Shift kommen, und mit Shift aber ´°´ bzw. gar nix, weil der Atari keine solche ´°´-Taste hat (also ähnlich wie beim ´µ´). Was ist denn genau bei Deiner Chicony auf der Taste aufgemalt?
Der senkrechte Strich ´|´ ist auf meiner Labtop-Tastatur auf der Taste links neben ´y´ mit drauf (mit AltGr), bei Atari ist dafür Shift + ´~´ zuständig.
Ps: Jetzt mach ich erst mal mein Abendbrot.
-
Vergiss Laptop-Tastaturen, die sind eh anders angeordnet. Orientiert euch an einer anständigen 102 Tasten AT Tastatur, meinet wegen auch mit den zusätzlichen Windows-Tasten, wie sie erst später (ab 1995 mit Win 95) auf den Markt kamen.
-
Korrekt wäre ohne Shift "^", siehe mein Post oben.
-
Die original Atari Tastatur hat gar kein | Zeichen. Brauchen könnte man dieses aber dennoch ...
Das keyboard.prg gibt doch drei hex Werte für eine Taste aus und zwar hex wert eins, zwei und drei. Was hat es denn damit auf sich ?
-
^^-- Steht doch oben drüber. 1. = ScanCode, 2. = ASCII-Wert (des Characters daneben). Was unter Token und ** steht, brauchst Du nicht (betrifft bloß meine eigene Erfindung).
Jede dt. Atari-Tastatur hat den senkrechten Strich ´|´ über der Tilde ´~´, re. neben Return.
-
So, jetzt habe ich immerhin einen Weg gefunden, einen ScreenShot vom LabTop zu machen und hier anzuhängen:
Ein amerikanisches Layout einer AT-Tastatur.
(Stammt aus dem oben verlinkten gloogalen Dschungel)
Edit.: Bild noch mal ausgetauscht.
PS: Könntest Du, @Lukas Frank , mir bitte mal erklären, wie Du Deine Bilder groß in den Text einfügst? Mein Versuch endete mit einem klitzekleinen s/w-Symbol.
-
In #59 wurde geschrieben:
... dass die Taste links neben der 1 auch mit dem # belegt ist und mit Shift kommt richtig ^ ...
Jedoch:
Bsp.6:
Im ATSCANCO.TXT steht für den Key ´` ~´ der MAKE-Code 0E (Hexa!).
Auf der dt. AT-Taste ist dafür aufgemahlt ´^ °´.
Im Atari hat die Taste ´# ^´ den KeyCode 29H.
Dementsprechend ist im unshift.inf in der Zeile 0EH = 14. Zeile eingetragen
:29 /* offset + 0x0E <2> (`) (at left key 1, Deutsch ^ ) */
und im modifier.inf ist in der Zeile 0EH = 14. Zeile eingetragen
:91 /* offset + 0x0E <2> (`) (at left key 1, Deutsch ^ ) */
wobei 91H = %10010001 bedeutet:
valid entry, SHIFT states for the AltGr table, SHIFT states for the unshift table
dh. obwohl mit unshift gedrückt, wird am Atari zusätzlich ein SHIFT ausgegeben.
Dadurch wird also der dt. AT-Key ´^´ Urbild der dt. Atari-Taste ´^´ = shift + ´#´.
Daß die Taste ´°´ keine Entsprechung im Atari hat, haben wir oben schon festgestellt, dh. auf der Chicony am Atari darf mit ´°´ = shift + ´^´ gar nix kommen! (Es sei denn, wir ergänzen aweng).
-
Könnt ihr bitte beim Thema bleiben? Ich habe die letzten beiden unpassenden Beiträge mal gelöscht... Danke!
-
Danke, @Johannes.
-
Daß die Taste ´°´ keine Entsprechung im Atari hat, haben wir oben schon festgestellt, dh. auf der Chicony am Atari darf mit ´°´ = shift + ´^´ gar nix kommen! (Es sei denn, wir ergänzen aweng).
Falsch! Wie ich schon schrieb, steht in der german\shift.inf für die ^/°-Taste (PC-Scancode 0x0E):
:34 /* offset + 0x0E <2> (`) ( at left key 1 ) */
. Zusammen mit der modifier.inf sollte das den Punkt "." ergeben.
-
Daß die Taste ´°´ keine Entsprechung im Atari hat, haben wir oben schon festgestellt, dh. auf der Chicony am Atari darf mit ´°´ = shift + ´^´ gar nix kommen! (Es sei denn, wir ergänzen aweng).
Falsch! Wie ich schon schrieb, steht in der german\shift.inf für die ^/°-Taste (PC-Scancode 0x0E):
:34 /* offset + 0x0E <2> (`) ( at left key 1 ) */
. Zusammen mit der modifier.inf sollte das den Punkt "." ergeben.
Nein, meine Aussage ist imho völlig korrekt und stimmt mit dem Kommentar in der von Dir zitierten 14. Zeile von shift.inf überein (sonst müßte nämlich zw. ´1´ und ´)´ ein ´.´ oder ´:´ eingetragen sein und das Resultat wäre die Taste ´:´ = SHIFT + ´.´)! Daß der eingetragene Atari-ScanCode 34H keine Rolle spielt, das liegt einfach an der 14. Zeile im modifier.inf, die ich oben zitiert habe, weil da Bit 2 fehlt (ie. es müßte sonst 95 statt 91 eingetragen sein) für "SHIFT states for the Shift table".
Würde tatsächlich die dt. AT-Taste ´°´ auf die dt. Atari-Taste ´.´ oder ´:´ abgebildet, so wäre das imho ein Fehler in den EIFFEL-Tabellen. Erst mit AltGr macht das wieder Sinn (wenn man das Grad-Zeichen auf dieser Taste will und dazu zusätzlich das BIOS ändert; denn mit der normalen Tasten-Belegung am Atari sind ALT + ´.´ sowie SHIFT + ALT + ´.´ ohne Funktion).
Aber LF hat uns ja in #59 etwas ganz anderes berichtet. Hat er immer noch nicht die richtigen Tabellen geflasht?
PS: Ich habe das AT-Layout in #66 nochmal korrigiert, hatte beim ScreenShot schließlich das verkehrte erwischt.
-
Der jetzt endlich mögliche Praxis-Test, siehe #87 in
https://forum.atari-home.de/index.php?topic=13649.msg224187#msg224187
ergab mit den vorh. Tabellen, daß tatsächlich
die AT-Taste Shift+´^´ = ´°´ (Grad) auf die Atari-Taste ´.´ (Punkt) abgebildet wird. Das ist allerdings ein Fehler in den Tabellen, meine Aussage
Daß die Taste ´°´ keine Entsprechung im Atari hat, haben wir oben schon festgestellt, dh. auf der Chicony am Atari darf mit ´°´ = shift + ´^´ gar nix kommen! (Es sei denn, wir ergänzen aweng).
halte ich voll aufrecht. Fehlerhaft war allerdings meine Analyse der Zeile 0Eh des modifier.INF, das hat @czietz besser hingekriegt,
Mit der Korrektur ":34" -> ":FF" paßt dann auch der Kommentar in Zeile 0Eh des shift.INF (für deutsch Atari jedenfalls); die Zeile 0Eh im modifier.INF ist dann wohl hinsichtlich shift.INF unwirksam.
Besser wäre imho die Korrektur ":34" -> ":0B" (Null) zusammen mit einer Anpassung der Zeile im modifier.INF, damit im Atari alt+´0´ erzeugt wird. Da alt+´0´ (noch) nicht mit einem ASCII-Zeichen belegt ist, ist das Ergebnis dann das gleiche, aber mit einem BIOS-Patch könnte man das Atari-ASCII-Zeichen 248 nachrüsten. Entsprechend könnte man für ´²´,´³´,´µ´ etc. verfahren.
-
Bei der Überprüfung der Tasten-Belegung ergab sich:
0.) Die Esc-Taste ist ok (da hatte bloß meine Tastatur einen Aussetzer).
1.) Ein 'absichtlicher Fehler': AT AltGr+"' `" -> Atari "~ |";
das geschah offenbar als Ersatz für die auf der AT-Tastatur fehlende
Taste "~ |" (beim Atari re. neben Return). Vermißt wird eigtl. bloß
ein diesbzgl. Kommentar (der hiermit gegeben ist).
2.) Die Taste re. neben der Taste '0' auf dem Ziffernblock trägt beim
AT die Beschriftung ',' (Komma), aber beim Atari '.' (Punkt); sie wird
abgebildet als AT KP',' -> Atari N'.' - also inkonsistent; Korrektur:
:33 /* offset + 0x71 KP . (deutsch ,) */ in unshift.INF
Der entsprechende Eintrag in shift.INF wird nicht ersetzt, damit man
per SHIFT auch den Num.-Punkt erreichen kann.
3.) Die AT-Taste für '^' li. neben "1 !" trägt oben ein Grad-Zeichen
(hochgestellte kleine 0); eine entsprechende Taste (für Grad) fehlt auf
orig. Atari-Tastaturen; die Zuordnung AT "^ grad" -> Atari "^ ." ist
daher falsch (das wurde früher schon dargelegt); Korrektur:
:FF /* offset + 0x0E no scancode */ in shift.INF
oder
:0B /* offset + 0x0E 0 (ZERO) ( at left key 1 ) */ in shift.INF
und in modifier.INF
:A9 /* offset + 0x0E <2> (`) ( at left key 1, Deutsch ^ + Alt+0) */
(zur Vorbereitung eines BIOS-Pätsches).
Damit sind dann alle orig. Atari-Tasten erreichbar - und keine zu viel.
Weitere Mods. der Tasten-Belegung (Vorbereitung BIOS-Patch):
4.) für hochgestellte kleine 2:
:00 /* offset + 0x1E 2 */ in altgr.INF
:A0 /* offset + 0x1E 2 */ in modifier.INF
5.) für hochgestellte kleine 3:
:00 /* offset + 0x26 3 */ in altgr.INF
:A0 /* offset + 0x26 3 */ in modifier.INF
6.) für griechisch m:
:00 /* offset + 0x3A <,> (M) */ in altgr.INF
:A0 /* offset + 0x3A <,> (M) */ in modifier.INF
7.) für das Euro-Zeichen:
:00 /* offset + 0x24 E */ in altgr.INF
:A0 /* offset + 0x24 E */ in modifier.INF
Damit sind dann alle 'normalen' AT-Tasten abgedeckt.
.
Zwei Mods. um CapsL und re.Strg zu vertauschen:
8.) für Ctrl li. neben AT 'A':
:1D /* offset + 0x14 CAPS (deutsch Ctrl) */ in unshift.INF
9.) für CapsL unter AT re.Shift:
:3A /* offset + 0x58 RIGHT STRG (deutsch CapsL) */ in unshift.INF
Wenn jemand noch weitere Wünsche zur Tasten-Belegung im EIFFEL hat,
der möge sie JETZT vortragen! (Demnächst hänge ich die modifizten Tabellen unten an).
Ansonsten müßte bloß noch jemand den BIOS-Patch machen für 3 - 7 (& evtl. noch ein paar mehr).
-
1.) Ein 'absichtlicher Fehler': AT AltGr+"' `" -> Atari "~ |";
das geschah offenbar als Ersatz für die auf der AT-Tastatur fehlende
Taste "~ |" (beim Atari re. neben Return). Vermißt wird eigtl. bloß
ein diesbzgl. Kommentar (der hiermit gegeben ist).
Ich habe dein Posting oben nicht in allen Details gelesen. Aber ich habe den Eindruck, dass du keine aktuelle PC-Tastatur im AT-Layout (102 und mehgr Tasten) zur Verfügung hast. Denn AltGR+"+" ergibt (z.B unter Windows mit deutschem Tastaturlayout) da immer "~", das ist kein Fehler. Daher vermute ich, dass auch deine anderen Entdeckungen und Umbelegungswünsche noch einen zweiten Blick wert sind.
-
1.) Ein 'absichtlicher Fehler': AT AltGr+"' `" -> Atari "~ |";
das geschah offenbar als Ersatz für die auf der AT-Tastatur fehlende
Taste "~ |" (beim Atari re. neben Return). Vermißt wird eigtl. bloß
ein diesbzgl. Kommentar (der hiermit gegeben ist).
Ich habe dein Posting oben nicht in allen Details gelesen. Aber ich habe den Eindruck, dass du keine aktuelle PC-Tastatur im AT-Layout (102 und mehgr Tasten) zur Verfügung hast. Denn AltGR+"+" ergibt (z.B unter Windows mit deutschem Tastaturlayout) da immer "~", das ist kein Fehler. Daher vermute ich, dass auch deine anderen Entdeckungen und Umbelegungswünsche noch einen zweiten Blick wert sind.
Bevor Du unqualifizierte Eindrücke & Vermutungen absonderst, solltest Du vielleicht erst einmal genau lesen lernen: Da steht nicht AltGr+"+" sondern AltGr+"´`" ! Es geht also um die Taste mit den zwei versch. Apostrophen.
------
Wenn jemand noch weitere Wünsche zur Tasten-Belegung im EIFFEL hat,
der möge sie JETZT vortragen! (Demnächst hänge ich die modifizten Tabellen unten an).
Ansonsten müßte bloß noch jemand den BIOS-Patch machen für 3 - 7 (& evtl. noch ein paar mehr).
Nachtrag:
Ich habe mal mein BOARD.PRG zur Kosmetik geschickt, damit der Output nicht mehr so tanzt. Siehe Anhang.
-
Ok, das war nicht ganz klar. Kann es sein, dass diese zusätzliche Belegung irgendeiner komprimierten Mini-Tastatur für PCs (siehe diverse Funktastaturen für Multimedia, etc) geschuldet ist?
-
^^-- Nein.
-------
Wenn jemand noch weitere Wünsche zur Tasten-Belegung im EIFFEL hat,
der möge sie JETZT vortragen! (Demnächst hänge ich die modifizten Tabellen unten an).
Ansonsten müßte bloß noch jemand den BIOS-Patch machen für 3 - 7 (& evtl. noch ein paar mehr).
-
Noch eine Bemerkung, bevor ich sie wieder vergesse:
Es ist keineswegs so - wie ich zunächst dachte -, daß Alt durch AltGr ersetzt wird, sondern die Alt-Taste funzt ziemlich haargenau so wie auf dem Atari!
Unten angehängt nun die revidierten Eiffel-Tabellen.
Wenn jetzt noch jmd. die Beschriftung der Tasten-Kappen anpassen könnte, wären wir unserem Ziel einer AT/Atari-Kombi-Tastatur (https://forum.atari-home.de/index.php?topic=9713.msg221975#msg221975) schon sehr nahe: Eiffel in´s Tastatur-Gehäuse einbauen (wie von FL schon ausprobiert (in #26) (https://forum.atari-home.de/index.php?topic=13696.20)), ein Umschalter dazu, et voila... Varianten für Frz. & Engl. wären ein Kinderspiel (und möglicherweise sogar welche für Amigos denkbar).
Vielleicht könnte doch mal einer unserer C-ler sich der Bugs in EIFFELCF.APP annehmen?
-
Vielen Dank für deine Arbeit. Ich probiere deine INF Dateien ...
Das gepatchte Eiffelcf Programm läuft auf 68000 Atari Maschinen unter Single TOS aber nicht auf dem Atari TT und Falcon. Die original 1.10 Version läuft auf dem Falcon unter Single TOS und auf dem TT nur mit MiNT/XaAES oder MagiC. Wenn das jemand beseitigen könnte und es nur noch eine Version für alles geben würde wäre das sehr schön ...
-
I know this topic has been dead for sometime, also I am sorry for posting english, but that is my only language.
I am trying to get a good set of table files for a US PS/2 keyboard.. specifically what I encounter wrong is the missing tilde/accent key to the left of the top row #1.
I know the atari code unshifted is 29 and that the ps/2 keyboard scan code is OE
SO I think my line I would like is;
:29 /* offset + 0x0E <2> (`) ( at left key 1 ) */ this line used to have 5B as the atari code.. which I could not find, and therefore assume is the reason the key did not work.
Now in the Default set .. if I look at the SHIFT.inf - all the codes are 00.. I am not sure I understand why that is?? I need the accent as the 29 and the ~ tilde as the shifted. because I am using US TOS.. will it just know this??
Do I just have to flash the unshifted .inf and thats all??
Thanks
James
Edit -:I went ahead and did it. Changed the 5b to 29 loaded the unshifted.inf All is working as it should.