| 1 | DIISS ;SFISC/MKO-SAVE AS %ZISS IF STANDALONE FILEMAN ;01:39 PM  21 Dec 1994 | 
|---|
| 2 | ;;22.0;VA FileMan;;Mar 30, 1999 | 
|---|
| 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 | 
|---|