Propforth 3.4 includes Prop Jupiter ACE
prof_braino
Posts: 4,313
Please notice
Propforth 3.4 is no longer the current release
Propforth 3.5 is available for download
http://code.google.com/p/propforth/downloads/list
Please move propforth duiscussion to the new thread
http://forums.parallax.com/showthread.php?t=126285
http://code.google.com/p/propforth/downloads/list
Included is Hi-Resolution VGA support, which is a prototype for a Prop Jupiter ACE object.
http://code.google.com/p/propforth/wiki/HiResVGAJupiterACE
This is an extension to the propforth kernel allowing a prop demo board or similar (VGA and Keyboard pin-out) to perform as a stand-alone forth-based development system a-la the Jupiter ACE. See Wiki for Jupiter ACE. Note that Prop Jupiter ACE does not support original Jupiter ACE Z80 code
While Prop Jupiter ACE is targeted primarily for multi-prop solutions (e.g. C3, Hive, UltraSpark 40, etc), the VGA support still leaves about 4k free for further development using a single prop.
The default serial terminal is still active but uses cog 5 instead of cog 6
The VGA terminal displays two active cogs by default, cog 3 and cog 4. Type ALT+TAB at the keyboard switched between cogs. Other cogs can be accessed thru any terminal window at any time using the documented words. (Please ask about the documentation if you read it, I don't get much mail.)
Folks (mostly me and Sal) have noted that it is incredibly useful and cool to be able to monitor one cog using another in realtime from the forth command line.
Please note that while the Propforth 3.4 kernel is a stable release, the Jupiter ACE / Hi Res VGA extensions are still bleeding edge Alpha release. We are hoping interested users will play with it and provide feedback
Propforth 3.4 is no longer the current release
Propforth 3.5 is available for download
http://code.google.com/p/propforth/downloads/list
Please move propforth duiscussion to the new thread
http://forums.parallax.com/showthread.php?t=126285
http://code.google.com/p/propforth/downloads/list
Included is Hi-Resolution VGA support, which is a prototype for a Prop Jupiter ACE object.
http://code.google.com/p/propforth/wiki/HiResVGAJupiterACE
This is an extension to the propforth kernel allowing a prop demo board or similar (VGA and Keyboard pin-out) to perform as a stand-alone forth-based development system a-la the Jupiter ACE. See Wiki for Jupiter ACE. Note that Prop Jupiter ACE does not support original Jupiter ACE Z80 code
While Prop Jupiter ACE is targeted primarily for multi-prop solutions (e.g. C3, Hive, UltraSpark 40, etc), the VGA support still leaves about 4k free for further development using a single prop.
The default serial terminal is still active but uses cog 5 instead of cog 6
The VGA terminal displays two active cogs by default, cog 3 and cog 4. Type ALT+TAB at the keyboard switched between cogs. Other cogs can be accessed thru any terminal window at any time using the documented words. (Please ask about the documentation if you read it, I don't get much mail.)
Folks (mostly me and Sal) have noted that it is incredibly useful and cool to be able to monitor one cog using another in realtime from the forth command line.
Please note that while the Propforth 3.4 kernel is a stable release, the Jupiter ACE / Hi Res VGA extensions are still bleeding edge Alpha release. We are hoping interested users will play with it and provide feedback
Comments
What rev "Demo" board has a 64KB EEPROM? I thought all the "Demo" boards had 32K and the "proto" boards had 64K
Cheers ... BBR
Is it correct below?
cog3(VGA terminal)
cog4(VGA terminal)
cog5(serial monitor)
cog6(interpreter)
I want to TV-monitor. Impossible?
Can I disable VGA/keyboard when not use them?
This was a boo-boo that has been corrected. Thanks for pointing this out.
Back story: Sal has been using what is called a proto board (Item code 32212) since early on and didn't realize there was a different animal called "demo board" (i.e. Item code 32100). The 64k / 32k eeprom difference is the reason v2.4 didn't work for some of us. Sal now has a demo board and uses both the board for version testing.
A. Mostly
B. Possible, not implemented in this release.
C. It can be done, issue is what method and result do you wish.
A. The VGA screen is top 128 characters by 32 lines for cog 3, and bottom 128 characters by 32 lines for cog 4. BUT you can have ANY cog in either window. (I didn't check neat stuff like having cog 7 displayed in all windows, that's on my testing list)
Also, it is possible to divide the screen further to display more cogs and / or different stuff, but we haven't done that yet since no need has arisen.
Cog 7 is still serial monitor, but it provides communication to cog 5 by default. But the serial monitor can communicate with any cog.
Cog 0 probably still is running spin; cogs 1, 2, and 6 are doing whatever cogs do before they start executing a program.
C. The VGA support is a built-in assembly code dictionary extension. If you don't want the VGA support, just use the standard propforth 3.4 kernel, as the VGA support takes up most of the memory. If you want the VGA support present but want it to stop executing... I'm sure there is a way to do that, but the memory is still occupied by the driver (for now). It may be possible to make it reside in a single cog instead of main memory (like LogicAnalyser.f) but that is not yet the case.
B. Any TV support would be after the LOW RES VGA support is finished (maybe next release). Please note - Sal did not think anybody wants TV anymore, so TV is not on the to-do list. [The characters have to be too big or else they become unreadable]. EDIT - This may be back on the list 20100912
BUT, as you see, the Hi-Res VGA file [VGA_HiRes_Text.spin] is the same file from the OBEX that is used for spin. Implementing TV support could be done the same way using the TV display driver from the OBEX. One would compare propforth.spin with PropForth_hiresvga.spin and use it as a guide to create propforth_tv.spin for example. If you don't want to wait, I can try to get you started on TV support if you are interested in doing it yourself.
Possibly, the solution you want will be found in the multi-prop version of propforth. This will have one prop dedicated to running the display, and leave the other prop(s) open for user applications. Apart from the VGA, most of the driver-type support can be loaded when needed and unloaded immediately afterward, (as done in colorforth). This method is planned to be implemented after we get external memory, which I am working on at present.
One problem: without interface to the host (cable removed) restarts the forth constantly.
Thanks for pointing this out
Problem is verified and Issue 13 is open
http://code.google.com/p/propforth/issues/detail?id=13
I installed standard propforth3.4.
I checked below: Error message is "3D68 D88 Out of memory".
Value"3D68" is different to propforth3.2.
Not error below:
I think it is FTDI's reset problem.
When board try to communicate to unplug, curcuit around FTDI cause reset.
I cannot search its thread.
This is well known problem. Afew board has this problem.
did you try "free" before and after the declarations? The kernal has been getting larger to allow vga support and standard words.
Sal and I talk will about this on our conference call Sunday morning
I tried "free". But same error "3D68 D88 Out of memory".
It seems "free" dispalay free size.
I have questions about serial.f. What is "0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l, 0 l," "5CFEC563 l,"etc?
"{" and "} are multi-comment word? These are define inside propforth.spin?
these are byte values that make the assemble code for serial driver. Sal writes in forth, then optimizes in assembler. He learns the assembler from the working forth then steals the assembly code. This way the serial driver only exists in the cog that uses it and does not take any main memory, except for the forth word that is the entry point.
So these are assembler bytes (as determined from the commented out forth code) being entered into the cog's memory as longs.
This deserves a more thorough explanation and tutorial, but we haven't yet in favor of the vga support. The dis/assembler & logic analyzer tutorials are next after the Hive/C3/JupiterACE work.
EDIT - Sorry, I forgot to talk to Sal about this during our call. PM me if you still have questions.
The issue is using ALLOT with the fl word. Please see
[url] http://code.google.com/p/propforth/wiki/flfastloadword[/url]
for whats going on and how to get it going
The part on the ALLOT word is down at the bottom.
There was discussion on the old forum with a solution that I will try to find. EDIT - found it, entered the info in the issue report, I don't know if we can do something about it.
I unplugged my USB cable from the PC, and the Demo Board started continuously resetting. I plugged the cable into an un-powered USB hub (TARGUS ACH74 - $1.99 office max) and it stopped. In the case of the Demo Board, I will simply plug the usb cable into the un-powered hub if I have an experiment that requires removing the demo board from the test bench PC.
Please find the v3.4 patch later today.
http://propforth.googlecode.com/files/PropForth%20v3.4%20Patch20100912-1259.zip
Sal started work on the Low Res VGA support and was surprised to find it very useful. He's got two screens as in HiRes VGA, but instead of top and bottom, they toggle the display from one cog to the next. It uses much less memory than HiRes, and uses the same control words. He finds it handy to display status and values in real time as a diagnostic while developing. He now uses the LowResVGA as his standard development package.
The TV support may have similar application. Sal says it will be a little tricky, but he will work on it after LowResVGA is complete. He will likely use Chip Gracey's TV driver http://obex.parallax.com/objects/65/
I have question.
When load, error"UNDEFINED WORD" occur.
What's wrong?
There is no such word as " (not normally that is), I believe you want ."
Sometimes I can't find out such a simple mistakes.
I made demos for LCD(YHY024006A).
I found out strange.
demo_8x8_font.f and demo_12x12_font.f works fine.
But there are datas on stack when loading of demo_12x12_font.f complete. I used "Send file" for TeraTerm. Same as using copy/paste.
I copy/paste only font's part for demo_12x12_font.f( from fl to end of font)
There are 3 datas on stack.
I copy/paste from fl to character"f".
No data on stack.
I copy/paste from fl to character"g".
There are 1 datas on stack.
Next I copy/paste from fl to character"f" and I copy/paste line of character"f"
No data on stack.
Tranmitting for many datas occur error?
Here is my guess (new job, no time to experiment)
Issue looks due to \ comment removes CR-LR from text stream
0. The text is very long for each character definition in the 12x12 font
1. The \ comment at the end of the first line of each block of font definition causes the input buffer to fill twice as many character before encountering CR-LF line termination.
2. processing long line is slightly longer than speed of processing receive buffer.
3. time builds until buffer processing time is exceeded
4. after 'f' buffer starts to lose data.
To test this, try adding more \ comments before 'f'; for example put \ 6 as comment after data for character 6. If error happens earlier, this may be the cause; then try putting blank line after all \ comments (supposed to be recommended in documentation, but I might have missed it or been unclear). If guess is correct, error no longer occurs. Otherwise, I will bring it up next meeting.
I deleted comments(from "/ f" to "/ z").
No datas on stack after loading demo_12x12_font.f.
I'm glad it worked. Sorry about the loss of your comments, they were very helpful in reading your code. If the "blank line after in-line \ comments" solution is unacceptable, I would appreciate suggestions; I couldn't think of any alternatives.
Unfortunately, having the \ comment NOT consume the CR-LR took too much code space in the kernel and too much RAM; two bytes per line adds up quickly in large files such as propforthpart1.f.
I checked about word ALLOT.
No error below;
But in case of "variable buffer 89 allot".
Error "3D68 D88 Out of memory".
No error below;
But in case of "lockdict variable buffer a6 allot freedict".
Error "3E1C D88 Out of memory".
try doing the ALLOT before or after the fl word. i.e. two separate steps?
See faq and page in doc for fl.
I did viewer for SDSC-card to learn FAT file.
You are the coolest! Can I post your code on the propforth site?
Of course yes.
But I try to view for SDHC.
I'm going to buy SDHC on weekend.
Do you try sd_viewer?
I did try only SDSC(2G,512M,256M).
It might include bugs.
I'm going to make translation (not english) for explanation about ProfForth's word.
And I want to be up to my HP it after completed.
Do you and Salsanci give me permission?
Thanks, I'll be looking at your code this weekend.
Didn't try SD viewer yet, but I just finished building my Hive hardware which has SD slot, so I'll be testing it.
http://hive-project.de/
Also, your work on the LCD display inspired me, I am starting work on using a digital picture frame as display and other resources for prop boards.
http://forums.parallax.com/showthread.php?t=125968
Several sharp people are interested
Please translate the PropForth documentation. You will find many errors, please send them to me and I will correct them. Also, you will notice some necessary documentation is incomplete, notify me of questions and I will get it fixed. The goal is to distribute information and increase the conversation.
Send me a link to you HP and I will reference you from the propforth page, there are some users that will be interested.
I changed sd_viewer to be able to read SDHC.
I tested SDHC(4GB) and SDSC(2GB,512MB,256MB).