annotate 3rdparty/packages/uemacs/ueansi.c @ 1371:1ed7c47503e8

More changes
author boisy
date Fri, 26 Sep 2003 14:59:09 +0000
parents 48c646212b1c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
995
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
1 /*
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
2 * The routines in this file provide support for ANSI style terminals
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
3 * over a serial line. The serial I/O services are provided by routines in
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
4 * "termio.c". It compiles into nothing if not an ANSI device.
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
5 */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
6
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
7 #include <stdio.h>
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
8 #include "ueed.h"
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
9
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
10 #ifdef ANSI
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
11
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
12 #define NROW 23 /* Screen size. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
13 #define NCOL 77 /* Edit if you want to. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
14 #define BEL 0x07 /* BEL character. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
15 #define ESC 0x1B /* ESC character. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
16
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
17 extern int ttopen(); /* Forward references. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
18 extern int ttgetc();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
19 extern int ttputc();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
20 extern int ttflush();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
21 extern int ttclose();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
22 extern int ansimove();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
23 extern int ansieeol();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
24 extern int ansieeop();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
25 extern int ansibeep();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
26 extern int ansiopen();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
27
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
28 /*
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
29 * Standard terminal interface dispatch table. Most of the fields point into
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
30 * "termio" code.
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
31 */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
32 TERM term = {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
33 NROW-1,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
34 NCOL,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
35 ansiopen,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
36 ttclose,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
37 ttgetc,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
38 ttputc,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
39 ttflush,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
40 ansimove,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
41 ansieeol,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
42 ansieeop,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
43 ansibeep
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
44 };
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
45
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
46 ansimove(row, col)
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
47 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
48 ttputc(ESC);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
49 ttputc('[');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
50 ansiparm(row+1);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
51 ttputc(';');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
52 ansiparm(col+1);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
53 ttputc('H');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
54 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
55
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
56 ansieeol()
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
57 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
58 ttputc(ESC);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
59 ttputc('[');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
60 ttputc('K');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
61 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
62
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
63 ansieeop()
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
64 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
65 ttputc(ESC);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
66 ttputc('[');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
67 ttputc('J');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
68 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
69
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
70 ansibeep()
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
71 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
72 ttputc(BEL);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
73 ttflush();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
74 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
75
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
76 ansiparm(n)
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
77 register int n;
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
78 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
79 register int q;
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
80
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
81 q = n/10;
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
82 if (q != 0)
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
83 ansiparm(q);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
84 ttputc((n%10) + '0');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
85 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
86
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
87 #endif
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
88
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
89 ansiopen()
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
90 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
91 #ifdef V7
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
92 register char *cp;
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
93 char *getenv();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
94
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
95 if ((cp = getenv("TERM")) == NULL) {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
96 puts("Shell variable TERM not defined!");
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
97 exit(1);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
98 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
99 if (strcmp(cp, "vt100") != 0) {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
100 puts("Terminal type not 'vt100'!");
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
101 exit(1);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
102 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
103 #endif
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
104 ttopen();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
105 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
106