ASMB,R,Q,C HED <#RRX> REROUTING INIT. ROUTINE * (C) HEWLETT-PACKARD CO. 1979* NAM #RRX,7 91750-1X029 REV 2013 800328 ALL W/ RR SPC 1 EXT $OPSY,$LIBR,$LIBX EXT .LDX,.MVW,PGMAD EXT #PRNT,#READ,#SYSR,#PRSB,#RR4 EXT #LV,#LCNT,#CM,#NODE ENT #RR1,#RR2,#RR3 * * NAME: #RRX * SOURCE: 91750-18029 * RELOC: 91750-1X029 * PGMR: DOUG W. TSUI JULY 1979 ** * ****************************************************************** * * (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. * ****************************************************************** * * * * SKP * * #RR1 CALLING SEQUENCE: * * < B REG. = #NCNT > * JSB #RR1 * < A REG. = SAM SIZE FOR REROUTING > * #RR1 NOP CMB,INB MAKE #NCNT POSITIVE STB NCNT SAVE IT JSB #PRNT ASK FOR # OF LINKS DEF LINK? JSB #READ CPA =B1 NUMERIC RESPONSE? RSS JMP ERROR .NO, ERROR SSB POSITIVE? JMP ERROR .NO, ERROR STB LCNT STORE ANSWER AS LINK COUNT SZB,RSS RR ENABLE? JMP NORR .NO JSB PGMAD .YES, CHECK IF #SEND IS AROUND DEF *+2 DEF #SEND SZA,RSS MISSING ID SEGMENT? JMP ERR1 .YES NORR EQU * LDA NCNT MPY LCNT ALS MULT BY TWO FOR 2 WORD CM ENTRIES STA CMLEN STORE THIS AS SAM SIZE FOR CM LDA LCNT MPY LVSZ SAM SIZE FOR LV ADA CMLEN TOTAL SAM SIZE FOR RR IN REG. A JMP #RR1,I RETURN * ERROR JSB #SYSR WRITE ERROR MESG TO USER DEF LKERR ERR1 JSB #SYSR DEF SDERR SKP * * #RR2 CALLING SEQUENCE: * * < A REG. = NODE #, B REG. = LU PARSE TYPE > * JSB #RR2 SETS INITIAL VALUES IN COST MATRIX * #RR2 NOP DST NODE NOP2 JSB INIT2 INIT #CM,#LCNT LDA LCNT SZA,RSS JMP #RR2,I DLD NODE CPA #NODE LOCAL NODE? JMP ZERO .YES, ZERO OUT CM ENTRIES CPB =D1 LU GIVEN? JMP ZERO .YES, ZERO OUT CM ALSO DLD MAX RR NODES, SET CM ENTRIES TO INFINITE DST CMVAL JMP SETCM ZERO CLA NON-RR NODES, CM ENTRIES = 0 STA CMVAL STA CMVAL+1 * * SET CM ROW TO MAX VALUE OR ZERO * SETCM LDA LCNT GET # OF LINKS CMA,INA STA J LOOP LDA @CMVA LDB @CM JSB STWS ISZ @CM ISZ @CM ISZ J JMP LOOP JMP #RR2,I * * CONFIGURE THE SYSTEM ENVIRONMENT & INIT. GLOBAL VARIABLES * INIT2 NOP CLB STB NOP2 CLEAR CALL TO THIS ROUTINE STB #LCNT LDA $OPSY GET SYS TYPE RAR,SLA DMS? STB SSMOD .YES, MOD INST * LDA LCNT MPY LVSZ ADA #LV STA #CM CM STARTS AFTER LV STA @CM JMP INIT2,I SKP * * #RR3 CALLING SEQUENCE: * * * #PRSB = PARSED BUFFER * JSB #RR3 SETS LU AND COST IN LINK VECTOR * #RR3 NOP NOP3 JSB INIT3 LDA LCNT GET # OF RR LINKS REQUESTED BY USER CPA #LCNT HAVE WE USED IT ALL UP? JMP #RR3,I .YES, JUST RETURN LDA #PRSB+1 GET LU FROM USER BUFFER STA L.LU SAVE IT JSB #RR4 CHECK OLD LINK LDA #PRSB+4 GET COST TYPE SZA,RSS DEFAULT COST? JMP DEFAU .YES LDA #PRSB+5 .NO, PICK UP USER SPECIFIED LINK COST SZA,RSS ZERO COST? JMP ERR3 .YES, ERROR SSA < ZERO? JMP ERR3 .YES, ERROR RSS DEFAU INA DEFAULT COST = 1 STA L.CST SAVE COST ADA =D-100 SSA,RSS JMP ERR3 * LDA @LVAL LDB @LV JSB STWS LDA @LV ADA LVSZ UP LINK POINTER STA @LV ISZ #LCNT UP # OF RR LINKS NOP JMP #RR3,I * ERR3 EQU * JSB #SYSR DEF CTERR INIT3 NOP CLA STA NOP3 CLEAR CALL TO THIS ROUTINE STA L.TM STA L.TM+1 STA L.CNT CCA STA L.NBR LDA #LV STA @LV LDA LVSZ STA SSLEN SET LDWS TO MOVE LVSZ WORDS JMP INIT3,I SKP SKP *** * * STWS MOVES WORDS FROM LOCAL BUFFER TO SAM BUFFER * * CALLING SEQUENCE: * * ==> LOCAL BUFFER * ==> SAM BUFFER * STWS NOP JSB $LIBR NOP SSMOD JMP SSMVW JSB .LDX DEF SSLEN MWI JMP SSJSB SSMVW JSB .MVW DEF SSLEN NOP SSJSB JSB $LIBX DEF STWS * SSLEN DEC 2 2 WORD MOVE * *** SKP * * DATA AREA * MAX OCT 77777 THIS 2 WORDS MUST NCNT NOP BE TOGETHER LCNT NOP NOP * CMVAL BSS 2 @CMVA DEF CMVAL @CM NOP CMLEN NOP * D6 DEC 6 D9 DEC 9 D11 DEC 11 D21 DEC 21 * LINK? DEF *+2 DEF D11 ASC 11,# OF REROUTING LINKS?_ LKERR DEF *+2 DEF D9 ASC 9,LINK SPEC. ERROR! SDERR DEF *+2 DEF D21 ASC 21,REROUTING IS ENABLED BUT #SEND IS MISSING CTERR DEF *+2 DEF D6 ASC 6,COST ERROR! * NODE BSS 2 J NOP #SEND ASC 3,#SEND * @LV NOP LVSZ DEC 6 LVAL BSS 6 L.LU EQU LVAL L.CST EQU LVAL+1 L.TM EQU LVAL+2 L.CNT EQU LVAL+4 L.NBR EQU LVAL+5 @LVAL DEF LVAL END