Obrigado a Julio Marchi pelo espaço cedido na MSX All |
||
Crie displays animados de tela para a screen 2 do MSX como no Graphos III.
A seguir são apresentados os displays criados para carregar uma tela na screen 2. Cada display acompanha o código fonte em Assembly, um programa em Basic para testar o algoritmo e o código fonte no formato "ASM" do Assemblador RSCII. Autor: Marcelo Silveira Licença dos programas: GNU-GPL v. 3.x - http://www.gnu.org/licenses/gpl-3.0.txt. Para testar o algoritmo, rode a versão em Basic do programa que acompanha cada código. Ele se localiza ao final do arquivo "txt". Após rodar o programa, o código de display já estará na memória e pronto para rodar. Porém, para isso, você deverá limpar a memória do MSX através do comando NEW e utilizar o programa a seguir. 10 SCREEN 2 20 DEFUSR=&HC000 30 X=USR(0) Displays através de mapa Talvez a maneira mais simples de se fazer displays é através de um mapa na memória RAM, contendo a ordem de aparição dos blocos de 8x8. Dessa forma, o trabalho se resume a ordenar os blocos que deverão aparecer na tela. O mapa representa 768 blocos de 8x8 pixels com dois bytes cada, totalizando 1536 bytes. Cada valor do mapa contém um ponteiro genérico para as posições de memória, no padrão de 1x8 pixels, começando por 0 e variando de 8 em 8. O mapa é colocado logo após o código genérico de display para mapas "map" ou "map 2" (vide acima), na posição fixa de memória &HC100. Então, o programa de display de mapas varre a região entre &HC100 e &hC6FF em busca dos blocos a preencher na tela. Qual a diferença entre "map" e "map 2"? O programa "map" utiliza o conceito de quadros, no qual um delay é adicionado sempre que um quadro é detectado. O bit mais significativo do primeiro bloco de um novo quadro é setado para sinalizar a mudança de quadro. Exemplo: +--------+--------+--------+--------+ | blc 1 | blc 2 | blc 3 | blc 4 | +--------+--------+--------+--------+ | &H8000 | &H0008 | &H8010 | &H0018 | +--------+--------+--------+--------+ | quadro 1 | quadro 2 | +--------+--------+--------+--------+No exemplo acima, temos 4 blocos de 8x8 pixels, onde criamos 2 quadros, cada um com 2 blocos. Podemos ter quantos quadros quisermos e de qualquer tamanho cada, bastando sinalizar o primeiro bloco. O bit de quadro está sinalizado em vermelho. Já o programa "map 2" insere um display forçado entre o carregamento de cada bloco 8x8, ou seja, não verifica o bit de delay. Os mapas são compatíveis nos dois programas. Mapas de display disponíveis: Autor: Marcelo Silveira Licença dos mapas: GNU-GPL v. 3.x - http://www.gnu.org/licenses/gpl-3.0.txt. Os novos displays estão disponíveis a partir do MSX Viewer 5.2. |
||