Turbo Pascal Forever – Start your engines.

Após uma bela sequência de posts sobre jogos e afins, volto a escrever sobre o que eu gosto de fazer que é programar coisas 🙂 e principalmente para enfim dar continuidade a minha primeira série sobre programação para micros clássicos, que é o curso de Turbo Pascal 3.0, iniciado nesse post aqui, que por sua vez foi e é muito conhecido e utilizado em computadores baseados e/ou compatíveis com o sistema operacional CP/M, isso inclui o MSX e talvez seja linguagem mais utilizada nessa arquitetura, depois do MSX-BASIC.

Bom, primeiramente vamos responder às perguntas deixadas no ultimo post, que reproduzo a seguir.

PERGUNTA 1 (utilizem a área de comentários do post para responder)

Qual o nome do arquiteto que deixou a Borland para na Microsoft criar uma das linguagens mais conhecidas da empresa na atualidade ?

Resposta: Anders Hejlsberg, que foi um dos principais arquitetos da Borland International desde a época do Turbo Pascal, sendo também o homem forte do Delphi até aproximadamente 1996 (versão 3.0), depois disso a Microsoft fez uma grande investida nos principais nomes da equipe de compiladores da Borland, levando-os para Redmond onde  posteriormente trabalharam, sob a tutela de Anders, no projeto do Framework, cópia da arquitetura Java, conhecido como Microsoft .Net, incluindo a linguagem C# que é a mais conhecida nessa plataforma. Na verdade Anders Hejlsberg criou um compilador Pascal em sua empresa, situada na Dinamarca e conhecida como Poly Data, tendo a Borland licenciado o núcleo de sua implementação da linguagem Pascal, posteriormente adicionando um editor integrado, criando assim o Turbo Pascal. Não só isso, antes de vender o seu Pascal (PolyPascal) para a Borland, Anders era representante da Microsoft na Dinamarca, o que o colocava em desacordo com a Borland. Posteriormente a Borland adquiriu 100% dos direitos do compilador e contratou Anders como um dos principais arquitetos do Turbo Pascal (Fonte: Anders Hejlsberg Wikipedia e Antique Software: Turbo Pascal 1.0 – Embarcadero).

PERGUNTA 2(utilizem a área de comentários do post para responder)

Que grande empresa, reconhecida pelos seus gadgets e PC‘s, desenvolveu a extensão de Pascal, denominada Object Pascal ?

Resposta: Apple Inc. Muita gente sabe da fixação da Apple em ser incompatível e tentar amarrar seus produtos tornando-os uma caixa preta incomunicável com outras plataformas, pois bem, não é de hoje que a Apple opta por tecnologias não mainstream, como é o Objective-C que é a tecnologia base  de desenvolvimento para os principais produtos da empresa, como IPod, IPad, IPhone e MacOSX. No passado a mesma Apple optou por manter a base de software de seu MacOS, toda escrita em Pascal, em um momento em que a linguagem C se tornava o mainstream como tecnologia de base para sistemas operacionais, uma vez que a maioria dos sistemas existentes optavam pela linguagem de Dennis Ritchie, principalmente pelas obvias características de portabilidade, poder de abstração, facilidade de interfacear alto nível com baixo nível e principalmente velocidade.

Apple I - Detalhe do "incompatible" no quadro ao fundo. Desde aquela época já era assim. :)
Apple I – Detalhe do “incompatible” no quadro ao fundo…….desde aquela época já era assim. 🙂

Pois bem, a empresa de Steve Jobs basicamente desenvolveu a extensão do Pascal orientado a objetos, conhecida como Object Pascal, sob a tutela de Niklaus Wirth, e que mais tarde serviria como base para versões futuras do Turbo Pascal 5.5 da Borland até as versões atuais do Delphi.

Integrated Development Editor (aka IDE)

O Turbo Pascal 1.0 foi reconhecidamente o primeiro compilador a integrar um ambiente de desenvolvimento (IDE), juntamente com o mais rápido compilador (1 passo) da época e com isso se tornou um sucesso absoluto no meio comercial e principalmente no meio acadêmico, sendo utilizado até os dias de hoje em diversas instituições de ensino, através de compiladores modernos e compatíveis como o FreePascal.

A IDE das primeiras 3 versões do Turbo Pascal, apesar de simples e até arcaica para os padrões atuais, representou um grande avanço no meio de desenvolvimento de software, principalmente por combinar um poderoso editor de textos, compatível em comandos com o “padrão” dominante na época, o “padrão” WordStar, e que se perpetuou para a maioria dos processadores, editores de textos e IDE‘s, até os dias de hoje.

É sobre esses comandos do editor e também sobre as opções do menu do Turbo Pascal que descrevo abaixo.

Tela de abertura do Turbo Pascal 1.0. Foi assim até a versão 3.0

A imagem acima demonstra a tela de menu das primeiras versões do Turbo Pascal onde o usuário tem a possibilidade de, através dos caracteres que estão em maiúsculo (também colorido na versão x86, ou PC), selecionar as opções desejadas no ambiente integrado.

Segue abaixo a descrição das opções do menu principal e a medida em que avançarmos no curso, vou descrevendo as outras opções dos sub-menus de alguns desses itens.

  • Logged drive – Mostra e possibilita a alteração do drive corrente. Ao se teclar L, aparecerá uma nova mensagem “New drive“, solicitando a nova unidade que será a corrente.
  • Work file – No Turbo Pascal existe o conceito de Arquivo Principal (Main file) e Arquivo de Trabalho (Work file). De fato o arquivo de trabalho é o principal, pois quando não é especificado um arquivo principal, o Arquivo de trabalho é assumido como o mesmo. Era uma forma arcaica de se trabalhar com 2 arquivos simultâneamente, de forma que o principal só é carregado no momento da compilação e o Work file no momento da edição. Isso é ótimo quando se está trabalhando no desenvolvimento de arquivos de include (que veremos mais a frente) e se deseja compilar e executar com um outro arquivo principal e que utiliza esse include.
  • Main file – Vide opção acima.
  • Edit – Entra no editor de programas do Turbo Pascal, carregando o Work file, ou Main file que estiver especificado.
  • Compile – Compila o programa para a memória, disco (.COM) ou para o formato Chain (.CHN), de acordo com a seleção feita na opção compiler Options, descrita mais abaixo. Quando compilado em disco, o Turbo Pascal gera um executável compatível com o MSXDOS e CP/M, no formato .COM, podendo ser executado nesses sistemas operacionais. Até a versão 3.0 do Turbo Pascal, existia a possibilidade de que algumas sub-rotinas estivessem em outros arquivos executáveis especialmente gerenciados pelo runtime do Turbo Pascal, que são os arquivos Chain (corrente), em um formato especifico do Turbo Pascal, com a extensão .CHN. Podemos traçar um paralelo desses arquivos .CHN com as técnicas modernas de Dynamic loading possíveis através dos Shared Objects ou Dynamic Load Libraries presentes nos sistemas operacionais modernos, como UNIX (Linux, Solaris, …), através dos módulos .so e no Windows através das famosas .dll‘s, entretanto no Turbo Pascal há muitas limitações do uso de arquivos .CHN.
  • Run – Compila e executa um programa, de acordo com a seleção feita na opção compiler Options.
  • Save – Salva um Work file ou Main file, carregado no editor.
  • Dir – Mostra o conteúdo do drive e diretório corrente.
  • Quit – Sai do Turbo Pascal.
  • compiler Options – Possibilita a alteração do modo de compilação, podendo ser compilação em memória, arquivo .COM, ou .CHN. Existe também a opção de configuração para depuração de erros de runtime.

Comandos básicos do editor.

Ao contrário dos dias atuais onde tudo se resolve com um clique do mouse ou até mesmo com um toque dos dedos, nos primeiros dias da micro-informática nem tudo era repleto de menus com fácil acesso e principalmente com padronizações bem definidas quanto aos atalhos comuns entre os softwares, coisa que hoje é definida grande parte pelo próprio sistema operacional hospedeiro. No Turbo Pascal 3.0 não é diferente, até mesmo porque é um software de 1983, onde estávamos bem longe de tal padronização. Entretanto existiam alguns “padrões” de mercado, na época e que, principalmente, eram ditados pelos softwares que estavam “bombando” naquele momento.

No caso do Turbo Pascal, um outro software que influenciou muito na interface de edição dos programas, foi o WordStar, que foi o primeiro processador de textos de grande sucesso do mundo, na época. Como a grande maioria dos usuários já estavam habituados aos padrões de comandos de edição do WordStar, todo software similar daquela época procurava imitar o líder de mercado, comportamento esse que é seguido até hoje em todos os softwares atuais.

Tela principal do WordStar
Tela principal do WordStar

Apenas para deixar registrado visualmente, abaixo podemos observar o conceito de WYSIWYG da época, sob o ponto de vista do software líder de mercado, o WordStar.

WordStar e os primórdios do WYSIWYG
WordStar e os primórdios do WYSIWYG

Não vou descrever todos os comandos e atalhos do editor do Turbo Pascal mas os principais e mais importantes com certeza estarão aqui. Os atalhos sempre eram ativados no Turbo Pascal com a combinação CTRL+K, seguida de outra tecla que especificava o comando a ser executado. Segue abaixo a lista dos principais:

  • CTRL+K D – Essa combinação de teclas quando digitada de dentro do editor, faz com que o menu principal seja ativado. Geralmente quando você está editando um fonte e na sequência deseja iniciar a compilação do mesmo, primeiro deverá sair do editor e retornar ao menu principal, uma vez que nessa versão do Turbo Pascal não tinhamos ainda o conceito de menus DropDown.
  • CTRL+K B – Combinação de teclas que especifica a marcação de um inicio de bloco a ser copiado para o Clipboard, ou área de transferência, como conhecemos em português.
  • CTRL+K K – Combinação de teclas que especifica a marcação do fim de um bloco a ser copiado para o Clipboard, ou área de transferência. É similar a marcação de texto feito pelo mouse em sistemas de processamento de textos atuais.
  • CTRL+K C – Copia um texto previamente marcado através da combinação anterior CTRL+K B/CTRL+K K, para a posição corrente do cursor.
  • CTRL+K V – Move um texto previamente marcado através da combinação anterior CTRL+K B/CTRL+K K, para a posição corrente do cursor.
  • CTRL+K W – Grava para arquivo, o texto previamente marcado através da combinação anterior CTRL+K B/CTRL+K K. Ao executar essa combinação, aparecerá, no topo da tela do editor, a mensagem “Write block to file:“, solicitando o nome do arquivo a ser gravado.
  • CTRL+K R – Carrega, na posição corrente do cursor, o texto gravado em um arquivo do disco. Ao executar essa combinação, aparecerá, no topo da tela do editor, a mensagem “Read block from file:“, solicitando o nome do arquivo a ser carregado.

.

A hora do código.

Bom, chega de enrolar e vamos colocar a mão na massa, passando primeiramente pelos conceitos mais básicos da linguagem, então nesse post vamos nos concentrar apenas na estrutura básica de um programa Pascal e a partir do próximo post, sim, vamos entrar nos detalhes mais avançados da linguagem, incluindo sua integração com recursos específicos de nossa plataforma preferida, o MSX :).

Lembrando que o intuito desse curso não é ensinar estrutura de dados e técnicas de programação, portanto irei considerar isso um pré-requisito.

Vamos conhecer a estrutura básica de um programa em Pascal.

Program Hello_World;
(*
  ********************************************************
  * Área de variáveis globais;
  * Definição de constantes;
  * Definição de novos tipos de dados (user defined types);
  * Definição de registros (estruturas de dados);
  * Definição de funções do usuário;
  * Definição de procedimentos do usuário;
  ********************************************************
*)
Begin  { Entry point principal do programa ou método principal }
  (* Área de código do programa principal *)
  WriteLn( 'Hello World' );
End.

Vamos começar do inicio :). Primeiramente o que o novo programador de Pascal precisa saber é que a linguagem não é case-sensitive, ou seja, comandos, variáveis, constantes, novos tipos ou registros, se definidos diferenciando-se apenas os caracteres entre maiúsculos e minúsculos, não serão distintos para o compilador Pascal. Ex: PROGRAM, Program, PrOgRaM, para o compilador Pascal é considerado a mesma palavra.

