O meu TK95 recebeu uma manutenção recentemente e está em pleno funcionamento. Fiz alguns, testes, incluindo a determinação do valor da sua frequência de operação. Porém encontrei algo realmente inesperado em sua ROM.
A ROM é o circuito integrado à direita, com etiqueta. |
Em hexadecimal, a listagem seria:
O mais estranho é que a rotina em questão parece chamar uma sub-rotina somente numa combinação muito específica e inusitada de valores de registradores (R=#6C e IY=#6965). Para investigar melhor o que faz esta rotina, seria necessário criar um programa assembly para atribuir os valores exatos dos registradores, em especial o R, que é incrementado após cada instrução.
Ainda são necessárias mais investigações para tentar entender qual é a finalidade deste código recém descoberto. Seria alguma alteração que a Microdigital fez para aumentar a compatibilidade? Também não se pode descartar um Easter egg (ovo de páscoa) colocado pelos programadores da ROM.
Primeiro de abril!
Não sei se fui convincente, mas a notícia acima foi apenas uma brincadeira com os leitores do blog. A sequência de bytes acima foi gerada por um programa e corresponde a códigos ASCII de uma mensagem que pode ser vista na listagem do programa:
O último byte, de valor 201 (#C9) está lá para confundir aqueles que entendem assembly do Z80, pois é normalmente a instrução que encerra uma sub-rotina. A listagem acima é do programa que imprime em decimal, mas também fiz outra que imprime em hexadecimal.
Foi só esta postagem de ontem que era brincadeira, a outra é verdadeira (sobre TKMEM-128 Games Vol. 02)
Primeiro de abril!
Não sei se fui convincente, mas a notícia acima foi apenas uma brincadeira com os leitores do blog. A sequência de bytes acima foi gerada por um programa e corresponde a códigos ASCII de uma mensagem que pode ser vista na listagem do programa:
O último byte, de valor 201 (#C9) está lá para confundir aqueles que entendem assembly do Z80, pois é normalmente a instrução que encerra uma sub-rotina. A listagem acima é do programa que imprime em decimal, mas também fiz outra que imprime em hexadecimal.
Foi só esta postagem de ontem que era brincadeira, a outra é verdadeira (sobre TKMEM-128 Games Vol. 02)
Eheh, gostei da brincadeira de 1. de abril Flávio! :-D Confesso que o código RET (201) no final da listagem fez pensar por um segundo que se tratava de uma rotina mesmo!
ResponderExcluirHe, he, he, você acabou percebendo Edu, apesar do RET falso que deixei. Chegou a decifrar a mensagem escondida?
ExcluirCheguei sim, Flávio, era "Feliz primeiro de abril" ou algo assim! Eu até cheguei a começar a digitar os códigos num emulador pra ver, mas ai percebi que não tava parecendo que havia opcodes do Z80, os códigos estavam com valores muito alto, ai que saquei que eram códigos ASCII. Então, foi só converter. :-D Mas valeu a brincadeira!
ExcluirLegal Flávio, isso que chamo de brincadeira de primeiro de abril SAUDÁVEL - hahaha, ainda bem que o ranzinza do Edu não reclamou - hahahahaha - parabéns a ele por ter decifrado...
ResponderExcluirAbraços.
É bom brincar de vez em quando, mas claro, sem ofender ninguém. Valeu!
Excluir