Annotation of freem_fileman/%ZISS.m, revision 1.1.1.1
1.1 snw 1: DIISS ;SFISC/MKO-SAVE AS %ZISS IF STANDALONE FILEMAN ;01:39 PM 21 Dec 1994
2: ;;21.0;VA FileMan;;Dec 28, 1994
3: ;Per VHA Directive 10-93-142, this routine should not be modified.
4: %ZISS ;SFISC/MKO-RETURN SCREEN HANDLING IO VARIABLES ;
5: ;
6: ; This routine is for standalone FileMan sites that want to use
7: ; FileMan's screen-oriented utilities. It must be saved as %ZISS
8: ; in the manager account. There are four entry points:
9: ;
10: ; ENDR - returns the IO variables required for screen handling
11: ; KILL - kills the IO variables set by ENDR
12: ; GSET - returns the IO variables required to draw lines
13: ; GKILL - kills the IO variables set by GSET
14: ;
15: ; The input variable to all of these entry points is
16: ;
17: ; IOST - the terminal type name (e.g., C-VT100)
18: ;
19: ; The terminal types supported by this routine are C-VT100,
20: ; C-VT220, and C-VT320. To support another terminal
21: ; type, modify the highlighted line in subroutine GETT, and create
22: ; new subroutines that sets the IO variables appropriately.
23: ;
24: ; Also note that %ZIS must return in IOXY the code to position the
25: ; cursor at column DX and row DY.
26: ;
27: GETT ;Based on value of IOST, returns DITT with values:
28: ; 1 = C-VT100 (default)
29: ; 2 = C-VT220 or C-VT320
30: ; 3 = C-DATATREE
31: S U="^",DIIOST=$TR(IOST," ","")
32: ;
33: ;******
34: ;** To recognize other terminal types, modify the following line of
35: ;** code and add new subroutines (e.g., 4 and G4 for C-QUME) that
36: ;** set the IO variables equal to the codes for that terminal type.
37: ;******
38: ;
39: S DITT=$S("^C-VT220^C-VT320^"[(U_DIIOST_U):2,DIIOST="C-DATATREE":3,1:1)
40: ;*****
41: K DIIOST
42: Q
43: ENDR ;Set screen handler IO variables
44: N DITT
45: D GETT,@DITT
46: Q
47: GSET ;Set graphics variables
48: N DITT
49: D GETT,@("G"_DITT)
50: Q
51: KILL ;Kill screen handler IO variables
52: K IOCUU,IOCUD,IOCUF,IOCUB,IOPF1,IOPF2,IOPF3,IOPF4
53: K IOFIND,IOINSERT,IOREMOVE,IOSELECT,IOPREVSC,IONEXTSC,IOHELP,IODO
54: K IOKPAM,IOKPNM
55: K IOKP0,IOKP1,IOKP2,IOKP3,IOKP4,IOKP5,IOKP6,IOKP7,IOKP8,IOKP9
56: K IOMINUS,IOCOMMA,IOPERIOD,IOENTER
57: K IOEDALL,IOEDEOP,IOELEOL,IOELALL
58: K IOINHI,IOINLOW,IOINORM,IORVON,IORVOFF,IOUON,IOUOFF,IOSGR0
59: K IORI,IOSTBM,IOIL,IODL,IOICH,IODCH
60: K IOIRM1,IOIRM0,IOAWM0,IOAWM1
61: Q
62: GKILL ;Kill graphics variables
63: K IOG0,IOG1,IOBLC,IOBRC,IOTLC,IOTRC,IOHL,IOVL,IOLT,IOTT,IORT,IOBT,IOMT
64: Q
65: 1 ;VT100 codes
66: S IOCUU=$C(27)_"[A"
67: S IOCUD=$C(27)_"[B"
68: S IOCUF=$C(27)_"[C"
69: S IOCUB=$C(27)_"[D"
70: S IOPF1=$C(27)_"OP"
71: S IOPF2=$C(27)_"OQ"
72: S IOPF3=$C(27)_"OR"
73: S IOPF4=$C(27)_"OS"
74: S IOFIND=$C(27)_"[1~"
75: S IOINSERT=$C(27)_"[2~"
76: S IOREMOVE=$C(27)_"[3~"
77: S IOSELECT=$C(27)_"[4~"
78: S IOPREVSC=$C(27)_"[5~"
79: S IONEXTSC=$C(27)_"[6~"
80: S IOHELP=$C(27)_"[28~"
81: S IODO=$C(27)_"[29~"
82: S IOKP0=$C(27)_"Op"
83: S IOKP1=$C(27)_"Oq"
84: S IOKP2=$C(27)_"Or"
85: S IOKP3=$C(27)_"Os"
86: S IOKP4=$C(27)_"Ot"
87: S IOKP5=$C(27)_"Ou"
88: S IOKP6=$C(27)_"Ov"
89: S IOKP7=$C(27)_"Ow"
90: S IOKP8=$C(27)_"Ox"
91: S IOKP9=$C(27)_"Oy"
92: S IOMINUS=$C(27)_"Om"
93: S IOCOMMA=$C(27)_"Ol"
94: S IOPERIOD=$C(27)_"On"
95: S IOENTER=$C(27)_"OM"
96: S IOEDEOP=$C(27)_"[J"
97: S IOEDALL=$C(27)_"[2J"
98: S IOELEOL=$C(27)_"[K"
99: S IOELALL=$C(27)_"[2K"
100: S IOAWM0=$C(27)_"[?7l"
101: S IOAWM1=$C(27)_"[?7h"
102: S IOINHI=$C(27)_"[1m"
103: S IOINLOW=$C(27)_"[m"
104: S IOINORM=$C(27)_"[m"
105: S IOUON=$C(27)_"[4m"
106: S IOUOFF=$C(27)_"[m"
107: S IORVON=$C(27)_"[7m"
108: S IORVOFF=$C(27)_"[m"
109: S IOSGR0=$C(27)_"[m"
110: S IORI=$C(27)_"M"
111: S IOSTBM="$C(27,91)_+IOTM_"";""_+IOBM_""r"""
112: S IOIL=$C(27)_"[L"
113: S IODL=$C(27)_"[M"
114: S IOICH=$C(27)_"[@"
115: S IODCH=$C(27)_"[P"
116: S IOIRM1=$C(27)_"[4h"
117: S IOIRM0=$C(27)_"[4l"
118: S IOKPAM=$C(27)_"="
119: S IOKPNM=$C(27)_">"
120: Q
121: G1 ;VT100 line drawing codes
122: S IOG0=$C(27)_"(B"
123: S IOG1=$C(27)_"(0"
124: S IOBLC="m"
125: S IOBRC="j"
126: S IOTLC="l"
127: S IOTRC="k"
128: S IOHL="q"
129: S IOVL="x"
130: S IOLT="t"
131: S IOTT="w"
132: S IORT="u"
133: S IOBT="v"
134: S IOMT="n"
135: Q
136: 2 ;VT220 and VT320 codes
137: ;The codes are the same as VT100 except for a few
138: D 1
139: S IOINLOW=$C(27)_"[22m"
140: S IOUOFF=$C(27)_"[24m"
141: S IORVOFF=$C(27)_"[27m"
142: Q
143: G2 ;VT220 and VT320 line drawing codes
144: ;The codes are the same as those for VT100s
145: D G1
146: Q
147: 3 ;C-DATATREE codes
148: S IOXY="W /C(DX,DY)"
149: S IOCUU=$C(1)
150: S IOCUD=$C(11)
151: S IOCUF=$C(18)
152: S IOCUB=$C(14)
153: S IOPF1=$C(21)
154: S IOPF2=$C(22)
155: S IOPF3=$C(23)
156: S IOPF4=$C(24)
157: S IOEDALL=$C(12)
158: S IOEDEOP=$C(255)_"EF"
159: S IOELEOL=$C(255)_"EL"
160: S IOELALL=""
161: S IOAWM0=""
162: S IOAWM1=""
163: S IOINHI=$C(255)_"AB"
164: S IOINLOW=$C(255)_"AA"
165: S IOUON=$C(255)_"AC"
166: S IOUOFF=$C(255)_"AA"
167: S IORVON=$C(255)_"AE"
168: S IORVOFF=$C(255)_"AA"
169: S IOINORM=$C(255)_"AA"
170: S IOSGR0=$C(255)_"AA"
171: S IORI=""
172: S IOSTBM=""
173: S IOIL=""
174: S IODL=""
175: S IOICH=""
176: S IODCH=""
177: S IOIRM1=""
178: S IOIRM0=""
179: Q
180: G3 ;C-DATATREE line drawing codes
181: S IOG0=""
182: S IOG1=""
183: S IOBLC=$C(192)
184: S IOBRC=$C(217)
185: S IOTLC=$C(218)
186: S IOTRC=$C(191)
187: S IOHL=$C(196)
188: S IOVL=$C(179)
189: S IOLT=$C(195)
190: S IOTT=$C(194)
191: S IORT=$C(180)
192: S IOBT=$C(193)
193: S IOMT=$C(197)
194: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>