vtTools/main.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)
}