ORG	$40000
LOAD	$40000

>EXTERN "VSIN",VSIN,-1
>EXTERN "ACIDO",ACIDO,-1


SCRN=	$58000
MULTAB=	$43000	; $0200
VSIN=	$44000
COORD=	$48000
ACIDO=	$4F000

S:

	JSR	BOTTOM
	JSR	BOTTOM2

	MOVE.B	#$FF,D3
	JSR	SYNC
	MOVE.B	#$38,D3
	JSR	SYNC
	MOVE.L	#COP,$DFF080
	MOVE.W	#$0020,$DFF096
	MOVE.W	#$8000,$DFF096


	MOVE.L	#SCRN,D0
	MOVE.W	D0,INS+6
	SWAP	D0
	MOVE.W	D0,INS+2

	MOVE.L	#$C00,D1
	MOVE.L	#SCRN,A0
GOOF:	MOVE.L	#$00000000,(A0)+
	DBF	D1,GOOF

	BSR	IRQINIT



;İİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİ

MAIN:	CMP.W	#$FFFF,Q_RUTR
	BNE	MAIN	
	CLR.W	Q_RUTR

MOVE.W	#$400,$DFF180
	BSR	A_FILL
	BSR	A_STAR
MOVE.W	#$000,$DFF180

	BTST	#6,$BFE001
	BNE	MAIN
	BRA END

;İİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİ

SYNC:	MOVE.B	$DFF006,D0
	CMP.B	D3,D0
	BNE 	SYNC
	RTS

;İİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİ
			
END:	BSR	ENDIRQ
	MOVE.L	$00000004,A6
	MOVE.L	#LIBNAMET,A1
	JSR	-408(A6)
	MOVE.L	D0,A0
	MOVE.L	38(A0),$DFF080
	MOVE.W	#$8020,$DFF096
	CLR.L	D0
	RTS
LIBNAMET:
	DC.B	'graphics.library',0
EVEN

;İİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİ
OLDIRQ:	DC.L	0
OLDENA:	DC.W	0

IRQINIT:
	MOVE.L	$6C.W,OLDIRQ
	MOVE.W	$DFF01C,OLDENA
	OR.W	#$8000,OLDENA
	MOVE.W	#$7FFF,$DFF09A
	MOVE.L	#MYINT,$6C.W
	MOVE.W	#$C020,$DFF09A
	RTS
ENDIRQ:	MOVE.W	#$7FFF,$DFF09A
	MOVE.L	OLDIRQ,$6C.W
	MOVE.W	OLDENA,$DFF09A
	RTS



;IRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQ
SCRNPOI:	DC.L	SCRN
Q_SCSW:	DC.W	2
Q_SCRN:	DC.W	0
Q_RUTR:	DC.W	0

MYINT:
	MOVEM.L	D0-D7/A0-A6,-(A7)

	SUBQ.W	#1,Q_SCSW
	BEQ	Q_SC0		; SCSW=0?
	BRA	Q_OUT		; NEJ
Q_SC0:	MOVE.W	#2,Q_SCSW		; JA
	MOVE.W	#$FFFF,Q_RUTR
	MOVE.L	#SCRN,D0
	MOVE.L	#SCRN+$2C00,D1
	EOR.W	#$FFFF,Q_SCRN
	BMI	Q_SCR1
	EXG	D0,D1
Q_SCR1:
	MOVE.W	D0,INS+6
	SWAP	D0
	MOVE.W	D0,INS+2
	MOVE.L	D1,SCRNPOI
;-------------


Q_OUT:	MOVE.W	#$0020,$DFF09C		;IRQREQ
	MOVEM.L	(A7)+,D0-D7/A0-A6

	RTE





;IRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQIRQ




;İİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİ

A_FILL:	BTST	#14,$DFF002
	BNE.S	A_FILL
	MOVE.L	SCRNPOI,$DFF054
	MOVE.L	#$01000000,$DFF040
	MOVE.W	#$0,$DFF066
	MOVE.W	#[$110*$40]+[40/2],$DFF058
A_FIL:	BTST	#14,$DFF002
	BNE.S	A_FIL
	RTS

;İİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİ

ANGLE:	DC.L	0
DOTTS:	DC.W	0

A_STAR:

	MOVE.W	ANGLE,D6
	ADD.W	#$60,ANGLE
	AND.W	#$1FFF,ANGLE

;	MOVEQ	#$0,D6
;	MOVE.B	$DFF00A,D6
;	ASL.W	#$5,D6

	MOVE.L	SCRNPOI,A0
	LEA	COORD,A1
	LEA	VSIN+$0000,A2	; COS
	LEA	VSIN+$2000,A3	; SIN
	LEA	MULTAB,A4	; MULAD YPOS
	MOVE.W	DOTTS,A5
	SUB.L	A6,A6
	MOVE.L	#0,D7
	MOVE.B	$DFF00A,D7

