;************************************************************
;***   THIS INTRO WAS CODED BY POD WITH HELP FROM FANGS   ***
;***** IF YOU WANT TO SWAPP HINTS AND TIPS WITH ME THEN *****
;******* PHONE POD ON (0742) 554063 OR WRITE TO ME AT *******
;*********69 WOODSEATS RD WOODSEATS SHEFFIELD S8 OPH*********
;************************************************************

	SECTION	POD_OF_SLIPSTREAM_,CODE_C
	OPT	C-
	incdir  df0:,df2:
	move.l  #grumpy,getto
	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.L	#DIFFERENCE,STORE
	MOVE.W	STORE,SCRL+2
	MOVE.W	STORE+2,SCRL+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	#$05,$DFF006
	BNE.S	START
	jsr 	bounce
	bsr     Colour
	bsr     Cycle
	bsr     waveplace2
	bsr     wavecycle
	jsr	scroll
	jsr	SCROLLY
	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,$0030
	dc.w	$0094,$00D8
	DC.W	$008E,$2C61,$0090,$2AC1
	DC.W	$0120,$0000,$0122,$0000
	dc.w	$0180,$0000,$0182,$0fff

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	
	;dc.w	$0108,0

a set $180
cols:	rept	32
	dc.w	a,0
a set a+2 	
	endr
	dc.w	$3101,$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	$5301,$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    $108,0
a set $5809

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
        	
colours2:rept	56
	dc.w	$0180,$0
a set a+4
	endr
colours3:
	dc.w	$0180,$2
	dc.w	a+$100,$fffe,$0180,$0

a set $d001
shat:   dc.w	$d001,$fffe
	dc.w	$100,$1200,$0108,2
plne	dc.w	$e0,0,$e2,0
	dc.w	$182,$2Af

a set a+$1000
	dc.w	a,$fffe

a set a+$100
	dc.w	$108,-82,$182,$1AF
a set a+$1000
	dc.w	a,$fffe
	dc.w	$100,0
;A SET A+$400
	DC.W    A,$FFFE,$108,2
	DC.W    $100,$1200
	dc.w 	$0182,$02FF
SCRL	DC.W    $E0,0,$E2,0
	DC.W	$FFE1,$FFFE,$2801,$FFFE,$100,0
	dc.w	$108,-82,$182,$444
	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	$4c		;first line
star_height	equ	90		;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	' WELCOME TO SLIPSTREAM BBS INTRO'
	DC.B    ' RING THE NEW SLIPSTREAM BBS ON ENGLAND'
	DC.B    '     +44 0642 300501 THE ABSOLUTE ZERO      '
	DC.B    ' CREDITES FOR THIS INTRO '
	DC.B    ' CODING BY POD WITH HELP FROM (FANGS) GRAPHICS BY  ?????????'
	DC.B    ' FONT TAKEN FROM DEFJAM INTRO MUSIC BY ???? OF ?????'
	DC.B    ' IF YOU ARE WAITING FOR THE GREETINGS YOU ARE READING THE WRONG SCROLLER'
	DC.B    ' IF YOU WANT TO CONTACT SLIPSTREAM THEN WRITE TO KID VIDEO AT 45 COCERIDER RD WAITHAMSTO LONDON E17 6QX OR'
	DC.B    ' POD 69 WOODSEATS RD SHEFFIELD S8 OPH OR RING (0742) 554063 '
	DC.B    'ANY WAY  SEE YOU  LATER                  TEXT WARP             '
	DC.B	'                                                                                       '
	DC.B	0
	
SCREEN	DCB.B	$8c8,0
music	incbin df2:mod.loader 
logo:	incbin logo3.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
	EVEN
getto:	dc.l 0
poo:	dc.b 0
gob:	dc.b 0
	even
	
bounce:
	move.l getto,a4
	move.w (a4)+,shat
	addi.b #1,poo
	cmpi.b #24,poo  ;number in table
	beq lop
	move.l a4,getto
	jmp cak
lop:
	move.b #0,poo
	move.l #grumpy,getto
cak:	
	rts
		
grumpy:
	dc.w $d001,$cc01,$c801,$c401,$c001,$bd01
	dc.w $ba01,$b701,$b501,$b301,$b201,$b101
	dc.w $b001,$b101,$b201,$b301,$b501,$b701
	dc.w $ba01,$bd01,$c001,$c401,$c801,$cc01
	dc.w $d001
	
	
SCROLLPLANE	DS.B	2500
SINSCROLL:LEA	DIFFERENCE,A0		;	VISIBLE BIT PLANE
BLITREADY:BTST	#14,$DFF002		;	CHECK FOR BUSY BLITTER
	BNE.S	BLITREADY		;	WAIT TILL BLITTER READY
	MOVE.L	A0,$DFF054		;	SOURCE ADDRESS
	MOVE.L	A0,$DFF050		;	DESTINATION ADDRESS
	CLR.L	$DFF044			;	NO FWM/LWM (SEE HARDWARE MANUAL)
	CLR.L	$DFF064			;	NO MODULO (SEE HARDWARE MANUAL)
	MOVE.W	#%100000000,$DFF040	;	ENABLE DMA CHANNEL D, NOTHING ELSE, NO MINTERMS ACTIVE. 
	CLR.W	$DFF042			;	NOTHING SET IN BLTCON1
	MOVE.W	#(60*64)+21,$DFF058	;	WINDOW SIzE = 21 WORDS WIDE 60 LINES DEEP
	MOVE.L	SINPT,A3
	SUBQ.L	#1,A3
	MOVE.B	(A3),D0
	CMP.B	#255,D0
	BNE.S	NOTENDOFSINE
	LEA	SINTABEND(PC),A3
NOTENDOFSINE:MOVE.L	A3,SINPT
	MOVEQ	#19,D0
	LEA	SCROLLPLANE,A0
	LEA	DIFFERENCE,A1
SLOOP3:	BSR	GETSINVAL
BLITREADY2:BTST	#14,$DFF002
	BNE.S	BLITREADY2
	MOVE.L	A0,$DFF050
	MOVE.L	A2,$DFF054
	MOVE.L	#$F000F000,$DFF044
	MOVE.W	#40,$DFF064
	MOVE.W	#40,$DFF066
	MOVE.W	#%0000100111110000,$DFF040
	CLR.W	$DFF042
	MOVE.W	#(32*64)+1,$DFF058
	BSR	GETSINVAL
zONK2:	BTST	#14,$DFF002
	BNE.S	zONK2
	MOVE.L	A0,$DFF050
	MOVE.L	A2,$DFF054
	MOVE.L	A2,$DFF04C
	MOVE.L	#$F000F00,$DFF044
	MOVE.W	#40,$DFF064
	MOVE.W	#40,$DFF066
	MOVE.W	#40,$DFF062
	MOVE.W	#%0000110111111100,$DFF040
	CLR.W	$DFF042
	MOVE.W	#(32*64)+1,$DFF058
	BSR	GETSINVAL
zONK3:	BTST	#14,$DFF002
	BNE.S	zONK3
	MOVE.L	A0,$DFF050
	MOVE.L	A2,$DFF054
	MOVE.L	A2,$DFF04C
	MOVE.L	#$F000F0,$DFF044
	MOVE.W	#40,$DFF064
	MOVE.W	#40,$DFF066
	MOVE.W	#40,$DFF062
	MOVE.W	#%0000110111111100,$DFF040
	CLR.W	$DFF042
	MOVE.W	#(32*64)+1,$DFF058
	BSR	GETSINVAL
zONK4:	BTST	#14,$DFF002
	BNE.S	zONK4
	MOVE.L	A0,$DFF050
	MOVE.L	A2,$DFF054
	MOVE.L	A2,$DFF04C
	MOVE.L	#$F000F,$DFF044
	MOVE.W	#40,$DFF064
	MOVE.W	#40,$DFF066
	MOVE.W	#40,$DFF062
	MOVE.W	#%0000110111111100,$DFF040
	CLR.W	$DFF042
	MOVE.W	#%100000000001,$DFF058
	ADDQ.L	#2,A0
LOAD	ADDQ.L	#2,A1
	DBRA	D0,SLOOP3
	RTS
GETSINVAL:MOVEQ	#0,D1
	MOVE.B	(A3)+,D1
	MOVE.B	(A3),D2
	CMP.B	#255,D2
	BNE	OKYAR
	MOVE.L	#SINTAB,A3
OKYAR:	LSR.B	#1,D1
	BCLR	#0,D1
	MULU	#21,D1
	MOVE.L	A1,A2
	ADD.L	D1,A2
	RTS
SCROLLY:MOVE.B	PAUSE,D0
	CMP.B	#0,D0
	BEQ	GOPAST
	SUB.B	#1,D0
	MOVE.B	D0,PAUSE
	BRA	GOPAST2
GOPAST:	MOVE.L	#SCROLLPLANE,A0
	MOVE.L	#SCROLLPLANE+2,A1
BLITREADY3:BTST	#14,$DFF002
	BNE.S	BLITREADY3
	MOVE.L	A0,$DFF054
	MOVE.L	A1,$DFF050
	MOVE.L	#-1,$DFF044
	CLR.L	$DFF064
	MOVE.W	#%1100100111110000,$DFF040
	CLR.W	$DFF042
	MOVE.W	#(40*64)+26,$DFF058
GOPAST2:BSR	SINSCROLL
	MOVE.B	PAUSE,D0
	CMP.B	#0,D0
	BNE	IUO
	MOVE.B	COUNTDOWN,D0
	SUB.B	#1,D0
	CMP.B	#0,D0
	BEQ	MFC
	MOVE.B	D0,COUNTDOWN
IUO:	RTS
COUNTDOWN:	DC.B	4,0
SINPT:	DC.L	SINTABEND		
SINPT2:	DC.L	SINTAB2
	DC.B	255
