******************************
*  STARTUP for intro / demo  *
* written by Shin of lkr/usl *
******************************
	include graphics/graphics_lib.i
	include hardware/custom.i
	include	exec/exec_lib.i
	include	exec/execbase.i
STARTUP		MACRO
	movem.l	d1-d7/a0-a6,-(a7)
	move.l	4.w,a6
	move.w	AttnFlags(a6),d0	exit if CPU not 68020 or greate
	asr.w	#1,d0
	beq	BadExe
	jsr	_LVOForbid(a6)
	move.l	#gfxname,a1
	moveq	#0,d0
	jsr	_LVOOpenLibrary(a6)
	tst.l	d0
	beq	NoOpEn
	move.l	d0,gfxbase
	move.l	d0,a6
	move.l	$22(a6),pushview
	sub.l	a1,a1
	jsr	_LVOLoadView(a6)
	jsr	_LVOWaitTOF(a6)
	jsr	_LVOWaitTOF(a6)
	jsr	_LVOOwnBlitter(a6)
	jsr	_LVOWaitBlit(a6)
	lea	$dff000,a5
	move.w	dmaconr(a5),pushdma
	move.w	intenar(a5),pushint
	move.w	#$7fff,dmacon(a5)
	move.l	#$7fff7fff,intena(a5)
	lea	setvbr,a5
	CALLEXEC	Supervisor
	move.l	d0,a5
	move.l	d0,vbrbase
	move.l	$6c(a5),intadr3
	move.l	#server,$6c(a5)
		ENDM

STARTEND	MACRO
	move.l  gfxbase,a6
	jsr	_LVOWaitBlit(a6)
	lea	$dff000,a5
	move.w	#$7fff,dmacon(a5)
	move.l	#$7fff7fff,intena(a5)
	move.l	gfxbase,a0
	move.l	$26(a0),cop1lc(a5)
	move.l	$32(a0),cop2lc(a5)
	move.w	copjmp1(a5),d0
	move.w	pushdma,d0
	or.w	#$8000,d0
	move.w	d0,dmacon(a5)
	move.w	pushint(pc),d0
	or.w	#$c000,d0
	move.w	#$7fff,intreq(a5)
	move.w	d0,intena(a5)
	move.l  pushview(pc),a1
	move.l  gfxbase(pc),a6
	jsr     _LVOLoadView(a6)
	jsr	_LVODisownBlitter(a6)
	move.l	vbrbase(pc),a5
	move.l	intadr3(pc),$6c(a5)
NoOpEn	CALLEXEC	Permit
BadExe	movem.l	(a7)+,d1-d7/a0-a6
	clr.l	d0
	rts
setvbr	movec.l	VBR,d0
	rte
pushview	dc.l	0
vbrbase		dc.l	0
pushdma		dc.w	0
intadr3		dc.l	0
pushint		dc.w	0
gfxbase		dc.l	0
gfxname		dc.b	"graphics.library",0,0
	cnop	0,8
		ENDM