Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/rsx11s/dratx.list
There are no other files named dratx.list in the archive.
DRATX MACRO M1110 22-AUG-79 06:57 PAGE 3
1 .TITLE DRATX
2 .IDENT /06/
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 06
12 ;
13 ; D. N. CUTLER 31-AUG-73
14 ;
15 ; PREVIOUSLY MODIFIED BY:
16 ;
17 ; D. N. CUTLER
18 ; T. J. MILLER
19 ;
20 ; MODIFIED BY:
21 ;
22 ; MACRO LIBRARY CALLS
23 ;
24
25 .MCALL ABODF$,HDRDF$,HWDDF$,TCBDF$
26 000000 ABODF$ ;DEFINE TASK ABORT CODES
27 000000 HDRDF$ ;DEFINE TASK HEADER OFFSETS
28 000000 HWDDF$ ;DEFINE HARDWARE REGISTERS
29 000000 TCBDF$ ;DEFINE TASK CONTROL BLOCK OFFSETS
30
31 ;+
32 ; **-$DRATX-AST SERVICE EXIT
33 ;
34 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO TERMINATE THE EXECUTION OF AN
35 ; ASYNCHRONOUS SYSTEM TRAP SERVICE ROUTINE. IF ANOTHER AST IS QUEUED AND
36 ; AST'S ARE NOT DISABLED, THEN THE NEXT AST IS EFFECTED IMMEDIATELY.
37 ;
38 ; DPB FORMAT:
39 ;
40 ; WD. 00 -- DIC(115.),DPB SIZE(1.).
41 ;
42 ; AT ISSUANCE THE TASK STACK CONTAINS:
43 ;
44 ; 14(SP)=EVENT FLAG MASK WORD FOR FLAGS 1.-16.
45 ; 12(SP)=EVENT FLAG MASK WORD FOR FLAGS 17.-32.
46 ; 10(SP)=EVENT FLAG MASK WORD FOR FLAGS 33.-48.
47 ; 06(SP)=EVENT FLAG MASK WORD FOR FLAGS 49.-64.
48 ; 04(SP)=PRE AST TASK PS.
49 ; 02(SP)=PRE AST TASK PC.
50 ; 00(SP)=PRE AST TASK DIRECTIVE STATUS WORD.
51 ;
52 ; INPUTS:
53 ;
54 ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
55 ; R3=ADDRESS OF THE LAST WORD IN THE DPB+2.
56 ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
57 ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
DRATX MACRO M1110 22-AUG-79 06:57 PAGE 3-1
58 ;
59 ; OUTPUTS: (DIRECTIVE STATUS AND PS WORD RETURNED TO TASK)
60 ;
61 ; C=0 IF DIRECTIVE IS SUCCESSFULLY COMPLETED.
62 ; DIRECTIVE STATUS OF PRE AST STATE IS RETURNED.
63 ; C=1 IF DIRECTIVE IS REJECTED.
64 ; DIRECTIVE STATUS OF 'D.RS80' IS RETURNED IF THE DIRECTIVE
65 ; WAS NOT EXECUTED FROM AN AST SERVICE ROUTINE.
66 ;
67 ; NOTE: IF AN ADDRESS CHECK FAILURE OCCURS WHILE REMOVING ARGU-
68 ; MENTS FROM THE TASK STACK, THEN THE ISSUING TASK IS
69 ; ABORTED.
70 ;-
71
72
73 .IF DF A$$TRP
74
75 000000 011246 $DRATX::MOV (R2),-(SP) ;DIRECTIVE EXECUTED FROM AST?
76 000002 100045 BPL 10$ ;IF PL NO
77 000004 006216 ASR (SP) ;SHIFT AST SUSPEND AND WAITFOR BITS INTO
78 000006 042716 077752 BIC #^C<T2.AST!T2.STP!T2.SPN!T2.WFR>,(SP) ;CLEAR EXTRA BITS
79 000012 041612 BIC (SP),(R2) ;CLEAR AST IN PROGRESS FLAG
80 000014 152612 BISB (SP)+,(R2) ;RESTORE PRE AST STATE
81
82
83 .IF DF C$$CKP&D$$ISK
84
85 BIT #T2.STP,(R2) ;WAS TASK STOPPED?
86 BEQ 5$ ;IF EQ NO
87 MOV T.PCB(R5),R0 ;POINT TO TASK PCB
88 CALL $NXTSK ;REALLOCATE TASK PARTITION
89
90 .ENDC
91
92
93 000016 017703 000000G 5$: MOV @$HEADR,R3 ;GET SAVED STACK POINTER
94
95
96 .IF DF M$$MGE
97
98 000022 006506 MFPI SP ;GET USER STACK POINTER
99 000024 011600 MOV (SP),R0 ;COPY STACK POINTER
100 000026 062700 000002 ADD #2,R0 ;STEP OVER DPB WORD
101 000032 062716 000016 ADD #16,(SP) ;ADJUST TO NEW TOP OF STACK
102 000036 006606 MTPI SP ;RESTORE USER STACK POINTER
103
104 .IFF
105
106 MOV R3,R0 ;COPY SAVED STACK POINTER
107 ADD #4*2+2,R0 ;POINT TO FIRST USER STACK WORD
108
109 .IFTF
110
111
112 .IF DF A$$CHK!M$$MGE
113
114 000040 012701 000016 MOV #7*2,R1 ;SET NUMBER OF BYTES TO CHECK
DRATX MACRO M1110 22-AUG-79 06:57 PAGE 3-2
115 000044 CALL $ACHCK ;ADDRESS CHECK TASK STACK WORDS
116 000050 103423 BCS 20$ ;IF CS ADDRESS CHECK FAILURE
117
118 .ENDC
119
120
121 .IFT
122
123 000052 CALL $RELOM ;RELOCATE AND MAP STACK ADDRESS
124
125 .IFTF
126
127 000056 012066 000002 MOV (R0)+,2(SP) ;SET DIRECTIVE STATUS TO RETURN
128 000062 022323 CMP (R3)+,(R3)+ ;POINT TO SAVED PC
129 000064 012023 MOV (R0)+,(R3)+ ;RESTORE PRE AST PC
130 000066 012023 MOV (R0)+,(R3)+ ;RESTORE PRE AST PS
131
132 .IFT
133
134 000070 052743 170000 BIS #CMODE!PMODE,-(R3) ;MAKE SURE CURRENT AND PREVIOUS IS USER
135 000074 042723 000340 BIC #PR7,(R3)+ ;MAKE SURE PRIORITY IS ZERO
136
137 .IFTF
138
139 000100 012064 000004 MOV (R0)+,H.EFLM(R4) ;RESTORE WAITFOR MASK WORD
140 000104 016464 000040 000006 MOV H.EFSV(R4),H.EFLM+2(R4) ;RESTORE WAITFOR MASK ADDRESS
141
142 .IFF
143
144 TST (R0)+ ;ADJUST TO PROPER LOCATION
145 MOV -(R3),(R0) ;MOVE TASK PS WORD
146 MOV -(R3),-(R0) ;MOVE TASK PC WORD
147 MOV -(R3),-(R0) ;MOVE SAVED R5
148 MOV -(R3),-(R0) ;MOVE SAVED R4
149 MOV R0,@$HEADR ;SET ADDRESS OF NEW TASK STACK POINTER
150
151 .ENDC
152
153
154 000112 CALLR $SETRT ;FORCE A REDISPATCHING OF PROCESSOR
155 000116 10$: DRSTS D.RS80 ;SET DIRECTIVE STATUS
156
157
158 .IF DF A$$CHK!M$$MGE
159
160 000120 012700 000022 20$: MOV #S.CAST,R0 ;SET AST ABORT
161 000124 CALLR $ABCTK ;ABORT CURRENT TASK
162
163 .ENDC
164
165
166 .ENDC
167
168
169 000001 .END
DRATX MACRO M1110 22-AUG-79 06:57 PAGE 3-3
SYMBOL TABLE
A$$CHK= 000000 H.PFVA 000032 P$$TPT= 000000 T.EFLG 000022 T3.MCR= 004000
A$$CPS= 000000 H.RCVA 000036 R$$DER= 000000 T.IOC 000003 T3.NET= 000020
A$$TRP= 000000 H.RRVA 000062 R$$EXV= 000000 T.LBN 000041 T3.NSD= 000200
CMODE = 140000 H.SPRI 000060 R$$SND= 000000 T.LDV 000044 T3.PMD= 040000
C$$ORE= 002000 H.TKVA 000026 R$$11M= 000000 T.LNK 000000 T3.PRV= 010000
D.RS80= ****** GX H.TKVL 000030 R$$11S= 000000 T.MXSZ 000050 T3.REM= 020000
FE.CAL= 000040 H.VEXT 000056 SISDR0= 172200 T.NAM 000006 T3.ROV= 000040
FE.CEX= 020000 H.WND 000044 SR0 = 177572 T.NCRE= 000006 T3.RST= 000400
FE.DRV= 000010 I$$RDN= 000000 SR3 = 172516 T.NCWF= 000004 T3.SLV= 002000
FE.EXP= 000200 KDSAR0= 172360 SWR = 177570 T.NDMO= 000010 UBMPR = 170200
FE.EXT= 000001 KDSDR0= 172320 S$$YSZ= 001740 T.NDNR= 000000 UDSAR0= 177660
FE.EXV= 000004 KISAR0= 172340 S.CABO= 000024 T.NDSE= 000002 UDSDR0= 177620
FE.LSI= 000400 KISAR5= 172352 S.CAST= 000022 T.NLDN= 000014 UISAR0= 177640
FE.MUP= 000002 KISAR6= 172354 S.CBPT= 000004 T.NLUP= 000016 UISAR4= 177650
FE.MXT= 040000 KISAR7= 172356 S.CCRF= 000030 T.OFF 000060 UISAR5= 177652
FE.NLG= 100000 KISDR0= 172300 S.CEMT= 000012 T.PCB 000046 UISAR6= 177654
FE.PKT= 000100 KISDR6= 172314 S.CFLT= 000016 T.PRI 000002 UISAR7= 177656
FE.PLA= 000020 KISDR7= 172316 S.CILI= 000010 T.RCVL 000012 UISDR0= 177600
G$$TPP= 000000 K$$CNT= 177546 S.CIOT= 000006 T.RRFL 000064 UISDR4= 177610
G$$TTK= 000000 K$$CSR= 177546 S.CLRF= 000026 T.SRCT 000063 UISDR5= 177612
H$$RTZ= 000074 K$$IEN= 000115 S.COAD= 000000 T.STAT 000032 UISDR6= 177614
H.CSP 000000 K$$LDC= 000001 S.CSGF= 000002 T.ST2 000034 UISDR7= 177616
H.CUIC 000010 K$$TPS= 000074 S.CSST= 000020 T.ST3 000036 V$$CTR= 001200
H.DSW 000046 L$$ASG= 000000 S.CTRP= 000014 T.TCBL 000030 V$$RSN= 000031
H.DUIC 000012 L$$DRV= 000000 S.IOMG= 000032 T.UCB 000026 W.BATT 000006
H.EFLM 000004 MPAR = 172100 S.PRTY= 000034 T2.ABO= 000100 W.BFPD 000014
H.EFSV 000040 MPCSR = 177746 TPS = 177564 T2.AST= 100000 W.BHVR 000004
H.FCS 000050 M$$CRB= 000124 TS.BLK= 170700 T2.BFX= 004000 W.BLGH 000020
H.FORT 000052 M$$MGE= 000000 TS.CKP= 000200 T2.CAF= 000400 W.BLPD 000016
H.FPSA 000042 M$$NET= 000000 TS.CKR= 000100 T2.CHK= 020000 W.BLVR 000002
H.FPVA 000034 M$$NT2= 000000 TS.EXE= 100000 T2.CKD= 010000 W.BNPD 000015
H.GARD 000072 N$$LDV= 000001 TS.MSG= 020000 T2.DST= 040000 W.BOFF 000012
H.HDLN 000002 PIRQ = 177772 TS.NRP= 010000 T2.FXD= 002000 W.BPCB 000000
H.IPC 000016 PMODE = 030000 TS.OUT= 000400 T2.HLT= 000200 W.BSIZ 000010
H.IPS 000014 PR0 = 000000 TS.RDN= 040000 T2.SPN= 000004 X$$DBT= 000000
H.ISP 000020 PR1 = 000040 TS.RUN= 004000 T2.STP= 000020 $ABCTK= ****** GX
H.LUN 000076 PR4 = 000200 T.ACTL 000052 T2.TIO= 001000 $ACHCK= ****** GX
H.NLUN 000074 PR5 = 000240 T.ASTL 000016 T2.WFR= 000001 $DRATX 000000RG
H.NML 000061 PR6 = 000300 T.ATT 000054 T3.ACP= 100000 $HEADR= ****** GX
H.ODVA 000022 PR7 = 000340 T.CPCB 000004 T3.CAL= 000100 $RELOM= ****** GX
H.ODVL 000024 PS = 177776 T.DPRI 000040 T3.CLI= 001000 $SETRT= ****** GX
H.OVLY 000054 P$$RTY= 000000
. ABS. 000102 000
000130 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 3754 WORDS ( 15 PAGES)
DYNAMIC MEMORY: 5092 WORDS ( 19 PAGES)
ELAPSED TIME: 00:00:15
[11,24]DRATX,SY0:[11,34]DRATX/-SP=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,DRATX