Ich programmiere im Moment einen Arduino mit Intersil Crosspoint-Switch (8x12), um eine PS/2-Tastatur am CBm8296 verwenden zu können. Bisher konnte ich nur eine Matrix für den CBM 8032 finden:
- A B C D E F G H
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 1 | 2 5 8 - 8* Right {14} {5}
- 2 | 1 4 7 0 7* ^ {6} 9*
- 3 | ESC S F H ] K ; 5*
- 4 | A D G J Return L @ 6*
- 5 | Tab W R Y \ I P Del
- 6 | Q E T U Down O [ 4*
- 7 | Shift_L C B . .* {25} Shift_R 3*
- 8 | Z V N , 0* {15} {16} 2*
- 9 | Rvs X Space M Home {21} / 1*
- 10 | <- 3 6 9 Stop : {4} {22}
Damit klappt es soweit auch. Das Problem ist nun Shift. Wenn ich die Switch für Shift setze, würde ich erwarten, dass z..B. aus einem "a" ein großes "A" wird, wenn man die 128 Byte Keymap dafür kopiert. Ich habe mich an diesem Source für den C64 orientiert: https://github.com/Hartland/C64-Keyboard. Dort klappt es mit geringfügigen Änderungen so. Ich habe auch zwei 128 Byte Arrays dafür angelegt.
Wenn ich nun die Shift-Switch setze und die kopierte Keymap verwende, passen nur noch sehr wenige Tasten. Eigentlich werden doch die gleichen Leitungen verwendet, warum ist das wohl so ? - Einen Defekt der Crosspoint-Switch würde ich erst mal ausschließen.