Google
 

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