Sabendo isso vamos começar analisando a primeira linha de nosso programa exemplo, começando pela palavra reservada Program nome_programa, que especifica o nome do programa em questão, mas tem efeito apenas cosmético, sendo mais utilizado para identificar o programa principal, por isso, caso o programador não queira utilizar não é empecilho para se escrever um programa em Pascal. Caso se utilize um nome de programa não se esqueça de que o nome não pode ter espaços.

Logo abaixo temos um comentário de múltiplas linhas que se inicia com  (* e termina com *), podendo também ser definido um comentário de múltiplas linhas através de { terminando com }. Infelizmente até a primeira versão do Delphi, não tivemos no Pascal da Borland nenhum equivalente aos comentários de linha única, como o //.

(*
  ********************************************************
  * Área de variáveis globais;
  * Deinição de constantes;
  * Definição de novos tipos de dados (user defined types);
  * Definição de registros (estruturas de dados);
  * Definição de funções do usuário;
  * Definição de procedimentos do usuário;
  ********************************************************
*)

Podemos, e vamos, utilizar no futuro a área onde está o comentário acima justamente da forma descrita no próprio comentário no código, ou seja, área de variáveis globais, constantes, definições de novos tipos e estruturas, funções e procedimentos definidos pelo usuário, que veremos a partir do próximo post.

Por último temos o bloco do programa principal, main entry-point ou função principal para quem gosta de C/C++.

Como Pascal é uma linguagem estruturada onde cada função tem seu próprio escopo de código e dados, para se definir o início desse escopo, utilizamos a palavra reservada Begin, finalizando-o através da palavra End.

Lembrando que em Pascal o separador de comandos é sempre o ; (ponto e virgula) mas no caso do bloco principal a palavra End sempre terminará com . (ponto), então o seu programa principal sempre será conforme a estrutura abaixo.

Begin  { Inicio  do bloco do programa principal }
  (* Seu programa entra aqui *)
End.   { Término do bloco principal }

Por último vou falar, resumidamente, do statement WriteLn, que é utilizado como rotina de saída (output) para os dispositivos suportados pelo Turbo Pascal e nesse caso específico é utilizado para exibir um conjunto de caracteres (string) na saída padrão do computador, que é a tela do console, então o nosso programa de exemplo….

Begin
  WriteLn( 'Hello World' );
End.

…deverá gerar a seguinte saída…

.
Hello World
.

Não vou me aprofundar, por enquanto, sobre o statement WriteLn uma vez que nos próximos posts vou voltar a falar em profundidade sobre esse comando e também sobre as demais rotinas de I/O de Turbo Pascal.

Bom, vou ficar por aqui, entretanto você pode estar se perguntando o porque deu eu estar bem devagar nesse principio do curso e eu te respondo que eu conheço os meus visitantes assíduos e sei que muitos dos que estão esperando “ansiosamente” pelo curso de Pascal, seguido pelo de C, são não programadores, logo, terei que deixar essa fundação bem sólida. 😉 e apesar de eu já ter dito que não irei focar em estruturas de dados, nesse caso, vou manter algo mais light no inicio….mas a pauleira começa a partir do próximo post. 🙂

[]’s
PopolonY2k

Referência na internet

Turbo Pascal Forever – Introdução
http://www.popolony2k.com.br/?p=1058

CP/M operating system (Wikipedia)
http://en.wikipedia.org/wiki/CP/M

Anders Hejlsberg (Wikipedia)
http://en.wikipedia.org/wiki/Anders_Hejlsberg

Antique Software: Turbo Pascal 1.0 – Embarcadero
http://edn.embarcadero.com/article/20693

Java – Linguagem de programação (Wikipedia)
http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa%C3%A7%C3%A3o%29

Microsoft .Net (Wikipedia)
http://pt.wikipedia.org/wiki/Microsoft_.NET

C# (Wikipedia)
http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29

Conspiracy Theory: Microsoft’s .Net IS Borland’s Product
http://delphi.about.com/od/delphifornet/a/conspiracydnet.htm

Apple Inc. (Wikipedia)
http://en.wikipedia.org/wiki/Apple_Inc.

Objective-C (Wikipedia)
http://en.wikipedia.org/wiki/Objective-C

IPod (Wikipedia)
http://en.wikipedia.org/wiki/Ipod

IPad (Wikipedia)
http://en.wikipedia.org/wiki/Ipad

IPhone (Wikipedia)
http://en.wikipedia.org/wiki/Iphone

MacOS (Wikipedia)
http://en.wikipedia.org/wiki/Macos

MacOSX (Wikipedia)
http://en.wikipedia.org/wiki/Macosx

Linguagem C (Wikipedia)
http://en.wikipedia.org/wiki/C_language

Dennis Ritchie RIP++
http://www.popolony2k.com.br/?p=1204

Object Pascal (Wikipedia)
http://en.wikipedia.org/wiki/Object_Pascal

Embarcadero Delphi (Wikipédia)
http://en.wikipedia.org/wiki/Borland_Delphi

WordStar (Wikipedia)
http://en.wikipedia.org/wiki/WordStar

Dynamic loading (Wikipedia)
http://en.wikipedia.org/wiki/Dynamic_loading

FreePascal (Wikipedia)
http://en.wikipedia.org/wiki/Freepascal

Menu (Computing – Wikipedia)
http://en.wikipedia.org/wiki/Menu_%28computing%29

Clipboard (Wikipedia)
http://en.wikipedia.org/wiki/Clipboard_%28software%29

WYSIWYG (Wikipedia)
http://en.wikipedia.org/wiki/WYSIWYG

Case-sensitive (Wikipedia)
http://pt.wikipedia.org/wiki/Case_sensitive

Digilent BASYS 2 – FPGA Kit unboxing

O ultimo ano foi bastante dinâmico não só para a comunidade MSX mas também para a comunidade de desenvolvimento de software e hardware em geral.

Vale ressaltar na comunidade MSX sobre o desenvolvimento, no Brasil, de tecnologias que já estão disponíveis há um certo tem em outros países como por exemplo a placa de rede para MSX, baseada na Obsonet, construída por Ricardo Oazem da Tecnobytes. Outra novidade original do Brasil é a placa IDE, também da Tecnobytes, com 512 Kbytes de Memory Mapper e como senão bastasse essa quantidade a mais de memória mapeada, essa Mapper é reconhecida em qualquer MSX, inclusive os de primeira geração.

Isso tudo é para exemplificar que o mercado MSX está repleto de coisas novas e no meio dessas coisas novas de MSX muitas outras existem em paralelo, principalmente no desenvolvimento de hardware e software embarcados, que é um mercado emergente no Brasil, principalmente através de tecnologias de hardware open source para hobbystas, como a Arduino e também através de tecnologias mais profissionais para desenvolvimento de hardware reprogramáveis, como a FPGA.

Em um futuro próximo escreverei um post sobre a tecnologia Arduino, no momento o meu interesse é sobre a FPGA, tecnologia essa que tive contato pela primeira vez em 2004, quando naquela época eu arquitetava e desenvolvia o software que controlava toda a inteligência de um veículo aéreo autônomo, ou UAV, para um grande cliente.

Foi um contato rápido mas que me deixou bem interessado nessa tecnologia, pois na mesma época o One Chip MSX (OCM) começava a despontar no cenário da comunidade MSX mundial. assim como em diversos outros projetos que começavam a ser desenvolvidos em torno dessa tecnologia. Foi o suficiente para saber que existem 2 grandes players nesse mercado de FPGA, sendo a líder a Xilinx, seguida de perto pela Altera.

Acompanhando o autor do projeto MSX ARM, Rogério Machado, até um revendedor de placas baseadas em FPGA, na ultima semana, fiquei bastante empolgado em começar a desenvolver coisas baseadas em FPGA e terminei adquirindo um kit de aprendizado, o BASYS 2 da Digilent Inc., nada parecido com a DE0-Nano, da terasIC, baseada em Altera e utilizada para auxiliar o desenvolvimento do protótipo do MSX ARM e que  possui uma grande quantidade de  I/O, 1 conversor A/D de 8 canais e 1 acelerõmetro, 32MB de memória entre outras características interessantes, mas para mim a BASYS 2 já é um excelente começo.

Abaixo segue as imagens do unboxing…..

Digilent BASYS 2

……e o detalhe da plaquinha.

BASYS 2 - FPGA Kit (Xilinx based)

Características técnicas do Kit.

  • Xilinx Spartan-3 E FPGA, 100K ou 250K;
  • Possui 18 bits multiplicadores, 72Kbits de RAM, e 500MHz;
  • 2 Portas USB de velocidade total para configuração e transferência de dados;
  • Adept 2.0 software disponível como um download gratuito;
  • XCF02 Plataforma Flash ROM que armazena as configurações FPGA indefinidamente;
  • Freqüência de oscilação configurável pelo usuário (25, 50 e 100 MHz);
  • Reguladores de voltagem (1.2V, 2.5V e 3.3V), que permite o uso de 3.5V-5.5V;
  • 8 LEDs, 4 displays de sete segmentos, quatro botões, 8 comutadores, porta PS / 2 e uma porta de 8-bit VGA;
  • Quatro conectores de 6 pinos para o usuário;

.

BASYS 2 (XILINX based)

Ou seja, é uma placa básica mas que de imediato dá para perceber que tem um potencial para desenvolver até coisas não triviais, como por exemplo implementar uma placa de vídeo VGA e testar o resultado através do conector VGA presente no kit. Sem contar os 4 displays que podem, entre outras coisas, ser utilizados para interação com o usuário ou até mesmo para mostrar informações de debug.

As 8 chaves comutadoras e os 4 botões são mais do que suficientes para possibilitar a entrada de dados por parte do usuário, sem contar a porta PS/2 que possibilita a implementação de entrada de dados via teclado.

O FPGA utilizado na placa é o Xilinx Spartan-3 E, com capacidade suficiente para as minhas necessidades de iniciante :), onde já até penso em criar algum projeto, quem sabe um Atari 2600.

É claro que não poderia faltar um material impresso ou até mesmo em formato eletrônico para o aprendizado de alguma linguagem para desenho e especificação de hardware e a mais conhecida é a HDL,  que, é claro, tem suas variações e forks.

Abaixo a imagem dos 2 livros que aquiri juntamente com o kit…….

Introduction to Digital Design - Using Digilent FPGA Boards

….depois de comprar esses 2 livros, descobri que a própria Digilent disponibiliza um preview desses, e outros, livros gratuitamente em PDF, então você pode consultar o conteúdo do livro antes de adquiri-lo, inclusive você pode fazer a compra diretamente no site da própria Digilent.

  • Digital Design – Using Digilent FPGA Boards (VHDL/ActiveHDL Edition)  – 75+VHDL Examples – Richard E. Haskell,  Darin M. Hanna – LBE Books;
  • Digital Design – Using Digilent FPGA Boards (VHDL/ActiveHDL Edition)  – 30 VHDL/Active-HDL Examples – Richard E. Haskell,  Darin M. Hanna – LBE Books;

Segue abaixo os links para download e compra:

http://www.digilent.cc/Products/Catalog.cfm?NavPath=2,729&Cat=14

Pesquisando na internet é possível encontrar diversos projetos que utilizam a FPGA Spartan 3 da Xilinx e que com alguma ou nenhuma alteração poderão ser utilizados no BASYS 2 da Digilent, entretanto o objetivo desse post é apenas fazer uma apresentação do kit para que no decorrer do ano que se inicia  eu possa mostrar seu funcionamento e exemplos de utilização.

[]’s
PopolonY2k

Referência na internet

Obsonet (MSX.Org)
http://www.msx.org/articles/obsonet

Obsonet
http://obsonet.blogspot.com/

Tecnobytes
http://www.tecnobytes.msxall.com/

Arduino (Wikipedia)
http://en.wikipedia.org/wiki/Arduino

FPGA (Wikipedia)
http://en.wikipedia.org/wiki/Fpga

UAV (Wikipedia)
http://en.wikipedia.org/wiki/Unmanned_aerial_vehicle

One Chip MSX (Wikipedia)
http://en.wikipedia.org/wiki/1chipMSX

XILINX (Wikipedia)
http://en.wikipedia.org/wiki/Xilinx

Altera (Wikipedia)
http://en.wikipedia.org/wiki/Altera

Digilent Inc.
http://www.digilentinc.com/

BASYS 2 (Digilent)
http://www.digilentinc.com/Products/Detail.cfm?Prod=BASYS2

terasIC
http://www.terasic.com.tw/en/

