start:
	movem.l d0-d7/a0-a6,-(sp)	; save registers
        move.w  #9,$1c(a1)		; drive motor afzetten
        clr.l   $24(a1)
        move.l  4,a6
	jsr     -$1c8(a6)
	bsr.s   bootprog		; bootprogramma uitvoeren
	movem.l (a7)+,d0-d7/a0-a6	; registers terughalen
	move.l  4,a6			; nog wat rommel
	lea     DosName(pc),a1
	jsr     -$60(a6)
	move.l  d0,a0
	move.l  $16(a0),a0
	moveq	#0,d0
	rts
DosName:
	dc.b	'dos.library',0
	even
einde:

BootProg:

	move.l	$4,a6			;open graphics library
	lea	graphicsname(pc),a1	;to get copperlist
	jsr	-408(a6)
	move.l	d0,a6			;A6 = GfxBase
	move.l	$32(a6),-(sp)		;coppersave op stack
	lea	NewCopper(pc),a1
	move.l	a1,$32(a6)
	
	move.l	#$dff000,a4
	move.w	#$83C0,$96(a4)		;DMACON
	move.l	#$60000,a1
	move.l	#$10000,d0
	move.l	#1,d1
	jsr	-300(a6)

	move.l	#$50000,a0		;TextAttr
	lea	FontName(pc),a1		;FontPointer goed zetten
	move.l	a1,(a0)
	move.l	#$00080000,4(a0)	;Width, flags, style
	jsr	-72(a6)			;OpenFont
	move.l	d0,a0
	move.l	$22(a0),$50000-4	;a3 -> CharData
	move.w	$26(a0),d5		;d5  = modulo
	move.l	d0,a1			;te sluiten font in a1
	jsr	-78(a6)			;CloseFont

	lea	ScrollText(PC),a5
Mouse:
	clr.l	d0
	move.b	(a5)+,d0
	bne.s	NOT_EndOfScroll

	lea	scrolltext(PC),a5
	move.b	(a5)+,d0

NOT_EndOfScroll:
	move.l	$50000-4,a3
	subi.l	#$20,d0		;karakter = karakter - $20
	add.l	d0,a3		;a3 -> eerste data van karakter


	BSR.s	SetPixels

	btst	#6,$bfe001
	bne.s	mouse

	move.l	(sp)+,$32(a6)	;a6 = GfxBase, a4 = coppersave
	move.l	a6,a1
	move.l	$4,a6
	jsr	-414(a6)	;CloseLibrary (Graphics.library)
	RTS

SetPixels:
	move.w	#7,d7
	move.w	#7,d0
OuterLoop:
	move.l	#31,d1
	move.l	#$6032c,a0
	move.l	d0,d2
	mulu	#$600,d2
	add.l	d2,a0
WriteLoop:
	move.w	d0,d3
	mulu	d5,d3
	MOVE.b	0(A3,D3),D6
	BTST	D7,D6
	beq.s	No_Pixel
	move.l	#$ffffffff,(a0)
	bra.s	PixelEnd
No_Pixel:
	move.l	#$00000000,(a0)
pixelEnd:
	add.l	#48,a0
	dbra	d1,WriteLoop
	dbra	d0,OuterLoop 
	lea	Bpl0LO(PC),a2
	move.w	#$0000,(a2)
	jsr	-270(a6)
	MOVE.L	#$00060302,$50(a4)	;SOURCE ADDRES
	MOVE.L	#$00068300,$54(a4)	;DEST	ADDRES
	CLR.L	$64(a4)	;MODULOS
	MOVE.L	#$09F00000,$40(a4)	;CONTROL REGS
	MOVE.W	#$3c18,$58(a4)		;TRANFER 256X384 PIXELS
	jsr	-228(a6)

	move.w	#$8000,(a2)
	jsr	-270(a6)

	MOVE.L	#$00068302,$50(a4)	;SOURCE ADDRES
	MOVE.L	#$00060300,$54(a4)	;DEST	ADDRES
	CLR.L	$64(a4)			;MODULOS
	MOVE.L	#$09F00000,$40(a4)	;CONTROL REGS
	MOVE.W	#$3c18,$DFF058		;TRANFER 6X1024 PIXELS

	jsr	-228(a6)

	dbra	d7,outerloop
	RTS

graphicsname:	dc.b 	'graphics.library'

NewCopper:

	dc.w	$00e0,$0006,$00e2
Bpl0LO:	dc.w	$0000			;bitplanestart
	dc.w	$0100,$1200		;2planes

	dc.w	$008e,$2871		;diwStart	
	dc.w	$0090,$28d1		;DiwStop
	dc.w	$0092,$0030		;DdfStart
	dc.w	$0094,$00e0		;DdfStop
	dc.w	$0108,$0004		;Modulos
	dc.w	$010a,$0004

	dc.w	$0180,$0000,$0182,$0f00	;colors
	dc.w	$0184,$00f0,$0186,$0000

	dc.w	$2801,$ff00,$0180,$0fff
	dc.w	$4801,$ff00,$0180,$0eef
	dc.w	$6801,$ff00,$0180,$0ddf
	dc.w	$8801,$ff00,$0180,$0bbf
	dc.w	$a801,$ff00,$0180,$099f
	dc.w	$c801,$ff00,$0180,$077f
	dc.w	$e801,$ff00,$0180,$055f
	dc.w	$ffe1,$fffe
	dc.w	$0801,$ff00,$0180,$022f
	dc.w	$2801,$ff00,$0180,$0000
	dc.w	$fffe,$ffff

FontName:
	dc.b	'topaz.font',0

Scrolltext:

dc.b	'This is a SYSTEM Z production.....'
dc.b	'Deze test laat zien hoeveel tekst er in deze bootblok past '
dc.b	'Met deze tekst routines kunnen normale tekens gebruikt '
dc.b	'worden maar ook deze #%^&*(!@){}[]:"><?/.,'

dc.b	'GREETINGS TO: NORTHSTAR, JUNGLE COMMAND, THE POWERSLAVES, '
dc.b	'BLURP!!, THE INFERNAL DUO ENZ ',0
e:
