Olá Flávio,
Uma boa notícia: descobri como adaptar seu programa de teste de temporização para ter precisão perfeita!
Tomei a liberdade de fazer essas alterações no seu programa para testá-lo, espero que você não se incomode com isso. Essa nova versão (incluindo código fonte e arquivo TZX) está disponível em:
http://www.mediafire.com/?zoz8wwzx8b93cst
Para usá-lo, deve-se fazer o seguinte:
1.) Em primeiro lugar, enquanto a mudança de cores ainda está na borda superior, usar as teclas O e P para "calibrar" um parâmetro que chamei de "delay mod 4". Esse parâmetro varia de 0 a 3, sendo que apenas um desses valores evita que a mudança de cor da borda fique piscando. Por exemplo, no ZXSpin 0.7 e no SpecEmu usando a configuração "Spectrum 48K" sem "late timing", esse valor é 3 (no SpecEmu, se mudarmos para "late timing" o valor que não pisca passa a ser zero).
2.) Em seguida, não mexer mais no parâmetro acima e fazer todas as medições usando apenas as teclas QWE e ASD. Note que, quando as cores da borda aproximam-se da tela, elas podem piscar devido a contenção de memória, mesmo que o parâmetro "delay mod 4" tenha sido ajustado corretamente. Por isso é importante que esse parâmetro tenha sido previamente ajustado na borda superior, longe da tela.
Com esse novo parâmetro, eu repeti todos os testes do seu blog para o Spectrum 48K usando SpecEmu e ZXSpin, obtendo os mesmos resultados em todos os casos:
* Teste 1: zona oculta do topo da tela
Min Delay=3567
* Teste 2: última posição da borda acima da tela principal
Min Delay=14267
* Teste 3: primeira posição visível à esquerda da tela.
Min Delay=14319
* Teste 4: posição à esquerda da área principal do vídeo
Min Delay=14339
* Teste 5: posição à esquerda da área principal do vídeo
Min Delay=14463 ou 14467
* Teste 6: última posição à direita
Min Delay=14487
O resultado 4 indica um delay mínimo de 14339 e máximo de 14342, o que corresponde perfeitamente à documentação do ZX-Spectrum 48K.
Entretanto, no teste 5 existem 2 valores que "caem" exatamente na mesma posição, devido a atrasos causados pela contenção. Por causa disso, infelizmente os valores na borda direita ficam todos distorcidos, inclusive o valor do teste 6 também não é confiável. O único jeito confiável seria fazer essas medições uma linha acima ou abaixo da tela!
Infelizmente meu TK90X de verdade não está mais operacional, por isso minhas medições foram só nos emuladores mesmo. Assim são vocês que vão ficar com toda a diversão... De qualquer forma seria legal se mais pessoas fizessem essas medições para comparação, para sabermos se todos os TK90X têm os mesmos tempos e se são os mesmos do TK95.
Além disso, sugiro 4 novas medições:
* Teste 7: primeira posição visível à esquerda, na linha seguinte à tela
* Teste 8: posição à esquerda da área do vídeo, na linha seguinte à tela
* Teste 9: primeira posição à direita do vídeo, na linha seguinte à tela
* Teste 10: última posição à direita do vídeo, na linha seguinte à tela
Ou seja, seriam exatamente repetições dos testes 3, 4, 5 e 6 do Flávio, porém na linha da borda que fica logo embaixo do final da tela. Eu gerei uma imagem de cada um desses testes para servir como base, caso seja útil:
http://www.mediafire.com/?7y02z60bp8ll2lw
Quem puder coletar essas medições no TK de verdade, por favor mande os resultados para a lista ou diretamente para o Flávio compilar os resultados no blog dele, afinal toda essa iniciativa de medição das temporizações é dele e eu estou aqui dando palpite "de penetra"! =:)
Um abraço,
Einar