DE0-Nano (terasIC)
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=593

VGA (Wikipedia)
http://en.wikipedia.org/wiki/Video_Graphics_Array

Atari 2600 (Wikipedia)
http://en.wikipedia.org/wiki/Atari_2600

Hardware description language – HDL (Wikipedia)
http://en.wikipedia.org/wiki/Hardware_description_language

Game On – Press space key to start

No mês passado eu havia anunciado sobre a exposição interativa que o MIS (Museu da arte e do som) estava promovendo em São Paulo Capital, denominada Game On.

Me lembro que no anuncio original, era claro que de terça até sexta o evento aconteceria de 12 às 20 horas, o que eu acreditava ser muito ruim, uma vez que geralmente as 18:00 o pessoal começa a sair do trabalho aqui na capital e isso causa um transtorno geral no transito, principalmente nessa região do museu da arte e do som e geralmente se leva entre 30 a 40 minutos para chegar no local, considerando que se está partindo da região central de São Paulo, ou seja, teríamos aproximadamente 1 hora e meia para “aproveitar” o evento, o que é pouco pela quantidade de material presente no museu.

Entretanto, acredito que pelas reclamações dos visitantes, o horário do evento foi estendido para as 21:00 horas também durante a semana, ou seja, temos 2 horas e meia para visitação, o que para mim é algo mais do que suficiente em uma visita onde se deseja conhecer uma pouco da história dos video-games e computadores em geral.

Como a maioria dos jovens vai para brincar nos video-games, então mesmo 2 horas e meia é pouco. :).

Vou postar abaixo algumas fotos que tirei no evento. Tem muito mais no meu álbum de fotos, que pode ser acessado a partir desse link aqui.

Para começar o passeio, não dá para não comentar que o MIS, fica em uma das ruas com a maior concentração de revenda de carros importados de São Paulo e ouso dizer que até do País.

Será impossível você não parar para ver a loja Lamborghini São Paulo, que é revendedora dos cobiçados carros da marca Lamborghini, na capital, foi exatamente o que fiz tirando umas fotos da Lamborghini Modelo Aventador LP700-4, que custa só 2 milhões de reais. Hummm…..é que no momento estou em busca de um fusca em bom estado senão eu até pensaria em comprar uma dessas…. :).

Segue uma foto frontal…..

Lamborghini LP700-4 - 2 milhões de reais

…..e mais uma traseira aqui.

Lamborghini LP 700-4 (traseira)

Algumas fotos extras dessa beleza aí acima podem ser vistas em meu album, nesse link.

Mas vamos ao que interessa que é o …..

Cartaz do Game On na entrada do MIS

O Game On, como já foi citado anteriormente, é um evento organizado pelo MIS aqui no Brasil, entretanto o país de origem do Game On é a Inglaterra e apesar de na década de 80 um computador inglês, o ZX Spectrum, ter dominado o mercado da computação pessoal e games naquele país, o evento no Brasil é bem eclético existindo uma boa diversidade de consoles e computadores pessoais, a começar na entrada onde logo podemos apreciar uma réplica do DEC PDP-1, cuja foto dos engenheiros da Digital Equipment (DEC) pode ser vista, onde eles jogam um game chamado SpaceWar desenvolvido pela Atari para o PDP-1.

SpaceWar, 1962 - by Atari for PDP-1
Réplica da CPU do DEC PDP-1
Réplica do Teclado e monitor do DEC PDP-1 X.D
Engenheiros da DEC jogando SpaceWar no monitor de altissima resolução X.D

Ao lado do PDP-1 você encontra o Computer Space, que é reconhecido como o primeiro arcade da história, criado por Nolan Bushnell e Ted Dabney quando trabalhavam para a Nutting Associates, um pouco antes de deixar a empresa e fundar a Atari, Inc.

Computer Space

Ao contrário do PDP-1, que no evento do Game On era uma réplica, o Computer Space parecia ser original, entretanto não estava ligado para que pudéssemos ver o jogo em ação, por isso matei a minha curiosidade assistindo o vídeo abaixo no YouTube.

Computer Space Arcade Game – Nutting Associates, 1971

Ao assistir o vídeo acima posso dizer com certeza absoluta que se trata do ancestral do game, Asteroids, que fez muito sucesso posteriormente no Atari 2600.


Asteroids – Atari Inc. 1979

Entrando no centro nervoso do evento, somos recepcionados pelo game Pong (Atari 1979), sendo projetado na parede.

Pong - Atari, 1979 (Jogado pelo criador e mantenedor do projeto MSX TurboR ARM - Rogério Machado).

Seguido de perto do já citado anteriormente, Asteroids da Atari, lançado 8 anos depois de Nollan Bushnell ter sido despedido da Nutting Associates, após ter sido descoberto seu plano de fazer um clone do Computer Space, provavelmente o Asteroids.

Asteroids - Arcade da Atari, 1979 e descendente do Computer Space.

Outro clássico que não poderia ficar de fora é Galaga. Para quem não se lembra, ou sabe, Galaga é um daqueles games em que seu objetivo é atirar e destruir as naves inimigas para somar o maior número de pontos possível. Isso mesmo, sem nenhuma princesa para salvar, sem nenhum planeta para libertar, enfim…..jogar até enjoar…….o que não era muito dificil nesses jogos.

Galaga - Namco (Midway, USA)

Passando mais a frente encontramos à seção de consoles caseiros ………

Home consoles

…..onde algumas outras peças se tornaram bem familiares e outras foram reconhecidas apenas de ouvir falar, como é o caso do Magnavox Odyssey, conhecido nos EUA apenas como Odyssey.

O Odyssey é reconhecido como o primeiro console de video-game do mundo e segundo sua história, ele foi desenvolvido de 1966 a 1968 e seu protótipo ficou conhecido como The Brown Box, que estava presente no evento conforme foto abaixo.

The Brown Box (Pai do Magnavox Odyssey)

O interessante é que no Brasil o video-game Odyssey só apareceu no inicio da década de 80, fabricado pela Philips, também com o nome de Odyssey. Na realidade o video-game fabricado pela Philips se tratava da segunda versão do Odyssey, conhecida como Odyssey 2 nos EUA, também de propriedade da Magnavox nos EUA.

