Hermes 64
Komputer zaprojektowany i skonstruowany w 1987 roku przez Edwina Wierszelisa, który wówczas był uczniem szkoły średniej i bardzo chciał mieć komputer. ;-)
Hermes jest kompatybilny z ZX-Spectrum, choć nie zawiera ani jednej części Spectrum. Konstrukcja jest całkowicie oryginalna, za wyjątkiem:
- Modulatora TV (generatorek w.cz) - wykorzystano fragment schematu generatora obrazów kontrolnych, opublikowanego w jednym z numerów "Młodego Technika"
- Zasilacz główny (+5V) z impulsową stabilizacją bazowany jest na projekcie opublikowanym
prawdopodobnie w "Radioelektroniku". Na pewno na tym źródle opierają się schematy
zasilacza dodatkowych napięć +12V i -12V. Te napięcia nie są wykorzystywane w obecnej konstrukcji. Były przewidzane dla jakichś dodatkowych rozszerzeń typu RS-232, niektórych rodzajów pamięci czy enkodera koloru. Ciekawostką konstrukcyjną jest wykorzystanie w charakterze zasilaczy układów scalonych przeznaczonych dla wzmacniaczy głośnikowych. Taka koncepcja Dual-Use Technology z "Radioelektronika" ;-)
- Schemat generatora dźwięku na bazie układu AY-3-8910 jest jego standardową implementacją z jakiegoś czasopisma. Są tylko projekty płytek, sam schemat pozostał do odnalezienia albo odtworzenia z płytki.
- Hermes używa zmodyfikowanego ROM ZX-Spectrum. Modyfikacje są dla wygody - inny font, dłuższe beepy klawiszy, czarne tło i poprawiony "błąd NMI" ZX-Spectrum. Może pracować z oryginalnym ROM i można w nim aktywować taki tryb pracy.
Wszystkie funkcje realizowane są za pomocą układów TTL małej skali integracji i elementów dyskretnych. Nie ma układów specjalizowanych takich jak ULA. Wyjątkiem są:
- Procesor Z80A - jak w Spectrum, tu użyto D780A firmy NEC.
- Pamięci RAM 4164 (8 szt.)
- Pamięci EPROM. W minimalnej konfiguracji 2x 2764 (8KB każdy). Obecnie zamiast jednej z nich jest 27128 (16KB).
Dodatkowe funkcje:
- Interfejs Kempston Joystick
- Możliwość przeniesienia pamięci obrazu do jednej z trzech alternatywnych lokalizacji
- Możliwość podmiany ostatnich 16 KB RAM na bank schowany pod pamięcią ROM
- Emulacja ROM = możliwość odsłonięcia "dolnych" 16 KB RAM i zablokowania zapisu do nich. Jest to wykorzystane do przełączenia Hermesa na oryginalny ROM ZX-Spectrum. W dodatkowej pamięci EPROM jest zapisany skompresowany obraz różnic między ROM ZX-Spectrum a
HeROS (Hermes Resident Operating System :-) oraz procedura odpakowująca go do dodatkowego RAM. Po jej uruchomieniu komputer zgłasza się standardowym komunikatem (c) 1982 Sinclair Research Ltd na białym tle.
- Układ dźwiękowy AY-3-8910. Programowo zgodny z generatorem dźwięku w ZX-Spectrum 128+. Niektóre gry, np. Cybernoid, uruchomione na Hermesie używają tego generatora, mimo iż
nie jest to Spectrum 128.
Kompatybilność z ZX-Spectrum: bardzo duża. Dzięki sprawniejszemu zarządzaniu dostępem do pamięci RAM Hermes jest minimalnie szybszy od ZX-Spectrum, mimo iż procesor pracuje z takim samym zegarem. Spotkałem jedną grę która nie chciała na nim działać i jedną, która wymagała koniecznie trybu ROM ZX-Spectrum. Do gry Arkanoid (v1) po analizie czemu ta gra nie działa, została wykonana hardwarowa modyfikacja emulująca jeden szczegół konstrukcyjny ZX-Spectrum. Arkanoid nie będzie działał na Juniorze.
Rozbudowa
Bazowa wersja powstała w roku 1987. Później (1989) Hermes otrzymał lepszą obudowę, zasilacz i nową płytę backplane. Ze względu na dłuższe przewody kolumn klawiatur, diody łączące kolumy z liniami adresowymi A8..A15 zostały zastąpione buforami 7407 na dodatkowej, małej płyteczce. Pozostała brzydka obudowa, klawiatura na desce i szereg nie podłączonych gniazd. Komputer działał, więc nie było potrzeby go dalej usprawniać. :-) W ramach ostatniej rozbudowy Hermes dostał generator dźwięku na układzie AY-3-8910.
Porzucone plany
- Kontroler FDC: zaczęty projekt na bazie FDC Juniora, płytka jednak była bardzo skomplikowana na możliwości technologiczne, oprogramowanie tego prawdopodobnie by się nie udało na ówczesny stan wprawy w programowaniu
- Rozszerzenia I/O (PIO, CTC) - powstał tylko schemat
- Enkoder koloru TV w standardzie SECAM - były tylko analizy teoretyczne, z których wynikło że możnaby wygenerować podnośne chrominacji dla obrazu o 8 kolorach za pomocą VFO generującego jedną z 18 częstotliwości. Być może pozwoliłoby to pokolorować obraz, ale było duże ryzyko, że część analogowa sprawiałaby problemy przy takim rozwiązaniu.
- Generator obrazu w trybie tekstowym - z zazdrości o Amstrada i Bosmana. ;-)
Plany odrzucone (nie zrobię, bo po co?)
- Przyzwoita klawiatura (a co jest z tą nie tak? ;-)
- Korekta położenia impulsów synchronizacji TV i dołożenie przyzwoitych impulsów wygaszania (paper jest przesunięty w górę i lewo; zmiana wymaga trochę eksperymentów i modyfikacji hardware)
- Zamiana rejestru+multipleksera pixeli na rejestr przesuwny (mnie nie przeszkadza że są nierówne ;-)
- Dołożenie linii opóźniającej RAS-MUX-CAS (kto projektował pamięci z układami DRAM ten pęknie ze śmiechu przy jednym ze schematów. No nie ma tej linii ale działa, więc ossochozzi? ;-)
Trzy ostatnie poprawki obiecuję zrobić w przypadku remake.
Źródło części
W miare możliwości, użyte zostały podzespoły dostępne w kraju. Przy budowie wykorzystano jednak części pochodzące z rozbiórki elektroniki do gry arcade: były to trudne do zdobycia w Polsce układy TTL LS (zwłaszcza ośmiobitowe rejestry i bufory), procesor, pamięci EPROM a nawet podstawki. Gniazda szczelinowe do modułów pochodzą z rozbiórki radzieckiego kalkulatora Iskra 111. Obudowa to odpad produkcyjny stacji dysków do Juniora. Tylko RAM został klasycznie zakupiony. Wczesne próby odbywały się z wykorzystaniem zastępczego RAM: 2KB SRAM do prób witalności systemu i pojedynczej kości RAM 4116 (16 kbit) do testów układu adresowania obrazu.
Proces produkcji płytek
Płytki na laminacie dwustronnym były malowane ręcznie. Najpierw na podstawie schematu był tworzony projekt obu warstw w skali 2:1. Laminat był przycinany, po czym przy pomocy linijki odmierzano na nim położenie otworów (wg siatki 100 mils - 2.54 mm, 5.08, 7.62 itd). Otwory były wiercone, po czym taka płytka z otworami (ale nie wytrawiona) służyła do odbicia otworów na dwóch nowych rysunkach, tym razem w skali 1:1. Następnie rysunek ścieżek był przerysowywany na podstawie projektu 2:1. Ścieżki czerwone (górna warstwa) były dobrze widoczne. Te znajdujące się na spodzie były przerysowywane w odbiciu lustrzanym po umieszczeniu projektu na podświetlonej szybie malowanej na czerwono. Ścieżki poszczególnych warstw były trasowane przy pomocy rylca, co ułatwiało późniejsze prowadzenie piórka z farbą. Flamastrów do PCB wtedy nie było. Jako farbka służyl czerwony lakier do paznokci, do którego dodano jedną kroplę tuszu z długopisu. Wkład długopisu był opróżniany a kulka z końcówki wyjmowana. Do oczyszczonego denaturatem wkładu był potem zasysany przygotowany wcześniej lakier i tym malowano. Rozdzielczość takiej malowanej płytki była mała, toteż w fazie projektowania wykluczono możliwość prowadzenia ścieżek między podłączonymi w tej samej warstwie padami układu scalonego. Trawienie: roztwór perhydrolu, wody i kwasu solnego. Topnik: kalafonia na denaturacie (skład podobny do współczesnego TK-83). Układy musiały być lutowane również po "górnej" stronie, bo otwory nie były metalizowane. Z tego samego powodu przelotki (ang. via) nie były mile widziane. Stosowano natomiast mostki na szyny zasilające oraz linie danych RAM.
Płyta backplane (jednostronna) ma tylko ścieżki doprowadzające zasilanie i ślepe pady do złącz modułów. Połączenia logiczne między padami są robione za pomocą drucików, podobnie jak np. w Odrze, ale lutowanych. Z tego powodu płyt nie można zamieniać.
Źródła wiedzy
Przy tworzeniu tej konstrukcji pomocne były:
- Czasopisma "Radioelektronik" (zasilacz, pinouty RAM i EPROM, cykle dostępu RAM - chyba)
- "Młody Technik" (modulator TV, nie pamiętam w którym numerze był generator obrazów kontrolnych)
- Książka "Mikroprocesor w pytaniach i odpowiedziach" (WNT 1987) - bez zawartego w niej opisu cykli dostępu do pamięci procesora Z-80 nie powstałby kluczowy element logiki komputera
- Książka "Przewodnik po ZX-Spectrum" (WKiŁ 1986) - prawdopodobnie mapy pamięci i I/O choć raczej to zostało uzyskane drogą obserwacji działania ZX-Spectrum za pomocą instrukcji BASICa:
POKE
, IN
, OUT
i load "" SCREEN$
- Schemat ZX-Spectrum - po to aby stwierdzić, że "nic tu po mnie". ;-)
- Analiza budowy różnych części dużych maszyn cyfrowych (np. szyny zasilające na pakietach Odry czy Riada, ścieżki wyklejane różnymi kolorami na projekcie). Także doświadczenie własne ze wcześniejszych projektów cyfrowych: cyfrowego licznika-częstościomierza oraz testera pamięci RAM, który mikroprocesora nie miał, ale wyświetlał zawartość pamięci na ekranie TV.
Komputer ma modułową budowę nie tylko ze względu na złożoność układu. Ze względu na brak oscyloskopu i innych pomocnych urządzeń, płytki były wykonywane i uruchamiane w określonej kolejności. Tak, aby już uruchomione pozwalały testować następne i wcześnie wprowadzić konieczne zmiany w projekcie.
Schematy
Projekty płytek
Niezrealizowane rozszerzenia
IMG_5341-crop-enh.JPG
|
dg-0009.JPG
|
dg-0010.JPG
|
dg-070-open-side.jpg
|
dg-030-screen.jpg
|
dg-120-game.jpg
|
walbum v0.71
| edwart@borsuk 2020-07-06 05:36
|