bocianu.atari.pl

Mad Pascal i Geany

Data publikacji:12.01.2018

W niniejszym poradniku pokażę jak skonfigurować sobie przykładowe środowisko pracy i jak skompilować nasz pierwszy program w Mad-Pascalu. Zatem do dzieła!

Przede wszystkim musimy pobrać sobie i skonfigurować nasz kompilator. Odsyłam do strony autora gdzie znajdziemy pliki binarne dla platformy Windows w najnowszych wersjach. W chwili pisania tego tekstu jest to wersja 1.5.8. Jeżeli akurat nie pracujemy na systemach z Redmond, a jesteśmy dumnymi posiadaczami linuksa, to zmuszeni jesteśmy własnoręcznie skompilować sobie pliki wykonywalne dla naszego systemu. Nie jest to trudne, na stronie autora znajdziemy dokładną instrukcję jak to zrobić.

Zakładam, że mamy już pobrane pliki ze strony oraz plik wykonywalny odpowiedni dla naszej platformy. Umieszczamy sobie powyższe pliki w jakimś ulubionym miejscu. U mnie jest to katalog: e:\atari\MadPascal i jego zawartość wygląda tak:

Rysunek 1

Pewnie zauważyliście dwa dodatkowe pliki których nie ma w paczce ze strony, build.bat i buildrun.bat? Przygotowałem je na bazie pliku @make.bat, ale uprzednio dopasowałem pod mój system. Zaraz pomogę Wam “skroić” podobne pliki pod Wasz komputer, co przyda się wam w dalszej części tego poradnika.

Najpierw zaglądniemy do pliku build.bat.

build.bat

@setlocal
@set PATH=%PATH%;e:\atari\MadPascal
mp.exe %1.pas
mads.exe %1.a65 -x -i:e:\atari\MadPascal\base -o:%1.xex
pause

Polecenie @setlocal w pierwszej linii nie jest konieczne, ale powoduje że wszystkie zmienne środowiskowe ustawione w tym pliku będą działały tylko lokalnie (nie zanieczyszcza globalnych zmiennych środowiskowych).

Druga linia powoduje dodanie do głównej ścieżki wyszukiwania systemu naszego katalogu z kompilatorem i modułami. Pozwala nam to (w obrębie tego pliku) wywoływać kompilator i asembler bez podawania ich pełnej ścieżki, niezależnie w którym katalogu nastąpi wywołanie pliku build.bat

Linia 3 to już wywołanie naszego kompilatora mp.exe gdzie %1 to pierwszy parametr wywołania pliku build.bat, a opcja -o powoduje wykonanie dodatkowej optymalizacji generującej krótszy i szybszy kod dla 6502. Warto zauważyć, że w wywołaniu doklejamy “ręcznie” domyślne rozszerzenie .pas do nazwy kompilowanego pliku. Czyli prawidłowe wywołanie do skompilowania pliku program.pas będzie wyglądało:

build.bat program 

rozszerzenie .pas zostanie doklejone automatycznie. Zdecydowałem się na takie rozwiązanie, bo umożliwia to późniejszą łatwą integrację z wybranym przeze mnie edytorem, ale o tym za chwilę. Wynikiem wywołania linii trzeciej będzie utworzenie pliku program.a65 zawierającego skompilowany i zoptymalizowany kod naszego programu w asemblerze.

Linia 4 to wywołanie asemblera, który przekonwertuje nasz plik program.a65 na binarny plik wykonywalny gotowy do uruchomienia. Opcja -x usuwa z kodu nieużywane procedury, -i wskazywać musi na lokalizację katalogu “base” Mad-Pascala zawierającego potrzebne do asemblacji biblioteki. Parametr -o powoduje, że nasz plik uruchamialny otrzyma rozszerzenie .xex. Zatem wynikiem wykonania linii czwartej będzie gotowy do uruchomienia plik wykonywalny: program.xex

Linia 5 powoduje oczekiwanie na wciśnięcie dowolnego klawisza. Nie jest konieczna, jednak dla swojej wygody dodałem ją, aby móc spokojnie podglądnąć komunikaty kompilatora i asemblera. Jest to szczególnie przydatne w wypadku wystąpienia jakichś błędów.

A teraz plik buildrun.bat, który różni się od poprzedniego tylko ostatnią linią

buildrun.bat

