****************************************************************

*	REQUESTER: SMALL ROUTINE TO ASK FOR A YES/NO ANSWER

*	JSR REQUEST TO CALL ROUTINE
*	ON EXIT, REQFLAG CONTAINS $FFFF FOR 'YES' AND $0000 FOR 'NO'

****************************************************************

	SECTION	REQUEST,CODE
	OPT	C-

**********

	INCDIR	SYS:INCLUDE/
	INCLUDE	EXEC/EXEC_LIB.I
	INCLUDE	INTUITION/INTUITION_LIB.I
	INCLUDE	INTUITION/INTUITION.I
	INCLUDE	LIBRARIES/DOS_LIB.I

**********

	MOVEQ.L	#0,D0
	LEA	INTUITIONNAME,A1
	CALLEXEC OPENLIBRARY
	MOVE.L	D0,_INTUITIONBASE

	MOVEQ.L	#0,D0
	LEA	DOSNAME,A1
	CALLEXEC OPENLIBRARY
	MOVE.L	D0,_DOSBASE

**********

	BSR	REQUEST

**********

	CALLDOS	OUTPUT
	MOVE.L	D0,D1

	CMPI.W	#$FFFF,REQFLAG
	BEQ.S	YES_SELECTED

NO_SELECTED
	MOVE.L	#NO_TEXT,D2
	MOVE.L	#NO_TEXT_LEN,D3

	CALLDOS	WRITE

	BRA	QUIT

**********

YES_SELECTED
	MOVE.L	#YES_TEXT,D2
	MOVE.L	#YES_TEXT_LEN,D3

	CALLDOS	WRITE

**********

QUIT	BTST	#6,$BFE001
	BNE.S	QUIT

	MOVE.L	_INTUITIONBASE,A1
	CALLEXEC CLOSELIBRARY

	MOVE.L	_DOSBASE,A1
	CALLEXEC CLOSELIBRARY

	RTS

**********

REQUEST
	LEA	REQWIN,A0		ADDRESS OF REQUESTER WINDOW

	CALLINT	OPENWINDOW		OPEN REQUESTER

	MOVE.L	D0,REQPTR		SAVE WINDOW POINTER
	MOVE.L	D0,A0
	MOVE.L	WD_USERPORT(A0),REQPORT	GET USERPORT

	MOVE.L	WD_RPORT(A0),A0		GET RASTPORT
	LEA	REQTEXT,A1		INTUITEXT STRUCTURE
	MOVEQ.L	#0,D0
	MOVEQ.L	#0,D1

	CALLINT	PRINTITEXT

	MOVE.L	REQPORT,A0

	CALLEXEC WAITPORT		WAIT FOR A GADGET

	MOVE.L	REQPORT,A0		A0 COULD HAVE BEEN CLEARED!

	CALLEXEC GETMSG			OK, WHAT HAPPENED THEN?

	TST.L	D0			FALSE ALARM?!?!
	BEQ.S	REQUEST

	MOVE.L	D0,A1			MESSAGE PTR --> A1

	MOVE.L	IM_IADDRESS(A1),A2

	CALLEXEC REPLYMSG		SEND A NICE REPLY TO INTUTITION

	MOVE.L	REQPTR,A0
	CALLINT	CLOSEWINDOW

**********

REQ_GADG_JMP
	MOVE.L	GG_USERDATA(A2),A0	GET USERDATA (ROUTINE POINTER)

	CMPA.L	#0,A0			GADGET POINTER ASSIGNED?
	BEQ.S	REQEXIT			FORGET IT THEN!

	JMP	(A0)			JUMP TO GADGET ROUTINE!

**********

REQ_YES	MOVE.W	#$FFFF,REQFLAG		POSITIVE RESPONSE

REQEXIT	RTS

**********

REQ_NO	MOVE.W	#$0000,REQFLAG		NEGATIVE RESPONSE

	RTS

*****************************************************************
*
*	REQUESTOR WINDOW AND GADGETS STRUCTURE
*
*****************************************************************

REQWIN
	DC.W	200,70		WINDOW XY ORIGIN RELATIVE TO TOPLEFT OF SCREEN
	DC.W	253,66		WINDOW WIDTH AND HEIGHT
	DC.B	0,1		DETAIL AND BLOCK PENS
	DC.L	GADGETUP	IDCMP FLAGS
	DC.L	WINDOWDRAG+WINDOWDEPTH+ACTIVATE+NOCAREREFRESH	OTHER WINDOW FLAGS
	DC.L	REQ_YES_GAD	FIRST GADGET IN GADGET LIST
	DC.L	0		CUSTOM CHECKMARK IMAGERY
	DC.L	REQNAME		WINDOW TITLE
	DC.L	0		CUSTOM SCREEN POINTER
	DC.L	0		CUSTOM BITMAP
	DC.W	5,5		MINIMUM WIDTH AND HEIGHT
	DC.W	-1,-1		MAXIMUM WIDTH AND HEIGHT
	DC.W	WBENCHSCREEN	DESTINATION SCREEN TYPE

