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>