Google
 

Trailing-Edge - PDP-10 Archives - bb-x130a-sb - whomac.mac
There are 4 other files named whomac.mac in the archive. Click here to see a list.
	UNIVERSAL WHOMAC -- Parameter file for WHO

	.DIRECT	.NOBIN			;NO REL FILE NEEDED

;               TABLE OF CONTENTS FOR WHOMAC
;
;
;                        SECTION                                   PAGE
;    1. MACROS - $SETUP - Setup globals and libraries..............   3
;    2. OPDEFS....................................................   4
;    3. Parameters................................................   4
;    4. Extra AC definitions......................................   4
;    5. I/O channels..............................................   4
;    6. FLAGS
;         6.1   Global in LH of F.................................   4
;         6.2   Local in RH of F..................................   4
;    7. Assembly switches.........................................   5
;    8. Monitor Parameters (mostly from S.MAC)....................   6
;    9. SCAN interface tables
;         9.1   Monitor commands..................................   7
;         9.2   Summary keywords and actions......................   8
;         9.3   State keywords and actions........................   9
;   10. Format descriptors........................................  10

	SUBTTL	MACROS - $SETUP - Setup globals and libraries

DEFINE	$SETUP(NAME),<
	SEARCH	MACUNV
IFN FTIPC,<SEARCH TSGSYM>
IFN FTMDC,<SEARCH MDCSYM>
IFN FTTUFTS,<SEARCH TCSSYM>
	$INIT	(NAME,-)
	$SEGMENT (PURE)
>;END DEFINE $SETUP

	$SETUP	(WHOMAC)

	SUBTTL	MACROS -- CHKSWT - See if switch given

DEFINE CHKSWT(SWT,NAME,%OK),<
	XLIST
	MOVE	T2,.FZ'SWT##(I)		;;Get switch value
	CAME	T1,T2			;;See if same value
	 CAMN	T2,[-1]			;;Or switch not given
	  JRST	%OK			;;Yes--Thats OK
IFB <NAME>,	MOVX	T1,<SIXBIT/SWT/>	;;No--Load switch
IFNB <NAME>,	MOVX	T1,<SIXBIT/NAME/>	;;No--Load switch
	JRST	E$$DSI##		;;And issue error
%OK:	MOVEM	T1,.FZ'SWT##(I)		;;Store new switch value
	LIST
>;END DEFINE CHKSWT

	SUBTTL	OPDEFS

