Numer 3/2011 (6) cena 23 zł

G

r

a

f

i

k

a

:

S

ł

a

w

e

k

W

o

ź

n

i

a

k APELAPEL OO KonkursKonkurs nana artykułartykuł

ARTYKUŁY!ARTYKUŁY! Redakcja PPA ogłasza konkurs na Oczy-wiście zwycięski artykuł ma gwa- napisanie artykułu do „Polskiego Pisma rantowany druk w naszym piśmie. Na Amigowego”. Temat artykułu powinien autora zwycięskiego artykułu czekają Drodzy Czytelnicy, pasować do profilu pisma i powinien nagrody. być wstępnie uzgodniony z redakcją Czekamy na Wasze artykuły, które (np. e-mailowo na adres kontaktowy Oprócz tego tradycyjnie każdy autor ar- zasilają bazę artykułów do kolej- [email protected]). Artykuł zgłoszony do tykułu zakwalifikowanego do druku konkursu nie może być krótką notką, otrzyma bezpłatny egzemplarz pisma. nych numerów. Przed nadesła- orientacyjne minimum to 10 000 zna- Termin nadsyłania artykułów upływa 30 niem artykułu prosimy o skonsulto- ków oraz ilustracje. listopada 2011 roku. wanie tematu z redakcją. Artykuły prosimy nadsyłać w postaci plików Redakcja zakwalifikuje zgłoszone arty- Przy ocenie artykułów będziemy brali tekstowych (ASCII) wraz z dołą- kuły, a następnie wybierze zwycięzcę. pod uwagę atrakcyjność tematu, styl Zastrzegamy sobie prawo do wydruko- pisania, wnikliwe podejście do opisy- czonymi obrazkami lub zdjęciami wania każdego ze zgłoszonych artyku- wanych zagadnień, przygotowanie ilu- (format PNG lub JPG). Propozycje łów w „Polskim Pismie Amigowym”. stracji, jak również naszą subiektywną oraz sugestie należy nadsyłać na Artykuł wybrany do druku nie może być opinię. Zapraszamy do udziału! adres podany w stopce redak- nigdzie opublikowany ani przed, ani rok po wydaniu go drukiem w PPA. cyjnej.

2 POLSKIE PISMO AMIGOWE 3/2011 Wiadomości z kraju i ze świata Polskie Pismo Amigowe WW numerzenumerze Redaktor naczelny: Sebastian Rosa. Zespół redakcyjny: Grzegorz Kraszew- ski, Grzegorz Murdzek, Piotr Sadowski, Krzysztof Żegleń, Konrad Czuba. Wiadomości ...... 3 Korekta: Aleksander Piotr Chyliński. Odprawiamy czary, czyli jak ustrzec się przed potencjalną śmiercią Amigi . 5

Skład: Sebastian Rosa Zrób to sam – adapter CF w A600 ...... 8 Kontakt: [email protected], http://ppa.pl. Język Lua w MorphOS-ie ...... 9 Skład pisma wykonywany jest w progra- mie OpenOffice 3. Druk na urządzeniach As wywiadu, czyli jak to się zaczęło – historia Benedykta Dziubałtowskiego . 12 cyfrowych firmy Ricoh. Discworld ...... 14 Polskie Pismo Amigowe jest wydawane Czy może być gwiazdą imprezy? ...... 16 w wolnym czasie członków redakcji i autorów. Redakcja nie gwarantuje regu- Nasza pierwsza gra – kurs programowania pod AmigaOS – część 1 ...... 17 larnego ukazywania się kolejnych nume- rów. Cena jaką płacisz za pismo pokrywa Sam460ex ...... 20 jedynie koszty jego wydawania, pismo nie przynosi zysków. PyMUI - czyli tworzymy okna Pythonem ...... 24 Amiga i Manga ...... 26 Poglądy wyrażane w artykułach są po- glądami ich autorów i niekoniecznie od- Amiga Mods Anthology – zbiór prawie doskonały ...... 27 powiadają stanowisku redakcji. Krzyżówka, rozwiązanie konkursów ...... 27 Prawa autorskie artykułów należą do ich autorów. Przedruk i publikacja w formie Komiks ...... 28 elektronicznej wyłącznie za zgodą redak- cji. Pojawiające się w artykułach słowne i graficzne znaki towarowe firm trzecich są użyte wyłącznie w celach informacyjnych i pozostają własnością tych firm. PPA nie jest gospodarczo związane z żadną z OdOd redakcjiredakcji tych firm.

© Polski Portal Amigowy 2010-2011. Na początek chciałbym podziękować wszyst- tekstu poświęconego adapterowi CF dla A600. Tux (maskotka Linuksa) © Larry Ewing, kim, którzy mieli swój wkład w powstanie tego Gracze powinni sięgnąć na naszą „rozkładów- Simon Budig i Anja Gerwinski. numeru. Naprawdę dopisała liczba artykułów, kę”, gdzie czeka kolejna recenzja gry pod które pozwoliły bez większych trudności uzbie- ScummVM. Tym razem jest to „Discworld”. http://www.ppa.pl rać niezbędny materiał. Co również interesują- ce, coraz więcej osób odważa się pisać o no- Dział publicystyczny w tym numerze również wych programach, nowym sprzęcie, nowych ma swoje obszerne miejsce. Poczytamy o rozwiązaniach. To niewątpliwie cieszy i pozwa- zjawisku mangi na Amidze, zapoznamy się z la sądzić, że mimo tego, iż amigowy światek kolekcją Amiga Mods Anthology, a także spró- AmigaOS 4.1 nie jest duży, na pewno nie jest martwy i jesz- bujemy sprawdzić czy Amiga może być gwiaz- cze wiele przed nami do odkrycia i do opisa- dą imprezy (niekoniecznie amigowego spotka- Update 3 nia. nia). Wszyscy fani wywiadów Benedykta Dziu- bałtowskiego z całą pewnością skierują wzrok W szóstym numerze naszego magazynu każ- ku stronie dwunastej, gdzie wywiadowca stał Z końcem sierpnia firma Hyperion Entertain- dy powinien znaleźć coś dla siebie. Mamy za- się... „wywiadowanym”. Może nie całkowicie, ment wydała trzecie uaktualnienie dla systemu równo publicystykę, recenzje sprzętu, jak i gier, ale... Przekonajcie się sami. AmigaOS 4.1. Przeznaczone jest dla wszyst- szkółki dla programistów, a także coś dla maj- kich wspieranych platform i dostępne jest za sterkowiczów. Niewątpliwie „artykułem miesią- Kolejny numer zamknięty, kolejna karta historii darmo dla zarejestrowanych użytkowników ca” jest recenzja Sam460ex - najnowszego zapisana. Jak zwykle czekamy na Wasze arty- systemu w tej wersji. Najważniejsze zmiany, dziecka włoskiej firmy ACube Systems. Zainte- kuły, aby już w grudniu zaprezentować Wam które wprowadza uaktualnienie to: resowanie mogą również wzbudzić aż trzy kolejną odsłonę naszego periodyku. Zachę- szkółki: język Lua, ciąg dalszy skryptów Py- camy do nadsyłania artykułów. Zapewniam, że ● uaktualnione sterowniki PATA i SATA, thona (tym razem PyMUI) oraz kurs progra- warto. A tymczasem, zapraszam do lektury ● ulepszona stabilność i prędkość działania mowania pod AmigaOS. Majsterkowicze, desi- szóstego numeru „Polskiego Pisma Amigowe- DOS-a, gnerzy i znawcy tuningu z całą pewnością nie go”. ● poprawione błędy związane z obiektami ominą zarówno poradnika z cyklu „co zrobić, współdzielonymi, aby moja Amiga żyła długo i szczęśliwie”, jak i Sebastian Rosa ● obsługa klawiatur AmigaOne, ● uaktualnione komponenty GUI i Intution, ● uaktualnione certyfikaty AmiSSL, ● różne poprawki w kernelu wpływające na miast użytkownicy AmigaOS 4.1 otrzymali ● uaktualniony stos USB wprowadzający ob- poprawę stabilności działania, nową wersję przeglądarki internetowej OWB sługę USB 2.0 (EHCI), ● uaktualnione MUI z nowymi elementami będącej portem programu z systemu Mor- ● usprawniona obsługa Sam460ex włącznie ułatwiającymi portowanie aplikacji korzysta- phOS. Bazuje on na źródłach w wersji 1.9. ze sterownikiem dźwięku, jących z MUI 4.0. ● obsługa I2C dla płyt głównych i Sam460ex, Jak widać, ilość zmian jest spora i znacząca, ● uaktualniona i ulepszona obsługa Warp3D, zwłaszcza że wśród nowości pojawiła się dłu- ● szybsze procedury grafiki 2D, go oczekiwana obsługa USB 2.0 oraz uspraw- ● usprawnienie systemu notyfikacji, nione MUI, dzięki któremu praktycznie natych-

POLSKIE PISMO AMIGOWE 3/2011 3 Wiadomości z kraju i ze świata

AmigaOne X1000 Nowe SDK DvPlayer 0.76 Nowe SDK nowe wieści Na początku września MorphOS-Team poin- Firma A-EON Technology potwierdziła, że be- Po trzech latach przerwy pojawiła się dla formował o wydaniu nowego SDK. Aktualizacji tatesterzy komputera AmigaOne X1000 otrzy- AmigaOS 4.1 nowa wersja programu do od- uległy również niektóre biblioteki systemowe mali już płyty główne Nemo 2.1 wraz z twarzania plików multimedialnych DvPlayer. takie jak muimaster.library, asl.library, amiga- AmigaOS 4.1 Update 3. Dostarczony system Lista wprowadzonych zmian i poprawek jest guide.library. W skład aktualizacji wszedł rów- operacyjny ma być testową bazą dla prac firmy bardzo długa, a najważniejsze z nich to: nież nowy, rewelacyjny edytor programisty nad wersją 4.2. Do- Scribble. datkową informacją podaną przez A-EON jest ● obsługa napisów dla płyt DVD, zaadaptowanie na potrzeby AmigaOne X1000 ● obsługa plików IFO, http://www.morphos-team.net/ nowego Multiboot Firmware, które posiada ● obsługa MPEG audio (także ze zmiennym funkcję konfigurowalnego boot menu - do wy- bitrate (VBR)), korzystania przez użytkowników z zainstalo- ● obsługa plików AIFF, AmIRC powraca! wanymi wieloma systemami operacyjnymi. Ta ● efekt „scope” w momencie odtwarzania pli- AmIRC powraca! funkcjonalność sprawi, że staną się niepo- ków dźwiękowych, trzebne rozwiązania typu yaboot. ● obsługa trybu YUV240, Po latach powraca AmIRC, jeden z lepszych ● przezroczystość dla skórek programu, klientów IRC na Amigę. Program jest darmowy Pojawienie się tej informacji zdaje się być ● implementacja nowego algorytmu pomijania i nie wymaga już klucza rejestracyjnego. Ekipa wreszcie przerwaniem ciszy i sztucznego pod- klatek w plikach AVI, co skutkuje płynniej- zajmująca się jego rozwojem poprawia błędy i sycania atmosfery przez publikację zdjęć obu- szym odtwarzaniem na wolniejszych konfi- wprowadza nowe funkcje. Równoległe rozwija- dowy, płyty głównej czy choćby wątpliwej jako- guracjach, na jest przez nich wersja dla AmigaOS 3.x i ści filmów prezentujących komputer w działa- ● wprowadzenie komunikatu o nieobsługiwa- MorphOS-a. Odrębną ścieżką idzie rozwój dla niu. Z niecierpliwością czekamy na premierę. nym kodeku audio z możliwością wyszuka- AmigaOS 4.x. nia właściwego do jego obsługi, http://www.a-eon.com/ ● poprawienie błędów związanych ze spowol- http://www.amirc.org/ nieniami odtwarzania filmów na Sam440, http://www.amirc.de/ ● funkcja NOSKIP działa również z plikami ASF/WMV, ● poprawienie błędów w wyświetlaniu i od świeżaniu GUI, ● poprawienie długości wyświetlanych filmów, która czasami była nieprawidłowa.

Rejestracja programu to koszt 29,45 euro. Do pobrania jest wersja demo, która posiada OWB 1.14 ograniczenie odtwarzania filmów do 7 minut oraz braku możliwości działania w trybie peł- noekranowym. 2012 Fabien Coeurjoly przygotował kolejną wersję przeglądarki internetowej OWB. Program http://dvplayer.amigarevolution.com/ Firma Cloanto przygotowała nową edycję pa- przeszedł zmianę nazwy i obecnie egzystuje kietu Amiga Forever. Wprowadzone uspraw- pod nazwą Odyssey Web Browser. Wśród nienia obejmują narzędzie do tworzenia i edy- wprowadzonych nowości wymienić można do- cji plików RP9, usprawniona wersja odtwarza- danie popup menu w okienku wyszukiwania w cza z obsługą dostępu do dodatkowej zawar- celu wyświetlenia podpowiedzi Google, doda- tości plików RP9, obsługa systemu AROS i nie opcji polityki ciasteczek wraz z możliwością systemu prototypu Walker, nowe narzędzia filtrowania, możliwość usuwania ciasteczek dla konfiguracyjne. Pakiet jak zwykle dostępny jest domeny z poziomu menadżera ciasteczek, w trzech odmianach: Value Edition, Plus Edi- możliwość ustawienia pełnego ekranu przy tion oraz Premium Edition. Wersja Premium pomocy opcji w menu (dla tych, którzy nie po- zawiera wywiady z Davem Haynie oraz RJ Mi- siadają klawisza F11), dodanie obsługi forma- AmigaOne 500 calem udzielone na wyłączność. Nowa wersja tów FLV i OGG w ustawieniach media (do- pakietu jest dostępna za darmo dla wszystkich myślnie wyłączone), zaimplementowanie logiki zarejestrowanych użytkowników Amiga Fore- w kodzie Curl odpowiedzialnej za umieszcza- Firma ACube Systems poinformowała na swo- ver 2011, którzy nabyli pakiet po 1 lipca 2011. nie dokumentów na Google Docs i YouTube jej stronie internetowej, że od 26 września bie- Pozostali są objęci specjalnym pakietem uak- (poprzednio należało korzystać ze spoofingu, żącego roku rozpoczęła sprzedaż komputera tualniającym. który już nie jest obsługiwany), wprowadzenie AmigaOne 500, bazującego na płycie głównej notyfikacji dla funkcji upload. Całość została Sam460ex. Charakteryzuje się on następującą http://www.amigaforever.com/ uaktualniona do źródeł silnika WebKit w wersji specyfikacją: r91657, podobnie jak i komponenty Curl do wersji 7.21.7 oraz OpenSSL do wersji 0.9.8o ● płyta główna Sam460ex z procesorem o (jest to cofnięcie wersji, gdyż nowsza, która taktowaniu 1,15 GHz, Return to Castle była skompilowana poprzednim razem posiada ● 2 GB pamięci RAM, błędy). Szczegółowy opis wprowadzonych mo- ● dysk twardy 500 GB, Wolfenstein dyfikacji znaleźć można w dokumentacji. ● nagrywarka DVD, ● kontroler SATA 3512 na złączu PCI. Mark Olsen, znany także jako BigFoot, przygo- http://www.sand-labs.org/owb tował dla systemu MorphOS port gry „Return W skład zestawu wchodzi również system to Castle Wolfenstein”. Do działania gra wy- operacyjny AmigaOS 4.1 Update 3, myszka maga dużych pokładów pamięci, a do instala- AmigaOne oraz naklejki na klawiaturę. Opcjo- cji niezbędna jest oryginalna płyta z grą w wer- nalnie można dodatkowo wyposażyć komputer sji PC. Port oraz program instalacyjny obsługu- w kartę graficzną PCIe Radeon 4650 1 GB je zarówno standardowe wydanie, jak i Special i/lub dysk SSD SATA2 o pojemności 64 lub Edition oraz Platinium Edition. Rozgrywkę 128 GB. można prowadzić zarówno w pojedynkę, jak i w trybie multiplayer. http://bigfoot.morphos-team.net/files/morphosrtcw.lha

4 POLSKIE PISMO AMIGOWE 3/2011 Odprawiamy czary, czyli krótki poradnik jak ustrzec się od potencjalnej śmierci Amigi OdprawiamyOdprawiamy czaryczary

czyli krótki poradnik jak ustrzec się od potencjalnej śmierci Amigi...

Artykuł skierowany jest głównie do posiada- łożeniu Mediatora 4000Di. Wszystko zaczęło czy A4000D, ale pewne rzeczy są uniwersalne się zachowywać niestabilnie. Jednego dnia i warto o nich wiedzieć. Pewne czynności na- wszystko działa, na drugi dzień system nie prawcze wymagają wiedzy i odpowiedniego wstaje lub wstaje co jakiś czas. Próba zmu- sprzętu. Autor nie ponosi odpowiedzialności za szenia Warp3D do działania na VooDoo 3 uszkodzenia powstałe przy nieumiejętnych 3000 kończyła się zwisem... Tak więc przy- modyfikacjach. szedł czas na przegląd sprzętu. I tutaj się za- czyna cała historia, w której na moim przykła- Stary komputer jest jak stary samochód - żeby dzie postaram się pokazać jak użytkownicy móc cieszyć się z jego użytkowania, należy o powinni obchodzić się ze swoim sprzętem. Co niego zadbać i zrobić mu co jakiś czas solidny wymienić, co poprawić, gdzie upatrywać przy- przegląd. Niby oczywiste, a jednak większość czyn takiego czy innego zachowania. użytkowników klasycznych Amig zdaje się podchodzić do tematu z innej strony: „skoro Akumulator RTC działa, to nie ruszać”. Pytanie więc skąd biorą Większy wyciek się na forach prośby o pomoc w stylu „bo wczoraj wszystko działało, a dzisiaj mam pro- Jeżeli kupujemy Amigę od nieznajomej osoby, dę. Tutaj można spróbować metody soku z cy- blem”? Niestety częstą przyczyną jest nasz to jest to obowiązkowa rzecz do wymiany. Je- tryny + przemycia alkoholem, ale z reguły w grzech zaniedbania. żeli komuś nie zależy na aktualnym czasie w tak ciężkich przypadkach uszkodzeniu ulegają systemie, akumulator powinien po prostu usu- układy scalone i ścieżki miedziane na PCB i Każdy sprzęt elektroniczny powszechnego nąć, lecz sądzę, iż jest to rzecz na tyle istotna, samo mycie z reguły nie wystarcza. Ponieważ użytku (w tym nasze klasyki) jest, był i będzie że warto się jednak nią zająć. Zaniedbanie procedura regeneracji nie jest tematem niniej- projektowany na około 10 lat bezawaryjnej tego elementu doprowadziło do śmierci już szego artykułu, ograniczę się do stwierdzenia, pracy. Potem powinien się zepsuć. Po prostu wiele Amig. Akumulator niklowo-kadmowy że taki przypadek nadaje się tylko do naprawy. nie warto projektować tego typu sprzętu, który montowany przez Commodore w Amigach przetrwa dziesięciolecia. Przyczyn tego stanu A2000, A3000D, A3000T, A4000D (nie wlicza- Jeżeli już mamy usunięcie akumulatora oraz rzeczy jest kilka: jąc modelu CR) oraz na rozszerzeniu A501 ma czyszczenie PCB za sobą, czas pomyśleć co tendencje do wylewania elektrolitu po pewnym dalej. Jeżeli aktualny czas w systemie jest ● Pieniądze – przecież firmy produkujące czasie. Niestety elektrolit ten jest bardzo żrący nam zbędny, nie montujemy nic i mamy pew- sprzęt chcą zarabiać. A zarabiają najwięcej i jego wyciek na płytę zawsze oznacza jakieś ność, że żadnego wycieku nie będzie. Jeżeli na sprzedaży nowego produktu. uszkodzenia. Jeżeli wyciek zostanie zauważo- jednak funkcja RTC jest nam niezbędna, to na- ● Technologia idzie do przodu i za 10 lat ny w miarę wcześnie, to uszkodzenia są głów- leży zamontować zamiennik akumulatora. klient sam stwierdzi, że to, co ma jest stare nie kosmetyczne (przebarwienie warstwy Zdecydowanie najgorszym rozwiązaniem jest i nawet jak działa prawidłowo to trzeba wy ochronnej PCB i ścieżek miedzianych) i z regu- zamontowanie takiego samego akumulatora mienić na nowy model z nowymi „bajerami”. ły są niegroźne dla elektroniki. Usunięcie wy- NiCd 3,6V – po prostu kiedyś znowu wyciek- ● Znane firmy nie chcąc psuć sobie reputacji lanego akumulatora, zneutralizowanie zasady nie. Lepszym rozwiązaniem jest zamontowa- wśród klientów, dbają o to żeby sprzęt nie kwasem ze świeżo wyciśniętej cytryny plus nie baterii CR2032 w podstawce z zamonto- psuł się na gwarancji i żeby posłużył jesz- przemycie alkoholem izopropylowym lub spiry- waną szeregowo diodą. cze trochę po gwarancji. Klient, który jest tusem technicznym z reguły wystarcza. Gorzej zadowolony z jednej marki, kupuje produkt wygląda sprawa z dużym wyciekiem. Najczę- tego samego producenta nie patrząc zbyt- ściej dowiadujemy się o nim, gdy po naciśnię- nio na cenę. ciu przycisku „Power” nic się nie dzieje i roz- ● I jeszcze raz pieniądze – produkując sprzęt kręcenie obudowy ukazuje nam okrutną praw- na dziesięciolecia, producenci musieliby stosować znacznie lepsze komponenty, co podniosłoby końcową cenę wyrobu, czyniąc go nieatrakcyjnym dla masowego nabywcy.

