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:

 

  • 32 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


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-02-06 Stevie v1.0

stevie.bin

Edited by retroclouds
Screenshots added
  • Like 11
  • Thanks 4

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 4

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.

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 5
  • 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 1

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 1
  • Thanks 2

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.

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