15 de Outubro de 2018
Manuel Fraguas & Luíz Carlos Capanema
O Luíz e o Manuel são duas lendas da cena de retrogames em Belo Horizonte. Muito se comentavam das proezas dos dois no desenvolvimento de jogos para os microcomputadores de lógica Sinclair (ZX81). Segundo os relatos eles desenvolveram jogos fantásticos, alguns em alta resolução e até um com temática adulta (pornô), para desespero de alguns pais. O problema é que esses jogos não foram lançados comercialmente e apenas pessoas próximas aos dois chegaram a conhecê-los e, aparentemente, nada havia sido preservado. Até que a quase um ano o Matheus, filho do Manuel, me diz que eles encontraram algumas fitas com os jogos e solicita meu auxílio para tentar recuperar todo esse material. E então o que era lenda tornou-se uma realidade!
Bom, não vou me alongar na história, mas o fato é que conseguimos resgatar todos os jogos e posso dizer que os relatos que ouvi até então não eram infundados, são realmente impressionantes! Posteriormente, acordamos com o Marcus Vinícius Garret Chiado de lançar os jogos em uma fita cassete que acompanharia a próxima edição impressa da revista Jogos 80, a qual também traria uma entrevista com a dupla. A revista e a fita, em edição limitada, começaram a ser distribuídas aos felizes compradores no início desse mês e agora achamos oportuno disponibilizar para quem não pôde adquirir a revista, esse material inédito que esteve guardado por mais de 30 anos, esperando para se mostrar ao mundo.
Quero deixar o meu especial agradecimento ao Luíz e ao Manuel, pela generosidade em permitir o compartilhamento desse material, contribuindo para o resgate de mais um capítulo da história do ZX81 no Brasil. O meu agradecimnto mais que especial ao Matheus Fraguas, que no desejo de conhecer as criações do pai que ele tanto ouvia comentarem, não deu descanso até o Manuel e o Luíz localizarem as fitas esquecidas. Meus agradecimentos também ao Marcus Vinícius Garrett Chiado e ao Eduardo Luccas pelo incansável trabalho na edição da revista Jogos 80.
Revista Jogos 80 Edição 19 e a fita com os jogos e o encarte
( Clique nas imagens para efetuar o download )
O Atlântida e o Columbia colorizados para uso com a interface Chrome 81. Inclui os arquivos de colorização para ser usado com o Chroma Program Enhancement Creator.
O Manuel e o Luíz desenvolveram também alguns utilitários para auxiliá-los no processo de criação, desenvolvimento e depuração dos jogos. A seguir estão o Mid Speed e o Debugger. Ainda falta recuperar o CP/M e o Dbase. Isso mesmo, um CP/M e Dbase para o TK!
Autores: Luíz Carlos Capanema e Manuel Fraguas
O Mid Speed é um método alternativo às rotinas de SAVE e LOAD originais.
Elas permitem agilizar a gravação/carga de programas em cerca de 3
vezes. Assim, um programa de 16Kb que normalmente leva mais de 6 minutos
para carregar, com o Mid Speed passa a ser carregado em 2 minutos, o que
é um ganho considerável.
Essas rotinas usam uma codificação bastante parecida com a original, a
diferença está no número de pulsos usados para representar os bits 0 e
1. Enquanto que nas rotinas da ROM usam-se 4 pulsos para representar o
bit 0 e 9 pulsos para representar o bit 1, no Mid Speed essa
representação se dá por apenas 1 pulso para o bit 0 e 3 pulsos para o
bit 1, como pode ser visto nas ilustrações a seguir.
Após a carga do Mid Speed, as rotinas são alocadas na parte baixa da RAM entre os endereços 8192 e 16393 e lá ficam até o micro ser desligado ou até que outras rotinas sejam alí alocadas. Os comandos para acionarem as rotinas são RAND USR 9984 para gravar o programa na fita, e RAND USR 9997 para carregar o programa da fita.
Autores: Luíz Carlos Capanema e Manuel Fraguas
Na falta de ferramentas adequadas para auxiliá-los no desenvolvimento de
seus programas, o Luíz e o Manuel decidiram desenvolvê-las eles próprios
e assim nasceu o Debugger, um poderoso assembler, disasembler, editor de
mneumônicos e monitor hexadecimal entre outras funcionalidades. Após
instalado, o Debugger ocupa a área de memória do endereço 8192 a 16393 e
de 62000 a 65000, o que significa que é necessário uma expansão de 64Kb
de RAM para poder usá-lo. Os mneumônicos do programa em edição são
armazenados a partir do endereço 34000 e podem ser gravados em fita
cassete separadamente do debugger, a uma velocidade de 1500bps (Mid
Speed).
O manual que acompanha o programa é da primeira versão e está desatualizado, mas pode ser usado como referência para as operações mais usuais.
A título de exemplo, a seguir será descrito o processo de criação de um programa com o Debbuger, desde a edição dos mneumonicos até a compilação e execução. O programa a ser usado de exemplo é o já tradicional "Hello World". Para melhor entendimento, tenha em "mãos" o manual.
A Partir da tela principal do Debugger, pressione a tecla I para entrar no editor e em seguida informe o número da linha a ser editada, no caso será a primeira. Após informar a linha, comece a introdução dos mneumônicos, fornecendo uma linha por vez. Atenção para a sintaxe esperada: entre uma instrução e seu argumento só pode haver um espaço; no lugar da vírgula, use o ponto; um label deve iniciar com : e não deve haver espaço entre o label e a instrução; use o $ para indicar um número hexadecimal e B para binário.
Após introduzir a última linha, pressione ENTER para sair do editor. O próximo passo será determinar o comprimento do código que será gerado e então criar uma linha REM para armazená-lo. Para tanto, pressione a tecla A para entrar no Assembler e em seguida pressione D ou H para definir a base na qual os dados serão apresentados, D para decimal e H para hexadecimal. Em seguida, pressione SHIFT+F para que o assembler faça a primeira passagem e determine o tamanho do código a ser gerado, bem com o endereço inicial e o final:
Anote o valor e pressione ENTER para sair do Assembler; em seguida pressione a tecla R para criar a linha REM. Informe o número da linha e o comprimento. Repare que será acrescentado 2 ao tamanho da linha, referentes ao REM e ao caractere NEWLINE no final da linha. Pressione ENTER e em seguida A para retornar ao Assembler. Como anteriormente, selecione a base (D ou H) antes de iniciar a compilação. Aqui, há duas opções: SHIFT-D ou SHIFT-H para efetuar a compilação do programa. A diferença é que na primeira opção serão visualizados os passos, enquanto que na segunda opção a compilação será direta, sem visualização das passagens.