Érdekességek a technika, elektronika, informatika múltjából és jelenéből

Retro-Elektro

Retro-Elektro

Retrocomputing - Az IBM OS/2 sztori - a 16 bites korszak

2022. január 20. - Big Blaster

  Az előző részben az IBM PS/2 gépek történetével foglalkoztam. Ebben a blog bejegyzésben az OS/2 operációs rendszer kerül terítékre.

Előzmények

  Ahhoz, hogy jobban el tudjuk helyezni az OS/2-t az operációs rendszerek családjában, érdemes az előzményeket is kicsit felidézni. Megint a gyökerekhez, az IBM PC-hez kell visszakanyarodnunk. Az IBM PC operációs rendszerét a PC-DOS-t a Microsoft készítette a '80-as évek elején. A fejlesztés kalandos történetére most nem térnék ki, mert ez egy külön cikket is megér. A lényeg, hogy az IBM PC-vel szervesen összefort a PC-DOS, mint operációs rendszer. A PC-DOS elkészítésénél az volt a cél, hogy az IBM PC-ben használt mikroprocesszoron, az Intel 8088-on futtatni lehessen. Ez a processszor logikus továbbfejlesztése volt a korábbi, 8 bites Intel 8080-as CPU-nak. Lényeges újításai a 16 bites regiszterek és a megnövelt címtartomány volt, de olyan nagyon jelentős fejlesztések nem történtek a 8080-as processzor szolgáltatásaihoz képest. A megnövelt címtartomány eredményeképpen az Intel 8088 már 1 Mbájt memóriát tudott kezelni, amiből az IBM PC-ben - meglehetősen leegyszerűsítve a dolgot - 640 kbájt állt rendelkezésre az alkalmazói programok részére, a felső 384 kbájt területen címezhető memória pedig a számítógép működéséhez volt szükséges. A PC megjelenésekor a 640 kbájt tekintélyes memória méret volt, 10-szer több, mint ami egy komolyabb 8 bites számítógépben rendelkezésre állt akkoriban. Viszont ahogy egyre komplexebb allamazásokat kezdtek készíteni a programozók és egyre nagyobb mennyiségű adattal dolgoztak a PC-ken, a 640 kbájt-os korlát egyre kényelmetlenebbé kezdett válni. Erre a problémára elviekben megoldást nyújtott volna az Intel új 80286-os processzora, ami akár 16 Mbájt fizikai memóriát is tudott kezelni, de volt egy kis bökkenő. Az Intel 80286 az elődjéhez képest valóban egy hihetetlenül fejlett processzor volt. Az említett 16 Mbájt memória megcímzése mellett olyan tulajdonságokkal vértezték fel, ami korábban csak a több felhasználós, egyszerre több alkalmazást futtatni képes nagyszámítógépek privilégiuma volt. A probléma viszont az volt vele, hogy maga a processzor hiába rendelkezett ilyen nagyszerű képességekkel, ezeket csak egy speciális, úgynevezett védett (protected) üzemmódban lehetett kihasználni. Kompatibilitási okokból, alapértelmezetten viszont csak a 8088-as processzor képességeivel egyenértékű, valós (real) üzemmódban működött a 80286-os is. Ez biztosította, hogy az Intel 8088-as processzorra írt alkalmazások, köztük maga a PC-DOS operációs rendszer probléma nélkül fusson a 286-oson is. A védett üzemmód nélkül a 286-os szinte csak egy nagyobb órajelű 8088-asként működött, az 1 Mbájt-os memória limitet is beleértve!

Ez annyira így volt, hogy sok 286-os alaplapon nem is volt hely 1 Mbájt-nál több memóriának. Teljesen felesleges lett volna több, hiszen a szinte egyeduralkodó DOS-os alkalmazások úgy sem tudták volna kihasználni az ennél nagyobb méretű memória előnyeit.

  Adja magát a megoldás, hogy akkor egyszerűen át kell kapcsolni a processzort a védett üzemmódba, és úgy futtatni a DOS-t, illertve az alkalmazásokat. Ez sajnos nem volt ennyire egyszerű. A védett üzzemmód teljesen eltérő filozófiával működik, nem teszi lehetővé a memória tartalom közvetlen elérését az alkalmazások számára. Ez a tulajdonság azért szükséges, mert így lehet megoldani, hogy az alkalmazások ne tudjanak az operációs rendszer, vagy egymás kód- és adat területeire mindenféle kontrol nélkül belepiszkálni, ezzel veszélyeztetve a rendszer stabilitását és az adatok integritását. Az 1 Mbájtos memória korlát átlépéséhez az kellett volna, hogy a DOS-t alkalmassá tegyék a védett üzemmódban történő működésre, viszont ez a korábbi DOS-os alkalmazásokkal való kompatibilitás megszűnését eredményezte volna. Minden programot újra kellett volna fordítani, hogy szintén képes legyen a védett üzemmódban működni. Ez túl nagy ár lett volna azért, hogy néhány memória éhes alkalmazás igényeit ki tudják elégíteni a személyi számítógépek.

Ne felejtsük el, hogy a '80-as években 640 kbájt memória nem volt még olyan vészesen kevés a legtöbb alkalmazás számára. Ráadásul a rendszer által lefoglalt felső 384 kbájtból is el lehetett csenni még valamennyit, illetve egy ügyes trükkel az 1 Mbájtos határ felett lévő 64 kilobájt méretű memória terület is elérhetővé vált a DOS-os programok számára. Az 1990-ben megjelent Windows 3.0 is elfutott még egy 8088-as processzorral és 1 Mbájt RAM-mal felszerelt számítógépen.

  Körülbelül ez volt a helyzet a '80-as évek közepén. Az újabb, 80286-os processzort használó számítógépek elviekben alkalmasak voltak akár 16 Mbájt memória kezelésére is, de a korábbi processzor generációhoz fejlesztett és nagyon elterjedt PC-DOS ezt nem tudta kihasználni. Amikor az IBM elkezdett gondolkodni a nagyszabású tervein az IBM PC megreformálásával kapcsolatban, akkor a vas mellé egy méltó operációs rendszert is megálmodtak, ez volt az OS/2.

A fejlesztés elkezdődik

  1985-ben az IBM és a Microsoft aláírt egy megállapodást a jövő operációs rendszerének közös fejlesztéséről. A Microsoft a '80-as évek elejétől az IBM stratégiai partnerének számított a PC-DOS révén, így nem volt meglepő, hogy az IBM velük képzelte el a következő generációs számítógépeik operációs rendszerének fejlesztését is. Az OS/2-t eleve úgy tervezték, hogy az Intel 80286-os processzor védett üzemmódjában mőködjön és egy időben több alkalmazást is tudjon futtatni (multitasking). Ez a DOS-os programokkal való kompatibilitás részleges feladását is jelentette, de mint a PS/2 gépcsaládról szóló cikkből kiderült, az IBM egyébként is teljesen új alapokra szándékozta helyezni a jövő Personal Computer-ét. Ebbe a koncepcióba az OS/2 teljesen beleillett. Az IBM az OS/2-t a DOS védett módban futó utódjának szánta, ami végre ki tudja használni a 80286-os processzorban lévő potenciált. Az OS/2-t a PS/2 gépcsaláddal egy időben kívánta piacra dobni az IBM, és kezdetektől fogva grafikus felhasználói interfésszel (GUI) képzelték el az új rendszert.  

Az OS/2 1.0 tut_logo.gif

  Végül az OS/2 1.0 1987 év végén jelent meg, de még csak szöveges üzemmódban tudott működni, mivel a GUI nem készült el időben. A pletykák szerint a csúszás oka az volt, hogy a Microsoft egyre inkább a saját grafikus felhasználói felületének, a Windows-nak a fejlsztésére fókuszált, így nem maradt már elég kapacitása arra, hogy az IBM-el közös rendszerük is időben elkészüljön. Annak ellenére, hogy látszólag úgy nézett ki mint a korábbi DOS operációs rendszerek, valójában nagyon is különbözött ezektől, habár azt nem lehet mondani, hogy teljesen szakított volna a múlttal. Ugyan azt a fájlrendszert használta mint a DOS, ezért szabadon lehetett fájlokat cserélni a két rendszer között. Sőtt, ugyan azon a partíción elfért egymás mellett az OS/2 és a DOS operációs rendszer amelyek között a gép indításakor lehetett választani. Ráadásul az OS/2 lehetővé tette DOS-os alkalmazások futtatását, ha azok bizonyos követelményeknek megfeleltek. Amit viszont ki kell emelni, hogy az OS/2 1.0 a Intel 80286-os processzor védett üzemmódjában futó operációs rendszer volt. Ez azt jelenti, hogy akár több alkalmazást is képes volt egy időben futtatni (multitasking), illetve eltűnt a valós módban létező 1 Mbájt-os memória korlát olyannyira, hogy az alkalmazások a 16 Mbájt fizikai memóriánál nagyságrendekkel nagyobb (elviekben akár 1 Gbájt!) virtuális memóriát is használhattak volna. Persze ez abban az időben még nem volt egy valóban kihasználható előny, mert a virtuális memóriaként funkcionáló háttértárak mérete néhányszor 10 Mbájt volt mindösszesen, de jól jelzi, hogy maga a processzor, illetve az ennek képességeit kihasználó operációs rendszer, mennyire fejlett volt a DOS-hoz képest. Viszont a védett módban való működés bizonyos korlátokat is szabott. A DOS világában az alkalmazások szabadon hozzáférhettek a BIOS vagy a DOS által biztosított alapvető szoftver funkciókhoz, de a programozó úgy is dönthetett, hogy nem használja ezeket, hanem saját maga írja meg az alapoktól az alkalmazásait. Semmilyen kötöttség nem volt e tekintetben. Az OS/2 esetében más volt a helyzet. Itt már nem lehetett közvetlenül elérni a BIOS-t, vagy direktben programozni a számítógép hardverét. Ez a tulajdonsága sokkal hasonlatosabbá tette a modern operációs rendszerekhez, mint a DOS laza, maximális szabadságot nyújtó világához. A programozónak az operációs rendszerrel együttműködve, az OS/2 által biztosított interfészeken keresztül volt lehetősége elérni a számítógép erőforrásait. Ez viszont azt is jelentette, hogy a korábban nem ilyen filozófiával készült DOS-os programok általában nem futottak az új OS alatt. Volt bizonyos kompatibilitás a DOS-al, de ez messze nem volt 100 %-os. 

  Az új operációs rendszer további érdekességei inkább azoknak fog mondani valamit, akik járatosak a programozásban, de azt gondolom, hogy érdemes ezeket is megemlíteni. Az operációs rendszer funkcióit dinamikusan csatolt függvény könyvtárak (DLL) segítségével lehetett elérni. Ilyen függvény könyvtárakat a programozók saját maguk is létre tudtak hozni a saját céljaikra. Ez manapság már nem újdonság, de 1987-ben nem volt triviális dolog. Az OS/2 többfeladatos, többszálas operációs rendszer volt, amely lehetővé tette a folyamatok közötti kommunikációt is és minden olyan funkcionalitással rendelkezett, amely egy ilyen többfeladatos környezetben szükséges, támogatta a folyamatok közötti szinkronicációt, osztott memória használatot, csöveket, várakozó sorokat és szemaforokat. Egyedül a több processzor használatának és a több felhasználó kiszolgálásának képessége hiányzott belőle. Az OS/2 1.0 Extended Edition ezeken felül fejlett hálózat kezelési megoldásokat is biztosított a nagyvállalati környezetben történő felhasználás igényeinek kielégítésére. Ezek a képességek főleg az IBM nagygépes hálózati megoldásainak- és adatbázisainak használatát tették lehetővé. 

  Az OS/2 1.0 felhasználói felülete szinte teljesen megegyezett a DOS-al. A parancsok neve és működése is lényegében azonos volt, mint amit a DOS-ban megszoktak a felhasználók. Egy átlag felhasználó számára nem volt lényeges különbség a két rendszer között, kivéve a program választót, amely lehetővé tette, hogy párhuzamosan több programot is el lehessen indítani és ezek között át lehessen váltani. Ezt a lehetőséget a szoftver fejlesztők jól tudták kamatoztatni, mert miközben egy program fordítás futott a háttérben, folytathatták a szoftver írását a szövegszerkesztőben.

os2_psel.gif

  Az OS/2 1.0 sok szempontból úttörő és nagyon modern rendszer volt. Ha visszatekintünk az operációs rendszerek fejlődésére a PC-DOS és a Windows NT közötti időszakban, akkor elmondható, hogy az OS/2 1.0 a felszínen sokkal közelebb állt a DOS-hoz, de a rendszer felépítését tekintve inkább az NT-hez hasonlított.

  Mit mondhatunk tehát az OS/2 első verziójáról? Irónikus módon egyszerre volt nagyon korszerű és ugyanakkor elavult is. A többszálúság, a multitaszking vagy a DLL-ek használata 1987-ben előremutató szoftver technológiáknak számítottak a PC világban. Az OS/2-ben megvalósított pre-emptív multitaszking képességekre a Windows felhasználóknak a Windows NT megjelenéséig kellett várni és a teljesen védett módban történő működést is csak az 1993-ban megjelent NT tudta először a Microsoft berkein belül. Ugyanakkor az OS/2 1.x verziói nem tudták kihasználni az akkor már létező 32 bites Intel 80386 processzor által nyújtott előnyöket, miközben a szintén 1987-ben megjelent Windows 2.0 386-os verziója már részlegesen tudta ezeket. Ez a fogyatékosság egyszerűen abból fakadt, hogy amikor az OS/2-t elkezdték fejleszteni, az Intel 80386 még nem volt piacon, így nem számoltak vele komolyan. Az IBM úgy tekintett a 80286 processzorra épülő rendszerekre, mint amelyek még sokáig képezhetik a PC-re alapozott informatika világának derékhadát. Amikor belekezdtek a fejlesztésbe, azzal a dilemmával néztek szembe, hogy vagy rövid időn belűl piacra dobják a 80286-ra kihegyezett operációs rendszerüket vagy kihagyják ezt a lépcsőfokot és egyből a 80386-ot célozzák meg. Az, hogy végül a 80286 mellett tették le a voksukat 1985-ben ésszerű döntésnek látszott, de egészen 1992-ig kellett várni, amíg megjelent a 32 bites OS/2 2.0, ami már ki tudta használni a 80386 képességeit. A vetálytársak hamarabb léptek. Az említett Windows/386, vagy a PC-re adaptált UNIX variánsok ezen a területen komoly előnyre tettek szert az IBM rendszerével szemben. Ez a késés valószínűleg végzetesnek bizonyult az OS/2 jövőjét illetően, persze ez csak később derült ki. 

Az OS/2 1.1

os211_desk.gif

  Az 1988-ban kiadott 1.1-es verzió újdonsága a régóta várt grafikus felhasználói interfész a Presentation Manager volt. Ez megjelenésében a Windows 2.0-hoz hasonlított, ami nem meglepő a Microsoft-al közös fejlesztés miatt. A látszólagos hasonlóság ellenére voltak lényeges különbségek a Microsoft Windows-hoz képest, de ezek inkább technikai jellegűek voltak. Minden esetre ezek a különbségek nem tették lehetővé, hogy egy Windows-os programot változtatás nélkül futtatni lehessen az OS/2 alatt is. Történtek még kisebb fejlesztések a hálózatos funkciók és a nyomtatás kezelés területén is. 

os211_fman.gif

  A grafikus felhasználói felület bevezetése nem volt egy diadalmenet. Hiába volt meg a keretrendszer, ha nem voltak alkalmazások amelyek ennek képességeit kihasználták volna. A Presentation Manager önmagában, alkalmazások nélkül nem volt egy nélkülözhetetlen dolog. Az, hogy például több konzol ablakot is el lehetett indítani benne, bizonyos előnnyel járt, de nem feltétlenül volt erre mindenkinek szüksége. Az OS/2-höz fejlesztett alkalmazások viszont elég lassan akartak megjelenni. Ennek több oka is volt. A Presentation Manager-ben működő alkalmazások fejlesztéséhez más gondolkodás kellett, mint egy DOS-os programhoz, ezért a meglévő programok nem voltak egyszerűen átírhatók az új operációs rendszerhez. A szoftver fejlesztő eszközök is lassan érkeztek és drágák voltak.

xl2_about.gif

  Az első, OS/2-re kiadott alkalmazások között megtaláljuk a Microsoft Excel-t és az Aldus PageMaker-t, de a hasonló irodai, kiadvány- és szövegszerkesztő programok terjedését az is nehezítette, hogy csak kevés nyomtatóhoz, vagy nagy felbontású grafikus kijelzőhöz volt driver az OS/2 alatt. Az illesztőprogramok fejlesztői hezitáltak, mert nem látszott kifizetődőnek egy olyan platformra fejleszteni, ahol csak kevés alkalmazás van, viszont az alkalmazás fejlesztők sem törték magukat, mert nem voltak eszköz meghajtók, amik az alkalmazásaikat kiszolgálták volna. Igazi ördögi kör. Az OS/2 1.1 végül elég rövid életű lett. Mire kezdett használhatóvá válni, addigra megjelent az utódja, az 1.2-es verzió így az 1.1-et a továbbiakban a szoftver fejlesztőknek nem volt értelme tovább támogatni.

