Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/mcb/sclib.m11
There are no other files named sclib.m11 in the archive.
.enabl	lc
;+
;	** [Beginning of SCLIB] **
;-


;                    COPYRIGHT (c) 1980, 1981, 1982
;                    DIGITAL EQUIPMENT CORPORATION
;                        Maynard, Massachusetts
;
;     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.


;++
; FACILITY: Session Control's System Interface User Library
;
; ABSTRACT:
;	This  library  contains  the   macros   and   symbol
;	definitions necessary to  a  process for  use of the
;	MCB Session Control System Interface.
;
; ENVIRONMENT: MCB process
;
; AUTHOR: Buren Hoffman, CREATION DATE: 12-Jun-80
;
; MODIFIED BY:
; 01	B. Hoffman - Changed $LLCRS calls to $SCHED
;--
;+
;	System Interface User Values of Interest
;-

.macro	SCDF$

	; Function Modifier Codes (C.MOD)
	S$CON =  0.		; Connect
	S$ACC =  2.		; Accept
	S$REJ =  4.		; Reject
	S$SND =  6.		; Send data segment
	S$MRQ =  8.		; Data message request
	S$DRQ = 10.		; Data segment request
	S$SNI = 12.		; Send interrupt
	S$IRQ = 14.		; Interrupt request
	S$DIS = 16.		; Disconnect
	S$ABO = 18.		; Abort
	S$GLN = 20.		; Get local node info

	S$CNR =  0.		; Connect received
	S$DAT =  2.		; Return data segment
	S$INT =  4.		; Return interrupt data segment
	S$DSR =  6.		; Disconnect received

	; Reason Codes (C.STS)
	S.SSUC =  1.		; Success
	S.SEOM =  2.		; Success, plus End-Of-Message

	S.ERES =  -1.		; Insufficient network resources
	S.EUNN =  -2.		; Unrecognized node name
	S.ERNS =  -3.		; Remote node shut down
	S.EURO =  -4.		; Unrecognized object
	S.EIOF =  -5.		; Invalid object name format
	S.EOTB =  -6.		; Object too busy
	S.EABS =  -7.		; Abort by remote Session Control
	S.EABM =  -8.		; Abort by management
	S.EABO =  -9.		; Abort by object
	S.EINF = -10.		; Invalid node name format
	S.ELNS = -11.		; Local node shut down
	S.ECBE = -12.		; Connect block format error
	S.EERR = -13.		; General unspecified error
	S.EIDM = -14.		; Invalid data mode
	S.ELST = -15.		; Data lost  buffer too small
	S.ELWS = -16.		; Link in wrong state
	S.EMTL = -17.		; Message too long
	S.ENSL = -18.		; No such link
	S.EABL = -19.		; Abort by local SC
	S.ERBO = -20.		; Rejected by object
	S.EDBO = -20.		; Disconnected by object
	S.ETMI = -21.		; Too many int messages requested
	S.EACR = -34.		; Access control rejection
	S.ENRO = -38.		; No response from object
	S.ENOF = -38.		; Node or object failed
	S.ENUR = -39.		; Node unreachable

	; Miscellaneous Flags/Values
	S$PSEG =  1.		; Segment flow control
	S$PMSG =  2.		; Message flow control

	S$PBOM =  1.		; Beginning of message
	S$PMOM =  2.		; Middle of message
	S$PEOM =  4.		; End of message
;+
; The Konnect Block
;-
.asect
. = 0
K.NODE:	.blkb	6		; Destination node name

K.DFMT:	.blkb	1		; Destination object format
K.DOBJ:	.blkb	1		;      "        "    type
K.DST:	.blkb	18.		;      "        "    descriptor

K.SFMT:	.blkb	1		; Source object format
K.SOBJ:	.blkb	1		;   "      "    type
K.SRC:	.blkb	18.		;   "      "    descriptor

K.RQDL:	.blkw	1		; Requester ID length
K.RQID:	.blkb	16.		;     "      "

K.PASL:	.blkw	1		; Password length
K.PASW:	.blkb	8.		;     "

K.ACTL:	.blkw	1		; Accounting data length
K.ACNT:	.blkb	16.		;     "       "

K.OPDL:	.blkw	1		; Optional data length
K.OPTD:	.blkb	16.		;     "     "
K.ENDD:				; End marker
k.size:

. = K.DST			; Format 1
K.DPL1:	.blkw	1		; Destination process name length
K.DPR1:	.blkb	16.		;      "         "     "

. = K.DST			; Format 2
K.DGRP:	.blkw	1		; Destination group code
K.DUSR:	.blkw	1		;      "      user   "
K.DPL2:	.blkw	1		;      "      process name length
K.DPR2:	.blkb	12.		;      "         "     "

. = K.SRC			; Format 1
K.SPL1:	.blkw	1		; Source process name length
K.SPR1:	.blkb	16.		;   "       "     "

. = K.SRC			; Format 2
K.SGRP:	.blkw	1		; Source group code
K.SUSR:	.blkw	1		;   "    user   "
K.SPL2:	.blkw	1		;   "    process name length
K.SPR2:	.blkb	12.		;   "       "     "

;+
; Field mapping for either source or destination subblocks
;-
. = 0

K.FMT:	.blkb	1		; Format
K.OBJ:	.blkb	1		; Object type
K.DES:	.blkb	18.		; Descriptor

. = K.DES			; Format #1
K.LEN:	.blkw	1
K.NAM:	.blkb	16.

. = K.DES			; Format #2
K.GRP:	.blkw	1
K.USR:	.blkw	1
K.LN2:	.blkw	1
K.NM2:	.blkb	12.

.psect
.endm	SCDF$
;+
;	Structure Access Macros
;-

.macro	GTLLA$	LLA
	.mcall	$$DEF
	$$DEF	C
	.ntype	...LLA,LLA
	.if	eq,...LLA&70
	  CLR	LLA
	  BISB	C.LIX(R4),LLA
	.iff
	  MOVB	C.LIX(R4),LLA
	.endc
.endm	GTLLA$


.macro	GTULA$	ULA
	.mcall	$$DEF
	$$DEF	C
	.ntype	...ULA,ULA
	.if	eq,...ULA&70
	  CLR	ULA
	  BISB	C.PRM1(R4),ULA
	.iff
	  MOVB	C.PRM1(R4),ULA
	.endc
.endm	GTULA$
;+
;	System Interface Macros
;-

.macro	NABO$	ULA,BUF
	.mcall	$$DEF,$$MOVB,$$BUF,$$QUE
	$$DEF	C,S
	$$MOVB	ULA,C.PRM1
	$$BUF	BUF
	$$QUE	XME,ABO
.endm	NABO$


.macro	NACC$	LLA,ULA,FLG,BUF
	.mcall	$$DEF,$$MOVB,$$BUF,$$QUE
	$$DEF	C,S
	$$MOVB	LLA,C.LIX
	$$MOVB	ULA,C.PRM1
	$$MOVB	FLG,C.PRM1+1
	$$BUF	BUF
	$$QUE	XME,ACC
.endm	NACC$


.macro	NCON$	ULA,FLG,BUF,BFR
	.mcall	$$DEF,$$MOVB,$$BUF,$$BFR,$$QUE
	$$DEF	C,S
	$$MOVB	ULA,C.PRM1
	$$MOVB	FLG,C.PRM1+1
	$$BUF	BUF
	$$BFR	BFR
	$$QUE	XME,CON
.endm	NCON$


.macro	NCRA$	ULA,STS
	.mcall	$$DEF,$$MOVB,$$MOV
	$$DEF	C,S
	$$MOVB	ULA,C.PRM1
	$$MOV	STS,C.STS
	$$QUE	RCE
.endm	NCRA$


.macro	NDAK$
	.mcall	$$DEF,$$QUE
	$$DEF	C,S
	$$QUE	RCE
