AK Ćw. 4a
Obsługa programowa urządzeń wejścia-wyjścia
Zagadnienia:
Rejestry urządzeń wejścia-wyjścia i ich przeznaczenie (danych, stanu, sterowania)
Przesyłanie danych do i z urządzenia zewnętrznego - rozkazy IN i OUT
Wysyłanie sygnałów sterujących do urządzenia
Odczytywanie stanu urządzenia
Podstawy obsługi urządzenia zewnętrznego z oczekiwaniem na gotowość
Obsługa urządzenia wejścia-wyjścia przy użyciu funkcji DOS i BIOS
Literatura
K. Bucholc, Podstawy przesyłania równoległego - dostępne w pliku PDF
P. Metzger, Anatomia PC, Helion, dowolne wydanie, opis łącza LPT
Składnia rozkazów IN i OUT (przesyłane dane 8-bitowe)
IN AL,DX DX - adres portu, AL - w tym rejestrze zostaną umieszczone odczytane dane
OUT DX,AL. DX - adres portu, AL - w tym rejestrze należy umieścić dane przeznaczone do wysłania
Urządzenie zewnętrzne w systemie komputerowym może korzystać z przestrzeni adresowej pamięci lub z oddzielnej przestrzeni wejścia-wyjścia. Które z tych rozwiązań wykorzystano w procesorach x86? Czy w komputerze z takim procesorem można zastosować także drugie rozwiązanie?
Ile jest dostępnych adresów w procesorze x86
wejścia
wyjścia
W pewnym komputerze urządzeniom wejścia-wyjscia odpowiadają następujące adresy:
Napisz i wykonaj program odczytujący najmłodszy bajt czasomierza systemowego.
Kontroler wejścia-wyjścia widziany jest jako zbiór rejestrów. Różne kontrolery posiadają różną liczbę rejestrów.
Wyróżniamy 3 rodzaje rejestrów: danych, stanu i sterujące.
Korzystając z opisu łącza LPT ustal:
Ile rejestrów każdego rodzaju wykorzystuje kontroler łącza LPT?
Jakie są adresy tych rejestrów dla łącza LPT1?
Jakie są adresy tych rejestrów dla łącza LPT2?
Podłącz do złącza LPT1 zestaw laboratoryjny do ćwiczeń z przesyłania równoległego
Napisz program, który wysyła do rejestru danych kod ASCII odpowiadający pierwszej literze Twojego nazwiska.
Wypróbuj działanie tego programu.
Wyślij do rejestru sterującego taką kombinację bitów, aby stan linii STR/ był niski, a linii ALF wysoki (uwaga te linie są negowane w kontrolerze).
Napisz program odczytujący słowo stanu łącza LPT1 i wypróbuj jego działanie.
Napisz prosty sterownik wysyłający do portu LPT1 1 bajt. W przypadku niegotowości urządzenia - linia busy w stanie wysokim, należy czekać na gotowość (aktywne czekanie). Napisz ten program w formie podprogramu -Dana przekazywana w rejestrze BL. Pamiętaj o sterowaniu linią STR.
Wypróbuj obsługę łącza LPT1 przy użyciu funkcji DOS i BIOS.