*DECK NSTORE PROC NSTORE(BARRAY,SYMBOL,VALUE); BEGIN *IF,DEF,IMS # *1DC NSTORE * 1.PROC NAME AUTHOR DATE * NFETCH PETER TAM 5/24/77 * * 2.FUNCTIONAL DESCRIPTION * NSTORE IS A SYMPL ROUTINE CALLABLE BY AN FNT CALLING * SEQUENCE, TO STORE FIELDS IN SUPERVISORY MESSAGES. * CALL NSTORE(ARRAY,F1,F2) * WHERE * ARRAY IS THE FWA OF THE SUPERVISORY MESSAGE * F1 IS THE LEFT JUSTIFIED ZERO FILLED DISPLAY CODED * NAME OF THE FIELD TO BE STORED * F2 IS THE LEFT JUSTIFIED ZERO FILLED DISPLAY CODED * NAME OF THE VALUE OF THE FIELD TO BE STORED * F2 MAY ALSO BE A CONSTANT VALUE TO BE STORED * * 3.METHOD USED * NSTORE WILL STORE F2 IN FIELD F1 IN THE ARRAY * * IT USES A TABLE LOOK-UP TECHNIQUE TO FIND THE * A. VALUE OF F2 * B. THE DESCRIPTION OF WHERE IN THE ARRAY F1 IS * * THESE TABLES ARE ASSEMBLED INTO THE COMPASS ROUTINE * NP$SYM, WHICH USES THEIR DEFINITION IN NETMAC. * * * 4.ENTRY CONDITIONS * ARRAY CONTAINS THE SUPERVISORY MESSAGE * F1 IS THE DISPLAY CODE NAME OF THE REQUIRED FIELD * * 5.EXIT CONDITIONS * THE VALUE F2 WILL BE STORED IN FIELD F1 OF ARRAY * * 6.COMDECKS CALLED * NP$CRT * * 7.ROUTINES CALLED * NFETCH * NP$ERR * * 8.DAYFILE MESSAGES * NETWORK APPLICATION ABORTED, RC = 69. * NSTORE: ILLEGAL FIELD MNEMONIC. * * # *ENDIF *CALL NP$CRT XREF FUNC NFETCH I; XREF PROC NP$ERR; XREF ITEM NP$SYME U; XREF ITEM NP$SYMI U; XREF ARRAY NP$SYM[0:300] S(2); BEGIN ITEM SYMNAME C(0,0,7); ITEM SYMST U(0,54,6); ITEM SYMWORD U(1,6,12); ITEM SYMBIT U(1,18,12); ITEM SYMLGTH U(1,30,12); ITEM SYMVAL U(1,0,60); END ARRAY BARRAY[0:O"77777"] S(1); ITEM CONTENTS U; ITEM VALUE I; ITEM SYMBOL U; ITEM I U; ITEM J U; ITEM II U; II = (LOC(NP$SYMI)-LOC(NP$SYM))/2; FOR I = II STEP 1 UNTIL NP$SYME DO BEGIN IF SYMNAME[I] EQ C<0,7>SYMBOL THEN BEGIN J = SYMST[I]; IF J EQ 4 THEN BEGIN NP$ERR("69"); # ILLEGAL FIELD MNEMONIC. # END IF J EQ 3 OR J EQ 2 THEN BEGIN IF VALUE NQ 0 AND B<42,18>VALUE EQ 0 AND SYMLGTH[I] LQ 18 THEN BEGIN VALUE = NFETCH(0,VALUE); END BCONTENTS[SYMWORD[I]] = VALUE; RETURN; END IF J EQ 1 THEN BEGIN IF VALUE NQ 0 AND B<42,18>VALUE EQ 0 AND SYMLGTH[I] LQ 18 THEN BEGIN VALUE = NFETCH(0,VALUE); END BCONTENTS[SYMWORD[I]] = VALUE; RETURN; END END END NP$ERR("69"); # ILLEGAL FIELD MNEMONIC. # END TERM