Annotation of freem_fileman/USER/DDGLIB0.m, revision 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>