PDP–8

12 bites számítógéptípus az 1960-as években

A PDP–8 egy 12 bites számítógéptípus, a PDP számítógép-család tagja volt az 1960-as években. A Digital Equipment Corporation (DEC) cég a típust 1965. március 22-én vezette be. Ez a gép volt az első széles körben elterjedt miniszámítógép: több mint 50 000 példányt adtak el belőle, így a legnagyobb példányszámban eladott számítógép volt a maga korában.[1][2] Sikerének titka – saját korához viszonyított – kis mérete (elfért egy asztalon) és alacsony ára volt (piacra kerülésekor 20 000 dollárba, öt évvel később 5000 dollárba került).

Egy PDP8 "Straight-8" változat a washingtoni Smithsonian Intézet múzeumában

A gépet kifejezetten kisméretű, olcsó és nagy sebességű tudományos számítógépnek tervezték, amely a lehető legkevesebb hardverrel felépíthető. A tervezési célok között elsődleges volt, hogy a géphez a hagyományos be-/kimeneti perifériák csatlakoztathatók legyenek és képes legyen együttműködni a mérési és szabályozási alkalmazásokban használt különféle analóg mérőeszközökkel. A gép emellett önállóan egy általános célú kisszámítógépként működött.[3]

A gép vezető tervezője Edson de Castro, a Data General cég későbbi megalapítója volt.[4]

Az első, informálisan „Straight–8” néven emlegetett PDP–8 modell ún. flip chip kártyákra szerelt, dióda-tranzisztor logikájú áramköri panelekből épült fel, maga a gép egy kisebb hűtőgép méretű volt.

Ezt követte a PDP–8/S modell, amely asztali és fiókos (rack-mount) változatokban jelent meg. A PDP–8/S kisebb és olcsóbb, ugyanakkor mérhetetlenül lassúbb is volt az elődjénél, a benne alkalmazott egybites soros ALU megvalósításnak köszönhetően. Ehhez a géphez egyetlen háttértároló eszköz volt elérhető, a DF32 jelű lemezegység.

A későbbi rendszerekben (PDP–8/I és /L, PDP–8/E, /F, és /M, valamint a PDP–8/A) már visszatért a gyorsabb párhuzamos megvalósítás, ami azonban az olcsóbb TTL MSI logikán alapult. A legtöbb mai napig fennmaradt PDP–8-as ebből az időszakból származik. A legáltalánosabb modell a PDP–8/E, mivel ehhez I/O eszközök sokasága volt elérhető és gyakran általános célú számítógépnek használták.

A személyi számítógépek 1975-ös megjelenésétől kezdve az olcsó mikroprocesszorokra épülő rendszerek, mint pl. a MITS Altair, majd később a TRS–80, Apple II és mások, kezdték uralni az általános célú kisszámítógépek piacát.

Az utolsó forgalomba került PDP–8 az 1979-es "CMOS–8s" nevű modell volt, ez már egy egyedi CMOS mikroprocesszort tartalmazott. A gép üzletileg megbukott, a versenyképtelen árazás miatt. A CMOS–8s sírját az 1981-ben megjelent IBM PC ásta meg, amely gyorsan beterítette az általános célú kisszámítógép-piacot.

A mikroprocesszort és kiegészítő csipjeit az Intersil egészen 1982-ig forgalmazta, az Intersil 6100 család tagjaiként. A kis energiaigényű CMOS csipeket katonai beágyazott rendszerekben használták.

Története szerkesztés

A PDP–8 sok ötletet vett át néhány korábban megvalósított 12 bites számítógépből, leginkább a Wesley A. Clark és Charles Molnar által 1962-ben tervezett LINC laboratóriumi gépből, amelynek terveire viszont nagy hatással volt Seymour Cray még korábbi 1960-as CDC 160 miniszámítógépe.[5][6] A gép közvetlen elődje a DEC PDP–5 számítógépe volt.[7][8] A PDP–8 lényegében a PDP–5 továbbfejlesztése volt, amelyben a PDP–5 egyes hiányosságait javították és amellyel sikerült megvalósítaniuk a gépi összeszerelést, amellyel nagy mértékben csökkenthető volt az előállítási költség. A gép vezető tervezője Edson de Castro volt. A gép 1965-ben jelent meg a piacon.[4]

A PDP–8 változatai szerkesztés

 
PDP–8/E előlap

A PDP–8 családba tartozó eladott gépek számát 300 000 fölöttire becsülik. Az alábbi típusok készültek:[9]

  • PDP–8
  • LINC–8
  • PDP–8/S
  • PDP–8/I
  • PDP–8/L
  • PDP–12
  • PDP–8/E
  • PDP–8/F
  • PDP–8/M
  • PDP–8/A
  • Intersil 6100 egycsipes PDP–8-kompatibilis mikroprocesszor (a VT78 számítógép processzora)
  • Harris 6120 CMOS egycsipes PDP–8-kompatibilis mikroprocesszor (a DECmate szövegszerkesztő gépekben alkalmazták)

Modern megvalósítások szerkesztés

A PDP–8-as gépet igen könnyű emulálni, mivel utasításkészlete sokkal egyszerűbb a modern számítógépekénél. A rajongók teljes PDP–8-as gépeket is építettek egyetlen FPGA áramkörrel.

A PDP–8-as több szoftveres szimulációja is elérhető az interneten. Ezek közül a jobb minőségűek pontosan hajtják végre a DEC operációs rendszert és a diagnosztikai programokat. A szoftver-szimulációk gyakran a PDP–8s modellt szimulálják a hozzá való összes lehetséges perifériával, de még ezek a szimulációk is csak egy kis részét foglalják le egy modern személyi számítógép kapacitásának.

Magyar vonatkozás szerkesztés

A KFKI Elektronikus Főosztályának munkatársai a PDP–8 gépet alapul véve kezdték el fejleszteni a TPA típusú számítógépeket 1966-ban. Az 1968-ban bemutatott TPA–1001 a PDP–8 újraimplementálása volt, a DEC által közreadott utasításkészlet és ismertető alapján. A TPA–1001 ugyan klón, de egy független megvalósítása a PDP–8 utasításkészletének.[10][11][12]

Felépítése szerkesztés

 
PDP-8/E kinyitott kártyafiókkal – láthatók a logikai modulok, felül pedig két DECtape meghajtó

