	opt	c-,l+

	section	amiga,code
	xdef	scrloc,otscr,setgraph,inscol,getjoy1,getjoy2
	xdef	clrscr,putit,turn,encint,page,setscr,discint
	xdef	copperl

	xref	_scr1,_scr2,putvbl,_copper
	xref	intim,cflg,cintno,titlesc

	include	df0:Custom.i

PORT_A:	equ	$bfe001

setgraph:move.l	#_scr1,scrloc
	move.l	#_scr2,otscr

	MOVE.W	#$4200,BPLCON0
	MOVE.W	#0,BPLCON1
	MOVE.W	#0,BPLCON2
	MOVE.W	#0,BPL1MOD
	MOVE.W	#0,BPL2MOD
	MOVE.W	#$0038,DDFSTRT
	MOVE.W	#$00d0,DDFSTOP
	MOVE.W	#$2C81,DIWSTRT
	MOVE.W	#$F4C1,DIWSTOP

*	move.w	#CLR+BLTEN+SPREN,dmacon
	move.w	#CLR+SPREN,dmacon
*	move.w	#SET+BPLEN+COPEN+DSKEN,dmacon
	move.w	#SET+BPLEN+COPEN,dmacon

	lea	copperl+2,a0
	move.l	scrloc,d0
	moveq	#4-1,d1
ss1:	swap	d0
	move.w	d0,(a0)
	swap	d0
	move.w	d0,4(a0)
	addq.l	#8,a0
	addi.l	#8000,d0
	dbra	d1,ss1

	move.l	#_copper,a1
	lea	copperl,a2
cloop:	move.l	(a2),(a1)+
	cmpi.l	#$fffffffe,(a2)+
	bne.s	cloop

	move.l	#_copper,cop1lch
	move.w	copjmp1,d0

	jmp	clrscr

copperl:dc.w	$00e0,$0002
	dc.w	$00e2,$1000
	dc.w	$00e4,$0002
	dc.w	$00e6,$2f40
	dc.w	$00e8,$0002
	dc.w	$00ea,$4e80
	dc.w	$00ec,$0002
	dc.w	$00ee,$6dc0
	dc.w	$ffff,$fffe

SCRLOC:	Ds.L	1
OTSCR:	Ds.L	1
SCRNO:	Ds.B	1

PAGE	DC.B	$80
	DC.B	0
	dc.b	0
	xdef	VBL_ex
VBL_ex:	ds.b	1
	even

INSCOL:	LEA	COLORI,A0
	Jmp	PUTVBL


COLORI:	LEA	PAGE,A1
*	LEA	$FF8201,A2
*	MOVE.B	(A1),2(A2)
*	MOVE.B	2(a1),(A2)
	CMPI.B	#0,1(A1)
	BEQ.S	UUOOPPP
	SUBI.B	#1,1(A1)

UUOOPPP:ADDI.B	#1,intim
	ANDI.B	#7,intim
	BNE.S	ENDINT
	CMPI.B	#0,cflg
	BNE.S	ENDINT
	moveq	#0,D0
	moveq	#0,D1
	move.b	cintno,d0
	ADDq.w	#1,d0
	ANDi.w	#7,d0
	MOVE.B	d0,cintno
	asl.l	#1,D0
	LEA	COLOR00,A2
	LEA	CINTAB,A1
COLINT1:MOVE.W	(A1),D1
	CMPI.W	#$FFFF,D1
	BEQ.S	ENDINT
	asl.l	#1,D1
	MOVE.W	2(A1,D0.w),D3
	MOVE.W	D3,0(A2,D1.w)
	ADDA.L	#18,A1
	BRA.S	COLINT1
ENDINT:
	bset	#0,VBL_ex
	RTS

