Declaração de variáveis no Bash

declare1_abertura

Depois de ter tratado, não necessariamente nesta ordem, de arrays, números inteiros e strings em Bash seria interessante fazer duas coisas: (i) citar os outros tipos de variáveis disponíveis e (ii) tratar de opções bastante interessantes disponíveis no comando declare. Ele é utilizado para definir tanto o tipo da variável como também habilitar, ou desabilitar, determinados atributos desta.

Para facilitar seguirei a ordem das opções conforme estão listadas em “help declare” e assim aproveitar para também comentar algo mais sobre os tipos já citados.

Continuar lendo

Telas do speccy no MSX – parte 3

tbzscmcb-3_abertura

Depois do hiato da semana passada segue continuação da série sobre a construção de um visualizador de telas do ZX Spectrum para MSX-DOS. Só para recordar a primeira parte tratou da organização da memória de vídeo do speccy, das diferenças dela com a do MSX e de como compensar as tonalidade das cores. Na segunda parte foi sobre como reorganizar os dados do arquivo SCR para apresentá-los na VRAM do MSX e, claro, como fazer a carga dele usando diretamente as rotinas da BDOS.

Há também uma parte complementar com um pequeno programa em Python que converte telas do ZX para dumps da VRAM em arquivos binários do MSX.

Nesta parte, conforme foi prometido, é a recuperação e tratamento dos argumentos passados pela linha de comando do MSX-DOS e como o assunto é meio chato tentarei ser breve — eu juro 😀

Continuar lendo

Emulando o HB-4100 no openMSX

hb4100_abertura.png

Um pouco de arqueologia… em algum ponto de 1987 a EPCOM SHARP lançou¹ diversos periféricos para a linha MSX, mais especificamente para o modelo deles, o HOTBIT (ou HB-8000 de 1985). Os mais conhecidos deste pacote são certamente o HB-3600 (conjunto com a interface controladora, fonte de alimentação e a unidade de drive de disquetes de 5,25″ DD) e o HB-6000 (a unidade adicional de drive de disquetes).

Entre os lançamentos também estavam o HB-3000, uma interface serial, o HB-4000, cartão de 80 colunas, o HB-4100, expansão de 64KiB de RAM — estes dois últimos pensados como complemento ao HB-3600 — e ainda haveria o HB-4200, um (necessário) expansor de slots que acabou não passando da fase de protótipo.

Tanto o HB-3600 quanto o HB-4000 são emulados pelo openMSX e justamente para matar minha curiosidade com relação ao funcionamento da HB-4100 acabei criando por acidente uma extensão dela para o openMSX.

(¹) Esta sequência culminou com o lançamento da versão 1.2 do HOTBIT (o “HOTBIT preto”) no final deste mesmo ano.

Continuar lendo

Telas do speccy no MSX – parte 2

tbzscmcb-2_abertura

Na parte anterior cuidou das diferenças no vídeo entre os dois computadores, ou seja, o modo como são dispostos os padrões e atributos que compõe a imagem na tela, assim como os tipos de atributos disponíveis, as cores geradas pelos respectivos circuitos de vídeo e também o “truque” usado para simular a relação de luminância das cores do ZX Spectrum no MSX.

Agora é a vez do arquivo que armazena a tela de vídeo do speccy, um programa para visualizá-lo em MSX-BASIC e, o mais importante de todos, uma rotina em assembly para carregar arquivos do disco para a memória.

Continuar lendo

Telas do speccy no MSX – parte 1

tbzscmcb-1_abertura.png

Há algum tempo, lá pelo  final de 2014 para ser mais preciso, resolvi converter telas do ZX Spectrum (ou speccy) para o MSX. Então estudei sobre como era a organização da memória de vídeo deles, como eram codificadas as cores, criei uma rotina de visualização e aí me empolguei e baixei algumas telas do ZX-Art para fazer algo “legal”.

Mas meu algo “legal” ficou tão complicado de implementar que a inspiração acabou antes de conseguir concluí-lo, daí deixei tudo de lado por um tempo e recentemente resolvi mexer no código para pegar uma rotina e aproveitei para, finalmente, fazer algo prático com ela — mas nada de “legal” desta vez. 🙂

Esta primeira parte não tem código, é apenas um resumo sobre como é a organização das memórias de vídeo nos dois computadores, a diferença nas paletas de cores e qual minha solução para compatibilizá-las.

Continuar lendo