Neste espaço, estarei disponibilizando as minhas realizações em termos de software para o ZX81. São programas que eu desenvolvi e outros que eu apenas modifiquei para incorporar novos recursos tais como som e redefinição de caracteres.

Alguns desses programas requerem recursos especiais de hardware, os quais estarão identificados pelos ícones abaixo:

UDG
Requer uma placa de redefinição de caracteres mapeada em RAM no endereço 3000h.
CHR$128
Requer uma placa de redefinição de caracteres com esquema CHR$128 mapeada em RAM no endereço 3000h. Esta placa permite a redefinição de até 128 caracteres, em oposição ao esquema tradicional que permite redefinir apenas 64 caracteres.
ZONX
Requer uma placa de som compatível com a ZON-X81.
WRX
Usa o esquema de alta-resolução WRX e requer que a expansão de memória tenha acesso para leitura durante o ciclo de refresh da CPU.
PRT
Requer a ZX Printer


Para rodar os programas no emulador EightyOne é necessário configurar o hardware emulado conforme mostrado nas imagens a seguir (menu "Options/Hardware" ou tecla F6).




Espero que apreciem e divirtam-se.

Kelly Abrantes Murta
kmurta@yahoo.com.br




ZX81 Toddy Forth (JAN/2011)

O Toddy Forth é uma implementação destinada aos microcomputadores ZX81 que foi desenvolvida a partir do código do MS Forth 2.0, adotando muitos conceitos do Camel Forth de Bradford J. Rodriguez. Até onde eu saiba, é o único forth para ZX81 a usar Direct Threaded Code (DTC), o que o torna consideravelmente mais rápido que as outras implementações existentes.




Download


Os programas podem ser  confortavelmente desenvolvidos em modo texto no editor de sua preferência e compilados no emulador EightyOne. Carrega-se o arquivo texto no EO pelo menu File/Load Memory Block, por exemplo no endereço 32768 da RAM. Depois é só compilar com 32768 LOAD.




Compilando o programa Calendar.fth no Eightyone


O núcleo básico ocupa pouco mais de 4Kb e inclui as palavras mais usuais, podendo ser facilmente extendido conforme a necessidade. Inclui vários programas exemplo e um arquivo library com dezenas de definições de palavras não inclusas no núcleo básico.

O arquivo de tela é fixo na memória no endereço 16530 (4092h), que corresponde à primeira posição da tela (DFILE+1).

As variáveis de sistema são:

43AB 
S0 Endereço base da pilha de parâmetros
43AD 
R0 Endereço base da pilha de retorno
43AF 
RSP Topo da pilha de retorno
43B1 
TIB Terminal Input Buffer
43B3 
LBP Line Buffer Pointer - endereço corrente dentro do TIB
43B5 
STATE Indica o estado de compilação - 0 = estado de interpretação / 1 = estado de compilação
43B7 
BASE Base numérica corrente
43B9 
HLD Endereço do último caracter durante a conversão numérica de saída
43BB 
CUR_POS Posição do cursor na tela
43BD 
DP Dictionary Pointer - endereço do próximo byte livre no dicionário
43BF 
CONTEXT Aponta para o vocabulário no qual as buscas no dicionário se iniciam
43C1 
CURRENT Aponta para o vocabulário onde as novas definições são criadas
43C3 
LAST Aponta para a última palavra definida no vocabulário corrente


A seguir a relação dos programas incluídos com o Toddy Forth:



3D Maze   CHR$128ZONX


ACE Mines   UDGZONX


Breakout   UDGZONX


Breakout STD   ZONX


Calendar


DIVN


DUMP


Factorial


Towers of Hanoi


Mancala


Millipede   UDGZONX


Plot-test


ROTSOM


SOKOBAN   UDGZONX


SOKOED   UDG


SUDOKU  UDGZONX







Poker HR (SET/2010)   UDG

Programa publicado na revista Micro Sistemas nº 54 (março 1986), aqui na versão com redefinição de caracteres.





Download



Pânico HR (AGO/2010)   CHR$128

Jogo publicado na revista MicroHobby nº 23 (setembro 1985), foi adaptado por mim para alta resolução por redefinição de caracteres.

"Você e outros mineiros estão trabalhando no interior de uma mina, quando uma explosão bloqueia todas as saídas.

Isso poderia ser o problema maior, se seus companheiros não fossem criaturas extraterrestres em constante mutação. Eles se tornam cada vez maiores e, desta forma, consomem rapidamente o oxigenio da mina. Você tem que agir depressa e sua única chance de sobrevivência é exterminá-los com sua única arma: uma pá.

