
	incdir	'include:'
	include	'intuition/intuition.i'
	include	'intuition/intuitionbase.i'

KillTask	equ	-$b4
OpenLibrary	equ	-$228
CloseLibrary	equ	-$19e
LockIBase	equ	-$1a0
UnlockIBase	equ	-$1a4
EasyRequestArgs	equ	-$24c

main:
	move.l	#IntuiName,a1		; IntuitionName
	moveq	#0,d0			; Version egal
	move.l	4.w,a6			; ExecBase
	jsr	OpenLibrary(a6)		; Lib oeffnen
	tst.l	d0			; Lib da ?
	beq.w	NoIntui			; Noeh....
	move.l	d0,IntuiBase		; Speichern

	move.l	#MuFSName,a1		; MultiUserName
	moveq	#0,d0			; Version auch egal
	move.l	4.w,a6			; Execbase
	jsr	OpenLibrary(a6)		; Nochne Lib oeffnen
	tst.l	d0			; Lib da ?
	beq.s	NoMuFS			; Noeh....
	move.l	d0,MuFSBase		; Speichern

	moveq	#0,d0			; LockNumber
	move.l	IntuiBase(pc),a6	; IntuiBase nach A6
	jsr	LockIBase(a6)		; IntuiBase locken
	move.l	d0,d5			; Lock-Pointer nach D5

	move.l	ib_ActiveWindow(a6),a0	; IntuiBase->ActiveWindow
	move.l	wd_UserPort(a0),a0	; ActiveWindow->UserPort
	move.l	MP_SIGTASK(a0),d6	; UserPort->SigTask nach D6
	move.l	d6,a0
	move.l	LN_NAME(a0),a5		; SigTask->Name nach A5
	lea	ReqArray(pc),a0		; TextArray des Requester nach A0
	move.l	a5,(a0)+		; TaskName eintragen
	move.l	d6,(a0)			; TaskAdresse eintragen

	move.l	d5,a0			; LockPointer holen
	move.l	IntuiBase(pc),a6	; IntuiBase nach A6
	jsr	UnlockIBase(a6)		; IntuiBase freigeben

	lea	EasyReq(pc),a1		; Requesterstruktur nach A1
	move.l	#0,a2			; keine idcmpPtr
	lea	ReqArray(pc),a3		; TextArray nach A3
	jsr	EasyRequestArgs(a6)	; EasyRequestArgs aufrufen
	tst.l	d0			; Button "Cancel" gedrueckt ?
	beq	CloseMuFS		; Yep - Kill ueberspringen

	move.l	d6,d0			; SigTask nach D0
	move.l	MuFSBase(pc),a6		; MultiUserBase nach A6
	jsr	KillTask(a6)		; Task entfernen !

CloseMuFS:
	move.l	MuFSBase(pc),a1		; MultiUserBase nach A1
	move.l	4,a6			; ExecBase
	jsr	CloseLibrary(a6)	; MuFS-Lib schliessen

NoMuFS:
	move.l	IntuiBase(pc),a1	; IntuiBase nach A1
	move.l	4,a6			; ExecBase
	jsr	CloseLibrary(a6)	; Intui-Lib schliessen

NoIntui:
	moveq	#0,d0			; Kein Fehler !
	rts				; unn tschuess......


ReqArray:	dc.l	0,0,0
MuFSBase:	dc.l	0
IntuiBase:	dc.l	0
EasyReq:
		dc.l	EasyReqEnd-EasyReq
		dc.l	0
		dc.l	ReqTitleText
		dc.l	Request
		dc.l	GadString
EasyReqEnd:

IntuiName:	dc.b	'intuition.library',0
MuFSName:	dc.b	'multiuser.library',0
Request:	dc.b	'Do you really want to kill task',$0a
		dc.b	34,'%s',34,' ?',$0a
		dc.b	'TaskAdress: $%08lx',$0a,0

GadString:	dc.b	'Kill task|Cancel',0
		dc.b	"$VER:"
ReqTitleText:
		dc.b	'WinKiller V1.0 (C) 1996 by HTC',0
