--- tags: colorForth --- # Hogyan kell programozni a <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> <a style='color:#ff0000'>c</a><a style='color:#009900'>F</a>2019-ben? [TOC] ## Bevezetés Ez egy bemutató arról, hogyan kell programozni a <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a>-ban Windows alatt, az általam forgalmazott és támogatott cf2019 rendszer használatával. A<a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> a Forth programozási nyelv egy dialektusa, mindkét nyelvet Charles H. "Chuck" Moore találta fel ; - a Forth-ot 1968 körül, a <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a>-ot pedig az 1990-es évek végén. A cf2019_colorForth.pdf fájl részletesebb magyarázatot ad. A <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> nem olyan, mint bármi más. Amikor a <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a>-ban megnyomunk egy billentyűt, történik valami. Hogy pontosan mi történik, az a rendszer aktuális állapotától függ, és ez a rendszerállapot jelenik meg a képernyőn. Absztrakt módon ez minden számítógépes programra igaz - a <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> esetében az a különbség, hogy teljes - semmi más nem történik. A cf2019 egy folyamatban lévő munka, és mindig is az lesz. Remélem, hogy hozzáadhatok verziókezelést, stringeket stb. stb. stb., de anélkül, hogy elveszíteném a colorForth elképesztő egyszerűségét. A <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> támogatásával az a szándékom, hogy a lehető legtöbb ember számára elérhetővé tegyem. Visszajelzéseket szívesen fogadok howerd@inventio.co.uk www.inventio.co.uk. Jó szórakozást! Howerd Oakford ## A colorForth letöltése és futtatása Töltsd le a <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> programot a "cf2019 Issue 2021Aug15.7z" fájl segítségével a: http://www.inventio.co.uk/colorforth/ vagy ide kattintva: https://www.inventio.co.uk/colorforth/cf2019%20Issue%202021Aug15.7z Csomagold ki egy Windows rendszert futtató számítógépen, például a <a style='color:#ff0000'>c</a><a style='color:#009900'>F</a>2019 mappába. Kattints duplán a go.bat parancsra. ![](https://i.imgur.com/BsRNBoA.png) Nyomjd meg az Enter billentyűt a billentyűzeten, vagy kattints az OK gombra, hogy a Bochs teljes képernyős módban fusson: ![](https://i.imgur.com/R3CPa8e.png) Megjegyzés: a billentyűzeten az Alt-Enter billentyűvel kiléphetsz a teljes képernyős módból, és onnan a Power gombbal bezárhatod a Bochs-t. A <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> logó rövid ideig villogni fog, majd a <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> szerkesztőben a 32-es blokknak kell megjelennie: ![](https://i.imgur.com/lnNlRb0.png) Nyomja meg az F4 billentyűt a billentyűzeten a színvak üzemmód kiválasztásához: ![](https://i.imgur.com/sZa9lNE.png) A színvak üzemmód a piros szavakhoz ':', a megjegyzésekhez '(' és ')', az azonnali szavakhoz pedig '[' és ']' hozzáadódik. Ezáltal a kód jobban hasonlít a hagyományos Forth-ra, és színvakok számára is használhatóvá válik. Nyomja meg a billentyűzet szóköz billentyűjét a <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> szerkesztőből való kilépéshez: ![](https://i.imgur.com/cWKZpkj.png) Figyelje meg a sárga billentyűzetet a jobb alsó sarokban, amelyen a "pyfi gcrl" stb. szerepel. A sárga szín azt jelenti, hogy "azonnali" - bármit is írsz be, azonnal végrehajtódik, amikor megnyomod a szóköz billentyűt. Figyeljük meg, hogy a billentyűzet felett és alatt lévő két narancssárga vonal (amelyek a szerkesztő módot jelzik) már nincs ott. Mostantól kezdve a billentyűzetre hivatkozva válassza ki, hogy melyik karaktert írja be, nem pedig a billentyűzetre. A [cf2019_colorForth.pdf](https://www.inventio.co.uk/colorforth/cf2019_colorForth.pdf) részletesebb magyarázatért olvassa el a cf2019_colorForth.pdf fájlt. ![](https://i.imgur.com/FghPRON.png) *Ábra 1 A billentyűzet* ![](https://i.imgur.com/wHKm7Ws.png) *Ábra 2 A gombok térképe* A billentyűzet alsó sorában lévő "9*" azt jelenti, hogy a szóköz billentyű számmódra vált ("9"), a kis "x" pedig azt jelenti, hogy az AltGr billentyű alternatív karakterekre vált (például *). A '*' csillag karakter úgy néz ki, mint egy kis 'x', mert szorzást jelent. A billentyűzet 'N' billentyűjét gyakran használják az üzemmódból való kilépésre. A billentyűzet mind a 27 használt billentyűzetbillentyűjének műveleteit a billentyűzet megfelelő karaktere jelzi. Nincs '_' aláhúzás, ezért az alábbi utasításokban azt fogom használni, hogy "nyomja meg a szóközt". ## A 250-es blokk szerkesztése A 0-31-es blokkok a colorForth rendszer primitív szavait tartalmazzák, a 32-63-as blokkok a colorForth rendszer Forth szavait, a 64-511-es blokkok pedig az Alkalmazásokat. \ Nyomja meg a billentyűzet szóköz billentyűjét a számok üzemmódba való belépéshez. ![](https://i.imgur.com/UHiWDIj.png) *Ábra 3 Szám üzemmódban, a billentyűzetgombok térképe* `250 ` \ Nyomja meg a számbillentyűket egy szám beírásához Ez azt jelenti, hogy nyomja meg az 'I' billentyűt, majd a 'K' billentyűt a billentyűzeten, majd az 'L' billentyűtől jobbra lévő bármelyik billentyűt. billentyű mögött. Egy német QWERTZ billentyűzeten ez az 'Ö', egy QWERTY billentyűzeten valószínűleg egy ';'. Nyomja meg újra a szóköz billentyűt, hogy visszatérjen a szöveges üzemmódba - erre utal az 'a' betű a billentyűzeten: _ \ a számmódból való kilépéshez nyomja meg a billentyűzet szóköz billentyűzetét. Most már a '250' szám van a veremben: ![](https://i.imgur.com/6hw7ZG9.png) edit_ \ a 250-es blokk szerkesztéséhez írja be az "edit" szót (az '_' a szóköz billentyűt jelenti). A "szerkesztés" beírásához a billentyűzeten a DVRK billentyűket kell megnyomnia, de a legjobb, ha megpróbál elfelejteni a billentyűzetet és a billentyűzetre koncentráljon. Vegye figyelembe, hogy a billentyűzet folyamatosan változik. A képernyőnek most így kell kinéznie: ![](https://i.imgur.com/O0b4Lrh.png) Balra fent a narancssárga kurzor mutatja, hogy hova kerül be a következő Forth szó. Jobbra fent a szerkesztett blokk száma, ebben az esetben 250. Ez a blokk jelenleg üres. Balra lent a verem látható, amely jelenleg szintén üres (korábban így nézett ki). A narancssárga vonalak a billentyűzet felett és alatt azt mutatják, hogy szerkesztési módban vagyunk. A billentyűzet bal oldalán lévő "edit" szó az utoljára beírt Forth szót mutatja. Mivel egy szó minden egyes karaktere beírása során a karakter értéke felhalmozódik a veremben, és ennek a felhalmozott értéknek a szöveges megjelenítése a következő a billentyűzet bal oldalán jelenik meg. Ha kilépett a szerkesztőből, és vissza akar térni, a sárga azonnali módban írja be az "e" billentyűt, (majd a szóközt), hogy szerkesszen az utoljára szerkesztett blokkot. Most a 250-es blokkot szerkesztjük a főszerkesztő billentyűzetével: ![](https://i.imgur.com/6MRpls7.png) *Ábra 4 A főszerkesztő billentyűzete* ## A program beírása Egy új Forth szó definiálásához be kell írnunk egy piros nevet, ezért nyomjuk meg az 'r' billentyűt a főszerkesztő billentyűzetén (ez az 'I' billentyű). billentyű a billentyűzeten). Nem kell kettőspontot (':' ) beírni, mert színvak üzemmódban ez automatikusan hozzáadódik. ![](https://i.imgur.com/BAKhHrS.png) *Ábra 5 A "fib" Forth szó létrehozása, mielőtt megnyomná a Space billentyűt.* A fenti képen a képernyő a "fib" beírása után, de a szóköz megnyomása előtt látható. A "fib" név van a felső részén a Huffman tömörített értékként (46051) a verem tetején van, és jobbra lentebb "fib"-ként dekomprimálva látható. ![](https://i.imgur.com/5N7OCtO.png) *Ábra 6 A "fib" Forth szó létrehozása, a Space megnyomása után* A szóköz megnyomása után a veremben lévő érték (45061) eltávolításra került, és átmásolódott a kurzor pozíciójába a blokkba. A szerkesztő a blokk első 32 bitjében lévő értéket piros színű (':' betűvel) "fib" szövegként jeleníti meg. A szerkesztő billentyűzete most zöldre váltott, ami a fordítási módot jelzi. Figyeljük meg a billentyűzet jobb alsó sarkában lévő 'g'-t, ami zöldet jelez (korábban piros 'r' volt). A kurzor most a ": fib" szöveg utánra került. Nincs szóköz karakter a colorForth Huffmanben. tömörített 32 bites értékekben, de a szerkesztő automatikusan hozzáad egyet a következő szó megjelenítésekor. Most már beírhatjuk a zöld (lefordított) kódot az új Forth szóhoz: fib push 1 dup pop -2 + ![](https://i.imgur.com/qNAGWgq.png) *Ábra 6* **A szöveg és a számok beírása a billentyűzet segítségével némi gyakorlatot igényel!** Az '1' szám beírásához nyomja meg a szóköz billentyűt anélkül, hogy más karaktereket írna be - ezzel belép a számok üzemmódba. Nyomja meg az '1'-et a billentyűzet segítségével ('U' a billentyűzeten), majd a szóköz billentyűt. A "-2" beírásához nyomja meg a "-" billentyűt a billentyűzeten. ('N' a billentyűzeten), majd a '2' számot ('I' a billentyűzeten). Ezután nyomja meg a szóköz billentyűt. ![](https://i.imgur.com/FzVNAuZ.png) *Ábra 7 Számbillentyűzet* A "+" karakter beírásához nyomja meg a billentyűzeten a "*" billentyűt (Alt-Gr a billentyűzeten), hogy alternatív karakter módba lépjen: ![](https://i.imgur.com/ASb4P8p.png) ![](https://i.imgur.com/NHDopdc.png) *Ábra 8/a Karaktertábla 8/b Alternatív karaktertábla Ezután nyomja meg a billentyűzeten a "+" billentyűt (a billentyűzeten a "C" billentyűt), majd a szóköz billentyűt. ## Mentsd el a munkádat Miután eltöltött egy kis időt a program beírásával, itt az ideje, hogy elmentse a munkáját. Lépjen ki a szerkesztőből a billentyűzet '.' billentyűjével (a billentyűzeten az 'N' billentyűvel), majd nyomd meg a szóköz billentyűt visszatérni a sárga azonnali billentyűzethez: ![](https://i.imgur.com/BqgA8Ow.png) Írd be a billentyűzetre a "sa" szót, majd a szóközt. A cf2019 rendszer a cf2019.img fájlba lesz mentve. ![](https://i.imgur.com/4Tf6IRs.png) A "sa" beírásával visszatérhet a szerkesztőhöz, hogy további szavakat adhasson hozzá. ![](https://i.imgur.com/SZnk6HE.png) Ha kikapcsolja a Bochs-t, és újra lefuttatja a go.bat programot, a kurzor visszaáll a blokk elejére. Használja a "ludr" billentyűket a billentyűzeten, vagy a billentyűzet nyílbillentyűit, hogy a kurzort a "+" utánra helyezze. A Kezdőlap és a Vég billentyűk ( Pos1 és Ende a német billentyűzeten) szintén a kód elejére és végére mozgatják a kurzort. Ezután a billentyűzeten megnyomhatja az "r" billentyűt az új piros definíció megadásához. : f -if drop nip ; akkor push swap over + pop -1 + f ; Vegye figyelembe, hogy a "-if"-ben lévő '-' egy kötőjel, nem pedig számbillentyüzetel beírható minusz jel, ezért az alternatív karakterrel kell beírnia. A "-2"-ben lévő '-' viszont minusz karakter, és a számbillentyűzetet kell használni (a '-' billentyűt a '2' előtt kell megnyomni). Mentse el újra a munkáját! ## A program betöltése és futtatása Lépjen ki ismét a szerkesztőből a szóköz megnyomásával, majd írja be az "ll" billentyűt az aktuális blokk betöltéséhez. Az "ll" egy a sok kétbetűs szó közül - a lista megtekintéséhez lásd az A. függelék Hasznos parancsok című részét. Nyomja meg a szóköz billentyűzetet az azonnali számbillentyűzet megjelenítéséhez, nyomja meg a "8"-at a billentyűzeten (például), majd a szóköz billentyűt, majd írja be a "fib" billentyűt a 8. Fibonacci-szám kiszámításához. 1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584…. ![](https://i.imgur.com/9H31GtN.png) Láthatjuk a 8-as számot a veremben, majd a Huffman tömörített "fib" szót (46051). A szóköz megnyomása megnyomásával a válasz a veremre kerül: 34. Figyeljük meg, hogy a billentyűzeten az F4 billentyűt nyomtam meg, hogy kilépjek a színvak üzemmódból - a kód jobban elfér egy sorban. ![](https://i.imgur.com/AHRNMmT.png) ## További funkciók Hozzáadhat megjegyzéseket, halmazkommentárokat és kék szavakat (a szöveg formázásához a kijelzőn): ![](https://i.imgur.com/2yq351T.png) Nyomja meg az F3 gombot a kék szavak megjelenítésének engedélyezéséhez/letiltásához. Nyomja meg az F4 gombot a színvak üzemmód engedélyezéséhez/tiltásához. Egy alternatív kijelző így néz ki: ![](https://i.imgur.com/JMAVkQq.png) Jó gyakorlat egy árnyékblokk hozzáadása, amely elmagyarázza, hogy mit csinál az alkalmazás: ![](https://i.imgur.com/wHdAvCD.png) Az árnyékblokkok páratlan számozású blokkokban vannak, a Forth kód páros számozású blokkokban van, váltani lehet a a főszerkesztő billentyűzetén található '*' billentyűvel tudunk a kettő között váltani. A sárga azonnali szavak [ 8 fib ] a blokk betöltésekor kerülnek végrehajtásra, így a 34-es válasz a veremre kerül. Ez némi gépelést takarít meg ;-) A fehér megjegyzés a felső sorban "App: Fibonacci" jelöli ezt a blokkot, mint cf2019 App. Vegye figyelembe, hogy az első szónak pontosan úgy kell lennie, ahogyan a főszerkesztő billentyűzetén a nagy 'C' módot használva "App:" írva van. A colorForth explorer App futtatása az "xx" beírásával megmutatja az összes Alkalmazást a rendszerben: ![](https://i.imgur.com/Dhinsng.png) A billentyűzet '-' és '+' billentyűivel jelölje ki az alkalmazást, majd nyomja meg a szóköz billentyűt a futtatásához. Láthatod, hogy futtattam a Fibonacci alkalmazást kétszer, így két válasz maradt a veremben. ## Mentsd el a munkádat 2. rész Ha elégedett vagy a programoddal, akkor valóban el kell mentened azt újra, más módon. Az "sa" vagy hasonló szavak, mint például az "ss" és a "save" beírásával az általad írt kódot (ami a RAM-ban van) átmásolod a cf2019.img fájlba a lemezen. A cf2019.img fájlról biztonsági másolatot kell készítenie, mert a goc.bat fájl futtatása felülírja azt, és törli az összes munkáját. A goc.bat lefordítja a rendszert, majd lefuttatja azt, de a rendszer cf2019Ref.img hivatkozási másolatát használja, mint a goc a go_compile rövidítése. A go.bat csak a cf2019.img-et futtatja. Én például a Windows segítségével a cf2019.img fájlt a cf2019_2022Jan01.img fájlba szoktam másolni - ez egy durva formája a cf2019_2022Jan01.img fájlnak. verzióellenőrzés. Van egy new.bat batch fájl is, amely a cf2019.img-et a cf2019Ref.img-be másolja: copy /b .\cf2019.img .\cf2019Ref.img A new.bat futtatása az új programot a cf2019 rendszer részévé teszi, így a goc.bat futtatása nem fogja törölni azt. Ne feledje, hogy a goc.bat futtatása visszaállítja a rendszer "gyári alapértelmezett állapotát" - az "xx"-et használhatja az alkalmazás megkereséséhez, vagy a "250"-t. edit" segítségével megtekintheti a kódot. ## Hasznos parancsok | Parancs | akció | | ------- | ----- | | e | A legutóbb szerkesztett blokkot megjelenítő szerkesztő futtatása | | 32 | edit A colorForth szerkesztő futtatása a 32-es blokk megjelenítésével. | xx | A colorForth Explorer futtatása | | ll | A szerkesztő által megjelenített aktuális blokk betöltése | | vv | Az ld parancs által utoljára betöltött blokk megtekintése | | uu | Az aktuális blokk összes módosításának visszavonása | | ss | Az aktuális blokk mentése a lemezre | save | A teljes rendszer mentése a lemezre. Megváltoztathatja az USB stick biztonsági mentéshez. | | sa | Mentés és visszatérés a szerkesztőhöz | | logo | A colorForth logó képernyő megjelenítése | | empty | A mark meghívása óta összeállított összes definíció eltávolítása | | mark | Az aktuális rendszerállapot jelölése üres | | $1000 dump | Az $1000 címen kezdődő 16 32 bites cella kiürítése. | | bye | Kilép a rendszerből, elvetve az utolsó mentés, sa vagy ss óta végzett összes szerkesztést. | | hlp | Frissíti a hardveres rendszerinformációt és megjeleníti a start blokkot. Ez jelenleg a 32-es blokk, és megjeleníti az Alkalmazások listáját. | | life | Futtassa a Conway's Game of Life demóját. Nyomja meg a szóköz billentyűt a kilépéshez (a billentyűzet mnemonikájában egy '.' jelöli), majd írja be az xx és nyomja meg a szóköz billentyűt. Görgessen a "Conways Game of Life" (Conway életjátéka) menüponthoz és nyomja meg az e billentyűt a forráskód megtekintéséhez, majd nyomja meg a '*' billentyűt a szerkesztőben a dokumentációs árnyékblokk megtekintéséhez. | A kurzort a szerkesztőben a kurzorvezérlő billentyűkkel, illetve a nyíl a HOME és az END billentyűkkel is mozgathatja közvetlenül egy piros szó után (szerkesztő vagy értelmező módban), majd nyomja meg az Enter billentyűt (a QWERTY vagy a QWERTZ billentyűzeten, nem a billentyűzeten) az adott szó végrehajtásához.