
;                  copper list example
;

bwobflag:	dc.w	0
execbase:	equ	4
dmacon:		equ	$dff096
oldopenlibary:	equ	-408


main:	move.l	execbase,a6
	lea	gfxname,a1
	move.l	#0,d0
	jsr	oldopenlibary(a6)
	tst	d0
	beq	error_no_libary
	move.l	d0,gfxbase
	move.l	d0,a0
	add.l	#$32,a0
	move.w	#$0080,dmacon
	move.l	(a0),oldcopper
	move.l	#newcopper,(a0)
	move.w	#$8080,dmacon
	bsr	scrapsetup
	;jsr	mt_init
	move.w	#$0020,$dff096

	move.w	#$4000,$dff09a
	move.l	$6c,store
	move.l	#inter,$6c
	move.w	#$c000,$dff09a
	
wait:	andi.b	#$40,$bfe001
	bne	wait
	
	move.w	#$000f,$dff096
	move.w	#$4000,$dff09a
	move.l	store,$6c
	move.w	#$c000,$dff09a
	clr.l	d0
	;jsr 	start	
	move.l	gfxbase,a0
	add.l	#$32,a0
	move.w	#$8020,$dff096
	move.w	#$0080,dmacon
	move.l	oldcopper,(a0)
	move.w	#$8080,dmacon

error_no_libary:
	rts	
gfxname:
	dc.b	"graphics.library",0
	even

inter:	movem.l	a0-a6/d0-d7,-(a7)
;	jsr	mt_music
	bsr	scraper
;	move.w	#$0fff,$dff180
	movem.l	(a7)+,a0-a6/d0-d7
	dc.w	$4ef9
store:	dc.l	0



textup:	move.l	#$71000,a5
	move.w	#20,d7
nextch:	addq.l	#2,a5
	move.l	a5,a0
	move.l	#$70000,a1
	bsr	getcharval
	move.l	chart,d3
	add.l	d3,a1
	move.w	#16,d0
pbit:	move.w	(a1)+,(a0)
	add.l	#$5c,a0
	dbr	d0,pbit
	dbr	d7,nextch
	rts

textpoint:	dc.l	0,0

ss:	dc.b 	0
sstore:	dc.b	0,0,0

chart:	dc.w	0
char:	dc.w	0,0,0

getcharval:
	lea	text,a6
	move.l	textpoint,d0
	add.l	d0,a6
	move.b	(a6),d0
	cmp.b	#$ff,d0
	beq	resetall

	cmp.w	#$d0,d0
	blt	skip
	cmp.w	#$e0,d0
	beq	sine1
	cmp.w	#$e1,d0
	beq	sine2
	cmp.w	#$e2,d0
	beq	sine3
	cmp.w	#$e3,d0
	beq	scroll1
	cmp.w	#$e4,d0
	beq	scroll2
	cmp.w	#$e5,d0
	beq	scroll3
	cmp.w	#$e6,d0
	beq	zigzag1
	cmp.w	#$e7,d0
	beq	zigzag2
	cmp.w	#$e8,d0
	beq	zigzag3
	cmp.w	#$e9,d0
	beq	quick
	cmp.w	#$ea,d0
	beq	greets
	cmp.w	#$eb,d0
	beq	quickgreets

skip:	move.b	d0,sstore
	move.w	ss,d0
	sub.w	#$31,d0
	mulu	#$20,d0
	move.w	d0,char
	addq.l	#1,textpoint
	rts
	

RESETALL:
	move.l	#0,textpoint
	bra	getcharval

sine1:	move.l	#sine1table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

sine2:	move.l	#sine2table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

sine3:	move.l	#sine3table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

scroll1:move.l	#scroll1table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

scroll2:move.l	#scroll2table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

scroll3:move.l	#scroll3table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

zigzag1:move.l	#zigzag1table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

zigzag2:move.l	#zigzag2table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

zigzag3:move.l	#zigzag3table,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

quick:	move.l	#quicktable,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

greets:move.l	#greetstable,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval
quickgreets:
	move.l	#quickgreetstable,nextwobtab
	addq.l	#1,textpoint
	bra	getcharval

