101 lines
2.6 KiB
Go
101 lines
2.6 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"time"
|
|
|
|
"git.sdf.org/CRThaze/vtTools/term"
|
|
)
|
|
|
|
var testMSCASCIIGraphic = [16][6]rune{
|
|
{' ', '0', '@', 'P', '`', 'p'},
|
|
{'!', '1', 'A', 'Q', 'a', 'q'},
|
|
{'"', '2', 'B', 'R', 'b', 'r'},
|
|
{'#', '3', 'C', 'S', 'c', 's'},
|
|
{'$', '4', 'D', 'T', 'd', 't'},
|
|
{'%', '5', 'E', 'U', 'e', 'u'},
|
|
{'&', '6', 'F', 'V', 'f', 'v'},
|
|
{'\'', '7', 'G', 'W', 'g', 'w'},
|
|
{'(', '8', 'H', 'X', 'h', 'x'},
|
|
{')', '9', 'I', 'Y', 'i', 'y'},
|
|
{'*', ':', 'J', 'Z', 'j', 'z'},
|
|
{'+', ';', 'K', '[', 'k', '{'},
|
|
{',', '<', 'L', '\\', 'l', '|'},
|
|
{'-', '=', 'M', ']', 'm', '}'},
|
|
{'.', '>', 'N', '^', 'n', '~'},
|
|
{'/', '?', 'O', '_', 'o', '\u007F'},
|
|
}
|
|
|
|
var testMSCSupplementalGraphic = [16][6]rune{
|
|
{0, '°', 'À', 0, 'à', 0},
|
|
{'¡', '±', 'Á', 'Ñ', 'á', 'ñ'},
|
|
{'¢', '²', 'Â', 'Ò', 'â', 'ò'},
|
|
{'£', '³', 'Ã', 'Ó', 'ã', 'ó'},
|
|
{0, 0, 'Ä', 'Ô', 'ä', 'ô'},
|
|
{'¥', 'µ', 'Å', 'Õ', 'å', 'õ'},
|
|
{0, '¶', 'Æ', 'Ö', 'æ', 'ö'},
|
|
{'§', '·', 'Ç', 'Œ', 'ç', 'œ'},
|
|
{'¤', 0, 'È', 'Ø', 'è', 'ø'},
|
|
{'©', '¹', 'É', 'Ù', 'é', 'ù'},
|
|
{'ª', 'º', 'Ê', 'Ú', 'ê', 'ú'},
|
|
{'«', '»', 'Ë', 'Û', 'ë', 'û'},
|
|
{0, '¼', 'Ì', 'Ü', 'ì', 'ü'},
|
|
{0, '½', 'Í', 'Ÿ', 'í', 'ÿ'},
|
|
{0, 0, 'Î', 0, 'î', 0},
|
|
{0, '¿', 'Ï', 'ß', 'ï', 0},
|
|
}
|
|
|
|
var testSpecialGraphics = [16][6]rune{
|
|
{0, '0', '@', 'P', '♦', '⎻'},
|
|
{'!', '1', 'A', 'Q', '█', '―'},
|
|
{'"', '2', 'B', 'R', '␉', '⎼'},
|
|
{'#', '3', 'C', 'S', '␌', '⎽'},
|
|
{'$', '4', 'D', 'T', '␍', '├'},
|
|
{'%', '5', 'E', 'U', '␊', '┤'},
|
|
{'&', '6', 'F', 'V', '°', '┴'},
|
|
{'\'', '7', 'G', 'W', '±', '┬'},
|
|
{'(', '8', 'H', 'X', '', '│'},
|
|
{')', '9', 'I', 'Y', '␋', '≤'},
|
|
{'*', ':', 'J', 'Z', '┘', '≥'},
|
|
{'+', ';', 'K', '[', '┐', 'π'},
|
|
{',', '<', 'L', '\\', '┌', '≠'},
|
|
{'-', '=', 'M', ']', '└', '£'},
|
|
{'.', '>', 'N', '^', '┼', '·'},
|
|
{'/', '?', 'O', '\u2800', '⎺', 0},
|
|
}
|
|
|
|
func printTest(term *term.VT220, sl, sr [16][6]rune) {
|
|
for i := 0; i < 16; i++ {
|
|
for j := 0; j < 12; j++ {
|
|
term.Print(" ")
|
|
if j == 6 {
|
|
term.Print(" ")
|
|
}
|
|
var r rune
|
|
if j < 6 {
|
|
r = sl[i][j]
|
|
} else {
|
|
r = sr[i][j-6]
|
|
}
|
|
if r == 0 || r == '\u007F' {
|
|
term.Print(" ")
|
|
continue
|
|
}
|
|
// fmt.Print(string(MustTransRune(r)[:]))
|
|
term.Print(string(r))
|
|
}
|
|
term.Print("\n")
|
|
time.Sleep(time.Millisecond * 250)
|
|
}
|
|
term.Print("\n")
|
|
}
|
|
|
|
func main() {
|
|
term := term.NewVT220(os.Stdout)
|
|
term.Init()
|
|
printTest(term, testMSCASCIIGraphic, testMSCSupplementalGraphic)
|
|
term.LockShift(2, true)
|
|
printTest(term, testMSCASCIIGraphic, testSpecialGraphics)
|
|
term.LockShift(1, true)
|
|
}
|