quarta-feira, 5 de setembro de 2012

Dica: voltar ao BASIC sem perder código de máquina

Há ocasiões em que, como hacker do TK90X, desejamos poder voltar ao BASIC a partir de um programa em código de máquina. Por exemplo, quando queremos salvar um bloco de bytes em fita cassete ou em disco Beta 48. Entretanto grande parte dos programas comerciais destroem todo o sistema BASIC e torna isso praticamente impossível.


O debugger de emuladores como o Fuse permite executar NEW e assim, criar uma área BASIC limpa para trabalhar. Mas antes disso, o topo da RAM (RAMTOP) terá que ser ajustado. Se desejamos que a RAMTOP seja 24575 (#5FFF), digite na linha de comandos do debugger:
   set 23730 0xFF
   set 23731 0x5F

A seguir, ajusta-se MEMAVLB (ou P-RAMT) para que aponte para 65535, isto é, para o último byte da RAM física:
   set 23732 255
   set 23733 255

O ajuste de KCLICK (ou PIP) é opcional, mas sugerido para que os bips do teclado sejam mais agradáveis:
   set 23609 20

Feito isto, basta fazer com que o contador de programa (PC) seja alterado para o endereço do NEW (4535) na ROM:
   set pc 4535
e fechar a janela do debugger.

Quando a emulação é retomada, um NEW é executado e cria-se uma área BASIC limpa. A região da RAM acima do RAMTOP será preservada, como desejado. Apesar do procedimento acima ser descrito para o Fuse, poderá ser implementado em outros emuladores que possuam debugger. No TK90X real, este procedimento pode ser feito com a Multiface 1.

Nenhum comentário:

Postar um comentário

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