The Lyra II, do grupo Ethanol Soft Inc (E.S.I.) da Polônia, era um dos demos que queria ver no meu TK90X. Sua adaptação para o Beta 48 foi bastante trabalhosa, mas finalmente consegui. Valeu a pena pois, apesar de antigo, (1991), o demo tem efeitos gráficos e músicas que valem a pena .
Gostei em especial da parte 4, cuja tela está na figura acima, tem uma dançarina animada que acompanha uma excelente música eletrônica. Fez lembrar-me do 9 Fingers para o Amiga, claro, guardadas as devidas proporções (vide vídeo abaixo, é um dos melhores demos para Amiga, na minha opinião).
A adaptação não foi fácil, pois o programa de carregamento estava em linguagem de máquina que era relocada várias vezes. Há uma versão em imagem de disco SCL, que infelizmente só funciona para o Beta 128, além de usar código de máquina.
Tentei usar somente o BASIC, mas não era possível, pois algumas partes corrompem registradores como SP e HL'. Por este motivo criei este programa carregador que fica numa linha REM no BASIC:
Tentei usar somente o BASIC, mas não era possível, pois algumas partes corrompem registradores como SP e HL'. Por este motivo criei este programa carregador que fica numa linha REM no BASIC:
ORG 23872
LD (23728),SP ; Preserva SP.
LD HL,RetPoint-23872 ; Copia rotina de retorno p/
ADD HL,BC ; buffer de impressora.
LD DE,23400
LD BC,EndPoint-RetPoint
LDIR
LD A,192 ; Desativa captura da RAM em
OUT (252),A ;15360-15615 pela Beta.
LD HL,(23675) ; Pega endereço para executar
JP (HL) ;a parte carregada do disco.
; Rotina executada após fim de uma parte do demo.
RetPoint:
DI ; Desativa interrupções.
LD (23675),HL ; Guarda endereço de execução da próxima
LD SP,(23728) ;parte e recupera SP e
LD HL,10072 ;HL'.
EXX
; Rotina para silenciar o PSG.
LD C,$FD ; Constante, LSB do endereço da porta do AY.
LD DE,13 ; D=0 (constante), E=13 (end. do registrador).
LD A,255 ; Constante 255.
L1:
LD B,A ; Porta #FFFD (65533).
OUT (C),E ; Escreve endereço do registrador.
LD B,$BF ; Porta #BFFD (49149).
OUT (C),D ; Zera o registrador do AY.
DEC E ; Diminui endereço do registrador do AY e
CP E ;compara com 255.
JR NZ,L1 ; Se não for 255, repete.
;
XOR A ; Reativa captura da RAM em 15360-15615
OUT (252),A
IM 1 ; Volta para Modo de Interrupção 1 e
EI ;ativa interrupções.
RET
EndPoint:
END
Como se vê, tive que fuçar muito até todas as partes funcionarem bem.
Para baixar, use um dos links: Google Drive ou4 Shared.
Atualização: está disponível versão 2 do demo adaptado.
Para baixar, use um dos links: Google Drive ou
Atualização: está disponível versão 2 do demo adaptado.
No Amiga tinha um demo que não lembro o nome era um avião de cauda dupla que orbitava uma espera espelhada num tabuleiro xadrez era algo fantástico pra época.Vou ver se acho o disquete.
ResponderExcluirNão consigo me lembrar do demo que você descreveu. Se conseguir localizar, por favor me diga qual é, pois fiquei curioso. Valeu!
Excluir