- 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