;The following are OPDEFed so as not to be confused with the monitor
;DDB symbols DEVNAM and DEVCHR (see WHOUUO).

	OPDEF	DVCHR.	[CALLI 4]	;DEVCHR
	OPDEF	DVNAM.	[CALLI 64]	;DEVNAM

	SUBTTL	Parameters

	ND	LN$PDL,100
	ND	LN$INI,^D52		;LENGTH OF INITIALIZATION TEXT
	ND	LN$OBJ,15		;LENGTH OF ANF10 OBJECT TABLE
	ND	LN$SCB,^D200		;LENGTH OF SERVER COMMAND BUFFER
	ND	LN$SBT,^D3		;LENGTH OF SERVER BUFFER TABLES
	ND	LN$SMB,^D30		;LENGTH OF SERVER MESSAGE BUFFER
	ND	LN$LEN,.RBSPL+1
	ND	LN$SND,^D132/^D5+1	;LENGTH OF SEND STRING
	ND	LN$SET,^D30		;MAX ARG BLOCK FOR ALL SETUUO FNCS
	ND	MX$FMT,^D40		;MAX NUMBER OF FORMAT SWITCH ARGUMENTS

	SUBTTL	Extra AC definitions

	O=:12
	JP=:13
	L=:14
	D=:15
	M=:16

	SUBTTL	I/O channels

	LST==1
	SWP==2
	INI==3
	TSK==4

	SUBTTL	FLAGS -- Global in LH of F

	$LBIT	(SPY)		;WE ARE SPYING
	$LBIT	(LOGIN)		;WE ARE LOGGED IN
	$LBIT	(GOD)		;WE ARE OPR
	$LBIT	(PEEK)		;WE HAVE PEEK PRIVS
	$LBIT	(POKE)		;WE HAVE POKE PRIVS
	$LBIT	(JACCT)		;WE HAVE JACCT
	$LBIT	(BATCH)		;WE ARE A BATCH JOB
	$LBIT	(WATCH)		;WE HAVE SOME WATCH BITS SET
	$LBIT	(WHOSRV)	;WE ARE THE WHOSRVer
	$LBIT	(CRASH)		;READING CRASH FILES
	$LBIT	(CHARGE)	;CHARGE NUMBER SUPPORT
	$LBIT	(ANF10)		;ANF-10 NETWORK SUPPORT IN MONITOR
	$LBIT	(DECNET)	;DECNET-10 NETWORK SUPPORT IN MONITOR
	$LBIT	(SMP)		;SMP SUPPORT IN MONITOR
	$LBIT	(LGNQ)		;LOGIN QUEUE SUPPORT IN MONITOR

	FL.SRVFLG==FL.SPY!FL.LOGIN!FL.GOD!FL.PEEK!FL.POKE!FL.JACCT
	FL.NETWORKS==FL.ANF10!FL.DECNET
	FL.FEATURES==FL.CHARGE!FL.ANF10!FL.DECNET!FL.SMP!FL.LGNQ

	SUBTTL	FLAGS-- Local in RH of F

	$RBIT	(OPEN)		;FILE HAS BEEN OPENED
	$RBIT	(TASK)		;OUTPUT TO AN OPENED TASK
	$RBIT	(HEAD)		;HEADER PRINTED
	$RBIT	(OPEN)		;OUTPUT FILE OPENED
	$RBIT	(ABORT)		;FORMAT PRINT ABORT NOW
	$RBIT	(MYTTY)		;OUTPUT DEVICE IS MY TERMINAL
	$RBIT	(DPY)		;DPY HAS BEEN INITED
	$RBIT	(TYPE)		;A CHARACTER HAS BEEN OUTPUT
	$RBIT	(APPEND)	;USE APPEND WHEN OPENING OUTPUT FILE
	$RBIT	(COMMA)		;COMMA NEEDED IN OUTPUT OF LISTS
	$RBIT	(TRMOP)		;TRMOP. UUO FAILURE FOR SEND
	$RBIT	(FRCUUO)	;FRCUUO FAILED FOR FORCE
	$RBIT	(SETUUO)	;SETUUO FAILED
	$RBIT	(DSKDDB)	;LISTING A DSK DDB
	$RBIT	(MTADDB)	;LISTING A MTA DDB
	$RBIT	(NETDDB)	;LISTING A NETWORK DDB
	$RBIT	(TTYDDB)	;LISTING A TTY DDB

	SUBTTL	Version control

	..TMP==0
DEFINE $SUPPORT(VER),<
	IF1,<
		IRP	VER,<
			IFDEF	%'VER,<$MONVER(VER)>
			%'VER==<..TMP==..TMP+1>
		>;END IRP VER
	>;END IF1
>;END DEFINE $SUPPORT

DEFINE	$MONVER(VER),<
	IF1,<
		IFDEF %MONVER,ABORT <Conflicting monitor versions selected>
		IFDEF  %'VER,%MONVER==%'VER
		IFNDEF %'VER,ABORT <Unsupported monitor version selected>
		IF1,PRINTX [Assembling WHO for VER monitor]
		VERSION	GE,702,<
			FTRESET==:1
			FTPRGRUN==:1
		>;GE 702
	;>END IF1
>;END DEFINE $MONVER

DEFINE	VERSION(RELOP,ARG),<IF'RELOP %MONVER-%'ARG,>
	SYN	IFL,IFLT		;SO LT WORKS
	SYN	IFG,IFGT		;SO GT WORKS
	SYN	IFE,IFEQ		;SO EQ WORKS
	SYN	IFN,IFNE		;SO NE WORKS

;Supported monitors (must be increasing order)
	$SUPPORT <701,701A,702>
;Select one
IFNDEF %MONVER,$MONVER	<702>		;Default to 7.02

	SUBTTL	Assembly switches

; Special UUOSYM symbols that determine feature test settings

FTPRGRUN==:0+<IFDEF .GTPTR,<1>>	;GETTAB TABLE FOR PROGRAM TO RUN
FTRESET==:0+<IFDEF .GTPTR,<1>>	;GETTAB TABLE FOR LAST RESET TIME
FTLGNQ==:0+<IFDEF %LQCNT!%LQPTL!%LQQUE,<1>> ;GETTABS FOR LOGIN QUEUE


