*** Code de Bootblock: UTILITY BOOT 6.0 (BY MARC OF SLIPSTREAM)
* an old (OS 1.3 only) utility boot...
* just to show you what you SHOULD NOT do!!!

Start:
	move.l	4.w,a6
LB_000C
	MOVEM.L	D0-D7/A1-A6,-(A7)
;	MOVE.W	#$0009,$001C(A1)
;	CLR.L	$0024(A1)
;	JSR	-$01C8(A6)		;DoIo() - motor off
	CMPI.W	#$0008,$003E(A6)
	BNE.B	LB_002C
	TST.L	$004E(A6)
	BEQ.B	LB_0036
LB_002C	LEA	LB_033E(PC),A1
	MOVE.L	#' ON ',(A1)
LB_0036	CLR.L	D0
	LEA	dskname(PC),A1
	JSR	-$01F2(A6)	;OpenResource()
	MOVE.L	D0,A0
	LEA	$0034(A0),A0
	TST.L	(A0)+
	BEQ.B	LB_0052
	TST.L	(A0)+
	BEQ.B	LB_0052
	TST.L	(A0)+
	BNE.B	LB_005C
LB_0052	LEA	LB_032E(PC),A1
	MOVE.L	#'ON  ',(A1)
LB_005C
	lea	gfxname(pc),a1
	jsr	-408(a6)
	move.l	d0,a6
	MOVE.L	50(A6),-(A7)
	MOVE.L	A6,-(A7)
	MOVE.W	#$00A0,$00DFF096
	LEA	CopList(PC),A1
	MOVE.L	A1,50(A6)
	LEA	$00070000,A1
LB_007C	CLR.L	(A1)+
	CMPA.L	#$0007F000,D1
	BNE.B	LB_007C
	MOVE.L	(A7),A6
	LEA	$00041000,A0
	MOVEQ	#$01,D0		;Depth
	MOVE	#768,D1		;Width
	MOVE	#256,D2		;Height
	JSR	-$0186(A6)	;InitBitMap()
	MOVE.L	#$00070000,$00041008
	LEA	$00041100,A1
	JSR	-$00C6(A6)	;InitRastPort()
	MOVE.L	#$00041000,$00041104
;	LEA	$00041100,A1
;	MOVEQ	#$01,D0
;	JSR	-$0156(A6)	;SetAPen
	LEA	LB_0302(PC),A5
LB_00CE	LEA	$00041100,A1
	CLR.L	D4
	MOVEQ	#50,D3
	MOVE.B	(A5)+,D4
	BEQ.B	LB_0106
	LEA	$00041100,A1
	MOVE	D3,D0
	MOVE	D4,D1
	JSR	-$00F0(A6)	;Move()
	LEA	$00041100,A1
	MOVE.L	A5,A0
	MOVEQ	#$1F,D0
	JSR	-$003C(A6)	;Text()
	LEA	$001F(A5),A5
	BRA.B	LB_00CE
LB_0106	MOVE.W	#$8380,$00DFF096
	CLR.B	$00BFEC01
	MOVE.L	4.W,A6
	MOVE.L	#$0004A000,D4
	BSR.B	LB_0146
	BEQ.B	LB_0150
	TST.L	$002A(A6)
	BNE.B	LB_0134
	TST.L	$002E(A6)
	BNE.B	LB_0134
	TST.L	$022A(A6)
	BEQ.B	LB_015A
LB_0134	MOVE.W	D4,$00DFF180
	DBF	D4,LB_0134
LB_013E	CLR.L	$0026(A6)
	BRA.W	LB_026A
LB_0146	BTST	#$02,$00DFF016
	RTS	
LB_0150	LEA	LB_02FC(PC),A0
	MOVE.B	$0000000C,(A0)
LB_015A	SUBQ.L	#1,D4
	BEQ.B	LB_01B4
	BTST	#$06,$00BFE001
	BEQ.B	LB_01B4
	BSR.B	LB_0146
	BNE.B	LB_017C
	SUBQ.L	#1,D3
	BNE.B	LB_017C
	MOVE.W	#$1666,D3
	BCHG	#$01,$00BFE001
LB_017C	MOVE.B	$00BFEC01,D0
	NOT.B	D0
	CMP.W	#$00A0,D0
	BEQ.W	LB_0252
	CMP.B	#$A2,D0
	BEQ.W	LB_0222
	CMP.B	#$A4,D0
	BEQ.W	LB_026A
	CMP.B	#$A6,D0
	BEQ.B	LB_013E
	CMP.B	#$A8,D0
	BEQ.B	LB_013E
	CMP.B	#$AA,D0
	BEQ.B	LB_01D8
	BRA.B	LB_015A
