flat assembler
Message board for the users of flat assembler.

Index > High Level Languages > RetroForth

Goto page Previous  1, 2, 3  Next
Author
Thread Post new topic Reply to topic
THEWizardGenius



Joined: 14 Jan 2005
Posts: 382
Location: California, USA
THEWizardGenius
OK, having tried the beta 8.0 for Windows I have discovered that it has the editor! Yay, and stuff!
Post 17 Jun 2005, 03:51
View user's profile Send private message AIM Address Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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.
Post 18 Jun 2005, 01:06
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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.
Post 18 Jun 2005, 20:36
View user's profile Send private message Visit poster's website Reply with quote
THEWizardGenius



Joined: 14 Jan 2005
Posts: 382
Location: California, USA
THEWizardGenius
Quote:

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

That's what I needed, thanks!
Rawwrite for Windows: That's what I wanted. Thanks for the link!

Quote:

I'll have optional support for the IDT and IRQ's later this summer.

Good. You probably won't need them except in the native version, in case anyone wants to write an OS in RF Very Happy.

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.
Post 23 Jun 2005, 00:51
View user's profile Send private message AIM Address Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
crc
Quote:
Did you or are you ever going to have a RF for DOS? I imagine porting from native to DOS wouldn't be difficult.


I have done some work on a 16-bit RetroForth for DOS, but it's not ready to be released yet. I hope to complete it sometime this summer. (Summers are my busiest months, so I don't know how much time I'll have to devote to it)

Quote:
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


darcs is a version control system. As to getting the source, it's included in the downloads. Look in the "source" directory Smile

If you do get around to porting RetroForth to your OS, let me know. I'll be glad to help in any way I can, and also can make it an "official" port if you want Wink

Quote:
I like RF, and hope you continue to improve on it and make it better.


Thank you. I plan to continue developing it as long as possible. The best is yet to come.
Post 23 Jun 2005, 00:59
View user's profile Send private message Visit poster's website Reply with quote
Guest





Guest
Quote:

The best is yet to come.

That's the way all programming languages should be. Smile
Post 23 Jun 2005, 22:22
Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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.
Post 30 Jun 2005, 22:43
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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.
Post 17 Sep 2005, 19:24
View user's profile Send private message Visit poster's website Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2341
Location: Usono (aka, USA)
rugxulo
So which C compilers have you tested this with so far? (just curious).
Post 20 Sep 2005, 09:15
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid
ehm, could someone put it to me briefly WHAT is Forth language?
Post 20 Sep 2005, 09:44
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
shoorick



Joined: 25 Feb 2005
Posts: 1605
Location: Ukraine
shoorick
Quote:

WHAT is Forth language

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 Smile

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.
Post 20 Sep 2005, 10:55
View user's profile Send private message Visit poster's website Reply with quote
shoorick



Joined: 25 Feb 2005
Posts: 1605
Location: Ukraine
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 Wink

_________________
UNICODE forever!
Post 20 Sep 2005, 11:42
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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 Smile
Post 20 Sep 2005, 13:14
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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 Smile
Post 20 Sep 2005, 22:22
View user's profile Send private message Visit poster's website Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2341
Location: Usono (aka, USA)
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. Smile

crc wrote:
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 Smile
Post 23 Sep 2005, 05:36
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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 Smile

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...
Post 21 Oct 2005, 13:10
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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)
Post 24 Jan 2006, 01:16
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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.
Post 05 Feb 2006, 02:52
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
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.
Post 04 May 2006, 00:39
View user's profile Send private message Visit poster's website Reply with quote
0.1



Joined: 24 Jul 2007
Posts: 474
Location: India
0.1
Hi crc!
I am an utterly newbie for your RetroForth Shocked
So plz provide me with a one click link that gives me the RetroForth+Tutorial+Documentation+Reference.
Plz.

_________________
Code:
 o__=-
 )
(\
 /\  
    
Post 09 Aug 2007, 08:38
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar.

Powered by rwasa.