From:	CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 27-JUL-1989 21:22
To:	MRGATE::"ARISIA::EVERHART"
Subj:	Getting Broadcast Classes (Part 2 of 2)

Received: From KL.SRI.COM by CRVAX.SRI.COM with TCP; Thu, 27 JUL 89 15:13:48 PDT
Received: from ucbvax.Berkeley.EDU by KL.SRI.COM with TCP; Thu, 27 Jul 89 15:06:48 PDT
Received: by ucbvax.Berkeley.EDU (5.61/1.37)
	id AA21048; Thu, 27 Jul 89 14:52:27 -0700
Received: from USENET by ucbvax.Berkeley.EDU with netnews
	for info-vax@kl.sri.com (info-vax@kl.sri.com)
	(contact usenet@ucbvax.Berkeley.EDU if you have questions)
Date: 27 Jul 89 19:06:40 GMT
From: ecsvax!uncw!session@mcnc.org  (Zack Sessions)
Organization: UNC-Wilmington, Math&CS Dept
Subject: Getting Broadcast Classes (Part 2 of 2)
Message-Id: <447@uncw.UUCP>
Sender: info-vax-request@kl.sri.com
To: info-vax@kl.sri.com

-+-+-+-+-+-+-+-+ START OF PART 2 -+-+-+-+-+-+-+-+
X`009`009movb`009#1,gotanyoff
X`009`009movc3`009#2,none,(R7)
X`009`009addl`009#2,R7
X`009`009brb`009114$
X112$:
X`009`009movb`009#1,gotanyon
X114$:
X`009`009movc3`009#7,user15,(R7)
X`009`009addl`009#7,R7
X
X`009`009movzwl`009#BRK$C_USER16,R6`009`009; USER16
X`009`009bbc`009R6,Buffer,116$
X`009`009movb`009#1,gotanyoff
X`009`009movc3`009#2,none,(R7)
X`009`009addl`009#2,R7
X`009`009brb`009118$
X116$:
X`009`009movb`009#1,gotanyon
X118$:
X`009`009movc3`009#7,user16,(R7)
X`009`009addl`009#7,R7
X`009`009`009`009`009`009`009; got em all
X`009`009cmpb`009#0,gotanyoff`009`009`009; were any off?
X`009`009bneq`009120$`009`009`009`009; if so, go on
X`009`009movc3`009#3,all,value`009`009`009; none were off, so all must be on
X`009`009movw`009#3,slen`009`009`009`009; move keyword ALL in output
X`009`009brb`009140$`009`009`009`009; go set symbol
X120$:
X`009`009cmpb`009#0,gotanyon`009`009`009; were any on?
X`009`009bneq`009130$`009`009`009`009; yes, some where, go process them
X`009`009movc3`009#4,none,value`009`009`009; none were on, so use keyword NON
VE
X`009`009movw`009#4,slen
X`009`009brb`009140$`009`009`009`009; go set symbol
X130$:
X`009`009subl2`009R8,R7`009`009`009`009; get difference between ending and
X`009`009decl`009R7`009`009`009`009; beginning addresses minus 1
X`009`009movw`009R7,slen`009`009`009`009; this is length of output
X140$:
X`009`009pushal`009table`009`009`009`009; table indicator
X`009`009pushaq`009sdesc`009`009`009`009; value descriptor
X`009`009pushaq`009symbol`009`009`009`009; name descriptor
X`009`009calls`009#3,G`094lib$set_symbol`009`009; set the symbol
X`009`009blbs`009R0,200$
X`009`009brw`009error
X200$:
X`009`009cmpb`009#0,display`009`009`009; check display flag
X`009`009beql`009210$`009`009`009`009; if off, go exit
X`009`009pushaq`009sdesc`009`009`009`009; if on, display output
X`009`009calls`009#1,G`094lib$put_output`009`009; to SYS$OUTPUT
X`009`009blbs`009R0,210$
X`009`009brw`009error
X210$:
Xexit:
X`009`009$exit_s
XError:
X`009`009$exit_s`009R0
X`009`009.End`009getbclass
$ CALL UNPACK GETBCLASS.MAR;44 1096388520
$ create/nolog 'f'
XThis program is a little dittie I whipped up recently. Actually
Xit started out as an exercise of analyzing the broadcast classes
Xmask. After someone mentioned a need for something like it, I
Xfrilled it up a bit. Written in MACRO-32, so if you got VMS, you
Xcan use it. Just build with:
X
X$ macro getbclass
X$ link getbclass
X
XYou will need the Verb defined. If you don't have system privileges,
Xedit the .CLD file and substitute SYS$LOGIN for SYS$SYSTEM, and
Xput the following line in your login.com:
X
X$ set command getbclass
X
XThe program ALWAYS sets a symbol, BCLASS, with the value of the
Xcurrent state of ALL broadcast classes. The symbol is local by
Xdefault, but will be global if the optional /GLOBAL qualifier is
Xpresent. The keywords ALL and NONE will used if applicable. The
Xvalue of the symbol can be used in a subsequent SET BROADCAST command
Xto restore the values. eg,
X
X$ set broad=('bclass')
X
XThe program will optionally display the value assigned to the
Xsymbol to SYS$OUTPUT, if the optional qualfier /DISPLAY is present.
$ CALL UNPACK GETBCLASS.README;1 2086422151
$ EXIT

