 
		************************************
		*    THIS SOURCE CODE HAS BEEN     *
		*  CONVERTED FROM SEKA TO DEVPAC   *
		*   WITH SEKPAC CONVERTER V 1.0    *
		*  	  DARKNESS 1990		   *
		*				   *
		*  For any question,bug,idea,etc.. *
		*  	     write to :		   *
		*				   *
		*      AMIGA VICE of DARKNESS	   *
		*	  APARTADO 54265	   *
		*	   28080 MADRID		   *
		*	      SPAIN		   *
		************************************
 
			opt c-
 
	;----------------------------------------------------------------------------
	;-				Cycle-Pictures				    -
	;----------------------------------------------------------------------------
	
		org	$20000
	
S:		movem.l	d0-d7/a0-a6,-(sp)
		bsr	SaveAll
		bsr	InitSpr
		bsr	InitScreen
		bsr	StartCopper
		bsr	Calculate
		bsr	MainLoop
		bsr	RestoreAll
		movem.l	(sp)+,d0-d7/a0-a6
		rts
	
SaveAll:	lea	OldCop(pc),a2
		move.l	$4,a6
		lea	Lib(pc),a1
		moveq	#0,d0
		jsr	-408(a6)
		move.l	d0,a0
		move.l	$26(a0),(a2)+
		lea	$dff000,a6
		move.w	$1c(a6),d0
		bset	#15,d0
		move.w	d0,(a2)+
		move.w	2(a6),d0
		bset	#15,d0
		move.w	d0,(a2)+
		move.l	$6c.W,Oldien
		rts
	
Oldien:		dc.l	0
	
RestoreAll:	lea	OldCop(pc),a0
		move.l	Oldien(pc),$6c.W
		move.l	(a0)+,$80(a6)
		move.w	(a0)+,$9a(a6)
		move.w	(a0)+,$96(a6)
		rts
	
StartCopper:	bsr	BlitWait
		lea	CopperList(pc),a0
		move.l	a0,$80(a6)
		tst.w	$88(a6)
		move.w	#$7fff,$96(a6)
		move.w	#$87e0,$96(a6)
		move.w	#$7fff,$9a(a6)
		move.w	#$c010,$9a(a6)
		move.l	#Int,$6c.W
		rts
	
InitSpr:	lea	CopperList(pc),a0
		move.l	#Spr,d0
		moveq	#7,d7
SprLoop:	swap	d0
		move.w	d0,2(a0)
		swap	d0
		move.w	d0,6(a0)
		addq.l	#8,a0
		dbra	d7,SprLoop
		rts
	
OldCop:		dc.l	0
OldIrq:		dc.w	0
OldDma:		dc.w	0
Spr:		dc.l	0
Lib:		dc.b	'graphics.library',0
		even
	
BlitWait:	btst	#14,$2(a6)
		bne.S	BlitWait
		rts
	
ClearScreen:	bsr.S	BlitWait
		move.l	#-1,$44(a6)
		move.l	#$01000000,$40(a6)
		move.w	d2,$66(a6)
		move.l	d0,$54(a6)
		move.w	d1,$58(a6)
		rts
	
	;-------------------------------------------------------------------------------------
	
InitScreen:	move.l	Screen(pc),d0
		moveq	#0,d2
		move.w	#140*5*64+44,d1
		bsr	ClearScreen
	
		lea	BMap(pc),a0
		moveq	#4,d7
BMapLoop:	swap	d0
		move.w	d0,2(a0)
		swap	d0
		move.w	d0,6(a0)
		addq.l	#8,a0
		add.l	#280*44,d0
		dbra	d7,BMapLoop
	
		lea	Sinus(pc),a0
		lea	SinAdr,a1
		move.w	#200-1,d7
FSLoop1:	move.w	(a0)+,d0
		add.w	d0,d0
		move.w	d0,(a1)+
		dbra	d7,FSLoop1
		lea	SinAdr,a0
		move.w	#20*200-1,d7
FSLoop2:	move.w	(a0)+,(a1)+
		dbra	d7,FSLoop2
		lea	Add(pc),a0
		lea	AddAdr,a1
		move.w	#1000-1,d7