Ten sam schemat można zastosować do każ- dego typu produktu zmieniając tylko interwał czasowy: samochody, domy, kosmetyki... Po prostu w branży musi być ruch. Ruch to pod- stawa. Jeżeli jesteś fanem retro, musisz wie- dzieć, że Twój sprzęt był zaprojektowany tak, Bateria CR2032 aby już nie działał. To nie pomyłka – to że dzia- ła przeszło 20 lat od wyprodukowania to błąd Diodę należy połączyć szeregowo z baterią. konstruktorów. Przyznam się szczerze, że do Można to zrobić na dwa sposoby: niedawna również i ja byłem wyznawcą błęd- nej teorii o nieingerowaniu w działający sprzęt 1. Anodę diody do punktu na płycie gdzie był retro. Do czasu... „minus” akumulatora, a katodę do „minusa” baterii. „Plus” baterii łączymy na płycie tam, Amigę A4000D posiadam od 2002 roku i uży- gdzie był „plus” akumulatora. wałem jej głównie z WarpEngine 4040 + Cy- 2. Anodę diody do „plusa” baterii, a katodę do berVision 64, potem Picasso IV + Delfina Lite. punktu na płycie gdzie był „plus” akumula- System nie sprawiał mi żadnych niespodzia- tora. „Minus” baterii łączymy na płycie tam, nek, wszystko zawsze działało poprawnie. Je- gdzie był „minus” akumulatora. dyną rzeczą, którą zrobiłem po zakupie była wymiana akumulatora RTC (z ang. real-time Wadą tego rozwiązania jest konieczność za- clock) na nowy. Kłopoty zaczęły się po zamia- Na górze zdjęcie akumulatora RTC, na dole stosowania diody oraz fakt, że baterię trzeba nie WarpEngine na Cyberstorm PPC oraz do- akumulator z wyciekiem elektrolitu będzie po jakimś czasie wymienić na nową.

POLSKIE PISMO AMIGOWE 3/2011 5 Odprawiamy czary, czyli krótki poradnik jak ustrzec się od potencjalnej śmierci Amigi

Polecam akumulator „niecieknący” typu Nie wdając się w zawiłości techniczne, wyle- Wydawać by się mogło, że zasilacz albo dzia- UL3032, zamontowany w koszulce termo- wanie kondensatorów objawia się dla użyt- ła, albo nie działa. Niestety nie jest to takie kurczliwej w celu uniknięcia przypadkowych kownika w dwojaki sposób. Po pierwsze – proste. Po pierwsze, zasilacz daje fabrycznie zwarć. Ma on tę zaletę, że nigdy nie wycieknie, Amiga pracuje niestabilnie, nie zawsze się zbyt niskie napięcie. Specyfikacja A4000T (do nie ma konieczności stosowania diody oraz uruchomi, przypadkowe resety, brak dźwięku takiej mam dostęp) mówi, że napięcia powinny akumulator będzie ładowany podczas pracy lub zniekształcony dźwięk. Po drugie – elektro- być: Amigi, czyniąc to rozwiązanie bezobsługowym. lit jest żrący i niszczy elementy znajdujące się

na płycie komputera. Output +5V +12V -5V -12V

Max. Na zdjęciu widać wylane kondensatory C443 i 25.0A 10.0A 0.3A 0.3A C433 (22 µF 16V) w torze audio A4000D. Spo- Load Min. ro elementów jest zniszczonych. Do tego do- 5.0A 1.0A 0A 0A chodzi też zniszczenie samego laminatu. Sło- Load wem – nic przyjemnego. Max. 5.25V 12.6V -5.5V 13.20V Voltage

Radzę dla własnego spokoju Amigę rozkręcić Min. 4.8V 11.52V 4.5V -10.92V oraz obejrzeć właśnie te „aluminiowe kubeczki” Voltage i ich okolice. Patrzymy na połączenia lutowane kondensatorów i elementów znajdujących się Rozkład napięć zgodnie z „A4000T/40 blisko nich. Normalnie połączenia lutowane Advance Engineering Release #310” powinny być błyszczące lub ewentualnie lekko matowe. Jeżeli zauważymy dziwne przebar- Jak widać specyfikacja napięć zasilających to: wienia cyny, należy natychmiast kondensatory Akumulator UL3032 zamontowany na płycie wymienić. ● +5V maksimum 5,25V minimum 4,80V ● +12V maksimum 12,6V minimum 11,52V Można jeszcze zastosować akumulator (lub Ale co z tym robić? Czekać aż będzie gorzej i baterię z diodą) 3V o większej pojemności i Amiga odmówi pracy? Raczej nie. Rozwiązać Zmierzone przeze mnie napięcie na szynie podłączyć przewodami do płyty głównej, a sam ten problem można tylko w jeden sposób: wy- +5V przy prądzie 5A wynosiło +4,83V. Ozna- akumulator umieścić gdzieś w obudowie z dala mieniając wszystkie aluminiowe kondensatory cza to, że dość małe obciążenie zasilacza od płyty głównej, ale to rozwiązanie nie jest SMD. I tu ważna uwaga: kondensatory w to- A4000D powoduje, że napięcia wyjściowe są zbyt eleganckie. rze audio na pozycjach podanych powyżej bardzo bliskie dolnej tolerancji. To nie jest do- nie mogą być zamienione na elektrolitycz- brze. Co więcej, na rozbudowanych konfigura- ne! Po prostu te kondensatory również szybko cjach napięcie zasilające +5V potrafi spaść do Kondensatory elektrolityczne SMD padną. Jedyne co można zrobić, to użyć spe- +4,74V! Jest to napięcie średnie - przy obcią- cjalnych kondensatorów bipolarnych przezna- żeniu procesora i karty graficznej operacjami Aluminiowe kondensatory elektrolityczne SMD czonych do toru audio. Są to dwa kondensato- 3D napięcie może chwilowo spaść poniżej użyte w A600, CD32, A1200, A4000 i A4000T ry elektrolityczne zamknięte w jednej obudowie 4,70V. A to już zdecydowanie za mało. Rezul- mają tendencje do wylewania elektrolitu. Nie- i połączone szeregowo w taki sposób, że tat: Amiga robi niespodziewany reset. A my je- stety kondensatory te są tanie i kiepskiej jako- „plus” jednego kondensatora łączy się z „plu- steśmy zaskoczeni – WTF? ści. A może to był celowy zamysł konstrukto- sem” drugiego. I takiemu kondensatorowi rów Commodore, żeby sprzęt padł po 10 la- zmienna polaryzacja niestraszna. Ewentualnie tach i użytkownik kupił nowy sprzęt? Kto wie... użyć kondensatorów ceramicznych SMD o du- żych pojemnościach stosowanych w układach Proces wylewania elektrolitu jest jeszcze przy- zasilania procesorów. Mają one dużą pojem- spieszany przez wysoką temperaturę panującą ność (5 µF- 20 µF), ale niskie napięcie pracy wewnątrz komputera – szczególnie w rozbu- rzędu 3-6V. Dlatego jak nie znamy pełnej spe- dowanych konfiguracjach oraz – co najciekaw- cyfikacji takiego kondensatora, a szczególnie sze – poprzez zły dobór typu kondensatora jego napięcia pracy, lepiej jest zastosować przez inżynierów Commodore. Na wyjściu toru kondensatory bipolarne. audio w Amigach są dwa kondensatory elektro- lityczne po jednym dla każdego kanału. Pro- Resztę kondensatorów można zamienić na blem w tym, że najprawdopodobniej te kon- dowolne kondensatory elektrolityczne z densatory nie nadają się do toru audio, gdzie uwzględnieniem ich napięcia i pojemności. różnica napięć pomiędzy wyprowadzeniami nie Mogą być to nawet „zwykłe z nóżkami” do jest duża (ok. 1V) oraz występują tam niewiel- montażu przewlekanego. Ale najlepiej użyć Pomiar napięcia – nie wygląda to dobrze! kie prądy o częstotliwościach akustycznych. Te kondensatorów tantalowych. kondensatory to: C443 i C433 (22 µF 16V) dla Na domiar złego zasilanie +5V doprowadzone A4000D, C334 i C324 (22 µF 16V) dla CD32, jest do płyty głównej A4000D tylko jednym A1200 i A600 oraz CE320A i CE320B (22 µF przewodem! To bardzo duży błąd konstrukcyj- 16V) dla A4000T. ny. W pozostałych modelach „dużych” Amig +5V jest doprowadzane do płyty trzema lub I to właśnie te kondensatory w torze audio wy- więcej przewodami. Obydwa te błędy konstruk- lewają najszybciej – szczególnie w A4000D, torów należałoby naprawić, jeżeli chcemy gdzie temperatura wewnątrz obudowy jest uniknąć niespodzianek w postaci niestabilno- znaczna. ści systemu.

Napięcie wyjściowe zasilacza można zwiększyć lutując szeregowo rezystor 47 kΏ do rezystora 3 kΏ (lub 220 kΏ - są one połączone równolegle). Niestety na PCB nie jest zaznaczona pozycja tego rezystora. W Kondensatory elektrolityczne po wymianie celu lepszego rozeznania proponuję posłużyć się zdjęciem na kolejnej stronie. Problem Zasilacz jednego przewodu zasilającego płytę główną można rozwiązać lutując dodatkowy przewód Ten rozdział przeznaczony jest dla użytkowni- od żółtego przewodu +5V idącego z zasilacza ków posiadających rozbudowane konfiguracje do wyprowadzenia „plusa” kondensatora C187. lub planujących rozbudowę. Jeżeli masz kla- Po tym zabiegu zmierzone napięcie średnie na syka w podstawowej lub niezbyt rozbudowanej karcie VooDoo 3 miało wartość 5,13V. Jest to Wylane kondensatory elektrolityczne konfiguracji – ten rozdział możesz spokojnie nawet nieco za dużo, dlatego zamiast ominąć. rezystora 47 kΏ można zastosować 68 kΏ.

6 POLSKIE PISMO AMIGOWE 3/2011 Odprawiamy czary, czyli krótki poradnik jak ustrzec się od potencjalnej śmierci Amigi

Dodatkowy rezystor

Przepływ powietrza A4000D

że. Po prostu ciepło cały czas pozostaje w obudowie. Jedynym skutecznym rozwiązaniem jest pozbycie się ciepłego powietrza ze środka obudowy. I o tym traktuje ten rozdział.

Ponieważ wszelkie działanie bez planu to cha- os, rysujemy na kartce papieru PLAN. Przy Dodatkowy przewód 5V jego pomocy przystępujemy do jego realizo- wania. Nie przejmujmy się, jeżeli coś nie bę- dzie pasować (za duży wentylator, za mało miejsca). PLAN można modyfikować w trakcie prac. Zresztą to, co jest dobre w jednej konfi- guracji, niekoniecznie sprawdzi się w innej. Nie jest istotne, jaki wentylator zostanie gdzie uży- ty. Ważne jest to, żeby były one dobrej jakości Chłodzenie Indi AGA i G-Rex i nie zatarły się po roku pracy. Polecam wenty- latory marki Sunon.

Słowo końcowe

Podsumowując to, co użytkownik A4000D (i innych Amig klasycznych też) musi zrobić: Kolejny pomiar napięcia – 5,13V to dobry 1. Zawsze sprawdzamy stan akumulatora ze- wynik! gara. 2. Zawsze sprawdzamy stan kondensatorów Wentylacja elektrolitycznych. 3. Przy rozbudowanych konfiguracjach Również temat interesujący dla użytkowników sprawdzamy napięcie zasilające. rozbudowanych konfiguracji. Oryginalna kon- 4. Poprawiamy obieg powietrza, jeżeli jest to strukcja A4000D była przewidziana do karty konieczne. procesorowej 68040/40 MHz, jednego twarde- Chłodzenie Indi AGA i G-Rex – drugie ujęcie go dysku IDE, jednego lub dwóch napędów Wkładając nieco wysiłku na początku, bę- FDD oraz kilku kart Zorro. W tej konfiguracji dziemy mieli pewność, że zrobiliśmy wszystko, wentylator znajdujący się w zasilaczu w zupeł- co mogliśmy dla naszej ukochanej Amigi. Nie ności wystarcza. Problem pojawia się, gdy w zyskujemy pewności, że coś się nie uszkodzi tej obudowie pojawia się karta turbo Cyber- samo w trakcie użytkowania - w końcu to storm PPC z CyberVision PPC lub z Mediato- sprzęt, który lata świetności ma już dawno za rem + kartą VooDoo, a do tego jeden lub wię- sobą. Jednak sprawdzenie tych czterech punk- cej dysków SCSI i CD-ROM. We wnętrzu robi tów pozwoli nam z czystym sumieniem stwier- się już naprawdę gorąco. Dodajmy do tego plą- dzić, że zrobiliśmy wszystko, co w naszej taninę przewodów utrudniających przepływ mocy, aby sprzęt służył nam jak najlepiej. I o powietrza i mamy piekarnik. Na marginesie: ta to tutaj chodzi. wysoka temperatura tylko przyspiesza wyle- wanie kondensatorów elektrolitycznych. Co ma A obok znajdują się zdjęcia przedstawiające w tej sytuacji zrobić użytkownik? Musi jeszcze cały mój zestaw po implementacji wyżej opi- raz poprawić pracę konstruktorów. Niestety. sanych usprawnień.

Najpierw należy przemyśleć, co tak naprawdę Stanisław „stachu100” Sędłak Widok całości chcemy zrobić. Zakładanie radiatorów na wszystkie grzejące się układy (060, AGA, kon- troler SCSI, układy MACH) nic tutaj nie pomo-

POLSKIE PISMO AMIGOWE 3/2011 7 Zrób to sam – adapter CF w A600

ZróbZrób toto samsam –– adapteradapter CFCF w A600

W ramach przygotowania mojej Amigi 600 Przed montażem adaptera należy nad szczeli- do montażu karty procesorowej ACA630 po- ną dla kart PCMCIA wyciąć otwór, przez który stanowiłem zrezygnować z dysku twardego karta CF będzie wsuwana do swojego złącza. 2.5" na korzyść karty CompactFlash. Po- Zadanie ułatwi wspomniany wyżej szablon, wszechnie dostępne na rynku adaptery IDE- który należy wydrukować i odpowiednio przy- CF nie spełniały jednak wszystkich moich ciąć przed przyłożeniem do obudowy oczekiwań, którymi są brak kolizji z ACA630, A600/A1200. Po zaznaczeniu obrysu nowego możliwość stabilnego montażu wewnątrz obu- otworu wg szablonu można przystąpić do pra- dowy oraz dostęp do karty poprzez wycięcie cy, czyli wyjęcia wszystkiego łącznie z płytą otworu z lewej strony albo z tyłu obudowy główną z obudowy Amigi i rozpoczęcia usuwa- A600. Trafił mi się nawet model adaptera nie- nia zbędnego plastiku. Zadanie jest o tyle współpracujący z moją A600 (ROM 37.300, utrudnione, że szczelina PCMCIA jest dosyć płyta główna 1.3). Z pomocą przyszedł Inter- wąska, a plastik do miękkich nie należy. Autor net, a konkretnie serwis www.amibay.com, adaptera poradził sobie, korzystając z urzą- gdzie znalazłem wątek o tytule „CF to IDE dzenia typu Dremelek, ja natomiast posłuży- Extender, A600 and A1200” (adres do wątku w łem się zestawem niewielkich pilników. ramce). Oferowane w ogłoszeniu urządzenie jest produkowane amatorsko przez kanadyj- Po kilkudziesięciu minutach pracy przyszedł skiego członka serwisu AmiBay o pseudonimie czas na test. Zgodnie z zaleceniem autora, kipper2k i zaprojektowane zostało specjalnie z przed pierwszym uruchomieniem Amigi adap- myślą o użytkownikach komputerów Commo- ter powinien pozostać pusty, a obydwie zworki dore oraz (Commodore) Amiga muszą być otwarte. Po włączeniu zasilania za- 1200, którzy chcą mieć możliwość zmiany kar- świeci się czerwona dioda na adapterze, a ty CF bez konieczności otwierania komputera. Amiga wyświetli ekran powitalny ROM-u. Gdy- by tak się nie stało, należy sprawdzić popraw- Adapter dostarczany jest z dwoma zworkami i ność połączenia adaptera ze złączem IDE wkrętem, a ze strony autora można pobrać in- Amigi. Po pomyślnym teście można włożyć strukcję montażu i obsługi oraz szablony do kartę CF do adaptera i uruchomić Amigę, np. wycięcia otworu odpowiednio dla A600 i przy pomocy dyskietki Install, aby przygotować A1200. Dostępny jest również krótki film pre- kartę do pracy jak typowy dysk twardy w pro- zentujący działanie adaptera. Urządzenie jest gramie HDToolBox. W moim przypadku sys- montowane z jednej strony do wbudowanego tem nie potrafił znaleźć karty i z pomocą przy- złącza IDE, a z drugiej strony opiera się na szło przestawienie dwóch zworek adaptera na plastikowej ramce złącza PCMCIA, do którego zamknięte. Takie ustawienie pozwala na wy- jest dla zwiększenia stabilności przykręcone eliminowanie opóźnienia przy skanowaniu in- wspomnianym wcześniej wkrętem. W tym terfejsu IDE przez ROM 3.1, jeśli nie jest do miejscu istotna uwaga: kupiona przeze mnie niego podłączony żaden napęd. Ma to jednak wersja urządzenia pasuje do ramek stosowa- pewną wadę - po podłączeniu karty dioda ak- nych w A600 oraz wybranych modelach tywności dysku cały czas mruga, nawet gdy A1200, ale autor spotkał się też z takimi pły- nie odbywają się żadne operacje odczytu lub tami głównymi A1200, które miały ramki złącza zapisu danych na kartę. Ignorując tę niewielką PCMCIA innego kształtu i w tym przypadku za- niedogodność, przygotowałem kartę CF leca przyklejenie urządzenia do ramki przy HDToolBoksem, dokończyłem przywracanie pomocy kleju typu SuperGlue, aby osiągnąć Amigi oraz jej wnętrzności do stanu wyjścio- zakładaną stabilność. Kolejne produkowane wego i zainstalowałem AmigaOS 2.05. wersje będą odpowiednio dłuższe, aby zapew- nić zgodność z większością modeli A1200. Docelowo na kartę trafi pakiet ClassicWB, któ- ry będę mógł w wygodny sposób przenieść z Internetu na Amigę 600 przy pomocy laptopa Odnośniki wyposażonego w czytnik kart CF oraz z zain- stalowanym emulatorem WinUAE. Wyrażone ● http://www.amibay.com/showthread.php?t=14468 - wątek na portalu www.amibay.com, na początku oczekiwania zostały więc w pełni ● http://kipper2k.com/forsale.html – strona autora osiągnięte kosztem 18 CAD + 8,50 CAD za rozwiązania, wysyłkę (~ 75 PLN). ● http://kipper2k.com/cfextender/CF Extender.html – film prezentujący działanie urządzenia, ● http://classicwb.abime.net/ – ClassicWB, lord_spider (PSW)

8 POLSKIE PISMO AMIGOWE 3/2011 Język Lua w MorphOS-ie JęzykJęzyk LuaLua ww MorphOS-ieMorphOS-ie

