ASMB,L,R,C HED NDTGN 91740-16021 REV 1805 (C) HEWLETT-PACKARD CO. 1978 NAM NDTGN,3 91740-16021 REV 1805 771123 SPC 2 ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY. * ****************************************************************** SPC 2 SPC 2 **************************************************************** * * NDTGN, ROUTINE TO ALLOW THE OPERATOR TO ENTER AND FORMAT * THE NDT IN A FILE * * SOURCE PART # 91805-18021 REV 1805 * * REL PART # 91805-16021 REV 1805 * * WRITTEN BY JEAN-PIERRE BAUDOUIN * * DATE WRITTEN MARCH 1976 * * MODIFIED BY CHW & CCH * * DATE MODIFIED JULY 1976, MARCH 1977 * *************************************************************** * * MODIFIED TO HANDLE DVR07 ** NOV 1977 ** DMT * *************************************************************** SPC 1 NODES EQU 512 MAXIMUM NODES IN NDT TABLE SPC 2 * THIS ROUTINE IS AN INTERACTIVE TABLE GENERATOR. * THE TABLE GENERATED IS THE NETWORK DESCRIPTION * TABLE (NDT). THIS TABLE IS STORED IN A FILE BY * THE GENERATOR AND IT WILL BE USED AT SYSON TIME * BY LSTEN. THE NAME OF THE TABLE IS SPECIFIED BY * THE OPERATOR (AS THE ANSWER TO THE FIRST QUESTION) * THIS NAME MUST BE REMEMBERED SINCE IT WILL BE * ASKED FOR BY LSTEN. * THE FORMAT OF THE NDT IS: * * RECORD #1: * W0 : NEGATIVE NUMBER OF NODES IN THE NETWORK * W1 : NODE NUMBER OF THE FIRST NODE * : * : * WN : NODE NUMBER OF NODE N * * RECORD #N (WHERE 1 1275? JMP INERX YES, ERROR LDA PARSB+5 NO, GET TIMEOUT AGAIN CLB DIV B5 CONVERT TO 5 SEC INTERVALS ADB N3 SSB,RSS REMAINDER > 2? INA YES, ROUND UP CMA,INA MAKE NEGATIVE SSA,RSS USE 5 SECONDS CCA IF TOO LOW. ADA D256 RAL,ALF RAL TIMEOUT IN BITS 13-6 IOR PARSB+1 INCLUDE LU LDB 0 STOLU LDA PNTR2,I GET THIS NODE # DST PNTR3,I SAVE NODE/TIMEOUT/LU WORD PAIR ISZ CNTR3 BUMP ADDRESSABLE NODES COUNT ISZ PNTR3 ISZ PNTR3 * NXTLU ISZ PNTR2 ISZ CNTR2 END OF THIS VECTOR ? JMP LOOP3 NO, CONTINUE * LDA CNTR3 YES, GET ADDRESSABLE NODES COUNT CMA,INA NEGATE ALS DOUBLE IT STA BUF2 STORE IN 1ST WORD OF NRV RECORD * JSB WRITF WRITE THIS RECORD DEF *+5 DEF IDCB DEF IERR DEF BUF2 DEF NRLEN ISZ PNTR1 ISZ CNTR1 END OF TABLE ? JMP LOOP2 NO, GET ANOTHER VECTOR JSB CLOSE YES, CLOSE THE FILE DEF *+3 DEF IDCB DEF IERR * JSB CHCKN WAS THERE A FILE RSS YES JMP MSOK NO JSB CLOSE CLOSE FILE DEF *+3 DEF INDCB DEF TEMP1 CLA STA FILFG ISZ ERFLG TERM MESSAGE TO ERROR LU MSOK JSB PRINT PRINT " END NDTGN" DEF OKMSG DEC 5 JMP EXIT SPC 3 * ABORT JSB PURGE PURGE NDT FILE DEF *+4 DEF IDCB DEF IERR DEF NAME HED NDTGN: SUBROUTINES SECTION (C) HEWLETT-PACKARD CO, 1977 * HERE TO TERMINATE * TERM JSB CHCKN WAS THERE A FILE RSS YES...FILE JMP TERM1 NO...DON'T CLOSE IT JSB CLOSE DEF *+3 DEF INDCB DEF TEMP1 CLA STA FILFG ISZ ERFLG ENSURE ABORT MSG GOES TO ERRLU TERM1 JSB PRINT DISPLAY ABORT MESSAGE DEF TERMM DEC 7 EXIT JSB EXEC DEF *+2 DEF D6 SKP * SUBROUTINE TO PRINT MESSAGES * IF WE ARE IN AN INTRACTIVE TERMINAL * CALLING SEQUENCE * JSB PRINT * DEF MESSAGE * DEC MESSAGE LENGTH * PRINT NOP LDB PRINT,I GET ADDRESS OF BUFFER TO BE PRINTED STB PRNT1 ISZ PRINT GET TO LENGTH WORD JSB CHCKN FILE OR LU ? JMP PRNTA FILE, FORGET IT LDA TTYF GET TTY FLAG LDB ERFLG GET ERROR FLAG SZB,RSS ERROR OR SZA,RSS OR INTERACTIVE RSS YES...PRINT MESSAGE JMP PRNTA NO ERROR AND NOT INTERACTIVE LDA RLU GET INTERACTIVE LU SZB ERROR? LDA ERLU YES...ERROR LU STA PRTLU SAVE AS PRINT LU JSB REIO PRINT MESSAGE DEF *+5 DEF B2 DEF PRTLU PRINT LU PRNT1 NOP DEF PRINT,I LENGTH PRNTA ISZ PRINT GET TO RETURN ADDRESS JMP PRINT,I RETURN SPC 1 B2 OCT 2 PRTLU NOP SPC 2 * * ROUTINE TO DECIDE WHICH TYPE OF INPUT DEVICE * EITHER FILE OR LU * IF LU, A REG WILL CONTAIN LU TYPE * CALLING SEQUENCE * JSB CHCKN * FILE RETURN * LU RETURN * CHCKN NOP LDB FILFG GET FILE FLAG LDA TTYF GET TTY FLAG SZB,RSS LU OR FILE ISZ CHCKN LU JMP CHCKN,I AND RETURN SKP * SUBROUTINE TO CHECK DRIVER TYPE * CALLING SEQUENCE: JSB TTY? * DEF * UPON RETURN, A-REG=LU NUMBER, B-REG=0 IF INTERACTIVE * TTY? NOP LDA TTY?,I STORE ADDRESS OF STA CHKLU LU IN EXEC CALL. ISZ TTY? SET RETURN ADDRESS. * JSB EXEC MAKE STATUS CALL. DEF *+6 DEF D13 CHKLU DEF *-* DEF TEMP1 DEF TEMP DEF SBCNL * LDA TEMP1 GET EQT WORD 5. ALF,ALF ISOLATE AND B77 DRIVER TYPE. LDB A CPA B5 IF DVR05 JMP SBCH? OR CPA B7 DVR07. JMP SBCH? CHECK SUBCHANNEL. JMP LSN1A SBCH? LDA SBCNL ISOLATE AND SUBMK SUBCHANNEL. SZA,RSS IF ZERO, CLB IT'S INTERACTIVE. LSN1A LDA CHKLU,I A-REG := LU NUMBER. JMP TTY?,I RETURN. SKP * * SUBROUTINE TO READ FROM A SELECTED INPUT DEVICE * WILL PARSE THE INPUT AND PLACE RESULT IN A BUFFER * CALLED PARSB. * CALLING SEQUENCE * JSB READ * UPON RETURN A REG=PARB, B REG=PASB+1 * READ NOP JSB CHCKN FILE OR LU JMP READB FILE READA LDA RLU GET READ LU LDB ERFLG IS THIS AN ERROR READ? SZB LDA ERLU YES...READ FOR ERRORDEVICE STA REDLU SAVE READ LU JSB REIO ISSUE THE READ DEF *+5 DEF B1 DEF REDLU DEF INBUF DEF INBFS SZB EOF HIT? JMP READC NO JSB ERROR DEF EOFM "EOF...INPUT NEEDED" DEC 9 JMP READA TRY AGAIN SPC 1 READB JSB READF READ FROM A FILE DEF *+6 DEF INDCB DEF RSTAT DEF INBUF DEF INBFS DEF ILEN LDB ILEN GET LENGTH SSB,RSS SZB,RSS ZERO OR - ERROR JMP TERM ABORT READC CLE,ELB CONVERT TO BYTE LENGTH STB ILEN SAVE LENGTH JSB PARSE GO PARSE INPUT DEF *+4 DEF INBUF DEF ILEN DEF PARSB CLA CLEAR OUT ERROR FLAG STA ERFLG DLD PARSB LOAD A AND B REG JMP READ,I AND RETURN SPC 2 REDLU NOP ILEN NOP RSTAT NOP SKP * * ROUTINE TO PRINT ERROR MESSAGE IF WORKING FROM * AN LU, OTHERWISE ABORT PROGRAM * CALLING SEQUENCE * JSB ERROR * DEF ERMESAGE * DEC LENGTH OF MESSAGE * WILL SET ERROR FLAG FOR RETRY * ERROR NOP JSB CHCKN CHECK IF FILE JMP TERM FILE...ABORT LDA ERROR,I GET MESSAGE ADDRESS STA ERR1 SAVE ADDRESS ISZ ERROR GET TO LENGTH JSB EXEC DEF *+5 DEF B2 DEF ERLU ERR1 NOP DEF ERROR,I ISZ ERROR ISZ ERFLG SET ERROR FLAG JMP ERROR,I AND RETURN SPC 2 ERFLG NOP SKP * SUBROUTINE TO PRINT SYSTEM ERROR MESSAGES AND * ABORT * CALLING SEQUENCE * JSB SYSER * DEF ERR MESSAGE * DEC LENGTH * SYSER NOP LDA SYSER,I GET MESSAGE ADDRESS STA SYSR1 ISZ SYSER JSB EXEC DEF *+5 DEF B2 DEF B1 SYSR1 NOP DEF SYSER,I JMP TERM AFTER MESSAGE...ABORT SKP HED NDTGN: CONSTANTS * (C) HEWLETT-PACKARD CO. 1977 DRT EQU 1652B NAME? OCT 6412 ASC 12, FILE NAME FOR NDT ? _ INV#M ASC 7, INVALID CPU # CPU#? ASC 6, CPU # ? _ CPUTL OCT 6412 ASC 11,CPU-NUMBER INPUT PHASE FERM ASC 5,FILE ERROR RTM OCT 6412 ASC 13,ROUTE VECTORS INPUT PHASE CPUM ASC 3, CPU # CPU# BSS 3 ASC 3, ? _ BLNKS EQU CPU#+4 DUP# ASC 8, DUPLICATE CPU # VECTM OCT 6412 ASC 23,ENTER COMMUNICATIONS LU'S AND TIMEOUTS FOR CPU VECT# BSS 3 TRFM ASC 7, TR FILE ERROR INERR ASC 6, INPUT ERROR EOFM ASC 9,EOF..INPUT MORE TITLE OCT 6412 ASC 22,GENERAL-NETWORK-DESCRIPTION-TABLE GENERATOR TERMM ASC 7, NDTGN ABORTED MAX# ASC 13, MAX # OF NODES ALLOWABLE OKMSG ASC 5, END NDTGN /E ASC 1,/E /A ASC 1,/A KMAX ABS NODES CNTR1 NOP CNTR2 NOP CNTR3 NOP PNTR1 NOP PNTR2 NOP PNTR3 NOP BUF1A DEF BUF1+1 BUF2A DEF BUF2+1 ISIZE NOP NOP ITYPE DEC 9 IERR NOP ISEC NOP ICR NOP NAME REP 3 NOP IL NOP NRLEN NOP FILFG NOP BUFS EQU 20 INBFS ABS BUFS INBUF BSS BUFS RLU NOP SBCNL NOP TEMP NOP TEMP1 NOP TTYF NOP ERLU NOP D0 DEC 0 D2 DEC 2 D6 DEC 6 D13 DEC 13 D256 DEC 256 N1 DEC -1 N3 DEC -3 N6 DEC -6 N1276 DEC -1276 BM100 OCT -100 B1 OCT 1 B5 OCT 5 B7 OCT 7 B77 OCT 77 B400 OCT 400 SUBMK OCT 37 * PARSB BSS 34 IDCB BSS 144 INDCB BSS 144 BUF1 BSS NODES+1 BUF2 BSS NODES+NODES+1 SPC 3 END NDTGN