Google
 

Trailing-Edge - PDP-10 Archives - BB-JR93N-BB_1990 - 10,7/galaxy/nebula/nebprm.mac
There are 8 other files named nebprm.mac in the archive. Click here to see a list.
UNIVERSAL NEBPRM - GALAXY-10 Network Queue Controller parameter file
SUBTTL	D. P. Mastrovito & Joseph A. Dziedzic /DPM/JAD


;
;
;	      COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION
;                             1986,1987.
;			ALL RIGHTS RESERVED.
;
;
;     THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED
;     AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
;     AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS
;     SOFTWARE  OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
;     OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.  NO  TITLE  TO
;     AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
;
;     THE INFORMATION  IN  THIS  SOFTWARE  IS  SUBJECT  TO  CHANGE
;     WITHOUT  NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
;     BY DIGITAL EQUIPMENT CORPORATION.
;
;     DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
;     OF  ITS  SOFTWARE  ON  EQUIPMENT  WHICH  IS  NOT SUPPLIED BY
;     DIGITAL.


	NEBVER==1		;MAJOR VERSION
	NEBMIN==0		;MINOR VERSION
	NEBWHO==0		;WHO LAST PATCHED
	NEBEDT==22		;EDIT LEVEL
SUBTTL	Revision history


COMMENT	\

1	Conception.
	17-Jun-86  GCO 10418  /DPM/JAD

2	Add revision history, zero relative file number when starting to
	process remote create, accept remote queue name from QUEUE when
	doing a remote queue list.
	18-Jun-86  GCO 10422  /JAD

3	Fix bug in NEBDCN which prevents us from releasing stale channels
	after we're done with them.
	27-Jun-86  GCO 10427  /JAD

4	Fix lower case conversion of /CHARACTERISTICS
	27-Jun-86  GCO 10428  /TL

5	Implement an output "fairness counter" which prevents a transfer
	request stream from running "forever" if it never gets blocked
	due to flow control, filling all available buffers, etc.
	30-Jun-86  GCO 10430  /JAD

6	Check ITN rather than object block on a QUASAR ABORT message.
	30-Jun-86  GCO 10431  /JAD

7	Handle remote DJM indigestion and either cancel or requeue the
	job depending on the error level.
	10-Jul-86  GCO 10436  /JAD

10	Move characteristics/forms handling routines into a module
	called "CHRFRM" so it can be loaded by QUASAR to check the
	arguments on a CREATE and clunk the user then.
	10-Jul-86  GCO 10438  /JAD

11	Add run log stuff.  Since DQS isn't smart enough to do pretty
	things with the "error text" blocks, make the run log look
	like just another file transfered.
	24-Jul-86  GCO 10452  /DPM

12	GETITM croaks when presented with a length of zero.  Handle
	zero "transparently" and return a zero to the caller.
	30-Nov-86  GCO 10472  /JAD

13	Fix error in LLST.7 which clobbers error text pointer.
	5-Jan-86  GCO 10483  /JAD

14	If QUASAR slips and sends a NEXTJOB msg and we have no free
	streams, send a REQUEUE msg instead of forgetting we saw
	the msg. Hopefully this may fix QUASAR RUJ crashes. Also
	change $STOPs to STOPCDs.
	1-Jul-87  GCO 10519  /LWS

15	Add SETU.1 + some, isolate stream number from AOBJN pointer
	before determining stream type.
	17-Jul-87  GCO 10535  /LWS

16	Teach NEBULA to return attributes in "response to setup"
	message. In NXTJOB, if call to SELDRV fails, send "response
	to setup" msg to QUASAR with %RSUNA (not available) code so
	QUASAR will "ignore" the stream for a while.
	26-Jul-87  GCO 10547  /LWS

17	Add rudimentary support for the DQS corporate standard.
	10-Aug-87  GCO 10552  /KDO

20	Add FTFBST and FTFTRL to control file burst pages and file 
	trailer pages (respectively).
	18-Aug-87  GCO 10555  /KDO

21	Make ABORT work.  Implement STOP/CONTINUE and REQUEUE.
	20-Jul-89  GCO 10673  /DPM

22	Do not default a characteristic if none specified by the user.
	This can cause problems when queueing to a remote queue which is
	a generic VMS queue.
	18-Apr-90  GCO 10687  /LWS

\; END OF COMMENT
SUBTTL	Module initialization macro


