ZIBNSSV	; IHS/ADC/GTH - NONSTANDARD SPECIAL VARIABLES ; [ 10/29/2002   7:42 AM ]
	;;4.0;XB;;Jul 20, 2009;Build 2
	; XB*3*8 - IHS/ASDST/GTH - Correct parsing for MSM Windows.
	; XB*3*9 IHS/SET/GTH XB*3*9 10/29/2002 Cache' mods.
	;
	; Return Non-Standard ($Z) Special Variables.
	;
	; E.g.:
	;           W $$Z^ZIBNSSV("ERROR")
	; will write the contents of the error message most recently
	; produced by the OS.
	;
	; These are the variables supported:
	;
	;    ERROR : Text of error message most recently produced.
	;    LEVEL : Number of the current nesting level.
	;     NAME : Name of routine currently loaded in memory.
	;    ORDER : Data value of the next global node that follows
	;                the current global reference.
	;     TRAP : Line label and routine name of the program that
	;                is to receive control when an error occurs.
	;  VERSION : Name and release of M implementation.
	;
Z(NSSV)	;PEP - Return Non-Standard ($Z) Special Variables.
	I '$L($G(NSSV)) Q "NONSTANDARD SPECIAL VAR NOT SPECIFIED."
	I '$F("ERROR^LEVEL^NAME^ORDER^TRAP^VERSION",NSSV) Q "NONSTANDARD SPECIAL VAR '"_NSSV_"' NOT SUPPORTED."
	NEW O
	; S O=$P($G(^%ZOSF("OS")),"-",1) ; XB*3*8 - IHS/ASDST/GTH
	;S O=$S($P($G(^%ZOSF("OS")),"^",1)["MSM":"MSM",1:"") ; XB*3*8 - IHS/ASDST/GTH;IHS/SET/GTH XB*3*9 10/29/2002
	S O=$S($P($G(^%ZOSF("OS")),"^",1)["MSM":"MSM",^%ZOSF("OS")["OpenM":"CACHE",1:"") ; XB*3*8 - IHS/ASDST/GTH ;IHS/SET/GTH XB*3*9 10/29/2002
	;I '$L($T(@(O))) Q "OPERATING SYSTEM '"_O_"' NOT SUPPORTED." ;IHS/SET/GTH XB*3*9 10/29/2002
	I '$L(O) Q "OPERATING SYSTEM '"_^%ZOSF("OS")_"' NOT SUPPORTED." ;IHS/SET/GTH XB*3*9 10/29/2002
	G @(O)
	;
MSM	; Micronetics specific Non-Standard Special Variables.
	NEW MSMSV
	S MSMSV="MSMZ"_$E(NSSV)
	I '$L($T(@MSMSV)) Q "Micronetics VALUE FOR '"_NSSV_"' NOT SUPPORTED."
	G @(MSMSV)
	;
MSMZE	Q $ZE
MSMZL	Q $ZL
MSMZN	Q $ZN
MSMZO	Q $ZO
MSMZR()	;PEP - MSM's last global reference.
	;  Going thru the "Z" entry point will re-set the global reference!
	Q $ZR
MSMZT	Q $ZT
MSMZV	Q $ZV
	;
	;Begin New Code;IHS/SET/GTH XB*3*9 10/29/2002
CACHE	;
	NEW %
	S %="CACHEZ"_$E(NSSV)
	I '$L($T(@%)) Q "Cache' VALUE FOR '"_NSSV_"' NOT SUPPORTED."
	G @(%)
	;
CACHEZE	Q $ZE
CACHEZN	Q $ZN
CACHEZO	Q $ZO
CACHEZT	Q $ZT
CACHEZV	Q $ZV
	;End New Code;IHS/SET/GTH XB*3*9 10/29/2002
