Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/nml/nmlvdb.lst
There are no other files named nmlvdb.lst in the archive.
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 1
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0001 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 8-Dec-82 11:45:13, Edit by BRANDT
; 0002 !
; 0003 ! Ident 89.
; 0004 ! Change MATCH_NODE_ID so that it checks only for matching addresses
; 0005 ! rather than matching addresses and names.
; 0006 !
; 0007 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 13-Oct-82 10:54:23, Edit by BRANDT
; 0008 !
; 0009 ! Ident 88.
; 0010 ! For CLEAR functions in NML$VDB, modify the code for returning
; 0011 ! value. Before this edit, the right conditions would return the
; 0012 ! value of of an uninitialized local variable (NMX).
; 0013 !
; 0014 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 12-Oct-82 00:45:32, Edit by BRANDT
; 0015 !
; 0016 ! Ident 87.
; 0017 ! In VDB_CHANGE, when setting a SERVICE CIRCUIT parameter for a
; 0018 ! node, don't fail with a CWS error if the circuit is already
; 0019 ! assigned to that node.
; 0020 !
; 0021 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 11-Oct-82 12:23:14, Edit by BRANDT
; 0022 !
; 0023 ! Ident 86.
; 0024 ! In NML$VDB add additional code to return a CWS error for CLEAR
; 0025 ! ALL, CLEAR NAME, and CLEAR ADDRESS operations for the executor
; 0026 ! node.
; 0027 !
; 0028 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 28-Sep-82 13:43:41, Edit by BRANDT
; 0029 !
; 0030 ! Ident 85.
; 0031 ! In NML$VDB add additional code to return ERR_DETAIL for errors
; 0032 ! CWS and IID.
; 0033 !
; 0034 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 28-Sep-82 12:39:14, Edit by BRANDT
; 0035 !
; 0036 ! Ident 84.
; 0037 ! In ENTITY_IS_VALID, for NODE entities, check for OCM error if MCB
; 0038 ! and REE error if TOPS20.
; 0039 !
; 0040 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.2 28-Sep-82 11:13:07, Edit by PECKHAM
; 0041 !
; 0042 ! Ident 83.
; 0043 ! Fix X_NOD_NDB dot bugs in NML$VDB_INITIALIZE for setting
; 0044 ! EXECUTOR HOST and IDENTIFICATION parameters (introduced by #76).
; 0045 ! Fix NML$SET_VDB_PARAMETER not to exclude node entity changes.
; 0046 !
; 0047 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 27-Sep-82 15:38:41, Edit by BRANDT
; 0048 !
; 0049 ! Ident 82.
; 0050 ! In ENTITY_IS_VALID, for NODE entities, check for OCM error rather
; 0051 ! than REE error.
; 0052 !
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 2
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0053 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 23-Sep-82 9:38:14, Edit by BRANDT
; 0054 !
; 0055 ! Ident 81.
; 0056 ! In NML$VDB add additional argument ERR_DETAIL for returning the
; 0057 ! error detail field for response messages signalling errors.
; 0058 !
; 0059 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 20-Sep-82 16:49:32, Edit by BRANDT
; 0060 !
; 0061 ! Ident 80.
; 0062 ! More for edit 78. Change the way ENTITY_IS_VALID checks for a
; 0063 ! NODE entity since a valid LOOP node will have a zero address.
; 0064 ! Also, in NML$VDB, for SET functions, add a check to see if the
; 0065 ! NODE parameters specified for either SERVICE CIRCUIT or CIRCUIT
; 0066 ! are valid entities.
; 0067 !
; 0068 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 20-Sep-82 10:29:57, Edit by BRANDT
; 0069 !
; 0070 ! Ident 79.
; 0071 ! In NML$VDB, for SET functions, add a check to see if the parameter
; 0072 ! is applicable for executor nodes only. If it
; 0073 ! turns out that the parameter is a lower layer parameter, $NML$SET
; 0074 ! is called rather than VDB_CHANGE. (VDB_CHANGE calls APPLICABLE,
; 0075 ! $NML$SET does not.) So, if an executor node only param (e.g.,
; 0076 ! DELAY FACTOR) that is a lower layer param is specified for an
; 0077 ! entity that is not the executor, we miss the call to APPLICABLE,
; 0078 ! and the NTMAN JSYS does the wrong thing--sets the parameter for
; 0079 ! the executor.
; 0080 !
; 0081 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 20-Sep-82 9:43:27, Edit by BRANDT
; 0082 !
; 0083 ! Ident 78.
; 0084 ! In NML$VDB, for SHOW functions, immediately return the error code
; 0085 ! from VDB_READ for REE as well as URC errors. Since VDB_READ
; 0086 ! calls ENTITY_IS_VALID, the URC error is valid for NML as well as
; 0087 ! lower layers. Without this fix, a SHOW NODE X with the DN20 as
; 0088 ! EXECUTOR will succeed even though X is invalid.
; 0089 !
; 0090 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 17-Sep-82 13:34:43, Edit by BRANDT
; 0091 !
; 0092 ! Ident 77.
; 0093 ! In REMOVE_PARAMETER, fix code that loops over PVB so that CLEAR
; 0094 ! ALL works. As loop was coded, some parameters were deleted more
; 0095 ! than once since after a deletion, the PVB is compacted but we
; 0096 ! always advanced on to the next entry. Eventually, we reach the
; 0097 ! "old copies" of entries that have already bubbled up the vector.
; 0098 ! This caused problems when we tried to re-release any dynamic
; 0099 ! memory associated with the entry.
; 0100 !
; 0101 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 15-Sep-82 13:43:34, Edit by BRANDT
; 0102 !
; 0103 ! Ident 76.
; 0104 ! Move the executor node's EDB and its associated parameter vector
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 3
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0105 ! from OWN storage to dynamic storage. Then when a command is given
; 0106 ! to modify an executor parameter, we don't die trying to deallocate
; 0107 ! a chunk of permanent data.
; 0108 !
; 0109 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.2 13-Sep-82 09:59:03, Edit by PECKHAM
; 0110 !
; 0111 ! Ident 75.
; 0112 ! Correct input to INSERT_PARAMETER for HOST (bug introduced by #73).
; 0113 !
; 0114 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 2-Sep-82 13:43:34, Edit by BRANDT
; 0115 !
; 0116 ! Ident 74.
; 0117 ! Special case SET NODE foo ADDRESS so it returns CWS error
; 0118 ! if foo is the EXECUTOR.
; 0119 !
; 0120 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.7 2-Sep-82 10:19:42, Edit by PECKHAM
; 0121 !
; 0122 ! Ident 73.
; 0123 ! Remove the default EXECUTOR IDENTIFICATION for NMLMCB
; 0124 ! (it will be set by NMLEVT).
; 0125 ! Move PRM_BFR from NML$SET_VDB_PARAMETER to module
; 0126 ! (for access by NML$VDB_INITIALIZE).
; 0127 ! Make NML$VDB_INITIALIZE get EXECUTOR HOST from SC for NMLMCB.
; 0128 ! Fix NML$VDB to set EXECUTOR HOST to NMX for NMLMCB.
; 0129 !
; 0130 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.2 29-Jun-82 15:31:35, Edit by PECKHAM
; 0131 !
; 0132 ! Ident 72.
; 0133 ! Fix duplicate executor node in returned node list from NML$VDB.
; 0134 !
; 0135 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 22-Jun-82 17:34:43, Edit by BRANDT
; 0136 !
; 0137 ! Ident 71.
; 0138 ! Move the check in READ_PARAMETER so that a buffer length of at
; 0139 ! least 3 is quaranteed before calling READ_PARAMETER_DATA.
; 0140 ! The current check is useless once we get into the loop.
; 0141 !
; 0142 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 9-Jun-82 14:34:43, Edit by BRANDT
; 0143 !
; 0144 ! Ident 70.
; 0145 ! In READ_PARAMETER_DATA always check the current available space
; 0146 ! remaining in the buffer before copying in any data.
; 0147 ! This was not done for multiple field parameters, and so buffer
; 0148 ! overflow occurred. Also, in READ_PARAMETER, check for an initial
; 0149 ! availability of at least 3 bytes, since each entry requires a 3
; 0150 ! byte header.
; 0151 !
; 0152 !
; 0153 ! Ident 69.
; 0154 ! Remove TOPS20 accomodation for NICE$_IID.
; 0155 ! Do not change parameters in INSERT_PARAMETER if they are read-only.
; 0156 ! Add PRIVLEDGED parameter to INSERT_PARAMETER to allow read-only override.
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 4
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0157 ! Conditionalize filter handling.
; 0158 !
; 0159 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.5 27-May-82 10:20:08, Edit by PECKHAM
; 0160 !
; 0161 ! Ident 68.
; 0162 ! Incorrect assumptions were being made about the executor entry in
; 0163 ! the returned node list from $NML$RETURN in NML$VDB.
; 0164 ! Fix it so the returned length is correct.
; 0165 ! Do not play with EXECUTOR for return LOOP NODES.
; 0166 ! Accomodate TOPS20's return of NICE$_IID to loop nodes by changing
; 0167 ! that return status to NICE$_URC.
; 0168 !
; 0169 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.2 24-May-82 09:35:07, Edit by PECKHAM
; 0170 !
; 0171 ! Ident 67.
; 0172 ! Fix NML$VDB_INITIALIZE to dynamically set the IDENTIFICATION
; 0173 ! instead of hard-coding it.
; 0174 ! This is to keep from crashing when someone CLEARs it!
; 0175 !
; 0176 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.5 20-May-82 14:58:04, Edit by PECKHAM
; 0177 !
; 0178 ! Ident 66.
; 0179 ! Move the code that disables display of CIRCUIT/LINE STATE
; 0180 ! from READ_PARAMETER_DATA to READ_PARAMETERS.
; 0181 ! Also allow display for the TOPS20 version.
; 0182 ! Optimize code in READ_PARAMETERS.
; 0183 ! Optimize layer choice code in NML$VDB and
; 0184 ! avoid setting state in lower layer for TOPS20.
; 0185 !
; 0186 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 14-May-82 10:34:43, Edit by BRANDT
; 0187 !
; 0188 ! Ident 65.
; 0189 ! Have ENTITY_IS_VALID return $TRUE for a node only when there is
; 0190 ! a non zero address specified in the entity id.
; 0191 ! At this time, the entity id will be the full id, and if an
; 0192 ! address is associated with the name, it will be specified.
; 0193 !
; 0194 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.6 14-May-82 17:50:16, Edit by PECKHAM
; 0195 !
; 0196 ! Ident 64.
; 0197 ! Fix TOPS20 'SHO KNO/ACT CIR' to call new routine NMU$DLX_RETURN_CIRCUITS
; 0198 ! to get circuit list.
; 0199 ! Move NMU$DLX_KNOWN_DEVICE synonym to NMUCOM.
; 0200 ! Fix returned NODE lists to have the EXECUTOR node first
; 0201 ! Fix TOPS20 SHOW CIRCUIT to return success if RESULT was URC
; 0202 ! and ENTITY_IS_VALID. This is so circuits with no data bases get recognized.
; 0203 !
; 0204 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 14-May-82 10:34:43, Edit by BRANDT
; 0205 !
; 0206 ! Ident 63.
; 0207 ! Special case the STATE parameter in READ_PARAMETER_DATA and do
; 0208 ! not return any information from the VDB.
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 5
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0209 ! Routine NML$GET_VDB_PARAMETER will still be able to obtain this
; 0210 ! parameter from the VDB.
; 0211 ! This fix prevents the SHOW commands from displaying this
; 0212 ! parameter twice; once from the VDB and once from the lower layer.
; 0213 ! However, other NML processes can still access the data from the
; 0214 ! VDB.
; 0215 !
; 0216 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 10-May-82 10:34:43, Edit by BRANDT
; 0217 !
; 0218 ! Ident 62.
; 0219 ! Rework of edit 60. Have ENTITY_IS_VALID always return TRUE for
; 0220 ! NODE entities. This is as it was before. In routine VDB_READ,
; 0221 ! don't call ENTITY_IS_VALID if no entry exists in the volatile
; 0222 ! database. Have VDB_READ return URC error. If the entity does
; 0223 ! exist in a lower layer, the routine that called VDB_READ will
; 0224 ! discover this and not return the error. This eliminates special
; 0225 ! case checking in ENTITY_IS_VALID to see if this function is a
; 0226 ! READ or SET, since it is legal to do a SET on a node that does not
; 0227 ! yet exist in the database.
; 0228 !
; 0229 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.1 10-May-82 9:44:43, Edit by BRANDT
; 0230 !
; 0231 ! Ident 61.
; 0232 ! Fix ENTITY_IS_VALID so that for NODE entities, it checks the
; 0233 ! lower layers for the existence of the entity. As is, it always
; 0234 ! returns TRUE for NODE entities, and so a SHOW for a non-existent
; 0235 ! node returns a NICE success code.
; 0236 !
; 0237 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.18 7-May-82 13:36:34, Edit by BRANDT
; 0238 !
; 0239 ! Ident 60.
; 0240 ! Fix NML$VDB and READ_PARAMETER so that NICE$_REE gets returned
; 0241 ! on read functions when the buffer is inadequate.
; 0242 !
; 0243 ! <PLATUKIS>NMLVDB.BLI.4 6-May-82 14:26:52, Edit by PLATUKIS
; 0244 ! ident 59.
; 0245 ! disallow changing of local node name in routine NML$VDB.
; 0246 !
; 0247 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.3 6-May-82 09:53:27, Edit by PECKHAM
; 0248 !
; 0249 ! Ident 58.
; 0250 ! Allow NML$*_VDB_PARAMETER to override set/clear restrictions:
; 0251 ! Add PRIVLEDGED switch to REMOVE_PARAMETER and REMOVE_QUALIFIED_PARAMETER.
; 0252 !
; 0253 ! <BRANDT.DEVELOPMENT>NMLVDB.BLI.18 5-May-82 12:36:34, Edit by BRANDT
; 0254 !
; 0255 ! Ident 57.
; 0256 ! Remove "Loadtest" from executor node identification parameter
; 0257 !
; 0258 ! <VOBA.NML.DEVELOPMENT>NMLVDB.BLI.18 14-Apr-82 14:36:34, Edit by VOBA
; 0259 !
; 0260 ! Ident 56.
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 6
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0261 ! Fix REMOVE_PARAMETER to generate optimized code for the MCB.
; 0262 ! Fix it to clear all parameters appropriately, as well.
; 0263 ! Add REMOVE_QUALIFIED_PARAMETER for X25-ACCESS volatile data base.
; 0264 ! Fix bug in $NML$SHOW macro call (missing actual parameter), in routine
; 0265 ! ENTITY_IS_VALID.
; 0266 !
; 0267 ! <VOBA.NML.DEVELOPMENT>NMLVDB.BLI.88 25-Mar-82 18:12:36, Edit by VOBA
; 0268 !
; 0269 ! Ident 55.
; 0270 ! Add code to handle MODULE X25-ACCESS volatile data base.
; 0271 !
; 0272 ! <VOBA.NML.DEVELOPMENT>NMLVDB.BLI.15 10-Mar-82 14:12:00, Edit by VOBA
; 0273 !
; 0274 ! Ident 54.
; 0275 ! Condition the X.25 code checking the validity of MODULE entity not to
; 0276 ! be included in the source for now (until we have the X.25 gateway in place).
; 0277 ! Fix a number of bugs in the source.
; 0278 !
; 0279 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.27 8-Mar-82 02:27:48, Edit by PECKHAM
; 0280 !
; 0281 ! Ident 53.
; 0282 ! Provide support for lower layers in this central place.
; 0283 ! Hard-code the event filter settings in.
; 0284 !
; 0285 ! <VOBA.NML.DEVELOPMENT>NMLVDB.BLI.48 5-Mar-82 08:36:52, Edit by VOBA
; 0286 !
; 0287 ! Ident 52.
; 0288 ! Added code to handle MODULE entities.
; 0289 !
; 0290 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.12 2-Mar-82 15:06:25, Edit by PECKHAM
; 0291 !
; 0292 ! Ident 51.
; 0293 ! Work on entities too numerous to mention.
; 0294 !
; 0295 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.9 25-Feb-82 10:57:31, Edit by PECKHAM
; 0296 !
; 0297 ! Ident 50.
; 0298 ! Add QH_LOGGING_FILTERS data base queue.
; 0299 ! Add global names of data bases for MCBDA.
; 0300 ! Remove restriction on modules from VDB_READ, VDB_CHANGE.
; 0301 ! Change input parameters to READ_FILTERS.
; 0302 ! Remove references to P$ALL by specifying parameter -1 to REMOVE_PARAMETER
; 0303 ! to remove all parameters.
; 0304 ! Fix REMOVE_PARAMETERS to not RELEASE_PVB until all parameter memory
; 0305 ! is released
; 0306 ! Set FIND_DB_FOR_ENTITY to only create data bases for NODE, LINE and CIRCUIT.
; 0307 ! Make GET_VDB_ENTITY handle the MODULE queue.
; 0308 ! General handling of NMU$MEMORY_GET failures.
; 0309 ! Add routine values to GET_PVB, EXPAND_PVB, SET_PARAMETER_DATA,
; 0310 ! SET_IMAGE_FIELD.
; 0311 !
; 0312 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.3 23-Feb-82 13:48:42, Edit by PECKHAM
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 7
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0313 !
; 0314 ! Ident 49.
; 0315 ! Fix calculated length of existing memory block in SET_IMAGE_FIELD.
; 0316 !
; 0317 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.2 23-Feb-82 08:46:26, Edit by PECKHAM
; 0318 !
; 0319 ! Ident 48.
; 0320 ! Dummy! Fixed mis-spelled return codes.
; 0321 !
; 0322 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.5 22-Feb-82 17:09:07, Edit by PECKHAM
; 0323 !
; 0324 ! Ident 47.
; 0325 ! Fix NML$VDB, READ_* to return NICE$_SUC when nothing to SHOW
; 0326 ! when no counters to ZERO.
; 0327 !
; 0328 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.2 22-Feb-82 12:17:07, Edit by PECKHAM
; 0329 !
; 0330 ! Ident 46.
; 0331 ! Fix memory deallocation of image field buffers in CLEAR_PARAMETER_DATA.
; 0332 !
; 0333 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.2 19-Feb-82 09:31:27, Edit by PECKHAM
; 0334 !
; 0335 ! Ident 45.
; 0336 ! Add more items to EXECUTOR data base (LOOP variables).
; 0337 ! Support logging data base for STATE and NAME logging parameters.
; 0338 ! Increase PRM_BFR_LENGTH in NML$SET_VDB_PARAMETER
; 0339 ! and use OWN space instead of stack space.
; 0340 !
; 0341 ! NET:<GROSSMAN>NMLVDB.BLI.3 27-Jan-82 08:58:17, Edit by GROSSMAN
; 0342 !
; 0343 ! Ident 44.
; 0344 ! Fix call to NML$COUNTER_TIMER_SET. It now returns $false if the parameter
; 0345 ! was a counter timer, and its value is out of range. It will now return with
; 0346 ! a nice error code of "Illegal Parameter Value".
; 0347 !
; 0348 ! NET:<GUNN>NMLVDB.BLI.8 21-Jan-82 17:13:17, Edit by GUNN
; 0349 !
; 0350 ! Ident 43.
; 0351 ! Fix NODE HOST parameter to map the id when set so that
; 0352 ! a valid node address is displayed.
; 0353 ! Fix call to NML$COUNTER_TIMER_CLEAR.
; 0354 !
; 0355 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.2 20-Jan-82 10:04:29, Edit by PECKHAM
; 0356 !
; 0357 ! Ident 42.
; 0358 ! Fix call from NML$CHARACTERISTICS to NML$CHARACTERISTIC.
; 0359 !
; 0360 ! NET:<PECKHAM.DEVELOPMENT>NMLVDB.BLI.8 18-Jan-82 19:50:42, Edit by PECKHAM
; 0361 !
; 0362 ! Ident 41.
; 0363 ! Add selector recognition in READ_PARAMETERS so that right parameters
; 0364 ! are displayed for right selectors.
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 8
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0365 ! Begin work on logging data base support.
; 0366 ! Add calls for counter timer data base maintenance (for GROSSMAN).
; 0367 !
; 0368 ! NET:<GUNN.DEVELOPMENT>NMLVDB.BLI.4 12-Jan-82 15:45:44, Edit by GUNN
; 0369 !
; 0370 ! Ident 40.
; 0371 ! Fix C_STRING and C_CHAR macros for BLIS16.
; 0372 !
; 0373 ! NET:<GUNN.DEVELOPMENT>NMLVDB.BLI.34 6-Jan-82 15:26:52, Edit by GUNN
; 0374 !
; 0375 ! Ident 39.
; 0376 !
; 0377 ! Add support for reading Network Management Version,
; 0378 ! (Parameter #101) from Volatile Data Base. Initialize
; 0379 ! a node data base for the EXECUTOR node.
; 0380 !
; 0381 ! Add routine SET_NODE_ENTITY.
; 0382 !
; 0383 ! Remove declaration of QH_CIRCUIT_NDB. It was not used or needed.
; 0384 !
; 0385 ! NET:<BRANDT.DEVELOP>NMLVDB.BLI.2 23-Dec-81 17:13:30, Edit by BRANDT
; 0386 !
; 0387 ! Ident 38.
; 0388 ! Change names of "matching routines" so they are all unique in
; 0389 ! the first six characters to facilitate DDT debugging.
; 0390 !
; 0391 ! Reduce size of code for MCB by--
; 0392 ! changing some CASE statements to IF THEN ELSEs
; 0393 ! restructure code and make common code into callable routines
; 0394 ! eliminate some parameters in routine interfaces
; 0395 !
; 0396 ! Fix SVC_CKT_MATCH to pick up parameter correctly. Eliminate setting
; 0397 ! the additional field in the NODE_DB because currently all data base
; 0398 ! entries are allocated as ENTITY_DBs. These are smaller than
; 0399 ! NODE_DBs.
; 0400 !
; 0401 ! Change some comments and/or variable names so they are correct
; 0402 ! and not misleading
; 0403 !
; 0404 ! In REMOVE_PARAMETER add an EXITLOOP after the code that clears
; 0405 ! the parameter. Otherwise we would loop again with everything
; 0406 ! off by one because the parameter vector has been shrunk.
; 0407 !
; 0408 ! In NML$SET_VDB_PARAMETER make the parameter buffer a local block
; 0409 ! because it is small, and the dynamic block was never released
; 0410 ! anyway.
; 0411 !
; 0412 ! In NML$SET_VDB_PARAMETER return TRUE or FALSE in all cases.
; 0413 !
; 0414 ! Clean up code in INSERT_PARAMETER and add routines RELEASE_PVB,
; 0415 ! GET_PVB, and EXPAND_PVB.
; 0416 !
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 9
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0417 ! Fix MATCH_ID so it does not distinguish between cases.
; 0418 !
; 0419 ! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMLVDB.BLI.2 16-Nov-81 11:31:30, Edit by WEBBER
; 0420 !
; 0421 ! Ident 37.
; 0422 ! Modify interface to GET_VDB_PARAMETER to pass back the value of all
; 0423 ! binary fields, even if the field occupies more than one BLISS value.
; 0424 !
; 0425 ! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLVDB.BLI.15 13-Oct-81 23:45:52, Edit by PECKHAM
; 0426 !
; 0427 ! Ident 36.
; 0428 ! Correct parameter pass in NML$FIND_NDB.
; 0429 !
; 0430 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.4 13-Oct-81 11:52:23, Edit by GUNN
; 0431 !
; 0432 ! Ident 35.
; 0433 ! Fix READ_COUNTERS routine to make SHOW CIRCUIT xxx COUNTERS command
; 0434 ! to work properly.
; 0435 !
; 0436 ! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLVDB.BLI.13 9-Oct-81 15:59:13, Edit by GUNN
; 0437 !
; 0438 ! Ident 34.
; 0439 ! Change SELECTOR to not be system dependent.
; 0440 !
; 0441 ! NET:<DECNET20-V3P1.BASELEVEL-2.MCB>NMLVDB.BLI.2 3-Aug-81 08:46:13, Edit by GUNN
; 0442 !
; 0443 ! Ident 33.
; 0444 ! Remove $INTERNAL_ERROR$ macros.
; 0445 !
; 0446 ! NET:<DECNET20-V3P1.NMU.LIBRARY>NMLVDB.BLI.5 30-Jun-81 10:42:58, Edit by GUNN
; 0447 !
; 0448 ! Ident 32.
; 0449 ! Add routine NML$CLR_VDB_PARAMETER.
; 0450 !
; 0451 ! NET:<DECNET20-V3P1.NMU.LIBRARY>NMLVDB.BLI.3 29-Jun-81 17:28:23, Edit by GUNN
; 0452 !
; 0453 ! Ident 31.
; 0454 ! Fix NML$SET_VDB_PARAMETER to pass pointer to begginning of temporary
; 0455 ! parameter buffer when calling INSERT_PARAMETER.
; 0456 !
; 0457 ! NET:<DECNET20-V3P1.NMU.LIBRARY>NMLVDB.BLI.2 29-Jun-81 16:15:11, Edit by JENNESS
; 0458 !
; 0459 ! Ident 30.
; 0460 ! Fix dot problems in NML$SET_VDB_PARAMETER.
; 0461 !
; 0462 ! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLVDB.BLI.9 25-Jun-81 16:33:11, Edit by JENNESS
; 0463 !
; 0464 ! Ident 29.
; 0465 ! Fix SVC_CKT_MATCH, local PVB should be a ref.
; 0466 !
; 0467 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.4 18-Jun-81 08:30:20, Edit by GUNN
; 0468 !
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 10
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0469 ! Ident 28.
; 0470 ! Move check for 'ALL' parameter prior to picking up parameter number
; 0471 ! in REMOVE_PARAMETER.
; 0472 ! Change test condition in loop in REMOVE_PARAMETER.
; 0473 !
; 0474 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.3 17-Jun-81 17:08:31, Edit by GUNN
; 0475 !
; 0476 ! Ident 27.
; 0477 ! Fix REMOVE_PARAMETER to make CLEAR command work. Unneeded dot on
; 0478 ! GETW of parameter number.
; 0479 ! Add code to NML$SET_VDB_PARAMETER.
; 0480 !
; 0481 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.6 12-Jun-81 00:04:40, Edit by GUNN
; 0482 !
; 0483 ! Ident 26.
; 0484 ! Move macro definition of NML$SET_VDB_PARAMETER to NMUCOM.
; 0485 !
; 0486 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.5 3-Jun-81 20:19:05, Edit by GUNN
; 0487 !
; 0488 ! Ident 25.
; 0489 ! Add code for NML$SET_VDB_PARAMETER.
; 0490 ! Fix code in NML$GET_VDB_PARAMETER to eliminate compiler INFO message.
; 0491 !
; 0492 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.2 28-May-81 16:56:44, Edit by GUNN
; 0493 !
; 0494 ! Ident 24.
; 0495 ! Add code to NML$GET_VDB_PARAMETER to return pointer if necessary based
; 0496 ! on data type of parameter.
; 0497 ! Change test in loop in NML$GET_VDB_PARAMETER.
; 0498 !
; 0499 ! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLVDB.BLI.6 26-May-81 13:58:10, Edit by GUNN
; 0500 !
; 0501 ! Ident 23.
; 0502 ! Remove use of RTN_COD in NML$GET_VDB_PARAMETER and return either
; 0503 ! $TRUE or $FALSE at point of detection.
; 0504 !
; 0505 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.47 13-May-81 10:31:30, Edit by GUNN
; 0506 !
; 0507 ! Ident 22.
; 0508 ! Only allocate new buffer for HOST id first time.
; 0509 !
; 0510 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.46 13-May-81 10:19:36, Edit by GUNN
; 0511 !
; 0512 ! Ident 21.
; 0513 ! Fix ch$move in HOST code.
; 0514 !
; 0515 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.45 13-May-81 09:37:32, Edit by GUNN
; 0516 !
; 0517 ! Ident 20.
; 0518 ! Update PRM_PTR on ch$move when reading HOST parameter.
; 0519 !
; 0520 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.44 13-May-81 09:07:49, Edit by GUNN
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 11
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0521 !
; 0522 ! Ident 19.
; 0523 ! Fix code which sets HOST parameter. Handle fact that input format of
; 0524 ! node entity is either address or name.
; 0525 ! Fix typos in code which reads HOST parameter. Missing dots on PRM_PTR.
; 0526 !
; 0527 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.42 12-May-81 17:50:47, Edit by GUNN
; 0528 !
; 0529 ! Ident 18.
; 0530 ! Fix code to handle read/write parameters.
; 0531 !
; 0532 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.41 12-May-81 09:02:00, Edit by GUNN
; 0533 !
; 0534 ! Ident 17.
; 0535 ! Fix parameter handling routines to use DT_LENGTH for uncoded fields
; 0536 ! instead of DT_NUMBER.
; 0537 !
; 0538 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.40 11-May-81 23:45:13, Edit by GUNN
; 0539 !
; 0540 ! Ident 16.
; 0541 ! Fix code to read long binary number.
; 0542 !
; 0543 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.39 11-May-81 10:02:29, Edit by GUNN
; 0544 !
; 0545 ! Ident 15.
; 0546 ! Only add count for inserted parameter if it's not already in table.
; 0547 ! Handle binary number parameters longer than %BPVAL correctly.
; 0548 !
; 0549 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.37 8-May-81 11:25:42, Edit by GUNN
; 0550 !
; 0551 ! Ident 14.
; 0552 ! Fix REMOVE_PARAMETER code.
; 0553 !
; 0554 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.36 8-May-81 11:04:22, Edit by GUNN
; 0555 !
; 0556 ! Fix typo from last edit.
; 0557 !
; 0558 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.35 8-May-81 10:00:31, Edit by GUNN
; 0559 !
; 0560 ! Fix INSERT_PARAMETER logic. Not properly copying parameters from old
; 0561 ! vector.
; 0562 !
; 0563 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.33 6-May-81 18:05:39, Edit by GUNN
; 0564 !
; 0565 ! Yet more typos.
; 0566 !
; 0567 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.32 6-May-81 17:57:38, Edit by GUNN
; 0568 !
; 0569 ! Fix typos from last edit.
; 0570 !
; 0571 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.31 6-May-81 17:39:32, Edit by GUNN
; 0572 !
24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 12
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (1)
; 0573 ! Fix bad code in INSERT_PARAMETER and other places.
; 0574 !
; 0575 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.29 5-May-81 17:40:45, Edit by GUNN
; 0576 !
; 0577 ! Add code in VDB_READ for entities other than NODE.
; 0578 !
; 0579 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.28 5-May-81 15:59:26, Edit by GUNN
; 0580 !
; 0581 ! Remove 'ref' from bind of PVB_QE in READ_PARAMETERS routine.
; 0582 !
; 0583 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.27 5-May-81 15:07:34, Edit by GUNN
; 0584 !
; 0585 ! Make READ_PARAMETERS work.
; 0586 ! Fix call to VDB_READ from NML$VDB to pass pointer address not the
; 0587 ! argument address.
; 0588 !
; 0589 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.26 5-May-81 12:08:17, Edit by GUNN
; 0590 !
; 0591 ! Fix READ_ENTITY to return correct value. $NICE$ERR_MPE was generating
; 0592 ! a procedure call.
; 0593 !
; 0594 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.24 17-Apr-81 16:57:19, Edit by GUNN
; 0595 !
; 0596 ! Pass contents of PVB_QE in call to SET_PARAMETER_DATA from
; 0597 ! INSERT_PARAMETER_DATA.
; 0598 !
; 0599 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.21 17-Apr-81 07:59:28, Edit by GUNN
; 0600 !
; 0601 ! Fix BIND in INSERT_PARAMETER routine.
; 0602 ! Make SET_PARAMETER_DATA handle special cases for multiple fields.
; 0603 !
; 0604 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.11 3-Apr-81 14:08:26, Edit by GUNN
; 0605 !
; 0606 ! Add routine NML$GET_VDB_PARAMETER to return data for a specific parameter
; 0607 ! from the volatile data base.
; 0608 !
; 0609 ! Add routine NML$FIND_NDB to find a NODE given a circuit id.
; 0610 !
; 0611 ! Fix coding errors in INSERT_PARAMETER and REMOVE_PARAMETER.
; 0612 !
; 0613 ! NET:<DECNET20-V3P1.NML>NMLVDB.BLI.71 5-Mar-81 13:00:10, Edit by GUNN
; 0614 !
; 0615 ! Make NMX interface code symbols be system specific.
; 0616 !
NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 13
3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (2)
; 0617 %title 'NMLVDB -- Volatile Data Base Processing'
; 0618 module NMLVDB (
; 0619 ident = 'X00.89'
; 0620 ) =
; 0621 begin
; 0622
; 0623 ! COPYRIGHT (c) 1980, 1981, 1982
; 0624 ! DIGITAL EQUIPMENT CORPORATION
; 0625 ! Maynard, Massachusetts
; 0626 !
; 0627 ! This software is furnished under a license and may be used
; 0628 ! and copied only in accordance with the terms of such license
; 0629 ! and with the inclusion of the above copyright notice. This
; 0630 ! software or any other copies thereof may not be provided or
; 0631 ! otherwise made available to any other person. No title to
; 0632 ! and ownership of the software is hereby transferred.
; 0633 !
; 0634 ! The information in this software is subject to change
; 0635 ! without notice and should not be construed as a commitment
; 0636 ! by DIGITAL EQUIPMENT CORPORATION.
; 0637 !
; 0638 ! DIGITAL assumes no responsibility for the use or reliability
; 0639 ! of its software on equipment which is not supplied by
; 0640 ! DIGITAL.
; 0641 !
; 0642
; 0643 !++
; 0644 ! FACILITY: DECnet-10/20 V3.0 Network Management Layer (NML)
; 0645 !
; 0646 ! ABSTRACT:
; 0647 !
; 0648 ! This module contains the volatile data base definitions
; 0649 ! and access routines.
; 0650 !
; 0651 ! ENVIRONMENT: TOPS-10/20 & MCB/RSX11 User mode under NML
; 0652 !
; 0653 ! AUTHOR: Dale C. Gunn , CREATION DATE: 2-Feb-81
; 0654 !
; 0655 ! MODIFIED BY:
; 0656 !
; 0657 ! , : VERSION
; 0658 ! 01 -
; 0659 !--
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 14
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (3)
; 0660
; 0661 !
; 0662 ! INCLUDE FILES:
; 0663 !
; 0664
; 0665 library 'NMLLIB'; ! All required definitions
; 0666
; 0667 literal
; 0668 NML$CFG_FILTERS = $false;
; 0669
; 0670 !
; 0671 ! TABLE OF CONTENTS
; 0672 !
; 0673
; 0674 forward routine
; 0675 NML$VDB_INITIALIZE : novalue, ! Initialize the Volatile DB
; 0676 NML$VDB, ! Perform NMX operation on DB
; 0677 NML$GET_VDB_PARAMETER, ! Extract data for specific parameter
; 0678 NML$SET_VDB_PARAMETER, ! Set parameter in Volatile DB
; 0679 NML$CLR_VDB_PARAMETER, ! Remove parameter from VDB
; 0680 NML$FIND_NDB, ! Find NODE associated with CIRCUIT
; 0681 SELECT_LOGGING,
; 0682 SELECT_MODULE,
; 0683 VDB_READ,
; U 0684 %if $X25 and not $MCB %then
; U 0685 READ_QUALIFIED_ENTITY,
; U 0686 READ_QUALIFIER : novalue,
; 0687 %fi
; 0688 READ_ENTITY,
; 0689 READ_PARAMETERS,
; 0690 READ_COUNTERS,
; 0691 READ_FILTERS,
; 0692 READ_FILTER,
; 0693 READ_FILTER_SINK,
; 0694 READ_FILTER_MASKS,
; 0695 VDB_CHANGE,
; U 0696 %if $X25 and not $MCB %then
; U 0697 SET_QUALIFIED_ENTITY,
; 0698 %fi
; 0699 SET_NODE_ENTITY : novalue,
; 0700 GET_EXISTING_ENTITY_DB,
; 0701 SET_ENTITY_DB,
; 0702 ENTITY_IS_VALID,
; 0703 MODULE_IS_VALID,
; 0704 GET_VDB_ENTITY_QUEUE,
; 0705 INSERT_PARAMETER,
; 0706 COPY_PARAMETER_VECTOR: novalue,
; 0707 APPLICABLE,
; U 0708 %if $X25 and not $MCB %then
; U 0709 REMOVE_QUALIFIED_PARAMETER,
; 0710 %fi
; 0711 REMOVE_PARAMETER: novalue,
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 15
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (3)
; 0712 RELEASE_PVB: novalue,
; 0713 GET_PVB,
; 0714 EXPAND_PVB,
; 0715 SET_PARAMETER_DATA,
; 0716 SET_FILTER,
; 0717 SET_IMAGE_FIELD,
; 0718 CLEAR_PARAMETER_DATA: novalue,
; 0719 CLEAR_FILTER,
; 0720 READ_PARAMETER_DATA,
; 0721 LOGGING_ID_MATCH,
; 0722 NODE_ID_MATCH,
; 0723 NON_NODE_ID_MATCH,
; 0724 SVC_CKT_MATCH,
; 0725 MATCH_ID;
; 0726
; 0727 !
; 0728 ! MACROS
; 0729 !
; 0730
; 0731 ! Macro - GETMB
; 0732 !
; 0733 ! Function - To get the next 8 bit value from a byte string
; 0734 ! and map lower case ASCII codes into the
; 0735 ! corresponding upper case ASCII code.
; 0736 ! The byte pointer is updated to point to the next
; 0737 ! byte to read.
; 0738 !
; 0739 ! Parameters -
; 0740 !
; 0741 ! PTR_ADR Address of byte string pointer
; 0742 !
; 0743 ! Value returned -
; 0744 !
; 0745 ! The next byte in the string.
; 0746 !
; 0747
; 0748 macro
; M 0749 GETMB (PTR_ADR) =
; M 0750 begin
; M 0751 local C;
; M 0752
; M 0753 C = ch$rchar_a(PTR_ADR);
; M 0754 if .C geq %C'a' and .C leq %C'z'
; M 0755 then .C - %C'a' + %C'A'
; M 0756 else .C
; 0757 end %;
; 0758
; 0759 macro
; M 0760 $EXPAND_FIELD (FIELD_NAME) =
; M 0761 %print ('field-name ', %string(FIELD_NAME), ' = [',
; M 0762 %fieldexpand(FIELD_NAME,0), ', ',
; M 0763 %fieldexpand(FIELD_NAME,1), ', ',
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 16
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (3)
; M 0764 %fieldexpand(FIELD_NAME,2), ', ',
; 0765 %fieldexpand(FIELD_NAME,3), ']') %;
; 0766
; 0767 macro
; M 0768 $SHOW_EDB =
; M 0769 $EXPAND_FIELD (EDB_QLINK)
; M 0770 $EXPAND_FIELD (EDB_ENTITY_ID)
; M 0771 $EXPAND_FIELD (NDB_ENTITY_ID)
; M 0772 $EXPAND_FIELD (NDB_NODE_TYPE)
; M 0773 $EXPAND_FIELD (EDB_PARAMETER_COUNT)
; M 0774 $EXPAND_FIELD (EDB_PARAMETER_ALLOCATION)
; 0775 $EXPAND_FIELD (EDB_PARAMETER_VECTOR) %;
; 0776
; 0777 macro
; M 0778 $SHOW_NDB =
; M 0779 $EXPAND_FIELD (EDB_QLINK)
; M 0780 $EXPAND_FIELD (EDB_ENTITY_ID)
; M 0781 $EXPAND_FIELD (NDB_ENTITY_ID)
; M 0782 $EXPAND_FIELD (NDB_NODE_TYPE)
; M 0783 $EXPAND_FIELD (EDB_PARAMETER_COUNT)
; M 0784 $EXPAND_FIELD (EDB_PARAMETER_ALLOCATION)
; M 0785 $EXPAND_FIELD (EDB_PARAMETER_VECTOR)
; M 0786 $EXPAND_FIELD (EDB_FIELDS)
; M 0787 $EXPAND_FIELD (NDB_CIRCUIT_QLINK)
; 0788 $EXPAND_FIELD (NDB_SVC_CIRCUIT) %;
; 0789
; 0790 !
; 0791 ! EQUATED SYMBOLS:
; 0792 !
; 0793 $show (fields); ! Turn on XPORT field display
; 0794 $show (literals); ! Turn on XPORT literal display
; 0795
; 0796 literal
; 0797 PRM_BFR_LENGTH = 2 + 1 + 255, ! Length in bytes
; 0798 PRM_BFR_SIZE = ch$allocation (PRM_BFR_LENGTH,8),
; 0799 PRM_BFR_ALLOCATION = PRM_BFR_SIZE * %upval;
; 0800
; 0801 !
; 0802 ! Miscelaneous data definitions
; 0803 !
; 0804 $field ! For event logging filter masks
; L 0805 MASK_BITS = [$bits (32)];
; %PRINT: [0,0,0,0] (+%O'0')
; 0806
; 0807 literal
; L 0808 MASK_SIZE = $field_set_size;
; %PRINT: 2 fullwords
; 0809
; 0810 !
; 0811 ! FDB_*
; 0812 ! QH_LOGGING_FILTER entry.
; 0813 ! Contains identification for a sink node and
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 17
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (3)
; 0814 ! pointers to event filter sets for CONSOLE_, FILE_, and MONITOR_.
; 0815 !
; 0816 $field FDB_FIELDS =
; 0817 set
; L 0818 FDB_BASE = [$sub_block (0)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0819 FDB_QLINK = [$sub_block (Q_ENTRY_SIZE)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0820 FDB_NODE_ID = [$bytes (2 + 1 + 6)],
; %PRINT: [3,0,0,0] (+%O'6')
; L 0821 FDB_CONSOLE_FILTERS = [$sub_block (Q_ENTRY_SIZE)],
; %PRINT: [8,0,0,0] (+%O'20')
; L 0822 FDB_FILE_FILTERS = [$sub_block (Q_ENTRY_SIZE)],
; %PRINT: [11,0,0,0] (+%O'26')
; L 0823 FDB_MONITOR_FILTERS = [$sub_block (Q_ENTRY_SIZE)]
; %PRINT: [14,0,0,0] (+%O'34')
; 0824 tes;
; 0825
; 0826 literal
; L 0827 FDB_SIZE = $field_set_size;
; %PRINT: 17 fullwords
; 0828
; 0829 macro
; 0830 FDB_BLOCK = block [FDB_SIZE] field (FDB_FIELDS) %;
; 0831
; 0832 !
; 0833 ! FDBS_*
; 0834 ! General or entity specific filter mask set
; 0835 ! Contains an entity type (2 bytes) and identification for
; 0836 ! NO_ENTITY_ (0 bytes)
; 0837 ! NODE_E (9 bytes)
; 0838 ! LINE_, CIRCUIT_, or MODULE_ (17 bytes)
; 0839 ! The first filter mask set is also part of this data base.
; 0840 !
; 0841 $field
; 0842 FDBS_FIELDS =
; 0843 set
; L 0844 FDBS_BASE = [$sub_block (0)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0845 FDBS_QLINK = [$sub_block (Q_ENTRY_SIZE)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0846 FDBS_ENTITY = [$bytes (2 + max (0, 9, 17))],
; %PRINT: [3,0,0,0] (+%O'6')
; L 0847 FDBS_MASKS = [$sub_block (0)]
; %PRINT: [13,0,0,0] (+%O'32')
; 0848 tes;
; 0849
; 0850 literal
; L 0851 FDBS_SIZE = $field_set_size;
; %PRINT: 13 fullwords
; 0852
; 0853 macro
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 18
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (3)
; 0854 FDBS_BLOCK = block [FDBS_SIZE] field (FDBS_FIELDS) %;
; 0855
; 0856 !
; 0857 ! FDNM_*
; 0858 ! Filter mask set.
; 0859 ! Contains a set of 8 filter masks for the given range of
; 0860 ! event types.
; 0861 !
; 0862 $field
; 0863 FDBM_FIELDS =
; 0864 set
; L 0865 FDBM_BASE = [$sub_block (0)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0866 FDBM_QLINK = [$sub_block (Q_ENTRY_SIZE)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0867 FDBM_LOW = [$short_integer],
; %PRINT: [3,0,16,1] (+%O'6')
; L 0868 FDBM_HIGH = [$short_integer],
; %PRINT: [4,0,16,1] (+%O'10')
; L 0869 FDBM_MASKS = [$sub_block (8*MASK_SIZE)]
; %PRINT: [5,0,0,0] (+%O'12')
; 0870 tes;
; 0871
; 0872 literal
; L 0873 FDBM_SIZE = $field_set_size;
; %PRINT: 21 fullwords
; 0874
; 0875 macro
; 0876 FDBM_BLOCK = block [FDBM_SIZE] field (FDBM_FIELDS) %;
; 0877
; 0878 !
; 0879 ! PBF_*
; 0880 ! Parameter block for filter handling routines.
; 0881 ! This block is used to hold all the pertinent parameters to
; 0882 ! allow generation of more efficient code, and also to allow
; 0883 ! parameter passage through NMU$QUEUE_SCAN.
; 0884 !
; 0885 $field
; 0886 PBF_FIELDS =
; 0887 set
; L 0888 PBF_BASE = [$sub_block (0)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0889 PBF_PE = [$sub_block (PVB_ENTRY_SIZE)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0890 PBF_NODE_ID_PTR = [$pointer], ! Pointer to current FDB_NODE_ID
; %PRINT: [2,0,16,0] (+%O'4')
; L 0891 PBF_ENTITY_PTR = [$pointer], ! Pointer to current FDBS_ENTITY
; %PRINT: [3,0,16,0] (+%O'6')
; L 0892 PBF_BUF_PTR_ADR = [$address], ! Address of buffer pointer
; %PRINT: [4,0,16,0] (+%O'10')
; L 0893 PBF_LEN_ADR = [$address], ! Address of buffer length
; %PRINT: [5,0,16,0] (+%O'12')
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 19
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (3)
; L 0894 PBF_MASK = [$bytes (4)], ! Local copy of current filter mask
; %PRINT: [6,0,0,0] (+%O'14')
; L 0895 PBF_SELECTOR = [$tiny_integer], ! Return list selector
; %PRINT: [8,0,8,1] (+%O'20')
; L 0896 PBF_SINK = [$tiny_integer] ! Current sink type
; %PRINT: [8,8,8,1] (+%O'21')
; 0897 tes;
; 0898
; 0899 literal
; L 0900 PBF_SIZE = $field_set_size;
; %PRINT: 9 fullwords
; 0901
; 0902 macro
; 0903 PBF_BLOCK = block [PBF_SIZE] field (PBF_FIELDS) %;
; 0904
; 0905 !
; 0906 ! PBM_*
; 0907 ! Parameter block for module handling routines.
; 0908 ! This block is used to hold all the pertinent parameters to
; 0909 ! allow generation of more efficient code, and also to allow
; 0910 ! parameter passage through NMU$QUEUE_SCAN.
; 0911 !
; 0912 $field
; 0913 PBM_FIELDS =
; 0914 set
; L 0915 PBM_BASE = [$sub_block (0)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0916 PBM_BUF_PTR_ADR = [$address], ! Address of buffer pointer
; %PRINT: [0,0,16,0] (+%O'0')
; L 0917 PBM_LEN_ADR = [$address], ! Address of buffer length
; %PRINT: [1,0,16,0] (+%O'2')
; L 0918 PBM_SELECTOR = [$tiny_integer] ! Return list selector
; %PRINT: [2,0,8,1] (+%O'4')
; 0919 tes;
; 0920
; 0921 literal
; L 0922 PBM_SIZE = $field_set_size;
; %PRINT: 3 fullwords
; 0923
; 0924 macro
; 0925 PBM_BLOCK = block [PBM_SIZE] field (PBM_FIELDS) %;
; 0926
; 0927 !
; 0928 ! Parameter block usage being phased in
; 0929 !
; 0930
; 0931 $field
; 0932 PARAMETER_FIELDS =
; 0933 set
; L 0934 PB_BASE = [$sub_block (0)],
; %PRINT: [0,0,0,0] (+%O'0')
; L 0935 PB_ENTITY_POINTER = [$pointer],
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 20
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (3)
; %PRINT: [0,0,16,0] (+%O'0')
; L 0936 PB_QUALIFIER_POINTER = [$pointer],
; %PRINT: [1,0,16,0] (+%O'2')
; L 0937 PB_FUNCTION = [$integer],
; %PRINT: [2,0,16,1] (+%O'4')
; L 0938 PB_ENTITY_TYPE = [$integer],
; %PRINT: [3,0,16,1] (+%O'6')
; L 0939 PB_SELECTOR = [$integer],
; %PRINT: [4,0,16,1] (+%O'10')
; L 0940 PB_DATA_LENGTH = [$integer],
; %PRINT: [5,0,16,1] (+%O'12')
; L 0941 PB_DATA_POINTER = [$integer],
; %PRINT: [6,0,16,1] (+%O'14')
; L 0942 PB_PARAMETER_NUMBER = [$integer],
; %PRINT: [7,0,16,1] (+%O'16')
; L 0943 PB_EDB = [$address],
; %PRINT: [8,0,16,0] (+%O'20')
; L 0944 PB_PARAMETER_DATA_BLOCK = [$address],
; %PRINT: [9,0,16,0] (+%O'22')
; L 0945 PB_PRIVLEDGED = [$bit]
; %PRINT: [10,0,1,0] (+%O'24')
; 0946 tes;
; 0947
; 0948 literal
; L 0949 PARAMETER_BLOCK_SIZE = $field_set_size,
; %PRINT: 11 fullwords
; L 0950 PARAMETER_BLOCK_ALLOCATION = $field_set_units;
; %PRINT: 21 addressable units
; 0951
; 0952 macro
; 0953 PARAMETER_BLOCK = block [PARAMETER_BLOCK_SIZE] field (PARAMETER_BLOCK_FIELDS) %;
; 0954
; 0955 $show (none); ! Turn off XPORT display
; 0956 !
; 0957 ! OWN STORAGE:
; 0958 !
; 0959
; 0960 own
; 0961 PRM_BFR: block [PRM_BFR_ALLOCATION];
; 0962
; C 0963 %( N.B. - To ensure integrity of the volatile data base when running
; C 0964 in the multi-tasking environment, the data bases must be
; 0965 locked during access. )%
; 0966
; 0967 own ! Heads of NML volatile parameter DB
; 0968 QH_NODE_PARAMETERS: Q_HEADER,
; 0969 QH_LINE_PARAMETERS: Q_HEADER,
; 0970 QH_CIRCUIT_PARAMETERS: Q_HEADER,
; 0971 QH_LOGGING_PARAMETERS: Q_HEADER,
; 0972 QH_LOGGING_FILTERS: Q_HEADER,
; 0973 QH_MODULE_PARAMETERS: Q_HEADER;
; 0974
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 21
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (3)
; 0975 %if $MCB %then
; 0976 global bind
; 0977 NODDB = QH_NODE_PARAMETERS,
; 0978 LINDB = QH_LINE_PARAMETERS,
; 0979 CKTDB = QH_CIRCUIT_PARAMETERS,
; 0980 LOGDB = QH_LOGGING_PARAMETERS,
; 0981 FLTDB = QH_LOGGING_FILTERS,
; 0982 MODDB = QH_MODULE_PARAMETERS;
; 0983 %fi
; 0984
; 0985 !
; 0986 ! EXTERNAL REFERENCES:
; 0987 !
; 0988
; 0989 external routine
; 0990 NMU$MEMORY_MANAGER,
; 0991 NMU$QUEUE_MANAGER,
; 0992 NMU$NETWORK_LOCAL,
; 0993 NML$VDB_PARAMETER,
; 0994 NML$EXECUTOR_ONLY,
; 0995 NML$SUMMARY,
; 0996 NML$STATUS,
; 0997 NML$CHARACTERISTIC,
; 0998 NML$CLEARABLE,
; 0999 NML$READ_ONLY,
; 1000 NML$GET_PDB_DATA_TYPE,
; 1001 NML$COUNTER_TIMER_SET,
; 1002 NML$COUNTER_TIMER_CLEAR;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 22
X00.89 NML$VDB_INITIALIZE as NL_VDI 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (4)
; 1003 %global_routine ('NML$VDB_INITIALIZE') : novalue =
; 1004
; 1005 !++
; 1006 ! FUNCTIONAL DESCRIPTION:
; 1007 !
; 1008 ! Resets the NML volatile data bases to an initially
; 1009 ! cleared state.
; 1010 !
; 1011 ! Initializes volatile data base for EXECUTOR NODE.
; 1012 !
; 1013 ! FORMAL PARAMETERS
; 1014 !
; 1015 ! NONE.
; 1016 !
; 1017 ! IMPLICIT INPUTS
; 1018 !
; 1019 ! NONE.
; 1020 !
; 1021 ! ROUTINE VALUE:
; 1022 !
; 1023 ! NONE.
; 1024 !
; 1025 ! SIDE EFFECTS:
; 1026 !
; 1027 ! NONE.
; 1028 !
; 1029 !--
; 1030
; 1031 begin
; 1032
; 1033 macro
; M 1034 C_STRING [ ] = ! Counted string
; M 1035 %if not $MCB
; M 1036 %then C_CHAR(%char(%charcount(%remaining)), %explode(%remaining))
; M 1037 %else %string(%char(%charcount(%remaining)), %remaining)
; 1038 %fi %;
; 1039
; L 1040 %if not $MCB
; U 1041 %then
; U 1042 macro
; U 1043 C_CHAR [B1,B2,B3,B4] =
; U 1044 ((%C B1 ^ (%bpval-8))
; U 1045 %if not %null(B2)
; U 1046 %then or (%C B2 ^ (%bpval-16))
; U 1047 %if not %null(B3)
; U 1048 %then or (%C B3 ^ (%bpval-24))
; U 1049 %if not %null(B4)
; U 1050 %then or (%C B4 ^ (%bpval-32)) %fi
; U 1051 %fi
; U 1052 %fi) %;
; 1053 %else
; 1054 macro
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 23
X00.89 NML$VDB_INITIALIZE as NL_VDI 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (4)
; M 1055 C_CHAR [] =
; 1056 (%string (%remaining)) %;
; 1057 %fi
; 1058
; 1059 !
; 1060 ! Reset the volatile parameter data base header for each entity.
; 1061 !
; 1062
; 1063 NMU$QUEUE_RESET (QH_NODE_PARAMETERS);
; 1064 NMU$QUEUE_RESET (QH_LINE_PARAMETERS);
; 1065 NMU$QUEUE_RESET (QH_CIRCUIT_PARAMETERS);
; 1066 NMU$QUEUE_RESET (QH_LOGGING_PARAMETERS);
; 1067 NMU$QUEUE_RESET (QH_LOGGING_FILTERS);
; 1068 NMU$QUEUE_RESET (QH_MODULE_PARAMETERS);
; 1069
; 1070 !
; 1071 ! Set up the initial data base for EXECUTOR NODE.
; 1072 !
; 1073 begin
; 1074
; 1075 external
; 1076 NMLVER; ! NML Version Number
; 1077
; 1078 literal
; 1079 N_PARMS = 4, ! Number of initial EXECUTOR parameters
; 1080 M_PARMS = 7; ! Maximum number of EXECUTOR parameters
; 1081 ! Allow for maximum number parameters
; 1082 ! so the parameter vector never needs
; 1083 ! to be deallocated.
; 1084
; 1085 own
; 1086 X_NOD_NDB : ref ENTITY_DB_BLOCK,
; 1087
; 1088 X_NOD_PVB : $NML$PVB_ENTRY_VECTOR (M_PARMS)
; 1089 preset ([0,PE_NUMBER] = 101, ! MANAGEMENT VERSION
; 1090 [0,PE_ADDRESS] = NMLVER,
; 1091 [1,PE_NUMBER] = 150, ! LOOP COUNT 1
; 1092 [1,PE_ADDRESS] = 1,
; 1093 [2,PE_NUMBER] = 151, ! LOOP LENGTH 127
; 1094 [2,PE_ADDRESS] = 127, ! (to work with RSX-11M)
; 1095 [3,PE_NUMBER] = 152, ! LOOP WITH MIXED
; 1096 [3,PE_ADDRESS] = 2);
; 1097
; 1098 X_NOD_NDB = SET_ENTITY_DB (NODE_E, NMU$NETWORK_LOCAL ());
; 1099
; 1100 X_NOD_NDB[NDB_NODE_TYPE] = NDB$EXECUTOR;
; 1101 X_NOD_NDB[EDB_PARAMETER_COUNT] = N_PARMS;
; 1102 X_NOD_NDB[EDB_PARAMETER_ALLOCATION] = PVB_ENTRY_ALLOCATION * M_PARMS;
; 1103 X_NOD_NDB[EDB_PARAMETER_VECTOR] =
; 1104 NMU$MEMORY_GET (.X_NOD_NDB[EDB_PARAMETER_ALLOCATION]);
; 1105
; 1106 COPY_PARAMETER_VECTOR (X_NOD_PVB, .X_NOD_NDB[EDB_PARAMETER_VECTOR],
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 24
X00.89 NML$VDB_INITIALIZE as NL_VDI 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (4)
; 1107 M_PARMS);
; 1108
; L 1109 %if $MCB
; 1110 %then
; 1111 begin ! Get host node from Session Control
; 1112
; 1113 bind
; 1114 DATA_ID = uplit (141);
; 1115
; 1116 local
; 1117 PTR;
; 1118
; 1119 PTR = ch$ptr (PRM_BFR,, 8);
; 1120 PUTW (DATA_ID, PTR);
; 1121 PUTB (0, PTR);
; 1122 $NML$GET_HOST_ID (uplit (2 + 1 + 6), .PTR);
; 1123 INSERT_PARAMETER (.X_NOD_NDB, NODE_E, ch$ptr (PRM_BFR,,8), $true);
; 1124 end;
; U 1125 %else
; U 1126 begin
; U 1127
; U 1128 macro
; U 1129 DEFAULT_IDENTIFICATION = 'DECnet-20 Version 3.0' %;
; U 1130
; U 1131 INSERT_PARAMETER (.X_NOD_NDB, NODE_E,
; U 1132 ch$ascii (%char ((100 and %o'377'),
; U 1133 (100^-8 and %o'377'),
; U 1134 %charcount (DEFAULT_IDENTIFICATION)),
; U 1135 DEFAULT_IDENTIFICATION), $true);
; U 1136 end;
; 1137 %fi
; 1138 end;
; 1139
; 1140 !
; 1141 ! Set up the logging filter data base
; 1142 !
; 1143
; L 1144 %if NML$CFG_FILTERS
; U 1145 %then
; U 1146 begin
; U 1147
; U 1148 $field
; U 1149 BYTE_0 = [$byte],
; U 1150 BYTE_1 = [$byte];
; U 1151
; U 1152 own
; U 1153 FDB : block [FDB_SIZE] field (FDB_FIELDS)
; U 1154 initial (rep FDB_SIZE of (0)),
; U 1155 FDBS : block [FDBS_SIZE + FDBM_SIZE] field (FDBS_FIELDS)
; U 1156 initial (rep FDBS_SIZE of (0));
; U 1157
; U 1158 bind
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 25
X00.89 NML$VDB_INITIALIZE as NL_VDI 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (4)
; U 1159 ENTITY_ID = uplit (NO_ENTITY_),
; U 1160 FDBM = FDBS [FDBS_MASKS] : block [FDBM_SIZE] field (FDBM_FIELDS);
; U 1161
; U 1162 $NML$GET_HOST_ID (uplit (2 + 1 + 6), ch$ptr (FDB [FDB_NODE_ID],, 8));
; U 1163 NMU$QUEUE_RESET (FDB [FDB_CONSOLE_FILTERS]);
; U 1164 NMU$QUEUE_RESET (FDB [FDB_FILE_FILTERS]);
; U 1165 NMU$QUEUE_RESET (FDB [FDB_MONITOR_FILTERS]);
; U 1166 PUTW (ENTITY_ID, ch$ptr (FDBS [FDBS_ENTITY],, 8));
; U 1167 NMU$QUEUE_RESET (FDBM [FDBM_QLINK]);
; U 1168 FDBM [FDBM_LOW] = 0;
; U 1169 FDBM [FDBM_HIGH] = 7;
; U 1170 NMU$QUEUE_INSERT (FDB [FDB_FILE_FILTERS], FDBS);
; U 1171 NMU$QUEUE_INSERT (QH_LOGGING_FILTERS, FDB);
; U 1172 end;
; 1173 %fi
; 1174
; C 1175 %( N.B. - Maybe we want to call the interface function here to
; 1176 return a list of known entities for each data base. )%
; 1177
; 1178 end; ! End of NML$VDB_INITIALIZE
.TITLE NMLVDB NMLVDB -- Volatile Data Base Processing
.IDENT /X00.89/
000000 .PSECT $PLIT$, RO , D
000000 000215 P.AAA: .WORD 215
000002 000011 P.AAB: .WORD 11
000000 .PSECT $OWN$, D
000000 PRM.BFR:.BLKW 402
001004 QH.NODE.PARAMETERS:
.BLKW 3
001012 QH.LINE.PARAMETERS:
.BLKW 3
001020 QH.CIRCUIT.PARAMETERS:
.BLKW 3
001026 QH.LOGGING.PARAMETERS:
.BLKW 3
001034 QH.LOGGING.FILTERS:
.BLKW 3
001042 QH.MODULE.PARAMETERS:
.BLKW 3
001050 X.NOD.NDB:
.BLKW 1
001052 000145 X.NOD.PVB:
.WORD 145
001054 000000G .WORD NMLVER
001056 000226 .WORD 226
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 26
X00.89 NML$VDB_INITIALIZE as NL_VDI 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (4)
001060 000001 .WORD 1
001062 000227 .WORD 227
001064 000177 .WORD 177
001066 000230 .WORD 230
001070 000002 .WORD 2
001072 .BLKB 14
001106 IOSB: .BLKW 2
.GLOBL UM.RESET, UM.INITIALIZE, UM.GET
.GLOBL UM.RELEASE, UQ.RESET, UQ.INSERT
.GLOBL UQ.REMOVE, UQ.EXTRACT, UQ.LENGTH
.GLOBL UQ.SCAN, UQ.SEXTRACT, UN.LOCAL
.GLOBL NL.PVD, NL.PEX, NL.PSU, NL.PST
.GLOBL NL.PCH, NL.CLR, NL.RO, NL.PDT
.GLOBL NL.SCT, NL.CCT, NMLVER, LUN$NS
.GLOBL EFN$NS
001004' NODDB== QH.NODE.PARAMETERS
001012' LINDB== QH.LINE.PARAMETERS
001020' CKTDB== QH.CIRCUIT.PARAMETERS
001026' LOGDB== QH.LOGGING.PARAMETERS
001034' FLTDB== QH.LOGGING.FILTERS
001042' MODDB== QH.MODULE.PARAMETERS
000000' DATA.ID= P.AAA
.SBTTL NL.VDI NML$VDB_INITIALIZE as NL_VDI
000000 .PSECT $CODE$, RO
000000 010146 NL.VDI::MOV R1,-(SP) ; 1003
000002 012746 001004' MOV #QH.NODE.PARAMETERS,-(SP) ; 1063
000006 004767 000000G JSR PC,UQ.RESET
000012 012716 001012' MOV #QH.LINE.PARAMETERS,(SP) ; 1064
000016 004767 000000G JSR PC,UQ.RESET
000022 012716 001020' MOV #QH.CIRCUIT.PARAMETERS,(SP) ; 1065
000026 004767 000000G JSR PC,UQ.RESET
000032 012716 001026' MOV #QH.LOGGING.PARAMETERS,(SP) ; 1066
000036 004767 000000G JSR PC,UQ.RESET
000042 012716 001034' MOV #QH.LOGGING.FILTERS,(SP) ; 1067
000046 004767 000000G JSR PC,UQ.RESET
000052 012716 001042' MOV #QH.MODULE.PARAMETERS,(SP) ; 1068
000056 004767 000000G JSR PC,UQ.RESET
000062 005016 CLR (SP) ; 1098
000064 004767 000000G JSR PC,UN.LOCAL
000070 010046 MOV R0,-(SP)
000072 004767 000000V JSR PC,SET.ENTITY.DB
000076 010067 001050' MOV R0,X.NOD.NDB
000102 010001 MOV R0,R1 ; X.NOD.NDB,* 1100
000104 042761 003400 000016 BIC #3400,16(R1)
000112 052761 000400 000016 BIS #400,16(R1)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 27
X00.89 NML$VDB_INITIALIZE as NL_VDI 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (4)
000120 012761 000004 000030 MOV #4,30(R1) ; 1101
000126 012761 000034 000032 MOV #34,32(R1) ; 1102
000134 012716 000034 MOV #34,(SP) ; 1104
000140 004767 000000G JSR PC,UM.GET
000144 010061 000034 MOV R0,34(R1) ; 1103
000150 012716 001052' MOV #X.NOD.PVB,(SP) ; 1106
000154 016700 001050' MOV X.NOD.NDB,R0
000160 016046 000034 MOV 34(R0),-(SP)
000164 012746 000007 MOV #7,-(SP)
000170 004767 000000V JSR PC,COPY.PARAMETER.VECTOR
000174 012700 000000' MOV #PRM.BFR,R0 ; *,PTR 1119
000200 116720 000000' MOVB DATA.ID,(R0)+ ; *,PTR 1120
000204 116720 000001' MOVB DATA.ID+1,(R0)+ ; *,PTR
000210 105020 CLRB (R0)+ ; PTR 1121
000212 005046 CLR -(SP) ; 1122
000214 005046 CLR -(SP)
000216 005046 CLR -(SP)
000220 012746 000003 MOV #3,-(SP)
000224 016746 000002' MOV P.AAB,-(SP)
000230 010046 MOV R0,-(SP) ; PTR,*
000232 005046 CLR -(SP)
000234 012746 001106' MOV #IOSB,-(SP)
000240 012746 000000G MOV #EFN$NS,-(SP)
000244 012746 000000G MOV #LUN$NS,-(SP)
000250 012746 016670 MOV #16670,-(SP)
000254 012746 006003 MOV #6003,-(SP)
000260 104377 EMT 377
000262 062706 000006 ADD #6,SP
000266 016716 001050' MOV X.NOD.NDB,(SP) ; 1123
000272 005046 CLR -(SP)
000274 012746 000000' MOV #PRM.BFR,-(SP)
000300 012746 000001 MOV #1,-(SP)
000304 004767 000000V JSR PC,INSERT.PARAMETER
000310 062706 000010 ADD #10,SP ; 1031
000314 012601 MOV (SP)+,R1 ; 1003
000316 000207 RTS PC
; Routine Size: 104 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 19 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 28
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1179 %global_routine ('NML$VDB', FUNCTION, TYPE, ENTITY, QUALIFIER, SELECTOR, LENGTH, BUFFER, ERR_DETAIL) =
; 1180
; 1181 !++
; 1182 ! FUNCTIONAL DESCRIPTION:
; 1183 !
; 1184 ! Performs operations on NML volatile parameters.
; 1185 !
; 1186 ! FORMAL PARAMETERS
; 1187 !
; 1188 ! FUNCTION - Code to denote whether the specified parameter is to be
; 1189 ! defined or purged, etc.
; 1190 ! TYPE - The NML entity type number of the entity to which the
; 1191 ! parameter pertains.
; 1192 ! ENTITY - Character sequence pointer to the entity id.
; 1193 ! QUALIFIER - An optional character sequence pointer to a qualifier in
; 1194 ! parameter format.
; 1195 ! SELECTOR - For the return function, the class of entities to return.
; 1196 ! LENGTH - The address of a variable.
; 1197 ! For SHOW functions, the variable will
; 1198 ! contain the size of space available in the buffer.
; 1199 ! It will be reduced by the length of the data
; 1200 ! returned in the buffer.
; 1201 ! For SET and CLEAR functions, the address will
; 1202 ! contain the length of the specified parameter.
; 1203 ! BUFFER - For SHOW functions, the address of a
; 1204 ! character sequence pointer to the buffer in which
; 1205 ! to return the parameter data. These functions will
; 1206 ! update the pointer to point to the next available
; 1207 ! byte in the buffer.
; 1208 ! For SET and CLEAR functions, a character sequence
; 1209 ! pointer to the specific parameter.
; 1210 ! ERR_DETAIL- The address of a variable in which to return the
; 1211 ! error detail field for the response message if this
; 1212 ! request fails.
; 1213 !
; 1214 ! IMPLICIT INPUTS
; 1215 !
; 1216 ! NONE.
; 1217 !
; 1218 ! ROUTINE VALUE:
; 1219 !
; 1220 ! NICE return code.
; 1221 !
; 1222 ! SIDE EFFECTS:
; 1223 !
; 1224 ! NONE.
; 1225 !
; 1226 !--
; 1227
; 1228 begin
; 1229
; 1230 case .FUNCTION from %bliss36($NTSET) %bliss16(N$FSET)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 29
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1231 to %bliss36($NTRET) %bliss16(N$FRET) of
; 1232 set
; 1233 [%bliss36($NTSET) %bliss16(N$FSET)]: ! Set parameter
; 1234 begin
; 1235 macro HIGHER_LAYER = NML <0, 1>%,
; 1236 LOWER_LAYER = NML <1, 1>%;
; 1237 local NML, PARAMETER, RESULT;
; 1238
; 1239 PARAMETER = GETW_NA (.BUFFER); ! Get parameter number
; 1240
; 1241 if NML$VDB_PARAMETER (.TYPE, .PARAMETER)
; 1242 then NML = 1
; 1243 else NML = 2;
; 1244
; 1245 selectone .TYPE of
; 1246 set
; 1247 [NODE_E]:
; 1248 begin
; 1249 local PTR, LOCAL_NODE;
; 1250 PTR = NMU$NETWORK_LOCAL();
; 1251 LOCAL_NODE = ch$eql( 9, .PTR, 9, .ENTITY);
; L 1252 %if $TOPS20
; U 1253 %then
; U 1254 if NML$EXECUTOR_ONLY (.TYPE, .PARAMETER)
; U 1255 then
; U 1256 if not .LOCAL_NODE
; U 1257 then return $NICE$ERR_PNA;
; 1258 %fi
; 1259 selectone .PARAMETER of
; 1260 set
; 1261 [110, 501]: ! SERVICE CIRCUIT or CIRCUIT
; 1262 begin
; 1263 PTR = ch$plus (.BUFFER, 2); ! Circuit_id
; 1264 if not ENTITY_IS_VALID (CIRCUIT_, .PTR)
; 1265 then begin
; 1266 .ERR_DETAIL = CIRCUIT_;
; L 1267 return $NICE$ERR_URC;
; %PRINT: Unrecognized component
; 1268 end;
; 1269 end;
; 1270
; 1271 [500, 502]: ! NAME or ADDRESS
; 1272 begin
; 1273 if .local_node
; 1274 then begin
; 1275 .ERR_DETAIL = NODE_E;
; L 1276 return $NICE$ERR_CWS;
; %PRINT: Component in wrong state
; 1277 end;
; 1278 end;
; L 1279 %if $MCB
; 1280 %then
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 30
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1281 [141]: ! HOST
; 1282 NML = 3;
; 1283 %fi
; 1284 [otherwise]:
; 1285 0;
; 1286 tes;
; 1287 end;
; L 1288 %if $MCB
; 1289 %then
; 1290 [LINE_, CIRCUIT_]:
; 1291 if .PARAMETER eql 0
; 1292 then NML = 3;
; 1293 %fi
; 1294 [otherwise]:
; 1295 ;
; 1296 tes;
; 1297
; 1298 if .HIGHER_LAYER ! If NML parameter
; 1299 then RESULT = VDB_CHANGE (.FUNCTION,
; 1300 .TYPE,
; 1301 .QUALIFIER,
; 1302 .ENTITY,
; 1303 ..LENGTH,
; 1304 .BUFFER,
; 1305 .ERR_DETAIL);
; 1306
; 1307 if .LOWER_LAYER ! If NMX parameter
; 1308 then begin
; P 1309 RESULT = $NML$SET (.TYPE,
; P 1310 .ENTITY,
; P 1311 .QUALIFIER,
; P 1312 .LENGTH,
; 1313 .BUFFER);
; 1314
; 1315 if ((.RESULT eql NICE$_URC) or
; 1316 (.RESULT eql NICE$_CWS) or
; 1317 (.RESULT eql NICE$_IID))
; 1318 then .ERR_DETAIL = .TYPE;
; 1319 end;
; 1320
; 1321 .RESULT
; 1322 end;
; 1323
; 1324 [%bliss36($NTCLR) %bliss16(N$FCLR)]: ! Clear parameter
; 1325 begin
; 1326 macro HIGHER_LAYER = NML <0, 1>%,
; 1327 LOWER_LAYER = NML <1, 1>%;
; 1328 local NML, PARAMETER, VDB, NMX, RESULT;
; 1329
; 1330 if ..LENGTH eql 0
; 1331 then
; 1332 begin
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 31
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1333 PARAMETER = -1; ! Clear ALL
; 1334 NML = 3;
; 1335 end
; 1336 else
; 1337 begin
; 1338 PARAMETER = GETW_NA (.BUFFER); ! Get parameter number
; 1339 if NML$VDB_PARAMETER (.TYPE, .PARAMETER)
; 1340 then NML = 1
; 1341 else NML = 2;
; 1342 end;
; 1343
; 1344 selectone .TYPE of
; 1345 set
; 1346 [NODE_E]:
; 1347 begin
; 1348 local PTR, LOCAL_NODE;
; 1349 PTR = NMU$NETWORK_LOCAL();
; 1350 LOCAL_NODE = ch$eql( 9, .PTR, 9, .ENTITY);
; L 1351 %if $TOPS20
; U 1352 %then
; U 1353 if NML$EXECUTOR_ONLY (.TYPE, .PARAMETER)
; U 1354 then
; U 1355 if not .LOCAL_NODE
; U 1356 then return $NICE$ERR_PNA;
; 1357 %fi
; 1358 selectone .PARAMETER of
; 1359 set
; 1360 [-1, 500, 502]: ! ALL, NAME, or ADDRESS
; 1361 begin
; 1362 if .local_node
; 1363 then begin
; 1364 .ERR_DETAIL = NODE_E;
; L 1365 return $NICE$ERR_CWS;
; %PRINT: Component in wrong state
; 1366 end;
; 1367 end;
; L 1368 %if $MCB
; 1369 %then
; 1370 [141]: ! HOST
; 1371 NML = 3;
; 1372 %fi
; 1373 [otherwise]:
; 1374 ;
; 1375 tes;
; 1376 end;
; 1377 [otherwise]:
; 1378 ;
; 1379 tes;
; 1380
; 1381 if .HIGHER_LAYER ! If NML parameter
; 1382 then RESULT = (VDB = VDB_CHANGE (.FUNCTION,
; 1383 .TYPE,
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 32
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1384 .QUALIFIER,
; 1385 .ENTITY,
; 1386 ..LENGTH,
; 1387 .BUFFER,
; 1388 .ERR_DETAIL));
; 1389
; 1390 if .LOWER_LAYER ! If NMX parameter
; 1391 then begin
; P 1392 RESULT = (NMX = $NML$CLR (.TYPE,
; P 1393 .ENTITY,
; P 1394 .QUALIFIER,
; P 1395 .LENGTH,
; 1396 .BUFFER));
; 1397
; 1398 if .NMX eql NICE$_URC
; 1399 then .ERR_DETAIL = .TYPE;
; 1400 end;
; 1401
; 1402 if (.VDB eql 1) and (.NML eql 3)
; 1403 then 1 ! If either one succeed, ok
; 1404 else .RESULT ! Return last result
; 1405 end;
; 1406
; 1407 [%bliss36($NTZRO) %bliss16(N$FZRO)]: ! Zero counters
; 1408 begin
; 1409 local
; 1410 NMX;
; 1411 NMX = $NML$ZERO (.TYPE, .ENTITY, .QUALIFIER);
; 1412
; 1413 if .NMX eql NICE$_URC
; 1414 then .ERR_DETAIL = .TYPE;
; 1415
; 1416 .NMX
; 1417 end;
; 1418
; 1419 [%bliss36($NTSHO) %bliss16(N$FSHO)]: ! Show parameters
; 1420 begin
; 1421 local VDB_CODE, RESULT;
; 1422
; 1423 !
; 1424 ! Get any parameters out of the volatile data base.
; 1425 !
; 1426
; 1427 VDB_CODE = VDB_READ (.FUNCTION,
; 1428 .TYPE,
; 1429 .ENTITY,
; 1430 .QUALIFIER,
; 1431 .SELECTOR,
; 1432 .LENGTH,
; 1433 .BUFFER,
; 1434 .ERR_DETAIL);
; 1435
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 33
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1436 if ((.VDB_CODE eql NICE$_REE) or ! On resource error
; 1437 (.VDB_CODE eql NICE$_URC)) ! or illegal entity
; 1438 then return .VDB_CODE ! return error, now
; 1439 else
; 1440
; 1441 !
; 1442 ! Try to get parameters kept at lower layers of architecture.
; 1443 ! There may not be any, or entity may not be known there.
; 1444 ! Fail only if the entity is not known in either NML or other
; 1445 ! layers.
; 1446 !
; 1447
; 1448 begin
; 1449 local BUFFER_LENGTH;
; 1450
; 1451 BUFFER_LENGTH = ..LENGTH;
; P 1452 RESULT = $NML$SHOW (.TYPE,
; P 1453 .ENTITY,
; P 1454 .QUALIFIER,
; P 1455 .SELECTOR,
; P 1456 BUFFER_LENGTH,
; 1457 ..BUFFER);
; 1458
; 1459 if .RESULT eql 1 ! If successful, update buffer length
; 1460 then .LENGTH = ..LENGTH - .BUFFER_LENGTH;
; 1461 end;
; 1462
; 1463 !
; 1464 ! If call across NMX interface failed, assume an empty buffer.
; 1465 ! Return NICE success if either VDB or NMX calls succeed.
; 1466 !
; 1467
; 1468 if (.VDB_CODE eql 1) then RESULT = 1;
; L 1469 %if $TOPS20
; U 1470 %then
; U 1471 if .RESULT eql NICE$_URC
; U 1472 then if (.TYPE eql CIRCUIT_) and ENTITY_IS_VALID (.TYPE, .ENTITY)
; U 1473 then RESULT = 1;
; 1474 %fi
; 1475 .RESULT
; 1476 end;
; 1477
; 1478 [%bliss36($NTSZC) %bliss16(N$FSZC)]: ! Show and zero counters
; 1479 begin
; 1480 local BUFFER_LENGTH, STATUS;
; 1481
; 1482 BUFFER_LENGTH = ..LENGTH;
; P 1483 STATUS = $NML$SHOZC (.TYPE,
; P 1484 .ENTITY,
; P 1485 .QUALIFIER,
; P 1486 BUFFER_LENGTH,
; 1487 ..BUFFER);
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 34
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1488 .LENGTH = ..LENGTH - .BUFFER_LENGTH;
; 1489
; 1490 if .STATUS eql NICE$_URC
; 1491 then .ERR_DETAIL = .TYPE;
; 1492
; 1493 .STATUS
; 1494 end;
; 1495
; 1496 [%bliss36($NTRET) %bliss16(N$FRET)]: ! Return list of entity ids
; 1497 selectone .TYPE of
; 1498 set
; 1499 [NODE_E,
; L 1500 %if not $TOPS20
; 1501 %then CIRCUIT_,
; 1502 %fi
; 1503 LINE_]:
; 1504 begin
; 1505 local BUF_LEN, BUF_PTR, LCL_ADDRESS, LCL_LEN, STATUS;
; 1506 BUF_PTR = ..BUFFER;
; 1507 BUF_LEN = ..LENGTH;
; 1508
; 1509 !
; 1510 ! If asking for ACT/KNO NOD, then put the exeutor first
; 1511 !
; 1512
; 1513 if (.TYPE eql NODE_E) and (.SELECTOR neq -3)
; 1514 then
; 1515 begin
; 1516 LCL_ADDRESS = NMU$NETWORK_LOCAL ();
; 1517 LCL_LEN = 3 + ch$rchar (ch$plus (.LCL_ADDRESS, 2));
; 1518 if .LCL_LEN gtr ..LENGTH then return NICE$_REE;
; 1519 BUF_PTR = ch$move (.LCL_LEN, .LCL_ADDRESS, .BUF_PTR);
; 1520 BUF_LEN = .BUF_LEN - .LCL_LEN;
; 1521 LCL_ADDRESS = GETW (LCL_ADDRESS);
; 1522 end;
; 1523
; P 1524 STATUS = $NML$RETURN (.TYPE,
; P 1525 .SELECTOR,
; P 1526 .QUALIFIER,
; P 1527 BUF_LEN,
; 1528 .BUF_PTR);
; 1529
; 1530 if .STATUS eql 1 ! If successful,
; 1531 then ! then
; 1532 begin ! account for inserted info.
; 1533 label SEARCH_FOR_EXECUTOR;
; 1534 .LENGTH = ..LENGTH - .BUF_LEN;
; 1535 if (.TYPE eql NODE_E) and (.SELECTOR neq -3)
; 1536 then ! For nodes,
; 1537 SEARCH_FOR_EXECUTOR: ! juggle the executor.
; 1538 begin ! SEARCH_FOR_EXECUTOR
; 1539 local CNT, LNG, TEMP;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 35
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1540 .LENGTH = ..LENGTH - .LCL_LEN; ! Include our copy.
; 1541 do ! Look for returned copy
; 1542 begin
; 1543 if .BUF_LEN leq 0
; 1544 then leave SEARCH_FOR_EXECUTOR;
; 1545 TEMP = GETW(BUF_PTR);
; 1546 CNT = GETB(BUF_PTR);
; 1547 BUF_PTR = ch$plus (.BUF_PTR, .CNT);
; 1548 BUF_LEN = .BUF_LEN - (3 + .CNT);
; 1549 end
; 1550 while .TEMP neq .LCL_ADDRESS;
; 1551 ch$move (.BUF_LEN, .BUF_PTR, ch$plus (.BUF_PTR, -(3 + .CNT)));
; 1552 ! Squeeze returned copy out.
; 1553 .LENGTH = ..LENGTH + (3 + .CNT);
; 1554 end; ! SEARCH_FOR_EXECUTOR
; 1555 end;
; 1556
; 1557 .STATUS
; 1558 end;
; L 1559 %if $TOPS20
; U 1560 %then [CIRCUIT_]:
; U 1561 begin
; U 1562 local BUFFER_LENGTH, STATUS;
; U 1563 external routine NMU$DLX_RETURN_CIRCUITS;
; U 1564
; U 1565 BUFFER_LENGTH = ..LENGTH;
; U 1566 STATUS = NMU$DLX_RETURN_CIRCUITS (.SELECTOR,
; U 1567 BUFFER_LENGTH,
; U 1568 ..BUFFER);
; U 1569
; U 1570 if .STATUS eql 1
; U 1571 then .LENGTH = ..LENGTH - .BUFFER_LENGTH;
; U 1572
; U 1573 .STATUS
; U 1574 end;
; 1575 %fi
; 1576 [LOGGING_]:
; 1577 begin
; 1578 local PBF : PBF_BLOCK;
; 1579 PBF [PBF_LEN_ADR] = .LENGTH;
; 1580 PBF [PBF_BUF_PTR_ADR] = .BUFFER;
; 1581 PBF [PBF_SELECTOR] = .SELECTOR;
; 1582 NMU$QUEUE_SCAN (QH_LOGGING_PARAMETERS, PBF [PBF_BASE], SELECT_LOGGING);
; L 1583 if ..LENGTH lss 0 then return $NICE$ERR_REE;
; %PRINT: Resource error
; 1584 NICE$_SUC
; 1585 end;
; 1586
; 1587 [MODULE_]:
; 1588 begin
; 1589 local LEN, NMX, PBM : PBM_BLOCK;
; 1590
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 36
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
; 1591 if .SELECTOR neq -1 ! Check for known qualifier
; L 1592 then return $NICE$ERR_MPE;
; %PRINT: Management program error
; 1593
; 1594 PBM [PBM_LEN_ADR] = .LENGTH;
; 1595 PBM [PBM_BUF_PTR_ADR] = .BUFFER;
; 1596 PBM [PBM_SELECTOR] = .SELECTOR;
; 1597 NMU$QUEUE_SCAN (QH_MODULE_PARAMETERS, PBM [PBM_BASE], SELECT_MODULE);
; L 1598 if ..LENGTH lss 0 then return $NICE$ERR_REE;
; %PRINT: Resource error
; 1599
; 1600 LEN = ..LENGTH;
; P 1601 NMX = $NML$RETURN (.TYPE, ! Get entity ids from NMX
; P 1602 .SELECTOR,
; P 1603 .QUALIFIER,
; P 1604 LEN,
; 1605 ..BUFFER);
; 1606
; 1607 if .NMX eql 1 ! If successful, update buffer length
; 1608 then .LENGTH = ..LENGTH - .LEN;
; 1609
; 1610 if .NMX eql NICE$_REE then return .NMX;
; 1611
; 1612 NICE$_SUC ! Return success
; 1613 end;
; 1614
; 1615 [otherwise]:
; L 1616 $NICE$ERR_MPE;
; %PRINT: Management program error
; 1617 tes;
; 1618
; 1619 [inrange, ! Invalid function code
; 1620 outrange]:
; L 1621 $NICE$ERR_MPE;
; %PRINT: Management program error
; 1622 tes
; 1623
; 1624 end; ! End of NML$VDB
.GLOBL LUN$NM, EFN$NM
.SBTTL NL.VDB NML$VDB as NL_VDB
000000 004167 000000G NL.VDB::JSR R1,$SAVE5 ; 1179
000004 162706 000032 SUB #32,SP
000010 016666 000066 000004 MOV 66(SP),4(SP) ; FUNCTION,* 1230
000016 016600 000004 MOV 4(SP),R0 ; 1228
000022 005300 DEC R0
000024 020027 000005 CMP R0,#5
000030 101003 BHI 1$
000032 006300 ASL R0
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 37
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
000034 066007 000004' ADD P.AAC(R0),PC ; Case dispatch
000040 000167 003140 1$: JMP 81$
000044 016666 000052 000006 2$: MOV 52(SP),6(SP) ; BUFFER,* 1239
000052 117666 000006 000030 MOVB @6(SP),30(SP) ; *,$$GETW.NA.X
000060 016600 000006 MOV 6(SP),R0
000064 116066 000001 000031 MOVB 1(R0),31(SP) ; *,$$GETW.NA.X
000072 016605 000030 MOV 30(SP),R5 ; $$GETW.NA.X,*
000076 010501 MOV R5,R1 ; *,PARAMETER
000100 016603 000064 MOV 64(SP),R3 ; TYPE,* 1241
000104 010346 MOV R3,-(SP)
000106 010146 MOV R1,-(SP) ; PARAMETER,*
000110 004767 000000G JSR PC,NL.PVD
000114 022626 CMP (SP)+,(SP)+
000116 006000 ROR R0
000120 103003 BCC 3$
000122 012702 000001 MOV #1,R2 ; *,NML 1242
000126 000402 BR 4$ ; 1241
000130 012702 000002 3$: MOV #2,R2 ; *,NML 1243
000134 005703 4$: TST R3 ; 1245
000136 001073 BNE 10$
000140 004767 000000G JSR PC,UN.LOCAL ; 1250
000144 010004 MOV R0,R4 ; *,PTR
000146 012746 000011 MOV #11,-(SP) ; 1251
000152 010446 MOV R4,-(SP) ; PTR,*
000154 012746 000011 MOV #11,-(SP)
000160 016646 000070 MOV 70(SP),-(SP) ; ENTITY,*
000164 005046 CLR -(SP)
000166 004767 000000G JSR PC,BL$EQL
000172 020127 000156 CMP R1,#156 ; PARAMETER,* 1259
000176 001403 BEQ 5$
000200 020127 000765 CMP R1,#765 ; PARAMETER,*
000204 001026 BNE 6$
000206 012746 000002 5$: MOV #2,-(SP) ; 1263
000212 066616 000022 ADD 22(SP),(SP)
000216 012604 MOV (SP)+,R4 ; *,PTR
000220 012716 000003 MOV #3,(SP) ; 1264
000224 010446 MOV R4,-(SP) ; PTR,*
000226 004767 000000V JSR PC,ENTITY.IS.VALID
000232 005726 TST (SP)+
000234 006000 ROR R0
000236 103430 BLO 9$
000240 012776 000003 000062 MOV #3,@62(SP) ; *,ERR.DETAIL 1266
000246 062706 000012 ADD #12,SP ; 1264
000252 012700 177770 MOV #-10,R0 ; 1265
000256 000167 002726 JMP 82$
000262 020127 000764 6$: CMP R1,#764 ; PARAMETER,* 1259
000266 001403 BEQ 7$
000270 020127 000766 CMP R1,#766 ; PARAMETER,*
000274 001004 BNE 8$
000276 006000 7$: ROR R0 ; LOCAL.NODE 1273
000300 103007 BCC 9$
000302 000167 000476 JMP 25$ ; 1275
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 38
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
000306 020127 000215 8$: CMP R1,#215 ; PARAMETER,* 1259
000312 001002 BNE 9$
000314 012702 000003 MOV #3,R2 ; *,NML 1282
000320 062706 000012 9$: ADD #12,SP ; 1248
000324 000412 BR 12$ ; 1245
000326 020327 000001 10$: CMP R3,#1
000332 001403 BEQ 11$
000334 020327 000003 CMP R3,#3
000340 001004 BNE 12$
000342 005701 11$: TST R1 ; PARAMETER 1291
000344 001002 BNE 12$
000346 012702 000003 MOV #3,R2 ; *,NML 1292
000352 032702 000001 12$: BIT #1,R2 ; *,NML 1298
000356 001422 BEQ 13$
000360 016646 000004 MOV 4(SP),-(SP) ; 1299
000364 010346 MOV R3,-(SP)
000366 016646 000064 MOV 64(SP),-(SP) ; QUALIFIER,*
000372 016646 000070 MOV 70(SP),-(SP) ; ENTITY,*
000376 017646 000064 MOV @64(SP),-(SP) ; LENGTH,*
000402 016646 000020 MOV 20(SP),-(SP)
000406 016646 000064 MOV 64(SP),-(SP) ; ERR.DETAIL,*
000412 004767 000000V JSR PC,VDB.CHANGE
000416 010001 MOV R0,R1 ; *,RESULT
000420 062706 000016 ADD #16,SP
000424 032702 000002 13$: BIT #2,R2 ; *,NML 1307
000430 001465 BEQ 19$
000432 005046 CLR -(SP) ; 1313
000434 016646 000062 MOV 62(SP),-(SP) ; QUALIFIER,*
000440 016646 000066 MOV 66(SP),-(SP) ; ENTITY,*
000444 010300 MOV R3,R0
000446 005200 INC R0
000450 072027 000010 ASH #10,R0
000454 010046 MOV R0,-(SP)
000456 052716 000002 BIS #2,(SP)
000462 017646 000064 MOV @64(SP),-(SP) ; LENGTH,*
000466 005716 TST (SP) ; LENGTH
000470 001002 BNE 14$
000472 005046 CLR -(SP)
000474 000402 BR 15$
000476 016646 000020 14$: MOV 20(SP),-(SP)
000502 005046 15$: CLR -(SP)
000504 012746 000046 MOV #46,-(SP)
000510 060616 ADD SP,(SP) ; IOSB,*
000512 012746 000000G MOV #EFN$NM,-(SP)
000516 012746 000000G MOV #LUN$NM,-(SP)
000522 012746 016400 MOV #16400,-(SP)
000526 012746 006003 MOV #6003,-(SP)
000532 104377 EMT 377
000534 010576 000054 MOV R5,@54(SP) ; *,LENGTH
000540 116600 000026 MOVB 26(SP),R0 ; IOSB,*
000544 002403 BLT 16$
000546 012701 000001 MOV #1,R1 ; *,RESULT
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 39
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
000552 000401 BR 17$
000554 010001 16$: MOV R0,R1 ; *,RESULT
000556 020127 177770 17$: CMP R1,#-10 ; RESULT,* 1315
000562 001406 BEQ 18$
000564 020127 177765 CMP R1,#-13 ; RESULT,* 1316
000570 001403 BEQ 18$
000572 020127 177767 CMP R1,#-11 ; RESULT,* 1317
000576 001002 BNE 19$
000600 010376 000050 18$: MOV R3,@50(SP) ; *,ERR.DETAIL 1318
000604 000167 002006 19$: JMP 68$ ; 1228
000610 017602 000054 20$: MOV @54(SP),R2 ; LENGTH,* 1330
000614 005066 000006 CLR 6(SP)
000620 005702 TST R2
000622 001007 BNE 21$
000624 005266 000006 INC 6(SP)
000630 012704 177777 MOV #-1,R4 ; *,PARAMETER 1333
000634 012705 000003 MOV #3,R5 ; *,NML 1334
000640 000427 BR 23$ ; 1330
000642 117666 000052 000030 21$: MOVB @52(SP),30(SP) ; BUFFER,$$GETW.NA.X 1338
000650 016600 000052 MOV 52(SP),R0 ; BUFFER,*
000654 116066 000001 000031 MOVB 1(R0),31(SP) ; *,$$GETW.NA.X
000662 016604 000030 MOV 30(SP),R4 ; $$GETW.NA.X,PARAMETER
000666 016646 000064 MOV 64(SP),-(SP) ; TYPE,* 1339
000672 010446 MOV R4,-(SP) ; PARAMETER,*
000674 004767 000000G JSR PC,NL.PVD
000700 022626 CMP (SP)+,(SP)+
000702 006000 ROR R0
000704 103003 BCC 22$
000706 012705 000001 MOV #1,R5 ; *,NML 1340
000712 000402 BR 23$ ; 1339
000714 012705 000002 22$: MOV #2,R5 ; *,NML 1341
000720 016603 000064 23$: MOV 64(SP),R3 ; TYPE,* 1344
000724 001046 BNE 29$
000726 004767 000000G JSR PC,UN.LOCAL ; 1349
000732 012746 000011 MOV #11,-(SP) ; 1350
000736 010046 MOV R0,-(SP) ; PTR,*
000740 012746 000011 MOV #11,-(SP)
000744 016646 000070 MOV 70(SP),-(SP) ; ENTITY,*
000750 005046 CLR -(SP)
000752 004767 000000G JSR PC,BL$EQL
000756 020427 177777 CMP R4,#-1 ; PARAMETER,* 1358
000762 001406 BEQ 24$
000764 020427 000764 CMP R4,#764 ; PARAMETER,*
000770 001403 BEQ 24$
000772 020427 000766 CMP R4,#766 ; PARAMETER,*
000776 001012 BNE 27$
001000 006000 24$: ROR R0 ; LOCAL.NODE 1362
001002 103015 BCC 28$
001004 005076 000062 25$: CLR @62(SP) ; ERR.DETAIL 1364
001010 062706 000012 ADD #12,SP ; 1362
001014 012700 177765 MOV #-13,R0 ; 1363
001020 000167 002164 26$: JMP 82$
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 40
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
001024 020427 000215 27$: CMP R4,#215 ; PARAMETER,* 1358
001030 001002 BNE 28$
001032 012705 000003 MOV #3,R5 ; *,NML 1371
001036 062706 000012 28$: ADD #12,SP ; 1347
001042 032705 000001 29$: BIT #1,R5 ; *,NML 1381
001046 001422 BEQ 30$
001050 016646 000004 MOV 4(SP),-(SP) ; 1382
001054 010346 MOV R3,-(SP)
001056 016646 000064 MOV 64(SP),-(SP) ; QUALIFIER,*
001062 016646 000070 MOV 70(SP),-(SP) ; ENTITY,*
001066 010246 MOV R2,-(SP)
001070 016646 000064 MOV 64(SP),-(SP) ; BUFFER,*
001074 016646 000064 MOV 64(SP),-(SP) ; ERR.DETAIL,*
001100 004767 000000V JSR PC,VDB.CHANGE
001104 010004 MOV R0,R4 ; *,VDB
001106 010001 MOV R0,R1 ; *,RESULT
001110 062706 000016 ADD #16,SP
001114 032705 000002 30$: BIT #2,R5 ; *,NML 1390
001120 001460 BEQ 34$
001122 005046 CLR -(SP) ; 1396
001124 016646 000062 MOV 62(SP),-(SP) ; QUALIFIER,*
001130 016646 000066 MOV 66(SP),-(SP) ; ENTITY,*
001134 010300 MOV R3,R0
001136 005200 INC R0
001140 072027 000010 ASH #10,R0
001144 010046 MOV R0,-(SP)
001146 052716 000004 BIS #4,(SP)
001152 010246 MOV R2,-(SP)
001154 032766 000001 000020 BIT #1,20(SP)
001162 001402 BEQ 31$
001164 005046 CLR -(SP)
001166 000402 BR 32$
001170 016646 000064 31$: MOV 64(SP),-(SP) ; BUFFER,*
001174 005046 32$: CLR -(SP)
001176 012746 000046 MOV #46,-(SP)
001202 060616 ADD SP,(SP) ; IOSB,*
001204 012746 000000G MOV #EFN$NM,-(SP)
001210 012746 000000G MOV #LUN$NM,-(SP)
001214 012746 016400 MOV #16400,-(SP)
001220 012746 006003 MOV #6003,-(SP)
001224 104377 EMT 377
001226 016676 000030 000054 MOV 30(SP),@54(SP) ; IOSB+2,LENGTH
001234 116600 000026 MOVB 26(SP),R0 ; IOSB,*
001240 002402 BLT 33$
001242 012700 000001 MOV #1,R0 ; *,NMX
001246 010001 33$: MOV R0,R1 ; NMX,RESULT 1392
001250 020027 177770 CMP R0,#-10 ; NMX,* 1398
001254 001002 BNE 34$
001256 010376 000050 MOV R3,@50(SP) ; *,ERR.DETAIL 1399
001262 005304 34$: DEC R4 ; VDB 1402
001264 001002 BNE 35$
001266 020527 000003 CMP R5,#3 ; NML,*
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 41
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
001272 001402 35$: BEQ 36$
001274 000167 001316 JMP 68$
001300 000167 001672 36$: JMP 80$
001304 005046 37$: CLR -(SP) ; 1411
001306 016646 000062 MOV 62(SP),-(SP) ; QUALIFIER,*
001312 016646 000066 MOV 66(SP),-(SP) ; ENTITY,*
001316 016600 000072 MOV 72(SP),R0 ; TYPE,*
001322 005200 INC R0
001324 072027 000010 ASH #10,R0
001330 010046 MOV R0,-(SP)
001332 052716 000006 BIS #6,(SP)
001336 005046 CLR -(SP)
001340 005046 CLR -(SP)
001342 005046 CLR -(SP)
001344 012746 000046 MOV #46,-(SP)
001350 060616 ADD SP,(SP) ; IOSB,*
001352 012746 000000G MOV #EFN$NM,-(SP)
001356 012746 000000G MOV #LUN$NM,-(SP)
001362 012746 016400 MOV #16400,-(SP)
001366 012746 006003 MOV #6003,-(SP)
001372 104377 EMT 377
001374 116600 000026 MOVB 26(SP),R0 ; IOSB,*
001400 002402 BLT 38$
001402 012700 000001 MOV #1,R0 ; *,NMX
001406 020027 177770 38$: CMP R0,#-10 ; NMX,* 1413
001412 001202 BNE 26$
001414 000167 000424 JMP 52$ ; 1414
001420 016646 000004 39$: MOV 4(SP),-(SP) ; 1427
001424 016646 000066 MOV 66(SP),-(SP) ; TYPE,*
001430 016646 000066 MOV 66(SP),-(SP) ; ENTITY,*
001434 016646 000066 MOV 66(SP),-(SP) ; QUALIFIER,*
001440 016601 000066 MOV 66(SP),R1 ; SELECTOR,* 1431
001444 010146 MOV R1,-(SP) ; 1427
001446 016604 000066 MOV 66(SP),R4 ; LENGTH,* 1432
001452 010446 MOV R4,-(SP) ; 1427
001454 016646 000066 MOV 66(SP),-(SP) ; BUFFER,*
001460 016646 000066 MOV 66(SP),-(SP) ; ERR.DETAIL,*
001464 004767 000000V JSR PC,VDB.READ
001470 010002 MOV R0,R2 ; *,VDB.CODE
001472 020227 177761 CMP R2,#-17 ; VDB.CODE,* 1436
001476 001403 BEQ 40$
001500 020227 177770 CMP R2,#-10 ; VDB.CODE,* 1437
001504 001004 BNE 41$
001506 062706 000020 40$: ADD #20,SP ; 1438
001512 010200 MOV R2,R0 ; VDB.CODE,*
001514 000556 BR 53$
001516 011403 41$: MOV (R4),R3 ; *,BUFFER.LENGTH 1451
001520 005046 CLR -(SP) ; 1457
001522 016646 000102 MOV 102(SP),-(SP) ; QUALIFIER,*
001526 016646 000106 MOV 106(SP),-(SP) ; ENTITY,*
001532 005701 TST R1
001534 002003 BGE 42$
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 42
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
001536 010100 MOV R1,R0
001540 005400 NEG R0
001542 000402 BR 43$
001544 010100 42$: MOV R1,R0
001546 005200 INC R0
001550 072027 000014 43$: ASH #14,R0
001554 010001 MOV R0,R1
001556 016600 000112 MOV 112(SP),R0 ; TYPE,*
001562 005200 INC R0
001564 072027 000010 ASH #10,R0
001570 050100 BIS R1,R0
001572 010046 MOV R0,-(SP)
001574 052716 000010 BIS #10,(SP)
001600 010346 MOV R3,-(SP) ; BUFFER.LENGTH,*
001602 001002 BNE 44$
001604 005046 CLR -(SP)
001606 000402 BR 45$
001610 017646 000104 44$: MOV @104(SP),-(SP) ; BUFFER,*
001614 005046 45$: CLR -(SP)
001616 012746 000066 MOV #66,-(SP)
001622 060616 ADD SP,(SP) ; IOSB,*
001624 012746 000000G MOV #EFN$NM,-(SP)
001630 012746 000000G MOV #LUN$NM,-(SP)
001634 012746 016400 MOV #16400,-(SP)
001640 012746 006003 MOV #6003,-(SP)
001644 104377 EMT 377
001646 062706 000020 ADD #20,SP
001652 016603 000030 MOV 30(SP),R3 ; IOSB+2,BUFFER.LENGTH
001656 116600 000026 MOVB 26(SP),R0 ; IOSB,*
001662 002402 BLT 46$
001664 012700 000001 MOV #1,R0 ; *,RESULT
001670 020027 000001 46$: CMP R0,#1 ; RESULT,* 1459
001674 001001 BNE 47$
001676 160314 SUB R3,(R4) ; BUFFER.LENGTH,* 1460
001700 005302 47$: DEC R2 ; VDB.CODE 1468
001702 001063 BNE 53$
001704 000167 001266 JMP 80$
001710 017601 000054 48$: MOV @54(SP),R1 ; LENGTH,BUFFER.LENGTH 1482
001714 005046 CLR -(SP) ; 1487
001716 016646 000062 MOV 62(SP),-(SP) ; QUALIFIER,*
001722 016646 000066 MOV 66(SP),-(SP) ; ENTITY,*
001726 016600 000072 MOV 72(SP),R0 ; TYPE,*
001732 005200 INC R0
001734 072027 000010 ASH #10,R0
001740 010046 MOV R0,-(SP)
001742 052716 000012 BIS #12,(SP)
001746 010146 MOV R1,-(SP) ; BUFFER.LENGTH,*
001750 001002 BNE 49$
001752 005046 CLR -(SP)
001754 000402 BR 50$
001756 017646 000064 49$: MOV @64(SP),-(SP) ; BUFFER,*
001762 005046 50$: CLR -(SP)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 43
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
001764 012746 000046 MOV #46,-(SP)
001770 060616 ADD SP,(SP) ; IOSB,*
001772 012746 000000G MOV #EFN$NM,-(SP)
001776 012746 000000G MOV #LUN$NM,-(SP)
002002 012746 016400 MOV #16400,-(SP)
002006 012746 006003 MOV #6003,-(SP)
002012 104377 EMT 377
002014 016601 000030 MOV 30(SP),R1 ; IOSB+2,BUFFER.LENGTH
002020 116600 000026 MOVB 26(SP),R0 ; IOSB,*
002024 002402 BLT 51$
002026 012700 000001 MOV #1,R0 ; *,STATUS
002032 160176 000054 51$: SUB R1,@54(SP) ; BUFFER.LENGTH,LENGTH 1488
002036 020027 177770 CMP R0,#-10 ; STATUS,* 1490
002042 001003 BNE 53$
002044 016676 000064 000050 52$: MOV 64(SP),@50(SP) ; TYPE,ERR.DETAIL 1491
002052 000167 001132 53$: JMP 82$ ; 1228
002056 016602 000064 54$: MOV 64(SP),R2 ; TYPE,* 1497
002062 002403 BLT 55$
002064 020227 000001 CMP R2,#1
002070 003405 BLE 56$
002072 020227 000003 55$: CMP R2,#3
002076 001402 BEQ 56$
002100 000167 000516 JMP 69$
002104 017605 000052 56$: MOV @52(SP),R5 ; BUFFER,BUF.PTR 1506
002110 016666 000054 000006 MOV 54(SP),6(SP) ; LENGTH,* 1507
002116 017616 000006 MOV @6(SP),(SP) ; *,BUF.LEN
002122 005066 000004 CLR 4(SP) ; 1513
002126 005702 TST R2
002130 001057 BNE 58$
002132 005266 000004 INC 4(SP)
002136 026627 000056 177775 CMP 56(SP),#-3 ; SELECTOR,*
002144 001451 BEQ 58$
002146 004767 000000G JSR PC,UN.LOCAL ; 1516
002152 010066 000002 MOV R0,2(SP) ; *,LCL.ADDRESS
002156 005004 CLR R4 ; LCL.LEN 1517
002160 156004 000002 BISB 2(R0),R4 ; *(LCL.ADDRESS),LCL.LEN
002164 062704 000003 ADD #3,R4 ; *,LCL.LEN
002170 020476 000006 CMP R4,@6(SP) ; LCL.LEN,* 1518
002174 003402 BLE 57$
002176 000167 000602 JMP 72$
002202 010446 57$: MOV R4,-(SP) ; LCL.LEN,* 1519
002204 010046 MOV R0,-(SP) ; LCL.ADDRESS,*
002206 010546 MOV R5,-(SP) ; BUF.PTR,*
002210 004767 000000G JSR PC,BL$MOV
002214 010005 MOV R0,R5 ; *,BUF.PTR
002216 160466 000006 SUB R4,6(SP) ; LCL.LEN,BUF.LEN 1520
002222 005266 000010 INC 10(SP) ; LCL.ADDRESS 1521
002226 016600 000010 MOV 10(SP),R0 ; LCL.ADDRESS,*
002232 116066 177777 000036 MOVB -1(R0),36(SP) ; *(LCL.ADDRESS),$$GETB.X
002240 005266 000010 INC 10(SP) ; LCL.ADDRESS
002244 016600 000010 MOV 10(SP),R0 ; LCL.ADDRESS,*
002250 116066 177777 000037 MOVB -1(R0),37(SP) ; *(LCL.ADDRESS),$$GETB.X
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 44
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
002256 016666 000036 000010 MOV 36(SP),10(SP) ; $$GETB.X,LCL.ADDRESS
002264 062706 000006 ADD #6,SP ; 1515
002270 005046 58$: CLR -(SP) ; 1528
002272 016646 000062 MOV 62(SP),-(SP) ; QUALIFIER,*
002276 005046 CLR -(SP)
002300 016603 000064 MOV 64(SP),R3 ; SELECTOR,*
002304 002003 BGE 59$
002306 010300 MOV R3,R0
002310 005400 NEG R0
002312 000402 BR 60$
002314 010300 59$: MOV R3,R0
002316 005200 INC R0
002320 072027 000014 60$: ASH #14,R0
002324 010001 MOV R0,R1
002326 010200 MOV R2,R0
002330 005200 INC R0
002332 072027 000010 ASH #10,R0
002336 050100 BIS R1,R0
002340 010046 MOV R0,-(SP)
002342 052716 000014 BIS #14,(SP)
002346 016646 000010 MOV 10(SP),-(SP) ; BUF.LEN,*
002352 005716 TST (SP) ; BUF.LEN
002354 001002 BNE 61$
002356 005046 CLR -(SP)
002360 000401 BR 62$
002362 010546 61$: MOV R5,-(SP) ; BUF.PTR,*
002364 005046 62$: CLR -(SP)
002366 012746 000046 MOV #46,-(SP)
002372 060616 ADD SP,(SP) ; IOSB,*
002374 012746 000000G MOV #EFN$NM,-(SP)
002400 012746 000000G MOV #LUN$NM,-(SP)
002404 012746 016400 MOV #16400,-(SP)
002410 012746 006003 MOV #6003,-(SP)
002414 104377 EMT 377
002416 016616 000030 MOV 30(SP),(SP) ; IOSB+2,BUF.LEN
002422 116600 000026 MOVB 26(SP),R0 ; IOSB,*
002426 002403 BLT 63$
002430 012701 000001 MOV #1,R1 ; *,STATUS
002434 000401 BR 64$
002436 010001 63$: MOV R0,R1 ; *,STATUS
002440 020127 000001 64$: CMP R1,#1 ; STATUS,* 1530
002444 001064 BNE 68$
002446 161676 000006 SUB (SP),@6(SP) ; BUF.LEN,* 1534
002452 032766 000001 000004 BIT #1,4(SP) ; 1535
002460 001456 BEQ 68$
002462 020327 177775 CMP R3,#-3
002466 001453 BEQ 68$
002470 160476 000006 SUB R4,@6(SP) ; LCL.LEN,* 1540
002474 005716 65$: TST (SP) ; BUF.LEN 1543
002476 003003 BGT 66$
002500 162706 000006 SUB #6,SP ; 1544
002504 000442 BR 67$
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 45
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
002506 112566 000030 66$: MOVB (R5)+,30(SP) ; BUF.PTR,$$GETB.X 1545
002512 112566 000031 MOVB (R5)+,31(SP) ; BUF.PTR,$$GETB.X
002516 016603 000030 MOV 30(SP),R3 ; $$GETB.X,TEMP
002522 005004 CLR R4 ; CNT 1546
002524 152504 BISB (R5)+,R4 ; BUF.PTR,CNT
002526 060405 ADD R4,R5 ; CNT,BUF.PTR 1547
002530 011600 MOV (SP),R0 ; BUF.LEN,* 1548
002532 160400 SUB R4,R0 ; CNT,*
002534 010016 MOV R0,(SP) ; *,BUF.LEN
002536 162716 000003 SUB #3,(SP) ; *,BUF.LEN
002542 020366 000002 CMP R3,2(SP) ; TEMP,LCL.ADDRESS 1550
002546 001352 BNE 65$
002550 011646 MOV (SP),-(SP) ; BUF.LEN,* 1551
002552 010546 MOV R5,-(SP) ; BUF.PTR,*
002554 012700 000003 MOV #3,R0
002560 060400 ADD R4,R0 ; CNT,*
002562 010546 MOV R5,-(SP) ; BUF.PTR,*
002564 160016 SUB R0,(SP)
002566 004767 000000G JSR PC,BL$MOV
002572 010400 MOV R4,R0 ; CNT,* 1553
002574 067600 000014 ADD @14(SP),R0
002600 010076 000014 MOV R0,@14(SP)
002604 062776 000003 000014 ADD #3,@14(SP)
002612 062706 000006 67$: ADD #6,SP ; 1535
002616 010100 68$: MOV R1,R0 ; STATUS,* 1497
002620 000573 BR 82$
002622 020227 000002 69$: CMP R2,#2
002626 001030 BNE 70$
002630 016666 000054 000022 MOV 54(SP),22(SP) ; LENGTH,PBF+12 1579
002636 016666 000052 000020 MOV 52(SP),20(SP) ; BUFFER,PBF+10 1580
002644 116666 000056 000030 MOVB 56(SP),30(SP) ; SELECTOR,PBF+20 1581
002652 012746 001026' MOV #QH.LOGGING.PARAMETERS,-(SP) ; 1582
002656 012746 000014 MOV #14,-(SP)
002662 060616 ADD SP,(SP) ; PBF,*
002664 012746 000000V MOV #SELECT.LOGGING,-(SP)
002670 004767 000000G JSR PC,UQ.SCAN
002674 005776 000062 TST @62(SP) ; LENGTH 1583
002700 002437 BLT 71$
002702 062706 000006 ADD #6,SP ; 1577
002706 000533 BR 80$ ; 1497
002710 020227 000004 70$: CMP R2,#4
002714 001133 BNE 81$
002716 016604 000056 MOV 56(SP),R4 ; SELECTOR,* 1591
002722 020427 177777 CMP R4,#-1
002726 001126 BNE 81$ ; 1592
002730 016601 000054 MOV 54(SP),R1 ; LENGTH,* 1594
002734 010166 000026 MOV R1,26(SP) ; *,PBM+2
002740 016666 000052 000024 MOV 52(SP),24(SP) ; BUFFER,PBM 1595
002746 110466 000030 MOVB R4,30(SP) ; *,PBM+4 1596
002752 012746 001042' MOV #QH.MODULE.PARAMETERS,-(SP) ; 1597
002756 012746 000030 MOV #30,-(SP)
002762 060616 ADD SP,(SP) ; PBM,*
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 46
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
002764 012746 000000V MOV #SELECT.MODULE,-(SP)
002770 004767 000000G JSR PC,UQ.SCAN
002774 005711 TST (R1) ; 1598
002776 002005 BGE 73$
003000 062706 000006 71$: ADD #6,SP
003004 012700 177761 72$: MOV #-17,R0
003010 000477 BR 82$
003012 011105 73$: MOV (R1),R5 ; *,LEN 1600
003014 005046 CLR -(SP) ; 1605
003016 016646 000070 MOV 70(SP),-(SP) ; QUALIFIER,*
003022 005046 CLR -(SP)
003024 005704 TST R4
003026 002003 BGE 74$
003030 010400 MOV R4,R0
003032 005400 NEG R0
003034 000402 BR 75$
003036 010400 74$: MOV R4,R0
003040 005200 INC R0
003042 072027 000014 75$: ASH #14,R0
003046 010004 MOV R0,R4
003050 010200 MOV R2,R0
003052 005200 INC R0
003054 072027 000010 ASH #10,R0
003060 050400 BIS R4,R0
003062 010046 MOV R0,-(SP)
003064 052716 000014 BIS #14,(SP)
003070 010546 MOV R5,-(SP) ; LEN,*
003072 001002 BNE 76$
003074 005046 CLR -(SP)
003076 000402 BR 77$
003100 017646 000072 76$: MOV @72(SP),-(SP) ; BUFFER,*
003104 005046 77$: CLR -(SP)
003106 012746 000046 MOV #46,-(SP)
003112 060616 ADD SP,(SP) ; IOSB,*
003114 012746 000000G MOV #EFN$NM,-(SP)
003120 012746 000000G MOV #LUN$NM,-(SP)
003124 012746 016400 MOV #16400,-(SP)
003130 012746 006003 MOV #6003,-(SP)
003134 104377 EMT 377
003136 062706 000006 ADD #6,SP
003142 016605 000022 MOV 22(SP),R5 ; IOSB+2,LEN
003146 116600 000020 MOVB 20(SP),R0 ; IOSB,*
003152 002402 BLT 78$
003154 012700 000001 MOV #1,R0 ; *,NMX
003160 020027 000001 78$: CMP R0,#1 ; NMX,* 1607
003164 001001 BNE 79$
003166 160511 SUB R5,(R1) ; LEN,* 1608
003170 020027 177761 79$: CMP R0,#-17 ; NMX,* 1610
003174 001405 BEQ 82$
003176 012700 000001 80$: MOV #1,R0 ; 1497
003202 000402 BR 82$
003204 012700 177773 81$: MOV #-5,R0
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 47
X00.89 NML$VDB as NL_VDB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (5)
003210 062706 000032 82$: ADD #32,SP ; 1179
003214 000207 RTS PC
; Routine Size: 839 words, Routine Base: $CODE$ + 0320
; Maximum stack depth per invocation: 41 words
000004 .PSECT $PLIT$, RO , D
P.AAC: ; CASE Table for NL.VDB+0034 1228
000004 000004 .WORD 4 ; [2$]
000006 000550 .WORD 550 ; [20$]
000010 001244 .WORD 1244 ; [37$]
000012 001360 .WORD 1360 ; [39$]
000014 001650 .WORD 1650 ; [48$]
000016 002016 .WORD 2016 ; [54$]
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 48
X00.89 NML$GET_VDB_PARAMETER as NL_VGP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (6)
; 1625 %global_routine ('NML$GET_VDB_PARAMETER', ENTITY_TYPE, ENTITY_PTR, PARM_NO, DATA_ADDR) =
; 1626
; 1627 !++
; 1628 ! FUNCTIONAL DESCRIPTION:
; 1629 !
; 1630 ! Extracts the data for a specific parameter from the volatile
; 1631 ! data base. Upon return the value of the parameter is stored
; 1632 ! at the address specified by DATA_ADDR.
; 1633 !
; 1634 ! FORMAL PARAMETERS
; 1635 !
; 1636 ! ENTITY_TYPE - Entity type number.
; 1637 ! ENTITY_PTR - Character pointer to entity id.
; 1638 ! PARM_NO - Parameter number.
; 1639 ! DATA_ADDR - Address of returned data.
; 1640 !
; 1641 ! IMPLICIT INPUTS
; 1642 !
; 1643 ! NONE.
; 1644 !
; 1645 ! ROUTINE VALUE:
; 1646 !
; 1647 ! TRUE, if the parameter exists in the volatile data base;
; 1648 ! FALSE, otherwise.
; 1649 !
; 1650 ! SIDE EFFECTS:
; 1651 !
; 1652 ! NONE.
; 1653 !
; 1654 !--
; 1655
; 1656 begin
; 1657
; 1658 local
; 1659 EDB_QE: ref ENTITY_DB_BLOCK,
; 1660 PVB: ref $NML$PVB_ENTRY_VECTOR (0);
; 1661
; 1662 if (EDB_QE = GET_EXISTING_ENTITY_DB (.ENTITY_TYPE, .ENTITY_PTR)) eql 0
; 1663 then return $FALSE;
; 1664
; 1665 !
; 1666 ! Perform special casing for parameters which have seperate
; 1667 ! parameter numbers for reading and writing.
; 1668 !
; 1669
; 1670 if (.ENTITY_TYPE eql NODE_E) ! HOST Parameter (Read)
; 1671 and (.PARM_NO eql 140)
; 1672 then PARM_NO = 141; ! Make it 141
; 1673
; 1674 if ((.EDB_QE[EDB_PARAMETER_ALLOCATION] eql 0) ! They better all be in
; 1675 and (.EDB_QE[EDB_PARAMETER_VECTOR] eql 0)) ! agreement.
; 1676 or (.EDB_QE[EDB_PARAMETER_COUNT] eql 0)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 49
X00.89 NML$GET_VDB_PARAMETER as NL_VGP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (6)
; 1677 then return $FALSE;
; 1678
; 1679 PVB = .EDB_QE[EDB_PARAMETER_VECTOR]; ! Get address of parameter vector
; 1680
; 1681 incr N from 0 to .EDB_QE[EDB_PARAMETER_COUNT] - 1
; 1682 do begin
; 1683 bind PVB_QE = PVB[.N,0,0,0,0]: $NML$PVB_ENTRY_BLOCK;
; 1684
; 1685 if .PARM_NO leq .PVB_QE[PE_NUMBER]
; 1686 then begin
; 1687 if .PARM_NO eql .PVB_QE[PE_NUMBER]
; 1688 then begin
; 1689 local DATA_TYPE: block [1] field (DATA_TYPE_FIELDS);
; 1690
; 1691 DATA_TYPE = NML$GET_PDB_DATA_TYPE (.ENTITY_TYPE, .PARM_NO);
; 1692 if .DATA_TYPE[DT_CODED] eql 0 ! Not coded
; 1693 then begin
; 1694 if .DATA_TYPE[DT_FTYPE] eql 0
; 1695 then begin ! Binary number
; 1696 if .DATA_TYPE[DT_LENGTH] eql 0 ! Image field
; 1697 then .DATA_ADDR = ch$ptr (.PVB_QE[PE_ADDRESS],,8)
; 1698 else begin ! Data stored in ....
; 1699 if .DATA_TYPE[DT_LENGTH] leq %bpval/8
; 1700 then .DATA_ADDR = .PVB_QE[PE_DATA] ! Value
; 1701 else begin ! Buffer
; 1702 local PTR;
; 1703
; 1704 PTR = ch$ptr (.PVB_QE[PE_ADDRESS],,8);
; 1705 get32 (PTR, .DATA_ADDR);
; 1706 end;
; 1707 end;
; 1708 end
; 1709 else begin ! ASCII image field
; 1710 .DATA_ADDR = ch$ptr (.PVB_QE[PE_ADDRESS],,8);
; 1711 end;
; 1712 end
; 1713 else begin ! Coded
; 1714 if .DATA_TYPE[DT_FTYPE] eql 0
; 1715 then .DATA_ADDR = .PVB_QE[PE_DATA] ! Single field
; 1716 else begin ! Multiple field
; 1717 local DT: block [1] field (DATA_TYPE_FIELDS);
; 1718
; 1719 if (.ENTITY_TYPE eql NODE_E) ! Special cases.
; 1720 and (.PVB_QE[PE_NUMBER] eql 141) ! HOST
; 1721 then .DATA_ADDR = ch$ptr (.PVB_QE[PE_ADDRESS],,8)
; 1722 else .DATA_ADDR = 0; ! Unknown multiple parameter
; 1723 end;
; 1724 end;
; 1725
; 1726 return $TRUE;
; 1727 end;
; 1728
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 50
X00.89 NML$GET_VDB_PARAMETER as NL_VGP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (6)
; 1729 exitloop;
; 1730 end;
; 1731 end;
; 1732
; 1733 return $FALSE;
; 1734 end; ! End of NML$GET_VDB_PARAMETER
.SBTTL NL.VGP NML$GET_VDB_PARAMETER as NL_VGP
003536 .PSECT $CODE$, RO
000000 004167 000000G NL.VGP::JSR R1,$SAVE5 ; 1625
000004 162706 000006 SUB #6,SP
000010 016666 000032 000002 MOV 32(SP),2(SP) ; ENTITY.TYPE,* 1662
000016 016646 000002 MOV 2(SP),-(SP)
000022 016646 000032 MOV 32(SP),-(SP) ; ENTITY.PTR,*
000026 004767 000000V JSR PC,GET.EXISTING.ENTITY.DB
000032 022626 CMP (SP)+,(SP)+
000034 010002 MOV R0,R2 ; *,EDB.QE
000036 001531 BEQ 10$ ; 1663
000040 005016 CLR (SP) ; 1670
000042 005766 000002 TST 2(SP)
000046 001010 BNE 1$
000050 005216 INC (SP)
000052 026627 000026 000214 CMP 26(SP),#214 ; PARM.NO,* 1671
000060 001003 BNE 1$
000062 012766 000215 000026 MOV #215,26(SP) ; *,PARM.NO 1672
000070 005762 000032 1$: TST 32(R2) ; *(EDB.QE) 1674
000074 001003 BNE 2$
000076 005762 000034 TST 34(R2) ; *(EDB.QE) 1675
000102 001507 BEQ 10$
000104 005762 000030 2$: TST 30(R2) ; *(EDB.QE) 1676
000110 001504 BEQ 10$ ; 1677
000112 016266 000034 000004 MOV 34(R2),4(SP) ; *(EDB.QE),PVB 1679
000120 016605 000026 MOV 26(SP),R5 ; PARM.NO,* 1685
000124 005004 CLR R4 ; N 1681
000126 000472 BR 9$
000130 010401 3$: MOV R4,R1 ; N,* 1683
000132 006301 ASL R1
000134 006301 ASL R1
000136 066601 000004 ADD 4(SP),R1 ; PVB,*
000142 020511 CMP R5,(R1) ; 1685
000144 003062 BGT 8$
000146 001065 BNE 10$ ; 1687
000150 016646 000002 MOV 2(SP),-(SP) ; 1691
000154 010546 MOV R5,-(SP)
000156 004767 000000G JSR PC,NL.PDT
000162 016603 000030 MOV 30(SP),R3 ; DATA.ADDR,* 1697
000166 032700 000200 BIT #200,R0 ; *,DATA.TYPE 1692
000172 001025 BNE 4$
000174 032700 000100 BIT #100,R0 ; *,DATA.TYPE 1694
000200 001034 BNE 5$
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 51
X00.89 NML$GET_VDB_PARAMETER as NL_VGP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (6)
000202 032700 000017 BIT #17,R0 ; *,DATA.TYPE 1696
000206 001431 BEQ 5$ ; 1697
000210 042700 177760 BIC #177760,R0 ; 1699
000214 020027 000002 CMP R0,#2
000220 101424 BLOS 5$ ; 1700
000222 016100 000002 MOV 2(R1),R0 ; *,PTR 1704
000226 112013 MOVB (R0)+,(R3) ; PTR,* 1705
000230 112063 000001 MOVB (R0)+,1(R3) ; PTR,*
000234 112063 000002 MOVB (R0)+,2(R3) ; PTR,*
000240 112063 000003 MOVB (R0)+,3(R3) ; PTR,*
000244 000416 BR 7$ ; 1694
000246 032700 000100 4$: BIT #100,R0 ; *,DATA.TYPE 1714
000252 001407 BEQ 5$ ; 1715
000254 032766 000001 000004 BIT #1,4(SP) ; 1719
000262 001406 BEQ 6$
000264 021127 000215 CMP (R1),#215 ; 1720
000270 001003 BNE 6$
000272 016113 000002 5$: MOV 2(R1),(R3) ; 1721
000276 000401 BR 7$ ; 1719
000300 005013 6$: CLR (R3) ; 1722
000302 022626 7$: CMP (SP)+,(SP)+ ; 1687
000304 012700 000001 MOV #1,R0 ; 1688
000310 000405 BR 11$
000312 005204 8$: INC R4 ; N 1681
000314 020462 000030 9$: CMP R4,30(R2) ; N,*(EDB.QE)
000320 002703 BLT 3$
000322 005000 10$: CLR R0 ; 1625
000324 062706 000006 11$: ADD #6,SP
000330 000207 RTS PC
; Routine Size: 109 words, Routine Base: $CODE$ + 3536
; Maximum stack depth per invocation: 12 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 52
X00.89 NML$SET_VDB_PARAMETER as NL_VSP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (7)
; 1735 %global_routine ('NML$SET_VDB_PARAMETER', ENTITY_TYPE, ENTITY_PTR, PARM_NO, DATA_ADDR) =
; 1736
; 1737 !++
; 1738 ! FUNCTIONAL DESCRIPTION:
; 1739 !
; 1740 ! Inserts the data for a specific parameter into the volatile
; 1741 ! data base. The value of the parameter is stored
; 1742 ! at the address specified by DATA_ADDR.
; 1743 !
; 1744 ! FORMAL PARAMETERS
; 1745 !
; 1746 ! ENTITY_TYPE - Entity type number.
; 1747 ! ENTITY_PTR - Character pointer to entity id.
; 1748 ! PARM_NO - Parameter number.
; 1749 ! DATA_ADDR - Address of data for value.
; 1750 !
; 1751 ! IMPLICIT INPUTS
; 1752 !
; 1753 ! NONE.
; 1754 !
; 1755 ! ROUTINE VALUE:
; 1756 !
; 1757 ! TRUE, if the parameter was set in the volatile data base;
; 1758 ! FALSE, otherwise.
; 1759 !
; 1760 ! SIDE EFFECTS:
; 1761 !
; 1762 ! NONE.
; 1763 !
; 1764 !--
; 1765
; 1766 begin
; 1767
; 1768 local
; 1769 LPVB_QE: $NML$PVB_ENTRY_BLOCK, ! Local PVB entry
; 1770 EDB_QE: ref ENTITY_DB_BLOCK, ! Entity DB entry
; 1771 L, ! Length of parameter data
; 1772 PRM_PTR; ! Pointer to parameter buffer
; 1773
; 1774 if (EDB_QE = GET_EXISTING_ENTITY_DB (.ENTITY_TYPE, .ENTITY_PTR)) eql 0
; 1775 then if (EDB_QE = SET_ENTITY_DB (.ENTITY_TYPE, .ENTITY_PTR)) eql 0
; 1776 then return $FALSE; ! Could not get entity db
; 1777
; 1778 !
; 1779 ! Allocate a buffer for parameter, build a local temporary PVB
; 1780 ! entry, and place the parameter number and data in the buffer
; 1781 ! in format for response. Then get rid of the data type byte in
; 1782 ! in the buffer.
; 1783 !
; 1784
; 1785 PRM_PTR = ch$ptr (PRM_BFR,,8);
; 1786
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 53
X00.89 NML$SET_VDB_PARAMETER as NL_VSP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (7)
; 1787 LPVB_QE[PE_NUMBER] = .PARM_NO; ! Get parameter number
; 1788 LPVB_QE[PE_DATA] = ..DATA_ADDR;
; 1789
; 1790 L = READ_PARAMETER_DATA (.ENTITY_TYPE,
; 1791 LPVB_QE,
; 1792 PRM_BFR_LENGTH,
; 1793 PRM_PTR);
; 1794
; 1795 ch$move (.L, ch$ptr (PRM_BFR,3,8), ch$ptr (PRM_BFR,2,8));
; 1796
; 1797 !
; 1798 ! Insert the parameter into the table vector.
; 1799 !
; 1800
; 1801 return (INSERT_PARAMETER (.EDB_QE, .ENTITY_TYPE, ch$ptr (PRM_BFR,,8), $true) eql NICE$_SUC);
; 1802 end; ! End of NML$SET_VDB_PARAMETER
.SBTTL NL.VSP NML$SET_VDB_PARAMETER as NL_VSP
000000 004167 000000G NL.VSP::JSR R1,$SAVE2 ; 1735
000004 162706 000006 SUB #6,SP
000010 016602 000024 MOV 24(SP),R2 ; ENTITY.TYPE,* 1774
000014 010246 MOV R2,-(SP)
000016 016646 000024 MOV 24(SP),-(SP) ; ENTITY.PTR,*
000022 004767 000000V JSR PC,GET.EXISTING.ENTITY.DB
000026 022626 CMP (SP)+,(SP)+
000030 010001 MOV R0,R1 ; *,EDB.QE
000032 001010 BNE 1$
000034 010246 MOV R2,-(SP) ; 1775
000036 016646 000024 MOV 24(SP),-(SP) ; ENTITY.PTR,*
000042 004767 000000V JSR PC,SET.ENTITY.DB
000046 022626 CMP (SP)+,(SP)+
000050 010001 MOV R0,R1 ; *,EDB.QE
000052 001453 BEQ 3$ ; 1776
000054 012716 000000' 1$: MOV #PRM.BFR,(SP) ; *,PRM.PTR 1785
000060 016666 000020 000002 MOV 20(SP),2(SP) ; PARM.NO,LPVB.QE 1787
000066 017666 000016 000004 MOV @16(SP),4(SP) ; DATA.ADDR,LPVB.QE+2 1788
000074 010246 MOV R2,-(SP) ; 1790
000076 012746 000006 MOV #6,-(SP)
000102 060616 ADD SP,(SP) ; LPVB.QE,*
000104 012746 000402 MOV #402,-(SP)
000110 012746 000010 MOV #10,-(SP)
000114 060616 ADD SP,(SP) ; PRM.PTR,*
000116 004767 000000V JSR PC,READ.PARAMETER.DATA
000122 010016 MOV R0,(SP) ; L,* 1795
000124 012746 000003' MOV #PRM.BFR+3,-(SP)
000130 012746 000002' MOV #PRM.BFR+2,-(SP)
000134 004767 000000G JSR PC,BL$MOV
000140 010116 MOV R1,(SP) ; EDB.QE,* 1801
000142 010246 MOV R2,-(SP)
000144 012746 000000' MOV #PRM.BFR,-(SP)
000150 012746 000001 MOV #1,-(SP)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 54
X00.89 NML$SET_VDB_PARAMETER as NL_VSP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (7)
000154 004767 000000V JSR PC,INSERT.PARAMETER
000160 005001 CLR R1
000162 020027 000001 CMP R0,#1
000166 001001 BNE 2$
000170 005201 INC R1
000172 062706 000022 2$: ADD #22,SP ; 1735
000176 010100 MOV R1,R0 ; 1766
000200 000401 BR 4$
000202 005000 3$: CLR R0 ; 1735
000204 062706 000006 4$: ADD #6,SP
000210 000207 RTS PC
; Routine Size: 69 words, Routine Base: $CODE$ + 4070
; Maximum stack depth per invocation: 16 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 55
X00.89 NML$CLR_VDB_PARAMETER as NL_VCP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (8)
; 1803 %global_routine ('NML$CLR_VDB_PARAMETER', ENTITY_TYPE, ENTITY_PTR, PARM_NO) =
; 1804
; 1805 !++
; 1806 ! FUNCTIONAL DESCRIPTION:
; 1807 !
; 1808 ! Removes a parameter from the volatile data base.
; 1809 !
; 1810 ! FORMAL PARAMETERS
; 1811 !
; 1812 ! ENTITY_TYPE - Entity type number.
; 1813 ! ENTITY_PTR - Character pointer to entity id.
; 1814 ! PARM_NO - Parameter number.
; 1815 !
; 1816 ! IMPLICIT INPUTS
; 1817 !
; 1818 ! NONE.
; 1819 !
; 1820 ! ROUTINE VALUE:
; 1821 !
; 1822 ! TRUE, if the parameter exists in the volatile data base;
; 1823 ! FALSE, otherwise.
; 1824 !
; 1825 ! SIDE EFFECTS:
; 1826 !
; 1827 ! NONE.
; 1828 !
; 1829 !--
; 1830
; 1831 begin
; 1832
; 1833 local
; 1834 EDB_QE: ref ENTITY_DB_BLOCK; ! Entity DB entry
; 1835
; 1836 if (EDB_QE = GET_EXISTING_ENTITY_DB(.ENTITY_TYPE,.ENTITY_PTR)) eql 0
; 1837 then return $FALSE;
; 1838
; 1839 !
; 1840 ! Perform special casing for parameters which have seperate
; 1841 ! parameter numbers for reading and writing.
; 1842 !
; 1843
; 1844 if (.ENTITY_TYPE eql NODE_E) ! HOST Parameter (Read)
; 1845 and (.PARM_NO eql 140)
; 1846 then PARM_NO = 141; ! Make it 141
; 1847
; 1848 !
; 1849 ! Remove the parameter from the table vector, always succeeds.
; 1850 !
; 1851
; 1852 REMOVE_PARAMETER (.EDB_QE, .ENTITY_TYPE, .PARM_NO, $true);
; 1853
; 1854 return $TRUE;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 56
X00.89 NML$CLR_VDB_PARAMETER as NL_VCP 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (8)
; 1855 end; ! End of NML$CLR_VDB_PARAMETER
.SBTTL NL.VCP NML$CLR_VDB_PARAMETER as NL_VCP
000000 010146 NL.VCP::MOV R1,-(SP) ; 1803
000002 016601 000010 MOV 10(SP),R1 ; ENTITY.TYPE,* 1836
000006 010146 MOV R1,-(SP)
000010 016646 000010 MOV 10(SP),-(SP) ; ENTITY.PTR,*
000014 004767 000000V JSR PC,GET.EXISTING.ENTITY.DB
000020 022626 CMP (SP)+,(SP)+
000022 005700 TST R0 ; EDB.QE
000024 001426 BEQ 2$ ; 1837
000026 005701 TST R1 ; 1844
000030 001007 BNE 1$
000032 026627 000004 000214 CMP 4(SP),#214 ; PARM.NO,* 1845
000040 001003 BNE 1$
000042 012766 000215 000004 MOV #215,4(SP) ; *,PARM.NO 1846
000050 010046 1$: MOV R0,-(SP) ; EDB.QE,* 1852
000052 010146 MOV R1,-(SP)
000054 016646 000010 MOV 10(SP),-(SP) ; PARM.NO,*
000060 012746 000001 MOV #1,-(SP)
000064 004767 000000V JSR PC,REMOVE.PARAMETER
000070 062706 000010 ADD #10,SP ; 1803
000074 012700 000001 MOV #1,R0 ; 1831
000100 000401 BR 3$
000102 005000 2$: CLR R0 ; 1803
000104 012601 3$: MOV (SP)+,R1
000106 000207 RTS PC
; Routine Size: 36 words, Routine Base: $CODE$ + 4302
; Maximum stack depth per invocation: 6 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 57
X00.89 NML$FIND_NDB as NL_VFN 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (9)
; 1856 %global_routine ('NML$FIND_NDB', CKT_ENTITY_ID) =
; 1857
; 1858 !++
; 1859 ! FUNCTIONAL DESCRIPTION:
; 1860 !
; 1861 ! Searches the NODE entity volatile data base for the node
; 1862 ! which has the service circuit parameter corresponding to the
; 1863 ! CIRCUIT entity specified as an argument.
; 1864 !
; 1865 ! FORMAL PARAMETERS
; 1866 !
; 1867 ! CKT_ENTITY_ID - Pointer to circuit entity id.
; 1868 !
; 1869 ! IMPLICIT INPUTS
; 1870 !
; 1871 ! NONE.
; 1872 !
; 1873 ! ROUTINE VALUE:
; 1874 !
; 1875 ! Pointer to the node entity id if the node is found;
; 1876 ! 0 if not found.
; 1877 !
; 1878 ! SIDE EFFECTS:
; 1879 !
; 1880 ! NONE.
; 1881 !
; 1882 !--
; 1883
; 1884 begin
; 1885
; 1886 local
; 1887 NDB_QE: ref NODE_DB_BLOCK;
; 1888
; L 1889 $SHOW_NDB
; %PRINT: field-name EDB_QLINK = [0, 0, 0, 0]
; %PRINT: field-name EDB_ENTITY_ID = [3, 0, 0, 0]
; %PRINT: field-name NDB_ENTITY_ID = [3, 0, 0, 0]
; %PRINT: field-name NDB_NODE_TYPE = [7, 8, 3, 0]
; %PRINT: field-name EDB_PARAMETER_COUNT = [12, 0, 16, 1]
; %PRINT: field-name EDB_PARAMETER_ALLOCATION = [13, 0, 16, 1]
; %PRINT: field-name EDB_PARAMETER_VECTOR = [14, 0, 16, 0]
; %PRINT: field-name EDB_FIELDS = [0, 0, 0, 0]
; %PRINT: field-name NDB_CIRCUIT_QLINK = [15, 0, 0, 0]
; %PRINT: field-name NDB_SVC_CIRCUIT = [18, 0, 16, 0]
; 1890
; 1891 NDB_QE = NMU$QUEUE_SCAN (QH_NODE_PARAMETERS, .CKT_ENTITY_ID, SVC_CKT_MATCH);
; 1892
; 1893 if .NDB_QE neq 0
; 1894 then return ch$ptr (NDB_QE[NDB_ENTITY_ID],,8)
; 1895 else return 0;
; 1896
; 1897 end; ! End of NML$FIND_NDB
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 58
X00.89 NML$FIND_NDB as NL_VFN 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (9)
.SBTTL NL.VFN NML$FIND_NDB as NL_VFN
000000 012746 001004' NL.VFN::MOV #QH.NODE.PARAMETERS,-(SP) ; 1891
000004 016646 000004 MOV 4(SP),-(SP) ; CKT.ENTITY.ID,*
000010 012746 000000V MOV #SVC.CKT.MATCH,-(SP)
000014 004767 000000G JSR PC,UQ.SCAN
000020 005700 TST R0 ; NDB.QE 1893
000022 001403 BEQ 1$
000024 062700 000006 ADD #6,R0 ; *,NDB.QE 1894
000030 000401 BR 2$ ; 1893
000032 005000 1$: CLR R0
000034 062706 000006 2$: ADD #6,SP ; 1856
000040 000207 RTS PC
; Routine Size: 17 words, Routine Base: $CODE$ + 4412
; Maximum stack depth per invocation: 4 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 59
X00.89 SELECT_LOGGING 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (10)
; 1898 %routine ('SELECT_LOGGING', EDB_QE : ref ENTITY_DB_BLOCK, PBF : ref PBF_BLOCK) =
; 1899
; 1900 !++
; 1901 ! FUNCTIONAL DESCRIPTION:
; 1902 !
; 1903 ! No filters supported yet.
; 1904 !
; 1905 ! FORMAL PARAMETERS
; 1906 !
; 1907 ! NONE.
; 1908 !
; 1909 ! IMPLICIT INPUTS
; 1910 !
; 1911 ! NONE.
; 1912 !
; 1913 ! ROUTINE VALUE:
; 1914 !
; 1915 ! NONE.
; 1916 !
; 1917 ! SIDE EFFECTS:
; 1918 !
; 1919 ! NONE.
; 1920 !
; 1921 !--
; 1922
; 1923 begin
; 1924
; 1925 selectone .PBF [PBF_SELECTOR] of
; 1926 set
; 1927 [-1]:
; 1928 ;
; 1929 [otherwise]:
; 1930 begin
; 1931 literal ON = 0, OFF = 1, HOLD = 2;
; 1932 local STATE;
; 1933
; 1934 NML$GET_VDB_PARAMETER (LOGGING_,
; 1935 ch$ptr (EDB_QE[EDB_ENTITY_ID],,8),
; 1936 0,
; 1937 STATE);
; 1938 selectone .STATE of
; 1939 set
; 1940 [ON, HOLD]:
; 1941 ;
; 1942 [otherwise]:
; 1943 return 0;
; 1944 tes;
; 1945 end;
; 1946 tes;
; 1947
; 1948 if (.PBF [PBF_LEN_ADR] = ..PBF [PBF_LEN_ADR] - 1) geq 0
; 1949 then
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 60
X00.89 SELECT_LOGGING 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (10)
; 1950 ch$wchar_a (ch$rchar (ch$ptr (EDB_QE[EDB_ENTITY_ID],,8)),
; 1951 .PBF [PBF_BUF_PTR_ADR]);
; 1952
; 1953 return 0
; 1954 end; ! End of SELECT_LOGGING
.SBTTL SELECT.LOGGING SELECT_LOGGING
000000 004167 000000G SELECT.LOGGING:
JSR R1,$SAVE2 ; 1898
000004 005746 TST -(SP)
000006 016601 000012 MOV 12(SP),R1 ; PBF,* 1925
000012 116100 000020 MOVB 20(R1),R0
000016 020027 177777 CMP R0,#-1
000022 001427 BEQ 2$
000024 012746 000002 MOV #2,-(SP) ; 1934
000030 016646 000016 MOV 16(SP),-(SP) ; EDB.QE,* 1935
000034 062716 000006 ADD #6,(SP)
000040 005046 CLR -(SP) ; 1934
000042 012746 000010 MOV #10,-(SP)
000046 060616 ADD SP,(SP) ; STATE,*
000050 004767 177006 JSR PC,NL.VGP
000054 016600 000010 MOV 10(SP),R0 ; STATE,* 1938
000060 001406 BEQ 1$
000062 020027 000002 CMP R0,#2
000066 001403 BEQ 1$
000070 062706 000010 ADD #10,SP ; 1943
000074 000415 BR 3$
000076 062706 000010 1$: ADD #10,SP ; 1930
000102 005371 000012 2$: DEC @12(R1) ; 1948
000106 100410 BMI 3$
000110 017102 000010 MOV @10(R1),R2 ; 1951
000114 016600 000014 MOV 14(SP),R0 ; EDB.QE,* 1950
000120 116012 000006 MOVB 6(R0),(R2) ; 1951
000124 005271 000010 INC @10(R1)
000130 005000 3$: CLR R0 ; 1898
000132 005726 TST (SP)+
000134 000207 RTS PC
; Routine Size: 47 words, Routine Base: $CODE$ + 4454
; Maximum stack depth per invocation: 9 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 61
X00.89 SELECT_MODULE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (11)
; 1955 %routine ('SELECT_MODULE', EDB_QE : ref ENTITY_DB_BLOCK, PBM : ref PBM_BLOCK) =
; 1956
; 1957 !++
; 1958 ! FUNCTIONAL DESCRIPTION:
; 1959 !
; 1960 ! No filters supported yet.
; 1961 !
; 1962 ! FORMAL PARAMETERS
; 1963 !
; 1964 ! NONE.
; 1965 !
; 1966 ! IMPLICIT INPUTS
; 1967 !
; 1968 ! NONE.
; 1969 !
; 1970 ! ROUTINE VALUE:
; 1971 !
; 1972 ! NONE.
; 1973 !
; 1974 ! SIDE EFFECTS:
; 1975 !
; 1976 ! NONE.
; 1977 !
; 1978 !--
; 1979
; 1980 begin
; 1981 local LEN;
; 1982
; 1983 selectone .PBM [PBM_SELECTOR] of
; 1984 set
; 1985 [-1]:
; 1986 ;
; 1987 [otherwise]:
; 1988 return 0;
; 1989 tes;
; 1990
; 1991 LEN = ch$rchar (ch$ptr (EDB_QE[EDB_ENTITY_ID],,8)) + 1;
; 1992
; 1993 if (.PBM [PBM_LEN_ADR] = ..PBM [PBM_LEN_ADR] - .LEN) geq 0
; 1994 then
; 1995 .PBM [PBM_BUF_PTR_ADR] = ch$move (.LEN,
; 1996 ch$ptr (EDB_QE[EDB_ENTITY_ID],,8),
; 1997 ..PBM [PBM_BUF_PTR_ADR]);
; 1998
; 1999 return 0
; 2000 end; ! End of SELECT_MODULE
.SBTTL SELECT.MODULE SELECT_MODULE
000000 004167 000000G SELECT.MODULE:
JSR R1,$SAVE2 ; 1955
000004 016601 000010 MOV 10(SP),R1 ; PBM,* 1983
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 62
X00.89 SELECT_MODULE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (11)
000010 116100 000004 MOVB 4(R1),R0
000014 020027 177777 CMP R0,#-1
000020 001025 BNE 1$ ; 1988
000022 016600 000012 MOV 12(SP),R0 ; EDB.QE,* 1991
000026 005002 CLR R2 ; LEN
000030 156002 000006 BISB 6(R0),R2 ; *,LEN
000034 005202 INC R2 ; LEN
000036 160271 000002 SUB R2,@2(R1) ; LEN,* 1993
000042 100414 BMI 1$
000044 010246 MOV R2,-(SP) ; LEN,* 1997
000046 012746 000006 MOV #6,-(SP) ; 1996
000052 060016 ADD R0,(SP)
000054 017146 000000 MOV @0(R1),-(SP) ; 1997
000060 004767 000000G JSR PC,BL$MOV
000064 010071 000000 MOV R0,@0(R1) ; 1995
000070 062706 000006 ADD #6,SP
000074 005000 1$: CLR R0 ; 1955
000076 000207 RTS PC
; Routine Size: 32 words, Routine Base: $CODE$ + 4612
; Maximum stack depth per invocation: 7 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 63
X00.89 VDB_READ 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (12)
; 2001 %routine ('VDB_READ', FUNCTION, TYPE, ENTITY, QUALIFIER, SELECTOR, LENGTH, BP_ADDR, ERR_DETAIL) =
; 2002
; 2003 !++
; 2004 ! FUNCTIONAL DESCRIPTION:
; 2005 !
; 2006 ! Performs the NML NICE read function for NML volatile parameters.
; 2007 !
; 2008 ! FORMAL PARAMETERS
; 2009 !
; 2010 ! FUNCTION - Code to denote whether the specified parameter is to be
; 2011 ! defined or purged.
; 2012 ! TYPE - The NML entity type number of the entity to which the
; 2013 ! parameter pertains.
; 2014 ! ENTITY - Character sequence pointer to the entity id.
; 2015 ! QUALIFIER - An optional character sequence pointer to a qualifier in
; 2016 ! parameter format.
; 2017 ! SELECTOR - For the return function, the class of entities to return.
; 2018 ! LENGTH - The address of a variable to be updated with the length
; 2019 ! of the data returned in the buffer.
; 2020 ! BP_ADDR - The address of a character sequence pointer to
; 2021 ! the parameter buffer.
; 2022 ! ERR_DETAIL- The address of a variable in which to return the
; 2023 ! error detail field for the response message if this
; 2024 ! request fails.
; 2025 !
; 2026 ! IMPLICIT INPUTS
; 2027 !
; 2028 ! NONE.
; 2029 !
; 2030 ! ROUTINE VALUE:
; 2031 !
; 2032 ! NML specified NICE return code.
; 2033 !
; 2034 ! SIDE EFFECTS:
; 2035 !
; 2036 ! NONE.
; 2037 !
; 2038 !--
; 2039
; 2040 begin
; 2041
; 2042 local
; 2043 RESULT,
; 2044 EDB_QE: ref ENTITY_DB_BLOCK;
; 2045
; L 2046 $SHOW_EDB
; %PRINT: field-name EDB_QLINK = [0, 0, 0, 0]
; %PRINT: field-name EDB_ENTITY_ID = [3, 0, 0, 0]
; %PRINT: field-name NDB_ENTITY_ID = [3, 0, 0, 0]
; %PRINT: field-name NDB_NODE_TYPE = [7, 8, 3, 0]
; %PRINT: field-name EDB_PARAMETER_COUNT = [12, 0, 16, 1]
; %PRINT: field-name EDB_PARAMETER_ALLOCATION = [13, 0, 16, 1]
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 64
X00.89 VDB_READ 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (12)
; %PRINT: field-name EDB_PARAMETER_VECTOR = [14, 0, 16, 0]
; 2047
; 2048 if (EDB_QE = GET_EXISTING_ENTITY_DB (.TYPE, .ENTITY)) eql 0
; 2049 then RESULT = (if ENTITY_IS_VALID (.TYPE, .ENTITY)
; 2050 then NICE$_SUC
; 2051 else begin
; 2052 .ERR_DETAIL = .TYPE;
; L 2053 $NICE$ERR_URC
; %PRINT: Unrecognized component
; 2054 end)
; 2055 else begin
; L 2056 %if $X25 and not $MCB
; U 2057 %then
; U 2058
; U 2059 if .TYPE eql MODULE_
; U 2060 then begin
; U 2061 RESULT = READ_QUALIFIED_ENTITY (.EDB_QE,
; U 2062 .FUNCTION,
; U 2063 .TYPE,
; U 2064 .ENTITY,
; U 2065 .QUALIFIER,
; U 2066 .SELECTOR,
; U 2067 .LENGTH,
; U 2068 .BP_ADDR);
; U 2069
; U 2070 return .RESULT;
; U 2071 end;
; U 2072
; 2073 %fi
; 2074
; 2075 RESULT = READ_ENTITY (.EDB_QE,
; 2076 .FUNCTION,
; 2077 .TYPE,
; 2078 .ENTITY,
; 2079 .QUALIFIER,
; 2080 .SELECTOR,
; 2081 .LENGTH,
; 2082 .BP_ADDR);
; 2083 end;
; 2084
; 2085 return .RESULT;
; 2086 end; ! End of VDB_READ
.SBTTL VDB.READ VDB_READ
000000 004167 000000G VDB.READ:
JSR R1,$SAVE2 ; 2001
000004 016602 000024 MOV 24(SP),R2 ; TYPE,* 2048
000010 010246 MOV R2,-(SP)
000012 016601 000024 MOV 24(SP),R1 ; ENTITY,*
000016 010146 MOV R1,-(SP)
000020 004767 000000V JSR PC,GET.EXISTING.ENTITY.DB
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 65
X00.89 VDB_READ 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (12)
000024 022626 CMP (SP)+,(SP)+
000026 005700 TST R0 ; EDB.QE
000030 001017 BNE 2$
000032 010246 MOV R2,-(SP) ; 2049
000034 010146 MOV R1,-(SP)
000036 004767 000000V JSR PC,ENTITY.IS.VALID
000042 022626 CMP (SP)+,(SP)+
000044 006000 ROR R0
000046 103003 BCC 1$
000050 012701 000001 MOV #1,R1 ; *,RESULT
000054 000427 BR 3$
000056 010276 000010 1$: MOV R2,@10(SP) ; *,ERR.DETAIL 2052
000062 012701 177770 MOV #-10,R1 ; *,RESULT 2049
000066 000422 BR 3$ ; 2048
000070 010046 2$: MOV R0,-(SP) ; EDB.QE,* 2075
000072 016646 000030 MOV 30(SP),-(SP) ; FUNCTION,*
000076 010246 MOV R2,-(SP)
000100 010146 MOV R1,-(SP)
000102 016646 000030 MOV 30(SP),-(SP) ; QUALIFIER,*
000106 016646 000030 MOV 30(SP),-(SP) ; SELECTOR,*
000112 016646 000030 MOV 30(SP),-(SP) ; LENGTH,*
000116 016646 000030 MOV 30(SP),-(SP) ; BP.ADDR,*
000122 004767 000000V JSR PC,READ.ENTITY
000126 010001 MOV R0,R1 ; *,RESULT
000130 062706 000020 ADD #20,SP ; 2055
000134 010100 3$: MOV R1,R0 ; RESULT,* 2040
000136 000207 RTS PC ; 2001
; Routine Size: 48 words, Routine Base: $CODE$ + 4712
; Maximum stack depth per invocation: 12 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 66
X00.89 VDB_READ 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (13)
; U 2087 %if $X25 and not $MCB %then
; U 2088 %routine ('READ_QUALIFIED_ENTITY', EDB_QE, FUNCTION, TYPE, ENTITY, QUALIFIER, SELECTOR, LENGTH, POINTER) =
; U 2089
; U 2090 !++
; U 2091 ! FUNCTIONAL DESCRIPTION:
; U 2092 !
; U 2093 ! Perform the read information function for a specific entity
; U 2094 ! in the volatile data base which has qualifier sub-queues.
; U 2095 !
; U 2096 ! FORMAL PARAMETERS
; U 2097 !
; U 2098 ! EDB_QE - Address of the entity data base entry.
; U 2099 ! FUNCTION - Code to denote whether a straight read parameters/counters
; U 2100 ! operation or a show and zero counters is performed.
; U 2101 ! TYPE - The NML entity type number of the entity to which the
; U 2102 ! parameter pertains.
; U 2103 ! ENTITY - Character sequence pointer to the entity id.
; U 2104 ! QUALIFIER - An optional character sequence pointer to a qualifier in
; U 2105 ! parameter format.
; U 2106 ! SELECTOR - For the return function, the class of entities to return.
; U 2107 ! LENGTH - The address of a variable to be updated with the length
; U 2108 ! of the data returned in the buffer.
; U 2109 ! POINTER - The address of a character sequence pointer to
; U 2110 ! the parameter buffer.
; U 2111 !
; U 2112 ! IMPLICIT INPUTS
; U 2113 !
; U 2114 ! NONE.
; U 2115 !
; U 2116 ! ROUTINE VALUE:
; U 2117 !
; U 2118 ! NICE return code.
; U 2119 !
; U 2120 ! SIDE EFFECTS:
; U 2121 !
; U 2122 ! NONE.
; U 2123 !
; U 2124 !--
; U 2125
; U 2126 begin
; U 2127
; U 2128 map
; U 2129 EDB_QE: ref ENTITY_DB_BLOCK;
; U 2130
; U 2131 local
; U 2132 QUALIFIER_QUEUE: ref Q_HEADER,
; U 2133 ENTRY: ref ENTITY_DB_BLOCK;
; U 2134
; U 2135 QUALIFIER_QUEUE = EDB_QE[EDB_QUALIFIER_QUEUE]; ! Get qualified queue header
; U 2136
; U 2137 if .QUALIFIER eql 0
; U 2138 then begin ! Read default existing queue
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 67
X00.89 VDB_READ 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (13)
; U 2139
; U 2140 ! If the queue length (number of entries) is not 1,
; U 2141 ! i.e. the queue does not have any entries or more than one
; U 2142
; U 2143 if NMU$QUEUE_LENGTH (.QUALIFIER_QUEUE) neq 1
; U 2144 then begin ! Return list of network names
; U 2145 local NEXT: ref Q_ENTRY;
; U 2146
; U 2147 NEXT = .QUALIFIER_QUEUE[Q_FORWARD];
; U 2148 while ((ENTRY = .NEXT) neq .QUALIFIER_QUEUE)
; U 2149 do begin
; U 2150 NEXT = .NEXT[Q_FORWARD];
; U 2151 READ_QUALIFIER (.ENTRY, .LENGTH, .POINTER);
; U 2152 end;
; U 2153
; U 2154 return NICE$_SUC;
; U 2155 end;
; U 2156
; U 2157 ENTRY = .QUALIFIER_QUEUE[Q_FORWARD]; ! Default qualified queue
; U 2158 end
; U 2159 else begin ! Read specific queue
; U 2160 local ID_STRING, COUNT: $SIGNED_BYTE_VALUE;
; U 2161
; U 2162 ID_STRING = ch$plus (.QUALIFIER, 2);
; U 2163 COUNT = ch$rchar (.ID_STRING); ! Get the count byte
; U 2164
; U 2165 if .COUNT[VALUE] lss 0 ! If count byte is negative ....
; U 2166 then begin ! Read KNOWN qualified queues
; U 2167 local RESULT, NEXT: ref Q_ENTRY;
; U 2168
; U 2169 NEXT = .QUALIFIER_QUEUE[Q_FORWARD];
; U 2170 RESULT = NICE$_SUC;
; U 2171
; U 2172 while (.RESULT eql NICE$_SUC)
; U 2173 and ((ENTRY = .NEXT) neq .QUALIFIER_QUEUE)
; U 2174 do begin
; U 2175 NEXT = .NEXT[Q_FORWARD];
; U 2176 READ_QUALIFIER (.ENTRY, .LENGTH, .POINTER);
; U 2177 RESULT = READ_ENTITY (.ENTRY,
; U 2178 .FUNCTION,
; U 2179 .TYPE,
; U 2180 .ENTITY,
; U 2181 .QUALIFIER,
; U 2182 .SELECTOR,
; U 2183 .LENGTH,
; U 2184 .POINTER);
; U 2185 end;
; U 2186
; U 2187 return .RESULT;
; U 2188 end
; U 2189 else begin ! Read specific qualified queue
; U 2190 ENTRY = NMU$QUEUE_SCAN (.QUALIFIER_QUEUE,
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 68
X00.89 VDB_READ 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (13)
; U 2191 .ID_STRING,
; U 2192 NON_NODE_ID_MATCH);
; U 2193
; U 2194 if .ENTRY eql 0 ! No data base for specified qualifier
; U 2195 then return NICE$_SUC;
; U 2196 end;
; U 2197 end;
; U 2198
; U 2199 READ_QUALIFIER (.ENTRY, .LENGTH, .POINTER);
; U 2200
; U 2201 return READ_ENTITY (.ENTRY,
; U 2202 .FUNCTION,
; U 2203 .TYPE,
; U 2204 .ENTITY,
; U 2205 .QUALIFIER,
; U 2206 .SELECTOR,
; U 2207 .LENGTH,
; U 2208 .POINTER);
; U 2209 end; ! End of READ_QUALIFIED_ENTITY
; 2210 %fi
; 2211 %sbttl ''
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 69
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (14)
; U 2212 %if $X25 and not $MCB %then
; U 2213 %routine ('READ_QUALIFIER', ENTRY, LENGTH, POINTER) : novalue =
; U 2214
; U 2215 !++
; U 2216 ! FUNCTIONAL DESCRIPTION:
; U 2217 !
; U 2218 ! Perform the read qualifier for a specific qualifier queue
; U 2219 ! in the volatile data base.
; U 2220 !
; U 2221 ! FORMAL PARAMETERS
; U 2222 !
; U 2223 ! ENTRY Address of the entity data base entry.
; U 2224 ! LENGTH The address of a variable to be updated with the length
; U 2225 ! of the data returned in the buffer.
; U 2226 ! POINTER The address of a character sequence pointer to
; U 2227 ! the parameter buffer.
; U 2228 !
; U 2229 ! IMPLICIT INPUTS
; U 2230 !
; U 2231 ! NONE.
; U 2232 !
; U 2233 ! ROUTINE VALUE:
; U 2234 !
; U 2235 ! NONE.
; U 2236 !
; U 2237 ! SIDE EFFECTS:
; U 2238 !
; U 2239 ! NONE.
; U 2240 !
; U 2241 !--
; U 2242
; U 2243 begin
; U 2244
; U 2245 map
; U 2246 ENTRY: ref ENTITY_DB_BLOCK;
; U 2247
; U 2248 local
; U 2249 VAL;
; U 2250
; U 2251 VAL = 1110; ! NETWORK parameter number
; U 2252 PUTW (VAL, .POINTER);
; U 2253
; U 2254 PUTB (%O'100', .POINTER); ! Data type byte
; U 2255
; U 2256 VAL = ch$rchar (ch$ptr (ENTRY[EDB_QUALIFIER],,8)) + 1;
; U 2257 .POINTER = ch$move (.VAL, ! Network name string
; U 2258 ch$ptr (ENTRY[EDB_QUALIFIER],,8),
; U 2259 ..POINTER);
; U 2260
; U 2261 .LENGTH = ..LENGTH - .VAL - 3; ! Remaining length of the buffer
; U 2262
; U 2263 return;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 70
X00.89 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (14)
; U 2264 end; ! End of READ_QUALIFIER
; 2265 %fi
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 71
X00.89 READ_ENTITY 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (15)
; 2266 %routine ('READ_ENTITY', EDB_QE, FUNCTION, TYPE, ENTITY, QUALIFIER, SELECTOR, LENGTH, BP_ADDR) =
; 2267
; 2268 !++
; 2269 ! FUNCTIONAL DESCRIPTION:
; 2270 !
; 2271 ! Perform the read information function for a specific entity
; 2272 ! in the volatile data base.
; 2273 !
; 2274 ! FORMAL PARAMETERS
; 2275 !
; 2276 ! EDB_QE - Address of the entity data base entry.
; 2277 ! FUNCTION - Code to denote whether a straight read parameters/counters
; 2278 ! operation or a show and zero counters is performed.
; 2279 ! TYPE - The NML entity type number of the entity to which the
; 2280 ! parameter pertains.
; 2281 ! ENTITY - Character sequence pointer to the entity id.
; 2282 ! QUALIFIER - An optional character sequence pointer to a qualifier in
; 2283 ! parameter format.
; 2284 ! SELECTOR - For the return function, the class of entities to return.
; 2285 ! LENGTH - The address of a variable to be updated with the length
; 2286 ! of the data returned in the buffer.
; 2287 ! BP_ADDR - The address of a character sequence pointer to
; 2288 ! the parameter buffer.
; 2289 !
; 2290 ! IMPLICIT INPUTS
; 2291 !
; 2292 ! NONE.
; 2293 !
; 2294 ! ROUTINE VALUE:
; 2295 !
; 2296 ! NICE return code.
; 2297 !
; 2298 ! SIDE EFFECTS:
; 2299 !
; 2300 ! NONE.
; 2301 !
; 2302 !--
; 2303
; 2304 begin
; 2305
; 2306 map
; 2307 EDB_QE: ref ENTITY_DB_BLOCK;
; 2308
; 2309 local
; 2310 PVB_QE: ref $NML$PVB_ENTRY_BLOCK;
; 2311
; 2312 selectone .FUNCTION of
; 2313 set
; 2314 [%bliss36($NTSHO)
; 2315 %bliss16(N$FSHO)]: ! Show parameters
; 2316 begin
; 2317 case .SELECTOR from SUMMARY_ to EVENTS_ of
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 72
X00.89 READ_ENTITY 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (15)
; 2318 set
; 2319 [SUMMARY_, STATUS_, CHARACTERISTICS_]:
; 2320 READ_PARAMETERS (.EDB_QE, .TYPE, .SELECTOR,
; 2321 .LENGTH, .BP_ADDR);
; 2322 [COUNTERS_]:
; 2323 READ_COUNTERS (.EDB_QE, .TYPE, .SELECTOR,
; 2324 .LENGTH, .BP_ADDR);
; 2325 [EVENTS_]:
; 2326 READ_FILTERS (.EDB_QE, .TYPE, .QUALIFIER,
; 2327 .LENGTH, .BP_ADDR);
; 2328 tes
; 2329 end;
; 2330
; 2331 [%bliss36($NTSZC)
; 2332 %bliss16(N$FSZC)]: ! Show and zero counters
; 2333 READ_COUNTERS (.EDB_QE, .TYPE, .SELECTOR,
; 2334 .LENGTH, .BP_ADDR);
; 2335 [otherwise]:
; L 2336 $NICE$ERR_MPE;
; %PRINT: Management program error
; 2337 tes
; 2338
; 2339 end; ! End of READ_ENTITY
.SBTTL READ.ENTITY READ_ENTITY
000000 004167 000000G READ.ENTITY:
JSR R1,$SAVE5 ; 2266
000004 016600 000032 MOV 32(SP),R0 ; FUNCTION,* 2312
000010 020027 000004 CMP R0,#4
000014 001045 BNE 4$
000016 016604 000034 MOV 34(SP),R4 ; EDB.QE,* 2320
000022 016603 000030 MOV 30(SP),R3 ; TYPE,*
000026 016602 000020 MOV 20(SP),R2 ; LENGTH,* 2321
000032 016601 000016 MOV 16(SP),R1 ; BP.ADDR,*
000036 016600 000022 MOV 22(SP),R0 ; SELECTOR,* 2317
000042 010005 MOV R0,R5 ; 2316
000044 006305 ASL R5
000046 066507 000020' ADD P.AAD(R5),PC ; Case dispatch
000052 010446 1$: MOV R4,-(SP) ; 2320
000054 010346 MOV R3,-(SP)
000056 010046 MOV R0,-(SP)
000060 010246 MOV R2,-(SP)
000062 010146 MOV R1,-(SP)
000064 004767 000000V JSR PC,READ.PARAMETERS
000070 000436 BR 6$ ; 2316
000072 010446 2$: MOV R4,-(SP) ; 2323
000074 010346 MOV R3,-(SP)
000076 010046 MOV R0,-(SP)
000100 010246 MOV R2,-(SP)
000102 010146 MOV R1,-(SP)
000104 000426 BR 5$
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 73
X00.89 READ_ENTITY 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (15)
000106 010446 3$: MOV R4,-(SP) ; 2326
000110 010346 MOV R3,-(SP)
000112 016646 000030 MOV 30(SP),-(SP) ; QUALIFIER,*
000116 010246 MOV R2,-(SP)
000120 010146 MOV R1,-(SP)
000122 004767 000000V JSR PC,READ.FILTERS
000126 000417 BR 6$ ; 2316
000130 020027 000005 4$: CMP R0,#5 ; 2312
000134 001017 BNE 7$
000136 016646 000034 MOV 34(SP),-(SP) ; EDB.QE,* 2333
000142 016646 000032 MOV 32(SP),-(SP) ; TYPE,*
000146 016646 000026 MOV 26(SP),-(SP) ; SELECTOR,*
000152 016646 000026 MOV 26(SP),-(SP) ; LENGTH,*
000156 016646 000026 MOV 26(SP),-(SP) ; BP.ADDR,*
000162 004767 000000V 5$: JSR PC,READ.COUNTERS
000166 062706 000012 6$: ADD #12,SP
000172 000207 RTS PC ; 2312
000174 012700 177773 7$: MOV #-5,R0
000200 000207 RTS PC ; 2266
; Routine Size: 65 words, Routine Base: $CODE$ + 5052
; Maximum stack depth per invocation: 12 words
000020 .PSECT $PLIT$, RO , D
P.AAD: ; CASE Table for READ.ENTITY+0046 2316
000020 000000 .WORD 0 ; [1$]
000022 000000 .WORD 0 ; [1$]
000024 000000 .WORD 0 ; [1$]
000026 000020 .WORD 20 ; [2$]
000030 000034 .WORD 34 ; [3$]
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 74
X00.89 READ_PARAMETERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (16)
; 2340 %routine ('READ_PARAMETERS', EDB_QE, TYPE, SELECTOR, LENGTH, BP_ADDR) =
; 2341
; 2342 !++
; 2343 ! FUNCTIONAL DESCRIPTION:
; 2344 !
; 2345 ! Reads all of the NML parameters out of the volatile
; 2346 ! data base for an entity.
; 2347 !
; 2348 ! FORMAL PARAMETERS
; 2349 !
; 2350 ! EDB_QE - Address of the entity data base entry.
; 2351 ! TYPE - The NML entity type number of the entity to which the
; 2352 ! parameter pertains.
; 2353 ! SELECTOR - For the return function, the class of entities to return.
; 2354 ! LENGTH - The address of a variable to be updated with the length
; 2355 ! of the data returned in the buffer.
; 2356 ! BP_ADDR - The address of a character sequence pointer to
; 2357 ! the parameter buffer.
; 2358 !
; 2359 ! IMPLICIT INPUTS
; 2360 !
; 2361 ! When called, the contents of the address passed as LENGTH
; 2362 ! specifies the characters currently available in the buffer.
; 2363 !
; 2364 ! ROUTINE VALUE:
; 2365 !
; 2366 ! NICE return code.
; 2367 !
; 2368 ! SIDE EFFECTS:
; 2369 !
; 2370 ! The contents of LENGTH are updated.
; 2371 !
; 2372 !--
; 2373
; 2374 begin
; 2375
; 2376 map
; 2377 EDB_QE: ref ENTITY_DB_BLOCK;
; 2378
; 2379 label
; 2380 DISPLAY_CHECK;
; 2381
; 2382 literal
; 2383 CPARM_STATE = 0; ! Circuit STATE
; 2384
; 2385 !
; 2386 ! If parameter count is zero or a parameter vector is not currently
; 2387 ! allocated there is nothing to show.
; 2388 !
; 2389
; 2390 if ((.EDB_QE[EDB_PARAMETER_ALLOCATION] eql 0) ! They better all be in
; 2391 and (.EDB_QE[EDB_PARAMETER_VECTOR] eql 0)) ! agreement.
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 75
X00.89 READ_PARAMETERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (16)
; 2392 or (.EDB_QE[EDB_PARAMETER_COUNT] eql 0)
; 2393 then return NICE$_SUC;
; 2394
; 2395 !
; 2396 ! Otherwise, if the count is non-zero and a parameter vector is
; 2397 ! allocated, then search through the vector for each parameter
; 2398 ! in the volatile data base and place a formatted entry in the
; 2399 ! buffer representing its current value.
; 2400 !
; 2401
; 2402 begin
; 2403
; 2404 local
; 2405 PVB_QE: ref $NML$PVB_ENTRY_BLOCK;
; 2406
; 2407 PVB_QE = .EDB_QE[EDB_PARAMETER_VECTOR];
; 2408
; 2409 decru N from .EDB_QE[EDB_PARAMETER_COUNT] to 1
; 2410 do begin
; 2411 DISPLAY_CHECK:
; 2412 begin ! DISPLAY_CHECK
; 2413 local L;
; 2414
; 2415 case .SELECTOR from SUMMARY_ to COUNTERS_ of
; 2416 set
; 2417 [STATUS_]:
; 2418 if not NML$STATUS (.TYPE, .PVB_QE[PE_NUMBER])
; 2419 then leave DISPLAY_CHECK;
; 2420 [SUMMARY_]:
; 2421 if not NML$SUMMARY (.TYPE, .PVB_QE[PE_NUMBER])
; 2422 then leave DISPLAY_CHECK;
; 2423 [CHARACTERISTICS_]:
; 2424 if not NML$CHARACTERISTIC (.TYPE, .PVB_QE[PE_NUMBER])
; 2425 then leave DISPLAY_CHECK;
; 2426 [inrange]:
; 2427 return NICE$_MPE;
; 2428 tes;
; L 2429 %if $MCB
; 2430 %then
; 2431 selectone .TYPE of
; 2432 set
; 2433 [LINE_, CIRCUIT_]:
; 2434 if .PVB_QE[PE_NUMBER] eql CPARM_STATE
; 2435 then leave DISPLAY_CHECK;
; 2436 [otherwise]:
; 2437 ;
; 2438 tes;
; 2439 %fi
; 2440
; 2441 !
; 2442 ! If the parameter buffer length is 3 or less, we can't fill in
; 2443 ! any data in the buffer.
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 76
X00.89 READ_PARAMETERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (16)
; 2444 !
; 2445
; 2446 if ..LENGTH leq 3 then return NICE$_REE;
; 2447
; 2448 L = READ_PARAMETER_DATA (.TYPE, .PVB_QE, ..LENGTH-3, .BP_ADDR) + 3;
; 2449
; L 2450 if ..LENGTH lss .L then return $NICE$ERR_REE;
; %PRINT: Resource error
; 2451
; 2452 .LENGTH = ..LENGTH - .L
; 2453 end; ! DISPLAY_CHECK
; 2454 PVB_QE = vector [.PVB_QE, PVB_ENTRY_SIZE];
; 2455 end;
; 2456
; 2457 end;
; 2458
; 2459 if (.TYPE eql LOGGING_) and (.SELECTOR eql CHARACTERISTICS_)
; 2460 then READ_FILTERS (.EDB_QE, .TYPE, 0, .LENGTH, .BP_ADDR);
; 2461
; 2462 return NICE$_SUC;
; 2463 end; ! End of READ_PARAMETERS
.SBTTL READ.PARAMETERS READ_PARAMETERS
005254 .PSECT $CODE$, RO
000000 004167 000000G READ.PARAMETERS:
JSR R1,$SAVE4 ; 2340
000004 016603 000024 MOV 24(SP),R3 ; EDB.QE,* 2390
000010 005763 000032 TST 32(R3)
000014 001003 BNE 1$
000016 005763 000034 TST 34(R3) ; 2391
000022 001553 BEQ 15$
000024 005763 000030 1$: TST 30(R3) ; 2392
000030 001550 BEQ 15$ ; 2393
000032 016304 000034 MOV 34(R3),R4 ; *,PVB.QE 2407
000036 016302 000030 MOV 30(R3),R2 ; *,N 2409
000042 001517 BEQ 14$
000044 016600 000020 2$: MOV 20(SP),R0 ; SELECTOR,* 2415
000050 006300 ASL R0
000052 066007 000032' ADD P.AAE(R0),PC ; Case dispatch
000056 016646 000022 3$: MOV 22(SP),-(SP) ; TYPE,* 2418
000062 011446 MOV (R4),-(SP) ; PVB.QE,*
000064 004767 000000G JSR PC,NL.PST
000070 022626 CMP (SP)+,(SP)+
000072 006000 ROR R0
000074 103426 BLO 7$
000076 000437 BR 9$ ; 2419
000100 016646 000022 4$: MOV 22(SP),-(SP) ; TYPE,* 2421
000104 011446 MOV (R4),-(SP) ; PVB.QE,*
000106 004767 000000G JSR PC,NL.PSU
000112 022626 CMP (SP)+,(SP)+
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 77
X00.89 READ_PARAMETERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (16)
000114 006000 ROR R0
000116 103415 BLO 7$
000120 000426 BR 9$ ; 2422
000122 016646 000022 5$: MOV 22(SP),-(SP) ; TYPE,* 2424
000126 011446 MOV (R4),-(SP) ; PVB.QE,*
000130 004767 000000G JSR PC,NL.PCH
000134 022626 CMP (SP)+,(SP)+
000136 006000 ROR R0
000140 103404 BLO 7$
000142 000415 BR 9$ ; 2425
000144 012700 177773 6$: MOV #-5,R0 ; 2427
000150 000207 RTS PC
000152 016600 000022 7$: MOV 22(SP),R0 ; TYPE,* 2431
000156 020027 000001 CMP R0,#1
000162 001403 BEQ 8$
000164 020027 000003 CMP R0,#3
000170 001005 BNE 10$
000172 005714 8$: TST (R4) ; PVB.QE 2434
000174 001003 BNE 10$
000176 162706 000010 9$: SUB #10,SP ; 2435
000202 000431 BR 13$
000204 017601 000016 10$: MOV @16(SP),R1 ; LENGTH,* 2446
000210 020127 000003 CMP R1,#3
000214 003417 BLE 11$
000216 010046 MOV R0,-(SP) ; 2448
000220 010446 MOV R4,-(SP) ; PVB.QE,*
000222 010146 MOV R1,-(SP)
000224 162716 000003 SUB #3,(SP)
000230 016646 000022 MOV 22(SP),-(SP) ; BP.ADDR,*
000234 004767 000000V JSR PC,READ.PARAMETER.DATA
000240 062700 000003 ADD #3,R0
000244 020100 CMP R1,R0 ; *,L 2450
000246 002005 BGE 12$
000250 062706 000010 ADD #10,SP
000254 012700 177761 11$: MOV #-17,R0
000260 000207 RTS PC
000262 160076 000026 12$: SUB R0,@26(SP) ; L,LENGTH 2452
000266 062704 000004 13$: ADD #4,R4 ; *,PVB.QE 2454
000272 062706 000010 ADD #10,SP ; 2410
000276 005302 DEC R2 ; N 0000
000300 001261 BNE 2$
000302 026627 000022 000002 14$: CMP 22(SP),#2 ; TYPE,* 2459
000310 001020 BNE 15$
000312 026627 000020 000002 CMP 20(SP),#2 ; SELECTOR,*
000320 001014 BNE 15$
000322 010346 MOV R3,-(SP) ; 2460
000324 016646 000024 MOV 24(SP),-(SP) ; TYPE,*
000330 005046 CLR -(SP)
000332 016646 000024 MOV 24(SP),-(SP) ; LENGTH,*
000336 016646 000024 MOV 24(SP),-(SP) ; BP.ADDR,*
000342 004767 000000V JSR PC,READ.FILTERS
000346 062706 000012 ADD #12,SP
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 78
X00.89 READ_PARAMETERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (16)
000352 012700 000001 15$: MOV #1,R0 ; 2374
000356 000207 RTS PC ; 2340
; Routine Size: 120 words, Routine Base: $CODE$ + 5254
; Maximum stack depth per invocation: 11 words
000032 .PSECT $PLIT$, RO , D
P.AAE: ; CASE Table for READ.PARAMETERS+0052 2415
000032 000022 .WORD 22 ; [4$]
000034 000000 .WORD 0 ; [3$]
000036 000044 .WORD 44 ; [5$]
000040 000066 .WORD 66 ; [6$]
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 79
X00.89 READ_COUNTERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (17)
; 2464 %routine ('READ_COUNTERS', EDB_QE, TYPE, SELECTOR, LENGTH, BP_ADDR) =
; 2465
; 2466 !++
; 2467 ! FUNCTIONAL DESCRIPTION:
; 2468 !
; 2469 ! No counters are supported at this level.
; 2470 !
; 2471 ! FORMAL PARAMETERS
; 2472 !
; 2473 ! NONE.
; 2474 !
; 2475 ! IMPLICIT INPUTS
; 2476 !
; 2477 ! NONE.
; 2478 !
; 2479 ! ROUTINE VALUE:
; 2480 !
; 2481 ! NONE.
; 2482 !
; 2483 ! SIDE EFFECTS:
; 2484 !
; 2485 ! NONE.
; 2486 !
; 2487 !--
; 2488
; 2489 begin
; 2490
; 2491 return $TRUE;
; 2492 end; ! End of READ_COUNTERS
.SBTTL READ.COUNTERS READ_COUNTERS
005634 .PSECT $CODE$, RO
000000 012700 000001 READ.COUNTERS:
MOV #1,R0 ; 2489
000004 000207 RTS PC ; 2464
; Routine Size: 3 words, Routine Base: $CODE$ + 5634
; Maximum stack depth per invocation: 0 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 80
X00.89 READ_FILTERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (18)
; 2493 %routine ('READ_FILTERS', EDB_QE, TYPE, QUALIFIER, LENGTH, BP_ADDR) =
; 2494
; 2495 !++
; 2496 ! FUNCTIONAL DESCRIPTION:
; 2497 !
; 2498 ! No filters supported yet.
; 2499 !
; 2500 ! FORMAL PARAMETERS
; 2501 !
; 2502 ! NONE.
; 2503 !
; 2504 ! IMPLICIT INPUTS
; 2505 !
; 2506 ! NONE.
; 2507 !
; 2508 ! ROUTINE VALUE:
; 2509 !
; 2510 ! NONE.
; 2511 !
; 2512 ! SIDE EFFECTS:
; 2513 !
; 2514 ! NONE.
; 2515 !
; 2516 !--
; 2517
; 2518 begin
; 2519
; 2520 map
; 2521 EDB_QE: ref ENTITY_DB_BLOCK;
; 2522
; 2523 local
; 2524 PBF : PBF_BLOCK,
; 2525 FDB : ref FDB_BLOCK,
; 2526 NODE_PTR;
; 2527
; L 2528 %if NML$CFG_FILTERS
; U 2529 %then
; U 2530
; U 2531 PBF [PBF_LEN_ADR] = .LENGTH;
; U 2532 PBF [PBF_BUF_PTR_ADR] = .BP_ADDR;
; U 2533 PBF [PBF_SINK] = ch$rchar (ch$ptr (EDB_QE [EDB_ENTITY_ID],, 8));
; U 2534
; U 2535 if (NODE_PTR = .QUALIFIER) eql 0
; U 2536 then begin
; U 2537 FDB = NMU$QUEUE_SCAN (QH_LOGGING_FILTERS,
; U 2538 NMU$NETWORK_LOCAL (),
; U 2539 NODE_ID_MATCH);
; U 2540 if .FDB neq 0
; U 2541 then if READ_FILTER (.FDB, PBF) neq 0
; U 2542 then return $FALSE;
; U 2543 end
; U 2544 else begin
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 81
X00.89 READ_FILTERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (18)
; U 2545 if (FDB = ch$rchar_a (NODE_PTR)) lequ 127
; U 2546 then begin
; U 2547 local NODE_BUF : block [NODE_ID_BUFFER_SIZE];
; U 2548
; U 2549 if .FDB eql 0
; U 2550 then begin
; U 2551 local NODE_ADR;
; U 2552
; U 2553 if (NODE_ADR = GETW (NODE_PTR)) eql 0
; U 2554 then begin
; U 2555 ch$move (NODE_ID_BUFFER_LENGTH,
; U 2556 NMU$NETWORK_LOCAL (),
; U 2557 ch$ptr (NODE_BUF,, 8));
; U 2558 NODE_PTR = 0;
; U 2559 end
; U 2560 else begin
; U 2561 NODE_PTR = ch$ptr (NODE_BUF,, 8);
; U 2562 PUTW (NODE_ADR, NODE_PTR);
; U 2563 PUTB (0, NODE_PTR);
; U 2564 end;
; U 2565 end
; U 2566 else begin
; U 2567 NODE_PTR = ch$ptr (NODE_BUF,, 8);
; U 2568 PUTB (0, NODE_PTR);
; U 2569 PUTB (0, NODE_PTR);
; U 2570 ch$move (.FDB + 1, .QUALIFIER, .NODE_PTR);
; U 2571 end;
; U 2572
; U 2573 if .NODE_PTR neq 0
; U 2574 then begin
; U 2575 NODE_PTR = NODE_ID_BUFFER_LENGTH;
; U 2576 $NML$MAP_NODE_ID (NODE_PTR, ch$ptr (NODE_BUF,, 8));
; U 2577 end;
; U 2578
; U 2579 FDB = NMU$QUEUE_SCAN (QH_LOGGING_FILTERS,
; U 2580 ch$ptr (NODE_BUF,, 8),
; U 2581 NODE_ID_MATCH);
; U 2582 if .FDB neq 0
; U 2583 then if READ_FILTER (.FDB, PBF) neq 0
; U 2584 then return $false;
; U 2585 end
; U 2586 else if NMU$QUEUE_SCAN (QH_LOGGING_FILTERS, PBF, READ_FILTER) neq 0
; U 2587 then return $FALSE;
; U 2588 end;
; U 2589
; U 2590 return $TRUE
; 2591 %else
; 2592 return $false
; 2593 %fi
; 2594 end; ! End of READ_FILTERS
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 82
X00.89 READ_FILTERS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (18)
.SBTTL READ.FILTERS READ_FILTERS
000000 005000 READ.FILTERS:
CLR R0 ; 2518
000002 000207 RTS PC ; 2493
; Routine Size: 2 words, Routine Base: $CODE$ + 5642
; Maximum stack depth per invocation: 9 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 83
X00.89 READ_FILTER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (19)
; 2595 %routine ('READ_FILTER', FDB : ref FDB_BLOCK, PBF : ref PBF_BLOCK) =
; 2596
; 2597 !++
; 2598 ! FUNCTIONAL DESCRIPTION:
; 2599 !
; 2600 ! No filters supported yet.
; 2601 !
; 2602 ! FORMAL PARAMETERS
; 2603 !
; 2604 ! NONE.
; 2605 !
; 2606 ! IMPLICIT INPUTS
; 2607 !
; 2608 ! NONE.
; 2609 !
; 2610 ! ROUTINE VALUE:
; 2611 !
; 2612 ! NONE.
; 2613 !
; 2614 ! SIDE EFFECTS:
; 2615 !
; 2616 ! NONE.
; 2617 !
; 2618 !--
; 2619
; 2620 begin
; 2621 PBF [PBF_NODE_ID_PTR] = ch$ptr (FDB [FDB_NODE_ID],, 8);
; 2622
; L 2623 %if NML$CFG_FILTERS
; U 2624 %then
; U 2625
; U 2626 selectone .PBF [PBF_SINK] of
; U 2627 set
; U 2628 [CONSOLE_]:
; U 2629 NMU$QUEUE_SCAN (FDB [FDB_CONSOLE_FILTERS], .PBF, READ_FILTER_SINK);
; U 2630 [FILE_]:
; U 2631 NMU$QUEUE_SCAN (FDB [FDB_FILE_FILTERS], .PBF, READ_FILTER_SINK);
; U 2632 [MONITOR_]:
; U 2633 NMU$QUEUE_SCAN (FDB [FDB_MONITOR_FILTERS], .PBF, READ_FILTER_SINK);
; U 2634 tes
; U 2635
; 2636 %else
; 2637 0
; 2638 %fi
; 2639 end; ! End of READ_FILTER
.SBTTL READ.FILTER READ_FILTER
000000 016600 000002 READ.FILTER:
MOV 2(SP),R0 ; PBF,* 2621
000004 016660 000004 000004 MOV 4(SP),4(R0) ; FDB,*
000012 062760 000006 000004 ADD #6,4(R0)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 84
X00.89 READ_FILTER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (19)
000020 005000 CLR R0 ; 2595
000022 000207 RTS PC
; Routine Size: 10 words, Routine Base: $CODE$ + 5646
; Maximum stack depth per invocation: 0 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 85
X00.89 READ_FILTER_SINK 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (20)
; 2640 %routine ('READ_FILTER_SINK', FDBS : ref FDBS_BLOCK, PBF : ref PBF_BLOCK) =
; 2641
; 2642 !++
; 2643 ! FUNCTIONAL DESCRIPTION:
; 2644 !
; 2645 ! No filters supported yet.
; 2646 !
; 2647 ! FORMAL PARAMETERS
; 2648 !
; 2649 ! NONE.
; 2650 !
; 2651 ! IMPLICIT INPUTS
; 2652 !
; 2653 ! NONE.
; 2654 !
; 2655 ! ROUTINE VALUE:
; 2656 !
; 2657 ! NONE.
; 2658 !
; 2659 ! SIDE EFFECTS:
; 2660 !
; 2661 ! NONE.
; 2662 !
; 2663 !--
; 2664
; 2665 begin
; L 2666 %if NML$CFG_FILTERS
; U 2667 %then
; U 2668 PBF [PBF_ENTITY_PTR] = ch$ptr (FDBS [FDBS_ENTITY],, 8);
; U 2669 NMU$QUEUE_SCAN (FDBS [FDBS_MASKS], .PBF, READ_FILTER_MASKS)
; 2670 %else
; 2671 0
; 2672 %fi
; 2673 end; ! End of READ_FILTER_SINK
.SBTTL READ.FILTER.SINK READ_FILTER_SINK
000000 005000 READ.FILTER.SINK:
CLR R0 ; 2640
000002 000207 RTS PC
; Routine Size: 2 words, Routine Base: $CODE$ + 5672
; Maximum stack depth per invocation: 0 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 86
X00.89 READ_FILTER_MASKS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (21)
; 2674 %routine ('READ_FILTER_MASKS', FDBM : ref FDBM_BLOCK, PBF : ref PBF_BLOCK) =
; 2675
; 2676 !++
; 2677 ! FUNCTIONAL DESCRIPTION:
; 2678 !
; 2679 ! No filters supported yet.
; 2680 !
; 2681 ! FORMAL PARAMETERS
; 2682 !
; 2683 ! NONE.
; 2684 !
; 2685 ! IMPLICIT INPUTS
; 2686 !
; 2687 ! NONE.
; 2688 !
; 2689 ! ROUTINE VALUE:
; 2690 !
; 2691 ! NONE.
; 2692 !
; 2693 ! SIDE EFFECTS:
; 2694 !
; 2695 ! NONE.
; 2696 !
; 2697 !--
; 2698
; 2699 begin
; 2700
; 2701 bind
; 2702 PE = PBF[PBF_PE] : $NML$PVB_ENTRY_BLOCK;
; 2703
; 2704 local
; 2705 MASK : ref block field (MASK_BITS);
; 2706
; L 2707 %if NML$CFG_FILTERS
; U 2708 %then
; U 2709
; U 2710 MASK = FDBM[FDBM_MASKS];
; U 2711
; U 2712 incr TYPE from .FDBM[FDBM_LOW] to .FDBM[FDBM_HIGH]
; U 2713 do begin
; U 2714 local LNG, PTR;
; U 2715
; U 2716 LNG = 0; ! Copy BITVECTOR into 4 bytes
; U 2717 PTR = ch$ptr (PBF[PBF_MASK],, 8);
; U 2718 PUT32 (MASK[MASK_BITS], PTR);
; U 2719 LNG = 0; ! Check if house is full or empty
; U 2720 PTR = ch$ptr (PBF[PBF_MASK],, 8);
; U 2721 decru CNT from 4 to 1 do LNG = .LNG + ch$rchar_a (PTR);
; U 2722 if .LNG neq 0
; U 2723 then begin
; U 2724 if .LNG eql 4*255
; U 2725 then LNG = -1
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 87
X00.89 READ_FILTER_MASKS 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (21)
; U 2726 else LNG = 4; %(for now)%
; U 2727
; U 2728 if .PBF[PBF_NODE_ID_PTR] neq 0
; U 2729 then begin
; U 2730 local L;
; U 2731
; U 2732 PE[PE_NUMBER] = 200;
; U 2733 PE[PE_ADDRESS] = .PBF[PBF_NODE_ID_PTR];
; U 2734 L = READ_PARAMETER_DATA (LOGGING_,
; U 2735 PE,
; U 2736 (..PBF[PBF_LEN_ADR] - 3),
; U 2737 .PBF[PBF_BUF_PTR_ADR]) + 3;
; U 2738 if ..PBF[PBF_LEN_ADR] lss .L then return NICE$_REE;
; U 2739
; U 2740 .PBF[PBF_LEN_ADR] = ..PBF[PBF_LEN_ADR] + .L;
; U 2741 PBF[PBF_NODE_ID_PTR] = 0;
; U 2742 end;
; U 2743
; U 2744 %(record ENTITY TYPE from FDBS[FDBS_ENTITY])%
; U 2745
; U 2746 if .LNG gtr 0
; U 2747 then begin %(record EVENT CLASS from 0^14 + .TYPE)%
; U 2748 0 %(record EVENT MASK from LNG and MASK[MASK_BITS])%
; U 2749 end
; U 2750 else begin
; U 2751 0 %(record EVENT CLASS from 2^14 + .TYPE)%
; U 2752 end;
; U 2753 end;
; U 2754
; U 2755 MASK = vector [.MASK, MASK_SIZE];
; U 2756 end;
; 2757 %fi
; 2758
; 2759 return 0
; 2760 end; ! End of READ_FILTER_MASKS
.SBTTL READ.FILTER.MASKS READ_FILTER_MASKS
000000 005000 READ.FILTER.MASKS:
CLR R0 ; 2699
000002 000207 RTS PC ; 2674
; Routine Size: 2 words, Routine Base: $CODE$ + 5676
; Maximum stack depth per invocation: 0 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 88
X00.89 VDB_CHANGE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (22)
; 2761 %routine ('VDB_CHANGE', FUNCTION, TYPE, QUALIFIER, ENTITY, LENGTH, POINTER, ERR_DETAIL) =
; 2762
; 2763 !++
; 2764 ! FUNCTIONAL DESCRIPTION:
; 2765 !
; 2766 ! Performs the NML NICE change function for NML volatile parameters.
; 2767 !
; 2768 ! FORMAL PARAMETERS
; 2769 !
; 2770 ! FUNCTION - Code to denote whether the specified parameter is to be
; 2771 ! set or cleared.
; 2772 ! TYPE - The NML entity type number of the entity to which the
; 2773 ! parameter pertains.
; 2774 ! QUALIFIER - An optional character sequence pointer to a qualifier in
; 2775 ! parameter format.
; 2776 ! ENTITY - Character sequence pointer to the entity id.
; 2777 ! LENGTH - The length of the parameter data passed in the
; 2778 ! parameter buffer.
; 2779 ! POINTER - A character sequence pointer to the parameter buffer.
; 2780 ! ERR_DETAIL- The address of a variable in which to return the
; 2781 ! error detail field for the response message if this
; 2782 ! request fails.
; 2783 !
; 2784 ! IMPLICIT INPUTS
; 2785 !
; 2786 ! NONE.
; 2787 !
; 2788 ! ROUTINE VALUE:
; 2789 !
; 2790 ! NML specified NICE return code.
; 2791 !
; 2792 ! SIDE EFFECTS:
; 2793 !
; 2794 ! NONE.
; 2795 !
; 2796 !--
; 2797
; 2798 begin
; 2799
; 2800 local
; 2801 EDB_QE: ref ENTITY_DB_BLOCK;
; 2802
; 2803 selectone .FUNCTION of
; 2804 set
; 2805 [%bliss36($NTSET) %bliss16(N$FSET)]: ! SET parameter
; 2806 begin
; 2807 if (EDB_QE = GET_EXISTING_ENTITY_DB (.TYPE, .ENTITY)) eql 0
; 2808 then begin ! Could not locate data base entry
; 2809 if not ENTITY_IS_VALID (.TYPE, .ENTITY) ! Is entity valid ?
; 2810 then begin
; 2811 .ERR_DETAIL = .TYPE;
; L 2812 return $NICE$ERR_URC; ! No, return error
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 89
X00.89 VDB_CHANGE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (22)
; %PRINT: Unrecognized component
; 2813 end;
; 2814
; 2815 if (EDB_QE = SET_ENTITY_DB (.TYPE, .ENTITY)) eql 0
; L 2816 then return $NICE$ERR_NRE; ! Try to create data base entry
; %PRINT: No room for new entry
; 2817
; L 2818 %if $X25 and not $MCB
; U 2819 %then
; U 2820
; U 2821 if .TYPE eql MODULE_ ! Initialize queue for network entries
; U 2822 then NMU$QUEUE_RESET (EDB_QE[EDB_QUALIFIER_QUEUE]);
; U 2823
; 2824 %fi
; 2825 end;
; 2826
; 2827 selectone .TYPE of ! Put the parameter entry into
; 2828 set ! the parameter data vector.
; 2829 [NODE_E]:
; 2830 begin
; 2831 local PTR;
; 2832
; 2833 PTR = .POINTER; ! Get local copy of pointer
; 2834 if GETW (PTR) eql 110 ! SERVICE CIRCUIT
; 2835 then begin ! Check if circuit already assigned
; 2836 if (PTR = NML$FIND_NDB (.PTR)) neq 0
; 2837 then
; 2838 if not ch$eql (9, .PTR, 9, .ENTITY)
; 2839 then begin
; 2840 .ERR_DETAIL = CIRCUIT_;
; L 2841 return $NICE$ERR_CWS;
; %PRINT: Component in wrong state
; 2842 end;
; 2843 end;
; 2844
; 2845 return INSERT_PARAMETER (.EDB_QE, .TYPE, .POINTER, $false);
; 2846 end;
; 2847
; L 2848 %if $X25 and not $MCB ! MODULE X25-ACCESS volatile data base
; U 2849 %then ! exists in the TOPS only
; U 2850
; U 2851 [MODULE_]:
; U 2852 return SET_QUALIFIED_ENTITY (.EDB_QE,
; U 2853 .TYPE,
; U 2854 .QUALIFIER,
; U 2855 .POINTER);
; 2856 %fi
; 2857
; 2858 [otherwise]:
; 2859 return INSERT_PARAMETER (.EDB_QE, .TYPE, .POINTER, $false);
; 2860 tes;
; 2861 end;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 90
X00.89 VDB_CHANGE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (22)
; 2862
; 2863 [%bliss36($NTCLR) %bliss16(N$FCLR)]: ! CLEAR parameter
; 2864 begin
; 2865 if (EDB_QE = GET_EXISTING_ENTITY_DB (.TYPE, .ENTITY)) eql 0
; 2866 then begin
; 2867 .ERR_DETAIL = .TYPE;
; L 2868 return $NICE$ERR_URC;
; %PRINT: Unrecognized component
; 2869 end
; 2870 else selectone .TYPE of
; 2871 set
; 2872 [MODULE_]:
; U 2873 %if $X25 and not $MCB %then
; U 2874 return REMOVE_QUALIFIED_PARAMETER (.EDB_QE,
; U 2875 .TYPE,
; U 2876 .QUALIFIER,
; U 2877 .POINTER,
; U 2878 .LENGTH,
; U 2879 $false);
; 2880 %else
; 2881 begin
; 2882 .ERR_DETAIL = .TYPE;
; L 2883 return $NICE$ERR_URC;
; %PRINT: Unrecognized component
; 2884 end;
; 2885 %fi
; 2886
; 2887 [otherwise]:
; 2888 REMOVE_PARAMETER (.EDB_QE,
; 2889 .TYPE,
; 2890 (if .LENGTH gtr 0
; 2891 then GETW_NA (.POINTER)
; 2892 else -1), ! Zero implies ALL
; 2893 $false);
; 2894 tes;
; 2895 end;
; 2896
; 2897 [otherwise]:
; L 2898 return $NICE$ERR_UFO;
; %PRINT: Unrecognized function or option
; 2899 tes;
; 2900
; 2901 return NICE$_SUC;
; 2902 end; ! End of VDB_CHANGE
.SBTTL VDB.CHANGE VDB_CHANGE
000000 004167 000000G VDB.CHANGE:
JSR R1,$SAVE4 ; 2761
000004 005746 TST -(SP)
000006 016600 000032 MOV 32(SP),R0 ; FUNCTION,* 2803
000012 020027 000001 CMP R0,#1
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 91
X00.89 VDB_CHANGE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (22)
000016 001112 BNE 3$
000020 016603 000030 MOV 30(SP),R3 ; TYPE,* 2807
000024 010346 MOV R3,-(SP)
000026 016604 000026 MOV 26(SP),R4 ; ENTITY,*
000032 010446 MOV R4,-(SP)
000034 004767 000000V JSR PC,GET.EXISTING.ENTITY.DB
000040 022626 CMP (SP)+,(SP)+
000042 010002 MOV R0,R2 ; *,EDB.QE
000044 001021 BNE 1$
000046 010346 MOV R3,-(SP) ; 2809
000050 010446 MOV R4,-(SP)
000052 004767 000000V JSR PC,ENTITY.IS.VALID
000056 022626 CMP (SP)+,(SP)+
000060 006000 ROR R0
000062 103110 BHIS 4$ ; 2811
000064 010346 MOV R3,-(SP) ; 2815
000066 010446 MOV R4,-(SP)
000070 004767 000000V JSR PC,SET.ENTITY.DB
000074 022626 CMP (SP)+,(SP)+
000076 010002 MOV R0,R2 ; *,EDB.QE
000100 001003 BNE 1$
000102 012700 177754 MOV #-24,R0 ; 2816
000106 000541 BR 10$
000110 005703 1$: TST R3 ; 2827
000112 001042 BNE 2$
000114 016601 000020 MOV 20(SP),R1 ; POINTER,PTR 2833
000120 112116 MOVB (R1)+,(SP) ; PTR,$$GETB.X 2834
000122 112166 000001 MOVB (R1)+,1(SP) ; PTR,$$GETB.X
000126 011600 MOV (SP),R0 ; $$GETB.X,*
000130 020027 000156 CMP R0,#156
000134 001031 BNE 2$
000136 010146 MOV R1,-(SP) ; PTR,* 2836
000140 004767 176344 JSR PC,NL.VFN
000144 005726 TST (SP)+
000146 010001 MOV R0,R1 ; *,PTR
000150 001423 BEQ 2$
000152 012746 000011 MOV #11,-(SP) ; 2838
000156 010146 MOV R1,-(SP) ; PTR,*
000160 012746 000011 MOV #11,-(SP)
000164 010446 MOV R4,-(SP)
000166 005046 CLR -(SP)
000170 004767 000000G JSR PC,BL$EQL
000174 062706 000012 ADD #12,SP
000200 006000 ROR R0
000202 103406 BLO 2$
000204 012776 000003 000016 MOV #3,@16(SP) ; *,ERR.DETAIL 2840
000212 012700 177765 MOV #-13,R0 ; 2839
000216 000475 BR 10$
000220 010246 2$: MOV R2,-(SP) ; EDB.QE,* 2859
000222 010346 MOV R3,-(SP)
000224 016646 000024 MOV 24(SP),-(SP) ; POINTER,*
000230 005046 CLR -(SP)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 92
X00.89 VDB_CHANGE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (22)
000232 004767 000000V JSR PC,INSERT.PARAMETER
000236 062706 000010 ADD #10,SP ; 2803
000242 000463 BR 10$ ; 2806
000244 020027 000002 3$: CMP R0,#2 ; 2803
000250 001053 BNE 8$
000252 016603 000030 MOV 30(SP),R3 ; TYPE,* 2865
000256 010346 MOV R3,-(SP)
000260 016646 000026 MOV 26(SP),-(SP) ; ENTITY,*
000264 004767 000000V JSR PC,GET.EXISTING.ENTITY.DB
000270 022626 CMP (SP)+,(SP)+
000272 010002 MOV R0,R2 ; *,EDB.QE
000274 001403 BEQ 4$ ; 2867
000276 020327 000004 CMP R3,#4 ; 2870
000302 001005 BNE 5$
000304 010376 000016 4$: MOV R3,@16(SP) ; *,ERR.DETAIL 2882
000310 012700 177770 MOV #-10,R0 ; 2881
000314 000436 BR 10$
000316 010246 5$: MOV R2,-(SP) ; EDB.QE,* 2888
000320 010346 MOV R3,-(SP)
000322 005766 000026 TST 26(SP) ; LENGTH 2890
000326 003414 BLE 6$
000330 117666 000024 000004 MOVB @24(SP),4(SP) ; POINTER,$$GETW.NA.X 2891
000336 016600 000024 MOV 24(SP),R0 ; POINTER,*
000342 116066 000001 000005 MOVB 1(R0),5(SP) ; *,$$GETW.NA.X
000350 016600 000004 MOV 4(SP),R0 ; $$GETW.NA.X,*
000354 010046 MOV R0,-(SP) ; 2890
000356 000402 BR 7$
000360 012746 177777 6$: MOV #-1,-(SP)
000364 005046 7$: CLR -(SP) ; 2888
000366 004767 000000V JSR PC,REMOVE.PARAMETER
000372 062706 000010 ADD #10,SP
000376 000403 BR 9$ ; 2803
000400 012700 177777 8$: MOV #-1,R0 ; 2898
000404 000402 BR 10$
000406 012700 000001 9$: MOV #1,R0 ; 2798
000412 005726 10$: TST (SP)+ ; 2761
000414 000207 RTS PC
; Routine Size: 135 words, Routine Base: $CODE$ + 5702
; Maximum stack depth per invocation: 12 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 93
X00.89 VDB_CHANGE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (23)
; U 2903 %if $X25 and not $MCB %then
; U 2904 %routine ('SET_QUALIFIED_ENTITY', EDB_QE, ENTITY, QUALIFIER, PARAMETER) =
; U 2905
; U 2906 !++
; U 2907 ! FUNCTIONAL DESCRIPTION:
; U 2908 !
; U 2909 ! Set the parameter entry in the qualified sub queues.
; U 2910 !
; U 2911 ! FORMAL PARAMETERS
; U 2912 !
; U 2913 ! EDB_QE Address of the qualified entity data base structure to
; U 2914 ! which the parameter is to be inserted.
; U 2915 ! ENTITY The entity type number to which the parameter applies.
; U 2916 ! QUALIFIER A character sequence pointer to the qualifier
; U 2917 ! parameter.
; U 2918 ! PARAMETER A character sequence pointer to the parameter to
; U 2919 ! be inserted.
; U 2920 !
; U 2921 ! IMPLICIT INPUTS
; U 2922 !
; U 2923 ! NONE.
; U 2924 !
; U 2925 ! ROUTINE VALUE:
; U 2926 !
; U 2927 ! NICE return code.
; U 2928 !
; U 2929 ! SIDE EFFECTS:
; U 2930 !
; U 2931 ! NONE.
; U 2932 !
; U 2933 !--
; U 2934
; U 2935 begin
; U 2936
; U 2937 map
; U 2938 EDB_QE: ref ENTITY_DB_BLOCK;
; U 2939
; U 2940 local
; U 2941 QH_QUALIFIER: ref Q_HEADER,
; U 2942 QE_QUALIFIER: ref ENTITY_DB_BLOCK;
; U 2943
; U 2944 QH_QUALIFIER = EDB_QE[EDB_QUALIFIER_QUEUE];
; U 2945
; U 2946 if .QUALIFIER eql 0
; U 2947 then begin ! Use default existing qualifier queue
; U 2948 if NMU$QUEUE_LENGTH (.QH_QUALIFIER) eql 1 ! Queue has only 1 entry ?
; U 2949 then QE_QUALIFIER = .QH_QUALIFIER[Q_FORWARD] ! Yes, default queue
; U 2950 else return $NICE$ERR_PAM; ! No, expecting qualifier name
; U 2951 end
; U 2952 else begin ! Use specific qualifier queue
; U 2953 local ID_STRING, COUNT: $SIGNED_BYTE_VALUE;
; U 2954
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 94
X00.89 VDB_CHANGE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (23)
; U 2955 ID_STRING = ch$plus (.QUALIFIER, 2); ! Get qualifier id string
; U 2956 COUNT = ch$rchar (.ID_STRING); ! Get count byte
; U 2957
; U 2958 if .COUNT[VALUE] lss 0 ! If count byte is negative ....
; U 2959 then begin ! Set KNOWN qualified queues
; U 2960 local RESULT, NEXT: ref Q_ENTRY;
; U 2961
; U 2962 NEXT = .QH_QUALIFIER[Q_FORWARD];
; U 2963 RESULT = NICE$_SUC;
; U 2964
; U 2965 while (.RESULT eql NICE$_SUC)
; U 2966 and ((QE_QUALIFIER = .NEXT) neq .QH_QUALIFIER)
; U 2967 do begin
; U 2968 NEXT = .NEXT[Q_FORWARD];
; U 2969 RESULT = INSERT_PARAMETER (.QE_QUALIFIER,
; U 2970 .ENTITY,
; U 2971 .PARAMETER,
; U 2972 $false);
; U 2973 end;
; U 2974
; U 2975 return .RESULT;
; U 2976 end
; U 2977 else begin ! Set specific qualified queue
; U 2978 QE_QUALIFIER = NMU$QUEUE_SCAN (.QH_QUALIFIER,
; U 2979 .ID_STRING,
; U 2980 NON_NODE_ID_MATCH);
; U 2981
; U 2982 if .QE_QUALIFIER eql 0 ! Does entry exist ?
; U 2983 then begin ! No, create new entry for qualifier
; U 2984 QE_QUALIFIER = NMU$MEMORY_GET (ENTITY_DB_BLOCK_ALLOCATION);
; U 2985
; U 2986 if .QE_QUALIFIER eql 0 ! Fail to allocate memory
; U 2987 then return $NICE$ERR_NRE;
; U 2988
; U 2989 ch$move ((.COUNT[VALUE] + 1),
; U 2990 .ID_STRING,
; U 2991 ch$ptr (QE_QUALIFIER[EDB_QUALIFIER],,8));
; U 2992
; U 2993 NMU$QUEUE_INSERT (.QH_QUALIFIER, .QE_QUALIFIER);
; U 2994 end;
; U 2995 end;
; U 2996 end;
; U 2997
; U 2998 return INSERT_PARAMETER (.QE_QUALIFIER, .ENTITY, .PARAMETER, $false);
; U 2999 end; ! End of SET_QUALIFIED_ENTITY
; 3000 %fi
; 3001 %sbttl ''
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 95
X00.89 SET_NODE_ENTITY 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (24)
; 3002 %routine ('SET_NODE_ENTITY', NDB_QE: ref NODE_DB_BLOCK, ENTITY_PTR) : novalue =
; 3003
; 3004 !++
; 3005 ! FUNCTIONAL DESCRIPTION:
; 3006 !
; 3007 ! Sets up the entity id portion of an EDB for NODE entity.
; 3008 !
; 3009 ! FORMAL PARAMETERS
; 3010 !
; 3011 ! NDB_QE - Address of the NDB Queue Entry.
; 3012 ! ENTITY_PTR - Pointer to the NODE id.
; 3013 !
; 3014 ! IMPLICIT INPUTS
; 3015 !
; 3016 ! NONE.
; 3017 !
; 3018 ! ROUTINE VALUE:
; 3019 !
; 3020 ! NONE.
; 3021 !
; 3022 ! SIDE EFFECTS:
; 3023 !
; 3024 ! NONE.
; 3025 !
; 3026 !--
; 3027
; 3028 begin
; 3029
; 3030 local
; 3031 NODE_PTR,
; 3032 NODE_ADDR;
; 3033
; 3034 NODE_ADDR = GETW (ENTITY_PTR);
; 3035 NODE_PTR = ch$ptr (NDB_QE[NDB_ENTITY_ID],,8);
; 3036 PUTW (NODE_ADDR, NODE_PTR);
; 3037 ch$move ((ch$rchar (.ENTITY_PTR) + 1), .ENTITY_PTR, .NODE_PTR);
; 3038
; 3039 end; ! End of SET_NODE_ENTITY
.SBTTL SET.NODE.ENTITY SET_NODE_ENTITY
000000 004167 000000G SET.NODE.ENTITY:
JSR R1,$SAVE3 ; 3002
000004 005266 000012 INC 12(SP) ; ENTITY.PTR 3034
000010 016600 000012 MOV 12(SP),R0 ; ENTITY.PTR,*
000014 116046 177777 MOVB -1(R0),-(SP) ; *,$$GETB.X
000020 005266 000014 INC 14(SP) ; ENTITY.PTR
000024 016601 000014 MOV 14(SP),R1 ; ENTITY.PTR,*
000030 116166 177777 000001 MOVB -1(R1),1(SP) ; *,$$GETB.X
000036 011600 MOV (SP),R0 ; $$GETB.X,NODE.ADDR
000040 016602 000016 MOV 16(SP),R2 ; NDB.QE,NODE.PTR 3035
000044 062702 000006 ADD #6,R2 ; *,NODE.PTR
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 96
X00.89 SET_NODE_ENTITY 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (24)
000050 110022 MOVB R0,(R2)+ ; NODE.ADDR,NODE.PTR 3036
000052 010003 MOV R0,R3 ; NODE.ADDR,*
000054 000303 SWAB R3
000056 110322 MOVB R3,(R2)+ ; *,NODE.PTR
000060 005046 CLR -(SP) ; 3037
000062 111116 MOVB (R1),(SP)
000064 005216 INC (SP)
000066 010146 MOV R1,-(SP)
000070 010246 MOV R2,-(SP) ; NODE.PTR,*
000072 004767 000000G JSR PC,BL$MOV
000076 062706 000010 ADD #10,SP ; 3002
000102 000207 RTS PC
; Routine Size: 34 words, Routine Base: $CODE$ + 6320
; Maximum stack depth per invocation: 9 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 97
X00.89 GET_EXISTING_ENTITY_DB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (25)
; 3040 %routine ('GET_EXISTING_ENTITY_DB', ENTITY_TYPE, ENTITY_PTR) =
; 3041
; 3042 !++
; 3043 ! FUNCTIONAL DESCRIPTION:
; 3044 !
; 3045 ! Searches the volatile data base for the specified entity,
; 3046 ! and if found, returns the address of the entity data block.
; 3047 !
; 3048 ! FORMAL PARAMETERS
; 3049 !
; 3050 ! ENTITY_TYPE - Entity type number.
; 3051 ! ENTITY_PTR - Character pointer to entity id.
; 3052 !
; 3053 ! IMPLICIT INPUTS
; 3054 !
; 3055 ! NONE.
; 3056 !
; 3057 ! ROUTINE VALUE:
; 3058 !
; 3059 ! The address of the entity data block if the entity exists
; 3060 ! in the volatile data base.
; 3061 ! Otherwise, 0.
; 3062 !
; 3063 ! SIDE EFFECTS:
; 3064 !
; 3065 ! NONE.
; 3066 !
; 3067 !--
; 3068
; 3069 begin
; 3070
; 3071 local
; 3072 QUEUE,
; 3073 MATCH_ROUTINE;
; 3074
; 3075 !
; 3076 ! Determine the queue to which this entity belongs and the routine
; 3077 ! to be used for matching the entity id.
; 3078 !
; 3079
; 3080 if GET_VDB_ENTITY_QUEUE (.ENTITY_TYPE, QUEUE, MATCH_ROUTINE)
; 3081 then NMU$QUEUE_SCAN (.QUEUE, .ENTITY_PTR, .MATCH_ROUTINE)
; 3082 else 0
; 3083
; 3084 end; ! End of GET_EXISTING_ENTITY_DB
.SBTTL GET.EXISTING.ENTITY.DB GET_EXISTING_ENTITY_DB
000000 024646 GET.EXISTING.ENTITY.DB:
CMP -(SP),-(SP) ; 3040
000002 016646 000010 MOV 10(SP),-(SP) ; ENTITY.TYPE,* 3080
000006 012746 000006 MOV #6,-(SP)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 98
X00.89 GET_EXISTING_ENTITY_DB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (25)
000012 060616 ADD SP,(SP) ; QUEUE,*
000014 012746 000006 MOV #6,-(SP)
000020 060616 ADD SP,(SP) ; MATCH.ROUTINE,*
000022 004767 000000V JSR PC,GET.VDB.ENTITY.QUEUE
000026 062706 000006 ADD #6,SP
000032 006000 ROR R0
000034 103013 BCC 1$
000036 016646 000002 MOV 2(SP),-(SP) ; QUEUE,* 3081
000042 016646 000010 MOV 10(SP),-(SP) ; ENTITY.PTR,*
000046 016646 000004 MOV 4(SP),-(SP) ; MATCH.ROUTINE,*
000052 004767 000000G JSR PC,UQ.SCAN
000056 062706 000006 ADD #6,SP
000062 000401 BR 2$ ; 3080
000064 005000 1$: CLR R0
000066 022626 2$: CMP (SP)+,(SP)+ ; 3040
000070 000207 RTS PC
; Routine Size: 29 words, Routine Base: $CODE$ + 6424
; Maximum stack depth per invocation: 6 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 99
X00.89 SET_ENTITY_DB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (26)
; 3085 %routine ('SET_ENTITY_DB', ENTITY_TYPE, ENTITY_PTR) =
; 3086
; 3087 !++
; 3088 ! FUNCTIONAL DESCRIPTION:
; 3089 !
; 3090 ! Allocate and initialize an entry in the data base.
; 3091 ! Returns the address of the entry in all cases.
; 3092 !
; 3093 ! FORMAL PARAMETERS
; 3094 !
; 3095 ! ENTITY_TYPE - The entity type number.
; 3096 ! ENTITY_PTR - A character sequence pointer to the entity id
; 3097 ! to be created.
; 3098 !
; 3099 ! IMPLICIT INPUTS
; 3100 !
; 3101 ! NONE.
; 3102 !
; 3103 ! ROUTINE VALUE:
; 3104 !
; 3105 ! Address of the entity data base block.
; 3106 ! 0 if no insufficient resources for data base creation.
; 3107 !
; 3108 ! SIDE EFFECTS:
; 3109 !
; 3110 ! NONE.
; 3111 !
; 3112 !--
; 3113
; 3114 begin
; 3115
; 3116 local
; 3117 QHEADER,
; 3118 EDB_QE: ref ENTITY_DB_BLOCK;
; 3119
; 3120 selectone .ENTITY_TYPE of
; 3121 set
; 3122 [NODE_E]:
; 3123 begin
; 3124 if (EDB_QE = NMU$MEMORY_GET (ENTITY_DB_BLOCK_ALLOCATION)) eql 0
; 3125 then return 0;
; 3126
; 3127 SET_NODE_ENTITY (.EDB_QE, .ENTITY_PTR);
; 3128 end;
; 3129
; 3130 [LINE_,
; 3131 CIRCUIT_,
; 3132 LOGGING_,
; 3133 MODULE_]:
; 3134 begin
; 3135 if (EDB_QE = NMU$MEMORY_GET (ENTITY_DB_BLOCK_ALLOCATION)) eql 0
; 3136 then return 0;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 100
X00.89 SET_ENTITY_DB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (26)
; 3137
; 3138 ch$move ((ch$rchar (.ENTITY_PTR) + 1), ! Copy entity id
; 3139 .ENTITY_PTR,
; 3140 ch$ptr (EDB_QE[EDB_ENTITY_ID],,8));
; 3141 end;
; 3142
; 3143 [otherwise]: ! NOT supported entity
; 3144 begin
; 3145 TASK_ERROR ('Invalid entity for data base creation');
; 3146 return 0;
; 3147 end;
; 3148 tes;
; 3149
; 3150 if GET_VDB_ENTITY_QUEUE (.ENTITY_TYPE, QHEADER, 0) ! Get queue header
; 3151 then NMU$QUEUE_INSERT (.QHEADER, .EDB_QE) ! Insert the entity in data base.
; 3152 else begin ! No queue header for this entity
; 3153 TASK_ERROR ('Missing queue for data base creation');
; 3154 return 0;
; 3155 end;
; 3156
; 3157 return .EDB_QE; ! Return address of entry
; 3158 end; ! End of SET_ENTITY_DB
.GLOBL US.COMPLETE
.SBTTL SET.ENTITY.DB SET_ENTITY_DB
000000 004167 000000G SET.ENTITY.DB:
JSR R1,$SAVE2 ; 3085
000004 005746 TST -(SP)
000006 016602 000014 MOV 14(SP),R2 ; ENTITY.TYPE,* 3120
000012 001016 BNE 1$
000014 012746 000036 MOV #36,-(SP) ; 3124
000020 004767 000000G JSR PC,UM.GET
000024 005726 TST (SP)+
000026 010001 MOV R0,R1 ; *,EDB.QE
000030 001465 BEQ 4$ ; 3125
000032 010146 MOV R1,-(SP) ; EDB.QE,* 3127
000034 016646 000014 MOV 14(SP),-(SP) ; ENTITY.PTR,*
000040 004767 177536 JSR PC,SET.NODE.ENTITY
000044 022626 CMP (SP)+,(SP)+ ; 3123
000046 000434 BR 3$ ; 3120
000050 003430 1$: BLE 2$
000052 020227 000004 CMP R2,#4
000056 003025 BGT 2$
000060 012746 000036 MOV #36,-(SP) ; 3135
000064 004767 000000G JSR PC,UM.GET
000070 005726 TST (SP)+
000072 010001 MOV R0,R1 ; *,EDB.QE
000074 001443 BEQ 4$ ; 3136
000076 005046 CLR -(SP) ; 3138
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 101
X00.89 SET_ENTITY_DB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (26)
000100 117616 000014 MOVB @14(SP),(SP) ; ENTITY.PTR,*
000104 005216 INC (SP)
000106 016646 000014 MOV 14(SP),-(SP) ; ENTITY.PTR,* 3140
000112 010146 MOV R1,-(SP) ; EDB.QE,*
000114 062716 000006 ADD #6,(SP)
000120 004767 000000G JSR PC,BL$MOV
000124 062706 000006 ADD #6,SP ; 3134
000130 000403 BR 3$ ; 3120
000132 004767 000000G 2$: JSR PC,US.COMPLETE ; 3145
000136 000422 BR 4$ ; 3144
000140 010246 3$: MOV R2,-(SP) ; 3150
000142 012746 000004 MOV #4,-(SP)
000146 060616 ADD SP,(SP) ; QHEADER,*
000150 005046 CLR -(SP)
000152 004767 000000V JSR PC,GET.VDB.ENTITY.QUEUE
000156 062706 000006 ADD #6,SP
000162 006000 ROR R0
000164 103362 BCC 2$
000166 011646 MOV (SP),-(SP) ; QHEADER,* 3151
000170 010146 MOV R1,-(SP) ; EDB.QE,*
000172 004767 000000G JSR PC,UQ.INSERT
000176 022626 CMP (SP)+,(SP)+
000200 010100 MOV R1,R0 ; EDB.QE,* 3114
000202 000401 BR 5$
000204 005000 4$: CLR R0 ; 3085
000206 005726 5$: TST (SP)+
000210 000207 RTS PC
; Routine Size: 69 words, Routine Base: $CODE$ + 6516
; Maximum stack depth per invocation: 8 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 102
X00.89 ENTITY_IS_VALID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (27)
; 3159 %routine ('ENTITY_IS_VALID', ENTITY_TYPE, ENTITY_PTR) =
; 3160
; 3161 !++
; 3162 ! FUNCTIONAL DESCRIPTION:
; 3163 !
; 3164 ! Determine if we should allow this entity to be added
; 3165 ! to the data bases. In MCB, we ask NMX about LINEs and CIRCUITs.
; 3166 ! In TOPS20, determine if a DTE is legal.
; 3167 !
; 3168 ! FORMAL PARAMETERS
; 3169 !
; 3170 ! ENTITY_TYPE - The entity type number.
; 3171 ! ENTITY_PTR - A character sequence pointer to the entity id
; 3172 ! to be created.
; 3173 !
; 3174 ! IMPLICIT INPUTS
; 3175 !
; 3176 ! NONE.
; 3177 !
; 3178 ! ROUTINE VALUE:
; 3179 !
; 3180 ! $true - if entity is acceptable
; 3181 ! $false - Don't add this to the data bases!
; 3182 !
; 3183 ! SIDE EFFECTS:
; 3184 !
; 3185 ! NONE.
; 3186 !
; 3187 !--
; 3188
; 3189 begin
; 3190
; 3191 local
; 3192 EDB_QE: ref ENTITY_DB_BLOCK;
; 3193
; 3194 selectone .ENTITY_TYPE of
; 3195 set
; 3196 [NODE_E]:
; 3197 begin ! Verify existence of entity ....
; 3198 EDB_QE = 2;
; P 3199 return ($NML$SHOW (.ENTITY_TYPE, ! Returns OCM error
; P 3200 .ENTITY_PTR, ! if valid entity
; P 3201 0, ! since buffer is
; P 3202 SUMMARY_, ! too small.
; P 3203 EDB_QE, ! Otherwise,
; 3204 ch$ptr (EDB_QE,,8)) ! entity is invalid.
; 3205 eql
; L 3206 %if $MCB
; 3207 %then
; L 3208 $NICE$ERR_OCM); ! in the MCB
; %PRINT: Oversized Management command message
; U 3209 %else
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 103
X00.89 ENTITY_IS_VALID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (27)
; U 3210 $NICE$ERR_REE); ! in the TOPS
; 3211 %fi
; 3212 end;
; 3213
; 3214 [MODULE_]:
; 3215 return (MODULE_IS_VALID (ch$rchar (.ENTITY_PTR),
; 3216 ch$plus (.ENTITY_PTR, 1)));
; 3217
; 3218 [LOGGING_]:
; 3219 return (GET_EXISTING_ENTITY_DB (.ENTITY_TYPE, .ENTITY_PTR) neq 0);
; 3220
; 3221 [LINE_, CIRCUIT_]:
; 3222 begin
; L 3223 %if $MCB ! Verify existence of entity ....
; 3224 %then ! in the MCB
; 3225 EDB_QE = 2;
; P 3226 return ($NML$SHOW (.ENTITY_TYPE,
; P 3227 .ENTITY_PTR,
; P 3228 0,
; P 3229 SUMMARY_,
; P 3230 EDB_QE,
; 3231 ch$ptr (EDB_QE,,8))
; L 3232 neq $NICE$ERR_URC);
; %PRINT: Unrecognized component
; 3233
; U 3234 %else ! in the TOPS
; U 3235 external routine NMU$DLX_KNOWN_DEVICE;
; U 3236
; U 3237 return (NMU$DLX_KNOWN_DEVICE (.ENTITY_PTR));
; 3238 %fi
; 3239
; 3240 end;
; 3241
; 3242 [otherwise]:
; 3243 TASK_ERROR ('Invalid entity for data base creation');
; 3244 tes;
; 3245
; 3246 return $FALSE;
; 3247 end; ! End of ENTITY_IS_VALID
.SBTTL ENTITY.IS.VALID ENTITY_IS_VALID
000000 004167 000000G ENTITY.IS.VALID:
JSR R1,$SAVE2 ; 3159
000004 162706 000006 SUB #6,SP
000010 016601 000020 MOV 20(SP),R1 ; ENTITY.TYPE,* 3194
000014 001060 BNE 4$
000016 012716 000002 MOV #2,(SP) ; *,EDB.QE 3198
000022 005046 CLR -(SP) ; 3204
000024 005046 CLR -(SP)
000026 016646 000022 MOV 22(SP),-(SP) ; ENTITY.PTR,*
000032 010100 MOV R1,R0
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 104
X00.89 ENTITY_IS_VALID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (27)
000034 005200 INC R0
000036 072027 000010 ASH #10,R0
000042 010046 MOV R0,-(SP)
000044 052716 010010 BIS #10010,(SP)
000050 012746 000002 MOV #2,-(SP)
000054 005716 TST (SP)
000056 001002 BNE 1$
000060 005046 CLR -(SP)
000062 000404 BR 2$
000064 012700 000012 1$: MOV #12,R0
000070 060600 ADD SP,R0 ; EDB.QE,*
000072 010046 MOV R0,-(SP)
000074 005046 2$: CLR -(SP)
000076 012746 000022 MOV #22,-(SP)
000102 060616 ADD SP,(SP) ; IOSB,*
000104 012746 000000G MOV #EFN$NM,-(SP)
000110 012746 000000G MOV #LUN$NM,-(SP)
000114 012746 016400 MOV #16400,-(SP)
000120 012746 006003 MOV #6003,-(SP)
000124 104377 EMT 377
000126 016616 000004 MOV 4(SP),(SP) ; IOSB+2,EDB.QE
000132 116601 000002 MOVB 2(SP),R1 ; IOSB,*
000136 002402 BLT 3$
000140 012701 000001 MOV #1,R1
000144 005000 3$: CLR R0 ; 3199
000146 020127 177774 CMP R1,#-4
000152 001127 BNE 14$
000154 000521 BR 12$
000156 020127 000004 4$: CMP R1,#4 ; 3194
000162 001012 BNE 5$
000164 005046 CLR -(SP) ; 3215
000166 117616 000020 MOVB @20(SP),(SP) ; ENTITY.PTR,*
000172 016646 000020 MOV 20(SP),-(SP) ; ENTITY.PTR,* 3216
000176 005216 INC (SP)
000200 004767 000000V JSR PC,MODULE.IS.VALID ; 3215
000204 022626 CMP (SP)+,(SP)+
000206 000511 BR 14$
000210 020127 000002 5$: CMP R1,#2 ; 3194
000214 001014 BNE 7$
000216 010146 MOV R1,-(SP) ; 3219
000220 016646 000020 MOV 20(SP),-(SP) ; ENTITY.PTR,*
000224 004767 177244 JSR PC,GET.EXISTING.ENTITY.DB
000230 005002 CLR R2
000232 005700 TST R0
000234 001401 BEQ 6$
000236 005202 INC R2
000240 022626 6$: CMP (SP)+,(SP)+
000242 010200 MOV R2,R0
000244 000472 BR 14$
000246 020127 000001 7$: CMP R1,#1 ; 3194
000252 001403 BEQ 8$
000254 020127 000003 CMP R1,#3
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 105
X00.89 ENTITY_IS_VALID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (27)
000260 001061 BNE 13$
000262 012716 000002 8$: MOV #2,(SP) ; *,EDB.QE 3225
000266 005046 CLR -(SP) ; 3231
000270 005046 CLR -(SP)
000272 016646 000022 MOV 22(SP),-(SP) ; ENTITY.PTR,*
000276 010100 MOV R1,R0
000300 005200 INC R0
000302 072027 000010 ASH #10,R0
000306 010046 MOV R0,-(SP)
000310 052716 010010 BIS #10010,(SP)
000314 012746 000002 MOV #2,-(SP)
000320 005716 TST (SP)
000322 001002 BNE 9$
000324 005046 CLR -(SP)
000326 000404 BR 10$
000330 012700 000012 9$: MOV #12,R0
000334 060600 ADD SP,R0 ; EDB.QE,*
000336 010046 MOV R0,-(SP)
000340 005046 10$: CLR -(SP)
000342 012746 000022 MOV #22,-(SP)
000346 060616 ADD SP,(SP) ; IOSB,*
000350 012746 000000G MOV #EFN$NM,-(SP)
000354 012746 000000G MOV #LUN$NM,-(SP)
000360 012746 016400 MOV #16400,-(SP)
000364 012746 006003 MOV #6003,-(SP)
000370 104377 EMT 377
000372 016616 000004 MOV 4(SP),(SP) ; IOSB+2,EDB.QE
000376 116601 000002 MOVB 2(SP),R1 ; IOSB,*
000402 002402 BLT 11$
000404 012701 000001 MOV #1,R1
000410 005000 11$: CLR R0 ; 3226
000412 020127 177770 CMP R1,#-10
000416 001405 BEQ 14$
000420 005200 12$: INC R0
000422 000403 BR 14$ ; 3222
000424 004767 000000G 13$: JSR PC,US.COMPLETE ; 3243
000430 005000 CLR R0 ; 3189
000432 062706 000006 14$: ADD #6,SP ; 3159
000436 000207 RTS PC
; Routine Size: 144 words, Routine Base: $CODE$ + 6730
; Maximum stack depth per invocation: 20 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 106
X00.89 MODULE_IS_VALID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (28)
; 3248 %routine ('MODULE_IS_VALID', LENGTH, POINTER) =
; 3249
; 3250 !++
; 3251 ! FUNCTIONAL DESCRIPTION:
; 3252 !
; 3253 ! Determine if we should allow this module data base to be handled
; 3254 ! in this layer.
; 3255 !
; 3256 ! FORMAL PARAMETERS
; 3257 !
; 3258 ! LENGTH The module name length
; 3259 ! POINTER A character sequence pointer to the module name
; 3260 !
; 3261 ! IMPLICIT INPUTS
; 3262 !
; 3263 ! NONE.
; 3264 !
; 3265 ! ROUTINE VALUE:
; 3266 !
; 3267 ! $TRUE If module is acceptable
; 3268 ! $FALSE Otherwise
; 3269 !
; 3270 ! SIDE EFFECTS:
; 3271 !
; 3272 ! NONE.
; 3273 !
; 3274 !--
; 3275
; 3276 begin
; 3277
; L 3278 %if $X25
; U 3279 %then %if $MCB
; U 3280 %then ! These modules are valid in the MCB
; U 3281 return (ch$eql (.LENGTH,
; U 3282 .POINTER,
; U 3283 %charcount ('X25-PROTOCOL'),
; U 3284 CH$ASCIZ ('X25-PROTOCOL'),
; U 3285 0) or
; U 3286 ch$eql (.LENGTH,
; U 3287 .POINTER,
; U 3288 %charcount ('X25-SERVER'),
; U 3289 CH$ASCIZ ('X25-SERVER'),
; U 3290 0));
; U 3291
; U 3292 %else ! These modules are valid in the TOPS
; U 3293 return (ch$eql (.LENGTH,
; U 3294 .POINTER,
; U 3295 %charcount ('X25-ACCESS'),
; U 3296 CH$ASCIZ ('X25-ACCESS'),
; U 3297 0));
; U 3298 %fi
; U 3299
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 107
X00.89 MODULE_IS_VALID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (28)
; 3300 %else
; 3301 return $FALSE; ! No module is available
; 3302 %fi
; 3303
; 3304 end; ! End of MODULE_IS_VALID
.SBTTL MODULE.IS.VALID MODULE_IS_VALID
000000 005000 MODULE.IS.VALID:
CLR R0 ; 3276
000002 000207 RTS PC ; 3248
; Routine Size: 2 words, Routine Base: $CODE$ + 7370
; Maximum stack depth per invocation: 0 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 108
X00.89 GET_VDB_ENTITY_QUEUE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (29)
; 3305 %routine ('GET_VDB_ENTITY_QUEUE', ENTITY_TYPE, QUEUE, MATCH_ROUTINE) =
; 3306
; 3307 !++
; 3308 ! FUNCTIONAL DESCRIPTION:
; 3309 !
; 3310 ! This routine determines the queue in the volatile data base
; 3311 ! as well as the matching routine associated with the specified
; 3312 ! entity type.
; 3313 !
; 3314 ! FORMAL PARAMETERS
; 3315 !
; 3316 ! ENTITY_TYPE Entity type number.
; 3317 ! QUEUE The address in which to return the address of the
; 3318 ! queue header for this type of entity.
; 3319 ! MATCH_ROUTINE The address in which to return the address
; 3320 ! of the associated string matching routine.
; 3321 !
; 3322 ! IMPLICIT INPUTS
; 3323 !
; 3324 ! NONE.
; 3325 !
; 3326 ! ROUTINE VALUE:
; 3327 !
; 3328 ! $TRUE If the volatile data base contains this entity type.
; 3329 ! $FALSE Otherwise.
; 3330 !
; 3331 ! SIDE EFFECTS:
; 3332 !
; 3333 ! NONE.
; 3334 !
; 3335 !--
; 3336
; 3337 begin
; 3338
; 3339 local
; 3340 QUEUE_HEADER,
; 3341 QUEUE_MATCH_ROUTINE;
; 3342
; 3343 case .ENTITY_TYPE from NODE_E to MODULE_ of
; 3344 set
; 3345 [NODE_E]:
; 3346 begin
; 3347 QUEUE_HEADER = QH_NODE_PARAMETERS;
; 3348 QUEUE_MATCH_ROUTINE = NODE_ID_MATCH;
; 3349 end;
; 3350
; 3351 [LINE_]:
; 3352 begin
; 3353 QUEUE_HEADER = QH_LINE_PARAMETERS;
; 3354 QUEUE_MATCH_ROUTINE = NON_NODE_ID_MATCH;
; 3355 end;
; 3356
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 109
X00.89 GET_VDB_ENTITY_QUEUE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (29)
; 3357 [LOGGING_]:
; 3358 begin
; 3359 QUEUE_HEADER = QH_LOGGING_PARAMETERS;
; 3360 QUEUE_MATCH_ROUTINE = LOGGING_ID_MATCH;
; 3361 end;
; 3362
; 3363 [CIRCUIT_]:
; 3364 begin
; 3365 QUEUE_HEADER = QH_CIRCUIT_PARAMETERS;
; 3366 QUEUE_MATCH_ROUTINE = NON_NODE_ID_MATCH;
; 3367 end;
; 3368
; 3369 [MODULE_]:
; 3370 begin
; L 3371 %if $X25
; U 3372 %then
; U 3373 QUEUE_HEADER = QH_MODULE_PARAMETERS;
; U 3374 QUEUE_MATCH_ROUTINE = NON_NODE_ID_MATCH;
; U 3375
; 3376 %else
; 3377 return $FALSE;
; 3378 %fi
; 3379
; 3380 end;
; 3381
; 3382 [inrange,
; 3383 outrange]:
; 3384 return $FALSE;
; 3385 tes;
; 3386
; 3387 !
; 3388 ! If no address is specified do not return value
; 3389 !
; 3390
; 3391 if .QUEUE neq 0
; 3392 then .QUEUE = .QUEUE_HEADER;
; 3393
; 3394 if .MATCH_ROUTINE neq 0
; 3395 then .MATCH_ROUTINE = .QUEUE_MATCH_ROUTINE;
; 3396
; 3397 return $TRUE;
; 3398 end; ! End of GET_VDB_ENTITY_QUEUE
.SBTTL GET.VDB.ENTITY.QUEUE GET_VDB_ENTITY_QUEUE
000000 004167 000000G GET.VDB.ENTITY.QUEUE:
JSR R1,$SAVE2 ; 3305
000004 016600 000014 MOV 14(SP),R0 ; ENTITY.TYPE,* 3343
000010 020027 000004 CMP R0,#4
000014 101040 BHI 10$
000016 006300 ASL R0
000020 066007 000042' ADD P.AAF(R0),PC ; Case dispatch
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 110
X00.89 GET_VDB_ENTITY_QUEUE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (29)
000024 000434 1$: BR 10$ ; 3384
000026 012702 001004' 2$: MOV #QH.NODE.PARAMETERS,R2 ; *,QUEUE.HEADER 3347
000032 012701 000000V MOV #NODE.ID.MATCH,R1 ; *,QUEUE.MATCH.ROU 3348
000036 000414 BR 7$ ; 3343
000040 012702 001012' 3$: MOV #QH.LINE.PARAMETERS,R2 ; *,QUEUE.HEADER 3353
000044 000407 BR 6$ ; 3354
000046 012702 001026' 4$: MOV #QH.LOGGING.PARAMETERS,R2 ; *,QUEUE.HEADER 3359
000052 012701 000000V MOV #LOGGING.ID.MATCH,R1 ; *,QUEUE.MATCH.ROU 3360
000056 000404 BR 7$ ; 3343
000060 012702 001020' 5$: MOV #QH.CIRCUIT.PARAMETERS,R2 ; *,QUEUE.HEADER 3365
000064 012701 000000V 6$: MOV #NON.NODE.ID.MATCH,R1 ; *,QUEUE.MATCH.ROU 3366
000070 016600 000012 7$: MOV 12(SP),R0 ; QUEUE,* 3391
000074 001401 BEQ 8$
000076 010210 MOV R2,(R0) ; QUEUE.HEADER,* 3392
000100 016600 000010 8$: MOV 10(SP),R0 ; MATCH.ROUTINE,* 3394
000104 001401 BEQ 9$
000106 010110 MOV R1,(R0) ; QUEUE.MATCH.ROU,* 3395
000110 012700 000001 9$: MOV #1,R0 ; 3337
000114 000207 RTS PC
000116 005000 10$: CLR R0 ; 3305
000120 000207 RTS PC
; Routine Size: 41 words, Routine Base: $CODE$ + 7374
; Maximum stack depth per invocation: 4 words
000042 .PSECT $PLIT$, RO , D
P.AAF: ; CASE Table for GET.VDB.ENTITY.+0020 3343
000042 000002 .WORD 2 ; [2$]
000044 000014 .WORD 14 ; [3$]
000046 000022 .WORD 22 ; [4$]
000050 000034 .WORD 34 ; [5$]
000052 000072 .WORD 72 ; [10$]
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 111
X00.89 INSERT_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (30)
; 3399 %routine ('INSERT_PARAMETER', EDB_QE, ENTITY_TYPE, PRM_PTR, PRIVLEDGED) =
; 3400
; 3401 !++
; 3402 ! FUNCTIONAL DESCRIPTION:
; 3403 !
; 3404 ! Inserts a parameter entry into the parameter vector of the
; 3405 ! data base for an entity.
; 3406 !
; 3407 ! FORMAL PARAMETERS
; 3408 !
; 3409 ! EDB_QE - The address of the entity data base structure to
; 3410 ! which the parameter is to be inserted.
; 3411 ! ENTITY_TYPE - The entity type number to which the parameter
; 3412 ! applies.
; 3413 ! PRM_PTR - A character sequence pointer to the parameter to
; 3414 ! be inserted.
; 3415 !
; 3416 ! IMPLICIT INPUTS
; 3417 !
; 3418 ! NONE.
; 3419 !
; 3420 ! ROUTINE VALUE:
; 3421 !
; 3422 ! NICE return code.
; 3423 !
; 3424 ! SIDE EFFECTS:
; 3425 !
; 3426 ! NONE.
; 3427 !
; 3428 !--
; 3429
; 3430 begin
; 3431
; 3432 map
; 3433 EDB_QE: ref ENTITY_DB_BLOCK;
; 3434
; 3435 local
; 3436 PVB: ref $NML$PVB_ENTRY_VECTOR (0),
; 3437 PVB_QE: ref $NML$PVB_ENTRY_BLOCK,
; 3438 PARM_NO;
; 3439
; 3440 PARM_NO = GETW (PRM_PTR);
; 3441
; C 3442 %( Does the parameter apply to this entity?
; C 3443 Does the entity exist and is it in the ON state?
; C 3444 If a node entity and the parameter is one which applies to
; 3445 an adjacent node, is the node address valid? )%
; 3446
; 3447 if not APPLICABLE (.ENTITY_TYPE, .EDB_QE, .PARM_NO)
; L 3448 then return $NICE$ERR_PNA;
; %PRINT: Parameter not applicable
; 3449
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 112
X00.89 INSERT_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (30)
; 3450 if NML$READ_ONLY (.ENTITY_TYPE, .PARM_NO) and not .PRIVLEDGED
; L 3451 then return $NICE$ERR_PNA;
; %PRINT: Parameter not applicable
; 3452
; 3453 !
; 3454 ! If this is a counter timer, adjust the counter time data base
; 3455 ! to reflect the time change.
; 3456 !
; 3457
; 3458 if not NML$COUNTER_TIMER_SET (.PARM_NO,
; 3459 .ENTITY_TYPE,
; 3460 EDB_QE[EDB_ENTITY_ID],
; 3461 .PRM_PTR)
; L 3462 then return $NICE$ERR_IPV; ! Illegal parameter value
; %PRINT: Invalid parameter value
; 3463
; 3464 !
; 3465 ! Search through the vector for the location to insert the
; 3466 ! parameter. If the parameter is already in the vector,
; 3467 ! simply change its value. Otherwise, ripple all parameters
; 3468 ! numbered higher than the new one up one position in the vector,
; 3469 ! and then insert the new parameter.
; 3470 !
; 3471
; 3472 PVB = .EDB_QE[EDB_PARAMETER_VECTOR];
; 3473
; 3474 incr N from 0 to .EDB_QE[EDB_PARAMETER_COUNT] - 1
; 3475 do begin
; 3476 PVB_QE = PVB[.N,0,0,0,0];
; 3477
; 3478 if .PARM_NO leq .PVB_QE[PE_NUMBER]
; 3479 then begin
; 3480 if .PARM_NO eql .PVB_QE[PE_NUMBER]
; 3481 then begin ! Found in table
; 3482 if SET_PARAMETER_DATA (.ENTITY_TYPE, .PRM_PTR, .PVB_QE)
; 3483 then return NICE$_SUC
; L 3484 else return $NICE$ERR_REE;
; %PRINT: Resource error
; 3485 end
; 3486 else begin ! Entry not in table
; 3487 if not EXPAND_PVB (.EDB_QE, .N)
; L 3488 then return $NICE$ERR_REE;
; %PRINT: Resource error
; 3489
; 3490 PVB = .EDB_QE[EDB_PARAMETER_VECTOR];
; 3491 PVB_QE = PVB[.N,0,0,0,0];
; 3492 PVB_QE[PE_NUMBER] = .PARM_NO;
; 3493 if not SET_PARAMETER_DATA (.ENTITY_TYPE, .PRM_PTR, .PVB_QE)
; L 3494 then return $NICE$ERR_REE;
; %PRINT: Resource error
; 3495
; 3496 EDB_QE[EDB_PARAMETER_COUNT] = .EDB_QE[EDB_PARAMETER_COUNT] + 1;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 113
X00.89 INSERT_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (30)
; 3497 return NICE$_SUC;
; 3498 end;
; 3499 end;
; 3500 end;
; 3501
; 3502 !
; 3503 ! If we get here, the parameter could not be inserted within the
; 3504 ! vector. If there were initially no parameters, this will be the
; 3505 ! first entry; otherwise it will be the last entry.
; 3506 !
; 3507
; 3508 if not GET_PVB (.EDB_QE)
; L 3509 then return $NICE$ERR_REE;
; %PRINT: Resource error
; 3510
; 3511 PVB = .EDB_QE[EDB_PARAMETER_VECTOR];
; 3512 PVB_QE = PVB[.EDB_QE[EDB_PARAMETER_COUNT],0,0,0,0];
; 3513 PVB_QE[PE_NUMBER] = .PARM_NO;
; 3514
; 3515 if not SET_PARAMETER_DATA (.ENTITY_TYPE, .PRM_PTR, .PVB_QE)
; L 3516 then return $NICE$ERR_REE;
; %PRINT: Resource error
; 3517
; 3518 EDB_QE[EDB_PARAMETER_COUNT] = .EDB_QE[EDB_PARAMETER_COUNT] + 1;
; 3519
; 3520 return NICE$_SUC;
; 3521 end; ! End of INSERT_PARAMETER
.SBTTL INSERT.PARAMETER INSERT_PARAMETER
007516 .PSECT $CODE$, RO
000000 004167 000000G INSERT.PARAMETER:
JSR R1,$SAVE5 ; 3399
000004 162706 000014 SUB #14,SP
000010 005266 000034 INC 34(SP) ; PRM.PTR 3440
000014 016600 000034 MOV 34(SP),R0 ; PRM.PTR,*
000020 116066 177777 000012 MOVB -1(R0),12(SP) ; *,$$GETB.X
000026 005266 000034 INC 34(SP) ; PRM.PTR
000032 016605 000034 MOV 34(SP),R5 ; PRM.PTR,*
000036 116566 177777 000013 MOVB -1(R5),13(SP) ; *,$$GETB.X
000044 016646 000012 MOV 12(SP),-(SP) ; $$GETB.X,PARM.NO
000050 016666 000040 000012 MOV 40(SP),12(SP) ; ENTITY.TYPE,* 3447
000056 016646 000012 MOV 12(SP),-(SP)
000062 016604 000044 MOV 44(SP),R4 ; EDB.QE,*
000066 010446 MOV R4,-(SP)
000070 016646 000004 MOV 4(SP),-(SP) ; PARM.NO,*
000074 004767 000000V JSR PC,APPLICABLE
000100 062706 000006 ADD #6,SP
000104 006000 ROR R0
000106 103015 BHIS 1$ ; 3448
000110 016646 000012 MOV 12(SP),-(SP) ; 3450
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 114
X00.89 INSERT_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (30)
000114 016646 000002 MOV 2(SP),-(SP) ; PARM.NO,*
000120 004767 000000G JSR PC,NL.RO
000124 022626 CMP (SP)+,(SP)+
000126 006000 ROR R0
000130 103007 BCC 2$
000132 032766 000001 000034 BIT #1,34(SP) ; *,PRIVLEDGED
000140 001003 BNE 2$
000142 012700 177752 1$: MOV #-26,R0 ; 3451
000146 000570 BR 11$
000150 011646 2$: MOV (SP),-(SP) ; PARM.NO,* 3458
000152 016646 000014 MOV 14(SP),-(SP)
000156 010446 MOV R4,-(SP) ; 3460
000160 062716 000006 ADD #6,(SP)
000164 010546 MOV R5,-(SP) ; 3458
000166 004767 000000G JSR PC,NL.SCT
000172 062706 000010 ADD #10,SP
000176 006000 ROR R0
000200 103403 BLO 3$
000202 012700 177760 MOV #-20,R0 ; 3462
000206 000550 BR 11$
000210 012766 000034 000004 3$: MOV #34,4(SP) ; 3472
000216 060466 000004 ADD R4,4(SP)
000222 017601 000004 MOV @4(SP),R1 ; *,PVB
000226 012766 000030 000010 MOV #30,10(SP) ; 3474
000234 060466 000010 ADD R4,10(SP)
000240 017666 000010 000002 MOV @10(SP),2(SP)
000246 005003 CLR R3 ; N
000250 000463 BR 7$
000252 010302 4$: MOV R3,R2 ; N,* 3476
000254 006302 ASL R2
000256 006302 ASL R2
000260 010266 000006 MOV R2,6(SP) ; *,PVB.QE
000264 060166 000006 ADD R1,6(SP) ; PVB,PVB.QE
000270 021676 000006 CMP (SP),@6(SP) ; PARM.NO,PVB.QE 3478
000274 003050 BGT 6$
000276 001014 BNE 5$ ; 3480
000300 016646 000012 MOV 12(SP),-(SP) ; 3482
000304 010546 MOV R5,-(SP)
000306 016646 000012 MOV 12(SP),-(SP) ; PVB.QE,*
000312 004767 000000V JSR PC,SET.PARAMETER.DATA
000316 062706 000006 ADD #6,SP
000322 006000 ROR R0
000324 103072 BCC 8$
000326 000476 BR 10$
000330 010446 5$: MOV R4,-(SP) ; 3487
000332 010346 MOV R3,-(SP) ; N,*
000334 004767 000000V JSR PC,EXPAND.PVB
000340 022626 CMP (SP)+,(SP)+
000342 006000 ROR R0
000344 103062 BHIS 8$ ; 3488
000346 017601 000004 MOV @4(SP),R1 ; *,PVB 3490
000352 010266 000006 MOV R2,6(SP) ; *,PVB.QE 3491
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 115
X00.89 INSERT_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (30)
000356 060166 000006 ADD R1,6(SP) ; PVB,PVB.QE
000362 011676 000006 MOV (SP),@6(SP) ; PARM.NO,PVB.QE 3492
000366 016646 000012 MOV 12(SP),-(SP) ; 3493
000372 010546 MOV R5,-(SP)
000374 016646 000012 MOV 12(SP),-(SP) ; PVB.QE,*
000400 004767 000000V JSR PC,SET.PARAMETER.DATA
000404 062706 000006 ADD #6,SP
000410 006000 ROR R0
000412 103442 BLO 9$
000414 000436 BR 8$ ; 3494
000416 005203 6$: INC R3 ; N 3474
000420 020366 000002 7$: CMP R3,2(SP) ; N,*
000424 002712 BLT 4$
000426 010446 MOV R4,-(SP) ; 3508
000430 004767 000000V JSR PC,GET.PVB
000434 005726 TST (SP)+
000436 006000 ROR R0
000440 103024 BHIS 8$ ; 3509
000442 017601 000004 MOV @4(SP),R1 ; *,PVB 3511
000446 017600 000010 MOV @10(SP),R0 ; 3512
000452 006300 ASL R0
000454 006300 ASL R0
000456 060100 ADD R1,R0 ; PVB,*
000460 010066 000006 MOV R0,6(SP) ; *,PVB.QE
000464 011610 MOV (SP),(R0) ; PARM.NO,PVB.QE 3513
000466 016646 000012 MOV 12(SP),-(SP) ; 3515
000472 010546 MOV R5,-(SP)
000474 010046 MOV R0,-(SP) ; PVB.QE,*
000476 004767 000000V JSR PC,SET.PARAMETER.DATA
000502 062706 000006 ADD #6,SP
000506 006000 ROR R0
000510 103403 BLO 9$
000512 012700 177761 8$: MOV #-17,R0 ; 3516
000516 000404 BR 11$
000520 005276 000010 9$: INC @10(SP) ; 3518
000524 012700 000001 10$: MOV #1,R0 ; 3430
000530 062706 000016 11$: ADD #16,SP ; 3399
000534 000207 RTS PC
; Routine Size: 175 words, Routine Base: $CODE$ + 7516
; Maximum stack depth per invocation: 18 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 116
X00.89 COPY_PARAMETER_VECTOR 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (31)
; 3522 %routine ('COPY_PARAMETER_VECTOR', OPVB, NPVB, COUNT) : novalue =
; 3523
; 3524 !++
; 3525 ! FUNCTIONAL DESCRIPTION:
; 3526 !
; 3527 ! Copy a parameter vector.
; 3528 !
; 3529 ! FORMAL PARAMETERS
; 3530 !
; 3531 ! OPVB - The address of the old parameter vector.
; 3532 ! NPVB - The address of the new parameter vector.
; 3533 ! COUNT - The number of elements to copy.
; 3534 !
; 3535 ! IMPLICIT INPUTS
; 3536 !
; 3537 ! NONE.
; 3538 !
; 3539 ! ROUTINE VALUE:
; 3540 !
; 3541 ! NONE.
; 3542 !
; 3543 ! SIDE EFFECTS:
; 3544 !
; 3545 ! NONE.
; 3546 !
; 3547 !--
; 3548
; 3549 begin
; 3550
; 3551 local
; 3552 CNPVB: ref vector,
; 3553 COPVB: ref vector;
; 3554
; 3555 CNPVB = .NPVB;
; 3556 COPVB = .OPVB;
; 3557
; 3558 decru CNT from (.COUNT*PVB_ENTRY_SIZE) to 1
; 3559 do begin
; 3560 CNPVB [0] = .COPVB [0];
; 3561 CNPVB = CNPVB [1];
; 3562 COPVB = COPVB [1];
; 3563 end;
; 3564
; 3565 end; ! End of COPY_PARAMETER_VECTOR
.SBTTL COPY.PARAMETER.VECTOR COPY_PARAMETER_VECTOR
000000 004167 000000G COPY.PARAMETER.VECTOR:
JSR R1,$SAVE2 ; 3522
000004 016602 000012 MOV 12(SP),R2 ; NPVB,CNPVB 3555
000010 016601 000014 MOV 14(SP),R1 ; OPVB,COPVB 3556
000014 016600 000010 MOV 10(SP),R0 ; COUNT,* 3558
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 117
X00.89 COPY_PARAMETER_VECTOR 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (31)
000020 006300 ASL R0
000022 001402 BEQ 2$
000024 012122 1$: MOV (R1)+,(R2)+ ; COPVB,CNPVB 3560
000026 077002 SOB R0,1$ ; CNT,* 0000
000030 000207 2$: RTS PC ; 3522
; Routine Size: 13 words, Routine Base: $CODE$ + 10254
; Maximum stack depth per invocation: 4 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 118
X00.89 APPLICABLE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (32)
; 3566 %routine ('APPLICABLE', ENTITY_TYPE, EDB_QE, PARM_NO) =
; 3567
; 3568 !++
; 3569 ! FUNCTIONAL DESCRIPTION:
; 3570 !
; 3571 ! Determines whether a parameter, if an NML data base parameter,
; 3572 ! applies to an entry in the NML data base which represents a
; 3573 ! specific entity. I.e., if a parameter is applicable to the
; 3574 ! executor node only, then it could not apply to a data base
; 3575 ! entry for a remote node.
; 3576 !
; 3577 ! FORMAL PARAMETERS
; 3578 !
; 3579 ! ENTITY_TYPE - The entity type number of this entity.
; 3580 ! EDB_QE - The address of the entity data base entry for
; 3581 ! particular entity.
; 3582 ! PARM_NO - The parameter type number.
; 3583 !
; 3584 ! IMPLICIT INPUTS
; 3585 !
; 3586 ! NONE.
; 3587 !
; 3588 ! ROUTINE VALUE:
; 3589 !
; 3590 ! TRUE, if the parameter is applies to this entity;
; 3591 ! FALSE, otherwise.
; 3592 !
; 3593 ! SIDE EFFECTS:
; 3594 !
; 3595 ! NONE.
; 3596 !
; 3597 !--
; 3598
; 3599 begin
; 3600
; 3601 map
; 3602 EDB_QE: ref ENTITY_DB_BLOCK;
; 3603
; 3604 case .ENTITY_TYPE from NODE_E to MODULE_ of
; 3605 set
; 3606 [NODE_E]:
; 3607 if NML$EXECUTOR_ONLY (.ENTITY_TYPE, .PARM_NO)
; 3608 then begin
; 3609 if .EDB_QE[NDB_NODE_TYPE] eql NDB$EXECUTOR
; 3610 then return $TRUE
; 3611 else return $FALSE;
; 3612 end
; 3613 else return $TRUE;
; 3614
; 3615 [LINE_, CIRCUIT_, LOGGING_, MODULE_]:
; 3616 return $TRUE;
; 3617
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 119
X00.89 APPLICABLE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (32)
; 3618 [inrange,
; 3619 outrange]:
; 3620 tes;
; 3621
; 3622 return $FALSE;
; 3623 end; ! End of APPLICABLE
.SBTTL APPLICABLE APPLICABLE
000000 016600 000006 APPLICABLE:
MOV 6(SP),R0 ; ENTITY.TYPE,* 3604
000004 020027 000004 CMP R0,#4
000010 101031 BHI 4$
000012 006300 ASL R0
000014 066007 000054' ADD P.AAG(R0),PC ; Case dispatch
000020 000425 1$: BR 4$
000022 016646 000006 2$: MOV 6(SP),-(SP) ; ENTITY.TYPE,* 3607
000026 016646 000004 MOV 4(SP),-(SP) ; PARM.NO,*
000032 004767 000000G JSR PC,NL.PEX
000036 022626 CMP (SP)+,(SP)+
000040 006000 ROR R0
000042 103011 BCC 3$
000044 016600 000004 MOV 4(SP),R0 ; EDB.QE,* 3609
000050 016000 000016 MOV 16(R0),R0
000054 042700 174377 BIC #174377,R0
000060 020027 000400 CMP R0,#400
000064 001003 BNE 4$
000066 012700 000001 3$: MOV #1,R0 ; 3616
000072 000207 RTS PC
000074 005000 4$: CLR R0 ; 3566
000076 000207 RTS PC
; Routine Size: 32 words, Routine Base: $CODE$ + 10306
; Maximum stack depth per invocation: 3 words
000054 .PSECT $PLIT$, RO , D
P.AAG: ; CASE Table for APPLICABLE+0014 3604
000054 000002 .WORD 2 ; [2$]
000056 000046 .WORD 46 ; [3$]
000060 000046 .WORD 46 ; [3$]
000062 000046 .WORD 46 ; [3$]
000064 000046 .WORD 46 ; [3$]
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 120
X00.89 APPLICABLE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (33)
; U 3624 %if $X25 and not $MCB %then
; U 3625 %routine ('REMOVE_QUALIFIED_PARAMETER', EDB_QE, ENTITY, QUALIFIER, POINTER, LENGTH, PRIVLEDGED) =
; U 3626
; U 3627 !++
; U 3628 ! FUNCTIONAL DESCRIPTION:
; U 3629 !
; U 3630 ! Remove parameters in the qualifier sub queues.
; U 3631 !
; U 3632 ! FORMAL PARAMETERS
; U 3633 !
; U 3634 ! EDB_QE Address of the qualified entity data base structure to
; U 3635 ! which the parameter is to be inserted.
; U 3636 ! ENTITY The entity type number to which the parameter applies.
; U 3637 ! QUALIFIER A character sequence pointer to the qualifier
; U 3638 ! parameter.
; U 3639 ! POINTER A character sequence pointer to the parameter to
; U 3640 ! be inserted.
; U 3641 ! LENGTH The length of the parameter data passed in the
; U 3642 ! parameter buffer.
; U 3643 !
; U 3644 ! IMPLICIT INPUTS
; U 3645 !
; U 3646 ! NONE.
; U 3647 !
; U 3648 ! ROUTINE VALUE:
; U 3649 !
; U 3650 ! NICE return code.
; U 3651 !
; U 3652 ! SIDE EFFECTS:
; U 3653 !
; U 3654 ! NONE.
; U 3655 !
; U 3656 !--
; U 3657
; U 3658 begin
; U 3659
; U 3660 map
; U 3661 EDB_QE: ref ENTITY_DB_BLOCK;
; U 3662
; U 3663 local
; U 3664 PARAMETER,
; U 3665 QH_QUALIFIER: ref Q_HEADER,
; U 3666 QE_QUALIFIER: ref ENTITY_DB_BLOCK;
; U 3667
; U 3668 QH_QUALIFIER = EDB_QE[EDB_QUALIFIER_QUEUE];
; U 3669 PARAMETER = (if .LENGTH gtr 0 ! Get parameter number
; U 3670 then GETW_NA (.POINTER)
; U 3671 else -1); ! Zero length implies ALL
; U 3672
; U 3673 if .QUALIFIER eql 0
; U 3674 then begin ! Use default existing qualifier queue
; U 3675 if NMU$QUEUE_LENGTH (.QH_QUALIFIER) eql 1 ! Queue has only 1 entry ?
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 121
X00.89 APPLICABLE 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (33)
; U 3676 then QE_QUALIFIER = .QH_QUALIFIER[Q_FORWARD] ! Yes, default queue
; U 3677 else return $NICE$ERR_PAM; ! No, expecting qualifier name
; U 3678 end
; U 3679 else begin ! Use specific qualifier queue
; U 3680 local ID_STRING, COUNT: $SIGNED_BYTE_VALUE;
; U 3681
; U 3682 ID_STRING = ch$plus (.QUALIFIER, 2); ! Get qualifier id string
; U 3683 COUNT = ch$rchar (.ID_STRING); ! Get count byte
; U 3684
; U 3685 if .COUNT[VALUE] lss 0 ! If count byte is negative ....
; U 3686 then begin ! Set KNOWN qualified queues
; U 3687 local NEXT: ref Q_ENTRY;
; U 3688
; U 3689 NEXT = .QH_QUALIFIER[Q_FORWARD];
; U 3690
; U 3691 while (QE_QUALIFIER = .NEXT) neq .QH_QUALIFIER
; U 3692 do begin
; U 3693 NEXT = .NEXT[Q_FORWARD];
; U 3694 REMOVE_PARAMETER (.QE_QUALIFIER, .ENTITY, .PARAMETER, .PRIVLEDGED);
; U 3695 end;
; U 3696
; U 3697 return NICE$_SUC;
; U 3698 end
; U 3699 else begin ! Set specific qualified queue
; U 3700 QE_QUALIFIER = NMU$QUEUE_SCAN (.QH_QUALIFIER,
; U 3701 .ID_STRING,
; U 3702 NON_NODE_ID_MATCH);
; U 3703
; U 3704 if .QE_QUALIFIER eql 0 ! Does entry exist ?
; U 3705 then return $NICE$ERR_IPV;
; U 3706 end;
; U 3707 end;
; U 3708
; U 3709 REMOVE_PARAMETER (.QE_QUALIFIER, .ENTITY, .PARAMETER, .PRIVLEDGED);
; U 3710
; U 3711 return NICE$_SUC;
; U 3712 end; ! End of REMOVE_QUALIFIED_PARAMETER
; 3713 %fi
; 3714 %sbttl ''
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 122
X00.89 REMOVE_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (34)
; 3715 %routine ('REMOVE_PARAMETER', EDB_QE, ENTITY_TYPE, PARM_NO, PRIVLEDGED) : novalue =
; 3716
; 3717 !++
; 3718 ! FUNCTIONAL DESCRIPTION:
; 3719 !
; 3720 ! Removes a parameter entry from the parameter vector of the
; 3721 ! data base for an entity.
; 3722 !
; 3723 ! FORMAL PARAMETERS
; 3724 !
; 3725 ! EDB_QE - The address of the entity data base structure from
; 3726 ! which the parameter is to be removed.
; 3727 ! ENTITY_TYPE - The entity type number to which the parameter applies.
; 3728 ! PARM_NO - The parameter number for the parameter to be removed.
; 3729 ! PRIVLEDGED - If true, clear the parameter even if not clearable.
; 3730 !
; 3731 ! IMPLICIT INPUTS
; 3732 !
; 3733 ! NONE.
; 3734 !
; 3735 ! ROUTINE VALUE:
; 3736 !
; 3737 ! NONE.
; 3738 !
; 3739 ! SIDE EFFECTS:
; 3740 !
; 3741 ! NONE.
; 3742 !
; 3743 !--
; 3744
; 3745 begin
; 3746
; 3747 map
; 3748 EDB_QE: ref ENTITY_DB_BLOCK;
; 3749
; 3750 !
; 3751 ! Verify that all fields related to the parameter vector are
; 3752 ! in agreement. If there is any indication that there is no
; 3753 ! PVB, reset all the fields.
; 3754 !
; 3755
; 3756 if (.EDB_QE[EDB_PARAMETER_COUNT] eql 0)
; 3757 or (.EDB_QE[EDB_PARAMETER_VECTOR] eql 0)
; 3758 or (.EDB_QE[EDB_PARAMETER_ALLOCATION] eql 0)
; 3759 then begin
; 3760 RELEASE_PVB (.EDB_QE);
; 3761 return;
; 3762 end;
; 3763
; 3764 !
; 3765 ! Otherwise, get the parameter number and check it for applicability.
; 3766 !
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 123
X00.89 REMOVE_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (34)
; 3767
; 3768 if not APPLICABLE (.ENTITY_TYPE, .EDB_QE, .PARM_NO)
; L 3769 then return $NICE$ERR_PNA
; %PRINT: Parameter not applicable
; 3770
; 3771 !
; 3772 ! Search through the vector for the parameter to
; 3773 ! to be removed and ripple all parameters numbered higher than
; 3774 ! the one to be removed down one position in the vector.
; 3775 !
; 3776
; 3777 else begin
; 3778 local CNT,
; 3779 ENTRY: ref $NML$PVB_ENTRY_BLOCK;
; 3780
; 3781 ENTRY = .EDB_QE[EDB_PARAMETER_VECTOR];
; 3782 CNT = .EDB_QE[EDB_PARAMETER_COUNT];
; 3783
; 3784 do begin
; 3785
; 3786 ! Note: ALL (-1) is less than any parameter number
; 3787
; 3788 if .PARM_NO leq .ENTRY[PE_NUMBER]
; 3789 then begin
; 3790 if not ((.PARM_NO eql .ENTRY[PE_NUMBER]) or ! parameter #
; 3791 (.PARM_NO lss 0)) ! ALL
; 3792 then exitloop; ! No match
; 3793
; 3794 ! Found parameter or removing all
; 3795
; 3796 if NML$CLEARABLE (.ENTITY_TYPE, .ENTRY[PE_NUMBER]) or
; 3797 .PRIVLEDGED
; 3798 then begin ! Check if user can clear parameter
; 3799
; 3800 ! If this is a counter timer, adjust the counter
; 3801 ! timer data base to reflect the time change.
; 3802
; 3803 NML$COUNTER_TIMER_CLEAR (.PARM_NO,
; 3804 .ENTITY_TYPE,
; 3805 EDB_QE[EDB_ENTITY_ID]);
; 3806
; 3807 CLEAR_PARAMETER_DATA (.ENTITY_TYPE, .ENTRY);
; 3808 COPY_PARAMETER_VECTOR (vector [.ENTRY, PVB_ENTRY_SIZE],
; 3809 .ENTRY,
; 3810 .CNT - 1);
; 3811 EDB_QE[EDB_PARAMETER_COUNT] = .EDB_QE[EDB_PARAMETER_COUNT] - 1;
; 3812 end
; 3813 else begin ! Move down one entry
; 3814 ENTRY = vector [.ENTRY, PVB_ENTRY_SIZE];
; 3815 end;
; 3816
; 3817 if .PARM_NO geq 0 then exitloop; ! Done Removing single parameter
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 124
X00.89 REMOVE_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (34)
; 3818 end
; 3819 else ! Move down one entry
; 3820 ENTRY = vector [.ENTRY, PVB_ENTRY_SIZE];
; 3821 end
; 3822 while (CNT = .CNT - 1) neq 0;
; 3823 end;
; 3824
; 3825 ! If there are now no more parameters left in the vector, release
; 3826 ! storage used by the vector.
; 3827
; 3828 if .EDB_QE[EDB_PARAMETER_COUNT] eql 0
; 3829 then RELEASE_PVB (.EDB_QE);
; 3830
; 3831 return;
; 3832 end; ! End of REMOVE_PARAMETER
.SBTTL REMOVE.PARAMETER REMOVE_PARAMETER
010406 .PSECT $CODE$, RO
000000 004167 000000G REMOVE.PARAMETER:
JSR R1,$SAVE5 ; 3715
000004 016603 000024 MOV 24(SP),R3 ; EDB.QE,* 3756
000010 012746 000030 MOV #30,-(SP)
000014 060316 ADD R3,(SP)
000016 005776 000000 TST @0(SP)
000022 001512 BEQ 9$
000024 005763 000034 TST 34(R3) ; 3757
000030 001507 BEQ 9$
000032 005763 000032 TST 32(R3) ; 3758
000036 001504 BEQ 9$ ; 3760
000040 016605 000024 MOV 24(SP),R5 ; ENTITY.TYPE,* 3768
000044 010546 MOV R5,-(SP)
000046 010346 MOV R3,-(SP)
000050 016601 000026 MOV 26(SP),R1 ; PARM.NO,*
000054 010146 MOV R1,-(SP)
000056 004767 177616 JSR PC,APPLICABLE
000062 062706 000006 ADD #6,SP
000066 006000 ROR R0
000070 103073 BHIS 10$ ; 3769
000072 016304 000034 MOV 34(R3),R4 ; *,ENTRY 3781
000076 017602 000000 MOV @0(SP),R2 ; *,CNT 3782
000102 020114 1$: CMP R1,(R4) ; *,ENTRY 3788
000104 003053 BGT 6$
000106 001402 BEQ 2$ ; 3790
000110 005701 TST R1 ; 3791
000112 002053 BGE 8$ ; 3792
000114 010546 2$: MOV R5,-(SP) ; 3796
000116 011446 MOV (R4),-(SP) ; ENTRY,*
000120 004767 000000G JSR PC,NL.CLR
000124 022626 CMP (SP)+,(SP)+
000126 006000 ROR R0
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 125
X00.89 REMOVE_PARAMETER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (34)
000130 103404 BLO 3$
000132 032766 000001 000020 BIT #1,20(SP) ; *,PRIVLEDGED 3797
000140 001430 BEQ 4$
000142 010146 3$: MOV R1,-(SP) ; 3803
000144 010546 MOV R5,-(SP)
000146 012746 000006 MOV #6,-(SP) ; 3805
000152 060316 ADD R3,(SP)
000154 004767 000000G JSR PC,NL.CCT ; 3803
000160 010516 MOV R5,(SP) ; 3807
000162 010446 MOV R4,-(SP) ; ENTRY,*
000164 004767 000000V JSR PC,CLEAR.PARAMETER.DATA
000170 012716 000004 MOV #4,(SP) ; 3808
000174 060416 ADD R4,(SP) ; ENTRY,*
000176 010446 MOV R4,-(SP) ; ENTRY,*
000200 010246 MOV R2,-(SP) ; CNT,* 3810
000202 005316 DEC (SP)
000204 004767 177436 JSR PC,COPY.PARAMETER.VECTOR ; 3808
000210 005376 000014 DEC @14(SP) ; 3811
000214 062706 000014 ADD #14,SP ; 3798
000220 000402 BR 5$ ; 3796
000222 062704 000004 4$: ADD #4,R4 ; *,ENTRY 3814
000226 005701 5$: TST R1 ; 3817
000230 002403 BLT 7$
000232 000403 BR 8$
000234 062704 000004 6$: ADD #4,R4 ; *,ENTRY 3820
000240 077260 7$: SOB R2,1$ ; CNT,* 3822
000242 005776 000000 8$: TST @0(SP) ; 3828
000246 001004 BNE 10$
000250 010346 9$: MOV R3,-(SP) ; 3829
000252 004767 000000V JSR PC,RELEASE.PVB
000256 005726 TST (SP)+
000260 005726 10$: TST (SP)+ ; 3715
000262 000207 RTS PC
; Routine Size: 90 words, Routine Base: $CODE$ + 10406
; Maximum stack depth per invocation: 14 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 126
X00.89 RELEASE_PVB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (35)
; 3833 %routine ('RELEASE_PVB', EDB_QE) : novalue =
; 3834
; 3835 !++
; 3836 ! FUNCTIONAL DESCRIPTION:
; 3837 !
; 3838 ! Clears all related fields and releases the parameter entry
; 3839 ! vector block for a specific entity data base structure.
; 3840 !
; 3841 ! FORMAL PARAMETERS
; 3842 !
; 3843 ! EDB_QE - The address of the entity data base structure from
; 3844 ! which the PVB is to be removed.
; 3845 !
; 3846 ! IMPLICIT INPUTS
; 3847 !
; 3848 ! NONE.
; 3849 !
; 3850 ! ROUTINE VALUE:
; 3851 !
; 3852 ! NONE.
; 3853 !
; 3854 ! SIDE EFFECTS:
; 3855 !
; 3856 ! The following fields of the entity data base entry will be cleared:
; 3857 ! EDB_QE[EDB_PARAMETER_ALLOCATION]
; 3858 ! EDB_QE[EDB_PARAMETER_VECTOR]
; 3859 ! EDB_QE[EDB_PARAMETER_COUNT]
; 3860 !
; 3861 !--
; 3862
; 3863 begin
; 3864
; 3865 map
; 3866 EDB_QE: ref ENTITY_DB_BLOCK;
; 3867
; 3868 !
; 3869 ! If a parameter vector is not currently allocated there is
; 3870 ! no memory to be released.
; 3871 !
; 3872
; 3873 if (.EDB_QE[EDB_PARAMETER_ALLOCATION] neq 0) ! They better all be in
; 3874 and (.EDB_QE[EDB_PARAMETER_VECTOR] neq 0) ! agreement.
; 3875 then NMU$MEMORY_RELEASE (.EDB_QE[EDB_PARAMETER_VECTOR],
; 3876 .EDB_QE[EDB_PARAMETER_ALLOCATION]);
; 3877
; 3878 EDB_QE[EDB_PARAMETER_ALLOCATION] = 0;
; 3879 EDB_QE[EDB_PARAMETER_VECTOR] = 0;
; 3880 EDB_QE[EDB_PARAMETER_COUNT] = 0;
; 3881
; 3882 return;
; 3883 end; ! End of RELEASE_PVB
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 127
X00.89 RELEASE_PVB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (35)
.SBTTL RELEASE.PVB RELEASE_PVB
000000 004167 000000G RELEASE.PVB:
JSR R1,$SAVE2 ; 3833
000004 016601 000010 MOV 10(SP),R1 ; EDB.QE,* 3873
000010 012702 000032 MOV #32,R2
000014 060102 ADD R1,R2
000016 005712 TST (R2)
000020 001411 BEQ 1$
000022 005761 000034 TST 34(R1) ; 3874
000026 001406 BEQ 1$
000030 016146 000034 MOV 34(R1),-(SP) ; 3875
000034 011246 MOV (R2),-(SP)
000036 004767 000000G JSR PC,UM.RELEASE
000042 022626 CMP (SP)+,(SP)+
000044 005012 1$: CLR (R2) ; 3878
000046 005061 000034 CLR 34(R1) ; 3879
000052 005061 000030 CLR 30(R1) ; 3880
000056 000207 RTS PC ; 3833
; Routine Size: 24 words, Routine Base: $CODE$ + 10672
; Maximum stack depth per invocation: 6 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 128
X00.89 GET_PVB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (36)
; 3884 %routine ('GET_PVB', EDB_QE) =
; 3885
; 3886 !++
; 3887 ! FUNCTIONAL DESCRIPTION:
; 3888 !
; 3889 ! Gets a parameter entry vector block for a specific entity
; 3890 ! data base structure. If a parameter vector is already
; 3891 ! allocated, a new one will not be allocated provided there
; 3892 ! is enough room for 1 more entry in the existing vector.
; 3893 ! If there is not enough room, a larger vector will be allocated
; 3894 ! and the existing entries will be copied to the new vector.
; 3895 ! The associated fields in the data base structure will be
; 3896 ! updated.
; 3897 !
; 3898 ! FORMAL PARAMETERS
; 3899 !
; 3900 ! EDB_QE - The address of the entity data base structure from
; 3901 ! which the PVB is to be allocated.
; 3902 !
; 3903 ! IMPLICIT INPUTS
; 3904 !
; 3905 ! NONE.
; 3906 !
; 3907 ! ROUTINE VALUE:
; 3908 !
; 3909 ! NONE.
; 3910 !
; 3911 ! SIDE EFFECTS:
; 3912 !
; 3913 ! The following fields of the entity data base entry will be changed:
; 3914 ! EDB_QE[EDB_PARAMETER_ALLOCATION]
; 3915 ! EDB_QE[EDB_PARAMETER_VECTOR]
; 3916 !
; 3917 !--
; 3918
; 3919 begin
; 3920
; 3921 map
; 3922 EDB_QE: ref ENTITY_DB_BLOCK;
; 3923
; 3924 if .EDB_QE[EDB_PARAMETER_ALLOCATION] lss
; 3925 ((.EDB_QE[EDB_PARAMETER_COUNT] + 1) * PVB_ENTRY_ALLOCATION)
; 3926 then begin
; 3927 local COUNT, NPVB: ref $NML$PVB_ENTRY_VECTOR (0);
; 3928 bind NEW_ALLOCATION = .EDB_QE[EDB_PARAMETER_ALLOCATION] +
; 3929 PVB_ENTRY_ALLOCATION;
; 3930
; 3931 if (NPVB = NMU$MEMORY_GET (NEW_ALLOCATION)) eql 0
; 3932 then return $FALSE;
; 3933
; 3934 COUNT = .EDB_QE[EDB_PARAMETER_COUNT];
; 3935 COPY_PARAMETER_VECTOR(.EDB_QE[EDB_PARAMETER_VECTOR],
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 129
X00.89 GET_PVB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (36)
; 3936 .NPVB,
; 3937 .EDB_QE[EDB_PARAMETER_COUNT]);
; 3938
; 3939 RELEASE_PVB (.EDB_QE);
; 3940 EDB_QE[EDB_PARAMETER_VECTOR] = .NPVB;
; 3941 EDB_QE[EDB_PARAMETER_ALLOCATION] = NEW_ALLOCATION;
; 3942 EDB_QE[EDB_PARAMETER_COUNT] = .COUNT;
; 3943 end;
; 3944
; 3945 return $TRUE;
; 3946 end; ! End of GET_PVB
.SBTTL GET.PVB GET_PVB
000000 004167 000000G GET.PVB:JSR R1,$SAVE5 ; 3884
000004 016604 000016 MOV 16(SP),R4 ; EDB.QE,* 3924
000010 016402 000030 MOV 30(R4),R2 ; 3925
000014 010200 MOV R2,R0
000016 006300 ASL R0
000020 006300 ASL R0
000022 062700 000004 ADD #4,R0
000026 026400 000032 CMP 32(R4),R0 ; 3924
000032 002034 BGE 1$
000034 016405 000032 MOV 32(R4),R5 ; 3928
000040 062705 000004 ADD #4,R5
000044 010546 MOV R5,-(SP) ; 3931
000046 004767 000000G JSR PC,UM.GET
000052 005726 TST (SP)+
000054 010001 MOV R0,R1 ; *,NPVB
000056 001425 BEQ 2$ ; 3932
000060 010203 MOV R2,R3 ; *,COUNT 3934
000062 016446 000034 MOV 34(R4),-(SP) ; 3935
000066 010146 MOV R1,-(SP) ; NPVB,*
000070 010246 MOV R2,-(SP)
000072 004767 177204 JSR PC,COPY.PARAMETER.VECTOR
000076 010416 MOV R4,(SP) ; 3939
000100 004767 177614 JSR PC,RELEASE.PVB
000104 010164 000034 MOV R1,34(R4) ; NPVB,* 3940
000110 010564 000032 MOV R5,32(R4) ; 3941
000114 010364 000030 MOV R3,30(R4) ; COUNT,* 3942
000120 062706 000006 ADD #6,SP ; 3926
000124 012700 000001 1$: MOV #1,R0 ; 3919
000130 000207 RTS PC
000132 005000 2$: CLR R0 ; 3884
000134 000207 RTS PC
; Routine Size: 47 words, Routine Base: $CODE$ + 10752
; Maximum stack depth per invocation: 10 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 130
X00.89 EXPAND_PVB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (37)
; 3947 %routine ('EXPAND_PVB', EDB_QE, N) =
; 3948
; 3949 !++
; 3950 ! FUNCTIONAL DESCRIPTION:
; 3951 !
; 3952 ! Expands the parameter entry vector block for a specific entity
; 3953 ! data base structure. If a parameter vector is already
; 3954 ! allocated, a new one will not be allocated provided there
; 3955 ! is enough room for 1 more entry in the existing vector.
; 3956 ! If there is not enough room, a larger vector will be allocated
; 3957 ! and the existing entries will be copied to the new vector.
; 3958 ! In any case, the parameter vector will be opened up and
; 3959 ! a null entry will be placed in the vector at position N,
; 3960 ! where N varies from 0 to count-1.
; 3961 ! The associated fields in the data base structure will be
; 3962 ! updated.
; 3963 !
; 3964 ! FORMAL PARAMETERS
; 3965 !
; 3966 ! EDB_QE - The address of the entity data base structure from
; 3967 ! which the PVB is to be expanded.
; 3968 ! N - The number of the vector entry, where the null
; 3969 ! entry is to be placed. (0 <= N < count)
; 3970 !
; 3971 ! IMPLICIT INPUTS
; 3972 !
; 3973 ! NONE.
; 3974 !
; 3975 ! ROUTINE VALUE:
; 3976 !
; 3977 ! NONE.
; 3978 !
; 3979 ! SIDE EFFECTS:
; 3980 !
; 3981 ! The following fields of the entity data base entry will be changed:
; 3982 ! EDB_QE[EDB_PARAMETER_ALLOCATION]
; 3983 ! EDB_QE[EDB_PARAMETER_VECTOR]
; 3984 !
; 3985 !--
; 3986
; 3987 begin
; 3988
; 3989 map
; 3990 EDB_QE: ref ENTITY_DB_BLOCK;
; 3991
; 3992 local
; 3993 PVB: ref $NML$PVB_ENTRY_VECTOR (0);
; 3994
; 3995 if .EDB_QE[EDB_PARAMETER_ALLOCATION]
; 3996 lss ((.EDB_QE[EDB_PARAMETER_COUNT] + 1) * PVB_ENTRY_ALLOCATION)
; 3997 then if not GET_PVB (.EDB_QE)
; 3998 then return $FALSE;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 131
X00.89 EXPAND_PVB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (37)
; 3999
; 4000 PVB = .EDB_QE[EDB_PARAMETER_VECTOR];
; 4001 decr M from .EDB_QE[EDB_PARAMETER_COUNT] - 1 to .N
; 4002 do begin
; 4003 PVB[.M+1,PE_NUMBER] = .PVB[.M,PE_NUMBER];
; 4004 PVB[.M+1,PE_DATA] = .PVB[.M,PE_DATA];
; 4005 end;
; 4006
; 4007 PVB[.N,PE_NUMBER] = 0;
; 4008 PVB[.N,PE_DATA] = 0;
; 4009
; 4010 return $TRUE;
; 4011 end; ! End of EXPAND_PVB
.SBTTL EXPAND.PVB EXPAND_PVB
000000 004167 000000G EXPAND.PVB:
JSR R1,$SAVE5 ; 3947
000004 016604 000020 MOV 20(SP),R4 ; EDB.QE,* 3995
000010 016400 000030 MOV 30(R4),R0 ; 3996
000014 006300 ASL R0
000016 006300 ASL R0
000020 062700 000004 ADD #4,R0
000024 026400 000032 CMP 32(R4),R0
000030 002006 BGE 1$
000032 010446 MOV R4,-(SP) ; 3997
000034 004767 177602 JSR PC,GET.PVB
000040 005726 TST (SP)+
000042 006000 ROR R0
000044 103052 BHIS 4$ ; 3998
000046 016402 000034 1$: MOV 34(R4),R2 ; *,PVB 4000
000052 016405 000030 MOV 30(R4),R5 ; *,M 4001
000056 000423 BR 3$
000060 010504 2$: MOV R5,R4 ; M,* 4003
000062 006304 ASL R4
000064 006304 ASL R4
000066 010401 MOV R4,R1
000070 060201 ADD R2,R1 ; PVB,*
000072 010503 MOV R5,R3 ; M,*
000074 006303 ASL R3
000076 006303 ASL R3
000100 010300 MOV R3,R0
000102 060200 ADD R2,R0 ; PVB,*
000104 011061 000004 MOV (R0),4(R1)
000110 010401 MOV R4,R1 ; 4004
000112 060201 ADD R2,R1 ; PVB,*
000114 010300 MOV R3,R0
000116 060200 ADD R2,R0 ; PVB,*
000120 016061 000002 000006 MOV 2(R0),6(R1)
000126 005305 3$: DEC R5 ; M 4001
000130 020566 000016 CMP R5,16(SP) ; M,N
000134 002351 BGE 2$
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 132
X00.89 EXPAND_PVB 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (37)
000136 016601 000016 MOV 16(SP),R1 ; N,* 4007
000142 006301 ASL R1
000144 006301 ASL R1
000146 010100 MOV R1,R0
000150 060200 ADD R2,R0 ; PVB,*
000152 005010 CLR (R0)
000154 010100 MOV R1,R0 ; 4008
000156 060200 ADD R2,R0 ; PVB,*
000160 005060 000002 CLR 2(R0)
000164 012700 000001 MOV #1,R0 ; 3987
000170 000207 RTS PC
000172 005000 4$: CLR R0 ; 3947
000174 000207 RTS PC
; Routine Size: 63 words, Routine Base: $CODE$ + 11110
; Maximum stack depth per invocation: 8 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 133
X00.89 SET_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (38)
; 4012 %routine ('SET_PARAMETER_DATA', ENTITY_TYPE, PRM_PTR, PVB_QE) =
; 4013
; 4014 !++
; 4015 ! FUNCTIONAL DESCRIPTION:
; 4016 !
; 4017 ! Stores the data for a parameter in the parameter vector block.
; 4018 ! The data stored is dependent on the type of data for the
; 4019 ! parameter. For coded and binary value parameters the data is
; 4020 ! stored directly. For image fields the address of a dynamically
; 4021 ! allocated block containing the image field is stored.
; 4022 !
; 4023 ! FORMAL PARAMETERS
; 4024 !
; 4025 ! ENTITY_TYPE - Entity type number.
; 4026 ! PRM_PTR - Pointer to data portion of parameter.
; 4027 ! PVB_QE - Address of Parameter Vector Block Queue Entry.
; 4028 !
; 4029 ! IMPLICIT INPUTS
; 4030 !
; 4031 ! NONE.
; 4032 !
; 4033 ! ROUTINE VALUE:
; 4034 !
; 4035 ! NONE.
; 4036 !
; 4037 ! SIDE EFFECTS:
; 4038 !
; 4039 ! NONE.
; 4040 !
; 4041 !--
; 4042
; 4043 begin
; 4044
; 4045 map
; 4046 PVB_QE: ref $NML$PVB_ENTRY_BLOCK;
; 4047
; 4048 local
; 4049 DATA_TYPE: block [1] field (DATA_TYPE_FIELDS);
; 4050
; 4051 DATA_TYPE = NML$GET_PDB_DATA_TYPE (.ENTITY_TYPE, .PVB_QE[PE_NUMBER]);
; 4052
; 4053 if .DATA_TYPE[DT_CODED] eql 0 ! Not coded
; 4054 then begin
; 4055 if .DATA_TYPE[DT_FTYPE] eql 0 ! Binary number
; 4056 then begin
; 4057 if .DATA_TYPE[DT_LENGTH] eql 0 ! Image field
; 4058 then begin
; 4059 if not SET_IMAGE_FIELD (PVB_QE[PE_ADDRESS], .PRM_PTR)
; 4060 then return $FALSE;
; 4061 end
; 4062 else begin
; 4063 if .DATA_TYPE[DT_LENGTH] leq %bpval/8
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 134
X00.89 SET_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (38)
; 4064 then PVB_QE[PE_DATA] = GETN (PRM_PTR, .DATA_TYPE[DT_LENGTH])
; 4065 else begin
; 4066 bind L = .DATA_TYPE[DT_LENGTH],
; 4067 A = ch$allocation (L,8) * %upval;
; 4068
; 4069 if .PVB_QE[PE_ADDRESS] eql 0
; 4070 then if (PVB_QE[PE_ADDRESS] = NMU$MEMORY_GET (A)) eql 0
; 4071 then return $FALSE;
; 4072
; 4073 ch$move (L, .PRM_PTR, ch$ptr (.PVB_QE[PE_ADDRESS],,8));
; 4074 end;
; 4075 end;
; 4076 end
; 4077 else begin ! ASCII image field
; 4078 if not SET_IMAGE_FIELD (PVB_QE[PE_ADDRESS], .PRM_PTR)
; 4079 then return $FALSE;
; 4080 end;
; 4081 end
; 4082 else begin ! Coded
; 4083 if .DATA_TYPE[DT_FTYPE] eql 0 ! Single field
; 4084 then PVB_QE[PE_DATA] = GETN (PRM_PTR, .DATA_TYPE[DT_NUMBER])
; 4085 else begin ! Multiple field
; 4086 if begin ! Special cases for mutiple fields of
; 4087 selectone .ENTITY_TYPE of
; 4088 set
; 4089 [NODE_E]: ! NODE entity
; 4090 selectone .PVB_QE[PE_NUMBER] of
; 4091 set
; 4092 [141]: ! HOST
; 4093 $TRUE;
; 4094 [otherwise]:
; 4095 $FALSE;
; 4096 tes;
; 4097 [MODULE_]: ! MODULE entity
; 4098 selectone .PVB_QE[PE_NUMBER] of
; 4099 set
; 4100 [320]: ! NODE
; 4101 $TRUE;
; 4102 [otherwise]:
; 4103 $FALSE;
; 4104 tes;
; 4105 [otherwise]:
; 4106 $FALSE;
; 4107 tes
; 4108 end
; 4109 then begin
; 4110 local PTR, TEMP;
; 4111
; 4112 if .PVB_QE[PE_ADDRESS] eql 0
; 4113 then if (PVB_QE[PE_ADDRESS] = NMU$MEMORY_GET (NODE_ID_BUFFER_ALLOCATION)) eql 0
; 4114 then return $FALSE;
; 4115
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 135
X00.89 SET_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (38)
; 4116 PTR = ch$ptr (.PVB_QE[PE_ADDRESS],,8);
; 4117 TEMP = GETB (PRM_PTR);
; 4118 if .TEMP eql 0
; 4119 then begin
; 4120 TEMP = GETW (PRM_PTR);
; 4121 PUTW (TEMP, PTR);
; 4122 PUTB (0, PTR);
; 4123 end
; 4124 else begin
; 4125 local ADDR;
; 4126
; 4127 ADDR = 0;
; 4128 PUTW (ADDR, PTR);
; 4129 PUTB (.TEMP, PTR);
; 4130 ch$move (.TEMP, .PRM_PTR, .PTR);
; 4131 end;
; 4132
; 4133 PTR = ch$ptr (.PVB_QE[PE_ADDRESS],,8);
; 4134 TEMP = NODE_ID_BUFFER_LENGTH;
; 4135
; 4136 !
; 4137 ! Map node address so a valid address
; 4138 ! is displayed.
; 4139 !
; 4140
; 4141 $NML$MAP_NODE_ID (TEMP, .PTR);
; 4142 end
; 4143 else PVB_QE[PE_ADDRESS] = 0; ! Unknown multiple parameter
; 4144 end;
; 4145 end;
; 4146
; 4147 return $TRUE;
; 4148 end; ! End of SET_PARAMETER_DATA
001112 .PSECT $OWN$, D
001112 IOSB: .BLKW 2
.SBTTL SET.PARAMETER.DATA SET_PARAMETER_DATA
011306 .PSECT $CODE$, RO
000000 004167 000000G SET.PARAMETER.DATA:
JSR R1,$SAVE5 ; 4012
000004 005746 TST -(SP)
000006 016603 000024 MOV 24(SP),R3 ; ENTITY.TYPE,* 4051
000012 010346 MOV R3,-(SP)
000014 017601 000022 MOV @22(SP),R1 ; PVB.QE,*
000020 010146 MOV R1,-(SP)
000022 004767 000000G JSR PC,NL.PDT
000026 010002 MOV R0,R2 ; *,DATA.TYPE
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 136
X00.89 SET_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (38)
000030 016600 000024 MOV 24(SP),R0 ; PVB.QE,* 4059
000034 012705 000002 MOV #2,R5
000040 060005 ADD R0,R5
000042 032702 000200 BIT #200,R2 ; *,DATA.TYPE 4053
000046 001133 BNE 9$
000050 032702 000100 BIT #100,R2 ; *,DATA.TYPE 4055
000054 001117 BNE 8$
000056 032702 000017 BIT #17,R2 ; *,DATA.TYPE 4057
000062 001013 BNE 2$
000064 010516 MOV R5,(SP) ; 4059
000066 016646 000026 MOV 26(SP),-(SP) ; PRM.PTR,*
000072 004767 000000V JSR PC,SET.IMAGE.FIELD
000076 005726 TST (SP)+
000100 006000 ROR R0
000102 103560 BLO 12$
000104 022626 1$: CMP (SP)+,(SP)+ ; 4060
000106 000167 000626 JMP 21$
000112 010200 2$: MOV R2,R0 ; DATA.TYPE,* 4063
000114 042700 177760 BIC #177760,R0
000120 020027 000002 CMP R0,#2
000124 101041 BHI 5$
000126 005266 000026 INC 26(SP) ; PRM.PTR 4064
000132 016600 000026 MOV 26(SP),R0 ; PRM.PTR,*
000136 005003 CLR R3 ; $$GETN.X
000140 156003 177777 BISB -1(R0),R3 ; *,$$GETN.X
000144 010200 MOV R2,R0 ; DATA.TYPE,*
000146 042700 177760 BIC #177760,R0
000152 072027 000003 ASH #3,R0
000156 010004 MOV R0,R4
000160 162704 000010 SUB #10,R4
000164 005001 CLR R1 ; $$GETN.P
000166 000412 BR 4$
000170 005266 000026 3$: INC 26(SP) ; PRM.PTR
000174 016600 000026 MOV 26(SP),R0 ; PRM.PTR,*
000200 114000 MOVB -(R0),R0
000202 042700 177400 BIC #177400,R0
000206 072001 ASH R1,R0 ; $$GETN.P,*
000210 060300 ADD R3,R0 ; $$GETN.X,*
000212 010003 MOV R0,R3 ; *,$$GETN.X
000214 062701 000010 4$: ADD #10,R1 ; *,$$GETN.P
000220 020104 CMP R1,R4 ; $$GETN.P,*
000222 003762 BLE 3$
000224 010315 MOV R3,(R5) ; $$GETN.X,*
000226 000506 BR 12$ ; 4063
000230 010200 5$: MOV R2,R0 ; DATA.TYPE,* 4067
000232 042700 177760 BIC #177760,R0
000236 005200 INC R0
000240 010001 MOV R0,R1
000242 006700 SXT R0
000244 071027 000002 DIV #2,R0
000250 006300 ASL R0
000252 005715 TST (R5) ; 4069
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 137
X00.89 SET_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (38)
000254 001005 BNE 7$
000256 010016 MOV R0,(SP) ; 4070
000260 004767 000000G JSR PC,UM.GET
000264 010015 MOV R0,(R5)
000266 001706 6$: BEQ 1$ ; 4071
000270 010216 7$: MOV R2,(SP) ; DATA.TYPE,* 4073
000272 042716 177760 BIC #177760,(SP)
000276 016646 000026 MOV 26(SP),-(SP) ; PRM.PTR,*
000302 011546 MOV (R5),-(SP)
000304 004767 000000G JSR PC,BL$MOV
000310 022626 CMP (SP)+,(SP)+ ; 4065
000312 000454 BR 12$ ; 4055
000314 010516 8$: MOV R5,(SP) ; 4078
000316 016646 000026 MOV 26(SP),-(SP) ; PRM.PTR,*
000322 004767 000000V JSR PC,SET.IMAGE.FIELD
000326 005726 TST (SP)+
000330 006000 ROR R0
000332 103576 BLO 20$
000334 000663 BR 1$ ; 4079
000336 032702 000100 9$: BIT #100,R2 ; *,DATA.TYPE 4083
000342 001041 BNE 13$
000344 005266 000026 INC 26(SP) ; PRM.PTR 4084
000350 016600 000026 MOV 26(SP),R0 ; PRM.PTR,*
000354 005001 CLR R1 ; $$GETN.X
000356 156001 177777 BISB -1(R0),R1 ; *,$$GETN.X
000362 010200 MOV R2,R0 ; DATA.TYPE,*
000364 042700 177700 BIC #177700,R0
000370 072027 000003 ASH #3,R0
000374 010002 MOV R0,R2
000376 162702 000010 SUB #10,R2
000402 005004 CLR R4 ; $$GETN.P
000404 000412 BR 11$
000406 005266 000026 10$: INC 26(SP) ; PRM.PTR
000412 016600 000026 MOV 26(SP),R0 ; PRM.PTR,*
000416 114000 MOVB -(R0),R0
000420 042700 177400 BIC #177400,R0
000424 072004 ASH R4,R0 ; $$GETN.P,*
000426 060100 ADD R1,R0 ; $$GETN.X,*
000430 010001 MOV R0,R1 ; *,$$GETN.X
000432 062704 000010 11$: ADD #10,R4 ; *,$$GETN.P
000436 020402 CMP R4,R2 ; $$GETN.P,*
000440 003762 BLE 10$
000442 010115 MOV R1,(R5) ; $$GETN.X,*
000444 000531 12$: BR 20$
000446 005703 13$: TST R3 ; 4087
000450 001004 BNE 14$
000452 020127 000215 CMP R1,#215 ; 4090
000456 001123 BNE 19$
000460 000406 BR 15$
000462 020327 000004 14$: CMP R3,#4 ; 4087
000466 001117 BNE 19$
000470 020127 000500 CMP R1,#500 ; 4098
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 138
X00.89 SET_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (38)
000474 001114 BNE 19$
000476 005715 15$: TST (R5) ; 4112
000500 001006 BNE 16$
000502 012716 000012 MOV #12,(SP) ; 4113
000506 004767 000000G JSR PC,UM.GET
000512 010015 MOV R0,(R5)
000514 001664 BEQ 6$ ; 4114
000516 011502 16$: MOV (R5),R2 ; *,PTR 4116
000520 005266 000026 INC 26(SP) ; PRM.PTR 4117
000524 016600 000026 MOV 26(SP),R0 ; PRM.PTR,*
000530 005001 CLR R1 ; TEMP
000532 156001 177777 BISB -1(R0),R1 ; *,TEMP
000536 005701 TST R1 ; TEMP 4118
000540 001026 BNE 17$
000542 005266 000026 INC 26(SP) ; PRM.PTR 4120
000546 016600 000026 MOV 26(SP),R0 ; PRM.PTR,*
000552 116066 177777 000004 MOVB -1(R0),4(SP) ; *,$$GETB.X
000560 005266 000026 INC 26(SP) ; PRM.PTR
000564 016600 000026 MOV 26(SP),R0 ; PRM.PTR,*
000570 116066 177777 000005 MOVB -1(R0),5(SP) ; *,$$GETB.X
000576 016601 000004 MOV 4(SP),R1 ; $$GETB.X,TEMP
000602 110122 MOVB R1,(R2)+ ; TEMP,PTR 4121
000604 010100 MOV R1,R0 ; TEMP,*
000606 000300 SWAB R0
000610 110022 MOVB R0,(R2)+ ; *,PTR
000612 105022 CLRB (R2)+ ; PTR 4122
000614 000415 BR 18$ ; 4118
000616 005000 17$: CLR R0 ; ADDR 4127
000620 105022 CLRB (R2)+ ; PTR 4128
000622 005003 CLR R3
000624 000303 SWAB R3
000626 110322 MOVB R3,(R2)+ ; *,PTR
000630 110122 MOVB R1,(R2)+ ; TEMP,PTR 4129
000632 010116 MOV R1,(SP) ; TEMP,* 4130
000634 016646 000026 MOV 26(SP),-(SP) ; PRM.PTR,*
000640 010246 MOV R2,-(SP) ; PTR,*
000642 004767 000000G JSR PC,BL$MOV
000646 022626 CMP (SP)+,(SP)+ ; 4124
000650 011502 18$: MOV (R5),R2 ; *,PTR 4133
000652 012701 000011 MOV #11,R1 ; *,TEMP 4134
000656 005046 CLR -(SP) ; 4141
000660 005046 CLR -(SP)
000662 005046 CLR -(SP)
000664 012746 000002 MOV #2,-(SP)
000670 010146 MOV R1,-(SP) ; TEMP,*
000672 010246 MOV R2,-(SP) ; PTR,*
000674 005046 CLR -(SP)
000676 012746 001112' MOV #IOSB,-(SP)
000702 012746 000000G MOV #EFN$NS,-(SP)
000706 012746 000000G MOV #LUN$NS,-(SP)
000712 012746 016670 MOV #16670,-(SP)
000716 012746 006003 MOV #6003,-(SP)
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 139
X00.89 SET_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (38)
000722 104377 EMT 377
000724 000401 BR 20$
000726 005015 19$: CLR (R5) ; 4143
000730 022626 20$: CMP (SP)+,(SP)+
000732 012700 000001 MOV #1,R0 ; 4043
000736 000401 BR 22$
000740 005000 21$: CLR R0 ; 4012
000742 005726 22$: TST (SP)+
000744 000207 RTS PC
; Routine Size: 243 words, Routine Base: $CODE$ + 11306
; Maximum stack depth per invocation: 23 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 140
X00.89 SET_FILTER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (39)
; 4149 %routine ('SET_FILTER', FDB_QE, TYPE, BUF_PTR) =
; 4150
; 4151 !++
; 4152 ! FUNCTIONAL DESCRIPTION:
; 4153 !
; 4154 !
; 4155 ! FORMAL PARAMETERS
; 4156 !
; 4157 ! NONE.
; 4158 !
; 4159 ! IMPLICIT INPUTS
; 4160 !
; 4161 ! NONE.
; 4162 !
; 4163 ! ROUTINE VALUE:
; 4164 !
; 4165 ! NONE.
; 4166 !
; 4167 ! SIDE EFFECTS:
; 4168 !
; 4169 ! NONE.
; 4170 !
; 4171 !--
; 4172
; 4173 begin
; 4174
; 4175 TASK_INFO ('INTERNAL ERROR: SET_FILTER routine not coded');
; 4176
; 4177 return $FALSE;
; 4178 end; ! End of SET_FILTER
.SBTTL SET.FILTER SET_FILTER
000000 005000 SET.FILTER:
CLR R0 ; 4173
000002 000207 RTS PC ; 4149
; Routine Size: 2 words, Routine Base: $CODE$ + 12254
; Maximum stack depth per invocation: 0 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 141
X00.89 SET_IMAGE_FIELD 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (40)
; 4179 %routine ('SET_IMAGE_FIELD', ADDR, PTR) =
; 4180
; 4181 !++
; 4182 ! FUNCTIONAL DESCRIPTION:
; 4183 !
; 4184 ! Sets an image field in the parameter data base.
; 4185 !
; 4186 ! FORMAL PARAMETERS
; 4187 !
; 4188 ! ADDR - The address within the parameter data base vector which
; 4189 ! contains the address of the dynamically allocated storage
; 4190 ! which contains the image string. If zero a block will be
; 4191 ! allocated.
; 4192 !
; 4193 ! PTR - A pointer to the image field to be set in the data base.
; 4194 !
; 4195 ! IMPLICIT INPUTS
; 4196 !
; 4197 ! NONE.
; 4198 !
; 4199 ! ROUTINE VALUE:
; 4200 !
; 4201 ! NONE.
; 4202 !
; 4203 ! SIDE EFFECTS:
; 4204 !
; 4205 ! NONE.
; 4206 !
; 4207 !--
; 4208
; 4209 begin
; 4210
; 4211 local
; 4212 XLEN,
; 4213 TLEN;
; 4214
; 4215 TLEN = ch$rchar(.PTR) + 1;
; 4216
; 4217 if ..ADDR eql 0
; 4218 then .ADDR = NMU$MEMORY_GET ((ch$allocation (.TLEN,8) * %upval))
; 4219 else if .TLEN neq (XLEN = ch$rchar (ch$ptr (..ADDR,,8)) + 1)
; 4220 then begin
; 4221 NMU$MEMORY_RELEASE (..ADDR, (ch$allocation (.XLEN,8) * %upval));
; 4222 .ADDR = NMU$MEMORY_GET ((ch$allocation (.TLEN,8) * %upval));
; 4223 end;
; 4224
; 4225 if ..ADDR eql 0
; 4226 then return $FALSE;
; 4227
; 4228 ch$move (.TLEN, .PTR, ch$ptr (..ADDR,,8));
; 4229
; 4230 return $TRUE;
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 142
X00.89 SET_IMAGE_FIELD 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (40)
; 4231 end; ! End of SET_IMAGE_FIELD
.SBTTL SET.IMAGE.FIELD SET_IMAGE_FIELD
000000 004167 000000G SET.IMAGE.FIELD:
JSR R1,$SAVE3 ; 4179
000004 005002 CLR R2 ; TLEN 4215
000006 157602 000012 BISB @12(SP),R2 ; PTR,TLEN
000012 005202 INC R2 ; TLEN
000014 016603 000014 MOV 14(SP),R3 ; ADDR,* 4217
000020 011300 MOV (R3),R0
000022 001015 BNE 1$
000024 010200 MOV R2,R0 ; TLEN,* 4218
000026 005200 INC R0
000030 010001 MOV R0,R1
000032 006700 SXT R0
000034 071027 000002 DIV #2,R0
000040 010046 MOV R0,-(SP)
000042 006316 ASL (SP)
000044 004767 000000G JSR PC,UM.GET
000050 010013 MOV R0,(R3)
000052 005726 TST (SP)+
000054 000434 BR 2$ ; 4217
000056 005000 1$: CLR R0 ; XLEN 4219
000060 157300 000000 BISB @0(R3),R0 ; *,XLEN
000064 005200 INC R0 ; XLEN
000066 020200 CMP R2,R0 ; TLEN,XLEN
000070 001426 BEQ 2$
000072 011346 MOV (R3),-(SP) ; 4221
000074 005200 INC R0 ; XLEN
000076 010001 MOV R0,R1
000100 006700 SXT R0
000102 071027 000002 DIV #2,R0
000106 010046 MOV R0,-(SP)
000110 006316 ASL (SP)
000112 004767 000000G JSR PC,UM.RELEASE
000116 010200 MOV R2,R0 ; TLEN,* 4222
000120 005200 INC R0
000122 010001 MOV R0,R1
000124 006700 SXT R0
000126 071027 000002 DIV #2,R0
000132 010016 MOV R0,(SP)
000134 006316 ASL (SP)
000136 004767 000000G JSR PC,UM.GET
000142 010013 MOV R0,(R3)
000144 022626 CMP (SP)+,(SP)+ ; 4220
000146 005713 2$: TST (R3) ; 4225
000150 001413 BEQ 3$ ; 4226
000152 010246 MOV R2,-(SP) ; TLEN,* 4228
000154 016646 000014 MOV 14(SP),-(SP) ; PTR,*
000160 011346 MOV (R3),-(SP)
000162 004767 000000G JSR PC,BL$MOV
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 143
X00.89 SET_IMAGE_FIELD 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (40)
000166 062706 000006 ADD #6,SP ; 4179
000172 012700 000001 MOV #1,R0 ; 4209
000176 000207 RTS PC
000200 005000 3$: CLR R0 ; 4179
000202 000207 RTS PC
; Routine Size: 66 words, Routine Base: $CODE$ + 12260
; Maximum stack depth per invocation: 8 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 144
X00.89 CLEAR_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (41)
; 4232 %routine ('CLEAR_PARAMETER_DATA', ENTITY_TYPE, PVB_QE) : novalue =
; 4233
; 4234 !++
; 4235 ! FUNCTIONAL DESCRIPTION:
; 4236 !
; 4237 ! Clears the data for a parameter in the parameter vector block.
; 4238 ! The data stored is dependent on the type of data for the
; 4239 ! parameter. For coded and binary value parameters the data is
; 4240 ! cleared to zero. For image fields the address of a dynamically
; 4241 ! allocated block containing the image field is used to release
; 4242 ! the storage containing the image field. The address is then set
; 4243 ! to zero.
; 4244 !
; 4245 ! FORMAL PARAMETERS
; 4246 !
; 4247 ! ENTITY_TYPE - Entity type number.
; 4248 ! PVB_QE - Address of Parameter Vector Block Queue Entry.
; 4249 !
; 4250 ! IMPLICIT INPUTS
; 4251 !
; 4252 ! NONE.
; 4253 !
; 4254 ! ROUTINE VALUE:
; 4255 !
; 4256 ! NONE.
; 4257 !
; 4258 ! SIDE EFFECTS:
; 4259 !
; 4260 ! NONE.
; 4261 !
; 4262 !--
; 4263
; 4264 begin
; 4265
; 4266 map
; 4267 PVB_QE: ref $NML$PVB_ENTRY_BLOCK;
; 4268
; 4269 local
; 4270 DATA_TYPE: block [1] field (DATA_TYPE_FIELDS);
; 4271
; 4272 DATA_TYPE = NML$GET_PDB_DATA_TYPE (.ENTITY_TYPE, .PVB_QE[PE_NUMBER]);
; 4273
; 4274 if .DATA_TYPE[DT_CODED] eql 0 ! Not coded
; 4275 then begin
; 4276 if .DATA_TYPE[DT_FTYPE] eql 0 ! Binary number
; 4277 then begin
; 4278 if .DATA_TYPE[DT_LENGTH] eql 0
; 4279 then begin ! Image binary
; 4280 bind L = ch$rchar (ch$ptr (.PVB_QE[PE_ADDRESS],,8)) + 1,
; 4281 A = ch$allocation (L,8) * %upval;
; 4282
; 4283 NMU$MEMORY_RELEASE (.PVB_QE[PE_ADDRESS], A);
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 145
X00.89 CLEAR_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (41)
; 4284 PVB_QE[PE_ADDRESS] = 0;
; 4285 end
; 4286 else begin
; 4287 if .DATA_TYPE[DT_LENGTH] leq %bpval/8
; 4288 then PVB_QE[PE_DATA] = 0
; 4289 else begin
; 4290 bind L = .DATA_TYPE[DT_LENGTH],
; 4291 A = ch$allocation (L,8) * %upval;
; 4292
; 4293 NMU$MEMORY_RELEASE (.PVB_QE[PE_ADDRESS], A);
; 4294 PVB_QE[PE_ADDRESS] = 0;
; 4295 end;
; 4296 end;
; 4297 end
; 4298 else begin ! ASCII image field
; 4299 bind L = ch$rchar (ch$ptr (.PVB_QE[PE_ADDRESS],,8)) + 1,
; 4300 A = ch$allocation (L,8) * %upval;
; 4301
; 4302 NMU$MEMORY_RELEASE (.PVB_QE[PE_ADDRESS], A);
; 4303 PVB_QE[PE_ADDRESS] = 0;
; 4304 end;
; 4305 end
; 4306 else begin ! Coded
; 4307
; C 4308 %( N.B. - Do special casing here just like in SET_PARAMETER_DATA.
; 4309 Else we gonna mess up storage allocation. )%
; 4310
; 4311 if .DATA_TYPE[DT_FTYPE] eql 0 ! Single field
; 4312 then PVB_QE[PE_DATA] = 0
; 4313 else begin ! Multiple field
; 4314 if (.ENTITY_TYPE eql NODE_E) ! Special cases for HOST
; 4315 and (.PVB_QE[PE_NUMBER] eql 141)
; 4316 then NMU$MEMORY_RELEASE (.PVB_QE[PE_ADDRESS], NODE_ID_BUFFER_ALLOCATION)
; 4317 else PVB_QE[PE_ADDRESS] = 0; ! Unknown multiple parameter
; 4318 end;
; 4319 end;
; 4320
; 4321 end; ! End of CLEAR_PARAMETER_DATA
.SBTTL CLEAR.PARAMETER.DATA CLEAR_PARAMETER_DATA
000000 004167 000000G CLEAR.PARAMETER.DATA:
JSR R1,$SAVE2 ; 4232
000004 016646 000012 MOV 12(SP),-(SP) ; ENTITY.TYPE,* 4272
000010 017646 000012 MOV @12(SP),-(SP) ; PVB.QE,*
000014 004767 000000G JSR PC,NL.PDT
000020 010001 MOV R0,R1 ; *,DATA.TYPE
000022 016600 000014 MOV 14(SP),R0 ; PVB.QE,* 4280
000026 012702 000002 MOV #2,R2
000032 060002 ADD R0,R2
000034 032701 000200 BIT #200,R1 ; *,DATA.TYPE 4274
000040 001057 BNE 4$
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 146
X00.89 CLEAR_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (41)
000042 032701 000100 BIT #100,R1 ; *,DATA.TYPE 4276
000046 001034 BNE 2$
000050 032701 000017 BIT #17,R1 ; *,DATA.TYPE 4278
000054 001012 BNE 1$
000056 005000 CLR R0 ; 4280
000060 157200 000000 BISB @0(R2),R0
000064 062700 000002 ADD #2,R0 ; 4281
000070 010001 MOV R0,R1
000072 006700 SXT R0
000074 071027 000002 DIV #2,R0
000100 000430 BR 3$
000102 010100 1$: MOV R1,R0 ; DATA.TYPE,* 4287
000104 042700 177760 BIC #177760,R0
000110 020027 000002 CMP R0,#2
000114 101452 BLOS 6$ ; 4288
000116 010100 MOV R1,R0 ; DATA.TYPE,* 4291
000120 042700 177760 BIC #177760,R0
000124 005200 INC R0
000126 010001 MOV R0,R1
000130 006700 SXT R0
000132 071027 000002 DIV #2,R0
000136 000411 BR 3$
000140 005000 2$: CLR R0 ; 4299
000142 157200 000000 BISB @0(R2),R0
000146 062700 000002 ADD #2,R0 ; 4300
000152 010001 MOV R0,R1
000154 006700 SXT R0
000156 071027 000002 DIV #2,R0
000162 006300 3$: ASL R0
000164 011216 MOV (R2),(SP) ; 4302
000166 010046 MOV R0,-(SP)
000170 004767 000000G JSR PC,UM.RELEASE
000174 005012 CLR (R2) ; 4303
000176 000417 BR 5$ ; 4298
000200 032701 000100 4$: BIT #100,R1 ; *,DATA.TYPE 4311
000204 001416 BEQ 6$ ; 4312
000206 005766 000016 TST 16(SP) ; ENTITY.TYPE 4314
000212 001013 BNE 6$
000214 027627 000014 000215 CMP @14(SP),#215 ; PVB.QE,* 4315
000222 001007 BNE 6$
000224 011216 MOV (R2),(SP) ; 4316
000226 012746 000012 MOV #12,-(SP)
000232 004767 000000G JSR PC,UM.RELEASE
000236 005726 5$: TST (SP)+
000240 000401 BR 7$ ; 4314
000242 005012 6$: CLR (R2) ; 4317
000244 022626 7$: CMP (SP)+,(SP)+ ; 4264
000246 000207 RTS PC ; 4232
; Routine Size: 84 words, Routine Base: $CODE$ + 12464
; Maximum stack depth per invocation: 7 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 147
X00.89 CLEAR_FILTER 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (42)
; 4322 %routine ('CLEAR_FILTER', FDB_QE, TYPE, PARM_NO) =
; 4323
; 4324 !++
; 4325 ! FUNCTIONAL DESCRIPTION:
; 4326 !
; 4327 !
; 4328 ! FORMAL PARAMETERS
; 4329 !
; 4330 ! NONE.
; 4331 !
; 4332 ! IMPLICIT INPUTS
; 4333 !
; 4334 ! NONE.
; 4335 !
; 4336 ! ROUTINE VALUE:
; 4337 !
; 4338 ! NONE.
; 4339 !
; 4340 ! SIDE EFFECTS:
; 4341 !
; 4342 ! NONE.
; 4343 !
; 4344 !--
; 4345
; 4346 begin
; 4347
; 4348 TASK_INFO ('INTERNAL ERROR: CLEAR_FILTER routine not coded');
; 4349
; 4350 return $FALSE;
; 4351 end; ! End of CLEAR_FILTER
.SBTTL CLEAR.FILTER CLEAR_FILTER
000000 005000 CLEAR.FILTER:
CLR R0 ; 4346
000002 000207 RTS PC ; 4322
; Routine Size: 2 words, Routine Base: $CODE$ + 12734
; Maximum stack depth per invocation: 0 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 148
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
; 4352 %routine ('READ_PARAMETER_DATA', ENTITY_TYPE, ENTRY, LENGTH, POINTER) =
; 4353
; 4354 !++
; 4355 ! FUNCTIONAL DESCRIPTION:
; 4356 !
; 4357 ! Reads the data portion of a volatile data base parameter
; 4358 ! into the parameter buffer.
; 4359 !
; 4360 ! FORMAL PARAMETERS
; 4361 !
; 4362 ! ENTITY_TYPE Entity type number.
; 4363 ! ENTRY The address of the parameter vector block entry
; 4364 ! for this parameter.
; 4365 ! LENGTH The length of the buffer remaining.
; 4366 ! POINTER The address of a character sequence pointer to the
; 4367 ! buffer.
; 4368 !
; 4369 ! IMPLICIT INPUTS
; 4370 !
; 4371 ! NONE.
; 4372 !
; 4373 ! ROUTINE VALUE:
; 4374 !
; 4375 ! The number of bytes for this parameter excluding data id
; 4376 ! and datatype bytes.
; 4377 !
; 4378 ! SIDE EFFECTS:
; 4379 !
; 4380 ! If the parameter will fit in the buffer, it is copied into
; 4381 ! the buffer.
; 4382 !
; 4383 !--
; 4384
; 4385 begin
; 4386
; 4387 macro
; M 4388 PUTN (VALUE, PTR_ADR, N) =
; M 4389 begin
; M 4390 local L, X;
; M 4391
; M 4392 X = VALUE;
; M 4393 ch$wchar_a (.X, PTR_ADR);
; M 4394 incr L from 256 to ((N - 1) * 256) by 256
; M 4395 do begin
; M 4396 X = .X / .L;
; M 4397 ch$wchar_a (.X, PTR_ADR);
; M 4398 end;
; M 4399
; M 4400 .L / 256
; 4401 end %;
; 4402
; 4403 map
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 149
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
; 4404 ENTRY: ref $NML$PVB_ENTRY_BLOCK;
; 4405
; 4406 local
; 4407 BUF_PTR,
; 4408 BUF_LEN,
; 4409 DATA_ID: block [1] field (DATA_ID_FIELDS), ! Data ID
; 4410 DATA_TYPE: block [1] field (DATA_TYPE_FIELDS);
; 4411
; 4412 BUF_PTR = ..POINTER;
; 4413 DATA_ID = 0;
; 4414 DATA_ID[DI_PARMNO] = .ENTRY[PE_NUMBER]; ! Get parameter number
; 4415 DATA_ID[DI_TYPE] = 0; ! This is a parameter
; 4416 DATA_TYPE = NML$GET_PDB_DATA_TYPE (.ENTITY_TYPE, .ENTRY[PE_NUMBER]);
; 4417
; 4418 if .DATA_TYPE[DT_CODED] eql 0 ! Not coded
; 4419 then begin
; 4420 PUTW (DATA_ID, BUF_PTR); ! Write data id into buffer
; 4421 PUTB (.DATA_TYPE, BUF_PTR); ! Write data type into buffer
; 4422 if .DATA_TYPE[DT_FTYPE] eql 0 ! Binary number
; 4423 then begin
; 4424 if .DATA_TYPE[DT_LENGTH] eql 0
; 4425 then begin ! Binary image field
; 4426 BUF_LEN = ch$rchar (ch$ptr (.ENTRY[PE_ADDRESS],,8)) + 1;
; 4427 if .LENGTH geq .BUF_LEN
; 4428 then BUF_PTR = ch$move (.BUF_LEN,
; 4429 ch$ptr (.ENTRY[PE_ADDRESS],,8),
; 4430 .BUF_PTR);
; 4431 end
; 4432 else begin
; 4433 BUF_LEN = .DATA_TYPE[DT_LENGTH];
; 4434 if .DATA_TYPE[DT_LENGTH] leq %bpval/8
; 4435 then begin ! Data stored in value
; 4436 if .LENGTH geq .BUF_LEN
; P 4437 then PUTN (.ENTRY[PE_DATA],
; P 4438 BUF_PTR,
; 4439 .DATA_TYPE[DT_LENGTH]);
; 4440 end
; 4441 else begin ! Data stored in buffer
; 4442 BUF_LEN = .DATA_TYPE[DT_LENGTH];
; 4443 if .LENGTH geq .BUF_LEN
; 4444 then BUF_PTR = ch$move (.BUF_LEN,
; 4445 ch$ptr (.ENTRY[PE_ADDRESS],,8),
; 4446 .BUF_PTR);
; 4447 end;
; 4448 end;
; 4449 end
; 4450 else begin ! ASCII image field
; 4451 BUF_LEN = ch$rchar (ch$ptr (.ENTRY[PE_ADDRESS],,8)) + 1;
; 4452 if .LENGTH geq .BUF_LEN
; 4453 then BUF_PTR = ch$move (.BUF_LEN,
; 4454 ch$ptr (.ENTRY[PE_ADDRESS],,8),
; 4455 .BUF_PTR);
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 150
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
; 4456 end;
; 4457 end
; 4458 else begin ! Coded
; 4459
; C 4460 %( N.B. - We have to do special casing here for multiple coded
; 4461 fields. )%
; 4462
; 4463 if .DATA_TYPE[DT_FTYPE] eql 0 ! Single field
; 4464 then begin
; 4465 PUTW (DATA_ID, BUF_PTR); ! Write data id into buffer
; 4466 PUTB (.DATA_TYPE, BUF_PTR); ! Write data type into buffer
; 4467 BUF_LEN = .DATA_TYPE[DT_NUMBER];
; 4468 if .LENGTH geq .BUF_LEN
; 4469 then PUTN (.ENTRY[PE_DATA], BUF_PTR, .DATA_TYPE[DT_NUMBER]);
; 4470 end
; 4471 else begin ! Multiple field
; 4472 literal
; 4473 DATA_NODE_ID = 1,
; 4474 DATA_VERSION = 2,
; 4475 DATA_EVENTS = 3;
; 4476
; 4477 selectone
; 4478 begin
; 4479 selectone .ENTITY_TYPE of
; 4480 set
; 4481 [NODE_E]:
; 4482 selectone .ENTRY[PE_NUMBER] of
; 4483 set
; 4484 [141]: ! HOST
; 4485 begin
; 4486 DATA_ID = .DATA_ID - 1; ! Read # 140
; 4487 DATA_NODE_ID
; 4488 end;
; 4489 [101]: ! MANAGEMENT VERSION
; 4490 DATA_VERSION;
; 4491 [otherwise]:
; 4492 0;
; 4493 tes;
; 4494
; 4495 [LOGGING_]:
; 4496 selectone .ENTRY[PE_NUMBER] of
; 4497 set
; 4498 [200]: ! SINK NODE
; 4499 DATA_NODE_ID;
; 4500 [201]: ! EVENTS
; 4501 DATA_EVENTS;
; 4502 [otherwise]:
; 4503 0;
; 4504 tes;
; 4505
; L 4506 %if $X25
; U 4507 %then
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 151
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
; U 4508
; U 4509 [MODULE_]:
; U 4510 selectone .ENTRY[PE_NUMBER] of
; U 4511 set
; U 4512 [320]: ! NODE
; U 4513 DATA_NODE_ID;
; U 4514 [otherwise]:
; U 4515 0;
; U 4516 tes;
; U 4517
; 4518 %fi
; 4519
; 4520 [otherwise]:
; 4521 0;
; 4522 tes
; 4523 end of
; 4524 set
; 4525 [DATA_NODE_ID] : ! Node identification
; 4526 begin
; 4527 local PTR;
; 4528
; 4529 PTR = ch$ptr (.ENTRY[PE_ADDRESS],,8);
; 4530 PUTW (DATA_ID, BUF_PTR); ! Write data id
; 4531 PUTB (.DATA_TYPE, BUF_PTR); ! Write data type
; 4532
; 4533 BUF_LEN = 6 + 5; ! Assume node name of 6 chars
; 4534 if .LENGTH geq .BUF_LEN
; 4535 then
; 4536 begin
; 4537 !
; 4538 ! Node address
; 4539 !
; 4540
; 4541 begin
; 4542 literal DATA_TYPE = 0^7 + 0^6 + 0^4 + 2;
; 4543 local NODE_ADDRESS;
; 4544
; 4545 NODE_ADDRESS = GETW (PTR);
; 4546 PUTB (DATA_TYPE, BUF_PTR); ! Write Data Type
; 4547 PUTW (NODE_ADDRESS, BUF_PTR); ! Write address
; 4548 end;
; 4549
; 4550 !
; 4551 ! Node name
; 4552 !
; 4553
; 4554 begin
; 4555 literal DATA_TYPE = 0^7 + 1^6;
; 4556 local NODE_NAME_LENGTH;
; 4557
; 4558 PUTB (DATA_TYPE, BUF_PTR); ! Write Data Type
; 4559 NODE_NAME_LENGTH = GETB (PTR); ! Get I-length
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 152
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
; 4560 PUTB (.NODE_NAME_LENGTH, BUF_PTR);
; 4561 BUF_PTR = ch$move (.NODE_NAME_LENGTH,
; 4562 .PTR,
; 4563 .BUF_PTR);
; 4564 BUF_LEN = .NODE_NAME_LENGTH + 5; ! Real length
; 4565 end;
; 4566 end;
; 4567 end;
; 4568
; 4569 [DATA_VERSION] : ! Version number
; 4570 begin
; 4571 external ! Version numbers defined in NMUSKD
; 4572 NMLVER, ! Major version
; 4573 DECECO, ! Minor version
; 4574 USRECO; ! Customer version
; 4575
; 4576 PUTW (DATA_ID, BUF_PTR); ! Write data id
; 4577 PUTB (.DATA_TYPE, BUF_PTR); ! Write data type
; 4578 BUF_LEN = 6; ! Six bytes to write excluding
; 4579 ! data id and data type bytes
; 4580
; 4581 if .LENGTH geq .BUF_LEN
; 4582 then
; 4583 begin
; 4584 literal DATA_TYPE = 0^7 + 0^6 + 0^4 + 1;
; 4585
; 4586 PUTB (DATA_TYPE, BUF_PTR); ! Write Data Type
; 4587 PUTB (.NMLVER, BUF_PTR); ! Write version byte
; 4588 PUTB (DATA_TYPE, BUF_PTR); ! Write Data Type
; 4589 PUTB (.DECECO, BUF_PTR); ! Write version byte
; 4590 PUTB (DATA_TYPE, BUF_PTR); ! Write Data Type
; 4591 PUTB (.USRECO, BUF_PTR); ! Write version byte
; 4592 end;
; 4593
; 4594 end;
; 4595
; 4596 [otherwise] :
; 4597 BUF_LEN = 0; ! Unknown multiple parameter
; 4598 tes;
; 4599 end;
; 4600 end;
; 4601
; 4602 .POINTER = .BUF_PTR;
; 4603
; 4604 return .BUF_LEN; ! Return number of bytes written
; 4605 end; ! End of READ_PARAMETER_DATA
.GLOBL DECECO, USRECO
.SBTTL READ.PARAMETER.DATA READ_PARAMETER_DATA
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 153
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
000000 004167 000000G READ.PARAMETER.DATA:
JSR R1,$SAVE5 ; 4352
000004 005746 TST -(SP)
000006 017646 000020 MOV @20(SP),-(SP) ; POINTER,BUF.PTR 4412
000012 005002 CLR R2 ; DATA.ID 4413
000014 016605 000026 MOV 26(SP),R5 ; ENTRY,* 4414
000020 011500 MOV (R5),R0
000022 042700 170000 BIC #170000,R0
000026 042702 007777 BIC #7777,R2 ; *,DATA.ID
000032 050002 BIS R0,R2 ; *,DATA.ID
000034 042702 100000 BIC #100000,R2 ; *,DATA.ID 4415
000040 016603 000030 MOV 30(SP),R3 ; ENTITY.TYPE,* 4416
000044 010346 MOV R3,-(SP)
000046 011546 MOV (R5),-(SP)
000050 004767 000000G JSR PC,NL.PDT
000054 010001 MOV R0,R1 ; *,DATA.TYPE
000056 032701 000200 BIT #200,R1 ; *,DATA.TYPE 4418
000062 001134 BNE 7$
000064 110276 000004 MOVB R2,@4(SP) ; DATA.ID,BUF.PTR 4420
000070 005266 000004 INC 4(SP) ; BUF.PTR
000074 010200 MOV R2,R0 ; DATA.ID,*
000076 000300 SWAB R0
000100 110076 000004 MOVB R0,@4(SP) ; *,BUF.PTR
000104 005266 000004 INC 4(SP) ; BUF.PTR
000110 110176 000004 MOVB R1,@4(SP) ; DATA.TYPE,BUF.PTR 4421
000114 005266 000004 INC 4(SP) ; BUF.PTR
000120 016600 000030 MOV 30(SP),R0 ; LENGTH,* 4427
000124 032701 000100 BIT #100,R1 ; *,DATA.TYPE 4422
000130 001070 BNE 5$
000132 032701 000017 BIT #17,R1 ; *,DATA.TYPE 4424
000136 001007 BNE 1$
000140 005003 CLR R3 ; BUF.LEN 4426
000142 157503 000002 BISB @2(R5),R3 ; *,BUF.LEN
000146 005203 INC R3 ; BUF.LEN
000150 020003 CMP R0,R3 ; *,BUF.LEN 4427
000152 002563 BLT 10$
000154 000464 BR 6$ ; 4430
000156 010103 1$: MOV R1,R3 ; DATA.TYPE,BUF.LEN 4433
000160 042703 177760 BIC #177760,R3 ; *,BUF.LEN
000164 010102 MOV R1,R2 ; DATA.TYPE,* 4434
000166 042702 177760 BIC #177760,R2
000172 020227 000002 CMP R2,#2
000176 101037 BHI 4$
000200 020003 CMP R0,R3 ; *,BUF.LEN 4436
000202 002547 BLT 10$
000204 016504 000002 MOV 2(R5),R4 ; *,X 4439
000210 110476 000004 MOVB R4,@4(SP) ; X,BUF.PTR
000214 005266 000004 INC 4(SP) ; BUF.PTR
000220 010100 MOV R1,R0 ; DATA.TYPE,*
000222 042700 177760 BIC #177760,R0
000226 072027 000010 ASH #10,R0
000232 010005 MOV R0,R5
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 154
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
000234 162705 000400 SUB #400,R5
000240 005002 CLR R2 ; L
000242 000410 BR 3$
000244 010401 2$: MOV R4,R1 ; X,*
000246 006700 SXT R0
000250 071002 DIV R2,R0 ; L,*
000252 010004 MOV R0,R4 ; *,X
000254 110476 000004 MOVB R4,@4(SP) ; X,BUF.PTR
000260 005266 000004 INC 4(SP) ; BUF.PTR
000264 062702 000400 3$: ADD #400,R2 ; *,L
000270 020205 CMP R2,R5 ; L,*
000272 003764 BLE 2$
000274 000512 BR 10$ ; 4434
000276 010103 4$: MOV R1,R3 ; DATA.TYPE,BUF.LEN 4442
000300 042703 177760 BIC #177760,R3 ; *,BUF.LEN
000304 020003 CMP R0,R3 ; *,BUF.LEN 4443
000306 002572 BLT 18$
000310 000406 BR 6$ ; 4446
000312 005003 5$: CLR R3 ; BUF.LEN 4451
000314 157503 000002 BISB @2(R5),R3 ; *,BUF.LEN
000320 005203 INC R3 ; BUF.LEN
000322 020003 CMP R0,R3 ; *,BUF.LEN 4452
000324 002563 BLT 18$
000326 010316 6$: MOV R3,(SP) ; BUF.LEN,* 4455
000330 016546 000002 MOV 2(R5),-(SP)
000334 016646 000006 MOV 6(SP),-(SP) ; BUF.PTR,*
000340 004767 000000G JSR PC,BL$MOV
000344 010066 000010 MOV R0,10(SP) ; *,BUF.PTR 4453
000350 000167 000450 JMP 19$
000354 032701 000100 7$: BIT #100,R1 ; *,DATA.TYPE 4463
000360 001061 BNE 11$
000362 110276 000004 MOVB R2,@4(SP) ; DATA.ID,BUF.PTR 4465
000366 005266 000004 INC 4(SP) ; BUF.PTR
000372 010200 MOV R2,R0 ; DATA.ID,*
000374 000300 SWAB R0
000376 110076 000004 MOVB R0,@4(SP) ; *,BUF.PTR
000402 005266 000004 INC 4(SP) ; BUF.PTR
000406 110176 000004 MOVB R1,@4(SP) ; DATA.TYPE,BUF.PTR 4466
000412 005266 000004 INC 4(SP) ; BUF.PTR
000416 010103 MOV R1,R3 ; DATA.TYPE,BUF.LEN 4467
000420 042703 177700 BIC #177700,R3 ; *,BUF.LEN
000424 026603 000030 CMP 30(SP),R3 ; LENGTH,BUF.LEN 4468
000430 002576 BLT 20$
000432 016504 000002 MOV 2(R5),R4 ; *,X 4469
000436 110476 000004 MOVB R4,@4(SP) ; X,BUF.PTR
000442 005266 000004 INC 4(SP) ; BUF.PTR
000446 010100 MOV R1,R0 ; DATA.TYPE,*
000450 042700 177700 BIC #177700,R0
000454 072027 000010 ASH #10,R0
000460 010005 MOV R0,R5
000462 162705 000400 SUB #400,R5
000466 005002 CLR R2 ; L
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 155
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
000470 000410 BR 9$
000472 010401 8$: MOV R4,R1 ; X,*
000474 006700 SXT R0
000476 071002 DIV R2,R0 ; L,*
000500 010004 MOV R0,R4 ; *,X
000502 110476 000004 MOVB R4,@4(SP) ; X,BUF.PTR
000506 005266 000004 INC 4(SP) ; BUF.PTR
000512 062702 000400 9$: ADD #400,R2 ; *,L
000516 020205 CMP R2,R5 ; L,*
000520 003764 BLE 8$
000522 000541 10$: BR 20$ ; 4463
000524 005703 11$: TST R3 ; 4479
000526 001013 BNE 13$
000530 021527 000215 CMP (R5),#215 ; 4482
000534 001002 BNE 12$
000536 005302 DEC R2 ; DATA.ID 4486
000540 000414 BR 14$ ; 4482
000542 021527 000145 12$: CMP (R5),#145
000546 001022 BNE 16$
000550 012700 000002 MOV #2,R0
000554 000420 BR 17$
000556 020327 000002 13$: CMP R3,#2 ; 4479
000562 001014 BNE 16$
000564 021527 000310 CMP (R5),#310 ; 4496
000570 001003 BNE 15$
000572 012700 000001 14$: MOV #1,R0
000576 000407 BR 17$
000600 021527 000311 15$: CMP (R5),#311
000604 001003 BNE 16$
000606 012700 000003 MOV #3,R0
000612 000401 BR 17$
000614 005000 16$: CLR R0 ; 4478
000616 020027 000001 17$: CMP R0,#1 ; 4477
000622 001102 BNE 21$
000624 016505 000002 MOV 2(R5),R5 ; *,PTR 4529
000630 110276 000004 MOVB R2,@4(SP) ; DATA.ID,BUF.PTR 4530
000634 005266 000004 INC 4(SP) ; BUF.PTR
000640 010200 MOV R2,R0 ; DATA.ID,*
000642 000300 SWAB R0
000644 110076 000004 MOVB R0,@4(SP) ; *,BUF.PTR
000650 005266 000004 INC 4(SP) ; BUF.PTR
000654 110176 000004 MOVB R1,@4(SP) ; DATA.TYPE,BUF.PTR 4531
000660 005266 000004 INC 4(SP) ; BUF.PTR
000664 012703 000013 MOV #13,R3 ; *,BUF.LEN 4533
000670 026603 000030 CMP 30(SP),R3 ; LENGTH,BUF.LEN 4534
000674 002543 18$: BLT 23$
000676 112566 000006 MOVB (R5)+,6(SP) ; PTR,$$GETB.X 4545
000702 112566 000007 MOVB (R5)+,7(SP) ; PTR,$$GETB.X
000706 016600 000006 MOV 6(SP),R0 ; $$GETB.X,NODE.ADDRESS
000712 112776 000002 000004 MOVB #2,@4(SP) ; *,BUF.PTR 4546
000720 005266 000004 INC 4(SP) ; BUF.PTR
000724 110076 000004 MOVB R0,@4(SP) ; NODE.ADDRESS,BUF.PTR 4547
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 156
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
000730 005266 000004 INC 4(SP) ; BUF.PTR
000734 010001 MOV R0,R1 ; NODE.ADDRESS,*
000736 000301 SWAB R1
000740 110176 000004 MOVB R1,@4(SP) ; *,BUF.PTR
000744 005266 000004 INC 4(SP) ; BUF.PTR
000750 112776 000100 000004 MOVB #100,@4(SP) ; *,BUF.PTR 4558
000756 005266 000004 INC 4(SP) ; BUF.PTR
000762 005001 CLR R1 ; NODE.NAME.LENGT 4559
000764 152501 BISB (R5)+,R1 ; PTR,NODE.NAME.LENGT
000766 110176 000004 MOVB R1,@4(SP) ; NODE.NAME.LENGT,BUF.PTR 4560
000772 005266 000004 INC 4(SP) ; BUF.PTR
000776 010116 MOV R1,(SP) ; NODE.NAME.LENGT,* 4563
001000 010546 MOV R5,-(SP) ; PTR,*
001002 016646 000006 MOV 6(SP),-(SP) ; BUF.PTR,*
001006 004767 000000G JSR PC,BL$MOV
001012 010066 000010 MOV R0,10(SP) ; *,BUF.PTR 4561
001016 010103 MOV R1,R3 ; NODE.NAME.LENGT,BUF.LEN 4564
001020 062703 000005 ADD #5,R3 ; *,BUF.LEN
001024 022626 19$: CMP (SP)+,(SP)+ ; 4536
001026 000466 20$: BR 23$ ; 4477
001030 020027 000002 21$: CMP R0,#2
001034 001062 BNE 22$
001036 110276 000004 MOVB R2,@4(SP) ; DATA.ID,BUF.PTR 4576
001042 005266 000004 INC 4(SP) ; BUF.PTR
001046 010200 MOV R2,R0 ; DATA.ID,*
001050 000300 SWAB R0
001052 110076 000004 MOVB R0,@4(SP) ; *,BUF.PTR
001056 005266 000004 INC 4(SP) ; BUF.PTR
001062 110176 000004 MOVB R1,@4(SP) ; DATA.TYPE,BUF.PTR 4577
001066 005266 000004 INC 4(SP) ; BUF.PTR
001072 012703 000006 MOV #6,R3 ; *,BUF.LEN 4578
001076 026603 000030 CMP 30(SP),R3 ; LENGTH,BUF.LEN 4581
001102 002440 BLT 23$
001104 112776 000001 000004 MOVB #1,@4(SP) ; *,BUF.PTR 4586
001112 005266 000004 INC 4(SP) ; BUF.PTR
001116 116776 000000G 000004 MOVB NMLVER,@4(SP) ; *,BUF.PTR 4587
001124 005266 000004 INC 4(SP) ; BUF.PTR
001130 112776 000001 000004 MOVB #1,@4(SP) ; *,BUF.PTR 4588
001136 005266 000004 INC 4(SP) ; BUF.PTR
001142 116776 000000G 000004 MOVB DECECO,@4(SP) ; *,BUF.PTR 4589
001150 005266 000004 INC 4(SP) ; BUF.PTR
001154 112776 000001 000004 MOVB #1,@4(SP) ; *,BUF.PTR 4590
001162 005266 000004 INC 4(SP) ; BUF.PTR
001166 116776 000000G 000004 MOVB USRECO,@4(SP) ; *,BUF.PTR 4591
001174 005266 000004 INC 4(SP) ; BUF.PTR
001200 000401 BR 23$ ; 4477
001202 005003 22$: CLR R3 ; BUF.LEN 4597
001204 016676 000004 000026 23$: MOV 4(SP),@26(SP) ; BUF.PTR,POINTER 4602
001212 010300 MOV R3,R0 ; BUF.LEN,* 4385
001214 062706 000010 ADD #10,SP ; 4352
001220 000207 RTS PC
; Routine Size: 329 words, Routine Base: $CODE$ + 12740
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 157
X00.89 READ_PARAMETER_DATA 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (43)
; Maximum stack depth per invocation: 13 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 158
X00.89 LOGGING_ID_MATCH 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (44)
; 4606 %routine ('LOGGING_ID_MATCH', EDB_QE, EID_PTR) =
; 4607
; 4608 !++
; 4609 ! FUNCTIONAL DESCRIPTION:
; 4610 !
; 4611 ! Makes determination as to whether a particular ENTITY_DB_BLOCK
; 4612 ! for the LOGGING entity is the one being searched for when called
; 4613 ! by NMU$QUEUE_SCAN as an exit routine.
; 4614 !
; 4615 ! FORMAL PARAMETERS
; 4616 !
; 4617 ! EDB_QE - Address of the LOGGING entity data base block to be tested.
; 4618 ! EID_PTR - Pointer to the entity id being searched for.
; 4619 !
; 4620 ! IMPLICIT INPUTS
; 4621 !
; 4622 ! NONE.
; 4623 !
; 4624 ! ROUTINE VALUE:
; 4625 !
; 4626 ! Address of LOGGING entity data base block if it matches the entity id;
; 4627 ! Zero (0), otherwise.
; 4628 !
; 4629 ! SIDE EFFECTS:
; 4630 !
; 4631 ! NONE.
; 4632 !
; 4633 !--
; 4634
; 4635 begin
; 4636
; 4637 map
; 4638 EDB_QE: ref ENTITY_DB_BLOCK;
; 4639
; 4640 if ch$rchar (ch$ptr (EDB_QE [EDB_ENTITY_ID],, 8)) eql ch$rchar (.EID_PTR)
; 4641 then return .EDB_QE
; 4642 else return 0;
; 4643
; 4644 end; ! End of NODE_ID_MATCH
.SBTTL LOGGING.ID.MATCH LOGGING_ID_MATCH
000000 016600 000004 LOGGING.ID.MATCH:
MOV 4(SP),R0 ; EDB.QE,* 4640
000004 126076 000006 000002 CMPB 6(R0),@2(SP) ; *,EID.PTR
000012 001401 BEQ 1$
000014 005000 CLR R0
000016 000207 1$: RTS PC ; 4606
; Routine Size: 8 words, Routine Base: $CODE$ + 14162
; Maximum stack depth per invocation: 0 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 159
X00.89 NODE_ID_MATCH 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (45)
; 4645 %routine ('NODE_ID_MATCH', EDB_QE, EID_PTR) =
; 4646
; 4647 !++
; 4648 ! FUNCTIONAL DESCRIPTION:
; 4649 !
; 4650 ! Makes determination as to whether a particular ENTITY_DB_BLOCK
; 4651 ! for the NODE entity is the one being searched for when called
; 4652 ! by NMU$QUEUE_SCAN as an exit routine.
; 4653 !
; 4654 ! FORMAL PARAMETERS
; 4655 !
; 4656 ! EDB_QE - Address of the NODE entity data base block to be tested.
; 4657 ! EID_PTR - Pointer to the entity id being searched for.
; 4658 !
; 4659 ! IMPLICIT INPUTS
; 4660 !
; 4661 ! NONE.
; 4662 !
; 4663 ! ROUTINE VALUE:
; 4664 !
; 4665 ! Address of NODE entity data base block if it matches the entity id;
; 4666 ! Zero (0), otherwise.
; 4667 !
; 4668 ! SIDE EFFECTS:
; 4669 !
; 4670 ! NONE.
; 4671 !
; 4672 !--
; 4673
; 4674 begin
; 4675
; 4676 map
; 4677 EDB_QE: ref ENTITY_DB_BLOCK;
; 4678
; 4679 local
; 4680 PTR;
; 4681
; 4682 PTR = ch$ptr (EDB_QE[NDB_ENTITY_ID],,8);
; 4683
; 4684 if GETW (PTR) eql GETW (EID_PTR)
; 4685 then return .EDB_QE
; 4686 else return 0;
; 4687
; 4688 end; ! End of NODE_ID_MATCH
.SBTTL NODE.ID.MATCH NODE_ID_MATCH
000000 010146 NODE.ID.MATCH:
MOV R1,-(SP) ; 4645
000002 016600 000006 MOV 6(SP),R0 ; EDB.QE,PTR 4682
000006 062700 000006 ADD #6,R0 ; *,PTR 4684
000012 112046 MOVB (R0)+,-(SP) ; PTR,$$GETB.X
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 160
X00.89 NODE_ID_MATCH 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (45)
000014 112066 000001 MOVB (R0)+,1(SP) ; PTR,$$GETB.X
000020 011601 MOV (SP),R1 ; $$GETB.X,*
000022 005266 000006 INC 6(SP) ; EID.PTR
000026 016600 000006 MOV 6(SP),R0 ; EID.PTR,*
000032 116016 177777 MOVB -1(R0),(SP) ; *,$$GETB.X
000036 005266 000006 INC 6(SP) ; EID.PTR
000042 016600 000006 MOV 6(SP),R0 ; EID.PTR,*
000046 116066 177777 000001 MOVB -1(R0),1(SP) ; *,$$GETB.X
000054 011600 MOV (SP),R0 ; $$GETB.X,*
000056 020100 CMP R1,R0
000060 001003 BNE 1$
000062 016600 000010 MOV 10(SP),R0 ; EDB.QE,*
000066 000401 BR 2$
000070 005000 1$: CLR R0
000072 005726 2$: TST (SP)+ ; 4645
000074 012601 MOV (SP)+,R1
000076 000207 RTS PC
; Routine Size: 32 words, Routine Base: $CODE$ + 14202
; Maximum stack depth per invocation: 3 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 161
X00.89 NON_NODE_ID_MATCH 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (46)
; 4689 %routine ('NON_NODE_ID_MATCH', EDB_QE, EID_PTR) =
; 4690
; 4691 !++
; 4692 ! FUNCTIONAL DESCRIPTION:
; 4693 !
; 4694 ! Makes determination as to whether a particular ENTITY_DB_BLOCK
; 4695 ! is the one being searched for when called by NMU$QUEUE_SCAN
; 4696 ! as an exit routine.
; 4697 !
; 4698 ! FORMAL PARAMETERS
; 4699 !
; 4700 ! EDB_QE - Address of the entity data base block to be tested.
; 4701 ! EID_PTR - Pointer to the entity id being searched for.
; 4702 !
; 4703 ! IMPLICIT INPUTS
; 4704 !
; 4705 ! NONE.
; 4706 !
; 4707 ! ROUTINE VALUE:
; 4708 !
; 4709 ! Address of entity data base entry if it matches the entity id;
; 4710 ! Zero (0), otherwise.
; 4711 !
; 4712 ! SIDE EFFECTS:
; 4713 !
; 4714 ! NONE.
; 4715 !
; 4716 !--
; 4717
; 4718 begin
; 4719
; 4720 map
; 4721 EDB_QE: ref ENTITY_DB_BLOCK;
; 4722
; 4723 return MATCH_ID (.EDB_QE, ch$ptr (EDB_QE[EDB_ENTITY_ID],,8), .EID_PTR);
; 4724 end; ! End of NON_NODE_ID_MATCH
.SBTTL NON.NODE.ID.MATCH NON_NODE_ID_MATCH
000000 016646 000004 NON.NODE.ID.MATCH:
MOV 4(SP),-(SP) ; EDB.QE,* 4723
000004 011646 MOV (SP),-(SP) ; EDB.QE,*
000006 062716 000006 ADD #6,(SP)
000012 016646 000006 MOV 6(SP),-(SP) ; EID.PTR,*
000016 004767 000000V JSR PC,MATCH.ID
000022 062706 000006 ADD #6,SP ; 4689
000026 000207 RTS PC
; Routine Size: 12 words, Routine Base: $CODE$ + 14302
; Maximum stack depth per invocation: 4 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 162
X00.89 SVC_CKT_MATCH 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (47)
; 4725 %routine ('SVC_CKT_MATCH', NDB_QE, CKT_ID_PTR) =
; 4726
; 4727 !++
; 4728 ! FUNCTIONAL DESCRIPTION:
; 4729 !
; 4730 ! Makes determination as to whether a particular NODE_DB_BLOCK
; 4731 ! contains the circuit id, passed as an argument, as the
; 4732 ! SERVICE CIRCUIT parameter by NMU$QUEUE_SCAN as an exit routine.
; 4733 !
; 4734 ! FORMAL PARAMETERS
; 4735 !
; 4736 ! NDB_QE - Address of the NODE entity data base block to be tested.
; 4737 ! CKT_ID_PTR - Pointer to the circuit entity id being searched for.
; 4738 !
; 4739 ! IMPLICIT INPUTS
; 4740 !
; 4741 ! NONE.
; 4742 !
; 4743 ! ROUTINE VALUE:
; 4744 !
; 4745 ! Address of NODE entity data base block if its SERVICE CIRCUIT
; 4746 ! parameter matches the circuit entity id;
; 4747 ! Zero (0), otherwise.
; 4748 !
; 4749 ! SIDE EFFECTS:
; 4750 !
; 4751 ! NONE.
; 4752 !
; 4753 !--
; 4754
; 4755 begin
; 4756
; 4757 map
; 4758 NDB_QE: ref NODE_DB_BLOCK;
; 4759
; 4760 bind
; 4761 PVB = NDB_QE[EDB_PARAMETER_VECTOR] : ref $NML$PVB_ENTRY_VECTOR (0);
; 4762
; 4763 local
; 4764 ADR_AI_FIELD;
; 4765
; 4766 ADR_AI_FIELD = 0;
; 4767
; 4768 incr N from 0 to .NDB_QE[EDB_PARAMETER_COUNT] - 1
; 4769 do begin
; 4770 if .PVB[.N,PE_NUMBER] eql 110
; 4771 then begin
; 4772 ADR_AI_FIELD = .PVB[.N,PE_ADDRESS];
; 4773 exitloop; ! Found SERVICE CIRCUIT parameter
; 4774 end;
; 4775 end;
; 4776
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 163
X00.89 SVC_CKT_MATCH 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (47)
; 4777 if .ADR_AI_FIELD eql 0 ! No SERVICE CIRCUIT parameter
; 4778 then return 0
; 4779 else return MATCH_ID (.NDB_QE, ch$ptr (.ADR_AI_FIELD,,8), .CKT_ID_PTR);
; 4780
; 4781 end; ! End of SVC_CKT_MATCH
.SBTTL SVC.CKT.MATCH SVC_CKT_MATCH
000000 004167 000000G SVC.CKT.MATCH:
JSR R1,$SAVE4 ; 4725
000004 016603 000016 MOV 16(SP),R3 ; NDB.QE,* 4761
000010 005004 CLR R4 ; ADR.AI.FIELD 4766
000012 005002 CLR R2 ; N 4768
000014 000420 BR 3$
000016 010201 1$: MOV R2,R1 ; N,* 4770
000020 006301 ASL R1
000022 006301 ASL R1
000024 010100 MOV R1,R0
000026 066300 000034 ADD 34(R3),R0
000032 021027 000156 CMP (R0),#156
000036 001006 BNE 2$
000040 010100 MOV R1,R0 ; 4772
000042 066300 000034 ADD 34(R3),R0
000046 016004 000002 MOV 2(R0),R4 ; *,ADR.AI.FIELD
000052 000405 BR 4$ ; 4773
000054 005202 2$: INC R2 ; N 4768
000056 020263 000030 3$: CMP R2,30(R3) ; N,*
000062 002755 BLT 1$
000064 005704 TST R4 ; ADR.AI.FIELD 4777
000066 001002 4$: BNE 5$
000070 005000 CLR R0
000072 000207 RTS PC
000074 010346 5$: MOV R3,-(SP) ; 4779
000076 010446 MOV R4,-(SP) ; ADR.AI.FIELD,*
000100 016646 000020 MOV 20(SP),-(SP) ; CKT.ID.PTR,*
000104 004767 000000V JSR PC,MATCH.ID
000110 062706 000006 ADD #6,SP
000114 000207 RTS PC ; 4725
; Routine Size: 39 words, Routine Base: $CODE$ + 14332
; Maximum stack depth per invocation: 9 words
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 164
X00.89 MATCH_ID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (48)
; 4782 %routine ('MATCH_ID', EDB_QE, PTR1, PTR2) =
; 4783
; 4784 !++
; 4785 ! FUNCTIONAL DESCRIPTION:
; 4786 !
; 4787 ! Compares the entity id referenced by pointer 1 with the entity
; 4788 ! id referenced by pointer 2. No distinction is made between
; 4789 ! upper and lower case when comparing the strings. If the ids
; 4790 ! match, the address of the entity data block is returned.
; 4791 !
; 4792 ! FORMAL PARAMETERS
; 4793 !
; 4794 ! EDB_QE - Address of the entity data base block.
; 4795 ! PTR1 - Pointer to the first entity id.
; 4796 ! PTR2 - Pointer to the second entity id.
; 4797 !
; 4798 ! IMPLICIT INPUTS
; 4799 !
; 4800 ! NONE.
; 4801 !
; 4802 ! ROUTINE VALUE:
; 4803 !
; 4804 ! Address of entity data base entry if the strings match;
; 4805 ! Zero (0), otherwise.
; 4806 !
; 4807 ! SIDE EFFECTS:
; 4808 !
; 4809 ! NONE.
; 4810 !
; 4811 !--
; 4812
; 4813 begin
; 4814
; 4815 local
; 4816 L;
; 4817
; 4818 if (L = GETB (PTR1)) eql GETB (PTR2)
; 4819 then begin
; 4820 incr N from 1 to .L
; 4821 do begin
; 4822 if GETMB (PTR1) neq GETMB (PTR2)
; 4823 then return 0;
; 4824 end;
; 4825
; 4826 return .EDB_QE;
; 4827 end
; 4828 else return 0;
; 4829
; 4830 end; ! End of MATCH_ID
.SBTTL MATCH.ID MATCH_ID
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 165
X00.89 MATCH_ID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (48)
000000 004167 000000G MATCH.ID:
JSR R1,$SAVE3 ; 4782
000004 005266 000014 INC 14(SP) ; PTR1 4818
000010 016600 000014 MOV 14(SP),R0 ; PTR1,*
000014 005003 CLR R3 ; L
000016 156003 177777 BISB -1(R0),R3 ; *,L
000022 005266 000012 INC 12(SP) ; PTR2
000026 016600 000012 MOV 12(SP),R0 ; PTR2,*
000032 005001 CLR R1
000034 156001 177777 BISB -1(R0),R1
000040 020301 CMP R3,R1 ; L,*
000042 001051 BNE 5$
000044 005002 CLR R2 ; N 4820
000046 000441 BR 4$
000050 005266 000014 1$: INC 14(SP) ; PTR1 4822
000054 016600 000014 MOV 14(SP),R0 ; PTR1,*
000060 114000 MOVB -(R0),R0 ; *,C
000062 042700 177400 BIC #177400,R0 ; *,C
000066 020027 000141 CMP R0,#141 ; C,*
000072 002405 BLT 2$
000074 020027 000172 CMP R0,#172 ; C,*
000100 003002 BGT 2$
000102 162700 000040 SUB #40,R0 ; *,C
000106 010001 2$: MOV R0,R1 ; C,*
000110 005266 000012 INC 12(SP) ; PTR2
000114 016600 000012 MOV 12(SP),R0 ; PTR2,*
000120 114000 MOVB -(R0),R0 ; *,C
000122 042700 177400 BIC #177400,R0 ; *,C
000126 020027 000141 CMP R0,#141 ; C,*
000132 002405 BLT 3$
000134 020027 000172 CMP R0,#172 ; C,*
000140 003002 BGT 3$
000142 162700 000040 SUB #40,R0 ; *,C
000146 020100 3$: CMP R1,R0
000150 001006 BNE 5$ ; 4823
000152 005202 4$: INC R2 ; N 4820
000154 020203 CMP R2,R3 ; N,L
000156 003734 BLE 1$
000160 016600 000016 MOV 16(SP),R0 ; EDB.QE,* 4818
000164 000207 RTS PC
000166 005000 5$: CLR R0 ; 4782
000170 000207 RTS PC
; Routine Size: 61 words, Routine Base: $CODE$ + 14450
; Maximum stack depth per invocation: 5 words
; 4831 end ! End of Module NMLVDB
; 4832 eludom
; OTS external references
NMLVDB NMLVDB -- Volatile Data Base Processing 24-May-1985 13:23:24 TOPS-20 Bliss-16 2A(530) Page 166
X00.89 MATCH_ID 3-Jan-1983 03:09:26 DNET61:<MCB.NML>NMLVDB.BLI.1 (48)
.GLOBL $SAVE5, $SAVE4, $SAVE3, $SAVE2
.GLOBL BL$EQL, BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $OWN$ 295 RW , D , LCL, REL, CON
; $PLIT$ 27 RO , D , LCL, REL, CON
; $CODE$ 3281 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; DNET61:<MCB.NML>NMLLIB.L16.2 2718 195 7 0
; 4833 ! Local Modes:
; 4834 ! Mode:BLISS
; 4835 ! Auto Save Mode:2
; 4836 ! Comment Column:40
; 4837 ! Comment Rounding:+1
; 4838 ! End:
; Size: 3281 code + 322 data words
; Run Time: 00:59.1
; Elapsed Time: 01:13.0
; Memory Used: 132 pages
; Compilation Complete
A 4067# 4070 4281# 4283 4291# 4293 4300# 4302
ADDR 4125 4127# 4128 4179 4217 4218# 4219 4221 4222# 4225 4228
ADR_AI_FIELD 4764 4766# 4772# 4777 4779
APPLICABLE 707 3447 3768
B1 1043 1044
B2 1043 1045 1046
B3 1043 1047 1048
B4 1043 1049 1050
BP_ADDR 2001 2068 2082 2266 2321 2324 2327 2334 2340 2448 2460 2464
2493 2532
BUFFER 1179 1239 1263 1304 1313 1338 1387 1396 1433 1457 1487 1506
1568 1580 1595 1605
BUFFER_LENGTH 1449 1451# 1456 1460 1480 1482# 1486 1488 1562 1565# 1567 1571
BUF_LEN 1505 1507# 1520# 1527 1534 1543 1548# 1551 4408 4426# 4427 4428
4433# 4436 4442# 4443 4444 4451# 4452 4453 4467# 4468 4533# 4534
4564# 4578# 4581 4597# 4604
BUF_PTR 1505 1506# 1519# 1528 1545 1546 1547# 1551 4149 4407 4412# 4420
4421 4428# 4430 4438 4444# 4446 4453# 4455 4465 4466 4469 4530
4531 4546 4547 4558 4560 4561# 4563 4576 4577 4586 4587 4588
4589 4590 4591 4602
BYTE_0 1149#
BYTE_1 1150#
C 751 753# 754 755 756
CH$ASCII 1132
CH$ASCIZ 3284 3289 3296
CHARACTERISTICS_ 2319 2423 2459
CIRCUIT_ 1264 1266 1290 1472 1501 1560 2433 2840 3131 3221 3363 3615
CKTDB 979#
CKT_ENTITY_ID 1856 1891
CKT_ID_PTR 4725 4779
CLEAR_FILTER 719
CLEAR_PARAMETER_DATA 718 3807
CNPVB 3552 3555# 3560# 3561#
CNT 1539 1546# 1547 1548 1551 1553 2721 3558 3778 3782# 3810 3822#
CONSOLE_ 2628
COPVB 3553 3556# 3560 3562#
COPY_PARAMETER_VECTOR 706 1106 3808 3935
COUNTERS_ 2322 2415
COUNT 2160 2163# 2165 2953 2956# 2958 2989 3522 3558 3680 3683# 3685
3927 3934# 3942
CPARM_STATE 2383# 2434
C_CHAR 1036 1043# 1055#
C_STRING 1034#
DATA_ADDR 1625 1697# 1700# 1705 1710# 1715# 1721# 1722# 1735 1788
DATA_EVENTS 4475# 4501
DATA_ID 1114# 1120 4409 4413# 4414# 4415# 4420 4465 4486# 4530 4576
DATA_ID_FIELDS 4409
DATA_NODE_ID 4473# 4487 4499 4513 4525
DATA_TYPE 1689 1691# 1692 1694 1696 1699 1714 4049 4051# 4053 4055 4057
4063 4064 4066 4083 4084 4270 4272# 4274 4276 4278 4287 4290
4311 4410 4416# 4418 4421 4422 4424 4433 4434 4439 4442 4463
4466 4467 4469 4531 4542# 4546 4555# 4558 4577 4584# 4586 4588
4590
DATA_TYPE_FIELDS 1689 1717 4049 4270 4410
DATA_VERSION 4474# 4490 4569
DECECO 4573 4589
DEFAULT_IDENTIFICATION 1129# 1134 1135
DISPLAY_CHECK 2380 2411 2419 2422 2425 2435
DI_PARMNO 4414
DI_TYPE 4415
DT 1717
DT_CODED 1692 4053 4274 4418
DT_FTYPE 1694 1714 4055 4083 4276 4311 4422 4463
DT_LENGTH 1696 1699 4057 4063 4064 4066 4278 4287 4290 4424 4433 4434
4439 4442
DT_NUMBER 4084 4467 4469
EDB_ENTITY_ID 770 780 1935 1950 1991 1996 2533 3140 3460 3805 4640 4723
EDB_FIELDS 786
EDB_PARAMETER_ALLOCATION 774 784 1102 1104 1674 2390 3758 3873 3876 3878 3924 3928
3941 3995
EDB_PARAMETER_COUNT 773 783 1101 1676 1681 2392 2409 3474 3496 3512 3518 3756
3782 3811 3828 3880 3925 3934 3937 3942 3996 4001 4768
EDB_PARAMETER_VECTOR 775 785 1103 1106 1675 1679 2391 2407 3472 3490 3511 3757
3781 3874 3875 3879 3935 3940 4000 4761
EDB_QE 1659 1662# 1674 1675 1676 1679 1681 1770 1774# 1775# 1801 1834
1836# 1852 1898 1935 1950 1955 1991 1996 2044 2048# 2061 2075
2088 2129 2135 2266 2307 2320 2323 2326 2333 2340 2377 2390
2391 2392 2407 2409 2460 2464 2493 2521 2533 2801 2807# 2815#
2822 2845 2852 2859 2865# 2874 2888 2904 2938 2944 3118 3124#
3127 3135# 3140 3151 3157 3192 3198# 3203 3204 3225# 3230 3231
3399 3433 3447 3460 3472 3474 3487 3490 3496# 3508 3511 3512
3518# 3566 3602 3609 3625 3661 3668 3715 3748 3756 3757 3758
3760 3768 3781 3782 3805 3811# 3828 3829 3833 3866 3873 3874
3875 3876 3878# 3879# 3880# 3884 3922 3924 3925 3928 3934 3935
3937 3939 3940# 3941# 3942# 3947 3990 3995 3996 3997 4000 4001
4606 4638 4640 4641 4645 4677 4682 4685 4689 4721 4723 4782
4826
EDB_QLINK 769 779
EDB_QUALIFIER 2256 2258 2991
EDB_QUALIFIER_QUEUE 2135 2822 2944 3668
EID_PTR 4606 4640 4645 4684 4689 4723
ENTITY 1179 1251 1302 1310 1350 1385 1393 1411 1429 1453 1472 1484
2001 2048 2049 2064 2078 2088 2180 2204 2266 2761 2807 2809
2815 2838 2865 2904 2970 2998 3625 3694 3709
ENTITY_DB_BLOCK_ALLOCATION 2984 3124 3135
ENTITY_DB_BLOCK 1086 1659 1770 1834 1898 1955 2044 2129 2133 2246 2307 2377
2521 2801 2938 2942 3118 3192 3433 3602 3661 3666 3748 3866
3922 3990 4638 4677 4721
ENTITY_ID 1159# 1166
ENTITY_IS_VALID 702 1264 1472 2049 2809
ENTITY_PTR 1625 1662 1735 1774 1775 1803 1836 3002 3034 3037 3040 3081
3085 3127 3138 3139 3159 3200 3215 3216 3219 3227 3237
ENTITY_TYPE 1625 1662 1670 1691 1719 1735 1774 1775 1790 1801 1803 1836
1844 1852 3040 3080 3085 3120 3150 3159 3194 3199 3219 3226
3305 3343 3399 3447 3450 3459 3482 3493 3515 3566 3604 3607
3715 3768 3796 3804 3807 4012 4051 4087 4232 4272 4314 4352
4416 4479
ERR_DETAIL 1179 1266# 1275# 1305 1318# 1364# 1388 1399# 1414# 1434 1491# 2001
2052# 2761 2811# 2840# 2867# 2882#
EVENTS_ 2317 2325
EXPAND_PVB 714 3487
FDB 1153 1162 1163 1164 1165 1170 1171 2525 2537# 2540 2541 2545#
2549 2570 2579# 2582 2583 2595 2621 2629 2631 2633
FDBM 1160# 1167 1168# 1169# 2674 2710 2712
FDBM_BASE 865#
FDBM_BLOCK 876# 2674
FDBM_FIELDS 863# 876 1160
FDBM_HIGH 868# 1169 2712
FDBM_LOW 867# 1168 2712
FDBM_MASKS 869# 2710
FDBM_QLINK 866# 1167
FDBM_SIZE 873# 876 1155 1160
FDBS 1155 1160 1166 1170 2640 2668 2669
FDBS_BASE 844#
FDBS_BLOCK 854# 2640
FDBS_ENTITY 846# 1166 2668
FDBS_FIELDS 842# 854 1155
FDBS_MASKS 847# 1160 2669
FDBS_QLINK 845#
FDBS_SIZE 851# 854 1155 1156
FDB_BASE 818#
FDB_BLOCK 830# 2525 2595
FDB_CONSOLE_FILTERS 821# 1163 2629
FDB_FIELDS 816# 830 1153
FDB_FILE_FILTERS 822# 1164 1170 2631
FDB_MONITOR_FILTERS 823# 1165 2633
FDB_NODE_ID 820# 1162 2621
FDB_QE 4149 4322
FDB_QLINK 819#
FDB_SIZE 827# 830 1153 1154
FIELDS 793
FIELD_NAME 760 761 762 763 764 765
FILE_ 2630
FLTDB 981#
FUNCTION 1179 1230 1299 1382 1427 2001 2062 2076 2088 2178 2202 2266
2312 2761 2803
GET32 1705
GETB 1546 4117 4559 4818
GETMB 749# 4822
GETN 4064 4084
GETW 1521 1545 2553 2834 3034 3440 4120 4545 4684
GETW_NA 1239 1338 2891 3670
GET_EXISTING_ENTITY_DB 700 1662 1774 1836 2048 2807 2865 3219
GET_PVB 713 3508 3997
GET_VDB_ENTITY_QUEUE 704 3080 3150
HIGHER_LAYER 1235# 1298 1326# 1381
HOLD 1931# 1940
ID_STRING 2160 2162# 2163 2191 2953 2955# 2956 2979 2990 3680 3682# 3683
3701
INSERT_PARAMETER 705 1123 1131 1801 2845 2859 2969 2998
L 1771 1790# 1795 2413 2448# 2450 2452 2730 2734# 2738 2740 4066#
4067 4073 4280# 4281 4290# 4291 4299# 4300 4390 4394 4396 4400
4816 4818# 4820
LCL_ADDRESS 1505 1516# 1517 1519 1521# 1550#
LCL_LEN 1505 1517# 1518 1519 1520 1540
LEN 1589 1600# 1604 1608 1981 1991# 1993 1995
LINDB 978#
LINE_ 1290 1503 2433 3130 3221 3351 3615
LITERALS 794
LNG 1539 2714 2716# 2719# 2721# 2722 2724 2725# 2726# 2746
LOCAL_NODE 1249 1251# 1256 1273 1348 1350# 1355 1362
LOGDB 980#
LOGGING_ 1576 1934 2459 2734 3132 3218 3357 3615 4495
LOGGING_ID_MATCH 721 3360
LOWER_LAYER 1236# 1307 1327# 1390
LPVB_QE 1769 1787# 1788# 1791
M 4001 4003 4004
MASK 2705 2710# 2718 2755#
MASK_BITS 805# 2705 2718
MASK_SIZE 808# 869 2755
MATCH_ID 725 4723 4779
MATCH_ROUTINE 3073 3080 3081 3305 3394 3395#
MODDB 982#
MODULE_ 1587 2059 2821 2851 2872 3133 3214 3343 3369 3604 3615 4097
4509
MODULE_IS_VALID 703 3215
MONITOR_ 2632
M_PARMS 1080# 1088 1102 1107
N 1681 1683 2409 3474 3476 3487 3491 3947 4001 4007 4008 4388
4394 4768 4770 4772 4820
N$FCLR 1324 2863
N$FRET 1231 1496
N$FSET 1230 1233 2805
N$FSHO 1419 2315
N$FSZC 1478 2332
N$FZRO 1407
NDB$EXECUTOR 1100 3609
NDB_CIRCUIT_QLINK 787
NDB_ENTITY_ID 771 781 1894 3035 4682
NDB_NODE_TYPE 772 782 1100 3609
NDB_QE 1887 1891# 1893 1894 3002 3035 4725 4758 4761 4768 4779
NDB_SVC_CIRCUIT 788
NEW_ALLOCATION 3928# 3931 3941
NEXT 2145 2147# 2148 2150# 2167 2169# 2173 2175# 2960 2962# 2966 2968#
3687 3689# 3691 3693#
NICE$_CWS 1316
NICE$_IID 1317
NICE$_MPE 2427
NICE$_REE 1436 1518 1610 2446 2738
NICE$_SUC 1584 1612 1801 2050 2154# 2170 2172 2195 2393 2462 2901 2963
2965 3483 3497 3520 3697 3711
NICE$_URC 1315 1398 1413 1437 1471 1490
NML 1235 1236 1237 1242# 1243# 1282# 1292# 1326 1327 1328 1334# 1340#
1341# 1371# 1402
NML$CFG_FILTERS 668# 1144 2528 2623 2666 2707
NML$CHARACTERISTIC 997 2424
NML$CLEARABLE 998 3796
NML$CLR_VDB_PARAMETER 679
NML$COUNTER_TIMER_CLEAR 1002 3803
NML$COUNTER_TIMER_SET 1001 3458
NML$EXECUTOR_ONLY 994 1254 1353 3607
NML$FIND_NDB 680 2836
NML$GET_PDB_DATA_TYPE 1000 1691 4051 4272 4416
NML$GET_VDB_PARAMETER 677 1934
NML$READ_ONLY 999 3450
NML$SET_VDB_PARAMETER 678
NML$STATUS 996 2418
NML$SUMMARY 995 2421
NML$VDB 676
NML$VDB_INITIALIZE 675
NML$VDB_PARAMETER 993 1241 1339
NMLVDB 618#
NMLVER 1076 1090# 4572 4587
NMU$DLX_KNOWN_DEVICE 3235* 3237
NMU$DLX_RETURN_CIRCUITS 1563* 1566
NMU$MEMORY_GET 1104 2984 3124 3135 3931 4070 4113 4218 4222
NMU$MEMORY_MANAGER 990*
NMU$MEMORY_RELEASE 3875 4221 4283 4293 4302 4316
NMU$NETWORK_LOCAL 992 1098 1250 1349 1516 2538 2556
NMU$QUEUE_INSERT 1170 1171 2993 3151
NMU$QUEUE_LENGTH 2143 2948 3675
NMU$QUEUE_MANAGER 991
NMU$QUEUE_RESET 1063 1064 1065 1066 1067 1068 1163 1164 1165 1167 2822
NMU$QUEUE_SCAN 1582 1597 1891 2190 2537 2579 2586 2629 2631 2633 2669 2978
3081 3700
NMX 1328 1392# 1398 1410 1411# 1413 1416 1589 1601# 1607# 1610
NODDB 977#
NODE_ADDR 3032 3034# 3036
NODE_ADDRESS 4543 4545# 4547
NODE_ADR 2551 2553# 2562
NODE_BUF 2547 2557 2561 2567 2576 2580
NODE_DB_BLOCK 1887 3002 4758
NODE_E 1098 1123 1131 1247 1275 1346 1364 1499 1513 1535 1670 1719
1844 2829 3122 3196 3343 3345 3604 3606 4089 4314 4481
NODE_ID_BUFFER_ALLOCATION 4113 4316
NODE_ID_BUFFER_LENGTH 2555 2575 4134
NODE_ID_BUFFER_SIZE 2547
NODE_ID_MATCH 722 2539 2581 3348
NODE_NAME_LENGTH 4556 4559# 4560 4561 4564
NODE_PTR 2526 2535# 2545 2553 2558# 2561# 2562 2563 2567# 2568 2569 2570
2573 2575# 2576 3031 3035# 3036 3037
NONE 955
NON_NODE_ID_MATCH 723 2192 2980 3354 3366 3374 3702
NO_ENTITY_ 1159
NPVB 3522 3555 3927 3931# 3936 3940
N_PARMS 1079# 1101
OFF 1931#
ON 1931# 1940
OPVB 3522 3556
PARAMETER 1237 1239# 1241 1254 1259 1291 1328 1333# 1338# 1339 1353 1358
2904 2971 2998 3664 3669# 3694 3709
PARAMETER_BLOCK_ALLOCATION 950#
PARAMETER_BLOCK_FIELDS 953
PARAMETER_BLOCK_SIZE 949# 953
PARAMETER_BLOCK 953#
PARAMETER_FIELDS 932#
PARM_NO 1625 1671 1672# 1685 1687 1691 1735 1787 1803 1845 1846# 1852
3438 3440# 3447 3450 3458 3478 3480 3492 3513 3566 3607 3715
3768 3788 3790 3791 3803 3817# 4322
PBF 1578 1579# 1580# 1581# 1582 1898 1925 1948# 1951 2524 2531# 2532#
2533# 2541 2583 2586 2595 2621# 2626 2629 2631 2633 2640 2668#
2669 2674 2702 2717 2720 2728 2733 2736 2737 2738 2740# 2741#
PBF_BASE 888# 1582
PBF_BLOCK 903# 1578 1898 2524 2595 2640 2674
PBF_BUF_PTR_ADR 892# 1580 1951 2532 2737
PBF_ENTITY_PTR 891# 2668
PBF_FIELDS 886# 903
PBF_LEN_ADR 893# 1579 1948 2531 2736 2738 2740
PBF_MASK 894# 2717 2720
PBF_NODE_ID_PTR 890# 2621 2728 2733 2741
PBF_PE 889# 2702
PBF_SELECTOR 895# 1581 1925
PBF_SINK 896# 2533 2626
PBF_SIZE 900# 903
PBM 1589 1594# 1595# 1596# 1597 1955 1983 1993# 1995# 1997
PBM_BASE 915# 1597
PBM_BLOCK 925# 1589 1955
PBM_BUF_PTR_ADR 916# 1595 1995 1997
PBM_FIELDS 913# 925
PBM_LEN_ADR 917# 1594 1993
PBM_SELECTOR 918# 1596 1983
PBM_SIZE 922# 925
PB_BASE 934#
PB_DATA_LENGTH 940#
PB_DATA_POINTER 941#
PB_EDB 943#
PB_ENTITY_POINTER 935#
PB_ENTITY_TYPE 938#
PB_FUNCTION 937#
PB_PARAMETER_DATA_BLOCK 944#
PB_PARAMETER_NUMBER 942#
PB_PRIVLEDGED 945#
PB_QUALIFIER_POINTER 936#
PB_SELECTOR 939#
PE 2702# 2732# 2733# 2735
PE_ADDRESS 1090 1092 1094 1096 1697 1704 1710 1721 2733 4059 4069 4070
4073 4078 4112 4113 4116 4133 4143 4280 4283 4284 4293 4294
4299 4302 4303 4316 4317 4426 4429 4445 4451 4454 4529 4772
PE_DATA 1700 1715 1788 4004 4008 4064 4084 4288 4312 4437 4469
PE_NUMBER 1089 1091 1093 1095 1685 1687 1720 1787 2418 2421 2424 2434
2732 3478 3480 3492 3513 3788 3790 3796 4003 4007 4051 4090
4098 4272 4315 4414 4416 4482 4496 4510 4770
POINTER 2088 2151 2176 2184 2199 2208 2213 2252 2254 2257# 2259 2761
2833 2845 2855 2859 2877 2891 3248 3282 3287 3294 3625 3670
4352 4412 4602#
PRIVLEDGED 3399 3450 3625 3694 3709 3715 3797
PRM_BFR 961 1119 1123 1785 1795 1801
PRM_BFR_ALLOCATION 799# 961
PRM_BFR_LENGTH 797# 798 1792
PRM_BFR_SIZE 798# 799
PRM_PTR 1772 1785# 1793 3399 3440 3461 3482 3493 3515 4012 4059 4064
4073 4078 4084 4117 4120 4130
PTR 1117 1119# 1120 1121 1122 1249 1250# 1251 1263# 1264 1348 1349#
1350 1702 1704# 1705 2714 2717# 2718 2720# 2721 2831 2833# 2834
2836# 2838 4110 4116# 4121 4122 4128 4129 4130 4133# 4141 4179
4215 4228 4527 4529# 4545 4559 4562 4680 4682# 4684
PTR1 4782 4818 4822
PTR2 4782 4818 4822
PTR_ADR 749 753 4388 4393 4397
PUT32 2718
PUTB 1121 2254 2563 2568 2569 4122 4129 4421 4466 4531 4546 4558
4560 4577 4586 4587 4588 4589 4590 4591
PUTN 4388# 4437 4469
PUTW 1120 1166 2252 2562 3036 4121 4128 4420 4465 4530 4547 4576
PVB 1660 1679# 1683 3436 3472# 3476 3490# 3491 3511# 3512 3993 4000#
4003# 4004# 4007# 4008# 4761# 4770 4772
PVB_ENTRY_ALLOCATION 1102 3925 3929 3996
PVB_ENTRY_SIZE 889 2454 3558 3808 3814 3820
PVB_QE 1683# 1685 1687 1697 1700 1704 1710 1715 1720 1721 2310 2405
2407# 2418 2421 2424 2434 2448 2454# 3437 3476# 3478 3480 3482
3491# 3492# 3493 3512# 3513# 3515 4012 4046 4051 4059 4064# 4069
4070# 4073 4078 4084# 4090 4098 4112 4113# 4116 4133 4143# 4232
4267 4272 4280 4283 4284# 4288# 4293 4294# 4299 4302 4303# 4312#
4315 4316 4317#
QE_QUALIFIER 2942 2949# 2966# 2969 2978# 2982 2984# 2986 2991 2993 2998 3666
3676# 3691# 3694 3700# 3704 3709
QHEADER 3117 3150 3151
QH_CIRCUIT_PARAMETERS 970 979 1065 3365
QH_LINE_PARAMETERS 969 978 1064 3353
QH_LOGGING_FILTERS 972 981 1067 1171 2537 2579 2586
QH_LOGGING_PARAMETERS 971 980 1066 1582 3359
QH_MODULE_PARAMETERS 973 982 1068 1597 3373
QH_NODE_PARAMETERS 968 977 1063 1891 3347
QH_QUALIFIER 2941 2944# 2948 2949 2962 2966 2978 2993 3665 3668# 3675 3676
3689 3691 3700
QUALIFIER 1179 1301 1311 1384 1394 1411 1430 1454 1485 1526 1603 2001
2065 2079 2088 2137 2162 2181 2205 2266 2326 2493 2535 2570
2761 2854 2876 2904 2946 2955 3625 3673 3682
QUALIFIER_QUEUE 2132 2135# 2143 2147 2148 2157 2169 2173 2190
QUEUE_HEADER 3340 3347# 3353# 3359# 3365# 3373# 3392
QUEUE_MATCH_ROUTINE 3341 3348# 3354# 3360# 3366# 3374# 3395
QUEUE 3072 3080 3081 3305 3391 3392#
Q_ENTRY 2145 2167 2960 3687
Q_ENTRY_SIZE 819 821 822 823 845 866
Q_FORWARD 2147 2150 2157 2169 2175 2949 2962 2968 3676 3689 3693
Q_HEADER 968 969 970 971 972 973 2132 2941 3665
READ_COUNTERS 690 2323 2333
READ_ENTITY 688 2075 2177 2201
READ_FILTER 692 2541 2583 2586
READ_FILTERS 691 2326 2460
READ_FILTER_MASKS 694 2669
READ_FILTER_SINK 693 2629 2631 2633
READ_PARAMETERS 689 2320
READ_PARAMETER_DATA 720 1790 2448 2734
READ_QUALIFIED_ENTITY 685 2061
READ_QUALIFIER 686 2151 2176 2199
RELEASE_PVB 712 3760 3829 3939
REMOVE_PARAMETER 711 1852 2888 3694 3709
REMOVE_QUALIFIED_PARAMETER 709 2874
RESULT 1237 1299# 1309# 1315 1316 1317 1321 1328 1382# 1392# 1404 1421
1452# 1459# 1468# 1471 1473# 1475 2043 2049# 2061# 2070 2075# 2085
2167 2170# 2172 2177# 2187# 2960 2963# 2965 2969# 2975
SEARCH_FOR_EXECUTOR 1533# 1537 1544
SELECTOR 1179 1431 1455 1513 1525 1535 1566 1581 1591 1596 1602 2001
2066 2080 2088 2182 2206 2266 2317 2320 2323 2333 2340 2415
2459 2464
SELECT_LOGGING 681 1582
SELECT_MODULE 682 1597
SET_ENTITY_DB 701 1098 1775 2815
SET_FILTER 716
SET_IMAGE_FIELD 717 4059 4078
SET_NODE_ENTITY 699 3127
SET_PARAMETER_DATA 715 3482 3493 3515
SET_QUALIFIED_ENTITY 697 2852
STATE 1932 1937 1938
STATUS 1480 1483# 1490 1493 1505 1524# 1530 1557 1562 1566# 1570# 1573
STATUS_ 2319 2417
SUMMARY_ 2317 2319 2415 2420 3202 3229
SVC_CKT_MATCH 724 1891
TASK_ERROR 3145 3153 3243
TASK_INFO 4175 4348
TEMP 1539# 1545# 1550 4110 4117# 4118 4120# 4121 4129 4130 4134# 4141
TLEN 4213 4215# 4218 4219 4222 4228
TYPE 1179 1241 1245 1254 1300 1309 1318 1339 1344 1353 1383 1392
1399 1411 1414 1428 1452 1472 1483 1491 1497 1513 1524 1535
1601 2001 2048 2049 2052 2059 2063 2077 2088 2179 2203 2266
2320 2323 2326 2333 2340 2418 2421 2424 2431 2448 2459 2460
2464 2493 2712 2761 2807 2809 2811 2815 2821 2827 2845 2853
2859 2865 2867 2870 2875 2882 2889 4149 4322
USRECO 4574 4591
VAL 2249 2251# 2252 2256# 2257 2261
VALUE 2165 2958 2989 3685 4388 4392
VDB 1328 1382# 1402
VDB_CHANGE 695 1299 1382
VDB_CODE 1421 1427# 1436 1437 1438 1468
VDB_READ 683 1427
X 4390 4392# 4393 4396# 4397
XLEN 4212 4219# 4221
X_NOD_NDB 1086 1098# 1100# 1101# 1102# 1103# 1104 1106 1123 1131
X_NOD_PVB 1088 1106
$ADDRESS 892 893 916 917 943 944
$BIT 945
$BITS 805
$BYTES 820 846 894
$BYTE 1149 1150
$EXPAND_FIELD 760# 769 770 771 772 773 774 775 779 780 781 782
783 784 785 786 787 788
$FALSE 668 1663 1677 1733 1776 1837 2542 2584 2587 2592 2845 2859
2879 2893 2972 2998 3246 3301 3377 3384 3611 3622 3932 3998
4060 4071 4079 4095 4103 4106 4114 4177 4226 4350
$FIELD 804 816 841 862 885 912 931 1148
$FIELD_SET_SIZE 808 827 851 873 900 922 949
$FIELD_SET_UNITS 950
$INTEGER 937 938 939 940 941 942
$MCB 684 696 708 975 1035 1040 1109 1279 1288 1368 2056 2087
2212 2429 2818 2848 2873 2903 3206 3223 3279 3624
$NICE$ERR_CWS 1276 1365 2841
$NICE$ERR_IPV 3462 3705
$NICE$ERR_MPE 1592 1616 1621 2336
$NICE$ERR_NRE 2816 2987
$NICE$ERR_OCM 3208
$NICE$ERR_PAM 2950 3677
$NICE$ERR_PNA 1257 1356 3448 3451 3769
$NICE$ERR_REE 1583 1598 2450# 3210 3484 3488 3494 3509 3516
$NICE$ERR_UFO 2898
$NICE$ERR_URC 1267 2053 2812 2868 2883 3232
$NML$CLR 1392
$NML$GET_HOST_ID 1122 1162
$NML$MAP_NODE_ID 2576 4141
$NML$PVB_ENTRY_BLOCK 1683 1769 2310 2405 2702 3437 3779# 4046 4267 4404
$NML$PVB_ENTRY_VECTOR 1088# 1660 3436 3927 3993 4761
$NML$RETURN 1524 1601
$NML$SET 1309
$NML$SHOW 1452 3199 3226
$NML$SHOZC 1483#
$NML$ZERO 1411
$NTCLR 1324 2863
$NTRET 1231 1496
$NTSET 1230 1233 2805
$NTSHO 1419 2314
$NTSZC 1478 2331
$NTZRO 1407
$POINTER 890 891 935 936
$SHORT_INTEGER 867 868
$SHOW_EDB 768# 2046
$SHOW_NDB 778# 1889
$SHOW 793 794 955
$SIGNED_BYTE_VALUE 2160 2953 3680
$SUB_BLOCK 818 819 821 822 823 844 845 847 865 866 869 888
889 915 934
$TINY_INTEGER 895 896 918
$TOPS20 1252 1351 1469 1500 1559
$TRUE 1123 1135 1726 1801 1852 1854 2491 2590 3397 3610 3613 3616
3945 4010 4093 4101 4147 4230
$X25 684 696 708 2056 2087 2212 2818 2848 2873 2903 3278 3371
3624 4506
%BLISS16 1230 1231 1233 1324 1407 1419 1478 1496 2315 2332 2805 2863
%BLISS36 1230 1231 1233 1324 1407 1419 1478 1496 2314 2331 2805 2863
%GLOBAL_ROUTINE 1003# 1179# 1625# 1735# 1803# 1856#
%REMAINING 1036 1037 1056
%ROUTINE 1898# 1955# 2001# 2088# 2213# 2266# 2340# 2464# 2493# 2595# 2640# 2674#
2761# 2904# 3002# 3040# 3085# 3159# 3248# 3305# 3399# 3522# 3566# 3625#
3715# 3833# 3884# 3947# 4012# 4149# 4179# 4232# 4322# 4352# 4606# 4645#
4689# 4725# 4782#