[#1] GitHub z przykładami programów na Amigę
W tym wątku flops rzekł:

Może zrobimy w ramach PPA gałąź na githubie i będziemy tam wrzucać przydatne informacje oraz dokumentację wraz z przykładami dla nowicjuszy (lub w innym miejscu gdzie można wygodnie pobierać przykłady i strona ta nie zniknie).


Spoko, mogę zaraz założyć takie repozytorium na GitHubie Sakura i dodać tam każdego kto chce się udzielać w tym projekcie, niech mi tylko podeśle swój login na GitHubie.

Podział na asm i c/c++, ze szkółkami chłopaków i innymi przykładami, żeby ludzie łatwiej mogli się wdrażać. Ja bym mógł coś w weekendy poogarniać i dodać przykłady wyświetlania obrazów w asm, zabezpieczenie systemu, obsługi przerwań. Przysiądę się też do C i otwierania ekranu pod RTG, bo mam jakiś przykładzik który sam napisałem, ale nie ma obsługi komunikatów i trzeba go ubijać, żeby wyjść.


Myślę, że podział na języki programowania itd. nie musi być specjalnie skomplikowany, to po prostu mogą być osobne katalogi w tym samym repozytorium. Nie widzę też zbyt dużego sensu robić gałęzi ("branchy" gitowych) dla takiego projektu, który z założenia ma zawierać przykłady. Gałęzie mogą się przydać jak ktoś będzie chciał wprowadzać duże zmiany lokalnie u siebie, a dopiero później zintegrować je z głównym kodem repozytorium... No ale to w dowolnym momencie w razie potrzeby można robić.

Taki zbiór przykładów mógłby dać niezłego kopa naszemu środowisku. Przykłady opisane od podstaw, razem jak się da z skonfigurowanymi środowiskami, bo ze swojego doświadczenia właśnie najwięcej problemów jest z zestawieniem wszystkiego i z wiedzą jak coś skompilować, co z czym. Bo sama składnia C jest wszędzie opisana.


Zgadzam się, to czego zawsze najbardziej brakuje to konkretnych przykładów programowania na Amidze. Często mam ochotę walić głową w biurko gdy pisze coś pozornie prostego, ale niestety nigdzie nie ma dobrej dokumentacji ani przykładów...

Ostatnia aktualizacja: 07.01.2016 14:46:03 przez strim_
[#2] Re: GitHub z przykładami programów na Amigę

@strim_, post #1

Super pomysł. Ja chętnie skorzystam z takich przykładów. Na razie nic od siebie nie wniosę, ale może w przyszłości, jak się trochę poduczę ... :)
[#3] Re: GitHub z przykładami programów na Amigę

@strim_, post #1

[#4] Re: GitHub z przykładami programów na Amigę

@strim_, post #1

Super. Wchodzę w to.
[#5] Re: GitHub z przykładami programów na Amigę

@asman, post #4

Dodałem Cię, powinieneś móc tam commitować.
[#6] Re: GitHub z przykładami programów na Amigę

@strim_, post #1

Lekki offtop ale chciałem dać znać, że ktoś śledzi i korzysta :)
Wasze ostatnie działania przełamały moje lenistwo i w końcu siadłem z kursem Asmana do konfiguracji środowiska pod C. Nie przepadam za tym językiem ale na Amidze aktualnie to chyba jedyne w co warto inwestować swój czas (poza Asm).
[#7] Re: GitHub z przykładami programów na Amigę

@strim_, post #5

Dzięki, zrobiłem pierwszego commita. Jest to najlepsza (jaką wymyśliłem) routina do joysticka w asemblerze (razem z poprawką matthey z EAB, dzięki czemu jest lepsza dla 68020+). Jeśli są pytania albo problemy ze zrozumieniem, to proszę o informacje, to wtedy uzupełnię.

Edit: Powoli zaczne coś tam komitować głównie w asm ale w C też się znajdzie coś pewnie :)

Ostatnia aktualizacja: 07.01.2016 18:28:33 przez asman

Ostatnia aktualizacja: 07.01.2016 18:29:42 przez asman
[#8] Re: GitHub z przykładami programów na Amigę

@asman, post #7

Myślę, że każdy przykład można byłoby umieszczać w osobnym podkatalogu, poza tym przydałby się krótki plik z opisem co ten przykład robi (zobacz jak zrobiłem to dla przykładów w C).
[#9] Re: GitHub z przykładami programów na Amigę

@strim_, post #8

Bardzo dobrze myślisz, pozmieniałem ale widzę, że musze doczytać jak się robi pliki Readme.md, bo coś kaszanka lekka mi wyszła.
[#10] Re: GitHub z przykładami programów na Amigę

@asman, post #9

Tutaj oraz tutaj jest opis.

Ostatnia aktualizacja: 07.01.2016 21:19:24 przez strim_
[#11] Re: GitHub z przykładami programów na Amigę

@strim_, post #1

Dodałem przykłady wyświetlania obrazu w 320x256 dla 4,5 bitplanów (16 oraz 32 col.), oraz przykład dla AGA z 256 col. Potrzebne rawy do zasemblerowania są również dodane w katalogu RAW, który należy umieścić w RAM: Obrazki są robione przeze mnie więc można z nich korzystać jak się chce, jak również z kodu.
W przykładzie dla 256 jest również kawałek czyszczący ekran przy użyciu Blittera.

Ostatnia aktualizacja: 09.01.2016 13:53:47 przez flops
[#12] Re: GitHub z przykładami programów na Amigę

@flops, post #11

Doskonale, ale powinieneś raczej umieścić tą informację w README.md, a nie tutaj. O tym poście nikt nie będzie pamiętał za kilka miesięcy .

Poza tym, nie wiem o co chodzi, ale w Twoich plikach są jakieś binarne śmieci na początku... Dlatego też GitHub myśli, że to są binarki i nie da się kodu obejrzeć przez interfejs webowy. Tak to wygląda po ściągnięciu pliku:

http://pastebin.com/raw/L9pVWGHG


Ostatnia aktualizacja: 09.01.2016 14:02:57 przez strim_
[#13] Re: GitHub z przykładami programów na Amigę

@strim_, post #12

Bo to sa pliki prosto z Asm one. Poprawie to i wywale smieci za 1h.
[#14] Re: GitHub z przykładami programów na Amigę

@flops, post #13

Zapisz kod źródłowy w Asm-One bez znaczników - "Write Source Without Marks". Te dane binarne zawierają informację o 10 wyróżnionych linijkach kodu, do których można szybko dostać się za pomocą "Jump Mark".
[#15] Re: GitHub z przykładami programów na Amigę

@Hexmage960, post #14

Tam jeszcze jest ile czasu się nad plikiem pracowało. Wywaliłem binarne dane z początku i jest ok. Jeszcze poprawię md.
[#16] Re: GitHub z przykładami programów na Amigę

@flops, post #15

Rozumiem. Ale zgranie w ten sposób (Write Source -Mark) na pewno nagra sam tekst, bez danych binarnych. Tylko że - trzeba mieć odpowiednią wersję Asm-One. W 1.20 jeszcze tego nie ma, w 1.44 już jest.

Ostatnia aktualizacja: 09.01.2016 14:54:00 przez Hexmage960
[#17] Re: GitHub z przykładami programów na Amigę

@strim_, post #12

Dorzuciłem swojego helloworlda w asemblerze, następny fragment to będzie minimalny kod startowy, żeby program poprawnie uruchamiał się z Workbencha.
[#18] Re: GitHub z przykładami programów na Amigę

@Krashan, post #17

@Flops, @Krashan

Super, powoli pojawiają się kolejne przykłady, myślę, że założenie tego repozytorium to był bardzo dobry pomysł.
[#19] Re: GitHub z przykładami programów na Amigę

@strim_, post #18

Można się dołączyć?
[#20] Re: GitHub z przykładami programów na Amigę

@chicago, post #19

Tak, podeślij mi swój login na GitHubie.
[#21] Re: GitHub z przykładami programów na Amigę

@flops, post #11

z ciekawości sprawdziłem wersję 8 bitplanową tej pokazywarki.
kompilowałem vasmem pod OS X.
dostaję błąd w lini 30 (mulu.l) że nie ma takiej instrukcji w tej architekturze.
po odjęciu ".l" działa.

kolejna sprawa to warto chyba zmienić ścieżki z bezwzględnych ram:raw/ na po porstu raw/
nie wiem jak na Amidze (asm one chyba przepuści) ale na OS X katalog RAW jest z wielkich liter a w kodzie "raw" z małych.

takie uwagi - broń boże krytyka - bardzo dobra inicjatywa.

przy okazji pytank:
myślałem że podejrzę w kodzie ale includujesz plik binarny. jak ustawia się kolory (24 bitowe) w copperze dla AGA? gdzieś to jest opisane?
TIA
[#22] Re: GitHub z przykładami programów na Amigę

@retronav, post #21

Ustawianie palety dla Aga jest dość skomplikowane. Pod adresem $DFF106 jest rejestr, który w sobie zawiera bit o nazwie LOCK, oraz trzy bity do wyboru banku do jakiego będziemy ładować kolory. I teraz np. chcemy aby tło (rejestr koloru $DFF180) było koloru #$f31201, to musimy wpisać pod $DFF180 kolor #$f10, następnie ustawić bit LOCK w $DFF106 i wpisać do $DFF180 #$321. Teraz gdybyśmy to samo chcieli zrobić dla koloru nr 32 (licząc od zera), to robimy to samo, tylko w $DFF106 trzeba jeszcze ustawić kolejny bank, z pamięci to chyba będzie #$2000 (chyba bit nr 13). Opisy są gdzieś na necie, teraz nie ma mnie w domu przy Amidze.
Po prostu w AGA normalnie wpisuje się wartość koloru tak jak w OCS, bit LOCK ustawiony na 1 powoduje, że do tego samego rejestru koloru wpisujemy młodszą wartość każdej składowej. Dodatkowo cały czas mamy tylko 32 rejestry kolorów i żeby zapisać 256 wartości, to potrzebne jest przełączanie przez banki.
W edytorze do HEX można podejrzeć ten plik .pal, tam jest copperlista z samymi poleceniami move Coppera.

$dff106 BPLCON3 AGA: Bitplane control reg (enhanced features)
Linki: ADA
Opis rejestru

P.S.
To dla 256col pisałem koło 1997r. i wczoraj przypominałem sobie właśnie jak się wpisuje kolory dla AGA Mulu trzeba zmienić, zapomniałem to zmienić, a to jest instrukcja dla 68020+, więc jak ktoś assembluje dla 68000 to będzie błąd, a jak ktoś uruchomi na A500 to się zwiesi.

Ostatnia aktualizacja: 10.01.2016 12:38:30 przez flops
[#23] Re: GitHub z przykładami programów na Amigę

@strim_, post #20

Zainstalowałem vbcc na amidze ale skąd mam pobrać np stdio.h i inne libsy, po zainstalowaniu vbcc mam tylko 3 katalogi i brakuje include
[#24] Re: GitHub z przykładami programów na Amigę

@QUAD, post #23

Nie zainstalowales archwium z targetem?

Musisz zainstalować przynajmniej kompilator i target. Jak mniemam kompilator już masz.



Ostatnia aktualizacja: 10.01.2016 16:09:30 przez strim_
[#25] Re: GitHub z przykładami programów na Amigę

@strim_, post #24

Gracias, będę walczył dalej :)
[#26] Re: GitHub z przykładami programów na Amigę

@Krashan, post #17

Fajny byłby przykład w ASM - pobranie dwóch argumentów w konsoli i wypisanie wyników operacji +,-,:,* a także wynik potęgowania (pewnie jakaś pętelka).
[#27] Re: GitHub z przykładami programów na Amigę

@strim_, post #24

Jeszcze takie szybkie lamerskie pytanie, podczas instalacji vbcc_target mam pytanie o lokalizacje system headers directory, jaki katalog tam wybrać ?
[#28] Re: GitHub z przykładami programów na Amigę

@QUAD, post #27

Jeśli dobrze pamiętam to ma wskazywać na katalog include_h, wewnątrz katalogu, w którym masz wypakowane NDK AmigaOS 3.9. To jest potrzebne, jeśli chcesz kompilować programy korzystające z API AmigaOS (a nie tylko standardowej biblioteki C).
[#29] Re: GitHub z przykładami programów na Amigę

@strim_, post #28

W tym programie mam problem w trakcie kompilacji przy #include. Jest napisane: ... "dos.h": file 'exec/types.h' not found. Jak przeniosę dos.h i exec.h z katalogu proto do include jest podobnie.




#include <proto/exec.h>
#include <proto/dos.h>

main(int argc, void *argv[])
{
struct Library *SysBase;
struct Library *DOSBase;

SysBase = *((struct Library **)4UL);
DOSBase = OpenLibrary("dos.library",0);

if (DOSBase) {
Write(Output(),"Hello world!\n",13);
CloseLibrary(DOSBase);
}

return(0);
}

Ostatnia aktualizacja: 10.01.2016 20:33:01 przez chicago
[#30] Re: GitHub z przykładami programów na Amigę

@chicago, post #29

Program jest poprawny. Mam nieodparte wrażenie, że masz coś źle skonfigurowane.

Jak wygląda zawartość Twojego assigna vincludeos3: ? Ten assign powinien zawierać zarówno zawartość katalogu include z targetu vbcc, jaki zawartość katalogu include_h z NDK. Jeśli tak jest, to musi się kompilować poprawnie. Standardowo ten assign jest chyba ustawiany przez instalator targetu VBCC.

Ten assign jest używany w pliku konfiguracyjnym kompilatora, aby przekazać gdzie znajdują się pliki nagłówkowe. Błąd o niemożności znalezienia pliku sugeruje, że ścieżki są niepoprawne.

Btw. plików .h nie należy przenosić "na pałę" między katalogami.
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