MAE: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
mNie podano opisu zmian |
|||
| Linia 4: | Linia 4: | ||
== Charakterystyka ogólna == | == Charakterystyka ogólna == | ||
*używa rozszerzonej pamięci do przechowywania | *używa rozszerzonej pamięci do przechowywania kodu źródłowego, dzięki czemu użytkownik ma około 40 kilobajtów bufora na źródło plus prawie drugie tyle na tablicę symboli; | ||
*obsługuje makrodefinicje, asemblację warunkową i etykiety lokalne | *obsługuje makrodefinicje, asemblację warunkową i etykiety lokalne; | ||
*argumenty makrodefinicji podstawiane są jako ciągi tekstowe, przez co mogą mieć składnię taką, jak argumenty rozkazów (ważne zwłaszcza w trybach pośrednich i indeksowanych) | *argumenty makrodefinicji podstawiane są jako ciągi tekstowe, przez co mogą mieć składnię taką, jak argumenty rozkazów (ważne zwłaszcza w trybach pośrednich i indeksowanych); | ||
*obsługuje asemblację dla procesora [[65C816]] (oczywiście [[6502]] też) | *obsługuje asemblację dla procesora [[65C816]] (oczywiście [[6502]] też); | ||
*ma dosyć wygodny i bogaty w funkcje edytor działający w całości za pośrednictwem systemowego urządzenia "E:"; edytor ten w ostatnich wersjach (powyżej 1.1) niestety nie jest pozbawiony błędów | *ma dosyć wygodny i bogaty w funkcje edytor działający w całości za pośrednictwem systemowego urządzenia "E:"; edytor ten w ostatnich wersjach (powyżej 1.1) niestety nie jest pozbawiony błędów; | ||
{{grafr|mae64kol.png}} | {{grafr|mae64kol.png}} | ||
*z poziomu debugera dostępne są etykiety zawarte w | *z poziomu debugera dostępne są etykiety zawarte w kodzie źródłowym; | ||
*rozpoznaje do | *rozpoznaje do 15-go znaku w etykiecie; | ||
*może działać także w trybie 64 (w trybie graficznym, na obrazku obok) i 80 kolumn (w trybie graficznym | *może działać także w trybie 64 (w trybie graficznym, na obrazku obok) i 80 kolumn (w trybie graficznym, albo z użyciem [[XEP80]] lub [[VBXE]]). | ||
Najnowsza wersja to 1.3. | Najnowsza wersja to 1.3. | ||
Wersja z 9 lip 2015, 19:26
... czyli Macro-Assembler-Editor - środowisko programowania dla Atari XL/XE autorstwa Johna Harrisa składające się z edytora, asemblera i debugera.
Charakterystyka ogólna
- używa rozszerzonej pamięci do przechowywania kodu źródłowego, dzięki czemu użytkownik ma około 40 kilobajtów bufora na źródło plus prawie drugie tyle na tablicę symboli;
- obsługuje makrodefinicje, asemblację warunkową i etykiety lokalne;
- argumenty makrodefinicji podstawiane są jako ciągi tekstowe, przez co mogą mieć składnię taką, jak argumenty rozkazów (ważne zwłaszcza w trybach pośrednich i indeksowanych);
- obsługuje asemblację dla procesora 65C816 (oczywiście 6502 też);
- ma dosyć wygodny i bogaty w funkcje edytor działający w całości za pośrednictwem systemowego urządzenia "E:"; edytor ten w ostatnich wersjach (powyżej 1.1) niestety nie jest pozbawiony błędów;
- z poziomu debugera dostępne są etykiety zawarte w kodzie źródłowym;
- rozpoznaje do 15-go znaku w etykiecie;
- może działać także w trybie 64 (w trybie graficznym, na obrazku obok) i 80 kolumn (w trybie graficznym, albo z użyciem XEP80 lub VBXE).
Najnowsza wersja to 1.3.
Wady programu
Jedynymi wadami MAE są błędy w edytorze i kompilatorze.
Błędy w edytorze
- Wyszukiwanie (Ctrl/F) nie wyszukuje wszystkich miejsc wystąpienia tekstu zgodnego z podanym wzorcem. Błąd ten wystepuje w MAE 1.2 oraz 1.3, nie ma go natomiast wersja 1.1 i wcześniejsze.
Błędy w kompilatorze
- Użycie etykiety o wielkości ponad 15 znaków, zwłaszcza kiedy przypisuje się jej wartość przez operator '=', może powodować zawieszanie się podczas asemblacji. Błąd ten nie występuje w MAE 1.0.
- LDA ($1234),Y jest akceptowane bez zastrzeżeń, mimo że nie ma takiego trybu adresowania. Kod wynikowy jest jak po LDA ($34),Y.
- Na LDA #$<1234 program powinien zgłosić błąd składni, nie robi tego jednak. Kod wynikowy jest jak po LDA #$01.
- Poniższy kod powoduje złe działanie:
AA = BB BB = CC CC = 1 .OR $0600 LDA AA
Rozkaz LDA AA traktowany jest jako LDA 32768. W rzeczywistości kompilator powinien zgłosić błąd, gdyż etykieta AA pozostaje niezdefiniowana w trakcie drugiego przejścia asemblacji.
Zobacz też
- Instrukcja obsługi (po angielsku)

