RetroComputing na chipie
Nowe elementy elektryczne pozwalają nam zrekonstruować stare okablowanie znacznie bardziej wydajne. Zwłaszcza, łatwo dostępny, a także przystępne zestawy FPGA, które oferują możliwość łączenia wielu starych komputerów jako rozwiązanie “On-A-Chip”.
Kiedy obsłużyłem, aby uzyskać starego ekranu LED bąbelkowego, a także dość mechaniczną klawiaturę matrycy, podjąłem decyzję o opracowaniu repliki starego komputera jednoosobowego. Racjonalne wybory wydawały się rozwijać Kim-1 lub Heathkit et-3400. Repliki Kim-1 już istnieją, nawet dla Arduino, więc moje zadanie zostanie zminimalizowane, aby połączyć klawiaturę, jak również wyświetlacz. Jednakże jednak powiedziałem sobie, że użyję prawdy, że mój ekran bubble ma 9 pozycji jako powód, aby opracować legendarny Czechoslovak Pojedynczy komputer PMI-80, który wykorzystał dokładnie ten sam wyświetlacz. Moja replika to FPGA lub raczej emulator FPGA tego niezwykle komputera.
PMI-80.
Oryginalny PMI-80 [Źródło: Blog DLW] Jest tam najprawdopodobniej wielu ludzi wśród odwiedzających Hackaday, który zrozumiem ten komputer, który został stworzony w latach 80. w dawnej Czechosłowacji. Edytor Hackaday [Brian Benchoff] może być jedynym czytaniem tego, który ma taki okaz. Jednak jeśli masz jedną z własnych, chcielibyśmy, jak dobrze usłyszeć o tym w poniższych komentarzach. Dla tych, którzy nie są znani, przedstawmy go najpierw.
PMI-80 jest pojedynczą instytucją instytucją na podstawie procesora Intel 8080. Biorąc pod uwagę, że została wyprodukowana w latach osiemdziesiątych za tak zwaną azyliwą kurtyną, wykorzystywała czechosłowackie frytki Tesla zamiast oryginalnych Intel, chociaż były one funkcjonalnie identyczne, w tym numerowanie (Intel 8080a miała oznaczenie MHB80825A, Pio 8255a była oferowana jako MHB8255A itp.)
Podstawa składa się z okablowania “Świętej Trójcy” (8080a – 8224 – 8228). Na wejściu obwodu żywicy 8224 był kondensator, a także dioda, dostarczanie resetowania po zasilaniu. Kryształ miał 10 MHz, więc komputer działa przy częstotliwości 10/9 = 1,111 MHz. Obwód wejściowy INTA 8228 był powiązany z + 12V, który upewnił się, że w przypadku żądania przerwania, kierunek RST 7 przeprowadzono (tj. Przejdź do adresu $ 0038).
Pamięć została opracowana z 1k Prom (8608, 1kx8), a także 1 KB RAM (2x 2114) żetonów. Prom został zaproponowany na adres $ 0000 – $ 03FF, RAM wynosił 1C00 $ – $ 1FFF. Można nawet dodać dodatkową pamięć 2708 (0400 $ – $ 07FF) do zarządu.
VAD30 Ekran [Źródło obrazu: Nostalcomp.cz] Komputer obejmował dodatkowo wyświetlacz VQD30, produkowany w dawnych Niemczech (Deutsche Demokratische Republika). Był to praktyczny ekwiwalent ekranów NSA1198 lub CQYP95 – 9 Siedem segmentowych typowych ekranów katodowych. Dane wejściowe zostały dostarczone przez klawiaturę, która została opracowana jako matryca 3 × 9. Oba te urządzenia peryferyjne były napędzane obwodem na podstawie PIO 8255. Port wyloty (PA0-PA6) zarządzane prywatne segmenty (anody) z tranzystorami napędowymi. Najniższe cztery bity portu C zostały zdekodowane przez obwód MH1082 (odpowiednik 74145) do kodu 1-od-9, który był wykorzystywany do wyboru pozycji, a także jednocześnie aktywując kolumny klawiatury. Linie klawiatury były połączone z bitami PC4-PC6.
Programy były przechowywane na taśmie w niezwykle podstawowy sposób, który był również zarządzany za pomocą Pio 8255. Każdy wpis miał bit startowy (1), a następnie rzeczywistą wartość, a także bit stop (0). Podczas nagrywania program wytworzył cykl częstotliwości dostawcy 0,2 ms w porcie PA6, a także uderzył go za pomocą PIN PA7. Podczas czytania informacji otrzymano na bit PC7.
Pio 8255 był powiązany jako peryferyjna przy adresach $ F8- $ FB. Płyta komputerowa umożliwiła wstawienie jednego dodatkowego obwodu Pio, który następnie połączony z adresami F4- $ F7, a także całkowicie oferowany do aplikacji.
Operacja
Klawiatura składa się z 25 tajemnic ustawionych w matrycy 5 × 5. W środku jednak został nawiązany inaczej. Dwie tajemnice (RE, a także I) doprowadziły bezpośrednio do wejść procesora (odpowiednio Int). Sekrety pobytu (0-9, A-F, Ex, R, Br, M, L, S, a także =) zostały podłączone w już wskazanym matrycy 3 × 9, jak pokazano tutaj.
Po włączeniu go ekran ekranowy sprawdził “PMI-80”, a komputer czekał na każdy rodzaj kluczowej prasy. Następnie poszedł do trybu podstawowego ekranu, określony przez “?” po lewej stronie wyświetlacza. Następnie komputer czekał na polecenia ekranu.
Polecenia monitora.
M – Modyfikacja / Wyświetl zawartość pamięci. Po naciśnięciu M pojawia się po lewej stronie, a komputer czeka na wpis adresowy. Naciśnięcie = aktywuje wpis danych. Za każdym naciśnięciem = podwyższenie wytycznych adresu przez 1. Wejście danych jest zakończone przez naciśnięcie tajemnic innych niż = i 0,5 f.
R – Widok, a także modyfikację zawartości rejestrów. Po naciśnięciu r “R” pojawi się po lewej stronie, a komputer czeka na klawisz, który odpowiada para rejestracji (AF = A, B = BC, D = DE, HL 9 = 8 = SP). Ponownie możliwe jest dostosowanie danychJak również wykorzystywać = krok do następnej pary.
Ex – prowadzi program. Komputer czeka na adres, naciskając = wskakuje do programu. Program można zakończyć, skakając do adresu 0 lub adresu 8 (odpowiada skokowi do monitora).
Br – dokładnie taki sam jak g, jednak z punktem przerwania. Najpierw wymóg należy przejść do adresu, w którym program musi zostać przerwany, a następnie następny adres początkowy.
L, S – Tony, jak również zapisują dane (nie wdrożone tutaj)
I – Przerwanie. Wyzwala się przerwanie, a także skacze do adresowania $ 0038. Istnieje tylko instruktaż: JMP $ 1FE6. Na tym adresie (w pamięci RAM) musisz bardzo wyprodukować wskocz do rutyny obsługi.
Ponownie zresetuj. Podczas resetowania RAM nie jest jasny, więc może być wykorzystywany jako przerwanie programu, a także powrót do monitora.
Ekran zapewniający komentarze jest oferowany z repozytorium Git.
PMI-80 w FPGA
Wybrałem tanio Kit FPGA DEV, maleńką EP2C5 / EP2C6, która jest taka sama Searle, która jest taka sama przyznana dla jego multiPomp (dzięki za inspirację!). Posiada układ Cyclone II, który zaprogramowałem wykorzystując VHDL.
Połączyłem klawiaturę jako matrycę 5 × 5, a nie w oryginalnym 3 × 9; Rekodowanie w odpowiednim dla PMI jest obsługiwany w FPGA.
Ekran jest połączony z rezystorami bezpośrednio do FPGA, a także ponownie, wszystkie logikę, a także cofanie do typu odpowiedniego do emulacji jest wykonane w FPGA.
Brakuje interfejsu do pracy z magnetorem, nie przeprowadziłem jeszcze tego. Możesz zobaczyć moją obecną aplikację w moim Github Repo.
Wykorzystałem darmową aplikację VHDL 8080 o nazwie Light8080. Nie jest “T-Ideal”, jednak tak nie było potrzebne. Podobnie wykorzystywałem komponent PIA8255.
Podstawowy kod znajduje się w danych RMI.VHD, gdzie wszystkie “Logika klejowa” dla każdego komponentu: 8080, 8255, RAM, ROM, klawiatura, jak również dioda LED.
Archiwum również obejmuje elementy testowe, które wykorzystywałem podczas pracy na emulacji, np. Podstawowy ekran pokazujący liczby szesnastkowe. Uzyskanie emulacji do pracy prawidłowo było nieco niepewne. Oryginalne zastosowanie procesora 8080 zajmował się nieco niestandardowym czasem, w rezultacie nieparzyste, które pojawiły się w magistrale, na przykład RAM przestał dostarczyć informacje, zanim procesor zameldował go itp. Kilka rzeczy wspomagało mi:
Testowy ROM z podstawowym kodem
Generator zegara o częstotliwości około 1 Hz
Ekran szesnastkowy (komponent natychmiast odświeża zawartość ekranu, przyniosłem dane do wejścia bezpośrednio z danych lub autobusu adresowego)
Altera Sonda – Sonda logika online połączona z obwodem przesyła dane na interfejsie JTAG do IDE Quartus.
Budowanie sprzętu, a także komponowanie emulatora był weekend pracy, a także wciąż jest “wersją 0.1”. W przyszłości chciałbym przedłużyć system na emulację innych komputerów jednoosobowych (KIM, ET, może COSMAC ELF), a także naśladować taśmę, może jako interfejs RS-232. Spójrz na szybki demo wideo. Sprawdź poniższe zasoby, a także zostawić komentarz, jeśli myślisz o znacznie więcej komputerów retro na projektach wiórów.
Zasoby
Kody źródłowe: https://github.com/maly/fpmi
PMI-80 Opis w słowackim:
http://www.nostalcomp.cz/pdfka/pmi80_popis.pdf.
Kliknij, aby uzyskać dostęp do PMI80_Doplky.pdf
Kliknij, aby uzyskać dostęp do PMI_PRIRIRIUCKA1.PDF
http://www.nostalcomp.cz/pdfka/pmi_prirucka2.pdf.