...
arra az esetre jól jön egy professzionális billentyűzet, pl. az IBM XT-é.
A kérdés csupán az: hogyan illesszük kedvenc ENTERPRISE-unkhoz?
Két megközelítési mód létezik. Az egyik szerint az XT-billentyűzet elektronikáját
elfelejtjük, csak a gombokat használjuk fel. Rettentő munkával az ENTERPRISE
fóliájának megfelelően összekötve azokat, egy nyolc- és egy tízerű vezetékkel
a fólia helyére csatlakoztatva az eredetinek teljesen megfelelő, "csak"
nagyságrendekkel jobb tasztatúrát kaphatunk. (Ez a megoldás látszik a képen
is.) Ennek hátránya, hogy bele kell nyúlnunk a gép belsejébe, miáltal a garancia
érvényét veszti (bár az ENTERPRISE-kereskedelem helyzetét elnézve, ez ma már
alig fenyeget valakit).
A másik megközelítési mód szerint az XT-billentyűzetet egységes egészként
kezeljük, és némi hardverrel egybekötött szoftverrel oldjuk meg az ENTERPRISE-hoz
való illesztést. Rögtön az elején meg kell azonban vallanom szinte már kegyetlen
őszinteséggel, hogy ezt a megoldást nem akceptálja a játékprogramok azon része,
amelyek a billentyűzetet közvetlenül, I/O-címeken keresztül kérdezik le. Sajnos
ezek teszik ki a több, mint kétharmados többséget, az EXOS billentyűzet-csatornáját
használó játékok csupán törpe minoritást képeznek. Viszont azok a géptársak
- és nagy örömömre jelentős számban találhatók ilyenek - akik elsősorban nem
játéknak, hanem "komolyan" használják a gépet, remek hasznát vehetik
egy "igazi" XT-billentyűzetnek.
Lássuk mindenekelőtt, hogy is működik a szóbanforgó tasztatúra! 83 (az amerikain),
vagy 84 (az európaiakon) gomb található rajta, amelyeket egy célmikroprocesszor
kérdez le (ti. az a mikroprocesszor célja, hogy lekérdezze a gombokat). Ha
egy gombot lenyomunk, a processzor a hozzá tartozó kódot (pl. az ESC-re 5Ah-t,
az "A"-ra a 1Fh-t, a legmagasabb bit mindig 0) küldi el a központi
számítógépnek. Ha a gombot nyomva tartjuk, a kód bizonyos időközzel újra és
újra továbbítódik (ismétlés). A központi gép onnan tudja, hogy elengedték
végre a gombot, hogy a billentyűzet ennek megfelelő kódot generál: ez ugyanaz,
mint a lenyomáskori kód, de a legmagasabb bit 1-ben van (azaz ESC-nél DAh,
"A"-nál 9Fh).
Fizikailag az adatátvitel másfélirányú soros vonalon történik.
A fönti kijelentést úgy kell érteni, hogy a billentyűzet adatokat küld a számítógépnek
(ez eddig egy irány), a számítógép pedig "üzenni" tud a billentyűzetnek,
hogy foglalt, illetve a billentyűzetet inicializálni akarja (ez a fél irány).
A kapcsolat általában 4 szál dróton keresztül valósul meg. Elvileg a billentyűzetnek
van egy ötödik - RESET - bemenete, ezt azonban többnyire hanyagolják. Egy
drót a föld, egy meg a +5 volt, ami szinte nélkülözhetetlen. A maradék kettőből
az egyiken az adatok, a másikon az órajel áramlik az alábbi módon:
A billentyűzet előszöris megvizsgálja, hogy az adatvonalat a számítógép nem
húzta-e le (ez a foglaltság jelzése). Ha nem, és volt lenyomott, vagy elengedett
billentyű, a megfelelő nyolcbites kódot, előtte egy START bittel, szépen sorban
elküldi, miközben ennek megfelelően 9 órajelet generál. Az adatbitek az órajel
alacsony állapotában érvényesek. Ha a számítógép az óravonalat húzza le legalább
40 ms időre, a billentyűzet önteszt végrehajtása után alapállapotba kerül,
az önteszt eredményét (55h, ha minden rendben, FCh, ha valami gond van) pedig
elküldi a számítógépnek.
Most, hogy már mindent tudunk az elméletről, rátérhetünk a konkrét
illesztőkártya tanulmányozására. A billentyűzet a JP 1 ötpólusú tuchel-aljzatra
csatlakozik. Soros adatait az U7 léptetőregiszter fogadja, ide érkezik az
órajel is, amelynek felfutó élére tárolódik, és lép eggyel tovább a bejövő
adat. Legelől jön a START bit, amely a kilencedik ütemre U7-ból az U8A D-tárolóba
kerül (ekkorra U7-ben a nyolcbites kód található). Ennek hatására U8A kimenetei
állapotot váltanak, letiltják az esetleges további órajeleket, hogy a beérkezett
kód ne íródhasson felül, U5B-a keresztül lehúzzák az adatvonalat, ezzel jelezve
a foglaltságot a billentyűzetnek, és végül, de elsősorban átírják a kódot
U7-ből az U6 regiszterbe, valamint U5A segítségével jelzik a számítógépnek
a 61h I/O cím 7. bitjén, hogy billentyűkód érkezett. Maga a kód U6-ból a 60h
címen olvasható ki.
A 62h cím olvasásával billegtethető az U8B D-tároló: így lehet a billentyűzetet
az órajel-vonal U5C-a keresztüli lehúzásával programozottan alapállapotba
állítani. A fent említett címek dekódolását az U2, U3B, U4 áramkörök végzik,
U1 pedig a stabilizált tápfeszültséget állítja elő a kártya és a billentyűzet
számára.
Enterpress 92/3. - Gyányi Sándor & Mészáros Gyula |