Mam nadzieje, że ten artykuł zachęci Was do nauki języka AmigaE. Jest to język, którego można bardzo łatwo się nauczyć, wystarczy tylko chcieć...
Aby zainstalować AmigaE, należy najpierw rozpakować archiwum z jego zawartością, stworzyć katalog np. AmigaE i przegrać całe archiwum. Następnie należy stworzyć plik z przypisami np. niech to będze plik o nazwie Start:
Assign AmigaE: {miejsce gdzie się znajduje cały pakiet} Assign Src: AmigaE:Src Assign EMODULES: AmigaE:Modules Assign Rexx: AmigaE:Rexx Assign Docs: AmigaE:Docs Assign Bin: AmigaE:Bin Assign Tools: AmigaE:tools sys:system/rexxMast ; Uruchom Arexx-a C:CEd ; Uruchom Ceda lub wpisz inny ulubiony przez ciebie edytor tekstu
Ustaw flagę pliku Start na: SRWED. Następnie albo dopisz do menu użytkownika w Opusie 5 lub w ToolsDeamonie menu z tekstem np. AmigaE i dostępem do tego pliku lub dorób ikonkę...
Teraz najważniejsza część instalacji czyli łatwe kompilowanie.
Przykład dla CED-a:
Tworzymy plik w którym znajdzie się program w Arexx, może on wyglądać
tak:
/* Ced->Rexx->Amiga_E 3.1a by Wzp Version 1.0 1996.05.16 */ ADDRESS 'rexx_ced' OPTIONS RESULTS STATUS 19 SAY 'Compile Start' SAY 'Compiling : "'result'"' ADDRESS COMMAND 'bin:ec "'result'"' ADDRESS 'rexx_ced' SAY 'Compile Finish' exit 0
Zapisujemy go np. pod nazwą : ecompilev01
Z menu CED-a wybieramy: Instaluj komendę DOS-u/Arexx-a
w Numer Polecenia wybieramy najbardziej nam pasujący Fxx (1-10)
następnie wprowadź komendę DOS-u wpisujemy dostęp do naszego stworzonego pliku ecompilev01 i zapisujemy konfigurację.
I to już wszystko... Mamy zainstalowany i w pełni działający kompilator E...
Cały pakiet (archiwum) można znaleźć na głównej stronie autora E, na stronach o tym języku po polsku lub na Aminecie oraz prawdopodobnie na kompaktach ACS.
ShowModule
Programik pokazuje co znajduje się w danym module, np. "showmodule emodules:asl", spowoduje wyświetlenie opisu biblioteki asl.library.
ShowHunk
Pokazuje budowę wszystkich wykonywalnych plików oraz objectów (".o").
IConvert
Konwertuje pliki z końcówką ".i" (includes'y asemblera) na moduły E.
Pragma2Module
Konwertuje pliki SAS/C pragma na moduły E.
ShowCache
Pokazuje jakie moduły znajdują się w pamięci (wgrane przez kompilator).
FlushCache
Usuwa z pamięci moduły (wgrane przez kompilator).
O2M
Przerabia pliki nagrane jako "object", np. przy użyciu AsmOne na moduły E.
EBuild
Jest klonem "Make" z C. I działa tak samo.
EDBG
Debugger, aby go użyć musisz skompilować kod źródłowy z parametrem DEBUG.
EC
Kompilator/Asembler/PreProcessor/Linker
Dokładny opis wszystkich tych programów w kolejnych odcinkach.
LARGE
kompilowanie dużych kodów źródłowych, np. dodasz do kodu źródłowego obrazek 1MB i już musisz użyć tej opcji.
ASM
E staje się zwykłym asembler MC68k.
NOWARN
Kompilator nie daje żadnych ostrzeżeń typu: użyłeś a=1, a powinno być a:=1
DEBUG
Dodaje do kodu wynikowego, kod źródłowy dla Debuggera
QUIET
Jeśli nie ma błędów lub ostrzeżeń EC nie wypisze nic...
Na zachętę możemy napisać bardzo prosty programik:
/* Hello World in E!! */ PROC main() WriteF('Hello, World!n') ENDPROC
Po jego skompilowaniu i uruchomieniu na naszym ekranie monitorka powinien ukazać się napis: Hello, World!
Na początku jest komentarz, czyli */ (początek_komentarza) */ (koniec_komentarza). Linie komentarza są ignorowane przez kompilator. Następna linijka to procedura PROC (amos/pascal - procedure) main(), jest to procedurka, która musi wystąpić w każdym programie jaki napiszesz w tym języku. To jest właśnie miejsce z którego następuje uruchomienie programu. Kolejna linijka to komenda WriteF (amos - Print; pascal - Write), powoduje ona wyświetlenie na ekranie tekstu. Ostatna linijka zawiera komendę ENDPROC, która musi wystąpić zawsze na końcu danej procedury, czyli jeśli użyjesz PROC to musisz użyć również ENDPROC. Dokładnym omówieniem tych komend zajmiemy się w następnym odcinku.
Dziesiętne - Decimal
Wartości dziesiętne składają się za znaków "0" .. "9", mogą być poprzedzone minusem (czyli być liczbami ujemnymi).
Np. 1,100,-12,1024
Szesnastkowe - Hexadecimal
W systemie szesnastkowym wartości składają się ze znaków : "0" .. "9" i dalej z liter "A" .. "F" (lub "a" .. "f"), są poprzedzone znakiem "$".
Np. $FC, $DFF190, -$A43
Binarne - Binary
Wartość liczb binarnych zaczyna się zawsze znakiem "%" i używa się tylko cyfr "1" i "0" (to chyba oczywiste?)
Np. %001100, %11
Zmiennoprzecinkowe - Float
W zapisie, liczby zmiennoprzecinkowe różnią się od normalnych liczb dziesiętnych tym, że mają "." (znak kropki) do seperacji ich dwóch części (na matematyce to chyba było, no nie?).
Jedna z tych części może być ominięta (.1;2.) ale nie obie!. Wykorzystywanie ich różni się od "zwyczajnych" liczb, o tym będzie osobny odcinek.
Np. 3.14159, .1 (=0.1), 1. (=1.0)
Tekstowe - String
String składa się ze znaków ASCII, zaczyna się i kończy znakiem "'".
Wartość stringu jest wskaźnikiem do pierwszego znaku w stringu.
Wszystkie stringi kończą sie w E bajtem zero, np. $35,$37,$35,$00
Np. 'Bla', 'Ala ma kota?'
Znaczki jakie mogą wystąpić w Stringu:
Większość modułów znajdziecie na tej stronie lub na kompaktach np. ACS. Jeśli zaś chodzi o programy z kodami źródłowymi to najlepiej skorzystać z Aminetu (lub kompaktów z serii Aminet). Niezbędnę będą też autodoc'i np. można je znaleźć na kompakcie AMIGA DEVELOPER CD.
Wystarczy użyć do tego polecenia: MODULE {nazwa modułu} Polecenie wgrywa moduł do pamięci, moduł jest to binarny plik zawierający informacje o bibliotekach, stałych i czasami funkcjach. Użycie modułów pozwala na używanie np. funkcji/bibliotek nieznanych kompilatorowi. Oto przykładzik:
MODULE 'Asl', 'libraries/Asl' PROC main() DEF req:PTR TO filerequester IF aslbase:=OpenLibrary('asl.library',37) IF req:=AllocFileRequest() IF RequestFile(req) THEN WriteF('File: "s" in "s"n',req.file,req.drawer) FreeFileRequest(req) ENDIF CloseLibrary(aslbase) ENDIF ENDPROC
Po uruchomieniu tego programiku na ekranie powinien pojawić się requester wyboru pliku. W module 'asl' zawarty jest opis biblioteki asl, a w module 'libraries/asl' znajduje się opis struktury filerequester.