Az OS/2 1.2

os212_desk.gif

  Az OS/2 1.2 fejlesztése arra az időszakra esett, amikor az IBM és a Microsoft kapcsolata kezdett megromlani. 1988-ban a Microsoft elkezdett dolgozni az NT (New Technology) operációs rendszeren, amit eredetileg NT OS/2 néven emlegettek, de ezzel párhuzamosan folyamatban volt az OS/2 386 fejlesztése is. Az OS/2 1.1 eladási mutatói várakozáson aluliak lettek, és ez új helyzetet teremtett. Eredetileg még a Microsoft is az OS/2-t favorizálta a Windows ellenében, de a rossz eladási adatok a helyzet átgondolására késztették őket. Az IBM-nek viszont semmi érdeke nem fűződött a Windows-hoz, ezért ők továbbra is az OS/2-t szekerét tolták volna. A körvonalozódó érdekellentétek ellenére mindkét cég tovább folytatta az OS/2 közös fejesztését.

  Az 1989 végén kiadott 1.2-es verzió tulajdonképpen az volt, ami az 1.0 kellett volna legyen, mert ebben a verzióban sikerült végre megvalósítani azoknak a funkcióknak a nagy részét, amelyeket már a kezdetektől ígértek. Fejlesztettek a grafikus felhasználói felületen, ami így már a Windows 3.0-hoz volt hasonló. Megoldották az úgynevezett telepíthető fájlrendszerek használatát, amelyek közül a HPFS-t (High Performance File System) szállították alapértelmezetten az OS/2-vel.

  A HPFS számos tulajdonságban messze jobb volt, mint a korábban használt DOS-os FAT fájlrendszer. Az egyik leglényegesebb, hogy támogatta a hosszú fájlnevek használatát, egészen 255 karakter hosszúságig. A fájlokhoz vagy könyvtárakhoz társítani lehetett egy maximum 64 kbájtos Extended Attributum fájlt, amiben pl. a programhoz társított ikont, program leírást vagy egyéb információkat lehetett tárolni. A HPFS lehetővő tette az akár 64 Gbájt méretű partíciók használatát is, habár ez az akkori merevlemezek kapacitását nagyságrendekkel haladta meg, így sokáig inkább csak elvi lehetőség volt, mint gyakorlati előny. Ezeken felül ez a fájlrendszer sokkal kevésbé volt hajlamos a töredezettségre és a sérülések ellen is sokkal jobban védett volt mint a FAT fájlrendszer.

  A Windows 3.0-val összehasonlítva szembeötlő, hogy mennyire hasonlított a két rendszer megjelenése. Az ikonok, betű típusok, színsémák nagyon hasonlóak voltak. Viszont a Windows csak egy szép ruha volt az öreg és primitív  DOS-ra erőszakolva, miközben az OS/2 egy valódi védett módú operációs rendszer volt, amely arra is képes, hogy egy különálló feladatként akár a Windows-t is futtassa! Ellenben a Windows-hoz sokkal több eszközmeghajtó létezett és számos kisalkalmazás járt hozzá. Az OS/2 egyszerű, üzleti megjelenése miatt is lehetett az, hogy a Windows a végfelhasználók körében népszerűbbé vált.

Az OS/2 1.3

os2_about.gif

  A Windows 3.0 sikere volt az utolsó csapás az IBM-Microsoft partnerségre. Az 1980-as évek közepén a Microsoft vezetői tudták, hogy szükségük van az IBM-re, legalábbis nem tudnának versenyezni egy másik, az IBM által felkarolt vállalat ellen. 1990-ben azonban már elég erősnek érezték magukat ahhoz, hogy önállóan folytassák. Ennek az lett az eredménye, hogy a Microsoft a Windows 3.0-ra és az NT-re koncentrált, míg az IBM folytatta az OS/2 fejlesztését. A Microsoft-nak még mindig számos OS/2-vel kapcsolatos projektje volt, de az üzleti stratégia határozottan a Windows köré szerveződött.

  Az OS/2 1.3-at elsősorban az IBM fejlesztette ki és 1990 novemberében jelent meg. Jelentősebb újdonságok nem voltak benne, részben azért, mert már az OS/2 2.0 ott volt a láthatáron. A kódot optimalizálták és csökkentették a méretét, ezzel csökkentve a memóriaigényt és növelve a teljesítményt. Az új tulajdonságok között szerepelt még a REXX szkriptnyelv támogatása, az Adobe Type Manager (ATM) és a továbbfejlesztett nyomtatási alrendszer. Az IBM tovább folytatta az OS/2 eladását a PS/2 gépekkel, lehetőleg nagy tételben, vállalati ügyfeleknek, így az üzlet a szokásos módon folyt tovább.

  A Microsoft táborában a dolgok sokkal érdekesebben zajlottak. A hosszú távú stratégia egyértelműen a Windows operációs rendszerre épült, de ez komoly rövid távú nehézségeket okozott. A Microsoft-nak szüksége volt egy platformra a szerver oldali termékeikhez, a LAN Manager-hez és az SQL Server-hez. A DOS nyilvánvalóan nem volt alkalmas erre a célra, és a Windows NT még messze volt, mivel majd csak 1993 közepén jelent meg. A köztes időben a Microsoft-nak szüksége volt az OS/2-re, annak ellenére, hogy ez most „ellenséges” terméknek számított. A Tiger kódnéven ismert projekt az OS/2 1.3 Microsoft verziója volt, amelyet a Microsoft közvetlenül értékesített, nem pedig OEM csatornákon keresztül, ahogyan például az MS-DOS korábbi kiadásai esetében történt. Mivel a Microsoft OS/2 1.3-at elsősorban a LAN Manager szerver platformjának szánták, a Microsoft kifejlesztett egy új lemezmeghajtó architektúrát, ami megkönnyítette a korszerű lemezvezérlők támogatását. Ez volt az egyetlen jelentős különbség az OS/2 1.3 IBM és Microsoft féle kiadásai között.

  A jelentősebb szoftverházak lassan adták ki a főbb alkalmazásaik OS/2 alatt futó verzióit. Részben azért, mert lassan ismerték fel a GUI-környezetek jelentőségét, másrészt a Microsoft hibás fejlesztési koncepciója miatt, mivel az OS/2 Presentation Manager-e csak látszólag hasonlított a Windows-hoz, de technikailag nagyon különbözőek voltak. Ennek eredményeként a szoftver fejlesztők akiknek már voltak Windows-os alkalmazásaik, nem voltak igazán érdekeltek, hogy ezeket adaptálják az OS/2-es környezetbe. Volt azonban egy vállalat, amely meglehetősen sokféle OS/2 alkalmazást kínált: a Microsoft. Az Excel-nek és a Word-nek is volt OS/2 verziója. A Microsoft fejlesztőeszközeinek szintén jó volt az OS/2 támogatása, és a Microsoft szoftver fejlesztői közül is sokan használták az OS/2-t. Ironikus módon még az NT fejlesztési munkáit is az OS/2 alatt végezték.

  A DOS-al való korlátozott kompatibilitása és a Presentation Manager alatt használható alkalmazások hiánya miatt az OS/2 1.x verziói nem voltak vonzók általános asztali használatra szánt operációs rendszerként, viszont számos kulcsrakész, szerver-kliens architektúrájú informatikai megoldásban használták, mivel a DOS-nál jóval robosztusabb platformot biztosított a kliens oldali szoftverek futtatásához.

  A következő részben a 32 bites OS/2 verziók kerülnek terítékre.

Retrocomputing - Egy darabka történelem 2.

img_20220112_210219.jpg

  Időnként egész érdekes helyekről és körülmények között kerülnek elő régi számítógépes relikviák. A poszt témáját adó szerény kinézetű áramköri kártya is ezek sorába tartozik. Egy kollégám sajnálatosan fiatalon elhunyt rokonának hagyatékát néztük át és ennek során került elő ez a ránézésre is ósdi alkatrész. Retro számítástechnikai lomok felismeréséhez adaptálódott szememmel kapásból kiszúrtam, hogy ez valószínűleg valami régi számítógép része lehetett, így elkértem, mielőtt a lomtalanítás áldozatává vált volna.

  Ami már a felületes szemrevételezés során kiderült, hogy ez egy 64 kbájtos memória bővítő kártya, amelyet a Datapoint Inc. (USA) készített, a dátum bélyegző szerint 1983-ban. A Datapoint név ismerősen csengett, de nem tudtam azonnal a helyére tenni, hogy hol találkoztam már ezzel a névvel. Az biztos volt, hogy ez nem egy PC alkatrész, hanem valami egzotikusabb szerkezetben szolgálhatott. Hogy mi lehetett ez, azt egyelőre még homály fedte.

  Már a hazaérkezés után, nyugodt körülmények között kezdetét vette az ilyenkor szokásos nyomozás. Amit tehet ilyenkor az ember, hogy a kártyán található feliratokra, azonosítókra rákeres a Google-ban. Szerencsére elég hamar volt releváns találat. Egy aukciós oldalon hirdetett valaki egy ugyan ilyen kártyát, de onnét sem derült ki, hogy konkrétan milyen szerkezet részegysége ez. A Datapoint név viszont közelebb vitt a megoldáshoz. Rájöttem, hogy a mikroprocesszorok történelmével kapcsolatos információ gyűjtés kapcsán találkoztam már vele. Ebben az írásomban érintőlegesen szó volt róluk: Retrocomputing - A múlt velünk élő örökségei. A Datapoint - vagy korábbi nevén CTC - cég számítógép terminál gyártó specialista volt az informatika korának hajnalán, és elévülhetetlen érdemei vannak a számítástechnika fejlődésének azon útján, ami elvezetett az IBM PC kompatibilis személyi számítógépek kialakulásához. Következzék tehát a történet amely során visszautazunk az időben, hogy szemtanúi lehessünk egy új jövevény, a személyi számítógép megszületésének történelmi homályba vesző kezdeteinek. Közben arra is fény derül, hogy milyen szerkezet "agya" volt ez a bővítő kártya.

  Egészen a '60-as évekbe kell visszautaznunk, az informatika hőskorába. Ebben az időben nagyon kevés, nagyon nagy és nagyon drága számítógép volt még. Ezek az ős számítógépek hatalmas légkondicionált géptermekben, mint valami modern szentélyben terpeszkedtek el, ahová földi halandó a lábát sem tehette be.

140509-ibm-360-mn-1120.jpg

  A felhasználók a számítógépekkel úgynevezett végberendezéseken, idegen szóval terminálokon keresztül tudtak kommunikálni. Ezek a terminálok nagy távolságra is lehettek a számítógéptől, és hosszú kommunikációs kábeleken, vagy akár telefon vonalon keresztül kapcsolódtak a számítógépekhez. A korai terminálok úgy néztek ki, mintha egy mechanikus írógép és egy nyomtató házasságából születtek volna. A kezelő az írógép billentyűzeten beírta amit közölni akart a géppel, a gép pedig a papírra nyomtatta a választ.

teletype33.PNG

  Az egyik problémája ezeknek a szerkezeteknek az volt, hogy a nyomtatóművük meglehetősen hangos volt. Egy olyan teremben, ahol több ilyen terminál is működött, elég nagy volt a hangzavar. Ezen a problémán kívánt segíteni az 1968-ban alapított, beszédes nevű Computer Terminal Company, röviden CTC nevű vállalkozás, akik egy csendes működésű, katódsugár csöves képernyővel ellátott terminállal szerettek volna némi profitra szert tenni. Az első terméküket 1969-ben dobták piacra Datapoint 3300 néven és meglehetősen sikeressé vált.

  A következő, Datapoint 2200 névre keresztelt termináljuk volt az a modell, ami történelmi jelentőségre tett szert. Ugyanis a terv az volt, hogy ez a szerkezet egy univerzális terminál legyen, amibe mágnesszalagról lehet betölteni azt a programot, ami egy adott típusú terminál emulációjához szükséges. Ez már önmagában is érdekes megoldás lett volna, de ők még tovább mentek az innovációban. A korábbi Datapoint 3300 ugyanis többszáz diszkrét integrált áramkörből épült fel, amelyek jelentős hőt fejlesztettek, így melegedési problémák jelentkeztek a használata során. Ezt kiküszöbölendő, a CTC-nek az volt a terve, hogy azokat az áramköri funkciókat, melyeket eddig több tucat egyedi TTL integrált áramkörrel valósítottak meg, egy darab szilícium lapkára, chip-re integrálnák. Mivel a CTC nem integrált áramkörök fejlesztésével és gyártással foglalkozott, ezért megkerestek két nagy nevű integrált áramkör gyártót, az Intel-t és a Texas Instruments-t az ötletükkel. Mindkét cég nekilátott annak a fejlesztési munkának, amilyet korábban senki sem csinált, gyakorlatilag egy számítógép központi egységét kellett néhányszor tíz négyzetmilliméter felületű szilícium lapkán létrehozniuk. Ennek a feladatnak a megvalósítása számos korábban nem ismert problémával járt, így nem csoda, hogy a szűk határidőt végül egyik cégnek sem sikerült tartani. A CTC-t sürgette a határidő, így kénytelenek voltak lemondani a tervükről, és végül az új programozható termináljukat, a DataPoint 2200-at is diszkrét integrált áramkörökből valósították meg.

  Az 1971-ben piacra kerülő Datapoint 2200 mégis egy jelentős mérföldkő volt, mivel az eredeti funkcióján túlmutatóan, tulajdonképpen az első nagy sorozatban gyártott személyi számítógépnek tekinthető, tíz évvel megelőzve az IBM PC-t. Másodsorban pedig nagymértékben hozzájárult az Intel x86 mikroprocesszor architektúra kialakulásához. Ennek megértéséhez tudni kell, hogy ugyan az Intel nem tudta befejezni határidőre a CTC felkérésének eleget tévő integrált áramkör megalkotását, de a fejlesztés eredménye - ugyan némi késéssel - mégis testet öltött, méghozzá az Intel 8008 integrált áramkör képében, ami a világ első 8 bites mikroprocesszoraként híresült el. Az Intel 8008 a CTC tervei alapján készült. Az architektúra, az utasítás készlet a CTC mérnökeinek fejéből pattant ki, az Intel "csak" szilíciumba véste a terveket. Az Intel 8008-at rövidesen követte a többi sikeres és közismert Intel 8 bites mikroprocesszor, a 8080 és a 8085. Majd a 16 bites 8086 és 8088. Ez utóbbi vált talán a legismertebbé az IBM PC révén. A 8080 nem volt kód szinten kompatibilis a 8008-al, de nagyon sok hasonlóság volt a két mikroprocesszor között. Tulajdonképpen a 8008 logikus továbbfejlesztésnek lehetett tekinteni a 8080-as CPU-t. A későbbi Intel processzorok, mint a 8085 és a 8086 szintén erősen építettek az elődökre, így egyszerűbb volt a korábbi  processzorokra írt programokat átfordítani az újakra. Ez a folytatólagos kompatibilitás a mai napig tetten érhető az x86 utasításkészlettel rendelkező processzorokban, amelyek valamennyien a CTC mérnökei által, a Datapoint 2200 programozható terminál tervezése során megálmodott "géneket" hordoznak magukban. Azt hiszem, hogy ez egy szép példája annak, hogy a múlt hogyan képes alakítani a jelent és a jövőt.

  Ez után a kis történeti kitekintést követően térjünk vissza a konkrét áramköri lapra. Azt hiszem nem lesz nehéz kitalálni, hogy mi lehet a kapcsolata az elmondottakhoz. Azt már az elején tisztáznom kell, hogy sajnos ez nem egy Datapoint 2200 alkatrésze. Az 1984-es gyártási dátum is gyanút ébreszthet, hiszen ez több mint 10 évvel későbbi, mint amikor a Datapoint 2200-at gyártani kezdték. Nem valószínű, hogy egy ilyen gyorsan fejlődő iparágban ilyen hosszú életű lenne egy termék. A megfejtés az, hogy a Datapoint 2200-at tovább fejlesztették és az idők során több hasonló terminál követte a gyártmány palettán és ezeket bizony még a '80-as években is gyártották. Az ominózus kártyát, ami hozzám került nem sikerült egyértelműen hozzárendelni egy adott modellhez, de valószínűsíthető, hogy egy Datapoint 6010 memória kártyája lehetett. Ez azért valószínű, mert ennek volt 64 kbájt memóriája. Érdekesség, hogy a Datapoint terminálok a '70-es években is megmaradtak a diszkrét integrált áramkörökből megvalósított felépítésnél az első kudarccal végződött kísérlet után nem erőltették tovább a mikroprocesszor alkalmazását a termékeikben.

  A CTC a terminálok sikerességét meglovagolva időközben nevet váltott és már nem csak a termináljuk márka neve volt Datapoint, hanem az egész céget átkeresztelték. A '80-as években az eladások drasztikusan csökkenni kezdtek, hiszen az IBM PC és klónjai letarolták a piacot, ezzel a Datapoint csillaga is leáldozott. A cég az eredeti formában 2000-ig létezett, de végül nem tudták elkerülni a csődöt. Sajnos ők is arra a sorsra jutottak, mint több más nagy múltú vállalat, akik a számítástechnika bölcsője mellett bábáskodtak, de nem tudtak alkalmazkodni a személyi számítógépek térnyerésével megváltozó piaci körülményekhez, így mára csak a hagyatékukban élnek tovább.

