annotate 3rdparty/packages/uemacs/uevt52.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
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
3 * provide support for VT52 style terminals
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
4 * over a serial line. The serial I/O services are
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
5 * provided by routines in "termio.c". It compiles
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
6 * into nothing if not a VT52 style device. The
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
7 * bell on the VT52 is terrible, so the "beep"
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
8 * routine is conditionalized on defining BEL.
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
9 */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
10 #include <stdio.h>
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
11 #include "ueed.h"
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
12
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
13 #ifdef VT52
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
14
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
15 #define NROW 24 /* Screen size. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
16 #define NCOL 80 /* Edit if you want to. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
17 #define BIAS 0x20 /* Origin 0 coordinate bias. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
18 #define ESC 0x1B /* ESC character. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
19 #define BEL 0x07 /* ascii bell character */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
20
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
21 extern int ttopen(); /* Forward references. */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
22 extern int ttgetc();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
23 extern int ttputc();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
24 extern int ttflush();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
25 extern int ttclose();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
26 extern int vt52move();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
27 extern int vt52eeol();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
28 extern int vt52eeop();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
29 extern int vt52beep();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
30 extern int vt52open();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
31
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
32 /*
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
33 * Dispatch table. All the
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
34 * hard fields just point into the
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
35 * terminal I/O code.
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
36 */
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
37 TERM term = {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
38 NROW-1,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
39 NCOL,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
40 vt52open,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
41 ttclose,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
42 ttgetc,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
43 ttputc,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
44 ttflush,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
45 vt52move,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
46 vt52eeol,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
47 vt52eeop,
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
48 vt52beep
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
49 };
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
50
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
51 vt52move(row, col)
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
52 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
53 ttputc(ESC);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
54 ttputc('Y');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
55 ttputc(row+BIAS);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
56 ttputc(col+BIAS);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
57 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
58
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
59 vt52eeol()
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
60 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
61 ttputc(ESC);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
62 ttputc('K');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
63 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
64
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
65 vt52eeop()
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
66 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
67 ttputc(ESC);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
68 ttputc('J');
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
69 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
70
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
71 vt52beep()
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
72 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
73 #ifdef BEL
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
74 ttputc(BEL);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
75 ttflush();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
76 #endif
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
77 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
78
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
79 #endif
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
80
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
81 vt52open()
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
82 {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
83 #ifdef V7
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
84 register char *cp;
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
85 char *getenv();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
86
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
87 if ((cp = getenv("TERM")) == NULL) {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
88 puts("Shell variable TERM not defined!");
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
89 exit(1);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
90 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
91 if (strcmp(cp, "vt52") != 0 && strcmp(cp, "z19") != 0) {
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
92 puts("Terminal type not 'vt52'or 'z19' !");
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
93 exit(1);
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
94 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
95 #endif
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
96 ttopen();
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
97 }
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
98
48c646212b1c 'microEMACS' for OS-9.
roug
parents:
diff changeset
99