ASMB,R,Q,C HED <#NRVS> NRV SEARCH ROUTINE NAM #NRVS,30 91750-1X022 REV 2013 800407 ALL * ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ****************************************************************** * * ENT #NRVS * * EXT #MSTO,#NCNT,$OPSY,#NRV EXT $LIBR,$LIBX,.ENTP EXT #RR7 * * NAME: #NRVS * SOURCE: 91750-18022 * RELOC: 91750-1X022 * PGMR: LYLE WEIMAN APR '79 ** ** * * * #NRVS CALLING SEQUENCE: * * JSB #NRVS * DEF RTN * DEF NODE NODE NUMBER FOR SEARCH * [DEF TIMOT] RETURNED: MASTER TIME-OUT (OVERRIDE OR #MSTO) * [DEF FMT#] RETURNED: UPGRADE LEVEL OF ] * [DEF NAYBR] RETURNED: NON-ZERO IF NODE IS NEIGHBOR TO LOCAL, * [DEF NODE#] RETURNED: NODE NUMBER, WHEN PARAMETER * ON ENTRY CONTAINS -LU * * * * NOTE 1: WHEN "NEIGHBOR ADDRESSING" IS USED, "DS04" ERRORS CAN * OCCUR IF NO ENTRY IN THE NRV HAS BEEN IDENTIFIED SPECIFICALLY * AS THE NEIGHBOR ON THE LU SPECIFIED. * SKP * NRV TABLE FORMAT: * * +--------------------------+ * #NRV----> ! CPU NUMBER (16-BITS) ! * +--------------------------+ * ! TIME-OUT ! XXXX !LEVEL # ! * ! (8 BITS) !4 BITS!4 BITS ! * +----------+---------------+ * !RESERVED!N! COMM-LINK LU ! * !(7 BITS)! ! (8 BITS) ! * +----------+---------------+ * * N = 1 IF CPU IS NEIGHBOR TO LOCAL NODE, ELSE 0 * * LEVEL # = 0 IF NODE IS DS/1000 (91740, * 1 " " " DS/100-IV (91750A), ETC. * * XXXX = RESERVED FOR FUTURE USE SPC 2 * ARGUMENTS LIST: NODE NOP REMOTE NODE NUMBER, OR - LU TIMOT NOP RETURNED:MASTER T.O. OVERRIDE, OR #MSTO FMT# NOP RETURNED: REMOTE NODE'S UPGRADE LEVEL NAYBR NOP RETURNED: NEIGHBOR(#0)/NON-NEIGHBOR(0)/FLAG NNODX NOP RETURNED: REMOTE NODE # ("NEIGHBOR" ADDRESSING ONLY) SPC 1 #NRVS NOP ENTRY/EXIT JSB $LIBR GO PRIVILEGED NOP JSB .ENTP DEF NODE FOR PARAMETERS & RETURN POINT. INT JSB INIT LDA #NCNT INTITIALIZE CNTR STA TEMP CLA,INA INITIALIZE POSITION COUNTER STA POS * * CONVERT DESTINATION NODE TO LU * LDA NODE,I SSA ABSOLUTE DESTINATION CODE ? (NEIGHBOR) JMP ABS YES, SEARCH FOR NEIGHBOR NODE. FDLU STA NODE LDB #NRV * LOOP JSB LODWD GET A CPU # CPA NODE IS IT THE GOOD ONE ? JMP CPUFD YES ISZ POS BUMP POSITION NUMBER ADB NRVSZ POINT TO NEXT NODE IN TABLE ISZ TEMP END OF TABLE ? JMP LOOP NO, CONTINUE * * NODE NOT FOUND. TAKE ERROR EXIT. * DS04 EQU * LDB "04" JMP EXIT2 TAKE ERROR RETURN * * * HERE WHEN GIVEN A NEGATIVE NODE # (- LINK LU) ABS EQU * CMA,INA MAKE IT >0 JSB #RR7 FIND NEIGHBOR IN LINK VECTOR RSS NOT FOUND, A = LU JMP FDLU FOUND, A = NODE IOR B400 SET "NEIGHBOR" BIT STA NODE SAVE LDB #NRV ADB D2 ADVANCE TO LU WORD LOOP2 EQU * JSB LODWD OBTAIN LU WORD AND =B777 MASK LU & "NEIGHBOR" BIT CPA NODE MATCH THE ONE WE WANT? JMP ABSF YES--FOUND IT ISZ POS NO, BUMP POSITION # ADB NRVSZ ADVANCE POINTER ISZ TEMP END OF LOOP? JMP LOOP2 NO, CONTINUE JMP DS04 NOT FOUND. * ABSF EQU * HERE WHEN NEIGHBOR NODE # FOUND ADB M2 BACK UP TO NODE NUMBER JSB LODWD OBTAIN NODE NUMBER STA NODE * CPUFD EQU * HERE WHEN NODE HAS BEEN LOCATED IN NRV INB BUMP TO TIME-OUT/FORMAT # WORD JSB LODWD FETCH TIME-OUT & FORMAT # STA TEMP SAVE BOTH PARTS AND =B17 ISOLATE MESSAGE FORMAT NUMBER STA FMT#,I RETURN TO CALLER LDA TEMP RECOVER NRV WORD 2 ALF,ALF ROTATE TIME-OUT FIELD TO LOW HALF AND =B377 MASK SZA,RSS MASTER TIME-OUT OVERRIDE? LDA #MSTO NO, USE GENERAL TIME-OUT STA TIMOT,I RETURN MASTER TIME-OUT INB BUMP TO WORD JSB LODWD FETCH THE COMMUNICATION LINK LU STA TEMP AND =B377 ISOLATE STA COMLU RETURN TO CALLER LDA TEMP SET "NEIGHBOR" INDICATOR, IF NODE IS A NEIGHBOR AND B400 STA NAYBR,I LDA NODE STA NNODX,I RETURN REMOTE NODE # IF NECESSARY ISZ #NRVS TAKE NO-ERROR EXIT SPC 2 EXIT EQU * LDB POS RETURN WITH POSITION # IN (B) * EXIT2 EQU * CLA INITIALIZE DEFAULT- STA FMT# ABLE PARAMETERS STA TIMOT FOR NEXT CALL STA NAYBR STA NNODX LDA COMLU RETURN WITH (LU) IN (A) JSB $LIBX RESTORE MEMORY PROTECT & RETURN TO CALLER DEF #NRVS SPC 2 SPC 2 * LOAD WORD FROM S.A.M., CROSS-LOAD IF DMS SYSTEM LODWD NOP MOD1 JMP X1 (NOP) IF DMS SYSTEM XLA 1,I CROSS-LOAD SAM WORD JMP LODWD,I X1 LDA 1,I NON-DMS. PICK UP SAM WORD JMP LODWD,I RETURN * * SUBROUTINE TO CONFIGURE LOAD/CROSS-LOAD INSTRUCTION * INIT NOP CLB LDA $OPSY RAR,SLA STB MOD1 STB INT JMP INIT,I * * DATA AREA * * EQUATE TEMPORARY STORAGE LOCATIONS TO LOCATIONS IN * THE EXECUTED-ONE-TIME-ONLY CONFIGURATION CODE AREA, * TO SAVE A LITTLE MEMORY. * TEMP EQU INIT TEMPORARY STORAGE POS EQU INIT+1 COMLU EQU INIT+2 * NRVSZ DEC 3 # WORDS PER NRV ENTRY "04" ASC 1,04 M2 DEC -2 D2 DEC 2 B400 OCT 400 END