Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/rsx11s/drsed.list
There are no other files named drsed.list in the archive.
DRSED MACRO M1110 22-AUG-79 07:03 PAGE 3
1 .TITLE DRSED
2 .IDENT /05/
3
4 ;
5 ; COPYRIGHT (C) 1974, 1976
6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
7 ;
8 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
9 ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
10 ;
11 ; VERSION 05
12 ;
13 ; D. N. CUTLER 2-SEP-73
14 ;
15 ; PREVIOUSLY MODIFIED BY:
16 ;
17 ; D. N. CUTLER
18 ; T. J. MILLER
19 ;
20 ; MODIFIED BY:
21 ;
22 ; SIGNIFICANT EVENT AND EVENT FLAG DIRECTIVES
23 ;
24 ; MACRO LIBRARY CALLS
25 ;
26
27 .MCALL HDRDF$,TCBDF$
28 000000 HDRDF$ ;DEFINE TASK HEADER OFFSETS
29 000000 TCBDF$ ;DEFINE TASK CONTROL BLOCK OFFSETS
30
31 ;+
32 ; **-$DRCEF-CLEAR EVENT FLAG
33 ;
34 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO CLEAR AN EVENT FLAG AND
35 ; REPORT ITS POLARITY BEFORE CLEARING.
36 ;
37 ; DPB FORMAT:
38 ;
39 ; WD. 00 -- DIC(31.),DPB SIZE(2.).
40 ; WD. 01 -- EVENT FLAG NUMBER OF FLAG TO BE CLEARED.
41 ;
42 ; INPUTS:
43 ;
44 ; R0=EVENT FLAG MASK WORD.
45 ; R1=EVENT FLAG MASK ADDRESS.
46 ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
47 ; R3=ADDRESS OF THE LAST WORD IN THE DPB+2.
48 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
49 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
50 ;
51 ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
52 ;
53 ; C=0 WITH A DIRECTIVE STATUS OF 'D.RS00' IF THE FLAG WAS
54 ; CLEAR OR 'D.RS22' IF THE FLAG WAS SET.
55 ;-
56
57 .ENABL LSB
DRSED MACRO M1110 22-AUG-79 07:03 PAGE 3-1
58 000000 030011 $DRCEF::BIT R0,(R1) ;TEST FLAG
59 000002 001431 BEQ 20$ ;IF EQ FLAG IS CLEAR
60 000004 040011 BIC R0,(R1) ;CLEAR FLAG
61 000006 10$: DRSTS D.RS22 ;SET DIRECTIVE STATUS
62
63 ;+
64 ; **-$DRDSE-DECLARE SIGNIFICANT EVENT
65 ;
66 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO DECLARE A SIGNIFICANT EVENT.
67 ;
68 ; DPB FORMAT:
69 ;
70 ; WD. 00 -- DIC(35.),DPB SIZE(1.).
71 ;
72 ; INPUTS:
73 ;
74 ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
75 ; R3=ADDRESS OF THE LAST WORD IN THE DPB+2.
76 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
77 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
78 ;
79 ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
80 ;
81 ; C=0 WITH A DIRECTIVE STATUS OF +1.
82 ;
83 ; NOTE: THIS DIRECTIVE IS ALSO CALLED A SUBROUTINE
84 ;-
85
86 000010 016767 000000G 000000G $DRDSE::MOV $ACTHD,$RQSCH ;SET DISPATCH TO FRONT OF LIST
87 000016 005067 000000G CLR $SIGFL ;CLEAR TASK WAITING FOR SIGNIFICANT EVENT
88 000022 RETURN ;RETURN DIRECTIVE STATUS OF +1
89
90 ;+
91 ; **-$DRRAF-READ ALL EVENT FLAGS
92 ;
93 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL A FOUR WORD BUFFER WITH
94 ; THE TASK LOCAL AND COMMON EVENT FLAGS.
95 ;
96 ; DPB FORMAT:
97 ;
98 ; WD. 00 -- DIC(39.),DPB SIZE(2.).
99 ; WD. 01 -- ADDRESS OF A FOUR WORD BUFFER.
100 ;
101 ; BUFFER FORMAT:
102 ;
103 ; WD. 00 -- TASK LOCAL EVENT FLAGS 1-16.
104 ; WD. 01 -- TASK LOCAL EVENT FLAGS 17-32.
105 ; WD. 02 -- COMMON EVENT FLAGS 33-48.
106 ; WD. 03 -- COMMON EVENT FLAGS 49-64.
107 ;
108 ; INPUTS:
109 ;
110 ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
111 ; R3=ADDRESS OF THE BUFFER ADDRESS IN THE DPB.
112 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
113 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
114 ;
DRSED MACRO M1110 22-AUG-79 07:03 PAGE 3-2
115 ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
116 ;
117 ; C=0 IF DIRECTIVE IS SUCCESSFULLY COMPLETED.
118 ; DIRECTIVE STATUS OF +1 IS RETURNED.
119 ; C=1 IF DIRECTIVE IS REJECTED.
120 ; DIRECTIVE STATUS OF 'D.RS98' IS RETURNED IF BUFFER IS
121 ; OUTSIDE OF ISSUING TASK'S ADDRESS SPACE.
122 ;-
123
124 000024 011303 $DRRAF::MOV (R3),R3 ;GET ADDRESS OF EVENT FLAG BUFFER
125
126
127 .IF DF A$$CHK!M$$MGE
128
129 000026 012701 000010 MOV #4*2,R1 ;SET LENGTH OF BUFFER IN BYTES
130 000032 CALL $ACHKP ;ADDRESS CHECK PARAMETER BUFFER
131
132 .ENDC
133
134
135 000036 016523 000022 MOV T.EFLG(R5),(R3)+ ;INSERT LOCAL FLAGS 1-16
136 000042 016523 000024 MOV T.EFLG+2(R5),(R3)+ ;INSERT LOCAL FLAGS 17-32
137 000046 016723 000000G MOV $COMEF,(R3)+ ;INSERT COMMON FLAGS 33-48
138 000052 016713 000002G MOV $COMEF+2,(R3) ;INSERT COMMON FLAGS 49-64
139 000056 RETURN ;
140
141 ;+
142 ; **-$DRSEF-SET EVENT FLAG
143 ;
144 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SET AN EVENT FLAG AND
145 ; REPORT IS POLARITY BEFORE SETTING.
146 ;
147 ; DPB FORMAT:
148 ;
149 ; WD. 00 -- DIC(33.),DPB SIZE(2.).
150 ; WD. 01 -- EVENT FLAG NUMBER OF FLAG TO BE SET.
151 ;
152 ; INPUTS:
153 ;
154 ; R0=EVENT FLAG MASK WORD.
155 ; R1=EVENT FLAG MASK ADDRESS.
156 ; R3=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
157 ; R3=ADDRESS OF THE LAST WORD IN THE DPB+2.
158 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
159 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
160 ;
161 ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
162 ;
163 ; C=0 WITH A DIRECTIVE STATUS OF 'D.RS00' IF THE FLAG WAS
164 ; CLEAR OR 'D.RS22' IF THE FLAG WAS SET.
165 ;-
166
167 000060 030011 $DRSEF::BIT R0,(R1) ;TEST FLAG
168 000062 001351 BNE 10$ ;IF NE FLAG IS SET
169 000064 050011 BIS R0,(R1) ;SET FLAG
170 000066 20$: DRSTS D.RS00 ;SET DIRECTIVE STATUS
171 .DSABL LSB
DRSED MACRO M1110 22-AUG-79 07:03 PAGE 3-3
172
173 ;+
174 ; **-$TKWSE-TASK WAITFOR SIGNIFICANT EVENT
175 ;
176 ; THIS ROUTINE IS CALLED TO EXECUTE A WAITFOR SIGNIFICANT EVENT DIRECTIVE FOR
177 ; THE CURRENT TASK FROM WITHIN THE EXECUTIVE.
178 ;
179 ; INPUTS:
180 ;
181 ; NONE.
182 ;
183 ; OUTPUTS:
184 ;
185 ; A WAITFOR SIGNIFICANT EVENT DIRECTIVE IS EXECUTED FOR THE CURRENT
186 ; TASK AND A RETURN TO THE CALLER IS EXECUTED.
187 ;-
188
189 000070 016705 000000G $TKWSE::MOV $TKTCB,R5 ;GET ADDRESS OF CURRENT TASK TCB
190
191 ;+
192 ; **-$DRWSE-WAITFOR SIGNIFICANT EVENT
193 ;
194 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SUSPEND THE EXECUTION OF THE
195 ; ISSUING TASK UNTIL THE NEXT SIGNIFICANT EVENT.
196 ;
197 ; DPB FORMAT:
198 ;
199 ; WD. 00 -- DIC(49.),DPB SIZE(1.).
200 ;
201 ; INPUTS:
202 ;
203 ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
204 ; R3=ADDRESS OF THE LAST WORD IN THE DPB+2.
205 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
206 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
207 ;
208 ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
209 ;
210 ; C=0 WITH A DIRECTIVE STATUS OF +1.
211 ;-
212
213 000074 016500 000052 $DRWSE::MOV T.ACTL(R5),R0 ;GET TCB ADDRESS OF NEXT TASK
214 000100 010567 000000G MOV R5,$SIGFL ;SET TASK WAITING FOR SIGNIFICANT EVENT
215 000104 CALLR $SETRQ ;FORCE REDISPATCHING OF THE PROCESSOR
216
217 ;+
218 ; **-$DRWFL-WAIT FOR LOGICAL OR OF EVENT FLAGS
219 ;
220 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SUSPEND THE EXECUTION OF THE
221 ; ISSUING TASK UNTIL ANY OF THE SPECIFIED EVENT FLAGS IS SET.
222 ;
223 ; DPB FORMAT:
224 ;
225 ; WD. 00 -- DIC(43.),DPB SIZE(3.).
226 ; WD. 01 -- EVENT FLAG SET INDICATOR.
227 ; WD. 02 -- EVENT FLAG MASK WORD.
228 ;
DRSED MACRO M1110 22-AUG-79 07:03 PAGE 3-4
229 ; EVENT FLAG SETS:
230 ;
231 ; SET 0 -- EVENT FLAGS 1.-16.
232 ; SET 1 -- EVENT FLAGS 17.-32.
233 ; SET 2 -- EVENT FLAGS 33.-48.
234 ; SET 3 -- EVENT FLAGS 49.-64.
235 ;
236 ; INPUTS:
237 ;
238 ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
239 ; R3=ADDRESS OF THE SECOND WORD IN THE DPB.
240 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
241 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
242 ;
243 ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
244 ;
245 ; C=0 IF DIRECTIVE IS SUCCESSFULLY COMPLETED.
246 ; DIRECTIVE STATUS OF +1 IS RETURNED.
247 ; C=1 IF DIRECTIVE IS REJECTED.
248 ; DIRECTIVE STATUS OF 'D.RS97' IS RETURNED IF AN
249 ; ILLEGAL EVENT FLAG SET OR A ZERO EVENT
250 ; FLAG MASK IS SPECIFIED.
251 ;-
252
253 000110 012301 $DRWFL::MOV (R3)+,R1 ;GET EVENT FLAG SET
254 000112 020127 000003 CMP R1,#3 ;LEGAL SET?
255 000116 101011 BHI 10$ ;IF HI NO
256 000120 006301 ASL R1 ;CONVERT TO WORD INDEX
257 000122 011300 MOV (R3),R0 ;GET EVENT FLAG MASK WORD
258 000124 001406 BEQ 10$ ;IF EQ NO FLAGS SPECIFIED
259 000126 020127 000003 CMP R1,#3 ;COMMON GLOBAL FLAG SET?
260 000132 002404 BLT 20$ ;IF LT NO
261 000134 062701 177774G ADD #$COMEF-4,R1 ;POINT TO PROPER COMMON FLAG WORD
262 000140 000404 BR $DRWFS ;FINISH UP AS IF SINGLE FLAG
263 000142 10$: DRSTS D.RS97 ;SET DIRECTIVE STATUS
264 000144 060501 20$: ADD R5,R1 ;ADD ADDRESS OF TASK TCB
265 000146 062701 000022 ADD #T.EFLG,R1 ;POINT TO PROPER TASK FLAGS WORD
266
267 ;+
268 ; **-$DFWFS-WAITFOR SINGLE EVENT FLAG
269 ;
270 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SUSPEND THE EXECUTION OF THE
271 ; ISSUING TASK UNTIL A SPECIFIED EVENT FLAG IS SET.
272 ;
273 ; DPB FORMAT:
274 ;
275 ; WD. 00 -- DIC(41.),DPB SIZE(2.).
276 ; WD. 01 -- EVENT FLAG NUMBER OF FLAG TO WAITFOR.
277 ;
278 ; INPUTS:
279 ;
280 ; R0=EVENT FLAG MASK WORD.
281 ; R1=EVENT FLAG MASK ADDRESS.
282 ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
283 ; R3=ADDRESS OF THE LAST WORD IN THE DPB+2.
284 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
285 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
DRSED MACRO M1110 22-AUG-79 07:03 PAGE 3-5
286 ;
287 ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
288 ;
289 ; C=0 WITH A DIRECTIVE STATUS OF +1.
290 ;-
291
292 000152 005265 000034 $DRWFS::INC T.ST2(R5) ;PUT TASK IN WAITFOR STATE
293 000156 010064 000004 MOV R0,H.EFLM(R4) ;SET WAITFOR MASK WORD
294 000162 010164 000006 MOV R1,H.EFLM+2(R4) ;SET WAITFOR MASK ADDRESS
295 000166 CALLR $SETRT ;SET A SCHEDULE REQUEST
296
297 000001 .END
DRSED MACRO M1110 22-AUG-79 07:03 PAGE 3-6
SYMBOL TABLE
A$$CHK= 000000 H.OVLY 000054 S$$YSZ= 001740 T.ST2 000034 V$$CTR= 001200
A$$CPS= 000000 H.PFVA 000032 TS.BLK= 170700 T.ST3 000036 V$$RSN= 000031
A$$TRP= 000000 H.RCVA 000036 TS.CKP= 000200 T.TCBL 000030 W.BATT 000006
C$$ORE= 002000 H.RRVA 000062 TS.CKR= 000100 T.UCB 000026 W.BFPD 000014
D.RS00= ****** GX H.SPRI 000060 TS.EXE= 100000 T2.ABO= 000100 W.BHVR 000004
D.RS22= ****** GX H.TKVA 000026 TS.MSG= 020000 T2.AST= 100000 W.BLGH 000020
D.RS97= ****** GX H.TKVL 000030 TS.NRP= 010000 T2.BFX= 004000 W.BLPD 000016
G$$TPP= 000000 H.VEXT 000056 TS.OUT= 000400 T2.CAF= 000400 W.BLVR 000002
G$$TTK= 000000 H.WND 000044 TS.RDN= 040000 T2.CHK= 020000 W.BNPD 000015
H$$RTZ= 000074 I$$RDN= 000000 TS.RUN= 004000 T2.CKD= 010000 W.BOFF 000012
H.CSP 000000 K$$CNT= 177546 T.ACTL 000052 T2.DST= 040000 W.BPCB 000000
H.CUIC 000010 K$$CSR= 177546 T.ASTL 000016 T2.FXD= 002000 W.BSIZ 000010
H.DSW 000046 K$$IEN= 000115 T.ATT 000054 T2.HLT= 000200 X$$DBT= 000000
H.DUIC 000012 K$$LDC= 000001 T.CPCB 000004 T2.SPN= 000004 $ACHKP= ****** GX
H.EFLM 000004 K$$TPS= 000074 T.DPRI 000040 T2.STP= 000020 $ACTHD= ****** GX
H.EFSV 000040 L$$ASG= 000000 T.EFLG 000022 T2.TIO= 001000 $COMEF= ****** GX
H.FCS 000050 L$$DRV= 000000 T.IOC 000003 T2.WFR= 000001 $DRCEF 000000RG
H.FORT 000052 M$$CRB= 000124 T.LBN 000041 T3.ACP= 100000 $DRDSE 000010RG
H.FPSA 000042 M$$MGE= 000000 T.LDV 000044 T3.CAL= 000100 $DRRAF 000024RG
H.FPVA 000034 M$$NET= 000000 T.LNK 000000 T3.CLI= 001000 $DRSEF 000060RG
H.GARD 000072 M$$NT2= 000000 T.MXSZ 000050 T3.MCR= 004000 $DRWFL 000110RG
H.HDLN 000002 N$$LDV= 000001 T.NAM 000006 T3.NET= 000020 $DRWFS 000152RG
H.IPC 000016 P$$RTY= 000000 T.OFF 000060 T3.NSD= 000200 $DRWSE 000074RG
H.IPS 000014 P$$TPT= 000000 T.PCB 000046 T3.PMD= 040000 $RQSCH= ****** GX
H.ISP 000020 R$$DER= 000000 T.PRI 000002 T3.PRV= 010000 $SETRQ= ****** GX
H.LUN 000076 R$$EXV= 000000 T.RCVL 000012 T3.REM= 020000 $SETRT= ****** GX
H.NLUN 000074 R$$SND= 000000 T.RRFL 000064 T3.ROV= 000040 $SIGFL= ****** GX
H.NML 000061 R$$11M= 000000 T.SRCT 000063 T3.RST= 000400 $TKTCB= ****** GX
H.ODVA 000022 R$$11S= 000000 T.STAT 000032 T3.SLV= 002000 $TKWSE 000070RG
H.ODVL 000024
. ABS. 000102 000
000172 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 2826 WORDS ( 12 PAGES)
DYNAMIC MEMORY: 4036 WORDS ( 15 PAGES)
ELAPSED TIME: 00:00:18
[11,24]DRSED,SY0:[11,34]DRSED/-SP=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,DRSED