Retrocomputing - Az IBM PS/2 sztori

ibm_ps2.png

  Korábban leírtam a kalandjaimat egy IBM PS/2 Model 50 számítógép felélesztésével kapcsolatban, de nem ejtettem túl sok szót arról, hogy mi is valójában ez a gépcsalád? Milyen viszonyban van a mindenki által ismert PC-vel? Honnét jöttek és mi lett velük? Ezt az adósságomat szeretném most törleszteni. Nem célom, hogy minden részletre kiterjedő műszaki leírást adjak, mert ezek máshol megtalálhatók az interneten. Szóval ami most következik, az inkább sztorizgatós és szubjektív feldolgozása az IBM PS/2 gépek történetének. Nyilván én is az interneten elérhető forrás anyagokból dolgoztam, de próbáltam azokat az információkat kiemelni, ami számomra fontos volt, és/vagy véleményem szerint közérdeklődésre tarthat számot. 

Előzmények: az IBM PC

imb_pc-img_7271.jpg

  A történet fonalát kicsit korábban vesszük fel, valamikor a '80-as évek elején. Azt nagyjából mindenki tudja, aki kicsit  is érdeklődik a számítástechnika iránt, hogy az IBM 1981 augusztusában valami olyan dolgot tett le az asztalra, ami alapvetően meghatározta azt a készüléket, amit az azóta eltelt 40 évben személyi számítógép alatt értettünk, és egyelőre nem is látszik, hogy a történet a közeljövőben véget akarna érni. A PC jött, látott, győzött és valószínűleg még sokáig velünk marad. Az IBM PC (Personal Computer - Személyi Számítógép) a műszaki megoldásait tekintve nem volt valami elképzelhetetlenül forradalmi dolog. Alapvetően polcról megvehető (off-the-shelf), bárki álltal elérhető alkatrészekből épült fel. Egyszerűen jókor, jó helyen állt össze az a hardver és szoftver csomag, ami rövid időn belül meghatározó architektúrává tudott válni a '80-as évek forrongó, kísérletező, út kereső számítógépes világában. Ehhez több tényező is hozzájárult, de véleményem szerint az egyik legfontosabb az volt, hogy az IBM PC alapvetően egy nyitott architektúra volt. Eleve úgy tervezték meg, hogy az igényekhez és lehetőségekhez rugalmasan alakítható, bővíthető, testre szabható legyen. Másrészt az IBM nem kért szabadalmi oltalmat a gépben alkalmazott megoldásokra. A műszaki dokumentáció is bárki számára rendelkezésre állt. Egyedül a hardvert közvetlenül működtető programkódot tartalmazó BIOS volt jogvédett szellemi produktum. Ez a nyitottság ágyazott meg a rövid időn belül megjelenő konkurens számítógép gyártóknak, mint például a Compaq vagy még inkább az ázsiai klón gyártóknak.

Érdekes belegondolni, hogy a modern fogyasztói elektronikai termékek közül egyedül a PC kompatibilis számítógép az, amit a mai napig megvásárolhatunk alkatrészenként, amelyeket aztán mi magunk szerelünk össze. Ez a filozófia az IBM PC hagyatéka és egy igazi unikum a mai világban. 

  Viszont pont ez a nyitottság és az ennek nyomán megjelenő számtalan konkurens gyártó okozott problémát az IBM számára, aki egyre nagyobb részt vesztett el a PC eladás piacából. Azért, hogy visszanyerhessék a dominanciájukat, valami nagyon ütős dologgal kellett volna előrukkolniuk, mert hiába fejlesztették tovább az eredeti koncepciót, és jelentek meg sorra az XT majd AT kategóriájú gépeikkel, amelyekkel folyamatosan az élen tudtak maradni, a konkurensek ott loholtak a nyakukban és rövid idő alatt beérték őket. Aztán az a csúfság is megtörtént, hogy az Intel új 80386-os processzorával nem az IBM, hanem egy konkurens gyártó épített először PC kompatibilis számítógépet.

Az új remény: az IBM PS/2

  A kék óriás agytrösztje megszülte a megoldást egy olyan számítógép család formájában, amely szoftver szinten kompatibilis maradt az eredeti IBM PC-vel, de a hardver forradalmian más volt. Egy teljesen új alapokra épített PC-t álmodtak meg. Ez lett az IBM Personal System/2 vagy röviden PS/2 gépcsalád, amely 1987-ben debütált. A cél az volt az IBM számára, hogy visszaszerezzék a vezető szerepüket a PC-k eladása terén, de nem akarták elkövetni újból azt a hibát, hogy hagyják a konkurenciát a fejükre nőni. Ennek a koncepciónak a jegyében egy olyan gépet terveztek, amely hardver szinten részben szakított a hagyományos PC gépekkel való kompatibilitással, rengetek innovatív megoldást tartalmazott, de legfőbbképpen nem volt szabadon és gátlástalanul másolható a konkurencia által. Az IBM jogdíjat kért azoktól, akik az új gépcsaládban alkalmazott technológiákkal kompatibilis hardvert, például bővítő kártyákat akartak gyártani. Az új architektúrához új operációs rendszer is dukált. Ez lett az OS/2, amiről egy külön blog bejegyzésben fogok részletesebben írni.

  Azt gondolom, hogy a PS/2 technikája vitán felül nagyon fejlett volt és sok olyan megoldást sorakoztatott fel, amelyek újból hosszú időre kijelölték az utat az ipar szereplői számára és kvázi ipari szabvánnyá váltak. Viszont összességében mint koncepció nem váltotta be a hozzá fűzött reményeket. Ennek okairól kicsit később ejtek több szót, de előtte nézzük a pozitívumokat.

  A Monthy Python örök becsű filmjében elhangzó "Mit adtak nekünk a rómaiak?" kérdést kicsavarva megkérdezhetjük, hogy mit adott nekünk az IBM PS/2? Válaszként álljon itt ez a rövid összefoglaló.

Micro Channel architektúra 

mca_2.jpg

  Az egész PS/2 koncepció egyek lényeges elemét a Micro Channel Architecture vagy röviden MCA jelentette. Ez a számítógép processzora és a bővítő kártyák vagy éppen az alaplapra integrált periféria illesztő áramkörök közötti kommunikációt megvalósító buszrendszer volt. Bizonyos megoldásai az IBM nagyszámítógépes rendszereiből szivárogtak le. Az eredeti PC-kben lévő ISA buszrendszert hivatott ki- és leváltani a PS/2 gépekben és az IBM reményei szerint majd a többi gyártó gépeiben is, akik kifizetik a jogdíjakat. Megjegyzendő, hogy a belépő szintű PS/2 gépek továbbra is ISA busszal készültek, csak a felső/középső kategória kiváltsága volt az MCA technológia.

  Az MCA minden tekintetben jobb volt, mint az ISA busz. Fizikai megvalósítását, funkcionalitását és teljesítményét tekintve az évekkel később megjelenő PCI buszra hasonlított, de bizonyos megoldásai csak a PCI-X szabványban jelentek meg. Már akkor biztosított egyfajta "plug & play" lehetőséget, amikor ezt a fogalmat még ki sem találták.

PS/2 csatlakozós egér és billentyűzet

ps2-ports.jpg

  Később az átlag PC-k alaptartozékává váló, kisebb átmérőjű, kör alakú egér és billentyűzet csatlakozó is ezeken a gépeken jelent meg először. Nyilván ezért ismeri ezeket mindenki PS/2 csatlakozóként. A PS/2 gépek alaplapján két darab ilyen csatlakozó volt, egy a billentyűzetnek és egy az egérnek, mivel az egér ezekhez a gépekhez - az Apple Machintos-hoz hasonlóan - alaptartozék volt. Korábban, és még egészen a '90-es évek második feléig a mezei PC-ken az 5 érintkezős DIN billentyűzet csatlakozó volt a divat és az alaplapokon nem volt egér csatlakoztatási lehetőség. Aki egeret is szeretett volna használni, az a bővítő kártyán lévő soros portba dughatta az egér farkincáját. Később minden alaplap sztenderd tartozéka lett a PS/2 billentyűzet és egér csatlakozó egészen a közelmúltig, amikor átadták a helyüket az USB portoknak.

VGA videó szabvány

vga_connector.jpg

  A PS/2 gépek alap videó adaptere a Video Graphics Array, rövidítve VGA volt. Ez 640x480 képpontos felbontást biztosított 16 színnel, amit egy több mint 260 ezer színű palettáról lehetett kiválasztani. Támogatta a korábbi videó szabványokat is, pl. a 320x200 pontos felbontást (CGA), de nem 4, hanem 256 színnel! Ezzel a felbontással és színbőséggel maga mögé utasította az akkoriban legjobbnak számító home computer-eket is. Azt gondolom, hogy ez volt az a fejlesztés, amivel a PC a játékos kedvű emberek számára is egy szóba jöhető alternatívává vált. A VGA olyan szinten lett elpusztíthatatlan ipari szabvány, hogy a legújabb videókártyák is, a mai napig támogatják ezt a megjelenítési módot. Azért ez nem rossz teljesítmény egy több mint 30 éves számítógépes technológiától.

3.5"-os, 1.44 MB-os floppy meghajtó

floppy_drive.jpg

  Ugyan az Apple alkalmazta a Machintos gépekben először a 3.5" átmérőjű floppy lemezekkel működő meghajtókat, de a PC-s világban a PS/2 révén jelentek meg ezek az eszközök. Létezett belőlük 720 kB kapacitású is, de elterjedté az 1.44 MB-os HD lemezekkel működő meghajtók váltak. Gyakorlatilag minden PC alaptartozéka lett a kisfloppy rövid időn belül. Az USB pen-drájvok elterjedéséig ezek jelentették az univerzálisan használható és olcsó adattárolót. Mára már teljesen kimentek a divatból, de kb. 25 éven keresztül nem volt számítógép 3.5"-os floppy meghajtó nélkül.

72 érintkezős SIMM RAM modul

simm_ram.jpg

  Nem tűnik olyan fontos fejlesztésnek, de mégis egy évtizedre meghatározta a PC-kben használt memória modulok kialakítását ez az innováció, amit szintén a IBM PS/2 gépekben használtak először. A korábbi, rövidebb, 31 érintkezős modulok csak 8 bitesek voltak, így 16 vagy 32 bites rendszerekben csak párban, vagy négyesével lehetett őket használni és a maximális memória kapacitásuk is korlátozott volt. Ezeken a problémákon segített a 72 érintkezős, 32 bites memória modul, amit rövidesen átvett a többi PC gyártó is és egészen az SDRAM modulok megjelenéséig minden PC-ben ilyeneket használtak.

Egyéb innovációk

ps2_inside.jpg

  A PS/2-ben debütált nagy sebességű soros port tette lehetővé, hogy a kilencvenes évek elején már szárnyait bontogató Internet-et vagy az akkor már népszerű BBS rendszereket betárcsázós, modemes hozzáféréssel, viszonylag jó sebességgel lehessen használni.

  Emlékeim szerint a PS/2 gépekben láttam először az SMD (felület szerelt) technológia széles körű felhasználását a számítógép iparban. A home computer-ekben jellemzően olcsóbb, a kommersz szórakoztató elektronika színvonalát idéző nyomtatott áramköri lapokat használtak, de a '90-es évek közepéig az átlag taiwani alaplapok, bővítő kártyák is még nagyon sok furat szerelt alkatrészt tartalmaztak. Az SMD technológia nem egyértelmű előny a felhasználó szempontjából, de jelzi a PS/2 gépcsalád technikai fejlettségét, főleg az ázsiai konkurenciához képest.

  Az alaplapra integrált periféria kezelők is ennél a géptípusnál jelentek meg a PC világban. Egy hagyományos ISA buszos alaplapon csak a billentyűzet illesztő volt megtalálható, ezen kívül semmi. A soros/párhuzamos portot, floppy és HDD vezérlőt, videó adaptert mind külön kellett megvenni és beszerelni a gépbe. Ennek volt előnye is, mert nagyobb rugalmasságot tett lehetővé, de más szempontból sok kényelmetlenséggel járt. Aki kicsit idősebb, még biztosan emlékszik arra, amikor az ISA kártyákon jumper-ekkel kellett beállítani a címeket, megszakításokat. Aztán keresgélni, hogy miért nem működnek a kártyák az ütközések miatt. :-) A PS/2 szakított ezzel, és az alaplapon megtalálható volt az említett PS/2 csatlakozókon kívül egy soros port, egy párhuzamos port, a VGA videó adapter, floppy vezérlő és HDD vezérlő is. Bővítő kártyák bedugdosása nélkül is egy használatra kész, komplett gépet kapott az ember, amiben még voltak MCA bővítő slot-ok is, ha valakinek szüksége volt valami egyéb bővítésre.

  Rám nagyon mély benyomást tett, hogy a PS/2 gépeken mennyire látszott a jól megtervezettség. Az átlag PC-k belseje úgy nézett ki, mint egy vegyes kereskedés. Voltak elterjedt megoldások és szabványos méretek, de ahány gyártó, annyi féle-fajta alkatrészből voltak összerakva. A kábelek elvezetése egyik gépben sem volt kulturáltan megoldva. Az alaplap, floppy és vinyó rögzítése az ezer kis csavarral, a fémépítős korszakot idézte. Az egymással fizikai kialakítás szempontjából nem összeillő alkatrészek (például az alaplap felé benyúló HDD, ami miatt kínkeservesen lehetett csatlakoztatni a kábeleket, stb.) állandó szívással jártak, ha valamit mókolni kellett a gépben. Megvolt a maga bája ennek is, de ehhez képest a PS/2 olyan volt mint egy Forma 1-es versanyautó a Ladák között. A főbb alkatrészeket szerszám és csavarozás nélkül lehetett ki- és beszerelni. Az össze-vissza tekergő kábelek helyett közvetlenül egymáshoz kapcsolódó érintkezőkkel volt megtervezve a gép. Egy komplett szét- és összeszerelés csak néhány percet vett igénybe. Igazából azóta sem láttam ennél jobban megtervezett számítógépet. Ez a teljesen kábelezésmentes szerelés a kompakt, asztali kivitelre volt jellemző. Az álló torony házas gépek nem voltak ennyire kulturált kinézetűek belülről.

A bukás

  Azt gondolom, hogy a fenti felsorolásból is látszik, hogy magával a vassal nem volt semmi probléma. Az IBM megint elő tudott húzni valami olyat a kalapból, amivel évekre meghatározta a számítógép ipar fejlődését. Akkor mondhatjuk, hogy óriási siker lett a PS/2? Erre sajnos határozott nemmel kell válaszolni. Összesen körülbelül 6 évet élt ez a gépcsalád. 1993-ban befejezte az IBM a gyártásukat. Az utolsó modellek megkapták még a 486-os processzort, esetleg a Pentium Overdrive-al még lehetett őket egy kicsit tuningolni, de ezzel véget is ért a karrierjük. Az IBM nem erőltette tovább az architektúra életben tartását. Ők is beálltak, az egyébként saját maguk által megteremtett "szabvány" PC-k gyártói közé, de a PS/2 gépekkel együtt a befolyásuk is megszűnt az iparág jövőjét illetően. 

  A sikertelenség okai sokrétűek, így csak egy rövid és némiképp szubjektív felsorolásra vállalkozom.

  • Az IBM a PS/2-vel szakított azzal a nyílt koncepcióval, ami az eredeti IBM PC sikeréhez olyan nagy mértékben hozzájárult. A licensz díjakat sokan nem akarták kifizetni, így lényegesen kevesebb gyártó fejlesztett ezekhez a gépekhez kiegészítőket. Nem voltak hozzá olcsó, keleti utángyártott alkatrészek sem.
  • Az MCA busz nem volt semmivel kompatibilis, ezért eleinte alig voltak hozzá való bővítő kártyák. A licensz díjak miatt eleve drágábbak voltak ezek, mint az ISA buszos kártyák.
  • Drága volt a konkurenciához, pláne az ázsiai gyártókhoz képest, ezért jóformán csak az üzleti szegmensben tudott sikereket elérni. Pedig a '90-es évek elejétől a háztartások is elkezdtek egyre nagyobb számban átállni a home computerek-ről a PC-kre. Na ezen a piacon a PS/2-nek nem termett túl sok babér. Ugyan volt egy próbálkozás az olcsó, otthoni PS/2 megalkotására, ami a PS/1 nevet kapta, de ezzel nem tudták megváltani a világot.
  • Nem volt igazán jó az ár/teljesítmény aránya. Nyilván ez a relatív drágaság miatt volt így. Sokkal olcsóbban lehetett megvenni ezt a teljesítményt hagyományos PC alkatrészekből épített gépek formájában. 
  • Ugyan az induláskor nagyon korszerűnek számított, de pár éven belül a konkurencia is lépett és megalkottak olyan gyártó független szabványokat mint az EISA, VLB, PCI. Ezek teljesítményben, funkcionalitásban rövidesen utolérték vagy túl is szárnyalták az MCA alapú gépeket, viszont nem kellett utánuk licensz díjat fizetni (vagy csak sokkal kevesebbet). 
  • Gondolom nem kell nagyon magyarázni, hogy hiába van egy briliáns hardver, ha nincs hozzá való szoftver. Ez a PS/2 gépekre is igaznak bizonyult. Az IBM terveiben az új gépcsaládhoz egy új operációs rendszer is társult, amit a Microsoft-al közösen kezdtek el fejleszteni. A Microsoft viszont nem volt annyira érdekelt abban, hogy az OS/2 - mert erre keresztelték el az új OS-t - időben és a beígért formában elkészüljön. A PS/2 gépek 1987-es megjelenésekor csak egy fapados, karakteres módban működő verzió volt elérhető belőle. A folytatásban az OS/2-vel, szoftverekkel kapcsolatban még további érdekességekre derül fény.  

