
*	ReadString.asm (of PCQ Pascal runtime library)
*	Copyright (c) 1989 Patrick Quaid

*	This reads a string from a text file.

	SECTION	ONE

	XREF	_p%readonechar
	XREF	_p%getthatchar
	XREF	_p%readarbbuf
	XREF	stdinbuffed

	XDEF	_p%readstring
_p%readstring
	move.l	(a0),a1
	move.l	4(sp),a0
	move.l	#0,d1
	move.l	a0,d0
	bne.s	readstringfile
1$	move.l	a1,-(sp)
	jsr	_p%readonechar
	bsr	_p%getthatchar
	move.l	(sp)+,a1
	move.b	d0,0(a1,d1.l)
	addq.l	#1,d1
	cmp.b	#10,d0
	bne	1$
	move.b	#0,-1(a1,d1.l)
	move.b	#-1,stdinbuffed
	rts
readstringfile
1$	tst.b	12(a0)
	bne.s	3$
	move.b	4(a0),d0
	move.b	d0,0(a1,d1.l)
	addq.l	#1,d1
	cmp.b	#10,d0
	beq.s	2$
	movem.l	d0-d1/a1,-(sp)
	jsr	_p%readarbbuf
	movem.l	(sp)+,d0-d1/a1
	bra.s	1$
2$	move.b	#0,-1(a1,d1.l)
	rts
3$	move.b	#0,0(a1,d1.l)
	rts

	END
