	SECTION	MENU_MK_IX_,CODE_C
	OPT	O+ C-
	incdir  df0:,df1:
	move.l	#Screen,Store
	Move.w	Store,Plne+2
	Move.w	Store,Plne1+2
	Move.w	Store+2,Plne+6
	Move.w	Store+2,Plne1+6
	move.w  #56,d1
loop:   bsr	Colour
	Bsr	Cycle
	dbf	d1,loop
	move.w	#90,d1
long    bsr	waveplace2
        bsr	wavecycle
        dbf	d1,long
	move.l  #logo,store
	lea	bitmap,a0
	move.w	#4,d0
planes: move.w	store,2(a0)
 	move.w	store+2,6(a0)
 	add.w	#8,a0
 	add.l	#4640,store
 	dbf	d0,planes
 	lea	logo+23200,a0
 	lea	cols+2,a1
 	move.w	#31,d0
place: 	move.w	(a0)+,(a1)
 	add.w	#4,a1
 	dbf	d0,place
	MOVE.L	4,A6
	LEA.L	GFxNAME,A1
	CLR.L	D0
	JSR	-552(A6)
	MOVE.L	D0,GFXLOC
	MOVE.L	GFXLOC,A6
	MOVE.L	50(A6),OLDCOP
	MOVE.L	#COPPER,50(A6)
	MOVE.L	#$FFFF,D0
COPDEL:	DBF	D0,COPDEL
	MOVE.W	#%1000011111100000,$DFF096
	MOVE.W	#$C000,$DFF09A
	MOVE.L	#$FFFFFFFF,$DFF044
	MOVE.W	#00,$DFF042
	MOVE.W	#%0000100111110000,$DFF040
	MOVE.W	#$4000,$DFF09A
  	jsr     start_muzak
  	JSR     STARS_ON
START:	CMP.B	#$ff,$DFF006
	BNE.S	START

	bsr     Colour
	bsr     Cycle
	bsr     waveplace2
	bsr     wavecycle
	jsr	scroll
	jsr     replay_muzak
	btst	#6,$bfe001
	beq	reset
	btst	#7,$bfe001
	beq	reset
	btst	#10,$dff016
	beq	reset
	BRA.s	START

RESET:	MOVE.W	#$C000,$DFF09A
	MOVE.W	#$0F,$DFF096
	jsr     stop_muzak
	MOVE.L	GFXLOC,A6
	MOVE.L	OLDCOP,50(A6)
	MOVE.L	4,A6
	MOVE.L	GFXLOC,A1
	JSR	-414(A6)
	CLR.L	D0
EX:	RTS
COPPER:	DC.W	$0104,$0000
	DC.W	$0108,$0000,$010A,$0000
	DC.W	$0092,$0038,$0094,$00D0
	DC.W	$008E,$2C61,$0090,$2AC1
	DC.W	$0120,$0000,$0122,$0000
	dc.w	$0180,$0000,$0182,$0fff
mod:	DC.W	$0108,$0001,$010a,$0001

	dc.w	$01a2,$0fff
	dc.w	$01a4,$088f
	dc.w	$01a6,$000f
	dc.w	$01aa,$0fff
	dc.w	$01ac,$088f
	dc.w	$01ae,$000f

sp0:	dc.w	$0120,$0000,$0122,$0000	
sp1:	dc.w	$0124,$0000,$0126,$0000	
sp2:	dc.w	$0128,$0000,$012a,$0000	
sp3:	dc.w	$012c,$0000,$012e,$0000	
sp4:	dc.w	$0130,$0000,$0132,$0000	
sp5:	dc.w	$0134,$0000,$0136,$0000	
sp6:	dc.w	$0138,$0000,$013a,$0000	
sp7:	dc.w	$013c,$0000,$013e,$0000	

	
a set $180
cols:	rept	32
	dc.w	a,0
a set a+2 
  	endr
	dc.w	$3301,$fffe
a set $3101
        dc.w	a,$fffe
	dc.w	$100,$1200,$0108,2
plne1	dc.w	$e0,0,$e2,0
	dc.w	$182,$fff
	
a set $4009
	dc.w	a,$fffe
colours:rept	56
	dc.w	$180,0
	endr
colours1:
	dc.w	$0180,$0
	dc.w	a+$100,$fffe,$0180,$0
	dc.w	$4301,$fffe,$0100,$5200
