Google
 

Trailing-Edge - PDP-10 Archives - BB-R598A-RM_1983 - swskit-v3/listings/vnp36/rstb.list
There are no other files named rstb.list in the archive.
				!END OF MODULE
    GSD_MNAME : NOVALUE,
								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   1
								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (1)

;	  0001	!<REL4A.TKB-VNP>RSTB.BLI.3,  3-Dec-79 14:59:04, Edit by SROBINSON
;	  0002	MODULE RSTB (					!READ SYMBOL TABLE
;	  0003			IDENT = 'X2.0'
;	  0004			) =
;	  0005	BEGIN
;	  0006	!
;	  0007	!
;	  0008	!
;	  0009	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0010	!                    DIGITAL EQUIPMENT CORPORATION
;	  0011	!                        Maynard, Massachusetts
;	  0012	!
;	  0013	!     This software is furnished under a license and may  be  used
;	  0014	!     and copied only in accordance with the terms of such license
;	  0015	!     and with the inclusion of the above copyright notice.   This
;	  0016	!     software  or any other copies thereof may not be provided or
;	  0017	!     otherwise made available to any other person.  No  title  to
;	  0018	!     and ownership of the software is hereby transferred.
;	  0019	!
;	  0020	!     The information  in  this  software  is  subject  to  change
;	  0021	!     without  notice  and should not be construed as a commitment
;	  0022	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0023	!
;	  0024	!     DIGITAL assumes no responsibility for the use or reliability
;	  0025	!     of  its  software  on  equipment  which  is  not supplied by
;	  0026	!     DIGITAL.
;	  0027	!
;	  0028	
;	  0029	!++
;	  0030	! FACILITY: VNP-20
;	  0031	!
;	  0032	! ABSTRACT:
;	  0033	!
;	  0034	!
;	  0035	! THIS MODULE READS A SYMBOL TABLE, EITHER FOR THE KERNEL OR
;	  0036	!  FOR A TASK.
;	  0037	!
;	  0038	!
;	  0039	! ENVIRONMENT: TOPS-20 USER MODE
;	  0040	!
;	  0041	! AUTHOR: J. SAUTER, CREATION DATE: 31-MAY-78
;	  0042	!
;	  0043	! MODIFIED BY:
;	  0044	!
;	  0045	!	Scott G. Robinson, 3-DEC-79 : Version X2.0
;	  0046	!	- Ensure DECnet-10 Compatibility
;	  0047	!
;	  0048	!
;	  0049	!	, : VERSION
;	  0050	! 01	-
;	  0051	!--
;	  0052	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   2
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (1)

;	  0053	!<BLF/PAGE>
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   3
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (2)

;	  0054	!
;	  0055	! TABLE OF CONTENTS:
;	  0056	!
;	  0057	
;	  0058	FORWARD ROUTINE
;	  0059	    RD16,					!READ A 16-BIT WORD
;	  0060	    RDLBBL,					!READ AN OBJECT BLOCK (NON-DOS FMT)
;	  0061	    RSTB : NOVALUE,				!READ SYMBOL TABLE
;	  0062	    GET_BYTE,					!GET AN 8-BIT BYTE FROM FILE
;	  0063	    GET_WORD,					!GET A 16-BIT WORD FROM FILE
;	  0064	    OBJ_GSD : NOVALUE,				!PROCESS GSD OBJECT ENTRY
;	  0065	    OBJ_END_GSD : NOVALUE,			!END OF GSD ENTRIES
;	  0066	    OBJ_EOM : NOVALUE,				!END OF MODULE
;	  0067	    GSD_MNAME : NOVALUE,			!MODULE NAME
;	  0068	    GSD_CNAME : NOVALUE,			!CSECT NAME (INVALID)
;	  0069	    GSD_ISN : NOVALUE,				!INTERNAL SYMBOL NAME (INVALID)
;	  0070	    GSD_TRA : NOVALUE,				!TRANSFER ADDRESS
;	  0071	    SEL_GLOBAL,					!FIND A GLOBAL SYMBOL
;	  0072	    GSD_GSN : NOVALUE,				!GLOBAL SYMBOL
;	  0073	    SEL_PSECT,					!FIND A PSECT
;	  0074	    GSD_PSN : NOVALUE,				!PSECT
;	  0075	    GSD_IDENT : NOVALUE,			!MODULE IDENTIFICATION
;	  0076	    GSD_MAP : NOVALUE,				!MAPPED ARRAY (INVALID)
;	  0077	    OBJ_ISD : NOVALUE,				!INTERNAL SYMBOL (INVALID)
;	  0078	    SYM_VAL,					!RETURN VALUE OF A SYMBOL
;	  0079	    SEL_SYMBOL,					!FIND A SYMBOL BY NAME
;	  0080	    GBL_VAL;					!RETURN VALUE OF A GLOBAL
;	  0081	
;	  0082	!
;	  0083	! INCLUDE FILES:
;	  0084	!
;	  0085	
;	  0086	LIBRARY 'VNPLIB';
;	  0087	
;	  0088	!REQUIRE 'BLOCKH.REQ';				!PREPARE TO DEFINE STORAGE BLOCKS
;	  0089	!REQUIRE 'FILE.REQ';				!DEFINE FILE BLOCK
;	  0090	!REQUIRE 'FILSW.REQ';				!DEFINE FILE SWITCHES
;	  0091	!REQUIRE 'GLOBL.REQ';				!DEFINE GLOBAL BLOCK
;	  0092	!REQUIRE 'MODU.REQ';				!DEFINE MODULE BLOCK
;	  0093	!REQUIRE 'PSECT.REQ';				!DEFINE PSECT BLOCK
;	  0094	!REQUIRE 'BLOCKT.REQ';				!END OF DEFINING STORAGE BLOCKS
;	  0095	!
;	  0096	! MACROS:
;	  0097	!
;	  0098	!	NONE
;	  0099	!
;	  0100	! EQUATED SYMBOLS:
;	  0101	!
;	  0102	
;	  0103	LITERAL
;	  0104	    DEBUG = 0;
;	  0105	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   4
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (2)

;	  0106	!
;	  0107	! OWN STORAGE:
;	  0108	!
;	  0109	!	NONE
;	  0110	!
;	  0111	! EXTERNAL REFERENCES:
;	  0112	!
;	  0113	
;	  0114	EXTERNAL ROUTINE
;	  0115	    OPEN,					!OPEN A FILE
;	  0116	    CLOSE : NOVALUE,				!CLOSE A FILE
;	  0117	    INPUT,					!READ FROM A FILE
;	  0118	    OUTPUT : NOVALUE,				!OUTPUT TO A FILE
;	  0119	    ERROR : NOVALUE,				!SIGNAL PROGRAMMING ERROR
;	  0120	    ERRMSG : NOVALUE,				!ERROR MESSAGE
;	  0121	    GETSTG,					!GET STORAGE
;	  0122	    FRESTG : NOVALUE,				!FREE STORAGE
;	  0123	    PCRLF : NOVALUE,				!PRINT CRLF
;	  0124	    OUTNUM : NOVALUE,				!PRINT A NUMBER
;	  0125	    OUTSTR : NOVALUE,				!PRINT A STRING
;	  0126	    R50TOA : NOVALUE,				!CONVERT RADIX50 TO ASCII
;	  0127	    GETBLK,					!GET A STORAGE BLOCK
;	  0128	    BLD_CHAIN,					!BUILD ONTO A CHAIN
;	  0129	    FND_CHAIN;					!FIND AN ITEM IN A CHAIN
;	  0130	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   5
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (3)

;	  0131	ROUTINE RD16 (CHAN, CHKSUM) = 			!READ A 16-BIT WORD
;	  0132	
;	  0133	!++
;	  0134	! FUNCTIONAL DESCRIPTION:
;	  0135	!
;	  0136	!	READ A 16-BIT WORD, ASSEMBLING IT FROM THE 8-BIT
;	  0137	!	 INPUT STREAM.  MAINTAIN THE CHECKSUM.
;	  0138	!
;	  0139	! FORMAL PARAMETERS:
;	  0140	!
;	  0141	!	CHAN - THE CHANNEL OVER WHICH TO READ THE 8-BIT BYTES
;	  0142	!	CHKSUM - ADDRESS OF THE CHECKSUM CELL
;	  0143	!
;	  0144	! IMPLICIT INPUTS:
;	  0145	!
;	  0146	!	NONE
;	  0147	!
;	  0148	! IMPLICIT OUTPUTS:
;	  0149	!
;	  0150	!	NONE
;	  0151	!
;	  0152	! ROUTINE VALUE:
;	  0153	!
;	  0154	!	THE VALUE OF THE 16-BIT WORD READ, OR -1 IF WE REACHED
;	  0155	!	 END OF FILE ON INPUT.
;	  0156	!
;	  0157	! SIDE EFFECTS
;	  0158	!
;	  0159	!	READS FROM THE INPUT FILE.  MAY REACH EOF.
;	  0160	!
;	  0161	!--
;	  0162	
;	  0163	    BEGIN
;	  0164	
;	  0165	    LOCAL
;	  0166		BYTE1,
;	  0167		BYTE2,
;	  0168		RESULT;
;	  0169	
;	  0170	    IF ((BYTE1 = INPUT (.CHAN)) LSS 0)
;	  0171	    THEN
;	  0172		.BYTE1
;	  0173	    ELSE
;	  0174		BEGIN
;	  0175		.CHKSUM = ..CHKSUM + .BYTE1;
;	  0176	
;	  0177		IF ((BYTE2 = INPUT (.CHAN)) LSS 0)
;	  0178		THEN
;	  0179		    .BYTE2
;	  0180		ELSE
;	  0181		    BEGIN
;	  0182		    .CHKSUM = ..CHKSUM + .BYTE2;
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   6
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (3)

;	  0183		    RESULT = 0;
;	  0184		    RESULT<8, 8> = .BYTE2;		!HIGH-ORDER BYTE
;	  0185		    RESULT<0, 8> = .BYTE1;		!LOW-ORDER BYTE
;	  0186		    .RESULT
;	  0187		    END
;	  0188	
;	  0189		END
;	  0190	
;	  0191	    END;


	TITLE	RSTB
	TWOSEG


	.REQUEST  SYS:B362LB.REL


	EXTERN	OPEN, CLOSE, INPUT, OUTPUT, ERROR, ERRMSG, GETSTG, FRESTG, PCRLF, OUTNUM, OUTSTR, R50TOA
	EXTERN	GETBLK, BLD_CHAIN, FND_CHAIN


AC0=	0
AC1=	1
AC2=	2
AC3=	3
AC4=	4
AC5=	5
AC6=	6
AC7=	7
AC10=	10
AC11=	11
AC12=	12
AC13=	13
AC14=	14
FP=	15
AC16=	16
SP=	17


	RELOC	400000				;					400000'
RD16:	PUSH	SP,AC0				; SP,AC0				400000' 261 17 0 00 000000		0131
	PUSH	SP,AC10				; SP,AC10				400001' 261 17 0 00 000010
	PUSH	SP,-4(SP)			; SP,CHAN				400002' 261 17 0 17 777774		0170
	PUSHJ	SP,INPUT			; SP,INPUT				400003' 260 17 0 00 000000*
	MOVE	AC0,AC1				; BYTE1,AC1				400004' 200 00 0 00 000001
	ADJSP	SP,-1				; SP,-1					400005' 105 17 0 00 777777
	JUMPGE	AC0,L.1				; BYTE1,L.1				400006' 325 00 0 00 400011'
	MOVE	AC1,AC0				; AC1,BYTE1				400007' 200 01 0 00 000000
	JRST	L.3				; L.3					400010' 254 00 0 00 400026'
L.1:	MOVE	AC10,-3(SP)			; AC10,CHKSUM				400011' 200 10 0 17 777775		0175
	ADDM	AC0,0(AC10)			; BYTE1,0(AC10)				400012' 272 00 0 10 000000
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   7
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (3)

	PUSH	SP,-4(SP)			; SP,CHAN				400013' 261 17 0 17 777774		0177
	PUSHJ	SP,INPUT			; SP,INPUT				400014' 260 17 0 00 000000*
	MOVE	AC2,AC1				; BYTE2,AC1				400015' 200 02 0 00 000001
	ADJSP	SP,-1				; SP,-1					400016' 105 17 0 00 777777
	JUMPGE	AC2,L.2				; BYTE2,L.2				400017' 325 02 0 00 400022'
	MOVE	AC1,AC2				; AC1,BYTE2				400020' 200 01 0 00 000002
	JRST	L.3				; L.3					400021' 254 00 0 00 400026'
L.2:	ADDM	AC2,0(AC10)			; BYTE2,0(AC10)				400022' 272 02 0 10 000000		0182
	SETZ	AC1,				; RESULT,				400023' 400 01 0 00 000000		0183
	DPB	AC2,C.1				; BYTE2,[POINT 8,RESULT,27]  <8,8>	400024' 137 02 0 00 400031'		0184
	DPB	AC0,C.2				; BYTE1,[POINT 8,RESULT,35]  <0,8>	400025' 137 00 0 00 400032'		0185
L.3:	POP	SP,AC10				; SP,AC10				400026' 262 17 0 00 000010		0131
	POP	SP,AC0				; SP,AC0				400027' 262 17 0 00 000000
	POPJ	SP,				; SP,					400030' 263 17 0 00 000000
C.1:	POINT	8,AC1,27			; 8,RESULT,27				400031' 10 10 0 00 000001
C.2:	POINT	8,AC1,35			; 8,RESULT,35				400032' 00 10 0 00 000001

; Routine Size:  27 words


;	  0192	!
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   8
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (4)

;	  0193	ROUTINE RDLBBL (CHAN, FILE_PTR, BYTES_READ) = 	!READ A LIBRARY BLOCK
;	  0194	
;	  0195	!++
;	  0196	! FUNCTIONAL DESCRIPTION:
;	  0197	!
;	  0198	!	READ A BLOCK OF DATA FROM THE LIBRARY FILE.  THIS BLOCK
;	  0199	!	 STARTS WITH A COUNT WORD FOLLOWED BY "COUNT" DATA WORDS.
;	  0200	!	 THE DATA WORDS COMPRISE OBJECT TEXT WHICH MAY CONTAIN
;	  0201	!	 SEVERAL RECORDS.
;	  0202	!	THIS FORMAT IS ALSO USED FOR OBJECT FILES WITHOUT THE "DOS"
;	  0203	!	 SWITCH.
;	  0204	!
;	  0205	! FORMAL PARAMETERS:
;	  0206	!
;	  0207	!	CHAN - THE CHANNEL OVER WHICH TO READ DATA.  IT MUST HAVE
;	  0208	!	 BEEN OPENED IN WORD MODE.
;	  0209	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR
;	  0210	!	 ERROR MESSAGES.
;	  0211	!	BYTES_READ - SET TO THE NUMBER OF BYTES READ FROM THE INPUT
;	  0212	!	 CHANNEL.
;	  0213	!
;	  0214	! IMPLICIT INPUTS:
;	  0215	!
;	  0216	!	NONE
;	  0217	!
;	  0218	! IMPLICIT OUTPUTS:
;	  0219	!
;	  0220	!	NONE
;	  0221	!
;	  0222	! ROUTINE VALUE:
;	  0223	!
;	  0224	!	A POINTER TO A VECTOR.  THE FIRST WORD OF THE VECTOR HAS
;	  0225	!	 ITS LENGTH IN WORDS.  THE SECOND HAS THE LENGTH OF DATA IN
;	  0226	!	 BYTES.  SUBSEQUENT WORDS ARE THE DATA READ, SUITABLE
;	  0227	!	 FOR SCANNING 8 BITS AT A TIME USING CH$A_RCHAR.  IT IS
;	  0228	!	 THE CALLER'S RESPONSIBILITY TO FREE THIS VECTOR BY CALLING
;	  0229	!	 FRESTG.
;	  0230	!	IF WE REACH EOF, -1 IS RETURNED.  IF STORAGE IS NOT AVAILABLE,
;	  0231	!	 0 IS RETURNED.  AN INVALID FORMAT ALSO RETURNS -1.
;	  0232	!
;	  0233	! SIDE EFFECTS
;	  0234	!
;	  0235	!	READS DATA FROM THE INPUT CHANNEL.  MAY GET EOF.
;	  0236	!	OBTAINS STORAGE FROM THE FREE LIST.
;	  0237	!	 WILL RETURN IT ON ERROR.
;	  0238	!
;	  0239	!--
;	  0240	
;	  0241	    BEGIN
;	  0242	
;	  0243	    BIND
;	  0244		ROUTINE_NAME = UPLIT (%ASCIZ'READ_LIBRARY_BLOCK');
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page   9
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (4)

;	  0245	
;	  0246	    MAP
;	  0247		FILE_PTR : REF FILE_BLOCK;
;	  0248	
;	  0249	    LOCAL
;	  0250		BLKPTR,
;	  0251		BYTE1,
;	  0252		CHKSUM,
;	  0253		COUNT,
;	  0254		OUTLEN,
;	  0255		RESULT : REF VECTOR;
;	  0256	
;	  0257	    RESULT = 0;
;	  0258	    .BYTES_READ = 0;
;	  0259	    OUTLEN = 0;
;	  0260	
;	  0261	    WHILE (.OUTLEN EQL 0) DO
;	  0262		BEGIN
;	  0263		OUTLEN = RD16 (.CHAN, CHKSUM);
;	  0264		.BYTES_READ = ..BYTES_READ + 2;
;	  0265		END;
;	  0266	
;	  0267	    IF ((.OUTLEN LSS 2) OR (.OUTLEN GTR 128))
;	  0268	    THEN
;	  0269		BEGIN
;	  0270	
;	  0271		IF (.OUTLEN NEQ -1) THEN ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0272	
;	  0273		RESULT = -1;
;	  0274		END
;	  0275	    ELSE
;	  0276		BEGIN
;	  0277	
;	  0278		IF ((RESULT = GETSTG ((((.OUTLEN)/4) + 3))) LEQ 0)
;	  0279		THEN
;	  0280		    BEGIN
;	  0281		    ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0);
;	  0282		    END
;	  0283		ELSE
;	  0284		    BEGIN
;	  0285		    RESULT [0] = (((.OUTLEN)/4) + 3);	!AMOUNT TO FREE
;	  0286		    RESULT [1] = .OUTLEN;		!NUMBER OF BYTES
;	  0287		    BLKPTR = CH$PTR (RESULT [2], -1, 8);
;	  0288		    COUNT = 0;
;	  0289	
;	  0290		    WHILE (((COUNT = .COUNT + 1) LEQ .OUTLEN) AND (.BYTE1 GEQ 0)) DO
;	  0291			BEGIN
;	  0292			BYTE1 = INPUT (.CHAN);
;	  0293			.BYTES_READ = ..BYTES_READ + 1;
;	  0294	
;	  0295			IF (.BYTE1 GEQ 0) THEN CH$A_WCHAR (.BYTE1, BLKPTR);
;	  0296	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  10
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (4)

;	  0297			END;
;	  0298	
;	  0299		    IF (.BYTE1 LSS 0)
;	  0300		    THEN
;	  0301			BEGIN
;	  0302			ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0303			FRESTG (.RESULT, .RESULT [0]);
;	  0304			RESULT = -1;
;	  0305			END;
;	  0306	
;	  0307		    END;
;	  0308	
;	  0309		END;
;	  0310	
;	  0311	    .RESULT
;	  0312	    END;					!OF RDLBBL


P.AAA:	BYTE	(7)"R","E","A","D","_"		; READ_					400033' 122 105 101 104 137
	BYTE	(7)"L","I","B","R","A"		; LIBRA					400034' 114 111 102 122 101
	BYTE	(7)"R","Y","_","B","L"		; RY_BL					400035' 122 131 137 102 114
	BYTE	(7)"O","C","K",000,000		; OCK					400036' 117 103 113 000 000


ROUTINE_NAME=	    P.AAA			;						000000	400033'


RDLBBL: PUSH	SP,AC0				; SP,AC0				400037' 261 17 0 00 000000		0193
	PUSH	SP,AC10				; SP,AC10				400040' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				400041' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				400042' 261 17 0 00 000012
	ADJSP	SP,1				; SP,1					400043' 105 17 0 00 000001
	SETZ	AC11,				; RESULT,				400044' 400 11 0 00 000000		0257
	MOVE	AC10,-6(SP)			; AC10,BYTES_READ			400045' 200 10 0 17 777772		0258
	SETZB	AC0,0(AC10)			; OUTLEN,0(AC10)			400046' 403 00 0 10 000000
L.4:	JUMPN	AC0,L.5				; OUTLEN,L.5				400047' 326 00 0 00 400061'		0261
	PUSH	SP,-10(SP)			; SP,CHAN				400050' 261 17 0 17 777770		0263
	MOVEI	AC1,-1(SP)			; AC1,CHKSUM				400051' 201 01 0 17 777777
	PUSH	SP,AC1				; SP,AC1				400052' 261 17 0 00 000001
	PUSHJ	SP,RD16				; SP,RD16				400053' 260 17 0 00 400000'
	MOVE	AC0,AC1				; OUTLEN,AC1				400054' 200 00 0 00 000001
	MOVEI	AC1,2				; AC1,2					400055' 201 01 0 00 000002		0264
	ADDM	AC1,0(AC10)			; AC1,0(AC10)				400056' 272 01 0 10 000000
	ADJSP	SP,-2				; SP,-2					400057' 105 17 0 00 777776		0262
	JRST	L.4				; L.4					400060' 254 00 0 00 400047'		0261
L.5:	CAIGE	AC0,2				; OUTLEN,2				400061' 305 00 0 00 000002		0267
	JRST	L.6				; L.6					400062' 254 00 0 00 400065'
	CAIG	AC0,200				; OUTLEN,200				400063' 307 00 0 00 000200
	JRST	L.8				; L.8					400064' 254 00 0 00 400104'
L.6:	CAMN	AC0,C.3				; OUTLEN,[-1]				400065' 316 00 0 00 400202'		0271
	JRST	L.7				; L.7					400066' 254 00 0 00 400102'
	PUSH	SP,C.4				; SP,[0]				400067' 261 17 0 00 400203'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  11
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (4)

	PUSH	SP,C.5				; SP,[12]				400070' 261 17 0 00 400204'
	PUSH	SP,C.6				; SP,[0,,ROUTINE_NAME]			400071' 261 17 0 00 400205'
	MOVE	AC1,-12(SP)			; AC1,FILE_PTR				400072' 200 01 0 17 777766
	ADDI	AC1,2				; AC1,2					400073' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				400074' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				400075' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400076' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400077' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400100' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					400101' 105 17 0 00 777771
L.7:	SETO	AC11,				; RESULT,				400102' 474 11 0 00 000000		0273
	JRST	L.13				; L.13					400103' 254 00 0 00 400173'		0267
L.8:	MOVE	AC1,AC0				; AC1,OUTLEN				400104' 200 01 0 00 000000		0278
	IDIVI	AC1,4				; AC1,4					400105' 231 01 0 00 000004
	MOVE	AC10,AC1			; AC10,AC1				400106' 200 10 0 00 000001
	ADDI	AC10,3				; AC10,3				400107' 271 10 0 00 000003
	PUSH	SP,AC10				; SP,AC10				400110' 261 17 0 00 000010
	PUSHJ	SP,GETSTG			; SP,GETSTG				400111' 260 17 0 00 000000*
	MOVE	AC11,AC1			; RESULT,AC1				400112' 200 11 0 00 000001
	ADJSP	SP,-1				; SP,-1					400113' 105 17 0 00 777777
	JUMPG	AC11,L.9			; RESULT,L.9				400114' 327 11 0 00 400127'
	PUSH	SP,C.4				; SP,[0]				400115' 261 17 0 00 400203'		0281
	PUSH	SP,C.7				; SP,[1]				400116' 261 17 0 00 400206'
	PUSH	SP,C.6				; SP,[0,,ROUTINE_NAME]			400117' 261 17 0 00 400205'
	PUSH	SP,C.4				; SP,[0]				400120' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400121' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400122' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400123' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400124' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					400125' 105 17 0 00 777771		0280
	JRST	L.13				; L.13					400126' 254 00 0 00 400173'		0278
L.9:	MOVEM	AC10,0(AC11)			; AC10,0(RESULT)			400127' 202 10 0 11 000000		0285
	MOVEM	AC0,1(AC11)			; OUTLEN,1(RESULT)			400130' 202 00 0 11 000001		0286
	MOVEI	AC1,1(AC11)			; AC1,1(RESULT)				400131' 201 01 0 11 000001		0287
	HRLI	AC1,141000			; AC1,141000				400132' 505 01 0 00 141000
	MOVE	AC12,AC1			; BLKPTR,AC1				400133' 200 12 0 00 000001
	SETZ	AC10,				; COUNT,				400134' 400 10 0 00 000000		0288
L.10:	ADDI	AC10,1				; COUNT,1				400135' 271 10 0 00 000001		0290
	CAMLE	AC10,AC0			; COUNT,OUTLEN				400136' 313 10 0 00 000000
	JRST	L.12				; L.12					400137' 254 00 0 00 400153'
	JUMPL	AC1,L.12			; BYTE1,L.12				400140' 321 01 0 00 400153'
	PUSH	SP,-10(SP)			; SP,CHAN				400141' 261 17 0 17 777770		0292
	PUSHJ	SP,INPUT			; SP,INPUT				400142' 260 17 0 00 000000*
	MOVE	AC2,-7(SP)			; AC2,BYTES_READ			400143' 200 02 0 17 777771		0293
	AOS	0(AC2)				; 0(AC2)				400144' 350 00 0 02 000000
	JUMPL	AC1,L.11			; BYTE1,L.11				400145' 321 01 0 00 400151'		0295
	IBP	AC12				; BLKPTR				400146' 133 00 0 00 000012
	MOVE	AC2,AC12			; AC2,BLKPTR				400147' 200 02 0 00 000012
	IDPB	AC1,AC2				; BYTE1,AC2				400150' 136 01 0 00 000002
L.11:	ADJSP	SP,-1				; SP,-1					400151' 105 17 0 00 777777		0291
	JRST	L.10				; L.10					400152' 254 00 0 00 400135'		0290
L.12:	JUMPGE	AC1,L.13			; BYTE1,L.13				400153' 325 01 0 00 400173'		0299
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  12
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (4)

	PUSH	SP,C.4				; SP,[0]				400154' 261 17 0 00 400203'		0302
	PUSH	SP,C.5				; SP,[12]				400155' 261 17 0 00 400204'
	PUSH	SP,C.6				; SP,[0,,ROUTINE_NAME]			400156' 261 17 0 00 400205'
	MOVE	AC0,-12(SP)			; AC0,FILE_PTR				400157' 200 00 0 17 777766
	ADDI	AC0,2				; AC0,2					400160' 271 00 0 00 000002
	PUSH	SP,AC0				; SP,AC0				400161' 261 17 0 00 000000
	PUSH	SP,C.4				; SP,[0]				400162' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400163' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400164' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400165' 260 17 0 00 000000*
	MOVEM	AC11,0(SP)			; RESULT,0(SP)				400166' 202 11 0 17 000000		0303
	PUSH	SP,0(AC11)			; SP,0(RESULT)				400167' 261 17 0 11 000000
	PUSHJ	SP,FRESTG			; SP,FRESTG				400170' 260 17 0 00 000000*
	SETO	AC11,				; RESULT,				400171' 474 11 0 00 000000		0304
	ADJSP	SP,-10				; SP,-10				400172' 105 17 0 00 777770		0301
L.13:	MOVE	AC1,AC11			; AC1,RESULT				400173' 200 01 0 00 000011		0193
	ADJSP	SP,-1				; SP,-1					400174' 105 17 0 00 777777
	POP	SP,AC12				; SP,AC12				400175' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				400176' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				400177' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				400200' 262 17 0 00 000000
	POPJ	SP,				; SP,					400201' 263 17 0 00 000000
C.3:	EXP	-1				; -1					400202' 777777	777777
C.4:	EXP	0				; 0					400203' 000000	000000
C.5:	EXP	12				; 12					400204' 000000	000012
C.6:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			400205' 000000	400033'
C.7:	EXP	1				; 1					400206' 000000	000001

; Routine Size:  104 words


;	  0313	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  13
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (5)

