Google
 

Trailing-Edge - PDP-10 Archives - BB-R595B-SM_11-9-85 - mcb/utilities/lbrobj.lst
There is 1 other file named lbrobj.lst in the archive. Click here to see a list.
								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   1
								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (1)

;   0001  0	
;   0002  0	MODULE LBROBJ (					!Read an object module
;   0003  0			IDENT = '001020',
;   0004  0			LANGUAGE (BLISS16, BLISS36)
;   0005  0			) =
;   0006  1	BEGIN
;   0007  1	!
;   0008  1	!
;   0009  1	!
;   0010  1	!                    COPYRIGHT (c) 1980, 1981, 1982
;   0011  1	!                    DIGITAL EQUIPMENT CORPORATION
;   0012  1	!                        Maynard, Massachusetts
;   0013  1	!
;   0014  1	!     This software is furnished under a license and may  be  used
;   0015  1	!     and copied only in accordance with the terms of such license
;   0016  1	!     and with the inclusion of the above copyright notice.   This
;   0017  1	!     software  or any other copies thereof may not be provided or
;   0018  1	!     otherwise made available to any other person.  No  title  to
;   0019  1	!     and ownership of the software is hereby transferred.
;   0020  1	!
;   0021  1	!     The information  in  this  software  is  subject  to  change
;   0022  1	!     without  notice  and should not be construed as a commitment
;   0023  1	!     by DIGITAL EQUIPMENT CORPORATION.
;   0024  1	!
;   0025  1	!     DIGITAL assumes no responsibility for the use or reliability
;   0026  1	!     of  its  software  on  equipment  which  is  not supplied by
;   0027  1	!     DIGITAL.
;   0028  1	!
;   0029  1	
;   0030  1	!++
;   0031  1	! FACILITY: LBR20 - Librarian Utility
;   0032  1	!
;   0033  1	! ABSTRACT:
;   0034  1	!
;   0035  1	!
;   0036  1	! This module contains the routines to access an object module file.
;   0037  1	!
;   0038  1	!
;   0039  1	! ENVIRONMENT: ANY
;   0040  1	!
;   0041  1	! AUTHOR: ALAN D. PECKHAM, CREATION DATE: 12-MAY-80
;   0042  1	!
;   0043  1	! MODIFIED BY:
;   0044  1	!
;   0045  1	!	Alan D. Peckham, : VERSION 01
;   0046  1	! 02	- Restructure file positioning to refer to block/offset.
;   0047  1	!	  Define OBJ_MARK and OBJ_SET routines to mark the beginning
;   0048  1	!	  of an object module and rewind the file to that position.
;   0049  1	!--
;   0050  1	
;   0051  1	!
;   0052  1	! TABLE OF CONTENTS:
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   2
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (1)

;   0053  1	!
;   0054  1	
;   0055  1	FORWARD ROUTINE
;   0056  1	    GET_BYTE,					!Get a byte from the file
;   0057  1	    GET_WORD,					!Get a word from the file
;   0058  1	    OBJ_CLOSE : NOVALUE,			!Close object file
;   0059  1	    OBJ_MARK : NOVALUE,				!Mark current record position
;   0060  1	    OBJ_OPEN,					!Open object file
;   0061  1	    OBJ_RECORD,					!Read length of next record
;   0062  1	    OBJ_SET : NOVALUE,				!Reset to marked position
;   0063  1	    OBJ_WORD;					!Read next word of record
;   0064  1	
;   0065  1	!
;   0066  1	! INCLUDE FILES
;   0067  1	!
;   0068  1	
;   0069  1	LIBRARY 'LBRCOM';				!LBR COMMON DEFINITIONS
;   0070  1	
;   0071  1	!
;   0072  1	! MACROS:
;   0073  1	!
;   0074  1	!	None
;   0075  1	!
;   0076  1	! EQUATED SYMBOLS:
;   0077  1	!
;   0078  1	
;   0079  1	LITERAL
;   0080  1	    UNKNOWN = 0,
;   0081  1	    RSX = 1,
;   0082  1	    MACY11 = 2;
;   0083  1	
;   0084  1	!
;   0085  1	! OWN STORAGE:
;   0086  1	!
;   0087  1	
;   0088  1	OWN
;   0089  1	    EOF,
;   0090  1	    FILE_TYPE,
;   0091  1	    FIRST_BYTE,
;   0092  1	    MARK_BLOCK,
;   0093  1	    MARK_OFFSET,
;   0094  1	    OBJBLK,
;   0095  1	    RECORD_COUNT,
;   0096  1	    WORD_READ,
;   0097  1	    WORD_VALUE;
;   0098  1	
;   0099  1	BIND
;   0100  1	    WORD_PTR = CH$PTR (WORD_VALUE,, 16);
;   0101  1	
;   0102  1	!
;   0103  1	! EXTERNAL REFERENCES:
;   0104  1	!
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   3
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (1)

;   0105  1	
;   0106  1	EXTERNAL ROUTINE
;   0107  1	    CLOSE,					!Close a file.
;   0108  1	    FILNM : NOVALUE,				!Convert file name to ASCII.
;   0109  1	    FILPOS,					!Get the current file position.
;   0110  1	    GETFIL,					!Get a word from the file.
;   0111  1	    OPEN,					!Open a file.
;   0112  1	    POSFIL;					!Position to a word in the file
;   0113  1	
;   0114  1	EXTERNAL
;   0115  1	    FLAGS : BITVECTOR [M_MAX_BITS];
;   0116  1	
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   4
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (2)