@setlocal
@set PATH=%PATH%;e:\atari\MadPascal
mp.exe %1.pas
mads.exe %1.a65 -x -i:e:\atari\MadPascal\base -o:%1.xex
e:\atari\Altirra\altirra64.exe %1.xex

Po kompilacji zamiast oczekiwania na wciśnięcie klawisza wywoływany jest emulator, który uruchamia nasz wynikowy plik. Tutaj oczywiście możemy wstawić inny ulubiony emulator, odpowiednio dopasowując ścieżkę.

Analogiczne pliki dla systemu linuks (ubuntu) wyglądają u mnie tak:

build.sh

#!/bin/bash
export PATH="/home/bocianu/madPascal:$PATH"
mp $1.pas
mads $1.a65 -x -i:/home/bocianu/madPascal/base -o:$1.xex

buildrun.sh

#!/bin/bash
export PATH="/home/bocianu/madPascal:$PATH"
mp $1.pas
mads $1.a65 -x -i:/home/bocianu/madPascal/base -o:$1.xex
atari800 $1.xex

Mając gotowe powyższe pliki możemy śmiało zabrać się za przygotowanie edytora. Ja polecam i opiszę jak skonfigurować edytor geany, którego używam z powodzeniem od dłuższego czasu i na windowsie i pod linuksem.

Edytor jest darmowy, i można go pobrać ze strony producenta: https://www.geany.org/. Znajduje się także w ogólnodostępnych repozytoriach dla większości dystrybucji linuksa. Geany ma domyślnie podświetlanie składni Pascala i wielu innych języków, więc nie wymaga na starcie prawie żadnych dodatkowych zabiegów, aby działać jak należy. Jedynym dodatkiem który się bardzo przydaje, jest przeglądarka plików w oknie bocznym, którą widać na powyższym obrazku. Możemy ją w prosty sposób dodać z menu Narzędzia -> Menedżer Wtyczek

Rysunek 3

I w zasadzie nie potrzebujemy już nic więcej aby napisać swój pierwszy program w Pascalu, zatem do dzieła! Utwórz nowy plik naciskając przycisk menu lub Ctrl+n. Następnie wprowadź (lub opcja dla leni - przeklej) następujący kod:

program hello;
uses crt;
begin
    Writeln('Hello ATARI!');
    ReadKey;
end.

Teraz zapisz dzieło w jakimś wybranym katalogu (Ctrl+s) pod dowolną nazwą pamiętając o obowiązkowym rozszerzeniu .pas. Na przykład niech będzie to hello.pas U mnie wygląda to tak:

Rysunek 4

Pewnie już zauważyliście przyciski Skompiluj i Wykonaj? Jak nie, to nietrudno je znaleźć w menu. Prowadzą też do nich łatwe skróty klawiaturowe: Skompiluj - F8, Wykonaj - F5. Polecam zapamiętać - przyda się na przyszłość. Jednak jeżeli już odważyliście się je nacisnąć, to pewnie zauważyliście również, że nic specjalnego się nie stało. Ewentualnie dostaliście w oknie kompilatora komunikaty o błędach. I tutaj przychodzą nam z pomocą przygotowane wcześniej pliki build.bat (skompiluj) buildrun.bat (wykonaj). Wystarczy, że podłączymy je jako akcje do naszych przycisków. A robimy to bardzo łatwo wchodząc w menu Zbuduj -> Zdefiniuj polecenia budowania:

Rysunek 5

Wpisujemy u siebie w odpowiednie pola (modyfikując odpowiednio ścieżkę) powyższe polecenia. Wartość %e zostanie przez edytor podmieniona na nazwę pliku bez rozszerzenia, czyli tak jak potrzebujemy. Pozostałe pola mogą pozostać puste. Naciskamy OK i gotowe!

Spróbujmy skompilować nasz program naciskając F8. Jeżeli wszystko dobrze skonfigurowaliśmy to, powinniśmy zobaczyć w dolnej zakładce Kompilator przelatujące szybko komunikaty wyglądające mniej więcej tak:

Rysunek 6

Kompilacja ukończona pomyślnie! Brawo. Pozostało tylko uruchomić nasz program. Naciskamy F5.

Rysunek 7

Tadam! Napisaliśmy i uruchomiliśmy nasz pierwszy program w Mad-Pascalu! Jeżeli coś poszło nie tak, to sprawdź, czy prawidłowo podałeś ścieżki do katalogu MadPascala i emulatora w plikach .bat, bo to najczęstszy problem.