File:  [Coherent Logic Development] / freem_fileman / USER / DIISS.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:20 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    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>