bitmap  dc.w    $00e0,$0000,$00e2,$0000
	dc.w    $00e4,$0000,$00e6,$0000
	dc.w    $00e8,$0000,$00ea,$0000
	dc.w    $00ec,$0000,$00ee,$0000
	dc.w    $00f0,$0000,$00f2,$0000
	dc.w	$0108,0 
a set $5009
wave:	rept	90
	dc.w	a,$fffe,$0102,$0000
a set a+$100
        endr
wave1:  dc.w	a,$fffe,$0102,$0000
        dc.w	a+$100,$fffe,$0102,$0000
           	 
        dc.w	a+$200,$fffe,$100,0
a set $b009
	dc.w	a,$fffe
colours2:rept	56
	dc.w	$0180,$0
a set a+4
	endr
colours3:
	dc.w	$0180,$0
	dc.w	a+$100,$fffe,$0180,$0
a set $d001
        dc.w	a,$fffe
	dc.w	$100,$1200,$0108,2
plne 	dc.w	$e0,0,$e2,0
	dc.w	$182,$fff

a set a+$1000
	dc.w	a,$fffe
a set a+$100
	dc.w	$108,-82,$182,$444
a set a+$1000
	dc.w	a,$fffe
	dc.w	$100,0
	DC.W	$FFFF,$FFFE
GFXNAME:DC.B	"graphics.library",0
GFXLOC:	DC.L	0
OLDCOP:	DC.L	0
store:  dc.l    0

	even
Blit_Wait	Btst	#14,$dff002
		bne.s	Blit_Wait
		Rts
			
Colour:		lea colourtable,a0
		add.w colourptr,a0
		cmp.w #$8888,(a0)
		bne colour1
		clr.W colourptr
		bra.s colour
colour1:	move.w	(a0),colours1+2
		Move.w	(a0),colours2+2
		add.w #2,colourptr
		rts
   	     
Cycle:		jsr	Blit_Wait
		move.l	#colours+4,$dff050	;a source IM
		move.l	#colours,$dff054	;d source
		move.w	#$0000,$dff064	;a mod
		move.w	#$0000,$dff066	;d mod
		move.w	#$ffff,$dff044	;fw mask
		move.w	#$ffff,$dff046	;lw mask
		move.w	#%0000100111110000,$dff040	;con0
		move.w	#%0000000000000000,$dff042	;con1
		move.w	#2*64+56,$dff058	;size		
		jsr	Blit_Wait
		move.l	#colours3,$dff050	;a source IM
		move.l	#colours3+4,$dff054	;d source
		move.w	#$0000,$dff064	;a mod
		move.w	#$0000,$dff066	;d mod
		move.w	#$ffff,$dff044	;fw mask
		move.w	#$ffff,$dff046	;lw mask
		move.w	#%0000100111110000,$dff040	;con0
		move.w	#%0000000000000010,$dff042	;con1
		move.w	#2*64+57,$dff058	;size		
		jsr	Blit_Wait
		JSR     STAR_MOVE	
		rts
	     
colourptr:	dc.w $0

waveplace2: lea wavy,a0
	     add.w waveptr2,a0
	     cmp.w #$8888,(a0)
	     bne wcolour12
	     clr.W waveptr2
	     bra.s waveplace2
wcolour12:     move.w (a0),wave1+6
   	     add.w #2,waveptr2
   	     rts
   	     
wavecycle:	lea wave+6,a0
		move.w #89,d0
wavecycle1:	move.w 8(a0),(a0)
		add.w #8,a0
		dbf d0,wavecycle1
		rts

waveptr2:	dc.w $0

colourtable: 
		
 	     dc.w $f00
	     dc.w $f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80,$f90,$fa0,$fb0,$fc0,$fd0,$fe0,$ff0
	     dc.w $ef1,$df2,$cf3,$bf4,$af5,$9f6,$8f7,$7f8,$6f9,$5fa,$4fb,$3fc,$2fd,$1fe,$0ff
	     dc.w $0ef,$0df,$0cf,$0bf,$0af,$09f,$08f,$07f,$06f,$05f,$04f,$03f,$02f,$01f,$00f
	     dc.w $10e,$20d,$30c,$40b,$50a,$609,$708,$807,$906,$a05,$b04,$c03,$d02,$e01

	dc.w $8888

wavy:	dc.w	$000,$000,$000,$000,$000
	dc.w	$111,$111,$111,$111
	dc.w	$222,$222,$222
	dc.w	$333,$333
	dc.w	$444,$555
	dc.w	$666,$666
	dc.w	$777,$777,$777
	dc.w	$888,$888,$888,$888
	dc.w	$999,$999,$999,$999,$999
	dc.w	$888,$888,$888,$888
	dc.w	$777,$777,$777
	dc.w	$666,$666
	dc.w	$555,$444
	dc.w	$333,$333
	dc.w	$222,$222,$222
	dc.w	$111,$111,$111,$111
	dc.w	$8888

	include	Noise.INC


	****************************************
	*    Multi-purpose Stafield Creator    *
	*				       *	
	*        Written by Andy Clark         *	
	*				       *	
	*           3rd August 1990	       *	
	*				       *	
	*      Strictly for use by anyone      *	
	****************************************

	****************************************
	*     Use the four equates for fx      *	
	****************************************
	
star_top	equ	$3c		;first line
star_height	equ	108		;number of lines
density		equ	1		;density of stars (0-3)
direction	equ	0		;0-right 1-left

	****************************************
	*     Use the four equates for fx      *	
	****************************************


den:	dc.b	3,7,15,31

numst0:	dc.w	0
numst1:	dc.w	0
numst2:	dc.w	0

sth0:	dc.l	7	;height
sth1:	dc.l	5
sth2:	dc.l	3

stary:	dc.w	0	;current y position
stardat:dc.l	0	;data for display
starcnt:dc.l	0	;number of lines used
msb:	dc.w	0	;gmt check
dens:	dc.l	0	;density store
starh:	dc.l	0	;store height

	** Call this once to set up stars
	** Attention: You must have sp0-2 defined on copper list	

Stars_on:
	lea	den,a0
	move.l	#density,d0
	move.b	(a0,d0),dens+3

	lea	st0,a0
	move.l	#star0,d0
	move.l	sth0,d1
	jsr	setstars
	lea	st1,a0
	move.l	#star1,d0
	move.l	sth1,d1
	jsr	setstars
	lea	st2,a0
	move.l	sth2,d1
	move.l	#star2,d0
	jsr	setstars

	move.l	#st0,d0
	move.w	d0,sp0+6
	swap	d0
	move.w	d0,sp0+2

	move.l	#st1,d0
	move.w	d0,sp1+6
	swap	d0
	move.w	d0,sp1+2

	move.l	#st2,d0
	move.w	d0,sp2+6
	swap	d0
	move.w	d0,sp2+2
	rts

Setstars:
	move.b	#0,msb
	move.b	#star_top,stary
	move.l	d0,stardat
	move.l	d1,starh
	move.l	#0,starcnt

.lp2:	jsr	random
	and.l 	dens,d1
	add.b	d1,stary	;updt stary position
	bcc	.lp3		;over gmt?
	move.b	#1,msb
.lp3:	add.l	d1,starcnt	;inc count
	move.l	#star_height,d0
	cmp.l	starcnt,d0
	blt	.lp		;reached end
	move.b	stary,(a0)	;set ystart
	bclr.b	#2,3(a0)
	tst.b	msb		;check over
	beq	.lp5
	bset.b	#2,3(a0)
.lp5:	move.b	stary,2(a0)	
	move.b	starh+3,d1
	add.b	d1,2(a0)	;set ystop
	bcc	.lp4
	move.b	#1,msb
.lp4:	bclr.b	#1,3(a0)
	tst.b	msb		;check over
	beq	.lp6
	bset.b	#1,3(a0)
.lp6:	jsr	random
	move.b	d1,1(a0)	;set xpos
	add.b	#1,stary	;updt for next y position
	move.b	starh+3,d1
	add.b	d1,stary
	add.l	#4,a0		;point to data
	move.l	stardat,a1
	move.l	starh,d1
	subq.l	#1,d1
.lp7:	move.l	(a1)+,(a0)+	;put data into display
	dbra	d1,.lp7
	add.l	#1,starcnt	;in count
	move.l	starh,d1
	add.l	d1,starcnt
	move.l	#star_height,d0
	cmp.l	starcnt,d0
	blt	.lp		;reached end
	bra	.lp2		;get next star
.lp:	move.l	#0,(a0)
	rts

	** Call this every frame

Star_move:
	lea	st0,a0
	move.l	#3,d0		;speed
	move.l	sth0,d2
	asl.l	#2,d2
	add.l	#4,d2
	jsr	stmov
	lea	st1,a0
	move.l	#2,d0		;speed
	move.l	sth1,d2
	asl.l	#2,d2
	add.l	#4,d2
	jsr	stmov
	lea	st2,a0
	move.l	#1,d0		;speed
	move.l	sth2,d2
	asl.l	#2,d2
	add.l	#4,d2
	jsr	stmov
	rts
stmov:	move.l	#direction,d1
	beq	.lp
	neg.l	d0
.lp	add.b	d0,1(a0)
	add.l	d2,a0
	tst.l	(a0)
	bne	.lp
	rts

random	moveq.l	#0,d1
	lea	$fc0000,a6
	move.l	framecount,d5
	move.b	(a6,d5),d1
	and.l	#$07,d5
	lea	rseed,a6
	move.b	(a6,d5),d5
	eor.b	d5,d1
	add.l	d1,framecount
	cmp.l	#2000,framecount
	blt	noz2
	move.l	#0,framecount
	and.l	#7,d5
	move.b	d1,(a6,d5)
	eor.l	d1,framecount
noz2	rts
rseed	dc.b	$94,$2f,$c7,$ea,$93,$c5,$76,$89
framecount:
	dc.l	0

st0:	ds.b	200*4
st1:	ds.b	200*4
st2:	ds.b	200*4

star0:	dc.w $3800,$3800
	dc.w $4400,$6400
	dc.w $A200,$D200
	dc.w $8200,$A600
	dc.w $8A00,$8600
	dc.w $4400,$5C00
	dc.w $3800,$3800

star1:	dc.w $7000,$7000
	dc.w $C800,$8800
	dc.w $8800,$9800
	dc.w $8800,$B800
	dc.w $7000,$7000

star2:	dc.w $C000,$4000
	dc.w $A000,$E000
	dc.w $4000,$4000


	****************************************
	*     Bottom of Starfield Routine      *	
	****************************************


scroll:	move.l 	#$DFF000,A6
	MOVE.L 	#SCREEN,d0
	move.l 	d0,d1
	addq.l 	#2,d1		; a2 points to next word
	move.l 	d1,$50(a6)	; srce 
	move.l 	d0,$54(a6)	; Dest 
	clr.w 	$064(A6)		; No modulos
	clr.w 	$066(A6)
	move.l 	#-1,$044(A6)	; Set all masks on
	clr.w 	$042(A6)	; BLTCON1 = Blitter control reg.1
	MOVE.W 	#%1101100111110000,$040(a6)
	move.w 	#16*64+22,$058(a6)
	subq.b 	#1,charcount
	bne.s 	nocharyet
	move.b 	#5,charcount	
	move.l 	textptr,a0
	moveq 	#0,d0
	move.b 	(a0)+,d0
	cmpi.b 	#0,(a0)
	bne.s 	nottextend
	move.l 	#texttab,a0

nottextend:
	move.l 	a0,textptr
	bsr.s 	putletter

nocharyet:
	rts

putletter:
	lea 	fontmap,a0
	subi.b 	#32,d0

rndagain:	
	cmpi.b 	#20,d0		
	blt.s 	okputchar
	adda.l 	#40*16,a0	; Size of 1 line of chs
	subi.b 	#20,d0
	bra.s 	rndagain

okputchar:
	rol.b	#1,d0
	andi.b	#$fe,d0
	add.l	a0,d0
	move.l	#$DFF000,A6
	move.l	#SCREEN,d1
	subi.l	#2,d1
	move.l	d0,$50(a6)
	move.l	d1,$54(A6)
	MOVE.W	#38,$064(A6)
	MOVE.W	#40,$066(A6)
	move.l	#-1,$044(A6)	; Set all masks on
	clr.w	$042(A6)	; BLTCON1 = Blitter control reg.1
	MOVE.W	#%0000100111110000,$040(a6)
	move.w	#64*16+1,$058(a6)
	RTS
bitmaparea:	ds.l 1
charcount:	dc.b 16
		EVEN
