Legutóbbi hozzászólások

Oldalak: [1] 2 3 ... 10
1
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta ha5ft Dátum augusztus 02, 2021, 11:31:43 am »
Még egy érdekes ötlet, hogy a gforth segítségévek kellene leírni egy új target rendszert. Olyt, amelynek a belső felépítése és működése is különbözik a gforthétól. Ez egy jó kis forth gyakorlat lenne.
Jani, ha5ft
2
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta ha5ft Dátum augusztus 02, 2021, 11:20:42 am »
Egyébként én most úgy csinálnák egy rendszert, hogy c-ben írnék egy indító fájlt, ami megcsinálja a forth specifikus memória foglalásokat, elintézi, hogy a dictionary memória területei írhatóak legyenek és kód is futtatható legyen belőlük, végül betölti valahonnan ( ez ugye már rendszer specifikus)  dictionary minimális, lefordított változatát. Ez tartalmazza a belső interpretert, a multitaskinghoz szükséges dolgot, a text interpretert, a minimálisan szükséges forth szavakat valamint valamilyen terminal io-t és legalább egy terminal taskot. Ez így elmondva sok, de kódban nem vészes. Persze ezekez assemblerben kell az első változatban megírni. Aztán már lehet forthban assamblertírni no meg cross/target fordítót. Onnantól a szigorúan forth rész már forthban kezelhető. Valami indító kód viszont mindenképpen kell. Erre én megtartanám a c nyelvet, mert akkor nem kellene minden rendszerre kideríteni, hogy milyen is az alkalmazás startup kód.
Az x64 rebdszerre az igazi feladat az, hogy a regiszter használatot kitalálja valaki úgy, hogy az nagyjából kompatibilis legyen a régi rendszerrel. Aztán azt is el kell dönteni, hogy kell-e külön lebegő pontos stack, meg esetleg külön stack a vektor műveletekhez.
A multitasking továbbra sem lehet preemptive, mivel a forthcsak a szó végeken reentrant, bár elvileg lehetne több belső interpretert használni, akkor elvileg preemptive is lehetne. Csak ekkor a közös adatok eléréséhez szemafort, mutexet stb kellene használni. Ez kicsit hasonló probléma ahhoz, amivel én szembesültem az sdrflow rendszerembe. Ott is egy flow szigorúan egyetlen végrehajtási szál. Ugyanakkor a rendszerben sok flow indítható párhuzamosan. Ezek külön szálakban futnak, mint ahogy az io feladatok is. Ezeket a flowkat és io feladatokat lehet egységesített módon összekapcslni. Az összekapcsolások kezelik az interprocess kommunikációt. No a forthban is lehetne valami hasonlót csinálni. Oersze egyszerű processzorokon ez ágyuval verébre dolog. Ott a polyforth round robin multitaskingla a jó megoldás. Az interrupt kezelés viszon megoldott a polyforthban is. Forthban lehet interrupt kezelőket írnii, persze bizonyos szabályokat be kell tartani.
Jani, ha5ft
3
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta ha5ft Dátum augusztus 02, 2021, 09:49:59 am »
Az egész forth-ban van. Egy része a forthban megírt assa blerben. A hossza 200 blokk. Ugye akkor blokkos háttér tár kezelés volt. Egy blokk az 1K byte. Egy oldalra 3 blokk van kinyomtatva. Ez szokás szerint a könyvben a jobb oldali oldal. A vele szemben levő bal oldali oldalon szintén három blokk van, amelyek a kód blokkok magyázatai.
Lehet, hogy van valahol atchíválva egy dos alatt futtatható alap rendszerem, amellyel ebből a kódból lehet valahogy teljes rendszert csinálni. Ha valaki nulláról indulva akar egy ilyen rendszert létrehozni, akkor annak ezen kód alapján assamblerben kell írnia egy minimál rendszert és utána használni ezt a kódot. Ez a forth-ban írt forth rendszer egy trükkös dolog. Igazából különbözö target rendszerek létrehozására szolgál. Egy már futó rendszer segítségével ugyan azon vagy más processzorra lehet létrehozni különböző target rendszereket. Mi ano x86 és z80 processzorokra dolgoztunk. Mindkettő esetén különböző hardverekre. Így létre lehet hozni olyan beágyazott rendszert is amelyben nincs terminal task és amely rendszert nem lehet tovább bővíteni.
Egyszer, a sok időm van esetleg megnézem, hogyan lehet egy ilyen rendszer létrehozni x64 és arm rendszerekre.
A forth assambler egyébként roppanr egyszerű, csak néhány blokk forth kód.
Jani, ha5ft
4
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta ha5di Dátum augusztus 02, 2021, 06:05:23 am »
János, a polyforth source code assembly vagy C? Hány oldal?
5
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta ha5ft Dátum augusztus 02, 2021, 05:24:39 am »
igen, voltak szabványosítási kísérletek. Ennek ellenére szerintem a gyakorlatban a polyforth, aminek gépkönyvének első, processzor független részét Zsolt belinkelte a legjobban használható megoldás. Tökéletes megoldást ad pl. kereszt fordításra. A mostani gforth megoldása elbújhat mellette. A szabvány és így a gforth is erőltet néhány olyan dolgot, amit soha nem vittek következetesen végig. Ilyen pl a két állapot: fordítási és interpretálási és az, hogy elvileggminden szónak más  szemantikája, s így más végrehajtható kódja lehet a két állapotban. Ez igazából következetesen nem is valósítható meg. Az egyetlen előnye ennek, hogy az állapot átkapcsolása fordításba után továbbra is a text interpreter dolgozhat és dolgozásának eredménye a lefordított kód. Ezért a ] szó csak ezt a mód átkapcslást végzi el. A plyforth-ban ez a szó ténylegesen a compiler, ami tartalmazza a text interpreter egy részét is. Az immediate szavak kezdettől fogva léteztek. Ezek olyanok, amelyeket a fordítás alatt is végre kell hajtani. H ezekhez tartozik egy vagy több lefordított szó a lefordított kódban, akkor ezeket az immediate szó futása helyezi el oda. Maga az immediate szó csak nagyon speciális esetben kerül be a lefordított kódba amikor ott is immediate szóként tud viselkedni. No a fent említett újítás ezt  bonyolítja el teljesen feleslegesen. A gforth-ban van viszont egy érdekes próbálkozás, a lokális változó, ami egy forth szó belsejében próbál a c nyelv függvényei lokális változóinak mintájára ilyeneket használni. Sajna ennek az implementációja is  sak félig sikeredett, ge ezt igazából meg lehetne jóra is csinálni.Ugye ilyen stack változókat eddig is lehetett csinálni. Az újítás szerint ezeket név szerint lehet használni és így sok stack manipulációs műveletet lehet megspórolni. De a jelenlegi implementásióban sok a megkötés. Például ahhoz, hogy hierarchikus jelfeldolgozó szavakat lehessen írni, arra sajnos nem alkalmas.
Nekem nyomtatásban meg van a
olyforth 86 processzor implementációs gépkönyve is, benne forráskódban a teljes rendszer. Egyszer, ha sok időm lesz beszkennelem. Akkor, ha valkit érdekel megkaphatja.
Jani, ha5ft
6
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta ha5di Dátum augusztus 01, 2021, 07:30:48 am »
A FORTH történetében voltak szabványosítási kísérletek. Az első a FORTH-79 volt, ezt követte a FORTH-83. A legsikeresebb az 1994-es lett, amit az ANSI is beemelt a saját szabványai közé, így ez tekinthető a leghivatalosabbnak. Jelenleg a Forth200x csoport foglalkozik a szabványosítással, a legutolsó verzió 2018-ben született:

https://pages.physics.wisc.edu/~lmaurer/forth/Forth-79.pdf
http://dl.forth.com/sitedocs/dpans94.pdf
http://www.forth200x.org/documents/forth18-1.pdf


Ne felejtkezzünk el a GNU FORTH-ról, ami egy nyílt forráskódú implementációja a 2012-es szabványnak:

https://gforth.org/

7
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta hg2ecz Dátum július 30, 2021, 08:33:25 pm »
Időközben több segítséget kaptam a múlt ezen titkának megfejtéséhez:
    https://theforth.net/package/minimal/
    http://www.greenarraychips.com/home/documents/greg/DB005-120825-PF-REF.pdf

Köszi mindenkinek, lassan hobbizok tovább vele.
8
Csöves végfokok / Re:QRO
« Utolsó üzenet: írta uprog Dátum július 30, 2021, 10:14:22 am »
Sziasztok.

A fejlesztes nem allt le, csak alkatreszre varok. Annyiban modosult az alaplemez, hogy mivel ket csore volt ez elsore elgondolva igy csak ket cso lesz ratervezve, es a csoveket tarto lemez kulon lesz legyartva, hogy az alaplap is egyben maradjon. Erre rakerul az anod kori folyto es hidegites + az anodfeszultseget kapcsolo vakuumrele. Udv.
9
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta ha5di Dátum július 19, 2021, 06:53:18 am »

@Béla: mintha te adtál volna nekem magyar nyelvű FORTH PDF-et. Valahova elkevertem. Ha kezedbe kerül, oszd meg velünk légyszíves.

Nem emlékszem, hogy bármilyen magyar nyelvű FORTH irodalmam lett volna PDF-ben, akkor az talán még nem is létezett. Magyar nyelvű irodalomra sem emlékszem. Internet nem volt, kb. egy évbe telt, amíg sikerült hozzájutni a FORTH szabványhoz nagy nehezen az USA-ból. Mi a saját fejlesztésinkhez csináltunk persze kézikönyveket PC-s szövegszerkesztővel, ezekből pár itt van a polcon papír alapon, mert a kimenet az a nyomtatott verzió volt.

Most keresgélve találtam egy 1990-es könyvet, amit eddig nem ismertem:



Szerencsére ma már majdnem minden elérhető Interneten, beleértve a szabványokat is.
10
Programozási nyelvek / Re:Volt egyszer egy FORTH
« Utolsó üzenet: írta hg2ecz Dátum július 18, 2021, 12:06:18 am »
Oldalak: [1] 2 3 ... 10