Start:	BRA	START2

	DC.B	'ASS-VIRUSKILLER2'
	dc.b    'Contact us: call'
	dc.b    ' 04998-96455 or '
	dc.b    ' 04997-71841    '
	dc.b	' Holland  '

START2:	LEA	Start(PC),a0	
	LEA	$7F400,A1
	MOVE.W	#$100,D0
COPY:	MOVE.L	(A0)+,(A1)+
	DBRA	D0,COPY

	MOVE.L	$4,A6
	CLR.L	46(A6)
	MOVE.L	#$7F40C+RESPOINTER,550(A6)
	JSR	-612(A6)
	MOVE.L	D0,554(A6)

	LEA	DOSNAME(PC),A1
	JSR	-96(A6)
	MOVE.L	D0,A0
	MOVE.L	22(A0),A0
	MOVEQ	#$0,D0
	RTS			;EINDE BOOT PROCES
DOSNAME:
	DC.B	'dos.library',0
RESPROG:
	movem.l	d0-d7/a0-a6,-(sp)
	lea	$7f400,a0
	move.l	4(a0),d2
	move.w	#$ff,d1
	clr.l	d0
chksumloop:
	add.l	(a0)+,d0
	bcc	verder
	addq.l	#1,d0
verder:	dbra	d1,chksumloop
	not.l	d0
	move.l	$7f404,d1
	add.l	d0,d1
	bcc.l	ok3
	addq.l	#$1,d1
ok3:	cmp.l	d1,d2
	beq	sound	;chksum klopt, Doorgaan
	lea	Alert3(pc),a0
	bsr	AlertProg	;checksum klopt niet

	clr.l	550(a6)	;resident uitschakelen 
	jsr	-612(a6)
	move.l	d0,554(a6)
	movem.l	(sp)+,d0-d7/a0-a6
	rts			

	
RESPOINTER:
	DC.L	$7F40C+RESSTRUCT
	DC.L	0
RESSTRUCT:
	DC.W	$4AFC
	DC.L	$7F40C+RESSTRUCT
	DC.L	$7F40C+26+RESSTRUCT
	DC.B	$01
	DC.B	$21
	DC.B	$00
	DC.B	$F6
	DC.L	$7F40C+18+RESSTRUCT
	DC.L	0
	DC.L	$7F40C+RESPROG
		


sound:
	move.w	#$08cf,$dff180	;kleur op CYAAN zetten
	move.w	#$08cf,$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		;

	MOVE.L	$4,A6
	CMPI.L	#$7f40c+NewDoIO,-454(A6);WIJST DOIO NAAR NEWDOIO ?
	BEQ.S	OK		;JA
	MOVE.L	-454(A6),$7F40C+OldDoIO+2	;NEE
	MOVE.L	#$7F40C+NewDoIO,-454(A6)
OK:	movem.l	(sp)+,d0-d7/a0-a6
	RTS
ton:	dc.w	440,1200,850,1088,0
	
wave:	dc.b	127,-127
		

NewDoIO:
	CMPI.L	#$400,36(A1)
	BNE.S	NOBB		;GEEN BOOTBLOK
	CMPA.L	40(A1),A4	;AANGEROEPEN DOOR BOOT-ROUTINE
	BEQ	OK2		;JA
NOBB:	JMP	$7F40C+OldDoIO
OK2:	CLR.L	(A4)
	JSR	$7F40C+OldDoIO
	CMPI.L	#$444f5300,(A4)
	BNE	Einde
	MOVEM.L	D0-D7/A0-A6,-(SP)
	MOVE.L	$7F40C+OldDoIO+2,-454(A6)	;DOIO WEER IN ORGINELE
	CLR.L	$7F40C+OldDoIO+2		;STAAT BRENGEN
	CMPI.L	#$7EC00,18(A4)	;IS BOOT BLOCK SCA-VIRUS?
	BNE	VOLGENDE1	;NEE
	BSR	COPYBB		;VERANDER HUIDIGE BB DOOR DIT BB
	LEA	Alert1(PC),A0
	BSR	AlertProg
	TST.B	D0
	Beq	VOLGENDE1	;Rechter MUIS, DOE NIETS
	BSR	INSTALLBB	;SCHRIJF DIT BB OP DISK WEG
VOLGENDE1:
	CMPI.W	#$4AFC,368(A4)	;IS BOOT BLOCK BYTEBANDIT-VIRUS?
	BNE	VOLGENDE2
	BSR	COPYBB		;VERANDER HUIDIGE BB DOOR DIT BB
	LEA	Alert2(PC),A0
	BSR	AlertProg

	TST.B	D0
	BEQ	VOLGENDE2	;Rechter MUIS, DOE NIETS
	
	BSR	INSTALLBB


VOLGENDE2:
	CMPI.W	#$4AFC,$ea(A4)	;IS BOOT BLOCK VIRUSPROTECTOR 1.0?
	BNE	VOLGENDE3
	BSR	COPYBB		;VERANDER HUIDIGE BB DOOR DIT BB

VOLGENDE3:

	MOVEM.L	(SP)+,D0-D7/A0-A6
Einde:	RTS
	

AlertProg:	;a0 moet alert struct bevatten
	movem.l	D1-d7/a0-a6,-(sp)
	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	D0,-(SP)
	move.l	a6,a1
	move.l	$4,a6
	jsr	-414(a6)	;CloseLibrary
	MOVE.L	(SP)+,D0	
	movem.l	(sp)+,D1-d7/a0-a6
	rts
IntuitionName:
	dc.b	'intuition.library',0

COPYBB:				;COPIEER DIT BOOTBLOK NAAR A4.
	MOVE.L	A4,A3
	LEA	$7F400,A2
	MOVE.W	#$3FF,D0
CPYBB2:	MOVE.b	(A2)+,(A3)+
	DBRA	D0,CPYBB2
	RTS

INSTALLBB:
	MOVE.L	A1,A5
	MOVE.W	#$1,28(A1)
	JSR	-456(A6)
	MOVE.L	A5,A1
	MOVE.W	#$3,28(A1)	;WRITE COMMAND
	MOVE.L	#$400,36(A1)	;$400 BYTES
	MOVE.L	#$7f400,40(A1)	;BEGIN BOOTBLOK
	CLR.L	44(A1)		;ADRES 0 OP DISK
	JSR	-456(A6)
	MOVE.L	A5,A1	
	MOVE.W	#$4,28(A1)	;UPDATE COMMAND
	JSR	-456(A6)
	RTS



Alert2:
	dc.w	38
	dc.b	16
	dc.b	'Warning: This disk is infected with the '
	dc.b	'ByteBandit-Virus!',0
	dc.b	1
	dc.w	18
	dc.b	32
	dc.b	'Left MouseButton: Kill the Virus,'
	dc.b    ' Right MouseButton: Continue',0
	dc.b	0

	

Alert1:
	dc.w	52
	dc.b	16
	dc.b	'Warning: This disk is infected by the SCA-Virus',0
	dc.b	1
	dc.w	18
	dc.b	32
	dc.b	'Left MouseButton: Kill the Virus,'
	dc.b    ' Right MouseButton: Continue',0
	dc.b	0

	
Alert3:
	dc.w	50
	dc.b	32
	dc.b	'ASS VirusProtector has a checksum error.'
	dc.b	' Exiting System',0
	dc.b	0
	

OldDoIO:
	JMP	$00000000	;De nullen staan niet in het BB
				;Zodat er CheckSum error ontstaat 
				;Als hier iets anders komt te staan

	END	Start:
