start:
	bra	sprong
tekst:	dc.b	' This bootblock '
	dc.b	'  protect your  '
	dc.b	' AMIGA  against '
	dc.b	'   BYTEBANDIT   '
	even
sprong:	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.l   bootprog		; bootprogramma uitvoeren
	movem.l (a7)+,d0-d7/a0-a6	; registers terughalen
	move.l  4,a6			; ExecBase -> A6
	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
bootprog:

	lea	resident(pc),a0	;resident structure + programma
	lea	$7f300,a1	;copieeren naar $7f300
	move.l	#length,d0
copy:
	move.b	(a0)+,(a1)+
	dbra	d0,copy
	move.l	$4,a6
	move.l	550(a6),d0	;d0 = pointer naar resident list
	beq	goed		;Geen resident list dus geen virus
	cmpi	#$7f300,d0
	beq	end		;resident prog is antibytebandit prog
	lea	alert(pc),a0	;naar end -> 1 keer geluid
	bsr	alertprog	;melding dat er een ander resident
				;programma was
goed:	move.l	$4,a6	
	move.l	#$7f300,550(a6)	;nieuw resident programmma
	jsr	-612(a6)	;checksum goedzetten zodat res. prog
	move.l	d0,554(a6)	;na een reset niet verloren gaat.
	bra.s	resprog		;resident prog. uitvoeren 
end:	rts

resident:
	dc.l	$7f308	;begin resident strukture
	dc.l	$0	;end resident strukture 
	dc.w	$4afc	;MagicNumber
	dc.l	$7f308	;begin resident strukture (kontrole)
	dc.l	$7f322	;einde resident strukture
	dc.w	$0121	;flags & version
	dc.w	$00f6	;type & priority
	dc.l	$0
	dc.l	$0		
	dc.l	$7f322	;start adres resident programmma
	
resprog:
	move.l	$4,a1		;prog jmp $fc12fc in exec struct 
	lea	568(a1),a1	;zetten
	move.w	#$4ef9,(a1)
	move.l	148(a6),2(a1)
	move.l	$4,a6
	move.l	a1,148(a6)	;int 5 naar nieuw prog laten wijzen	


;Controle SCA-VIRUS

	cmpi.l	#0,46(a6)	;Is CoolCap <> 0
	beq	sound
	clr.l	46(a6)		;Clear CoolCap
	lea	34(a6),a0
	clr.w	d0		;bereken checksum van execbase
	moveq	#$17,d1
chksum:	add.w	(a0)+,d0
	dbra	d1,chksum
	not.w	d0
	move.w	d0,(a0)
	move.l	$7efde,-454(a6);
	lea	alert2(pc),a0
	bsr	alertprog

sound:
	move.w	#$000f,$dff180	;kleur op rood zetten
	move.w	#$000f,$dff182
 	move	#2,$dff0a4	;start geluid routine
	lea	wave(pc),a1	
	move.l	a1,$dff0a0
	move	#$440,$dff0a6
	move	#$3f,$dff0a8
	move	#$8201,$dff096
	lea	ton(pc),a0
tonp:	move	#$8000,d1
pause:	nop
	dbf	d1,pause
	move	(a0)+,$dff0a6
	bne	tonp
	move.w	#$0001,$dff096		;
	rts

ton:	dc.w	440,1200,850,1088,0
	even
wave:	dc.b	127,-127
	even

alertprog:	;a0 moet alert struct bevatten
	move.l	a0,-(sp)
	lea	intuitionname(pc),a1	
	clr.l	d0	
	jsr	-$228(a6)	;open intuition library
	move.l	d0,a6
	move.l	#60,d1		;hoogte van alert
	clr.l	d0
	move.l	(sp)+,a0
	jsr	-90(a6)		;display alert
	move.l	a6,a1
	move.l	$4,a6
	jsr	-414(a6)	;CloseLibrary
	rts
IntuitionName:
	dc.b	'intuition.library',0
	even
Alert2:
	dc.w	10
	dc.b	20
	dc.b	'Something wonderful has fiddled with the'
	dc.b	' CoolCapture() pointer ',0
	
	dc.b	1
	dc.w	70
	dc.b	30
	dc.b	'(Probably the SCA-Virus) and has been eliminated.',0
	dc.b	1
	dc.w	85
	dc.b	46
	dc.b	'*** Thanks to the ASS VIRUS PROTECTOR V1.0 ***',0
	dc.b	0

	even	
endres:
length:	= endres - resident	


Alert:
	dc.w	15
	dc.b	20
	dc.b	'Something wonderful has fiddled with the'
	dc.b	' Resident() pointer',0
	
	dc.b	1
	dc.w	35
	dc.b	30
	dc.b	'(Probably the ByteBandit-Virus) and has been'
	dc.b 	' eliminated. ',0
	dc.b	1
	dc.w	85
	dc.b	46
	dc.b	'*** Thanks to the ASS VIRUS PROTECTOR V1.0 ***',0
	dc.b	0
