Motorola 6800

Z Wikipedie, otevřené encyklopedie
Motorola 6800
Mikroprocesor Motorola MC6800
Mikroprocesor Motorola MC6800
Specifikace
Kódové značeníMC6800
Uvedení1974
VýrobciMotorola
Frekvence1 MHz (pozdější verze 2 MHz)
Instrukční sada6800
Patice40-pin DIP
NástupceMC6801, MC6805, Motorola 68000

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.

Charakteristika[editovat | editovat zdroj]

Schematická značka mikroprocesoru Motorola MC6800.

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[editovat | editovat zdroj]

Registry mikroprocesoru Motorola 6800
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (číslo bitu)
Hlavní registry
  A Akumulátor A
  B Akumulátor B
Indexregistry
IX Index register
SP Stack Pointer
Programový čítač
PC Program Counter
Registr příznaků
  1 1 H I N Z V C Příznaky

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Motorola 6800 na anglické Wikipedii.

Související články[editovat | editovat zdroj]