forum speccy.pl
ZX Spectrum => PROGRAMOWANIE => Wątek zaczęty przez: trojacek w 2015.01.17, 23:52:34
-
Dziekuje i nastepnym razem na konkurs tez postaram sie napisac gre w basicu... i wygrac !!!!
To może zainteresuj się kompilatorami basica? Ja kiedyś parę razy użyłem Tobosa i byłem pod silnym wrażeniem.
-
Nie wiedzialem ze sa kompilatory basica na zx spectrum.
Pewnie ze tak zrobie.
-
http://www.worldofspectrum.org/sinclairbasic/#compilers
Oraz wspomniany przeze mnie TOBOS. Jest jeszcze BASCOM i BASCOMP, wszystko do wyszukania na www.worldofspectrum.org (linki są bez parametrów, dlatego ich nie wklejam).
-
ToBOS jest też tutaj: http://www.speccy.pl/archive/prod.php?id=219
-
Nie wiedzialem ze sa kompilatory basica na zx spectrum.
Pewnie ze tak zrobie.
Oprócz kompilatorów standardowego Basica są też jeszcze rozszerzone wersje Basica, czasem mające wsparcie dla sprajtów itp. Zwykle mają jakiś dołączony kompilator.
Osobiście nigdy nie zgłębiłem bardziej tematu ale wiem że są np.:
Laser Basic (można odpalić demo i zobaczyć możliwości)
http://www.worldofspectrum.org/infoseekid.cgi?id=0008327
Beta Basic
http://www.worldofspectrum.org/infoseekid.cgi?id=0007956
-
A także YS Mega Basic
http://www.worldofspectrum.org/infoseekid.cgi?id=0008997
-
Dla liczb całkowitych niezły jest Mcoder II, kiedyś używałem.
http://www.worldofspectrum.org/infoseekid.cgi?id=0011101 (http://www.worldofspectrum.org/infoseekid.cgi?id=0011101).
-
Pamiętam, że kiedyś dawno testowałem kilka kompilatorów i w średniej wielkości projektach ToBOS w zasadzie nie miał konkurencji. Wynikowy kod był bardzo szybki a do tego robił operacje zmiennoprzecinkowe na własnej bibliotece w przeciwieństwie do większości innych kompilatorów, które albo w ogóle nie działają ze zmiennym przecinkiem albo robią to używając procedur w ROMie.
-
Zgoda, generalnie ToBoS jest najlepszy, ale jak używa się tylko liczb całkowitych, to Mcoder II bije go szybkością!
Skala zjawiska jest taka (piszę z pamięci), że ToBoS przyspiesza ~5 razy, a Mcoder 20 razy!
-
O... Tego nie wiedziałem. Ale w czasach kiedy próbowałem się bawić kompilatorami jakoś koncepcja pisania programów na samych intach powodowała, że kompilator, który miał takie ograniczenie był dla mnie średnio akceptowalny ;)
Oczywiście to były czasy zanim zacząłem robić "poważne" rzeczy w asmie ;)
-
Nie da sie tak latwo porownac kompilatorow, bo np. floating point zalezy od precyzji. ToBoS jest najbardziej uniwersalny, bo nie wymaga specjalnej skladni - mysle, ze to jeden z najlepszych programow na ZXa. A np. bardzo doby HiSoft Basic wymaga o wiele wiecej zachodu. Jak komus zalezy na szybkosci w Basic, to tylko Boriel.
Niestety Z80 slabo nadaje sie do kompilacji, a programowanie ZXa na poziomie adresow pamieci i taktow zegarowych, praktycznie dyskwalifikuje wszystkie jezyki poza assemblerem. Wprowadzanie udziwnien do kodu C, aby obsluzyc np. tryb IM2, zawsze mnie zniechecalo.
-
No to uzbrojony jestem po zeby, tylko zeby dzialaly na BASin.
Sprawdze przy okazji.
-
No to uzbrojony jestem po zeby, tylko zeby dzialaly na BASin.
Jakieś rozszerzone wersje typu Beta-Basic raczej nie będą działały. Basin wspiera standardowy Basic.
Natomiast późniejsza kompilacja - czemu nie. Piszesz w Basin, potem zapisujesz do snapshota i w emulatorze wczytujesz kompilator. W tym momencie Basin cię już nie obchodzi. W teorii wydaje się to proste.
-
No to uzbrojony jestem po zeby, tylko zeby dzialaly na BASin.
Sprawdze przy okazji.
@zx81 A ja właśnie obejrzałem ZX BASIC COMPILER (http://www.boriel.com/en/software/the-zx-basic-compiler/) Boriela tak tutaj promowany przez Gryzora :)
Szczerze mówiąc całkiem zgrabnie to wygląda. No i widziałem wcześniej efekty - Yumiko in the Haunted Mansion (http://www.worldofspectrum.org/infoseekid.cgi?id=0027988) naszego forumowego kolegi LCD to jedna z niewielu gier na ZXa w którą ostatnio (czyt. w ciągu ostatnich 2 lat ;)) pograłem dłużej niż 5 minut napisana jest właśnie przy użyciu tego kompilatora.
Kompilator działa oczywiście na pececie, łapie w zasadzie całą standardową składnię a do tego rozszerza język o sporo fajnych dodatków (ładne pętle, warunki z else itp., funkcje, procedury, możliwość mieszania assemblera) i kompiluje się bezpośrednio do całkiem szybkiego kodu maszynowego.