;   0117  1	ROUTINE GET_BYTE =
;   0118  1	
;   0119  1	!++
;   0120  1	! FUNCTIONAL DESCRIPTION:
;   0121  1	!
;   0122  1	!
;   0123  1	!
;   0124  1	!
;   0125  1	! FORMAL PARAMETERS:
;   0126  1	!
;   0127  1	!	NONE
;   0128  1	!
;   0129  1	! IMPLICIT INPUTS:
;   0130  1	!
;   0131  1	!	NONE
;   0132  1	!
;   0133  1	! IMPLICIT OUTPUTS:
;   0134  1	!
;   0135  1	!	NONE
;   0136  1	!
;   0137  1	! ROUTINE VALUE:
;   0138  1	!
;   0139  1	!	NONE
;   0140  1	!
;   0141  1	! SIDE EFFECTS
;   0142  1	!
;   0143  1	!	NONE
;   0144  1	!
;   0145  1	!--
;   0146  1	
;   0147  2	    BEGIN
;   0148  2	
;   0149  2	    IF .EOF THEN RETURN 0;
;   0150  2	
;   0151  3	    IF (FIRST_BYTE = NOT .FIRST_BYTE)
;   0152  2	    THEN
;   0153  3		BEGIN
;   0154  3	
;   0155  3		IF GETFIL (.OBJBLK, CH$PTR (WORD_READ,, 16), 1) EQL 0
;   0156  3		THEN
;   0157  3		    RETURN (EOF = TRUE; 0);
;   0158  3	
;   0159  3		WORD_READ = CH$RCHAR (CH$PTR (WORD_READ,, 16));
;   0160  3		.WORD_READ<0, 8>
;   0161  3		END
;   0162  2	    ELSE
;   0163  2		.WORD_READ<8, 8>
;   0164  2	
;   0165  1	    END;					!OF GET_BYTE


	TITLE	LBROBJ
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   5
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (2)

	TWOSEG


	.REQUEST  SYS:B362LB.REL


	RELOC	0				;					000000'
EOF:	BLOCK	1				;					000000'
FILE_TYPE:
	BLOCK	1				;					000001'
FIRST_BYTE:
	BLOCK	1				;					000002'
MARK_BLOCK:
	BLOCK	1				;					000003'
MARK_OFFSET:
	BLOCK	1				;					000004'
OBJBLK: BLOCK	1				;					000005'
RECORD_COUNT:
	BLOCK	1				;					000006'
WORD_READ:
	BLOCK	1				;					000007'
WORD_VALUE:
	BLOCK	1				;					000010'


	EXTERN	CLOSE, FILNM, FILPOS, GETFIL, OPEN, POSFIL, FLAGS


WORD_PTR=	    <POINT 16,WORD_VALUE-1,31>	;						04 20 0 00 000007'


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'
GET_BYTE:
	MOVEI	AC1,1				; AC1,1					400000' 201 01 0 00 000001		0149
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   6
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (2)

	TDNE	AC1,EOF				; AC1,EOF				400001' 612 01 0 00 000000'
	JRST	L.1				; L.1					400002' 254 00 0 00 400017'
	SETCM	AC1,FIRST_BYTE			; AC1,FIRST_BYTE			400003' 460 01 0 00 000002'		0151
	MOVEM	AC1,FIRST_BYTE			; AC1,FIRST_BYTE			400004' 202 01 0 00 000002'
	TRNN	AC1,1				; AC1,1					400005' 606 01 0 00 000001
	JRST	L.3				; L.3					400006' 254 00 0 00 400026'
	PUSH	SP,OBJBLK			; SP,OBJBLK				400007' 261 17 0 00 000005'		0155
	PUSH	SP,C.3				; SP,[POINT 16,WORD_READ-1,31]  <4,16>	400010' 261 17 0 00 400032'
	PUSH	SP,C.4				; SP,[1]				400011' 261 17 0 00 400033'
	PUSHJ	SP,GETFIL			; SP,GETFIL				400012' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					400013' 105 17 0 00 777775
	JUMPN	AC1,L.2				; AC1,L.2				400014' 326 01 0 00 400021'
	MOVEI	AC1,1				; AC1,1					400015' 201 01 0 00 000001		0157
	MOVEM	AC1,EOF				; AC1,EOF				400016' 202 01 0 00 000000'
L.1:	SETZ	AC1,				; AC1,					400017' 400 01 0 00 000000
	POPJ	SP,				; SP,					400020' 263 17 0 00 000000
L.2:	MOVE	AC1,C.3				; AC1,[POINT 16,WORD_READ-1,31]  <4,16> 400021' 200 01 0 00 400032'		0159
	ILDB	AC1,AC1				; AC1,AC1				400022' 134 01 0 00 000001
	MOVEM	AC1,WORD_READ			; AC1,WORD_READ				400023' 202 01 0 00 000007'
	LDB	AC1,C.1				; AC1,[POINT 8,WORD_READ,35]  <0,8>	400024' 135 01 0 00 400030'		0151
	POPJ	SP,				; SP,					400025' 263 17 0 00 000000
L.3:	LDB	AC1,C.2				; AC1,[POINT 8,WORD_READ,27]  <8,8>	400026' 135 01 0 00 400031'
	POPJ	SP,				; SP,					400027' 263 17 0 00 000000		0117
C.1:	POINT	8,WORD_READ,35			; 8,WORD_READ,35			400030' 00 10 0 00 000007'
C.2:	POINT	8,WORD_READ,27			; 8,WORD_READ,27			400031' 10 10 0 00 000007'
C.3:	POINT	16,WORD_READ-1,31		; 16,WORD_READ-1,31			400032' 04 20 0 00 000006'
C.4:	EXP	1				; 1					400033' 000000	000001

; Routine Size:  28 words


;   0166  1	
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   7
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (3)

;   0167  1	ROUTINE GET_WORD =
;   0168  1	
;   0169  1	!++
;   0170  1	! FUNCTIONAL DESCRIPTION:
;   0171  1	!
;   0172  1	!
;   0173  1	!
;   0174  1	!
;   0175  1	! FORMAL PARAMETERS:
;   0176  1	!
;   0177  1	!	NONE
;   0178  1	!
;   0179  1	! IMPLICIT INPUTS:
;   0180  1	!
;   0181  1	!	NONE
;   0182  1	!
;   0183  1	! IMPLICIT OUTPUTS:
;   0184  1	!
;   0185  1	!	NONE
;   0186  1	!
;   0187  1	! ROUTINE VALUE:
;   0188  1	!
;   0189  1	!	NONE
;   0190  1	!
;   0191  1	! SIDE EFFECTS
;   0192  1	!
;   0193  1	!	NONE
;   0194  1	!
;   0195  1	!--
;   0196  1	
;   0197  2	    BEGIN
;   0198  2	
;   0199  2	    IF .EOF THEN RETURN 0;
;   0200  2	
;   0201  2	    IF GETFIL (.OBJBLK, CH$PTR (WORD_READ,, 16), 1) EQL 0
;   0202  2	    THEN
;   0203  2		RETURN (EOF = TRUE; 0);
;   0204  2	
;   0205  2	    CH$RCHAR (CH$PTR (WORD_READ,, 16))
;   0206  1	    END;					!OF GET_WORD


