>EXTERN "DF1:OBJECTS/KORDS",KORDS
HOWMANY2 = 80
PICX=320 ; PIXELS
PICY=200 ; PIXELS
ANTAL_BPL=1
PICXWORD=PICX/16
PICXBYTE=PICX/8
BPLSIZE=PICXBYTE*PICY
PICSIZE=BPLSIZE*ANTAL_BPL

START:
	JSR	INITIALIZE
	MOVE.L	#SCREENBUFFER1+[60*40],BAKSCR
	JSR	SETUP_COPPERLIST1
	JSR	SETUPSCREEN
	
	MOVE.L	#0,STATUSPOS	
MAIN_LOOP:
	CMP.B	#$FF,$DFF006
	BNE	MAIN_LOOP
	JSR	DOT2(PC)
	BTST	#6,$BFE001
	BNE	MAIN_LOOP
	JSR	RESTORE
	RTS

CLOSELIB=-414
EXECBASE=4
FORBID=-132
OPENLIB=-408
PERMIT=-138

;;; DOS.LIBRARY

CLOSE=-36
OPEN=-30
READ=-42


SETUP_COPPERLIST1:

	MOVE.L	#BPL11,D0
	MOVE.W	D0,LO1+2
	LSR.L	#8,D0
	LSR.L	#8,D0
	MOVE.W	D0,HI1+2
	RTS

SETUP_COPPERLIST2:

	MOVE.L	#BPL12,D0
	MOVE.W	D0,LO1+2
	LSR.L	#8,D0
	LSR.L	#8,D0
	MOVE.W	D0,HI1+2
	RTS

CHANGEPIC:
	CMP.L   #0,STATUSSCR
	BEQ	SECOND_FRONT
	CMP.L   #1,STATUSSCR
	BEQ	FIRST_FRONT
CONT:	
	RTS
FIRST_FRONT:
	MOVE.L	#0,STATUSSCR
	LEA	RESSCR(PC),A0
	MOVE.L	(A0),D0
	MOVE.L	4(A0),(A0)
	MOVE.L	D0,4(A0)
	JSR	SETUP_COPPERLIST1(PC)
	BRA	CONT
SECOND_FRONT:
	MOVE.L	#1,STATUSSCR
	LEA	RESSCR(PC),A0
	MOVE.L	(A0),D0
	MOVE.L	4(A0),(A0)
	MOVE.L	D0,4(A0)
	JSR	SETUP_COPPERLIST2(PC)
	BRA	CONT
SETUPSCREEN:
	MOVE.W	#$8100,DMACON		;ENABLE BPL DMA
	MOVE.W	#$8040,DMACON		;ENABLE BLITTER DMA
	MOVE.W	#$0020,DMACON		;DISABLE SPRITE DMA

	MOVE.W	#ANTAL_BPL,D0		;ANTAL BIT PLANER
	MULU	#$1000,D0		;LORES
	ORI.W	#$0280,D0		;EXTRA_HALFBRITE
	MOVE.W	D0,BPLCON0
	MOVE.W	#0,BPLCON1
	MOVE.W	#0,BPL1MOD
	MOVE.W	#$0080,DMACON			;SETUP COPPER
	MOVE.L	#COPPERLIST,COP1LCH	
	MOVE.W	COPJMP1,D0
	MOVE.W	#$8080,DMACON
	RTS
STARTLIST=38

INITIALIZE:
	MOVE.L	EXECBASE,A6
RESTORE_COPPER:
	LEA	GRAPHICS_LIBRARY,A1
	CLR.L	D0
	JSR	OPENLIB(A6)
	MOVE.L	D0,A1
	MOVE.L	STARTLIST(A1),OLDCOPPER
	JSR	CLOSELIB(A6)
	JSR	FORBID(A6)

	MOVE.L	EXECBASE,A6
	RTS

RESTORE:
	MOVE.L	EXECBASE,A6
RESTORE_SOUND:
	MOVE.W	#$000F,DMACON
	MOVE.L	OLDCOPPER,$DFF080
	CLR.W	COPJMP1
	MOVE.W	#$83E0,DMACON
	JSR	PERMIT(A6)

	RTS

OLDCOPPER:	DC.L 0
GRAPHICS_LIBRARY:
	DC.B	'graphics.library',0
BLTCPTH=$DFF048
BLTBPTH=$DFF04C
BLTAPTH=$DFF050
BLTDPTH=$DFF054

BLTCMOD=$DFF060
BLTBMOD=$DFF062
BLTAMOD=$DFF064
BLTDMOD=$DFF066

BLTCON0=$DFF040
BLTCON1=$DFF042
BLTSIZE=$DFF058

BPL1MOD=$DFF108
BPLCON0=$DFF100
BPLCON1=$DFF102

COP1LCH=$DFF080
COPJMP1=$DFF088

DDFSTRT=$DFF092
DDFSTOP=$DFF094
DIWSTRT=$DFF08E
DIWSTOP=$DFF090
DMACON=$DFF096
DMACONR=$DFF002

INTREQR=$DFF01E

JOYXDAT=$DFF00C

VHPOSR=$DFF006
VPOSR=$DFF004

EVEN

STATUSSCR:	DC.L    0
RESSCR: 	DC.L    SCREENBUFFER1
BAKSCR: 	DC.L 	SCREENBUFFER2
STATUSPOS:	DC.L	0
COPPERLIST:
	DC.W	$1001,$FFFE
	DC.W	$0100,$0200
	DC.W	$2001,$FFFE
	DC.W	$008E,$1C61
	DC.W	$0090,$10F1
	DC.W 	$0092,$0038
	DC.W	$0094,$00D0
	DC.W	$0108,$0000
	DC.W	$0100,$1200
HI1:	DC.W	$00E0,0
LO1:	DC.W	$00E2,0
COLOUR1:
	DC.W	$0180,$0000
	DC.W	$0182,$0FFF
	DC.W	$F601,$FFFE
	DC.W	$0100,$0200
	DC.W	$FFFF,$FFFE	;END COPPER LIST

DOT2:
	CLR.L   D0
	CLR.L   D1
	CLR.L   D2
	CLR.L   D3
	CLR.L   D4
	CLR.L   D5
	CLR.L   D6
	LEA     USEKORDS2(PC),A0
	LEA     KORDPOS2(PC),A2
	MOVE.B  #HOWMANY2,D6
	LEA	GETX2(PC),A5
	MOVE.B  (A5),D0
	MOVE.B  1(A5),D1
	MOVE.B  2(A5),D2
	MOVE.B  3(A5),D3
MAKELOOP12:
	MOVE.L  (A2),A1
	ADDA.L  D0,A1
	MOVE.B  (A1),D4
	LSR.B   #1,D4
	MOVE.L  (A2),A1
	ADDA.L  D1,A1
	MOVE.B  (A1),D7
	LSR.B   #1,D7
	ADD.B   D7,D4
	MOVE.W  D4,(A0)+
	MOVE.L  (A2),A1
	ADDA.L  D2,A1
	MOVE.B  (A1),D5
	LSR.B   #1,D5
	MOVE.L  (A2),A1
	ADD.L   D3,A1
	MOVE.B  (A1),D7
	LSR.B   #1,D7
	ADD.B   D7,D5
	LSR.B   #1,D5
	ADDI.B  #$05,D5
	MOVE.W  D5,(A0)+
	LEA     SINUSPARMS2(PC),A6
	MOVE.L  (A6),A6
	ADD.B   2(A6),D0
	ADD.B   3(A6),D1
	SUB.B   4(A6),D2
	SUB.B   5(A6),D3
	DBF     D6,MAKELOOP12
	LEA     SPEED222(PC),A1
	MOVE.L  (A1),A1
	MOVE.B  #$04,D0
MAKELOOP22:
	MOVE.B  (A5),D1
	MOVE.B  (A1)+,D2
	ADD.B   D2,D1
	MOVE.B  D1,(A5)+
	DBF     D0,MAKELOOP22
	BRA.L   WRITEDOT

GETX2: 	DC.L    $00000000
SPEEDPARMS2:
SPEED12:DC.B $01		; SPEED X1
SPEED22:DC.B $02		; SPEED X2
SPEED32:DC.B $02		; SPEED Y1
SPEED42:DC.B $01		; SPEED Y2
SINUSPARAMETERS2:
PARM12:	DC.W $00	; UNUSED
PARM22:	DC.B $04	; WITH BETWEEN DOTS X1
PARM32:	DC.B $05	; WITH BETWEEN DOTS X2
PARM42:	DC.B $06	; WITH BETWEEN DOTS Y1
PARM52:	DC.B $05	; WITH BETWEEN DOTS Y2
PARM62:	DC.B $00	; UNUSED
EVEN
DUMMY2:	DC.L $00000000

SPEED222:	DC.L    SPEEDPARMS2
SINUSPARMS2:	DC.L    SINUSPARAMETERS2
KORDPOS2:	DC.L    KORDS
USEKORDS2:
BLK.W  HOWMANY2*8+4,$0004
WRITEDOT:
	CLR.L   D0
	LEA     USEKORDS2+[HOWMANY2*4+4](PC),A0
	MOVE.B  #HOWMANY2,D0
LOOP1:	MOVE.L  (A0)+,A1
	CLR.W   (A1)
	DBF     D0,LOOP1
	LEA     USEKORDS2(PC),A0
	LEA     USEKORDS2+[HOWMANY2*4+4](PC),A3
	CLR.L   D6
	MOVE.B  #HOWMANY2-7,D6
LOOP2:	MOVE.W  (A0)+,D0
	DIVU    #$0010,D0
	MOVE.W  D0,D4
	LSL.W   #1,D4
	ADDI.W  #$0006,D4
	SWAP    D0
	CLR.L   D1
	MOVE.W  D0,D1
	CLR.L   D0
	MOVE.B  D1,D0
	CLR.L   D0
	MOVE.W  (A0)+,D0
	MULU    #$0028,D0
	MOVE.W  D0,D5
	MOVE.L  BAKSCR(PC),A2
	ADDA.L  D5,A2
	ADDA.L  D4,A2
	MOVE.L  A2,(A3)+
	CLR.L   D2
	MOVE.B  #$0F,D2
	SUB.B   D1,D2
	CLR.L   D3
	BSET    D2,D3
	OR.W    D3,(A2)
	DBF     D6,LOOP2
	RTS

KORDS:  BLK.B   260,0
SCREENBUFFER1:
BPL11:	BLK.B	BPLSIZE,0
SCREENBUFFER2:
BPL12:	BLK.B	BPLSIZE,0