FSLoop3:	move.w	(a0)+,(a1)+
		dbra	d7,FSLoop3
		lea	AddAdr,a0
		move.w	#10*1000-1,d7
FSLoop4:	move.w	(a0)+,(a1)+
		dbra	d7,FSLoop4
		rts
	
Screen:		dc.l	$60000
SinAdr:		=	$70000
AddAdr:		=	$75000
	
	;-------------------------------------------------------------------------------------
	
Calculate:	lea	AddAdr,a0
		move.l	a0,a1
		add.l	#1000,a1
		moveq	#0,d4
		move.l	Screen(pc),a4
		move.w	#280*44,a5
		lea	SinAdr,a6
		move.l	a7,SPSave
		move.l	a6,a7
		move.w	#280-1,d7
CalcLoop1:	move.w	#352-1,d6
	;		add.w	(a7),a0
	;		add.w	(a6),a1
		move.l	a0,a2
		move.l	a1,a3
		add.w	#8,a0
		add.w	#2,a1
		add.w	#2,a7
		add.w	#4,a6
		moveq	#0,d1
CalcLoop2:	move.w	(a2),d0
		add.w	(a3),d0
	;		add.w	(a6),a3
		add.w	(a7),a2
	;		add.w	#12,a2
		add.w	#4,a3
		add.w	#2,a6
		add.w	#2,a7
		move.w	d1,d2
		move.w	d2,d3
		lsr.w	#3,d2
		eor.w	#7,d3
		add.w	d4,d2
	
		btst	#0,d0
		beq.S	NoPlot1
		bset	d3,(a4,d2)
NoPlot1:	lsr.w	#1,d0
		add.w	a5,d2
		btst	#0,d0
		beq.S	NoPlot2
		bset	d3,(a4,d2)
NoPlot2:	lsr.w	#1,d0
		add.w	a5,d2
		btst	#0,d0
		beq.S	NoPlot3
		bset	d3,(a4,d2)
NoPlot3:	lsr.w	#1,d0
		add.w	a5,d2
		btst	#0,d0
		beq.S	NoPlot4
		bset	d3,(a4,d2)
NoPlot4:	lsr.w	#1,d0
		add.w	a5,d2
		btst	#0,d0
		beq.S	NoPlot5
		bset	d3,(a4,d2)
NoPlot5:	lsr.w	#1,d0
		add.w	a5,d2
	
		addq.w	#1,d1
		dbra	d6,CalcLoop2
		add.w	#44,d4
		sub.l	#352*2,a6
		sub.l	#352*2,a7
		dbra	d7,CalcLoop1
		lea	$dff000,a6
		move.l	SPSave(pc),a7
		rts
	
SPSave:		dc.l	0
	
	;-------------------------------------------------------------------------------------
	
MainLoop:	cmp.b	#-1,$6(a6)
		bne.S	MainLoop
QQQ:		cmp.b	#$38,$6(a6)
		bne.S	QQQ
	;		bsr	Cycle
		btst	#6,$bfe001
		bne.S	MainLoop
		rts
	
Int:		move.l	a7,SPSave2
		lea	$50000,a7
		movem.l	d0-d7/a0-a6,-(sp)
		bsr	Cycle
		movem.l	(sp)+,d0-d7/a0-a6
		move.l	SPSave2(pc),a7
		move.w	#$0010,$dff09c
		rte
	
SPSave2:	dc.l	0
	
	;-------------------------------------------------------------------------------------
	
Cycle:		lea	ColCount(pc),a0
		moveq	#0,d0
		move.w	(a0),d0
		addq.w	#1,d0
		cmp.w	#30,d0
		bls.S	NoD
		moveq	#0,d0
NoD:		move.w	d0,(a0)
		add.w	d0,d0
		lea	Cols+2(pc),a1
		lea	Cols2(pc),a2
		add.l	d0,a2
		moveq	#32-1,d7
CL:		move.w	(a2)+,(a1)
		addq.l	#4,a1
		dbra	d7,CL
		rts
	