Retrocomputing - IBM PS/2 Model 50 felélesztése - 2. rész

Az előző részben ott hagytam abba a sztorit, hogy sikerült megjavítanom a donor gépből kioperált HDD-t, így már semmi nem tudott megakadályozni abban, hogy ideiglenesen installáljak egy MS-DOS 6.22-t a gépre. Viszont a végcél nem ez volt, hanem az ehhez a géphez sokkal jobban illő és sokkal autentikusabb operációs rendszer, az IBM OS/2 telepítése. Az OS/2-ről szándékozok majd egy külön blog bejegyzést írni, így most túl sok szót nem ejtenék róla, de egy-két apróságot muszáj leszek megemlíteni vele kapcsolatban.

Az OS/2-nek több verziója is volt, amiből az 1987-ban megjelent 1.0 még csak karakteres módban működött. Az 1.1-től viszont már grafikus felhasználói felületet (GUI) kapott. A lehetőségeimet az korlátozta be, hogy a 80286-os CPU-val csak az 1.x verziók használhatók. A 2.0-hoz már minimum egy 386-os kellene, így ez jelen esetben nem volt opció. A legmagasabb verziószámú OS/2, ami még elfut ezen a gépen az 1.3, így erre esett a választásom. A telepítő készlet megszerzése nem okozott gondot. Szerencsére letölthető a nagyszerű Winworld szoftver gyűjteményből, ahol ezen kívül is számos csemege található a retró számítógép rajongók számára. A problémát az jelentette, hogy a gépben csak 1 MB memória van, viszont az OS/2 telepítéséhez minimum 2 MB kellene. Ezért, hogy fel tudjam rakni az OS/2-t, valahogy fel kellett bővítenem a gép memóriáját legalább 2 MB-ra. Erre három elvi lehetőségem volt. Az első, hogy az alaplapon lévő memóriát növelem meg. Esetemben ez sajnos nem volt járható út, azon egyszerű oknál fogva, hogy az alaplapon 1 db memória bővítő slot van, ami maximum 2 MB-os modult tud fogadni, olyanom viszont nem volt. A másik két lehetőség a rendelkezésemre álló 2 db memória bővítő kártya formájában manifesztálódott.

Az egyik az eredeti gépemben volt, a másik a donorból származott. A korábbi kártya egy IBM memória bővítő, ami összesen 2 MB memóriát képes fogadni:

IMG 20210330 123654

A másik egy TECMAR MicroRAM AD2 névre hallgató, amibe viszont akár 8 MB memória is tehető:

IMG 20210329 183422

Az IBM-el azért volt egyszerűbb a dolgom, mert azt automatikusan felismerte a gép és a gyári Reference Disc-ről fel is telepítette a hozzá való eszköz meghajtót. A bonyodalmak ott kezdődtek, amikor próbaképpen bepakoltam 4 db 256 KB-os memória modult. Az alap probléma az volt, hogy nem volt teljesen evidens, hogy a 8 rendelkezésre álló slot-ba milyen sorrendben kell berakni a memória modulokat. Két sorba kell bepakolni őket, vagy függőlegesen egymás alá? Kipróbáltam minden féle kombinációt, de a gép a bekapcsolásakor minden kísérletnél memória hibát jelzett. A konfiguráló programból megnézve pedig az esetek egy részében mindenféle vad memória méret látszott. A memória teszt pedig mindig hibásnak jelezte valamelyik memória modult. Volt amikor még olyan slot-ra is hibát jelzett, ami üres volt!

IMG 20210405 131632

IMG 20210405 132353

IMG 20210405 142009

IMG 20210405 142807

Itt valami nagy probléma van. Eléggé tanácstalan voltam azzal kapcsolatban, hogy mi lehet a gond. Az első fénysugár az volt, amikor találtam egy oldalt, ahol arról értekeztek, hogy milyen módon kell átalakítani egy szabványos SIMM memória  modult, hogy az normálisan működjön egy PS/2-ben. Mi a manó? A PS/2 nem működik a szabványos memóriákkal? Úgy nézett ki, hogy itt lehet a kutya elásva. Ezért szívok már napok óta ezzel a bővítő kártyával! A leírás alapján átalakítottam 2 db modult. Szerencsére nem túl bonyolult megcsinálni, de nem akartam mind a 8 modulomat átszabni anélkül, hogy leteszteltem volna a koncepció működőképességét.

Várakozás teljesen kapcsoltam be a gépet a meghekkelt modulokkal. Az arcomról viszont elég hamar lehervadt a mosoly, mert a helyzet szemernyit sem javult. Memória hiba induláskor, a konfigurátorban helytelenül detektált memória méret, stb. Elengedtem egy elfojtott káromkodást. Kezdtem elveszteni a reményt, hogy működni fog ez a dolog. Valami alapvető probléma lehet. Először az volt a gyanús, hogy a gép éppen kétszer annyi memóriát "látott", mint amennyi ténylegesen be volt rakva a gépbe. Apró, de a későbbiekben fontos megjegyzés, hogy a két modult egy sorba, egymás mellé raktam be a próbánál. A memória méret detektálás egyszerűen van megoldva ennél a gépnél. A  memória modul két érintkezőjét kell megfelelő módon vagy nulla potenciálra kötni vagy lebegve hagyni. A négy lehetséges kombináció adja ki a lehetséges memória modul méreteket: 256, 512, 1024, 2048 kilobájt. Én a leírás alapján 256 kilobájt méretet "állítottam be", ehhez képest a gép 512 kilobájtos modulokat detektált.

Arra gondoltam, hogy mi van, ha a leírás hibás és más kombináció jelenti a 256 kilobájt méretet? Elkezdtem kipróbálni a további kombinációkat. Az eredmény minden esetben az volt, hogy a gép éppen dupla akkora memória méretet detektált, mint amit kellett volna! Na itt valami nagy disznóság van. Arra gondoltam, hogy magán a kártyán van valami hiba és ezért nem működik jól a memória méret felismerés. Abban reménykedtem, hogy talán meg tudom találni a hiba okát: megszakadt vezetősáv, döglődő TTL IC vagy hasonló, elvileg javítható probléma. Először ki akartam mérni, hogy a memória slot-ok megfelelő érintkezői milyen alkatrészhez csatlakoznak. Elég hamar rájöttem, hogy tényleg egy TTL IC bemeneteihez vezetnek a nyomok vagyis a vezető sávok. A dolog akkor kezdett érdekessé válni, amikor az is kiderült, hogy az IC ugyan azon lábára két egymás alatt lévő memória slot kivezetései csatlakoznak. Zárlatos lenne valami? Elkezdtem méricskélni a memória slot-ok között. Minden esetben azt tapasztaltam, hogy két egymás alatt lévő modul megfelelő kivezetései össze vannak kötve egymással!

Miért érdekes ez? Azért, mert ha csak egy modul van betéve, akkor is úgy "látszik" a gép számára, mintha kettő lenne. Igazából nem tudja megkülönböztetni ilyen módon, hogy a két slot-ban csak egy modul van, vagy kettő. Vagyis pontosabban azt feltételezi, hogy mindkettőben van modul. Ez a feltételezés azon alapszik, hogy normálisan minimum két, megegyező méretű modult kell használni egy memória bankban és négy ilyen bank van ezen a kártyán. Nem kellett sok idő a megvilágosodáshoz: nem jól raktam be a modulokat. Egy bankot két egymás alatti slot alkot, én pedig egymás mellé raktam a modulokat. A fenti okfejtés alapján így már érthető volt, hogy miért mindig kétszer annyi memóriát jelzett a gép, mint amit valóban "látnia" kellett volna. Gyorsan átpakoltam a modulokat a megfelelő helyre és láss csodát, egyből minden megjavult. A POST (Power On Self Test) memória teszt is hiba nélkül lepörgött, és a konfigurátorban is jó volt a memória méret. Végső ellenőrzésként még a DOS MEM parancsát is lefuttattam, de szerencsére az is azt mutatta, hogy minden rendben van. Hurrá győztem! 

IMG 20210408 181915

IMG 20210408 181955

IMG 20210408 182202

IMG 20210408 181853

Ezzel az eredménnyel lazán hátra dőlhettem volna, élvezve a jól végzett munka gyümölcsét, mert a maradék 6 db 256 kilobájtos memória modul átszabásával lett volna egy gigászi méretű 2 MB-os memória bővítésem, ami az alaplapi 1 MB-al együtt már elég az OS/2-nek. Vagy próbáljuk életre kelteni a TECMAR-t? Abba akár 8 MB is bepakolható. 

Mai szemmel megmosolyogtató, hogy 30 évvel ezelőtt egy tekintélyes, 30 x 10 cm méretű kártya - amin 8 memória slot és bonyolult elektronika volt -, kellett ahhoz, hogy összesen nyamvadt 2 MB memóriával bővíteni lehessen egy ilyen számítógépet, pedig ennyi memória szinte non plus ultra-nak számított abban az időben. Azt, hogy mi a sok vagy kevés, akkor lehet igazán megítélni, ha az ember kontextusba helyezi a dolgokat. 1988 körül egy magyar háztartásban lévő home computer 48-64 kilobájt memóriával rendelkezett. Ez volt az átlag ember számára megfizethető kategória. A tehetősebbeknek Amiga-ra is futotta, amiben már 512 kilobájt memória volt, és az otthoni számítógépek között  csúcsnak számított. Az Amiga gyakrolatilag már minden igényt kielégített, és még évekkel később is egy ütős gépnek számított. Az igazán elszántak néhány memória chip beforrasztásával vagy egy külső memória expanderrel felbővítették az Amigá-juk memóriáját 1 MB-ra, ami kevés pénzből az elérhető maximum volt ennél a gépnél. Ez már tényleg mindenre elég volt még a '90-es évek elején is.

PC-s fronton, aki össze tudott rakni magának egy XT-t, az jellemzően 640 kilobájt memóriát tudott maximum bepakolni az alaplapra, amivel ki is maxolta annak a gépnek a lehetőségeit, de itt is az 512 kilobájt volt az általános. Egy átlag 286-os alaplapra 1 MB memóriát lehetett bedugdosni egyedi memória IC-k formájában. Tehát ebben az időben egy 2 MB-os memória bővítés szinte indokolatlanul sok volt, mivel egy átlag DOS-os alkalmazás, de még maga a DOS operációs rendszer sem tudta igazán kihasználni a 640 kilobájtnál nagyobb memóriát. Arról nem beszélve, hogy szinte megfizethetetlenül drága volt a memória bővítés. A szóban forgó TECMAR memória bővítő kártya 512 kilobájt memóriával közel 500 dollárba került 1987-ben. Nem néztem pontosan utána, de ennyi pénzért kb. egy komplett Amiga 500-at lehetett venni akkoriban. Ugyan ez a kártya a maximális 8 MB memóriával 5500 dollárba került! Ez csillagászati nagyságrendű összeg lett volna egy otthoni felhasználó számára. Magyar forintra átszámítva az akkori 50 Ft/dollár körüli árfolyamon, több mint 250000 Ft-ba került volna, ami az átlagfizetést figyelembe véve két évnyi munkabér volt! Nem csoda, hogy nem kapkodtak utána az emberek.

A TECMAR kártya működésre bírása sokkal problémásabb volt, mint az IBM-é, de nagyon szerettem volna, hogy tudjam ezt is használni. Az első megoldandó feladat az volt, hogy a kártya installálásához szükséges eszköz leíró fájlokat valahogy meg kellett szereznem, mivel ezek értelem szerűen nem voltak rajta a gyári IBM Reference Disc-en. Egy ennyire régi cucchoz nem olyan egyszerű bármi információt találni. Az Internetet kis túlzással még ki sem találták, amikor ezek a fénykorukat élték. Szerencsére rajtam kívül is vannák még bolondok, akik örömüket lelik a régi vasak pátyolgatásában, így sikerült rábukkanom egy olyan weboldalra, ami kimondottan a PS/2 gépekről rendelkezésre álló információk gyűjtőhelye. Az egyik szekcióban különböző korabeli hardverekhez tartozó eszköz leírók vannak összegyűjtve. Találtam is hasonló kártyához való fájlokat, mint az enyém. A megnevezés nem teljesen egyezett meg, de egy próbát megért a dolog. Bonyolította a helyzetet, hogy igazából nem is csak egy fájl tartozott a kártyához, hanem legalább kettő, és ezekből is több alternatív változat volt a weboldalon. Számomra nem volt egyértelmű, hogy melyikek is lesznek jók nekem, ha egyáltalán ezek azok, ami az én kártyámhoz kellenek. Nem volt mit tenni, elkezdtem kipróbálni a rendelkezésre álló fájlokat mindenféle kombinációkban, inkább kevesebb, mint több sikerrel. A jobbik eset az volt, hogy ugyan felismerte a gép a kártyát, de a rajta lévő memóriát nem. Rosszabb esetben a gép induláskor memória hibát jelzett és lefagyott. Azt gondolom, hogy mindent megpróbáltam, ami emberileg lehetséges volt, de nem tudtam működésre bírni a memória bővítő kártyát. Ennél a pontnál kezdtem feladni a dolgot és elhatároztam, hogy mégis inkább az IBM memória bővítőre fogok koncentrálni, mert abban biztos voltam, hogy működni fog, igaz csak 2 MB memóriát nyerek vele, de az visítva már elég a terveimhez.

Utolsó kísérletként egy PS/2 rajongókat tömörítő Facebook csoportba írtam le a problémámat. Hihetetlen nagy tudású guruk vannak ott és szerencsémre jött is segítség egy link formájában. Az www.archive.org-on megtalálták a kártya gyártójának régi, archivált weboldalát, ahonnét még letölthető volt az ehhez a kártyához tartozó szoftver csomag. Sikerült is megszereznem, így már csak fel kellett írnom egy floppyra, hogy használni tudjam.

IMG 20210408 192404

IMG 20210409 171753

Azért nem ment minden simán, de ennek elmesélése már tényleg nagyon hosszúra nyúlna. Végül eljutottam oda, hogy a gép felismerte a kártyát és a rajta lévő memóriát is többé-kevésbé. A memória teszt viszont volt, hogy lefutott hiba nélkül, de volt amikor nem. Sajnos még mindig nem volt minden teljesen OK, de szerencsére az isteni szikra megint fejbe kólintott. Visszatekertem gondolatban egy kicsit az idő kerekét arra a napra, amikor szétszedtem a donor gépet. Azon a napon a memória bővítő kártyából kivettem a benne lévő 4 db SIMM modult és betettem a többi hasonló memória modul közé, viszont amikor elkezdtem kísérletezni a kártyával, akkor a dobozból találomra vettem ki 4 db egyforma modult, és azokat raktam be a foglalatokba, mivel abból indultam ki, hogy mivel nem IBM gyártmányú a kártya, így biztosan bármilyen szabvány SIMM modullal működik. Na ez egy nagy tévedés volt, ami miatt több napon keresztül szivattam magam. Szerencsém volt, hogy végül gyanút fogtam, mert enélkül még hetekig kereshettem volna a hibát, ha addig meg nem untam volna az egészet. Szintén szerencsém volt azzal, hogy volt korábbi fényképem a kártyáról, amin látszottak a benne lévő memória modulok is. Gyorsan megkerestem ezeket és beraktam a helyükre. Óriási örömömre végre megfelelően működött a gép. A memória  teszt is hiba nélkül lefutott végre.

IMG 20210410 170956

IMG 20210410 171657

A bővítő kártyán lévő 4 MB-al együtt, így már 5 MB memória volt a gépben. Most jutottam el odáig, hogy végre elkezdhessem az OS/2 telepítését. Ez már viszonylag probléma mentesen megtörtént. A telepítés menetéről túl sok érdekességet nem tudok mesélni. Zárásként álljon itt néhány kép a telepítés  folyamatáról és a frissen telepített IBM OS/2 operációs rendszerről. További információk az operációs rendszerről majd egy külön blog bejegyzésben lesznek olvashatók.

