LVOLock=-84
LVODelay=-198

LVOFindName=-276
LVOSetFunction=-420
LVOCacheClear=-636

SYS:	MACRO
	jsr	LVO\1(a6)
	ENDM

	move.l	4.w,a6
	move.l	378(a6),a0
	lea	DosName(pc),a1
	SYS	FindName
	move.l	d0,a5
	
	lea	NewLock(pc),a0
	bsr	SetFunc

	lea	OldLock(pc),a0
	move.l	d0,(a0)

	exg	a5,a6
	move.l	$114(a5),a4	;ThisTask
	lea	$1c(a4),a4	;BreakFlag
Wait4Break:
	moveq	#5,d1
	SYS	Delay	

*** CtrlCAbfrage ***
	move.b	(a4),d0	;BreakFlag
	clr.b	(a4)
	and	#$10,d0		;CtrlC
	beq.s	Wait4Break

	exg	a5,a6

	move.l	OldLock(pc),a0
	bsr	SetFunc

	moveq	#0,d0
	rts

SetFunc:move.l	a0,d0
	move.l	a5,a1
	lea	LVOLock.w,a0
	SYS	SetFunction
	move.l	d0,-(a7)
	SYS	CacheClear
	move.l	(a7)+,d0
	rts


NewLock:cmp.l	#-1,d2
	beq.s	LockModeOk
	cmp.l	#-2,d2
	beq.s	LockModeOk
	moveq	#-2,d2
	move	#$f,$dff180
LockModeOk:
	move.l	OldLock(pc),-(a7)
	rts

OldLock: dc.l 0
DosName: dc.b 'dos.library',0
 dc.b "$VER: PatchLock V1.0 by Foxx'n'Lynxx/ZZC.",10,13,0
 even
