Ready/Run
Takie sobie archiwum listingów ze starych magazynów komputerowych
-
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