*** Bootblock spécial: installe une interruption de niveau 3 (VBL)
* qui permet d'activer un MEMORY SEARCHER
* si on appuie sur les 2 boutons de la souris en mème temps

* Memory searcher bootblock. Not system friendly at all.

Start:
	lea	oldint(pc),a0
	MOVE.L	$6C.w,(a0)
	lea	myInt(pc),a0
	MOVE.L	a0,$6C.w

boot:	LEA	dosname(PC),A1
	MOVE.L	4.w,A6
	JSR	-96(A6)
	MOVE.L	D0,A0
	MOVE.L	22(A0),A0
	MOVEQ	#0,D0
	RTS	
myInt:
	MOVEM.L	D0-A6,-(A7)
	BTST	#6,$BFE001
	BNE.B	LB_0076
	BTST	#10,$DFF016
	BNE.B	LB_0076
LB_006A	BTST	#6,$BFE001
	BEQ.B	LB_006A
	BSR.B	LB_0082
LB_0076	MOVEM.L	(A7)+,D0-A6
	MOVE.L	oldint(pc),-(A7)
	RTS
LB_0082	lea	mytrap(pc),a0
	move.l	a0,$80.w
	TRAP	#0
	RTS
mytrap:
	lea	coplist(pc),a0
	MOVE.L	a0,$DFF080
	LEA	$7C000,A0
	MOVEq	#$59,D7
LB_00A4	CLR.L	(A0)+
	DBF	D7,LB_00A4
LB_00AA	CMP	#255,$DFF006
	BSR.W	LB_01D8
	BSR.W	LB_0152
	LEA	$0007C01B,A1
	MOVEQ	#0,D5
	MOVEQ	#0,D6
LB_00C4	BSR.W	LB_0214
	LEA	chrdat(pc),A0
	LSR.L	D5,D2
	LSR.L	D6,D2
	ANDI.L	#$0000000F,D2
	LSL.L	#3,D2
	ADDA.L	D2,A0
	BSR.B	LB_013C
	SUBQ.L	#1,A1
	CMP.B	#8,D5
	BEQ.B	LB_00F2
	ADDQ.L	#4,D5
	BRA.B	LB_00C4
LB_00F2	CMP.B	#8,D6
	BEQ.B	LB_0100
	ADDQ.L	#4,D6
	BRA.B	LB_00C4
LB_0100	BTST	#10,$DFF016
	BEQ.W	LB_025E
	BTST	#6,$BFE001
	BNE.B	LB_00AA
intend:
	LEA	gfxname(pc),A1
	MOVE.L	4.w,A6
	JSR	-$0198(A6)
	MOVE.L	D0,A6
	MOVE.L	38(A6),$DFF080
	MOVE	#$8020,$DFF096
	MOVEQ	#0,D0
	RTE	

LB_013C	MOVE.L	A1,-(A7)
	MOVEq	#7,D7
LB_0142	MOVE.B	(A0)+,(A1)
	ADDA.w	#40,A1
	DBF	D7,LB_0142
	MOVE.L	(A7)+,A1
	RTS	
LB_0152	MOVE.B	$DFF00B,D0
	MOVE.B	$00000001,D1
	MOVE.B	D0,$00000001
	CMP.B	D0,D1
	BEQ.B	LB_0202
	BHI.B	LB_0192
	MOVE.B	byte1(pc),D7
	CMP.B	byte0(pc),D7
	BNE.B	LB_01C4
	BSR.B	LB_0214
	SUBq.L	#2,D2
	clr.b	byte0
	BSR.B	LB_0224
	BRA.B	LB_01C4
LB_0192	tst.b	byte0
	BNE.B	LB_01B0
	BSR.B	LB_0214
	addq.l	#2,D2
	MOVE.B	byte1(pc),byte0
	BSR.B	LB_0224
LB_01B0	SUBq.b	#1,byte0
	MOVE.B	byte0(pc),mode
	RTS	
LB_01C4	ADDq.B	#1,byte0
	MOVE.B	byte0(pc),mode
	RTS	
LB_01D8	MOVE.B	$00DFF00A,D0
	MOVE.B	$00000000,D1
	MOVE.B	D0,$00000000
	CMP.B	D0,D1
	BMI.B	LB_0204
	BEQ.B	LB_0202
	BSR.B	LB_0214
	ADD.L	$0007EF4A,D2
	BSR.B	LB_0224
