terça-feira, março 21, 2017

RISC OS Pico: Uma Experiência "Retrô" no Raspberry Pi

Este post teve a origem no lamento de um conhecido: o Rasperry Pi com o seu sistema padrão é bastante distante da simplicidade dos computadores clássicos dos anos 80, que iniciavam quase que instantaneamente para um interpretador BASIC.

Eu comecei a pensar como o Raspberry poderia ser usado de forma semelhante aos micros antigos, mas antes de me aprofundar resolvi dar uma olhada nos softwares jé existentes e encontrei o RISC OS Pico, que é algo bem próximo do desejado.



Antes de falar mais no Pico, é preciso deixar claro o que estamos procurando. A ideia é um software para o Raspberry que boot rapidamente para um interpretador BASIC. Não estamos interessados em ter acesso a rede (inclusive a internet) nem  ter um desktop gráfico. Na verdade não queremos nem mesmo um console, vamos interagir diretamente com o BASIC. É exatamente isto que o RISC OS Pico fornece.




Um pouco de história: o RISC OS surgiu em 1987 para ser usado na linha de computadores pessoais Archimedes da empresa inglesa Acorn. Estes computadores utilizam um novo processador, o Acorn RISC Machine, que é a origem da arquitetura ARM. Um dos objetivos desta linha de computadores era facilitar a migração do BBC Micro, que era produzido também pela Acorn. Para tanto, entre outras coisas, ele tinha uma versão melhorada do BBC BASIC. Atualmente o RISC OS está disponível para diversos computadores com processador ARM, entre os quais o Raspberry Pi. A versão Pico foi criada para comemorar os 50 anos da linguagem BASIC.

Ok, o que precisamos para rodar o RISC OS Pico? Um Raspberry, um cartão SD, um display,e um teclado e uma fonte de alimentação:
  • O Raspberry pode ser qualquer modelo; como o RISC OS só utiliza atualmente um núcleo e a versão Pico não inclui a parte de rede, a vantagem dos modelos mais novos é bem limitada. No meu teste eu usei um velho Raspberry 1 modelo B, com 256M de Ram e o desempenho foi bem satisfatório.
  • O RISCO OS Pico requer muito pouco espaço de SD. Eu tentei inicialmente com um cartão antigo de 256M; não funcionou apesar da maior parte do espaço estar livre (não acho que o tamanho teve algo a ver com isto, é mais provável que o cartão seja lento ou tenha alguma esquisitice). Acabei usando um cartão SD de 2G.
  • Como display eu usei uma TV LCD conectada por HDMI, o que é próximo do conceito de usar a TV da sala. Inicialmente a resolução está baixa, mas alguns exemplos usam resolução bem alta. Não cheguei a testar a conexão por vídeo composto.
  • O RISC OS suporta o uso de teclado e mouse, mas usei só teclado nos meus testes. Considerando o tamanho das telas das TVs atuais, eu recomendo usar um teclado sem fio. Desta forma o Raspberry Pi pode ficar junto à TV (possivelmente dentro de uma caixinha ornamentada) enquanto você fica sentado no sofá.
  • A fonte de alimentação não é muito crítica, pois só estamos ligando um teclado. Usei o meu velho carregador de celular.
A preparação é simples: baixe o zip do site, expanda, copie para um cartão SD vazio, conecte cartão, display e teclado e ligue a alimentação. Num piscar de olhos você verá a saudação do BASIC. Experimente rodar um dos exemplos:

LOAD "EXAMPLES.SNOW"
RUN


 Daqui para frente você precisa estudar um pouco. No zip tem o pdf de um livro que explica o básico do BASIC, mais detalhes estão no site do RISC OS.O BBC BASIC tem suporte a gráficos e sons, a versão no Pico vem com bibliotecas para interagir com o GPIO e interfaces do Raspberry Pi.

Um pequeno problema é que o Pico vem configurado para o teclado inglês. O comando "KEYBOARD <país>" permite selecionar outros layouts, mas "KEYBOARD BRAZIL" não teve o comportamento esperado.


2 comentários:

Richard disse...

Ótimo. Buscava algo assim para o que "um dia" penso em fazer, mas olhando rapidamente não achei nada na programação Basic para acesso aos I/Os da placa.

Daniel Quadros disse...

Alguns exemplos, como PiLed e SimonSays, usam os GPIOs através do comando SYS. Infelizmente não achei uma documentação disto.