text:	DC.B	$E0,`                     `
	DC.B	    `  XXX INTERNATIONAL  `
	DC.B	    `      PRESENTS       `
	DC.B	    `      HOT STUFF      `
	DC.B	$e3,`   XXX MEMBERS ARE   `
	DC.B	$e3,`    SPARK   AMIGA    `
	DC.B	$e4,`      PIX   ST       `
	DC.B	$e5,`      AXEL  ST       `
	DC.B	$e6,`     TURBO  AMIGA    `
	DC.B	$e7,`      LYNX  AMIGA    `
	DC.B	$e8,`      ERN   AMIGA    `
	DC.B	$e9,`     ALERT  ST       `
	DC.B	$e9,`    GREETINGS TO     `
	DC.B	    `   TOR OF NORWAY     `
	DC.B        `        DMI          `
	DC.B	    `    TOXIC OF TKT     `
	DC.B	    `FAIRLIGHT  NORTHSTAR `
	DC.B	    `   AXE AND SCANNER   `
	DC.B	    `       TOPBOYS       `
	DC.B	    `       A TEAM       `
	DC.B	    `       SEX DWARF     `
	DC.B	    `       TEZZ 88       `
	DC.B	    ` KEN B  OF CAMBRIDGE `
	DC.B	    `   FASH OF STARTIDE  `
	DC.B	    `   SILLY NAME TEAM   `
	DC.B	    `         LSD         `
	DC.B	    `     IAN  N  MIC     `
	DC.B	    `    GAZZING STOCK    `
	DC.B	    `    XXX OF HOTLINE   `
	DC.B	    ` OI  CHANGE YOUR NAME`
	DC.B	    `      DIGI TECH      `
	DC.B	    `        MARKER       `
	DC.B	    `      1OO1 CREW      `
	DC.B	    `   THE RED FIREMAN   `
	DC.B	    `     ROAD WARRIOR    `
	DC.B	    `         ICI         `
	DC.B       `         DOC         `
	DC.B       `       TRISTAR       `
	DC.B	    `      DOMANATORS     `
	DC.B	    `      GIGAFLOPS      `
	DC.B       `        CHAMPS       `
	DC.B       `         HQC         `
	DC.B       `         ANC         `
	DC.B       `     POWERSTATION    `
	DC.B       `      MOTLY CREW     `
	DC.B       `        HAGAR        `
	DC.B	    `         REX         `
	DC.B        `  GOD THIS IS BORING `
	DC.B	    `      HELLO MUM      `
	DC.B	    `    PAUL IS A FART   `
	DC.B	    `     FULL OF WIND    `
	DC.B	    ` CODING GENIUS    `
	DC.B	$E3,`      I THINK NOT    `
	DC.B	    `   SPECIAL THANX TO  `
	DC.B	$E1,`        TOXIC        `
	DC.B	$E3,`FOR ALL THE HOT STUFF`   
	DC.B	    `   ITS TIME TO GO    `
	DC.B	    ` SO FROM ALL AT XXX  `
	DC.B	    `       SOD OFF       `
	DC.B 	    ` WRAP WRAP WRAP WRAP `
	DC.B 	    ` WRAP WRAP WRAP WRAP `
	DC.B 	    ` WRAP WRAP WRAP WRAP `
	DC.B 	    ` WRAP WRAP WRAP WRAP `
	DC.B	    `WWWWWRRRRAAAAAPPPPPPP`
	DC.B	$FF
	EVEN
scrapsetup:
	lea	xbps,a1
	lea	xbpf,a2
	move.w	#$FD2,d0
suloop:	move.w	d0,(a1)
	add.w	#$5c,d0
	add.l	#16,a1
	cmp.l	a1,a2
	bgt	suloop
	move.l	#sine1table,currentwobtab
	move.l	#sine1table,nextwobtab
	rts

tablepo:	dc.b	0,0
tablepos:	dc.b	0,0,0,0
nextwobtab:	dc.l	0,0
currentwobtab:	dc.l	0,0
scraper:
	lea	xbps,a1
	lea	xscs,a4
	lea	xscf-16,a5
repbit:	move.w	16(a1),d0
	sub.w	#$5c,d0
	move.w	d0,(a1)
	move.w	16(a4),(a4)
	add.l	#16,a4
	add.l	#16,a1
	cmp.l	a4,a5
	bgt	repbit
				;newvalue
	move.l	tablepo,d0
	move.l	currentwobtab,a4
	add.l	d0,a4
	lea	xbpf-16,a1
	lea	xscf-16,a3
	
wobloop:
	bsr	nextwob	
	add.l	#2,d0
	move.l	currentwobtab,a4	
	add.l	d0,a4
	move.l	d0,tablepo
	cmp.w	#$abcd,(a4)
	beq	ressit
	rts