Me lembro que na época, la pelos anos 1982~1983, eu esperava ansiosamente pela chegada do revolucionário Odyssey 2 no Brasil….tsc, tsc, tsc, nem sabia que eu já possuía esse video-game revolucionário em minhas mãos :).

Odyssey 2 (No Brasil apenas Odyssey)

Nos EUA, o primeiro e histórico Odyssey era esse da imagem abaixo.

Magnavox Odyssey - O primeiro video-game do mundo

Infelizmente o evento não tinha um console do Odyssey 2 disponível para apreciação :(.

Claro que não poderia faltar o video-game, que ficou marcado como o primeiro maior sucesso de vendas no mundo, sendo reconhecido como o console que criou a industria de games moderna. Sim, estou falando do Atari 2600.

Atari 2600 - O pai da industria de games moderna

O Atari 2600 dispensa apresentações e comentários, apenas vale ressaltar que no Brasil esse video-game foi fabricado pela Polyvox, uma empresa do grupo Gradiente, conforme pode ser lido no site da comunidade Atari brasileira.

Outra curiosidade é que o Atari usava o mesmo processador de 8 bits do Nintendo Famicom (NES) e também do Apple II, o MOS 6502.

Na verdade o Atari usava uma versão mais barata do MOS 6502, conhecida como MOS 6507, porém o core era basicamente o mesmo.

Talvez propositalmente, os organizadores do Game On deixaram o Atari, o Nintendo Famicon (NES) e o Commodore 64, próximos na exposição, pois todos esses consoles/computadores tem uma ligação quase que familiar, que é a presença do processador da MOS Technology e que na verdade é a própria Commodore Business Machines,  nada menos que a fabricante do Commodore 64.

Entre tantos video-games, temos um computador que fez muito sucesso na Inglaterra, seu País de origem, e inclusive fez um certo sucesso aqui no Brasil através de seu clone, o TK90X, estou falando do ZX Spectrum.

Em pensar que quase tive um desses na época, no lugar do MSX…….

ZX Spectrum e o clone brasileiro, o TK90X.

Na sequencia, conforme citei anteriormente no post do Atari 2600……

Nintendo Famicom (NES)

…o Nintendo Famicom, ou Nintendo Entretainment System, ou NES, que reconhecidamente tirou os video-games de sua maior crise existencial ocorrida no inicio dos anos 80, devido a perda de interesse do publico nos video-games de segunda geração, sendo o Famicom reconhecido como video-game de terceira geração, assim  como o Sega Master System.

Basicamente chegamos a sala de computadores pessoais da década de 80 e ninguém melhor para dar as boas vindas do que o Commodore 64, principalmente agora que pude presenciar o porque dele ter sido imbatível em vendas na década de 80, nos EUA e Canadá.

Commodore 64 - Ainda vou ter um !!!

Ao testá-lo com o jogo que ele estava rodando, percebi que o scroll horizontal dele é estupidamente rápido em comparação ao que conhecíamos em outras plataformas, incluindo o MSX.

Commodore 64 rodando DropZone

Isso sem contar o seu processador de áudio, o SID, que é reconhecido como o melhor entre os micros de 8 bits.

Infelizmente vivíamos em uma famigerada política nacional de informática, ou reserva de mercado de informática como ficou conhecida, fruto de um protecionismo governamental ridículo que impediu que computadores como o Commodore 64 chegassem a nosso País, sendo que esses mesmos computadores chegaram tranquilamente em nossos vizinhos, como a Argentina, por exemplo.

Agora que os tempos mudaram…….eu preciso desse micro urgentemente !!!  🙂 🙂 🙂 :).

Outro computador histórico, principalmente para nós MSXzeiros, é o SpectraVideo, que segundo o próprio Bill Gates foi utilizado como base para o padrão MSX.

SpectraVideo SVI-318

O próximo computador é um velho conhecido aqui no Brasil, não por ter sido popular por aqui mas sim porque desbancou o reinado do computador mais usado e cultuado em Terra Brasilis, o MSX. Apesar de ter desbancado o reinado do MSX, esse computador nunca chegou a reinar de fato por aqui e só serviu mesmo para fazer com que os PC’s se tornassem mainstream, pois muitos usuários, na época, saltaram do MSX direto para o PC, o que na verdade era inevitável de acontecer.

Estou falando do Commodore Amiga, que apesar de ter um ótimo hardware, no Brasil, não emplacou como nos EUA, Canadá e Europa.

Commodore Amiga

Outro que chegou ao Brasil de maneira não oficial e fez pouco sucesso, foi o Apple II que devido ao descaso da Apple Computer Inc., com sua mania de sempre ignorar o mercado não americano, deixou espaço para diversos clones nacionais, muitos deles, a maioria, senão todos, completamente ilegais e não licenciados pela Apple Computer Inc. americana.

Apple II

Aqui no Brasil tivemos a Unitron, Milmar, Appletronica (que não tem nada a ver com a Apple), Dismac, CCE, entre outros “fabricantes” do Apple II.

Bom, vou terminando por aqui e é claro que reservei o melhor para o final, onde não poderia faltar essa máquina que foi a responsável pelo nascimento de grandes franquias de jogos que se destacam até hoje, como é o caso da série Metal Gear e também pela entrada de muitos dos profissionais de hoje, no mundo de TI.

Estou falando do MSX, que para aqueles que não sabem é uma linha de computadores criada na década de 80, representada por um consórcio de empresas japonesas, juntamente com a Microsoft, para se estabelecer um padrão em hardware e software.

Uma das empresas desse consórcio foi a Sony, que fez muito sucesso com sua série de computadores MSX chamada HitBit. E é exatamente o micro da Sony, o HitBit 2+ modelo HB-F1XDJ que pode ser apreciado no Game On.

Sony MSX2+ HitBit HB-F1XDJ

Infelizmente o MSX 2+ da Sony não estava ligado para que os visitantes entendessem o porque do MSX ser o mais mágico dos computadores :).

Bom, existe muita coisa no evento da Game On a ser apreciada, principalmente quanto a consoles novos, diversos arcades que infelizmente não citei aqui, também existe uma seção que conta um pouco da história das produções musicais para jogos, citando alguns dos principais artistas reconhecidos nesse meio, sem contar os principais consoles atuais com seus excelente jogos, prontos para a diversão.

