ORG $70000
LOAD $70000
	MOVE.W #$F,$DFF096
WAIT:
	CMP.B #$FF,$DFF006
	BNE.L WAIT
	CLR.L D0
	MOVE #$8000,D0
	LEA $40000,A0
BLANK:	MOVE #$0000,(A0)+
	SUB #$1,D0
	BNE.L BLANK
	
STARTCOP:
	MOVE.L	$4,A6		
	JSR	-132(A6)	
	LEA	GRNAME,a1	
	JSR	-408(A6)	
	MOVE.L	D0,A6
	ADD.L	#$32,D0
	MOVE.L	D0,A0
	MOVE.L	(a0),OLDCOP	
	MOVE.L	#COPPER,(A0)
	MOVE.L A0,COPPERLIST	
	JMP START

ENDCOP:	MOVE.L COPPERLIST,A0
	MOVE.L OLDCOP,(A0)
	RTS
COPPERLIST:
DC.L $00000000
OLDCOP:
DC.L $00000000
GRNAME:DC.B 'graphics.library',0,0

COPPER: 
	DC.W	$0180
co0:	dc.w	$0000
	DC.W	$0182
co1:	dc.w	$FE0
	DC.W	$0184
co2:	dc.w	$f
	DC.W	$0186
co3:	dc.w	$d
	DC.W    $0188
co4:	dc.w	$b
	DC.W	$018a
co5:	dc.w	$a
	DC.W	$018c
co6:	dc.w	$9
	DC.W	$018e
co7:	dc.w	$8
	DC.W	$0190
co8:	dc.w	$7
	DC.W	$0192
co9:	dc.w	$6
	DC.W	$0194
co10:	dc.w	$5
	DC.W	$0196	
co11:	dc.w	$4
	dc.w	$0198
co12:	dc.w	$3
	dc.w	$019a
co13:	dc.w	$2
	dc.w	$019c
co14:	dc.w	$1
	dc.w	$019e
co15:	dc.w	$0
	dc.w	$01a0
co16:	dc.w	$f60		
	dc.w	$01a2
co17:	dc.w	$ddd
	dc.w	$01a4
co18:	dc.w	$cbb
	dc.w	$01a6
co19:	dc.w	$aaa
	dc.w	$01a8
co20:	dc.w	$888	
	dc.w	$01aa
co21:	dc.w	$666
	dc.w	$01ac
co22:	dc.w	$555
	dc.w	$01ae
co23:	dc.w	$333
	dc.w	$01b0
co24:	dc.w	$ff0
	dc.w	$01b2
co25:	dc.w	$fd0
	dc.w	$01b4
co26:	dc.w	$fb0
	dc.w	$01b6
co27:	dc.w	$f80
	dc.w	$01b8
co28:	dc.w	$f60
	dc.w	$01ba
co29:	dc.w	$f40
	dc.w	$01bc
co30:	dc.w	$f20
	dc.w	$01be
co31:	dc.w	$f00
	DC.W	$00e0
hi1:	DC.W	$0004
	DC.W	$00e2
lo1:	DC.W	$0000
	DC.W	$00e4
hi2:	DC.W	$0002
	DC.W	$00e6
lo2:	DC.W    $1000
	DC.W	$00e8
hi3:	DC.W	$0002
	DC.W	$00ea
lo3:	DC.W	$1000
	DC.W	$00ec
hi4:	DC.W	$0002
	DC.W	$00ee
lo4:	DC.W	$1000
	DC.W	$00f0
hi5:	DC.W	$0002
	DC.W	$00f2
lo5:	DC.W	$1000
	DC.W	$0100,%0001000000000000
	DC.W	$0102
delay:	DC.W	$ff
	DC.W	$0108,0
	DC.W	$010a,0
	DC.W	$0092,$0038
	DC.W	$0094,$00d0
	DC.W	$008e,$3670
	DC.W	$0090,$ffc1
	DC.W	$FFFF,$FFFE
START:	LEA $50000,A2
	LEA $50040,A3
	MOVE.W #$000F,$DFF096
DEMO:	CMP.B #$FF,$DFF006
	BNE.L DEMO
	BTST #$6,$BFE001
	BEQ.L QUIT
	JSR FILL
	JSR DRAW_PIXELS
	JMP DEMO

QUIT:	JMP OVER_HERE

DRAW_PIXELS:
	CLR.L D4
	CLR.L D0
	MOVE.W #128,D4
DRAW1:	ADD.B #$1,X+1
	MOVE.B $BFE101,D0
	SUB.B #40,D0
	MOVE.B D0,Y+1
	JSR PIX
	DBF D4,DRAW1
	MOVE #$23,X
	RTS
PIX:	MOVE.L #$40000,A0
	MOVE.L #DATA,A1
	MOVE.W X,D0
	LSR #$4,D0
	MULU #$2,D0
	ADD D0,A0
	MOVE.W Y,D0
	MULU #40,D0
	ADD D0,A0
	MOVE.W X,D0	
	ASL #$8,D0
	ASL #$4,D0
	DIVU #$1000,D0
	MULU #$2,D0
	ADD D0,A1
	MOVE.W (A1),D0
	OR.W D0,(A0)
	RTS