Neste momento seus cuidados devem ser redobrados, pois os monstros estão esfomeados e dispostos a devorá-lo a qualquer momento.

Como você deve ter notado, sua pá não é uma arma eficaz para eliminar monstros de grandes proporções, portanto, temos uma solução que poderá ajudar: cave armadilhas, emboscando-os e depois lutando com eles, um a um, até que morram.

Mas não se esqueça que os monstros são mutantes. Se você demorar muito nesta operação, o monstro emboscado se tornará cada vez mais forte e conseguirá fugir da armadilha. Cada vez que sofre uma mutação, ele deve levar um tombo maior para morrer, ou melhor, precisa cair em mais do que uma cova. Deu para sentir em que enrascada você se meteu?

Existem três formas de monstros: que vale 50 pontos; que equivale a 100 pontos; e que vale 200 pontos.

Os monstros  precisarão passar, de uma só vez, por dois ou três buracos, cavados um abaixo do outro, para sucumbir. É permitido cavá-los em qualquer lugar da mina, com exceção do nível inferior e em locais próximos às escadas ou a outro buraco."


Controles:
Esquerda
Direita
Sobe/tapa/pula
Desce/cava
5
8
7
6




Download



Jogos QuickSilva (SET/2010)   CHR$128ZONX

Estes jogos da QuickSilva vem originalmente com recursos de som e redefinição de caracteres, mas apenas para as placas da própria QS. Eu os adaptei para acionarem o PSG do meu TK85 (compatível com o ZON-X81) e placa de redefinição de caracteres com RAM em 3000h.





Download



Dancing Demon (JUN/2010)   ZONX

Versão para o ZX81 do programa Dancing Demon que fez muito sucesso nos microcomputadores TRS80.

Coreografe a dança e componha a música para que o demônio dançarino faça o seu show. O programa já vem com dois shows pré-programados.

Necessita de um gerador de sons compatível com o ZON-X81 para a reprodução das músicas.

Mais informações sobre o programa original, incluindo o download do manual do programa, no link a seguir:

http://www.dnull.com/demon/



Download



Pink Panther (JUN/2010)    ZONX

Experimento que fiz com o programa midi2ay, que converte arquivos midi para um formato adequado para execução nos PSG AY-3-891*.   Aqui foi utilizado o tema da Pantera-cor-de-rosa e o resultado, embora não tenha ficado perfeito, ficou dentro do aceitável.



Download



Micro Sistemas Forth V2.0 (JAN/2010)   UDG

Com o abandono do ZX81 Fig Forth, meu interesse voltou-se para o forth minimalista publicado na revista Micro Sistemas nº 37. Este era um forth pequeno e ágil, mas com um vocabulário estranho, com palavras tais como TOKEN, COMPILER, MODE, LBP, 0SET, 1SET, OUTIN, FTOKEN, QUESTION, entre outras, não encontradas comumente nos forths padrões. Depois de fazer o desassembler do compilador, acabei descobrindo a função de cada uma destas palavras, por exemplo, descobri que OUTIN era equivalente à palavra INTERPRET  do Fig Forth, LBP tinha a mesma função que >IN, TOKEN era equivalente a WORD.

Então, conhecendo como o forth da MS funcionava, dei início à nova versão que decidi batizar de MS Forth 2.0. Comecei pela tradução das palavras incomuns, procurando seguir a grafia e também a sintaxe do Fig Forth. Algumas palavras eu achei mais conveniente mater como estavam, como por exemplo LBP. A troca de LBP por >IN iria gerar mais código, o que eu não desejava, já que um dos objetivos era ter um código enxuto. Também foi adotado o código ASCII para os caracteres e pressuposto a disponibilidade de uma placa de redefinição de caracteres em 3000h (meu TK85 tem), para gerar o conjunto de caracteres ASCII. As rotinas de leitura do teclado foram todas reescritas e o teclado foi remapeado.

Uma funcionalidade interessante que implementei foi a possibilidade de importar os programas forth diretamente de arquivos de texto, quando usando o emulador EightyOne. Carrega-se o arquivo texto no EO pelo menu File/Load Memory Block, por exemplo no endereço 32768 da RAM. Depois é só compilar o texto com 32768 LOAD.

Embora tenha chegado a um estágio de desenvolvimento bem mais avançado que o ZX81 Fig Forth, o MS Forth V2.0 também foi interrompido para dar origem a um novo forth mais avançado e poderoso, o ZX81 Toddy Forth, que no momento encontra-se em fase final de desenvolvimento e será lançado no início de 2011.





Download



ZX81 Fig Forth 1.1H alfa  (JUL/2009)   UDG

O ZX Forth, da Artic Computing, foi uma implementação comercial do Fig Forth para o ZX81 mas que, em minha opinião, deixou muito a desejar em termos de performance e usabilidadade. Então decidi eu mesmo implementar a minha versão do Fig Forth para o ZX81, desta vez tendo em vista o uso principalmente com emuladores, sem preocupar-se com a disponibilidade de recursos técnicos do equipamento real. Desta forma, o compilador foi alocado para o endereço de RAM  em 2200h e redefinição de caracteres ativa em 2000h, recursos facilmente obtidos no emulador EightyOne.



Embora o projeto estivesse se desenvolvendo e o compilador já estivesse com uma performance muito superior ao Forth da Artic, ainda assim não estava satisfeito com o resultado e o projeto foi abortado. Já não estava satisfeito com um forth destinado apenas para uso em emuladores, queria algo para usar em um equipamento real, mais especificamente em meu TK85 com redefinição de caracteres e PSG AY-3-8912.

Disponibilizo o ZX81 Fig Forth aqui como curiosidade e para aqueles (poucos, creio eu) que tenham interesse em aprender um pouco mais sobre esse sistema. Embora seja uma versão alfa, está bastante funcional, mas com certeza cheia de bugs.

Download



ZX81 Music Interpreter (ABR/2005)

Este programa implementa no ZX81 uma macro linguagem musical similar à utilizada no comando "PLAY" dos microcomputadores TRS Color e MSX. Foram implementados todos os subcomandos necessários para a execução de músicas em uma ampla faixa de escalas, com a geração de som através da porta EAR (VSYNC) do ZX81.




Todas as instruções de uso estão contidas no pacote, bem como os fontes e mais dois programas demos, um com músicas dos Beatles e o outro com músicas diversas.

Download



Cartoons (ABR/2005)   WRX

Coletânea de telas em alta-resolução com personagens de cartoons.



Download



Relógio
(MAR/2004)

Fiz este pequeno programa para demonstrar o uso das rotinas de geração de vídeo do ZX81 na implementação de uma aplicação multi-tarefa, no caso um relógio digital que é atualizado simultaneamente à execução do programa BASIC.





Forneça as horas no formato HHMMSS, com contagem de 24 horas. O relógio digital será mostrado no canto superior direito da tela enquanto um quadrado percorre a tela de um lado a outro. Interrompa o programa BASIC com BREAK e observe que o relógio continua sendo atualizado. Limpe a tela com CLS ou dê um LIST, o relógio continua lá e só é desativado com os comandos FAST, LLIST, LPRINT, PAUSE ou com a edição de alguma linha do programa BASIC.

Download



HRPICTURES
(DEZ/2003)   WRXPRT

Ohhh!!! Espero que isto não choque os mais puritanos... uma aplicação inusitada para os pequenos zeddys ;-)

Algumas figuras "provocativas" em alta-resolução, para serem visualizadas na tela ou na impressora.

Os programas nomeados HRLPRT*.p usam a ZX Printer para a impressão das imagens. Ao carregá-los não os executem com RUN, usem GOTO 1, senão as imagens contidas em variáveis serão perdidas e nada será impresso. Cada programa imprime duas imagens em alta-resolução e a impressão é um pouco demorada. No emulador EO abra a tela da ZX Printer (menu Options ou CTRL+F7) para ver a imagem sendo impressa.




Download



HiRes Galaxian (FEV/2003)   UDG

Jogo Galaxian, da Artic Computing, adaptado para alta-resolução por redefinição de caracteres. Necessita de uma placa de geração de caracteres mapeada em RAM no endereço 3000h.




Download



Aeroporto HR (NOV/2000)   UDG

O jogo Aeroporto, de autoria de Renato Degiovani, foi publicado na edição nº 22 da revista Micro Sistemas e foi o primeiro jogo em linguagem de máquina publicado em uma revista brasileira. A versão aqui disponibilizada foi adaptada por mim para usar caracteres redefinidos, baseando-se nas ilustrações de capa da edição nº 37 da mesma revista, cuja matéria de capa foi justamente a redefinição de caracteres nos microcomputadores ZX81 e compatíveis.



O jogo consiste em pousar um avião em segurança, mas antes é necessário limpar a pista do aeroporto que está bloqueada por tanques e helicópteros inimigos. Pressione qualquer tecla para atirar bombas sobre os inimigos, mas evite acertar o radar e a torre de controle.

Download