Każdy użytkownik komputera po przekrocze- można pisać w Lua, można je także kompi- niu pewnego stopnia zaawansowania zaczyna lować np. w C. Moduły mogą być ładowane doceniać fakt istnienia w systemie operacyj- dynamicznie na żądanie, standardowy inter- nym języka skryptowego. W sposób szczegól- preter zawiera kod dynamicznego ładowania ny doceniają to amigowcy, albowiem ARexx - dla Windows (biblioteki DLL) i systemów unik- język przyjęty dla AmigaOS jako standardowy - sowych (shared objects). W wersji dla systemu posiada cechy wyjątkowe. Oprócz klasycznej MorphOS zaimplementowałem dynamiczne funkcji, polegającej na automatyzacji zadań moduły korzystające z systemowych bibliotek wykonywanych w linii komend, ARexx potrafi (*.library). Dodatkowo wszystkie moduły stan- sterować aplikacjami poprzez specjalne porty dardowe Lua przeniosłem do bibliotek ze- komunikacyjne zwane potocznie – jakże by wnętrznych, co dodatkowo odchudziło interpre- inaczej – portami ARexxa. W ten sposób pro- ter. Rzadko kiedy w skrypcie potrzebne są stym skryptem można połączyć ze sobą kilka wszystkie moduły standardowe, przez ich programów tworząc z nich jeden super-pro- przeniesienie do plików zewnętrznych zużycie gram na potrzeby konkretnego zadania. Po- pamięci jeszcze się zmniejsza. Oczywiście nieważ standard się przyjął i praktycznie każdy skoro moduły Lua są systemowymi bibliote- program użytkowy na Amigę, a obecnie rów- kami MorphOS-a, wszystkie skrypty ładujące nież i MorphOS-a jest wyposażony w port Are- dany moduł korzystają z tej samej kopii modu- xxa, potęga takiego rozwiązania jest ogromna. łu w pamięci, moduł może też zostać usunięty z pamięci, gdy nie jest już potrzebny. ARexx jednakże nie jest standardem języka Lua jest językiem przystępnym. Tak zwana skryptowego w MorphOS-ie. Przyczyna jest krzywa uczenia się nie jest stroma i łatwo za- Lua jako zamiennik ARexxa oczywista, jest to produkt będący elementem cząć programowanie. Z drugiej strony nie jest komercyjnego AmigaOS. Można by pomyśleć to na pewno język prymitywny. Po wstępnej Ponieważ Lua bardzo łatwo rozszerza się po- o zakupie licencji, gdyby nie fakt, że kody źró- zabawie w proste procedurki i oswojeniu się z przez moduły, dodanie obsługi portów ARexxa dłowe zaginęły, zdaje się, w pomroce dziejów. językiem, programista może sięgnąć po tech- odbywa się przez załadowanie odpowiedniego Wiadomo też skądinąd, że ARexx był napisany niki takie jak klasy, dziedziczenie, enkapsula- modułu nazwanego ipc.module. Moduł ten do- w asemblerze procesora M68k. Nawet Ami- cję danych, przestrzenie nazw, moduły, a na- daje do języka dwie nowe funkcje: address() i gaOS 4 zawiera te same pliki wykonywalne wet bardziej egzotyczne techniki, np. progra- rx(). Pierwsza jest odpowiednikiem arexxowe- Arexxa (dla procesora M68k), co AmigaOS mowanie funkcjonalne. Przy rozwiązywaniu go polecenia ADDRESS i ustala nazwę portu, 2.0, w którym to język pojawił się po raz pierw- prostych problemów można spokojnie pozo- do którego będą kierowane wywołania. Analo- szy. Mimo tego, że można uruchomić i używać stać na terenie klasycznego programowania gicznie do ARexxa obsługiwany jest też wirtu- ARexxa pod MorphOS-em kopiując pliki z proceduralnego. Lua jest też językiem lekkim. alny port „COMMAND”, który kieruje polecenia AmigaOS, języka tego nie znajdziemy w stan- Biblioteka lua.library zawierająca interpreter li- do DOS-a. Druga z funkcji służy do wydawania dardowej dystrybucji systemu. czy sobie niecałe 150 kB. Ponieważ język ten poleceń. Nie ma ona arexxowego odpowiedni- znalazł bardzo wiele zastosowań, szczególnie ka. ARexx ma tę unikalną cechę, że komendy Warto też zauważyć, że napisany w 1987 roku jako język wbudowywany w aplikacje, jest dość programów można pisać wprost w skrypcie, in- ARexx jest implementacją języka REXX, któ- popularny. W sieci znajdziemy wiele stron i fo- terpreter potrafi sam je ze skryptu „wyłowić”. rego historia sięga roku 1979. Przez 32 lata, rów poświęconych Lua i programowaniu w tym W Lua aż tak miło nie ma, jednak nie jest to jakie minęły od tego czasu, języki skryptowe i języku, ukazało się też drukiem kilka książek wielki problem. Oto prosty przykład, rysujący techniki programowania nie stały w miejscu. na jego temat, niestety na razie bez polskich kilka kresek w programie TVPaint: Mimo swoich niezwykłych możliwości, ARexx tłumaczeń. jako język programowania stał się językiem ar- require("ipc") chaicznym. Dzięki temu, że standard portów Port address("rexx_TVPaint") ARexxa jest nieźle udokumentowany, istnieje rx("tv_SetDrawMode", "Color") możliwość rozszerzenia innych języków skryp- rx("tv_SetAPen", 0, 0, 0) towych o możliwość komunikowania się z apli- Standardowy interpreter języka Lua jest napi- for i = 0, 100, 10 do sany w przenośnym języku C. Jego skompilo- rx("tv_Line", 100 + i, 100, 300 + i, 300) kacjami przez porty ARexxa. Jako pierwszy w end MorphOS-ie (a także w AmigaOS 4) zdobył wanie na MorphOS-ie jest trywialne: make, taką możliwość popularny język skryptowy Py- configure i gotowe. Wtedy dostajemy jednak thon. Jest to jednak język dość ociężały (inter- po prostu kolejny interpreter języka skryptowe- Jak widać, w prostych zastosowaniach przej- preter Pythona zajmuje pod MorphOS-em po- go jako polecenie konsoli. Zero jakiejkolwiek ście z ARexxa na Lua nie jest trudne. Lua po- nad 2 MB), borykający się ze wzajemną nie- integracji z systemem. MorphOS-owy port Lua trafi też oczywiście odbierać wyniki poleceń kompatybilnością kolejnych wersji. Nie każde- ma postać biblioteki systemowej nazwanej ARexxa. Obsługiwany jest zarówno wynik RC mu musi się też podobać to, że składnia Py- lua.library. Ma to sens, bo Lua może być uży- (poprzez globalną zmienną „rc” w Lua) jak i thona wymusza określone formatowanie kodu, wana w niespotykany np. dla ARexxa sposób - RESULT (jako wynik polecenia rx()), przy czym co jest zaskakujące dla programisty znającego mianowicie można interpreter wbudować w nie jest wymagane użycie polecenia OPTIONS praktycznie każdy inny popularny język pro- aplikację. Dzięki temu można w Lua pisać np. RESULTS. Oto przykład - odczytanie wartości gramowania. wewnętrzną logikę w grach, przetwarzać tek- ARGB piksela w TVPaincie. Można je dopisać sty, pozwolić użytkownikom na pisanie rozsze- na końcu poprzedniego skryptu: Jeżeli nie Python, to co? Poszukując lekkiej, rzeń do programu, tworzyć szybkiej, łatwej do nauczenia się i elastycznej złożone pliki konfiguracyjne i require("base") require("string") alternatywy dla ARexxa natknąłem się na język tak dalej. Na innych syste- Lua. Lua ma dość egzotyczne pochodzenie - mach operacyjnych najczę- argb = rx("tv_GetPixel", 100, 101) a, r, g, b = string.match(argb, "(%d+) (%d+) (%d+) (%d+)") powstała bowiem w Brazylii (po portugalsku ściej linkuje się statycznie print(a, r, g, b) „Lua” oznacza Księżyc). Prace rozpoczęto w Lua z programem. Pod sys- 1993 roku. Standard języka ustalił się wraz z temem MorphOS wystarczy wersją 4.0 w roku 2000, ostatnie większe otworzyć lua.library, dzięki temu wszystkie Kod ten pokazuje też użycie modułu standar- zmiany zaszły w wersji 5.0 w roku 2003, a programy korzystają z tej samej kopii interpre- dowego string.module do parsowania łańcu- obecna wersja stabilna 5.1.4 pochodzi z roku tera. chów tekstowych. Wyniki z portów ARexxa są 2008. Świadczy to o stabilności języka i za- zawsze przekazywane jako teksty, w tym przy- chęciło mnie do jego przeniesienia na Kolejną ważną cechą Lua są moduły, które padku tekst zawiera 4 liczby rozdzielone spa- MorphOS-a. rozszerzają język o nowe możliwości. Moduły cjami. W pokazany wyżej sposób, można roz-

POLSKIE PISMO AMIGOWE 3/2011 9 Język Lua w MorphOS-ie

bić ten tekst na cztery liczby. Moduł string tekstowy zawierający działanie matematyczne, jedynki jako argumenty oznaczają, że przesy- umożliwia przetwarzanie tekstów z wykorzy- na przykład: łamy jeden argument do Lua i odbieramy je- staniem wyrażeń regularnych znanych np. z den wynik. Perla, choć są tu drobne różnice. „62 - 71 * 12 + 102 / 3”. Oczywiście - jeżeli obliczenie wyrażenia bę- Uważny czytelnik zauważy, że przykładowy Działanie to jest za każdym razem inne, wpi- dziemy wykonywać wielokrotnie, powtarzać skrypt jest nieco beztroski, bo nie sprawdza, sywane przez użytkownika. Trzeba wyznaczyć trzeba tylko cztery linie kodu, począwszy od czy program, mający być celem wysyłanych jego liczbowy wynik. Napisanie tego w C jest LuaGetGlobal(). Co więcej, jeżeli zachodzi komend, jest uruchomiony. Do sprawdzenia oczywiście możliwe, niemniej z pewnością taka potrzeba, można w jednym skrypcie tego w Arexxie używaliśmy polecenia Wait- zajmie trochę czasu. W Lua zadanie można umieścić wiele funkcji i po jego interpretacji ForPort. Moduł ipc.module posiada również rozwiązać na przykład tak: wywoływać te funkcje wedle uznania. Gdybyś- funkcję waitforport(), której używa się na przy- my z jakichś require('string') kład w taki sposób: require('base') względów wole- li ładować ipc.waitforport("rexx_TVPaint", 10) function muldiv(op1, oper, op2) if (oper == '*') then x = op1 * op2 skrypt z pliku else x = op1 / op2 (np. aby umoż- end liwić użytkowni- Po umieszczeniu tego kodu na początku return x skryptu, Lua będzie czekać maksymalnie 10 end kowi jego mo- dyfikację), w sekund na uruchomienie TVPainta, a jeżeli to function addsub(op1, oper, op2) nie nastąpi, skrypt zakończy działanie z komu- if (oper == '+') then x = op1 + op2 kodzie zmieni else x = op1 - op2 się tylko tyle, nikatem błędu. end return x że w LuaLoad() end Niestety Lua nie będzie prawdopodobnie w pojawi się stała stanie zastąpić ARexxa w stu procentach, function kalkulator(wyr) LUA_READER repeat _FILE, a za- szczególnie jeżeli chodzi o starsze programy. wyr2 = string.gsub(wyr, '(%-?%d+)%s*([%*/])%s*(%-?%d+)', muldiv, 1) Niektóre z nich wysyłają polecenia ARexxa brak_zmiany = (wyr == wyr2) miast wskaźni- wyr = wyr2 ka na strukturę bezpośrednio do portu „REXX”, nie korzystając until brak_zmiany z pośrednictwa programu rx. Lua mogłaby two- repeat LuaMemoryDa- wyr2 = string.gsub(wyr, '(%-?%d+)%s*([%+%-])%s*(%-?%d+)', addsub, 1) ta opisującej rzyć taki port i przechwytywać polecenia za- brak_zmiany = (wyr2 == wyr) kładając, że są one napisane w Lua. Takie wyr = wyr2 bufor w pamię- until brak_zmiany ci, damy po rozwiązanie być może miałoby szansę działać return tonumber(wyr) np. z programem AmIRC (polecenia definio- end prostu ścieżkę wane w zakładce „Zdarzenia”). Niektóre inne do skryptu. Nic aplikacje mogą jednak wysyłać polecenia, któ- Funkcja kalkulator() działa w ten sposób, że nie stoi na przeszkodzie, aby w takim skrypcie re nie są edytowalne przez użytkownika. Wte- wyszukuje kolejne działania od lewej do prawej wewnętrznym aplikacji wysyłać komendy Are- dy nie dość, że nie zostałyby rozpoznane i każde znalezione działanie elementarne wraz xxa do innych programów. Możliwości, jakie przez interpreter Lua, to niemożliwe byłoby z jego argumentami zastępuje jego wynikiem. się otwierają, są nieograniczone jednoczesne używanie Lua i ARexxa. W sys- Aby zachować kolejność działań, w pierwszej temie nie mogą istnieć dwa porty o tej samej pętli przeglądane są mnożenia i dzielenia. Po Warto się przyjrzeć ile „kosztuje” takie użycie nazwie. Pewnym, nieco hakerskim rozwiąza- ich eliminacji – dodawania i odejmowania. skryptu Lua, w sensie zapotrzebowania na niem, byłaby bezpośrednia modyfikacja (edy- Ostatecznie po eliminacji wszystkich działań pamięć i szybkości wykonania. Wstępną ceną torem szesnastkowym) programu RexxMast pozostaje jedna liczba, czyli końcowy wynik. A uruchomienia skryptu jest załadowanie do pa- tak, aby tworzył port o innej nazwie, np. „RE- oto jak wygląda załadowanie, przekazanie pa- mięci biblioteki lua.library (150 kB), base.mo- X2”. Wtedy Lua przechwytywałby polecenia do rametru, wykonanie i odebranie wyniku z po- dule (20 kB) i string.module (22 kB) - razem swojego portu „REXX”, a jeżeli byłyby niezro- ziomu programu w języku C: 192 kB pamięci. Są to jednakże biblioteki zumiałe, przekazywałby je dalej do wykonania współdzielone, zatem ARexxowi. Być może kiedyś zaimplementuję if (LuaBase = OpenLibrary("lua.library", 50)) jeżeli zostały wcześniej { takie rozwiązanie. LuaState *L; otwarte przez inny pro- struct LuaMemoryData lmd; gram, żadna dodatko- if (L = LuaNewState(NULL, NULL)) wa pamięć nie zostanie Użycie Lua wewnątrz programu { zajęta. Zużycie pamięci char *wyrazenie = "8 - -7 * 2 + 10 / 4"; LONG wynik; przez interpreter wyko- Lua używany jako zamiennik ARexxa, komuni- nujący skrypt można kuje się z programem niejako z zewnątrz. Nic lmd.Buffer = Skrypt; lmd.Length = sizeof(Skrypt) - 1; precyzyjnie zmierzyć nie stoi jednak na przeszkodzie, żeby pisząc programem Lua Explo- program, np. w C, jego część napisać w Lua, if (LuaLoad(L, LUA_READER_MEMORY, &lmd, "kalkulator") == 0) { rador, który mierzy na tworząc wewnątrz programu instancję interpre- LuaPCall(L, 0, 0, 0); bieżąco w czasie wy- tera. Jakie mogą być powody takiego działa- LuaGetGlobal(L, "kalkulator"); LuaPushString(L, wyrazenie); konywania skryptu ak- nia? Są problemy programistyczne, które w LuaPCall(L, 1, 1, 0); tualne i szczytowe zu- Lua może być po prostu wygodniej rozwiązać. wynik = LuaToInteger(L, -1); Printf("%s = %ld\n", wyrazenie, wynik); życie pamięci. Dla Przykładem mogą być bardziej złożone opera- } skryptu kalkulatora cje na dynamicznych tekstach. Fragment w else PutStr(LuaToString(L, -1)); szczytowe zużycie wy- Lua można też ładować z pliku, co pozwoli LuaClose(L); nosi 14 kB, uwzględnia użytkownikowi na zmianę działania programu. } CloseLibrary(LuaBase); to pamięć niezbędną Takie podejście wykorzystuje (niestety na razie } na załadowanie skryptu nie w pełni ukończony) program do IRC – i przetłumaczenie go na Sermonatrix. Reakcję programu zarówno na kod „maszyny wirtual- komendy własne, jak i pojawiające się na ka- Po klasycznym otwarciu biblioteki, funkcja Lu- nej” Lua. nale IRC teksty użytkownik może oskryptować aNewState() tworzy interpreter. Następnie w Lua. funkcja LuaLoad() ładuje skrypt ze zwykłej ta- Jeżeli chodzi o szybkość wykonania, to oczy- blicy typu char, w której umieszczony jest wiście kod w Lua będzie znacznie wolniejszy Wymiana danych między kodem w C (czy in- skrypt Lua pokazany wyżej. Pierwsze wywoła- niż procedura w C. Jeżeli jednak przetwarzane nym języku) a skryptem Lua jest bardzo prosta nie LuaPCall() wykonuje nam cały skrypt. Po- wyrażenie jest wprowadzane przez użytkowni- i wykonywana za pomocą funkcji z biblioteki nieważ jednak zawiera on wyłącznie definicje ka, to kwestia czy będzie ono obliczane przez lua.library. Parametry dla funkcji w Lua są funkcji, to wykonanie spowoduje tylko załado- jedną milisekundę, czy 20 milisekund ma zna- umieszczane na specjalnym stosie (nie należy wanie modułów zewnętrznych wyszczególnio- czenie wtórne. Sprawa przedstawiałaby się go mylić ze sprzętowym stosem procesora) nych przez require() oraz zapamiętanie funkcji. inaczej, gdyby nasz program musiał wczyty- tworzonym przez Lua. Wyniki funkcji (których Kolejnym krokiem jest wrzucenie na stos Lua wać z pliku i przetwarzać setki tysięcy takich w Lua może być wiele) są, po jej wykonaniu, funkcji kalkulator(), a następnie jej parametru, wyrażeń, wtedy z pewnością dodatkowa praca do wzięcia z tegoż stosu. Dla przykładu roz- czyli wyrażenia do obliczenia. Drugie wywo- włożona w napisanie parsera w języku C, wiążmy następujący problem. Mamy łańcuch łanie LuaPCall() wykonuje naszą robotę. Dwie przyniosłaby efekt.

10 POLSKIE PISMO AMIGOWE 3/2011 Język Lua w MorphOS-ie

Lua Explorador W przypadku używania fragmentów w Lua w napisany, że można łatwo zastąpić nim stan- programie kompilowanym zawsze idziemy na dardowy interpreter. Dynamiczna kompilacja – Odnośniki pewien kompromis – ułatwiamy sobie i przy- w dużym uproszczeniu – polega na tym, że fragmenty programu wykonywane więcej niż ● http://www.lua.org - Strona domowa języka spieszamy pisanie programu, kosztem szyb- Lua, kości jego wykonania i wymagań pamięcio- raz, są tłumaczone na kod maszynowy proce- ● http://www.lua.org/manual/5.1/ - Podstawowa wych. Wymagania pamięciowe nie są jednak, sora i zapamiętywane. Przy kolejnym wykona- dokumentacja i specyfikacja języka, jak pokazałem powyżej, ogromne, natomiast niu fragmentu nie następuje już interpretacja ● http://lua-users.org/wiki/ - Baza wiedzy o Lua szybkość wykonania nie zawsze jest sprawą programu Lua, zamiast tego procesor wykonu- rozwijana na zasadzie wiki, krytyczną. W wielu przypadkach jest to cena, je swój natywny kod z pełną prędkością. ● http://www.lua.org/pil/ - Pierwsze wydanie jaką warto zapłacić. Świetnie dla MorphOS-a się składa, że LuaJIT książki „Programming in Lua” w wersji elektro- obsługuje również procesory PowerPC. W nicznej ● http://lua.org.pl - Strona o Lua po polsku, Plany na przyszłość przyszłości z pewnością przymierzę się do za- znajduje się tu również niedokończone tłuma- stosowania LuaJIT w morphosowym porcie ję- czenie specyfikacji języka, zyka. Port Lua dla MorphOS-a znajduje się wciąż w ● http://morphos-files.net/download/Lua - najnowsza wersja Lua dla MorphOS-a. wersji 0. Oznacza to, że jakiś rozwój jest na pewno planowany. Przede wszystkim trzeba przeportować brakujące jeszcze moduły stan- Grzegorz Kraszewski dardowe Lua – math, os, table, coroutine i de- bug. Pracy wymaga również Lua Explorador. Nieco bardziej ambitnym zamierzeniem jest umożliwienie pisania w Lua kompletnych pro- gramów używających MUI. Chodzi przy tym nie tylko o proste programiki bazujące jedynie na notyfikacjach. Bardzo ważne jest umożli- wienie pisania w Lua własnych klas MUI, bo tylko w ten sposób można w pełni wykorzystać potencjał MUI i jego możliwości. Przydatne będzie z pewnością udostępnienie poprzez moduły innych systemowych bibliotek, cho- ciażby locale.library.

Wierzę w to, że za jakiś czas Lua będzie języ- kiem, w którym da się zrobić wszystko to, co w C, oczywiście z wyjątkiem rzeczy „blisko sys- temu” takich jak biblioteki współdzielone czy sterowniki urządzeń. Różnica będzie też w wy- dajności, wszak Lua jest językiem interpreto- wanym. Istnieje jednak prężnie się rozwijający projekt LuaJIT – interpreter Lua używający technik dynamicznej kompilacji. Jest on tak

POLSKIE PISMO AMIGOWE 3/2011 11 As wywiadu, czyli jak to się zaczęło – historia Benedykta Dziubałtowskiego AsAs wywiaduwywiadu czyli jak to się zaczęło – historia Benedykta Dziubałtowskiego

Będąc na wielu amigowych zlotach, często bywam pytany o to - jak się robi wywiady oraz, jak to się zaczęło. Proszony jestem o podanie rodowodu swojego imienia i nazwiska. Pomy- ślałem, że napiszę o tym artykuł - aby szersze grono ludzi, którzy nie uczęszczają na amigo- we spotkania, mogło o tym przeczytać.

Zacznę może od mojego imienia i nazwiska. Benedykt to moje imię z bierzmowania. Długo szukałem jakiegoś ciekawego imienia na tę okoliczność. Zdecydowana większość kumpli wybierała Piotr, Paweł, Mateusz. Ja chciałem mieć oryginalne. Padło na Cypriana. Niestety ktoś inny z ówczesnej grupy przyszłych „bierzmowańców” zdecydował się na takie imię. Dwóch Cyprianów jednocześnie to dla mnie było za dużo. Tak więc zacząłem werto- wać żywoty świętych i moją uwagę przykuł właśnie św. Benedykt. Takie też imię wybra- łem, a było to 3 maja 2001 roku. Nazwisko to zupełnie inna bajka. Opiszę je jednak dosyć enigmatycznie z pewnych względów, do któ- rych nie chciałbym wracać pamięcią. Mimo upływu lat to jednak nadal boli.

