Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/rsx11s/drgpp.list
There are no other files named drgpp.list in the archive.
DRGPP	MACRO M1110  22-AUG-79 06:59  PAGE 3


      1						.TITLE	DRGPP
      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 3-JAN-74
     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	PCBDF$,TCBDF$
     26	000000					PCBDF$			;DEFINE PARTITION CONTROL BLOCK OFFSETS
     27	000000					TCBDF$			;DEFINE TASK CONTROL BLOCK OFFSETS
     28
     29					;+
     30					; **-$DRGPP-GET PARTITION PARAMETERS
     31					;
     32					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL A THREE WORD BUFFER WITH
     33					; PARTITION PARAMETERS.
     34					;
     35					; DPB FORMAT:
     36					;
     37					;	WD. 00 -- DIC(65.),DPB SIZE(4.).
     38					;	WD. 01 -- FIRST HALF OF OPTIONAL PARTITION NAME.
     39					;	WD. 02 -- SECOND HALF OF OPTIONAL PARTITION NAME.
     40					;	WD. 03 -- ADDRESS OF A THREE WORD BUFFER.
     41					;
     42					;	BUFFER FORMAT:
     43					;
     44					;	WD. 00 -- BASE ADDRESS OF PARTITION IN 32W BLOCKS.
     45					;	WD. 01 -- SIZE OF PARTITION IN 32W BLOCKS.
     46					;	WD. 02 -- PARTITION FLAGS WORD.
     47					;
     48					; INPUTS:
     49					;
     50					;	R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK.
     51					;	R3=ADDRESS OF THE PARTITION NAME IN THE DPB.
     52					;	R4=ADDRESS OF THE HEADER OF THE CURRENT TASK.
     53					;	R5=ADDRESS OF THE TCB OF THE CURRENT TASK.
     54					;
     55					; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK)
     56					;
     57					;	C=0 IF DIRECTIVE IS SUCCESSFULLY COMPLETED.
DRGPP	MACRO M1110  22-AUG-79 06:59  PAGE 3-1


     58					;		DIRECTIVE STATUS EQUAL TO THE STARTING VIRTUAL ADDRESS
     59					;			OF THE SPECIFIED PARTITION IS RETURNED.
     60					;	C=1 IF DIRECTIVE IS REJECTED.
     61					;		DIRECTIVE STATUS OF 'D.RS2' IS RETURNED IF SPECIFIED
     62					;			PARTITION IS NOT IN SYSTEM.
     63					;-
     64
     65
     66						.IF DF	G$$TPP
     67
     68
     69						.IF DF	P$$LAS
     70
     71					$DRGPP::TST	(R3)+		;PARTITION NAME SPECIFIED?
     72						BNE	10$		;IF NE YES
     73						CALL	$SRATT		;SEARCH FOR REGION ID
     74						MOV	A.PCB(R5),R2	;PICK UP PCB ADDRESS
     75						BR	30$		;
     76					10$:	TST	-(R3)		;POINT TO FIRST WORD OF PARTITION NAME
     77						CALL	$SRNAM		;SEARCH FOR NAMED PARTITION
     78						BCC	20$		;IF CC NAMED PARTITION FOUND
     79						DRSTS	D.RS2		;INVALID PARTITION NAME
     80					20$:	TST	(R3)+		;ADVANCE POINTER
     81					30$:	MOV	R2,R4		;COPY PCB POINTER
     82
     83						.IFF
     84
     85	000000	012300 			$DRGPP::MOV	(R3)+,R0	;PARTITION SPECIFIED?
     86	000002	001413 				BEQ	30$		;IF EQ NO
     87	000004	016704 	000000G			MOV	$PARHD,R4	;GET ADDRESS OF FIRST PARTITION PCB
     88	000010	020064 	000004 		10$:	CMP	R0,P.NAM(R4)	;FIRST HALF OF NAME MATCH?
     89	000014	001003 				BNE	20$		;IF NE NO
     90	000016	021364 	000006 			CMP	(R3),P.NAM+2(R4) ;SECOND HALF OF NAME MATCH?
     91	000022	001405 				BEQ	40$		;IF EQ YES
     92	000024	011404 			20$:	MOV	(R4),R4		;GET ADDRESS OF NEXT PCB
     93	000026	001370 				BNE	10$		;IF NE MORE TO SCAN
     94	000030					DRSTS	D.RS2		;SET DIRECTIVE STATUS
     95	000032	016504 	000046 		30$:	MOV	T.PCB(R5),R4	;GET PCB ADDRESS OF CURRENT TASK
     96
     97						.ENDC
     98
     99
    100	000036	016303 	000002 		40$:	MOV	2(R3),R3	;GET ADDRESS OF 3 WORD BUFFER
    101
    102
    103						.IF DF	A$$CHK!M$$MGE
    104
    105	000042	012701 	000006 			MOV	#3*2,R1		;SET LENGTH OF BUFFER
    106	000046					CALL	$ACHKP		;ADDRESS CHECK BUFFER
    107
    108						.ENDC
    109
    110
    111						.IF DF	M$$MGE
    112
    113	000052	016423 	000014 			MOV	P.REL(R4),(R3)+	;INSERT PHYSICAL ADDRESS OF PARTITION
    114	000056	005066 	000002 			CLR	2(SP)		;SET DIRECTIVE STATUS WORD
