Ten wątek jest jakby kontynuacją, uzupełnieniem, znajdującego się już w Poradniku Atarionline „FAQ o samouruchamianiu programów”. Warto więc zapoznać się z tym FAQ zanim, drogi czytelniku, zaczniesz czytać dalej.
Jak nietrudno się domyślić, zajmiemy się automatycznym uruchamianiem programów w BASIC-u i Turbo BASIC-u XL 1.5. A dokładniej loaderami mojego autorstwa umożliwiającymi „eleganckie” uruchamianie gier.
Potrzebna nam będzie rzeczywista lub wirtualna (ATR) dyskietka z zapisanym, praktycznie dowolnym, DOS-em. Dla ułatwienia takie gotowe dyskietki znajdują się w załączniku. Jest na nich MyDOS 4.50T, ale tylko plik DOS.SYS. Do uruchamiania gier DUP.SYS nie jest potrzebny, zajmuje tylko niepotrzebnie miejsce na dysku. Gdyby z jakiś powodów był potrzebny pełny lub inny DOS, to nic nie stoi na przeszkodzie, aby samemu taki dysk sporządzić. W tym katalogu znajdziemy pokaźny zestaw DOS-ów.
W przypadku Atari BASIC-a użyłem również programu w języku maszynowym o nazwie AUTORUN.SYS zamieszczonego w czasopiśmie „IKS”, zeszyt Programy 2, numer 2/1987.
Pierwszy program, który przedstawię, to AUTORUN.BAS & TB + EXIT. Jak widać po nazwie, jest on uniwersalny – obsługuje zarówno Turbo BASIC XL, jak i Atari BASIC. Znajduje się na dysku AutoBAS single i AutoTBXL single. Służy do wczytywania pojedynczych gier. Zaraz, zaraz, a nie prościej od razu zapisać grę jako AUTORUN.BAS? Niby prościej, ale gdy mamy, powiedzmy 20 dysków z grami, a każda gra nazywa się AUTORUN.BAS... W dodatku, gdy gra ma możliwość wyjścia do AUTORUN.BAS, to próba jej opuszczenia zakończy się ponownym załadowaniem i uruchomieniem. „AUTORUN.BAS & TB + EXIT” ma mechanizm powodujący w takim przypadku przejście do edytora BASIC-a. Aby uzyskać pożądany efekt wystarczy umieścić na odpowiednim dysku grę o dowolnej nazwie. Ważne tylko, aby rozszerzenie tej nazwy było odpowiednio BAS lub TB. I jeszcze uwaga odnośnie Atari BASIC-a. Komputer uruchamiamy bez wciśniętego OPTION, a w emulatorze włączamy BASIC.
Drugi loader to INICJALIZER PROGRAMÓW – BASIC i INICJALIZER PROGRAMÓW TBXL. Jak widać są to oddzielne programy, choć bardzo do siebie podobne. Znajdują się one odpowiednio na dyskietkach AutoBAS multi i AutoTBXL multi. Oba służą do uruchamiania wielu gier – maksymalnie 26 na jednym dysku. Wystarczy teraz zapisać na wybranym dysku nasze programy. Te, które ma widzieć inicjalizer muszą mieć rozszerzenie BAS (Atari BASIC) lub TB (TBXL). Teraz uruchamiamy komputer. Jeśli to pierwsze uruchomienie, nastąpi od razu przejście do edytora, jeśli nie, naciskamy SET (SHIFT + TAB). Możemy teraz wpisać nazwy gier zawierające do 16 znaków. Jeśli chcemy odczytać zawartość innego dysku (tak samo przygotowanego) to nie trzeba uruchamiać wszystkiego od nowa. Wystarczy wymienić dysk i nacisnąć ESC. A tak wygląda przykładowe menu:
Jest jeszcze jeden program. W 1989 napisałem Inicjalizer TB & CTB. Obsługuje on zarówno programy pod interpreterem TB jak i skompilowane. Obecna wersja, nieco poprawiona, pochodzi 1990 roku. Jako że był to chyba pierwszy napisany przeze mnie program w TB ma on pewne wady. Jak czas pozwoli i będą chęci to postaram się go poprawić, chyba że ktoś mnie wyręczy :) Ważne, że działa. Na dysku „Inicjalizer TB&CTB” znajdują się cztery loadery AINIC – dwa dla gier pod interpreterem i dwa dla skompilowanych. Ten z cyfrą „1” działa typowo – aby wybrać grę naciskamy odpowiedni klawisz literowy. W tym z „2” wyboru dokonujemy klawiszami ze strzałkami (↑ ↓) i RETURN. W załączniku są już dwie „dyskietki” ATR przygotowane do umieszczenia na nich gier w TBXL interpretowanym (AINIC TB) i skompilowanym (AINIC CTB) z zapisanym loaderem „AINIC1”. Wystarczy umieścić na wybranej nasze gry zwracając uwagę na rozszerzenie nazwy (TB albo CTB). Następnie uruchamiamy dysk „Inicjalizer TB&CTB”. Załaduje nam się DOS. Wybieramy opcję „L” i w zależności od potrzeby wczytujemy TBASICXL (TB*) albo RUNTIME (RUN*). Dalej postępujemy zgodnie z potrzebami i tym co wyświetla się na ekranie.
A tak wygląda przykładowe menu loadera:
Inicjalizer TB&CTB ma jeszcze jedną właściwość. Gdy na dysku znajduje się tylko jedna gra, uruchamia ją automatycznie bez potrzeby wciskania czegokolwiek. Dlatego może być używany z powodzeniem do uruchamiania pojedynczych gier.
Jeśli zamierzamy stworzyć własny dysk, to powinny na nim znaleźć się oprócz DOS-a następujące programy: – interpreter: TBASICXL zapisany jako AUTORUN.SYS i AINIC1.TB lub AINIC2.TB zapisany jako AUTORUN.BAS oraz gry z rozszerzeniem TB. – kompilator: RUNTIME zapisany jako AUTORUN.SYS i AINIC1.CTB lub AINIC2.CTB zapisany jako AUTORUN.CTB oraz gry z rozszerzeniem CTB.
Nie testowałem wersji tu umieszczonych, ale pamiętam, że loadery, których użyłeś wcześniej wymagają włącznia Basic'a. Można to ominąć zapisując przy pomocy BCOM prosty program np.: 10 RUN"D:AUTORUN.BAS" jako AUTORUN.SYS. BCOM działa z większością programów w Basic'u. Ewentualnie można przygotować własną procedurę maszynową. W wątku BCOM jest jeszcze procedura, która umożliwia wyłączanie Basic'a - procedury pochodzą z magazynu Flop.
No tak, ale taka sztuczka z BCOM nie uda się z programem "INICJALIZER PROGRAMÓW – BASIC" gdyż on sam się programuje. Jedynym rozwiązaniem, jak sądzę, byłoby poprawienie AUTORUN.SYS z IKS-a albo napisanie od nowa.
Nie, bo sadzac po produkcjach ("Rocket Rescue"), jest to dyskietka przygotowana dzien, dwa temu. Mozesz sciagnac te gry z osobna i samemu zrobic taka dyskietke wedle przepisu Blukiego. Szczegolnie, ze "Rocket Rescue" ma nowa wersje z dzisiaj - 1.3 :).
Złożenie jej samemu zepsuje iluzję, że kupiłem to na giełdzie na Grzybowskiej, w 5 godzin pociągiem do domu i w środku nocy trach dyskietkę do środka napędu Atari.
Autor nie ma nic naprzeciwko (z wyjątkiem drzewa, jak wyjrzę przez okno). Ale jeśli już, to może jakoś zgrabnie połączyć z „FAQ o samouruchamianiu programów”?