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 53 — Parallax Forums

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

15051535556109

Comments

  • ElectrodudeElectrodude Posts: 1,660
    edited 2014-07-30 20:42
    Line delay - newlines - your documentation said it was ^A T D in minicom which is labeled "Newline tx delay" in the program - it all fits together perfectly! I should really learn to follow directions... Thanks for that hint, I would have never guessed.
    XON/XOFF is not properly supported on PCs it seems, they just never seem to respond since they have such huge FIFOs which do not look ahead for XOFFs.
    Is that a hardware thing or a Windows thing? Will it affect me on Linux? What if nothing else is in the FIFO when the XON/XOFF comes?

    I didn't even notice QS.fth... Thanks! Now I'll probably have to buy the QS W5200 addon board for the QuickStart board I just got at RadioShack for something like $7.99 instead of just using my Spinneret.

    I'm very happy to learn that your web server was on a bad wifi connection - I guess I'll give vanilla Tachyon with no PASM drivers a try.
  • funkheldfunkheld Posts: 32
    edited 2014-07-31 05:16
    Hello, thanks for the Info.

    Greeting
  • mklrobomklrobo Posts: 420
    edited 2014-08-07 17:17
    :innocent: I am new to forth, but I would like to humbly submit a question..
    Do you in some form or fashion use RPN to process data like you would process numbers?
    I know that you must use a math model(s) to streamline your processes, in sync with
    the cogs of the propeller. Am I close? warm? cold? enquiring minds want to know..............
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-08-07 20:34
    mklrobo wrote: »
    :innocent: I am new to forth, but I would like to humbly submit a question..
    Do you in some form or fashion use RPN to process data like you would process numbers?
    I know that you must use a math model(s) to streamline your processes, in sync with
    the cogs of the propeller. Am I close? warm? cold? enquiring minds want to know..............

    Hi mklrobo, not too new though as you've had some experience with PropForth I guess. I'm not real sure of your question though, do you have a particular example or application in mind? Sometimes the problem is that if you knew the answer you would also know how to ask the question!
    So rather than ask a question just say what it is you are trying to do, maybe what your initial goal is etc in plain simple words. As it is your question is a meaningless jumble of jargon, so I guess it would be "cold" :)
  • mklrobomklrobo Posts: 420
    edited 2014-08-08 04:57
    :nerd: I have been programming, but not as much as I would like.:frown:
    In reference to programming in general, every programmer has learned
    their own heuristics in programming. Your Forth runs faster than any other,
    so I assume you have incorporated your heuristic into the program. You
    must have adapted some advantage of forth to acquire this. This is what
    I am focusing on. I know that you probably could not tell anyway, becuase
    it is how you make your living; I understand. If it is just the perfection of
    programming, why has not somebody at least come close to what you
    have done?:innocent:
  • mklrobomklrobo Posts: 420
    edited 2014-08-08 04:58
    In reference to the specific application, I will get the source code of Tachyon to give you an example.
  • Mike GreenMike Green Posts: 23,101
    edited 2014-08-08 12:00
    Peter has gotten Tachyon Forth to run as fast as it does by careful optimization ... matching how his Forth works to how the Propeller works. In particular, the most commonly used bytecodes (that Forth gets compiled into) decode easily and quickly into code addresses with a direct jump to the code involved in executing the bytecode. Secondly, he has the first few stack locations in fixed memory locations (rather than indexed via a stack pointer or index register) because the Propeller has no index registers and computed addresses have to be handled via modifying instructions. There are other optimizations, but I believe these are the most important for performance.
  • mklrobomklrobo Posts: 420
    edited 2014-08-08 13:08
    Mike Green wrote: »
    Peter has gotten Tachyon Forth to run as fast as it does by careful optimization ... matching how his Forth works to how the Propeller works. In particular, the most commonly used bytecodes (that Forth gets compiled into) decode easily and quickly into code addresses with a direct jump to the code involved in executing the bytecode. Secondly, he has the first few stack locations in fixed memory locations (rather than indexed via a stack pointer or index register) because the Propeller has no index registers and computed addresses have to be handled via modifying instructions. There are other optimizations, but I believe these are the most important for performance.

    10-4. Very clever. Thanks.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-08-17 05:51
    While I have been playing with the P1 FPGA Verilog I've also been able to connect a few peripherals including a W5500 module that's been lying around waiting to be tested. So I have adapted the W5200 driver for this chip and it certainly is a lot easier to drive plus I like the way that they have segregated all the buffers in the W5500 so that you don't have to calculate addresses and masks all the time, just say which section you want in the control byte.

    At present I am still testing this driver on the P1V @120MHz and with supercog mode where cog 0 has access to all unused hub slots but everything appears to run well. EASYNET has been updated as well to allow for the chip although I will see what I can do to have chip specifics removed from this level. The driver hasn't been optimized yet but otherwise it runs smoothly.
    [FONT=courier new]ifconfig 
    ************ NETWORK STATUS ************ 
    HARDWARE: P1V DE0-NANO using WIZnet W5500 
    LINK *UP*
    CHIP VER  0004
    SRC IP    192.168.016.160.
    MASK      255.255.255.000.
    GATEWAY   192.168.016.001.
    MAC       02.FF.9C.1B.91.B0.
    *** SOCKETS *** 
    #0 00:00:00 MODE= CLSD PORT#             TXRW=    .    .RXRW=    .    .RXSZ=    .IR=00 ST=00 CLOSED      
    #1 00:00:00 MODE= TCP  PORT#   21        TXRW=    .    .RXRW=    .    .RXSZ=    .IR=00 ST=14 LISTEN      
    #2 00:00:00 MODE= CLSD PORT#   20        TXRW=    .    .RXRW=    .    .RXSZ=    .IR=00 ST=00 CLOSED      
    #3 00:00:00 MODE= TCP  PORT#10001        TXRW=    .    .RXRW=    .    .RXSZ=    .IR=00 ST=14 LISTEN      
    #4 00:00:00 MODE= TCP  PORT#   80        TXRW=    .    .RXRW=    .    .RXSZ=    .IR=00 ST=14 LISTEN      
    #5 00:00:00 MODE= CLSD PORT#  911        TXRW=    .    .RXRW=    .    .RXSZ=    .IR=00 ST=00 CLOSED      
    #6 00:00:00 MODE= CLSD PORT#             TXRW=    .    .RXRW=    .    .RXSZ=    .IR=00 ST=00 CLOSED      
    #7 00:00:00 MODE= CLSD PORT#             TXRW=    .    .RXRW=    .    .RXSZ=    .IR=00 ST=00 CLOSED      
    [/FONT]
    
    peter@peter-Dell-System-XPS-L702X ~ $ telnet 192.168.16.160 10001
    Trying 192.168.16.160...
    Connected to 192.168.16.160.
    Escape character is '^]'.
    WELCOME TO THE TACHYON WIZNET TELNET SESSION!
    .MODULES
     
    MODULES LOADED: 
    40DC: EASYNET.fth         WIZNET NETWORK SERVERS 140804.2300 
    3910: W5500.fth           WIZNET W5500 driver 140817.0000 
    2EBF: EASYFILE.fth        FAT32 Virtual Memory Access File System Layer V1.1 140626-2100 
    29F3: SDCARD.fth          SD CARD Toolkit - 140626.1400 
    1901: EXTEND.fth          Primary extensions to TACHYON kernel - 140723-14OO
     ok
    BYE
    Connection closed by foreign host.
    peter@peter-Dell-System-XPS-L702X ~ $ 
    



    If you want to dump contents of the W5500 just remember that all dumps are now unified under the general DUMP variants (DUMP, DUMPW, DUMPL, DUMPA) by specifying the device but with the W5500 you also need to specify the section and socket.
    These are the modifier words:
    WIZ selects the WIZnet device as the default DUMP method
    @COMMON
    @TX
    @RX
    n SOCKET will select socket 0..7 and also selects the socket segment (in place of TX RX or common)

    Here are some examples (hex base):
    0 40 WIZ @COMMON DUMP --- dump the common registers
    0 30 WIZ 2 SOCKET DUMP --- dump socket 2 registers
    0 100 WIZ 3 SOCKET @TX DUMPA --- dump the first 256 bytes of socket 3 transmit buffer

    Note: There is no need to continue to continue to specify WIZ or other modifiers unless necessary, so:
    0 40 WIZ 4 SOCKET @RX DUMPA --- dump some of the receive buffer for HTTP
    0 200 DUMPA --- dumps more of the receive buffer for HTTP

    So you can also type it like this:
    WIZ 4 SOCKET @RX
    0 40 DUMPA
    0 200 DUMPA
  • funkheldfunkheld Posts: 32
    edited 2014-08-17 08:45
    thanks for the sd-card-report.

    greeting
  • D.PD.P Posts: 790
    edited 2014-08-17 10:50
    While I have been playing with the P1 FPGA Verilog I've also been able to connect a few peripherals including a W5500 module that's been lying around waiting to be tested. So I have adapted the W5200 driver for this chip and it certainly is a lot easier to drive plus I like the way that they have segregated all the buffers in the W5500 so that you don't have to calculate addresses and masks all the time, just say which section you want in the control byte.

    At present I am still testing this driver on the P1V @120MHz and with supercog mode where cog 0 has access to all unused hub slots but everything appears to run well. EASYNET has been updated as well to allow for the chip although I will see what I can do to have chip specifics removed from this level. The driver hasn't been optimized yet but otherwise it runs smoothly.........



    I had a feeling you where not couting sheep. Thanks for the W5500 additions.

    I have a DEO Nano, can I play with this Tachyon super cog too and new W5500 driver?
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-08-17 16:33
    D.P wrote: »
    I had a feeling you where not couting sheep. Thanks for the W5500 additions.

    I have a DEO Nano, can I play with this Tachyon super cog too and new W5500 driver?

    There is a W5500 in the Dropbox and the current testing version in Google docs (via the link page). When I get away from this PC and sit down in front of my system I will tidy up the DE0 files although this isn't really required of course. I need to draw a quick diagram of the connections though.
  • David BetzDavid Betz Posts: 14,516
    edited 2014-08-17 17:42
    There is a W5500 in the Dropbox and the current testing version in Google docs (via the link page). When I get away from this PC and sit down in front of my system I will tidy up the DE0 files although this isn't really required of course. I need to draw a quick diagram of the connections though.
    Do you have a full time job? If you do, I'm really impressed that you find enough time to do all you've done with Tachyon. Heck, even if you don't, your productivity is impressive and I refuse to believe that is entirely do to working in Forth! :-)
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-08-18 18:37
    David Betz wrote: »
    Do you have a full time job? If you do, I'm really impressed that you find enough time to do all you've done with Tachyon. Heck, even if you don't, your productivity is impressive and I refuse to believe that is entirely do to working in Forth! :-)

    Although I could work full time as I like I prefer "my time" where I choose a balance of current work, future work, and play work which might and does result in future work. If it's so much fun then it's hardly work so could you call it a job? :)

    I keep my life fairly simple without stressing everyday about overheads and commitments and since I get to decide what I will or won't work on and how to do it then I choose the ones that are a balance between money and fun. But as much as you might refuse :) to believe that it's entirely to do with working in Forth I however find that since I have the most fun with Forth bringing new boards and chips to life that this then is also the most productive.

    As I mentioned elsewhere it's not just about the "language" because you can't really compare Forth with traditional PC hosted languages/compilers, it's not the same thing. So while a target hosted Forth certainly does appear more primitive than a PC hosted Gigabyte compiler IDE it is also far more interactive and close to the silicon. I can hook-up a new chip and be "talking" to it within minutes discovering a lot more about it then can be gleaned and precompiled from a datasheet or accessing a driver or lib obect. In this manner I come up with alternative methods of accessing it and adapting the "language" so if it's the WIZnet chip for instance then I get to talk to it and it tells me all about itself and how it's coping, a real heart to heart if you could imagine it that way. So I know the things it likes, what it doesn't like, and little secrets that you can only know about if you get close and cosy. I hear it complain so I want to know what's wrong, I ask it, maybe a quick one-liner or something, and it tells me so I can make it better :)

    Now what I said may be seem to be overly metamorphosing but it's hard to explain what that "something about Forth" thing is unless you really actually seriously get into it. I've had many traditional programmers and engineers who have watched over my shoulder as I turn a newborn shoebox prototype into a chatty can-do within hours if that even, and they are usually shaking their heads in utter disbelief. Unfortunately the greater percentage are "stuck" with their traditional ways of programming and like learning a foreign language are too caught-up in comparing back to what they already know rather than being immersed in the "culture" where when you get the way of thinking, then speaking the language follows easily.
  • holiholi Posts: 2
    edited 2014-08-19 02:38
    hi, Peter
    Do you mind if I pusblish the decompiled+disassembled list of Tachyon Forth based on the development system that I've designed. And if permissible I'll post the execution file so that one can see it clearly. Does Tachyon Forth follow the GPL (General Public Licience) rule?
    holi
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-08-19 03:06
    holi wrote: »
    hi, Peter
    Do you mind if I pusblish the decompiled+disassembled list of Tachyon Forth based on the development system that I've designed. And if permissible I'll post the execution file so that one can see it clearly. Does Tachyon Forth follow the GPL (General Public Licience) rule?
    holi

    Hi holi, thought I recognized you, venturing across into Propeller land :)

    I haven't assigned any license to Tachyon, it's more like "use it how you want" and so there is absolutely no problem with whatever you want to do with it but let us know how you go with it though.
  • mklrobomklrobo Posts: 420
    edited 2014-08-19 05:01
    Although I could work full time as I like I prefer "my time" where I choose a balance of current work, future work, and play work which might and does result in future work. If it's so much fun then it's hardly work so could you call it a job? :)

    I keep my life fairly simple without stressing everyday about overheads and commitments and since I get to decide what I will or won't work on and how to do it then I choose the ones that are a balance between money and fun. But as much as you might refuse :) to believe that it's entirely to do with working in Forth I however find that since I have the most fun with Forth bringing new boards and chips to life that this then is also the most productive.

    As I mentioned elsewhere it's not just about the "language" because you can't really compare Forth with traditional PC hosted languages/compilers, it's not the same thing. So while a target hosted Forth certainly does appear more primitive than a PC hosted Gigabyte compiler IDE it is also far more interactive and close to the silicon. I can hook-up a new chip and be "talking" to it within minutes discovering a lot more about it then can be gleaned and precompiled from a datasheet or accessing a driver or lib obect. In this manner I come up with alternative methods of accessing it and adapting the "language" so if it's the WIZnet chip for instance then I get to talk to it and it tells me all about itself and how it's coping, a real heart to heart if you could imagine it that way. So I know the things it likes, what it doesn't like, and little secrets that you can only know about if you get close and cosy. I hear it complain so I want to know what's wrong, I ask it, maybe a quick one-liner or something, and it tells me so I can make it better :)

    Now what I said may be seem to be overly metamorphosing but it's hard to explain what that "something about Forth" thing is unless you really actually seriously get into it. I've had many traditional programmers and engineers who have watched over my shoulder as I turn a newborn shoebox prototype into a chatty can-do within hours if that even, and they are usually shaking their heads in utter disbelief. Unfortunately the greater percentage are "stuck" with their traditional ways of programming and like learning a foreign language are too caught-up in comparing back to what they already know rather than being immersed in the "culture" where when you get the way of thinking, then speaking the language follows easily.
    :cool: Right. The way I am trying to understand your Tachyon, is that your programming Methedology is more important that the code itself.:smile:
  • holiholi Posts: 2
    edited 2014-08-19 08:08
    :smile:
    Hi holi, thought I recognized you, venturing across into Propeller land :)

    I haven't assigned any license to Tachyon, it's more like "use it how you want" and so there is absolutely no problem with whatever you want to do with it but let us know how you go with it though.



    hi, Forther
    Those who are interested in this decompiled+disassembled list could find it here:
    tech.groups.yahoo.com/group/armForth/files choose parallex propeller

    where you can find TachyonForthLST1.f

    or if you're interested in the execution file, just download

    TACHYONFORTH1.EXExxx
    and remove the xxx at the end of the execution file.

    It can be executed under windows XP where win32for 4.2.67x resides.



    ++++ You have to sign in as a member to read the file. ++++
  • David BetzDavid Betz Posts: 14,516
    edited 2014-08-19 18:17
    Although I could work full time as I like I prefer "my time" where I choose a balance of current work, future work, and play work which might and does result in future work. If it's so much fun then it's hardly work so could you call it a job? :)

    I keep my life fairly simple without stressing everyday about overheads and commitments and since I get to decide what I will or won't work on and how to do it then I choose the ones that are a balance between money and fun. But as much as you might refuse :) to believe that it's entirely to do with working in Forth I however find that since I have the most fun with Forth bringing new boards and chips to life that this then is also the most productive.

    As I mentioned elsewhere it's not just about the "language" because you can't really compare Forth with traditional PC hosted languages/compilers, it's not the same thing. So while a target hosted Forth certainly does appear more primitive than a PC hosted Gigabyte compiler IDE it is also far more interactive and close to the silicon. I can hook-up a new chip and be "talking" to it within minutes discovering a lot more about it then can be gleaned and precompiled from a datasheet or accessing a driver or lib obect. In this manner I come up with alternative methods of accessing it and adapting the "language" so if it's the WIZnet chip for instance then I get to talk to it and it tells me all about itself and how it's coping, a real heart to heart if you could imagine it that way. So I know the things it likes, what it doesn't like, and little secrets that you can only know about if you get close and cosy. I hear it complain so I want to know what's wrong, I ask it, maybe a quick one-liner or something, and it tells me so I can make it better :)

    Now what I said may be seem to be overly metamorphosing but it's hard to explain what that "something about Forth" thing is unless you really actually seriously get into it. I've had many traditional programmers and engineers who have watched over my shoulder as I turn a newborn shoebox prototype into a chatty can-do within hours if that even, and they are usually shaking their heads in utter disbelief. Unfortunately the greater percentage are "stuck" with their traditional ways of programming and like learning a foreign language are too caught-up in comparing back to what they already know rather than being immersed in the "culture" where when you get the way of thinking, then speaking the language follows easily.
    I admire your courage in being freelance and able to pick what you work on. I've never had the self-confidence to do that! Good for you!

    I don't want to start another language war but I think most of what you're describing is true of any interactive language. It is certainly true of that Javascript interpreter Heater is always talking about. However, I think Tachyon seems to fit the Propeller quite well and is probably a wonderful environment for someone familiar with Forth or interested in learning it.
  • edited 2014-08-19 18:29
    Although I could work full time as I like I prefer "my time" where I choose a balance of current work, future work, and play work which might and does result in future work. If it's so much fun then it's hardly work so could you call it a job? :)

    I always think of what I do as more like 'structured play' rather than work.

    Sandy
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-08-19 19:35
    David Betz wrote: »
    I admire your courage in being freelance and able to pick what you work on. I've never had the self-confidence to do that! Good for you!

    I don't want to start another language war but I think most of what you're describing is true of any interactive language. It is certainly true of that Javascript interpreter Heater is always talking about. However, I think Tachyon seems to fit the Propeller quite well and is probably a wonderful environment for someone familiar with Forth or interested in learning it.

    Look, isn't Tachyon Forth specific to the Propeller? So I'm not talking about programming in general although I prefer the speed and small footprint of Forth in typical embedded systems. Javascript needs lots of memory and grunt to run and then it just ain't fast at all. Those embedded systems that are capable of supporting Linux etc are a different kettle of fish and I use the language that best suits that board and application. To me coding in any language is a way of getting the job done so it's a matter of picking the right tools. On really small embedded systems I prefer to just code in assembler and so I know what I'm dealing with. I don't think I've ever bothered to code any real projects in Forth on an existing O/S but only those ones where it makes sense and to me the Propeller is one of those. So pretty much any smaller 16/32-bit system with at least 32K RAM perhaps would be a good candidate for Forth IMO.
  • funkheldfunkheld Posts: 32
    edited 2014-08-20 03:18
    hello, good day.
    which is out the latest Archive.zip for TACHYON?

    I want no vga in the forth!


    Thank you.
  • David BetzDavid Betz Posts: 14,516
    edited 2014-08-20 03:28
    Look, isn't Tachyon Forth specific to the Propeller? So I'm not talking about programming in general although I prefer the speed and small footprint of Forth in typical embedded systems. Javascript needs lots of memory and grunt to run and then it just ain't fast at all. Those embedded systems that are capable of supporting Linux etc are a different kettle of fish and I use the language that best suits that board and application. To me coding in any language is a way of getting the job done so it's a matter of picking the right tools. On really small embedded systems I prefer to just code in assembler and so I know what I'm dealing with. I don't think I've ever bothered to code any real projects in Forth on an existing O/S but only those ones where it makes sense and to me the Propeller is one of those. So pretty much any smaller 16/32-bit system with at least 32K RAM perhaps would be a good candidate for Forth IMO.
    That makes a lot of sense to me.
  • funkheldfunkheld Posts: 32
    edited 2014-08-20 03:42
    with me is the startup screen not shown by tachyon Forth?
    why is that?
    which terminal you used to represent the green startup screen?


    thank you
  • max72max72 Posts: 1,155
    edited 2014-08-20 04:14
    funkheld wrote: »
    hello, good day.
    which is out the latest Archive.zip for TACHYON?

    I want no vga in the forth!


    Thank you.

    Check Peter's signature.
    The (latest) binary in signature is with no vga and auto detects the 5/10 MHz Xtal. Simply connect a terminal (teraterm in Windows is a good start) and set it to 230400.

    Massimo
  • funkheldfunkheld Posts: 32
    edited 2014-08-20 05:04
    where can I find the latest version?

    thanks you
  • funkheldfunkheld Posts: 32
    edited 2014-08-20 05:28
    ok.
    is the spin from Library-Propellertool

    Thank you.
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-08-20 05:29
    max72 wrote: »
    Check Peter's signature.
    The (latest) binary in signature is with no vga and auto detects the 5/10 MHz Xtal. Simply connect a terminal (teraterm in Windows is a good start) and set it to 230400.

    Massimo

    As Massino said:

    Check Peter's signature (Peter is the creator of Tachyon)

    Tachyon hosting Web, FTP, and Telnet
    Dropbox files and binaries (latest)

    Introduction to TACHYON Forth
    (links to files)
  • funkheldfunkheld Posts: 32
    edited 2014-08-20 05:43
    ja, danke.
    gruss
  • funkheldfunkheld Posts: 32
    edited 2014-08-20 06:22
    hello, how can you actually load the file and use in forth:
    VGA.fth


    or how this "fth" be loaded?


    Thank you.
Sign In or Register to comment.