+retroclouds Posted February 6, 2021 Share Posted February 6, 2021 This is Stevie, a new 80 columns programming editor for the TI-99/4a. Key facts: 64 kilobytes cartridge rom Written in TMS9900 assembly language Requires F18A VDP Requires 1MB SAMS memory card Requires FinalGROM cartridge (or compatible device) Only uses level 3 file I/O For better compatibility with various storage devices (tested with HRD4000B ram disk, TIPI, IDE DSR card and TI disk controller) Main features: It's fast Support 80 columns 30 rows Support 80 columns 24 rows Editor buffer with space for 10.200 lines of text (80 characters) Easy menu system 10 color schemes TI Basic integration 5 parallel TI-Basic sessions Unpack tokenized basic program from VDP memory to BASIC source code listing in editor Clipboard support (copy between files) Load finalgrom99 cartridge via 'Cartridge' submenu. Supported cartridges: Extended Basic GEM Rich Extended Basic Force Command fbForth "Fastmode IO" option on File I/O. Possibility to bypass VDP memory when loading files from device with supported DSR (ROS, IDE, ...) Help built-in (at least for keyboard shortcuts) Indicator for alpha lock up/down 2 cartridge ROM binaries exist: 30 rows 80 columns with "hardware" cursor (aka sprite cursor) Requires TI-99/4a with F18A and 1 MB SAMS. Runs in js99er emulator 24 rows 80 columns with "character" cursor Requires TI-99/4a with F18A and 1 MB SAMS. Runs in classic99 and js99er emulators. Source code: https://github.com/MirrorPusher/Stevie Issue tracker: https://github.com/MirrorPusher/Stevie/issues Development discussion thread on Atariage: 2022-03-05 Stevie v1.4H 30 rows 80 columns version stevie_v1_4h_8.bin 24 rows 80 colums verson (for classic99) stevie_v1_4h_24x80_8.bin 2022-12-31 Stevie v1.3Q 30 rows 80 columns version stevie_v1_3q_8.bin 24 rows 80 columns version (for classic99) stevie_v1_3q_24x80_8.bin 2022-01-22 Stevie v1.2S 30 rows 80 columns version stevie_v1_2s_8.bin 24 rows 80 columns version (for classic99) stevie_v1_2s_24x80_8.bin 2022-01-18 Stevie v1.2Q 30 rows 80 columns version no longer available 24 rows 80 columns version (for classic99) no longer available 2021-10-03 Stevie v1.1X no longer available 2021-02-06 Stevie v1.0 no longer available stevie_v1_3q_24x80_8.bin 11 5 Quote Link to comment Share on other sites More sharing options...
fabrice montupet Posted February 6, 2021 Share Posted February 6, 2021 Great work! I am impatient to see a V9938/V9958 implementation. 5 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted February 6, 2021 Share Posted February 6, 2021 Outstanding work! This is going to be put to very good use. 1 Quote Link to comment Share on other sites More sharing options...
Airshack Posted February 7, 2021 Share Posted February 7, 2021 Another killer-app for the SAMs card. 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted February 7, 2021 Share Posted February 7, 2021 Today I officially put Stevie to real use, loading a 20K file list downloaded from the Hidden Reef BBS. Very smooth operation. Took 9 seconds to load the entire file which is quite impressive. There is currently no other editor which can load such large files. I stumbled a little bit trying to print the file to my local printer as there was no obvious command to do so, but then remembered that PrEditor uses the Save command for that function, and it worked similarly with Stevie, just replacing the filename with PIO (or in my case PIO/2). 8 Quote Link to comment Share on other sites More sharing options...
Airshack Posted March 31, 2021 Share Posted March 31, 2021 Just tried this out for the first time as something to look at the Tombstone City code. Extremely nice and in 80-columns. Thank you! 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted March 31, 2021 Author Share Posted March 31, 2021 1 hour ago, Airshack said: Just tried this out for the first time as something to look at the Tombstone City code. Extremely nice and in 80-columns. Thank you! Thanks! Happy to see Stevie getting some actual use. ? For what it is worth, this week I started work on v1.1 The first step is to refactor code so that I have more free space in bank 1 where most of the editor code resides. I’m working on some user requests and plan to add some of the things that didn’t make it in v1.0 The version v1.0 will remain the most stable version for quite some time. But I do plan to release minor releases for trying out things. BTW thanks to @Asmusr we now have Stevie 1.0 bundled in the Apps section of the js99er emulator. So if you want to give it a quick spin, that’s the place to look for. 5 Quote Link to comment Share on other sites More sharing options...
twoodland Posted March 31, 2021 Share Posted March 31, 2021 Wow! This is awesome! Thank you so much @retroclouds 2 Quote Link to comment Share on other sites More sharing options...
gferluga Posted March 31, 2021 Share Posted March 31, 2021 Impressive... 2 Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted July 18, 2021 Share Posted July 18, 2021 Looks nice. Finally got around to trying this out. Gives my USB keyboard adapter lots of trouble. @retroclouds I would be curious to read your kscan code. So maybe I can use it to create a benchmark for testing my keyboard. 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted July 18, 2021 Author Share Posted July 18, 2021 (edited) 2 hours ago, jedimatt42 said: Looks nice. Finally got around to trying this out. Gives my USB keyboard adapter lots of trouble. @retroclouds I would be curious to read your kscan code. So maybe I can use it to create a benchmark for testing my keyboard. Thanks. I'm about to release Stevie 1.1 Even though it's only a minor version bump, it has a ton of additions (e.g. keyboard auto-repeat and a menu system), as well as many changes and bug fixes. The version 1.1 has an editor/assembler compatible keyboard mapping. So if you know how to use the Editor/Assembler editor, you should be able to navigate in Stevie without too many hassles. Back to the keyboard issues; Not sure if the keyscan routine in Stevie makes a good benchmark. I'm not using the OS ROM keyscan routine, instead I'm using the one of my spectra2 library. That routine in there is based on the work of Simon Koppelmann taken from his book "TMS9900 assembler auf dem TI-99/4a". I know there are issues with the keyboard debounce still not being accurate enough. I have been postponing reviewing/reworking it as I was unsure about the proper approach. Currently it's using some fixed/timed loops and I don't really like that, as timing could vary depending on where the code is running (thinking about it perhaps I should move it to scratchpad so it's always on the 16bit bus, or better yet make use of the TMS 9901 interval timer). Anyway, all Stevie and spectra2 code is automatically synced to GitHub when I push to my local bitbucket repo. I believe these are the relevant keyboard related files: Stevie repo (master branch) https://github.com/MirrorPusher/Stevie/blob/master/src/modules/equates.asm https://github.com/MirrorPusher/Stevie/blob/master/src/modules/edkey.key.process.asm https://github.com/MirrorPusher/Stevie/blob/master/src/modules/hook.keyscan.asm https://github.com/MirrorPusher/Stevie/blob/master/src/modules/data.keymap.actions.asm https://github.com/MirrorPusher/Stevie/blob/master/src/modules/data.keymap.keys.asm spectra2 repo (master branch) https://github.com/MirrorPusher/spectra2/blob/master/src/modules/timers_kthread.asm https://github.com/MirrorPusher/spectra2/blob/master/src/modules/keyb_real.asm For matching the Stevie 1.0 release it's best to check the corresponding 1.0 branches Edited July 18, 2021 by retroclouds Fixed GitHub links for referencing master branch 6 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted July 18, 2021 Share Posted July 18, 2021 I found repeating keys harder than I expected. I use the ROM code but wrote my own repeating code and it took some time to make it reliable and it is still not 100% although much better than my early attempts. Do you have a sense of how many bytes it takes to implement your own key routines and lookup tables? 2 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted July 19, 2021 Author Share Posted July 19, 2021 (edited) 14 hours ago, TheBF said: I found repeating keys harder than I expected. I use the ROM code but wrote my own repeating code and it took some time to make it reliable and it is still not 100% although much better than my early attempts. Do you have a sense of how many bytes it takes to implement your own key routines and lookup tables? Key routine and lookup tables are roundabout 346 bytes (spectra2 keyb_real.asm). https://github.com/MirrorPusher/spectra2/blob/master/src/modules/keyb_real.asm Then you obviously have Stevie specific code and lookup tables for auto-repeat and triggering corresponding actions (e.g. ctrl-o -> trigger file open dialog). Didn’t count that as that is something I would have to implement even when using OS ROM keyscan. Surprisingly key auto-repeat was rather easy to implement (haven’t fully tested if it behaves well in all conditions though). https://github.com/MirrorPusher/Stevie/blob/master/src/modules/hook.keyscan.asm Edited July 19, 2021 by retroclouds 2 2 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 3, 2021 Author Share Posted October 3, 2021 Here's the newest stevie v1.1x release. This version replaces the official 1.0 release and is "production ready". Since February 2021 there have been 23 internal versions (1.1a up to 1.1w) where vorticon helped testing. As usual a big thanks for that! So 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! stevie_v1.1x.bin 6 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 3, 2021 Author Share Posted October 3, 2021 @Albert and @OLD CS1 for some reason I can't edit the topic title nor the 1st post. I do have an Atariage subscription and thought I had unlimited editing possibility on my topics and posts. Does that no longer apply? Quote Link to comment Share on other sites More sharing options...
Albert Posted October 3, 2021 Share Posted October 3, 2021 2 minutes ago, retroclouds said: @Albert and @OLD CS1 for some reason I can't edit the topic title nor the 1st post. I do have an Atariage subscription and thought I had unlimited editing possibility on my topics and posts. Does that no longer apply? You can now edit the first post, including the title. Normally you can only edit posts for the first hour after a post has been made. Subscribers can edit posts for 30 days. I cannot allow indefinite editing in general as it has caused too many problems in the past (as the saying goes, the actions of a few ruin it for the many). ..Al 4 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 3, 2021 Author Share Posted October 3, 2021 5 minutes ago, Albert said: You can now edit the first post, including the title. Normally you can only edit posts for the first hour after a post has been made. Subscribers can edit posts for 30 days. I cannot allow indefinite editing in general as it has caused too many problems in the past (as the saying goes, the actions of a few ruin it for the many). ..Al I understand. Thanks for the update. ? Quote Link to comment Share on other sites More sharing options...
Albert Posted October 3, 2021 Share Posted October 3, 2021 Just now, retroclouds said: I understand. Thanks for the update. ? You're welcome! If you need to edit any other posts, feel free to PM me directly. ..Al 2 2 Quote Link to comment Share on other sites More sharing options...
Traidna Posted October 11, 2021 Share Posted October 11, 2021 Hi, I writing a MUMPS language interpreter ( cartridge with macro assembler). While the MUMPS Is going well, I’m struggling with file I/o parts, ( saving source and writing to text files from MUMPS) do you have any libraries/code/documentation from your work with your project that you can share? Thank you 1 Quote Link to comment Share on other sites More sharing options...
Albert Posted October 11, 2021 Share Posted October 11, 2021 13 minutes ago, Traidna said: Hi, I writing a MUMPS language interpreter ( cartridge with macro assembler). While the MUMPS Is going well, I’m struggling with file I/o parts, ( saving source and writing to text files from MUMPS) do you have any libraries/code/documentation from your work with your project that you can share? Thank you Wow, MUMPS, that's a language I haven't heard of in quite some time. I did professional software development in MUMPS (well before the "M" name came along) for Ambulatory Surgical Centers. Very interesting that you are writing a MUMPS language interpreter for the TI. ..Al 1 2 Quote Link to comment Share on other sites More sharing options...
Traidna Posted October 11, 2021 Share Posted October 11, 2021 36 minutes ago, Albert said: Wow, MUMPS, that's a language I haven't heard of in quite some time. I did professional software development in MUMPS (well before the "M" name came along) for Ambulatory Surgical Centers. Very interesting that you are writing a MUMPS language interpreter for the TI. ..Al I spent several years doing healthcare billing and EMR coding in DTM and later Intersystem MUMPS . 3 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 11, 2021 Author Share Posted October 11, 2021 (edited) 1 hour ago, Traidna said: Hi, I writing a MUMPS language interpreter ( cartridge with macro assembler). While the MUMPS Is going well, I’m struggling with file I/o parts, ( saving source and writing to text files from MUMPS) do you have any libraries/code/documentation from your work with your project that you can share? Thank you Sure, you can find the full source code of Stevie on GitHub https://github.com/MirrorPusher/Stevie I would suggest you open a separate thread in the development section. There are many skillful people here that can help you with file handling in assembly language. (Myself I struggled the most with required scratchpad & VDP memory layout). There are quite a few assumptions the DSR makes. You also might want to take a look at the development resources sticky thread in the development section. There are a couple of documents on file handling. Edited October 11, 2021 by retroclouds 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted October 11, 2021 Author Share Posted October 11, 2021 Forgot to mention, you also need to look at spectra2. That's my library with lowlevel functions. That's where for example the dsrlnk is included. https://github.com/MirrorPusher/spectra2 3 Quote Link to comment Share on other sites More sharing options...
Traidna Posted October 11, 2021 Share Posted October 11, 2021 29 minutes ago, retroclouds said: Forgot to mention, you also need to look at spectra2. That's my library with lowlevel functions. That's where for example the dsrlnk is included. https://github.com/MirrorPusher/spectra2 Thank you 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted October 12, 2021 Share Posted October 12, 2021 It really needs to handle color graphics.. and.....immmmUMPS hooked. 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.