kategorie: ANSI C, C++
[#1] Materiały do nauki AmigaOS/MorphOS API
Wstęp:
Chyba dojrzałem do decyzji usunięcia tej (momentami paskudnej) biblioteki SDL ze swoich wypocin. Nie powinno być to trudne, bo korzystam z tej biblioteki w niewielkim stopniu (okna/ekrany, dźwięk, obsługa klawiatury/myszy i cykl życia aplikacji). Jednak stworzenie środowisko do działania całego mojego "tworu" wymaga poznania podstaw API systemu operacyjnego. Mój "twór" jest przygotowany do rezygnacji z SDL, bo np. wersja dla iOS nigdy nie korzystała z SDL i sobie radzi. No ale system i API iOS znam na tyle dobrze, że mogłem sobie napisać takie środowisko. Teraz muszę poznać trochę lepiej macOS API i zupełnie od podstaw MorphOS/AmigaOS API. Zanim się do tego zabiorę, muszę zebrać materiały. Niestety AmigaOS/MorphOS to nie macOS i Google nie wyrzuca setek tysięcy przydatnych linków, a Stack Overflow milczy jak grób gdy zada się odpowiednie pytanie. szeroki uśmiech Potrzebuję zupełnych podstaw (zasady radzenia sobie z bibliotekami, obsługa klawiatury/myszy, okien/ekranów, cykl życia aplikacji, może dźwięk jeżel OpenAL mi nie przypasuje). Z biblioteki standardowej nie zamierzam rezygnować, bo zbyt zależy mi na multiplatformowości kodu. No ale okno czy ekran muszę sobie otworzyć, sygnały z myszy czy klawiatury odebrać i dostarczyć swojemu mechanizmowi, wykryć aktywację/dezaktywację okna czy zamknięcie aplikacji. To mi wystarczy do stworzenia warunków do działania setek mechanizmów mojego śmiesznego mini-silniczka.

Pytanie:
Czy możecie mnie skierować w odpowiednie zakamarki internetu w których dostanę to co jest mi potrzebne do poznania podstaw programowania pod MorphOS/AmigaOS?
Oczywiście absolutnym "must have" jest to co napisał kiedyś Krashan. Ale czy coś jeszcze? Skąd się właściwie bierze się oficjalne dokumentacje, autodocki? Nie mam tej legendarnej płyty z wytycznymi Commodore. Małe przykładziki też są bardzo mile widziane. Interesuje mnie tylko programowanie w C i C++.

Tłumaczenie się:
Wiem jak bardzo lamersko brzmi moje pytanie ale mimo to nie wstydzę się je zadać. mam wrażenie, że materiały o AmigaOS/MorphOS w porównaniu z np. materiałami dla innych platform (np. iOS/macOS) są zakopane 2 kilometry pod ziemią i dostępne tylko po oddaniu jednej nerki. Pytam tutaj, bo jeżeli nie tutaj to gdzie?

Ostatnia aktualizacja: 15.06.2017 16:29:52 przez MDW
[#2] Re: Materiały do nauki AmigaOS/MorphOS API

@MDW, post #1

Oficjalna dokumentacja do MorphOS-a jest w oficjalnym SDK do MorphOS-a... Co do zakopania 2 kilometry pod ziemią, lekka przesada, ale masz trochę racji. Biorąc pod uwagę ile osób pracujących wyłącznie nad dokumentacją zatrudnia takie Apple, Google, czy nawet Microsoft, trudno się dziwić. W amisystemach dokumentację tworzą programiści, często traktując to zajęcie jak kulę u nogi. Niemniej:
1. Płytę "Amiga Developer CD" można tu i ówdzie kupić, a podejrzewam, że ISO tejże też jest do znalezienia.
2. Dokumentacja do MorphOS-a i AmigaOS 4 jest dostępna bez problemu. Owszem, pozostawia czasem nieco do życzenia, ale jest.
3. Zawsze możesz zapytać tutaj.
[#3] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #2

Zawsze możesz zapytać tutaj.

Dzięki za zachęte. OK Na pewno z niej skorzystam gdy trafię na jakieś problemy. szeroki uśmiech Ale to dopiero gdy faktycznie z czymś sobie nie poradzę. Nie chcę wyskakiwać z czymś w rodzaju "nic nie umiem - weźcie mi wszystko wytłumaczcie".

Gdzieś w sieci można znaleźć coś na temat programowania dla AmigaOS/MorphOS. Ale w porównaniu z tym co jest dostępne np. dla iOS/macOS to nawet nie jest promil. W przypadku iOS na każde możliwe pytanie jest od kilku do kilku tysięcy wyczerpujących odpowiedzi. Osoba ucząca się programowania dla np. iOS (czy Android) ma setki tysięcy razy większy dostęp do wiedzy. Trzeba odfiltrować "syf" (jak to w internecie) ale na sitku zawsze zostają wartościowe odpowiedzi. Amigowy programista musi radzić sobie inaczej. I dlatego takie skarbnice wiedzy jak np. Ty są wręcz bezcenne.

Ostatnia aktualizacja: 15.06.2017 17:19:42 przez MDW
[wyróżniony] [#4] Re: Materiały do nauki AmigaOS/MorphOS API

@MDW, post #1

Jako niezbędne podstawy polecam płytę Amiga Developer CD oraz Wiki AmigaOS dla Developerów.
[#5] Re: Materiały do nauki AmigaOS/MorphOS API

@MDW, post #3

Miałem kiedyś pomysł, aby popełnić jakąś grubą cegłę o programowaniu AmigaOS/MorphOS. Ale nie jestem wystarczająco systematyczny w pracy.
[#6] Re: Materiały do nauki AmigaOS/MorphOS API

@MDW, post #1

Pod OS 4

SDK
AmigaOS 4.1 Final Edition Software Development Kit

Programming AmigaOS 4: The Development Environment > Tutorials:Main
http://wiki.amigaos.net/wiki/Tutorials:Main

OS4 Coding
http://www.os4coding.net


Ostatnia aktualizacja: 15.06.2017 17:44:38 przez adam_mierzwa
[#7] Re: Materiały do nauki AmigaOS/MorphOS API

@Hexmage960, post #4

No właśnie też na to dzisiaj trafiłem biegając po Google. Całkiem zgrabnie zebrane podstawy. Przyda się. Dzięki!

Ostatnia aktualizacja: 15.06.2017 18:01:33 przez MDW
[#8] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #5

Miałem kiedyś pomysł, aby popełnić jakąś grubą cegłę o programowaniu AmigaOS/MorphOS.

To byłaby bardzo cenna książka. Gdyby była po angielsku to może nawet trochę by się tego sprzedało. Chociaż raczej nie o zarobek by w tym przedsięwzięciu chodziło.

Ale nie jestem wystarczająco systematyczny w pracy.

A ja myślę, że właśnie jesteś zbyt systematyczny, poukładany i jesteś perfekcjonistą. szeroki uśmiech Dlatego chciałbyś zrobić to bardzo porządnie. A porządny, dokładny i kompletny opis, nawet tak stosunkowo mało złożonego systemu jak AmigaOS, to jednak jest ogromne przedsięwzięcie. Materiału do opisania byłoby bardzo dużo. Doprowadzenie coś takiego do szczęśliwego końca w pojedynkę jest mało realne. Ale jeżeli spróbujesz to nie będziesz miał większego kibica ode mnie. OK
[#9] Re: Materiały do nauki AmigaOS/MorphOS API

@adam_mierzwa, post #6

AmigaOS4 oczywiście też jest w kręgu moich zainteresowań. Ale moja wiedze w tym temacie jak tak mizerna, że raczej powinienem zacząć od podstawowych materiałów udostępnionych jeszcze przez Commodore.

Ale linki oczywiście się przydadzą i sobie je zachowam.

Ostatnia aktualizacja: 15.06.2017 18:12:57 przez MDW
[#10] Re: Materiały do nauki AmigaOS/MorphOS API

@MDW, post #1

@MDW
Ja korzystam z tego.
AmigaOS 3.5 Developer Docs

Wszystko zależy od tego co zamierzasz zrobić. Jeśli chodzi o gre to według mnie wystarczy Ci Screen + Window + Timer.device. Nawet mam gdzies takiego templata który otwiera double buffered screen + timer.device + wyjście za pomocą ESC. Jak trochę się ogarnę to wrzucę na githuba. Możesz też poczytać na ppa moje artykuliki link.

Poza tym to co powiedział Krashan, warto pytać.

@Krashan
+1 do pomysła o książce.
[#11] Re: Materiały do nauki AmigaOS/MorphOS API

@asman, post #10

Ja potrzebuję tylko wsadzić na okno lub ekran (o wybranej wielkości/rozdzielczości) context OpenGL. Do tego obsłużyć klawiaturę, mysz, zdarzenia typu: odznaczenie okna, zamknięcie programu, pobranie jakiegoś czasu w millisekundach. To wszystko do tej pory załatwiała mi biblioteka SDL. Nie jestem z SDL bardzo związany i wszystko co zostało napisane bardzo ładnie się od SDL odklei (w wersji dla iOS od samego początku nie używam SDL tylko czystych systemowych rozwiązań).

Na takiej podstawie stoi sobie mój mały silnik napisany w C++ (i bardzo starym OpenGL), a na jego bazie dzieją się już różne rzeczy (demo, gra, cokolwiek...). Kod silnika i dema/gry jest w 100% przenośny i bez problemu buduje się wersja dla: MorphOS, iOS, macOS, Windows. Nie byłoby też problemów z: AmigaOS4, AROS, Linux. Trochę więcej roboty byłoby z Androidem (pisanie w C++ na Androida nie jest przyjemnością) ale też by się dało.

Dzięki za link do artykułu. Faktycznie teraz przypominam sobie ten tekst. Oczywiście oba linki dodaję do przydatnych materiałów. Dzięki! OK

Ostatnia aktualizacja: 15.06.2017 19:47:47 przez MDW
[#12] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #5

@# Krashan
A może jakaś współpraca z Adamem Z.?
[#13] Re: Materiały do nauki AmigaOS/MorphOS API

@MDW, post #11

@MDW: To już widziałeś pewnie?
http://krashan.ppa.pl/mpp/tinygl-wstep
http://krashan.ppa.pl/mpp/tinygl-dwa-trojkaty
Oczywiście takie podstawy OpenGL jak tam są, mogą Cię co najwyżej rozbawić, ale opisałem też jak z poziomu API MorphOS-a mieć viewport GL-owy w okienku systemowym.
[#14] Re: Materiały do nauki AmigaOS/MorphOS API

@R-Tea, post #12

A może jakaś współpraca z Adamem Z.?
Adam, jako wydawca, oczekiwałby złożenia kompletnego materiału w ustalonym terminie. To całkowicie zrozumiałe. A ja znając siebie to ech... Poza tym rację ma MDW, książka „Wszystko co chciałbyś wiedzieć o systemie AmigaOS” to byłaby potężna cegła i jej napisanie to dla jednego człowieka lata pracy.

Zdecydowanie lepiej będzie jeśli rozszerzę to również na klasyczny AmigaOS 3 i po prostu będę dopisywał w miarę wolnego czasu. W ten sposób nie będę ciśnięty terminem.
[#15] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #13

Tak, te materiały znam i to będzie trzon mojej operacji zatytułowanej "Kill SDL!". szeroki uśmiech A to, że same OpenGL-owe operacje są tam proste to jest wielka zaleta. Przykłady nie są zaciemnione nadmiarem nieistotnych GL-wych operacji. Nie o OpenGL tu chodzi tylko o przygotowanie środowiska pod GL-owy viewport i sprawdzenie czy to działa na jakimś prostym przykładzie. Z samym OpenGL-em sobie radzę, a potrzeba mi właśnie tego co w tych tekstach wyjaśniasz.
Stokrotne dzięki za napisanie tych tekstów. Dzień w który wpadłeś na to żeby je napisać to taka moja mała wygrana w totolotka. szeroki uśmiech
[#16] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #14

@ Krashan
Ja również dziękuję za te materiały, i osobiście trzymam kciuki za część o MUI. Chętnie też bym tam zobaczył podrozdział o korzystaniu z narzędzia Chocolate Castle.
[#17] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #5

Miałem kiedyś pomysł, aby popełnić jakąś grubą cegłę o programowaniu AmigaOS/MorphOS.

Na 99% kupiłbym taką knigę.
[#18] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #14

Poszedłem za ciosem i korzystając z mojego „frameworka” zapoczątkowałem coś w rodzaju e-booka o programowaniu w systemie AmigaOS. Na razie jest tam tylko jeden artykuł, który jest modyfikacją tekstu napisanego o MorphOS-ie. Dla wygodnego czytania można sobie zmienić czcionkę, rozmiar tekstu i marginesy. Dołożyłem starań, aby wygodnie czytało się tekst na tabletach i smartfonach, również w układzie pionowym (najlepiej na Firefoxie, obsługuje automatyczne łamanie wyrazów). Ilustracje są wektorowe, więc dobrze się skalują. Całość można też zgrać w postaci archiwum do przeglądania offline. Podejrzewam też, że niewiele byłoby roboty, żeby zrobić z tego regularnego e-booka w formacie ePub.

Kolejne teksty będę pisał w wolnym czasie i będą nieco bardziej o podstawach, czyli skąd wziąć i jak używać kompilatory C, systemowe operacje wejścia/wyjścia (te z API systemu, biblioteka standardowa C jest już wystarczająco dobrze opisana w setkach miejsc), otwieranie ekranów, okienek, podstawowe operacje graficzne, obsługa myszy i klawiatury i tak dalej. Nie chcę obiecywać żadnych terminów, bo znam siebie zbyt dobrze :-/.

Aha, adres tego czegoś, http://teleinfo.pb.edu.pl/krashan/amigaos/
[#19] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #18

Mogę się zgłosić na publikowanie książki jako .iba (iBooks/Apple). Co Ty na to? Potrzebna Twoja zgoda na preview

Ostatnia aktualizacja: 03.07.2017 09:16:18 przez X-Type^HVR

Ostatnia aktualizacja: 03.07.2017 09:16:45 przez X-Type^HVR
[#20] Re: Materiały do nauki AmigaOS/MorphOS API

@X-Type^HVR, post #19

Nie ma sprawy. Dla porządku jednak umieszczę tam jeszcze licencję, żeby uniknąć potem jakichś dziwnych kłopotów. Będzie to CreativeCommons Attribution (BY), myślę, że w sam raz.
[#21] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #18

Fajne.
[#22] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #18

Poszedłem za ciosem i korzystając z mojego „frameworka” zapoczątkowałem coś w rodzaju e-booka o programowaniu w systemie AmigaOS.

No to i to jest baaardzo dobry pomysł. Trzymam kciuki swoje i całej swojej rodziny żeby Ci się chciało to ciągnąć. Warto zebrać w jedno miejsce wiedzę na temat programowania AmigaOS.

Na razie jest tam tylko jeden artykuł, który jest modyfikacją tekstu napisanego o MorphOS-ie.

Nieśmiało liczę, że przyszłe odcinki będą pisane tak, że motylkowi fanatycy też skorzystają. szeroki uśmiech W sumie podstawy są takie same...

Dla wygodnego czytania można sobie zmienić czcionkę, rozmiar tekstu i marginesy. Dołożyłem starań, aby wygodnie czytało się tekst na tabletach i smartfonach, również w układzie pionowym. Ilustracje są wektorowe, więc dobrze się skalują. Całość można też zgrać w postaci archiwum do przeglądania offline.

Czyli pełna profeska. OK

systemowe operacje wejścia/wyjścia (te z API systemu, biblioteka standardowa C jest już wystarczająco dobrze opisana w setkach miejsc), otwieranie ekranów, okienek, podstawowe operacje graficzne, obsługa myszy i klawiatury i tak dalej.

I o to chodzi. Nie ma sensu tysięczny raz opisywać ANSI C czy bibliotekę standardową. Od tego internet i półki w księgarniach aż się uginają. A w dziale opisów amigowego API jest jedna wielka dziura. szeroki uśmiech

Ostatnia aktualizacja: 03.07.2017 19:00:35 przez MDW
[#23] Re: Materiały do nauki AmigaOS/MorphOS API

@Krashan, post #18

Popieram inicjatywę, wielkie dzięki za to co robisz. Gdyby się dało dorzucić do "skrzynki browara" to przemyśl taką opcję. W dzisiejszych czasach czas to pieniądz.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem