Eletrônica
Sound Demo 04 para Beta 48
Desta vez a adaptei para disco padrão Beta 48 para TK90X, o programa de autoria de Theo Devil, intitulado Sound Demo 04. Este beep demo faz parte de uma coleção feita para a revista Sinclair User, num total de 10 volumes, mas nem todos foram publicados devido ao cancelamento do periódico.
Um problema adicional deste programa é ser disponível somente em formato Z80 que, ao contrário de TAP ou TZX, não é imagem de fita cassete. O arquivo Z80 é um snapshot, isto é, uma representação instantânea de toda a RAM do TK90X, mais dos registradores do microprocessador. Faz-se necessário portanto uma certa investigação para poder transferir o conteúdo para o disco.
Logo depois de carregar o arquivo SDEMO04.Z80, aparece a tela abaixo e ouve-se um BEEP longo.
Na sequência, abre-se a tela do demo.
Para descobrir sobre o conteúdo do arquivo Z80, a primeira tentativa é o utilitário listbasic que acompanha o emulador Fuse. Quando se executa este utilitário no shell do Linux, aparece:
Existem alguns comandos LOAD e SAVE não usuais, provavelmente para Microdrives ou discos do Spectrum +3. O importante é que na linha 2 aparece uma instrução BEEP, pois há uma chance de que o snapshot tenha sido congelado justamente durante a sua execução. Se assim for, há uma chance de interromper o programa pressionando a tecla BREAK. Foi isto que ocorreu, sendo possível então listar o programa BASIC que se torna visível após INK 9:
Fica claro que o código de máquina está localizado acima do endereço 24500 (#5FB4), então bastaria salvar toda a RAM a partir deste ponto. Entretanto isto poderia representar um desperdício de espaço de disco, pois seria pouco provável que esta demo ocupasse toda essa memória.
Utilizando a opção Machine > Memory browser do menu do Fuse, torna-se possível varrer toda a RAM acima de 24500:
Observou-se que o último byte do código de máquina situa-se em #9B53 (39763), pois acima deste a RAM está limpa. Na verdade no final da RAM, a partir de #FF0A (65290), há alguns bytes diferentes de 0, certamente os mapa de bits dos caracteres UDG e resíduos da pilha da CPU antes da instrução CLEAR. Portanto para salvar o código de máquina no disco TRD virtual, basta usar no DOS o comando:
SAVE "SDEMO04"CODE 24500,39764-24500.
Isto feito, basta criar um pequeno carregador BASIC, cuja listagem é dada a seguir, e salvá-lo no disco.
Talvez alguns leitores não estejam tão interessados em todo esse papo e queira só baixar os arquivos. Os arquivos em formato Hobeta estão disponíveis neste link do 4 Shared (infelizmente é necessário ter uma conta lá, mas o registro é gratuito).
loading...
-
Programa '48kbmode'
Alguns programas para 48KB são incompatíveis com o modo 128KB e não rodarão na TKMEM-128, a não ser que o chaveamento da RAM seja desativado. Os jogos da Ultimate como Knight Lore, Alien 8 e Pentagram têm este problema. Para solucionar isto, os...
-
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...
-
Adaptação De Jogos De Fita Para Beta 48 (parte 9)
O método mais seguro para quebrar as proteções de jogos salvos em fitas é analisar o carregamento desde o início, incluindo um exaustivo disassembly do código de máquina. Entretanto por vezes é vantajoso economizar esforços com alguns truques....
-
Adaptação De Jogos De Fita Para Beta 48 (parte 8)
Hoje eu fiz a adaptação de Rogue Trooper para o Beta 48 e, como venho elaborando uma série mostrando como se faz isto, aproveito para apresentar mais uma técnica. Deste vez abordarei como usar visualizador de memória do emulador Fuse. Apesar de mostrar...
-
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...
Eletrônica