integer ids, p(6), CRE, WVB, iosb(2), desc, i, n, j logical*1 name(16), pass(16), buf(100) C external nmlast, intast, vaast C data CRE/"12000/, WVB/"11000/ data name/1hA,1hE,1hT,1hH,1hE,1hR,10*0/ data pass/1hp,1ha,1hs,1hs,1hw,1ho,1hr,1hd,8*0/ C call asnlun(1, 2hVA, 0, ids) if (ids .le. 0) call error('Error assigning lun to VA0:') call getadr(p, name, pass, nmlast, intast, vaast) p(6) = 1 ! access aether if already created call wtqio(CRE, 1, 1,, iosb, p, ids) if (ids .le. 0) call error('Error issuing create qiow.') if (iosb(1) .lt. 0) call error('Error creating aether.') desc = iosb(2) call getadr(p, i, buf) p(1) = desc ! descriptor of aether p(4) = 10000 ! 10000 second time limit on messages i = 1 1 continue read (5, 100, end=2) n, (buf(j), j=1,n) 100 format(q,100a1) p(3) = n 3 continue call wtqio(WVB, 1, 1,, iosb, p, ids) if (ids .le. 0) call error('Error issuing send qiow.') if (iosb(1) .ne. -3) goto 1 type 101, i 101 format(' Retrying line #', i5) call mark(2, 2, 2) ! wait for 2 seconds call stopfr(2) ! ... goto 3 2 continue call exit end C C C subroutine error(buf) C logical*1 buf(1) integer i, n C n = 1 1 continue if (buf(n) .eq. 0) goto 2 n = n + 1 goto 1 2 continue type 100, (buf(i), i=1,n) 100 format(1x,100a1) call exit end C C C subroutine nmlast C type 100 100 format(' Normal AST routine called.') return end C C C subroutine intast C type 100 100 format(' Interrupt AST routine called.') return end