DATA:	DC.W $8000,$4000,$2000,$1000,$0800,$0400,$0200,$0100
	DC.W $0080,$0040,$0020,$0010,$0008,$0004,$0002,$0001,$0000

X:DC.W	$0023	
Y:DC.W	$0000
Z:DC.W	$0002
W:DC.W	$0002
X_CO:
DC.W	$0000
Y_CO:	
DC.W	$0000
FILL:	MOVE.L #$40004,$DFF054 ;DESTIANATION TO CLEAR
	move.w #22,$dff066	;dest. modulo , add 16 bytes at end.
	move.w #%0000000100000000,$dff040
	move.w #%0000000000000000,$dff042
	move.w #%0011001111001001,$dff058
WAITBLIT:
	btst #14,$dff002
	bne.s waitblit
	rts
OVER_HERE:
move.l #$20000,a0

move.w $dff002,d7
move.w #$7fff,$dff096
move.w #$4000,$dff09a
move.w #$0000,$dff180


loop: move.b $bfe101,d1
eori.b #$80,d1
move.b d1,(a0)+
move.w #90,d2
MOVE D1,$DFF180
porz: dbf d2,porz

CMP.L #$70000,A0
BNE.L LOOP
CLR .L D0
CLR.L D2
LEA $C20000,A0
LOOP1:
MOVE.B $BFE101,D1
EORI.B #$80,D1
MOVE.B D1,(A0)+
MOVE.W #90,D2
MOVE D1,$DFF180
PORZ1:DBF D2,PORZ1
CMP.L #$C7FFFF,A0
BNE.L LOOP1
A:ADD #$754,$DFF180
JMP A

ori.w #$8000,d7
move.w d7,$dff096
move.w #$c000,$dff09a
JSR ENDCOP
RTS

PLAY:	LEA 	$7E000,A0
	MOVE.L	A0,$DFF0A0
	MOVE.L  A0,$DFF0B0
	MOVE.L	A0,$DFF0C0
	MOVE.L  A0,$DFF0D0
	MOVE.W 	#$0200,$DFF0A4
	MOVE.W	#$0200,$DFF0B4
	MOVE.W	#$0200,$DFF0C4
	MOVE.W	#$0200,$DFF0D4
	MOVE.W 	#$F0,$DFF0A6
	MOVE.W	#$F0,$DFF0B6
	MOVE.W	#$F0,$DFF0C6
	MOVE.W 	#$F0,$DFF0D6
	MOVE.W 	#$00,$DFF0A8
	MOVE.W	#$00,$DFF0B8
	MOVE.W	#$00,$DFF0C8
	MOVE.W	#$00,$DFF0D8
	MOVE.W 	#$800F,$DFF096
WAIT1:	CMP.B #$C8,$DFF006
	BNE.L WAIT1
WAIT2:	CMP.B #$BE,$DFF006
	BNE.L WAIT2
	lea SMP_start,a0
	move.l	a0,$dff0a0
	move.l  a0,$dff0b0
	move.l	a0,$dff0c0
	move.l	a0,$dff0d0
	move.w	#$FFFF,$DFF0a4   ;e54b
	move.w	#$FFFF,$dff0c4
	move.w  #$FFFF,$dff0b4
	move.w  #$FFFF,$dff0d4
  	move.w	#$19C,$dff0a6
	move.w  #$19C,$dff0c6
	move.w  #$19C,$dff0b6
	move.w  #$19C,$dff0d6
	move.w	#$40,$dff0a8
	move.w  #$40,$dff0c8
	move.w	#$40,$dff0b8
	move.w  #$40,$dff0d8
	move.w	#$820f,$dff096
NEW_LOOP:
	CMP.B #$C8,$DFF006
	BNE.L NEW_LOOP
RASTER:
	CMP.B #$BE,$DFF006
	BNE.L RASTER
	MOVE.W #%0000000010000000,$DFF09C
ASTTRY:	BTST #$7,$DFF01F
	BEQ.L ASTTRY
	MOVE.W #%0000000010000000,$DFF09C
BSTTRY:	BTST #$7,$DFF01F
	BEQ.L BSTTRY
	MOVE.W #$F,$DFF096
RAST:	CMP.B #$C8,$DFF006
	BNE.L RAST
	lea $3F000+65536+65536,a0
	move.l	a0,$dff0a0
	move.l  a0,$dff0b0
	move.l	a0,$dff0c0
	move.l	a0,$dff0d0
	move.w	#$E800,$dff0a4   ;e54b
	move.w	#$E800,$dff0c4
	move.w  #$E800,$dff0b4
	move.w  #$E800,$dff0d4
  	move.w	#$19C,$dff0a6
	move.w  #$19C,$dff0c6
	move.w  #$19C,$dff0b6
	move.w  #$19C,$dff0d6
	move.w	#$40,$dff0a8
	move.w  #$40,$dff0c8
	move.w	#$40,$dff0b8
	move.w  #$40,$dff0d8
	move.w	#$800f,$dff096
	rts
	
	RTS	


SMP_start:	equ $10000
SMP_length:	equ 131072+65536+16384+16384+8192+8192
