Trailing-Edge
-
PDP-10 Archives
-
decuslib10-07
-
43,50450/rsxmac.req
There are no other files named rsxmac.req in the archive.
00050 % RSXMAC.REQ VERSION 3.0 % SWITCHES NOLIST;
00100 REQUIRE 'B11MAC.REQ' SOURCE;
00150 %
00200 RSX-11M EXECUTIVE SERVICES MACRO LIBRARY FOR BLISS-11
00250
00300 AUTHOR:
00350 K. E. GORLEN
00400 RM. 2017, BG. 12A
00450 DIVISION OF COMPUTER RESEARCH AND TECHNOLOGY
00500 NATIONAL INSTITUTES OF HEALTH
00550 BETHESDA, MD. 20014
00600 PHONE: (301) 496-5361
00650 MARCH 17,1975
00700
00750 SEE RSXMAC.DOC FOR DOCUMENTATION.
00800
00850 %
00900 !
00950 ! ?.SUBLIST6 -- PAD SIX PARAMETER SUBLIST
01000 !
01050 MACRO ?.SUBLIST6(P1,P2,P3,P4,P5,P6)=
01100 P1+0,P2+0,P3+0,P4+0,P5+0,P6+0 $;
01150 !
01200 ! ?.DPB MACRO -- GENERATE DIRECTIVE PARAMETER BLOCK (DPB)
01250 !
01300 MACRO ?.DPB(DIC)[]=
01350 $LENGTH^8+(DIC) ?.COMMA($REMAINING) ?.DPBA($REMAINING) $,
01400 ?.DPBA[P]=P+0 $;
01450 !
01500 ! ?DIR$ MACRO -- GENERATE CALL TO RSX-11M EXECUTIVE
01550 !
01600 LINKAGE ?.RSX11=EMT(CLEARSTACK);
01650
01700 MACRO ?RSXERRDF$=$;
01750
01800 MACRO ?DIR$(DPB,ERR)=BEGIN
01850 SWITCHES UNAMES;
01900 OPCODE ?.BCC=BCC;
01950 OPLABEL ?.NOERR;
02000 ?.RSX11(#377,?.REVERSE(?.SUBLIST(DPB)));
02050 ?.SELECT(ERR,
02100 <?.BCC(?.NOERR); DO (ERR) WHILE 0; ?.NOERR:>,
02150 <?.SELECT(?RSXERRDF$,
02200 <?.BCC(?.NOERR); DO (?RSXERRDF$) WHILE 0; ?.NOERR:>,)>) END$;
02250 !
02300 ! $C MACRO -- GENERATE $C FORM DIRECTIVE CALL
02350 !
02400 MACRO $C(DPB,ERR)=
02450 ?DIR$(<UPLIT(?.SUBLIST(DPB))>,ERR) $;
02500 !
02550 ! ?ABRT$ -- ABORT TASK
02600 !
02650 BIND ?ABRT.DL=3;
02700
02750 MACRO ?ABRT$(TSK)=?ABRT.DL^8+83,RAD50 ?.DEFAULT(TSK,' ') $;
02800
02850 MACRO ?ABRT$S(TSK,ERR)=BEGIN
02900 BIND ?A.BTTN[2]=TSK;
02950 ?DIR$(<?.DPB(83,.?A.BTTN[0],.?A.BTTN[1])>,ERR) END$;
03000
03050 MACRO ?ABRT$C(DPB)=
03100 BIND
03150 ?A.BTTN[2]=(DPB)+2 $; ! TASK NAME
03200 !
03250 ! ?ALTP$ -- ALTER PRIORITY
03300 !
03350 BIND ?ALTP.DL=4;
03400
03450 MACRO ?ALTP$(TSK,PRI)=
03500 ?ALTP.DL^8+9,RAD50 ?.DEFAULT(TSK,' '),PRI+0 $;
03550
03600 MACRO ?ALTP$S(TSK,PRI,ERR)=BEGIN
03650 ?.SELECT(TSK,<BIND ?A.LTTN[2]=TSK;>)
03700 ?DIR$(<?.DPB(9,
03750 ?.SELECT(TSK,<.?A.LTTN[0],.?A.LTTN[1]>,<0,0>),
03800 PRI+0)>,ERR) END$;
03850
03900 MACRO ?ALTP$C(DPB)=
03950 BIND
04000 ?A.LTTN[2]=(DPB)+2, ! TASK NAME
04050 ?A.LTPR=(DPB)+6 $; ! PRIORITY
04100 !
04150 ! ?ALUN$ -- ASSIGN LUN
04200 !
04250 BIND ?ALUN.DL=4;
04300
04350 MACRO ?ALUN$(LUN,DEV,UNT)=
04400 ?.DPB(7,LUN,DEV,UNT+0) $;
04450
04500 MACRO ?ALUN$S(LUN,DEV,UNT,ERR)=
04550 ?DIR$(<?ALUN$(LUN,DEV,UNT)>,ERR) $;
04600
04650 MACRO ?ALUN$C(DPB)=
04700 BIND
04750 ?A.LULU=(DPB)+2, ! LOGICAL UNIT NUMBER
04800 ?A.LUNA=(DPB)+4, ! PHYSICAL DEVICE NAME
04850 ?A.LUNU=(DPB)+6 $; ! PHYSICAL DEVICE UNIT #
04900 !
04950 ! ?ASTX$S -- AST SERVICE EXIT
05000 !
05050 MACRO ?ASTX$S(ERR)=
05100 ?DIR$(<?.DPB(115)>,ERR) $;
05150 !
05200 ! ?ATRG$ -- ATTACH REGION
05250 !
05300 BIND ?ATRG.DL=2;
05350
05400 MACRO ?ATRG$(RDB)=?.DPB(57,RDB+0) $;
05450
05500 MACRO ?ATRG$S(RDB,ERR)=
05550 ?DIR$(<?ATRG$(RDB)>,ERR) $;
05600
05650 MACRO ?ATRG$C(DPB)=
05700 BIND
05750 ?A.TRBA=(DPB)+2 $; ! REGION DEFINITION BLOCK ADDRESS
05800 !
05850 ! ?CLEF$ -- CLEAR EVENT FLAG
05900 !
05950 BIND ?CLEF.DL=2;
06000
06050 MACRO ?CLEF$(EFN)=?.DPB(31,EFN+0) $;
06100
06150 MACRO ?CLEF$S(EFN,ERR)=
06200 ?DIR$(<?CLEF$(EFN)>,ERR) $;
06250
06300 MACRO ?CLEF$C(DPB)=
06350 BIND
06400 ?C.LEEF=(DPB)+2 $; ! EVENT FLAG NUMBER
06450 !
06500 ! ?CMKT$S -- CANCEL MARK TIME REQUESTS
06550 !
06600 MACRO ?CMKT$S(EFN,AST,ERR)=
06650 ?DIR$(<?.DPB(27)>,ERR) $;
06700 !
06750 ! ?CRAW$ -- CREATE ADDRESS WINDOW
06800 !
06850 BIND ?CRAW.DL=2;
06900
06950 MACRO ?CRAW$(WDB)=?.DPB(117,WDB+0) $;
07000
07050 MACRO ?CRAW$S(WDB,ERR)=
07100 ?DIR$(<?CRAW$(WDB)>,ERR) $;
07150
07200 MACRO ?CRAW$C(DPB)=
07250 BIND
07300 ?C.RABA=(DPB)+2 $; ! WINDOW DEFINITION BLOCK ADDRESS
07350 !
07400 ! ?CRRG$ -- CREATE REGION
07450 !
07500 BIND ?CRRG.DL=2;
07550
07600 MACRO ?CRRG$(RDB)=?.DPB(55,RDB+0) $;
07650
07700 MACRO ?CRRG$S(RDB,ERR)=
07750 ?DIR$(<?CRRG$(RDB)>,ERR) $;
07800
07850 MACRO ?CRRG$C(DPB)=
07900 BIND
07950 ?C.RRBA=(DPB)+2 $; ! REGION DEFINITION BLOCK ADDRESS
08000 !
08050 ! ?CSRQ$ -- CANCEL TIME BASED INITIATION REQUESTS
08100 !
08150 BIND ?CSRQ.DL=3;
08200
08250 MACRO ?CSRQ$(TSK)=?CSRQ.DL^8+25,RAD50 ?.DEFAULT(TSK,' ') $;
08300
08350 MACRO ?CSRQ$S(TSK,RTK,ERR)=BEGIN
08400 BIND ?C.SRTN[2]=TSK;
08450 ?DIR$(<?.DPB(25,.?C.SRTN[0],.?C.SRTN[1])>,ERR) END$;
08500
08550 MACRO ?CSRQ$C(DPB)=
08600 BIND
08650 ?C.SRTN[2]=(DPB)+2, ! TARGET TASK NAME
08700 ?C.SRRN[2]=(DPB)+6 $; ! REQUESTING TASK NAME (UNUSED)
08750 !
08800 ! ?DECL$S -- DECLARE SIGNIFICANT EVENT
08850 !
08900 MACRO ?DECL$S(IGNORED1,ERR)=
08950 ?DIR$(<?.DPB(35)>,ERR) $;
09000 !
09050 ! ?DSAR$S -- DISABLE AST RECOGNITION
09100 !
09150 MACRO ?DSAR$S(ERR)=
09200 ?DIR$(<?.DPB(99)>,ERR) $;
09250 !
09300 ! ?DSCP$S -- DISABLE CHECKPOINTING
09350 !
09400 MACRO ?DSCP$S(ERR)=
09450 ?DIR$(<?.DPB(95)>,ERR) $;
09500 !
09550 ! ?DTRG$ -- DETACH REGION
09600 !
09650 BIND ?DTRG.DL=2;
09700
09750 MACRO ?DTRG$(RDB)=?.DPB(59,RDB+0) $;
09800
09850 MACRO ?DTRG$S(RDB,ERR)=
09900 ?DIR$(<?DTRG$(RDB)>,ERR) $;
09950
10000 MACRO ?DTRG$C(DPB)=
10050 BIND
10100 ?D.TRBA=(DPB)+2 $; ! REGION DEFINITION BLOCK ADDRESS
10150 !
10200 ! ?ELAW$ -- ELIMINATE ADDRESS WINDOW
10250 !
10300 BIND ?ELAW.DL=2;
10350
10400 MACRO ?ELAW$(WDB)=?.DPB(119,WDB+0) $;
10450
10500 MACRO ?ELAW$S(WDB,ERR)=
10550 ?DIR$(<?ELAW$(WDB)>,ERR) $;
10600
10650 MACRO ?ELAW$C(DPB)=
10700 BIND
10750 ?E.LABA=(DPB)+2 $; ! WINDOW DEFINITION BLOCK ADDRESS
10800 !
10850 ! ?ENAR$S -- ENABLE AST RECOGNITION
10900 !
10950 MACRO ?ENAR$S(ERR)=
11000 ?DIR$(<?.DPB(101)>,ERR) $;
11050 !
11100 ! ?ENCP$S -- ENABLE CHECKPOINTING
11150 !
11200 MACRO ?ENCP$S(ERR)=
11250 ?DIR$(<?.DPB(97)>,ERR) $;
11300 !
11350 ! ?EXIF$ -- EXITIF
11400 !
11450 BIND ?EXIF.DL=2;
11500
11550 MACRO ?EXIF$(EFN)=?.DPB(53,EFN+0) $;
11600
11650 MACRO ?EXIF$S(EFN,ERR)=
11700 ?DIR$(<?EXIF$(EFN)>,ERR) $;
11750
11800 MACRO ?EXIF$C(DPB)=
11850 BIND
11900 ?E.XFEF=(DPB)+2 $; ! EVENT FLAG NUMBER
11950 !
12000 ! ?EXIT$S -- TASK EXIT
12050 !
12100 MACRO ?EXIT$S(ERR)=BEGIN
12150 ?.RSX11(#377,?.DPB(51));
12200 ?.SELECT(ERR,<ERR>,) END$;
12250 !
12300 ! ?EXTK$ -- EXTEND TASK
12350 !
12400 BIND ?EXTK.DL=3;
12450
12500 MACRO ?EXTK$(INC)=?.DPB(89,INC,0) $;
12550
12600 MACRO ?EXTK$S(INC,ERR)=
12650 ?DIR$(<?EXTK$(INC)>,ERR) $;
12700
12750 MACRO ?EXTK$C(DPB)=
12800 BIND
12850 ?E.XTIN=(DPB)+2 $; ! EXTEND INCREMENT
12900 !
12950 ! ?GLUN$ -- GET LUN INFORMATION
13000 !
13050 BIND ?GLUN.DL=3;
13100 BIND ?GLUN.BL=6;
13150
13200 MACRO ?GLUN$(LUN,BUF)=?.DPB(5,LUN,BUF+0) $;
13250
13300 MACRO ?GLUN$S(LUN,BUF,ERR)=
13350 ?DIR$(<?GLUN$(LUN,BUF)>,ERR) $;
13400
13450 MACRO ?GLUN$C(DPB)=
13500 BIND
13550 ?G.LULU=(DPB)+2, ! LOGICAL UNIT NUMBER
13600 ?G.LUBA=(DPB)+4, ! BUFFER ADDRESS
13650 ?G.LUBL=(DPB)+6 $; ! BUFFER LENGTH
13700
13750 MACRO ?GLUN$B(BUF)=
13800 BIND
13850 ?G.LUNA=(BUF); ! DEVICE NAME
13900 ! BYTE BIND
13950 ! ?G.LUNU=(BUF)+2, ! DEVICE UNIT NUMBER
14000 ! ?G.LUFB=(BUF)+3; ! FLAGS BYTE
14050 MACRO ! UNTIL BYTE BIND FIXED
14100 $QUOTE $QUOTE ?G.LUNU=((BUF)+2)<0,8> $QUOTE $,
14150 $QUOTE $QUOTE ?G.LUFB=((BUF)+3)<0,8> $QUOTE $;
14200 BIND
14250 ?G.LUCW[4]=(BUF)+4 $; ! DEVICE CHARACTERISTICS WORDS
14300 !
14350 ! ?GMCR$ -- GET MCR COMMAND LINE
14400 !
14450 BIND ?GMCR.DL=41;
14500
14550 MACRO ?GMCR$=?GMCR.DL^8+127,40:0 $;
14600
14650 MACRO ?GMCR$C(DPB)=
14700 BYTE BIND
14750 ?G.MCRB[80]=(DPB)+2 $;
14800 !
14850 ! ?GMCX$ -- GET MAPPING CONTEXT
14900 !
14950 BIND ?GMCX.DL=2;
15000
15050 MACRO ?GMCX$(WVEC)=?.DPB(113,WVEC+0) $;
15100
15150 MACRO ?GMCX$S(WVEC,ERR)=
15200 ?DIR$(<?GMCX$(WVEC)>,ERR) $;
15250
15300 MACRO ?GMCX$C(DPB)=
15350 BIND
15400 ?G.MCVA=(DPB)+2 $; ! WINDOW DEFINITION BLOCK VECTOR ADDRESS
15450 !
15500 ! ?GPRT$ -- GET PARTITION PARAMETERS
15550 !
15600 BIND ?GPRT.DL=4;
15650 BIND ?GPRT.BL=3;
15700
15750 MACRO ?GPRT$(PRT,BUF)=?GPRT.DL^8+65,RAD50 ?.DEFAULT(PRT,' '),BUF+0 $;
15800
15850 MACRO ?GPRT$S(PRT,BUF,ERR)=BEGIN
15900 ?.SELECT(PRT,<BIND ?G.PRPN[2]=PRT;>)
15950 ?DIR$(<?.DPB(65,
16000 ?.SELECT(PRT,<.?G.PRPN[0],.?G.PRPN[1]>,<0,0>),
16050 BUF+0)>,ERR) END$;
16100
16150 MACRO ?GPRT$C(DPB)=
16200 BIND
16250 ?G.PRPN[2]=(DPB)+2, ! PARTITION NAME
16300 ?G.PRBA=(DPB)+6 $; ! BUFFER ADDRESS
16350
16400 MACRO ?GPRT$B(BUF)=
16450 BIND
16500 ?G.PRPB=(BUF), ! PARTITION BASE ADDRESS/32
16550 ?G.PRPS=(BUF)+2, ! PARTITION SIZE/32
16600 ?G.PRFW=(BUF)+4 $; ! PARTITION FLAGS WORD
16650 !
16700 ! ?GREG$ -- GET REGION PARAMETERS
16750 !
16800 BIND ?GREG.DL=4;
16850 BIND ?GREG.BL=3;
16900
16950 MACRO ?GREG$(RID,BUF)=?.DPB(65,0,RID,BUF+0) $;
17000
17050 MACRO ?GREG$S(RID,BUF,ERR)=
17100 ?DIR$(<?GREG$(RID,BUF)>,ERR) $;
17150
17200 MACRO ?GREG$C(DPB)=
17250 BIND
17300 ?G.RGID=(DPB)+4, ! REGION ID
17350 ?G.RGBA=(DPB)+6 $; ! BUFFER ADDRESS
17400
17450 MACRO ?GREG$B(BUF)=
17500 BIND
17550 ?G.RGRB=(BUF), ! REGION BASE ADDRESS/32
17600 ?G.RGRS=(BUF)+2, ! REGION SIZE/32
17650 ?G.RGFW=(BUF)+4 $; ! REGION FLAGS WORD
17700 !
17750 ! ?GSSW$S -- GET SENSE SWITCHES
17800 !
17850 MACRO ?GSSW$S(ERR)=
17900 ?DIR$(<?.DPB(125)>,ERR) $;
17950 !
18000 ! ?GTIM$ -- GET TIME PARAMETERS
18050 !
18100 BIND ?GTIM.DL=2;
18150 BIND ?GTIM.BL=8;
18200
18250 MACRO ?GTIM$(BUF)=?.DPB(61,BUF+0) $;
18300
18350 MACRO ?GTIM$S(BUF,ERR)=
18400 ?DIR$(<?GTIM$(BUF)>,ERR) $;
18450
18500 MACRO ?GTIM$C(DPB)=
18550 BIND
18600 ?G.TIBA=(DPB)+2 $; ! BUFFER ADDRESS
18650
18700 MACRO ?GTIM$B(BUF)=
18750 BIND
18800 ?G.TIYR=(BUF), ! YEAR
18850 ?G.TIMO=(BUF)+2, ! MONTH
18900 ?G.TIDA=(BUF)+4, ! DAY
18950 ?G.TIHR=(BUF)+6, ! HOUR
19000 ?G.TIMI=(BUF)+8, ! MINUTE
19050 ?G.TISC=(BUF)+10, ! SECOND
19100 ?G.TICT=(BUF)+12, ! CLOCK TICK OF SECOND
19150 ?G.TICP=(BUF)+14 $; ! CLOCK TICKS PER SECOND
19200 !
19250 ! ?GTSK$ -- GET TASK PARAMETERS
19300 !
19350 BIND ?GTSK.DL=2;
19400 BIND ?GTSK.BL=16;
19450
19500 MACRO ?GTSK$(BUF)=?.DPB(63,BUF+0) $;
19550
19600 MACRO ?GTSK$S(BUF,ERR)=
19650 ?DIR$(<?GTSK$(BUF)>,ERR) $;
19700
19750 MACRO ?GTSK$C(DPB)=
19800 BIND
19850 ?G.TSBA=(DPB)+2 $; ! BUFFER ADDRESS
19900
19950 MACRO ?GTSK$B(BUF)=
20000 BIND
20050 ?G.TSTN[2]=(BUF), ! TASK NAME
20100 ?G.TSPN[2]=(BUF)+4, ! PARTITION NAME
20150 ?G.TSRN[2]=(BUF)+8, ! REQUESTING TASK NAME (UNUSED)
20200 ?G.TSPR=(BUF)+12; ! PRIORITY
20250 ! BYTE BIND
20300 ! ?G.TSPC=(BUF)+14, ! UIC PROGRAMMER CODE
20350 ! ?G.TSGC=(BUF)+15; ! UIC GROUP CODE
20400 MACRO ! UNTIL BYTE BIND FIXED
20450 $QUOTE $QUOTE ?G.TSPC=((BUF)+14)<0,8> $QUOTE $,
20500 $QUOTE $QUOTE ?G.TSGC=((BUF)+15)<0,8> $QUOTE $;
20550 BIND
20600 ?G.TSNL=(BUF)+16, ! NUMBER OF LOGICAL UNITS
20650 ?G.TSMT=(BUF)+18, ! MACHINE TYPE (UNUSED)
20700 ?G.TSFW=(BUF)+20, ! STD FLAGS WORD (UNUSED)
20750 ?G.TSVA=(BUF)+22, ! TASK'S SST VECTOR ADDRESS
20800 ?G.TSVL=(BUF)+24, ! TASK'S SST VECTOR LENGTH (WORDS)
20850 ?G.TSTS=(BUF)+26 $;
20900 !
20950 ! ?MAP$ -- MAP ADDRESS WINDOW
21000 !
21050 BIND ?MAP.DL=2;
21100
21150 MACRO ?MAP$(WDB)=?.DPB(121,WDB+0) $;
21200
21250 MACRO ?MAP$S(WDB,ERR)=
21300 ?DIR$(<?MAP$(WDB)>,ERR) $;
21350
21400 MACRO ?MAP$C(DPB)=
21450 BIND
21500 ?M.APBA=(DPB)+2 $; ! WINDOW DEFINITION BLOCK ADDRESS
21550 !
21600 ! ?MRKT$ -- MARK TIME
21650 !
21700 BIND ?MRKT.DL=5;
21750
21800 MACRO ?MRKT$(EFN,TMG,TNT,AST)=
21850 ?.DPB(23,EFN,TMG,TNT,AST+0) $;
21900
21950 MACRO ?MRKT$S(EFN,TMG,TNT,AST,ERR)=
22000 ?DIR$(<?MRKT$(EFN,TMG,TNT,AST)>,ERR) $;
22050
22100 MACRO ?MRKT$C(DPB)=
22150 BIND
22200 ?M.KTEF=(DPB)+2, ! EVENT FLAG
22250 ?M.KTMG=(DPB)+4, ! TIME MAGNITUDE
22300 ?M.KTUN=(DPB)+6, ! TIME UNIT
22350 ?M.KTAE=(DPB)+8 $; ! AST ENTRY POINT ADDRESS
22400 !
22450 ! ?QIO$ -- QUEUE I/O
22500 !
22550 BIND ?QIO.DL=12;
22600
22650 MACRO ?QIO$(FNC,LUN,EFN,PRI,ISB,AST,PRL)=
22700 ?.DPB(1,FNC,LUN,(PRI+0)^8+(EFN+0),ISB,AST,
22750 ?.SUBLIST6(?.SUBLIST(PRL))) $;
22800
22850 MACRO ?QIO$S(FNC,LUN,EFN,PRI,ISB,AST,PRL,ERR)=
22900 ?DIR$(<?QIO$(FNC,LUN,EFN,PRI,ISB,AST,PRL)>,ERR) $;
22950
23000 MACRO ?QIO$C(DPB)=
23050 BIND
23100 ?Q.IOFN=(DPB)+2, ! QIO FUNCTION
23150 ?Q.IOLU=(DPB)+4; ! LOGICAL UNIT NUMBER
23200 ! BYTE BIND
23250 ! ?Q.IOEF=(DPB)+6, ! EVENT FLAG NUMBER
23300 ! ?Q.IOPR=(DPB)+7; ! PRIORITY
23350 MACRO ! UNTIL BYTE BIND FIXED
23400 $QUOTE $QUOTE ?Q.IOEF=((DPB)+6)<0,8> $QUOTE $,
23450 $QUOTE $QUOTE ?Q.IOPR=((DPB)+7)<0,8> $QUOTE $;
23500 BIND
23550 ?Q.IOSB=(DPB)+8, ! ADDRESS OF I/O STATUS BLOCK
23600 ?Q.IOAE=(DPB)+10, ! ADDR. OF I/O DONE AST ENTRY
23650 ?Q.IOPL[6]=(DPB)+12 $; ! PARAMETER LIST
23700 !
23750 ! ?QIOW$ -- QUEUE I/O REQUEST AND WAIT
23800 !
23850 BIND ?QIOW.DL=?QIO.DL; ! ?QIOW$ DPB LENGTH WORDS
23900
23950 MACRO ?QIOW$(FNC,LUN,EFN,PRI,ISB,AST,PRL)=
24000 ?.DPB(3,FNC,LUN,(PRI+0)^8+(EFN+0),ISB,AST,
24050 ?.SUBLIST6(?.SUBLIST(PRL))) $;
24100
24150 MACRO ?QIOW$S(FNC,LUN,EFN,PRI,ISB,AST,PRL,ERR)=
24200 ?DIR$(<?QIOW$(FNC,LUN,EFN,PRI,ISB,AST,PRL)>,ERR) $;
24250
24300 MACRO ?QIOW$C(DPB)=?QIO$C(DPB) $;
24350 !
24400 ! ?RCVD$ -- RECEIVE DATA
24450 !
24500 BIND ?RCVD.DL=4;
24550
24600 MACRO ?RCVD$(TSK,BUF)=?.DPB(75,0,0,BUF+0) $;
24650
24700 MACRO ?RCVD$S(TSK,BUF,ERR)=
24750 ?DIR$(<?RCVD$(,BUF)>,ERR) $;
24800
24850 MACRO ?RCVD$C(DPB)=
24900 BIND
24950 ?R.VDTN[2]=(DPB)+2, ! TASK NAME (IGNORED)
25000 ?R.VDBA=(DPB)+6 $; ! BUFFER ADDRESS
25050 !
25100 ! ?RCVX$ -- RECEIVE DATA OR EXIT
25150 !
25200 BIND ?RCVX.DL=4;
25250
25300 MACRO ?RCVX$(TSK,BUF)=?.DPB(77,0,0,BUF+0) $;
25350
25400 MACRO ?RCVX$S(TSK,BUF)=
25450 ?DIR$(<?RCVX$(,BUF)>,ERR) $;
25500
25550 MACRO ?RCVX$C(DPB)=
25600 BIND
25650 ?R.VXTN[2]=(DPB)+2, ! TASK NAME (IGNORED)
25700 ?R.VXBA=(DPB)+6 $; ! BUFFER ADDRESS
25750 !
25800 ! ?RDAF$ -- READ ALL EVENT FLAGS
25850 !
25900 BIND ?RDAF.DL=2;
25950
26000 MACRO ?RDAF$(BUF)=?.DPB(39,BUF+0) $;
26050
26100 MACRO ?RDAF$S(BUF,ERR)=
26150 ?DIR$(<?RDAF$(BUF)>,ERR) $;
26200
26250 MACRO ?RDAF$C(DPB)=
26300 BIND
26350 ?R.DABA=(DPB)+2 $; ! BUFFER ADDRESS
26400 !
26450 ! ?RQST$ -- REQUEST
26500 !
26550 BIND ?RQST.DL=7;
26600
26650 MACRO ?RQST$(TSK,PRT,PRI,UGC,UOC)=
26700 ?RQST.DL^8+11,RAD50 ?.DEFAULT(TSK,' '),0,0,0,(UGC+0)^8+(UOC+0) $;
26750
26800 MACRO ?RQST$S(TSK,PRT,PRI,UGC,UOC,ERR)=BEGIN
26850 BIND ?R.QSTN[2]=TSK; ! TASK NAME
26900 BIND ?R.QSPN[2]=PRT; ! PARTITION NAME (IGNORED)
26950 ?DIR$(<?.DPB(11,.?R.QSTN[0],.?R.QSTN[1],0,0,0,
27000 (UGC+0)^8+(UOC+0))>,ERR) END$;
27050
27100 MACRO ?RQST$C(DPB)=
27150 BIND
27200 ?R.QSTN[2]=(DPB)+2, ! TASK NAME
27250 ?R.QSPN[2]=(DPB)+6, ! PARTION NAME (IGNORED)
27300 ?R.QSPR=(DPB)+10; ! PRIORITY (IGNORED)
27350 ! BYTE BIND
27400 ! ?R.QSPC=(DPB)+12, ! UIC OWNER
27450 ! ?R.QSGC=(DPB)+13 $; ! UIC GROUP
27500 MACRO ! UNTIL BYTE BIND FIXED
27550 $QUOTE $QUOTE ?R.QSPC=((DPB)+12)<0,8> $QUOTE $,
27600 $QUOTE $QUOTE ?R.QSGC=((DPB)+13)<0,8> $QUOTE $ $;
27650 !
27700 ! ?RREF$ -- RECEIVE BY REFERENCE
27750 !
27800 BIND ?RREF.DL=2;
27850
27900 MACRO ?RREF$(WDB)=?.DPB(81,WDB+0) $;
27950
28000 MACRO ?RREF$S(WDB,ERR)=
28050 ?DIR$(<?RREF$(WDB)>,ERR) $;
28100
28150 MACRO ?RREF$C(DPB)=
28200 BIND
28250 ?R.REBA=(DPB)+2 $; ! WINDOW DEFINITION BLOCK ADDRESS
28300 !
28350 ! ?RSUM$ -- RESUME
28400 !
28450 BIND ?RSUM.DL=3;
28500
28550 MACRO ?RSUM$(TSK)=?RSUM.DL^8+47,RAD50 ?.DEFAULT(TSK,' ') $;
28600
28650 MACRO ?RSUM$S(TSK,ERR)=BEGIN
28700 BIND ?R.SUTN[2]=TSK;
28750 ?DIR$(<?.DPB(47,.?R.SUTN[0],.?R.SUTN[1])>,ERR) END$;
28800
28850 MACRO ?RSUM$C(DPB)=
28900 BIND
28950 ?R.SUTN[2]=(DPB)+2 $; ! TASK NAME
29000 !
29050 ! ?RUN$ -- RUN
29100 !
29150 BIND ?RUN.DL=11;
29200
29250 MACRO ?RUN$(TSK,PRT,PRI,UGC,UOC,SMG,SNT,RMG,RNT)=
29300 ?RUN.DL^8+17,RAD50 ?.DEFAULT(TSK,' '),0,0,0,
29350 (UGC+0)^8+(UOC+0),SMG+0,SNT+0,RMG+0,RNT+0 $;
29400
29450 MACRO ?RUN$S(TSK,PRT,PRI,UGC,UOC,SMG,SNT,RMG,RNT,ERR)=BEGIN
29500 BIND ?R.UNTN[2]=TSK; ! TASK NAME
29550 BIND ?R.UNPN[2]=PRT; ! PARTITION NAME (IGNORED)
29600 ?DIR$(<?.DPB(17,.?R.UNTN[0],.?R.UNTN[1],0,0,0,(UGC+0)^8+(UOC+0),
29650 SMG,SNT,RMG,RNT+0)>,ERR) END$;
29700
29750 MACRO ?RUN$C(DPB)=
29800 BIND
29850 ?R.UNTN[2]=(DPB)+2, ! TASK NAME
29900 ?R.UNPN[2]=(DPB)+6, ! PARTITION NAME (IGNORED)
29950 ?R.UNPR=(DPB)+10; ! PRIORITY (IGNORED)
30000 ! BYTE BIND
30050 ! ?R.UNPC=(DPB)+12, ! UIC OWNER
30100 ! ?R.UNGC=(DPB)+13; ! UIC GROUP
30150 MACRO ! UNTIL BYTE BIND FIXED
30200 $QUOTE $QUOTE ?R.UNPC=((DPB)+12)<0,8> $QUOTE $,
30250 $QUOTE $QUOTE ?R.UNGC=((DPB)+13)<0,8> $QUOTE $;
30300 BIND
30350 ?R.UNSM=(DPB)+14, ! SCHEDULE MAGNITUDE
30400 ?R.UNSU=(DPB)+16, ! SCHEDULE UNIT
30450 ?R.UNRM=(DPB)+18, ! RESCHEDULE MAGNITUDE
30500 ?R.UNRU=(DPB)+20 $; ! RESCHEDULE UNIT
30550 !
30600 ! ?SDAT$ -- SEND DATA
30650 !
30700 BIND ?SDAT.DL=5;
30750
30800 MACRO ?SDAT$(TSK,BUF,EFN)=
30850 ?SDAT.DL^8+71,RAD50 ?.DEFAULT(TSK,' '),BUF+0,EFN+0 $;
30900
30950 MACRO ?SDAT$S(TSK,BUF,EFN,ERR)=BEGIN
31000 BIND ?S.DATN[2]=TSK; ! TASK NAME
31050 ?DIR$(<?.DPB(71,.?S.DATN[0],.?S.DATN[1],BUF,EFN+0)>,ERR) END$;
31100
31150 MACRO ?SDAT$C(DPB)=
31200 BIND
31250 ?S.DATN[2]=(DPB)+2, ! TASK NAME
31300 ?S.DABA=(DPB)+6, ! BUFFER ADDRESS
31350 ?S.DAEF=(DPB)+8 $; ! EVENT FLAG NUMBER
31400 !
31450 ! ?SETF$ -- SET EVENT FLAG
31500 !
31550 BIND ?SETF.DL=2;
31600
31650 MACRO ?SETF$(EFN)=?.DPB(33,EFN+0) $;
31700
31750 MACRO ?SETF$S(EFN,ERR)=
31800 ?DIR$(<?SETF$(EFN)>,ERR) $;
31850
31900 MACRO ?SETF$C(DPB)=
31950 BIND
32000 ?S.ETEF=(DPB)+2 $; ! EVENT FLAG NUMBER
32050 !
32100 ! ?SFPA$ -- SPECIFY FLOATING POINT EXCEPTION AST
32150 !
32200 BIND ?SFPA.DL=2;
32250
32300 MACRO ?SFPA$(AST)=?.DPB(111,AST+0) $;
32350
32400 MACRO ?SFPA$S(AST,ERR)=
32450 ?DIR$(<?SFPA$(AST)>,ERR) $;
32500
32550 MACRO ?SFPA$C(DPB)=
32600 BIND
32650 ?S.FPAE=(DPB)+2 $; ! ADDR. OF FLOATING POINT AST
32700 !
32750 ! ?SPND$S -- SUSPEND
32800 !
32850 MACRO ?SPND$S(ERR)=
32900 ?DIR$(<?.DPB(45)>,ERR) $;
32950 !
33000 ! ?SPRA$ -- SPECIFY POWER RECOVERY AST
33050 !
33100 BIND ?SPRA.DL=2;
33150
33200 MACRO ?SPRA$(AST)=?.DPB(109,AST+0) $;
33250
33300 MACRO ?SPRA$S(AST,ERR)=
33350 ?DIR$(<?SPRA$(AST)>,ERR) $;
33400
33450 MACRO ?SPRA$C(DPB)=
33500 BIND
33550 ?S.PRAE=(DPB)+2 $; ! AST ENTRY ADDRESS
33600 !
33650 ! ?SRDA$ -- SPECIFY RECEIVE AST
33700 !
33750 BIND ?SRDA.DL=2;
33800
33850 MACRO ?SRDA$(AST)=?.DPB(107,AST+0) $;
33900
33950 MACRO ?SRDA$S(AST,ERR)=
34000 ?DIR$(<?SRDA$(AST)>,ERR) $;
34050
34100 MACRO ?SRDA$C(DPB)=
34150 BIND
34200 ?S.RDAE=(DPB)+2 $; ! ADDRESS OF RECEIVE AST
34250 !
34300 ! ?SREF$ -- SEND BY REFERENCE
34350 !
34400 BIND ?SREF.DL=5;
34450
34500 MACRO ?SREF$(TSK,WDB,EFN)=
34550 ?SREF.DL^8+69,RAD50 ?.DEFAULT(TSK,' '),EFN+0,WDB+0 $;
34600
34650 MACRO ?SREF$S(TSK,WDB,EFN,ERR)=BEGIN
34700 BIND ?S.RETN[2]=TSK; ! TASK NAME
34750 ?DIR$(<?.DPB(69,.?S.RETN[0],.?S.RETN[1],EFN,WDB+0)>,ERR) END$;
34800
34850 MACRO ?SREF$C(DPB)=
34900 BIND
34950 ?S.RETN[2]=(DPB)+2, ! RECEIVER TASK NAME
35000 ?S.REEF=(DPB)+6, ! EVENT FLAG NUMBER
35050 ?S.REBA=(DPB)+8 $; ! WINDOW DEFINITION BLOCK ADDRESS
35100 !
35150 ! ?SRRA$ -- SPECIFY RECEIVE-BY-REFERENCE AST
35200 !
35250 BIND ?SRRA.DL=2;
35300
35350 MACRO ?SRRA$(AST)=?.DPB(21,AST+0) $;
35400
35450 MACRO ?SRRA$S(AST,ERR)=
35500 ?DIR$(<?SRRA$(AST)>,ERR) $;
35550
35600 MACRO ?SRRA$C(DPB)=
35650 BIND
35700 ?S.RRAE=(DPB)+2 $; ! AST ENTRY ADDRESS
35750 !
35800 ! ?SVDB$ -- SPECIFY SST VECTOR TABLE FOR DEBUGGING AID
35850 !
35900 BIND ?SVDB.DL=3;
35950
36000 MACRO ?SVDB$(ADR,LEN)=?.DPB(103,ADR,LEN+0) $;
36050
36100 MACRO ?SVDB$S(ADR,LEN,ERR)=
36150 ?DIR$(<?SVDB$(ADR,LEN)>,ERR) $;
36200
36250 MACRO ?SVDB$C(DPB)=
36300 BIND
36350 ?S.VDTA=(DPB)+2, ! TABLE ADDRESS
36400 ?S.VDTL=(DPB)+4 $; ! TABLE LENGTH (WORDS)
36450 !
36500 ! ?SVTK$ -- SPECIFY SST VECTOR TABLE FOR TASK
36550 !
36600 BIND ?SVTK.DL=3;
36650
36700 MACRO ?SVTK$(ADR,LEN)=?.DPB(105,ADR,LEN+0) $;
36750
36800 MACRO ?SVTK$S(ADR,LEN,ERR)=
36850 ?DIR$(<?SVTK$(ADR,LEN)>,ERR) $;
36900
36950 MACRO ?SVTK$C(DPB)=
37000 BIND
37050 ?S.VTTA=(DPB)+2, ! TABLE ADDRESS
37100 ?S.VTTL=(DPB)+4 $; ! TABLE LENGTH
37150 !
37200 ! ?UMAP$ -- UNMAP ADDRESS WINDOW
37250 !
37300 BIND ?UMAP.DL=2;
37350
37400 MACRO ?UMAP$(WDB)=?.DPB(123,WDB+0) $;
37450
37500 MACRO ?UMAP$S(WDB,ERR)=
37550 ?DIR$(<?UMAP$(WDB)>,ERR) $;
37600
37650 MACRO ?UMAP$C(DPB)=
37700 BIND
37750 ?U.MABA=(DPB)+2 $; ! WINDOW DEFINITION BLOCK ADDRESS
37800 !
37850 ! ?WSIG$S -- WAIT FOR SIGNIFICANT EVENT
37900 !
37950 MACRO ?WSIG$S(ERR)=
38000 ?DIR$(<?.DPB(49)>,ERR) $;
38050 !
38100 ! ?WTLO$ -- WAIT FOR LOGICAL 'OR' OF EVENT FLAGS
38150 !
38200 BIND ?WTLO.DL=3;
38250
38300 MACRO ?WTLO$(GRP,MSK)=?.DPB(43,GRP,MSK+0) $;
38350
38400 MACRO ?WTLO$S(GRP,MSK,ERR)=
38450 ?DIR$(<?WTLO$(GRP,MSK)>,ERR) $;
38500 !
38550 ! ?WTSE$ -- WAIT FOR SINGLE EVENT FLAG
38600 !
38650 BIND ?WTSE.DL=2;
38700
38750 MACRO ?WTSE$(EFN)=?.DPB(41,EFN+0) $;
38800
38850 MACRO ?WTSE$S(EFN,ERR)=
38900 ?DIR$(<?WTSE$(EFN)>,ERR) $;
38950
39000 MACRO ?WTSE$C(DPB)=
39050 BIND
39100 ?W.TSEF=(DPB)+2 $; ! EVENT FLAG NUMBER
39150 !
39200 ! ?RDBDF$ -- DEFINE REGION DEFINITION BLOCK SYMBOLS
39250 !
39300 MACRO ?RDBDF$=MACRO
39350 ?R.GID(RDB)=((RDB)[0]) $QUOTE $,
39400 ?R.GSIZ(RDB)=((RDB)[1]) $QUOTE $,
39450 ?R.GNAM(RDB)=((RDB)[2]) $QUOTE $,
39500 ?R.GPAR(RDB)=((RDB)[4]) $QUOTE $,
39550 ?R.GSTS(RDB)=((RDB)[6]) $QUOTE $,
39600 ?RS.RED=0,1 $QUOTE $,
39650 ?RS.WRT=1,1 $QUOTE $,
39700 ?RS.EXT=2,1 $QUOTE $,
39750 ?RS.DEL=3,1 $QUOTE $,
39800 ?RS.NEX=4,1 $QUOTE $,
39850 ?RS.ATT=5,1 $QUOTE $,
39900 ?RS.NDL=6,1 $QUOTE $,
39950 ?RS.MDL=7,1 $QUOTE $,
40000 ?RS.UNM=14,1 $QUOTE $,
40050 ?RS.CRR=15,1 $QUOTE $,
40100 ?R.GPRO(RDB)=((RDB)[7]) $QUOTE $,
40150 ?R.GLGH=16 $QUOTE $;
40200 UNDECLARE $QUOTE $QUOTE ?RDBDF$;
40250 MACRO ?RDBDF$=UNDECLARE ?.......... $QUOTE $ $;
40300 !
40350 ! ?RDBBK$ -- DEFINE REGION DEFINITION BLOCK
40400 !
40450 MACRO ?RDBBK$(SIZ,NAM,PAR,STS,PRO)=
40500 0,SIZ+0,
40550 RAD50 ?.DEFAULT(NAM,' '),
40600 RAD50 ?.DEFAULT(PAR,' '),
40650 ?.MASK(?.SUBLIST(STS)),
40700 PRO+0 $;
40750 !
40800 ! ?WDBDF$ -- DEFINE WINDOW DEFINITION BLOCK SYMBOLS
40850 !
40900 MACRO ?WDBDF$=MACRO
40950 ?W.NID(WDB)=((WDB)[0])<0,8> $QUOTE $,
41000 ?W.NAPR(WDB)=((WDB)[0])<8,8> $QUOTE $,
41050 ?W.NBAS(WDB)=((WDB)[1]) $QUOTE $,
41100 ?W.NSIZ(WDB)=((WDB)[2]) $QUOTE $,
41150 ?W.NRID(WDB)=((WDB)[3]) $QUOTE $,
41200 ?W.NOFF(WDB)=((WDB)[4]) $QUOTE $,
41250 ?W.NLEN(WDB)=((WDB)[5]) $QUOTE $,
41300 ?W.NSTS(WDB)=((WDB)[6]) $QUOTE $,
41350 ?WS.RED=0,1 $QUOTE $,
41400 ?WS.WRT=1,1 $QUOTE $,
41450 ?WS.EXT=2,1 $QUOTE $,
41500 ?WS.DEL=3,1 $QUOTE $,
41550 ?WS.RCX=6,1 $QUOTE $,
41600 ?WS.MAP=7,1 $QUOTE $,
41650 ?WS.64B=8,1 $QUOTE $,
41700 ?WS.RRF=12,1 $QUOTE $,
41750 ?WS.ELW=13,1 $QUOTE $,
41800 ?WS.UNM=14,1 $QUOTE $,
41850 ?WS.CRW=15,1 $QUOTE $,
41900 ?W.NSRB(WDB)=((WDB)[7]) $QUOTE $,
41950 ?W.NLGH=16 $QUOTE $;
42000 UNDECLARE $QUOTE $QUOTE ?WDBDF$;
42050 MACRO ?WDBDF$=UNDECLARE ?.......... $QUOTE $ $;
42100 !
42150 ! ?WDBBK$ -- DEFINE WINDOW DEFINITION BLOCK
42200 !
42250 MACRO ?WDBBK$(APR,SIZ,RID,OFF,LEN,STS,SRB)=
42300 APR+0,0,SIZ+0,RID+0,OFF+0,LEN+0,
42350 ?.MASK(?.SUBLIST(STS)),SRB+0 $;
42400 !
42450 ! ?SNPBK$ -- DEFINE SNAPSHOT DUMP CONTROL BLOCK
42500 !
42550 MACRO ?SNPBK$(DEV,UNIT,CTL,EFN,ID,L1,H1,L2,H2,L3,H3,L4,H4)=
42600 ?SNPDF$;
42650 GLOBAL ?..SNBK[15]=(?.MASK(?.SUBLIST(CTL)),DEV,UNIT+0,EFN+0,ID+0,
42700 L1+0,H1+0,L2+0,H2+0,L3+0,H3+0,L4+0,H4+0,RAD50 'PMD...')$;
42750 !
42800 ! ?SNAP$ -- TAKE SNAPSHOT DUMP
42850 !
42900 MACRO ?SNAP$(CTL,EFN,ID,L1,H1,L2,H2,L3,H3,L4,H4,ERR)=BEGIN
42950 EXTERNAL ?..SNBK[15],$DSW;
43000 ?DRERR$;
43050 ?SNPDF$;
43100 MACRO ?.SNAPERR=
43150 (?.SELECT(ERR,<ERR>,<?RSXERRDF$>);LEAVE ?.SNAPBLK) $QUOTE $;
43200 MACRO ?.MOVE(DST)[SRC]=?.ASGNC((DST)[$COUNT],SRC) $QUOTE $;
43250 LABEL ?.SNAPBLK;
43300 ?.SNAPBLK:BEGIN
43350 ?.ASGNC(?SB.CTL,?.MASK(?.SUBLIST(CTL)));
43400 ?.ASGNC(?SB.EFN,EFN);
43450 ?.ASGNC(?SB.ID,ID);
43500 ?.MOVE(?SB.LM1,L1,H1,L2,H2,L3,H3,L4,H4);
43550 ?CLEF$S(.?SB.EFN,?.SNAPERR);
43600 ?SDAT$S(?SB.PMD,?..SNBK,,?.SNAPERR);
43650 ?RQST$S(?SB.PMD,,,,,(IF .$DSW NEQ ?IE.ACT THEN ?.SNAPERR));
43700 ?WTSE$S(.?SB.EFN,?.SNAPERR);
43750 END;
43800 END$;
43850 !
43900 ! ?SNPDF$ -- DEFINE SNAPSHOT DUMP CONTROL BLOCK SYMBOLS
43950 !
44000 MACRO ?SNPDF$=MACRO
44050 ?SB.CTL=?..SNBK[0] $QUOTE $,
44100 ?SC.HDR=0,1 $QUOTE $,
44150 ?SC.LUN=1,1 $QUOTE $,
44200 ?SC.OVL=2,1 $QUOTE $,
44250 ?SC.STK=3,1 $QUOTE $,
44300 ?SC.WRD=4,1 $QUOTE $,
44350 ?SC.BYT=5,1 $QUOTE $,
44400 ?SB.DEV=?..SNBK[1] $QUOTE $,
44450 ?SB.UNT=?..SNBK[2] $QUOTE $,
44500 ?SB.EFN=?..SNBK[3] $QUOTE $,
44550 ?SB.ID =?..SNBK[4] $QUOTE $,
44600 ?SB.LM1=?..SNBK[5] $QUOTE $,
44650 ?SB.PMD=?..SNBK[13] $QUOTE $;
44700 UNDECLARE $QUOTE $QUOTE ?SNPDF$;
44750 MACRO ?SNPDF$=UNDECLARE ?.......... $QUOTE $ $;
44800 !
44850 ! ?QIOSY$ -- DEFINE QIO SYMBOLS
44900 !
44950 MACRO ?QIOSY$=
45000 ?IOERR$;
45050 ?DRERR$;
45100 ?FILIO$;
45150 ?SPCIO$;
45200 UNDECLARE $QUOTE $QUOTE ?QIOSY$;
45250 MACRO ?QIOSY$=UNDECLARE ?.......... $QUOTE $ $;
45300 !
45350 ! ?DRERR$ -- STANDARD ERROR CODES RETURNED BY DIRECTIVES IN
45400 ! THE DIRECTIVE STATUS WORD (DSW)
45450 !
45500 MACRO ?DRERR$=
45550 UNDECLARE ?IS.SUC,?IE.AST;
45600 BIND ! SUCCESSFUL COMPLETION CODES
45650 ?IS.CLR=0, ! EVENT FLAG WAS CLEAR
45700 ?IS.SUC=1, ! SUCCESSFUL COMPLETION
45750 ?IS.SET=2, ! EVENT FLAG WAS SET
45800 ?IS.SPD=2; ! TASK WAS SUSPENDED
45850 BIND
45900 ?IE.UPN=-1, ! INSUFFICIENT DYNAMIC STORAGE
45950 ?IE.INS=-2, ! SPECIFIED TASK NOT INSTALLED
46000 ?IE.PTS=-3, ! PARTITION TOO SMALL FOR TASK
46050 ?IE.UNS=-4, ! INSUFFICIENT DYNAMIC STORAGE FOR SEND
46100 ?IE.ULN=-5, ! UN-ASSIGNED LUN
46150 ?IE.HWR=-6, ! DEVICE HANDLER NOT RESIDENT
46200 ?IE.ACT=-7, ! TASK NOT ACTIVE
46250 ?IE.ITS=-8, ! DIRECTIVE INCONSISTENT WITH TASK STATE
46300 ?IE.FIX=-9, ! TASK ALREADY FIXED/UNFIXED
46350 ?IE.CKP=-10, ! ISSUING TASK NOT CHECKPOINTABLE
46400 ?IE.TCH=-11, ! TASK IS CHECKPOINTABLE
46450 ?IE.RBS=-12, ! RECEIVE BUFFER IS TOO SMALL
46500 ?IE.AST=-80, ! DIRECTIVE ISSUED/NOT ISSUED FROM AST
46550 ?IE.ALG=-84, ! ALIGNMENT ERROR
46600 ?IE.WOV=-85, ! ADDRESS WINDOW ALLOCATION OVERFLOW
46650 ?IE.NVR=-86, ! INVALID REGION ID
46700 ?IE.NVW=-87, ! INVALID ADDRESS WINDOW ID
46750 ?IE.ITP=-88, ! INVALID TI PARAMETER
46800 ?IE.IBS=-89, ! INVALID SEND BUFFER SIZE
46850 ?IE.LNL=-90, ! LUN LOCKED IN USE
46900 ?IE.IUI=-91, ! INVALID UIC
46950 ?IE.IDU=-92, ! INVALID DEVICE OR UNIT
47000 ?IE.ITI=-93, ! INVALID TIME PARAMETERS
47050 ?IE.PNS=-94, ! PARTITION/REGION NOT IN SYSTEM
47100 ?IE.IPR=-95, ! INVALID PRIORITY (GTR 250.)
47150 ?IE.ILU=-96, ! INVALID LUN
47200 ?IE.IEF=-97, ! INVALID EVENT (GTR 64)
47250 ?IE.ADP=-98, ! PART OF DPB OUT OF USER'S SPACE
47300 ?IE.SDP=-99; ! DIC OR DPB SIZE INVALID
47350 UNDECLARE $QUOTE $QUOTE ?DRERR$;
47400 MACRO ?DRERR$=UNDECLARE ?.......... $QUOTE $ $;
47450 !
47500 ! ?IOERR$ -- I/O STATUS CODES
47550 !
47600 UNDECLARE $QUOTE ?IOERR$;
47650 MACRO ?IOERR$=
47700 UNDECLARE ?IS.SUC,?IE.AST;
47750 BIND
47800 ?IE.BAD=-01 AND #377,
47850 ?IE.IFC=-02 AND #377,
47900 ?IE.DNR=-03 AND #377,
47950 ?IE.VER=-04 AND #377,
48000 ?IE.ONP=-05 AND #377,
48050 ?IE.SPC=-06 AND #377,
48100 ?IE.DNA=-07 AND #377,
48150 ?IE.DAA=-08 AND #377,
48200 ?IE.DUN=-09 AND #377,
48250 ?IE.EOF=-10 AND #377,
48300 ?IE.EOV=-11 AND #377,
48350 ?IE.WLK=-12 AND #377,
48400 ?IE.DAO=-13 AND #377,
48450 ?IE.SRE=-14 AND #377,
48500 ?IE.ABO=-15 AND #377,
48550 ?IE.PRI=-16 AND #377,
48600 ?IE.RSU=-17 AND #377,
48650 ?IE.OVR=-18 AND #377,
48700 ?IE.BYT=-19 AND #377,
48750 ?IE.BLK=-20 AND #377,
48800 ?IE.MOD=-21 AND #377,
48850 ?IE.CON=-22 AND #377,
48900 ?IE.BBE=-56 AND #377,
48950 ?IE.STK=-58 AND #377,
49000 ?IE.FHE=-59 AND #377,
49050 ?IE.EOT=-62 AND #377,
49100 ?IE.OFL=-65 AND #377,
49150 ?IE.BCC=-66 AND #377,
49200 ?IE.NOD=-23 AND #377,
49250 ?IE.DFU=-24 AND #377,
49300 ?IE.IFU=-25 AND #377,
49350 ?IE.NSF=-26 AND #377,
49400 ?IE.LCK=-27 AND #377,
49450 ?IE.HFU=-28 AND #377,
49500 ?IE.WAC=-29 AND #377,
49550 ?IE.CKS=-30 AND #377,
49600 ?IE.WAT=-31 AND #377,
49650 ?IE.RER=-32 AND #377,
49700 ?IE.WER=-33 AND #377,
49750 ?IE.ALN=-34 AND #377,
49800 ?IE.SNC=-35 AND #377,
49850 ?IE.SQC=-36 AND #377,
49900 ?IE.NLN=-37 AND #377,
49950 ?IE.CLO=-38 AND #377,
50000 ?IE.DUP=-57 AND #377,
50050 ?IE.BVR=-63 AND #377,
50100 ?IE.BHD=-64 AND #377,
50150 ?IE.EXP=-75 AND #377,
50200 ?IE.BTF=-76 AND #377,
50250 ?IE.ALC=-84 AND #377,
50300 ?IE.ULK=-85 AND #377,
50350 ?IE.NBF=-39 AND #377,
50400 ?IE.RBG=-40 AND #377,
50450 ?IE.NBK=-41 AND #377,
50500 ?IE.ILL=-42 AND #377,
50550 ?IE.BTP=-43 AND #377,
50600 ?IE.RAC=-44 AND #377,
50650 ?IE.RAT=-45 AND #377,
50700 ?IE.RCN=-46 AND #377,
50750 ?IE.2DV=-48 AND #377,
50800 ?IE.FEX=-49 AND #377,
50850 ?IE.BDR=-50 AND #377,
50900 ?IE.RNM=-51 AND #377,
50950 ?IE.BDI=-52 AND #377,
51000 ?IE.FOP=-53 AND #377,
51050 ?IE.BNM=-54 AND #377,
51100 ?IE.BDV=-55 AND #377,
51150 ?IE.NFI=-60 AND #377,
51200 ?IE.ISQ=-61 AND #377,
51250 ?IE.NNC=-77 AND #377,
51300 ?IE.AST=-80 AND #377,
51350 ?IE.NNN=-68 AND #377,
51400 ?IE.NFW=-69 AND #377,
51450 ?IE.BLB=-70 AND #377,
51500 ?IE.TMM=-71 AND #377,
51550 ?IE.NDR=-72 AND #377,
51600 ?IE.CNR=-73 AND #377,
51650 ?IE.TMO=-74 AND #377,
51700 ?IE.NNL=-78 AND #377,
51750 ?IE.NLK=-79 AND #377,
51800 ?IE.NST=-80 AND #377,
51850 ?IE.FLN=-81 AND #377,
51900 ?IE.IES=-82 AND #377,
51950 ?IE.PES=-83 AND #377,
52000 ?IS.PND=+00,
52050 ?IS.SUC=+01,
52100 ?IS.RDD=+02,
52150 ?IS.BV=+05,
52200 ?IS.CR='?M'%CR%^8+1,
52250 ?IS.ESC='?['%ESC%^8+1,
52300 ?IS.CC='?C'%ETX%^8+1,
52350 ?IS.ESQ=(#200+'?['%ESC%)^8+1,
52400 ?IS.PES=#200^8+1,
52450 ?IS.EOT='?D'%EOT%^8+1,
52500 ?IS.TAB='?I'%TAB%^8+1,
52550 ?IS.TMO=+2;
52600 UNDECLARE $QUOTE $QUOTE ?IOERR$;
52650 MACRO ?IOERR$=UNDECLARE ?.......... $QUOTE $ $;
52700 !
52750 ! ?FILIO$ -- STANDARD I/O FUNCTION CODES
52800 !
52850 MACRO ?FILIO$=
52900 UNDECLARE ?IQ.UMD;
52950 BIND
53000 ?IQ.X=#001+#000^8,
53050 ?IQ.Q=#002+#000^8,
53100 ?IQ.S=#004+#000^8,
53150 ?IQ.UMD=#004+#000^8,
53200 ?IO.KIL=#012+#000^8,
53250 ?IO.RDN=#022+#000^8,
53300 ?IO.UNL=#042+#000^8,
53350 ?IO.LTK=#050+#000^8,
53400 ?IO.RTK=#060+#000^8,
53450 ?IO.SET=#030+#000^8,
53500 ?IO.WLB=#000+#001^8,
53550 ?IO.RLB=#000+#002^8,
53600 ?IO.LOV=#010+#002^8,
53650 ?IO.ATT=#000+#003^8,
53700 ?IO.DET=#000+#004^8,
53750 ?IO.FNA=#000+#011^8,
53800 ?IO.RNA=#000+#013^8,
53850 ?IO.ENA=#000+#014^8,
53900 ?IO.CLN=#000+#007^8,
53950 ?IO.ACR=#000+#015^8,
54000 ?IO.ACW=#000+#016^8,
54050 ?IO.ACE=#000+#017^8,
54100 ?IO.DAC=#000+#020^8,
54150 ?IO.RVB=#000+#021^8,
54200 ?IO.WVB=#000+#022^8,
54250 ?IO.EXT=#000+#023^8,
54300 ?IO.CRE=#000+#024^8,
54350 ?IO.DEL=#000+#025^8,
54400 ?IO.RAT=#000+#026^8,
54450 ?IO.WAT=#000+#027^8,
54500 ?IO.APV=#010+#030^8,
54550 ?IO.APC=#000+#030^8;
54600 UNDECLARE $QUOTE $QUOTE ?FILIO$;
54650 MACRO ?FILIO$=UNDECLARE ?.......... $QUOTE $ $;
54700 !
54750 ! ?SPCIO$ -- SPECIAL I/O FUNCTION CODES
54800 !
54850 MACRO ?SPCIO$=
54900 BIND
54950 ?IO.WLV=#100+#001^8,
55000 ?IO.WLS=#010+#001^8,
55050 ?IO.WNS=#020+#001^8,
55100 ?IO.WAL=#010+#001^8,
55150 ?IO.WMS=#020+#001^8,
55200 ?IO.CCO=#040+#001^8,
55250 ?IO.WBT=#100+#001^8,
55300 ?IO.WLT=#010+#001^8,
55350 ?IO.WLC=#020+#001^8,
55400 ?IO.WPB=#040+#001^8,
55450 ?IO.WDD=#044+#001^8,
55500 ?IO.RLV=#100+#002^8,
55550 ?IO.RST=#001+#002^8,
55600 ?IO.RAL=#010+#002^8,
55650 ?IO.RNE=#020+#002^8,
55700 ?IO.RNC=#040+#002^8,
55750 ?IO.RTM=#200+#002^8,
55800 ?IO.RDB=#200+#002^8,
55850 ?IO.RHD=#010+#002^8,
55900 ?IO.RNS=#020+#002^8,
55950 ?IO.CRC=#040+#002^8,
56000 ?IO.RPB=#040+#002^8,
56050 ?IO.ATA=#010+#003^8,
56100 ?IO.GTS=#000+#005^8,
56150 ?IO.R1C=#000+#005^8,
56200 ?IO.INL=#000+#005^8,
56250 ?IO.TRM=#010+#005^8,
56300 ?IO.RWD=#000+#005^8,
56350 ?IO.SPB=#020+#005^8,
56400 ?IO.SPF=#040+#005^8,
56450 ?IO.STC=#100+#005^8,
56500 ?IO.SEC=#120+#005^8,
56550 ?IO.RWU=#140+#005^8,
56600 ?IO.SMO=#160+#005^8,
56650 ?IO.HNG=#000+#006^8,
56700 ?IO.RBC=#000+#006^8,
56750 ?IO.MOD=#000+#006^8,
56800 ?IO.HDX=#010+#006^8,
56850 ?IO.FDX=#020+#006^8,
56900 ?IO.SYN=#040+#006^8,
56950 ?IO.EOF=#000+#006^8,
57000 ?IO.RTC=#000+#007^8,
57050 ?IO.SAO=#000+#010^8,
57100 ?IO.SSO=#000+#011^8,
57150 ?IO.RPR=#000+#011^8,
57200 ?IO.MSO=#000+#012^8,
57250 ?IO.SLO=#000+#013^8,
57300 ?IO.MLO=#000+#014^8,
57350 ?IO.LED=#000+#024^8,
57400 ?IO.SDO=#000+#025^8,
57450 ?IO.SDI=#000+#026^8,
57500 ?IO.SCS=#000+#026^8,
57550 ?IO.REL=#000+#027^8,
57600 ?IO.MCS=#000+#027^8,
57650 ?IO.ADS=#000+#030^8,
57700 ?IO.CCI=#000+#030^8,
57750 ?IO.MDI=#000+#031^8,
57800 ?IO.DCI=#000+#031^8,
57850 ?IO.XMT=#000+#031^8,
57900 ?IO.XNA=#010+#031^8,
57950 ?IO.HIS=#000+#032^8,
58000 ?IO.RCI=#000+#032^8,
58050 ?IO.RCV=#000+#032^8,
58100 ?IO.MDO=#000+#033^8,
58150 ?IO.CTI=#000+#033^8,
58200 ?IO.CON=#000+#033^8,
58250 ?IO.CPR=#010+#033^8,
58300 ?IO.CAS=#020+#033^8,
58350 ?IO.CRJ=#040+#033^8,
58400 ?IO.CBO=#110+#033^8,
58450 ?IO.CTR=#210+#033^8,
58500 ?IO.GNI=#010+#035^8,
58550 ?IO.GLI=#020+#035^8,
58600 ?IO.GLC=#030+#035^8,
58650 ?IO.GRI=#040+#035^8,
58700 ?IO.GRC=#050+#035^8,
58750 ?IO.GRN=#060+#035^8,
58800 ?IO.CSM=#070+#035^8,
58850 ?IO.CIN=#100+#035^8,
58900 ?IO.SPW=#110+#035^8,
58950 ?IO.CPW=#120+#035^8,
59000 ?IO.NLB=#130+#035^8,
59050 ?IO.DLB=#140+#035^8,
59100 ?IO.DTI=#000+#034^8,
59150 ?IO.DIS=#000+#034^8,
59200 ?IO.MDA=#000+#034^8,
59250 ?IO.RTI=#000+#035^8,
59300 ?IO.CTL=#000+#035^8,
59350 ?IO.STP=#000+#035^8,
59400 ?IO.CNT=#000+#036^8,
59450 ?IO.ITI=#000+#036^8,
59500 ?IO.CTY=#000+#007^8,
59550 ?IO.DTY=#000+#015^8,
59600 ?IO.LDI=#000+#016^8,
59650 ?IO.UDI=#010+#023^8,
59700 ?IO.LTI=#000+#017^8,
59750 ?IO.UTI=#020+#023^8,
59800 ?IO.LTY=#000+#020^8,
59850 ?IO.UTY=#030+#023^8,
59900 ?IO.LKE=#000+#024^8,
59950 ?IO.UER=#040+#023^8,
60000 ?IO.NLK=#000+#023^8,
60050 ?IO.ONL=#000+#037^8,
60100 ?IO.FLN=#000+#025^8,
60150 ?IO.RAD=#000+#021^8;
60200 UNDECLARE $QUOTE $QUOTE ?SPCIO$;
60250 MACRO ?SPCIO$=UNDECLARE ?.......... $QUOTE $ $;
60300 !
60350 ! ?UMDIO$ -- USER-MODE DIAGNOSTIC I/O FUNCTION CODES
60400 !
60450 MACRO ?UMDIO$=
60500 UNDECLARE ?IQ.UMD;
60550 BIND
60600 ?IQ.UMD=#004+#000^8,
60650 ?IO.HMS=#000+#010^8,
60700 ?IO.BLS=#010+#010^8,
60750 ?IO.OFF=#020+#010^8,
60800 ?IO.RDH=#030+#010^8,
60850 ?IO.WDH=#040+#010^8,
60900 ?IO.WCK=#050+#010^8,
60950 ?IO.RNF=#060+#010^8,
61000 ?IO.RNR=#070+#010^8,
61050 ?IO.LPC=#100+#010^8,
61100 ?IO.ERS=#110+#010^8;
61150 UNDECLARE $QUOTE $QUOTE ?UMDIO$;
61200 MACRO ?UMDIO$=UNDECLARE ?.......... $QUOTE $ $;
61250 !
61300 ! ?TTSYM$ -- TERMINAL DRIVER SYMBOL DEFINITIONS
61350 !
61400 MACRO ?TTSYM$=
61450 BIND
61500 ?TC.WID=1,
61550 ?TC.LPP=2,
61600 ?TC.RSP=3,
61650 ?TC.XSP=4,
61700 ?TC.STB=5,
61750 ?TC.ISL=6,
61800 ?TC.RAT=7,
61850 ?TC.TTP=8,
61900 ?TC.SCR=9,
61950 ?TC.SCP=10,
62000 ?TC.HFL=11,
62050 ?TC.VFL=12,
62100 ?TC.NL =13,
62150 ?TC.SFF=14,
62200 ?TC.HFF=15,
62250 ?TC.LVF=16,
62300 ?TC.HHT=17,
62350 ?TC.NST=18,
62400 ?TC.BSP=19,
62450 ?TC.ACR=20,
62500 ?TC.SMR=21,
62550 ?TC.SMP=22,
62600 ?TC.SMO=23,
62650 ?TC.CCF=24,
62700 ?TC.ALT=25,
62750 ?TC.IMG=26,
62800 ?TC.NKB=27,
62850 ?TC.NPR=28,
62900 ?TC.ESQ=29,
62950 ?TC.LCP=30,
63000 ?TC.PAR=31,
63050 ?TC.EPA=32,
63100 ?TC.DLU=33,
63150 ?TC.BLK=34,
63200 ?TC.FRM=35,
63250 ?TC.HLD=36,
63300 ?TC.TAP=37,
63350 ?TC.CEQ=38,
63400 ?TC.NEC=39,
63450 ?TC.SLV=40,
63500 ?TC.PRI=41,
63550 ?TC.UC0=42,
63600 ?TC.UC1=43,
63650 ?TC.UC2=44,
63700 ?TC.UC3=45,
63750 ?TC.UC4=46,
63800 ?TC.UC5=47,
63850 ?TC.UC6=48,
63900 ?TC.UC7=49,
63950 ?TC.UC8=50,
64000 ?TC.UC9=51,
64050 ?TC.MAX=52,
64100 ?SE.ICN=1,
64150 ?SE.FIX=2,
64200 ?SE.BIN=3,
64250 ?SE.VAL=4,
64300 ?SE.TER=5,
64350 ?SE.SPD=6,
64400 ?SE.SPL=7,
64450 ?SE.PAR=8,
64500 ?SE.LPR=9,
64550 ?SE.NSC=10,
64600 ?SE.UPN=11,
64650 ?SE.NIH=12,
64700 ?SF.SSC= #2400 OR #020,
64750 ?SF.SMC= #2400 OR #040,
64800 ?SF.RDF= #2400 OR #060,
64850 ?SF.STT= #2400 OR #100,
64900 ?SF.STS= #2400 OR #120,
64950 ?SF.GSC= #2400 OR #140,
65000 ?SF.GMC= #2400 OR #160,
65050 ?SF.GAC= #2400 OR #200,
65100 ?SF.SAC= #2400 OR #220,
65150 ?SF.DEF= #010,
65200 ?S.0 =1,
65250 ?S.50 =2,
65300 ?S.75 =3,
65350 ?S.100 =4,
65400 ?S.110 =5,
65450 ?S.134 =6,
65500 ?S.150 =7,
65550 ?S.200 =8,
65600 ?S.300 =9,
65650 ?S.600 =10,
65700 ?S.1200=11,
65750 ?S.1800=12,
65800 ?S.2000=13,
65850 ?S.2400=14,
65900 ?S.3600=15,
65950 ?S.4800=16,
66000 ?S.7200=17,
66050 ?S.9600=18,
66100 ?S.EXTA=19,
66150 ?S.EXTB=20,
66200 ?T.UNK0=0,
66250 ?T.AS33=1,
66300 ?T.KS33=2,
66350 ?T.AS35=3,
66400 ?T.L30S=4,
66450 ?T.L30P=5,
66500 ?T.LA36=6,
66550 ?T.VT05=7,
66600 ?T.VT50=8,
66650 ?T.VT52=9,
66700 ?T.VT55=10,
66750 ?T.VT61=11,
66800 ?T.L180=12,
66850 ?T.SCR0=13,
66900 ?T.USR0=14,
66950 ?T.USR1=?T.USR0+1,
67000 ?T.USR2=?T.USR1+1,
67050 ?T.USR3=?T.USR2+1,
67100 ?T.USR4=?T.USR3+1;
67150 MACRO
67200 ?F1.ACR=0,1 $QUOTE $,
67250 ?F1.BTW=1,1 $QUOTE $,
67300 ?F1.BUF=2,1 $QUOTE $,
67350 ?F1.UIA=3,1 $QUOTE $,
67400 ?F1.CCO=4,1 $QUOTE $,
67450 ?F1.ESQ=5,1 $QUOTE $,
67500 ?F1.HLD=6,1 $QUOTE $,
67550 ?F1.LWC=7,1 $QUOTE $,
67600 ?F1.RNE=8,1 $QUOTE $,
67650 ?F1.RPR=9,1 $QUOTE $,
67700 ?F1.RST=10,1 $QUOTE $,
67750 ?F1.RUB=11,1 $QUOTE $,
67800 ?F1.SYN=12,1 $QUOTE $,
67850 ?F1.TRW=13,1 $QUOTE $,
67900 ?F1.UTB=14,1 $QUOTE $,
67950 ?F1.VBF=15,1 $QUOTE $,
68000 ?F2.SCH=0,1 $QUOTE $,
68050 ?F2.GCH=1,1 $QUOTE $,
68100 ?F2.DCH=2,1 $QUOTE $,
68150 ?F2.DKL=3,1 $QUOTE $,
68200 ?F2.ALT=4,1 $QUOTE $,
68250 ?F2.SFF=5,1 $QUOTE $,
68300 ?TF.RST=0,1 $QUOTE $,
68350 ?TF.BIN=1,1 $QUOTE $,
68400 ?TF.RAL=3,1 $QUOTE $,
68450 ?TF.RNE=4,1 $QUOTE $,
68500 ?TF.RNC=5,1 $QUOTE $,
68550 ?TF.XOF=6,1 $QUOTE $,
68600 ?TF.TMO=7,1 $QUOTE $,
68650 ?TF.WAL=3,1 $QUOTE $,
68700 ?TF.WMS=4,1 $QUOTE $,
68750 ?TF.CCO=5,1 $QUOTE $,
68800 ?TF.WBT=6,1 $QUOTE $,
68850 ?TF.SYN=7,1 $QUOTE $,
68900 ?TF.AST=3,1 $QUOTE $,
68950 ?TF.ESQ=4,1 $QUOTE $;
69000 UNDECLARE $QUOTE $QUOTE ?TTSYM$;
69050 MACRO ?TTSYM$=UNDECLARE ?.......... $QUOTE $ $;
69100 SWITCHES LIST;