Z korespondencji z Nataszą (cyt): „superelwro też ciekawe,
dziękuje za te opisy, może wrzuć to na chomika czy microgeeka,
niech ludzie popatrzą jakie fajne rzeczy można powymyślać, co z
oprogramowaniem do tego? szczególnie ciekawe jak zrobiliście izolacje
użytkowników i ten pięcio-tasking”.
Po prostu opisałem jej pewną historię związaną z konstrukcją czegoś,
co roboczo nazywało się SUPERELWRO 256k. Ta konstrukcja to spory
kawałek ciężkiej pracy. Jej prośba/sugestia ma tu kluczowe znaczenie,
by ocalić ją od zapomnienia, skazania na niebyt i zapomnienie.
Geneza i rys historyczny
Tak przyglądając się zainteresowaniu na forum „starymi” mikroprocesorami, postanowiłem ocalić swoje ukochane dziecko z bardzo dawnych lat od zapomnienia i śmierci. By je przedstawić, musiałem zrealizować trochę „reverse engineering”, ponieważ historia pochodzi z czasów wręcz średniowiecznych → połowa lat 80-tych XX wieku. Wtedy nie było komputerów, a projekty powstawały na papierze. Zachowało mi się trochę notatek, choć zapewne nie jest to precyzyjne określenie i należałoby napisać: zachował mi się egzemplarz dokumentacji do konstrukcji, który został przekazany zleceniodawcyz adnotacji na dokumentacji widać, że było wykonanych 5 egzemplarzy, jeden z nich jest mój. Zachowała się sztuka PCB (choć jak się przekonałem przy reverse engineering, nie jest to sprawny egzemplarz). Mówiąc inaczej, była to studencka robótka na zlecenie czyli chałtura. Z wyrazem chałtura może kojarzyć się jakaś praca „na odwal”. Nic z tych rzeczy, jest to realizacja w najwyższych dostępnych w danej chwili standardach. Dzisiaj pewne rzeczy zrobiłbym inaczej. Wsparcie komputerów po pierwsze znacząco skraca czas projektu PCB i gwarantuje brak pomyłek w procesie technologicznym. Pliki gerberów tworzymy sami, więc nikt już nie zepsuje projektu. Jednak kiedyś błędy i pomyłki były codziennością, takie były czasy.Jest to dosyć dziwna i pokrętna historia, jednak by ją zrozumieć niezbędny jest drobny rys historyczny.
Należy zacząć od tego, że dawno, dawno temu był produkowany komputer biurowy o nazwie Elwro. Było to takie ćwierć tonowe biurko, z klawiaturą, drukarką i monitorem. W zestawie były jeszcze dwa napędy dyskietek 8 calowych. Właśnie wtedy miałem okazję dotknąć takich dyskietek, nigdy później już mi się nie zdarzyło. Ten komputer był na bazie procesora 8080 produkowanego w ZSRR.
Wyglądało to mniej więcej tak:
Ponieważ na świecie pojawiły się bardziej nowoczesne procki, powstał pomysł, by zastąpić trochę bebechów z takiego komputera na znacznie bardziej nowoczesne. Bardziej nowoczesnym od 8080 był rzecz jasna Z80. Tak dosyć pokrętną drogą temat trafił do mnie i dałem się namówić na eksperyment pod tytułem Super Elwro. Koncepcja była taka, by zastąpić w tym ćwierć tonowym biurku przede wszystkim płytę główną komputera zostawiając to, co się nadawało. A było tam tego tak trochę. Kontrolery do flopów → zostały, układ generacji obrazu na monitor → został, klawiatura → zostaje, drukarka → zostaje. Wymianie ulega tylko to co najważniejsze → jednostka centrala.
Dokładniej, to „mój zespół był dwuosobowy”. Setki godzin przegadanych nad koncepcją zaowocowało jakimś tam schematem, rzecz jaska na papierze. Dostaliśmy niezbędną dokumentację by wpasować się w istniejące realia, stąd są takie a nie inne niektóre rozwiązania, jak choćby rozszycie sygnałów na złączu CANNON 84. Idea zawierała jeszcze znaczące rozszerzenie funkcjonalności, czyli stworzenie maszynerii wielostanowiskowej. W sumie ta konstrukcja mogła udźwignąć pięciu użytkowników: jeden przy monitorze centralnym i czterech „powieszonych” na łączach szeregowych. Przetwarzanie na każdym stanowisku pracy wymaga jedynie monitora (by cokolwiek widzieć) oraz klawiaturę (by cokolwiek móc powiedzieć do komputera). Projekt PCB robiliśmy 3 miesiące stojąc po kilkanaście godzin przed deską kreślarską z przypiętymi dwoma arkuszami kalki technicznej. Kalka pokratkowana co 2,54 mm o wielkości arkusza A0 (kalki wykonała kreślarka przypięta do uczelnianej ORDY 1305). Kratki odzwierciedlały półraster (50mils), stąd cały projekt jest „półrastrowy”.
Uparliśmy się (ze współtwórcą), by projekt zamknąć na jednej płycie (w Elwro były stosowane płyty o tym samym gabarycie). Wymagało to pewnego wysiłku, bo zmieścić duże kilkadziesiąt układów scalonych na jednym PCB było sporym wyzwaniem. Jak się okazuje, rzeczy prawie niemożliwe do zrealizowania dają się zrealizować. PCB została zaprojektowana w sposób „bardzo ciasny”.Powierzchnia laminatu prawie cała jest zajęta przez elementy, tak, że praktycznie wszystkie układy są ze sobą na styk. Z tym związane jest pewne zdarzenie, które należy traktować humorystycznie: niektóre układy wymagały „korekty szlifierką” bo im dupki wystawały poza podstawki, czyli naruszały obszar innych układów.
Jak projekt był gotowy, to należało wykonać dokumentację technologiczną. Mój politechniczny kolega wykreślił całość w tuszu w powiększeniu 4:1. Normalnie szacun za wykonaną pracę, zrobić cyrklem kilka tysięcy kółek w tuszu o średnicy kilku milimetrów. Ta dokumentacja powinna gdzieś znajdować się na chacie, może kiedyś się odnajdzie. Taka „dokumentacja” szła do zakładu, gdzie robili PCB i jakiś pracownik poprzez digitajzer przenosił rysunek do maszynerii od PCB. Robił to jak robił, mógł coś pominąć, się pomylić i zrobić mnóstwo innych błędów. Powstawał wtedy egzemplarz PCB do weryfikacji (i to jest ten, który mi się zachował). Po określeniu poprawek, powstawały PCB „produkcyjne”.
Moja rola, wraz z kolegą, sprowadzała się do zaprojektowania, wykonania i technicznego uruchomienia prototypu. I to zostało zrobione. Poruszona przez Nataszę kwestia oprogramowania to zadanie dla innego zespołu. Maszynerią miała zarządzać jakaś adaptacja systemu CP/M. Nie znam dalszych kolei losu maszyny SE256. Można jedynie się domyślać, że pojawienie się w Polsce w drugiej połowie 80-tych lat komputerów PC XT stało się przeszkodą na drodze SE256 i zapewne wtedy sprawa się rypła i rozwój SE256 upadł. Trudno konkurować z takim sprzętem, miał większą moc obliczeniową i można było uruchamiać większe programy. Tu nie da się przeskoczyć 64kB na wszystko, a realnie, odejmując kawałek na pamięć ekranu monitora, jakiś kawałki obsługi systemowej pozostaje jakieś 48kB na użytkownika.
Koncepcja
Do procesora Z80 zostało włożone 256kB pamięci dynamicznej. Wtedy układy typu 4164 lub 41256 stawały się standardem. Co można zrobić w 256kB pamięci w przestrzeni Z80? Powołać kilku użytkowników, którzy mieliby swój własny region w fizycznej pamięci DRAM i by sobie wzajemnie nie przeszkadzali. Zestaw 4 banków pamięci z układów 4164 dawał sumaryczną przestrzeń adresową 256kB (można było 4 banki pamięci zastąpić jednym bankiem z układów 41256). Pamięć DRAM o adresie liniowym 0 .. 256k została podzielona na:
- 0k .. 48k – obszar przewidziany dla użytkownika 1,
- 48k .. 64k – obszar systemu operacyjnego,
- 64k .. 112k – obszar przewidziany dla użytkownika 2,
- 112k .. 160k – obszar przewidziany dla użytkownika 3,
- 160k .. 208k – obszar przewidziany dla użytkownika 4,
- 208k .. 256k – obszar przewidziany dla użytkownika 5.
Schemat SE-256
jest następujący:Do tego jest PCB. Nie jest to dosłowna kopia. Posiłkując się posiadanym egzemplarzem PCB i wykorzystując współczesne narzędzia, projekt został lekko zoptymalizowany. Zmiany wynikają przede wszystkim z obecnie dostrzeżonych pomyłek (o których będę pisać). Nie jest dobrym pomysłem powielać stare błędy, więc obecny opis został skorygowany by „promować” właściwe wzorce.
Rysunki PCB są następujące:
TOPBOTTOM