Arquivo da tag: C++

Já ouviram falar de Cowgol?

Antes de tudo, a zuera é essa mesmo. Cowgol é uma linguagem de programação, fortemente baseada em Ada, com foco em sistemas pequenos, como o 6502, o Z80, entre outros. A meta da linguagem é que o compilador da linguagem funcione normalmente em um micro com um desses processadores, o que em tempos atuais, é um grande desafio. Descobrimos esse item peculiar quando resolvemos nos aventurar no Hackaday.

Logo, tem algumas características, como:

  • Ser uma linguagem moderna e segura em termos de tipagem, inspirada na linguagem Ada.
    Um backend orientado por tabelas, para tornar a linguagem fácil de portar.
  • Tem remoção de código morto e alocação estática de variáveis, conduzindo a binários pequenos e eficientes.
  • Ser rápido: Segundo o autor, ele compila o compilador no PC dele em 80 milissegundos.
  • Ser pequeno: O executável para 8080 tem 58 Kb (dividido em duas partes), e a versão para 80386 tem 70 Kb.

Os ports para processadores incluem:

  1. Z80 e 8080 (CP/M).
  2. 6502 e 65c02, ou seja: Roda num BBC Micro com o segundo processador, o Tube.
  3. 6303, e na versão específica para o Fuzix.
  4. Bytecode interpretado para o 6502. Fica menor, mas mais lento – pois a linguagem é interpretada.
  5. 80386, ARM Thumb2 e PowerPC (Linux).
  6. 68000 (Atari ST TOS e Linux m68k – se você achar uma máquina que rode esse sistema).
  7. 8086 (DOS).
  8. PDP11 (Unix V7).

É possível gerar binários grandes e horrorosos em C, justamente para facilitar o port do compilador para aquela nova plataforma: Pega o código transformado em C, e aí… “É só compilar!“. Ah, também é possível gerar código em Basic, mas o autor disse que foi só uma piada – mas funciona.

Ficou curioso? A linguagem é simples, lembra vagamente o Basic estruturado, tem documentação (não o bastante, mas tem!), é código aberto (licença BSD de 2 cláusulas) e pode ser algo interessante para mexer num final de semana chuvoso, de tarde. Vai lá e dá uma força pro David Given, e deixemos as vacas voarem.

Fusion-C: Agora vai!


Nós vamos poupar vocês do falatório, e vamos indicar alguns lugares onde você pode obter informações a respeito dessa biblioteca em C para desenvolver para MSX, usando o SDCC.

Primeiro, indicamos o post do blog do nosso chapa Emiliano Fraga, o MSX Outer Heaven, onde tem uma explicação bem detalhada, em português. Depois, você pode ler mais a respeito no MSX Resource Center. E por último, vá no site da Repro Factory, e baixe a biblioteca, o livro (que você pode comprar na Amazon) e um demo de um jogo que foi feito.

E vamos sentar e escrever código, diacho!

Programação em C… Por onde começar?

Então, você quer começar a programar em C para o seu micro clássico favorito mas não sabe por onde começar. Existem alguns tutoriais no Github do rby90 que traz tutoriais baseados em projetos para quem quer aprender a programar em C. Se este é o impulso que faltava para você começar a rabiscar código no SDCC, compilando-o para seu micro clássico… Considere-se empurrado.

Biblioteca do SDCC para o TMS9918A.

O SDCC é um compilador C para “dispositivos pequenos” (como diz no nome do mesmo, Small Device C Compiler), mas que pode ser usado para compilar código C para microprocessadores Intel MCS51 (8031, 8032, 8051, 8052, etc.), Maxim (Dallas), variações do DS80C390, os Freescale HC08 (hc08, s08), Zilog Z80 (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90) e os STMicroelectronics STM8. No momento estão acrescentando o suporte aos microcontroladores Microchip PIC16 e PIC18. A próxima versão será a 3.8.0, e tem versões para Windows (32 e 64 bits), Linux (32 e 64 bits) e Mac OS X. Já falamos antes dele aqui e em outros lugares também.

