Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ZUMNT

ZUMNT.m

Go to the documentation of this file.
  1. ZU ;SFISC/RWF - For MSM-NT and MSM-UNIX, TIE all User terminals to this routine!! ;2/26/98 10:43 [ 04/02/2003 8:29 AM ]
  1. ;;8.0;KERNEL;**1004,1005,1007**;APR 1, 2003
  1. ;;8.0;KERNEL;**13,42,49**;Jul 10, 1995
  1. ;FOR MSM-NT and MSM-UNIX v4.3 or greater
  1. EN S $ECODE="",$ETRAP="D ERR^ZU Q:$QUIT 0 Q" ;,ZUGUI2=$$GUI()
  1. ;The next line keeps sign-on users from taking the last slot
  1. ;It can be commented out if not needed.
  1. JOBCHK X ^%ZOSF("AVJ") I Y<3 W $C(7),!!,"** TROUBLE ** - ** CALL IRM NOW! **" G HALT
  1. ;Bump up the partition size
  1. D GETENV^%ZOSV S Y=$P(Y,"^",4),%=$O(^%ZIS(14.7,"B",Y,0)),Y=$G(^%ZIS(14.7,+%,0)),%K=$P(Y,"^",5) I %K>0 D INT^%PARTSIZ
  1. G ^XUSG:$G(ZUGUI1),^XUS
  1. ;
  1. G ;Entry point for GUI device.
  1. S ZUGUI1=1 G EN
  1. ;
  1. ERR ;Come here on error.
  1. S $ETRAP="D UNWIND^ZU" L B 0 ;Unlock, Turn off break
  1. Q:$ECODE["<PROG>"
  1. I $G(IO)]"",$D(IO(1,IO)),$E($G(IOST))="P" U IO W @$S($D(IOF):IOF,1:"#")
  1. I $G(IO(0))]"" U IO(0) W !!,"RECORDING THAT AN ERROR OCCURRED ---",!!?15,"Sorry 'bout that",!,*7,!?10,"$STACK=",$STACK,", $ECODE=",$ECODE,!?10,"$ZERROR=",$ZERROR
  1. D ^%ZTER
  1. ;X ^%ZOSF("PROGMODE") Q:Y S $ZT="HALT^ZU"
  1. I $ZE'["<INRPT>" S XUERF="" G ^XUSCLEAN
  1. CTRLC I $D(IO)=11 U IO(0) C:IO'=IO(0) IO S IO=IO(0)
  1. W:$ZE["-CTLC" !,"--Interrupt Acknowledged",!
  1. D KILL1^XUSCLEAN ;Clean up symbol table
  1. S $ECODE=",U<<POP>>,"
  1. Q
  1. ;
  1. UNWIND ;Unwind the stack
  1. Q:$ESTACK>1 G CONT:$ECODE["<<HALT>>",CTRLC2:$ECODE["<<POP>>"
  1. S $ECODE=""
  1. Q
  1. ;
  1. CTRLC2 S $ECODE="" G:$G(^XUTL("XQ",$J,"T"))<2 ^XUSCLEAN
  1. S ^XUTL("XQ",$J,"T")=1,XQY=$G(^(1)),XQY0=$P(XQY,"^",2,99)
  1. G:$P(XQY0,"^",4)'="M" CTRLC2
  1. S XQPSM=$P(XQY,"^",1),XQY=+XQPSM,XQPSM=$P(XQPSM,XQY,2,3)
  1. G:'XQY ^XUSCLEAN
  1. S $ECODE="",$ETRAP="S %ZTER11S=$STACK D ERR^ZU Q:$QUIT 0 Q" G M1^XQ
  1. ;
  1. HALT I $D(^XUTL("XQ",$J)) D:$D(DUZ)#2 BYE^XUSCLEAN
  1. I '$ESTACK G CONT
  1. S $ETRAP="D UNWIND^ZU" ;Set new trap
  1. S $ECODE=",U<<HALT>>," ;Cause error to unwind stack
  1. Q
  1. CONT ;
  1. S $ECODE="",$ETRAP=""
  1. I $D(^XTV(8989.3,1,"XUCP")),^("XUCP")="Y" D LOGRSRC^%ZOSV("DSMOUT")
  1. HALT
  1. ;
  1. GUI() ;Test if under GUI
  1. Q "" ;Just say No.
  1. S $ZT="GUIX",X="" G:$PD'=1 GUIX
  1. S X=$G(^$DI($PD,"PLATFORM"))
  1. GUIX Q X