ColCount:	dc.w	0
Cols2:
	dc.w	0,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00,$b00,$c00
	dc.w	$d00,$e00,$f00
	dc.w	$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300
	dc.w	$200,$100,0
	dc.w	0,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00,$b00,$c00
	dc.w	$d00,$e00,$f00
	dc.w	$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300
	dc.w	$200,$100,0
	
	dc.w	$f00,$f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80,$f90,$fa0,$fb0
	dc.w	$fc0,$fd0,$fe0,$ff0,$ff1,$ff2,$ff3,$ff4,$ff5,$ff6,$ff7,$ff8
	dc.w	$ff9,$ffa,$ffb,$ffc,$ffd,$ffe,$fff,$fff
	dc.w	$f00,$f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80,$f90,$fa0,$fb0
	dc.w	$fc0,$fd0,$fe0,$ff0,$ff1,$ff2,$ff3,$ff4,$ff5,$ff6,$ff7,$ff8
	dc.w	$ff9,$ffa,$ffb,$ffc,$ffd,$ffe,$fff,$fff
	
	;-------------------------------------------------------------------------------------
	
CopperList:	dc.l	$01200000,$01220000,$01240000,$01260000
		dc.l	$01280000,$012a0000,$012c0000,$012e0000
		dc.l	$01300000,$01320000,$01340000,$01360000
		dc.l	$01380000,$013a0000,$013c0000,$013e0000
	
		dc.l	$008e2066,$009038dd,$00920030,$009400d8
		dc.l	$01020000,$01040000,$01080000,$010a0000
	
Cols:		dc.l	$01800000,$01820010,$01840020,$01860030
		dc.l	$01880040,$018a0050,$018c0060,$018e0070
		dc.l	$01900080,$01920090,$019400a0,$019600b0
		dc.l	$019800c0,$019a00d0,$019c00e0,$019e00f0
		dc.l	$01a000f0,$01a200e0,$01a400d0,$01a600c0
		dc.l	$01a800b0,$01aa00a0,$01ac0090,$01ae0080
		dc.l	$01b00070,$01b20060,$01b40050,$01b60040
		dc.l	$01b80030,$01ba0020,$01bc0010,$01be0000
	
BMap:		dc.l	$00e00000,$00e20000,$00e40000,$00e60000
		dc.l	$00e80000,$00ea0000,$00ec0000,$00ee0000
		dc.l	$00f00000,$00f20000
	
		dc.l	$01005200
	
		dc.l	$ffddfffe,$3807fffe,$009c8010
	
		dc.l	-2
	
	;--------------------------------------------------------------------------------------
	
Sinus:
	;dc.w	0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
	;dc.w	16,17,18,19,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
	;dc.w	0,1,2,2,3,3,3,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,9,9,10,10,11
	;dc.w	12,13,14,15,16,15,14,13,12,11,10,9,8,7,6,5,4,3,3,2,2,1,1,0,0
	;dc.w	0,1,1,0,0
	;ss:
	
	dc.w	15,15,15,15,15,15,15,15
	dc.w	15,15,15,15,14,14,14,14
	dc.w	14,14,14,14,14,13,13,13
	dc.w	13,13,13,12,12,12,12,12
	dc.w	12,11,11,11,11,10,10,10
	dc.w	10,10,9,9,9,9,8,8
	dc.w	8,8,7,7,7,7,7,6
	dc.w	6,6,6,5,5,5,5,5
	dc.w	4,4,4,4,3,3,3,3
	dc.w	3,3,2,2,2,2,2,2
	dc.w	1,1,1,1,1,1,1,1
	dc.w	1,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	1,1,1,1,1,1,1,1
	dc.w	1,2,2,2,2,2,2,3
	dc.w	3,3,3,3,3,4,4,4
	dc.w	4,5,5,5,5,5,6,6
	dc.w	6,6,7,7,7,7,8,8
	dc.w	8,8,8,9,9,9,9,10
	dc.w	10,10,10,10,11,11,11,11
	dc.w	12,12,12,12,12,12,13,13
	dc.w	13,13,13,13,14,14,14,14
	dc.w	14,14,14,14,14,15,15,15
	dc.w	15,15,15,15,15,15,15,15
	
	
