Kontroler klawiatury 8042/8242 i translacja kodów

Jakiś czas temu realizując równolegle dwa podobne projekty natrafiłem na pewien problem. Co prawda obydwa projekty chwilowo znajdują się w stanie zawieszenia z powodu braku czau, ale sprawa nie daje mi spokoju. Może ktoś będzie wiedział o co chodzi...

Pierwszy projekt to komputerek retro na polskim mikroprocesorze MCY7880 (dokładniej opisany tutaj:

formatting link
Drugi to komputerek oparty na MOS6502
formatting link
W obydwu wykorzystałem kontroler 8242, stosowany kiedyś powszechnie w pecetowych płytach głównych.

Pisząc kod do obsługi tego kontrolera wzorowałem się głównie na tej stronie:

formatting link
W komputerze na MCY7880 całość jest zmontowana na płytkach uniwersalnych, z połączeniami wykonanymi dużą ilością kynaru. MOS6502 to już projekt wykonany na płytkach drukowanych. Na pierwszym komputerku wszystko zadziałało właściwie od razu, po usunięciu jakichś drobnych bugów. Natomiast ten z MOS-em generował problemy - kontroler niby przechodził inicjalizację, reagował na naciśnięcia klawiszy ale przesyłał jakieś kompletne bzdury. Dopiero po chwili dotarło do mnie, że skan kody nie są przypadkowe, ale należą do starszego zestawu z czasów komputerów XT, który jest wykorzystywany po włączeniu translacji.

Problem w tym, że ja translacji nie włączałem. Kod dla 6502 był właściwie tłumaczony z asemblera 8080 i wszystkie stałe pozostawiłem takimi, jakie były. Myślałem, że winę za to może ponosić jakiś mniej standardowy egzemplarz 8042, jednak próbowałem kilku różnych układów i zamieniałem je miedzy komputerami - zachowanie nie przenosiło się wraz z nimi.

Czy jest jakaś sprzętowa przyczyna, która mogłaby to tłumaczyć? Jakiś pin podciągnięty do plusa/masy, który mógłbym pominąć w drugim projekcie?

Kod procedury inicjującej kontroler pod 8080 wygląda następująco:

formatting link
Ta sama procedura dla MOS6502:
formatting link
Z ciekawości spróbowałem jeszcze przetestować z MC6802, przy pomocy innej płytki mojego autorstwa. Korzystałem z tego samego modułu z kontrolerem klawiatury co w MOS6502 i układ też zachowywał się tak samo, udostępniając skan kody XT.

Kod dla MC6802 poniżej.

formatting link

Reply to
Atlantis
Loading thread data ...

W klawiaturze z przełącznikiem (AT/XT) z kontrolerem 8039 widzę pin 1 do masy (przełącznika juz brak jak i obudowy - uczyniłem to dawno i własnoręcznie, co oznacza że nie powiem w jakim stanie jest tak spreparowana klawiatura, czy jest to XT czy AT). W pewnym okresie przełączane klawiatury były bardzo popularne.

Reply to
invalid unparseable

Klawiatura z którą testowałem wszystkie układy nie ma żadnego przełącznika. Standardowa klawiatura AT wyprodukowana w drugiej połowie lat dziewięćdziesiątych.

Reply to
Atlantis

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.