quinta-feira, 12 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 2)

Na parte 1 dei o ponta-pé inicial falando sobre a correspondência de comandos entre o BASIC do TK90X e o DOS Beta (ou TRDOS). Entretanto estamos longe de termos adaptado algum jogo, pois os arquivos devem ainda ser salvos no disco. As operações de discos são feitas na interface de linha de comando (prompt) da interface Beta 48:


Deve-se lembrar que, de modo análogo à edição BASIC, o prompt aceita as palavras-chaves (tokens) com toques simples de teclado. Por exemplo, não se digita o comando SAVE letra a letra (S, A, V e E), mas com um simples toque na tecla S com cursor em modo K. Se estiver no BASIC, deve-se digitar o seguinte para entrar no modo DOS:
RAND USR 15360

Para salvar o programa BASIC com modificações apresentado na parte 1, após ter sido digitado, deve-se usar o comando:
SAVE "motos" LINE 10

Agora falta salvar a tela de carregamento (SCREEN$) e o código de máquina (CODE) no disquete. Aparece um problema aqui: como saber os parâmetros para o comando SAVE? Uma solução possível é o excelente utilitário STK, que foi oferecido na fita brinde da revista Your Sinclair. As instruções se encontram neste link e, o programa propriamente dito, está contido na imagem em formato TZX da fita brinde. Para saber o tipo de bloco gravado, use o comando  J LOAD seguido de GRAPHICS (Caps-shift + 9), posicione a fita cassete no início do bloco e faça o carregamento.

Além do STK, havia um utilitário publicado na revista Micro Sistemas que lia a fita e imprimia os dados dos blocos gravados. Não sei qual era o exemplar, mas se descobrir, irei publicar numa postagem. Eu tenho a impressão de que certos copiadores (Iso-copy, Omnicopy) também apresentavam os dados de blocos de byte, mas não tenho certeza.

Para poder salvar arquivos tipo CODE, os dados necessários são o endereço inicial do bloco e o comprimento. No exemplo do jogo Motos, existem dois blocos: uma tela de nome "pic" com endereço 32768 e comprimento 6912, e um bloco de bytes com código de máquina de nome "code" com endereço 32768 e comprimento 32768.

Se estiver no prompt do DOS, retorne ao BASIC com o comando RETURN. Digite o comando CLEAR 3e4 para reservar espaço de RAM, carregue o primeiro bloco com LOAD ""CODE e volte para o DOS. Lá, salve o bloco com: 
SAVE "MOTOS1"CODE 32768,6912

Faça o mesmo para o segundo bloco mas, na hora de salvar no disco, digite:
SAVE "MOTOS2"CODE 32768,32768

Permanecendo no DOS, digite o comando CAT e confira se o BASIC e os dois blocos de bytes estão gravados o disco. Para rodar o programa do disco, basta carregá-lo com:
LOAD "motos"

Assim, um jogo foi adaptado para Beta 48. Foi fácil, mas o exemplo de Motos é atípico por não ter nenhum esquema de proteção contra pirataria. Nas partes futuras temos que levar em conta as diferentes formas de proteção e como contorná-las. 

Um comentário:

Seu comentário é bem vindo, mas peço que use este espaço adequadamente.