DRGPP	MACRO M1110  22-AUG-79 06:59  PAGE 3-2


    115
    116						.IFF
    117
    118						MOV	P.REL(R4),R1	;GET STARTING VIRTUAL ADDRESS OF PARTITION
    119						MOV	R1,(R3)+	;INSERT PHYSICAL ADDRESS OF PARTITION
    120						MOV	R1,2(SP)	;SET DIRECTIVE STATUS WORD
    121
    122						.IFTF
    123
    124	000062	016423 	000016 			MOV	P.SIZE(R4),(R3)+ ;INSERT SIZE OF PARTITION
    125	000066	005013 				CLR	(R3)		;ASSUME SYSTEM CONTROLLED PARTITION
    126
    127
    128						.IF DF	D$$YNM&M$$MGE
    129
    130						BIT	#PS.SYS,P.STAT(R4) ;SYSTEM CONTROLLED PARTITION?
    131						BNE	60$		;IF NE YES
    132
    133						.ENDC
    134
    135
    136	000070	005213 				INC	(R3)		;SET USER CONTROLLED PARTITION
    137
    138						.IFF
    139
    140						CALL	(PC)		;CONVERT LENGTH TO 32W BLOCKS
    141						SWAB	-(R3)		;CONVERT TO 32W BLOCKS
    142						ASLB	1(R3)		;
    143						ROL	(R3)		;
    144						ROL	(R3)		;
    145
    146						.ENDC
    147
    148
    149	000072				60$:	RETURN
    150
    151						.ENDC
    152
    153
    154		000001 				.END
DRGPP	MACRO M1110  22-AUG-79 06:59  PAGE 3-3
SYMBOL TABLE

AS.DEL= 000010   	L$$ASG= 000000   	P.MAIN  000012   	T.ASTL  000016   	T2.CKD= 010000
AS.EXT= 000004   	L$$DRV= 000000   	P.NAM   000004   	T.ATT   000054   	T2.DST= 040000
AS.RED= 000001   	M$$CRB= 000124   	P.OWN   000026   	T.CPCB  000004   	T2.FXD= 002000
AS.WRT= 000002   	M$$MGE= 000000   	P.PRI   000002   	T.DPRI  000040   	T2.HLT= 000200
A$$CHK= 000000   	M$$NET= 000000   	P.REL   000014   	T.EFLG  000022   	T2.SPN= 000004
A$$CPS= 000000   	M$$NT2= 000000   	P.SIZE  000016   	T.IOC   000003   	T2.STP= 000020
A$$TRP= 000000   	N$$LDV= 000001   	P.STAT  000030   	T.LBN   000041   	T2.TIO= 001000
A.IOC   000003   	PS.APR= 000007   	P.SUB   000010   	T.LDV   000044   	T2.WFR= 000001
A.LGTH= 000014   	PS.CHK= 010000   	P.SWSZ  000022   	T.LNK   000000   	T3.ACP= 100000
A.MPCT  000011   	PS.CKP= 040000   	P.TCB   000026   	T.MXSZ  000050   	T3.CAL= 000100
A.PCB   000012   	PS.CKR= 020000   	P.WAIT  000020   	T.NAM   000006   	T3.CLI= 001000
A.PCBL  000000   	PS.COM= 000200   	R$$DER= 000000   	T.OFF   000060   	T3.MCR= 004000
A.PRI   000002   	PS.DEL= 000010   	R$$EXV= 000000   	T.PCB   000046   	T3.NET= 000020
A.STAT  000010   	PS.DRV= 000020   	R$$SND= 000000   	T.PRI   000002   	T3.NSD= 000200
A.TCB   000004   	PS.FXD= 004000   	R$$11M= 000000   	T.RCVL  000012   	T3.PMD= 040000
A.TCBL  000006   	PS.LIO= 001000   	R$$11S= 000000   	T.RRFL  000064   	T3.PRV= 010000
C$$ORE= 002000   	PS.NSF= 000400   	S$$YSZ= 001740   	T.SRCT  000063   	T3.REM= 020000
D.RS2 = ****** GX	PS.OUT= 100000   	TS.BLK= 170700   	T.STAT  000032   	T3.ROV= 000040
G$$TPP= 000000   	PS.PER= 002000   	TS.CKP= 000200   	T.ST2   000034   	T3.RST= 000400
G$$TTK= 000000   	PS.PIC= 000100   	TS.CKR= 000100   	T.ST3   000036   	T3.SLV= 002000
H$$RTZ= 000074   	PS.SYS= 000040   	TS.EXE= 100000   	T.TCBL  000030   	V$$CTR= 001200
I$$RDN= 000000   	P$$RTY= 000000   	TS.MSG= 020000   	T.UCB   000026   	V$$RSN= 000031
K$$CNT= 177546   	P$$TPT= 000000   	TS.NRP= 010000   	T2.ABO= 000100   	X$$DBT= 000000
K$$CSR= 177546   	P.BLKS  000016   	TS.OUT= 000400   	T2.AST= 100000   	$ACHKP= ****** GX
K$$IEN= 000115   	P.BUSY  000024   	TS.RDN= 040000   	T2.BFX= 004000   	$DRGPP  000000RG
K$$LDC= 000001   	P.IOC   000003   	TS.RUN= 004000   	T2.CAF= 000400   	$PARHD= ****** GX
K$$TPS= 000074   	P.LNK   000000   	T.ACTL  000052   	T2.CHK= 020000

. ABS.	000070	   000
      	000074	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  2866 WORDS  ( 12 PAGES)
DYNAMIC MEMORY:  4036 WORDS  ( 15 PAGES)
ELAPSED TIME:  00:00:13
[11,24]DRGPP,SY0:[11,34]DRGPP/-SP=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,DRGPP