Turbo BASIC XL Compiler

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 14:28, 15 wrz 2006
Epi (Dyskusja | wkład)
(ort., drobne uściślenie, +dwa byki,)
← Previous diff
Wersja z dnia 11:42, 6 lut 2007
KMK (Dyskusja | wkład)
(może tak lepiej?)
Next diff →
Linia 4: Linia 4:
W ramach ciekawostki: kompilator Turbo BASIC-a XL został napisany w Turbo BASIC-u XL. W ramach ciekawostki: kompilator Turbo BASIC-a XL został napisany w Turbo BASIC-u XL.
-== Błędy kompilacji ==+== Problemy z kompilacją ==
Poniżej znajduje się lista zauważonych problemów związanych z niewłaściwym działaniem skompilowanych programów, spowodowanych błędami kompilatora, linkera i/lub (najczęściej) bibliotek. Poniższa lista będzie stale rozszerzana, wraz z wzrastającą wiedzą na temat wykrytych błędów. W miarę możliwości będą też podawane alternatywne wyjścia z sytuacji, gdy istnieje konieczność kompilacji programu. Poniżej znajduje się lista zauważonych problemów związanych z niewłaściwym działaniem skompilowanych programów, spowodowanych błędami kompilatora, linkera i/lub (najczęściej) bibliotek. Poniższa lista będzie stale rozszerzana, wraz z wzrastającą wiedzą na temat wykrytych błędów. W miarę możliwości będą też podawane alternatywne wyjścia z sytuacji, gdy istnieje konieczność kompilacji programu.
* Błąd obsługi tablic liczbowych (zarówno jedno, jak i dwuwymiarowych), powodujący po kompilacji ich niewłaściwe działanie. * Błąd obsługi tablic liczbowych (zarówno jedno, jak i dwuwymiarowych), powodujący po kompilacji ich niewłaściwe działanie.

Wersja z dnia 11:42, 6 lut 2007

Grafika:tbxlcompiler-1.png

Kompilator języka Turbo BASIC XL, czyli program tłumaczący kod programu napisanego w Turbo BASIC-u XL na kod maszynowy. Do prawidłowego działania skompilowanego programu wymagana jest obecność bibliotek Turbo BASIC-a (RUNTIME.EXE), można je dołączyć do programu przy pomocy linkera. Należy przy tym pamiętać, iż oryginalna wersja bibliotek zawiera drobne błędy (min. działanie instrukcji DEC), więc do prawidłowego działania programu rekomendowany jest RUNTIME2.EXE - z poprawkami autorstwa Jacka Żuka.

W ramach ciekawostki: kompilator Turbo BASIC-a XL został napisany w Turbo BASIC-u XL.

Problemy z kompilacją

Poniżej znajduje się lista zauważonych problemów związanych z niewłaściwym działaniem skompilowanych programów, spowodowanych błędami kompilatora, linkera i/lub (najczęściej) bibliotek. Poniższa lista będzie stale rozszerzana, wraz z wzrastającą wiedzą na temat wykrytych błędów. W miarę możliwości będą też podawane alternatywne wyjścia z sytuacji, gdy istnieje konieczność kompilacji programu.

  • Błąd obsługi tablic liczbowych (zarówno jedno, jak i dwuwymiarowych), powodujący po kompilacji ich niewłaściwe działanie.
Alternatywna metoda: gdy stosujemy liczby z zakresu 0-255, możemy stosować tablice tekstowe. Odpowiednik dwuwymiarowych tablic liczbowych można uzyskać przez rzutowanie z założonym krokiem. Rozwiązanie to zaproponował Fox.
  • Funkcja USR() niewłaściwie przekazuje wynik z procedury użytkownika.
Rozwiązanie: zamiast zapisywać wynik w słowie $D4/$D5 i pobierać go bezpośrednio z funkcji, wykorzystujemy dowolne nieużywane miejsce pamięci i funkcje PEEK() lub DPEEK().
  • Zbyt rozbudowane wyrażenia opisujące indeks tablic liczbowych powodują błąd nr 9.
Rozwiązanie: przeliczamy wyrażenie wcześniej i zapisujemy wynik w zmiennej pomocniczej, którą następnie indeksujemy tablicę.

Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.

Personal tools