PROGRAM SBT C C This program will pass a file list and a switch list over to C a remote node for servicing. It is used here for print spooling C to VMS nodes. C CHARACTER*80 swtbuf ! Buffer for switch ! values. CHARACTER*80 cmdbuf, + node, + copies, + queue, + delete, + form CHARACTER*80 fillst C LOGICAL msg, pmpt C INTEGER*2 lencmd INTEGER*2 ier INTEGER*2 lennod, lencop, lenque, lendel, lenfrm INTEGER*2 lenbuf INTEGER*2 fillen INTEGER*2 status(2) INTEGER*2 luntrm, lunnt1, lunnt2 C DATA luntrm/3/, lunnt1/1/, lunnt2/2/ DATA msg/.TRUE./ ! Issue error messages. C C Executable begins here. C OPEN ( UNIT = luntrm, ! Open terminal. + NAME = 'TI:', ! + STATUS = 'unknown' ) ! 10 CONTINUE ! Prompt again? CALL PROMPT ( luntrm, cmdbuf, lencmd, pmpt, ! Get command. + ier ) ! IF ( ier .LT. 0 ) THEN ! Error getting data. ier = 1 ! Ignore error on exit. ELSE ! Got data. CALL GETSWT ( luntrm, cmdbuf, lencmd, ! Get all switches. + node, lennod, ! + copies, lencop, ! + queue, lenque, ! + delete, lendel, ! + form, lenfrm, ! + ier ) ! D TYPE 11, node(1:lennod) D11 FORMAT ( ' NODE: ',A ) IF ( ier .LE. 0 ) GOTO 8000 CALL GETLST ( cmdbuf, lencmd, fillst, ! Get the file list from + fillen, ier ) ! command buffer. IF ( fillen .GT. 0 ) THEN ! Have a list.... CALL SPWNFT ( luntrm, fillst, fillen, ! Spawn NFT command to + node, lennod, ier ) ! MCR. IF ( ier .GT. 0 ) THEN ! Worked. CALL CHGLST ( fillst, fillen, ier ) ! Remove device and ! UIC or DIR specs. IF ( ier .LT. 0 ) THEN ! Error. WRITE ( luntrm, 35 ) ! Issue message. 35 FORMAT ( ' %SBT-F, Illegal ', ! Message. + 'file list format.' ) ! ELSE ! Have a good file list. D TYPE *, 'FILLEN: ',fillen CALL BLNKFL ( fillst, fillen, ! Fill rest with blanks. + 80 ) ! D TYPE *, 'FILLEN: ',fillen D TYPE 321, fillst(1:fillen) D321 FORMAT ( ' FILLST: ',A ) CALL SETBUF ( copies, lencop, ! Set up second buffer + queue, lenque, ! for transfer. This + form, lenfrm, ! contains switch vals. + swtbuf, lenbuf ) ! CALL BLNKFL ( swtbuf, lenbuf, ! Fill rest with blanks. + 80 ) ! CALL NETTLK ( luntrm, lunnt1, ! Initiate DECnet and + lunnt2, fillst, ! send over the two + swtbuf, node(1:6),! buffers. + lennod, msg, ier, ! + status ) ! IF ( ier .LT. 0 ) THEN ! Error. WRITE ( luntrm, 40 ) ! Issue message. + node(1:lennod) ! 40 FORMAT ( ' %SBT-F, Could ', ! + 'not communicate ',! + 'with node ', ! + A,'.' ) ! END IF ! END IF ! ELSE ! NFT copy failed. WRITE ( luntrm, 45 ) node(1:lennod) ! 45 FORMAT ( ' %SBT-F, Could not copy ',! + 'files to remote node ', ! + A,'.' ) ! END IF ! ELSE ! No file list specified. WRITE ( luntrm, 50 ) ! 50 FORMAT ( ' %SBT-F, No files specified.' )! Error message. END IF ! IF ( pmpt ) THEN ! Prompted for input. GO TO 10 ! Prompt again. ELSE IF ( ier .LT. 0 ) THEN ! ier = 4 ! Fatal errors. ELSE ! ier = 1 ! Success. END IF ! END IF ! End prompt test. 8000 CONTINUE CALL EXST ( ier ) ! Exit with status. END