AbsExecBase	EQU	4
OldOpenLibrary	EQU	-$198
CloseLibrary	EQU	-$19E

Text		EQU	-$3C
SetFont 	EQU	-$42
OpenFont	EQU	-$48
CloseFont	EQU	-$4E
SetSoftStyle	EQU	-$5A
InitRastPort	EQU	-$C6
Move		EQU	-$F0
SetDrMd 	EQU	-$162
InitBitMap	EQU	-$186
ScrollRaster	EQU	-$18C


	SECTION  segment0,CODE

	movem.l d1-d7/a0-a6,-(a7)
	move.l	#Start,$80.w
	trap	#0
	movem.l (a7)+,d1-d7/a0-a6
	moveq	#0,d0
	rts

Start	move	#$2700,sr
	lea	$7f000,a0
G1	clr.l	(a0)+
	cmpa.l	#$7ff00,a0
	bne.s	G1
	movea.l AbsExecBase.w,a6
	lea	GfxName(pc),a1
	jsr	OldOpenLibrary(a6)
	move.l	d0,GfxBase
	movea.l d0,a6
	lea	BitMap(pc),a0
	moveq	#1,d0
	move.l	#368,d1
	moveq	#8,d2
	jsr	InitBitMap(a6)
	move.l	#$7f02e,bm_Pl0
	lea	RastPrt(pc),a1
	jsr	InitRastPort(a6)

	move.l	#BitMap,rp_BM
	lea	TxtAttr(pc),a0
	jsr	OpenFont(a6)
	move.l	d0,TxtFont
	lea	RastPrt(pc),a1
	movea.l d0,a0
	jsr	SetFont(a6)

	moveq	#2,d0
	jsr	SetDrMd(a6)
	moveq	#2,d0
	moveq	#2,d1
	jsr	SetSoftStyle(a6)

	move.w	#$20,$dff096
	move.l	#CopList,$dff080
	clr.w	$dff088
	clr.l	$dff140
	clr.l	$dff144
	move.w	#$8100,$dff096

Main	cmpi.b	#0,$dff006
	bne.s	Main
	btst	#0,$dff005
	bne.s	Main
	bsr.s	E2
	btst	#6,$bfe001
	bne.s	Main

	movea.l TxtFont(pc),a1
	jsr	CloseFont(a6)
	movea.l GfxBase(pc),a1
	move.l	$26(a1),$dff080
	clr.w	$dff088
	movea.l AbsExecBase.w,a6
	jsr	CloseLibrary(a6)
	move.w	#$8020,$dff096
	move.w	#$100,$dff096
	move	#$2000,sr
	rte

E2	btst	#2,$dff016
	beq	E8
	tst.w	Counter
	beq.s	E3
	subq.w	#1,Counter
	bra	E8

E3	movea.l GfxBase(pc),a6
	lea	RastPrt(pc),a1
	moveq	#3,d0
	moveq	#0,d1
	moveq	#0,d2
	moveq	#0,d3
	move.w	#367,d4
	moveq	#7,d5
	jsr	ScrollRaster(a6)
	subq.w	#3,ScDelay
	bpl	E8
	move.w	#8,ScDelay
E4	movea.l ScrlPtr(pc),a0
	move.b	(a0),d0

	cmpi.b	#'$',d0
	bne.s	E5
	moveq	#0,d0
	move.b	1(a0),d0
	subi.w	#'0',d0
	mulu	#50,d0
	move.w	d0,Counter
	addq.l	#2,ScrlPtr
	bra.s	E4

E5	cmpi.b	#'[',d0
	bne.s	E6
	moveq	#0,d0
	move.b	1(a0),d0
	subi.b	#'0',d0
	lea	RastPrt(pc),a1
	jsr	SetDrMd(a6)
	addq.l	#2,ScrlPtr
	bra.s	E4

E6	cmpi.b	#']',d0
	bne.s	E7
	move.b	1(a0),d0
	subi.b	#'0',d0
	move.b	d0,rpMask
	addq.l	#2,ScrlPtr
	bra	E4

E7	lea	RastPrt(pc),a1
	move.l	#352,d0
	moveq	#6,d1
	jsr	Move(a6)
	movea.l ScrlPtr(pc),a0
	moveq	#1,d0
	jsr	Text(a6)
	addq.l	#1,ScrlPtr
	cmpi.l	#ScrollEnd,ScrlPtr
	bne.s	E8
	move.l	#ScrollText,ScrlPtr
E8	movea.l CopPtr(pc),a2
	movea.l OffPtr(pc),a0
	moveq	#0,d0
	move.b	(a0),d0
	addi.w	#$2d,d0
	lea	$3c(a2),a0
	moveq	#0,d5
	bsr	E12
	addq.w	#1,d0
	move.l	#$1800aaa,(a0)+
	bsr	E12
	addq.w	#1,d0
	move.l	#$1800fff,(a0)+
	bsr	E12
	move.w	#$108,(a0)+
	move.w	#2,(a0)+
	addq.w	#1,d0
	moveq	#9,d3
	movea.l ClrPtr(pc),a1
E9	move.w	#$180,(a0)+
	move.w	(a1)+,(a0)+
	bsr	E12
	addq.w	#1,d0
	dbf	d3,E9
	move.l	#$01800fff,(a0)+
	bsr	E12
	move.w	#$108,(a0)+
	move.w	#-$2c,(a0)+
	addq.w	#1,d0
	move.l	#$1800aaa,(a0)+
	bsr.s	E12
	addq.w	#1,d0
	move.l	#$1800000,(a0)+
	bsr.s	E12
	move.l	#$f911fffe,(a0)+
	move.l	#$01800aa0,(a0)+
	move.l	#$fa11fffe,(a0)+
	move.l	#$01800000,(a0)+
	move.l	#$fffffffe,(a0)+
	addq.l	#1,OffPtr
	cmpi.l	#ClrTbl,OffPtr
	bne.s	E10
	move.l	#Offsets,OffPtr
