Mostrando postagens com marcador emulador. Mostrar todas as postagens
Mostrando postagens com marcador emulador. Mostrar todas as postagens

domingo, 7 de agosto de 2011

Emulando o CP 400 no MESS

O CP 400 foi um computador pessoal, pra uso doméstico, produzido no Brasil na década de 1980 pela Prológica. Era compatível com o TRS-80 Color Computer da Tandy RadioShack.

A segunda versão, o CP 400 Color II, lançado no final de 1985, possuía como características técnicas um microprocessador Motorola 6809E com estrutura interna de 16 bits e externa de 8 bits, frequência de clock de 1,6 MHz, ROM de 16 Kbytes com programa monitor e interpretador Basic, RAM total de 64 Kbytes e vídeo no modo texto de 16 linhas por 32 colunas e no modo gráfico com resolução de 49152 pontos (256x192).

O CP 400 Color II tinha um teclado com 59 teclas tipo ASCII incorporado ao gabinete, uma saída de RF para ligação a uma TV e saída para monitor de vídeo composto. Além de saídas para joysticks, porta serial, porta para gravador cassete e suportava cartuchos e controlador de disquetes de 5 1/4.

Computador CP 400 Color II

Sua produção durou pouco devido a chegada do MSX, foi encerrada em 1987, entretanto a diversidade de aplicativos e jogos foi grande. Diversas empresas importaram os jogos do TRS-80 e comercializaram aqui no Brasil, com isso era fácil encontrar cópias "alternativas" dos programas.

