Donkey.bas tem 45 anos – 131 linhas de glória

Uma portagem para o navegador de DONKEY.BAS, um jogo BASIC de 131 linhas famoso por vir incluído nos primeiros IBM PC e co-escrito por Bill Gates, está a despertar nostalgia pela simplicidade e acessibilidade da computação doméstica dos anos 1980. Os comentadores recordam como aprenderam a programar ao editar jogos incluídos como DONKEY.BAS, GORILLA.BAS e NIBBLES.BAS, trocar listagens datilografadas de revistas e explorar o hardware de som e gráficos da época. A conversa também destaca esforços modernos para emular fielmente QBasic e GW-BASIC no navegador, contrastando esses ambientes “com tudo incluído” com as toolchains atuais, mais complexas e carregadas de dependências.

Portagem para o navegador e feedback de jogabilidade

  • Portagem de DONKEY.BAS para o navegador, admirada por recriar um jogo completo em ~131 linhas do BASIC original.
  • Alguns utilizadores relatam bugs de renderização (flicker severo em tamanhos específicos da janela no Firefox/macOS); um pull request ligado afirma corrigi-los.
  • A deteção de colisão original é descrita como inerentemente bugada: mudanças de faixa podem provocar um impacto mesmo depois de aparentemente ter passado o burro, o que coincide com o comportamento do código clássico (linha 1750).
  • A portagem moderna adiciona extras: modo de batota, possibilidade de jogar como o burro e easter eggs baseados em imagem (por exemplo, foto de um burro numa derrota pesada, foto de Bill Gates em muitas vitórias).

BASIC, QBasic e projetos de emulação

  • Um grande subthread detalha um projeto QBasic/QuickBasic 4.5 de alta fidelidade no navegador:
    • Implementa uma CPU virtual e uma camada de abstração de hardware.
    • Emula VGA, múltiplos modos de ecrã, acesso à VRAM, páginas ocultas, esperas de vsync, chamadas BIOS, interrupções (incluindo rato via int 33h), PEEK/POKE e até um modem e uma impressora virtuais.
    • Foi concebido como um ambiente autossuficiente e fiel à época, em contraste com o DOSBox, visto como menos completo em termos de dispositivos e mais difícil para uso casual.
  • Interesse em implementações relacionadas de BASIC: forks do GW-BASIC, pcBasic (emulador de GW-BASIC em Python) e GAMBAS como sucessor espiritual do Visual Basic.

Hardware antigo, som e armazenamento

  • Discussão sobre os altifalantes dos primeiros IBM PC versus o áudio mais rico da portagem. As máquinas originais tinham simples altifalantes dinâmicos, mas os demos levaram-nos surpreendentemente longe (reprodutores de MOD para PC speaker, intros de jogos, “Realsound”, etc.).
  • Notas sobre tecnologias alternativas de altifalante (eletrostática, piezo, magnética planar).
  • Recuperação de programas antigos do QBASIC de disquetes de 5.25": diz-se que os suportes de 5.25" envelhecem relativamente bem; Greaseweazle é recomendado para leituras magnéticas brutas.

Nostalgia e aprendizagem de programação

  • DONKEY.BAS, GORILLA.BAS e NIBBLES.BAS são repetidamente citados como a primeira exposição à programação:
    • As crianças descobriam o código-fonte ao premir uma tecla e depois modificavam explosões, gravidade, deteção de colisão ou vidas para “fazer batota”.
    • Listagens BASIC em revistas e programas de piada simples fomentavam a experimentação.
  • GORILLA.BAS e NIBBLES.BAS são recordados como “drogas de entrada” incluídas de fábrica em máquinas com DOS 5+ numa era em que os jogos comerciais eram caros ou escassos, dependendo da região.

Simplicidade, ferramentas e “o que perdemos”

  • Vários comentários elogiam os ambientes BASIC antigos como compactos, completos e acessíveis, em comparação com as pilhas modernas cheias de dependências.
  • Outros observam que, embora BASIC fosse uma linguagem tecnicamente fraca, os sistemas da era DOS (CONFIG.SYS/AUTOEXEC.BAT, diretórios autossuficientes) tornavam fácil compreender e corrigir a própria máquina.
  • Comparações com SDL, raylib, Godot, Unreal, Python e VB/GAMBAS destacam que os ecossistemas modernos são muito mais poderosos, mas menos imediatamente transparentes e divertidos.