Korzenie Dziubałtowskiego sięgają wydarzeń z rejonów opolsko-wrocławskich, a konkretnie dnia 6 czerwca 2005 roku. Właściwie to po dziś dzień żałuję, że wybrałem to nazwisko. Najbardziej chyba żałowałem 2 sierpnia 2008 roku. Ale były też czasy, że bardzo je lubiłem. Swego czasu nawet byłem w urzędzie z wnio- ski. Może kiedyś zmienię nazwisko na Klerik? uporem osła zacząłem małym, kieszonkowym skiem o zmianę nazwiska na Dziubałtowski, Po czesku to kancelista, czyli pisarz. Chyba wiertełkiem wiercić dziurę w kolanie szefa Ava- ale ostatecznie stwierdziłem, że to jest wyjąt- nawet do mnie pasuje. Jako ciekawostkę po- lonu. W końcu otrzymałem upragnioną zgodę, kowo głupi pomysł. Tak czy siak, nazywam się wiem, że Dziubałtowski został kiedyś wycenio- zrobiłem wywiad z MDW i napisałem recenzję Benedykt Dziubałtowski. Imię i nazwisko jest ny na 10 tysięcy PLN. Zaproponowano mi taką „Rycerzy Mroku”. Cały materiał powędrował na moje. W pewnym okresie życia musiałem się z sumę w zamian za zaprzestanie używania PPA. MDW kręcił z politowaniem głową, że tym pogodzić i tak już raczej pozostanie. Ktoś tego nazwiska. Niestety ja głupi nie skorzysta- komuś się chce grzebać w tych wykopali- mi kiedyś zaproponował skrócenie Dziubał- łem. Najgorsze jest to, że propozycja nie padła skach. Mnie się chciało i mi się to podobało. towskiego o parę liter. Wychodziłoby Dziuba, ponownie. Dziś bym się nie zastanawiał. ale to jeszcze głupszy pomysł niż Dziubałtow- Jednak jak dla mnie to było nadal mało. Po- Co do wywiadów. Historia jest dosyć ciekawa. stanowiłem zacząć szukać ludzi, którzy kiedyś W okolicach roku 2006 wertowałem sobie in- tworzyli gry na Amigę oraz starać się o zgody ternet w poszukiwaniu artykułów o Amidze. na ich publikację. Wiele osób pytało mnie o Wpadłem przypadkiem na PPA. Zacząłem czy- metody, jakimi się posługuję. Właściwie to nie tać forum i niejaki MDW pisał o tym, jak pro- było nic skomplikowanego. Na początku wpi- gramował zapis stanu gry do swojej produkcji sywałem czyjeś nazwisko w wyszukiwarkę GG „Miasto Śmierci”. Szczęka mi opadła, a oczy albo w Google. Z czasem pojawiła się „Nasza wyskoczyły z oczodołów. Zawsze marzyłem, Klasa” i właśnie tam udało mi się znaleźć naj- aby móc porozmawiać z Twórcą gry kompute- więcej ludzi. Chyba najwięcej trudu zajęło zna- rowej (przed duże T i małe g). Zacząłem szu- lezienie ks. Jana Pikula. W pierwszej fazie po- kać jakichkolwiek namiarów na wtedy jeszcze szukiwań znalazłem informację o tym, że ks. bliżej mi nieznanego pana o ksywce MDW. Po Jan Pikul nie żyje. Okazało się jednak, że nie wysłaniu kilku maili dostąpiłem zaszczytu roz- o tego Pikula chodzi. Obdzwoniłem połowę mowy z Mariuszem Włodarczykiem. Możecie polskich parafii (jeśli mnie pamięć nie myli, to się śmiać, czytając te słowa, ale ja wtedy by- coś około 60) zanim wpadłem na jego trop. łem maksymalnie „podjarany” możliwością Jednak ksiądz Jan Pikul odmówił wywiadu i rozmowy z „bóstwem”. Pamiętam jak dziś na- stwierdził, że na to potrzebna jest zgoda bi- szą pierwszą rozmowę na GG. Zaczęła się skupa. Jednak i to się załatwiło. około godziny 18:00, a skończyła gdzieś w go- dzinach rannych. Mi jednak było mało. Wypyta- Jednym z najbardziej nieoczekiwanych wywia- łem Mariusza chyba o wszelkie możliwe rzeczy dów był wywiad z Markiem Pampuchem. Pa- dotyczące jego gier. Po kilku dłuższych roz- miętam temat na forum PPA „co się stało z mowach zaproponowałem wywiad oraz publi- Markiem Pampuchem”. Ludzi pytali, kombino- kację jego gry „Rycerze Mroku” na PPA. Spra- wali. No w sumie ja też. Tylko, że ja wziąłem wa wbrew pozorom nie była łatwa. Należało do ręki książkę telefoniczną, zadzwoniłem i uzyskać zgodę na publikację gry od wydawcy, zapytałem. firmy L.K. Avalon, a ten zgodzić się nie chciał. W takich sytuacjach musi przyjść ktoś, kto nie Gdy ludzie pytają mnie o wywiad, który uwa- wie o tym, że tego zrobić się nie da i to musi żam za najlepszy, to sądzę, że będzie to wy- zrobić. Tak więc, że ja o tym nie wiedziałem i z wiad z Tomkiem Tomaszkiem - członkiem gru-

12 POLSKIE PISMO AMIGOWE 3/2011 As wywiadu, czyli jak to się zaczęło – historia Benedykta Dziubałtowskiego

Cztery razy próbowałem zdobyć średnie wykształcenie, bo marzyły mi się studia. Nie- stety - cztery razy szkołę oblałem (ostatni raz w grudniu 2010). Chyba nie jest mi to pisane. Braki w edukacji jednak nie przeszkadzają ani w prowadzaniu mojej firmy, ani w amigowaniu, ani w robieniu wywiadów.

Na sam koniec opiszę najgłupszą sytuację w mojej amigowej karierze. Zdarzyło się to 1 czerwca 2011 roku. Pojechałem z moja Ami- gą do Mastera, aby zreanimować s-video. Re- animacja się powiodła, niestety ustawiony overscan nie trzymał synchronizacji na telewi- zorze Mastera. Master więc odpalił moją Ami- gę bez sekwencji startowej i zanim załadował setpatcha i loadwb chciał przypisać ENV do RAM. Wpisał więc w CLI „mout env: ram:”, a ja zwróciłem mu uwagę, żę w składni brakuje li- terki „n”. Master poprawił, ale Amiga nadal nie przypisywała prawidłowo ENV tylko wyrzucała jakieś błędy w katalogu DOSDrivers. Kombi- nowaliśmy nad tym parę dobrych minut. Ma- ster kasował dwukropki, a ja kombinowałem co jest nie tak. W pewnym momencie mnie oświeciło i uświadomiłem sobie kretynizm sy- tuacji. Aby pomylić mount z assign, to trzeba mieć nieźle wypite. Najgorsze jest to, że oby- dwaj byliśmy trzeźwi.

Tym optymistycznym akcentem chyba skoń- czę mój wywód. Wypadałoby chyba kogoś po- zdrowić. No więc pozdrawiam moją Marcelinę, która co prawda Amigi nie rozumie i pyta mnie, czym to się różni od komputera, ale na szczę- ście akceptuje.

Benedykt Dziubałtowski

py World Software, twórców „Franko” i „Doma- dla mnie na jednej imprezie AmiWawa. A jak na”. Wywiad jest bardzo długi, a jego przepro- ludzie reagowali na takie powitanie? Bardzo różnie, ale w zdecydowanej większości pozy- wadzenie trwało w przybliżeniu półtora roku. Benedykt Dziubałtowski z siostrą – rok 1989 Jednak miałem okazję wypytywać programistę tywnie. Jedna z moich ofiar wywiadowczych dosłownie o wszystko, co tylko było możliwe. nawet zaczęła krzyczeć głośno do słuchawki, Dzięki mojemu oślemu uporowi oraz kieszon- a po chwili dodała „O Ku**a, to ktoś jeszcze o kowej wiertarce, której użyłem po raz kolejny tym pamięta?” Takich i innych miłych zdarzeń wiercąc dziurę w kolanach pozostałych człon- było dużo więcej. Zdarzały się też oczywiście ków grupy World Software, udało się także mniej miłe momenty, typu wyzwiska i tym po- opublikować wersje nieocenzurowaną „Franka” dobne, ale nie będę się na ten temat rozwo- oraz całkiem sporo materiałów z nigdy niewy- dził. Nie ma sensu, lepiej pamiętać dobre chwi- danej drugiej części gry. le, takie jak choćby to, gdy wpadłem jak paro- wóz na ślub wspomnianego już wcześniej Robienie wywiadów wiążę się z wieloma profi- MDW. Ślub odbył się we Wrocławiu. W ręku tami. Pewnego razu dostałem od kogoś piwo trzymałem dyskietkę z grą, która MDW popeł- Karmi, a na jednych z Amizaduszek nawet ba- nił - „Pechowy prezent” oraz przygotowałem ton Bounty. Ale takim niematerialnym profitem dla niego życzenia, w które wplecione były ty- było chyba członkostwo w redakcji PPA. Roz- tuły jego gier. Reakcja MDW była, powiedzmy, pierała mnie duma, gdy dzwoniłem do kogoś i powściągliwa. Ale sądzę, że ostatecznie mój mówiłem „Dzień dobry, z tej strony Benedykt dziwaczny pomysł mu się spodobał. Dziubałtowski. Jestem jednym z redaktorów Polskiego Portalu Amigowego, czy zgodzi się Na sam koniec chyba najdziwniejsza rzecz. Pan na wywiad?” Warto nadmienić, że zrobio- Klika osób było pewnych, że jestem po dzien- no nawet o mnie grę na Amigę. Za 20 lat bę- nikarstwie albo w trakcie lub po prostu mam dzie czym się dzieciom pochwalić. Oprócz mgr przed nazwiskiem. A tu klops. Z wykształ- tego bardzo miła atmosfera jest na zlotach cenia jestem elektromechanikiem ze specjali- amigowych. Dzięki mojej pracy stałem się do- zacją „przewijanie silników elektrycznych”. syć rozpoznawalną osobą w amiświatku. Efek- Przed nazwiskiem zamiast mgr mam czelad- tem tego była nawet piosenka zaśpiewana nik. Tak, to prawda. Jestem po zawodówce.

POLSKIE PISMO AMIGOWE 3/2011 13 Discworld DiscworldDiscworld

Oto wielki A'Tuin - gwiezdny żółw, sunący majestatycznie przez otchłań kosmosu. Na swej skorupie niesie cztery słonie, dźwigające niewielki, dyskowaty świat, otoczony bezu- stannie przelewającym się w nicość oceanem. Przesuwają się przed naszymi zdumionymi oczyma, a plumkająca w tle muzyczka MIDI... Zaraz, zaraz! Jaka muzyczka?! Ach, to dlate- go, że nie czytamy jednej z książek z cyklu „Świat Dysku”, tylko oglądamy intro do gry przygodowej „Discworld”.

W czym rzecz?

Książki ze „Świata Dysku”, których autorem jest Terry Pratchett, cieszą się niesłabnącą popularnością wśród miłośników „lekkiej fanta- styki”. Napisane są w niepowtarzalnym stylu i z olbrzymim poczuciem humoru. Stworzenie na ich podstawie gry komputerowej było tylko kwestią czasu. A uruchomienie jej na naszych Ami-maszynach... cóż, było tylko kwestią nie- co dłuższego czasu. Nie ukrywam, że czyta- „Szanowna wycieczko, oto typowa łazienka w stylu Ankh-Morporiańskim. Proszę zwrócić uwagę łem większość książek ze wspomnianego cy- na piękne odwzorowanie efektu rampy” klu i sprawiło mi to niemałą frajdę. Gdy więc zobaczyłem na liście obsługiwanych przez „Nauka Świata Dysku” „Ruchome Obrazki” ScummVM gier znajomy tytuł, nie posiadałem się z radości. Zwłaszcza że gdzieś w zaka- Grę obsługujemy za pomocą myszki. Lewym Przykro mi o tym mówić, ale grafika w grze markach mojej pamięci tkwiło wspomnienie przyciskiem przemieszczamy Rincewinda - kompletnie do mnie nie trafia. Na pewno (i zachęcająco wyglądających, zgrabnie naryso- głównego bohatera - po planszy oraz otwiera- wielka szkoda) nie jest to charakterystyczny wanych, dużych postaci, jakie w dzieciństwie my inwentarz. Lewym przyciskiem wybieramy styl Josha Kirby'ego, w którym utrzymana jest widziałem na ilustracjach w którymś z „Secret także dostępne w rozmowie opcje dialogowe większość okładek książek z cyklu. Nasz bo- Servisów” (okazały się potem ilustracjami z (podobnie jak w „Sam&Max Hit the Road” hater, Rincewind, mag-nieudacznik wygląda drugiej części, ale o tym później). Drżącymi z symbolizowane za pomocą szeregu ikonek). żałośnie, porusza się dziwnie sztywnie i - cho- przejęcia rękami uruchomiłem ScummVM, a Wykonując dwuklik zbieramy przedmioty i ciaż wyposażony w pokaźny garnitur ruchów - następnie wybrałem katalog z zainstalowaną używamy ich na innych, w tym także łącząc wykonuje je nadzwyczaj mało płynnie. Dostęp- wersją z PC. Oczom moim ukazało się znajo- przedmioty w inwentarzu. Z kolei prawy przy- ne scenerie wahają się od nawet ładnych, do me logo Psygnosis. Po nim przyszła kolej na cisk wykorzystujemy do oglądania elementów absolutnie paskudnych. Wykonano je skanując kilka napisów, aby w następstwie na ekranie scenerii i obiektów. Słowo komentarza odno- odręcznie wykonane rysunki, ale mam wraże- monitora zagościło wspomniane wprowadze- śnie naszego inwentarza. Są dwa: niewielki, nie, że zabrakło ich późniejszej obróbki - za- nie. Po jego zakończeniu było już jasne, że gra na który składają się nabyte umiejętności i dowolono się szybką konwersją kolorów i roz- bazuje na jednej z książek cyklu, a konkretnie rzeczy, które nosimy przy sobie oraz drugi, dzielczości do 320x200 i 8 bitów. W efekcie do na „Straż, straż!” (którą akurat przyszło mi czy- większy – dostępny, gdy już uda nam się do- niektórych lokacji nie chce się wchodzić, a tać jako pierwszą). A jak to wszystko wyszło? budzić swój ruchomy bagaż. inne wyglądają jak na Amidze z ECS, z cha- rakterystyczną dla trybu HAM rampą. Skoro jesteśmy już przy grafice, to wspomnę jeszcze o dwóch irytujących mnie elementach. Pierw- szym z nich jest sposób, w jaki w dużych loka- cjach przesuwa się ekran - dzieje się to dopie- ro po dojściu postacią do jego krawędzi. Dru- gim natomiast - malutki kursor, mieniący się przy każdym ruchu kolorowymi gwiazdkami. Strasznie mi szkoda, ale za całokształt grafiki należy się ledwo trójczyna.

„Muzyka Duszy”

Co do oprawy muzycznej, to składa się na nią kilka elementów: pierwszym z nich jest muzy- ka w formacie MIDI (dominująca w uboższej, piętnastodyskietkowej wersji), która nie za- chwyca i raczej nie zapada w pamięć. Kolejne to dość poprawne efekty dźwiękowe i głosy, o które rozbudowana jest wersja CD. Dzięki nim gra staje się o wiele przyjemniejsza, choć moim zdaniem niektóre głosy można było do- brać trafniej do postaci (do tego te niezsyn- chronizowane ze słowami ruchy ust – gdy A oto i doskonale nam znana antropomorficzna personifikacja ludzkich przypominam sobie, że „Full Throttle” wydano wyobrażeń. Jak zwykle wpada w samą porę. w tym samym roku, to chce się tylko west-

14 POLSKIE PISMO AMIGOWE 3/2011 Discworld chnąć). Jako ciekawostkę dodam, że głos Rin- cewinda podkłada znany m. in. z grupy Monty Pythona Eric Idle.

„Teatr Okrucieństwa”

Teraz będzie trochę o grywalności. Nie zamie- rzam owijać w bawełnę - mnie gra odrzuciła. Nie tylko dlatego, że pod starszymi wersjami ScummVM zawieszała się bez ostrzeżenia. Nie tylko dlatego, że w nowszych stanu gry nie da się zapisać (nie wiem, jak wygląda sprawa na AmigaOS 4.x czy Amidze klasycznej, ale pod MorphOS-em najlepiej grać na ScummVM 1.2.1). Nie tylko z tego powodu, że można utknąć bez wyjścia, gdy w poprzednim akcie nie zdobędziemy jakiegoś przedmiotu. Głów- nie dlatego, że po lekturze książek spodziewa- łem się czegoś więcej. Niekoniecznie zrzynki z lektury (gdy przeczytało się książki z cyklu, to mało który zawarty w grze żart jest w stanie wywołać coś więcej niż tylko przelotny uśmiech), koszmarnego poziomu trudności (spróbujcie ukończyć grę bez solucji, no śmia- Podręczny ekwipaż, czyli „Pokaż chucherko co masz w kuferku” ło, śmiało!) i frustrującego wodzenia mienią- cym się kolorowymi gwiazdkami kursorem po kolejnych elementach kiepsko pokolorowanej scenerii w poszukiwaniu kolejnego, sprytnie ukrytego, acz kluczowego jej elementu.

„Na Glinianych Nogach”

Podsumowując - jeśli fascynuje Was stworzo- ny przez Terry'ego Pratchetta świat i jesteście zagorzałymi zwolennikami przygodówek, spró- bujcie zagłębić się w opisywaną grę. Ostrze- gam tylko, że jest ona gigantyczna. Przecho- dzenie jej - nawet z solucją - może zająć ład- nych parę dni. Postarajcie się też o wersję CD - da wam znacznie więcej satysfakcji. Mnie niestety kojarzy się co najwyżej z podejrzaną kiełbaską w bułce od „Gardło Sobie Podrzy- nam” Dibblera. Taką grę po prostu należało zrobić przynajmniej o kilka klas lepiej.

Konrad Czuba „Wchodzimy do świątyni Offlera. Chyba nie muszę przypominać, żeby trzymać się wyznaczonej ścieżki zwiedzania?”

● oryginalny, Pratchettowski humor ● okazjonalnie - ładna grafika ● przyzwoite udźwiękowienie ● rozległy świat do eksploracji

● obrzydliwe lokacje ● frustrujące sterowanie ● surrealistyczny poziom niektórych zagadek ● błędy w grze potrafiące uniemożliwić jej ukończenie

Nieznany artysta - „Podmiejski pejzaż z autoportretem”

