Welcome to the Parallax Discussion Forums, sign-up to participate.

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

• Posts: 6,536
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.

Tachyon Forth - compact, fast, forthwright and interactive

Tachyon Forth News Blog
TACHYON DEMONSTRATOR
Brisbane, Australia
• Posts: 785
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
• Posts: 947
edited April 26
@D.P
\\\ 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
• Posts: 785
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

• Posts: 947
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
• Posts: 785
edited May 17
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.
• Posts: 785
edited May 18
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

• Posts: 6,536
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

Tachyon Forth News Blog
TACHYON DEMONSTRATOR
Brisbane, Australia
• Posts: 785
edited May 19
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.

• Posts: 135
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:
• Posts: 6,536
edited May 29
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

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

Tachyon Forth News Blog
TACHYON DEMONSTRATOR
Brisbane, Australia
• Posts: 785
edited May 30
deleted
• Posts: 135
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:
• Posts: 947
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
• Posts: 569
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
• Posts: 6,536
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

Tachyon Forth News Blog
TACHYON DEMONSTRATOR
Brisbane, Australia
• Posts: 6,536
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 Tachyon Forth News Blog TACHYON DEMONSTRATOR Brisbane, Australia • Posts: 135 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: • Posts: 135 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: • Posts: 6,536 edited September 21 @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

Tachyon Forth News Blog
TACHYON DEMONSTRATOR
Brisbane, Australia
• Posts: 135
"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: