colors=210
stadd=100
speed=6
cxstart=$26
stgap=$222
stranzahl=5
strgap=30
avis=60
gap=32		;speed
color1=$0fff
color2=$0888
anzahl=10
breite=512
size=40000
cystart=28
ygap=1
xgap=20
ymenge=280
xmenge=10
csize=xmenge*ymenge*8+12
clsize=2*xmenge*ymenge

begin:	lea	$dff000,a5
	move.l	4,a6
	jsr	-132(a6)
	bsr	alloc
	bsr	write
	bsr	makestripes
	bsr	startcopper
	bsr	mausi
	move.l	4,a6
	bsr	killcopper
	bsr	resccopper
	bsr	free
	rts
mausi:	btst	#6,$bfe001
	bne.s	mausi
	rts
alloc:
	move.l	#csize,d0
	moveq	#2,d1
	jsr	-198(a6)
	move.l	d0,cmemory
	move.l	#clsize,d0
	clr.l	d1
	jsr	-198(a6)
	move.l	d0,colmemory
	move.l	#size,d0
	clr.l	d1
	jsr	-198(a6)
	move.l	d0,memory
	rts	
makestripes:
	move.l	memory(pc),a0
	move	#anzahl-1,d0
c3loop:
	move	#breite-1,d1
c1loop:
	move	#color1,(a0)+
	dbra	d1,c1loop
	move	#breite-1,d1
c2loop:
	move	#color2,(a0)+
	dbra	d1,c2loop
	dbra	d0,c3loop
	rts
write:
	move.l	cmemory(pc),a0
	moveq	#cystart,d0
	move	#ymenge-1,d4
cr2loop:
	moveq	#cxstart,d1	
	moveq	#xmenge-1,d3
crloop:
	move	d1,d2
	ori.b	#1,d2
	move.b	d0,(a0)+
	move.b	d2,(a0)+
	move	#$fffe,(a0)+
	move	#$180,(a0)+
	clr	(a0)+
	add.w	#xgap,d1
	dbra	d3,crloop
	addq.w	#ygap,d0
	dbra	d4,cr2loop
	move.l	#$fffffffe,(a0)+
	rts
main:
	move.l	colmemory(pc),a0
	lea	pointer1(pc),a1
	lea	addtable(pc),a2
	clr.l	d4
	move	pointer2(pc),d4
	addq	#speed,d4
	andi.w	#$1ff,d4
	move	d4,pointer2
	bclr	#8,d4
	beq.s	nosub
	move	#$100,d1
	sub	d4,d1
	move	d1,d4
nosub:
	add	#stadd,d4
	moveq	#xmenge-1,d1
start:	clr	d0
	move.b	(a2)+,d0
	bclr	#7,d0
	bne.s	pstripe
	bclr	#6,d0
	bne.s	sub
	bclr	#5,d0
	bne.s	add
back:
	dbra	d1,start
	bra.s	copy
add:
	bsr.s	addr
	bra.s	back
sub:
	bsr.s	subr
	bra.s	back	
sub1:
	bsr.s	subr
	bra.s	sback
add1:
	bsr.s	addr
	bra.s	sback
addr:
	clr.l	d2
	move	(a1),d2
	add	d0,d2
	cmp	#colors-2,d2
	blo.s	noclr
	clr	d2
noclr:
	move	d2,(a1)+
	bra.s	do_it
subr:
	clr.l	d2
	move	(a1),d2
	sub	d0,d2
	bpl.s	nomove
	move	#colors-2,d2
nomove:
	move	d2,(a1)+
do_it:
	lea	colortable(pc),a4
	add.l	d2,a4
	move	#ymenge/2-1,d2
do_loop:
	move.l	(a4)+,(a0)+
	dbra	d2,do_loop
	rts
pstripe:
	move.l	a0,d3
	bclr	#5,d0
	bne.s	add1
	bclr	#6,d0
	bne.s	sub1	
clear:
	move	#ymenge/2-1,d2
clloop:
	clr.l	(a0)+
	dbra	d2,clloop
sback:
	move.l	d3,a0	
	add.l	d4,a0
	moveq	#stmenge/4-1,d2
	lea	stable(pc),a4
csloop:
	move.l	(a4)+,(a0)+
	dbra	d2,csloop
	move.l	d3,a0
	add.l	#ymenge*2,a0
	bra.s	back
copy:
	move.l	colmemory(pc),a0
	move.l	cmemory(pc),a1
	addq.l	#6,a1
	move	#ymenge-1,d0
coloop:
	move	(a0),(a1)
	addq.l	#8,a1
	move	ymenge*2(a0),(a1)
	addq.l	#8,a1
	move	ymenge*4(a0),(a1)
	addq.l	#8,a1
	move	ymenge*6(a0),(a1)
	addq.l	#8,a1
	move	ymenge*8(a0),(a1)
	addq.l	#8,a1
	move	ymenge*10(a0),(a1)
	addq.l	#8,a1
	move	ymenge*12(a0),(a1)
	addq.l	#8,a1
	move	ymenge*14(a0),(a1)
	addq.l	#8,a1
	move	ymenge*16(a0),(a1)
	addq.l	#8,a1
	move	ymenge*18(a0),(a1)
	addq.l	#8,a1
	addq.l	#2,a0
	dbra	d0,coloop
	rts
irq:		movem.l	d0-d7/a0-a6,-(sp)
		move.w	$1e(a5),d0
		btst	#4,d0
		bne.s	itscopper 
		bsr	main
;		move	#$fff,$180(a5)
		movem.l	(sp)+,d0-d7/a0-a6
irqbase:	jmp	0
itscopper:	move.w	#$10,$9c(a5);	INTREQ-Bit loeschen!
		movem.l	(sp)+,d0-d7/a0-a6
		rte
startcopper:
	move.l	$6c,irqbase+2
	move.l	#irq,$6c
	move.w	#%0000000100000000,$096(a5)
	move.l	cmemory,$080(a5)
;	clr	$088(a5)
	rts
killcopper:
	move.l	irqbase+2,$6c
	rts
free:
	move.l	colmemory(pc),a1
	move	#clsize,d0
	jsr	-210(a6)
	move.l	#size,d0
	move.l	memory(pc),a1
	jsr	-210(a6)
	move.l	cmemory(pc),a1
	move	#csize,d0
	jmp	-210(a6)
resccopper:
	lea	grname(pc),a1
	clr.l	d0
	jsr	-552(a6)
	move.l	d0,a1
	move.l	38(a1),$080(a5)
;	clr	$088(a5)
	jsr	-414(a6)
	jsr	-138(a6)
	move	#%1000001100000000,$096(a5)
	rts
grname:	dc.b	"graphics.library",0
even
colortable:
	dc.w	$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a
	dc.w	$00b,$00c,$00d,$00e,$00f
	dc.w	$01f,$02f,$03f,$04f,$05f
	dc.w	$06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
	dc.w	$0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5
	dc.w	$0f4,$0f3,$0f2,$0f1,$0f0,$1f0,$2f0,$3f0,$4f0,$5f0
	dc.w	$6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0,$ff0
	dc.w	$fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50
	dc.w	$f40,$f30,$f20,$f10,$f00,$f01,$f02,$f03,$f04,$f05
	dc.w	$f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
	dc.w	$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
	dc.w	$505,$404,$303,$202,$101,$000
colorend:
	dc.w	$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a
	dc.w	$00b,$00c,$00d,$00e,$00f
	dc.w	$01f,$02f,$03f,$04f,$05f
	dc.w	$06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
	dc.w	$0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5
	dc.w	$0f4,$0f3,$0f2,$0f1,$0f0,$1f0,$2f0,$3f0,$4f0,$5f0
	dc.w	$6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0,$ff0
	dc.w	$fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50
	dc.w	$f40,$f30,$f20,$f10,$f00,$f01,$f02,$f03,$f04,$f05
	dc.w	$f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
	dc.w	$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
	dc.w	$505,$404,$303,$202,$101,$000
	dc.w	$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a
	dc.w	$00b,$00c,$00d,$00e,$00f
	dc.w	$01f,$02f,$03f,$04f,$05f
	dc.w	$06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
	dc.w	$0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5
	dc.w	$0f4,$0f3,$0f2,$0f1,$0f0,$1f0,$2f0,$3f0,$4f0,$5f0
	dc.w	$6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0,$ff0
	dc.w	$fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50
	dc.w	$f40,$f30,$f20,$f10,$f00,$f01,$f02,$f03,$f04,$f05
	dc.w	$f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
	dc.w	$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
	dc.w	$505,$404,$303,$202,$101,$000
	dc.w	$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a
	dc.w	$00b,$00c,$00d,$00e,$00f
	dc.w	$01f,$02f,$03f,$04f,$05f
	dc.w	$06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
	dc.w	$0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5
	dc.w	$0f4,$0f3,$0f2,$0f1,$0f0,$1f0,$2f0,$3f0,$4f0,$5f0
	dc.w	$6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0,$ff0
	dc.w	$fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50
	dc.w	$f40,$f30,$f20,$f10,$f00,$f01,$f02,$f03,$f04,$f05
	dc.w	$f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
	dc.w	$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
	dc.w	$505,$404,$303,$202,$101,$000
colmemory:
	dc.l	0
cmemory:
	dc.l	0
pointer1:
	dcb.w	10,0
pointer2:
	dcb.w	10,0
addtable:
	dc.b	$c4,$a2,$44,$a0,$24,$42,$a0,$22,$a4,$c2
;colors=colorend-colortable
memory:	dc.l	0
stripe:
	dc.w	breite*4
stable:
	dc.w	$000,$111,$222,$444,$555,$666,$777,$888,$888,$999,$999
	dc.w	$aaa,$aaa,$bbb,$bbb,$ccc,$ccc,$ddd,$ddd,$eee,$eee,$eee
	dc.w	$fff,$fff,$fff,$fff,$fff,$eee,$eee,$eee,$ddd,$ddd,$ccc
	dc.w	$ccc,$bbb,$bbb,$aaa,$aaa,$999,$999,$888,$888,$777,$666
	dc.w	$555,$444,$333,$222,$111,$000
stend:
stmenge=stend-stable