; Define the feature test switches

	FT	IPC,0,<IPC/TSG features>
	FT	MDC,0,<MDC features>
	FT	TUFTS,0,<TUFTS features>
	FT	LGNQ,0,<LOGIN queue support>
	FT	SERV,1,<Server support>
	FT	UUO,1,<UUO simulation>
	FT	DDB,1,<DDB scanning>
	FT	POWER,0,<POWERed on terminal detection>
	FT	RESET,0,<UDT of last RESET UUO available>
	FT	PRGRUN,0,<Program to RUN GETTAB available>

IFN FTTUFTS,<
	ND	CL$SYS,0	;SYSTEM=0
	ND	CL$ADM,1	;ADMINISTRATION=1
	ND	CL$ACAD,2	;ACADEMIC=2
>

	SUBTTL	Monitor Parameters (mostly from S.MAC)

;Bits in JBTSCD (.GTJTC)

	JS.PQ2==1B0		;ON IF JOB IN PQ2
	JS.CLS==37B17
	JS.TYP==777B35

;Bits in JBTSTS (.GTSTS)

	JS.RUN==1B0
	JS.CMW==1B1
	JS.JNA==1B3
	JS.ERR==1B4
	JS.NSW==1B5
	JS.SWP==1B7
	JS.COD==37B14
	JS.LOG==1B15
	JS.JAC==1B17
	JS.CLK==1B18
	JS.JDC==1B20
	JS.OPR==1B22
	JS.XOY==1B25
	JS.RUU==1B26
	JS.DFP==1B33

;Bits in JBTST2

	J2.IGS==1B10
	J2.HIB==1B15
	J2.EWC==37B24
	J2.EWS==1B25

;ESLEEP codes

;Bits in JBTSWP (.GTSWP)

	JS.SPY==1B0		;SPYING (MUST BE SIGN BIT)
	JS.SHR==1B1		;HIGH SEG SHAREBLE
	JS.IN==777B35		;IN CORE SEGMENT SIZE

;Bits in JBTVRT (.GTVRT)

	JS.LOW==777B35		;LOW SEG SIZE
	JS.HGH==777B26		;HIGH SEG SIZE
	JS.PGR==777777B17	;PAGE RATE UNITS

;BITS IN JBTRTD (.GTRTD)

	JS.HPQ==17B9		;HPQ VALUE

;Bits in JBTSGN (.GTSGN)

	SG.SPY==1B0
	SG.SHR==1B1

;Bits in JBTPC

	JS.DDB==-1,,0		;I/O WAIT DDB
	JS.PC==0,,-1		;USER PC

;Bits in JBTPDB

	JS.FUN==37B17		;PAGES OF FUNNY SPACE

;Values from GTXTN.

	GX.NOD==-1,,0		;NODE
	GX.LIN==0,,-1		;LINE

;Values in .TOBCT

	LS.CMD==-1,,0		;Count of commands processed
	LS.BRK==0,,-1		;Count of break characters typed

	LS.CAR==1B0		;TRMOP. .TODSS carrier bit

;IN CASE NOT IN UUOSYM YET

	ND	.PFHOR,7	;PFH ORIGINAL RUNTIME
	ND	.PFHLR,10	;PFH LAST RUNTIME
	ND	.PFHCR,11	;PFH CUMULATIVE RUNTIME

	ND	ND.CTJ,17	;STATION CONTROL JOB NUMBER
	ND	ND.OPR,20	;OPR TTY NUMBER

	ND	SS%SSH,1B0	;SAVE SHAREABLE HISEG, IF ON

	ND	.TOUNK,0	;(APC) UNKNOWN
	ND	.TOHWD,1	;(APC) HARDWIRED
	ND	.TODSD,2	;(APC) DATASET LINE
	ND	.TOTSN,3	;(APC) TSN
	ND	.TOGAN,4	;(APC) GANDALF
	ND	.TOADL,5	;(APC) AUTODIALER
	ND	.TOMCM,6	;(APC) MICOM
	ND	.TONRT,7	;(APC) NRTSER

OPDEF	SAVE.	[CALLI 210]	;SAVE. UUO

	SUBTTL	SCAN interface -- Special macros

; WHO uses the MACLIB subroutine library.  Part of that package
; includes a copy of SCAN with additions and features not found in
; the field image version.  To avoid conflicts with field image
; SCNMAC, the following definitions have been extracted from the
; extended version of SCNMAC.


