With the release of CEaShell 1.0 at the end of 2022, RoccoLox Programs and I began work on another project together - an on-calc eZ80 IDE. Since the lack of convenient on-calc assembly tools is a big discouragement to those hoping to begin learning, we hoped to make a convenient, all-in-one editor and assembler to hopefully encourage more people to give assembly a try.

However, with the CEaShell 2.0 rewrite and a number of other projects, we paused work on this for awhile and resumed last month. After a lot of work, we've gotten the project to a stage where we feel like it's ready to be announced, and we're looking forward to hearing your feedback (which will also provide some motivation for us as we continue working on it)!

Features:
▪ Source code editor supporting word-wrap and up to 9999 lines
▪ Goto feature for jumping to any line in the editor
▪ Menu for inserting special characters not on the keypad
▪ Dark and light theme
▪ Optional syntax highlighting
▪ eZ80 assembler (this one is kind of obvious)
▪ Bash script to convert source files from the computer to an AppVar for the calculator and vice versa

Planned Features / In Progress:
▪ Include file support
▪ Some fasmg QOL stuff like rl and rb
▪ And more? Feel free to suggest stuff Smile

Source Code / Current State:
There's no public source code yet, as we'd like to get the project a bit more completed and optimized before we publish it. However, when we do we'll be putting it under our new-ish GitHub group, so you'll be able to find it there! Currently, we're working on restructuring some of the editor code, along with fixing some issues with the parser / lexer that should make syntax highlighting and assembling both faster and easier to expand upon.

Screenshots:
Here's some screenshots showing off the editor, syntax highlighting, and a program being assembled! We all know this is the only part of the topic people actually care about Razz



Conclusion:
That's all for now! As always it's exciting to be working on a new project and we can't wait to hear your suggestions and feedback! Smile
Dam.n that's a nice font
Wow. This looks amazing and I’d love to use it. The only thing that’s holding me back from doing so is that I’d have to memorize or look up call addresses and equates. Not sure if it’d be possible with memory constraints, but it would be amazing to be able to just type out the name of the address. Perhaps you could paste an address from a list and have a comment of the address name or added to the end of the line.
MateoConLechuga wrote:
Dam.n that's a nice font


We spent some time looking for a font that would work and we're very happy with what we found! It's a bitmap font called Cherry, made by turquoise-hexagon on GitHub: https://github.com/turquoise-hexagon/cherry

pi644721 wrote:
Wow. This looks amazing and I’d love to use it. The only thing that’s holding me back from doing so is that I’d have to memorize or look up call addresses and equates. Not sure if it’d be possible with memory constraints, but it would be amazing to be able to just type out the name of the address. Perhaps you could paste an address from a list and have a comment of the address
name or added to the end of the line.


The plan is to support include files, so when it's done you'll be able to just do something like call ti.PutS instead of $0207C0, just like working with an include file on the computer. So don't worry, you won't need to memorize a bunch of random addresses!
Looks sweet!

It would be cool if it also included a disassembler, in case you wanted to check what registers an OS function uses without having to check WikiTI or the SDK docs.
We figured people could just use PT_'s disassembler if they wanted to look more into an OS routine on-calc.
Wow! Well done this looks fantastic.

Agree with Mateo that it's a very nice font Very Happy.

I think include file support will be a great addition. The light/dark theme is a nice touch also.
Splendid. I was looking into Caesar (An on-calc C IDE) recently and I'm not sure if the project is dead or not, but this looks neat. Looking forward to a release Very Happy
tr1p1ea wrote:
Agree with Mateo that it's a very nice font :D.

Me three! How'd you find it? It's exactly the kind of readable pixel font I've spent so long looking for and finally just made myself. They came to the same conclusion I did---that you have make the x-height a pixel taller to make the 6-pixel-wide character cell work.
This does indeed look great! I love the highlighting particularly in dark mode too..
Great work so far! This is something that's sorely needed, and it's especially good to see two developers working together to make it a reality. I look forward to updates, especially about using include files/function and variable symbols.
Yeah, I've been getting into more programming recently, and I'll definitely try this program out, one of the main things that is stopping me from coding in assembly is how I don't have the time to actually pull up a computer and do it, and I think having one on the calculator would be nice.