Enfim, vale a visita, mas a minha sugestão é que quando você pensar em visitar a Game On, vá com muito tempo pois realmente é um lugar para se passar o dia, principalmente jogando 🙂 🙂 :).

Segue abaixo o endereço do MIS e os horários.

‘Game On’
Término 08/01/2012.
Museu da Imagem e do Som (MIS)
Av. Europa, 158, Jardim Europa. 2117-4777
Terça a sexta, das 12 às 21h; dom., sáb. e feriados, das 11 às 21h
Ingressos: R$ 10 e R$5 (meia)
Livre

[]’s
PopolonY2k

Referência na internet

MIS – Museu da Imagem e do Som
http://www.mis-sp.org.br/

Lamborghini São Paulo
http://www.lamborghini-saopaulo.com/

Lamborghini (Wikipedia)
http://en.wikipedia.org/wiki/Lamborghini

Lamborghini Modelo Aventador LP700-4
http://pt.wikipedia.org/wiki/Lamborghini_Aventador

PopolonY2k’s Lamborghini LP700-4 album
http://picasaweb.google.com/112074901768594959236/LamborghiniSaoPauloModeloLamborghiniAventadorLP7004?locked=true#

PopolonY2k’s Game On 2011/2012 album
https://picasaweb.google.com/112074901768594959236/GameOn20112012#

ZX Spectrum
http://en.wikipedia.org/wiki/ZX_Spectrum

DEC PDP-1
http://en.wikipedia.org/wiki/PDP-1

Digital Equipment Corporation
http://en.wikipedia.org/wiki/Digital_Equipment_Corporation

SpaceWar (Wikipedia)
http://en.wikipedia.org/wiki/Spacewar!

Computer Space (Wikipedia)
http://en.wikipedia.org/wiki/Computer_Space

Arcade Games (Wikipedia)
http://en.wikipedia.org/wiki/Arcade_game

Nolan Bushnell (Wikipedia)
http://en.wikipedia.org/wiki/Nolan_Bushnell

Ted Dabney (Wikipedia)
http://en.wikipedia.org/wiki/Ted_Dabney

Nutting Associates (Wikipedia)
http://en.wikipedia.org/wiki/Nutting_Associates

Atari Inc. (Wikipedia)
http://en.wikipedia.org/wiki/Atari,_Inc.

Asteroids (Wikipedia)
http://en.wikipedia.org/wiki/Asteroids_%28video_game%29

Atari 2600 (Wikipedia)
http://en.wikipedia.org/wiki/Atari_2600

Pong (Wikipedia)
http://en.wikipedia.org/wiki/Pong

Galaga (Wikipedia)
http://en.wikipedia.org/wiki/Galaga

Magnavox Odyssey (Wikipedia)
http://en.wikipedia.org/wiki/Magnavox_Odyssey

Milmar Top System (Wikipedia)
http://pt.wikipedia.org/wiki/Top_System

Magnavox Odyssey 2 (Wikipedia)
http://en.wikipedia.org/wiki/Magnavox_Odyssey%C2%B2

Magnavox (Wikipedia)
http://en.wikipedia.org/wiki/Magnavox

Philips (Wikipedia)
http://en.wikipedia.org/wiki/Philips

Polyvox (Wikipedia)
http://pt.wikipedia.org/wiki/Polyvox

Gradiente (Wikipedia)
http://pt.wikipedia.org/wiki/Gradiente_%28empresa%29

A história do Atari no Brasil (Atari.com.br)
http://www.atari.com.br/historia/

Nintendo Famicom (NES) – Wikipedia
http://en.wikipedia.org/wiki/Nintendo_Entertainment_System

MOS 6502 (Wikipedia)
http://en.wikipedia.org/wiki/MOS_Technology_6502

MOS 6507 (Wikipedia)
http://en.wikipedia.org/wiki/MOS_Technology_6507

MOS Technology (Wikipedia)
http://en.wikipedia.org/wiki/MOS_Technology

Sega Master System (Wikipedia)
http://en.wikipedia.org/wiki/Sega_Master_System

TK90X (Wikipedia)
http://en.wikipedia.org/wiki/Tk90x

MSX (Wikipedia)
http://en.wikipedia.org/wiki/MSX

SID (MOS Technology) – Wikipedia
http://en.wikipedia.org/wiki/MOS_Technology_SID

Politica nacional de informática (Wikipedia)
http://pt.wikipedia.org/wiki/Pol%C3%ADtica_Nacional_de_Inform%C3%A1tica

SpectraVideo (Wikipedia)
http://en.wikipedia.org/wiki/Spectravideo

Commodore Amiga (Wikipedia)
http://en.wikipedia.org/wiki/Amiga

Apple II (Wikipedia)
http://en.wikipedia.org/wiki/Apple_II_series

Unitron Apple II (Wikipedia)
http://pt.wikipedia.org/wiki/Unitron_AP_II

CCE (Wikipedia)
http://pt.wikipedia.org/wiki/CCE

Apple Inc. (Wikipedia)
http://en.wikipedia.org/wiki/Apple_Inc.

Metal Gear (Wikipedia)
http://en.wikipedia.org/wiki/Metal_gear

Sony (Wikipedia)
http://en.wikipedia.org/wiki/Sony

Sony HitBit (Wikipedia)
http://en.wikipedia.org/wiki/HitBit

Sony HitBit (HB-F1XDJ)
http://www.1000bit.it/scheda.asp?id=1682

Microsoft Corp. (Wikipedia)
http://en.wikipedia.org/wiki/Microsoft_Corporation

Tetrastar – Chiptune electronic music

Quem, na década de 80, poderia imaginar que algum dia seria moda se vestir como nerd e que teríamos programas de TV exaltando o estilo nerd e até mesmo que os nerds estariam no controle das maiores corporações mundiais e que influenciariam na musica, forte instrumento da cultura pop mundial, com produções feitas com as mais modernas tecnologias e/ou até mesmo utilizando computadores e video games com nada mais, nada menos que 20 a 30 anos de idade.

Pois bem, na TV é impossível hoje não conhecer a série do Warner Channel, denominada The Big Bang Theory, que com o seu protagonista, Sheldon Cooper, tem influenciado cada vez mais jovens, divulgando assim a cultura nerd e a tornando objeto de desejo :).

The Big Bang Theory

