quarta-feira, 11 de julho de 2012

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

Penso em começar uma série sobre adaptação de jogos para o Beta 48, após pedidos. A maior dificuldade está em começar, pois o início sempre traz muitas dúvidas e expectativas. Acredito que o melhor ponto de partida é discutir um pouco sobre o carregamento de fita cassete

Fonte: Wikipédia

O BASIC do TK90X possui comandos sofisticados para salvar e carregar programas e dados na fita. Dentre as possibilidades, as mais importantes para o nosso propósito seriam a de salvar um programa BASIC com ou sem especificação da linha de auto-execução (SAVE "<nome>" e SAVE "<nome>" LINE <linha>), e salvar o conteúdo de uma faixa da memória (SAVE "<nome>"CODE <endereço>,<comprimento>). Existe um alias SAVE "<nome>"SCREEN$, que é equivalente a SAVE "<nome>"CODE 16384,6912. Nota: os parâmetros obrigatórios de comandos são especificados entre < e >, os parâmetros opcionais entre [ e ].

Os respectivos comandos para carregar da fita seriam: LOAD "[nome]", LOAD "[nome]"CODE [endereço] e LOAD "[nome]"SCREEN$.

A boa notícia é que o sistema operacional do Beta (DOS Beta ou TRDOS) aceita praticamente os mesmos comandos, que podem ser chamados do BASIC através de:
RAND USR 15363: REM : <comando>

Por exemplo, o programa de carregamento de fita do jogo Motos é:
10 CLEAR 24575
20 LOAD ""SCREEN$
30 INK 0: PAPER 0: PRINT AT 0,0;
40 LOAD ""CODE
50 RANDOMIZE USR 32768

Que será modificado para:
10 CLEAR 24575
20 RAND USR 15363: REM : LOAD "MOTOS1"CODE 16384
30 INK 0: PAPER 0: PRINT AT 0,0;
40 RAND USR 15363: REM: LOAD "MOTOS2"CODE
50 RANDOMIZE USR 32768

No DOS  não se pode omitir o nome do arquivo, como se faz com a fita cassete. Na linha 20, como não existe a forma SCREEN$ no Beta, substitui-se por CODE 16384. 

Uma vez modificado o carregador BASIC, bastaria salva-lo no disquete. Entretanto restaria ainda salvar os blocos tipo CODE também. Este assunto será discutido na próxima parte desta série. 

Um comentário:

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