Coisas da informática de antigamente: MSX

Comecei com informática ainda criança, idos de 1984 quando meu pai apareceu em casa com um CP 200 da Prológica (http://pt.wikipedia.org/wiki/CP200). Lembro muito pouco deste microcomputador, mas do que me lembro os programas eram digitados “na hora” ou carregados via fita K7.

Em 1986 meu pai adquiriu o primeiro MSX, um Hot Bit branco. Este eu posso afirmar que foi o meu real início na informática. Aprendi as primeiras noções de programação utilizando o Basic do MSX e quando ganhei o primeiro drive de disquetes, pronto, um novo mundo começou para mim.

Caixa de disquete Nashua, a maioria dos disquetes que eu tinha era dessa marca

Nesta época assinávamos algumas revistas de informática (CPU que depois se tornou CPU MSX e a Micro Sistemas, por exemplo). O interessante é que as revistas da época tinham bem mais conteúdo técnico do que as revistas de hoje em dia. As matérias mostravam mais como as coisas realmente funcionavam do que uma “propaganda” das coisas, como ocorre hoje em dia na maioria das vezes. Lembro de casos onde as revistas publicavam até mesmo o código fonte de programas em Assembly!!!

Meu primeiro código funcional (tirando os “prints” e “inputs” básicos) foi um joguinho escrito em BASIC. Era o “Jogo do Industriário”. A ideia do jogo surgiu após eu “viciar” no “Jogo do Executivo” que existia na época. Pensei: será que consigo escrever algo semelhante? Um jogo (na época) não deixava de ser apenas um laço com um monte de prints, inputs e ifs com algumas variáveis. Isso eu sabia fazer :)

No fim vi que era mais divertido escrever o jogo do que jogar propriamente dito. Escrevi umas 3 ou 4 versões diferentes para Basic do MSX e sempre tive um grande problema com falta de memória: o MSX, embora possua 64 kbytes de RAM, apenas 32 poderiam ser utilizados para o Basic (sinceramente não me lembro o motivo). O pior? Nesses 32 kbytes coexistiam: o interpretador Basic, uma área reservada na memória para a controladora de disquetes, além é claro do código e dados do programa em Basic que você estava utilizando no momento. Tendo controladora de disquete na máquina sobravam pouco mais que 23 kbytes de memória para código e variáveis. Foi ali que comecei a me interessar por otimização/tunning (se bem que eu nem sabia que o que eu fazia significava isso).

Nesta época “descobri” que, por padrão, a controladora de disquete do MSX reservava memória para utilizar duas unidades de disquete (A: e B:). Caso tivesse apenas uma unidade e se ligasse a máquina mantendo pressionada a tecla [CTRL] durante o boot, até ouvir um beep, a controladora de disquete não reservava memória para a unidade B:, o que liberava algo como 1 Kbyte a mais de memória para programas em Basic. Pode parecer pouco, mas para a época isso poderia fazer com que um programa coubesse ou não na memória.

Ainda falando de programação em MSX, também “descobri” que o parser do BASIC sabia interpretar os comandos mesmo se não existissem espaços entre eles. Ao invés de escrever algo como:

10 a=texto : print a

Eu poderia escrever:

10 a=texto:printa

Funcionava e ainda se economizava um byte para cada espaço removido!!! Num código de 20 kbytes, se economizava fácil mais um ou dois kbytes apenas removendo os espaços entre as variáveis. Legibilidade de código é para os fracos, o importante é o código ocupar o mínimo de memória :) E assim meu joguinho agora dispunha memória para código que permitia salvar e carregar as partidas…

Tinha outros artifícios para economizar memória no Basic mas a maioria deles eu só conheci depois que migrei para PC e principalmente depois que comecei a utilizar a Internet.

O interessante do BASIC do MSX é que, mesmo num computador com recursos de hardware limitadíssimos, já existiam funções nativas que mesmo hoje exigem certa programação avançada. Por exemplo, naquele tempo já existiam funções para controle de joystick, funções gráficas para detectar colisão de sprites e, incrível, a função play já conseguia reproduzir 3 notas musicais simultâneas. E isto já estava disponível para MSX em 1983 !!! Para se ter uma ideia, no PC isso só se tornou possível quando surgiram as primeiras placas Adlib e Sound Blaster no final dos anos 1980 e utilizando drivers e bibliotecas próprias de desenvolvimento, nada nativo em nenhuma linguagem de programação da época.

O resumo é que quando migrei para o PC, se não me engano em 1995/1996, a primeira coisa que fiz foi tentar rodar meu jogo. Tirando algumas adaptações necessárias, minha grande decepção foi a função play do BASIC não suportar mais as três notas simultâneas.

Quando eu tiver mais algum tempo escrevo sobre como foi a época que comecei a utilizar PCs … :)

Uma ideia sobre “Coisas da informática de antigamente: MSX”

  1. Ótima matéria….nostalgia total….viajei por alguns momentos desses tempos de CP200 – Sinclair – TK2000 – CP500…etc….e o MSX comprei com o meu primeiro emprego na adolescencia…ver uma maquina que podia tratar de sons e cores e facil de programar…era o Olimpo. :-D Detaçhe…comprei um Expert…muito inovador.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *