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