DIISS ;SFISC/MKO-SAVE AS %ZISS IF STANDALONE FILEMAN ;01:39 PM 21 Dec 1994
;;22.0;VA FileMan;;Mar 30, 1999
;Per VHA Directive 10-93-142, this routine should not be modified.
%ZISS ;SFISC/MKO-RETURN SCREEN HANDLING IO VARIABLES ;
;
; This routine is for standalone FileMan sites that want to use
; FileMan's screen-oriented utilities. It must be saved as %ZISS
; in the manager account. There are four entry points:
;
; ENDR - returns the IO variables required for screen handling
; KILL - kills the IO variables set by ENDR
; GSET - returns the IO variables required to draw lines
; GKILL - kills the IO variables set by GSET
;
; The input variable to all of these entry points is
;
; IOST - the terminal type name (e.g., C-VT100)
;
; The terminal types supported by this routine are C-VT100,
; C-VT220, and C-VT320. To support another terminal
; type, modify the highlighted line in subroutine GETT, and create
; new subroutines that sets the IO variables appropriately.
;
; Also note that %ZIS must return in IOXY the code to position the
; cursor at column DX and row DY.
;
GETT ;Based on value of IOST, returns DITT with values:
; 1 = C-VT100 (default)
; 2 = C-VT220 or C-VT320
; 3 = C-DATATREE
S U="^",DIIOST=$TR(IOST," ","")
;
;******
;** To recognize other terminal types, modify the following line of
;** code and add new subroutines (e.g., 4 and G4 for C-QUME) that
;** set the IO variables equal to the codes for that terminal type.
;******
;
S DITT=$S("^C-VT220^C-VT320^"[(U_DIIOST_U):2,DIIOST="C-DATATREE":3,1:1)
;*****
K DIIOST
Q
ENDR ;Set screen handler IO variables
N DITT
D GETT,@DITT
Q
GSET ;Set graphics variables
N DITT
D GETT,@("G"_DITT)
Q
KILL ;Kill screen handler IO variables
K IOCUU,IOCUD,IOCUF,IOCUB,IOPF1,IOPF2,IOPF3,IOPF4
K IOFIND,IOINSERT,IOREMOVE,IOSELECT,IOPREVSC,IONEXTSC,IOHELP,IODO
K IOKPAM,IOKPNM
K IOKP0,IOKP1,IOKP2,IOKP3,IOKP4,IOKP5,IOKP6,IOKP7,IOKP8,IOKP9
K IOMINUS,IOCOMMA,IOPERIOD,IOENTER
K IOEDALL,IOEDEOP,IOELEOL,IOELALL
K IOINHI,IOINLOW,IOINORM,IORVON,IORVOFF,IOUON,IOUOFF,IOSGR0
K IORI,IOSTBM,IOIL,IODL,IOICH,IODCH
K IOIRM1,IOIRM0,IOAWM0,IOAWM1
Q
GKILL ;Kill graphics variables
K IOG0,IOG1,IOBLC,IOBRC,IOTLC,IOTRC,IOHL,IOVL,IOLT,IOTT,IORT,IOBT,IOMT
Q
1 ;VT100 codes
S IOCUU=$C(27)_"[A"
S IOCUD=$C(27)_"[B"
S IOCUF=$C(27)_"[C"
S IOCUB=$C(27)_"[D"
S IOPF1=$C(27)_"OP"
S IOPF2=$C(27)_"OQ"
S IOPF3=$C(27)_"OR"
S IOPF4=$C(27)_"OS"
S IOFIND=$C(27)_"[1~"
S IOINSERT=$C(27)_"[2~"
S IOREMOVE=$C(27)_"[3~"
S IOSELECT=$C(27)_"[4~"
S IOPREVSC=$C(27)_"[5~"
S IONEXTSC=$C(27)_"[6~"
S IOHELP=$C(27)_"[28~"
S IODO=$C(27)_"[29~"
S IOKP0=$C(27)_"Op"
S IOKP1=$C(27)_"Oq"
S IOKP2=$C(27)_"Or"
S IOKP3=$C(27)_"Os"
S IOKP4=$C(27)_"Ot"
S IOKP5=$C(27)_"Ou"
S IOKP6=$C(27)_"Ov"
S IOKP7=$C(27)_"Ow"
S IOKP8=$C(27)_"Ox"
S IOKP9=$C(27)_"Oy"
S IOMINUS=$C(27)_"Om"
S IOCOMMA=$C(27)_"Ol"
S IOPERIOD=$C(27)_"On"
S IOENTER=$C(27)_"OM"
S IOEDEOP=$C(27)_"[J"
S IOEDALL=$C(27)_"[2J"
S IOELEOL=$C(27)_"[K"
S IOELALL=$C(27)_"[2K"
S IOAWM0=$C(27)_"[?7l"
S IOAWM1=$C(27)_"[?7h"
S IOINHI=$C(27)_"[1m"
S IOINLOW=$C(27)_"[m"
S IOINORM=$C(27)_"[m"
S IOUON=$C(27)_"[4m"
S IOUOFF=$C(27)_"[m"
S IORVON=$C(27)_"[7m"
S IORVOFF=$C(27)_"[m"
S IOSGR0=$C(27)_"[m"
S IORI=$C(27)_"M"
S IOSTBM="$C(27,91)_+IOTM_"";""_+IOBM_""r"""
S IOIL=$C(27)_"[L"
S IODL=$C(27)_"[M"
S IOICH=$C(27)_"[@"
S IODCH=$C(27)_"[P"
S IOIRM1=$C(27)_"[4h"
S IOIRM0=$C(27)_"[4l"
S IOKPAM=$C(27)_"="
S IOKPNM=$C(27)_">"
Q
G1 ;VT100 line drawing codes
S IOG0=$C(27)_"(B"
S IOG1=$C(27)_"(0"
S IOBLC="m"
S IOBRC="j"
S IOTLC="l"
S IOTRC="k"
S IOHL="q"
S IOVL="x"
S IOLT="t"
S IOTT="w"
S IORT="u"
S IOBT="v"
S IOMT="n"
Q
2 ;VT220 and VT320 codes
;The codes are the same as VT100 except for a few
D 1
S IOINLOW=$C(27)_"[22m"
S IOUOFF=$C(27)_"[24m"
S IORVOFF=$C(27)_"[27m"
Q
G2 ;VT220 and VT320 line drawing codes
;The codes are the same as those for VT100s
D G1
Q
3 ;C-DATATREE codes
S IOXY="W /C(DX,DY)"
S IOCUU=$C(1)
S IOCUD=$C(11)
S IOCUF=$C(18)
S IOCUB=$C(14)
S IOPF1=$C(21)
S IOPF2=$C(22)
S IOPF3=$C(23)
S IOPF4=$C(24)
S IOEDALL=$C(12)
S IOEDEOP=$C(255)_"EF"
S IOELEOL=$C(255)_"EL"
S IOELALL=""
S IOAWM0=""
S IOAWM1=""
S IOINHI=$C(255)_"AB"
S IOINLOW=$C(255)_"AA"
S IOUON=$C(255)_"AC"
S IOUOFF=$C(255)_"AA"
S IORVON=$C(255)_"AE"
S IORVOFF=$C(255)_"AA"
S IOINORM=$C(255)_"AA"
S IOSGR0=$C(255)_"AA"
S IORI=""
S IOSTBM=""
S IOIL=""
S IODL=""
S IOICH=""
S IODCH=""
S IOIRM1=""
S IOIRM0=""
Q
G3 ;C-DATATREE line drawing codes
S IOG0=""
S IOG1=""
S IOBLC=$C(192)
S IOBRC=$C(217)
S IOTLC=$C(218)
S IOTRC=$C(191)
S IOHL=$C(196)
S IOVL=$C(179)
S IOLT=$C(195)
S IOTT=$C(194)
S IORT=$C(180)
S IOBT=$C(193)
S IOMT=$C(197)
Q
DIISS ;SFISC/MKO-SAVE AS %ZISS IF STANDALONE FILEMAN ;01:39 PM 21 Dec 1994
+1 ;;22.0;VA FileMan;;Mar 30, 1999
+2 ;Per VHA Directive 10-93-142, this routine should not be modified.
%ZISS ;SFISC/MKO-RETURN SCREEN HANDLING IO VARIABLES ;
+1 ;
+2 ; This routine is for standalone FileMan sites that want to use
+3 ; FileMan's screen-oriented utilities. It must be saved as %ZISS
+4 ; in the manager account. There are four entry points:
+5 ;
+6 ; ENDR - returns the IO variables required for screen handling
+7 ; KILL - kills the IO variables set by ENDR
+8 ; GSET - returns the IO variables required to draw lines
+9 ; GKILL - kills the IO variables set by GSET
+10 ;
+11 ; The input variable to all of these entry points is
+12 ;
+13 ; IOST - the terminal type name (e.g., C-VT100)
+14 ;
+15 ; The terminal types supported by this routine are C-VT100,
+16 ; C-VT220, and C-VT320. To support another terminal
+17 ; type, modify the highlighted line in subroutine GETT, and create
+18 ; new subroutines that sets the IO variables appropriately.
+19 ;
+20 ; Also note that %ZIS must return in IOXY the code to position the
+21 ; cursor at column DX and row DY.
+22 ;
GETT ;Based on value of IOST, returns DITT with values:
+1 ; 1 = C-VT100 (default)
+2 ; 2 = C-VT220 or C-VT320
+3 ; 3 = C-DATATREE
+4 SET U="^"
SET DIIOST=$TRANSLATE(IOST," ","")
+5 ;
+6 ;******
+7 ;** To recognize other terminal types, modify the following line of
+8 ;** code and add new subroutines (e.g., 4 and G4 for C-QUME) that
+9 ;** set the IO variables equal to the codes for that terminal type.
+10 ;******
+11 ;
+12 SET DITT=$SELECT("^C-VT220^C-VT320^"[(U_DIIOST_U):2,DIIOST="C-DATATREE":3,1:1)
+13 ;*****
+14 KILL DIIOST
+15 QUIT
ENDR ;Set screen handler IO variables
+1 NEW DITT
+2 DO GETT
DO @DITT
+3 QUIT
GSET ;Set graphics variables
+1 NEW DITT
+2 DO GETT
DO @("G"_DITT)
+3 QUIT
KILL ;Kill screen handler IO variables
+1 KILL IOCUU,IOCUD,IOCUF,IOCUB,IOPF1,IOPF2,IOPF3,IOPF4
+2 KILL IOFIND,IOINSERT,IOREMOVE,IOSELECT,IOPREVSC,IONEXTSC,IOHELP,IODO
+3 KILL IOKPAM,IOKPNM
+4 KILL IOKP0,IOKP1,IOKP2,IOKP3,IOKP4,IOKP5,IOKP6,IOKP7,IOKP8,IOKP9
+5 KILL IOMINUS,IOCOMMA,IOPERIOD,IOENTER
+6 KILL IOEDALL,IOEDEOP,IOELEOL,IOELALL
+7 KILL IOINHI,IOINLOW,IOINORM,IORVON,IORVOFF,IOUON,IOUOFF,IOSGR0
+8 KILL IORI,IOSTBM,IOIL,IODL,IOICH,IODCH
+9 KILL IOIRM1,IOIRM0,IOAWM0,IOAWM1
+10 QUIT
GKILL ;Kill graphics variables
+1 KILL IOG0,IOG1,IOBLC,IOBRC,IOTLC,IOTRC,IOHL,IOVL,IOLT,IOTT,IORT,IOBT,IOMT
+2 QUIT
1 ;VT100 codes
+1 SET IOCUU=$CHAR(27)_"[A"
+2 SET IOCUD=$CHAR(27)_"[B"
+3 SET IOCUF=$CHAR(27)_"[C"
+4 SET IOCUB=$CHAR(27)_"[D"
+5 SET IOPF1=$CHAR(27)_"OP"
+6 SET IOPF2=$CHAR(27)_"OQ"
+7 SET IOPF3=$CHAR(27)_"OR"
+8 SET IOPF4=$CHAR(27)_"OS"
+9 SET IOFIND=$CHAR(27)_"[1~"
+10 SET IOINSERT=$CHAR(27)_"[2~"
+11 SET IOREMOVE=$CHAR(27)_"[3~"
+12 SET IOSELECT=$CHAR(27)_"[4~"
+13 SET IOPREVSC=$CHAR(27)_"[5~"
+14 SET IONEXTSC=$CHAR(27)_"[6~"
+15 SET IOHELP=$CHAR(27)_"[28~"
+16 SET IODO=$CHAR(27)_"[29~"
+17 SET IOKP0=$CHAR(27)_"Op"
+18 SET IOKP1=$CHAR(27)_"Oq"
+19 SET IOKP2=$CHAR(27)_"Or"
+20 SET IOKP3=$CHAR(27)_"Os"
+21 SET IOKP4=$CHAR(27)_"Ot"
+22 SET IOKP5=$CHAR(27)_"Ou"
+23 SET IOKP6=$CHAR(27)_"Ov"
+24 SET IOKP7=$CHAR(27)_"Ow"
+25 SET IOKP8=$CHAR(27)_"Ox"
+26 SET IOKP9=$CHAR(27)_"Oy"
+27 SET IOMINUS=$CHAR(27)_"Om"
+28 SET IOCOMMA=$CHAR(27)_"Ol"
+29 SET IOPERIOD=$CHAR(27)_"On"
+30 SET IOENTER=$CHAR(27)_"OM"
+31 SET IOEDEOP=$CHAR(27)_"[J"
+32 SET IOEDALL=$CHAR(27)_"[2J"
+33 SET IOELEOL=$CHAR(27)_"[K"
+34 SET IOELALL=$CHAR(27)_"[2K"
+35 SET IOAWM0=$CHAR(27)_"[?7l"
+36 SET IOAWM1=$CHAR(27)_"[?7h"
+37 SET IOINHI=$CHAR(27)_"[1m"
+38 SET IOINLOW=$CHAR(27)_"[m"
+39 SET IOINORM=$CHAR(27)_"[m"
+40 SET IOUON=$CHAR(27)_"[4m"
+41 SET IOUOFF=$CHAR(27)_"[m"
+42 SET IORVON=$CHAR(27)_"[7m"
+43 SET IORVOFF=$CHAR(27)_"[m"
+44 SET IOSGR0=$CHAR(27)_"[m"
+45 SET IORI=$CHAR(27)_"M"
+46 SET IOSTBM="$C(27,91)_+IOTM_"";""_+IOBM_""r"""
+47 SET IOIL=$CHAR(27)_"[L"
+48 SET IODL=$CHAR(27)_"[M"
+49 SET IOICH=$CHAR(27)_"[@"
+50 SET IODCH=$CHAR(27)_"[P"
+51 SET IOIRM1=$CHAR(27)_"[4h"
+52 SET IOIRM0=$CHAR(27)_"[4l"
+53 SET IOKPAM=$CHAR(27)_"="
+54 SET IOKPNM=$CHAR(27)_">"
+55 QUIT
G1 ;VT100 line drawing codes
+1 SET IOG0=$CHAR(27)_"(B"
+2 SET IOG1=$CHAR(27)_"(0"
+3 SET IOBLC="m"
+4 SET IOBRC="j"
+5 SET IOTLC="l"
+6 SET IOTRC="k"
+7 SET IOHL="q"
+8 SET IOVL="x"
+9 SET IOLT="t"
+10 SET IOTT="w"
+11 SET IORT="u"
+12 SET IOBT="v"
+13 SET IOMT="n"
+14 QUIT
2 ;VT220 and VT320 codes
+1 ;The codes are the same as VT100 except for a few
+2 DO 1
+3 SET IOINLOW=$CHAR(27)_"[22m"
+4 SET IOUOFF=$CHAR(27)_"[24m"
+5 SET IORVOFF=$CHAR(27)_"[27m"
+6 QUIT
G2 ;VT220 and VT320 line drawing codes
+1 ;The codes are the same as those for VT100s
+2 DO G1
+3 QUIT
3 ;C-DATATREE codes
+1 SET IOXY="W /C(DX,DY)"
+2 SET IOCUU=$CHAR(1)
+3 SET IOCUD=$CHAR(11)
+4 SET IOCUF=$CHAR(18)
+5 SET IOCUB=$CHAR(14)
+6 SET IOPF1=$CHAR(21)
+7 SET IOPF2=$CHAR(22)
+8 SET IOPF3=$CHAR(23)
+9 SET IOPF4=$CHAR(24)
+10 SET IOEDALL=$CHAR(12)
+11 SET IOEDEOP=$CHAR(255)_"EF"
+12 SET IOELEOL=$CHAR(255)_"EL"
+13 SET IOELALL=""
+14 SET IOAWM0=""
+15 SET IOAWM1=""
+16 SET IOINHI=$CHAR(255)_"AB"
+17 SET IOINLOW=$CHAR(255)_"AA"
+18 SET IOUON=$CHAR(255)_"AC"
+19 SET IOUOFF=$CHAR(255)_"AA"
+20 SET IORVON=$CHAR(255)_"AE"
+21 SET IORVOFF=$CHAR(255)_"AA"
+22 SET IOINORM=$CHAR(255)_"AA"
+23 SET IOSGR0=$CHAR(255)_"AA"
+24 SET IORI=""
+25 SET IOSTBM=""
+26 SET IOIL=""
+27 SET IODL=""
+28 SET IOICH=""
+29 SET IODCH=""
+30 SET IOIRM1=""
+31 SET IOIRM0=""
+32 QUIT
G3 ;C-DATATREE line drawing codes
+1 SET IOG0=""
+2 SET IOG1=""
+3 SET IOBLC=$CHAR(192)
+4 SET IOBRC=$CHAR(217)
+5 SET IOTLC=$CHAR(218)
+6 SET IOTRC=$CHAR(191)
+7 SET IOHL=$CHAR(196)
+8 SET IOVL=$CHAR(179)
+9 SET IOLT=$CHAR(195)
+10 SET IOTT=$CHAR(194)
+11 SET IORT=$CHAR(180)
+12 SET IOBT=$CHAR(193)
+13 SET IOMT=$CHAR(197)
+14 QUIT