ressit:
	move.l	nextwobtab,currentwobtab
	move.l	currentwobtab,a4
	move.l	#0,tablepo
	bsr	textup	
nextwob:
	cmp.w	#$abcd,(a4)
	beq	ressit	
	move.w	(a4),d1
	cmp.w	#$e000,d1
	bhi	suber

adder:	move.w	(a3),d2
	add.w	d1,d2
	cmp.w	#$ff,d2
	bhi	addone
	move.w	d2,(a3)
	rts

addone:	sub.w	#$10,d2
	move.w	d2,d1s
	move.b	#0,d1s
	move.w	d1s,d2
	move.w	d2,(a3)
	sub.w	#2,(a1)
	rts			

suber:	move.w	(a3),d2
	add.w	d1,d2
	cmp.w	#$f000,d2
	bhi	subone
	move.w	d2,(a3)
	rts

subone:	add.w	#$10,d2
	move.w	d2,d1s
	move.b	#0,d1s
	move.w	d1s,d2
	move.w	d2,(a3)
	add.w	#2,(a1)
	rts			
	

d1s:	dc.b	0
d1store:dc.b	0

	
sine1table:
	blk.w	38,-$aa
	blk.w	100,-$00
	BLK.W	2,-$55
	BLK.W	2,-$44
	BLK.W	2,-$33
	BLK.W	2,-$22
	BLK.W	2,-$11
	BLK.W	2,00
	BLK.W	2,$11
	BLK.W	2,$22
	BLK.W	2,$33
	BLK.W	2,$44
	BLK.W	2,$55
	BLK.W	2,$55
	BLK.W	2,$44
	BLK.W	2,$33
	BLK.W	2,$22
	BLK.W	2,$11
	BLK.W	2,00
	BLK.W	2,-$11
	BLK.W	2,-$22
	BLK.W	2,-$33
	BLK.W	2,-$44
	BLK.W	2,-$55
	BLK.W	2,-$55
	BLK.W	2,-$44
	BLK.W	2,-$33
	BLK.W	2,-$22
	BLK.W	2,-$11
	BLK.W	2,00
	BLK.W	2,$11
	BLK.W	2,$22
	BLK.W	2,$33
	BLK.W	2,$44
	BLK.W	2,$55
	BLK.W	2,$55
	BLK.W	2,$44
	BLK.W	2,$33
	BLK.W	2,$22
	BLK.W	2,$11
	BLK.W	2,00
	BLK.W	2,-$11
	BLK.W	2,-$22
	BLK.W	2,-$33
	BLK.W	2,-$44
	BLK.W	2,-$55
	BLK.W	50,0
	blk.w	38,$aa
	Blk.w	50,0
	dc.w	$abcd

sine2table:
	blk.w	38,-$aa
	blk.w	100,-$00
	BLK.W	1,-$55
	BLK.W	1,-$44
	BLK.W	1,-$33
	BLK.W	1,-$22
	BLK.W	1,-$11
	BLK.W	1,00
	BLK.W	1,$11
	BLK.W	1,$22
	BLK.W	1,$33
	BLK.W	1,$44
	BLK.W	1,$55
	BLK.W	1,$55
	BLK.W	1,$44
	BLK.W	1,$33
	BLK.W	1,$22
	BLK.W	1,$11
	BLK.W	1,00
	BLK.W	1,-$11
	BLK.W	1,-$22
	BLK.W	1,-$33
	BLK.W	1,-$44
	BLK.W	1,-$55
	BLK.W	1,-$55
	BLK.W	1,-$44
	BLK.W	1,-$33
	BLK.W	1,-$22
	BLK.W	1,-$11
	BLK.W	1,00
	BLK.W	1,$11
	BLK.W	1,$22
	BLK.W	1,$33
	BLK.W	1,$44
	BLK.W	1,$55
	BLK.W	1,$55
	BLK.W	1,$44
	BLK.W	1,$33
	BLK.W	1,$22
	BLK.W	1,$11
	BLK.W	1,00
	BLK.W	1,-$11
	BLK.W	1,-$22
	BLK.W	1,-$33
	BLK.W	1,-$44
	BLK.W	1,-$55
	BLK.W	50,0
	blk.w	38,$aa
	Blk.w	50,0
	dc.w	$abcd