REQ_YES_GAD
	DC.L	REQ_NO_GAD	NEXT GADGET
	DC.W	17,36		ORIGIN XY OF HIT BOX RELATIVE TO WINDOW TOPLEFT
	DC.W	82,25		HIT BOX WIDTH AND HEIGHT
	DC.W	GADGIMAGE	GADGET FLAGS
	DC.W	RELVERIFY	ACTIVATION FLAGS
	DC.W	BOOLGADGET	GADGET TYPE FLAGS
	DC.L	REQ_YES_IMAGE	GADGET BORDER OR IMAGE TO BE RENDERED
	DC.L	0		ALTERNATE IMAGERY FOR SELECTION
	DC.L	0		FIRST INTUITEXT STRUCTURE
	DC.L	0		GADGET MUTUAL-EXCLUDE LONG WORD
	DC.L	0		SPECIALINFO STRUCTURE
	DC.W	0		USER-DEFINABLE DATA
	DC.L	REQ_YES		POINTER TO USER-DEFINABLE DATA

REQ_YES_IMAGE
	DC.W	0,0		XY ORIGIN RELATIVE TO CONTAINER TOPLEFT
	DC.W	82,25		IMAGE WIDTH AND HEIGHT IN PIXELS
	DC.W	1		NUMBER OF BITPLANES IN IMAGE
	DC.L	REQ_YES_IMAGEDATA	POINTER TO IMAGEDATA
	DC.B	1,0		PLANEPICK AND PLANEONOFF
	DC.L	0		NEXT IMAGE STRUCTURE

REQ_NO_GAD
	DC.L	0		NEXT GADGET
	DC.W	161,36		ORIGIN XY OF HIT BOX RELATIVE TO WINDOW TOPLEFT
	DC.W	73,25		HIT BOX WIDTH AND HEIGHT
	DC.W	GADGIMAGE	GADGET FLAGS
	DC.W	RELVERIFY	ACTIVATION FLAGS
	DC.W	BOOLGADGET	GADGET TYPE FLAGS
	DC.L	REQ_NO_IMAGE	GADGET BORDER OR IMAGE TO BE RENDERED
	DC.L	0		ALTERNATE IMAGERY FOR SELECTION
	DC.L	0		FIRST INTUITEXT STRUCTURE
	DC.L	0		GADGET MUTUAL-EXCLUDE LONG WORD
	DC.L	0		SPECIALINFO STRUCTURE
	DC.W	0		USER-DEFINABLE DATA
	DC.L	REQ_NO		POINTER TO USER-DEFINABLE DATA

REQ_NO_IMAGE
	DC.W	0,0		XY ORIGIN RELATIVE TO CONTAINER TOPLEFT
	DC.W	73,25		IMAGE WIDTH AND HEIGHT IN PIXELS
	DC.W	1		NUMBER OF BITPLANES IN IMAGE
	DC.L	REQ_NO_IMAGEDATA	POINTER TO IMAGEDATA
	DC.B	1,0		PLANEPICK AND PLANEONOFF
	DC.L	0		NEXT IMAGE STRUCTURE


**********

REQNAME
	DC.B	'Neil''s Requester',0
	EVEN

REQTEXT
	DC.B	1,0,RP_JAM1,0	FRONT AND BACK TEXT PENS, DRAWMODE AND FILL BYTE
	DC.W	50,15		XY ORIGIN RELATIVE TO CONTAINER TOPLEFT
	DC.L	0		FONT POINTER OR 0 FOR DEFAULT
	DC.L	SURETEXT	POINTER TO TEXT
	DC.L	REQTEXT2	NEXT INTUITEXT STRUCTURE

SURETEXT
	DC.B	'Are You Sure You Want',0
	EVEN

REQTEXT2
	DC.B	1,0,RP_JAM1,0	FRONT AND BACK TEXT PENS, DRAWMODE AND FILL BYTE
	DC.W	86,24		XY ORIGIN RELATIVE TO CONTAINER TOPLEFT
	DC.L	0		FONT POINTER OR 0 FOR DEFAULT
	DC.L	DOTEXT		POINTER TO TEXT
	DC.L	0		NEXT INTUITEXT STRUCTURE

