-
Data: 2019-03-26 13:37:40
Temat: Re: elementy furii
Od: fir <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu wtorek, 26 marca 2019 12:08:09 UTC+1 użytkownik fir napisał:
> W dniu wtorek, 26 marca 2019 11:30:01 UTC+1 użytkownik fir napisał:
> > w zeszly roku w kilka dni napisalem pewne elementy kompilatora takiego jakby "pre
c"
> > (jezyka ktory w zamysle raczej jest wstepem
> > do C/C2/hipermodularnego c bo prawie nic tam nie dziala, no ale mowie pisalem to
z piec dni
> >
> > tak czy owak da sie skompilowac cos w rodzaju helloworda na windows 32 (wywoluje
moja wlasna dllke by ladniej wygladalo niz zwyczjanie na konsoli)
> >
> > http://minddetonator.htw.pl/furia3.zip
> >
> > screenshot w outputu
> >
> > http://minddetonator.htw.pl/furia3.png
> >
> > bylo to o tyle mozliwe ze z rok wczesniej (w 2017? niezbyt pamietam te daty bo
ostatnio sie zaczalem mega lenic) nap[isalem asembler (organic asm)... ...ten asm nie
ma tez wklepanych wielu mnemonikow, bo mi sie nie chcialo, nie ma tez chyab
wszystkich trybow adresowan, dlatego rozbudowayanie tego kompilatora wymaga grzebania
i w jednym i drugim i przez to jest lekko ciezkie (nie az tak co prawda ale chyba
faktycznie przyznam ze pisanie kompilatora i asma na x86/win32
> > jest projektem nieco trudniejszej klasy niz
> > pisanie bardziej typowych apek.. nie jest 'zbyt' trudne ale poprostu trzebbyc
involved (troche bardziej niz zwykle) i to troche meczy, nie zawsze mi sie chce
> >
> > z drugiej strony fajnie miec swoj kompilatorek..zastanawiam sie kiedy sie w sobie
zewre by napisac troche wiecej featurez :/
>
> och god, ladnie napisalem posta i przypadkowe nacisniecie dwu klawiszow naraz
spowodowalo ze nizknal w ulamek sekundy
>
> kod jaki to kompiluje jest taki
>
>
> int becground_color: 0
>
> int RunFramePointer: 0
>
> void RunFrame()
> becground_color = becground_color + 65536
> becground_color = becground_color + 512
> becground_color = becground_color + 3
>
> cdecl green_fire SprintCB(-1, becground_color)
> cdecl green_fire ClearFrameData(becground_color);
> cdecl green_fire SprintXY(10, 10)
> cdecl green_fire sprint(" Helllo World from Furia \x00");
> return
>
>
> void main()
> asm mov eax RunFrame
> asm mov (RunFramePointer) eax
> cdecl green_fire RegisterRunFrame( RunFramePointer );
> cdecl green_fire SetSleepValue(30)
> cdecl green_fire SetupWindow2(" furia pre c compiler \x00", 4, 5,
567, 443 );
> return
>
> troche slabo to przypomina c ale pisalem by jak nalatwiej mis ie to pisalo a nie by
od razu przypominalo c
>
> chyba 3 rzeczy powinienem poprawic na poczatek,
>
> 1) moj asm nie wspiera o ile pamietam wywolywanie funkcji z calbackami dlatego mam
tutaj stub w asmie
>
> asm mov eax RunFrame
> asm mov (RunFramePointer) eax
> cdecl green_fire RegisterRunFrame( RunFramePointer );
>
> zamiast
>
> cdecl green_fire RegisterRunFrame( RunFrame );
>
> a to daltego ze asm wspiera
>
> push (RunFramePointer)
> call green_fire.RegisterRunFrame
> pop eax
>
> ale nie
>
> push (RunFrame)
> call green_fire.RegisterRunFrame
> pop eax
>
> w pierwszej wersji etykiete jest z sekcji .data a w drugiej to label z codu
>
> ale to chyab mozna poprawic (jakbym sie troche skupil)
>
> 2)
>
> int becground_color: 0
> int RunFramePointer: 0
>
> powinienem przerobic na zwykle
>
> int becground_color = 0
> int RunFramePointer = 0
>
> nie wiem czemu tak nawet napisalem chyab chialem odrozniac deklaracje-inicjalizacje
od przypisan ale skoro int jest z lewej to wiadomo ze to deklaracja
>
> 3) te wszystkie
>
> cdecl green_fire SprintXY(10, 10)
>
> wygladaja glupio jesli tego jest za duzo
> wiec chyab trzeba zbudowac zbiorcza tablice importow cos w stylu
>
> import cdecl "green_fire" SprintXY SprintCB sprint RegisterRunFrame SetSleepValue
SetupWindow2
>
> co jest swoja draga mniej logiczne ale pozniej kody nizej wygladaja bardziej c-owo
>
> ostatnio czuje sie jak na mega kacu 9zdrowie ciagle fatalne, dusi mnie w plucahc
niesamowicie), ale jakbym sie zebral to to mnie teraz czeka
ok poprawilem tego calbacka,
http://minddetonator.htw.pl/furia4.zip
wiec kompilator kompiluje teraz ciut bardziej strawny kod
int becground_color = 0
void RunFrame()
becground_color = becground_color + 65536 + 512 + 3
cdecl green_fire SprintCB(-1, becground_color)
cdecl green_fire ClearFrameData(becground_color);
cdecl green_fire SprintXY(10, 10)
cdecl green_fire sprint(" Helllo World from Furia \x00");
return
void main()
cdecl green_fire RegisterRunFrame( &RunFrame );
cdecl green_fire SetSleepValue(30)
cdecl green_fire SetupWindow2(" furia pre c compiler \x00", 4, 5, 567,
443 );
return
musze dodac ze nie wszystkie "wyrazenia" dzialaja (praktycznie to prawie zadne)
aiec trzeba tu troche rzeczy podopisywac,
ale wywolania z dllek dzialaja (dzilaja tez chyab proste ify i fory) wiec jest
poczatkowy fun
troche strach przyznam grzebac w moim asemblerze bo asembler jest troche zagmatwany,
najgorsze w nim jest to ze
jak sie liczy adresy do etykiet to trzeba to sklafdowac, obliczac, a pozniej jeszcze
ew fizupowac i mozna sie troche pogubic, - sam jestem leniwy i nie zawsze lubie sie
zaglebiac a w powierzchniowym trybie nie wszystko da sie ad-hoc dopicac, tak ze az
sie balem grzebac w tym calbacku - ale jakos poszlo ;c
Następne wpisy z tego wątku
- 26.03.19 13:50 fir
- 26.03.19 15:46 Queequeg
- 26.03.19 15:57 fir
- 26.03.19 16:01 Queequeg
- 26.03.19 21:28 fir
- 26.03.19 22:00 Queequeg
- 26.03.19 22:18 Emru
- 26.03.19 22:47 Queequeg
- 27.03.19 16:59 fir
- 28.03.19 08:21 Queequeg
- 28.03.19 08:55 fir
- 28.03.19 09:19 g...@g...com
- 28.03.19 14:08 fir
- 28.03.19 17:22 fir
- 28.03.19 20:41 Queequeg
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-26 Gdańsk => ERP Microsoft Dynamics 365 Commerce Consultant <=
- 2025-12-26 Kraków => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-26 Kraków => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-26 wymieniłem termostat
- 2025-12-26 Warszawa => Senior Backend Java Developer <=
- 2025-12-25 Finlandia przywraca swastykę
- 2025-12-25 Skuteczność wymiaru sprawiedliwości
- 2025-12-24 Felgi
- 2025-12-24 2,5 x więcej niż Li-Ion
- 2025-12-24 No i kolejny ograniczony
- 2025-12-24 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-12-24 New York Times zagrożeniem bezpieczeństwa narodowego USA - POTUS D. Trump
- 2025-12-24 Podżeganie?
- 2025-12-24 => Senior Algorithm Developer (Java/Kotlin) <=
- 2025-12-24 otwarcie drugiej obwodnicy Trójmiasta




7 pułapek i okazji - zobacz co cię czeka podczas kupna mieszkania na wynajem