CPU Signetics 2650 & Baby System




Že neznáte firmu Signetics? Ale to byste jako správní bastlíři měli. Tato firma totiž počátkem 70. let uvedla na trh dosud asi nejprodávanější integrovaný obvod všech dob: legendární timer NE555. A kdo někdy nebastlil něco s 555-kou (556, 7555) není bastlíř, ale lempl. Ale je toho víc. Co třeba velmi známý operační zesilovač NE5532? ROM generátory znaků od Signetics používaly počítače APLLE I i II. Byli též průkopníky programovatelných logických polí (PLA) a v době uvedení NE555 si firma vystřelila z počítačového světa vydáním své "joke" specifikace paměti WOM (Write Only Memory), tedy paměti do které lze pouze zapisovat a nelze z ní číst:-) Což je opak běžně používané paměti ROM. Sortiment této firmy byl opravdu bohatý a patřily sem třeba i řezové procesory řady 3000, procesor 8080, procesor SC/MP, či vybrané obvody 74xx. Od roku 1975 patřila firma pod Philips, který ale značku samostatně udržoval. Značka existuje dosud i přesto, že ji "filipsáci" nakonec střelili nějakejm šikmookejm...


Signetics Instructor 50

Ve svém výrobním portfoliu měla firma celou řadu číslicových a počítačových obvodů. Některé licenční, jiné vlastní. Mezi ně patřil i mikroprocesor 2650 uvedený na trh v roce 1975, tedy v raném období univerzálních mikroprocesorů. Chystal se velký boom, malé domácí osobní počítače měly teprve vznikout, a tak různí výrobci přicházely na trh s vlastními představami o univerzálním mikroprocesoru v domění, že právě ten jejich se masově prosadí. Jak víme, nakonec smetanu slízli hlavně Z80 a 6502. Nicméně o 8080/8085, 6800 a možná i o 1802 většina lidí určitě alespoň slyšela, ale o 2650? Já o něm vím dlouho, protože jsem se vždy zajímal o výukové školní jednodeskáče a fascinoval mě Signetics Instructor 50 osazený právě CPU 2650. Tento procesor dlouho zůstával asi posledním procesorem "zlaté éry", se kterým jsem si kdy chtěl pohrát. Jenže jsem tento procesor považoval za neúspěšný a tudíž zapomenutý a nesehnatelný a tak jsem ani nevyvíjel snahu ho získat. Ó jak jsem se mýlil! Stačila nevinná zmínka v jednou mailu a procesor jsem měl doma. A jakmile jsem začal shánět informace o Instructorovi 50, nestačil jsem zírat. O CPU 2650 je toho na netu překvapivě dost (hlavně na Bitsavers). 2650 nebyl tak odstrčený, jak by se zdálo. Bylo to zřejmě díky Philipsu, který procesor tlačil i v Evropě, zejména Německu.

Ale zpět k Instruktorovi 50. Podařilo se mi najít kompletní dokumentaci, schémata i obsahy ROM. Jenže... Je složitej. Hrozně složitej. Má například i hardwarovou podporu pro vkládání breakpointů do RAM s vlastními externími registry po uložení původní instrukce. Ale co je nejhorší, obsahuje v podstatě zákaznický podpůrný obvod 2656 SMI. Ten obsahuje maskou (tedy při výrobě) programovatelnou ROM s monitorem, nějakou malou RAM, paralení port a nějakou logiku v podobě právě PLA, opět programovatelného maskou. Dále jsou zde nějaké PROM a PLA jako dekodéry. Obsah ROM, PROM i PLA je sice k dispozici a vše by se dalo nahradit. Signetics dokonce zveřejnil i zapojení obvodové náhrady za 2656 SMI, jakožto vývojového emulátoru pro tento obvod, což by se dalo použít, ale ta složitost....


2650 Baby System

Užuž jsem se chtěl spokojit s tím, že procesor pouze otestuji nějakým tím "NOPováním", když jsem narazil na soubor článků o procesoru 2650 z časopisu ELECTRONICS Australia(!) z let 1977-1980. A tam se ukázalo, že CPU2650 byl rozšířený a používaný docela slušně:-) Našel jsem tam popis asi nejjednoduššího počítače s tímto procesorem: 2650 Baby System a jeho všemožná vylepšení a rozšíření. A to mě nadchlo. Počítač se dá postavit jen s pár čipy a zdálo se to být funkční. Sice to nebyl klasický školní jednodeskáč s hexaklávesničkou a 7-segmentovým displejem a ke komunikaci s obsluhou se používal klasický sériový terminál, ale o to byl jednodušší. Také jsem se dozvěděl o existenci 1KB monitoru PIPBUG, který byl vydaný přímo Signeticsem, a který byl pro tyto jednoduché systémy přímo určen. A jelikož jsem PIPBUG na netu našel a našel i jeho zdroják, nic nebránilo si Baby System postavit. Za chvilku to bylo na nepájivém poli zadrátované a šlapalo to na první dobrou:-)

Tak si to shrňme: 2650 Baby system je primitivní počítač s CPU 2650 postavený podle článků v časopise Electronics Australia z let 1977 - 1980. Ke komunikaci s uživatelem je nutné použít sériový TTY terminál a počítač musí obsahovat monitor (operační systém) PIPBUG vyvinutý přímo firmou Signetics. Monitor umožňuje základní operace, jaké známe např z monitoru PMI-80, tedy: prohlížet a editovat paměť, prohlížet a editovat stavy registrů, vkládat a mazat breakpointy, spouštět programy a nahrávat programy na či z děrné pásky (opět sériovou linkou). PIPBUG původně komunikoval rychlostí 110 bitů/sec, ale postupně se objevily varianty pro 3004800b/s. Úpravy spočívaly pouze v přepsání zpožďovací rutiny DELAY, vlastní monitor se nemění. Pro komunikaci se používají piny pro jednobitový vstup (SENSE) a výstup (FLAG) procesoru 2650 a vlastní komunikace je tak definována softwarově (podobně jako u CPU 8085). Jelikož je procesor TTL kompatibilní, lze na tyto piny přímo připojit třeba USB/UART TTL převodník a ke komunikaci použít např. Hyperterminál z Windows. Celý Baby System mám postavený z 8 integrovaných obvodů, ale dal by se osekat na 5 čipů (zjednodušení hodin a výběrového dekodéru adres).

mikroprocesor Signetics 2650
mikroprocesor Signetics 2650
mikropočítač 2650 Baby System
mikropočítač 2650 Baby System

Osazení počítače je následující: CPU 2650, SRAM 6116, EEPROM 28C64. Hodiny jsou tvořeny klasicky zapojeným krystalovým oscilátorem ze tří hradel 74S04. Nemaje krystal 1MHz (nutný pro správnou funkci sériové komunikace), použil jsem 2MHz a za oscilátor zařadil děličku /2 (1/2 7474). Pro úpravu některých řídících signálů procesoru slouží jeden 7400 a dekódování adres pro výběr pamětí obstarávají 74138 a 7408. Paměťový prostor procesoru 2650 je kapitola sama pro sebe. Procesor sice má 15 adresových linek a může tedy přímo adresovat 32KB paměti, ale pouze po stránkách 8KB. Poslední dva adresové bity slouží jen k přepínání stránek. Toto přepnutí je možné pouze instrukcemi skoků a program nemůže volně "přetékat" z jedné stránky na druhou. Proto jsem se rozhodl stránkování nepoužívat a "frčím" jen ve stránce nula. Druhou komplikaci přináší samotný monitor PIPBUG, který vyžaduje RAM hned na druhém kilobajtu adresace (má tam 63 bajtů pro své potřeby), viz. popis mé upravené verze monitoru níže.

V následujícím PDF je schéma zapojení mé verze 2650 Baby Systemu. Šestivstupé hradlo AND je složeno ze 3-vstupých 7411 nebo 4-vstupých 7421. Lze také využít zbylých 2-vstupých hradel z 7408 a další vstupy dobastlit montážním ANDem z diod (nejlépe schottkyho). Hradlo NAND lze sestavit z AND a invertoru. Pokud bychom na celou logiku tvorby řídících signálů pamětí použili třeba GAL, zapojení se výrazně zjednoduší. Na oscilátor je nutné použít schottkyho obvod (S, LS, ALS). S klasickým TTL 7404 to nekmitá! Zbylý klopný obvod z 7474 lze využít třeba na ovládání vstupu /PAUSE, ale nějak v tom nevidím smysl. Stejně, jako u té LED na výstupu RUN/WAIT. Ale chtěl jsem si to vyzkoušet a světýlka já rád:-)


2650_Baby_System_hardware


