sábado, 19 de maio de 2012

Temporização de vídeo do TK90X (parte 6)

A parceria com Einar Saukas tem dado bons resultados. Nesta postagem mostro alguns programas que foram sugeridos por ele a serem usados para testar as temporizações no TK90X.

O primeiro é o minfo, que no meu TK90X produziu o seguinte resultado:


que foi analisado pelo Einar:
Isso significa que cada frame dura exatamente 59736 T-states. Bom trabalho! Vamos ver se algum outro programa de testes confirma isso...
Depois rodei o fusetest, com o resultado abaixo:


e, segundo Einar:
> O novo fusetest no TK90X produziu os resultados:
> Frame length: 0x8000 + 0x6958

Excelente resultado!
Esse valor está em hexa. Essa soma dá 0xE958, ou seja, 59736 T-states, confirmando portanto o resultado do seu teste anterior!
Por fim rodei contention e iocontention. Ambos produziram os mesmos resultados:


> De toda forma, o padrão que relatei antes fica repetindo em todas
> as linhas. Em nenhuma delas apareceu 03 no final, somente 04. Ah
> sim, a linha seguinte começava com 37fd, depois 37fe e assim por
> diante.

Então com certeza esse programa que mede a contenção está errado, porque não faz sentido um atraso de 4 T-states nas instruções o tempo todo. Se isso fosse verdade, quase todos os programas do ZX-Spectrum funcionariam muito mal no TK90X, o que a gente sabe que não é verdade.

Infelizmente não vejo outro jeito fácil de analisar a contenção. Acho que agora os próximos passos são:

- Ver se alguém pode repetir os testes de borda (descrito no seu blog) e do tempo de frame (rodando esse novo "fusetest") em um TK90X diferente. Pelo menos no caso do ZX-Spectrum, alguns computadores exatamente do mesmo modelo têm uma diferença de 1 T-state em todas as medições. Será que isso é verdade também no TK90X? Se for verdade, os tempos nos outros computadores vai ser adiantado ou atrasado em relação a essas medições?

- Esperar alguém repetir o teste no TK95. Será que os resultados serão os mesmos?

Um abraço,

Einar
Reforço o convite de Einar, peço aos amigos leitores que peguem seu TK90X ou TK95 para testar os programas e fazer os testes. Quanto mais dados tivermos, mais confiáveis serão os parâmetros de temporização do nosso clone do ZX Spectrum. Aliás meus sinceros agradecimentos ao José Roberto, por ter dedicadamente enviado seus testes.

Os programas fusetest, contention e iocontention nas versões mais atualizadas e em formato TAP (para fitas cassetes) podem ser baixados no 4 Shared. O minfo pode ser encontrado neste site (mas o fusecontrol está desatualizado). No 4 Shared também pode ser baixada a imagem de disco Beta 48 no formatoTRD com todos os programas citados.

Se alguém tiver dificuldades com o 4 Shared, posso enviar os arquivos via e-mail. Vamos fazer tudo para desvendar o funcionamento do TK90X.

3 comentários:

  1. Testei:

    -fusetest
    -contention
    -iocontention
    (todos acima do pacote fusetest2_TAP)
    -minfo

    Os resultados foram os mesmos que vc relatou.
    Bom...prá ser mais exato, a linha final no meu tk90x foi:
    0 Executado 40:1

    ResponderExcluir
    Respostas
    1. A diferença é que na versão Beta há uma instrução PRINT na linha 40, para assegurar que o canal "S" esteja aberto. Caso contrário, o programa imprime nas linhas inferiores.

      Valeu pela colaboração!

      Excluir
  2. Em tempo - A linha final que mencionei na mensagem acima, foi no fusetest.

    ResponderExcluir

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