GET_WORD:
	MOVEI	AC1,1				; AC1,1					400034' 201 01 0 00 000001		0199
	TDNE	AC1,EOF				; AC1,EOF				400035' 612 01 0 00 000000'
	JRST	L.4				; L.4					400036' 254 00 0 00 400047'
	PUSH	SP,OBJBLK			; SP,OBJBLK				400037' 261 17 0 00 000005'		0201
	PUSH	SP,C.3				; SP,[POINT 16,WORD_READ-1,31]  <4,16>	400040' 261 17 0 00 400032'
	PUSH	SP,C.4				; SP,[1]				400041' 261 17 0 00 400033'
	PUSHJ	SP,GETFIL			; SP,GETFIL				400042' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					400043' 105 17 0 00 777775
	JUMPN	AC1,L.5				; AC1,L.5				400044' 326 01 0 00 400051'
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   8
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (3)

	MOVEI	AC1,1				; AC1,1					400045' 201 01 0 00 000001		0203
	MOVEM	AC1,EOF				; AC1,EOF				400046' 202 01 0 00 000000'
L.4:	SETZ	AC1,				; AC1,					400047' 400 01 0 00 000000
	POPJ	SP,				; SP,					400050' 263 17 0 00 000000
L.5:	MOVE	AC1,C.3				; AC1,[POINT 16,WORD_READ-1,31]  <4,16> 400051' 200 01 0 00 400032'		0205
	ILDB	AC1,AC1				; AC1,AC1				400052' 134 01 0 00 000001
	POPJ	SP,				; SP,					400053' 263 17 0 00 000000		0167

; Routine Size:  16 words


;   0207  1	
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page   9
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (4)

;   0208  1	GLOBAL ROUTINE OBJ_CLOSE : NOVALUE =
;   0209  1	
;   0210  1	!++
;   0211  1	! FUNCTIONAL DESCRIPTION:
;   0212  1	!
;   0213  1	!
;   0214  1	!
;   0215  1	!
;   0216  1	! FORMAL PARAMETERS:
;   0217  1	!
;   0218  1	!	NONE
;   0219  1	!
;   0220  1	! IMPLICIT INPUTS:
;   0221  1	!
;   0222  1	!	NONE
;   0223  1	!
;   0224  1	! IMPLICIT OUTPUTS:
;   0225  1	!
;   0226  1	!	NONE
;   0227  1	!
;   0228  1	! ROUTINE VALUE:
;   0229  1	!
;   0230  1	!	NONE
;   0231  1	!
;   0232  1	! SIDE EFFECTS
;   0233  1	!
;   0234  1	!	NONE
;   0235  1	!
;   0236  1	!--
;   0237  1	
;   0238  2	    BEGIN
;   0239  2	    CLOSE (.OBJBLK);
;   0240  1	    END;					!OF OBJ_CLOSE


OBJ_CLOSE::
	PUSH	SP,OBJBLK			; SP,OBJBLK				400054' 261 17 0 00 000005'		0239
	PUSHJ	SP,CLOSE			; SP,CLOSE				400055' 260 17 0 00 000000*
	ADJSP	SP,-1				; SP,-1					400056' 105 17 0 00 777777		0238
	POPJ	SP,				; SP,					400057' 263 17 0 00 000000		0208

; Routine Size:  4 words


;   0241  1	
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  10
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (5)

;   0242  1	GLOBAL ROUTINE OBJ_MARK : NOVALUE =
;   0243  1	
;   0244  1	!++
;   0245  1	! FUNCTIONAL DESCRIPTION:
;   0246  1	!
;   0247  1	!
;   0248  1	!
;   0249  1	!
;   0250  1	! FORMAL PARAMETERS:
;   0251  1	!
;   0252  1	!	NONE
;   0253  1	!
;   0254  1	! IMPLICIT INPUTS:
;   0255  1	!
;   0256  1	!	NONE
;   0257  1	!
;   0258  1	! IMPLICIT OUTPUTS:
;   0259  1	!
;   0260  1	!	NONE
;   0261  1	!
;   0262  1	! ROUTINE VALUE:
;   0263  1	!
;   0264  1	!	NONE
;   0265  1	!
;   0266  1	! SIDE EFFECTS
;   0267  1	!
;   0268  1	!	NONE
;   0269  1	!
;   0270  1	!--
;   0271  1	
;   0272  2	    BEGIN
;   0273  2	    FILPOS (.OBJBLK, MARK_BLOCK, MARK_OFFSET);
;   0274  2	
;   0275  2	    IF (.FILE_TYPE EQL MACY11) AND .FIRST_BYTE
;   0276  2	    THEN
;   0277  2		MARK_OFFSET<0, 1> = 1;
;   0278  2	
;   0279  1	    END;					!OF OBJ_MARK


OBJ_MARK::
	PUSH	SP,OBJBLK			; SP,OBJBLK				400060' 261 17 0 00 000005'		0273
	PUSH	SP,C.5				; SP,[0,,MARK_BLOCK]			400061' 261 17 0 00 400076'
	PUSH	SP,C.6				; SP,[0,,MARK_OFFSET]			400062' 261 17 0 00 400077'
	PUSHJ	SP,FILPOS			; SP,FILPOS				400063' 260 17 0 00 000000*
	MOVEI	AC1,2				; AC1,2					400064' 201 01 0 00 000002		0275
	CAME	AC1,FILE_TYPE			; AC1,FILE_TYPE				400065' 312 01 0 00 000001'
	JRST	L.6				; L.6					400066' 254 00 0 00 400074'
	MOVEI	AC1,1				; AC1,1					400067' 201 01 0 00 000001
	TDNN	AC1,FIRST_BYTE			; AC1,FIRST_BYTE			400070' 616 01 0 00 000002'
	JRST	L.6				; L.6					400071' 254 00 0 00 400074'
	MOVEI	AC1,1				; AC1,1					400072' 201 01 0 00 000001		0277
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  11
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (5)

	IORM	AC1,MARK_OFFSET			; AC1,MARK_OFFSET			400073' 436 01 0 00 000004'
L.6:	ADJSP	SP,-3				; SP,-3					400074' 105 17 0 00 777775		0272
	POPJ	SP,				; SP,					400075' 263 17 0 00 000000		0242
C.5:	XWD	0,MARK_BLOCK			; 0,MARK_BLOCK				400076' 000000	000003'
C.6:	XWD	0,MARK_OFFSET			; 0,MARK_OFFSET				400077' 000000	000004'

; Routine Size:  16 words


;   0280  1	
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  12
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (6)

