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

*	Write an integer to a text file.  Actually this routine, as
*	written, can only be properly applied to Short values.

	SECTION	one

	XREF	outbuffer
	XREF	_p%DOSBase
	XREF	_LVOWrite
	XREF	_p%padout

	XDEF	_p%writeint
_p%writeint:

	move.l	#outbuffer+31,a0
	tst.l	d0
	bge.s	1$
	move.w	#-1,-(sp)
	neg.l	d0
	bra.s	2$
1$	move.w	#1,-(sp)
2$	divu	#10,d0
	move.l	d0,d1
	ext.l	d0
	swap	d1
	add.b	#'0',d1
	move.b	d1,(a0)
	subq.l	#1,a0
	tst.l	d0
	bgt	2$
	move.w	(sp)+,d0
	bgt.s	3$
	move.b	#'-',(a0)
	subq.l	#1,a0
3$	move.l	a0,d3
	sub.l	#outbuffer+31,d3
	neg.l	d3
	move.l	6(sp),d1
	move.w	4(sp),d0
	ext.l	d0
	sub.l	d3,d0
	ble	4$
	jsr	_p%padout
4$	move.l	a0,d2
	addq.l	#1,d2
	move.l	_p%DOSBase,a6
	jsr	_LVOWrite(a6)
	rts

	END

