Building a full featured text terminal/console

An area for asking questions, making suggestion, share ideas and place circuit examples.
Post Reply
Alexander
Posts: 42
Joined: Tue May 08, 2012 11:04 am

Building a full featured text terminal/console

Post by Alexander » Wed Mar 22, 2017 4:49 pm

I am building some kind of CPU (like many people here) and it was almost complete, but output was made into RAM, and it was very unhandy. So I've decided to build a text console to output characters. This project itself has become very complex! And I've decided to share it step by step. Here I'm showing how the counters are cascaded to output each character line by line. This will be a 80x25 characters console. I even have 2 fonts of different sizes. But here is only one size 8x8 pixel ansi dos font. Another font is 6x8 pixels and the counter is much more complex. I think, that square font will be even more handy to draw asci/ansi art games.
I think, this project will be very usefull, for computer builders. And sharing it at the early stage will help to design an interface.
Attachments
terminal_incomplete.zip
(52.38 KiB) Downloaded 34 times
8x8_vertical_font.png
8x8_vertical_font.png (2.26 KiB) Viewed 1257 times

Alexander
Posts: 42
Joined: Tue May 08, 2012 11:04 am

Re: Building a full featured text terminal/console

Post by Alexander » Wed Mar 22, 2017 7:01 pm

And here is 6x8 pixel version. The counter is made using ROMs since it was complex. The display is rotated and we need to scan vertically from bottom to top.
Attachments
font_line_6x8.png
font_line_6x8.png (2.11 KiB) Viewed 1251 times
terminal_incomplete_6x8_char.zip
(102.23 KiB) Downloaded 35 times

Alexander
Posts: 42
Joined: Tue May 08, 2012 11:04 am

Re: Building a full featured text terminal/console

Post by Alexander » Thu Mar 23, 2017 8:09 am

The next thing I've done is a posibility to type a single character and not to fill entire screen.
Attachments
terminal_typing.zip
(108.1 KiB) Downloaded 37 times

Alexander
Posts: 42
Joined: Tue May 08, 2012 11:04 am

Re: Building a full featured text terminal/console

Post by Alexander » Sat Mar 25, 2017 9:11 am

Added a very complex keyboard circuit.
Internal counter is changed to make it more simple to understand it's functionality.
The latch was needed to remember the pressed button until the drawing is complete.
Next, we need a special behaviour for Enter, Backspace and Tab buttons, but still be able to print those symbols associated with them if drawing ansi picture.
Then, decide whether we need to have a random access to every position or serial access is enough?
Also, what to do when screen is full? Scroll, clear..
Do we need a caret?
Attachments
terminal_keyboard.zip
(107.92 KiB) Downloaded 39 times

Alexander
Posts: 42
Joined: Tue May 08, 2012 11:04 am

Re: Building a full featured text terminal/console

Post by Alexander » Mon Mar 27, 2017 11:13 am

I've added support for Backspace, Enter and Tab buttons. Now they behave as expected. The Backspace erases one char back(by reverting the counter), Enter goes to new line (it is done by skipping until the new line) and Tab is skipping until mod 4.
In text viewer you can load any text file and it'll be printed on display. But the text should fit the display or it will be overwritten.
In scroller you can see the possible way of scrolling the screen. The difference between text and screen height gives an effect of scrolling.
Attachments
type_view_scroll.zip
(339.39 KiB) Downloaded 32 times

Alexander
Posts: 42
Joined: Tue May 08, 2012 11:04 am

Re: Building a full featured text terminal/console

Post by Alexander » Mon Nov 13, 2017 7:52 am

The most complex thing was to make entire screen scroll up, when you reach the end of the screen. It took me almost 2 month to make it finally work! As I told before, I've build it for my CPU project and I wanted it to be as fast as possible so almost all logic is "packed" into LUTs (ROMs). It was discussed here already. Of course, more improvements may be done there. If you want more explanation about how to use it, please ask me.
Attachments
terminal_final.zip
(139.78 KiB) Downloaded 1 time

Post Reply