;   0281  1	GLOBAL ROUTINE OBJ_OPEN (OBJ_FILBLK) =
;   0282  1	
;   0283  1	!++
;   0284  1	! FUNCTIONAL DESCRIPTION:
;   0285  1	!
;   0286  1	!
;   0287  1	!
;   0288  1	!
;   0289  1	! FORMAL PARAMETERS:
;   0290  1	!
;   0291  1	!	NONE
;   0292  1	!
;   0293  1	! IMPLICIT INPUTS:
;   0294  1	!
;   0295  1	!	NONE
;   0296  1	!
;   0297  1	! IMPLICIT OUTPUTS:
;   0298  1	!
;   0299  1	!	NONE
;   0300  1	!
;   0301  1	! ROUTINE VALUE:
;   0302  1	!
;   0303  1	!	NONE
;   0304  1	!
;   0305  1	! SIDE EFFECTS
;   0306  1	!
;   0307  1	!	NONE
;   0308  1	!
;   0309  1	!--
;   0310  1	
;   0311  2	    BEGIN
;   0312  2	    OBJBLK = .OBJ_FILBLK;
;   0313  2	    FILE_TYPE = UNKNOWN;
;   0314  2	    EOF = FALSE;
;   0315  2	    RECORD_COUNT = 0;
;   0316  2	
;   0317  2	    IF NOT OPEN (.OBJBLK, F_READ, F_BINARY)
;   0318  2	    THEN
;   0319  2		RETURN
;   0320  3		    BEGIN
; P 0321  3		    TYPLN (1, CH$ASCIZ (FATAL, 'Unable to open object file "%@"'),
;   0322  3			FILNM, .OBJBLK);
;   0323  3		    FALSE
;   0324  2		    END;
;   0325  2	
;   0326  2	    TRUE
;   0327  1	    END;					!OF OBJ_OPEN


P.AAA:	BYTE	(7)"*","F","A","T","A"		; *FATA					400100' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","U"		; L*  U					400101' 114 052 040 040 125
	BYTE	(7)"n","a","b","l","e"		; nable					400102' 156 141 142 154 145
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  13
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (6)

	BYTE	(7)" ","t","o"," ","o"		;  to o					400103' 040 164 157 040 157
	BYTE	(7)"p","e","n"," ","o"		; pen o					400104' 160 145 156 040 157
	BYTE	(7)"b","j","e","c","t"		; bject					400105' 142 152 145 143 164
	BYTE	(7)" ","f","i","l","e"		;  file					400106' 040 146 151 154 145
	BYTE	(7)" ",042,"%","@",042		;  "%@"					400107' 040 042 045 100 042
	BYTE	(7)000,000,000,000,000		;					400110' 000 000 000 000 000


	EXTERN	TYPLIN


OBJ_OPEN::
	ADJSP	SP,2				; SP,2					400111' 105 17 0 00 000002		0281
	MOVE	AC1,-3(SP)			; AC1,OBJ_FILBLK			400112' 200 01 0 17 777775		0312
	MOVEM	AC1,OBJBLK			; AC1,OBJBLK				400113' 202 01 0 00 000005'
	SETZM	FILE_TYPE			; FILE_TYPE				400114' 402 00 0 00 000001'		0313
	SETZM	EOF				; EOF					400115' 402 00 0 00 000000'		0314
	SETZM	RECORD_COUNT			; RECORD_COUNT				400116' 402 00 0 00 000006'		0315
	PUSH	SP,OBJBLK			; SP,OBJBLK				400117' 261 17 0 00 000005'		0317
	PUSH	SP,C.7				; SP,[0]				400120' 261 17 0 00 400144'
	PUSH	SP,C.4				; SP,[1]				400121' 261 17 0 00 400033'
	PUSHJ	SP,OPEN				; SP,OPEN				400122' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					400123' 105 17 0 00 777775
	TRNE	AC1,1				; AC1,1					400124' 602 01 0 00 000001
	JRST	L.7				; L.7					400125' 254 00 0 00 400141'
	MOVEI	AC1,FILNM			; AC1,FILNM				400126' 201 01 0 00 000000*		0322
	MOVEM	AC1,-1(SP)			; AC1,PRM_LIST				400127' 202 01 0 17 777777
	MOVE	AC1,OBJBLK			; AC1,OBJBLK				400130' 200 01 0 00 000005'
	MOVEM	AC1,0(SP)			; AC1,PRM_LIST+1			400131' 202 01 0 17 000000
	PUSH	SP,C.4				; SP,[1]				400132' 261 17 0 00 400033'
	PUSH	SP,C.8				; SP,[POINT 7,P.AAA-1,34]  <1,7>	400133' 261 17 0 00 400145'
	MOVEI	AC1,-3(SP)			; AC1,PRM_LIST				400134' 201 01 0 17 777775
	PUSH	SP,AC1				; SP,AC1				400135' 261 17 0 00 000001
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				400136' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					400137' 105 17 0 00 777775		0320
	TDZA	AC1,AC1				; AC1,AC1				400140' 634 01 0 00 000001		0319
L.7:	MOVEI	AC1,1				; AC1,1					400141' 201 01 0 00 000001		0281
	ADJSP	SP,-2				; SP,-2					400142' 105 17 0 00 777776
	POPJ	SP,				; SP,					400143' 263 17 0 00 000000
C.7:	EXP	0				; 0					400144' 000000	000000
C.8:	POINT	7,P.AAA-1,34			; 7,P.AAA-1,34				400145' 01 07 0 00 400077'

; Routine Size:  29 words


;   0328  1	
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  14
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (7)

;   0329  1	GLOBAL ROUTINE OBJ_RECORD =
;   0330  1	
;   0331  1	!++
;   0332  1	! FUNCTIONAL DESCRIPTION:
;   0333  1	!
;   0334  1	!
;   0335  1	!
;   0336  1	!
;   0337  1	! FORMAL PARAMETERS:
;   0338  1	!
;   0339  1	!	NONE
;   0340  1	!
;   0341  1	! IMPLICIT INPUTS:
;   0342  1	!
;   0343  1	!	NONE
;   0344  1	!
;   0345  1	! IMPLICIT OUTPUTS:
;   0346  1	!
;   0347  1	!	NONE
;   0348  1	!
;   0349  1	! ROUTINE VALUE:
;   0350  1	!
;   0351  1	!	NONE
;   0352  1	!
;   0353  1	! SIDE EFFECTS
;   0354  1	!
;   0355  1	!	NONE
;   0356  1	!
;   0357  1	!--
;   0358  1	
;   0359  2	    BEGIN
;   0360  2	
;   0361  2	    WHILE .RECORD_COUNT GTR 0 DO
;   0362  2		OBJ_WORD ();
;   0363  2	
;   0364  2	    CASE .FILE_TYPE FROM 0 TO 2 OF
;   0365  2		SET
;   0366  2	
;   0367  2		[UNKNOWN] :
;   0368  3		    BEGIN
;   0369  3	
;   0370  3		    UNTIL (WORD_READ = GET_WORD ()) GTR 0 DO
;   0371  3	
;   0372  3			IF .EOF THEN RETURN -1;
;   0373  3	
;   0374  3		    SELECT .WORD_READ OF
;   0375  3			SET
;   0376  3	
;   0377  3			[1] :
;   0378  3			    FIRST_BYTE = TRUE;
;   0379  3	
;   0380  3			[256] :
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  15
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (7)

;   0381  3			    FIRST_BYTE = FALSE;
;   0382  3	
;   0383  3			[1, 256] :
;   0384  4			    BEGIN
;   0385  4			    FILE_TYPE = MACY11;
;   0386  4			    RECORD_COUNT = 0;
;   0387  4	
;   0388  4			    DO
;   0389  5				BEGIN
;   0390  5				GET_BYTE ();
;   0391  5				WORD_VALUE = 0;
;   0392  5				WORD_VALUE<0, 8> = GET_BYTE ();
;   0393  5				WORD_VALUE<8, 8> = GET_BYTE ();
;   0394  5	
;   0395  5				IF .WORD_VALUE GTR 4
;   0396  5				THEN
;   0397  5				    RECORD_COUNT = .WORD_VALUE - 4
;   0398  5				ELSE
;   0399  6				    BEGIN
;   0400  6				    GET_BYTE ();
;   0401  6	
;   0402  6				    UNTIL GET_BYTE () EQL 1 DO
;   0403  6	
;   0404  6					IF .EOF THEN RETURN -1;
;   0405  6	
;   0406  5				    END;
;   0407  5	
;   0408  5				IF .EOF THEN RETURN -1;
;   0409  5	
;   0410  5				END
;   0411  4			    WHILE .RECORD_COUNT EQL 0;
;   0412  4	
;   0413  3			    END;
;   0414  3	
;   0415  3			[OTHERWISE] :
;   0416  4			    BEGIN
;   0417  4			    FILE_TYPE = RSX;
;   0418  4	
;   0419  4			    UNTIL (RECORD_COUNT = .WORD_READ) GTR 0 DO
;   0420  5				BEGIN
;   0421  5				WORD_READ = GET_WORD ();
;   0422  5	
;   0423  5				IF .EOF THEN RETURN -1;
;   0424  5	
;   0425  4				END;
;   0426  4	
;   0427  3			    END;
;   0428  3			TES;
;   0429  3	
;   0430  2		    END;
;   0431  2	
;   0432  2		[RSX] :
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  16
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (7)

;   0433  3		    BEGIN
;   0434  3	
;   0435  3		    WHILE (RECORD_COUNT = GET_WORD ()) EQL 0 DO
;   0436  3	
;   0437  3			IF .EOF THEN RETURN -1;
;   0438  3	
;   0439  2		    END;
;   0440  2	
;   0441  2		[MACY11] :
;   0442  2	
;   0443  2		    DO
;   0444  3			BEGIN
;   0445  3	
;   0446  3			UNTIL GET_BYTE () EQL 1 DO
;   0447  3	
;   0448  3			    IF .EOF THEN RETURN -1;
;   0449  3	
;   0450  3			GET_BYTE ();
;   0451  3			WORD_VALUE = 0;
;   0452  3			WORD_VALUE<0, 8> = GET_BYTE ();
;   0453  3			WORD_VALUE<8, 8> = GET_BYTE ();
;   0454  3	
;   0455  3			IF (RECORD_COUNT = .WORD_VALUE - 4) LEQ 0 THEN GET_BYTE ();
;   0456  3	
;   0457  3			IF .EOF THEN RETURN -1;
;   0458  3	
;   0459  3			END
;   0460  2		    UNTIL .RECORD_COUNT GTR 0
;   0461  2	
;   0462  2		TES;
;   0463  2	
;   0464  2	    .RECORD_COUNT
;   0465  1	    END;					!OF OBJ_RECORD


OBJ_RECORD::
	PUSH	SP,AC14				; SP,AC14				400146' 261 17 0 00 000014		0329
	PUSH	SP,AC16				; SP,AC16				400147' 261 17 0 00 000016
L.8:	SKIPG	RECORD_COUNT			; RECORD_COUNT				400150' 337 00 0 00 000006'		0361
	JRST	L.9				; L.9					400151' 254 00 0 00 400154'
	PUSHJ	SP,OBJ_WORD			; SP,OBJ_WORD				400152' 260 17 0 00 000000V		0362
	JRST	L.8				; L.8					400153' 254 00 0 00 400150'		0361
L.9:	MOVE	AC1,FILE_TYPE			; AC1,FILE_TYPE				400154' 200 01 0 00 000001'		0364
	JRST	L.10(AC1)			; L.10(AC1)				400155' 254 00 0 01 400156'
L.10:	JRST	L.11				; L.11					400156' 254 00 0 00 400161'
	JRST	L.21				; L.21					400157' 254 00 0 00 400256'
	JRST	L.22				; L.22					400160' 254 00 0 00 400265'
L.11:	PUSHJ	SP,GET_WORD			; SP,GET_WORD				400161' 260 17 0 00 400034'		0370
	MOVEM	AC1,WORD_READ			; AC1,WORD_READ				400162' 202 01 0 00 000007'
	JUMPG	AC1,L.12			; AC1,L.12				400163' 327 01 0 00 400170'
	MOVEI	AC1,1				; AC1,1					400164' 201 01 0 00 000001		0372
	TDNN	AC1,EOF				; AC1,EOF				400165' 616 01 0 00 000000'
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  17
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (7)

	JRST	L.11				; L.11					400166' 254 00 0 00 400161'
	JRST	L.25				; L.25					400167' 254 00 0 00 400312'
L.12:	MOVE	AC16,WORD_READ			; AC16,WORD_READ			400170' 200 16 0 00 000007'		0374
	SETO	AC14,				; AC14,					400171' 474 14 0 00 000000
	CAIE	AC16,1				; AC16,1				400172' 302 16 0 00 000001		0377
	JRST	L.13				; L.13					400173' 254 00 0 00 400177'
	SETZ	AC14,				; AC14,					400174' 400 14 0 00 000000		0374
	MOVEI	AC1,1				; AC1,1					400175' 201 01 0 00 000001		0378
	MOVEM	AC1,FIRST_BYTE			; AC1,FIRST_BYTE			400176' 202 01 0 00 000002'
L.13:	CAIN	AC16,400			; AC16,400				400177' 306 16 0 00 000400		0380
	SETZB	AC14,FIRST_BYTE			; AC14,FIRST_BYTE			400200' 403 14 0 00 000002'		0381
	CAIE	AC16,1				; AC16,1				400201' 302 16 0 00 000001		0383
	CAIN	AC16,400			; AC16,400				400202' 306 16 0 00 000400
	JRST	L.14				; L.14					400203' 254 00 0 00 400205'
	JRST	L.19				; L.19					400204' 254 00 0 00 400242'
L.14:	SETZ	AC14,				; AC14,					400205' 400 14 0 00 000000		0374
	MOVEI	AC1,2				; AC1,2					400206' 201 01 0 00 000002		0385
	MOVEM	AC1,FILE_TYPE			; AC1,FILE_TYPE				400207' 202 01 0 00 000001'
	SETZM	RECORD_COUNT			; RECORD_COUNT				400210' 402 00 0 00 000006'		0386
L.15:	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400211' 260 17 0 00 400000'		0390
	SETZM	WORD_VALUE			; WORD_VALUE				400212' 402 00 0 00 000010'		0391
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400213' 260 17 0 00 400000'		0392
	DPB	AC1,C.9				; AC1,[POINT 8,WORD_VALUE,35]  <0,8>	400214' 137 01 0 00 400322'
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400215' 260 17 0 00 400000'		0393
	DPB	AC1,C.10			; AC1,[POINT 8,WORD_VALUE,27]  <8,8>	400216' 137 01 0 00 400323'
	MOVE	AC1,WORD_VALUE			; AC1,WORD_VALUE			400217' 200 01 0 00 000010'		0395
	CAIG	AC1,4				; AC1,4					400220' 307 01 0 00 000004
	JRST	L.16				; L.16					400221' 254 00 0 00 400225'
	SUBI	AC1,4				; AC1,4					400222' 275 01 0 00 000004		0397
	MOVEM	AC1,RECORD_COUNT		; AC1,RECORD_COUNT			400223' 202 01 0 00 000006'
	JRST	L.18				; L.18					400224' 254 00 0 00 400235'		0395
L.16:	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400225' 260 17 0 00 400000'		0400
L.17:	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400226' 260 17 0 00 400000'		0402
	CAIN	AC1,1				; AC1,1					400227' 306 01 0 00 000001
	JRST	L.18				; L.18					400230' 254 00 0 00 400235'
	MOVEI	AC1,1				; AC1,1					400231' 201 01 0 00 000001		0404
	TDNN	AC1,EOF				; AC1,EOF				400232' 616 01 0 00 000000'
	JRST	L.17				; L.17					400233' 254 00 0 00 400226'
	JRST	L.25				; L.25					400234' 254 00 0 00 400312'
L.18:	MOVEI	AC1,1				; AC1,1					400235' 201 01 0 00 000001		0408
	TDNE	AC1,EOF				; AC1,EOF				400236' 612 01 0 00 000000'
	JRST	L.25				; L.25					400237' 254 00 0 00 400312'
	SKIPN	RECORD_COUNT			; RECORD_COUNT				400240' 336 00 0 00 000006'		0411
	JRST	L.15				; L.15					400241' 254 00 0 00 400211'
L.19:	JUMPGE	AC14,L.27			; AC14,L.27				400242' 325 14 0 00 400316'		0415
	MOVEI	AC1,1				; AC1,1					400243' 201 01 0 00 000001		0417
	MOVEM	AC1,FILE_TYPE			; AC1,FILE_TYPE				400244' 202 01 0 00 000001'
L.20:	MOVE	AC1,WORD_READ			; AC1,WORD_READ				400245' 200 01 0 00 000007'		0419
	MOVEM	AC1,RECORD_COUNT		; AC1,RECORD_COUNT			400246' 202 01 0 00 000006'
	JUMPG	AC1,L.27			; AC1,L.27				400247' 327 01 0 00 400316'
	PUSHJ	SP,GET_WORD			; SP,GET_WORD				400250' 260 17 0 00 400034'		0421
	MOVEM	AC1,WORD_READ			; AC1,WORD_READ				400251' 202 01 0 00 000007'
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  18
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (7)

	MOVEI	AC1,1				; AC1,1					400252' 201 01 0 00 000001		0423
	TDNN	AC1,EOF				; AC1,EOF				400253' 616 01 0 00 000000'
	JRST	L.20				; L.20					400254' 254 00 0 00 400245'
	JRST	L.25				; L.25					400255' 254 00 0 00 400312'
L.21:	PUSHJ	SP,GET_WORD			; SP,GET_WORD				400256' 260 17 0 00 400034'		0435
	MOVEM	AC1,RECORD_COUNT		; AC1,RECORD_COUNT			400257' 202 01 0 00 000006'
	JUMPN	AC1,L.27			; AC1,L.27				400260' 326 01 0 00 400316'
	MOVEI	AC1,1				; AC1,1					400261' 201 01 0 00 000001		0437
	TDNN	AC1,EOF				; AC1,EOF				400262' 616 01 0 00 000000'
	JRST	L.21				; L.21					400263' 254 00 0 00 400256'
	JRST	L.25				; L.25					400264' 254 00 0 00 400312'
L.22:	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400265' 260 17 0 00 400000'		0446
	CAIN	AC1,1				; AC1,1					400266' 306 01 0 00 000001
	JRST	L.23				; L.23					400267' 254 00 0 00 400274'
	MOVEI	AC1,1				; AC1,1					400270' 201 01 0 00 000001		0448
	TDNN	AC1,EOF				; AC1,EOF				400271' 616 01 0 00 000000'
	JRST	L.22				; L.22					400272' 254 00 0 00 400265'
	JRST	L.25				; L.25					400273' 254 00 0 00 400312'
