MAE

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 07:08, 7 sie 2008
KMK (Dyskusja | wkład)

← Previous diff
Wersja z dnia 17:26, 9 lip 2015
KMK (Dyskusja | wkład)
(Charakterystyka ogólna)
Next diff →
Linia 4: Linia 4:
== Charakterystyka ogólna == == Charakterystyka ogólna ==
-*używa rozszerzonej pamięci do przechowywania części źródła i tablicy etykiet, dzięki czemu użytkownik ma około 40 kilobajtów bufora na źródło (zależy od aktualnej wartości MEMLO) plus prawie drugie tyle na tablicę symboli+*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 źródle+*z poziomu debugera dostępne są etykiety zawarte w kodzie źródłowym;
-*rozpoznaje do 15tego znaku w etykiecie+*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 lub z użyciem [[XEP80]])+*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 dnia 17:26, 9 lip 2015

Grafika:mae.png

... czyli Macro-Assembler-Editor - środowisko programowania dla Atari XL/XE autorstwa Johna Harrisa składające się z edytora, asemblera i debugera.

Spis treści

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;

Grafika:mae64kol.png

  • 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ż

Download

Personal tools