;MACRO TO INITIALIZE A MODULE
DEFINE	MODULE	(NAM),<

	XLIST			;;SUPPRESS LISTING

	SALL			;;FOR CLEAN LISTINGS
	.DIREC	FLBLST		;;FOR CLEANER LISTINGS

	SEARCH	JOBDAT		;;TOPS-10 JOB DATA SYMBOLS
	SEARCH	GLXMAC		;;GENERAL GALAXY SYMBOLS
	SEARCH	QSRMAC		;;QUASAR SYMBOLS
	SEARCH	ORNMAC		;;OPERATOR SYMBOLS

IFIDN	<NAM><NEBPRM>,<		;;SPECIAL CHECK FOR PARAMETER MODULE
	SEARCH	UUOSYM		;;NEED TOPS-10 SYMBOLS
>

IFDIF	<NAM><NEBPRM>,<		;;SPECIAL CHECK FOR OTHER MODULES
	PROLOG ('NAM)		;;KEEP GLXLIB HAPPY
	GLOB	<G$PGM,G$NAM>	;;FOR $TEXT
>
	RELOC	0		;;START LOADING HERE

	LIST			;;TURN ON LISTING

	%%.NEB==:<VRSN.(NEB)>	;;ASSEMBLE VERSION NUMBER

> ;END MODULE MACRO

	MODULE	(NEBPRM)
SUBTTL	Assembly parameters


ND	PRCN,^D20		;MAXIMUM NUMBER OF PROCESSING STREAMS
ND	LSTN,^D10		;MAXIMUM NUMBER OF LISTING STREAMS
ND	PDLMSZ,^D200		;PDL SIZE FOR MAIN TOP LEVEL SCHEDULER
ND	PDLSSZ,^D200		;PDL SIZE FOR STREAM
ND	GLBPSV,^D4		;NUMBER OF SPARE GLOBAL PSI VECTORS
ND	JOBPSV,^D2		;NUMBER OF PSI VECTORS PER STREAM
ND	ZZTIME,0		;WAKE ONLY ON INTERRUPTS
ND	UPDTIM,^D60*3		;NUMBER OF SECONDS BETWEEN STATUS UPDATES
ND	REQTIM,^D5		;NUMBER OF MINUTES TO REQUEUE JOBS
ND	OUTFCT,^D2		;MAXIMUM NUMBER OF CONCURRENT OUTPUT BUFFERS
				; FILLED BEFORE DESCHEDULING A STREAM
ND	BFSBYT,^D512		;BUFFER SIZE IN BYTES
XP	BFSWRD,<<BFSBYT+3>/4>	;BUFFER SIZE IN WORDS
ND	RLGBSZ,^D200		;RUN LOG BUFFER SIZE
ND	OLDDQS,^D170		;OLD DQS OBJECT NUMBER (ZERO IF NONE)


SUBTTL	Feature test switches


ND	FTFBST,0		;REQUEST FILE BURST PAGES
ND	FTFTRL,0		;REQUEST FILE TRAILER PAGES


SUBTTL	Parameters not easily changed


	JOBN==PRCN+LSTN		;TOTAL NUMBER OF STREAMS
	TIMLVL==0		;TIMER INTERRUPT PRIORITY LEVEL


;ACCUMULATOR DEFINITIONS

	S==14			;STATUS FLAGS
	R==15			;STREAM RELOCATION
	M==16			;IPCF MESSAGE
SUBTTL	I/O dispatch vector definitions


	IOLNK==1		;LINKED LIST FOR I/O VECTORS

	 .ORG	0
.IOLNK:! BLOCK	1		;LINK TO NEXT VECTOR
.IOABV:! BLOCK	1		;SIXBIT ABBREVIATION
.IONAM:! BLOCK	1		;DRIVER NAME
.IONTY:! BLOCK	1		;NETWORK TYPE CODE
.IOINI:! BLOCK	1		;INITIALIZE
.IOINF:! BLOCK	1		;RETURN INFORMATION ABOUT NODE
.IOOPN:! BLOCK	1		;OPEN
.IOCLS:! BLOCK	1		;CLOSE
.IOINP:! BLOCK	1		;BUFFER INPUT
.IOOUT:! BLOCK	1		;BUFFER OUTPUT
.IOABO:! BLOCK	1		;ABORT LINK
.IOSIA:! BLOCK	1		;SKIP IF INPUT AVAILABLE
.IOUUE:! BLOCK	1		;UUO TRANSLATION TABLE
.IOLEN::!			;LENGTH OF BLOCK
	 .ORG


;MACRO TO GENERATE VECTOR
DEFINE	IOVEC	(ABV,NAM),<
ABV::	XWD	0,0		;;LINK TO NEXT DISPATCH DEVTOR
	.LINK	IOLNK,'ABV
	SIXBIT	/   'ABV/	;;SIXBIT ABBREVIATION
	IFIW	[ASCIZ |'NAM|]	;;NAME
	XWD	0,ST.'ABV	;;NETWORK TYPE CODE
	IFIW	ABV'INI		;;INITIALIZE
	IFIW	ABV'INF		;;RETURN INFORMATION ABOUT NODE
	IFIW	ABV'OPN		;;OPEN
	IFIW	ABV'CLS		;;CLOSE
	IFIW	ABV'INP		;;BUFFER INPUT
	IFIW	ABV'OUT		;;BUFFER OUTPUT
	IFIW	ABV'ABO		;;ABORT LINK
	IFIW	ABV'SIA		;;SKIP IF INPUT AVAILABLE
	IFIW	ABV'UUE		;;UUO ERROR TRANSLATION TABLE

> ;END IOVEC MACRO
SUBTTL	UUO error translation


;MACRO TO GENERATE A TABLE OF OPCODES AND TRANSLATION TABLE POINTERS
DEFINE	UUO	(OPC,LEN,TAB),<
	OPC	0,0		;;OPCODE
	SIXBIT	/OPC/		;;OPCODE NAME
	XWD	-LEN,TAB	;;TRANSLATION TABEL
> ;END DEFINE UUO
SUBTTL	Job data base


	 .ORG	0

;QUASAR DATA
				;*** THE EQ PAGE MUST BE FIRST ***
.JQEQP:! BLOCK	PAGSIZ		;EQ PAGE
				;*** OTHER DATA FOLLOWS IN ANY ORDER ***
.JQOBJ:! BLOCK	OBJ.SZ		;OBJECT BLOCK
.JQCHK:! BLOCK	1		;JOB CHECKPOINT FLAG
.JQCRQ:! BLOCK	EQCKSZ		;CHECKPOINT/REQUEUE INFORMATION
.JQRQF:! BLOCK	1		;REQUEUE FLAGS
.JQTRS:! BLOCK	1		;TIME REQUEST STARTED PROCESSING
.JQLUT:! BLOCK	1		;LAST STATUS UPDATE TIME
.JQRFN:! BLOCK	1		;RELATIVE FILE NUMBER BEING PROCESSED
.JQCFD:! BLOCK	1		;ADDRESS OF CURRENT FD BEING PROCESSED
.JQBYT:! BLOCK	1		;NUMBER OF BYTES TRANSFERRED

;JOB DATA
.JBWSC:! BLOCK	1		;WAIT STATE CODE
.JBFLG:! BLOCK	1		;JOB FLAGS
   JB.INP==1B0			   ;INPUT STREAM
   JB.SPR==1B1			   ;RUN TIMER QUEUED SUBROUTINE IN SCHEDULER
   JB.KIL==1B2			   ;KILL JOB
   JB.ABO==1B3			   ;ABORT LINK IN PROGRESS
   JB.RLE==1B4			   ;RUN LOG ERROR
   JB.OLD==1B5			   ;OLD VERSION OF DQS
   JB.PAU==1B6			   ;STREAM PAUSED (BY OPR)
   JB.REQ==1B7			   ;REQUEUE IN PROGRESS
   JB.HLD==1B8			   ;SET HOLD, NO SLEEP TIME ON REQUEUE
.JBACS:! BLOCK	20		;JOB PROCESSOR ACS
.JBPDL:! BLOCK	PDLSSZ		;JOB PROCESSOR PDL
.JBIDN:! BLOCK	21		;IDENTIFYING TEXT
.JBTIM:! BLOCK	1		;TIMER IN SECONDS
.JBTQS:! BLOCK	1		;TIMER QUEUED SUBROUTINE ADDRESS
.JBNOD:! BLOCK	1		;REMOTE NODE NAME/NUMBER
.JBPSI:! BLOCK	1		;PSI VECTOR BLOCK ADDRESS
.JBPSR:! BLOCK	3		;PSI INTERRUPT TO HERE
.JBFCT:! BLOCK	1		;FAIRNESS COUNTER
.JBRSN:! BLOCK	STSSIZ		;REASON TEXT ON CANCELS OR ABORTS

;NETWORK I/O DATA
.JNIOV:! BLOCK	.IOLEN		;NETWORK I/O DISPATCH VECTOR
.JNIOC:! BLOCK	1		;NETWORK CHANNEL FOR I/O
.JNIOS:! BLOCK	1		;I/O STATUS
.JNARG:! BLOCK	.NSAMX		;NSP. UUO ARGUMENT BLOCK

;FILE STUFF
.JFFOB:! BLOCK	FOB.SZ		;FILE OPEN BLOCK
.JFIFN:! BLOCK	1		;IFN OF CURRENT FILE
;I/O DATA AND BUFFERS
.JIIBR:!			;INPUT BUFFER RING HEADER
.JIIBA:! BLOCK	1		;INPUT BUFFER ADDRESS
.JIIBP:! BLOCK	1		;INPUT BUFFER BYTE POINTER
.JIIBC:! BLOCK	1		;INPUT BUFFER BYTE COUNT
.JIIBF:! BLOCK	BFSWRD		;INPUT BUFFER
.JIOBR:!			;OUTPUT BUFFER RING HEADER
.JIOBA:! BLOCK	1		;OUTPUT BUFFER ADDRESS
.JIOBP:! BLOCK	1		;OUTPUT BUFFER BYTE POINTER
.JIOBC:! BLOCK	1		;OUTPUT BUFFER BYTE COUNT
.JIOBF:! BLOCK	BFSWRD		;OUTPUT BUFFER

;LISTING ROUTINE VARIABLES
.JLPID:! BLOCK	1		;PID OF LIST REQUEST ORIGINATOR
.JLCOD:! BLOCK	1		;ACK CODE FOR MESSAGE ORIGINATOR
.JLTYP:! BLOCK	1		;REQUEST TYPE (0 = USER, -1 = OPR)
.JLQNM:! BLOCK	QNMLEN		;QUEUE NAME TO LIST (ZERO IF ALL)
.JLPAG:! BLOCK	1		;ADDRESS OF LISTING PAGE
.JLMPT:! BLOCK	1		;ZERO IF QUEUE EMPTY
.JLNJL:! BLOCK	1		;NUMBER OF JOBS LISTED
.JLNAJ:! BLOCK	1		;NUMBER OF ACTIVE JOBS LISTED
.JLNRM:! BLOCK	1		;NO ROOM LEFT IN OUTPUT PAGE FLAG
.JLCRF:! BLOCK	1		;LAST OUTPUT WAS CRLF FLAG
.JLBPT:! BLOCK	1		;BYTE POINTER INTO OUTPUT PAGE
.JLBCT:! BLOCK	1		;BYTE COUNT REMAINING IN OUTPUT PAGE
.JLDAA:! BLOCK	1		;ADDRESS OF DATA AREA IN OUTPUT PAGE

;RUN LOG DATA
.JRLNK:! BLOCK	1		;LINKED LIST HANDLE
.JRPTR:! BLOCK	1		;BYTE POINTER TO STORAGE
.JRCNT:! BLOCK	1		;BYTE COUNT

.JWRDS:!			;LENGTH OF DATA BASE IN WORDS
.JPAGS==1+<<.JWRDS-1>/PAGSIZ>	;LENGTH OF DATA BASE IN PAGES
	 .ORG

SUBTTL	Job states


;*** NOTE ***
;WAIT STATE 'RUN' MUST BE FIRST IN LIST

DEFINE	WSTATE,<

X	RUN,<Running>
X	WCC,<Waiting for connect confirm>
X	WRC,<Waiting for remote connect>
X	WDC,<Waiting for disconnect confirm>
X	OUT,<Output data request queued>
X	INP,<Input data request queued>
X	IDL,<Idle>
X	PAU,<Stopped by the operator>

> ;END DEFINE WSTATE

	ZZ==-1
DEFINE	X	(NAM,TXT),<.WS'NAM==<ZZ==ZZ+1>>
	WSTATE
	PURGE	ZZ
SUBTTL	Job control macros


;MACRO TO RESCHEDULE A STREAM
;ARGUMENTS:	WSC = OPTIONAL WAIT STATE CODE
;		TIM = OPTIONAL TIME IN SECONDS
;
;IF COD = -1, WAIT STATE WILL NOT BE SET
;IF TIM = -1, TIMER WILL NOT BE SET

DEFINE	SCDSET	(COD,TIM),<

	GLOB	<SSCHED>
	PUSHJ	P,SSCHED
	<300>B8+<COD&777>B17+<TIM&777777>B35

> ;END DEFINE SCDSET
SUBTTL	Listing Control Macros


DEFINE	$ASCII(MSG),<
	PUSHJ	P,ASCOUI	;;CALL IN-LINE ASCII TEXT PROCESSOR
	CAI	[ASCIZ |MSG|]	;;ADDRESS OF THE TEXT
>; END DEFINE $ASCII
SUBTTL	Byte pointer macros


;MACRO TO CREATE A BYTE POINTER TO A BYTE IN A MESSAGE.
;ARGUMENTS:	OFS - BYTE OFFSET INTO MESSAGE
;		ADR - ADDRESS OF MESSAGE

DEFINE	BYTPNT	(OFS,ADR),<

	$$$WRD==OFS/4		;;WORD OFFSET
	$$$POS==<<<OFS&3>+1>*8>-1 ;;POSITION OF RIGHT-MOST BIT

	POINT	8,$$$WRD+ADR,$$$POS

>; END DEFINE BYTPNT
SUBTTL	DJS Protocol Definitions


	RADIX	5+5

;Message types

	.MTCRE==2		;CREATE
	.MTPAR==3		;PARAMETER
	.MTFSP==4		;FILE SPEC
	.MTFDT==5		;FILE DATA
	.MTEOF==6		;END OF FILE
	.MTEOR==7		;END OF REQUEST
	.MTCOM==8		;COMMIT
	.MTWIT==9		;WITHDRAW
	.MTCAN==10		;CANCEL
	.MTDIS==11		;DISPLAY
	.MTMOD==12		;MODIFY
	.MTSUM==13		;SUMMARY
	.MTERR==15		;ERROR
	.MTEND==16		;END


;Block types for the ENVIRONMENT message (not used)

;	.BTPVN==1		;PROTOCOL VERSION
;	.BTBFS==3		;BUFFER SIZE
;	.BTSUP==4		;SUPPORTED FEATURES
;	.BTOST==5		;OPERATING SYSTEM TYPE
;Block types for the CREATE, MODIFY, CANCEL, DISPLAY, and SUMMARY
;messages - note that each message does not necessarily support
;all of the block types listed

	.BTJNB==1		;JOB NUMBER
	.BTJNA==3		;JOB NAME
	.BTJOW==4		;JOB OWNER
	.BTQUE==5		;QUEUE NAME
	.BTJBS==6		;JOB STATE
	.BTRJN==9		;REQUESTOR JOB NUMBER
	.BTTXT==10		;TEXT
	.BTJCT==11		;JOB COUNT
	.BTPGL==12		;PAGE LIMIT
	.BTPRI==13		;PRIORITY
	.BTAFT==14		;AFTER TIME
	.BTNOA==16		;NOTIFY ACTION
	.BTPVN==18		;PROTOCOL VERSION NUMBER
	.BTACT==19		;ACCOUNT NAME
	.BTJID==20		;JOBID LIST
	.BTCAS==21		;CASE TYPE
	.BTFRM==22		;FORMS TYPE
	.BTCHR==23		;CHARACTERISTICS
	   .LNCHR==^D16		   ;LENGTH OF CHARACTERISTICS BYTE STRING
	.BTAJB==24		;ALL JOBS
	.BTNON==29		;NOTIFY NAME
	.BTFNT==30		;FONT NAME
	.BTP01==31		;PARAMETER 1
	.BTP02==32		;PARAMETER 2
	.BTP03==33		;PARAMETER 3
	.BTP04==34		;PARAMETER 4
	.BTP05==35		;PARAMETER 5
	.BTP06==36		;PARAMETER 6
	.BTP07==37		;PARAMETER 7
	.BTP08==38		;PARAMETER 8
	.BTNOT==39		;NOTE
	.BTTMQ==40		;TIME QUEUED
;Block types for the FILE SPEC message

	.BTFNM==6		;FILE NAME
	.BTFTY==8		;FILE DATA TYPE
	.BTFCC==11		;COPIES
	.BTFSE==12		;SEPARATOR
	   SE.HDR==1		   ;FILE HEADERS
	   SE.BST==4		   ;FILE BURST PAGES
	   SE.TRL==8		   ;FILE TRAILERS
	.BTFEP==14		;END PAGE
	.BTFBL==15		;BLANK LINES
	.BTFPO==17		;PAGE OPTION
	   PO.PAG==1		   ;PAGINATE
	   PO.LFS==2		   ;LISTFILESPEC (NOT SUPPORTED)
	.BTFOR==18		;FAB ORG
	.BTFAT==19		;FAB RAT
	.BTFRS==20		;FAB MRS
	.BTFRN==21		;FAB MRN
	.BTFFM==22		;FAB RFM
	.BTFSZ==23		;FAB FSZ
	.BTFBK==24		;FAB BKS
	.BTFGB==25		;FAB GBC
	.BTFOP==26		;FAB FOP
	.BTFAL==27		;FAB ALQ
	.BTFSP==28		;START PAGE
	.BTFST==29		;FILE SETUP


;Block types for the FILE DATA message

	.BTDAT==1		;DATA TRANSFER
;Block types for the ERROR message

	.BTEEL==1		;ERROR LEVEL
	.BTEEC==2		;ERROR CLASS
	.BTECD==3		;ERROR CODE
	.BTEID==7		;MESSAGE ID
	.BTETX==10		;TEXT


;Status values

	.STHDJ==1		;HOLD WAITING FOR COMMIT
	.STHUS==2		;HOLD BY USER
	.STHOP==3		;HOLD BY OPERATOR
	.STHTI==4		;HOLD UNTIL DESIGNATED TIME
	.STHFT==5		;HOLD WAITING FOR FILE TRANSFER
	.STHRW==6		;HOLD WAITING FOR RESOURCES
	.STSCH==7		;SCHEDULED FOR EXECUTION
	.STEXC==8		;EXECUTION IN PROGRESS
	.STSUS==9		;EXECUTION SUSPENDED BY USER
	.STSOP==10		;EXECUTION SUSPENDED BY OPERATOR
	.STSRQ==11		;EXECUTION SUSPENDED BY JOB REQUEST
	.STSRW==12		;EXECUTION SUSPENDED BY RESOURCE WAIT
	.STCUS==13		;JOB CANCELLED BY USER
	.STCOP==14		;JOB CANCELLED BY OPERATOR
	.STCMK==15		;JOB MARKED FOR CANCELLATION
	.STSUC==16		;JOB COMPLETED (TERMINATED NORMALLY)
	.STFAI==17		;JOB COMPLETED (TERMINATED ABNORMALLY)


;Case types

	.CTANY==1		;ANY
	.CTLOW==2		;LOWER
	.CTUPR==3		;UPPER
	.CTLQP==4		;LQP
;Notify action bits

	NA.CMP==1		;NOTIFY ON COMPLETION
	NA.CHG==2		;NOTIFY ON CHANGE
	NA.TSK==4		;NOTIFY TASK


;Error levels

	.ELFAT==4		;FATAL
	.ELWRN==3		;WARNING
	.ELINF==2		;INFORMATIONAL
	.ELSUC==1		;SUCCESS


;Error classes

	.ECRMT==4		;REMOTE
	.ECDJS==3		;DJS
	.ECUNS==2		;UNSUPPORTED
	.ECPRT==1		;PROTOCOL ERROR

	RADIX	4+4
SUBTTL	Definitions of bytes in message header and block


;The first "n" bytes in the DQS message are the message header.
;The contents of these bytes and their names are:

	.HDTYP==0		;MESSAGE TYPE (.MTxxx)
	.HDFLG==1		;FLAGS (NONE DEFINED?)
	.HDCTX==2		;SENDER'S CONTEXT
	.HDBLK==3		;NUMBER OF BLOCKS IN BODY OF MESSAGE
	.HDLNL==4		;LOW ORDER BYTE OF MESSAGE LENGTH
	.HDLNH==5		;HIGH ORDER BYTE OF MESSAGE LENGTH
	.HDSIZ==6		;SIZE OF MESSAGE HEADER


;The first "n" bytes in a DQS message block are the block header.
;The contents of these bytes and their names are:

	.BKTYP==0		;BLOCK TYPE (.BTxxx)
	.BKLNH==1		;HIGH ORDER BYTE OF BLOCK LENGTH
	.BKLNL==2		;LOW ORDER BYTE OF BLOCK LENGTH
	.BKSIZ==3		;SIZE OF BLOCK HEADER
	END