LB_0202	RTS	
LB_0204	BSR.B	LB_0214
	SUB.L	$0007EF4A,D2
	BSR.B	LB_0224
	RTS	
LB_0214	MOVE.W	$0007EF40,D2
	SWAP	D2
	MOVE.W	$0007EF44,D2
	RTS	
LB_0224	CMPI.L	#$00F00000,D2
	BHI.B	LB_024E
	CMPI.L	#$00080000,D2
	BMI.B	LB_023E
	SUBI.L	#$00080000,D2
LB_023E	MOVE.W	D2,$0007EF44
	SWAP	D2
	MOVE.W	D2,$0007EF40
	RTS	
LB_024E	NEG.L	D2
	MOVE.L	#$00080000,D3
	SUB.L	D2,D3
	MOVE.L	D3,D2
	BRA.B	LB_023E
LB_025E	CMPI.W	#$9200,$0007EF34
	BEQ.B	LB_0298
	MOVE.W	#$9200,$0007EF34
	MOVE.L	#$00000050,$0007EF4A
	MOVE.W	#$FFF0,$0007EF38
	MOVE.B	#$07,$0007EFD3
	MOVE.B	#$00,$0007EFD2
	BRA.B	LB_02BA
LB_0298	MOVE.W	#$1200,$0007EF34
	MOVE.L	#$00000028,$0007EF4A
	MOVE.W	#$FFF8,$0007EF38
	MOVE.B	#$0F,$0007EFD3
LB_02BA	BTST	#$0A,$00DFF016
	BEQ.B	LB_02BA
	BRA.W	LB_00AA

oldint:	dc.l	0
coplist:
 DC.w $0096,$0020,$008E,$2E81
 DC.w $0090,$2CC1,$0092,$0020
 DC.w $0094,$00D8,$0108,$FFF8
 DC.w $0102,$0000,$0180,$0000
 DC.w $2C07,$FFFE,$0180,$0CCC
 DC.w $2E07,$FFFE,$0180,$0777
 DC.w $0100,$1200,$00E0,$0007
 DC.w $00E2,$C000,$0182,$0000
 DC.w $3607,$FFFE,$0180,$0444
 DC.w $0100,$0200,$0182,$0FFF
 DC.w $3807,$FFFE,$0180,$0000
 DC.w $3A07,$FFFE,$0180,$0F00
 DC.w $3B07,$FFFE,$0180,$0000
 DC.w $0100,$9200,$0108,$FFF0
 DC.w $0102
 dc.b $00
mode:dc.b 00
 dc.w $00E0,$0000
 DC.w $00E2,$0000,$FFFF,$FFFE
chrdat:
	DC.B	$3C,$42,$42,$42,$42,$42,$42,$3C
	DC.B	$10,$30,$50,$10,$10,$10,$10,$38
	DC.B	$3E,$41,$81,$03,$0C,$30,$C0,$FF
	DC.B	$1E,$21,$21,$02,$02,$21,$21,$1E
	DC.B	$84,$84,$84,$84,$FF,$04,$04,$04
	DC.B	$FF,$80,$80,$BC,$C2,$01,$82,$7C
	DC.B	$3E,$41,$80,$BC,$C2,$81,$42,$3C
	DC.B	$FF,$01,$02,$04,$3E,$10,$20,$40
	DC.B	$3C,$42,$42,$3C,$42,$81,$81,$7E
	DC.B	$3C,$42,$81,$43,$3D,$01,$82,$7C
	DC.B	$7E,$81,$81,$81,$FF,$81,$81,$81
	DC.B	$F0,$88,$88,$F0,$84,$84,$84,$F8
	DC.B	$7E,$81,$80,$80,$80,$80,$81,$7E
	DC.B	$F8,$84,$82,$82,$82,$82,$84,$F8
	DC.B	$FF,$80,$80,$80,$F0,$80,$80,$FF
	DC.B	$FF,$80,$80,$F8,$80,$80,$80,$80
byte0	DC.B	$0A
byte1	dc.b	$0F

dosname:dc.b	"dos.library",0
gfxname:dc.b	"graphics.library",0
