Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-85
-
mcb/utilities/lbrlib.lst
There is 1 other file named lbrlib.lst in the archive. Click here to see a list.
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 1
30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (1)
; 0001 0 MODULE LBRLIB ( !Library manipulation
; 0002 0 IDENT = '001030',
; 0003 0 LANGUAGE (BLISS16, BLISS36)
; 0004 0 ) =
; 0005 1 BEGIN
; 0006 1 !
; 0007 1 !
; 0008 1 !
; 0009 1 ! COPYRIGHT (c) 1980, 1981, 1982
; 0010 1 ! DIGITAL EQUIPMENT CORPORATION
; 0011 1 ! Maynard, Massachusetts
; 0012 1 !
; 0013 1 ! This software is furnished under a license and may be used
; 0014 1 ! and copied only in accordance with the terms of such license
; 0015 1 ! and with the inclusion of the above copyright notice. This
; 0016 1 ! software or any other copies thereof may not be provided or
; 0017 1 ! otherwise made available to any other person. No title to
; 0018 1 ! and ownership of the software is hereby transferred.
; 0019 1 !
; 0020 1 ! The information in this software is subject to change
; 0021 1 ! without notice and should not be construed as a commitment
; 0022 1 ! by DIGITAL EQUIPMENT CORPORATION.
; 0023 1 !
; 0024 1 ! DIGITAL assumes no responsibility for the use or reliability
; 0025 1 ! of its software on equipment which is not supplied by
; 0026 1 ! DIGITAL.
; 0027 1 !
; 0028 1
; 0029 1 !++
; 0030 1 ! FACILITY: LBR20 - Librarian Utility
; 0031 1 !
; 0032 1 ! ABSTRACT:
; 0033 1 !
; 0034 1 !
; 0035 1 ! This module contains the routines to access and modify the library.
; 0036 1 !
; 0037 1 !
; 0038 1 ! ENVIRONMENT: ANY
; 0039 1 !
; 0040 1 ! AUTHOR: ALAN D. PECKHAM, CREATION DATE: 6-MAY-80
; 0041 1 !
; 0042 1 ! MODIFIED BY:
; 0043 1 !
; 0044 1 ! Alan D. Peckham, : VERSION 01
; 0045 1 ! 01 - Restructure file positioning to refer to block/offset.
; 0046 1 ! Use OBJ_MARK and OBJ_SET routines to mark the beginning
; 0047 1 ! of an object module and rewind the file to that position.
; 0048 1 ! Sort the GSD records to the beginning of the module
; 0049 1 ! by doing two passes on the object module.
; 0050 1 ! 02 - Data structure reformation (change from BLOCK_16 to BLOCK structure).
; 0051 1 ! Add COMPRESS function.
; 0052 1 ! 03 - Add support for EPT replacement in FILE_INSERT.
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 2
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (1)
; 0053 1 !--
; 0054 1
; 0055 1 !
; 0056 1 ! TABLE OF CONTENTS:
; 0057 1 !
; 0058 1
; 0059 1 FORWARD ROUTINE
; 0060 1 COPY, !Copy word to library file
; 0061 1 ENTRY_DELETE, !Delete an entry point
; 0062 1 EPT_INDEX, !Check if entry exists in EPT
; 0063 1 EPT_INSERT, !Insert an entry point
; 0064 1 EPT_PURGE : NOVALUE, !Purge module entry points
; 0065 1 FILE_INSERT, !Insert modules from a file
; 0066 1 HDR_DELETE : NOVALUE, !Mark a module header as deleted.
; 0067 1 LIBCLS : NOVALUE, !Close the library
; 0068 1 LIBUPD : NOVALUE, !Update HDR, EPT and MNT
; 0069 1 LIBOPN, !Open the library
; 0070 1 MNT_INDEX, !Check if module exists in MNT
; 0071 1 MNT_INSERT, !Insert a module name
; 0072 1 MNT_PURGE : NOVALUE, !Purge module name(s)
; 0073 1 MODULE_DELETE; !Delete a module
; 0074 1
; 0075 1 !
; 0076 1 ! INCLUDE FILES
; 0077 1 !
; 0078 1
; 0079 1 LIBRARY 'LBRCOM'; !LBR COMMON DEFINITIONS
; 0080 1
; 0081 1 !
; 0082 1 ! MACROS:
; 0083 1 !
; 0084 1
; 0085 1 MACRO
; M 0086 1 CHAR2 (num) =
; M 0087 1 %IF num LEQ 9
; M 0088 1 %THEN '0', %NUMBER (num)
; M 0089 1 %ELSE %NUMBER (num)
; 0090 1 %FI %;
; 0091 1
; 0092 1 !
; 0093 1 ! EQUATED SYMBOLS:
; 0094 1 !
; 0095 1
; 0096 1 LITERAL
; 0097 1 BLOCK_SIZE = 512,
; 0098 1 EPTBUF_SIZE = 2048,
; 0099 1 MNTBUF_SIZE = 1024;
; 0100 1
; 0101 1 LITERAL
; 0102 1 OBJ_LOW = 1, !Lowest object record type.
; 0103 1 OBJ_GSD = 1, !Global Symbol Dictionary.
; 0104 1 OBJ_END_GSD = 2, !End of GSD records.
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 3
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (1)
; 0105 1 OBJ_TXT = 3, !TeXT information.
; 0106 1 OBJ_RLD = 4, !ReLocation Dictionary.
; 0107 1 OBJ_ISD = 5, !Internal Symbol Dictionary.
; 0108 1 OBJ_END_MOD = 6, !End of module.
; 0109 1 OBJ_HIGH = 6, !Highest object record type.
; 0110 1 GSD_LOW = 0, !Lowest GSD record type.
; 0111 1 GSD_MOD = 0, !Module name.
; 0112 1 GSD_CSECT = 1, !Control section name.
; 0113 1 GSD_INTERNAL = 2, !Internal symbol name.
; 0114 1 GSD_TRANSFER = 3, !Transfer address.
; 0115 1 GSD_GLOBAL = 4, !Global symbol name.
; 0116 1 GSD_PSECT = 5, !Program section name.
; 0117 1 GSD_VERSION = 6, !Program version identification.
; 0118 1 GSD_ARRAY = 7, !Mapped array declaration.
; 0119 1 GSD_HIGH = 7; !Highest GSD record type.
; 0120 1
; 0121 1 !
; 0122 1 ! OWN STORAGE:
; 0123 1 !
; 0124 1
; 0125 1 OWN
; 0126 1 EPTBUF : BLOCKVECTOR [EPTBUF_SIZE, EPT_LENGTH],
; 0127 1 EPT_CHANGED,
; 0128 1 HDR : BLOCK [HDR_LENGTH] FIELD (HDR_FIELDS),
; 0129 1 HDRBUF : BLOCK [LIB_LENGTH],
; 0130 1 HDR_CHANGED,
; 0131 1 LIB_FILBLK,
; 0132 1 MNTBUF : BLOCKVECTOR [MNTBUF_SIZE, MNT_LENGTH],
; 0133 1 MNT_CHANGED;
; 0134 1
; 0135 1 !
; 0136 1 ! EXTERNAL REFERENCES:
; 0137 1 !
; 0138 1
; 0139 1 EXTERNAL ROUTINE
; 0140 1 CLOSE, !Close a file.
; 0141 1 FILNM : NOVALUE, !Convert file name to ASCII.
; 0142 1 FILPOS, !Get the current file position.
; 0143 1 GETFIL, !Get a word from the file.
; 0144 1 GETTIM : NOVALUE, !Get the current time.
; 0145 1 OBJ_CLOSE : NOVALUE, !Close object file
; 0146 1 OBJ_MARK : NOVALUE, !Mark current record position
; 0147 1 OBJ_OPEN, !Open object file
; 0148 1 OBJ_RECORD, !Read length of next record
; 0149 1 OBJ_SET : NOVALUE, !Reset to marked position
; 0150 1 OBJ_WORD, !Read next word of record
; 0151 1 OPEN, !Open a file.
; 0152 1 POSFIL, !Position to a word in the file
; 0153 1 PUTFIL : NOVALUE; !Put a string to a file opened for output.
; 0154 1
; 0155 1 EXTERNAL
; 0156 1 FLAGS : BITVECTOR [M_MAX_BITS],
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 4
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (1)
; 0157 1 LIBEPT : REF BLOCKVECTOR [1, EPT_LENGTH] FIELD (EPT_FIELDS),
; 0158 1 LIBHDR : REF BLOCK [LIB_LENGTH] FIELD (LIB_FIELDS),
; 0159 1 LIBMNT : REF BLOCKVECTOR [1, MNT_LENGTH] FIELD (MNT_FIELDS),
; 0160 1 NUMEPT,
; 0161 1 NUMMNT,
; 0162 1 SIZFIL;
; 0163 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 5
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (2)
; 0164 1 ROUTINE COPY (VALUE) =
; 0165 1
; 0166 1 !++
; 0167 1 ! FUNCTIONAL DESCRIPTION:
; 0168 1 !
; 0169 1 !
; 0170 1 !
; 0171 1 !
; 0172 1 ! FORMAL PARAMETERS:
; 0173 1 !
; 0174 1 !
; 0175 1 ! IMPLICIT INPUTS:
; 0176 1 !
; 0177 1 ! NONE
; 0178 1 !
; 0179 1 ! IMPLICIT OUTPUTS:
; 0180 1 !
; 0181 1 ! NONE
; 0182 1 !
; 0183 1 ! ROUTINE VALUE:
; 0184 1 !
; 0185 1 ! NONE
; 0186 1 !
; 0187 1 ! SIDE EFFECTS
; 0188 1 !
; 0189 1 ! NONE
; 0190 1 !
; 0191 1 !--
; 0192 1
; 0193 2 BEGIN
; 0194 2
; 0195 2 OWN
; 0196 2 WORD_BUFFER;
; 0197 2
; 0198 2 BIND
; 0199 2 WORD_PTR = CH$PTR (WORD_BUFFER,, 18);
; 0200 2
; 0201 2 IF .VALUE GEQ 0
; 0202 2 THEN
; 0203 3 BEGIN
; 0204 3 CH$WCHAR (.VALUE, WORD_PTR);
; 0205 3 PUTFIL (.LIB_FILBLK, WORD_PTR, 1);
; 0206 3 HDR [HDR_SIZE_2] = .HDR [HDR_SIZE_2] + 2;
; 0207 3
; 0208 3 IF .HDR [HDR_SIZE_2] EQL 0 THEN HDR [HDR_SIZE_1] = .HDR [HDR_SIZE_1] + 1;
; 0209 3
; 0210 3 IF .LIBHDR [LIB_CONTIGUOUS_1] NEQ 0
; 0211 3 THEN
; 0212 4 BEGIN
; 0213 4
; 0214 4 IF .LIBHDR [LIB_CONTIGUOUS_2] EQL 0
; 0215 4 THEN
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 6
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (2)
; 0216 4 LIBHDR [LIB_CONTIGUOUS_1] = .LIBHDR [LIB_CONTIGUOUS_1] - 1;
; 0217 4
; 0218 4 LIBHDR [LIB_CONTIGUOUS_2] = .LIBHDR [LIB_CONTIGUOUS_2] - 2;
; 0219 4 END
; 0220 3 ELSE
; 0221 3
; 0222 3 IF .LIBHDR [LIB_CONTIGUOUS_2] NEQ 0
; 0223 3 THEN
; 0224 3 LIBHDR [LIB_CONTIGUOUS_2] = .LIBHDR [LIB_CONTIGUOUS_2] - 1;
; 0225 3
; 0226 2 END;
; 0227 2
; 0228 2 .VALUE
; 0229 1 END; !OF COPY
TITLE LBRLIB
TWOSEG
.REQUEST SYS:B362LB.REL
RELOC 0 ; 000000'
EPTBUF: BLOCK 10000 ; 000000'
EPT_CHANGED:
BLOCK 1 ; 010000'
HDR: BLOCK 4 ; 010001'
HDRBUF: BLOCK 14 ; 010005'
HDR_CHANGED:
BLOCK 1 ; 010021'
LIB_FILBLK:
BLOCK 1 ; 010022'
MNTBUF: BLOCK 4000 ; 010023'
MNT_CHANGED:
BLOCK 1 ; 014023'
WORD_BUFFER:
BLOCK 1 ; 014024'
EXTERN CLOSE, FILNM, FILPOS, GETFIL, GETTIM, OBJ_CLOSE, OBJ_MARK, OBJ_OPEN, OBJ_RECORD, OBJ_SET
EXTERN OBJ_WORD, OPEN, POSFIL, PUTFIL, FLAGS, LIBEPT, LIBHDR, LIBMNT, NUMEPT, NUMMNT, SIZFIL
WORD_PTR= <POINT 18,WORD_BUFFER-1,35> ; 00 22 0 00 014023'
AC0= 0
AC1= 1
AC2= 2
AC3= 3
AC4= 4
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 7
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (2)
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'
COPY: PUSH SP,AC16 ; SP,AC16 400000' 261 17 0 00 000016 0164
MOVE AC16,-2(SP) ; AC16,VALUE 400001' 200 16 0 17 777776 0201
JUMPL AC16,L.6 ; AC16,L.6 400002' 321 16 0 00 400044'
MOVE AC1,C.5 ; AC1,[POINT 18,WORD_BUFFER-1,35] <0,18>
; 400003' 200 01 0 00 400053' 0204
IDPB AC16,AC1 ; AC16,AC1 400004' 136 16 0 00 000001
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 400005' 261 17 0 00 010022' 0205
PUSH SP,C.5 ; SP,[POINT 18,WORD_BUFFER-1,35] <0,18>400006' 261 17 0 00 400053'
PUSH SP,C.6 ; SP,[1] 400007' 261 17 0 00 400054'
PUSHJ SP,PUTFIL ; SP,PUTFIL 400010' 260 17 0 00 000000*
LDB AC1,C.1 ; AC1,[POINT 16,HDR+1,17] <18,16> 400011' 135 01 0 00 400047' 0206
ADDI AC1,2 ; AC1,2 400012' 271 01 0 00 000002
DPB AC1,C.1 ; AC1,[POINT 16,HDR+1,17] <18,16> 400013' 137 01 0 00 400047'
LDB AC1,C.1 ; AC1,[POINT 16,HDR+1,17] <18,16> 400014' 135 01 0 00 400047' 0208
JUMPN AC1,L.1 ; AC1,L.1 400015' 326 01 0 00 400021'
LDB AC1,C.2 ; AC1,[POINT 16,HDR,35] <0,16> 400016' 135 01 0 00 400050'
ADDI AC1,1 ; AC1,1 400017' 271 01 0 00 000001
DPB AC1,C.2 ; AC1,[POINT 16,HDR,35] <0,16> 400020' 137 01 0 00 400050'
L.1: MOVE AC2,LIBHDR ; AC2,LIBHDR 400021' 200 02 0 00 000000* 0214
ADDI AC2,12 ; AC2,12 400022' 271 02 0 00 000012
MOVE AC1,LIBHDR ; AC1,LIBHDR 400023' 200 01 0 00 000000* 0210
LDB AC3,C.3 ; AC3,[POINT 16,11(AC1),35] <0,16> 400024' 135 03 0 00 400051'
JUMPE AC3,L.3 ; AC3,L.3 400025' 322 03 0 00 400036'
LDB AC3,C.4 ; AC3,[POINT 16,0(AC2),17] <18,16> 400026' 135 03 0 00 400052' 0214
JUMPN AC3,L.2 ; AC3,L.2 400027' 326 03 0 00 400033'
LDB AC3,C.3 ; AC3,[POINT 16,11(AC1),35] <0,16> 400030' 135 03 0 00 400051' 0216
SUBI AC3,1 ; AC3,1 400031' 275 03 0 00 000001
DPB AC3,C.3 ; AC3,[POINT 16,11(AC1),35] <0,16> 400032' 137 03 0 00 400051'
L.2: LDB AC1,C.4 ; AC1,[POINT 16,0(AC2),17] <18,16> 400033' 135 01 0 00 400052' 0218
SUBI AC1,2 ; AC1,2 400034' 275 01 0 00 000002
JRST L.4 ; L.4 400035' 254 00 0 00 400042'
L.3: LDB AC1,C.4 ; AC1,[POINT 16,0(AC2),17] <18,16> 400036' 135 01 0 00 400052' 0222
JUMPE AC1,L.5 ; AC1,L.5 400037' 322 01 0 00 400043'
LDB AC1,C.4 ; AC1,[POINT 16,0(AC2),17] <18,16> 400040' 135 01 0 00 400052' 0224
SUBI AC1,1 ; AC1,1 400041' 275 01 0 00 000001
L.4: DPB AC1,C.4 ; AC1,[POINT 16,0(AC2),17] <18,16> 400042' 137 01 0 00 400052'
L.5: ADJSP SP,-3 ; SP,-3 400043' 105 17 0 00 777775 0203
L.6: MOVE AC1,AC16 ; AC1,AC16 400044' 200 01 0 00 000016 0164
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 8
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (2)
POP SP,AC16 ; SP,AC16 400045' 262 17 0 00 000016
POPJ SP, ; SP, 400046' 263 17 0 00 000000
C.1: POINT 16,HDR+1,17 ; 16,HDR+1,17 400047' 22 20 0 00 010002'
C.2: POINT 16,HDR,35 ; 16,HDR,35 400050' 00 20 0 00 010001'
C.3: POINT 16,11(AC1),35 ; 16,11(AC1),35 400051' 00 20 0 01 000011
C.4: POINT 16,0(AC2),17 ; 16,0(AC2),17 400052' 22 20 0 02 000000
C.5: POINT 18,WORD_BUFFER-1,35 ; 18,WORD_BUFFER-1,35 400053' 00 22 0 00 014023'
C.6: EXP 1 ; 1 400054' 000000 000001
; Routine Size: 45 words
; 0230 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 9
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (3)
; 0231 1 GLOBAL ROUTINE ENTRY_DELETE (NAME) =
; 0232 1
; 0233 1 !++
; 0234 1 ! FUNCTIONAL DESCRIPTION:
; 0235 1 !
; 0236 1 !
; 0237 1 !
; 0238 1 !
; 0239 1 ! FORMAL PARAMETERS:
; 0240 1 !
; 0241 1 !
; 0242 1 ! IMPLICIT INPUTS:
; 0243 1 !
; 0244 1 ! NONE
; 0245 1 !
; 0246 1 ! IMPLICIT OUTPUTS:
; 0247 1 !
; 0248 1 ! NONE
; 0249 1 !
; 0250 1 ! ROUTINE VALUE:
; 0251 1 !
; 0252 1 ! NONE
; 0253 1 !
; 0254 1 ! SIDE EFFECTS
; 0255 1 !
; 0256 1 ! NONE
; 0257 1 !
; 0258 1 !--
; 0259 1
; 0260 2 BEGIN
; 0261 2
; 0262 2 MAP
; 0263 2 NAME : REF VECTOR [2];
; 0264 2
; 0265 2 LOCAL
; 0266 2 ENTRY_FOUND;
; 0267 2
; 0268 2 ENTRY_FOUND = FALSE;
; 0269 2
; 0270 2 INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
; 0271 2
; 0272 2 IF .ENTRY_FOUND
; 0273 2 THEN
; 0274 2
; 0275 2 INCR SUB_INDEX FROM 0 TO EPT_LENGTH - 1 DO
; 0276 2 LIBEPT [.INDEX - 1, .SUB_INDEX, 0, %BPVAL, 0] = .LIBEPT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0]
; 0277 2
; 0278 2 ELSE
; 0279 2
; 0280 2 IF .LIBEPT [.INDEX, EPT_NAME_1] EQL .NAME [0] AND .LIBEPT [.INDEX, EPT_NAME_2] EQL .NAME [1]
; 0281 2 THEN
; 0282 2 ENTRY_FOUND = TRUE;
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 10
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (3)
; 0283 2
; 0284 2 IF .ENTRY_FOUND
; 0285 2 THEN
; 0286 3 BEGIN
; 0287 3 LIBHDR [LIB_EPT_AVAILABLE] = .LIBHDR [LIB_EPT_AVAILABLE] + 1;
; 0288 3 HDR_CHANGED = EPT_CHANGED = TRUE;
; 0289 3
; 0290 3 IF NOT .FLAGS [M_FAST] THEN LIBUPD ();
; 0291 3
; 0292 3 TYPLN (0, CH$ASCIZ ('[Entry "%2R" deleted]'), .NAME [0], .NAME [1]);
; 0293 3 TRUE
; 0294 3 END
; 0295 2 ELSE
; 0296 3 BEGIN
; 0297 3 PUTLN (1, CH$ASCIZ (FATAL, 'No entry point named "%2R"'), .NAME [0], .NAME [1]);
; 0298 3 FALSE
; 0299 3 END
; 0300 3
; 0301 1 END; !OF ENTRY_DELETE
P.AAA: BYTE (7)"[","E","n","t","r" ; [Entr 400055' 133 105 156 164 162
BYTE (7)"y"," ",042,"%","2" ; y "%2 400056' 171 040 042 045 062
BYTE (7)"R",042," ","d","e" ; R" de 400057' 122 042 040 144 145
BYTE (7)"l","e","t","e","d" ; leted 400060' 154 145 164 145 144
BYTE (7)"]",000,000,000,000 ; ] 400061' 135 000 000 000 000
P.AAB: BYTE (7)"*","F","A","T","A" ; *FATA 400062' 052 106 101 124 101
BYTE (7)"L","*"," "," ","N" ; L* N 400063' 114 052 040 040 116
BYTE (7)"o"," ","e","n","t" ; o ent 400064' 157 040 145 156 164
BYTE (7)"r","y"," ","p","o" ; ry po 400065' 162 171 040 160 157
BYTE (7)"i","n","t"," ","n" ; int n 400066' 151 156 164 040 156
BYTE (7)"a","m","e","d"," " ; amed 400067' 141 155 145 144 040
BYTE (7)042,"%","2","R",042 ; "%2R" 400070' 042 045 062 122 042
BYTE (7)000,000,000,000,000 ; 400071' 000 000 000 000 000
EXTERN TYPLIN, PUTLIN
ENTRY_DELETE::
PUSH SP,AC10 ; SP,AC10 400072' 261 17 0 00 000010 0231
PUSH SP,AC11 ; SP,AC11 400073' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 400074' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 400075' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 400076' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400077' 261 17 0 00 000016
ADJSP SP,2 ; SP,2 400100' 105 17 0 00 000002
SETZ AC16, ; ENTRY_FOUND, 400101' 400 16 0 00 000000 0268
MOVE AC2,LIBHDR ; AC2,LIBHDR 400102' 200 02 0 00 000000* 0270
LDB AC11,C.7 ; AC11,[POINT 16,5(AC2),35] <0,16> 400103' 135 11 0 00 400226'
LDB AC1,C.8 ; AC1,[POINT 16,6(AC2),17] <18,16> 400104' 135 01 0 00 400227'
SUB AC11,AC1 ; AC11,AC1 400105' 274 11 0 00 000001
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 11
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (3)
MOVE AC13,LIBEPT ; AC13,LIBEPT 400106' 200 13 0 00 000000* 0276
SETO AC1, ; INDEX, 400107' 474 01 0 00 000000 0270
JRST L.10 ; L.10 400110' 254 00 0 00 400145'
L.7: MOVE AC14,AC1 ; AC14,INDEX 400111' 200 14 0 00 000001 0276
IMULI AC14,2 ; AC14,2 400112' 221 14 0 00 000002
TRNN AC16,1 ; ENTRY_FOUND,1 400113' 606 16 0 00 000001 0272
JRST L.9 ; L.9 400114' 254 00 0 00 400134'
MOVE AC5,AC1 ; AC5,INDEX 400115' 200 05 0 00 000001 0276
SUBI AC5,1 ; AC5,1 400116' 275 05 0 00 000001
IMULI AC5,2 ; AC5,2 400117' 221 05 0 00 000002
SETZ AC3, ; SUB_INDEX, 400120' 400 03 0 00 000000 0275
L.8: MOVE AC4,AC13 ; AC4,AC13 400121' 200 04 0 00 000013 0276
ADD AC4,AC3 ; AC4,SUB_INDEX 400122' 270 04 0 00 000003
MOVE AC12,AC4 ; AC12,AC4 400123' 200 12 0 00 000004
ADD AC12,AC5 ; AC12,AC5 400124' 270 12 0 00 000005
ADD AC4,AC14 ; AC4,AC14 400125' 270 04 0 00 000014
MOVE AC10,0(AC4) ; AC10,0(AC4) 400126' 200 10 0 04 000000
MOVEM AC10,0(AC12) ; AC10,0(AC12) 400127' 202 10 0 12 000000
ADDI AC3,1 ; SUB_INDEX,1 400130' 271 03 0 00 000001 0275
CAIG AC3,1 ; SUB_INDEX,1 400131' 307 03 0 00 000001
JRST L.8 ; L.8 400132' 254 00 0 00 400121'
JRST L.10 ; L.10 400133' 254 00 0 00 400145' 0272
L.9: MOVE AC4,AC13 ; AC4,AC13 400134' 200 04 0 00 000013 0280
ADD AC4,AC14 ; AC4,AC14 400135' 270 04 0 00 000014
MOVE AC3,-11(SP) ; AC3,NAME 400136' 200 03 0 17 777767
LDB AC5,C.9 ; AC5,[POINT 16,0(AC4),17] <18,16> 400137' 135 05 0 00 400230'
CAME AC5,0(AC3) ; AC5,0(AC3) 400140' 312 05 0 03 000000
JRST L.10 ; L.10 400141' 254 00 0 00 400145'
LDB AC5,C.10 ; AC5,[POINT 16,0(AC4),35] <0,16> 400142' 135 05 0 00 400231'
CAMN AC5,1(AC3) ; AC5,1(AC3) 400143' 316 05 0 03 000001
MOVEI AC16,1 ; ENTRY_FOUND,1 400144' 201 16 0 00 000001 0282
L.10: ADDI AC1,1 ; INDEX,1 400145' 271 01 0 00 000001 0270
CAMGE AC1,AC11 ; INDEX,AC11 400146' 315 01 0 00 000011
JRST L.7 ; L.7 400147' 254 00 0 00 400111'
MOVE AC12,-11(SP) ; AC12,NAME 400150' 200 12 0 17 777767 0292
MOVEI AC1,-1(SP) ; AC1,PRM_LIST 400151' 201 01 0 17 777777
MOVE AC13,AC1 ; AC13,AC1 400152' 200 13 0 00 000001
ADDI AC13,1 ; AC13,1 400153' 271 13 0 00 000001
MOVE AC14,AC12 ; AC14,AC12 400154' 200 14 0 00 000012
ADDI AC14,1 ; AC14,1 400155' 271 14 0 00 000001
TRNN AC16,1 ; ENTRY_FOUND,1 400156' 606 16 0 00 000001 0284
JRST L.11 ; L.11 400157' 254 00 0 00 400204'
LDB AC1,C.8 ; AC1,[POINT 16,6(AC2),17] <18,16> 400160' 135 01 0 00 400227' 0287
ADDI AC1,1 ; AC1,1 400161' 271 01 0 00 000001
DPB AC1,C.8 ; AC1,[POINT 16,6(AC2),17] <18,16> 400162' 137 01 0 00 400227'
MOVEI AC1,1 ; AC1,1 400163' 201 01 0 00 000001 0288
MOVEM AC1,EPT_CHANGED ; AC1,EPT_CHANGED 400164' 202 01 0 00 010000'
MOVEM AC1,HDR_CHANGED ; AC1,HDR_CHANGED 400165' 202 01 0 00 010021'
MOVEI AC1,40 ; AC1,40 400166' 201 01 0 00 000040 0290
TDNN AC1,FLAGS ; AC1,FLAGS 400167' 616 01 0 00 000000*
PUSHJ SP,LIBUPD ; SP,LIBUPD 400170' 260 17 0 00 000000V
MOVE AC1,0(AC12) ; AC1,0(AC12) 400171' 200 01 0 12 000000 0292
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 12
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (3)
MOVEM AC1,-1(SP) ; AC1,PRM_LIST 400172' 202 01 0 17 777777
MOVE AC1,0(AC14) ; AC1,0(AC14) 400173' 200 01 0 14 000000
MOVEM AC1,0(AC13) ; AC1,0(AC13) 400174' 202 01 0 13 000000
PUSH SP,C.11 ; SP,[0] 400175' 261 17 0 00 400232'
PUSH SP,C.12 ; SP,[POINT 7,P.AAA-1,34] <1,7> 400176' 261 17 0 00 400233'
MOVEI AC1,-3(SP) ; AC1,PRM_LIST 400177' 201 01 0 17 777775
PUSH SP,AC1 ; SP,AC1 400200' 261 17 0 00 000001
PUSHJ SP,TYPLIN ; SP,TYPLIN 400201' 260 17 0 00 000000*
MOVEI AC1,1 ; AC1,1 400202' 201 01 0 00 000001 0284
JRST L.12 ; L.12 400203' 254 00 0 00 400216'
L.11: MOVE AC1,0(AC12) ; AC1,0(AC12) 400204' 200 01 0 12 000000 0297
MOVEM AC1,-1(SP) ; AC1,PRM_LIST 400205' 202 01 0 17 777777
MOVE AC1,0(AC14) ; AC1,0(AC14) 400206' 200 01 0 14 000000
MOVEM AC1,0(AC13) ; AC1,0(AC13) 400207' 202 01 0 13 000000
PUSH SP,C.6 ; SP,[1] 400210' 261 17 0 00 400054'
PUSH SP,C.13 ; SP,[POINT 7,P.AAB-1,34] <1,7> 400211' 261 17 0 00 400234'
MOVEI AC1,-3(SP) ; AC1,PRM_LIST 400212' 201 01 0 17 777775
PUSH SP,AC1 ; SP,AC1 400213' 261 17 0 00 000001
PUSHJ SP,PUTLIN ; SP,PUTLIN 400214' 260 17 0 00 000000*
SETZ AC1, ; AC1, 400215' 400 01 0 00 000000 0284
L.12: ADJSP SP,-5 ; SP,-5 400216' 105 17 0 00 777773 0260
POP SP,AC16 ; SP,AC16 400217' 262 17 0 00 000016 0231
POP SP,AC14 ; SP,AC14 400220' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 400221' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 400222' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 400223' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 400224' 262 17 0 00 000010
POPJ SP, ; SP, 400225' 263 17 0 00 000000
C.7: POINT 16,5(AC2),35 ; 16,5(AC2),35 400226' 00 20 0 02 000005
C.8: POINT 16,6(AC2),17 ; 16,6(AC2),17 400227' 22 20 0 02 000006
C.9: POINT 16,0(AC4),17 ; 16,0(AC4),17 400230' 22 20 0 04 000000
C.10: POINT 16,0(AC4),35 ; 16,0(AC4),35 400231' 00 20 0 04 000000
C.11: EXP 0 ; 0 400232' 000000 000000
C.12: POINT 7,P.AAA-1,34 ; 7,P.AAA-1,34 400233' 01 07 0 00 400054'
C.13: POINT 7,P.AAB-1,34 ; 7,P.AAB-1,34 400234' 01 07 0 00 400061'
; Routine Size: 99 words
; 0302 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 13
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (4)
; 0303 1 ROUTINE EPT_INDEX (NAME) =
; 0304 1
; 0305 1 !++
; 0306 1 ! FUNCTIONAL DESCRIPTION:
; 0307 1 !
; 0308 1 !
; 0309 1 !
; 0310 1 !
; 0311 1 ! FORMAL PARAMETERS:
; 0312 1 !
; 0313 1 !
; 0314 1 ! IMPLICIT INPUTS:
; 0315 1 !
; 0316 1 ! NONE
; 0317 1 !
; 0318 1 ! IMPLICIT OUTPUTS:
; 0319 1 !
; 0320 1 ! NONE
; 0321 1 !
; 0322 1 ! ROUTINE VALUE:
; 0323 1 !
; 0324 1 ! NONE
; 0325 1 !
; 0326 1 ! SIDE EFFECTS
; 0327 1 !
; 0328 1 ! NONE
; 0329 1 !
; 0330 1 !--
; 0331 1
; 0332 2 BEGIN
; 0333 2
; 0334 2 MAP
; 0335 2 NAME : REF VECTOR [2];
; 0336 2
; 0337 2 INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
; 0338 2
; 0339 2 IF .LIBEPT [.INDEX, EPT_NAME_1] EQL .NAME [0] AND .LIBEPT [.INDEX, EPT_NAME_2] EQL .NAME [1]
; 0340 2 THEN
; 0341 2 RETURN .INDEX;
; 0342 2
; 0343 2 -1
; 0344 1 END; !OF EPT_INDEX
EPT_INDEX:
MOVE AC1,LIBHDR ; AC1,LIBHDR 400235' 200 01 0 00 000000* 0337
LDB AC5,C.14 ; AC5,[POINT 16,5(AC1),35] <0,16> 400236' 135 05 0 00 400263'
LDB AC2,C.15 ; AC2,[POINT 16,6(AC1),17] <18,16> 400237' 135 02 0 00 400264'
SUB AC5,AC2 ; AC5,AC2 400240' 274 05 0 00 000002
MOVE AC2,-1(SP) ; AC2,NAME 400241' 200 02 0 17 777777 0339
SETO AC1, ; INDEX, 400242' 474 01 0 00 000000 0337
JRST L.14 ; L.14 400243' 254 00 0 00 400256'
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 14
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (4)
L.13: MOVE AC4,LIBEPT ; AC4,LIBEPT 400244' 200 04 0 00 000000* 0339
MOVE AC3,AC1 ; AC3,INDEX 400245' 200 03 0 00 000001
IMULI AC3,2 ; AC3,2 400246' 221 03 0 00 000002
ADD AC4,AC3 ; AC4,AC3 400247' 270 04 0 00 000003
LDB AC3,C.9 ; AC3,[POINT 16,0(AC4),17] <18,16> 400250' 135 03 0 00 400230'
CAME AC3,0(AC2) ; AC3,0(AC2) 400251' 312 03 0 02 000000
JRST L.14 ; L.14 400252' 254 00 0 00 400256'
LDB AC3,C.10 ; AC3,[POINT 16,0(AC4),35] <0,16> 400253' 135 03 0 00 400231'
CAMN AC3,1(AC2) ; AC3,1(AC2) 400254' 316 03 0 02 000001
POPJ SP, ; SP, 400255' 263 17 0 00 000000 0341
L.14: ADDI AC1,1 ; INDEX,1 400256' 271 01 0 00 000001 0337
CAMGE AC1,AC5 ; INDEX,AC5 400257' 315 01 0 00 000005
JRST L.13 ; L.13 400260' 254 00 0 00 400244'
SETO AC1, ; AC1, 400261' 474 01 0 00 000000 0303
POPJ SP, ; SP, 400262' 263 17 0 00 000000
C.14: POINT 16,5(AC1),35 ; 16,5(AC1),35 400263' 00 20 0 01 000005
C.15: POINT 16,6(AC1),17 ; 16,6(AC1),17 400264' 22 20 0 01 000006
; Routine Size: 24 words
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 15
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (5)
; 0345 1 ROUTINE EPT_INSERT (NAME, BLOCK, OFFSET) =
; 0346 1
; 0347 1 !++
; 0348 1 ! FUNCTIONAL DESCRIPTION:
; 0349 1 !
; 0350 1 !
; 0351 1 !
; 0352 1 !
; 0353 1 ! FORMAL PARAMETERS:
; 0354 1 !
; 0355 1 !
; 0356 1 ! IMPLICIT INPUTS:
; 0357 1 !
; 0358 1 ! NONE
; 0359 1 !
; 0360 1 ! IMPLICIT OUTPUTS:
; 0361 1 !
; 0362 1 ! NONE
; 0363 1 !
; 0364 1 ! ROUTINE VALUE:
; 0365 1 !
; 0366 1 ! NONE
; 0367 1 !
; 0368 1 ! SIDE EFFECTS
; 0369 1 !
; 0370 1 ! NONE
; 0371 1 !
; 0372 1 !--
; 0373 1
; 0374 2 BEGIN
; 0375 2
; 0376 2 MAP
; 0377 2 NAME : REF VECTOR [2];
; 0378 2
; 0379 2 IF .LIBHDR [LIB_EPT_AVAILABLE] LEQ 0 THEN RETURN FALSE;
; 0380 2
; 0381 2 DECR INDEX FROM .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] TO 0 DO
; 0382 3 BEGIN
; 0383 3
; 0384 3 IF .INDEX GTR 0
; 0385 3 THEN
; 0386 3
; 0387 3 INCR SUB_INDEX FROM 0 TO EPT_LENGTH - 1 DO
; 0388 3 LIBEPT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0] = .LIBEPT [.INDEX - 1, .SUB_INDEX, 0, %BPVAL, 0];
; 0389 3
; 0390 4 IF (.INDEX EQL 0) OR (.LIBEPT [.INDEX, EPT_NAME_1] LSS .NAME [0]) OR (.LIBEPT [.INDEX, EPT_NAME_1] EQL
; 0391 4 .NAME [0] AND .LIBEPT [.INDEX, EPT_NAME_2] LSS .NAME [1])
; 0392 3 THEN
; 0393 3 EXITLOOP
; 0394 4 BEGIN
; 0395 4 LIBEPT [.INDEX, EPT_NAME_1] = .NAME [0];
; 0396 4 LIBEPT [.INDEX, EPT_NAME_2] = .NAME [1];
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 16
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (5)
; 0397 4 LIBEPT [.INDEX, EPT_BLOCK] = .BLOCK;
; 0398 4 LIBEPT [.INDEX, EPT_OFFSET] = .OFFSET;
; 0399 3 END;
; 0400 3
; 0401 2 END;
; 0402 2
; 0403 2 LIBHDR [LIB_EPT_AVAILABLE] = .LIBHDR [LIB_EPT_AVAILABLE] - 1;
; 0404 2 HDR_CHANGED = EPT_CHANGED = TRUE
; 0405 1 END; !OF EPT_INSERT
EPT_INSERT:
PUSH SP,AC13 ; SP,AC13 400265' 261 17 0 00 000013 0345
PUSH SP,AC14 ; SP,AC14 400266' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400267' 261 17 0 00 000016
MOVE AC3,LIBHDR ; AC3,LIBHDR 400270' 200 03 0 00 000000* 0379
LDB AC2,C.16 ; AC2,[POINT 16,6(AC3),17] <18,16> 400271' 135 02 0 00 400376'
JUMPG AC2,L.15 ; AC2,L.15 400272' 327 02 0 00 400275'
SETZ AC1, ; AC1, 400273' 400 01 0 00 000000
JRST L.22 ; L.22 400274' 254 00 0 00 400372'
L.15: LDB AC1,C.17 ; AC1,[POINT 16,5(AC3),35] <0,16> 400275' 135 01 0 00 400377' 0381
SUB AC1,AC2 ; AC1,AC2 400276' 274 01 0 00 000002
AOJA AC1,L.20 ; AC1,L.20 400277' 344 01 0 00 400363'
L.16: JUMPLE AC1,L.18 ; INDEX,L.18 400300' 323 01 0 00 400321' 0384
MOVE AC14,AC1 ; AC14,INDEX 400301' 200 14 0 00 000001 0388
IMULI AC14,2 ; AC14,2 400302' 221 14 0 00 000002
MOVE AC2,AC1 ; AC2,INDEX 400303' 200 02 0 00 000001
SUBI AC2,1 ; AC2,1 400304' 275 02 0 00 000001
IMULI AC2,2 ; AC2,2 400305' 221 02 0 00 000002
SETZ AC5, ; SUB_INDEX, 400306' 400 05 0 00 000000 0387
L.17: MOVE AC4,LIBEPT ; AC4,LIBEPT 400307' 200 04 0 00 000000* 0388
ADD AC4,AC5 ; AC4,SUB_INDEX 400310' 270 04 0 00 000005
MOVE AC16,AC4 ; AC16,AC4 400311' 200 16 0 00 000004
ADD AC16,AC14 ; AC16,AC14 400312' 270 16 0 00 000014
ADD AC4,AC2 ; AC4,AC2 400313' 270 04 0 00 000002
MOVE AC13,0(AC4) ; AC13,0(AC4) 400314' 200 13 0 04 000000
MOVEM AC13,0(AC16) ; AC13,0(AC16) 400315' 202 13 0 16 000000
ADDI AC5,1 ; SUB_INDEX,1 400316' 271 05 0 00 000001 0387
CAIG AC5,1 ; SUB_INDEX,1 400317' 307 05 0 00 000001
JRST L.17 ; L.17 400320' 254 00 0 00 400307'
L.18: JUMPE AC1,L.19 ; INDEX,L.19 400321' 322 01 0 00 400345' 0390
MOVE AC4,LIBEPT ; AC4,LIBEPT 400322' 200 04 0 00 000000*
MOVE AC2,AC1 ; AC2,INDEX 400323' 200 02 0 00 000001
IMULI AC2,2 ; AC2,2 400324' 221 02 0 00 000002
ADD AC4,AC2 ; AC4,AC2 400325' 270 04 0 00 000002
MOVE AC2,-6(SP) ; AC2,NAME 400326' 200 02 0 17 777772
LDB AC5,C.9 ; AC5,[POINT 16,0(AC4),17] <18,16> 400327' 135 05 0 00 400230'
CAMGE AC5,0(AC2) ; AC5,0(AC2) 400330' 315 05 0 02 000000
JRST L.19 ; L.19 400331' 254 00 0 00 400345'
MOVE AC4,LIBEPT ; AC4,LIBEPT 400332' 200 04 0 00 000000*
MOVE AC2,AC1 ; AC2,INDEX 400333' 200 02 0 00 000001
IMULI AC2,2 ; AC2,2 400334' 221 02 0 00 000002
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 17
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (5)
ADD AC4,AC2 ; AC4,AC2 400335' 270 04 0 00 000002
MOVE AC2,-6(SP) ; AC2,NAME 400336' 200 02 0 17 777772 0391
LDB AC5,C.9 ; AC5,[POINT 16,0(AC4),17] <18,16> 400337' 135 05 0 00 400230' 0390
CAME AC5,0(AC2) ; AC5,0(AC2) 400340' 312 05 0 02 000000
JRST L.20 ; L.20 400341' 254 00 0 00 400363'
LDB AC5,C.10 ; AC5,[POINT 16,0(AC4),35] <0,16> 400342' 135 05 0 00 400231' 0391
CAML AC5,1(AC2) ; AC5,1(AC2) 400343' 311 05 0 02 000001
JRST L.20 ; L.20 400344' 254 00 0 00 400363'
L.19: MOVE AC5,LIBEPT ; AC5,LIBEPT 400345' 200 05 0 00 000000* 0395
MOVE AC2,AC1 ; AC2,INDEX 400346' 200 02 0 00 000001
IMULI AC2,2 ; AC2,2 400347' 221 02 0 00 000002
ADD AC5,AC2 ; AC5,AC2 400350' 270 05 0 00 000002
MOVE AC4,-6(SP) ; AC4,NAME 400351' 200 04 0 17 777772
MOVE AC2,0(AC4) ; AC2,0(AC4) 400352' 200 02 0 04 000000
DPB AC2,C.18 ; AC2,[POINT 16,0(AC5),17] <18,16> 400353' 137 02 0 00 400400'
MOVE AC2,1(AC4) ; AC2,1(AC4) 400354' 200 02 0 04 000001 0396
DPB AC2,C.19 ; AC2,[POINT 16,0(AC5),35] <0,16> 400355' 137 02 0 00 400401'
MOVE AC2,-5(SP) ; AC2,BLOCK 400356' 200 02 0 17 777773 0397
DPB AC2,C.20 ; AC2,[POINT 16,1(AC5),17] <18,16> 400357' 137 02 0 00 400402'
MOVE AC2,-4(SP) ; AC2,OFFSET 400360' 200 02 0 17 777774 0398
DPB AC2,C.21 ; AC2,[POINT 16,1(AC5),35] <0,16> 400361' 137 02 0 00 400403'
JRST L.21 ; L.21 400362' 254 00 0 00 400364' 0393
L.20: SOJGE AC1,L.16 ; INDEX,L.16 400363' 365 01 0 00 400300' 0381
L.21: LDB AC1,C.16 ; AC1,[POINT 16,6(AC3),17] <18,16> 400364' 135 01 0 00 400376' 0403
SUBI AC1,1 ; AC1,1 400365' 275 01 0 00 000001
DPB AC1,C.16 ; AC1,[POINT 16,6(AC3),17] <18,16> 400366' 137 01 0 00 400376'
MOVEI AC1,1 ; AC1,1 400367' 201 01 0 00 000001 0404
MOVEM AC1,EPT_CHANGED ; AC1,EPT_CHANGED 400370' 202 01 0 00 010000'
MOVEM AC1,HDR_CHANGED ; AC1,HDR_CHANGED 400371' 202 01 0 00 010021'
L.22: POP SP,AC16 ; SP,AC16 400372' 262 17 0 00 000016 0345
POP SP,AC14 ; SP,AC14 400373' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 400374' 262 17 0 00 000013
POPJ SP, ; SP, 400375' 263 17 0 00 000000
C.16: POINT 16,6(AC3),17 ; 16,6(AC3),17 400376' 22 20 0 03 000006
C.17: POINT 16,5(AC3),35 ; 16,5(AC3),35 400377' 00 20 0 03 000005
C.18: POINT 16,0(AC5),17 ; 16,0(AC5),17 400400' 22 20 0 05 000000
C.19: POINT 16,0(AC5),35 ; 16,0(AC5),35 400401' 00 20 0 05 000000
C.20: POINT 16,1(AC5),17 ; 16,1(AC5),17 400402' 22 20 0 05 000001
C.21: POINT 16,1(AC5),35 ; 16,1(AC5),35 400403' 00 20 0 05 000001
; Routine Size: 79 words
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 18
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (6)
; 0406 1 ROUTINE EPT_PURGE (BLOCK, OFFSET) : NOVALUE =
; 0407 1
; 0408 1 !++
; 0409 1 ! FUNCTIONAL DESCRIPTION:
; 0410 1 !
; 0411 1 !
; 0412 1 !
; 0413 1 !
; 0414 1 ! FORMAL PARAMETERS:
; 0415 1 !
; 0416 1 !
; 0417 1 ! IMPLICIT INPUTS:
; 0418 1 !
; 0419 1 ! NONE
; 0420 1 !
; 0421 1 ! IMPLICIT OUTPUTS:
; 0422 1 !
; 0423 1 ! NONE
; 0424 1 !
; 0425 1 ! ROUTINE VALUE:
; 0426 1 !
; 0427 1 ! NONE
; 0428 1 !
; 0429 1 ! SIDE EFFECTS
; 0430 1 !
; 0431 1 ! NONE
; 0432 1 !
; 0433 1 !--
; 0434 1
; 0435 2 BEGIN
; 0436 2
; 0437 2 LOCAL
; 0438 2 NEW_COUNT;
; 0439 2
; 0440 2 NEW_COUNT = 0;
; 0441 2
; 0442 2 INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
; 0443 3 BEGIN
; 0444 3
; 0445 3 IF .LIBEPT [.INDEX, EPT_BLOCK] NEQ .BLOCK OR .LIBEPT [.INDEX, EPT_OFFSET] NEQ .OFFSET
; 0446 3 THEN
; 0447 4 BEGIN
; 0448 4
; 0449 4 IF .INDEX NEQ .NEW_COUNT
; 0450 4 THEN
; 0451 4
; 0452 4 INCR SUB_INDEX FROM 0 TO EPT_LENGTH - 1 DO
; 0453 4 LIBEPT [.NEW_COUNT, .SUB_INDEX, 0, %BPVAL, 0] = .LIBEPT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0]
; 0454 4
; 0455 4 ;
; 0456 4 NEW_COUNT = .NEW_COUNT + 1;
; 0457 3 END;
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 19
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (6)
; 0458 3
; 0459 2 END;
; 0460 2
; 0461 3 IF .LIBHDR [LIB_EPT_AVAILABLE] NEQ (.LIBHDR [LIB_EPT_ALLOCATED] - .NEW_COUNT)
; 0462 2 THEN
; 0463 3 BEGIN
; 0464 3 LIBHDR [LIB_EPT_AVAILABLE] = .LIBHDR [LIB_EPT_ALLOCATED] - .NEW_COUNT;
; 0465 3 HDR_CHANGED = EPT_CHANGED = TRUE;
; 0466 2 END;
; 0467 2
; 0468 1 END; !OF EPT_PURGE
EPT_PURGE:
PUSH SP,AC10 ; SP,AC10 400404' 261 17 0 00 000010 0406
PUSH SP,AC11 ; SP,AC11 400405' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 400406' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 400407' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 400410' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400411' 261 17 0 00 000016
SETZ AC1, ; NEW_COUNT, 400412' 400 01 0 00 000000 0440
MOVE AC4,LIBHDR ; AC4,LIBHDR 400413' 200 04 0 00 000000* 0442
LDB AC2,C.22 ; AC2,[POINT 16,5(AC4),35] <0,16> 400414' 135 02 0 00 400477'
LDB AC3,C.23 ; AC3,[POINT 16,6(AC4),17] <18,16> 400415' 135 03 0 00 400500'
SUB AC2,AC3 ; AC2,AC3 400416' 274 02 0 00 000003
MOVE AC12,LIBEPT ; AC12,LIBEPT 400417' 200 12 0 00 000000* 0445
SETO AC11, ; INDEX, 400420' 474 11 0 00 000000 0442
JRST L.27 ; L.27 400421' 254 00 0 00 400454'
L.23: MOVE AC14,AC11 ; AC14,INDEX 400422' 200 14 0 00 000011 0445
IMULI AC14,2 ; AC14,2 400423' 221 14 0 00 000002
MOVE AC3,AC12 ; AC3,AC12 400424' 200 03 0 00 000012
ADD AC3,AC14 ; AC3,AC14 400425' 270 03 0 00 000014
LDB AC5,C.24 ; AC5,[POINT 16,1(AC3),17] <18,16> 400426' 135 05 0 00 400501'
CAME AC5,-10(SP) ; AC5,BLOCK 400427' 312 05 0 17 777770
JRST L.24 ; L.24 400430' 254 00 0 00 400434'
LDB AC5,C.25 ; AC5,[POINT 16,1(AC3),35] <0,16> 400431' 135 05 0 00 400502'
CAMN AC5,-7(SP) ; AC5,OFFSET 400432' 316 05 0 17 777771
JRST L.27 ; L.27 400433' 254 00 0 00 400454'
L.24: CAMN AC11,AC1 ; INDEX,NEW_COUNT 400434' 316 11 0 00 000001 0449
JRST L.26 ; L.26 400435' 254 00 0 00 400453'
MOVE AC13,AC1 ; AC13,NEW_COUNT 400436' 200 13 0 00 000001 0453
IMULI AC13,2 ; AC13,2 400437' 221 13 0 00 000002
SETZ AC3, ; SUB_INDEX, 400440' 400 03 0 00 000000 0452
L.25: MOVE AC5,AC12 ; AC5,AC12 400441' 200 05 0 00 000012 0453
ADD AC5,AC3 ; AC5,SUB_INDEX 400442' 270 05 0 00 000003
MOVE AC16,AC5 ; AC16,AC5 400443' 200 16 0 00 000005
ADD AC16,AC13 ; AC16,AC13 400444' 270 16 0 00 000013
ADD AC5,AC14 ; AC5,AC14 400445' 270 05 0 00 000014
MOVE AC10,0(AC5) ; AC10,0(AC5) 400446' 200 10 0 05 000000
MOVEM AC10,0(AC16) ; AC10,0(AC16) 400447' 202 10 0 16 000000
ADDI AC3,1 ; SUB_INDEX,1 400450' 271 03 0 00 000001 0452
CAIG AC3,1 ; SUB_INDEX,1 400451' 307 03 0 00 000001
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 20
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (6)
JRST L.25 ; L.25 400452' 254 00 0 00 400441'
L.26: ADDI AC1,1 ; NEW_COUNT,1 400453' 271 01 0 00 000001 0456
L.27: ADDI AC11,1 ; INDEX,1 400454' 271 11 0 00 000001 0442
CAMGE AC11,AC2 ; INDEX,AC2 400455' 315 11 0 00 000002
JRST L.23 ; L.23 400456' 254 00 0 00 400422'
LDB AC2,C.22 ; AC2,[POINT 16,5(AC4),35] <0,16> 400457' 135 02 0 00 400477' 0461
SUB AC2,AC1 ; AC2,NEW_COUNT 400460' 274 02 0 00 000001
LDB AC3,C.23 ; AC3,[POINT 16,6(AC4),17] <18,16> 400461' 135 03 0 00 400500'
CAMN AC3,AC2 ; AC3,AC2 400462' 316 03 0 00 000002
JRST L.28 ; L.28 400463' 254 00 0 00 400470'
DPB AC2,C.23 ; AC2,[POINT 16,6(AC4),17] <18,16> 400464' 137 02 0 00 400500' 0464
MOVEI AC1,1 ; AC1,1 400465' 201 01 0 00 000001 0465
MOVEM AC1,EPT_CHANGED ; AC1,EPT_CHANGED 400466' 202 01 0 00 010000'
MOVEM AC1,HDR_CHANGED ; AC1,HDR_CHANGED 400467' 202 01 0 00 010021'
L.28: POP SP,AC16 ; SP,AC16 400470' 262 17 0 00 000016 0406
POP SP,AC14 ; SP,AC14 400471' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 400472' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 400473' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 400474' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 400475' 262 17 0 00 000010
POPJ SP, ; SP, 400476' 263 17 0 00 000000
C.22: POINT 16,5(AC4),35 ; 16,5(AC4),35 400477' 00 20 0 04 000005
C.23: POINT 16,6(AC4),17 ; 16,6(AC4),17 400500' 22 20 0 04 000006
C.24: POINT 16,1(AC3),17 ; 16,1(AC3),17 400501' 22 20 0 03 000001
C.25: POINT 16,1(AC3),35 ; 16,1(AC3),35 400502' 00 20 0 03 000001
; Routine Size: 63 words
; 0469 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 21
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
; 0470 1 GLOBAL ROUTINE FILE_INSERT (FILBLK, REPLACE, EPT, RG, SS) =
; 0471 1
; 0472 1 !++
; 0473 1 ! FUNCTIONAL DESCRIPTION:
; 0474 1 !
; 0475 1 !
; 0476 1 !
; 0477 1 !
; 0478 1 ! FORMAL PARAMETERS:
; 0479 1 !
; 0480 1 !
; 0481 1 ! IMPLICIT INPUTS:
; 0482 1 !
; 0483 1 ! NONE
; 0484 1 !
; 0485 1 ! IMPLICIT OUTPUTS:
; 0486 1 !
; 0487 1 ! NONE
; 0488 1 !
; 0489 1 ! ROUTINE VALUE:
; 0490 1 !
; 0491 1 ! NONE
; 0492 1 !
; 0493 1 ! SIDE EFFECTS
; 0494 1 !
; 0495 1 ! NONE
; 0496 1 !
; 0497 1 !--
; 0498 1
; 0499 2 BEGIN
; 0500 2
; 0501 2 MACRO
; M 0502 2 ABORT (text) =
; M 0503 2 RETURN
; M 0504 2 BEGIN
; M 0505 2 %IF %NULL (%REMAINING)
; M 0506 2 %THEN
; M 0507 2 TYPLN (1, CH$ASCIZ (FATAL, text))
; M 0508 2 %ELSE
; M 0509 2 TYPLN (1, CH$ASCIZ (FATAL, text), %REMAINING)
; M 0510 2 %FI;
; M 0511 2 OBJ_CLOSE ();
; M 0512 2 FALSE
; 0513 2 END %;
; 0514 2
; 0515 2 LOCAL
; 0516 2 DELETE_BLOCK,
; 0517 2 DELETE_OFFSET,
; 0518 2 INSERT_BLOCK,
; 0519 2 INSERT_OFFSET,
; 0520 2 MODULE_NAME : VECTOR [2],
; 0521 2 OBJECT_BLOCK,
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 22
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
; 0522 2 OBJECT_OFFSET,
; 0523 2 RECORD_COUNT,
; 0524 2 RECORD_TYPE;
; 0525 2
; 0526 2 IF NOT OBJ_OPEN (.FILBLK) THEN RETURN FALSE;
; 0527 2
; 0528 2 WHILE TRUE DO
; 0529 3 BEGIN
; 0530 3 !
; 0531 3 ! Mark this record position and check for EOF
; 0532 3 !
; 0533 3 OBJ_MARK ();
; 0534 3
; 0535 3 IF OBJ_RECORD () LSS 0 THEN EXITLOOP;
; 0536 3
; 0537 3 !
; 0538 3 ! Set up the module header
; 0539 3 !
; 0540 4 BEGIN
; 0541 4
; 0542 4 LOCAL
; 0543 4 TIME_BLOCK : VECTOR [8];
; 0544 4
; 0545 4 HDR [HDR_STATUS] = 0;
; 0546 4 HDR [HDR_ATTRIBUTES] = 0;
; 0547 4 HDR [HDR_SS] = .SS;
; 0548 4 HDR [HDR_SIZE_1] = 0;
; 0549 4 HDR [HDR_SIZE_2] = 2 + HDR_SIZE;
; 0550 4 GETTIM (TIME_BLOCK);
; 0551 4 HDR [HDR_YEAR] = .TIME_BLOCK [0];
; 0552 4 HDR [HDR_MONTH] = .TIME_BLOCK [1];
; 0553 4 HDR [HDR_DAY] = .TIME_BLOCK [2];
; 0554 3 END;
; 0555 3 !
; 0556 3 ! Set library file insertion position
; 0557 3 !
; 0558 3 INSERT_BLOCK = .LIBHDR [LIB_INSERT_BLOCK];
; 0559 3 INSERT_OFFSET = .LIBHDR [LIB_INSERT_OFFSET];
; 0560 3 POSFIL (.LIB_FILBLK, .INSERT_BLOCK, .INSERT_OFFSET + 2 + HDR_SIZE);
; 0561 3 DELETE_BLOCK = DELETE_OFFSET = 0;
; 0562 3 !
; 0563 3 ! Pass 1: Copy GSD records to END GSD record
; 0564 3 !
; 0565 3 ! If module name encountered, insert it in MNT
; 0566 3 !
; 0567 3 ! If entry point encountered, insert it in EPT
; 0568 3 !
; 0569 3 OBJ_SET ();
; 0570 3
; 0571 3 WHILE TRUE DO
; 0572 4 BEGIN
; 0573 4
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 23
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
; 0574 4 IF (RECORD_COUNT = OBJ_RECORD () - 2) LSS 0
; 0575 4 THEN
; 0576 4 ABORT ('Invalid format for input object file "%@"', FILNM, .FILBLK);
; 0577 4
; 0578 4 CASE (RECORD_TYPE = OBJ_WORD ()) FROM OBJ_LOW TO OBJ_HIGH OF
; 0579 4 SET
; 0580 4
; 0581 4 [OBJ_GSD] :
; 0582 5 BEGIN
; 0583 5 COPY (.RECORD_COUNT + 2);
; 0584 5 COPY (.RECORD_TYPE);
; 0585 5
; 0586 5 WHILE (RECORD_COUNT = .RECORD_COUNT - 8) GEQ 0 DO
; 0587 6 BEGIN
; 0588 6
; 0589 6 LOCAL
; 0590 6 NAME : VECTOR [2],
; 0591 6 TYPE;
; 0592 6
; 0593 6 NAME [0] = COPY (OBJ_WORD ());
; 0594 6 NAME [1] = COPY (OBJ_WORD ());
; 0595 6 TYPE = COPY (OBJ_WORD ());
; 0596 6 COPY (OBJ_WORD ());
; 0597 6
; 0598 6 CASE .TYPE<8, 8> FROM GSD_LOW TO GSD_HIGH OF
; 0599 6 SET
; 0600 6
; 0601 6 [GSD_MOD] :
; 0602 7 BEGIN
; 0603 7
; 0604 7 LOCAL
; 0605 7 INDEX;
; 0606 7
; 0607 7 MODULE_NAME [0] = .NAME [0];
; 0608 7 MODULE_NAME [1] = .NAME [1];
; 0609 7
; 0610 7 IF (INDEX = MNT_INDEX (NAME)) GEQ 0
; 0611 7 THEN
; 0612 7
; 0613 7 IF .REPLACE
; 0614 7 THEN
; 0615 8 BEGIN
; 0616 8 DELETE_BLOCK = .LIBMNT [.INDEX, MNT_BLOCK];
; 0617 8 DELETE_OFFSET = .LIBMNT [.INDEX, MNT_OFFSET];
; 0618 8 EPT_PURGE (.DELETE_BLOCK, .DELETE_OFFSET);
; 0619 8 MNT_PURGE (.DELETE_BLOCK, .DELETE_OFFSET);
; 0620 8 END
; 0621 7 ELSE
; P 0622 7 ABORT ('Duplicate module name "%2R" in library "%@"', .NAME [0],
; 0623 7 .NAME [1], FILNM, .LIB_FILBLK);
; 0624 7
; 0625 7 IF NOT MNT_INSERT (NAME, .INSERT_BLOCK, .INSERT_OFFSET)
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 24
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
; 0626 7 THEN
; 0627 7 ABORT ('MNT exceeded in library "%@"', FILNM, .LIB_FILBLK);
; 0628 7
; 0629 6 END;
; 0630 6
; 0631 6 [GSD_GLOBAL] :
; 0632 6
; 0633 6 IF .EPT AND .TYPE<3, 1>
; 0634 6 THEN
; 0635 7 BEGIN
; 0636 7
; 0637 7 local
; 0638 7 INDEX;
; 0639 7
; 0640 7 IF (INDEX = EPT_INDEX (NAME)) GEQ 0
; 0641 7 THEN
; 0642 8 begin
; 0643 8
; 0644 8 if .RG
; 0645 8 then
; 0646 9 begin
; 0647 9 LIBEPT [.INDEX, EPT_BLOCK] = .INSERT_BLOCK;
; 0648 9 LIBEPT [.INDEX, EPT_OFFSET] = .INSERT_OFFSET;
; 0649 9 end
; 0650 8 else
; P 0651 8 ABORT ('Duplicate entry point "%2R" in library "%@"',
; 0652 8 .NAME [0], .NAME [1], FILNM, .LIB_FILBLK);
; 0653 8
; 0654 8 end
; 0655 7 else
; 0656 7
; 0657 7 IF NOT EPT_INSERT (NAME, .INSERT_BLOCK, .INSERT_OFFSET)
; 0658 7 THEN
; 0659 7 ABORT ('EPT exceeded in library "%@"', FILNM, .LIB_FILBLK);
; 0660 7
; 0661 6 END;
; 0662 6
; 0663 6 [GSD_VERSION] :
; 0664 7 BEGIN
; 0665 7 HDR [HDR_IDENT_1] = .NAME [0];
; 0666 7 HDR [HDR_IDENT_2] = .NAME [1];
; 0667 6 END;
; 0668 6
; 0669 6 [INRANGE] :
; 0670 6 0;
; 0671 6
; 0672 6 [OUTRANGE] :
; 0673 6 ABORT ('Invalid format for input object file "%@"', FILNM, .FILBLK);
; 0674 6 TES
; 0675 6
; 0676 5 END;
; 0677 5
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 25
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
; 0678 4 END;
; 0679 4
; 0680 4 [INRANGE] :
; 0681 4 0;
; 0682 4
; 0683 4 [OBJ_END_GSD] :
; 0684 4 EXITLOOP
; 0685 5 BEGIN
; 0686 5 COPY (.RECORD_COUNT + 2);
; 0687 5 COPY (.RECORD_TYPE);
; 0688 4 END;
; 0689 4
; 0690 4 [OUTRANGE] :
; 0691 4 ABORT ('Invalid format for input object file "%@"', FILNM, .FILBLK);
; 0692 4 TES;
; 0693 4
; 0694 3 END;
; 0695 3
; 0696 3 !
; 0697 3 ! Pass 2: Copy non-GSD records to END MOD record
; 0698 3 !
; 0699 3 OBJ_SET ();
; 0700 3
; 0701 3 WHILE TRUE DO
; 0702 4 BEGIN
; 0703 4 RECORD_COUNT = OBJ_RECORD () - 2;
; 0704 4
; 0705 4 CASE (RECORD_TYPE = OBJ_WORD ()) FROM OBJ_LOW TO OBJ_HIGH OF
; 0706 4 SET
; 0707 4
; 0708 4 [OBJ_GSD, OBJ_END_GSD] :
; 0709 4 0;
; 0710 4
; 0711 4 [INRANGE] :
; 0712 5 BEGIN
; 0713 5 COPY (.RECORD_COUNT + 2);
; 0714 5 COPY (.RECORD_TYPE);
; 0715 5
; 0716 5 WHILE (RECORD_COUNT = .RECORD_COUNT - 2) GEQ 0 DO
; 0717 5 COPY (OBJ_WORD ());
; 0718 5
; 0719 4 END;
; 0720 4
; 0721 4 [OBJ_END_MOD] :
; 0722 4 EXITLOOP
; 0723 5 BEGIN
; 0724 5 COPY (.RECORD_COUNT + 2);
; 0725 5 COPY (.RECORD_TYPE);
; 0726 4 END;
; 0727 4 TES;
; 0728 4
; 0729 3 END;
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 26
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
; 0730 3
; 0731 3 !
; 0732 3 ! Set new insert position
; 0733 3 !
; 0734 4 BEGIN
; 0735 4
; 0736 4 LOCAL
; 0737 4 BLOCK,
; 0738 4 OFFSET;
; 0739 4
; 0740 4 FILPOS (.LIB_FILBLK, BLOCK, OFFSET);
; 0741 4 LIBHDR [LIB_INSERT_BLOCK] = .BLOCK;
; 0742 4 LIBHDR [LIB_INSERT_OFFSET] = .OFFSET;
; 0743 4 HDR_CHANGED = TRUE;
; 0744 3 END;
; 0745 3 !
; 0746 3 ! Write out header record
; 0747 3 !
; 0748 4 BEGIN
; 0749 4
; 0750 4 LOCAL
; 0751 4 LENGTH;
; 0752 4
; 0753 4 POSFIL (.LIB_FILBLK, .INSERT_BLOCK, .INSERT_OFFSET);
; 0754 4 CH$WCHAR (HDR_SIZE, CH$PTR (LENGTH,, 18));
; 0755 4 PUTFIL (.LIB_FILBLK, CH$PTR (LENGTH,, 18), 1);
; 0756 4 PUTFIL (.LIB_FILBLK, CH$PTR (HDR,, 18), HDR_SIZE/2);
; 0757 3 END;
; 0758 3 !
; 0759 3 ! Delete replaced module
; 0760 3 !
; 0761 3
; 0762 3 IF .DELETE_BLOCK NEQ 0 THEN HDR_DELETE (.DELETE_BLOCK, .DELETE_OFFSET);
; 0763 3
; 0764 3 IF NOT .FLAGS [M_FAST] THEN LIBUPD ();
; 0765 3
; P 0766 3 TYPLN (0,
; P 0767 3 (IF .DELETE_BLOCK EQL 0 THEN CH$ASCIZ ('[Module "%2R" inserted]') ELSE CH$ASCIZ (
; 0768 3 '[Module "%2R" replaced]')), .MODULE_NAME [0], .MODULE_NAME [1]);
; 0769 2 END;
; 0770 2
; 0771 2 !
; 0772 2 ! Finished with object file
; 0773 2 !
; 0774 2 OBJ_CLOSE ();
; 0775 2 TRUE
; 0776 1 END; !OF FILE_INSERT
P.AAC: BYTE (7)"*","F","A","T","A" ; *FATA 400503' 052 106 101 124 101
BYTE (7)"L","*"," "," ","I" ; L* I 400504' 114 052 040 040 111
BYTE (7)"n","v","a","l","i" ; nvali 400505' 156 166 141 154 151
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 27
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
BYTE (7)"d"," ","f","o","r" ; d for 400506' 144 040 146 157 162
BYTE (7)"m","a","t"," ","f" ; mat f 400507' 155 141 164 040 146
BYTE (7)"o","r"," ","i","n" ; or in 400510' 157 162 040 151 156
BYTE (7)"p","u","t"," ","o" ; put o 400511' 160 165 164 040 157
BYTE (7)"b","j","e","c","t" ; bject 400512' 142 152 145 143 164
BYTE (7)" ","f","i","l","e" ; file 400513' 040 146 151 154 145
BYTE (7)" ",042,"%","@",042 ; "%@" 400514' 040 042 045 100 042
BYTE (7)000,000,000,000,000 ; 400515' 000 000 000 000 000
P.AAD: BYTE (7)"*","F","A","T","A" ; *FATA 400516' 052 106 101 124 101
BYTE (7)"L","*"," "," ","D" ; L* D 400517' 114 052 040 040 104
BYTE (7)"u","p","l","i","c" ; uplic 400520' 165 160 154 151 143
BYTE (7)"a","t","e"," ","m" ; ate m 400521' 141 164 145 040 155
BYTE (7)"o","d","u","l","e" ; odule 400522' 157 144 165 154 145
BYTE (7)" ","n","a","m","e" ; name 400523' 040 156 141 155 145
BYTE (7)" ",042,"%","2","R" ; "%2R 400524' 040 042 045 062 122
BYTE (7)042," ","i","n"," " ; " in 400525' 042 040 151 156 040
BYTE (7)"l","i","b","r","a" ; libra 400526' 154 151 142 162 141
BYTE (7)"r","y"," ",042,"%" ; ry "% 400527' 162 171 040 042 045
BYTE (7)"@",042,000,000,000 ; @" 400530' 100 042 000 000 000
P.AAE: BYTE (7)"*","F","A","T","A" ; *FATA 400531' 052 106 101 124 101
BYTE (7)"L","*"," "," ","M" ; L* M 400532' 114 052 040 040 115
BYTE (7)"N","T"," ","e","x" ; NT ex 400533' 116 124 040 145 170
BYTE (7)"c","e","e","d","e" ; ceede 400534' 143 145 145 144 145
BYTE (7)"d"," ","i","n"," " ; d in 400535' 144 040 151 156 040
BYTE (7)"l","i","b","r","a" ; libra 400536' 154 151 142 162 141
BYTE (7)"r","y"," ",042,"%" ; ry "% 400537' 162 171 040 042 045
BYTE (7)"@",042,000,000,000 ; @" 400540' 100 042 000 000 000
P.AAF: BYTE (7)"*","F","A","T","A" ; *FATA 400541' 052 106 101 124 101
BYTE (7)"L","*"," "," ","D" ; L* D 400542' 114 052 040 040 104
BYTE (7)"u","p","l","i","c" ; uplic 400543' 165 160 154 151 143
BYTE (7)"a","t","e"," ","e" ; ate e 400544' 141 164 145 040 145
BYTE (7)"n","t","r","y"," " ; ntry 400545' 156 164 162 171 040
BYTE (7)"p","o","i","n","t" ; point 400546' 160 157 151 156 164
BYTE (7)" ",042,"%","2","R" ; "%2R 400547' 040 042 045 062 122
BYTE (7)042," ","i","n"," " ; " in 400550' 042 040 151 156 040
BYTE (7)"l","i","b","r","a" ; libra 400551' 154 151 142 162 141
BYTE (7)"r","y"," ",042,"%" ; ry "% 400552' 162 171 040 042 045
BYTE (7)"@",042,000,000,000 ; @" 400553' 100 042 000 000 000
P.AAG: BYTE (7)"*","F","A","T","A" ; *FATA 400554' 052 106 101 124 101
BYTE (7)"L","*"," "," ","E" ; L* E 400555' 114 052 040 040 105
BYTE (7)"P","T"," ","e","x" ; PT ex 400556' 120 124 040 145 170
BYTE (7)"c","e","e","d","e" ; ceede 400557' 143 145 145 144 145
BYTE (7)"d"," ","i","n"," " ; d in 400560' 144 040 151 156 040
BYTE (7)"l","i","b","r","a" ; libra 400561' 154 151 142 162 141
BYTE (7)"r","y"," ",042,"%" ; ry "% 400562' 162 171 040 042 045
BYTE (7)"@",042,000,000,000 ; @" 400563' 100 042 000 000 000
P.AAH: BYTE (7)"*","F","A","T","A" ; *FATA 400564' 052 106 101 124 101
BYTE (7)"L","*"," "," ","I" ; L* I 400565' 114 052 040 040 111
BYTE (7)"n","v","a","l","i" ; nvali 400566' 156 166 141 154 151
BYTE (7)"d"," ","f","o","r" ; d for 400567' 144 040 146 157 162
BYTE (7)"m","a","t"," ","f" ; mat f 400570' 155 141 164 040 146
BYTE (7)"o","r"," ","i","n" ; or in 400571' 157 162 040 151 156
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 28
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
BYTE (7)"p","u","t"," ","o" ; put o 400572' 160 165 164 040 157
BYTE (7)"b","j","e","c","t" ; bject 400573' 142 152 145 143 164
BYTE (7)" ","f","i","l","e" ; file 400574' 040 146 151 154 145
BYTE (7)" ",042,"%","@",042 ; "%@" 400575' 040 042 045 100 042
BYTE (7)000,000,000,000,000 ; 400576' 000 000 000 000 000
P.AAI: BYTE (7)"*","F","A","T","A" ; *FATA 400577' 052 106 101 124 101
BYTE (7)"L","*"," "," ","I" ; L* I 400600' 114 052 040 040 111
BYTE (7)"n","v","a","l","i" ; nvali 400601' 156 166 141 154 151
BYTE (7)"d"," ","f","o","r" ; d for 400602' 144 040 146 157 162
BYTE (7)"m","a","t"," ","f" ; mat f 400603' 155 141 164 040 146
BYTE (7)"o","r"," ","i","n" ; or in 400604' 157 162 040 151 156
BYTE (7)"p","u","t"," ","o" ; put o 400605' 160 165 164 040 157
BYTE (7)"b","j","e","c","t" ; bject 400606' 142 152 145 143 164
BYTE (7)" ","f","i","l","e" ; file 400607' 040 146 151 154 145
BYTE (7)" ",042,"%","@",042 ; "%@" 400610' 040 042 045 100 042
BYTE (7)000,000,000,000,000 ; 400611' 000 000 000 000 000
P.AAJ: BYTE (7)"[","M","o","d","u" ; [Modu 400612' 133 115 157 144 165
BYTE (7)"l","e"," ",042,"%" ; le "% 400613' 154 145 040 042 045
BYTE (7)"2","R",042," ","i" ; 2R" i 400614' 062 122 042 040 151
BYTE (7)"n","s","e","r","t" ; nsert 400615' 156 163 145 162 164
BYTE (7)"e","d","]",000,000 ; ed] 400616' 145 144 135 000 000
P.AAK: BYTE (7)"[","M","o","d","u" ; [Modu 400617' 133 115 157 144 165
BYTE (7)"l","e"," ",042,"%" ; le "% 400620' 154 145 040 042 045
BYTE (7)"2","R",042," ","r" ; 2R" r 400621' 062 122 042 040 162
BYTE (7)"e","p","l","a","c" ; eplac 400622' 145 160 154 141 143
BYTE (7)"e","d","]",000,000 ; ed] 400623' 145 144 135 000 000
FILE_INSERT::
PUSH SP,AC0 ; SP,AC0 400624' 261 17 0 00 000000 0470
PUSH SP,AC10 ; SP,AC10 400625' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 400626' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 400627' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 400630' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 400631' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400632' 261 17 0 00 000016
ADJSP SP,17 ; SP,17 400633' 105 17 0 00 000017
PUSH SP,-33(SP) ; SP,FILBLK 400634' 261 17 0 17 777745 0526
PUSHJ SP,OBJ_OPEN ; SP,OBJ_OPEN 400635' 260 17 0 00 000000*
ADJSP SP,-1 ; SP,-1 400636' 105 17 0 00 777777
TRNN AC1,1 ; AC1,1 400637' 606 01 0 00 000001
JRST L.46 ; L.46 400640' 254 00 0 00 401175'
MOVEI AC1,-14(SP) ; AC1,TIME_BLOCK 400641' 201 01 0 17 777764 0552
MOVE AC13,AC1 ; AC13,AC1 400642' 200 13 0 00 000001
ADDI AC13,1 ; AC13,1 400643' 271 13 0 00 000001
MOVEI AC1,-14(SP) ; AC1,PRM_LIST 400644' 201 01 0 17 777764 0768
MOVE AC13,AC1 ; AC13,AC1 400645' 200 13 0 00 000001
ADDI AC13,1 ; AC13,1 400646' 271 13 0 00 000001
MOVEI AC1,-16(SP) ; AC1,MODULE_NAME 400647' 201 01 0 17 777762
ADDI AC1,1 ; AC1,1 400650' 271 01 0 00 000001
MOVEM AC1,-1(SP) ; AC1,-1(SP) 400651' 202 01 0 17 777777
L.29: PUSHJ SP,OBJ_MARK ; SP,OBJ_MARK 400652' 260 17 0 00 000000* 0533
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 29
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
PUSHJ SP,OBJ_RECORD ; SP,OBJ_RECORD 400653' 260 17 0 00 000000* 0535
JUMPL AC1,L.60 ; AC1,L.60 400654' 321 01 0 00 401351'
MOVSI AC1,177777 ; AC1,177777 400655' 205 01 0 00 177777 0545
ANDCAM AC1,HDR ; AC1,HDR 400656' 412 01 0 00 010001'
MOVE AC1,-27(SP) ; AC1,SS 400657' 200 01 0 17 777751 0547
DPB AC1,C.26 ; AC1,[POINT 1,HDR,9] <26,1> 400660' 137 01 0 00 401364'
MOVEI AC1,177777 ; AC1,177777 400661' 201 01 0 00 177777 0548
ANDCAM AC1,HDR ; AC1,HDR 400662' 412 01 0 00 010001'
MOVEI AC1,22 ; AC1,22 400663' 201 01 0 00 000022 0549
DPB AC1,C.1 ; AC1,[POINT 16,HDR+1,17] <18,16> 400664' 137 01 0 00 400047'
MOVEI AC1,-14(SP) ; AC1,TIME_BLOCK 400665' 201 01 0 17 777764 0550
PUSH SP,AC1 ; SP,AC1 400666' 261 17 0 00 000001
PUSHJ SP,GETTIM ; SP,GETTIM 400667' 260 17 0 00 000000*
MOVE AC1,-15(SP) ; AC1,TIME_BLOCK 400670' 200 01 0 17 777763 0551
DPB AC1,C.27 ; AC1,[POINT 16,HDR+1,35] <0,16> 400671' 137 01 0 00 401365'
MOVE AC1,0(AC13) ; AC1,0(AC13) 400672' 200 01 0 13 000000 0552
DPB AC1,C.28 ; AC1,[POINT 16,HDR+2,17] <18,16> 400673' 137 01 0 00 401366'
MOVE AC1,-13(SP) ; AC1,TIME_BLOCK+2 400674' 200 01 0 17 777765 0553
DPB AC1,C.29 ; AC1,[POINT 16,HDR+2,35] <0,16> 400675' 137 01 0 00 401367'
MOVE AC1,LIBHDR ; AC1,LIBHDR 400676' 200 01 0 00 000000* 0558
LDB AC10,C.30 ; INSERT_BLOCK,[POINT 16,12(AC1),35] <0,16>
; 400677' 135 10 0 00 401370'
LDB AC14,C.31 ; INSERT_OFFSET,[POINT 16,13(AC1),17] <18,16>
; 400700' 135 14 0 00 401371' 0559
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 400701' 261 17 0 00 010022' 0560
PUSH SP,AC10 ; SP,INSERT_BLOCK 400702' 261 17 0 00 000010
MOVE AC1,AC14 ; AC1,INSERT_OFFSET 400703' 200 01 0 00 000014
ADDI AC1,22 ; AC1,22 400704' 271 01 0 00 000022
PUSH SP,AC1 ; SP,AC1 400705' 261 17 0 00 000001
PUSHJ SP,POSFIL ; SP,POSFIL 400706' 260 17 0 00 000000*
SETZB AC11,-4(SP) ; DELETE_BLOCK,DELETE_OFFSET 400707' 403 11 0 17 777774 0561
PUSHJ SP,OBJ_SET ; SP,OBJ_SET 400710' 260 17 0 00 000000* 0569
L.30: PUSHJ SP,OBJ_RECORD ; SP,OBJ_RECORD 400711' 260 17 0 00 000000* 0574
MOVE AC12,AC1 ; RECORD_COUNT,AC1 400712' 200 12 0 00 000001
SUBI AC12,2 ; RECORD_COUNT,2 400713' 275 12 0 00 000002
JUMPGE AC12,L.31 ; RECORD_COUNT,L.31 400714' 325 12 0 00 400724'
MOVEI AC1,FILNM ; AC1,FILNM 400715' 201 01 0 00 000000* 0576
MOVEM AC1,-20(SP) ; AC1,PRM_LIST 400716' 202 01 0 17 777760
MOVE AC1,-37(SP) ; AC1,FILBLK 400717' 200 01 0 17 777741
MOVEM AC1,0(AC13) ; AC1,0(AC13) 400720' 202 01 0 13 000000
PUSH SP,C.6 ; SP,[1] 400721' 261 17 0 00 400054'
PUSH SP,C.37 ; SP,[POINT 7,P.AAC-1,34] <1,7> 400722' 261 17 0 00 401377'
JRST L.34 ; L.34 400723' 254 00 0 00 400747'
L.31: PUSHJ SP,OBJ_WORD ; SP,OBJ_WORD 400724' 260 17 0 00 000000* 0578
MOVE AC0,AC1 ; RECORD_TYPE,AC1 400725' 200 00 0 00 000001
MOVE AC1,AC0 ; AC1,RECORD_TYPE 400726' 200 01 0 00 000000
SOJL AC1,L.33 ; AC1,L.33 400727' 361 01 0 00 400741'
CAIGE AC1,6 ; AC1,6 400730' 305 01 0 00 000006
JRST L.32(AC1) ; L.32(AC1) 400731' 254 00 0 01 400733'
JRST L.33 ; L.33 400732' 254 00 0 00 400741'
L.32: JRST L.35 ; L.35 400733' 254 00 0 00 400755'
JRST L.50 ; L.50 400734' 254 00 0 00 401207'
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 30
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
JRST L.30 ; L.30 400735' 254 00 0 00 400711'
JRST L.30 ; L.30 400736' 254 00 0 00 400711'
JRST L.30 ; L.30 400737' 254 00 0 00 400711'
JRST L.30 ; L.30 400740' 254 00 0 00 400711'
L.33: MOVEI AC1,FILNM ; AC1,FILNM 400741' 201 01 0 00 000000* 0691
MOVEM AC1,-20(SP) ; AC1,PRM_LIST 400742' 202 01 0 17 777760
MOVE AC1,-37(SP) ; AC1,FILBLK 400743' 200 01 0 17 777741
MOVEM AC1,0(AC13) ; AC1,0(AC13) 400744' 202 01 0 13 000000
PUSH SP,C.6 ; SP,[1] 400745' 261 17 0 00 400054'
PUSH SP,C.38 ; SP,[POINT 7,P.AAI-1,34] <1,7> 400746' 261 17 0 00 401400'
L.34: MOVEI AC1,-22(SP) ; AC1,PRM_LIST 400747' 201 01 0 17 777756
PUSH SP,AC1 ; SP,AC1 400750' 261 17 0 00 000001
PUSHJ SP,TYPLIN ; SP,TYPLIN 400751' 260 17 0 00 000000*
PUSHJ SP,OBJ_CLOSE ; SP,OBJ_CLOSE 400752' 260 17 0 00 000000*
ADJSP SP,-7 ; SP,-7 400753' 105 17 0 00 777771
JRST L.46 ; L.46 400754' 254 00 0 00 401175'
L.35: MOVE AC1,AC12 ; AC1,RECORD_COUNT 400755' 200 01 0 00 000012 0583
ADDI AC1,2 ; AC1,2 400756' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 400757' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 400760' 260 17 0 00 400000'
MOVEM AC0,0(SP) ; RECORD_TYPE,0(SP) 400761' 202 00 0 17 000000 0584
PUSHJ SP,COPY ; SP,COPY 400762' 260 17 0 00 400000'
L.36: SUBI AC12,10 ; RECORD_COUNT,10 400763' 275 12 0 00 000010 0586
JUMPL AC12,L.49 ; RECORD_COUNT,L.49 400764' 321 12 0 00 401205'
PUSHJ SP,OBJ_WORD ; SP,OBJ_WORD 400765' 260 17 0 00 000000* 0593
PUSH SP,AC1 ; SP,AC1 400766' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 400767' 260 17 0 00 400000'
MOVEM AC1,-22(SP) ; AC1,NAME 400770' 202 01 0 17 777756
PUSHJ SP,OBJ_WORD ; SP,OBJ_WORD 400771' 260 17 0 00 000000* 0594
PUSH SP,AC1 ; SP,AC1 400772' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 400773' 260 17 0 00 400000'
MOVEM AC1,0(AC13) ; AC1,0(AC13) 400774' 202 01 0 13 000000
PUSHJ SP,OBJ_WORD ; SP,OBJ_WORD 400775' 260 17 0 00 000000* 0595
PUSH SP,AC1 ; SP,AC1 400776' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 400777' 260 17 0 00 400000'
MOVE AC16,AC1 ; TYPE,AC1 401000' 200 16 0 00 000001
PUSHJ SP,OBJ_WORD ; SP,OBJ_WORD 401001' 260 17 0 00 000000* 0596
PUSH SP,AC1 ; SP,AC1 401002' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 401003' 260 17 0 00 400000'
LDB AC1,C.32 ; AC1,[POINT 8,TYPE,27] <8,8> 401004' 135 01 0 00 401372' 0598
JUMPL AC1,L.38 ; AC1,L.38 401005' 321 01 0 00 401021'
CAIGE AC1,10 ; AC1,10 401006' 305 01 0 00 000010
JRST L.37(AC1) ; L.37(AC1) 401007' 254 00 0 01 401011'
JRST L.38 ; L.38 401010' 254 00 0 00 401021'
L.37: JRST L.39 ; L.39 401011' 254 00 0 00 401030'
JRST L.48 ; L.48 401012' 254 00 0 00 401203'
JRST L.48 ; L.48 401013' 254 00 0 00 401203'
JRST L.48 ; L.48 401014' 254 00 0 00 401203'
JRST L.42 ; L.42 401015' 254 00 0 00 401115'
JRST L.48 ; L.48 401016' 254 00 0 00 401203'
JRST L.47 ; L.47 401017' 254 00 0 00 401177'
JRST L.48 ; L.48 401020' 254 00 0 00 401203'
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 31
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
L.38: MOVEI AC1,FILNM ; AC1,FILNM 401021' 201 01 0 00 000000* 0673
MOVEM AC1,-23(SP) ; AC1,PRM_LIST 401022' 202 01 0 17 777755
MOVE AC1,-44(SP) ; AC1,FILBLK 401023' 200 01 0 17 777734
MOVEM AC1,-22(SP) ; AC1,PRM_LIST+1 401024' 202 01 0 17 777756
PUSH SP,C.6 ; SP,[1] 401025' 261 17 0 00 400054'
PUSH SP,C.39 ; SP,[POINT 7,P.AAH-1,34] <1,7> 401026' 261 17 0 00 401401'
JRST L.45 ; L.45 401027' 254 00 0 00 401170'
L.39: MOVE AC1,-25(SP) ; AC1,NAME 401030' 200 01 0 17 777753 0607
MOVEM AC1,-27(SP) ; AC1,MODULE_NAME 401031' 202 01 0 17 777751
MOVE AC1,0(AC13) ; AC1,0(AC13) 401032' 200 01 0 13 000000 0608
MOVEM AC1,-26(SP) ; AC1,MODULE_NAME+1 401033' 202 01 0 17 777752
MOVEI AC1,-25(SP) ; AC1,NAME 401034' 201 01 0 17 777753 0610
PUSH SP,AC1 ; SP,AC1 401035' 261 17 0 00 000001
PUSHJ SP,MNT_INDEX ; SP,MNT_INDEX 401036' 260 17 0 00 000000V
ADJSP SP,-1 ; SP,-1 401037' 105 17 0 00 777777
JUMPL AC1,L.41 ; INDEX,L.41 401040' 321 01 0 00 401076'
MOVEI AC2,1 ; AC2,1 401041' 201 02 0 00 000001 0613
TDNN AC2,-43(SP) ; AC2,REPLACE 401042' 616 02 0 17 777735
JRST L.40 ; L.40 401043' 254 00 0 00 401063'
MOVE AC2,LIBMNT ; AC2,LIBMNT 401044' 200 02 0 00 000000* 0616
IMULI AC1,2 ; INDEX,2 401045' 221 01 0 00 000002
ADD AC2,AC1 ; AC2,AC1 401046' 270 02 0 00 000001
LDB AC11,C.33 ; DELETE_BLOCK,[POINT 16,1(AC2),17] <18,16>
; 401047' 135 11 0 00 401373'
LDB AC1,C.34 ; AC1,[POINT 16,1(AC2),35] <0,16> 401050' 135 01 0 00 401374' 0617
MOVEM AC1,-11(SP) ; AC1,DELETE_OFFSET 401051' 202 01 0 17 777767
MOVEM AC11,-1(SP) ; DELETE_BLOCK,-1(SP) 401052' 202 11 0 17 777777 0618
MOVE AC1,-11(SP) ; AC1,DELETE_OFFSET 401053' 200 01 0 17 777767
MOVEM AC1,0(SP) ; AC1,0(SP) 401054' 202 01 0 17 000000
PUSHJ SP,EPT_PURGE ; SP,EPT_PURGE 401055' 260 17 0 00 400404'
MOVEM AC11,-1(SP) ; DELETE_BLOCK,-1(SP) 401056' 202 11 0 17 777777 0619
MOVE AC1,-11(SP) ; AC1,DELETE_OFFSET 401057' 200 01 0 17 777767
MOVEM AC1,0(SP) ; AC1,0(SP) 401060' 202 01 0 17 000000
PUSHJ SP,MNT_PURGE ; SP,MNT_PURGE 401061' 260 17 0 00 000000V
JRST L.41 ; L.41 401062' 254 00 0 00 401076' 0613
L.40: MOVE AC1,-25(SP) ; AC1,NAME 401063' 200 01 0 17 777753 0623
MOVEM AC1,-23(SP) ; AC1,PRM_LIST 401064' 202 01 0 17 777755
MOVE AC1,0(AC13) ; AC1,0(AC13) 401065' 200 01 0 13 000000
MOVEM AC1,-22(SP) ; AC1,PRM_LIST+1 401066' 202 01 0 17 777756
MOVEI AC1,FILNM ; AC1,FILNM 401067' 201 01 0 00 000000*
MOVEM AC1,-21(SP) ; AC1,PRM_LIST+2 401070' 202 01 0 17 777757
MOVE AC1,LIB_FILBLK ; AC1,LIB_FILBLK 401071' 200 01 0 00 010022'
MOVEM AC1,-20(SP) ; AC1,PRM_LIST+3 401072' 202 01 0 17 777760
PUSH SP,C.6 ; SP,[1] 401073' 261 17 0 00 400054'
PUSH SP,C.40 ; SP,[POINT 7,P.AAD-1,34] <1,7> 401074' 261 17 0 00 401402'
JRST L.45 ; L.45 401075' 254 00 0 00 401170'
L.41: MOVEI AC1,-25(SP) ; AC1,NAME 401076' 201 01 0 17 777753 0625
PUSH SP,AC1 ; SP,AC1 401077' 261 17 0 00 000001
PUSH SP,AC10 ; SP,INSERT_BLOCK 401100' 261 17 0 00 000010
PUSH SP,AC14 ; SP,INSERT_OFFSET 401101' 261 17 0 00 000014
PUSHJ SP,MNT_INSERT ; SP,MNT_INSERT 401102' 260 17 0 00 000000V
ADJSP SP,-3 ; SP,-3 401103' 105 17 0 00 777775
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 32
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
TRNE AC1,1 ; AC1,1 401104' 602 01 0 00 000001
JRST L.48 ; L.48 401105' 254 00 0 00 401203'
MOVEI AC1,FILNM ; AC1,FILNM 401106' 201 01 0 00 000000* 0627
MOVEM AC1,-23(SP) ; AC1,PRM_LIST 401107' 202 01 0 17 777755
MOVE AC1,LIB_FILBLK ; AC1,LIB_FILBLK 401110' 200 01 0 00 010022'
MOVEM AC1,-22(SP) ; AC1,PRM_LIST+1 401111' 202 01 0 17 777756
PUSH SP,C.6 ; SP,[1] 401112' 261 17 0 00 400054'
PUSH SP,C.41 ; SP,[POINT 7,P.AAE-1,34] <1,7> 401113' 261 17 0 00 401403'
JRST L.45 ; L.45 401114' 254 00 0 00 401170'
L.42: MOVEI AC1,1 ; AC1,1 401115' 201 01 0 00 000001 0633
TDNE AC1,-42(SP) ; AC1,EPT 401116' 612 01 0 17 777736
TRNN AC16,10 ; TYPE,10 401117' 606 16 0 00 000010
JRST L.48 ; L.48 401120' 254 00 0 00 401203'
MOVEI AC1,-25(SP) ; AC1,NAME 401121' 201 01 0 17 777753 0640
PUSH SP,AC1 ; SP,AC1 401122' 261 17 0 00 000001
PUSHJ SP,EPT_INDEX ; SP,EPT_INDEX 401123' 260 17 0 00 400235'
ADJSP SP,-1 ; SP,-1 401124' 105 17 0 00 777777
JUMPL AC1,L.44 ; INDEX,L.44 401125' 321 01 0 00 401152'
MOVEI AC2,1 ; AC2,1 401126' 201 02 0 00 000001 0644
TDNN AC2,-41(SP) ; AC2,RG 401127' 616 02 0 17 777737
JRST L.43 ; L.43 401130' 254 00 0 00 401137'
MOVE AC2,LIBEPT ; AC2,LIBEPT 401131' 200 02 0 00 000000* 0647
IMULI AC1,2 ; INDEX,2 401132' 221 01 0 00 000002
ADD AC2,AC1 ; AC2,AC1 401133' 270 02 0 00 000001
DPB AC10,C.33 ; INSERT_BLOCK,[POINT 16,1(AC2),17] <18,16>
; 401134' 137 10 0 00 401373'
DPB AC14,C.34 ; INSERT_OFFSET,[POINT 16,1(AC2),35] <0,16>
; 401135' 137 14 0 00 401374' 0648
JRST L.48 ; L.48 401136' 254 00 0 00 401203' 0644
L.43: MOVE AC1,-25(SP) ; AC1,NAME 401137' 200 01 0 17 777753 0652
MOVEM AC1,-23(SP) ; AC1,PRM_LIST 401140' 202 01 0 17 777755
MOVE AC1,0(AC13) ; AC1,0(AC13) 401141' 200 01 0 13 000000
MOVEM AC1,-22(SP) ; AC1,PRM_LIST+1 401142' 202 01 0 17 777756
MOVEI AC1,FILNM ; AC1,FILNM 401143' 201 01 0 00 000000*
MOVEM AC1,-21(SP) ; AC1,PRM_LIST+2 401144' 202 01 0 17 777757
MOVE AC1,LIB_FILBLK ; AC1,LIB_FILBLK 401145' 200 01 0 00 010022'
MOVEM AC1,-20(SP) ; AC1,PRM_LIST+3 401146' 202 01 0 17 777760
PUSH SP,C.6 ; SP,[1] 401147' 261 17 0 00 400054'
PUSH SP,C.42 ; SP,[POINT 7,P.AAF-1,34] <1,7> 401150' 261 17 0 00 401404'
JRST L.45 ; L.45 401151' 254 00 0 00 401170'
L.44: MOVEI AC1,-25(SP) ; AC1,NAME 401152' 201 01 0 17 777753 0657
PUSH SP,AC1 ; SP,AC1 401153' 261 17 0 00 000001
PUSH SP,AC10 ; SP,INSERT_BLOCK 401154' 261 17 0 00 000010
PUSH SP,AC14 ; SP,INSERT_OFFSET 401155' 261 17 0 00 000014
PUSHJ SP,EPT_INSERT ; SP,EPT_INSERT 401156' 260 17 0 00 400265'
ADJSP SP,-3 ; SP,-3 401157' 105 17 0 00 777775
TRNE AC1,1 ; AC1,1 401160' 602 01 0 00 000001
JRST L.48 ; L.48 401161' 254 00 0 00 401203'
MOVEI AC1,FILNM ; AC1,FILNM 401162' 201 01 0 00 000000* 0659
MOVEM AC1,-23(SP) ; AC1,PRM_LIST 401163' 202 01 0 17 777755
MOVE AC1,LIB_FILBLK ; AC1,LIB_FILBLK 401164' 200 01 0 00 010022'
MOVEM AC1,-22(SP) ; AC1,PRM_LIST+1 401165' 202 01 0 17 777756
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 33
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
PUSH SP,C.6 ; SP,[1] 401166' 261 17 0 00 400054'
PUSH SP,C.43 ; SP,[POINT 7,P.AAG-1,34] <1,7> 401167' 261 17 0 00 401405'
L.45: MOVEI AC1,-25(SP) ; AC1,PRM_LIST 401170' 201 01 0 17 777753
PUSH SP,AC1 ; SP,AC1 401171' 261 17 0 00 000001
PUSHJ SP,TYPLIN ; SP,TYPLIN 401172' 260 17 0 00 000000*
PUSHJ SP,OBJ_CLOSE ; SP,OBJ_CLOSE 401173' 260 17 0 00 000000*
ADJSP SP,-14 ; SP,-14 401174' 105 17 0 00 777764
L.46: SETZ AC1, ; AC1, 401175' 400 01 0 00 000000
JRST L.61 ; L.61 401176' 254 00 0 00 401353'
L.47: MOVE AC1,-25(SP) ; AC1,NAME 401177' 200 01 0 17 777753 0665
DPB AC1,C.35 ; AC1,[POINT 16,HDR+3,17] <18,16> 401200' 137 01 0 00 401375'
MOVE AC1,0(AC13) ; AC1,0(AC13) 401201' 200 01 0 13 000000 0666
DPB AC1,C.36 ; AC1,[POINT 16,HDR+3,35] <0,16> 401202' 137 01 0 00 401376'
L.48: ADJSP SP,-4 ; SP,-4 401203' 105 17 0 00 777774 0587
JRST L.36 ; L.36 401204' 254 00 0 00 400763' 0586
L.49: ADJSP SP,-1 ; SP,-1 401205' 105 17 0 00 777777 0582
JRST L.30 ; L.30 401206' 254 00 0 00 400711' 0578
L.50: MOVE AC1,AC12 ; AC1,RECORD_COUNT 401207' 200 01 0 00 000012 0686
ADDI AC1,2 ; AC1,2 401210' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401211' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 401212' 260 17 0 00 400000'
ADJSP SP,-1 ; SP,-1 401213' 105 17 0 00 777777
MOVEM AC0,0(SP) ; RECORD_TYPE,0(SP) 401214' 202 00 0 17 000000 0687
PUSHJ SP,COPY ; SP,COPY 401215' 260 17 0 00 400000'
PUSHJ SP,OBJ_SET ; SP,OBJ_SET 401216' 260 17 0 00 000000* 0699
L.51: PUSHJ SP,OBJ_RECORD ; SP,OBJ_RECORD 401217' 260 17 0 00 000000* 0703
MOVE AC12,AC1 ; RECORD_COUNT,AC1 401220' 200 12 0 00 000001
SUBI AC12,2 ; RECORD_COUNT,2 401221' 275 12 0 00 000002
PUSHJ SP,OBJ_WORD ; SP,OBJ_WORD 401222' 260 17 0 00 000000* 0705
MOVE AC0,AC1 ; RECORD_TYPE,AC1 401223' 200 00 0 00 000001
MOVE AC1,AC0 ; AC1,RECORD_TYPE 401224' 200 01 0 00 000000
SUBI AC1,1 ; AC1,1 401225' 275 01 0 00 000001
JRST L.52(AC1) ; L.52(AC1) 401226' 254 00 0 01 401227'
L.52: JRST L.51 ; L.51 401227' 254 00 0 00 401217'
JRST L.51 ; L.51 401230' 254 00 0 00 401217'
JRST L.53 ; L.53 401231' 254 00 0 00 401235'
JRST L.53 ; L.53 401232' 254 00 0 00 401235'
JRST L.53 ; L.53 401233' 254 00 0 00 401235'
JRST L.56 ; L.56 401234' 254 00 0 00 401254'
L.53: MOVE AC1,AC12 ; AC1,RECORD_COUNT 401235' 200 01 0 00 000012 0713
ADDI AC1,2 ; AC1,2 401236' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401237' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 401240' 260 17 0 00 400000'
MOVEM AC0,0(SP) ; RECORD_TYPE,0(SP) 401241' 202 00 0 17 000000 0714
PUSHJ SP,COPY ; SP,COPY 401242' 260 17 0 00 400000'
L.54: SUBI AC12,2 ; RECORD_COUNT,2 401243' 275 12 0 00 000002 0716
JUMPL AC12,L.55 ; RECORD_COUNT,L.55 401244' 321 12 0 00 401252'
PUSHJ SP,OBJ_WORD ; SP,OBJ_WORD 401245' 260 17 0 00 000000* 0717
PUSH SP,AC1 ; SP,AC1 401246' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 401247' 260 17 0 00 400000'
ADJSP SP,-1 ; SP,-1 401250' 105 17 0 00 777777
JRST L.54 ; L.54 401251' 254 00 0 00 401243' 0716
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 34
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
L.55: ADJSP SP,-1 ; SP,-1 401252' 105 17 0 00 777777 0712
JRST L.51 ; L.51 401253' 254 00 0 00 401217' 0705
L.56: MOVE AC1,AC12 ; AC1,RECORD_COUNT 401254' 200 01 0 00 000012 0724
ADDI AC1,2 ; AC1,2 401255' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401256' 261 17 0 00 000001
PUSHJ SP,COPY ; SP,COPY 401257' 260 17 0 00 400000'
ADJSP SP,-1 ; SP,-1 401260' 105 17 0 00 777777
MOVEM AC0,0(SP) ; RECORD_TYPE,0(SP) 401261' 202 00 0 17 000000 0725
PUSHJ SP,COPY ; SP,COPY 401262' 260 17 0 00 400000'
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401263' 261 17 0 00 010022' 0740
MOVEI AC1,-7(SP) ; AC1,BLOCK 401264' 201 01 0 17 777771
PUSH SP,AC1 ; SP,AC1 401265' 261 17 0 00 000001
MOVEI AC1,-11(SP) ; AC1,OFFSET 401266' 201 01 0 17 777767
PUSH SP,AC1 ; SP,AC1 401267' 261 17 0 00 000001
PUSHJ SP,FILPOS ; SP,FILPOS 401270' 260 17 0 00 000000*
MOVE AC1,LIBHDR ; AC1,LIBHDR 401271' 200 01 0 00 000000* 0741
MOVE AC2,-11(SP) ; AC2,BLOCK 401272' 200 02 0 17 777767
DPB AC2,C.30 ; AC2,[POINT 16,12(AC1),35] <0,16> 401273' 137 02 0 00 401370'
MOVE AC2,-12(SP) ; AC2,OFFSET 401274' 200 02 0 17 777766 0742
DPB AC2,C.31 ; AC2,[POINT 16,13(AC1),17] <18,16> 401275' 137 02 0 00 401371'
MOVEI AC1,1 ; AC1,1 401276' 201 01 0 00 000001 0743
MOVEM AC1,HDR_CHANGED ; AC1,HDR_CHANGED 401277' 202 01 0 00 010021'
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401300' 261 17 0 00 010022' 0753
PUSH SP,AC10 ; SP,INSERT_BLOCK 401301' 261 17 0 00 000010
PUSH SP,AC14 ; SP,INSERT_OFFSET 401302' 261 17 0 00 000014
PUSHJ SP,POSFIL ; SP,POSFIL 401303' 260 17 0 00 000000*
MOVEI AC2,20 ; AC2,20 401304' 201 02 0 00 000020 0754
MOVEI AC1,-17(SP) ; AC1,LENGTH-1 401305' 201 01 0 17 777761
HRLI AC1,2200 ; AC1,2200 401306' 505 01 0 00 002200
IDPB AC2,AC1 ; AC2,AC1 401307' 136 02 0 00 000001
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401310' 261 17 0 00 010022' 0755
MOVEI AC1,-20(SP) ; AC1,LENGTH-1 401311' 201 01 0 17 777760
HRLI AC1,2200 ; AC1,2200 401312' 505 01 0 00 002200
PUSH SP,AC1 ; SP,AC1 401313' 261 17 0 00 000001
PUSH SP,C.6 ; SP,[1] 401314' 261 17 0 00 400054'
PUSHJ SP,PUTFIL ; SP,PUTFIL 401315' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401316' 261 17 0 00 010022' 0756
PUSH SP,C.44 ; SP,[POINT 18,HDR-1,35] <0,18> 401317' 261 17 0 00 401406'
PUSH SP,C.45 ; SP,[10] 401320' 261 17 0 00 401407'
PUSHJ SP,PUTFIL ; SP,PUTFIL 401321' 260 17 0 00 000000*
JUMPE AC11,L.57 ; DELETE_BLOCK,L.57 401322' 322 11 0 00 401327' 0762
MOVEM AC11,-1(SP) ; DELETE_BLOCK,-1(SP) 401323' 202 11 0 17 777777
MOVE AC1,-20(SP) ; AC1,DELETE_OFFSET 401324' 200 01 0 17 777760
MOVEM AC1,0(SP) ; AC1,0(SP) 401325' 202 01 0 17 000000
PUSHJ SP,HDR_DELETE ; SP,HDR_DELETE 401326' 260 17 0 00 000000V
L.57: MOVEI AC1,40 ; AC1,40 401327' 201 01 0 00 000040 0764
TDNN AC1,FLAGS ; AC1,FLAGS 401330' 616 01 0 00 000000*
PUSHJ SP,LIBUPD ; SP,LIBUPD 401331' 260 17 0 00 000000V
MOVE AC1,-36(SP) ; AC1,MODULE_NAME 401332' 200 01 0 17 777742 0768
MOVEM AC1,-34(SP) ; AC1,PRM_LIST 401333' 202 01 0 17 777744
MOVE AC2,-21(SP) ; AC2,-21(SP) 401334' 200 02 0 17 777757
MOVE AC1,0(AC2) ; AC1,0(AC2) 401335' 200 01 0 02 000000
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 35
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)
MOVEM AC1,0(AC13) ; AC1,0(AC13) 401336' 202 01 0 13 000000
SETZM 0(SP) ; 0(SP) 401337' 402 00 0 17 000000
JUMPN AC11,L.58 ; DELETE_BLOCK,L.58 401340' 326 11 0 00 401343'
PUSH SP,C.46 ; SP,[POINT 7,P.AAJ-1,34] <1,7> 401341' 261 17 0 00 401410'
JRST L.59 ; L.59 401342' 254 00 0 00 401344'
L.58: PUSH SP,C.47 ; SP,[POINT 7,P.AAK-1,34] <1,7> 401343' 261 17 0 00 401411'
L.59: MOVEI AC1,-35(SP) ; AC1,PRM_LIST 401344' 201 01 0 17 777743
PUSH SP,AC1 ; SP,AC1 401345' 261 17 0 00 000001
PUSHJ SP,TYPLIN ; SP,TYPLIN 401346' 260 17 0 00 000000*
ADJSP SP,-22 ; SP,-22 401347' 105 17 0 00 777756 0529
JRST L.29 ; L.29 401350' 254 00 0 00 400652' 0528
L.60: PUSHJ SP,OBJ_CLOSE ; SP,OBJ_CLOSE 401351' 260 17 0 00 000000* 0774
MOVEI AC1,1 ; AC1,1 401352' 201 01 0 00 000001 0470
L.61: ADJSP SP,-17 ; SP,-17 401353' 105 17 0 00 777761
POP SP,AC16 ; SP,AC16 401354' 262 17 0 00 000016
POP SP,AC14 ; SP,AC14 401355' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 401356' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 401357' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 401360' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 401361' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 401362' 262 17 0 00 000000
POPJ SP, ; SP, 401363' 263 17 0 00 000000
C.26: POINT 1,HDR,9 ; 1,HDR,9 401364' 32 01 0 00 010001'
C.27: POINT 16,HDR+1,35 ; 16,HDR+1,35 401365' 00 20 0 00 010002'
C.28: POINT 16,HDR+2,17 ; 16,HDR+2,17 401366' 22 20 0 00 010003'
C.29: POINT 16,HDR+2,35 ; 16,HDR+2,35 401367' 00 20 0 00 010003'
C.30: POINT 16,12(AC1),35 ; 16,12(AC1),35 401370' 00 20 0 01 000012
C.31: POINT 16,13(AC1),17 ; 16,13(AC1),17 401371' 22 20 0 01 000013
C.32: POINT 8,AC16,27 ; 8,TYPE,27 401372' 10 10 0 00 000016
C.33: POINT 16,1(AC2),17 ; 16,1(AC2),17 401373' 22 20 0 02 000001
C.34: POINT 16,1(AC2),35 ; 16,1(AC2),35 401374' 00 20 0 02 000001
C.35: POINT 16,HDR+3,17 ; 16,HDR+3,17 401375' 22 20 0 00 010004'
C.36: POINT 16,HDR+3,35 ; 16,HDR+3,35 401376' 00 20 0 00 010004'
C.37: POINT 7,P.AAC-1,34 ; 7,P.AAC-1,34 401377' 01 07 0 00 400502'
C.38: POINT 7,P.AAI-1,34 ; 7,P.AAI-1,34 401400' 01 07 0 00 400576'
C.39: POINT 7,P.AAH-1,34 ; 7,P.AAH-1,34 401401' 01 07 0 00 400563'
C.40: POINT 7,P.AAD-1,34 ; 7,P.AAD-1,34 401402' 01 07 0 00 400515'
C.41: POINT 7,P.AAE-1,34 ; 7,P.AAE-1,34 401403' 01 07 0 00 400530'
C.42: POINT 7,P.AAF-1,34 ; 7,P.AAF-1,34 401404' 01 07 0 00 400540'
C.43: POINT 7,P.AAG-1,34 ; 7,P.AAG-1,34 401405' 01 07 0 00 400553'
C.44: POINT 18,HDR-1,35 ; 18,HDR-1,35 401406' 00 22 0 00 010000'
C.45: EXP 10 ; 10 401407' 000000 000010
C.46: POINT 7,P.AAJ-1,34 ; 7,P.AAJ-1,34 401410' 01 07 0 00 400611'
C.47: POINT 7,P.AAK-1,34 ; 7,P.AAK-1,34 401411' 01 07 0 00 400616'
; Routine Size: 374 words
; 0777 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 36
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (8)
; 0778 1 ROUTINE HDR_DELETE (BLOCK, OFFSET) : NOVALUE =
; 0779 1
; 0780 1 !++
; 0781 1 ! FUNCTIONAL DESCRIPTION:
; 0782 1 !
; 0783 1 !
; 0784 1 !
; 0785 1 !
; 0786 1 ! FORMAL PARAMETERS:
; 0787 1 !
; 0788 1 !
; 0789 1 ! IMPLICIT INPUTS:
; 0790 1 !
; 0791 1 ! NONE
; 0792 1 !
; 0793 1 ! IMPLICIT OUTPUTS:
; 0794 1 !
; 0795 1 ! NONE
; 0796 1 !
; 0797 1 ! ROUTINE VALUE:
; 0798 1 !
; 0799 1 ! NONE
; 0800 1 !
; 0801 1 ! SIDE EFFECTS
; 0802 1 !
; 0803 1 ! NONE
; 0804 1 !
; 0805 1 !--
; 0806 1
; 0807 2 BEGIN
; 0808 2 POSFIL (.LIB_FILBLK, .BLOCK, .OFFSET + 2);
; 0809 2 GETFIL (.LIB_FILBLK, CH$PTR (HDR,, 18), HDR_SIZE/2);
; 0810 2 HDR [HDR_DELETED] = 1;
; 0811 2 POSFIL (.LIB_FILBLK, .BLOCK, .OFFSET + 2);
; 0812 2 PUTFIL (.LIB_FILBLK, CH$PTR (HDR,, 18), HDR_SIZE/2);
; 0813 2 !
; 0814 2 ! Add module size to deleted space
; 0815 2 !
; 0816 3 BEGIN
; 0817 3
; 0818 3 LOCAL
; 0819 3 OLD;
; 0820 3
; 0821 3 OLD = .LIBHDR [LIB_DELETED_2];
; 0822 3 LIBHDR [LIB_DELETED_2] = .LIBHDR [LIB_DELETED_2] + .HDR [HDR_SIZE_2];
; 0823 3
; 0824 3 IF .LIBHDR [LIB_DELETED_2] LSS MIN (.OLD, .HDR [HDR_SIZE_2])
; 0825 3 THEN
; 0826 3 LIBHDR [LIB_DELETED_1] = .LIBHDR [LIB_DELETED_1] + 1;
; 0827 3
; 0828 3 LIBHDR [LIB_DELETED_1] = .LIBHDR [LIB_DELETED_1] + .HDR [HDR_SIZE_1];
; 0829 2 END;
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 37
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (8)
; 0830 2 HDR_CHANGED = TRUE;
; 0831 1 END; !OF HDR_DELETE
HDR_DELETE:
PUSH SP,AC16 ; SP,AC16 401412' 261 17 0 00 000016 0778
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401413' 261 17 0 00 010022' 0808
PUSH SP,-4(SP) ; SP,BLOCK 401414' 261 17 0 17 777774
MOVE AC16,-4(SP) ; AC16,OFFSET 401415' 200 16 0 17 777774
ADDI AC16,2 ; AC16,2 401416' 271 16 0 00 000002
PUSH SP,AC16 ; SP,AC16 401417' 261 17 0 00 000016
PUSHJ SP,POSFIL ; SP,POSFIL 401420' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401421' 261 17 0 00 010022' 0809
PUSH SP,C.44 ; SP,[POINT 18,HDR-1,35] <0,18> 401422' 261 17 0 00 401406'
PUSH SP,C.45 ; SP,[10] 401423' 261 17 0 00 401407'
PUSHJ SP,GETFIL ; SP,GETFIL 401424' 260 17 0 00 000000*
MOVSI AC1,1 ; AC1,1 401425' 205 01 0 00 000001 0810
IORM AC1,HDR ; AC1,HDR 401426' 436 01 0 00 010001'
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401427' 261 17 0 00 010022' 0811
PUSH SP,-12(SP) ; SP,BLOCK 401430' 261 17 0 17 777766
PUSH SP,AC16 ; SP,AC16 401431' 261 17 0 00 000016
PUSHJ SP,POSFIL ; SP,POSFIL 401432' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401433' 261 17 0 00 010022' 0812
PUSH SP,C.44 ; SP,[POINT 18,HDR-1,35] <0,18> 401434' 261 17 0 00 401406'
PUSH SP,C.45 ; SP,[10] 401435' 261 17 0 00 401407'
PUSHJ SP,PUTFIL ; SP,PUTFIL 401436' 260 17 0 00 000000*
MOVE AC2,LIBHDR ; AC2,LIBHDR 401437' 200 02 0 00 000000* 0821
LDB AC1,C.48 ; OLD,[POINT 16,11(AC2),17] <18,16> 401440' 135 01 0 00 401467'
LDB AC3,C.48 ; AC3,[POINT 16,11(AC2),17] <18,16> 401441' 135 03 0 00 401467' 0822
LDB AC4,C.1 ; AC4,[POINT 16,HDR+1,17] <18,16> 401442' 135 04 0 00 400047'
ADD AC3,AC4 ; AC3,AC4 401443' 270 03 0 00 000004
DPB AC3,C.48 ; AC3,[POINT 16,11(AC2),17] <18,16> 401444' 137 03 0 00 401467'
LDB AC3,C.1 ; AC3,[POINT 16,HDR+1,17] <18,16> 401445' 135 03 0 00 400047' 0824
CAMLE AC1,AC3 ; AC1,AC3 401446' 313 01 0 00 000003
LDB AC1,C.1 ; AC1,[POINT 16,HDR+1,17] <18,16> 401447' 135 01 0 00 400047'
LDB AC3,C.48 ; AC3,[POINT 16,11(AC2),17] <18,16> 401450' 135 03 0 00 401467'
CAML AC3,AC1 ; AC3,AC1 401451' 311 03 0 00 000001
JRST L.62 ; L.62 401452' 254 00 0 00 401456'
LDB AC1,C.49 ; AC1,[POINT 16,10(AC2),35] <0,16> 401453' 135 01 0 00 401470' 0826
ADDI AC1,1 ; AC1,1 401454' 271 01 0 00 000001
DPB AC1,C.49 ; AC1,[POINT 16,10(AC2),35] <0,16> 401455' 137 01 0 00 401470'
L.62: LDB AC1,C.49 ; AC1,[POINT 16,10(AC2),35] <0,16> 401456' 135 01 0 00 401470' 0828
LDB AC3,C.2 ; AC3,[POINT 16,HDR,35] <0,16> 401457' 135 03 0 00 400050'
ADD AC1,AC3 ; AC1,AC3 401460' 270 01 0 00 000003
DPB AC1,C.49 ; AC1,[POINT 16,10(AC2),35] <0,16> 401461' 137 01 0 00 401470'
MOVEI AC1,1 ; AC1,1 401462' 201 01 0 00 000001 0830
MOVEM AC1,HDR_CHANGED ; AC1,HDR_CHANGED 401463' 202 01 0 00 010021'
ADJSP SP,-14 ; SP,-14 401464' 105 17 0 00 777764 0807
POP SP,AC16 ; SP,AC16 401465' 262 17 0 00 000016 0778
POPJ SP, ; SP, 401466' 263 17 0 00 000000
C.48: POINT 16,11(AC2),17 ; 16,11(AC2),17 401467' 22 20 0 02 000011
C.49: POINT 16,10(AC2),35 ; 16,10(AC2),35 401470' 00 20 0 02 000010
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 38
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (8)
; Routine Size: 47 words
; 0832 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 39
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (9)
; 0833 1 GLOBAL ROUTINE LIBCLS : NOVALUE =
; 0834 1
; 0835 1 !++
; 0836 1 ! FUNCTIONAL DESCRIPTION:
; 0837 1 !
; 0838 1 !
; 0839 1 !
; 0840 1 !
; 0841 1 ! FORMAL PARAMETERS:
; 0842 1 !
; 0843 1 !
; 0844 1 ! IMPLICIT INPUTS:
; 0845 1 !
; 0846 1 ! NONE
; 0847 1 !
; 0848 1 ! IMPLICIT OUTPUTS:
; 0849 1 !
; 0850 1 ! NONE
; 0851 1 !
; 0852 1 ! ROUTINE VALUE:
; 0853 1 !
; 0854 1 ! NONE
; 0855 1 !
; 0856 1 ! SIDE EFFECTS
; 0857 1 !
; 0858 1 ! NONE
; 0859 1 !
; 0860 1 !--
; 0861 1
; 0862 2 BEGIN
; 0863 2 LIBMNT = 0;
; 0864 2 LIBEPT = 0;
; 0865 2 LIBHDR = 0;
; 0866 2 CLOSE (.LIB_FILBLK);
; 0867 1 END; !OF LIBCLS
LIBCLS::SETZM LIBMNT ; LIBMNT 401471' 402 00 0 00 000000* 0863
SETZM LIBEPT ; LIBEPT 401472' 402 00 0 00 000000* 0864
SETZM LIBHDR ; LIBHDR 401473' 402 00 0 00 000000* 0865
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401474' 261 17 0 00 010022' 0866
PUSHJ SP,CLOSE ; SP,CLOSE 401475' 260 17 0 00 000000*
ADJSP SP,-1 ; SP,-1 401476' 105 17 0 00 777777 0862
POPJ SP, ; SP, 401477' 263 17 0 00 000000 0833
; Routine Size: 7 words
; 0868 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 40
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (10)
; 0869 1 GLOBAL ROUTINE LIBUPD : NOVALUE =
; 0870 1
; 0871 1 !++
; 0872 1 ! FUNCTIONAL DESCRIPTION:
; 0873 1 !
; 0874 1 !
; 0875 1 !
; 0876 1 !
; 0877 1 ! FORMAL PARAMETERS:
; 0878 1 !
; 0879 1 !
; 0880 1 ! IMPLICIT INPUTS:
; 0881 1 !
; 0882 1 ! NONE
; 0883 1 !
; 0884 1 ! IMPLICIT OUTPUTS:
; 0885 1 !
; 0886 1 ! NONE
; 0887 1 !
; 0888 1 ! ROUTINE VALUE:
; 0889 1 !
; 0890 1 ! NONE
; 0891 1 !
; 0892 1 ! SIDE EFFECTS
; 0893 1 !
; 0894 1 ! NONE
; 0895 1 !
; 0896 1 !--
; 0897 1
; 0898 2 BEGIN
; 0899 2
; 0900 2 IF .MNT_CHANGED
; 0901 2 THEN
; 0902 3 BEGIN
; 0903 3
; 0904 3 INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
; 0905 4 BEGIN
; 0906 4 POSFIL (.LIB_FILBLK, .LIBHDR [LIB_MNT_BLOCK], .INDEX*.LIBHDR [LIB_MNT_SIZE]);
; 0907 4 PUTFIL (.LIB_FILBLK, CH$PTR (LIBMNT [.INDEX, 0, 0, 0, 0],, 18), MNT_SIZE/2);
; 0908 3 END;
; 0909 3
; 0910 3 MNT_CHANGED = FALSE;
; 0911 2 END;
; 0912 2
; 0913 2 IF .EPT_CHANGED
; 0914 2 THEN
; 0915 3 BEGIN
; 0916 3
; 0917 3 INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
; 0918 4 BEGIN
; 0919 4 POSFIL (.LIB_FILBLK, .LIBHDR [LIB_EPT_BLOCK], .INDEX*.LIBHDR [LIB_EPT_SIZE]);
; 0920 4 PUTFIL (.LIB_FILBLK, CH$PTR (LIBEPT [.INDEX, 0, 0, 0, 0],, 18), EPT_SIZE/2);
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 41
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (10)
; 0921 3 END;
; 0922 3
; 0923 3 EPT_CHANGED = FALSE;
; 0924 2 END;
; 0925 2
; 0926 2 IF .HDR_CHANGED
; 0927 2 THEN
; 0928 3 BEGIN
; 0929 3 POSFIL (.LIB_FILBLK, 1, 0);
; 0930 3 PUTFIL (.LIB_FILBLK, CH$PTR (.LIBHDR,, 18), LIB_SIZE/2);
; 0931 3 HDR_CHANGED = FALSE;
; 0932 2 END;
; 0933 2
; 0934 1 END; !OF LIBUPD
LIBUPD::PUSH SP,AC14 ; SP,AC14 401500' 261 17 0 00 000014 0869
PUSH SP,AC16 ; SP,AC16 401501' 261 17 0 00 000016
MOVEI AC1,1 ; AC1,1 401502' 201 01 0 00 000001 0900
TDNN AC1,MNT_CHANGED ; AC1,MNT_CHANGED 401503' 616 01 0 00 014023'
JRST L.65 ; L.65 401504' 254 00 0 00 401543'
MOVE AC1,LIBHDR ; AC1,LIBHDR 401505' 200 01 0 00 000000* 0904
LDB AC14,C.50 ; AC14,[POINT 16,7(AC1),35] <0,16> 401506' 135 14 0 00 401627'
LDB AC2,C.51 ; AC2,[POINT 16,10(AC1),17] <18,16> 401507' 135 02 0 00 401630'
SUB AC14,AC2 ; AC14,AC2 401510' 274 14 0 00 000002
SETO AC16, ; INDEX, 401511' 474 16 0 00 000000
JRST L.64 ; L.64 401512' 254 00 0 00 401537'
L.63: PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401513' 261 17 0 00 010022' 0906
MOVE AC1,LIBHDR ; AC1,LIBHDR 401514' 200 01 0 00 000000*
LDB AC2,C.52 ; AC2,[POINT 16,7(AC1),17] <18,16> 401515' 135 02 0 00 401631'
PUSH SP,AC2 ; SP,AC2 401516' 261 17 0 00 000002
MOVE AC2,AC16 ; AC2,INDEX 401517' 200 02 0 00 000016
LDB AC3,C.53 ; AC3,[POINT 8,6(AC1),35] <0,8> 401520' 135 03 0 00 401632'
IMUL AC2,AC3 ; AC2,AC3 401521' 220 02 0 00 000003
PUSH SP,AC2 ; SP,AC2 401522' 261 17 0 00 000002
PUSHJ SP,POSFIL ; SP,POSFIL 401523' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401524' 261 17 0 00 010022' 0907
MOVE AC1,LIBMNT ; AC1,LIBMNT 401525' 200 01 0 00 000000*
MOVE AC2,AC16 ; AC2,INDEX 401526' 200 02 0 00 000016
IMULI AC2,2 ; AC2,2 401527' 221 02 0 00 000002
ADD AC1,AC2 ; AC1,AC2 401530' 270 01 0 00 000002
MOVEI AC1,-1(AC1) ; AC1,-1(AC1) 401531' 201 01 0 01 777777
HRLI AC1,2200 ; AC1,2200 401532' 505 01 0 00 002200
PUSH SP,AC1 ; SP,AC1 401533' 261 17 0 00 000001
PUSH SP,C.56 ; SP,[4] 401534' 261 17 0 00 401635'
PUSHJ SP,PUTFIL ; SP,PUTFIL 401535' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 401536' 105 17 0 00 777772 0905
L.64: ADDI AC16,1 ; INDEX,1 401537' 271 16 0 00 000001 0904
CAMGE AC16,AC14 ; INDEX,AC14 401540' 315 16 0 00 000014
JRST L.63 ; L.63 401541' 254 00 0 00 401513'
SETZM MNT_CHANGED ; MNT_CHANGED 401542' 402 00 0 00 014023' 0910
L.65: MOVEI AC1,1 ; AC1,1 401543' 201 01 0 00 000001 0913
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 42
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (10)
TDNN AC1,EPT_CHANGED ; AC1,EPT_CHANGED 401544' 616 01 0 00 010000'
JRST L.68 ; L.68 401545' 254 00 0 00 401604'
MOVE AC1,LIBHDR ; AC1,LIBHDR 401546' 200 01 0 00 000000* 0917
LDB AC14,C.14 ; AC14,[POINT 16,5(AC1),35] <0,16> 401547' 135 14 0 00 400263'
LDB AC2,C.15 ; AC2,[POINT 16,6(AC1),17] <18,16> 401550' 135 02 0 00 400264'
SUB AC14,AC2 ; AC14,AC2 401551' 274 14 0 00 000002
SETO AC16, ; INDEX, 401552' 474 16 0 00 000000
JRST L.67 ; L.67 401553' 254 00 0 00 401600'
L.66: PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401554' 261 17 0 00 010022' 0919
MOVE AC1,LIBHDR ; AC1,LIBHDR 401555' 200 01 0 00 000000*
LDB AC2,C.54 ; AC2,[POINT 16,5(AC1),17] <18,16> 401556' 135 02 0 00 401633'
PUSH SP,AC2 ; SP,AC2 401557' 261 17 0 00 000002
MOVE AC2,AC16 ; AC2,INDEX 401560' 200 02 0 00 000016
LDB AC3,C.55 ; AC3,[POINT 8,4(AC1),35] <0,8> 401561' 135 03 0 00 401634'
IMUL AC2,AC3 ; AC2,AC3 401562' 220 02 0 00 000003
PUSH SP,AC2 ; SP,AC2 401563' 261 17 0 00 000002
PUSHJ SP,POSFIL ; SP,POSFIL 401564' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401565' 261 17 0 00 010022' 0920
MOVE AC1,LIBEPT ; AC1,LIBEPT 401566' 200 01 0 00 000000*
MOVE AC2,AC16 ; AC2,INDEX 401567' 200 02 0 00 000016
IMULI AC2,2 ; AC2,2 401570' 221 02 0 00 000002
ADD AC1,AC2 ; AC1,AC2 401571' 270 01 0 00 000002
MOVEI AC1,-1(AC1) ; AC1,-1(AC1) 401572' 201 01 0 01 777777
HRLI AC1,2200 ; AC1,2200 401573' 505 01 0 00 002200
PUSH SP,AC1 ; SP,AC1 401574' 261 17 0 00 000001
PUSH SP,C.56 ; SP,[4] 401575' 261 17 0 00 401635'
PUSHJ SP,PUTFIL ; SP,PUTFIL 401576' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 401577' 105 17 0 00 777772 0918
L.67: ADDI AC16,1 ; INDEX,1 401600' 271 16 0 00 000001 0917
CAMGE AC16,AC14 ; INDEX,AC14 401601' 315 16 0 00 000014
JRST L.66 ; L.66 401602' 254 00 0 00 401554'
SETZM EPT_CHANGED ; EPT_CHANGED 401603' 402 00 0 00 010000' 0923
L.68: MOVEI AC1,1 ; AC1,1 401604' 201 01 0 00 000001 0926
TDNN AC1,HDR_CHANGED ; AC1,HDR_CHANGED 401605' 616 01 0 00 010021'
JRST L.69 ; L.69 401606' 254 00 0 00 401624'
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401607' 261 17 0 00 010022' 0929
PUSH SP,C.6 ; SP,[1] 401610' 261 17 0 00 400054'
PUSH SP,C.11 ; SP,[0] 401611' 261 17 0 00 400232'
PUSHJ SP,POSFIL ; SP,POSFIL 401612' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 401613' 261 17 0 00 010022' 0930
MOVE AC1,LIBHDR ; AC1,LIBHDR 401614' 200 01 0 00 000000*
MOVEI AC1,-1(AC1) ; AC1,-1(AC1) 401615' 201 01 0 01 777777
HRLI AC1,2200 ; AC1,2200 401616' 505 01 0 00 002200
PUSH SP,AC1 ; SP,AC1 401617' 261 17 0 00 000001
PUSH SP,C.57 ; SP,[30] 401620' 261 17 0 00 401636'
PUSHJ SP,PUTFIL ; SP,PUTFIL 401621' 260 17 0 00 000000*
SETZM HDR_CHANGED ; HDR_CHANGED 401622' 402 00 0 00 010021' 0931
ADJSP SP,-6 ; SP,-6 401623' 105 17 0 00 777772 0928
L.69: POP SP,AC16 ; SP,AC16 401624' 262 17 0 00 000016 0869
POP SP,AC14 ; SP,AC14 401625' 262 17 0 00 000014
POPJ SP, ; SP, 401626' 263 17 0 00 000000
C.50: POINT 16,7(AC1),35 ; 16,7(AC1),35 401627' 00 20 0 01 000007
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 43
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (10)
C.51: POINT 16,10(AC1),17 ; 16,10(AC1),17 401630' 22 20 0 01 000010
C.52: POINT 16,7(AC1),17 ; 16,7(AC1),17 401631' 22 20 0 01 000007
C.53: POINT 8,6(AC1),35 ; 8,6(AC1),35 401632' 00 10 0 01 000006
C.54: POINT 16,5(AC1),17 ; 16,5(AC1),17 401633' 22 20 0 01 000005
C.55: POINT 8,4(AC1),35 ; 8,4(AC1),35 401634' 00 10 0 01 000004
C.56: EXP 4 ; 4 401635' 000000 000004
C.57: EXP 30 ; 30 401636' 000000 000030
; Routine Size: 95 words
; 0935 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 44
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
; 0936 1 GLOBAL ROUTINE LIBOPN (FILBLK) =
; 0937 1
; 0938 1 !++
; 0939 1 ! FUNCTIONAL DESCRIPTION:
; 0940 1 !
; 0941 1 !
; 0942 1 !
; 0943 1 !
; 0944 1 ! FORMAL PARAMETERS:
; 0945 1 !
; 0946 1 !
; 0947 1 ! IMPLICIT INPUTS:
; 0948 1 !
; 0949 1 ! NONE
; 0950 1 !
; 0951 1 ! IMPLICIT OUTPUTS:
; 0952 1 !
; 0953 1 ! NONE
; 0954 1 !
; 0955 1 ! ROUTINE VALUE:
; 0956 1 !
; 0957 1 ! NONE
; 0958 1 !
; 0959 1 ! SIDE EFFECTS
; 0960 1 !
; 0961 1 ! NONE
; 0962 1 !
; 0963 1 !--
; 0964 1
; 0965 2 BEGIN
; 0966 2
; 0967 2 MACRO
; M 0968 2 ABORT (text) =
; M 0969 2 RETURN
; M 0970 2 BEGIN
; M 0971 2 %IF %NULL (%REMAINING)
; M 0972 2 %THEN
; M 0973 2 TYPLN (1, CH$ASCIZ (FATAL, text))
; M 0974 2 %ELSE
; M 0975 2 TYPLN (1, CH$ASCIZ (FATAL, text), %REMAINING)
; M 0976 2 %FI;
; M 0977 2 CLOSE (.LIB_FILBLK);
; M 0978 2 FALSE
; 0979 2 END %;
; 0980 2
; 0981 2 LIB_FILBLK = .FILBLK;
; 0982 2
; 0983 2 IF .FLAGS [M_CREATE] OR .FLAGS [M_COMPRESS]
; 0984 2 THEN
; 0985 3 BEGIN
; 0986 3 LIBHDR = HDRBUF;
; 0987 4 BEGIN
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 45
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
; 0988 4 LIBHDR [LIB_TYPE] = LIB_OBJECT;
; 0989 4 LIBHDR [LIB_IDENTIFICATION] = LIB_ID_2;
; 0990 4 LIBHDR [LIB_VERSION_1] = RAD50_WORD (%STRING (%CHAR (LBR_SUPPORT), CHAR2 (LBR_VERSION)));
; 0991 4 LIBHDR [LIB_VERSION_2] = RAD50_WORD (%STRING ('.', CHAR2 (LBR_EDIT)));
; 0992 5 BEGIN
; 0993 5
; 0994 5 LOCAL
; 0995 5 TIME_BLOCK : VECTOR [8];
; 0996 5
; 0997 5 GETTIM (TIME_BLOCK);
; 0998 5 LIBHDR [LIB_YEAR] = .TIME_BLOCK [0];
; 0999 5 LIBHDR [LIB_MONTH] = .TIME_BLOCK [1];
; 1000 5 LIBHDR [LIB_DAY] = .TIME_BLOCK [2];
; 1001 5 LIBHDR [LIB_HOUR] = .TIME_BLOCK [3];
; 1002 5 LIBHDR [LIB_MINUTE] = .TIME_BLOCK [4];
; 1003 5 LIBHDR [LIB_SECOND] = .TIME_BLOCK [5];
; 1004 4 END;
; 1005 4 LIBHDR [LIB_EPT_SIZE] = EPT_SIZE;
; 1006 4 LIBHDR [LIB_EPT_BLOCK] = 2;
; 1007 4 LIBHDR [LIB_EPT_ALLOCATED] = .NUMEPT;
; 1008 4 LIBHDR [LIB_EPT_AVAILABLE] = .NUMEPT;
; 1009 4 LIBHDR [LIB_MNT_SIZE] = MNT_SIZE;
; 1010 4 LIBHDR [LIB_MNT_BLOCK] = .LIBHDR [LIB_EPT_BLOCK] + (EPT_SIZE*.NUMEPT + BLOCK_SIZE - 1)/BLOCK_SIZE;
; 1011 4 LIBHDR [LIB_MNT_ALLOCATED] = .NUMMNT;
; 1012 4 LIBHDR [LIB_MNT_AVAILABLE] = .NUMMNT;
; 1013 4 LIBHDR [LIB_DELETED_1] = 0;
; 1014 4 LIBHDR [LIB_DELETED_2] = 0;
; 1015 4 LIBHDR [LIB_INSERT_BLOCK] = .LIBHDR [LIB_MNT_BLOCK] + (MNT_SIZE*.NUMMNT + BLOCK_SIZE - 1)/BLOCK_SIZE;
; 1016 4 LIBHDR [LIB_INSERT_OFFSET] = 0;
; 1017 4 LIBHDR [LIB_CONTIGUOUS_1] = 0;
; 1018 4 LIBHDR [LIB_CONTIGUOUS_2] = 0;
; 1019 4 HDR_CHANGED = TRUE;
; 1020 3 END;
; 1021 3
; 1022 3 IF .LIBHDR [LIB_EPT_ALLOCATED] LEQ EPTBUF_SIZE
; 1023 3 THEN
; 1024 3 LIBEPT = EPTBUF
; 1025 3 ELSE
; 1026 3 ABORT ('Insufficient buffer space for EPT table');
; 1027 3
; 1028 3 EPT_CHANGED = FALSE;
; 1029 3
; 1030 3 IF .LIBHDR [LIB_MNT_ALLOCATED] LEQ MNTBUF_SIZE
; 1031 3 THEN
; 1032 3 LIBMNT = MNTBUF
; 1033 3 ELSE
; 1034 3 ABORT ('Insufficient buffer space for MNT table');
; 1035 3
; 1036 3 MNT_CHANGED = FALSE;
; 1037 3
; 1038 3 IF NOT OPEN (.LIB_FILBLK, F_UPDATE, F_BINARY)
; 1039 3 THEN
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 46
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
; P 1040 3 ABORT ('Open failure on library file "%@"', FILNM,
; 1041 3 .LIB_FILBLK);
; 1042 3
; 1043 3 END
; 1044 2 ELSE
; 1045 3 BEGIN
; 1046 3
; 1047 3 IF NOT OPEN (.LIB_FILBLK, F_UPDATE, F_BINARY)
; 1048 3 THEN
; 1049 3
; 1050 3 IF OPEN (.LIB_FILBLK, F_READ, F_BINARY)
; 1051 3 THEN
; P 1052 3 TYPLN (1,
; P 1053 3 CH$ASCIZ (WARNING,
; 1054 4 'Library file "%@" open for input only%/'), FILNM, .LIB_FILBLK)
; 1055 3 ELSE
; 1056 3 ABORT ('Open failure on library file "%@"', FILNM, .LIB_FILBLK);
; 1057 3
; 1058 3 LIBHDR = HDRBUF;
; 1059 4 BEGIN
; 1060 4 POSFIL (.LIB_FILBLK, 1, 0);
; 1061 4 GETFIL (.LIB_FILBLK, CH$PTR (.LIBHDR,, 18), LIB_SIZE/2);
; 1062 4 HDR_CHANGED = FALSE;
; 1063 4
; 1064 4 IF .LIBHDR [LIB_EPT_ALLOCATED] LEQ EPTBUF_SIZE
; 1065 4 THEN
; 1066 5 BEGIN
; 1067 5 LIBEPT = EPTBUF;
; 1068 5
; 1069 5 INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
; 1070 6 BEGIN
; 1071 6 POSFIL (.LIB_FILBLK, .LIBHDR [LIB_EPT_BLOCK], .INDEX*.LIBHDR [LIB_EPT_SIZE]);
; 1072 6 GETFIL (.LIB_FILBLK, CH$PTR (LIBEPT [.INDEX, 0, 0, 0, 0],, 18), EPT_SIZE/2);
; 1073 5 END;
; 1074 5
; 1075 5 EPT_CHANGED = FALSE;
; 1076 5 END
; 1077 4 ELSE
; 1078 4 ABORT ('Insufficient buffer space for EPT table');
; 1079 4
; 1080 4 IF .LIBHDR [LIB_MNT_ALLOCATED] LEQ MNTBUF_SIZE
; 1081 4 THEN
; 1082 5 BEGIN
; 1083 5 LIBMNT = MNTBUF;
; 1084 5
; 1085 5 INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
; 1086 6 BEGIN
; 1087 6 POSFIL (.LIB_FILBLK, .LIBHDR [LIB_MNT_BLOCK], .INDEX*.LIBHDR [LIB_MNT_SIZE]);
; 1088 6 GETFIL (.LIB_FILBLK, CH$PTR (LIBMNT [.INDEX, 0, 0, 0, 0],, 18), MNT_SIZE/2);
; 1089 5 END;
; 1090 5
; 1091 5 MNT_CHANGED = FALSE;
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 47
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
; 1092 5 END
; 1093 4 ELSE
; 1094 4 ABORT ('Insufficient buffer space for MNT table');
; 1095 4
; 1096 3 END;
; 1097 2 END;
; 1098 2
; 1099 2 TRUE
; 1100 1 END; !OF LIBOPN
P.AAL: BYTE (7)"*","F","A","T","A" ; *FATA 401637' 052 106 101 124 101
BYTE (7)"L","*"," "," ","I" ; L* I 401640' 114 052 040 040 111
BYTE (7)"n","s","u","f","f" ; nsuff 401641' 156 163 165 146 146
BYTE (7)"i","c","i","e","n" ; icien 401642' 151 143 151 145 156
BYTE (7)"t"," ","b","u","f" ; t buf 401643' 164 040 142 165 146
BYTE (7)"f","e","r"," ","s" ; fer s 401644' 146 145 162 040 163
BYTE (7)"p","a","c","e"," " ; pace 401645' 160 141 143 145 040
BYTE (7)"f","o","r"," ","E" ; for E 401646' 146 157 162 040 105
BYTE (7)"P","T"," ","t","a" ; PT ta 401647' 120 124 040 164 141
BYTE (7)"b","l","e",000,000 ; ble 401650' 142 154 145 000 000
P.AAM: BYTE (7)"*","F","A","T","A" ; *FATA 401651' 052 106 101 124 101
BYTE (7)"L","*"," "," ","I" ; L* I 401652' 114 052 040 040 111
BYTE (7)"n","s","u","f","f" ; nsuff 401653' 156 163 165 146 146
BYTE (7)"i","c","i","e","n" ; icien 401654' 151 143 151 145 156
BYTE (7)"t"," ","b","u","f" ; t buf 401655' 164 040 142 165 146
BYTE (7)"f","e","r"," ","s" ; fer s 401656' 146 145 162 040 163
BYTE (7)"p","a","c","e"," " ; pace 401657' 160 141 143 145 040
BYTE (7)"f","o","r"," ","M" ; for M 401660' 146 157 162 040 115
BYTE (7)"N","T"," ","t","a" ; NT ta 401661' 116 124 040 164 141
BYTE (7)"b","l","e",000,000 ; ble 401662' 142 154 145 000 000
P.AAN: BYTE (7)"*","F","A","T","A" ; *FATA 401663' 052 106 101 124 101
BYTE (7)"L","*"," "," ","O" ; L* O 401664' 114 052 040 040 117
BYTE (7)"p","e","n"," ","f" ; pen f 401665' 160 145 156 040 146
BYTE (7)"a","i","l","u","r" ; ailur 401666' 141 151 154 165 162
BYTE (7)"e"," ","o","n"," " ; e on 401667' 145 040 157 156 040
BYTE (7)"l","i","b","r","a" ; libra 401670' 154 151 142 162 141
BYTE (7)"r","y"," ","f","i" ; ry fi 401671' 162 171 040 146 151
BYTE (7)"l","e"," ",042,"%" ; le "% 401672' 154 145 040 042 045
BYTE (7)"@",042,000,000,000 ; @" 401673' 100 042 000 000 000
P.AAO: BYTE (7)"*","W","A","R","N" ; *WARN 401674' 052 127 101 122 116
BYTE (7)"I","N","G","*"," " ; ING* 401675' 111 116 107 052 040
BYTE (7)" ","L","i","b","r" ; Libr 401676' 040 114 151 142 162
BYTE (7)"a","r","y"," ","f" ; ary f 401677' 141 162 171 040 146
BYTE (7)"i","l","e"," ",042 ; ile " 401700' 151 154 145 040 042
BYTE (7)"%","@",042," ","o" ; %@" o 401701' 045 100 042 040 157
BYTE (7)"p","e","n"," ","f" ; pen f 401702' 160 145 156 040 146
BYTE (7)"o","r"," ","i","n" ; or in 401703' 157 162 040 151 156
BYTE (7)"p","u","t"," ","o" ; put o 401704' 160 165 164 040 157
BYTE (7)"n","l","y","%","/" ; nly%/ 401705' 156 154 171 045 057
BYTE (7)000,000,000,000,000 ; 401706' 000 000 000 000 000
P.AAP: BYTE (7)"*","F","A","T","A" ; *FATA 401707' 052 106 101 124 101
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 48
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
BYTE (7)"L","*"," "," ","O" ; L* O 401710' 114 052 040 040 117
BYTE (7)"p","e","n"," ","f" ; pen f 401711' 160 145 156 040 146
BYTE (7)"a","i","l","u","r" ; ailur 401712' 141 151 154 165 162
BYTE (7)"e"," ","o","n"," " ; e on 401713' 145 040 157 156 040
BYTE (7)"l","i","b","r","a" ; libra 401714' 154 151 142 162 141
BYTE (7)"r","y"," ","f","i" ; ry fi 401715' 162 171 040 146 151
BYTE (7)"l","e"," ",042,"%" ; le "% 401716' 154 145 040 042 045
BYTE (7)"@",042,000,000,000 ; @" 401717' 100 042 000 000 000
P.AAQ: BYTE (7)"*","F","A","T","A" ; *FATA 401720' 052 106 101 124 101
BYTE (7)"L","*"," "," ","I" ; L* I 401721' 114 052 040 040 111
BYTE (7)"n","s","u","f","f" ; nsuff 401722' 156 163 165 146 146
BYTE (7)"i","c","i","e","n" ; icien 401723' 151 143 151 145 156
BYTE (7)"t"," ","b","u","f" ; t buf 401724' 164 040 142 165 146
BYTE (7)"f","e","r"," ","s" ; fer s 401725' 146 145 162 040 163
BYTE (7)"p","a","c","e"," " ; pace 401726' 160 141 143 145 040
BYTE (7)"f","o","r"," ","E" ; for E 401727' 146 157 162 040 105
BYTE (7)"P","T"," ","t","a" ; PT ta 401730' 120 124 040 164 141
BYTE (7)"b","l","e",000,000 ; ble 401731' 142 154 145 000 000
P.AAR: BYTE (7)"*","F","A","T","A" ; *FATA 401732' 052 106 101 124 101
BYTE (7)"L","*"," "," ","I" ; L* I 401733' 114 052 040 040 111
BYTE (7)"n","s","u","f","f" ; nsuff 401734' 156 163 165 146 146
BYTE (7)"i","c","i","e","n" ; icien 401735' 151 143 151 145 156
BYTE (7)"t"," ","b","u","f" ; t buf 401736' 164 040 142 165 146
BYTE (7)"f","e","r"," ","s" ; fer s 401737' 146 145 162 040 163
BYTE (7)"p","a","c","e"," " ; pace 401740' 160 141 143 145 040
BYTE (7)"f","o","r"," ","M" ; for M 401741' 146 157 162 040 115
BYTE (7)"N","T"," ","t","a" ; NT ta 401742' 116 124 040 164 141
BYTE (7)"b","l","e",000,000 ; ble 401743' 142 154 145 000 000
LIBOPN::PUSH SP,AC14 ; SP,AC14 401744' 261 17 0 00 000014 0936
PUSH SP,AC16 ; SP,AC16 401745' 261 17 0 00 000016
ADJSP SP,10 ; SP,10 401746' 105 17 0 00 000010
MOVE AC1,-13(SP) ; AC1,FILBLK 401747' 200 01 0 17 777765 0981
MOVEM AC1,LIB_FILBLK ; AC1,LIB_FILBLK 401750' 202 01 0 00 010022'
MOVEI AC1,3000 ; AC1,3000 401751' 201 01 0 00 003000 0983
TDNN AC1,FLAGS ; AC1,FLAGS 401752' 616 01 0 00 000000*
JRST L.76 ; L.76 401753' 254 00 0 00 402130'
MOVEI AC1,HDRBUF ; AC1,HDRBUF 401754' 201 01 0 00 010005' 0986
MOVEM AC1,LIBHDR ; AC1,LIBHDR 401755' 202 01 0 00 000000*
MOVSI AC2,377 ; AC2,377 401756' 205 02 0 00 000377 0988
ANDCAM AC2,0(AC1) ; AC2,0(AC1) 401757' 412 02 0 01 000000
MOVEI AC2,2 ; AC2,2 401760' 201 02 0 00 000002 0989
DPB AC2,C.58 ; AC2,[POINT 8,0(AC1),11] <24,8> 401761' 137 02 0 00 402347'
MOVEI AC2,115317 ; AC2,115317 401762' 201 02 0 00 115317 0990
DPB AC2,C.59 ; AC2,[POINT 16,0(AC1),35] <0,16> 401763' 137 02 0 00 402350'
MOVEI AC2,131724 ; AC2,131724 401764' 201 02 0 00 131724 0991
DPB AC2,C.60 ; AC2,[POINT 16,1(AC1),17] <18,16> 401765' 137 02 0 00 402351'
MOVEI AC1,-7(SP) ; AC1,TIME_BLOCK 401766' 201 01 0 17 777771 0997
PUSH SP,AC1 ; SP,AC1 401767' 261 17 0 00 000001
PUSHJ SP,GETTIM ; SP,GETTIM 401770' 260 17 0 00 000000*
MOVE AC3,LIBHDR ; AC3,LIBHDR 401771' 200 03 0 00 000000* 0998
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 49
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
MOVE AC1,-10(SP) ; AC1,TIME_BLOCK 401772' 200 01 0 17 777770
DPB AC1,C.25 ; AC1,[POINT 16,1(AC3),35] <0,16> 401773' 137 01 0 00 400502'
MOVE AC1,-7(SP) ; AC1,TIME_BLOCK+1 401774' 200 01 0 17 777771 0999
DPB AC1,C.61 ; AC1,[POINT 16,2(AC3),17] <18,16> 401775' 137 01 0 00 402352'
MOVE AC1,-6(SP) ; AC1,TIME_BLOCK+2 401776' 200 01 0 17 777772 1000
DPB AC1,C.62 ; AC1,[POINT 16,2(AC3),35] <0,16> 401777' 137 01 0 00 402353'
MOVE AC1,-5(SP) ; AC1,TIME_BLOCK+3 402000' 200 01 0 17 777773 1001
DPB AC1,C.63 ; AC1,[POINT 16,3(AC3),17] <18,16> 402001' 137 01 0 00 402354'
MOVE AC1,-4(SP) ; AC1,TIME_BLOCK+4 402002' 200 01 0 17 777774 1002
DPB AC1,C.64 ; AC1,[POINT 16,3(AC3),35] <0,16> 402003' 137 01 0 00 402355'
MOVE AC1,-3(SP) ; AC1,TIME_BLOCK+5 402004' 200 01 0 17 777775 1003
DPB AC1,C.65 ; AC1,[POINT 16,4(AC3),17] <18,16> 402005' 137 01 0 00 402356'
MOVEI AC1,10 ; AC1,10 402006' 201 01 0 00 000010 1005
DPB AC1,C.66 ; AC1,[POINT 8,4(AC3),35] <0,8> 402007' 137 01 0 00 402357'
MOVEI AC1,2 ; AC1,2 402010' 201 01 0 00 000002 1006
DPB AC1,C.67 ; AC1,[POINT 16,5(AC3),17] <18,16> 402011' 137 01 0 00 402360'
MOVE AC1,NUMEPT ; AC1,NUMEPT 402012' 200 01 0 00 000000* 1007
DPB AC1,C.17 ; AC1,[POINT 16,5(AC3),35] <0,16> 402013' 137 01 0 00 400377'
MOVE AC1,NUMEPT ; AC1,NUMEPT 402014' 200 01 0 00 000000* 1008
DPB AC1,C.16 ; AC1,[POINT 16,6(AC3),17] <18,16> 402015' 137 01 0 00 400376'
MOVEI AC1,10 ; AC1,10 402016' 201 01 0 00 000010 1009
DPB AC1,C.68 ; AC1,[POINT 8,6(AC3),35] <0,8> 402017' 137 01 0 00 402361'
MOVE AC1,NUMEPT ; AC1,NUMEPT 402020' 200 01 0 00 000000* 1010
IMULI AC1,10 ; AC1,10 402021' 221 01 0 00 000010
ADDI AC1,777 ; AC1,777 402022' 271 01 0 00 000777
IDIVI AC1,1000 ; AC1,1000 402023' 231 01 0 00 001000
LDB AC4,C.67 ; AC4,[POINT 16,5(AC3),17] <18,16> 402024' 135 04 0 00 402360'
ADD AC1,AC4 ; AC1,AC4 402025' 270 01 0 00 000004
DPB AC1,C.69 ; AC1,[POINT 16,7(AC3),17] <18,16> 402026' 137 01 0 00 402362'
MOVE AC1,NUMMNT ; AC1,NUMMNT 402027' 200 01 0 00 000000* 1011
DPB AC1,C.70 ; AC1,[POINT 16,7(AC3),35] <0,16> 402030' 137 01 0 00 402363'
MOVE AC1,NUMMNT ; AC1,NUMMNT 402031' 200 01 0 00 000000* 1012
DPB AC1,C.71 ; AC1,[POINT 16,10(AC3),17] <18,16> 402032' 137 01 0 00 402364'
MOVEI AC1,177777 ; AC1,177777 402033' 201 01 0 00 177777 1013
ANDCAM AC1,10(AC3) ; AC1,10(AC3) 402034' 412 01 0 03 000010
MOVSI AC1,177777 ; AC1,177777 402035' 205 01 0 00 177777 1014
ANDCAM AC1,11(AC3) ; AC1,11(AC3) 402036' 412 01 0 03 000011
MOVE AC1,NUMMNT ; AC1,NUMMNT 402037' 200 01 0 00 000000* 1015
IMULI AC1,10 ; AC1,10 402040' 221 01 0 00 000010
ADDI AC1,777 ; AC1,777 402041' 271 01 0 00 000777
IDIVI AC1,1000 ; AC1,1000 402042' 231 01 0 00 001000
LDB AC4,C.69 ; AC4,[POINT 16,7(AC3),17] <18,16> 402043' 135 04 0 00 402362'
ADD AC1,AC4 ; AC1,AC4 402044' 270 01 0 00 000004
DPB AC1,C.72 ; AC1,[POINT 16,12(AC3),35] <0,16> 402045' 137 01 0 00 402365'
MOVSI AC1,177777 ; AC1,177777 402046' 205 01 0 00 177777 1016
ANDCAM AC1,13(AC3) ; AC1,13(AC3) 402047' 412 01 0 03 000013
MOVEI AC1,177777 ; AC1,177777 402050' 201 01 0 00 177777 1017
ANDCAM AC1,11(AC3) ; AC1,11(AC3) 402051' 412 01 0 03 000011
MOVSI AC1,177777 ; AC1,177777 402052' 205 01 0 00 177777 1018
ANDCAM AC1,12(AC3) ; AC1,12(AC3) 402053' 412 01 0 03 000012
MOVEI AC1,1 ; AC1,1 402054' 201 01 0 00 000001 1019
MOVEM AC1,HDR_CHANGED ; AC1,HDR_CHANGED 402055' 202 01 0 00 010021'
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 50
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
LDB AC1,C.17 ; AC1,[POINT 16,5(AC3),35] <0,16> 402056' 135 01 0 00 400377' 1022
CAILE AC1,4000 ; AC1,4000 402057' 303 01 0 00 004000
JRST L.70 ; L.70 402060' 254 00 0 00 402064'
MOVEI AC1,EPTBUF ; AC1,EPTBUF 402061' 201 01 0 00 000000' 1024
MOVEM AC1,LIBEPT ; AC1,LIBEPT 402062' 202 01 0 00 000000*
JRST L.71 ; L.71 402063' 254 00 0 00 402067' 1022
L.70: PUSH SP,C.6 ; SP,[1] 402064' 261 17 0 00 400054' 1026
PUSH SP,C.73 ; SP,[POINT 7,P.AAL-1,34] <1,7> 402065' 261 17 0 00 402366'
JRST L.73 ; L.73 402066' 254 00 0 00 402101'
L.71: SETZM EPT_CHANGED ; EPT_CHANGED 402067' 402 00 0 00 010000' 1028
MOVE AC1,LIBHDR ; AC1,LIBHDR 402070' 200 01 0 00 000000* 1030
LDB AC2,C.50 ; AC2,[POINT 16,7(AC1),35] <0,16> 402071' 135 02 0 00 401627'
CAILE AC2,2000 ; AC2,2000 402072' 303 02 0 00 002000
JRST L.72 ; L.72 402073' 254 00 0 00 402077'
MOVEI AC1,MNTBUF ; AC1,MNTBUF 402074' 201 01 0 00 010023' 1032
MOVEM AC1,LIBMNT ; AC1,LIBMNT 402075' 202 01 0 00 000000*
JRST L.74 ; L.74 402076' 254 00 0 00 402103' 1030
L.72: PUSH SP,C.6 ; SP,[1] 402077' 261 17 0 00 400054' 1034
PUSH SP,C.74 ; SP,[POINT 7,P.AAM-1,34] <1,7> 402100' 261 17 0 00 402367'
L.73: PUSH SP,C.11 ; SP,[0] 402101' 261 17 0 00 400232'
JRST L.75 ; L.75 402102' 254 00 0 00 402123'
L.74: SETZM MNT_CHANGED ; MNT_CHANGED 402103' 402 00 0 00 014023' 1036
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402104' 261 17 0 00 010022' 1038
PUSH SP,C.56 ; SP,[4] 402105' 261 17 0 00 401635'
PUSH SP,C.6 ; SP,[1] 402106' 261 17 0 00 400054'
PUSHJ SP,OPEN ; SP,OPEN 402107' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402110' 105 17 0 00 777775
TRNE AC1,1 ; AC1,1 402111' 602 01 0 00 000001
JRST L.89 ; L.89 402112' 254 00 0 00 402341'
MOVEI AC1,FILNM ; AC1,FILNM 402113' 201 01 0 00 000000* 1041
MOVEM AC1,-10(SP) ; AC1,PRM_LIST 402114' 202 01 0 17 777770
MOVE AC1,LIB_FILBLK ; AC1,LIB_FILBLK 402115' 200 01 0 00 010022'
MOVEM AC1,-7(SP) ; AC1,TIME_BLOCK+1 402116' 202 01 0 17 777771
PUSH SP,C.6 ; SP,[1] 402117' 261 17 0 00 400054'
PUSH SP,C.75 ; SP,[POINT 7,P.AAN-1,34] <1,7> 402120' 261 17 0 00 402370'
MOVEI AC1,-12(SP) ; AC1,PRM_LIST 402121' 201 01 0 17 777766
PUSH SP,AC1 ; SP,AC1 402122' 261 17 0 00 000001
L.75: PUSHJ SP,TYPLIN ; SP,TYPLIN 402123' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402124' 261 17 0 00 010022'
PUSHJ SP,CLOSE ; SP,CLOSE 402125' 260 17 0 00 000000*
ADJSP SP,-5 ; SP,-5 402126' 105 17 0 00 777773
JRST L.87 ; L.87 402127' 254 00 0 00 402336'
L.76: PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402130' 261 17 0 00 010022' 1047
PUSH SP,C.56 ; SP,[4] 402131' 261 17 0 00 401635'
PUSH SP,C.6 ; SP,[1] 402132' 261 17 0 00 400054'
PUSHJ SP,OPEN ; SP,OPEN 402133' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402134' 105 17 0 00 777775
TRNE AC1,1 ; AC1,1 402135' 602 01 0 00 000001
JRST L.78 ; L.78 402136' 254 00 0 00 402176'
MOVEI AC14,FILNM ; AC14,FILNM 402137' 201 14 0 00 000000* 1054
MOVEM AC14,-7(SP) ; AC14,PRM_LIST 402140' 202 14 0 17 777771
MOVEI AC16,-7(SP) ; AC16,PRM_LIST 402141' 201 16 0 17 777771
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 51
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
ADDI AC16,1 ; AC16,1 402142' 271 16 0 00 000001
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402143' 261 17 0 00 010022' 1050
PUSH SP,C.11 ; SP,[0] 402144' 261 17 0 00 400232'
PUSH SP,C.6 ; SP,[1] 402145' 261 17 0 00 400054'
PUSHJ SP,OPEN ; SP,OPEN 402146' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402147' 105 17 0 00 777775
TRNN AC1,1 ; AC1,1 402150' 606 01 0 00 000001
JRST L.77 ; L.77 402151' 254 00 0 00 402163'
MOVE AC1,LIB_FILBLK ; AC1,LIB_FILBLK 402152' 200 01 0 00 010022' 1054
MOVEM AC1,0(AC16) ; AC1,0(AC16) 402153' 202 01 0 16 000000
PUSH SP,C.6 ; SP,[1] 402154' 261 17 0 00 400054'
PUSH SP,C.76 ; SP,[POINT 7,P.AAO-1,34] <1,7> 402155' 261 17 0 00 402371'
MOVEI AC1,-11(SP) ; AC1,PRM_LIST 402156' 201 01 0 17 777767
PUSH SP,AC1 ; SP,AC1 402157' 261 17 0 00 000001
PUSHJ SP,TYPLIN ; SP,TYPLIN 402160' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402161' 105 17 0 00 777775
JRST L.78 ; L.78 402162' 254 00 0 00 402176' 1050
L.77: MOVE AC1,LIB_FILBLK ; AC1,LIB_FILBLK 402163' 200 01 0 00 010022' 1056
MOVEM AC1,0(AC16) ; AC1,0(AC16) 402164' 202 01 0 16 000000
PUSH SP,C.6 ; SP,[1] 402165' 261 17 0 00 400054'
PUSH SP,C.77 ; SP,[POINT 7,P.AAP-1,34] <1,7> 402166' 261 17 0 00 402372'
MOVEI AC1,-11(SP) ; AC1,PRM_LIST 402167' 201 01 0 17 777767
PUSH SP,AC1 ; SP,AC1 402170' 261 17 0 00 000001
PUSHJ SP,TYPLIN ; SP,TYPLIN 402171' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402172' 261 17 0 00 010022'
PUSHJ SP,CLOSE ; SP,CLOSE 402173' 260 17 0 00 000000*
ADJSP SP,-4 ; SP,-4 402174' 105 17 0 00 777774
JRST L.87 ; L.87 402175' 254 00 0 00 402336'
L.78: MOVEI AC1,HDRBUF ; AC1,HDRBUF 402176' 201 01 0 00 010005' 1058
MOVEM AC1,LIBHDR ; AC1,LIBHDR 402177' 202 01 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402200' 261 17 0 00 010022' 1060
PUSH SP,C.6 ; SP,[1] 402201' 261 17 0 00 400054'
PUSH SP,C.11 ; SP,[0] 402202' 261 17 0 00 400232'
PUSHJ SP,POSFIL ; SP,POSFIL 402203' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402204' 261 17 0 00 010022' 1061
MOVE AC1,LIBHDR ; AC1,LIBHDR 402205' 200 01 0 00 000000*
MOVEI AC1,-1(AC1) ; AC1,-1(AC1) 402206' 201 01 0 01 777777
HRLI AC1,2200 ; AC1,2200 402207' 505 01 0 00 002200
PUSH SP,AC1 ; SP,AC1 402210' 261 17 0 00 000001
PUSH SP,C.57 ; SP,[30] 402211' 261 17 0 00 401636'
PUSHJ SP,GETFIL ; SP,GETFIL 402212' 260 17 0 00 000000*
SETZM HDR_CHANGED ; HDR_CHANGED 402213' 402 00 0 00 010021' 1062
MOVE AC1,LIBHDR ; AC1,LIBHDR 402214' 200 01 0 00 000000* 1064
LDB AC2,C.14 ; AC2,[POINT 16,5(AC1),35] <0,16> 402215' 135 02 0 00 400263'
CAILE AC2,4000 ; AC2,4000 402216' 303 02 0 00 004000
JRST L.81 ; L.81 402217' 254 00 0 00 402260'
MOVEI AC3,EPTBUF ; AC3,EPTBUF 402220' 201 03 0 00 000000' 1067
MOVEM AC3,LIBEPT ; AC3,LIBEPT 402221' 202 03 0 00 000000*
MOVE AC14,AC2 ; AC14,AC2 402222' 200 14 0 00 000002 1069
LDB AC3,C.15 ; AC3,[POINT 16,6(AC1),17] <18,16> 402223' 135 03 0 00 400264'
SUB AC14,AC3 ; AC14,AC3 402224' 274 14 0 00 000003
SETO AC16, ; INDEX, 402225' 474 16 0 00 000000
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 52
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
JRST L.80 ; L.80 402226' 254 00 0 00 402253'
L.79: PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402227' 261 17 0 00 010022' 1071
MOVE AC1,LIBHDR ; AC1,LIBHDR 402230' 200 01 0 00 000000*
LDB AC2,C.54 ; AC2,[POINT 16,5(AC1),17] <18,16> 402231' 135 02 0 00 401633'
PUSH SP,AC2 ; SP,AC2 402232' 261 17 0 00 000002
MOVE AC2,AC16 ; AC2,INDEX 402233' 200 02 0 00 000016
LDB AC3,C.55 ; AC3,[POINT 8,4(AC1),35] <0,8> 402234' 135 03 0 00 401634'
IMUL AC2,AC3 ; AC2,AC3 402235' 220 02 0 00 000003
PUSH SP,AC2 ; SP,AC2 402236' 261 17 0 00 000002
PUSHJ SP,POSFIL ; SP,POSFIL 402237' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402240' 261 17 0 00 010022' 1072
MOVE AC1,LIBEPT ; AC1,LIBEPT 402241' 200 01 0 00 000000*
MOVE AC2,AC16 ; AC2,INDEX 402242' 200 02 0 00 000016
IMULI AC2,2 ; AC2,2 402243' 221 02 0 00 000002
ADD AC1,AC2 ; AC1,AC2 402244' 270 01 0 00 000002
MOVEI AC1,-1(AC1) ; AC1,-1(AC1) 402245' 201 01 0 01 777777
HRLI AC1,2200 ; AC1,2200 402246' 505 01 0 00 002200
PUSH SP,AC1 ; SP,AC1 402247' 261 17 0 00 000001
PUSH SP,C.56 ; SP,[4] 402250' 261 17 0 00 401635'
PUSHJ SP,GETFIL ; SP,GETFIL 402251' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 402252' 105 17 0 00 777772 1070
L.80: ADDI AC16,1 ; INDEX,1 402253' 271 16 0 00 000001 1069
CAMGE AC16,AC14 ; INDEX,AC14 402254' 315 16 0 00 000014
JRST L.79 ; L.79 402255' 254 00 0 00 402227'
SETZM EPT_CHANGED ; EPT_CHANGED 402256' 402 00 0 00 010000' 1075
JRST L.82 ; L.82 402257' 254 00 0 00 402263' 1064
L.81: PUSH SP,C.6 ; SP,[1] 402260' 261 17 0 00 400054' 1078
PUSH SP,C.78 ; SP,[POINT 7,P.AAQ-1,34] <1,7> 402261' 261 17 0 00 402373'
JRST L.86 ; L.86 402262' 254 00 0 00 402331'
L.82: MOVE AC1,LIBHDR ; AC1,LIBHDR 402263' 200 01 0 00 000000* 1080
LDB AC2,C.50 ; AC2,[POINT 16,7(AC1),35] <0,16> 402264' 135 02 0 00 401627'
CAILE AC2,2000 ; AC2,2000 402265' 303 02 0 00 002000
JRST L.85 ; L.85 402266' 254 00 0 00 402327'
MOVEI AC3,MNTBUF ; AC3,MNTBUF 402267' 201 03 0 00 010023' 1083
MOVEM AC3,LIBMNT ; AC3,LIBMNT 402270' 202 03 0 00 000000*
MOVE AC14,AC2 ; AC14,AC2 402271' 200 14 0 00 000002 1085
LDB AC3,C.51 ; AC3,[POINT 16,10(AC1),17] <18,16> 402272' 135 03 0 00 401630'
SUB AC14,AC3 ; AC14,AC3 402273' 274 14 0 00 000003
SETO AC16, ; INDEX, 402274' 474 16 0 00 000000
JRST L.84 ; L.84 402275' 254 00 0 00 402322'
L.83: PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402276' 261 17 0 00 010022' 1087
MOVE AC1,LIBHDR ; AC1,LIBHDR 402277' 200 01 0 00 000000*
LDB AC2,C.52 ; AC2,[POINT 16,7(AC1),17] <18,16> 402300' 135 02 0 00 401631'
PUSH SP,AC2 ; SP,AC2 402301' 261 17 0 00 000002
MOVE AC2,AC16 ; AC2,INDEX 402302' 200 02 0 00 000016
LDB AC3,C.53 ; AC3,[POINT 8,6(AC1),35] <0,8> 402303' 135 03 0 00 401632'
IMUL AC2,AC3 ; AC2,AC3 402304' 220 02 0 00 000003
PUSH SP,AC2 ; SP,AC2 402305' 261 17 0 00 000002
PUSHJ SP,POSFIL ; SP,POSFIL 402306' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402307' 261 17 0 00 010022' 1088
MOVE AC1,LIBMNT ; AC1,LIBMNT 402310' 200 01 0 00 000000*
MOVE AC2,AC16 ; AC2,INDEX 402311' 200 02 0 00 000016
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 53
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
IMULI AC2,2 ; AC2,2 402312' 221 02 0 00 000002
ADD AC1,AC2 ; AC1,AC2 402313' 270 01 0 00 000002
MOVEI AC1,-1(AC1) ; AC1,-1(AC1) 402314' 201 01 0 01 777777
HRLI AC1,2200 ; AC1,2200 402315' 505 01 0 00 002200
PUSH SP,AC1 ; SP,AC1 402316' 261 17 0 00 000001
PUSH SP,C.56 ; SP,[4] 402317' 261 17 0 00 401635'
PUSHJ SP,GETFIL ; SP,GETFIL 402320' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 402321' 105 17 0 00 777772 1086
L.84: ADDI AC16,1 ; INDEX,1 402322' 271 16 0 00 000001 1085
CAMGE AC16,AC14 ; INDEX,AC14 402323' 315 16 0 00 000014
JRST L.83 ; L.83 402324' 254 00 0 00 402276'
SETZM MNT_CHANGED ; MNT_CHANGED 402325' 402 00 0 00 014023' 1091
JRST L.88 ; L.88 402326' 254 00 0 00 402340' 1080
L.85: PUSH SP,C.6 ; SP,[1] 402327' 261 17 0 00 400054' 1094
PUSH SP,C.79 ; SP,[POINT 7,P.AAR-1,34] <1,7> 402330' 261 17 0 00 402374'
L.86: PUSH SP,C.11 ; SP,[0] 402331' 261 17 0 00 400232'
PUSHJ SP,TYPLIN ; SP,TYPLIN 402332' 260 17 0 00 000000*
PUSH SP,LIB_FILBLK ; SP,LIB_FILBLK 402333' 261 17 0 00 010022'
PUSHJ SP,CLOSE ; SP,CLOSE 402334' 260 17 0 00 000000*
ADJSP SP,-12 ; SP,-12 402335' 105 17 0 00 777766
L.87: SETZ AC1, ; AC1, 402336' 400 01 0 00 000000
JRST L.90 ; L.90 402337' 254 00 0 00 402343'
L.88: ADJSP SP,-5 ; SP,-5 402340' 105 17 0 00 777773 1045
L.89: ADJSP SP,-1 ; SP,-1 402341' 105 17 0 00 777777 0965
MOVEI AC1,1 ; AC1,1 402342' 201 01 0 00 000001 0936
L.90: ADJSP SP,-10 ; SP,-10 402343' 105 17 0 00 777770
POP SP,AC16 ; SP,AC16 402344' 262 17 0 00 000016
POP SP,AC14 ; SP,AC14 402345' 262 17 0 00 000014
POPJ SP, ; SP, 402346' 263 17 0 00 000000
C.58: POINT 8,0(AC1),11 ; 8,0(AC1),11 402347' 30 10 0 01 000000
C.59: POINT 16,0(AC1),35 ; 16,0(AC1),35 402350' 00 20 0 01 000000
C.60: POINT 16,1(AC1),17 ; 16,1(AC1),17 402351' 22 20 0 01 000001
C.61: POINT 16,2(AC3),17 ; 16,2(AC3),17 402352' 22 20 0 03 000002
C.62: POINT 16,2(AC3),35 ; 16,2(AC3),35 402353' 00 20 0 03 000002
C.63: POINT 16,3(AC3),17 ; 16,3(AC3),17 402354' 22 20 0 03 000003
C.64: POINT 16,3(AC3),35 ; 16,3(AC3),35 402355' 00 20 0 03 000003
C.65: POINT 16,4(AC3),17 ; 16,4(AC3),17 402356' 22 20 0 03 000004
C.66: POINT 8,4(AC3),35 ; 8,4(AC3),35 402357' 00 10 0 03 000004
C.67: POINT 16,5(AC3),17 ; 16,5(AC3),17 402360' 22 20 0 03 000005
C.68: POINT 8,6(AC3),35 ; 8,6(AC3),35 402361' 00 10 0 03 000006
C.69: POINT 16,7(AC3),17 ; 16,7(AC3),17 402362' 22 20 0 03 000007
C.70: POINT 16,7(AC3),35 ; 16,7(AC3),35 402363' 00 20 0 03 000007
C.71: POINT 16,10(AC3),17 ; 16,10(AC3),17 402364' 22 20 0 03 000010
C.72: POINT 16,12(AC3),35 ; 16,12(AC3),35 402365' 00 20 0 03 000012
C.73: POINT 7,P.AAL-1,34 ; 7,P.AAL-1,34 402366' 01 07 0 00 401636'
C.74: POINT 7,P.AAM-1,34 ; 7,P.AAM-1,34 402367' 01 07 0 00 401650'
C.75: POINT 7,P.AAN-1,34 ; 7,P.AAN-1,34 402370' 01 07 0 00 401662'
C.76: POINT 7,P.AAO-1,34 ; 7,P.AAO-1,34 402371' 01 07 0 00 401673'
C.77: POINT 7,P.AAP-1,34 ; 7,P.AAP-1,34 402372' 01 07 0 00 401706'
C.78: POINT 7,P.AAQ-1,34 ; 7,P.AAQ-1,34 402373' 01 07 0 00 401717'
C.79: POINT 7,P.AAR-1,34 ; 7,P.AAR-1,34 402374' 01 07 0 00 401731'
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 54
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)
; Routine Size: 281 words
; 1101 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 55
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (12)
; 1102 1 ROUTINE MNT_INDEX (NAME) =
; 1103 1
; 1104 1 !++
; 1105 1 ! FUNCTIONAL DESCRIPTION:
; 1106 1 !
; 1107 1 !
; 1108 1 !
; 1109 1 !
; 1110 1 ! FORMAL PARAMETERS:
; 1111 1 !
; 1112 1 !
; 1113 1 ! IMPLICIT INPUTS:
; 1114 1 !
; 1115 1 ! NONE
; 1116 1 !
; 1117 1 ! IMPLICIT OUTPUTS:
; 1118 1 !
; 1119 1 ! NONE
; 1120 1 !
; 1121 1 ! ROUTINE VALUE:
; 1122 1 !
; 1123 1 ! NONE
; 1124 1 !
; 1125 1 ! SIDE EFFECTS
; 1126 1 !
; 1127 1 ! NONE
; 1128 1 !
; 1129 1 !--
; 1130 1
; 1131 2 BEGIN
; 1132 2
; 1133 2 MAP
; 1134 2 NAME : REF VECTOR [2];
; 1135 2
; 1136 2 INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
; 1137 2
; 1138 2 IF .LIBMNT [.INDEX, MNT_NAME_1] EQL .NAME [0] AND .LIBMNT [.INDEX, MNT_NAME_2] EQL .NAME [1]
; 1139 2 THEN
; 1140 2 RETURN .INDEX;
; 1141 2
; 1142 2 -1
; 1143 1 END; !OF MNT_INDEX
MNT_INDEX:
MOVE AC1,LIBHDR ; AC1,LIBHDR 402375' 200 01 0 00 000000* 1136
LDB AC5,C.50 ; AC5,[POINT 16,7(AC1),35] <0,16> 402376' 135 05 0 00 401627'
LDB AC2,C.51 ; AC2,[POINT 16,10(AC1),17] <18,16> 402377' 135 02 0 00 401630'
SUB AC5,AC2 ; AC5,AC2 402400' 274 05 0 00 000002
MOVE AC2,-1(SP) ; AC2,NAME 402401' 200 02 0 17 777777 1138
SETO AC1, ; INDEX, 402402' 474 01 0 00 000000 1136
JRST L.92 ; L.92 402403' 254 00 0 00 402416'
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 56
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (12)
L.91: MOVE AC4,LIBMNT ; AC4,LIBMNT 402404' 200 04 0 00 000000* 1138
MOVE AC3,AC1 ; AC3,INDEX 402405' 200 03 0 00 000001
IMULI AC3,2 ; AC3,2 402406' 221 03 0 00 000002
ADD AC4,AC3 ; AC4,AC3 402407' 270 04 0 00 000003
LDB AC3,C.9 ; AC3,[POINT 16,0(AC4),17] <18,16> 402410' 135 03 0 00 400230'
CAME AC3,0(AC2) ; AC3,0(AC2) 402411' 312 03 0 02 000000
JRST L.92 ; L.92 402412' 254 00 0 00 402416'
LDB AC3,C.10 ; AC3,[POINT 16,0(AC4),35] <0,16> 402413' 135 03 0 00 400231'
CAMN AC3,1(AC2) ; AC3,1(AC2) 402414' 316 03 0 02 000001
POPJ SP, ; SP, 402415' 263 17 0 00 000000 1140
L.92: ADDI AC1,1 ; INDEX,1 402416' 271 01 0 00 000001 1136
CAMGE AC1,AC5 ; INDEX,AC5 402417' 315 01 0 00 000005
JRST L.91 ; L.91 402420' 254 00 0 00 402404'
SETO AC1, ; AC1, 402421' 474 01 0 00 000000 1102
POPJ SP, ; SP, 402422' 263 17 0 00 000000
; Routine Size: 22 words
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 57
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (13)
; 1144 1 ROUTINE MNT_INSERT (NAME, BLOCK, OFFSET) =
; 1145 1
; 1146 1 !++
; 1147 1 ! FUNCTIONAL DESCRIPTION:
; 1148 1 !
; 1149 1 !
; 1150 1 !
; 1151 1 !
; 1152 1 ! FORMAL PARAMETERS:
; 1153 1 !
; 1154 1 !
; 1155 1 ! IMPLICIT INPUTS:
; 1156 1 !
; 1157 1 ! NONE
; 1158 1 !
; 1159 1 ! IMPLICIT OUTPUTS:
; 1160 1 !
; 1161 1 ! NONE
; 1162 1 !
; 1163 1 ! ROUTINE VALUE:
; 1164 1 !
; 1165 1 ! NONE
; 1166 1 !
; 1167 1 ! SIDE EFFECTS
; 1168 1 !
; 1169 1 ! NONE
; 1170 1 !
; 1171 1 !--
; 1172 1
; 1173 2 BEGIN
; 1174 2
; 1175 2 MAP
; 1176 2 NAME : REF VECTOR [2];
; 1177 2
; 1178 2 IF .LIBHDR [LIB_MNT_AVAILABLE] LEQ 0 THEN RETURN FALSE;
; 1179 2
; 1180 2 DECR INDEX FROM .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] TO 0 DO
; 1181 3 BEGIN
; 1182 3
; 1183 3 IF .INDEX GTR 0
; 1184 3 THEN
; 1185 3
; 1186 3 INCR SUB_INDEX FROM 0 TO MNT_LENGTH - 1 DO
; 1187 3 LIBMNT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0] = .LIBMNT [.INDEX - 1, .SUB_INDEX, 0, %BPVAL, 0];
; 1188 3
; 1189 4 IF (.INDEX EQL 0) OR (.LIBMNT [.INDEX, MNT_NAME_1] LSS .NAME [0]) OR (.LIBMNT [.INDEX, MNT_NAME_1] EQL
; 1190 4 .NAME [0] AND .LIBMNT [.INDEX, MNT_NAME_2] LSS .NAME [1])
; 1191 3 THEN
; 1192 3 EXITLOOP
; 1193 4 BEGIN
; 1194 4 LIBMNT [.INDEX, MNT_NAME_1] = .NAME [0];
; 1195 4 LIBMNT [.INDEX, MNT_NAME_2] = .NAME [1];
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 58
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (13)
; 1196 4 LIBMNT [.INDEX, MNT_BLOCK] = .BLOCK;
; 1197 4 LIBMNT [.INDEX, MNT_OFFSET] = .OFFSET;
; 1198 3 END;
; 1199 3
; 1200 2 END;
; 1201 2
; 1202 2 LIBHDR [LIB_MNT_AVAILABLE] = .LIBHDR [LIB_MNT_AVAILABLE] - 1;
; 1203 2 HDR_CHANGED = MNT_CHANGED = TRUE
; 1204 1 END; !OF MNT_INSERT
MNT_INSERT:
PUSH SP,AC13 ; SP,AC13 402423' 261 17 0 00 000013 1144
PUSH SP,AC14 ; SP,AC14 402424' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 402425' 261 17 0 00 000016
MOVE AC3,LIBHDR ; AC3,LIBHDR 402426' 200 03 0 00 000000* 1178
LDB AC2,C.71 ; AC2,[POINT 16,10(AC3),17] <18,16> 402427' 135 02 0 00 402364'
JUMPG AC2,L.93 ; AC2,L.93 402430' 327 02 0 00 402433'
SETZ AC1, ; AC1, 402431' 400 01 0 00 000000
JRST L.100 ; L.100 402432' 254 00 0 00 402530'
L.93: LDB AC1,C.70 ; AC1,[POINT 16,7(AC3),35] <0,16> 402433' 135 01 0 00 402363' 1180
SUB AC1,AC2 ; AC1,AC2 402434' 274 01 0 00 000002
AOJA AC1,L.98 ; AC1,L.98 402435' 344 01 0 00 402521'
L.94: JUMPLE AC1,L.96 ; INDEX,L.96 402436' 323 01 0 00 402457' 1183
MOVE AC14,AC1 ; AC14,INDEX 402437' 200 14 0 00 000001 1187
IMULI AC14,2 ; AC14,2 402440' 221 14 0 00 000002
MOVE AC2,AC1 ; AC2,INDEX 402441' 200 02 0 00 000001
SUBI AC2,1 ; AC2,1 402442' 275 02 0 00 000001
IMULI AC2,2 ; AC2,2 402443' 221 02 0 00 000002
SETZ AC5, ; SUB_INDEX, 402444' 400 05 0 00 000000 1186
L.95: MOVE AC4,LIBMNT ; AC4,LIBMNT 402445' 200 04 0 00 000000* 1187
ADD AC4,AC5 ; AC4,SUB_INDEX 402446' 270 04 0 00 000005
MOVE AC16,AC4 ; AC16,AC4 402447' 200 16 0 00 000004
ADD AC16,AC14 ; AC16,AC14 402450' 270 16 0 00 000014
ADD AC4,AC2 ; AC4,AC2 402451' 270 04 0 00 000002
MOVE AC13,0(AC4) ; AC13,0(AC4) 402452' 200 13 0 04 000000
MOVEM AC13,0(AC16) ; AC13,0(AC16) 402453' 202 13 0 16 000000
ADDI AC5,1 ; SUB_INDEX,1 402454' 271 05 0 00 000001 1186
CAIG AC5,1 ; SUB_INDEX,1 402455' 307 05 0 00 000001
JRST L.95 ; L.95 402456' 254 00 0 00 402445'
L.96: JUMPE AC1,L.97 ; INDEX,L.97 402457' 322 01 0 00 402503' 1189
MOVE AC4,LIBMNT ; AC4,LIBMNT 402460' 200 04 0 00 000000*
MOVE AC2,AC1 ; AC2,INDEX 402461' 200 02 0 00 000001
IMULI AC2,2 ; AC2,2 402462' 221 02 0 00 000002
ADD AC4,AC2 ; AC4,AC2 402463' 270 04 0 00 000002
MOVE AC2,-6(SP) ; AC2,NAME 402464' 200 02 0 17 777772
LDB AC5,C.9 ; AC5,[POINT 16,0(AC4),17] <18,16> 402465' 135 05 0 00 400230'
CAMGE AC5,0(AC2) ; AC5,0(AC2) 402466' 315 05 0 02 000000
JRST L.97 ; L.97 402467' 254 00 0 00 402503'
MOVE AC4,LIBMNT ; AC4,LIBMNT 402470' 200 04 0 00 000000*
MOVE AC2,AC1 ; AC2,INDEX 402471' 200 02 0 00 000001
IMULI AC2,2 ; AC2,2 402472' 221 02 0 00 000002
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 59
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (13)
ADD AC4,AC2 ; AC4,AC2 402473' 270 04 0 00 000002
MOVE AC2,-6(SP) ; AC2,NAME 402474' 200 02 0 17 777772 1190
LDB AC5,C.9 ; AC5,[POINT 16,0(AC4),17] <18,16> 402475' 135 05 0 00 400230' 1189
CAME AC5,0(AC2) ; AC5,0(AC2) 402476' 312 05 0 02 000000
JRST L.98 ; L.98 402477' 254 00 0 00 402521'
LDB AC5,C.10 ; AC5,[POINT 16,0(AC4),35] <0,16> 402500' 135 05 0 00 400231' 1190
CAML AC5,1(AC2) ; AC5,1(AC2) 402501' 311 05 0 02 000001
JRST L.98 ; L.98 402502' 254 00 0 00 402521'
L.97: MOVE AC5,LIBMNT ; AC5,LIBMNT 402503' 200 05 0 00 000000* 1194
MOVE AC2,AC1 ; AC2,INDEX 402504' 200 02 0 00 000001
IMULI AC2,2 ; AC2,2 402505' 221 02 0 00 000002
ADD AC5,AC2 ; AC5,AC2 402506' 270 05 0 00 000002
MOVE AC4,-6(SP) ; AC4,NAME 402507' 200 04 0 17 777772
MOVE AC2,0(AC4) ; AC2,0(AC4) 402510' 200 02 0 04 000000
DPB AC2,C.18 ; AC2,[POINT 16,0(AC5),17] <18,16> 402511' 137 02 0 00 400400'
MOVE AC2,1(AC4) ; AC2,1(AC4) 402512' 200 02 0 04 000001 1195
DPB AC2,C.19 ; AC2,[POINT 16,0(AC5),35] <0,16> 402513' 137 02 0 00 400401'
MOVE AC2,-5(SP) ; AC2,BLOCK 402514' 200 02 0 17 777773 1196
DPB AC2,C.20 ; AC2,[POINT 16,1(AC5),17] <18,16> 402515' 137 02 0 00 400402'
MOVE AC2,-4(SP) ; AC2,OFFSET 402516' 200 02 0 17 777774 1197
DPB AC2,C.21 ; AC2,[POINT 16,1(AC5),35] <0,16> 402517' 137 02 0 00 400403'
JRST L.99 ; L.99 402520' 254 00 0 00 402522' 1192
L.98: SOJGE AC1,L.94 ; INDEX,L.94 402521' 365 01 0 00 402436' 1180
L.99: LDB AC1,C.71 ; AC1,[POINT 16,10(AC3),17] <18,16> 402522' 135 01 0 00 402364' 1202
SUBI AC1,1 ; AC1,1 402523' 275 01 0 00 000001
DPB AC1,C.71 ; AC1,[POINT 16,10(AC3),17] <18,16> 402524' 137 01 0 00 402364'
MOVEI AC1,1 ; AC1,1 402525' 201 01 0 00 000001 1203
MOVEM AC1,MNT_CHANGED ; AC1,MNT_CHANGED 402526' 202 01 0 00 014023'
MOVEM AC1,HDR_CHANGED ; AC1,HDR_CHANGED 402527' 202 01 0 00 010021'
L.100: POP SP,AC16 ; SP,AC16 402530' 262 17 0 00 000016 1144
POP SP,AC14 ; SP,AC14 402531' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 402532' 262 17 0 00 000013
POPJ SP, ; SP, 402533' 263 17 0 00 000000
; Routine Size: 73 words
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 60
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (14)
; 1205 1 ROUTINE MNT_PURGE (BLOCK, OFFSET) : NOVALUE =
; 1206 1
; 1207 1 !++
; 1208 1 ! FUNCTIONAL DESCRIPTION:
; 1209 1 !
; 1210 1 !
; 1211 1 !
; 1212 1 !
; 1213 1 ! FORMAL PARAMETERS:
; 1214 1 !
; 1215 1 !
; 1216 1 ! IMPLICIT INPUTS:
; 1217 1 !
; 1218 1 ! NONE
; 1219 1 !
; 1220 1 ! IMPLICIT OUTPUTS:
; 1221 1 !
; 1222 1 ! NONE
; 1223 1 !
; 1224 1 ! ROUTINE VALUE:
; 1225 1 !
; 1226 1 ! NONE
; 1227 1 !
; 1228 1 ! SIDE EFFECTS
; 1229 1 !
; 1230 1 ! NONE
; 1231 1 !
; 1232 1 !--
; 1233 1
; 1234 2 BEGIN
; 1235 2
; 1236 2 LOCAL
; 1237 2 NEW_COUNT;
; 1238 2
; 1239 2 NEW_COUNT = 0;
; 1240 2
; 1241 2 INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
; 1242 3 BEGIN
; 1243 3
; 1244 3 IF .LIBMNT [.INDEX, MNT_BLOCK] NEQ .BLOCK OR .LIBMNT [.INDEX, MNT_OFFSET] NEQ .OFFSET
; 1245 3 THEN
; 1246 4 BEGIN
; 1247 4
; 1248 4 IF .INDEX NEQ .NEW_COUNT
; 1249 4 THEN
; 1250 4
; 1251 4 INCR SUB_INDEX FROM 0 TO MNT_LENGTH - 1 DO
; 1252 4 LIBMNT [.NEW_COUNT, .SUB_INDEX, 0, %BPVAL, 0] = .LIBMNT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0]
; 1253 4
; 1254 4 ;
; 1255 4 NEW_COUNT = .NEW_COUNT + 1;
; 1256 3 END;
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 61
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (14)
; 1257 3
; 1258 2 END;
; 1259 2
; 1260 3 IF .LIBHDR [LIB_MNT_AVAILABLE] NEQ (.LIBHDR [LIB_MNT_ALLOCATED] - .NEW_COUNT)
; 1261 2 THEN
; 1262 3 BEGIN
; 1263 3 LIBHDR [LIB_MNT_AVAILABLE] = .LIBHDR [LIB_MNT_ALLOCATED] - .NEW_COUNT;
; 1264 3 HDR_CHANGED = MNT_CHANGED = TRUE;
; 1265 2 END;
; 1266 2
; 1267 1 END; !OF MNT_PURGE
MNT_PURGE:
PUSH SP,AC10 ; SP,AC10 402534' 261 17 0 00 000010 1205
PUSH SP,AC11 ; SP,AC11 402535' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 402536' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 402537' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 402540' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 402541' 261 17 0 00 000016
SETZ AC1, ; NEW_COUNT, 402542' 400 01 0 00 000000 1239
MOVE AC4,LIBHDR ; AC4,LIBHDR 402543' 200 04 0 00 000000* 1241
LDB AC2,C.80 ; AC2,[POINT 16,7(AC4),35] <0,16> 402544' 135 02 0 00 402627'
LDB AC3,C.81 ; AC3,[POINT 16,10(AC4),17] <18,16> 402545' 135 03 0 00 402630'
SUB AC2,AC3 ; AC2,AC3 402546' 274 02 0 00 000003
MOVE AC12,LIBMNT ; AC12,LIBMNT 402547' 200 12 0 00 000000* 1244
SETO AC11, ; INDEX, 402550' 474 11 0 00 000000 1241
JRST L.105 ; L.105 402551' 254 00 0 00 402604'
L.101: MOVE AC14,AC11 ; AC14,INDEX 402552' 200 14 0 00 000011 1244
IMULI AC14,2 ; AC14,2 402553' 221 14 0 00 000002
MOVE AC3,AC12 ; AC3,AC12 402554' 200 03 0 00 000012
ADD AC3,AC14 ; AC3,AC14 402555' 270 03 0 00 000014
LDB AC5,C.24 ; AC5,[POINT 16,1(AC3),17] <18,16> 402556' 135 05 0 00 400501'
CAME AC5,-10(SP) ; AC5,BLOCK 402557' 312 05 0 17 777770
JRST L.102 ; L.102 402560' 254 00 0 00 402564'
LDB AC5,C.25 ; AC5,[POINT 16,1(AC3),35] <0,16> 402561' 135 05 0 00 400502'
CAMN AC5,-7(SP) ; AC5,OFFSET 402562' 316 05 0 17 777771
JRST L.105 ; L.105 402563' 254 00 0 00 402604'
L.102: CAMN AC11,AC1 ; INDEX,NEW_COUNT 402564' 316 11 0 00 000001 1248
JRST L.104 ; L.104 402565' 254 00 0 00 402603'
MOVE AC13,AC1 ; AC13,NEW_COUNT 402566' 200 13 0 00 000001 1252
IMULI AC13,2 ; AC13,2 402567' 221 13 0 00 000002
SETZ AC3, ; SUB_INDEX, 402570' 400 03 0 00 000000 1251
L.103: MOVE AC5,AC12 ; AC5,AC12 402571' 200 05 0 00 000012 1252
ADD AC5,AC3 ; AC5,SUB_INDEX 402572' 270 05 0 00 000003
MOVE AC16,AC5 ; AC16,AC5 402573' 200 16 0 00 000005
ADD AC16,AC13 ; AC16,AC13 402574' 270 16 0 00 000013
ADD AC5,AC14 ; AC5,AC14 402575' 270 05 0 00 000014
MOVE AC10,0(AC5) ; AC10,0(AC5) 402576' 200 10 0 05 000000
MOVEM AC10,0(AC16) ; AC10,0(AC16) 402577' 202 10 0 16 000000
ADDI AC3,1 ; SUB_INDEX,1 402600' 271 03 0 00 000001 1251
CAIG AC3,1 ; SUB_INDEX,1 402601' 307 03 0 00 000001
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 62
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (14)
JRST L.103 ; L.103 402602' 254 00 0 00 402571'
L.104: ADDI AC1,1 ; NEW_COUNT,1 402603' 271 01 0 00 000001 1255
L.105: ADDI AC11,1 ; INDEX,1 402604' 271 11 0 00 000001 1241
CAMGE AC11,AC2 ; INDEX,AC2 402605' 315 11 0 00 000002
JRST L.101 ; L.101 402606' 254 00 0 00 402552'
LDB AC2,C.80 ; AC2,[POINT 16,7(AC4),35] <0,16> 402607' 135 02 0 00 402627' 1260
SUB AC2,AC1 ; AC2,NEW_COUNT 402610' 274 02 0 00 000001
LDB AC3,C.81 ; AC3,[POINT 16,10(AC4),17] <18,16> 402611' 135 03 0 00 402630'
CAMN AC3,AC2 ; AC3,AC2 402612' 316 03 0 00 000002
JRST L.106 ; L.106 402613' 254 00 0 00 402620'
DPB AC2,C.81 ; AC2,[POINT 16,10(AC4),17] <18,16> 402614' 137 02 0 00 402630' 1263
MOVEI AC1,1 ; AC1,1 402615' 201 01 0 00 000001 1264
MOVEM AC1,MNT_CHANGED ; AC1,MNT_CHANGED 402616' 202 01 0 00 014023'
MOVEM AC1,HDR_CHANGED ; AC1,HDR_CHANGED 402617' 202 01 0 00 010021'
L.106: POP SP,AC16 ; SP,AC16 402620' 262 17 0 00 000016 1205
POP SP,AC14 ; SP,AC14 402621' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 402622' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 402623' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 402624' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 402625' 262 17 0 00 000010
POPJ SP, ; SP, 402626' 263 17 0 00 000000
C.80: POINT 16,7(AC4),35 ; 16,7(AC4),35 402627' 00 20 0 04 000007
C.81: POINT 16,10(AC4),17 ; 16,10(AC4),17 402630' 22 20 0 04 000010
; Routine Size: 61 words
; 1268 1
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 63
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)
; 1269 1 GLOBAL ROUTINE MODULE_DELETE (NAME) =
; 1270 1
; 1271 1 !++
; 1272 1 ! FUNCTIONAL DESCRIPTION:
; 1273 1 !
; 1274 1 !
; 1275 1 !
; 1276 1 !
; 1277 1 ! FORMAL PARAMETERS:
; 1278 1 !
; 1279 1 !
; 1280 1 ! IMPLICIT INPUTS:
; 1281 1 !
; 1282 1 ! NONE
; 1283 1 !
; 1284 1 ! IMPLICIT OUTPUTS:
; 1285 1 !
; 1286 1 ! NONE
; 1287 1 !
; 1288 1 ! ROUTINE VALUE:
; 1289 1 !
; 1290 1 ! NONE
; 1291 1 !
; 1292 1 ! SIDE EFFECTS
; 1293 1 !
; 1294 1 ! NONE
; 1295 1 !
; 1296 1 !--
; 1297 1
; 1298 2 BEGIN
; 1299 2
; 1300 2 MAP
; 1301 2 NAME : REF VECTOR [2];
; 1302 2
; 1303 2 LOCAL
; 1304 2 ENTRY_FOUND;
; 1305 2
; 1306 2 ENTRY_FOUND = FALSE;
; 1307 2
; 1308 2 INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
; 1309 2
; 1310 2 IF .ENTRY_FOUND
; 1311 2 THEN
; 1312 2
; 1313 2 INCR SUB_INDEX FROM 0 TO MNT_LENGTH - 1 DO
; 1314 2 LIBMNT [.INDEX - 1, .SUB_INDEX, 0, %BPVAL, 0] = .LIBMNT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0]
; 1315 2
; 1316 2 ELSE
; 1317 2
; 1318 2 IF .LIBMNT [.INDEX, MNT_NAME_1] EQL .NAME [0] AND .LIBMNT [.INDEX, MNT_NAME_2] EQL .NAME [1]
; 1319 2 THEN
; 1320 3 BEGIN
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 64
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)
; 1321 3 ENTRY_FOUND = TRUE;
; 1322 3 LIBHDR [LIB_MNT_AVAILABLE] = .LIBHDR [LIB_MNT_AVAILABLE] + 1;
; 1323 3 MNT_CHANGED = TRUE;
; 1324 3 EPT_PURGE (.LIBMNT [.INDEX, MNT_BLOCK], .LIBMNT [.INDEX, MNT_OFFSET]);
; 1325 3 HDR_DELETE (.LIBMNT [.INDEX, MNT_BLOCK], .LIBMNT [.INDEX, MNT_OFFSET]);
; 1326 2 END;
; 1327 2
; 1328 2 IF .ENTRY_FOUND
; 1329 2 THEN
; 1330 3 BEGIN
; 1331 3
; 1332 3 IF NOT .FLAGS [M_FAST] THEN LIBUPD ();
; 1333 3
; 1334 3 TYPLN (0, CH$ASCIZ ('[Module "%2R" deleted]'), .NAME [0], .NAME [1]);
; 1335 3 TRUE
; 1336 3 END
; 1337 2 ELSE
; 1338 3 BEGIN
; 1339 3 PUTLN (1, CH$ASCIZ (FATAL, 'No module named "%2R"'), .NAME [0], .NAME [1]);
; 1340 3 FALSE
; 1341 3 END
; 1342 3
; 1343 1 END; !OF MODULE_DELETE
P.AAS: BYTE (7)"[","M","o","d","u" ; [Modu 402631' 133 115 157 144 165
BYTE (7)"l","e"," ",042,"%" ; le "% 402632' 154 145 040 042 045
BYTE (7)"2","R",042," ","d" ; 2R" d 402633' 062 122 042 040 144
BYTE (7)"e","l","e","t","e" ; elete 402634' 145 154 145 164 145
BYTE (7)"d","]",000,000,000 ; d] 402635' 144 135 000 000 000
P.AAT: BYTE (7)"*","F","A","T","A" ; *FATA 402636' 052 106 101 124 101
BYTE (7)"L","*"," "," ","N" ; L* N 402637' 114 052 040 040 116
BYTE (7)"o"," ","m","o","d" ; o mod 402640' 157 040 155 157 144
BYTE (7)"u","l","e"," ","n" ; ule n 402641' 165 154 145 040 156
BYTE (7)"a","m","e","d"," " ; amed 402642' 141 155 145 144 040
BYTE (7)042,"%","2","R",042 ; "%2R" 402643' 042 045 062 122 042
BYTE (7)000,000,000,000,000 ; 402644' 000 000 000 000 000
MODULE_DELETE::
PUSH SP,AC11 ; SP,AC11 402645' 261 17 0 00 000011 1269
PUSH SP,AC12 ; SP,AC12 402646' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 402647' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 402650' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 402651' 261 17 0 00 000016
ADJSP SP,2 ; SP,2 402652' 105 17 0 00 000002
SETZ AC12, ; ENTRY_FOUND, 402653' 400 12 0 00 000000 1306
MOVE AC1,LIBHDR ; AC1,LIBHDR 402654' 200 01 0 00 000000* 1308
LDB AC14,C.50 ; AC14,[POINT 16,7(AC1),35] <0,16> 402655' 135 14 0 00 401627'
LDB AC2,C.51 ; AC2,[POINT 16,10(AC1),17] <18,16> 402656' 135 02 0 00 401630'
SUB AC14,AC2 ; AC14,AC2 402657' 274 14 0 00 000002
SETO AC16, ; INDEX, 402660' 474 16 0 00 000000
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 65
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)
JRST L.110 ; L.110 402661' 254 00 0 00 402743'
L.107: MOVE AC5,LIBMNT ; AC5,LIBMNT 402662' 200 05 0 00 000000* 1314
MOVE AC13,AC16 ; AC13,INDEX 402663' 200 13 0 00 000016
IMULI AC13,2 ; AC13,2 402664' 221 13 0 00 000002
TRNN AC12,1 ; ENTRY_FOUND,1 402665' 606 12 0 00 000001 1310
JRST L.109 ; L.109 402666' 254 00 0 00 402706'
MOVE AC3,AC16 ; AC3,INDEX 402667' 200 03 0 00 000016 1314
SUBI AC3,1 ; AC3,1 402670' 275 03 0 00 000001
IMULI AC3,2 ; AC3,2 402671' 221 03 0 00 000002
SETZ AC1, ; SUB_INDEX, 402672' 400 01 0 00 000000 1313
L.108: MOVE AC2,AC5 ; AC2,AC5 402673' 200 02 0 00 000005 1314
ADD AC2,AC1 ; AC2,SUB_INDEX 402674' 270 02 0 00 000001
MOVE AC4,AC2 ; AC4,AC2 402675' 200 04 0 00 000002
ADD AC4,AC3 ; AC4,AC3 402676' 270 04 0 00 000003
ADD AC2,AC13 ; AC2,AC13 402677' 270 02 0 00 000013
MOVE AC11,0(AC2) ; AC11,0(AC2) 402700' 200 11 0 02 000000
MOVEM AC11,0(AC4) ; AC11,0(AC4) 402701' 202 11 0 04 000000
ADDI AC1,1 ; SUB_INDEX,1 402702' 271 01 0 00 000001 1313
CAIG AC1,1 ; SUB_INDEX,1 402703' 307 01 0 00 000001
JRST L.108 ; L.108 402704' 254 00 0 00 402673'
JRST L.110 ; L.110 402705' 254 00 0 00 402743' 1310
L.109: MOVE AC2,AC5 ; AC2,AC5 402706' 200 02 0 00 000005 1318
ADD AC2,AC13 ; AC2,AC13 402707' 270 02 0 00 000013
MOVE AC1,-10(SP) ; AC1,NAME 402710' 200 01 0 17 777770
LDB AC3,C.4 ; AC3,[POINT 16,0(AC2),17] <18,16> 402711' 135 03 0 00 400052'
CAME AC3,0(AC1) ; AC3,0(AC1) 402712' 312 03 0 01 000000
JRST L.110 ; L.110 402713' 254 00 0 00 402743'
LDB AC3,C.82 ; AC3,[POINT 16,0(AC2),35] <0,16> 402714' 135 03 0 00 403015'
CAME AC3,1(AC1) ; AC3,1(AC1) 402715' 312 03 0 01 000001
JRST L.110 ; L.110 402716' 254 00 0 00 402743'
MOVEI AC12,1 ; ENTRY_FOUND,1 402717' 201 12 0 00 000001 1321
MOVE AC1,LIBHDR ; AC1,LIBHDR 402720' 200 01 0 00 000000* 1322
LDB AC3,C.51 ; AC3,[POINT 16,10(AC1),17] <18,16> 402721' 135 03 0 00 401630'
ADDI AC3,1 ; AC3,1 402722' 271 03 0 00 000001
DPB AC3,C.51 ; AC3,[POINT 16,10(AC1),17] <18,16> 402723' 137 03 0 00 401630'
MOVEI AC1,1 ; AC1,1 402724' 201 01 0 00 000001 1323
MOVEM AC1,MNT_CHANGED ; AC1,MNT_CHANGED 402725' 202 01 0 00 014023'
LDB AC1,C.33 ; AC1,[POINT 16,1(AC2),17] <18,16> 402726' 135 01 0 00 401373' 1324
PUSH SP,AC1 ; SP,AC1 402727' 261 17 0 00 000001
LDB AC1,C.34 ; AC1,[POINT 16,1(AC2),35] <0,16> 402730' 135 01 0 00 401374'
PUSH SP,AC1 ; SP,AC1 402731' 261 17 0 00 000001
PUSHJ SP,EPT_PURGE ; SP,EPT_PURGE 402732' 260 17 0 00 400404'
MOVE AC1,LIBMNT ; AC1,LIBMNT 402733' 200 01 0 00 000000* 1325
ADD AC1,AC13 ; AC1,AC13 402734' 270 01 0 00 000013
LDB AC2,C.60 ; AC2,[POINT 16,1(AC1),17] <18,16> 402735' 135 02 0 00 402351'
PUSH SP,AC2 ; SP,AC2 402736' 261 17 0 00 000002
LDB AC2,C.83 ; AC2,[POINT 16,1(AC1),35] <0,16> 402737' 135 02 0 00 403016'
PUSH SP,AC2 ; SP,AC2 402740' 261 17 0 00 000002
PUSHJ SP,HDR_DELETE ; SP,HDR_DELETE 402741' 260 17 0 00 401412'
ADJSP SP,-4 ; SP,-4 402742' 105 17 0 00 777774 1320
L.110: ADDI AC16,1 ; INDEX,1 402743' 271 16 0 00 000001 1308
CAMGE AC16,AC14 ; INDEX,AC14 402744' 315 16 0 00 000014
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 66
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)
JRST L.107 ; L.107 402745' 254 00 0 00 402662'
MOVE AC16,-10(SP) ; AC16,NAME 402746' 200 16 0 17 777770 1334
MOVEI AC1,-1(SP) ; AC1,PRM_LIST 402747' 201 01 0 17 777777
MOVE AC14,AC1 ; AC14,AC1 402750' 200 14 0 00 000001
ADDI AC14,1 ; AC14,1 402751' 271 14 0 00 000001
MOVE AC13,AC16 ; AC13,AC16 402752' 200 13 0 00 000016
ADDI AC13,1 ; AC13,1 402753' 271 13 0 00 000001
TRNN AC12,1 ; ENTRY_FOUND,1 402754' 606 12 0 00 000001 1328
JRST L.111 ; L.111 402755' 254 00 0 00 402774'
MOVEI AC1,40 ; AC1,40 402756' 201 01 0 00 000040 1332
TDNN AC1,FLAGS ; AC1,FLAGS 402757' 616 01 0 00 000000*
PUSHJ SP,LIBUPD ; SP,LIBUPD 402760' 260 17 0 00 401500'
MOVE AC1,0(AC16) ; AC1,0(AC16) 402761' 200 01 0 16 000000 1334
MOVEM AC1,-1(SP) ; AC1,PRM_LIST 402762' 202 01 0 17 777777
MOVE AC1,0(AC13) ; AC1,0(AC13) 402763' 200 01 0 13 000000
MOVEM AC1,0(AC14) ; AC1,0(AC14) 402764' 202 01 0 14 000000
PUSH SP,C.11 ; SP,[0] 402765' 261 17 0 00 400232'
PUSH SP,C.84 ; SP,[POINT 7,P.AAS-1,34] <1,7> 402766' 261 17 0 00 403017'
MOVEI AC1,-3(SP) ; AC1,PRM_LIST 402767' 201 01 0 17 777775
PUSH SP,AC1 ; SP,AC1 402770' 261 17 0 00 000001
PUSHJ SP,TYPLIN ; SP,TYPLIN 402771' 260 17 0 00 000000*
MOVEI AC1,1 ; AC1,1 402772' 201 01 0 00 000001 1328
JRST L.112 ; L.112 402773' 254 00 0 00 403006'
L.111: MOVE AC1,0(AC16) ; AC1,0(AC16) 402774' 200 01 0 16 000000 1339
MOVEM AC1,-1(SP) ; AC1,PRM_LIST 402775' 202 01 0 17 777777
MOVE AC1,0(AC13) ; AC1,0(AC13) 402776' 200 01 0 13 000000
MOVEM AC1,0(AC14) ; AC1,0(AC14) 402777' 202 01 0 14 000000
PUSH SP,C.6 ; SP,[1] 403000' 261 17 0 00 400054'
PUSH SP,C.85 ; SP,[POINT 7,P.AAT-1,34] <1,7> 403001' 261 17 0 00 403020'
MOVEI AC1,-3(SP) ; AC1,PRM_LIST 403002' 201 01 0 17 777775
PUSH SP,AC1 ; SP,AC1 403003' 261 17 0 00 000001
PUSHJ SP,PUTLIN ; SP,PUTLIN 403004' 260 17 0 00 000000*
SETZ AC1, ; AC1, 403005' 400 01 0 00 000000 1328
L.112: ADJSP SP,-5 ; SP,-5 403006' 105 17 0 00 777773 1298
POP SP,AC16 ; SP,AC16 403007' 262 17 0 00 000016 1269
POP SP,AC14 ; SP,AC14 403010' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 403011' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 403012' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 403013' 262 17 0 00 000011
POPJ SP, ; SP, 403014' 263 17 0 00 000000
C.82: POINT 16,0(AC2),35 ; 16,0(AC2),35 403015' 00 20 0 02 000000
C.83: POINT 16,1(AC1),35 ; 16,1(AC1),35 403016' 00 20 0 01 000001
C.84: POINT 7,P.AAS-1,34 ; 7,P.AAS-1,34 403017' 01 07 0 00 402630'
C.85: POINT 7,P.AAT-1,34 ; 7,P.AAT-1,34 403020' 01 07 0 00 402635'
; Routine Size: 108 words
; 1344 1
; 1345 1 END
; 1346 1
; 1347 0 ELUDOM
LBRLIB 12-Apr-1985 07:12:00 TOPS-20 Bliss-36 4A(225) Page 67
001030 30-Dec-1982 17:40:05 DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)
; Low segment length: 6165 words
; High segment length: 1553 words
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks Processing
; File Total Loaded Percent Read Time
;
; DNET61:<DECNET.UTILITIES>LBRCOM.L36.2 705 77 10 33 00:00.1
; Size: 1378 code + 6340 data words
; Run Time: 00:23.6
; Elapsed Time: 00:26.8
; Lines/CPU Min: 3420
; Lexemes/CPU-Min: 43545
; Memory Used: 66 pages
; Compilation Complete