IMG 20210411 155625

IMG 20210411 160721

IMG 20210411 161148

IMG 20210411 161227

IMG 20210411 182353

IMG 20210412 183110

IMG 20210412 183830

IMG 20210412 183249

IMG 20210412 184152

IMG 20210412 184937

Retrocomputing - IBM PS/2 Model 50 felélesztése - 1. rész

IMG 20210412 183249

A szóban forgó konkrét gépcsodáról kb. 20 évvel azelőttről vannak az első emlékeim. Fater műhelyében hányódott abban az időben, és egy alkalommal alaposabban szemügyre vettük. Lenyűgözött a letisztult, nagyon ötletes felépítése. Az, hogy szerszám nélkül szinte teljesen szét lehetett szerelni és az is, hogy egy átlag PC-ben lévő kábel dzsumbuj helyett rendezett, logikusan kitalált módon elhelyezett alkatrészekből szó szerint össze lehetett pattintgatni úgy, hogy egy árva kábel nem volt sehol. Minden úgy volt kitalálva, hogy ne legyen egyáltalán szükség kábelezésre. Akkoriban már több mint 10 éves PC-s múlt volt a hátam mögött. Elég sok PC-t szedtem szét, és raktam össze addigra. Nagyon jól ismertem a vékony, nyeklő-nyakló, sorjás szélű lemezekből hajtogatott számítógép házakba, innét-onnét összeszedett alkatrészekből épített PC-ket. Ez az IBM gép akkor már tízen pár éves volt, de a technikai megvalósítása még így is messze meghaladta az otthon összebarkácsolt gépekét, amivel az ember általában találkozott abban az időben. Tiszta űrtechnika volt azokhoz képest. Nem emlékszem már pontosan, de valószínűleg már akkor sem működött. Csak nézegettük, hümmögtünk hozzá, hogy hú de szép, de működés közben soha nem láttam emlékeim szerint.

Aztán kikerült a látókörömből a gép, mivel szüleim pár év múlva elköltöztek és a masina felkerült a többi lom közé az új melléképület padlására, ahol az utóbbi 10-15 évet töltötte. Tavaly, amikor elkezdtem intenzívebben gyűjteni a régi vasakat, fater mondta, hogy ha érdekel akkor keressem meg a padláson a régi IBM-et. Őszintén szólva nem is tudtam, hogy még megvan ez a gép, de így hogy szóba került, egyből eszembe jutott. Nyilván nem kellett kétszer mondani. Feltúrtam a padlást és meg is találtam az öreg szerkezetet. Az évek (vagy inkább évtizedek) alatt összegyűlt rajta és benne némi por, de egyébként elég jó állapotban volt. Nagyon kíváncsi voltam, hogy vajon be tudom-e indítani. Az első kísérletre azután került sor, hogy hazavittem, szétszedtem és némileg kitakarítottam. A tápegység azonnal beindult és a vinyó is felpörgött, de ezen kívül nem történt semmi. Nem hallatszott se csippantás, se hibára utaló szaggatott sípolás a hangszóróból és a monitor is sötét maradt. Úgy tűnt, hogy ez nem lesz egy könnyű menet. Amikor jobban megnéztem az alaplapot, valami szemmel látható hiba után kutatva, gyanús lett, hogy valami alkatrész hiányzik róla. Nem valami soklábú IC, hanem egy egyszerűbb alkatrész, ami pont elég ahhoz, hogy ne működjön a gép.20201015 175837

Mit tehet ilyenkor az ember? Reménykedik benne, hogy hátha talál valahol a neten egy nagyobb felbontású képet, amin esetleg látszik, hogy minek kellene az üres helyen lenni. Viszont még ennél is jobb dolog történt. Megtaláltam a teljes szerviz dokumentációt, mert ezekhez a gépekhez még volt ilyen. Szerencsére a kapcsolási rajz alapján már be lehetett azonosítani az alkatrészt, egy nagyobb teljesítményű tranzisztor volt az. Szerencsére találtam hasonlót az alkatrészes dobozomban, így nagy reményekkel vágtam bele a javításba. Beforrasztottam a tranyót és vártam a csodát, ami csak nem akart eljönni. 

20201015 180209

A helyzet semmit nem változott. Mivel lelkiekben nem voltam felkészülve egy napokig vagy hetekig tartó méricskélésre, hibakeresésre aminek az eredménye is kétséges volt, így szépen összeszereltem a gépet és ment vissza a helyére, a polcra. Majd valamikor nekidurálom magam és megpróbálom megtalálni, hogy hol akadnak el a bitek. Ez azért nem egyszerű feladat, mert ez az alaplap már erősen SMD szerelt, több speciális BGA IC-vel. Szóval nem olyan, mint egy öreg XT alaplap, amiben szinte csak TTL IC-k voltak a procin kívül.

A fordulat végül hamarabb eljött, mint gondoltam volna. A Vaterán felbukkant egy némileg legyalázott PS/2. Pont olyan típus, mint ami nekem van. Nem volt meg a burkolata, de a belső részei komplettnek látszottak a képeken. Éreztem, hogy most vagy soha. Kell nekem az a gép! A terv nyilván az volt, hogy a kettőből megpróbálok összerakni egy működőképeset. Nem állítom, hogy fillérekért sikerült hozzájutnom a "roncshoz", de annyira ritkán bukkan fel belföldön ilyen gép vagy hozzá való alkatrész, hogy ha ezt kihagyom, akkor lehet soha nem adódik még egy alkalom. Nem biztos, hogy még egyszer fogok alkalmas donort találni az enyémhez. Elég sok idő telt el a nyertes licitálás és aközött, amíg végül el tudtam menni érte, de végül haza hoztam és ott feküdt a garázsom padlóján.

IMG 20210328 174601

Elkezdtem szétszedni darabjaira. Elég érdekes bővítő kártyák voltak benne, a rajtuk lévő feliratok alapján, meg némi háttér infóból kikövetkeztettem, hogy valami orvosdiagnosztikai rendszerbe lehetett beépítve a gép és ezért nem volt burkolata.

IMG 20210328 183123

A kitermelt alkatrészek elég jó állapotúaknak látszottak. Volt rá remény, hogy működnek is, habár nem akartam mindent felhasználni. Viszont elég nagy meglepetést okozott, hogy az alaplap egyáltalán nem olyan volt, mint az én javításra váró gépemben lévő. Pedig a gép hátuljára írt típus szám megegyezett.

Ez itt a régi nem működő alaplap:

IMG 20210330 123434

Nem igazán értettem a dolgot, de a Google a barátom volt, így sikerült kiderítenem, hogy ez már egy modernizált Model 50, ami 50z néven futott. Nagyon nem estem kétségbe, mert az alaplap totálisan beépíthető volt az én gépem házába. Szerencsére minden pozícionáló tüske, furat, meg alaplapi csatlakozó oda esett, mint a másik gépben. Az igazi kérdés az volt, hogy vajon be fog-e indulni? A választ rövidesen megkaptam a kérdésre, mert úgy pőrén összedugtam a tápegységgel és bekapcsoltam. Hamarosan megjött a jellegzetes csippanás és a monitoron feltűnt a memória teszt pörgő számsora. Valószínűleg még ugrottam is egyet örömömben, mert ez azt jelentette, hogy alapvetően működik az alaplap! Nem volt kidobott pénz, amit kifizettem érte. Ami elég érdekes ennél a gépnél, hogy ha nem tud betölteni operációs rendszert, akkor elindul automatikusan a BIOS-ban lévő BASIC parancs értelmező, így akár megírhatjuk az első programunkat is rá:

IMG 20210330 132948

Szétszedtem a meglévő gépemet is és alaposan megtisztítottam minden felhasználni kívánt alkatrészt: az új alaplapot, a házat, tápegységet, kártyákat.

Elég sok porcica volt a donor gépben, mint az alábbi képen is látszik:

IMG 20210328 183502

A tisztítás után így nézett ki az új alaplap:
IMG 20210329 182340

Ezek utána kezdődhetett az összerakás:

IMG 20210330 181226 

IMG 20210330 183032

IMG 20210330 185204

Volt némi dilemma, hogy mi is legyen, mert a régi gépemben más volt a vinyó csatlakozója és egy komplett vezérlőkártya volt hozzá. Az újabb gépben a hasonló vinyó szélesebb csatlakozóval volt szerelve és az illesztő kártyán nem volt semmi elektronika, ennél már az alaplapra integrálták a HDD vezérlőt is.

Ez a régi gépemben lévő vinyó és a hozzá való vezérlő kártya:

IMG 20210403 194906

Azon agyaltam, hogy melyiket építsem be? Adta magát, hogy az újabb alaplaphoz az újabb vinyót rakjam be, viszont rövidesen konstatáltam, hogy ennek az egyébként nagyobb kapacitású és modernebb vinyónak az elektronikáján elég csúnya korróziós nyomok vannak. Egy elektrolit kondenzátor a szállítás közben le is esett róla, egy másik meg akkor, amikor kicsit hozzáértem. Ez el is döntötte a kérdést. Az újabb vinyót először rendbe kell rakni, ha egyáltalán még meg lehet javítani.. Meg kell próbálnom a régebbi vinyóval és vezérlő kártyával működésre bírni a gépet. Nem volt teljesen evidens, hogy az újabb alaplap a régi vezérlő kártyával fog-e működni, de bíztam az IBM mérnökeiben, hogy ezt a problémát megoldották annak idején. Ez a számításom szerencsére bejött. A gép felismerte a HDD vezérlőt és a vinyót is.

IMG 20210330 192838

Amikor minden a helyére került, jöhetett az első próba. Ez a géptípus elég háklis a hibákra. Még akkor sem lép tovább a betöltés folyamata, ha csak az elem van lemerülve benne:

IMG 20210330 193047

Szerencsére korábban kaptam fatertól egy komplett csipogó/elemtartó egységet, amiben benne volt az isten tudja milyen régi speciális 6 Voltos lítium elem is. Rámértem egy multiméterrel és csodák csodájára 6,1 Volt körüli értéket mutatott a műszer. Nem rossz. Hihetetlen, hogy évtizedek alatt sem merült le, vagy folyt szét az elem. Nem mondom, hogy régen minden jobb volt, de ez az elem megérdemli az elismerést.

IMG 20210330 194133

Másik furcsa dolog, hogy ennek a gépcsaládnak nincs a szokványos értelemben vett BIOS konfigurációs felülete. A hardver közeli beállításokat úgy lehet elvégezni, hogy egy speciális, úgynevezett Reference Disc floppyról kell elindítani a gépet. Amint ez betöltődött, a rendszer által felismert hardverek konfigurálását automatikusan is képes elvégezni, ha a floppy-n megtalálhatók a szükséges eszköz leíró fájlok. Gyakorlatilag már akkor tudta a plug and play telepítést, amikor ezt a fogalmat még ki sem találták. Visszatérve a gép élesztésre, én is a Referenc Disc-et használtam, hogy a konfigurálást elvégezzem, beállítsam az időt és egyebeket.

IMG 20210331 182804

IMG 20210331 182831

IMG 20210331 182930

IMG 20210331 183100 

IMG 20210331 183223

Diagnosztikai programokat is lehet futtatni innét, így le is tudjuk tesztelni, hogy minden jól működik-e. Sajnos a vinyó teszt nem futott le hiba nélkül, ami előre vetítette, hogy lesz vele probléma.

IMG 20210331 183643

Mindenesetre a gép ezután nem dobott már hibakódot, viszont a vinyóról nem indult el az operációs rendszer betöltése. Annyi azért kiderült, hogy német nyelvű oprendszer van/volt rajta.

IMG 20210331 184403

Gyártottam egy MS-DOS 6.22-es indító floppyt és erről be is töltött a gép. A vinyón lévő fájlrendszer egyébként olvasható volt valamilyen szinten, de nem volt célom megtartani, így megpróbáltam létrehozni egy üres partíciót. Na ez nem jött össze. Az FDISK azt mondta, hogy hibás a legelső cilinder, amin a rendszer a boot rekordot is tárolja, így nem lehet megpartícionálni a vinyót. A francba. Nem volt mit tenni, valahogy fel kellett éleszteni a korrodált és hiányos HDD-t, ami a donor gépben volt. 1-2 napom ráment, amíg mikroszkóp alatt megtisztítottam az oxidtól az IC-k kivezetéseit és újra forrasztottam őket. A SMD kondikat is pótoltam, igaz csak huzal kivezetésessel sikerült, mert csak az volt nekem, de elég jól sikerült így is a javítás:

IMG 20210403 182105

Nem bíztam 100%-ig abban, hogy el fog indulni a megreparált vinyó, habár nagyon reméltem, de rám mosolygot a szerencse, illetve ezek szerint jó munkát végeztem, mert nem jelzett semmi problémát a rendszer. Erről a vinyóról sem töltődött be az oprendszer, viszont ezt meg tudtam partícionálni és formázni. A SCANDISK elég sok "bad sectort" jelzett rajta, ami nem jó jel, de legfeljebb nem ezen fogom tárolni a pótolhatatlan fájljaimat. A lényeg, hogy erre fel tudtam rakni egy MS-DOS-t, amivel el is indult a gép.

Folyt. köv...

Retrocomputing - A mikroprocesszor története - 3. rész

Találtam egy nagyon alapos és olvasmányos összefoglalót a mikroprocesszorok történetével kapcsolatban ezen az oldalon: http://www.s100computers.com/History.htm

Arra gondoltam, hogy magyarra fordítva talán többen is elolvasnák, így elhatároztam, hogy fejezetenként közreadom. A nyers fordítás a Google fordítóval készült. A szöveget igyekeztem javítani, magyarosítani, de így sem sikerült irodalmi magasságokba emelkednem. Remélem a lényeg ennek ellenére átjön. :-)

Ez a sorozat harmadik része.

Az Intel 4004
c4004_white_and_gray.jpg

1969 nyarán megkereste az Intel-t a Busicom nevű japán cég, azzal a megbízással, hogy chip készletet gyártasson az új elektronikus számológép családjuk számára. A Busicom által hozott terv számos egyedi chip-ből állt, amelyek mindegyike körülbelül 5000 tranzisztort tartalmazott. Egy Ted Hoff nevű mérnököt bíztak meg az Intelnél, hogy segítse a Busicom mérnökeinek csapatát a projekt végrehajtásában. Hoff megvizsgálta a Busicom terveit, és arra a következtetésre jutott, hogy az integrált áramkörök túlságosan bonyolultak ahhoz, hogy költséghatékonyan lehessen gyártani őket. Szerencséjükre Hoff korábban a Digital Equipment Corporation PDP-8 miniszámítógépével dolgozott, amely egy egyszerű utasításkészletet használt. Úgy vélte, hogy a számológép felépítése egyszerűbb lenne, ha egy kis általános célú processzort használnának a bonyolult felépítésű egyedi chip-ek helyett. Ez a koncepció, amely a számítások elvégzéséhez elektronika helyett szoftvert használ, sokkal hatékonyabb és rugalmasabb lenne. Nem kerülte el az Intel figyelmét, hogy ez nagymértékben megnöveli a számológép memóriaigényét, de abban az időben az Intel erős volt a félvezető memória gyártásban, így ez nem jelentett problémát. Hoff arra is rájött, hogy ezt a processzort sok más alkalmazásra is fel lehetne használni. Felvetette az ötletet az Intel vezetőinek, akik zöld utat adtak a projektnek. A Busicom mérnökei még akkor is tovább folytatták az eredeti tervek megvalósítását, amikor Hoff és csoportja (különösen Federico Faggin) megkezdte az új általános célú processzor tervezését.

Habár a Busicom mérnökei leegyszerűsítették a saját terveiket, mindegyik egyedi chip még mindig több mint 2000 tranzisztorból állt. 12 ilyen chipre volt szükség egy működő számológép elkészítéséhez. Hoff csapata úgy gondolta, hogy csak 1900 tranzisztorra lesz szükség a processzor megvalósításához. Végül Hoff általános célú processzor megoldását választották a Busicom chip tervei helyett, és az Intel szerződést kapott a Busicom-tól a mikroprocesszor gyártására, amely később 4004 néven vált híressé és ismertté.

A 4004 chip előállítása sokkal nehezebbnek bizonyult, mint amire korábban számítani lehetett. Azokban az időkben minden litográfiai réteg tervét kézzel készítettek. Federico Faggin érdeme volt, hogy sikerült a chipgyártást beindítani. Abban az időben az Intel-nek csak 150 alkalmazottja volt, a legtöbb operátorként dolgozott a félvezető szeletek gyártásában és a chip-összeszerelő soroknál. A teljes kutatás-fejlesztési szervezet körülbelül 20 fő volt!

Faggin két olyan integrált-áramkör gyártási technológiát hozott magával a Fairchild-tól, amelyek kulcsfontosságúak voltak a 4004 gyártásában. Abban az időben azon kevesek egyike volt, akik járatosak voltak a MOS integrált áramkörök tervezésében, és döntő ismeretekkel rendelkezett a fentebb említett, akkor újdonságnak számító logikai-kapu gyártástechnológiákban. Faggin-nak mindössze kilenc hónap alatt sikerült a 4004 chip megvalósítását a koncepciótól a kész szilícium áramkörig elvinnie.

