Shop OBEX P1 Docs P2 Docs Learn Events
Tachyon NEON V5 (FAT32 and Ethernet Servers in 32kB EEPROM!) - Page 3 — Parallax Forums

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

1356725

Comments

  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2018-05-20 06:35
    @lmclaren - you don't need to load in that example as it is for an older version, all that stuff is already loaded in NEON (as is loads of other stuff)
    PING ( trig echo -- us )
    DISTANCE ( trig echo -- distance.mm )
    
  • Thanks Peter,

    I was using Ping as a basis of a new program not as is.

    I was trying to understand and create a new program.

    Are there replacements for the words that have changed?

    thank you again.


  • @lmclaren - just have a look at the EXTEND source in the V5 Dropbox folder. V5 updated some of the methods but essentially they're the same
    pub PING ( trig echo -- us )
    	--- setup WAITPxx mask
    	MASK 4 COG!
    	--- 10us trigger (dummy cycles)
    	DUP HIGH 10 us LOW
    	--- detect high period
    	WAITHI WAITLO
    	--- calculate high period
    	1 COG@ 2 COG@ - ABS
    	--- convert cycles to us
    	CLKMHZ U/
    	;
    
    --- return with the range in mm using trig pin and echo pin
    pub DISTANCE ( trig echo -- distance.mm )	PING 170145 1M */  ;
    
    
  • Thank you Peter,

    I had spent some time trying to convert and had guessed the WAITHI and WAITLO but did not understand the COG@ enough to work it out.


    best regards
  • MJBMJB Posts: 1,235
    lmclaren wrote: »
    Thank you Peter,

    I had spent some time trying to convert and had guessed the WAITHI and WAITLO but did not understand the COG@ enough to work it out.


    best regards

    moving the COGREGs to start from address 1 as Peter did recently
    made it possible to get rid of COGREG! and just use COG!
    - and also COG@ for reading.

    I am following Peter since Tachyon 1.x or even 0.y - feels very long ago
    and dozens maybe a hundred times my code did not run anymore
    because Peter just the other day did a little tweaking
    or a complete redesign ...
    Reading / searching the source usually shows it quickly.
    I keep all the old Tachyon versions around so I can easily compare what happened ...

    but look at it - what great outcome it is

    When Peter fully switches to P2-only mode times might get a bit slower for P1-Tachyon ...
    and Tachyon will 'mature'.
  • Hi there,

    with my attempts to upgrade to v5r2 I will give some feedback:

    - I appreciate that OFF ANYCASE has been removed

    - I saw there is a .git directory in the dropbox - yay - this will increase our fun a lot in future work - definitely a right decision Peter.

    - trying to upgrade my iot5500 module to v5r2 had difficulties with lsio . I definitely would remove lsio from the boot sequence - it toggles outputs and this can disturb sensible periphereal i/o. It is a really nice tool to investigate unnknown hardware, but in my opinion it has nothing to do in a standard boot sequence

    - COMPACT isn't necessary anymore. because the "dictionary full" error occured I replaced it by RECLAIM to get everything packed into the iot5500 .

    - With these minor changes the build advanced since EASYNET which I could not yet successfully load. Here is the output
    ..  IFDEF W5500                                                                    
    ...                                                                                 
    ...  TACHYON V5   Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200      
    0100   ok  ???   ok                                                                 
    0133  ??? in GATEWAY at @gateway                                                    
    0134  ??? in SUBNET at @subnet   �                                                  
    0135  ??? in MAC at @mac       �                                                    
    0136  ??? in SIP at @sip �                                                          
    0200  ???  ???   ok      �                                                          
    0264  ??? in sCONNECTED? at &CON                                                    
                                     ����in sCONNECTED? at &CON                        
    0265  ??? in sDISCON? at &DISCON                             �                      
    0271  ??? in PORT! at @ports     �                                                  
    0300   ok                    �                                                      
    0304  ??? in WAITSEND at &SENDOK                                                    
    0308  ??? in WAITSEND at &SENDOK �                                                  
    0320  ??? in LANSEND at &SENDOK  �                                                  
    0388  ??? in WCOLD at myGW      �                                                   
                               ����in WCOLD at @gateway                                
    0389  ??? in WCOLD at myIP                           �                              
                               ����in WCOLD at @sip                                    
    0390  ??? in WCOLD at mySN                       �                                  
                               ����in WCOLD at @subnet                                 
    0391  ??? in WCOLD at @mac                          �                               
    0392  ??? in WCOLD at @ports                                                        
    0393  ??? in WCOLD at @wcold �                                                      
    0400                         �                                                      
    0408  ??? in !WIZIP at @wcold                                                       
    0409  ??? in !WIZIP at @gateway                                                     
    0410  ??? in !WIZIP at @subnet  �                                                   
    0411  ??? in !WIZIP at @sip    �                                                    
    0412  ??? in !WIZIP at @mac �                                                       
    0413  ??? in !WIZIP at @ports                                                       
    0585  ??? in BLKSEND at BUFSIZ                                                      
    0600                           �                                                    
    0700                                                                                
    0729  ??? in ?TELNET at TELNET                                                      
    0800   ok                      �                                                    
    0845  ??? in !EASYNET at TELNET                                                     
    0882                            �                                                   
                                                                                        
       End of source code, 0070  errors found  Load time = 44.5                         
    Code bytes used = 2468                                                              
                                                                                        
    CODE:$51FE = 20478 bytes                                                            
    NAME:$5644 = 7612 bytes                                                             
    DATA:$786F = 863 bytes                                                              
    FREE:      = 1094 bytes                                                             
     Data Stack (0)                                                                     
                                                                                        
     ok                                                                                 
    ...                                                                                 
    ...  ---                                                                            
    ...  errors W@ NOT IF ' ifup +INIT THEN  ok                                         
    ...                                                                                 
    ...  ?BACKUP BACKUP  ok                                                             
    ...                                                                                 
    ...  ---                                                                            
    ...  &13.12.15.14 WIZPINS ( P1372 )  ok                                             
    ...  \                                                                              
    ...  &17.1.19.18 WIZPINS  ok                                                        
    ...  BACKUP BACKUP  ok
    

    I will investigate this furthermore ...
  • Hooray, EASYNET.FTH is now downloaded on the iot5500.

    There was just a '==' replace with ':=' in EASYNET.FTH
    ...  REBOOT                                                                                                                   
                                                                                                                                  
      Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200                                                                
      *** MODULES ***  Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200                                               
    4EF6: EASYNET          WIZNET NETWORK SERVERS 180319.0000                                                                     
    485A: W5500            WIZNET W5500 driver 180319.1100                                                                        
    3772: EASYFILE         SDHC card + FAT32 Virtual Memory File System V1.2 171024-0000                                          
    30E6: TOOLS            DEV TOOLS                                                                                              
    1980: EXTEND           Primary extensions to TACHYON V5.2 kernel  - 180322-1300                                               
                                                                                                                                  
    AUTORUN BOOT 307E                                                                                                             
    FREQ = 96.00MHZ                                                                                                               
    *** INITS ***                                                                                                                 
    MOUNT 3DB0                                                                                                                    
    ifup 520C                                                                                                                     
    *** ROMS ***                                                                                                                  
    E01C: VGA32x15    848                                                                                                         
    E37C: UART        464                                                                                                         
    E55C: HSUART      560                                                                                                         
    E79C: F32        1900                                                                                                         
    *** I2C ***                                                                                                                   
    $A0 EEPROM                                                                                                                    
    INTERCOM:                                                                                                                     
                                                                                                                                  
    CODE:$5274 = 20596 bytes                                                                                                      
    NAME:$5584 = 7804 bytes                                                                                                       
    DATA:$786F = 863 bytes                                                                                                        
    FREE:      = 784 bytes                                                                                                        
     Data Stack (0)                                                                                                               
    Mon, 01 Jan 2001 00:00:00 UTC                                                                                                 
    CARD: SL32G SD03.80 #E53D.6925 2017/3 !C0FF.80C3 1,403us                                                                      
    FAT: #3565.6433          NO NAME     FAT32   31,910,789,120 bytes (32kB clusters)                                             
                                                                                                                                  
    *** Tachyon Forth EASYNET Network Servers and EASYFILE File Server ***                                                        
                                                                                                                                  
                                                                                                                                  
    NETWORK STATUS:                                                                                                               
    LINK *UP*                                                                                                                     
    HARDWARE: WIZnet W5500 V4                                                                                                     
    SRC IP    &192.168.1.208                                                                                                      
    MASK      &255.255.255.0                                                                                                      
    GATEWAY   &192.168.1.1                                                                                                        
    MAC       02.FF.0D.EA.32.60.                                                                                                  
    SKT HH:MM:SS MODE  PORT  DEST TXRD TXWR RXRD RXWR RXSZ  IR STATUS            IP ADDR                                          
    #0   00:00:02 TCP  55296 55296 0000.0000.0000.0000.0000. 00 14 14              &0.0.0.0                                       
    #3   00:00:02 TCP  32520 55745 0000.0000.0000.0000.0000. 04 14 14              &192.168.1.87                                  
                                                                                                                                  
    * WEB, FTP, and TELNET servers running *                                                                                      
                                                                                                                                  
    --------------------------------------------------------------------------------                                              
    ...
    
    @"Peter Jakacki" could you add this little change in EASYNET.FTH on the dropbox?

    Now trying wether telnet is working ...
  • Hi there,

    has it always been that
    ''' 1234 ''' EMIT . EMIT '1234 ' ok
    
    . (dot) outputs a whitespace after the number?
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2018-05-27 00:59
    proplem wrote: »
    Hi there,

    has it always been that
    ''' 1234 ''' EMIT . EMIT '1234 ' ok
    
    . (dot) outputs a whitespace after the number?

    No, but I favor the more verbose form PRINT in source code as it stands out rather than the obscure dot whereas the dot is easier to use interactively. Getting rather annoyed of typing interactive sequence where I would have add SPACE after every . I then changed the . to add a space :) The PRINT word however does not add any spaces.

    BTW, sorry about the == vs := thing. I fixed the EASYNET source. I was never really happy with saying == but I was never happy with the clunky and overwhelming CONSTANT word either. I think := is a better description because in Spin we assign a value to a symbol. In this case it is clear it is not a comparison but an assignment. Since V5 is a new version (NEON) I took advantage of that fact!
    Clean looks where I can easily spot the value and the name
    4 := W
    
    vs the clutter and overwhelming version
    4 CONSTANT W
    

  • From a mathematical point of view it should be:
    4 =: W
    
    but I don't insist on this :D every spin programmer would laugh at us although it would implicit increased meaning.

    telnet isn't yet working correctly on the iot5500. I get strange crashes and there seems to be a problem with the terminal settings because I have to use putty or even worse M$ telnet and I don't remember the correct terminal settings for putty ... grmbl.

    Does anybody who can post have a putty config which is working with tachyon telnet?

    Best regards,
    proplem
  • proplem wrote: »
    From a mathematical point of view it should be:
    4 =: W
    
    but I don't insist on this :D every spin programmer would laugh at us although it would implicit increased meaning.

    telnet isn't yet working correctly on the iot5500. I get strange crashes and there seems to be a problem with the terminal settings because I have to use putty or even worse M$ telnet and I don't remember the correct terminal settings for putty ... grmbl.

    Does anybody who can post have a putty config which is working with tachyon telnet?

    Best regards,
    proplem
    I had this all running just a few weeks ago so I will check it out again just in case. I just need to put some finishing touches to the P2 ROM this weekend.


  • Hi @"Peter Jakacki",

    1. In my last posts I forgot to mention that there is a small typo in EASYNET.FTH line 88 (PUBIC instead of PUBLIC). This is still in your dropbox repository.
    2. CFA>NFA seems to be removed. How can I emulate it? Maybe you remember I asked for that some time ago and were happy to get managed with it:
    pub VARNAME$ ( var-address .. strptr )   --- get the address of the name of the variable address on TOS
    	\ --- MJB: http://forums.parallax.com/discussion/comment/1424389/#Comment_1424389
    	\ usage: long myvar myvar VARNAME$ PRINT$
      $8000 OR CFA>NFA 1+ ;
    
    pub TABNAME$ ( table-address .. strptr )  --- get the address of the name of the table address on TOS
    	\ --- MJB: http://forums.parallax.com/discussion/comment/1424389/#Comment_1424389
    	\ usage: TABLE mytable mytable TABNAME$ PRINT$
    	\ usage2: for a better example see UARTCOG.FTH::.UART
        2- CFA>NFA 1+ ;
    
    pub FETCHNAME
    	CFA>NFA 1+ DUP PRINT$ ;
    
    Now my code isn't working anymore. Sniff :-(
  • proplem wrote: »
    Hi @"Peter Jakacki",

    1. In my last posts I forgot to mention that there is a small typo in EASYNET.FTH line 88 (PUBIC instead of PUBLIC). This is still in your dropbox repository.
    2. CFA>NFA seems to be removed. How can I emulate it? Maybe you remember I asked for that some time ago and were happy to get managed with it:
    pub VARNAME$ ( var-address .. strptr )   --- get the address of the name of the variable address on TOS
    	\ --- MJB: http://forums.parallax.com/discussion/comment/1424389/#Comment_1424389
    	\ usage: long myvar myvar VARNAME$ PRINT$
      $8000 OR CFA>NFA 1+ ;
    
    pub TABNAME$ ( table-address .. strptr )  --- get the address of the name of the table address on TOS
    	\ --- MJB: http://forums.parallax.com/discussion/comment/1424389/#Comment_1424389
    	\ usage: TABLE mytable mytable TABNAME$ PRINT$
    	\ usage2: for a better example see UARTCOG.FTH::.UART
        2- CFA>NFA 1+ ;
    
    pub FETCHNAME
    	CFA>NFA 1+ DUP PRINT$ ;
    
    Now my code isn't working anymore. Sniff :-(

    Maybe PUBIC is an alias for PRIVATE :):)
    I will try and load it up tonight to find out what's happened with it as I have it working on some units.
  • proplemproplem Posts: 233
    edited 2018-05-31 15:49
    Maybe PUBIC is an alias for PRIVATE :):)

    Of course this would improve readbility. I'd suggest to REVECTOR + with - and such things. Maybe your support efforts have to be doubled then :-D

    I want to implement an iot5500 based system which has no terminal connection anymore. So it has to withstand power cycles autobooting EASYNET and remote connection via telnet. These are things i could unfortunately not get working with the current v5r2. I hope for your helping hand.

    Furthermore I'm short in memory as COMPACT doesn't yet work.
  • proplem - I will be able to get back to it later today. I'm sure we can get it all working just the way you want :)
  • That's very kind - although you worked around the clock in the last weeks. Thank you very much.
  • @"Peter Jakacki" - hej. Peter - what about your. world's famous response time? Did you spend all your gun powder on Taqoz ? :lol:
  • Hey @proplem - no problem - I want to setup a P1 to do some remote control over the Internet so I will be hooking this up today and double checking it!

    Actually, I've been knee deep in P2 documentation and now P2D2 pcb hardware design.
  • I am in serious need of a "Tachyon for Dummies".

    A super simple step by step how to to load and run Tachyon on my FLiP module, for instance.

    I am somewhat familiar with Forth syntax and all, but I can't seem to get Tachyon v5.2 to talk to me.

    Help?
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2018-06-12 22:18
    Did it try to print out anything at all when you hit reset? The only reason it wouldn't seem to work is either wrong baud rate or wrong clock. Just check the header of the Tachyon source as sometimes it has been changed to 96MHz clock, so just comment out that section, uncomment the other, and reload. I will check it later when i get back on a PC.
  • @DaveJenson - I just went and hooked up a standard Prop and loaded Tachyon without any problems. I then proceeded to copy and paste EXTEND.FTH into the terminal using a line delay of 12ms. I am not sure what you mean when you say that you can't seem to get Tachyon to talk to you. Is this a serial terminal thing? Which one are you using and what are the settings? You should have hardware handshake disabled, 115200 baud 8N1 etc.

    Here's a dump of my terminal session after I have used BST and hit F11, then reconnect the terminal. (actually, minicom just allows me to sit in a settings menu like ^A,P and while it is there it releases the serial port after which I hit F11 in BST and wait for it to finish, and then hit escape in minicom to return back to the terminal itself).

    My minicom status line
    CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7.1 | VT102 | Offline | ttyUSB0
    

    The terminal screen itself:
    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   ok
    0300  
    0400  
    0500   ok
    0600  
    0700   ok
    0800   ok
    1000   ok
    1100  
    1200  
    1300   ok
    1500  
    1600  
    1700  
    1800   ok
    1900   ok
    2000  
    2300   ok
    2400   ok
    2600  
    2700   ok
    2800   ok
    2900  
    3000   ok
    3100  
    3200  
    3300   ok
    3400  
    3500  
    3600  
    3800   ok
    4100   ok
    4200  
    4300  
    4400   ok
    4500  
    4600   ok
    4700  
    4800   ok
    4900  
    5000  
    5100  
    5200  
    5300  
    5400  
    5500  
    5600  
    5700  
    6000   ok
    6100                COPY ROMS from $23C4 for 3848 
    6114   ok
    
       End of source code, 0000  errors found  Load time = 28.1
    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 
    --------------------------------------------------------------------------------
    ...  
                                                   
    
  • Thank you Peter.

    I had to remember that most words are UPPER CASE.
    I would still like an updated Tachyon Dictionary of words.
    And I re-iterate that a SUPER-Simple howto may be in order.
    (It can be daunting for new-comers and even Forth Users not familiar with Tachyon...)

    My system is usually Win10 or Win7, Tera Term or Parallax Serial Terminal, Propeller Tool.
      Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200
      *** MODULES ***  Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200
    3784: TOOLS            DEV TOOLS
    34DC: CHARLCD          BUFFERED CHARACTER LCD
    3374: 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 ***
    $A0 EEPROM
    I/O =  31 :UHUU 27 :DD~~ 23 :~~~~ 19 :~~~~ 15 :~~~~ 11 :~~~~ 7 :~~~~ 3 :~~~~
    INTERCOM:
    
    CODE:$3E28 = 15400 bytes
    NAME:$588A = 7030 bytes
    DATA:$764B = 315 bytes
    FREE:      = 6754 bytes
     Data Stack (0)
    Mon, 01 Jan 2001 00:00:00 UTC
    --------------------------------------------------------------------------------
    ...
    
  • The file SEEv5.FTH doesn't load into Tachyon5r2.
    It seems to indicate that it is for V4?
    ...  TACHYON V4  ??? ( V4.5 )   Propeller .:.:--TACHYON--:.:. Forth V5r2 NEON 520180323.2200
    0044  ??? in .NAME at L32
    0046  ??? in .NAME at L16 þ
    0056  ??? in .NAME at CFA>NFA
    0058  ??? in .NAME at CFA>NFA þ
    0071  ??? in SEE at IMMEDIATE þ
    0077  ??? in SEE at NFA>BFA   þ
    0098                        þ
    
       End of source code, 0010  errors found  Load time = 10.6
    Code bytes used = 600
    
    CODE:$410E = 16142 bytes
    NAME:$582E = 7122 bytes
    DATA:$7674 = 356 bytes
    FREE:      = 5920 bytes
     Data Stack (0)
    
     ok
    ...
    
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2018-06-13 23:25
    SEE is built into V5.2 in the form of HELP. For instance, type "HELP HZ" and this is what you get:
    6294 2442 0 HZ
    
    2442: NCO
    2444: HZCON
    2446: $2710
    2448: */
    244A: FRQ
    244C: CTR@
    244E: $001F
    2450: 7CC1
    2452: LOW
    2454: EXIT
    

    Any word that doesn't have a header just prints as 4 hex digits without a prefix.....hmmm.....maybe I will improve that.The 7CC1 is actually an encoded wordcode (not an address) where the C1 is 9-bit Prop machine opcode for AND.

    As for super-simple have you followed the Introduction to Tachyon Forth document? (Click on Use the Forth logo). I do see too that this might need to be updated for 5.2 but it is very recent.

  • If you want to stop the decompile you have to be quick to hit a key while EXIT is displayed.

    Since the pause is short and it could be a while before another EXIT is displayed,
    could you stop the decompile when any key is hit without waiting for another EXIT.

    Thanks
  • Hey Peter!

    Thought I would pass this along.
    It's a presentation on using FIFOs for Forth rather than Stacks.

    I would be interested in your thoughts on it.
    Maybe there is something useful in it for Tachyon?

    http://www.forth.org/svfig/kk/01-2018-Wagner.pdf

    Jason
  • thej wrote: »
    Hey Peter!

    Thought I would pass this along.
    It's a presentation on using FIFOs for Forth rather than Stacks.

    I would be interested in your thoughts on it.
    Maybe there is something useful in it for Tachyon?

    http://www.forth.org/svfig/kk/01-2018-Wagner.pdf

    Jason

    I've only had a very quick read but as soon as I saw the tuck pick roll >R R@ R> words I knew what they were getting at. My philosophy has been to make each word so that the parameters are short, sweet, and pertinent to the function. I have direct access to the top four parameters so to copy them involves either: DUP OVER 3RD 4TH but I try to avoid any kind of juggling. Plus I don't understand why Forth can't have another stack instead of juggling on the return stack and keeping loop parameters there too, it's just plain crazy. Tachyon has always had a loop (and branch) stack for loop parameters so that the return stack is not easily corrupted by a bug.

    They talk about "dictionary congestion" and that's another thing as although it is kind of nice to have a dictionary header before the code, it also requires link fields to join the headers together and mixes data (the dictionary) with code. Tachyon just keeps all the words as one big contiguous list of words in its own area so there is no need for link fields and with private/public/immediate attributes so that words can be forgetten and the memory reclaimed without "congestion".

    I will have a bit more of a read but the solution seems good but more like a patch for an old design. Better off upgrading the whole lot than trying to patch it. But unlike a lot of the Forths that they talk about Tachyon is not PC resident and does not need any PC tools to compile and run.

    Was there some part of it that you think might help? (in case I skipped over it).
    btw - There's the comp.lang.forth group which seems to be mostly about the language for PC Forths, and they rarely discuss actual practical embedded or realtime applications, which is the area in which Forth was born and bred, controlling big radio telescopes. There are hundreds of wonderful IDEs and compilers available for PCs that I would probably use rather than Forth, but when it comes to embedded realtime control, then I use Forth.
  • thejthej Posts: 232
    edited 2018-06-15 05:09
    thej wrote: »
    Was there some part of it that you think might help? (in case I skipped over it).

    Not specifically, I was more curious if any of it might give you ideas to improve Tachyon.
    I do like the multiple stack arrangement you have and the short data stack. These make a lot of sense. One can't help but keep the data stack clean when there are only 4 slots :-)

    ANSI compliance has always made my skin crawl.

    Jason
  • I've been trying to compile TACHYON5r2.spin on my Mac. I've tried openspin and homespun and get the same error:
    Homespun Spin Compiler 0.30
    parsing /Users/XXXXXX/Desktop/Tachyon-Neon/TACHYON5r2.spin
    Error: /Users/XXXXXX/Desktop/Tachyon-Neon/TACHYON5r2.spin (639, 1): Expected local label
    :4                      and       X,#maxlen
    ^
    
    Any suggestions?
  • I had the same issue.

    The binary of v5.2 in the same dropbox folder seems to work.

    Jason
Sign In or Register to comment.