L.23:	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400274' 260 17 0 00 400000'		0450
	SETZM	WORD_VALUE			; WORD_VALUE				400275' 402 00 0 00 000010'		0451
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400276' 260 17 0 00 400000'		0452
	DPB	AC1,C.9				; AC1,[POINT 8,WORD_VALUE,35]  <0,8>	400277' 137 01 0 00 400322'
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400300' 260 17 0 00 400000'		0453
	DPB	AC1,C.10			; AC1,[POINT 8,WORD_VALUE,27]  <8,8>	400301' 137 01 0 00 400323'
	MOVE	AC1,WORD_VALUE			; AC1,WORD_VALUE			400302' 200 01 0 00 000010'		0455
	SUBI	AC1,4				; AC1,4					400303' 275 01 0 00 000004
	MOVEM	AC1,RECORD_COUNT		; AC1,RECORD_COUNT			400304' 202 01 0 00 000006'
	JUMPG	AC1,L.24			; AC1,L.24				400305' 327 01 0 00 400307'
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400306' 260 17 0 00 400000'
L.24:	MOVEI	AC1,1				; AC1,1					400307' 201 01 0 00 000001		0457
	TDNN	AC1,EOF				; AC1,EOF				400310' 616 01 0 00 000000'
	JRST	L.26				; L.26					400311' 254 00 0 00 400314'
L.25:	SETO	AC1,				; AC1,					400312' 474 01 0 00 000000
	JRST	L.28				; L.28					400313' 254 00 0 00 400317'
L.26:	SKIPG	RECORD_COUNT			; RECORD_COUNT				400314' 337 00 0 00 000006'		0460
	JRST	L.22				; L.22					400315' 254 00 0 00 400265'		0443
L.27:	MOVE	AC1,RECORD_COUNT		; AC1,RECORD_COUNT			400316' 200 01 0 00 000006'		0329
L.28:	POP	SP,AC16				; SP,AC16				400317' 262 17 0 00 000016
	POP	SP,AC14				; SP,AC14				400320' 262 17 0 00 000014
	POPJ	SP,				; SP,					400321' 263 17 0 00 000000
C.9:	POINT	8,WORD_VALUE,35			; 8,WORD_VALUE,35			400322' 00 10 0 00 000010'
C.10:	POINT	8,WORD_VALUE,27			; 8,WORD_VALUE,27			400323' 10 10 0 00 000010'

; Routine Size:  110 words


;   0466  1	
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  19
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (8)

;   0467  1	GLOBAL ROUTINE OBJ_SET : NOVALUE =
;   0468  1	
;   0469  1	!++
;   0470  1	! FUNCTIONAL DESCRIPTION:
;   0471  1	!
;   0472  1	!
;   0473  1	!
;   0474  1	!
;   0475  1	! FORMAL PARAMETERS:
;   0476  1	!
;   0477  1	!	NONE
;   0478  1	!
;   0479  1	! IMPLICIT INPUTS:
;   0480  1	!
;   0481  1	!	NONE
;   0482  1	!
;   0483  1	! IMPLICIT OUTPUTS:
;   0484  1	!
;   0485  1	!	NONE
;   0486  1	!
;   0487  1	! ROUTINE VALUE:
;   0488  1	!
;   0489  1	!	NONE
;   0490  1	!
;   0491  1	! SIDE EFFECTS
;   0492  1	!
;   0493  1	!	NONE
;   0494  1	!
;   0495  1	!--
;   0496  1	
;   0497  2	    BEGIN
;   0498  2	
;   0499  2	    IF .MARK_OFFSET<0, 1>
;   0500  2	    THEN
;   0501  3		BEGIN
;   0502  3		FIRST_BYTE = TRUE;
;   0503  3		MARK_OFFSET<0, 1> = 0;
;   0504  3		END
;   0505  2	    ELSE
;   0506  2		FIRST_BYTE = FALSE;
;   0507  2	
;   0508  2	    POSFIL (.OBJBLK, .MARK_BLOCK, .MARK_OFFSET);
;   0509  2	
;   0510  2	    IF .FIRST_BYTE
;   0511  2	    THEN
;   0512  3		BEGIN
;   0513  3		GETFIL (.OBJBLK, CH$PTR (WORD_READ,, 16), 1);
;   0514  3		WORD_READ = CH$RCHAR (CH$PTR (WORD_READ,, 16));
;   0515  2		END;
;   0516  2	
;   0517  2	    RECORD_COUNT = 0;
;   0518  1	    END;					!OF OBJ_SET
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  20
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (8)



OBJ_SET::
	MOVEI	AC1,1				; AC1,1					400324' 201 01 0 00 000001		0499
	TDNN	AC1,MARK_OFFSET			; AC1,MARK_OFFSET			400325' 616 01 0 00 000004'
	JRST	L.29				; L.29					400326' 254 00 0 00 400334'
	MOVEI	AC1,1				; AC1,1					400327' 201 01 0 00 000001		0502
	MOVEM	AC1,FIRST_BYTE			; AC1,FIRST_BYTE			400330' 202 01 0 00 000002'
	MOVEI	AC1,1				; AC1,1					400331' 201 01 0 00 000001		0503
	ANDCAM	AC1,MARK_OFFSET			; AC1,MARK_OFFSET			400332' 412 01 0 00 000004'
	JRST	L.30				; L.30					400333' 254 00 0 00 400335'		0499
L.29:	SETZM	FIRST_BYTE			; FIRST_BYTE				400334' 402 00 0 00 000002'		0506
L.30:	PUSH	SP,OBJBLK			; SP,OBJBLK				400335' 261 17 0 00 000005'		0508
	PUSH	SP,MARK_BLOCK			; SP,MARK_BLOCK				400336' 261 17 0 00 000003'
	PUSH	SP,MARK_OFFSET			; SP,MARK_OFFSET			400337' 261 17 0 00 000004'
	PUSHJ	SP,POSFIL			; SP,POSFIL				400340' 260 17 0 00 000000*
	MOVEI	AC1,1				; AC1,1					400341' 201 01 0 00 000001		0510
	TDNN	AC1,FIRST_BYTE			; AC1,FIRST_BYTE			400342' 616 01 0 00 000002'
	JRST	L.31				; L.31					400343' 254 00 0 00 400354'
	PUSH	SP,OBJBLK			; SP,OBJBLK				400344' 261 17 0 00 000005'		0513
	PUSH	SP,C.3				; SP,[POINT 16,WORD_READ-1,31]  <4,16>	400345' 261 17 0 00 400032'
	PUSH	SP,C.4				; SP,[1]				400346' 261 17 0 00 400033'
	PUSHJ	SP,GETFIL			; SP,GETFIL				400347' 260 17 0 00 000000*
	MOVE	AC1,C.3				; AC1,[POINT 16,WORD_READ-1,31]  <4,16> 400350' 200 01 0 00 400032'		0514
	ILDB	AC1,AC1				; AC1,AC1				400351' 134 01 0 00 000001
	MOVEM	AC1,WORD_READ			; AC1,WORD_READ				400352' 202 01 0 00 000007'
	ADJSP	SP,-3				; SP,-3					400353' 105 17 0 00 777775		0512
