Shop OBEX P1 Docs P2 Docs Learn Events
Spin Tools IDE - Page 30 — Parallax Forums

Spin Tools IDE

1242526272830»

Comments

  • wummiwummi Posts: 111

    @macca
    1. I update MacOS to 26.2 and the Multi-Line selection of text is still not working.
    2. Do you find the issue with complex structs I reported in #869

  • maccamacca Posts: 966

    @wummi said:
    @macca
    1. I update MacOS to 26.2 and the Multi-Line selection of text is still not working.
    2. Do you find the issue with complex structs I reported in #869

    Yes, I found and fixed the issue with your complex structure, I'm going to do a release later today that should also fix the text selection issue (hopefully, can't verify myself).

  • bob_g4bbybob_g4bby Posts: 489
    edited 2025-12-15 15:49

    Apologies if this is already raised. With Spin Tools IDE 0.50.0, I get

    when hovering over .sine1, .sine2, .sine3 labels in column one, but not when hovering over label SINE. Here's my code:-

    DAT                                                             { PASM2 code }
    
                    org
    
    SINE
    ' Fill BUFFER with an i-q sinewave - triggered by ATN
                    waitatn                                         ' wait for the go-ahead
                    getct _cyclestart                               ' mark the start time
                    rdlong ptrb,        ptra[BUFFERPTR]             ' set ptrb to point to BUFFER
                    push                ptrb
                    mov _sigbuffsize,   ##sigbuffsize
                    sub _sigbuffsize,   #1
                    shl _sigbuffsize,   #3
                    add ptrb,           _sigbuffsize                ' ptrb points to last sample in the BUFFER
                    rdlong _real,       ptrb++
                    rdlong _imag,       ptrb
                    mov _sampleangle,   ##binangle
                    mov _binangle,      _sampleangle
                    pop                 ptrb
                    mov _sigbuffsize,   ##sigbuffsize-4             ' make allowance for preload
                    wrfast #0,          ptrb                        ' set up FIFO for writing to BUFFER
    
                    rep @.sine1,        #4                          ' preload the cordic engine
                     setq _imag                                     ' for 4 samples
                     qrotate _real,     _binangle                   ' 4 x 14 = 56, the cordic processing time
                     add _binangle,     _sampleangle
                     waitx #6                                       ' pad to be a 14 cycle loop
    .sine1
                    rep @.sine2,        _sigbuffsize                ' this is a 14 cycle loop
                     getqx              _realresult                 ' read back result from cordic
                     getqy              _imagresult
                     wflong _realresult                             ' write real result into BUFFER
                     wflong _imagresult                             ' write imag result into BUFFER
                     setq _imag                                     ' send another rotate to cordic
                     qrotate _real,     _binangle
                     add _binangle,     _sampleangle                ' prepare angle for next sample
    .sine2
                    rep @.sine3,        #4                          ' read the last 4 results out
                     getqx              _realresult
                     getqy              _imagresult
                     wflong _realresult                             ' write real result into BUFFER
                     wflong _imagresult                             ' write imag result into BUFFER
    .sine3
                    getct _cycles
                    sub _cycles,        _cyclestart                 ' mark the finish and calculate
                    debug(UDEC_LONG(_cycles))                       ' the execution time (18456 cycles)
                    jmp                 #SINE                      ' and go wait for another cycle via a relative jump
    

    Enjoying using the IDE, however, Bob

  • maccamacca Posts: 966

    @bob_g4bby said:
    Apologies if this is already raised. With Spin Tools IDE 0.50.0, I get
    when hovering over .sine1, .sine2, .sine3 labels in column one, but not when hovering over label SINE. Here's my code:-

    Will look at it.

  • maccamacca Posts: 966

    Released version 0.51.0

    This release updates the SWT library to the latest Eclipse 4.38 release that should fix the MacOS text selection issue.

    Some bugfixes, including the complex structure example posted by @wummi, the mouse hover issue above and the parameters range check on some PASM instructions.

    Added font selection for the file browser, objects tree and overview panels (all shares the same preference), in Preferences -> General -> Font, the default should be the OS theme default.

    For MacOS users, I have updated the Github runners to MacOS-15 becase the previous x86_64 version was deprecated, and in few months the x86_64 runners will be dropped so I won't be able to produce x86_64 Mac builds, hope this doesn't cause any problem.

    Other changes:

    • Update to Eclipse SWT 2025-12 (4.38)
    • Fixed long-align check on structure members
    • Added nested structure members suggestions
    • Fixed structure size update and circular references
    • Fixed structure variables highlight
    • Fixed PASM instructions arguments range check
    • Added documentation and support links
    • Added window font selection

    Full change log:
    https://github.com/maccasoft/spin-tools/compare/0.50.0...0.51.0

  • JonnyMacJonnyMac Posts: 9,566
    edited 2025-12-16 19:31

    Thank you, Marco. The outline is much easier for me to read using Consolas and a slightly bigger size.

    A niggly thing... It would be nice if there were more contrast between the icon colors in the object tree. Would it be possible to use the folder icon colors from Propeller Tool? I poked around your GitHub repository and found that those icons are 16x16 PNGs. In the spirit of imagining you saying, "Help me help you" (great line from the movie, Jerry Maguire), I downloaded the object tree icons and made versions that use Propeller Tool colors. They're a bit simpler with less shading, but I think this will help the contrast so that identifying local versus library files will be easier.

    Thanks for considering, and thanks, again, for the update. I'm sure I speak for of a lot of forum members when I say that we sincerely appreciate everything you're doing with Spin Tools IDE, and being open to user requests.

    16 x 16 - 206B
    16 x 16 - 206B
  • wummiwummi Posts: 111

    @macca
    Thanks for Vers. 0.51
    The Problems with MacOS 26.x text selection and complex structs are fixed.

  • maccamacca Posts: 966

    @JonnyMac said:
    A niggly thing... It would be nice if there were more contrast between the icon colors in the object tree. Would it be possible to use the folder icon colors from Propeller Tool? I poked around your GitHub repository and found that those icons are 16x16 PNGs. In the spirit of imagining you saying, "Help me help you" (great line from the movie, Jerry Maguire), I downloaded the object tree icons and made versions that use Propeller Tool colors. They're a bit simpler with less shading, but I think this will help the contrast so that identifying local versus library files will be easier.

    I have added your icons, seems good to me:

    I'll use them in the object tree only, the file browser still uses the current icons to be consistent. Maybe it would be good to better highlight the spin files, however I would like to keep the color gradient style.

    Just for info, I'm using the Fugue Icons from https://p.yusukekamiyamane.com/ there is also the PSD source, however it doesn't import correctly with Gimp (even the latest version 3.x has problems).

    Thanks for considering, and thanks, again, for the update. I'm sure I speak for of a lot of forum members when I say that we sincerely appreciate everything you're doing with Spin Tools IDE, and being open to user requests.

    Thank you!

  • maccamacca Posts: 966

    @wummi said:
    @macca
    Thanks for Vers. 0.51
    The Problems with MacOS 26.x text selection and complex structs are fixed.

    Excellent!

  • JonnyMacJonnyMac Posts: 9,566
    edited 2025-12-19 15:49

    I have added your icons, seems good to me:

    I agree. Grazie! Grazie! Grazie!

    I'll use them in the object tree only...

    No problem -- it's a visual thing for me. Here's an example where better contrast would be helpful.

    A bit of a chuckle... in that same post I was going to ask if you could show the file location by hovering over an element in the object tree -- but it's already there!

    Again, thank you so much for this great tool!

  • RaymanRayman Posts: 15,925

    Great work here, couple comments...

    in an if expression like if n < "a"
    doesn't 'a' mean the same thing as "a" ?
    Compiler doesn't like the first...

    I do like the "View Character Chart..." feature of Prop Tool.
    Start that up a lot just to use that...

  • JonnyMacJonnyMac Posts: 9,566

    Remember that an apostrophe (single quote) is a line comment character in Spin.

  • RaymanRayman Posts: 15,925

    Ooops, that's right. Don't know what I was thinking... Guess mixed up with C...

  • evanhevanh Posts: 17,032

    C 'a' is same as Spin "a", it is a single character without null termination. C "a" is same as Spin string("a"), which has the null termination.

  • More importantly, the former is a single character scalar, the latter is a pointer.

  • I've started using spin tools a couple weeks ago and it's great!
    One little thing, then using debug scope, my scope screen doesn't show any data until it seems like the first whole line of data is captured...

    This is the example in spin2 document, and it does it also...

    CON _clkfreq = 10_000_000

    PUB go() | i

    debug(SCOPE MyScope SIZE 254 84 SAMPLES 128) debug(MyScope 'Sawtooth' 0 63 64 10 %1111)

    repeat
    debug(MyScope(i & 63))
    i++
    waitms(50)

    not a big deal, no urgency, just thought you might want to know...
    Thanks,
    Mike

  • RaymanRayman Posts: 15,925
    edited 2025-12-26 19:28

    Noticed some things when trying to get this raycast code to compile with FlexProp just now... Haven't done that in a while, used to work...

    Gives me a strong warning about a jatn spriteret because should be jatn #spriteret

    Also doesn't like if_b debug ("Hit!",udec(x)) Don't know why...

    But, probably a more real issue is several setq2 #SpriteListSize*SpriteListLongs*4 that should be setq2 ##SpriteListSize*SpriteListLongs*4
    Ooops, actually, that #4 shouldn't be there... That's a bad bug...

    Kind of surprised code works at all with these errors in it...

  • RaymanRayman Posts: 15,925

    Had to hunt for a way to generate a binary file... Found it under Tools-->Show Info.

    Since Spin Tools does not appear to create a binary file at every compile, maybe this should be easier to find?
    Just a thought...

  • JonnyMacJonnyMac Posts: 9,566
    edited 2025-12-26 23:07

    Tools-->Show Info.

    That's how Propeller Tool works, too -- probably modeled after that.

    The Spin Tools "( i )" toolbar option brings up the Show Info dialog.

  • JonnyMacJonnyMac Posts: 9,566

    On the toolbar... I've never been able to figure out the "annotation" and "edit location" buttons. With bookmarks in place now, I'd like to see the "annotation" or "edit location" buttons used to more between bookmarks (the other set can be removed).

    Something that always catches me out is the Tab key not replacing a selection (other keys do). I looked closely and see that when pressing Tab with a selection, it causes the cursor to move to the right side of the selection (if it's not already there).

  • maccamacca Posts: 966

    @Rayman said:
    I do like the "View Character Chart..." feature of Prop Tool.
    Start that up a lot just to use that...

    AFAIK, the Character Chart shows the Parallax font or maybe better the font in the P1 rom.
    The Parallax font can be used in Spin Tools, although is not the default, so maybe a more generic font viewer is more appropriate, it is not that easy with all the UTF-8 characters extensions, etc. also the OS should have an applet of some kind to see all fonts. I have to think about that.

  • maccamacca Posts: 966

    @Rayman said:
    Noticed some things when trying to get this raycast code to compile with FlexProp just now... Haven't done that in a while, used to work...

    Not sure you have posted in the right thread...

    Also doesn't like if_b debug ("Hit!",udec(x)) Don't know why...

    The conditional in the debug statements was introduced in PNut v50, maybe it wasn't yet implemented. Beware that the condition actually generates a skip instruction in addition to the debug instruction.

    But, probably a more real issue is several setq2 #SpriteListSize*SpriteListLongs*4 that should be setq2 ##SpriteListSize*SpriteListLongs*4

    That's an issue in Spin Tools, another missing limit check...

  • maccamacca Posts: 966

    @Rayman said:
    Had to hunt for a way to generate a binary file... Found it under Tools-->Show Info.

    Since Spin Tools does not appear to create a binary file at every compile, maybe this should be easier to find?
    Just a thought...

    @JonnyMac said:

    Tools-->Show Info.

    That's how Propeller Tool works, too -- probably modeled after that.

    Yes, that was made like Propeller Tool.
    With an IDE that can directly upload the binary code, generate a binary file is not that frequent.

  • maccamacca Posts: 966

    @JonnyMac said:
    On the toolbar... I've never been able to figure out the "annotation" and "edit location" buttons. With bookmarks in place now, I'd like to see the "annotation" or "edit location" buttons used to more between bookmarks (the other set can be removed).

    The Next/Previous Annotation buttons are used to quickly navigate though errors and warnings without the need to scroll the source or click on the bar at the right of the editor, errors take priority, so if you have a source with some errors, the buttons navigate through all errors, once fixed they navigate through warnings if any.

    The Previous/Next Edit Location buttons should work as a sort of breadcrumb to navigate through code, the implementation may be a bit flaky, but so far it works (at least for me).
    As an example, if you go to a bookmark, the previous edit location button should move back to the original location, without the need to add a temporary bookmark or remember where you were.
    Same if you CTRL+click on a method definition, the previous edit location moves back to the original location.

    The next edit location moves again to the bookmark or method definition, the location is kept until another event resets the "forward history", like clicking another bookmark.

    Something that always catches me out is the Tab key not replacing a selection (other keys do). I looked closely and see that when pressing Tab with a selection, it causes the cursor to move to the right side of the selection (if it's not already there).

    Maybe because the TAB is used to indent the block. I see that if you select the space before a statement, then the ident doesn't work. It works if you select the whole line.
    I'll see if I can fix it.

  • JonnyMacJonnyMac Posts: 9,566

    Thanks for the explanation, Marco.

Sign In or Register to comment.