Google
 

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