Ready/Run

Takie sobie archiwum listingów ze starych magazynów komputerowych

Listingi w bazie
Dodaj listing
  • Wyścigi Samochodowe

    Cześć Maluchy!
    Przyszedł do Was z wizytą kolega. Nie należy — jak Wy — do Komputerowych Przedszkolaków, a więc komputer jest dla niego urządzeniem egzotycznym i nieco tajemniczym. Po wypróbowaniu kilku gier kolega odkłada drążek sterowy i pyta: „Czy mógłbyś mi pokazać, na czym polega to programowanie?“


    W tym momencie stajesz przed poważnym problemem. Jak w ciągu kilkunastu minut przedstawić zasadę programowania? Warto by było napisać także jakiś prosty program. Zwykle taki pokaz kończy się na stworzeniu czegoś podobnego do tego:

    10 PRINT "Jurek-Ogorek, kiełbasa i sznurek"
    20 PRINT
    30 PRINT
    40 GOTO 10
    (Oczywiście jeśli nasz kolega ma na imię Jerzy.)

    Trzeba przyznać — faktycznie — można nazwać to programem i to napisanym jedynie przy pomocy dwóch instrukcji. Kolega stwierdza, że programowanie jest zajęciem fascynującym, ale prawdę mówiąc minę ma nieco zawiedzioną. A może da się wymyślić coś ciekawszego i równie prostego? Właśnie coś takiego chciałem Wam zaproponować. Będą to wyścigi samochodowe napisane przy pomocy tylko jednej instrukcji (PRINT). Rozpoczniemy od zaprogramowania samochodu wyścigowego.

    110 PRINT "                     _"
    120 PRINT "                 ()-/ -()"
    130 PRINT "                   / 1 "
    140 PRINT "                   :/+:"
    150 PRINT "                   :!o!:"
    160 PRINT "                ()-< U >-()"
    170 PRINT "                    ./"
    RUN                              >ENTER/RETURN<
                   _"
               ()-/ -()"
                 / 1 "
                 :/+:"
                 :!o!:"
              ()-< U >-()"
                  ./"
    Ready

    No dobrze, mamy samochód, ale on stoi w miejscu. Poruszymy go również przy pomocy instrukcji PRINT. Uzupełnimy nasz program o następujące linie:

    101 PRINT: PRINT: PRINT: PRINT: PRINT:
    102 PRINT: PRINT: PRINT: PRINT: PRINT:
    103 PRINT: PRINT: PRINT: PRINT: PRINT:
    104 PRINT: PRINT: PRINT: PRINT: PRINT:
    105 PRINT: PRINT: PRINT: PRINT: PRINT:
    171 PRINT: PRINT: PRINT: PRINT: PRINT:
    172 PRINT: PRINT: PRINT: PRINT: PRINT:
    173 PRINT: PRINT: PRINT: PRINT: PRINT:
    174 PRINT: PRINT: PRINT: PRINT: PRINT:
    175 PRINT: PRINT: PRINT: PRINT: PRINT:

    Ruszył naprawdę. Najpierw wszystkie napisy uciekły do góry, a następnie zza dolnej krawędzi ekranu wyskoczył nasz samochód, przejechał przez cały ekran i zniknął za jego górną krawędzią. Wykorzystaliśmy tutaj zjawisko tak zwanego „przewijania“ ekranu, czyli przesuwania wszystkiego, co znajduje się na ekranie do góry w momencie, gdy kolejna linia nie mieści się na ekranie. W przypadku komputera ZX Spectrum i jego licznej rodzinki sprawa troszeczkę się komplikuje. Otóż Spectrum po zapełnieniu całego ekranu zatrzymuje program i czeka na naciśnięcie dowolnego klawisza. Można tego uniknąć wpisując po uruchomieniu komputera:
    POKE 23692,255: REM *** Tylko Spectrum ***
    Oczywiście należy to zrobić tak, aby nie widział tego nasz kolega, bo mu się znowu wszystko pomiesza w głowie.
    Ale co to za wyścigi skoro mamy tylko jeden samochód? Czym prędzej musimy nadrobić to karygodne zaniedbanie. Oto program rysujący i uruchamiający kolejne samochody.

    110 PRINT "               _"
    120 PRINT "           ()-/ -()"
    130 PRINT "             / 1 "
    140 PRINT "             :/+:"
    150 PRINT "             :!o!:"
    160 PRINT "          ()-< U >-()"
    170 PRINT "           ./"
    171 PRINT: PRINT: PRINT: PRINT: PRINT:
    172 PRINT: PRINT: PRINT: PRINT: PRINT:
    210 PRINT "       x"
    220 PRINT "   ()-/ -()"
    230 PRINT "     o 2 o"
    240 PRINT "     //-"
    250 PRINT "   : !*! :"
    260 PRINT "  ##-: U :-##"
    270 PRINT "      ./"
    271 PRINT: PRINT: PRINT: PRINT: PRINT:
    272 PRINT: PRINT: PRINT: PRINT: PRINT:
    310 PRINT "                       ."
    320 PRINT "                   {}-/ -{}"
    330 PRINT "                      ( 4 )"
    340 PRINT "                      </->"
    350 PRINT "                      (!*!)"
    360 PRINT "                   []-: U :-[]"
    370 PRINT "                      :---:"
    371 PRINT: PRINT: PRINT: PRINT: PRINT:
    410 PRINT "       _"
    420 PRINT "   {}-/ -{}"
    430 PRINT "     : 3 :"
    440 PRINT "     :/-:"
    450 PRINT "     :!*!:"
    460 PRINT "  {}-: U :-{}"
    470 PRINT "      ./"
    471 PRINT: PRINT: PRINT: PRINT: PRINT:
    472 PRINT: PRINT: PRINT: PRINT: PRINT:
    473 PRINT: PRINT: PRINT: PRINT: PRINT:
    474 PRINT: PRINT: PRINT: PRINT: PRINT:
    475 PRINT: PRINT: PRINT: PRINT: PRINT:


    Przy okazji usuńmy linie 173, 174 i 175. Wpisując numer linii i naciskając >ENTER/RETURN<. Zmniejszy to dystans pomiędzy pierwszym samochodem a następnymi.
    Pisząc cały ten program skorzystaliśmy dotychczas tylko z jednej instrukcji — instrukcji PRINT. Musicie przyznać, że efekt jest interesujący. Niestety program wykonuje się bardzo szybko i trzeba go uruchamiać od nowa. Są na to dwie rady. Po pierwsze można dopisywać do programu kolejne samochody, a po drugie można wprowadzić nową instrukcję. Łatwiejsze będzie z pewnością to drugie rozwiązanie, tym bardziej, że ta „nowa instrukcja“ nie jest wcale dla nas (a nawet dla Waszego kolegi) nowa. Chodzi tu oczywiście o rozkaz RUN. Przyzwyczailiśmy się korzystać z niego wyłącznie do uruchamiania programu, a tymczasem może on być z powodzeniem wykorzystywany w treści programu.
    Dopiszmy więc ostatnią linię.

    500 RUN

    Teraz nasz program będzie biegał w kółko, aż mu nie przerwiemy lub nie wyłączymy komputera. Szerokiej drogi i gumowych drzew życzy Wam

     

    Autor listingu: Roman 'Romek' Poznański

    Listing nadesłał: Faust

    Język programu: Locomotive Basic

    Stan listingu:

    4
    Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
  • Weryfikator 3

    Oto trzecia wersja programu „Weryfikator“, służącego do kontroli wpisywanych listingów. Uważam, iż jest to wersja jak na razie najdoskonalsza. Nie zajmuje obszaru przeznaczonego na grafikę użytkownika, współpracuje z Interface 1 i jest krótsza od wersji II. Dodatkowo suma kontrolna wyświetlana jest przed numerem linii, zaś zmieniając kod w linii 130 można uzyskać wydruk sumy w nawiasach. Jest to szczególnie ważne w przypadku używania drukarek pozbawionych możliwości drukowania w negatywie.
    Podobnie, jak pozostałe wersje, tak i ta oblicza sumę kodów instrukcji modulo (256) pomniejszoną o 9.
     

    Autor listingu: Andrzej M. Grossman

    Listing nadesłał: Faust

    Język programu: Basic

    Stan listingu:

    4
    Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
  • Perkusja

    Amstrad, po przejęciu firmy Sinclaira, nie tytko utrzymał produkcję ZX Spectrum 128, ale wprowadził na rynek dwa nowe modele ZX Spectrum oznaczone +2 i +3, zgodne ze starym 128 KB, a nawet wyposażone w tryb emulacji Spectrum 48.


    Te trzy komputery różnią się od swoich młodszych braci nie tylko pamięcią, ale i układem do generacji dźwięku. „Gumiak“ nigdy nie miał zbyt wielkich możliwości dźwiękowych, ale już w ZX Spectrum 128 wprowadzono trójkanałowy generator AY 3—8910, który wcześniej zastosowany był w ośmiobitowych maszynach Amstrada.
    Zwiększone możliwości muzyczne Spectrum wykorzystywane są w wielu grach, powstałych w 1987 roku i później. Istnieje także kilka programów muzycznych (ja miałem do czynienia na razie z trzema — The Music Box 128, Music Studio 128 i Mozart).
    Po takim wstępie chciałbym zaprezentować procedurę, która może przydać się tym wszystkim, którzy w swoich programach chcieliby wykorzystywać dźwięki z generatora a zwykła instrukcja PLAY już im nie wystarcza. Po uruchomieniu programu otrzymujemy do dyspozycji dziesięć dźwięków o perkusyjnym brzmieniu. Większa jego część jest napisana w kodzie maszynowym lecz do prawidłowej pracy potrzebny jest choć fragment programu w Basicu — co najmniej od linii 200. Pomysł został zaczerpnięty z programami MICRORYTHM i jest to jego najbardziej uproszczona wersja. Opis programu:
    5—80  przepisanie  do  pamięci kodu maszynowego 
    100—130  przepisanie do  pamięci kodu dźwięków
    200—210 odtwarzanie dźwięków
    220 wyłączenie generatora
    250 kody dźwiękowe
    300 graficzne odwzorowanie aktualnego dźwięku
    Najważniejszą częścią programu jest kod maszynowy, umieszczony w dwóch niezbyt odległych od siebie miejscach pamięci. Ze względu na takie rozmieszczenie konieczne jest użycie instrukcji skoku. Z tego powodu kod nie jest relokowalny.
    Program „Perkusja“ może być uruchomiony także na Spectrum 48 z dołączonym generatorem dźwięków i dlatego dźwięk wyłączany jest instrukcjami OUT a nie PLAY.
    W linii 50 umieszczamy cyfry od 0 do 9 — dane dla perkusji. Trzeba jednak pamiętać, by na jej końcu znajdowała się liczba 255 i cyfr nie było więcej niż 280. Potem można już uruchomić procedurę instrukcją RUN. Komputer zamilknie na kilka chwil, by wczytać kod maszynowy.
    Przy prawidłowym przepisaniu procedury, w lewym górnym rogu ekranu powinno pojawić się słowo ZAPIS. Oznacza to, że komputer przystąpił do przepisywania kodów dźwięków. Czas wykonywania tej operacji zależny jest od ilości cyfr w linii 250. Następnie, także w lewym górnym rogu pojawi się napis ODTW, oznaczający rozpoczęcie odtwarzania zapisanych dźwięków. Ponadto na środku ekranu pojawią się cyfry od 0 do 9 i czarny pas, który będzie wskazywał numer dźwięku odtwarzanego w danym momencie.
    Program jest tylko propozycją wykorzystania zwiększonych możliwości komputera ZX Spectrum 128 i od niedawna, również 48. Jego rozbudowę pozostawiam Czytelnikom. Chciałbym jednocześnie zachęcić Was do eksperymentów z tym komputerem. Często ich efekty są zadziwiające. Posłuchajcie tylko muzyki z takich gier jak TURBO BOAT czy PROFESIONAL BMX SIMULATOR i spróbujcie ułożyć podobne. Życzę powodzenia.
     

    Autor listingu: Michał Sobieszuk

    Listing nadesłał: Faust

    Język programu: Basic

    Stan listingu:

    1
    Listing przepisany - zawiera błędy, nieuruchamia się na emulatorach lub realnej platformie
  • Licznik

    Myślę, że wiele osób widziało program, który ładuje się z tzw. licznikiem.

    Mam na myśli gry EXOLON, KANE itp. Podczas ładowania wartość licznika zmniejsza się aż do zera, gdy program jest już cały w pamięci. Jest to o wiele bardziej eleganckie od zwykłych „pasków“, gdyż licznik jest nie tylko efektowny graficznie, ale także dobry „na nerwy“, ponieważ w każdej chwili wiemy, ile czekania nam jeszcze zostało.
    Przedstawiony program LICZNIK umożliwia ładowania programów w ten właśnie sposób.
    Główna część kodu maszynowego pochodzi z loadera do programu BOULDER DASH IV, reszta to przystosowanie do ładowania według danych z nagłówka, tak, by użytkownik mógł korzystać z programu bez znajomości assemblera. LICZNIK znajduje się przy końcu pamięci, od adresu 64500 do 69252. Uruchamia się go komendą RANDOMIZE USR 65100 Program wczytuje wtedy nagłówek (pierwszy napotkany) pod adres 65082 i ładuje tylko bloki typu PROGRAM i BYTES, nie akceptuje tablic.
    LICZNIK, jak już wyżej wspomniałem, umiejscawia dany program w pamięci na podstawie danych w nagłówku. Jeżeli podczas ładowania wystąpił błąd, LICZNIK wraca do BASIC-a (konkretnie do miejsca wywołania, może więc również wrócić i kontynuować wykonywanie kodu maszynowego). Nie przerywa działania programu, tylko umieszcza w komórce 65099 wartość 0 (normalnie 255).
    Jeżeli nie odpowiadają nam atrybuty licznika (standardowo czarne litery na białym tle), to dzięki POKE 64910, (wartość negatywu atrybutu) możemy je zmienić.
    Od adresu 64562 począwszy znajdują się kształty cyfr 6 w negatywie) od zera dcrdziewiątki kolejno. Kształty można przedefiniować według własnego upodobania, podobnie jak tworzymy znaki graficzne (UDG).
    Jeżeli chcemy korzystać z programu LICZNIK z poziomu assemblera, to podajemy parametry takie same, jak dla systemowej procedury ładowania, tj.

    LD IX, adres początku
    LD DE, długość
    LD A, FFF
    SCF
    CALL 64500

    LICZNIK nie jest programem krótkim, ale myślę, że warto zdobyć się na odrobinę cierpliwości i wpisać go.
     

    Autor listingu: Jacek Marczewski

    Listing nadesłał: Faust

    Język programu: Basic

    Stan listingu:

    4
    Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
  • Jumper

    System operacyjny TOS dla ZX Spectrum charakteryzuje się m.in. hierarchiczną strukturą katalogu. Jego wadą jest konieczność pamiętania, w jakim podkatalogu umieściliśmy dane.

    Wadę tę likwiduje poniższy program — „JUMPER“. Umożliwia on swobodną „wędrówkę“ po podkatalogach, jak również wgranie w każdej chwili dowolnego programu lub danych (nagrywanych przez SAVE * „nazwa“ CODĘ). Wymagane jest, aby program w BASIC-u posiadał rozszerzenie. BAS, a zbiór danych — COD. W przypadku napotkania innego rozszerzenia wyświetlany jest komunikat o błędzie (linia 5025).
    W celu wgrania dowolnego zbioru lub przejścia do podkatalogu, należy klawiszami 6 i 7 przesunąć migający prostokąt na nazwę zbioru (lub katalogu) i nacisnąć „0“ Powrót do poprzedniego katalogu jest możliwy po wciśnięciu „1“.
    Program należy zapisać na dysku przez: CLEAR: SAVE * „START“ LINE 10: ATTR * „START“ i będzie on automatycznie wczytywany po naciśnięciu RESET.
    Większość liczb w programie zastąpiono przez wyrażenie z „VAL“ lub „PI“, aby maksymalnie zmniejszyć ilość zajmowanej przez niego pamięci — zajmuje on w ten sposób jedną jednostkę alokacji. Nic oczywiście nie stoi na przeszkodzie, aby rozbudować go według własnych potrzeb.
     

    Autor listingu: Jacek Zapała

    Listing nadesłał: Faust

    Język programu: TOS Basic

    Stan listingu:

    0
    Listing niesprawdzony - świeżo po OCR lub przepisaniu
  • Obrazki w DATA

    Pisząc program często napotykamy na problem, jak w stosunkowo niewielkiej pamięci komputera zmieścić kilkanaście lub kilkadziesiąt rysunków. Zwykle w takich przypadkach stosuje się odczytywanie rysunku z dyskietki lub rysowanie normalnymi instrukcjami graficznymi.

    Drugi z podanych sposobów jest całkiem niezłym rozwiązaniem, szczególnie przy zastosowaniu Turbo Basica, gdzie rysowanie jest stosunkowo szybkie. Dla prostych rysunków spełnia to doskonale postawione zadanie. Listing 1 (w Turbo Basicu) pokazuje przykład takiego właśnie rysunku.
    Wykonywany obrazek pochodzi z mojego programu „MPZZM“. Podczas pisania tego programu pojawił się jednak poważny kłopot. Pokazaną metodą można umieścić w programie kilkanaście obrazków, ale potrzeba ich było kilkadziesiąt. Nie da się tego zrobić mając do dyspozycji 36 KB pamięci na cały program. Konieczne jest skondensowanie rysunku.
    Istnieje kilka sposobów zagęszczania danych w pamięci komputera, jednak żaden z nich mi nie odpowiadał. Zamiast zagęszczać obraz postanowiłem zrobić to z rysującymi go instrukcjami. W efekcie powstała procedura GRAF i kilka procedur pomocniczych, które są przedstawione w listingu 2.
    Jak to działa? Większość instrukcji graficznych Basica posiada dwa parametry. Można więc zakodować je w trzech bajtach: instrukcja i dwie współrzędne. Najoszczędniajszym sposobem zapisu bajtu w programie jest przedstawienie go w postaci odpowiedniego znaku w kodzie ATASCII. Do odczytania jego wartości można wtedy użyć funkcji ASC. Ciąg tak zakodowanych bajtów umieszcza się w instrukcji DATA.
    Procedura GRAF odczytuje wskazany ciąg z DATA i kolejno dekoduje zawartą w nim informację. Pierwszy rozpoznany znak oznacza rodzaj instrukcji, a dwa następne — jej parametry. Ponieważ poszczególne operacje są określone kodami od 1, to kod ten wykorzystywany jest do wyboru odpowiedniej procedury pomocniczej przez instrukcję ON/GOSUB (wiersz 570). Realizacja procedur przebiega w pętli WHILE, aż do napotkania litery Q zamiast kodu operacji. Po każdym odczytaniu trzech pierwszych bajtów ciągu są one usuwane. Wartości kodów operacji ustaliłem następująco:
    1 — PLOT
    2 — DRAWTO
    3 — FILLTO
    4 — PAINT
    5 — TEXT
    6 — CIRCLE
    7 — COLOR
    8 — SQUARE

    Wykonanie pierwszych czterech operacji przez odpowiednie procedury pomocnicze (PLT, DRW, FLT i PNT) nie wymaga komentarza. Ponieważ zawsze odczytywane są dwa parametry, to instrukcję COLOR połączyłem z FCOLOR (wiersz 660). Instrukcje TEXT i CIRCLE wymagają jednak trzech parametrów. Brakujący parametr jest odczytywany w procedurze pomocniczej. Oczywiście, konieczne jest po tym usunięcie tego znaku z ciągu. Sposób realizacji tych instrukcji można zobaczyć analizując procedury TXT i CRC (wiersze 640 i 650).
    Zastosowanie takiego rozwiązania pozwala na tworzenie dodatkowych, własnych instrukcji graficznych. Przykładem jest tu procedura SQR, która rysuje prostokąt. W ciągu należy dla niej umieścić kolejno współrzędne prawego, górnego oraz lewego, dolnego narożnika. Podobnie można utworzyć procedury realizujące inne operacje.
    Ponieważ ciąg z zakodowanym rysunkiem jest umieszczony w instrukcji DATA, to nie może się w nim znaleźć przecinek (kod ASCII=44). Zmusza to do omijania tej współrzędnej przy rysowaniu. Aby wyeliminować tą niedogodność zastosowałem sprawdzanie wartości parametru w wierszach 540 i 550. Jeśli parametr przekracza dozwoloną wartość (dla trybu GRAPHICS 7 jest to 160) to należy go zmniejszyć. W ten sposób zamiast przecinka (kod 44)trzeba zastosować znak o kodzie 44+160=204 (litera L w negatywie).
    Teraz cały rysunek, który zajmował pięć wierszy, można zapisać w postaci jednej instrukcji DATA. Wygląd takiej instrukcji, zawierającej obrazek z pierwszego listingu, jest pokazany na listingu 3. Kolejne obrazki powinny być zapisane w wierszach numerowanych od 10 000 co 2. Trzeba ponadto pamiętać, że każdy ciąg musi się kończyć literą Q.
    Jak korzystać z procedury GRAF? Proszę spojrzeć na listing 4. Na początku trzeba zadeklarować zmienną $, która służy do odczytu ciągu z DATA. Następnie ustalamy numer obrazka (wiersz 110) i ustawiamy wskaźnik odczytu przez READ na wiersz zawierający żądany obrazek (wiersz 120). Teraz pozostaje tylko wybranie trybu graficznego i właściwych kolorów oraz wywołanie procedury GRAF. Działanie całego przykładu można obejrzeć po połączeniu w jeden program listingów 2, 3 i 4.
    Pokazane przykłady napisane zostały w Turbo Basicu. Nic jednak nie stoi na przeszkodzie, aoy wykorzystać je w Atari Basic. Przetłumaczenie nie powinno stanowić problemu nawet dla początkującego programisty. Ponieważ Atari Basic jast znacznie wolniejszy, to dla przyspieszenia rysowania warto przed wywołaniem GRAF wyłączyć obraz instrukcją POKE 559,0 a po jej zakończeniu ponownie włączyć przez POKE 559,34.
     

    Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

    Autor listingu: Wojciech Zientara

    Listing nadesłał: Amarok

    Język programu: Basic

    Stan listingu:

    4
    Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
  • Rockford dla każdego

    Z pewnością każdy zna śmieszną figurkę Rockforda z gry „Boulder Dash“. Wpadłem na pomysł, aby wykorzystać ją do uatrakcyjnienia programów edukacyjnych dla dzieci.

    Programy edukacyjne pisane w GRAPHICS 0 są uzupełniane postacią Rockforda, który jest dla dzieci uosobieniem komputera. Gdy dzieci odpowiadają, figurka chwali je za poprawną odpowiedź lub gani za złą.
    Pokazany podprogram należy dołączyć do własnego programu. Jego użycie jest bardzo proste. Procedura GOSUB 870 powoduje ukazanie się Rockforda na pozycji określonej zmiennymi X i Y. Potem można wykonać dowolną sekwencję procedur tak, jak jest to pokazane w wierszu 1080. W międzyczasie na ekranie może się pojawiać tekst, dzieci mogą odpowiadać na pytania itp. Usunięcie postaci Rockforda wykonuje procedura GOSUB 890.
     

    Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

    Autor listingu: Zdenek Buby

    Listing nadesłał: Amarok

    Język programu: Basic

    Stan listingu:

    4
    Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
  • Duszki w Action!

    Grafika graczy i pocisków obsługiwana jest przez układy komputera, istnieje więc możliwość wykorzystania jej w każdym języku. Można ją stosować również w Action!.
    Obsługa duszków wymaga zaprojektowania całościowego systemu, który umożliwi realizację wszystkich możliwych funkcji. Przede wszystkim konieczne jest zdefiniowanie kilku zmiennych globalnych, które uproszczą stosowanie grafiki graczy i pocisków. Są to trzy zmienne proste oraz siedem tablic:
    PMMode — określa wybraną rozdzielczość;
    HitClr — służy do kasowania rejestrów kolizji;
    PMBAdr — adres początkowy pamięci duszków;
    HPos — zawiera poziome pozycje duszków;
    VPos — zawiera pionowe pozycje duszków; 
    MMask — zawiera maski bitowe do odczytu danych pocisków;
    PMHPos — ustala poziome pozycje duszków; 
    PMSize — ustala szerokość duszków; 
    PMField — określa wielkość pamięci dla każdego duszka;
    PMEmpty — określa wielkość wolnej pamięci powyżej PMBAdr.
    Elementy tablic, które mają wymiar osiem, dotyczą poszczególnych duszków. Tablica MMask ma cztery elementy, gdyż dotyczy tylko pocisków. Cztery elementy tablicy PMSize określają szerokość graczy, a piąty szerokość wszystkich pocisków. Tablice trzyelementowe służą do określania parametrów w zależności od wybranej rozdzielczości.
     

    Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

    Autor listingu: Wojciech Zientara

    Listing nadesłał: Amarok

    Język programu: Action!

    Stan listingu:

    4
    Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
