RETRODREAMSAMIGA & SPECTRUM
Menu

← Todos os chips

z80.chip

DIP-40 · Z8400A PS · desenho, não fotografia

Zilog Z80Zilog

1976

Zilog Z80

O processador de 8 bits de toda a família Sinclair, feito pela equipa que tinha desenhado o Intel 8080.

Lançado pela Zilog em julho de 1976, o Z80 é um processador de 8 bits compatível com o Intel 8080, desenhado por Federico Faggin e Masatoshi Shima. Ele, ou um compatível dele, está em todas as máquinas da Sinclair do ZX80 ao +3, e só saiu de produção em 2024.

bits por dentro
8
bits de bus
8
MHz no máximo
20
transístores
8500
endereçáveis
64 KB

Os homens do 8080

Federico Faggin tinha liderado na Intel o trabalho no 4004 e no 8080, e Masatoshi Shima tinha sido o principal projetista da lógica e dos transístores desses dois chips. Em 1974, com a Intel a tratar os microprocessadores como um acessório para vender memórias e em plena recessão, Faggin desafiou Ralph Ungermann a fundarem uma empresa. O último dia de Faggin na Intel foi o Halloween, 31 de outubro de 1974.

A empresa ainda nem tinha nome quando a Exxon Enterprises, o braço de investimento em tecnologia da petrolífera, leu uma notícia sobre ela e entrou com 500 000 dólares em junho de 1975. Shima juntou-se em fevereiro desse ano e trouxe da sua experiência com minicomputadores da NEC a ideia de ter dois conjuntos de registos, para responder depressa a interrupções.

O nome surgiu numa conversa entre Faggin e Ungermann: Zilog, que eles explicavam como "a última palavra em lógica integrada". As primeiras amostras do Z80 chegaram da Mostek a 9 de março de 1976 e o lançamento oficial foi em julho. Segundo o próprio Faggin, trabalhava 80 horas por semana para cumprir o calendário dos investidores.

Um 8080 melhorado

O Z80 corre sem alterações a maior parte dos programas do 8080, incluindo o sistema operativo CP/M, e por isso herdou de uma vez uma biblioteca inteira de software. Mas simplifica muito o resto da placa: precisa de uma só alimentação de 5 V (o 8080 pedia −5, +5 e +12 V), de um relógio simples de uma fase, e refresca sozinho a memória dinâmica (DRAM), que de outra forma exigia circuitos à parte.

Acrescenta também instruções que os programadores agradeceram: operações sobre bits individuais, saltos relativos, cópia e pesquisa de blocos de memória (LDIR, CPIR), aritmética de 16 bits com sinal, e dois registos de índice, IX e IY. O sistema de interrupções ganhou três modos (0, compatível com o 8080; 1, que salta sempre para o mesmo endereço; e 2, com uma tabela de endereços) e uma interrupção não mascarável, a NMI.

Por dentro, explicado

Um registo é uma gaveta dentro do processador, muito mais rápida do que a memória. O Z80 tem o acumulador A (onde se fazem as contas), as flags F (que dizem se o resultado deu zero, se houve transporte, etc.) e os pares BC, DE e HL, que tanto guardam dois números de 8 bits como um endereço de 16 bits. Há ainda IX e IY, o ponteiro da pilha SP e o contador de programa PC.

O truque de Shima é que AF, BC, DE e HL existem em duplicado: há um segundo conjunto "sombra", AF', BC', DE' e HL'. As instruções EX AF,AF' e EXX trocam os dois conjuntos em quatro ciclos de relógio. Pensado para interrupções, acabou usado como gavetas extra: a ROM do ZX81 usa os registos sombra para trabalhar com os números de vírgula flutuante de 40 bits do seu BASIC.

O Z80 endereça 64 KB de memória e, à parte, 256 portas de entrada e saída. Na prática, em cada operação de entrada e saída põe os 16 bits no bus de endereços, e o ZX81 e o Amstrad CPC aproveitam o byte de cima para poupar lógica de descodificação.

Uma surpresa para quem o vê como um processador de 8 bits: a unidade aritmética é de 4 bits, e cada soma de 8 bits é feita em duas metades.

O registo R e o truque da Sinclair

Há dois registos pouco comuns. O I guarda a parte de cima do endereço da tabela de interrupções do modo 2. O R é o contador de refrescamento: soma 1 a cada instrução lida da memória, só conta nos 7 bits de baixo, e logo a seguir a cada leitura de instrução o Z80 põe I e R no bus de endereços para refrescar a DRAM.

A Sinclair transformou isto em placa gráfica. No ZX80 e no ZX81, o processador "executa" a própria memória do ecrã: o circuito de vídeo lê cada código de carácter, entrega ao Z80 uma instrução NOP (não fazer nada) e, no ciclo de refrescamento seguinte, junta o registo I (que aponta para o desenho dos caracteres na ROM), o código do carácter e o número da linha para ir buscar à ROM o desenho a mostrar. Cada linha de texto acaba numa instrução HALT.

O R faz de contador de posição no ecrã. No ZX81, o pino de interrupção está ligado à linha de endereço A6: quando o bit 6 do R passa de 1 a 0, dispara uma interrupção, e o sistema sabe que chegou ao fim de uma linha. Menos componentes, menos custo, e um processador ocupado a desenhar, daí os modos FAST e SLOW.

No Spectrum é a ULA que desenha a imagem, mas o R e o I continuam a contar. Muitos jogos usam o R como fonte de números aleatórios. E se um programa puser o registo I entre 0x40 e 0x7F, os endereços de refrescamento caem na memória partilhada com a ULA e aparece "neve" no ecrã (o snow effect).

Variantes, cópias e clones

No NMOS original, a velocidade máxima foi subindo: 2,5 MHz no Z80, 4 MHz no Z80A (o do ZX81 e do Spectrum, que o usam abaixo do limite), 6 MHz no Z80B e 8 MHz no Z80H, com uma versão de 10 MHz no fim dos anos 80. As versões CMOS vão até 20 MHz e podem parar o relógio sem perder o estado, coisa que o NMOS não permite por mais de uns milhares de ciclos.

Para ter segundas fontes, a Zilog licenciou o chip à Mostek (MK3880) e à SGS (Z8400); a Sharp fez o LH0080 e a NEC o µPD780C. A NEC chegou lá por engenharia inversa e mais tarde fez um acordo com a Zilog numa disputa de patentes, ficando com licença. O NEC D780C-1 é o processador da maioria dos Spectrum e da maior parte dos ZX80. Houve ainda cópias não licenciadas, como o U880 da Alemanha de Leste e o T34BM1 soviético.

Zilog e NEC não são exatamente iguais nos cantos escuros: depois de SCF e CCF, os bits 3 e 5 das flags, que o manual não documenta, ficam diferentes num e noutro. Quase nenhum programa depende disso, mas os programas de teste de CPU apanham a diferença.

A 15 de abril de 2024 a Zilog anunciou o fim do Z80 clássico, com encomendas aceites até 14 de junho de 2024: 48 anos depois do lançamento. Continua o eZ80, um descendente compatível.

Onde mais o encontras

Nos anos 70 e 80 o Z80 com CP/M dominou os computadores de escritório, do Osborne 1 aos Kaypro. Nos domésticos está nos TRS-80, nos Amstrad CPC e PCW, no MSX e no SAM Coupé, que usa um Z80B a 6 MHz. O Cambridge Z88, o portátil que Clive Sinclair fez em 1988 depois de vender a marca à Amstrad, também tem um Z80, em versão CMOS.

Nos jogos: a máquina de arcada do Pac-Man, a ColecoVision, a Master System e a Game Gear da Sega. A Mega Drive tem um Z80 ao lado do 68000, com 8 KB de memória própria; serve para correr jogos da Master System e é muitas vezes usado para tratar do som, mas não é só um chip de som.

E nas calculadoras gráficas da Texas Instruments, a começar pela TI-81, de 1990, com um Z80 a 2 MHz, até às TI-83 e TI-84 Plus, ainda vendidas em 2025. As mais recentes TI-84 Plus CE já usam o eZ80.

Sabias que…

  1. Para dificultar cópias, a equipa pôs no chip seis "armadilhas": transístores alterados para se comportarem de forma diferente do que o desenho sugere. Segundo Shima, um engenheiro da NEC contou-lhe mais tarde que isso lhes atrasou a engenharia inversa seis meses.

  2. Shima tinha fama de calcular de cabeça, a meio de uma reunião, quanto espaço no chip ia ocupar uma ideia, e de a vetar se não coubesse.

  3. Diz-se que o X de ZX80 era "o ingrediente mistério" acrescentado ao Z80.

  4. Os registos IX e IY podem ser usados às metades (IXH, IXL, IYH, IYL). A Zilog nunca o documentou, mas funciona nos Z80 da época e os programadores usaram-no à vontade.

  5. Nos Z80 CMOS, a instrução não documentada OUT (C),0 envia 255 em vez de 0.

  6. O bit 7 do registo R nunca muda sozinho: só o altera a instrução LD R,A.

  7. Como no Spectrum o byte no bus durante uma interrupção é quase sempre 0xFF mas não garantido, os jogos que usam o modo 2 enchem uma tabela de 257 bytes todos iguais, para caírem sempre no mesmo sítio.

  8. Esteve 48 anos em produção, de 1976 a 2024.

Onde está