TACHYON O/S V3.0 JUNO - Furiously Fast Forth, FAT32+LAN+VGA+RS485+OBEX ROMS+FP+LMM+++

1102103104105106108»

Comments

  • proplem wrote: »
    @Peter Jakacki,
    you commented out ERASE$ in (V3) EXTEND.FTH
    pub ERASE$ ( str -- \ Fully erase the string - reads max len from header )
            DUP 3 - C@ ERASE
            ;
    
    Is something wrong with it?

    Mainly because not all strings are created equal, that is, those strings that were constructed with the STRING function had an additional field specifying the maximum string length which ERASE$ could use but a common string is normally just a null terminated string without any special fields. Applying ERASE$ to these common null terminated strings would cause definite problems.

    But there is the problem with any general erase string function for who knows how long a string is or can be.

    btw, V4.3 is just about ready.

    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    Tachyon Forth News Blog
    TACHYON DEMONSTRATOR
    Brisbane, Australia
  • Hi Peter,

    I know how the OK word can be used to turn off the prompt
    off OK
    

    Is there a way to suppress the "ok" and just have a CR returned?

    Thanks
  • MJBMJB Posts: 967
    edited April 26 Vote Up0Vote Down
    @D.P
    read the source ...
    \\\ original
    pub NOOP ;
    pub OK ( on/off -- )		IF 0 ELSE ' NOOP THEN prompt 2+ W! ; \ enable/disable OK prompts including the autospace )
    
    \\ so you can do:\
    pub MYPROMPT CR ;
    
    ' MYPROMPT  prompt 2+ W!   
    
    \\to get the original prompt back:
    prompt 2+ W~
    \\ or simply
    ON OK
    
    TESTED !! ;-)
    http://www.smmu.info (german) Source-Measure-Multiplex-Unit = professional test system for electronic components, sensors, assemblies
    Tachyon code and documentation snippets from Tachyon thread
  • Okay, the ESP8266 front end is really close now. But if the ESP is connected to prop pins 31/30 during ESP boot it resets Tachyon?

    The ESP bootloader produces this "init string" at 744000 baud before it engages the set baud rate.

    While you can divert debug message to the aux ESP serial port you cannot divert this output _Until the ESP boots.

    How can we prevent Tachyon V3 from rebooting from this initial "junk"?

    Thanks

    1739 x 121 - 7K
  • D.P wrote: »
    Okay, the ESP8266 front end is really close now. But if the ESP is connected to prop pins 31/30 during ESP boot it resets Tachyon?

    The ESP bootloader produces this "init string" at 744000 baud before it engages the set baud rate.

    While you can divert debug message to the aux ESP serial port you cannot divert this output _Until the ESP boots.

    How can we prevent Tachyon V3 from rebooting from this initial "junk"?

    Thanks

    is this 'junk' random or fixed?
    if fixed, what is it exactly in hex? any ^C in there ??

    http://www.smmu.info (german) Source-Measure-Multiplex-Unit = professional test system for electronic components, sensors, assemblies
    Tachyon code and documentation snippets from Tachyon thread
  • D.PD.P Posts: 787
    edited May 17 Vote Up0Vote Down
    The baud is 74880 and the message is constant for a given build. That ~ld could be the end load symbol perhaps
     ets Jan  8 2013,rst cause:1, boot mode:(3,0)
    
    load 0x4010f000, len 1384, room 16 
    tail 8
    chksum 0x2d
    csum 0x2d
    v3de0c112
    ~ld
    

    UPDATE:
    Setting the world to 74880 baud and testing is still causing a tachyon reboot even as I guard against this ESP8266 boot message. Time to sniff the stream for clues.
  • D.PD.P Posts: 787
    edited May 18 Vote Up0Vote Down
    Decided to implement software serial on 2 of the 4 available io pins to handle just the Propeller serial interface to Tachyon. This avoids all the ESP kernel boot messages now. So now the ESP can reset independent of the Tachyon Machine.

    Works well.



    D.P wrote: »
    The baud is 74880 and the message is constant for a given build. That ~ld could be the end load symbol perhaps

  • D.P wrote: »
    Decided to implement software serial on 2 of the 4 available io pins to handle just the Propeller serial interface to Tachyon. This avoids all the ESP kernel boot messages now. So now the ESP can reset independent of the Tachyon Machine.

    Works well.



    D.P wrote: »
    The baud is 74880 and the message is constant for a given build. That ~ld could be the end load symbol perhaps

    Good stuff, can't wait to see how you are using it. Come to think of it, while you are on a roll, maybe you could get the F32 interface up and running! :)

    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    Tachyon Forth News Blog
    TACHYON DEMONSTRATOR
    Brisbane, Australia
  • D.PD.P Posts: 787
    edited May 19 Vote Up0Vote Down
    D.P wrote: »
    Decided to implement software serial on 2 of the 4 available io pins to handle just the Propeller serial interface to Tachyon. This avoids all the ESP kernel boot messages now. So now the ESP can reset independent of the Tachyon Machine.

    Works well.



    D.P wrote: »
    The baud is 74880 and the message is constant for a given build. That ~ld could be the end load symbol perhaps

    Good stuff, can't wait to see how you are using it. Come to think of it, while you are on a roll, maybe you could get the F32 interface up and running! :)

    It seems that I should begin another journey and move my code bases to V4.4. That's probably gonna leave a mark. As for F32 some very basic pseudo code would help me unblock. On another note I'm currently implementing prooph and "event sourcing" on a complex phylogenic dataset with a mentor, the rabbit hole is deep here. So just a little pseudo code nudge would help F32 get to TOS. Also I am getting a non-critical intermittent websocket terminal disconnect that I need to debug on the ESP frontend. Now that the hardware serial port is "free" I've got the ability to debug the ESP again live. But no matter what happens to the ESP now it leaves the Tachyon machine running just fine i.e. leave the washing machine alone. Separation of concerns, my FONA module which is UI-ish will also get moved the the ESP.

  • I'm trying to make the jump from 2.7 to 4.4. Woopeee! I believe I read somewhere in the documentation that it can't be compiled in the PropTool. So I installed the Simple (Talk about a rich joke) IDE. I have been very comfortable working with the PropTool, TerraTerm and the SemWare Programming Editor -- but now SIDE wants to relieve me of that "burden" with projects and libraries etc. Ok, fine if we must, but how do I compile Tachyon V4.4-list.spin when I can't even load it? SIDE insists that I open a project but when I try to do so it requires a .c or .c++ extension. From the SIDE pdf file "New: Opens a dialog to select folder, project name, and project type (C or C++)."
    HALP!
    Gratitude is riches, complaint is poverty, and the worst I ever had was wonderful. - Brother Dave Gardener :innocent:
  • Peter JakackiPeter Jakacki Posts: 6,689
    edited May 29 Vote Up0Vote Down
    artkennedy wrote: »
    I'm trying to make the jump from 2.7 to 4.4. Woopeee! I believe I read somewhere in the documentation that it can't be compiled in the PropTool. So I installed the Simple (Talk about a rich joke) IDE. I have been very comfortable working with the PropTool, TerraTerm and the SemWare Programming Editor -- but now SIDE wants to relieve me of that "burden" with projects and libraries etc. Ok, fine if we must, but how do I compile Tachyon V4.4-list.spin when I can't even load it? SIDE insists that I open a project but when I try to do so it requires a .c or .c++ extension. From the SIDE pdf file "New: Opens a dialog to select folder, project name, and project type (C or C++)."
    HALP!

    There was something at one time which was nothing more than a missing org which threw Proptool off but that was then fixed. Head on over to to the V4 thread if it is anything V4 specific.

    edit - here's the proof 4.4 compiles fine on Proptool
    proptool%20compile.png


    Btw, I tried to paste Forth source into Mecrisp Forth on Arm M0 and boy do I have to slow it down to 1ms character delay and 50ms line delay for it to compile. Tachyon with 5ms line delay and zero character delay just positively zips along.
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    Tachyon Forth News Blog
    TACHYON DEMONSTRATOR
    Brisbane, Australia
  • D.PD.P Posts: 787
    edited May 30 Vote Up0Vote Down
    deleted
  • I need to display the contents of a variable in 32 bit binary form. Here are my attempts.

    relays_locked @ $1002 PRINTNUM 0000000010000000
    relays_locked @ $1802 PRINTNUM 000000010000000010000000
    relays_locked @ $1F02 PRINTNUM 0000000
    relays_locked @ $1C02 PRINTNUM 000
    relays_locked @ $1402 PRINTNUM 00010000000010000000
    relays_locked @ $1202 PRINTNUM 010000000010000000
    relays_locked @ $1102 PRINTNUM 10000000010000000

    I expected that $1F02 would show 31 bits. Am I missing something? ...still running Tachyon 2.7
    Gratitude is riches, complaint is poverty, and the worst I ever had was wonderful. - Brother Dave Gardener :innocent:
  • I get similar, slightly different behaviour under V4.5

    tried to debug and DUMP the pad but Tachyon reboots ... :-(

    use this as a workaround
    relays_locked @ L>W $1002 PRINTNUM $1002 PRINTNUM
    
    http://www.smmu.info (german) Source-Measure-Multiplex-Unit = professional test system for electronic components, sensors, assemblies
    Tachyon code and documentation snippets from Tachyon thread
  • can this eeprom be used for 64k tachyon systems and replace the 32k on the PPDB?

    http://www.newark.com/microchip/24lc512-i-p/serial-eeprom-512kbit-400khz-dip/dp/62K0581
  • V2.7 and other versions may have had a problem with really long numbers as the digit buffer builds down and most numbers aren't more than 13 characters long including commas etc. IIRC I allow 23 bytes.
    MJBs solution works, maybe I'll add a .BIN to extend.

    @Shawn - any of those eeprom are fine.
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    Tachyon Forth News Blog
    TACHYON DEMONSTRATOR
    Brisbane, Australia
  • Rather than make the number output buffer long enough for formatted binary numbers it's rather a simple matter to have a specialized word for this.
    Here's what I've added to EXTEND in V4.5 but the same can be done with older versions:

    console output
    ..  pub .BIN16  $5002 PRINTNUM ; 
    ..  pub .BIN32  L>W '%' EMIT .BIN16 '_' EMIT .BIN16 ; 
    ..   
    ..  0 @ .BIN32 %0000_0101_1011_1000_1101_1000_0000_0000 ok
    
    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    Tachyon Forth News Blog
    TACHYON DEMONSTRATOR
    Brisbane, Australia
  • Thanks for checking. I'm using very similar DUP 16 SHR instead of L>W. Guess I'll check that word out and learn something.

    use this as a workaround
    relays_locked @ L>W $1002 PRINTNUM $1002 PRINTNUM
    
    [/quote]

    Gratitude is riches, complaint is poverty, and the worst I ever had was wonderful. - Brother Dave Gardener :innocent:
  • I am somewhat confused about the SWITCH CASE BREAK structure.
    It seems to lack a default clause option and an END SWITCH.

    I am accustomed to the CASE structure in the hp48 calculators:
    CASE
    test clause 1 THEN
    set of actions 1
    END
    test clause 2 THEN
    set of actions 2
    END
    ...
    test clause n THEN
    set of actions n
    END
    default set of actions
    END

    So I guess what I want is a way to do the same thing in Tachyon.
    Am I missing something?
    Gratitude is riches, complaint is poverty, and the worst I ever had was wonderful. - Brother Dave Gardener :innocent:
  • Peter JakackiPeter Jakacki Posts: 6,689
    edited September 21 Vote Up0Vote Down
    @artkennedy - the case structure in Tachyon is designed to be flexible but because a BREAK can cause an early exit it is only suitable if it is used as a subroutine word rather than inline. For this reason once all the CASE BREAK statements have been exhausted then it will run any code after that by default so there is no need to specify this explicitly since it is implicit.

    Here is a simple sample of how to use it.
    pub MYCASE ( val -- )
    	--- store value to SWITCH register
    	SWITCH
    	$0D CASE PRINT"  Welcome!" CR BREAK
    	$20 CASE PRINT"  <making room> " BREAK
    	--- discard return address to escape
    	$1B CASE R> DROP PRINT" Escaping " CR BREAK
    	--- default is just to echo the character
    	SWITCH@ EMIT
    	;
    
    pub DEMOCASE	BEGIN KEY MYCASE AGAIN ;
    

    You can see that MYCASE was not coded inline with DEMOCASE but called so that any active CASE BREAK can return early.

    console test
    ..  DEMOCASE 123 <making room> 123 Welcome!
    NOW <making room> IS <making room> THE <making room>  Welcome!
     Welcome!
    Escaping 
     ok
    


    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    Tachyon Forth News Blog
    TACHYON DEMONSTRATOR
    Brisbane, Australia
  • "it is only suitable if it is used as a subroutine word rather than inline"

    Had a feeling that was the "case" but wanted to be sure. Thanks.
    Gratitude is riches, complaint is poverty, and the worst I ever had was wonderful. - Brother Dave Gardener :innocent:
Sign In or Register to comment.