Monitor PIPBUG_X je mou vlastní rozšířenou verzí originálního 1K monitoru PIPBUG. Monitor PIPBUG_X má 2KB, s původní verzí je 100% kompatibilní a komunikuje rychlostí 4800b/s. Jeho rozšíření spočívá v podstatě jen v "užvaněnosti", protože se mi nelíbila strohost originálu, jež s uživatelem komunikuje jen dvojicí znaků: * (OK prompt) a ? (error). To jsem se rozhodl změnit a přidal též dva příkazy pro zobrazení Help textu a Info textu. Celá ta užvaněnost zabírá další 1KB a monitor tak potřebuje 2KB paměti ROM ležící v oblastech 0000h-03FFh a 0C00h-0FFFh. Toto rozdělení je nutné vzhledem k tomu, že PIPBUG očekává RAM od adresy 0400h. Jelikož jsem použil RAM typu 6116 (2KB), vyčlenil jsem ji prostor 0400h-0BFFh a až pak může následovat druhý díl monitoru PIPBUG_X. Prostor od adresy 1000h do konce stránky (1FFFh) může být obsazen libovolně RAM či ROM. Já tam ale mám ROM, kde budou již hotové ukázkové programy (zatím jen NIM game od 1000h). Instrukční soubor 2650 je taky docela "libovej" a jelikož se mi nechtělo instalovat žádný assembler 2650 (a nic neinstalujícího jsem nenašel), tak veškeré mé programování probíhá přímou editací binárních souborů...

PIPBUG on 2650 Baby System
original PIPBUG
PIPBUG on 2650 Baby System
PIPBUG_X

PIPBUG on 2650 Baby System
PIPBUG_X: Help
PIPBUG on 2650 Baby System
PIPBUG_X: Info

PIPBUG on 2650 Baby System
PIPBUG_X: Error & Dump
PIPBUG on 2650 Baby System
start NIM game

Z naskenovaných časopisů se mi zatím podařilo zprovoznit hru NIM. Ještě se pokusím adaptovat nějaké další publikované prográmky, ale ty skeny jsou mizérie. Rozdíly mezi B a 8 kolikrát nerozpoznám sám, natož pak OCR. A když nejsou zdrojáky (jen HEX výpisy), tak to nedá nikdo dohromady. Nehledě na to, že mají chyby i ve zdrojácích. Ale ještě něco snad rozchodím.

PIPBUG on 2650 Baby System
NIM game: 2650 win
PIPBUG on 2650 Baby System
NIM game: I win:-)


Updatováno! Tak se mi nakonec podařilo zprovoznit ještě GUESSING game, což je jednoduché hádání čísel. Signetics si "myslí" číslo v rozmezí 1-99 a vy jej máte uhodnout na co nejméně pokusů. Číslo je vždy nutné zadávat dvojciferně, tedy 1=01, atd. Počítač zpětně hlásí zda jste nízko (LOW), či vysoko (HIGH) a nebo zda jste uhodli a na kolik pokusů. Za chvíli se to omrzí, ale první dvě tři hry jsou docela zábava:

PIPBUG on 2650 Baby System
start GUESSING game
PIPBUG on 2650 Baby System
GUESSING game

V ZIPu níže je binární obsah s monitorem PIPBUG_X hrou NIM a GUESSING. Obsah je určen pro paměť (E)EPROM o velikosti 8KB (2764, 28C64). Dva kilobajty mezi 0400h-0BFFh zůstávají v ROM nevyužité, protože je v tomto rozsahu aktivována RAM. Hra NIM se z monitoru spustí příkazem G1000, hra GUESSING zase pomocí G1200. Přikládám také originální aplikační poznámku se zdrojákem monitoru PIPBUG, ke které jsem si dovolil přidat seznam důležitých adres (zejména rutin) využitelných v našich vlastních programech. Pokud to bude někdo zkoušet, nezapomeňte, že monitor je upravený na komunikační rychlost 4800b/s!


2650_Baby_System_software


Zatím zvažuji, zdali to pak jen rozeberu a tudíž se k tomu asi už nikdy nevrátím, nebo to "nasázím" na univerzálu, nebo se pokusím z někoho vymámit návrh plošňáku (sám se těchto CAD/CAM programů štítím). Uvidíme. Každopádně jsem moc rád, že mi ten pomyslný poslední kousek skládačky už nechybí a já si konečně mohl pohrát s tímto pozapomenutým, ale nesmírně zajímavým procesorem. A by bylo jasno. Netvrdím, že jsem si pohrál se všemi procesory z rané éry. To ani náhodou. Ale pohrál jsem si se vším, s čím jsem si kdy pohrát chtěl:-)


RET



Odladěno na MS IE 8.0 a Firefoxu při rozlišení min. 1024 x 768 pixelů
www.NOSTALCOMP.cz    2010  -  2019