FX.SCN==1B12	;/SCAN
FS.STK==1B14	;DON'T APPLY STICKY STUFF IN ALPSTK
FS.IFL==1B15	;INDIRECT FILE ILLEGAL IN COMMAND IF NOT LOGGED IN
FS.HEL==1B7	;DISPATCH ADDR-1 = [ASCIZ/TEXT/] FOR /HELP:ARGUMENT


; The OKEYS macro is similar to the KEYS macro except value is a bit
; position for "or bit value" use.
;
	DEFINE	OKEYS(NAME,LST),<
NAME'.L==0
NAME'.T:	IRP	(LST)<EXP SIXBIT/LST/
	NAME'.L==NAME'.L+1
	..TEMP==0
	IRPC	(LST)<IFIDN <LST><*>,<..TEMP==1>
		STOPI>
	IFE ..TEMP,<NAME'LST==1_<NAME'.L-1>>
	>
	PURGE	..TEMP
>
;DEFINE THE ABOVE BUT WITH GLOBAL NAMES
;AND FINALLY, THE KEY-WORD VALUES

	DEFINE	GKEYS(NAME,LST),<
NAME'.L==:0
NAME'.T:: IRP	(LST)<EXP  SIXBIT /LST/
			NAME'.L==:NAME'.L+1
			..TEMP==0
			IRPC (LST)<IFIDN <LST><*>,<..TEMP==1>
					STOPI>
			IFE ..TEMP,<NAME'LST==:NAME'.L>
		>
	PURGE	..TEMP
	>


; A version of OKEYS that generates global symbols.
;
	DEFINE	GOKEYS(NAME,LST),<
NAME'.L==:0
NAME'.T:: IRP	(LST)<EXP SIXBIT/LST/
	NAME'.L==:NAME'.L+1
	..TEMP==0
	IRPC	(LST)<IFIDN <LST><*>,<..TEMP==1>
		STOPI>
	IFE ..TEMP,<NAME'LST==:1_<NAME'.L-1>>
	>
	PURGE	..TEMP
>
	SUBTTL	SCAN interface tables -- Monitor commands

DEFINE	MODES,<
	XX	JOB	,JOB	,LINE	,job	,<Job not assigned>
	XX	LINE	,LIN	,JOB	,line	,<Line not connected>
	XX	NODE	,NOD	,LINE	,node	,<Node not online>
	XX	USER	,USR	,USER	,user	,<User not found>
>

	SUBTTL	SCAN interface tables -- Summary keywords and actions

DEFINE SUMMARY,<
	XLIST

