Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.


Recently I've been working on a VT100 emulator for the CE. I've connected it to my computer using my serial library and two serial adapters to record the above demo. Currently, it can take user input of letters, numbers, symbols, arrow keys, "ctrl" keys (e.g. ^C), and the delete key, send said data to a serial device, receive data from a serial device, print ASCII characters, and parse ESC and CSI escape sequences and handle the most commonly used ones.
I still need to implement the remaining CSI sequences, handle the G0 and G1 character sets properly, support graphics attributes / colors, add proper cursors, and add a way to input the Tab and Backspace keys, as well as some other stuff I'm probably forgetting.

The code is available on my GitHub, though it won't work properly without a fix that I made for usbdrvce which I will add to the toolchain soon.
I am DrDnar and I approve of this use of FontLibC.
Nice work! Keep it up
Telnet83 rides again!

This seems useful to the point that I might actually consider using it if I needed a portable terminal emulator (if I owned a CE Razz).
I've been putting off posting in this thread, but I have to say that it is looking pretty polished so far. I wonder what the speed would be like if you tried something like this: https://opensource.com/article/18/12/linux-toy-youtube-dl

Keep up the nice work! Glad to see that the usbdrvce libraries are working well (kudos to jacobly!)
I've implemented 256-color mode.

A few other SGR attributes such as bold and underline are tracked, but only foreground and background color, bold text, and inverse graphics currently work.
I also have some code to convert 24-bit true color to the nearest 24-value greyscale or 216-value RGB color as appropriate, though it's not working at the moment.

After finishing that, I plan on improving the documentation, cleaning up the code, implementing a few more common CSI sequences, then fixing srldrvce to automatically detect device type (currently it assumes everything is a FTDI232).

I also should probably include a menu to allow you to change settings rather than having them baked in at compile-time or loaded from an appvar that has no editor of any kind. I really don't feel like doing this at the moment, so if anyone would be interested in helping with that please let me know.

I've also added an echo mode that takes all input and loops it back to the terminal. You can enter escape sequences in this mode if you really want to by pressing F1 and [ at the same time, when 2nd mode but not alpha mode is on.

I've also included a font called TomThumb that's 4px wide, though because of the aforementioned lack of a functional menu it is hard to switch to. You can switch to it by changing the default font pack name and then deleting the settings appvar, or editing the settings appvar using an ICE program or an editor on a computer. The main benefit of a 4px-wide font is that you can fit all of the VT100's 80 columns on-screen at the same time, which improves compatibility. The downside is that the font is a bit hard to read, as it is monochrome and only 6 pixels tall.
  
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 1
» All times are GMT - 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