Čtyřbitové mikrořadiče řady Epson S1C60

18. 4. 2017
Doba čtení: 17 minut

Sdílet

Předposledními čtyřbitovými mikrořadiči, jimiž se budeme zabývat, jsou mikrořadiče řady S1C60 vyráběné společností Epson. Jejich architektura je poměrně elegantní a tvoří základ k poněkud výkonnějším čipům s jádry S1C63000.

Obsah

1. Velký, ale poněkud utajený svět čtyřbitových mikrořadičů

2. Čtyřbitové mikrořadiče Epson S1C60

3. Vstupní a výstupní porty čipu S1C60N05

4. Piny použité pro řízení LCD

5. Programátorský model mikrořadiče: sada registrů

6. Bitové příznaky

7. Struktura programové paměti ROM

8. Struktura datové paměti RAM

9. Speciální paměť používaná při řízení displeje

10. Instrukční soubor mikrořadičů soubor S1C60

11. Aritmetické a logické instrukce

12. Bitové rotace

13. Skoky

14. Instrukce typu Load & Store

15. Práce s příznakovými bity

16. Odkazy na Internetu

1. Velký, ale poněkud utajený svět čtyřbitových mikrořadičů

Prozatím jsme se v seriálu o architekturách počítačů zabývali některými již nevyráběnými čtyřbitovými mikrořadiči. Ovšem svět 4bitových MCU je ve skutečnosti poměrně rozsáhlý a živý, neboť tyto čipy mají mnohdy minimální spotřebu a proto je lze používat i v takových aplikacích, kde se vyžaduje dlouhodobý běh na baterie (teploměry, cyklopočítače, termostaty, klíčky k automobilům…). Jedním z důvodů, proč se s těmito čipy nesetkáme například v dnes tak populárním segmentu IoT je ten, že s ohledem na co nejnižší cenu a spotřebu je (bylo) mnoho těchto MCU nabízeno jen v konfiguraci s pamětí ROM, tj. tato paměť se inicializovala již při výrobě čipu poslední maskou. Tím pádem jsou tyto mikrořadiče použity skutečně tam, kde se počítá s velkými výrobními sériemi, aby se aplikace masky ROM vůbec vyplatila (navíc se poněkud komplikuje vývoj). Jen pro ilustraci jsou v následující tabulce vypsány známé čtyřbitové MCU (zdroj: https://en.wikichip.org/wiki/4-bit_architecture):

Výrobce Čip
Atmel MARC4
AMI S2000
Epson S1C60
Epson S1C63
Fujitsu MB88200
Fujitsu MB8840/400
Fujitsu MB8850/500
Hitachi HD404720
Hitachi HMCS40
Hitachi HMCS400
ITT 7150
National MAPS
National COPS I
National COPS II
NEC 17K
NEC μCOM-4
NEC μPD751
NEC μPD707
NEC μPD7500
NEC μPD75000
Matsushita MN1400
Matsushita MN1500
Matsushita MN1700
Mitsubishi MELPS 4
Mitsubishi M50430/440
Mitsubishi M50460/560
Mitsubishi M5072/M5076
Mitsubishi M5090
MMI 5700
OKI OLMS-40/50/60/64/65
OKI OLMS-63K
OKI OLMS-64K
Rockwell PPS-4/1
Sanyo LC65
Sanyo 66×x
Sanyo LM64×x
Sharp SM
Sony SPC500
TI TMS1000
Toshiba T3400
Toshiba TLCS-42
Toshiba TLCS-43
Toshiba TLCS-46A
Toshiba TLCS-47
Toshiba TLCS-470
WD CR1872
WD WD4200

2. Čtyřbitové mikrořadiče Epson S1C60

Mezi často používané čtyřbitové mikrořadiče patří především řada Epson S1C60. Ta je zvláštní tím, že zatímco paměť RAM má slova široká čtyři bity, paměť ROM s programovým kódem používá slova o šířce dvanácti bitů (všechny instrukce mají tuto šířku). Jedná se o čipy, u nichž se přímo počítá s tím, že k nim budou připojeny „hloupé“ LCD, tedy displeje bez vlastního řadiče (ostatně samotný řadič „chytrých“ LCD by byl pravděpodobně stejně složitý, jako celý mikrořadič S1C60). Proto také tyto mikrořadiče obsahují poměrně velké množství vstupních a výstupních pinů. Kapacita operační paměti RAM dosahuje hodnot od 80×4 bity až po relativně vysoké číslo 832×4 bity. Kapacita ROM (pravděpodobně jsou dostupné jen čipy s ROM tvořenou maskou) je 1536×12 bitů až 4096×12 bitů v základní sadě. Podívejme se nyní na základní parametry těchto čipů:

Čip RAM ROM Hodiny (hi-speed) Hodiny (low-speed) Displej Vstupní port Výstupní port I/O port
S1C60N05 80×4 1536×12 × 32768 Hz 20×4/3/2/1 4 piny 4 piny 4 piny
S1C60L05 80×4 1536×12 × 32768 Hz 20×4/3/2/1 4 piny 4 piny 4 piny
S1C60N08 832×4 4096×12 × 32768 Hz 48×4/3/2/1 9 pinů 8 pinů 8 pinů
S1C60L08 832×4 4096×12 × 32768 Hz 48×4/3/2/1 9 pinů 8 pinů 8 pinů
S1C60A08 832×4 4096×12 500 kHz 32768 Hz 48×4/3/2/1 9 pinů 8 pinů 8 pinů
S1C60N16 256×4 4096×12 × 32768 Hz 38×4/3/2/1 5 pinů 8 pinů 8 pinů
S1C60L16 256×4 4096×12 × 32768 Hz 38×4/3/2/1 5 pinů 8 pinů 8 pinů
S1C60A16 256×4 4096×12 1 MHz 32768 Hz 38×4/3/2/1 5 pinů 8 pinů 8 pinů

Typická konfigurace, kde tento čip najdete: digitální teploměr s jedním interním a jedním externím čidlem, LCD dokáže zobrazit dvě teploty (vnější, vnitřní) + několik dalších symbolů na sedmisegmentovém displeji, k dispozici je i piezoelektrický reproduktor, který například oznamuje bod mrazu a teploměr se ovládá několika tlačítky s programově řízenou detekcí zákmitů. Taktéž je možné zobrazit minimální či maximální dosažené teploty a čas.

Poznámka: nejnižší napájecí napětí vyžaduje čip S1C60L08, a to konkrétně pouze 0,9V při maximálním odběru proudu 2,2 µA (do toho se ale nepočítá řízení LCD).

3. Vstupní a výstupní porty čipu S1C60N05

Z tabulky uvedené v předchozí kapitole vyplývá, že nejmenším čipem z celé série S1C60 je mikrořadič s označením S1C60N05. Pojďme si nyní tento mikrořadič popsat podrobněji. Celý čip se dodává v pouzdru se šedesáti vývody. Kromě pinů určených pro napájení samotného mikrořadiče popř. připojeného LCD (ten může mít až tři odlišná napájecí napětí) nalezneme na pouzdru tyto piny, které je možné programově ovládat:

  • Čtyři vstupní piny označované K00K03. Změna stavu libovolného vstupního pinu může podle nastavení vygenerovat přerušení (přerušovací rutinu).
  • Čtyři výstupní piny označované R00R03. Na vývody R00 nebo R01 je možné v případě potřeby připojit piezoelektrický reproduktor a poslat na tyto piny zvolenou frekvenci 2kHz nebo 4kHz.
  • Čtyři vstupně/výstupní piny P00P03. Jejich funkce se přepíná bitovým příznakem IOC v konfiguračním registru (jinými slovy jsou buď všechny tyto piny vstupní nebo všechny výstupní).
  • Jeden vstupní pin TEST. Tento pin není součástí žádného portu a je používán při testování čipu výrobcem (tím pádem není přesný popis chování k dispozici).
  • Ovládání LCD přes piny COM0COM3.
  • Přímé ovládání segmentů LCD přes piny SEG0SEG19 (další mikrořadiče z řady S1C60 mohou ovládat i displeje s větším množstvím segmentů).
  • Analogové rozhraní představované piny ADOUT, RS, TH1, TH2 a CS.

Poznámka: vzhledem k tomu, že piezzo reproduktor je připojen na generátor signálu o frekvenci 2kHz nebo 4kHz, je možné tento čip relativně snadno identifikovat, například v digitálních teploměrech, radiobudících atd. (samozřejmě se nejedná o stoprocentní test…)

4. Piny použité pro řízení LCD

Pro řízení displeje (LCD) se používají dvě skupiny výstupních pinů. Opět se přidržme nejmenšího čipu S1C60N05, který konstruktérům dává k dispozici tyto piny:

  1. COM0COM3
  2. SEG0SEG19

S použitím těchto pinů je možné automaticky řídit až 80 segmentů, popř. v závislosti na typu displeje menší počet segmentů podle toho, jak je zkonstruována maska displeje (jak se vybírají „řádky“ a „sloupce“, což ovšem u displejů se segmenty nutně neznamená, že se používá matice pixelů):

Označení Výběr segmentů signály Maximální počet ovládaných segmentů
1/4 COM0–3 80 (20 × 4)
1/3 COM0–2 60 (20 × 3)
1/2 COM0–1 40 (20 × 2)

Poznámka: nejedná se o čistě digitální výstupy, neboť se – opět v závislosti na konfiguraci a použitém LCD – generuje signál s úrovněmi napětí získanými ze vstupních pinů Vdd, VL1, VL2, VL3.

5. Programátorský model mikrořadiče: sada registrů

Základní programátorský model mikrořadičů S1C60, tedy sada přímo či nepřímo dostupných registrů, je vypsán v následující tabulce:

Registr Šířka Rozdělen na Celé jméno
PCS 8 × Program counter step
PCP 4 × Program counter page
NPP 4 × New page pointer
SP 8 SPH+SPL Stack pointer
IX 12 XP+XH+XL Index register X
IY 12 YP+YH+YL Index register Y
RP 4 × Register pointer
A 4 × General register A
B 4 × General register B

Z pohledu programátora jsou nejdůležitější registry A, B, IX a IY. Registry A a B můžeme považovat za běžné pracovní registry či akumulátory, které se používají ve všech ALU operacích. Registry IX a IY slouží pro adresování operandů v paměti, takže je můžeme považovat za index registry. Ve skutečnosti se vždy jedná o trojici, například IX=XP+XH+XL, přičemž každý z těchto registrů XP (page), XH (high) XL (low) má šířku čtyři bity. U malých čipů se většinou XP/YP nepoužívá, protože je k dispozici jen jedna stránka paměti.

6. Bitové příznaky

Skupina bitových příznaků je pojata poměrně minimalisticky. V průběhu výpočtů mohou být nastavovány pouze dva příznaky Carry a Zero, které zde mají běžný význam. Navíc je možné pracovat s příznaky (či spíše přesněji řečeno s konfiguračními přepínači) Decimal (řídí aritmetické operace) a Interrupt (povoluje a zakazuje přerušení):

Označení Příznak Význam
I Interrupt flag příznak přerušení (zákaz/povolení)
D Decimal flag režim výpočtů (desítkový/šestnáctkový)
Z Zero flag příznak nulového výsledku
C Carry flag příznak přenosu

7. Struktura programové paměti ROM

U nejmenších mikrořadičů řady S1C60 má programová paměť ROM kapacitu 1536×12 bitů, u větších čipů pak 4096×12 bitů. Šířka slova nebyla zvolena náhodně, protože každá instrukce má šířku přesně oněch dvanáct bitů. Paměť je rozdělena na stránky o velikosti 256 slov, takže například u čipu S1C60N05 bude mít šest stránek (6×256×12).

Při adresování instrukcí tvořících program se používá dvojice registrů PCP+PCS. Registr PCP obsahuje aktuální stránku a má šířku 4 bitů, registr PCS pak obsahuje index instrukce v rámci jedné stránky. Teoreticky je tak možné použít 4 bity + 8 bitů = 12 bitů adresy, tedy 4096 dvanáctibitových slov. U větších čipů se pak počítá s dalším rozšířením o jednobitový registr PCB (Program Counter Bank), který adresovatelnou paměť dále rozšiřuje na 8192 dvanáctibitových slov (to však neplatí pro mini-mikrořadiče popisované dnes).

8. Struktura datové paměti RAM

Datová paměť RAM je rozdělena na stránky, přičemž každá stránka má maximální velikost 256 nibblů. U nižších řad čipů s kapacitou RAM 80×4 bity či 256×4 bity je ovšem použita jen nultá stránka paměti, pouze u čipů s RAM o kapacitě 832×4 bity je stránek více (konkrétně jsou čtyři, tři mají kapacitu 256 nibblů, poslední jen 64 nibblů). Část paměti je přitom obsazena zásobníkem.

Pro adresování se používají osmibitové registry X a Y, které jsou u větší RAM s více stránkami doplněné o čtyřbitové stránkové registry XP a YP (P=page). Pokud se používá nepřímá adresace přes SP, musí se dbát na to, že tento registr je osmibitový, což omezuje velikost zásobníku na 256 čtyřbitových slov. U mnoha operací se ovšem obsadí hned 3 slova (12 bitů) – návratové adresy atd.

9. Speciální paměť používaná při řízení displeje

Pro řízení displeje (LCD) je použita speciální oblast paměti, která má typickou velikost 32×4 bity a je zcela oddělena od RAM (nezapočítává se tedy do uvedené kapacity RAM). Tato oblast je dostupná pouze pro zápis. Čtení je prováděno zcela automaticky řadičem displeje, který samozřejmě musí být správně nakonfigurován takovým způsobem, aby bylo čtení synchronizováno s nastavením výstupních pinů COM0COM3 a SEG0SEG19.

Poznámka: zmíněných 32 nibblů je u čipů S1C60N05 namapováno na adresy 0×90 až 0×af.

10. Instrukční soubor mikrořadičů soubor S1C60

V následujících pěti kapitolách si popíšeme většinu instrukcí tvořících instrukční soubor (ISA) mikrořadičů řady S1C60. Některé dále popisované instrukce jsou pouze aliasy na instrukce jiné. Všechna instrukční slova mají konstantní šířku dvanácti bitů a každé slovo se rozděluje na operační kód o proměnlivé šířce a na operand (pochopitelně taktéž o proměnlivé šířce). Existuje celkem šest formátů instrukcí zmíněných v tabulce umístěné pod tímto odstavcem:

Operační kód Operand Celkově Příklad instrukce
4 bity 8 bitů 12 bitů CALL s
6 bitů 6 bitů 12 bitů ADD r, i
7 bitů 5 bitů 12 bitů PSET p
8 bitů 4 bity 12 bitů SET F,i
10 bitů 2 bity 12 bitů PUSH r
12 bitů 0 bitů 12 bitů INC X

Příkladem prvního formátu je instrukce CALL s pro skok do podprogramu. Ta vypadá následovně:

+------------+-------------+-------------+
| 0  1  0  0 | s7 s6 s5 s4 | s3 s2 s1 s0 |
+------------+-------------+-------------+

Instrukce ADD r, i dokáže přičíst čtyřbitovou konstantu k vybranému registru (r1 a r2 je selektor registr):

+------------+-------------+-------------+
| 1  1  0  0 | 0  0  r1 r0 | i3 i2 i1 i0 |
+------------+-------------+-------------+

11. Aritmetické a logické instrukce

Sada aritmetických a logických instrukcí obsahuje prakticky všechny očekávatelné instrukce (asi nikdo nebude očekávat, že na takto malých čipech bude násobička nebo dělička…). Zajímavé je, že prakticky všechny instrukce jako svůj první operand akceptují registry A, B či paměťové buňky adresované přes IX a IY. Druhým operandem je buď čtyřbitová konstanta nebo jiný registr/paměťová buňka. Výjimkou jsou poslední dvě instrukce, které přímo v instrukčním slovu obsahují adresu svého operandu:

Instrukce Stručný popis
ADD r,i součet registr+konstanta
ADD r,q součet dvou registrů
ADC r,i součet registr+konstanta+Carry
ADC r,q součet dvou registrů+Carry
   
SUB r,i rozdíl registr-konstanta
SUB r,q rozdíl dvou registrů
SBC r,i rozdíl registr-konstanta-Carry
SBC r,q rozdíl dvou registrů-Carry
   
AND r,i operace registr AND konstanta
AND r,q operace registr AND registr
OR r,i operace registr OR konstanta
OR r,q operace registr OR registr
XOR r,i operace registr XOR konstanta
XOR r,q operace registr XOR registr
NOT r negace registru
   
INC X zvýšení hodnoty index registru IX
INC Y zvýšení hodnoty index registry IY
   
INC SP zvýšení hodnoty registru SP
DEC SP snížení hodnoty registru SP
   
INC Mn zvýšení hodnoty nepřímo adresované paměťové buňky
DEC Mn snížení hodnoty nepřímo adresované paměťové buňky

12. Bitové rotace a porovnání operandů

Existují dvě instrukce pro bitové rotace. Obě instrukce vždy pracují i s příznakem Carry a vzhledem k tomu, že vstupním operandem je „registr“ (ve smyslu, jak ho chápeme u S1C60), může se rotovat pracovní registr A, B, popř. paměť adresovaná přes IX či IY. Totéž platí i pro dvě operace pro porovnání následované operace pro AND bez uložení výsledků (u jiných procesorů se tato instrukce jmenuje TEST). Navíc poslední instrukce dokáže porovnat libovolný „registr“ s jiným „registrem“, tedy i dvě paměťové buňky, z nichž jedna je adresována přes IX a druhá přes IY:

Instrukce Stručný popis
RCL r rotace vybraného registru doleva přes příznak Carry (rotuje se tedy pět bitů)
RRC r rotace vybraného registru doprava přes příznak Carry (rotuje se tedy pět bitů)
   
CP r, immed porovnání vybraného registru se čtyřbitovou konstantou a nastavení příznaků
CP r, q porovnání dvou vybraných registrů a nastavení příznaků
   
FAN r, immed logické AND vybraného registru se čtyřbitovou konstantou a nastavení příznaků
FAN r, q logické AND dvou vybraných registrů a nastavení příznaků

13. Skoky

Instrukce provádějící skoky můžeme rozdělit do několika kategorií. Nalezneme zde nepodmíněný skok, dále čtveřici podmíněných skoků provedených či neprovedených na základě testu příznakových bitů Carry a Zero, dále nepřímý skok na adresu uloženou ve dvojici registrů A+B, skoky do podprogramu a návraty z podprogramů. Poslední instrukce provede návrat z podprogramu a současně ještě uloží konstantu na adresu umístěnou v registru X:

Instrukce Stručný popis
JP s nepodmíněný skok
   
JP C,s podmíněný skok pokud Carry=1
JP NC,s podmíněný skok pokud Carry=0
JP Z,s podmíněný skok pokud Zero=1
JP NZ,s podmíněný skok pokud Zero=0
   
JPBA nepřímý skok na adresu umístěnou v registrech A+B
   
CALL s skok do podprogramu
CALZ s skok do podprogramu na nulté stránce
RET návrat z podprogramu
RETS dtto, ale navíc zvýšení PC a 1 (přeskočí se další instrukce ve volajícím kódu)
RETD e návrat z podprogramu s výsledkem uloženým do paměti adresované X

14. Instrukce typu Load & Store

Největší skupina instrukcí slouží pro načtení či naopak uložení operandů do operační paměti. Při adresování operandů se používají index registry IX a IY. Pro naplnění adres do těchto registrů (každý je rozložen do trojice XP+XH+XL) se používá prvních 14 instrukcí z následující tabulky. Nejuniverzálnější instrukcí je dále zmíněná instrukce LD, která dokáže pracovat s registry A, B, paměťovou buňkou (IX), (IY) i čtyřbitovou konstantou. Proto také tato instrukce nahrazuje neexistující instrukci ST (store):

Instrukce Stručný popis
LD X, e načtení osmibitové konstanty do registru X
LD XP, r přesun čtyřbitového operandu do registru XP
LD XH, r přesun čtyřbitového operandu do registru XH
LD XL, r přesun čtyřbitového operandu do registru XL
LD r, XP přesun čtyřbitového operandu z registru XP
LD r, XH přesun čtyřbitového operandu z registru XH
LD r, XL přesun čtyřbitového operandu z registru XL
   
LD Y, e načtení osmibitové konstanty do registru Y
LD YP, r přesun čtyřbitového operandu do registru YP
LD YH, r přesun čtyřbitového operandu do registru YH
LD YL, r přesun čtyřbitového operandu do registru YL
LD r, YP přesun čtyřbitového operandu z registru YP
LD r, YH přesun čtyřbitového operandu z registru YH
LD r, YL přesun čtyřbitového operandu z registru YL
   
LD r, i instrukce pro načtení operandu do registru, s případným nepřímým adresováním (více variant)
LD r, q instrukce pro načtení operandu do registru, s případným nepřímým adresováním (více variant)
LDPX uložení konstanty na adresu z registru IX, zvýšení IX o 1
LDPY uložení konstanty na adresu z registru IY, zvýšení IY o 1
   
PUSH uložení konstanty, příznakových bitů či registru na zásobník
POP obnovení konstanty, příznakových bitů či registru ze zásobníku

15. Práce s příznakovými bity

Poslední skupina instrukcí, se kterou se v dnešním článku seznámíme, je tvořena deseti instrukcemi určenými pro nastavení či naopak vynulování příznakových bitů. Prvních osm instrukcí nastaví nebo vynuluje vybraný bit Carry, Zero, Decimal či Interrupt, další dvě instrukce pracují s bitovou maskou (čtyř bitů) a mohou tak současně nastavit či vynulovat vybranou skupinu příznakových bitů:

Instrukce Stručný popis
SCF nastavení Carry=1
RCF vynulování Carry=0
SZF nastavení Zero=1
RZF vynulování Zero=0
SDF nastavení Decimal=1
RDF vynulování Decimal=0
EI nastavení Interrupt=1 (a současně povolení přerušení)
DI vynulování Interrupt=0 (a současně zakázání přerušení)
   
SET F,i nastavení vybraných příznaků (bitová maska)
RST F,i vynulování vybraných příznaků (bitová maska

Poznámka: ve skutečnosti je například instrukce SET zakódována takto:

ict ve školství 24

+------------+------------+------------+
| 1  1  1  1 | 0  1  0  0 |i3 i2 i1 i0 |
+------------+------------+------------+

Asi vás tedy nepřekvapí, že instrukce SCF má následující operační kód – jinými slovy, že se jedná o instrukční alias k univerzální instrukci SET:

+------------+------------+------------+
| 1  1  1  1 | 0  1  0  0 | 0  0  0  1 |
+------------+------------+------------+

Totéž samozřejmě platí i pro další instrukce z výše uvedené tabulky.

16. Odkazy na Internetu

  1. 4-bit architecture
    https://en.wikichip.org/wiki/4-bit_architecture
  2. S1C60 – Epson
    https://en.wikichip.org/wi­ki/epson/s1c60
  3. S1C63 – Epson
    https://en.wikichip.org/wi­ki/epson/s1c63
  4. 4-bit to 32-bit low power microcontrollers (Epson)
    http://global.epson.com/pro­ducts_and_drivers/semicon/pro­ducts/micro_controller/
  5. 4-bit microcontrollers (Epson)
    http://global.epson.com/pro­ducts_and_drivers/semicon/pro­ducts/micro_controller/4bit/
  6. High Performance 4bit (Epson)
    http://global.epson.com/pro­ducts_and_drivers/semicon/pro­ducts/micro_controller/hig­h4bit/
  7. S1C60 Family Products overview (PDF)
    http://global.epson.com/pro­ducts_and_drivers/semicon/pro­ducts/micro_controller/pdf/spec_mcu_4bit­.pdf
  8. Zero-power Microcontrollers for Low-power and High-temperature Applications
    http://en.wikichip.org/w/i­mages/1/17/Atmel_MARC4_brochu­re.pdf
  9. MARC4 Micro-Controller (Wikipedia)
    https://en.wikipedia.org/wi­ki/MARC4_Micro-Controller
  10. MARC4 – Atmel
    https://en.wikichip.org/wi­ki/atmel/marc4
  11. MARC 4bit Microcontrollers Programmer's Guide
    https://en.wikichip.org/w/i­mages/4/44/MARC4_4-bit_Microcontrollers_Program­mer%27s_Guide.pdf
  12. MARC4 User's Guide qFORTH Compiler
    https://en.wikichip.org/w/i­mages/2/25/MARC4_User%27s_Gu­ide_qFORTH_Compiler.pdf
  13. Programovací jazyk Forth a zásobníkové procesory
    http://www.root.cz/clanky/programovaci-jazyk-forth-a-zasobnikove-procesory/
  14. Seriál Programovací jazyk Forth
    http://www.root.cz/serialy/pro­gramovaci-jazyk-forth/
  15. Programovací jazyk Factor
    http://www.root.cz/clanky/programovaci-jazyk-factor/
  16. Grafický metaformát PostScript
    http://www.root.cz/clanky/graficky-metaformat-postscript/
  17. PMOS
    https://en.wikipedia.org/wi­ki/PMOS_logic
  18. NMOS
    https://en.wikipedia.org/wi­ki/NMOS_logic
  19. CMOS
    https://en.wikipedia.org/wiki/CMOS
  20. Vacuum Fluorescent Display
    https://en.wikipedia.org/wi­ki/Vacuum_fluorescent_dis­play
  21. Computer History Museum: TMS 1000 4-Bit microcontroller
    http://www.computerhistory­.org/collections/catalog/102711697
  22. Texas Instruments TMS1000 microcontroller family
    http://www.cpu-world.com/CPUs/TMS1000/
  23. Invention History of Microcontroller
    http://www.circuitstoday.com/mi­crocontroller-invention-history
  24. TMS1000 Series – TI
    https://en.wikichip.org/wi­ki/ti/tms1000
  25. TMX1795 – TI
    https://en.wikichip.org/wi­ki/ti/tmx1795
  26. Milton Bradley Microvision (U.S.) (1979, LCD, 9 Volt (1 or 2), Model# 4952)
    http://www.handheldmuseum­.com/MB/uVUS.htm
  27. 8051 Microcontroller
    http://www.circuitstoday.com/8051-microcontroller
  28. 4-bit (computer architectures)
    https://en.wikipedia.org/wiki/4-bit
  29. TMS 1000 Data Manual
    http://blog.kevtris.org/blog­files/TMS_1000_Data_Manual­.pdf
  30. Considerations for 4-bit processing
    http://www.embeddedinsights­.com/channels/2010/12/10/con­siderations-for-4-bit-processing/
  31. Are you, or would you consider, using a 4-bit microcontroller?
    http://www.embeddedinsights­.com/channels/2010/11/24/a­re-you-or-would-you-consider-using-a-4-bit-microcontroller/
  32. MARC4 Micro-Controller
    https://en.wikipedia.org/wi­ki/MARC4_Micro-Controller
  33. The Texas Instruments TMX 1795: the (almost) first, forgotten microprocessor
    http://www.righto.com/2015/05/the-texas-instruments-tmx-1795-first.html
  34. O2 Homepage
    http://www.the-nextlevel.com/odyssey2/
  35. Magnavox Odyssey2 (1978), Philips Videopac G7000 / C52 (1979)
    http://www.mess.org/sysinfo:odyssey2
  36. The Video Game Critic's Odyssey 2 Reviews
    http://videogamecritic.net/odd.htm
  37. Computer Closet Collection: Magnavox Odyssey2
    http://www.computercloset­.org/MagnavoxOdyssey2.htm
  38. PHILIPS Videopac C52
    http://old-computers.com/museum/compu­ter.asp?c=1060
  39. O2 Tech. Manual V.1.1 (PDF dokument)
    http://www.atarihq.com/dan­b/files/o2doc.pdf
  40. Magnavox Odyssey2
    http://www.game-machines.com/consoles/odyssey2.php
  41. Magnavox Odyssey2 (Wikipedia EN)
    http://en.wikipedia.org/wi­ki/Odyssey2
  42. Magnavox Odyssey2 Games (Wikipedia EN)
    http://en.wikipedia.org/wi­ki/List_of_Videopac_games

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.