Na área musical temos percebido, principalmente nos últimos 4 anos, um movimento musical denominado Chiptune music, que é basicamente a produção musical utilizando chips de som criados na década de 80, ou até mesmo antes, presente basicamente em computadores antigos, sendo destaque nessa área os Commodore 64, ZX Spectrum/MSX e também video games como Super NES (aka Super Nintendo no Brasil) e Sega Genesis (aka Mega Drive no Brasil).

Até hoje o chip do Commodore 64, o SID, é cultuado como o melhor chip para criação musical no movimento chiptune, sendo utilizado por seus adeptos, seguido pelo chip da General Instruments, AY-3-8910, utilizado pela grande maioria dos computadores da década de 80, incluindo o ZX Spectrum e MSX.

É nesse cenário do movimento chiptune que, navegando em sites internacionais e fóruns, tomei conhecimento de uma dupla de musica eletrônica denominada Tetrastar, que é basicamente formada pelo próprio produtor da dupla, Oliver Hindle e da vocalista, Jaylyn Coffin.

TetraStar – Eletronic music duo

A dupla foi formada em 2010, atuando basicamente no cenário indie  e recentemente liberou para download em seu site o seu primeiro álbum denominado Song’s we didn’t Write (canções que não escrevemos – tradução livre), que basicamente são musicas de outros artistas que foram reestilizadas e produzidas por eles utilizando sintetizadores, Commodore 64, Nintendo Game Boy e NES.

É perceptível os diversos arranjos feitos pelo NES e Game Boy (que por vezes se parece muito com sons de ZX Spectrum/MSX) em todas as musicas da dupla com a marcante batida eletrônica, aliada a excelente voz da cantora Jaylyn Coffin, fazem do Tetrastar uma excelente surpresa no cenário da musica indie e porque não dizer da musica chiptune.

Tetrastar – Crank That

 25/01/2012 – UPDATE

Recentemente TODOS os vídeos oficiais do Tetrastar foram removidos do Youtube e o site oficial http://tetrastar.co.uk, é redirecionado para o site do grupo original do produtor, Oliver Hindle, o SuporPowerLess (http://www.superporwerless.co.uk), o que nos deixa com uma interrogação sobre o futuro do Tetrastar.

Atualizei o vídeo que existia anteriormente, Float On, para o clip Crank That, que ainda não foi removido do Youtube.

[]’s
PopolonY2k

Referência na internet

Definição de Nerd (Wikipedia)
http://pt.wikipedia.org/wiki/Nerd

Warner Channel
http://www.warnerchannel.com/

The Big Bang Theory (Wikipedia)
http://en.wikipedia.org/wiki/The_Big_Bang_Theory

Sheldon Cooper (Wikipedia)
http://en.wikipedia.org/wiki/Sheldon_Cooper

Chiptune Music (Wikipedia)
http://en.wikipedia.org/wiki/Chiptune

Commodore 64 (Wikipedia)
http://en.wikipedia.org/wiki/Commodore_64

ZX Spectrum (Wikipedia)
http://en.wikipedia.org/wiki/ZX_Spectrum

MSX (Wikipedia)
http://en.wikipedia.org/wiki/MSX

Super NES (Wikipedia)
http://en.wikipedia.org/wiki/Super_nes

Sega Genesis (Wikipedia)
http://en.wikipedia.org/wiki/Sega_Genesis

MOS Technology SID (Wikipedia)
http://en.wikipedia.org/wiki/MOS_Technology_SID

General Instruments AY-3-8910 (Wikipedia)
http://en.wikipedia.org/wiki/General_Instrument_AY-3-8910

Tetrastar official page
http://tetrastar.co.uk/

Superpowerless (Oliver Hindle Wikipedia)
http://en.wikipedia.org/wiki/Superpowerless

Independent Music (Indie music – Wikipedia)
http://en.wikipedia.org/wiki/Independent_music

Songs we didn’t write post (Official website)
http://tetrastar.co.uk/?p=62

Nintendo Game Boy (Wikipedia)
http://en.wikipedia.org/wiki/Nintendo_Game_Boy

Nintendo Entertainment System (Wikipedia)
http://en.wikipedia.org/wiki/Nintendo_Entertainment_System

RetroBirthday to you ….

Apesar de a humanidade viver um período de maior criação de toda sua existência, eu acredito cegamente que subutilizamos tudo o que temos, incluindo técnicas e tecnologias dos ultimos 50 anos e com isso acabamos por nos desfazer de coisas que são úteis apenas porque existe algo mais novo no mercado e dessa forma gastamos tempo no aprendizado de como utilizar o “novo” da mesma forma como faziamos no “velho“, e também desperdiçamos recursos financeiros e, indiretamente, recursos naturais.

Por esse motivo, e também para comemorar o primeiro ano de existência do blog PopolonY2k Rulezz, durante o segundo ano de vida do blog vou utilizar o tema Grassland 2.0.0 do WordPress, que exalta a economia e preservação dos recursos naturais da Terra, o que tem tudo a ver com Retrocomputing sob meu ponto de vista, uma vez que se você continuar utilizando ao máximo os recursos de sua tecnologia antiga, com certeza menos PC’s novos serão produzidos e menos o nosso planeta será agredido pelos males que essa cadeia de produção e consumo causam a ele.

Talvez você esteja achando que sou completamente maluco ao afirmar essas coisas….hummmmmm, talvez você não pense assim depois de saber que o WWF fez um relatório que demonstra que o poder de consumo do ser humano supera o poder de recuperação do planeta, conforme esse link aqui do site oficial do WWF.

WWF Logo

O que dizer do reconhecido site, The History of Stuff (A história das coisas) cujo famoso vídeo de Annie Leonard explica um pouco sobre o funcionamento do “sistema“. Segue abaixo o video em uma versão traduzida para o Português.

Por tudo isso, é certo dizer que a utilização e o desenvolvimento de novas utilidades para nossos MSX, Commodores, Ataris e outras tecnologias antigas é um potencial contribuinte para o desenvolvimento de um planeta sustentável :).

[]’s
PopolonY2k

Referência na internet

The History of Stuff
http://www.storyofstuff.com/

WWF Brasil
http://www.wwf.org.br/

Annie Leonard (Wikipedia)
http://en.wikipedia.org/wiki/Annie_Leonard