Komputer 8-bitowy

Komputery retro, konsole do gier itd.

Moderatorzy: gsmok, tszczesn, Romekd, Einherjer, OTLamp

Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Magii ciąg dalszy. Zamiast do złącza klawiatury podłączyłem ja (tymi samymi długimi przewodami) do złącza karty graficznej. Oba złącza znajdują się po przeciwnych stronach procesora, 6/10 cala od niego, i są z nim bezpośrednio połączone. Komputer w takiej konfiguracji działa bez zarzutu :shock:
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

staszeks pisze: śr, 30 marca 2022, 21:14 Jeżeli nie ma pomyłki w lutowaniu ...
Staszku, pierwsza myśl zawsze najlepsza :)
Problemem był brak połączenia, którego istnienie sprawdzałem pewnie z 10 razy. Oglądałem nawet konektor klawiatury od strony lutu pod lupą żeby znaleźć jakieś zwarcia. A mimo to nie zauważyłem, że linia A6, która wspólnie z IORQ wybiera klawiaturę do odczytu, nie jest podłączona, tzn. nie ma (i, sądząc po stanie punktu lutowniczego, nigdy nie było) połączenia na tym pinie między konektorem a procesorem.

Teraz nagle wszystko ma sens: klawiatura była wybierana samą linia IORQ, czyli przy próbie odczytu z dowolnego urządzenia zaśmiecała magistralę tym, co akurat miała zatrzaśnięte w swoim rejestrze. To też tłumaczy czemu przy dostępie do pamięci wszystko działało poprawnie, a tylko urządzenia We/Wy dawały objawy błędu.
staszeks
2500...3124 posty
2500...3124 posty
Posty: 2997
Rejestracja: sob, 18 września 2004, 19:38
Lokalizacja: Bielsko-Biała

Re: Komputer 8-bitowy

Post autor: staszeks »

Ciesze się nie mniej niż Ty.
sam sobie w życiu
jakoś nie radzę
więc biuro porad
dla innych prowadzę
/Sztaudynger/
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Dziękuję, to naprawdę miłe.
Poniżej brakujący winowajca:
IMG_20220227_134846481.jpg
Niesamowite, że widać błąd na zdjęciu, które wstawiłem w lutym.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Pracuję teraz nad prototypem układu klawiatury, który wymaga tylko czterech czipów (zamiast ośmiu w pierwotnym projekcie). Idea działania jest bardzo podobna, tylko część funkcji zamiast sprzętowo jest zrealizowana w softwarze i wykonywana przez procesor. To CPU musi skanować poszczególne linie klawiatury wykonując instrukcję IN na adresach portów kolejno xxxx0001, xxxx0010, xxxx0100, xxxx1000 i odczytując stan przycisków z linii danych. Ponieważ przy instrukcji IN zawartość akumulatora pojawia się na górnej połówce szyny adresowej, można użyć do adresowania rzędów klawiatury linii A15-A8 zamiast A3-A0, i tym samym rozszerzyć klawiaturę z czterech rzędów do ośmiu.

Główną różnicą między tą klawiaturą a poprzednią jest że nie generuje przerwań maskowalnych, musi być odpytywana przez procesor. Odpytywanie odbywa się w procedurze obsługi przerwania niemaskowalnego.

Klawiatura już działa na płytce stykowej, może ją kiedyś wykorzystam żeby zbudować "kieszonkową" wersję komputera.
simpleKbd.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Na schemacie powyżej jest błąd, drabinka rezystorów powinna być na wejściu układu '245, a nie na wyjściu.
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Wczoraj połączyłem po raz pierwszy kartę graficzną z komputerem, i udało mi się uruchomić całość bez większych problemów. Zauważyłem jednak że kilka pierwszych linii obrazu od góry jest przesunięta w poziomie o jeden piksel w prawo. Wydaje mi się że mam ten sam problem, który został opisany tu:

https://www.waveguide.se/?article=bitma ... -interface

The reset is performed using a diode network that triggers the reset signal at 512 pixels * 312 lines = 159744. Actually I chose the value 159743 as reset value (one pixel early). The precise reset timing can then be set by adjusting R6. If the reset is just a tiny bit off then the image will be skewed at the top and that's not pretty at all.

Spróbuję więc (kiedyś) podobnego podejścia z generowanie sygnału resetu jeden piksel wcześniej i regulowania momentu resetu potencjometrem, ale to jest raczej niski priorytet dla mnie. Ważniejsze jest teraz napisanie nowego kodu, który będzie wykorzystywał kartę graficzną zamiast wyświetlacza LCD. Nie jest to tylko kwestia nowej implementacji funkcji do wypisywania stringów czy przewijania ekranu - filozofia pisania interfejsów jest zupełnie inna kiedy ma się tylko 80 znaków do dyspozycji na całym ekranie, a inna kiedy się ma ponad 1000. Stąd np. program monitora pamięci będzie musiał być w znacznej części przepisany od nowa.
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Zdjęcie niestety wyszło ruszone, w rzeczywistości obraz na ekranie jest całkiem ostry - na pewno lepszy niż ATARI 65XE przez modulator RF.
IMG_20220505_194342290.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
TooL46_2
1875...2499 postów
1875...2499 postów
Posty: 2061
Rejestracja: ndz, 20 lipca 2008, 12:06
Lokalizacja: Seattle, WA

Re: Komputer 8-bitowy

Post autor: TooL46_2 »

<3 jak to mowia teraz w tym Internecie ;) Podobnie jak poczynania Ben'a sledzilem z wypiekami na twarzy, Twoj komputer podobnie powala z nog! Szacunek!
Pozdr,
-Tomek Drabas
________
‎"One should not pursue goals that are easily achieved. One must develop an instinct for what one can just barely achieve through one's greatest efforts."
—Albert Einstein

tomdrabas.com
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Zachęcony tym miłym komentarzem pozwolę sobie wrzucić jeszcze jedno zdjęcie, na którym komputer wykonuje program monitora:
IMG_20220507_170009491.jpg
Jak widać, karta graficzna obsługuje kilka różnych krojów czcionek i kolorów (aczkolwiek przełączać trzeba ręcznie, dipswitchami). Po wycentrowaniu obrazu na monitorze mam pełne 30 linii po 40 znaków, z tym że pierwsza linia jest lekko przekoszona w wyniku problemu, o którym pisałem wcześniej, więc jej chwilowo nie używam.

Załączam też zdjęcie zbliżenia na monitor pozwalające ocenić ostrość obrazu:
IMG_20220507_170009491_2.jpg
Doszedłem do wniosku, że mruganie kursorem programowo, przy użyciu przerwań może powodować wyścigi, więc ostatecznie zbuduję prosty układ sprzętowo włączający i wyłączający kursor - oscylator ok 2Hz za pośrednictwem diody uziemiający linię danych D7, która odpowiada za włączanie i wyłączanie kursora. Śledzenie pozycji kursora nadal będzie programowe, tylko mruganie sprzętowe.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
staszeks
2500...3124 posty
2500...3124 posty
Posty: 2997
Rejestracja: sob, 18 września 2004, 19:38
Lokalizacja: Bielsko-Biała

Re: Komputer 8-bitowy

Post autor: staszeks »

A ja mam pytanie.
Od tego nie zależy działanie całości.
Dlaczego na "płycie głównej" zastosowałeś złącza męskie??
I łatwiej uszkodzić (mechanicznie) i trudniej w wypadku uszkodzenia wymienić.
Wydaje się że również na dokładanych kartach wygodniejsze byłyby męskie.
sam sobie w życiu
jakoś nie radzę
więc biuro porad
dla innych prowadzę
/Sztaudynger/
staszeks
2500...3124 posty
2500...3124 posty
Posty: 2997
Rejestracja: sob, 18 września 2004, 19:38
Lokalizacja: Bielsko-Biała

Re: Komputer 8-bitowy

Post autor: staszeks »

I jeszcze jedno.
Czy jest obojętnym gdzie włożysz dana kartę, a jeżeli nie ty czy przewidziałeś klucz uniemożliwiający nieprawidłowe włożenie.
sam sobie w życiu
jakoś nie radzę
więc biuro porad
dla innych prowadzę
/Sztaudynger/
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Odpowiem ci szczerze: to jest moje pierwsze doświadczenie praktyczne z elektroniką cyfrową, więc wiele decyzji typu jakie zastosować złącza podjąłem albo losowo albo na podstawie dostępności części.

Komputer ma tylko jedno złącze rozszerzeń, pozostałe złącza (karty graficznej, klawiatury i portu szeregowego) mają inną liczbę pinów i nie da się przypadkiem podłączyć innego urządzenia niż właściwe. Nie jestem pewiem czy to odpowiada na Twoje pytanie, w każdym razie złącza dwurzędowe - karty graficznej i szeregowe - mają klucz, a jednorzędowe - klawiatury i rozszerzeń - nie mają klucza ale mają różną liczbę pinów.
staszeks
2500...3124 posty
2500...3124 posty
Posty: 2997
Rejestracja: sob, 18 września 2004, 19:38
Lokalizacja: Bielsko-Biała

Re: Komputer 8-bitowy

Post autor: staszeks »

Mera 9150 (chyba tak się to urządzenie nazywało) fizycznie pozwalało włożyć karty w dowolne miejsce.
Jedyne co zależało od miejsca włożenia karty to był priorytet przerwania.
Jednym słowem czym karta bliżej fizycznie od płyty procesora tym wyższy priorytet przerwania.
Ale i tak nie należało eksperymentować bo efekty mogły być zaskakujące. (choć nie prowadziły do awarii)
sam sobie w życiu
jakoś nie radzę
więc biuro porad
dla innych prowadzę
/Sztaudynger/
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4017
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

W prototypie mojego komputera mam tak samo, na płycie głównej jest tylko procesor i zegar, wszystkie piny procesora (oprócz REFRESH, nie planuję używać pamięci dynamicznych) są wyprowadzone na magistralę. Karty można wkładać w dowolny slot - to daje dużą elastyczność, przydatną przy prototypowaniu, minusem jest że każda karta musi sama rozwiązać dekodowanie swoich adresów. Zamienianie kart miejscami nie ma wpływu na działanie maszyny, ale zdarzyło mi się wstawić kartę tyłem do przodu, lub przesuniętą o jeden pin. Komputer oczywiście w takim wypadku nie działa, ale nie ma raczej ryzyka powstania trwałego uszkodzenia.