Jump to content
IGNORED

Stevie v1.5.32 released


retroclouds

Recommended Posts

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
  • Catalog and File picker functionality with subdirectory navigation on supported devices (TIPI, IDE, ...)
  • "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 real TI-99/4a with F18A and 1 MB SAMS.
      • Runs in js99er emulator 
         
    • 24 rows 80 columns with "character" cursor
      • Requires real 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:

 

js99er-20240204181540.thumb.png.a27a5b68655ed157fcb59dcfca66ddb9.png

js99er-20240204181523.thumb.png.0b1f7b0412b1e40eb3325c2cc81e7555.png

js99er-20240204181432.thumb.png.5b6fc8efba7842d5e9f619639956a082.png

 

 

js99er-20220118185603.thumb.png.cc748824dc3f2f1b5e2eb4ff73300160.png

 

js99er-20220118185825.thumb.png.acc10dedd6b359d912f6fe2c18bacaaa.png

 

js99er-20220118190236.thumb.png.0a318e15f28b55000b1851f9320cd726.png

 

2024-02-04 Stevie v1.5.32

30 rows 80 columns version

STEVIEC.BIN

 

24 rows 80 columns version (for classic99)

STEVIE2C.BIN
 

 

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

no longer available

 

24 rows 80 columns version (for classic99)

no longer available

 

2022-01-22 Stevie v1.2S

30 rows 80 columns version

no longer available
 

24 rows 80 columns version (for classic99)

no longer available

 

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 

 

Edited by retroclouds
Released Stevie v1.5.32
  • Like 11
  • Thanks 5
Link to comment
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
Link to comment
Share on other sites

  • 1 month later...
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
Link to comment
Share on other sites

  • 3 months later...
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
Link to comment
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
Link to comment
Share on other sites

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

  • 2 months later...

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
Link to comment
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
Link to comment
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. ?

Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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...