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) }