Ready/Run

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

Listingi w bazie
Dodaj listing
  • Nie Tylko Dla Graczy

    Przedstawiony program składa się z sześciu niezależnych części ze względów praktycznych połączonych razem. Może on być pomocny użytkownikom ATARI 800 XL (65 XE), którzy zajmują się programowaniem w kodzie maszynowym, dostosowywaniem innych programów do swoich potrzeb, „rozgryzaniem” gier itp.

    Po załadowaniu programu z taśmy (CLOAD; czas 1 minuta 50 sekund) i uruchomieniu (RUN) zgłasza się opcja ładowania innego programu z taśmy (krótka przerwa między blokadami). Długość programu można wstępnie ocenić wg. wzoru:

    B = (T-20)/20

    gdzie:
    T— całkowity czas nagrania wczytywanego programu w sekundach, 
    B — szukana długość programu w KB.

    Jest to o tyle istotne, że zbyt długi program wczyta się do pamięci ekranu a dalsza część nie zostanie w ogóle zapisana, gdyż za obrazem jest ROM.

    Po zakończeniu wgrywania programu wyświetla się liczba wczytanych bajtów. Program prezentuje swoje możliwości po wciśnięciu klawisza ESC: naciśnięcie spacji jest rozumiane jako rezygnacja z „instrukcji obsługi”. Do opisu podprogramów można wrócić naciskając HELP podczas realizacji jednego z nich.

    Następne opcje to: 

    po G. 100 „rozszyfrowywanie” zajmowania pamięci w komputerze przez program dyskowy wczytywany z kasety,

    po G. 400 wyświetlenie zawartości pamięci, po G. 500 zapis do pamięci,

    po G. 700 zapis na taśmę wybranego obszaru pamięci, po G. 800 przemieszczanie wybranego obszaru pamięci.

    Programu można użyć jako kopiera.

    Nie ma tu żadnych ukrytych tricków i można wprowadzać dowolne zmiany. Program zajmie trochę mniej pamięci, jeżeli przepisze się go łącząc niektóre linie w jedną, używając skrótów oraz pisząc na ekranie bez marginesów (POKE 82,0): można też opuścić wszystkie komentarze.

    Wszystkim zainteresowanym życzę cierpliwości przy przepisywaniu i sukcesów w dalszych pracach.

     

     

    Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

    Jak zaladować (najprostsza metoda)

    ALTIRRA: 

    • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
    • Cold Reset (Powinien wejść do Basica)
    • LOAD "D:NIETYLKO.BAS"
    • RUN
     

    Autor listingu: Marek Renner

    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
  • Obsługa klawisza RESET

    RESET jest przyciskiem zerującym procesor, co nie oznacza jednak, że nie można jego obsługi programować z poziomu kodu maszynowego.

     
    Procedura taka, w odróżnieniu od procedury wywoływanej rozkazem USR, nie może zawierać rozkazu PLA, a podobnie jak procedura USR, powinna się kończyć rozkazem RTS. Po napisaniu programu maszynowego i umieszczeniu go w pamięci trzeba zmienić zawartość komórek 12 (młodszy bajt) i 13 (starszy bajt adresu procedury) oraz wpisać do komórki 9 wartość zezwalającą na wykonanie procedury (POKE 9,1). Radziłbym jednak procedurę taką wypróbować instrukcją USR, gdyż błąd w niej spowoduje zawieszenie się komputera i utratę danych.
    Przykładem wykorzystania tych informacji jest poniższy program, który powoduje, że naciśnięcie klawisza RESET nie przerywa działania programu, a jest jednoznaczne z rozkazem RUN.
    Litery przed numerem linii to sumy kontrolne Edytora BASICa, nie należą one do programu i nie należy je wpisywać.
    Program ten należy zapisać na taśmie rozkazem LIST "C", co umożliwi dołączenie tej procedury do innych programów rozkazem ENTER "C":

     

    Jak zaladować (najprostsza metoda)

    ALTIRRA: 

    • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
    • Cold Reset (Powinien wejść do Basica)
    • LOAD "D:RESET.BAS"
    • RUN
     

    Autor listingu: Jakub Cebula

    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
  • Grafika w DLI

    Atari posiada bardzo duże możliwości graficzne. Niestety z poziomu BASIC-a ilość kolorów dostępna jednocześnie na ekranie wynosi w najlepszym przypadku 16.

    Przedstawiony w artykule program wykorzystujący przerwania niemaskowalne DLI generowane przez ANTIC umożliwia zmianę zawartości rejestrów koloru w poszczególnych liniach. Daje to maksymalną ilość 256 kolorów na ekranie.

    Przerwania DLI są wywoływane przy czytaniu programu ANTIC-a. Bliższe informacje dotyczące programowania tego układu zawarte są w „Komputerze” 8/86. Przerwania są wywoływane przy dowolnym rozkazie ANTIC-a, który ma ustawiony najstarszy, siódmy bit. Adres programu obsługującego przerwania wskazywany jest przez wektor DLIVKT (512, 513).

    Wróćmy do programu. Niżej przestawione są cztery wydruki. Po przepisaniu pierwszego i uruchomieniu otrzymujemy program, który przedstawia wydruk drugi. Są to dwa programy w języku wewnętrznym. Pierwszy modyfikuje i lokuje program przerwań w odpowiednim miejscu oraz ustawia wektor. Jest on wywoływany przez: 

    A = USR (ADR (OB$) + 52, ADR (OB$), ADPR, ILO, ADDA)

    gdzie:

    ADPR — adres, od którego ma być umieszczony program obsługi przerwań 

    DLI — program o długości 52 bajtów; 

    LO — ilość uaktywnionych przerwań; 

    ADDA — obszar początku danych dla programu. 

    (...)

    Drugi program w języku wewnętrznym jest wywoływany przez:

    POKE ADDA,0:A = USR(ADR(OB$) + 156, ADR(OB$) + 171)

    i uaktywnia przerwania DLI w momencie przerwania synchronizacji pionowej.

    Wydruk trzeci to procedura zmieniająca program ANTIC-a i uruchamiająca przerwania. Działa w dowolnej grafice. Przed uruchomieniem jej w pamięci musi się znajdować program, który przedstawia drugi wydruk. Jedynki w ciągu C1$ reprezentują linie na ekranie, w których mają wystąpić przerwania, zera — linie, w których nie będzie przerwań. Przed uruchomieniem procedury trzeba umieścić w pamięci, poczynając od ADDA + 1 kolory poszczególnych linii. W przeciwnym razie większość ekranu po uruchomieniu procedury zmieni kolor na czarny. 

    UWAGI:

    1. Program obsługi przerwań DLI jest wywoływany zawsze po zakończeniu rysowania przez ANTIC linii na ekranie i np. przy włączonym przerwaniu w pierwszej linii zmiana koloru nastąpi w drugiej.
    2. Zmiana koloru w jednej linii powoduje zmianę koloru także w następnych, w których nie ma uaktywnionych przerwań
    3. Przed wywołaniem drugiego programu w języku wewnętrznym program ANTIC-a powinien być już zmieniony.
    4. Chcąc wyłączyć przerwania trzeba albo zmienić tryb graficzny, albo wpisać instrukcję POKE 54286,127, albo nacisnąć RESET.

    Czwarty wydruk jest krótkim programikiem demonstrującym możliwości, jakie daje zastosowanie opisywanych przerwań DLI.

     

     

    Jak zaladować (najprostsza metoda)

    ALTIRRA: 

    • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
    • Cold Reset (Powinien wejść do Basica)
    • LOAD "D:DLI1.BAS" lub LOAD "D:DLI2.BAS" (do 4)
    • RUN
     

    Autor listingu: Wojciech Wylon

    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
  • Przesuwanie kursora

    Program, który chciałbym zaproponować powstał w wyniku wykorzystania wiadomości zawartych w cyklu pt. „Nie bój się przerwań”.

    Służy on do przesuwania kursora przy pomocy joysticka, a także umożliwia usuwanie z ekranu tekstu, który znajduje się po prawej stronie kursora. Naciśnięcie przycisku FIRE spełnia funkcję CTRL-DELETE. Procedura w języku maszynowym wykonywana jest co trzy przerwania VBLK. Sprawdza ona położenie joysticka i stosownie do niego umieszcza w komórce 764 wartość kodu wewnętrznego oznaczającego wciśnięcie CTRL i odpowiedniego klawisza przesuwania kursora. Gdy nie poruszamy joystickiem wszystkie funkcje klawiatury działają normalnie.

    Procedura ta może mieć zastosowanie np. podczas pisania, sprawdzania i poprawiania listingów programów w języku Basic, ponieważ pozwala na szybkie umieszczenie kursora w dowolnym miejscu ekranu i wpisanie tam odpowiednich znaków. Po dokonaniu korekty naciśnięcie RETURN umieszcza w pamięci poprawioną linię.

    Wciśnięcie RESET przerywa działanie procedury. Ponowne jej uruchomienie następuje przez podanie instrukcji X = USR(1619).

     

    Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

    Jak zaladować (najprostsza metoda)

    ALTIRRA: 

    • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
    • Cold Reset (Powinien wejść do Basica)
    • LOAD "D:KURSOR.BAS"
    • RUN

     

    Autor listingu: Andrzej Holanowski

    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
  • XIO Demo

    Dołączona do komputera instrukcja Atari Basic wspomina o instrukcji XIO zaledwie tyle, że jest używana przy operacjach dyskowych i w grafice. Z tak lakonicznej informacji trudno cokolwiek zrozumieć, przybliżę więc Czytelnikom znaczenie tej ciekawej i pożytecznej instrukcji.

    Dwie operacje XIO mogą być wykonywane wyłącznie na ekranie: rysowanie linii (XIO 17 = DRAWTO) i wypełnianie obszaru (XIO 18). Pierwszej z nich odpowiada instrukcja Basica DRAWTO i nie będzie ona nas interesować. Druga, nie mająca odpowiednika w Basicu, udostępnia dodatkową interesującą funkcję graficzną. Ponieważ jest to najczęściej stosowana instrukcja XIO, to jej format podam osobno:

    XIO 18,#6,0,0,”S:”

    Użycie jej nie jest proste, więc zademonstrowane zostanie na przykładzie. Najpierw należy narysować linię ograniczającą z prawej strony wypełniany obszar i umieścić kursor instrukcją PLOT lub DRAWTO w miejscu, z którego rozpoczniemy wypełnianie (linie 90 i 100). Następnie do rejestru FiLDAT (765) wpisujemy numer koloru, który ma zostać użyty do wypełniania i umieszczamy kursor instrukcją POSITION w miejscu zakończenia wypełniania (linia 110). Dopiero teraz można wywołać instrukcję XIO 18 (linia 120). W liniach 20—80 ustalany jest kolor i losowo wybierane jest miejsce rysowania. Cała procedura jest powtarzana po naciśnięciu klawisza START.

    Należy pamiętać, że XIO 18 wypełnia każdą linię obrazu, aż do napotkania punktu o kolorze różnym od koloru tła.

    Nie można więc wypełniać obszarów wypełnionych już wcześniej.

    Jak zaladować (najprostsza metoda)

    ALTIRRA: 

    • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
    • Cold Reset (Powinien wejść do Basica)
    • LOAD "D:XIO.BAS"
    • RUN
     

    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
  • Migający Kursor

    Przedstawiony program może być pomocny przy pracy z komputerem, powoduje bowiem migotanie kursora, który staje się przez to bardziej widoczny i łatwiejsze jest redagowanie pisanego tekstu. Oprócz tego po każdym RESET ustawiane są zgodnie z życzeniem użytkownika tak ważne przy długiej pracy z komputerem parametry jak: kolor tła i ramki, jasność tekstu, lewy i prawy margines, a także szybkość wprowadzania znaków z klawiatury. Teraz naciśnięcie (nawet przypadkowe) klawisza RESET nie powoduje irytującej zmiany ustawionych parametrów.
    Po uruchomieniu programu mamy migający kursor, tło ciemnozielone, ramkę jasnoniebieską, lewy margines 2, prawy = 37, czas do pierwszego powtórzenia klawisza = 15, szybkość powtarzania = 2. Jeżeli ustawione wartości komuś nie odpowiadają, można je zmienić dwoma sposobami: w samym programie w liniach DATA (trzeba również obliczyć nową sumę kontrolną i wstawić ją do linii 16 zamiast 8208), albo w trybie bezpośrednim za pomocą instrukcji POKE.

    A oto lista możliwych zmian:

     

    • POKE 1542,41 — kursor migający  linia 20, liczba 41
    • POKE 1542,9   — kursor normalny
    • POKE 1543,x   — częstotliwość migania linia 20, liczba 8
    • POKE 1572,x   — lewy margineslinia 24, liczby 2 i 37
    • POKE 1576,x   — prawy margines
    • POKE 1580,x   — jasność tekstu
    • POKE 1585,x   — kolor tlalinia 26, liczby 12,192 i 148
    • POKE 1590,x   — kolor ramki
    • POKE 1595,x   — czas do powtórzenialinia 28, liczby 15
    • POKE 1600,x   — szybkość powtarzaniai 2 (po 169)
       

    Autor listingu: Marek Krupa

    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
  • Migający Kursor

    Program napisany w języku maszynowym wykorzystuje przerwanie VBLK. Na uwagę zasługuje fakt, że program działa dalej po naciśnięciu RESET. Jeśli chcemy wyłączyć pulsowanie kursora, to wystarczy POKE 9,0 i RESET. Powrót do migania uzyskamy przez POKE 9,1 i RESET. Program umieszczony jest na szóstej stronie pamięci.
     

    Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

    Jak zaladować (najprostsza metoda)

    ALTIRRA: 

    • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
    • Cold Reset (Powinien wejść do Basica)
    • LOAD "D:KURSOR1.BAS"
    • RUN

     

    Autor listingu: Adam Hartwig

    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
  • Migający Kursor

    Jedną z wad edytora BASIC-a w komputerze Atari 800XL jest brak migającego kursora, co utrudnia jego lokalizację. Aby to poprawić ułożyłem krótki program.
    Po jego uruchomieniu kursor zaczyna migać. Prędkość migania można zmienić poprzez zmianę zawartości komórki 1549 (zalecana 20). Kursor przestaje migać po naciśnięciu RESET; aby przywrócić stan poprzedni należy wykonać sekwencję rozkazów z linii 90—120. Kursor nie przestaje migać po zmianie trybu graficznego. Procedura jest relokowalna; adres początku umieszczany jest w komórkach 552 i 553.
    Uwaga: przy dużej prędkości wyprowadzania danych na ekran (np. listowanie) kursor może zostawiać ślad.

    Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

    Jak zaladować (najprostsza metoda)

    ALTIRRA: 

    • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
    • Cold Reset (Powinien wejść do Basica)
    • LOAD "D:KURSOR3.BAS"
    • RUN

     

    Autor listingu: Bartosz Polednia

    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
  • Atak! (Inwazja)

    Tym razem coś dla miłośników łamania joysticka. Wystarczy wpisać program według zamieszczoneoo listingu i można strzelać do woli.

    Na okołoziemskiej orbicie pojawili się "Obcy". Wkrótce okazało się, że ich zamiary wcale nie są przyjazne, a na dodatek dysponują potężnym uzbrojeniem. Bardzo szybko rozprawili się z flotami kosmicznymi wielkich mocarstw. Pozostałeś tylko Ty. Kierując bojowym kosmolotem "Gwiezdny Piorun" musisz pokonać Obcych. Jesteś ostatnią nadzieją Ziemi, jeśli zawiedziesz, wszyscy ludzie zostaną niewolnikami, a Ty zginiesz w mękach.
    Po wpisaniu "RUN" program wykonuje kilka procedur i sam startuje. Gdy nie powiedzie Ci się lub gdy uzyskasz premię, gra będzie kontynuowana po naciśnięciu klawisza "START" lub przycisku joysticka.
    Opisu gry nie będzie. To dobre dla jajogłowych naukowców i znudzonych komputerem dzieci. Prawdziwy gracz nie zajmuje się takimi głupstwami. Ale jedna uwaga jest konieczna. Przed pierwszym uruchomieniem programu lepiej zapisać go na kasecie lub dyskietce. Są na świecie rzeczy, o których się filozofom nie śniło — a po co "wklepywać" wszystko jeszcze raz.

    Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

    Jak zaladować (najprostsza metoda)

    ALTIRRA: 

    • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
    • Cold Reset (Powinien wejść do Basica)
    • LOAD "D:ATAK.BAS"
    • RUN

     

    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
  • Edytor Basica

    Przy przepisywaniu programów w BASIC-u. szczególnie zawierających dużo liczb w instrukcjach DATA, nie sposób ustrzec się błędów. Aby uniknąć żmudnego wyszukiwania popełnionych omyłek wszystkie programy w BASIC-u będą zamieszczane wraz z kodami kontrolnymi. Poniższy program „Edytor BASIC-a” umożliwia obliczanie i kontrole kodów wpisywanych linii...

    Najpierw należy dokładnie przepisać zamieszczony tu wydruk i zapisać go na kasecie lub dysku. Przystępując do wpisywania dowolnego programu z naszego pisma trzeba wczytać i uruchomić „Edytor BASIC-a”. Następnie należy wpisywać linie programu. Po wpisaniu linii i naciśnięciu RETURN pojawia się ona w dolnej części ekranu wraz z obliczonym kodem kontrolnym Jeżeli wyświetlony kod jest taki sam jak wydrukowany przed numerem linii, można wpisywać następną linię. Jeśli kody są różne, to ponowne naciśnięcie RETURN powoduje wyświetlenie wpisanej linii w górnej części ekranu i umożliwia dokonanie poprawek. Wpisanie samego numeru linii powoduje wymazanie z pamięci komputera linii programu o tym numerze. Naciśnięcie RETURN wywołuje zawsze ostatnio wpisaną linię. Aby wywołać inną, wcześniej wpisaną linię należy napisać numer tej linii z gwiazdką przed nim (np. *140) i nacisnąć RETURN.
    Po wpisaniu całego programu trzeba przerwać pracę „Edytora” naciśnięciem klawisza BREAK lub RESET. Następnie w celu usunięcia „Edytora” zapisujemy program na taśmie instrukcją LIST „C:”,0,31999 lub na dysku instrukcją LIST „D:nazwa,”0,31999. Teraz trzeba wpisać rozkaz NEW i odczytać program instrukcją ENTER „C:” lub ENTER „D:nazwa”. Po tej operacji w pamięci komputera znajduje się wpisany program bez „Edytora BASIC-a’ i można go już ostatecznie zapisać na nośnik.

    Autor listingu: ???

    Listing nadesłał: Faust

    Język programu: Atari Basic

    Stan listingu:

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

    Przypuszczam, że wielu początkujących muzyków czy też muzykantów ma pewne kłopoty z utrzymaniem rytmu. Sądzę tak, ponieważ sam jestem (i zapewne już zostanę) takim właśnie muzykantem. A do tego dźwięk przedstawionej tu „elektronicznej perkusji” jest ciekawszy, bardziej inspirujący niż tupanie noga, czy suchy stukot metronomu.

    Dla zapisu rytmów dysponujemy polem o szerokości 39 kolumn i wysokości 2 wierszy. Początek pola wskazuje znak „?”. Tam też pojawia się kursor. Każdy wiersz określa rytm jednego bębenka. Górny wiersz — małego, dolny — większego. Cyfry widoczne nad polem rytmów to numery kolumn. Numery są dwucyfrowe — czytamy je z góry w dół. Poszczególne kolumny definiują kolejne elementarne jednostki czasu, w których może zabrzmieć dźwięk. Programowanie generatora polega na umieszczeniu w polu rytmów znaczków wskazujących, kiedy dany bębenek ma grać. Mogą być użyte dowolne znaki z wyjątkiem „Q”, „ ” i „I”. Spacja definiuje bowiem ciszę, pauzę czyli brak dźwięku, pionowa kreska zaś (klawisze <SHIFT> i < = >) użyta w zapisie górnego bębenka oznacza koniec cyklu, to znaczy, że jako następna będzie interpretowana kolumna nr 1. Jeśli nie użyjemy takiej kreski, to cykl będzie trwał całe 39 jednostek. Po wpisaniu rytmu naciskamy RETURN i perkusja gra. Powtórne naciśnięcie RETURN — i cisza. Można poprawić zapis, itd. Aby opuścić program należy tuż za pytajnikiem wprowadzić <Q> (quit). Zwracam uwagę, że każdy kulturalny program powinien kończyć się w kontrolowany sposób, a nie tylko przez BREAK czy też wyciągnięcie wtyczki z kontaktu.
    Kilka słów na temat programu. To mocna strona komputerów ATARI, że z ich nieprzebranego bogactwa dźwięków można korzystać tak prosto! Tu konwencjonalna pętelka cichnącego szumu w liniach 260..290 doskonale spełnia swe zadanie. Szumy są dwa: cieńszy (linia 270) i grubszy (linia 280). Głośność dźwięku w każdym momencie jest mnożona przez 0, jeśli kolejne miejsce na ekranie jest puste, zaś przez 1 w przeciwnym wypadku Wyrażenie logiczne bowiem, a takim jest np. (PEEK (EKR + I)>0), przyjmuje zgodnie z konwencją Atari BASIC-a jedną z dwu wartości: 1 (prawda) lub 0 (fałsz). Prostota i szybkość tego sposobu zasadza się na bezpośrednim spoglądaniu w pamięć ekranu. Zmienna CS ma tu znaczenie uboczne, a sama instrukcja INPUT służy tylko do zatrzymania programu, gdy trzeba dokonać zmian. Przed podjęciem nowego rytmu bada w liniach 210..230, czy wprowadzono ograniczenie długości cyklu i stosownie do tego ustala N.
    Wyjaśnienie niektórych PEEK'ów i POKE'ów. Komórka 82 (linie 100 i 300) ustala lewy margines ekranu. W komórkach 88 i 89 (linia 130) znajduje się dwubajtowy adres pamięci ekranu. Zmienna EKR będzie więc wskazywać na nasze pole rytmów Pod adresem 752 można (w linii 180) zgodzić się, by kursor przebywał na ekranie, lub (w następnej) zabronić mu tego. W komórce 764 (linie 170, 240) jest kod ostatnio naciśniętego klawisza, lub — gdy niczego się nie naciska — liczba 255.

    Autor listingu: Janusz B.Wiśniewski

    Listing nadesłał: Faust

    Język programu: Atari Basic

    Stan listingu:

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

    Przedstawiony program umożliwia wykorzystanie klawiszy funkcyjnych komputera ATARI do wypisywania najczęściej używanych słów kluczowych BASIC-a.

    Wykorzystuje on wektor przerwania VBLK mającego miejsce w czasie wygaszania promienia elektronów pod czas jego przemieszczania do pierwszej linii obrazu. Hasła RUN, LIST, CONT uzyskujemy poprzez wciśnięcie klawiszy START, SELECT lub OPTION. Pozostałe trzy hasła otrzymuje się przez poprzedzenie tej czynności naciśnięciem klawisza HELP. Program nie koliduje z wykorzystaniem konsoli przez programy napisane w BASIC-u — jest blokowany w czasie ich wykonywania.
    Opisany program może wypisywać na ekranie dowolny tekst zapisany w liniach poprzedzonych komentarzem „DANE DLA TEKSTU”. Pierwsza liczba jest zawartością komórki 53279 w momencie wciśnięcia wybranego klawi sza. Jeśli wykorzystujemy również klawisz HELP — do liczby tej należy dodać 17. Można również wykorzystać zmianę zawartości komórki 53279 przy równoczesnym wciśnięciu kilku klawiszy konsoli, jest to jednak niewygodne w użyciu. Pozostałe liczby to wartości liczbowe pisane go tekstu w kodzie ASCII. Po wprowadzeniu zmian w liniach „DATA” należy zmodyfikować również wartość sumy kontrolnej (zmienna SUM) oraz odpowiednio zmienić długość pętli czytających dane. Należy pamiętać, że cały program nie może mieć więcej niż 256 bajtów (jedna strona pamięci).
    Po przepisaniu programu należy przygotować magnetofon do zapisu i uruchomić program poprzez RUN. Jeśli był poprawnie przepisany, to zostanie zapisany na taśmie w formie BOOT przeznaczonej do ładowania poprzez wciśnięcie klawisza START w momencie włączenia komputera.
     

    Autor listingu: Tomasz Bigaj

    Listing nadesłał: Faust

    Język programu: Atari Basic

    Stan listingu:

    2
    Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
  • SpeedTrans

    Przedstawiony program jest procedura zapisana w języku maszynowym służąca do przemieszczania danych w pamięci komputera.
    Istotna cecha programu to możliwość składowania zbiorów bajtów w obszarze wyłączonym z użycia przez ROM z interpreterem BASIC-a i systemem operacyjnym, a więc możliwość przechowywana danych w obszarach 40960-53247,
    55296—66529 (ostatnie sześć bajtów pamięć 65530—65535 jest zajęte przez wektory przerwań RESET). Procedurę wywołuje się przy użyciu następującej instrukcji:
    X = USR(1536,APD,APZ,IL), gdzie:
    APD - adres początku danych do przesłania,
    APZ - adres   początku    obszaru   zapisywania danych,
    IL - ilość bajtów do przesłania.
    Procedura SPEED TRANS może być wykorzystywana do różnych celów np. przechowywania kilku ekranów graficznych, składowanie informacji w bazach danych itd. W przypadku podania złej ilości parametrów lub wciśnięcia klawisza RESET podczas przesyłania bloku bajtów następuje powrót do BASIC-a. Z uwagi na możliwość działania w całej przestrzeni adresowej procedury tej należy używać rozważnie. Przesłanie przypadkowych danych do obszaru zmiennych systemowych lub do portów wejścia/wyjścia może spowodować zawieszenie pracy komputera. Procedura jest relokowalna, jej umieszczenie na szóstej stronie pamięci podytkowane było względami bezpieczeństwa. Jeśli po wpisaniu kodu do pamięci użyjemy POKE 1538,253, to podczas pracy program nie będzie odłączał pamięci ROM; POKE 1538.254 powoduje powrót do normalnego działania.
     

    Autor listingu: Marek Drążkiewicz

    Listing nadesłał: Faust

    Język programu: Atari Basic

    Stan listingu:

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

    Przedstawiony program służy do wglądania w pamięć komputera ATARI. Dzięki szybkości, z jaką działa, odzwierciedla na ekranie bieżący stan pamięci, a więc także wszystkie zmiany. Nareszcie możemy podejrzeć nerwowa pracę stosu (strona 1). na którym procedury obsługi przerwań mrowia się w nieustannej pracy, działalność zegarów POKEY'a (strona D2), czy sposób, w jaki PIA (strona D3) obsługuje drążki sterowe..

    Autor listingu: Janusz B.Wiśniewski

    Listing nadesłał: Faust

    Język programu: Atari Basic

    Stan listingu:

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

    Łukasz Knasiecki z Koszalina ma 12 lat i chodzi do VI klasy. Na konkurs „Mikrusek" przystał grę pod tytułem „Wilhelm Tell" napisaną na mikrokomputerze ATARI 800XL. Na ekranie ukazuje się postać strzelca z kuszą i chłopca z jabłkiem na głowie. Należy — przy pomocy drążka sterowego — ustawić strzelca w odpowiedniej pozycji i nacisnąć przycisk FIRE. Strzała powinna trafić w jabłko.
    Łukasz napisał nam, że jego program posiada zdefiniowane znaki graficzne, z których składają się postacie. Wersja przysłana do „Bajtka" wykorzystuje standardowe znaki komputera, gdyż definiowanie znaków zdecydowanie wydłuża program. Nic jednak nie stoi na przeszkodzie, by nasi czytelnicy zrobili to sami.

    Autor listingu: Łukasz Knasicki

    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
  • Zmieniacz napisów BFCH 2.0

    Prawie wszystkie programy dostępne dla mikrokomputerów pochodzą z zagranicy. Z tego powodu wszystkie napisy w takich programach są obcojęzyczne. Oczywiście każdy, kto choć raz miał do czynienia z komputerem, wie co znaczy SCORE. Ale dlaczego nie miałoby być napisane WYNIK.
    Poniższy program umożliwia skopiowanie programu z kasety lub dyskietki, wymianę napisów i ponowne zapisanie na kasecie lub dyskietce.
    Działanie programu jest bardzo proste. Na początku należy podać nazwę zbioru źródłowego i docelowego (dla magnetofonu C, dla stacji dysków D:NAZWA). Program nasz najpierw odczytuje kopiowany program traktując go jako ciąg znaków. Następnie żąda podania tekstu, który ma być usunięty, i tekstu, który ma być wstawiony na jego miejsce. Muszą one być tej samej długości

    Autor listingu: Wojciech Zientara

    Listing nadesłał: Faust

    Język programu: Basic

    Stan listingu:

    0
    Listing niesprawdzony - świeżo po OCR lub przepisaniu
  • Płynący napis

    Czytelnicy "IKS-a", będący posiadaczami mikrokomputera Atari, zauważyli zapewne w numerze 2/87 tego czasopisma program "Komputerowy teleexpress".
    Realizuje on uatrakcyjnienie posiadanych wcześniej programów przez dołączenie do nich strony tytułowej, czy też winiety. Ci Czytelnicy, którzy "wpalcowali" go na swoje Atari, stwierdzili z pewnością ograniczenia w wykorzystaniu tego programu, wynikające stąd, że został on napisany całkowicie w BASIC-u. Wyświetlany na ekranie tekst przeskakuje po literze, a nie jest płynnie przewijany. Ponadto w czasie, gdy program jest wykonywany, komputer nie może realizować innych działań, co jest istotnym mankamentem.
    Program, którego wydruk znajduje się obok, jest pozbawiony tych dwóch niedoskonałości. Pracuje on w kodzie maszynowym 6502 wykorzystując dostępne na Atari przerwania. Prawdziwie płynny przesuw tekstu jest możliwy do osiągnięcia dzięki sprzętowemu wspomaganiu przewijania obrazu.
     

    Autor listingu: Andrzej Błazik

    Listing nadesłał: Faust

    Język programu: Basic

    Stan listingu:

    0
    Listing niesprawdzony - świeżo po OCR lub przepisaniu
  • Kasetowy System Operacyjny

    Wady standardowych procedur obsługi magnetofonu kasetowego komputerów ATARI XL/XE sa dość kłopotliwe. Przypomnę tylko kilka z nich:
    1. Nie można nadawać nazw zbiorom zapisanym na taśmie.
    2. W trybie z długimi przerwami między rekordowymi taśma jest słabo wykorzystana — czas trwania przerw jest porównywalny z cza sem trwania rekordów
    3. Przy odczycie należy ustawić taśmę dokładnie na początek pliku, w przeciwnym razie wystąpi błąd transmisji.
    4. Po wykonaniu instrukcji OPEN przy zapisie niezależnie od rodzaju przerw taśma jest zapisywana tonem synchronizującym aż do emisji pierwszego bloku.
    5. Mała szybkość transmisji.
    Opracowany przeze mnie program eliminuje pierwsze cztery wady. Ponadto znacznie wzrasta szybkość transmisji w trybie z długimi przerwami (do dwóch razy). Użytkownik może samodzielnie regulować prędkość transmisji, która określana jest przez wartości wpisane do komórek 69 i 70. Prędkość transmisji określona jest wzorem
    V=895000((PEEK(69)+256xPEEK(70)) [bit/sek] (bez uwzględnienia wpływu przerw).

    Wartość tę można zmieniać, lecz naciśnięcie klawisza RESET spowoduje przywrócenie standardowej prędkości (około 700 bodów — standardowo 600 bodów).
    Zwiększenie efektywnej prędkości transmisji osiągnięto przez wprowadzenie rekordów zawierających 1024 bajty zamiast 128 jak dotychczas, co zmniejszyło wpływ przerw.
    K.S.O. może współpracować z językami ATARI BASIC, TURBO BASIC XL, ASSEMBLER-EDITOR

    Autor listingu: Wojciech Zabołotny

    Listing nadesłał: Dely

    Język programu: Atari Basic

    Stan listingu:

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

    Polacy nie gęsi i lubią gdy się do nich po ludzku gada. Dotyczy to też komputerów, które trzeba w tym celu przekonać, aby zaaprobowały kilka dodatkowych liter.
    Nowo narodzony ATARI XL/XE zna dwa zestawy znakowe. Oba liczą po 128 znaków i zajmują po 1 KB pamięci. Zestaw standardowy — ten, którego używasz na codzień — zajmuje adresy od 57344 do 58367 (EOOO-E3FF hex). Drugi 52224-53247 (czyli CCOO-CFFF hex) zwany jest międzynarodowym, gdyż zamiast znaków graficznych ATARI zawiera litery niemieckie, francuskie czy skandynawskie. Dla nas pociecha stąd żadna.
    Jedyne wyjście to zakasać rękawy i nauczyć ATARI czegoś nowego, czyli przedefiniować część znaków w zestawie. Ba — ale oba zestawy znajdują się w ROMie i żadne POKE nie pomoże. Trzeba zatem poświęcić 1 KB wolnej pamięci, przenieść całość z ROMu do RAMu i teraz dopiero zabrać się za rysowanie nowych znaków.

    Plik w formacie cas - pierwszy pierwotny listing, drugi z kodem wynikowym.
     

    Autor listingu: Krzysztof Leski

    Listing nadesłał: Faust

    Język programu: Basic

    Stan listingu:

    3
    Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
  • Spis zawartości dyskietki i usuwanie plików bez dos-u

    Uzyskiwanie spisu zawartości dyskietki i usuwanie z niej zbędnych plików jest dość czasochłonne. Można tę pracę usprawnić przy pomocy poniższego programu. Po pierwsze nie trzeba wczytywać DOS-u. Po drugie spis zawartości dyskietki jest wyświetlany w dwóch kolumnach, można więc wyświetlić dwa razy więcej nazw plików zanim obraz zacznie się przesuwać. Po trzecie szybsze jest wybieranie zbiorów do usunięcia.
    Program zapisany jest w dwóch oddzielnych częściach. Część A zapisujemy na każdej dyskietce przez SAVE"D:DIR". Gdy chcemy uzyskać spis zawartości dyskietki, wystarczy podać instrukcję RUN"D:DIR".
    Oprócz tego można zapisać tę część na jednej dyskietce przez LIST"D:EDIR", co umożliwia dodanie jej potem do dowolnego programu znajdującego się w pamięci komputera (przez ENTER"D:EDIR"). W tym przypadku zawartość dyskietki będzie wyświetlana po instrukcji GOTO 31200. Wysokie numery linii programu mają zabezpieczyć przed ewentualną kolizją z programem aktualnie znajdującym się w pamięci (aby zabezpieczyć się przed takimi przypadkami można przyjąć zasadę, że największy numer linii w każdym programie nie może być większy niż 29999 — numery od 30000 są zarezerwowane dla programów pomocniczych: DIR, RENUM itd.)
    Obie części razem należy zapisać przez SAVE"D:USUW". W celu usunięcia pliku z dyskietki należy wczytać program (LOAD"D:USUW"), włożyć do stacji dyskietkę, z której chcemy usunąć plik i uruchomić program. Kolejno wyświetlane są nazwy plików zawartych na dyskietce. Naciśnięcie RETURN powoduie wyświetlenie następnej nazwy. Gdy chcemy usunąć plik, naciskamy klawisze CONTROL i U. Procedura ta jest kontynuowana, aż do wyświetlenia nazw wszystkich plików. Jeżeli popełnimy błąd, wystarczy tylko nacisnąć BREAK i uruchomić program ponownie. Usuwanie plików następuje dopiero po wyświetleniu wszystkich nazw i naciśnięciu klawisza U. Po zakończeniu usuwania plików ponownie wyświetlany jest spis zawartości dyskietki.

    Wg „COMPUTE!" 11/82
     

    Autor listingu: Wojciech Zientara (ziew)

    Listing nadesłał: Faust

    Język programu: Basic

    Stan listingu:

    3
    Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
  • Tekst w trybie graficznym 8

    Przy wykonywaniu wykresów w trybie graficznym "8" często spotykamy się z problemem opisania rysunku. Okno tekstowe w dolnej części ekranu jest zwykle do tego celu niewystarczające. Poniższa procedura umożliwia umieszczenie tekstu w dowolnym miejscu ekranu.
    Po wpisaniu programu według przedstawionego wydruku należy przed uruchomieniem zapisać go na dysku lub kasecie. Program tworzy dwie nowe linie zawierające procedurę w języku maszynowym, a następnie kasuje sam siebie. Otrzymaną procedurę należy zapisać na kasecie przez L."C:" lub na dysku przez L"D:TEKST.LST". Można również do każdego nowego programu generować procedurę od nowa. korzystając z podanego programu.
    Pisząc program, w którym zamierzamy użyć tej procedury, musimy pominąć linie 10 i 20, gdyż numery te mają linie procedury.
    Aby użyć procedury należy podać w programie instrukcję:
    A = USR(ADR(PT$),PX,PY,ADR(T$),LEN(T$))
    gdzie PX oznacza współrzędną x pierwszego znaku, PY — współrzędną y, a T$ — ciąg znaków (tekst), który ma być wyświetlony. Współrzędne x i y są obliczane tak jak w trybie "0" (tzn. x - 9÷39, y = 0÷21(23)).

    Autor listingu: Wojciech Zientara

    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
  • Nie bój się przerwań cz. 1

    Wiele osób, nawet od dłuższego czasu mających kontakt z mikrokomputerami, dostaje "gęsiej skórki" słysząc słowo PRZERWANIE.
    Postaram się udowodnić, że nie jest to nic strasznego. Zaczniemy od najprostszego przerwania wywoływanego przez program ANTIC-a (mikroprocesora tworzącego obraz).
     

    Autor listingu: Wojciech Zientara

    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
  • Nessie

    Bohaterem gry jest wężowe cielsko z małą głową — mieszkaniec słynnego szkockiego jeziora — zwinnie umykające przed naszym celownikiem. Siedzimy w znacznej odległości od gada, więc strzał z nieruchomej pukawki trzeba oddać z wyprzedzeniem, celując w miejsce, gdzie stwór dopiero będzie, gdy kula do niego doleci. Strzelamy naciskając dowolny klawisz (najwygodniej klawisz spacji). Mimo prostych zasad gra nie jest wcale łatwa i ustrzelenie ośmiu potworów dwunastoma pociskami należy uznać za spory sukces.

    Autor listingu: Janusz Wiśniewski

    Listing nadesłał: Faust

    Język programu: Basic

    Stan listingu:

    3
    Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
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.