
	.globl block_it

	.text
| **** Macht den "Nadeldreher": Aufruf: (needle-warp?)
| **** block_it( *dest(4), *src(8), bweite(12), offset(14), bytes_per_spalte(18) )
block_it:
	moveml	a0-a2/d0-d6,a7@-	| ungetestet!
	movew	a7@(58),d2
	subqw	#1,d2
	movel	a7@(54),d1
	movew	a7@(52),d0
	subqw	#1,d0
	moveal	a7@(48),a1
	moveal	a7@(44),a0

loop1:	| i-loop
	moveq	#7,d3
loop2:	| j-loop
	movew	d2,d4	| Wie viele Bytes?
	moveal	a1,a2
loop3:	| k-loop
	moveq	#0,d6
	btst	d3,a2@
	beq	ns0
	bset	#7,d6
ns0:	addal	d1,a2
	btst	d3,a2@
	beq	ns1
	bset	#6,d6
ns1:	addal	d1,a2
	btst	d3,a2@
	beq	ns2
	bset	#5,d6
ns2:	addal	d1,a2
	btst	d3,a2@
	beq	ns3
	bset	#4,d6
ns3:	addal	d1,a2
	btst	d3,a2@
	beq	ns4
	bset	#3,d6
ns4:	addal	d1,a2
	btst	d3,a2@
	beq	ns5
	bset	#2,d6
ns5:	addal	d1,a2
	btst	d3,a2@
	beq	ns6
	bset	#1,d6
ns6:	addal	d1,a2
	btst	d3,a2@
	beq	ns7
	bset	#0,d6
ns7:	addal	d1,a2
	moveb	d6,a0@+
	dbf	d4,loop3

	dbf	d3,loop2

	addql	#1,a1
	dbf	d0,loop1
	moveml	a7@+,a0-a2/d0-d6
	rts