START JOB
X  ACCOUNT	,Account		,JB$AC1	,.TASCW	,8
IFN FTIPC,<
X  BADGE	,Badge			,JB$BDG ,.TDECJ ,6
>;END IFN FTIPC
X  BATCH	,Batch			,JB$BJB	,YESNO	,6
X  BATCORE	,Batch core		,JB$BCL	,.TDECJ	,11
IFN FTIPC,<
X  CATEGORY	,Category		,JB$CAT	,.TOCTJ	,9
>;END IFN FTIPC
X  CHARGE	,Charge			,JB$CNO	,CHGTYO	,6
IFN FTIPC,<
X  CID		,Charge ID		,JB$CID ,.TSIXN ,9
>;END IFN FTIPC
X  CLASS	,Class			,JB$CLS	,.TDECJ	,7
X  CORE		,Core			,CCORE	,.TDECJ	,6,10
X  CPL		,Current physical limit	,JB$CPL	,.TDECJ ,22 ,5
X  CTLJOB	,CTLJOB			,JB$CJN	,.TDECJ	,7
X  CTLPRG	,CTLPRG			,JB$CPN	,.TSIXN	,6
X  CVL		,Current virtual limit	,JB$CVL	,.TDECJ ,21 ,5
X  DEFATTACH	,Attach jobs		,JB$DAD	,ATTYES	,13
VERSION GE,702,<
X  DEFBIGBUF	,Default BIGBUF		,JB$DBB ,.TDECJ ,14
>
X  DEFBUFFER	,Default buffers	,JB$DNB	,.TDECJ	,17
X  DEFPROTECT	,Default protection	,JB$DPV	,.TPROT,21
X  APC		,Asynchronous port characteristic	,JB$APC	,TAPC	,32
X  DSKPRIORITY	,Disk priority		,JB$DPR	,.TDECJ	,14
X  FUNNY	,Funny			,JB$PFS	,.TDECJ	,6
X  GLXOPR	,Galaxy operator	,JB$GOP	,TGOP	,15
X  HPQ		,HPQ			,JB$HPQ	,.TDECJ	,5
X  IPCFORECEIVE	,IPCF receives outstanding,JB$IOR,.TDECJ	,26
X  IPCFOSEND	,IPCF sends outstanding	,JB$IOS	,.TDECJ	,23
X  IPCFQRECEIVE	,IPCF receive quota	,JB$IQR	,.TDECJ	,19
X  IPCFQSEND	,IPCF send quota	,JB$IQS	,.TDECJ	,16
X  IPCFRECEIVE	,IPCF receives		,JB$IMR	,.TDECJ	,14,100
X  IPCFSEND	,IPCF sends		,JB$IMS	,.TDECJ	,11,100
X  JLT		,JLT			,JB$IJL	,.TUFTM	,8,<400000/^D24+1>
X  KCS		,KCS			,JB$KCM	,.TDECJ	,6,10000
X  LIMIT	,Limit			,JB$BTL	,.TTIME	,8,60000
X  LINE		,Line			,JB$NLN	,.TOCTJ	,6
X  LOCATION	,Location		,JB$LOC	,.TOCTJ	,9
IFN FTIPC,<
X  LPPN		,LPPN			,JB$LPN	,.TPPNW	,15
X  LPRGNUM	,Lprogrammer		,JB$LPG	,.TOCTJ	,11
X  LPRJNUM	,Lproject		,JB$LPJ	,.TOCTJ	,9
>;END IFN FTIPC
X  MPL		,Maximum physical limit	,JB$MPL	,.TDECJ ,22 ,5
X  MVL		,Maximum virtual limit	,JB$MVL	,.TDECJ ,21 ,5
X  NAME		,Name			,JB$NM1	,.TSIXN	,6
X  NODE		,Node			,JB$NNM	,.TSIXN	,6
X  NODENAME	,Node			,JB$NNM	,.TSIXN	,6
X  NODENUMBER	,Node number		,JB$NNU	,.TOCTJ	,12
X  PAGERATE	,Paging rate		,JB$PGR	,TPGR	,12,50
X  PC		,PC			,JB$PC	,.TOCTZ	,6,512
X  PHYHIGH	,Physical high segment size,JB$PPH,.TDECJ,26 ,5
X  PHYLOW	,Physical low segment size,JB$PPL,.TDECJ,25 ,5
X  PPN		,PPN			,JB$PPN	,.TPPNW	,15
X  PRGNUMBER	,Programmer		,JB$PPG	,.TOCTJ	,11
IFN FTPRGRUN,<
X  PRGRUN	,Program to run		,JB$PTR	,.TSIXN	,14
>;END IFN FTPRGRUN
X  PRJNUMBER	,Project		,JB$PPJ	,.TOCTJ	,9
X  PROJECT	,Project		,JB$PPJ	,.TOCTJ ,9
X  PROGRAM	,Program		,JB$PRG	,.TSIXN	,7
X  PROSET	,Default protection set	,JB$DPS	,ONOFF	,25
X  READS	,Reads			,JB$DBR	,.TDECJ	,8,1000
X  REMOTE	,Remote			,JB$RMT	,YESNO	,7
IFN FTRESET,<
X  RESET	,Reset			,JB$ITR	,.TUFTM	,8,<400000/^D24+1>
>;END IFN FTRESET
X  RUNTIME	,Runtime		,JB$TIM	,.TTIME	,8,30000
X  SEGMENT	,Segment		,JB$HSN	,.TSIXN	,7
IFN FTIPC,<
X  SLOT		,Slot			,JB$SLT	,.TOCTJ	,6
>;END IFN FTIPC
X  TTY		,TTY			,JB$TLN	,.TOCTJ	,6
X  UUOS		,UUOs			,JB$UUC	,.TDECJ	,8,10000
X  VCORE	,VCore			,VCORE	,.TDECJ	,6,10
X  VIRHIGH	,Virtual high segment size,JB$PVH,.TDECJ,25 ,5
X  VKCS		,VKCS			,JB$VKM	,.TDECJ	,6,10000
X  VIRLOW	,Virtual low segment size,JB$PVL,.TDECJ	,24 ,5
X  WRITES	,Writes			,JB$DBW	,.TDECJ	,8,1000
X  WSCODE	,Wait state code	,JB$WSC	,.TSIXN	,15
X  WTO		,WTO privileges		,JB$WTO	,TWTO	,15
LEN JOB