.endm	NDAK$
;+
;	System Interface Macros (cont'd)
;-
.macro	NDAT$	LLA,ULA,FLG,BUF
	.mcall	$$DEF,$$MOVB,$$BUF,$$QUE
	$$DEF	C,S
	$$MOVB	LLA,C.LIX
	$$MOVB	ULA,C.PRM1
	$$MOVB	FLG,C.PRM1+1
	$$BUF	BUF
	$$QUE	XME,SND
.endm	NDAT$


.macro	NDIS$	LLA,ULA,BUF
	.mcall	$$DEF,$$MOVB,$$BUF,$$QUE
	$$DEF	C,S
	$$MOVB	LLA,C.LIX
	$$MOVB	ULA,C.PRM1
	$$BUF	BUF
	$$QUE	XME,DIS
.endm	NDIS$


.macro	NDRQ$	LLA,ULA,NUM
	.mcall	$$DEF,$$MOVB,$$QUE
	$$DEF	C,S
	$$MOVB	LLA,C.LIX
	$$MOVB	ULA,C.PRM1
	$$MOVB	NUM,C.PRM1+1
	$$QUE	XME,DRQ
.endm	NDRQ$


.macro	NGLN$	BUF,FLG
	.mcall	$$DEF,$$BUF,$$QUE,$$MOVB
	$$DEF	C,S
	$$BUF	BUF
	$$MOVB	FLG,C.PRM1
	$$QUE	XME,GLN
.endm	NGLN$


.macro	NINT$	LLA,ULA,BUF
	.mcall	$$DEF,$$MOVB,$$QUE
	$$DEF	C,S
	$$MOVB	LLA,C.LIX
	$$MOVB	ULA,C.PRM1
	$$BUF	BUF
	$$QUE	XME,SNI
.endm	NINT$
;+
;	System Interface Macros (cont'd)
;-
.macro	NIRQ$	LLA,ULA,NUM
	.mcall	$$DEF,$$MOVB,$$QUE
	$$DEF	C,S
	$$MOVB	LLA,C.LIX
	$$MOVB	ULA,C.PRM1
	$$MOVB	NUM,C.PRM1+1
	$$QUE	XME,IRQ
.endm	NIRQ$


.macro	NRDM$	LLA,ULA,BUF
	.mcall	$$DEF,$$MOVB,$$BUF,$$QUE
	$$DEF	C,S
	$$MOVB	LLA,C.LIX
	$$MOVB	ULA,C.PRM1
	$$BUF	BUF
	$$QUE	XME,MRQ
.endm	NRDM$


.macro	NREJ$	LLA,BUF
	.mcall	$$DEF,$$MOVB,$$BUF,$$QUE
	$$DEF	C,S
	$$MOVB	LLA,C.LIX
	$$BUF	BUF
	$$QUE	XME,REJ
.endm	NREJ$


.macro	NRTI$
	.mcall	$$DEF,$$MOVB,$$QUE
	$$DEF	C,S
	$$QUE	RCE
.endm	NRTI$


.macro	NRTN$
	.mcall	$$DEF,$$MOVB,$$QUE
	$$DEF	C,S
	$$QUE	RCE
.endm	NRTN$
;+
; Support Macros
;-

.macro	$$DEF	CCB,SC
  .if	nb,<CCB>
    .if	ndf,C.LNK
	.mcall	CCBDF$
	CCBDF$
    .endc
  .endc
  .if	nb,<SC>
    .if	ndf,S$CON
	.mcall	SCDF$
	SCDF$
    .endc
  .endc
.endm	$$DEF


.macro	$$MOV	SRC,DST
  .if	nb,<SRC>
    .if	idn <#0>,<SRC>
	CLR	DST(R4)
    .iff
	MOV	SRC,DST(R4)
    .endc
  .endc
.endm	$$MOV


.macro	$$MOVB	SRC,DST
  .if	nb,<SRC>
    .if	idn <#0>,<SRC>
	CLRB	DST(R4)
    .iff
	MOVB	SRC,DST(R4)
    .endc
  .endc
.endm	$$MOVB


.macro	$$BUF	BIAS,ADDR,CNT
	.mcall	$$MOV
	$$MOV	BIAS,C.BUF
	$$MOV	ADDR,C.BUF+2
	$$MOV	CNT,C.CNT
.endm	$$BUF


.macro	$$BFR	BIAS,ADDR,CNT
	.mcall	$$MOV
	$$MOV	BIAS,C.PRM2
	$$MOV	ADDR,C.PRM3
	$$MOV	CNT,C.PRM4
.endm	$$BFR


.macro	$$QUE	FNC,MOD
  .if	nb,<FNC>
	MOVB	#FC.'FNC,C.FNC(R4)
  .endc
  .if	nb,<MOD>
	MOVB	#S$'MOD,C.MOD(R4)
  .endc
	CALL	$SCHED
.endm	$$QUE

;++
; [End of SCLIB]
;--