POLSKIE PISMO AMIGOWE 3/2011 15 Czy Amiga może być gwiazdą imprezy? CzyCzy AmigaAmiga możemoże byćbyć gwiazdągwiazdą imprezy?imprezy? Miałem kiedyś kumpla, który choć nigdy w Nie raz dochodziło do tego, że była przepy- twarzania ustaliłem na 12 klatek na sekundę życiu nie posiadał Amigi, to za moim pośred- chanka, kto teraz ma grać. Jeśli nie możemy (aby Amiga się ze wszystkim wyrobiła). Ścież- nictwem wiedział o niej całkiem sporo. Był takiego interfejsu kupić, to możemy go zrobić kę dźwiękową przerobiłem na IFF-a, a później również ze mną na kilku amigowych impre- samemu. Koszt części to około 13 PLN. Jeśli wszystko pod Scalą poskładałem w animację. zach, jak choćby Amizaduszki. Jego narze- boimy się lutować, to trzeba kombinować i Efekt był ciekawy. Ludziska oglądali, a co nie- czona nie była „w temacie”, ale jako dziecko szukać kogoś, kto nam pomoże. Naprawdę którzy byli bardzo zdziwieni, że Amiga jest w grała w „Superfroga”. Co jakiś czas wspólnie warto. stanie odtwarzać filmy na pełnym ekranie. Do organizowaliśmy jakieś spotkania: a to grill, a prezentacji użyłem Amigi 1200 z twardym dys- to jakaś nasiadówka w swoim gronie. Raz nie- Zabawa się zaczęła. Ludziska patrzą dużymi kiem i dodatkową pamięcią Fast. śmiało zaproponowałem, aby zabrać na taką oczami na to coś, co przynieśliśmy i pytają „co imprezę Amigę. Kumpel i jego luba zgodzili to za komodor”. Naszym zadaniem jest zacie- Jest mnóstwo innych fajnych rzeczy, które na się. Był to strzał w dziesiątkę. Moja Amiga była kawić pospólstwo do bliższych oględzin. Mo- Amidze można podczas takiego spotkania za- okupowana przez zdecydowaną większość żemy w kilku zdaniach powiedzieć, jakie nasza demonstrować. Ja zrobiłem sobie pióro świetl- spotkania, choć mało kto miał wcześniej Amiga ma w środku bebechy i z czym to się je. ne. Koszt części to około 6 PLN, a samo wy- styczność z tym komputerem. Amiga z powo- Na sam początek polecam „Dyna Blaster”. konanie jest banalne. Czujnik, opornik i mo- dzeniem może robić za gwiazdę imprezy, o Można grać w pięciu graczy, o ile mamy żemy szaleć. Wrażenie na widzach robi to czym Was postaram się przekonać oraz wspomniany wcześniej adapter. Jeśli mamy spore. Innym razem podłączyłem do Amigi przedstawię przepis jak tego dokonać. Dodam, Amigę 1200 z dyskiem twardym, to proponuję Siemensa C35 kupionego za pare PLN na por- że konfiguracja naszej Amigi jest kwestią dru- „Blitz Bombers” (do pobrania za darmo z Ami- talu aukcyjnym. Połączenie komórka<->kom- gorzędną, choć nie całkowicie obojętną, ale o netu). Zdecydowanie lepszy od oryginału klon puter uzyskałem za pomocą kabla szeregowe- tym później. Zacznijmy jednak od początku. „Dyna Blaster”. Dalej polecam klasykę: „Skid- go oraz przejściówki z DB25 na DB9. Za po- marks” lub „Indy Heat” (można grać w trzech). średnictwem modemu wbudowanego w telefon Po pierwsze - najpierw trzeba mieć okazję. Co Dziewczyny naprawdę w to grają! W chwili połączyłem się z internetem i pokazywałem istotne - z dostępem do prądu. Jeżeli nie ist- przerwy możemy odpalić jakieś scenowe PPA na IBrowse. Efekt równie piorunujący na nieje tzw. metodą tradycyjną, można sobie ja- demo. Oczywiście takie, które na naszej Ami- widzach (artykuł o tym można znaleźć na koś poradzić, np. przy pomocy akumulatora dze odpali. Jeśli mamy Amigę 500, to polecam PPA). Kolejną rzeczą, jaka zrobiła wrażenie, to samochodowego i przetwornicy 150 W. Taka „Enigmę”. Warto też dodać, z którego jest ono wykonanie kilku zdjęć aparatem cyfrowym. przetwornica w zupełności wystarcza, aby zasi- roku. Akurat mój miał kartę CF. Podłączyłem to od lić Amigę + monitor „made by Commodore”. razu do Amigi za pomocą PCMCIA i wyświetli- Ważne, aby przetwornica dawała cały czas (a W co jeszcze warto zagrać? To już zależy od łem zgrane zdjęcie. Tak na marginesie dodam, nie tylko chwilowo) stałą moc 150 W. Z moich towarzystwa i od posiadanej Amigi. Ilość chęt- że warto w aparacie ustawić jak najmniejszą obserwacji wynika, że akumulator 62 Ah, o ile nych oraz zapał są adekwatne do wyboru gry. jakość zdjęć, aby nasza Amiga nie dostała jest całkowicie sprawny i naładowany, wystar- Na jednej imprezie ludzie grali trzy godziny w czkawki przy wgrywaniu pliku JPEG. cza na kilka godzin zabawy. Mój się nie rozła- „Blitz Bombers” i nie było siły, aby włączyć coś dował. Spokojnie mogłem go włożyć z powro- innego. Innym razem zainteresowanych było Czasami trzeba się przygotować na rożne dzi- tem do auta i uruchomić silnik. dwóch panów i tłukliśmy w „Mortal Kombat” waczne pytania - niekiedy bardzo irytujące. oraz „Super Stardust”. Poza tym, jeśli mamy Wśród nich chyba koronne „Czym Amiga się Po drugie - gdy już mamy okazję, to możemy odpowiednio wyposażoną Amigę, to możemy rożni od komputera”. W miarę spożycia alkoho- śmiało wkręcić swój pomysł przytaszczenia zaprezentować mocniejsze gry. Mam tu na lu tego typu pytania zanikają na rzecz niczym Amigi i jej zaprezentowania. Jeśli się uda, to myśli „Quake” (najlepszy jest standardowy nieskrępowanej i nieorganicznej rozrywki czer- dobra nasza. Jeśli nie, to trudno. komentarz pospólstwa: „To wyszło na panej z naszego ulubionego komputera. Ko- Amigę?”). Poza tym „Earth 2140”, „Duke Nu- niecznie musimy zadbać o bezpieczeństwo Po trzecie - jeśli punkt drugi wypali, to nie mo- kem 3D”, „Quake II”. Bardzo fajne wrażenie naszej Amigi. Mam tu na myśli dwa aspekty: żemy wyjść na głupka. Trzeba mieć świado- robi emulator Macintosha z uruchomioną grą pogodowy i ludzki. Na ten pierwszy musimy mość, że większość ludzi kojarzy Amigę z re- „Rebel Asault II”. Zresztą - gdy to raz pokazy- być przygotowani, jeśli zabawa jest na świe- liktem przeszłości. Dobrze na samej imprezie wałem na SACP, to ludziska byli zdziwieni, że żym powietrzu albo korzystamy z prowizorycz- jest nakreślić aktualną sytuację Amigi i w to na Amidze chodzi. nego zadaszenia. Musimy się liczyć z szybką szczególności polecić PPA. Jednak nie zachę- ewakuacją naszego sprzętu w razie nagłej cam do tłumaczenia sytuacji „mosowo-aroso- Wróćmy jednak do dziewczyn, których ani zmiany pogody. W tym celu przed właściwą wo-aosowej”. Raczej nikogo to nie zainteresu- emulator Macintosha, ani tym bardziej „Rebel zabawą warto jest dogadać się z innym człon- je, w szczególności dziewczyn obecnych na Assault II” nie interesuje. Panie lubią grać w kiem imprezy i poprosić o ewentualną pomoc. imprezie. Niemniej parę faktów można krótko „Superfroga”, co nie dziwi, oraz „Draggy and Drugi czynnik jest dużo gorszy i bardziej nie- streścić. Bez większego znaczenia jest też to, Croco” czy również masę innych fikuśnych przewidywalny. Szczególnie gdy ilość spoży- czy zabierzemy Amigę 500, 600, 1200 czy gier, jak choćby „Hugo”. Co ciekawe kobity lu- tych płynów wyskokowych jest adekwatna do inną. Na każdej możemy pokazać coś cieka- bią tez grać w „Mortal Kombat” i parę razy by- czasu trwania imprezy. Trzeba po prostu pil- wego i zabawić jednocześnie całe towarzy- łem proszony przez dziewczynę o włączenie nować, aby nikt nam nie wylał piwa lub innego stwo. Grunt, aby zrobić to z głową i klasą. Im właśnie tej gry. trunku na komputer. Zdarzyła mi się też sytu- lepsza Amiga, tym oczywiście lepiej, ale już na acja, że dziewczyna zmieniając dyskietkę w poczciwej „pięćsetce” możemy naprawdę dużo Nie samymi grami jednak człowiek żyje. Ja Amidze wkładała ją na opak. Udało mi się na zaprezentować. zrobiłem furorę, odpalając na Amidze 600 z szczęście odpowiednio wcześnie zareagować. twardym dyskiem kilka utworów muzycznych Ze swojego doświadczenia wiem, że mało przerobionych z MP3 do Wave. Dodatkowo W sumie to tyle moich rad. Ja swoją Amigę kogo, szczególnie po kilku głębszych, interesu- puściłem kilka animacji pobranych z Aminetu zabieram na większość imprez. Znajomi, gdy ją szczegóły techniczne. Na początek polecam w formacie CDXL oraz intro z gry „Alien Breed: mnie zapraszają, to czasami od razu mówią, odpalanie kilku gier. Bardzo dobrym pomysłem Tower Assault”. Warto też odpalić intro z gry żebym wziął sprzęt i „dżoje”. Wielu ludzi dzięki jest zaopatrzyć się w interfejs umożliwiający „Cytadela”. Poza tym na Aminecie jest sporo temu po raz pierwszy poznało ten fajny kom- podłączenie do portu równoległego Amigi do- animacji Erica Schwartza, które można puścić. puter albo wróciło na kilka chwil do swoich datkowych „dżojów”. Dzięki temu nawet pięciu To naprawdę robi wrażenie na ludziach. Raz młodzieńczych lat. No i wiem też, że co niektó- graczy będzie mogło na raz pograć przy jednej nawet przerobiłem teledysk z oryginalnego rzy zaczęli zaglądać na PPA. Sądzę, że warto Amidze. Co ciekawe, bardzo często w gry formatu XVID na 320x240 Radius Cinepak. wyjść z Amigą do ludu. zręcznościowe wkręcają się także dziewczyny. Powyciągałem pojedyncze klatki, szybkość od- Benedykt Dziubałtowski

16 POLSKIE PISMO AMIGOWE 3/2011 Nasza pierwsza gra - kurs programowania z wykorzystaniem Visual Studio 2005 Express Edition i VBCC – część 1 NaszaNasza pierwszapierwsza gragra Kurs programowania z wykorzystaniem Visual Studio 2005 Express Edition i VBCC – część 1

elem tego kursu jest nauka programowania C Jeśli archiwum ze źródłami VBCC nie zawiera Wszystkie odnośniki do wymienionych archi- pod AmigaOS z wykorzystaniem Visual Studio pliku Makefile.vs, to nie pozostaje nam nic innego wów znajdują się w ramce na stronie 19. 2005 Express Edition i VBCC. Oczywiście ten jak stworzenie go na podstawie istniejącego Make- zestaw można zastąpić innym, bardziej nam file. Na początku usuwamy reguły od lini 20 odpowiadającym, lecz wówczas kilka pierw- (doc/vbcc.pdf) aż do lini 33 (bin/osekrm:). Regułę szych akapitów należy po prostu pominąć. bin/osekrm zostawiamy i usuwamy regułę dist: Instalacja VBCC Jako że nauka najlepiej idzie na przykładach, oraz wszystkie reguły vcpp. Następnie zamieniamy wszystkie wystąpienia znaku „/” znakiem „\”. We w dodatku praktycznych, postaramy się stwo- wszystkich regułach kończących się na .o zamie- W zasadzie, aby korzystać z dobrodziejstwa rzyć prostą grę logiczną. niamy ciąg trzyliterowy „-o “ (spacja jest istotna) skrośnej kompilacji, pozostaje nam ustawić na „/Fo”. Ponadto zamieniamy wyżej wymienione zmienne środowiskowe i przekopiować dwa Na wstępie określmy, co będziemy potrzebo- „.o” na „.obj”. Odszukujemy pozostałe reguły, katalogi z NDK. Ustawiamy zmienne, a dla wali, aby w miarę bezboleśnie tworzyć opro- gdzie występuje „-o “ i dodajemy „.exe” na koniec VBCC dajemy c:\VBCC (czyli mamy gramowanie dla AmigaOS 2.x/3.x z proceso- reguły i w pliku wynikowym, a ciągi „-o “ zamie- VBCC=C:\VBCC) i do PATH dodajemy ścieżkę rem mc680x0 na Windowsie używając Visual niamy na „/link /NOLOGO /OUT:”. c:\VBCC\bin. Teraz bierzemy się za NDK. Studio C++ 2005 Express Edition i VBCC. Rozpakowujemy archiwum w katalogu tym- Prawdopodobnie można zmusić nowsze wer- znaleźć się pliki: dtgen.exe, VBCCm68k.exe, czasowym C:\tmp kopiujemy katalogi inclu- sje, czyli 2008 i 2010 do pracy na rzecz Amigi, vc.exe, vprof.exe. Kopiujemy wszystkie oprócz de_h i include_i wraz z zawartością do lecz mój PC jest dosyć leciwy i nawet nie pró- dtgen.exe do c:\VBCC\bin. C:\VBCC. W ten sposób jesteśmy w stanie bowałem instalować nowszych wersji Visual sprawdzić czy poprawnie wykonaliśmy instala- Studio. Będziemy potrzebować wspomniany Vasm cję VBCC. Uruchamiamy wiersz poleceń i wpi- Visual Studio 2005 C++ Express Edition, sujemy vc. Naszym oczom powinna ukazać VBCC generujący kod dla AmigaOS 2.x/3.x z Pobieramy i rozpakowujemy tak, jak poprzed- się informacja „No objects to link”. mc680x0 z poziomu Windows i NDK 3.9 (a w nio do katalogu tymczasowego (C:\tmp). Uru- zasadzie tylko dwa katalogi: include_h i inclu- chamiamy Visual Studio 2005 Command de_i). Dodatkowo, jeśli pokusimy się o kompi- Prompt i przechodzimy do katalogu VS2005 i pierwszy projekcik lowanie narzędzia Vasm, to będziemy potrze- C:\tmp\vasm. Tworzymy katalog obj_win32 i bowali Windows SDK. Co do Visual Studio uruchamiamy: Wybieramy z menu „Tools/Options” i przecho- C++ 2005 Express Edition to milcząco zakła- dzimy do „Projects and Solutions”. Tam wybie- dam, że jest on już zainstalowany. Przejdźmy nmake /f Makefile.Win32 CPU=m68k SYNTAX=mot ramy „VC++ Directories” i z prawego górnego teraz do VBCC. Mamy dwa wyjścia: na pod- drop down box zaznaczamy „Include files”. stawie źródeł skompilować potrzebne narzę- Dodajemy dwa nowe wpisy C:\VBCC\inclu- dzia bądź poszperać w sieci i pobrać je w wer- Po udanej kompilacji zmieniamy nazwę z va- de_h i C:\VBCC\include_i. Dzięki temu bę- sji dla Windowsa. Trzeba zaznaczyć, że wersje smm68k_mot_win32.exe na vasmm68k_mot. dziemy mogli korzystać z „intelisense”, czyli znalezione w sieci niekoniecznie muszą być exe i kopiujemy ten plik do C:\VBCC\bin. War- mówiąc kolokwialnie - podpowiadaczki. Wybie- najświeższymi i warto to sprawdzić uruchamia- to dodać, że aby poprawnie skompilować ramy z górnego menu „File/New/Project” bądź jąc narzędzia z linii poleceń. Vasm za pomocą Express Edition, należy po- wciskamy CTRL+SHIFT+N. Zaznaczamy „Ma- siadać Windows SDK zainstalowany i popraw- kefile Project” (rozwijamy „Visual C++” i wybie- Zajmiemy się kompilacją źródeł na maszynie nie ustawione zmienne środowiskowe INCLU- ramy „General”) w „Name” wpisujemy „Boxo” i 32-bitowej. Przede wszystkim tworzymy kata- DE i LIB. Najłatwiej jest uruchomić VS2005 ustawiamy „Location”. Naszym oczom ukaże log VBCC na dysku C:\. Oczywiście to tylko Command Prompt i przejść do katalogu, gdzie się Wizard i w tym przypadku przechodzimy przykładowa lokalizacja i można ją sobie do- mamy zainstalowany SDK i uruchomić skrypt dalej klikając w „Next”. W „Debug Configura- wolnie zmienić, ale trzeba pamiętać o zmianie SetENV, który ustawi zmienne środowiskowe, tion Settings” wpisujemy następujące polece- odwołań wszędzie tam, gdzie to stosowne. Od a dopiero potem kompilować VBCC. nia. razu z marszu stwórzmy w katalogu VBCC podkatalogi: bin, config, doc, targets. W kata- Dla Build command line: logu docs należy umieścić dokumentację do Vlink narzędzi, którą można znaleźć w postaci pli- nmake /f makefile.mak all ków PDF na stronie Franka Wille. Postępujemy podobnie, jak w poprzednich krokach, czyli pobieramy źródła i rozpakowu- VBCC jemy do katalogu tymczasowego. Uruchamia- Dla Clean commands: my Visual Studio 2005 Command Prompt i Po pobraniu źródeł VBCC rozpakowujemy je przechodzimy do katalogu C:\tmp\vlink. Two- nmake /f makefile.mak clean (najlepiej do jakiegoś katalogu tymczasowego, rzymy katalog objects w C:\tmp\vlink i uru- na przykład C:\tmp). Uruchamiamy Visual Stu- chamiamy: Dla Rebuild command line: dio 2005 Command Prompt. Przechodzimy do nmake /f Makefile.Win32 katalogu ze źródłami VBCC i tworzymy katalog bin (mamy więc C:\tmp\VBCC\bin) i urucha- nmake /f makefile.mak clean all miamy: Po zakończeniu kompilacji kopiujemy plik vlink.exe do C:\VBCC\bin. nmake /f Makefile.vs TARGET=m68k Jako „Output” wpisujemy „boxo.exe”. W „Rele- ase Configuration Settings” zaznaczamy Dalej otrzymamy szereg pytań. Na wszystkie Target checkbox „same as debug configuration” i kli- pytania typu y/n odpowiadamy y, a na inne py- kamy w „Finish”. Kasujemy filtry „Header files”, tania wpisujemy w kolejności: signed char, Pobieramy Target archiwum dla AmigaOS „Resource Files”, „Source Files” i plik „readme- unsigned char, signed short, unsigned short, 2.x/3.x. Kopiujemy katalog targets z zawarto- .txt”. Porzucamy na chwilę VS2005 i przecho- signed int, unsigned int, signed long long, ścią do katalogu c:\VBCC. Tworzymy katalog dzimy do katalogu Boxo. Tam kasujemy „re- unsigned long long, float, double. Po kilku config w c:\VBCC i tworzymy tam plik konfigu- adme.txt” i tworzymy pliki „boxo.c” i „makefile- chwilach, w zależności od szybkości maszyny, racyjny vc.cfg. Zawartość pliku konfiguracyj- .mak” a w nim umieszczamy zawartość przed- w katalogu bin (C:\tmp\VBCC\bin) powinny nego znajduje się na stronie 18. stawioną w jednej z ramek na stronie 18.

POLSKIE PISMO AMIGOWE 3/2011 17 Nasza pierwsza gra - kurs programowania z wykorzystaniem Visual Studio 2005 Express Edition i VBCC – część 1

Plik konfiguracyjny vc.cfg 01 -cc=VBCCm68k -quiet %s -o= %s %s -O=%ld -IC:/VBCC/targets/m68k-/include/ -IC:/VBCC/include_h/ 02 -ccv=VBCCm68k %s -o= %s %s -O=%ld -IC:/VBCC/targets/m68k-amigaos/include/ -IC:/VBCC/include_h/ 03 -as=vasmm68k_mot -quiet -Fhunk -phxass %s -o %s -IC:/VBCC/include_i/ 04 -asv=vasmm68k_mot -Fhunk -phxass %s -o %s -IC:/VBCC/include_i/ 05 -rm=del %s 06 -rmv=del %s 07 -ld=vlink -bamigahunk -x -Bstatic -CVBCC -nostdlib -LC:/VBCC/targets/m68k-amigaos/lib/ C:/VBCC/targets/m68k-amigaos/lib/startup.o %s %s -lvc -o %s 08 -l2=vlink -bamigahunk -x -Bstatic -CVBCC -nostdlib -LC:/VBCC/targets/m68k-amigaos/lib/ %s %s -o %s 09 -ldv=vlink -bamigahunk -t -x -Bstatic -CVBCC -nostdlib -LC:/VBCC/targets/m68k-amigaos/lib/ C:/VBCC/targets/m68k-amigaos/lib/startup.o %s %s -lvc -o %s 10 -l2v=vlink -bamigahunk -t -x -Bstatic -CVBCC -nostdlib -LC:/VBCC/targets/m68k-amigaos/lib/ %s %s -o %s 11 -ldnodb=-s -Rshort 12 -ul=-l%s 13 -cf=-F%s 14 -ml=500 UWAGA! Liczby na początku linii zostały zastosowane tylko w celu wyróżnienia pełnych ciągów w tekście. W pliku konfiguracyjnym każda li- nia powinna zaczynać się od znaku „myślnika”.

