Ready/Run

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

Listingi w bazie
Dodaj listing
  • Przeszukiwanie pamięci

    Podczas pisania programów w BASIC-u, w których wykonujemy operacje na zmiennych tekstowych, zachodzi czasami konieczność wyszukiwania w nich pewnych podciągów znakowych.
    Również w Basicowych monitorach pamięci pomocną opcją może być możliwość wyszukiwania umieszczonych w pamięci mikrokomputera sekwencji bajtów. Napisanie procedury, która by realizowała powyższe czynności w języku Basic jest czynnością prostą, ale czas jej wykonywania zwłaszcza przy przeszukiwaniu dużych obszarów pamięci jest zbyt długi, co pogarsza efektywność pisanych programów. W związku z tym proponuję wykorzystanie do tych celów zamieszczonego poniżej programu.
    Program ten zawiera w liniach 80—110 dane do relokowanej procedury maszynowej, które dla wygody użytkownika umieszczane są przez program w zmiennej tekstowej AS. Po bezbłędnym wpisaniu programu i jego uruchomieniu (dla bezpieczeństwa zapisać program na taśmie lub dyskietce) tworzona jest zmienna tek-
    stowa A$ zawierająca naszą procedurę w liniach 10 i 20, pozostałe linie programu są kasowane. Po zapisaniu tych linii programu na nośniku zewnętrznym instrukcją LIST, możemy za pomocą instrukcji ENTER dołączać je do własnych programów. Wywoływanie procedury:
    1. W przypadku wyszukiwania sekwencji bajtów bezpośrednio w pamięci mikrokomputera postać wywołania jest następująca:
    X = USR(ADR(A$),START,KONIEC, ADR(B$),LEN(B$))
    gdzie B$ jest zmienną tekstową, w którą należy wpisać wcześniej wyszukiwaną sekwencję bajtów w znakach ATASCII (maksymalna długość 255 znaków);
    START, KONIEC — są to adresy odpowiednio początku i końca przeszukiwanego przez procedurę obszaru pamięci.
    Pod zmienną X procedura podstawia adres pierwszego bajtu odnalezionej w pamięci sekwencji. W przypadku jej nieodnalezienia podstawiana jest pod X wartość zero. Uwaga! Wartość zero podstawiana jest pod X także, gdy sekwencja rozpoczyna się od adresu 0000.
    2. W przypadku wyszukiwania sekwencji bajtów w zmiennej tekstowej postać wywołania i znalezienia początku jej położenia jest nieco bardziej złożone. Jako adres startu wyszukiwania (START) podstawiamy adres przeszukiwanej tablicy np. dla tablicy S$ podstawiamy ADR(SS), adresem końca zaś w tym przypadku będzie ADR(S|) + LEN(S$)-1. Postać wywołania procedury może być więc następująca:
    X = USR(ADR(A$),ADR(SS),ADR(SS) + LEN(SS) -1 ,ADR(B$),LEN(BS))
    Po tym wywołaniu należy jako pierwszą wykonać następującą instrukcję:
    X = X-ADR(S$)+1
    Jeśli X<0 to przeszukiwana tablica nie zawiera danej sekwencji, gdy zaś X>0 to wartość X wskazuje położenie szukanej sekwencji w zmiennej S$.
    Na zakończenie chcę powiedzieć, że czas przeszukiwania przez procedurę obszaru pamięci 64KB wynosi nieco ponad 2 sekundy, zaś w przypadku przeszukiwania
    zmiennych tekstowych procedura działa szybciej niż instrukcja FIND w Basicu XL.
     

    Autor listingu: Krzysztof Kołodziej

    Listing nadesłał: Amarok

    Język programu: Basic

    Stan listingu:

    0
    Listing niesprawdzony - świeżo po OCR lub przepisaniu
  • Liczby zespolone

    Liczby zespolone są mało znanym uczniom szkół średnich działem matematyki (praktycznie tylko uczniom klas o profilu matematyczno-fizycznym). Tym jednak, którzy poznają liczby zespolone przydatny może być mój program.

    Realizuje on najczęściej wykonywane działania na liczbach zespolonych takie jak: mnożenie, dzielenie, dodawanie, odejmowanie, potęgowanie zespolone, pierwiastkowanie, ponadto wylicza loga- rytm naturalny, funkcje sinus i cosinus, exponent, moduł i liczbę sprzężoną oraz zamienia postać algebraiczną na trygonometryczną i odwrotnie. W opcjach „DODAWANIE" i „MNOŻENIE" program pyta o ilość liczb, na których będzie wykonywanie działania. Umożliwia to dodawanie lub mnożenie wielu liczb zespolonych (jednak nie więcej niż 17).
    Program mój został częściowo oparty na algorytmach zawartych w książce „25 numerycznych programów w języku BASIC" Andrzeja Witowskiego i Jakuba Tatarkiewicza.
    Jeszcze kilka uwag na koniec. Ze względu na możliwości obliczeniowe Atari nie wszystkie dane będą akceptowane przez program, o czym użytkownik jest informowany odpowiednim komunikatem. Większość wyników podawana jest z dokładnością do 0.001. W opcjach zmiany postaci z algebraicznej na trygonometryczną i odwrotnie ułamki za kropką oznaczają dziesiętne i setne stopnia, a nie minuty i sekundy,
     

    Autor listingu: Dariusz Tabaczyński

    Listing nadesłał: Amarok

    Język programu: Basic

    Stan listingu:

    0
    Listing niesprawdzony - świeżo po OCR lub przepisaniu
  • Hej Kolęda, Kolęda...

    Zbliżają się święta, a z nimi choinki, prezenty i kolędy. Proponuję stworzyć świąteczny nastrój przy pomocy naszego Spectrum. Nauczymy je w tym celu grać kilka najpopularniejszych kolęd. Wystarczy wpowadzić i uruchomić któryś z umieszczonych  programów. Wesołych Świąt!
     

    Autor listingu: Marcin Borkowski

    Listing nadesłał: Faust

    Język programu: Sinclair Basic

    Stan listingu:

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

    Dzięki wiadomościom zawartym w „Bajtku" przestałem bać się przerwań i napisałem program w języku maszynowym, który jest wykonywany co 1/50 sekundy w czasie przerwania synchronizacji pionowej. Opracowana przeze mnie procedura może wykonywać proste melodie (do 93 nut), lecz nie przeszkadza w normalnej pracy Basica. Można więc wykorzystać ją do uzyskania podkładu muzycznego we własnym programie, zaś przy pisaniu programu może ona umilić pracę.
    Dla uzyskania takiego efektu trzeba wpisać zamieszczony program i uruchomić go. Program ten jest potem zbędny i można go skasować instrukcją NEW. Przerwanie pracy programu następuje po naciśnięciu klawisza RESET lub po wpisaniu POKE 548, 138: POKE 549, 194. Ponowne włączenie muzyki uzyskuje się po wpisaniu POKE 548, 0: POKE 549, 6. Jeśli chcemy uzyskać inną melodię, to trzeba wpisać do komórki 1541 liczbę nut pomnożoną przez 2 (maksymalnie 186), a do komórki 1582 wielkość pauzy między nutami (maksymalnie 255). Teraz jest to odpowiednio liczba 132 w wierszu 90 i trzecia liczba 0 w wierszu 100. Następnie trzeba zmienić zawartość instrukcji DATA od wiersza 120. Kolejno trzeba tam wpisać dla każdej nuty wysokość dźwięku (wartości takie jak w instrukcji SOUND) i czas jego trwania. Na końcu w wierszu 70 wpisujemy graniczną wartość pętli FOR/NEXT odpowiednią dla liczby nut wprowadzonych do instrukcji DATA. Dla Czytelników zainteresowanych programowaniem w języku maszynowym podaję dodatkowo źródłowy wydruk procedury w asemblerze MAC/65.

    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 "D0:MUZYKA.BAS"
    • RUN

     

    Autor listingu: Maciej Rempiński

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

    Dwa poniżej przedstawione programy pozwalają na samodzielne wykonanie koperty dla dyskietki oraz papierowej wkładki do pudełka od kasety. Programy te współpracują z dowolnym Commodore i ze wszystkimi drukarkami, które mogą współpracować z tymi komputerami. W wypadku wkładki do pudełka od kasety możliwa jest także aktualizacja danych dotyczących programów zawartych na danej kasecie. Możliwe jest wpisanie do 13 tytułów programów z obu stron kasety. Gdy po jakimś czasie taśma ta znudzi Ci się i skasujesz zawarte na niej programy, to bez większych problemów możesz zrobić dla niej nową wkładkę zawierającą aktualne tytuły programów. W wypadku programu drukującego kopertę dla dyskietki użytkownik powinien w miejsce „Imię i nazwisko" wpisać swoje własne dane nie zmieniając przy tym liczby znaków w tym wierszu. Może to być np. imię i nazwisko właściciela, dowolny znak katalogowy itp. Papier, z którego zostanie wykonana koperta, powinien być w miarę sztywny i czysty — doskonale do tego celu nadaje się np. papier kredowy.

    Jeżeli Twoja drukarka współpracuje z komputerem poprzez port użytkownika, to musisz najpierw wprowadzić do programu odpowiednie korekty (dotyczy to instrukcji OPEN oraz PRINT#4). Oczywiście posiadacze lepszych drukarek np. NL-10 czy GEMINI będą mogli z łatwością wprowadzić poprawki do programów, umożliwiające wydruk więcej aniżeli 13 tytułów w wypadku wkładki czy np. dodatkowe pola dla nazwy i identyfikatora dyskietki. Oprócz programów zamieszczam także przykładową wkładkę, jaką otrzymamy w wyniku działania pierwszego programu.

    Na dyskietce znajduja sie dwa pliki:
    Obwoluta.prg - zawiera generator okładki na kasety
    ObwolutaFDD.prg - zawiera okładkę na FDD, niestety ta drobna modyfikacja nie została dostosowana do generowania pełnych spisów.
     

    Autor listingu: Klaudiusz Dybowski

    Listing nadesłał: Faust

    Język programu: Commodore Basic

    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.