-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news-2.dfn.de!n
ews.dfn.de!2.eu.feeder.erje.net!feeder.erje.net!feeder1.feed.usenet.farm!feed.u
senet.farm!aioe.org!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-med
ia.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neo
strada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.misc.elektronika
X-Mozilla-News-Host: news://news.tpi.pl:119
From: Atlantis <m...@w...pl>
Subject: Kontroler klawiatury 8042/8242 i translacja kodów
Date: Sun, 9 Aug 2020 19:01:48 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Thunderbird/68.11.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Language: pl
Content-Transfer-Encoding: 8bit
Lines: 49
Message-ID: <5f302bfc$0$544$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.4.163.27
X-Trace: 1596992508 unt-rea-a-02.news.neostrada.pl 544 83.4.163.27:34520
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 3290
X-Received-Body-CRC: 1028315919
Xref: news-archive.icm.edu.pl pl.misc.elektronika:756057
[ ukryj nagłówki ]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:
https://hackaday.io/project/161333-polon-7880). Drugi to komputerek
oparty na MOS6502
(https://hackaday.io/project/163714-6502-retro-compu
ter). 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: https://wiki.osdev.org/%228042%22_PS/2_Controller.
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:
https://pastebin.pl/view/7c42cd6f
Ta sama procedura dla MOS6502:
https://pastebin.pl/view/3da5e5d1
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.
https://pastebin.pl/view/5bfcecc1
Następne wpisy z tego wątku
- 09.08.20 20:02 Włodzimierz Wojtiuk
- 09.08.20 23:42 Atlantis
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=