Zawartość pliku „makefile.mak” Aby otworzyć okno, skorzystamy z biblioteki i funkcji Open- # # boxo WindowTags. Wynika z tego, że # przed otwarciem okna musimy CC = vc otworzyć bibliotekę intuition i CFLAGS =-c -c99 -IC:/VBCC/targets/m68k-amigaos/include/ -IC:/VBCC/include_h/ sprawdzić czy otwarcie się powio- BIN = boxo dło, a po zamknięciu okna musimy intuition zamknąć, o ile nie korzy- LIBS =-LC:/VBCC/targets/m68k-amigaos/lib -lvc -lamiga stamy w dalszym ciągu z tejże bi- LINK = vlink -bamigahunk -Bstatic -CVBCC -nostdlib -s -x c:/VBCC/targets/m68k-amigaos/lib/startup.o blioteki. Pozostała nam najtrudniej- OBJ = boxo.o sza sprawa, czyli pętla główna. Z LINKOBJ = boxo.o pomocą przyjdzie nam funkcja Wait RM = DEL z biblioteki . Na szczęście .PHONY: all clean exec.library jest zawsze otwarta i nie musimy się martwić sprawdza- all: $(BIN) niem i zamykaniem jej. Zadaniem clean: Wait jest oczekiwanie na zadane $(RM) $(OBJ) $(BIN) sygnały. W wielkim skrócie - sygna- $(BIN): $(OBJ) ły to podstawowy mechanizm od- $(LINK) $(LINKOBJ) -o $(BIN) $(LIBS) powiedzialny za komunikację w OS. boxo.o: boxo.c W każdym razie, jeśli klikniemy w $(CC) $(CFLAGS) boxo.c -o boxo.o naszym oknie w gadżet zamknię- cia, to zostanie wysłany odpowiedni sygnał do naszego okna i naszym Pobieżnie omówię, co z czym się je w tym pli- planu, który będziemy sukcesywnie rozbudo- zadaniem będzie jego właściwa obsługa. W ku, a potem zajmiemy się boxo.c. Otóż zawie- wywać. Początkowy plan składa się z trzech naszym programiku za pomocą Wait będziemy ra on reguły, które automatyzują proces kompi- bardzo podstawowych kroków. Pierwszy to ini- czekali między innymi na sygnał z naszego lacji. Znak „#” oznacza komentarz, czyli dalej cjacja, drugi to główna pętla, a trzeci to zakoń- okna. Plan rozrósł się do postaci: za nim aż do końca linii tekst nie będzie brany czenie/zamknięcie. Skupmy się na tym, co pod uwagę. Dalej widzimy konstrukcję typu chcemy tak naprawdę osiągnąć. Mamy poka- 1. Inicjacja Nazwa = wartość. Są to zmienne, dzięki któ- zać okienko, czyli musimy je otworzyć, a co za - otwarcie intuition rym nie będziemy musieli za każdym razem tym idzie trzeba je też później zamknąć. Aby - sprawdzenie czy się udało otworzyć, jeśli wpisywać tych samych rzeczy. Do zmiennej zamknąć nasze okienko, użytkownik musi nie to wychodzimy z programu dobieramy się pisząc $(nazwa). Pierwsza regu- kliknąć w gadżet zamknięcia, zatem w jakiś - otwarcie okna ła to .PHONY - która mówi, że reguły all i clean sposób musimy czekać na ruch ze strony - sprawdzenie czy okno otwarte, w prze- nie są plikami. Na wypadek, gdyby ktoś chciał użytkownika. Nasz plan wygląda teraz tak: ciwnym razie przechodzimy do kroku 3 kompilować pliki o takich nazwach. Reguła all 2. Pętla główna jest od kompilacji całego projektu. Za pomocą 1. Inicjacja - za pomocą Wait czekamy na sygnał z clean możemy wykasować obiekty i utworzony - otwarcie okna okna lub sygnał CTRL+C plik wykonywalny. $(BIN) nakazuje stworzenie 2. Pętla główna - obsługa sygnałów (jeśli użytkownik klik- obiektów (plików pośrednich) i zlinkowanie ich. - czekanie aż użytkownik kliknie w gadżet nął w gadżet zamknięcia, to wychodzimy Ostatnie dwie linie określają, w jaki sposób zamknięcia okna z pętli) powstaje plik boxo.o. 3. Zamknięcie //======- zamykamy okno static int init(void); Pierwszy przykładzik zaczniemy klasycznie. static void loop(void); static void close(void); Wypiszemy na wyjście „hello”. Oto i kod: Zamieńmy plan w kod (po prawej stronie). //======int main(void) { #include Spostrzegawczy czytelnik zauważy, że wystę- if(0 == init()) pują tu, w źródle do języka C, komentarze ro- { int main(void) dem z C++. Dzieje się to dlatego, że używam loop(); { } standardu C99, który pozwala na takie komen- close(); printf("hello\n"); return 0; //ok tarze, jak również inne użyteczne rzeczy typu } return 0; deklarowanie zmiennych, gdzie potrzebuję, a //======} static int init() nie tylko na początku bloku (jak ma to miejsce { w ANSI C). Kilka słów komentarza o kodzie. //otwarcie okna return 0; //ok Budujemy go za pomocą skrótu klawiszowego Zakładamy, że funkcja init() zwraca 0 i ozna- } CTRL+SHIFT+B bądź wybierając „Build->Build cza to, że wszystko, co związane z inicjacją, //======static void close() Solution” z menu. Jeśli nie popełniliśmy błędu, zostało pomyślnie wykonane. Z tego względu { to w katalogu boxo powinniśmy mieć plik wykonanie funkcji loop() następuje dokładnie //zamknięcie okna } boxo. Przenosimy go na Amigę i uruchamiając wtedy, gdy init() zwraca zero. Warto odnoto- //======go, możemy podziwiać rezultat. wać, że funkcja close() zostanie wywołana static void loop() { nawet, gdy init() nie zwróci zero. Oczywistą //czekanie aż użytkownik kliknie Po klasycznym przykładzie „hello” rzucamy się konsekwencją tego będzie sprawdzanie czy //w gadżet zamknięcia okna } w głęboką wodę i napiszemy programik, który okno było otwarte - bo przecież bez sensu //======pokazuje okienko. Zaczniemy od ogólnego zamykać okno, które nie było otwarte.

18 POLSKIE PISMO AMIGOWE 3/2011 Nasza pierwsza gra - kurs programowania z wykorzystaniem Visual Studio 2005 Express Edition i VBCC – część 1

3. Zamknięcie nięcie kombinacji klawiszy CTRL i C lub sygnał my wszystkie komunikaty. Za pomocą - jeśli okno było otwarte, to je zamykamy z naszego okna. Dalej badamy czy przyszły GetMsg odbieramy wiadomości z naszego por- - jeśli intuition było otwarte, to je zamyka- oczekiwane sygnały i podejmujemy odpowied- tu i po przepisaniu interesującej zmiennej od- my nie kroki. W przypadku nadejścia CTRL+C powiadamy na tenże komunikat. Dopiero po ustawiamy flagę wyjścia z pętli i tym samym tym badamy, co takiego ciekawego się wyda- Jak widać, plan nabrał kolorów. Przedstawię wychodzimy z loop(). Po nadejściu sygnału z rzyło. Gdy został wciśnięty gadżet zamykania teraz pełny przykład. Programik rozrósł się tro- naszego okna wywołujemy funkcję handle- okna, to ustawiamy flagę wyjścia. chę i z pewnością funkcje loop() i handleWin- WinSignal, która zajmie się obsługą komunika- Signal() wymagają większego komentarza. W tów pochodzących z naszego okna. Handle- Warto uruchomić przykładzik z CLI i poekspe- loop() czekamy w pętli na dwa sygnały: naciś- WinSignal() składa się z pętli, w której odbiera- rymentować wciskając gadżet zamknięcia okna czy też wciskając CTRL+C w oknie CLI. #include #include Jak się można domyśleć, kombinacja CTRL i #include C nie zadziała w otwartym przez nas oknie, bo #include #include nie pochodzi od sygnału z naszego okna. Po- //======wyższy przykładzik posłuży nam jako baza do struct IntuitionBase* IntuitionBase; struct Window* m_pWin = NULL; dalszej rozbudowy, bo nie zapominajmy o //------głównym celu, jakim jest napisanie gry logicz- static int init(void); static void loop(void); nej. Będziemy robić to metodą małych, ale wi- static void close(void); docznych kroków. Warto w tym miejscu się za- static BOOL handleWinSignal(); //======trzymać i podać więcej szczegółów dotyczą- int main(void) cych naszej logicznej gry. { if(0 == init()) { W dalekiej przyszłości, gdy loty kosmiczne loop(); } były tak powszechne, jak przepysznie wypie- close(); kany chleb z piekarni pana Zenka, a ludzie return 0; //ok } pouciekali z planety, na której zostały tylko ro- //======boty, pojawiło się zagrożenie w postaci braku static int init(void) { mechaników konserwujących roboty. Najzwy- IntuitionBase = (struct IntuitionBase*)OpenLibrary("intuition.library", 36L); czajniej w świecie inne roboty brzydziły się tą if(NULL == IntuitionBase) { robotą. W tym krytycznym momencie rada return -1; najwyższych robotów podjęła wielkie ryzyko i } //------odważyła się wysłać ekipę, która miała na ja- m_pWin = (struct Window*) OpenWindowTags(NULL, kimś zagubionym promie kosmicznym odna- WA_Left, 0, WA_Top, 0, leźć ludzi skłonnych podjąć się tego zadania. WA_Width, 320, Ponieważ chętnych nie było i jakoś dziwnym WA_Height, 256, WA_CloseGadget, TRUE, trafem cała populacja robotów akurat skoczyła WA_Title, (ULONG)"boxo", na kolejkę oleju, zorganizowano wielkie loso- WA_Activate, TRUE, WA_DragBar, TRUE, wanie (coś w stylu totolotka). W ten oto dzi- WA_GimmeZeroZero, TRUE, waczny sposób wybrano do tej arcytrudnej WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_RAWKEY, TAG_END); ekspedycji średnio rozgarniętego robota, któ- if(NULL == m_pWin) rego umieszczono w niewielkim statku ko- { return -1; smicznym. W całym zamieszaniu zapomniano } wlać większej ilości paliwa do baku pojazdu. return 0; //ok } Nie było też wzmianki o fatalnym sterowaniu //======statkiem (tylko w cztery strony). Nie przeszko- static void close(void) { dziło to jednak naszemu bohaterowi udać się z if(m_pWin) misją. Niestety poziom inteligencji robota nie { CloseWindow(m_pWin); pozwalał na poszukiwanie paliwa w kosmosie, } lecz na szczęście wynaleziono bardzo ekono- //------if(IntuitionBase) miczny sposób poruszania się: odbijanie się { od przeszkód w przestrzeni kosmicznej - czyli CloseLibrary((struct Library*) IntuitionBase); } zużywamy mikroskopijną ilość paliwa na } nadanie kierunku naszemu statkowi i dalej //======static void loop(void) czekamy, aż w coś uderzymy. { BOOL bEnd = FALSE; while(!bEnd) Tak o to pokrótce przedstawia się historia { związana z naszą grą. Zadaniem gracza bę- ULONG winSignal = 1L << m_pWin->UserPort->mp_SigBit; ULONG signals = Wait(winSignal | SIGBREAKF_CTRL_C); dzie dotarcie do miejsca, gdzie mogą być lu- if(signals & SIGBREAKF_CTRL_C) dzie. Kierujemy niewielkim statkiem, który { bEnd = TRUE; może poruszać się w czterech kierunkach i za- } trzymuje się dopiero wtedy, gdy uderzy w if(signals & winSignal) { przeszkodę. Statek ma niewielką wytrzyma- bEnd = handleWinSignal(); łość i nie może się odbijać od przeszkód w } } nieskończoność, a dodatkowo niektóre prze- } szkody powodują natychmiastową śmierć. //======static BOOL handleWinSignal() { Jak widać, czeka nas sporo pracy nad grą, ale BOOL bEnd = FALSE; while(TRUE) to już w następnym odcinku. Mogę zdradzić, { że zajmiemy się timer.device i zrobimy porzą- struct IntuiMessage* pMsg = (struct IntuiMessage*) GetMsg(m_pWin->User- Port); dek w naszym kodzie źródłowym. if(NULL == pMsg) { Asman break; } ULONG msg_class = pMsg->Class; ReplyMsg((struct Message*) pMsg); Odnośniki: if(IDCMP_CLOSEWINDOW == msg_class) { bEnd = TRUE; ● http://www.ibaug.de/VBCC/amiga/VBCCwin.zip – VBCC w wersji dla Windows } ● http://www.ibaug.de/VBCC/VBCC.tar.gz – źródła VBCC } ● http://sun.hasenbraten.de/vasm/daily/vasm.tar.gz – źródła Vasm return bEnd; } ● http://sun.hasenbraten.de/vlink/daily/vlink.tar.gz – źródła Vlink //======● http://mail.pb-owl.de/~frank/VBCC/2011-08-05/VBCC_bin_amigaos68k.lha – archiwum Target dla AmigaOS 2.x/3.x

POLSKIE PISMO AMIGOWE 3/2011 19 Sam460ex Sam460exSam460ex

W chwili, gdy po latach oczekiwania pojawił się w sprzedaży AmigaOS 4.0, płyta Amiga- One nie była już produkowana. To postawiło sympatyków AmigaOS w dość kłopotliwej sy- tuacji. Na szczęście, na rynek amigowy odwa- żyła się wejść firma ACube Systems, która powstała w wyniku połączenia kilku mniejszych włoskich spółek o amigowych korzeniach. Pod koniec roku 2008 wyprodukowana została pierwsza od czasów AmigaOne, dedykowana dla AmigaOS płyta główna - Sam440ep. Nie- długo później przygotowano bardziej rozsze- rzalny model tej płyty - Sam440ep-flex. Płytom serii Sam zarzucano niską wydajność w sto- sunku do ceny, co jednak nie zniechęciło pro- ducenta, który nie spoczął na laurach. W dniu 27 stycznia 2011 roku firma ACube Systems wprowadziła do sprzedaży najnowszy model płyty pod nazwą Sam460ex.

Sprzęt

Serce nowej Sam - AMCC PowerPC 460ex, taktowany zegarem 1.15 GHz - jest układem typu „System-on-Chip” przeznaczonym dla rozwiązań wbudowanych. Co najważniejsze, zawiera on wiele technologii, które do tej pory na Amidze nie były dostępne - w szczególno- ści kontroler PCI Express oraz SATA II. W po- Grafika obsługiwana jest przez układ Silicon wego kontrolera na płycie zbędnie podniosłoby równaniu do modelu 440ep jest to oczywisty Motion SM502 oraz 64 MB pamięci DDR. Fir- koszty - część użytkowników w ogóle nie ko- krok naprzód. Rdzeń procesora zastosowane- ma Silicon Motion znana jest głównie na rynku rzysta z napędów CD/DVD, więc posiadanie go w 460ex jest bardzo podobny do tego zna- rozwiązań wbudowanych. Układ ten posiada jednego kanału SATA wydaje się w takiej kon- nego z 440ep (gdyż jest jego ewolucją), więc kilka istotnych ograniczeń. Maksymalna ob- strukcji wystarczające. Z kontrolerem SATA zaadaptowanie AmigaOS do działania na tym sługiwana rozdzielczość to 1280x1024 (propo- związana jest jeszcze jedna niedogodność - procesorze prawdopodobnie było dużo łatwiej- cje 4:3) lub 1440x900 (16:9). Ponadto, nie ob- nie ma możliwości jednoczesnego wykorzy- sze, niż gdyby skorzystano z procesora innej sługuje on akceleracji 3D w żadnej formie. stania slotu PCI Express 1x oraz wbudowane- rodziny. Kłopotliwy jest też brak wyjścia DVI. Płyta go kontrolera SATA. To także wynika z kon- główna Sam460ex wyposażona jest jedynie w strukcji układu zastosowanego w 460ex. Dla- Sam460ex daje możliwość zainstalowania do port VGA oraz złącze LVDS (na płycie). Użyt- tego niektórzy użytkownicy ignorują istnienie 2 GB pamięci RAM DDR2 w slocie SODIMM, kownicy, dla których kwestie te mają znacze- wbudowanego kontrolera i instalują kartę SATA co wydaje się sporą ilością jak na dzisiejsze, nie, będą musieli zainwestować w osobną kar- w slocie PCI-Express 1x. amigowe wymagania. Pamięć jest taktowana tę graficzną Radeon. częstotliwością, która jest zależna od zainsta- Sam460ex posiada aż sześć portów USB 2.0, lowanego modułu (maksymalnie 575 MHz, dla- Za dźwięk odpowiadają układy SM502 (kontro- z których dwa dostępne są na tylnym panelu. tego zalecane jest użycie modułów 667 lub ler AC’97) oraz Realtek ALC655 (kodek Kontroler EHCI jest zintegrowany w proceso- 800 MHz). AC’97). Na tylnym panelu znajdziemy tylko rze. Dodatkowo użytkownik ma do dyspozycji jedno gniazdo - wyjście dźwięku. Pozostałe jeden port USB 1.1 (obsługiwany przez wyprowadzenia kodeka (wejście liniowe, mi- SM502). krofon) znajdują się na złączu AC’97 na płycie. Pomimo zastosowania kodeka 5.1, użytkownik Podzespołem budzącym kontrowersje jest ma do dyspozycji jedynie wyprowadzenia ste- układ FPGA Lattice XP2, o rozmiarze 5000 reofoniczne. Wszystkie wejścia i wyjścia LUT (ang. „Look-Up Tables”). Wiele osób po- dźwięku są wyłącznie analogowe - cyfrowa daje w wątpliwość sens umieszczania takiego transmisja nie jest obsługiwana. układu na płycie przeznaczonej dla końcowego użytkownika. Z układu FPGA wyprowadzone Karty rozszerzeń można instalować w trzech jest na złącze I/O 80 połączeń, w oparciu o slotach: PCI-Express 16x (działa w trybie 4x), które można budować własne rozszerzenia. PCI-Express 1x oraz PCI. Slot PCI obsługuje Jeśli znajdzie się ktoś na tyle odważny, aby karty taktowane 33 i 66 MHz, zasilane napię- eksperymentować z podłączaniem ich do ciem 3.3V. Próba instalacji karty 5V może Sam, czemu nie... spowodować uszkodzenie. Na spodzie płyty znajdziemy także slot kart Na płycie znajduje się jeden port SATA II. Czę- SD/SDHC, który można wykorzystać do wy- sto pada pytanie, dlaczego w płytach głównych miany danych oraz z którego można urucha- Sam440ep znajdowały się aż cztery porty, a miać system operacyjny (jest on zwykłym nowsza Sam460ex ma tylko jeden. Odpowiedź urządzeniem pamięci masowej na szynie nasuwa się sama, gdy spojrzymy na specyfi- USB). Jedynie jego umiejscowienie pozosta- kację procesorów – model 440ep nie posiadał wia nieco do życzenia - dostęp do slotu jest co w ogóle wbudowanego kontrolera SATA i na najmniej kłopotliwy, gdy płyta zainstalowana płycie umieszczono układ Silicon Image 3114. jest w obudowie typu „wieża”. Skoro 460ex posiada wbudowany jednokana- łowy kontroler SATA, umieszczanie dodatko-

20 POLSKIE PISMO AMIGOWE 3/2011 Sam460ex

Schemat blokowy Sam460ex.

Najnowsza Sam posiada również szereg złącz, zbędne minimum informacji (np. jak podłączyć widać na niej każdy odcisk palca. które można wykorzystać w rozwiązaniach przewody panelu frontowego, opis wyprowa- wbudowanych, a które dla amigowców nie dzeń złącz), ale mogłaby być znacznie dłuż- Na temat samego procesu budowania kompu- mają obecnie szczególnego znaczenia: slot na sza. Brakuje w niej np. dokładniejszej listy tera, w oparciu o Sam460ex, nie da się napi- kartę SIM, złącza I2C/SPI, JTAG, złącze mo- kompatybilnego sprzętu, z którym może dzia- sać zbyt wiele. Jeżeli ktoś kiedyś „składał” dułu UMTS/GSM, możliwość instalacji pamięci łać obecnie Sam460ex (jest co prawda lista komputer PC, to nie odkryje tu niczego rewo- NAND flash itd. Sugeruje to, że firma ACube kontrolerów, z których może uruchamiać sys- lucyjnego. W końcu płyty serii Sam projekto- ma też innych (poza amigowcami) klientów. tem) oraz opisu najważniejszych komend wane są do współpracy z typowymi komponen- firmware. tami PC. Zasilanie doprowadzane jest poprzez 20-pino- we złącze ATX. Sam460ex jest płytą standardu Flex ATX, ma Podczas testowania zestawu komputer wiele wymiary 21.6 cm x 17 cm. Skoro rozmiar jest razy jest wyłączany i włączany, aby sprawdzić Na tylnym panelu znajdują się następujące niewielki, a płyta nie wymaga aktywnego chło- poprawność połączeń oraz konfiguracji. Na porty: dzenia, można pokusić się o zbudowanie bez- początku byłem zdziwiony, że komputer nie głośnego systemu. Do zasilania płyty można chce ponownie „odpalić” zaraz po wyłączeniu. ● port Ethernet; wykorzystać nawet zasilacz typu DC-DC na Okazało się, że Sam460ex ma wbudowane ● port szeregowy RS-232C; 12V (ma takowe w ofercie np. firma Mini-Box). zabezpieczenie przed zbyt szybkim ponownym ● wyjście VGA; Ja zdecydowałem się wykorzystać klasyczną włączaniem. Zalecane jest odczekanie 15 se- ● port S-Video (nieaktywny, wymaga dodat- obudowę typu „wieża”, a konkretnie Fractal kund przed ponownym włączeniem zasilania. kowego modułu); Design Arc Mini. Osoby uważnie śledzące pro- Jest nawet na ten temat wzmianka w instruk- ● 2 porty USB; jekt AmigaOne X1000 zauważą, że Arc Mini cji, którą pominąłem przy pierwszym jej czyta- ● wyjście dźwięku (wtyk minijack). jest mniejszą siostrą obudowy Define, która niu. Przycisk włączenia zasilania także działa oferowana ma być w komplecie z X1000. Za- nieco inaczej, niż w PC - jego krótkie przyci- Opcjonalnie mogą się tam znaleźć też: drugi stanawiające jest, dlaczego dystrybutorzy nie śnięcie powoduje reset komputera (na począt- port Ethernet oraz wyjście anteny modułu wpadli na pomysł sprzedawania Sam460ex z ku jest to irytujące). GSM. obudową Arc Mini, której rozmiar jest odpo- wiedni, a stylistyka idealnie nawiązuje do bar- Oprogramowanie Instalacja sprzętu dziej prestiżowego projektu X1000. Zwykłe, ta- nie obudowy PC oferowane obecnie do serii Produkt jest dostarczany w niewielkim, karto- Sam przez firmy takie jak AmigaKit, Relec, a Tak jak w przypadku AmigaOne oraz Sa- nowym pudełku z logo „Sam460ex - power for nawet ACube, nie robią pozytywnego wraże- m440ep, w najnowszej odmianie Sam zasto- your embedded ideas”. Zawiera ono porządnie nia. Dlaczego oszczędzać na obudowie, gdy sowano firmware U-Boot. Obsługuje on uru- zapakowaną płytę główną, system operacyjny kupuje się tak kosztowny sprzęt? chamianie systemu operacyjnego z napędów AmigaOS 4.1 Update 2, blaszkę portów do CD/DVD, dysków twardych podłączonych do obudowy, instrukcję obsługi do płyty głównej, Tym razem nie popełniono błędu, który miał wewnętrznego kontrolera SATA II, kontrolerów podręcznik instalacji AmigaOS dla Sam460ex miejsce w przypadku modelu 440ep. Nowa na szynie PCI/PCI-Express (Silicon Image oraz książeczkę „szybki start” z AmigaOS 4.1. Sam dostarczana jest z solidną blaszką por- 3112, 3114, 3512) oraz urządzeń pamięci ma- Naturalnie, wszystkie dokumentacje są w języ- tów, która wygląda bardzo elegancko. Jej je- sowej USB (w tym wbudowanego slotu kart ku angielskim. Instrukcja do płyty zawiera nie- dyną wadą jest to, że bardzo łatwo się brudzi i SD). Aktualizacji firmware można dokonywać

