ùúùú  oÿû¿Ÿÿû¿Ÿÿû¿Ÿÿû¿Ÿÿû¿Ÿÿû¿Ÿÿû¿Ÿÿû¿Ÿ	INCLUDE	"INCLUDE/REQTOOLS"

Exec	=	4
OldOpenLibrary		=-408
CloseLibrary		=-414

START
	JSR	OPEN_REQ_LIB		;Otwarcie biblioterki ReqTools

	JSR	REQUEST			;Glowny requester

	JSR	CLOSE_REQ_LIB		;Zamkiecie biblioterki ReqTools
	MOVEQ	#0,D0			;no errors.
	RTS				;END.

OPEN_REQ_LIB
	MOVE.L	EXEC,A6
	LEA	REQNAME,A1
	JSR	OldOpenLibrary(A6)
	MOVE.L	D0,REQBASE		;w do baza ReqTools.libs
	TST.L	D0			;jesli D0 = 0 to wystapil blad
					; (np. nie ma jej na dysku,
					;  za malo pamieci itd..)
	BEQ	ERROR
	RTS
CLOSE_REQ_LIB
	MOVE.L	EXEC,A6
	MOVE.L	REQBASE,A1
	JSR	CloseLibrary(A6)	;Zamkiecie biblioterki ReqTools
	RTS
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
REQUEST	
	MOVE.L	REQBASE,A6		;!!! A6 !!! NIE UZYWAC (REQBASE)

	MOVE.L	#RT_REQINFO,D0		;przydzielenie structury typu INFO
	MOVE.L	#ZERO,A0
	JSR	rtAllocRequestA(A6)	;zainicjowanie struktury requestera
	TST.L	D0			;czy blad?
	BNE	rq.nerr
	JSR	ERROR			;BLAD (za malo pamieci)
	BRA	rtend
rq.nerr	MOVE.L	D0,REQ			;no error
					;REQ (d0)-wskaznik struktury requestera