;	  0314	GLOBAL ROUTINE RSTB (FILE_CHAN, FILE_PTR) : NOVALUE = 	!READ SYMBOL TABLE
;	  0315	
;	  0316	!++
;	  0317	! FUNCTIONAL DESCRIPTION:
;	  0318	!
;	  0319	!	READ A SYMBOL TABLE FOR A TASK OR SYSTEM IMAGE
;	  0320	!
;	  0321	! FORMAL PARAMETERS:
;	  0322	!
;	  0323	!	FILE_CHAN - THE CHANNEL NUMBER TO USE WHEN READING THE FILE.
;	  0324	!	FILE_PTR - POINTER TO THE FILE BLOCK WHICH DESCRIBES
;	  0325	!		THE SYMBOL TABLE FILE TO BE READ
;	  0326	!
;	  0327	! IMPLICIT INPUTS:
;	  0328	!
;	  0329	!	NONE
;	  0330	!
;	  0331	! IMPLICIT OUTPUTS:
;	  0332	!
;	  0333	!	GETS SPACE FROM FREE STORAGE TO HOLD THE SYMBOLS
;	  0334	!
;	  0335	! ROUTINE VALUE:
;	  0336	!
;	  0337	!	POINTER TO THE CHAIN BLOCK WHICH POINTS TO THE SYMBOLS
;	  0338	!
;	  0339	! SIDE EFFECTS
;	  0340	!
;	  0341	!	READS THE SYMBOL TABLE FILE
;	  0342	!
;	  0343	!--
;	  0344	
;	  0345	    BEGIN
;	  0346	
;	  0347	    BIND
;	  0348		ROUTINE_NAME = UPLIT (%ASCIZ'READ_SYMBOL_TABLE');
;	  0349	
;	  0350	    MAP
;	  0351		FILE_PTR : REF FILE_BLOCK;
;	  0352	
;	  0353	    LOCAL
;	  0354		ASCVAL : VECTOR [CH$ALLOCATION (LEN_PSECT_NAME)],
;	  0355		BLKPTR : REF VECTOR,
;	  0356		BYTECTR,
;	  0357		BYTEPTR,
;	  0358		BYTES_READ,
;	  0359		CHAR,
;	  0360		COUNTER,
;	  0361		POINTER,
;	  0362		PREV_CHAR : VECTOR [3],
;	  0363		R50VAL,
;	  0364		READ_DONE,
;	  0365		RECORD_TYPE;
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  14
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (5)

;	  0366	
;	  0367	    IF (OPEN (.FILE_CHAN, FILE_PTR [FILE_NAME], 2, 0, UPLIT (%ASCIZ'STB')) NEQ 0)
;	  0368	    THEN
;	  0369		BEGIN					!SUCCESSFUL INPUT OPEN
;	  0370		READ_DONE = 0;
;	  0371	
;	  0372		DO
;	  0373		    BEGIN
;	  0374		    BLKPTR = RDLBBL (.FILE_CHAN, .FILE_PTR, BYTES_READ);
;	  0375	
;	  0376		    IF (.BLKPTR LEQ 0)
;	  0377		    THEN
;	  0378			BEGIN
;	  0379			ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0380			READ_DONE = -1;
;	  0381			END
;	  0382		    ELSE
;	  0383			BEGIN
;	  0384			BYTEPTR = CH$PTR (BLKPTR [2], -1, 8);
;	  0385			BYTECTR = .BLKPTR [1];
;	  0386	
;	  0387			IF (DEBUG GEQ 2)
;	  0388			THEN
;	  0389			    BEGIN
;	  0390			    PCRLF (1);
;	  0391			    OUTNUM (1, .BYTECTR, 10, 0);
;	  0392			    COUNTER = .BYTECTR;
;	  0393			    POINTER = .BYTEPTR;
;	  0394			    PREV_CHAR [0] = 0;
;	  0395			    PREV_CHAR [1] = 0;
;	  0396			    PREV_CHAR [2] = 0;
;	  0397			    R50VAL = 0;
;	  0398	
;	  0399			    WHILE ((COUNTER = .COUNTER - 1) GEQ 0) DO
;	  0400				BEGIN
;	  0401				CHAR = CH$A_RCHAR (POINTER);
;	  0402				PCRLF (1);
;	  0403				OUTSTR (1, UPLIT (%ASCIZ'    '));
;	  0404				OUTNUM (1, .CHAR, 8, 0);
;	  0405				OUTPUT (1, %O'11');
;	  0406				R50VAL<24, 8> = .PREV_CHAR [1];
;	  0407				R50VAL<16, 8> = .PREV_CHAR [0];
;	  0408				R50VAL<8, 8> = .CHAR;
;	  0409				R50VAL<0, 8> = .PREV_CHAR [2];
;	  0410				R50TOA (.R50VAL, ASCVAL [0]);
;	  0411				OUTSTR (1, ASCVAL [0]);
;	  0412				PREV_CHAR [0] = .PREV_CHAR [1];
;	  0413				PREV_CHAR [1] = .PREV_CHAR [2];
;	  0414				PREV_CHAR [2] = .CHAR;
;	  0415				END;
;	  0416	
;	  0417			    END;			!DEBUG
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  15
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (5)

;	  0418	
;	  0419			RECORD_TYPE = GET_BYTE (BYTEPTR, BYTECTR, .FILE_PTR);
;	  0420	
;	  0421			CASE .RECORD_TYPE FROM 1 TO 6 OF
;	  0422			    SET
;	  0423	
;	  0424			    [1] :
;	  0425				OBJ_GSD (BYTEPTR, BYTECTR, .FILE_PTR);	!GSD
;	  0426	
;	  0427			    [2] :
;	  0428				OBJ_END_GSD (BYTEPTR, BYTECTR, .FILE_PTR);	!END OF GSD
;	  0429	
;	  0430			    [5] :
;	  0431				OBJ_ISD (BYTEPTR, BYTECTR, .FILE_PTR);	!INTERNAL SYMBOL DIRECTORY
;	  0432	
;	  0433			    [6] :
;	  0434				BEGIN
;	  0435				OBJ_EOM (BYTEPTR, BYTECTR, .FILE_PTR);	!END OF MODULE
;	  0436				READ_DONE = -1;
;	  0437				END;
;	  0438	
;	  0439			    [3, 4, OUTRANGE] :
;	  0440				BEGIN
;	  0441				ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0442				READ_DONE = -1;
;	  0443				END;
;	  0444			    TES;
;	  0445	
;	  0446			FRESTG (.BLKPTR, .BLKPTR [0]);
;	  0447			END
;	  0448	
;	  0449		    END
;	  0450		UNTIL (.READ_DONE NEQ 0);
;	  0451	
;	  0452		CLOSE (.FILE_CHAN);
;	  0453		END;					!OF SUCCESSFUL INPUT OPEN
;	  0454	
;	  0455	    END;					!OF READ_FILE


P.AAB:	BYTE	(7)"R","E","A","D","_"		; READ_					400207' 122 105 101 104 137
	BYTE	(7)"S","Y","M","B","O"		; SYMBO					400210' 123 131 115 102 117
	BYTE	(7)"L","_","T","A","B"		; L_TAB					400211' 114 137 124 101 102
	BYTE	(7)"L","E",000,000,000		; LE					400212' 114 105 000 000 000
P.AAC:	BYTE	(7)"S","T","B",000,000		; STB					400213' 123 124 102 000 000
P.AAD:	BYTE	(7)" "," "," "," ",000		;					400214' 040 040 040 040 000


ROUTINE_NAME=	    P.AAB			;						000000	400207'


RSTB::	PUSH	SP,AC0				; SP,AC0				400215' 261 17 0 00 000000		0314
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  16
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (5)

	PUSH	SP,AC10				; SP,AC10				400216' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				400217' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				400220' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				400221' 261 17 0 00 000013
	ADJSP	SP,10				; SP,10					400222' 105 17 0 00 000010
	PUSH	SP,-17(SP)			; SP,FILE_CHAN				400223' 261 17 0 17 777761		0367
	MOVE	AC11,-17(SP)			; AC11,FILE_PTR				400224' 200 11 0 17 777761
	MOVE	AC12,AC11			; AC12,AC11				400225' 200 12 0 00 000011
	ADDI	AC12,2				; AC12,2				400226' 271 12 0 00 000002
	PUSH	SP,AC12				; SP,AC12				400227' 261 17 0 00 000012
	PUSH	SP,C.8				; SP,[2]				400230' 261 17 0 00 400376'
	PUSH	SP,C.4				; SP,[0]				400231' 261 17 0 00 400203'
	PUSH	SP,C.9				; SP,[0,,P.AAC]				400232' 261 17 0 00 400377'
	PUSHJ	SP,OPEN				; SP,OPEN				400233' 260 17 0 00 000000*
	ADJSP	SP,-5				; SP,-5					400234' 105 17 0 00 777773
	JUMPE	AC1,L.24			; AC1,L.24				400235' 322 01 0 00 400367'
	SETZ	AC0,				; READ_DONE,				400236' 400 00 0 00 000000		0370
L.14:	PUSH	SP,-17(SP)			; SP,FILE_CHAN				400237' 261 17 0 17 777761		0374
	PUSH	SP,AC11				; SP,AC11				400240' 261 17 0 00 000011
	MOVEI	AC1,-4(SP)			; AC1,BYTES_READ			400241' 201 01 0 17 777774
	PUSH	SP,AC1				; SP,AC1				400242' 261 17 0 00 000001
	PUSHJ	SP,RDLBBL			; SP,RDLBBL				400243' 260 17 0 00 400037'
	MOVE	AC10,AC1			; BLKPTR,AC1				400244' 200 10 0 00 000001
	JUMPG	AC10,L.15			; BLKPTR,L.15				400245' 327 10 0 00 400260'		0376
	SETZM	0(SP)				; 0(SP)					400246' 402 00 0 17 000000		0379
	PUSH	SP,C.5				; SP,[12]				400247' 261 17 0 00 400204'
	PUSH	SP,C.10				; SP,[0,,ROUTINE_NAME]			400250' 261 17 0 00 400400'
	PUSH	SP,AC12				; SP,AC12				400251' 261 17 0 00 000012
	PUSH	SP,C.4				; SP,[0]				400252' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400253' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400254' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400255' 260 17 0 00 000000*
	SETO	AC0,				; READ_DONE,				400256' 474 00 0 00 000000		0380
	JRST	L.23				; L.23					400257' 254 00 0 00 400362'		0376
L.15:	MOVEI	AC1,1(AC10)			; AC1,1(BLKPTR)				400260' 201 01 0 10 000001		0384
	HRLI	AC1,141000			; AC1,141000				400261' 505 01 0 00 141000
	MOVEM	AC1,-4(SP)			; AC1,BYTEPTR				400262' 202 01 0 17 777774
	MOVE	AC1,1(AC10)			; AC1,1(BLKPTR)				400263' 200 01 0 10 000001		0385
	MOVEM	AC1,-3(SP)			; AC1,BYTECTR				400264' 202 01 0 17 777775
	MOVEI	AC1,-4(SP)			; AC1,BYTEPTR				400265' 201 01 0 17 777774		0419
	PUSH	SP,AC1				; SP,AC1				400266' 261 17 0 00 000001
	MOVEI	AC1,-4(SP)			; AC1,BYTECTR				400267' 201 01 0 17 777774
	PUSH	SP,AC1				; SP,AC1				400270' 261 17 0 00 000001
	PUSH	SP,AC11				; SP,AC11				400271' 261 17 0 00 000011
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400272' 260 17 0 00 000000V
	MOVE	AC13,AC1			; RECORD_TYPE,AC1			400273' 200 13 0 00 000001
	MOVE	AC1,AC13			; AC1,RECORD_TYPE			400274' 200 01 0 00 000013		0421
	SOJL	AC1,L.17			; AC1,L.17				400275' 361 01 0 00 400307'
	CAIGE	AC1,6				; AC1,6					400276' 305 01 0 00 000006
	JRST	L.16(AC1)			; L.16(AC1)				400277' 254 00 0 01 400301'
	JRST	L.17				; L.17					400300' 254 00 0 00 400307'
L.16:	JRST	L.18				; L.18					400301' 254 00 0 00 400322'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  17
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (5)

	JRST	L.19				; L.19					400302' 254 00 0 00 400331'
	JRST	L.17				; L.17					400303' 254 00 0 00 400307'
	JRST	L.17				; L.17					400304' 254 00 0 00 400307'
	JRST	L.20				; L.20					400305' 254 00 0 00 400340'
	JRST	L.21				; L.21					400306' 254 00 0 00 400347'
L.17:	SETZM	0(SP)				; 0(SP)					400307' 402 00 0 17 000000		0441
	PUSH	SP,C.5				; SP,[12]				400310' 261 17 0 00 400204'
	PUSH	SP,C.10				; SP,[0,,ROUTINE_NAME]			400311' 261 17 0 00 400400'
	PUSH	SP,AC12				; SP,AC12				400312' 261 17 0 00 000012
	PUSH	SP,C.4				; SP,[0]				400313' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400314' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400315' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400316' 260 17 0 00 000000*
	SETO	AC0,				; READ_DONE,				400317' 474 00 0 00 000000		0442
	ADJSP	SP,-3				; SP,-3					400320' 105 17 0 00 777775		0440
	JRST	L.22				; L.22					400321' 254 00 0 00 400356'		0421
L.18:	MOVEI	AC1,-7(SP)			; AC1,BYTEPTR				400322' 201 01 0 17 777771		0425
	PUSH	SP,AC1				; SP,AC1				400323' 261 17 0 00 000001
	MOVEI	AC1,-7(SP)			; AC1,BYTECTR				400324' 201 01 0 17 777771
	PUSH	SP,AC1				; SP,AC1				400325' 261 17 0 00 000001
	PUSH	SP,AC11				; SP,AC11				400326' 261 17 0 00 000011
	PUSHJ	SP,OBJ_GSD			; SP,OBJ_GSD				400327' 260 17 0 00 000000V
	JRST	L.22				; L.22					400330' 254 00 0 00 400356'		0421
L.19:	MOVEI	AC1,-7(SP)			; AC1,BYTEPTR				400331' 201 01 0 17 777771		0428
	PUSH	SP,AC1				; SP,AC1				400332' 261 17 0 00 000001
	MOVEI	AC1,-7(SP)			; AC1,BYTECTR				400333' 201 01 0 17 777771
	PUSH	SP,AC1				; SP,AC1				400334' 261 17 0 00 000001
	PUSH	SP,AC11				; SP,AC11				400335' 261 17 0 00 000011
	PUSHJ	SP,OBJ_END_GSD			; SP,OBJ_END_GSD			400336' 260 17 0 00 000000V
	JRST	L.22				; L.22					400337' 254 00 0 00 400356'		0421
L.20:	MOVEI	AC1,-7(SP)			; AC1,BYTEPTR				400340' 201 01 0 17 777771		0431
	PUSH	SP,AC1				; SP,AC1				400341' 261 17 0 00 000001
	MOVEI	AC1,-7(SP)			; AC1,BYTECTR				400342' 201 01 0 17 777771
	PUSH	SP,AC1				; SP,AC1				400343' 261 17 0 00 000001
	PUSH	SP,AC11				; SP,AC11				400344' 261 17 0 00 000011
	PUSHJ	SP,OBJ_ISD			; SP,OBJ_ISD				400345' 260 17 0 00 000000V
	JRST	L.22				; L.22					400346' 254 00 0 00 400356'		0421
L.21:	MOVEI	AC1,-7(SP)			; AC1,BYTEPTR				400347' 201 01 0 17 777771		0435
	PUSH	SP,AC1				; SP,AC1				400350' 261 17 0 00 000001
	MOVEI	AC1,-7(SP)			; AC1,BYTECTR				400351' 201 01 0 17 777771
	PUSH	SP,AC1				; SP,AC1				400352' 261 17 0 00 000001
	PUSH	SP,AC11				; SP,AC11				400353' 261 17 0 00 000011
	PUSHJ	SP,OBJ_EOM			; SP,OBJ_EOM				400354' 260 17 0 00 000000V
	SETO	AC0,				; READ_DONE,				400355' 474 00 0 00 000000		0436
L.22:	MOVEM	AC10,0(SP)			; BLKPTR,0(SP)				400356' 202 10 0 17 000000		0446
	PUSH	SP,0(AC10)			; SP,0(BLKPTR)				400357' 261 17 0 10 000000
	PUSHJ	SP,FRESTG			; SP,FRESTG				400360' 260 17 0 00 000000*
	ADJSP	SP,-1				; SP,-1					400361' 105 17 0 00 777777		0383
L.23:	ADJSP	SP,-11				; SP,-11				400362' 105 17 0 00 777767		0373
	JUMPE	AC0,L.14			; READ_DONE,L.14			400363' 322 00 0 00 400237'		0450
	PUSH	SP,-17(SP)			; SP,FILE_CHAN				400364' 261 17 0 17 777761		0452
	PUSHJ	SP,CLOSE			; SP,CLOSE				400365' 260 17 0 00 000000*
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  18
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (5)

	ADJSP	SP,-1				; SP,-1					400366' 105 17 0 00 777777		0369
L.24:	ADJSP	SP,-10				; SP,-10				400367' 105 17 0 00 777770		0314
	POP	SP,AC13				; SP,AC13				400370' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				400371' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				400372' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				400373' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				400374' 262 17 0 00 000000
	POPJ	SP,				; SP,					400375' 263 17 0 00 000000
C.8:	EXP	2				; 2					400376' 000000	000002
C.9:	XWD	0,P.AAC				; 0,P.AAC				400377' 000000	400213'
C.10:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			400400' 000000	400207'

; Routine Size:  116 words


;	  0456	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  19
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (6)

;	  0457	ROUTINE GET_BYTE (BYTEPTR, BYTECTR, FILE_PTR) = 	!GET BYTE
;	  0458	
;	  0459	!++
;	  0460	! FUNCTIONAL DESCRIPTION:
;	  0461	!
;	  0462	!	FETCH A BYTE FROM THE OBJECT RECORD.  MAINTAIN
;	  0463	!	 THE COUNTER AND GIVE AN ERROR MESSAGE IF IT RUNS OUT.
;	  0464	!
;	  0465	! FORMAL PARAMETERS:
;	  0466	!
;	  0467	!	BYTEPTR - POINTER TO THE BYTE POINTER
;	  0468	!	BYTECTR - POINTER TO THE COUNTER CELL
;	  0469	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE FILE
;	  0470	!	 BEING READ, FOR ERROR MESSAGES.
;	  0471	!
;	  0472	! IMPLICIT INPUTS:
;	  0473	!
;	  0474	!	THE OBJECT RECORD POINTED TO
;	  0475	!
;	  0476	! IMPLICIT OUTPUTS:
;	  0477	!
;	  0478	!	NONE
;	  0479	!
;	  0480	! ROUTINE VALUE:
;	  0481	!
;	  0482	!	THE VALUE OF THE BYTE, OR -1 IF WE RAN OFF THE END.
;	  0483	!
;	  0484	! SIDE EFFECTS
;	  0485	!
;	  0486	!	NONE
;	  0487	!
;	  0488	!--
;	  0489	
;	  0490	    BEGIN
;	  0491	
;	  0492	    BIND
;	  0493		ROUTINE_NAME = UPLIT (%ASCIZ'GET_BYTE');
;	  0494	
;	  0495	    MAP
;	  0496		FILE_PTR : REF FILE_BLOCK;
;	  0497	
;	  0498	    IF (..BYTECTR GTR 0)
;	  0499	    THEN
;	  0500		BEGIN
;	  0501		.BYTECTR = ..BYTECTR - 1;
;	  0502		CH$A_RCHAR (.BYTEPTR)
;	  0503		END
;	  0504	    ELSE
;	  0505		BEGIN
;	  0506		ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0507		-1
;	  0508		END
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  20
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (6)

;	  0509	
;	  0510	    END;					!OF GET_BYTE


P.AAE:	BYTE	(7)"G","E","T","_","B"		; GET_B					400401' 107 105 124 137 102
	BYTE	(7)"Y","T","E",000,000		; YTE					400402' 131 124 105 000 000


ROUTINE_NAME=	    P.AAE			;						000000	400401'


GET_BYTE:
	MOVE	AC1,-2(SP)			; AC1,BYTECTR				400403' 200 01 0 17 777776		0498
	SKIPG	0(AC1)				; 0(AC1)				400404' 337 00 0 01 000000
	JRST	L.25				; L.25					400405' 254 00 0 00 400414'
	SOS	0(AC1)				; 0(AC1)				400406' 370 00 0 01 000000		0501
	MOVE	AC1,-3(SP)			; AC1,BYTEPTR				400407' 200 01 0 17 777775		0502
	IBP	0(AC1)				; 0(AC1)				400410' 133 00 0 01 000000
	MOVE	AC1,0(AC1)			; AC1,0(AC1)				400411' 200 01 0 01 000000
	ILDB	AC1,AC1				; AC1,AC1				400412' 134 01 0 00 000001
	POPJ	SP,				; SP,					400413' 263 17 0 00 000000		0498
L.25:	PUSH	SP,C.4				; SP,[0]				400414' 261 17 0 00 400203'		0506
	PUSH	SP,C.5				; SP,[12]				400415' 261 17 0 00 400204'
	PUSH	SP,C.11				; SP,[0,,ROUTINE_NAME]			400416' 261 17 0 00 400431'
	MOVE	AC1,-4(SP)			; AC1,FILE_PTR				400417' 200 01 0 17 777774
	ADDI	AC1,2				; AC1,2					400420' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				400421' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				400422' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400423' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400424' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400425' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					400426' 105 17 0 00 777771		0505
	SETO	AC1,				; AC1,					400427' 474 01 0 00 000000		0498
	POPJ	SP,				; SP,					400430' 263 17 0 00 000000		0457
C.11:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			400431' 000000	400401'

; Routine Size:  23 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  21
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (7)

;	  0511	ROUTINE GET_WORD (BYTEPTR, BYTECTR, FILE_PTR) = 	!GET WORD
;	  0512	
;	  0513	!++
;	  0514	! FUNCTIONAL DESCRIPTION:
;	  0515	!
;	  0516	!	FETCH A WORD FROM THE OBJECT RECORD.  MAINTAIN
;	  0517	!	 THE COUNTER AND GIVE AN ERROR MESSAGE IF IT RUNS OUT.
;	  0518	!
;	  0519	! FORMAL PARAMETERS:
;	  0520	!
;	  0521	!	BYTEPTR - POINTER TO THE BYTE POINTER
;	  0522	!	BYTECTR - POINTER TO THE COUNTER CELL
;	  0523	!	FILE_PTR - POINTER TO FILE BLOCK FOR ERROR MESSAGES
;	  0524	!
;	  0525	! IMPLICIT INPUTS:
;	  0526	!
;	  0527	!	THE OBJECT RECORD POINTED TO
;	  0528	!
;	  0529	! IMPLICIT OUTPUTS:
;	  0530	!
;	  0531	!	NONE
;	  0532	!
;	  0533	! ROUTINE VALUE:
;	  0534	!
;	  0535	!	THE VALUE OF THE WORD, OR -1 IF WE RAN OFF THE END.
;	  0536	!
;	  0537	! SIDE EFFECTS
;	  0538	!
;	  0539	!	NONE
;	  0540	!
;	  0541	!--
;	  0542	
;	  0543	    BEGIN
;	  0544	
;	  0545	    BIND
;	  0546		ROUTINE_NAME = UPLIT (%ASCIZ'GET_WORD');
;	  0547	
;	  0548	    MAP
;	  0549		FILE_PTR : REF FILE_BLOCK;
;	  0550	
;	  0551	    LOCAL
;	  0552		RESULT;
;	  0553	
;	  0554	    IF (..BYTECTR GTR 1)
;	  0555	    THEN
;	  0556		BEGIN
;	  0557		.BYTECTR = ..BYTECTR - 2;
;	  0558		RESULT = CH$A_RCHAR (.BYTEPTR);
;	  0559		RESULT<8, 8> = CH$A_RCHAR (.BYTEPTR);
;	  0560		.RESULT
;	  0561		END
;	  0562	    ELSE
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  22
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (7)

;	  0563		BEGIN
;	  0564		ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0565		-1
;	  0566		END
;	  0567	
;	  0568	    END;					!OF GET_WORD


P.AAF:	BYTE	(7)"G","E","T","_","W"		; GET_W					400432' 107 105 124 137 127
	BYTE	(7)"O","R","D",000,000		; ORD					400433' 117 122 104 000 000


ROUTINE_NAME=	    P.AAF			;						000000	400432'


GET_WORD:
	MOVE	AC1,-2(SP)			; AC1,BYTECTR				400434' 200 01 0 17 777776		0554
	MOVEI	AC2,1				; AC2,1					400435' 201 02 0 00 000001
	CAML	AC2,0(AC1)			; AC2,0(AC1)				400436' 311 02 0 01 000000
	JRST	L.26				; L.26					400437' 254 00 0 00 400453'
	HRROI	AC2,-2				; AC2,-2				400440' 561 02 0 00 777776		0557
	ADDM	AC2,0(AC1)			; AC2,0(AC1)				400441' 272 02 0 01 000000
	MOVE	AC2,-3(SP)			; AC2,BYTEPTR				400442' 200 02 0 17 777775		0558
	IBP	0(AC2)				; 0(AC2)				400443' 133 00 0 02 000000
	MOVE	AC1,0(AC2)			; RESULT,0(AC2)				400444' 200 01 0 02 000000
	ILDB	AC1,AC1				; RESULT,RESULT				400445' 134 01 0 00 000001
	IBP	0(AC2)				; 0(AC2)				400446' 133 00 0 02 000000		0559
	MOVE	AC2,0(AC2)			; AC2,0(AC2)				400447' 200 02 0 02 000000
	ILDB	AC2,AC2				; AC2,AC2				400450' 134 02 0 00 000002
	DPB	AC2,C.1				; AC2,[POINT 8,AC1,27]  <8,8>		400451' 137 02 0 00 400031'
	POPJ	SP,				; SP,					400452' 263 17 0 00 000000		0554
L.26:	PUSH	SP,C.4				; SP,[0]				400453' 261 17 0 00 400203'		0564
	PUSH	SP,C.5				; SP,[12]				400454' 261 17 0 00 400204'
	PUSH	SP,C.12				; SP,[0,,ROUTINE_NAME]			400455' 261 17 0 00 400470'
	MOVE	AC1,-4(SP)			; AC1,FILE_PTR				400456' 200 01 0 17 777774
	ADDI	AC1,2				; AC1,2					400457' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				400460' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				400461' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400462' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400463' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400464' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					400465' 105 17 0 00 777771		0563
	SETO	AC1,				; AC1,					400466' 474 01 0 00 000000		0554
	POPJ	SP,				; SP,					400467' 263 17 0 00 000000		0511
C.12:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			400470' 000000	400432'

; Routine Size:  29 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  23
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (8)

;	  0569	ROUTINE OBJ_GSD (BYTEPTR, BYTECTR, FILE_PTR) : NOVALUE = 	!PROCESS GSD RECORD
;	  0570	
;	  0571	!++
;	  0572	! FUNCTIONAL DESCRIPTION:
;	  0573	!
;	  0574	!	PROCESS A GLOBAL SYMBOL DIRECTORY ENTRY IN THE OBJECT
;	  0575	!	 FILE.  THIS IS DONE BY FETCHING THE PARAMETERS AND THEN
;	  0576	!	 TO A SUBROUTINE TO HANDLE THE ENTRY TYPE.
;	  0577	!
;	  0578	! FORMAL PARAMETERS:
;	  0579	!
;	  0580	!	BYTEPTR - POINTER TO THE BYTE POINTER
;	  0581	!	BYTECTR - POINTER TO THE COUNTER CELL
;	  0582	!	FILE_PTR - POINTER TO THE FILE BLOCK OF THE OBJECT
;	  0583	!	 FILE BEING READ.  THIS IS FOR ERROR MESSAGES AND TO
;	  0584	!	 POINT TO THE DATA READ.
;	  0585	!
;	  0586	! IMPLICIT INPUTS:
;	  0587	!
;	  0588	!	THE OBJECT RECORD POINTED TO
;	  0589	!
;	  0590	! IMPLICIT OUTPUTS:
;	  0591	!
;	  0592	!	NONE
;	  0593	!
;	  0594	! ROUTINE VALUE:
;	  0595	!
;	  0596	!	NONE
;	  0597	!
;	  0598	! SIDE EFFECTS
;	  0599	!
;	  0600	!	IN MANY CASES, THE HANDLERS FOR THE ENTRY TYPES WILL
;	  0601	!	 OBTAIN SPACE FROM THE FREE STORAGE LIST
;	  0602	!
;	  0603	!--
;	  0604	
;	  0605	    BEGIN
;	  0606	
;	  0607	    BIND
;	  0608		ROUTINE_NAME = UPLIT (%ASCIZ'OBJ_GSD');
;	  0609	
;	  0610	    MAP
;	  0611		FILE_PTR : REF FILE_BLOCK;
;	  0612	
;	  0613	    LOCAL
;	  0614		MODU_PTR : REF MODU_BLOCK,
;	  0615		CHAR,
;	  0616		R50VAL,
;	  0617		ASCVAL : VECTOR [CH$ALLOCATION (LEN_PSECT_NAME)],
;	  0618		FLAGS,
;	  0619		ETYPE,
;	  0620		VALUE;
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  24
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (8)

;	  0621	
;	  0622	    IF (DEBUG GEQ 1)
;	  0623	    THEN
;	  0624		BEGIN
;	  0625		PCRLF (1);
;	  0626		OUTPUT (1, %O'11');
;	  0627		OUTSTR (1, UPLIT (%ASCIZ'GSD RECORD, LENGTH = '));
;	  0628		OUTNUM (1, ..BYTECTR, 10, 0);
;	  0629		END;					!DEBUG
;	  0630	
;	  0631	    IF ((MODU_PTR = .FILE_PTR [FILE_MODU]) NEQ 0)
;	  0632	    THEN
;	  0633		BEGIN
;	  0634	
;	  0635		IF ((.MODU_PTR [MODU_FLAG_EGSD] NEQ 0) AND (.MODU_PTR [MODU_FLAG_ENDED] NEQ 0))
;	  0636		THEN
;	  0637		    ERRMSG (0, 10,
;	  0638			ROUTINE_NAME, 0, 0, 0, 0);
;	  0639	
;	  0640		END;
;	  0641	
;	  0642	    CHAR = GET_BYTE (.BYTEPTR, .BYTECTR, .FILE_PTR);	!UNUSED BYTE
;	  0643	
;	  0644	    DO
;	  0645		BEGIN
;	  0646		R50VAL = 0;
;	  0647		R50VAL<16, 16> = GET_WORD (.BYTEPTR, .BYTECTR, .FILE_PTR);
;	  0648		R50VAL<0, 16> = GET_WORD (.BYTEPTR, .BYTECTR, .FILE_PTR);
;	  0649		R50TOA (.R50VAL, ASCVAL [0]);
;	  0650		FLAGS = GET_BYTE (.BYTEPTR, .BYTECTR, .FILE_PTR);
;	  0651		ETYPE = GET_BYTE (.BYTEPTR, .BYTECTR, .FILE_PTR);
;	  0652		VALUE = GET_WORD (.BYTEPTR, .BYTECTR, .FILE_PTR);
;	  0653	
;	  0654		CASE .ETYPE FROM 0 TO 7 OF
;	  0655		    SET
;	  0656	
;	  0657		    [0] :
;	  0658			GSD_MNAME (ASCVAL [0], .FLAGS, .VALUE, .FILE_PTR);
;	  0659	
;	  0660		    [1] :
;	  0661			GSD_CNAME (ASCVAL [0], .FLAGS, .VALUE, .FILE_PTR);
;	  0662	
;	  0663		    [2] :
;	  0664			GSD_ISN (ASCVAL [0], .FLAGS, .VALUE, .FILE_PTR);
;	  0665	
;	  0666		    [3] :
;	  0667			GSD_TRA (ASCVAL [0], .FLAGS, .VALUE, .FILE_PTR);
;	  0668	
;	  0669		    [4] :
;	  0670			GSD_GSN (ASCVAL [0], .FLAGS, .VALUE, .FILE_PTR);
;	  0671	
;	  0672		    [5] :
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  25
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (8)

;	  0673			GSD_PSN (ASCVAL [0], .FLAGS, .VALUE, .FILE_PTR);
;	  0674	
;	  0675		    [6] :
;	  0676			GSD_IDENT (ASCVAL [0], .FLAGS, .VALUE, .FILE_PTR);
;	  0677	
;	  0678		    [7] :
;	  0679			GSD_MAP (ASCVAL [0], .FLAGS, .VALUE, .FILE_PTR);
;	  0680	
;	  0681		    [OUTRANGE] :
;	  0682			ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0683		    TES;
;	  0684	
;	  0685		END
;	  0686	    UNTIL (..BYTECTR EQL 0);
;	  0687	
;	  0688	    END;					!OF OBJ_GSD


P.AAG:	BYTE	(7)"O","B","J","_","G"		; OBJ_G					400471' 117 102 112 137 107
	BYTE	(7)"S","D",000,000,000		; SD					400472' 123 104 000 000 000
P.AAH:	BYTE	(7)"G","S","D"," ","R"		; GSD R					400473' 107 123 104 040 122
	BYTE	(7)"E","C","O","R","D"		; ECORD					400474' 105 103 117 122 104
	BYTE	(7)","," ","L","E","N"		; , LEN					400475' 054 040 114 105 116
	BYTE	(7)"G","T","H"," ","="		; GTH =					400476' 107 124 110 040 075
	BYTE	(7)" ",000,000,000,000		;					400477' 040 000 000 000 000


ROUTINE_NAME=	    P.AAG			;						000000	400471'


OBJ_GSD:PUSH	SP,AC0				; SP,AC0				400500' 261 17 0 00 000000		0569
	PUSH	SP,AC10				; SP,AC10				400501' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				400502' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				400503' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				400504' 261 17 0 00 000013
	PUSH	SP,AC14				; SP,AC14				400505' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				400506' 261 17 0 00 000016
	ADJSP	SP,2				; SP,2					400507' 105 17 0 00 000002
	MOVE	AC10,-12(SP)			; AC10,FILE_PTR				400510' 200 10 0 17 777766		0631
	HRRZ	AC1,14(AC10)			; MODU_PTR,14(AC10)			400511' 550 01 0 10 000014
	JUMPE	AC1,L.27			; MODU_PTR,L.27				400512' 322 01 0 00 400530'
	LDB	AC0,C.13			; AC0,[POINT 1,5(MODU_PTR),1]  <34,1>	400513' 135 00 0 00 400730'		0635
	JUMPE	AC0,L.27			; AC0,L.27				400514' 322 00 0 00 400530'
	LDB	AC0,C.14			; AC0,[POINT 1,6(MODU_PTR),19]  <16,1>	400515' 135 00 0 00 400731'
	JUMPE	AC0,L.27			; AC0,L.27				400516' 322 00 0 00 400530'
	PUSH	SP,C.4				; SP,[0]				400517' 261 17 0 00 400203'		0637
	PUSH	SP,C.5				; SP,[12]				400520' 261 17 0 00 400204'
	PUSH	SP,C.17				; SP,[0,,ROUTINE_NAME]			400521' 261 17 0 00 400734'
	PUSH	SP,C.4				; SP,[0]				400522' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400523' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400524' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400525' 261 17 0 00 400203'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  26
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (8)

	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400526' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					400527' 105 17 0 00 777771
L.27:	MOVE	AC0,-14(SP)			; AC0,BYTEPTR				400530' 200 00 0 17 777764		0642
	PUSH	SP,AC0				; SP,AC0				400531' 261 17 0 00 000000
	MOVE	AC16,-14(SP)			; AC16,BYTECTR				400532' 200 16 0 17 777764
	PUSH	SP,AC16				; SP,AC16				400533' 261 17 0 00 000016
	PUSH	SP,AC10				; SP,AC10				400534' 261 17 0 00 000010
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400535' 260 17 0 00 400403'
L.28:	SETZ	AC12,				; R50VAL,				400536' 400 12 0 00 000000		0646
	MOVEM	AC0,-2(SP)			; AC0,-2(SP)				400537' 202 00 0 17 777776		0647
	MOVEM	AC16,-1(SP)			; AC16,-1(SP)				400540' 202 16 0 17 777777
	MOVEM	AC10,0(SP)			; AC10,0(SP)				400541' 202 10 0 17 000000
	PUSHJ	SP,GET_WORD			; SP,GET_WORD				400542' 260 17 0 00 400434'
	DPB	AC1,C.15			; AC1,[POINT 16,R50VAL,19]  <16,16>	400543' 137 01 0 00 400732'
	MOVEM	AC0,-2(SP)			; AC0,-2(SP)				400544' 202 00 0 17 777776		0648
	MOVEM	AC16,-1(SP)			; AC16,-1(SP)				400545' 202 16 0 17 777777
	MOVEM	AC10,0(SP)			; AC10,0(SP)				400546' 202 10 0 17 000000
	PUSHJ	SP,GET_WORD			; SP,GET_WORD				400547' 260 17 0 00 400434'
	DPB	AC1,C.16			; AC1,[POINT 16,R50VAL,35]  <0,16>	400550' 137 01 0 00 400733'
	MOVEM	AC12,0(SP)			; R50VAL,0(SP)				400551' 202 12 0 17 000000		0649
	MOVEI	AC1,-4(SP)			; AC1,ASCVAL				400552' 201 01 0 17 777774
	PUSH	SP,AC1				; SP,AC1				400553' 261 17 0 00 000001
	PUSHJ	SP,R50TOA			; SP,R50TOA				400554' 260 17 0 00 000000*
	MOVEM	AC0,-2(SP)			; AC0,-2(SP)				400555' 202 00 0 17 777776		0650
	MOVEM	AC16,-1(SP)			; AC16,-1(SP)				400556' 202 16 0 17 777777
	MOVEM	AC10,0(SP)			; AC10,0(SP)				400557' 202 10 0 17 000000
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400560' 260 17 0 00 400403'
	MOVE	AC14,AC1			; FLAGS,AC1				400561' 200 14 0 00 000001
	MOVEM	AC0,-2(SP)			; AC0,-2(SP)				400562' 202 00 0 17 777776		0651
	MOVEM	AC16,-1(SP)			; AC16,-1(SP)				400563' 202 16 0 17 777777
	MOVEM	AC10,0(SP)			; AC10,0(SP)				400564' 202 10 0 17 000000
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400565' 260 17 0 00 400403'
	MOVE	AC11,AC1			; ETYPE,AC1				400566' 200 11 0 00 000001
	MOVEM	AC0,-2(SP)			; AC0,-2(SP)				400567' 202 00 0 17 777776		0652
	MOVEM	AC16,-1(SP)			; AC16,-1(SP)				400570' 202 16 0 17 777777
	MOVEM	AC10,0(SP)			; AC10,0(SP)				400571' 202 10 0 17 000000
	PUSHJ	SP,GET_WORD			; SP,GET_WORD				400572' 260 17 0 00 400434'
	MOVE	AC13,AC1			; VALUE,AC1				400573' 200 13 0 00 000001
	JUMPL	AC11,L.30			; ETYPE,L.30				400574' 321 11 0 00 400610'		0654
	CAIGE	AC11,10				; ETYPE,10				400575' 305 11 0 00 000010
	JRST	L.29(AC11)			; L.29(ETYPE)				400576' 254 00 0 11 400600'
	JRST	L.30				; L.30					400577' 254 00 0 00 400610'
L.29:	JRST	L.31				; L.31					400600' 254 00 0 00 400624'
	JRST	L.32				; L.32					400601' 254 00 0 00 400633'
	JRST	L.33				; L.33					400602' 254 00 0 00 400642'
	JRST	L.34				; L.34					400603' 254 00 0 00 400651'
	JRST	L.35				; L.35					400604' 254 00 0 00 400660'
	JRST	L.36				; L.36					400605' 254 00 0 00 400667'
	JRST	L.37				; L.37					400606' 254 00 0 00 400676'
	JRST	L.38				; L.38					400607' 254 00 0 00 400705'
L.30:	SETZM	0(SP)				; 0(SP)					400610' 402 00 0 17 000000		0682
	PUSH	SP,C.5				; SP,[12]				400611' 261 17 0 00 400204'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  27
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (8)

	PUSH	SP,C.17				; SP,[0,,ROUTINE_NAME]			400612' 261 17 0 00 400734'
	MOVE	AC1,AC10			; AC1,AC10				400613' 200 01 0 00 000010
	ADDI	AC1,2				; AC1,2					400614' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				400615' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				400616' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400617' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400620' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400621' 260 17 0 00 000000*
	ADJSP	SP,-2				; SP,-2					400622' 105 17 0 00 777776
	JRST	L.39				; L.39					400623' 254 00 0 00 400713'		0654
L.31:	MOVEI	AC1,-5(SP)			; AC1,ASCVAL				400624' 201 01 0 17 777773		0658
	PUSH	SP,AC1				; SP,AC1				400625' 261 17 0 00 000001
	PUSH	SP,AC14				; SP,FLAGS				400626' 261 17 0 00 000014
	PUSH	SP,AC13				; SP,VALUE				400627' 261 17 0 00 000013
	PUSH	SP,AC10				; SP,AC10				400630' 261 17 0 00 000010
	PUSHJ	SP,GSD_MNAME			; SP,GSD_MNAME				400631' 260 17 0 00 000000V
	JRST	L.39				; L.39					400632' 254 00 0 00 400713'		0654
L.32:	MOVEI	AC1,-5(SP)			; AC1,ASCVAL				400633' 201 01 0 17 777773		0661
	PUSH	SP,AC1				; SP,AC1				400634' 261 17 0 00 000001
	PUSH	SP,AC14				; SP,FLAGS				400635' 261 17 0 00 000014
	PUSH	SP,AC13				; SP,VALUE				400636' 261 17 0 00 000013
	PUSH	SP,AC10				; SP,AC10				400637' 261 17 0 00 000010
	PUSHJ	SP,GSD_CNAME			; SP,GSD_CNAME				400640' 260 17 0 00 000000V
	JRST	L.39				; L.39					400641' 254 00 0 00 400713'		0654
L.33:	MOVEI	AC1,-5(SP)			; AC1,ASCVAL				400642' 201 01 0 17 777773		0664
	PUSH	SP,AC1				; SP,AC1				400643' 261 17 0 00 000001
	PUSH	SP,AC14				; SP,FLAGS				400644' 261 17 0 00 000014
	PUSH	SP,AC13				; SP,VALUE				400645' 261 17 0 00 000013
	PUSH	SP,AC10				; SP,AC10				400646' 261 17 0 00 000010
	PUSHJ	SP,GSD_ISN			; SP,GSD_ISN				400647' 260 17 0 00 000000V
	JRST	L.39				; L.39					400650' 254 00 0 00 400713'		0654
L.34:	MOVEI	AC1,-5(SP)			; AC1,ASCVAL				400651' 201 01 0 17 777773		0667
	PUSH	SP,AC1				; SP,AC1				400652' 261 17 0 00 000001
	PUSH	SP,AC14				; SP,FLAGS				400653' 261 17 0 00 000014
	PUSH	SP,AC13				; SP,VALUE				400654' 261 17 0 00 000013
	PUSH	SP,AC10				; SP,AC10				400655' 261 17 0 00 000010
	PUSHJ	SP,GSD_TRA			; SP,GSD_TRA				400656' 260 17 0 00 000000V
	JRST	L.39				; L.39					400657' 254 00 0 00 400713'		0654
L.35:	MOVEI	AC1,-5(SP)			; AC1,ASCVAL				400660' 201 01 0 17 777773		0670
	PUSH	SP,AC1				; SP,AC1				400661' 261 17 0 00 000001
	PUSH	SP,AC14				; SP,FLAGS				400662' 261 17 0 00 000014
	PUSH	SP,AC13				; SP,VALUE				400663' 261 17 0 00 000013
	PUSH	SP,AC10				; SP,AC10				400664' 261 17 0 00 000010
	PUSHJ	SP,GSD_GSN			; SP,GSD_GSN				400665' 260 17 0 00 000000V
	JRST	L.39				; L.39					400666' 254 00 0 00 400713'		0654
L.36:	MOVEI	AC1,-5(SP)			; AC1,ASCVAL				400667' 201 01 0 17 777773		0673
	PUSH	SP,AC1				; SP,AC1				400670' 261 17 0 00 000001
	PUSH	SP,AC14				; SP,FLAGS				400671' 261 17 0 00 000014
	PUSH	SP,AC13				; SP,VALUE				400672' 261 17 0 00 000013
	PUSH	SP,AC10				; SP,AC10				400673' 261 17 0 00 000010
	PUSHJ	SP,GSD_PSN			; SP,GSD_PSN				400674' 260 17 0 00 000000V
	JRST	L.39				; L.39					400675' 254 00 0 00 400713'		0654
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  28
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (8)

L.37:	MOVEI	AC1,-5(SP)			; AC1,ASCVAL				400676' 201 01 0 17 777773		0676
	PUSH	SP,AC1				; SP,AC1				400677' 261 17 0 00 000001
	PUSH	SP,AC14				; SP,FLAGS				400700' 261 17 0 00 000014
	PUSH	SP,AC13				; SP,VALUE				400701' 261 17 0 00 000013
	PUSH	SP,AC10				; SP,AC10				400702' 261 17 0 00 000010
	PUSHJ	SP,GSD_IDENT			; SP,GSD_IDENT				400703' 260 17 0 00 000000V
	JRST	L.39				; L.39					400704' 254 00 0 00 400713'		0654
L.38:	MOVEI	AC1,-5(SP)			; AC1,ASCVAL				400705' 201 01 0 17 777773		0679
	PUSH	SP,AC1				; SP,AC1				400706' 261 17 0 00 000001
	PUSH	SP,AC14				; SP,FLAGS				400707' 261 17 0 00 000014
	PUSH	SP,AC13				; SP,VALUE				400710' 261 17 0 00 000013
	PUSH	SP,AC10				; SP,AC10				400711' 261 17 0 00 000010
	PUSHJ	SP,GSD_MAP			; SP,GSD_MAP				400712' 260 17 0 00 000000V
L.39:	ADJSP	SP,-5				; SP,-5					400713' 105 17 0 00 777773		0645
	SKIPE	0(AC16)				; 0(AC16)				400714' 332 00 0 16 000000		0686
	JRST	L.28				; L.28					400715' 254 00 0 00 400536'		0644
	ADJSP	SP,-3				; SP,-3					400716' 105 17 0 00 777775		0605
	ADJSP	SP,-2				; SP,-2					400717' 105 17 0 00 777776		0569
	POP	SP,AC16				; SP,AC16				400720' 262 17 0 00 000016
	POP	SP,AC14				; SP,AC14				400721' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				400722' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				400723' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				400724' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				400725' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				400726' 262 17 0 00 000000
	POPJ	SP,				; SP,					400727' 263 17 0 00 000000
C.13:	POINT	1,5(AC1),1			; 1,5(MODU_PTR),1			400730' 42 01 0 01 000005
C.14:	POINT	1,6(AC1),19			; 1,6(MODU_PTR),19			400731' 20 01 0 01 000006
C.15:	POINT	16,AC12,19			; 16,R50VAL,19				400732' 20 20 0 00 000012
C.16:	POINT	16,AC12,35			; 16,R50VAL,35				400733' 00 20 0 00 000012
C.17:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			400734' 000000	400471'

; Routine Size:  157 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  29
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (9)

;	  0689	ROUTINE OBJ_END_GSD (BYTEPTR, BYTECTR, FILE_PTR) : NOVALUE = 	!PROCESS END GSD RECORD
;	  0690	
;	  0691	!++
;	  0692	! FUNCTIONAL DESCRIPTION:
;	  0693	!
;	  0694	!	PROCESS THE END GSD RECORD.
;	  0695	!
;	  0696	! FORMAL PARAMETERS:
;	  0697	!
;	  0698	!	BYTEPTR - POINTER TO THE BYTE POINTER
;	  0699	!	BYTECTR - POINTER TO THE COUNTER CELL
;	  0700	!	FILE_PTR - POINTER TO FILE BLOCK
;	  0701	!
;	  0702	! IMPLICIT INPUTS:
;	  0703	!
;	  0704	!	NONE
;	  0705	!
;	  0706	! IMPLICIT OUTPUTS:
;	  0707	!
;	  0708	!	SETS A FLAG WHICH FORBIDS ANY MORE GSD RECORDS IN
;	  0709	!	 THIS MODULE.
;	  0710	!
;	  0711	! ROUTINE VALUE:
;	  0712	!
;	  0713	!	NONE
;	  0714	!
;	  0715	! SIDE EFFECTS
;	  0716	!
;	  0717	!	NONE
;	  0718	!
;	  0719	!--
;	  0720	
;	  0721	    BEGIN
;	  0722	
;	  0723	    BIND
;	  0724		ROUTINE_NAME = UPLIT (%ASCIZ'OBJ_END_GSD');
;	  0725	
;	  0726	    MAP
;	  0727		FILE_PTR : REF FILE_BLOCK;
;	  0728	
;	  0729	    LOCAL
;	  0730		MODU_PTR : REF MODU_BLOCK;
;	  0731	
;	  0732	    IF (DEBUG GEQ 1)
;	  0733	    THEN
;	  0734		BEGIN
;	  0735		PCRLF (1);
;	  0736		OUTPUT (1, %O'11');
;	  0737		OUTSTR (1, UPLIT (%ASCIZ'END GSD RECORD, LENGTH = '));
;	  0738		OUTNUM (1, ..BYTECTR, 10, 0);
;	  0739		END;					!DEBUG
;	  0740	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  30
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (9)

;	  0741	    IF ((MODU_PTR = .FILE_PTR [FILE_MODU]) EQL 0)
;	  0742	    THEN
;	  0743		ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
;	  0744		    0, 0)
;	  0745	    ELSE
;	  0746		BEGIN
;	  0747	
;	  0748		IF (.MODU_PTR [MODU_FLAG_EGSD] NEQ 0)
;	  0749		THEN
;	  0750		    ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0)
;	  0751		ELSE
;	  0752		    BEGIN
;	  0753		    MODU_PTR [MODU_FLAG_EGSD] = 1;
;	  0754		    END;
;	  0755	
;	  0756		END;
;	  0757	
;	  0758	    END;					!OF OBJ_END_GSD


P.AAI:	BYTE	(7)"O","B","J","_","E"		; OBJ_E					400735' 117 102 112 137 105
	BYTE	(7)"N","D","_","G","S"		; ND_GS					400736' 116 104 137 107 123
	BYTE	(7)"D",000,000,000,000		; D					400737' 104 000 000 000 000
P.AAJ:	BYTE	(7)"E","N","D"," ","G"		; END G					400740' 105 116 104 040 107
	BYTE	(7)"S","D"," ","R","E"		; SD RE					400741' 123 104 040 122 105
	BYTE	(7)"C","O","R","D",","		; CORD,					400742' 103 117 122 104 054
	BYTE	(7)" ","L","E","N","G"		;  LENG					400743' 040 114 105 116 107
	BYTE	(7)"T","H"," ","="," "		; TH =					400744' 124 110 040 075 040
	BYTE	(7)000,000,000,000,000		;					400745' 000 000 000 000 000


ROUTINE_NAME=	    P.AAI			;						000000	400735'


OBJ_END_GSD:
	PUSH	SP,AC0				; SP,AC0				400746' 261 17 0 00 000000		0689
	PUSH	SP,AC10				; SP,AC10				400747' 261 17 0 00 000010
	MOVE	AC0,-3(SP)			; AC0,FILE_PTR				400750' 200 00 0 17 777775		0741
	MOVE	AC1,AC0				; AC1,AC0				400751' 200 01 0 00 000000
	HRRZ	AC10,14(AC1)			; MODU_PTR,14(AC1)			400752' 550 10 0 01 000014
	JUMPN	AC10,L.40			; MODU_PTR,L.40				400753' 326 10 0 00 400763'
	PUSH	SP,C.4				; SP,[0]				400754' 261 17 0 00 400203'		0743
	PUSH	SP,C.5				; SP,[12]				400755' 261 17 0 00 400204'
	PUSH	SP,C.19				; SP,[0,,ROUTINE_NAME]			400756' 261 17 0 00 401006'
	MOVE	AC1,AC0				; AC1,AC0				400757' 200 01 0 00 000000
	ADDI	AC1,2				; AC1,2					400760' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				400761' 261 17 0 00 000001
	JRST	L.41				; L.41					400762' 254 00 0 00 400772'
L.40:	LDB	AC1,C.18			; AC1,[POINT 1,5(MODU_PTR),1]  <34,1>	400763' 135 01 0 00 401005'		0748
	JUMPE	AC1,L.42			; AC1,L.42				400764' 322 01 0 00 401000'
	PUSH	SP,C.4				; SP,[0]				400765' 261 17 0 00 400203'		0750
	PUSH	SP,C.5				; SP,[12]				400766' 261 17 0 00 400204'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  31
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (9)

	PUSH	SP,C.19				; SP,[0,,ROUTINE_NAME]			400767' 261 17 0 00 401006'
	ADDI	AC0,2				; AC0,2					400770' 271 00 0 00 000002
	PUSH	SP,AC0				; SP,AC0				400771' 261 17 0 00 000000
L.41:	PUSH	SP,C.4				; SP,[0]				400772' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400773' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				400774' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				400775' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					400776' 105 17 0 00 777771
	JRST	L.43				; L.43					400777' 254 00 0 00 401002'		0748
L.42:	MOVSI	AC0,200000			; AC0,200000				401000' 205 00 0 00 200000		0753
	IORM	AC0,5(AC10)			; AC0,5(MODU_PTR)			401001' 436 00 0 10 000005
L.43:	POP	SP,AC10				; SP,AC10				401002' 262 17 0 00 000010		0689
	POP	SP,AC0				; SP,AC0				401003' 262 17 0 00 000000
	POPJ	SP,				; SP,					401004' 263 17 0 00 000000
C.18:	POINT	1,5(AC10),1			; 1,5(MODU_PTR),1			401005' 42 01 0 10 000005
C.19:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			401006' 000000	400735'

; Routine Size:  33 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  32
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (10)

;	  0759	ROUTINE OBJ_ISD (BYTEPTR, BYTECTR, FILE_PTR) : NOVALUE = 	!PROCESS ISD RECORD
;	  0760	
;	  0761	!++
;	  0762	! FUNCTIONAL DESCRIPTION:
;	  0763	!
;	  0764	!	PROCESS INTERNAL SYMBOL DIRECTORY RECORD.
;	  0765	!
;	  0766	! FORMAL PARAMETERS:
;	  0767	!
;	  0768	!	BYTEPTR - POINTER TO THE BYTE POINTER
;	  0769	!	BYTECTR - POINTER TO THE COUNTER CELL
;	  0770	!	FILE_PTR - POINTER TO OBJECT FILE BLOCK
;	  0771	!
;	  0772	! IMPLICIT INPUTS:
;	  0773	!
;	  0774	!	THE OBJECT RECORD POINTED TO
;	  0775	!
;	  0776	! IMPLICIT OUTPUTS:
;	  0777	!
;	  0778	!	ADDS THE INTERNAL SYMBOLS TO THE DATA STRUCTURE
;	  0779	!
;	  0780	! ROUTINE VALUE:
;	  0781	!
;	  0782	!	NONE
;	  0783	!
;	  0784	! SIDE EFFECTS
;	  0785	!
;	  0786	!	NONE
;	  0787	!
;	  0788	!--
;	  0789	
;	  0790	    BEGIN
;	  0791	
;	  0792	    BIND
;	  0793		ROUTINE_NAME = UPLIT (%ASCIZ'OBJ_ISD');
;	  0794	
;	  0795	    IF (DEBUG GEQ 1)
;	  0796	    THEN
;	  0797		BEGIN
;	  0798		PCRLF (1);
;	  0799		OUTPUT (1, %O'11');
;	  0800		OUTSTR (1, UPLIT (%ASCIZ'INTERNAL SYMBOL DIRECTORY RECORD, LENGTH = '));
;	  0801		OUTNUM (1, ..BYTECTR, 10, 0);
;	  0802		END;					!DEBUG
;	  0803	
;	  0804	    ERRMSG (0, 12, ROUTINE_NAME, 0, 0, 0, 0);
;	  0805	    END;					!OF OBJ_ISD


P.AAK:	BYTE	(7)"O","B","J","_","I"		; OBJ_I					401007' 117 102 112 137 111
	BYTE	(7)"S","D",000,000,000		; SD					401010' 123 104 000 000 000
P.AAL:	BYTE	(7)"I","N","T","E","R"		; INTER					401011' 111 116 124 105 122
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  33
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (10)

	BYTE	(7)"N","A","L"," ","S"		; NAL S					401012' 116 101 114 040 123
	BYTE	(7)"Y","M","B","O","L"		; YMBOL					401013' 131 115 102 117 114
	BYTE	(7)" ","D","I","R","E"		;  DIRE					401014' 040 104 111 122 105
	BYTE	(7)"C","T","O","R","Y"		; CTORY					401015' 103 124 117 122 131
	BYTE	(7)" ","R","E","C","O"		;  RECO					401016' 040 122 105 103 117
	BYTE	(7)"R","D",","," ","L"		; RD, L					401017' 122 104 054 040 114
	BYTE	(7)"E","N","G","T","H"		; ENGTH					401020' 105 116 107 124 110
	BYTE	(7)" ","="," ",000,000		;  =					401021' 040 075 040 000 000


