Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-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