Az utóbbi időkben az érdeklődésem újból a régi idők számítástechnikája felé fordult, pedig lehet mondani, hogy lassan már 30 éve nem igazán izgattak a '80-as évek masinái. Annak idején természetesen én is 8 bites rendszereken keresztül kezdtem megismerni a számítástechnika világát, a program írás fortélyait, de aztán a hobbiból munka, a Commodore Amiga-ból IBM PC lett, és valahogy elmúlt az a varázs, ami a '80-as évek közepén rabul ejtett és ami annak idején a pályaválasztásomat is meghatározta.
Aztán rövid idővel ezelőtt történt valami, ami megváltoztatott mindent. A Vaterán fillérekért hozzájutottam egy nagy doboz bontott elektronikai hulladékhoz, és a lomok között ilyen panelokat találtam:
Természetesen érdekelt, hogy milyen integrált áramkörök vannak a kis panelen, így némi guglizás után sikerült kiderítenem, hogy az egyik IC egy Texas Instruments gyártmányú 8 bites mikrovezérlő, konkrétan a TMS7000-es család egy tagja, amiről annak idején nem is hallottam. A korabeli brossúra így nézett ki:
Ez a processzor család a '80-as évek elején jött ki és gyakorlatilag az első, mikrovezérlőnek nevezhető CPU architektúra volt. Néhány, a Texas által fejlesztett mikroszámítógépben is használták ezeket, de nem váltak olyan népszerűvé, mint pl. a Zilog Z80 vagy a nagy rivális MOS 6502/6510. Gyakorlatilag a PIC és ATmega mikrovezérlők ősének lehet tekinteni ezt a családot, annyira, hogy a Microchip maga is gyártotta a TMS7000 procikat saját márkajelzéssel, valamikor a '80-as évek végén. Sokat lehetne még írni erről a CPU családról, mert elég érdekes koncepciókat valósítottak meg benne, de ezt talán majd egy másik posztban teszem meg.
Visszatérve az eredeti témára, elkezdtem gondolkozni azon, hogy jó lenne valami értelmes célra felhasználni ezeket a kis CPU paneleket, így elkezdtem túrni a net-et információk után. Letöltöttem a procihoz egy csomó programozási segédletet, hardver ismertetőt, keresgéltem (nem sok sikerrel) compiler-eket, stb. Minél többet foglalkoztam a dologgal, annál több emlék tört elő a régi időkből, amikor még kis assembly programokat irkáltam az aktuális 8 bites gépemre.
Olyasmin törtem a fejem, hogyan lehetne valami más, általam jobban ismert procira írt programot átfordítani a TMS7000-re? Például MOS 6502-höz biztosan van C compiler, így ha abban írok programot, lefordítom a 6502 gépi kódjára, és a gépi utasításokat kicserélem az ekvivalens TMS7000 utasításokra, akkor viszonylag egyszerűen tudnék programokat fejleszteni rá. Vagy ha Arduino-ban programoznék, ami elég közel áll a C-hez, és az ATmega gépi kódot fordítom át a TMS-ére, akkor még jobb fejlesztő rendszert használhatnék. Szóval ezeken agyaltam, de hogy érdemben tudjak gondolkozni ezek megvalósításán, elő kellet vennem a 6502 manual-ját, hogy össze tudjam hasonlítani az utasítás készleteket, a címzés módokat, regisztereket, stb. Így azon kaptam magam, hogy pont olyasmivel foglalkozom, ami annak idején sok örömet okozott, de már nagyon régóta hanyagolom.
Egyik dolog hozta magával a másikat, ahogy újból beleástam magam a '70-es, '80-as évek számítógépeinek, CPU-inak világába. A net-en való keresgélés során a meglepetés erejével hatott, hogy egész sokan foglalkoznak még mindig - vagy újból -, ezekkel a régi, egyszerű, 8 bites szerkezetekkel. Találtam modern fejlesztő rendszereket, mint a Rainbow IDE vagy a Phoenix IDE, amelyek a TRS-80 Tandy Color Computer köré szerveződött társasághoz köthetők, de igazából cross-platform fejlesztő rendszerek, amelyekkel egy rakás régi procira, többek között a TMS7000-re is lehet programot fejleszteni Windows alatt. A Phoenix IDE így néz ki:
A TMS7000 egyik gyári prospektusában volt egy olyan rajz, ami azt ábrázolta, hogy miképpen lehet a Texas által fejlesztett és abban az időben népszerű video chippel, a TMS9918-al összekötni a TMS7000 CPU-t. Hoppá, ezek szerint tudok "egyszerűen" megjelenítést is csinálni! Na ez már döfi! Utána olvastam, hogy mi is ez a chip, és nem sokkal később már az ebay-en keresgéltem a beszerzési lehetőségek után. :-)
Végül nem a TMS9918-at, hanem ennek a Yamaha által továbbfejlesztett változatát, a V9958-at vettem meg egy komplett KIT-ben.
Mint kiderült, ezeket a video chipeket, illetve különböző variánsait, a '80-as években népszerű MSX home computer családban használták előszeretettel. Az MSX gépekről készül majd egy poszt valamikor, mert önmagukban megérnek egy kis múltidézést.
Tehát tudtam már, hogy kb. mit akarok és mivel, de a hogyan még eléggé kérdéses volt, és hihetetlen nagy szerencsével, kb. ennél a pontnál bukkantam rá az előző posztban ismertetett RC2014 rendszerre. Hirtelen összeálltak a mozaik darabok, mert azonnal láttam, hogy az RC2014 platform a rugalmassága, fejleszthetősége révén alapul szolgálhat egy olyan CPU kártyának, ami az én TMS7000-es CPU board-omat és a hozzá épített egyéb kiegészítőket hordozza majd. Akár az is megoldhatónak tűnik, hogy a Z80 CPU kártyát helyettesítsem a TMS7000-el, így elérhetővé válik az a rengeteg különböző kiegészítő, ami már létezik az RC2014 rendszerhez. Most már biztos voltam benne, hogy a lehetőségek tárházának ajtaja innentől sarkig nyitva áll, csak be kell lépni rajta. :-)
A tervem az, hogy először megépítem a Z80 alapú rendszert, amihez az alkatrészek már úton vannak. Miután ezzel kellő tapasztalatra tettem szert, megpróbálom megtervezni és elkészíteni a TMS7000 CPU boardot fogadni képes, RC2014 kompatibilis CPU kártyát, illetve a beszerzett video procira épülő megjelenítő kártyát. Egyébként a megvásárolt IC KIT-ben van egy Yamaha YM2149 hang chip is, szóval hangkártyát is tudok majd fabrikálni, ha az előző terveket megvalósítom. Remélem nem fogy el addig a kitartásom. :-)
Amint lesz fejlemény, igyekszem beszámolni róla.