Ready/Run
Takie sobie archiwum listingów ze starych magazynów komputerowych
-
Paczka minilistingów Mikrokomputery, 1987
Paczka listingów zamieszczonych w dodatku do Kuriera Szczecińskiego "Mikrokomputery" z 1987 roku. Wszystkie listingi oprócz "Najwyższy Wspólny Podzielnik" są ok.
Na obrazie kasety znajdują się programy, w kolejności zamieszczania ich w periodyku:
- DZIEŃ TYGODNIA
- LICZBY RZYMSKIE
- LUPA
- JEDNOSTKI CIŚNIENIA
- ŻÓLW W BASICU
- NAJWYŻSZY WSPÓLNY PODZIELNIK
- JEDNOSTKI MASY
- MOZAIKA
- GRAFIKA
- SYSTEMY LICZBOWE
- KURSY WALUT
- JEDNOSTKI DŁUGOŚCI
- POWIERZCHNIE
- SKALE TERMOMETRYCZNE
- WIELOKĄTY
Autor listingu: nw
Listing nadesłał: Faust
Język programu: Sinclair Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Zabawa w sklep
Proponuję Wam dzisiaj przerobienie komputera na kasę sklepową. Będzie to jednak nieco mądrzejsza kasa niż te, które widujemy na codzień.
Zwykła kasa — pomimo bardzo poważnego wyglądu — potrafi bardzo niewiele. Praktycznie jedynie dodaje wystukiwane na klawiaturze sumy pieniędzy. Pomocnicze obliczenia (na przykład ile kosztuje 62 dekagramy sera w cenie 347 złotych za kilogram) musi dokonywać sprzedający. Spróbujmy mu pomóc.
Człowiekowi obliczenie rachunku w rodzaju
0.62*347
zajmuje przeciętnie kilkanaście sekund, dla komputera natomiast jest to czas niezauważalny. Trzeba mu jednak te dane wpisać. Najprostszym sposobem byłoby każdorazowe informowanie komputera o ilości i cenie jednostkowej (na przykład za kilogram, litr lub sztukę) towaru. Wówczas następowałoby obliczenie należności i zsumowanie jej z poprzednimi. Zastanówmy się jednak, czy nie można jeszcze bardziej ułatwić życia sprzedawcy.
Ilość towaru (w odpowiednich jednostkach) będzie trzeba podawać za każdym razem, bo zależy ona jedynie od życzenia klienta. Bez trudu możemy natomiast przewidzieć jednostkowe ceny towarów, i to może za nas pamiętać komputer. W takim przypadku wystarczy podać nazwę sprzedawanego towaru i jego ilość. Dla uniknięcia nieporozumień komputer powinien pamiętać, że ilość mleka mierzy się w litrach, cukru w kilogramach a bułek w sztukach.
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Catalog
Program KATALOG ułatwia odnajdywanie na kasecie programów bez konieczności kontrolowania wskazań licznika obrotów magnetofonu. Wyszukiwanie odbywa się podczas szybkiego przewijania taśmy magnetofonowej i zakończone jest sygnałem akustycznym połączonym z jednoczesnym zatrzymaniem silnika magnetofonu.
Na jednej stronie kasety magnetofonowej typu C-60 można umieścić 10 programów, których czas odczytu nie przekracza 165 sekund. Odpowiada to normalnym programom o pojemności ponad 8 KB lub, gdy korzystamy z programów zapisanych w systemie szybkiego wczytywania (np. TURBO C-16), ich pojemność może przekroczyć 30 KB.
Program KATALOG należy zapisać na samym początku kasety. Oczywiście przed zapisaniem należy w liniach DATA na końcu programu umieścić nazwy programów które będą zapisane na tej kasecie.
Po wczytaniu i uruchomieniu KATALOGU należy wybrać numer interesującego nas programu i włączyć szybkie przewijanie. Magnetofon zatrzyma się w miejscu zarezerwowanym na wybrany przez nas program.
KATALOG jest przerobioną wersją programu zamieszczonego w YOUR COMMODORE 06/86.
Autor listingu: Tadeusz Chęciński
Listing nadesłał: Faust
Język programu: CBM Basic v3.5
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Disc Tester
Opisany tu program nie wymaga w zasadzie żadnych specjalnych rekomendacji — umożliwia on przetestowanie dyskietki i wykrycie jej ewentualnych uszkodzeń lub mankamentów nośnika. Program ten można wykorzystywać na wszystkich stacjach Commodore.
Sam tekst dyskietki jest nieco obostrzony. Normalnie procedura odczytu uszkodzonego sektora jest wykonywana 5 razy natomiast w podanym poniżej programie — tylko raz. Pozwala to na ewentualne wychwycenie wszystkich sektorów „niepewnych", które mogą sprawić kłopoty w niedalekiej przyszłości. Z programu tego można korzystać na dyskietkach już zapisanych gdyż odczytuje on jedynie zawartość poszczególnych sektorów.
Pierwsze pytanie zadawane przez program odnosi się do typu używanej stacji. Jeżeli dysponujesz stacją 1541, 1570 czy 1551 to należy wybrać opcję 35 ścieżek, gdyż modele te pracują w oparciu o zapis jednostronny. Jeżeli natomiast korzystasz ze stacji 1571 to wybieraj 70 ścieżek jeśli dyskietka jest zapisana dwustronnie oraz 35 ścieżek jeśli jest ona zapisana jednostronnie.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: CBM Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Allocator
Zapisywanie programów na uszkodzonej dyskietce jest co najmniej ryzykowne — zawsze może się zdarzyć tak, że fragment programu zostanie wpisany do sektora niepewnego czy wręcz uszkodzonego. Takiej „przyjemnostki” można jednak uniknąć stosując program podany poniżej.
Poszczególne ścieżki i sektory dyskietki możemy bez obawy rezerwować do własnych potrzeb za pomocą instrukcji BLOCK-ALLOCATE. Jej format jest następujący:
100 OPEN 15,8,15
120 PRINT # 15, "B-A"; 0; ŚCIEŻKA;SEKTOR
140 CLOSE 15
Jeżeli zamierzasz Czytelniku poeksperymentować trochę z tą instrukcją, to radzę wziąć dyskietkę, która nie zawiera ważnych dla Ciebie programów.
Taki sposób rezerwowania wybranych sektorów do własnych potrzeb jest najlepszym z możliwych na dyskietce dobrej. Problem polega tu na tym, że procedura ta jest niedopracowana i nie zawsze chce działać tak jakbyśmy sobie tego życzyli.
Poniższy program pozwala na zarezerwowanie dowolnego sektora na wybranej ścieżce z wyjątkiem ścieżek systemowych (tzn. przeznaczonych dla katalogu dyskietki). Program działa ze wszystkimi stacjami Commodore. Test nośnika możemy przeprowadzić za pomocą programu DISK TESTER podanego w tym numerze.
Na zakończenie dwie uwagi. Po pierwsze pamiętajmy, że wykonanie instrukcji VALIDATE lub COLLECT automatycznie spowoduje uwolnienie zajętego w ten sposób sektora. Po drugie zarezerwowanie uszkodzonego sektora znacznie obniża lecz nie likwiduje całkowicie ryzyka utraty programu — jeżeli np. uszkodzenie to było czysto mechaniczne, osłabiony nośnik może stopniowo odklejać się dalej powodując błędy w innych, wcześniej dobrych sektorach. Dlatego też proponuję, aby na takich dyskietkach NIGDY nie zapisywać programów dla nas ważnych. Pamiętajmy także o tym, że proces ten powoduje zmniejszanie się liczby sektorów wolnych na dyskietce; innymi słowy, jeżeli zarezerwowaliśmy cztery uszkodzone sektory na pustej dyskietce to przy odczytywaniu katalogu otrzymamy „660 BLOCKS FREE” zamiast „664 BLOCKS FREE”.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: CBM Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Locker
LOCKER jest programem umożliwiającym zabezpieczenie dyskietki przed zapisem w sposób programowy.
W efekcie jego działania w katalogu dyskietki na ścieżce 18 w sektorze 0 zmieniana jest wartość drugiego (licząc od zera) bajtu określającego system operacyjny stacji dysków na której dyskietka ta była zapisywana. Normalnie wartość tego bajtu wynosi 65; wartość ta jest zamieniana przez program na wartość 233
Polecałbym ostrożne i rozważne korzystanie z tego programu, gdyż zmiana ta może mieć charakter trwały, jeżeli użytkownik nie dysponuje odpowiednim programem odblokowującym, gdyż jedynym możliwym odblokowaniem w takim wypadku jest sformatowanie dyskietki i zapisanie jej od nowa. Dlatego też radziłbym, aby blokować w ten sposób jedynie te dyskietki, na których z całą pewnością nie będziemy chcieli nic więcej zapisać. Dotyczy to także takich operacji jak VALIDATE czy RENAME. UWAGA. Zabezpieczenie to NIE NISZCZY dyskietki ani nie chroni jej przed sformatowaniem. Ponadto niektóre programy kopiujące są w stanie obejść to zabezpieczenie.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: CBM Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: [c64[bajtek_101988]_locker-t2e.pl.7z
-
80 znaków w wierszu
Profesjonalne komputery umożliwiają zwykle uzyskanie na ekranie monitora 80 znaków w każdej linii. W porównaniu z tym, 40 znaków w linii dostępne na Atari, to śmiesznie mało. Zamieszczamy więc program, który umożliwia podwojenie tej liczby.
Program działa w trybie graficznym 8 i składa się z dwóch części. Pierwsza generuje nowy zestaw znaków, który umieszczony jest od adresu 31744 i zajmuje 1 KB pamięci (z tego względu program, który będzie wykorzystywał przedstawioną procedurę musi zostawiać w grafice 8 przynajmniej 1,5 KB wolnej pamięci). Właściwa procedura stanowi drugą część programu. Wczytywana jest ona na 6 stronę pamięci. Po wczytaniu obu części program w Basicu może być usunięty (w tym celu należy zamienić instrukcję END w linii 1050 na NEW lub RUN "C:").
Aby uzyskać tekst trzeba teraz włączyć tryb GRAPHICS 8, a następnie użyć instrukcji:
I = USR( 1536, ADR(T$),X, Y,LEN(T$))
gdzie T$ jest tekstem, który chcemy wyświetlić: X jest współrzędną poziomą początku tekstu (od 0 do 79, a więc z dokładnością 4 punktów ekranu); zaś Y jest współrzędną pionową (od 0 do 184, a z oknem tekstowym do 152),
Umieszczony na ekranie tekst wymazuje tło, na którym się pojawi (oprócz pierwszego znaku przy nieparzystej wartości X). Gdy zamierzamy wykonać nadruk na istniejącym rysunku, to należy przed wywołaniem procedury przez USR, wpisać instrukcję POKE 1770,128. Teraz tekst w miejscach mających kolor 1 będzie miał kolor 0 i odwrotnie. POKE 1664,13 spowoduje, że tekst zawsze będzie miał kolor 1. Normalny tryb pracy programu przywracają instrukcje POKE 1770,131 i POKE 1664,77.
Przedstawiona procedura ma jednak kilka ograniczeń. Przede wszystkim nie może wykonywać napisów w negatywie (inverse video). Nie pozwala także na zmianę miejsca umieszczenia pamięci obrazu. To ostatnie ograniczenie można ominąć wpisując instrukcje POKE 1615,H i POKE 1622,L, gdzie H i L to odpowiednio starszy i młodszy bajt adresu pamięci obrazu. Ponieważ przesunięcie obrazu może spowodować zniszczenie obszaru zaiętego przez zestaw znaków, to również można go przenieść w inne miejsce. W tym celu trzeba zmienić wartość 31744 w linii 10 na nową i wpisać starszy bajt nowego adresu przez POKE 1577,A/256. Trzeba przy tym pamiętać, aby zestaw znaków rozpoczynał się od początku strony, a więc od adresu podzielnego przez 256.
Efektywne wykorzystanie programu wymaga dołączenia go do innego programu w Basicu lub (po disasemblacji) do programu w kodzie maszynowym. Można także spowodować, aby program po umieszczeniu w pamięci zestawu znaków i procedury maszynowej uruchamiał inny program w Basicu.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:80ZNAKOW.BAS"
- RUN
Autor listingu: Michał Skowroński
Listing nadesłał: Amarok
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_10-t2e.pl.atr
-
Demonstracja Grafiki
Prezentowany przeze mnie programik, choć bardzo krótki, ma wiele atrakcji i nieograniczone możliwości.
Program ten wykreśla na ekranie fantazyjne wykresy pseudoprzestrzenne. W linie 20 i 50 można wprowadzić własne ciekawsze dane na przykładzie przedstawionej próbki (dodatki I — V). Program mój nie tylko prezentuje możliwości graficzne ósmego trybu, ale również ukazuje przykład praktycznego wykorzystania funkcji matematycznych w Atari.Listing pochodzi z repozytorium listingów Basic autorstwa AMAROKJak zaladować (najprostsza metoda)
ALTIRRA:
- Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
- Cold Reset (Powinien wejść do Basica)
- LOAD "D0:WYKRES1.BAS" lub LOAD "D0:WYKRES2.BAS" lub "LOAD "D0:WYKRES3.BAS"
- RUN
Autor listingu: Arnold Adamczyk
Listing nadesłał: Amarok
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_10-t2e.pl.atr
-
Follow Me
Tytuł ten, w wolnym tłumaczeniu, może znaczyć "rób to, co ja". Pomysł zaczerpnięty jest z francuskiego czasopisma „Amstrad Magazine”; program podobny figurował pod nazwą „Garfunkel”. Tu jednak został znacznie skomplikowany, co zapewne czyni go atrakcyjniejszym, lecz trudniejszym.
Na ekranie widnieje kolorowe koło, podzielone na osiem jednakowych części, ponumerowanych od 0 do 7. Komputer wybiera losowo którąś z części i zakrywa ja przez chwiię. Zadaniem grającego jest powtórzenie tego ruchu, przez wciśnięcie jednej z cyfr od 0 do 7. Po prawidłowej odpowiedzi komputer losuje następną część koła i zakrywa po kolei: najpierw poprzednią, potem wylosowaną. W ten sposób trudność gry wciąż rośnie.
Na początku nie będziesz mógł zapamiętać nawet pięciu zniknięć, po krótkim treningu z łatwością powtórzysz osiem. Jednak wynik piętnastu zniknięć należy uznać za bardzo dobry, nawet po długim treningu.
Autor listingu: Stanisław Dałek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Katalog Dyskowy
W ostatnim numerze z 1987 roku przedstawiliśmy Wam program umożliwiający korzystanie ze spisu zawartości kasety magnetofonowej wewnątrz programu w BASIC-u. Teraz kolei na dyskietkę.
Zamieszczony poniżej listing należy uważnie wpisać do komputera i na wszelki wypadek zapamiętać na dyskietce. Rozkazem RUN uruchamiany program i odczekujemy kilkanaście sekund, aż pojawi się znany dobrze komunikat „Ready”. Jeśli otrzymamy wcześniej komunikat "Błąd w DATA!!!", to znaczy, że popełniliśmy błąd przy przepisywaniu i daną linię należy poprawić. Komunikaty Basica (np. "Syntax error" ) mogą również świadczyć o błędzie przy kopiowaniu listingu.
Dodatkową pomocą przy przepisywaniu są sumy kontrolne umieszczone w nawiasach kwadratowych na prawo od każdej linii programu. Jeżeli przed rozpoczęciem wpisywania uruchomiliśmy program „Weryfikator” z nr 1/1988, to po każdym naciśnięciu ENTER ukaże się liczba, która musi być równa sumie kontrolnej. Nierówność oznacza pomyłkę w ostatnio wprowadzonej linii.
Po pojawieniu się komunikatu „Ready” możemy skasować program komendą NEW, gdyż spełnił on swoje zadanie: procedura w języku maszynowym została załadowana do pamięci począwszy od adresu &9D00. Ponieważ ładowanie programu do pamięci z linii DATA trwa aż 15 sekund, to opłaca się zapamiętać teraz fragment pamięci rozkazem:
SAVE "DCAT.BIN",b,&9D00,&410 aby ładować go potem trzema rozkazami:
MEMORY &9CFF:LOAD "DCAT.BIN", &9D00:CALL &9D00
zamiast za każdym razem od nowa uruchamiać program w Basicu.
Procedura dodaje do Basica dwie nowe komendy RSX: |DCAT i |INFO.
Rozkaz DCAT służy do wpisania katalogu dyskietki dc tablicy stringów. Jego wywołanie wygląda następująco:
|DCAT,@a$(0),dr
Parametr dr jest wyrażeniem całkowitym dającym wartość 0 lub 1 i oznacza stację dysków, na której przeglądany ma być katalog (0 = A, 1 = B). Opuszczenie parametru dr powoduje wybranie stacji domyślnej (ustawionej przez :A,:B lub :DRIVE).
Tablica stringowa a$ (można oczywiście użyć innej nazwy) musi posiadać co najmniej tyle elementów (stringów) o długości większej od 17 ile jest zbiorów na dyskietce. Jeśli będzie ich mniej to komputer wypisze komunikat „Table too small”. Zawartość stringów jest przy tym nieistotna. Komenda zamieni miejscami elementy tablicy tak, aby właściwe elementy znalazły się na początku i wpisze do nich nazwy zbiorów z dyskietki w następującym formacie
"00:NAZWA_»TYP*#z"
- 00 — numer użytkownika (USER); może przyjmować wartości od 00 do 15
- NAZWA — ośmioznakowa nazwa pliku (ewentualnie dopełniona spacjami) np, CIOCPM3
- TYP — trzyznakowe rozszerzenie nazwy (ew. dopełnione spacjami: np. EMS, BAS, BIN, COM)
- * — oznacza plik zabezpieczony przed zapisem (R/O); spacja zamiast gwiazdki oznacza zwykły plik
- # — oznacza plik systemowy (nie pokazywany przez CAT i DIR — nasza komenda pokazuje takie pliki); dla plików zwykłych w tym miejscu jest spacja
- z — jest pojedynczym znakiem, którego kod mówi o wielkości pliku tzn. jeśli ASC(z) = 15to plik zajmuje 15 kB;
Stringi zawierające nazwy zbiorów są przez DCAT sortowane alfabetycznie (tak jak przez CAT), przy czym brany jest pod uwagę również numer użytkownika, to znaczy string „00:ZZZZ...” jest przed stringiem „01 :AAAA...”. Ponieważ znak z (wielkości pliku) ma najczęściej kod mniejszy od 32, czyli jest znakiem sterującym, to nie należy wyświetlać elementów tablicy w całości, lecz następująco:
PRINT (LEFT$(a$(i),17),ASC(MID$ (a$(i),18,1))
Otrzymany w ten sposób napis od 00 do # i obok wielkość pliku w kilobajtach, „i” jest numerem elementu tablicy.
Jeżeli string, do którego wpisano informację o zbiorze ma długość większą od 18, to znaki od 19 do ostatniego pozostają niezmienione.
Ze względu na specyfikę obsługi stringów w Amstradzie nie wolno w programie inicjalizować tablicy przez przypisanie pojedynczego stringu np a$(i) = „01234567890123456789”. Należy posłużyć się przypisaniem dowolnego wyrażenia stringowego np.
a$(i)=„0” +„1234567890123456789” lub krócej: a$(i) = SPACE$(18)
Jeżeli tę samą tablicę używamy do wczytania katalogu z kilku dyskietek, to należy ją za każdym razem inicjalizować, by móc stwierdzić, ile zbiorów jest na kolejnej dyskietce (jeśli będzie mniej, to w nie zainicjalizowanej tablicy pozostaną stringi z informacją o zbiorach poprzedniego katalogu).
Drugą komendą, którą daje nam program jest INFO. Wywołuje się ją następująco: |INFO,@nazwa$,@a% ,@b% ,@c%, @d%,@e%
nazwa$ — jest zmienną stringowa zawierającą nazwę zbioru, o którym informację chcemy uzyskać; nazwa nie może zawierać oznaczenia stacji („a:”) ani numeru użytkownika („0:”); wszystkie spacje są ignorowane; użytkownicy CPC 664 i 6128 mogą zamiast @nazwa$ podać nazwał lub bezpośrednio string a%,b%,c%,d%,e% są zmiennymi całkowitymi o dowolnej, ale określonej wartości. Po wykonaniu komendy zostaną w nich umieszczone następujące informacje:
- a% — typ zbioru:
- 0 — Basic
- 1 — Basic zabezpieczony (SAVE,p)
- 2 — program w języku maszynowym 22 — zbiór ASCII lub program COM
- b% — adres ładowania programu maszynowego; dla Basica zawsze 368; dla ASCII nieokreślone
- c% — długość zbioru; dla ASCII nieokreślone
- d% — jeżeli wielkość zbioru przekracza 64 kB tutaj umieszczany jest najbardziej znaczący bajt długości zbioru (prawie zawsze 0; dla ASCII nieokreślony)
- e% — adres autostartu dla programów maszynowych uruchamianych komendą RUN; dla Basica — 0; dla ASCII nieokreślone
Nazwy zmiennych mogą być oczywiście różne od tych, podanych w przykładzie.
Zbiór szukany jest zawsze na domyślnej stacji dysków i domyślnym obszarze użytkownika (które można ustawić komendami :A, :B, :DRIVE i :USER). Jeżeli nie zostanie znaleziony, to komputer wypisze: „File not found”, lecz nie przerwie programu.
Przedstawiony w numerze 12/1987 katalog kasetowy można załadować do pamięci razem z katalogiem dyskowym, co umożliwia na przykład pisanie programów automatycznego kopiowania dyskietek na kasety i odwrotnie. Najpierw należy załadować poprzedni program a dopiero potem przedstawiony powyżej..
Autor listingu: Sergiusz Wolicki
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Mini Pacman
Część Czytelników interesują wyłącznie gry, inni chcieliby więcej informacji o programowaniu, a „Bajtek” nie jest z gumy. Aby wilk był syty i owca cała, drukujemy grę napisaną w Action!.
Po ukazaniu się „Bajtka-Atari” do redakcji nadeszło wiele listów z pytaniami o język Action!. Równolegle do prowadzonego w wydaniach specjalnych „Bajtka” kursu tego języka będą więc w klanie Atari prezentowane napisane w nim programy. Pierwszym jest prosta gra zręcznościowa oparta na motywach popularnego „PacMana”.
Zadaniem gracza jest zbieranie kropek na planszy. Należy przy tym unikać wygłodniałego potwora, który chciałby zjeść PacMana na obiad. Po zebraniu wszystkich kropek następuje przejście na wyższy poziom (razem jest ich 20). Oczywiście do poruszania się po planszy trzeba używać joysticka.
Jeszcze krótka informacja dla osób, które nie znają Action!. Po wpisaniu programu trzeba przejść do monitora przez wciśnięcie klawiszy CTRL-SHIFT-M. Teraz poleceniem C kompilujemy program i zapisujemy wersję skompilowaną przez S C: (kaseta) lub S D:PACMAN.OBJ (dyskietka). Program źródłowy można również zapisać (przed wejściem do monitora) przez wciśnięcie klawiszy CTRL- SHIFT-W i podanie nazwy C: lub D:PACMAN.ACT.
Po skompilowaniu lub wczytaniu skompilowanego programu uruchamiamy go poleceniem R (z monitora). Po zakończeniu gry następuje powrót do monitora i wyświetlenie meldunku błędu „Error:128”. Jest to objaw prawidłowy i nie należy szukać btędu w programie. Ten błąd jest powodowany przez procedurę Break(), przerywającą program.
Instrukcje w Action! mogą byc oddzielone od siebie spacją lub dwukropkiem. W jednej linii można umieścić dowolną liczbę instrukcji. Rozmieszczenie instrukcji w programie jest więc dowolne, a wcięcia w wydruku służą jedynie poprawieniu jego czytelności.
Program nie jest skomplikowany i nawet początkujący programista łatwo go zrozumie po dokonaniu analizy. Trzeba przy tym pamiętać, że program w Action! jest ZAWSZE wykonywany od ostatniej procedury.
Autor listingu: Wojciech Zientara
Listing nadesłał: Faust
Język programu: Action!
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: PACMAN-t2e.pl.ACT Min-PacMan-t2e.pl.txt
-
Weryfikator
Jak sprawdzić, czy wpisany właśnie program jest poprawny?
Najlepiej porównać go z oryginałem. Może to być jednak niewykonalne. Proponuję metodę stosowaną już w Klanie Atari i Klanie Commodore. Sposób będzie jednak trochę inny. Spectrum posiada edytor na tyle nietypowy, że właściwie nie ma możliwości kontrolowania aktualnie wpisanej linii. Zastosowałem więc inną metodę — dopisywania do wprowadzonej już linii sumy wszystkich jej kodów modulo 255 w kodzie szesnastkowym.
Procedura pracuje w dwóch wersjach. Pierwsza, uruchamiana przez RANDOMIZE USR 23310 powoduje zapisanie sumy kontrolnej w każdej linii, którą kończy instrukcja REM xx. XX to dwa dowolne znaki.
Tryb uruchamiany przez RANDOMIZE USR 23380 powoduje dopisanie do każdej istniejącej linii końcówki REM z kodem kontrolnym linii.
Proponuję przeanalizowanie procedury w kodzie maszynowym. Jest ona umieszczana w buforze drukarki i pozostaje tam do chwili wyzerowania komputera. Oczywiście, jeżeli używa się drukarki, procedurę należy przenieść w inny obszar pamięci lub wpisywać ją tam po każdym użyciu drukarki.Autor listingu: Mieczysław Torbus
Listing nadesłał: Faust
Język programu: Sinclair Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Labirynt
Bajtkowe przedszkolaki z grupy Romka dotarły już do „starszaków” — czas najwyższy, by czytać kolumny „Klanów”. Zanim więc rozpoczniecie naukę asemblera, uświadomcie sobie, że BASIC to nie tylko Kubuś Literka. Dla Was kontynuujemy cykl „Zrób to sam” — czyli układamy „duży” program w oparciu o pomysł z „Bajtka”.
Dziś w KLANIE SPECTRUM propozycja zabawy w bieganie po labiryncie. W podanym przykładzie (jest to tylko przykład) należy w jak najkrótszym czasie przejść wszystkie korytarze. Operując czterema klawiszami (Q, A oraz O i P), zbieramy porozrzucane gwiazdki. Kto chce, może już zacząć grać. Należy tylko pamiętać, by po wpisaniu programu utrwalić go na taśmie oraz by w czasie gry nie był włączony CAPS LOCK. Tym zaś, którzy chcieliby tanim kosztem stworzyć „własną” grę, proponujemy analizę załączonego przykładu i co najważniejsze, udoskonalenie go, bo przecież nie możemy w „Bajtku” drukować super wersji na 48 kB.
Wszystkim radzimy najpierw wpisanie programu dokładnie w takiej postaci, jak na listingu. Pierwszą rzeczą jaką będziecie potem mogli zmienić jest kształt labiryntu, zapisany w liniach DATA. By nie pogubić się w zerach i jedynkach, dobrze byłoby najpierw zaprojektować go na kartce (labirynt zajmuje obszar 32 x 19 znaków). W liniach 2000 — 2030 zdefiniowana jest postać, którą poruszać się będziecie po labiryncie (aby ją „wywołać” przy wpisywaniu programu, należy najpierw wpisać i uruchomić fragment 2000—2030, a następnie używać GRAPHICS i A). Postać tę możecie również dowolnie zmieniać — sposób definiowania wyjaśniony jest w każdej instrukcji do komputera. Klawisze sterujące „schowane” są w liniach 90—120. Można je wymienić na inne lub, po dopisaniu kilku linii, wprowadzić możliwość definiowania ich przez gracza. Wiele linii można też dodać, by ulepszyć oprawę graficzną i dźwiękową. Pomysłów na pewno Wam nie zabraknie — wszak nie jesteście już przedszkolakami.Autor listingu: (PB)
Listing nadesłał: Faust
Język programu: Sinclair Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: zx_labirynt_bajtek-61986-t2e.pl.zip
-
Sufler
Doświadczeni programiści wiedzą, że aby znaleźć odpowiedź na takie pytanie trzeba niejednokrotnie poświęcić dużo czasu, chociaż odpowiedź może okazać się bardzo prosta.
W dużo gorszej sytuacji sa początkujący amatorzy „komputerowego szaleństwa”, stawiający pierwsze kroki nie tylko w programowaniu, ale również i w nieodzownym przy tej pracy języku angielskim. Krótkie „syntax error” lub inne niezrozumiałe komunikaty rujnują zapał, nerwy, i czupryny naszych najmłodszych czytelników. A właściwie jest to już czas przeszły... Wystarczy uzbroić się w odrobinę cierpliwości i przepisać poniższy program oraz utrwalić go na kasecie lub dyskietce pod nazwą „SUFLER”. Od tej pory pisanie własnych programów należy rozpoczynać od załadowania naszego „suflera”, numerując własne linie począwszy od 10. i kończąc obowiązkowo linią z rozkazem END o numerze nie większym niż 59999! Każde uruchomienie programu z błędem spowoduje pojawienie się informacji o numerze błędu, numerze linii, w której wystąpił błąd oraz komunikatu w języku angielskim z następującym po nim obszerniejszym wyjaśnieniem w języku polskim.
Sprawdzony i działający program zapisuje się oczywiście na kasecie lub dyskietce po uprzednim usunięciu „suflera” poleceniami DEL — 9 i DEL 60000 —. Zapisane wcześniej a nie działające programy mogą być poprawiane również przy użyciu tego programu po włączeniu do nich „suflera” poleceniem CHAIN MERGE „nazwa programu” (pod warunkiem wszakże, że kończą się również linią z poleceniem END).
Roztargnionym przypominam, iż nie należy przepisywać z listingu liczb podanych w nawiasach kwadratowych, ani samych nawiasów. Są to liczby kontrolne, generowane przez opisywany poniżej po raz drugi weryfikator, służące wyłącznie do kontroli poprawności wpisywanych linii programu.
Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Osiemnastokołowiec
Kubuś Literka, dzielny poszukiwacz przygód i nasz stary przyjaciel został kierowcą wielkiej ciężarówki. Chyba każdy (a może także każda)-z Was marzy o tym, by zasiąść za kierownicą takiego osiemnastokołowca i wyruszyć przed siebie. Okazuje się jednak — przekonał się o tym Kubuś — że życie kierowcy nie składa się z samych tylko przyjemności. Czasem trzeba nieźle się nagłowić, jaki zabrać towar i jaką pojechać trasą, aby przewieźć możliwie najwięcej ładunków.
Zasady gry są bardzo proste. W pięciu miastach znajdują się magazyny z towarem. W każdym z magazynów czekają na transport do poszczególnych miast cztery ładunki. Kubuś rozpoczyna pracę od pierwszego magazynu. Jego ciężarówka zabiera jednorazowo 3 ładunki. Może wyruszyć na trasę tylko siedem razy a równocześnie musi starać się dostarczyć do miejsca przeznaczenia jak najwięcej ładunków. Za każdy z nich otrzymuje zapłatę w wysokości 100 bajtodukatów.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: [cpc]18kolo-t2e.pl.7z
-
Zamiana Liczb
Z przykrością musze stwierdzić, że nie znalazłam dotąd w "Bajtku" artykułu (programu) napisanego przez DZIEWCZYNĘ. Chciałabym zmienić ten stan rzeczy proponując program, którego zadaniem jest zamiana liczb z systemu dziesiętnego na liczby przedstawione w systemie dwójkowym i szesnastkowym (wbudowany BASIC nie posiada takiej funkcji).
Algorytm działania programu jest uniwersalny do konwersji liczby w systemie dziesiętnym na liczbie w innym systemie, a polega on na dzieleniu zadanej wartości przez podstawę określonego systemu. Otrzymane z dzielenia reszty będą kolejnymi cyframi reprezentacji zadanej wartości w tym systemie.
Brzmi to trochę dziwnie i niezrozumiale. Przedstawmy przykład, który pozwoli lepiej nam zrozumieć ten sposób konwersji.
Chcemy przedstawić liczbę 11 w systemie dwójkowym. Dzielimy zatem 11 przez 2 (podstawę systemu dwójkowego).
11:2=5 r.1
5:2=2 r.1
2:2=1 r.0
1:2=0 r.1
Otrzymane reszty (r.) piszemy od pozycji najmniej znaczącej (od końca) i w ten sposób otrzymujemy liczbę 11 przedstawioną w systemie dwójkowym.
11- -> 1011
Analogicznie rzecz się przedstawia przy zamianie liczby systemu dziesiętnego na liczbę w systemie szesnastkowym z tą tylko różnicą, że podstawa dzielenia jest liczbą 16, a dziesiętne wartości równe 10,11,12,13,14,15 są przedstawione literami A,B,C,D,E,F.
Dla lepszego zrozumienia przykład: Zamieniamy liczbę 8360 (w systemie dziesiętnym) na liczbę przedstawioną w systemie szesnatkowym.
8360:16 = 522 r.8
522:16 = 32 r.10 — A
32:16 = 2 r.0
2:16 = 0 r.2
Przepisanie wartości reszt od pozycji najmniej znaczącej da nam liczbę 8360 przedstawioną w systemie szesnastkowym (należy pamiętać, że wartości 10 odpowiada litera A). Ostatecznie otrzymujemy:
8360 - -> 20A8
Listing pochodzi z repozytorium listingów Basic autorstwa AMAROKJak 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: Dorota Ciesielska
Listing nadesłał: Amarok
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_4-t2e.pl.atr
-
Autostart Programów
Po opublikowaniu w „Bajtku” 10/87 odpowiedzi na list Arkadiusza Sochana otrzymaliśmy od Czytelników wiele listów. Kolega Marcin nie majac do czynienia na codzień z komputerami Atari udzielił niepełnego wyjaśnienia, co nasi Czytelnicy natychmiast zauważyli. Drukujmy wiec dwa wybrane listy oraz komentarz redakcyjny.
Przedstawiony program jest tzw. "loaderem", który steruje ładowaniem programów i następnie uruchamia je. Program zajmuje obszar od adresu 1536 do 1751. Ponadto blokuje on klawisz RESET, który po wciśnięciu, kasuje pamięć RAM. Po dokładnym przepisaniu procedury, należy przygotować magnetofon do zapisu i uruchomić program rozkazem RUN. Zostanie on zapisany na taśmie w postaci BOOT, przeznaczonej do ładowania poprzez wciśnięcie klawisza START w momencie włączenia komputera.
Listing pochodzi z repozytorium listingów Basic autorstwa AMAROKJak zaladować (najprostsza metoda)
ALTIRRA:
- Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
- Cold Reset (Powinien wejść do Basica)
- LOAD "D:LOADER.BAS"
- RUN
Autor listingu: Tomasz Waligóra
Listing nadesłał: Amarok
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_4-t2e.pl.atr
-
JoyTest C128
Zabawa w gry komputerowe bywa czasami bardzo kosztowna wystarczy tylko jedno przełączenie drążka z portu do portu w czasie gdy komputer jest włączony... Znacznie częściej jednak usterce ulegają styki drążka, pękają membranki czy blaszki sprężynujące.
Jak sprawdzić co uległo uszkodzeniu — komputer czy drążek? Bardzo prosto. Wystarczy w tym celu wpisać i uruchomić jeden z podanych poniżej programów, w zależności od posiadanego komputera. Można oczywiście zrobić to także wczytując pierwszą lepszą grę, pewniejsze są jednak podane tu programy. Oprócz samej animacji ruchu drążkiem na ekranie użytkownik otrzymuje także informację o sygnale wejściowym generowanym przez drążek. Dzięki temu możemy np. określić, czy styki są czyste i kontaktują za każdym razem, czy AUTOFIRE generuje regularny sygnał itp.
Przed uruchomieniem programu warto go będzie zapisać na taśmie czy dysku, należy też pamiętać o tym, aby drążek był podłączony PRZED włączeniem komputera. Przeprowadzenie testu jest możliwe zarówno z portu 1 jak i 2, bez różnicy.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Commodore Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
JoyTest C264
Zabawa w gry komputerowe bywa czasami bardzo kosztowna wystarczy tylko jedno przełączenie drążka z portu do portu w czasie gdy komputer jest włączony... Znacznie częściej jednak usterce ulegają styki drążka, pękają membranki czy blaszki sprężynujące.
Jak sprawdzić co uległo uszkodzeniu — komputer czy drążek? Bardzo prosto. Wystarczy w tym celu wpisać i uruchomić jeden z podanych poniżej programów, w zależności od posiadanego komputera. Można oczywiście zrobić to także wczytując pierwszą lepszą grę, pewniejsze są jednak podane tu programy. Oprócz samej animacji ruchu drążkiem na ekranie użytkownik otrzymuje także informację o sygnale wejściowym generowanym przez drążek. Dzięki temu możemy np. określić, czy styki są czyste i kontaktują za każdym razem, czy AUTOFIRE generuje regularny sygnał itp.
Przed uruchomieniem programu warto go będzie zapisać na taśmie czy dysku, należy też pamiętać o tym, aby drążek był podłączony PRZED włączeniem komputera. Przeprowadzenie testu jest możliwe zarówno z portu 1 jak i 2, bez różnicy.Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Commodore Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
JoyTest C64
Zabawa w gry komputerowe bywa czasami bardzo kosztowna wystarczy tylko jedno przełączenie drążka z portu do portu w czasie gdy komputer jest włączony... Znacznie częściej jednak usterce ulegają styki drążka, pękają membranki czy blaszki sprężynujące.
Jak sprawdzić co uległo uszkodzeniu — komputer czy drążek? Bardzo prosto. Wystarczy w tym celu wpisać i uruchomić jeden z podanych poniżej programów, w zależności od posiadanego komputera. Można oczywiście zrobić to także wczytując pierwszą lepszą grę, pewniejsze są jednak podane tu programy. Oprócz samej animacji ruchu drążkiem na ekranie użytkownik otrzymuje także informację o sygnale wejściowym generowanym przez drążek. Dzięki temu możemy np. określić, czy styki są czyste i kontaktują za każdym razem, czy AUTOFIRE generuje regularny sygnał itp.
Przed uruchomieniem programu warto go będzie zapisać na taśmie czy dysku, należy też pamiętać o tym, aby drążek był podłączony PRZED włączeniem komputera. Przeprowadzenie testu jest możliwe zarówno z portu 1 jak i 2, bez różnicy.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Commodore Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Pętla Interpretera
Artykuł z serii "POZNAJEMY WARSAW BASIC" cz. II
W poprzednim odcinku wyjaśniliśmy rolę pętli interpretera w wykonywaniu programu.
Czytelnicy Ba|tka, którzy pragną uczestniczyć wraz z nami w zabawie w rozbudowę interpretera i poznawać tajemnice Warsaw BASIC-a powinni teraz „wpalcować” program 2. Po bezbłędnym uruchomieniu tego programu można spróbować użycia nowych instrukcji (od £@, £a do £z). Po wykonaniu jakiejkolwiek z tych instrukcji, nasz interpreter będzie sygnalizować błąd SYNTAX ERROR. Co się stało? Czyżby ten rozbudowany interpreter nie rozumiał nowych słów? Interpreter nowe słowa rozumie, tylko każde z nich odsyła do tej samej procedury znajdującej się pod adresem $af08, pod którym interpreter ma zapisaną procedurę wyświetlającą napis SYNTAX ERROR i przerywającą wykonanie programu.
Dalsza rozbudowa naszego interpretera będzie zatem polegała na zmianie adresów w komórkach pamięci od $c43f do $c474 na takie, pod którymi będą się kryły procedury wykonujące zaplanowaną przez nas działalność i uzupełnianiu programu 2 o treść tych procedur.Autor listingu: Gajewski,B. Radziszewski
Listing nadesłał: Faust
Język programu: CBM Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c64_interpreter-t2e.pl.d64
-
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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_3-t2e.pl.atr
-
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":Listing pochodzi z repozytorium listingów Basic autorstwa AMAROKJak 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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_3-t2e.pl.atr
-
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:
- 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.
- Zmiana koloru w jednej linii powoduje zmianę koloru także w następnych, w których nie ma uaktywnionych przerwań
- Przed wywołaniem drugiego programu w języku wewnętrznym program ANTIC-a powinien być już zmieniony.
- 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.
Listing pochodzi z repozytorium listingów Basic autorstwa AMAROKJak 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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_3-t2e.pl.atr
-
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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_3-t2e.pl.atr
-
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.
Listing pochodzi z repozytorium listingów Basic autorstwa AMAROKJak 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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_3-t2e.pl.atr
-
Szukamy Liczb Czyli Sukcesywna Aproksymacja
W instrukcji do Spectrum znalazłem następujący program:
10 LET a=INT (RND*100)20 LET a$ = ~~30 INPUT (a$); ~Zgadnij liczbe~;b40 IF a=b THEN PRINT „ Gratuluje! ”:STOP50 IF a>b THEN LET a$=” Za malo ”60 IF a<b THEN LET a$=” Za duzo! ”70 GO TO 30Istnieje niejedna metoda aproksymacji. Rozważmy program:Jest to doskonała zabawa na prawie cały dzień. Zgadujemy tu liczbę pomyślaną przez komputer. Najefektywniejszą taktyką odgadywania jest dzielenie rozpatrywanego przedziału na pół. Na przykład jeżeli zgadujemy liczbę z przedziału (0,100), podajemy 50. Jeśli jest ona za mała, bierzemy przedział (50,100), podajemy 75 i tak dalej. W zasadzie ósmy strzał powinien być trafiony.Metoda kolejnych przybliżeń to właśnie aproksymacja. Powinna on być sukcesywna — dawać rezultat jak najszybciej.Spróbujmy odwrócić sytuację — my pomyślimy liczbę, a komputer będzie ją odgadywał.10 LET x=0:LET y=10220 LET c=INT((x+y)/2)30 INPUT „Czy „;(c);” ? „;a$40 if a$=”>” THEN LET x=c:GO TO 2050 IF a$=”<” THEN LET y=c:GO TO 2060 IF a$=”=” THEN STOP70 GO TO 20W odpowiedzi na pytanie „Czy xx” należy podać jeden ze znaków — „>”, „<” lub „ = „. Rozpatrujemy przedział (0,100).Istnieje niejedna metoda aproksymacji. Rozważmy program:10 DIM a(8)15 LET a(1)=120 FOR f=2 TO 8:LET a(f)=2^(f-2):NEXT F30 LET c=a(8)40 FOR f=7 to 1 STEP -150 INPUT ~Czy ~;(c);~ ? ~;a$60 IF a$<>”<” AND a$<>”>” AND a$<>”=” THEN GOTO 5070 IF a$=”>” THEN LET c=c+a(f)80 IF a$=”<” THEN LET c=c-a(f)90 IF a$=”=” THEN GOTO 110100 NEXT f110 PRINT „Liczba=”;cW tablicy a zapisaliśmy sześć kolejnych potęg dwójki. Najwyższa liczba to 64, więc kompuer odgadnie tu liczbę z przedziału (0,127). Jako pierwsza podawana jest liczba 64. Jeżeli pomyślana jest większa, do 64 dodawana jest 32, jeśli mniejsza, to 32 jest odejmowane i tak dalej. Tu maksymalna ilość pytań jest także 8 ze względu na włączenie zera do rozpatrywanego przedziału.Możemy rozszerzyć tablicę na przykład do 16 pozycji; trzeba wtedy odpowiednio pozmieniać początki i końce pętli, lecz uzyskamy zakres do 131069, a maksymalną ilością pytań będzie najwyższa potęga dwójki, czyli 16.W zasadzie nie można powiedzieć, która z metod jest najlepsza. W pamięci lepiej używać metody dzielenia przedziałów na pół, maszyna szybciej aproksymuje dwójkowo.Autor listingu: Marcin Przasnyski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Bzzz... inaczej
Po przeczytaniu opisu gry „Bzzz” w numerze 3/87 „Bajtka” postanowiłem napisać ją w BASIC-u. Program okazał się prosty i o wiele krótszy od wersji w kodzie maszynowym. Mimo to jest on dosyć szybki. W linii 2 po pierwszym słowie „GRACZ” należy wstawić zieloną, a po drugim niebieską kratkę. Zapalenie się czarnego kwadracika informuje o przegranej któregoś z graczy. W liniach 9500 i 9600 musi być czarna spacja graficzna.
Autor listingu: Hubert Sobczak
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing 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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: [zx]od_srodka-t2e.pl.tap
-
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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_2.atr-t2e.pl.atr
-
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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_2.atr-t2e.pl.atr
-
Od Środka cz. II
Znacie już cały podział pamięci ZX Spectrum (mamy nadzieje, że zapamiętaliście coś z poprzedniego artykułu). A wiec do dzieła. Dziś poznany sposób zapisu programów na taśmie i zaczniemy sie włamywać do programów napisanych w BASIC-u (pamiętaj, że praktycznie każdy program ma chociażby procedurę ładująca napisana w BASIC-u. a jeśli jej nie posiada, to w zasadzie wcale nie jest zabezpieczony).
Na razie weźmy się jednak do sposobu zapisu programów na taśmie — przypomnij sobie co widać i słychać podczas wczytywania jakiegokolwiek programu.
Przez ok. 1 — 2 sekundy, na obrzeżu ekranu widoczne są szerokie, czerwono-niebieskie pasy oraz słychać ciągły dźwięk. Jest to tzw. pilot, który umożliwia komputerowi zsynchronizowanie się z sygnałem z taśmy, który ma odbierać. Potem przez krótką chwilę pojawiają się cienkie, migające, żółto-granatowe paski, oznaczające, że komputer wczytuje do pamięci informacje. Jest ich 17 bajtów — tzw. nagłówek. Pojawia się napis "Bytes:" "Program:", "Character array:" lub "Number array:", a potem po chwili przerwy zaczyna się drugi pilot (nieco krótszy), a po nim wczytuje się właściwy program. Zajmiemy się teraz nagłówkami, gdyż zawarte są w nich najważniejsze informacje o wczytywanych programach.
Nagłówek — jak już wspomnieliśmy — składa się z 17 bajtów. Będziemy je numerować od 0 do 16 (patrz rys.1). Zerowy bajt oznacza typ bloku. Jest on równy 0 — jeśli jest to program w BASIC-u, 3 — jeśli blok kodu maszynowego (nagrany przez SAVE "CODE..." albo SAVE "..." SCREEN$, które oznacza dokładnie to samo, co SAVE "...",CODE 16384,6912. Jeśli natomiast nagłówek ten poprzedza zbiór będący tablicą zmiennych BASIC-a (nagrany przez SAVE DATA...), to jest on równy 1 — dla tablic liczbowych lub 2 — dla tablic znakowych.
Następne 10 bajtów, to nazwa wczytywanego bloku, czyli tekst pojawiający się po załadowaniu nagłówka, za napisem "Program:", "Bytes:" czy innym.
Bajty 11. i 12. zawierają dwubajtową liczbę (pierwszy bajt mniej znaczący) oznaczającą długość bloku danych, którego ten nagłówek dotyczy.
W zależności od typu wczytywanego bloku, bajty od trzynastego do szesnastego są w różny sposób interpretowane.
Zacznijmy od nagłówków programów napisanych w BASIC-u. Bajty 13. i 14. oznaczają numer linii, od której ma się uruchomić program, jeśli był nagrany przez SAVE "..." LINE nr. Jeśli program był nagrany bez opcji LINE czyli po wczytaniu nie uruchomi się samoczynnie, to wartość tej liczby jest większa od 32767. Jednym ze sposobów unieszkodliwiania zabezpieczeń samostartujących programów w BASIC-u jest zmiana tych dwóch bajtów w nagłówku na wartość większą od 32767.
Bajty 15. i 16. zawierają liczbę oznaczającą długość samego programu w BASIC-u (bo SAVE "" lub SAVE "" LINE nagrywają program wraz ze wszystkimi zmiennymi, tzn. zawartość pamięci od bajtu wskazywanego przez zmienną systemową PROG, do bajtu określonego zmienną E_LINE). Gdy od całkowitej długości bloku (bajty 11. i 12.) odejmiemy tę liczbę, dowiemy się ile bajtów w tym bloku zajmują zmienne BASIC-a. To wszystko, jeśli chodzi o nagłówki programów w BASIC-u.
W nagłówkach kodu maszynowego ("Bytes:") bajty 15. i 16. nie są wykorzystywane, natomiast 13. i 14. tworzą dwubajtową liczbę określającą pod jaki adres należy wczytać następujący po nagłówku blok.
W nagłówkach tablic wykorzystywany jest spośród tych czterech, tylko bajt 14., który przedstawia nazwę wczytywanej tablicy. Jest on zapisany tak, jak nazwy wszystkich zmiennych BASIC-a (w obszarze od VARS do E_LINE), tzn. trzy najstarsze bity oznaczają typ zmiennej (tutaj będzie to tablica liczbowa lub znakowa) a pięć mniej znaczących bitów — nazwę tej zmiennej*).
Na listingu 1. przedstawiony jest program tworzący procedurę umożliwiającą odczytywanie nagłówków programów zapisanych na taśmie. Po jego dokładnym wpisaniu (uważaj na właściwą ilość spacji w liniach z instrukcjami DATA!) uruchom go przez RUN i poczekaj chwilę. Na ekranie pojawi się informacja o adresach początku i końca procedury oraz o jej długości, która powinna wynosić 284 bajty. Jeśli tak nie jest, sprawdź, czy na pewno wpisałeś wszystkie linie programu. Jeśli wszystkie dane były poprawne, to na twojej taśmie znajdzie się procedura "czytacz", dzięki której będziesz mógł odczytać każdy nagłówek. Po nagraniu jej na taśmę możesz już skasować program z listingu 1.
Procedura "czytacz" jest relokowalna, tzn. będzie działała poprawnie niezależnie od tego, pod jakim adresem w pamięci się znajdzie. Możesz ją więc wczytać przez:
LOAD "czytacz" CODE adres
a następnie uruchamiać przez
RANDOMIZE USR adres
i to nawet wielokrotnie. Po uruchomieniu, procedura wczytuje pod adres 23296 (do bufora drukarki) pierwszy napotkany nagłówek. Jeżeli ze względu na podłączone urządzenia zewnętrzne nie odpowiada ci ten adres, to możesz go zmienić zastępując w linii 200 programu z listingu 1. liczbę 005B heksadecymalnym adresem, pod który chciałbyś wczytywać nagłówki (dwie pierwsze cyfry są młodszym bajtem tego adresu). Aby po takiej zmianie uniknąć sprawdzania sumy kontrolnej w tej linii, na końcu tekstu ujętego w cudzysłowy zamiast spacji i czterech cyfr sumy kontrolnej umieść literę "s" poprzedzoną czterema spacjami.
Po wczytaniu nagłówka procedura odczytuje informacje w nim zawarte i wraca do BASIC-a, lecz wczytanego nagłówka nie niszczy, więc jeśli chcesz, możesz go dodatkowo obejrzeć wykorzystując funkcję PEEK.
Samo odczytywanie nagłówków to jednak trochę mało, by móc włamywać się do bloków zapisanych na taśmie. Trzeba jeszcze wiedzieć, co z tymi blokami zrobić, aby umieścić je w pamięci, nie pozwalając im się przy tym uruchomić.
W przypadku bloków typu "Bytes" wystarczy zwykle załadować je pod wymuszony adres, powyżej RAM-TOP-u (tzn. powyżej komórki pamięci wskazywanej przez zmienną systemową RAMTOP), np. przez:
CLEAR 29999: LOAD ""CODE 30000
Metoda ta skutkuje, jeśli tylko wczytywany blok nie jest zbyt długi (może mieć maksymalnie ok. 40K). Dłuższe bloki mogą się po prostu nie zmieścić w pamięci — konieczne jest wówczas podzielenie ich na kilka krótszych części. Niedługo dowiemy się jak to robić.
Podobnie, w przypadku tablic, załadowanie ich nie nastręcza raczej kłopotów — wystarczy użyć normalnej w takich wypadkach instrukcji LOAD "" DATA...
Gorzej natomiast wygląda wczytywanie programów w BASIC-u. Są one zwykle nagrywane przez SAVE "..."LINE, a na samym początku linii, od której mają się uruchomić umieszczone są instrukcje zabezpieczające je przed zatrzymaniem. Najprostszym rozwiązaniem jest ładowanie programu nie przez LOAD"", lecz MERGE "", jednak metoda ta nie zawsze daje rezultaty. Z tej beznadziejnej wówczas sytuacji istnieją dwa zasadnicze wyjścia: podmienić nagłówek programu lub użyć przedstawionego niżej programu "load/merge".
Pierwsze z nich polega na zastąpieniu nagranego na taśmie nagłówka przez taki sam, ale nie powodujący uruchomienia programu. Można w tym celu użyć programu "COPY COPY" — wczytać nagłówek programu, wcisnąć BREAK, a następnie instrukcją LET zmienić jego parametr START na liczbę większą od 32767 (tzn. wykonać np. LET 1 ="32768 — jeśli przerabiany nagłówek był wczytany jako pierwszy zbiór). Tak zmodyfikowany nagłówek nagrywamy gdzieś na taśmę. Usuwamy z pamięci program COPY COPY i wpisujemy LOAD "". Wczytujemy stworzony przed chwilą nagłówek, lecz zaraz po jego zakończeniu zatrzymujemy taśmę. Teraz do magnetofonu wkładamy kasetę z programem, do którego się włamujemy, ale ustawioną zaraz za nagłówkiem tego programu — tak, aby wczytać tylko treść programu, bez oryginalnego nagłówka.
Druga metoda jest o wiele wygodniejsza:
Wprowadzamy do pamięci (z klawiatury lub z taśmy) program "load/ merge" zamieszczony na listingu 2. Po uruchomieniu zaczyna on czekać na pierwszy program w BASIC-u, który znajduje się na taśmie. Wczytuje go zupełnie tak samo, jak instrukcja LOAD "", lecz po załadowaniu nie pozwala na jego uruchomienie — drukuje jedynie komunikat "0 OK", z informacją od której linii wczytany program miał się uruchomić.
Na listingu 3. przedstawiona jest procedura, którą tworzy ten program poprzez POKE-i. Zasadniczą jej instrukcją jest CALL 1821. Począwszy od adresu 1541, w ROM-ie znajduje się procedura interpretująca instrukcje SAVE, LOAD, VERIFY i MERGE. CALL 1821 wskakuje do środka tej procedury. Początkową jej część (odczytującą parametry tych instrukcji) pomijamy, zastępując to w liniach 40 — 90 naszej procedury: Najpierw przez RST 48 rezerwujemy 34 bajty w obszarze WORKSP**), adres wolnego miejsca przenosimy z rejestru DE do IX, w linii 80 zaznaczamy w zmiennej systemowej T__ADDR, że chodzi nam o LOAD, a nie np. VERIFY, a w pierwszym bajcie nagłówka do porównywania umieszczamy wartość 255, oznaczającą, że ma być wczytany pierwszy napotkany blok (tzn. program w BASIC-u). Reszty dokonuje procedura z ROM-u, działając identycznie jak LOAD "". Różnica w działaniu LOAD a "load/merge" polega na tym, że po całkowitym wczytaniu programu, zamiast wrócić przez RET do interpretera BASIC-a, przepisujemy zawartość zmiennej NEWPCC ("numer linii do której ma być skok") do PPC ("numer ostatnio wykonywanej linii") oraz nie dopuszczamy do uruchomienia programu — wykonujemy RST 8 z komunikatem "0 OK". Dzięki temu przepisaniu, w wydrukowanym komunikacie znajdzie się informacja o numerze linii, od której wczytany program miał się uruchomić.
Niecierpliwie czekając na kolejny odcinek z tego cyklu popróbuj odczytywać nagłówki bloków i wczytywać zabezpieczone programy w BASIC-u. Za miesiąc nimi właśnie dokładniej się zajmiemy.
Autor listingu: Tomasz Surmacz, Robert Dudzik
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing 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 AMAROKJak 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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek_1988_2.atr-t2e.pl.atr
-
Numerator
Poniższy program, choć dość krótki, może bvć bardzo przydatny wszystkim posiadaczom stacii dysków — umożliwia on wpisanie do katalogu dyskietki (directory) numeru składającego sie z 5 znaków.
Podczas wyświetlania katalogu za pomocą np. LOAD”$”,8 czy DIRECTORY, w miejscu identyfikatora (ID) oraz znaków określających numer systemu operacyjnego (2A) ukaże się przypisany przez nas numer. Stanowczo odradzam wprowadzanie takich zmian na dyskietki oryginalne (firmowe, z nagranym już programem), gdyż może to spowodować późniejsze trudności z jego wczytywaniem, jeśli program kontroluje te pola np. w procedurze obsługi (zamierzonego) błędu.
Wprowadzenie zmian do programu polecałbym jedynie użytkownikom zaawansowanym, gdyż wykorzystuje on rozkazy bezpośrednie systemu DOS; źle wpisana przeróbka może w ekstremalnych wypadkach zniszczyć lub na trwałe zablokować dane zapisane na dyskietce. Program można uruchomić na każdym komputerze Commodore z przyłączoną stacją dysków 1540, 1541, 1570, 1571 czy 1572.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Commodore Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Wprowadzanie funkcji dla C-64
Jedną z większych wad wersji BASIC V2.0 Commodore 64 jest niemożność wprowadzania za pomocą instrukcji INPUT własnych funkcji czy wyrażeń algebraicznych.
Jedną z większych wad wersji BASIC V2.0 Commodore 64 jest niemożność wprowadzania za pomocą instrukcji INPUT własnych funkcji czy wyrażeń algebraicznych. Jak wadę tę zlikwidować? Bardzo prosto. Wpisz poniżej przedstawiony program...
Powyższej wady pozbawiony jest np. komputer ZX Spectrum w którym ciąg instrukcji: INPUT AS: X = VAL A$ umożliwia obliczenie danego wyrażenia. Dla C-64 równoważnym ciągiem będzie: INPUT A$: £VAL,X,A$
Procedura ta, napisana w języku wewnętrznym zlokallizowana jest w obszarze 4 dodatkowych KB pamięci od adresu 49152 ($C000). Po uruchomieniu i wykonaniu program wczytujący kasuje się samoczynnie. Procedura ta jest włączona w istniejącą pętlę interpretera, tak więc posługiwanie się nią nie przeszkadza równoległemu korzystaniu z innych rozszerzeń takich jak np. TURBO, pod warunkiem, że obszary przez nie zajmowane nie kolidują ze sobą, oraz, że procedura tu omawiana będzie wczytana i uruchomiona jako ostatnia. Wynika to z faktu, że większość rozszerzeń wykorzystuje (i zmienia) wektor zawarty w komórkach 776 i 777, bez uwzględnienia wartości dotychczasowych. Wady tej pozbawiony jest omawiany tu program. Po wprowadzeniu wzoru danego wyrażenia (np. 2 + 2*5) za pomocą instrukcji INPUT, jego wartość jest obliczana poprzez £VAL,X,A$ a wynik jest przypisywany zmiennej oznaczonej w przykładzie jako X.
Autor listingu: Krystian Łojewski
Listing nadesłał: Faust
Język programu: Commodore Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
WriTest
Nareszcie i KLAN COMMODORE doczekał się własnego programu kontrolującego wpisywanie publikowanych w BAJTKU programów i przeznaczonego dla Commodore 20, 64, 16, 116, PLUS/4 i 128. Od tego numeru BAJTKA wszystkie programy ukazujące się w naszym Klanie będą przedstawiane wraz z kodem kontrolnym co powinno ułatwić życie naszym czytelnikom.
Po wpisaniu programu należy go koniecznie zapisać najpierw na taśmie czy dyskietce i dopiero potem uruchomić. Program automatycznie rozpoznaje z jakim komputerem ma do czynienia. Następnie zaczynamy wpisywać dany program z klanu. Po wpisaniu danej linii i wciśnięciu RETURN lub ENTER, w lewym górnym rogu ekranu ukażą się w negatywie (rewersie) dwa znaki stanowiące kod kontrolny. Kod ten należy porównać z kodem podanym przy wydruku programu (listingu). Jeżeli kody te różnią się należy dokładnie sprawdzić daną linię programu — oznacza to, ze została ona wpisana z błędem.
na podstawie COMPUTE!s GAZETTE..Autor listingu: Jan Jasiński
Listing nadesłał: Faust
Język programu: Commodore Basic
Stan listingu:
4Listing 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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
UL - Mikrokomputerowy model rodziny pszczelej
Utarł się pogląd, że mikrokomputery mogą być wykorzystywane głównie do zabawy i nauki, a jeśli powierza im się poważne funkcje, to zwykle dotyczą one codziennych prac domowych lub biurowych. Wyraźnie upośledza to inne zastosowania. Warto zatem podejmować próby przełamania tych stereotypów. Prezentowany program pozwala wykorzystać domowy komputer w... pszczelarstwie.
Model powstał w wyniku prowadzonych od 1975 roku badań podstawowych w Zakładzie Biocybernetyki AGH i Zakładzie Pszczelarstwa Akademii Rolniczej w Krakowie. Prace te były częściowo finansowane przez Polską Akademię Nauk, Oczywiście celem badań nie było napisanie programu w BASICU-u, tylko określenie matematycznych prawidłowości w funkcjonowaniu rodziny pszczelej, a także przebadanie przydatności wiedzy na temat cybernetycznych aspektów funkcjonowania wielkiego systemu, jakim jest rodzina pszczela.
Tekst programu napisany jest w języku Simons Basic przeznaczonym dla mikrokomputerów firmy Commodore serii C64 lub C128. Nic jednak nie stoi na przeszkodzie, by po drobnych modyfikacjach opracować wersje podanego programu dla innego, posiadanego przez Czytelnika mikrokomputera. Przeróbki programu dotyczyć w takim przypadku będą głównie instrukcji przeznaczonej do graficznej prezentacji wyników modelowania.
Po uruchomieniu programu komputer zadaje użytkownikowi serię pytań a on musi na nie odpowiedzieć z klawiatury. Pytania te dotyczą rasy pszczół, długowieczności robotnic, horyzontu modelowania, aktualnej struktury rodziny oraz stanu zapasów. Ostatnie pytanie: SKĄD CZYTAĆ DANE O POGODZIE I POŻYTKACH? wymaga wprowadzenia z klawiatury NAZWY wcześniej zapisanego na dysku (lub taśmie) zbioru właśnie warunków atmosferycznych i pożytkach dla jakich użytkownik chce modelować. Zbiór należy nazwać i zapisać na dysku (lub taśmie) przy pomocy programu pomocniczego „ZAPIS-DANYCH”
Po uruchomieniu (komenda RUN) użytkownik wprowadza kolejne dane.
Mając zgromadzone dane można podejmować próby modelowania. Czas trwania modelowania (zwykle dość długi, około kilkunastu minut) zależny jest od założonej liczby kroków, jaką poda się w odpowiedzi na pytanie komputera. Krok to 24 godziny życia realnej rodziny, W trakcie modelowania wyświetlany jest numer aktualnie wykonywanego kroku. Po zakończeniu obliczeń można oglądać wyniki modelowania w postaci wykresów obrazujących, jak zmieniała się podczas modelowania liczba pszczół, ilość zgromadzonego miodu, powierzchnia dostępnych plastrów itp. Kolejne wykresy wywołuje się naciskając dowolny klawisz.
Ci, którzy próbowali komputerowej symulacji rodziny pszczelej przekonali się, Ze jest to wprawdzie rozrywka zupełnie innego typu, niż większość znanych gier, jednak z całą pewnością może to być fascynująca przygoda intelektualna — tym bardziej atrakcyjna, jeśli ma się możliwość konfrontowania komputerowych wyników z obserwacją pszczół.
Autor listingu: Andrzej Migacz,Ryszard Tadeusiewicz
Listing nadesłał: Faust
Język programu: Commodore Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: [c128]_ul_bajtek_1-1988-t2e.pl.zip
-
Mieszanie trybów
Poniższy program dodaje nowe rozkazy do BASIC-a pozwalając na prace ekranu Amstrada w kilku trybach równocześnie.
Miłą cechą Amstradow jest możliwość podziału ekranu na cztery części (zwane dalej sekcjami) i nadawania im własnych trybów pracy. Kto widział grę SORCERY na Am- stradzie, wie jakie efekty można uzyskać za pomocą tej metody. W grze tej górna część ekranu pracuje w trybie 0 pozwalającym na uzyskanie 16-u kolorów, podczas gdy dolna część ekranu pracuje w trybie 1 i służy do wyświetlania tekstów.
Mieszanie trybów osiągane jest za pomocą odpowiednich zmian wartości rejestru układu VGA (Video Gate Ar- ray) określającego tryb pracy ekranu.
Podział ekranu na sekcje jest stały. Wiersze 1-5 tworzą sekcję o numerze 0, wiersze 6-12 sekcję 1, wiersze 13-18 sekcję 2, a wiersze 19-25 sekcję 3.
Prezentowany program dodaje trzy nowe rozkazy do BASIC-A. Po jego uruchomieniu program można wymazać z pamięci. Rozszerzenia będą aktywne oczywiście tylko do momentu wyłączenia komputera. UWAGA! Dla bezpieczeństwa nie należy zapomnieć o zapisaniu wprowadzonego programu na taśmę lub dysk przed pierwszą próbą jego uruchomienia. Wprowadzone rozkazy są rozkazami RSX rozpoczynającymi się znakiem: (SHIFT @)
:SETMO .sekcja, tryb [.sekcja,tryb] — informuje system operacyjny Amstrada w jakim trybie ma wyświetlać daną sekcję. Jednym rozkazem można nadać tryby jednej lub wielu sekcjom.
:SMODE .tryb — służy do pisania po ekranie, informuje system w jakim trybie będziemy teraz wyprowadzać dane na ekran. Działanie tego rozkazu jest analogiczne jak rozkazu MODE z tym, że nie czyści ekranu. Używanie rozkazu MODE mija się z celem albowiem tryb ustawiony tym rozkazem zostanie zmieniany przy najbliższym przerwaniu.
:NORMAL ,tryb — powrót do normalnego, całoekrano- wego trybu pracy. Wskazane jest użycie tego rozkazu przed pierwszym użyciem rozkazu :SETMO.
Program utrzymując ekran w kilku trybach używa przerwań, które są blokowane podczas operacji na dysku lub taśmie. Nie uzyskamy dobrych rezultatów próbując współpracować z pamięciami zewnętrznymi mając podzielony ekran.
Nie należy również dopuszczać do wysuwu ekranu (scroll), który zaburza synchronizację zmiany trybu pracy podczas przechodzenia pomiędzy sekcjami.
Załączony program demonstracyjny ułatwia zrozumienie sposobu użycia nowych rozkazów BASIC-a.
Na podstawie Popular Computing Weekly
Autor listingu: Jarosław Borełowski
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Pociag
Stoi na stacji lokomotywa... a za nią wagony towarowe, które trzeba załadować czekającymi w magazynach skrzyniami. Maszynista, Kubuś Literka siedzi w parowozie i czeka, aż wszystkie wagony zostaną zapełnione..
Pociąg składa się zawsze z dwóch wagonów ale mogą one być bardzo różne — długie i krótkie, wysokie i niskie. Za każdym razem trzeba więc dokładnie policzyć ile pakunków pomieszczą. Skrzynie zgromadzone są w pięciu magazynach. W pierwszym jest tylko jedna, w drugim i trzecim po dwie, w czwartym pięć a w szóstym aż dziesięć skrzyń. Jest jednak pewna trudność. Załadowując pociąg musimy opróżniać całe magazyny. Na przykład z magazynu piątego trzeba wziąć 10 skrzynek i ani jednej mnie|. Oczywiście możemy też — jeśli tak nam będzie pasowało — nie brać nic z tego magazynu.
Jeżeli obliczymy, że w jednym wagoniku zmieszczą się cztery skrzynki a w drugim trzy, to będziemy się starali tak wybrać ma- gazyny, aby w sumie było w nich siedem skrzyń. W tym przypadku będą to magazyny drugi lub trzeci (2 skrzynki) oraz czwarty (5 skrzyń).
Gdy prawidłowo wybierzemy magazyny, to znaczy liczba skrzyń znajdujących się w nich będzie dokładnie równa liczbie miejsc na wagonach, wówczas pociąg z ładunkiem odjedzie, a na peronie pojawi się następny skład. Jeśli jednak skrzynek będzie zbyt dużo, pociąg nie ruszy się z miejsca a my — za karę — dostaniemy inne wagony do załadunku.
Zastanówmy się teraz, czy może się zdarzyć, że nie będziemy mogli załadować pociągu? Największy wagon może pomieścić 9 skrzyń a więc w dwóch takich wagonach należy umieścić 18 pakunków. To największa ich liczba jaka może w naszej zabawie wystąpić. We wszystkich magazynach mamy w sumie 20 skrzynek, a więc możemy być spokojni, ze towaru nie zabraknie. Czy jednak każdą liczbę (nie większą niż 18) będziemy mogli przedstawić jako sumę iczb pakunków w poszczególnych magazynach? Przerwijcie na chwilę czytanie i spróbujcie to sprawdzić. .
No i co?Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Weryfikator V.2 dla CPC 6128
Wszystkie redakcje pism poświęconych problematyce mikrokomputerowej zasypywane sa listami czytelników piszących mniej więcej tak: ..... przepisałem program drukowany w ostatnim numerze Waszego pisma i, niestety, mimo wielokrotnych prób i sprawdzania wydruku program nadal nie da sie uruchomić. Chyba jest bład w wydruku...”.
Redakcje, współpracujące z odpowiedzialnymi autorami wiedzą, że nie jest możliwe, by błąd tkwił w wydruku sprawdzonego i uruchamianego wielokrotnie programu, lecz przekonanie zdesperowanego czytelnika o tym, że to on wprowadził błędy przy przepisywaniu, jest prawie niemożliwe. Oczywiście można wymagać od autorów wprowadzania np. sumy kontrolnej i programów (podprogramów) obsługi błędów, jednak zabieg takie prowadzą głównie do kontoli danych w liniach DATA i to dopiero poczas uruchamiania programów. Proponowany dzisiaj WERYFIKATOR jest programem stosowanym przez francuskie pismo Amstrad Magazine i zachodnioniemieckie CPC Schneider International, umożliwiającym kontrolę wprowadzanych linii programu „na bieżąco”, niezależnie od tego czy są to linie DATA, czy linie zawierające słowa kluczowe lub komentarze. Każdy znak w linii „sumowany” jest z następnym i w momencie wprowadzania linii do pamięci (klawisz RETURN lub ENTER) generowana jest suma konrolna ujęta w nawiasy kwadratowe. Przy przyjętym przez te pisma drukowaniem programów łącznie z sumami kontrolnym podawanymi dla każdej linii możliwa jest natychmiastowa kontrola poprawności wprowadzania kolejnych linii przez porównanie sumy kontrolnej wydruku i sumy kontrolnej linii wpisywanej przez użytkownika.”
Warto więc po raz ostatni skupić się i przepisać DOKŁADNIE podany program, ponieważ przy następnych wydrukach będę już podawał sumy kontrolne. Prawidłowo wpisany program po uruchomieniu oferuje cztery rozkazy: | ON/uaktywniony od razu w linii 180, j OFF — wyłączający weryfikator, | CHECK.2 — odpowiadający komendzie LIST ale z wyświetlaniem sumy kontrolnej i ] CHECK.8 pozwalający na uzyskanie wydruku linii programu na drukarce z podawaniem sumy kontrolnej. Pc uruchomieniu weryfikatora można przystąpić do przepisywania ineresu- jących nas programów pod warunkiem, że ich wydruk został wykonany również przy użyciu WERYFIKATORA. Posiadacze CPC 464 i 664 powinni zmienić niektóre linie DATA zgodnie z dołączonym wykazem. Niecierpliwi mogą sprawdzić działanie programu wpisując dowolne linie lub rozkazy w trybie bezpośrednim. Po każdym wciśnięciu klawisza RETURN lub ENTER powinna się pojawić liczba w nawiasach kwadratowych. Cierpliwych zapraszam za miesiąc.
Na podstawie Amstrad/Schneider 1/81
Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Drago Basic
Chociaż Commodore 64 ma ogromne możliwości graficzne, to korzystanie z nich jest bardzo skomplikowane, zwłaszcza dla początkujących. Ze względu na duża liczbę instrukcji POKE czy pętli FOR... NEXT programy sa mało przejrzyste i trudne do zrozumienia.
Oprócz tego, niejako dodatkowo, wymagana jest od użytkownika spora wiedza dotycząca organizacji pamięci w tym komputerze, sposobów rezerwowania jej odpowiedniego obszaru dla potrzeb ekranu graficznego czy działania na bitach. Ponieważ punkt o współrzędnych 0,0 znajduje się w lewym górnym rogu ekranu tworzenie np. wykresów funkcji wymaga ponadto dodatkowych obliczeń. Z tych też powodów chciałbym przedstawić Czytelnikom "BAJTKA" rozszerzenie graficzne standardowego interpretera BASIC — DRAGO BASIC.Istnieje już sporo rozszerzeń tego typu — GRAPHICS BASIC, SIMONS BASIC, SUPERGRAPHIC itp. Niestety możliwość korzystania z tych programów limituje w dużym stopniu brak ich polskojęzycznych opisów dość rzadko dostępnych nawet na giełdach komputerowych. Innym mankamentem jest zmniejszenie ilości dostępnej dla użytkownika pamięci — np. SIMONS BASIC zabiera jej od 8 do 16 KB, Co nie pozostaje oczywiście bez wpływu na jakość naszych programów.DRAGO BASIC nie jest rozszerzeniem w takim znaczeniu, w jakim zwykle się to rozumie. Zamiast bowiem dopisywania nowych instrukcji czy rozkazów wykorzystano tu cztery istniejące i rzadko używane instrukcje — VERIFY, WAIT, LET oraz CONT. Nowe instrukcje graficzne składają się z takiej samej ilości liter i nazywają się TRYBEK, GUMA, BAR i RYPU. Instrukcje te są "umieszczone" w tych samych miejscach pamięci ROM co stare, z tym, że zmieniono odpowiednio adresy procedur instrukcje te realizujących. Procedury te zostały umieszczone w dodatkowych 4 KB pamięci od adresu 49152 ($C000) dzięki czemu mamy do dyspozycji całe 38 KB pamięci RAM. Zaletą DRAGO BASIC jest przeniesienie punktu o współrzędnych 0,0 w lewy DOLNY róg ekranu czyli tak jak na osi współrzędnych. Program ten pozwala nam na tworzenie grafiki w standardowym trybie graficznym Commodore — rozdzielczość 320*200 punktów, dwa kolory.Podczas wpisywania DRAGO BASIC należy zwrócić baczną uwagę, aby nie pomylić się zwłaszcza podczas wpisywania linii z DATA — liczby zawarte w tych liniach to właśnie nasze nowe procedury. Ponieważ po wpisaniu kodu maszynowego program samoczynnie się kasuje, ważne jest również, aby przed jego uruchomieniem zapisać go najpierw na taśmie czy dyskietce. Jeżeli program zostanie wpisany poprawnie, po uruchomieniu pojawi się na ekranie plansza tytułowa oraz usłyszymy melodię — program jest gotowy do użytku.Nowe instrukcje mają następującą postać:TRYBEK (parametr)Instrukcja ta służy do zmiany ekranu graficznego na tekstowy i odwrotnie. TRYBEK 1 pozwala nam na przejście do trybu pracy graficznego, TRYBEK 0 z kolei umożliwia powrót do trybu tekstowego. Gdy parametr nie będzie równy ani 1 ani 0, komputer wyświetli komunikat ILLEGAL QUANTITY ERROR.GUMAJest to odpowiednik PRINT CHRS(147) w trybie tekstowym —GUMA pozwala nam skasować (bezpowrotnie) całą zawartość ekranu graficznego.BAR kolor kreski, kolor tłaZa pomocą BAR możliwe jest przypisanie wybranych kolorów dla kreski (punktu) oraz tła ekranu graficznego. Numery kolorów są zgodne z numerami podanymi w instrukcji obsługi komputera (np. 0 = czarny, 1 = biały itd.).RYPU X,YRYPU umożliwia nam wykreślenie punktu na ekranie graficznym. Parametr X może przybierać wartości w zakresie 0-319, parametr Y w zakresie 0-199. Należy pamiętać, że punkt o współrzędnych 0,0 znajduje się w DOLNYM lewym rogu ekranu. Powrót do normalnego trybu pracy komputera możemy uzyskać za pomocą kombinacji klawiszy STOP i RESTORE wciśniętych jednocześnie. Powrót do programu jest możliwy za pomocą POKE 1,54. Symbol "(CLR)" w programie oznacza czyszczenie ekranu.A oto przykładowy program pozwalający nam na wykreślenie paraboli:10 TRYBEK 1: GUMA : BAR 1,020 FOR X = 0 TO 240: Y = .01*(X-120) ^2+20 30 RYPU X,Y: NEXT40 FOR X = 0 TO 240: RYPU X,20: NEXT50 FOR Y = 0TO 199: RYPU 120.Y: NEXT60 GET A$: IF A$="" THEN 60 70 TRYBEK 0: ENDAutor listingu: Jan Jasiński
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
CPC Dump
Wizja nadchodzącego, jak zwykle pechowego trzynastego odcinka cyklu sprawiła, że w autorze obudziło się sumienie i postanowił nie męczyć już dłużej czytelników widokiem monotonnych tabelek, wypełniających cenna przestrzeń Klanu Amstrad-Schneider. Jednakże sumienie nie zadowoliło się samym postanowieniem i zażądało pokuty, w ramach której zobligowało autora do odpowiedzi na dwa pytania: „po co to wszystko było drukowane?” i „co z tego ma Czytelnik?”. Kończąc cykl, skruszony autor odpowiada...
Dokładna znajomość systemu operacyjnego mikrokomputera pozwala nie tylko na oszacowanie jego możliwości, ale bardziej zaawansowanym użytkownikom umożliwia przystosowanie sprzętu do konkretnych i indywidualnych wymogów m.in. poprzez modyfikację lub rozbudowę procedur systemowych. Jednakże działalność taka jest możliwa tylko wtedy, gdy dysponuje się listą procedur i opisem ich działania... a także potrafi się programować w języku maszynowym.Zamiarem autora nie było prowadzenie kursu programowania lecz dostarczenie niezbędnej dokumentacji. Wprawdzie niektóre procedury mogą być wywoływane bezpośrednio z poziomu BASIC-a i znacznie upraszczają pisanie programów (np. CALL & BBBA jest odpowiednikiem ciągu rozkazów: PAPER 0:PEN 1:ORIGIN 0,0: WINDOW #0,0, 639,0,399 lub CALL &BB18 zastąpi ciąg A$=””:WHILE A$=” „:A$=INKEY$:WEND) lecz większość procedur może być uaktywniana dopiero po ustaleniu pewnych stanów wejściowych w wymaganych dla danej procedury rejestrach. Taka sytuacja wymusza wprawdzie na programiście znajomość sposobu działania procedur systemu, ale jednocześnie pozwala na wprowadzanie pożądanych zmian.Zacznijmy od najprostszych przykładów:Procedura Screen Mode Set (ustalenie trybu pracy ekranu monitora) &BC0E w momencie uruchomienia odczytuje informację z rejestru A (akumulatora), mówiącą o wybranym trybie pracy. Pisząc program w języku maszynowym trzeba przed wywołaniem procedury wpisać do akumulatora 0,1 lub 2. Dla trybu MODE 2 wygląda to następująco: kod hexkod hexa mnemonik3E02 LD A,2 Wprowadź 2 do rej. ACD0EBC CALL BC0E wywołaj procedurę Screen Mode SetC9 RET powrót do programuProcedura drukowania znaku na ekranie &BB5A wymaga podania w rejestrze A kodu znaku, ale jednak wcześniej trzeba również określić tryb pracy ekranu i pozycję na której ma być ten znak drukowany, czyli podać parametry wejściowe wymagane w procedurach odpowiednio & BC0E i & BB75 (patrz odcinek 7 i 4 cyklu). Wygląda to tak:3E02 LD A,2 wprowadź 2 do akumulatoraCD0EBC CALL BC0EH wywołaj procedurę SMS260A LD H,10 wprowadź numer kolumny (10)2E10 LD L,16 wprowadź numer wiersza (16)CD75BB CALL BB75H wywołaj procedurę &BB75 (pozycja)3E42 LD A,66 wprowadź kod litery B do rej. ACD5ABB CALL BB5AH wyświetl znak B na ekranieC9 RET wróć do programu głównegoModyfikacje procedur wymagają oczywiście bardziej skomplikowanych zabiegów, jednak ze względu na charakter cyklu i szczupłość miejsca podam jedynie mechanizm przeprowadzania modyfikacji. Załóżmy, że nie wystarcza nam 7-bitowy sprzęg w CPC, ponieważ chcemy wykorzystywać pełne możliwości przyłączanej do niego drukarki. Jednocześnie wiemy, iż drukarka ma możliwość ustawienia 8-go bitu po odebraniu określonego znaku lub sekwencji znaków (w przypadku DMP 2000 jest to ESC „>” i skasowania 8-go bitu po odebraniu innej sekwencji (ESC „=”). Mamy również świadomość, że procedura wywoływana przez & BD2B ograniczona jest właśnie 7-bitowym sprzęgiem. Rozwiązanie problemu polega na napisaniu programu, który najpierw sprawdzi, czy wysyłany do drukarki znak ma ustawiony ósmy bit. Jeśli znak ma ósmy bit = 0 to powinien być od razu przesłany do drukarki. W przeciwnym przypadku najpierw powinien być przesłany ESC „>”, następnie znak i ESC „ = „. Tak napisany program trzeba ulokować w pamięci RAM poza obszarem dostępnym dla BASICa (MEMORY HIMEM-długość programu) dołączając wcześniej do niego skopiowane z adresów & BD2B, &BD2C i &BD2D instrukcje skoku do precedury wydruku znaku w pamięci ROM. Teraz wystarczy wpisać pod adres &BD2B kod C3 (skok pod dwubajtowy adres), pod &BD2C młodszy bajt a pod &BD2D starszy bajt adresu początku naszego programu i po uruchomieniu drukować aż do chr$(225). Czytelników oczekujących gotowego rozwiązania informuję, że programy takie były już publikowane w naszej prasie (o ile dobrze pamiętam pionierem był pan Wojciech Wojtanowski z programem opublikowanym w Przeglądzie Technicznym).Namawiając do dalszej samodzielnej pracy podaję dwa krótkie programy umożliwiające odczyt na ekranie monitora zawartości pamięci ROM (dolnej) w postaci kodów ASCI i heksadecymalnym. Niewielkie zmiany programu pozwolą również na odczyt zawartości pamięci ROM górnej.W tym celu należy:w linii 10 — wpisać ...ROM górny... &C000 do &FFFFw linii 40 — wpisać ... górnej...w linii 110 — zamiast cd,06,bd wpisać cd,00,bd i zamiast 00,00,11 wpisać 00,c0,11w linii 140 — zamiast (i-6000) wpisać i+6000).Zachęcam do modyfikacji programów w celu uzyskania możliwości odczytu ograniczonej przestrzeni adresowej (np. zajmowanej tylko przez jedną procedurę) i organizacji wydruku na drukarce. Finis coronat opus!Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnościąPobierz: cpc_dump_bajtek_12_1987-t2e.pl.zip
-
Catalog
Z pewnością często mieliście ochotę zrobić porządek na swoich kasetach z programami i równie często rezygnowaliście z tego mając w perspektywie pracowite spisywanie z ekranu danych uzyskanych przez komendę CAT. Jak dobrze byłoby zwalić te robotę na komputer. Mógłby on wtedy sam przejrzeć kasetę, sprawdzić, czy jakieś zbiory nie powtarzają się, wydrukować spis na drukarce. Niestety, CAT wysyła wyniki tylko na ekran i odzyskanie ich stamtąd wymaga wiele wysiłku. Komendy tej nie można również przerwać programowo a jedynie klawiszem ESC.
Równie często ambitniejsi użytkownicy Amstradów i Schneiderów usiłują uzyskać dane o długości programu, miejscu jego ładowania, czy adresie autostartu. Dane te są niezbędne na przykład do przenoszenia programów maszynowych z kasety na dyskietkę. I tutaj komenda CAT nie zdaje się na nic.Zamieszczony obok listing programu w BASIC-u umożliwia dodanie do systemu nowej komendy RSX o nazwie CATALOG, która rozwiązuje nasze problemy.Po uruchomieniu programu, jeżeli nie pojawi się na ekranie żaden komunikat o błędzie w linii DATA (spowodowanym błędnym przepisaniem) w obszar pamięci od adresu &A400 zostanie załadowany i zainicjowany program maszynowy komendy CATALOG. Program w BASIC-u można teraz skasować (przez NEW).Wywołanie komendy ma następującą postać:I CATALOG, @a$, @a1%, @a2%, @a3%, @4%, @a5%, @a6%, @a7% gdzie zmienne a$, a1%, a2%... a7% muszą mieć uprzednio nadane wartości (w przeciwnym przypadku pojawi się komunikat „Improper argument”). Ich nazwy nie muszą być oczywiście takie jak wyżej. Ważne są jednak typy: pierwsza musi być łańcuchowa — pozostałe całkowite. Symbol „@” oznacza, że do komendy przekazywany jest adres zmiennej, a nie jej wartość. Wartości nadane zmiennym całkowitym przed wywołaniem są obojętne. Natomiast a$ powinien być przypisany łańcuch zawierający dowolne znaki, lecz o długości co najmniej 16. Komenda CATALOG uruchamia silnik magnetofonu i wczytuje nagłówek najbliższego bloku (trzeba więc pamiętać o wciśnięciu klawisza PLAY przed wywołaniem). Dane o bloku kopiowane są do parametrów w następujący sposób:a$ — zawiera nazwę zbioru, do którego należy blok: jeżeli wartość a$ przed wywołaniem była łańcuchem krótszym niż długość nazwy, to nadmiarowe znaki zostaną obcięte; jeżeli łańcuch był dłuższy niż nazwa, to pozostałe miejsca zostaną zapełnione spacjami a1% — zawiera numer blokua2% — zawiera typ zbioru: 0 — BASIC, 1 — BASIC chroniony (SAVE „nazwa”, P), 2 — program w języku maszynowym, 22 — zbiór ASCIIa3% — adres ładowania bloku; adres ładowania pierwszego bloku w zbiorze jest zarazem adresem ładowania całego zbioru (dla ASCII = 0, dla Basica = 368)a4% — długość bloku; dla wszystkich bloków z wyjątkiem ostatniego prawie zawsze 2048 = 2 KBa5% — długość całego zbioru, do którego należy bloka6% — adres autostartu; od tego adresu rozpocznie się wykonywanie programu maszynowego załadowanego komendą RUN „nazwa”a7% — znaczniki bloku: a7% zawiera wartość całkowitą dwubąjtową: starszy bajt różny od zera oznacza pierwszy blok zbioru, młodszy bajt różny od zera — ostatni blok; wartość tę najlepiej obserwować jako HEX$ (a7%,4) dwie pierwsze cyfry to starszy bajt, dwie pozostałe — młodszy (cyfry hex)Autor listingu: Sergiusz Wolicki
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
-
9888
Liczba ta jest nazwą, a jednocześnie oznaczeniem początku pewnego użytecznego programu narzędziowego dla ZX Spectrum.
Jedną z wad ZX Spectrum jest niezbyt wygodna edycja tekstu programu. Napisany przeze mnie program stanowi próbę ułatwienia tej operacji.Program należy wpisać, przetestować i nagrać na kasetę. W razie potrzeby dołączamy "9888" do pisanego programu przy pomocy instrukcji MERGE. Trzeba jednak pamiętać, że program główny nie może zawierać linii o numerach wyższych od 9888.Po wykonaniuGO TO 9888ukazuje się krótkie menu funkcji programu — jest on gotowy do użytku. Oto jego możliwości:1 — POLICZ P,0Komputer oblicza liczbę linii zawartych pomiędzy numerami P i O włącznie.2 — PRZENUMERUJ P, O, N, KPrzenumerowanie fragmentu programu zawartego między liniami P i O. Pierwsza linia fragmentu otrzymuje nowy numer N, zaś numeracja odbywa się z krokiem K. Nie są zmieniane parametry odwołań GO TO i GO SUB.3 — PRZESUŃ P, O, NFragment programu pomiędzy liniami P i O otrzymuje numery zwiększone o N (N może być ujemne).4 — ZNAJDŹ X, P, OWyszukanie wszystkich fragmentów tekstu X w liniach programu pomiędzy P i O.5 — ZAMIEŃ X = Y, P, OZamiana wszystkich występujących pomiędzy liniami P i O fragmentów tekstu X na tekst Y. Zarówno X, jak i Y mogą mieć do 10 znaków długości — pozostałe znaki są ignorowane.6 — STOPPowrót do BASIC-a.Autor listingu: Grzegorz Waligórski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: zx_9888_bajtek12_87-t2e.pl.zip
-
Pożyczone Litery
Wiele gier zadziwia nas swoim wymyślnym liternictwem. Czcionka pogrubiona, pochyła, „komputerowa”, gotyk lub cyrylica, umieszczone na ekranie sprawiają, że strona graficzna programu zyskuje bardzo wiele w oczach użytkownika.
Jak zapewne wiadomo większości posiadaczy ZX SPECTRUM, cały zestaw znaków (96 liter) tego komputera można zastąpić nowym zestawem, zaprojektowanym przez użytkownika. Litery jakie widzimy na ekranie zaraz po włączeniu komputera, są pobierane z generatora znaków, który znajduje się pod adresem 15616 i zajmuje 768 bajtów (96 * 8 bajtów). Adres pierwszej komórki generatora obliczany jest przez komputer na podstawie zawartości zmiennej systemowej CHARS (komórki o adresach 23606 i 23607), wg wzoru:ADRES = (PEEK 23607)*256 + (PEEK 23606) + 256Zmieniając więc zawartość zmiennej, zmieniamy zarazem adres, spod którego pobierane są kształty znaków. Oczywiście nie wystarczy zmienić samego adresu, należy jeszcze pod nim umieścić dane o kształcie nowego zestawu liter. O tym, ze projektowanie liter to długa i żmudna praca, nie trzeba chyba nikogo przekonywać i właśnie dlatego proponuję ułatwienie tego zadania przez wyciągnięcie interesującego kroju pisma z gotowych programów, aby móc go wykorzystać do własnych celów. Sposób jest prosty. Najpierw jednak należy wpisać i zapamiętać na taśmie zamieszczony obok program CZCIONKAAutor listingu: Michał Szuniewicz
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Uczymy mówić CPC 464/664/6128
Program jest przykładem nietypowego zastosowania mikrokomputera, który w tym przypadku pełni role magnetofonu cyfrowego.
Komputer może zapisać dźwięk z magnetofonu podłączonego do wejścia magnetofonowego (TAPE PORT) pracując jako 1-bitowy przetwornik analogowo cyfrowy, a następnie odtworzyć go korzystając z wbudowanego generatora dźwięku. Program wprowadza następujące rozkazy RSX:
I RECORD, adres, długość — powoduje odczytanie dźwięku z magnetofonu i zapisanie jego cyfrowej reprezentacji do bufora pamięci o podanej długości (długość), począwszy od adresu określonego wartością adres.
I PLAY, adres, długość — powoduje odtworzenie dźwięku, którego reprezentacja cyfrowa mieści się w buforze pamięci o parametrach adres, długość.
I SPEED, szybkość — powoduje ustawienie zadanej szybkości zapisu i odczytu dźwięku.
Eksperymenty z programem dowodzą, jak bardzo „pamięciochłonny” jest cyfrowy zapis dźwięku. Przy średniej prędkości w buforze 30KB mieści się zaledwie około 15 sekund nagrania. Najciekawsze efekty uzyskuje się zapisując nagrane wcześniej na taśmę krótkie wyrazy np. mama, tata itp.
Właściwy program napisany w kodzie maszynowym jest ładowany przy pomocy podprogramu rozpoczynającego się od linii 300. Podprogram ten sprawdza poprawność danych umieszczonych w liniach DATA.
Linie 1000-2040 zawierają program demonstrujący użycie rozkazów RSX — I PLAY, I RECORD, I SPEED.
Od redakcji
Program w wersji nadesłanej do redakcji posiadał możliwość odczytywania dźwięku z magnetofonu i odtwarzania „nagrania”, a także umożliwiał regulację prędkości odczytywania i odtwarzania. Postanowiliśmy uzupełnić możliwość programu o jeszcze jedną opcję — możliwość utrwalania cyfrowego zapisu dźwięku na dysku bądź taśmie magnetofonowej. Pozwala to na stworzenie biblioteki dźwięków, z które] w każdej chwili (w przypadku korzystania ze stacji dysków w ciągu kilku sekund) można wybrać poszukiwany efekt.
(rp)Autor listingu: W. Szczęśniak
Listing nadesłał: Zbyniu [Speccy.pl]
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: cpc_uczymy_mowic-t2e.pl.7z
-
Śledzenie Pracy Programu
Pomysł na napisanie tego programu zaczerpnąłem z pakietu procedur maszynowych pod nazwa SUPERCODE.
Krótki program w języku wewnętrznym mikroprocesora Z80 informuje, która instrukcja i w której linii jest aktualnie wykonywana. Informacja ta znajduje się na ekranie w drugiej linii od dołu. W trybie bezpośrednim znajduje się tam numer ostatniej wykonanej instrukcji, lub po CLS, napis postaci „q534:1 „. Wynika to z pewnej niedokładności programu. Zaburzenia mogą wystąpić także podczas wpisywania linii zajmujących więcej, niż jeden wiersz. Program wykorzystuje system przerwań maskowalnych mikroprocesora. Początek procedury obsługują cej przerwania jest pod adresem 56797 (221 +256+221 =56979) i wartość 221 wpisana jest w pamięć zapełniając całą stronicę o numerze 222. Numer stronicy wpisany jest do wektora przerwań za pośrednictwem akumulatora, po czym ustawiany jest wektoryzowany tryb obsługi przerwań. Czynności te wykonuje procedura zawarta od adresu 56640. W pamięć znajduje się także procedura przełączająca tryb przerwań na normalny — jest ona umieszczona od adresu 56812.
Z uwagi na dość dużą szybkość wykonywania programu w BASIC—u i idące za tym trudności z odczytaniem bieżącej linii, instrukcją POKE 56777,n można zmniejszyć szybkość wykonywania programu. Zmienna n może przyjmować wartości 1+255, lecz nie zalecam podawania jej jako większej od 100. Początkowo jest ona równa jeden.
Na koniec jeszcze ciekawostka. Skąd komputer wie, która instrukcja jest właśnie wykonywana? Odczytuje to ze zmiennych systemowych PPC (23621) i SUBPPC (23623). PPC to numer wykonywanej linii programu, a SUBPPC — numer instrukcji w wierszu o numerze zawartym w PPC.
Autor listingu: Marcin Przasnyski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: zx_sledzenie_programu-t2e.pl.7z
-
H&S TURBO-STOP dla C16/116/PLUS/4
Wolna współpraca Commodore z magnetofonem spowodowała opracowanie kilkudziesięciu aż programów przyspieszających operację wczytywania i zapisu programów na taśmie.
Dla C-16 oraz „pokrewnych” (C-116 i PLUS/4) najbardziej popularnymi programami są HEA- DER & SAVER TURBO, NOVALOAD w którym zapisywany jest bez mała każdy program firmowy oraz TURBOSAVE działający dobrze wraz z 64 KB RAM (nie wymaga każdorazowego wczytywania programu przyspieszającego przed wczytywaniem programu głównego).
Każdy z tych programów ma swoje wady i zalety. W powyżej wymienionych najbardziej zawodnym wydaje się być HEADER SAVER TURBO (podczas wczytywania program wyświetla na ekranie szerokie
pasy). Wymaga on bardzo dokładnego ustawienia skosu głowicy, nie sygnalizuje występujących podczas operacji wczytywania błędów oraz zakłóca działanie programów napisanych w BASIC (m.in. nie pozwala na powrót do trybu ekranowego).
Poniżej przedstawiony program służy do wczytywania bez uruchomienia programów zapisanych w HEADER SAVER TURBO — zmienia on nieco działanie instrukcji LOAD. Zaletą tego programu jest jego długość (16 bajtów w języku wewnętrznym) oraz możliwość wielokrotnego wykorzystania.
Po wczytaniu programu do komputera należy go uruchomić za pomocą RUN. Jego dezaktywację uzyskuje się poprzez wciśnięcie klawisza F1, natomiast ponowne uruchomienie (o ile nie został on wcześniej skasowany np. poprzez wyłączenie czy zerowanie komputera) za pomocą klawisza F4.
Autor listingu: Michał Trójnara
Listing nadesłał: Faust
Język programu: Commodore Basic 3.5
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c264_hst_bajtek111987-t2e.pl.7z
-
Regulacja głowicy w datassette
Często się zdarza, że programy, które do tej pory wczytywaliśmy bez problemów nagle zaczynają się „narowić” wyświetlając na ekranie nasz ulubiony komunikat LOAD ERROR. Spowodowane może to być kilkoma przyczynami, najczęściej jednak chodzi tu o rozregulowanie się głowicy odczytujaco-zapisujacej.
W celu jej ustawienia niezbędne będzie wykonanie małego obwodu oraz wpisanie podanego poniżej programu. Głośnik może pochodzić z dowolnego miniodbiornika, reszta części jest powszechnie dostępna na rynku. Potencjometr nie musi być koniecznie stosowany.
Połączenia należy dokonać we wtyczce do masy (A-1) oraz do linii odczytu CASSETTE READ (D-4). Na wszelki wypadek proponuję zajrzeć do instrukcji obsługi komputera gdzie zawarty jest rysunek wprowadzeń; blokada wtyczki chroniąca nas przed jej odwrotnym włożeniem jest umieszczona pomiędzy B-2 i C-3.
Po wpisaniu programu do pamięci zapisujemy go dla bezpieczeństwa i uruchamiamy. Komputer będzie generował sygnał o zmieniającej się modulacji, który należy zapisać na dobrej kasecie i (koniecznie) sprawnym magnetofonie; z tego powodu polecałbym przeprowadzenie przynajmniej zapisu sygnału testowego ZANIM nasza głowica się odstroi.
Po zapisaniu sygnału należy cofnąć taśmę i podłączyć przygotowany wcześniej obwód. Następnie włączamy magnetofon i małym śrubokrętem krzyżakowym (np. zegarmistrzowskim) przesuwamy głowicę o pół obrotu w prawo lub w lewo, tak, aby uzyskać jak najlepszą słyszalność tonów niskich i wysokich. Tony wysokie muszą być bardzo wyraźnie słyszalne. Następnie wczytujemy jeden z programów, który powodował wcześniej ukazywanie się komunikatu LOAD ERROR. Jeżeli komunikat ten wystąpi ponownie należy regulację powtórzyć Pamiętajmy także, że głowica i kółko prowadzące taśmę muszą być okresowo czyszczone (w żadnym wypadku spirytusem salicylowym!!!).
Od redakcji:
Główną przyczyną błędów przy wczytywaniu jest niestety brudna głowica i kółko prowadzące oraz brak należytej konserwacji tych elementów. Innym powodem może też być pozaginana taśma czy różnica w ustawieniu głowic w różnych magnetofonach — bardzo rzadko natomiast jest to wada natury elektronicznej.
Generalnie regulowanie głowicy w celu odczytania programu z kasety kolegi można porównać z myciem nowego samochodu drucianą szczotką. W efekcie problem będzie niebawem stanowiło wczytanie naszego własnego programu do komputera — komputery jak i generalnie sprzęt elektroniczny nie znoszą niedokładności, a konia z rzędem temu, kto bez specjalistycznych przyrządów, takich jak oscyloskop, będzie w stanie po przegraniu ustawić ponownie głowicę w dokładnie takie samo położenie. Jeżeli więc sytuacia nas do tego nie zmusza NAPRAWDĘ nie regularny głowicy sami.
(kd).Autor listingu: Jerzy Żukowski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c64_regulacja_datessete-t2e.pl.7z
-
Disc Protector
Najprostszym i najpewniejszym sposobem zabezpieczenia plików znajdujących się na dyskietce przed ich przypadkowym skasowaniem, jest zaklejenie nieprzezroczysta taśma wycięcia w kopercie dyskietki.
Istnieją także rozwiązania programowe, które umożliwiają bardziej elastyczne zabezpieczanie przed skasowaniem całej zawartości dyskietki, lub tylko jej części. Metodę tę można wykorzystać w programie, który sam chroni odpowiednie pliki przed ich zniszczeniem, wskutek pomyłki lub błędnej reakcji użytkownika.
Zamieszczony, poniżej program pokazuje jedną z realizacji tej metody. Umożliwia on zabezpieczenie (lub „odbezpieczenie”) wybranych plików. Próba ich skasowania nie przyniesie żadnego rezultatu, a w katalogu dyskietki są one wyróżnione znakiem „<”. Druga z możliwości programu to zabezpieczenie całej dyskietki. W wyniku tej operacji każda próba zapisu spowoduje wystąpienie komunikatu „73, CBM DOS V2.6 1541, t ,s”, sygnalizującego niezgodność formatu dyskietki ze standardem Próba skasowania jakiegokolwiek że znajdujących się na niej plików nie przyniesie rezultatu. Program umożliwia też „odbezpieczenie” dyskietki, czyli przywrócenie jej znacznika formatu zgodnego ze standardem.
UWAGA: Powyżej opisany sposób nie chroni dyskietki przed jej sformatowaniem.
Autor listingu: Witold Zabdyr
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
-
Jeszcze o TURBO dla C-16
W „BAJTKU” 5/87 ukazał się, przyjęty z wdzięcznością przez użytkowników Commodore 16 (i pokrewnych) program TURBO SAVE-LOAD. Z wielkim zapałem wziąłem się za jego wpisywanie i po usunięciu kilku błędów program był gotów do uruchomienia. Postanowiłem więc wypróbować jego działanie na jednym z własnych programów, lecz niestety okazało się. że program znajduje się dokładnie w tym samym obszarze pamięci, w którym umieściłem dane graficzne mojego programu! Po uważnym zbadaniu jego konstrukcji okazało się, że w takiej postaci jak podano w „BAJTKU” nie można go w żaden sposób przenieść w inny obszar pamięci. Oczywiście możliwe było przepisanie go w inny obszar i mozolna zmiana argumentów rozkazów, lecz z wrodzonego lenistwa nie chciałem się brać za tę „czarną robotę” — od tego są przecież komputery... Zmieniłem więc program w taki sposób, by po uzgodnieniu z użytkownikiem umieszczał TSL we wskazanym miejscu odpowiednio go modyfikując. Niemożność przeniesienia programu w inny obszar pamięci (mowa o postaci podanej w „BAJTKU” 5/87) polega na obecności takich rozkazów jak JSR, LDA czy STA i występujących po nich adresów skoku czy konkretnych komórek pamięci.
W linii 210 program sprawdza ilość dostępnej pamięci RAM (PEEK 56) i wyświetla na ekranie możliwe lokalizacje programu w pamięci wybierane odpowiednio w linii 220. Linia 250 rezerwuje pamięć dla kodu maszynowego. W pętli zawartej w liniach 270-280 pobierane są dane z DATA, zliczane sumy kontrolne i przeliczane odpowiednio wartości 61, 62 i 63 odpowiednio dla wybranej lokalizacji; pętla ta także umieszcza program maszynowy w pamięci. W pętli w linii 310 następuje korekcja niepotrzebnie zmienionych wartości (pobierane są tu dane z linii 999). Linia 330 podaje adres początkowy programu i ułatwia jego uruchomienie.
Warto zaznaczyć, że blok danych w liniach 350-900 jest identyczny z podanym w „BAJTKU” 5/87, tak więc Czytelnicy, którzy już go wpisali mogą wprowadzić niezbędne przeróbki znacznie prościej i szybciej.
Informacja dla wnikliwych: po ograniczeniu dostępu edytora do pamięci ekranowej i dokonaniu niewielkich zmian w samym programie, można sam kod maszynowy umieścić poza RAM użytkownika, co pozwoli zapisywać w TURBO programy zajmujące całą pamięć.
I jeszcze jedna uwaga. Jeśli program przeznaczony do kopiowania jest także zapisany w TSL, to po jego wprowadzeniu do pamięci musimy ponownie zainicjować TURBO za pomocą SYS i odpowiedniego adresu w zależności od wybranej lokalizacji. Dalej już normalnie tzn. SAVE „nazwa”, 7 czy ,7,1.
Jak uruchamiać...
- Załaduj taśmę do Vice C264
- Załaduj Plik Turbo - dla oryginalnego listingu (niedziałający)
- Załaduj Plik TurboZM - dla listingu z podniesioną numeracją (działający???)
Autor listingu: Marek Hatko
Listing nadesłał: Faust
Język programu: Commodore Basic 3.5
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Podsłuch taśmy dla C-16/C-116/PLUS4
Podany poniżej program pozwoli zaoszczędzić sporo nerwów właścicielom nieopisanych kaset magnetofonowych z programami.
Niestety firma Commodore nie wyposaża swoich komputerów w głośniczki (choć niektóre z nich wytwarzane przez inne firmy mają już taki głośniczek wbudowany). Program ten umożliwia podsłuchiwanie taśmy odczytywanej aktualnie w DATASETTE.
Ponieważ dźwięk jest przekazywany do gniazda AUDIO/VIDEO konieczne jest przyłączenie komputera do dowolnego wzmacniacza m.cz. lub do monitora TV z wbudowanym torem fonicznym.
Program należy wpisać następująco:
Po włączeniu komputera wykonujemy MONITOR i wciskamy klawisz RETURN. Następnie wpisujemy A 0609 i wpisujemy poniżej program zapisując go następnie za pomocą S „nazwa”,1,0609,0639. Po takim zapisaniu jego wczytywanie w BASIC powinno się odbywać za pomocą LOAD „nazwa”,1,1. Uruchomić program można dwojako: albo poprzez przejście do monitora i wykonanie G 0609, lub za pomocą SYS 1545 w BASIC. Zatrzymanie programu odbywa się poprzez wciśnięcie klawisza STOP. Program ten jest relokowalny i można go umieszczać w dowolnym miejscu pamięci wybranym przez użytkownika.
Autor listingu: Marek Gierliński
Listing nadesłał: Faust
Język programu: Commodore Basic 3.5
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Kubuś na Dzikim Zachodzie
Nasz przyjaciel Kubuś, niestrudzony globtroter i poszukiwacz przygód trafił tym razem na Dziki Zachód. Wkrótce został szeryfem w pewnym miasteczku i — jakże by inaczej — czeka go pojedynek z groźnym Bilem Pixelem.
Jest samo południe. Przeciwnicy wolnym krokiem zbliżają się do siebie. Wzrokiem oceniają odległość. Strzelać teraz, czy poczekać, aż strzał będzie pewniejszy. W rewolwerach mają po trzy pociski. Bil strzela pierwszy, na szczęście niecelnie. Kubuś robi jeszcze dwa kroki i strzela również. Udało się, trafił w pas z rewolwerami. Bezbronny Bil podnosi ręce do góry, poddaje się.JAK URUCHOMIĆ NA EMULATORZE
- Pobierz np. WinApe, uruchom...
- Włóż dyskietkę z rozpakowanego archiwum (File->Drive A->Insert Disc Image)
- Wpisz run"kubus"
- Gra załaduje się i uruchomi
Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Kubuś tańczy break dance
Pamiętacie tańczącego Kubusia Literkę z pierwszego numeru "Bajtka" z 1986 roku? Dzisiaj wrócimy do tego pomysłu. Tym razem jednak nasz przyjaciel Kubuś będzie wykonywał znacznie bardziej skomplikowane ewolucje.
Zapewne nie wszyscy wiecie, że Kubuś ma brata bliźniaka — Barnabę, który jest znakomitym tancerzem. Kubuś także postanowił nauczyć się tańczyć. Poprosił więc brata o udzielenie mu kilku lekcji.
Na ekranie zobaczymy więc Barnabę i Kubusia. Gdy Barnaba wykona jakiś ruch, Kubuś będzie go musiał — najszybciej jak tylko może — powtórzyć. Oczywiście z Waszą pomocą.
Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Firma
Zostałeś dyrektorem nowej firmy. Masz do dyspozycji jedną fabrykę i 50 tys. dolarów kapitału zakładowego. Możesz doprowadzić swoją firmę do rozkwitu, jeśli okażesz się dobrym biznesmenem, albo też stracić pracę, gdy spowodujesz bankructwo przedsiębiorstwa.
Gry towarzyskie takie jak „Bankrut”, „Giełda”, „Tranzyt” itp., polegające na modelowaniu mechanizmów wielkiego biznesu, cieszą się od lat powodzeniem nie tylko w naszym kraju. Z jednej strony pozwalają nam wczuć się w rolę rekinów finansjery, dysponujących milionowymi fortunami, a z drugiej, stanowią znakomite pole do wypróbowania umiejętności strategicznego myślenia.
Autor programu „Firma” wykorzystał ten pomysł, uzupełnił o własne przemyślenia, i tak w efekcie powstała znakomita gra komputerowa.
Gra przeznaczona jest w zasadzie dla jednej osoby, która w ciągu 24 miesięcy (oczywiście komputerowe miesiące upływają znacznie szybciej niż w życiu) ma zarobić możliwie najwięcej pieniędzy. Zarabianie pieniędzy wymaga oczywiście inwestycji Trzeba kupować półfabrykaty, które w fabrykach przerabiane są na gotowe wyroby, budować nowe fabryki, płacić za transport. Stosunkowo najmniej zachodu wymaga spekulacja na giełdzie, lecz — z drugiej strony — jest to bardzo niepewny interes.
Można także wziąć kredyt z banku Należy jednak pamiętać, że po sześciu miesiącach, cały kredyt (wraz z odsetkami) trzeba zwrócić. Jeśli kapitał zakładowy jest niższy niż należna płatność, prowadzi to nieuchronnie do bankructwa.
Autor listingu: Tomasz Nowicki
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: cpc_Firma_bajtek_101987-t2e.pl.7z
-
BAJTEK dla COMMODORE 64
Trudno mi było wybrać lepsza nazwę dla tego programiku zajmującego 38 bajtów pamięci od adresu 680 do 717. Program ten może być pomocny przy wszelkich pracach związanych z operacjami na bitach takimi jak projektowanie własnej czcionki i kroju liter, znaków dla drukarki itp.
Zadaniem głównym programu jest określenie, które bity są ustawione (włączone) i jaka jest ich wartość dla danej wartości dziesiętnej w zakresie od 0 do 255. W tym celu należy ową wartość wpisać za pomocą POKE do komórki 2 i wykonać SYS 680. Pod spodem ukaże się „czarno na białym” (czyli w rewersie), które z bitów są ustawione (wartości większe od zera), a które są wyłączone (równe 0). Z programu można korzystać zarówno w trybie ekranowym (bezpośrednim) jak też i w trybie programowym. „BAJTEK 64” zawiera w sobie także krótką demonstrację, nie powinno być więc kłopotu z jego wykorzystaniem. Poniżej przedstawiono również procedurę w języku wewnętrznym realizującą opisywaną funkcję. Gdy z jakichś powodów adres 680 ($02A8) nie będzie użytkownikowi odpowiadał, program można przenieść w dowolny obszar pamięci (jest on w pełni relokowalny). „BAJTEK 64” wykorzystuje komórki na stronie zerowej o adresach 2, 251 i 252 ($02, $FB i FC).
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c64_Bajtek54_bajtek_101987-t2e.pl.7z
-
DOS+ dla C64
Nagroda za cierpliwe (i bezbłędne!) wpisanie poniższego programu jest uzyskanie trzech dodatkowych rozkazów bardzo przydatnych wszystkim posiadaczom stacji dysków.
Pierwszy z nich umożliwia wczytywanie katalogu (directory) dyskietki bez jednoczesnego kasowania zawartości pamięci RAM:
$ — umożliwia wczytanie całego katalogu, lub
$ „nazwa 1”, „nazwa 2”,
co z kolei pozwala nam na wczytanie jedynie określonej grupy tytułów Np.
* „TER*”, „??FOX
spowoduje wczytanie wszystkich tytułów których trzy pierwsze znaki stanowią litery TER oraz te tytuły w których znaki trzeci czwarty i piąty są literami FOX Jeżeli użyjemy $ i cudzysłowu /$ „/, to wyświetlona zostanie nazwa dyskietki i ilość wolnych bloków. Wciśnięcie klawisza spacji (odstępu) spowoduje pauzę we wczytywaniu katalogu (wznowienie za pomocą RETURN); Klawisz STOP przerywa wczytywanie na stałe.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c64_DosPlus_bajtek_101987-t2e.pl.7z
-
Instrukcje SSHAPE I GSHAPE Dla C-128/16/116/+4
Obie te instrukcje są instrukcjami graficznymi i odnoszą się do grafiki wysokiej rozdzielczości (HIRES). SSHAPE pozwala nam Przypisać zmiennej tekstowej dowolnie wybrany obszar ekranu graficznego natomiast GSHAPE umożliwia jego odtworzenie w określonym miejscu. Obszary o których mowa mają zawsze kształt prostokąta lub kwadratu
Dla użytkowników takie rozwiązanie jest bardzo wygodne. Przypuśćmy, że chcemy powielić na ekranie w paru miejscach np. obraz jakiejś figury. W wersjach BASIC pozbawionych tych instrukcji trzeba by było w tym celu stworzyć odpowiedni podprogram figurę tą tworzący, a następnie zmieniając odpowiednio parametry kolejno go wywoływać co jest oczywiście powiązane z wolniejszym wykonywaniem programu i większą zajętością pamięci (...) przedstawiam mały program demonstracyjny, pokazujący w jaki sposób można korzystać z opisanych w artykule instrukcji. Linia 120 powoduje skasowanie i wyczyszczenie pamięci ekranu graficznego. Następnie (linia 125) w lewym rogu ekranu wykreślane jest małe kółko, które zostaje przypisane zmiennej A$ (linia 130). SCNCLR w linii 140 powoduje ponowne wyczyszczenie ekranu i odtworzenie uprzednio zapamiętanego pod zmienną A$ obrazu kółka. Stosując pętle otrzymujemy w rezultacie na ekranie szereg kółek.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Commodore Basic 3.5
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c128_sshape_bajtek_101987-t2e.pl.7z
-
CHAR, RDOT czyli tekst i grafika
Żalił mi sie ostatnio pewien mój znajomy, że ma kłopoty z wyświetleniem na ekranie wysokiej rozdzielczości wyników obliczeń wraz z wykresem funkcji. Oprócz tego kilku Czytelników miało również wątpliwości jak należy stosować instrukcje CHAR i funkcję RDOT w wyniku czego powstał poniższy program.
Ponieważ ma on charakter demonstracyjny i składa się z dwóch części proponowałbym przed uruchomieniem postarać się o szklankę herbaty; druga bowiem część tego programu wykonuje się przez ok. 28 minut, ale za to otrzymujemy przepiękny trójwymiarowy wykres funkcji. Program można uruchomić na Commodore 128, 16, 116 i PLUS/4.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Commodore Basic 3.5
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c128_rdot_bajtek_101987-t2e.pl.7z
-
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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Test
Rozpoczął się rok szkolny, a więc trzeba się zabrać do nauki. Komputer co prawda nie napisze za nas klasówki, ale może nam pomóc. Ot choćby odpytując nas z lekcji, które musimy opanować w sposób pamięciowy
Nauczenie się na pamięć dużej liczby stów, nazw czy dat, nie należy do zadań łatwych. Właściwie nie bardzo wiadomo jak się do tego zabrać. Można powtarzać bez końca „wkuwane” wyrazy, można wypisywać ja na kartkach i wieszać na wszystkich ścianach pokoju... Najlepsze rezultaty daje jednak praca z drugą osobą, która odpytuje ucznia na wyrywki i poprawia jego błędy, aż do skutku. Kto jednak znajdzie tyle czasu i cierpliwości? Otóż jest taki „ktoś” — Twój własny komputer. Nie znudzi się, nie zirytuje, dokładnie zapamięta co już umiesz, a czego jeszcze nie.
Nasz program spowoduje, że komputer będzie sprawdzał Twoją wiedzę do skutku, to jest do czasu, aż opanujesz materiał, a konkretnie, aż odpowiesz prawidłowo na określoną liczbę pytań. Jeśli się nie pomylisz, wystarczą trzy prawidłowe odpowiedzi na każde pytanie, za każdą pomyłkę komputer dolicza Ci po jednej odpowiedzi (oczywiście na to pytanie, na które odpowiedziałeś błędnie). Za każdym razem, w przypadku pomyłki, komputer informuje Cię, jak powinna brzmieć prawidłowa odpowiedź. Jeśli już udzielisz wymaganej liczby prawidłowych odpowiedzi na każde pytanie, komputer uznaje, że Twoja edukacja jest zakończona i wyświetla komunikat: „MATERIAŁ OPANOWANY”. Dobrze jest jednak wrócić do tego programu następnego dnia, a potem jeszcze za kilka dni, i za tydzień... Kilkakrotne powtórzenie — w pewnych odstępach — takiego ćwiczenia spowoduje, że zapamiętany materiał nie wyfrunie szybko z głowy.
Program, w wersji tu przedstawionej służy do nauki geografii, a konkretnie do nauki nazw stolic, krajów Europy (nie ma tu wszystkich krajów europejskich, gdyż jest to program „dla przedszkolaków”). Może on oczywiście być pomocny także podczas uczenia się innych przedmiotów, np. w ten sposób możemy zapamiętywać daty wydarzeń historycznych, uczyć się tablicy Mendelejewa, „wkuwać” słówka z obcych języków, liczby mieszkańców i powierzchnie krajów itd.Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Commodore Basic V2
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c64_test_bajtek_9-1987-t2e.pl.7z
-
Hardcopy
Opisany poniżej program służy do przenoszenia obrazu wysokiej rozdzielczości z ekranu monitora na drukarkę. Po wpisaniu i uprzednim zapisaniu na taśmie bądź dyskietce uruchamiamy program za pomocą RUN. Kopiowanie uruchamia się za pomocą instrukcji SYS 818, X, gdzie X jest numerem zbioru przydzielonego drukarce. Operacja ta powinna być wykonana na drukarkach MPS 801/802/ 803 i trwa ok. 3 minut (w wypadku MPS 803).
Autor listingu: Marcin Wojciechowski
Listing nadesłał: Faust
Język programu: Commodore Basic V3.5
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnościąPobierz: c116_hardcopy_Bajtek9-1987-t2e.pl.7z
-
Kasjer
Michał Czupryński z Brodnicy przysłał do naszej redakcji kilka różnych programów własnego pomysłu. Oto jeden z nich. Służy on do obliczania liczby banknotów i monet, które składają się na podaną sumę.
Program działa najzupełniej poprawnie, a jednak warto się zastanowić, czy nie dałoby się zapisać go w nieco krótszej formie i w sposób bardziej elegancki.Autor listingu: Michał Czupryński
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: cpc_kaser_bajtek_9-1987-t2e.pl.7z
-
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:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
-
Słowniczek
W jednym z ostatnich numerów „BAJTKA” opublikowaliśmy artykuł pt. „Słownik dowolnego języka” dla Commodore 64. Programy tego typu cieszą się zasłużonym powodzeniem, gdyż pozwalają na wykorzystanie komputera jako uniwersalnego narzędzia do nauczania. Poniżej zamieszczam następny program tego typu, tym razem dla posiadaczy Commodore 128 i stacji dysków. Jeżeli program ten spodoba się Wam, podam jego wersję dla innych komputerów Commodore.
„Słowniczek” ma pewną zasadniczą przewagę nad innymi programami tego typu — pracuje mianowicie z polskimi znakami i po prostych przeróbkach można go przystosować nawet do zapisywania pisma klinowego. W naszej wersji przystosowany jest do języka angielskiego, a ponieważ w języku tym nie występują litery „nietypowe” tak jak w niemieckim czy francuskim, zdefiniowałem jedynie polskie znaki. Nic jednak nie stoi na przeszkodzie, aby takie litery ułożyć samemu.
Program składa się z dwóch części.Wymagane wyposażenie:
Commodore 128
stacja dysków 1541/1570/1571/1572Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Wilk, Koza i Kapusta
Pewien przewoźnik stanął przed bardzo trudnym zadaniem. Ma przeprawić na drugi brzeg rzeki kłopotliwy ładunek — wilka, kozę i kapustę. Trudność polega na tym, że nie można pozostawić bez opieki wilka z kozą ani też kozy z kapustą, gdyż w pierwszym przypadku wilk pożre kozę, a w drugim, koza dobierze się do kapusty. Łódź przewoźnika jest tak mała, że może — prócz niego samego — pomieścić tylko jedną rzecz. Jak więc rozwiązać ten problem?
Pomysł tego klasycznego i starego jak świat zadania logicznego można wykorzystać do napisania gry komputerowej. Ponieważ zasadę juz znamy, możemy przystąpić do pisania programu. Rozpoczniemy od tego, jak wyobrażamy sobie jego działanie na zewnątrz, to znaczy, co będzie widział grający. Popatrzmy na rysunek ekranu. Pionowo przez jego środek płynie rzeka. Po lewej i prawej stronie znajdują się „pasażerowie” (na początku gry wszyscy są na lewym brzegu rzeki!, łódka — w zależności od sytuacji — może być przycumowana do prawego, bądź lewego brzegu. Poniżej znajduje się „menu”, czyli zestaw możliwych ruchów, które wybieramy naciskając klawisz z cyfrą odpowiadającą „pasażerowi”
Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: [cpc]_koza_bajtek_87-8-t2e.pl.7z
-
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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Częstosciomierz
Program przeznaczony na ZX Spectrum tworzy dwuzakresowy częstościomierz mierzący w zakresie od 0-t-15 kHz i od 5^-50 kHz. Dokładność pomiaru w zakresie niższym jest równa ± 0,5 Hz tak, że ostatnia wyświetlana cyfra jest prawdziwa (1 Hz). Częstościomierz do pracy nie wymaga dodatkowych układów, wystarczy wpisać i uruchomić program. Po podaniu mierzonego sygnału na wejście EAR lub MIC na ekranie pojawi się wartość częstotliwości w Hz lub kHz. Dokładny częstościomierz w zakresie akustycznym jest przydatny do rozmaitych prac np.: kalibrowania generatorów akustycznych, strojenie filtrów, badanie pasma częstotliwościowego układów akustycznych itp.
SPOSÓB URUCHAMIANIA
Przed przystąpieniem do wpisania programu warto wprowadzić POKE 23609,40 (BEEP KLAWIATURY), co pomaga uniknąć pomyłek. Po wpisaniu programu wg listingu należy go uruchomić rozkazem RUN. Na ekranie pojawia się napis „CZEKAJ” i komputer sprawdza poprawność wprowadzania wartości w instrukcjach DATA. Jeżeli po chwili pojawi się napis ERROR należy skontrolować zawartość DATA. Gdy program jest wprowadzony bezbłędnie komputer zaczyna mierzyć częstotliwość i na ekranie pojawia się płyta czołowa naszego „przyrządu”.
Opcja trzecia służy do kalibracji częstościomierza w przypadku gdyby jego własny generator miał odchylenia od częstotliwości wzorcowej. Wprowadzenie nowej wartości współczynnika powoduje „dostrojenie” wskazań częstościomierza do właściwej wartości.
Prawidłowy pomiar ma miejsce, gdy kolejne następujące po sobie odczyty, są stabilne tzn. nie różnią się. Częstotliwość mierzona powinna być czystym tonem o dowolnym kształcie, jednak najkorzystniejsze są przebiegi symetryczne tzn.: sinus, trójkąt, prostokąt.
Program „CZĘSTOŚCIOMIERZ” dedykuję przede wszystkim radioamatorom, dla których może on być wzbogaceniem pracowni o dokładny przyrząd pomiarowy za cenę ręcznego wprowadzenia programu do pamięci komputera.
Autor listingu: Krzysztof Kuc
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing 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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Drukarka?
Pisząc program przeznaczony dlaz wykłych ludzi a nie dla informatyków, chcielibyśmy by był on odporny na nieumiejętną obsługę. Powinniśmy więc starać się, aby wszystkie błędy sygnalizowane były w odpowiedni sposób przez program, a nie przez interpreter BASIC-a. Nietrudno wyobrazić sobie reakcję laika na komunikat „Improper argument" lub „Syntax error". Dobry program wypisze w takim wypadku dokładne objaśnienie błędu umożliwiając jednocześnie powtórzenie źle wprowadzonego polecenia.
Autor listingu: Sergiusz Wolicki
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: cpc_bajtek_6-1987_drukarka-t2e.pl.7z
-
Z zakurzonej dyskietki
Po generalnych porządkach, jakie ostatnio przeprowadziłem w swojej programotece stwierdziłem, że jestem posiadaczem co najmniej kilkudziesięciu programów, które może tak niebłyszczą jak „FAST HACK'EM" czy „PRINT MASTER", ale są za to bardzo przydatne każdemu programiście czy operatorowi.
W poniższym artykule chciałbym opisać dwa z nich: FUNKTIONSTATEN autorstwa Otmara Basana (program był publikowany w czasopiśmie „COMPUTER PERSOENLICH"nr 4/84) oraz program anonimowy demonstrujący w jaki sposób w programach w BASIC należy odczytywać katalog dyskietki (directory).
Drugi program może być z powodzeniem użyty przez tych wszystkich, którzy opracowują swoje własne programy narzędziowe do współpracy ze stacją dysków. Umożliwia on odczytywanie katalogu dyskietki wraz ze zbiorami, które wcześniej były skasowane za pomocą OPEN 15,8,15, „S0:nazwa":CLOSE15. Tytuły tych programów wyświetlane są w rewersie. Może on być wykorzystany jako podprogram i ma w zasadzie charakter demonstracyjny — pokazuje bowiem w jaki sposób pisać samemu podobne programy oparte na tzw. rozkazach bezpośrednich stacji Commodore.
Autor listingu: Klaudiusz Dybowski
Listing nadesłał: Faust
Język programu: Feniks
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Commodore i drukarka
Jak podłączyć drukarkę do COMMODORE? Nie chodzi tu oczywiście o drukarki z interface'm szeregowym CBM SERIAL BUS. Użytkowników krajowych najbardziej interesuje możliwość współpracy komputera z drukarkami rodzimej produkcji, np. D-100 i DZM-180 z interface'ami równoległymi CENTRONIX i LOGABAX. Z problemem tym stykają się również nabywcy zagranicznych drukarek.
Autor listingu: Paweł Piwowar
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: c64_bajtek_6-1987_drukarka-t2e.pl.7z
-
Ósemka - Tylko dla Przedszkolaków
Ta gra wymaga zręczności, precyzji i pełnej koncentracji. Rzucamy kulą w kierunku planszy, kula powinna zatrzymać się na polu oznaczonym jak największą liczbą. Dwa pierwsze pola mają wartość 1, trzy następne — 2, kolejne dwa— 4 i wreszcie ostatnie — 8. Umieścić kulę w jednym z pierwszych pól nie jest trudno, gorzej, gdy celujemy w „ósemkę", bo gdy kula potoczy się choć o jedno pole dalej wylatuje poza planszę.
Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: cpc_bajtek_6-1987_osemka-t2e.pl.7z
-
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:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Pogaduszki -
Robert Witt z Gdańska przysłał do rubryki "Sam programuję" program dydaktyczny "Pogaduszka". Robert wykorzystał elementy "Rozmówki" publikowanej w jednym z zeszłorocznych numerów "Bajtka", uzupełnił własnymi pomysłami i w efekcie powstała bardzo ciekawa i kształcąca zabawa. Program został napisany na mikrokomputerze Amstrad
Autor listingu: Robert Witt
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Waga - tylko dla przedszkolaków
Macie młodsze rodzeństwo? Jeśli nawet nie macie, to pewnie znajdziecie wśród swoich kolegów takich, którzy rozpoczynają naukę liczenia. Właśnie dla nich przeznaczony jest ten program..
Czytaliście zapewne wiele razy — nie tylko w "Bajtku" — o programach dydaktycznych. Bywają one bardzo rozmaite, ale mają jedną wspólną cechę — korzystając z nich, czegoś się uczymy. A jeśli w dodatku program jest zabawny, to tym lepiej. Nasz program będzie służył do ćwiczenia się w umiejętności liczenia, konkretnie odejmowania na poziomie przedszkolaków (tych prawdziwych, a nie komputerowych). Myślę, że jest on nawet trochę zabawny.
Czy można zważyć liczbę? Chyba raczej nie bardzo, bo czy ktoś miał w ręce np. siódemkę albo dziewiątkę... Jak więc takie coś położyć na wadze? Pofantazjujmy: jeśli by się jednak dało ważyć liczby, to dziewiątka powinna być cięższa od siódemki, a dwie dwójki powinny mieć ciężar jednej czwórki. Jeśli od ósemki odejmiemy piątkę to różnica powinna mieć wagę trójki. Śmieszne ale... logiczne. Prawda?Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: cpc_bajtek_7-1987_waga_tdp-t2e.pl.7z
-
Edytor Znaków Graficznych
Prezentowany program umożliwia szybkie zaprojektowanie zestawu 96 znaków o kodach ASCII 32 do 127 i znaków graficznych użytkownika.
Po uruchomieniu programu przez RUN należy odczekać chwilę, aż w odpowiednim obszarze RAM umieszczone zostaną procedury maszynowe. Następnie pojawi się pytanie czy wczytać dane z taśmy magnetofonowej, a później plansza prezentująca poprawiany zestaw znaków i ich odpowiedniki w kodzie ASCII, menu oraz edytowany znak w wielkości naturalnej i powiększony 8 razy. W programie możliwa jest realizacja kilkunastu funkcji wybieranych naciśnięciem odpowiedniego klawisza.
Autor listingu: Janusz Jamroch
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: zx_generator_znakow_bajtek7-1987.7z
-
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ściAutor listingu: Wojciech Zientara
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing 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:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Elektron w studni
Jak poznać problemy mechaniki kwantowej, mechanizm absorpcji i emisji światła, linie widmowe, strukturę energetyczno-przestrzenną atomu wodoru, nie zasypiając nad podręcznikiem fizyki? Wystarczy uważnie wpisać do komputera poniższy program.
Autor listingu: Michał Małachowski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Wisielec Mikrusek
Kto z nas nie grał w "wisielca" (niektórzy pewnie nawet na lekcjach — bardzo nieładnie!). A może jednak ktoś nie grał? Na wszelki wypadek wyjaśniam zasady. Jedna osoba wymyśla wyraz, druga stara się go odgadnąć podając kolejno litery. Każdy błąd to kolejny element... szubienicy. Brr, okropność!
Joanna Marciniak z Warszawy (lat 11) przysłała na nasz Konkurs komputerową wersję tej gry na ZX Spectrum. Jest to gra dla dwóch osób; jedna wprowadza wyraz, druga zgaduje. Wydaje mi się, że warto uzupełnić ten program o możliwość gry z komputerem. Trzeba bylko wprowadzić pewną liczbę słów, z których byłby losowany szukany wyraz. Spróbujcie zrobić to sami.Autor listingu: Joanna Marciniak
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Fotografia
Użytkownikom komputerów SPECTRUM, którzy przeważnie nie posiadają kamer cyfrowych lub optycznych czytników proponujemy program. który umożliwia przetwarzanie zdjęć. Oczywiście rolę czytnika w tym wypadku przejmuje człowiek. Wybrane zdjęcie powinno być jak największe i zawierać mało drobnych szczegółów. Najlepiej jeśli jest to zdjęcie czarno-białe. Należy je podzielić na kwadraty (program przyjmuje zdjęcia o szerokości do 64 i wysokości do 42 kwadratów.
Analizując zdjęcie należy decydować jaki stopień szarości (cień) przyznać kolejnym kwadratom. Program pozwala na użycie 7 cieni (od czarnego do białego).
Rysowanie poszczególnych kwadratów na ekranie odbywa się na zasadzie wyświetlania znaków graficznych (ang. UDG). Jeden kwadrat stanowi matrycę o wymiarze 4x4 punkty. Liczba i rozłożenie zapalonych punktów w tej matrycy decyduje o odcieniu danego kwadratu. Po uruchomieniu programu, na ekranie wyświetlane jest menu z szeregiem opcji.
Autor listingu: Michał Szuniewicz
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: zx_fotografia_bajtek4-1987-t2e.pl.7z
-
Tenis - Mikrusek
Program Szymona Herera (lat 11) z Warszawy. Program wzorowany jest na jeszcze niedawno bardzo popularnych grach telewizyjnych i polega na odbijaniu piłki od ścianki Pomysł nie jest więc nowy, ale realizacja bardzo ciekawa. Gratuluję!
Autor listingu: Szymon Herera
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: spectrum_tenis_bajtek51987-t2e.pl.7z
-
Użyteczny Hazard
Grę w orła i reszkę odnaleźć można bez trudu w symulacjach metodami Monte Carlo, czy też w wielu problemach fizyki statystycznej, w tym np. fizyki statystycznej magnetyków. Krótko mówiąc: wszędzie tam, gdzie mamy do czynienia z tzw. schematem do świadczeń Bernoulliego.
Aby lepiej zrozumieć, na czym polega ta konstrukcja, uruchom program, którego listing przedstawiono na rys. 1. Po wprowadzeniu np. cyfry 0 komputer rozpoczyna wyświetlanie strzałek, przy czym prawdopodobieństwo elementarne tego, że pojedyncza strzałka jest skierowana do góry wynosi p. Inaczej mówiąc, aby narysować pojedynczą strzałkę komputer losuje najpierw liczbę pseudolosowg RND z przedziału 0,1. Jeżeli liczba ta jest mniejsza od p, wówczas komputer rysuje strzałkę skierowaną do góry (ewentualnie żeton czarny), w przeciwnym razie strzałkę skierowaną w doł ekranu (ewentualnie żeton biały).Autor listingu: dr hab. Ryszard Kutner
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Autonumber 64
Wprowadzanie dłuższych programów w BASIC-u można sobie ułatwić i jednocześnie przyspieszyć stosując automatyczne numerowanie linii. Niestety Commodore 64 nie daje nam bezpośrednio takiej możliwości i dlatego też proponuję program AUTONUMBER, który pozwoli nam zrealizować tą przydatną funkcję.
Po wczytaniu oraz uruchomieniu programu wpisać:←X i wcisnąć RETURN.
X oznacza tu liczbę z przedziału 1-255 równą krokowi numeracji. Po wykonaniu tej operacji wpisujemy normalnie kolejne linie programu z tym, że ich numery będą pojawiać się na ekranie automatycznie. Jeżeli nie określimy kroku (wpisanie samej strzałki) to będzie on przyjęty jako równy 10.
Po wyzerowaniu komputera (SYS 64738 lub kombinacją STOP i RESTORE) program można ponownie wywołać za pomocą SYS 53111. Wciśnięcie klawisza RETURN przv wyświetlonym kolejnym numerze linii powoduje wyjście z programu.
Autor listingu: Fulgenciusz Głowiński na pd. „DIE NEUE DATA WELT" 1/85
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: autonumber64_bajtek5-1987-t2e.pl.7z
-
Kopiowanie ekranu na drukarce
Opisany poniżej program przeznaczony jest dla Commodore 64 lub 128 (w trybie C-64) oraz drukarek MPS 801, 802, 803 (nr urządzenia 4), a także dla plottera 1520 (nr urządzenia 6) i pozwala na natychmiastowy wydruk zawartości ekranu co może być bardzo pomocne podczas sporządzania programów, dokumentacji, listingów itp.
Program uruchamia się za pomocą SYS 49152 (także po wyzerowaniu komputera np. przez SYS 64738). Sterowanie odbywa się za pomocą klawiszy funkcyjnych F1, F3, F5 i F7. Dwa pierwsze umożliwiają zmianę koloru ramki i tła; F5 powoduje wydruk za wartości ekranu, a klawisz F7 zatrzymuje program (można też wcisnąć jednocześnie STOP i RESTORE). Ponieważ program wykorzystuje wewnętrzny system przerwań komputera, możliwe jest drukowanie za wartości ekranu w dowolnym momencie; także kursor porusza się szybciej niż zwykle.
Użycie klawisza F5 bez włączonej drukarki spowoduje zablokowanie komputera, a więc także programu głównego. Z tego powodu zaleca się sprawdzenie gotowości do pracy samej drukarki przed przystąpieniem do drukowania zawartości ekranuAutor listingu: Jerzy Żukowski na pd. MICRODOR
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Turbo16
TURBO 16 pozwala na przyspieszone wczytywanie programu zwykłą instrukcją LOAD. Program przeznaczony do przyspieszonego ładowania musi być jednak uprzednio odpowiednio zapisany. Służy do tego poniższy program. Po wpisaniu należy go zapisać na osobnej kasecie. Następnie program uruchamiamy, i jeśli ukaże się napis „O.K.", oznacza to, że dysponujemy poprawnym programem.
Gdy szczęśliwie przebrniemy przez uruchomienie, należy załadować program przeznaczony do późniejszego przy spieszonego ładowania i zapisać go rozkazem SAVE "NAZWA", 7. Jeśli chcemy by program sam się uruchamiał, piszemy SAVE"NAZWA",7,1. Raz za ładowane TURBO działa poprawnie do momentu wyłączenia komputera lub załadowania innego pro gramu, mogącego zakłócić jego działanie (np. gry napisanej w języku maszynowym).
Wzbogacenie programu - listing zawiera korektę opublikowaną w Bajtku 10/1987.Autor listingu: MS
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
5Listing wzbogacony - uruchamia się na emulatorze lub realnej maszynie, przepisujący listing wzbogacił go o swoje rozwiązania
-
Kubuś Ratuje Królewnę
Pamiętacie przygody Kubusia w Tajemniczym Zamku z numeru 8/86 „Bajtka"? Jeden z moich przyjaciół - przedszkolaków powiedział mi wtedy: „to fajna gra, ale można w nią grać tylko raz: potem już zawsze wiadomo co robić". To prawda, w tym przypadku chyba większą frajdą było wymyślanie i pisanie programu (świadczy o tym cała masa listów z podobnym grami) niż sama zabawa. Nasz dzisiejszy program będzie — mam nadzieję — ciekawszy dla grającego.
Wyspa Smoka w naszym programie to coś w rodzaiu wielkiej szachownicy o wymiarach 40x40 kratek. Po niektórych polach Kubuś może poruszać się swobodnie, na inne, z kolei nie może we|ść — to np. skały, mury. Komputer przestawia (w sposób dla nas niewidoczny) postacie na tej szachownicy i sprawdza ich wzajemne położenie.Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: cpc_krolewna_bajtek51987-t2e.pl.7z
-
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-EDITORAutor listingu: Wojciech Zabołotny
Listing nadesłał: Dely
Język programu: Atari Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Projektor Filmowy
Od pewnego czasu interesowała mnie możliwość realizacji filmów animowanych na komputerze tak prostym, jak Spectrum. Niniejszy pro-gram jest efektem tych poszukiwań. W poszukiwaniu rozwiązania zabrałem się do obliczeń. Ile obrazów możemy pomieścić w 48 KB RAM? To proste: pamięć obrazu zajmuje 6912 bajtów; BASIC daje użytkownikowi nieco ponad 40 KB. Daje to w sumie 6 „ekranów" plus jeden w swoim zwykłym miejscu — pod adresem 16384. Razem siedem kadrów filmu, z których każdy zajmuje cały ekran. Gdybyśmy jednak wykorzystywali jako klatkę filmu tylko część ekranu ...Pytanie, jak ową część ekranu wybrać staje się proste po przyjrzeniu się strukturze odwzorowania obrazu w pamięci. Mianowicie z 6912 bajtów równo 6 KB zajmuje rysunek, reszta — to kolor atrybuty obrazu. Z kolei pamięć rysunku podzielona jest na 3 sektory po 2 KB. Widać je wyraźnie podczas wczytywania obrazków z magnetofonu. Zrezygnowałem z koloru i odrzuciłem dwa sektory ekranu, zamierzając w charakterze klatki filmu wykorzystać tylko środkowy. W ten sposób da się pomieścić 16 kadrów w 32 KB, przy czym pozostaje jeszcze dość miejsca na ewentualną rozbudowę programu oraz swoboda w wykorzystywaniu ekranu poza „projekcją". 16 kadrów umieściłem w górnych 32 KB pamięci, nazywając je kolejnymi literami alfabetu (a..p). Zadanie przepisania zawartości kadru na ekran pełni krótka procedura w języku maszynowym. Zainteresowanych jej działaniem odsyłam do artykułu „jak schować obrazek" z „Bajtka" nr 8/86. Kodu maszynowego użyłem oczywiście przez konieczność maksymalnego przyspieszenia działania procedury. Funkcje programu wywoływane są przy pomocy menu ukazującego się w dwóch dolnych liniach ekranu.
Autor listingu: Marcin Waligórski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
-
Mikrusek - Kolędy, Słowa
Prezentujemy propozycje Grzegorza Rowińskiego (lat 11) z Warszawy.
Grzegorz przysłał dwa programy napisane na mikrokomputerze Amstrad. Pierwszy z nich (po prawej) jest programem muzycznym i daje nam możliwość wysłuchania czterech kolęd. Nie byłoby w tym pewnie nic ciekawego — program wykorzystuje zaledwie ułamek możliwości muzycznych Amstrada — gdyby nie fakt, że Grzegorz bardzo sprytnie wykorzystał linie DATA z podobnego programu na Spectrum.
Programowanie dźwięku w Spectrum i Amstra-dzie odbywa się na całkowicie różnych zasadach. Okazuje się jednak, że komputer w rękach sprytnego programisty może sobie poradzić także z takim kłopotem. Tajemnica tkwi w liniach 70 i 80, w których następuje tłumaczenie muzycznego zapisu Spectrum na zrozumiały dla Amstrada.
Drugi program Grzegorza (poniżej) służy do sortowania — układania w kolejności alfabetycznej dowolnych słów. Co prawda przyjęty algorytm sortowania wymaga wykonania dużej liczby operacji i skutkiem tego, sortowanie większych zbiorów trwa dość długo. Niemniej jednak program działa poprawnie i może być przydatny chociażby ze względu na swą prostotę. Przede wszystkim zaś jest to program napisany samodzielnie.Autor listingu: Grzegorz Rowiński
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek-387--cpc-mikrusek-t2e.pl.zip
-
Bzzz
Program „BZZZ” jest wersja znanej gry „Light CYCLE”. Dla tych, którzy jej nie znają — w skrócie zasady gry.
Przeznaczona jest ona w zasadzie dla dwóch osób, choć jedną z nich, a nawet obydwie, może zastąpić komputer. Każdy z graczy steruje punktem, przepraszam wspaniałym, transgalaktycznym światłolotem, który poruszając się zostawia za sobą ślad (oczywiście smugę światła z fotonowego silnika). Celem każdego z graczy jest jak najdłuższe unikanie zderzenia ze śladem własnym, śladem pozostawionym przez przeciwnika, brzegiem ekranu i poławiającymi się od czasu do czasu „przeszkadzajkami” oraz utrudnianie tego samego przeciwnikowi poprzez zajeżdżanie mu drogi, spychanie na brzeg ekranu czy zamykanie w małych obszarach. Począwszy od startu rośnie stawka, która przypada zwycięzcy, tzn. graczowi, który zdołał dłużej uniknąć zderzenia.
Gra kończy się, gdy jeden z graczy uzyska 1000 punktów. Sterowanie odbywa się z klawiatury: dla gracza pierwszego są to klawisze „Z”, „X”, „Q”, „A”, a dla drugiego klawisze „M”, „Symbol Shift”, „P” i „ENTER”. Na początku każdej gry trzeba określić ilu graczy weźmie w niej udział, prędkość poruszania się punktów oraz włączyć lub wyłączyć dźwięk.
Gra „BZZZZ” (nazwa pochodzi od dźwięku wydawanego przez silniki kosmolotów) jest jeszcze mniej skomplikowana niż „Jumping Jack”, ale moim zdaniem bardziej wciągająca. (Pod warunkiem, że grają dwie osoby, ponieważ komputer nie jest zbyt ciekawym partnerem).
Jeżeli nie posiadasz „LIGHT CYCLE” a zainteresował Cię opis „BZZZZ”, pierwsze co musisz zrobić, to wprowadzić do komputera „Program 2” i nagrać go na taśmę instrukcjami:
LET a$ = CHR$ 22 + CHR$ 1 + CHR$0 + „BZZZZ” + CHR$ 6: SAVE a$ LINE 10
Wprowadź teraz do komputera (usuwając część właśnie nagraną na taśmę) „Program 3” i uruchom go instrukcją RUN. Będziesz teraz pytany 90 razy o linijki kodu maszynowego w zapisie heksadecymalnym (szesnastkowym), który umieszczony jest w „Programie 1”. Każda linijka składa się z 28 znaków, z których pierwsze 24 to 12 bajtów programu, a ostatnie 4 to suma kontrolna (suma 12 bajtów w jednej linijce), która umożliwia wykrycie błędów.
Po wprowadzeniu całości właściwy program nagrywany jest automatycznie za już umieszczoną na taśmie częścią „BZZZZ”.Autor listingu: Wojtek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: bajtek-387-spectrum-bzzz-t2e.pl.zip
-
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:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: polskie_znaki-t2e.pl.cas
-
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:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Trzy Wymiary Pascala
Oto prosty program na ZX-Spectrum rysujący trójwymiarowy obraz funkcji dwóch zmiennych. Programu takiego poszukiwałem od dawna, chcąc na prowadzonych przeze mnie zajęciach pokazać studentom pewne rzeczy w sposób jak najbardziej obrazowy.
Autor listingu: Wojciech Stanisz
Listing nadesłał: Faust
Język programu: Pascal
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: wykres3d_pascal-b2-1987-t2e.pl.zip
-
Węże
Pomysł stary jak gry telewizyjne — realizacja nowa. Zagrać można z kolegą lub z komputerem. Zasada jest prosta: odetnij mu drogę.
Listing posiada przynajmniej jeden błąd do poprawy dla cierpliwych - pierwsza potyczka z komputerem kończy się wygraną Amstrada.Nietestowany tryb dwóch graczy.
Autor listingu: Sergiusz Wolicki
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: cpc-bajtek-21987_weze-t2e.pl.7z
-
Słownik dowolnego języka
Program „słownik" może zastąpić słownik dowolnego języka, pozwalając zmagazynować w pamięci komputera wiele tysięcy słów i umożliwiając ich błyskawiczne wyszukiwanie. Wprowadzony zestaw słów można zapisać na taśmie. Współpraca z magnetofonem odbywa się w systemie TURBO.
Obsługa programu jest prosta. Wyboru funkcji dokonujemy naciskając klawisze F1—F7. W przypadku pracy z magnetofonem musimy po naciśnięciu F7 nacisnąć jeszcze klawisz L lub S (Load lub Save). Przy zapisywaniu słownika na taśmie należy podać nazwę pliku.
Klawisz RESTORE w każdej chwili uruchamia program od początku nie powodując utraty danych.Autor listingu: Marcin Włoczewski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Zgadywanka
Jeżeli mamy pod ręką jakiś komputer, ot zwykłe Spectrum czy Commodore, to możemy zaprezentować "Inteligentną maszynę" mądrzejszą od niejednego z nas. To nie dowcip! Któż z nas potrafi w sześciu pytaniach zgadnąć np. państwo europejskie, które sobie pomyślałem, jeżeli na zadawane mi pytania odpowiadam tylko "tak" lub "nie"? A komputer potrafi. Dziele się to tak: uruchamiamy komputer i wprowadzamy program. Maszyna proponuje "Pomyślcie sobie jakieś państwo europejskie". Porozumiewając się na migi, aby komputer nie mógł podsłuchać, decydujemy się np. na Francje. Teraz komputer zadaje pytania. Po kilku zaczyna być widoczne, że maszyna już coś podejrzewa, że już chyba wie, a tylko sprawdza naszą wiedzę. W końcu ostatnie pytanie: "Czy tym państwem jest Francja?" Dobra - mówimy sobie - to było łatwe. Spróbujmy Islandię - zgadł, San Marino - też zgadł. W dodatku za każdym razem pytał o coś innego, więc chyba rzeczywiście myśli.
Autor listingu: Leszek Rudak
Listing nadesłał: Faust
Język programu: BASIC
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
-
Karuzela
Obrazki przypominają dobrze znane efekty działania programu VU-3D, stworzył je jednak programik w skondensowanej wersji mieszczącej się w 40 wierszach języka BASIC. Jego najbardziej szokującej możliwości nie sposób jednak przedstawić w statycznej ilustracji: bryły te są... ruchome. Obracają się wokół swej pionowej osi w tempie ok. 40 obrotów na minutę! Powstaje złudzenie ruchu nie gorsze niż przy oglądaniu TV. Jest to oczywiście możliwe tylko dzięki ich wysokiej symetrii, gdyż cały ruch jest wynikiem złożenia tylko sześciu ekranów, jakie mieści pamięć ZX Spectrum.
Autor listingu: brak
Listing nadesłał: Faust
Język programu: BASIC
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Bierki
Gra w bierki jest stara jak świat. Zasada jest prosta: grający biorą na przemian przedmioty z jednej kupki. Trzeba zabrać zawsze co najmniej jeden przedmiot. Maksymalna liczba jednocześnie zabieranych przedmiotów zależy od umowy. Wygrywa ten, kto weźmie ostatni przedmiot.
Spróbujmy nauczyć komputer gry w bierki, ale w nieco trudniejszej wersji. Rozłóżmy 12 patyczków na trzy kupki. W pierwszej kupce niech będzie 5 patyczków, w drugiej — 4, a w trzeciej trzy. W naszej grze można wziąć jednocześnie dowolną liczbę patyczków, ale tylko z jednej kupki. Oczywiście za każdym razem trzeba wziąć choć jedną. Kto weźmie ostatni patyczek (lub kilka ostatnich) wygrywa.
Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: [cpc][bajtek1987]bierki-t2e.pl.7z
-
Łapacz Liter
Zasady gry „Łapacz liter" są bardzo proste. W momencie „urwania" się litery trzeba nacisnąć odpowiadający jej klawisz. Im szybciej to robimy, tym lepszy jest wynik. W miarę upływu czasu zwiększa się poziom trudności. Gra bardzo pomaga w opanowaniu klawiatury rzecz istotna przy posługiwaniu się komputerem.
Autor listingu: MS.
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
-
Kardioidy
Program ten kreśli miły dla oka wzór, złożony z odbitych symetrycznie krzywych, zwanych kardioidami.
Krzywe te opisane są równaniem parametrycznym:
x = y*(1 -cos(k))*cos(k)
y = r*(1 -cos(k))*sin(k)
gdzie 0 <= k <= 2n
Geometrycznie krzywa ta może być interpretowana jako droga punktu okręgu, toczącego się (zewnętrznie) po okręgu o tym samym promieniu.
Rysunek kreśli się długo, co spowodowane jest powolnym obliczaniem wartości funkcji trygonometrycznych przez Spectrum — aż czterech w każdym kroku algorytmu.
Zmienna "Rozdzielczość" określa dokładność tworzonego rysunku. "Promień" jest proporcjonalny do jego wielkości, zaś "Gęstość" wyznacza ilość krzywych, składających się na jedną połowę wzoru.
Wykreślenie jednego rysunku nie jest jednak kresem możliwości naszego programu (inaczej niewielki byłby z niego pożytek). Zmieniając równania parametryczne krzywych — np. znaki + na -, funkcje SIN i COS oraz parametry K i R — możemy uzyskać cały szereg nowych, interesujących deseni.
Autor listingu: M.W.
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
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:
4Listing 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:
4Listing 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:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: [atari]nessie-bajtek1-1987-t2e.pl.7z
-
ALGEBRAF
Dziś proponujemy doskonalenie się w arytmetyce przy zabawie spopularyzowanej przed laty przez tygodnik ITD - krzyżówce arytmetycznej, czyli algebrafie.
Zasady gry są proste: trzeba odgadnąć 9 cyfr (dokładniej: liczb jednocyfrowych), które należy wpisać w diagram w taki sposób, by powstało sześć wyrażeń arytmetycznych (trzy pionowo i trzy poziomo) o podanych wartościach. W wyrażeniach zachowano normalną kolejność działań: mnożenie zawsze wykonuje się przed dodawaniem lub dejmowaniem.
Algebraf może mieć więcej niż jedno poprawne rozwiązanie: układ sześciu równań z dziewięcioma niewiadomymi może mieć ich nieskończenie wiele, gdy jednak dopuszczamy tylko rozwiązania w liczbach całkowitych (czyli, jak powiedziałby matematyk, rozważamy tzw. równanie diofantyczne) rozwiązań nie bywa więcej niż trzy. Program akceptuje oczywiście każde poprawne rozwiązanie, także różne od proponowanego przez komputer.Autor listingu: bd
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: komputer-21986-algebra-t2e.pl.zip
-
Życzenia od Komputera
Popatrzcie na ten maleńki program. Wiecie już jaki będzie efekt jego działania? Jeśli nie, to koniecznie go wpiszcie i przekonajcie się sami. Cała tajemnica jest oczywiście ukryta w linii 20. Spróbujcie odgadnąć co ukrywa się W komórce pamięci o numerze 23606. Jeśli się to wam nie uda, zaglądnijcie do podręczników obsługi Spectrum lub też do poprzednich numerów „Bajtka". .
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Circle
Zamieszczony poniżej program służy do rozszerzenia BASIC-a Amstrada o dodatkowa komendę CIRCLE.
Komendę tę wywołuje się przez pionową kreskę SHIFT + @ tak, jak np. instrukcje obsługi stacji dysków. Składnia instrukcji jest następująca:
CIRCLE,x,y,r x,y
- współrzędne środka okręgu
r - promień okręgu
Podobnie jak w Spectrum komenda ta rysuje okrąg o zadanych parametrach, nie zmienia jednak pozycji ostatniego narysowanego ounktu. Współrzędne środka okręgu podlegają tym samym prawom, co współrzędne instrukcji PLOT i DRAW (tzn. ten sam zakres, ORIGIN).
Algorytm tej komendy w BASIC-u podajemy obok. Loader w BASIC-u jest tak na pisany, że zapewnia relokowalność programu tzn. można umieścić kod maszynowy pod różnymi adresami w pamięci. Adres początkowy należy umieścić w linii 260 przypisując go zmiennej a. Spośród linii 370-390 należy wybrać tę, która odpowiada posiadanemu modelowi Amstrafa Schneidera. W liniach DATA ukryte są sumy kontrolne zapewniające kontrolę poprawności wpisywania programu. Jeżeli zdecydowaliśmy się na jeden adres początkowy, to po uruchomieniu loadera możemy podać komendę
SAVE "CIRCLE",b,a,495
i potem ładować komendę do pa mięci rozkazami
MEMORY adr-1:LOAD "CIRCLE"
CALL adr
gdzie adr oznacza ustalony adres początkowy - dawna wartość zmiennej a.
Autor listingu: Sergiusz Wolicki
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
1Listing przepisany - zawiera błędy, nieuruchamia się na emulatorach lub realnej platformiePobierz: cpc_bajtek_1286_kolo-t2e.pl.zip
-
Ruchome Literki
Kilka dodatkowych linii na początku programu pozwoli na interesującą prezentacje jego tytułu i autora.
Wystarczy w tym celu, począwszy od linii 110, napisać odpowiedni tekst a$, który będzie wyświetlany w linii y ekranu. Podprogram w liniach od 30 do 100 realizuje ruch liter w następujący sposób:
Dla zmieniającej się wartości i tworzony jest z łańcucha tekstowego a$ jednoznakowy łańcuch b$=mid$(a$,i,1), wyświetlany następnie na pozycji j,y (linia 60) i kasowany spacją na poprzedniej jego pozycji j + 1,y (linia 70). Linia 50 określa kolumnę j, w której ma być wyświetlony, znak począwszy od prawej strony ekranu. Ruch znaku w lewo zapewnia zamknięcie pętli w linii 80. Jednocześnie w linii 50 człon 20-len(a$)/2 + 1 lokalizuje napis w środku ekranu. Linia 90 wprowadza małe opóźnienie w pojawianiu się kolejnych liter napisu. Możliwe jest rów nież korzystanie z MOD 0 i MOD 2. Należy w tym celu zmodyfikować linię 20, wpisując zamiast MODE 1 inny wybrany tryb pracy. W linii 50 trzeba również uwzględnić ilość kolumn ekranu zmieniając odpowiednio: przy MOD 0 39 na 19 i 20 na 10 przy MOD 2 39 na 79 i 20 na 40
Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: cpc_bajtek_1286_ruchliter-t2e.pl.zip
-
Choinka
Święta za pasem, najwyższy czas zabrać się za ubieranie choinki. Zanim jednak stanie w waszym domu prawdziwa choinka, warto trochę potrenować. Oczywiście pomoże wam komputer.
Na naszej komputerowej choince zawieszać będziemy tylko bombki i gwiazdki. Nie będzie to jednak takie łatwe. Otóż bombka jest dwa razy cięższa niż gwiazdka i — aby nasza choinka nie przewróciła się — musimy powiesić ją na gałązce dwa razy dalej.
W fizyce nazywa się to zasadą dźwigni dwustronnej, lub — jeszcze mądrzej — równowagą momentów sił. Prawa te mówią, że każdy ciężar możemy zrównoważyć na huśtawce ciężarem o połowę mniejszym, jeśli umieścimy go dwa razy dalej od środka. Na tym właśnie będzie polegała nasza zabawa. Gwiazdka musi być zawieszona na gałązce o połowę bliżej pnia niż bombka. Jeśli się pomylimy, choinka przewróci się.
Bądźcie więc ostrożni!
Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: cpc_bajtek_1286_choinka-t2e.pl.zip
-
Biorytmy
Jeśli czujesz się fatalnie, łamie cie w kościach a głowa spuchła ci jak bania, to z pewnością dlatego, że krzywa fizyczna twojego cyklu biologicznego przecięła się z osią.
Pokłóciłeś się z dziewczyną i pobiłeś kolegę z pracy - to emocjonalny dzień krytyczny. Dostałeś cztery lufy w ciągu trzech lekcji, wiadomo, kryzys intelektualny. To więcej niż pewne! Chyba, że... w pierwszym przypadku łapie cię grypa, w drugim - mucha usiadła ci na nosie, a w trzecim - bez reszty pochłonęło cię błogie lenistwo.
Co by jednak nie mówić o biorytmach - niezależnie, czy się w nie wierzy, czy też nie - mają one jedną nieocenioną zaletę: niezmiernie rzadko zdarza się, że jesteśmy sprawni pod każdym względem. A więc gdy coś nam nie wyjdzie, np. oblejemy egzamin, wystarczy obliczyć sobie biorytm i mamy już spokojne sumienie. Bo przecież, choć intelektualnie stoimy zupełnie nieźle, to fizycznie... lepiej nie mówić i w dodatku emocjonalnie też spadamy. Wszystko przez te nerwy!
Myślę, że przekonałem najbardziej nawet sceptycznych czytelników o użyteczności programu do obliczania biorytmów, tym bardziej, że jest to program, który może działać na każdym mikrokomputerze. Jedynie posiadacze Spectrum będą musieli zmienić wszystkie oznaczenia zmiennych łańcuchowych na jednoliterowe, ale to przecież drobnostka.
Działanie programu jest proste i nie wymaga specjalnego komentarza. Tym bardziej, że program komentuje się sam, poprzez oznaczenia zmiennych.
Najpierw komputer liczy ilość dni, które przeżył badany, następnie oblicza reszty z dzielenia ilości dni przez długości cykli i na tej podstawie określa jego fizyczną, intelektualną i emocjonalną kondycję w danym dniu. Teraz tylko dobrać odpowiedni komentarz i sprawdzamy co będzie jutro.
A tak przedstawiała się moja sytuacja w dni pisania tego programu. Jeśli więc coś będzie nie tak, sami widzicie, że nie jestem w najlepszej formie psychicznej...
Roman PoznańskiAutor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: cpc_bajtek_1286_biorytmy-t2e.pl.zip
-
Strażnik Banku
Po długiej podróży dotarłeś do Gun City. Celem wędrówki było zdobycie pracy i szczęśliwym trafem tutejszy bank pilnie potrzebował strażnika. Otrzymałeś służbowego colta i usiadłeś sobie w kacie pilnie bacząc na to kto wchodzi. Drzwi się otwierają i... wchodzi jakaś dama pragnąc wpłacić swoje oszczędności.
Przez drugie drzwi znienacka usiłuje wtargnąć jakiś oprych. Wyciąga pistolet ale ty jesteś szybszy. Nagle w drugich drzwiach ukazuje się żądny krwi bladych twarzy indianin, ale już po chwili jego duch wędruje do Manitou. Znowu byłeś lepszy. I znowu ktoś otwiera drzwi. Strzelasz bez zastanowienia i Bogu ducha winny farmer wita się ze Św. Piotrem Lecz na szczęście tutejszy szeryf jest pobłażliwy i zawsze mówi: „do trzech razy sztuka". Ktoś wchodzi. Teraz uważnie go oglądasz. Błąd! Jego słów - „Jestem szybszy!" słuchasz już w towarzystwie świętego Piotra.
Tak, szanowny czytelniku, może wyglądać i twoja historia jeśli zadasz sobie trud i mozolnie „wstukasz" poniższy program do Twojego Spectrum. Teraz dam Ci kilka praktycznych wskazówek. Duże litery w cudzysłowach w liniach 70-410 należy wprowadzać w trybie graficznym, tzn. C.SHIFT + 9. Wówczas na ekranie otrzymamy kursor "G". Powrót do normalnego kursora odbywa się analogicznie. Można zmienić wartość punktacji przez zamianę w linii 4020 wartości 100 na taką jaka Ci będzie odpowiadała. Możesz efekt strzału zaczerpnąć z 1go numeru nowego Bajtka. Możesz robić z tym programem co tylko Ci się podoba, bowiem żadne prawa autorskie nie są zastrzeżone. Acha, jeszcze dla ułatwienia dodam, że im wyższą liczbę podasz przy pytaniu o stopień utrudnienia, tym łatwiej będzie Ci się grało. Radził bym jednak nie przesadzać, gdyż przy b. wysokiej liczbie program staje się powolny i po prostu nudny.
Sterowanie odbywa się klawiszami 1,2,3; klawisz 1 odpowiada pierwszym drzwiom od lewej itd.
Dobrego refleksu!Autor listingu: Grzegorz Zatryb
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Monitor - Pamięć pod lupą
Podczas pracy na komputerze przydatna jest czasem możliwość „podglądania” zawartości pamięci lub jej modyfikacji. Wymagania takie spełnia przedstawiony tutaj prosty program, nazwany monitorem. Na podstawie Amstrad Magazine
Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnościąPobierz: 0056th15_cpcbajtek111986monitor.7z
-
Trochę ruchu - wędrujące litery
Nagrodą za pracowite „wstukanie” programu będzie nie tylko ruchoma reklama „Bajtka”. Zmieniając tekst w liniach od 120 do 180 możemy również zareklamować własne umiejętności. Program wykorzystuje możliwość programowania układu scalonego 6845, czyli kontrolera ekranu w Amstradzie. Wysokość tekstu może być zmieniona od normalnego wymiaru znaku, a więc jednej linii aż do 16-tu linii (patrz końcowe cyfry w liniach DATA).
Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Kubuś Telegrafista
Mogłoby się wydawać, że w dobie łączności satelitarnej i komputerów, wielki wynalazek pana Morse'a, jego słynny alfabet, powinien trafić do lamusa. Okazuje się jednak, że nie nastąpi to tak prędko. Zasadę zna każde dziecko — grupy krótkich i długich sygnałów dźwiękowych zastępują litery. Kłopot tylko w tym, żeby nauczyć się rozumieć ten ciąg pisków. Nasz program służy właśnie do tego. Uczeń może wybrać sobie jedną z pięciu prędkości nadawania. Może również skorzystać ze ściągawki w postaci graficznego przedstawienia sygnałów (kropki i kreski) lub z niej zrezygnować. Komputer nadaje kolejno pięć losowo wybranych słów. Po każdym słowie zaczyna odliczać czas. Teraz odpytywany musi możliwie najszybciej napisać odczytane słowo i na koniec nacisnąć klucz spacji. Czasy poszczególnych odpowiedzi są sumowane, oczywiście za każdym razem komputer sprawdza prawidłowość odpowiedzi i wysyła na ekran odpowiedni komunikat. Za każdy błąd dolicza umowną ilość sekund. Po pięciu próbach następuje obliczenie punktów karnych i wydruk końcowego wyniku na ekranie. Egzamin skończony.
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
-
Tape Copier aka 46kb Tape Copier
Jeżeli wykażesz odrobinę cierpliwości to już za godzinę będziesz posiadaczem programu kopiujacego, który wzbogaci bibliotekę programów Twojego ATARI 800 XL.
Autor listingu: Dariusz Adamowski
Listing nadesłał: Faust
Język programu: Atari Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Renumeracja
Przedstawiam program ZX-Spectrum, służący do automatycznej renumeracji linii. Z wielu innych programów tego typu wyróżnia go: szybkość działania,początek renumeracji rozpoczyna się od linii wskazywanej przez kursor programowy (co go różni od innych tego typu programów) — bardzo przydatne, wartość skoku linii może mieć dowolną liczbę i jest relokowalny...
Autor listingu: Andrzej Dziarnowski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 2131th07_zxbajtek1186renumerator.zip
-
Wykres
Program „Wykres” służy do przedstawiania danych liczbowych w postaci pseudotrójwymiarowych słupków. Na początku program pyta się o tytuł wykresu. Można wpisać dowolny tekst, jednak tylko pierwsze 32 znaki będą przyjęte. Następnie program pyta się o rodzaj skalowania. Jeśli wybrane zostanie skalowanie automatyczne wówczas wykres będzie skalowany według największego słupka, jeśli nie — program spyta o wartość według której odbędzie się skalowanie.
Autor listingu: Michał Szuniewicz
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: 2044th07_zxbajtek1186slupki.7z
-
Test na jasnowidzenie
Program ten jest adresowany do wszystkich, którzy mniej lub bardziej na poważnie biorą zjawiska spostrzegania pozazmysłowego. Pozwala na przetestowanie możliwości w tym zakresie. Nie należy tego brać na serio, gdyż nikt jeszcze nie stwierdził czy komputerowi można czytać w „myślach”.
Autor listingu: Grzegorz Zatryb
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Program Katalog
Przy pomocy programu „KATALOG” możemy prosto i bez wysiłku utworzyć wykaz posiadanych programów łącznie z określeniem typu programu (np. BASIC, kod maszynowy, dane), długości i linii od której program startuje. Odczytane z taśmy magnetofonowej nagłówki programów uzupełniamy numerami licznika magnetofonowego, które pozwolą nam na szybkie odnalezienie szukanego tytułu. Wybierając odpowiednie funkcje programu możemy dokonać weryfi kacji tytułów na ekranie lub wydrukować cały spis na drukarce. Program korzysta z instrukcji LPRINT tak jak dla drukarki ZX PRINTER lub SEIKOSHA GP 50. Mając do dyspozycji inną drukarkę należy dołączyć do programu „KATALOG” program jej obsługi, umożliwiający korzystanie z tej instrukcji. Należy przy tym pamiętać o obszarach pamięci mikrokomputera zajętych przez kod maszynowy.
Autor listingu: Konrad Fedyna, Zygmunt Wereszczyński, Andrzej Ciepliński
Listing nadesłał: Tygrys@Speccy.pl
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: 0138th13_zxbajtek1086katalog.zip
-
Pióro świetlne - program obsługi
Przykładową realizację programową obsługi pióra, umożliwiającą wybór zaprogramowanych opcji, przedstawiono na wydruku. Pozwala on wykorzystać pióro świetlne wzorując się na popularnej „myszy”. Podstawową część programu stanowią linie od 9000 do 9120. W części tej ładowany jest kod maszynowy obsługujący port 254, do którego podłączone jest pióro i obliczający, w którym z 21 wierszy na ekranie jest umieszczone. Numer zdekodowanego wiersza znajduje się w zmiennej „a” (linia 100). Wykorzystanie informacji tam zawartej jest już proste lecz wymaga pomysłowości i inwencji od piszącego program. Linie programu od 10 do 140 prezentują sposób realizacji trzech przykładowych procedur wybieranych piórem świetlnym. Linia 9999 pozwala zapisać program na taśmie magnetofonowej umożliwiając jego autostart po ponownym wczytaniu do mikrokomputera.
Autor listingu: Konrad Fedyna, Zygmunt Wereszczyński
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Test oczu i uszu
Ten program sprawdzi czas Twojej reakcji na nieoczekiwanie pojawiający się znak na ekranie i sygnał dźwiękowy. Podobny jest do testów psychomotorycznych, którym poddawani sa kierowcy, piloci i kosmonauci.
Autor listingu: Tomasz Pyć
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
GrafikaParę linijek kodu generujący prostą grafikę.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 0113th30_grafika_zx_spectrum.zip
-
Muzyka Robota
Jeśli umieścicie w swoim programie linie od 40 do 190 jako podprogram, możecie zilustrować muzycznie np. czołówkę (okładkę) zaprojektowanej gry. Należy wykorzystać przy tym instrukcje GOSUB i RETURN, a także odpowiednio do potrzeb przenumerować linie powyższego programu. Melodia łatwo „wpada w ucho"
Autor listingu: Tomasz Pyć
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Alibaba
Znacie bajkę o Alibabie i czterdziestu rozbójnikach? Znacie! A więc zabawmy się razem. Pamiętacie na pewno, w jaki sposób sprytni zbójcy strzegli swych skarbów. Mieli kryjówkę w skale, która otwierała się tylko na odpowiednie hasło. (Pamiętacie jakie?) Hasło znał tylko herszt bandy i tylko on — do czasu aż w całą sprawę nie wmieszał się jeszcze sprytniejszy Alibaba — mógł otworzyć skarbiec. A może wy także macie jakieś skarby do ukrycia, może na przykład jakiś specjalny program, którego nie chcecie pokazać kolegom. Jest na to sposób. Wystarczy umieścić przed waszym programem przedstawiony tutaj podprogram. Pyta on o hasło i przechodzi do wykonywania właściwego programu tylko w przypadku podania prawidłowej odpowiedzi.
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 0034th13_cpcbajtek_10-86alibaba.zip
-
Zegar
Program napisany został początkowo w języku assemblera i skompilowany. W celu udostępnienia go również tym, którzy nie posiadają kompilatora został przetłumaczony na ciąg instrukcji DATA (linie 111-200 programu). Instrukcje 101-110 zawierają procedurę służącą do zapisania programu zegara na kasecie. Zegar przystosowany jest do współpracy z interpreterem BASIC-u i działa „równolegle" z nim. Ładowanie zegara z kasety odbywa się przez operację pulpitową: należy wcisnąć klawisz START i włączyć komputer. Po załadowaniu powinien zgłosić się interpreter BASIC-u. Zegar posiada wbudowaną możliwość ustawiania daty i czasu za pomocą klawiszy konsoli..
Autor listingu: Marek Markowski
Listing nadesłał: Faust
Język programu: Atari Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 0016th13_ataribajtek10-1986zegar.zip
-
Wycinanki
Prosty program w Basicu, generujący dość psychodeliczne wzorki;)
Autor listingu: bd.
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Pierwszy Polski Kompilator Na Spectrum
Kompilator TOBOS-FP (TOruń BOrkowski Skaba) jest, o ile nam wiadomo, pierwszym całkowicie opracowanym w Polsce kompilatorem zmiennopozycyjnym dla mikrokomputera ZX "Spectrum". Biorąc pod uwagę szybkość działania, zgodność z interpreterem BASICA na ZX "Spectrum" oraz szeroko rozumiana prostotę użycia przewyższa on znane kompilatory produkcji zachodniej takie, jak FP48K-V1.7 czy BLAST.
Autor listingu: Wojciech Skaba,Jerzy Borkowski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1525th30_zxb91986test_kompilator.zip
-
Boks
Jeśli masz ochotę i starcza Ci odwagi, stań do walki na ringu z wybranym losowo przez siebie przeciwnikiem, jeśli będziesz miał szczęście w losowaniu przeciwnika, będziesz walczył trzy rundy, o ile, oczywiście, nie powali cię na deski morderczy nokaut — pozostałe informacje w komunikatach programu tym razem przeznaczonego na Commodore 64
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: CBM Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnościąPobierz: 0859th27_c64iks021986_boks.zip
-
Drążek sterowy
Jednym z nieodzownych elementów domowego systemu komputerowego jest drążek sterowy. Niestety, dostępne u nas modele maja wiele wad — albo sa drogie, albo nietrwałe, albo i jedno i drugie. Dobrym wyjściem jest w tej sytuacji skonstruowanie własnego joysticka(...) Poniżej zamieszczamy programy, które pomogą w poprawnym połączeniu przewodów. W C-64 i 128 korzystać należy z portu drugiego
Autor listingu: Michał Silski,Dariusz Rotsztyn
Listing nadesłał: Faust
Język programu: CBM Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Jak odbezpieczyć program w BASICU
BASIC komputerów Schneider i Amstrad posiada możliwość zapamiętania programu w formie zabezpieczonej przed listowaniem!(...) Aby uniknąć ponownego pisania programu spróbujemy go odbezpieczyć. Pomoże nam w tym krótka procedura w języku maszynowym zamieszczona obok. Ładuje się ona w pusty obszar RAM-u między zmiennymi systemowymi BASICU-u i systemu (B0C7-B0FF) i pozostaje tam nawet po użyciu klawiszy CTRL/SHIFT/ ESC.
Autor listingu: Sergiusz Wolicki
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Jednoręki bandytaNie wychodząc z domu i nie mając grosza przy duszy zagrasz z największym na świecie połykaczem pieniędzy zwanym, "jednorękim bandytą". Bywalcy kasyn twierdzą, że pociąganie za „rękę" tego automatu kończy się zazwyczaj zniknięciem zawartości Twojego portfela. A Ty nie stracisz ani centa (fakt, że również nic nie wygrasz pomińmy milczeniem; najważniejsza jest przecież sama gra). Wystarczy trochę dokładności i cierpliwości przy wprowadzaniu zamieszczonego obok programu.
Autor listingu: O. Fercher, SW
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Coś dla kolekcjonerów
Do napisania tego programu skłoniła nas potrzeba chwili. Przy porządkowaniu stosu dyskietek przekonaliśmy się na własnej skórze jak niewygodny w użyciu jest BASIC V2.0 firmy Commodore. Od ciągłego wypisywania LOAD "$", 8 mogą porządnie zaboleć palce nie mówiąc już o zużywaniu klawiatury. W związku z tym proponujemy przy wszelkich pracach porządkowych przeprowadzonych na dyskietkach zastosować poniżej opisany program. Umożliwia on wczytywanie katalogu dyskietki do pamięci komputera jedynie poprzez wciśnięcie klawisza F7; wylistować zaś go można używając F1.
Autor listingu: Klaudiusz Dybowski, Michał Silski
Listing nadesłał: Faust
Język programu: CBM Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Notesik
Cześć Maluchy! Do dzisiaj wszystkie pisane przez nas programy służyły tylko do zabawy. Tym razem zabierzemy się za prawdziwy program użytkowy. Co prawda dość prosty, ale zawsze... Chyba każdy przedszkolak, który bawi się komputerem wie, co to jest baza danych. Jest to po prostu taki komputerowy notes, który sam - na twoje żądanie - odszukuje potrzebne ci informacje. Powiedzmy, że chcemy zrobić sobie taką bazę danych z numerami telefonów naszych kolegów.
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 0056th11_cpc_b091986_notatnik.zip
-
Menu - Dysk
Jeśli posiadasz wśród swoich dyskietek wiele takich na których nie zamierzasz dokonywać już zmian, to wygodnie będzie Ci umieścić na nich program "MENU DYSKU". Nie będziesz wtedy musiał za każdym razem pisać CAT, żeby zobaczyć jak nazywają się programy i potem wpisywać RUN "nazwa. Wystarczy, że podasz komputerowi rozkaz RUN "DYSK, a on sam wypisze Ci wszystkie nazwy i teraz będziesz mógł wybrać odpowiedni program przez naciśnięcie jednego klawisza. Po wpisaniu listingu musisz w linii 60 umieścić po DATA najpierw liczbę programów, które znajdują się na danej stronie dyskietki, a potem ich nazwy (bez rozszerzenia czyli trzech liter po kropce).
Autor listingu: Tomasz Pyć
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1310th09_cpcb81986menu_dysk.zip
-
Zapis obrazu za ramtop
W niektórych grach stosuje się bardzo efektowny sposób rysowania grafiki na ekranie podczas ładowania. Nie powstaje ona linia po linii, lecz ukazuje się na ekranie momentalnie, już pokolorowany. Więksi znawcy komputera mówią wtedy, że "SCREEN wyszedł zza RAMTOPU".
Autor listingu: Marcin Przasnyski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Perkusja na C64
Poniższy program przeznaczony jest dla tych, których zainteresowania mają coś wspólnego z muzyką. Co prawda opublikowana wersja raczej nie zainteresuje profesjonalistów, ale wielu amatorów być może do czegoś to wykorzysta. Zresztą, programowanie i odtwarzanie własnych rytmów za pomocą własnoręcznie "wklepanego" i (mam nadzieję) rozbudowanego programu może być po prostu dobrą zabawą.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Tajemniczy Zamek
Widzieliście grę pod tytułem Hobbit? Jeśli nie, to możecie przeczytać o niej w drugim numerze „Bajtka" z tego roku. Takie gry nazywa się najczęściej angielskim słowem „adventure" czyli przygodowe. Zasada jest tu zupełnie inna niż w grach z rodzaju „bij zabij" czy „łap i uciekaj". Małpia zręczność i refleks nie są potrzebne. Należy za to trochę ruszyć głową. Najczęściej gry przygodowe nie posiadają prawie wcale grafiki. Na ekranie ukazują się opisy kolejnych sytuacji. Do ciebie należy zna-ezienie z nich wyjścia. Sukces polega na odkryciu toku postępowania, który prowadzi do wypełnienia postawionego przed tobą zadania. Wydaje się, że tego rodzaju programy muszą być bardzo złożone. Niektóre z nich rzeczywiście zajmują po kilkadziesiąt kilobajtów. Można jednak dla zabawy spróbować napisać własną, prostą grę przygodową. Oczywiście jak zawsze najważniejszy jest pomysł. Resztę można zrobić za pomocą czterech instrukcji — PRINT, INPUT. IF..THEN... i GOTO
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1435th07_zxb81986tajemiczy_zamek.zip
-
Mikrokomputer współautorem gier
Program na ZX Spectrum symuluje 10000 rzutów kostką wybraną według określonej strategii i wygenerowanej planszy gry. Jeden eksperyment symulujący 10000 rzutów według wybranej strategii trwa ok. 25 minut.
Autor listingu: Jan Rojewski,Michał Stajszczak
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
VarDump
Załączony program tworzy nową komendę VARDUMP, która umożliwia wylistowanie nazw wszystkich zmiennych występujących w tworzonym przez nas programie. Lista taka znakomicie ułatwia wyszukiwanie „przekłamanych" zmiennych.
Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1412th05_cpcb81986vardump.zip
-
Powiększanie napisów
Prezentujemy krótki, lecz interesujący program pozwalający na powiększanie liter i znaków graficznych. Program wykorzystuje instrukcję SYMBOL AFTER 32, co pozwala na redefiniowanie wszystkich znaków. Zamiast linii 70, 80 i 85 można wpisać własne i ewentualnie przenumerować linię 90.
Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Zegar dla Amstrada
My wykorzystamy tę zaletę (Czytelnicy znający zasady pracy mikroprocesora wiedzą, że w celu zapewnienia w miarę dokładnej pracy zegara wykorzystywany jest mechanizm przerwań, czyli sprzętowego (zewnętrznego) wymuszania skoku do określonego adresu w pamięci komputera) do napisania własnego zegara, który będzie pracował niezależnie od aktualnie wykonywanych programów i będzie podawał czas w normalnej formie (czyli godz.:min.:sek.). Wyposażymy go również w budzik i możliwości sterowania z BASIC-u. Żeby być całkowicie w zgodzie z prawdą należy zauważyć, że nasz zegar, tak jak zresztą i maszynowy, nie pracują, jeśli jakiś program wyłączy przerwania, co jest możliwe za pomocą odpowiedniego rozkazu maszynowego. System i BASIC wyłączają przerwania właściwie tylko w czasie zapisu lub odczytu danych na taśmę lub dyskietkę. Po wpisaniu i uruchomieniu zamieszczonego obok programu należy odpowiedzieć na pytanie o wersję Amstrada (Schneidera), gdyż od tego zależą adresy pewnych procedur systemowych wykorzystywanych przez program (np. dzielenie przez 10). Opracowany na podstawie „Schneider International" nr 12/1985 - zmiany dotknęły komend sterujących (z niem. na polski).
Autor listingu: S. Wolicki
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Wieczny Kalendarz
Czy wiesz w jakim dniu tygodnia się urodziłeś? A może interesuje cię czy bitwa pod Grunwaldem miała miejsce w poniedziałek czy w piątek? Jeśli tak, wpisz do swojego komputera ten program i dowiesz się wszystkiego.
Autor listingu: F. Głowiński
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Kiedy 2 = 10
Program oblicza postacie liczb w układach od dwójkowego do 35-kowego zastępując (w przypadku systemów o podstawie większej od 10) liczby 10, 11, 12 itp. literami A, B, C itd.
Autor listingu: Jacek Niewęgłowski
Listing nadesłał: Faust
Język programu: Locomotive Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1317th05_cpcb81986kiedy2rowna10.zip
-
Wyprawa po Kwiat PaprociInfo: Gra tekstowa - przykład użycia podstawowych instrukcji Basic'a - LET, PRINT, INPUT, IF, GOTO. Poprawione: - skoki do niewłaściwych linii (błąd w 2810; przeskok z jednego miejsca w drugie w 1755; różne zachowanie programu w różnych miejscach) - sprawdzanie przedmiotów wpisanych przez gracza PR$ (a nie niesionych ODP#$) - błąd w logice gry nie pozwalający jej ukończyć bez przedmiotu, który znajduje się na początku - można podnieść tylko przedmioty, które znajdują się w danym miejscu (można było podnosić dowolne przedmioty w dowolnym miejscu) - dodany TRAP przy każdym INPUT - użyte RND - podzielony tekst, aby mieścił się w liniach - dodane odstępy - użyte "Polskie Litery" z zamienionymi znakami (duże na małe) z tego samego Bajtka, przyspieszone programem MOVE - wpisywanie małymi literami (polskie znaki z Control) - opcja przedmiotu jest zawsze pierwsza (kierunki są pozostawione w różnej kolejności) - inne drobne błędy Uwaga: Nazwy przedmiotów należy wpisywać małymi literami z polskimi znakami, trzeba też użyć odpowiedniej formy! Jeżeli po wpisaniu nazwy opcja podniesienia przedmiotu nie zniknie, oznacza to, że przedmiot został usunięty z ekwipunku i trzeba spróbować ponownie. Pożyczone przedmioty pozostają w ekwipunku. Dla ułatwienia można zmienić linię 2755 na: 2755 GOTO 2703
Autor listingu: Roman 'Romek' Poznański, QTZ
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
5Listing wzbogacony - uruchamia się na emulatorze lub realnej maszynie, przepisujący listing wzbogacił go o swoje rozwiązaniaPobierz: 0023th05_kwiat_paproci.7z
-
Podróż w czasie
Coraz więcej programów przysyłają do „Bajtka" przedszkolaki. Piszą nawet ci, którzy nie mają dostępu do komputera i programować nauczyli się z naszego pisma. Myślę, że to bardzo dobrze — okazuje się, że ciekawy program można napisać także bez komputera. Przykładem może być gra Artura Buchajczuha z miejscowości Mircze (woj. zamojskie), napisana na podstawie artykułu Tajemniczy Zamek z „Bajtka" nr 8. Artur używał tylko długopisu i papieru w kratkę — program działa, a jak działa oceńcie sami. Poprawione: - podzielony tekst, aby mieścił się w liniach - użyte "Polskie Litery" z zamienionymi znakami (małe litery dostosowane do standardu Panther) z Bajtka Tylko Dla Początkujących!, częściowo przyspieszone procedurą MOVE - domyślnie włączone małe litery - dodane brakujące skoki - w przypadku porażki gra rozpoczyna się od początku - poprawiony błąd ortograficzny ;) Uwaga: Należy wpisywać małe litery i akceptować [Return]!
Autor listingu: Artur Buchajczuh,QTZ
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
5Listing wzbogacony - uruchamia się na emulatorze lub realnej maszynie, przepisujący listing wzbogacił go o swoje rozwiązaniaPobierz: 0019th05_podroz_w_czasie.7z
-
Screen SaverKonieczności oszczędzania monitora nie trzeba chyba wyjaśniać nikomu. Świecący godzinami na biało ekran (bardzo częste zjawisko wśród posiadaczy Spectrum), któregoś dnia przestanie świecić na biało, bo wypali się luminofor(...) Ideą działania wygaszacza jest wygenerowanie ciemnego obrazu po wykryciu faktu, ze przez dłuższy czas (np. 5 minut) użytkownik nie korzysta z komputera. Z chwilą naciśnięcia klawisza lub poruszenia myszki, obraz powraca do stanu początkowego; dzięki temu wygaszacz nie utrudnia pracy(...) Program z listingu spełnia powyższe założenia, a nawet potrafi trochę więcej. Przede wszystkim reaguje na naciśnięcie dowolnego klawisza (także shiftóW) oraz na poruszenie joystickiem, podłączonym do portu Kempston Zawartość obrazu jest przechowywana w sposób maksymalnie oszczędny. Ponieważ cała pamięć obrazu zajmuje aż 6912 bajtów, nie można buforować całej treści - zabierałoby to zbyt wiele pamięci.
Autor listingu: Jacek Trojański
Listing nadesłał: Gelip
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 0057nd02_screen_saver.zip
-
SaperPo ukazaniu się w Bajtku 8-9/93 programu „Saper" dla komputera Amstrad, otrzymaliśmy sporo listów z zapytaniem, czy taki program istnieje na Spectrum. Odpowiedź jest jak zwykłe prosta: nawet jeśli takiego programu nie ma, to można go napisać(...) Większość czytelników, którzy zetknęli się z systemem MS Windows, znają prostą grę pod nazwą Minesweeper. Chodzi w niej o to, by zlokalizować na określonym polu wszystkie ukryte miny.
Autor listingu: Jacek Trojański
Listing nadesłał: Gelip
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 0047nd02_saper.zip
-
Kostka Ciężarka
Kilka lat temu wszyscy się bawili kostką Rubika, a mój brat cioteczny nawet wygrał konkurs na szybkość jej układania w Teleranku (...) Taki jesteś mądrala? To dzisiaj mam dla Ciebie kostkę Ciężarka, zobaczymy jak dasz sobie radę. Zadanie jest bardzo proste - za pomocą pięciu możliwych przesunięć należy ułożyć układankę - czyli napis opiewający cudowność Bajtka i deklarujący wierność temu tytułowi... Uwagi: Pierwotny listing był przeznaczony na IBM PC (Marek Ciężarek), Gelip przepisał go na ZX Spectrum, dodając obsługę kursora (Kempston)
Autor listingu: Marcin Borkowski pps. Marek Ciężarek, Gelip
Listing nadesłał: Gelip
Język programu: brak danych
Stan listingu:
5Listing wzbogacony - uruchamia się na emulatorze lub realnej maszynie, przepisujący listing wzbogacił go o swoje rozwiązaniaPobierz: 0028nd02_kostka.zip
-
Tetris
Do tej gry nie napisano żadnej wymyślnej legendy. Co więcej, nie ma jej w ogóle. Dlatego wolni od spojrzeń całej ludzkości możemy oddawać się tej grze bez sensu... Obok zamieszczamy listing tej gry na ZX Spectrum. Została ona okrojona z nieistotnych efektów i w 972 bajtach i 20 liniach Basica mieści się cały Tetris. Uwagi: Pierwotnie program ukazał się w numerze Bajtka 11/1989 autorstwa Michała Sobieszuka. Niestety listing był błędny i dopiero w numerze 03-04/1990 został podany poprawny zapis, jednak z innymi autorami.
Autor listingu: Michał Sobieszuk,Maciej Pietraś,Marcin Przasnyski
Listing nadesłał: Gelip
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 0006nd02_tetris.zip
-
Kubuś LiterkaProponuję Wam zabawę w pisanie gry komputerowej.Zaczniemy od najważniejszej rzeczy, czyli zaprogramowanie bohatera Kubusia Literki. Potem nauczymy go tańczyć.
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1632th28_kubus_literka_186c64.rar
-
Ochrona programówPrzedstawiam sposób na włączenie Twoich programów do grupy tych nielicznych, które nie poddają się programom kopiującym. Proponowane zabezpieczenie, choć proste w swej idei, do złamania wymaga niezłe] znajomości kodu. maszynowego oraz zasad działania ROM-u. Jest więc całkowicie skuteczne wobec wszystkich tych, którzy bazują jedynie na programach kopiujących i co najwyżej potrafią obezwładniać proste blokady wmontowane w programy BASIC-owe. Na fachowców niestety nie ma żadnej rady. Tym można co najwyżej zabrać więcej czasu. Jest ich na szczęście (?) niewielu i na ogół mają ciekawsze zajęcia niż łamanie Twoich programów.
Autor listingu: Andrzej Kadlof
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Drążek sterowyProgram pozwala na rysowanie na ekranie monitora dowolnych kształtów poprzez odpowiednie poruszanie drążkiem. Naciśnięcie przycisku dodatkowego powoduje zniknięcie rysującego punktu. Będzie się on poruszał nadal, tak jak dotychczas, a ukaże się w chwili zwolnienia przycisku.
Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1621th28_drazek_sterowyspectrum.rar
-
Drążek sterowyProgramu na mikrokomputer Commodore VC-20 umożliwiający sprawdzenie działania naszego urządzenia. Po podłączenia drążka sterowego na ekranie będą pojawiać się cyfry odpowiadające poszczególnym położeniom drążka
Autor listingu: Tomasz Lison
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1619th28_drazek_sterowyvic20.rar
-
Największa przyjemnośćPrzedszkolaki podnieście bunt! Wystarczy przecież kilka minut KOMPUTER z groźnego i strzelającago przeciwnika stał się Waszym przyjacielem, który na przykład przeegzaminuje Waszą znajomość matematyki, będzie przy tym wyrozumiały dla popełnianych błędów i nigdy się nie zmęczy. Na początek powiem Wam jak można żądać od komputera, aby sprawdził, czy już umiecie dodawać dwie liczby, z których każda nie jest większa od 10.
Autor listingu: ps. Marek
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Budowa ZX SpectrumTrzy krótkie programy (a w zasadzie trzy linijki) ilustrujące artykuł (działanie ULA)
Autor listingu: Krzysztof Kuryłowicz,Dariusz Madej
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 1536th28_budowa_zx_spectrum.rar
-
Pędzel i stos
Przykładowy podprogram zamalowujący wraz z Program napisano w języku BASIC dla ZX Spectrum. W większości zastosowań praktycznych działanie programu w języku BASIC okaże się zbyt wolne. Radykalnym rozwiązaniem jest zastosowanie szybkiej procedury napisanej bezpośrednio w języku maszynowym. Procedura taka na użytek naszych Czytelników została opracowana. Aby umożliwić skorzystanie z niej także tym, którzy nie znają asemblera, przygotowano specjalny program ładujący w języku BASIC.
Autor listingu: Roland Wacławek
Listing nadesłał: Faust
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Życie MakleraTrudne jest życie maklera. Masz szansę stać się milionerem. Twój majątek to akcje kopalni rudy, czy zrobisz na nich fortunę? — wszystko zależy od Ciebie. Program na Commodore 64 przeniesie Cię na giełdę. Czy potrafisz zarobić?
Autor listingu: brak danych
Listing nadesłał: Ramos
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Numeryczna metoda znajdowania wartości pierwiastków funkcjiiProgram nie tylko oblicza pierwiastki, ale również wykreśla funkcję w rozpatrywanym przedziale, zaznacza na wykresie położenie osi X i Y (liniami przerywanymi) oraz położenie znalezionych miejsc zerowych.
Autor listingu: Tomasz Kostryński
Listing nadesłał: Faust, Andys
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Weryfikacja programów na kasecieUżytkownicy mikrokomputerów ATARI mający do dyspozycji magnetofon kasetowy jako pamięć masową niejednokrotnie stają przed problemem, czy zapisany właśnie na taśmie program — efekt wielogodzinnej nieraz pracy, zapisał się bez błędów i da się następnie bez kłopotów wczytać. ATARI BASIC nie ma instrukcji pozwalającej na sprawdzenie poprawności zapisu na taśmie. Przedstawiony tutaj program pozwala w znacznym stopniu wyeliminować tę niedogodność.
Autor listingu: Mariusz J. Giergiel
Listing nadesłał: Bluki
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Renumeracja programów w języku basicPrzedstawiony program pozwala przenumerować linie programu w języku BASIC. Zmienia on numery linii i odwołania do nich (np. w instrukcjach GOTO, GOSUB, TRAP itp.). Program renumerator należy zapisać instrukcią LIST „C:" w przypadku korzystania z magnetofonu, lub instrukcją LIST „D:REUM.LST" w przypadku korzystania ze stacji dyskietek.
Autor listingu: Mariusz J. Giergiel
Listing nadesłał: Bluki
Język programu: brak danych
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
AnimacjaMikrokomputery ATARI oferują sze- rokie możliwości łatwego tworzenia ru- chomych obrazów, co w połączeniu z bo- gatą kolorystyką stwarza niepo wtarzal- ną szansę dla programistów — ekspery- mentatorów. Poniżej zamieszczamy krótki pro- gram w BASIC-u, który pozwoli zobrazo- wać użycie techniki przełączania stron i, mamy nadzieję, zachęci czytelników do dalszego eksperymentowania. Program ten będzie działał na wszyst- kich komputerach ATARI wyposażonych w minimum 32 K pamięci operacyjnej (800XL, 130XE). Na podstawie ANTIC 9.85
Autor listingu: Marek Kuliński
Listing nadesłał: Bluki
Język programu: brak danych
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych
-
Szansa
Zapewne nie raz zdarzyło się Wam prosić rodziców o pieniążki na kupno różnych, niezbędnych rzeczy. Uzyskiwane odpowiedzi rzadko kiedy mogą nas usatysfakcjonować, sprowadzają się bowiem zazwyczaj do mniej lub bardziej eleganckiej odmowy. Zanim wreszcie wyprosimy potrzebną sumę, niepowtarzalna okazja ucieka, a w pamięci pozostaje jedynie obiecanka: „jak wygram w TOTO-LOTKA to ci dam.” Ciężko jest znaleźć na to jakąś skuteczną radę. ale być może przy pomocy ulubieńca całej rodziny — komputera, uda się nam odnieść pewne umiarkowane sukcesy. Zakradnijmy się więc do owej cudownej skrzynki i rozpocznijmy budowę programu, który może przekona Tatę o konieczności wpłace nia nam żądanej sumy bez czekania na wielką (a choćby i mniejszą) wygraną w TOTO-LOTKA.
Autor listingu: ps. Marek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: szansza_bajtek_2spectrum.7z
-
FlowChart
Nawet w przypadku stosunkowo prostych i krótkich listingów ich analiza "w pamięci" sprawia sporo kłopotów. I tu znowu przydaje się umiejętność przedstawiania algorytmów w postaci schematów blokowych. Narysowanie takiego schematu na podstawie programu zajmuje co prawda sporo czasu, lecz w gruncie rzeczy nie jest to praca wymagająca zbyt dużego wysiłku intelektualnego — a więc coś w sam raz dla komputera. Program, którego listę rozkazów przedstawiamy na następnej stronie, został napisany przez Briana Sidesa, na ZX Spectrum. Zawiera on zaledwie 52 linie i z powodzeniem zastępuje nas w tych pracochłonnych czynnościach. Oczywiście dotyczy to programów napisanych w BASIC–u.
Autor listingu: Brian Sides, Roman Poznański
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: flowchart_bajtek285spectrum.zip
-
Więcej ruchu
Przypuszczam, że i Was denerwuje brak rucha na ekranie. A bez ruchu — wiadomo, nie można prawie w nic grać i znacznie szybciej nudzi się nam siedzenie przed telewizorem. Jedyna rada — rozruszać znaki na ekranie.
Autor listingu: ps. Marek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: wiecej_ruchu_bajtekt_285spectrum.zip
-
Choinka
Wiemy już, z poprzedniego numeru BAJTKA, na jakiej zasadzie można uzyskać ruch wybranego przez nas znaku na ekranie telewizora. Przypomnę, że polega to na tak szybkiej, że niewidocznej dla oka, zmianie miejsca wydruku owego znaku. Jak pamiętacie, miejsce znaku literowego czy graficznego na ekranie opisane jest dwiema współrzędnymi: numer linii i numer kolumny. (Mówimy ciągle o działaniach na znakach - typu liter, przy grafice używającej punktów sprawy będą się miały nieco inaczej, chociaż zasada jest taka sama).
Autor listingu: ps. Marek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: choinka_zx_spectrum.zip
-
Grafika
Prezentowany przykład wykazuje, jak interesujące efekty uzyskać można przy pomocy bardzo krótkich programów graficznych. W naszym przypadka są to zaledwie trzy linie. Zwróćcie uwagę na to, że wszystkie grafiki zostały narysowane w wyniku realizacji tego samego programu — zmieniły się jedynie parametry.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: grafika_zx_spectrum.zip
-
SPECTRUM i klakson (aka Dźwięki)
Program przeznaczony jest dla użytkowników ZX Spectrum, którzy nie opanowali jeszcze języka maszynowego a chcieliby poeksperymentować z dźwiękiem na SPECTRUM. Poniższe programy maszynowe (umieszczone w DATA) można wykorzystać we własnych programach.
Autor listingu: Krzysztof Bielewicz
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: dzwieki-1_bajtek186zx_spectrum.rar
-
Wiosełka
Opisane w tym artykule urządzenie współpracujące z mikrokomputerem nie doczekało się jeszcze polskiej nazwy. W języku angielskim brzmi ona paddle, co oznacza wiosło, a raczej pagaj. Ponieważ jesteśmy przeciwnikami bezmyślnego zaśmiecania naszego języka obcymi słowami, proponujemy naszą rodzimą nazwę — wiosełka. Po zakończeniu pracy możemy sprawdzić, czy nasze urządzenie działa, przy pomocy następującego programu.
Autor listingu: Rafał Łochowski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: wioselka_bajtek186_vic20.zip
-
Efekt Magnetronowy
Prezentowany program napisany na mikrokomputer ZX SPECTRUM stanowi ilustrację do ciekawego zjawiska fizycznego, zwanego efektem magnetronwym. Zrealizowany w formie zabawy ułatwia zrozumienie praw fizyki. Jeżeli cząsteczka o masie „m” i ładunku elektrycznym „e” wpadnie z prędkością „v” prostopadle w jednorodne pole magnetyczne „B” to tor jej ruchu zacznie się zakrzywiać. Gdy pole będzie wystarczająco duże, cząsteczka może zostać uwięziona w nim, gdyż będzie się stale poruszała po tym samym okręgu o promieniu „R” z częstotliwością kątową „w”. Płaszczyzna okręgu jest prostopadła do kierunku pola magnetycznego. Jest to właśnie efekt magnetronowy.
Autor listingu: Tomasz Kostrzyński
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Powiększanie napisow
Właśnie skończyłeś układać grę, która, jak sądzisz podbije światowe rynki. Brakuje w niej tylko jednego, wspaniałego obrazka, który uprzyjemniałby czas podczas ładowania programu. Dodatkowy problem stwarza fakt, że nie masz pióra świetlnego. Być może jedynym ratunkiem będzie w takim przypadku jeden z czterech poniższych programów. Wszystkie te programy służą do powiększania dowolnych napisów (również tych zawierających UDG). Tekst przeznaczony do powiększania drukowany jest w dolnej części ekranu, a następnie każdy jego punkt jest sprawdzany funkcją „POINT”, która bada stan tego punktu (1 — zamalowany, 0 — nie). Jeżeli „POINT” wynosi 1 w odpowiednim miejscu ekranu powstaje jego powiększona kopia, a następnie cała litera (znak) i napis.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
W poszukiwaniu bliźniaka Ziemi
W listopadowym numerze „Creative Computing” z zeszłego roku znalazł się artykuł H. Carlsona p.t. „W poszukiwaniu bliźniaka Ziemi”. Autor prezentuje program umożliwiający prosty sposób przebadania wielu układów planetarnych. Wybieramy masę gwiazdy, której układ chcemy zbadać. Program tworzy — w części losowo – typowy system planetarny dla tej gwiazdy, korzystając z obecnego rozumienia praw tworzenia się układów planetarnych (są one lepiej poznane dla gwiazd o masie Słońca – M = 1). Systemy tworzone dla gwiazd o innych masach są właściwie losowe. Promienie orbit wyznaczone są ze zmodyfikowanego prawa Titius–Bodego – promienie rosną średnio w postępie geometrycznym na zewnątrz od gwiazdy.
Autor listingu: H. Carlson
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Liczydełko
Dzisiaj coś dla leniuchów. Tych, którym nie chce się liczyć. Komputer Wam pomoże. Ale nie ma nic za darmo. Trzeba nauczyć się korzystać jeszcze z kilku instrukcji. Nasz program będzie dodawał, odejmował, mnożył i dzielił. A więc na początku komputer musi nas poinformować jaki mamy wybór.
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: _liczydelko_bajtek286zx_spectrum.rar
-
Niespodzianka
Proponuję wpisać i uruchomić ten oto program. Sądzę, że jego efekty mogą zainteresować wszystkich posiadaczy ZX SPECTRUM.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Sterowanie
Na ekranie widzimy tor poruszającego się obiektu. Naszym zadaniem jest sterowanie stacją namierzającą obiekt tak, aby odchylenie między położeniem obiektu (linia ciągła) i namiarem (linia przerywana) było jak najmniejsze. Wartość odchylenia jest widoczna na ekranie i ponadto sygnalizowana wysokością tonu, od ciszy przy największych odchyleniach (tracimy kontakt z obiektem) poprzez wysoki ton przy dużych odchyleniach do niskiego tonu przy małych odchyleniach i najniższego przy pokrywaniu się obu torów.
Autor listingu: Michał Szuniewicz
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Mapa
Program generuje na podstawie liczb przypadkowych obraz przypominający mapę lub zdjęcie satelitarne. Rysowanie rozpoczyna się od punktu o współrzędnych 128,88. Współrzędne kolejnych punktów wybierane są na podstawie liczby przypadkowej generowanej przez funkcję RND. W zależności od tej liczby zmianie ulega współrzędna x lub y punktu zmniejszając się lub zwiększając o dwa. W ten sposób na ekranie powstaje obraz złożony jedynie z punktów o parzystych współrzędnych.
Autor listingu: Michał Szuniewicz
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: mapa_bajtek34-86zx_spectrum.zip
-
BEEP dla Commodore 64
Przedstawiony poniżej program umożliwia uzyskanie akustycznego podsłuchu wciśnięcia klawisza (BEEP). Po wpisaniu programu lub wczytaniu go z taśmy/dysku program można uruchomić za pomocą RUN i RETURN; po wyłączeniu go (kombinacja STOP i RESTORE wciśnięte jednocześnie) sygnalizator można uruchomić za pomocą instrukcji SYS 49152 i RETURN.
Autor listingu: Klaudiusz Dybowski, Michał Silski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: c64beep_bajtek34-86.zip
-
TurboManiac
Rezydujący w pamięci Commodore 64 BASIC 2.0 stanowi jeden z najsłabszych punktów tego komputera. Układanie własnych programów wykorzystujących grafikę wysokiej rozdzielczości, muzykę czy tak zwane spritey potrafi porządnie skomplikować życie nawet zaawansowanemu programiście.
W sukurs użytkownikom przychodzą profesjonalne firmy parające się oprogramowaniem wypuszczając na rynek coraz to nowsze i lepsze rozszerzenia ubogiej wersji tegoż języka (SIMONS BASIC, ULTRABASIC, METABASIC itp.). Przedstawiony program napisany został w klubie mikrokomputerowym „Maniak” w Warszawie (stąd nazwa MANIAK TURBO). Staraliśmy się rozwiązać w nim wszystkie niedogodności, które utrudniały nam prowadzenie zajęć klubowych.
Niektóre rozwiązania i procedury zostały zaczerpnięte z literatury fachowej (procedura RE–LINE oraz STOP–LIST pochodzą z magazynu “AHOY!” z grudnia 1985; generator skrótów z książki “MAPPING THE COMMODORE 64”) i dołączone następnie przez nas do naszego programu.Autor listingu: Klaudiusz Dybowski,Michał Silski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: c64turbo_maniac_bajtek34-86.zip
-
Rozmówka
Każdy wie, że komputer potrafi liczyć. I to nawet bardzo szybko. Także, to że można przy jego pomocy stworzyć na ekranie telewizora poruszającą się figurkę nie jest żadną rewelacją. Ale czy mógłby porozmawiać z nami? Ot, choćby przywitać się i wymienić kilka grzecznych słów?
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
TurboManiac v2
Poprawiona nakładka na Commodore Basic z usuniętymi błędami z jakimi ukazał się w Bajtku.
Autor listingu: Klaudiusz Dybowski,Michał Silski
Listing nadesłał: brak danych
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: maniak_trubo_c64.zip
-
Kalendarz
Ten program napisany w BASIC-u na SPECTRUM przydać się może każdemu — „Kalendarz” na każdy miesiąc do- wolnego roku naszego stulecia. Wystarczy podać nazwę miesiąca i rok, a na ekranie monitora pojawią się kolejne dni i tygodnie. Sprawdź, czy nie urodziłeś się w niedzielę, zobacz, w jaki dzień będą Twoje urodziny w roku 2000.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: kalendarz_iks.1.1986_zxspectrum.zip
-
Mapa Polski
Nie jest to program o finezyjnej konstrukcji; punkt po punkcie odwzorowuje granice naszego państwa. Możliwości graficzne mikrokomputera SPECTRUM nie są duże — stąd każdy rysunek „przędzie się” mozolnie. Cierpliwych zachęcamy do wspólnej pracy. Może razem uda nam się przygotować komputerową mapę Polski, na której zaznaczycie miejscowości, w których działają kluby komputerowe.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Wykres Funkcji
Program rysuje wykresy wartości zadanych wyrażeń algebraicznych w określonym zakresie wartości i przedziale zmienności argumentu x. Wprowadzane wyrażenia mogą być dowolnymi wyrażeniami algebraicznymi złożonymi z operatorów arytmetycznych, stałych, zmiennej x, arytmetycznych funkcji standardowych dostępnych w BASIC-u na SPECTRUM.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Wyścigi psów
„Wyścigi psów” są grą. Wygrywa ten, kto trafnie przewidzi kolejność psów na mecie. Nie jest to sprawa prosta, bowiem o zwycięstwie decyduje generator liczb losowych. Powodzenia.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Pisać nie pisac
Oto krótki program umożliwiający posługiwanie się polskim alfabetem w trakcie pisania własnych programów na komputerach Amstrad 464 (664) 6128.
Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: cpcpisac_v0.2_bajtek4-5_1986.zip
-
Miniorgany
Może zainteresuje cię program, będący świetnym upominkiem dla młodszej siostry lub brata. Zapewnia on pełne wykorzystanie bogatych możliwości dźwiękowych Amstrada (Schneidera). Dwa najniższe rzędy klawiszy literowych zostają zamienione na klawiaturę instrumentu zgodnie z rysunkiem, który pojawia się po uruchomieniu programu.
Autor listingu: Sergiusz Wolicki
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu
-
Animacja
Oglądając programy telewizyjne „Spectrum" i „Sonda" często podziwiamy, jak przed oczami projektanta obraca się na komputerowym ekranie wspaniały, trójwymiarowy przekrój samochodu. Napewno niejeden programista-amator marzy o stworzeniu takiego obrazu za pomocą mikrokomputera. Niestety, kiedy uruchamia on napisany mozolnie w BASIC-u program rzednie mu mina.
Wrażenie ruchu jakiegokolwiek większego przedmiotu jest bowiem znacznie osłabione przez migotanie całego rysunku. Wynika to ze sposobu, w jaki konstruuje się ruchome obrazy na ekranie. Najpierw trzeba narysować przedmiot w jednym położeniu, zmazać go. narysować w następnym, znowu zmazać itd. ... A wszystko to dzieje się przecież stosunkowo wolno.Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: cpcanimacja_v0.2_bajtek4-5_1986.zip
-
Paskudne Mrówki (aka Piknik)
Piknik - wybrałeś się na uroczą — jak ci się zdawało — wycieczkę na łono natury. Niestety, stałeś się ofiarą napadu ze strony okrutnych mrówek, które usiłują porwać ci śniadanie. Jeśli nie chcesz być głodny, musisz zdeptać złodziejki. Twoje zapasy składają się z trzech owoców, zaś każde cztery mrówki, które przepuścisz uniosą jeden z nich. Staraj się więc... Jest jeszcze jedna trudność, ale o niej dowiesz się sam, gdy uda ci się uruchomić program. Gra ta, opracowana przez pana Grahama Ramsdena (z drobnymi przeróbkami piszącego te słowa) nie wzbudzi zapewne entuzjazmu wśród miłośników przyrody. Ma jednak kilka zalet, niezależnie od tego, kto kogo w niej depcze. Przy pomocy stosunkowo krótkiego programu, udało się autorowi uzyskać ciekawą grafikę i animację. Gra uzupełniona jest również zupełnie przyzwoitymi efektami dźwiękowymi.
Autor listingu: Graham Ramsden, Roman Poznański
Listing nadesłał: Faust, Andys
Język programu: Basic
Stan listingu:
5Listing wzbogacony - uruchamia się na emulatorze lub realnej maszynie, przepisujący listing wzbogacił go o swoje rozwiązania
-
Lądowanie na księżycu
Kto z nas nie marzył o tym, by pilotować ,prawdziwy statek kosmiczny? Jeśli masz do dyspozycji jakikolwiek komputer, możesz sam stworzyć sobie taką możliwość, a przy okazji zyskasz satysfakcję z samodzielnego napisania programu. Rzućmy się od razu na głęboką wodę, a więc spróbujmy wykonać najtrudniejszy element pilotażu — lądowanie. Ten manewr polega na odpowiednim wytrącaniu prędkości, w wyniku hamowania silnikami. Należy tak regulować siłę ciągu silników, aby pojazd — w chwili zetknięcia się z ziemią miał odpowiednio małą prędkość. W przeciwnym przypadku po prostu rozleci się na kawałki. Dodatkową trudnością jest ograniczona ilość paliwa, którą dysponujemy — jeśli nam go zabraknie to... lepiej nie myśleć. Program w wersji przedstawionej na wydruku zastał opracowany na wszystkie mikrokomputery z rodziny Commodore. W przypadku innych, należy dokonać kosmetycznych poprawek.
Autor listingu: Roman Poznański
Listing nadesłał: Faust, Andys
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Ruchomy krajobraz
Program „Ruchomy krajobraz" wykorzystuje operację przesuwania ekranu w lewo o jeden punkt. Ekran ZX Spectrum składa się z trzech poziomych części po 64 linie. Przesuwając osobno każdą z nich można uzyskać ciekawe efekty.
Autor listingu: Michał Szuniewicz
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Trójwymiarowa grafika
Trójwymiarową grafikę, wraz z programem (BASIC — wersja BBC) można było zobaczyć podczas seminarium brytyjskiej firmy 3SL poświęconemu komputerowemu wspomaganiu nauczania. Odbywało się ono w ostatnich dniach lipca br. w Instytucie Maszyn Matematycznych w Warszawie, a towarzyszył ma pokaz systemu mikrokomputerowego firmy BBC.
Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Dźwięk
Zdaniem wielu użytkowników brak dźwięku jest jednym z poważniejszych niedostatków mikrokomputera MERITUM. Jest to jednak wada pozorna: wszystkie MERITUM, począwszy od pierwszych egzemplarzy, posiadają możliwość uzyskiwania efektów dźwiękowych, nie było to jednak opisywane w oficjalnych publikacjach producenta.
Autor listingu: Maciej Deptuch, Władysław Majewski
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: 2311th27_dzwiekmeritum_i.zip
-
Pętla
Ten program służy do prezentacji tekstu, może być wykorzystany w każdym programie użytkowym i nie tylko. Dowolnie długi tekst przesuwa się z lewej strony ekranu na prawą.
Autor listingu: Roman Poznański
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodykuPobierz: 2303th27_vic20_petla_bajtek3-4.zip
-
Programowanie Gier Logicznych
Przykładem gry o znanej strategii jest NIM, częściej uprawiana, niż znana z nazwy. Najpowszechniej stosowanym rekwizytem w NIM są zapałki. Oto zasady. Gra dwóch graczy. Przed grą układają zapałki w trzy rzędy o dowolnej ilości w każdym. Ruch polega na zabraniu z jednego dowolnie wybranego rzędu dowolnej ilości zapałek — od jednej do wszystkich w rzędzie.
Autor listingu: Janusz Kraszek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: zxnim_komputer_1-1986.zip
-
Sprawdzian
Program "sprawdzian" nie tylko przeegzaminuje dziecko, wystawi ocenę z każdego z typów działań arytmetycznych oraz ocenę łączną, ale i podając przy błędnych odpowiedziach prawidłowy wynik, być może i czegoś nauczy. Jest też i nagroda dla piątkowiczów - jej pełny urok można poznać jednak jedynie dysponując kolorowym monitorem, chociaż wyrazy uznania ze strony komputera nie ominą oczywiście i posiadaczy telewizorów monochromatycznych.
Autor listingu: ps. Marek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniuPobierz: zxsprawdzian_komputer_1-1986.zip
-
Compact
Compact jest programem na 16/48KB Spectrum pozwalającym na zmniejszenie zajetości pamięci i zwiększenie szybkości działania innych programów napisanych w BASIC-u. Umożliwia wykonywanie trzech podstawowych operacji:
— skracanie zapisu liczb bez wpływu na dokładność obliczeńczeń;
— skracanie długich nazw zmiennych do nazw dwuznakowych w postaci: A0, C0, D0... ZZ;
— kompresja (łączenie) wierszy programu jeśli jest to możliwe.Autor listingu: brak danych
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnością
-
Odzyskiwanie plików skasowanych omyłkowo na dyskietce
Instrukcja |ERA w Basic Locomotiv umożliwia skasowanie pliku na dyskietce np. w celu uzyskania miejsca na wpisanie innego programu. Użycie tej samej instrukcji wymaga szczególnej ostrożności, ponieważ skasowany przy jej użyciu plik nie będzie wykazywany po użyciu instrukcji CAT (katalog).
Powyższy program napisany na BASIC-u umożliwia odtworzenie skasowanego przez omyłkę pliku, o ile powykonaniu instrukcji |ERA na dyskietkę nie został zapisany inny plik.Autor listingu: Wojciech Ziółek
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
4Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku
-
Skarb kubusia
Nasz stary przyjaciel Kubuś Literka wybrał się tym razem na poszukiwanie skarbów. Stoi przed nim bardzo trudne zadanie. Skarb został ukryty w jednej z komnat zamku a jest ich dokładnie sto. Żeby było jeszcze trudniej Kubuś nie może wziąć skarbu nim nie zbierze trzech fantów ukrytych w innych komnatach. Trzymaj się Kubusiu!
Autor listingu: Roman 'Romek' Poznański
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
3Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznychPobierz: cpc_skarb_kubusia_bajtek7-1986.zip
-
64 kolumny
Program ten (1,3 kB),przeznaczony dla ZX Spectrum 48 kB umożliwia uzyskanie na ekranie 64 kolumn tekstu zamiast standardowych 32. Pozwala na to dodatkowy rozkaz TAB (EXTENDED MODE P) o formacie prawie takim samym jak rozkaz PRINT. Umożliwia on drukowanie zarówno tekstów, jak i liczb w dowolnych kombinacjach używając operacji AT, średników, przecinków, funkcji, rozkazów zmieniających kolor itp.
Autor listingu: Andrzej Zagrodziński
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
2Listing skorygowany - zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, jednak z organiczoną funkcjonalnościąPobierz: zx64_kolumny_bajtek7-1986.zip
-
Spectrum i drukarka DZM-180
Jednym z podstawowych urządzeń peryferyjnych komputera jest drukarka. Z uwagi na duże rozpowszechnienie w kraju mikrokomputerów SINCLAIR ZX SPECTRUM oraz drukarek DZM-180 produkowanych przez MERA-BŁONIE, celowym stało się opracowanie urządzenia sprzęgającego (interface'u), umożliwiającego ich wzajemną współpracę. Do przesyłania informacji opracowano program obsługi interface'u w języku BASIC, składający się z podprogramów LLIST i COPY. Program obsługi należy dołączyć do programu użytkownika za pomocą instrukcji „MERGE".
Autor listingu: Andrzej Ciepliński,Konrad Fedyna,Marek Mizeracki
Listing nadesłał: Faust
Język programu: Basic
Stan listingu:
0Listing niesprawdzony - świeżo po OCR lub przepisaniu