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]
;--