************************************************************************
******************* HandleWB Rev 2.  Made 20/06-93 By Newtec ***********
************************************************************************
************************************************************************
******************* Functions:                               ***********
*******************                                          ***********
******************* InitWB()                                 ***********
******************* ExitWB(CLIReturnCode)(d0)                ***********
************************************************************************

		;incdir	'Code:include/'
		;include 'HandleWB'
		;
		;move.l	sp,ExitStack
		;bsr	InitWB
		;...
		;clr.l	d0
		;bra	ExitWB

;------------------------------------------------------------------
InitWB:		;Stack MUST be set in the main loop!
		tst.l	ExitStack
		bne.b	.StackOK
		move.b	$dff006,$dff180
		btst	#6,$bfe001
		bne.b	InitWB
		rts

.StackOK:	move.l	4.w,a6
		move.l	276(a6),a4	;Exec->ThisTask
		tst.l	$ac(a4)		;pr_cli
		bne.b	.CLI		;From CLI
		lea.l	$5c(a4),a0	;WB message
.GetMsg:	jsr	-372(a6)	;GetMsg
		tst.l	d0
		bne.b	.FromWB
		lea.l	CLI_WB(pc),a0
		move.b	#2,(a0)
		bra.b	.CLI		;Started from ASMONE!
.FromWB:	move.l	d0,WBMsg
		lea.l	CLI_WB(pc),a0
		move.b	#1,(a0)
.CLI:		rts
;------------------------------------------------------------------
ExitWB:		move.l	ExitStack(pc),sp
		tst.b	CLI_WB
		beq.b	.ExitCLI
		cmp.b	#2,CLI_WB
		beq	.Exit
		move.l	4.w,a6
		move.l	WBMsg(pc),a1
		jsr	-378(a6)	;ReplyMsg
		clr.l	d0
.Exit:		rts
.ExitCLI:	move.l	d0,-(sp)	;Save Returncode
		move.l	4.w,a6
		lea.l	.DosName(pc),a1
		clr.l	d0
		jsr	-552(a6)	;OpenLib
		move.l	d0,a6
		move.l	(sp)+,d1	;ReturnCode
		jmp	-144(a6)	;Xit
;------------------------------------------------------------------
.DosName:	dc.b	'dos.library',0
CLI_WB:		dc.b	0	;0=Cli, 1=WB, 2=Asmone
		even
ExitStack:	dc.l	0
WBMsg:		dc.l	0
