+retroclouds Posted September 20, 2021 Author Share Posted September 20, 2021 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: js99er-20210920201435.webm 11 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 3, 2021 Author Share Posted October 3, 2021 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! 7 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 3, 2021 Author Share Posted October 3, 2021 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 5 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted October 4, 2021 Share Posted October 4, 2021 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. 3 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted October 4, 2021 Share Posted October 4, 2021 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. Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 4, 2021 Author Share Posted October 4, 2021 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 1 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 4, 2021 Author Share Posted October 4, 2021 (edited) I cleaned up the 1st post in the Stevie development. Added some additional topic links. Removed targets I have abandoned as of Stevie 1.1x: 32K only version, Use of FG99 RAM instead of SAMS memory Added reference to Stevie on github Edited October 4, 2021 by retroclouds 2 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 24, 2021 Author Share Posted October 24, 2021 ok, this still is very much a work in progress: inserting files at current line. Also cleaned up the menu system a bit. js99er-20211024211901.webm 7 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted November 7, 2021 Author Share Posted November 7, 2021 (edited) 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 November 7, 2021 by retroclouds 4 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted November 7, 2021 Share Posted November 7, 2021 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 3 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted November 8, 2021 Author Share Posted November 8, 2021 (edited) 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 November 8, 2021 by retroclouds Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted November 8, 2021 Share Posted November 8, 2021 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. 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted November 8, 2021 Share Posted November 8, 2021 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. 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted November 8, 2021 Author Share Posted November 8, 2021 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. 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted November 13, 2021 Author Share Posted November 13, 2021 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). 4 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted November 13, 2021 Share Posted November 13, 2021 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 3 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted November 13, 2021 Share Posted November 13, 2021 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? Quote Link to comment Share on other sites More sharing options...
GDMike Posted November 13, 2021 Share Posted November 13, 2021 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. 3 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted November 13, 2021 Share Posted November 13, 2021 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. 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted November 13, 2021 Share Posted November 13, 2021 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. 5 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted November 13, 2021 Share Posted November 13, 2021 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 5 Quote Link to comment Share on other sites More sharing options...
Tursi Posted November 13, 2021 Share Posted November 13, 2021 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. 3 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted November 13, 2021 Author Share Posted November 13, 2021 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). 2 Quote Link to comment Share on other sites More sharing options...
SteveB Posted November 14, 2021 Share Posted November 14, 2021 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... 4 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted November 25, 2021 Author Share Posted November 25, 2021 Here's a rather long demo on some of the clipboard and TI Basic integration stuff I'm currently working on. Have some more debugging to do, but it's almost ready for release. Want to have a new release out before Xmas. js99er-20211125200249.webm 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.