program putxaddr use str_find_mod implicit none character:: mnem*12, ustr*20,unitstr*10, invoke*200,string*40 integer:: i,j,k,e,ad,addr(2),vnamptr,ptr,dats(4),namtab(128) integer:: lun,be(40),en(40),ints(40),typs(40) integer:: istat,mnet_disconnectf,mnet_connectf,ierr real:: vals(20) logical:: err mnem='TST INTF CUR' call cesr_getarg(0,invoke) !0 => whole line, get prog invocation istat=mnet_connectf('RTEMS_178') !connect to shopMPM/Xbus access if(istat.ne.1) then print *,' Failed to connect to mpm hardware ' ; stop endif do e=1,2 call vmgxbw(mnem,e,e,addr(e)) print 1616,e,addr(e) ; 1616 format(i4,8z9) enddo ptr=vnamptr(mnem) !get pointer to name table call mpmgetv(ptr,namtab,128) print 1600,namtab(60:63) ; 1600 format(10z9) do i=32,63 !clear cmd masks etc for 1st 2 chans ad=namtab(i)+4 if(ad.gt.4) then call mpmputn(ad,[0,0],err) if(i.eq.45) call mpmputn(ad,[0,0,-32000,-32000],4,err) !low lim if(i.eq.46) call mpmputn(ad,[0,0, 32000, 32000],4,err) !high lim if(i.eq.48) call mpmputn(ad,[1,1,1,1],4,err) !xbus stat if(i.eq.56) call mpmputn(ad,['0'x,'0'x,'208810'x,'208810'x],4,err) !read mode call mpmgetv(ad,dats,4) print 1616, i,ad,dats endif enddo do e=1,2 call vmgxbw(mnem,e,e,addr(e)) print 1616,e,addr(e) enddo istat=mnet_disconnectf() stop end program putxaddr