4004-1-1024x768.jpg

Az Intel eleinte kizárólag a Busicom-nak adta el a 4004-et, de 1971 nyarára rájöttek, hogy valami különleges van a kezükben. Megegyeztek a Busicom-mal a forgalmazási jogokról, hogy eladhassák a chipkészletet más készülék gyártóknak is. 1971 novemberében az Intel 4-bites processzorként hirdette a 4004-et, amely másodpercenként 60000 műveletet hajtott végre. 1972 februárjáig az Intel 85 ezer dollár értékben értékesített chipkészleteket. A vállalat vezetése kezdett rájönni, hogy valami új dolog kezd a fókuszba kerülni.

A chip mai szemmel nézve nagyon primitív volt. 740 kHz frekvenciájú órajellel működött, ami később maximum 1 MHz lehetett. Körülbelül 92000 utasítást tudott végrehajtani másodpercenként, és külön program- és adattárolási területe volt a RAM-ban. Egyetlen multiplexelt 4 bites buszt használt az átvitelhez: 12 bites címeket, 8 bites utasításokat és 4 bites adatokat kezelt. Összesen 46 utasítása volt (ebből 41 db 8 bit széles és 5 db 16 bit széles). A regiszterkészlet 16 db, egyenként 4 bites regisztert tartalmazott.

Az Intel 8008

kl_intel_c8008-1.jpgUgyanabban az időszakban amikor a 4004 fejlesztése folyt, a Computer Terminal Corporation nevű vállalat pályázatot írt ki az Intel és a Texas Instruments számra az új, tervezés alatt álló Datapoint 2200 intelligens CRT termináljukban használni kívánt chipkészlet gyártására. Mivel a korábbi Datapoint 3300 CRT termináljuk túlmelegedési problémákkal küzdött a túl sok, túl kis helyre zsúfolt hagyományos digitális IC miatt, a CTC is abban gondolkodott, hogy kevesebb, de nagyobb integrálsági fokú integrált áramkört alkalmazzon az új termináljukban.

Mindkét vállalat egy 8 bites, általános célú processzort javasolt. Azért 8 bitest, mert a BCD-vel (bináris kódolt decimális) dolgozó számológépek 4 bitjével ellentétben az ASCII karakterek 8 bitet igényelnek. Érdekes csavar a történetben, hogy végül a CTC egyik cég processzorát sem használta fel, mert az Intel nem tudta határidőre elkészíteni a  chipjét, a TI megoldásában pedig sok hiba volt. A CTC végül szabványos logikai IC-kkel építette meg a terminálját. Szerencsére a TI és az Intel ettől függetlenül tovább folytatta a 8 bites mikroprocesszoros projektjeit. A TI kezdetben inkább a tudás, a tapasztalatok, a know-how megszerzésére összpontosított, de az Intel gyorsan tudott robbantani a 4 bites 4004 továbbfejlesztésével a ma már híres, általános célú 8008 CPU-val.

Az 1972 áprilisában bemutatott 8008 volt az első 8 bites mikroprocesszor a piacon. Kb. 20 db support chipre volt szüksége, 45 utasítással rendelkezett, és ezekből másodpercenként 300000-et tudott végrehajtani. Az akkoriban tetemesnek mondható, 16 kilobájtnyi memóriát tudott kezelni. Akkoriban ez meglehetősen soknak számított. Sok szempontból a 8008 a 4004 jelentős továbbfejlesztésének tekinthető.

A chip 10 mikronos PMOS technológiával készült. A 8008 kezdeti verziói 500 KHz-es órajel frekvenciával működtek, ezt később a 8008-1-ben megnövelték 800 KHz-es maximális értékig. Az utasítások végrehajtása 5-11 ciklust igényelt, ahol minden ciklus 2 órajel hosszúságú volt. A 8008 3500 db tranzisztor tartalmazott. A chip egyetlen 8 bites buszt használt, de jelentős mennyiségű külső támogatási logikát igényelt. 8 bemeneti és 24 kimeneti portot tudott kezelni.

Az Intel elsődleges célja a 4004-es és a 8008-as modellel az volt, hogy nagyszámú diszkrét IC-t cseréljen le egy szoftverrel vezérelt CPU-ra. Abban az időben kevesen gondolták, hogy ezek a chipek alkalmasak általános célú feladatok végrehajtására is. Eleinte csupán a számítógép működési elveinek demonstrálására használták őket. 1973-ban a Scelbi Computer Consulting Inc. bejelentette az első általános célú, 8008-as alapú mikroszámítógépét, a SCELBI-8H-t. A céget 1973-ban alapította Nat Wadsworth és Bob Findley. A SCELBI-8H 1K RAM-ot tartalmazott, és teljesen összeszerelve vagy készlet formájában is elérhető volt, de soha nem vált igazán sikeressé. A SCELBI rájött, hogy több pénzt tudnak keresni a mikroprocesszorra írt szoftverekkel, mint a hardver eladással, ezért átálltak a szoftverek, nagyon jól dokumentált forráskódjának könyv formában történő kiadására. Volt még néhány kísérlet a mikroprocesszorra épülő számítógépekkel, különösen az RGS Systems RGS-008 és a Jonathan Titus által kiadott Mark-8 érdemel említést, de ezek sem tudtak piaci sikert elérni.

Habár sikeres számítógépek nem épültek velük, a 4004 és a 8008 megtalálta a helyét különböző dedikált vezérlő alkalmazásokban. Egy gyakran emlegetett példa a közlekedési lámpák irányítása.

Az Intel 8080

 l_amd-c8080.jpg

1974 áprilisában az Intel bejelentette a 8080-at, amely jelentős előrelépés volt a 8008-ashoz képest, és csak hat kiszolgáló chipre volt szüksége. 75 utasítással rendelkezett, és tízszeresére nőtt a számítási teljesítménye a 8008-ashoz képest. Óriásinak számító, 64 kilobájtnyi memóriát tudott megcímezni. A 8080-as tervei Faggin javaslatai alapján készültek, de a tervezőcsapatot Masatoshi Shima vezette, egy fiatal mérnök, akit az Intel elcsábította a Busicom-tól. A 4004 és 8008 korlátaiból tanulva a tervezők olyan fejlesztéseket hajtottak végre, hogy az új chip valóban egy jól használható, altalános célú CPU legyen. A 8080 az első olyan mikroprocesszor, amelynek nem az volt a célja, hogy diszkrét logikai IC-ket váltsanak ki vele. Sokkal inkább hasonlított egy számítógépre, mint bármi, ami előtte volt, és hardveres szempontból is sokkal könnyebb volt használni.

Bár a korábbi 8008-as kibővített és továbbfejlesztett változata volt, binárisan nem vele kompatibilis. A kezdeti órajel frekvencia határ 2 MHz volt. Az általános utasítások végrehajtása 4, 5, 7, 10 vagy 11 ciklust igényelt. Ez azt jelentette, hogy másodpercenként néhány százezer utasítást tudott végrehajtani. NMOS félvezető technológiával valósították meg, és sajnálatos módon további +12 voltos és −5 voltos tápfeszültségre is szüksége volt.

1975 januárjában, a Popular Electronics magazinban elstartolt egy cikksorozat, ami egy 8080-as mikroprocesszort használó házi számítógép megépítéséről szólt. Ez nagyon sok amatőr számítógép barkácsolót bevonzott és elindított egy egész kis iparágat, amely később jelentős történések melegágyává vált.

Retrocomputing - A múlt velünk élő örökségei

  Aki még valamikor a '80-90-es években kezdett foglalkozni a számítástechnikával, esetleg elgondolkodik azon, hogy napjainkra megmaradt-e még bármi a '80-as évek személyi számítógépeinek technikájából vagy esetleg a még régebbi időkből. A számítástechnika szinte követhetetlenül gyors fejlődését nap-mint-nap tapasztalja az ember. Már teljesen megszokottá vált, hogy néhány évente új technológiák váltják egymást. Egy-egy új megoldás maximum pár évet él, hogy átadja a helyét valami még gyorsabb, még nagyobb teljesítményű csodának. A folyamatosan cserélődő alkatrészek általában csak a legújabb komponensekkel működnek együtt, így aki gépbővítésben töri a fejét, könnyen szembesülhet azzal, hogy az aktuális processzor generáció vagy a legújabb memória modulok, videó kártyák az alig pár éves alaplappal már nem kompatibilisek. De így van ez szinte minden egyéb eszközzel is. Hol találunk már soros porta dugható egeret, párhuzamos portra csatlakozó nyomtatókat,  VGA interfésszel szerelt monitort? Ezek a csatlakozási lehetőségek eltűntek már a mai számítógépekről.

  Ebben az őrült tempójú változásban vajon van-e bármi, ami túlélte azt a 40 évet, ami a jelen kor számítógépeit elválasztja az ős PC-ktől? Ha a hardvert nézzük, akkor gyakorlatilag semmi. Talán egyedül az USB port az, ami makacsul kitart, és már 25 éve velünk van, habár az USB-C csatlakozó egyeduralkodóvá válásával a régebbi eszközök lassan, de biztosan használhatatlanná válnak az újabb gépekkel. Gondolhatnánk, hogy egy mai, korszerű számítógépben gyakorlatilag semmi sincs már meg az eredeti PC-kből. Vagy mégis? 

  Ha igazi túlélőket szeretnénk találni, a számítógépek puha részére, a szoftverre érdemes fókuszálni. Az első dolog, ami talán nem annyira közismert, hogy még a legújabb Intel processzorok is utasítás készlet szinten kompatibilisek az eredetileg 1978-ban megjelent Intel 8086-os mikroprocesszorral!

intel-8086-feature-768x424.jpg

Intel 8086 - 16 bites mikroprocesszor

  A 8086-ra, vagyis igazából ennek egy kissé lebutított, 8 bites adatbusszal rendelkező változatára, az Intel 8088-ra épült az 1981-ben debütált IBM PC, ami az ősapja minden jelenleg kapható PC kompatibilis gépnek. Persze, ha a PC alatt az IBM gyökerekkel rendelkező, Intel (kompatibilis) processzorra épülő gépeket értjük. Az Intel annyira szívügyének tekintette, hogy az újabb  processzorain is működjenek a régi szoftverek, hogy a több mint 40 évre visszanyúló kompatibilitást a mai napig megtartotta. Ez igaz nem csak az Intel által gyártott processzorokra, hanem minden más egyéb, úgynevezett x86 utasítás készletet használó processzorra is. Na ja, az igazi értéket mindig is a szoftverek jelentették. Számítógépet tervezni nem olyan bonyolult, mint újból megírni egy sok éven, netán évtizeden keresztül fejlesztett programot. Nem véletlen, hogy a szoftverek hordozhatósága fontos szempont volt régen és manapság is. Persze ezt a nagyfokú kompatibilitást biztosító x86 üzemmódot a mai operációs rendszerek és alkalmazások már nem használják, de érdekes tudni, hogy a mai napig futtathatók a régi kódok, ha valakinek erre támad kedve.

  Most, hogy rácsodálkoztunk arra, hogy még a legmodernebb számítógépeink is hordozzák az őseik hagyatékát, talán nem annyira meglepetés, hogy az IBM számítógépekhez eredetileg fejlesztett BIOS funkciók is megtalálhatók a korszerű gépekben. Persze manapság már alapvetően nem ezeket használják a programok vagy az operációs rendszer, de kompatibilitási okokból azok a funkciók amelyeket az eredeti BIOS biztosított, most is elérhetőek, ha valaki szeretné ezeket használni. Szerencsére ez igaz pl. a videókártyákra is. A legújabb videókarik is még mindig támogatják azokat az üzemmódokat, és funkciókat, amelyeket az 1987-ben debütált VGA kártyákban valósítottak meg. Felmerülhet kérdésként, hogy ez a gyakorlatban is azt jelenti, hogy egy modern számítógép képes futtatni akár harminc évvel ezelőtt készített programokat? A válasz erre a kérdésre, hogy alapvetően igen! Ennek demonstrálására érdemes belekukkantani ebbe a videóba: Installing MS-DOS on a Ryzen Gaming PC!

  Találunk-e még valami ennél is régebbi kapcsolatot a jelen és a múlt között? A 8086 volt az Intel első 16 bites processzora, de nem ezzel kezdődött a cég felfelé ívelő karrierje. A 8086-ot megelőzte a 8 bites processzorok érája, ami kb. 10 évvel az első IBM PC megjelenése előtt, 1972-ben kezdődött. Az Intel ebben az időszakban alapozta meg a ma is tartó töretlen fejlődését. A 8 bites korszak egyik legelső, és egyben az egyik legsikeresebb képviselője az Intel 8080-as mikroprocesszor volt, amit nyugodtan tekinthetünk a mikroszámítógépek hajnalát beragyogó alapvetésnek.

l_amd-c8080.jpg

Intel 8080 - 8 bites mikroprocesszor

  Ezzel a CPU-val épültek a '70-es években az első házilag készített számítógépek. A gépépítők klubokat hoztak létre, amelyekben számos, később óriási befolyásra szert tevő számítástechnikai géniusz tette meg az első szárnycsapásokat, hogy aztán saját céget alapítva elindítsa a világhír felé a vállalkozását. Az Intel a 8086 megalkotásánál sok dolgot átvett, vagy inkább megtartott a 8 bites elődből. A processzor belső felépítése, utasítás készlete a 8080 továbbfejlesztésének tekinthető. OK, akkor ezek szerint megtaláltuk a mai PC-k legtávolabbi felmenőjét, az Intel 8080-at. Hát nem egészen, ugyanis nem a 8080 volt az Intel első 8 bites processzora, hanem az 1972-ben piacra kerülő Intel 8008, amely logikus továbbfejlesztéseként jött létre a méltán népszerű 8080-as.

kl_intel_c8008-1.jpg

Intel 8008 - az első 8 bites mikroprocesszor

  Tehát még régebbre kell visszamennünk, hogy megtaláljuk a modern PC-k kialakulásához vezető út kiindulási pontját. Ez az út a távoli '60-as évek végén még csak egy kis csapás volt abban az erdőben, amit az igazi számító-GÉPEK, a mainframe-ek uraltak. Ezek az ősgépek hatalmas méretekkel és talán még ennél is nagyobb árcédulákkal készültek. Az áruk millió dollárokban volt mérhető, klimatizált géptermeket igényeltek és az üzemeltetésük is drága és bonyolult volt. Nem csoda, hogy nem is készült belőlük túl sok. Ezeknek a gépeknek nem volt saját képernyője, billentyűzete mint manapság, hanem általában több darab, úgynevezett számítógép terminál kapcsolódtak hozzájuk. Ezeken keresztül párhuzamosan egyszerre többen is használhatták őket, akár távolról, telefon vonalon keresztül is.

article_ibm-360_1.jpg

IBM System/360 mainframe számítógép a '60-as évekből

  Ezeknek a monstrumoknak a kezeléséhez, az adatok, programok beviteléhez és az eredmények megjelenítéséhez, az akkor még elterjedt lyukszalagon, lyukkártyán és sornyomtatókon kívül, a '60-as évek vége felé már kezdtek megjelenni a videó terminálok is. Ezek egy klaviatúrából és egy katódsugárcsöves megjelenítőből álltak. A billentyűzet kezeléséhez, a képernyőn megjelenő karakterek kirajzolásához és a számítógéppel történő kommunikáció megvalósításához elég összetett elektronikát, gyakorlatilag egy kis számítógépet tartalmaztak, amelyet az akkoriban a felvezető gyártás csúcsát jelentő diszkrét digitális integrált áramkörökből építettek meg. Az egyik ilyen terminál gyártó cég a Computer Terminal Corporation (CTC) volt. A CTC elhatározta, hogy a legújabb fejlesztésű Datapoint 2200 típusú termináljában valami új dolgot fog kipróbálni.

ctc-datapoint-2200-pic002.jpg

