Jump to content
IGNORED

Stevie v1.4H programming editor


retroclouds
 Share

Recommended Posts

On 2/6/2021 at 2:57 PM, retroclouds said:

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

 

2021-02-06 Stevie v1.0

 

How much of the 64K ROM space does Stevie use.

Asking for a friend...   :) 

 

(that's an enviable code space) 

  • Like 1
  • Haha 1
Link to comment
Share on other sites

9 hours ago, TheBF said:

How much of the 64K ROM space does Stevie use.

Asking for a friend...   :) 

 

(that's an enviable code space) 

 

Have to take a look the next time when building the cart image.
What I can say is, that the first 2 banks were full and the next 2 banks about half full if I remember correctly.

But as part of the refactoring I decided to go to 64K right away to spread the code and group code per purpose.

 

Bank 0: “Jill” - Startup code, resident spectra2 and stevie modules. Copied to low memexp

Bank 1: “Jim” - Main editor code.

Bank 2: “Jacky” - File operations

Bank 3: “John” - Dialog code, menu entries and TI Basic support (will move to other bank)

Bank 4: “Janine” - Extended functions of main editor. Tabs, ruler, color code, …

Bank 5: “Jumbo” - Pattern data, sprites, etc.

Bank 6: “Jenifer” - Still empty

Bank 7: “Jones” - Full spectra2 library

  • Like 5
  • Thanks 2
Link to comment
Share on other sites

I've released Stevie 1.2Q

 

You can grab the binaries here:

 

 

This time there are 2 different cartridge binaries:

 

1. As usual we have the 30 rows 80 columns mode version.
   That one works best on the TI-99/4A with F18A and in the JS99er emulator.
   
2. Also have a 24 rows 80 columns mode version.
   This version is meant for using with the classic99 emulator.
   Don't see a reason to use it on the TI-99/4a itself, but if you do
   see a legit reason then let me know, I'm interested in your use case.

 

 

One thing to notice is, that some of the keyboard shortcuts have moved again.
That is due to technical reasons and for better compatibility. 
Check the help screen for current definitions.

 

The list of changes that made it to Stevie 1.2Q is quite long.

 

Check the issue tracker for full details:
https://github.com/MirrorPusher/Stevie/issues?q=is%3Aissue+is%3Aclosed

 

Features:

#46 Multiple help pages in help dialog
#43 Use KSCAN instead of custom keyboard scanning solution
#42 Improve compatibility with classic99
#41 Introduce session ID display in TI Basic
#40 Support multiple TI-Basic sessions
#39 Add file append functionality
#34 Smart filename selection on file load/insert/save
#26 Add print file option
#11 Upgrade to latest xas99 version
#08 Shortcut: Position cursor on bottome line of screen
#07 Insert file at cursor
#06 Clipboard file functionality


Bugfixes:
#39 Reset SAMS to default bank layout upon program exit
#32 Flickering in editor dialogs
#31 Fix color clash on help dialog
#29 Crash on file save/load with no filename given
#05 Cursor moves out of editor area into bottom row
#03 Crash on long filename

 

 

As usual bugs can be reported 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

 

 

Note: the classic99 cartridge binary has "(24X80)" in the program title.

image.png

 

 

Edited by retroclouds
  • Like 2
  • Thanks 2
Link to comment
Share on other sites

On 7/18/2021 at 6:26 AM, 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.

@jedimatt42 Would be interesting to know if Stevie 1.2Q is any better with your USB keyboard. My hope is that now that I've switched to OS rom KSCAN there's an improved compatibility.

  • Thanks 1
Link to comment
Share on other sites

I've released Stevie 1.2S based on the feedback and suggestions of @Vorticon

  • First of all there is a regression as of Stevie 1.2Q which prevents key auto-repeat from working (after switching to the console KSCAN routine).
    If you want to learn more, check here: http://www.unige.ch/medecine/nouspikel/ti99/keyboard.htm#auto-repeat

    Did some tests with key autorepeat, but they didn't work out at this time. So in Stevie 1.2S I got rid of any delay loops and just live with it for now. 
    Benefit is that Stevie feels more responsive and also behaves well in classic99 CPU overdrive mode. So I'm currently biased on how to further proceed with this.
    Probably spend my attention to some things that are more fun, and come back to this at a later time. I just don't like burning CPU cycles in key debounce loops.
     
  • Feature: Insert new line upon pressing return when in insert mode
    As requested by @Vorticon
    It would be handier to have a new line inserted automatically upon pressing Return when in Insert mode. This is the usual behavior in Preditor and better than having to use F8 repeatedly for line insertion.
    https://github.com/MirrorPusher/Stevie/issues/48
    If you are in insert mode, then pressing return will push the following line down and insert a new line there. If you are in overwrite mode, the behaviour is the same as in Stevie 1.2Q
    Thank you @Vorticon for testing and your feedback, it is much appreciated!

 

 

As usual bugs can be reported 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

 

Features:

#48 Insert new line upon pressing return when in insert mode

 

Regressions:

#47 Key autorepeat no longer working

  • Like 3
Link to comment
Share on other sites

  • The title was changed to Stevie v1.3Q programming editor

I've released Stevie 1.3Q

 

Usability:

  • Reworked menu system for easier navigation on real-iron and emulators.
    • Support 2 level navigation.
    • Added 'Shortcuts' menu for easy access to editor features.
    • Can now close menu by pressing 'SPACE' key.
       
  • Added possibility to load finalgrom99 cartridge via 'Cartridge' submenu.
    For this to work the cartridge image files must be present on FG99 SD card in same directory as Stevie.
    • Currently supported:
      • Extended Basic G.E.M (XB29GEMG)
      • Rich Extended Basic   (RXBG)
      • Force Command         (FCMDG)
      • fbForth                      (FBFORTHC)
         
  • Reworked build-system. Details: https://github.com/FilipVanVooren/stevie/issues/62   
  • Stevie now licensed under GPLv3

      
TI Basic integration

  • Possibility to unpack ("decrunch") TI Basic program to BASIC source code in Stevie editor.
  • Filename detection if TI Basic program is saved from inside TI Basic session.
  • AutoUnpack option exists (default is off). 
  • Possibility to resume Stevie session after quiting TI Basic to title screen (or calling external program).
  • Added option 'RESET STEVIE MEMORY' to TI selection screen. Used for resetting stevie if resume fails because of memory corruption.

         
Editor

  • Goto line functionality added
  • Added Possibility to turn on/off AutoInsert functionality. Is off by default.
  • Added possibility to back-tab cursor
  • Changed some editor keys for easy access on real-iron as well as emulators (tested with classic99 and js99er).
  • Switch to latest TI Basic session via FCTN-0 key.
  • Filename scan in editor text. Move cursor to a filename in the editor and file open dialog will pre-select the detected file.

    

Bug-fixes

 

Please be aware that the TI Basic integration is still a work in progress and there are bugs lurking there, always save your editor files often.

In case of a lock-up after returning from TI Basic, you might need to select the 'RESET STEVIE MEMORY' option for Stevie to proceed working.
 

Have fun! 

  • Like 4
Link to comment
Share on other sites

  • The title was changed to Stevie v1.4H programming editor
Posted (edited)

It's time for Stevie 1.4H

 

Usability / Features

  • Support lower case input in command buffer pane
  • Renamed 'Configure' main menu to 'Options'
  • Introduce 'Fonts' submenu under 'Options' and change default font
  • Introduce Master Catalog functionality
  • Configure Master Catalog file in 'Options' submenu
  • Added some more color schemes

 

Technical stuff

  • Vectors per bank increased from 32 to 96
  • Refactored many of the build flags & some code
  • Fine-tune FastMode IO for devices like HRD4000
  • Additional hint above bottom row (used in master catalog and TI-Basic mode)


Bugfixes

  • Insert line (FCTN 8 ) crashes stevie
  • Prevent crash when deleting block
  • Next/Previous file: crash when filename ends with whitespace
  • Some more code changes for improved stability
     

 

The full list of issues I worked on can be found here:

https://github.com/FilipVanVooren/stevie/issues?q=is%3Aissue+is%3Aclosed

 

Have fun!

 

 

Here's the proof-of-concept bash script I used to create the master catalog on my TIPI. 

Spoiler
#!/usr/bin/env bash

# Catalog starts on line 5
line=5

# Clear master catalog
rm -f MASTCAT

l="------------------------------------------------------------------|-------|-----"
h="Path/Filename                                                     |Size(b)| Line"


# Create catalog files of subdirectories
echo "# Created: $(date)" >MASTCAT
echo -e "$l\n$h\n$l"     >>MASTCAT

for fname in $(find SRC -print | sort);
do
   # TIPI file path for accessing file
   fpath="TIPI.${fname//\//.}"

   if [ -d "$fname" ]; then
      # It's a directory, skip
      echo -n ".";
   else

      # Trim filename
      if [ ${#fpath} -gt 66 ]; then
        fpath="${fpath:0:64}.."
      fi

      # Skip hidden sector files
      if [[ $fname != *".sectors"* ]]; then
         # Print catalog entry
         printf "%-66s|%6d |%4d\n" \
                "${fpath}" \
                "$(stat -c %s ${fname})" \
                $line >>MASTCAT

         ((line=line+1))
      fi
   fi
done

echo "$l"                      >>MASTCAT
echo '# End of master catalog' >>MASTCAT
echo ' Done!'

# List master catalog content
cat MASTCAT

exit 0

 

 

Edited by retroclouds
  • Like 8
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...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...