SINTAB:	DC.B	$3C,$3F,$42,$46,$49,$4C,$50,$53,$56,$59
	DC.B	$5C,$5F,$61,$64,$67,$69,$6B,$6D,$6F,$71
	DC.B	$72,$73,$75,$76,$76,$77,$77,$77,$77,$77
	DC.B	$77,$76,$76,$75,$73,$72,$71,$6F,$6D,$6B
	DC.B	$69,$67,$64,$61,$5F,$5C,$59,$56,$53,$50
	DC.B	$4C,$49,$46,$42,$3F,$3C,$38,$35,$31,$2E
	DC.B	$2B,$27,$24,$21,$1E,$1B,$18,$16,$13,$10
	DC.B	$E,$C,$A,$8,$6,$5,$4,$2,$1,$1
	DC.B	$0,$0,$0,$0,$0,$0,$1,$1,$2,$4
	DC.B	$5,$6,$8,$A,$C,$E,$10,$13,$16,$18
	DC.B	$1B,$1E,$21,$24,$27,$2B,$2E,$31,$35
SINTABEND:	DC.B	$38,255
SINTAB2:DC.B	$2D,$31,$34,$38,$3B,$3E,$41,$45,$47,$4A,$4D,$4F,$51,$53,$55,$57
	DC.B	$58,$59,$59,$5A,$5A,$5A,$59,$59,$58,$57,$55,$53,$51,$4F,$4D,$4A
	DC.B	$47,$45,$41,$3E,$3B,$38,$34,$31,$2D,$29,$26,$22,$1F,$1C,$19,$15
	DC.B	$13,$10,$D,$B,$9,$7,$5,$3,$2,$1,$1,$0,$0,$0,$1,$1,$2,$3,$5,$7,$9
	DC.B	$B,$D,$10,$13,$15,$19,$1C,$1F,$22,$26,$29,$FF
PAUSE:	DC.B	0
SINMODULO:	DC.B	0
	EVEN
MFC:	MOVE.B	#4,COUNTDOWN
	CLR.W	SCROLLPLANE+40
	CLR.W	SCROLLPLANE+82
	MOVE.L	#SCROLLPLANE+124,A1
	BSR	CHARADDRESS
	MOVEQ	#15,D0
zONKIN:	MOVE.W	(A0),(A1)
	LEA	40(A0),A0
	LEA	42(A1),A1
	DBF	D0,zONKIN
	RTS
CHARADDRESS:
	MOVE.L	MESPTR,A0
	MOVEQ	#0,D0
	MOVE.L	D0,D1
	MOVE.L	D0,D2
	MOVE.B	(A0)+,D0
	CMP.B	#$0A,D0
	BNE	WIzY
	MOVE.B	#32,D0
WIzY:	CMP.B	#255,D0
	BNE	WAzY
	MOVE.L	#MESSAGE,A0
	MOVE.B	#32,D0
WAzY:	CMP.B	#254,D0
	BNE	WOzY
	MOVE.B	#32,D0
	MOVE.B	#$60,PAUSE
WOzY:	MOVE.L	A0,MESPTR
	SUB.B	#32,D0	
	MOVEQ	#0,D1
	DIVU	#20,D0				;	20 CHARS ON EACH LINE
	MOVE.B	D0,D1
	CLR.W	D0
	SWAP	D0
	MOVE.L	#FONTMAP,A0
	MULU	#640,D1
	ADD.L	D0,D0
	ADD.L	D0,A0
	ADD.L	D1,A0
	RTS
	EVEN
MESPTR:	DC.L	MESSAGE
MESSAGE:	;12345678900987654321
	DC.B	'  SLIPSTREAM ARE   ',254
	DC.B	'     KID VIDEO     ',254
	DC.B	'        POD        ',254
	DC.B	'       ANDI        ',254
	DC.B	'      DIGITS       ',254
	DC.B	'      KAPPA        ',254
	DC.B	'      DARKHO       ',254
	DC.B	'      DAMATT       ',254
	DC.B	'       AX          ',254
	DC.B	'      FANGS        ',254
	DC.B    '      BREN         ',254
	dc.b    '      MALLY        ',254
	DC.B    'CALL THE ABSOLUTE ZERO ON'
	DC.B    ' ENGLAND +44 0642 300501 RUNS UP TO 19200'
	DC.B    ' ON LINE 24 HOURS A DAY GREETINGS GO TO '
	DC.B    ' CRYSTAL SKID ROW QUARTEX MAG FIELDS' 
	DC.B    ' ANARCHY MAYHEM L.S.D THE MIGHTY DRUIDS '
	DC.B    ' ARCHAOS THE STEALTH MODESTY SCOOTER'
	DC.B    ' IPEC ELITE D-MOB DEFJAM ANTHROX ECSTASY'
	DC.B    ' SORRY IF IVE MISSED YOU BUT IM SO PISS OFF'
	DC.B    'ANY WAY SEE YOU POD OF SLIPSTREAM            '
	DC.B    '               WRAP                       '
	
	
	DC.B	'        WRAP        ',254
	DC.B	255
	EVEN
difference dcb.B	$2000,0



