Motorola 6800
Motorola 6800, MC6800, přesněji Motorola MC6800, je v informatice označení pro 8bitový mikroprocesor firmy Motorola představený roku 1974. Mikroprocesor byl součástí mikropočítačového systému M6800, který zahrnoval obvody pro sériové a paralelní rozhraní, RAM, ROM a další podpůrné integrované obvody. Oproti mikroprocesoru Intel 8080 z téhož roku, který vyžadoval tři napájecí napětí, vystačila celá stavebnice M6800 s jedním napájecím napětím 5 V.
Motorola 6800 | |
---|---|
Mikroprocesor Motorola MC6800 | |
Specifikace | |
Kódové značení | MC6800 |
Uvedení | 1974 |
Výrobci | Motorola |
Frekvence | 1 MHz (pozdější verze 2 MHz) |
Instrukční sada | 6800 |
Patice | 40-pin DIP |
Nástupce | MC6801, MC6805, Motorola 68000 |
Charakteristika
Motorola 6800 má 16bitovou adresní sběrnici, která umožňuje adresovat až 64 KiB paměti, a 8bitovou obousměrnou datovou sběrnici. Architektura a instrukční sada 6800 byla ovlivněna populárními minipočítači PDP-11 firmy Digital Equipment Corporation. 72 instrukcí se sedmi režimy adresování dávalo celkem 192 operačních kódů. Originál MC6800 pracoval s taktovací frekvencí až 1 MHz, pozdější verze měly maximální frekvenci 2 MHz.
Motorola kromě integrovaných obvodů dodávala kompletní systém pro vývoj programů v jazyce symbolických adres. Zákazník mohl používat software na vzdáleném počítači se sdílením času nebo vlastní minipočítačový systém. Motorola EXORciser byl stolní počítač s M6800 určený pro prototypování a ladění nových projektů. Rozsáhlý balíček dokumentace zahrnoval katalogové listy všech integrovaných obvodů potřebných pro vytvoření počítačového systému, dva programátorské manuály pro jazyk symbolických adres a sedmisetstránkový aplikační manuál popisující, jak navrhnout pokladní terminál.
Mikroprocesor 6800 byl oblíbeným stavebním prvkem při konstrukci počítačových periférií, elektronických testerech a pokladních terminálech. MC6802 uvedený na trh v roce 1977, obsahoval 128 bytovou RAM a oscilátor vnitřních hodin na čipu. Motorola vyráběla také jednočipové mikropočítače, jako MC6801 a MC6805, které obsahovaly na jediném čipu RAM, ROM a I/O, díky čemuž byly oblíbené v automobilových aplikacích.
V roce 1979 byla uveden 16bitový mikroprocesor Motorola 68000, který byl později rozšířen na 32 bitů. V roce 1999 bylo všechno co Motorola potřebovala vlastní analogové IC.
Design MC6800
Registry mikroprocesoru Motorola 6800 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Motorola 6800 a Intel 8080 byly navrženy současně a byly si podobné svými funkcemi. Intel 8080 byl nadmnožinou Intel 8008, který byl založený na Datapoint 2200 procesoru. Architektura 6800 byla modelovaná podle procesoru DEC PDP-11. Oba byly kompatibilní s TTL logikou, měly 8bitovou obousměrnou datovou sběrnici, 16bitový ukazatel zásobníku a 16bitovou adresní sběrnici, která dovolovala používat až 64 KiB paměti a byly dodávány v pouzdře DIP se 40 vývody. Motorola 6800 měla dva osmibitové akumulátory a 16bitový indexový registr. Režim bezprostředního adresování umožňoval rychlý přístup k prvním 256 bajtům paměti. Mikroprocesor Intel 8080 měl více interních registrů a instrukce vyhrazené pro práci s I/O porty. Zatímco Intel 8080 po resetu vynuloval čítač instrukcí a začal provádět program od adresy 0, 6800 načetla hodnotu čítače instrukcí z nejvyšší adresy a začal provádět program od této adresy. Motorola 6800 používala třístavové řízení sběrnice, což dovolovalo vyřadit ovládání adresní sběrnice procesorem a umožňovalo dalším zařízením přímý přístup do paměti. Díky tomu mohl např. řadič disku přenášet data do paměti nebo z paměti bez zatížení procesoru.
Ukázka kódu
Následující zdrojový kód v jazyce symbolických adres 6800 je procedura MEMCPY
pro kopírování bloku dat zadané délky z jednoho místa v paměti na jiné.
; memcpy --
; Zkopíruje blok paměti z jednoho místa na jiné.
;
; Vstupní parametry
; cnt - Počet bytů, které se mají kopírovat
; src - Adresa zdrojového bloku
; dst - Adresa cílového bloku
cnt dw $0000
src dw $0000
dst dw $0000
memcpy public
ldab cnt+1 ;Nastav B = cnt.L
beq check ;Jestliže cnt.L=0, pak jdi na check
loop ldx src ;Nastav IX = src
ldaa ix ;Načti A z (src)
inx ;Zvětši src o 1
stx src
ldx dst ;Nastav IX = dst
staa ix ;Ulož A do (dst)
inx ;Zvětši dst o 1
stx dst
decb ;Odečti 1 od B
bne loop ;Znovu na loop
stab cnt+1 ;Nastav cnt.L = 0
check tst cnt+0 ;Jestliže cnt.H=0,
beq done ; pak konec
dec cnt+0 ;Odečti 1 od cnt.H
decb ;Odečti 1 od B
bra loop ;Znovu na loop
done rts ;Návrat
Odkazy
Externí odkazy
- Obrázky, zvuky či videa k tématu Motorola 6800 na Wikimedia Commons
Reference
V tomto článku byl použit překlad textu z článku Motorola 6800 na anglické Wikipedii.