More actions
No edit summary |
|||
Line 22: | Line 22: | ||
[http://www.forth.org/ Forth] is a stack-based language using "reverse polish" notation. It provides an interpreter which is able to be extended with new definitions. Unlike BASIC interpreters, new "definitions" (or "functions", Forth users generally talk about "words") are _compiled_ which means that there is no difference in performance between newly created words, and the original ones provided by the interpreter (except for those few written in assembly). | [http://www.forth.org/ Forth] is a stack-based language using "reverse polish" notation. It provides an interpreter which is able to be extended with new definitions. Unlike BASIC interpreters, new "definitions" (or "functions", Forth users generally talk about "words") are _compiled_ which means that there is no difference in performance between newly created words, and the original ones provided by the interpreter (except for those few written in assembly). | ||
Forth is a kind of (unmanaged) virtual machine. Unlike Java virtual machines, a Forth engine is very simple and will usually fit in less than 10Kb. For design considerations about Forth, it is highly recommended to read | Forth is a kind of (unmanaged) virtual machine. Unlike Java virtual machines, a Forth engine is very simple and will usually fit in less than 10Kb. For design considerations about Forth, it is highly recommended to read [https://archive.ph/www.zetetics.com Bradford J. Rodriguez's publications] about them. | ||
==User guide== | ==User guide== |
Revision as of 10:55, 8 September 2022
PandaForth for GBA | |
---|---|
File:Pandaforthgba2.png | |
General | |
Author | Torlus |
Type | Other emulators |
Version | 2005 |
License | Mixed |
Last Updated | 2005/03/09 |
Links | |
Download | |
Website | |
Source | |
This is a port of PandaForth, a Forth implementation created by Torlus, based on Bradford J. Rodriguez's CamelForth for the Z80 in 1994.
Forth is a stack-based language using "reverse polish" notation. It provides an interpreter which is able to be extended with new definitions. Unlike BASIC interpreters, new "definitions" (or "functions", Forth users generally talk about "words") are _compiled_ which means that there is no difference in performance between newly created words, and the original ones provided by the interpreter (except for those few written in assembly).
Forth is a kind of (unmanaged) virtual machine. Unlike Java virtual machines, a Forth engine is very simple and will usually fit in less than 10Kb. For design considerations about Forth, it is highly recommended to read Bradford J. Rodriguez's publications about them.
User guide
One of the original features of PandaForth is that you can use the interpreter directly from your computer if you have a MBV2 cable, by using the "console mode" of the tool bundled with it.
If you don't have such a cable, you can still test the interpreter features on hardware or in an emulator, as PandaForth is able to "embed" source with the help of Damian Yerrick's GBFS library for GBA.
It is bundled with full source code, a small demo written in Forth, and all the scripts to build your own programs.
Credits
Many thanks to:
- Bradford J. Rodriguez, for his CamelForth and articles about Forth.
- WinterMute, for DevkitARM, libgba, xboo, and clean Makefile.
- Damian Yerrick, for GBFS.
- DaLK, for the gfx used in the demo.
- krb, for gba-tt tool I used for the demo.
- BigRedPimp, for testing.
- All infomation sites about GBA, GBADev, Devrs.Com and GBATEK.
And greetings to people on EFNET #gbadev and #gbadevfr.
External links
- Author's website - http://torlus.com/index.php?GBA (archived)
- GitHub - https://torlus.github.io/