dynamicroutinespec  rstrg(stringname  s)
systemroutinespec  move(integer  len,from,to)
externalintegerfnspec  nwfilead(string (15) s,integer  pgs)
! DATED 03 MAR 80
!
constinteger  invi=x'80308030'
systemintegermapspec  comreg(integer  i)
dynamicintegerfnspec  dpermission(string (6) owner,user,  c 
   string (8) date,string (15) file, integer  fsys,type,adrprm)
dynamicintegerfnspec  dsfi(string (6) user,  c 
      integer  fsys,type,set,adr)
!
dynamicstringfnspec  derrs(integer  i)
dynamicintegerfnspec  dfinfo(string (6) user, string (15) file, c 
   integer  fsys,adr)
!
systemroutinespec  phex(integer  i)
systemroutinespec  etoi(integer  ad,len)
dynamicintegerfnspec  exist(string (63) file)
systemroutinespec  ncode(integer  s,f,ff)
systemroutinespec  disconnect(string (31) s,integername  f)
dynamicroutinespec  prompt(string (15) s)
externalroutinespec  rdint(integername  i)
externalroutine  copyvm(string (255) s)
integer  lim
integer  start,finish,as at,j,segad
      lim=32
      prompt("Addr or segno: ")
      rdint(start)
      if   0< start < 1<<18 start 
         prompt("Relstart: ")
         rdint(j)
         start=start<<18 + j
         finish 
      segad=start&x'FFFC0000'
      prompt("Addr or relend:")
      rdint(finish)
      if  0< finish < 2<<18 then  finish=segad + finish
      as at=0
      j=nwfilead("T#OUT",(finish-start+x'20'+x'FFF')>>12)
      return  if  j=0
      printstring("...to file T#OUT, data length = X'")
      phex(finish-start)
      printstring("' bytes")
      newline
      move(finish-start,start,j+x'20')
      end ; ! LISTVM
endoffile