Shop OBEX P1 Docs P2 Docs Learn Events
Propforth 3.4 includes Prop Jupiter ACE — Parallax Forums

Propforth 3.4 includes Prop Jupiter ACE

prof_brainoprof_braino Posts: 4,313
edited 2010-10-10 18:44 in Propeller 1
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
«1

Comments

  • Brian RileyBrian Riley Posts: 626
    edited 2010-09-05 14:22
    On webpage http://code.google.com/p/propforth/wiki/PropForth It says
    PropForth was developed on a Propeller demo board, 80Mhz, 512k bit (64k 8 bit EEPROM). Should be easily ported to just about any other Propeller setup.

    What rev "Demo" board has a 64KB EEPROM? I thought all the "Demo" boards had 32K and the "proto" boards had 64K

    Cheers ... BBR
  • caskazcaskaz Posts: 957
    edited 2010-09-05 17:17
    Hi prof_braino.

    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?
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-05 18:01
    On webpage http://code.google.com/p/propforth/wiki/PropForth It says

    What rev "Demo" board has a 64KB EEPROM? I thought all the "Demo" boards had 32K and the "proto" boards had 64K

    Cheers ... BBR

    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.
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-05 19:22
    caskaz wrote: »
    Hi prof_braino.

    A. Is it correct below?
    cog3(VGA terminal)
    cog4(VGA terminal)
    cog5(serial monitor)
    cog6(interpreter)

    B. I want to TV-monitor. Impossible?
    C. Can I disable VGA/keyboard when not use them?

    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.
  • drohne235drohne235 Posts: 25
    edited 2010-09-06 23:12
    A very nice work, I have just tested on my demoboard. :)

    One problem: without interface to the host (cable removed) restarts the forth constantly.
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-07 06:31
    drohne235 wrote: »
    A very nice work, I have just tested on my demoboard. :)

    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
  • caskazcaskaz Posts: 957
    edited 2010-09-07 16:45
    Hi prof_braino.
    I installed standard propforth3.4.

    I checked below:
    fl
    
    variable buffer 1fc allot
    wvariable buff_ptr
    wvariable x
    
    Error message is "3D68 D88 Out of memory".
    Value"3D68" is different to propforth3.2.

    Not error below:
    fl
    
    variable buffer 1fc allot
    wvariable buff_ptr
    
  • caskazcaskaz Posts: 957
    edited 2010-09-08 04:27
    Hi prof_braino, drohne235.
    without interface to the host (cable removed) restarts the forth constantly.
    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.
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-09 06:55
    caskaz wrote: »
    Hi standard propforth3.4.
    fl
    
    variable buffer 1fc allot
    wvariable buff_ptr
    wvariable x
    
    Error "3D68 D88 Out of memory".
    Value"3D68" is different to propforth3.2.

    Not error below:
    fl
    
    variable buffer 1fc allot
    wvariable buff_ptr
    

    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
  • caskazcaskaz Posts: 957
    edited 2010-09-09 07:13
    Hi prof_braino.

    I tried "free". But same error "3D68 D88 Out of memory".


    It seems "free" dispalay free size.
    free
    4170 bytes free - A1 cog longs free
    
  • caskazcaskaz Posts: 957
    edited 2010-09-09 16:50
    Hi prof?braino.

    I have questions about serial.f.
     fl
    
    hex
    
    \
    \ the assembler code for the serial driver
    \
    1BC wconstant c_srXmtEnd
    1A7 wconstant c_srXmt
    198 wconstant c_srRecBuf
    17E wconstant c_srRec
    17A wconstant v_srXM
    179 wconstant v_srXOP
    176 wconstant v_srRBMask
    175 wconstant v_srRB
    174 wconstant v_srCP
    173 wconstant v_srSPP
    16F wconstant v_srRM
    16E wconstant v_srBT
    16D wconstant v_slT3
    16C wconstant v_slT2
    16B wconstant v_slT1
    lockdict variable def_serial 01BC l, 016B 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, 0 l,
    5CFEC563 l,
    623EDFF2 l,
    5C54017E l,
    A0FEE209 l,
    A0BEE5F1 l,
    80BEE56E l,
    5CFEC563 l,
    A0BED772 l,
    84BED7F1 l,
    C17ED600 l,
    5C4C0184 l,
    613EDFF2 l,
    30FEE001 l,
    E4FEE383 l,
    5C4C017E l,
    28FEE017 l,
    60FEE0FF l,
    667EE003 l,
    042AE174 l,
    5C68017E l,
    80BEEF75 l,
    003EE177 l,
    84BEEF75 l,
    80FEEE01 l,
    60BEEF76 l,
    5C7C017E l,
    5CFEC563 l,
    863EEF78 l,
    5C680198 l,
    A0BED773 l,
    06BED96B l,
    0496DB6C l,
    6256DB00 l,
    5C680198 l,
    80BEF175 l,
    00BEDB78 l,
    84BEF175 l,
    80FEF001 l,
    043EDB6C l,
    60BEF176 l,
    5C7C0198 l,
    5CFEC563 l,
    04BEF779 l,
    627EF700 l,
    5C5401A7 l,
    A0FED700 l,
    043ED779 l,
    68FEF700 l,
    2CFEF602 l,
    68FEF601 l,
    A0FEF80B l,
    A0BEFBF1 l,
    29FEF601 l,
    70BFE97A l,
    80BEFB6E l,
    5CFEC563 l,
    A0BED77D l,
    84BED7F1 l,
    C17ED600 l,
    5C4C01B5 l,
    E4FEF9B2 l,
    5C7C01A7 l,
    
    freedict
    \
    \ setbaud ( n -- ) sets the baud rate
    : setbaud clkfreq swap u/ v_srBT COG! ;
    \
    
    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?
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-11 00:04
    caskaz wrote: »

    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?
    it late, but i will try to answer.

    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.
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-12 10:29
    caskaz wrote: »
    fl
    
    variable buffer 1fc allot
    wvariable buff_ptr
    wvariable x
    
    Error message is "3D68 D88 Out of memory".

    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.
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-12 10:39
    caskaz wrote: »
    Hi prof_braino, drohne235.


    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.

    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.
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-12 10:46
    There was a bug in the HiResVGA.f file wherein the word to set the foreground color set the background color instead. Thanks to all the people that reported this.

    Please find the v3.4 patch later today.

    http://propforth.googlecode.com/files/PropForth%20v3.4%20Patch20100912-1259.zip
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-12 11:25
    caskaz wrote: »
    I want to TV-monitor. Impossible?

    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/
  • caskazcaskaz Posts: 957
    edited 2010-09-20 00:24
    Hi.

    I have question.
    : test
    a 0 do
    key dup . 30 = if ." 0" else " not 0" then
    loop
    ;
    
    When load, error"UNDEFINED WORD" occur.
    What's wrong?
  • kuronekokuroneko Posts: 3,623
    edited 2010-09-20 02:15
    : test
    a 0 do
    key dup . 30 = if ." 0" else " not 0" then
    loop
    ;
    

    There is no such word as " (not normally that is), I believe you want ."
  • caskazcaskaz Posts: 957
    edited 2010-09-20 02:34
    Thanks kuroneko.
    Sometimes I can't find out such a simple mistakes.
  • caskazcaskaz Posts: 957
    edited 2010-09-21 05:25
    Hi prof_braino.

    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.
    st?
    ST: 00000000 00000004 00000000
    Cog6 ok
    
    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.
    st?
    ST: 00000000
    Cog6 ok
    

    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?
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-21 06:49
    caskaz wrote: »
    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

    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.

    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.
  • caskazcaskaz Posts: 957
    edited 2010-09-21 07:33
    Thanks prof_braino.

    I deleted comments(from "/ f" to "/ z").
    No datas on stack after loading demo_12x12_font.f.
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-21 08:22
    caskaz wrote: »
    Thanks prof_braino.

    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.
  • caskazcaskaz Posts: 957
    edited 2010-09-24 22:58
    Hi prof_braino.

    I checked about word ALLOT.

    No error below;
    fl
    
    variable buffer 88 allot
    wvariable buff_ptr
    wvariable x
    

    But in case of "variable buffer 89 allot".
    Error "3D68 D88 Out of memory".


    No error below;
    fl
    
    lockdict variable buffer a5 allot freedict
    wvariable buff_ptr
    wvariable x
    

    But in case of "lockdict variable buffer a6 allot freedict".
    Error "3E1C D88 Out of memory".
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-25 06:23
    caskaz wrote: »
    ALLOT.
    fl
    
    variable buffer 89 allot
    
    cannot ALLOT so many bytes when loading text with fastload ('fl' word)

    try doing the ALLOT before or after the fl word. i.e. two separate steps?
    See faq and page in doc for fl.
  • caskazcaskaz Posts: 957
    edited 2010-09-27 06:58
    Hi.

    I did viewer for SDSC-card to learn FAT file.
    640 x 480 - 36K
    640 x 480 - 48K
    640 x 480 - 48K
    640 x 480 - 48K
    640 x 480 - 49K
    640 x 480 - 48K
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-28 17:45
    caskaz wrote: »
    I did viewer for SDSC-card to learn FAT file.

    You are the coolest! Can I post your code on the propforth site?
  • caskazcaskaz Posts: 957
    edited 2010-09-28 19:58
    Hi prof_braino.

    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?
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-09-29 19:50
    caskaz wrote: »
    Hi prof_braino.

    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.
  • caskazcaskaz Posts: 957
    edited 2010-10-04 05:50
    Hi.
    I changed sd_viewer to be able to read SDHC.
    I tested SDHC(4GB) and SDSC(2GB,512MB,256MB).
    640 x 480 - 61K
    640 x 480 - 60K
Sign In or Register to comment.