DOS 2.0 Utilities Disk 5 (Feb 1992) : FracBlank / Plot.asm

* $Revision Header * Header built automatically - do not edit! *************
*
*	(C) Copyright 1990 by Olaf Barthel & MXM
*
*	Name .....: Plot.asm
*	Created ..: Friday 18-Jun-91 15:28
*	Revision .: 2
*
*	Date            Author          Comment
*	=========       ========        ====================
*	16-Aug-91	Olsen		Added multiplane plot
*	18-Jun-91	Olsen		Created this file!
*
* $Revision Header *********************************************************

	csect	text,0,0,1,2

	include	"intuition/intuition.i"
	include	"graphics/rastport.i"
	include	"graphics/gfx.i"

	xdef	_MultiPlot

_MultiPlot:
	cmp.w	sc_Width(a0),d0
	bcc	quit

	cmp.w	sc_Height(a0),d1
	bcc	quit

	movem.l	d3/d4,-(sp)

	move.l	sc_RastPort+rp_BitMap(a0),a0
	moveq	#0,d4
	move.w	bm_BytesPerRow(a0),d4
	move.b	bm_Depth(a0),d3
	lea.l	bm_Planes(a0),a0

	mulu	d4,d1
	move.l	d0,d4
	lsr	#3,d0
	add	d0,d1
	not	d4
	subq	#1,d3

loop	move.l	(a0)+,a1
	lsr.b	#1,d2
	bcc	clear
	bset	d4,0(a1,d1)
	dbra	d3,loop

exit	movem.l	(sp)+,d3/d4
quit	rts

clear	bclr	d4,0(a1,d1)
	dbra	d3,loop
	bra	exit

	xdef	_MonoPlot

_MonoPlot:
	cmp.w	d3,d0
	bcc	1$
	cmp.w	d4,d1
	bcc	1$
	mulu	d2,d1
	move	d0,d2
	lsr	#3,d0
	add	d0,d1
	not	d2
	bset	d2,0(a0,d1)
1$	rts

	end