C64Power Forum
Software => Programowanie => Wątek zaczęty przez: qus w 05 Kwietnia 2018, 09:20
-
Wiem, że robię się nudny, ale jednak wciąż nie mogę przejść do porządku dziennego nad tym, że starzy komodorowcy to tacy dogmatyczni ortodoksi i z jednej strony wierzą, że jakieś rzeczy da się zrobić "tylko w języku maszynowym", a z drugiej zapominają, że każdy język kończy jako maszynowy...
No dobrze, z dzieleniem rastra w BASICu może nie był to dobry przykład i jeśli tego próbowaliście i nie wyszło, to nie wińcie mnie, ani Billa Gatesa, bo podobno chłopina starał się jak mógł (tak twierdzą ci, co analizowali kod BASICA V2), po prostu to nasz Commodore jest za wolny aby udało się to w interpreterze.
A czy ma to prawo udać się w kompilatorze? A najlepiej jakiegoś popieprzonego, gwałtownie tracącego na popularności języka? Dajmy na to... C++? 17?
"Nie da się" - powiecie "bo nie ma kompilatora, który miałby backend dla 6502" No cóż - jedni tak powiedzą, a inni się tym wcale nie przejmą, tak jak ten koleś, który w C++17 napisał grę na C64, szczegóły tutaj:
https://www.youtube.com/watch?v=zBkNBP00wJE
Spoiler alert:
Wykład przedstawia kodowanie prostej gry dla C64 w C++17. Złośliwy nerdzik napisał program wykorzystujący:
- obiekty
- metody
- delegacje konstruktora/destruktora
- lambdy
- destrukturyzację
- inliniowane wywołania funkcji
- templejty (rekursywne i z dowolną liczbą argumentów)
- algorytmy standardowe
WSZYSTKO TO Z ZEROWYM NARZUTEM. Cwaniak.
Nie polecam ludziom o słabych nerwach...
-
Stare. Tak się zastanawiałem gdzie pierwszy raz o tym czytałem - no, jak nic na CSDB. Tam jak widać, pochylili się nad tematem z wielkim "entuzjazmem" ;)
http://csdb.dk/forums/?roomid=11&topicid=119427&showallposts=1
-
Wiedziałem co jest w tamtym wątku, jeszcze zanim kliknąłem Twój link, aby go przeczytać...
-
Może nie do końca w temacie, ale Raf 10 lat temu popełnił demko w języku C ;-) http://csdb.dk/release/?id=70559
-
Może nie do końca w temacie, ale Raf 10 lat temu popełnił demko w języku C ;-) http://csdb.dk/release/?id=70559
User Comment
Submitted by Cruzer on 1 September 2008
High level programming not good for demos on a 64K 1MHz machine? Well, now I never!
User Comment
Submitted by JackAsser on 1 September 2008
@Raf: Your logic is faulty. This only proves that C is not good for demos. (And yeah, I did the same journey with Number Seven :)
/Spock
User Comment
Submitted by Raf on 31 August 2008
nah this was an experiment... at least it's realtime ;-) :P and it proves high level programming is good for applications, not for demos ;-)
User Comment
Submitted by Oswald on 31 August 2008
I kept wondering how can it be so slow, then I saw "this was done in c". aha :D
Tak w ogóle WDC ma w ofercie kompilator C na 65(c)02 i 65c816, ciekaw jestem kto tego używał - znaczy czy w "przemyśle" w ogóle praktykowano kodoklepanie w C na 6502 i pochodne. Bo hobbyści cc65 itp...
Na 8051 (które w zamierzchłych czasach było jednym z "industry standard" jeśli chodzi o 8 bitowe MCU) a i owszem, Keil/IAR na nich pewnie sporo zarobili ;) Ale kod generowany (i to bez etapu pośredniego - x86 - tak jak w przypadku "złośliwego nerdzika"; a, przecież mamy też port Wolfensteina 3D na SuperCPU - z etapem rekompilacji z MIPSa) na architekturę tak nieprzystosowaną do języków wysokiego poziomu - w sumie się da, tylko hmm...
-
Ja marze o IDE dobrze zintegrowanym z debugowaniem w VICE a tam typ mowi, ze kompiluje fully-featured c++ do pure 6502 - nie ogladalem jeszcze tegoz, ale jesli to faktycznie jest mozliwe to klekajcie narody.
Kto napisal cokolwiek w C, skompilowal z cc65 a potem chcial to debugowac np pod vice (gdyz nie da sie debugowac inaczej, nie ma polaczenia z gdb czy jakiegos symulatora/debugera do cc65 z prawdziwego zdarzenia) to wie jaki jest to bol...
Swego czasu pisalem prosty raycasting w C (gcc + biblioteka allegro) celem przeniesienia na c64, kompilujac z cc65 - chcialem w ten sposob zaliczyc na uczelni przedmiot grafika komputerowa czy jakos tak :) Ostatecznie zaliczylem, choc efekt byl daleki od zamierzonego, jesli znajde te zrodla to udostepnie, moze ktos bedzie mial ochote poprawic.
-
Kompiluje, kompiluje... najpierw do x86 a potem translacja na 6502. To chyba więcej sensu by miało C++ do C (clangiem z C++ do bytecode, a potem llc żeby z tego wypluć C) i potem już CC65. Hgw, może nie będzie lepiej - trzeba by to zbadać w tzw. "wolnej chwili").
Taka ciekawostka:
https://youtu.be/zBkNBP00wJE?t=3772
Herb Sutter dorwał się do joy'a.
-
Jak zwykle zaczynam od szukania dziury w całym. To z siódmej strony prezentacji "złośliwego nerdzika". Tak się zastanawiam nad tym "zero overhead" - w którym to miejscu można go znaleźć ;)