c  program to read a binary magtape into a disk file
	parameter io$_readlblk = '21'x   !read logical block for qio
	parameter eof='879'x
	parameter bufsize = 4096
	integer*2 channel,iosb(4)
	integer*4 sys$assign,sys$qiow
	character buffer(bufsize)
	character*40 ofile
c
	call sys$assign('MTA0:',channel,,)
c
	write(6,*) 'Enter output file name'
	read(5,1000) ofile
1000	format(a)
	open(unit=1,name=ofile,type='new',form='unformatted',
	1 recordsize=4096)  ! max record=4096
c
10	iret=sys$qiow(,%val(channel),%val(io$_readlblk),iosb,,,
	1   %ref(buffer),%val(bufsize),,,,)
	if(iret.ne.1) then
		write(6,*) 'read qiow error',iret
		go to 10
		endif
	if(iosb(1).eq.eof.or.iosb(2).eq.0) then
		close(unit=1)
		write(6,*) nrecs,' records read'
		call exit
		endif
	write(1) (buffer(i),i=1,iosb(2))
	if(mod(nrecs,25).eq.0) write(6,*) nrecs,' recs, size ',iosb(2)
	nrecs=nrecs+1
	go to 10
	end
