Tajemnice ATARI

Ludzie listy piszą...


   Mam napisany program w Basicu. Nie chciałbym, aby wgrywał się przez CLOAD czy RUN "C:". Najlepszym rozwiązaniem jest użycie klawisza START. Jak to zrobić? Michał Pierzchała

   Nadeszło ostatnio wiele listów podobnej treści. Pytanie jest o tyle kłopotliwe, że istnieją dziesiątki "patentów" na zrealizowanie takiego zadania. Jest to, oczywiście, działanie wbrew naturze, bo najwłaściwszym sposobem uruchamiania programu BASICowego jest właśnie CLOAD i RUN. Istnieje teoria, mówiąca, że kiepscy programiści stosują tego typu metody, by ukryć przed oczami ciekawskich teksty programów, których się wstydzą. Ale skoro Państwo się uparli...

   Idea przedstawionego poniżej programu zasadza się na powszechnie znanym triku z "samoczynnym RETURNem". Po wykonaniu rozkazu POKE 842,13 system sam sobie naciska klawisz RETURN, w wyniku czego wszystkie napotkane na ekranie napisy są przyjmowane jako rozkazy do wykonania. Wystarczy zatem wypisać na ekranie CLOAD, a poniżej RUN, ustawić kursor ponad tymi napisami i wstawić 13 pod adres 842. Trzeba tylko przewidzieć odpowiednie odstępy między wierszami rozkazów, ponieważ BASIC na wstępie pracy, a także po wykonaniu CLOAD wypisuje swoje "READY".

   W praktyce, aby nie trzeba było zaczynać każdego uruchamianego tym sposobem programu od rozkazu POKE 842,12 (co przywraca normalny tryb klawisza RETURN), trzeba go dopisać tuż przed RUN:

POKE 842,12:RUN

Można ukryć te wszystkie Poczynania, nadając literom na ekranie kolor tła, i dodając na początku powyższego wiersza rozkaz GRAPHICS 0.
10 OPEN #1,8,128,"C:":TRAP 30
20 READ B:PUT #1,B:GOTO 20
30 CLOSE #1:END 
100 REM *--------------------------*
110 REM :       BASIC Loader       :
120 REM :   Tajemnice Atari 1991   :
130 REM *--------------------------*
140 DATA 0,1,0,1,8,1,24,96,173,198,2
150 DATA 141,197,2,162,0,169,11,157
160 DATA 66,3,169,53,157,68,3,169,1
170 DATA 157,69,3,169,36,157,72,3,169
180 DATA 0,157,73,3,32,86,228,169,13
190 DATA 157,74,3,141,252,2,96,29,29
200 DATA 67,76,79,65,68,29,29,155,71
210 DATA 82,46,48,58,80,79,75,46,56
220 DATA 52,50,44,49,50,58,82,85,78
230 DATA 155,28,28,28,28,28,28
   Powyższy program po uruchomieniu wyemituje plik kasetowy w formacie "BOOT". Swój program w BASIC-u nagrywamy tuż za tym uruchamiaczem.

(jbw)

   Używam COS-u opublikowanego na łamach TA. Niestety, nie działa w nim rozkaz DIR. Po wyświetleniu komunikatu i nagłówka tabelki komputer zawiesza się.

   To pytanie powraca w wielu listach. Oczywiście komputer się nie zawiesza, tylko nie dogadał się z użytkownikiem. System COS został napisany jako prosty symulator DOS-u, pozwalający uruchamiać programy przeznaczone pierwotnie dla systemu dyskowego. Ustawia on parametry pracy komputera tak, by wczytywanym programom wydawało się, że działają w DOS-ie. Lecz obsługa magnetofonu w COS-ie nie została w żaden sposób ulepszona. Tak jak zawsze należy po usłyszeniu charakterystycznego sygnału (tzw. trąbki) ustawić taśmę w odpowiednim miejscu, wcisnąć klawisz PLAY w magnetofonie, a następnie nacisnąć dowolny klawisz komputera. Mylące może być to, że Dm uruchamia silnik magnetofonu, lecz służy to tylko dla naszej wygody przy odszukiwaniu początków programów. Pracy silnika nie towarzyszy tym razem odczyt zawartości kasety - do tego trzeba po odnalezieniu "na słuch" początku programu dać klawiszem znak komputerowi, że może już zacząć czytać. Gdy tylko COS odczyta pierwszy blok pliku, wypisze znalezione tam informacje i przejdzie do oczekiwania na przewinięcie następnego pliku... i tak w nieskończoność, a ściślej: do naciśnięcia klawisza BREAK.

(jbw)



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2001