Turbo BASIC XL
From Atariki
Wersja z dnia 20:56, 29 gru 2006 KMK (Dyskusja | wkład) (→Zobacz też) ← Previous diff |
Wersja z dnia 15:32, 23 sty 2007 KMK (Dyskusja | wkład) (→Błędy w Turbo BASIC-u) Next diff → |
||
Linia 7: | Linia 7: | ||
== Błędy w Turbo BASIC-u == | == Błędy w Turbo BASIC-u == | ||
- | * uruchomienie programu: '''10 TRAP 10:GET #1,A''' powoduje całkowite zapełnienie i "zawinięcie" się stosu procesora; instrukcja TRAP wprawdzie zdejmuje ze stosu pewną ilość danych, ale rzadko bywa to ilość właściwa. Ten sam błąd ma też [[Atari BASIC]]. | ||
- | * porównanie dwóch funkcji CHR$ w jednym wyrażeniu jest zawsze prawdziwe, np. '''IF CHR$(1)=CHR$(2) THEN STOP''' spowoduje zatrzymanie programu. Ten sam błąd ma też [[Atari BASIC]]. | ||
* kontrola składni nie przyjmuje słów kluczowych '''%GET''', '''%PUT''' i '''-MOVE''' jeśli są wpisane małymi literami. | * kontrola składni nie przyjmuje słów kluczowych '''%GET''', '''%PUT''' i '''-MOVE''' jeśli są wpisane małymi literami. | ||
* kontrola składni przyjmuje zmienne tekstowe jako argumenty instrukcji '''GET''', chociaż ta może zapisywać wartości tylko do zmiennych numerycznych. | * kontrola składni przyjmuje zmienne tekstowe jako argumenty instrukcji '''GET''', chociaż ta może zapisywać wartości tylko do zmiennych numerycznych. | ||
+ | * kontrola składni akceptuje znak ''Esc'' (ASCII 27) w miejsce dwukropka jako separatora instrukcji. Ten sam błąd ma też [[Atari BASIC]]. | ||
+ | * uruchomienie programu: '''10 TRAP 10:GET #1,A''' powoduje całkowite zapełnienie i "zawinięcie" się stosu procesora; instrukcja TRAP wprawdzie zdejmuje ze stosu pewną ilość danych, ale rzadko bywa to ilość właściwa. Ten sam błąd ma też [[Atari BASIC]]. | ||
+ | * porównanie dwóch funkcji CHR$ w jednym wyrażeniu jest zawsze prawdziwe, np. '''IF CHR$(1)=CHR$(2) THEN STOP''' spowoduje zatrzymanie programu. Ten sam błąd ma też [[Atari BASIC]]. | ||
* funkcja '''DEC''' źle działa, jeśli przekazana jej liczba szesnastkowa zawiera małe litery. | * funkcja '''DEC''' źle działa, jeśli przekazana jej liczba szesnastkowa zawiera małe litery. | ||
Wersja z dnia 15:32, 23 sty 2007
Odmiana języka BASIC dla komputera Atari XL/XE, stworzona w 1985 roku przez niemieckiego programistę Franka Ostrowskiego i rozpowszechniona jako program public domain przez czasopismo "Happy Computer". Oprócz wersji XL istnieje też odmiana przeznaczona dla komputerów serii 400/800.
Turbo BASIC wgrywa się do pamięci RAM komputera z dysku lub taśmy. Interpreter charakteryzuje się dużą ilością rozszerzeń w stosunku do oryginalnego Atari BASIC-a, istnieje też kompilator Turbo BASIC XL Compiler.
Pierwszorzędną zaletą Turbo BASIC-a XL jest jego szybkość, programy wykonywane są od trzech do pięciu razy szybciej niż w interpreterze Atari BASIC, co jest w sporej mierze wynikiem tego, iż Turbo BASIC ma własny, bardzo szybki pakiet procedur zmiennoprzecinkowych, który sprawdza się świetnie w większości zastosowań.
Błędy w Turbo BASIC-u
- kontrola składni nie przyjmuje słów kluczowych %GET, %PUT i -MOVE jeśli są wpisane małymi literami.
- kontrola składni przyjmuje zmienne tekstowe jako argumenty instrukcji GET, chociaż ta może zapisywać wartości tylko do zmiennych numerycznych.
- kontrola składni akceptuje znak Esc (ASCII 27) w miejsce dwukropka jako separatora instrukcji. Ten sam błąd ma też Atari BASIC.
- uruchomienie programu: 10 TRAP 10:GET #1,A powoduje całkowite zapełnienie i "zawinięcie" się stosu procesora; instrukcja TRAP wprawdzie zdejmuje ze stosu pewną ilość danych, ale rzadko bywa to ilość właściwa. Ten sam błąd ma też Atari BASIC.
- porównanie dwóch funkcji CHR$ w jednym wyrażeniu jest zawsze prawdziwe, np. IF CHR$(1)=CHR$(2) THEN STOP spowoduje zatrzymanie programu. Ten sam błąd ma też Atari BASIC.
- funkcja DEC źle działa, jeśli przekazana jej liczba szesnastkowa zawiera małe litery.
Zobacz też
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.