domingo, 2 de setembro de 2012

Bloody Paws sem efeito "snow"

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.