ROUTINE_NAME=	    P.AAK			;						000000	401007'


OBJ_ISD:PUSH	SP,C.4				; SP,[0]				401022' 261 17 0 00 400203'		0804
	PUSH	SP,C.20				; SP,[14]				401023' 261 17 0 00 401034'
	PUSH	SP,C.21				; SP,[0,,ROUTINE_NAME]			401024' 261 17 0 00 401035'
	PUSH	SP,C.4				; SP,[0]				401025' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401026' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401027' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401030' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401031' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					401032' 105 17 0 00 777771		0790
	POPJ	SP,				; SP,					401033' 263 17 0 00 000000		0759
C.20:	EXP	14				; 14					401034' 000000	000014
C.21:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			401035' 000000	401007'

; Routine Size:  12 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  34
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (11)

;	  0806	ROUTINE OBJ_EOM (BYTEPTR, BYTECTR, FILE_PTR) : NOVALUE = 	!PROCESS END OF MODULE RECORD
;	  0807	
;	  0808	!++
;	  0809	! FUNCTIONAL DESCRIPTION:
;	  0810	!
;	  0811	!	PROCESS THE END MODULE RECORD.
;	  0812	!
;	  0813	! FORMAL PARAMETERS:
;	  0814	!
;	  0815	!	BYTEPTR - POINTER TO THE BYTE POINTER
;	  0816	!	BYTECTR - POINTER TO THE COUNTER CELL
;	  0817	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  0818	!
;	  0819	! IMPLICIT INPUTS:
;	  0820	!
;	  0821	!	THE OBJECT RECORD POINTED TO
;	  0822	!
;	  0823	! IMPLICIT OUTPUTS:
;	  0824	!
;	  0825	!	SETS A FLAG TO INDICATE THAT WE ARE BETWEEN MODULES.
;	  0826	!	 AN EOF IS OK IN THIS CONTEXT.
;	  0827	!
;	  0828	! ROUTINE VALUE:
;	  0829	!
;	  0830	!	NONE
;	  0831	!
;	  0832	! SIDE EFFECTS
;	  0833	!
;	  0834	!	NONE
;	  0835	!
;	  0836	!--
;	  0837	
;	  0838	    BEGIN
;	  0839	
;	  0840	    BIND
;	  0841		ROUTINE_NAME = UPLIT (%ASCIZ'OBJ_EOM');
;	  0842	
;	  0843	    MAP
;	  0844		FILE_PTR : REF FILE_BLOCK;
;	  0845	
;	  0846	    LOCAL
;	  0847		MODU_PTR : REF MODU_BLOCK;
;	  0848	
;	  0849	    IF (DEBUG GEQ 1)
;	  0850	    THEN
;	  0851		BEGIN
;	  0852		PCRLF (1);
;	  0853		OUTPUT (1, %O'11');
;	  0854		OUTSTR (1, UPLIT (%ASCIZ'END OF MODULE RECORD, LENGTH = '));
;	  0855		OUTNUM (1, ..BYTECTR, 10, 0);
;	  0856		END;					!DEBUG
;	  0857	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  35
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (11)

;	  0858	    IF ((MODU_PTR = .FILE_PTR [FILE_MODU]) EQL 0)
;	  0859	    THEN
;	  0860		ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
;	  0861		    0, 0)
;	  0862	    ELSE
;	  0863		BEGIN
;	  0864	
;	  0865		IF ((.MODU_PTR [MODU_FLAG_EGSD] EQL 0) OR (.MODU_PTR [MODU_FLAG_ENDED] NEQ 0))
;	  0866		THEN
;	  0867		    ERRMSG (0, 10,
;	  0868			ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0)
;	  0869		ELSE
;	  0870		    MODU_PTR [MODU_FLAG_ENDED] = 1;
;	  0871	
;	  0872		END;
;	  0873	
;	  0874	    END;					!OF OBJ_EOM


P.AAM:	BYTE	(7)"O","B","J","_","E"		; OBJ_E					401036' 117 102 112 137 105
	BYTE	(7)"O","M",000,000,000		; OM					401037' 117 115 000 000 000
P.AAN:	BYTE	(7)"E","N","D"," ","O"		; END O					401040' 105 116 104 040 117
	BYTE	(7)"F"," ","M","O","D"		; F MOD					401041' 106 040 115 117 104
	BYTE	(7)"U","L","E"," ","R"		; ULE R					401042' 125 114 105 040 122
	BYTE	(7)"E","C","O","R","D"		; ECORD					401043' 105 103 117 122 104
	BYTE	(7)","," ","L","E","N"		; , LEN					401044' 054 040 114 105 116
	BYTE	(7)"G","T","H"," ","="		; GTH =					401045' 107 124 110 040 075
	BYTE	(7)" ",000,000,000,000		;					401046' 040 000 000 000 000


ROUTINE_NAME=	    P.AAM			;						000000	401036'


OBJ_EOM:PUSH	SP,AC0				; SP,AC0				401047' 261 17 0 00 000000		0806
	PUSH	SP,AC10				; SP,AC10				401050' 261 17 0 00 000010
	MOVE	AC0,-3(SP)			; AC0,FILE_PTR				401051' 200 00 0 17 777775		0858
	MOVE	AC1,AC0				; AC1,AC0				401052' 200 01 0 00 000000
	HRRZ	AC10,14(AC1)			; MODU_PTR,14(AC1)			401053' 550 10 0 01 000014
	JUMPN	AC10,L.44			; MODU_PTR,L.44				401054' 326 10 0 00 401064'
	PUSH	SP,C.4				; SP,[0]				401055' 261 17 0 00 400203'		0860
	PUSH	SP,C.5				; SP,[12]				401056' 261 17 0 00 400204'
	PUSH	SP,C.23				; SP,[0,,ROUTINE_NAME]			401057' 261 17 0 00 401111'
	MOVE	AC1,AC0				; AC1,AC0				401060' 200 01 0 00 000000
	ADDI	AC1,2				; AC1,2					401061' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				401062' 261 17 0 00 000001
	JRST	L.46				; L.46					401063' 254 00 0 00 401075'
L.44:	LDB	AC1,C.18			; AC1,[POINT 1,5(AC10),1]  <34,1>	401064' 135 01 0 00 401005'		0865
	JUMPE	AC1,L.45			; AC1,L.45				401065' 322 01 0 00 401070'
	LDB	AC1,C.22			; AC1,[POINT 1,6(MODU_PTR),19]  <16,1>	401066' 135 01 0 00 401110'
	JUMPE	AC1,L.47			; AC1,L.47				401067' 322 01 0 00 401103'
L.45:	PUSH	SP,C.4				; SP,[0]				401070' 261 17 0 00 400203'		0867
	PUSH	SP,C.5				; SP,[12]				401071' 261 17 0 00 400204'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  36
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (11)

	PUSH	SP,C.23				; SP,[0,,ROUTINE_NAME]			401072' 261 17 0 00 401111'
	ADDI	AC0,2				; AC0,2					401073' 271 00 0 00 000002		0868
	PUSH	SP,AC0				; SP,AC0				401074' 261 17 0 00 000000
L.46:	PUSH	SP,C.4				; SP,[0]				401075' 261 17 0 00 400203'		0867
	PUSH	SP,C.4				; SP,[0]				401076' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401077' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401100' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					401101' 105 17 0 00 777771
	JRST	L.48				; L.48					401102' 254 00 0 00 401105'		0865
L.47:	MOVEI	AC0,200000			; AC0,200000				401103' 201 00 0 00 200000		0870
	IORM	AC0,6(AC10)			; AC0,6(MODU_PTR)			401104' 436 00 0 10 000006
L.48:	POP	SP,AC10				; SP,AC10				401105' 262 17 0 00 000010		0806
	POP	SP,AC0				; SP,AC0				401106' 262 17 0 00 000000
	POPJ	SP,				; SP,					401107' 263 17 0 00 000000
C.22:	POINT	1,6(AC10),19			; 1,6(MODU_PTR),19			401110' 20 01 0 10 000006
C.23:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			401111' 000000	401036'

; Routine Size:  35 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  37
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (12)

;	  0875	ROUTINE GSD_MNAME (ASCPTR, FLAGS, VALUE, FILE_PTR) : NOVALUE = 	!PROCESS MODULE NAME ENTRY
;	  0876	
;	  0877	!++
;	  0878	! FUNCTIONAL DESCRIPTION:
;	  0879	!
;	  0880	!	PROCESS THE MODULE NAME ENTRY OF THE GSD RECORD
;	  0881	!
;	  0882	! FORMAL PARAMETERS:
;	  0883	!
;	  0884	!	ASCPTR - POINTER TO NAME, IN ASCII
;	  0885	!	FLAGS - THE FLAGS BYTE
;	  0886	!	VALUE - THE VALUE WORD
;	  0887	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  0888	!
;	  0889	! IMPLICIT INPUTS:
;	  0890	!
;	  0891	!	NONE
;	  0892	!
;	  0893	! IMPLICIT OUTPUTS:
;	  0894	!
;	  0895	!	ADDS THE MODULE NAME TO THE DATA STRUCTURE
;	  0896	!
;	  0897	! ROUTINE VALUE:
;	  0898	!
;	  0899	!	NONE
;	  0900	!
;	  0901	! SIDE EFFECTS
;	  0902	!
;	  0903	!	OBTAINS SPACE FROM THE FREE LIST
;	  0904	!
;	  0905	!--
;	  0906	
;	  0907	    BEGIN
;	  0908	
;	  0909	    BIND
;	  0910		ROUTINE_NAME = UPLIT (%ASCIZ'GSD_MNAME');
;	  0911	
;	  0912	    MAP
;	  0913		FILE_PTR : REF FILE_BLOCK;
;	  0914	
;	  0915	    LOCAL
;	  0916		MODU_PTR : REF MODU_BLOCK,
;	  0917		FILE_ERROR;
;	  0918	
;	  0919	    IF (DEBUG GEQ 1)
;	  0920	    THEN
;	  0921		BEGIN
;	  0922		PCRLF (1);
;	  0923		OUTPUT (1, %O'11');
;	  0924		OUTPUT (1, %O'11');
;	  0925		OUTSTR (1, UPLIT (%ASCIZ'MODULE NAME, NAME = '));
;	  0926		OUTSTR (1, .ASCPTR);
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  38
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (12)

