Annotation of freem_fileman/DDGLIB0.m, revision 1.1.1.1

1.1       snw         1: DDGLIB0        ;SFISC/MKO-SETUP AND CLEANUP FOR WINDOWS ;09:37 AM  30 Nov 1994
                      2:        ;;21.0;VA FileMan;;Dec 28, 1994
                      3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
                      4: INIT() ;Setup required variables
                      5:        ;Set margin to 0
                      6:        ;Turn autowrap off
                      7:        ;Turn type-ahead on
                      8:        ;Variables set:
                      9:        ;  DDGLDEL  = delimiter for other DDGL variables
                     10:        ;  DDGLVID  = codes that turn on/off video attributes
                     11:        ;  DDGLED   = codes for editing
                     12:        ;  DDGLCLR  = codes to erase characters
                     13:        ;  DDGLGRA  = codes for graphics characters
                     14:        ;  DDGLZOSF = array of code from %ZOSF
                     15:        ;  DDGLREF  = global where window image is stored
                     16:        ;  DDGLKEY  = codes for non-alphanumeric keys
                     17:        ;  DDGLSCR  = array containing list of visible windows on screen
                     18:        ;
                     19:        N X
                     20:        I $D(DDGLDEL)[0 D SET Q:$G(DIERR)
                     21:        S X=0 X ^%ZOSF("RM"),^("TYPE-AHEAD")
                     22:        W $P(DDGLVID,DDGLDEL,8)
                     23:        Q
                     24:        ;
                     25: SET    ;Setup screen handling variables
                     26:        K DIERR,DDGLSCR
                     27:        S U="^",DDGLDEL=$C(127)
                     28:        ;
                     29:        F X="EOFF","EON","TRMOFF","TRMON","TRMRD" D  G:$G(DIERR) ABT
                     30:        . I $D(^%ZOSF(X))#2 S DDGLZOSF(X)=^(X) Q
                     31:        . D BLD^DIALOG(810)
                     32:        ;
                     33:        S IOP="HOME" D ^%ZIS I POP D BLD^DIALOG(845) G ABT
                     34:        I $D(^%ZIS(2)),'$O(^%ZIS(2,+$G(IOST(0)),0)) D BLD^DIALOG(840,"#"_+$G(IOST(0))) G ABT
                     35:        ;
                     36:        D:$G(IOXY)="" TRMERR("Cursor positioning (XY CRT)")
                     37:        ;
                     38:        S X="IORVON;IORVOFF;IOELEOL;IOEDEOP;IOUON;IOUOFF;IOSGR0;IOINHI;IOINLOW;IOINORM;IOCUU;IOCUD;IOCUF;IOCUB;IODL;IOIL;IODCH;IOICH;IOEDALL;IOELALL;IORI;IOAWM1;IOAWM0;IOSTBM;IOPF1;IOPF2;IOPF3;IOPF4;IOFIND;IOSELECT;IOINSERT;IOREMOVE;IOPREVSC;IONEXTSC"
                     39:        N @$TR(X,";",",")
                     40:        N IOBLC,IOBRC,IOBT,IOG1,IOG0,IOHL,IOLT,IOMT,IORT,IOTLC,IOTRC,IOTT,IOVL
                     41:        D ENDR^%ZISS,GSET^%ZISS
                     42:        I $G(IOPREVSC)="","^C-VT220^C-VT320^"[(U_IOST_U) D
                     43:        . S IOPREVSC=$C(27)_"[5~"
                     44:        . S IONEXTSC=$C(27)_"[6~"
                     45:        ;
                     46:        S DDGLVID=IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINORM_DDGLDEL_IOUON_DDGLDEL_IOUOFF_DDGLDEL_IORVON_DDGLDEL_IORVOFF_DDGLDEL_IOAWM0_DDGLDEL_IOAWM1_DDGLDEL_IOSGR0
                     47:        S DDGLED=$G(IORI)_DDGLDEL_$G(IOSTBM)_DDGLDEL_$G(IOIL)_DDGLDEL_$G(IODL)_DDGLDEL_$G(IOICH)_DDGLDEL_$G(IODCH)
                     48:        S DDGLCLR=IOELEOL_DDGLDEL_IOEDALL_DDGLDEL_IOEDEOP_DDGLDEL_$G(IOELALL)
                     49:        S DDGLKEY=U_IOCUU_U_IOCUD_U_IOCUF_U_IOCUB_U_IOPF1_U_IOPF2_U_IOPF3_U_IOPF4_U_$G(IOFIND)_U_$G(IOSELECT)_U_$G(IOINSERT)_U_$G(IOREMOVE)_U_$G(IOPREVSC)_U_$G(IONEXTSC)_U
                     50:        S DDGLGRA=IOG1_DDGLDEL_IOG0_DDGLDEL_IOHL_DDGLDEL_IOVL_DDGLDEL_IOTLC_DDGLDEL_IOTRC_DDGLDEL_IOBLC_DDGLDEL_IOBRC
                     51:        S:DDGLDEL_$P(DDGLGRA,DDGLDEL,3,999)_DDGLDEL[(DDGLDEL_DDGLDEL) DDGLGRA=DDGLDEL_DDGLDEL_"-"_DDGLDEL_"|"_DDGLDEL_"+"_DDGLDEL_"+"_DDGLDEL_"+"_DDGLDEL_"+"
                     52:        ;
                     53:        D:$P(DDGLKEY,U,1,5)_U[(U_U) TRMERR("Cursor keys")
                     54:        D:U_$P(DDGLKEY,U,6,9)_U[(U_U) TRMERR("PF keys")
                     55:        D:IOELEOL="" TRMERR("Erase to End of Line")
                     56:        D:IOEDALL="" TRMERR("Erase Entire Page")
                     57:        D:IOEDEOP="" TRMERR("Erase to End of Page")
                     58:        G:$G(DIERR) ABT
                     59:        ;
                     60:        S DDGLREF="^TMP(""DDGL"",$J,""W"")" K @DDGLREF
                     61:        ;
                     62:        I "^C-QUME^C-QVT102^C-WYSE75^"[(U_$TR(IOST," ","")_U) D
                     63:        . S DDGLVAN=1
                     64:        . S $P(DDGLVID,DDGLDEL,4,7)=$S($TR(IOST," ","")="C-WYSE75":IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINHI_DDGLDEL_IOINLOW,1:IOINLOW_DDGLDEL_IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINHI)
                     65:        . S $P(DDGLVID,DDGLDEL,10)=IOINORM
                     66:        ;
                     67:        D:'$D(^%ZTSK)!($D(^%ZOSF("MGR"))[0) KILL^%ZISS
                     68:        Q
                     69:        ;
                     70: TRMERR(DDGLCH) ;Terminal type errors
                     71:        N P
                     72:        S P(1)=DDGLCH,P(2)=IOST
                     73:        D BLD^DIALOG(842,.P)
                     74:        Q
                     75:        ;
                     76: KILL(DDGLPARM) ;Cleanup variables
                     77:        ;Set margin to IOM
                     78:        ;Turn off type-ahead if New Person file so indicates
                     79:        ;Turn autowrap on
                     80:        ;Reset character attributes
                     81:        ;Turn echo on
                     82:        ;Turn terminators off
                     83:        N X
                     84:        I $G(DDGLPARM)'["W" D
                     85:        . S X=$S($D(IOM)#2:IOM,1:80) X $G(^%ZOSF("RM"))
                     86:        . I $D(DUZ)#2,$D(^VA(200,DUZ,0))#2,$P($G(^(200)),U,9)'="Y" D
                     87:        .. I '$G(DUZ("BUF"),1) X $G(^%ZOSF("NO-TYPE-AHEAD"))
                     88:        . W $P($G(DDGLVID),$G(DDGLDEL),9),$P($G(DDGLVID),$G(DDGLDEL),10)
                     89:        ;
                     90:        I $G(DDGLPARM)'["T" D
                     91:        . X $G(DDGLZOSF("EON")),$G(DDGLZOSF("TRMOFF"))
                     92:        E  X $G(DDGLZOSF("EOFF")),$G(DDGLZOSF("TRMON"))
                     93:        ;
                     94: ABT    K DX,DY,POP
                     95:        I '$G(DIERR),$G(DDGLPARM)["K" Q
                     96:        K:$G(DDGLREF)]"" @DDGLREF
                     97:        D:'$D(^%ZTSK)!($D(^%ZOSF("MGR"))[0) KILL^%ZISS
                     98:        ;
                     99:        K DDGLDEL,DDGLVID,DDGLED,DDGLCLR,DDGLGRA,DDGLZOSF,DDGLREF
                    100:        K DDGLKEY,DDGLSCR,DDGLVAN,DDGLH
                    101:        ;
                    102:        K DIR0
                    103:        Q

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>