START LIN
X  ASSIGN	,Assigned		,LB$TAC	,YESNO	,9
X  BREAK	,Break chars		,LB$BCC	,.TDECJ	,12,100
X  CARRIER	,Carrier		,LB$DSC	,YESNO	,8
X  COMMANDS	,Commands		,LB$CMD	,.TDECJ	,9,100
X  APC		,Asynchronous port characteristic	,LB$APC	,TAPC	,32
X  INITED	,Inited			,LB$TAP	,YESNO	,7
X  INPUT	,Input chars		,LB$ICT	,.TDECJ	,12,1000
X  JOB		,Job			,LB$JOB	,.TDECJ	,4
X  LINE		,Line			,LB$NLN	,.TOCTJ	,5
IFN FTLGNQ,<
X  LOGINQ	,Login queue		,LB$LQP	,TLGNQ	,12
>;END IFN FTLGNQ
X  MIC		,Mic			,LB$MCL	,YESNO	,3
X  NODE		,Node			,LB$NNM	,.TSIXN	,6
X  NODENAME	,Node			,LB$NNM	,.TSIXN	,6
X  NODENUMBER	,Node number		,LB$NNU	,.TOCTJ	,11
X  OUTPUT	,Output chars		,LB$OCT	,.TDECJ	,13,1000
X  RCVSPEED	,RCVspeed		,LB$RBD	,.TDECJ	,9
X  REMOTE	,Remote			,LB$RMT	,YESNO	,7
X  SLAVE	,Slave			,LB$SLV	,YESNO	,6
X  TYPE		,Type			,LB$TYP	,.TSIXN	,6
X  USERS	,Users			,LB$TCJ	,YESNO	,6
X  XMTSPEED	,XMTspeed		,LB$TBD	,.TDECJ	,9
X  PRGNUMBER	,Programmer		,UB$PPG	,.TOCTJ	,11
LEN LIN

START NOD
X  CDP		,Card punches		,NB$CDP ,.TDECJ ,12
X  CDR		,Card readers		,NB$CDR ,.TDECJ ,12
X  CONFIGURATION,Configuration		,NB$CNF ,.TASCW ,13
X  DATE		,Date			,NB$DAT ,.TASCW ,4
VERSION GE,702,<
X  DDP		,DDCMP devices		,NB$DDP ,.TDECJ ,13
>;GE 702
X  DTA		,DECtapes		,NB$DTA ,.TDECJ ,8
X  LPT		,Line printers		,NB$LPT ,.TDECJ ,13
X  MCR		,MCRs			,NB$MCR ,.TDECJ ,4
X  MTA		,Magtapes		,NB$MTA ,.TDECJ ,8
X  NAME		,Name			,NB$NNM	,.TSIXW ,4
X  NODE		,Node			,NB$NNM	,.TSIXN	,6
X  NODENAME	,Node			,NB$NNM	,.TSIXN	,6
X  NODENUMBER	,Node number		,NB$NNU	,.TOCTJ	,11
X  NUMBER	,Node number		,NB$NNU ,.TOCTW ,6
X  PLT		,Plotters		,NB$PLT	,.TDECJ ,8
X  PTP		,Paper tape punches	,NB$PTP ,.TDECJ ,18
X  PTR		,Paper tape readers	,NB$PTR ,.TDECJ ,18
X  RDA		,Remote data entry	,NB$RDA ,.TDECJ ,17
X  TSK		,Tasks			,NB$TSK ,.TDECJ ,5
X  TTY		,Terminals		,NB$TTY ,.TDECJ ,9
X  TYPE		,Type			,NB$TYP ,.TSIXN ,6