sine3table:
	blk.w	38,-$aa
	blk.w	100,-$00
	BLK.W	4,-$55
	BLK.W	4,-$44
	BLK.W	4,-$33
	BLK.W	4,-$22
	BLK.W	4,-$11
	BLK.W	4,00
	BLK.W	4,$11
	BLK.W	4,$22
	BLK.W	4,$33
	BLK.W	4,$44
	BLK.W	4,$55
	BLK.W	4,$55
	BLK.W	4,$44
	BLK.W	4,$33
	BLK.W	4,$22
	BLK.W	4,$11
	BLK.W	4,00
	BLK.W	4,-$11
	BLK.W	4,-$22
	BLK.W	4,-$33
	BLK.W	4,-$44
	BLK.W	4,-$55
	BLK.W	4,-$55
	BLK.W	4,-$44
	BLK.W	4,-$33
	BLK.W	4,-$22
	BLK.W	4,-$11
	BLK.W	4,00
	BLK.W	4,$11
	BLK.W	4,$22
	BLK.W	4,$33
	BLK.W	4,$44
	BLK.W	4,$55
	BLK.W	4,$55
	BLK.W	4,$44
	BLK.W	4,$33
	BLK.W	4,$22
	BLK.W	4,$11
	BLK.W	4,00
	BLK.W	4,-$11
	BLK.W	4,-$22
	BLK.W	4,-$33
	BLK.W	4,-$44
	BLK.W	4,-$55
	BLK.W	50,0
	blk.w	38,$aa
	Blk.w	50,0
	dc.w	$abcd

scroll1table:
	blk.w	380,-$11
	blk.w	50,0 
	blk.w	380,$11
	blk.w	50,0
	dc.w	$abcd
scroll2table:
	blk.w	190,-$22
	blk.w	50,0 
	blk.w	190,$22
	blk.w	50,0
	dc.w	$abcd
scroll3table:
	blk.w	126,-$33
	blk.w	50,0 
	blk.w	126,$33
	blk.w	50,0
	dc.w	$abcd

zigzag1table:
	blk.w	38,-$aa
	blk.w	50,0
	blk.w	20,-$11
	blk.w	20,$11
	blk.w	20,$11
	blk.w	20,-$11
	blk.w	50,0
	blk.w	38,$aa
	blk.w	50,0
	dc.w	$abcd
zigzag2table:
	blk.w	38,-$aa
	blk.w	50,0
	blk.w	20,-$22
	blk.w	20,$22
	blk.w	20,$22
	blk.w	20,-$22
	blk.w	50,0
	blk.w	38,$aa
	blk.w	50,0
	dc.w	$abcd
zigzag3table:
	blk.w	38,-$aa
	blk.w	50,0
	blk.w	20,-$44
	blk.w	20,$44
	blk.w	20,$44
	blk.w	20,-$44
	blk.w	50,0
	blk.w	38,$aa
	blk.w	50,0
	dc.w	$abcd
quicktable:
	blk.w	38,-$aa
	blk.w	50,0
	blk.w	38,$aa
	blk.w	50,0
	dc.w	$abcd
greetstable:
	blk.w	38,-$aa
	blk.w	30,0
	blk.w	38,$aa
	blk.w	30,0
	dc.w	$abcd

quickgreetstable:
	blk.w	38,-$aa
	blk.w	10,0
	blk.w	38,$aa
	blk.w	10,0
	dc.w	$abcd

 



gfxbase:

	dc.l	0

oldcopper:

	dc.l	0


newcopper:	
	dc.w	$0100,$0000,$0180,0
	dc.w	$0108,$000,$010a,$000	

	dc.w	$2c01,$fffe
	DC.W 	$0100,$5200
	DC.W 	$00E0,$0006,$00E4,$0006
	dc.w	$00e8,$0006,$00ec,$0006
	dc.w	$00f0,$0006

	dc.w	$00e2,$0000,$00e6,$2260
	dc.w	$00ea,$44c0,$00ee,$6720
	dc.w	$00f2,$8980
		
	dc.w	$0092,$0030,$0094,$00d8
	dc.w	$008e,$1e01,$0090,$3eff

	dc.w	$0180,$0000,$0182,$0002,$0184,$0300,$0186,$0400
	dc.w	$0188,$0004,$018a,$0500,$018c,$0005,$018e,$0006
	dc.w	$0190,$0700,$0192,$0007,$0194,$0008,$0196,$0810
	dc.w	$0198,$0009,$019a,$000a,$019c,$0920,$019e,$000b
	dc.w	$01a0,$000c,$01a2,$000d,$01a4,$0b30,$01a6,$000e
	dc.w	$01a8,$000f,$01aa,$0c40,$01ac,$0d50,$01ae,$0e60
	dc.w	$01b0,$0f90,$01b2,$0fa0,$01b4,$0fb0,$01b6,$0fc0
	dc.w	$01b8,$0fd0,$01ba,$0fe0,$01bc,$0ff0,$01be,$0fff



	dc.w	$d501,$fffe,$0100,$1200,$00e0,$0007
	dc.w	$0108,$0030,$010a,$0030	
	dc.w	$0092,$0030,$0094,$00d8
	dc.w	$0182
