U-BASIC

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 08:56, 30 wrz 2016
KMK (Dyskusja | wkład)
(Konfiguracja)
← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)
(aktualizacja)
Linia 1: Linia 1:
{{grafr|Ubasic.png}} {{grafr|Ubasic.png}}
== Charakterystyka ogólna == == 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.+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 37 bajtów (wersja 1.8.3), 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 46051 bajtów - 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.+Maksymalna, możliwa do uzyskania ilość wolnej pamięci (wynik działania komendy ''? FRE(0)'' po załadowaniu interpretera z magnetofonu) to 46057 bajtów - 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.
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.
 +
 +=== Procedury matematyczne ===
 +W U-BASIC 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.
 +
 +W wersji 1.6 funkcję RND() przyspieszono i uzdatniono do współpracy z akceleratorami.
 +
 +=== Stałe szesnastkowe i dwójkowe ===
 +Od wersji 1.8 stałe numeryczne z zakresu 0-65535 można podawać w postaci szesnastkowej, tak samo jak w [[Turbo BASIC XL|Turbo BASIC-u XL]] (ze znakiem "$" jako przedrostkiem).
 +
 +Stałe takie, jeśli zostaną użyte w programie napisanym pod U-BASIC-em, Atari BASIC zinterpretuje jako stałe numeryczne zapisane w postaci dziesiętnej.
 +
 +Od wersji 1.8.5 stałe numeryczne można również podawać w postaci dwójkowej (z przedrostkiem "%"). Atari BASIC i Turbo-BASIC XL będą je interpretowały jako stałe dziesiętne.
 +
 +Również od wersji 1.8.5 stałe szesnastkowe i dwójkowe są rozpoznawane przez instrukcję INPUT oraz funkcję VAL(). Program, który używa ich w ten sposób, nie będzie działał w Atari BASIC ani Turbo-BASIC XL - ale będzie działał w [[BASIC XE]].
 +
 +=== 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).
 +
 +Od wersji 1.8 obecność dodatkowej pamięci w komputerze pozwala na włączenie prekompilacji programu. Pod [[SpartaDOS X]] następuje to automatycznie, jeśli program wykryje 64k wolnej pamięci dodatkowej. Pod innymi DOS-ami prekompilację trzeba włączyć w pliku CFG.
 +
 +=== 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).
 +
 +=== 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 [[wiersz poleceń|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 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.
 +
 +=== 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ą ostatniej modyfikacji.
 +
 +Od wersji 1.8 w trybie bezpośrednim dostępna jest również komenda "HEX". Wyświetla ona wartość podanego argumentu dziesiętnego (z zakresu 0-65535) w postaci szesnastkowej.
 +
 +Od wersji 1.8.5 istnieje także analogiczna komenda "BIN", wyświetlająca wartość podanego argumentu dziesiętnego w postaci dwójkowej.
== Konfiguracja == == Konfiguracja ==
Linia 20: Linia 59:
Wszystkie polecenia pliku konfiguracyjnego są skonstruowane wg tego samego schmatu: <code>słowo_kluczowe=wartość</code>. Pomiędzy poszczególne elementy można wstawić dowolną liczbę spacji, są one pomijane przy interpretacji pliku. Wszystkie polecenia pliku konfiguracyjnego są skonstruowane wg tego samego schmatu: <code>słowo_kluczowe=wartość</code>. Pomiędzy poszczególne elementy można wstawić dowolną liczbę spacji, są one pomijane przy interpretacji pliku.
-==== INFO ====+==== AUTONAME ====
-<code>INFO=1</code> pozwala na wyświetlenie początkowej informacji o intepreterze (tj. tekstu "U-BASIC v.1.7 Based on ATARI BASIC rev. C ..." itd.), a <code>INFO=0</code> zabrania tego. Domyślną wartością jest 1.+Gdy ustawiono <code>AUTORUN=1</code>, podanie <code>AUTONAME=D:FILENAME.EXT</code> spowoduje automatyczne wczytanie i uruchomienie programu w BASIC-u o nazwie "D:FILENAME.EXT". Domyślną nazwą jest "D:AUTORUN.BAS".
==== AUTORUN ==== ==== AUTORUN ====
-<code>AUTORUN=1</code> po starcie interpretera nakazuje mu wczytać i uruchomić plik o nazwie zdefiniowanej przez AUTONAME (patrz niżej), a <code>AUTORUN=0</code> zabrania tego. Domyślną wartością jest 1.+<code>AUTORUN=1</code> po starcie interpretera nakazuje mu wczytać i uruchomić plik o nazwie zdefiniowanej przez AUTONAME (patrz wyżej), a <code>AUTORUN=0</code> zabrania tego. Domyślną wartością jest 1.
Działanie tej funkcji jest dodatkowo uzależnione od słowa kluczowego MEMSAV (patrz niżej): podanie <code>MEMSAV=1</code> powoduje automatyczne ustawienie AUTORUN=0. Działanie tej funkcji jest dodatkowo uzależnione od słowa kluczowego MEMSAV (patrz niżej): podanie <code>MEMSAV=1</code> powoduje automatyczne ustawienie AUTORUN=0.
-==== AUTONAME ====+==== BYE ====
-Gdy ustawiono <code>AUTORUN=1</code>, podanie <code>AUTONAME=D:FILENAME.EXT</code> spowoduje automatyczne wczytanie i uruchomienie programu w BASIC-u o nazwie "D:FILENAME.EXT". Domyślną nazwą jest "D:AUTORUN.BAS".+Od wersji 1.8. <code>BYE=0</code> powoduje, że po podaniu komendy BYE interpreter wychodzi do DOS-u zamiast do SELF-TEST-u (BYE=1). W obu przypadkach zawartość pamięci BASIC-a nie jest nigdzie zapisywana, nawet przy <code>MEMSAV=1</code>.
 + 
 +Domyślną wartością jest 0.
 + 
 +==== CHRFIX ====
 + 
 +Od wersji 1.8. <code>CHRFIX=1</code> włącza "bezbłędną" wersję funkcji CHR$(). Domyślną wartością jest 0.
 + 
 +==== DIRAUX ====
 + 
 +Od wersji 1.8. Wartość ICAX2 dla komendy otwarcia kanału danych w celu odczytania katalogu (przez polecenie DIR). Domyślna wartość to 128 dla SpartaDOS X i 0 dla pozostałych DOS-ów.
 + 
 +==== ECHO ====
 + 
 +Od wersji 1.8. <code>ECHO=dowolny tekst</code> wyprowadza na ekran komunikat o podanej treści (tu: "dowolny tekst").
==== FASTFP ==== ==== FASTFP ====
Linia 40: Linia 93:
Przełączenia na <code>FASTFP=0</code> można dokonać tylko raz, późniejsze polecenia <code>FASTFP=1</code> nie spowodują przywrócenia domyślnego pakietu matematycznego bez ponownego uruchomienia interpretera. Przełączenia na <code>FASTFP=0</code> można dokonać tylko raz, późniejsze polecenia <code>FASTFP=1</code> nie spowodują przywrócenia domyślnego pakietu matematycznego bez ponownego uruchomienia interpretera.
-==== MEMSAV ====+Od wersji 1.8.2 jako parametr do FASTFP można podać nazwę pliku, np. FASTFP=D3:>LIB>AFP.BIN. Wskazany plik powinien być zwykłym (pozbawionym wszelkich nagłówków) zrzutem binarnym zawartości pakietu FP, mającym wielkość dokładnie 2048 bajtów i skompilowanym do działania pod adresami $D800-$DFFF.
-Ustawienie <code>MEMSAV=1</code> sprawia, że interpreter po wydaniu mu polecenia "DOS" zapisze zawartość obszaru pamięci zajętego przez program w BASIC-u do pliku "D:UBI.SAV". Ten plik zostanie wczytany po następnym uruchomieniu interpretera.+Od wersji 1.8.3 U-BASIC po załadowaniu tego pliku, a przed uruchomieniem interpretera, wykonuje "puste" wywołanie funkcji FPI ($DA99). Można to wykorzystać do ewentualnego zainicjowania wczytanego modułu binarnego (pamiętając przy tym, że w danej chwili ROM systemu operacyjnego jest odłączony, przerwania są włączone, a naruszenie pamięci pomiędzy adresami $5400 a $7FFF może nie być pożądane).
-<code>MEMSAV=1</code> powoduje automatyczne ustawienie <code>AUTORUN=0</code> niezależnie od tego, co mamy w pliku konfiguracyjnym. Z kolei podanie interpreterowi nazwy pliku w wierszu poleceń powoduje automatyczne przyjęcie <code>MEMSAV=0</code>.+==== INDENT ====
-Plik UBI.SAV zawiera na początku znacznik $55,$42 ("UB"), względne wartości wektorów BASIC-a ze strony zerowej, strony pamięci 4,5,6 oraz zawartość pamięci znajdującą się pomiędzy adresem wskazywanym przez wektor [[LOMEM]], a tym wskazywanym przez wektor [[BMEMHI]].+Od wersji 1.8. <code>INDENT=n</code>, gdzie 'n' to liczba dodatkowych spacji, które interpreter będzie dodawał w listingach w celu wygenerowania wcięć dla pętli FOR/NEXT. Wartość maksymalna to 15, wartością domyślną jest 2, 0 wyłącza wcięcia.
-== Procedury matematyczne ==+==== INFO ====
-W U-BASIC 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.+
-W wersji 1.6 funkcję RND() przyspieszono i uzdatniono do współpracy z akceleratorami.+<code>INFO=1</code> pozwala na wyświetlenie początkowej informacji o intepreterze (tj. tekstu "U-BASIC v.1.8 Based on ATARI BASIC rev. C ..." itd.), a <code>INFO=0</code> zabrania tego. Domyślną wartością jest 1.
-== Skoki GOTO/GOSUB ==+==== LOG ====
-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 ==+Od wersji 1.8. <code>LOG=1</code> powoduje wyświetlanie na ekranie kolejnych komend pliku CFG w miarę ich interpretacji. <code>LOG=2</code> robi to samo, ale wyświetla wszystkie wiersze pliku CFG (nie tylko te, które zawierają komendy). Domyślną wartością jest 0.
-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 ==+==== MEMSAV ====
-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ą ostatniej modyfikacji.+Ustawienie <code>MEMSAV=1</code> sprawia, że interpreter po wydaniu mu polecenia "DOS" zapisze zawartość obszaru pamięci zajętego przez program w BASIC-u do pliku "D:UBI.SAV". Ten plik zostanie wczytany po następnym uruchomieniu interpretera.
-== AUTORUN.BAS ==+<code>MEMSAV=1</code> powoduje automatyczne ustawienie <code>AUTORUN=0</code> niezależnie od tego, co mamy w pliku konfiguracyjnym. Z kolei podanie interpreterowi nazwy pliku w wierszu poleceń powoduje automatyczne przyjęcie <code>MEMSAV=0</code>.
-Od wersji 1.3 interpreter po starcie próbuje automatycznie wczytać i uruchomić plik o nazwie "D:AUTORUN.BAS". Jeśli [[DOS]] oferuje [[wiersz poleceń|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ą.+Plik UBI.SAV zawiera na początku znacznik $55,$42 ("UB"), względne wartości wektorów BASIC-a ze strony zerowej, strony pamięci 4,5,6 oraz zawartość pamięci znajdującą się pomiędzy adresem wskazywanym przez wektor [[LOMEM]], a tym wskazywanym przez wektor [[BMEMHI]].
 + 
 +==== PRECOMP ====
 + 
 +Od wersji 1.8. <code>PRECOMP=1</code> włącza prekompilację programu na komputerach wyposażonych w 128k RAM i więcej. Użycie tego słowa kluczowego nie jest konieczne pod SpartaDOS X, gdzie prekompilacja jest włączana automatycznie po wykryciu 64k wolnej pamięci dodatkowej. Pod innymi DOS-ami włączenie tej opcji może spowodować zniszczenie ramdysku. Domyślną wartością jest 0.
 + 
 +==== RUNTIME ====
-== Zapis bieżącej zawartości pamięci (MEM.SAV) ==+Od wersji 1.8. <code>RUNTIME=1</code> włącza tryb ''runtime'', w którym po zakończeniu programu interpreter automatycznie wraca do DOS-u (zamiast do trybu bezpośredniego). Domyślną wartością jest 0.
-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.+
== Download == == Download ==
Linia 80: Linia 133:
[[Kategoria:Oprogramowanie Atari 8-bit]] [[Kategoria:Oprogramowanie Atari 8-bit]]
[[Kategoria:Języki programowania]] [[Kategoria:Języki programowania]]
 +[[Kategoria:BASIC]]

Aktualna wersja

Grafika:Ubasic.png

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 37 bajtów (wersja 1.8.3), 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 46057 bajtów - 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.

Autorem przeróbki jest KMK, pierwsza wersja U-BASIC-a (1.0) powstała 19 lipca 2015 r.

Procedury matematyczne

W U-BASIC 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.

Stałe szesnastkowe i dwójkowe

Od wersji 1.8 stałe numeryczne z zakresu 0-65535 można podawać w postaci szesnastkowej, tak samo jak w Turbo BASIC-u XL (ze znakiem "$" jako przedrostkiem).

Stałe takie, jeśli zostaną użyte w programie napisanym pod U-BASIC-em, Atari BASIC zinterpretuje jako stałe numeryczne zapisane w postaci dziesiętnej.

Od wersji 1.8.5 stałe numeryczne można również podawać w postaci dwójkowej (z przedrostkiem "%"). Atari BASIC i Turbo-BASIC XL będą je interpretowały jako stałe dziesiętne.

Również od wersji 1.8.5 stałe szesnastkowe i dwójkowe są rozpoznawane przez instrukcję INPUT oraz funkcję VAL(). Program, który używa ich w ten sposób, nie będzie działał w Atari BASIC ani Turbo-BASIC XL - ale będzie działał w BASIC XE.

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).

Od wersji 1.8 obecność dodatkowej pamięci w komputerze pozwala na włączenie prekompilacji programu. Pod SpartaDOS X następuje to automatycznie, jeśli program wykryje 64k wolnej pamięci dodatkowej. Pod innymi DOS-ami prekompilację trzeba włączyć w pliku CFG.

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).

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 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.

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ą ostatniej modyfikacji.

Od wersji 1.8 w trybie bezpośrednim dostępna jest również komenda "HEX". Wyświetla ona wartość podanego argumentu dziesiętnego (z zakresu 0-65535) w postaci szesnastkowej.

Od wersji 1.8.5 istnieje także analogiczna komenda "BIN", wyświetlająca wartość podanego argumentu dziesiętnego w postaci dwójkowej.

Konfiguracja

W wersji 1.7 dodano tekstowy plik konfiguracyjny (UBI.CFG), pozwalający zmieniać niektóre domyślne parametry pracy interpretera.

Pod SpartaDOS X interpreter spróbuje ten plik najpierw znaleźć w $PATH, a potem w katalogu bieżącym; przy czym jeśli znajdzie dwa pliki, wczyta oba w kolejności ich znalezienia. Pozwala to na rozdzielenie ustawień na globalne (w $PATH) i lokalne (w katalogu bieżącym).

Pod innymi DOS-ami (w których nie ma $PATH) plik konfiguracyjny zostanie wczytany tylko z katalogu bieżącego.

Struktura pliku konfiguracyjnego

Plik UBI.CFG jest plikiem tekstowym interpretowanym wiersz po wierszu. Każdy wiersz może mieć długość do 255 znaków i musi być zakończony znakiem EOL (ATASCII 155). W pojedynczym wierszu może się znajdować najwyżej jedno polecenie. Wiersze puste są ignorowane, a wiersze zaczynające się od średnika (";") są traktowane jako wiersze puste.

Wszystkie polecenia pliku konfiguracyjnego są skonstruowane wg tego samego schmatu: słowo_kluczowe=wartość. Pomiędzy poszczególne elementy można wstawić dowolną liczbę spacji, są one pomijane przy interpretacji pliku.

AUTONAME

Gdy ustawiono AUTORUN=1, podanie AUTONAME=D:FILENAME.EXT spowoduje automatyczne wczytanie i uruchomienie programu w BASIC-u o nazwie "D:FILENAME.EXT". Domyślną nazwą jest "D:AUTORUN.BAS".

AUTORUN

AUTORUN=1 po starcie interpretera nakazuje mu wczytać i uruchomić plik o nazwie zdefiniowanej przez AUTONAME (patrz wyżej), a AUTORUN=0 zabrania tego. Domyślną wartością jest 1.

Działanie tej funkcji jest dodatkowo uzależnione od słowa kluczowego MEMSAV (patrz niżej): podanie MEMSAV=1 powoduje automatyczne ustawienie AUTORUN=0.

BYE

Od wersji 1.8. BYE=0 powoduje, że po podaniu komendy BYE interpreter wychodzi do DOS-u zamiast do SELF-TEST-u (BYE=1). W obu przypadkach zawartość pamięci BASIC-a nie jest nigdzie zapisywana, nawet przy MEMSAV=1.

Domyślną wartością jest 0.

CHRFIX

Od wersji 1.8. CHRFIX=1 włącza "bezbłędną" wersję funkcji CHR$(). Domyślną wartością jest 0.

DIRAUX

Od wersji 1.8. Wartość ICAX2 dla komendy otwarcia kanału danych w celu odczytania katalogu (przez polecenie DIR). Domyślna wartość to 128 dla SpartaDOS X i 0 dla pozostałych DOS-ów.

ECHO

Od wersji 1.8. ECHO=dowolny tekst wyprowadza na ekran komunikat o podanej treści (tu: "dowolny tekst").

FASTFP

FASTFP=0 powoduje przełączenie interpretera na pakiet matematyczny znajdujący się w ROM-ie komputera (normalnie w użyciu jest wkompilowany FASTCHIP). Domyślną wartością jest 1.

Przełączenia na FASTFP=0 można dokonać tylko raz, późniejsze polecenia FASTFP=1 nie spowodują przywrócenia domyślnego pakietu matematycznego bez ponownego uruchomienia interpretera.

Od wersji 1.8.2 jako parametr do FASTFP można podać nazwę pliku, np. FASTFP=D3:>LIB>AFP.BIN. Wskazany plik powinien być zwykłym (pozbawionym wszelkich nagłówków) zrzutem binarnym zawartości pakietu FP, mającym wielkość dokładnie 2048 bajtów i skompilowanym do działania pod adresami $D800-$DFFF.

Od wersji 1.8.3 U-BASIC po załadowaniu tego pliku, a przed uruchomieniem interpretera, wykonuje "puste" wywołanie funkcji FPI ($DA99). Można to wykorzystać do ewentualnego zainicjowania wczytanego modułu binarnego (pamiętając przy tym, że w danej chwili ROM systemu operacyjnego jest odłączony, przerwania są włączone, a naruszenie pamięci pomiędzy adresami $5400 a $7FFF może nie być pożądane).

INDENT

Od wersji 1.8. INDENT=n, gdzie 'n' to liczba dodatkowych spacji, które interpreter będzie dodawał w listingach w celu wygenerowania wcięć dla pętli FOR/NEXT. Wartość maksymalna to 15, wartością domyślną jest 2, 0 wyłącza wcięcia.

INFO

INFO=1 pozwala na wyświetlenie początkowej informacji o intepreterze (tj. tekstu "U-BASIC v.1.8 Based on ATARI BASIC rev. C ..." itd.), a INFO=0 zabrania tego. Domyślną wartością jest 1.

LOG

Od wersji 1.8. LOG=1 powoduje wyświetlanie na ekranie kolejnych komend pliku CFG w miarę ich interpretacji. LOG=2 robi to samo, ale wyświetla wszystkie wiersze pliku CFG (nie tylko te, które zawierają komendy). Domyślną wartością jest 0.

MEMSAV

Ustawienie MEMSAV=1 sprawia, że interpreter po wydaniu mu polecenia "DOS" zapisze zawartość obszaru pamięci zajętego przez program w BASIC-u do pliku "D:UBI.SAV". Ten plik zostanie wczytany po następnym uruchomieniu interpretera.

MEMSAV=1 powoduje automatyczne ustawienie AUTORUN=0 niezależnie od tego, co mamy w pliku konfiguracyjnym. Z kolei podanie interpreterowi nazwy pliku w wierszu poleceń powoduje automatyczne przyjęcie MEMSAV=0.

Plik UBI.SAV zawiera na początku znacznik $55,$42 ("UB"), względne wartości wektorów BASIC-a ze strony zerowej, strony pamięci 4,5,6 oraz zawartość pamięci znajdującą się pomiędzy adresem wskazywanym przez wektor LOMEM, a tym wskazywanym przez wektor BMEMHI.

PRECOMP

Od wersji 1.8. PRECOMP=1 włącza prekompilację programu na komputerach wyposażonych w 128k RAM i więcej. Użycie tego słowa kluczowego nie jest konieczne pod SpartaDOS X, gdzie prekompilacja jest włączana automatycznie po wykryciu 64k wolnej pamięci dodatkowej. Pod innymi DOS-ami włączenie tej opcji może spowodować zniszczenie ramdysku. Domyślną wartością jest 0.

RUNTIME

Od wersji 1.8. RUNTIME=1 włącza tryb runtime, w którym po zakończeniu programu interpreter automatycznie wraca do DOS-u (zamiast do trybu bezpośredniego). Domyślną wartością jest 0.

Download

Zobacz też

Personal tools