Datapoint 2200 programozható terminál - a mikroszámítógépek őse

  A diszkrét áramkörök funkcióit egyetlen chip-be szerette volna integrálni. Mivel ő maga nem rendelkezett az ehhez szükséges tudással és technológiával, felkért két, akkor már ismert félvezető gyártót, hogy elkészíttesse a saját tervei alapján ezt a bonyolult és speciális integrált áramkört. Az egyik félvezető gyártó az Intel volt. A CTC 1969-ben szerződést kötött az Intel-lel az integrált áramkör tervezésére és gyártására. Az architektúrát és az utasítás készletet a CTC találta ki, az Intel-nek ezek alapján kellett szilíciumba "öntenie" a chip-et. A fejlesztés megcsúszott, az Intel nem tudta tartani az ígért és kívánatos határidőt, ezért a két cég szerződést bontott. A CTC megtartotta a fejlesztésre szánt pénzt, az Intel pedig a majdnem kész - most már nyugodtan kimondhatjuk -, mikroprocesszort. A Datapoint 2200 végül a hagyományos módon, kb. 100 darab diszkrét integrált áramkörökből épült meg, az Intel pedig 1972-ben piacra dobta a 8008-at, az első egy chip-ben megvalósított 8 bites mikroprocesszort. A sztori folytatásáról már esett szó az előzőekben. Érdekes belegondolni, hogy akár a legújabb Core i7-es processzor is, valahol még mindig őrzi a CTC Datapoint 2200 terminálhoz fejlesztett utasítás készlet örökségét. Vajon hogyan alakult volna a számítógépek története, ha nem kapja meg az Intel azt a megbízást 1969-ben? Lehet, hogy most Motorola processzorok ketyegnének a gépekben, amire egyébként is jó esély volt, amikor a '70-es évek végén az IBM PC tervezői megálmodták a Personal Computert. De ez már egy másik történet. 

  A manapság népszerű operációs rendszerek is rejtegetnek relikviákat a régmúlt időkből. Kezdjük a vizsgálódást a legkézenfekvőbbel, a Microsoft Windows-al. Könnyen gondolhatnánk, hogy egy Windows 10-nek aztán tényleg semmi köze nincs a '80-as évek fapados, csak számokat és betűket megjeleníteni képes, parancssoros operációs rendszeréhez, a DOS-hoz. Ez alapvetően igaz is, de még a legújabb Windows is hordoz magában néhány szilánkot a múltból. A legközismertebb a parancsértelmező, amit a CMD.EXE paranccsal lehet elindítani. Ha az ember beírja a help parancsot, megkapja a parancsértelmezőben használható parancsok listáját. Ezek közül jó néhány megtalálható volt már a '80-as években kiadott DOS verziókban is és a funkciójuk is ugyan az volt, mint ma. Ilyen parancsok pl. a CD, DIR, COPY, MD, DEL, REN, stb. Ha valaki ebben leli örömét, ezeket a parancs soros utasításokat most is ugyan úgy használhatja, mint 30 évvel ezelőtt. Mielőtt azt hinnénk, hogy ezzel a végére is jártunk a dolognak és megtaláltuk a DOS-os világ utolsó hagyatékait, érdemes arra gondolni, hogy a DOS nem csak úgy lett a semmiből, hanem elég kalandos úton vált a PC-k alapvető operációs rendszerévé a '80-as években.

  Annyit sokan tudnak, hogy annak idején Bill Gates valahonnét megvette a DOS-t, amit tovább adott az IBM-nek, akinek sürgősen kellett egy operációs rendszer a IBM PC-hez. Kicsit pontosítva a történetet, Bill Gates-t illetve a Microsoft-ot megkereste az IBM, hogy tárgyaljon velük az IBM PC-k leendő operációs rendszerével kapcsolatban. Úgy tudták, hogy a Microsoft-nak van egy operációs rendszere Zilog Z80 alapú mikroszámítógépekhez.

zilog_z80.jpg

Zilog Z80 - az Intel 8080 oldalhajtása, ami túlszárnyalta az ihletőjét

  A feltételezés azon alapult, hogy a Microsoftnak volt egy saját fejlesztésű, a Zilog Z80 CPU köré konstruált bővítő kártyája az Apple II-höz, amely segítségével az akkori idők népszerű 8 bites operációs rendszerét, a CP/M-et lehetett futtatni az Apple gépén. Gates tovább küldte az IBM fejeseit a Digital Research nevű céghez, akik a CP/M gazdái voltak, hogy velük tárgyaljanak. Végül az IBM nem tudott megegyezni a DR-el, így újból Gates-nél kötöttek ki. A Microsoft-nak korábbról volt már kapcsolata a Seattle Computer Products (SCP) céggel, akiknek BASIC fordítót készítettek az SCP Intel 8086 alapú bővítő kártyájához, amelyet az S-100 buszrendszert használó mikroszámítógépekhez fejlesztett. Micsoda? Nem az IBM PC volt az első számítógép, ami az Intel 8086/88 processzort használta? Hogy ezzel kapcsolatban képbe kerüljünk, kicsit vissza kell ugorjunk az időben a 8080-as processzor megjelenését követő időszakra, a '70-es évek közepe tájára.

  Volt már róla szó, hogy a 8080 tette lehetővé a mikroszámítógépek eljövetelét. Számos egyedi fejlesztésű számítógépet építettek a 8080 köré, amelyek közül az egyik legsikeresebb és legismertebb az ALTAIR 8800 mikroszámítógép volt.

altair8800.jpg    altair_8800b_computer.jpg

MITS ALTAIR 8800 - 8 bites mikroszámítógép

  Ez a gép mai szemmel nézve meglehetősen ormótlan megjelenésű és nehézkesen kezelhető, de volt legalább egy olyan innováció benne, ami később jelentősnek bizonyult. Ez a gép ugyanis moduláris felépítésű volt, egy alaplapból, és erre merőlegesen elhelyezkedő áramköri kártyákból állt. Az alaplapra érintkező sávok voltak forrasztva, amelyekbe az igény szerinti, különböző funkciójú áramköri kártyákat be lehetett dugni. Külön kártyákon helyezkedett el a CPU, a memória, a különböző periféria kezelő áramkörök, stb. A kártyák közötti fizikai és elektromos kapcsolatot biztosító megoldást összefoglaló néven S-100 busznak hívták. Gyakorlatilag ezt a koncepciót valósították meg az IBM PC tervezésekor is. Az S-100 busz de facto ipari szabvánnyá vált a '70-es években, hasonlóan, mint később a PC busz, vagy más néven ISA busz. Számos gyártó kínált különböző bővítőkártyákat ehhez a rendszerhez. Mivel itt maga a mikroprocesszor is egy külön kártyán volt - ellentétben a PC-ben használt megoldással -, annak sem volt különösebb akadálya, hogy akár teljesen más processzorra épülő vezérlő kártyát használjanak a rendszerben. Készültek is szép számmal ilyen processzor kártyák, amelyekkel rugalmasan fejleszthető volt ez az architektúra. Történetesen a Seattle Computer Products egy Intel 8086 processzorra épülő bővítő kártyát szeretett volna piacra dobni a a '70-es évek végén, alig egy évvel a 8086 megjelenése után. A kártya készen volt, de kellett volna nekik egy operációs rendszer, ami elfut a 8086-on. Volt ilyen a láthatáron, így arra vártak, hogy a Digital Research által beharangozott, hőn áhított CP/M-86 megjelenjen, de ennek fejlesztése csúszott, így muszáj volt valamit kitalálniuk, hogy tudjanak adni operációs rendszert a spéci bővítőkártyájukhoz. Nem volt mit tenni, megbíztak egy tehetséges ifjú programozót, nevezetesen Tim Paterson-t, hogy mocskos gyorsan üssön össze valami oprendszert a bővítő kártyához. 1980 közepére el is készült a QDOS vagyis a Quick and Dirty Operating System. Tim Peterson-nak nem volt annyi ideje, hogy valami forradalmi újdonsággal álljon elő. A CP/M felhasználói kézikönyvek és referencia dokumentációk alapján készítette el a QDOS-t. Gyakorlatilag írt egy új oprendszert, ami úgy nézett ki és úgy működött mit a CP/M, de kódszinten nem egyezett meg vele. Persze némileg kiegészítette azokkal a dolgokkal, ami a 8086 processzor használata miatt szükséges volt, illetve beépített néhány új megoldást, pl. a Microsoft által használt FAT fájlrendszert. Amikor elkészültek az oprendszerrel, átkeresztelték 86-DOS-ra, és elkezdték licenszelni más cégeknek is.

  Itt vesszük fel újból a korábban elejtett fonalat, mivel az előzőekben leírtak éppen arra az időszakra estek, amikor az IBM a Microsofton keresztül éppen operációs rendszert keresett az IBM PC számára. Bill Gates az IBM felkérésére 25 ezer dollárért licenszet vásárolt az SCP-től a 86-DOS-hoz. Aztán 1981-ben Gates-ék átcsábították magát Tim Paterson-t is, hogy testre szabja a 86-DOS-t az IBM PC számára. Kicsit később a 86-DOS-hoz kapcsolódó összes jogot megvásárolták az SCP-től, 50 ezer dollárért. Nem ez volt az évszázad üzlete az SCP számára, de ki gondolhatta volna akkor, hogy a Microsoft-ot éppen ez fogja az égig röpíteni? Bill Gates tovább adta az IBM-nek az immáron PC DOS 1.0 néven jegyzett operációs rendszert, de megtartotta a jogokat, hogy a Microsoft is forgalmazhassa saját néven az operációs rendszert. Ez lett az MS DOS 1.0.

  Mivel alapvetően a CP/M-ből nőtt ki az MS DOS és közvetve a Windows is, így nem meglepő, hogy számos CP/M-es megoldás napjainkig tovább élt bennük. Pl. a korábban említett parancssoros utasítások egy része is közvetlenül a CP/M-ből származik. További örökség, az egészen a Windows 95 megjelenéséig használt 8+3 karakteres fájlnév rendszer. Illetve a 3 betűs fájlnév kiterjesztések (.txt, .com, stb.) egy része is a CP/M idejéböl maradt ránk. Habár már nem alaptartozék a floppy meghajtó, de azért "C" betűvel kezdődnek a merevlemezes meghajtók azonosítói, mert a CP/M hagyatékaként az "A" és "B" betű a maximum két darab floppy meghajtónak van fenntartva. Mint látjuk, néhány dolog még a Windows 10 idejében is pont úgy van, ahogy a '70-es években kitalálták a Digital Research-nél. Izgalmas belegondolni, hogy hiába telt el lassan 50 év, még mostani számítógépeink is hordoznak néhány olyan megoldást, amelyet generációkkal ezelőtt alkottak meg a számítástechnika úttörői.

Retrocomputing - Egy különleges lelet

A múló idő végtelen óceánja időnként különleges dolgokat vet ki magából. A most bemutatásra kerülő maradvány is egy ilyen különlegesség. A régi idők egy kis darabkája, amely valami csoda folytán elkerülte a teljes enyészetet, az elektronikai hulladék feldolgozók kemencéit.

A Vatera dobta elém a fényképét és első ránézésre fogalmam sem volt, hogy mi is lehet ez? Valami régi alaplapnak látszott, de semmi olyasmihez nem hasonlított, amit PC-be valaha építettek.

img_20210129_193920.jpg

Szerencsére volt néhány közelebbi fénykép is róla, így el lehetett indulni egy-két nyomon. Ami hamar kiderült, hogy a Nixdorf Computer nevű cég alkotta meg azt a szerkezetet, amelynek része volt ez az áramköri kártya.

img_20210129_194318.jpg

Nem csoda, ha nem ismerős a név. Több mint 30 évvel ezelőtt megszűnt ez a cég. Vagyis igazából nem szűnt meg teljesen, csak olyan speciális területen működik, ami kevésbé van szem előtt az átlag ember számára. A Nixdorf Computer AG egy német számítástechnikai vállalat volt, amelyet 1952-ben alapított a névadó Heinz Nixdorf. A cég a '60-as, '70-es években kezdett megerősödni, amikor a számítógépek dinoszauruszai, a mainframe-ek uralták még az IT világot. A pénzügyi szektor már nagyon korán ráérzett a számítógépekben rejlő lehetőségekre, hiszen ha valaki, akkor ők elmondhatják, hogy számokkal dolgoznak. Nem csoda, hogy a Nixdorf is elsősorban a banki számítógép rendszerekben volt érdekelt. A cég fénykora a '80-as évekre esett, de ugyan-úgy, mint sok más hasonló vállalat, akik a számítógép ipar úttörői voltak, nem tudtak alkalmazkodni a megváltozott piaci körülményekhez a PC korszak beköszöntét követően. A mindinkább megerősödő PC-k lassan, de biztosan, egyre több területről szorították ki a nagy és költséges mainframe-eket, és mini számítógépeket. Aki nem tudott átszállni a személyi számítógép ipar egyre nagyobb sebességgel robogó vonatára, az menthetetlenül lemaradt. A Nixdorf is ebben a cipőben járt, és miután 1990-ben a cég csődbe ment, a Siemens vásárolta fel a jól csengő brand-et, hogy közös informatikai üzletágat hozzon létre Siemens-Nixdorf néven. Egyébként van is egy spéci Pentium II-es alaplapom ilyen logóval.

20201124_200807.jpg

20201124_201755.jpg

Többszöri tulajdonosváltást követően, jelenleg a Diebold-Nixdorf cégben él tovább a név, és most is olyasmivel foglalkoznak, mint amivel 30-40 évvel ezelőtt: banki rendszerekkel, ATM-ekkel, point-of-sale automatákkal és hasonlókkal.

Nade ugorjunk vissza a lelethez. Ami még kiderült a képekről, hogy tényleg van valami köze egy számítógéphez, mivel egy Z80A mikroprocesszor található a lapon. Valami speciális 8 bites számítógép volt talán?

img_20210129_193939.jpg

Ilyenkor jön az, hogy az ember beirkálja a Google-ba a tárgyon található feliratokat, azonosítókat, számsorokat. Hátha feldob valami találatot ezekre a kereső. Szerencsére nem kellett túl sok időt eltölteni a keresgéléssel, mert hamar lett találat, amiből kiderült, hogy ez egy Nixdorf DAP4 típusú számítógép-terminál alaplapja lehet.

img_20210129_194014.jpg

Hurrá, most már legalább tudtam, hogy kb. mivel van dolgom. Információt és néhány képet itt találtam róla: Nixdorf DAP4

Mivel elég olcsón hirdették és nem volt rá nagy tolongás, így lecsaptam rá. Nyilván ebből terminál nem lesz már, mivel semmi más nincs meg hozzá, de érdekes projekt lenne valamennyire feléleszteni. Nem teljesen lehetetlen ez a küldetés, mert alapvetően hiánytalan és komolyabb sérülés sem látszik rajta.

img_20210129_193932.jpg

Egy szalag kábelen keresztül kapcsolódott hozzá a tápegység. Egy kis méricskéléssel ki lehet deríteni, hogy hol kapta meg a tápot. Mivel alapvetően egy TTL rendszerről beszélünk, ez azt jelenti, hogy 5 V-al üzemelt. Persze lehet, hogy más feszültség is kell neki, de nem látszik reménytelennek ennek kiderítése.

Úgy néz ki, hogy a CPU kártya a megjelenítő részhez csupán egy kompozit videó jelel csatlakozott. A kis aranyozott koax csatlakozót meg is találtam. Viszont ha ez egy kompozit videó jel, akkor bármilyen TV-re rá lehet kötni annak reményében, hogy lesz is rajta valami kép. Szóval ha sikerül a megfelelő tápokat bekötni és egyébként működik az alaplap, akkor a videó jelet egy TV-re továbbítva elvileg valamit látni kellene rajta. Ez lenne az első kísérlet.

img_20210129_193955.jpg

Az IC-ken lévő gyártási kód alapján is kiderül, hogy 1988-ban gyártották ezt a terminált. Ezt megerősíti az alaplap aljára ragasztott címkén lévő felirat is.

img_20210129_195158.jpg

A másik ami eszembe jutott, hogy ha az előző akadályokat sikerül átugrani, talán át lehetne alakítani a szerkezetet valami általános célú, Z80 alapú mikroszámítógéppé. Minden megvan rajta ehhez. CPU, soros interfész IC, 64 kbyte RAM, EPROM, billentyűzet illesztő, videó kimenet, stb. Nem tűnik lehetetlennek ez sem, habár nem is egyszerű feladat, mivel alaposabban fel kellene deríteni a működését áramköri szinten és még valami BIOS-t, illetve OP-rendszert is kellene hozzá írni. Na ez azért nem mostanában lesz, de elteszem a távlati terveket tartalmazó fiókomba az ötletet.

Retrocomputing - C64 programozás PC-n

Az előző blog bejegyzésemben említettem, hogy akár PC-n is lehetséges régi számítógépeket emulálni, így ki tudjuk próbálni vagy akár programozni ezeket a régi gépeket úgy is, ha a valóságban nem rendelkezünk ilyenekkel. A mostani írás arról szólna, hogy én milyen eszközöket használok a program íráshoz, teszteléshez, ha mondjuk C64-re szeretnék valami kis programot készíteni.

Az elején szeretném tisztázni, hogy kimondottan assembly nyelven történő programozásról lesz szó. Főleg azért, mert a hardverközeli dolgokat célszerűbb ezen a nyelven programozni, és szerintem ez az a terület ami igazán érdekes lehet még mai szemmel is a régi számítógépekben. A C64 BASIC-ben is sok mindent meg lehet csinálni a PEEK és POKE utasításokkal, amelyekkel direkt hozzá lehet férni a gép memóriájához és a periféria áramkörök regisztereihez, csak nem sok értelme van ennek a fából vaskarika megoldásnak. Az assembly sokkal alkalmasabb ilyesmire és nem utolsósorban gyorsabb és kisebb méretű programokat lehet így készíteni, ami lényeges szempont egy olyan számítógépen, amelynek kevesebb memóriája van, mint egy átlag email mérete. Egyébként a C64 BASIC programozáshoz van egy nagyszerű integrált fejlesztő rendszer PC-n, de azt majd talán máskor mutatom be.