Dodaj listing
Powrót do spisu

Dodaj plik z listingiem *

    Jeżeli posiadasz plik wykonywalny i źródłowy spakuj je w jedno archiwum. Wielkość pliku nie może przekroczyć 2mb. Wszystkie pozostałe pola są niewymagane, jednak ułatwiłoby dużo, gdybyś podał przynajmniej orientacyjnie skąd jest listing, a jeżeli jest Twojego autorstwa pozostaw namiar.

    Nazwa programu:

    Nazwa programu lub nazwa artykułu, z którego pochodzi.

    Stan listingu

    Jak oceniasz stan przesłanego listingu, jeśli jego działanie wymaga dodatkowego wyjaśnienia dodaj go w opisie.

    Opis programu:

    Opis działania programu. Zauważone problemy w funkcjonowaniu. Dodatkowe informacje.

    Autor listingu

    Autor artykułu/listingu zamieszczanego pliku. W razie wielu autorów odzielaj ich przecinkami

    Platforma

    Mikrokomputer, na który pochodzi listing. Jeśli danej platformy nie ma w spisie wprowadź jej nazwę w pole poniżej.

    Język listingu

    Język listingu, np. TurboBasic, BasicXL, MSBasic itp.

    Źródło

    Jeśli program jest Twojego autorstwa pozostaw puste.

    Twój nick

    Twój nick, ewentualnie dane osoby, która program wklepała, w razie wielu autorów odzielaj ich przecinkami.

    Email

    Do celów edycyjnych, informacyjnych i kontaktowych - bez podawania go jawnie.