Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/nml/nmlnic.lst
There are no other files named nmlnic.lst in the archive.
24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 1
3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (1)
; 0001 ! <BRANDT.DEVELOPMENT>NMLNIC.BLI.1 22-Sep-82 10:45:21, Edit by BRANDT
; 0002 !
; 0003 ! Ident 31.
; 0004 ! Change code in NML$NICE_RESPONSE so that the RB_ERROR_DETAIL field
; 0005 ! of the REQUEST block is reset after the current value is obtained.
; 0006 ! Otherwise, if the request block is reused for multiple response
; 0007 ! messages, we would have an invalid entry in that field.
; 0008 !
; 0009 ! NET:<BRANDT.DEVELOPMENT>NMLNIC.BLI.2 9-Jun-82 12:10:12, Edit by BRANDT
; 0010 !
; 0011 ! Ident 30.
; 0012 ! Change code in NML$NICE_EXECUTE that returns the memory allocated
; 0013 ! for node entity id so that the memory is returned by the completion
; 0014 ! routine, since this field will still be referenced.
; 0015 !
; 0016 ! NET:<BRANDT.DEVELOPMENT>NMLNIC.BLI.2 10-May-82 9:10:12, Edit by BRANDT
; 0017 !
; 0018 ! Ident 29.
; 0019 ! Move code to NML$NICE_RESPONSE that inserts an entity id field into
; 0020 ! the response message. This code used to be in routine
; 0021 ! COPY_RESP_PARAMETERS in module NMLRCZ.
; 0022 !
; 0023 ! NET:<BRANDT.DEVELOPMENT>NMLNIC.BLI.2 5-May-82 14:17:12, Edit by BRANDT
; 0024 !
; 0025 ! Ident 28.
; 0026 ! Initialize the error detail value in the Request Block to -1.
; 0027 ! Unless the response message is type 2 or -128, always put the error
; 0028 ! detail into the response message. Error detail values of 0 could be
; 0029 ! significant.
; 0030 !
; 0031 ! NET:<PECKHAM.DEVELOPMENT>NMLNIC.BLI.2 28-Apr-82 09:07:12, Edit by PECKHAM
; 0032 !
; 0033 ! Ident 27.
; 0034 ! Do not abort function if node entity does not map in NML$NICE_EXECUTE.
; 0035 !
; 0036 ! NET:<VOBA.NML.DEVELOPMENT>NMLNIC.BLI.11 21-Apr-82 13:17:05, Edit by VOBA
; 0037 !
; 0038 ! Ident 26.
; 0039 ! Fix code to check for CLEAR_PURGE bit inside the SCAN_PARAMETER routine,
; 0040 ! instead of prior to invoking it.
; 0041 !
; 0042 ! NET:<VOBA.NML.DEVELOPMENT>NMLNIC.BLI.5 26-Mar-82 18:17:12, Edit by VOBA
; 0043 !
; 0044 ! Ident 25.
; 0045 ! Fix VY_ZERO_REQUEST to check for qualifier in ZERO MODULE message.
; 0046 !
; 0047 ! NET:<VOBA.NML.DEVELOPMENT>NMLNIC.BLI.11 25-Mar-82 16:43:55, Edit by VOBA
; 0048 !
; 0049 ! Ident 24.
; 0050 ! Fix SCAN_PARAMETER not to allow multiple qualified NICE message to be
; 0051 ! processed.
; 0052 ! Fix NML$NICE_EXECUTE not to map LOGGING entity id to upper case.
24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 2
3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (1)
; 0053 !
; 0054 ! NET:<VOBA.NML.DEVELOPMENT>NMLNIC.BLI.4 15-Mar-82 17:34:30, Edit by VOBA
; 0055 !
; 0056 ! Ident 23.
; 0057 ! Fix SCAN_PARAMETER to recognize KNOWN SINKS which has CMN data format
; 0058 ! to be formatted with node count byte as -1.
; 0059 !
; 0060 ! NET:<VOBA.NML.DEVELOPMENT>NMLNIC.BLI.5 12-Mar-82 14:43:20, Edit by VOBA
; 0061 !
; 0062 ! Ident 22.
; 0063 ! Fix SCAN_PARAMETER to recognize KNOWN qualifiers (i.e. NETWORKS, DTES,
; 0064 ! GROUPS, and DESTINATIONS) which have AI data format to be formatted with
; 0065 ! count byte as -1.
; 0066 ! Fix the local LENGTH in SCAN_PARAMETER to recognize signed byte value
; 0067 ! from the NICE message count byte.
; 0068 ! Remove checking of multiple qualifiers from SCAN_PARAMETER. Let the lower
; 0069 ! layers do that.
; 0070 !
; 0071 ! NET:<VOBA.NML.DEVELOPMENT>NMLNIC.BLI.5 5-Mar-82 10:37:06, Edit by VOBA
; 0072 !
; 0073 ! Ident 21.
; 0074 ! Fix a typo in SCAN_PARAMETER.
; 0075 !
; 0076 ! <VOBA.NML.DEVELOPMENT>NMLNIC.BLI.3 5-Mar-82 09:57:46, Edit by VOBA
; 0077 !
; 0078 ! Ident 20.
; 0079 ! Fix bug in SCAN_PARAMETER to check for the count byte before proceeding
; 0080 ! to parse the rest of the AI and HI fields.
; 0081 !
; 0082 ! NET:<VOBA.NML.DEVELOPMENT>NMLNIC.BLI.3 2-Mar-82 15:37:57, Edit by VOBA
; 0083 !
; 0084 ! Ident 19.
; 0085 ! Remove pointer to parameter name text in data structure of NICE parameter
; 0086 ! tables for MCB.
; 0087 !
; 0088 ! <VOBA.NML.DEVELOPMENT>NMLNIC.BLI.3 1-Mar-82 17:25:19, Edit by VOBA
; 0089 !
; 0090 ! Ident 18.
; 0091 ! Fix bug in SCAN_PARAMETER to obtain the NICE parameter entry to parameter
; 0092 ! table given to the routine.
; 0093 !
; 0094 ! NET:<VOBA.NML.DEVELOPMENT>NMLNIC.BLI.3 1-Mar-82 14:46:28, Edit by VOBA
; 0095 !
; 0096 ! Ident 17.
; 0097 ! Assign HI a distinct value different from AI.
; 0098 !
; 0099 ! <VOBA.NML.DEVELOPMENT>NMLNIC.BLI.24 1-Mar-82 11:31:04, Edit by VOBA
; 0100 !
; 0101 ! Ident 16.
; 0102 ! Replace routines NODE_PARAMETERS, LINE_PARAMETERS, CIRCUIT_PARAMETERS,
; 0103 ! LOGGING_PARAMETERS, and MODULE_PARAMETERS with one single routine to do
; 0104 ! the parsing, SCAN_PARAMETER. This routine verifies the format of each
24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 3
3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (1)
; 0105 ! parameter based on the data type information supplied by the data structure
; 0106 ! tables in NMLPRM module. The entry of each parameter in the tables is
; 0107 ! requested by reference to the routine NML$PARAMETER_LOOKUP in routine
; 0108 ! VERIFY_PARAMETERS.
; 0109 !
; 0110 ! NET:<PECKHAM.DEVELOPMENT>NMLNIC.BLI Edit by PECKHAM
; 0111 !
; 0112 ! Ident 15.
; 0113 ! Handle logging entity in GET_ENTITY_ID.
; 0114 ! Cleanup in VY_LOGGING_PARAMETERS.
; 0115 !
; 0116 ! NET:<PECKHAM.DEVELOPMENT>NMLNIC.BLI.2 7-Feb-82 19:12:55, Edit by PECKHAM
; 0117 !
; 0118 ! Ident 14.
; 0119 ! Fix HOST parameter number to 141 (bug introduced in #13.)
; 0120 !
; 0121 ! NET:<PECKHAM.DEVELOPMENT>NMLNIC.BLI.3 7-Feb-82 17:46:53, Edit by PECKHAM
; 0122 !
; 0123 ! Ident 13.
; 0124 ! Fix NODE_PARAMETERS, CIRCUIT_PARAMETERS, LINE_PARAMETERS, LOGGING_PARAMETERS
; 0125 ! to avoid references to NCPTAB variables.
; 0126 !
; 0127 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.2 13-Nov-81 15:25:18, Edit by BRANDT
; 0128 !
; 0129 ! Ident 12.
; 0130 ! Fix NML$NICE_EXECUTE to have RB_NICE_ENTITY in the request block
; 0131 ! point to an entity id that is always uppercase. This allows NML and
; 0132 ! lower layers to match either lower or uppercase entity id strings
; 0133 ! without further checking for case distinction.
; 0134 !
; 0135 ! NET:<DECNET20-V3P1.NMU.LIBRARY>NMLNIC.BLI.2 30-Jun-81 13:07:51, Edit by GUNN
; 0136 !
; 0137 ! Ident 11.
; 0138 ! Fix VY_LOAD_REQUEST, VY_DUMP_REQUEST, and VY_TRIGGER_REQUEST to
; 0139 ! set RB_NICE_ENTITY_TYPE before calling GET_ENTITY_ID.
; 0140 !
; 0141 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.2 16-Jun-81 17:05:14, Edit by GUNN
; 0142 !
; 0143 ! Ident 10.
; 0144 ! Make VY_TEST_REQUEST set RB_NICE_ENTITY_TYPE to NODE when calling
; 0145 ! VERIFY_PARAMETERS. All LOOP parameters are NODE parameters regardless
; 0146 ! of the actual entity type for the request.
; 0147 !
; 0148 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.8 10-Apr-81 11:26:06, Edit by GUNN
; 0149 !
; 0150 ! Modify code in NML$DEQUEUE_REQUEST to not build a NICE response
; 0151 ! message on failure of the processing routine if the RB_RESPONSE_LENGTH
; 0152 ! is non-zero. This allows the lower level routines to build their own
; 0153 ! response messages if they desire.
; 0154 ! Modify NML$NICE_RESPONSE to allocate a response buffer only if one
; 0155 ! has not previously been allocated.
; 0156 !
24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 4
3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (1)
; 0157 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.6 7-Apr-81 12:22:49, Edit by GUNN
; 0158 !
; 0159 ! Fix test for valid entity type in VY_LOAD_REQUEST, VY_DUMP_REQUEST,
; 0160 ! & VY_TRIGGER_REQUEST.
; 0161 !
; 0162 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.4 1-Apr-81 16:35:26, Edit by GUNN
; 0163 !
; 0164 ! Fix GET_ENTITY_ID to store pointer to non NODE entity ids pointing
; 0165 ! at length byte.
; 0166 !
; 0167 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.3 1-Apr-81 10:26:09, Edit by GUNN
; 0168 !
; 0169 ! Change allowed entity type in VY_LOAD_REQUEST, VY_DUMP_REQUEST,
; 0170 ! and VY_TRIGGER_REQUEST from LINE to CIRCUIT.
; 0171 !
; 0172 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.2 13-Mar-81 12:40:18, Edit by GUNN
; 0173 !
; 0174 ! Add code in NML$NICE_EXECUTE to convert executor node id to local
; 0175 ! name.
; 0176 !
; 0177 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.3 6-Mar-81 11:19:27, Edit by GUNN
; 0178 !
; 0179 ! Change all references to [RB_NICE_ENTITY_ID_LENGTH] to be treated
; 0180 ! as signed fullword value.
; 0181 !
; 0182 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.10 3-Mar-81 16:12:57, Edit by GUNN
; 0183 !
; 0184 ! Remove references to RB_RESPONSE_SIZE field of request block.
; 0185 !
; 0186 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.8 27-Feb-81 15:19:12, Edit by GUNN
; 0187 !
; 0188 ! Fix problem of passing length of buffer in $NML$MAP_NODE_ID macro call.
; 0189 !
; 0190 ! NET:<DECNET20-V3P1.NML>NMLNIC.BLI.4 12-Feb-81 17:06:29, Edit by GUNN
; 0191 !
; 0192 ! Add code to map an input node name to node address.
; 0193 ! Update copyright date.
; 0194 !
NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 5
3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (2)
; 0195 %title 'NMLNIC -- NICE Message Verifier'
; 0196 module NMLNIC (
; 0197 ident = 'X03.30'
; 0198 ) =
; 0199 begin
; 0200
; 0201 !
; 0202 ! COPYRIGHT (c) 1980, 1981, 1982
; 0203 ! DIGITAL EQUIPMENT CORPORATION
; 0204 ! Maynard, Massachusetts
; 0205 !
; 0206 ! This software is furnished under a license and may be used
; 0207 ! and copied only in accordance with the terms of such license
; 0208 ! and with the inclusion of the above copyright notice. This
; 0209 ! software or any other copies thereof may not be provided or
; 0210 ! otherwise made available to any other person. No title to
; 0211 ! and ownership of the software is hereby transferred.
; 0212 !
; 0213 ! The information in this software is subject to change
; 0214 ! without notice and should not be construed as a commitment
; 0215 ! by DIGITAL EQUIPMENT CORPORATION.
; 0216 !
; 0217 ! DIGITAL assumes no responsibility for the use or reliability
; 0218 ! of its software on equipment which is not supplied by
; 0219 ! DIGITAL.
; 0220 !
; 0221
; 0222 !++
; 0223 ! FACILITY: DECnet-10/20 V3.0 Network Management Layer (NML)
; 0224 !
; 0225 ! ABSTRACT:
; 0226 !
; 0227 ! This module contains the routines which perform NICE request message
; 0228 ! receipt and processing. NICE requests are processed from the NML
; 0229 ! request queue. The queued NICE messages are checked for valid syntax
; 0230 ! and converted to an internal format suitable for processing by the
; 0231 ! local NML. Invalid NICE request messages result in a NICE error
; 0232 ! response message being built and the NML request is terminated. Valid
; 0233 ! NICE requests are dispatched for processing.
; 0234 !
; 0235 ! ENVIRONMENT: TOPS-10/20 & MCB/RSX11 User mode under NML
; 0236 !
; 0237 ! AUTHOR: Dale C. Gunn , CREATION DATE: 5-Nov-80
; 0238 !
; 0239 ! MODIFIED BY:
; 0240 !
; 0241 ! , : VERSION
; 0242 ! 01 -
; 0243 !--
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 6
X03.30 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (3)
; 0244
; 0245 !
; 0246 ! INCLUDE FILES:
; 0247 !
; 0248
; 0249 library 'NMLLIB'; ! All required definitions
; 0250 require 'NMLEXT'; ! NML External routines
; 0356
; 0357 !
; 0358 ! TABLE OF CONTENTS
; 0359 !
; 0360
; 0361 forward routine
; 0362 NML$DEQUEUE_REQUEST : novalue, ! Dequeues NICE requests for processing
; 0363 NML$NICE_VERIFY, ! Performs syntax verification
; 0364 VY_LOAD_REQUEST, ! Verify NICE load request message
; 0365 VY_DUMP_REQUEST, ! Verify NICE dump request message
; 0366 VY_TRIGGER_REQUEST, ! Verify NICE trigger request message
; 0367 VY_TEST_REQUEST, ! Verify NICE test request message
; 0368 VY_CHANGE_REQUEST, ! Verify NICE change request message
; 0369 VY_READ_REQUEST, ! Verify NICE read request message
; 0370 VY_ZERO_REQUEST, ! Verify NICE zero request message
; 0371 VY_SYSTEM_SPECIFIC, ! Verify NICE system specific message
; 0372 GET_ENTITY_ID, ! Extracts entity id from NICE message
; 0373 SCAN_PARAMETER, ! Scan and verify parameter data fields
; 0374 VERIFY_PARAMETERS, ! Verify NICE request parameters
; 0375 NML$NICE_EXECUTE, ! Dispatches NICE request for execute
; 0376 NML$NICE_RESPONSE : novalue; ! Builds NICE response message
; 0377
; 0378 !
; 0379 ! MACROS:
; 0380 !
; 0381
; 0382 macro
; M 0383 NEXTB_NICE =
; M 0384 NEXTB (.REQ[RB_NICE_LENGTH],
; 0385 REQ[RB_NICE_POSITION]) %;
; 0386
; 0387 macro
; M 0388 NEXTF_NICE =
; M 0389 NEXTF (.REQ[RB_NICE_LENGTH],
; M 0390 REQ[RB_NICE_POSITION],
; 0391 .REQ[RB_NICE_POINTER]) %;
; 0392
; 0393 macro
; M 0394 NEXTW_NICE =
; M 0395 NEXTW (.REQ[RB_NICE_LENGTH],
; 0396 REQ[RB_NICE_POSITION]) %;
; 0397
; 0398 macro
; M 0399 NEXTN_NICE (N) =
; M 0400 NEXTN (.REQ[RB_NICE_LENGTH],
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 7
X03.30 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (3)
; M 0401 REQ[RB_NICE_POSITION],
; 0402 N) %;
; 0403
; 0404 macro
; M 0405 ADVANCE (POINTER, COUNT) =
; 0406 POINTER = ch$plus (.POINTER, COUNT) %;
; 0407
; 0408 $show (all);
; 0409
; 0410 $field TABLE_ENTRY_FIELDS =
; 0411 set
; L 0412 NICE_PARAMETER_NUMBER = [$integer],
; %PRINT: [0,0,16,1] (+%O'0')
; L 0413 NICE_PARAMETER_ENTRY = [$address]
; %PRINT: [1,0,16,0] (+%O'2')
; 0414 tes;
; 0415
; 0416 literal
; L 0417 TABLE_ENTRY_SIZE = $field_set_size;
; %PRINT: 2 fullwords
; 0418
; 0419 macro
; M 0420 NICE_PARAMETER_TABLE_ENTRY =
; 0421 block [TABLE_ENTRY_SIZE] field (TABLE_ENTRY_FIELDS) %;
; 0422
; 0423 $field PARAMETER_ENTRY_FIELDS =
; 0424 set
; U 0425 %if not $MCB %then
; U 0426 _NAME = [$pointer], ! Pointer to parameter name text
; 0427 %fi
; 0428
; L 0429 _DATA_FORMAT = [$byte], ! Data format code
; %PRINT: [0,0,8,0] (+%O'0')
; L 0430 _DATA_TYPE = [$byte], ! Data type byte
; %PRINT: [0,8,8,0] (+%O'1')
; 0431
; 0432 $align (byte) ! Restrictions
; L 0433 _NML_PARAMETER = [$bit], ! ON if NML owns this parameter
; %PRINT: [1,0,1,0] (+%O'2')
; L 0434 _SETTABILITY = [$bits(2)],
; %PRINT: [1,1,2,0] (+%O'2')
; L 0435 _APPLICABILITY = [$bits(5)],
; %PRINT: [1,3,5,0] (+%O'2')
; 0436 $overlay (_SETTABILITY) ! Settability restrictions
; L 0437 _READ_ONLY = [$bit],
; %PRINT: [1,1,1,0] (+%O'2')
; L 0438 _WRITE_ONLY = [$bit],
; %PRINT: [1,2,1,0] (+%O'2')
; 0439 $continue
; 0440 $overlay (_APPLICABILITY) ! Applicability restrictions
; L 0441 _QUALIFIED = [$bit],
; %PRINT: [1,3,1,0] (+%O'2')
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 8
X03.30 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (3)
; L 0442 _EXECUTOR_ONLY = [$bit],
; %PRINT: [1,4,1,0] (+%O'2')
; L 0443 _OTHER_NODES = [$bits(3)],
; %PRINT: [1,5,3,0] (+%O'2')
; 0444 $overlay (_OTHER_NODES)
; L 0445 _ADJACENT_ONLY = [$bit],
; %PRINT: [1,5,1,0] (+%O'2')
; L 0446 _REMOTE_ONLY = [$bit],
; %PRINT: [1,6,1,0] (+%O'2')
; L 0447 _SINK_ONLY = [$bit],
; %PRINT: [1,7,1,0] (+%O'2')
; 0448 $continue
; 0449 $continue
; 0450
; 0451 $align (byte) ! Information type applicability
; L 0452 _CHARACTERISTIC = [$bit],
; %PRINT: [1,8,1,0] (+%O'3')
; L 0453 _STATUS = [$bit],
; %PRINT: [1,9,1,0] (+%O'3')
; L 0454 _SUMMARY = [$bit],
; %PRINT: [1,10,1,0] (+%O'3')
; L 0455 _EVENTS = [$bit],
; %PRINT: [1,11,1,0] (+%O'3')
; L 0456 _QUALIFIER = [$bit],
; %PRINT: [1,12,1,0] (+%O'3')
; 0457
; L 0458 _CLEARABLE = [$bit],
; %PRINT: [1,13,1,0] (+%O'3')
; L 0459 _UPPER_CASE = [$bit]
; %PRINT: [1,14,1,0] (+%O'3')
; 0460 tes;
; 0461
; 0462 literal
; L 0463 PARAMETER_ENTRY_SIZE = $field_set_size;
; %PRINT: 2 fullwords
; 0464
; 0465 macro
; M 0466 PARAMETER_ENTRY =
; 0467 block [PARAMETER_ENTRY_SIZE] field (PARAMETER_ENTRY_FIELDS) %;
; 0468
; 0469 $show (none);
; 0470
; 0471 !
; 0472 ! EXTERNAL REFERENCES:
; 0473 !
; 0474
; 0475 external routine
; 0476 NML$LOAD, ! Perform remote node load
; 0477 NML$DUMP, ! Perform remote node dump
; 0478 NML$TRIGGER, ! Perform remote node trigger boot
; 0479 NML$TEST, ! Perform loopback test
; 0480 NML$CHANGE, ! Perform change parameters
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 9
X03.30 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (3)
; 0481 NML$READ, ! Perform read information
; 0482 NML$ZERO, ! Perform zero counters
; 0483 NML$SYSTEM_SPECIFIC, ! Perform system specific operations
; 0484 NML$PARAMETER_LOOKUP, ! Lookup NICE parameter
; 0485 NMU$NETWORK_LOCAL; ! Obtain pointer to local node id
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 10
X03.30 NML$DEQUEUE_REQUEST as NL_DQR 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (4)
; 0486 %global_routine ('NML$DEQUEUE_REQUEST') : novalue =
; 0487
; 0488 !++
; 0489 ! FUNCTIONAL DESCRIPTION:
; 0490 !
; 0491 ! Retrieves NML NICE requests from the NML request queue, calls
; 0492 ! NML$NICE_VERIFY to perform NICE message syntax verification and
; 0493 ! preprocessing. If the NICE request message is valid calls
; 0494 ! NML$NICE_EXECUTE to perform the requested NICE function, otherwise
; 0495 ! calls NML$NICE_RESPONSE to build a NICE error response message and
; 0496 ! NML$REQUEST_FINISH to remove the request from the active queue.
; 0497 ! This is the main processing loop for NML requests.
; 0498 !
; 0499 ! FORMAL PARAMETERS
; 0500 !
; 0501 ! NONE.
; 0502 !
; 0503 ! IMPLICIT INPUTS
; 0504 !
; 0505 ! NML NICE request queue.
; 0506 !
; 0507 ! ROUTINE VALUE:
; 0508 !
; 0509 ! NONE.
; 0510 !
; 0511 ! SIDE EFFECTS:
; 0512 !
; 0513 ! The processed NML NICE local request is removed from the active queue.
; 0514 !
; 0515 !--
; 0516
; 0517 begin
; 0518
; 0519 bind
; 0520 NULL = UPLIT(0); ! An "I-0" message
; 0521
; 0522 local
; 0523 RTN_COD, ! NICE return code
; 0524 REQ: ref REQUEST_BLOCK; ! Address of NML request block
; 0525
; 0526 !
; 0527 ! Top level loop for NICE requests
; 0528 !
; 0529
; 0530 while 1 ! Main NML Request processing loop
; 0531 do begin
; 0532 REQ = NML$REQUEST_NEXT (RT$LOCAL); ! Get next local request to process
; 0533 REQ[RB_NICE_POSITION] = 0; ! Initialize position in NICE message
; 0534 REQ[RB_NICE_POINTER] = ch$ptr(.REQ[RB_NICE],,8); ! Initialize pointer
; 0535 REQ[RB_ERROR_DETAIL] = -1; ! Initialize for response msg
; 0536 REQ[RB_ERROR_POINTER] = ch$ptr (NULL,,8);
; 0537
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 11
X03.30 NML$DEQUEUE_REQUEST as NL_DQR 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (4)
; 0538 RTN_COD = NML$NICE_VERIFY (.REQ); ! Verify the NICE message syntax
; 0539
; 0540 if .RTN_COD eql 1 ! And if valid
; 0541 then RTN_COD = NML$NICE_EXECUTE (.REQ); ! Execute the request
; 0542
; 0543 if .RTN_COD neq 1 ! If failed
; 0544 then begin ! Return reason if invalid
; 0545 if .REQ[RB_RESPONSE_LENGTH] eql 0
; 0546 then begin
; 0547 REQ[RB_RETURN_CODE] = .RTN_COD; ! Set return code in RB
; 0548 NML$NICE_RESPONSE (.REQ); ! Format response message
; 0549 end;
; 0550 NML$REQUEST_FINISH (.REQ); ! Queue request for completion
; 0551 end;
; 0552 end;
; 0553
; 0554 end; ! End of NML$DEQUEUE_REQUEST
.TITLE NMLNIC NMLNIC -- NICE Message Verifier
.IDENT /X03.30/
000000 .PSECT $PLIT$, RO , D
000000 000000 P.AAA: .WORD 0
.GLOBL US.CREATE, US.ABORT, US.FINI, US.COMPLETE
.GLOBL US.ERROR, US.INSERT, US.REMOVE
.GLOBL US.QRESET, US.QQINS, US.QQREM
.GLOBL US.QQSET, US.QQEXT, US.EVENT, US.WAIT
.GLOBL US.FLAG, US.SLEEP, US.CURRENT
.GLOBL US.DESCHEDULE, UM.RESET, UM.INITIALIZE
.GLOBL UM.GET, UM.RELEASE, UQ.RESET, UQ.INSERT
.GLOBL UQ.REMOVE, UQ.EXTRACT, UQ.LENGTH
.GLOBL UQ.SCAN, UQ.SEXTRACT, NL.INIT
.GLOBL NL.RENTER, NL.REMOVE, NL.FINISH
.GLOBL NL.LOD, NL.DMP, NL.TRG, NL.TST
.GLOBL NL.CHG, NL.REA, NL.ZRO, NL.SPC
.GLOBL NL.PLU, UN.LOCAL
000000' NULL= P.AAA
.SBTTL NL.DQR NML$DEQUEUE_REQUEST as NL_DQR
000000 .PSECT $CODE$, RO
000000 004167 000000G NL.DQR::JSR R1,$SAVE2 ; 0486
000004 012746 000001 1$: MOV #1,-(SP) ; 0532
000010 004767 000000G JSR PC,NL.REMOVE
000014 010001 MOV R0,R1 ; *,REQ
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 12
X03.30 NML$DEQUEUE_REQUEST as NL_DQR 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (4)
000016 005061 000070 CLR 70(R1) ; *(REQ) 0533
000022 016161 000024 000066 MOV 24(R1),66(R1) ; *(REQ),*(REQ) 0534
000030 012761 177777 000120 MOV #-1,120(R1) ; *,*(REQ) 0535
000036 012761 000000' 000122 MOV #NULL,122(R1) ; *,*(REQ) 0536
000044 010116 MOV R1,(SP) ; REQ,* 0538
000046 004767 000000V JSR PC,NML$NICE.VERIFY
000052 010002 MOV R0,R2 ; *,RTN.COD
000054 020227 000001 CMP R2,#1 ; RTN.COD,* 0540
000060 001007 BNE 2$
000062 010116 MOV R1,(SP) ; REQ,* 0541
000064 004767 000000V JSR PC,NML$NICE.EXECUTE
000070 010002 MOV R0,R2 ; *,RTN.COD
000072 020227 000001 CMP R2,#1 ; RTN.COD,* 0543
000076 001413 BEQ 4$
000100 005761 000034 2$: TST 34(R1) ; *(REQ) 0545
000104 001005 BNE 3$
000106 110261 000116 MOVB R2,116(R1) ; RTN.COD,*(REQ) 0547
000112 010116 MOV R1,(SP) ; REQ,* 0548
000114 004767 000000V JSR PC,NL.RSP
000120 010116 3$: MOV R1,(SP) ; REQ,* 0550
000122 004767 000000G JSR PC,NL.FINISH
000126 005726 4$: TST (SP)+ ; 0531
000130 000725 BR 1$ ; 0530
; Routine Size: 45 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 5 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 13
X03.30 NML$NICE_VERIFY 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (5)
; 0555 %routine ('NML$NICE_VERIFY', REQ) =
; 0556
; 0557 !++
; 0558 ! FUNCTIONAL DESCRIPTION:
; 0559 !
; 0560 ! Performs syntax verification of NICE request messages.
; 0561 !
; 0562 ! FORMAL PARAMETERS
; 0563 !
; 0564 ! REQ - Address of NICE request block (RB).
; 0565 !
; 0566 ! IMPLICIT INPUTS
; 0567 !
; 0568 ! NONE.
; 0569 !
; 0570 ! ROUTINE VALUE:
; 0571 !
; 0572 ! 1 if NICE request message has valid syntax.
; 0573 ! NEGATIVE NICE error return code if invalid.
; 0574 !
; 0575 ! SIDE EFFECTS:
; 0576 !
; 0577 ! NONE.
; 0578 !
; 0579 !--
; 0580
; 0581 begin
; 0582
; 0583 map
; 0584 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 0585
; 0586 if NEXTB_NICE ! Get NICE request function code
; 0587 then REQ[RB_NICE_FUNCTION] = GETB (REQ[RB_NICE_POINTER])
; L 0588 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0589
; 0590 !
; 0591 ! Verify validity of NICE function code and dispatch to function
; 0592 ! specific verification routine if valid.
; 0593 !
; 0594
; 0595 case .REQ[RB_NICE_FUNCTION] from LOAD_ to SYSTEM_SPECIFIC_ of
; 0596 set
; 0597 [LOAD_]:
; 0598 return VY_LOAD_REQUEST (.REQ);
; 0599 [DUMP_]:
; 0600 return VY_DUMP_REQUEST (.REQ);
; 0601 [TRIGGER_]:
; 0602 return VY_TRIGGER_REQUEST (.REQ);
; 0603 [TEST_]:
; 0604 return VY_TEST_REQUEST (.REQ);
; 0605 [CHANGE_]:
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 14
X03.30 NML$NICE_VERIFY 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (5)
; 0606 return VY_CHANGE_REQUEST (.REQ);
; 0607 [READ_]:
; 0608 return VY_READ_REQUEST (.REQ);
; 0609 [ZERO_]:
; 0610 return VY_ZERO_REQUEST (.REQ);
; 0611 [SYSTEM_SPECIFIC_]:
; 0612 return VY_SYSTEM_SPECIFIC (.REQ);
; 0613 [inrange,
; 0614 outrange]:
; L 0615 return $NICE$ERR_UFO;
; %PRINT: Unrecognized function or option
; 0616 tes;
; 0617
; 0618 end; ! End of NML$NICE_VERIFY
.SBTTL NML$NICE.VERIFY NML$NICE_VERIFY
000000 010146 NML$NICE.VERIFY:
MOV R1,-(SP) ; 0555
000002 016601 000004 MOV 4(SP),R1 ; REQ,* 0586
000006 016100 000070 MOV 70(R1),R0 ; *,$$NEXTB.TEMP
000012 005200 INC R0 ; $$NEXTB.TEMP
000014 026100 000030 CMP 30(R1),R0 ; *,$$NEXTB.TEMP
000020 002412 BLT 1$
000022 010061 000070 MOV R0,70(R1) ; $$NEXTB.TEMP,*
000026 005261 000066 INC 66(R1) ; 0587
000032 016100 000066 MOV 66(R1),R0
000036 116061 177777 000072 MOVB -1(R0),72(R1)
000044 000403 BR 2$ ; 0586
000046 012700 177776 1$: MOV #-2,R0 ; 0588
000052 000456 BR 13$
000054 005000 2$: CLR R0 ; 0595
000056 156100 000072 BISB 72(R1),R0
000062 162700 000017 SUB #17,R0
000066 020027 000007 CMP R0,#7
000072 101003 BHI 3$
000074 006300 ASL R0
000076 066007 000002' ADD P.AAB(R0),PC ; Case dispatch
000102 012700 177777 3$: MOV #-1,R0
000106 000440 BR 13$
000110 010146 4$: MOV R1,-(SP) ; 0598
000112 004767 000000V JSR PC,VY.LOAD.REQUEST
000116 000433 BR 12$
000120 010146 5$: MOV R1,-(SP) ; 0600
000122 004767 000000V JSR PC,VY.DUMP.REQUEST
000126 000427 BR 12$
000130 010146 6$: MOV R1,-(SP) ; 0602
000132 004767 000000V JSR PC,VY.TRIGGER.REQUEST
000136 000423 BR 12$
000140 010146 7$: MOV R1,-(SP) ; 0604
000142 004767 000000V JSR PC,VY.TEST.REQUEST
000146 000417 BR 12$
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 15
X03.30 NML$NICE_VERIFY 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (5)
000150 010146 8$: MOV R1,-(SP) ; 0606
000152 004767 000000V JSR PC,VY.CHANGE.REQUEST
000156 000413 BR 12$
000160 010146 9$: MOV R1,-(SP) ; 0608
000162 004767 000000V JSR PC,VY.READ.REQUEST
000166 000407 BR 12$
000170 010146 10$: MOV R1,-(SP) ; 0610
000172 004767 000000V JSR PC,VY.ZERO.REQUEST
000176 000403 BR 12$
000200 010146 11$: MOV R1,-(SP) ; 0612
000202 004767 000000V JSR PC,VY.SYSTEM.SPECIFIC
000206 005726 12$: TST (SP)+
000210 012601 13$: MOV (SP)+,R1 ; 0555
000212 000207 RTS PC
; Routine Size: 70 words, Routine Base: $CODE$ + 0132
; Maximum stack depth per invocation: 3 words
000002 .PSECT $PLIT$, RO , D
P.AAB: ; CASE Table for NML$NICE.VERIFY+0076 0595
000002 000006 .WORD 6 ; [4$]
000004 000016 .WORD 16 ; [5$]
000006 000026 .WORD 26 ; [6$]
000010 000036 .WORD 36 ; [7$]
000012 000046 .WORD 46 ; [8$]
000014 000056 .WORD 56 ; [9$]
000016 000066 .WORD 66 ; [10$]
000020 000076 .WORD 76 ; [11$]
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 16
X03.30 VY_LOAD_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (6)
; 0619 %routine ('VY_LOAD_REQUEST', REQ) =
; 0620
; 0621 !++
; 0622 ! FUNCTIONAL DESCRIPTION:
; 0623 !
; 0624 ! Performs syntax verification of NICE load request messages.
; 0625 !
; 0626 ! FORMAL PARAMETERS
; 0627 !
; 0628 ! REQ - Address of NICE request block (RB).
; 0629 !
; 0630 ! IMPLICIT INPUTS
; 0631 !
; 0632 ! NONE.
; 0633 !
; 0634 ! ROUTINE VALUE:
; 0635 !
; 0636 ! 1 if NICE request message has valid syntax.
; 0637 ! NEGATIVE NICE error return code if invalid.
; 0638 !
; 0639 ! SIDE EFFECTS:
; 0640 !
; 0641 ! NONE.
; 0642 !
; 0643 !--
; 0644
; 0645 begin
; 0646
; 0647 literal
; 0648 SET_DEFINE = 0; ! Parameters with value as in SET
; 0649
; 0650 map
; 0651 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 0652
; 0653 local
; 0654 OPT: block[1] field (LOAD_OPTIONS), ! NICE request options
; 0655 RTN_COD; ! NICE return code
; 0656
; 0657 if NEXTB_NICE
; 0658 then OPT = GETB (REQ[RB_NICE_POINTER]) ! Get the option byte
; L 0659 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0660
; 0661 REQ[RB_NICE_OPTION] = .OPT; ! Store option byte in RB
; 0662
; 0663 if (.OPT[LO_ENTITY_TYPE] neq NODE_E) ! Check for allowable entity
; 0664 and (.OPT[LO_ENTITY_TYPE] neq CIRCUIT_)
; L 0665 then return $NICE$ERR_UFO;
; %PRINT: Unrecognized function or option
; 0666
; 0667 if .OPT[LO_RESERVED] neq 0 ! Check for reserved bits all zero
; L 0668 then return $NICE$ERR_UFO;
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 17
X03.30 VY_LOAD_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (6)
; %PRINT: Unrecognized function or option
; 0669
; 0670 REQ[RB_NICE_ENTITY_TYPE] = .OPT[LO_ENTITY_TYPE]; ! Get the entity type
; 0671 RTN_COD = GET_ENTITY_ID (.REQ); ! Process entity id
; 0672
; 0673 if .RTN_COD leq -1 ! Check for valid entity id
; 0674 then return .RTN_COD;
; 0675
; 0676 REQ[RB_NICE_ENTITY_TYPE] = NODE_E; ! Parameters belong to node
; 0677 RTN_COD = VERIFY_PARAMETERS (SET_DEFINE, .REQ);
; 0678 REQ[RB_NICE_ENTITY_TYPE] = .OPT[LO_ENTITY_TYPE]; ! Get the entity type
; 0679
; 0680 return .RTN_COD;
; 0681 end; ! End of VY_LOAD_REQUEST
.SBTTL VY.LOAD.REQUEST VY_LOAD_REQUEST
000346 .PSECT $CODE$, RO
000000 004167 000000G VY.LOAD.REQUEST:
JSR R1,$SAVE4 ; 0619
000004 016603 000014 MOV 14(SP),R3 ; REQ,* 0657
000010 016300 000070 MOV 70(R3),R0 ; *,$$NEXTB.TEMP
000014 005200 INC R0 ; $$NEXTB.TEMP
000016 026300 000030 CMP 30(R3),R0 ; *,$$NEXTB.TEMP
000022 002412 BLT 1$
000024 010063 000070 MOV R0,70(R3) ; $$NEXTB.TEMP,*
000030 005263 000066 INC 66(R3) ; 0658
000034 016300 000066 MOV 66(R3),R0
000040 005002 CLR R2 ; OPT
000042 156002 177777 BISB -1(R0),R2 ; *,OPT
000046 000403 BR 2$ ; 0657
000050 012700 177776 1$: MOV #-2,R0 ; 0659
000054 000207 RTS PC
000056 110263 000073 2$: MOVB R2,73(R3) ; OPT,* 0661
000062 032702 000007 BIT #7,R2 ; *,OPT 0663
000066 001406 BEQ 3$
000070 010200 MOV R2,R0 ; OPT,* 0664
000072 042700 177770 BIC #177770,R0
000076 020027 000003 CMP R0,#3
000102 001003 BNE 4$ ; 0665
000104 032702 000370 3$: BIT #370,R2 ; *,OPT 0667
000110 001403 BEQ 5$
000112 012700 177777 4$: MOV #-1,R0 ; 0668
000116 000207 RTS PC
000120 012704 000074 5$: MOV #74,R4 ; 0670
000124 060304 ADD R3,R4
000126 010200 MOV R2,R0 ; OPT,*
000130 042700 177770 BIC #177770,R0
000134 105014 CLRB (R4)
000136 150014 BISB R0,(R4)
000140 010346 MOV R3,-(SP) ; 0671
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 18
X03.30 VY_LOAD_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (6)
000142 004767 000000V JSR PC,GET.ENTITY.ID
000146 010001 MOV R0,R1 ; *,RTN.COD
000150 002002 BGE 6$ ; 0673
000152 005726 TST (SP)+ ; 0674
000154 000414 BR 7$
000156 105014 6$: CLRB (R4) ; 0676
000160 005016 CLR (SP) ; 0677
000162 010346 MOV R3,-(SP)
000164 004767 000000V JSR PC,VERIFY.PARAMETERS
000170 010001 MOV R0,R1 ; *,RTN.COD
000172 010200 MOV R2,R0 ; OPT,* 0678
000174 042700 177770 BIC #177770,R0
000200 105014 CLRB (R4)
000202 150014 BISB R0,(R4)
000204 022626 CMP (SP)+,(SP)+ ; 0619
000206 010100 7$: MOV R1,R0 ; RTN.COD,* 0645
000210 000207 RTS PC ; 0619
; Routine Size: 69 words, Routine Base: $CODE$ + 0346
; Maximum stack depth per invocation: 8 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 19
X03.30 VY_DUMP_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (7)
; 0682 %routine ('VY_DUMP_REQUEST', REQ) =
; 0683
; 0684 !++
; 0685 ! FUNCTIONAL DESCRIPTION:
; 0686 !
; 0687 ! Performs syntax verification of NICE dump request messages.
; 0688 !
; 0689 ! FORMAL PARAMETERS
; 0690 !
; 0691 ! REQ - Address of NICE request block (RB).
; 0692 !
; 0693 ! IMPLICIT INPUTS
; 0694 !
; 0695 ! NONE.
; 0696 !
; 0697 ! ROUTINE VALUE:
; 0698 !
; 0699 ! 1 if NICE request message has valid syntax.
; 0700 ! NEGATIVE NICE error return code if invalid.
; 0701 !
; 0702 ! SIDE EFFECTS:
; 0703 !
; 0704 ! NONE.
; 0705 !
; 0706 !--
; 0707
; 0708 begin
; 0709
; 0710 literal
; 0711 SET_DEFINE = 0; ! Parameters with value as in SET
; 0712
; 0713 map
; 0714 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 0715
; 0716 local
; 0717 OPT: block[1] field (DUMP_OPTIONS), ! NICE request options
; 0718 RTN_COD; ! NICE return code
; 0719
; 0720 if NEXTB_NICE
; 0721 then OPT = GETB (REQ[RB_NICE_POINTER]) ! Get the option byte
; L 0722 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0723
; 0724 REQ[RB_NICE_OPTION] = .OPT; ! Store option byte in RB
; 0725
; 0726 if (.OPT[DO_ENTITY_TYPE] neq NODE_E) ! Check for allowable entity
; 0727 and (.OPT[DO_ENTITY_TYPE] neq CIRCUIT_)
; L 0728 then return $NICE$ERR_UFO;
; %PRINT: Unrecognized function or option
; 0729
; 0730 if .OPT[DO_RESERVED] neq 0 ! Check for reserved bits all zero
; L 0731 then return $NICE$ERR_UFO;
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 20
X03.30 VY_DUMP_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (7)
; %PRINT: Unrecognized function or option
; 0732
; 0733 REQ[RB_NICE_ENTITY_TYPE] = .OPT[DO_ENTITY_TYPE]; ! Get the entity type
; 0734 RTN_COD = GET_ENTITY_ID (.REQ); ! Process entity id
; 0735
; 0736 if .RTN_COD leq -1 ! Check for valid entity id
; 0737 then return .RTN_COD;
; 0738
; 0739 REQ[RB_NICE_ENTITY_TYPE] = NODE_E; ! Parameters belong to node
; 0740 RTN_COD = VERIFY_PARAMETERS (SET_DEFINE, .REQ);
; 0741 REQ[RB_NICE_ENTITY_TYPE] = .OPT[DO_ENTITY_TYPE]; ! Get the entity type
; 0742
; 0743 return .RTN_COD;
; 0744 end; ! End of VY_DUMP_REQUEST
.SBTTL VY.DUMP.REQUEST VY_DUMP_REQUEST
000000 004167 000000G VY.DUMP.REQUEST:
JSR R1,$SAVE4 ; 0682
000004 016603 000014 MOV 14(SP),R3 ; REQ,* 0720
000010 016300 000070 MOV 70(R3),R0 ; *,$$NEXTB.TEMP
000014 005200 INC R0 ; $$NEXTB.TEMP
000016 026300 000030 CMP 30(R3),R0 ; *,$$NEXTB.TEMP
000022 002412 BLT 1$
000024 010063 000070 MOV R0,70(R3) ; $$NEXTB.TEMP,*
000030 005263 000066 INC 66(R3) ; 0721
000034 016300 000066 MOV 66(R3),R0
000040 005002 CLR R2 ; OPT
000042 156002 177777 BISB -1(R0),R2 ; *,OPT
000046 000403 BR 2$ ; 0720
000050 012700 177776 1$: MOV #-2,R0 ; 0722
000054 000207 RTS PC
000056 110263 000073 2$: MOVB R2,73(R3) ; OPT,* 0724
000062 032702 000007 BIT #7,R2 ; *,OPT 0726
000066 001406 BEQ 3$
000070 010200 MOV R2,R0 ; OPT,* 0727
000072 042700 177770 BIC #177770,R0
000076 020027 000003 CMP R0,#3
000102 001003 BNE 4$ ; 0728
000104 032702 000370 3$: BIT #370,R2 ; *,OPT 0730
000110 001403 BEQ 5$
000112 012700 177777 4$: MOV #-1,R0 ; 0731
000116 000207 RTS PC
000120 012704 000074 5$: MOV #74,R4 ; 0733
000124 060304 ADD R3,R4
000126 010200 MOV R2,R0 ; OPT,*
000130 042700 177770 BIC #177770,R0
000134 105014 CLRB (R4)
000136 150014 BISB R0,(R4)
000140 010346 MOV R3,-(SP) ; 0734
000142 004767 000000V JSR PC,GET.ENTITY.ID
000146 010001 MOV R0,R1 ; *,RTN.COD
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 21
X03.30 VY_DUMP_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (7)
000150 002002 BGE 6$ ; 0736
000152 005726 TST (SP)+ ; 0737
000154 000414 BR 7$
000156 105014 6$: CLRB (R4) ; 0739
000160 005016 CLR (SP) ; 0740
000162 010346 MOV R3,-(SP)
000164 004767 000000V JSR PC,VERIFY.PARAMETERS
000170 010001 MOV R0,R1 ; *,RTN.COD
000172 010200 MOV R2,R0 ; OPT,* 0741
000174 042700 177770 BIC #177770,R0
000200 105014 CLRB (R4)
000202 150014 BISB R0,(R4)
000204 022626 CMP (SP)+,(SP)+ ; 0682
000206 010100 7$: MOV R1,R0 ; RTN.COD,* 0708
000210 000207 RTS PC ; 0682
; Routine Size: 69 words, Routine Base: $CODE$ + 0560
; Maximum stack depth per invocation: 8 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 22
X03.30 VY_TRIGGER_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (8)
; 0745 %routine ('VY_TRIGGER_REQUEST', REQ) =
; 0746
; 0747 !++
; 0748 ! FUNCTIONAL DESCRIPTION:
; 0749 !
; 0750 ! Performs syntax verification of NICE trigger boot request messages.
; 0751 !
; 0752 ! FORMAL PARAMETERS
; 0753 !
; 0754 ! REQ - Address of NICE request block (RB).
; 0755 !
; 0756 ! IMPLICIT INPUTS
; 0757 !
; 0758 ! NONE.
; 0759 !
; 0760 ! ROUTINE VALUE:
; 0761 !
; 0762 ! 1 if NICE request message has valid syntax.
; 0763 ! NEGATIVE NICE error return code if invalid.
; 0764 !
; 0765 ! SIDE EFFECTS:
; 0766 !
; 0767 ! NONE.
; 0768 !
; 0769 !--
; 0770
; 0771 begin
; 0772
; 0773 literal
; 0774 SET_DEFINE = 0; ! Parameters with value as in SET
; 0775
; 0776 map
; 0777 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 0778
; 0779 local
; 0780 OPT: block[1] field (BOOT_OPTIONS), ! NICE request options
; 0781 RTN_COD; ! NICE return code
; 0782
; 0783 if NEXTB_NICE
; 0784 then OPT = GETB (REQ[RB_NICE_POINTER]) ! Get the option byte
; L 0785 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0786
; 0787 REQ[RB_NICE_OPTION] = .OPT; ! Store option byte in RB
; 0788
; 0789 if (.OPT[BO_ENTITY_TYPE] neq NODE_E) ! Check for allowable entity
; 0790 and (.OPT[BO_ENTITY_TYPE] neq CIRCUIT_)
; L 0791 then return $NICE$ERR_UFO;
; %PRINT: Unrecognized function or option
; 0792
; 0793 if .OPT[BO_RESERVED] neq 0 ! Check for reserved bits all zero
; L 0794 then return $NICE$ERR_UFO;
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 23
X03.30 VY_TRIGGER_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (8)
; %PRINT: Unrecognized function or option
; 0795
; 0796 REQ[RB_NICE_ENTITY_TYPE] = .OPT[BO_ENTITY_TYPE]; ! Get the entity type
; 0797 RTN_COD = GET_ENTITY_ID (.REQ); ! Process entity id
; 0798
; 0799 if .RTN_COD leq -1 ! Check for valid entity id
; 0800 then return .RTN_COD;
; 0801
; 0802 REQ[RB_NICE_ENTITY_TYPE] = NODE_E; ! Parameters belong to node
; 0803 RTN_COD = VERIFY_PARAMETERS (SET_DEFINE, .REQ);
; 0804 REQ[RB_NICE_ENTITY_TYPE] = .OPT[BO_ENTITY_TYPE]; ! Get the entity type
; 0805
; 0806 return .RTN_COD;
; 0807 end; ! End of VY_TRIGGER_REQUEST
.SBTTL VY.TRIGGER.REQUEST VY_TRIGGER_REQUEST
000000 004167 000000G VY.TRIGGER.REQUEST:
JSR R1,$SAVE4 ; 0745
000004 016603 000014 MOV 14(SP),R3 ; REQ,* 0783
000010 016300 000070 MOV 70(R3),R0 ; *,$$NEXTB.TEMP
000014 005200 INC R0 ; $$NEXTB.TEMP
000016 026300 000030 CMP 30(R3),R0 ; *,$$NEXTB.TEMP
000022 002412 BLT 1$
000024 010063 000070 MOV R0,70(R3) ; $$NEXTB.TEMP,*
000030 005263 000066 INC 66(R3) ; 0784
000034 016300 000066 MOV 66(R3),R0
000040 005002 CLR R2 ; OPT
000042 156002 177777 BISB -1(R0),R2 ; *,OPT
000046 000403 BR 2$ ; 0783
000050 012700 177776 1$: MOV #-2,R0 ; 0785
000054 000207 RTS PC
000056 110263 000073 2$: MOVB R2,73(R3) ; OPT,* 0787
000062 032702 000007 BIT #7,R2 ; *,OPT 0789
000066 001406 BEQ 3$
000070 010200 MOV R2,R0 ; OPT,* 0790
000072 042700 177770 BIC #177770,R0
000076 020027 000003 CMP R0,#3
000102 001003 BNE 4$ ; 0791
000104 032702 000370 3$: BIT #370,R2 ; *,OPT 0793
000110 001403 BEQ 5$
000112 012700 177777 4$: MOV #-1,R0 ; 0794
000116 000207 RTS PC
000120 012704 000074 5$: MOV #74,R4 ; 0796
000124 060304 ADD R3,R4
000126 010200 MOV R2,R0 ; OPT,*
000130 042700 177770 BIC #177770,R0
000134 105014 CLRB (R4)
000136 150014 BISB R0,(R4)
000140 010346 MOV R3,-(SP) ; 0797
000142 004767 000000V JSR PC,GET.ENTITY.ID
000146 010001 MOV R0,R1 ; *,RTN.COD
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 24
X03.30 VY_TRIGGER_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (8)
000150 002002 BGE 6$ ; 0799
000152 005726 TST (SP)+ ; 0800
000154 000414 BR 7$
000156 105014 6$: CLRB (R4) ; 0802
000160 005016 CLR (SP) ; 0803
000162 010346 MOV R3,-(SP)
000164 004767 000000V JSR PC,VERIFY.PARAMETERS
000170 010001 MOV R0,R1 ; *,RTN.COD
000172 010200 MOV R2,R0 ; OPT,* 0804
000174 042700 177770 BIC #177770,R0
000200 105014 CLRB (R4)
000202 150014 BISB R0,(R4)
000204 022626 CMP (SP)+,(SP)+ ; 0745
000206 010100 7$: MOV R1,R0 ; RTN.COD,* 0771
000210 000207 RTS PC ; 0745
; Routine Size: 69 words, Routine Base: $CODE$ + 0772
; Maximum stack depth per invocation: 8 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 25
X03.30 VY_TEST_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (9)
; 0808 %routine ('VY_TEST_REQUEST', REQ) =
; 0809
; 0810 !++
; 0811 ! FUNCTIONAL DESCRIPTION:
; 0812 !
; 0813 ! Performs syntax verification of NICE test request messages.
; 0814 !
; 0815 ! FORMAL PARAMETERS
; 0816 !
; 0817 ! REQ - Address of NICE request block (RB).
; 0818 !
; 0819 ! IMPLICIT INPUTS
; 0820 !
; 0821 ! NONE.
; 0822 !
; 0823 ! ROUTINE VALUE:
; 0824 !
; 0825 ! 1 if NICE request message has valid syntax.
; 0826 ! NEGATIVE NICE error return code if invalid.
; 0827 !
; 0828 ! SIDE EFFECTS:
; 0829 !
; 0830 ! NONE.
; 0831 !
; 0832 !--
; 0833
; 0834 begin
; 0835
; 0836 literal
; 0837 SET_DEFINE = 0; ! Parameters with value as in SET
; 0838
; 0839 map
; 0840 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 0841
; 0842 local
; 0843 OPT: block[1] field (TEST_OPTIONS), ! NICE request options
; 0844 RTN_COD; ! NICE return code
; 0845
; 0846 if NEXTB_NICE ! Process option byte if present
; 0847 then REQ[RB_NICE_OPTION] = GETB (REQ[RB_NICE_POINTER])
; L 0848 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0849
; 0850 OPT = .REQ[RB_NICE_OPTION]; ! Get the option byte
; 0851 REQ[RB_NICE_ENTITY_TYPE] = .OPT[TO_ENTITY_TYPE]; ! Get the entity type
; 0852
; 0853 if .OPT[TO_RESERVED] neq 0 ! Check for reserved bits all zero
; L 0854 then return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0855
; 0856 RTN_COD = GET_ENTITY_ID (.REQ); ! Process entity id
; 0857
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 26
X03.30 VY_TEST_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (9)
; 0858 if .RTN_COD leq -1 ! Check for valid entity id
; 0859 then return .RTN_COD;
; 0860
; 0861 if .REQ[RB_NICE_ENTITY_TYPE] neq NODE_E ! Get and check entity type
; 0862 then begin ! LINE type loop test
; 0863 local ENT_TYP; ! Temporary for entity type
; 0864
; 0865 if .OPT[TO_ACCESS_CONTROL] ! Access control not valid with LINE
; L 0866 then return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0867 ENT_TYP = .REQ[RB_NICE_ENTITY_TYPE]; ! Save entity type
; 0868 REQ[RB_NICE_ENTITY_TYPE] = NODE_E; ! Parameters are for NODE entity
; 0869 RTN_COD = VERIFY_PARAMETERS (SET_DEFINE,.REQ); ! Process parameters
; 0870 REQ[RB_NICE_ENTITY_TYPE] = .ENT_TYP;
; 0871 end
; 0872 else begin ! NODE type loop test
; 0873
; 0874 ! Clear access control fields in RB for our use
; 0875
; 0876 REQ[RB_USER_LENGTH] = REQ[RB_USER] = 0;
; 0877 REQ[RB_PASSWORD_LENGTH] = REQ[RB_PASSWORD] = 0;
; 0878 REQ[RB_ACCOUNT_LENGTH] = REQ[RB_ACCOUNT] = 0;
; 0879
; 0880 if .OPT[TO_ACCESS_CONTROL]
; 0881 then begin ! Process the 3 access control fields
; 0882 if NEXTF_NICE
; 0883 then begin ! Process User id field if in message
; 0884 REQ[RB_USER_LENGTH] = GETB (REQ[RB_NICE_POINTER]);
; 0885 if (.REQ[RB_USER_LENGTH] gtr 0)
; 0886 and (.REQ[RB_NICE_LENGTH] gtr .REQ[RB_NICE_POSITION])
; 0887 then REQ[RB_USER] = .REQ[RB_NICE_POINTER];
; 0888 ADVANCE (REQ[RB_NICE_POINTER], .REQ[RB_USER_LENGTH]);
; 0889 end
; L 0890 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0891
; 0892 if NEXTF_NICE
; 0893 then begin ! Process password field
; 0894 REQ[RB_PASSWORD_LENGTH] = GETB (REQ[RB_NICE_POINTER]);
; 0895 if (.REQ[RB_PASSWORD_LENGTH] gtr 0)
; 0896 and (.REQ[RB_NICE_LENGTH] gtr .REQ[RB_NICE_POSITION])
; 0897 then REQ[RB_PASSWORD] = .REQ[RB_NICE_POINTER];
; 0898 ADVANCE (REQ[RB_NICE_POINTER], .REQ[RB_PASSWORD_LENGTH]);
; 0899 end
; L 0900 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0901
; 0902 if NEXTF_NICE
; 0903 then begin ! Process account field
; 0904 REQ[RB_ACCOUNT_LENGTH] = GETB (REQ[RB_NICE_POINTER]);
; 0905 if (.REQ[RB_ACCOUNT_LENGTH] gtr 0)
; 0906 and (.REQ[RB_NICE_LENGTH] gtr .REQ[RB_NICE_POSITION])
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 27
X03.30 VY_TEST_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (9)
; 0907 then REQ[RB_ACCOUNT] = .REQ[RB_NICE_POINTER];
; 0908 ADVANCE (REQ[RB_NICE_POINTER], .REQ[RB_ACCOUNT_LENGTH]);
; 0909 end
; L 0910 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0911 end;
; 0912
; 0913 RTN_COD = VERIFY_PARAMETERS (SET_DEFINE, .REQ);
; 0914 end;
; 0915
; 0916 return .RTN_COD;
; 0917 end; ! End of VY_TEST_REQUEST
.SBTTL VY.TEST.REQUEST VY_TEST_REQUEST
000000 004167 000000G VY.TEST.REQUEST:
JSR R1,$SAVE5 ; 0808
000004 162706 000006 SUB #6,SP
000010 016605 000024 MOV 24(SP),R5 ; REQ,* 0846
000014 012766 000030 000004 MOV #30,4(SP)
000022 060566 000004 ADD R5,4(SP)
000026 012766 000070 000002 MOV #70,2(SP)
000034 060566 000002 ADD R5,2(SP)
000040 017600 000002 MOV @2(SP),R0 ; *,$$NEXTB.TEMP
000044 005200 INC R0 ; $$NEXTB.TEMP
000046 027600 000004 CMP @4(SP),R0 ; *,$$NEXTB.TEMP
000052 002002 BGE 2$
000054 000167 000526 1$: JMP 10$
000060 010076 000002 2$: MOV R0,@2(SP) ; $$NEXTB.TEMP,*
000064 005265 000066 INC 66(R5) ; 0847
000070 016500 000066 MOV 66(R5),R0
000074 116065 177777 000073 MOVB -1(R0),73(R5)
000102 005002 CLR R2 ; OPT 0850
000104 156502 000073 BISB 73(R5),R2 ; *,OPT
000110 012703 000074 MOV #74,R3 ; 0851
000114 060503 ADD R5,R3
000116 010200 MOV R2,R0 ; OPT,*
000120 042700 177770 BIC #177770,R0
000124 105013 CLRB (R3)
000126 150013 BISB R0,(R3)
000130 032702 000170 BIT #170,R2 ; *,OPT 0853
000134 001347 BNE 1$ ; 0854
000136 010546 MOV R5,-(SP) ; 0856
000140 004767 000000V JSR PC,GET.ENTITY.ID
000144 010004 MOV R0,R4 ; *,RTN.COD
000146 002003 BGE 3$ ; 0858
000150 005726 TST (SP)+ ; 0859
000152 000167 000452 JMP 13$
000156 105713 3$: TSTB (R3) ; 0861
000160 001417 BEQ 5$
000162 105702 TSTB R2 ; OPT 0865
000164 100002 BPL 4$ ; 0866
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 28
X03.30 VY_TEST_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (9)
000166 000167 000412 JMP 9$
000172 005001 4$: CLR R1 ; ENT.TYP 0867
000174 151301 BISB (R3),R1 ; *,ENT.TYP
000176 105013 CLRB (R3) ; 0868
000200 005016 CLR (SP) ; 0869
000202 010546 MOV R5,-(SP)
000204 004767 000000V JSR PC,VERIFY.PARAMETERS
000210 010004 MOV R0,R4 ; *,RTN.COD
000212 110113 MOVB R1,(R3) ; ENT.TYP,* 0870
000214 000167 000406 JMP 12$ ; 0861
000220 012701 000054 5$: MOV #54,R1 ; 0876
000224 060501 ADD R5,R1
000226 005065 000052 CLR 52(R5)
000232 005011 CLR (R1)
000234 012766 000060 000002 MOV #60,2(SP) ; 0877
000242 060566 000002 ADD R5,2(SP)
000246 005065 000056 CLR 56(R5)
000252 005076 000002 CLR @2(SP)
000256 012703 000064 MOV #64,R3 ; 0878
000262 060503 ADD R5,R3
000264 005065 000062 CLR 62(R5)
000270 005013 CLR (R3)
000272 105702 TSTB R2 ; OPT 0880
000274 100147 BPL 11$
000276 017600 000004 MOV @4(SP),R0 ; *,$$NEXTF.TEMP 0882
000302 005200 INC R0 ; $$NEXTF.TEMP
000304 027600 000006 CMP @6(SP),R0 ; *,$$NEXTF.TEMP
000310 002535 BLT 9$
000312 117576 000066 000004 MOVB @66(R5),@4(SP)
000320 042776 177400 000004 BIC #177400,@4(SP)
000326 060076 000004 ADD R0,@4(SP) ; $$NEXTF.TEMP,*
000332 012702 000066 MOV #66,R2 ; 0884
000336 060502 ADD R5,R2
000340 005212 INC (R2)
000342 011200 MOV (R2),R0
000344 116011 177777 MOVB -1(R0),(R1)
000350 105061 000001 CLRB 1(R1)
000354 005711 TST (R1) ; 0885
000356 003406 BLE 6$
000360 027676 000006 000004 CMP @6(SP),@4(SP) ; 0886
000366 003402 BLE 6$
000370 010065 000052 MOV R0,52(R5) ; 0887
000374 061112 6$: ADD (R1),(R2) ; 0888
000376 017600 000004 MOV @4(SP),R0 ; *,$$NEXTF.TEMP 0892
000402 005200 INC R0 ; $$NEXTF.TEMP
000404 027600 000006 CMP @6(SP),R0 ; *,$$NEXTF.TEMP
000410 002475 BLT 9$
000412 117576 000066 000004 MOVB @66(R5),@4(SP)
000420 042776 177400 000004 BIC #177400,@4(SP)
000426 060076 000004 ADD R0,@4(SP) ; $$NEXTF.TEMP,*
000432 012700 000066 MOV #66,R0 ; 0894
000436 060500 ADD R5,R0
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 29
X03.30 VY_TEST_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (9)
000440 005210 INC (R0)
000442 011002 MOV (R0),R2
000444 116276 177777 000002 MOVB -1(R2),@2(SP)
000452 042776 177400 000002 BIC #177400,@2(SP)
000460 003406 BLE 7$ ; 0895
000462 027676 000006 000004 CMP @6(SP),@4(SP) ; 0896
000470 003402 BLE 7$
000472 010265 000056 MOV R2,56(R5) ; 0897
000476 067610 000002 7$: ADD @2(SP),(R0) ; 0898
000502 017600 000004 MOV @4(SP),R0 ; *,$$NEXTF.TEMP 0902
000506 005200 INC R0 ; $$NEXTF.TEMP
000510 027600 000006 CMP @6(SP),R0 ; *,$$NEXTF.TEMP
000514 002433 BLT 9$
000516 117576 000066 000004 MOVB @66(R5),@4(SP)
000524 042776 177400 000004 BIC #177400,@4(SP)
000532 060076 000004 ADD R0,@4(SP) ; $$NEXTF.TEMP,*
000536 012702 000066 MOV #66,R2 ; 0904
000542 060502 ADD R5,R2
000544 005212 INC (R2)
000546 011200 MOV (R2),R0
000550 116013 177777 MOVB -1(R0),(R3)
000554 105063 000001 CLRB 1(R3)
000560 005713 TST (R3) ; 0905
000562 003406 BLE 8$
000564 027676 000006 000004 CMP @6(SP),@4(SP) ; 0906
000572 003402 BLE 8$
000574 010065 000062 MOV R0,62(R5) ; 0907
000600 061312 8$: ADD (R3),(R2) ; 0908
000602 000404 BR 11$ ; 0902
000604 005726 9$: TST (SP)+ ; 0910
000606 012700 177776 10$: MOV #-2,R0
000612 000407 BR 14$
000614 005016 11$: CLR (SP) ; 0913
000616 010546 MOV R5,-(SP)
000620 004767 000000V JSR PC,VERIFY.PARAMETERS
000624 010004 MOV R0,R4 ; *,RTN.COD
000626 022626 12$: CMP (SP)+,(SP)+ ; 0808
000630 010400 13$: MOV R4,R0 ; RTN.COD,* 0834
000632 062706 000006 14$: ADD #6,SP ; 0808
000636 000207 RTS PC
; Routine Size: 208 words, Routine Base: $CODE$ + 1204
; Maximum stack depth per invocation: 12 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 30
X03.30 VY_CHANGE_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (10)
; 0918 %routine ('VY_CHANGE_REQUEST', REQ) =
; 0919
; 0920 !++
; 0921 ! FUNCTIONAL DESCRIPTION:
; 0922 !
; 0923 ! Performs syntax verification of NICE change parameter request messages.
; 0924 !
; 0925 ! FORMAL PARAMETERS
; 0926 !
; 0927 ! REQ - Address of NICE request block (RB).
; 0928 !
; 0929 ! IMPLICIT INPUTS
; 0930 !
; 0931 ! NONE.
; 0932 !
; 0933 ! ROUTINE VALUE:
; 0934 !
; 0935 ! 1 if NICE request message has valid syntax.
; 0936 ! NEGATIVE NICE error return code if invalid.
; 0937 !
; 0938 ! SIDE EFFECTS:
; 0939 !
; 0940 ! NONE.
; 0941 !
; 0942 !--
; 0943
; 0944 begin
; 0945
; 0946 map
; 0947 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 0948
; 0949 local
; 0950 OPT: block[1] field (CHANGE_OPTIONS), ! NICE request options
; 0951 RTN_COD; ! NICE return code
; 0952
; 0953 if NEXTB_NICE
; 0954 then REQ[RB_NICE_OPTION] = GETB (REQ[RB_NICE_POINTER])
; L 0955 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 0956
; 0957 OPT = .REQ[RB_NICE_OPTION]; ! Get the option byte
; 0958 REQ[RB_NICE_ENTITY_TYPE] = .OPT[CO_ENTITY_TYPE]; ! Get the entity type
; 0959
; 0960 if .OPT[CO_RESERVED] neq 0 ! Check for reserved bits all zero
; L 0961 then return $NICE$ERR_UFO;
; %PRINT: Unrecognized function or option
; 0962
; 0963 RTN_COD = GET_ENTITY_ID (.REQ); ! Process entity id
; 0964
; 0965 if .RTN_COD leq -1 ! Check for valid entity id
; 0966 then return .RTN_COD;
; 0967
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 31
X03.30 VY_CHANGE_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (10)
; 0968 return VERIFY_PARAMETERS (.OPT[CO_CLEAR_PURGE], .REQ);
; 0969 end; ! End of VY_CHANGE_REQUEST
.SBTTL VY.CHANGE.REQUEST VY_CHANGE_REQUEST
000000 004167 000000G VY.CHANGE.REQUEST:
JSR R1,$SAVE2 ; 0918
000004 016602 000010 MOV 10(SP),R2 ; REQ,* 0953
000010 016200 000070 MOV 70(R2),R0 ; *,$$NEXTB.TEMP
000014 005200 INC R0 ; $$NEXTB.TEMP
000016 026200 000030 CMP 30(R2),R0 ; *,$$NEXTB.TEMP
000022 002412 BLT 1$
000024 010062 000070 MOV R0,70(R2) ; $$NEXTB.TEMP,*
000030 005262 000066 INC 66(R2) ; 0954
000034 016200 000066 MOV 66(R2),R0
000040 116062 177777 000073 MOVB -1(R0),73(R2)
000046 000403 BR 2$ ; 0953
000050 012700 177776 1$: MOV #-2,R0 ; 0955
000054 000207 RTS PC
000056 005001 2$: CLR R1 ; OPT 0957
000060 156201 000073 BISB 73(R2),R1 ; *,OPT
000064 010100 MOV R1,R0 ; OPT,* 0958
000066 042700 177770 BIC #177770,R0
000072 105062 000074 CLRB 74(R2)
000076 150062 000074 BISB R0,74(R2)
000102 032701 000070 BIT #70,R1 ; *,OPT 0960
000106 001403 BEQ 3$
000110 012700 177777 MOV #-1,R0 ; 0961
000114 000207 RTS PC
000116 010246 3$: MOV R2,-(SP) ; 0963
000120 004767 000000V JSR PC,GET.ENTITY.ID
000124 005700 TST R0 ; RTN.COD 0965
000126 002002 BGE 4$
000130 005726 TST (SP)+ ; 0966
000132 000207 RTS PC
000134 005016 4$: CLR (SP) ; 0968
000136 032701 000100 BIT #100,R1 ; *,OPT
000142 001401 BEQ 5$
000144 005216 INC (SP)
000146 010246 5$: MOV R2,-(SP)
000150 004767 000000V JSR PC,VERIFY.PARAMETERS
000154 022626 CMP (SP)+,(SP)+ ; 0918
000156 000207 RTS PC
; Routine Size: 56 words, Routine Base: $CODE$ + 2044
; Maximum stack depth per invocation: 6 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 32
X03.30 VY_READ_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (11)
; 0970 %routine ('VY_READ_REQUEST', REQ) =
; 0971
; 0972 !++
; 0973 ! FUNCTIONAL DESCRIPTION:
; 0974 !
; 0975 ! Performs syntax verification of NICE read information request messages.
; 0976 !
; 0977 ! FORMAL PARAMETERS
; 0978 !
; 0979 ! REQ - Address of NICE request block (RB).
; 0980 !
; 0981 ! IMPLICIT INPUTS
; 0982 !
; 0983 ! NONE.
; 0984 !
; 0985 ! ROUTINE VALUE:
; 0986 !
; 0987 ! 1 if NICE request message has valid syntax.
; 0988 ! NEGATIVE NICE error return code if invalid.
; 0989 !
; 0990 ! SIDE EFFECTS:
; 0991 !
; 0992 ! NONE.
; 0993 !
; 0994 !--
; 0995
; 0996 begin
; 0997
; 0998 literal
; 0999 SET_DEFINE = 0; ! Parameters with value as in SET
; 1000
; 1001 map
; 1002 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 1003
; 1004 local
; 1005 OPT: block[1] field (READ_OPTIONS), ! NICE request options
; 1006 RTN_COD; ! NICE return code
; 1007
; 1008 if NEXTB_NICE
; 1009 then REQ[RB_NICE_OPTION] = GETB (REQ[RB_NICE_POINTER])
; L 1010 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 1011
; 1012 OPT = .REQ[RB_NICE_OPTION]; ! Get the option byte
; 1013 REQ[RB_NICE_ENTITY_TYPE] = .OPT[RO_ENTITY_TYPE]; ! Get the entity type
; 1014
; 1015 if .OPT[RO_RESERVED] neq 0 ! Check for reserved bits all zero
; L 1016 then return $NICE$ERR_UFO;
; %PRINT: Unrecognized function or option
; 1017
; 1018 if .OPT[RO_INFO_TYPE] gtru 4 ! Check for valid information type
; L 1019 then return $NICE$ERR_UFO;
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 33
X03.30 VY_READ_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (11)
; %PRINT: Unrecognized function or option
; 1020
; 1021 RTN_COD = GET_ENTITY_ID (.REQ); ! Process entity id
; 1022
; 1023 if .RTN_COD leq -1 ! Check for valid entity id
; 1024 then return .RTN_COD;
; 1025
; 1026 return VERIFY_PARAMETERS (SET_DEFINE, .REQ);
; 1027 end; ! End of VY_READ_REQUEST
.SBTTL VY.READ.REQUEST VY_READ_REQUEST
000000 004167 000000G VY.READ.REQUEST:
JSR R1,$SAVE2 ; 0970
000004 016601 000010 MOV 10(SP),R1 ; REQ,* 1008
000010 016100 000070 MOV 70(R1),R0 ; *,$$NEXTB.TEMP
000014 005200 INC R0 ; $$NEXTB.TEMP
000016 026100 000030 CMP 30(R1),R0 ; *,$$NEXTB.TEMP
000022 002412 BLT 1$
000024 010061 000070 MOV R0,70(R1) ; $$NEXTB.TEMP,*
000030 005261 000066 INC 66(R1) ; 1009
000034 016100 000066 MOV 66(R1),R0
000040 116061 177777 000073 MOVB -1(R0),73(R1)
000046 000403 BR 2$ ; 1008
000050 012700 177776 1$: MOV #-2,R0 ; 1010
000054 000207 RTS PC
000056 005000 2$: CLR R0 ; OPT 1012
000060 156100 000073 BISB 73(R1),R0 ; *,OPT
000064 010002 MOV R0,R2 ; OPT,* 1013
000066 042702 177770 BIC #177770,R2
000072 105061 000074 CLRB 74(R1)
000076 150261 000074 BISB R2,74(R1)
000102 032700 000010 BIT #10,R0 ; *,OPT 1015
000106 001005 BNE 3$ ; 1016
000110 042700 177617 BIC #177617,R0 ; 1018
000114 020027 000100 CMP R0,#100
000120 101403 BLOS 4$
000122 012700 177777 3$: MOV #-1,R0 ; 1019
000126 000207 RTS PC
000130 010146 4$: MOV R1,-(SP) ; 1021
000132 004767 000000V JSR PC,GET.ENTITY.ID
000136 005700 TST R0 ; RTN.COD 1023
000140 002002 BGE 5$
000142 005726 TST (SP)+ ; 1024
000144 000207 RTS PC
000146 005016 5$: CLR (SP) ; 1026
000150 010146 MOV R1,-(SP)
000152 004767 000000V JSR PC,VERIFY.PARAMETERS
000156 022626 CMP (SP)+,(SP)+ ; 0970
000160 000207 RTS PC
; Routine Size: 57 words, Routine Base: $CODE$ + 2224
; Maximum stack depth per invocation: 6 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 34
X03.30 VY_ZERO_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (12)
; 1028 %routine ('VY_ZERO_REQUEST', REQ) =
; 1029
; 1030 !++
; 1031 ! FUNCTIONAL DESCRIPTION:
; 1032 !
; 1033 ! Performs syntax verification of NICE zero counters request messages.
; 1034 !
; 1035 ! FORMAL PARAMETERS
; 1036 !
; 1037 ! REQ - Address of NICE request block (RB).
; 1038 !
; 1039 ! IMPLICIT INPUTS
; 1040 !
; 1041 ! NONE.
; 1042 !
; 1043 ! ROUTINE VALUE:
; 1044 !
; 1045 ! 1 if NICE request message has valid syntax.
; 1046 ! NEGATIVE NICE error return code if invalid.
; 1047 !
; 1048 ! SIDE EFFECTS:
; 1049 !
; 1050 ! NONE.
; 1051 !
; 1052 !--
; 1053
; 1054 begin
; 1055
; 1056 literal
; 1057 QUALIFIER_PARAMETER = 0;
; 1058
; 1059 map
; 1060 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 1061
; 1062 local
; 1063 OPT: block [1] field (ZERO_OPTIONS), ! NICE request options
; 1064 RTN_COD; ! NICE return code
; 1065
; 1066 if NEXTB_NICE ! Check for NICE option byte
; 1067 then REQ[RB_NICE_OPTION] = GETB (REQ[RB_NICE_POINTER])
; L 1068 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 1069
; 1070 OPT = .REQ[RB_NICE_OPTION]; ! Get the option byte
; 1071 REQ[RB_NICE_ENTITY_TYPE] = .OPT[ZO_ENTITY_TYPE]; ! Get the entity type
; 1072
; 1073 if .OPT[ZO_RESERVED] neq 0 ! Check for reserved bits all zero
; L 1074 then return $NICE$ERR_UFO;
; %PRINT: Unrecognized function or option
; 1075
; 1076 RTN_COD = GET_ENTITY_ID (.REQ); ! Process entity id
; 1077
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 35
X03.30 VY_ZERO_REQUEST 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (12)
; 1078 if .RTN_COD leq -1 ! Check for valid entity id
; 1079 then return .RTN_COD;
; 1080
; 1081 if .REQ[RB_NICE_ENTITY_TYPE] eql MODULE_
; 1082 then return VERIFY_PARAMETERS (QUALIFIER_PARAMETER, .REQ)
; 1083 else return 1;
; 1084
; 1085 end; ! End of VY_ZERO_REQUEST
.SBTTL VY.ZERO.REQUEST VY_ZERO_REQUEST
000000 004167 000000G VY.ZERO.REQUEST:
JSR R1,$SAVE2 ; 1028
000004 016601 000010 MOV 10(SP),R1 ; REQ,* 1066
000010 016100 000070 MOV 70(R1),R0 ; *,$$NEXTB.TEMP
000014 005200 INC R0 ; $$NEXTB.TEMP
000016 026100 000030 CMP 30(R1),R0 ; *,$$NEXTB.TEMP
000022 002412 BLT 1$
000024 010061 000070 MOV R0,70(R1) ; $$NEXTB.TEMP,*
000030 005261 000066 INC 66(R1) ; 1067
000034 016100 000066 MOV 66(R1),R0
000040 116061 177777 000073 MOVB -1(R0),73(R1)
000046 000403 BR 2$ ; 1066
000050 012700 177776 1$: MOV #-2,R0 ; 1068
000054 000207 RTS PC
000056 005000 2$: CLR R0 ; OPT 1070
000060 156100 000073 BISB 73(R1),R0 ; *,OPT
000064 010002 MOV R0,R2 ; OPT,* 1071
000066 042702 177770 BIC #177770,R2
000072 105061 000074 CLRB 74(R1)
000076 150261 000074 BISB R2,74(R1)
000102 032700 000170 BIT #170,R0 ; *,OPT 1073
000106 001403 BEQ 3$
000110 012700 177777 MOV #-1,R0 ; 1074
000114 000207 RTS PC
000116 010146 3$: MOV R1,-(SP) ; 1076
000120 004767 000000V JSR PC,GET.ENTITY.ID
000124 005700 TST R0 ; RTN.COD 1078
000126 002414 BLT 5$ ; 1079
000130 126127 000074 000004 CMPB 74(R1),#4 ; 1081
000136 001006 BNE 4$
000140 005016 CLR (SP) ; 1082
000142 010146 MOV R1,-(SP)
000144 004767 000000V JSR PC,VERIFY.PARAMETERS
000150 005726 TST (SP)+
000152 000402 BR 5$ ; 1081
000154 012700 000001 4$: MOV #1,R0
000160 005726 5$: TST (SP)+ ; 1028
000162 000207 RTS PC
; Routine Size: 58 words, Routine Base: $CODE$ + 2406
; Maximum stack depth per invocation: 6 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 36
X03.30 VY_SYSTEM_SPECIFIC 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (13)
; 1086 %routine ('VY_SYSTEM_SPECIFIC', REQ) =
; 1087
; 1088 !++
; 1089 ! FUNCTIONAL DESCRIPTION:
; 1090 !
; 1091 ! Performs syntax verification of NICE system-specific request messages.
; 1092 !
; 1093 ! FORMAL PARAMETERS
; 1094 !
; 1095 ! REQ - Address of NICE request block (RB).
; 1096 !
; 1097 ! IMPLICIT INPUTS
; 1098 !
; 1099 ! NONE.
; 1100 !
; 1101 ! ROUTINE VALUE:
; 1102 !
; 1103 ! 1 if NICE request message has valid syntax.
; 1104 ! NEGATIVE NICE error return code if invalid.
; 1105 !
; 1106 ! SIDE EFFECTS:
; 1107 !
; 1108 ! NONE.
; 1109 !
; 1110 !--
; 1111
; 1112 begin
; 1113
; 1114 map
; 1115 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 1116
; 1117 local
; 1118 SYS_TYPE, ! Specific system type
; 1119 RTN_COD; ! NICE return code
; 1120
; 1121 if NEXTB_NICE
; 1122 then REQ[RB_NICE_OPTION] = GETB (REQ[RB_NICE_POINTER])
; L 1123 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 1124
; 1125 SYS_TYPE = .REQ[RB_NICE_OPTION]; ! Get the system type
; 1126
; 1127 if .SYS_TYPE nequ TOPS20_ ! Check for valid system type
; L 1128 then return $NICE$ERR_UFO
; %PRINT: Unrecognized function or option
; 1129 else return 1;
; 1130
; 1131 end; ! End of VY_SYSTEM_SPECIFIC
.SBTTL VY.SYSTEM.SPECIFIC VY_SYSTEM_SPECIFIC
000000 010146 VY.SYSTEM.SPECIFIC:
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 37
X03.30 VY_SYSTEM_SPECIFIC 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (13)
MOV R1,-(SP) ; 1086
000002 016601 000004 MOV 4(SP),R1 ; REQ,* 1121
000006 016100 000070 MOV 70(R1),R0 ; *,$$NEXTB.TEMP
000012 005200 INC R0 ; $$NEXTB.TEMP
000014 026100 000030 CMP 30(R1),R0 ; *,$$NEXTB.TEMP
000020 002412 BLT 1$
000022 010061 000070 MOV R0,70(R1) ; $$NEXTB.TEMP,*
000026 005261 000066 INC 66(R1) ; 1122
000032 016100 000066 MOV 66(R1),R0
000036 116061 177777 000073 MOVB -1(R0),73(R1)
000044 000403 BR 2$ ; 1121
000046 012700 177776 1$: MOV #-2,R0 ; 1123
000052 000413 BR 4$
000054 005000 2$: CLR R0 ; SYS.TYPE 1125
000056 156100 000073 BISB 73(R1),R0 ; *,SYS.TYPE
000062 020027 000003 CMP R0,#3 ; SYS.TYPE,* 1127
000066 001403 BEQ 3$
000070 012700 177777 MOV #-1,R0
000074 000402 BR 4$
000076 012700 000001 3$: MOV #1,R0
000102 012601 4$: MOV (SP)+,R1 ; 1086
000104 000207 RTS PC
; Routine Size: 35 words, Routine Base: $CODE$ + 2572
; Maximum stack depth per invocation: 2 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 38
X03.30 GET_ENTITY_ID 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (14)
; 1132 %routine ('GET_ENTITY_ID', REQ) =
; 1133
; 1134 !++
; 1135 ! FUNCTIONAL DESCRIPTION:
; 1136 !
; 1137 ! Extracts the entity id field from a NICE request message.
; 1138 !
; 1139 ! FORMAL PARAMETERS
; 1140 !
; 1141 ! REQ - Address of NICE request block (RB).
; 1142 !
; 1143 ! IMPLICIT INPUTS
; 1144 !
; 1145 ! NONE.
; 1146 !
; 1147 ! ROUTINE VALUE:
; 1148 !
; 1149 ! 1 if NICE request message has valid syntax.
; 1150 ! NEGATIVE NICE error return code if invalid.
; 1151 !
; 1152 ! SIDE EFFECTS:
; 1153 !
; 1154 ! NONE.
; 1155 !
; 1156 !--
; 1157
; 1158 begin
; 1159
; 1160 map
; 1161 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 1162
; 1163 local
; 1164 FORMAT: $SIGNED_BYTE_VALUE; ! Local signed entity id length
; 1165
; 1166 !
; 1167 ! Get the entity format byte, checking for entity class case first.
; 1168 !
; 1169
; 1170 if NEXTB_NICE ! Entity id in message?
; 1171 then begin ! Handle entity classes
; 1172 FORMAT = GETB (REQ[RB_NICE_POINTER]); ! Fetch format byte
; 1173 REQ[RB_NICE_ENTITY_ID_LENGTH] = .FORMAT[VALUE]; ! Get class or length
; 1174 if .FORMAT[VALUE] lss 0 ! Check for entity class, ACTIVE,
; 1175 then begin ! KNOWN, or LOOP
; 1176 REQ[RB_NICE_ENTITY] = 0; ! Null entity pointer
; 1177 return 1; ! Done if entity class
; 1178 end
; 1179 else begin ! Back up position so not counted twice
; 1180 REQ[RB_NICE_POSITION] = .REQ[RB_NICE_POSITION] - 1;
; 1181 ADVANCE (REQ[RB_NICE_POINTER], -1);
; 1182 end;
; 1183 end
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 39
X03.30 GET_ENTITY_ID 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (14)
; L 1184 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 1185
; 1186 !
; 1187 ! Handle specific entity id. Note that we already accounted for the
; 1188 ! format byte which if greater than zero is the length byte of an
; 1189 ! of an I-field.
; 1190 !
; 1191
; 1192 !
; 1193 ! Process rest of entity id format according to entity type.
; 1194 !
; 1195
; 1196 case .REQ[RB_NICE_ENTITY_TYPE] from NODE_E to MODULE_ of
; 1197 set
; 1198 [NODE_E]:
; 1199 begin
; 1200 if NEXTF_NICE ! Is the id field present
; 1201 then begin
; 1202 if .REQ[RB_NICE_LENGTH] geq .REQ[RB_NICE_POSITION]
; 1203 then ADVANCE (REQ[RB_NICE_POINTER], 1)
; L 1204 else return $NICE$ERR_IMF; ! No room for image text
; %PRINT: Invalid message format
; 1205 end
; L 1206 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 1207
; 1208 if .FORMAT[VALUE] eql 0
; 1209 then begin ! NODE address format
; 1210 if not NEXTW_NICE
; L 1211 then return $NICE$ERR_IMF
; %PRINT: Invalid message format
; 1212 else begin ! Set pointer to id
; 1213 REQ[RB_NICE_ENTITY] = .REQ[RB_NICE_POINTER];
; 1214 ADVANCE (REQ[RB_NICE_POINTER], 2);
; 1215 end;
; 1216 end
; 1217 else if .FORMAT[VALUE] gtr 0
; 1218 then begin ! NODE name format, point to id
; 1219 REQ[RB_NICE_ENTITY] = .REQ[RB_NICE_POINTER];
; 1220 ADVANCE (REQ[RB_NICE_POINTER], .FORMAT[VALUE]);
; 1221 end
; 1222 else REQ[RB_NICE_ENTITY] = 0;
; 1223 end;
; 1224
; 1225 [LINE_,
; 1226 CIRCUIT_,
; 1227 MODULE_]:
; 1228 begin
; 1229 if NEXTF_NICE ! Is the id field present ?
; 1230 then begin
; 1231 if .REQ[RB_NICE_LENGTH] geq .REQ[RB_NICE_POSITION]
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 40
X03.30 GET_ENTITY_ID 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (14)
; 1232 then ADVANCE (REQ[RB_NICE_POINTER], 1)
; L 1233 else return $NICE$ERR_IMF; ! No room for image text
; %PRINT: Invalid message format
; 1234 end
; L 1235 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 1236
; 1237 if .FORMAT[VALUE] gtr 0 ! Save pointer to id string,
; 1238 then begin ! including length as first byte
; 1239 REQ[RB_NICE_ENTITY] = ch$plus (.REQ[RB_NICE_POINTER],-1);
; 1240
; 1241 ! Bump past the complete entity id.
; 1242
; 1243 ADVANCE (REQ[RB_NICE_POINTER], .FORMAT[VALUE]);
; 1244 end
; 1245 else REQ[RB_NICE_ENTITY] = 0;
; 1246 end;
; 1247
; 1248 [LOGGING_]:
; 1249 begin
; 1250 REQ[RB_NICE_ENTITY] = .REQ[RB_NICE_POINTER];
; 1251 if NEXTB_NICE
; 1252 then ADVANCE (REQ[RB_NICE_POINTER], 1) ! Bypass sink type
; L 1253 else return $NICE$ERR_URC;
; %PRINT: Unrecognized component
; 1254 end;
; 1255
; 1256 [inrange,
; 1257 outrange]:
; L 1258 return $NICE$ERR_URC;
; %PRINT: Unrecognized component
; 1259 tes;
; 1260
; 1261 return $TRUE;
; 1262 end; ! End of GET_ENTITY_ID
.SBTTL GET.ENTITY.ID GET_ENTITY_ID
000000 004167 000000G GET.ENTITY.ID:
JSR R1,$SAVE4 ; 1132
000004 016601 000014 MOV 14(SP),R1 ; REQ,* 1170
000010 012704 000030 MOV #30,R4
000014 060104 ADD R1,R4
000016 012703 000070 MOV #70,R3
000022 060103 ADD R1,R3
000024 011300 MOV (R3),R0 ; *,$$NEXTB.TEMP
000026 005200 INC R0 ; $$NEXTB.TEMP
000030 021400 CMP (R4),R0 ; *,$$NEXTB.TEMP
000032 002507 BLT 5$
000034 010013 MOV R0,(R3) ; $$NEXTB.TEMP,*
000036 012702 000066 MOV #66,R2 ; 1172
000042 060102 ADD R1,R2
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 41
X03.30 GET_ENTITY_ID 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (14)
000044 005212 INC (R2)
000046 011200 MOV (R2),R0
000050 114000 MOVB -(R0),R0 ; *,FORMAT
000052 042700 177400 BIC #177400,R0 ; *,FORMAT
000056 110061 000076 MOVB R0,76(R1) ; FORMAT,* 1173
000062 002511 BLT 8$ ; 1176
000064 005313 DEC (R3) ; 1180
000066 005312 DEC (R2) ; 1181
000070 005002 CLR R2 ; 1196
000072 156102 000074 BISB 74(R1),R2
000076 020227 000004 CMP R2,#4
000102 101117 BHI 10$
000104 006302 ASL R2
000106 066207 000022' ADD P.AAC(R2),PC ; Case dispatch
000112 000513 1$: BR 10$ ; 1258
000114 011302 2$: MOV (R3),R2 ; *,$$NEXTF.TEMP 1200
000116 005202 INC R2 ; $$NEXTF.TEMP
000120 021402 CMP (R4),R2 ; *,$$NEXTF.TEMP
000122 002453 BLT 5$
000124 117113 000066 MOVB @66(R1),(R3)
000130 105063 000001 CLRB 1(R3)
000134 060213 ADD R2,(R3) ; $$NEXTF.TEMP,*
000136 021413 CMP (R4),(R3) ; 1202
000140 002444 BLT 5$
000142 005261 000066 INC 66(R1) ; 1203
000146 105700 TSTB R0 ; FORMAT 1208
000150 001015 BNE 3$
000152 011302 MOV (R3),R2 ; *,$$NEXTW.TEMP 1210
000154 062702 000002 ADD #2,R2 ; *,$$NEXTW.TEMP
000160 021402 CMP (R4),R2 ; *,$$NEXTW.TEMP
000162 002433 BLT 5$
000164 010213 MOV R2,(R3) ; $$NEXTW.TEMP,*
000166 016161 000066 000102 MOV 66(R1),102(R1) ; 1213
000174 062761 000002 000066 ADD #2,66(R1) ; 1214
000202 000462 BR 11$ ; 1208
000204 003440 3$: BLE 8$ ; 1217
000206 016161 000066 000102 MOV 66(R1),102(R1) ; 1219
000214 000430 BR 7$ ; 1220
000216 011302 4$: MOV (R3),R2 ; *,$$NEXTF.TEMP 1229
000220 005202 INC R2 ; $$NEXTF.TEMP
000222 021402 CMP (R4),R2 ; *,$$NEXTF.TEMP
000224 002412 BLT 5$
000226 117113 000066 MOVB @66(R1),(R3)
000232 105063 000001 CLRB 1(R3)
000236 060213 ADD R2,(R3) ; $$NEXTF.TEMP,*
000240 021413 CMP (R4),(R3) ; 1231
000242 002403 BLT 5$
000244 005261 000066 INC 66(R1) ; 1232
000250 000403 BR 6$ ; 1231
000252 012700 177776 5$: MOV #-2,R0 ; 1235
000256 000207 RTS PC
000260 105700 6$: TSTB R0 ; FORMAT 1237
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 42
X03.30 GET_ENTITY_ID 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (14)
000262 003411 BLE 8$
000264 016161 000066 000102 MOV 66(R1),102(R1) ; 1239
000272 005361 000102 DEC 102(R1)
000276 110002 7$: MOVB R0,R2 ; FORMAT,* 1243
000300 060261 000066 ADD R2,66(R1)
000304 000421 BR 11$ ; 1237
000306 005061 000102 8$: CLR 102(R1) ; 1245
000312 000416 BR 11$ ; 1196
000314 016161 000066 000102 9$: MOV 66(R1),102(R1) ; 1250
000322 011300 MOV (R3),R0 ; *,$$NEXTB.TEMP 1251
000324 005200 INC R0 ; $$NEXTB.TEMP
000326 021400 CMP (R4),R0 ; *,$$NEXTB.TEMP
000330 002404 BLT 10$
000332 010013 MOV R0,(R3) ; $$NEXTB.TEMP,*
000334 005261 000066 INC 66(R1) ; 1252
000340 000403 BR 11$ ; 1251
000342 012700 177770 10$: MOV #-10,R0 ; 1253
000346 000207 RTS PC
000350 012700 000001 11$: MOV #1,R0 ; 1158
000354 000207 RTS PC ; 1132
; Routine Size: 119 words, Routine Base: $CODE$ + 2700
; Maximum stack depth per invocation: 6 words
000022 .PSECT $PLIT$, RO , D
P.AAC: ; CASE Table for GET.ENTITY.ID+0106 1196
000022 000002 .WORD 2 ; [2$]
000024 000104 .WORD 104 ; [4$]
000026 000202 .WORD 202 ; [9$]
000030 000104 .WORD 104 ; [4$]
000032 000104 .WORD 104 ; [4$]
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 43
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
; 1263 %routine ('SCAN_PARAMETER', ENTRY, REQ, CLEAR_PURGE) =
; 1264
; 1265 !++
; 1266 ! FUNCTIONAL DESCRIPTION:
; 1267 !
; 1268 !
; 1269 ! FORMAL PARAMETERS
; 1270 !
; 1271 ! ENTRY Address of the entry to the parameter data base.
; 1272 ! REQ Address of NICE request block (RB).
; 1273 ! CLEAR_PURGE Flag to indicate if this request is a CLEAR/PURGE
; 1274 ! request message.
; 1275 !
; 1276 ! IMPLICIT INPUTS
; 1277 !
; 1278 ! NONE.
; 1279 !
; 1280 ! ROUTINE VALUE:
; 1281 !
; 1282 ! 1 if NICE request message has valid syntax.
; 1283 ! NEGATIVE NICE error return code if invalid.
; 1284 !
; 1285 ! SIDE EFFECTS:
; 1286 !
; 1287 ! NONE.
; 1288 !
; 1289 !--
; 1290
; 1291 begin
; 1292
; 1293 map
; 1294 REQ: ref REQUEST_BLOCK,
; 1295 ENTRY: ref NICE_PARAMETER_TABLE_ENTRY;
; 1296
; 1297 local
; 1298 PARAMETER: ref PARAMETER_ENTRY;
; 1299
; 1300 PARAMETER = .ENTRY[NICE_PARAMETER_ENTRY]; ! Get data block entry
; 1301
; 1302 ! Upon return if this parameter is a qualifier, the pointer stored
; 1303 ! in RB_NICE_QUALIFIER field points to the field of the qualifier
; 1304 ! parameter, STARTING WITH THE PARAMETER NUMBER.
; 1305
; 1306 if .PARAMETER[_QUALIFIER] ! Is this parameter a qualifier ?
; 1307 then begin ! Yes, check if we already got one
; 1308 if .REQ[RB_NICE_QUALIFIER] eql 0
; 1309 then REQ[RB_NICE_QUALIFIER] = ch$plus (.REQ[RB_NICE_POINTER], -2)
; L 1310 else return $NICE$ERR_IPG; ! Already got one, cannot handle second
; %PRINT: Invalid parameter grouping
; 1311 end;
; 1312
; 1313 if .CLEAR_PURGE ! If this is CLEAR/PURGE NICE request
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 44
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
; 1314 and not .PARAMETER[_QUALIFIER] ! and parameter is not a qualifier
; 1315 then return NICE$_SUC; ! do not bother checking for data
; 1316
; 1317 case .PARAMETER[_DATA_FORMAT] from DU1 to HX8 of
; 1318 set ! Parse and verify data format
; 1319 [DU1] : ! 1 byte field (C1)
; 1320 begin
; 1321 if NEXTB_NICE ! Is there 1 byte to get ?
; 1322 then ADVANCE (REQ[RB_NICE_POINTER], 1) ! Yes
; L 1323 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1324 end;
; 1325
; 1326 [DU2] : ! 2 byte field
; 1327 begin
; 1328 if NEXTW_NICE ! Are there 2 bytes to get ?
; 1329 then ADVANCE (REQ[RB_NICE_POINTER], 2) ! Yes
; L 1330 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1331 end;
; 1332
; 1333 [DU4] : ! 4 byte field (O4)
; 1334 begin
; 1335 if NEXTN_NICE (4) ! Are there 4 bytes to get ?
; 1336 then ADVANCE (REQ[RB_NICE_POINTER], 4) ! Yes
; L 1337 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1338 end;
; 1339
; 1340 [CM2] : ! Coded 2 2-byte field
; 1341 begin
; 1342 incr I from 0 to 1 ! Do it twice
; 1343 do if NEXTW_NICE ! Are there 2 bytes to get ?
; 1344 then ADVANCE (REQ[RB_NICE_POINTER], 2) ! Yes
; L 1345 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1346 end;
; 1347
; 1348 [CMN, ! Coded node (address/name) field
; 1349 CMO] : ! Coded object (number/name) field
; 1350 begin
; 1351 if NEXTB_NICE ! Is there a count byte to get ?
; 1352 then begin ! Yes
; 1353 local LENGTH: $SIGNED_BYTE_VALUE;
; 1354
; 1355 LENGTH = GETB (REQ[RB_NICE_POINTER]);
; 1356 if .LENGTH[VALUE] eql 0
; 1357 then begin ! Node address or Object number
; 1358 if .PARAMETER[_DATA_FORMAT] eql CMN
; 1359 then begin ! Node address
; 1360 if NEXTW_NICE ! Are there 2 bytes of node address ?
; 1361 then ADVANCE (REQ[RB_NICE_POINTER], 2) ! Yes
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 45
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
; L 1362 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1363 end
; 1364 else begin ! Object number
; 1365 if NEXTB_NICE ! Is there 1 byte of object number ?
; 1366 then ADVANCE (REQ[RB_NICE_POINTER], 1) ! Yes
; L 1367 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1368 end;
; 1369 end
; 1370 else begin ! Node name or Object name
; 1371 if .LENGTH[VALUE] gtr 0
; 1372 then begin
; 1373 if NEXTN_NICE (.LENGTH[VALUE])
; 1374 and .REQ[RB_NICE_LENGTH] geq .REQ[RB_NICE_POSITION]
; 1375 then ADVANCE (REQ[RB_NICE_POINTER], .LENGTH[VALUE])
; L 1376 else return $NICE$ERR_IMF;
; %PRINT: Invalid message format
; 1377 end
; 1378 else if not .PARAMETER[_EVENTS] ! Is it KNOWN SINKS ?
; L 1379 then return $NICE$ERR_IMF; ! If not, return error
; %PRINT: Invalid message format
; 1380 end;
; 1381 end
; L 1382 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1383 end;
; 1384
; 1385 [CMU] : ! Coded user/owner field
; 1386 begin
; 1387 if NEXTB_NICE ! Is there an entity byte to get ?
; 1388 then begin ! Yes
; 1389 local ENTITY, LENGTH: $SIGNED_BYTE_VALUE;
; 1390
; 1391 ENTITY = GETB (REQ[RB_NICE_POINTER]); ! Get entity byte
; 1392
; 1393 if NEXTB_NICE ! Is there a count byte to get ?
; 1394 then LENGTH = GETB (REQ[RB_NICE_POINTER]) ! Yes, get it
; L 1395 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1396
; 1397 if (.ENTITY eql NODE_E) and (.LENGTH[VALUE] eql 0)
; 1398 then begin ! Get node address
; 1399 if NEXTW_NICE ! Are there 2 bytes of address
; 1400 then ADVANCE (REQ[RB_NICE_POINTER], 2) ! Yes
; L 1401 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1402 end
; 1403 else begin ! Get entity id
; 1404 if (.LENGTH[VALUE] gtr 0) ! Is the count positive ?
; 1405 and NEXTN_NICE (.LENGTH[VALUE]) ! Does the field exist ?
; 1406 and .REQ[RB_NICE_LENGTH] geq .REQ[RB_NICE_POSITION]
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 46
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
; 1407 then ADVANCE (REQ[RB_NICE_POINTER], .LENGTH[VALUE]) ! Yes
; L 1408 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1409 end;
; 1410 end
; L 1411 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1412 end;
; 1413
; 1414 [AI, ! ASCII image field
; 1415 HI] : ! Hexadecimal image field
; 1416 begin
; 1417 if NEXTB_NICE ! Is there a count byte to get ?
; 1418 then begin ! Yes
; 1419 local LENGTH: $SIGNED_BYTE_VALUE;
; 1420
; 1421 LENGTH = GETB (REQ[RB_NICE_POINTER]); ! Get count byte
; 1422 if .LENGTH[VALUE] gtr 0 ! Is the count positive ?
; 1423 then begin
; 1424 if NEXTN_NICE (.LENGTH[VALUE]) ! Does the field exist ?
; 1425 and (.REQ[RB_NICE_LENGTH] geq .REQ[RB_NICE_POSITION])
; 1426 then ADVANCE (REQ[RB_NICE_POINTER], .LENGTH[VALUE]) ! Yes
; L 1427 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1428 end
; 1429 else begin
; 1430 if .LENGTH[VALUE] eql 0
; L 1431 then return $NICE$ERR_IMF ! Null parameter id field
; %PRINT: Invalid message format
; 1432 else begin ! If parameter count byte is negative
; 1433 if (.PARAMETER[_DATA_FORMAT] eql AI) ! Check if
; 1434 and not .PARAMETER[_QUALIFIER] ! it is a qualifier
; L 1435 then return $NICE$ERR_UPT; ! If not, return error
; %PRINT: Unrecognized parameter type
; 1436 end; ! Otherwise, do nothing
; 1437 end; ! Already got the count byte
; 1438 end
; L 1439 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1440 end;
; 1441
; 1442 [HX8] : ! Hexadecimal 8 byte field
; 1443 begin
; 1444 if NEXTN_NICE (8) ! Are there 8 bytes to get ?
; 1445 then ADVANCE (REQ[RB_NICE_POINTER], 8) ! Yes
; L 1446 else return $NICE$ERR_IMF; ! No
; %PRINT: Invalid message format
; 1447 end;
; 1448
; 1449 [inrange,
; 1450 outrange] :
; L 1451 return $NICE$ERR_UPT;
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 47
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
; %PRINT: Unrecognized parameter type
; 1452 tes;
; 1453
; 1454 return $TRUE;
; 1455 end; ! End of SCAN_PARAMETER
.SBTTL SCAN.PARAMETER SCAN_PARAMETER
003256 .PSECT $CODE$, RO
000000 004167 000000G SCAN.PARAMETER:
JSR R1,$SAVE5 ; 1263
000004 005746 TST -(SP)
000006 016600 000024 MOV 24(SP),R0 ; ENTRY,* 1300
000012 016003 000002 MOV 2(R0),R3 ; *,PARAMETER
000016 016346 000002 MOV 2(R3),-(SP) ; *(PARAMETER),* 1306
000022 005066 000002 CLR 2(SP)
000026 032726 010000 BIT #10000,(SP)+
000032 001401 BEQ 1$
000034 005216 INC (SP)
000036 032716 000001 1$: BIT #1,(SP)
000042 001420 BEQ 3$
000044 016600 000022 MOV 22(SP),R0 ; REQ,* 1308
000050 012701 000110 MOV #110,R1
000054 060001 ADD R0,R1
000056 005711 TST (R1)
000060 001005 BNE 2$
000062 016011 000066 MOV 66(R0),(R1) ; 1309
000066 162711 000002 SUB #2,(R1)
000072 000404 BR 3$ ; 1308
000074 012700 177745 2$: MOV #-33,R0 ; 1310
000100 000167 001002 JMP 35$
000104 032766 000001 000020 3$: BIT #1,20(SP) ; *,CLEAR.PURGE 1313
000112 001403 BEQ 4$
000114 032716 000001 BIT #1,(SP) ; 1314
000120 001575 BEQ 14$ ; 1315
000122 005000 4$: CLR R0 ; 1317
000124 151300 BISB (R3),R0 ; PARAMETER,*
000126 005300 DEC R0
000130 020027 000012 CMP R0,#12
000134 101003 BHI 5$
000136 006300 ASL R0
000140 066007 000034' ADD P.AAD(R0),PC ; Case dispatch
000144 000167 000660 5$: JMP 30$ ; 1451
000150 016601 000022 6$: MOV 22(SP),R1 ; REQ,* 1321
000154 016100 000070 MOV 70(R1),R0 ; *,$$NEXTB.TEMP
000160 005200 INC R0 ; $$NEXTB.TEMP
000162 026100 000030 CMP 30(R1),R0 ; *,$$NEXTB.TEMP
000166 002573 BLT 17$
000170 010061 000070 MOV R0,70(R1) ; $$NEXTB.TEMP,*
000174 005261 000066 INC 66(R1) ; 1322
000200 000545 BR 14$ ; 1321
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 48
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
000202 016601 000022 7$: MOV 22(SP),R1 ; REQ,* 1328
000206 016100 000070 MOV 70(R1),R0 ; *,$$NEXTW.TEMP
000212 062700 000002 ADD #2,R0 ; *,$$NEXTW.TEMP
000216 026100 000030 CMP 30(R1),R0 ; *,$$NEXTW.TEMP
000222 002572 BLT 18$
000224 010061 000070 MOV R0,70(R1) ; $$NEXTW.TEMP,*
000230 062761 000002 000066 ADD #2,66(R1) ; 1329
000236 000526 BR 14$ ; 1328
000240 016601 000022 8$: MOV 22(SP),R1 ; REQ,* 1335
000244 016100 000070 MOV 70(R1),R0 ; *,$$NEXTN.TEMP
000250 062700 000004 ADD #4,R0 ; *,$$NEXTN.TEMP
000254 026100 000030 CMP 30(R1),R0 ; *,$$NEXTN.TEMP
000260 002572 BLT 19$
000262 010061 000070 MOV R0,70(R1) ; $$NEXTN.TEMP,*
000266 062761 000004 000066 ADD #4,66(R1) ; 1336
000274 000570 BR 20$ ; 1335
000276 016601 000022 9$: MOV 22(SP),R1 ; REQ,* 1343
000302 005002 CLR R2 ; I 1342
000304 016100 000070 10$: MOV 70(R1),R0 ; *,$$NEXTW.TEMP 1343
000310 062700 000002 ADD #2,R0 ; *,$$NEXTW.TEMP
000314 026100 000030 CMP 30(R1),R0 ; *,$$NEXTW.TEMP
000320 002567 BLT 23$
000322 010061 000070 MOV R0,70(R1) ; $$NEXTW.TEMP,*
000326 062761 000002 000066 ADD #2,66(R1) ; 1344
000334 005202 INC R2 ; I 1342
000336 020227 000001 CMP R2,#1 ; I,*
000342 003760 BLE 10$
000344 000560 BR 24$ ; 1317
000346 016601 000022 11$: MOV 22(SP),R1 ; REQ,* 1351
000352 012705 000030 MOV #30,R5
000356 060105 ADD R1,R5
000360 012704 000070 MOV #70,R4
000364 060104 ADD R1,R4
000366 011400 MOV (R4),R0 ; *,$$NEXTB.TEMP
000370 005200 INC R0 ; $$NEXTB.TEMP
000372 021500 CMP (R5),R0 ; *,$$NEXTB.TEMP
000374 002577 BLT 26$
000376 010014 MOV R0,(R4) ; $$NEXTB.TEMP,*
000400 012702 000066 MOV #66,R2 ; 1355
000404 060102 ADD R1,R2
000406 005212 INC (R2)
000410 011200 MOV (R2),R0
000412 005001 CLR R1 ; LENGTH
000414 156001 177777 BISB -1(R0),R1 ; *,LENGTH
000420 001023 BNE 13$ ; 1356
000422 121327 000006 CMPB (R3),#6 ; PARAMETER,* 1358
000426 001011 BNE 12$
000430 011400 MOV (R4),R0 ; *,$$NEXTW.TEMP 1360
000432 062700 000002 ADD #2,R0 ; *,$$NEXTW.TEMP
000436 021500 CMP (R5),R0 ; *,$$NEXTW.TEMP
000440 002560 BLT 27$
000442 010014 MOV R0,(R4) ; $$NEXTW.TEMP,*
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 49
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
000444 062712 000002 ADD #2,(R2) ; 1361
000450 000557 BR 28$ ; 1360
000452 011400 12$: MOV (R4),R0 ; *,$$NEXTB.TEMP 1365
000454 005200 INC R0 ; $$NEXTB.TEMP
000456 021500 CMP (R5),R0 ; *,$$NEXTB.TEMP
000460 002576 BLT 32$
000462 010014 MOV R0,(R4) ; $$NEXTB.TEMP,*
000464 005212 INC (R2) ; 1366
000466 000550 BR 28$ ; 1365
000470 003412 13$: BLE 15$ ; 1371
000472 110100 MOVB R1,R0 ; LENGTH,$$NEXTN.TEMP 1373
000474 061400 ADD (R4),R0 ; *,$$NEXTN.TEMP
000476 021500 CMP (R5),R0 ; *,$$NEXTN.TEMP
000500 002575 BLT 33$
000502 010014 MOV R0,(R4) ; $$NEXTN.TEMP,*
000504 021500 CMP (R5),R0 ; 1374
000506 002572 BLT 33$
000510 110100 MOVB R1,R0 ; LENGTH,* 1375
000512 060012 ADD R0,(R2)
000514 000572 14$: BR 34$ ; 1373
000516 032763 004000 000002 15$: BIT #4000,2(R3) ; *,*(PARAMETER) 1378
000524 001166 BNE 34$
000526 000562 BR 33$ ; 1379
000530 016601 000022 16$: MOV 22(SP),R1 ; REQ,* 1387
000534 012705 000030 MOV #30,R5
000540 060105 ADD R1,R5
000542 012702 000070 MOV #70,R2
000546 060102 ADD R1,R2
000550 011200 MOV (R2),R0 ; *,$$NEXTB.TEMP
000552 005200 INC R0 ; $$NEXTB.TEMP
000554 021500 CMP (R5),R0 ; *,$$NEXTB.TEMP
000556 002546 17$: BLT 33$
000560 010012 MOV R0,(R2) ; $$NEXTB.TEMP,*
000562 012704 000066 MOV #66,R4 ; 1391
000566 060104 ADD R1,R4
000570 005214 INC (R4)
000572 011400 MOV (R4),R0
000574 005001 CLR R1 ; ENTITY
000576 156001 177777 BISB -1(R0),R1 ; *,ENTITY
000602 011200 MOV (R2),R0 ; *,$$NEXTB.TEMP 1393
000604 005200 INC R0 ; $$NEXTB.TEMP
000606 021500 CMP (R5),R0 ; *,$$NEXTB.TEMP
000610 002531 18$: BLT 33$
000612 010012 MOV R0,(R2) ; $$NEXTB.TEMP,*
000614 005214 INC (R4) ; 1394
000616 011403 MOV (R4),R3
000620 114303 MOVB -(R3),R3 ; *,LENGTH
000622 042703 177400 BIC #177400,R3 ; *,LENGTH
000626 005701 TST R1 ; ENTITY 1397
000630 001013 BNE 21$
000632 105703 TSTB R3 ; LENGTH
000634 001012 BNE 22$
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 50
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
000636 010001 MOV R0,R1 ; *,$$NEXTW.TEMP 1399
000640 062701 000002 ADD #2,R1 ; *,$$NEXTW.TEMP
000644 021501 CMP (R5),R1 ; *,$$NEXTW.TEMP
000646 002512 19$: BLT 33$
000650 010112 MOV R1,(R2) ; $$NEXTW.TEMP,*
000652 062714 000002 ADD #2,(R4) ; 1400
000656 000511 20$: BR 34$ ; 1399
000660 105703 21$: TSTB R3 ; LENGTH 1404
000662 003504 22$: BLE 33$
000664 110301 MOVB R3,R1 ; LENGTH,$$NEXTN.TEMP 1405
000666 061201 ADD (R2),R1 ; *,$$NEXTN.TEMP
000670 021501 CMP (R5),R1 ; *,$$NEXTN.TEMP
000672 002500 BLT 33$
000674 010112 MOV R1,(R2) ; $$NEXTN.TEMP,*
000676 021501 CMP (R5),R1 ; 1406
000700 002475 23$: BLT 33$
000702 110300 MOVB R3,R0 ; LENGTH,* 1407
000704 060014 ADD R0,(R4)
000706 000475 24$: BR 34$ ; 1404
000710 016601 000022 25$: MOV 22(SP),R1 ; REQ,* 1417
000714 012704 000030 MOV #30,R4
000720 060104 ADD R1,R4
000722 012705 000070 MOV #70,R5
000726 060105 ADD R1,R5
000730 011500 MOV (R5),R0 ; *,$$NEXTB.TEMP
000732 005200 INC R0 ; $$NEXTB.TEMP
000734 021400 CMP (R4),R0 ; *,$$NEXTB.TEMP
000736 002456 BLT 33$
000740 010015 MOV R0,(R5) ; $$NEXTB.TEMP,*
000742 012700 000066 MOV #66,R0 ; 1421
000746 060100 ADD R1,R0
000750 005210 INC (R0)
000752 011001 MOV (R0),R1
000754 114101 MOVB -(R1),R1 ; *,LENGTH
000756 042701 177400 BIC #177400,R1 ; *,LENGTH
000762 105701 TSTB R1 ; LENGTH 1422
000764 003412 BLE 29$
000766 110103 MOVB R1,R3 ; LENGTH,$$NEXTN.TEMP 1424
000770 061503 ADD (R5),R3 ; *,$$NEXTN.TEMP
000772 021403 CMP (R4),R3 ; *,$$NEXTN.TEMP
000774 002437 26$: BLT 33$
000776 010315 MOV R3,(R5) ; $$NEXTN.TEMP,*
001000 021403 CMP (R4),R3 ; 1425
001002 002434 27$: BLT 33$
001004 110102 MOVB R1,R2 ; LENGTH,* 1426
001006 060210 ADD R2,(R0)
001010 000434 28$: BR 34$ ; 1424
001012 001430 29$: BEQ 33$ ; 1431
001014 121327 000011 CMPB (R3),#11 ; PARAMETER,* 1433
001020 001030 BNE 34$
001022 032716 000001 BIT #1,(SP) ; 1434
001026 001025 BNE 34$
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 51
X03.30 SCAN_PARAMETER 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (15)
001030 012700 177772 30$: MOV #-6,R0 ; 1435
001034 000424 BR 35$
001036 016601 000022 31$: MOV 22(SP),R1 ; REQ,* 1444
001042 016100 000070 MOV 70(R1),R0 ; *,$$NEXTN.TEMP
001046 062700 000010 ADD #10,R0 ; *,$$NEXTN.TEMP
001052 026100 000030 CMP 30(R1),R0 ; *,$$NEXTN.TEMP
001056 002406 32$: BLT 33$
001060 010061 000070 MOV R0,70(R1) ; $$NEXTN.TEMP,*
001064 062761 000010 000066 ADD #10,66(R1) ; 1445
001072 000403 BR 34$ ; 1444
001074 012700 177776 33$: MOV #-2,R0 ; 1446
001100 000402 BR 35$
001102 012700 000001 34$: MOV #1,R0 ; 1291
001106 005726 35$: TST (SP)+ ; 1263
001110 000207 RTS PC
; Routine Size: 293 words, Routine Base: $CODE$ + 3256
; Maximum stack depth per invocation: 8 words
000034 .PSECT $PLIT$, RO , D
P.AAD: ; CASE Table for SCAN.PARAMETER+0140 1317
000034 000004 .WORD 4 ; [6$]
000036 000036 .WORD 36 ; [7$]
000040 000074 .WORD 74 ; [8$]
000042 000132 .WORD 132 ; [9$]
000044 000664 .WORD 664 ; [30$]
000046 000202 .WORD 202 ; [11$]
000050 000202 .WORD 202 ; [11$]
000052 000364 .WORD 364 ; [16$]
000054 000544 .WORD 544 ; [25$]
000056 000544 .WORD 544 ; [25$]
000060 000672 .WORD 672 ; [31$]
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 52
X03.30 VERIFY_PARAMETERS 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (16)
; 1456 %routine ('VERIFY_PARAMETERS', CLEAR_PURGE, REQ) =
; 1457
; 1458 !++
; 1459 ! FUNCTIONAL DESCRIPTION:
; 1460 !
; 1461 !
; 1462 ! FORMAL PARAMETERS
; 1463 !
; 1464 ! REQ - Address of NICE request block (RB).
; 1465 !
; 1466 ! IMPLICIT INPUTS
; 1467 !
; 1468 ! NONE.
; 1469 !
; 1470 ! ROUTINE VALUE:
; 1471 !
; 1472 ! 1 if NICE request message has valid syntax.
; 1473 ! NEGATIVE NICE error return code if invalid.
; 1474 !
; 1475 ! SIDE EFFECTS:
; 1476 !
; 1477 ! NONE.
; 1478 !
; 1479 !--
; 1480
; 1481 begin
; 1482
; 1483 map
; 1484 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 1485
; 1486 local
; 1487 ENTITY, ! Entity type
; 1488 PARAMETER; ! NICE parameter number
; 1489
; 1490 REQ[RB_NICE_PARAMETERS] = .REQ[RB_NICE_POINTER]; ! Store parameters
; 1491 ENTITY = .REQ[RB_NICE_ENTITY_TYPE];
; 1492
; 1493 if (.ENTITY lss NODE_E) or (.ENTITY gtr MODULE_)
; 1494 then begin ! Illegal entity type
; 1495 REQ[RB_ERROR_DETAIL] = .REQ[RB_NICE_ENTITY_TYPE];
; L 1496 return $NICE$ERR_URC;
; %PRINT: Unrecognized component
; 1497 end;
; 1498
; 1499 ! Loop through the NICE message, verifying each parameter, stopping
; 1500 ! at end of the message.
; 1501
; 1502 while NEXTW_NICE ! Process parameter
; 1503 do begin
; 1504 local CODE, ENTRY;
; 1505
; 1506 PARAMETER = GETW (REQ[RB_NICE_POINTER]); ! Get parameter number
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 53
X03.30 VERIFY_PARAMETERS 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (16)
; 1507 if (ENTRY = NML$PARAMETER_LOOKUP (.ENTITY, .PARAMETER)) eql 0
; L 1508 then return $NICE$ERR_UPT; ! Cannot find parameter in tables
; %PRINT: Unrecognized parameter type
; 1509
; 1510 if (CODE = SCAN_PARAMETER (.ENTRY, .REQ, .CLEAR_PURGE)) neq $TRUE
; 1511 then return .CODE; ! Verify parameter data fields
; 1512 end;
; 1513
; 1514 return $TRUE; ! All parameters are OK
; 1515 end; ! End of VERIFY_PARAMETERS
.SBTTL VERIFY.PARAMETERS VERIFY_PARAMETERS
004370 .PSECT $CODE$, RO
000000 004167 000000G VERIFY.PARAMETERS:
JSR R1,$SAVE5 ; 1456
000004 005746 TST -(SP)
000006 016602 000020 MOV 20(SP),R2 ; REQ,* 1490
000012 012704 000066 MOV #66,R4
000016 060204 ADD R2,R4
000020 011462 000104 MOV (R4),104(R2)
000024 005003 CLR R3 ; ENTITY 1491
000026 156203 000074 BISB 74(R2),R3 ; *,ENTITY
000032 005703 TST R3 ; ENTITY 1493
000034 002403 BLT 1$
000036 020327 000004 CMP R3,#4 ; ENTITY,*
000042 003410 BLE 2$
000044 005062 000120 1$: CLR 120(R2) ; 1495
000050 116262 000074 000120 MOVB 74(R2),120(R2)
000056 012700 177770 MOV #-10,R0 ; 1494
000062 000454 BR 5$
000064 016200 000070 2$: MOV 70(R2),R0 ; *,$$NEXTW.TEMP 1502
000070 062700 000002 ADD #2,R0 ; *,$$NEXTW.TEMP
000074 026200 000030 CMP 30(R2),R0 ; *,$$NEXTW.TEMP
000100 002443 BLT 4$
000102 010062 000070 MOV R0,70(R2) ; $$NEXTW.TEMP,*
000106 005214 INC (R4) ; 1506
000110 011400 MOV (R4),R0
000112 116016 177777 MOVB -1(R0),(SP) ; *,$$GETB.X
000116 005214 INC (R4)
000120 011400 MOV (R4),R0
000122 116066 177777 000001 MOVB -1(R0),1(SP) ; *,$$GETB.X
000130 011605 MOV (SP),R5 ; $$GETB.X,PARAMETER
000132 010346 MOV R3,-(SP) ; ENTITY,* 1507
000134 010546 MOV R5,-(SP) ; PARAMETER,*
000136 004767 000000G JSR PC,NL.PLU
000142 022626 CMP (SP)+,(SP)+
000144 005700 TST R0 ; ENTRY
000146 001003 BNE 3$
000150 012700 177772 MOV #-6,R0 ; 1508
000154 000417 BR 5$
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 54
X03.30 VERIFY_PARAMETERS 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (16)
000156 010046 3$: MOV R0,-(SP) ; ENTRY,* 1510
000160 010246 MOV R2,-(SP)
000162 016646 000026 MOV 26(SP),-(SP) ; CLEAR.PURGE,*
000166 004767 176474 JSR PC,SCAN.PARAMETER
000172 062706 000006 ADD #6,SP
000176 010001 MOV R0,R1 ; *,CODE
000200 005300 DEC R0
000202 001730 BEQ 2$
000204 010100 MOV R1,R0 ; CODE,* 1511
000206 000402 BR 5$
000210 012700 000001 4$: MOV #1,R0 ; 1481
000214 005726 5$: TST (SP)+ ; 1456
000216 000207 RTS PC
; Routine Size: 72 words, Routine Base: $CODE$ + 4370
; Maximum stack depth per invocation: 11 words
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 55
X03.30 NML$NICE_EXECUTE 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (17)
; 1516 %routine ('NML$NICE_EXECUTE', REQ) =
; 1517
; 1518 !++
; 1519 ! FUNCTIONAL DESCRIPTION:
; 1520 !
; 1521 ! Dispatches to the appropriate NML NICE request processing routine.
; 1522 !
; 1523 ! FORMAL PARAMETERS
; 1524 !
; 1525 ! REQ - Address of NICE request block (RB).
; 1526 !
; 1527 ! IMPLICIT INPUTS
; 1528 !
; 1529 ! NONE.
; 1530 !
; 1531 ! ROUTINE VALUE:
; 1532 !
; 1533 ! 1 if NICE request message has valid syntax.
; 1534 ! NEGATIVE NICE error return code if invalid.
; 1535 !
; 1536 ! SIDE EFFECTS:
; 1537 !
; 1538 ! NONE.
; 1539 !
; 1540 !--
; 1541
; 1542 begin
; 1543
; 1544 map
; 1545 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 1546
; 1547 local
; 1548 RESULT,
; 1549 EID_LEN: $SIGNED_BYTE_VALUE, ! Signed length of entity id
; 1550 EID_PTR,
; 1551 EID_ADR;
; 1552
; 1553 ! Make sure we start at beginning of NICE request message.
; 1554
; 1555 REQ[RB_NICE_POSITION] = 0; ! Initialize position in NICE message
; 1556 REQ[RB_NICE_POINTER] = ch$ptr(.REQ[RB_NICE],,8); ! Initialize pointer
; 1557 REQ[RB_NICE_ENTITY_ADR] = 0; ! Initially no allocated memory
; 1558
; 1559 RESULT = 1; ! Initially success unless error
; 1560
; 1561 ! If the entity type is NODE,
; 1562 ! then transform node entity id from NICE input format
; 1563 ! to full address and name format for use internally.
; 1564 ! The contents of REQ[RB_NICE_ENTITY] which points into the entity
; 1565 ! entity id portion of the NICE message on entry to this routine
; 1566 ! will be replaced by a pointer into a buffer allocated here and
; 1567 ! filled in with the full node id.
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 56
X03.30 NML$NICE_EXECUTE 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (17)
; 1568
; 1569 selectone .REQ[RB_NICE_ENTITY_TYPE] of
; 1570 set
; 1571 [NODE_E]:
; 1572 begin
; 1573 local L, ADDRESS;
; 1574
; 1575 EID_ADR = NMU$MEMORY_GET (NODE_ID_BUFFER_ALLOCATION);
; 1576 if .EID_ADR eql 0 ! If cannot get buffer
; L 1577 then return $NICE$ERR_REE; ! return error
; %PRINT: Resource error
; 1578
; 1579 REQ[RB_NICE_ENTITY_ADR] = .EID_ADR;
; 1580 EID_PTR = ch$ptr (.EID_ADR,,8);
; 1581 EID_LEN = .REQ[RB_NICE_ENTITY_ID_LENGTH]; ! Pick up the id length
; 1582 L = NODE_ID_BUFFER_LENGTH;
; 1583
; 1584 if .EID_LEN[VALUE] eql 0
; 1585 then begin ! NODE address format
; 1586 ADDRESS = GETW (REQ[RB_NICE_ENTITY]); ! Get node address value
; 1587 if .ADDRESS eql 0
; 1588 then begin
; 1589 ch$move (NODE_ID_BUFFER_LENGTH,
; 1590 NMU$NETWORK_LOCAL (),
; 1591 .EID_PTR);
; 1592 REQ[RB_NICE_ENTITY] = ch$ptr (.EID_ADR,,8);
; 1593 end
; 1594 else begin
; 1595 PUTW (ADDRESS, EID_PTR); ! Store node address
; 1596 PUTB (0, EID_PTR); ! Zero length node name
; 1597 REQ[RB_NICE_ENTITY] = ch$ptr (.EID_ADR,,8);
; 1598 $NML$MAP_NODE_ID (L, .REQ[RB_NICE_ENTITY]);
; 1599 end;
; 1600 end
; 1601 else begin
; 1602 if .EID_LEN[VALUE] gtr 0
; 1603 then begin ! NODE name format
; 1604 ADDRESS = 0; ! Node address is zero
; 1605 PUTW (ADDRESS, EID_PTR); ! Store node address of zero
; 1606 PUTB (.EID_LEN[VALUE], EID_PTR);
; 1607 ch$move (.EID_LEN[VALUE], ! Move node name string
; 1608 .REQ[RB_NICE_ENTITY],
; 1609 .EID_PTR);
; 1610 REQ[RB_NICE_ENTITY] = ch$ptr (.EID_ADR,,8);
; 1611 $NML$MAP_NODE_ID (L, .REQ[RB_NICE_ENTITY]);
; 1612 end
; 1613 else REQ[RB_NICE_ENTITY] = 0; ! Means entity class
; 1614 end;
; 1615 end;
; 1616
; 1617 [LOGGING_]: ! No mapping for LOGGING entity
; 1618 0;
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 57
X03.30 NML$NICE_EXECUTE 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (17)
; 1619
; 1620 [otherwise]: ! Other entities
; 1621 begin
; 1622 local PTR, LEN: $SIGNED_BYTE_VALUE;
; 1623
; 1624 PTR = .REQ[RB_NICE_ENTITY]; ! Get string pointer
; 1625 LEN[VALUE] = ch$rchar (.PTR); ! Read count byte
; 1626
; 1627 if .LEN[VALUE] gtr 0 ! If count byte is positive
; 1628 then begin
; 1629 incr N from 1 to .LEN[VALUE]
; 1630 do begin ! Convert text to upper case
; 1631 local C;
; 1632
; 1633 C = ch$a_rchar (PTR);
; 1634 if (.C geq %c'a') and (.C leq %c'z')
; 1635 then ch$wchar ((.C - %C'a' + %C'A'), .PTR);
; 1636 end;
; 1637 end;
; 1638 end;
; 1639 tes;
; 1640
; 1641 if .RESULT eql 1
; 1642 then begin
; 1643 case .REQ[RB_NICE_FUNCTION] from LOAD_ to SYSTEM_SPECIFIC_ of
; 1644 set
; 1645 [LOAD_]:
; 1646 RESULT = NML$LOAD (.REQ);
; 1647
; 1648 [DUMP_]:
; 1649 RESULT = NML$DUMP (.REQ);
; 1650
; 1651 [TRIGGER_]:
; 1652 RESULT = NML$TRIGGER (.REQ);
; 1653
; 1654 [TEST_]:
; 1655 RESULT = NML$TEST (.REQ);
; 1656
; 1657 [CHANGE_]:
; 1658 RESULT = NML$CHANGE (.REQ);
; 1659
; 1660 [READ_]:
; 1661 RESULT = NML$READ (.REQ);
; 1662
; 1663 [ZERO_]:
; 1664 RESULT = NML$ZERO (.REQ);
; 1665
; 1666 [SYSTEM_SPECIFIC_]:
; 1667 RESULT = NML$SYSTEM_SPECIFIC (.REQ);
; 1668
; 1669 [inrange, ! NML's internal error if here
; 1670 outrange]:
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 58
X03.30 NML$NICE_EXECUTE 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (17)
; L 1671 RESULT = $NICE$ERR_MPE;
; %PRINT: Management program error
; 1672 tes;
; 1673 end;
; 1674
; 1675 return .RESULT;
; 1676 end; ! End of NML$NICE_EXECUTE
000000 .PSECT $OWN$, D
000000 IOSB: .BLKW 2
000004 IOSB: .BLKW 2
.GLOBL LUN$NS, EFN$NS
.SBTTL NML$NICE.EXECUTE NML$NICE_EXECUTE
004610 .PSECT $CODE$, RO
000000 004167 000000G NML$NICE.EXECUTE:
JSR R1,$SAVE5 ; 1516
000004 162706 000010 SUB #10,SP
000010 016605 000026 MOV 26(SP),R5 ; REQ,* 1555
000014 005065 000070 CLR 70(R5)
000020 016565 000024 000066 MOV 24(R5),66(R5) ; 1556
000026 005065 000100 CLR 100(R5) ; 1557
000032 012702 000001 MOV #1,R2 ; *,RESULT 1559
000036 005000 CLR R0 ; 1569
000040 156500 000074 BISB 74(R5),R0
000044 005700 TST R0
000046 001402 BEQ 1$
000050 000167 000446 JMP 8$
000054 012746 000012 1$: MOV #12,-(SP) ; 1575
000060 004767 000000G JSR PC,UM.GET
000064 010004 MOV R0,R4 ; *,EID.ADR
000066 001005 BNE 2$ ; 1576
000070 005726 TST (SP)+ ; 1577
000072 012700 177761 MOV #-17,R0
000076 000167 000654 JMP 23$
000102 010465 000100 2$: MOV R4,100(R5) ; EID.ADR,* 1579
000106 010466 000004 MOV R4,4(SP) ; EID.ADR,EID.PTR 1580
000112 005003 CLR R3 ; EID.LEN 1581
000114 156503 000076 BISB 76(R5),R3 ; *,EID.LEN
000120 012766 000011 000006 MOV #11,6(SP) ; *,L 1582
000126 012766 000102 000002 MOV #102,2(SP) ; 1586
000134 060566 000002 ADD R5,2(SP)
000140 105703 TSTB R3 ; EID.LEN 1584
000142 001102 BNE 4$
000144 005276 000002 INC @2(SP) ; 1586
000150 017600 000002 MOV @2(SP),R0
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 59
X03.30 NML$NICE_EXECUTE 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (17)
000154 116066 177777 000010 MOVB -1(R0),10(SP) ; *,$$GETB.X
000162 005276 000002 INC @2(SP)
000166 017600 000002 MOV @2(SP),R0
000172 116066 177777 000011 MOVB -1(R0),11(SP) ; *,$$GETB.X
000200 016601 000010 MOV 10(SP),R1 ; $$GETB.X,ADDRESS
000204 001014 BNE 3$ ; 1587
000206 012716 000011 MOV #11,(SP) ; 1591
000212 004767 000000G JSR PC,UN.LOCAL ; 1590
000216 010046 MOV R0,-(SP) ; 1591
000220 016646 000006 MOV 6(SP),-(SP) ; EID.PTR,*
000224 004767 000000G JSR PC,BL$MOV
000230 010476 000006 MOV R4,@6(SP) ; EID.ADR,* 1592
000234 000523 BR 5$ ; 1588
000236 110176 000004 3$: MOVB R1,@4(SP) ; ADDRESS,EID.PTR 1595
000242 005266 000004 INC 4(SP) ; EID.PTR
000246 010100 MOV R1,R0 ; ADDRESS,*
000250 000300 SWAB R0
000252 110076 000004 MOVB R0,@4(SP) ; *,EID.PTR
000256 005266 000004 INC 4(SP) ; EID.PTR
000262 105076 000004 CLRB @4(SP) ; EID.PTR 1596
000266 005266 000004 INC 4(SP) ; EID.PTR
000272 010476 000002 MOV R4,@2(SP) ; EID.ADR,* 1597
000276 005046 CLR -(SP) ; 1598
000300 005046 CLR -(SP)
000302 005046 CLR -(SP)
000304 012746 000002 MOV #2,-(SP)
000310 016646 000016 MOV 16(SP),-(SP) ; L,*
000314 010446 MOV R4,-(SP)
000316 005046 CLR -(SP)
000320 012746 000000' MOV #IOSB,-(SP)
000324 012746 000000G MOV #EFN$NS,-(SP)
000330 012746 000000G MOV #LUN$NS,-(SP)
000334 012746 016670 MOV #16670,-(SP)
000340 012746 006003 MOV #6003,-(SP)
000344 104377 EMT 377
000346 000463 BR 7$
000350 003460 4$: BLE 6$ ; 1602
000352 005001 CLR R1 ; ADDRESS 1604
000354 105076 000004 CLRB @4(SP) ; EID.PTR 1605
000360 005266 000004 INC 4(SP) ; EID.PTR
000364 005000 CLR R0
000366 000300 SWAB R0
000370 110076 000004 MOVB R0,@4(SP) ; *,EID.PTR
000374 005266 000004 INC 4(SP) ; EID.PTR
000400 110376 000004 MOVB R3,@4(SP) ; EID.LEN,EID.PTR 1606
000404 005266 000004 INC 4(SP) ; EID.PTR
000410 110303 MOVB R3,R3 ; EID.LEN,* 1609
000412 010316 MOV R3,(SP)
000414 017646 000002 MOV @2(SP),-(SP)
000420 016646 000006 MOV 6(SP),-(SP) ; EID.PTR,*
000424 004767 000000G JSR PC,BL$MOV
000430 010476 000006 MOV R4,@6(SP) ; EID.ADR,* 1610
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 60
X03.30 NML$NICE_EXECUTE 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (17)
000434 005046 CLR -(SP) ; 1611
000436 005046 CLR -(SP)
000440 005046 CLR -(SP)
000442 012746 000002 MOV #2,-(SP)
000446 016646 000022 MOV 22(SP),-(SP) ; L,*
000452 010446 MOV R4,-(SP)
000454 005046 CLR -(SP)
000456 012746 000004' MOV #IOSB,-(SP)
000462 012746 000000G MOV #EFN$NS,-(SP)
000466 012746 000000G MOV #LUN$NS,-(SP)
000472 012746 016670 MOV #16670,-(SP)
000476 012746 006003 MOV #6003,-(SP)
000502 104377 EMT 377
000504 062706 000006 5$: ADD #6,SP
000510 000437 BR 11$ ; 1602
000512 005076 000002 6$: CLR @2(SP) ; 1613
000516 005726 7$: TST (SP)+
000520 000433 BR 11$ ; 1569
000522 020027 000002 8$: CMP R0,#2
000526 001430 BEQ 11$
000530 016504 000102 MOV 102(R5),R4 ; *,PTR 1624
000534 105003 CLRB R3 ; LEN 1625
000536 151403 BISB (R4),R3 ; PTR,LEN
000540 003423 BLE 11$ ; 1627
000542 005001 CLR R1 ; N 1629
000544 000415 BR 10$
000546 005204 9$: INC R4 ; PTR 1633
000550 005000 CLR R0 ; C
000552 151400 BISB (R4),R0 ; PTR,C
000554 020027 000141 CMP R0,#141 ; C,* 1634
000560 002407 BLT 10$
000562 020027 000172 CMP R0,#172 ; C,*
000566 003004 BGT 10$
000570 010046 MOV R0,-(SP) ; C,* 1635
000572 162716 000040 SUB #40,(SP)
000576 112614 MOVB (SP)+,(R4) ; *,PTR
000600 005201 10$: INC R1 ; N 1629
000602 110300 MOVB R3,R0 ; LEN,*
000604 020100 CMP R1,R0 ; N,*
000606 003757 BLE 9$
000610 020227 000001 11$: CMP R2,#1 ; RESULT,* 1641
000614 001057 BNE 22$
000616 005000 CLR R0 ; 1643
000620 156500 000072 BISB 72(R5),R0
000624 162700 000017 SUB #17,R0
000630 020027 000007 CMP R0,#7
000634 101003 BHI 12$
000636 006300 ASL R0
000640 066007 000062' ADD P.AAE(R0),PC ; Case dispatch
000644 012702 177773 12$: MOV #-5,R2 ; *,RESULT 1671
000650 000441 BR 22$ ; 1643
000652 010546 13$: MOV R5,-(SP) ; 1646
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 61
X03.30 NML$NICE_EXECUTE 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (17)
000654 004767 000000G JSR PC,NL.LOD
000660 000433 BR 21$
000662 010546 14$: MOV R5,-(SP) ; 1649
000664 004767 000000G JSR PC,NL.DMP
000670 000427 BR 21$
000672 010546 15$: MOV R5,-(SP) ; 1652
000674 004767 000000G JSR PC,NL.TRG
000700 000423 BR 21$
000702 010546 16$: MOV R5,-(SP) ; 1655
000704 004767 000000G JSR PC,NL.TST
000710 000417 BR 21$
000712 010546 17$: MOV R5,-(SP) ; 1658
000714 004767 000000G JSR PC,NL.CHG
000720 000413 BR 21$
000722 010546 18$: MOV R5,-(SP) ; 1661
000724 004767 000000G JSR PC,NL.REA
000730 000407 BR 21$
000732 010546 19$: MOV R5,-(SP) ; 1664
000734 004767 000000G JSR PC,NL.ZRO
000740 000403 BR 21$
000742 010546 20$: MOV R5,-(SP) ; 1667
000744 004767 000000G JSR PC,NL.SPC
000750 010002 21$: MOV R0,R2 ; *,RESULT
000752 005726 TST (SP)+
000754 010200 22$: MOV R2,R0 ; RESULT,* 1542
000756 062706 000010 23$: ADD #10,SP ; 1516
000762 000207 RTS PC
; Routine Size: 250 words, Routine Base: $CODE$ + 4610
; Maximum stack depth per invocation: 27 words
000062 .PSECT $PLIT$, RO , D
P.AAE: ; CASE Table for NML$NICE.EXECUT+0640 1643
000062 000006 .WORD 6 ; [13$]
000064 000016 .WORD 16 ; [14$]
000066 000026 .WORD 26 ; [15$]
000070 000036 .WORD 36 ; [16$]
000072 000046 .WORD 46 ; [17$]
000074 000056 .WORD 56 ; [18$]
000076 000066 .WORD 66 ; [19$]
000100 000076 .WORD 76 ; [20$]
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 62
X03.30 NML$NICE_RESPONSE as NL_RSP 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (18)
; 1677 %global_routine ('NML$NICE_RESPONSE', REQ) : novalue =
; 1678
; 1679 !++
; 1680 ! FUNCTIONAL DESCRIPTION:
; 1681 !
; 1682 ! Builds a NICE response message for the current NML NICE request.
; 1683 ! If a NICE response message buffer has not yet been allocated
; 1684 ! will allocate one.
; 1685 !
; 1686 ! FORMAL PARAMETERS
; 1687 !
; 1688 ! REQ - Address of NICE request block (RB).
; 1689 !
; 1690 ! IMPLICIT INPUTS
; 1691 !
; 1692 ! Various fields in NICE request block set during processing.
; 1693 !
; 1694 ! ROUTINE VALUE:
; 1695 !
; 1696 ! NONE.
; 1697 !
; 1698 ! SIDE EFFECTS:
; 1699 !
; 1700 ! NONE.
; 1701 !
; 1702 !--
; 1703
; 1704 begin
; 1705
; 1706 map
; 1707 REQ: ref REQUEST_BLOCK; ! NICE RB structure
; 1708
; 1709 literal
; 1710 RESPONSE_LENGTH = 256, ! Length of response buffer in bytes
; 1711 RESPONSE_SIZE = ch$allocation (RESPONSE_LENGTH,8),
; 1712 RESPONSE_ALLOCATION = RESPONSE_SIZE * %upval;
; 1713
; 1714 local
; 1715 EID_PTR,
; 1716 EID_LEN,
; 1717 ERR_DTL,
; 1718 LENGTH,
; 1719 NICE_EID_LEN: $SIGNED_BYTE_VALUE,
; 1720 RESP_PTR; ! Pointer to NICE response message
; 1721
; 1722 !
; 1723 ! If there is no NICE repsonse buffer allocated then allocate one.
; 1724 ! Store allocation size for response message buffer.
; 1725 ! The NICE response buffer is released by the request completion
; 1726 ! routine.
; 1727
; 1728 if .REQ[RB_RESPONSE_ALLOCATION] eql 0
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 63
X03.30 NML$NICE_RESPONSE as NL_RSP 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (18)
; 1729 then begin
; 1730 REQ[RB_RESPONSE_ALLOCATION] = RESPONSE_ALLOCATION;
; 1731 REQ[RB_RESPONSE] = NMU$MEMORY_GET (RESPONSE_ALLOCATION);
; 1732 end;
; 1733
; 1734 !
; 1735 ! Initialize buffer for NICE response.
; 1736 !
; 1737
; 1738 REQ[RB_RESPONSE_LENGTH] = 0; ! Initialize length of response
; 1739 RESP_PTR = ch$ptr (.REQ[RB_RESPONSE],,8); ! Initialize pointer to response
; 1740
; 1741 PUTB (.REQ[RB_RETURN_CODE], RESP_PTR); ! Stash NICE return code
; 1742 REQ[RB_RESPONSE_LENGTH] = .REQ[RB_RESPONSE_LENGTH] + 1;
; 1743
; 1744 if ((.REQ[RB_RETURN_CODE] eql 2) or ! If short response message
; 1745 (.REQ[RB_RETURN_CODE] eql -128)) ! we are done
; 1746 then return;
; 1747
; 1748 ERR_DTL = .REQ[RB_ERROR_DETAIL];
; 1749 REQ[RB_ERROR_DETAIL] = -1; ! Reset for next response msg
; 1750 PUTW (ERR_DTL, RESP_PTR); ! Stash error detail
; 1751 REQ[RB_RESPONSE_LENGTH] = .REQ[RB_RESPONSE_LENGTH] + 2;
; 1752
; 1753 LENGTH = ch$rchar(.REQ[RB_ERROR_POINTER]) + 1;
; 1754 RESP_PTR = ch$move (.LENGTH, ! Text count
; 1755 .REQ[RB_ERROR_POINTER],
; 1756 .RESP_PTR);
; 1757 REQ[RB_RESPONSE_LENGTH] = .REQ[RB_RESPONSE_LENGTH] + .LENGTH;
; 1758
; 1759 NICE_EID_LEN = .REQ[RB_NICE_ENTITY_ID_LENGTH];
; 1760
; 1761 if ((.NICE_EID_LEN[VALUE] lss 0) or ! If plural entity class
; 1762 (.REQ[RB_NICE_FUNCTION] eql READ_) or ! or READ
; 1763 (.REQ[RB_NICE_FUNCTION] eql ZERO_ and ! or READ and ZERO
; 1764 .REQ[$sub_field (RB_NICE_OPTION, ZO_READ_AND_ZERO)] eql 1))
; 1765 then
; 1766 begin ! include an entity ID
; 1767 EID_PTR = .REQ[RB_NICE_ENTITY];
; 1768 selectone .REQ[RB_NICE_ENTITY_TYPE] of
; 1769 set
; 1770 [NODE_E]: ! NODE has special format
; 1771 begin
; 1772 local
; 1773 NODE_ID_PTR,
; 1774 LOCAL_NODE_PTR;
; 1775
; 1776 LOCAL_NODE_PTR = NMU$NETWORK_LOCAL (); ! Local node id
; 1777 NODE_ID_PTR = .RESP_PTR; ! Make copy of current pointer
; 1778
; 1779 EID_LEN = ch$rchar (ch$plus (.EID_PTR,2)) + 3;
; 1780 RESP_PTR = ch$move (.EID_LEN, .EID_PTR, .RESP_PTR);
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 64
X03.30 NML$NICE_RESPONSE as NL_RSP 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (18)
; 1781 !
; 1782 ! If node addresses are equal this is the executor node,
; 1783 ! so set bit 7 in length byte to indicate this fact.
; 1784 !
; 1785 if GETB (NODE_ID_PTR) eql GETB (LOCAL_NODE_PTR)
; 1786 then if GETB (NODE_ID_PTR) eql GETB (LOCAL_NODE_PTR)
; 1787 then ch$wchar ((ch$rchar (.NODE_ID_PTR) or (1 ^ 7)), .NODE_ID_PTR);
; 1788
; 1789 REQ[RB_RESPONSE_LENGTH] = .REQ[RB_RESPONSE_LENGTH] + .EID_LEN;
; 1790 end;
; 1791
; 1792 [LOGGING_]:
; 1793 begin
; 1794 ch$wchar_a (ch$rchar (.EID_PTR),RESP_PTR);
; 1795 REQ[RB_RESPONSE_LENGTH] = .REQ[RB_RESPONSE_LENGTH] + 1;
; 1796 end;
; 1797
; 1798 [otherwise]:
; 1799 begin
; 1800 EID_LEN = ch$rchar (.EID_PTR) + 1;
; 1801 RESP_PTR = ch$move (.EID_LEN, .EID_PTR, .RESP_PTR);
; 1802 REQ[RB_RESPONSE_LENGTH] = .REQ[RB_RESPONSE_LENGTH] + .EID_LEN;
; 1803 end;
; 1804 tes;
; 1805 end;
; 1806
; 1807 end; ! End of NML$NICE_RESPONSE
.SBTTL NL.RSP NML$NICE_RESPONSE as NL_RSP
005574 .PSECT $CODE$, RO
000000 004167 000000G NL.RSP::JSR R1,$SAVE5 ; 1677
000004 005746 TST -(SP)
000006 016602 000020 MOV 20(SP),R2 ; REQ,* 1728
000012 012700 000036 MOV #36,R0
000016 060200 ADD R2,R0
000020 005710 TST (R0)
000022 001010 BNE 1$
000024 012710 000400 MOV #400,(R0) ; 1730
000030 011046 MOV (R0),-(SP) ; 1731
000032 004767 000000G JSR PC,UM.GET
000036 010062 000026 MOV R0,26(R2)
000042 005726 TST (SP)+ ; 1729
000044 012716 000034 1$: MOV #34,(SP) ; 1738
000050 060216 ADD R2,(SP)
000052 005076 000000 CLR @0(SP)
000056 016205 000026 MOV 26(R2),R5 ; *,RESP.PTR 1739
000062 116225 000116 MOVB 116(R2),(R5)+ ; *,RESP.PTR 1741
000066 005276 000000 INC @0(SP) ; 1742
000072 126227 000116 000002 CMPB 116(R2),#2 ; 1744
000100 001541 BEQ 7$
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 65
X03.30 NML$NICE_RESPONSE as NL_RSP 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (18)
000102 126227 000116 177600 CMPB 116(R2),#-200 ; 1745
000110 001535 BEQ 7$ ; 1746
000112 016200 000120 MOV 120(R2),R0 ; *,ERR.DTL 1748
000116 012762 177777 000120 MOV #-1,120(R2) ; 1749
000124 110025 MOVB R0,(R5)+ ; ERR.DTL,RESP.PTR 1750
000126 010001 MOV R0,R1 ; ERR.DTL,*
000130 000301 SWAB R1
000132 110125 MOVB R1,(R5)+ ; *,RESP.PTR
000134 062776 000002 000000 ADD #2,@0(SP) ; 1751
000142 005001 CLR R1 ; LENGTH 1753
000144 157201 000122 BISB @122(R2),R1 ; *,LENGTH
000150 005201 INC R1 ; LENGTH
000152 010146 MOV R1,-(SP) ; LENGTH,* 1756
000154 016246 000122 MOV 122(R2),-(SP)
000160 010546 MOV R5,-(SP) ; RESP.PTR,*
000162 004767 000000G JSR PC,BL$MOV
000166 010005 MOV R0,R5 ; *,RESP.PTR 1754
000170 060176 000006 ADD R1,@6(SP) ; LENGTH,* 1757
000174 005000 CLR R0 ; NICE.EID.LEN 1759
000176 156200 000076 BISB 76(R2),R0 ; *,NICE.EID.LEN
000202 002413 BLT 2$ ; 1761
000204 126227 000072 000024 CMPB 72(R2),#24 ; 1762
000212 001407 BEQ 2$
000214 126227 000072 000025 CMPB 72(R2),#25 ; 1763
000222 001066 BNE 6$
000224 005762 000072 TST 72(R2) ; 1764
000230 100063 BPL 6$
000232 016201 000102 2$: MOV 102(R2),R1 ; *,EID.PTR 1767
000236 005000 CLR R0 ; 1768
000240 156200 000074 BISB 74(R2),R0
000244 005700 TST R0
000246 001031 BNE 3$
000250 004767 000000G JSR PC,UN.LOCAL ; 1776
000254 010002 MOV R0,R2 ; *,LOCAL.NODE.PTR
000256 010503 MOV R5,R3 ; RESP.PTR,NODE.ID.PTR 1777
000260 005004 CLR R4 ; EID.LEN 1779
000262 156104 000002 BISB 2(R1),R4 ; *(EID.PTR),EID.LEN
000266 062704 000003 ADD #3,R4 ; *,EID.LEN
000272 010416 MOV R4,(SP) ; EID.LEN,* 1780
000274 010146 MOV R1,-(SP) ; EID.PTR,*
000276 010546 MOV R5,-(SP) ; RESP.PTR,*
000300 004767 000000G JSR PC,BL$MOV
000304 010005 MOV R0,R5 ; *,RESP.PTR
000306 122322 CMPB (R3)+,(R2)+ ; NODE.ID.PTR,LOCAL.NODE.PTR 1785
000310 001030 BNE 5$
000312 122322 CMPB (R3)+,(R2)+ ; NODE.ID.PTR,LOCAL.NODE.PTR 1786
000314 001026 BNE 5$
000316 005000 CLR R0 ; 1787
000320 151300 BISB (R3),R0 ; NODE.ID.PTR,*
000322 052700 000200 BIS #200,R0
000326 110013 MOVB R0,(R3) ; *,NODE.ID.PTR
000330 000420 BR 5$ ; 1789
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 66
X03.30 NML$NICE_RESPONSE as NL_RSP 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (18)
000332 020027 000002 3$: CMP R0,#2 ; 1768
000336 001004 BNE 4$
000340 111125 MOVB (R1),(R5)+ ; EID.PTR,RESP.PTR 1794
000342 005276 000006 INC @6(SP) ; 1795
000346 000414 BR 6$ ; 1768
000350 005004 4$: CLR R4 ; EID.LEN 1800
000352 151104 BISB (R1),R4 ; EID.PTR,EID.LEN
000354 005204 INC R4 ; EID.LEN
000356 010416 MOV R4,(SP) ; EID.LEN,* 1801
000360 010146 MOV R1,-(SP) ; EID.PTR,*
000362 010546 MOV R5,-(SP) ; RESP.PTR,*
000364 004767 000000G JSR PC,BL$MOV
000370 010005 MOV R0,R5 ; *,RESP.PTR
000372 060476 000012 5$: ADD R4,@12(SP) ; EID.LEN,* 1802
000376 022626 CMP (SP)+,(SP)+ ; 1799
000400 062706 000006 6$: ADD #6,SP ; 1704
000404 005726 7$: TST (SP)+ ; 1677
000406 000207 RTS PC
; Routine Size: 132 words, Routine Base: $CODE$ + 5574
; Maximum stack depth per invocation: 13 words
; 1808 end ! End of Module NMLNIC
; 1809 eludom
; OTS external references
.GLOBL $SAVE5, $SAVE4, $SAVE2, BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 33 RO , D , LCL, REL, CON
; $CODE$ 1602 RO , I , LCL, REL, CON
; $OWN$ 4 RW , D , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; DNET61:<MCB.NML>NMLLIB.L16.2 2718 226 8 0
NMLNIC NMLNIC -- NICE Message Verifier 24-May-1985 13:19:37 TOPS-20 Bliss-16 2A(530) Page 67
X03.30 NML$NICE_RESPONSE as NL_RSP 3-Jan-1983 01:38:17 DNET61:<MCB.NML>NMLNIC.BLI.1 (18)
; 1810 ! Local Modes:
; 1811 ! Mode:BLISS
; 1812 ! Auto Save Mode:2
; 1813 ! Comment Column:40
; 1814 ! Comment Rounding:+1
; 1815 ! End:
; Size: 1602 code + 37 data words
; Run Time: 00:33.7
; Elapsed Time: 00:42.4
; Memory Used: 76 pages
; Compilation Complete
ADDRESS 1573 1586# 1587 1595 1604# 1605
ADVANCE 405# 888 898 908 1181 1203 1214 1220 1232 1243 1252 1322
1329 1336 1344 1361 1366 1375 1400 1407 1426 1445
AI 1414 1433
ALL 408
BOOT_OPTIONS 780
BO_ENTITY_TYPE 789 790 796 804
BO_RESERVED 793
C 1631 1633# 1634 1635
CH$WCHAR 1635 1787
CHANGE_ 605 1657
CHANGE_OPTIONS 950
CIRCUIT_ 664 727 790 1226
CLEAR_PURGE 1263 1313 1456 1510
CM2 1340
CMN 1348 1358
CMO 1349
CMU 1385
COUNT 405 406
CO_CLEAR_PURGE 968
CO_ENTITY_TYPE 958
CO_RESERVED 960
DO_ENTITY_TYPE 726 727 733 741
DO_RESERVED 730
DU1 1317 1319
DU2 1326
DU4 1333
DUMMY 330+ 332+ 333+
DUMP_OPTIONS 717
DUMP_ 599 1648
EID_ADR 1551 1575# 1576 1579 1580 1592 1597 1610
EID_LEN 1549 1581# 1584 1602 1606 1607 1716 1779# 1780 1789 1800# 1801
1802
EID_PTR 1550 1580# 1591 1595 1596 1605 1606 1609 1715 1767# 1779 1780
1794 1800 1801
ENTITY 1389 1391# 1397 1487 1491# 1493 1507
ENT_TYP 863 867# 870
ERR_DTL 1717 1748# 1750
FORMAT 1164 1172# 1173 1174 1208 1217 1220 1237 1243
GETB 587 658 721 784 847 884 894 904 954 1009 1067 1122
1172 1355 1391 1394 1421 1785 1786
GETW 1506# 1586
GET_ENTITY_ID 372 671 734 797 856 963 1021 1076
HI 1415
HX8 1317 1442
I 1342
L 1573 1582# 1598 1611
LEN 1622 1625# 1627 1629
LINE_ 1225
LOAD_OPTIONS 654
LOAD_ 595 597 1643 1645
LOCAL_NODE_PTR 1774 1776# 1785 1786
LOGGING_ 1248 1617 1792
LO_ENTITY_TYPE 663 664 670 678
LO_RESERVED 667
MODULE_ 1081 1196 1227 1493
N 399 402 1629
NEXTB_NICE 383# 586 657 720 783 846 953 1008 1066 1121 1170 1251
1321 1351 1365 1387 1393# 1417
NEXTB 384
NEXTF_NICE 388# 882 892 902 1200 1229
NEXTF 389
NEXTN_NICE 399# 1335 1373 1405 1424 1444
NEXTN 400
NEXTW_NICE 394# 1210 1328 1343 1360 1399 1502
NEXTW 395
NICE$_SUC 1315
NICE_EID_LEN 1719 1759# 1761
NICE_PARAMETER_ENTRY 413# 1300
NICE_PARAMETER_NUMBER 412#
NICE_PARAMETER_TABLE_ENTRY 420# 1295
NML$CHANGE 480 1658
NML$DEQUEUE_REQUEST 362
NML$DUMP 477 1649
NML$LOAD 476* 1646
NML$NICE_EXECUTE 375 541
NML$NICE_RESPONSE 376 548
NML$NICE_VERIFY 363 538
NML$PARAMETER_LOOKUP 484 1507
NML$READ 481 1661
NML$REQUEST_FINISH 550
NML$REQUEST_MANAGER 346+
NML$REQUEST_NEXT 532
NML$SYSTEM_SPECIFIC 483 1667
NML$TEST 479 1655
NML$TRIGGER 478 1652
NML$ZERO 482 1664
NMLNIC 196#
NMU$MEMORY_GET 1575 1731
NMU$MEMORY_MANAGER 344+
NMU$NETWORK_LOCAL 485 1590 1776
NMU$QUEUE_MANAGER 345+
NMU$SCHED_MANAGER 343+*
NODE_E 663 676 726 739 789 802 861 868 1196 1198 1397 1493
1571 1770
NODE_ID_BUFFER_ALLOCATION 1575
NODE_ID_BUFFER_LENGTH 1582 1589
NODE_ID_PTR 1773 1777# 1785 1786 1787
NONE 469
NULL 520# 536
OPT 654 658# 661 663 664 667 670 678 717 721# 724 726
727 730 733 741 780 784# 787 789 790 793 796 804
843 850# 851 853 865 880 950 957# 958 960 968 1005
1012# 1013 1015 1018 1063 1070# 1071 1073
PARAMETER 1298 1300# 1306 1314 1317 1358 1378 1433 1434 1488 1506# 1507
PARAMETER_ENTRY_FIELDS 423# 467
PARAMETER_ENTRY_SIZE 463# 467
PARAMETER_ENTRY 466# 1298
POINTER 405 406#
PTR 1622 1624# 1625 1633 1635
PUTB 1596 1606 1741
PUTW 1595 1605 1750
QUALIFIER_PARAMETER 1057# 1082
RB_ACCOUNT_LENGTH 878 904 905 908
RB_ACCOUNT 878 907
RB_ERROR_DETAIL 535 1495 1748 1749
RB_ERROR_POINTER 536 1753 1755
RB_NICE 534 1556
RB_NICE_ENTITY 1176 1213 1219 1222 1239 1245 1250 1586 1592 1597 1598 1608
1610 1611 1613 1624 1767
RB_NICE_ENTITY_ADR 1557 1579
RB_NICE_ENTITY_ID_LENGTH 1173 1581 1759
RB_NICE_ENTITY_TYPE 670 676 678 733 739 741 796 802 804 851 861 867
868 870 958 1013 1071 1081 1196 1491 1495 1569 1768
RB_NICE_FUNCTION 587 595 1643 1762 1763
RB_NICE_LENGTH 384 389 395 400 886 896 906 1202 1231 1374 1406 1425
RB_NICE_OPTION 661 724 787 847 850 954 957 1009 1012 1067 1070 1122
1125 1764
RB_NICE_PARAMETERS 1490
RB_NICE_POINTER 391 534 587 658 721 784 847 884 887 888 894 897
898 904 907 908 954 1009 1067 1122 1172 1181 1203 1213
1214 1219 1220 1232 1239 1243 1250 1252 1309 1322 1329 1336
1344 1355 1361 1366 1375 1391 1394 1400 1407 1421 1426 1445
1490 1506 1556
RB_NICE_POSITION 385 390 396 401 533 886 896 906 1180 1202 1231 1374
1406 1425 1555
RB_NICE_QUALIFIER 1308 1309
RB_PASSWORD 877 897
RB_PASSWORD_LENGTH 877 894 895 898
RB_RESPONSE 1731 1739
RB_RESPONSE_ALLOCATION 1728 1730
RB_RESPONSE_LENGTH 545 1738 1742 1751 1757 1789 1795 1802
RB_RETURN_CODE 547 1741 1744 1745
RB_USER 876 887
RB_USER_LENGTH 876 884 885 888
READ_OPTIONS 1005
READ_ 607 1660 1762
REQ 384 385 389 390 391 395 396 400 401 524 532# 533#
534# 535# 536# 538 541 545 547# 548 550 555 584 587#
595 598 600 602 604 606 608 610 612 619 651 658
661# 670# 671 676# 677 678# 682 714 721 724# 733# 734
739# 740 741# 745 777 784 787# 796# 797 802# 803 804#
808 840 847# 850 851# 856 861 867 868# 869 870# 876#
877# 878# 884# 885 886 887# 888 894# 895 896 897# 898
904# 905 906 907# 908 913 918 947 954# 957 958# 963
968 970 1002 1009# 1012 1013# 1021 1026 1028 1060 1067# 1070
1071# 1076 1081 1082 1086 1115 1122# 1125 1132 1161 1172 1173#
1176# 1180# 1181 1196 1202 1203 1213# 1214 1219# 1220 1222# 1231
1232 1239# 1243 1245# 1250# 1252 1263 1294 1308 1309# 1322 1329
1336 1344 1355 1361 1366 1374 1375 1391 1394 1400 1406 1407
1421 1425 1426 1445 1456 1484 1490# 1491 1495# 1506 1510 1516
1545 1555# 1556# 1557# 1569 1579# 1581 1586 1592# 1597# 1598 1608
1610# 1611 1613# 1624 1643 1646 1649 1652 1655 1658 1661 1664
1667 1677 1707 1728 1730# 1731# 1738# 1739 1741 1742# 1744 1745
1748 1749# 1751# 1753 1755 1757# 1759 1762 1763 1764 1767 1768
1789# 1795# 1802#
REQUEST_BLOCK 524 584 651 714 777 840 947 1002 1060 1115 1161 1294
1484 1545 1707
RESPONSE_ALLOCATION 1712# 1730 1731
RESPONSE_LENGTH 1710# 1711
RESPONSE_SIZE 1711# 1712
RESP_PTR 1720 1739# 1741 1750 1754# 1756 1777 1780# 1794 1801#
RESULT 1548 1559# 1641 1646# 1649# 1652# 1655# 1658# 1661# 1664# 1667# 1671#
1675
RO_ENTITY_TYPE 1013
RO_INFO_TYPE 1018
RO_RESERVED 1015
RT$LOCAL 532
RTN_COD 523 538# 540 541# 543 547 655 671# 673 674 677# 680
718 734# 736 737 740# 743 781 797# 799 800 803# 806
844 856# 858 859 869# 913# 916 951 963# 965 966 1006
1021# 1023 1024 1064 1076# 1078 1079 1119
SCAN_PARAMETER 373 1510
SET_DEFINE 648# 677 711# 740 774# 803 837# 869 913 999# 1026
SYSTEM_SPECIFIC_ 595 611 1643 1666
SYS_TYPE 1118 1125# 1127
TABLE_ENTRY_FIELDS 410# 421
TABLE_ENTRY_SIZE 417# 421
TASK_INFO 318+
TEST_OPTIONS 843
TEST_ 603 1654
TOPS20_ 1127
TO_ACCESS_CONTROL 865 880
TO_ENTITY_TYPE 851
TO_RESERVED 853
TRIGGER_ 601 1651
VALUE 1173 1174 1208 1217 1220 1237 1243 1356 1371 1373 1375 1397
1404 1405 1407 1422 1424 1426 1430 1584 1602 1606 1607 1625
1627 1629 1761
VERIFY_PARAMETERS 374 677 740 803 869 913 968 1026 1082
VY_CHANGE_REQUEST 368 606
VY_DUMP_REQUEST 365 600
VY_LOAD_REQUEST 364 598
VY_READ_REQUEST 369 608
VY_SYSTEM_SPECIFIC 371 612
VY_TEST_REQUEST 367 604
VY_TRIGGER_REQUEST 366 602
VY_ZERO_REQUEST 370 610
ZERO_OPTIONS 1063
ZERO_ 609 1663 1763
ZO_ENTITY_TYPE 1071
ZO_READ_AND_ZERO 1764
ZO_RESERVED 1073
_ADJACENT_ONLY 445#
_APPLICABILITY 435# 440
_CHARACTERISTIC 452#
_CLEARABLE 458#
_DATA_FORMAT 429# 1317 1358 1433
_DATA_TYPE 430#
_EVENTS 455# 1378
_EXECUTOR_ONLY 442#
_NAME 426#
_NML_PARAMETER 433#
_OTHER_NODES 443# 444
_QUALIFIED 441#
_QUALIFIER 456# 1306 1314 1434
_READ_ONLY 437#
_REMOTE_ONLY 446#
_SETTABILITY 434# 436
_SINK_ONLY 447#
_STATUS 453#
_SUMMARY 454#
_UPPER_CASE 459#
_WRITE_ONLY 438#
$ADDRESS 413
$ALIGN 432 451
$BIT 433 437 438 441 442 445 446 447 452 453 454 455
456 458 459
$BITS 434 435 443
$BYTE 429 430
$CONTINUE 439 448 449
$FALSE 319+
$FIELD 410 423
$FIELD_SET_SIZE 417 463
$INCOMPLETE$ 330+#
$INTEGER 412
$INTERNAL_ERROR$ 315+#
$MCB 425
$NICE$ERR_IMF 588 659 722 785 848 854 866 890 900 910 955 1010
1068 1123 1184 1204 1206 1211 1233 1235 1323 1330 1337 1345
1362 1367 1376 1379 1382 1395 1401 1408 1411 1427 1431 1439
1446
$NICE$ERR_IPG 1310
$NICE$ERR_MPE 1671
$NICE$ERR_OPF 335+
$NICE$ERR_REE 1577
$NICE$ERR_UFO 615 665 668 728 731 791 794 961 1016 1019 1074 1128
$NICE$ERR_UPT 1435 1451 1508#
$NICE$ERR_URC 1253 1258 1496
$NML$MAP_NODE_ID 1598 1611
$OVERLAY 436 440 444
$POINTER 426
$SHOW 408 469
$SIGNED_BYTE_VALUE 1164 1353# 1389 1419# 1549 1622 1719
$SUB_FIELD 1764
$TRUE 1261 1454 1510 1514
%GLOBAL_ROUTINE 486# 1677#
%REMAINING 318+
%ROUTINE 555# 619# 682# 745# 808# 918# 970# 1028# 1086# 1132# 1263# 1456#
1516#