xcols:	dc.w	$0FF0,$00e2
xbps:	dc.w	$a000,$0102
xscs:	dc.w	$0000
	dc.w	$d601,$fffe,$0182,$0FE0,$00e2,$a088,$0102,$0000
	dc.w	$d701,$fffe,$0182,$0FD0,$00e2,$a088,$0102,$0000
	dc.w	$d801,$fffe,$0182,$0FC0,$00e2,$a088,$0102,$0000
	dc.w	$d901,$fffe,$0182,$0FB0,$00e2,$a088,$0102,$0000
	dc.w	$da01,$fffe,$0182,$0FA0,$00e2,$a088,$0102,$0000
	dc.w	$db01,$fffe,$0182,$0F90,$00e2,$a088,$0102,$0000
	dc.w	$dc01,$fffe,$0182,$0F80,$00e2,$a088,$0102,$0000
	dc.w	$dd01,$fffe,$0182,$0F70,$00e2,$a088,$0102,$0000
	dc.w	$de01,$fffe,$0182,$0F60,$00e2,$a088,$0102,$0000
	dc.w	$df01,$fffe,$0182,$0F50,$00e2,$a088,$0102,$0000
	dc.w	$e001,$fffe,$0182,$0F30,$00e2,$a088,$0102,$0000
	dc.w	$e101,$fffe,$0182,$0F20,$00e2,$a088,$0102,$0000
	dc.w	$e201,$fffe,$0182,$0F10,$00e2,$a088,$0102,$0000
	dc.w	$e301,$fffe,$0182,$0F00,$00e2,$a088,$0102,$0000
	dc.w	$e401,$fffe,$0182
xcolf:	dc.w	$0F00,$00e2
xbpf:	dc.w	$0088,$0102
xscf:	dc.w	$0000
	dc.w	$7601,$fffe,$0182,$0202,$00e2,$8000,$0102,$0000
	dc.w	$0100,$0000

pal:	dc.w	$ffdf,$fffe,$0021,$fffe
	dc.w	$0201,$fffe,$0180,$0000
	dc.w	$0401,$fffe,$0180,$0100
	dc.w	$0601,$fffe,$0180,$0200
	dc.w	$0801,$fffe,$0180,$0300
	dc.w	$0a01,$fffe,$0180,$0400
	dc.w	$0c01,$fffe,$0180,$0500
	dc.w	$0e01,$fffe,$0180,$0600
	dc.w	$1001,$fffe,$0180,$0700
	dc.w	$1201,$fffe,$0180,$0800
	dc.w	$1401,$fffe,$0180,$0900
	dc.w	$1601,$fffe,$0180,$0a00
	dc.w	$1801,$fffe,$0180,$0b00
	dc.w	$1a01,$fffe,$0180,$0c00
	dc.w	$1c01,$fffe,$0180,$0d00
	dc.w	$1e01,$fffe,$0180,$0e00
	dc.w	$2001,$fffe,$0180,$0f00
	dc.w	$2201,$fffe,$0180,$0f00
	dc.w	$2401,$fffe,$0180,$0e00
	dc.w	$2601,$fffe,$0180,$0d00
	dc.w	$2801,$fffe,$0180,$0c00
	dc.w	$2a01,$fffe,$0180,$0b00
	dc.w	$2c01,$fffe,$0180,$0a00
	dc.w	$2e01,$fffe,$0180,$0900
	dc.w	$3001,$fffe,$0180,$0800
	dc.w	$3201,$fffe,$0180,$0700
	dc.w	$3401,$fffe,$0180,$0600
	dc.w	$3601,$fffe,$0180,$0500
	dc.w	$3801,$fffe,$0180,$0400
	dc.w	$3a01,$fffe,$0180,$0300
	dc.w	$3c01,$fffe,$0180,$0200
	dc.w	$3e01,$fffe,$0180,$0100
	dc.w	$4001,$fffe,$0180,$0000

end:	dc.w	$ffff,$fffe
	
