Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/nml/netdir.r16
There are no other files named netdir.r16 in the archive.
!
! 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: BLISS System Interfaces
!
! ABSTRACT:
!
! This file contains DECnet-11/Phase 2 defintions for use in programs to
! be executed under RSX-11M. Refer to DOC:BLILIB.DOC for documentation on
! the use of these definitions and macros.
!
!
!
! ENVIRONMENT: To be used in a BLISS-16 program.
!
! AUTHOR: H. R. Siegler CREATION DATE: 8-April-79
!
! MODIFIED BY:
!
!--
!
! STANDARD QIO DIRECTIVE IDENTIFICATION CODES
!
literal
QIO$$_ = 1 + 12 ^8,
QIOW$$_ = 3 + 12 ^8;
!
! QIO DPB OFFSET DESCRIPTORS
!
field Q$IOF = SET
QIO$DC = [0,0,16,0], ! Directive Identification Code
QIO$FN = [1,0,16,0], ! I/O function code.
QIO$LU = [2,0,16,0], ! Logical unit number.
QIO$EF = [3,8,8,0], ! Event Flag number.
QIO$PR = [3,0,8,0], ! Priority (defaulted to null argument).
QIO$SB = [4,0,16,0], ! Address of I/O status block.
QIO$AE = [5,0,16,0], ! Address of I/O done AST routine.
QIO$P0 = [6,0,16,0], ! Parameter list word 0.
QIO$P1 = [7,0,16,0], ! Parameter list word 1.
QIO$P2 = [8,0,16,0], ! Parameter list word 2.
QIO$P3 = [9,0,16,0], ! Parameter list word 3.
QIO$P4 = [10,0,16,0], ! Parameter list word 4.
QIO$P5 = [11,0,16,0] tes; ! Parameter list word 5.
!
! DECNET FUNCTION CODES
!
literal
ABT$_ = %o'016010',
ACC$_ = %o'015410',
CLS$_ = %o'016410',
CON$_ = %o'015400',
DSC$_ = %o'016000',
GLN$_ = %o'016670',
GND0$_ = %o'016630', ! GND no flag Form
GND1$_ = %o'016640', ! GND NT$LON Form
GND2$_ = %o'016650', ! GND NT$TYP Form
OPN$_ = %o'016400',
REC$_ = %o'015000',
REJ$_ = %o'016020',
SND$_ = %o'014400',
SPA$_ = %o'016420',
XMI$_ = %o'014410';
!
! DEFINITIONS FROM NSSYM$
!
literal
IE$NDA = %o'177662' and %o'377',
IE$NNT = %o'177660' and %o'377',
IE$NRJ = %o'177666' and %o'377',
IE$URJ = %o'177667' and %o'377',
IS$DAO = %o'000002',
NE$ABO = %o'000046',
NE$ABT = %o'000011',
NE$ACC = %o'000042',
NE$ACT = %o'000044',
NE$CDI = %o'000052',
NE$COM = %o'000047',
NE$FCF = %o'000050',
NE$FMT = %o'000005',
NE$GEN = %o'000007',
NE$ILS = %o'000043',
NE$IMG = %o'000053',
NE$MLB = %o'000006',
NE$NOD = %o'000002',
NE$NSD = %o'000003',
NE$RES = %o'000001',
NE$SSR = %o'000000',
NE$SSS = %o'000045',
NE$STA = %o'000051',
NE$TCN = %o'000040',
NE$TCO = %o'000041',
NE$TPA = %o'000010',
NE$UOB = %o'000004',
NO$DTR = %o'000077',
NO$FAL = %o'000021',
NO$FA1 = %o'000001',
NO$NCU = %o'000023',
NO$RTL = %o'000022',
NO$TAS = %o'000000',
NO$TCL = %o'000017',
NO$TC1 = %o'000005',
NO$TLK = %o'000020',
NR$IFC = %o'000030',
NT$ABO = %o'000005',
NT$ABT = %o'000004',
NT$CON = %o'000001',
NT$DSC = %o'000003',
NT$INT = %o'000002',
NT$MOP = %o'000010';
!
! DEFINITIONS FROM CNBDF$ and CRBDF$
!
literal ! Byte Offset Definitions
N$CAC = %o'000120',
N$CACC = %o'000116',
N$CBL = %o'000142',
N$CDA = %o'000142',
N$CDAC = %o'000140',
N$CID = %o'000064',
N$CIDC = %o'000062',
N$CPS = %o'000106',
N$CPSC = %o'000104',
N$CTL = %o'000000',
N$DDE = %o'000010',
N$DDEC = %o'000006',
N$DFM = %o'000004',
N$DGP = %o'000006',
N$DNM = %o'000014',
N$DNMC = %o'000012',
N$DOT = %o'000005',
N$DUS = %o'000010',
N$RAC = %o'000070',
N$RACC = %o'000066',
N$RDE = %o'000012',
N$RDEC = %o'000010',
N$RFM = %o'000006',
N$RGP = %o'000010',
N$RID = %o'000034',
N$RIDC = %o'000032',
N$RND = %o'000000',
N$RNM = %o'000016',
N$RNMC = %o'000014',
N$ROT = %o'000007',
N$RPS = %o'000056',
N$RPSC = %o'000054',
N$RQL = %o'000110',
N$RUS = %o'000012',
N$SDE = %o'000042',
N$SDEC = %o'000040',
N$SEGZ = %o'000002',
N$SFM = %o'000036',
N$SGP = %o'000040',
N$SND = %o'000030',
N$SNM = %o'000046',
N$SNMC = %o'000044',
N$SOT = %o'000037',
N$SUS = %o'000042';
literal
NT$LON = 0,
NT$TYP = 1;
!
! SUPPORT MACROS
!
macro %RSX_EMT(ERR) =
(linkage RSX = EMT : CLEARSTACK VALUECBIT;
%if %null(ERR)
%then not RSX(%o'377',%remaining)
%else if RSX(%o'377',%remaining) then ERR %fi ) %;
macro %DIR$(ADR, ERR) = %RSX_EMT(ERR, ADR) %;
macro %DEFLT(DEFAULT, ACTUAL) =
%if %null (ACTUAL) %then DEFAULT
%else ACTUAL %fi %;
macro %PAD_DIRECT(P1,P2,P3,P4,P5,P6) =
P1+0, P2+0, P3+0, P4+0, P5+0, P6+0 %;
macro %PAD_REVERSE(P1,P2,P3,P4,P5,P6) =
P6+0, P5+0, P4+0, P3+0, P2+0, P1+0 %;
macro %PAD_REV_CON(P1,P2,P3,P4,P5,P6) =
P6+0, P5+0, P4+0, P3+0,
%if %null(P2) %then N$RQL, %else P2+0, %fi
P1+0 %;
macro %PAD_DIR_CON(P1,P2,P3,P4,P5,P6) =
P1+0,
%if %null(P2) %then N$RQL, %else P2+0, %fi
P3+0, P4+0, P5+0, P6+0 %;
macro %PROC_CON_PRL(P1,P2,P3,P4,P5,P6) = begin
%if not %null (P1) %then DPB$$$ [QIO$P0] = P1 + 0; %fi
%if not %null (P2)
%then DPB$$$ [QIO$P1] = P2 + 0;
%else DPB$$$ [QIO$P1] = N$RQL; %fi
%if not %null (P3) %then DPB$$$ [QIO$P2] = P3 + 0; %fi
%if not %null (P4) %then DPB$$$ [QIO$P3] = P4 + 0; %fi
%if not %null (P5) %then DPB$$$ [QIO$P4] = P5 + 0; %fi
%if not %null (P6) %then DPB$$$ [QIO$P5] = P6 + 0; %fi end %;
macro %PROCESS_PRL(P1,P2,P3,P4,P5,P6) = begin
%if not %null (P1) %then DPB$$$ [QIO$P0] = P1 + 0; %fi
%if not %null (P2) %then DPB$$$ [QIO$P1] = P2 + 0; %fi
%if not %null (P3) %then DPB$$$ [QIO$P2] = P3 + 0; %fi
%if not %null (P4) %then DPB$$$ [QIO$P3] = P4 + 0; %fi
%if not %null (P5) %then DPB$$$ [QIO$P4] = P5 + 0; %fi
%if not %null (P6) %then DPB$$$ [QIO$P5] = P6 + 0; %fi end %;
macro %PROCESS_CON(DIC,FNC,LABL,LUN,EFN,ISB,AST,PRL,ERR) = begin
bind DPB$$$ = LABL: block [ DIC ^ -8 ] field (Q$IOF);
DPB$$$ [QIO$DC] = DIC;
DPB$$$ [QIO$FN] = FNC;
DPB$$$ [QIO$PR] = 0;
%if not %null (LUN) %then DPB$$$ [QIO$LU] = LUN; %fi
%if not %null (EFN) %then DPB$$$ [QIO$EF] = EFN; %fi
%if not %null (ISB) %then DPB$$$ [QIO$SB] = ISB; %fi
%if not %null (AST) %then DPB$$$ [QIO$AE] = AST; %fi
%if not %null (%remove(PRL)) %then %PROC_CON_PRL ( %remove (PRL)); %fi
%if not %null (ERR) %then %DIR$ (DPB$$$, ERR)
%else %DIR$ (DPB$$$); %fi
end %;
macro %PROCESS_(DIC,FNC,LABL,LUN,EFN,ISB,AST,PRL,ERR) = begin
bind DPB$$$ = LABL: block [ DIC ^ -8 ] field (Q$IOF);
DPB$$$ [QIO$DC] = DIC;
DPB$$$ [QIO$FN] = FNC;
DPB$$$ [QIO$PR] = 0;
%if not %null (LUN) %then DPB$$$ [QIO$LU] = LUN; %fi
%if not %null (EFN) %then DPB$$$ [QIO$EF] = EFN; %fi
%if not %null (ISB) %then DPB$$$ [QIO$SB] = ISB; %fi
%if not %null (AST) %then DPB$$$ [QIO$AE] = AST; %fi
%if not %null (%remove(PRL)) %then %PROCESS_PRL ( %remove (PRL)); %fi
%if not %null (ERR) %then %DIR$ (DPB$$$, ERR)
%else %DIR$ (DPB$$$); %fi
end %;
macro %UNPAK_FMT_1(DESCRIPTOR) =
%if %null (DESCRIPTOR)
%then ) %errormacro ('Format 1 Descriptor: Remote Task Name Missing')
%else
%if %charcount (DESCRIPTOR) leq 16 %then %charcount (DESCRIPTOR),
%exactstring (16, %char(0), DESCRIPTOR)
%else ) %errormacro ('Remote Task Name Exceeded 16 Characters') %fi %fi %;
macro %UNPAK_FMT_2(GROUP,USER,NAME) =
%if not %null (GROUP) %then GROUP,
%else ) %errormacro ('Format 2 Descriptor: Remote Group Sub-Field missing') %fi
%if not %null (USER) %then USER,
%else ) %errormacro ('Format 2 Descriptor: Remote User Sub-Field missing') %fi
%if %null (NAME) %then
%errormacro ) ('Format 2 Descriptor: Remote Program Name missing')
%else
%if %charcount (NAME) leq 12 %then %charcount (NAME),
%exactstring (12, %char(0), NAME)
%else ) %errormacro ('User Name Exceeded 12 Characters') %fi %fi %;
macro %UNPAK_PSWD(PSWD) =
%if %charcount (PSWD) leq 8 %then %charcount (PSWD),
%exactstring (8,%char(0),PSWD)
%else ) %errormacro ('Requesting Task Password Field Exceeded 8 Characters') %fi %;
!
! INTERTASK COMMUNICATIONS MACROS
!
!
! ABORT A LOGICAL LINK
!
macro ABT$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, ABT$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro ABT$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, ABT$_, QIO$$_) %;
macro ABTW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, ABT$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro ABTW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, ABT$_, QIOW$$_) %;
macro ABT$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,ABT$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro ABTW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,ABT$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! ACCEPT A LOGICAL LINK CONNECTION REQUEST
!
macro ACC$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, ACC$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro ACC$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, ACC$_, QIO$$_) %;
macro ACCW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, ACC$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro ACCW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, ACC$_, QIOW$$_) %;
macro ACC$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,ACC$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro ACCW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,ACC$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! END A TASK'S NETWORK OPERATION
!
macro CLS$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, CLS$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro CLS$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, CLS$_, QIO$$_) %;
macro CLSW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, CLS$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro CLSW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, CLS$_, QIOW$$_) %;
macro CLS$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,CLS$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro CLSW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,CLS$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! REQUEST A LOGICAL LINK CONNECTION
!
macro CON$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, CON$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIR_CON( %remove (PRL))) %;
macro CON$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REV_CON( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, CON$_, QIO$$_) %;
macro CONW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, CON$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIR_CON( %remove (PRL))) %;
macro CONW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REV_CON( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, CON$_, QIOW$$_) %;
macro CON$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_CON (QIO$$_,CON$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro CONW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_CON (QIOW$$_,CON$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! BUILD THE CONNECT BLOCK FOR THE CONx - CALL
!
macro CONB$$(NODE,OBJ,FMT,DESCRIP,RQID,PSWD,ACCNO) =
vector [ N$RQL, byte ] initial (
! Destination Descriptor (Node Name)
%if %charcount (NODE) gtr 6
%then ) %errormacro ('Node Name Exceeded 6 Characters')
%else
%if not %null (NODE)
%then %exactstring (6, %char(0), NODE),
%else rep 3 of (0), %fi %fi
! Object Type and Format Descriptor (Byte Values)
%DEFLT (0,OBJ) ^8 + %DEFLT (0,FMT),
! Descriptor Field for Format 0 (Not Used)
%if %null (FMT) or %char (FMT) eql 0 %then rep 9 of (0), %else
! Descriptor Field for Format 1
%if %char (FMT) eql 1 %then %UNPAK_FMT_1( %remove (DESCRIP)), %else
! Descriptor Field for Format 2
%if %char(FMT) eql 2 %then %UNPAK_FMT_2( %remove (DESCRIP)),
%else ) %errormacro ('Illegal Format Descriptor in Connect Block')
%fi %fi %fi
! Access Control Fields
%if %null (RQID) %then rep 9 of (0), %else
%if %charcount (RQID) leq 16
%then %charcount (RQID), %exactstring (16, %char(0), RQID),
%else ) %errormacro ('Requesting User I.D. Field Exceeded 16 Characters') %fi %fi
%if %null (PSWD)
%then rep 5 of (0),
%else %UNPAK_PSWD( %remove (PSWD)), %fi
%if %null (ACCNO) %then rep 9 of (0)) %else
%if %charcount (ACCNO) leq 16
%then %charcount (ACCNO), %exactstring (16, %char(0), ACCNO))
%else ) %errormacro ('Accounting Information Field Exceeded 16 Characters') %fi %fi
%;
!
! DISCONNECT A LOGICAL LINK
!
macro DSC$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, DSC$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro DSC$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, DSC$_, QIO$$_) %;
macro DSCW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, DSC$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro DSCW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, DSC$_, QIOW$$_) %;
macro DSC$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,DSC$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro DSCW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,DSC$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! GET LOCAL NODE INFORMATION
!
macro GLN$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, GLN$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro GLN$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, GLN$_, QIO$$_) %;
macro GLNW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, GLN$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro GLNW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, GLN$_, QIOW$$_) %;
macro GLN$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,GLN$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro GLNW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,GLN$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! GET NETWORK DATA
!
macro GND$(LUN,EFN,ISB,AST,PRL,FLG) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_,
%if %null (FLG)
%then GND0$_,
%else
%if (FLG) eql NT$LON
%then GND1$_,
%else
%if (FLG) eql NT$TYP
%then GND2$_,
%else , %errormacro ('Invalid FLAG Parameter for GND Macro')
%fi %fi %fi
LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro GND$S(LUN,EFN,ISB,AST,PRL,FLG,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN,
%if %null (FLG)
%then GND0$_,
%else
%if (FLG) eql NT$LON
%then GND1$_,
%else
%if (FLG) eql NT$TYP
%then GND2$_,
%else , %errormacro ('Invalid FLAG Parameter for GND Macro')
%fi %fi %fi
QIO$$_) %;
macro GNDW$(LUN,EFN,ISB,AST,PRL,FLG) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_,
%if %null (FLG)
%then GND0$_,
%else
%if (FLG) eql NT$LON
%then GND1$_,
%else
%if (FLG) eql NT$TYP
%then GND2$_,
%else , %errormacro ('Invalid FLAG Parameter for GND Macro')
%fi %fi %fi
LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro GNDW$S(LUN,EFN,ISB,AST,PRL,FLG,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN,
%if %null (FLG)
%then GND0$_,
%else
%if (FLG) eql NT$LON
%then GND1$_,
%else
%if (FLG) eql NT$TYP
%then GND2$_,
%else , %errormacro ('Invalid FLAG Parameter for GND Macro')
%fi %fi %fi
QIOW$$_) %;
macro GND$E(LABL,LUN,EFN,ISB,AST,PRL,FLG,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,
%if %null (FLG)
%then GND0$_,
%else
%if (FLG) eql NT$LON
%then GND1$_,
%else
%if (FLG) eql NT$TYP
%then GND2$_,
%else , %errormacro ('Invalid FLAG Parameter for GND Macro')
%fi %fi %fi
LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro GNDW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,
%if %null (FLG)
%then GND0$_,
%else
%if (FLG) eql NT$LON
%then GND1$_,
%else
%if (FLG) eql NT$TYP
%then GND2$_,
%else , %errormacro ('Invalid FLAG Parameter for GND Macro')
%fi %fi %fi
LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! ACCESS THE NETWORK
!
macro OPN$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, OPN$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro OPN$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, OPN$_, QIO$$_) %;
macro OPNW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, OPN$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro OPNW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, OPN$_, QIOW$$_) %;
macro OPN$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,OPN$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro OPNW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,OPN$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! RECEIVE DATA OVER A LOGICAL LINK
!
macro REC$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, REC$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro REC$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, REC$_, QIO$$_) %;
macro RECW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, REC$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro RECW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, REC$_, QIOW$$_) %;
macro REC$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,REC$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro RECW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,REC$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! REJECT A LOGICAL LINK REQUEST
!
macro REJ$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, REJ$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro REJ$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, REJ$_, QIO$$_) %;
macro REJW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, REJ$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro REJW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, REJ$_, QIOW$$_) %;
macro REJ$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,REJ$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro REJW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,REJ$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! SEND DATA OVER A LOGICAL LINK
!
macro SND$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, SND$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro SND$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, SND$_, QIO$$_) %;
macro SNDW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, SND$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro SNDW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, SND$_, QIOW$$_) %;
macro SND$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,SND$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro SNDW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,SND$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! SPECIFY USER AST ROUTINE
!
macro SPA$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, SPA$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro SPA$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, SPA$_, QIO$$_) %;
macro SPAW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, SPA$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro SPAW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, SPA$_, QIOW$$_) %;
macro SPA$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,SPA$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro SPAW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,SPA$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
!
! SEND AN INTERUPT MESSAGE OVER A LOGICAL LINK
!
macro XMI$(LUN,EFN,ISB,AST,PRL) =
block [QIO$$_ ^ - 8] field (Q$IOF) initial (
QIO$$_, XMI$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro XMI$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, XMI$_, QIO$$_) %;
macro XMIW$(LUN,EFN,ISB,AST,PRL) =
block [QIOW$$_ ^ -8] field (Q$IOF) initial(
QIOW$$_, XMI$_, LUN, 0 + %DEFLT(0,EFN), %DEFLT(0,ISB), %DEFLT(0,AST),
%PAD_DIRECT( %remove (PRL))) %;
macro XMIW$S(LUN,EFN,ISB,AST,PRL,ERR) =
%RSX_EMT (ERR, %PAD_REVERSE( %remove (PRL)), %DEFLT(0,AST), %DEFLT(0,ISB),
0 + %DEFLT(0,EFN), LUN, XMI$_, QIOW$$_) %;
macro XMI$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIO$$_,XMI$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
macro XMIW$E(LABL,LUN,EFN,ISB,AST,PRL,ERR) =
%if %declared (LABL)
%then %PROCESS_ (QIOW$$_,XMI$_,LABL,LUN,EFN,ISB,AST,PRL,ERR)
%else %errormacro ('DPB Name Incorrect or DPB Missing') %fi %;
! [ END OF NETLIB.R16 ]