While on the subject of languages, I thought I would finally take a look at a program that I had received a while back. Salvador Merina of Spain has ported eFORTH to the QL. eFORTH is a portable implementation of a FORTH interpreter. The main version of eFORTH is the MS-DOS implementation.
Not being a FORTH programmer, I can only provide a cursory look at the program.
eFORTH is written in Assembly and comes with the complete source code. It loads by RESPRing some memory and loading a _bin file into memory and the making a CALL to it. I have tried to run eFORTH with ToolKit II loaded in memory, but eFORTH locks up the machine. The boot program does a PEEK to find how much memory is available and then RESPRs it all. I have part of ToolKit in my disk drive ROM so it may not be a clash with the ToolKit commands but more of a memory conflict.
eFORTH comes with a short Quill file that tells you how to start eFORTH and run a few simple FORTH commands. It does not document how to exit eFORTH. It also documents the QDOS specific commands of eFORTH. In a glossary file is the description of all of the eFORTH commands. There is not beginner documentation. It is assumed that the user already knows FORTH. Since eFORTH seems to implement FORTH-83, I found the book “Starting FORTH” by Leo Brodie to be very usefull. With a local Sinclair FORTH SIG in the area, I might start getting into the language.
The documentation explains that you only have 16K for program space, but shows how to get 1.8 Meg of program space with a Gold Card. It does not mention lower memory QL’s, but there might be a way to free up more memory. With a 12K executable, I can only assume that most of memory is taken up with stack space.
eFORTH does not come with any example programs. So you can’t really give it a good “test drive” once you get it, unless you know FORTH.
Once eFORTH is running, you will see a white screen with a green border and black letters. The program name an version number is displayed and a blinking cursor is ready for you to enter FORTH commands.
In trying out a few sample commands that I found in the Brodie book, I noticed that eFORTH is not blindingly fast. Even on simple commands there is a pause while eFORTH works on the problem. It’s hard to say if the assembly code was optimized for the QL.
Overall, eFORTH looks to be a full implementation of the FORTH-83 language. It has a few quirks that will cause frustration to some QL users from integrating into their environment, but they should not stop any FORTH enthusiasts.