summaryrefslogtreecommitdiffstats
path: root/loader/kon2/include/vt.h
diff options
context:
space:
mode:
Diffstat (limited to 'loader/kon2/include/vt.h')
-rw-r--r--loader/kon2/include/vt.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/loader/kon2/include/vt.h b/loader/kon2/include/vt.h
new file mode 100644
index 000000000..e019568a3
--- /dev/null
+++ b/loader/kon2/include/vt.h
@@ -0,0 +1,128 @@
+/*
+ * KON2 - Kanji ON Console -
+ * Copyright (C) 1992-1996 Takashi MANABE (manabe@papilio.tutics.tut.ac.jp)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY TAKASHI MANABE ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE TERRENCE R. LAMBERT BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+/* vt -- VT emulator */
+
+#ifndef VT_H
+#define VT_H
+
+#include <defs.h>
+#include <fnld.h>
+
+struct _con_info {
+ short
+ x,
+ y,
+ xmax, /* 79 */
+ ymin, /* 0:スクロール開始行 */
+ ymax, /* 29 */
+ tab; /* 8 */
+ u_char
+ fcol, /* フォアグランド */
+ bcol, /* バックグランド */
+ attr, /* 文字属性 */
+ sb, /* 1 byte code フォント番号 */
+ db, /* 2 byte code フォント番号 */
+ knj1; /* 漢字キャラクタ第 1 byte */
+ void (*esc)(u_char);
+ enum {
+ CS_LEFT,
+ CS_RIGHT,
+ CS_GRAPH,
+ CS_DBCS} trans, g[2];
+ enum {
+ SL_NONE,
+ SL_ENTER,
+ SL_LEAVE} sl;
+ bool
+ soft,
+ ins,
+ active,
+ wrap,
+ text_mode;
+};
+
+extern struct _con_info con;
+
+#define CODE_2022 0 /* 2022 のみに従う*/
+#define CODE_EUC 1 /* EUC にも従う */
+#define CODE_SJIS 2 /* SJIS にも従う */
+
+#define G0_SET 0
+#define G1_SET 0x80
+
+extern void VtInit(void);
+extern void VtStart(void);
+extern void VtEmu(const char*, int nchars);
+extern void VtCleanup(void);
+
+#define sjistojis(ch, cl)\
+{\
+ ch -= (ch > 0x9F) ? 0xB1: 0x71;\
+ ch = ch * 2 + 1;\
+ if (cl > 0x9E) {\
+ cl = cl - 0x7E;\
+ ch ++;\
+ } else {\
+ if (cl > 0x7E) cl --;\
+ cl -= 0x1F;\
+ }\
+}
+
+#define jistosjis(ch, cl)\
+{\
+ if (ch & 1) cl = cl + (cl > 0x5F ? 0x20:0x1F);\
+ else cl += 0x7E;\
+ ch = ((ch - 0x21) >> 1) + 0x81;\
+ if (ch > 0x9F) ch += 0x40;\
+}
+
+/*
+ derived from Mule:codeconv.c to support "ESC $(0" sequence
+ thanks to K.Handa <handa@etl.go.jp>
+ */
+
+#define muletobig5(type, m1, m2)\
+{\
+ unsigned code = (m1 - 0x21) * 94 + (m2 - 0x21);\
+\
+ if (type == DF_BIG5_1) code += 0x16F0;\
+ m1 = code / 157 + 0xA1;\
+ m2 = code % 157;\
+ m2 += m2 < 0x3F ? 64 : 98;\
+}
+
+enum {
+ DF_GB2312,
+ DF_JISX0208,
+ DF_KSC5601,
+ DF_JISX0212,
+ DF_BIG5_0,
+ DF_BIG5_1
+ };
+
+#endif