LEN NOD
START USR
X  NAME		,Name			,UB$NM1 ,.TSIXN ,6
X  PPN		,PPN			,UB$PPN ,.TPPNW ,13
X  PRJNUMBER	,Project		,UB$PPJ	,.TOCTJ	,9
X  PROJECT	,Project		,UB$PPJ, .TOCTJ ,9
X  PROGRAMMER	,Programmer		,UB$PPG	,.TOCTJ ,11
X  PHYSICAL	,Physical limit		,UB$NPP	,.TDECJ	,15
X  VIRTUAL	,Virtual limit		,UB$NVP	,.TDECJ	,14
X  IPCFSEND	,IPCF send quota	,UB$SND	,.TDECJ ,16
X  IPCFRECEIVE	,IPCF receive quota	,UB$RCV	,.TDECJ	,19
X  OPERATOR	,Operator type		,UB$GOP	,TGOP	,14
X  EXPIRATION	,Expiration date	,UB$EXP	,TUDATE	,16
X  SCHEDULER	,Scheduler type		,UB$SCD	,.TDECJ	,15
X  ENQDEQ	,Enq/Deq quota		,UB$EDQ	,.TDECJ	,14
X  CHARGE	,Charge number		,UB$CNO	,CHGTYO	,14
IFN FTIPC,<
X  COSTCENTER	,Cost center		,UB$CST	,.TSIXN	,12
> ;END IFN FTIPC
LEN USR

	LIST
>;END DEFINE SUMMARY

	SUBTTL	SCAN interface tables -- State keywords and actions

DEFINE	STATES,<
	XLIST
	X	ACTIVE
	X	SWAP	
	X	LOCK
	X	STOP
	X	RUN
	X	EVENTWAIT
	X	IOWAIT
	X	SLEEP
	X	CODES
	X	RWAITS
	X	QUEUES
	LIST
>

	SUBTTL	SCAN interface tables -- OBJECT definitions

DEFINE OBJECTS,<
	XX	MCR
	XX	TTY
	XX	CDR
	XX	LPT
	XX	PTR
	XX	PTP
	XX	PLT
	XX	MTA
	XX	DTA
	XX	TSK
	XX	RDA
	XX	CDP
VERSION GE,702,<
	XX	DDP
>;GE 702
>
	SUBTTL	Format descriptors

	PHASE	0

.FMFMT: BLOCK	1	;FORMAT FIELDWIDTH DESCRIPTORS
  FM.USR==1B0		;USER SPECIFIED
  FM.FMT==3B2		;FORMAT TYPE
   .FMFIX==1		;FIXED
   .FMFLT==2		;FLOATING
   .FMBLK==3		;FIXED WITH BLANK FIELD SUPPRESS
  FM.JUS==3B4		;JUSTIFY FIELD
   .FMLEF==0		;LEFT
   .FMCEN==1		;CENTER
   .FMRIG==2		;RIGHT
  FM.SPC==17B8		;SPACE COUNT IF FORFLOAT TO TRAIL
  FM.STR==1B9		;FORMAT IS A STRING (LEAVE BLANKS)
  FM.WID==377B17	;FIELDWIDTH
  FM.PRT==777777B35	;ADDR TO PUSHJ TO PRINT FIELD
.FMLOD:	BLOCK	1	;INSTR TO XCT TO LOAD FIELD
.FMLEN:			;LENGTH OF BLOC

	DEPHASE

	SUBTTL	Check block description

	PHASE	0

.CKSWT:! BLOCK	1		;ADDRESS OF SWITCH VALUE
.CKMSK:! BLOCK	1		;ADDRESS OF SWITCH VALUE MASK
.CKINI:! BLOCK	1		;DEFAULT INITIAL SWITCH VALUE
.CKLOD:! BLOCK	1		;ADDRESS OF ROUTINE TO LOAD VALUE
.CKCHK:! BLOCK	1		;ADDRESS OF ROUTINE TO CHECK VALUE
.CKLEN:!

	DEPHASE
	SUBTTL	PSI definitions


; Macro to count up and assign interrupt vector block offsets
DEFINE	$PSI	(NAM),<
	.IV'NAM==VECNUM*4	;;ASSIGN INTERRUPT VECTOR OFFSET
	VECNUM==VECNUM+1	;;COUNT VECTORS
> ;END $PSI MACRO

	VECNUM==0		;INITIALIZE COUNTER

	$PSI	(DET)		;ATTACH/DETACH
	$PSI	(STP)		;CONTROL-C TRAP
IFN FTSERV,<$PSI (IPC)>		;IPCF
IFN FTSERV,<$PSI (ANF)>		;ANF10
IFN FTSERV,<$PSI (DCN)>		;DECNET
	SUBTTL	Task I/O and server definitions


