Nice feature addons, I can play with them with my VT525 and see how they are pretty and nice ... just, well they made the vt-protocol more spotted than a cow, and fist thing you have to do is probing your vt-term "which version are you?" and "which feature o you support?"
You haven't lived until you've programmed graphics using ReGIS / GiGi.
<ESC>P0p
S(E)(C1)
P[100,440]
V(B),[+100,+0],[+0,-10],[-100,+0],(E)
P[500,300],F(C[+100])
<ESC>\
That clears the screen then draws an outlined 100x10 rectangle, then a filled circle with radius 100.
Nice feature addons, I can play with them with my VT525 and see how they are pretty and nice ... just, well they made the vt-protocol more spotted than a cow, and fist thing you have to do is probing your vt-term "which version are you?" and "which feature o you support?"
You haven't lived until you've programmed graphics using ReGIS / GiGi.
<ESC>P0p
S(E)(C1)
P[100,440]
V(B),[+100,+0],[+0,-10],[-100,+0],(E)
P[500,300],F(C[+100])
<ESC>\
That clears the screen then draws an outlined 100x10 rectangle, then a filled circle with radius 100.
Yep loved doing things with those graphics. Wrote tuns of stuff to take files in HP-GL or Tex 41xx format and output it as Regis.
I don’t understand what you plan to have this “improved” protocol talk to
good point, especially for Linux ;D
It doesn't need to support already existing stuff, like telnet.
Likely, it will be this way:
Protocol development and initial testing
. server side client side
_________________ _________________
| | | |
| Linux/R64 | | Linux/R64 |
| arm32/le | | arm32/le |
| | | |
| myTE | | Hterm |
| | | ncurses |
|_________________| |_________________|
\____________________________________________________/
optical fiber
Optical fiber here is achieved with a miniPCIe to PCI bridge + PCI optic adapter.
R64 is a router based on MediaTek SoC. Two miniPCIe lanes.
I already have to support it, I take the opportunity.
Hterm here will work similarly to "minicom" or "screen", with its native support for ncurses so I won't need to write that stuff.
Final application
. server side client side
_________________ _________________
| | | |
| Linux/R64 | | fpga |
| arm32/le | | |
| | | |
| myTE | | Hterm |
| | | VGA/ps2 |
|_________________| |_________________|
\____________________________________________________/
optical fiber
Optical fiber here is achieved with a dedicated module.
Ania already wrote the vHDL driver, so I take the opportunity.
myTE will be the first application exploiting Hterm, it's my text editor.
Then I will write a remote-shell server for Hterm.
Kind of stdin/out/err handler for Bash, but it will be only usable to issue line commands and see their line responses.
forget things like htop and cmatrix for now.
Modifications for hterm: get rid of terminfo and termcap
The purpose of a terminfo and termcap files (one file for each terminal/mode) is to let programs (e.g. Nano, Vi, Vim, Emacs, Joe, htop, bmon, etc ...) running in the terminal know the capabilities of the terminal.
toe -a
will show many files, one for each supported terminal/mode
toe - table of (terminfo) entries
SYNOPSIS
toe [-v[n]] [-ahuUV] file...
DESCRIPTION
With no options, toe lists all available terminal types by primary name with descriptions. File
arguments specify the directories to be scanned; if no such arguments are given, your default ter-
minfo directory is scanned. If you also specify the -h option, a directory header will be issued as
each directory is
There are other options intended for use by terminfo file maintainers:
-a report on all of the terminal databases which ncurses would search, rather than only the first
one that it finds.
Termcap and terminfo, basically answer questions like:
- Does it support colors? How many?
- How many column? How many rows?
- How special keys are mapped?
etc...
A VT100 terminfo should make programs assume an 80 column monotone screen and a keyboard with 10 function keys
VT100 compliance is why the F11 .. F12 keys are traditionally not used by console programs, which is really annoying when programs using "ten" function-keys (like mc) on a terminal lacking ten usable function-keys and YOU have to accept an alternate such as escape-0, escape-1, etc because there's no intuitive "escape-11".
- no way, this has to go! -
The protocol of Hterm is fully auto-probing. When a program needs to know something it has to ask directly to the terminal instead of looking for some file in /etc/term... or /usr/share/term...
And you don't have to compile any terminfo file with program like "Tic" :D
msg Original=[suppa suppa, suppaman can fly faster than a fly and can jump higher than a earthworm blablabla better stronger than ratman]
msg Restored=[suppa suppa, suppaman can fly faster than a fly and can jump higher than a earthworm blablabla better stronger than ratman]
Original msg Length=122
Compressed msg Length=74
Restored msg Length=122
Compression Ratio=60 of 100
(Zeda's algorithm v1, dictionary ULK-11)
msg Original=[suppa suppa, suppaman can fly faster than a fly and can jump higher than a earthworm blablabla better stronger than ratman]
msg Restored=[suppa suppa, suppaman can fly faster than a fly and can jump higher than a earthworm blablabla better stronger than ratman]
Original msg Length=123
Compressed msg Length=100
Restored msg Length=123
Compression Ratio=81 of 100
(xlz algorithm)
Ummm, the above is just a short example-string, I have to run more real full screen-page and check average compression rate, min, max, but it seems Zeda's wins for simplicity.
No doubt about.
Then we also have binary-pages, containing meta attributes for each char.
Color foreground
Color background
Blinking?
Underlined?
etc
Your "Zeda's algorithm" is using a pre-loaded dictionary which must be previously shared/transmitted between the two ends.
Other algorithms are starting from zero shared knowledge.
Zeda is Ania's classmate. She decided to join our hacker team, so now I have a team of two girls, like James Bond with a blonde and a brunette :o :o :o
Yes, her algorithm needs a pre-loaded dictionary 320 byte sized.
It should be loaded into BRAM.
It's designed to map this charset
charset
{
' ','!','"','#','$','%','&',''','(',')','*','+',',','-','.','/',
'0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?',
'@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
'P','Q','R','S','T','U','V','W','X','Y','Z','[','\',']','^','_',
'`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z','{','|','}','~','\n'
};
So, she reduced a subset of ASCII-8bit into 96 possibilities, and '\0' is not included.
I grabbed this topic' page to make a test with a bigger stream (16Kbyte):
Compressed msg Length=11074
Original msg Length=16804
Restored msg Length=16804
Compression Ratio=65 of 100
(Zeda's algorithm)
Compressed msg Length=9470
Original msg Length=16804
Restored msg Length=16804
Compression Ratio=56 of 100
(xlz)
Not bad, considering its simplicity :o :o :o
I will also implement xlz ;D