Shop OBEX P1 Docs P2 Docs Learn Events
TACHYON O/S V3.0 JUNO - Furiously Fast Forth, FAT32+LAN+VGA+RS485+OBEX ROMS+FP+LMM+++ - Page 7 — Parallax Forums

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

1457910109

Comments

  • mindrobotsmindrobots Posts: 6,506
    edited 2012-08-14 03:35
    Rsadeika wrote: »
    I would mention that I did not find a write up about your version of the "dictionary" of words, maybe a brief description of the "words" may be in order. Keep in mind the people that will be trying this have no idea as to what Forth is, or what the existing "words" do.

    Ray

    I think we can cut Peter a little slack here. Right now, I'd rather have his time spent developing rather than documenting a still changing dictionary. His sources are rather well documented as far as finding the words defined so far.

    SOME of the people trying this have no idea what forth is, others have been using forth and are excited to see what Peter is doing and are looking at his code to see how it works and what he's done "under the hood" and how he has implemented standard/common words.
  • mindrobotsmindrobots Posts: 6,506
    edited 2012-08-14 06:10
    SimpleIDE and Tachyon - WIN/WIN in my book

    I've been watching the debates and troubles with SimpleIDE and Spin in general and particular in building Tachyon (and PropForth) so it was time to take some time and see what this was all about.

    1) I loaded the latest (0.8.1) SimpleIDE on a Windows laptop
    2) start SimpleIDE up and switch to SPIN compiler mode
    3) close Hello.c (it opens up untitled.something)
    4) cut/paste Tachyon SPIN source from the web page into the untitled doc
    5) update _clkmode to pll16x and _xinfreq to 5_000_000 to match my QuickStart and changed bauc to 115_200 to match SimpleIDE terminal speed
    6) hit the "gear" in SimpleIDE to make the current file the project (when I hit the "Gear", I was pleased that SimpleIDE found an object Tachyon.SPIN used in the c:\propgcc\spin folder)
    7) I created a new document and cut/paste Peter's HS-SerialRx.spin code into it and saved it
    8) Hit the blue button in SimpleIDE and it compile the spin code, loaded my QuickStart and the terminal window popped up talking to Tachyon.
    9) typed in WORDS and saw that Peter has been a busy, busy boy creating Forth!!

    That seemed pretty simple and a well spent 15 minutes or so to try out two useful tools.

    ...and I can now do the same thing on my Mac and on My Linux machines without any concerns (except maybe for some terminal issues).

    Thank you, Peter!
    Thank you, Steve (jazzed)!
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2012-08-14 08:00
    Rsadeika wrote: »
    I mentioned, in a post, that my objective was to have SimpleIDE for Spin compile the source code and burn the EEPROM. For whatever reason it compiled and loaded but Tachyon was not working. The same thing happened when I used the Propeller tool to compile the source code. The problem was solved when I just downloaded the Tachyon binary and had the Propeller tool burn the EEPROM. A side note, I am not sure if a lot of the beginners know how to load a bin file from within the Propeller tool, I sure don't.


    I sort of described it already.


    I am still playing around with it, so will hold back on my thoughts about that. I must say it is a barebones setup, so it may be a struggle to really get a good feel for it. I would mention that I did not find a write up about your version of the "dictionary" of words, maybe a brief description of the "words" may be in order. Keep in mind the people that will be trying this have no idea as to what Forth is, or what the existing "words" do.

    Since I have a DNA-RTC board, at some point I will want to be able to use everything on the board, RTC, Flash ram, and whatever "shield" becomes available(RPi). I also have some Xbee modules laying around, hopefully Tachyon would be able to handle that. And so I travel into the new(old) frontier ...

    Ray

    Barebones???????? Ah well, there's no pleasing some people then so I am not sure what it is that you are after. If the source code compiled then there is no problem. If there is a problem then it is to do with the crystal settings and/or the baud rate which is right there in the CON section around line 143 which every Spin programmer is familiar with:
    CON
    _clkmode    = xtal1 + pll8x        ' <---------------- change to suit
    _xinfreq    = 10_000_000            ' <---------------- change to suit your crystal
    
    baud        = 3_000_000          ' tested to 3_000_000 baud, probably okay for 4M as well
    

    Try the Intro page and just bear with it and follow along and try the few things mentioned. There are reference links to Forth at the bottom of the page which covers Forth in general. The rest of the information is to be found in the online source documents which attempts to combine source and documentation. I did attempt to start a glossary of Forth words but alas, there are only 24 hours in a day and I already use 25 of them.

    BTW, those peripherals you mentioned are trivial and very easily interfaced to directly from Tachyon without the need for any special PASM drivers. I use many different types of RTCs and Winbond Serial Flash etc. XBEE is only serial basically.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2012-08-14 08:11
    mindrobots wrote: »
    SimpleIDE and Tachyon - WIN/WIN in my book

    I've been watching the debates and troubles with SimpleIDE and Spin in general and particular in building Tachyon (and PropForth) so it was time to take some time and see what this was all about.
    <snip>
    Thank you, Peter!
    Thank you, Steve (jazzed)!

    Thanks Steve, I normally try to keep a low profile but occasionally I stick my head up to get it smacked about ;)

    I'm trying out SimpleIDE on LinuxMint 13 with Cinnamon desktop, it looks good so far, I have just got to get it to compile properly! BST has been good to me, I like to be able to see the listing to make sure the compiler is doing what I want it to and to help debug any problems. It's unfortunate that Brad never made the source for BST open.
  • RsadeikaRsadeika Posts: 3,822
    edited 2012-08-14 11:12
    I tried another scratch build using SimpleIDE, and it worked. The first time I did this, I made a very bad assumption, without looking at the code, I took for granted that _clkmode = pll16x, and _xinfreq = 5_000_000, plus baud = 57_000. A very bad mistake on my part, now with those values set correctly, for my board anyway, using SimpleIDE to run Tachyon works like a charm.

    I had some more time to play with Tachyon, and I think I am starting to like the experience. I also did a WORDS, and it printed out a bunch of words, I am assuming that is the dictionary, in its present state? Some of the words are somewhat self explanatory, but some, for example CLS, did not do what I expected. I expected the screen to be cleared, that did not happen.

    The other thing that I am having trouble understanding is BACKUP. Does this mean that when you create a bunch of words that equal a small program, and do BACKUP, all of the words and small program gets saved, so when you REBOOT, or do new start all of the stuff is there, and does not have to be retyped?

    Thanks Peter, this is starting to look good.

    Ray
  • Christof Eb.Christof Eb. Posts: 1,087
    edited 2012-08-14 11:43

    ....What I find more amazing than Forth on the Propeller though is why more people have not taken the time to discover it's huge potential for us Prop heads. I'm only talking about one lousy hour here, not months. (Stop kicking the tires, jump in and take it for a drive)


    Hi Peter,

    well, I did take some time. I am very impressed by your Forth and I did want a fast FORTH.
    But -sorry- at that moment it was a system, that cannot work with multiple cogs, a system that is changing very fast, a system that is rather different to standards and has got only it's commented source as docu. Frankly speaking this system is still not so very useful at this very moment, sorry again. I think Forth is a little bit different to BASIC or C, because when you use Forth, you want to understand, what Forth does.

    I have now seen, that you have started a webpage with some explanations and there is backup and cold now written as UPPERCASE. So this looks very promising for the future and I am sure, that I will be back again... Good luck with this nice work!
    Christof
  • mindrobotsmindrobots Posts: 6,506
    edited 2012-08-14 11:49
    Peter,

    Rough crowd on a 6 week old baby! :lol:
  • Christof Eb.Christof Eb. Posts: 1,087
    edited 2012-08-14 12:25
    Hi mindrobots,
    sorry my English is not good enough, what exactly means "rough crowd"?
    I only wanted to give some hints regarding this question of Peter....
    Christof
  • jazzedjazzed Posts: 11,803
    edited 2012-08-14 12:39
    Thanks Steve, I normally try to keep a low profile but occasionally I stick my head up to get it smacked about ;)

    I'm trying out SimpleIDE on LinuxMint 13 with Cinnamon desktop, it looks good so far, I have just got to get it to compile properly! BST has been good to me, I like to be able to see the listing to make sure the compiler is doing what I want it to and to help debug any problems. It's unfortunate that Brad never made the source for BST open.

    Sorry Peter. I suppose I'm too outspoken right or wrong, and can't seem to avoid getting lumps either way.

    LinuxMint13 is one of my test platforms. The last Debian package works there. I'll post an update soon.
  • mindrobotsmindrobots Posts: 6,506
    edited 2012-08-14 13:03
    Sorry, Christof, no offense.

    I was just joking with Peter. Tachyon has been around for less than 6 weeks and there have been a number of comments as to its completeness and usability. He had made a reference to his 6 week old baby in an earlier posting.

    It may not be production ready but it is impressive the features it has, the speed at which it has been created and the potential it has.

    You were complimentary, correct in your statements and said you'd be back to check it out.
  • Brian RileyBrian Riley Posts: 626
    edited 2012-08-14 15:10
    VGA Report - Kernal 120814.1200, Extensions - 120814.1330, VGADEMO - 120814.1200

    Seems to be a great improvement. Very stable so far. Multiple passes at DEMO interspersed with VGA/CON sequences ... CLRSCNs ... HOMEs ... etc ... such sequences, in the past, absolutely would have caused a hard lockup requiring a hardware reset.

    Time for a modest bow (as befits a 6 week old!), Peter.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2012-08-14 17:32
    I have moved most of the old binaries from Dropbox into a sub-folder called "old". Now there are only two, why? Because the kernel has been updated to handle baudrate as a variable so now the standard binaries are set for 57600 baud and either a 5MHz or 10MHz crystal with VGA (and for now a 6MHz binary). When you extend the kernel with EXTEND.fth you can change the baudrate from there as well as turn off the VGA.

    @Brian: Thanks Brian, trouble is I am far too aware of all the "little things" that need to be checked and things I have not implemented yet. I've been bogged down a little with using Tachyon in some applications so I'm itching to get the keyboard and SD stuff up and running now. I think that lockup you mentioned may have been to do with the output redirection word VGA which used to have a bug. The normal demo doesn't use this though.
  • RsadeikaRsadeika Posts: 3,822
    edited 2012-08-15 05:12
    I just checked your latest source and binaries folder, it seems that you are only going to support Tachyon1v0-VGA, meaning includes VGA? I noticed that when I run that particular version with my QuickStart board, it lights up LED16, and LED17, which is becoming very annoying. So, I guess if you could offer up exactly what lines of code I would have to comment out to fix it so it is strictly a serial terminal experience?

    I tried Tera Term, the program has changed from what I remember it being about four or five years ago. The program is more "real" terminal screen oriented, which I like, and the fact that you can paste to the screen in an effective manner is also a plus. A thumbs up on that program.

    I just gave the "Forth Primer" a cursory look, and I noticed it gives a good preliminary introduction which is good. But, where do I find a good explanation for something like the words BACKUP and AUTORUN? Or are these two words just pertaining specifically to your dictionary?

    As I spend more time with Tachyon, I find it is becoming more familiar, and therefore less "Yoda" like, as one forum member described it. Very good job Peter, I can hardly wait to see what all this looks like when it finally "grows up", hopefully we can see a fast growth rate LOL.

    Ray
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2012-08-15 05:29
    Rsadeika wrote: »
    I just checked your latest source and binaries folder, it seems that you are only going to support Tachyon1v0-VGA, meaning includes VGA? I noticed that when I run that particular version with my QuickStart board, it lights up LED16, and LED17, which is becoming very annoying. So, I guess if you could offer up exactly what lines of code I would have to comment out to fix it so it is strictly a serial terminal experience?

    I tried Tera Term, the program has changed from what I remember it being about four or five years ago. The program is more "real" terminal screen oriented, which I like, and the fact that you can paste to the screen in an effective manner is also a plus. A thumbs up on that program.

    I just gave the "Forth Primer" a cursory look, and I noticed it gives a good preliminary introduction which is good. But, where do I find a good explanation for something like the words BACKUP and AUTORUN? Or are these two words just pertaining specifically to your dictionary?

    As I spend more time with Tachyon, I find it is becoming more familiar, and therefore less "Yoda" like, as one forum member described it. Very good job Peter, I can hardly wait to see what all this looks like when it finally "grows up", hopefully we can see a fast growth rate LOL.

    Ray

    There's a readme.txt in the dropbox folder which addresses the VGA plus even at present you can type NOVGA to kill the VGA cog. BACKUP and other special functions are covered quite a bit in the Introduction page so make sure you have a read of it especially with a system running.

    The latest binaries start up at 57600 baud and after you have loaded EXTEND.fth you can change this with BAUDRATE which becomes effective after the next reboot (hit ^C or ALT-B to send a break from TeraTerm).

    For you convenience these are the lines to comment out in the source (182 & 196 in my source):
    OBJ
    
    coms     : "HS-SerialRx"    ' Mega-baud serial receive driver
    [B]vga      : "VGA_512x384_Bitmap"[/B]
    
    ''=======[ PUBlic Spin Methods ]===============================================
    PUB Start
    {{{
     - Tachyon starts up in cog 1
     - Serial receive starts up in cog 2
     - vga starts up in cog 3
    start returns and cog 0 ends - this Spin cog now terminates and is free for reuse as are cogs 4..7
    }}
    
    long[@bit_ticks] := clkfreq/long[@baudrate]    ' Force VM transmit routine to correct baud
    cognew(@RESET, @MAIN)            ' Tachyon starts up in cog 1
    word[@rxbufptr] := coms.start(rxd, long[@baudrate])     ' Serial receive in cog 2
    [B]vga.start(16, @Colors, Pixels, @vgasync)    ' VGA in cog 3[/B]
    
  • RsadeikaRsadeika Posts: 3,822
    edited 2012-08-15 10:04
    For you convenience these are the lines to comment out in the source (182 & 196 in my source):

    I kind of thought that those two lines would be it, but I wanted to make sure. Thanks Peter.

    Ray
  • Brian RileyBrian Riley Posts: 626
    edited 2012-08-15 15:47
    Peter and I exchanged some back channel emails and he gave me some code to get me started writing code to interface to an Emic2 Text-To-Speech module.

    Easier said than done. But after a couple of hours hitting myself on the forehead, it all came together ... the devil indeed is in the details.

    Enjoy ....
  • D.PD.P Posts: 790
    edited 2012-08-15 16:20
    Peter and I exchanged some back channel emails and he gave me some code to get me started writing code to interface to an Emic2 Text-To-Speech module.

    Easier said than done. But after a couple of hours hitting myself on the forehead, it all came together ... the devil indeed is in the details.

    Enjoy ....

    Great to see some Tachyon .fth that drive Parallax "sensors". While the code is very straight forward for the adapt forth'r I think it would be great for you to fully explain everything in your code so the neophyte can follow along. Assume nothing. Again thanks for contributing your efforts.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2012-08-15 18:24
    I've decided to make some project pages available which have both code and documentation, schematics etc. There are stacks of devices that I have already interfaced to but here's one for starters that I just started working on yesterday. It's still a WIP but this gives you an idea. I will place the links at the bottom of the Intro page.

    Other pages that I will put up shortly are:
    Character LCD interfacing
    Graphic LCD interface
    Serial interfacing
    VGA (of course)
    I2C Accelerometer
    I2C devices in general
    Parallax GPS
    Sound generation
    etc
  • mindrobotsmindrobots Posts: 6,506
    edited 2012-08-15 19:19
    Peter, I really like the "ProjectDoc" format. Everything in one place, clear schematics, nicely formatted code, theory as a bonus!! These should be a great addition.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2012-08-15 19:55
    Yes, it looks good and it works! Win-win. If anyone wants to know how to interface a device using TACHYON then just ask as I will consider these for future project pages.

    BTW, ANYONE at all, even die-hard C coders (no fun) should consider loading TACHYON onto any new prototype because it's the mother of all debuggers, and friendly too (if you have bothered to learn some of the etiquette involved to talk nicely that is). In fact this is where OpenFirmware (and funnily enough Java (C programmers version of Forth) at the same place years later ) was used to test out new Sun Sparc prototypes. In the beginning Forth was the fastest way to get software up and running on a new CPU where the old compilers were useless and because it is was such a great debugging tool in that you could write complete programs and test suites in it that it was incorporated into Sun workstation ROMs and evolved into OpenFirmware.


    PS/2 interfacing project document
    Introduction to Tachyon Forth
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2012-08-15 21:55
    I took the time to play with TACHYON the first time the other night.. I can definitely see the attraction here.

    I compiled my own source using my VGAplus/Quickstart combo. The VGA demo was a little glitchy, but still very cool, and for some reason I couldn't get the extended features to stick when the unit is powered down. Are these written to EEPROM, or do they need to be reloaded at each power up?

    Ether way, are there any Forth applications which were designed which would run on this setup?

    Great job Peter. I'm not completely a Forth convert, but I'm definitely planning some more time with this.
    (Yes, I swear, I CAN just eat ONE.) :)

    Jeff
  • Brian RileyBrian Riley Posts: 626
    edited 2012-08-15 21:58
    An update to the Tachyon EMIC2 code ... more comments ... enhanced Demo ... enjoy
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2012-08-15 22:03
    I took the time to play with TACHYON the first time the other night.. I can definitely see the attraction here.

    I compiled my own source using my VGAplus/Quickstart combo. The VGA demo was a little glitchy, but still very cool, and for some reason I couldn't get the extended features to stick when the unit is powered down. Are these written to EEPROM, or do they need to be reloaded at each power up?

    Ether way, are there any Forth applications which were designed which would run on this setup?

    Great job Peter. I'm not completely a Forth convert, but I'm definitely planning some more time with this.
    (Yes, I swear, I CAN just eat ONE.) :)

    Jeff
    Hi Jeff, I'm shocked, absolutely shocked (Casa Blanca I think) that the extended features didn't backup to EEPROM. Normally after loading in a fresh kernel the idea is to download EXTEND.fth and if there were no errors in download (usually due to coming in too fast without handshaking) then it will do an automatic backup. So just make sure that you have enough line delay on your terminal settings (30 to 50ms) and that there were no errors. However the VGA DEMO does not do an automatic backup because it's a demo but you can tell it to at any time by typing BACKUP. The VGA demo is overlapping into ROM until I free up some more memory so you will see some garbage at the bottom of the screen when it's not blanked. Is that what you mean by "glitched".
  • RickInTexasRickInTexas Posts: 124
    edited 2012-08-15 22:09
    Hi mindrobots,
    sorry my English is not good enough, what exactly means "rough crowd"?
    I only wanted to give some hints regarding this question of Peter....
    Christof

    "rough crowd" just means unduly critical, hard to please.
  • RickInTexasRickInTexas Posts: 124
    edited 2012-08-15 22:13
    Keep up the great work, Peter.

    I'm going to try you're direct PS/2 USB keyboard with my Kensington "Keyboard for Life" that came with one of those ugly USB/PS/2 adapters. Interesting App note.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2012-08-15 22:17
    Yes, I'd go with that definition especially considering the amount of work I've put into the different aspects of this projects and made it the most open project that I know of. It's so open that if you are at the right place in an online document you can see me making changes. Is there any tiny aspect of the project that I haven't laid out on the table? Perhaps I should rename the project to "Pearls" if you get my drift ;)
  • prof_brainoprof_braino Posts: 4,313
    edited 2012-08-16 07:15
    This project is still fairly young. Maybe its not too late for this request....

    Could Peter (and the group) attempt to sketch out the high level functional requirements, the required functions, the code specific code that implements each and the tests that prove the code? Just a sketch. It doesn't have to be complete at least not right off the bat. But if Peter could make a start, and post it on his google docs, other folks could at least poke at it and maybe fill in some stuff... Hopefully, if would grow as more folks read the drafts, and scratch their heads and fill in more details they figure out. Kind of an organic, untended review process?

    This is kind of a big request, and unusual I know. BUT this requirements-function-code-test trace is found on most successful projects I've encountered. I think could be a value add for maintainability and training, and well worth the effort.

    Also, I'm working on designing something like this for another project, and I need more data on what works well and what to avoid. You guys are working well together, I want to capture what you do well and try to make a sequence of behavior that others can emulate on more projects. This project is BIG enough to include multiple folks, yet small enough for this experiment to be manageable.

    Any takers? Too nuts? Thanks for your consideration.
  • User NameUser Name Posts: 1,451
    edited 2012-08-16 11:08
    ...In the beginning Forth was the fastest way to get software up and running on a new CPU...
    Yup. EasyWriter, the first word processor for the original IBM PC was written in Forth. I remember it fondly.
  • JonnyMacJonnyMac Posts: 8,912
    edited 2012-08-16 13:51
    Am I missing something, or is a VGA display required to run Tachyon? Is there not a version that is serial only so I can play with it on a QuickStart of EFX-TEK board? Forgive me if this is a stupid question, I still feel a bit out of the clubhouse on this whole Forth thing, but I'm very interested.
  • RsadeikaRsadeika Posts: 3,822
    edited 2012-08-16 13:57
    Read post #195.

    Ray
Sign In or Register to comment.