E10	move.l	CopPtr(pc),$dff080
	bsr.s	FlipCpr
	addq.l	#2,ClrPtr
	cmpi.l	#ClrEnd,ClrPtr
	bne.s	E11
	move.l	#ClrTbl,ClrPtr
E11	rts

E12	move.w	d0,d1		; copper wait maker?
	lsl.l	#8,d1
	ori.w	#$11,d1
	move.w	d1,(a0)+
	move.w	#-2,(a0)+
	rts

FlipCpr cmpi.l	#CopList,CopPtr
	bne.s	FlipBk
	move.l	#Copp2,CopPtr
	rts

FlipBk	move.l	#CopList,CopPtr
	rts

; [#	Mask
; ]#	DrawMode 0=normal/1=underline/2=bold/4=italic
; $#	stop (secs)

ScrollText
	dc.b	'      Spreadpoint -- DefJam -- C.C.S     $2'
	dc.b	'   present:               ]6Nightdawn +]2              $3'
	dc.b	'     Cracked by MnemoTroN          $1'
	dc.b	'      To contact us, write to:   '
	dc.b	'[6PLK 079081 C, 2820 Bremen 70, F.R.G.[2  $5'
	dc.b	'                               '
	dc.b	'Echoing hellos rush to:        '
	dc.b	'Accession,  Aces,  Alpha Flight,  Antiriads,  Avenger,  '
	dc.b	'Bamiga Sector One,  Cosmos,  D.O.C,  Double Density Crew,  '
	dc.b	'Exceptions,  Freestyle U.K.,  High Quality Crackings,  '
	dc.b	'Megapower,  No Name Team,  Northstar and Silents,  Oracle,  '
	dc.b	'Piranhas,  Prophets AG,  Quartex,  Red Sector,  Scoopex,  '
	dc.b	'Supply Team,  The Band,  Thorax,  Threat,  Trilogy,  '
	dc.b	'Tristar,  TSK-Crew and Accumulators,  Vision,  '
	dc.b	'Vision Factory and Bencor Brothers,'
	dc.b	'  World of Wonders.                       '
	dc.b	'                       Remember:  our next exciting crack '
	dc.b	'will be available from your spreader soon !'
	dc.b	'                                                        ',0
ScrollEnd
	ds.w	0

ScrlPtr dc.l	ScrollText
ScDelay dc.w	8
OffPtr	dc.l	Offsets
CopPtr	dc.l	CopList
ClrPtr	dc.l	ClrTbl

GfxName dc.b	'graphics.library',0
	ds.w	0
GfxBase dc.l	0
RastPrt dc.l	0

rp_BM	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
rpMask	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
BitMap	dc.l	-1,-1
bm_Pl0	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
Counter dc.w	0
TxtFont dc.l	0
TxtAttr dc.l	TpzName
	dc.w	8,0
TpzName dc.b	'topaz.font',0
	ds.w	0

CopList dc.w	$08e,$2971
	dc.w	$090,$29d1
	dc.w	$092,$0030
	dc.w	$094,$00d8
	dc.w	$180,$000,$182,$fff
	dc.w	$108,$ffd4
	dc.w	$0e0,7,$0e2,$f000
	dc.w	$104,0
	dc.w	$100,$1200
	dc.w	$2a11,$fffe,$180,$a00
	dc.w	$2b11,$fffe,$180,$000
	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

Copp2	dc.w	$08e,$2971
	dc.w	$090,$29d1
	dc.w	$092,$0030
	dc.w	$094,$00d8
	dc.w	$180,$000,$182,$fff
	dc.w	$108,$ffd4
	dc.w	$0e0,7,$0e2,$f000
	dc.w	$104,0
	dc.w	$100,$1200
	dc.w	$2a11,$fffe,$180,$a00
	dc.w	$2b11,$fffe,$180,$000
	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	dc.l	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

Offsets dc.b	$5f,$65,$6c,$72,$79,$7f,$85,$8b,$91,$96,$9c,$a0,$a5,$a9,$ad
	dc.b	$b1,$b4,$b7,$b9,$bb,$bc,$bd,$bd,$bd,$bd,$bc,$bb,$b9,$b7,$b4
	dc.b	$b1,$ad,$a9,$a5,$a0,$9c,$96,$91,$8b,$85,$7f,$79,$72,$6c,$65
	dc.b	$5e,$58,$51,$4b,$44,$3e,$38,$32,$2c,$27,$21,$1d,$18,$14,$10
	dc.b	$0c,$09,$06,$04,$02,$01,$00,$00,$00,$00,$01,$02,$04,$06,$09
	dc.b	$0c,$10,$14,$18,$1d,$21,$27,$2c,$32,$38,$3e,$44,$4b,$51,$58

ClrTbl	dc.w	$00f,$10e,$20d,$30c,$40b,$50a,$609,$708,$807,$906,$a05,$b04
	dc.w	$c03,$d02,$e01,$f00,$e01,$d02,$c03,$b04,$a05,$906,$807,$708
	dc.w	$609,$50a,$40b,$30c,$20d,$10e
ClrEnd	dc.w	$00f,$10e,$20d

	END
