Eletrônica
LSD Megademo (Pentagram)
Mais um demo para TK90X com Explorer foi adaptado para a interface de drive padrão Beta 48, o LSD Megademo do grupo Pentagram.
Uma dificuldade adicional na adaptação foi a presença de código de máquina dentro de linha BASIC, prática que era comum no ZX-81. Para este procedimento funcionar, o programa BASIC não deve mudar de posição na memória, porém o TRDOS (sistema operacional da interface Beta) acaba deslocando 112 bytes a partir do endereço 23734 para criar suas variáveis. A solução foi empregar a rotina RECLAIM_2 da ROM do TK90X, que toma de volta um espaço de memória. Porém, antes de 'reclamar' a memória ocupada pelas variáveis do TRDOS, estas devem ser salvas n um local temporário, para serem novamente recuperadas antes de fazer operação de leitura de disco.
A restauração da área de variáveis TRDOS é feita com a rotina MAKE_ROOM da ROM do TK90X, que faz o oposto de RECLAIM, isto é, cria um espaço na memória de BC bytes a partir do endereço HL+1.
Os endereços das rotinas RECLAIM_2 e MAKE_ROOM estão contidas no arquivo Header_Basic.asm. Seu funcionamento está detalhado no livro "O sistema operativo do Spectrum: ROM disassembly" de Ian Logan e Frank O'Hara.
O resultado final foram as duas rotinas listadas abaixo, uma para remover as variáveis TRDOS, e outra para as restaurar.
ORG 32000
;
INCLUDE "Headers_Basic.asm"
;
EraseVar:
LD HL,23734+111 ; HL aponta para final da área das variáveis TRDOS.
LD BC,112 ; Número de bytes a reclamar.
PUSH BC ; Guarda o valor de BC.
LD DE,SaveVar+111 ; Local para salvar variáveis TRDOS.
LDDR ; Salva temporariamente as variáveis TRDOS.
INC HL ; HL aponta para endereço 23734.
POP BC ; BC especifica 112 bytes a 'reclamar'.
JP RECLAIM_2 ; Executa rotina da ROM.
;
RestoreVar:
LD HL,23733 ; HL aponta para endereço anterior a 23734.
LD BC,112 ; Número de bytes de espaço a criar.
PUSH BC ; Guarda valor de BC.
CALL MAKE_ROOM ; Rotina da ROM para abrir espaço.
POP BC ; Número de bytes para recuperar.
INC DE ; DE aponta para 23734.
LD HL,SaveVar+111 ; HL aponta para onde foi salvo as variáveis TRDOS.
LDDR ; Copia as variáveis no espaço criado.
RET ; Fim
;
SaveVar:
DEFS 112
Este demo é relativamente antigo (1992) e na maior parte não me impressionou muito. Mesmo assim vale a pena dar uma olhada. Os gráficos vetoriais (que me lembraram alguns demos para Amiga) e o scroller ao redor de um planeta são as melhores partes do programa. Além de tudo, tem umas músicas para exercitar o PSG de sua interface Explorer.
Os arquivos em formato
Hobeta estão disponíveis no Google Drive e no
4 Shared.
Atualização: versão 2 no Google Drive e no
4 Shared, que funciona na
Beta 48 e 128.
loading...
-
Dica Tv Electronia 20nt Chassis 11ak30
Defeito--Não liga. Led vermelho aceso. Ao tentar ligar, o led passa a verde mas, no mesmo instante, o led volta para vermelho e a fonte da tv não arma.Valores ...
-
Dica Tvs Panasonic Tx-32pk25f Chassis Euro-4h
Defeito--Imagem a preto e branco ou com as cores alteradas com manchas como se o TRC estivesse magnetizado. Foi regravada a eeprom mas não resultou. Em ...
-
Dica Tvs Panasonic Tx-25xd3e Chassis Euro 2m
Defeito--Este tv estava em protecção, trazia o transístor de saída de linhas (2SD1577- LB) em curto. Depois de o substituir, o tv arrancou apresentando o seguinte ...
-
Outra Rotina De Detecção De Ram 48/128k
Eu publiquei nesta postagem, uma rotina que faz a detecção no TK90X da configuração com ou sem a TKMEM-128 (128 ou 48K de RAM). Modifiquei-a e consegui fazer com que ficasse menor ainda (25 bytes). Esta rotina testa se ocorre chaveamento entre...
-
Thundercats V. 2 Para Basic 128
Mal acabei de lançar uma adaptação do Thundercats para Beta e TKMEM-128 e estou com a versão 2. A versão anterior tinha um problema: não consegue carregar a partir do BASIC 128, portanto tinha que dar um 'USR 0' antes. Na versão 2 não...
Eletrônica