Em postagem anterior relatei que consegui adaptar o jogo Bloody Paws para a Beta 48, porém com bug conhecido como efeito "snow":
As duas partes do jogo (Side 1 e Side 2) são afetadas, mas consegui consertar ambas. A origem do bug é o uso de IM 2 com registrador I com valor entre 64 a 127. Eu tive então que alterar a instrução:
24004 LD A,#5D
por:
24004 LD A,#FB
.
O próximo passo foi criar uma tabela de vetores de interrupção nos endereços #FB00 a #FC00. Esta tabela foi inteiramente preenchida com o valor #FA e portanto, a cada interrupção, o Z80 passa a executar a rotina no endereço #FAFA. Neste endereço (64250) foi colocada a instrução:
64250 JP 65270
No endereço 65270 localiza-se a rotina de interrupção propriamente dita. Após estas mudanças, o programa passou a funcionar corretamente, sem "snow":
O ZIP contendo os arquivos TZX e Hobeta está disponível no Google Drive e no 4 Shared.
Atualização em 14/10/2012: há uma versão mais nova do arquivo ZIP.
Nenhum comentário:
Postar um comentário
Seu comentário é bem vindo, mas peço que use este espaço adequadamente.