; Task dispatch vector offsets
	.TSNAM==0		;NAME
	.TSTYP==1		;TYPE
	.TSNET==2		;NETWORK TYPE
	.TSTIM==3		;DEFAULT TIMEOUT
	.TSFET==4		;FEATURE FLAG
	.TSOPN==5		;OPEN TASK
	.TSCLS==6		;CLOSE TASK
	.TSINP==7		;INPUT A BUFFER
	.TSOUT==10		;OUTPUT A BUFFER
	.TSIBR==11		;ADDR OF INPUT BUFFER RING HEADER
	.TSOBR==12		;ADDR OF OUTPUT BUFFER RING HEADER
	.TSPRV==13		;SET/CLEAR PRIV AND JOB FLAGS


; Macro to build a dispatch vector
DEFINE	TASK	(NAM,PFX,TYP,NET,TIM,FET),<
PFX'TSK::
	XLIST
	EXP	[ASCIZ	|NAM|]		;;NAME
	EXP	TYP			;;TASK TYPE
	EXP	NET			;;NETWORK TYPE
	EXP	^D<TIM>			;;TIMEOUT
	EXP	FET			;;FEATURE
	EXP	PFX'OPN			;;OPEN TASK
	EXP	PFX'CLS			;;CLOSE TASK
	EXP	PFX'INP			;;INPUT A BUFFER
	EXP	PFX'OUT			;;OUTPUT A BUFFER
	EXP	PFX'IBR			;;ADDRESS OF INPUT BUFFER RING HEADER
	EXP	PFX'OBR			;;ADDRESS OF OUTPUT BUFFER RING HEADER
	EXP	PFX'PRV			;;SET/CLEAR PRIV AND JOB FLAGS
	LIST
> ;END TASK MACRO


; Task open definitions
	TS.ACT==1B0		;ACTIVE
	TS.TYP==177B8		;TYPE OF CONNECT
	   .TSIPC==0		   ;IPCF
	   .TSANF==1		   ;ANF10
	   .TSDCN==2		   ;DECNET
	   .TSNUM==3		   ;NUMBER OF DEFINED TASK TYPES
	TS.TIM==777B17		;TIMEOUT IN SECONDS
	   .TSTMN==0		   ;MINIMUM TIMEOUT VALUE
	   .TSTMX==<TS.TIM_-<ALIGN.(TS.TIM)>> ;MAXIMUM TIMEOUT VALUE
; The /SERVER switch has the format:
;
;		/SERVE:node-string:connect-type:timeout
;
; Where	"node-string"	One node name or a quoted string of node names.
;			This argument occupies .SVMAX-.SVNOD words.
;	connect-type	Defines the connect type (IPCF, ANF10, DECNET).
;			This field occupies one word.
;	timeout		The maximum number of seconds to wait.
;			This field occupies one word.
;
; Offsets into /SERVER storage block
	.SVFLG==0		;NON-NEGATIVE IF ARGUMENTS TYPED
	.SVTYP==1		;CONNECT TYPE
	.SVTIM==2		;TIMEOUT VALUE IN SECONDS
	.SVNOD==3		;START OF NODE TEXT (MUST BE AT END)
	.SVMAX==^D28		;LENGTH OF BLOCK

	.SVWDS==.SVMAX-.SVNOD	;LENGTH OF NODE STRING TEXT IN WORDS
	.SVCHR==<.SVWDS*5>-1	;LENGTH OF NODE STRING TEXT IN CHARACTERS
	SUBTTL	Mount count flags and fields


	MC.SYS==1B0			;STR IN SSL
	MC.SDL==1B1			;STR IN SDL
	MC.ASL==1B2			;STR HAS UNITS IN ASL
	MC.TMC==777777B35		;TOTAL MOUNT COUNT

	MC.PAS==777777B17		;PASSIVE S/L COUNT
	MC.ACT==777777B35		;ACTIVE S/L COUNT
	SUBTTL	Network data


; Network type codes
	.NTNON==0			;NO NETWORK SUPPORT
	.NTANF==1			;ANF10
	.NTDCN==2			;DECNET


; Network flags
	NT.ONL==1B0			;ON-LINE
	NT.KNO==1B1			;KNOWN


; NRTSER information block offsets
	.NRTFL==0			;LINE FLAG (0=NOT NRT, -1=NRT)
	.NRTNM==1			;NODE NAME
	.NRTNN==2			;NODE NUMBER
	.NRTCH==3			;NRTSER CHANNEL NUMBER
	.NRTLN==.NRTCH+1		;LENGTH OF NRTSER BLOCK
	SUBTTL	END

	END