terça-feira, 9 de abril de 2013

Modelo de temporização do TK90X em 60 Hz

Com os dados anteriormente coletados, apesar das incertezas das medidas, é possível propor um modelo de temporização para o TK90X. O que estarei expondo aqui é fortemente baseado no livro de Chris Smith. Estarei centrando a análise no modo 60 Hz que, além de ser o que nós rotineiramente usamos, para 50 Hz seria necessário modificar o programa de teste.


A principal unidade de tempo do Z80 é o seu clock, cuja frequência nominal é de 3,575611 MHz e o período (T) é de 279,6725 ns. Entretanto a ULA usa o dobro desta frequência na geração de vídeo, isto é, 7,151222 MHz. Portanto, a duração de cada pixel é de ½T ou 139,8362 ns. 

O tempo de duração de um quadro (que inclui a tela visível e a parte que não é mostrada) é de 59736 T que corresponde a 16,70652 ms ou 59,85689 Hz (um pouco abaixo de 60 Hz). Nesta análise, considerou-se como tempo inicial (0 T) o início da rotina de interrupção mascarável, pois as medições foram feitas dessa forma.

Cada quadro é composto por 262 linhas com duração de 228 T (63,76533 μs ou 15,68250 kHz) cada. Numerando as linhas de 0 a 261, podemos classificá-las em:
  • 0-22: 23 linhas invisíveis superiores (0-5243 T);
  • 23-37: 15 linhas da borda superior (5244-8663 T);
  • 38-229: 192 linhas da tela principal (8664-52439 T); 
  • 230-251: 22 linhas da borda inferior (52440-57455 T);
  • 252-261: 10 linhas invisíveis inferiores (57456-59735 T).
O tempo de uma linha pode ser dividido em:
  • 0-23 T: 24 T ou 48 pixels da borda direita; 
  • 24-75 T: 52 T invisíveis, que incluem sincronização e retraço; 
  • 76-99 T: 24 T ou 48 pixels da borda esquerda; 
  • 100-228 T: 128 T ou 256 pixels da tela principal. 
Pode parecer estranha a exibição da linha começar pela borda direita da linha imediatamente acima e ser terminada com a tela principal, porém isto ocorre porque o tempo 0 foi definido, de forma arbitrária, no início da interrupção. Não existe a priori um início ou um fim na sequência de geração de vídeo, pois é um ciclo que se repete indefinidamente; sendo assim, poder-se-ia escolher qualquer ponto como sendo o começo da geração de um quadro.
Assim, se o tempo inicial for redefinido como 5320 T após início da rotina de interrupção, as 262 linhas do quadro passam a ser:
  • 0-14: 15 linhas da borda superior (0-3419 T);
  • 15-206: 192 linhas da tela principal (3420-47195 T);
  • 207-228: 22 linhas da borda inferior (47196-52211 T);
  • 229-: 33 linhas invisíveis (52212-59735 T). 
e o tempo da uma linha seria dividido em: 
  • 0-23 T: 24 T ou 48 pixels da borda esquerda;
  • 24-151 T: 128 T ou 256 pixels da tela principal; 
  • 152-175 T: 24 T ou 48 pixels da borda direita; 
  • 176-227 T: 52 T invisíveis, que incluem sincronização e retraço.
 Acredito ser esta segunda abordagem mais intuitiva. A temporização horizontal e as linhas verticais estão sumarizados na figura:


Nenhum comentário:

Postar um comentário

Seu comentário é bem vindo, mas peço que use este espaço adequadamente.