![]() |
|
Start | Super Packer | Atari Graphics Studio | Graph2Font | Mads | MadPascal | YouTube | http://madteam.atari8.info |
Marek Turowski
Syzygy #2
Drogi użytkowniku atarynki, nie mający zielonego pojęcia o programowaniu w języku assemblera, a znający choć trochę BASIC. Jeśli masz ambicję napisać wspaniały, szybki, wręcz olśniewający program, to zapewne sięgasz po najprostsze rozwiązanie. To znaczy, nie sięgasz po klawisz OPTION przy włączaniu komputera. ATARI BASIC! Jeśli nawet otoczysz się podręcznikami i poradnikami, jedyne co z nich wyczytasz na temat łatwości osiągania wymarzonych efektów, to: ...niestety...bardzo żmudna praca...nie pozwala...nie daje uciekać się do języka maszynowego...szybkość nie jest oszałamiająca...praktyczna przydatność pod znakiem zapytania...zbyt długo...nie można...z powodu...jeszcze jedna wada...znacznie mniejsza szybkość...niezbędna procedura maszynowa... Są to cytaty z "PORADNIKA PROGRAMISTY ATARI" W. Zientary (swoją drogą, bardzo dobrego), wynotowane z rozdziału o grafice i animacji, z kilku zaledwie stron.
Czas na opis. TURBO-BASIC jest jednostronnie zgodny z ATARI BASIC-em, to znaczy, że każdy, kulturalnie napisany program w ATARI BASIC-u będzie działał w TURBO-BASIC-u. Tylko w przypadku programów zapisanych instrukcją LIST wystąpią kłopoty z ich odczytaniem, gdy zawierają słowa kluczowe TURBO-BASIC-a użyte jako nazwy zmiennych. Należy wtedy dokonać zmiany tych nazw. Także programy z zawartymi w nich nierelokowalnymi procedurami maszynowymi mogą źle działać, lub nawet zawiesić komputer, gdyż inny jest obszar pamięci dostępnej dla użytkownika. Takie samo zjawisko wystąpi, jeśli program odwołuje się bezpośrednio do adresów Display Listy (pamięć obrazu jest umieszczana tuż pod RAMTOP-em, a ten jest inny dla obu BASIC-ów). TURBO-BASIC pozostawia dla użytkownika obszar pamięci od adresu 13865 ($3629) do 49151 ($BFFF), przy czym w górnej jego części umieszczana jest jeszcze pamięć obrazu, Wolna pozostaje również szósta strona - 1536 ($0600) do 1791 ($06FF). Instrukcje mogą być wprowadzane w dowolnej formie (w negatywie, małymi literami). Bezpośrednio w programie można stosować liczby szesnastkowe, poprzedzone znakiem $. Nazwy zmiennych muszą się zaczynać od litery i dodatkowo od znaku podkreślenia. Tak, jak w ATARI BASIC-u, interpreter TURBO-BARIC-a odnajduje wiersze przeszukując program od początku. Szybkość wykonywania takiego programu zależy od jego długości i struktury. Można jednak wiersz lub procedurę oznaczyć etykietą (nazwą), wtedy adres takiego wiersza jest umieszczany w tablicy zmiennych. Odwołanie się do etykiety powoduje bezpośredni skok do wiersza lub procedury. W takim przypadku szybkość programu przestaje być zależna od jego długości i położenia w nim wykonywanych wierszy. Etykieta musi być umieszczona na początku wiersza i poprzedzona znakiem #. Z powodu stosowania etykiet tablica zmiennych w TURBO-BASIC-u ma wielkość 256 wpisów (ATARI BASIC - 128). Inny jest sposób pisania programów. Dzięki nowym instrukcjom i funkcjom zbędne jest korzystanie z wielu konstrukcji popularnych w ATARI BASIC-u. Dla utrzymania zgodności z ATARI BASIC-em zachowane zostały instrukcje w zasadzie już zbędne (GOTO, GOSUB, POP).
Oprócz pętli FOR/NEXT oraz instrukcji warunkowej IF/THEN TURBO-BASIC posiada kilka innych rodzajów pętli i instrukcję IF/ELSE/ENDIF. Pozwala to na znacznie prostsze budowanie bloków programu. Oto następne zestawienie:
To tylko niektóre przykłady możliwości TURBO-BASIC-a. Powinno się stosować struktury przeznaczone dla niego zwłaszcza tam, gdzie wymagana jest duża szybkość programu, stosowanie ich znacznie zwiększy przejrzystość programu i bardzo ułatwi pracę. Oczywiście, nic nie stoi na przeszkodzie, by stosować także instrukcje typowe dla ATARI BASICA W tym odcinku naszego kursu pozostałaby jeszcze sprawa współpracy z DOS-em. Tutaj widać znaczną różnicę - w ATARI BASIC-u można przechodzić do DOS-u w każdej chwili bez obaw o utratę programu. Przy TURBO-BASIC-u możemy o tym spokojnie zapomnieć! Przejście do DOS-u powoduje nie tylko utratę BASIC-a, ale i pisanego w nim programu! Po wykonaniu instrukcji DOS doczytywany jest plik DUP.SYS, który niszczy TURBO-BASIC. Są DOS-y, np. II+/D napisany przez S. Dorndorfa, które dają możliwość ponownego uruchomienia TURBO-BASIC-a, należy wykonać komendę RUN 6000, program jednak ulega skasowaniu. Nie polecałbym jednak stosowania tej metody, gdy uda nam się zawiesić komputer a po jego zresetowaniu zgłosi się DOS. Zdarzyło mi się kilka razy tak, że uruchomiony ponownie TURBO-BASIC działał źle, ale ujawniło się to dopiero wtedy, gdy chciałem zapisać na dysk efekty swojej pracy. Aby umożliwić użytkownikowi kontakt z DOS-em TURBO-BASIC został wyposażony w kilka przydatnych instrukcji:
Wszystkie nazwy podajemy na ogólnie przyjętych zasadach korzystania z DOS-u, można używać również znaków specjalnych (*, ?). Należy jednak bardzo uważać na to, co się robi, gdyż nie będzie żadnych ostrzeżeń typu "ARE YOU SURE?" czy brzęczyków i w jednej chwili możemy stracić zawartość dysku. Podane instrukcje potraktowałem na razie bardzo ogólnie, dokładniej zajmiemy się nimi następnym razem. By zakończyć kwestię DOS-u trzeba jeszcze powiedzieć, że nie każdy DOS poprawnie współpracuje z TURBO-BASIC-em. Zanim zdecydujemy się na pisanie programów musimy dokładnie przetestować DOS. Jak? W następnym odcinku. Najczęstszą dolegliwością jest zła współpraca obu programów przy operacjach WE/WY. Ja osobiście wybrałem DOS II+/D v. 6.4, a później wersję na RAM-CART. Mimo kilku błędów, niezbyt uciążliwych na szczęście, jest to, nie tylko w mojej opinii, najlepszy DOS. Zajmuje mało miejsca na dysku i w pamięci, nie ma pliku DUP.SYS, ma niespotykane w innych DOS-ach możliwości (ciekawostką jest możliwość automatycznego zakładania ramdysku na komputerze bez rozszerzenia pamięci), no i co najważniejsze dla nas, to bezbłędna współpraca z TURBO-BASIC-em, jego kompilatorem, jak i biblioteką procedur.
Marek Turowski |