;-------------------------------------------------------------------------;
Show_Main_Req				;wywo£anie requestera Menu
	MOVE.L	#TEXT,A1		;A1-wskaznik (adres) textu, ktory ma 
					;   byc wyswietlony w requesterze
					;   text musi byc zakonczony zerem !

	MOVE.L	#GADTEXT,A2		;A2-adres textu dla gadzetow (0-end)
					;   gadzety oddzielamy znakiem |
					
	MOVE.L	REQ,A3			;A3-wskaznik struktury req
					;   (patrz: rtAllocRequestA)

	MOVE.L	#NO_ARGUMENTS,A4	;A4-adres tablicy argumentow dla textu
					;   0-koniec

	MOVE.L	#TAGLIST,A0		;A0-adres tablicy rozkazow dla 
					;   requestera (TagList'y)

	JSR	rtEZRequestA(A6)	;wywolanie requestera z ustalonymi
					;wyzej argumentami i oczekiwnie na
					;nacisniecie ktoregos gadzetu
	
	MOVE.L	D0,NACISLES		;po wyjsciu z reqestera 
		  ;w D0 znajduje sie: 
		  ; 0-Cancel (nacisles gadzet negatywny najbardziej na prawo)
		  ; 1-gadzet najbardziej na lewo
		  ; 2,3...-nastepne gadzety liczac od lewej 
					;SPRAWDZENIE CO NACISLES
	cmp.l	#2,nacisles
	bne	no_about
	JSR	ABOUT
no_about
	cmp.l	#3,nacisles
	bne	no_ChPal
	JSR	Ch_Palette
no_ChPal
	cmp.l	#0,nacisles
	bne	no_Cancel
	Jsr	Cancel
	TST.B	D0
	Bne	rt.kon
no_Cancel
	cmp.l	#1,nacisles
	bne	no_Exit
	Bra	rt.kon
no_Exit
	Bra	show_main_req		;jeszcze nie koniec

;---Wyjscie-----------------------------------------------------------------;
rt.kon	MOVE.L	REQ,A1			;A1-wskaznik struktury REQ do zamkiecia
	JSR	rtFreeRequest(A6)	;zwolnienie struktury
rtend	RTS				;KONIEC

;............................................................................
ABOUT	
	MOVE.L	#TEXT_ABOUT,A1		;wszystkie argumenty maja takie samo
	MOVE.L	#GAD_ABOUT,A2		;znaczenie jak wyzej
	MOVE.L	REQ,A3
	MOVE.L	#NO_ARGUMENTS,A4
	MOVE.L	#TAGLIST,A0
	JSR	rtEZRequestA(A6)	;show about
	RTS
;............................................................................
Cancel	
	MOVE.L	#TEXT_Are,A1		;wszystkie argumenty maja takie samo
	MOVE.L	#GAD_Are,A2		;znaczenie jak wyzej
	MOVE.L	REQ,A3
	MOVE.L	#NO_ARGUMENTS,A4
	MOVE.L	#TAGLIST,A0
	JSR	rtEZRequestA(A6)	;show about
	RTS
;............................................................................
Ch_palette
			;-------Zmiana Palety--------;
	MOVE.L	#TEXT_PAL,A2		;A2-text informacyjny (0-koniec txt)
	MOVE.L	#TAGLIST,A0		;A0-TagList'a
	JSR	rtPaletteRequestA(A6)	;Wywo£anie Palette requestera
				;wyjscie D0=
				;      :-1 ($ffffffff) gdy wybralismy Cancel
				;      :>=0 Ok i nr.ostatnio zmienionego koloru
	rts	

;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
ERROR	MOVE.W	$DFF006,$DFF180		;ERROR
	BTST	#$6,$BFE001
	BNE	ERROR
	MOVE.L	#'EROR',EROR
	CLR.L	D0
	RTS

NACISLES	DC.L	0
EROR	DC.L	0	
ZERO	DC.L	0

REQbase	dc.l	0
REQ	DC.L	0
REQname	dc.b	'reqtools.library',0

		;...............DO rtEZRequestA..............;
TEXT	dc.b	'Pierwsza proba wykorzystania',$A
	dc.b	'biblioteki REQTOOLS',$a,$a
	dc.b	'--------------------------------------------------------',$a,$a
	dc.b	'EXIT           ------> wyjscie                          ',$A
	dc.b	'About DARK     ------> wyswietli cenne informacje o mnie',$A
	dc.b	'Change Palette ------> zmiana palety                    ',$A
	dc.b	'Cancel         ------> Cancel                           ',$a
	dc.b	$a,$a,$a
	dc.b	0
	even
GadText	dc.b	'EXIT|ABOUT DARK|Change Palette|Cancel',0
	even
NO_Arguments	dc.l	0
TagList	DC.L	RT_ReqPos,REQPOS_CENTERSCR	;centruj okno
	DC.L	RT_WaitPointer,1		;mysz WAIT poza oknem
	dc.l	RTEZ_Flags,EZREQF_CENTERTEXT	;centruj text
	dc.l	0,0
			;............DO REQUESTERA ABOUT............;
TEXT_ABOUT
	dc.b	'----------------------------------',$a
	DC.B	'ABOUT',$a,$a,$a,$a
	dc.b	'Test REQTOOLS.LIBRARY',$a,$a,$a
	dc.b	'DARK / Illusion',$a
	dc.b	'ul.Karliczka 27b/6',$a
	dc.b	'Katowice 17',$a
	dc.b	'POLAND',$a
	dc.b	'----------------------------------',$a
	even
Gad_ABOUT
	dc.b	'OK',0
	even
			;............ARE YOU SURE............;
TEXT_Are
	dc.b	'           ,      ',$a
	dc.b	'   Are You Swir   ',$a,0
	even
Gad_Are	dc.b	'OKej|Kancel',0
	even
			;............DO REQUESTERA PALETTE............;
TEXT_PAL DC.B	'Zmien se paletke',0
	even