Also, not sure if this would be possible, but will you be able to disassemble files and open them with the assembly? (this could be a really stupid question because I think you would just be able to use the file menu to open files and you don't even need the disassembler) but just asking.

Anyways, looks pretty neat, I like the font and the light and dark mode.

I have a suggestion, would it be possible to implement a find and replace tool, or maybe just a find tool? Like ctrl+f and ctrl+h on google docs, and maybe the possibility to only highlight appearances of that string when they are in quotes, parethenses, and stuff like that. I barely know anything about assembly at all so I'm not sure if stuff can go in parentheses at all but whatever.
I found this old project from 2010: https://www.cemetech.net/forum/viewtopic.php?t=5152&start=0
It's basically this for the old monochrome calcs. I don't have a calculator to test it on but the reviews all say it works really well. Hopefully this goes well too Smile
DrDnar wrote:
tr1p1ea wrote:
Agree with Mateo that it's a very nice font Very Happy.

Me three! How'd you find it? It's exactly the kind of readable pixel font I've spent so long looking for and finally just made myself. They came to the same conclusion I did---that you have make the x-height a pixel taller to make the 6-pixel-wide character cell work.


I don't really remember as it was a while ago, but I'm pretty sure we just spent some time googling and browsing fonts on GitHub.

guywithathing wrote:
Also, not sure if this would be possible, but will you be able to disassemble files and open them with the assembly? (this could be a really stupid question because I think you would just be able to use the file menu to open files and you don't even need the disassembler) but just asking.


eZ80 Studio's source files are stored as AppVars (which are just ASCII with a two byte header), so it doesn't open already assembled programs. Opening and editing disassembled programs is kind of complicated, since there isn't an easy way to differentiate between data and instructions.

guywithathing wrote:
I have a suggestion, would it be possible to implement a find and replace tool, or maybe just a find tool? Like ctrl+f and ctrl+h on google docs, and maybe the possibility to only highlight appearances of that string when they are in quotes, parethenses, and stuff like that. I barely know anything about assembly at all so I'm not sure if stuff can go in parentheses at all but whatever.


A find tool would definitely be useful. It would be a bit of work to implement, but we'll at least be thinking about it for sure!
This is really awesome
Know when a stable release will be available? Sounds to me like it's working pretty well.
I think this is cool and can't wait! There are a few things I would like to suggest if you haven't already thought of them

1. A kind of cheatsheet or menu that can pull up address values, instructions, and other things. I have a python edition of the ti-84 plus ce and it has a layout at the bottom similar to the one in this and there is a button that pulls up a menu with a bunch of python keywords and functions

2. Not the greatest idea but would be kind of cool to have a hex viewer/editor to see the hex version of your program

3. This would probably be hard to make but a debugger to view the current status of registers in memory, step forward or backward instructions, etc.

I am excited for when it releases!
This is an amazing project and I am looking forward to the first release!

One idea I just wanted to throw out there was some kind of "rescue" functionality that would allow a user to press a key to recover from a assembly program that they are developing on-calc. It would be like the "ON" keypress for BASIC programs, so if a user inadvertently writes an infinitely looping program, they can press a key and escape it without having to restart their calculator.

Implementing this would be challenging. Since an infinite loop could occur with as little as two instructions (actually, it could happen with just one instruction, but nothing that I know of can be done about that), the rescue function would have to be called after every instruction, doubling the size of the program and slowing it down. Perhaps the user could be given the choice of having the rescue option only for certain sections of code. Then, of couse, the Studio could offer the option to not apply it at all when the programmer is satisfied with their code.

It does have some significant drawbacks, but I think it would dramatically improve the on-calc ASM programmer's experience.
Just press the reset button on the back of the calculator
Well, that was what I was specifically trying to avoid. Having a rescue option would keep the user from having to press the reset button every time they made a mistake and would let them go from coding to testing back to coding much more quickly and painlessly. Plus, every time the calculator resets, you would lose everything in RAM. The rescue option would preserve the RAM, so say if the user's assembly program was editing an AppVar when it crashed (or infinitely-looped), the user could quit the program without losing the AppVar.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement