É a ULA que varre a memória do ecrã e atributos para gerar o video externo. Quer pelo estudo de interacções na arquitectura (floating bus), efeitos multicor, snow effect, quer por engenharia reversa, ao longo do tempo foi-se melhorando o conhecimento dos timings do varrimento do ecrã. O que permitiu desenvolver hardware e software que emulam fielmente os efeitos de ecrã.
A ULA é alimentada por um cristal de 14MHz, que divide em 2, para varrer a memória do ecrã a 7MHz, e divide novamente a metade para fornecer o impulso de CLK ao Z80.
O varrimento é feito em linhas horizontais. e é iniciado ao mesmo tempo que a ULA envia um sinal de interrupt (INTR), ao Z80. Note-se que os timings em questão são para a geração de sinais PAL.
O ecrã tem 16 linhas de Hsync + 305 linhas visíveis, cada uma sendo varrida em 224T ciclos de Z80.
Numa linha:
- os primeiros 48T são para sincronização;
- logo em seguida, 24T para a geração da linha da borda esquerda;
- 128T para o varrimento de pixels/atributos;
- e por fim 24T, para a geração da linha da borda direita.
O varrimento da memória/linhas é feito de tal maneira pela ordem que elas são apresentadas no ecrã (lembrar que é o varrimento da imagem).
O fenómeno conhecido como contenção de memória apenas acontece (a partir do issue 3). Ou seja, quando o Z80 tenta aceder a RAM nos primeiros 16KB, e a ULA está a aceder a pixels ou atributos (i.e. o CLK do Z80 deixa de ser fornecido). Estando a ULA a varrer o border ou depois de acabar atributos e não ter passado ao próximo bytes de pixels, não existe contenção de RAM.
As variações de cor de border no carregamento de cassetes, tem também a ver com variar a cor do border em timings que implica que no rendering das diferentes linhas que compõe o ecrã, o border esteja com cores diferentes.
Este artigo não pretende entrar em mais profundidade nos efeitos visíveis do varrimento do ecrã. No próximo artigo descreveremos o efeito de floating bus no Spectrum 48K, que é um artefacto do desenho da arquitectura do ZX Spectrum em conjunto com estes timings.
Ver: Spectrum Timings e Contended memory
Sem comentários:
Enviar um comentário