Ezt az írást leginkább figyelemfelkeltőnek, kedvcsinálónak szánom azoknak, akik valamilyen programozási ismeretekkel már rendelkeznek PC-n. Mondjuk készítettek Windows programokat Visual BASIC-ben, vagy írtak Excel makrókat, esetleg programoztak már Arduino-t. Kezdjük ott, hogy assembly programot nagyon egyszerű írni, mert csak egy szövegszerkesztő kell hozzá. Akár a Windows Notepad is alkalmas erre, de ettől azért van jobb választás. Én személy szerint a Notepad++ progit használom. Ennek nagy előnye, hogy sokkal áttekinthetőbb módon lehet vele megjeleníteni a forrás kódot, illetve a program írást is segíti azzal, hogy automatikusan ki tudja egészíteni az elkezdett szavakat, így nem kell mindig mindent végig gépelni. 

Az assembly sajnos nem teljesen univerzális nyelv. Vannak ugyan hasonlóságok, de ahány gyártó, annyi féle nyelvjárás létezik. A C64-ben a MOS 6510 típusú CPU ketyeg, így ezt a nyelvjárást kell elsajátítani. A 6510 utasításkészlete nagyon egyszerű, ami az assembly programozással való első ismerkedés során előnyös, de ez az egyszerűség bizonyos nehézséget is jelent a későbbiekben, mert többet kell dolgozni egy adott feladat megoldásához, mint egy bővebb utasításkészlettel rendelkező CPU esetében.

Így néz ki egy Notepad-ban megnyitott, 6510-re íródott assembly program részlete:

 Így pedig a Notepad++-ban:

Azt hiszem, hogy jól látszik a különbség, a használatot segítő sok ügyes funkcióról nem is beszélve.

Miután elkészültünk a program írásával, amit forráskódnak nevezünk, kell valami, ami az assembly nyelven írt programot lefordítja gépi kódra, amit object code-nak szokás hívni. A gépi kód az a bináris számsorozat, amit a számítógép processzora közvetlenül "megért". A gépi kódra történő fordítást az úgynevezett compiler-ek, magyarul fordítóprogramok végzik. A fordítóprogramok processzor specifikus kódot állítanak elő, ami azt jelenti, hogy csak egy adott processzor típuson fog működni a kód, ezért minden processzor típushoz létezik olyan fordítóprogram, ami képes az adott processzor által értelmezhető kódra lefordítani az assembly nyelven írt programot. Léteznek olyan fordítók is, amelyek többnyelvűek, több féle processzort is ismernek, így egy fordítót használhatunk különböző processzorokra írt programok fordításához.

Én a Telemark Assembler-t vagy röviden a TASM-ot használom, ami szintén egy több nyelvű fordítóprogram. Ezeket a processzorokat vagy inkább processzor családokat ismeri: 

6502
6800/6801/68HC11
6805
8048
8051
8080/8085, Z80
TMS32010, TMS320C25
TMS7000
8096/80196

A 6510 is a 6502 család tagja, így ehhez a procihoz is használható a TASM. A 6502/6510 CPU-hoz nagyon sokféle fordítóprogram létezik, mivel ez egy elég népszerű processzor volt annak idején, de a mai napig gyártják még az egyik újabb kori reinkarnációját. Én tudatosan választottam a bőséges lehetőségek közül a TASM-ot, mert terveimben szerepel, hogy valamikor szeretnék majd multi platform szoftvereket írni, vagyis ugyanazt a programot több különböző processzorra is szeretném lefordítani. Persze ez nem azt jelenti, hogy mindenféle változtatás nélkül ugyanaz a forráskód lefordítható különböző procik gépi kódjára, de számomra egyszerűbbnek látszik, hogy ugyanazt a compiler-t tudom majd használni és nem kell megtanulni minden egyes fordító kismillió opcióját, hanem elég eggyel megismerkedni.

A fordítóprogramok használata nem bonyolult, habár a régebbi darabok parancssoros alkalmazások, így aki csak a Windows ablakokkal találkozott korábban, annak kissé idegen lehet a használatuk. Kb. így néz ki egy parancssorból indított fordítás a TASM-al: tasm -65 -b test01.asm test01.prg 

Ha minden jól megy és nincs semmi hiba az assembly programban, létrejön egy úgynevezett lista fájl és maga a gépi kódot tartalmazó program fájl. A lista fájlban soronként egymás mellé írva látszik a gépi kód és az assembly nyelvű megfelelője. Valahogy így néz ki:

Evvel igazából túl sok dolga nincs az embernek, de ha a fordításkor valami hibába ütközik a fordító, akkor a hibára utaló megjegyzések ebben a listában olvashatók, illetve itt már látszik az is, hogy konkrétan milyen memória címeken fog elhelyezkedni a gépi kódú program.

A lényegesebb maga a gépi kódú programot tartalmazó úgynevezett bináris fájl. Ezt már alkalmas arra, hogy egy valódi számítógépen vagy jelen esetben majd az emulátoron futtassuk. Egy szöveg nézegetővel megjelenítve így néz ki a tartalma:

Ez már határozottan nem embernek való olvasmány, de nem is az a lényege, hogy mi emberek megértsük. Elég ha a processzor "megérti".

Mondjuk, hogy eljutottunk idáig és van egy lefordított gépi kódú programunk. Mit lehet ezzel csinálni? Több dolgot is, de amit a következőkben szeretnék bemutatni, az egy úgynevezett debugger. A debugger egy olyan alkalmazás, ami a programhibák (bug-ok) megtalálását teszi egyszerűbbé. A legfontosabb tulajdonsága, hogy a debugger-ben elindítva a programunkat, akár soronként, lépésenként is végre tudjuk azt hajtatni. Közben minden olyan információt megjelenít a debugger, ami alapján tudjuk ellenőrizni, hogy a programunk valóban azt csinálja amit szeretnénk. Töréspontokat tudunk elhelyezni a programnak azokra a helyeire, ahol azt szeretnénk, hogy álljon meg a végrehajtás, hogy tudjuk ellenőrizni a program működését. Ennél még sokkal több lehetőséget is biztosítanak ezek a nagyon hasznos alkalmazások, de bevezetőnek ennyi is elég.

Ha PC-n szeretnénk C64-re írt programokat debuggolni, akkor az egyik legjobb választás az egyszerűen csak C64 Debugger-nek nevezett hiper-szuper alkalmazás. Ez tulajdonképpen tartalmazza a VICE nevű C64 emulátort, amit kiegészítettek a debuggolást megkönnyítő funkciókkal. A futtatható programmal együtt letöltésre kerül egy elég jó manual is, amiből el lehet sajátítani a kezelését, így csak néhány alapvető dolgot említek meg a használatával kapcsolatban. A progi elindítása után ez a kép fogadja az embert:

Nem állítom, hogy első pillanatra nem kaotikus amit az ember lát, de hamar el lehet igazodni rajta. A főbb részek:

A jobb oldalon, felül lévő kék terület maga a C64 emulátor képe, amin indítás után a C64 kezdő képernyője látható, felette a CPU regiszterek tartalma van megjelenítve.

Bal oldalt a disassembler által visszafordított programlista látszik, ahol az aktuálisan végrehajtás alatt lévő utasítást megjelöli a program. A disassembler pont a fordítottját csinálja mint a compiler. Gépi kódból tud visszafordítani assembly nyelvre, így az ember által jobban érthető módon jelenik meg a program lista. Amíg nem töltjük be és indítjuk el a saját programunkat, addig a C64, kis túlzással operációs rendszernek nevezett alap programja fut. Ez végzi a képen látható karakterek megjelenítést, a kurzor villogtatását, a billentyűleütések figyelését és még egy csomó dolgot.

A hexadecimális számsorokat tartalmazó, középen alul látható terület az úgynevezett memória dump. Itt egyszerűen csak azt látjuk, hogy a memória egy adott címén milyen értékek vannak aktuálisan. Ami egy jópofa dolog, hogy a memória tartalmát innét közvetlenül át is tudjuk írni és ezek a változtatások valós időben érvényre is jutnak. Ez sokszor hasznos, ha ki szeretnénk próbálni valamit vagy bizonyos változók értékét közvetlenül szeretnénk manipulálni. A hexadecimális értékeket tartalmazó táblázat mellett ugyan ennek a memória területnek  ASCII kódokkal reprezentált kiíratása, illetve még jobbra, bitmap képként történő megjelenítése látható.

Az emulátor képe mellett a C64 mind a 64 kbyte memóriájának egyfajta grafikus reprezentációja látszik. Ennek tartalma egyébként nagyítható is. Túl sok hasznát eddig nem vettem, de lehetséges, hogy ez csak az én fogyatékosságom.

A lefordított programot a CTRL+O billentyű kombináció lenyomásával lehet a legegyszerűbben betölteni és elindítani a debuggerben. A szokásos Windows fájl kiválasztó ablakban ki kell választani a fájlt és a "Megnyitás" gomb megnyomását követően rövidesen elindul a művünk futtatása:

További hasznos billentyűkombinációk:

A virtuális C64 alaphelyzetbe állítása: CTRL+R
A korábban már megnyitott fájl újra töltése és indítása: CTRL+L
Lépésenkénti végrehajtás: F10
Futtatás: F11
Töréspontokat a bal oldalon látható cím oszlop megfelelő sorára kattintva lehet elhelyezni illetve törölni.

A program még nagyon sok egyéb lehetőséget rejt magában, de ezek részletes ismertetésére nem vállalkozom. Persze ha lenne rá igény, akkor minden lehetséges. :-)

Röviden ennyit szerettem volna megmutatni ízelítőül. Ilyen rövidre fogva a mondandómat nyilván nem tudtam kitérni minden részletre, de remélem, hogy kedvcsinálónak ez is elég lesz.

Retrocomputing - Van-e értelme 2020-ban C64-et programozni?

Már az elején lelőve a poént, a címben feltett kérdésre a rövid és határozott válaszom: VAN. Ennyi viszont elég kevés lenne egy blog bejegyzéshez, így bővebben kifejteném, hogy miért gondolom ezt. Azonnal felmerülhet a kérdés, hogy vajon mit tudhat egy közel 40 éves, mai szemmel hihetetlenül elavult számítógép, amit a mai PC-k nem tudnak? Szinte még a kérdés is értelmetlennek látszik. Egyáltalán ki gondolhatja - néhány elvetemült rajongón kívül -, hogy praktikusan van még bármi értelme ezekkel az ősöreg masinákkal időt tölteni. Igazából a C64 helyett írhatnék bármilyen kortárs 8 bites home computer-t, a lényeg nem a gyártó és a típus. Csupán a személyes preferenciáim miatt hoztam fel a Commodore C64-et.

Egy egyáltalán nem egzakt, nagyságrendi műszaki paraméter összehasonlítás, csak a viszonyítás kedvéért:

Számítógép CPU órajel Memória Háttértár
C64 1 MHz 64 Kbyte 170 kbyte / disk, 100 disk = kb. 20 Mbyte
Átlag PC 4 mag x 3 GHz 8 Gbyte 2 Tbyte
12000x 125000x 100000x

 

Azt hiszem ez alapján kijelenthető, hogy egy mai számítógép nagyságrendileg százezerszeres "teljesítménnyel" rendelkezik egy C64-hez képest. Ezek után miről beszélhetünk még? Pedig van egy, de bizonyos területeken fontos és behozhatatlan előnye a C64-nek és a hozzá hasonló öreg vasaknak, amit egy szóval így jellemezhetünk: EGYSZERŰSÉG!

Ez a tulajdonság egy területen lehet nagyon fontos: a számítástechnika oktatásban. Az egy külön kérdéskör, hogy van-e szükség általános számítástechnika oktatásra, és ha igen, akkor ennek elég-e felhasználói szintűnek lenni, de erre most meg sem próbálok választ keresni. Maradjunk azoknál, akik szakmájuknak választják a számítástechnikát, és már pl. szakközépiskolában (szakgimnáziumban) magasabb szinten kell tanulniuk azt. OK, akkor tanítsák a jövő számítástechnikusainak a jelen kor technikáját. Kérdés megoldva. A probléma szerintem pont itt kezdődik. A jelen kor technikája mérhetetlenül bonyolultabb, mint amit egy pár éves képzés során meg lehet tanítani. Élnék a gyanúval, hogy talán nincs is olyan szakember, aki egy korszerű számítógép minden aspektusát részletesen ismeri. Nem is biztos, hogy szükség van manapság ilyen polihisztorokra, mert mint más területeken is, nyilván itt is kialakult már egyfajta szakosodás. Ezt csak egy feltételezés részemről, mert amikor én tanultam számítógép architektúrákat, akkor amit egy PC-ről érdemes volt tudni, az elfért egy párszáz oldalas könyvben, amit egy félév alatt meg is lehetett tanulni. Pedig már egy IBM XT is lényegesen komolyabb gép volt, mint egy átlag home computer. Arra nincs rálátásom, hogy manapság mit és hogyan tanítanak számítógép ismeret keretében, de kétlem, hogy a korszerű PC architektúrát olyan részletesen meg lehetne tanítani, mint annak idején.

Múltkoriban letöltöttem az Intel-től az aktuális mikroprocesszor programozói kézikönyvet. Ez egy 10 kötetes mű, összesen 5000, apró betűkkel teleírt oldal... Ja, és ez csak a procik programozásáról szól. Ebben még egy szó sem esik a memória kezelésről, a buszrendszerről, a perifériákról, a BIOS-ról. Az ezekről szóló könyvek valószínúleg további sok ezer oldalt tennének ki manapság. 

Szóval én azt gondolom, hogy ha meg akarjuk tanítani alap szinten, hogy mi a számítógép, hogyan működik, ahhoz a jelenkori technika már túlságosan bonyolult és összetett. Ezzel szemben egy régi 8 bites gép, a maga primitívségével nagyon jó gyakorló terep, mert hiába egyszerű, alapvetően mindene megvan, ami egy számítógéphez kell. Van processzora, memóriája, perifériái, operációs rendszere, megszakítás kezelése, kép és hang generátora, stb. Igazából olyan, mint egy "igazi" számítógép egyszerű modellje. Az egyszerűtől a bonyolult felé haladva jobban meg lehet tanulni egy dolgot, mintha azonnal a bonyolulttal kezdenénk. Lehet nem a legjobb példa, de ha valakiből profi autó versenyzőt akarnak nevelni, akkor sem egyből a Forma 1-es autóba ültetik bele, hanem már pár éves korában kap egy pedálos lemez autót. Ezen már egy csomó dolgot meg lehet tanulni az autóvezetésről, ami majd később hasznos tudást és tapasztalatot jelent. Aztán jöhet a gokart és így tovább. 

Egy régi 8 bites gép a számítástechnika pedálos játék autója. Kicsi, lassú, egyszerű, de majdnem mindene megvan, mint egy mostani számítógépnek. Aki ennek a működését, felépítését, programozását megérti és elsajátítja, az majd a komolyabb gépeket is könyebben és alaposabban meg fogja érteni. Én ebben látom a dolog értelmét.

Itt fel lehetne hozni, hogy de hát van Arduino, ami egyszerű, kicsi, de mégis modern. Óriási közösség van mögötte, jól használható programozási környezet, stb, stb. Ez igaz, de az Arduino azért messze van egy komplett számítógéptől. Amire kitalálták, arra nagyon jó és hasznos, de nem igazi számítógép, mert hiányzik belőle egy csomó dolog. Pl. nincs operációs rendszere, rendes megjelenítője, beviteli perifériája. Jóformán mindent meg lehet hozzá csinálni a felsoroltakból, de az már egy másik terület, ami túlmutat a számítógép programozási ismeretek megszerzésén.

Határozottan az a véleményem, hogy középiskolai szintű számítástechnika oktatásban még mindig lehetne használni a 8 bites számítógépeket. Persze az már nem járható út, hogy valódi C64-ekkel vagy Spectrum-okkal töltség meg az oktató termeket, de ezen a problémán segítenek az emulátorok. A következő részben (remélem lesz majd ilyen), be szeretném mutatni, hogy én milyen fejlesztői környezetet használok a C64 programozáshoz.

Érdekes egybeesés (Vagy a Nagy Testvér figyelmessége. Kinek-kinek a hite szerint. :-), hogy miközben ezt a blogbejegyzést tervezgettem megírni, az egyik Facebook hirdetés ezt dobta elém:

Szóval úgy látszik, hogy ez nem csak nekem jutott eszembe. :-) Francba, megint elkéstem egy nagy felfedezéssel. Másik hasonló élményem éppen tegnap történt. A 2020. novemberi CHIP magazinban ez a cikk került a szemem elé:

20201130_223333.jpg

Először csak pislogtam és nem akartam hinni a szememnek. 2020-ban C64 BASIC parancssori utasításokat ismertetnek? Mi van itt? Legközelebb meg MS-DOS 3.1 telepítésről lesz szó? Úgy látszik, hogy el kell telni 30 évnek, hogy valami már annyira régi legyen, hogy újból elkezdje érdekelni az embereket. 

süti beállítások módosítása