DIISS ;SFISC/MKO-SAVE AS %ZISS IF STANDALONE FILEMAN ;01:39 PM  21 Dec 1994
 ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 ;;Per VA Directive 6402, this routine should not be modified.
 ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 ;;Licensed under the terms of the Apache License, Version 2.0.
 ;
%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
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDIISS   5175     printed  Sep 23, 2025@20:24:43                                                                                                                                                                                                       Page 2
DIISS     ;SFISC/MKO-SAVE AS %ZISS IF STANDALONE FILEMAN ;01:39 PM  21 Dec 1994
 +1       ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3       ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 +4       ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 +5       ;;Licensed under the terms of the Apache License, Version 2.0.
 +6       ;
%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