Forum Update - Announcement about May 10th, 2018 update and your password.

Tachyon NEON V5 (FAT32 and Ethernet Servers in 32kB EEPROM!)

124»

Comments

  • Peter JakackiPeter Jakacki Posts: 7,329
    edited June 15 Vote Up0Vote Down
    A lot of the Forth community hated the ANSI standard, but this is what happens when you throw a committee of experts together, especially corporate experts, they end up trying to be all things for everyone, producing a "Homer" car, and over engineering the "language" rather than delving in under the bonnet and overhauling it where it really mattered. Sadly too, the standard is almost PC-centric, not surprising considering who were on the committee, and it does not really address realtime control IMO.

    @Mike Green - I use BST and it works on the Prop tool, but I will check to see what I need to change to make it run with openspin. Failing that, I will get rid of local labels.

    Don't worry, I will just remove the local labels and you can try again in a few minutes.
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET
    TAQOZ documentation
    Brisbane, Australia
  • A lot of the Forth community hated the ANSI standard, but this is what happens when you throw a committee of experts together, especially corporate experts, they end up trying to be all things for everyone, producing a "Homer" car, and over engineering the "language" rather than delving in under the bonnet and overhauling it where it really mattered. Sadly too, the standard is almost PC-centric, not surprising considering who were on the committee, and it does not really address realtime control IMO.

    @Mike Green - I use BST and it works on the Prop tool, but I will check to see what I need to change to make it run with openspin. Failing that, I will get rid of local labels.

    Don't worry, I will just remove the local labels and you can try again in a few minutes.
    It's amazing the committee didn't patent it and charge $$$$ to buy the spec, and then more $$$$ to have it certified. Perhaps this happened a few years ago before they realised there was $$$$ in it ;(
  • @Peter Jakacki - Thanks, that did the trick ... openspin for compiling, proploader for downloading binaries, CoolTerm for downloading .FTH files with line delays

  • Never mind my previous post.

    After more research found that the decompile stops when you hit "ENTER".

    Thought it was the "any" key.

    Just a newb.


    Thanks for Tachyon
  • I'm having trouble getting EXTEND to fully install.
    v5r2 seems to be loaded OK but when I transfer EXTEND with Tera Term it goes fine until line "3045" where it just stops with a blinking cursor.

    All other numbered lines either have an "OK" or nothing.
  • Right said Fred, another cup of tea...... and then I tried it out with Prop Tool and TeraTerm (set to 12ms line delay).
    Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200
     Cold start - no user code - setting defaults
     Setting up dictionary
    --------------------------------------------------------------------------------
    ...
    ...
    ...
    ...
    ...  : +LCD : +KEY : +VGA ; ( precede line with \ space to comment and leave out modules )
    ...  TACHYON V5   Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200
    0100   ok
    0200
    0300   ok
    0400   ok
    0500   ok
    0600
    0800   ok
    0900   ok
    1000   ok
    1200   ok
    1300
    1400   ok
    1500   ok
    1600
    1700   ok
    1800
    1900   ok
    2100   ok
    2200   ok
    2300   ok
    2400   ok
    2500
    2600
    2700
    2800
    3000   ok
    3057   ok           COPY ROMS from $23C4 for 3848
    
       End of source code, 0000  errors found  Load time = 7.8
    Code bytes used = 9402
    
    CODE:$3E3C = 15420 bytes
    NAME:$588A = 7030 bytes
    DATA:$764B = 315 bytes
    FREE:      = 6734 bytes
     Data Stack (0)
    
     ok
    ...
    ...  ?BACKUP BACKUP  ok
    ...  REBOOT
    
      Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200
      *** MODULES ***  Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200
    3798: TOOLS            DEV TOOLS
    34F0: CHARLCD          BUFFERED CHARACTER LCD
    3388: ANYKEYS          ANYKEY KEYPAD 171005
    30E6: VGATEXT          VGA text driver (minimal) 180218-0000
    1982: EXTEND           Primary extensions to TACHYON V5.2 kernel  - 180322-1300
    
    AUTORUN BOOT 307E
    FREQ = 80.00MHZ
    *** INITS ***
    *** ROMS ***
    E01C: VGA32x15    848
    E37C: UART        464
    E55C: HSUART      560
    E79C: F32        1900
    *** I2C ***
    $40 I/O
    $A0 EEPROM
    $AE EEPROM
    $DE RTC
    I/O =  31 :UHUU 27 :UUU~ 23 :~~~~ 19 :~~~~ 15 :U~UU 11 :UUUU 7 :U~~~ 3 :DUDU
    INTERCOM:
    
    CODE:$3E3C = 15420 bytes
    NAME:$588A = 7030 bytes
    DATA:$764B = 315 bytes
    FREE:      = 6734 bytes
     Data Stack (0)
    Mon, 01 Jan 2001 00:00:00 UTC
    --------------------------------------------------------------------------------
    ...
    
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET
    TAQOZ documentation
    Brisbane, Australia
  • There is still something goofy about my setup... I just don't know what.

    I setup a completely new PC dual booted: Win 7 and Ubuntu 18.04.
    I'm using Prop Tool 1.3.2 and TeraTerm 4.9.8 in Win 7 for all of this.

    I have teraterm set to 115200, 8,n,1 HW flow OFF.
    12ms LINE delay

    To load EXTEND, I am using the "Send File" option in TeraTerm.

    I'm using the latest versions of Tachyon v5r2 and EXTEND, both redownloaded today to be sure I have clean files.

    Everything seems to work just dandy until it stops at line 3045.


    If there was a terminal setting wrong or the speed was wrong, I wouldn't even get this far.

    Is there something goofy with the flash on my board?
    Is there static electricity messing things up? (probaby not. The issue is way too consistant)
    Is there a process i should be doing after I transfer Tachyon to the board? Some sort of cleanup routine or something?
    Maybe I could cut down EXTEND to be smaller and contain only what I need right now, which is servo/PWM stuff.
  • Its like there's some kind of buffer that overflowed and there just isn't anymore data to send at that point.
    I'm looking now, but are there any buffer size, cut&paste limits that TeraTerm has?
  • Peter JakackiPeter Jakacki Posts: 7,329
    edited June 17 Vote Up0Vote Down
    There have been times when I have had such strange errors yet the same code would work fine on other boards. It turns out that there was a batch of Prop chips that did not have the same kind of testing as others and there were areas in hub memory which were faulty. Perhaps this is the case here.

    You can increase your line delay to 20ms just to double check but it shouldn't need it. I use FT232R chips for USB serial and I check the windows settings which were still at the default for those chips including 16ms latency (advanced in device manager). I used WINXP running in VirtualBox but I do have a WIN7 machine I will double check on.

    Make sure your editor is not converting CRLF line endings to LF though but if you are using the original file that shouldn't be the case. I didn't have the binary option ticked in TeraTerm either btw. I tried both pasting and sending the file.
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET
    TAQOZ documentation
    Brisbane, Australia
  • If there seems to be strange errors that occur during load then run this little memory test to see if it can spot any defective hub memory locations.
    : MEMTEST
    	HERE 16 + 4 ALIGN $8000 OVER -
    	SWAP FROM
    	FOR <CR> I .WORD SPACE I C@
    	  8 FOR I MASK J C! J C@ I MASK <>
    	   IF CR ." ERROR: " J .WORD SPACE I . CR THEN
    	  NEXT
    	   I C!
    	NEXT
    	;
    
    
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET
    TAQOZ documentation
    Brisbane, Australia
  • thej wrote: »
    There is still something goofy about my setup... I just don't know what.

    I setup a completely new PC dual booted: Win 7 and Ubuntu 18.04.
    I'm using Prop Tool 1.3.2 and TeraTerm 4.9.8 in Win 7 for all of this.

    I have teraterm set to 115200, 8,n,1 HW flow OFF.
    12ms LINE delay

    To load EXTEND, I am using the "Send File" option in TeraTerm.

    I'm using the latest versions of Tachyon v5r2 and EXTEND, both redownloaded today to be sure I have clean files.

    Everything seems to work just dandy until it stops at line 3045.


    If there was a terminal setting wrong or the speed was wrong, I wouldn't even get this far.

    Is there something goofy with the flash on my board?
    Is there static electricity messing things up? (probaby not. The issue is way too consistant)
    Is there a process i should be doing after I transfer Tachyon to the board? Some sort of cleanup routine or something?
    Maybe I could cut down EXTEND to be smaller and contain only what I need right now, which is servo/PWM stuff.

    did you try both ?
    "Send File" and Cut&Paste ?
    for Cut&Paste there is a seperate line delay setting !! in TeraTerm

    next a thing to try - do cut & paste in chunks -
    you can comment out the line TACHYON V5 ... then you get a more verbous output
    which has helped me a few times.
  • OK. I did the memory test and it looks good! It went all the way to 7FFF and ended with an OK.

    I Copy & Pasted the file in chunks and got right to the end with no errors but it just stayed at the line numbers with a cursor.
    No summaries of any kind, so i sent a Break to reboot it.
    Upon rebooting, again, no summaries of any kind. No ROM or Modules lists.

    I listed the WORDS to see if I could find anything from EXTEND and I found them!

    My plan is to work with a servo first, so i will test that (probably not today though) and I will see how that goes :-)
  • Peter, how does Tachyon (P1 or P2) compile words?

    If I write a word that uses numerous other words, it will still be executing in a threaded fashion right?
    Is it possible to compile that word to an all assembly blob?
    Some Forths do this but does Tachyon? And if not, is it something you are planning to add?

    What is the threading model used in Tachyon by the way?

    Jason
  • Peter JakackiPeter Jakacki Posts: 7,329
    edited July 4 Vote Up0Vote Down
    @thej - Actually I'm never sure what threading model describes it since it is a mix of address pointers, both machine code, or further threaded code, and also encoded operations such as conditional branches etc. Those encoded wordcodes also include ones which have a machine code instruction field for common 2 parameter to 1 result such as AND, +, etc.

    But right from the beginning I set out to avoid inline assembly code which of course for the P1 can only work as LMM or copied to cog memory anyway. However besides making it fast enough so that it could bit-bash at sub-microsecond speeds (400ns @80MHz), I also included instructions and cog modules for many common I/O operations such as SPI etc so that there is never any need for special assembly routines. In fact it is possible to bit-bash WS2812 timing in high level code.

    Also to support inline assembly code, even if it is LMM or a small cog module, then an assembler is needed which would add quite a few kB to the code base.

    Don't forget that Tachyon has a HELP word, which decompiles the code but may also include some additional features as it is refined.

    Create a simple demo
    ...  : DEMO 10 FOR CR I . SPACE I I * . NEXT ; 
    
    Then type HELP DEMO
    511E 4F26 2 DEMO
    
    4F26: 10
    4F28: FOR
    4F2A: CR
    4F2C: I
    4F2E: .
    4F30: SPACE
    4F32: I
    4F34: I
    4F36: *
    4F38: .
    4F3A: NEXT
    4F3C: EXIT
    
    Looking at the wordcode for 10 we can see that it has the literal embedded with the msb of the word set since addresses from $8000 are unusable anyway, so this allows us to embed a 15-bit literal into a 16-bit instruction.
    ...  $4F26 W@ .WORD 800A ok
    

    Actually, I can see where I can add some improvements to HELP which I may just do right now..
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET
    TAQOZ documentation
    Brisbane, Australia
  • Never mind my previous post.

    After more research found that the decompile stops when you hit "ENTER".

    Thought it was the "any" key.

    Just a newb.


    Thanks for Tachyon

    Of course you need keyboard with an "anykey".
    Press any key to continue or any other to abort. :smile:
    --
    Reinhardt
  • The HELP word has been updated to autostop at the end of a definition by relying upon the CFA of the next header before the current header. This works for anything compiled from EXTEND onwards but not for the kernel so this will still pause and continue. HELP now also reports a GOTO <name> when the lsb jump bit is set.
    HELP CountDown
    5E5E 2AF2 2 CountDown
    
    2AF2: 27F6  timers
    2AF4: 00B1  W@
    2AF6: 0014  DUP
    2AF8: 80FF  $00FF
    2AFA: 00A6  >
    2AFC: 7F21  IF 2B40
    2AFE: 0014  DUP
    2B00: 03CC  CELL+
    2B02: 00B1  W@
    2B04: 8001  1
    2B06: 0099  =
    2B08: 7F03  IF 2B10
    2B0A: 0014  DUP
    2B0C: 1BF2  ++
    2B0E: 2B39  GOTO 2B38
    2B10: 0014  DUP
    2B12: 00B3  @
    2B14: 0013  ?DUP
    2B16: 7F10  IF 2B38
    2B18: 0063  1-
    2B1A: 0014  DUP
    2B1C: 0058  3RD
    2B1E: 00C1  !
    2B20: 009B  0=
    2B22: 7F0A  IF 2B38
    2B24: 0014  DUP
    2B26: 03CC  CELL+
    2B28: 00B1  W@
    2B2A: 0014  DUP
    2B2C: 8004  4
    2B2E: 7C51  7C51
    2B30: 7F02  IF 2B36
    2B32: 0150  CALL
    2B34: 2B39  GOTO 2B38
    2B36: 0052  DROP
    2B38: 8006  6
    2B3A: 7D01  7D01
    2B3C: 00B1  W@
    2B3E: 2AF7  GOTO 2AF6
    2B40: 0052  DROP
    2B42: 0047  EXIT
    
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET
    TAQOZ documentation
    Brisbane, Australia
Sign In or Register to comment.