U-BASIC
From Atariki
Wersja z dnia 17:18, 17 lip 2016 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 08:28, 11 wrz 2016 KMK (Dyskusja | wkład) Next diff → |
||
Linia 1: | Linia 1: | ||
{{grafr|Ubasic.png}} | {{grafr|Ubasic.png}} | ||
- | Jest to w gruncie rzeczy oryginalny interpreter [[Atari BASIC]]-a (rev. C) przerobiony tak, żeby zamiast w obszarze [[kartridż]]a A ($A000-$BFFF) działał "pod ROM-em" systemu operacyjnego, tj. w obszarze $C000-$FFFF. Zwalnia to dodatkowe 8 KB pamięci RAM, które można wykorzystać na program w BASIC-u. W głównej pamięci interpreter zajmuje tylko 52 bajty (wersja 1.5), o którą to wartość podnosi wskaźnik MEMLO. | + | == Charakterystyka ogólna == |
+ | Jest to w gruncie rzeczy oryginalny interpreter [[Atari BASIC]]-a (rev. C) przerobiony tak, żeby zamiast w obszarze [[kartridż]]a A ($A000-$BFFF) działał "pod ROM-em" systemu operacyjnego, tj. w obszarze $C000-$FFFF. Zwalnia to dodatkowe 8 KB pamięci RAM, które można wykorzystać na program w BASIC-u. W głównej pamięci interpreter zajmuje tylko 43 bajty (wersja 1.7), o którą to wartość podnosi wskaźnik MEMLO. | ||
- | Maksymalna, możliwa do uzyskania ilość wolnej pamięci (wynik działania komendy ''? FRE(0)'') to 46042 bajty - dla porównania w Atari BASIC są to 37902 bajty (w rzeczywistości w obu wypadkach jest to o 16 bajtów więcej). | + | Maksymalna, możliwa do uzyskania ilość wolnej pamięci (wynik działania komendy ''? FRE(0)'' po załadowaniu interpretera z magnetofonu) to 46094 bajty - dla porównania w Atari BASIC dostępne są 37902 bajty (w rzeczywistości w obu wypadkach jest to o 16 bajtów więcej). Ta wielkość jest oczywiście odpowiednio zmniejszana przez DOS. |
- | Dodatkowo w U-BASIC wkompilowano [[Pakiet_matematyczny#FASTCHIP|FASTCHIP]], dzięki czemu interpreter działa ok. 2,5 raza szybciej niż standardowy Atari BASIC. | + | == Konfiguracja == |
+ | W wersji 1.7 dodano tekstowy plik konfiguracyjny, pozwalający zmieniać niektóre domyślne parametry pracy interpretera. | ||
- | W wersji 1.3 U-BASIC-a wprowadzono parę dodatkowych udogodnień: | + | == Procedury matematyczne == |
+ | W interpreter wkompilowano [[Pakiet_matematyczny#FASTCHIP|FASTCHIP]], dzięki czemu interpreter działa ok. 2,5 raza szybciej niż standardowy Atari BASIC. Począwszy od wersji 1.7 interpreter można w razie potrzeby przełączyć w tryb użytkowania pakietu matematycznego znajdującego się w ROM-ie. | ||
- | * treść programu w BASIC-u (słowa kluczowe, nazwy zmiennych itp.) można wpisywać małymi literami | + | W wersji 1.6 funkcję RND() przyspieszono i uzdatniono do współpracy z akceleratorami. |
- | * po uruchomieniu interpreter próbuje automatycznie wczytać i uruchomić plik o nazwie "D:AUTORUN.BAS" | + | |
- | * jeśli [[DOS]] oferuje funkcje wiersza poleceń zgodne z [[DOS XL]]/[[SpartaDOS]], podanie nazwy pliku jako parametru powoduje próbę wczytania i uruchomienia tego pliku zamiast domyślnego "D:AUTORUN.BAS" | + | == Skoki GOTO/GOSUB == |
+ | Od wersji 1.3 skoki GOTO i GOSUB wykonywane w przód (tj. z wiersza programu o mniejszym numerze do wiersza o numerze większym), a także skoki GOTO do początku tego samego wiersza programu poszukują linii docelowej począwszy od miejsca, w którym się znajdują. Powinno to skutkować nieco szybszym ich wykonywaniem się niż w Atari BASIC-u (który zawsze przy takiej okazji przeszukuje cały program od początku). | ||
+ | |||
+ | == Tablice == | ||
+ | W wersji 1.6 zniesiono granicę 32k dla wielkości tablic numerycznych i tekstowych. Dodano sprawdzenie, czy podczas obliczeń wielkości tablicy nie doszło do przepełnienia (co czasem może wystąpić w Atari BASIC-u). | ||
+ | |||
+ | == Tryb bezpośredni == | ||
+ | Od wersji 1.3 komendy i treść programu w BASIC-u (słowa kluczowe, nazwy zmiennych itp.) można wpisywać małymi literami. | ||
+ | |||
+ | W wersji 1.6 dodano komendę "DIR" dostępną tylko w trybie bezpośrednim (nie ma ona przypisanego tokenu). Pod SpartaDOS X generowany jest pełen listing katalogu, tzn. wraz z dokładną długością pliku oraz czasem i datą ostatniem modyfikacji. | ||
+ | |||
+ | == AUTORUN.BAS == | ||
+ | Od wersji 1.3 interpreter po starcie próbuje automatycznie wczytać i uruchomić plik o nazwie "D:AUTORUN.BAS". Jeśli [[DOS]] oferuje funkcje wiersza poleceń zgodne z [[DOS XL]]/[[SpartaDOS]], podanie nazwy pliku jako parametru powoduje próbę wczytania i uruchomienia tego pliku zamiast domyślnego "D:AUTORUN.BAS". | ||
+ | |||
+ | Od wersji 1.7 można (w pliku konfiguracyjnym) zmienić domyślną nazwę pliku AUTORUN.BAS na dowolną inną. | ||
+ | |||
+ | == Zapis bieżącej zawartości pamięci (MEM.SAV) == | ||
+ | W wersji 1.7 dodano możliwość automatycznego zapisu zawartości pamięci BASIC-a (obszar od MEMLO do MEMTOP-u plus strony 4,5,6) przed wyjściem do DOS-u do pliku UBI.SAV znajdującego się w katalogu bieżącym. Ten plik zostanie automatycznie wczytany przy następnym uruchomieniu interpretera z tego katalogu. | ||
Autorem przeróbki jest [[KMK]], pierwsza wersja U-BASIC-a (1.0) powstała 19 lipca 2015 r. | Autorem przeróbki jest [[KMK]], pierwsza wersja U-BASIC-a (1.0) powstała 19 lipca 2015 r. |
Wersja z dnia 08:28, 11 wrz 2016
Spis treści |
Charakterystyka ogólna
Jest to w gruncie rzeczy oryginalny interpreter Atari BASIC-a (rev. C) przerobiony tak, żeby zamiast w obszarze kartridża A ($A000-$BFFF) działał "pod ROM-em" systemu operacyjnego, tj. w obszarze $C000-$FFFF. Zwalnia to dodatkowe 8 KB pamięci RAM, które można wykorzystać na program w BASIC-u. W głównej pamięci interpreter zajmuje tylko 43 bajty (wersja 1.7), o którą to wartość podnosi wskaźnik MEMLO.
Maksymalna, możliwa do uzyskania ilość wolnej pamięci (wynik działania komendy ? FRE(0) po załadowaniu interpretera z magnetofonu) to 46094 bajty - dla porównania w Atari BASIC dostępne są 37902 bajty (w rzeczywistości w obu wypadkach jest to o 16 bajtów więcej). Ta wielkość jest oczywiście odpowiednio zmniejszana przez DOS.
Konfiguracja
W wersji 1.7 dodano tekstowy plik konfiguracyjny, pozwalający zmieniać niektóre domyślne parametry pracy interpretera.
Procedury matematyczne
W interpreter wkompilowano FASTCHIP, dzięki czemu interpreter działa ok. 2,5 raza szybciej niż standardowy Atari BASIC. Począwszy od wersji 1.7 interpreter można w razie potrzeby przełączyć w tryb użytkowania pakietu matematycznego znajdującego się w ROM-ie.
W wersji 1.6 funkcję RND() przyspieszono i uzdatniono do współpracy z akceleratorami.
Skoki GOTO/GOSUB
Od wersji 1.3 skoki GOTO i GOSUB wykonywane w przód (tj. z wiersza programu o mniejszym numerze do wiersza o numerze większym), a także skoki GOTO do początku tego samego wiersza programu poszukują linii docelowej począwszy od miejsca, w którym się znajdują. Powinno to skutkować nieco szybszym ich wykonywaniem się niż w Atari BASIC-u (który zawsze przy takiej okazji przeszukuje cały program od początku).
Tablice
W wersji 1.6 zniesiono granicę 32k dla wielkości tablic numerycznych i tekstowych. Dodano sprawdzenie, czy podczas obliczeń wielkości tablicy nie doszło do przepełnienia (co czasem może wystąpić w Atari BASIC-u).
Tryb bezpośredni
Od wersji 1.3 komendy i treść programu w BASIC-u (słowa kluczowe, nazwy zmiennych itp.) można wpisywać małymi literami.
W wersji 1.6 dodano komendę "DIR" dostępną tylko w trybie bezpośrednim (nie ma ona przypisanego tokenu). Pod SpartaDOS X generowany jest pełen listing katalogu, tzn. wraz z dokładną długością pliku oraz czasem i datą ostatniem modyfikacji.
AUTORUN.BAS
Od wersji 1.3 interpreter po starcie próbuje automatycznie wczytać i uruchomić plik o nazwie "D:AUTORUN.BAS". Jeśli DOS oferuje funkcje wiersza poleceń zgodne z DOS XL/SpartaDOS, podanie nazwy pliku jako parametru powoduje próbę wczytania i uruchomienia tego pliku zamiast domyślnego "D:AUTORUN.BAS".
Od wersji 1.7 można (w pliku konfiguracyjnym) zmienić domyślną nazwę pliku AUTORUN.BAS na dowolną inną.
Zapis bieżącej zawartości pamięci (MEM.SAV)
W wersji 1.7 dodano możliwość automatycznego zapisu zawartości pamięci BASIC-a (obszar od MEMLO do MEMTOP-u plus strony 4,5,6) przed wyjściem do DOS-u do pliku UBI.SAV znajdującego się w katalogu bieżącym. Ten plik zostanie automatycznie wczytany przy następnym uruchomieniu interpretera z tego katalogu.
Autorem przeróbki jest KMK, pierwsza wersja U-BASIC-a (1.0) powstała 19 lipca 2015 r.