;	  0927		OUTSTR (1, UPLIT (%ASCIZ', FLAGS = '));
;	  0928		OUTNUM (1, .FLAGS, 8, 0);
;	  0929		OUTSTR (1, UPLIT (%ASCIZ', VALUE = '));
;	  0930		OUTNUM (1, .VALUE, 8, 0);
;	  0931		END;					!DEBUG
;	  0932	
;	  0933	!
;	  0934	    FILE_ERROR = 0;
;	  0935	
;	  0936	    IF ((MODU_PTR = .FILE_PTR [FILE_MODU]) NEQ 0)
;	  0937	    THEN
;	  0938		BEGIN
;	  0939	
;	  0940		IF (.MODU_PTR [MODU_FLAG_ENDED] EQL 0)
;	  0941		THEN
;	  0942		    BEGIN
;	  0943		    ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0944		    FILE_ERROR = -1;
;	  0945		    END
;	  0946		ELSE
;	  0947		    BEGIN
;	  0948		    ERRMSG (0, 23, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  0949		    FILE_ERROR = -1;
;	  0950		    END;
;	  0951	
;	  0952		END;
;	  0953	
;	  0954	    IF (.FILE_ERROR EQL 0)
;	  0955	    THEN
;	  0956		BEGIN					!THERE IS NOT ALREADY A MODULE BEING PROCESSED
;	  0957	
;	  0958		IF ((MODU_PTR = GETBLK (MODU_TYP, MODU_LEN)) EQL 0)
;	  0959		THEN
;	  0960		    ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
;	  0961		ELSE
;	  0962		    BEGIN				!WE HAVE STORAGE FOR THE MODULE NAME
;	  0963	
;	  0964		    IF ((FILE_PTR [FILE_DOWN] = BLD_CHAIN (.FILE_PTR, .FILE_PTR [FILE_DOWN], .MODU_PTR)) EQL 0)
;	  0965		    THEN
;	  0966			ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
;	  0967		    ELSE
;	  0968			BEGIN				!WE HAVE STORAGE FOR THE CHAIN BLOCK
;	  0969			CH$MOVE (LEN_MODU_NAME, CH$PTR (.ASCPTR), CH$PTR (MODU_PTR [MODU_NAME]));
;	  0970			FILE_PTR [FILE_MODU] = .MODU_PTR;
;	  0971			MODU_PTR [MODU_OBJ_FILE] = .FILE_PTR;
;	  0972			MODU_PTR [MODU_SECTOR] = 0;
;	  0973			END;
;	  0974	
;	  0975		    END;
;	  0976	
;	  0977		END;
;	  0978	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  39
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (12)

;	  0979	    END;					!OF GSD_MNAME


P.AAO:	BYTE	(7)"G","S","D","_","M"		; GSD_M					401112' 107 123 104 137 115
	BYTE	(7)"N","A","M","E",000		; NAME					401113' 116 101 115 105 000
P.AAP:	BYTE	(7)"M","O","D","U","L"		; MODUL					401114' 115 117 104 125 114
	BYTE	(7)"E"," ","N","A","M"		; E NAM					401115' 105 040 116 101 115
	BYTE	(7)"E",","," ","N","A"		; E, NA					401116' 105 054 040 116 101
	BYTE	(7)"M","E"," ","="," "		; ME =					401117' 115 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					401120' 000 000 000 000 000
P.AAQ:	BYTE	(7)","," ","F","L","A"		; , FLA					401121' 054 040 106 114 101
	BYTE	(7)"G","S"," ","="," "		; GS =					401122' 107 123 040 075 040
	BYTE	(7)000,000,000,000,000		;					401123' 000 000 000 000 000
P.AAR:	BYTE	(7)","," ","V","A","L"		; , VAL					401124' 054 040 126 101 114
	BYTE	(7)"U","E"," ","="," "		; UE =					401125' 125 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					401126' 000 000 000 000 000


ROUTINE_NAME=	    P.AAO			;						000000	401112'


GSD_MNAME:
	PUSH	SP,AC0				; SP,AC0				401127' 261 17 0 00 000000		0875
	PUSH	SP,AC10				; SP,AC10				401130' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				401131' 261 17 0 00 000011
	SETZ	AC11,				; FILE_ERROR,				401132' 400 11 0 00 000000		0934
	MOVE	AC0,-4(SP)			; AC0,FILE_PTR				401133' 200 00 0 17 777774		0936
	MOVE	AC1,AC0				; AC1,AC0				401134' 200 01 0 00 000000
	HRRZ	AC10,14(AC1)			; MODU_PTR,14(AC1)			401135' 550 10 0 01 000014
	JUMPE	AC10,L.51			; MODU_PTR,L.51				401136' 322 10 0 00 401160'
	SETO	AC11,				; FILE_ERROR,				401137' 474 11 0 00 000000		0944
	MOVE	AC1,AC0				; AC1,AC0				401140' 200 01 0 00 000000		0943
	ADDI	AC1,2				; AC1,2					401141' 271 01 0 00 000002
	LDB	AC2,C.22			; AC2,[POINT 1,6(AC10),19]  <16,1>	401142' 135 02 0 00 401110'		0940
	JUMPN	AC2,L.49			; AC2,L.49				401143' 326 02 0 00 401147'
	PUSH	SP,C.4				; SP,[0]				401144' 261 17 0 00 400203'		0943
	PUSH	SP,C.5				; SP,[12]				401145' 261 17 0 00 400204'
	JRST	L.50				; L.50					401146' 254 00 0 00 401151'
L.49:	PUSH	SP,C.4				; SP,[0]				401147' 261 17 0 00 400203'		0948
	PUSH	SP,C.25				; SP,[27]				401150' 261 17 0 00 401236'
L.50:	PUSH	SP,C.26				; SP,[0,,ROUTINE_NAME]			401151' 261 17 0 00 401237'
	PUSH	SP,AC1				; SP,AC1				401152' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				401153' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401154' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401155' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401156' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					401157' 105 17 0 00 777771		0938
L.51:	JUMPN	AC11,L.54			; FILE_ERROR,L.54			401160' 326 11 0 00 401231'		0954
	PUSH	SP,C.27				; SP,[6]				401161' 261 17 0 00 401240'		0958
	PUSH	SP,C.28				; SP,[11]				401162' 261 17 0 00 401241'
	PUSHJ	SP,GETBLK			; SP,GETBLK				401163' 260 17 0 00 000000*
	MOVE	AC10,AC1			; MODU_PTR,AC1				401164' 200 10 0 00 000001
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  40
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (12)

	ADJSP	SP,-2				; SP,-2					401165' 105 17 0 00 777776
	JUMPE	AC10,L.52			; MODU_PTR,L.52				401166' 322 10 0 00 401201'
	PUSH	SP,AC0				; SP,AC0				401167' 261 17 0 00 000000		0964
	MOVE	AC2,AC0				; AC2,AC0				401170' 200 02 0 00 000000
	HLRZ	AC1,13(AC2)			; AC1,13(AC2)				401171' 554 01 0 02 000013
	PUSH	SP,AC1				; SP,AC1				401172' 261 17 0 00 000001
	PUSH	SP,AC10				; SP,MODU_PTR				401173' 261 17 0 00 000010
	PUSHJ	SP,BLD_CHAIN			; SP,BLD_CHAIN				401174' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					401175' 105 17 0 00 777775
	MOVE	AC2,AC0				; AC2,AC0				401176' 200 02 0 00 000000
	HRLM	AC1,13(AC2)			; AC1,13(AC2)				401177' 506 01 0 02 000013
	JUMPN	AC1,L.53			; AC1,L.53				401200' 326 01 0 00 401213'
L.52:	PUSH	SP,C.4				; SP,[0]				401201' 261 17 0 00 400203'		0966
	PUSH	SP,C.7				; SP,[1]				401202' 261 17 0 00 400206'
	PUSH	SP,C.26				; SP,[0,,ROUTINE_NAME]			401203' 261 17 0 00 401237'
	PUSH	SP,C.4				; SP,[0]				401204' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401205' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401206' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401207' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401210' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					401211' 105 17 0 00 777771
	JRST	L.54				; L.54					401212' 254 00 0 00 401231'		0964
L.53:	MOVE	AC1,-7(SP)			; AC1,ASCPTR				401213' 200 01 0 17 777771		0969
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				401214' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				401215' 505 02 0 00 010700
	MOVEI	AC5,0(AC10)			; AC5,0(MODU_PTR)			401216' 201 05 0 10 000000
	HRLI	AC5,10700			; AC5,10700				401217' 505 05 0 00 010700
	MOVEI	AC1,7				; AC1,7					401220' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					401221' 201 04 0 00 000007
	EXTEND	AC1,C.24			; AC1,[MOVSLJ ]				401222' 123 01 0 00 401235'
	JFCL					; 					401223' 255 00 0 00 000000
	MOVE	AC1,AC0				; AC1,AC0				401224' 200 01 0 00 000000		0970
	HRRM	AC10,14(AC1)			; MODU_PTR,14(AC1)			401225' 542 10 0 01 000014
	HRLM	AC0,6(AC10)			; AC0,6(MODU_PTR)			401226' 506 00 0 10 000006		0971
	MOVEI	AC0,177777			; AC0,177777				401227' 201 00 0 00 177777		0972
	ANDCAM	AC0,6(AC10)			; AC0,6(MODU_PTR)			401230' 412 00 0 10 000006
L.54:	POP	SP,AC11				; SP,AC11				401231' 262 17 0 00 000011		0875
	POP	SP,AC10				; SP,AC10				401232' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				401233' 262 17 0 00 000000
	POPJ	SP,				; SP,					401234' 263 17 0 00 000000
C.24:	MOVSLJ					; 					401235' 016 00 0 00 000000
C.25:	EXP	27				; 27					401236' 000000	000027
C.26:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			401237' 000000	401112'
C.27:	EXP	6				; 6					401240' 000000	000006
C.28:	EXP	11				; 11					401241' 000000	000011

; Routine Size:  75 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  41
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (13)

;	  0980	ROUTINE GSD_CNAME (ASCPTR, FLAGS, VALUE, FILE_PTR) : NOVALUE = 	!PROCESS CSECT NAME ENTRY
;	  0981	
;	  0982	!++
;	  0983	! FUNCTIONAL DESCRIPTION:
;	  0984	!
;	  0985	!	PROCESS THE CSECT NAME ENTRY OF THE GSD RECORD
;	  0986	!	 THIS IS IMPLEMENTED BY CONVERTING THE CSECT INTO
;	  0987	!	 AN APPROPRIATE PSECT.
;	  0988	!
;	  0989	! FORMAL PARAMETERS:
;	  0990	!
;	  0991	!	ASCPTR - POINTER TO NAME, IN ASCII
;	  0992	!	FLAGS - THE FLAGS BYTE
;	  0993	!	VALUE - THE VALUE WORD
;	  0994	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  0995	!
;	  0996	! IMPLICIT INPUTS:
;	  0997	!
;	  0998	!	NONE
;	  0999	!
;	  1000	! IMPLICIT OUTPUTS:
;	  1001	!
;	  1002	!	NONE
;	  1003	!
;	  1004	! ROUTINE VALUE:
;	  1005	!
;	  1006	!	NONE
;	  1007	!
;	  1008	! SIDE EFFECTS
;	  1009	!
;	  1010	!	CALLS GSD_PNAME
;	  1011	!
;	  1012	!--
;	  1013	
;	  1014	    BEGIN
;	  1015	
;	  1016	    BIND
;	  1017		ROUTINE_NAME = UPLIT (%ASCIZ'GSD_CNAME');
;	  1018	
;	  1019	    MAP
;	  1020		FILE_PTR : REF FILE_BLOCK;
;	  1021	
;	  1022	    LOCAL
;	  1023		MODU_PTR : REF MODU_BLOCK;
;	  1024	
;	  1025	    IF (DEBUG GEQ 1)
;	  1026	    THEN
;	  1027		BEGIN
;	  1028		PCRLF (1);
;	  1029		OUTPUT (1, %O'11');
;	  1030		OUTPUT (1, %O'11');
;	  1031		OUTSTR (1, UPLIT (%ASCIZ'CSECT NAME, NAME = '));
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  42
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (13)

;	  1032		OUTSTR (1, .ASCPTR);
;	  1033		OUTSTR (1, UPLIT (%ASCIZ', FLAGS = '));
;	  1034		OUTNUM (1, .FLAGS, 8, 0);
;	  1035		OUTSTR (1, UPLIT (%ASCIZ', VALUE = '));
;	  1036		OUTNUM (1, .VALUE, 8, 0);
;	  1037		END;					!DEBUG
;	  1038	
;	  1039	!
;	  1040	! TURN THE CSECT NAME ENTRY INTO A PSECT BY CALLING GSD_PNAME WITH
;	  1041	!  THE APPROPRIATE ARGUMENTS.
;	  1042	!
;	  1043	
;	  1044	    IF (CH$EQL (LEN_PSECT_NAME, CH$PTR (.ASCPTR), LEN_PSECT_NAME,
;	  1045		    CH$PTR (UPLIT (%ASCIZ'      '
;	  1046			))))
;	  1047	    THEN
;	  1048		BEGIN					!BLANK CSECT, MAKE LOCAL PSECT
;	  1049		GSD_PSN (.ASCPTR, (1^PSECT_FLG_REL), .VALUE, .FILE_PTR);
;	  1050		END
;	  1051	    ELSE
;	  1052	
;	  1053		IF (CH$EQL (LEN_PSECT_NAME, CH$PTR (.ASCPTR), LEN_PSECT_NAME,
;	  1054			CH$PTR (UPLIT (%ASCIZ'. ABS.'
;	  1055			    ))))
;	  1056		THEN
;	  1057		    BEGIN				!ASECT, MAKE AN ABSOLUTE PSECT
;	  1058		    GSD_PSN (UPLIT (%ASCIZ'. ABS.'), ((1^PSECT_FLG_GBL) + (1^PSECT_FLG_OVR)), .VALUE, .FILE_PTR);
;	  1059		    END
;	  1060		ELSE
;	  1061		    BEGIN				!NAMED CSECT, MAKE A GLOBAL PSECT
;	  1062		    GSD_PSN (.ASCPTR, ((1^PSECT_FLG_GBL) + (1^PSECT_FLG_REL) + (1^PSECT_FLG_OVR)), .VALUE, .FILE_PTR);
;	  1063		    END;
;	  1064	
;	  1065	    END;					!OF GSD_CNAME


P.AAS:	BYTE	(7)"G","S","D","_","C"		; GSD_C					401242' 107 123 104 137 103
	BYTE	(7)"N","A","M","E",000		; NAME					401243' 116 101 115 105 000
P.AAT:	BYTE	(7)"C","S","E","C","T"		; CSECT					401244' 103 123 105 103 124
	BYTE	(7)" ","N","A","M","E"		;  NAME					401245' 040 116 101 115 105
	BYTE	(7)","," ","N","A","M"		; , NAM					401246' 054 040 116 101 115
	BYTE	(7)"E"," ","="," ",000		; E =					401247' 105 040 075 040 000
P.AAU:	BYTE	(7)","," ","F","L","A"		; , FLA					401250' 054 040 106 114 101
	BYTE	(7)"G","S"," ","="," "		; GS =					401251' 107 123 040 075 040
	BYTE	(7)000,000,000,000,000		;					401252' 000 000 000 000 000
P.AAV:	BYTE	(7)","," ","V","A","L"		; , VAL					401253' 054 040 126 101 114
	BYTE	(7)"U","E"," ","="," "		; UE =					401254' 125 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					401255' 000 000 000 000 000
P.AAW:	BYTE	(7)" "," "," "," "," "		;					401256' 040 040 040 040 040
	BYTE	(7)" ",000,000,000,000		;					401257' 040 000 000 000 000
P.AAX:	BYTE	(7)"."," ","A","B","S"		; . ABS					401260' 056 040 101 102 123
	BYTE	(7)".",000,000,000,000		; .					401261' 056 000 000 000 000
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  43
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (13)

P.AAY:	BYTE	(7)"."," ","A","B","S"		; . ABS					401262' 056 040 101 102 123
	BYTE	(7)".",000,000,000,000		; .					401263' 056 000 000 000 000


ROUTINE_NAME=	    P.AAS			;						000000	401242'


GSD_CNAME:
	PUSH	SP,AC0				; SP,AC0				401264' 261 17 0 00 000000		0980
	MOVE	AC0,-5(SP)			; AC0,ASCPTR				401265' 200 00 0 17 777773		1044
	MOVE	AC1,AC0				; AC1,AC0				401266' 200 01 0 00 000000
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				401267' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				401270' 505 02 0 00 010700
	MOVEI	AC1,7				; AC1,7					401271' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					401272' 201 04 0 00 000007
	MOVE	AC5,C.30			; AC5,[POINT 7,P.AAW-1,34]  <1,7>	401273' 200 05 0 00 401325'
	EXTEND	AC1,C.29			; AC1,[CMPSE ]				401274' 123 01 0 00 401324'
	JRST	L.55				; L.55					401275' 254 00 0 00 401301'
	PUSH	SP,AC0				; SP,AC0				401276' 261 17 0 00 000000		1049
	PUSH	SP,C.31				; SP,[40]				401277' 261 17 0 00 401326'
	JRST	L.57				; L.57					401300' 254 00 0 00 401316'
L.55:	MOVE	AC1,AC0				; AC1,AC0				401301' 200 01 0 00 000000		1053
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				401302' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				401303' 505 02 0 00 010700
	MOVEI	AC1,7				; AC1,7					401304' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					401305' 201 04 0 00 000007
	MOVE	AC5,C.32			; AC5,[POINT 7,P.AAX-1,34]  <1,7>	401306' 200 05 0 00 401327'
	EXTEND	AC1,C.29			; AC1,[CMPSE ]				401307' 123 01 0 00 401324'
	JRST	L.56				; L.56					401310' 254 00 0 00 401314'
	PUSH	SP,C.33				; SP,[0,,P.AAY]				401311' 261 17 0 00 401330'		1058
	PUSH	SP,C.34				; SP,[104]				401312' 261 17 0 00 401331'
	JRST	L.57				; L.57					401313' 254 00 0 00 401316'
L.56:	PUSH	SP,AC0				; SP,AC0				401314' 261 17 0 00 000000		1062
	PUSH	SP,C.35				; SP,[144]				401315' 261 17 0 00 401332'
L.57:	PUSH	SP,-5(SP)			; SP,VALUE				401316' 261 17 0 17 777773
	PUSH	SP,-5(SP)			; SP,FILE_PTR				401317' 261 17 0 17 777773
	PUSHJ	SP,GSD_PSN			; SP,GSD_PSN				401320' 260 17 0 00 000000V
	ADJSP	SP,-4				; SP,-4					401321' 105 17 0 00 777774		1014
	POP	SP,AC0				; SP,AC0				401322' 262 17 0 00 000000		0980
	POPJ	SP,				; SP,					401323' 263 17 0 00 000000
C.29:	CMPSE					; 					401324' 002 00 0 00 000000
C.30:	POINT	7,P.AAW-1,34			; 7,P.AAW-1,34				401325' 01 07 0 00 401255'
C.31:	EXP	40				; 40					401326' 000000	000040
C.32:	POINT	7,P.AAX-1,34			; 7,P.AAX-1,34				401327' 01 07 0 00 401257'
C.33:	XWD	0,P.AAY				; 0,P.AAY				401330' 000000	401262'
C.34:	EXP	104				; 104					401331' 000000	000104
C.35:	EXP	144				; 144					401332' 000000	000144

; Routine Size:  39 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  44
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (14)

;	  1066	ROUTINE GSD_ISN (ASCPTR, FLAGS, VALUE, FILE_PTR) : NOVALUE = 	!PROCESS INTERNAL SYMBOL NAME ENTRY
;	  1067	
;	  1068	!++
;	  1069	! FUNCTIONAL DESCRIPTION:
;	  1070	!
;	  1071	!	PROCESS THE INTERNAL SYMBOL NAME ENTRY OF THE GSD RECORD.
;	  1072	!	 THIS IS NOT IMPLEMENTED SINCE MACY11 DOES NOT PRODUCE
;	  1073	!	 THESE RECORDS.
;	  1074	!
;	  1075	! FORMAL PARAMETERS:
;	  1076	!
;	  1077	!	ASCPTR - POINTER TO NAME, IN ASCII
;	  1078	!	FLAGS - THE FLAGS BYTE
;	  1079	!	VALUE - THE VALUE WORD
;	  1080	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  1081	!
;	  1082	! IMPLICIT INPUTS:
;	  1083	!
;	  1084	!	NONE
;	  1085	!
;	  1086	! IMPLICIT OUTPUTS:
;	  1087	!
;	  1088	!	NONE
;	  1089	!
;	  1090	! ROUTINE VALUE:
;	  1091	!
;	  1092	!	NONE
;	  1093	!
;	  1094	! SIDE EFFECTS
;	  1095	!
;	  1096	!	PRINTS AN ERROR MESSAGE
;	  1097	!
;	  1098	!--
;	  1099	
;	  1100	    BEGIN
;	  1101	
;	  1102	    BIND
;	  1103		ROUTINE_NAME = UPLIT (%ASCIZ'GSD_ISN');
;	  1104	
;	  1105	    IF (DEBUG GEQ 1)
;	  1106	    THEN
;	  1107		BEGIN
;	  1108		PCRLF (1);
;	  1109		OUTPUT (1, %O'11');
;	  1110		OUTPUT (1, %O'11');
;	  1111		OUTSTR (1, UPLIT (%ASCIZ'INTERNAL SYMBOL NAME, NAME = '));
;	  1112		OUTSTR (1, .ASCPTR);
;	  1113		OUTSTR (1, UPLIT (%ASCIZ', FLAGS = '));
;	  1114		OUTNUM (1, .FLAGS, 8, 0);
;	  1115		OUTSTR (1, UPLIT (%ASCIZ', VALUE = '));
;	  1116		OUTNUM (1, .VALUE, 8, 0);
;	  1117		END;					!DEBUG
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  45
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (14)

;	  1118	
;	  1119	    ERRMSG (0, 12, ROUTINE_NAME, 0, 0, 0, 0);
;	  1120	    END;					!OF GSD_ISN


P.AAZ:	BYTE	(7)"G","S","D","_","I"		; GSD_I					401333' 107 123 104 137 111
	BYTE	(7)"S","N",000,000,000		; SN					401334' 123 116 000 000 000
P.ABA:	BYTE	(7)"I","N","T","E","R"		; INTER					401335' 111 116 124 105 122
	BYTE	(7)"N","A","L"," ","S"		; NAL S					401336' 116 101 114 040 123
	BYTE	(7)"Y","M","B","O","L"		; YMBOL					401337' 131 115 102 117 114
	BYTE	(7)" ","N","A","M","E"		;  NAME					401340' 040 116 101 115 105
	BYTE	(7)","," ","N","A","M"		; , NAM					401341' 054 040 116 101 115
	BYTE	(7)"E"," ","="," ",000		; E =					401342' 105 040 075 040 000
P.ABB:	BYTE	(7)","," ","F","L","A"		; , FLA					401343' 054 040 106 114 101
	BYTE	(7)"G","S"," ","="," "		; GS =					401344' 107 123 040 075 040
	BYTE	(7)000,000,000,000,000		;					401345' 000 000 000 000 000
P.ABC:	BYTE	(7)","," ","V","A","L"		; , VAL					401346' 054 040 126 101 114
	BYTE	(7)"U","E"," ","="," "		; UE =					401347' 125 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					401350' 000 000 000 000 000


ROUTINE_NAME=	    P.AAZ			;						000000	401333'


GSD_ISN:PUSH	SP,C.4				; SP,[0]				401351' 261 17 0 00 400203'		1119
	PUSH	SP,C.20				; SP,[14]				401352' 261 17 0 00 401034'
	PUSH	SP,C.36				; SP,[0,,ROUTINE_NAME]			401353' 261 17 0 00 401363'
	PUSH	SP,C.4				; SP,[0]				401354' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401355' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401356' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401357' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401360' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					401361' 105 17 0 00 777771		1100
	POPJ	SP,				; SP,					401362' 263 17 0 00 000000		1066
C.36:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			401363' 000000	401333'

; Routine Size:  11 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  46
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (15)

;	  1121	ROUTINE GSD_TRA (ASCPTR, FLAGS, VALUE, FILE_PTR) : NOVALUE = 	!PROCESS TRANSFER ADDRESS ENTRY
;	  1122	
;	  1123	!++
;	  1124	! FUNCTIONAL DESCRIPTION:
;	  1125	!
;	  1126	!	PROCESS THE TRANSFER ADDRESS ENTRY OF THE GSD RECORD
;	  1127	!
;	  1128	! FORMAL PARAMETERS:
;	  1129	!
;	  1130	!	ASCPTR - POINTER TO NAME, IN ASCII
;	  1131	!	FLAGS - THE FLAGS BYTE
;	  1132	!	VALUE - THE VALUE WORD
;	  1133	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  1134	!
;	  1135	! IMPLICIT INPUTS:
;	  1136	!
;	  1137	!	NONE
;	  1138	!
;	  1139	! IMPLICIT OUTPUTS:
;	  1140	!
;	  1141	!	STORES THE TRANSFER ADDRESS IN THE DATA STRUCTURE
;	  1142	!
;	  1143	! ROUTINE VALUE:
;	  1144	!
;	  1145	!	NONE
;	  1146	!
;	  1147	! SIDE EFFECTS
;	  1148	!
;	  1149	!	NONE
;	  1150	!
;	  1151	!--
;	  1152	
;	  1153	    BEGIN
;	  1154	
;	  1155	    BIND
;	  1156		ROUTINE_NAME = UPLIT (%ASCIZ'GSD_TRA');
;	  1157	
;	  1158	    MAP
;	  1159		FILE_PTR : REF FILE_BLOCK;
;	  1160	
;	  1161	    LOCAL
;	  1162		MODU_PTR : REF MODU_BLOCK,
;	  1163		PSECT_PTR : REF PSECT_BLOCK,
;	  1164		PSECT_INFO : VECTOR [3];
;	  1165	
;	  1166	    IF (DEBUG GEQ 1)
;	  1167	    THEN
;	  1168		BEGIN
;	  1169		PCRLF (1);
;	  1170		OUTPUT (1, %O'11');
;	  1171		OUTPUT (1, %O'11');
;	  1172		OUTSTR (1, UPLIT (%ASCIZ'TRANSFER ADDRESS, NAME = '));
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  47
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (15)

;	  1173		OUTSTR (1, .ASCPTR);
;	  1174		OUTSTR (1, UPLIT (%ASCIZ', FLAGS = '));
;	  1175		OUTNUM (1, .FLAGS, 8, 0);
;	  1176		OUTSTR (1, UPLIT (%ASCIZ', VALUE = '));
;	  1177		OUTNUM (1, .VALUE, 8, 0);
;	  1178		END;					!DEBUG
;	  1179	
;	  1180	    IF ((MODU_PTR = .FILE_PTR [FILE_MODU]) EQL 0)
;	  1181	    THEN
;	  1182		ERRMSG (0, 10, ROUTINE_NAME, 0, 0, 0, 0)
;	  1183	    ELSE
;	  1184		BEGIN
;	  1185		PSECT_INFO [0] = .ASCPTR;
;	  1186		PSECT_INFO [1] = 0;
;	  1187		PSECT_INFO [2] = 0;
;	  1188		PSECT_PTR = FND_CHAIN (.MODU_PTR [MODU_PSECTS], SEL_PSECT, PSECT_INFO);
;	  1189	
;	  1190		IF (.PSECT_PTR EQL 0)
;	  1191		THEN
;	  1192		    MODU_PTR [MODU_XFR_OFFSET] = .VALUE
;	  1193		ELSE
;	  1194		    BEGIN
;	  1195		    MODU_PTR [MODU_XFR_PSECT] = .PSECT_PTR;
;	  1196		    MODU_PTR [MODU_XFR_OFFSET] = .VALUE + .PSECT_PTR [PSECT_OFFSET];
;	  1197		    END;
;	  1198	
;	  1199		END;
;	  1200	
;	  1201	    END;					!OF GSD_TRA


P.ABD:	BYTE	(7)"G","S","D","_","T"		; GSD_T					401364' 107 123 104 137 124
	BYTE	(7)"R","A",000,000,000		; RA					401365' 122 101 000 000 000
P.ABE:	BYTE	(7)"T","R","A","N","S"		; TRANS					401366' 124 122 101 116 123
	BYTE	(7)"F","E","R"," ","A"		; FER A					401367' 106 105 122 040 101
	BYTE	(7)"D","D","R","E","S"		; DDRES					401370' 104 104 122 105 123
	BYTE	(7)"S",","," ","N","A"		; S, NA					401371' 123 054 040 116 101
	BYTE	(7)"M","E"," ","="," "		; ME =					401372' 115 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					401373' 000 000 000 000 000
P.ABF:	BYTE	(7)","," ","F","L","A"		; , FLA					401374' 054 040 106 114 101
	BYTE	(7)"G","S"," ","="," "		; GS =					401375' 107 123 040 075 040
	BYTE	(7)000,000,000,000,000		;					401376' 000 000 000 000 000
P.ABG:	BYTE	(7)","," ","V","A","L"		; , VAL					401377' 054 040 126 101 114
	BYTE	(7)"U","E"," ","="," "		; UE =					401400' 125 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					401401' 000 000 000 000 000


ROUTINE_NAME=	    P.ABD			;						000000	401364'


GSD_TRA:PUSH	SP,AC0				; SP,AC0				401402' 261 17 0 00 000000		1121
	ADJSP	SP,3				; SP,3					401403' 105 17 0 00 000003
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  48
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (15)

	MOVE	AC1,-5(SP)			; AC1,FILE_PTR				401404' 200 01 0 17 777773		1180
	HRRZ	AC0,14(AC1)			; MODU_PTR,14(AC1)			401405' 550 00 0 01 000014
	JUMPN	AC0,L.58			; MODU_PTR,L.58				401406' 326 00 0 00 401421'
	PUSH	SP,C.4				; SP,[0]				401407' 261 17 0 00 400203'		1182
	PUSH	SP,C.5				; SP,[12]				401410' 261 17 0 00 400204'
	PUSH	SP,C.38				; SP,[0,,ROUTINE_NAME]			401411' 261 17 0 00 401453'
	PUSH	SP,C.4				; SP,[0]				401412' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401413' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401414' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401415' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401416' 260 17 0 00 000000*
	ADJSP	SP,-4				; SP,-4					401417' 105 17 0 00 777774
	JRST	L.61				; L.61					401420' 254 00 0 00 401446'		1180
L.58:	MOVE	AC1,-10(SP)			; AC1,ASCPTR				401421' 200 01 0 17 777770		1185
	MOVEM	AC1,-2(SP)			; AC1,PSECT_INFO			401422' 202 01 0 17 777776
	SETZM	-1(SP)				; PSECT_INFO+1				401423' 402 00 0 17 777777		1186
	SETZM	0(SP)				; PSECT_INFO+2				401424' 402 00 0 17 000000		1187
	MOVE	AC2,AC0				; AC2,MODU_PTR				401425' 200 02 0 00 000000		1188
	HRRZ	AC1,7(AC2)			; AC1,7(AC2)				401426' 550 01 0 02 000007
	PUSH	SP,AC1				; SP,AC1				401427' 261 17 0 00 000001
	PUSH	SP,C.39				; SP,[0,,SEL_PSECT]			401430' 261 17 0 00 401454'
	MOVEI	AC1,-4(SP)			; AC1,PSECT_INFO			401431' 201 01 0 17 777774
	PUSH	SP,AC1				; SP,AC1				401432' 261 17 0 00 000001
	PUSHJ	SP,FND_CHAIN			; SP,FND_CHAIN				401433' 260 17 0 00 000000*
	MOVE	AC2,AC0				; AC2,MODU_PTR				401434' 200 02 0 00 000000		1192
	ADDI	AC2,5				; AC2,5					401435' 271 02 0 00 000005
	JUMPN	AC1,L.59			; PSECT_PTR,L.59			401436' 326 01 0 00 401441'		1190
	MOVE	AC0,-11(SP)			; AC0,VALUE				401437' 200 00 0 17 777767		1192
	JRST	L.60				; L.60					401440' 254 00 0 00 401445'
L.59:	HRRM	AC1,0(AC2)			; PSECT_PTR,0(AC2)			401441' 542 01 0 02 000000		1195
	MOVE	AC0,-11(SP)			; AC0,VALUE				401442' 200 00 0 17 777767		1196
	HLRZ	AC3,4(AC1)			; AC3,4(PSECT_PTR)			401443' 554 03 0 01 000004
	ADD	AC0,AC3				; AC0,AC3				401444' 270 00 0 00 000003
L.60:	DPB	AC0,C.37			; AC0,[POINT 16,0(AC2),17]  <18,16>	401445' 137 00 0 00 401452'
L.61:	ADJSP	SP,-3				; SP,-3					401446' 105 17 0 00 777775		1153
	ADJSP	SP,-3				; SP,-3					401447' 105 17 0 00 777775		1121
	POP	SP,AC0				; SP,AC0				401450' 262 17 0 00 000000
	POPJ	SP,				; SP,					401451' 263 17 0 00 000000
C.37:	POINT	16,0(AC2),17			; 16,0(AC2),17				401452' 22 20 0 02 000000
C.38:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			401453' 000000	401364'
C.39:	XWD	0,SEL_PSECT			; 0,SEL_PSECT				401454' 000000	000000V

; Routine Size:  43 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  49
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (16)

;	  1202	ROUTINE SEL_GLOBAL (GLOBAL_PTR, GLOBAL_INFO) = 	!SELECT PROPER GLOBAL
;	  1203	
;	  1204	!++
;	  1205	! FUNCTIONAL DESCRIPTION:
;	  1206	!
;	  1207	!	SELECT THE GLOBAL DESCRIBED FROM THE LIST OF ALL GLOBALS.
;	  1208	!	 USED IN A CALL TO FND_CHAIN.
;	  1209	!
;	  1210	! FORMAL PARAMETERS:
;	  1211	!
;	  1212	!	GLOBAL_PTR - POINTER TO GLOBAL TO TEST FOR SUITABILITY
;	  1213	!	GLOBAL_INFO - INFORMATION ABOUT THE GLOBAL WE ARE LOOKING FOR
;	  1214	!
;	  1215	! IMPLICIT INPUTS:
;	  1216	!
;	  1217	!	NONE
;	  1218	!
;	  1219	! IMPLICIT OUTPUTS:
;	  1220	!
;	  1221	!	NONE
;	  1222	!
;	  1223	! ROUTINE VALUE:
;	  1224	!
;	  1225	!	POINTER TO THE GLOBAL, OR 0.
;	  1226	!
;	  1227	! SIDE EFFECTS
;	  1228	!
;	  1229	!	NONE
;	  1230	!
;	  1231	!--
;	  1232	
;	  1233	    BEGIN
;	  1234	
;	  1235	    MAP
;	  1236		GLOBAL_PTR : REF GLOBL_BLOCK,
;	  1237		GLOBAL_INFO : REF VECTOR [3];
;	  1238	
;	  1239	!
;	  1240	! THE GLOBAL_INFO VECTOR CONTAINS:
;	  1241	!
;	  1242	! 0: POINTER TO THE GLOBAL NAME, IN ASCII
;	  1243	! 1: THE GLOBAL FLAGS
;	  1244	! 2: THE "VALUE" WORD FROM THE GLOBAL
;	  1245	!
;	  1246	
;	  1247	    IF (CH$NEQ (LEN_GBL_NAME, CH$PTR (.GLOBAL_INFO [0]), LEN_GBL_NAME, CH$PTR (GLOBAL_PTR [GBL_NAME])))
;	  1248	    THEN
;	  1249		0
;	  1250	    ELSE
;	  1251		.GLOBAL_PTR
;	  1252	
;	  1253	    END;					!OF SEL_GLOBAL
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  50
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (16)



SEL_GLOBAL:
	MOVE	AC1,-1(SP)			; AC1,GLOBAL_INFO			401455' 200 01 0 17 777777		1247
	MOVE	AC1,0(AC1)			; AC1,0(AC1)				401456' 200 01 0 01 000000
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				401457' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				401460' 505 02 0 00 010700
	MOVE	AC3,-2(SP)			; AC3,GLOBAL_PTR			401461' 200 03 0 17 777776
	MOVEI	AC5,0(AC3)			; AC5,0(AC3)				401462' 201 05 0 03 000000
	HRLI	AC5,10700			; AC5,10700				401463' 505 05 0 00 010700
	MOVEI	AC1,7				; AC1,7					401464' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					401465' 201 04 0 00 000007
	EXTEND	AC1,C.40			; AC1,[CMPSN ]				401466' 123 01 0 00 401473'
	JRST	L.62				; L.62					401467' 254 00 0 00 401471'
	TDZA	AC1,AC1				; AC1,AC1				401470' 634 01 0 00 000001
L.62:	MOVE	AC1,AC3				; AC1,AC3				401471' 200 01 0 00 000003
	POPJ	SP,				; SP,					401472' 263 17 0 00 000000		1202
C.40:	CMPSN					; 					401473' 006 00 0 00 000000

; Routine Size:  15 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  51
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (17)

;	  1254	ROUTINE GSD_GSN (ASCPTR, FLAGS, VALUE, FILE_PTR) : NOVALUE = 	!PROCESS GLOBAL SYMBOL NAME
;	  1255	
;	  1256	!++
;	  1257	! FUNCTIONAL DESCRIPTION:
;	  1258	!
;	  1259	!	PROCESS THE GLOBAL SYMBOL NAME ENTRY OF THE GSD RECORD
;	  1260	!
;	  1261	! FORMAL PARAMETERS:
;	  1262	!
;	  1263	!	ASCPTR - POINTER TO NAME, IN ASCII
;	  1264	!	FLAGS - THE FLAGS BYTE
;	  1265	!	VALUE - THE VALUE WORD
;	  1266	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  1267	!
;	  1268	! IMPLICIT INPUTS:
;	  1269	!
;	  1270	!	NONE
;	  1271	!
;	  1272	! IMPLICIT OUTPUTS:
;	  1273	!
;	  1274	!	ADDS THE GLOBAL SYMBOL TO THE DATA STRUCTURE
;	  1275	!
;	  1276	! ROUTINE VALUE:
;	  1277	!
;	  1278	!	NONE
;	  1279	!
;	  1280	! SIDE EFFECTS
;	  1281	!
;	  1282	!	OBTAINS SPACE FROM THE FREE LIST
;	  1283	!
;	  1284	!--
;	  1285	
;	  1286	    BEGIN
;	  1287	
;	  1288	    BIND
;	  1289		ROUTINE_NAME = UPLIT (%ASCIZ'GSD_GSN');
;	  1290	
;	  1291	    MAP
;	  1292		FILE_PTR : REF FILE_BLOCK;
;	  1293	
;	  1294	    LOCAL
;	  1295		GLOBL_PTR : REF GLOBL_BLOCK,
;	  1296		GLOBAL_INFO : VECTOR [3],
;	  1297		MODU_PTR : REF MODU_BLOCK,
;	  1298		MODU_PTR1 : REF MODU_BLOCK,
;	  1299		PSECT_PTR : REF PSECT_BLOCK,
;	  1300		TEMP_FLAGS;
;	  1301	
;	  1302	    IF (DEBUG GEQ 1)
;	  1303	    THEN
;	  1304		BEGIN
;	  1305		PCRLF (1);
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  52
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (17)

;	  1306		OUTPUT (1, %O'11');
;	  1307		OUTPUT (1, %O'11');
;	  1308		OUTSTR (1, UPLIT (%ASCIZ'GLOBAL SYMBOL NAME, NAME = '));
;	  1309		OUTSTR (1, .ASCPTR);
;	  1310		OUTSTR (1, UPLIT (%ASCIZ', FLAGS = '));
;	  1311		OUTNUM (1, .FLAGS, 8, 0);
;	  1312		OUTSTR (1, UPLIT (%ASCIZ', VALUE = '));
;	  1313		OUTNUM (1, .VALUE, 8, 0);
;	  1314		END;					!DEBUG
;	  1315	
;	  1316	    IF ((MODU_PTR = .FILE_PTR [FILE_MODU]) EQL 0)
;	  1317	    THEN
;	  1318		ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
;	  1319		    0, 0)
;	  1320	    ELSE
;	  1321		BEGIN					!WE ARE PROCESSING A MODULE
;	  1322		PSECT_PTR = .MODU_PTR [MODU_PSECT];
;	  1323		GLOBAL_INFO [0] = .ASCPTR;
;	  1324		GLOBAL_INFO [1] = .FLAGS;
;	  1325		GLOBAL_INFO [2] = .VALUE;
;	  1326	!
;	  1327	! BE SURE THE GLOBAL IS NOT ALREADY CHAINED TO THE CURRENT MODULE.
;	  1328	!
;	  1329		GLOBL_PTR = FND_CHAIN (.MODU_PTR [MODU_GLOBALS], SEL_GLOBAL, GLOBAL_INFO);
;	  1330	
;	  1331		IF (.GLOBL_PTR NEQ 0)
;	  1332		THEN
;	  1333		    BEGIN				!ALREADY CHAINED
;	  1334		    MODU_PTR1 = .GLOBL_PTR [GBL_DEF_MODU];
;	  1335		    TEMP_FLAGS = .GLOBL_PTR [GBL_FLAGS];
;	  1336		    ERRMSG (0, 13, GLOBL_PTR [GBL_NAME], MODU_PTR1 [MODU_NAME], 	!
;	  1337			.GLOBL_PTR [GBL_VALUE] + 	!
;	  1338			(IF (.TEMP_FLAGS<GBL_FLG_REL, 1> EQL 0) THEN 0 ELSE %O'200000'), 	!
;	  1339			MODU_PTR [MODU_NAME], 		!
;	  1340			.VALUE + (IF (.FLAGS<GBL_FLG_REL, 1> EQL 0) THEN 0 ELSE %O'200000'));
;	  1341		    END
;	  1342		ELSE
;	  1343		    BEGIN				!NO PREVIOUS REFERENCE TO THIS SYMBOL
;	  1344	
;	  1345		    IF ((GLOBL_PTR = GETBLK (GLOBL_TYP, GLOBL_LEN)) EQL 0)
;	  1346		    THEN
;	  1347			ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0,
;	  1348			    0)
;	  1349		    ELSE
;	  1350			BEGIN				!WE HAVE STORAGE FOR THE GLOBAL BLOCK
;	  1351			CH$MOVE (LEN_GBL_NAME, CH$PTR (.ASCPTR), CH$PTR (GLOBL_PTR [GBL_NAME]));
;	  1352			GLOBL_PTR [GBL_FLAGS] = .FLAGS;
;	  1353			GLOBL_PTR [GBL_VALUE] = .VALUE;
;	  1354			GLOBL_PTR [GBL_DEF_MODU] = .MODU_PTR;
;	  1355	
;	  1356			IF ((MODU_PTR [MODU_GLOBALS] = BLD_CHAIN (.MODU_PTR, .MODU_PTR [MODU_GLOBALS], .GLOBL_PTR))
;	  1357			    EQL 0)
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  53
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (17)

;	  1358			THEN
;	  1359			    ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0);
;	  1360	
;	  1361			IF (.FLAGS<GBL_FLG_REL, 1> NEQ 0)
;	  1362			THEN
;	  1363			    BEGIN
;	  1364			    GLOBL_PTR [GBL_DEF_PSECT] = .PSECT_PTR;
;	  1365			    GLOBL_PTR [GBL_DEF_OFFSET] = .PSECT_PTR [PSECT_OFFSET];
;	  1366			    END;
;	  1367	
;	  1368			END;
;	  1369	
;	  1370		    END;
;	  1371	
;	  1372		END;
;	  1373	
;	  1374	    END;					!OF GSD_GSN


P.ABH:	BYTE	(7)"G","S","D","_","G"		; GSD_G					401474' 107 123 104 137 107
	BYTE	(7)"S","N",000,000,000		; SN					401475' 123 116 000 000 000
P.ABI:	BYTE	(7)"G","L","O","B","A"		; GLOBA					401476' 107 114 117 102 101
	BYTE	(7)"L"," ","S","Y","M"		; L SYM					401477' 114 040 123 131 115
	BYTE	(7)"B","O","L"," ","N"		; BOL N					401500' 102 117 114 040 116
	BYTE	(7)"A","M","E",","," "		; AME,					401501' 101 115 105 054 040
	BYTE	(7)"N","A","M","E"," "		; NAME					401502' 116 101 115 105 040
	BYTE	(7)"="," ",000,000,000		; =					401503' 075 040 000 000 000
P.ABJ:	BYTE	(7)","," ","F","L","A"		; , FLA					401504' 054 040 106 114 101
	BYTE	(7)"G","S"," ","="," "		; GS =					401505' 107 123 040 075 040
	BYTE	(7)000,000,000,000,000		;					401506' 000 000 000 000 000
P.ABK:	BYTE	(7)","," ","V","A","L"		; , VAL					401507' 054 040 126 101 114
	BYTE	(7)"U","E"," ","="," "		; UE =					401510' 125 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					401511' 000 000 000 000 000


ROUTINE_NAME=	    P.ABH			;						000000	401474'


GSD_GSN:PUSH	SP,AC0				; SP,AC0				401512' 261 17 0 00 000000		1254
	PUSH	SP,AC10				; SP,AC10				401513' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				401514' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				401515' 261 17 0 00 000012
	ADJSP	SP,3				; SP,3					401516' 105 17 0 00 000003
	MOVE	AC1,-10(SP)			; AC1,FILE_PTR				401517' 200 01 0 17 777770		1316
	HRRZ	AC0,14(AC1)			; MODU_PTR,14(AC1)			401520' 550 00 0 01 000014
	JUMPN	AC0,L.63			; MODU_PTR,L.63				401521' 326 00 0 00 401535'
	PUSH	SP,C.4				; SP,[0]				401522' 261 17 0 00 400203'		1318
	PUSH	SP,C.5				; SP,[12]				401523' 261 17 0 00 400204'
	PUSH	SP,C.45				; SP,[0,,ROUTINE_NAME]			401524' 261 17 0 00 401710'
	ADDI	AC1,2				; AC1,2					401525' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				401526' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				401527' 261 17 0 00 400203'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  54
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (17)

	PUSH	SP,C.4				; SP,[0]				401530' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401531' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401532' 260 17 0 00 000000*
	ADJSP	SP,-4				; SP,-4					401533' 105 17 0 00 777774
	JRST	L.69				; L.69					401534' 254 00 0 00 401675'		1316
