Poniższy tekst jest pochodną szukania rozwiązań dla nowego QMEGa.
Czeka na Wasze ocenienie i sprostowanie. Następnie trafi np. do Atariki...
Keyboard to pierwsze i jedyne urządzenie zewnętrzne dla komputera dołączane fabrycznie :)
Klawiatura standardowo wyposażona jest w klawisze:
zwykłe: 56 sztuk (w tym Break i Logo)
funkcyjne atari: Help, Start, Select, Option, Reset,
funkcyjne od 1200XL: F1-F4
===================================
ZŁĄCZE TAŚMOWE
Całość połączona z komputerem przez 24 pinowe złącze taśmowe.
Dla serii XL:
Piny 24, 18-19 to wyprowadzenie zasilania +5V i masy GND dla diody (i nie wykorzystane dalej).
Piny 1-8,10-17 to złącza dla matrycy, 9 pin to linia specjalna (dla Break, Shift i Control).
Piny 20-23 to klawisze funkcyjne zwierane na czas wciśnięcia z linią 18 - czyli masą.
Dla serii XE:
Piny 1-3 to wyprowadzenie zasilania +5V i masy GND dla diody (i nie wykorzystane dalej).
Piny 4-19 to złącza dla matrycy, 20 pin to linia specjalna (dla Break, Shift i Control).
Piny 21-24 to klawisze funkcyjne zwierane na czas wciśnięcia z linią 3 - czyli masą.
Linie IN doprowadzane są do układu U24, OUT do układu U25 (czyli CD4051).
BSC to linia bezpośrednia do Pokeya - zwana KR2.
Linie te tworzą matrycę klawiszy opartych na układzie 8x8. Wspomniana linia specjalna (BSC) łączy się z jej liniami, dzięki czemu uzyskujemy stany wciśnięcia Shift i Control. Ale i "dzięki" czemu (czytaj: uproszczeniu elektroniki) mamy brak kombinacji wciśnięcia klawiszy Shift+Control+N. Dla ułatwienia napiszę, że klawisze "N" leżą na liniach 5 i 8 (w XL) lub na liniach 6 i 7 (w XE)
Poniżej uproszczony schemat doprowadzenia linii IN i OUT do POKEYa.
===================================
MATRYCA KLAWIATURY
Kody klawiszy 0-63 odczytujemy z komórki typu zatrzask KBCODE 53769 ($D209). Bit 6 (+64) to wciśnięcie klawisza Shift, bit 7 (+128) to klawisz Control.
Matryca standardowo nie jest wykorzystana w całości. Nie licząc kombinacji z linią 20 zwierane są 54 zejścia się matrycy. W 1200XL wprowadzono klawisze funkcyjne F1-F4. Ale nie ma przeszkód, by wprowadzić także klawisze F5-F10 !!!
Zaproponowałem przypisanie "nowych" klawiszy nie wraz ze wzrastającą liczbą kodu klawiszy, ale tak aby ułatwić ich przyszły montaż.
===================================
DEBOUNCE
Jak każde urządzenie klawiatura musi być włączona przez ustawienie bitów 0 i 1 SKCTL 53775 ($D20F). Robi to OS m.in. na starcie komputera, jak i po każdej operacjo IO !!!
Dla przypomnienia, (1 = włączone):
- bit 1 - wł./wył. skanowania (czyli odczyt) klawiatury
- bit 0 - wł./wył. funkcji niwelowania drgań styków klawiatury (ang. debounce)
Skasowanie bitu 0 daje bardzo ciekawe efekty. Pokey oczekuje na wciśnięcie minimum dwóch klawiszy naraz. A można i wcisnąć ich o wiele więcej (na upartego wszystkie).
Pod adresem KBCODE otrzymujemy kolejne kody (klawiatury!!) wciśniętych grup klawiszy (patrz: matryca !!)
Piszę "grup", bo obowiązują tu pewne zasady generowania kodów:
- dwa wciśnięte obok siebie klawisze - podaje kod klawisza większy, np. B+X -> X
- trzy wciśnięte obok siebie klawisze, sytuacja analogiczna, np. B+X+Z -> Z
- cztery i więcej, ciągle tak samo.....
- następuje zawijanie matrycy uwzględniając wzrost kodu klawisza, np. Z+4 -> 4
- wciśnięcie obok siebie leżących klawiszy (dwóch, trzech,....) oraz innych także leżących obok siebie klawiszy
(dwóch,trzech,....) oddzielonych choć jednym niewciśniętym klawiszem - uzyskamy osobne kody dla każdej z
grupy, np. G+S, T+W, B+X -> S,W, X
- wciśniecie na jednej linii poziomej dwóch grup oraz tylko jednego klawisza z linii pionowej przecinającej jeden z
klawiszy grupy, np. G+S,H+D,T -> S, D,W, E
Kombinacji jest znacznie więcej, ale reguły można sprowadzić to ww.
Ważną informacją jest, że POKEY podaje kody wszystkich wciśnięć w trakcie jednej ramki, czyli co parę linii. I tak w kółko. Odczytywać więc stany musimy, np. na przerwaniu DLI.
Dla ułatwienia detekcji i zrozumienia powstał program "KeyTST.com" (patrz załącznik).
===================================
LINIA BSC
Powyżej napisałem o feler'ze linii z klawiszami Shift i Control. Jak widać z matrycy, pozostają nieobsadzone 5 kombinacje (wliczając w to Break). Zwieranie wolnych linii z BSC nie robi na POKEYu żadnego wrażenia..... A może Wam się uda to zmienić?
End oF Txt.....
I CO DALEJ
Nie zdradzę (jeszcze) jak to wykorzystuje QMEG. No ale mając software z załącznika możecie się pobawić w naciskanie wielu klawiszy naraz. Mój rekord to 10 palcy na 14 klawiszach (oczywiście z pełną ich detekcją przez POKEYa).
UWAGA:
Debounce na A800win nie jest emulowany, pod Altirr'a tylko częściowo!
Only REAL ATARI !!!
Pajero/MadTeam 2010