Jump to content
retroclouds

Stevie Development Thread

Recommended Posts

So I have been playing with TI Basic integration in Stevie.

Really think that TI Basic needs some love, and it's fun to mess with.

 

Not sure where this is heading to, but I'd like to make a good TI Basic integration.

That means that I can jump from Stevie to TI Basic while retaining both the Stevie editor buffer  as well as the TI Basic environment.
Part 1 (keeping the Stevie editor buffer) is in a working state now. Let's see how far I get with part 2.

 

Anyway, here's a short video:

 

 

 

  • Like 10

Share this post


Link to post
Share on other sites

I've released Stevie v1.1x

 

 

Here's a recap of what's new:

 

Features

  • Introduced menu system (press F9 while in editor mode)

    • Shortcut letters are highlighted with underscore.
  • Added TI Basic integration

    • Select B in the main menu or CTLR+/ if in editor mode.
    • Press F9 (Back) in TI-Basic command line mode for returning to Stevie.
    • Possibility to jump between Stevie and TI-Basic while keeping environment.
  • Editor

    • Added key auto-repeat functionality.
      • Press and hold down key for repeating multiple times.
    • Added line-wrap functionality

      • Possibility to continue adding characters beyond 80th character
      • Currently only active if cursor at last position on line)
    • Added possibility to jump to next tab (F7)

    • Added ruler (toggle with CTRL-U) to better indicate tabs and cursor position.

    • Easier marking of text-blocks (Mark M2 with M1 if M1 unset)

Changes

  • Key-bindings changed for compatibility with Editor/Assembler.
  • Cursor is now always a solid block for better visibility.
  • Redesigned icon for alpha lock up/down.

Bug-fixes

  • A ton of bugfixes added (and probably some new bugs introduced along the way)
    • See commit log on github for details

 

 

As usual bugs can be reported either via the Github issue tracker https://github.com/MirrorPusher/Stevie/issues 

You can also contact me on Atariage via PM or report bugs in the Stevie development thread

 

 

Have fun!

  • Like 6

Share this post


Link to post
Share on other sites

I finally wanted to get this release out to the public, as I want to concentrate on new stuff I'm going to add.

There are also quite a few changes to the use of SAMS and there's some things I really want to implement (but that may cause an unstable version for the new few minor releases)

 

So what do I have planned for the next releases:

  • Enhanced TI Basic integration
    • Copy and paste between Stevie and TI-Basic
    • multiple TI-Basic sessions
    • 30 rows-mode TI Basic 
       
  • SAMS page allocater
    • I'm wasting too many SAMS pages by having a "fixed" range of pages for each specific purpose.
      So I want to implement a page allocator that hands out new pages as required. That will also open the door to multi-file editing on Stevie
       
  • Editor enhancements
    • Got a few user requests on editor enhancements
      • Better cursor positioning
      • Rework and fine-tune keyboard scanning
    • Add search functionality
    • Make the menu system compatible with the js99er mouse-pointer
      (That's already possible for some editor actions, but not all).
       
  • Expose Stevie editor buffer as a DSR 
    • Read (and possibly write) to the editor buffer from TI-Basic
    • Main purpose is something different though. I want to integrate the Editor/Assembler assembler in Stevie.
      By exposing the editor buffer as a DV80 
  • Like 5

Share this post


Link to post
Share on other sites
6 hours ago, retroclouds said:

SAMS page allocater

  • I'm wasting too many SAMS pages by having a "fixed" range of pages for each specific purpose.
    So I want to implement a page allocator that hands out new pages as required. That will also open the door to multi-file editing on Stevie

Don't know if this is of any value but I did something with SAMS that is pretty simple but effective. It comes from a function in Forth called BLOCK.

Normally BLOCK is used for files that work as virtual memory.

 

BLOCK takes a numerical argument from 0 to >FF

It returns the CPU address of a buffer, where a block of a file is loaded, but in this case it is a 4K SAMS page that is mapped into the space.

I used all of the low RAM for two 4K buffers.

If the SAMS page is already in memory, nothing happens. 

If the page is not in memory it is pulled into the last used buffer.

 

I only have the code in reverse polish assembler. :) 

Happy to share it but you can probably make it better yourself for your purposes.

It doesn't get much simpler but it lets you grab any page anytime.

 

 

 

  • Like 3

Share this post


Link to post
Share on other sites

One request if at all feasible:

When a block is selected, could it be stored in a "clipboard" area in SAMS then copied back into a different file? This would be tremendously helpful if one keeps commonly used routines in a separate file.

Share this post


Link to post
Share on other sites
1 hour ago, Vorticon said:

One request if at all feasible:

When a block is selected, could it be stored in a "clipboard" area in SAMS then copied back into a different file? This would be tremendously helpful if one keeps commonly used routines in a separate file.

