geir:
clrbuf:		blk.b	20,0
bufsel:		dc.l	$0
screen:		dc.l	$60000
xvinkel:	dc.w	0
yvinkel:	dc.w	0
zvinkel:	dc.w	0
figur:	dc.w	0
vector:	movem.l 	CLRBUF,d0-d7/a0-a6	

	eor.w	#$0001,BUFSEL
	beq.s	BUF2
	move.l	#$60000,SCREEN
	move.w	#$05000,PLANER+6
	bra.s	BUFFER

BUF2:	move.l	#$65000,SCREEN
	move.w	#$00000,PLANER+6

BUFFER: jsr	geir
	bsr	SUBLINIE
 
	addq.w	#$0002,Yvinkel
	cmp.w	#000360,Yvinkel
	ble.s	OK
	move.w	#$00000,Yvinkel

OK:	addq.w	#$0002,Xvinkel
	cmp.w	#000360,Xvinkel
	ble.s	OK1
	move.w	#$00000,Xvinkel

OK1:	addq.w	#$0003,Zvinkel
	cmp.w	#000360,Zvinkel
	ble.s	OK2
	move.w	#$00000,Zvinkel
OK2:
	rts

COP:	dc.w	$008e,$2c81,$0090,$40ff
	dc.w 	$0092,$0038,$0094,$00d0
	dc.w 	$0102,$0000
MODULO:	dc.w 	$0108,$0000
	dc.w	$0180,$0000,$0100,$0200
	dc.w	$0182,$0f0f,$0184,$0aaa
	dc.w	$0186,$0cc
PLANER:	dc.w	$00e0,$0006,$00e2,$0000
	dc.w	$3011,$fffe,$0100,$1200
	dc.w	$ffe1,$fffe
	dc.w	$2f11,$fffe
	dc.w	$0100,$0200
	dc.w	$ffff,$fffe


SUBLINIE:
	lea	FIGUR,a4
NEWLIN:	move.w	(a4)+,a0
	move.w	(a4)+,a0
	move.w	(a4)+,a0

	bsr	geir
	bsr	geir
 
	move.w	d0,XLIN1
	move.w	d1,YLIN1
	move.w	(a4)+,a0
	move.w	(a4)+,a0
	move.w	(a4)+,a0

	bsr	geir
	bsr	geir

	move.w	d0,XLIN2
	move.w	d1,YLIN2
	movem.l	CLRBUF,d0-d3
	move.w	XLIN1,d0

	move.w	YLIN1,d1
	move.w	XLIN2,d2
	move.w	YLIN2,d3

	cmp.w	d0,d2
	bne.s	LINOK
	cmp.w	d1,d3
	bne.s	LINOK
	bra.s	NOLIN

LINOK:	bsr	LINIE
NOLIN:	cmp.w	#$8000,(a4)
	beq.s	FIGDRAW
	bra.l	NEWLIN

FIGDRAW:rts

XLIN1:	dc.w	$0000
YLIN1:	dc.w	$0000
XLIN2:	dc.w	$0000
YLIN2:	dc.w	$0000
	
;	***************************
;	*** Selve linje rutinen	***
;	***************************

LINIE:	clr.l	d4
	sub.w	d1,d3
	bge.s	DYPOS
	neg.w	d3
	bra.s	DYNEG
DYPOS:	bset	#0,d4

DYNEG:	sub.w	d0,d2
	bge.s	DXPOS
	neg.w   d2
	bra.s	DXNEG
DXPOS:	bset	#1,d4

DXNEG:	move.w	d2,d5
	sub.w	d3,d5
	bge.s	DXDYPOS
	exg	d2,d3
	bra.s	DXDYNEG
DXDYPOS:bset	#2,d4

DXDYNEG:clr.w	d5
	ror.w	#4,d0
	or.w	#$0b00,d0
	move.b	d0,d5
	move.b	#$ca,d0
	lsl.w	#1,d5
	muls	#$10,d1
	add.w	d5,d1
	add.l	SCREEN,d1