L.31:	SETZM	RECORD_COUNT			; RECORD_COUNT				400354' 402 00 0 00 000006'		0517
	ADJSP	SP,-3				; SP,-3					400355' 105 17 0 00 777775		0497
	POPJ	SP,				; SP,					400356' 263 17 0 00 000000		0467

; Routine Size:  27 words


;   0519  1	
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  21
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (9)

;   0520  1	GLOBAL ROUTINE OBJ_WORD =
;   0521  1	
;   0522  1	!++
;   0523  1	! FUNCTIONAL DESCRIPTION:
;   0524  1	!
;   0525  1	!
;   0526  1	!
;   0527  1	!
;   0528  1	! FORMAL PARAMETERS:
;   0529  1	!
;   0530  1	!	NONE
;   0531  1	!
;   0532  1	! IMPLICIT INPUTS:
;   0533  1	!
;   0534  1	!	NONE
;   0535  1	!
;   0536  1	! IMPLICIT OUTPUTS:
;   0537  1	!
;   0538  1	!	NONE
;   0539  1	!
;   0540  1	! ROUTINE VALUE:
;   0541  1	!
;   0542  1	!	NONE
;   0543  1	!
;   0544  1	! SIDE EFFECTS
;   0545  1	!
;   0546  1	!	NONE
;   0547  1	!
;   0548  1	!--
;   0549  1	
;   0550  2	    BEGIN
;   0551  2	
;   0552  2	    IF .RECORD_COUNT LEQ 0
;   0553  2	    THEN
;   0554  2		0
;   0555  2	    ELSE
;   0556  2	
;   0557  2		CASE .FILE_TYPE FROM 1 TO 2 OF
;   0558  2		    SET
;   0559  2	
;   0560  2		    [RSX] :
;   0561  3			BEGIN
;   0562  3			RECORD_COUNT = .RECORD_COUNT - 2;
;   0563  3			GET_WORD ()
;   0564  2			END;
;   0565  2	
;   0566  2		    [MACY11] :
;   0567  3			BEGIN
;   0568  3			WORD_VALUE = 0;
;   0569  3			WORD_VALUE<0, 8> = GET_BYTE ();
;   0570  3	
;   0571  3			IF (RECORD_COUNT = .RECORD_COUNT - 1) GTR 0
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  22
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (9)

;   0572  3			THEN
;   0573  4			    BEGIN
;   0574  4			    WORD_VALUE<8, 8> = GET_BYTE ();
;   0575  4			    RECORD_COUNT = .RECORD_COUNT - 1;
;   0576  3			    END;
;   0577  3	
;   0578  3			IF .RECORD_COUNT LEQ 0 THEN GET_BYTE ();
;   0579  3	
;   0580  3			.WORD_VALUE
;   0581  2			END;
;   0582  2		    TES
;   0583  2	
;   0584  1	    END;					!OF OBJ_WORD


OBJ_WORD::
	SKIPLE	RECORD_COUNT			; RECORD_COUNT				400357' 333 00 0 00 000006'		0552
	JRST	L.32				; L.32					400360' 254 00 0 00 400363'
	SETZ	AC1,				; AC1,					400361' 400 01 0 00 000000		0550
	POPJ	SP,				; SP,					400362' 263 17 0 00 000000
L.32:	MOVE	AC1,FILE_TYPE			; AC1,FILE_TYPE				400363' 200 01 0 00 000001'		0557
	SUBI	AC1,1				; AC1,1					400364' 275 01 0 00 000001
	JRST	L.33(AC1)			; L.33(AC1)				400365' 254 00 0 01 400366'
L.33:	JRST	L.34				; L.34					400366' 254 00 0 00 400370'
	JRST	L.35				; L.35					400367' 254 00 0 00 400373'
L.34:	HRROI	AC1,-2				; AC1,-2				400370' 561 01 0 00 777776		0562
	ADDM	AC1,RECORD_COUNT		; AC1,RECORD_COUNT			400371' 272 01 0 00 000006'
	JRST	GET_WORD			; GET_WORD				400372' 254 00 0 00 400034'		0563
L.35:	SETZM	WORD_VALUE			; WORD_VALUE				400373' 402 00 0 00 000010'		0568
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400374' 260 17 0 00 400000'		0569
	DPB	AC1,C.9				; AC1,[POINT 8,WORD_VALUE,35]  <0,8>	400375' 137 01 0 00 400322'
	SOSG	RECORD_COUNT			; RECORD_COUNT				400376' 377 00 0 00 000006'		0571
	JRST	L.36				; L.36					400377' 254 00 0 00 400403'
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400400' 260 17 0 00 400000'		0574
	DPB	AC1,C.10			; AC1,[POINT 8,WORD_VALUE,27]  <8,8>	400401' 137 01 0 00 400323'
	SOS	RECORD_COUNT			; RECORD_COUNT				400402' 370 00 0 00 000006'		0575
L.36:	SKIPG	RECORD_COUNT			; RECORD_COUNT				400403' 337 00 0 00 000006'		0578
	PUSHJ	SP,GET_BYTE			; SP,GET_BYTE				400404' 260 17 0 00 400000'
	MOVE	AC1,WORD_VALUE			; AC1,WORD_VALUE			400405' 200 01 0 00 000010'		0557
	POPJ	SP,				; SP,					400406' 263 17 0 00 000000		0520

; Routine Size:  24 words


;   0585  1	
;   0586  1	END
;   0587  1	
;   0588  0	ELUDOM
LBROBJ								12-Apr-1985 07:12:28	TOPS-20 Bliss-36 4A(225)	    Page  23
001020								30-Dec-1982 17:45:16	DNET61:<DECNET.UTILITIES>LBROBJ.BLI.1 (9)

; Low  segment length:       9 words
; High segment length:     263 words




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks          Processing
;	File				     Total    Loaded   Percent      Read           Time
;
;  DNET61:<DECNET.UTILITIES>LBRCOM.L36.2       705         8         1        26	     00:00.1





; Size:		254 code + 18 data words
; Run Time:	   00:04.4
; Elapsed Time:	   00:05.6
; Lines/CPU Min:    8088
; Lexemes/CPU-Min: 18844
; Memory Used:	19 pages
; Compilation Complete