flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2, 3 Next |
Author |
|
THEWizardGenius
OK, having tried the beta 8.0 for Windows I have discovered that it has the editor! Yay, and stuff!
|
|||
![]() |
|
crc
Quote: Cool, but you'd probably want IRQ-handler capabilities in RF. I just got the stable release 7.6 (from http://www.retroforth.org/) as I said, the Windows one. I'll have optional support for the IDT and IRQ's later this summer. |
|||
![]() |
|
crc
Quote: Can you put it in ZIP for us Windows users, and can you also make an installation program or give a link to a program that can be used to do this for Windows? I just put .zip versions together, so Windows users won't need additional tools to open the downloads. I'm not sure exactly by what you mean for an installation program. The only versions that need to be installed are the Native and L4 versions. For native, get RaWrite for Windows (from http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm ) and use it to write retro8\bin\diskimage to a floppy. You should then be able to boot from the floppy. |
|||
![]() |
|
THEWizardGenius
Quote:
That's what I needed, thanks! Rawwrite for Windows: That's what I wanted. Thanks for the link! Quote:
Good. You probably won't need them except in the native version, in case anyone wants to write an OS in RF ![]() Did you or are you ever going to have a RF for DOS? I imagine porting from native to DOS wouldn't be difficult. What is darcs? Is it possible to get the source code if you don't have darcs? I'm going to write an OS, and may port to my own OS when I finish my OS- but thats still in the future. I like RF, and hope you continue to improve on it and make it better. |
|||
![]() |
|
Guest
Quote:
That's the way all programming languages should be. ![]() |
|||
![]() |
|
crc
After six months of development, I'm proud to announce RetroForth 8.0. Here's a quick rundown of the features:
* Cleaned up internals * Better Documentation (including a complete glossary of words and a tutorial) * Lexical scope (localized factoring of definitions) * Delayed execution * a block editor * a debugger * an assembler * colors in output * multi-line definitions now work properly * new FFI makes using external libraries easier * code library is now included * better code generation * New ports: Dex4u and L4Ka::Pistachio Check http://www.retroforth.org for links to the handbook and downloads. |
|||
![]() |
|
crc
I'm happy to announce that RetroForth can now be used as a library inside C:
Code: #include <retro.h> int main() { init_forth(); int bye = getxt("bye"); evaluate("words cr cr"); rfcall(bye); } With the optional runtime assembler, this allows easy mixing of Assembly, Forth, and C, in a single codebase. See http://retro.tunes.org/nightly/rf8-dev-libretro.zip for the code. |
|||
![]() |
|
rugxulo
So which C compilers have you tested this with so far? (just curious).
|
|||
![]() |
|
vid
ehm, could someone put it to me briefly WHAT is Forth language?
|
|||
![]() |
|
shoorick
Quote:
oh! it was a great language! the main ideas are next: 1. all operations are provided with numbers placed in stack 2. all (most) operations are executed as their order in the text 3. all keywords are placed into vocabulary as linked list and can be easy added 4. forth system is same time interpreting and compiling (this is need some time to explane) 5. ... a lot of other ![]() 2> if you need to add 2 and 3 you have to place them into stack then add. this will be coded as: 2 3 + this is reverse polish notation, the main reason against forth: somebody do not like this unusual form. but this bring also advantage to forth: because of it the program has form ready to compilation, thus compiler in forth embedded and extremelly small and simple: this was very useful when you wish to have high-level language on the system with low memory/storage resources. also it had advantages over some compilers with speed/size of programs, but now i'm not sure if it is possible: currently small program is made with huge compiler which can optimize it etc. it already a long time i do not use forth so i can be wrong in details, but i still think it is very powerful. |
|||
![]() |
|
shoorick
here is a grafic editor from gp-forth package: you can estimate its size, compressed level (it is not packed!) and capabilities. press F10 to exit from it.
oh! i cann't attach here - i'll do it in the heap ![]() _________________ UNICODE forever! |
|||
![]() |
|
crc
Quote: So which C compilers have you tested this with so far? (just curious). So far, just GCC. I'll be testing it with TinyCC tonight ![]() |
|||
![]() |
|
crc
Quote: WHAT is Forth Language? Forth is a programming language that is based on words (small subroutines), a stack (for passing data), and an interactive compiler. Syntax rules are simple: everything is either a word, a number, or an error. Forth is also a typeless language. (On the stack everything is represented as a cell, which, in RetroForth, is 32-bits). Tokens are separated by whitespace (tab, space, cr, or lf). Basically there is a dictionary (in RetroForth, it's a linked list of headers that have the word names and addresses to the definitions of these words, however some Forths use other approaches such as hashes of the names) that is searched by the interpreter. If a given token isn't found in the dictionary, it's assumed to be a number. If the conversion to a number fails, an error handler is called. Numbers are put on the data stack, which is used to pass values between words. Words will pop these off the stack and do something with them, placing the results on the stack. A few special words (such as :, create, and [entry]) are used to define new words in the dictionary. (This also brings up another interesting point: you can use any ASCII characters you choose in the word name.). : creates a new header in the dictionary then starts the compiler. There are a number of different methods of compilation; RetroForth uses a combination of subroutine threading (call <address>) and native code generation. It's possible to redefine things and also to extend the syntax in almost any way imaginable. For instance, math often looks like: Code: | Add 1 + 2 and display the result | | denotes a comment in RetroForth 1 2 + . If we redefine +, and define print# we can have basic-style syntax: Code: : print# later . ; : + later prior + ; | Add 1 + 2 and display the result print# 1 + 2 (The word prior compiles a call to the old definition for +). The interactive nature means that you can experiment, compile and test new definitions, and get your work done quickly. Size is also a plus: many implementations of Forth are very small. RetroForth runs 4-10k, depending on what all is built in and the host OS. In case you can't tell, I really like it ![]() |
|||
![]() |
|
rugxulo
MingW? Cygwin? DJGPP? Linux? Other? I assume you mean Linux since TinyCC is (mostly) only available for that, right? Get it working for DJGPP, and many will smile.
![]() crc wrote:
|
|||
![]() |
|
crc
No luck on anything other than GCC on Linux. I'm looking into the ABI for MinGW and DJGPP, and hope to get at least one of those two working soon. Other than that, a .dll version of libretro is nearly done. I just have to do a little more testing of it
![]() Edit: <sigh> further testing yields that the .dll is broken horribly; just attempting to initialize the forth results in the application crashing. Back to the drawing board... |
|||
![]() |
|
crc
After starting from scratch, I have working libraries for Linux/FreeBSD and a DLL for Windows users. This is a bit different than the older libretro, as I've revamped the core codebase significantly.
You can pick it up at http://www.rx-core.org, look for the librx packages (both binary and source are provided. It should be useable with any language capable of calling C-style functions. (Stdcall support is coming as well, I'm just not quite ready to dive into that yet) |
|||
![]() |
|
crc
RetroForth 9.0 is now released. It brings a number of improvements. Additional word classes allow for inlining and consistently handled data structures, the documentation has been completely redone, and many internal areas have been overhauled. Also new are support for command line arguments, vocabularies, and callbacks.
The native port has also been overhauled significantly and brings many new and improved drivers, support for multiboot, hard disk installation/operation, and an interrupt manager that allows for dynamically changing handlers for the interrupts. A list of the primary drivers: text screen, keyboard, cmos, serial, hard disk, floppy disk, interrupt manager. |
|||
![]() |
|
crc
I have released RetroForth 9.1, with support for Linux, FreeBSD, DragonFly BSD, NetBSD, OpenBSD, and Windows, as well as being able to run as a native (as an OS) version. Other OSes may work with the 'Generic' port.
|
|||
![]() |
|
0.1
Hi crc!
I am an utterly newbie for your RetroForth ![]() So plz provide me with a one click link that gives me the RetroForth+Tutorial+Documentation+Reference. Plz. _________________ Code: o__=- ) (\ /\ |
|||
![]() |
|
Goto page Previous 1, 2, 3 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.