Out of frustration (and some wasted time) with existing offerings that I am aware of, I decided to roll my own. Presented here is a functional preview of Mr. Paint which is a text mode ATASCII drawing (not animation) program. The core features work and can be used today. It is written in C, and uses my TUI library also written in C. I will post the source to my GitHub once its ready for final release, as well as an update to my C library.
Features:
-Modern TUI interface (dialogs, progress bars, popup status, help, popup horizontal menu with drop down selections)
-File save, load, and new. Print is on the menu for now but may be removed.
-Full ATASCII support (lower, caps, special, and the inverse of those)
-Cursor wrap at screen edges
-Cursor auto advance on/off via preferences.
-Block operations (copy, paste, inverse, clear)
-Support up to 8 drives, can set default via preferences.
-Editor buffer destruction protection, aka "Are you sure?", anytime you load or quit with a modified editor screen.
-It will eventually have the ability to insert figlet strings from fonts designed with Mr. Figlet (once I get that complete).
Todo:
-Directory
-Block operations
-Print (may be on the chopping block)
-Figlet integration
Thoughts?
Fixed the save issue, and both save/load are working. Added a blinking cursor, and ability to turn on/off a soft key click. Also cleaned up a bug which let you leave inverse on at exit.
I'll get a video created tomorrow. Amis is beta testing.
OK boys and girls.. I resolved the load issue. Boiled down to how fgets works in CC65 and in combination with Atari RETURNS not really being CR or LF (155 vs 10 and 13).
With this latest version you can save and load the following:
- ATASCII screen files: ATASCII encoded, 40 x 24, no linefeeds (considered RAW mode) - invoked by setting RAW when doing save.
- ATASCII screen files: ATASCII encoded, <variable length line> x 24, with linefeeds (RETURN)
- ATASCII screen files: ATASCII encoded, <variable length line> x <variable number of lines>, with linefeeds (RETURN)
- ATASCII screen files: ATASCII encoded, 40 x <variable number of lines>, no linefeeds
To save with variable length lines, turn on Trim Trailing in Prefs (default).
To save with less than 24 lines, use the Set Marker on the last line you want to be saved (Shift-Control-M). Clear the marker by pressing the key combo again (on any line).
To add a clear character as the first character, set Add Clear in Prefs (off by default).
You can change the default drive from 1 to 8. Right now it only changes the default filenames drive (first save).
Load will load any configuration of the file saves. If a CLEAR is found as first character, it will set the Add Clear pref, which will also be used at the next save, thus preserving it.
I'll get a video up later this week. I'm working on Directory next, which I really needed during the testing so far, and wished I had.
minutes later....
And I just found an issue with the save.... Maybe a few more days....
Save routine is complete and works for the following:
-Raw mode 40x24 (no newlines, no clear)
-Normal mode (trimmed lines with newline, optional clear)
-Normal mode (untrimmed lines, optional clear)
I'll work on the load tomorrow.
QQ. When saving screens that have variable length lines, for lines that happen to have 40 characters, should a newline be added? Adding a newline to a 40 character line will effectively add 2 lines which I think is incorrect behaviour.
I have largely reworked the save routine, and rethought one of the feature functions use case, and thought of some others features.
New feature is ability to Add a clear screen at the beginning upon save. This will NOT be used for raw mode saves.
New feature is the editor will support two save modes: Raw mode (40x24) screen with no newlines; and Normal mode. Normal mode will support limiting the number of rows (bottom marker), and support both strict 40 column and variable columns with newline (RETURN). The Load function will detect how to load the file. This will provide the most flexibility in loading existing screens.
Currently the save routine is 95% complete. I need to add trimming trailing spaces for normal mode. The load routine is 60% complete, currently only detecting and handling if file was saved with add clear. and loading raw mode. I need to finish the logic for loading variable length lines.
I'm hoping to have the save/load complete by the end of the weekend, and if so I'll provide a video again.
Reworking the load and save.. Added a character map.
I have a release candidate with all core functions working - enough to draw, load and save. The rest of the icing: block operations, line operations, and directory are still outstanding. I'm also trying to device a way to highlight the cursor without using a player/missile - likely a blink.
A new feature added is trim trailing (with a preference), which will omit all blank lines at the bottom of the screen (not blanks interlaced with content). I'm deciding how useful it would be to omit trailing line space, but that poses some issues with loading a screen into the editor - unless I do an export feature.
Amis has the candidate and doing some beta testing.
It's very usable in the state it is in right now, and will help me with what I need to do. I'll release it once I get some of the advanced features complete.
Cool!
cool! I was just asking a few days ago how you guys were doing ascii art.
Outstanding! Stupendous! Have not had a new Atascii Editor since the late 1980’s! Well done! Awesome!