L.63:	MOVE	AC1,AC0				; AC1,MODU_PTR				401535' 200 01 0 00 000000		1322
	HLRZ	AC11,7(AC1)			; PSECT_PTR,7(AC1)			401536' 554 11 0 01 000007
	MOVE	AC12,-13(SP)			; AC12,ASCPTR				401537' 200 12 0 17 777765		1323
	MOVEM	AC12,-2(SP)			; AC12,GLOBAL_INFO			401540' 202 12 0 17 777776
	MOVE	AC1,-12(SP)			; AC1,FLAGS				401541' 200 01 0 17 777766		1324
	MOVEM	AC1,-1(SP)			; AC1,GLOBAL_INFO+1			401542' 202 01 0 17 777777
	MOVE	AC1,-11(SP)			; AC1,VALUE				401543' 200 01 0 17 777767		1325
	MOVEM	AC1,0(SP)			; AC1,GLOBAL_INFO+2			401544' 202 01 0 17 000000
	MOVE	AC2,AC0				; AC2,MODU_PTR				401545' 200 02 0 00 000000		1329
	HLRZ	AC1,10(AC2)			; AC1,10(AC2)				401546' 554 01 0 02 000010
	PUSH	SP,AC1				; SP,AC1				401547' 261 17 0 00 000001
	PUSH	SP,C.46				; SP,[0,,SEL_GLOBAL]			401550' 261 17 0 00 401711'
	MOVEI	AC1,-4(SP)			; AC1,GLOBAL_INFO			401551' 201 01 0 17 777774
	PUSH	SP,AC1				; SP,AC1				401552' 261 17 0 00 000001
	PUSHJ	SP,FND_CHAIN			; SP,FND_CHAIN				401553' 260 17 0 00 000000*
	MOVE	AC10,AC1			; GLOBL_PTR,AC1				401554' 200 10 0 00 000001
	JUMPE	AC10,L.65			; GLOBL_PTR,L.65			401555' 322 10 0 00 401607'		1331
	HLRZ	AC2,4(AC10)			; MODU_PTR1,4(GLOBL_PTR)		401556' 554 02 0 10 000004		1334
	LDB	AC1,C.41			; TEMP_FLAGS,[POINT 8,3(GLOBL_PTR),34]  <1,8>
						;					401557' 135 01 0 00 401704'		1335
	SETZM	0(SP)				; 0(SP)					401560' 402 00 0 17 000000		1336
	PUSH	SP,C.47				; SP,[15]				401561' 261 17 0 00 401712'
	MOVE	AC3,AC10			; AC3,GLOBL_PTR				401562' 200 03 0 00 000010
	ADDI	AC3,1				; AC3,1					401563' 271 03 0 00 000001
	PUSH	SP,AC3				; SP,AC3				401564' 261 17 0 00 000003
	ADDI	AC2,1				; MODU_PTR1,1				401565' 271 02 0 00 000001
	PUSH	SP,AC2				; SP,MODU_PTR1				401566' 261 17 0 00 000002
	TRNN	AC1,40				; TEMP_FLAGS,40				401567' 606 01 0 00 000040		1338
	TDZA	AC1,AC1				; AC1,AC1				401570' 634 01 0 00 000001
	MOVEI	AC1,200000			; AC1,200000				401571' 201 01 0 00 200000
	LDB	AC2,C.42			; AC2,[POINT 16,3(GLOBL_PTR),26]  <9,16>401572' 135 02 0 00 401705'		1337
	ADD	AC1,AC2				; AC1,AC2				401573' 270 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				401574' 261 17 0 00 000001
	MOVE	AC1,AC0				; AC1,MODU_PTR				401575' 200 01 0 00 000000		1339
	ADDI	AC1,1				; AC1,1					401576' 271 01 0 00 000001
	PUSH	SP,AC1				; SP,AC1				401577' 261 17 0 00 000001
	LDB	AC1,C.43			; AC1,[POINT 1,FLAGS,30]  <5,1>		401600' 135 01 0 00 401706'		1340
	JUMPN	AC1,L.64			; AC1,L.64				401601' 326 01 0 00 401603'
	TDZA	AC1,AC1				; AC1,AC1				401602' 634 01 0 00 000001
L.64:	MOVEI	AC1,200000			; AC1,200000				401603' 201 01 0 00 200000
	ADD	AC1,-21(SP)			; AC1,VALUE				401604' 270 01 0 17 777757
	PUSH	SP,AC1				; SP,AC1				401605' 261 17 0 00 000001
	JRST	L.66				; L.66					401606' 254 00 0 00 401624'
L.65:	PUSH	SP,C.48				; SP,[5]				401607' 261 17 0 00 401713'		1345
	PUSH	SP,C.49				; SP,[10]				401610' 261 17 0 00 401714'
	PUSHJ	SP,GETBLK			; SP,GETBLK				401611' 260 17 0 00 000000*
	MOVE	AC10,AC1			; GLOBL_PTR,AC1				401612' 200 10 0 00 000001
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  55
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (17)

	ADJSP	SP,-2				; SP,-2					401613' 105 17 0 00 777776
	JUMPN	AC10,L.67			; GLOBL_PTR,L.67			401614' 326 10 0 00 401627'
	SETZM	0(SP)				; 0(SP)					401615' 402 00 0 17 000000		1347
	PUSH	SP,C.7				; SP,[1]				401616' 261 17 0 00 400206'
	PUSH	SP,C.45				; SP,[0,,ROUTINE_NAME]			401617' 261 17 0 00 401710'
	PUSH	SP,C.4				; SP,[0]				401620' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401621' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401622' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401623' 261 17 0 00 400203'
L.66:	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401624' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					401625' 105 17 0 00 777772
	JRST	L.69				; L.69					401626' 254 00 0 00 401675'		1345
L.67:	MOVE	AC1,AC12			; AC1,AC12				401627' 200 01 0 00 000012		1351
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				401630' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				401631' 505 02 0 00 010700
	MOVEI	AC5,0(AC10)			; AC5,0(GLOBL_PTR)			401632' 201 05 0 10 000000
	HRLI	AC5,10700			; AC5,10700				401633' 505 05 0 00 010700
	MOVEI	AC1,7				; AC1,7					401634' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					401635' 201 04 0 00 000007
	EXTEND	AC1,C.24			; AC1,[MOVSLJ ]				401636' 123 01 0 00 401235'
	JFCL					; 					401637' 255 00 0 00 000000
	MOVE	AC1,-15(SP)			; AC1,FLAGS				401640' 200 01 0 17 777763		1352
	DPB	AC1,C.41			; AC1,[POINT 8,3(GLOBL_PTR),34]  <1,8>	401641' 137 01 0 00 401704'
	MOVE	AC1,-14(SP)			; AC1,VALUE				401642' 200 01 0 17 777764		1353
	DPB	AC1,C.42			; AC1,[POINT 16,3(GLOBL_PTR),26]  <9,16>401643' 137 01 0 00 401705'
	HRLM	AC0,4(AC10)			; MODU_PTR,4(GLOBL_PTR)			401644' 506 00 0 10 000004		1354
	MOVEM	AC0,0(SP)			; MODU_PTR,0(SP)			401645' 202 00 0 17 000000		1356
	MOVE	AC2,AC0				; AC2,MODU_PTR				401646' 200 02 0 00 000000
	HLRZ	AC1,10(AC2)			; AC1,10(AC2)				401647' 554 01 0 02 000010
	PUSH	SP,AC1				; SP,AC1				401650' 261 17 0 00 000001
	PUSH	SP,AC10				; SP,GLOBL_PTR				401651' 261 17 0 00 000010
	PUSHJ	SP,BLD_CHAIN			; SP,BLD_CHAIN				401652' 260 17 0 00 000000*
	ADJSP	SP,-2				; SP,-2					401653' 105 17 0 00 777776
	MOVE	AC2,AC0				; AC2,MODU_PTR				401654' 200 02 0 00 000000
	HRLM	AC1,10(AC2)			; AC1,10(AC2)				401655' 506 01 0 02 000010
	JUMPN	AC1,L.68			; AC1,L.68				401656' 326 01 0 00 401670'
	SETZM	0(SP)				; 0(SP)					401657' 402 00 0 17 000000		1359
	PUSH	SP,C.7				; SP,[1]				401660' 261 17 0 00 400206'
	PUSH	SP,C.45				; SP,[0,,ROUTINE_NAME]			401661' 261 17 0 00 401710'
	PUSH	SP,C.4				; SP,[0]				401662' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401663' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401664' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401665' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401666' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					401667' 105 17 0 00 777772
L.68:	LDB	AC0,C.44			; AC0,[POINT 1,FLAGS,30]  <5,1>		401670' 135 00 0 00 401707'		1361
	JUMPE	AC0,L.69			; AC0,L.69				401671' 322 00 0 00 401675'
	HRRM	AC11,5(AC10)			; PSECT_PTR,5(GLOBL_PTR)		401672' 542 11 0 10 000005		1364
	HLRZ	AC0,4(AC11)			; AC0,4(PSECT_PTR)			401673' 554 00 0 11 000004		1365
	HRLM	AC0,5(AC10)			; AC0,5(GLOBL_PTR)			401674' 506 00 0 10 000005
L.69:	ADJSP	SP,-3				; SP,-3					401675' 105 17 0 00 777775		1286
	ADJSP	SP,-3				; SP,-3					401676' 105 17 0 00 777775		1254
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  56
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (17)

	POP	SP,AC12				; SP,AC12				401677' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				401700' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				401701' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				401702' 262 17 0 00 000000
	POPJ	SP,				; SP,					401703' 263 17 0 00 000000
C.41:	POINT	8,3(AC10),34			; 8,3(GLOBL_PTR),34			401704' 01 10 0 10 000003
C.42:	POINT	16,3(AC10),26			; 16,3(GLOBL_PTR),26			401705' 11 20 0 10 000003
C.43:	POINT	1,-22(SP),30			; 1,FLAGS,30				401706' 05 01 0 17 777756
C.44:	POINT	1,-15(SP),30			; 1,FLAGS,30				401707' 05 01 0 17 777763
C.45:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			401710' 000000	401474'
C.46:	XWD	0,SEL_GLOBAL			; 0,SEL_GLOBAL				401711' 000000	401455'
C.47:	EXP	15				; 15					401712' 000000	000015
C.48:	EXP	5				; 5					401713' 000000	000005
C.49:	EXP	10				; 10					401714' 000000	000010

; Routine Size:  131 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  57
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (18)

;	  1375	ROUTINE SEL_PSECT (PSECT_PTR, PSECT_INFO) = 	!SELECT PROPER PSECT
;	  1376	
;	  1377	!++
;	  1378	! FUNCTIONAL DESCRIPTION:
;	  1379	!
;	  1380	!	SELECT THE PSECT DESCRIBED FROM THE LIST OF ALL PSECTS.
;	  1381	!	 USED IN A CALL TO FND_CHAIN.
;	  1382	!
;	  1383	! FORMAL PARAMETERS:
;	  1384	!
;	  1385	!	PSECT_PTR - POINTER TO PSECT TO TEST FOR SUITABILITY
;	  1386	!	PSECT_INFO - INFORMATION ABOUT THE PSECT WE ARE LOOKING FOR
;	  1387	!
;	  1388	! IMPLICIT INPUTS:
;	  1389	!
;	  1390	!	NONE
;	  1391	!
;	  1392	! IMPLICIT OUTPUTS:
;	  1393	!
;	  1394	!	NONE
;	  1395	!
;	  1396	! ROUTINE VALUE:
;	  1397	!
;	  1398	!	POINTER TO THE PSECT, OR 0.
;	  1399	!
;	  1400	! SIDE EFFECTS
;	  1401	!
;	  1402	!	NONE
;	  1403	!
;	  1404	!--
;	  1405	
;	  1406	    BEGIN
;	  1407	
;	  1408	    MAP
;	  1409		PSECT_PTR : REF PSECT_BLOCK,
;	  1410		PSECT_INFO : REF VECTOR [3];
;	  1411	
;	  1412	!
;	  1413	! THE PSECT_INFO VECTOR CONTAINS:
;	  1414	!
;	  1415	! 0: POINTER TO THE PSECT NAME, IN ASCII
;	  1416	! 1: THE PSECT FLAGS
;	  1417	! 2: THE MAXIMUM LENGTH OF THE PSECT
;	  1418	!
;	  1419	
;	  1420	    IF (CH$NEQ (LEN_PSECT_NAME, CH$PTR (.PSECT_INFO [0]), LEN_PSECT_NAME, CH$PTR (PSECT_PTR [PSECT_NAME])))
;	  1421	    THEN
;	  1422		0
;	  1423	    ELSE
;	  1424		.PSECT_PTR
;	  1425	
;	  1426	    END;					!OF SEL_PSECT
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  58
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (18)



SEL_PSECT:
	MOVE	AC1,-1(SP)			; AC1,PSECT_INFO			401715' 200 01 0 17 777777		1420
	MOVE	AC1,0(AC1)			; AC1,0(AC1)				401716' 200 01 0 01 000000
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				401717' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				401720' 505 02 0 00 010700
	MOVE	AC3,-2(SP)			; AC3,PSECT_PTR				401721' 200 03 0 17 777776
	MOVEI	AC5,0(AC3)			; AC5,0(AC3)				401722' 201 05 0 03 000000
	HRLI	AC5,10700			; AC5,10700				401723' 505 05 0 00 010700
	MOVEI	AC1,7				; AC1,7					401724' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					401725' 201 04 0 00 000007
	EXTEND	AC1,C.40			; AC1,[CMPSN ]				401726' 123 01 0 00 401473'
	JRST	L.70				; L.70					401727' 254 00 0 00 401731'
	TDZA	AC1,AC1				; AC1,AC1				401730' 634 01 0 00 000001
L.70:	MOVE	AC1,AC3				; AC1,AC3				401731' 200 01 0 00 000003
	POPJ	SP,				; SP,					401732' 263 17 0 00 000000		1375

; Routine Size:  14 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  59
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (19)

;	  1427	ROUTINE GSD_PSN (ASCPTR, FLAGS, VALUE, FILE_PTR) : NOVALUE = 	!PROCESS PSECT NAME
;	  1428	
;	  1429	!++
;	  1430	! FUNCTIONAL DESCRIPTION:
;	  1431	!
;	  1432	!	PROCESS THE PROGRAM SECTION NAME ENTRY OF THE GSD RECORD
;	  1433	!
;	  1434	! FORMAL PARAMETERS:
;	  1435	!
;	  1436	!	ASCPTR - POINTER TO NAME, IN ASCII
;	  1437	!	FLAGS - THE FLAGS BYTE
;	  1438	!	VALUE - THE VALUE WORD
;	  1439	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  1440	!
;	  1441	! IMPLICIT INPUTS:
;	  1442	!
;	  1443	!	NONE
;	  1444	!
;	  1445	! IMPLICIT OUTPUTS:
;	  1446	!
;	  1447	!	ADDS THE PSECT NAME TO THE DATA STRUCTURE
;	  1448	!
;	  1449	! ROUTINE VALUE:
;	  1450	!
;	  1451	!	NONE
;	  1452	!
;	  1453	! SIDE EFFECTS
;	  1454	!
;	  1455	!	OBTAINS SPACE FROM THE FREE LIST
;	  1456	!
;	  1457	!--
;	  1458	
;	  1459	    BEGIN
;	  1460	
;	  1461	    BIND
;	  1462		ROUTINE_NAME = UPLIT (%ASCIZ'GSD_PSN');
;	  1463	
;	  1464	    MAP
;	  1465		FILE_PTR : REF FILE_BLOCK;
;	  1466	
;	  1467	    LOCAL
;	  1468		MODU_PTR : REF MODU_BLOCK,
;	  1469		PSECT_PTR : REF PSECT_BLOCK,
;	  1470		PSECT_INFO : VECTOR [3],
;	  1471		SEARCH_DONE;
;	  1472	
;	  1473	    IF (DEBUG GEQ 1)
;	  1474	    THEN
;	  1475		BEGIN
;	  1476		PCRLF (1);
;	  1477		OUTPUT (1, %O'11');
;	  1478		OUTPUT (1, %O'11');
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  60
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (19)

;	  1479		OUTSTR (1, UPLIT (%ASCIZ'PSECT NAME, NAME = '));
;	  1480		OUTSTR (1, .ASCPTR);
;	  1481		OUTSTR (1, UPLIT (%ASCIZ', FLAGS = '));
;	  1482		OUTNUM (1, .FLAGS, 8, 0);
;	  1483		OUTSTR (1, UPLIT (%ASCIZ', VALUE = '));
;	  1484		OUTNUM (1, .VALUE, 8, 0);
;	  1485		END;					!DEBUG
;	  1486	
;	  1487	    IF ((MODU_PTR = .FILE_PTR [FILE_MODU]) EQL 0)
;	  1488	    THEN
;	  1489		ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
;	  1490		    0, 0)
;	  1491	    ELSE
;	  1492		BEGIN					!WE ARE PROCESSING A MODULE
;	  1493		PSECT_INFO [0] = .ASCPTR;
;	  1494		PSECT_INFO [1] = .FLAGS;
;	  1495		PSECT_INFO [2] = .VALUE;
;	  1496	!
;	  1497		PSECT_PTR = FND_CHAIN (.MODU_PTR [MODU_PSECTS], SEL_PSECT, PSECT_INFO);
;	  1498	
;	  1499		IF (.PSECT_PTR EQL 0)
;	  1500		THEN
;	  1501		    BEGIN				!FIRST REFERENCE TO THIS PSECT BY THIS MODULE
;	  1502	
;	  1503		    IF ((PSECT_PTR = GETBLK (PSECT_TYP, PSECT_LEN)) EQL 0)
;	  1504		    THEN
;	  1505			ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0,
;	  1506			    0)
;	  1507		    ELSE
;	  1508			BEGIN				!WE HAVE STORAGE FOR THE PSECT BLOCK
;	  1509			CH$MOVE (LEN_PSECT_NAME, CH$PTR (.ASCPTR), CH$PTR (PSECT_PTR [PSECT_NAME]));
;	  1510			PSECT_PTR [PSECT_FLAGS] = .FLAGS;
;	  1511			PSECT_PTR [PSECT_SIZE] = 0;
;	  1512			PSECT_PTR [PSECT_OFFSET] = 0;
;	  1513	
;	  1514			IF ((MODU_PTR [MODU_PSECTS] = BLD_CHAIN (.MODU_PTR, .MODU_PTR [MODU_PSECTS], .PSECT_PTR)) EQL
;	  1515			    0)
;	  1516			THEN
;	  1517			    ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
;	  1518			ELSE
;	  1519			    PSECT_PTR = FND_CHAIN (.MODU_PTR [MODU_PSECTS], SEL_PSECT, PSECT_INFO);
;	  1520	
;	  1521			IF (.PSECT_PTR EQL 0)
;	  1522			THEN
;	  1523			    ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
;	  1524			ELSE
;	  1525			    BEGIN
;	  1526			    MODU_PTR [MODU_PSECT] = .PSECT_PTR;
;	  1527			    PSECT_PTR [PSECT_OFFSET] = (IF (.FLAGS<PSECT_FLG_OVR, 1> NEQ 0) THEN 0 ELSE .PSECT_PTR [
;	  1528				    PSECT_SIZE] + (IF ((.PSECT_PTR [PSECT_SIZE] MOD 2) EQL 0) THEN 0 ELSE 1));
;	  1529			    PSECT_PTR [PSECT_SIZE] = (IF (.FLAGS<PSECT_FLG_OVR, 1> NEQ 0) THEN MAX (.PSECT_PTR [
;	  1530					PSECT_SIZE], .VALUE) ELSE .PSECT_PTR [PSECT_SIZE] + .VALUE);
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  61
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (19)

