Welcome to Holon 86
This fully functional version of Holon 86 is offered for free study and use.
Store the uncompressed files in one common directory. That's all.
Holon Files
- HOLON86.EXE is the development environment (the host).
- HOLON86.STR and HOLON86.TEX contain the source text of the target program.
- HOLON86.COD contains the code image of the target program.
- HOLONHLP.STR and HOLONHLP.TEX contain the online manual.
- WMON86.EXE is the target monitor for a DOS window.
- RMON86.EXE is the target monitor for a separate PC, serial port COM1:.
Holon runs under DOS. When HOLON86.EXE starts, the program looks for the files HOLON86.STR and HOLON86.TEX in the working directory.
- Starting from the DOS command prompt: Change the current directory to the Holon directory, then run HOLON86.EXE.
Problems have been reported with starting from the DOS command prompt in Windows NT. Then, start Holon from Explorer.
- Starting from Explorer: Click on HOLON86.EXE, the working directory is set correctly by Explorer.
- Starting with an Icon: If you create an icon on the desktop, set up the working directory in the Properties/Program options.
HOLON86 starts and shows the welcome screen.
If you see an empty browser and the question: "Create a new application? Y/N", then HOLON86 has not found the program files .STR and .TEX, probably because the working directory is not set to the Holon directory. Press N and restart Holon in a different way.
Operating Holon
You see the source text of the target program in a browser, clearly structured into modules, groups, and words. The middle panes show the definition and comment of the current word. At the bottom the stack pane is used for interactive testing.
- Use the cursor keys to move around in the browser.
Below the stack pane a function key menu is presented.
- Press the Ctrl key to see other commands, e.g. Ctrl+F7=Turnkey (creates a self-starting EXE file).
- More functions are available with the Alt key and the Ctrl+Sft key combination.
Testing Holon
HOLON86 includes two sample programs: HelloWorld and Tetris. Try HelloWorld first; that's always a good start. HelloMain is the main program word of HelloWorld.
- Go to the module HelloWorld, group Program, word HelloMain. See the definition and comment of HelloMain in the TEXT pane. You are here already, if you haven't moved around in the browser yet.
- Press F4=Run and see the welcome message.
- Press <Esc> to end the program.
Change the welcome message:
- Go to the word HelloMessage a few words above HelloMain.
- Press F2=Edit to edit the definition of the word.
- Change the welcome text inside the quote marks, say add ..how nice....
- Press F3=Load to reload this word.
- Go back to HelloMain and run the program again (F4=Run).
- See the program display the new message, although you didn't reload the whole program.
When you reload a word, Holon generates new code for this word and exchanges the code in the existing code image.
Now, have a look at Tetris as an example of a real application. The main word is Tetris.
- Let's go to Tetris. Try a new method for looking up a word: Press the <space> bar and type the name of the word: t e t r i s . After each new character Holon selects the first word in the target that starts with the characters that you have entered. Note the characters on the lower line of the browser
- With the word Tetris selected, press F4=Run.
- Play a little, use the cursor keys to manipulate the pieces.
- Press Q to return to Holon (press N at the question).
Online Manual
Press F1 to enter the online manual, which provides a detailed description of the operation of Holon 86. The manual can easily be printed. Note the hints in the chapter Setup, section Printer.
Forth
If you are familiar with Forth, you will feel at home rapidly. You can import your existing Forth programs into Holon. Lookup the details in the chapter Edit, section Export/Import.
If you are new to Forth, Holon makes it easy to adapt. Study the programs and the system modules. Try the words. Every detail of the target system is clearly defined and commented. Nothing is hidden in Holon. The section Forth in the chapter Develop describes all Forth word types that are available in Holon. See also the tutorial Using Holon, which provides a quick introduction to working with Holon and Forth.
In the test so far, the application runs in the DOS memory space above the host. Application and host are coroutines. This is indicated in the browser at the lower right by "COR".
Holon 86 makes it easy to shift between the application (target) and the host. When you run the application, the DOS window belongs to the target. When the application ends, the DOS window returns to the host.
But Holon 86 also provides two other workspaces for the target: The target can operate in a separate DOS window or in a separate PC. This is a unique feature of Holon 86, which offers important benefits:
- You always see both the definition of the program and the running program itself.
- You can work interactively on the running target program.
- The target has the full DOS memory space available.
Run the application in a separate DOS window.
- Start the program WMON86.EXE. WMON is a monitor that communicates with Holon 86. The application is built on top of WMON.
- Setup Holon 86 for the new target space: Press Ctrl+F3=System. Select target system = "DOS window" (press <space>). Press F8 or <Esc> to exit.
- "COR is replaced by "WIN", and a blinking dot indicates communication with the target window.
- The host downloads the program code to the new target memory. You may have noted the display of code and list addresses. If this went too fast, you can repeat the downloading of code to the target with the command Ctrl+Sft+F7=Download.
You may need to set up the scheduling of the DOS windows.
In Win 95/98 set Properties/Misc: Always_suspend=noYou are now ready to cross-develop a program between two DOS windows.
- Try the HelloWorld program first. Select HelloMain and press F4=Run. The host starts the program in the target and waits for the program to end. The host shows a white square instead of the blinking point while it is waiting.
- Press <Esc> to regain control of the host. The host stops waiting for the target, but the target is still occupied with the application and does not communicate with the host now. We are "offline".
- Stop the program (press <Esc> in the target window). The program returns control to the target monitor, which communicates again with the host ("online").
The WMON monitor is able to multitask with the application. If the application runs as a task, the monitor remains online and you can continue development while the program runs.
- Go to the word StartUserTask.
- Press F4=Run to start the task. Note that the host remains active while the HelloWorld program runs.
- Change the message. Go to HelloMessage, press F2=Edit to enter the definition, change the text, and press F3=Load to reload the word.
- Watch your new message in the target window. Holon has substituted the code in the running target program (if the word was loaded correctly).
Maybe you think that it is no problem to change a string in a running program, it's only data isn't it?
Thus let us change some real code in Tetris. Run Tetris as a task, but stop the HelloWorld task first:
- Execute StopUserProg (go to the word StopUserProg, press F4=Run).
- Start the Tetris task: go to TetrisTask and press F4.
- Play a little with Tetris in the target window.
- You may already have noted that the <up> key is not working. The <up> key is designed to rotate the pieces. Correct this 'bug' now on the running program.
- The cursor key functions are handled in the word FuncCases. Enter the definition of FuncCases and delete the backslash in front of the line that handles the "up" case (c = 72). The backslash turns the line into a comment. Therefore the "up" case has not been loaded.
- Load the word and try the <up> key in the target program.
- Change other commands and parts in the program. As you see, every change is immediately effective. In Holon you can instantly test whatever you have done.
Running the application in a separate PC
If you have a separate PC available, load and run RMON86.EXE on the second PC under DOS. Connect both PCs with a serial communication line. Change the target platform in the system setup. The monitor RMON86 uses the serial port COM1. On the host you can choose among the ports COM1..COM4.
This setup is ideal for the development of applications for embedded PCs.
http://holonforth.comCopyright (c) 1995-2003 Wolf Wejgaard, All Rights Reserved.