1. Jak spowodować, by program w Atari Basic-u sam się uruchamiał z dyskietki?
METODA 1 Pytanie na temat samouruchamiających się programów w Basic-u z dyskietki pada często, bo umiejętność wykonania tego jest bardzo przydatna w praktyce. Odpowiada więc Arek „ArSoft” Lubaszka:
Mając program w Atari Basic-u, bez problemu możemy stworzyć dyskietkę, która po uruchomieniu w Atari (czy emulatorze) wczyta i automatycznie go wystartuje.
Potrzebujemy do tego przygotowaną wcześniej dyskietkę z DOS II+/D. Spostrzegawcze i dociekliwe osoby zobaczą, że na dyskietce oprócz DOS-a jest jeszcze plik START.BAT. Jest to plik wsadowy z poleceniami włączenia Basic-a oraz uruchomienia Basic-owego pliku o nazwie PROGRAM.BAS. DOS jest już przygotowany do uruchomienia wspomnianego pliku wsadowego poprzez wykonanie polecenia JOB @START.BAT. Piszę o tym wszystkim, ale tak naprawdę są to informację techniczne, które wcale nie muszą być znane. Ważne jest, że mamy gotową dyskietkę.
Teraz wystarczy nagrać na nią program w Basic-u. Możemy to zrobić w dowolny sposób. Z poziomu Atari są dwie możliwości: za pomocą dowolnego programu kopiującego albo bezpośrednio z Basic-a poprzez komendę SAVE "D:PROGRAM.BAS". Z poziomu peceta dowolnym programem służącym do „grzebania” po dyskach w formacie ATR, na przykład „AtrUtli95” albo „MakeATR”. Program ten musi mieć możliwość dołączenia pliku do katalogu dyskietki – służąca temu opcja będzie się nazywać „INSERT BIN” lub „INSERT”. Nasz program w Basic-u może się składać z wielu plików. Dogrywamy je wszystkie. Ważne jest, aby dograć pliki do już istniejących, których nie wolno nam skasować!
Teraz najważniejsze. Plik w Basic-u musi mieć nazwę „PROGRAM.BAS”. W związku z czym, jeśli nazwa pliku jest inna, zmieniamy na wyżej wymienioną. W przypadku programu składającego się z kilku plików – nazwę zmieniamy w pliku, który chcemy, aby się uruchomił jako pierwszy. Koniec. Mamy dyskietkę, która samodzielnie uruchomi nasz program. Mało tego – w razie potrzeby samodzielnie włączy Basic, co w przypadku emulatora i włączonej opcji „DISABLE BASIC” jest bardzo... sympatyczne ;)
Oczywiście sposobów na samouruchamianie się programów Basic-owych jest całe mnóstwo. Mój jest tylko jednym z wielu, ale prostym i skutecznym. Mam nadzieję, że teraz nawet laicy będą potrafili stworzyć sobie plik ATR z programem w Basic-u.
METODA 2 Tyle Arek, a moja metoda jest troszkę inna i nie wymaga zmiany nazwy pliku, więc ją też podaję. Do operacji używam dyskietki z prościutkim programem w Basicu o nazwie "Automake".
Najpierw przygotowujemy dyskietkę z programem w Atari Basic, który ma się automatycznie uruchamiać. Na dysku musi być DOS (tutaj przykład takiej czystej dyskietki z DOS-em 2.5) oraz program, którego nazwę musimy zapamiętać. W naszym przykładzie niech to będzie GIERKA.BAS. Jeżeli plik ten BAS mamy osobno, należy go dograć na dyskietkę tak, jak opisał to powyżej Arek.
Teraz uruchamiamy dysk z "Automake". Ponieważ jest to program w Basicu, dysk z tym programem trzeba uruchamiać na Atari bez wciskania klawiszy START czy OPTION, a na emulatorze z włączonym Basic-iem (nie powinno być zaznaczone "Disable Basic" w opcji "Options" w menu "Atari").
Program po uruchomieniu zapyta się o nazwę pliku, który ma być potem samouruchamiający się. Wpisujemy zapamiętaną nazwę i potwierdzamy klawiszem RETURN.
Teraz program prosi o włożenie do stacji dysków dyskietki z pożądanym programem. Na emulatorze robimy to wciskając klawisze ALT i 1 i podając plik ATR z przygotowaną przez nas dyskietką. Chwila oczekiwania i gotowe. Jeżeli program nie zgłosił błędu (co może sie zdarzyć, jeśli na przykład podaliśmy błędną nazwę, nie udało się rozpoznać DOS-a, dysk jest zabezpieczony przed zapisem, itd.) to możemy zrestartować komputer bez wciskania START i OPTION (lub emulator z włączonym Basic-iem), a program GIERKA.BAS sam się nam uruchomi.
METODA 3 Arek "ArSoft" Lubaszka dodaje też trzeci sposób: stary DOS 2.5 też ma opcję kreowania dyskietki z samouruchamiającym się programem w Atari Basic-u. Jest to opcja trochę ukryta i z tego powodu nie każdy o niej może wie.
Na oryginalnych dyskach DOS 2.5 jest program SETUP.COM, który należy uruchomić (wybieramy w DOS opcję LOAD BIN FILE, potem wpisujemy nazwę programu SETUP.COM i wciskamy klawisz Return).
W menu programu wybieramy najpierw opcję numer 3 czyli "Set up AUTORUN for Boot". Pojawi się menu "Make an AUTORUN.SYS program file" z którego wybieramy pozycję numer 2 - "A BASIC progam will automatically load and RUN".
Wkładamy dysk z programem, który chcemy zrobić samouruchamialny, podajemu jego nazwę i kreator tworzy plik AUTORUN.SYS, który później automatycznie będzie nam uruchamiał nasz program.
Do wad należy zaliczyć konieczność włączania Basic-a przy każdym starcie. W przypadku prawdziwego Atari to mniejszy problem - nie wciskamy klawisza Option, ale w przypadku emulatora, gdzie raczej mamy "na stałe" wyłaczony Basic, to może być mały kłopot. W obu przypadkach niestety należy o tym Basic-u pamiętać! Na dyskietkach z DOS II/+ jest inaczej.
2. Jak spowodować, by program dla Atari z rozszerzeniem XEX (EXE, COM) sam się uruchamiał z dyskietki?
METODA 1 Niezmordowany Arek „ArSoft” Lubaszka odpowiada, że wystarczy odpowiednia dyskietka z DOS II+/D, przygotowana do całej poniższej operacji.
Na taką dyskietkę dogrywamy dowolnym sposobem (jakimś programem kopiującym z poziomu Atari lub programem „AtrUtil95” lub „MakeATR” z poziomu peceta) plik z grą w formacie DOS-owym (ważne!) czyli nasze XEX lub EXE lub COM.
W razie potrzeby zmieniamy nazwę na akceptowalną przez Atari czyli 8 znaków nazwy plus 3 znaki rozszerzenia (na przykład GIERKA12.XEX). Na koniec bootujemy dyskietkę - uruchomi nam się wspomniany DOS II+/D, w którym wpisujemy polecenie "JOB GIERKA12.XEX", gdzie GIERKA12.XEX oznacza przykładową nazwę naszego pliku.
To wszystko - jesteśmy posiadaczami samouruchamiającego się programu. Restartujemy komputer, żeby przekonać się, że to prawda.
METODA 2 Oczywiście powyższy sposób będzie działać w przypadku programów, które normalnie uruchamiają się z tym DOS-em. Pozostałe pliki XEX można przetworzyć do wersji ATR czyli akceptowalnej nie tylko przez emulator, ale na przykład przez interfejs SIO2IDE.
Trzeba to wykonać za pomocą programu „AtrUtil95”, w którym po uruchomieniu wybieramy opcję "Create".
W okienku, które się pokaże, zaznaczamy "Auto Boot" i jeszcze raz wybieramy "Create". Pokaże się okienko do wyboru pliku XEX (COM, EXE), wybieramy więc program, który zostanie przekonwertowany do formatu ATR.
Gotowy plik możemy teraz zapisać przez opcję "Save" lub "Save As".
Według mnie jest to najlepsze rozwiązanie - praktycznie wszystkie gry, które nie wymagają obecności DOS-a w pamięci oraz nic nie doczytują w trakcie pracy - łatwiej i wygodniej jest przerobić na plik ATR właśnie w ten sposób - za pomocą „AtrUtil95”.
METODA 3 Arek "ArSoft" Lubaszka dołożył też metodę numer 3. W przypadku dyskietki z DOS 2.5 i programów XEX, EXE i COM, które będą działały z tym DOS-em, to wystarczy zmienić nazwę naszego pliku na AUTORUN.SYS i już! W MyDOS (zapewne nie we wszystkich odmianach, ale na pewno w tej najpopularniejszej czyli 4.53) zmieniamy rozszerzenie naszego programu z XEX, EXE lub COM na AR0 (zero, nie litera O). Pamiętajmy, że nie wszystkie programy, a gry w szczególności, tolerują obecność DOS-a w pamięci. Metoda numer 2 czyli utworzenie dyskietki opcją "Auto Boot" w programie "AtrUtil95" jest chyba najskuteczniejsza.
3. Jak spowodować, by program w Atari Basic, ładowany komendą CLOAD, sam się uruchamiał z kasety?
Program-loader, którego użyjemy, wydrukowany został w „Bajtku” numer 4/1988, a jego autorem jest Tomasz Waligóra. Program ten o nazwie „AutoBOOT Basic Loader” nagrałem na dyskietce.
Po jej uruchomieniu wystartuje program generujący loader. Po usłyszeniu dwóch atarowskich "trąbek" możemy włączyć nagrywanie w magnetofonie (w realnym świecie) lub stworzyć nowy plik CAS (w wirtualnym świecie emulatora).
Plik CAS tworzymy w emulatorze wchodząc w menu „Atari”, tam wybierając „Tape recorder...” i „New image...”, a na końcu „Create”. Po powrocie do programu „AutoBOOT Basic Loader” naciskamy spację lub inny, prawie dowolny, klawisz. Na kasecie zostanie nagrany loader. Taki gotowy loader jest też tutaj. Proszę eksperymenty robić na kopii tego pliku, bo oryginał może się nam jeszcze przydać!
Ładujemy teraz, poprzez CLOAD, program w Basic-u, który chcemy uczynić samouruchamialnym. Pakujemy do magnetofonu kasetę ze stworzonym przed chwilą leaderem lub z gotowym leaderem, który przygotowałem (przypominam: w emulatorze menu „Atari” --> „Tape recorder...” --> „Browse...” --> „OK”). Bardzo ważne: ustawiamy kasetę na końcu taśmy! Robimy to dlatego, iż nasz program w Basic-u musimy nagrać po loaderze.
Jeśli już mamy przygotowaną taśmę, piszemy CSAVE, naciskamy RETURN, spację i... w moim emulatorze Reset (F5). Nie wiem dlaczego, ale emulator - przynajmniej u mnie - się sypie. Nagrywanie się kończy, wyświetla się napis READY, a pisk z głośnika dalej słychać. Niedoróbka Atari800Win Plus, czy jak?
Po tym zabiegu mamy plik CAS z nagranym loaderem i programem w Basic-u. Teraz już możemy sprawdzić efekty naszej pracy. Jeśli mamy powiązany plik CAS z emulatorem, to wystarczy kliknąć dwa razy na pliku CAS. W przeciwnym razie uruchamiamy emulator, naciskamy ALT+B i wskazujemy nasz plik CAS. Z opcji "Attach Tape" nie radzę korzystać. I jeszcze jedno: koniecznie w emulatorze należy włączyć Basic, bo inaczej nic z tego nie wyjdzie. Przykładowa gra zapisana tym sposobem to "Space Rescue". W pliku CAS „zaszyte” są dwa programy. Pierwszy to oczywiście nasz loader, a drugi to właściwy plik z grą w Basic-u zapisany funkcją CSAVE.
4. Jak spowodować, by można było z dyskietki wybrać i automatycznie uruchomić programy w Atari Basic-u?
Kolejny raz na pytanie zareagował Arek „ArSoft” Lubaszka: jeśli tylko chcemy utworzyć sobie dyskietkę z wieloma programami w Basic-u, to wystarczy programy te dołączyć do już istniejących plików na dyskietce z loaderem mojego autorstwa "Basic File Loader II". Oczywiście jak zwykle zróbmy to na kopii naszej dyskietki, bo oryginał może nam się jeszcze przydać. Dyskietka jest tak przygotowana, że po jej uruchomieniu pojawi się nam menu z naszymi programami w Basic-u. Aby tak się stało pliki z programami w Basic-u muszą mieć:
rozszerzenie BAS (z poziomu DOS II+/D można zmienić nazwę pliku wpisując komendę REN stara_nazwa.rozszerzenie nowa_nazwa.BAS, gdzie oczywiście nazwy muszą być w akceptowanym przez Atari formacie (nazwa maksymalnie 8 znaków i maksymalnie 3 znaki rozszerzenia po kropce, na przykład: BIORYTMY.BAS),
plik ten musi być zabezpieczony przed skasowaniem (w DOS II+/D wykonujemy to komendą LOC nazwa_pliku.BAS - uwagi na temat nazwy jak wyżej).
Jeśli programy nie będą spełniały tych dwóch warunków, to pomimo tego, że będą na dyskietce, to loader ich nie wyświetli. Bierze się to z tego, iż loader nie wyświetla całego katalogu, lecz tylko pliki, które mogą się uruchomić i chcemy, aby się pojawiły w menu. Przy wieloblokowych programach w Basic-u wystarczy, że pierwszy plik będzie miał rozszerzenie BAS i będzie zabezpieczony. Pozostałe pliki należące do tego programu, mające inne rozszerzenie lub z rozszerzeniem BAS, ale nie przeznaczone do samodzielnego uruchomienia, nie będę zaśmiecały naszego menu.
Przykładowy ekran menu z wieloma programami do wyboru
Z wyświetlonych programów wybieramy ten, który nas interesuje i naciskamy literkę (lub cyfrę w przypadku większej ilości programów) poprzedzającą nazwę pliku do uruchomienia. Jednorazowo na ekranie możemy mieć maksymalnie 32 nazwy plików. Jeśli na dyskietce mamy więcej programów, to pojawi się nam dodatkowa opcja: "RETURN - dalej". W takim przypadku po naciśnięciu klawisza Return (Enter na emulatorze) loader zacznie wyświetlać pozostałe nazwy. I tak w nieskończoność... No prawie. Każdy DOS ma jakąś pojemność wpisów w katalogu :) Klawiszem Esc możemy wymusić odczyt katalogu dyskietki od początku.
Program ten to mocno zmodyfikowana wersja mojego starego loadera programów Basic-owych. Mam nadzieję, że na potrzeby atarionline.pl będzie jak znalazł. Stary loader (jak się dzisiaj okazało - z poważnymi błędami, które uniemożliwiały wyświetlanie większej ilości plików) używałem krótko, ponieważ przerzuciłem się na pisanie w Turbo-Basicu XL. Jak zwykle w przypadku "moich" loaderów nie ma potrzeby pamiętać o włączeniu Basic-a w emulatorze. Plik wsadowy na dyskietce zrobi to za nas. Oczywiście żadna w tym moja zasługa, lecz specyfika DOS II+/D.
5. Jak zrobić dyskietkę uruchamiającą programy w Advan Basic?
Na moją prośbę kolega Łukasz "LukLab" Labuda opracował metodę "samouruchamiania" programów w Advan Basic. Gdy natrafimy na plik z programem w tym języku i chcemy go mieć w formie prawie samouruchamialnej dyskietki (prawie, bo do uruchomienia wymagane jest naciśnięcie klawisza), to zamiast przechodzić żmudnie przez naukę i uruchomienie całego pakietu Advan Basic, korzystamy z przygotowanej przez Łukasza dyskietki.
Advan Basic Run.atr to przygotowana przez niego dyskietka, na którą wystarczy skopiować program napisany w Advan Basicu po jego kompilacji, koniecznie jednak z rozszerzeniem .com. Nazwa każdego pliku umieszczonego na tej dyskietce z tym rozszerzeniem będzie widoczna w menu umożliwiającym wybór konkretnego programu do uruchomienia. Dyskietka do nagrania pliku/plików com jest dostępna tutaj. Doprowadzenie swojego programu w Advan Basicu do postaci skompilowanej opisał Łukasz w tym poradniku.
2007-07-22 00:53 by Kaz
komentarzy: 20
DartMan-Father @2007-07-22 02:18:47
Dzieki Kaz! Metoda nr 1 wydaje mi sie łatwiejsza w użyciu. Juz mam pare(nascie) nowych plików ATR a noc młoda :) Jak wroce z urlopu pokombinuje nad jakims loaderem w BASICu, dzięki któremu mógłbym wybrac sobie z np 20 programików, no chyba że jest jakieś rozwiązanie... ;) Pozdrawiam i jeszcze raz dzięki. LongLiveAtari
Nie ma sprawy. Jak znajdziesz sposob to opisz go, przyslij programik, opublikujemy w FAQ.
Urborg @2007-07-22 06:44:01
Fajnie że jest taki FAQ. Ja niby tyle lat miałem Atari, a nie wiedziałem jak zrobić samouruchamiającą się dyskietkę z programem w basicu. Choć może to dlatego że nie miałem nigdy stacji dysków.
Jurgi @2007-07-22 08:12:56
Czy nie istnieje jakiś inicjalizer, pozwalający wybrać i załadować z dyskietki programy w basicu, zamiasta (/oraz) maszynowych?
Jeśli ktoś używa Q-mega 4.04, to jego loader ("L" w menu) oprócz binarek potrafi ładować BASy, o ile pamiętam.
Już poszło. Sorki - miałem mały problem. Wysłałem gotową do użycia dyskietkę, na którą możemy nagrać wiele programów w Basic-u. Po jej uruchomieniu pojawia się menu, z którego możemy wybrać interesujący nas program. Loader służy do wyboru i uruchomienia tylko programów w Basic-u! Może się komuś przyda.
Niestety jest problem. Mam kilkanascie programów w basicu w wersji CAS, które mymagają Os-A lub Os-B. Jednakże AutoBOOT Basic Loader powoduje zwis (przynajmniej na emulcu). Czy jest na to jakiś sposób, tzn. żeby programy autorunowały? Ktoś wie?
Loader ten widocznie był pisany dla maszyn XL/XE i pod OS B nie ruszy. Zgraj grę na dyskietkę z DOS 2.5 i postępuj wg opisanej tu METODY nr 3. Później pamiętaj, aby przed uruchomieniem gry włączyć OS B oraz Basic. Działa na 100% :)
jhusak @2011-10-29 16:34:26
A ja teraz nie potrafię (kiedyś mi się udało) uruchomić programu w basicu przez prosty skok jmp. chodzi o taki loader, który wczyta program w basicu i uruchomi go przez skok pod jakiś adres, a nie przez wpisanie run i enter.