POLSKIE PISMO AMIGOWE 3/2011 21 Sam460ex

po sieci za pomocą protokołu TFTP lub używając napędu CD - od czasu wydania mo- delu 460ex pojawiła się już jedna taka aktuali- zacja. Kod źródłowy całego firmware jest do- stępny na licencji GPL (do pobrania na stronie Acube Systems).

Instalacja AmigaOS 4.1 okazała się o wiele bardziej skomplikowana niż sądziłem. Zakłada- łem, że kupując Sam460ex „zwyczajnie” będę w stanie zainstalować na niej system. Niestety, po podłączeniu do wbudowanego portu SATA II dysku twardego okazało się, że nie miałem gdzie podłączyć napędu CD, a przecież sys- tem operacyjny dostarczany jest wyłącznie na takim nośniku. W pierwszej kolejności pomy- ślałem o wykorzystaniu wbudowanego slotu kart SD. ACube Systems oferuje użytkowni- kom wsparcie, więc zadałem pytanie, czy moż- liwe jest przygotowanie karty SD z obrazem instalacyjnym AmigaOS 4.1 na AmigaOS 3.x (lub innym systemie). Otrzymałem odpowiedź, że przygotowywanie kart SD jest wspierane jedynie na AmigaOS 4.1, czyli trzeba już po- siadać jakąś działającą maszynę z tym syste- mem. Ja akurat nie posiadałem.

W kolejnym kroku pomyślałem o wykorzysta- niu USB. Teoretycznie istnieje możliwość uru- chomienia systemu z płyty CD w napędzie podłączonym przez port USB. Jednak ja nie miałem pod ręką żadnego mostka USB-SATA, szyny z AmigaOS 4.x, to najprostszą i naj- Przez kilka pierwszych miesięcy wsparcie dla a znikoma wydajność USB (maksymalnie 12 szybszą opcją jest dołożenie kontrolera SATA nowego sprzętu było mierne. Na szczęście Mbit/s) w AmigaOS 4.1 Update 2 zniechęcała na PCI - przynajmniej na czas instalacji. Nie- stopniowo pojawiały się sterowniki oraz aktu- mnie do jego szukania. którzy dystrybutorzy, za niewielką opłatą, alizacje. Najważniejszą była wydana 28 sierp- mogą przygotować kartę SD, co też wydaje się nia 2011 roku trzecia aktualizacja AmigaOS Szczęśliwie okazało się, że posiadam kompa- sensownym rozwiązaniem. 4.1. To wydanie przyniosło zmiany istotne dla tybilny kontroler Silicon Image 3114. Jego wy- użytkowników Sam460ex: korzystanie okazało się właściwą drogą. Po- Proces instalacji systemu nie był szczególnie czątkowo dysk twardy pozostawiłem podłą- intuicyjny, ale udało mi się przebrnąć przez ● uaktualnione sterowniki SATA, szczególnie czony do wewnętrznego kontrolera SATA II, a niego w kilkadziesiąt minut. sterownik SATA II w układzie PPC 460ex; napęd CD podłączyłem do kontrolera PCI. W ● sterowniki USB 2.0, obsługujące kontrolery tej konfiguracji nie udało mi się zainstalować Pierwsze wrażenie po zainstalowaniu było standardu EHCI, w tym wbudowany w PPC systemu na dysk twardy. Sterownik, z niezna- bardzo pozytywne, szczególnie zwracała uwa- 460ex; nych mi powodów, był aktywny dopiero po za- gę dobra wydajność (w porównaniu do ● obsługę szyny I2C; instalowaniu AmigaOS na dysk, dlatego oba AmigaOS 4 na innych maszynach). Mimo ● sterownik FPGA, pozwalający na oprogra- urządzenia musiały być podłączone do kontro- tego, że producent ostrzega, iż dostarczana mowywanie układu FPGA i wykorzystanie lera Sil3114 (po instalacji kabelek Serial ATA wraz z płytą wersja systemu powinna być trak- 80-pinowego złącza I/O; mogłem już przełożyć do portu na Sam). towana jako beta, nie odnotowałem problemów ● nową wersję sterownika grafiki SM502; ze stabilnością systemu. ● sterownik wbudowanej karty dźwiękowej Podsumowując, jeśli nie posiadamy innej ma- SM502/ALC655 (teoretycznie, ale o tym za chwilę).

Mimo wydania aktualizacji pewne problemy da- lej nie zostały rozwiązane. W dalszym ciągu brak wsparcia dla akceleracji 3D na kartach zainstalowanych w slocie PCI-Express (obec- nie prowadzone są prace nad sterownikiem 3D dla kart Radeon HD). Ze strony firmy Hyperion pobrać możemy jedynie archiwum (do doinsta- lowania na AmigaOS 4.1 Update 2), a nie peł- ny obraz ISO, co powoduje, że problemy z procesem instalacji dalej mają miejsce. Chyba że użytkownik sam przygotuje specjalny obraz ISO albo kartę SD do tego celu.

W dokumentacji dołączonej do aktualizacji widnieje informacja, iż zawiera ona sterownik dźwięku dla Sam460ex. Po dokładnym prze- szukaniu archiwum stwierdziłem, że niczego takiego tam nie ma, a sterownik należy pobrać ze strony OS4Depot. Sterownik dźwięku w wersji beta był tam dostępny już na kilka dni przed wydaniem uaktualnienia.

Niestety, po zainstalowaniu aktualizacji pojawił się też nowy problem - moja klawiatura nagle przestała działać. Okazało się, że od tej pory muszę ją podłączać bezpośrednio do portu USB w Sam, a nie poprzez zewnętrzny hub.

22 POLSKIE PISMO AMIGOWE 3/2011 Sam460ex

Liczyłem też na większe poprawki w sterowni- ku SM502. Maksymalną głębokością obrazu obsługiwaną przez ten sterownik jest 16-bit, choć sam układ obsługuje też 32-bity. Niestety jego wydajność także nie jest zachwycająca (co zauważyć można na przykład przesuwając po ekranie okno OWB, gdy system jest nieco obciążony).

Jedynym systemem poza AmigaOS, wspiera- nym na Sam460ex jest Linux. Jeżeli chcemy go używać jako drugiego systemu, zalecana jest wymiana bootloadera SLB na alternatywny Parthenope (ub2lb), napisany przez Giuseppe Coviello z zespołu CruxPPC. Wersja 2.7a tej dystrybucji, wydana w lipcu ma wsparcie dla Sam460ex. Parthenope jest dostępny wraz z kodem źródłowym na stronie ACube Systems.

Wydajność

Z pewnością wielu użytkowników zastanawia się czy warto wymienić Sam440ep na model 460ex ze względów wydajnościowych. W tej kwestii starsza płyta pozostawiała wiele do ży- czenia. W porównaniu do procesora 440ep, odnotować można drastyczny wzrost wydajno- ści, spowodowany dodaniem 256 kB pamięci cache drugiego poziomu oraz znacznie wyż- szą częstotliwością taktowania. Dodatkowo Tabela poniżej przedstawia wydajność pamięci Podsumowanie układy wykorzystane w Sam460ex są fabrycz- RAM. Test wykonano programem RageMem z nie podkręcone z 1.0 GHz na 1.15 GHz. Dzięki pamięcią taktowaną 460 MHz. Z innym modu- Sam460ex to obecnie najnowocześniejszy temu zwiększane są też częstotliwości takto- łem pamięci, pracującym przy 575 MHz, wyniki sprzęt, na którym można uruchomić AmigaOS wania szyny procesora oraz pamięci. Fabrycz- mogłyby być jeszcze lepsze. 4.1. Tak zapewne pozostanie do czasu rozpo- nie procesor 460ex może pracować z pamię- częcia sprzedaży komputera AmigaOne cią taktowaną do 400 MHz, jednak po przetak- READ32 278 MB/Sec X1000. Co prawda jej graficzne i dźwiękowe towaniu procesora częstotliwość ta może wy- możliwości są bardzo podstawowe (jak na dzi- nosić do 575 Mhz. READ64 278 MB/Sec siejsze realia), ale użytkownikom o większych wymaganiach, płyta oferuje solidną podstawę Do zmierzenia wydajności procesora wykorzy- WRITE32 452 MB/Sec do zainstalowania lepszej karty graficznej czy stano program nbench. Wyniki testów przed- WRITE64 451 MB/Sec dźwiękowej. stawia poniższa tabela. Zainteresowanym po- równaniem wydajności procesora z innymi WRITE 836 MB/Sec (Tricky) Przez pewien czas istotną kwestią był brak maszynami polecam odwiedzenie strony sterowników do części wbudowanych urzą- http://amigadev.free.fr/powerpc/nbench.html Start komputera z AmigaOS 4.1, od włączenia dzeń, ale od wydania AmigaOS 4.1 Update 3 zasilania do gotowego do pracy Workbencha, jedynym poważnym problemem pozostaje trwa około 40 sekund. „Miękki” reset za pomo- brak wsparcia dla akceleracji 3D. Zapewne z Sam460ex Sam440ep cą kombinacji klawiszy Ctrl-Amiga-Amiga trwa zakupem wstrzymają się użytkownicy, dla któ- 1.15 GHz 667 MHz około 18 sekund. Wartości te zmierzone były rych ta funkcjonalność jest kluczowa. przy wykorzystaniu dysku podłączonego do NUMERIC SORT 519.47 311.67 kontrolera Silicon Image 3114 w (domyślnym) Na pytanie „czy warto kupić Sam460ex” każdy trybie PIO, więc warunki testu nie były opty- musi odpowiedzieć sobie sam. Ja uważam, że malne. mimo pewnych wad, jest to bardzo udany pro- STRING SORT 18.394 10.622 dukt. Cena nie jest niska, ale trzeba brać pod Wydajność sieci także nie jest zła, choć moż- uwagę, że jest dużo niższa niż przewidywana na było oczekiwać lepszych wyników. Podczas obecnie cena AmigaOne X1000. 1.8797e 1.0995e BITFIELD transmisji dużego pliku (581 MB) protokołem +08 +08 FTP udało mi się uzyskać średnią przepusto- W Polsce Sam460ex wraz z AmigaOS 4.1 wość 11 MB/s. Podczas testu sieć pracowała z można nabyć w firmie eFUNZINe, w cenie FP EMULATION 57.901 33.59 przepustowością 1 Gbit/s, a obie maszyny te- 3699 PLN. Płyta objęta jest gwarancją na stowe były podłączone do tego samego prze- okres 24 miesięcy. Bezpośrednio u producenta łącznika Ethernet. można nabyć wersję „Lite”, z wolniejszym pro- FOURIER 7163.2 4264.3 cesorem 1 GHz oraz 512 MB RAM w cenie Firma ACube Systems obiecuje, że kolejne ak- 599 euro (w cenę także wliczony jest koszt tualizacje firmware i sterowników przyniosą AmigaOS 4.1 - oferta ważna do wyczerpania ASSIGNMENT 7.4683 3.2279 dalsze zwiększenie wydajności. Z pewnością zapasów). Sam460ex będzie jeszcze wspierana przez długi czas. Wystarczy spojrzeć na Sam440ep Radosław „Strim” Kujawa IDEA 1638.7 960.28 – minęło już kilka lat od wypuszczenia jej na rynek, a nadal pojawiają się aktualizacje i usprawnienia dla tej płyty. HUFFMAN 868.06 507.86

NEURAL NET 8.1967 4.8575 Odnośniki ● http://www.acube-systems.biz/ – strona ACube Systems, producenta płyty głównej Sam460ex ● http://www.efunzine.com/ - strona eFUNZINe, dystrybutora płyty głównej na Polskę LU DECOMP 159.75 77.92 ● http://www.hyperion-entertainment.biz/ - strona Hyperion Entertainment, dostawcy AmigaOS 4.1

POLSKIE PISMO AMIGOWE 3/2011 23 PyMUI - czyli tworzymy okna Pythonem

PyMUIPyMUI czyli tworzymy okna Pythonem

Z rozmów z początkującymi użytkownikami kroku, którym jest oczywiście prosta aplikacja wyświetli wiadomości z podanej przez użyt- MorphOS-a wiem, że dużo osób, próbując pi- „Hello World”. Nie zapomnijmy tutaj o użyciu kownika strony. Zaczniemy go pisać od zaim- sać swoje pierwsze aplikacje, zraziło się do ję- edytora. Szkoda byłoby nie zachować efektów portowania modułów xml.dom.minidom (po- zyka C i drzewiastych struktur MUI. Jeżeli je- naszej pracy. Edycji możemy dokonać przy zwoli nam parsować dokument pobrany z sie- steś jedną z nich, mam dla Ciebie dobrą wia- pomocy „Eda” z pakietu developer dla ci), urlib (pobierzemy plik ze strony www) oraz domość - z PyMUI pokochasz tworzenie MorphOS-a. Ważne tylko by w konfiguracji za- pymui (do wyświetlenia interfejsu graficznego). okienkowych aplikacji. A co to jest? Jest to pa- znaczyć, żeby edytor zamieniał tabulatory na Sam kod aplikacji rozpoczniemy od stworzenia kiet dla języka Python, który pozwala tworzyć spacje. W innym wypadku dość często inter- grupy obiektów wywołaniem klasy pymui.Gro- interfejsy użytkownika przy pomocy środowi- preter Pythona pokaże nam błędy składni. up(), obiektów pymui.Text() pozwalających wy- ska MUI. Z samym MUI każdy, nawet począt- świetlać informacje tekstowe, a także dodamy kujący amigowiec, powinien spotkać się wielo- Hello world do formularza pole wejściowe pymui.String() i krotnie. Jeżeli jednak słyszysz o MUI pierwszy prosty przycisk pymui.SimpleButton(). Po raz, polecam odwiedzić stronę autora i prze- Będzie to przykład zupełnie prosty, zaczniemy stworzeniu obiektów musimy wszystkie ele- czytać przynajmniej opis tego interfejsu użyt- od stworzenia okna z przyciskiem oraz notyfi- menty dodać do grupy, co czynimy metodą kownika. Co do samego Pythona instalację i kacją, gdzie kliknięcie w obiekt „SimpleButton” AddChild(obiekt). Kolejne obiekty MUI doda- lekcję wprowadzającą zrobił Marek Hać w po- spowoduje wyjście z programu. Teraz moduł dzą się do naszej grupy w kolejności ich wywo- przednim numerze naszego magazynu, a więc PyMUI zaimportujemy samym poleceniem im- łań. Do przycisku dodamy teraz notyfikację, ten temat skrzętnie pominę. port. Taki sposób pozwoli nam na łatwe roz- która po kliknięciu w niego wywoła funkcję po- różnienie metod i zaimportowanych pakietów. bierzRss(), do której przekażemy wartość Dlaczego w Pythonie, a nie w C? Przy pisaniu większych programów możemy wprowadzoną w polu url_rss. Następnie do- się spotkać, że w dwóch pakietach występuje damy funkcję, która parsuje nasz dokument, metoda o tej samej nazwie. Taki problem, mo- wyszukując nazwy i odnośniki do artykułu w Oprócz prostoty tworzenia okien jest jeszcze żemy rozwiązać poprzez importowanie bez po- pobranym dokumencie. Tak pobrane dane do- parę innych aspektów, w których Python prze- lecenia from lub zaimportowanie tylko określo- damy do obiektu lista i pozwolimy wyświetlić w waża nad C. Dzięki nim polubisz i szybko nych modułów z pakietu. aplikacji. A więc bierzmy się do pisania (listing przyswoisz pracę z Pythonem. Oto kilka z na stronie 25). nich: Ciekawym elementem kodu jest sekcja przy- pięcia notyfikacji, gdzie do wywołania funkcji ● kod Pythona jest bardziej czytelny niż w używamy wyrażenia lambda. Wyrażenie to po- przypadku C - nie będziesz musiał zagłę- zwala zdefiniować jednolinijkowe funkcje. Co to jest PyMUI? biać się i szukać gdzie się kończy funkcja i Dzięki jej prostocie nie musimy używać ani na- PyMUI to pakiet dla skryptowego języka Python. czy nie zapomniałeś zamknąć nawiasów; zwy funkcji, ani zwracać wyniku przez słowo Zastosowanie znajdzie w Pythonie w wersji 2.5.4 ● już nie będziesz musiał rekompilować kodu kluczowe return. Lambda pozwala na oszczę- lub nowszej. Jego zadaniem jest stworzenie apli- po jego zmianie - po prostu uruchom pro- dzenie dużej ilości niepotrzebnego kodu. Za- kacji w języku skryptowym, która do zbudowania gram jeszcze raz; pamiętajmy - tam, gdzie funkcja jest trywialna i graficznego interfejsu użytkownika wykorzysta MUI (Magic User Interface). ● będziesz miał dostęp do nowoczesnego ję- używamy jej w tym konkretnym miejscu kodu, zyka obiektowego - swoje programy po używajmy wyrażenia lambda. A więc do klawia- drobnych zmianach, głównie w funkcjach tur. wyświetlania interfejsu graficznego, uru- chomisz na każdym systemie, dla którego #!python # Importujemy pakiet pymui istnieje port Pythona 2.5.x i wyżej. import pymui

# Tworzymy obiekt Aplikacji, okno i przycisk Jest jeden mały minus - program jest trochę aplikacja = pymui.Application(Base='PyMUI_HelloWorld', Title='Hello World’, Description='Prosty przykład’) okno = pymui.Window('Hello, World!') wolniejszy niż jego odpowiednik napisany w C, przycisk = pymui.SimpleButton('Bye Bye!') ale przy obecnych prędkościach procesorów # Przypisujemy okno do aplikacji i ustawiamy jako główny obiekt przycisk aplikacja.AddChild(okno) PPC w PowerMacach i Macach Mini nie sta- okno.RootObject = przycisk nowi to dużego problemu. # ustawiamy notyfikację, która w momencie naciśnięcia przycisku bądź znaku x wychodzi z programu okno.Notify('CloseRequest’, lambda e: app.Quit(), when = True) przycisk.Notify('Pressed’, lambda a: app.Quit(), when = False)

Zaczynamy # Otwieramy okno i uruchamiamy aplikację okno.OpenWindow() aplikacja.Run()

Zgodnie ze wstępem zakładam, że mamy już # Niekonieczne Python sam zwolni pamięć zainstalowanego Pythona przynajmniej w wer- del aplikacja sji 2.5.4. Pobieramy pakiet PyMUI do ze strony autora, rozpakowujemy i instalujemy (oczywi- ście nazwa archiwum może być inna) komen- Efektem powyższego dą: kodu powinna być taka prosta aplikacja, jak wi- XADUnFile RAM:PyMUI-0.4.morphos.lha SYS: dzimy po lewej stronie.

Czas na coś trudniejsze- Po tej operacji mamy już w pełni przygotowaną go i bardziej skompliko- platformę do pracy. Teraz powinniśmy mieć już wanego. działającą wersję PyMUI w systemie, co sprawdzimy w shellu Pythona wpisując (uwaga na gwiazdkę): Nie za duży program

python> from pymui import * Stworzymy prosty czytnik RSS, pozwalający na odczytanie wiadomości z prawie każdej Jeżeli interpreter Pythona nie wyrzucił nam strony posiadającej tę funkcjonalność. Pro- gram będzie składał się z formularza z polem żadnego błędu, to znaczy, że wszystko mamy Prosty czytnik RSS w porządku i możemy przejść do następnego tekstowym, przyciskiem oraz listą pymui.List() i

24 POLSKIE PISMO AMIGOWE 3/2011 PyMUI - czyli tworzymy okna Pythonem

#-*- coding: utf-8 -*- import xml.dom.minidom, urllib, pymui

#zaczynamy od utworzenia grupy, w której umieścimy wszystkie kontrolki MUI

grupa = pymui.Group() #tworzymy kolejno pole tytułu aplikacji, pole wejściowe, przycisk, listę do przechowywania wiadomości oraz pole informacyjne