I've added it to the feature request list.

https://github.com/MirrorPusher/Stevie/issues/6

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

I cleaned up the 1st post in the Stevie development.

  1. Added some additional topic links.
  2. Removed targets I have abandoned as of Stevie 1.1x: 32K only version, Use of FG99 RAM instead of SAMS memory
  3. Added reference to Stevie on github
Edited by retroclouds
  • Like 2

Share this post


Link to post
Share on other sites
On 10/4/2021 at 5:05 PM, Vorticon said:

One request if at all feasible:

When a block is selected, could it be stored in a "clipboard" area in SAMS then copied back into a different file? This would be tremendously helpful if one keeps commonly used routines in a separate file.

@Vorticon could you give some details on how your workflow looks like?

In Stevie 1.2C (not released yet) I have the possibility to insert a file at the current line. Would that fit your needs?

Note that the possibility to save a marked block to file is already present in the 1.1X version. 

 

I have some more stuff to work on before I release Stevie 1.2, but this is what is now in place:

 

1. Possibility to insert file at current line in file.

2. Introduced keyboard shortcuts to move cursor to top of screen and bottom of screen. For this to work, I had to rearrange keyboard shortcuts again. This is the combination that works on both the TI-99/4a and in Google Chrome (js99er). (Getting keys to be accepted in a browser is not that trivial, as some keys can’t be passed to js99er. They are intercepted by the browser itself to do actions like open a new browser window, new tab, etc.).

 

These are the shortcuts in place now:

  • ctrl-a Mark a block (shortcut moved from ctrl-v)
  • ctrl-v Move to top of file
  • ctrl-b Move to bottom of file
  • fctn-v Move to top of screen
  • fctn-b Move to bottom of screen

3. Redesigned help screen for better overview. This will be further enhanced in a future version

 

I’ll do some more bugfixing before I release 1.2* to the public.

 

As always you can track on what I’m working on by looking at the issue tracker in GitHub.

https://github.com/MirrorPusher/Stevie/issues

 

Edited by retroclouds
  • Like 4

Share this post


Link to post
Share on other sites

My vision is to be able to move portions of a file into another file. TI Writer/program editor incidentally has a facility to do that, something I used extensively in the past while working on a massive project (SkyChart).

How is this useful? I can keep a large file with different assembly routines for various things like setting up the bitmap screen, redefining fonts, drawing lines, etc..., and then be able to pick one or more routine, copy them into the clipboard, open another file and insert the routines there.

Being able to insert an entire file is great but it forces you to have each routine in a separate file which can be conducive to clutter.

Again, this is just a one person feature wish :)

  • Like 3

Share this post


Link to post
Share on other sites
12 hours ago, Vorticon said:

My vision is to be able to move portions of a file into another file. TI Writer/program editor incidentally has a facility to do that, something I used extensively in the past while working on a massive project (SkyChart).

How is this useful? I can keep a large file with different assembly routines for various things like setting up the bitmap screen, redefining fonts, drawing lines, etc..., and then be able to pick one or more routine, copy them into the clipboard, open another file and insert the routines there.

Being able to insert an entire file is great but it forces you to have each routine in a separate file which can be conducive to clutter.

Again, this is just a one person feature wish :)

 

I see 2 possible ways to handle this.

 

1. Implement multi-file editing capability. I originally planned to have up to 10 editor buffers (accessible via shortcuts ctrl-0 to ctrl-9). In addition to that some kind of clipboard is needed to allow copying/moving file snippets accross editor buffers.

 

2. Keep Stevie a single-file editor but implement a proper file picker with preview functionality. That way snippets can be inserted without too much hassle.

 

hmm… knowing myself I probably will end up with a combination of 1 and 2 🙂

 

Edited by retroclouds

Share this post


Link to post
Share on other sites

What about just a clipboard space that survives between files and probably resident in SAMS? One could just block select the appropriate sections from a file, close it, open another file and drop the selection there.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Vorticon said:

What about just a clipboard space that survives between files and probably resident in SAMS? One could just block select the appropriate sections from a file, close it, open another file and drop the selection there.

That's the approach I took and SAMS made that quite simple.

  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, Vorticon said:

What about just a clipboard space that survives between files and probably resident in SAMS? One could just block select the appropriate sections from a file, close it, open another file and drop the selection there.

I’ll consider and do some tests.

  • Thanks 1

Share this post


Link to post
Share on other sites
On 11/8/2021 at 2:23 PM, TheBF said:

That's the approach I took and SAMS made that quite simple.

 

On 11/8/2021 at 1:06 PM, Vorticon said:

What about just a clipboard space that survives between files and probably resident in SAMS? One could just block select the appropriate sections from a file, close it, open another file and drop the selection there.

 

I’m going to do some tests in the next days. First thing I want to try is to re-use the functionality that is already in place and bind it to some shortcuts. This is what I have in mind; a clipboard file.

 

You’r editing a file, mark a block and press a shortcut. The block is automatically saved to a file DSKx.CLIP

Load the next file and press a shortcut, the DSKx.CLIP file is automatically inserted at the current line position.

 

The cool thing about the clipboard file is TI basic integration.

You could jump into TI-Basic, run a program that opens the DV80 clipboard file, does its magic and return to Stevie.

Press the clipboard insert shortcut, and there you have it. Content is in the editor.

I have a small disk catalog program in TI Basic I want to modify so that it writes to the clipboard file.

 

The clip device/file should be configurable in some way (wasn’t there a clipboard device in classic99? have to check. Stevie does not fully run in classic99 yet, working on that too).

 

 

 

  • Like 4

Share this post


Link to post
Share on other sites
3 hours ago, retroclouds said:

. . .  wasn’t there a clipboard device in classic99?

 

Classic99 uses the Windows clipboard and you can read/write it as a file with the device name, CLIP.

 

...lee

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Sounds awesome. The only issue I foresee with using the disk as a clipboard is cluttering of the directory, unless the clipboard file is automatically deleted upon exit from Stevie. The main advantage however is that clipboard size is limited by the size of the disk, which could be quite large if a TIPI or hard disk folder is used, and you preserve the precious SAMS space for the text being edited. I assume some configuration of the target clipboard disk will be available?

Share this post


Link to post
Share on other sites
3 hours ago, Lee Stewart said:

 

Classic99 uses the Windows clipboard and you can read/write it as a file with the device name, CLIP.

 

...lee

My SNP program can use that clipboard and paste into SNP which is really cool. I'm so thankful for classic 99 copy paste feature.

  • Like 3

Share this post


Link to post
Share on other sites
4 hours ago, Lee Stewart said:

 

Classic99 uses the Windows clipboard and you can read/write it as a file with the device name, CLIP.

 

...lee

Has anyone used that functionality in the past? I'm struggling to see how this could be used from a practical standpoint during program development since Classic 99 already allows copy/paste functions from the menu.

  • Like 1

Share this post


Link to post
Share on other sites
21 minutes ago, Vorticon said:

Has anyone used that functionality in the past? I'm struggling to see how this could be used from a practical standpoint during program development since Classic 99 already allows copy/paste functions from the menu.

I have used it capture misc output from a program that I wanted to edit on the PC.

My favourite use was for DocGen, a program that read my library source code and created rough documentation. Opening output file as CLIP was  amazing! :)

I just pasted the text into Libre Office and made a book.

  • Like 5

Share this post


Link to post
Share on other sites
48 minutes ago, Vorticon said:

Has anyone used that functionality in the past? I'm struggling to see how this could be used from a practical standpoint during program development since Classic 99 already allows copy/paste functions from the menu.

 

Much as @TheBF did, I demonstrated its use for ASM>CODE , which outputs the hexadecimal code for an fbForth word assembled and compiled from fbForth ALC. See glossary (page 182) of my fbForth 2.0 manual:  fbForth 2.0: A File-Based Cartridge Implementation of TI Forth.

 

...lee

  • Like 5

Share this post


Link to post
Share on other sites
3 hours ago, Vorticon said:

Has anyone used that functionality in the past? I'm struggling to see how this could be used from a practical standpoint during program development since Classic 99 already allows copy/paste functions from the menu.

I use it too. Most common thing I use it for is LIST "CLIP", then just paste the listing into Windows. It's also faster to load from the clipboard than the keyboard, but admittedly even I usually use the paste feature instead. ;)

 

  • Like 3

Share this post


Link to post
Share on other sites
4 hours ago, Vorticon said:

Sounds awesome. The only issue I foresee with using the disk as a clipboard is cluttering of the directory, unless the clipboard file is automatically deleted upon exit from Stevie. The main advantage however is that clipboard size is limited by the size of the disk, which could be quite large if a TIPI or hard disk folder is used, and you preserve the precious SAMS space for the text being edited. I assume some configuration of the target clipboard disk will be available?

Yes, there will be a configuration option for setting the device/filename of the clipboard(s).

  • Like 2

Share this post


Link to post
Share on other sites
On 11/13/2021 at 11:41 AM, Lee Stewart said:

 

Classic99 uses the Windows clipboard and you can read/write it as a file with the device name, CLIP.

 

...lee

I feel like John Lennon .... "Nobody told me".

 

I did read the manual .. but chapter 5.3.2 just didn't stick to my memory. Now I know...

  • Like 4

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...