Hoje, 26 anos depois, podemos utilizar os softwares emuladores para reproduzir o ambiente do CP 400 e assim executar os jogos que foram sucesso na época. Um emulador bem interessante é o MESS (http://www.mess.org/). O MESS é capaz de emular muitos consoles de jogos e sistemas de computador. Este artigo descreve o uso do MESS no sistema Linux.

Para que um emulador consiga reproduzir o ambiente de um computador antigo, são necessários basicamente dois itens, uma ROM da máquina real e um arquivo imagem de algum dispositivo de armazenamento que o computador antigo suportava, contendo os programas que deseja executar.

Estes arquivos, tanto a ROM quanto imagens de programas, são facilmente encontrados pela Internet. Para o CP 400 Color II, os arquivos com as ROMs são cp400bas.rom e cp400dsk.rom, ou, pode utilizar as ROMs do seu equivalente, o TRS-80 Color Computer II (CoCo2), os arquivos com as ROMs são bas12.rom, disk11.rom e extbas11.rom. Procure na Internet e acesse o site "Programas para o CP-400 Color" (http://sites.mpc.com.br/ric/cp400/cocomain.htm).

Estes arquivos de ROMs são a reprodução da BIOS da máquina real. Na instalação do MESS em um sistema Linux, os arquivos .rom devem ficar no caminho /usr/share/mess/roms/, em um diretório com um nome que identifique o sistema. Para o CP 400 Color II, os arquivos (cp400bas.rom e cp400dsk.rom) devem ficar em /usr/share/mess/roms/cp400/, e para o TRS-80 Color Computer II, os arquivos (bas12.rom, disk11.rom e extbas11.rom) devem ficar em /usr/share/mess/roms/coco2/.

Feito isso o MESS está pronto para ser executado. A sintaxe da linha de comando do MESS é:

mess [sistema] [mídia] [opções]

Se desejar conhecer as opções de linha de comando, execute o MESS com a opção -showusage. A princípio a opção que pode ser útil é a -window, que ativa o modo de janela, senão o MESS será executado em tela cheia. Para conhecer as mídias suportadas em cada sistema, use a opção -listmedia. Os parâmetros de mídia servem para carregar pela linha de comando alguma imagem de um dispositivo de armazenamento, como por exemplo -flop1 jogos.dsk ou -cass jogos.wav. Um exemplo de comando para execução do MESS, emulando o sistema CP 400:

$ mess cp400 -window

Com a execução do MESS, a tela inicial do sistema emulado aparecerá e a partir daí a operação será específica do sistema emulado, no nosso caso o CP 400 Color II (ou CoCo2). Caso não especifique o sistema pela linha de comando, o MESS exibirá um menu para a escolha, de acordo com as ROMs encontradas em /usr/share/mess/roms/.

Tela inicial do CP 400 Color II

Apesar de ter diversas opções para linha de comando, também é possível operar o MESS através de sua Interface de Usuário (UI). Esta interface é apresentada pressionando a tecla Tab, estando o teclado no modo de emulação parcial. A emulação do teclado pode ser alternada pressionando a tecla ScrLock, entre emulação total e emulação parcial.

Algumas teclas de função no MESS são apresentadas a seguir. Estas teclas só tem efeito com o teclado no modo de emulação parcial. Estas são as tarefas padrões destas teclas, é possível personalizar:

ScrLock     alterna a emulação do teclado;
Tab         acessa a Interface de Usuário;
P           pausa a emulação;
Esc         sai da emulação (MESS).

Para carregar uma imagem de disquete enquanto a emulação está em execução, entre na UI (tecla Tab), escolha o menu File Manager, selecione uma das entradas de disquete e navegue pelo seu HD para encontrar o arquivo imagem. Feito isso a emulação será automaticamente reiniciada com o disquete inserido. No CP 400 e no CoCo2 é possível ter até quatro disquetes inseridos ao mesmo tempo.

As instruções a partir daqui são específicas do sistema operacional do CP 400. São os comandos para o interpretador do CP 400.

Em uma operação com uso de imagens de disquetes, para listar o conteúdo de um disquete usa-se o comando DIR, para carregar o programa usa-se LOAD, LOADM etc., e para executar usa-se o comando EXEC. Exemplo:

DIR

SHENANI  BIN  2 B 13
TREKBOER BIN  2 B 13
SANCTUN  TRD  2 B 13
CALIXTO  TRD  2 B 13
SEAQUEST TRD  2 B 13
OK
LOADM "CALIXTO.TRD"
OK
EXEC

Quando há carregado mais de um disquete, é necessário especificar a unidade, por exemplo DIR 0, DIR 1 lista o conteúdo, LOADM "CALIXTO.TRD:1" carrega o programa da segunda unidade. Veja:

DIR 1

SHENANI  BIN  2 B 13
TREKBOER BIN  2 B 13
SANCTUN  TRD  2 B 13
CALIXTO  TRD  2 B 13
SEAQUEST TRD  2 B 13
OK
LOADM "CALIXTO.TRD:1"
OK
EXEC

Indo além, para apagar, copiar ou renomear um arquivo de programa usa-se KILL, COPY TO ou RENAME TO. Exemplos:

KILL "SHENANI.BIN"

COPY "SHENANI.BIN:1" TO "SHENANI.BIN:0"

RENAME "SANCTUN.TRD" TO "BLKSANC.TRD"

Também pela Internet é possível encontrar alguns documentos para operação do CP 400 Color II (Color Basic, Extended Color Basic e Color Disk Basic). O site "Color Computer stuff" (http://www.cs.unc.edu/~yakowenk/coco.html) é um bom ponto de partida.

Consulte a documentação do MESS para obter mais informações sobre a linha de comando e a interface de usuário.

Jogos do CP 400 Color II

domingo, 19 de setembro de 2010

Rodando jogos no DOSBox

O software DOSBox é um emulador de PC Intel x86, com suporte a som, gráfico, mouse, joystick etc., preparado para rodar jogos e demais softwares do sistema MS-DOS, os quais simplesmente não podem ser executados nos computadores e sistemas operacionais modernos. Possui um prompt de comando no estilo do DOS original, com apenas alguns comandos, sendo suficiente para instalar e executar muitos dos jogos para DOS. É um software gratuito e possui versões para os principais sistemas operacionais.

Neste artigo demonstro a versão para Linux e, como exemplo, a instalação e execução do jogo 11th Hour. Na página oficial do DOSBox na Internet (http://www.dosbox.com/) existe uma listagem dos jogos compatíveis, são centenas deles.

A distro Fedora disponibiliza o pacote para o DOSBox em seu repositório oficial, assim sua instalação torna-se simples. Na primeira execução o DOSBox cria seu arquivo de configuração no diretório pessoal do usuário. Neste arquivo, algo como ~/.dosbox/dosbox-0.74.conf, existem diversas linhas separadas em seções para a configuração das características do hardware emulado. A configuração padrão já é suficiente mas se desejar alguma em específico basta alterar as linhas envolvidas. A última seção, com a marca [autoexec], equivale ao arquivo autoexec.bat do sistema DOS.

Uma funcionalidade interessante do DOSBox é que podemos definir um diretório real, do sistema hospedeiro, para ser a raiz de uma unidade de armazenamento, por exemplo a unidade C. Desta forma, no prompt de comando do DOSBox podemos digitar o comando "mount C ~/DOSBOX" e então o diretório DOSBOX, localizado no diretório pessoal do usuário, será a unidade C no sistema DOS emulado.

Outra funcionalidade é de ser possível montar múltiplas imagens ISO na mesma letra de unidade e usar a combinação de teclas CTRL+F4 para trocar as imagens, selecionando a que ficará ativa. Como se estivesse trocando um disco na unidade física.

Na inicialização do sistema DOS emulado, fica disponível uma unidade de armazenamento contendo os comandos básicos. Identificada pela letra Z, esta unidade é algo como um ramdisk, como tinham os disquetes de instalação do Windows 95 ao Millenium.

Para exemplificar, vamos para um passo a passo da instalação e execução do jogo 11th Hour, no DOSBox. A partir das mídias do jogo foram geradas imagens ISO. Seguem os passos:

1. Criar uma pasta para conter os ISOs e outra para ser o drive C (neste exemplo são ~/ISOs e ~/DOSBOX).

2. Executar o DOSBox:

$ dosbox

3. No prompt do DOSBox, montar o drive C:

mount C ~/DOSBOX

4. No prompt do DOSBox, montar as imagens na unidade D:

imgmount D ~/ISOs/11hdisk1.iso ~/ISOs/11hdisk2.iso ~/ISOs/11hdisk3.iso ~/ISOs/11hdisk4.iso -t iso

5. Instalar o jogo (operar normalmente como se estivesse no sistema DOS).

d:
go.bat

6. Executar o jogo:

c:
cd GAMES\11H
go.bat

Depois, quando for somente executar o jogo, basta seguir os passos 2, 3, 4 e 6. Ou, dando mais um exemplo de funcionalidade do DOSBox, use somente a linha de comando abaixo:

$ dosbox ~/DOSBOX/GAMES/11H/GO.BAT -c "IMGMOUNT D ~/ISOs/11hdisk1.iso ~/ISOs/11hdisk2.iso ~/ISOs/11hdisk3.iso ~/ISOs/11hdisk4.iso -t iso" -exit

O DOSBox é muito simples e eficiente. Para sair do DOSBox digite o comando exit e para liberar o cursor do mouse para seu desktop, use CTRL+F10. O argumento -fullscreen inicia o DOSBox no modo tela cheia, ou use as teclas Alt+Enter para alternar entre os modos. É possível também reduzir a velocidade do processamento emulado para aproximar o desempenho dos computadores antigos. Nas páginas manuais há explicações para os outros comandos e teclas de atalho.

quarta-feira, 27 de janeiro de 2010

Emulando computadores antigos com o MESS

Quem é mais "antigo" na informática deve lembrar dos primeiros computadores pessoais comercializados no Brasil. Nos anos 80 já existia no mercado uma boa variedade de computadores domésticos, entre eles o Commodore 64, Amiga, CP-400 (Color Computer 2), TK-85 (ZX-81), MSX etc.

Naquela época era comum o computador usar como mídia de armazenamento uma simples fita cassete. Muitos também usavam cartuchos próprios e alguns já possuíam como opção os disquetes flexíveis. E o monitor era a televisão.

Hoje podemos reviver aquela época em nosso computador atual utilizando softwares chamados emuladores. Um emulador tem o propósito de recriar as funções originais do hardware. Um software executado em um emulador apresenta-se exatamente como se estivesse sendo executado no hardware original.

Um dos melhores e mais completos emuladores atualmente é o MESS. Seu nome é um acrônimo para "Multi Emulator Super System". O MESS é capaz de reproduzir sistemas de computadores e consoles em um PC. Atualmente possui capacidade para emular mais de 250 sistemas das últimas cinco décadas. O propósito primário do MESS é preservar a história dos computadores e consoles. O MESS é baseado no MAME, um emulador de jogos arcade.

O MESS emula o hardware destes sistemas e muitas vezes utiliza imagens da ROM para carregar programas e jogos. A ROM é equivalente a BIOS dos computadores atuais e graças aos hobistas o conteúdo de quase todas as ROMs de antigamente foram convertidas para arquivos imagem e podem ser encontradas pela Internet. Assim da mesma forma acontece com os softwares, onde antigamente eram armazenados em mídias que hoje em dia estão fora de linha, entretanto foram transferidos para os sistemas atuais e geralmente também na forma de arquivos imagem.

Podem ser encontradas versões do MESS para os sistemas Windows, Linux e Mac, inclusive os fontes para quem queira editar e compilar seu código. O MESS é um software gratuito porém vale salientar que as imagens das ROMs e dos softwares antigos na maioria das vezes não são.

O MESS possui uma interface bastante completa. É possível configurar os dispositivos de entrada para simularem os antigos dispositivos. As unidades de armazenamento funcionam como unidades virtuais, o sistema emulado vai interpretar o arquivo imagem como uma mídia real em um hardware. É possível montar imagens de disquetes, cartuchos, fitas cassetes etc.

Para quem usa Linux, provavelmente nos repositórios da distro tenha disponível o pacote contendo o MESS, na distro Fedora está no pacote sdlmess. Qualquer coisa no site oficial do MESS (http://www.mess.org/) é possível fazer o download para qualquer sistema.