DOTEXT
	DC.B	'To Do This?',0
	EVEN


**********

	SECTION	IMAGEDATA,DATA_C

REQ_YES_IMAGEDATA
	DC.W	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$C000,$C000,$0000
	DC.W	$0000,$0000,$0000,$C000,$C0F8,$01E0,$7FFC,$007F
	DC.W	$003C,$C000,$C1F8,$07C0,$FFF8,$01FF,$8078,$C000
	DC.W	$C0F8,$0780,$FFF8,$03FF,$8078,$C000,$C1F8,$1F01
	DC.W	$F000,$0F07,$00F0,$C000,$C0FC,$1E01,$F000,$0F00
	DC.W	$00F0,$C000,$C0F8,$7803,$E000,$1E00,$01E0,$C000
	DC.W	$C0FC,$F803,$E000,$1E00,$01E0,$C000,$C0F9,$E007
	DC.W	$C000,$3F00,$03C0,$C000,$C0FD,$E007,$C000,$1FE0
	DC.W	$03C0,$C000,$C0FF,$800F,$FF00,$3FF0,$0780,$C000
	DC.W	$C07F,$000F,$FF00,$1FF8,$0780,$C000,$C0FE,$001F
	DC.W	$FE00,$1FF0,$0F00,$C000,$C07C,$001F,$0000,$03F8
	DC.W	$0F00,$C000,$C0F8,$003E,$0000,$01F0,$0C00,$C000
	DC.W	$C0F8,$003E,$0000,$00F0,$0000,$C000,$C1F0,$007C
	DC.W	$0000,$01E0,$0000,$C000,$C1F0,$007C,$0006,$01E0
	DC.W	$0000,$C000,$C3E0,$00F8,$000F,$0780,$7800,$C000
	DC.W	$C3E0,$00FF,$FC0F,$FF80,$7800,$C000,$C7C0,$01FF
	DC.W	$F80F,$FE00,$F000,$C000,$C7C0,$01FF,$F801,$F800
	DC.W	$F000,$C000,$C000,$0000,$0000,$0000,$0000,$C000
	DC.W	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$C000

**********

REQ_NO_IMAGEDATA
	DC.W	$FFFF,$FFFF,$FFFF,$FFFF,$FF80,$C000,$0000,$0000
	DC.W	$0000,$0180,$C007,$E03C,$0007,$F000,$3D80,$C00F
	DC.W	$E078,$003F,$F800,$7980,$C00F,$E078,$007C,$7C00
	DC.W	$7980,$C01F,$C0F0,$01E0,$3C00,$F180,$C01E,$E0F0
	DC.W	$03E0,$3E00,$F180,$C03D,$C1E0,$0780,$3C01,$E180
	DC.W	$C03D,$E1E0,$0F80,$3E01,$E180,$C079,$C3C0,$1F00
	DC.W	$7C03,$C180,$C079,$E3C0,$1F00,$7C03,$C180,$C0F3
	DC.W	$C780,$3E00,$F807,$8180,$C0F1,$C780,$3E00,$F807
	DC.W	$8180,$C1E3,$CF00,$7C01,$F00F,$0180,$C1E3,$CF00
	DC.W	$7C01,$F00F,$0180,$C3C3,$9E00,$F803,$E00C,$0180
	DC.W	$C3C3,$DE00,$F803,$E000,$0180,$C783,$BC00,$F80F
	DC.W	$8000,$0180,$C783,$BC00,$F80F,$8000,$0180,$CF03
	DC.W	$F800,$F01E,$0078,$0180,$CF03,$F800,$FC7E,$0078
	DC.W	$0180,$DE07,$F000,$7FF0,$00F0,$0180,$DE03,$F000
	DC.W	$1FC0,$00F0,$0180,$C000,$0000,$0000,$0000,$0180
	DC.W	$FFFF,$FFFF,$FFFF,$FFFF,$FF80

**********

INTUITIONNAME	DC.B	'intuition.library',0
		EVEN

DOSNAME		DC.B	'dos.library',0
		EVEN

_INTUITIONBASE	DC.L	0
_DOSBASE	DC.L	0

REQPTR	DC.L	0
REQPORT	DC.L	0
REQFLAG	DC.W	0

YES_TEXT	DC.B	'You Pressed Yes, Didn''t You',10,'Lefty...',10
		EVEN
YES_TEXT_LEN	EQU	*-YES_TEXT
NO_TEXT		DC.B	'You Pressed No, Didn''t You',10,'Lefty...',10
		EVEN
NO_TEXT_LEN	EQU	*-NO_TEXT