CINTAB	DC.W	$0
	DC.W	$000<<1,$000<<1,$000<<1,$000<<1,$000<<1,$000<<1,$000<<1,$000<<1
	dc.w	$1
	dc.w	$222<<1,$222<<1,$222<<1,$222<<1,$222<<1,$222<<1,$222<<1,$222<<1
	dc.w	$2
	dc.w	$333<<1,$333<<1,$333<<1,$333<<1,$333<<1,$333<<1,$333<<1,$333<<1
	dc.w	$3
	DC.W	$444<<1,$444<<1,$444<<1,$444<<1,$444<<1,$444<<1,$444<<1,$444<<1
	DC.W	$4
	DC.W	$555<<1,$555<<1,$555<<1,$555<<1,$555<<1,$555<<1,$555<<1,$555<<1
	DC.W	$5
	DC.W	$760<<1,$760<<1,$760<<1,$760<<1,$760<<1,$760<<1,$760<<1,$760<<1
	DC.W	$6
	DC.W	$505<<1,$505<<1,$505<<1,$505<<1,$505<<1,$505<<1,$505<<1,$505<<1
	DC.W	$7
	DC.W	$107<<1,$107<<1,$107<<1,$107<<1,$107<<1,$107<<1,$107<<1,$107<<1
	DC.W	$8
	DC.W	$005<<1,$005<<1,$005<<1,$005<<1,$005<<1,$005<<1,$005<<1,$005<<1
	DC.W	$9
	DC.W	$166<<1,$166<<1,$166<<1,$166<<1,$166<<1,$166<<1,$166<<1,$166<<1
	DC.W	$A
	DC.W	$653<<1,$653<<1,$653<<1,$653<<1,$653<<1,$653<<1,$653<<1,$653<<1
	DC.W	$B
	DC.W	$060<<1,$060<<1,$060<<1,$060<<1,$060<<1,$060<<1,$060<<1,$060<<1
	DC.W	$C
	DC.W	$600<<1,$600<<1,$600<<1,$600<<1,$600<<1,$600<<1,$600<<1,$600<<1
	DC.W	$D
	DC.W	$707<<1,$707<<1,$707<<1,$707<<1,$707<<1,$707<<1,$707<<1,$707<<1
	DC.W	$E
	DC.W	$000<<1,$100<<1,$200<<1,$300<<1,$400<<1,$500<<1,$600<<1,$700<<1
	DC.W	$F
	DC.W	$777<<1,$777<<1,$777<<1,$777<<1,$777<<1,$777<<1,$777<<1,$777<<1
	DC.W	$FFFF

GETJOY1:move.w	joy0dat,d0
	andi.w	#$0303,d0
	move.w	d0,-(sp)
	lsr.w	#1,d0
	andi.w	#$0101,d0
	eor.w	d0,(sp)
	move.b	PORT_A,d0
	btst	#6,d0
	bra.s	_joy1

GETJOY2:move.w	joy1dat,d0
	andi.w	#$0303,d0
	move.w	d0,-(sp)
	lsr.w	#1,d0
	andi.w	#$0101,d0
	eor.w	d0,(sp)
	move.b	PORT_A,d0
	btst	#7,d0
_joy1:	bne.s	_joy
	move.w	(sp)+,d0
	bset	#15,d0
	bra.s	_joy2
_joy:	move.w	(sp)+,d0
_joy2:	andi.w	#$8303,d0
	rts

; PALSET - SETS ALL COLOURS IN THE PALLETE
; A0 - PALLETE LOCATION

palset:	lea	COLOR00,a1
	moveq	#16-1,d0
ps0:	move.w	(a0)+,(a1)+
	dbra	d0,ps0
	rts

ENCINT:	move.b	#0,cflg
	RTS

DISCINT:MOVE.B	#2,cflg
	RTS

CLRSCR:	movea.l	SCRLOC,A2
	MOVE.L	#7999,D0
CLRSCR1 MOVE.L	#0,(A2)+
	DBRA	D0,CLRSCR1
	RTS

TURN:	LEA	SCRLOC,A2
	LEA	OTSCR,A1
	MOVE.L	(A1),D0
	MOVE.L	(A2),(A1)
	MOVE.L	D0,(A2)
	LEA	SCRNO,A1
	ANDI.B	#1,(A1)
	EORI.B	#1,(A1)
	RTS

SETSCR:	LEA	PAGE,A1
	LEA	SCRLOC,A2
	MOVE.B	2(A2),(A1)
	MOVE.B	#2,1(A1)
	move.b	1(a2),2(a1)

	lea	copperl+2,a0
	move.l	scrloc,d0
	moveq	#4-1,d1
ss2:	swap	d0
	move.w	d0,(a0)
	swap	d0
	move.w	d0,4(a0)
	addq.l	#8,a0
	addi.l	#8000,d0
	dbra	d1,ss2

	rts

TITLEP:	DC.W	$777<<1,$700<<1,$161<<1,$222<<1
	dc.w	$444<<1,$555<<1,$222<<1,$333<<1
	dc.w	$444<<1,$555<<1,$550<<1,$770<<1
	dc.w	$027<<1,$147<<1,$057<<1,$000<<1

SETCL:	LEA	TITLEP,A0
	JSR	PALSET
	RTS

PUTIT:	JSR	TURN
	JSR	CLRSCR
	JSR	DISCINT
	MOVEA.L scrloc,A1
	MOVEA.L titlesc,A0
	JSR	SCCOPY
	JSR	SETCL
	JSR	SETSCR
	RTS

SCCOPY:	MOVE.L	#7999,D0
SCCOPY1:MOVE.L	(A0)+,(A1)+
	DBRA	D0,SCCOPY1
	RTS

