Jump to content

Recommended Posts

This is the first GA release of Stevie, a new 80 columns programming editor for the TI-99/4a. 
Some of you may have been following the Stevie development thread. For those that haven't, here are some key facts:

 

  • 64 kilobytes cartridge rom
  • Written in TMS9900 assembly language
  • Requires F18A VDP
  • Requires 1MB SAMS memory card
  • Only uses level 3 file I/O for better compatibility with the various storage devices out there (tested with HRD4000B ram disk, TIPI, IDE DSR card and TI disk controller)
     

Some of the main features:

  • It's fast
  • 80 columns, 30 rows mode
  • Edit up to 10.200 lines of text with maximum length of 80 characters each. That should be a first on the TI-99-4a.
  • 10 color schemes
  • "Hardware" cursor (uses sprite as cursor (that is something currently only possible on the F18A VDP)
  • "Fastmode" option. Possibility to bypass VDP memory when loading files from a device with a supported DSR (ROS, IDE, ...)
  • Help built-in (at least for the keyboard shortcuts)   
  • Indicator for alpha lock up/down
  • TI Basic integration


There have been 2 public betas and Vorticon has been helping me with testing the alpha releases.
So I think that for a first GA release it is quite stable. Nonetheless, please make sure you always have backups of the files you edit with Stevie.

Sorry, there's no search and replace option in this release.

 

If you want to try out Stevie, but do not have an F18A equipped TI-99/4A or a SAMS 1MB expansion card, you can give it a spin in the js99er emulator (Classic99 and MAME are currently unsupported)

 

Big thanks to vorticon for helping me with testing the alpha releases. His feedback was very valuable and it is very much appreciated.

 

Still have a lot of ideas with things I want to accomplish, but this will have to do for now. 

I've been working for almost 3 years programming Stevie, and it is now time to take a break and move on to new things.
That being said, I will look into bug fixes. Please report bugs to the Stevie development thread with a description of what happened and a screenshot if possible.

 


Have fun!

retroclouds

 

js99er-20210206205546.thumb.png.98b04ac91f3ad93418b42bbab16138f0.png

 

js99er-20210206211029.thumb.png.9a99ba7dc0d8e485a3bae2c355406050.png

 

2021-10-03 Stevie v1.1X
stevie_v1.1x.bin

 

2021-02-06 Stevie v1.0

 

Edited by retroclouds
Updated version to V1.1X
  • Like 11
  • Thanks 5

Share this post


Link to post
Share on other sites

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).

 

 

  • Like 8

Share this post


Link to post
Share on other sites

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!

  • Like 1

Share this post


Link to post
Share on other sites
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.

  • Like 5

Share this post


Link to post
Share on other sites

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.

  • Like 1

Share this post


Link to post
Share on other sites
Posted (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 by retroclouds
Fixed GitHub links for referencing master branch
  • Like 6
  • Thanks 1

Share this post


Link to post
Share on other sites

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?

  • Like 2

Share this post


Link to post
Share on other sites
Posted (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 by retroclouds
  • Like 2
  • Thanks 2

Share this post


Link to post
Share on other sites

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

  • Like 6

Share this post


Link to post
Share on other sites

@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?

Share this post


Link to post
Share on other sites
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

  • Like 4

Share this post


Link to post
Share on other sites
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. 🙂

Share this post


Link to post
Share on other sites
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

  • Like 2
  • Thanks 2

Share this post


Link to post
Share on other sites

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 

  • Like 1

Share this post


Link to post
Share on other sites
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

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
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 .  

  • Like 3

Share this post


Link to post
Share on other sites
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 by retroclouds
  • Like 1

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...