| 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
 | 
|---|