[#1] Który C?
Zacząłem uczyć się pisać w C na Amigę. Na razie używam Vbcc i Cubic IDE. Chciałem zapytać, którego kompilatora używać: vbcc czy gcc? Nie przewiduję pisania i kompilacji na pc. Mam pistorma więc szybkość procesora i ilość pamięci nie stanowią ograniczenia.
Głównie chodzi mi o to, żeby skupić się na programowaniu a nie walce z kompilatorem.
[#2] Re: Który C?

@mareq, post #1

Gcc. Vbcc jest w mojej opinii ciekawostką przyrodniczą - wystarczy spojrzeć na częstość aktualizacji i datę ostatniej tejże. Lata temu miałem z nim problem, że produkował zepsuty kod. A gcc 2.95, mimo że stare, to stabilne.

Zerknij może na gcc pack od Krashana.
[#3] Re: Który C?

@teh_KaiN, post #2

Rozszerzę nieco temat. Jak mają się one do SAS C lub innych C na Amigę? Znam tylko SAS C. Wiem, że to zabytek, ale wg mnie działający. I nie wiem na ile warto i czy w ogóle warto przesiąść się na coś innego.






Ostatnia aktualizacja: 18.02.2026 18:30:49 przez prz
[#4] Re: Który C?

@prz, post #3

To zależy od kilku czynników.

- GCC jest bardziej nowoczesny, ma lepsze algorytmy optymalizacji.

- Natomiast SAS/C, czy DICE to pełne IDE do pracy w języku C na Amidze.

Do tego łatwiej można linkować biblioteki linkowalne, czy wstawki asemblerowe w standardowym formacie Motoroli z oddzielnych plików.

Programiści Commodore pisali w SAS/C, pewnie też system w tym był kompilowany. Teraz też osoby związane z OS 3 wspierają SAS/C.

- VBCC z kolei ma mnóstwo targetów oraz binarki dla różnych systemów.
[#5] Re: Który C?

@mareq, post #1

Jeżeli chodzi o GCC 2.95.3 (o ile wiem ostatnia wersja działająca natywnie na Amidze) kontra VBCC, to moim zdaniem, popartym znajomością asemblera i disasemblacją skompilowanych programów, GCC generuje lepszy kod. Za to VBCC jest szybszy i ma nieco mniejsze wymagania pamięciowe. Ale to na PiStormie nie będzie miało żadnego znaczenia.

Za to z GCC masz otwartą drogę do zapoznania się z C++. Używam i jestem zadowolony. Jeżeli chcesz wygodnie zainstalować cały zestaw, zapraszam po GCC Pack.

Alternatywnie możesz rozważyć kompilator SAS/C, ale nie wiadomo skąd go oficjalnie wziąć i jego status prawny nie jest dla mnie jasny.
[#6] Re: Który C?

@Krashan, post #5

Ja bym dodał do dyskusji jeszcze pytanie, co chcesz pisać? Pod system czy nie?
... i czy chcesz używać assemblera inline czy nie. Jeśli np dema i gierki niesystemowe to jak dla mnie w VBCC łatwiej jest robić assemblerowe wstawki. Obu używałem tylko do cross-kompilacji ale w GCC użycie assemblera to była jakaś kosmiczna składnia.
[#7] Re: Który C?

@c64portal, post #6

Nie wiem w sumie jak się robi wstawki asmowe w VBCC. W GCC masz dwa rozwiązania.

Pierwsze to oddzielny plik z kodem w asmie skompilowany np. VASM-em i zlinkowany. Takie rozwiązanie zastosowałem np. w QoaPlay. Dekoder ramki QOA jest napisany w asmie i wywołany jako funkcja z kodu w C++.

Drugie to wstawianie wyrażeń asemblerowych wprost w kod. Kosmiczna składnia? Trochę tak, ale za to daje kosmiczne możliwości. We wstawce asemblerowej masz dostęp do zmiennych C, dzięki czemu np. kompilator sam może sobie dobrać rejestry albo tryby adresowania. Dość dobrze się poruszam w tej kosmicznej składni, więc mogę pomóc. Ta metoda jest najlepsza do wstawek krótkich (kilka czy kilkanaście instrukcji), obchodzących ograniczenia kompilatora albo języka. Zastosowałem ją między innymi w grze Untangle, żeby wyjaśnić GCC, że do pomnożenia dwóch liczb 16-bitowych wystarczy mu jedna instrukcja (plik "main.h", funkcja np. mul16()). Reguły języka normalnie powodują rozszerzenie tych liczb do 32 bitów, a potem kompilator stwierdza, że takiego mnożenia 68000 nie umie (ma je dopiero 68020) i usiłuje użyć funkcji bibliotecznej.

Ostatnia aktualizacja: 18.02.2026 21:46:58 przez Krashan
[#8] Re: Który C?

@c64portal, post #6

Generalnie chcę się skupić na pisaniu czysto pod system i raczej na programach użytkowych. Chcę jak najlepiej poznać sprzęt i system. Asembler na razie mnie nie interesuje.
1
[#9] Re: Który C?

@Krashan, post #7

Pierwsze to oddzielny plik z kodem w asmie skompilowany np. VASM-em i zlinkowany.

O, to ciekawe. Nie wiedziałem że można załączać kod z VASMa. Próbowałem za pomocą PhxAss ale nie działało.

Z tego by wynikało, że możemy do kodu GCC załączać kod asemblera w standardowym formacie.

GCC używa bowiem własnego, minimalistycznego formatu.

@Mareq

Akurat sam kompilator nie ma aż tak zasadniczego znaczenia. Ważny jest obsługiwany standard języka C oraz - według mnie - równiez obsługa standardów Amigi.

GCC gwarantuje w zasadzie najnowsze standardy.

Dopiero finalną postać kodu programu poddajemy optymalizacjom.

Zatem na początek zabawy/pracy z językiem C polecam dowolny kompilator. Ja zaczynałem od DICE i jest on dosć łatwy w obsłudze i instalacji.

SAS/C faktycznie nie jest dostępny oficjalnie, ale można pobrać oryginalne archiwum.
[#10] Re: Który C?

@Hexmage960, post #9

GCC używa bowiem własnego, minimalistycznego formatu.
Ale Vasm obsługuje ten format, wystarczy mu podać opcję -Faout.
GCC gwarantuje w zasadzie najnowsze standardy.
GCC 2.95.3 (a o takim mówimy, jeżeli chcemy kompilować na Amidze) raczej nie gwarantuje najnowszych standardów... Zwłaszcza jeżeli chodzi o C++.
[#11] Re: Który C?

@Krashan, post #5

Status prawny na 40 letnim sofcie/kompie ? No bez jaj

Ostatnia aktualizacja: 19.02.2026 08:40:46 przez dynx
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