Add2:	dc.w	200,200,200,200,199,199,198,198
	dc.w	197,196,195,194,193,192,190,189
	dc.w	188,186,184,183,181,179,177,175
	dc.w	173,171,168,166,164,161,159,156
	dc.w	154,151,148,145,143,140,137,134
	dc.w	131,128,125,122,119,116,113,109
	dc.w	106,103,100,97,94,91,87,84
	dc.w	81,78,75,72,69,66,63,60
	dc.w	57,55,52,49,46,44,41,39
	dc.w	36,34,32,29,27,25,23,21
	dc.w	19,17,16,14,12,11,10,8
	dc.w	7,6,5,4,3,2,2,1
	dc.w	1,0,0,0,0,0,0,0
	dc.w	1,1,2,2,3,4,5,6
	dc.w	7,8,10,11,12,14,16,17
	dc.w	19,21,23,25,27,29,32,34
	dc.w	36,39,41,44,46,49,52,55
	dc.w	57,60,63,66,69,72,75,78
	dc.w	81,84,87,91,94,97,100,103
	dc.w	106,109,113,116,119,122,125,128
	dc.w	131,134,137,140,143,145,148,151
	dc.w	154,156,159,161,164,166,168,171
	dc.w	173,175,177,179,181,183,184,186
	dc.w	188,189,190,192,193,194,195,196
	dc.w	197,198,198,199,199,200,200,200
	
	
	
Add:	dc.w	400,400,400,400,400,400,400,400
	dc.w	400,400,400,400,399,399,399,399
	dc.w	399,399,399,399,398,398,398,398
	dc.w	398,398,397,397,397,397,396,396
	dc.w	396,396,395,395,395,395,394,394
	dc.w	394,393,393,393,392,392,392,391
	dc.w	391,391,390,390,389,389,389,388
	dc.w	388,387,387,386,386,385,385,385
	dc.w	384,384,383,383,382,381,381,380
	dc.w	380,379,379,378,378,377,376,376
	dc.w	375,375,374,373,373,372,372,371
	dc.w	370,370,369,368,368,367,366,365
	dc.w	365,364,363,363,362,361,360,360
	dc.w	359,358,357,356,356,355,354,353
	dc.w	352,352,351,350,349,348,348,347
	dc.w	346,345,344,343,342,341,341,340
	dc.w	339,338,337,336,335,334,333,332
	dc.w	331,330,329,328,327,327,326,325
	dc.w	324,323,322,321,320,319,318,317
	dc.w	316,314,313,312,311,310,309,308
	dc.w	307,306,305,304,303,302,301,300
	dc.w	299,297,296,295,294,293,292,291
	dc.w	290,289,287,286,285,284,283,282
	dc.w	281,279,278,277,276,275,274,272
	dc.w	271,270,269,268,267,265,264,263
	dc.w	262,261,259,258,257,256,255,253
	dc.w	252,251,250,249,247,246,245,244
	dc.w	242,241,240,239,237,236,235,234
	dc.w	233,231,230,229,228,226,225,224
	dc.w	223,221,220,219,218,216,215,214
	dc.w	213,211,210,209,208,206,205,204
	dc.w	203,201,200,199,197,196,195,194
	dc.w	192,191,190,189,187,186,185,184
	dc.w	182,181,180,179,177,176,175,174
	dc.w	172,171,170,169,167,166,165,164
	dc.w	163,161,160,159,158,156,155,154
	dc.w	153,151,150,149,148,147,145,144
	dc.w	143,142,141,139,138,137,136,135
	dc.w	133,132,131,130,129,128,126,125
	dc.w	124,123,122,121,119,118,117,116
	dc.w	115,114,113,111,110,109,108,107
	dc.w	106,105,104,103,101,100,99,98
	dc.w	97,96,95,94,93,92,91,90
	dc.w	89,88,87,86,84,83,82,81
	dc.w	80,79,78,77,76,75,74,73
	dc.w	73,72,71,70,69,68,67,66
	dc.w	65,64,63,62,61,60,59,59
	dc.w	58,57,56,55,54,53,52,52
	dc.w	51,50,49,48,48,47,46,45
	dc.w	44,44,43,42,41,40,40,39
	dc.w	38,37,37,36,35,35,34,33
	dc.w	32,32,31,30,30,29,28,28
	dc.w	27,27,26,25,25,24,24,23
	dc.w	22,22,21,21,20,20,19,19
	dc.w	18,17,17,16,16,15,15,15
	dc.w	14,14,13,13,12,12,11,11
	dc.w	11,10,10,9,9,9,8,8
	dc.w	8,7,7,7,6,6,6,5
	dc.w	5,5,5,4,4,4,4,3
	dc.w	3,3,3,2,2,2,2,2
	dc.w	2,1,1,1,1,1,1,1
	dc.w	1,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	1,1,1,1,1,1,1,1
	dc.w	2,2,2,2,2,2,3,3
	dc.w	3,3,4,4,4,4,5,5
	dc.w	5,5,6,6,6,7,7,7
	dc.w	8,8,8,9,9,9,10,10
	dc.w	11,11,11,12,12,13,13,14
	dc.w	14,15,15,15,16,16,17,17
	dc.w	18,19,19,20,20,21,21,22
	dc.w	22,23,24,24,25,25,26,27
	dc.w	27,28,28,29,30,30,31,32
	dc.w	32,33,34,35,35,36,37,37
	dc.w	38,39,40,40,41,42,43,44
	dc.w	44,45,46,47,48,48,49,50
	dc.w	51,52,53,53,54,55,56,57
	dc.w	58,59,59,60,61,62,63,64
	dc.w	65,66,67,68,69,70,71,72
	dc.w	73,73,74,75,76,77,78,79
	dc.w	80,81,82,83,84,86,87,88
	dc.w	89,90,91,92,93,94,95,96
	dc.w	97,98,99,100,101,103,104,105
	dc.w	106,107,108,109,110,111,113,114
	dc.w	115,116,117,118,119,121,122,123
	dc.w	124,125,126,128,129,130,131,132
	dc.w	133,135,136,137,138,139,141,142
	dc.w	143,144,145,147,148,149,150,151
	dc.w	153,154,155,156,158,159,160,161
	dc.w	163,164,165,166,167,169,170,171
	dc.w	172,174,175,176,177,179,180,181
	dc.w	182,184,185,186,187,189,190,191
	dc.w	192,194,195,196,197,199,200,201
	dc.w	203,204,205,206,208,209,210,211
	dc.w	213,214,215,216,218,219,220,221
	dc.w	223,224,225,226,228,229,230,231
	dc.w	233,234,235,236,237,239,240,241
	dc.w	242,244,245,246,247,249,250,251
	dc.w	252,253,255,256,257,258,259,261
	dc.w	262,263,264,265,267,268,269,270
	dc.w	271,272,274,275,276,277,278,279
	dc.w	281,282,283,284,285,286,287,289
	dc.w	290,291,292,293,294,295,296,297
	dc.w	299,300,301,302,303,304,305,306
	dc.w	307,308,309,310,311,312,313,314
	dc.w	316,317,318,319,320,321,322,323
	dc.w	324,325,326,327,327,328,329,330
	dc.w	331,332,333,334,335,336,337,338
	dc.w	339,340,341,341,342,343,344,345
	dc.w	346,347,348,348,349,350,351,352
	dc.w	352,353,354,355,356,356,357,358
	dc.w	359,360,360,361,362,363,363,364
	dc.w	365,365,366,367,368,368,369,370
	dc.w	370,371,372,372,373,373,374,375
	dc.w	375,376,376,377,378,378,379,379
	dc.w	380,380,381,382,382,383,383,384
	dc.w	384,385,385,385,386,386,387,387
	dc.w	388,388,389,389,389,390,390,391
	dc.w	391,391,392,392,392,393,393,393
	dc.w	394,394,394,395,395,395,395,396
	dc.w	396,396,396,397,397,397,397,398
	dc.w	398,398,398,398,398,399,399,399
	dc.w	399,399,399,399,399,400,400,400
	dc.w	400,400,400,400,400,400,400,400
	