tytul = pymui.Text(Contents = 'Lista artykułów’) url_rss = pymui.String() przycisk = pymui.SimpleButton('Kliknij') lista = pymui.List() info = pymui.Text()

#wszystkie nowo utworzone obiekty dodajemy do grupy

grupa.AddChild(tytul) grupa.AddChild(url_rss) grupa.AddChild(przycisk) grupa.AddChild(lista) grupa.AddChild(info)

#tworzymy notyfikacje dla przycisku, po którego kliknięciu wywołujemy funkcję pobierzRss(), do której przekazujemy adres wpisanej przez nas strony

przycisk.Notify('Pressed',lambda a: pobierzRss(url_rss.Contents), when = True)

#z tekstu wiadomości usuwamy polskie znaki - kodowanie 'UTF-8' w tekście i Unikod Pythona jest nieco skomplikowany i powoduje problemy w połączeniu z PyMUI, #błąd ten zniknie wraz z dostosowaniem PyMUI do Pythona z serii 3.x

def usunPlZnaki(text): x = {'\xc3\xb3': 'o', '\xc3\x93': 'O', '\xc4\x85': 'a', '\xc4\x84' : 'A', '\xc4\x99': 'e', '\xc4\x98': 'E', '\xc5\x82' : 'l', '\xc5\x81' :'L', '\xc4\x87' :'c', '\xc4\x86' :'C', '\xc5\x84' :'n', '\xc5\x83' :'N', '\xc5\xbc': 'z', '\xc5\xbb' : 'Z', '\xc5\xba' : 'z', '\xc5\xb9' : 'Z', '\xc5\x9b' : 's', '\xc5\x9a' : 'S', '\xC4\x85': '&'} for key, value in x.items(): text = text.replace(key, value) return text.encode('utf-8')

#funkcja pobiera stronę z serwera i przekazuje do obiektu parsera xml, sprawdza czy wpisany link istnieje oraz, czy podany url zawiera składnię xml def pobierzRss(strona_rss): try: usock = urllib.urlopen(strona_rss.contents) dom = xml.dom.minidom.parse(usock) info.Contents = 'Wiadomosci z ' + strona_rss.contents parsujRSS(dom)

except IOError: info.Contents = 'Nie mogę otworzyć Twojego odnośnika.' except xml.parsers.expat.ExpatError: info.Contents = 'Odnośnik, który podałeś, prawdopodobnie nie jest RSS-em.'

#dwie funkcje pozwalające wyłuskać tekst z xml

def pobierzTextPojedynczo(node): parts = [child.data for child in node.childNodes if child.nodeType == node.TEXT_NODE] return u"".join(parts)

def pobierzText(nodelist): return u"".join(pobierzTextPojedynczo(node) for node in nodelist)

#funkcja parsująca obiekt przekazany w funkcji pobierzRss(), podczas iteracji dodajemy kolejne elementy listy do obiektu pymui.List()

def parsujRSS(dom): items = dom.getElementsByTagName("item") for i in items: title = i.getElementsByTagName("title") link = i.getElementsByTagName("link") wiadomosc = usunPlZnaki(pobierzText(title).encode('utf-8')) + u' link: ' + pobierzText(link).encode('utf-8') lista.InsertSingleString(wiadomosc) return lista

#tworzymy okno aplikacji o rozmiarach 500px x 400px i dodajemy wcześniej utworzona grupę jako główny obiekt

okno = pymui.Window(Width=500, Height=400, CloseOnReq=True, RootObject=grupa)

#ustawiamy notyfikacje dla obiektu, pozwalając po kliknięciu w przycisk zamknąć aplikację

okno.Notify('CloseRequest', lambda *a: aplikacja.Quit(), when = True)

#dodajemy okno i je wyświetlamy

aplikacja = pymui.Application(okno) okno.OpenWindow()

#wreszcie uruchamiamy gotową aplikację

aplikacja.Run()

Teraz wpisz w pole tekstowe adres strony starczy zagłębić się w źródłach pakietu, gdzie miarę wolnego czasu, napisać kolejny artykuł RSS, np. http://www.ppa.pl/newsy/b2rss.xml. znajdziemy uporządkowane funkcje z dość dotyczący PyMUI i tym uzupełnić braki w do- Jeżeli dostałeś listę artykułów, to znaczy, że skąpym opisem. Ponadto Yomgui, autor, pisze kumentacji, a także jeszcze bardziej zachęcić się udało. Gratulacje. przy wykorzystaniu PyMUI aplikację Griboullis do rozpoczęcia zabawy z Pythonem. – program graficzny. Źródła aplikacji możemy pobrać ze strony autora, później ją rozpako- Marcin Spoczyński Jak uczyć się dalej? wać i czytać. Ze swojej strony postaram się, w

Niestety muszę zasmucić maniaków czytania dokumentacji - autor pakietu PyMUI jeszcze jej Odnośniki nie napisał. Na stronie projektu znajdują się ● http://yellowblue.free.fr/yiki/doku.php/en:dev:pymui:start - oficjalna strona pakietu PyMUI, jedynie nieco przestarzałe materiały z po- ● http://www.sasg.com/mui/ - oficjalna strona MUI, przednich wersji beta. Ale nic straconego. Wy- ● http://library.morphzone.org/Magic_User_Interface_Programming - Tutorial MUI Grzegorza Kraszewskiego,

POLSKIE PISMO AMIGOWE 3/2011 25 Amiga i Manga AmigaAmiga ii MangaManga

anga, jak zapewne wszyscy lub tawmy na później. Za to „Bubble M Heroes” to gra logiczno-zręczno- prawie wszyscy wiedzą, to rodzaj ściowa o cukierkowatej grafice, któ- bardzo popularnego komiksu, cha- ra, trzeba podkreślić, jest naprawdę rakteryzujący się oryginalnym stylem ładna. Fani RPG mogą pograć w rysowania, który zapoczątkowano w „Realms of Sendai”, która była kie- Japonii. Styl ten szybko zyskał popu- dyś dostępna na jednej z płyt ACS i larność na całym świecie. Również w ma status gry shareware. Słabiutka Polsce, głównie dzięki serialom ani- grafika, za to zabawa przednia. Ko- me, takim jak „Kapitan Tsubasa” czy lejny „erpeg”, tym razem w pełni „Dragon Ball”, ludzie zaczęli intere- komercyjny, to „Shadowlands”. Po- sować się japońską kreską. Jak stacie żywcem wyjęte z mangi, grzyby po deszczu zaczęły pojawiać sama gra to tradycyjne role playing się w polskich księgarniach co raz to fantasy z izometrycznym widokiem nowsze mangowe komiksy, telewizja 2D. Lubicie się pościgać? Proszę raczyła nas codziennymi blokami bardzo. „Wheelspin” grupy Black anime, a w kioskach zaczęła poja- Legend to wyścigi samochodowe w wiać prasa dedykowana tej dziedzi- stylu „Skidmarks” z mangowym nie (nieodżałowane „Kawaii”). I wła- designem w tle. Dla tych, którym śnie w „Kompendium Kawaii” natkną- jazda się nie znudzi, mogą zapu- łem się na ciekawy materiał dotyczą- ścić sobie na deser „Chase H.Q.”. cy mangi i naszej kochanej Amigi, który został napisany przez kolegę znanego chyba wszystkim użytkownikom PPA również fabuła. Kolej na „First Samurai” i „Se- Na Amigę nie mogło zabraknąć oczywiście (przy okazji - pozdrawiam). Jako że od tego cond Samurai”. Ta pierwsza była przełomem mangowych mordobić. Seria „Street Fighter” czasu minęło dobrych parę latek, a temat nie wśród platformówek z rewelacyjną, jak na swo- również znana jest wszystkim graczom. Pa- pojawił się w żadnej amigowej prasie, posta- je czasy, grafiką i świetną muzą, a jej najwięk- miętam wojenki, które toczyli fani „Street Figh- nowiłem lekko go odświeżyć, nawiązując do szym atutem była płynność animacji i nielinio- ter” i „Mortal Kombat” o to, który tytuł jest lep- tamtego świetnego artykułu. wa fabuła - pełna zagadek i zwrotów akcji. szy. Dla nas, fanów anime, jest to pozycja Również „Risky Woods” jest bardzo fajną gier- obowiązkowa. „Elfmania” również daje radę. Zaraz ktoś zapyta, a co z tym wspólnego ma ką wydaną przez Electronic Arts w 1992 roku. Miłośnicy konsoli CD32 także znajdą coś dla nasza przyjaciółka? Otóż już wyjaśniam. Jako Zajmuje dwie dyskietki i, o dziwo, do odpalenia siebie. Świetna nawalanka „Shadow Fighter” że wśród fanów mangi byli i są również kom- jej potrzeba tylko 0,5 MB pamięci. W grze po- pozwala poczuć klimat, wzbogacony dodatko- puterowi zapaleńcy, nie mogło zabraknąć gier, magamy gostkowi uwolnić zamienionych w wo niezłą muzą. Kolejna gra znana wszystkim slideshowów czy animacji nawiązujących do kamienie mnichów. Aby tego dokonać, musimy fanom anime to „Akira” - na podstawie kulto- tego charakterystycznego stylu. Również na- pokonać wielu przeciwników, którzy zamieniają wego filmu o tym samym tytule. Jeśli się nie sza Amiga ma na tym polu wiele do zaofero- się w monety, za które możemy kupić różne ar- mylę, została wydana na wszystkie Amigi, lecz wania, mimo że są to głównie starsze tytuły, to tefakty. W grze „Sword of Honour” przenosimy w wersji na CD32 dodatkowo dołączono przez lata nie straciły wiele na grywalności, a się do XV-wiecznej Japonii i wcielamy się w wstawki animacyjne prosto z filmu. Z now- dzięki uniwersalnej grafice nawet dziś nie mają samuraja, który musi zmazać hańbę, jaka szych pozycji, dedykowanych głównie Amigom się czego wstydzić. Nawet jeśli już znudzimy spadła na ród jego pana (coś dla fanów „The nowej generacji, klimatem nawiązującym do się amigowymi tytułami i zapragniemy czegoś Last Ninja” i „First Samurai”). Lecąc dalej, mangi jest „Aquaria” opisywana szerzej w po- świeżego, to otwiera się przed nami świat mamy serię „Turrican” - tytuł mówi sam za sie- przednim numerze naszego pisma czy „Sho- emulatorów, dzięki którym - głównie na now- bie, każdy szanujący się amigowiec w to grał, go” - gra akcji łączącą cechy symulatora i gier szych lub bardziej rozbudowanych Amigach - prawda? Fani „Castlevanii” również mogą po- FPP z ogromnymi, jak na tamte czasy, wyma- zapoznamy się z grami, które oficjalnie ominę- grać w amigową wersję tej gry, jednak jej ganiami. ły naszą platformę. I tak stoi przed nami otwo- miodność pozostawia wiele do życzenia. Na- rem świat gier z PSX-a, mnóstwo pozycji, któ- stępna dobra propozycja to „Switchblade” - Powolutku dochodzimy do końca tego artyku- re dotychczas były przede wszystkim dostępne dwuczęściowa klasyczna zręcznościówka 2D łu. Wiem, że przytoczone tytuły to tylko kropla na PC. Dzięki M.A.M.E. na naszej Amidze za- od chłopaków z Gremlin Graphics. w morzu, mały ułamek tego, co powstało i w goszczą wspaniałe gry z automatów, a jeśli co możemy się pobawić. A przecież oprócz ktoś zechce poczuć japońskiego ducha i klimat Murowany hicior to trylogia „Double Dragon”, gier jest wiele innych gatunków (intra, slide- z poprzedniej epoki, mamy stare pozycje z jak również „Golden Axe” - chyba nie trzeba showy, animacje, ziny) nawiązujące tematem Pegasusa czy Segi oraz świetny emulator bliżej przedstawiać tych gier - uliczne mordo- do mangowego stylu, które możemy odpalić MSX-a. MSX to 8-bitowy komputer, który naj- bicia w najlepszym wydaniu. Kolejne cudo to na naszych Amigach i rozkoszować się nimi większą furorę zrobił w Japonii w latach „Rod-Land” - prześliczna mangowa grafika, do woli. Chciałbym również, by ten tekst wy- 80-tych. W tym artykule chciałbym jednak troszkę dziecinna, ale komu to przeszkadza. zwolił wenę twórczą w osobach, które tak jak skupić się wyłącznie na grach dedykowanych „The Speris Legacy” autorstwa Team 17 to ja interesują się tym dalekowschodnim stylem, naszej przyjaciółce. Mangowe gry na Amidze zręcznościówka, w której znajdziemy rozwinię- a które mają o wiele większą wiedzę na ten obejmują praktycznie wszystkie kategorie, po- ty wątek fabularny z barwną, jak na tamte cza- temat (wiem, że na PPA tacy są) i aby go roz- cząwszy od gier logicznych, po różnej maści sy, grafiką. Dla fanów Zeldy pozycja obowiąz- winęli oraz poprawili mnie w kwestiach, które strzelaniny, platformówki czy gry cRPG. kowa. Kolejna gra ze stajni Team 17 – „Api- uznają za stosowne. Zaproponujcie tytuły bar- Chciałbym zaznaczyć, że wiele gier zostało dya”, to tytuł, który swego czasu wywarł na dziej uniwersalne, gdyż wiem, że skupiłem się zrobionych przez europejskie studia i kraju mnie duże wrażenie. Niby zwykła strzelanka - na tych najbardziej znanych i popularnych w kwitnącej wiśni nawet nie powąchały. Nie sterujemy o dziwo pszczołą, ale to cudne świecie Amigi. Temat jest bardzo obszerny - a przeszkadza to jednak w ogóle w zabawie i za- mangowe interko na początku... „Gunbee F99” Amiga, jak i Manga na to zasługują. łapaniu mangowego klimatu. to strzelanka wydana w 1999 roku przez nie- miecką firmę ACP&TCP. W momencie poja- Łukasz „Vegeta” Jeglorz Koniec lania wody, czas na konkrety. Na po- wienia się została niemiłosiernie zbesztana czątek moja ulubiona gierka w stylu anime – przez amigową prasę, dziś spokojnie można ją P.S. Tekstem, który pchnął mnie do napisania tego ar- mianowicie „Leander”. Na trzech dyskietkach tykułu i był dla mnie swoistym przewodnikiem, dzięki potraktować jako klasyka z mangową grafiką, któremu zainteresowałem się mangowym graniem na mieści się urocza platformówka, w której steru- czyli to, co tygryski lubią najbardziej. Jeśli o Amidze, był artykuł napisany przez Misumaru Tenchi. jemy wojownikiem walczącym ze złem. Podo- klasykach mowa, to nie można zapomnieć o Chciałem Ci podziękować i mam nadzieję, że nie czu- ba mi się klimat tej gry, na uwagę zasługuje „R-Type”. Autofire i do przodu, myślenie zos- jesz się rozczarowany.

26 POLSKIE PISMO AMIGOWE 3/2011 Amiga Mods Anthology – zbiór prawie doskonały/Rozwiązanie konkursów AmigaAmiga ModsMods AnthologyAnthology zbiór prawie idealny

Zbiór modułów na Ami- popularne systemy opera- dze w moim przypadku cyjne. Zestaw zawiera także zawsze zabierał przynaj- aplikację mafind dla Amiga- mniej parę gigabajtów na OS, gdzie po wpisaniu na- dysku. No cóż, posiadanie zwy modułu, pliku czy auto- Amigi do czegoś zobowią- ra aplikacja wskaże nam ka- zuje. Przez jakiś czas po talog, w którym mamy go padzie dysku twardego szukać. Część oprogramo- zbiór się znacznie skur- wania jest już ze względu na czył. Chciałem szybko okres wydania zbioru nieco nadrobić stratę pobierając nieaktualna, ale z tej sytuacji z sieci paczkę modułów o możemy szybko wybrnąć rozmiarze 29 GB, ale to szukając w internecie now- była lekka przesada. Je- szej wersji programu niż ta den moduł na sto nadawał załączona. się do słuchania. Szybko pozbyłem się tak trudnego Czy warto ten zestaw po- w utrzymaniu zbiorowiska brać? Myślę, że każdy ami- dziwacznych tworów. Pew- gowiec powinien posiadać nego dnia na dysk mojego ten zbiór na płytach i jak Macintosha wpadł zestaw najczęściej do niego wracać. „Amiga Mods Anthology”, Na dyskach jest umieszczo- który jest zbiorem modu- ne i skatalogowane paręna- łów zebranych przez gru- ście lat amigowej historii, pę zapaleńców z TOSEC. która ciągle trwa, gdyż trac- Zbiór został udostępniony kery w muzycznym świecie na 4 obrazach płyt CD, podzielonych alfabe- pika i paru innych muzykantów. Wśród nich ciągle się bronią przed coraz to bardziej roz- tycznie na wykonawców, a ostatni, czwarty niestety nie znalazłem JazzCata, który jest budowanymi edytorami muzycznymi, a obec- krążek zawiera luźny zbiór modułów nagra- jednym z moich faworytów, no ale widocznie nie najpopularniejszy Tracker - Renoise - do- dzanych na imprezach, najpopularniejszych twórcy nie chcieli go umieścić albo zwyczajnie stępny na Macintosha i PC, cieszy się dość grup scenowych, utworów w klimacie chiptune, przeoczyli. W niektórych katalogach autorów dużą popularnością wśród wielu producentów. trochę staroci oraz zestaw muzyki w mniej po- znajdziemy dodatkowy katalog Docs, gdzie Co do amiświata, niestety jesteśmy jak zwykle pularnych formatach m. in. PlaySID, Octamed, umieszczone są informacje, biografia, zdjęcia trochę opóźnieni, ciągle czekamy na DigiBo- Digibooster. (nawet te rodzinne), votki z imprez i inne cie- ostera 3, dzięki któremu świat amigowych mo- kawe dokumenty. Wszystkie katalogi z modu- dułów pewnie trochę odżyje. A jak nie, to za- Co tam znajdziemy? Sam listing modułów za- łami zawierają listing w postaci pliku txt, gdzie wsze pozostanie nam do odpalenia stary i wy- jąłby wszystkie strony tego magazynu. Na tych znajdziemy opis katalogu, wielkość pliku oraz służony Protracker. płytach jest prawie cała muzyczna historia komentarz do utworu. Amigi. Znajdziemy na niej naprawdę wspaniały Marcin Spoczyński zestaw historycznych już modułów, takich sław Dodatkowym atutem zbioru jest zawartość ka- jak 4mat, Walkman, 911, Nightshade, Audio- talogu Tools, gdzie znajdziemy oprogramowa- monster, Gryzor i tysiące innych. Oczywiście nie do odtwarzania plików znalezionych na tym nie zabrakło miejsca dla Polaków. Mamy Scor- zestawie płyt w wersjach na bardziej i mniej

Konkurs na krzyżówkę Rozwiązanie konkursów Przypominamy, że konkurs na sporządzenie krzyżówki, zapo- czątkowany w pierwszym numerze naszego magazynu trwa na- dal. Oczekujemy, że będzie to praca sensowna, związana tema- W odpowiedzi na nasz konkurs wpłynęły artykuły, które tycznie z profilem czasopisma oraz portalu. Rodzaj i rozmiar pozwoliły zapełnić numer, który właśnie trzymacie w rę- krzyżówki dowolny (liczymy na Waszą inwencję, akceptujemy kach. Podobnie jak i poprzednim razem, spośród opubli- standardowe krzyżówki, jolki, panoramiczne, rebusy, anagramy). Prace należy nadsyłać na adres redakcji w postaci plików gra- kowanych w numerze artykułów wybraliśmy ten, który na- ficznych (format PNG) wraz z określeniami oraz hasłami (odpo- szym zdaniem zasłużył na specjalne wyróżnienie. Wybór wiedziami) w osobnym pliku tekstowym (format ASCII). Prosimy zwycięzcy nie był łatwy, lecz ostatecznie, w drodze głoso- nie uzupełniać plików graficznych hasłami (odpowiedziami)! wania, pierwsze miejsce przyznaliśmy Stanisławowi Sę- dłakowi za artykuł „Odprawiamy czary, czyli krótki porad- Najlepsze prace zostaną nagrodzone publikacją krzyżówki na nik jak ustrzec się od potencjalnej śmierci Amigi”. Autor łamach magazynu, a wytypowany przez jury redakcyjne zwycięz- został doceniony za oryginalne, zróżnicowane i ciekawe ca otrzyma dodatkowo nagrodę. podejście do tematu. Gratulujemy. Z autorem skontaktu- Redakcja zastrzega sobie prawo do zmiany objaśnień w krzy- jemy się w celu ustalenia nagrody. Pozostałym uczestni- żówce przed publikacją, nieopublikowania krzyżówek, jeżeli uzna kom dziękujemy za nadesłane artykuły. to za zasadne lub, w przypadku niskiego poziomu nadesłanych prac, całkowite anulowanie konkursu i nie przyznanie nagrody.

Adres redakcji: [email protected]

POLSKIE PISMO AMIGOWE 3/2011 27 Rysunki i scenariusz: Bartek Żołyński (BagoZonde)

Czy Elvira niezawodny powróci japoński do swego system Wymiaru? tuneli Czy zda życie egzamin? pozagrobowe Gdzie wśród trafi uzbrojona bohaterów po z czasów zęby bohaterka? ich dawnej Czy świetności trafi na może trop prowadzącywiać cmentarną do jej nudą? prześladowcy? Wszystko wWszystko Twoich rękach, zależy ododdaj Ciebie, głos oddajw ankiecie głos w na ankiecie portalu naPPA. portalu PPA.