Então, existe muita gente que usa o SDCC para desenvolver para micros clássicos. E o usuário mvac7, no Github, colocou uma biblioteca de funções para o TMS9918A, o VDP do MSX 1 disponível para uso no SDCC.

Continue lendo Biblioteca do SDCC para o TMS9918A.

Quinta do Pitaco: Querendo programar em C para MSX mas não sabe por onde começar?

Um belo dia resolvi mudar
E fazer tudo o que eu queria fazer
Me libertei daquela vida vulgar
Que eu levava estando junto a você

Ops, é mais ou menos isso… Digamos que você cansou de ouvir bla-bla-bla sobre um monte de coisas nas comunidades retro, e resolveu fazer algo. Digamos que você viu o povo portar o Prince of Persia até pro Beeb, aí olha pro lado e vê gente na comunidade MSXzeira falando de carregar programas de fita cassete (em 2018!) e de viagens na maionese estelar, sobre o que os outros poderiam fazer para eles. Mais especificamente, você resolveu programar em C, e para MSX. E não sabe como começar. Bem…

De cara te recomendo a visita a essa wiki aqui. A HI-TECH C Compiler for CP/M fan WIKI tem bastante material para programação em C, usando o compilador HI-TECH C para CP/M. A empresa responsável por ele inclusive abriu o código-fonte outro dia, e está… Aonde? Adivinhe? Sim, no Github. Mas se você não quiser o código-fonte, pode dar um pulo no z80.eu pegar o compilador e o manual. Além, tem o script SpliceMSX, que faz o serviço sujo procê e instala o HI-TECH C Compiler for CP/M e configura tudo no seu Windows. Aí é sentar e usar.

Mas… Voltando à wiki, eu já te indico uma biblioteca apenas que faz valer a pena a olhada, a ESGFXLIB V9990. Sim, uma biblioteca (em desenvolvimento) para fazer uso do chip V9990. Assim dá para escrever código em C que use a GFX9000/Powergraph/Powergraph Light, que tal?

E se você quiser um exemplo, uma das mentes em baixa resolução que cometem esse podcast fez esse post no blog dele, falando sobre o port do aclock para o MSX, usando C. Enquanto ele não escreve algo aqui a respeito… Vão lá e dêem um pouco de pageviews para ele!

Falando nisso, alguém tem interesse em fazer uma iniciativa semelhante com Pascal? Se sim, largue um alô aí nos comentários. Estou com ideias… Voltarei a falar delas numa próxima quinta.

Aproveite o feriado para escrever código para MSX.

Seguem duas dicas rápidas:

  • Na página da dupla Dvik & Joyrex tem várias ferramentas usadas por eles para fazer seus demos, inclusive um player de música no formato PT3, com o código todo disponível em C.
  • Se você usa Linux e mais especificamente GNOME, conhece o gedit, que é o “bloco de notas” desse ambiente. Pois é, existe um plug-in para ele que permite que você controle o OpenMSX, além de syntax highlighting para Assembly de Z80.

Programar em C para MSX no Windows ficou mais fácil.

Não, não inventaram ainda uma ferramenta que leia os nossos pensamentos e converta para código C. Ainda não. Enquanto ela não chega, o Kumokosi anuncia a versão 0.5 alpha do SpliceMSX script.

Esse script instala um Hitech-C e arquivos relacionados para você emular um ambiente CP/M no seu Uíndous, para poder sentar e escrever código. A ideia do script é reunir todas as soluções para que esse processo seja mais rápido. É rodar e começar.

Eu acho sensacional, tanto que preciso sentar e escrever para vocês sobre como funciona minha solução para programar em Pascal no Linux, para MSX. Não esqueci, mas ainda vou por em execução.

Cortesia do Kumokosi e do KlaxMSX, via Twitter.