Neste ponto estou usando o PC para editar e o openMSX para compilar e testar.
Compilando um arquivo
O Turbo Pascal do MSX Clube, versão 3.3f, não tem o ambiente integrado, apenas o compilador, porém libera mais memória para a compilação.
A compilação não podia ser mais trivial, edite um arquivo .PAS no seu editor preferido e compile com:
A:>TPC arquivo.pas
Compilando pelo BOXER via User Tools
No BOXER crie uma "User Tool" para com uma combinação de teclas, abrir o openMSX e compilar o programa.O openMSX permite criar scripts TCL e neste script podemos passar alguns comandos, o emulador também permite passagem de parâmetros por linha de comando, o que facilita a tarefa.
Por exemplo, montar automaticamente o diretório onde estamos gravando os arquivos fontes e executar um .BAT que já compila em modo acelerado.
# Pascal Compiler Copyright (C) since 1972 by Satanico, Inc.
variable scriptPath [file dirname [info script]] ;
set hdFile $scriptPath/pascal.img
set fdFile $scriptPath/wMDL-LIB
bind F6,release "set throttle on"
bind F6 "set throttle off"
bind F7 type "dir\r"
set power off
# ext ide
# ext ram512k
# hda $hdFile
diska $fdFile
set power on
set fullspeedwhenloading on
set throttle off
na primeira parte algumas funções não estão sendo usadas, como o HD e os comandos TYPE.Colocar este script no mesmo diretório do programas .PAS, no meu caso C:\MSX\PASCAL\wMDL-LIB, o script inicia o MSX, monta o diretório como disk A:, seta a aceleração no máximo.
Para completar, criar um AUTOEXEC.BAT que compila, colocar o MSX-DOS 1 e o Turbo Pascal 3.3f, asism o openMSX vai dar boot como se fosse um diskete real, e iniciar o AUTOEXEC:
TPC wdldemo.pas
wdldemo
No BOXER criar uma "User Tools" chamada openMSX ("Configure", "User Tools")- Name: openMSX
- Description: Calls openMSX to compile
- Program: c:\msx\openmsx.exe
- Working Directory: C:\msx\pascal\wMDL-LIB
- Command: -machine Boosted_MSX2_EN -script $Path\pascal.tcl
Em "Configure", "Keyboard", marcar para que esta "User Tool" tenha o atalho [CTRL]+[ALT]+[P]
Agora ao pressionar a combinação de teclas, o BOXER vai executar o openMSX, passando o script pascal.tcl que monta o diretório do projeto e inicia o BOOT do MSX-DOS, compilando o programa conforme o AUTOEXEC.BAT, na velocidade máxima.
Macro para Compilacao no BOXER
Criar Macro em "Tools", "Macros", "New"
// compila o programa .PAS corrente
// usando o openMSX e um script TCL
// (c) Satanico, Inc.
macro compila()
{
string path,fname,name,output,compiler,exeparam;
Filename(fname);
path=fname;
name=fname;
ExtractFilePath(path);
ExtractFileNameAndExt(fname);
ExtractFileNameOnly(name);
strcpy(output,"");
strcat(output,path);
strcat(output,name);
strcat(output,".tcl");
strcpy(compiler,"c:\\retro\\msx\\openmsx.exe");
strcpy(exeparam," -machine Boosted_MSX2_EN");
strcat(exeparam," -script ");
strcat(exeparam,output);
Save;
New;
PutString("# Pascal Compiler Copyright (C) since 1972 by Satanico, Inc.\r");
PutString("variable scriptPath [file dirname [info script]] ;\r");
PutString("\r");
PutString("set hdFile $scriptPath/pascal.img ;\r");
PutString("set fdFile $scriptPath/ ;\r");
PutString("\r");
PutString("proc compila {} {\r");
PutString(" type \"tpc ");
PutString(fname);
PutString("\\r\\r\"\r");
PutString("}\r");
PutString("\r");
PutString("\r");
PutString("bind F6,release \"set throttle on\"\r");
PutString("bind F6 \"set throttle off\"\r");
PutString("bind F7 type \"dir\r\"\r");
PutString("set power off\r");
PutString("# ext ide\r");
PutString("# ext ram512k\r");
PutString("# hda $hdFile\r");
PutString("diska $fdFile\r");
PutString("set power on\r");
PutString("set fullspeedwhenloading on\r");
PutString("set throttle off\r");
PutString("after 3000 compila\r");
SaveAs(output);
close;
RunProgram(compiler,exeparam,"",0);
}
Salvar como compilaPascal1. O 1 é importante pois vai ser usado para ligar um atalho de teclado a esta macro, no caso a Macro 1.
"Configure", "Keyboard". Escolher "Run Macro 1" em "Commands" e em "Assigned keys" colocar [CTRL]+[ALT]+[M] e "Change"
Visual Studio Code
Exite uma opção para compilar usando o Visual Studio Code. O usuario MRC SdC criou um template para programação Turbo Pascal. Dá para editar o texto no VSC, e compilar usando o vDOS/TP 3 para PC, ele mesmo cria o DSK com o pacote compilado. Eu estou implementando funções novas neste pacote, então a versão para Download TPascal-MDL contém as minhas atualizações e usa a LIB MDL com meus updates e traduções como base para programação.Basta descompactar o arquivo em uma pasta (se usar a original, so precisa da pasta TemplateV1), no VSC basta abrir um "Folder" e apontar para esta TemplateV1 e o ambiente está quaser pronto.
Para configurar, edite o arquivo global_var.bat
- set SourceFile, DiskName e COMname, voce pode alterar para um nome apropriado ao seu projeto. o padrão e PROGRAM, PROGRAM.DSK e PROGRAM, na minha versão é: mdl, mdl.dsk e mdl.
- O vDOS já está no template, mas caso queira usar sua própria versão, mude o set vDOS (originalmente ele fica na pasta TemplateV1/bin)
- Em seguida emulPath aponta para o executável do openmsx, uma versão fica na pasta TemplateV1/bin, mas eu uso minha própria versão e aponto para, por exemplo c:\msx\openmsx.exe. Pode-se usar outros emuladores, por exemplo o fMSX
- em emulArgs, colocamos os parâmetros de chamada do emulador, a opcao -diska já é definida e não precisa/pode ser alterada, sempre leva o nome definido em DiskName. Por exemplo: set emulArgs=-machine Boosted_MSX2_EN -scipt pascal.tcl
- Source, Tools e Build referem aos diretórios usados para edição, compilação e geração de executável.
- Por fim, preauto e posauto são comandos que você pode definir para executar antes do seu programa e após o seu programa
make.bat contém todos os comandos para efetuar a compilação, pode-se adicionar outros comandos aqui, por exemplo eu alterei para copiar além do .COM, os .0?? referentes aos overlays (originalmente não manda estes caras), inclui tambem cópia de arquivos .x?? que é a extensão que defini para arquivos de dados dos meus programas. Ele usa o dsktool do RicBit, mas pode ser trocado por outros programas, por exemplo, no Linux/Unix eu uso o Disk Management Tools do fMSX.
Minha versão adicionalmente copia mais arquivos auxiliares para o disco de destino, e também criei um segundo disco (diskb) que contém ferramentas úteis para testar o programa, como editores e compilador Pascal para ajustes rápidos e testes.
A compilação é espartana, mas eficiente, usa o VDOS para chamar o compilador 3.0 do MS-DOS, compila no formato CHN, e depois junta o RUNTIME do MSX com o CHN em um .COM, querendo alterar algo, mude a parte que gera o AUTOEXEC.TXT no vDOS.
Após abrir a pasta TemplateV1, basta editar o arquivo PROGRAM.PAS e começar a programar, para compilar basta pressionar [CTRL]+[SHIFT]+[B], em caso de erro o compilador para e os erros são apontados pelo VSC, clicando no erro ele abre o arquivo na linha do erro.
Todos os includes podem ser colocados na pasta SOURCE, na minha versão a pasta SOURCE já tem a MDL-LIB 3, no meu template também tem uma pasta chamada libs, onde coloquei outras bibliotecas conhecidas, como a do Kari e a do OldSkolTech.
Optando pela minha versão, tenha em mente que e um trabalho em progresso, pode acontecer de alguns recursos não estarem 100% ok e as versões são alteradas com frequência, as vezes mais de uma vez por dia.
Na minha versão tambem tenho o script pascal.tcl, é um script para ser carregado com o openMSX, nele incluo algumas funções e macros para auxiliar na compilação, como por exemplo a tecla [F6] para tootle momentâneo enquanto pressionada.
Outra coisa legal e incluir uma extensão para destacar palavras chaves do pascal, como o PASCAL do Fragnani
MDL-LIB 3.0
Para me acostumar com o Pascal, qeria uma LIB que não fosse muito complexa, ai lembrei da MDL-LIB criada pelo MDL-Soft em 1990, e atualizada em 2004, além de se tornar domínio público. Eu peguei a versão 2.2 e traduzi para português, adicionalmente estou incluindo novas funções.A vantagem dela é a simplicidade e paridade com o MSX-BASIC, a desvantagem é falta de alguns recursos mais avançados e velocidade, que é no máximo igual ao MSX-BASIC, até porque usa o famoso método CALBAS.
Uma coisa bacana é ela ter suporte para MSX 2.0. A primeira função que incluí foi a PLAY, ausente na versão original, ela por sua vez foi adaptada da versão da Revista MCM.
Para usar a MDL, o mínimo necessário é incluir o arquivo MDLLIB.PAS ($I MDLLIB.PAS} logo no começo do seu programa, os outros arquivos devem ser incluídos conforme necessidade e versão do MSX (1 ou 2).
Os arquivos MDLINTRO.PAS e MDLDEMO.PAS são boas opções para tentar entender a bibilioteca, se trata de um DEMO que mostra praticamente todas as funções.
Downloads
- pascal-msx-pad.zip: MSX Pad e MSX Pad Reviewed, instala em Windows mais novos e serve como um ambiente basico para programacao Pascal, tem algumas libs interessantes.
- TurboPascal.pdf: Manual Consolidado e indexado do Turbo Pascal 3.0, adicionais: Turbo Tutor 2.0, Pascal para Programadores BASIC e MCCM Turbo Pascal.
- msx-pascal: Template do Pascal 3 para Editar e Compilar no PC, via Visual Studio Code, versão original para Windows.
- wMDL-LIB.zip: MDL Lib 3.0, fork da MDL-LIB 2.2, com tradução para Português e adição de outras funções.
- Visual Studio Code: Downloads das versões Windows/Linux do VSC.
- TPascalFull.zip: Versão do template para VSC. 1Gb+ pois contém alguns livros e muitas bibliotecas.
- TPascalLite.zip: Versão capada da FULL, não tem a documentação e tem menos LIBs, apenas as mais importantes
- TPascalMDL.zip: Versão LITE porém adaptada para ja trabalhar com a MDL-LIB
Nenhum comentário:
Postar um comentário