<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=U-BASIC</id>
	<title>U-BASIC - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=U-BASIC"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=U-BASIC&amp;action=history"/>
	<updated>2026-10-01T20:52:15Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=U-BASIC&amp;diff=4044&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=U-BASIC&amp;diff=4044&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[File:Ubasic.png]]&lt;br /&gt;
&lt;br /&gt;
== Charakterystyka ogólna ==&lt;br /&gt;
&lt;br /&gt;
Jest to w gruncie rzeczy oryginalny interpreter [[Atari BASIC]]-a (rev. C) przerobiony tak, żeby zamiast w obszarze [[Kartridż|kartridża]] A ($A000-$BFFF) działał &amp;quot;pod ROM-em&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
Maksymalna, możliwa do uzyskania ilość wolnej pamięci (wynik działania komendy &amp;#039;&amp;#039;? FRE(0)&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
Autorem przeróbki jest [[KMK]], pierwsza wersja U-BASIC-a (1.0) powstała 19 lipca 2015 r.&lt;br /&gt;
&lt;br /&gt;
=== Procedury matematyczne ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
W wersji 1.6 funkcję RND() przyspieszono i uzdatniono do współpracy z akceleratorami.&lt;br /&gt;
&lt;br /&gt;
=== Stałe szesnastkowe i dwójkowe ===&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;$&amp;quot; jako przedrostkiem).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8.5 stałe numeryczne można również podawać w postaci dwójkowej (z przedrostkiem &amp;quot;%&amp;quot;). Atari BASIC i Turbo-BASIC XL będą je interpretowały jako stałe dziesiętne.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
=== Skoki GOTO/GOSUB ===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Tablice ===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
=== AUTORUN.BAS ===&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.3 interpreter po starcie próbuje automatycznie wczytać i uruchomić plik o nazwie &amp;quot;D:AUTORUN.BAS&amp;quot;. 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 &amp;quot;D:AUTORUN.BAS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.7 można (w pliku konfiguracyjnym) zmienić domyślną nazwę pliku AUTORUN.BAS na dowolną inną.&lt;br /&gt;
&lt;br /&gt;
=== Zapis bieżącej zawartości pamięci (MEM.SAV) ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Tryb bezpośredni ===&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.3 komendy i treść programu w BASIC-u (słowa kluczowe, nazwy zmiennych itp.) można wpisywać małymi literami.&lt;br /&gt;
&lt;br /&gt;
W wersji 1.6 dodano komendę &amp;quot;DIR&amp;quot; dostępną tylko w trybie bezpośrednim (nie ma ona przypisanego [[Tokenu|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.&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8 w trybie bezpośrednim dostępna jest również komenda &amp;quot;HEX&amp;quot;. Wyświetla ona wartość podanego argumentu dziesiętnego (z zakresu 0-65535) w postaci szesnastkowej.&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8.5 istnieje także analogiczna komenda &amp;quot;BIN&amp;quot;, wyświetlająca wartość podanego argumentu dziesiętnego w postaci dwójkowej.&lt;br /&gt;
&lt;br /&gt;
== Konfiguracja ==&lt;br /&gt;
&lt;br /&gt;
W wersji 1.7 dodano tekstowy plik konfiguracyjny (UBI.CFG), pozwalający zmieniać niektóre domyślne parametry pracy interpretera.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Pod innymi DOS-ami (w których nie ma $PATH) plik konfiguracyjny zostanie wczytany tylko z katalogu bieżącego.&lt;br /&gt;
&lt;br /&gt;
=== Struktura pliku konfiguracyjnego ===&lt;br /&gt;
&lt;br /&gt;
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 (&amp;quot;;&amp;quot;) są traktowane jako wiersze puste.&lt;br /&gt;
&lt;br /&gt;
Wszystkie polecenia pliku konfiguracyjnego są skonstruowane wg tego samego schmatu: &amp;lt;code&amp;gt;słowo_kluczowe=wartość&amp;lt;/code&amp;gt;. Pomiędzy poszczególne elementy można wstawić dowolną liczbę spacji, są one pomijane przy interpretacji pliku.&lt;br /&gt;
&lt;br /&gt;
==== AUTONAME ====&lt;br /&gt;
&lt;br /&gt;
Gdy ustawiono &amp;lt;code&amp;gt;AUTORUN=1&amp;lt;/code&amp;gt;, podanie &amp;lt;code&amp;gt;AUTONAME=D:FILENAME.EXT&amp;lt;/code&amp;gt; spowoduje automatyczne wczytanie i uruchomienie programu w BASIC-u o nazwie &amp;quot;D:FILENAME.EXT&amp;quot;. Domyślną nazwą jest &amp;quot;D:AUTORUN.BAS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== AUTORUN ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;AUTORUN=1&amp;lt;/code&amp;gt; po starcie interpretera nakazuje mu wczytać i uruchomić plik o nazwie zdefiniowanej przez AUTONAME (patrz wyżej), a &amp;lt;code&amp;gt;AUTORUN=0&amp;lt;/code&amp;gt; zabrania tego. Domyślną wartością jest 1.&lt;br /&gt;
&lt;br /&gt;
Działanie tej funkcji jest dodatkowo uzależnione od słowa kluczowego MEMSAV (patrz niżej): podanie &amp;lt;code&amp;gt;MEMSAV=1&amp;lt;/code&amp;gt; powoduje automatyczne ustawienie AUTORUN=0.&lt;br /&gt;
&lt;br /&gt;
==== BYE ====&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8. &amp;lt;code&amp;gt;BYE=0&amp;lt;/code&amp;gt; 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 &amp;lt;code&amp;gt;MEMSAV=1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Domyślną wartością jest 0.&lt;br /&gt;
&lt;br /&gt;
==== CHRFIX ====&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8. &amp;lt;code&amp;gt;CHRFIX=1&amp;lt;/code&amp;gt; włącza &amp;quot;bezbłędną&amp;quot; wersję funkcji CHR$(). Domyślną wartością jest 0.&lt;br /&gt;
&lt;br /&gt;
==== DIRAUX ====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== ECHO ====&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8. &amp;lt;code&amp;gt;ECHO=dowolny tekst&amp;lt;/code&amp;gt; wyprowadza na ekran komunikat o podanej treści (tu: &amp;quot;dowolny tekst&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== FASTFP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;FASTFP=0&amp;lt;/code&amp;gt; powoduje przełączenie interpretera na [[Pakiet matematyczny|pakiet matematyczny]] znajdujący się w ROM-ie komputera (normalnie w użyciu jest wkompilowany [[Pakiet matematyczny#FASTCHIP|FASTCHIP]]). Domyślną wartością jest 1.&lt;br /&gt;
&lt;br /&gt;
Przełączenia na &amp;lt;code&amp;gt;FASTFP=0&amp;lt;/code&amp;gt; można dokonać tylko raz, późniejsze polecenia &amp;lt;code&amp;gt;FASTFP=1&amp;lt;/code&amp;gt; nie spowodują przywrócenia domyślnego pakietu matematycznego bez ponownego uruchomienia interpretera.&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8.2 jako parametr do FASTFP można podać nazwę pliku, np. FASTFP=D3:&amp;gt;LIB&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8.3 U-BASIC po załadowaniu tego pliku, a przed uruchomieniem interpretera, wykonuje &amp;quot;puste&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
==== INDENT ====&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8. &amp;lt;code&amp;gt;INDENT=n&amp;lt;/code&amp;gt;, gdzie &amp;#039;n&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
==== INFO ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;INFO=1&amp;lt;/code&amp;gt; pozwala na wyświetlenie początkowej informacji o intepreterze (tj. tekstu &amp;quot;U-BASIC v.1.8 Based on ATARI BASIC rev. C ...&amp;quot; itd.), a &amp;lt;code&amp;gt;INFO=0&amp;lt;/code&amp;gt; zabrania tego. Domyślną wartością jest 1.&lt;br /&gt;
&lt;br /&gt;
==== LOG ====&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8. &amp;lt;code&amp;gt;LOG=1&amp;lt;/code&amp;gt; powoduje wyświetlanie na ekranie kolejnych komend pliku CFG w miarę ich interpretacji. &amp;lt;code&amp;gt;LOG=2&amp;lt;/code&amp;gt; robi to samo, ale wyświetla wszystkie wiersze pliku CFG (nie tylko te, które zawierają komendy). Domyślną wartością jest 0.&lt;br /&gt;
&lt;br /&gt;
==== MEMSAV ====&lt;br /&gt;
&lt;br /&gt;
Ustawienie &amp;lt;code&amp;gt;MEMSAV=1&amp;lt;/code&amp;gt; sprawia, że interpreter po wydaniu mu polecenia &amp;quot;DOS&amp;quot; zapisze zawartość obszaru pamięci zajętego przez program w BASIC-u do pliku &amp;quot;D:UBI.SAV&amp;quot;. Ten plik zostanie wczytany po następnym uruchomieniu interpretera.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MEMSAV=1&amp;lt;/code&amp;gt; powoduje automatyczne ustawienie &amp;lt;code&amp;gt;AUTORUN=0&amp;lt;/code&amp;gt; niezależnie od tego, co mamy w pliku konfiguracyjnym. Z kolei podanie interpreterowi nazwy pliku w wierszu poleceń powoduje automatyczne przyjęcie &amp;lt;code&amp;gt;MEMSAV=0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Plik UBI.SAV zawiera na początku znacznik $55,$42 (&amp;quot;UB&amp;quot;), 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]].&lt;br /&gt;
&lt;br /&gt;
==== PRECOMP ====&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8. &amp;lt;code&amp;gt;PRECOMP=1&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==== RUNTIME ====&lt;br /&gt;
&lt;br /&gt;
Od wersji 1.8. &amp;lt;code&amp;gt;RUNTIME=1&amp;lt;/code&amp;gt; włącza tryb &amp;#039;&amp;#039;runtime&amp;#039;&amp;#039;, w którym po zakończeniu programu interpreter automatycznie wraca do DOS-u (zamiast do trybu bezpośredniego). Domyślną wartością jest 0.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
* [http://drac030.krap.pl/pl-ub-pliki.php tutaj]&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.atari.org.pl/forum/viewtopic.php?id=13360 Dyskusja]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Oprogramowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Języki programowania]]&lt;br /&gt;
[[Kategoria:BASIC]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>