Na página do pessoal da PC Engines (uma empresa suíça especializada em computação embarcada — e obviamente em menor escala) há um artigo bastante interessante sobre as entranhas da geração do código compilado no Turbo Pascal 3.0 com detalhes sobre a estrutura do binário produzido, como o compilador converte alguns comandos e, claro, dicas de como utilizar este conhecimento acelerar seu programa.
( GDMSX no Google+ )
Tenho um envolvimento emocional com o Turbo Pascal 3.0
No distante ano de 1988 eu resolvi desenvolver um programa PERT/CPM para servir de modelo de estudo em um trabalho de graduação da FAU-USP (não era eu que estava me graduando, queria fazer o programa apenas para ajudar no estudo das técnicas de gerenciamento de projeto). Na época eu tinha um Expert 1.1 e comecei com um programinha basic de menos de cem linhas publicado em um artigo da Micro Sistemas e rapidamente resolvi portar para outra linguagem.
Optei pelo Turbo Pascal 3.0 porque o mesmo compilador estava disponível para DOS e era de longe o mais prático compilador para microcomputadores na época. Eu fazia o programa no meu MSX em casa, mas quando ia mostrar a colegas na Universidade levava os fontes e recompilava nos PCs da sala de micros dos alunos no Instituto de Biociências (onde tinha concluído minha graduação poucos anos antes). O programa compilava sem erros e rodava lindamente no PC, exatamente como fazia em meu MSX.
Essa portabilidade era permitida porque a formatação dos disquetes do MSX era igual à do PC e o compilador Turbo Pascal 3.0 do PC essencialmente igual ao do MSX.
A única diferença era que no PC o programa rodava em metade da tela, já que tinha 80 colunas e o meu MSX, sem o cartucho de expansão, tinha só 40 colunas. Mas isso acabou sendo uma grande lição para mim. Fiz todos os parâmetros e cálculos de tela dependente de uma variável com o número de colunas da tela e uma mudança nesse valor permitia que o programa todo fosse ajustado à tela do PC sem maiores alterações. Uma verdadeira lição de programação. Posteriormente em minha vida profissional encontrei diversos profissionais que não aplicavam esse simples conceito de parametrização, gerando horas e horas de trabalho inútil, adaptando programas mal feitos.
No ano seguinte, 1989, eu fiz o curso de estruturas de dados no IME-USP e usei o mesmo esquema. O professor dava exercícios para serem feitos em Pascal (que foi a linguagem utilizada em quase todo o curso, a exceção de uma spoucas aulas de LISP no finalzinho) e todo mundo usava o Turbo Pascal 3.0, que dominava o ambiente acadêmico naquela época. Eu fazia os exercícios em casa no meu MSX e recompilava os fontes nos PCs do IME, sem ter um único problema ao longo de todo o semestre.
Não me lembro de ter sido comentada essa compatibilidade de formatação de disquetes entre o MSX e o PC no podcast (e olha que eu ouví todos os episódios, muitos deles diversas vezes). Acho que valeria um comentário sobre essa característica, que era usada inclusive como apelo de venda do MSX no final da década de 80.