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

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

13233353738109

Comments

  • AkkarinAkkarin Posts: 43
    edited 2013-12-18 04:32
    Hi Peter,

    thank you for the style tips. I really smashed code snippets together without thinking about readability. I like the "fall into it" in particular.

    Regarding my "test" task (which istn't a task at all): I tried to free #P9 with PININP and PNCLR real quickly but then had to leave the Prop for other work. I'll do some tests later.
    EDIT: Re Prop2Prop coms I would just use a single wire common to all Props as the communications "bus" Use a 220R resistor in series with the pin so there aren't any problems with more than one Prop trying to drive the line. The SERIN and SEROUT work just fine up to 250K baud for a really simple network without requiring any special drivers. In fact I might just demonstrate such an arrangement with basically a cog dedicated to listening to the line and working out if it has been selected and buffering the receive data. Serial data can be buffered and then transmitted normally once the bus signals it's ready. Since the cog is listening all the time it can timeout to say the bus is free after which if it has data to send it will send out an address character, if that is acknowledged correctly then any data can then be sent. I can't see why a specialized point-to-point high-speed object would be needed though especially with slow sensor data.

    In this multi-master scheme using the single common pin it would mean that there would be no need to "interrogate" the "slaves" as the "slaves" would be sending their data when they need to. The "master" can receive these data broadcasts and determine the source and do what it needs to do with the data or just ignore it.
    [DATA BROADCAST ADDRESS] <ACK> [SOURCE ADDRESS] [DATA] [EOP]

    The EOP is just a way of saying the packet is finished, no need to wait for a timeout as the bus is now free.

    Will do that later, thanks.
  • hinvhinv Posts: 1,083
    edited 2013-12-30 23:31
    I got my PropDongle out to see if I can get this to work. I tried copying the code from https://docs.google.com/document/d/1a2j0thJWkBpulZiL4v7GukSL_utJouoau3ZDgPKEiIc/pub into bst. I get a compile error:
    Untiled(2826,33)Error: Unresolved symbol - last

    This is the first thing I tried to do. Did I miss a step?

    Thanks,
    Doug
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2013-12-31 03:39
    hinv wrote: »
    I got my PropDongle out to see if I can get this to work. I tried copying the code from https://docs.google.com/document/d/1a2j0thJWkBpulZiL4v7GukSL_utJouoau3ZDgPKEiIc/pub into bst. I get a compile error:
    Untiled(2826,33)Error: Unresolved symbol - last

    This is the first thing I tried to do. Did I miss a step?

    Thanks,
    Doug

    I just checked that document and I did have a little bug in there with the "cntr" variable but the Dropbox version has also been updated I was in the middle of shuffling some of the "REG" task variables so that a task need only allocate the first 32 bytes if it needed it's own emit and key vectors etc. BTW, I'm using BST 0.19.4-pre12
  • hinvhinv Posts: 1,083
    edited 2013-12-31 09:01
    Thanks!

    It works now.

    I got it to compile. Two questions:

    1. Do I just compile and download the kernel to eeprom to start off?

    Got it after fixing the clock and the baud!

    2. How do I tell minicom which port to use?

    Thanks for the handholding...

    Doug
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2013-12-31 09:36
    hinv wrote: »
    Thanks!

    It works now.

    I got it to compile. Two questions:

    1. Do I just compile and download the kernel to eeprom to start off?

    2. How do I tell minicom which port to use?

    Thanks for the handholding...

    Doug
    You can specify the comport on the command line as "minicom ttyUSB0" and then save the setup (^A,O,"Save setup..). Alternatively you can ^A,0,"Serial port setup" if you are already running minicom. Don;t forget to set the line delay to 20ms (^A,T,D) so that pasting without handshake will work. Once you have the PC compiled kernel loaded into EEPROM and assuming the correct clock has been configured then you should copy EXTEND.fth and paste it into the terminal which will complete the kernel build with the RAM image being written to EEPROM once the load is complete.

    I noticed that the clock settings in the web document version is a bit hard to read as yellow on white so I've changed it to a red font, this is the section:
    CON
    _clkmode        = xtal1 + pll8x         ' <---------------- change to suit
    _xinfreq        = 10_000_000                ' <---------------- change to suit your crystal
    baud                = 230400                ' <-- change - tested from 300 baud to 3M baud
    
  • hinvhinv Posts: 1,083
    edited 2013-12-31 10:41
    Thanks for the handholding.
    Got the clock & baudrade fixed.
    Got BST 0.19.4-pre12 so now I can use the serial terminal and connect that way. I get an Ok prompt
    When I try to connect with minicom I get on the screen:
    [code]
    Welcome to minicom 2.4

    OPTIONS: I18n
    Compiled on Jan 25 2010, 07:02:36.
    Port /dev/ttyUSB0

    Press CTRL-A Z for help on special keys


    Propeller .:.:--TACHYON--:.:. Forth V23131230.0000
    Cold start - no user code - setting defaults
























    CTRL-A Z for help |230400 8N1 | NOR | Minicom 2.4 | VT102 | Offline
    [\code]
    It won't talk past that.
    Why does it say "Offline"
    I don't get an OK prompt like I do in bst terminal.
  • D.PD.P Posts: 790
    edited 2013-12-31 19:48
    hinv wrote: »
    Thanks for the handholding.
    Got the clock & baudrade fixed.
    Got BST 0.19.4-pre12 so now I can use the serial terminal and connect that way. I get an Ok prompt
    When I try to connect with minicom I get on the screen:
    [code]
    Welcome to minicom 2.4

    OPTIONS: I18n
    Compiled on Jan 25 2010, 07:02:36.
    Port /dev/ttyUSB0

    Press CTRL-A Z for help on special keys


    Propeller .:.:--TACHYON--:.:. Forth V23131230.0000
    Cold start - no user code - setting defaults
    CTRL-A Z for help |230400 8N1 | NOR | Minicom 2.4 | VT102 | Offline
    [\code]
    It won't talk past that.
    Why does it say "Offline"
    I don't get an OK prompt like I do in bst terminal.
    .

    On my mac here the minicom command I use to connect to one of my boards on a specific USB port.

    minicom -D /dev/tty.usbserial-A100PCDJ -b 230400

    you need to plug in your "board" then check the /dev directory for the usb that is connected, each board/port combo will yield a unique device.

    then start minicom as above with your parameters and don't forget to set the line delay as Peter has stated, I use 40 and no char delay.
  • D.PD.P Posts: 790
    edited 2013-12-31 22:14
    Hi Peter,

    Working with basic sockets and trying to connect to a server I can't seem to set some registers set with L! and LW!
    Or I am using these words incorrectly?
    \ other standard w5200 code, network.fth and IP initialization code not included in this snippet
    pub sDIP        $0C @SOCKET ;    \ 4 byte dest IP address
    pub sDPORT        $10 @SOCKET ;    \ 2 byte dest port
    
    0 == MYSOC
    MYSOC SOCKET 
    $10.10.1.210 sDIP L!
    #80 sDPORT LW!
    MYSOC SOCKET sCLOSE TCP #1099 PORT! sOPEN sCONNECT
    
    

    Do you have an example of settting up a socket to connect to a server? The server examples are excellent in NETWORK.fth: FTP, TELNET, HTTP BTW
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2013-12-31 22:58
    D.P wrote: »
    Hi Peter,

    Working with basic sockets and trying to connect to a server I can't seem to set some registers set with L! and LW!
    Or I am using these words incorrectly?
    \ other standard w5200 code, network.fth and IP initialization code not included in this snippet
    pub sDIP        $0C @SOCKET ;    \ 4 byte dest IP address
    pub sDPORT        $10 @SOCKET ;    \ 2 byte dest port
    
    0 == MYSOC
    MYSOC SOCKET 
    $10.10.1.210 sDIP L!
    #80 sDPORT LW!
    MYSOC SOCKET sCLOSE TCP #1099 PORT! sOPEN sCONNECT
    
    

    Do you have an example of settting up a socket to connect to a server? The server examples are excellent in NETWORK.fth: FTP, TELNET, HTTP BTW

    I've only used this in server mode so far but I will have a look at client mode. The WIZnet chips are nice except they have lots of little idiosyncrasies such as not being able to write certain registers when you want to, only when the chip feels it's okay! Watch that IP notation as you are specifying it in hex so that it will end up as $10101210 rather than &10.10.1.210

    If you create a register defintion such as sDPORT you might consider having it also perform the write to register operation. This looks cleaner IMO and you don't have to remember what width it is either.
  • Brian RileyBrian Riley Posts: 626
    edited 2014-01-01 11:24
    I just checked that document and I did have a little bug in there with the "cntr" variable but the Dropbox version has also been updated I was in the middle of shuffling some of the "REG" task variables so that a task need only allocate the first 32 bytes if it needed it's own emit and key vectors etc. BTW, I'm using BST 0.19.4-pre12


    I just checked the DropBox listings and the key files (Tachyon, EXTEND, QS, SDCARD, MULTIFAT, W5200 and NETWORK) are still showing "16 days old"
  • Brian RileyBrian Riley Posts: 626
    edited 2014-01-01 12:01
    Using this build
    GO
    NAMES:  $54C1...74CB for 8202 (0532 bytes added)
    CODE:   $0000...524F for 12869 (2470 bytes added)
    CALLS:  0161 vectors free
    RAM:    0626 bytes free
    
    AUTORUN BOOT
    MODULES LOADED:
    48A9: NETWORK.fth         WIZNET NETWORK SERVERS 131211.1530
    41ED: W5200.fth           WIZNET W5200 driver 131211.1530
    38E0: MULTIFILE.fth       FAT32/16 MultiFile Layer V1.1 131207-0000
    31A5: SDCARD.fth          SD CARD Toolkit - 131114.0000
    3003: QuickStart.fth      QuickStart + W5200 HARDWARE DEFINITIONS 131204.1200
    17C0: EXTEND.fth          Primary extensions to TACHYON kernel - 131212-1200
    
    *** Tachyon Forth Network and File Server ***
    
    Mounted SD Card
    Media mounted as 3C18.8F1F          NO NAME     FAT32    Cluster size = 32,768   Sectors = 15,269,888
    

    Running this build, w/o AUTORUN, I get File-Zilla to connect, and it sends a list. Then I try to transfer ROM0.BIN to my iMac and the 5200 refuses the connection.. .WHY? See FileZilla screenshot below
  • David BetzDavid Betz Posts: 14,460
    edited 2014-01-01 13:40
    I just installed Tachyon on one of my QuickStart boards and it seems to work fine! I'm wondering though if there is a way to remove the case sensitivity. It's kind of a pain to have to type "DUP" instead of "dup". Would that be contrary to the Forth philosophy?
  • KC_RobKC_Rob Posts: 465
    edited 2014-01-01 17:06
    David Betz wrote: »
    I just installed Tachyon on one of my QuickStart boards and it seems to work fine! I'm wondering though if there is a way to remove the case sensitivity. It's kind of a pain to have to type "DUP" instead of "dup". Would that be contrary to the Forth philosophy?
    I don't think it's against Forth "philosophy," and I do know that many (perhaps even most) Forths are not case sensitive. (I think the ANS Forth standard says something about systems having to support core words entered in upper-case, but that's about as far as it goes.)

    "And so Forth..." says that Forth is usually not case-sensitive.

    Keep in mind, though -- I'm only a Forth neophyte. :)
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-01-01 17:19
    David Betz wrote: »
    I just installed Tachyon on one of my QuickStart boards and it seems to work fine! I'm wondering though if there is a way to remove the case sensitivity. It's kind of a pain to have to type "DUP" instead of "dup". Would that be contrary to the Forth philosophy?

    What I could do to improve interactive typing is to implement an autocase feature. If a word was not found in the dictionary and it wasn't a number then either a conversion is performed to uppercase and the dictionary is searched again or else a non case-sensitive search is performed. Since this would really only be during console interaction rather than loading source code modules it shouldn't matter that the search is a bit slower.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-01-01 17:23
    Using this build
    GO
    NAMES:  $54C1...74CB for 8202 (0532 bytes added)
    CODE:   $0000...524F for 12869 (2470 bytes added)
    CALLS:  0161 vectors free
    RAM:    0626 bytes free
    
    AUTORUN BOOT
    MODULES LOADED:
    48A9: NETWORK.fth         WIZNET NETWORK SERVERS 131211.1530
    41ED: W5200.fth           WIZNET W5200 driver 131211.1530
    38E0: MULTIFILE.fth       FAT32/16 MultiFile Layer V1.1 131207-0000
    31A5: SDCARD.fth          SD CARD Toolkit - 131114.0000
    3003: QuickStart.fth      QuickStart + W5200 HARDWARE DEFINITIONS 131204.1200
    17C0: EXTEND.fth          Primary extensions to TACHYON kernel - 131212-1200
    
    *** Tachyon Forth Network and File Server ***
    
    Mounted SD Card
    Media mounted as 3C18.8F1F          NO NAME     FAT32    Cluster size = 32,768   Sectors = 15,269,888
    

    Running this build, w/o AUTORUN, I get File-Zilla to connect, and it sends a list. Then I try to transfer ROM0.BIN to my iMac and the 5200 refuses the connection.. .WHY? See FileZilla screenshot below

    That passive port is all wrong, it should be a random port within a confined range. The directory listing requires the data port so the connection is refused because the port is way out of rnage. I will check my system and get back to you. Have updated the files in the meantime.

    EDIT: Just checked mine and it worked fine although the port reported in decimal is incorrect although the port parameter is fine.
    [FONT=courier new]
    Command:    PASV
    Response:    227 Entering Passive Mode with port 2857207046(192,168,16,150,170,77)
    Command:    LIST
    Response:    150 Here comes the directory listing
    Response:    226 Directory send OK
    Status:    Directory listing successful[/FONT]
    

    EDIT: The port it tried to use in your case was port 49599 but your firewall or router may be blocking that.
    Either configure the firewall/router or adjust the range:
    [FONT=courier new]
    [/FONT][FONT=courier new][COLOR=#000000]#40,000     == #ftpmin[/COLOR]
    [/FONT]
    [FONT=courier new][COLOR=#000000]#50,000     == #ftpmax[/COLOR]
    [/FONT]
    

    The reason the decimal version was wrong is because of a a simple @ vs W@ :)
    [FONT=courier new]pub PASV
         ON LANLED
        GETPAS                                        \ pick a random port in the specified range
        ." 227 Entering Passive Mode with port " [B][COLOR=#ff0000]dataport W@ .DEC[/COLOR][/B]        \ Response with msg and port
        ." (" @srcip E@ .IPD COMMA dataport 1+ C@ .BYTEDEC COMMA dataport C@ .BYTEDEC ." )" CR     
        FTPDAT SOCKET sCLOSE                                 \ Prep the data port socket
         TCP dataport W@ PORT! sOPEN sLISTEN .CONNECTED                \ Set the port and open listen for connection
        FTP SOCKET LAN                                    \ switch back to FTP socket (precaution)
        ;
    IMMEDIATE[/FONT]
    
  • David BetzDavid Betz Posts: 14,460
    edited 2014-01-01 18:01
    What I could do to improve interactive typing is to implement an autocase feature. If a word was not found in the dictionary and it wasn't a number then either a conversion is performed to uppercase and the dictionary is searched again or else a non case-sensitive search is performed. Since this would really only be during console interaction rather than loading source code modules it shouldn't matter that the search is a bit slower.
    As is obvious, I'm not a Forth expert but I think that having different behavior when using Forth interactively from what happens when you load a file is likely to be confusing. I'll just try to remember to typing DUP in uppercase. At first I thought I had installed Tachyon wrong since I got a series of question marks every time I entered "dup ". At least now I know that it was my typing error not a problem with my installation.

    Thanks,
    David
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-01-01 18:56
    David Betz wrote: »
    As is obvious, I'm not a Forth expert but I think that having different behavior when using Forth interactively from what happens when you load a file is likely to be confusing. I'll just try to remember to typing DUP in uppercase. At first I thought I had installed Tachyon wrong since I got a series of question marks every time I entered "dup ". At least now I know that it was my typing error not a problem with my installation.

    Thanks,
    David

    I know that there is this tendency in the programming language world to make the language case insensitive but that seems like a waste to me and plus I like to know a bit about the word when I read code without having to resort to really_long_names_to_describe_it. If a word is in all capitals then it's normally an action word that does something. Mostly the constants and variables are in lower case as they simple leave something on the stack. This is my basic although not strict Forth "philosophy" if you like. I bend and break my own guidelines frequently but I do try to work with some guidelines anyway.
  • David BetzDavid Betz Posts: 14,460
    edited 2014-01-01 19:04
    I know that there is this tendency in the programming language world to make the language case insensitive but that seems like a waste to me and plus I like to know a bit about the word when I read code without having to resort to really_long_names_to_describe_it. If a word is in all capitals then it's normally an action word that does something. Mostly the constants and variables are in lower case as they simple leave something on the stack. This is my basic although not strict Forth "philosophy" if you like. I bend and break my own guidelines frequently but I do try to work with some guidelines anyway.
    Thanks for the explanation. I understand your philosophy since it matches the C philosophy at least with regards to case sensitivity. :-)
  • D.PD.P Posts: 790
    edited 2014-01-02 00:40
    I've only used this in server mode so far but I will have a look at client mode. The WIZnet chips are nice except they have lots of little idiosyncrasies such as not being able to write certain registers when you want to, only when the chip feels it's okay! Watch that IP notation as you are specifying it in hex so that it will end up as $10101210 rather than &10.10.1.210

    If you create a register defintion such as sDPORT you might consider having it also perform the write to register operation. This looks cleaner IMO and you don't have to remember what width it is either.

    Delving throught the WizNet C, C++ files to find how to set these registers is such a PITA. What a mess that driver is, files everywhere with overloaded functions that only a Mother could love. Now that I see how elegant FORTH is for driver work I know why my mentor would only write drivers in FORTH, even if he had to build his own FORTH first which he did many times I guess. This was before my time with him and any experience with FORTH.

    Still hunting for this elusive function definition in the source: writeSnDIPR() to unlock the writing of the magic registers, gads!

    Update: Jewel from WizNet Forun: "You should be write socket register value before status register is init."
    Well okay I'll just try that then!

    Update: No joy writing these registers after a PWR cycle, RST cycle, socket stat = 0, socket stat = init or any other combination I tried, obviously not the right combo yet. WizNet says to check the reference code, gads x 2. Better go look at the pasm driver for a while.

    ************** HOT TIP ******************
    Before attempting to write to the following destination registers: ip, port and mac do this why the socket status is not INIT.
    : setwint ( intval -- ) sINTS LC! ;
    $FF setwint
    
    you will only be able to read the registers after sOPEN, sCONNECT so it seems

    Hat tip to the W5200 spin and pasm driver writers! Moving on...
  • richaj45richaj45 Posts: 179
    edited 2014-01-02 11:32
    Hello:

    Does SimpleIDE compile Tachyon Forth correctly?

    As i remember reading Tachyon takes advantage of some BST features so may it will not compile correctly in SimpleDE.

    Has anyone tried yet since, obviously i have not?

    cheers,
    rich
  • max72max72 Posts: 1,152
    edited 2014-01-02 14:54
    I used the proptool recently, so I guess the extra bst requirement has been relaxed.
    Massimo
  • richaj45richaj45 Posts: 179
    edited 2014-01-03 09:11
    Hello:

    What would be the version of Tachyon that would be complete but not embellished as newer version are?
    My purpose is to study and learn from the code and maybe extend it in a different direction as a new application.

    cheers,
    rich
  • D.PD.P Posts: 790
    edited 2014-01-03 10:47
    richaj45 wrote: »
    Hello:

    What would be the version of Tachyon that would be complete but not embellished as newer version are?
    My purpose is to study and learn from the code and maybe extend it in a different direction as a new application.

    cheers,
    rich

    I would think you would start with lastest Tachyon Kernel. You can stripe out anything you don't need once you understand the structure. It's up to you to load the rest of the goodies via extend.fth.... which could be stripped down an well. The Kernel doesn't contain all the servers etc just core words and the Tachyon VM. I have been able to load everything and the sink and still have a bunch of room for a large embedded application. Get your "project" running then optimize/refactor. Peter took a timer task example I wrote and paired it down by 75%, ouch but I did learn a bunch. Recently I've been working with different chips, SPI and I2C and poking and peeking values to them has never been easier, if I2C and SPI was ever suppose to be easy in the first place.

    Peter will have the last word here, this is my basic experience so far. Good luck.
  • max72max72 Posts: 1,152
    edited 2014-01-03 14:20
    I agree.
    at every version it looks like Peter is stripping down the kernel to a very tight and basic tool.
    Everything else is loaded afterward, so I guess the latest is the best starting point.
    On the tachyon pages there still is a link to version 1, by the way..
    Massimo
  • MJBMJB Posts: 1,235
    edited 2014-01-04 12:34
    I know, it shouldn't be much effort, but if anybody has done it already - and is willing to share -, then I'll do s.th. else ...
  • D.PD.P Posts: 790
    edited 2014-01-05 20:19
    I've got the client sockets working correctly now. I need to run some untethered tests i.e. don't have a USB cable attached to the BOE.

    Everything "AUTORUN"s fine as long as the USB is plugged into the computer but the BOE doesn't "BOOT" elsewise?

    What am I missing?

    Thanks
  • base2designbase2design Posts: 78
    edited 2014-01-06 22:10
    Does Tachyon support using libraries from OBEX? I'm a little lost looking at the dropbox repository but would love to tinker around with Forth and SIDcog.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-01-06 22:25
    D.P wrote: »
    I've got the client sockets working correctly now. I need to run some untethered tests i.e. don't have a USB cable attached to the BOE.

    Everything "AUTORUN"s fine as long as the USB is plugged into the computer but the BOE doesn't "BOOT" elsewise?

    What am I missing?

    Tachyon does serial break detection to allow for remote resetting so depending upon your hookup then this may be the case. A check is made in case the receive line is simply floating which does not result in a reset, so it has to be a valid break.Easiest way to check is to disable the receive cog in your startup with "0 STOP". You can always get back into it to reenable by holding down the ^A key during reset which will abort an autorun.

    Thanks
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-01-06 22:29
    Does Tachyon support using libraries from OBEX? I'm a little lost looking at the dropbox repository but would love to tinker around with Forth and SIDcog.
    I have used the VGA bitmap object directly but since that is just PASM that runs in it's own cog there wasn't anything much to change whereas most of the objects available have Spin wrappers which can't be used. In many instances I find that much of this Spin code is redundant anyway. I will take a look at SIDcog though to see if there is a possibility or using it.


    EDIT: Looks easy enough to convert the few Spin methods and load the binary straight into a cog. Here's a conversion of a Spin function:
    [FONT=courier new]pub [B]setADSR[/B] ( attack, decay, sustain, release channel -- ) 
    {
    Sets the envelope values of a SID channel            
    - channel - The SID channel to use. (0 - 2)                    
    - attack - The attack value. (0 - 15)                          
    - decay - The decay value. (0 - 15)                            
    - sustain - The sustain value. (0 - 15)                             
    - release - The release value. (0 - 15)                        
    }
    
        3 SHL >L                             \ offs := channel<<3 (IX (top of loop stack) is the channel offset)
                                             \ STACK = ( attack decay sustain release ) 
        $0F AND SWAP $0F AND 4 SHL OR        \ (release&$F) | ((sustain&$F)<<4)
        ch1_sustainRelease IX + C!           \ byte[@ch1_sustainRelease + offs] := 
                                             \ STACK = ( attack decay )
        $0F AND SWAP $0F AND 4 SHL OR        \ (decay&$F) | ((attack&$F)<<4)
        ch1_attackDecay IX + C!              \ byte[@ch1_attackDecay + offs] := 
        L> DROP                              \ discard offset
        ;
    
    [/FONT]
    

    Of course this will look even simpler once I factor out code:
    [FONT=courier new]pub [B]setADSR[/B] ( attack, decay, sustain, release channel -- ) 
    {
    Sets the envelope values of a SID channel            
    - channel - The SID channel to use. (0 - 2)                    
    - attack - The attack value. (0 - 15)                          
    - decay - The decay value. (0 - 15)                            
    - sustain - The sustain value. (0 - 15)                             
    - release - The release value. (0 - 15)                        
    }
    
        3 SHL >L                             \ offs := channel<<3 (IX (top of loop stack) is the channel offset)
        NIB>BYTE ch1_sustainRelease IX + C!  \ byte[@ch1_sustainRelease + offs] := 
        NIB>BYTE ch1_attackDecay IX + C!     \ byte[@ch1_attackDecay + offs] := 
        L> DROP                              \ discard offset
        ;
    
    [/FONT]
    
  • D.PD.P Posts: 790
    edited 2014-01-06 23:10

    Well I put
    0 STOP 
    
    Into my AUTORUN "word" and it still doesn't boot without the USB cable and as a bonus ^A doesn't abort the AUTORUN either so know I need to rebuild the world to get back in.

    I've had this issue with everyboard I use, I could really use a simple example of a booting tachyon system that does not rely on a USB connection.

    I'm doing something wrong obviously.
Sign In or Register to comment.