;	  1531			    PSECT_PTR [PSECT_SECTOR] = .MODU_PTR [MODU_SECTOR];
;	  1532	
;	  1533			    IF ((MODU_PTR [MODU_SECTOR] = .MODU_PTR [MODU_SECTOR] + 1) GTR 255)
;	  1534			    THEN
;	  1535				ERRMSG (0, 10,
;	  1536				    ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
;	  1537	
;	  1538			    END;
;	  1539	
;	  1540			END;
;	  1541	
;	  1542		    END;				!OF FIRST REFERENCE TO THIS PSECT BY THIS MODULE
;	  1543	
;	  1544		IF (((.PSECT_PTR [PSECT_FLAGS] XOR .FLAGS) AND ((1^PSECT_FLG_HI) OR (1^PSECT_FLG_LIB) OR (1^
;	  1545		    PSECT_FLG_OVR) OR (1^PSECT_FLG_RO) OR (1^PSECT_FLG_REL) OR (1^PSECT_FLG_GBL) OR (1^PSECT_FLG_DATA)
;	  1546		    )) NEQ 0)
;	  1547		THEN
;	  1548		    ERRMSG (0, 15, ROUTINE_NAME, MODU_PTR [MODU_NAME], PSECT_PTR [PSECT_NAME],
;	  1549			.PSECT_PTR [PSECT_FLAGS], .FLAGS);
;	  1550	
;	  1551		END;					!OF PROCESSING A MODULE
;	  1552	
;	  1553	    END;					!OF GSD_PSN


P.ABL:	BYTE	(7)"G","S","D","_","P"		; GSD_P					401733' 107 123 104 137 120
	BYTE	(7)"S","N",000,000,000		; SN					401734' 123 116 000 000 000
P.ABM:	BYTE	(7)"P","S","E","C","T"		; PSECT					401735' 120 123 105 103 124
	BYTE	(7)" ","N","A","M","E"		;  NAME					401736' 040 116 101 115 105
	BYTE	(7)","," ","N","A","M"		; , NAM					401737' 054 040 116 101 115
	BYTE	(7)"E"," ","="," ",000		; E =					401740' 105 040 075 040 000
P.ABN:	BYTE	(7)","," ","F","L","A"		; , FLA					401741' 054 040 106 114 101
	BYTE	(7)"G","S"," ","="," "		; GS =					401742' 107 123 040 075 040
	BYTE	(7)000,000,000,000,000		;					401743' 000 000 000 000 000
P.ABO:	BYTE	(7)","," ","V","A","L"		; , VAL					401744' 054 040 126 101 114
	BYTE	(7)"U","E"," ","="," "		; UE =					401745' 125 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					401746' 000 000 000 000 000


ROUTINE_NAME=	    P.ABL			;						000000	401733'


GSD_PSN:PUSH	SP,AC0				; SP,AC0				401747' 261 17 0 00 000000		1427
	PUSH	SP,AC10				; SP,AC10				401750' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				401751' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				401752' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				401753' 261 17 0 00 000013
	ADJSP	SP,3				; SP,3					401754' 105 17 0 00 000003
	MOVE	AC0,-11(SP)			; AC0,FILE_PTR				401755' 200 00 0 17 777767		1487
	MOVE	AC1,AC0				; AC1,AC0				401756' 200 01 0 00 000000
	HRRZ	AC12,14(AC1)			; MODU_PTR,14(AC1)			401757' 550 12 0 01 000014
	JUMPN	AC12,L.71			; MODU_PTR,L.71				401760' 326 12 0 00 401775'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  62
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (19)

	PUSH	SP,C.4				; SP,[0]				401761' 261 17 0 00 400203'		1489
	PUSH	SP,C.5				; SP,[12]				401762' 261 17 0 00 400204'
	PUSH	SP,C.54				; SP,[0,,ROUTINE_NAME]			401763' 261 17 0 00 402215'
	MOVE	AC1,AC0				; AC1,AC0				401764' 200 01 0 00 000000
	ADDI	AC1,2				; AC1,2					401765' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				401766' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				401767' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401770' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				401771' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				401772' 260 17 0 00 000000*
	ADJSP	SP,-4				; SP,-4					401773' 105 17 0 00 777774
	JRST	L.84				; L.84					401774' 254 00 0 00 402201'		1487
L.71:	MOVE	AC11,-14(SP)			; AC11,ASCPTR				401775' 200 11 0 17 777764		1493
	MOVEM	AC11,-2(SP)			; AC11,PSECT_INFO			401776' 202 11 0 17 777776
	MOVE	AC13,-13(SP)			; AC13,FLAGS				401777' 200 13 0 17 777765		1494
	MOVEM	AC13,-1(SP)			; AC13,PSECT_INFO+1			402000' 202 13 0 17 777777
	MOVE	AC1,-12(SP)			; AC1,VALUE				402001' 200 01 0 17 777766		1495
	MOVEM	AC1,0(SP)			; AC1,PSECT_INFO+2			402002' 202 01 0 17 000000
	HRRZ	AC1,7(AC12)			; AC1,7(MODU_PTR)			402003' 550 01 0 12 000007		1497
	PUSH	SP,AC1				; SP,AC1				402004' 261 17 0 00 000001
	PUSH	SP,C.39				; SP,[0,,SEL_PSECT]			402005' 261 17 0 00 401454'
	MOVEI	AC1,-4(SP)			; AC1,PSECT_INFO			402006' 201 01 0 17 777774
	PUSH	SP,AC1				; SP,AC1				402007' 261 17 0 00 000001
	PUSHJ	SP,FND_CHAIN			; SP,FND_CHAIN				402010' 260 17 0 00 000000*
	MOVE	AC10,AC1			; PSECT_PTR,AC1				402011' 200 10 0 00 000001
	JUMPN	AC10,L.83			; PSECT_PTR,L.83			402012' 326 10 0 00 402160'		1499
	PUSH	SP,C.55				; SP,[7]				402013' 261 17 0 00 402216'		1503
	PUSH	SP,C.49				; SP,[10]				402014' 261 17 0 00 401714'
	PUSHJ	SP,GETBLK			; SP,GETBLK				402015' 260 17 0 00 000000*
	MOVE	AC10,AC1			; PSECT_PTR,AC1				402016' 200 10 0 00 000001
	ADJSP	SP,-2				; SP,-2					402017' 105 17 0 00 777776
	JUMPN	AC10,L.72			; PSECT_PTR,L.72			402020' 326 10 0 00 402033'
	SETZM	0(SP)				; 0(SP)					402021' 402 00 0 17 000000		1505
	PUSH	SP,C.7				; SP,[1]				402022' 261 17 0 00 400206'
	PUSH	SP,C.54				; SP,[0,,ROUTINE_NAME]			402023' 261 17 0 00 402215'
	PUSH	SP,C.4				; SP,[0]				402024' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402025' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402026' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402027' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402030' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					402031' 105 17 0 00 777775
	JRST	L.82				; L.82					402032' 254 00 0 00 402157'		1503
L.72:	MOVE	AC1,AC11			; AC1,AC11				402033' 200 01 0 00 000011		1509
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				402034' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				402035' 505 02 0 00 010700
	MOVEI	AC5,0(AC10)			; AC5,0(PSECT_PTR)			402036' 201 05 0 10 000000
	HRLI	AC5,10700			; AC5,10700				402037' 505 05 0 00 010700
	MOVEI	AC1,7				; AC1,7					402040' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					402041' 201 04 0 00 000007
	EXTEND	AC1,C.24			; AC1,[MOVSLJ ]				402042' 123 01 0 00 401235'
	JFCL					; 					402043' 255 00 0 00 000000
	DPB	AC13,C.50			; AC13,[POINT 8,3(PSECT_PTR),35]  <0,8> 402044' 137 13 0 00 402211'		1510
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  63
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (19)

	HRRZS	3(AC10)				; 3(PSECT_PTR)				402045' 553 00 0 10 000003		1511
	HRRZS	4(AC10)				; 4(PSECT_PTR)				402046' 553 00 0 10 000004		1512
	MOVEM	AC12,0(SP)			; MODU_PTR,0(SP)			402047' 202 12 0 17 000000		1514
	HRRZ	AC1,7(AC12)			; AC1,7(MODU_PTR)			402050' 550 01 0 12 000007
	PUSH	SP,AC1				; SP,AC1				402051' 261 17 0 00 000001
	PUSH	SP,AC10				; SP,PSECT_PTR				402052' 261 17 0 00 000010
	PUSHJ	SP,BLD_CHAIN			; SP,BLD_CHAIN				402053' 260 17 0 00 000000*
	ADJSP	SP,-2				; SP,-2					402054' 105 17 0 00 777776
	HRRM	AC1,7(AC12)			; AC1,7(MODU_PTR)			402055' 542 01 0 12 000007
	JUMPN	AC1,L.73			; AC1,L.73				402056' 326 01 0 00 402071'
	SETZM	0(SP)				; 0(SP)					402057' 402 00 0 17 000000		1517
	PUSH	SP,C.7				; SP,[1]				402060' 261 17 0 00 400206'
	PUSH	SP,C.54				; SP,[0,,ROUTINE_NAME]			402061' 261 17 0 00 402215'
	PUSH	SP,C.4				; SP,[0]				402062' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402063' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402064' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402065' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402066' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					402067' 105 17 0 00 777775
	JRST	L.74				; L.74					402070' 254 00 0 00 402100'		1514
L.73:	HRRZ	AC1,7(AC12)			; AC1,7(MODU_PTR)			402071' 550 01 0 12 000007		1519
	PUSH	SP,AC1				; SP,AC1				402072' 261 17 0 00 000001
	PUSH	SP,C.39				; SP,[0,,SEL_PSECT]			402073' 261 17 0 00 401454'
	MOVEI	AC1,-7(SP)			; AC1,PSECT_INFO			402074' 201 01 0 17 777771
	PUSH	SP,AC1				; SP,AC1				402075' 261 17 0 00 000001
	PUSHJ	SP,FND_CHAIN			; SP,FND_CHAIN				402076' 260 17 0 00 000000*
	MOVE	AC10,AC1			; PSECT_PTR,AC1				402077' 200 10 0 00 000001
L.74:	JUMPN	AC10,L.75			; PSECT_PTR,L.75			402100' 326 10 0 00 402106'		1521
	SETZM	0(SP)				; 0(SP)					402101' 402 00 0 17 000000		1523
	PUSH	SP,C.7				; SP,[1]				402102' 261 17 0 00 400206'
	PUSH	SP,C.54				; SP,[0,,ROUTINE_NAME]			402103' 261 17 0 00 402215'
	PUSH	SP,C.4				; SP,[0]				402104' 261 17 0 00 400203'
	JRST	L.81				; L.81					402105' 254 00 0 00 402152'
L.75:	HRLM	AC10,7(AC12)			; PSECT_PTR,7(MODU_PTR)			402106' 506 10 0 12 000007		1526
	SETZ	AC3,				; AC3,					402107' 400 03 0 00 000000		1527
	LDB	AC1,C.51			; AC1,[POINT 1,FLAGS,33]  <2,1>		402110' 135 01 0 00 402212'
	JUMPE	AC1,L.76			; AC1,L.76				402111' 322 01 0 00 402115'
	MOVEI	AC3,1				; AC3,1					402112' 201 03 0 00 000001
	SETZ	AC1,				; AC1,					402113' 400 01 0 00 000000
	JRST	L.78				; L.78					402114' 254 00 0 00 402124'
L.76:	HLRZ	AC1,3(AC10)			; AC1,3(PSECT_PTR)			402115' 554 01 0 10 000003		1528
	IDIVI	AC1,2				; AC1,2					402116' 231 01 0 00 000002
	JUMPN	AC2,L.77			; AC2,L.77				402117' 326 02 0 00 402121'
	TDZA	AC1,AC1				; AC1,AC1				402120' 634 01 0 00 000001
L.77:	MOVEI	AC1,1				; AC1,1					402121' 201 01 0 00 000001
	HLRZ	AC2,3(AC10)			; AC2,3(PSECT_PTR)			402122' 554 02 0 10 000003
	ADD	AC1,AC2				; AC1,AC2				402123' 270 01 0 00 000002
L.78:	HRLM	AC1,4(AC10)			; AC1,4(PSECT_PTR)			402124' 506 01 0 10 000004		1527
	TRNN	AC3,1				; AC3,1					402125' 606 03 0 00 000001		1529
	JRST	L.79				; L.79					402126' 254 00 0 00 402133'
	HLRZ	AC1,3(AC10)			; AC1,3(PSECT_PTR)			402127' 554 01 0 10 000003
	CAMGE	AC1,-20(SP)			; AC1,VALUE				402130' 315 01 0 17 777760
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  64
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (19)

	MOVE	AC1,-20(SP)			; AC1,VALUE				402131' 200 01 0 17 777760
	JRST	L.80				; L.80					402132' 254 00 0 00 402135'
L.79:	HLRZ	AC1,3(AC10)			; AC1,3(PSECT_PTR)			402133' 554 01 0 10 000003		1530
	ADD	AC1,-20(SP)			; AC1,VALUE				402134' 270 01 0 17 777760
L.80:	HRLM	AC1,3(AC10)			; AC1,3(PSECT_PTR)			402135' 506 01 0 10 000003		1529
	MOVE	AC1,6(AC12)			; AC1,6(MODU_PTR)			402136' 200 01 0 12 000006		1531
	DPB	AC1,C.52			; AC1,[POINT 8,3(PSECT_PTR),27]  <8,8>	402137' 137 01 0 00 402213'
	LDB	AC1,C.53			; AC1,[POINT 16,6(MODU_PTR),35]  <0,16> 402140' 135 01 0 00 402214'		1533
	ADDI	AC1,1				; AC1,1					402141' 271 01 0 00 000001
	DPB	AC1,C.53			; AC1,[POINT 16,6(MODU_PTR),35]  <0,16> 402142' 137 01 0 00 402214'
	CAIG	AC1,377				; AC1,377				402143' 307 01 0 00 000377
	JRST	L.82				; L.82					402144' 254 00 0 00 402157'
	SETZM	0(SP)				; 0(SP)					402145' 402 00 0 17 000000		1535
	PUSH	SP,C.5				; SP,[12]				402146' 261 17 0 00 400204'
	PUSH	SP,C.54				; SP,[0,,ROUTINE_NAME]			402147' 261 17 0 00 402215'
	ADDI	AC0,2				; AC0,2					402150' 271 00 0 00 000002		1536
	PUSH	SP,AC0				; SP,AC0				402151' 261 17 0 00 000000
L.81:	PUSH	SP,C.4				; SP,[0]				402152' 261 17 0 00 400203'		1535
	PUSH	SP,C.4				; SP,[0]				402153' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402154' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402155' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					402156' 105 17 0 00 777772
L.82:	ADJSP	SP,-3				; SP,-3					402157' 105 17 0 00 777775		1501
L.83:	LDB	AC1,C.50			; AC1,[POINT 8,3(PSECT_PTR),35]  <0,8>	402160' 135 01 0 00 402211'		1544
	XOR	AC1,AC13			; AC1,AC13				402161' 430 01 0 00 000013
	TRNN	AC1,367				; AC1,367				402162' 606 01 0 00 000367
	JRST	L.84				; L.84					402163' 254 00 0 00 402201'
	SETZM	0(SP)				; 0(SP)					402164' 402 00 0 17 000000		1548
	PUSH	SP,C.56				; SP,[17]				402165' 261 17 0 00 402217'
	PUSH	SP,C.54				; SP,[0,,ROUTINE_NAME]			402166' 261 17 0 00 402215'
	ADDI	AC12,1				; MODU_PTR,1				402167' 271 12 0 00 000001
	PUSH	SP,AC12				; SP,MODU_PTR				402170' 261 17 0 00 000012
	MOVE	AC0,AC10			; AC0,PSECT_PTR				402171' 200 00 0 00 000010
	ADDI	AC0,1				; AC0,1					402172' 271 00 0 00 000001
	PUSH	SP,AC0				; SP,AC0				402173' 261 17 0 00 000000
	LDB	AC0,C.50			; AC0,[POINT 8,3(PSECT_PTR),35]  <0,8>	402174' 135 00 0 00 402211'
	PUSH	SP,AC0				; SP,AC0				402175' 261 17 0 00 000000
	PUSH	SP,AC13				; SP,AC13				402176' 261 17 0 00 000013
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402177' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					402200' 105 17 0 00 777772
L.84:	ADJSP	SP,-3				; SP,-3					402201' 105 17 0 00 777775		1459
	ADJSP	SP,-3				; SP,-3					402202' 105 17 0 00 777775		1427
	POP	SP,AC13				; SP,AC13				402203' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				402204' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				402205' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				402206' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				402207' 262 17 0 00 000000
	POPJ	SP,				; SP,					402210' 263 17 0 00 000000
C.50:	POINT	8,3(AC10),35			; 8,3(PSECT_PTR),35			402211' 00 10 0 10 000003
C.51:	POINT	1,-21(SP),33			; 1,FLAGS,33				402212' 02 01 0 17 777757
C.52:	POINT	8,3(AC10),27			; 8,3(PSECT_PTR),27			402213' 10 10 0 10 000003
C.53:	POINT	16,6(AC12),35			; 16,6(MODU_PTR),35			402214' 00 20 0 12 000006
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  65
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (19)

C.54:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			402215' 000000	401733'
C.55:	EXP	7				; 7					402216' 000000	000007
C.56:	EXP	17				; 17					402217' 000000	000017

; Routine Size:  169 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  66
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (20)

;	  1554	ROUTINE GSD_IDENT (ASCPTR, FLAGS, VALUE, FILE_PTR) : NOVALUE = 	!PROCESS VERSION IDENT
;	  1555	
;	  1556	!++
;	  1557	! FUNCTIONAL DESCRIPTION:
;	  1558	!
;	  1559	!	PROCESS THE PROGRAM VERSION IDENTIFICATION ENTRY OF THE
;	  1560	!	 GSD RECORD.  THIS ENTRY IS PRODUCED BY THE ".IDENT"
;	  1561	!	 ASSEMBLER DIRECTIVE.
;	  1562	!
;	  1563	! FORMAL PARAMETERS:
;	  1564	!
;	  1565	!	ASCPTR - POINTER TO NAME, IN ASCII
;	  1566	!	FLAGS - THE FLAGS BYTE
;	  1567	!	VALUE - THE VALUE WORD
;	  1568	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  1569	!
;	  1570	! IMPLICIT INPUTS:
;	  1571	!
;	  1572	!	NONE
;	  1573	!
;	  1574	! IMPLICIT OUTPUTS:
;	  1575	!
;	  1576	!	ADDS THE IDENTIFICATION TO THE DATA STRUCTURE
;	  1577	!
;	  1578	! ROUTINE VALUE:
;	  1579	!
;	  1580	!	NONE
;	  1581	!
;	  1582	! SIDE EFFECTS
;	  1583	!
;	  1584	!	NONE
;	  1585	!
;	  1586	!--
;	  1587	
;	  1588	    BEGIN
;	  1589	
;	  1590	    BIND
;	  1591		ROUTINE_NAME = UPLIT (%ASCIZ'GSD_IDENT');
;	  1592	
;	  1593	    MAP
;	  1594		FILE_PTR : REF FILE_BLOCK;
;	  1595	
;	  1596	    LOCAL
;	  1597		MODU_PTR : REF MODU_BLOCK;
;	  1598	
;	  1599	    IF (DEBUG GEQ 1)
;	  1600	    THEN
;	  1601		BEGIN
;	  1602		PCRLF (1);
;	  1603		OUTPUT (1, %O'11');
;	  1604		OUTPUT (1, %O'11');
;	  1605		OUTSTR (1, UPLIT (%ASCIZ'PROGRAM VERSION IDENTIFICATION, NAME = '));
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  67
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (20)

;	  1606		OUTSTR (1, .ASCPTR);
;	  1607		OUTSTR (1, UPLIT (%ASCIZ', FLAGS = '));
;	  1608		OUTNUM (1, .FLAGS, 8, 0);
;	  1609		OUTSTR (1, UPLIT (%ASCIZ', VALUE = '));
;	  1610		OUTNUM (1, .VALUE, 8, 0);
;	  1611		END;					!DEBUG
;	  1612	
;	  1613	    IF ((MODU_PTR = .FILE_PTR [FILE_MODU]) EQL 0)
;	  1614	    THEN
;	  1615		ERRMSG (0, 10, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
;	  1616		    0, 0)
;	  1617	    ELSE
;	  1618		BEGIN					!THERE IS A MODULE BEING PROCESSED
;	  1619		CH$MOVE (LEN_MODU_VER, CH$PTR (.ASCPTR), CH$PTR (MODU_PTR [MODU_IDENT]));
;	  1620		MODU_PTR [MODU_FLAG_IDENT] = 1;
;	  1621		END;
;	  1622	
;	  1623	    END;					!OF GSD_IDENT


P.ABP:	BYTE	(7)"G","S","D","_","I"		; GSD_I					402220' 107 123 104 137 111
	BYTE	(7)"D","E","N","T",000		; DENT					402221' 104 105 116 124 000
P.ABQ:	BYTE	(7)"P","R","O","G","R"		; PROGR					402222' 120 122 117 107 122
	BYTE	(7)"A","M"," ","V","E"		; AM VE					402223' 101 115 040 126 105
	BYTE	(7)"R","S","I","O","N"		; RSION					402224' 122 123 111 117 116
	BYTE	(7)" ","I","D","E","N"		;  IDEN					402225' 040 111 104 105 116
	BYTE	(7)"T","I","F","I","C"		; TIFIC					402226' 124 111 106 111 103
	BYTE	(7)"A","T","I","O","N"		; ATION					402227' 101 124 111 117 116
	BYTE	(7)","," ","N","A","M"		; , NAM					402230' 054 040 116 101 115
	BYTE	(7)"E"," ","="," ",000		; E =					402231' 105 040 075 040 000
P.ABR:	BYTE	(7)","," ","F","L","A"		; , FLA					402232' 054 040 106 114 101
	BYTE	(7)"G","S"," ","="," "		; GS =					402233' 107 123 040 075 040
	BYTE	(7)000,000,000,000,000		;					402234' 000 000 000 000 000
P.ABS:	BYTE	(7)","," ","V","A","L"		; , VAL					402235' 054 040 126 101 114
	BYTE	(7)"U","E"," ","="," "		; UE =					402236' 125 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					402237' 000 000 000 000 000


ROUTINE_NAME=	    P.ABP			;						000000	402220'


GSD_IDENT:
	PUSH	SP,AC0				; SP,AC0				402240' 261 17 0 00 000000		1554
	PUSH	SP,AC10				; SP,AC10				402241' 261 17 0 00 000010
	MOVE	AC1,-3(SP)			; AC1,FILE_PTR				402242' 200 01 0 17 777775		1613
	HRRZ	AC10,14(AC1)			; MODU_PTR,14(AC1)			402243' 550 10 0 01 000014
	JUMPN	AC10,L.85			; MODU_PTR,L.85				402244' 326 10 0 00 402260'
	PUSH	SP,C.4				; SP,[0]				402245' 261 17 0 00 400203'		1615
	PUSH	SP,C.5				; SP,[12]				402246' 261 17 0 00 400204'
	PUSH	SP,C.57				; SP,[0,,ROUTINE_NAME]			402247' 261 17 0 00 402276'
	ADDI	AC1,2				; AC1,2					402250' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				402251' 261 17 0 00 000001
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  68
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (20)

	PUSH	SP,C.4				; SP,[0]				402252' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402253' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402254' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402255' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					402256' 105 17 0 00 777771
	JRST	L.86				; L.86					402257' 254 00 0 00 402273'		1613
L.85:	MOVE	AC1,-6(SP)			; AC1,ASCPTR				402260' 200 01 0 17 777772		1619
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				402261' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				402262' 505 02 0 00 010700
	MOVEI	AC5,2(AC10)			; AC5,2(MODU_PTR)			402263' 201 05 0 10 000002
	HRLI	AC5,10700			; AC5,10700				402264' 505 05 0 00 010700
	MOVEI	AC1,7				; AC1,7					402265' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					402266' 201 04 0 00 000007
	EXTEND	AC1,C.24			; AC1,[MOVSLJ ]				402267' 123 01 0 00 401235'
	JFCL					; 					402270' 255 00 0 00 000000
	MOVSI	AC0,400000			; AC0,400000				402271' 205 00 0 00 400000		1620
	IORM	AC0,5(AC10)			; AC0,5(MODU_PTR)			402272' 436 00 0 10 000005
L.86:	POP	SP,AC10				; SP,AC10				402273' 262 17 0 00 000010		1554
	POP	SP,AC0				; SP,AC0				402274' 262 17 0 00 000000
	POPJ	SP,				; SP,					402275' 263 17 0 00 000000
C.57:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			402276' 000000	402220'

; Routine Size:  31 words
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  69
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (21)

;	  1624	ROUTINE GSD_MAP (ASCPTR, FLAGS, VALUE, FILE_PTR) : NOVALUE = 	!PROCESS MAPPED ARRAY
;	  1625	
;	  1626	!++
;	  1627	! FUNCTIONAL DESCRIPTION:
;	  1628	!
;	  1629	!	PROCESS THE MAPPED ARRAY ENTRY OF THE GSD RECORD.
;	  1630	!	 THIS IS NOT IMPLEMENTED SINCE IT IS NOT PRODUCED BY MACY11.
;	  1631	!
;	  1632	! FORMAL PARAMETERS:
;	  1633	!
;	  1634	!	ASCPTR - POINTER TO NAME, IN ASCII
;	  1635	!	FLAGS - THE FLAGS BYTE
;	  1636	!	VALUE - THE VALUE WORD
;	  1637	!	FILE_PTR - POINTER TO THE FILE BLOCK FOR THE OBJECT FILE
;	  1638	!
;	  1639	! IMPLICIT INPUTS:
;	  1640	!
;	  1641	!	NONE
;	  1642	!
;	  1643	! IMPLICIT OUTPUTS:
;	  1644	!
;	  1645	!	NONE
;	  1646	!
;	  1647	! ROUTINE VALUE:
;	  1648	!
;	  1649	!	NONE
;	  1650	!
;	  1651	! SIDE EFFECTS
;	  1652	!
;	  1653	!	PRINTS AN ERROR MESSAGE
;	  1654	!
;	  1655	!--
;	  1656	
;	  1657	    BEGIN
;	  1658	
;	  1659	    BIND
;	  1660		ROUTINE_NAME = UPLIT (%ASCIZ'GSD_MAP');
;	  1661	
;	  1662	    IF (DEBUG GEQ 1)
;	  1663	    THEN
;	  1664		BEGIN
;	  1665		PCRLF (1);
;	  1666		OUTPUT (1, %O'11');
;	  1667		OUTPUT (1, %O'11');
;	  1668		OUTSTR (1, UPLIT (%ASCIZ'MAPPED ARRAY DECLARATION, NAME = '));
;	  1669		OUTSTR (1, .ASCPTR);
;	  1670		OUTSTR (1, UPLIT (%ASCIZ', FLAGS = '));
;	  1671		OUTNUM (1, .FLAGS, 8, 0);
;	  1672		OUTSTR (1, UPLIT (%ASCIZ', VALUE = '));
;	  1673		OUTNUM (1, .VALUE, 8, 0);
;	  1674		END;					!DEBUG
;	  1675	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  70
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (21)

;	  1676	    ERRMSG (0, 12, ROUTINE_NAME, 0, 0, 0, 0);
;	  1677	    END;					!OF GSD_MAP


P.ABT:	BYTE	(7)"G","S","D","_","M"		; GSD_M					402277' 107 123 104 137 115
	BYTE	(7)"A","P",000,000,000		; AP					402300' 101 120 000 000 000
P.ABU:	BYTE	(7)"M","A","P","P","E"		; MAPPE					402301' 115 101 120 120 105
	BYTE	(7)"D"," ","A","R","R"		; D ARR					402302' 104 040 101 122 122
	BYTE	(7)"A","Y"," ","D","E"		; AY DE					402303' 101 131 040 104 105
	BYTE	(7)"C","L","A","R","A"		; CLARA					402304' 103 114 101 122 101
	BYTE	(7)"T","I","O","N",","		; TION,					402305' 124 111 117 116 054
	BYTE	(7)" ","N","A","M","E"		;  NAME					402306' 040 116 101 115 105
	BYTE	(7)" ","="," ",000,000		;  =					402307' 040 075 040 000 000
P.ABV:	BYTE	(7)","," ","F","L","A"		; , FLA					402310' 054 040 106 114 101
	BYTE	(7)"G","S"," ","="," "		; GS =					402311' 107 123 040 075 040
	BYTE	(7)000,000,000,000,000		;					402312' 000 000 000 000 000
P.ABW:	BYTE	(7)","," ","V","A","L"		; , VAL					402313' 054 040 126 101 114
	BYTE	(7)"U","E"," ","="," "		; UE =					402314' 125 105 040 075 040
	BYTE	(7)000,000,000,000,000		;					402315' 000 000 000 000 000


ROUTINE_NAME=	    P.ABT			;						000000	402277'


GSD_MAP:PUSH	SP,C.4				; SP,[0]				402316' 261 17 0 00 400203'		1676
	PUSH	SP,C.20				; SP,[14]				402317' 261 17 0 00 401034'
	PUSH	SP,C.58				; SP,[0,,ROUTINE_NAME]			402320' 261 17 0 00 402330'
	PUSH	SP,C.4				; SP,[0]				402321' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402322' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402323' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402324' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402325' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					402326' 105 17 0 00 777771		1657
	POPJ	SP,				; SP,					402327' 263 17 0 00 000000		1624
C.58:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			402330' 000000	402277'

; Routine Size:  11 words


;	  1678	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  71
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (22)

;	  1679	GLOBAL ROUTINE SYM_VAL (FILE_PTR, SYMBOL_NAME, ERR) = 	!GET VALUE OF NAMED SYMBOL
;	  1680	
;	  1681	!++
;	  1682	! FUNCTIONAL DESCRIPTION:
;	  1683	!
;	  1684	!	GET THE VALUE OF A NAMED SYMBOL FROM A (SYMBOL TABLE) FILE
;	  1685	!
;	  1686	! FORMAL PARAMETERS:
;	  1687	!
;	  1688	!	FILE_PTR - THE FILE BLOCK THAT MAY HAVE THE SPECIFIED SYMBOL
;	  1689	!	SYMBOL_NAME - NAME OF THE SYMBOL, MAX OF 7 WITH LAST NULL.
;	  1690	!	ERR - 0 = PRINT ERROR MESSAGE IF NOT FOUND, 1 = JUST RETURN -1.
;	  1691	!
;	  1692	! IMPLICIT INPUTS:
;	  1693	!
;	  1694	!	NONE
;	  1695	!
;	  1696	! IMPLICIT OUTPUTS:
;	  1697	!
;	  1698	!	NONE
;	  1699	!
;	  1700	! ROUTINE VALUE:
;	  1701	!
;	  1702	!	VALUE OF THE SYMBOL, OR -1 IF UNDEFINED.
;	  1703	!
;	  1704	! SIDE EFFECTS
;	  1705	!
;	  1706	!	NONE
;	  1707	!
;	  1708	!--
;	  1709	
;	  1710	    BEGIN
;	  1711	
;	  1712	    BIND
;	  1713		ROUTINE_NAME = UPLIT (%ASCIZ'SYMBOL_VALUE');
;	  1714	
;	  1715	    MAP
;	  1716		FILE_PTR : REF FILE_BLOCK;
;	  1717	
;	  1718	    LOCAL
;	  1719		GLOBL_PTR : REF GLOBL_BLOCK,
;	  1720		MODU_PTR : REF MODU_BLOCK,
;	  1721		CHAR_NUMBER,
;	  1722		SYMBOL_END,
;	  1723		PADDED_SYMBOL : VECTOR [CH$ALLOCATION (LEN_GBL_NAME)];
;	  1724	
;	  1725	    IF (.FILE_PTR EQL 0)
;	  1726	    THEN
;	  1727		BEGIN
;	  1728		ERRMSG (0, 32, ROUTINE_NAME, .SYMBOL_NAME, FILE_PTR [FILE_NAME], 0, 0);
;	  1729		-1
;	  1730		END
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  72
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (22)

;	  1731	    ELSE
;	  1732		BEGIN
;	  1733		MODU_PTR = .FILE_PTR [FILE_MODU];
;	  1734	
;	  1735		IF (.MODU_PTR EQL 0)
;	  1736		THEN
;	  1737		    BEGIN
;	  1738		    ERRMSG (0, 32, ROUTINE_NAME, .SYMBOL_NAME, FILE_PTR [FILE_NAME], 0, 0);
;	  1739		    -1
;	  1740		    END
;	  1741		ELSE
;	  1742		    BEGIN
;	  1743		    SYMBOL_END = CH$FIND_CH (LEN_GBL_NAME-1, CH$PTR (.SYMBOL_NAME), 0);
;	  1744	
;	  1745		    IF CH$FAIL (.SYMBOL_END)
;	  1746		    THEN
;	  1747			GLOBL_PTR = FND_CHAIN (.MODU_PTR [MODU_GLOBALS], SEL_SYMBOL,
;	  1748			    .SYMBOL_NAME)
;	  1749		    ELSE
;	  1750			BEGIN
;	  1751			CHAR_NUMBER = CH$DIFF (.SYMBOL_END, CH$PTR (.SYMBOL_NAME));
;	  1752			CH$WCHAR (0,
;	  1753			    CH$COPY (.CHAR_NUMBER, CH$PTR (.SYMBOL_NAME), %C' ', LEN_GBL_NAME-1,
;	  1754				CH$PTR (PADDED_SYMBOL)));
;	  1755			GLOBL_PTR = FND_CHAIN (.MODU_PTR [MODU_GLOBALS], SEL_SYMBOL, PADDED_SYMBOL);
;	  1756			END;
;	  1757	
;	  1758		    IF (.GLOBL_PTR EQL 0)
;	  1759		    THEN
;	  1760			BEGIN
;	  1761	
;	  1762			IF (.ERR EQL 0) THEN ERRMSG (0, 32, ROUTINE_NAME, .SYMBOL_NAME, FILE_PTR [FILE_NAME], 0, 0);
;	  1763	
;	  1764			-1
;	  1765			END
;	  1766		    ELSE
;	  1767			(GBL_VAL (.GLOBL_PTR)) AND %O'177777'
;	  1768	
;	  1769		    END
;	  1770	
;	  1771		END
;	  1772	
;	  1773	    END;					!OF SYM_VAL


P.ABX:	BYTE	(7)"S","Y","M","B","O"		; SYMBO					402331' 123 131 115 102 117
	BYTE	(7)"L","_","V","A","L"		; L_VAL					402332' 114 137 126 101 114
	BYTE	(7)"U","E",000,000,000		; UE					402333' 125 105 000 000 000


ROUTINE_NAME=	    P.ABX			;						000000	402331'
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  73
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (22)


SYM_VAL::
	PUSH	SP,AC0				; SP,AC0				402334' 261 17 0 00 000000		1679
	PUSH	SP,AC10				; SP,AC10				402335' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				402336' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				402337' 261 17 0 00 000012
	PUSH	SP,AC16				; SP,AC16				402340' 261 17 0 00 000016
	ADJSP	SP,2				; SP,2					402341' 105 17 0 00 000002
	MOVE	AC11,-11(SP)			; AC11,SYMBOL_NAME			402342' 200 11 0 17 777767		1728
	MOVE	AC10,-12(SP)			; AC10,FILE_PTR				402343' 200 10 0 17 777766		1725
	JUMPN	AC10,L.87			; AC10,L.87				402344' 326 10 0 00 402355'
	PUSH	SP,C.4				; SP,[0]				402345' 261 17 0 00 400203'		1728
	PUSH	SP,C.31				; SP,[40]				402346' 261 17 0 00 401326'
	PUSH	SP,C.60				; SP,[0,,ROUTINE_NAME]			402347' 261 17 0 00 402503'
	PUSH	SP,AC11				; SP,AC11				402350' 261 17 0 00 000011
	MOVE	AC0,AC10			; AC0,AC10				402351' 200 00 0 00 000010
	ADDI	AC0,2				; AC0,2					402352' 271 00 0 00 000002
	PUSH	SP,AC0				; SP,AC0				402353' 261 17 0 00 000000
	JRST	L.88				; L.88					402354' 254 00 0 00 402366'
L.87:	HRRZ	AC0,14(AC10)			; MODU_PTR,14(AC10)			402355' 550 00 0 10 000014		1733
	JUMPN	AC0,L.89			; MODU_PTR,L.89				402356' 326 00 0 00 402373'		1735
	PUSH	SP,C.4				; SP,[0]				402357' 261 17 0 00 400203'		1738
	PUSH	SP,C.31				; SP,[40]				402360' 261 17 0 00 401326'
	PUSH	SP,C.60				; SP,[0,,ROUTINE_NAME]			402361' 261 17 0 00 402503'
	PUSH	SP,AC11				; SP,AC11				402362' 261 17 0 00 000011
	MOVE	AC1,AC10			; AC1,AC10				402363' 200 01 0 00 000010
	ADDI	AC1,2				; AC1,2					402364' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				402365' 261 17 0 00 000001
L.88:	PUSH	SP,C.4				; SP,[0]				402366' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402367' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402370' 260 17 0 00 000000*
	ADJSP	SP,-1				; SP,-1					402371' 105 17 0 00 777777		1737
	JRST	L.92				; L.92					402372' 254 00 0 00 402464'
L.89:	PUSH	SP,C.27				; SP,[6]				402373' 261 17 0 00 401240'		1743
	MOVE	AC1,AC11			; AC1,AC11				402374' 200 01 0 00 000011
	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				402375' 201 01 0 01 777777
	HRLI	AC1,10700			; AC1,10700				402376' 505 01 0 00 010700
	PUSH	SP,AC1				; SP,AC1				402377' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				402400' 261 17 0 00 400203'
	PUSHJ	SP,CHFCH%			; SP,CHFCH%				402401' 260 17 0 00 000000*
	ADDI	AC0,10				; MODU_PTR,10				402402' 271 00 0 00 000010		1747
	JUMPN	AC1,L.90			; SYMBOL_END,L.90			402403' 326 01 0 00 402414'		1745
	MOVE	AC2,AC0				; AC2,AC0				402404' 200 02 0 00 000000		1747
	HLRZ	AC1,0(AC2)			; AC1,0(AC2)				402405' 554 01 0 02 000000
	PUSH	SP,AC1				; SP,AC1				402406' 261 17 0 00 000001
	PUSH	SP,C.61				; SP,[0,,SEL_SYMBOL]			402407' 261 17 0 00 402504'
	PUSH	SP,AC11				; SP,AC11				402410' 261 17 0 00 000011
	PUSHJ	SP,FND_CHAIN			; SP,FND_CHAIN				402411' 260 17 0 00 000000*
	MOVE	AC12,AC1			; GLOBL_PTR,AC1				402412' 200 12 0 00 000001
	JRST	L.91				; L.91					402413' 254 00 0 00 402447'		1745
L.90:	MOVEM	AC1,0(SP)			; SYMBOL_END,0(SP)			402414' 202 01 0 17 000000		1751
	MOVE	AC1,AC11			; AC1,AC11				402415' 200 01 0 00 000011
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  74
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (22)

	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				402416' 201 01 0 01 777777
	HRLI	AC1,10700			; AC1,10700				402417' 505 01 0 00 010700
	PUSH	SP,AC1				; SP,AC1				402420' 261 17 0 00 000001
	PUSHJ	SP,CHDIF%			; SP,CHDIF%				402421' 260 17 0 00 000000*
	MOVE	AC16,AC1			; CHAR_NUMBER,AC1			402422' 200 16 0 00 000001
	SETZ	AC3,				; AC3,					402423' 400 03 0 00 000000		1752
	MOVE	AC1,AC11			; AC1,AC11				402424' 200 01 0 00 000011		1753
	MOVEI	AC2,-1(AC1)			; AC2,-1(AC1)				402425' 201 02 0 01 777777
	HRLI	AC2,10700			; AC2,10700				402426' 505 02 0 00 010700
	MOVEI	AC5,-6(SP)			; AC5,PADDED_SYMBOL-1			402427' 201 05 0 17 777772		1754
	HRLI	AC5,10700			; AC5,10700				402430' 505 05 0 00 010700
	MOVE	AC1,AC16			; AC1,CHAR_NUMBER			402431' 200 01 0 00 000016		1753
	MOVEI	AC4,6				; AC4,6					402432' 201 04 0 00 000006
	EXTEND	AC1,C.59			; AC1,C.59				402433' 123 01 0 00 402501'
	JFCL					; 					402434' 255 00 0 00 000000
	IDPB	AC3,AC5				; AC3,AC5				402435' 136 03 0 00 000005		1752
	MOVE	AC2,AC0				; AC2,AC0				402436' 200 02 0 00 000000		1755
	HLRZ	AC1,0(AC2)			; AC1,0(AC2)				402437' 554 01 0 02 000000
	PUSH	SP,AC1				; SP,AC1				402440' 261 17 0 00 000001
	PUSH	SP,C.61				; SP,[0,,SEL_SYMBOL]			402441' 261 17 0 00 402504'
	MOVEI	AC0,-7(SP)			; AC0,PADDED_SYMBOL			402442' 201 00 0 17 777771
	PUSH	SP,AC0				; SP,AC0				402443' 261 17 0 00 000000
	PUSHJ	SP,FND_CHAIN			; SP,FND_CHAIN				402444' 260 17 0 00 000000*
	MOVE	AC12,AC1			; GLOBL_PTR,AC1				402445' 200 12 0 00 000001
	ADJSP	SP,-1				; SP,-1					402446' 105 17 0 00 777777		1750
L.91:	JUMPN	AC12,L.93			; GLOBL_PTR,L.93			402447' 326 12 0 00 402466'		1758
	SKIPE	-16(SP)				; ERR					402450' 332 00 0 17 777762		1762
	JRST	L.92				; L.92					402451' 254 00 0 00 402464'
	SETZM	0(SP)				; 0(SP)					402452' 402 00 0 17 000000
	PUSH	SP,C.31				; SP,[40]				402453' 261 17 0 00 401326'
	PUSH	SP,C.60				; SP,[0,,ROUTINE_NAME]			402454' 261 17 0 00 402503'
	PUSH	SP,AC11				; SP,AC11				402455' 261 17 0 00 000011
	ADDI	AC10,2				; AC10,2				402456' 271 10 0 00 000002
	PUSH	SP,AC10				; SP,AC10				402457' 261 17 0 00 000010
	PUSH	SP,C.4				; SP,[0]				402460' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402461' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402462' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					402463' 105 17 0 00 777772
L.92:	SETO	AC1,				; AC1,					402464' 474 01 0 00 000000		1758
	JRST	L.94				; L.94					402465' 254 00 0 00 402471'
L.93:	MOVEM	AC12,0(SP)			; GLOBL_PTR,0(SP)			402466' 202 12 0 17 000000		1767
	PUSHJ	SP,GBL_VAL			; SP,GBL_VAL				402467' 260 17 0 00 000000V
	ANDI	AC1,177777			; AC1,177777				402470' 405 01 0 00 177777		1758
L.94:	ADJSP	SP,-6				; SP,-6					402471' 105 17 0 00 777772		1710
	ADJSP	SP,-2				; SP,-2					402472' 105 17 0 00 777776		1679
	POP	SP,AC16				; SP,AC16				402473' 262 17 0 00 000016
	POP	SP,AC12				; SP,AC12				402474' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				402475' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				402476' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				402477' 262 17 0 00 000000
	POPJ	SP,				; SP,					402500' 263 17 0 00 000000
C.59:	MOVSLJ					; 					402501' 016 00 0 00 000000
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  75
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (22)

	EXP	40				; 40					402502' 000000	000040
C.60:	XWD	0,ROUTINE_NAME			; 0,ROUTINE_NAME			402503' 000000	402331'
C.61:	XWD	0,SEL_SYMBOL			; 0,SEL_SYMBOL				402504' 000000	000000V

; Routine Size:  105 words


;	  1774	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  76
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (23)

;	  1775	ROUTINE SEL_SYMBOL (GLOBL_PTR, SYMBOL_NAME) = 	!SEE IF THIS IS THE TARGET SYMBOL
;	  1776	
;	  1777	!++
;	  1778	! FUNCTIONAL DESCRIPTION:
;	  1779	!
;	  1780	!	SEE IF THIS IS THE SYMBOL WE ARE SEARCHING FOR.  USED IN
;	  1781	!	 CALL TO FND_CHAIN.
;	  1782	!
;	  1783	! FORMAL PARAMETERS:
;	  1784	!
;	  1785	!	GLOBL_PTR - POINTER TO THE SYMBOL TO TEST
;	  1786	!	SYMBOL_NAME - POINTER TO NAME OF SYMBOL WE ARE LOOKING FOR
;	  1787	!
;	  1788	! IMPLICIT INPUTS:
;	  1789	!
;	  1790	!	NONE
;	  1791	!
;	  1792	! IMPLICIT OUTPUTS:
;	  1793	!
;	  1794	!	NONE
;	  1795	!
;	  1796	! ROUTINE VALUE:
;	  1797	!
;	  1798	!	0 IF THIS IS NOT THE PROPER SYMBOL (WHICH WILL CAUSE FND_CHAIN
;	  1799	!	 TO KEEP SEARCHING), OR THE POINTER TO THE GLOBAL BLOCK IF
;	  1800	!	 THE NAME MATCHES.
;	  1801	!
;	  1802	! SIDE EFFECTS
;	  1803	!
;	  1804	!	NONE
;	  1805	!
;	  1806	!--
;	  1807	
;	  1808	    BEGIN
;	  1809	
;	  1810	    MAP
;	  1811		GLOBL_PTR : REF GLOBL_BLOCK;
;	  1812	
;	  1813	    IF (CH$EQL (LEN_GBL_NAME, CH$PTR (GLOBL_PTR [GBL_NAME]), LEN_GBL_NAME, CH$PTR (.SYMBOL_NAME), 0))
;	  1814	    THEN
;	  1815		.GLOBL_PTR
;	  1816	    ELSE
;	  1817		0
;	  1818	
;	  1819	    END;					!OF SEL_SYMBOL


SEL_SYMBOL:
	MOVE	AC3,-2(SP)			; AC3,GLOBL_PTR				402505' 200 03 0 17 777776		1813
	MOVEI	AC2,0(AC3)			; AC2,0(AC3)				402506' 201 02 0 03 000000
	HRLI	AC2,10700			; AC2,10700				402507' 505 02 0 00 010700
	MOVE	AC1,-1(SP)			; AC1,SYMBOL_NAME			402510' 200 01 0 17 777777
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  77
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (23)

	MOVEI	AC5,-1(AC1)			; AC5,-1(AC1)				402511' 201 05 0 01 777777
	HRLI	AC5,10700			; AC5,10700				402512' 505 05 0 00 010700
	MOVEI	AC1,7				; AC1,7					402513' 201 01 0 00 000007
	MOVEI	AC4,7				; AC4,7					402514' 201 04 0 00 000007
	EXTEND	AC1,C.29			; AC1,[CMPSE ]				402515' 123 01 0 00 401324'
	JRST	L.95				; L.95					402516' 254 00 0 00 402520'
	SKIPA	AC1,AC3				; AC1,AC3				402517' 334 01 0 00 000003
L.95:	SETZ	AC1,				; AC1,					402520' 400 01 0 00 000000
	POPJ	SP,				; SP,					402521' 263 17 0 00 000000		1775

; Routine Size:  13 words


;	  1820	
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  78
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (24)

;	  1821	GLOBAL ROUTINE GBL_VAL (GLOBL_PTR) = 		!RETURN VALUE OF GLOBAL SYMBOL
;	  1822	
;	  1823	!++
;	  1824	! FUNCTIONAL DESCRIPTION:
;	  1825	!
;	  1826	!	IF THE GLOBAL SYMBOL IS ABSOLUTE, JUST RETURN ITS VALUE CELL.
;	  1827	!	 IF IT IS RELOCATABLE, WE MUST ADD TO THIS THE BASE OF THE
;	  1828	!	 PSECT IT WAS DEFINED IN AND THE OFFSET INTO THAT PSECT AT
;	  1829	!	 THE TIME OF THE DEFINITION.
;	  1830	!	 AN UNDEFINED SYMBOL RETURNS ZERO AND GIVES AN ERROR MESSAGE.
;	  1831	!
;	  1832	! FORMAL PARAMETERS:
;	  1833	!
;	  1834	!	GLOBL_PTR - POINTER TO THE GLOBAL WHOSE VALUE IS TO BE RETURNED
;	  1835	!
;	  1836	! IMPLICIT INPUTS:
;	  1837	!
;	  1838	!	NONE
;	  1839	!
;	  1840	! IMPLICIT OUTPUTS:
;	  1841	!
;	  1842	!	NONE
;	  1843	!
;	  1844	! ROUTINE VALUE:
;	  1845	!
;	  1846	!	THE VALUE OF THE GLOBAL SYMBOL, WITH THE HIGH-ORDER BIT
;	  1847	!	 SPREAD.
;	  1848	!
;	  1849	! SIDE EFFECTS
;	  1850	!
;	  1851	!	NONE
;	  1852	!
;	  1853	!--
;	  1854	
;	  1855	    BEGIN
;	  1856	
;	  1857	    MAP
;	  1858		GLOBL_PTR : REF GLOBL_BLOCK;
;	  1859	
;	  1860	    LOCAL
;	  1861		FLAGS,
;	  1862		PSECT_PTR : REF PSECT_BLOCK,
;	  1863		RESULT;
;	  1864	
;	  1865	    FLAGS = .GLOBL_PTR [GBL_FLAGS];
;	  1866	
;	  1867	    IF (.FLAGS<GBL_FLG_DEF, 1> EQL 0)
;	  1868	    THEN
;	  1869		BEGIN
;	  1870		ERRMSG (0, 16, GLOBL_PTR [GBL_NAME], 0, 0, 0, 0);
;	  1871		0
;	  1872		END
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  79
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (24)

;	  1873	    ELSE
;	  1874		BEGIN
;	  1875	
;	  1876		IF (.FLAGS<GBL_FLG_REL, 1> EQL 0)
;	  1877		THEN
;	  1878		    RESULT = .GLOBL_PTR [GBL_VALUE]
;	  1879		ELSE
;	  1880		    BEGIN
;	  1881		    PSECT_PTR = .GLOBL_PTR [GBL_DEF_PSECT];
;	  1882		    RESULT = .GLOBL_PTR [GBL_VALUE] + .PSECT_PTR [PSECT_BASE] + .GLOBL_PTR [GBL_DEF_OFFSET]
;	  1883		    END;
;	  1884	
;	  1885		IF (.RESULT<15, 1> NEQ 0) THEN RESULT<16, 20> = -1;
;	  1886	
;	  1887		.RESULT
;	  1888		END
;	  1889	
;	  1890	    END;					!OF GBL_VAL


GBL_VAL::
	PUSH	SP,AC0				; SP,AC0				402522' 261 17 0 00 000000		1821
	PUSH	SP,AC10				; SP,AC10				402523' 261 17 0 00 000010
	MOVE	AC10,-3(SP)			; AC10,GLOBL_PTR			402524' 200 10 0 17 777775		1865
	LDB	AC0,C.41			; FLAGS,[POINT 8,3(AC10),34]  <1,8>	402525' 135 00 0 00 401704'
	TRNE	AC0,10				; FLAGS,10				402526' 602 00 0 00 000010		1867
	JRST	L.96				; L.96					402527' 254 00 0 00 402545'
	PUSH	SP,C.4				; SP,[0]				402530' 261 17 0 00 400203'		1870
	PUSH	SP,C.62				; SP,[20]				402531' 261 17 0 00 402565'
	MOVE	AC1,AC10			; AC1,AC10				402532' 200 01 0 00 000010
	ADDI	AC1,1				; AC1,1					402533' 271 01 0 00 000001
	PUSH	SP,AC1				; SP,AC1				402534' 261 17 0 00 000001
	PUSH	SP,C.4				; SP,[0]				402535' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402536' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402537' 261 17 0 00 400203'
	PUSH	SP,C.4				; SP,[0]				402540' 261 17 0 00 400203'
	PUSHJ	SP,ERRMSG			; SP,ERRMSG				402541' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					402542' 105 17 0 00 777771		1869
	SETZ	AC1,				; AC1,					402543' 400 01 0 00 000000		1867
	JRST	L.99				; L.99					402544' 254 00 0 00 402562'
L.96:	TRNE	AC0,40				; FLAGS,40				402545' 602 00 0 00 000040		1876
	JRST	L.97				; L.97					402546' 254 00 0 00 402551'
	LDB	AC1,C.42			; RESULT,[POINT 16,3(AC10),26]  <9,16>	402547' 135 01 0 00 401705'		1878
	JRST	L.98				; L.98					402550' 254 00 0 00 402560'		1876
L.97:	HRRZ	AC2,5(AC10)			; PSECT_PTR,5(AC10)			402551' 550 02 0 10 000005		1881
	LDB	AC0,C.42			; AC0,[POINT 16,3(AC10),26]  <9,16>	402552' 135 00 0 00 401705'		1882
	HRRZ	AC3,4(AC2)			; AC3,4(PSECT_PTR)			402553' 550 03 0 02 000004
	ADD	AC0,AC3				; AC0,AC3				402554' 270 00 0 00 000003
	MOVE	AC1,AC0				; RESULT,AC0				402555' 200 01 0 00 000000
	HLRZ	AC2,5(AC10)			; AC2,5(AC10)				402556' 554 02 0 10 000005
	ADD	AC1,AC2				; RESULT,AC2				402557' 270 01 0 00 000002
L.98:	TRNE	AC1,100000			; RESULT,100000				402560' 602 01 0 00 100000		1885
RSTB								25-Jan-1983 10:20:03	TOPS-20 Bliss-36 2A(142)	    Page  80
X2.0								 1-Jan-1983 15:04:19	NETPKG:<VNP36>RSTB.BLI.7 (24)

	ORCMI	AC1,177777			; RESULT,177777				402561' 465 01 0 00 177777
L.99:	POP	SP,AC10				; SP,AC10				402562' 262 17 0 00 000010		1821
	POP	SP,AC0				; SP,AC0				402563' 262 17 0 00 000000
	POPJ	SP,				; SP,					402564' 263 17 0 00 000000
C.62:	EXP	20				; 20					402565' 000000	000020

; Routine Size:  36 words


;	  1891	
;	  1892	END
;	  1893	
;	  1894	ELUDOM



	END

; Low  segment length:       0 words
; High segment length:    1398 words




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<VNP36>VNPLIB.L36.6		       498        87        17         0





; Size:		1229 code + 169 data words
; Run Time:	00:21.5
; Elapsed Time:	01:19.5
; Memory Used:	35 pages
; Compilation Complete
ASCPTR				 875	 926	 969	 980	1032	1044	1049	1053	1062	1066	1112	1121
				1173	1185	1254	1309	1323	1351	1427	1480	1493	1509	1554	1606
				1619	1624	1669
ASCVAL				 354	 410	 411	 617	 649	 658	 661	 664	 667	 670	 673	 676
				 679
BLD_CHAIN			 128	 964	1356	1514
BLKPTR				 250	 287#	 295	 355	 374#	 376	 384	 385	 446
BYTE1				 166	 170#	 172	 175	 185	 251	 290	 292#	 295	 299
BYTE2				 167	 177#	 179	 182	 184
BYTECTR				 356	 385#	 391	 392	 419	 425	 428	 431	 435	 457	 498	 501#
				 511	 554	 557#	 569	 628	 642	 647	 648	 650	 651	 652	 686
				 689	 738	 759	 801	 806	 855
BYTEPTR				 357	 384#	 393	 419	 425	 428	 431	 435	 457	 502	 511	 558
				 559	 569	 642	 647	 648	 650	 651	 652	 689	 759	 806
BYTES_READ			 193	 258#	 264#	 293#	 358	 374
CH$WCHAR			1752
CHAN				 131	 170	 177	 193	 263	 292
CHAR				 359	 401#	 404	 408	 414	 615	 642#
CHAR_NUMBER			1721	1751#	1753
CHKSUM				 131	 175#	 182#	 252	 263
CLOSE				 116	 452
COUNTER				 360	 392#	 399#
COUNT				 253	 288#	 290#
ERR				1679	1762
ERRMSG				 120	 271	 281	 302	 379	 441	 506	 564	 637	 682	 743	 750
				 804	 860	 867	 943	 948	 960	 966	1119	1182	1318	1336	1347
				1359	1489	1505	1517	1523	1535	1548	1615	1676	1728	1738	1762
				1870
ERROR				 119
ETYPE				 619	 651#	 654
FILE_BLOCK			 247	 351	 496	 549	 611	 727	 844	 913	1020	1159	1292	1465
				1594	1716
FILE_CHAN			 314	 367	 374	 452
FILE_DOWN			 964
FILE_ERROR			 917	 934#	 944#	 949#	 954
FILE_MODU			 631	 741	 858	 936	 970	1180	1316	1487	1613	1733
FILE_NAME			 271	 302	 367	 379	 441	 506	 564	 682	 743	 750	 860	 868
				 943	 948	1318	1489	1536	1615	1728	1738	1762
FILE_PTR			 193	 247	 271	 302	 314	 351	 367	 374	 379	 419	 425	 428
				 431	 435	 441	 457	 496	 506	 511	 549	 564	 569	 611	 631
				 642	 647	 648	 650	 651	 652	 658	 661	 664	 667	 670	 673
				 676	 679	 682	 689	 727	 741	 743	 750	 759	 806	 844	 858
				 860	 868	 875	 913	 936	 943	 948	 964#	 970#	 971	 980	1020
				1049	1058	1062	1066	1121	1159	1180	1254	1292	1316	1318	1427
				1465	1487	1489	1536	1554	1594	1613	1615	1624	1679	1716	1725
				1728	1733	1738	1762
FLAGS				 618	 650#	 658	 661	 664	 667	 670	 673	 676	 679	 875	 928
				 980	1034	1066	1114	1121	1175	1254	1311	1324	1340	1352	1361
				1427	1482	1494	1510	1527	1529	1544	1549	1554	1608	1624	1671
				1861	1865#	1867	1876
FND_CHAIN			 129	1188	1329	1497	1519	1747	1755
FRESTG				 122	 303	 446
GBL_DEF_MODU			1334	1354
GBL_DEF_OFFSET			1365	1882
GBL_DEF_PSECT			1364	1881
GBL_FLAGS			1335	1352	1865
GBL_FLG_DEF			1867
GBL_FLG_REL			1338	1340	1361	1876
GBL_NAME			1247	1336	1351	1813	1870
GBL_VAL				  80#	1767	1821*
GBL_VALUE			1337	1353	1878	1882
GETBLK				 127	 958	1345	1503
GETSTG				 121	 278
GET_BYTE			  62	 419	 457*	 642	 650	 651
GET_WORD			  63	 511*	 647	 648	 652
GLOBAL_INFO			1202	1237	1247	1296	1323#	1324#	1325#	1329
GLOBAL_PTR			1202	1236	1247	1251
GLOBL_BLOCK			1236	1295	1719	1811	1858
GLOBL_LEN			1345
GLOBL_PTR			1295	1329#	1331	1334	1335	1336	1337	1345#	1351	1352#	1353#	1354#
				1356	1364#	1365#	1719	1747#	1755#	1758	1767	1775	1811	1813	1815
				1821	1858	1865	1870	1878	1881	1882
GLOBL_TYP			1345
GSD_CNAME			  68	 661	 980*
GSD_GSN				  72	 670	1254*
GSD_IDENT			  75	 676	1554*
GSD_ISN				  69	 664	1066*
GSD_MAP				  76	 679	1624*
GSD_MNAME			  67	 658	 875*
GSD_PSN				  74	 673	1049	1058	1062	1427*
GSD_TRA				  70	 667	1121*
INPUT				 117	 170	 177	 292
LEN_GBL_NAME			1247	1351	1723	1743	1753	1813
LEN_MODU_NAME			 969
LEN_MODU_VER			1619
LEN_PSECT_NAME			 354	 617	1044	1053	1420	1509
MODU_BLOCK			 614	 730	 847	 916	1023	1162	1297	1298	1468	1597	1720
MODU_FLAG_EGSD			 635	 748	 753	 865
MODU_FLAG_ENDED			 635	 865	 870	 940
MODU_FLAG_IDENT			1620
MODU_GLOBALS			1329	1356	1747	1755
MODU_IDENT			1619
MODU_LEN			 958
MODU_NAME			 969	1336	1339	1548
MODU_OBJ_FILE			 971
MODU_PSECTS			1188	1497	1514	1519
MODU_PSECT			1322	1526
MODU_PTR			 614	 631#	 635	 730	 741#	 748	 753#	 847	 858#	 865	 870#	 916
				 936#	 940	 958#	 964	 969	 970	 971#	 972#	1023	1162	1180#	1188
				1192#	1195#	1196#	1297	1316#	1322	1329	1339	1354	1356#	1468	1487#
				1497	1514#	1519	1526#	1531	1533#	1548	1597	1613#	1619	1620#	1720
				1733#	1735	1747	1755
MODU_PTR1			1298	1334#	1336
MODU_SECTOR			 972	1531	1533
MODU_TYP			 958
MODU_XFR_OFFSET			1192	1196
MODU_XFR_PSECT			1195
OBJ_END_GSD			  65	 428	 689*
OBJ_EOM				  66	 435	 806*
OBJ_GSD				  64	 425	 569*
OBJ_ISD				  77	 431	 759*
OPEN				 115*	 367
OUTLEN				 254	 259#	 261	 263#	 267	 271	 278	 285	 286	 290
OUTNUM				 124	 391	 404	 628	 738	 801	 855	 928	 930	1034	1036	1114
				1116	1175	1177	1311	1313	1482	1484	1608	1610	1671	1673
OUTPUT				 118	 405	 626	 736	 799	 853	 923	 924	1029	1030	1109	1110
				1170	1171	1306	1307	1477	1478	1603	1604	1666	1667
OUTSTR				 125	 403	 411	 627	 737	 800	 854	 925	 926	 927	 929	1031
				1032	1033	1035	1111	1112	1113	1115	1172	1173	1174	1176	1308
				1309	1310	1312	1479	1480	1481	1483	1605	1606	1607	1609	1668
				1669	1670	1672
PADDED_SYMBOL			1723	1754	1755
PCRLF				 123	 390	 402	 625	 735	 798	 852	 922	1028	1108	1169	1305
				1476	1602	1665
POINTER				 361	 393#	 401
PREV_CHAR			 362	 394#	 395#	 396#	 406	 407	 409	 412#	 413#	 414#
PSECT_BASE			1882
PSECT_BLOCK			1163	1299	1409	1469	1862
PSECT_FLAGS			1510	1544	1549
PSECT_FLG_DATA			1545
PSECT_FLG_GBL			1058	1062	1545
PSECT_FLG_HI			1544
PSECT_FLG_LIB			1544
PSECT_FLG_OVR			1058	1062	1527	1529	1545
PSECT_FLG_REL			1049	1062	1545
PSECT_FLG_RO			1545
PSECT_INFO			1164	1185#	1186#	1187#	1188	1375	1410	1420	1470	1493#	1494#	1495#
				1497	1519
PSECT_LEN			1503
PSECT_NAME			1420	1509	1548
PSECT_OFFSET			1196	1365	1512	1527
PSECT_PTR			1163	1188#	1190	1195	1196	1299	1322#	1364	1365	1375	1409	1420
				1424	1469	1497#	1499	1503#	1509	1510#	1511#	1512#	1514	1519#	1521
				1526	1527#	1528	1529#	1530	1531#	1544	1548	1549	1862	1881#	1882
PSECT_SECTOR			1531
PSECT_SIZE			1511	1528	1529	1530
PSECT_TYP			1503
R50TOA				 126	 410	 649
R50VAL				 363	 397#	 406#	 407#	 408#	 409#	 410	 616	 646#	 647#	 648#	 649
RD16				  59	 131*	 263
RDLBBL				  60	 193*	 374
READ_DONE			 364	 370#	 380#	 436#	 442#	 450
RECORD_TYPE			 365	 419#	 421
RESULT				 168	 183#	 184#	 185#	 186	 255	 257#	 273#	 278#	 285#	 286#	 287
				 303	 304#	 311	 552	 558#	 559#	 560	1863	1878#	1882#	1885#	1887
ROUTINE_NAME			 244#	 271	 281	 302	 348#	 379	 441	 493#	 506	 546#	 564	 608#
				 638	 682	 724#	 743	 750	 793#	 804	 841#	 860	 868	 910#	 943
				 948	 960	 966	1017#	1103#	1119	1156#	1182	1289#	1318	1347	1359
				1462#	1489	1505	1517	1523	1536	1548	1591#	1615	1660#	1676	1713#
				1728	1738	1762
RSTB				   2#	  61	 314*
SEARCH_DONE			1471
SEL_GLOBAL			  71	1202*	1329
SEL_PSECT			  73	1188	1375*	1497	1519
SEL_SYMBOL			  79	1747	1755	1775*
SYMBOL_END			1722	1743#	1745	1751
SYMBOL_NAME			1679	1728	1738	1743	1748	1751	1753	1762	1775	1813
SYM_VAL				  78	1679*
TEMP_FLAGS			1300	1335#	1338
VALUE				 620	 652#	 658	 661	 664	 667	 670	 673	 676	 679	 875	 930
				 980	1036	1049	1058	1062	1066	1116	1121	1177	1192	1196	1254
				1313	1325	1340	1353	1427	1484	1495	1530	1554	1610	1624	1673