A gép CPU-ja alapján egy egycímes, akkumulátoros rendszerű CISC felépítésű számítógép – az utasításkészletében összetett parancsok találhatók, amelyek a regisztert memóriaoperandusokkal kombinálják (pl. TAD a # AC = AC + MEM[a], stb.), ami a CISC felépítésre jellemző.

A gép tára 12 bites szavakból áll – a tervezők úgy ítélték meg, hogy ez a szóhossz elégséges a mérési és szabályozási alkalmazásokban. Ennek megfelelően a gép regiszterei is 12 bitesek. A gépi szót tehát egyszerűen 12 bites adatként definiálták, így nem volt külön kijelölt előjelbit, a mennyiségek egyszerű előjel nélküli egészként kezelhetők. Az előjeles értékek kezelésére a programokban szubrutinokat kellett alkalmazni, amely lehetővé tette a kettes komplemens ábrázolásmód használatát.

A központi tár mérete általában 4096 szó (azaz 212), ez egyes modellekben bővíthető volt; a bővített tárat lapozással (memóriabank-váltással) lehet elérni a programokból. A tár ferritmagos memória volt, 1,5 mikroszekundumos frissítési idővel, ezáltal a tipikus kétciklusos (fetch, execute) utasítások használatával a gép elérhette a 0,333 MIPS sebességet is.

A gép minden utasítása 12 bites, amelyben 3 bit szolgál az utasítás kódolására (opkód), 2 bit szolgál a címzési módok jelölésére, a maradék 7 bit pedig a címet határozza meg (ofszetcím, eltolás). Minden utasítás egyszavas. A 3 bit nyolc utasítás kódolását engedi meg. A nyolc utasítás közül a bináris „1112” kódú utasítás egy bővítőutasítást határoz meg (OPR), amellyel mikrokódolt részműveletek sorozatát lehet végrehajtani, így ezzel végezhetők a különféle bitmanipulációs és vezérlési műveletek (eltolás, komplemensképzés, növelés, törlés, szorzás, osztás és feltételes átlépő utasítások) – ezek olyan utasítások, amelyeknek nincs szükségük operanduscímekre, így az egész címrész felhasználható a műveletek kódolására.

Az utasításkészlet egy másik utasítása a be-/kimeneti műveletet jelöli, így az utasításkészletben az általános utasítások számára 6 lehetőség marad.

7 bittel 128 szó címezhető, ezáltal a 4096 szavas memóriaterület 128 szavas lapokra van felosztva és a 7 bites cím egy lapon belül érvényes. A cím vagy az aktuális lapon, vagy a 0. lapon elhelyezkedő szóra mutathat, a 4. „Z” bit értékétől függően. Az utasításkészletben indirekt címzés is rendelkezésre áll.

A PDP-8 regiszterei
11 10 9 8 7 6 5 4 3 2 1 0 (bitpozíció)
Fő regiszterek
AC Akkumulátor
Programszámláló
PC Programszámláló
Állapotjelzők
  L Link regiszter
Belső regiszterek (programkódból nem elérhetőek)
MBR Memóriapuffer-regiszter
MAR Memóriacím-regiszter

A gép regiszterkészlete igen kicsi, az AC akkumulátorregiszterből és a PC programszámlálóból áll. Ezek mind 12 bitesek, tehát a PC a teljes 4096 szavas memóriabankot képes megcímezni. Az adatok tárolására a memóriát, főleg annak 0. lapját használták. A két kisegítő regiszter a memóriaelérésnél játszik szerepet, ezek programból nem elérhetőek. Az „L” link-regiszter a túlcsordulásbitet tárolja.

A szorzás és osztás műveletekkel együtt egy további regisztert is bevezettek a „kiterjesztett számolóelem” (Extended Arithmetic Element, EAE) elnevezésű opcionális kiterjesztésben „szorzó/hányados regiszter” (Multiplier/Quotient) avagy MQ regiszter néven. Az EAE kiterjesztés választható összetevő volt az eredeti PDP–8-ban[13] valamint a 8/I és 8/E modellekben,[14] az Intersil 6100 mikroprocesszor pedig már beépítve tartalmazta azt.

A gépnek nincs hardveres verme, ezt szubrutinnal lehet megoldani.

A PDP–8-asnak egyetlen megszakítási vonala van. A megszakítást a processzor a 00008 címre való ugrással kezeli (valójában a visszatérési címet helyezi el a 00008 címen és a végrehajtást a 00018 címen kezdi meg, a JMS szubrutinhívó utasításnak megfelelően) és minden további megszakítást letilt a kiszolgálás idejére. Emiatt nehéz reentráns (újrabeléptethető) szubrutinokat írni és egymásba ágyazott megszakításokat kezelni – ezeket a technikákat általában nem is alkalmazták.

A be-/kimeneti rendszer kétfajta interfész csatlakoztatását engedi meg. A lassú készülékek esetén a be-/kimeneti művelet megszakítással kezelhető a felhasználói programban; a műveletet egy kiszolgálóprogram végzi el. Gyorsabb készülékek esetén úgynevezett „cikluslopásra” van lehetőség, ami azt jelenti, hogy a készülék és a tár között adatmozgatás történik, amit nem a programutasítások, hanem a készülék vezérművei vezérlik. A cikluslopás a memóriafrissítési ciklusok alatt történik, és több szó átvitelét teszi lehetővé.[3]

Utasításkészlet szerkesztés

Alaputasítások szerkesztés

0 2 3 4 5 11
Művelet I Z offszetcím
Az utasítások szerkezete
000 – AND – Logikai ÉS műveletet végez az AC és a memóriaoperandus tartalmával; az eredmény az akkumulátorba kerül.
001 – TAD – Kettes komplemens típusú összeadás művelet: az <L,AC> tartalmához hozzáadja a memóriaoperandus tartalmát, az eredmény 12 bites előjeles érték, átvitelbit az L-ben (T a two's complement, AD az add rövidítése).
010 – ISZ – A memóriaoperandus tartalmának növelése és a következő utasítás átugrása, ha az eredmény nulla.
011 – DCA – Elhelyezi az AC tartalmát a memóriaoperandus által címzett memóriarekeszben és törli az AC-t.
100 – JMS – Ugrás szubrutinra (JuMp to Subroutine); a visszatérési címet a vezérlés a szubrutin első szavában helyezi el.
101 – JMP – Ugrás (JuMP).
110 – IOT – Be-/kimeneti átvitel (ld. alább).
111 – OPR – Mikrokódolt műveletek (ld. alább).

Az IOT utasításcsoport szerkesztés

A be-/kimeneti utasítások kódja a 68, mnemonikus kódja pedig az IOT, ami az Input-Output Transfer (bemeneti és kimeneti átvitel) rövidítése. A PDP–8 processzor maga kevés be-/kimeneti átviteli utasítást tartalmazott, ám ehelyett egy teljes keretrendszert definiált. A legtöbb IOT utasítást az egyedi be-/kimeneti eszközök határozták meg.

0 2 3 8 9 11
6=IOT készülék funkció
Készülék

Az IOT utasítás 3–8. bitje a be-/kimeneti készüléket, eszközt választják ki. Néhány ilyen eszközcímet szabványosítottak megállapodás szerint:

  • 00 a processzor kezeli, nem küldi egyetlen be-/kimeneti eszköznek sem (ld. alább)
  • 01 általában a nagy sebességű lyukszalagolvasót jelenti
  • 02 a nagy sebességű lyukszalag-lyukasztót jelöli
  • 03 a konzolírógép és tetszőleges hozzárendelt kis sebességű papírszalagolvasó száma
  • 04 a konzolírógép és tetszőleges hozzárendelt kis sebességű papírszalag-lyukasztó száma

A 0 eszközhöz tartozó utasítások magát a processzort érintik. Például az ION (6001) utasítás engedélyezi a megszakításkezelést és az IOFF (6002) letiltja azt.

Funkció (ill. esemény)

Az IOT utasítás 9–11. bitje választja ki a műveletet, amit az eszköz végrehajt. Az egyszerű eszközök, mint pl. a papírszalagolvasó és lyukasztó, konzol-billentyűzet és nyomtató, a biteket szabványos módon értelmezik:

  • a 11. bit a következő utasítás átlépésére utasítja a processzort, ha a be-/kimeneti eszköz készen áll (a készülékjelző be van-e állítva)
  • a 10. bit az AC törlésére utasítja a processzort
  • a 9. bit az AC és az eszköz között egy szó átvitelét jelöli, megkezd egy be-/kimeneti átvitelt, majd törli az eszköz „kész” jelzőjét

Ezek a műveletek szabályos sorrendben hajtódnak végre, amelyek hasznos eredményt adnak több bit beállítása esetén is.

A bonyolultabb eszközök, mint pl. a lemezvezérlők, ezt a 3 bitet eszközspecifikus módon használják. Tipikusan egy eszköz a 3 bittel 8 lehetséges funkciót kódolhat.

Az OPR utasítás szerkesztés

Az OPR egy különleges kiterjesztőutasítás, amivel a szűkös utasításkészlet bővítését oldották meg. Ezek az utasítások nem vonatkoznak közvetlenül operandusokra, így az azokat kódoló biteket más célra lehet felhasználni. Minden kiterjesztőutasítás első számjegye 78, az utasítás fennmaradó bitjei különleges jelentéssel bírnak. Az OPR utasítások körébe tartoznak a feltételes végrehajtású programvezérlő utasítások is, amelyek tipikusan a következő utasítás átlépésével járnak, ami egy JMP lehet.

Az OPR utasítást „mikrokódolt utasításnak” is nevezték, ami azonban nem a mikrokód mai értelmezését jelenti, tehát hogy egy alacsonyabb rendű programot olvas és értelmez az OPR utasítás, hanem azt, hogy az utasítás minden bitje egy bizonyos akciót határoz meg, és a programozó egyszerre több ilyen akció végrehajtását írhatja elő egyetlen utasításciklus alatt, az utasítás bitjeinek beállításával. A bitekhez mnemonikok vannak hozzárendelve és az assembler készíti el ezekből az OPR bináris kódját. Több be-/kimeneti eszköz alkalmazott „mikrokódolt” IOT utasításokat is.

A mikrokódolt akciók egy jól meghatározott sorrendben hajtódnak végre, amelyet a maximális hatékonyság céljából alakítottak ki.

Az OPR utasítások három csoportra oszlanak, a 3., 8. és 11. bitek határozzák meg a csoportokat, így nem lehetséges a különböző csoportok akcióinak keveredése, a különböző csoportokba tartozó akciók nem kombinálhatók.

1. csoport szerkesztés

      00.  01.  02.  03.  04.  05.  06.  07.  08.  09.  10.  11. bitek
     ___________________________________________________________
    |  1 |  1 |  1 |  0 |    |    |    |    |    |    |    |    |
    |____|____|____|____|____|____|____|____|____|____|____|____|
                        | CLA  CLL  CMA  CML  RAR  RAL  BSW  IAC
    Végrehajtási sorrend:   1    1    2    2    4    4    4    3
7200 – CLA – Clear Accumulator – akkumulátor törlése
7100 – CLL – Clear the L Bit – L bit törlése
7040 – CMA – Ones Complement Accumulator – akkumulátor egyes komplemense (negálása)
7020 – CML – Complement L Bit – L bit komplementálása (ellentettje)
7010 – RAR – Rotate <L,AC> Right – <L,AC> körkörös léptetése jobbra
7004 – RAL – Rotate <L,AC> Left – <L,AC> körkörös léptetése balra
7002 – BSW – Byte Swap – két 6 bites „bájt” felcserélése (a PDP–8/E és későbbi modelleknél)
7001 – IAC – Increment <L,AC> – <L,AC> növelése eggyel
7012 – RTR – Rotate <L,AC> Right Twice – <L,AC> forgatása jobbra kétszer
7006 – RTL – Rotate <L,AC> Left Twice – <L,AC> forgatása balra kétszer

A „7012” kódú utasítás két RAR műveletet végez egymás után, ezt a BSW bit 1-re állítása jelzi. Hasonlóan működik a „7006” kód is, amelyben a RAL és BSW bitek vannak beállítva.[15]

Ebbe a csoportba tartozik a NOP utasítás is, ami nem más, mint a „7000” kód, amelyben a 3.–11. bitek értéke mind 0.

2. csoport, VAGY csoport szerkesztés

      00.  01.  02.  03.  04.  05.  06.  07.  08.  09.  10.  11. bitek
     ___________________________________________________________
    |  1 |  1 |  1 |  1 |    |    |    |    |  0 |    |    |  0 |
    |____|____|____|____|____|____|____|____|____|____|____|____|
                        | CLA  SMA  SZA  SNL       OSR  HLT
    Végrehajtási sorrend:   2    1    1    1         3    3
7600 – CLA – Clear AC – akkumulátor törlése
7500 – SMA – Skip on AC < 0 (or group)skip (a következő utasítás átlépése), ha AC < 0 (VAGY csoport)
7440 – SZA – Skip on AC = 0 (or group)skip, ha AC = 0 (VAGY csoport)
7420 – SNL – Skip on L ≠ 0 (or group)skip, ha L nem nulla (VAGY csoport)
7404 – OSR – Logikai VAGY művelet az előlapi kapcsolók és az AC regiszter között
7402 – HLTHalt – megállás

Ha a 8. bit üres, akkor a processzor végrehajt egy skip műveletet, azaz átlépi a következő utasítást, ha a feltétel teljesül. Például a "SMA SZA", opkódja „7540”, átlép, ha az AC ≤ 0.

A 2. csoport 4.–11. bitjeinek 0 állása egy másik NOP utasítást kódol.

2. csoport, ÉS csoport szerkesztés

      00.  01.  02.  03.  04.  05.  06.  07.  08.  09.  10.  11. bitek
     ___________________________________________________________
    |  1 |  1 |  1 |  1 |    |    |    |    |  1 |    |    |  0 |
    |____|____|____|____|____|____|____|____|____|____|____|____|
                        | CLA  SPA  SNA  SZL       OSR  HLT
    Végrehajtási sorrend:   2    1    1    1         3    2
7410 – SKP – feltétel nélküli skip
7610 – CLA – Clear AC – akkumulátor törlése
7510 – SPA – Skip on AC ≥ 0 (and group)skip, ha AC ≥ 0 (ÉS csoport)
7450 – SNA – Skip on AC ≠ 0 (and group)skip, ha AC ≠ 0 (ÉS csoport)
7430 – SZL – Skip on L = 0 (and group)skip, ha L nulla (ÉS csoport)

Mikor a 8. bit be van állítva, az átugrási feltétel a VAGY csoporthoz képest megfordul: a skip nem történik meg, ha a 2. (VAGY) csoport feltételei közül akármelyik teljesül, ami azt jelenti, hogy az összes skip feltételnek teljesülnie kell. Például a "SPA SNA", opkódja „7550”, ugrik, ha az AC > 0. Ha az 5.–7. bitek közül egyik sincs beállítva, akkor az egy feltétel nélküli skip utasítás.

3. csoport szerkesztés

Az OPR fennmaradó bitkombinációi alkotják a harmadik csoportot, amely főleg az MQ (Multiplier/Quotient, szorzó/hányados) regisztert érintik.

      00.  01.  02.  03.  04.  05.  06.  07.  08.  09.  10.  11. bitek
     ___________________________________________________________
    |  1 |  1 |  1 |  1 |    |    |    |    |    |    |    |  1 |
    |____|____|____|____|____|____|____|____|____|____|____|____|
                        | CLA  MQA  SCA  MQL \__  CODE  __/
    Végrehajtási sorrend:  1*    2    2    2         3
7601 – CLA – Clear AC – akkumulátor törlése
7501 – MQA – logikai VAGY művelet az MQ és az AC között
7441 – SCA – lépésszámláló betöltése az AC-ba
7421 – MQL – az AC értékét az MQ-ba másolja, az AC-t törli
7621 – CAM – CLA + MQL – törli az AC és az MQ értékét

Tipikusan a CLA és MQA használatos az MQ értékének AC-be mozgatásához. Egy másik hasznos kombináció az MQA és MQL, ami kicseréli a két regiszter tartalmát.

Három bit („CODE”) a végrehajtandó szorzás/osztás műveletet határozza meg:

7401 – nincs művelet
7403 – SCL – Step Counter Load – lépésszámláló betöltése, az utasítást követő közvetlen érték, PDP-8/I és későbbi modellekben.
7405 – MUY – Multiply – szorzás
7407 – DVI – Divide – osztás
7411 – NMI – Normalize – normalizálás
7413 – SHL – léptetés balra, az utasítást követő közvetlen értékkel
7415 – ASR – Arithmetic shift right – aritmetikai léptetés jobbra
7417 – LSR – Logical shift right – logikai léptetés jobbra

Példák szerkesztés

Az alábbi példák a PDP-8 assembly nyelvén készültek, a PAL-III assemblernek megfelelően.

Kivonás a PDP–8-ban szerkesztés

   /Y és X memóriaoperandusok
           DCA Y       /Az Y értékét betölti az AC-ba
           CIA         /Komplemensképzés és AC növelése 1-gyel. Eredmény: -AC azaz -Y (kettes komplemens, negatív szám)
           TAD X       /X-Y => AC

Forrás:[3][16]

Két szám összehasonlítása szerkesztés

Az alábbi példa azt mutatja, hogy mi szükséges két szám összehasonlításához:

   /Az OPD1 és OPD2 memóriahelyeken álló két szám összehasonlítása
           CLA CLL     /Kiindulás: az AC és L nullázása
           TAD OPD1    /Az első operandus betöltése AC-ba (0-hoz való hozzáadással); a L még 0
           CIA         /AC komplemense és növelése 1-gyel; azaz AC negálása
           TAD OPD2    /Az AC tartalma most OPD2-OPD1; ha OPD2≥OPD1, az összeg túlcsordul és az L értéke 1 lesz
           SZL         /A következő utasítás átugrása (skip), ha L = 0
           JMP OP2GT   /Ugorjon el valahova, ha az OPD2≥OPD1 feltétel teljesül;
                       /Egyébként folytassa a kódot innen.

Jegyzetek szerkesztés

  1. The Digital Equipment Corporation PDP-8 by Douglas W. Jones
  2. PDP-8 1965, History Wired, Smithsonian Institution, accessed February 17, 2015
  3. a b c Flores, Ivan. A PDP–8, Korszerű számítógépek rendszertechnikája, fordító: Könyves Tóth Pál, Budapest: Műszaki Könyvkiadó, 104-121/334. o.. ETO 005.681.31. (1973) 
  4. a b Edson de Castro; Gardner Hendrie (interviewer): Oral History of Edson (Ed) D. de Castro (angol nyelven) (pdf). Oral Histories pp. 36/67. Computer History Museum, 2004. [2014. december 27-i dátummal az eredetiből archiválva]. (Hozzáférés: 2015. március 30.)
  5. PDP-8 Summary of Models and Options
  6. Bell, Gordon, C. Mudge, J. McNamara. Computer Engineering: A DEC View of Hardware Systems Design. Digital Press, 175. o. (1978). ISBN 0-932376-00-2 
  7. Remo J. Vogelsang: First-Hand:PDP-8/E OMNIBUS Ride (angol nyelven). Engineering and Technology History Wiki (ETHW), 2013. (Hozzáférés: 2014)
  8. John Voelcker: THE PDP-8 (angol nyelven) (pdf) pp. 86-92. IEEE Spectrum (ISSN 0018-9235), 1988. (Hozzáférés: 2014)
  9. Douglas W. Jones: The Digital Equipment Corporation PDP-8 / FAQ / What different PDP-8 models were made? (angol nyelven). THE UNIVERSITY OF IOWA Department of Computer Science, 2001. (Hozzáférés: 2015)
  10. Varga Ákos: KFKI TPA 1001 (angol nyelven). Hampage.hu, 2007. (Hozzáférés: 2014)
  11. Douglas W. Jones: The Digital Equipment Corporation PDP-8 / Frequently Asked Questions (angol nyelven). THE UNIVERSITY OF IOWA Department of Computer Science, 2001. (Hozzáférés: 2015) „The following PDP-8 compatible or semi-compatible machines were made and sold by others ...”
  12. Lukács József. TPA-1001 (Függelék A), TPA történet – Lyukszalagtól az informatikáig (pdf), Budapest: KFKI Számítástechnikai Rt., 106. o. (2003). ISBN 9639276324. Hozzáférés ideje: 2015. március 30. 
  13. Chapter 8: Extended Arithmetic Element Type 182, PDP-8 User's Handbook, Digital Equipment Corporation, 1966; page 41.
  14. Chapter 4: System Description and Operation, Introduction to Programming, Digital Equipment Corporation, 1969; page 4-22.
  15. Douglas W. Jones: The Digital Equipment Corporation PDP-8 / Microcoded Instructions (angol nyelven). THE UNIVERSITY OF IOWA Department of Computer Science, 2002. augusztus 1. (Hozzáférés: 2015)
  16. Az opkódok javítva PDP–8 assembly kódra: Flores könyvében egy saját utasításkészletet használ, a Flores Assembly Program, FLAP utasításkészletet, mivel a könyvben több géppel is foglalkozik.

Források szerkesztés

Kapcsolódó szócikkek szerkesztés