LB_01B4	BSR.B	LB_01C8
*** boot system
	LEA	dosname(PC),A1
	JSR	-96(A6)
	MOVE.L	D0,A0
	MOVE.L	22(A0),A0
	MOVEQ	#0,D0
	RTS	
LB_01C8	MOVE.L	(A7)+,A0
	MOVE.L	(A7)+,A6
	MOVE.L	(A7)+,50(A6)		;old coplist
	MOVEM.L	(A7)+,D0-D7/A1-A6
	MOVE.L	A0,-(A7)
	RTS	
LB_01D8	BSR.B	LB_01C8
	LEA	LB_032E(PC),A0
	MOVE.L	#'OFF ',(A0)
	LEA	LB_033E(PC),A0
	MOVE.L	#' OFF',(A0)
	LEA	LB_02FC(PC),A0
	CLR.W	(A0)
*** Install bootblock
	MOVE.W	#$0003,$001C(A1)
	BSR.B	LB_0208
	MOVE.W	#$0004,$001C(A1)
	BSR.B	LB_0208
	BRA.W	LB_000C
LB_0208	LEA	Start(PC),A0
	MOVE.L	A0,$0028(A1)
	MOVE.L	#$00000400,$0024(A1)
	CLR.L	$002C(A1)
	JMP	-$01C8(A6)
LB_0222	MOVE.L	A6,A0
	LEA	$00FC0280,A5
LB_022A	CMPI.W	#$21FC,-(A5)
	BNE.B	LB_022A
	SUBA.L	A4,A4
	LEA	$00000676,A6
	LEA	$00080000,A3
	LEA	$00DFF096,A1
	MOVE.L	#$7FFF7FFF,D0
	MOVE.L	D0,(A1)+
	MOVE.L	D0,(A1)+
	JMP	-$001E(A0)
LB_0252	LEA	$0007F000,A1
	LEA	LB_0274(PC),A0
	MOVE.L	A1,$002E(A6)
	MOVEQ	#$1F,D0
LB_0262	MOVE.L	(A0)+,(A1)+
	DBF	D0,LB_0262
	BSR.B	LB_0286
LB_026A	LEA	$00FC00D0,A5
	JMP	-$001E(A6)
LB_0274	CLR.L	$002E(A6)
	LEA	LB_029A(PC),A0
	MOVE.L	-$0064(A6),$0040(A0)
	MOVE.L	A0,-$0064(A6)
LB_0286	LEA	$0022(A6),A0
	CLR.W	D0
	MOVEQ	#$17,D1
LB_028E	ADD.W	(A0)+,D0
	DBF	D1,LB_028E
	NOT.W	D0
	MOVE.W	D0,(A0)
	RTS	
LB_029A	CMPI.W	#$6469,$001A(A1)
	BNE.B	LB_02D8
	MOVEM.L	D0-A0/A2-A5,-(A7)
	LEA	LB_02E2(PC),A0
	MOVE.L	A0,D0
	MOVE.W	#$00FF,D2
LB_02B0	MOVE.W	(A1)+,D1
	CMP.W	#$0005,D1
	BNE.B	LB_02BA
	ADDQ.W	#1,D1
LB_02BA	MOVE.W	D1,(A0)+
	DBF	D2,LB_02B0
	MOVE.L	-$01EA(A1),A2
	SUBA.L	A1,A2
	ADDA.L	A0,A2
	MOVE.L	A2,-$01EA(A0)
	MOVE.L	D0,A1
	MOVEM.L	(A7)+,D0-A0/A2-A5
	MOVE.L	CopList(PC),-$0064(A6)
LB_02D8
	dc.w	$4ef9
CopList:
	DC.w	$0100,$1200,$0092,$0020
LB_02E2	DC.w	$0094,$00D8,$008E,$3000
	DC.w	$0090,$30FF,$00E0,$0007
	DC.w	$00E2,$0870,$0182,$0FFF
	DC.w	$0180
LB_02FC	dc.w	$0000,$FFFF,$FFFE
dskname	DC.B	'disk.resource',0
gfxname	dc.b	'graphics.library',0
dosname	DC.B	'dos.library',0
	even
LB_0302
	DC.B	' VIRUS KILLER/UTILITY BOOT  V6.0-DRIVES ARE '
LB_032E
	DC.B	'OFF    MEMORY IS'
LB_033E
	DC.B	' OFF?F1 DRIVES OFF     F2 MEMORY OFFIF3 DRIVES O'
	DC.B	'N      F4 MEMORY ON SF5 HARD RESET   F6 INSTALL '
	DC.B	'BOOTfL.MOUSE EXIT     R.MOUSE FILTERr  CODED BY '
	DC.B	'MARC OF SLIPSTREAM  ',0
	DC.B	0