fontmap:	incbin	16x16.raw_4
textptr:	dc.l texttab
texttab:dc.b	' HI FOLKS THIS IS JUST A QUICK INTRO JUST TO LET YOU ALLL NO THAT'
	DC.B    ' POD AX AND FANGS HAVE JOINED SLIPSTREAM NOW FOR THE CREDITS'
	DC.B    ' CODING BY POD WITH HELP FROM (FANGS) GRAPHICS BY FAST EDDIE OF ARCHAOS'
	DC.B    ' FONT TAKEN FROM DEFJAM INTRO MUSIC BY ???? OF ?????'
	DC.B    ' NOW FOR SOME PERSONAL GREETINGS ZARCH OF ZARCH (WHEN DO I GET MY FUCKING GAMEBOY BACK CUNT)'
	DC.B    ' KID VIDEO (HOW WAS THE COACH UP HERE) SKOL (I FEEL SORRY FOR YOU COMING UP WITH KID VIDEO)'
	DC.B    ' AX (GET THAT KICK OFF COMP WON) KEV (EEEEEEEEEEEEEE) COSY (I THOUGHT YOU WAS NOT COMING)'
	DC.B    ' PARASITE (HOW THINGS THESE DAYS) FRED (HOPE TO SEE YOU AT THE PARTY THIS TIME) '
	DC.B    'RC (THANKS FOR THE LIFT TO THE PARTY) FANGS (GET CODEING YOU CUNT) WIZOID (WHERES MY VIDS )'
	DC.B    ' SMURF (YOU BLOODY PUFF) NOW FOR THE NORMAL GREETINGS ANARCHY MAG FIELDS L.S.D ARCHAOS CRYSTAL (DEMOS)'
	DC.B    ' SCOOPEX SILENTS DEFJAM MAYHEM MODESTY IPEC ELITE PARADOX PHENOMENA D-MOB ECSTASY CRYPTIC QUARTEX AND TO ALL THE REST I VE FORGOT '
	DC.B    'ANY WAY IM OF SEE YOU   POD             TEXT WARP 									'
	DC.B	'                                                                                       '
	DC.B	0
	
SCREEN	DCB.B	$2c8,0
music	incbin df2:mod.loader
logo:	incbin logo.raw

colos:	dc.w	$f00
	dc.w	$f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80
	dc.w	$f90,$fa0,$fb0,$fc0,$fd0,$fe0,$ff0
	dc.w	$ef0,$df0,$cf0,$bf0,$af0,$9f0,$8f0,$7f0
	dc.w	$6f0,$5f0,$4f0,$3f0,$2f0,$1f0,$0f0
	dc.w	$0f1,$0f2,$0f3,$0f4,$0f5,$0f6,$0f7,$0f8
	dc.w	$0f9,$0fa,$0fb,$0fc,$0fd,$0fe,$0ff
	dc.w	$0ef,$0df,$0cf,$0bf,$0af,$09f,$08f,$07f
	dc.w	$06f,$05f,$04f,$03f,$02f,$01f,$00f
	dc.w	$10f,$20f,$30f,$40f,$50f,$60f,$70f,$80f
	dc.w	$90f,$a0f,$b0f,$c0f,$d0f,$e0f,$f0f
	dc.w	$f0e,$f0d,$f0c,$f0b,$f0a,$f09,$f08,$f07
	dc.w	$f06,$f05,$f04,$f03,$f02,$f01
	dc.w	$f00
	dc.w	$f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80
	dc.w	$f90,$fa0,$fb0,$fc0,$fd0,$fe0,$ff0
	dc.w	$ef0,$df0,$cf0,$bf0,$af0,$9f0,$8f0,$7f0
	dc.w	$6f0,$5f0,$4f0,$3f0,$2f0,$1f0,$0f0
	dc.w	$0f1,$0f2,$0f3,$0f4,$0f5,$0f6,$0f7,$0f8
	dc.w	$0f9,$0fa,$0fb,$0fc,$0fd,$0fe,$0ff
	dc.w	$0ef,$0df,$0cf,$0bf,$0af,$09f,$08f,$07f
	dc.w	$06f,$05f,$04f,$03f,$02f,$01f,$00f
	dc.w	$10f,$20f,$30f,$40f,$50f,$60f,$70f,$80f
	dc.w	$90f,$a0f,$b0f,$c0f,$d0f,$e0f,$f0f
	dc.w	$f0e,$f0d,$f0c,$f0b,$f0a,$f09,$f08,$f07
	dc.w	$f06,$f05,$f04,$f03,$f02,$f01
	dc.w	$ffff