;----------------------
A_PLOP:	MOVE.W	(A1)+,D0	;READ X&Y-COORD
	MOVE.W	(A1)+,D1
	;---------------
	MOVE.W	(A2,D6.W),D3	;READ COS&SIN
	MOVE.W	(A3,D6.W),D2
	MOVE.W	D2,D4		;CALCA RUNT Z-AXEL
	MOVE.W	D3,D5
	MULS	D0,D2
	MULS	D1,D3
	SWAP	D2
	ASL.W	#$1,D2
	SWAP	D3
	ASL.W	#$1,D3
	SUB.W	D2,D3
	MULS	D1,D4
	MULS	D0,D5
	SWAP	D4
	ASL.W	#1,D4
	SWAP	D5
	ASL.W	#1,D5
	ADD.W	D4,D5
	;------------


	;------------
	MULS	D7,D3	;ZOOM
	MULS	D7,D5
	LSR.L	#7,D3
	LSR.L	#7,D5
	;------------
	MOVE.W	D3,D0	;CALC ZERO-COORD
	MOVE.W	D5,D1
	ADD.W	#$280,D0
	ADD.W	#$200,D1
	;------------
	LSR.W	#2,D0	; DIVS NER TILL NORM VARDEN
	LSR.W	#2,D1
	ASL.W	#1,D1


	CMP.W	#300,D0
	BGE	NOPLOT
	CMP.W	#$200,D1
	BGE	NOPLOT


;------------- PLOT!

	MOVE.W	D0,D3
	MOVE.W	D0,D2
	MOVE.W	(A4,D1.W),D1
	LSR.W	#3,D0
	NOT.B	D2
	AND.B	#$000F,D2
				MOVE.W	D1,D4
	ADD.W	D0,D1
	BSET	D2,(A0,D1.L)
	BSET	D2,40(A0,D1.L)
		ADDQ.W	#$1,D3
		MOVE.W	D3,D2
		LSR.W	#3,D3
		NOT.B	D2
		AND.B	#$000F,D2
		ADD.W	D3,D4
		BSET	D2,(A0,D4.W)
		BSET	D2,40(A0,D4.W)

NOPLOT:
	SUBQ.W	#1,A5
	CMP.W	#0,A5
	BNE	A_PLOP
	RTS

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BOTTOM:
	MOVE.W	#$0000,DOTTS
	MOVE.L	#COORD,A0
	MOVE.L	#ACIDO,A1

	MOVEQ	#0,D0	; YCTRL
	MOVEQ	#0,D1
	MOVEQ	#0,D2


BHLOP:	MOVEQ	#0,D0
	AND.L	#$1F,D0
	MOVE.L	(A1),D3
BHPOL:	LSR.L	#1,D3
	BCC	TJIPIX
	BSR.S	SETDOT
TJIPIX:	ADDQ.W	#1,D0
	CMP.W	#32,D0
	BNE	BHPOL

	ADDQ.L	#4,A1
	ADDQ.W	#1,D1
	CMP.W	#10,D1
	BNE	BHLOP

	MOVEQ	#0,D1
	ADDQ.W	#1,D2
	CMP.W	#20,D2
	BNE	BHLOP
	RTS
;----------------------------
SETDOT:
	ADDQ.W	#1,DOTTS
	MOVE.L	D0,D7
	MOVE.L	D1,D6
	MOVE.L	D2,D5
	MOVE.W	#32,D4
	SUB.B	D0,D4
	MOVE.W	D4,D0
	MOVEQ	#0,D4
	ASL.W	#5,D1

	ADD.W	D1,D0

	ASL.W	#5,D0
	ASL.W	#5,D2

	SUB.W	#280,D0
	SUBX.W	D4,D0
	SUB.W	#280,D2
	SUBX	D4,D0

	MOVE.W	D0,(A0)+
	MOVE.W	D2,(A0)+
	MOVE.L	D7,D0
	MOVE.L	D6,D1
	MOVE.L	D5,D2
	RTS

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; CREATE MULTAB!

BOTTOM2:
	MOVE.L	#$110,D0
	MOVEQ	#0,D1
	MOVE.L	#MULTAB,A0
BOT2L:	MOVE.L	D1,D2
	MULU	#40,D2
	MOVE.W	D2,(A0)+
	ADDQ.W	#1,D1
	DBF	D0,BOT2L
	RTS

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


COP:	DC.W	$2007,$FFFE
INS:	DC.W	$00E0,$0005,$00E2,$0000
	DC.W	$0182,$0FF4
	DC.W	$008E,$2081,$0090,$30C1
	DC.W	$0092,$0038,$0094,$00D0
	DC.W	$0100,$1000
	DC.W	$0108,$0000,$010A,$0000

	DC.L	$FFFFFFFE
