Continuamos confinados aos nossos domicílios, em quarentena. A pandemia do coronavírus está atingindo seu auge no Brasil e para encher o tempo, vamos fudebar. Afinal, fudebar é preciso. Então, eu comecei a reaprender Pascal, escrever código (recomecei do início, fazendo programas banais) e a tocar um projetinho simples que eu tenho… No futuro, espero trazer pra vocês maiores novidades.
Mas não é pra falar das minhas desventuras que eu vi aqui, mas sim pra trazer uma atualização importante no esquema que eu falei na semana passada.
Nesse processo de aprendizado, descobri uma coisa desagradável: O TP33F, feito pelos holandeses, tem vários bugs no tratamento de arquivos. Como o meu primeiro projeto mexe com arquivos tipados, eu teria que compilar o dito cujo no Turbo Pascal 3.0 CP/M-80, da Borland, e seguir uma sequência de passos para tal.
Como eu prefiro automatizar tudo, para garantir que vai funcionar sempre, fiquei pensando se tinha uma maneira de repassar ao OpenMSX a sequência de teclas que eu teria que digitar para que o programa fosse compilado. A documentação do OpenMSX é muito extensa… E muito árida. Falta exemplos e dicas… E eu continuo sabendo nada de TCL. Mas de shell eu entendo um pouco.
Conversando com os meus comparsas do podcast que vocês ouvem, pesquisei e descobri que tem uma maneira. Logo, fiz algumas alterações e melhorias. Agora, quando você pressiona F8 no Geany, ele executa um script em shell que altera uma versão do script TCL, com tags. Basicamente, as tags são substituídas, e o emulador é executado com esse script em TCL.
Logo, o script em shell altera o script em TCL e executa o OpenMSX. O script TCL executa o Turbo Pascal, faz as devidas alterações no procedimento padrão dele (não carrega as mensagens, altera para compilar o arquivo para .COM), carrega o arquivo, compila-o, sai do TP3 e o executa. Isso, na maior parte do tempo, a 10 mil por cento de velocidade. Fiz alguns testes com alguns programas e deu certo. É possível que você precise ajustar no script em TCL (agora, original_compilacao.tcl) a quantidade de tempo em que cada função será executada. Eu comentei tudo para facilitar a vida de quem for olhar. Os \r são os ENTER que digitamos, e foi preciso um pouco de trabalho com sed para que as barras (/) aparecessem (viva o sed).
Ah, vocês querem um vídeo, né? Então toma.
Eu continuo brigando com o git, tanto que quem leu o post anterior e leu esse agora, deve ter notado que eu passei de um repositório no GitHub para um pacote zip. Pois é, talvez na hora em que você ver isso, eu tenha uma atualização do pacote, ou já esteja no GitHub ou no GitLab. Preciso aprender como ele funciona, mas não achei um tutorial que realmente me ajudasse. Talvez eu precise aprender sobre versionamento, não sei…
Mas de qualquer forma, atualizei o ZIP, está aqui o link. Em breve espero ter um repositório no github com as modificações. E o meu projeto em Pascal? Segredo… Mas não é jogo, e já peguei uns livros pra ler. Olha eles aqui:
Espero para breve ter novidades. E aí, gostaram da alteração?
PS: O engraçado é que eu estou pegando a apostila de Pascal que eu criei para os meus alunos… E estudando por ela, fazendo os exercícios que eu passei… É quase um inception.
Ricardo, todo mundo que escreve código deveria saber sobre versionamento. Não queria cornetar, mas você levantou a bola… E boa sorte aí!