Notei uma inesperada incompatibilidade do "The Misha Megademo" que me impediu de lançar justo agora a versão TAP do AY Demos vol. 8.
Quando tentei rodar o arquivo TAP no TK90X ou TK95 com divIDE, o carregamento era interrompido com mensagem de erro. O comportamento é reproduzido no emulador Fuse com a ROM do TK90X.
A listagem do programa BASIC é protegida contra a listagem, o que me obrigou a usar o Basic Lister para examinar seu conteúdo. Como era esperado, há vários códigos de controle embutido no BASIC e, entre eles, a sequência
INK #20 #00
(em decimal 16 32 0) no início das linhas, exceto na linha 0. Estes códigos são interpretados durante a exibição da listagem, como o caso da sequência 16 32 que instrui para imprimir em INK 32 (como este valor de ink está fora da faixa, resulta em código de erro e a listagem é interrompida).Normalmente tais códigos são ignorados durante a execução do programa BASIC, portanto não afetariam seu funcionamento. Entretanto no caso dos TKs, foi atribuído ao código 0 a palavra-chave UDG (ausente no ZX Spectrum), que não é ignorado pelo interpretador BASIC. Durante a execução, o interpretador encontra o comando UDG e espera um argumento numérico que, por não existir, acaba causando a mensagem de erro de sintaxe. Algo semelhante ocorreria se houvesse um código 1 no meio do programa BASIC, pois corresponde ao comando TRACE. Este é o primeiro caso que vi de um programa incompatível com as ROMs do TK95 (e do TK90X).
A solução para esta incompatibilidade consiste em substituir a sequência de bytes 16 32 0 por 32 32 32 (três espaços). Acrescentando duas linhas BASIC listadas acima e rodando com
GOTO 9000
, todos os códigos de controle problemáticos são removidos.A listagem acima é o resultado deste procedimento e, sem os códigos de controle, o conteúdo do BASIC fica todo visível. Agora basta apagar as linhas 9000 e 9010 e salvar o programa BASIC em arquivo TAP. Em testes, o programa assim modificado rodou normalmente com as ROMs dos TKs.
Irei disponibilizar este demo modificado no AY Demos vol. 8. Aguardem!
Belo trabalho, valeu....
ResponderExcluirShow Flavio!!!! Fico lendo suas explicações quase sem nunca entender kkkk ASM não é para os fracos!!! :)))
ResponderExcluirbelo trampo Flavio!!!
ResponderExcluirshow!!!
Amigos, obrigado pelas suas palavras. Vocês encorajam-me a manter este blog. ;)
ResponderExcluir