ùúùúÿ<Æ×ÿ<Æ×ÿ<Æ×ÿ<Æ×ÿ<Æ×ÿ<Æ×ÿ<Æ×ÿ<Æ×ÿ<Æ×	IncDir	df0:include/

	include	exec/exec_lib.i
	include	exec/memory.i
	include	libraries/dos_lib.i
	include	libraries/dos.i
	include	intuition/intuition_lib.i
	include intuition/intuition.i
	include	graphics/graphics_lib.i


Jam1	=	8
Jam2	=	1

st_r	=	108		;dlugosc rozkazu

True	=	$FF
False	=	0

TrybID	=	100
WTF	=	101		;WidowToFront
WTB	=	102		;WindowToBack
NTSC	=	60
PAL	=	50
tlo	=	0
bialy	=	2
czarny	=	1
niebieskawy	=3
kol1	=	1
kol2	=	2
kol3	=	3
strzalka_w_prawo=206
ESC	=	197
Help	=	$DF

b_koment=	%1000
b_newF	=	%0100
b_launch=	%0010
b_run	=	%0001
b_exec	=	%0000

bit_newF=	2
bit_launch=	1
bit_run	=	0

wys_gad	=	12
YPocz	=	80

nowa_lista=	'<'
bezrozkazu=	'@'
run_every=	'*'
launch_every=	'#'

zero_znak=	'0'
Spacja	=	' '
rozdzielacz=	';'
Eol	=	10
;---------------------------------------------------------------
St1:Section Selector1,CODE

	bsr.w	Parametry

	Lea	_DosName(PC),a1		;otwarcie biblioteki dos
	CallExec OldOpenLibrary
	Move.l	d0,_DosBase
	beq.w	Koniec

Krok1:
	Lea	_GfxName(PC),a1		;otwarcie biblioteki graphics
	CallExec OldOpenLibrary
	Move.l	d0,_GfxBase
	bne.b	Krok2
	Move.l	#Brak_GFX,Bufor
	bsr.w	Wyswietl_Komunikat
	bra.w	Koniec

Krok2:
	Lea	_IntuitionName(PC),a1	;otwarcie biblioteki intuition
	CallExec OldOpenLibrary
	Move.l	d0,_IntuitionBase
	bne.b	Krok3
	Move.l	#Brak_Intuition,Bufor
	bsr.w	Wyswietl_Komunikat
	bra.w	Koniec
Krok3:
	bsr.w	NTSC_czy_PAL
	Move.l	#0,d0
	Move.l	d0,d1
	Move.b	liczba_kolumn(PC),d0
	Move.b	liczba_wierszy(PC),d1
	Mulu	d1,d0
	Move.w	d0,Max
	Mulu	#moj_SizeOf,d0
	Move.l	d0,dl_gadgetow

	Move.l	#Memf_Clear,d1
	CallExec AllocMem
	Move.l	d0,Gadget1
	bne.b	Krok4
	Move.l	#Brak_Pamieci,bufor
	bsr.w	Wyswietl_Komunikat
	bra.w	Koniec
;---------------------------------------------------------------------
Krok4:
	bsr.w	SetUp_Gadgets

	Move.l	#fib_SizeOf,d0
	Move.l	#Memf_Clear,d1
	CallExec AllocMem
	Move.l	d0,Fib_Adres

	beq.b	Koniec

	Bsr.w	Wczytaj_Dane
	beq.b	Koniec

	bsr.w	Otworz_Duze_Okno
	beq.b	Koniec

;==============================oczekiwanie na wiadomosc=================
Co_Do_Mnie_Doszlo:
	MOVE.L	UserPort(PC),A0
	CallExec GetMsg
	tst.l	d0
	bne.b	Ciagnij_Dalej
	Move.b	male_okno_akt(PC),d0
	tst.b	d0
	beq.b	D_O
	MOVE.L	UserPort(PC),A0
	CallExec WaitPort
	bra.b	Co_Do_Mnie_Doszlo
D_O:
	bsr.w	Aktualnosci
	MOVEQ	#10,D1				;pause
	CallDos	Delay
	bra.b	Co_Do_Mnie_Doszlo
;============================================================================
Ciagnij_Dalej:
	Move.l	d0,a1
	Lea	wiadomosc(PC),a2
	Move.w	#im_SizeOf-1,d7
C_P:
	Move.b	(a1)+,(a2)+
	dbf	d7,C_P

	Move.l	d0,a1
	CallExec ReplyMsg

	bsr.w	Obsluga_Uzytkownika
	beq.b	Co_Do_Mnie_Doszlo

;Waitmouse:
;	btst	#6,$bfe001
;	bne.s	waitmouse

Koniec:
	Tst.l	Gadget1
	beq.b	KoniecK
	Move.l	Gadget1(PC),a1
	Move.l	dl_gadgetow(PC),d0
	CallExec FreeMem
KoniecK:
	Tst.l	Fib_Adres
	beq.b	Koniec0
	Move.l	Fib_adres(PC),a1
	Move.l	#fib_SizeOf,d0
	CallExec FreeMem
	Move.l	#0,Fib_adres
Koniec0:
	Tst.l	Moje_Okno
	beq.b	Koniec1
	bsr.w	Zamknij_Okno
	Move.l	#Pozegnanie,Bufor
	bsr.w	Wyswietl_Komunikat
Koniec1:
	Tst.l	adres_danych
	beq.b	Koniec2
	Lea	dl_pliku(PC),a6
	bsr.w	Zwolnij_To
Koniec2:
	Move.l	_IntuitionBase(PC),a1
	Move.l	a1,d1
	beq.b	Koniec3
	CallExec CloseLibrary

Koniec3:
	Move.l	_GfxBase(PC),a1
	Move.l	a1,d1
	beq.b	Koniec4
	CallExec CloseLibrary

Koniec4:
	Move.l	_DosBase(PC),a1
	Move.l	a1,d1
	beq.b	Stop
	CallExec CloseLibrary
Stop:
	Rts
;	Move.l	#0,d1
;	CallDos	Exit
;==================================================================
Aktualnosci:
	bsr.w   Odczytaj_Ile_Wolnej_Pamieci

	Move.l	RPort(PC),a1		;Zmiana stylu (GRUBE)
	Move.w	#fsf_Bold,d0
	Move.w	#$FFFF,d1
	CallGraf SetSoftStyle

	Move.l	RPort(PC),a0		;Druk reszty informacji
	Lea	info1(PC),a1
	Move.w	#0,d0
	Move.w	d0,d1
	CallInt	PrintIText

	Move.l	RPort(PC),a1		;Styl normalny
	Move.w	#0,d0
	Move.w	#$FFFF,d1
	CallInt	SetSoftStyle
	Rts
;==================================================================
Bledy_Odczytu:
	Move.l	#Blad_Odczytu,Bufor
	bsr.w	Wyswietl_Komunikat
	bra.w	Not_OK
;------------------------------------------------------------------
;===========================Wejscie================================
;	w a6 -  adres tablicy ilosc pamieci , adres pamieci do
;		do zwolnienia
;==================================================================
Zwolnij_To:
	Move.l	(a6),d0
	Move.l	4(a6),a1
	Move.l	a6,-(SP)
	CallExec FreeMem
	Move.l	(SP)+,a6
	Move.l	#0,(a6)
	Move.l	#0,4(a6)
	Rts
;------------------------------------------------------------------
Zamknij_Plik:
	Move.l	moj_lock(PC),d1
	CallDos	Close
	Move.l	#0,moj_lock
	Rts
;------------------------------------------------------------------
Bledy_Odczytu_3:
	bsr.b	Zamknij_Plik
Bledy_Odczytu_2:
	Lea	dl_pliku(PC),a6
	bsr.b	Zwolnij_To
	bra.b	Bledy_Odczytu
;==================================================================
Wczytaj_Dane:
;================Procedura wczytujaca selector.programs do pamieci=
;wejscie
;	a0 - adres nazwy pliku do wczytania
;wyjscie
;	d0 - True jesli wszystko jest OK, w przeciwnym przypadku False
;------------------------------------------------------------------
	Move.l	List_Name(PC),a0
	Move.l	a0,d1
	Move.l	#Access_Read,d2
	CallDos	Lock
	Move.l	d0,moj_lock
	beq.b	Bledy_Odczytu

	Move.l	d0,d1
	Move.l	Fib_adres(PC),d2		;struktura FIB
	CallDos	Examine

	Move.l	Fib_adres(PC),a0
	Move.l	fib_Size(a0),dl_pliku

	Move.l	moj_lock(PC),d1
	CallDos	Unlock

	Move.w	#fib_SizeOf-1,d1
	Move.l	Fib_adres(PC),a1
Kolko_CF:
	Move.b	#0,(a1)+
	dbf	d1,Kolko_CF

	Tst.l	dl_pliku
	beq.w	Bledy_Odczytu
	Add.l	#1,dl_pliku		; jedno zero na koniec, na
					; wszelki wypadek

;----------------------Wczytanie pliku
	Move.l	dl_pliku(PC),d0
	Move.l	#Memf_Clear,d1
	CallExec AllocMem
	Move.l	d0,adres_danych
	beq.w	Bledy_Odczytu

	Move.l	List_Name(PC),a0
	Move.l	a0,d1
	Move.l	#Mode_OldFile,d2
	CallDos	Open
	Move.l	d0,moj_lock
	beq.w	Bledy_Odczytu_2

	Move.l	d0,d1
	Move.l	adres_danych(PC),d2
	Move.l	dl_pliku(PC),d3
	CallDos	Read
	Add.l	#1,d0
	Cmp.l	dl_pliku(PC),d0
	bne.w	Bledy_Odczytu_3

	bsr.w	Zamknij_Plik
	bsr.b	Rozdzielaj
	bra.w	Wszystko_OK
;===============================================================
Rozdzielaj:
	Move.l	adres_danych(PC),a1	;a1 adres badanego znaku

	Lea	title1(PC),a2
	Move.l	a1,it_IText(a2)
;	Lea	title2(PC),a2
	Move.l	a1,it_IText+it_SizeOf(a2)

	Move.l	a1,a3			;a3 - adres bajtu dodatkowy
	Add.l	dl_pliku(PC),a3
	Suba.l	#1,a3
	Move.b	#Eol,(a3)		;EOL do dodatkowego bajtu
	Moveq	#79,d1			;ograniczenie bufora
	bsr.w	Moj_Readln		;wczytaj nazwe dysku
	Move.w	Max(PC),d4		;d4 licznik gadgetow
	Move.b	#True,d3		;d3 jesli true to czytac
					;napis, jesli false-rozkaz
	Move.l	Gadget1(PC),a0		;a0 adres akt. gadgetu
	Move.b	#False,Eof
While:
	Cmp.b	#True,Eof
	beq.w	Zakoncz_Wczytywanie
	Cmp.b	#True,d3
	bne.b	Czytaj_Rozkaz
Czytaj_Nazwe:
	Move.l	a1,it_Itext+gg_SizeOf(a0)
	Move.b	st_n(PC),d1
	bsr.w	Moj_Readln
	bra.b	Odwroc_Znacznik
Czytaj_Rozkaz:

	Cmp.b	#bezrozkazu,(a1)	;czy to jest podmenu?
	beq.b	Obsluz_Komentarz

	Cmp.b	#nowa_lista,(a1)	;czy to pod menu?
	beq.b	Obsluz_Nowa_Lista

	Cmp.b	#run_every,(a1)		;czy plik ma byc uruchomiony op-
	beq.b	Obsluz_Run		; cja RUN?

	Cmp.b	#launch_every,(a1)	;czy plik ma byc uruchomiony op-
	beq.b	Obsluz_Launch		; cja Launch?

	Cmp.b	#Eol,(a1)			;czy to jest dziura?
	beq.b	Zmodyfikuj_Wszystkie_Liczniki

Obsluz_Exec:
	Move.l	#b_Exec,gg_UserData(a0)
	bra.b	QWERT
Obsluz_Komentarz:
	Move.w	#GadgHNone,gg_Flags(a0)		;ustaw flage w struk.Gadget
	Move.b	#kol3,it_FrontPen+gg_SizeOf(a0)	;napis w czarnym kolorze
	bra.b	Zmodyfikuj_Wszystkie_Liczniki
Obsluz_Nowa_Lista:
	Move.l	#b_newF,gg_UserData(a0)
	bra.b	Ustaw_GadgHComp
Obsluz_Run:
	Move.l	#b_Run,gg_UserData(a0)
	bra.b	Ustaw_GadgHComp
Obsluz_Launch:
	Move.l	#b_Launch,gg_UserData(a0)
Ustaw_GadgHComp:
	adda.l	#1,a1
QWERT:
	Move.w	#GadgHComp,gg_Flags(a0)	;ustaw flage w struk.Gadget
Zmodyfikuj_Wszystkie_Liczniki:
	Move.l	a1,moj_Rozkaz(a0)

	Moveq	#st_r,d1
	Bsr.b	Moj_Readln

	add.l	#moj_SizeOf,a0
	subq.b	#1,d4
	beq.b	Zakoncz_Wczytywanie
Odwroc_Znacznik:
	Eori.b	#True,d3
	bra.w	While
Zakoncz_Wczytywanie:
	Lea	Title1(PC),a0
	Move.l	it_IText(a0),a1
	tst.b	(a1)			;czy jest Tytul? 
	bne.b	Jest_Tytul
	Lea	Nazwa_Okna(PC),a2
	Move.l	a2,it_IText(a0)
	Move.l	a2,it_IText+it_SizeOf(a0)
Jest_Tytul:
	CallInt	IntuiTextLength
	Lea	Border_Title_Bialy(PC),a2
	Lea	Border_Title_Czarny(PC),a1
	add.w	#8,d0		;szerokosc Title_Border
	Move.w	#640,d1
	sub.w	d0,d1
	asr.w	#1,d1		;X_Border_Title
	Move.w	d1,(a1)
	Move.w	d1,(a2)
	add.w	#4,d1		;X_Title
	Lea	title1(PC),a0
	Move.w	d1,it_LeftEdge(a0)
;	Lea	title2(PC),a1
	Move.w	d1,it_LeftEdge+it_SizeOf(a0)
	Lea	wspolrzedne_T_B(PC),a2
	Lea	wspolrzedne_T_C(PC),a1
	bsr.w	SetUp_Border_Render_Coo
	Rts				;wyjscie dla - dane wczytane w porzadku

;==================================================================
Moj_Readln:
;=================Implementacja pascalowskiego READLN==============
;wejscie	d1 maksymalna liczba znakow
;		d2 rejestr-zmienna
;		a1 adres bufora
;		a3 ostatni bajt bufora
;==================================================================
	Cmp.l	a1,a3
	beq.b	koniec_pliku
	Move.b	(a1),d2
	Cmp.b	#Eol,d2
	beq.b	Eol_Znaleziono
	Cmp.b	#rozdzielacz,d2
	bne.b	Zmniejsz
	Move.b	#Eol,(a1)
Zmniejsz:
	Adda.l	#1,a1
	subq.b	#1,d1
	bne.b	Moj_Readln

	Cmp.l	a1,a3
	beq.b	koniec_pliku

Za_Dluga_Nazwa:
	Move.b	(a1),d2
	Cmp.b	#Eol,d2
	beq.b	Eol_Znaleziono

	Movea.l	a1,a2
Petla_PWL:
	Adda.l	#1,a2
	Move.b	(a2),-1(a2)
	Cmp.l	a2,a3
	beq.b	Wyjscie_PWL
	bra.b	Petla_PWL
Wyjscie_PWL:
	bra.b	Za_Dluga_Nazwa

Koniec_pliku
	Move.b	#True,Eof
Eol_Znaleziono:
	Move.b	#0,(a1)+
	Rts
;==================================================================
Otworz_Duze_Okno:
	Lea	NoweDO(PC),a0
	CallInt	OpenWindow
	Move.l	d0,moje_okno
	bne.b	Dokonaj_Zmian_DO
	Move.l	#Brak_Pamieci,Bufor
	bsr.w	Wyswietl_Komunikat
	bra.w	Not_OK			;wyjscie z bledem
Dokonaj_Zmian_DO:

	bsr.w	Zapisz_Porty

	Move.l	RPort(PC),a0		;Wydruk nazwy dysku
	Lea	Title1(PC),a1
	Move.w	#0,d0
	Move.w	d0,d1
	CallInt	PrintIText

	Move.l	RPort(PC),a0		;wydruk loga i podkreslenia
	Lea	Logo(PC),a1
	Move.w	#0,d0
	Move.w	d0,d1
	CallInt	DrawImage

	Move.l	RPort(PC),a0
	Lea	Border_Info_Bialy(PC),a1
	Move.w	#0,d0
	Movea.w	d0,d1
	CallInt	DrawBorder

	bsr.w	Aktualnosci

	Move.l	Gadget1(PC),a1		;dodaj Gadgety
	Move.w	Max(PC),d1
	subq.w	#1,d1
	Move.l	moje_okno(PC),a0
	Move.l	#0,d0
Krec_Koleczko:
	Movem.l	a0-a1/d0-d1,-(sp)
	CallInt	AddGadget
	Movem.l	(sp)+,d0-d1/a0-a1
	Adda.l	#moj_SizeOf,a1
	dbf	d1,Krec_Koleczko
	Move.l	Gadget1(PC),d0
	Add.l	dl_gadgetow(PC),d0
	Sub.l	#moj_SizeOf,d0
	Move.l	d0,a0
	Move.l	moje_okno(PC),a1
	Move.l	#0,a2
	CallInt	RefreshGadgets
	Move.b	#True,aktywnosc_okna
	Move.b	#False,male_okno_akt
	Move.l	Moje_Okno(PC),a0

	Lea	Myszka,a1
	Move.w	#16,d0
	Move.w	#16,d1
	Move.w	#0,d2
	Move.w	d2,d3
	CallInt	SetPointer

	bra.w	Wszystko_OK		;wyjscie bez bledow
;==================================================================
Zapisz_Porty:
	Lea	RPort(PC),a1
	Move.l	d0,a0			;Przechowaj adres RPortu i UPortu
	Move.l	wd_RPort(a0),(a1)+
	Move.l	wd_UserPort(a0),(a1)+
	Rts
;==================================================================
Zamknij_Okno:
	Move.l	Moje_Okno(PC),a0
	CallInt CloseWindow
	Move.l	#0,Moje_Okno
	Rts
;==================================================================
Otworz_Male_Okno:
	Lea	Nowe_Male_Okno(PC),a0
	CallInt	OpenWindow
	Move.l	d0,moje_okno
	bne.b	Dokonaj_Zmian_MO
	Move.l	#Brak_Pamieci,Bufor
	bsr.w	Wyswietl_Komunikat
	bra.w	Not_OK			;wyjscie z bledem
Dokonaj_Zmian_MO:

	bsr.b	Zapisz_Porty

	Move.l	Moje_Okno(PC),a0
	Lea	nazwa_okna(PC),a1
	Lea	nazwa_ekranu(PC),a2
	CallInt	SetWindowTitles

	Move.b	#True,aktywnosc_okna
	Move.b	#True,male_okno_akt
	bra.w	Wszystko_OK		;wyjscie bez bledow
;==================================================================
NTSC_CZY_PAL:
	Move.l	[_SysBase].w,a6
	Cmp.b	#PAL,$212(a6)
	beq.b	Wyjscie_NCP
Wstaw_Wartosci_NTSC:
	Lea	NoweDO(PC),a1
	Move.w	#200,nw_Height(a1)
	Move.b	#10,liczba_wierszy
Wyjscie_NCP:
	Rts
;==================================================================
Odczytaj_Ile_Wolnej_Pamieci:
;	Move.l	#0,Bufor
	Move.l	#Memf_Chip,d1		;ile CHIPu
	CallExec AvailMem

	Move.l	d0,Bufor
	Lea	f_creszta(PC),a0

	Bsr.b	Zamien_Na_Litery

	Move.l	#Memf_fast,d1		;ile FASTu
	CallExec AvailMem
	add.l	d0,Bufor
	Lea	f_freszta(PC),a0

	Bsr.b	Zamien_Na_Litery

	Move.l	Bufor(PC),d0		;razem
	Lea	f_treszta(PC),a0
	Bsr.b	Zamien_Na_Litery

	Rts
;==================================================================
Zamien_Na_Litery:
;	w a0 adres docelowy stringu
;	w d0 liczba do zamiany
	Move.w	#7,d7
	Move.l	a0,a1
	Move.l	a0,a2			;przechowaj adres docelowy w a2
Kasowanie_Staroci:
	Move.b	#Spacja,(a1)+
	dbf	d7,Kasowanie_Staroci
	Lea	Tab_Jednostek(PC),a1	;w a1 adres tablicy zawierajacej
					;100000 itd.
Nastepne_Pole
	Move.l	(a1)+,d1		;w d1 100000 itd.
	beq.b	Wytnij_Zera
	Moveq	#0,d2			;w d2 wartosc cyfry w liczbie
	Move.l	d0,d3			;w d3 kopia d0, dla obliczen
Odejmuj:
	sub.l	d1,d3
	bcs.b	Wpisz_Liczbe
	addq.b	#1,d2
	Move.l	d3,d0
	bra.b	Odejmuj
Wpisz_Liczbe:
	Add.b	#Zero_Znak,d2
	Move.b	d2,(a0)+
	bra.b	Nastepne_Pole
Wytnij_Zera:
	Move.w	#6,d7
Wytnij_Zera_Koleczko:
	Cmp.b	#Zero_Znak,(a2)+
	bne.b	Koniec_ZNL
	Move.b	#Spacja,-1(a2)
	dbf	d7,Wytnij_Zera_Koleczko
Koniec_ZNL:
	Rts
;==================================================================
Obsluga_Uzytkownika:
	Lea	wiadomosc(PC),a1
	Move.l	im_Class(a1),d1

	Cmp.l	#RawKey,d1		;a moze cos z klawiatury?
	beq.b	Klawiatura_Uzyta

	Cmp.l	#MouseButtons,d1	;czy wcisnieto prawy klawisz
	beq.w	Klawisz_Myszki		;myszki?

	Cmp.l	#GadgetUp,d1		;czy wybrany zostal jakis
	beq.w	Gadget_Wybrany		;gadget?

	Cmp.l	#CloseWindow,d1		;czy moze zamknac okno?
	beq.w	Wyjdz_I_Zakoncz

	Cmp.l	#ActiveWindow,d1	;czy okno zostalo zaktywizowane?
	beq.b	Okno_Jest_Aktywne

	Cmp.l	#InActiveWindow,d1
	beq.b	Okno_Nie_Jest_Aktywne
					;czyzby nic interesujacego?
	bra.w	Wyjdz_I_Kontynuuj
;==================================================================
;	Procedury obslugi akcji uzytkownika
;--->	w a1 znajduje sie adres struktury IntuiMessage	<---
;==================================================================
Okno_Nie_Jest_Aktywne:
	Move.b	#False,aktywnosc_okna
	bra.w	Wyjdz_I_Kontynuuj
;==================================================================
Okno_Jest_Aktywne:
	Move.b	#True,aktywnosc_okna
	bra.w	Wyjdz_I_Kontynuuj
;==================================================================
Klawiatura_Uzyta:
	Cmp.b	#True,aktywnosc_okna
	bne.w	Wyjdz_I_Kontynuuj	;wyjscie przy oknie nieaktywnym

	Move.w	im_Code(a1),d1

	Cmp.b	#Strzalka_W_Prawo,d1
	beq.w	Zmiana_Trybu		;wyjscie przy zmianie trybu

	Cmp.b	#Help,d1		;czy to klawisz HELP
	beq.b	Jest_Help

Moze_Esc:
	Cmp.b	#ESC,d1
	bne.w	Wyjdz_I_Kontynuuj
	Move.l	moje_okno(PC),a0
	Lea	Body(PC),a1
	Lea	PText(PC),a2
	Lea	NText(PC),a3
	Move.l	#0,d0
	Move.l	d0,d1
	Move.w	#356,d2
	Move.w	#60,d3
	CallInt AutoRequest
	tst.l	d0
	bne.w	Wyjdz_I_Zakoncz
	bra.w	Wyjdz_I_Kontynuuj
;------------------------------------------------------------------
Jest_Help:
	bsr.w	Zamknij_Okno
	Move.l	#Def_Name,List_Name
	bra.w	W1			;skok do procedury czytajacej
					;nowa liste rozkazow
;==================================================================
;	w a1 znajduje sie adres struktury IntuiMessage	===========
;==================================================================
;------------------------------------------------------------------
;	podprocedury G_W
OknoDoPrzodu:
	Move.l	Moje_Okno(PC),a0
	CallInt	WindowToFront
	bra.w	Wyjdz_I_Kontynuuj
;------------------------------------------------------------------
OknoDoTylu:
	Move.l	Moje_Okno(PC),a0
	CallInt	WindowToBack
	bra.w	Wyjdz_I_Kontynuuj
;------------------------------------------------------------------

Gadget_Wybrany:
	Move.l	im_IAddress(a1),a2		;do a2 adres wybranego gadgetu
	Move.w	gg_GadgetID(a2),d1		;do d1 numer gadgetu

	Cmp.w	#TrybID,d1			;Czy to zmiana trybu?
	beq.w	Zmiana_Trybu

	Cmp.w	#WTF,d1				;czy okno do przodu ?
	beq.b	OknoDoPrzodu

	Cmp.w	#WTB,d1				;czy okno do tylu?
	beq.b	OknoDoTylu

	Cmp.l	#b_koment,gg_UserData(a2)
	beq.w	Wyjdz_I_Kontynuuj

	Move.l	a2,-(sp)
	bsr.w	Zamknij_Okno
	Move.l	(sp)+,a2

	Move.l	gg_UserData(a2),d0
	or.b	mode(PC),d0		;w d0 aktualny tryb uruchomiania
	Move.l	moj_Rozkaz(a2),a2	;do a2 adres rozkazu

;----------------Odpalenie programu--------------------------------

	btst	#bit_newF,d0
	bne.b	Wczytaj_Nowa_Liste

	btst	#bit_launch,d0
	bne.b	Tryb_Launch

	btst	#bit_run,d0
	bne.b	Tryb_Run
;----------------Odpalenie programu--------------------------------
	Move.l	a2,d1
	Move.l	#0,d2
	Move.l	d2,d3
	CallDos	Execute
	bra.b	Wyjdz_I_Kontynuuj_GW
;----------------Odpalenie programu i zakonczenie pracy------------
Tryb_Launch:
	bsr.w	Uruchom_Przez_Run
	bra.w	Wyjdz_I_Zakoncz
;----------------Odpalenie programu z zachowaniem aktywnosci
Tryb_Run:
	bsr.w	Uruchom_Przez_Run
	bra.b	Wyjdz_I_Kontynuuj_GW
;------------------------------------------------------------------
Wczytaj_Nowa_Liste:
	Move.l	a2,List_Name
W1:					;to dla wczytania selector.prog*
	Move.l	dl_pliku(PC),d_p1
	Move.l	adres_danych(PC),a_d1
	Move.l	#0,dl_pliku
	Move.l	#0,adres_danych
	bsr.w	Zeruj_Gadgety
	bsr.w	Wczytaj_Dane
	bne.b	Jest_Nowa_Lista
	Move.l	d_p1(PC),dl_pliku
	Move.l	a_d1(PC),adres_danych
	Move.l	#0,d_p1
	Move.l	#0,a_d1
	bsr.b	Zamien_Zera_Na_EOL
	bsr.w	Rozdzielaj
	bra.b	Wyjdz_I_Kontynuuj_GW
Jest_Nowa_Lista:
	Lea	d_p1(PC),a6
	bsr.w	Zwolnij_To
;==================================================================
Wyjdz_I_Kontynuuj_GW:
	Bsr.w	Otworz_Duze_Okno
	beq.w	Wyjdz_I_Zakoncz
	bra.w	Wyjdz_I_Kontynuuj
;==================================================================
Zamien_Zera_Na_EOL:
	Move.l	adres_danych(PC),a1
	Move.l	a1,a3
	Add.l	dl_pliku(PC),a3
Nastepny_Element:
	Move.b	(a1)+,d7
	beq.b	Wpisz_Eol
	Cmp.b	#Eol,d7
	beq.b	Wpisz_Rozdzielacz

Porownaj:
	Cmp.l	a1,a3
	bne.b	Nastepny_Element
	Rts
Wpisz_Eol:
	Move.b	#Eol,-1(a1)
	bra.b	Porownaj
Wpisz_Rozdzielacz:
	Move.b	#rozdzielacz,-1(a1)
	bra.b	Porownaj
;==================================================================
;	w a1 znajduje sie adres struktury IntuiMessage	===========
;==================================================================
Klawisz_Myszki:
	Cmp.b	#True,aktywnosc_okna
	bne.w	Wyjdz_I_Kontynuuj

Badaj_Dalej_KM:
	Move.w	im_Code(a1),d1
	btst	#0,d1
	beq.w	Wyjdz_I_Kontynuuj
	btst	#7,d1
	bne.w	Wyjdz_I_Kontynuuj
;------------------------------------------------------------------

	Move.l	moje_okno(pc),buf_okno

	Cmp.b	#True,male_okno_akt
	bne.b	Obsluz_Duze_Okno
;-----------------Zmiana malego okna na duze-----------------------
	bsr.w	Otworz_Duze_Okno
	bra.b	Wspolne
;-----------------Zmiana duzego okna na male-----------------------
Obsluz_Duze_Okno:
	bsr.w	Otworz_Male_Okno
Wspolne:
	bne.b	Dalej_KM_MO
	Move.l	buf_okno(PC),moje_okno
	bra.w	Wyjdz_I_Zakoncz
Dalej_KM_MO:
	Move.l	buf_okno(PC),a0
	CallInt	CloseWindow
	bra.w	Wyjdz_I_Kontynuuj
;==================================================================
Uruchom_Przez_Run:
;wejscie
;	a2 - adres rozkazu
;
	Moveq	#st_r-1,d7		;do d7 licznik petli
	Lea	wybrany_rozkaz(PC),a3	;do a3 adres bufora
Copy_Rozkaz:
	Move.b	(a2)+,(a3)+
	dbf	d7,Copy_Rozkaz

	Lea	Run_Name(PC),a1
	Move.l	a1,d1
	Move.l	#0,d2
	Move.l	d2,d3
	CallDos	Execute
	Rts
;==================================================================
Zmiana_Trybu:
	Move.b	mode(PC),d1
	addq.b	#1,d1
	Cmp.b	#3,d1
	bne.b	Podstaw_ZT
	moveq	#0,d1
Podstaw_ZT:
	Move.b	d1,mode
	mulu	#7,d1
	Lea	Napis_Exec(PC),a1
	adda	d1,a1
	Lea	G_TIText1(PC),a2
	Lea	G_TIText2(PC),a3
	Move.l	a1,it_IText(a2)
	Move.l	a1,it_IText(a3)
Odswierz_Gad_Tryb:
	Lea	Gad_Tryb(PC),a0
	Move.l	moje_okno(PC),a1
	Move.l	#0,a2
	CallInt	RefreshGadgets
	bra.w	Wyjdz_I_Kontynuuj
;==================================================================
;==================================================================
Wyswietl_Komunikat:

;	TST.L	WindowHandle
;	BNE.B	no_WB

	MOVE.L	#WindowName,D1
	MOVE.L	#Mode_OldFile,D2
	CallDos	Open
	MOVE.L	D0,WindowHandle
	beq.W	Not_OK
	MOVE.L	D0,D1
	BSR.B	PrintError
	MOVEQ	#75,D1				;pause
	CallDos	Delay
	MOVE.L	WindowHandle(PC),D1
	CallDos	Close
	Rts

;no_WB:	MOVE.L	WindowHandle(PC),D1			;CLI window
;	BSR.B	PrintError
;	Rts
;----------------------------------------------------------------
PrintError:
	Move.l	WindowHandle(PC),d1
	MOVE.L	#Przedmowa_P,D2
	MOVEQ	#Przedmowa_K-Przedmowa_P,D3	;dlugosç komunikatu
	CallDos	Write

	MOVE.L	WindowHandle(PC),D1		;CLI window
	MOVE.L	Bufor(PC),D2
	MOVEQ	#Koniec_Kom-Pozegnanie,D3	;dlugosç komunikatu
	CallDos	Write

	MOVE.L	WindowHandle(PC),D1		;CLI window
	MOVE.L	#Przedmowa_K,D2
	MOVEq	#Przedmowa_E-Przedmowa_K,D3	;dlugosç komunikatu
	CallDos	Write
	Rts

;==================================================================
Wez_Window_Handle:
	CallDos	Output
	Move.l	d0,WindowHandle
	Rts
;==================================================================
Parametry:
	tst.l	d0
	beq.b	nie_ma_parametrow
	sub.w	#1,d0
	Clr.w	d1
Wez_Znak:
	Move.b	(a0)+,d1
	Cmp.w	#'-1',d1
	beq.b	Poustawiaj_Zmienne
	Cmp.w	#'-2',d1
	beq.b	Poustawiaj_Zmienne
	Cmp.w	#'-3',d1
	beq.b	Poustawiaj_Zmienne
	Cmp.w	#'-4',d1
	beq.b	Poustawiaj_Zmienne
	Cmp.w	#'-n',d1
	beq.b	Ustaw_NTSC
	Cmp.w	#'-h',d1
	beq.b	Ustaw_Horizontal
Pomnoz:
	Asl.w	#8,d1
	dbf	d0,Wez_Znak
nie_ma_parametrow:
	Rts
Ustaw_NTSC:
	bsr.w	Wstaw_Wartosci_NTSC
	bra.b	Pomnoz
Ustaw_Horizontal:
	Move.b	#True,Koniec_Kom
	bra.b	Pomnoz
Poustawiaj_Zmienne:
	Movem.l	a0/d0-d1,-(SP)
	Sub.w	#'-0',d1
	Move.b	d1,liczba_kolumn
	Sub.w	#1,d1
	Asl.w	#2,d1
	Lea	tab_par(PC),a1
	Lea	XPocz(PC),a2
	Move.w	0(a1,d1.w),(a2)+	;wstaw XPocz
	Move.w	2(a1,d1.w),d2
	Move.w	d2,(a2)			;wstaw szerokosc gadgetu
	Move.w	d2,d0
	Asr.w	#3,d2
	subq.b	#1,d2
	Move.b	d2,st_n			;dlugosc napisu
	Lea	wspolrzedne_c(PC),a1	;obwodki gadgetow
	Lea	wspolrzedne_b(PC),a2
	bsr.b	SetUp_Border_Render_Coo
	Movem.l	(SP)+,d0-d1/a0
	bra.b	Pomnoz
SetUp_Border_Render_Coo:
;----------------------------------------------------------------
;	wejscie
;	a1 - adres wspolrzednych ramki czarnej
;	a2 - adres wspolrzednych ramki bialej
;	d0 - szerokosc ramki
;----------------------------------------------------------------
	Sub.w	#1,d0
	Move.w	d0,8(a1)
	Move.w	d0,12(a1)
	Sub.w	#1,d0
	Move.w	d0,(a1)
	Move.w	d0,4(a1)
	Move.w	d0,16(a2)
	Rts
;==================================================================
Zeruj_Gadgety:
	Move.l	Gadget1(PC),a0		; a0 - adres rekordu
	Lea	Null(PC),a1		; a1 - adres z 0
	Lea	title1(PC),a2
	Move.l	a1,it_IText(a2)
;	Lea	title2(PC),a2
	Move.l	a1,it_IText+it_SizeOf(a2)
	Lea	Border_Bialy(PC),a2	; a2 - adres borderu
	Move.w	Max(PC),d5		; d5 - licznik
	subq.w	#1,d5
Petla_Zeruj_Gadgety:
	Movea.l	a0,a3			;a3 - adres IntuiText
	Adda.l	#gg_SizeOf,a3
	Move.l	#0,(a0)
	Move.w	#GadgHNone+GadgDisabled,gg_Flags(a0)
	Move.w	#RelVerify,gg_Activation(a0)
	Move.w	#BoolGadget,gg_GadgetType(a0)
	Move.l	a2,gg_GadgetRender(a0)
	Move.l	a3,gg_GadgetText(a0)
	Move.w	d5,gg_GadgetID(a0)
	Move.l	#b_koment,gg_UserData(a0)
	Move.b	#kol1,(a3)
	Move.b	#tlo,it_BackPen(a3)
	Move.b	#Jam1,it_DrawMode(a3)
	Move.w	#4,it_LeftEdge(a3)
	Move.w	#2,it_TopEdge(a3)
	Move.l	a1,it_IText(a3)
	Move.l	a1,moj_Rozkaz(a0)
	Add.l	#moj_SizeOf,a0
	dbf	d5,Petla_Zeruj_Gadgety
	Rts
;==================================================================
SetUp_Gadgets:
	bsr.w	Zeruj_Gadgety
	Move.l	#moj_SizeOf,d0
	Move.l	Gadget1(PC),a1		; a1 - adres gadgetu
	Move.w	#wys_gad,d5		; d5 - wysokosc gadgetu
	Move.w	szer_gad(PC),d2		; d2 - szerokosc gadgetu

	Move.b	Koniec_Kom(PC),d7
	bne.b	Poziomo
					;Set X
	Move.w	XPocz(PC),d1		; d1 - wspolrzedna X
	Move.b	liczba_kolumn(PC),d3	; d3 - licznik kolumn
ResetY:
	Move.w	#YPocz,d4		; d4 - wspolrzedna Y
	Move.b	liczba_wierszy(PC),d6	; d6 - licznik wierszy
LoopV:
	bsr.b	Wpisuj
	Add.w	d5,d4
	Add.l	d0,a1
	Subq.b	#1,d6
	bne.b	LoopV
	Add.w	d2,d1
	Subq.b	#1,d3
	bne.b	ResetY
	Rts
;==================================================================
Wpisuj:
	Move.w	d1,gg_LeftEdge(a1)
	Move.w	d4,gg_TopEdge(a1)
	Move.w	d2,gg_Width(a1)
	Move.w	d5,gg_Height(a1)
	Rts
;==================================================================
Poziomo:
	Move.w	#YPocz,d4		; d4 - wspolrzedna Y
	Move.b	liczba_wierszy(PC),d6	; d6 - licznik wierszy
ResetX:
	Move.w	XPocz(PC),d1		; d1 - wspolrzedna X
	Move.b	liczba_kolumn(PC),d3	; d3 - licznik kolumn
LoopH
	bsr.b	Wpisuj
	Add.w	d2,d1
	Add.l	d0,a1
	Subq.b	#1,d3
	bne.b	LoopH
	Add.w	d5,d4
	Subq.b	#1,d6
	bne.b	ResetX
	Rts
;==================================================================
;	Procedury ustawiajace d0 na TRUE lub False, wykorzystywane
;	przy wyjsciach z procedur obslugi uzytownika	===========
;==================================================================
Wyjdz_I_Kontynuuj:
Not_OK:
	Move.b	#False,d0
	Rts

Wyjdz_I_Zakoncz:
Wszystko_OK:
	Move.b	#True,d0
	Rts
;==================================================================
;------------------	Dane programu
_DosBase:	dc.l	0
_GfxBase:	dc.l	0
_IntuitionBase:	dc.l	0

wiadomosc:	blk.b	im_SizeOf,0

tab_par		dc.w	76,488,0,320,8,208,0,160
XPocz		dc.w	0
szer_gad:	dc.w	128
Max		dc.w	70
tab_jednostek	dc.l	10000000,1000000,100000,10000,1000,100,10,1
Null:		dc.l	0			;nie uzywac tej komorki!!
RPort:		dc.l	0
UserPort:	dc.l	0
dl_pliku	dc.l	0
adres_danych:	dc.l	0
d_p1		dc.l	0
a_d1:		dc.l	0
Bufor		dc.l	0
windowhandle:	dc.l	0
buf_okno	dc.l	0
moje_okno	dc.l	0
moj_lock	dc.l	0
Fib_Adres	dc.l	0
Gadget1		dc.l	0
dl_gadgetow	dc.l	0
list_name	dc.l	Def_Name

NoweDO:
	Dc.W	0
	Dc.W	0
	Dc.W	640
	Dc.W	256
	Dc.B	tlo
	Dc.B	kol2
	Dc.L	ActiveWindow+InActiveWindow+MouseButtons+RawKey+GadgetUp
	Dc.L	Activate+BorderLess+RMBTrap
	Dc.L	W_T_F
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.W	0
	Dc.W	0
	Dc.W	0
	Dc.W	0
	Dc.W	WBenchScreen

Nowe_Male_Okno:
	Dc.W	640-85-8*21
	Dc.W	11
	Dc.W	8*21+85
	Dc.W	10
	Dc.B	czarny
	Dc.B	bialy
	Dc.L	ActiveWindow+InActiveWindow+MouseButtons+CloseWindow
	Dc.L	Activate+RMBTrap+WindowClose+WindowDrag+WindowDepth
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.W	0
	Dc.W	0
	Dc.W	0
	Dc.W	0
	Dc.W	WBenchScreen

Logo:
	dc.W	X_Logo
	dc.W	Y_Logo
	dc.W	szer_logo
	dc.W	wys_logo
	dc.W	2
	dc.L	ImagePlane
	dc.B	3
	dc.B	0
	dc.L	0	;podkreslenie_image

;Podkreslenie_Image:
;	dc.W	X_Pod
;	dc.W	Y_Pod
;	dc.W	szer_pod
;	dc.W	1
;	dc.W	1
;	dc.L	Podkreslenie
;	dc.B	1
;	dc.B	1
;	dc.L	0

title1:
	Dc.B	czarny
	Dc.B	tlo
	Dc.B	1
	Dc.B	0
	Dc.W	0
	Dc.W	68
	Dc.L	0
	Dc.L	Null
	Dc.L	title2

title2:
	Dc.B	bialy
	Dc.B	tlo
	dc.b	Jam1
	Dc.B	0
	Dc.W	0
	Dc.W	69
	Dc.L	0
	Dc.L	Null
	Dc.L	0

info1:
	Dc.B	czarny
	Dc.B	tlo
	Dc.B	jam2
	Dc.B	0
	Dc.W	X_i_1
	Dc.W	Y_i_1
	Dc.L	0
	Dc.L	infotext1
	Dc.L	info2

info2:
	Dc.B	czarny
	Dc.B	tlo
	Dc.B	jam2
	Dc.B	0
	Dc.W	X_i_2
	Dc.W	Y_i_2
	Dc.L	0
	Dc.L	infotext2
	Dc.L	info3

info3:
	Dc.B	czarny
	Dc.B	tlo
	Dc.B	jam2
	Dc.B	0
	Dc.W	X_i_3
	Dc.W	Y_i_3
	Dc.L	0
	Dc.L	infotext3
	Dc.L	f_chip

;-------------------------IText do AutoRequester-------------------
Body:
	Dc.B	bialy
	Dc.B	tlo
	Dc.B	jam1
	Dc.B	0
	Dc.W	10
	Dc.W	10
	Dc.L	0
	Dc.L	BodyText
	Dc.L	0

PText:
	Dc.B	bialy
	Dc.B	tlo
	Dc.B	jam1
	Dc.B	0
	Dc.W	6
	Dc.W	4
	Dc.L	0
	Dc.L	PTexttext
	Dc.L	0

NText:
	Dc.B	bialy
	Dc.B	tlo
	Dc.B	jam1
	Dc.B	0
	Dc.W	6
	Dc.W	4
	Dc.L	0
	Dc.L	NTexttext
	Dc.L	0
;------------------------------------------------------------------
f_chip:
	Dc.B	kol1
	Dc.B	tlo
	Dc.B	jam2
	Dc.B	0
	Dc.W	X_f_c
	Dc.W	Y_f_c
	Dc.L	0
	Dc.L	f_ctext
	Dc.L	f_fast


f_fast:
	Dc.B	kol1
	Dc.B	tlo
	Dc.B	jam2
	Dc.B	0
	Dc.W	X_f_f
	Dc.W	Y_f_f
	Dc.L	0
	Dc.L	f_ftext
	Dc.L	f_total


f_total:
	Dc.B	Kol1
	Dc.B	tlo
	Dc.B	jam2
	Dc.B	0
	Dc.W	X_f_t
	Dc.W	Y_f_t
	Dc.L	0
	Dc.L	f_ttext
	Dc.L	0


Border_Bialy:
	Dc.W	0
	dc.w	0
	Dc.B	bialy
	dc.b	czarny
	Dc.B	1
	dc.b	5
	dc.l	wspolrzedne_b
	Dc.L	border_czarny

wspolrzedne_b:	dc.w	1,1,1,10,0,11,0,0,126,0

Border_Czarny:
	Dc.W	0
	Dc.W	0
	Dc.B	czarny
	Dc.B	bialy
	Dc.B	1
	Dc.B	5
	Dc.L	wspolrzedne_c
	Dc.L	0

wspolrzedne_c:	dc.w	126,10,126,1,127,0,127,11,1,11

Border_Info_Bialy:
	Dc.W	X_info
	dc.w	Y_Info
	Dc.B	bialy
	dc.b	czarny
	Dc.B	Jam2
	dc.b	10
	dc.l	wspolrzedne_i_b
	Dc.L	border_info_czarny

wspolrzedne_i_b:	;dc.w	1,1,1,wys_info-2,0,wys_info-1,0,0,szer_info-2,0

	dc.w	1,1
	dc.w	1,wys_info-2
	dc.w	0,wys_info-1
	dc.w	0,0
	dc.w	szer_info-2,0
	dc.w	szer_info-3,1
	dc.w	szer_info-3,wys_info-2
	dc.w	3,wys_info-2
	dc.w	szer_info-4,wys_info-2
	dc.w	szer_info-4,2


Border_info_czarny:
	Dc.W	X_info
	dc.w	Y_info
	Dc.B	czarny
	dc.b	bialy
	Dc.B	Jam2
	dc.b	10
	dc.l	wspolrzedne_i_c
	Dc.L	border_mem_bialy

wspolrzedne_i_c:	;dc.w	szer_info-2,wys_info-2,szer_info-2,1
;		dc.w	szer_info-1,0,szer_info-1,wys_info-1,1,wys_info-1
	dc.w	szer_info-2,wys_info-2
	dc.w	szer_info-2,1
	dc.w	szer_info-1,0
	dc.w	szer_info-1,wys_info-1
	dc.w	1,wys_info-1
	dc.w	2,wys_info-2
	dc.w	2,1
	dc.w	szer_info-4,1
	dc.w	3,1
	dc.w	3,wys_info-3

Border_Mem_Bialy:
	Dc.W	X_mem
	dc.w	Y_mem
	Dc.B	bialy
	dc.b	czarny
	Dc.B	Jam2
	dc.b	10
	dc.l	wspolrzedne_i_b
	Dc.L	border_mem_czarny

;wspolrzedne_m_b:dc.w	1,1,1,wys_mem-2,0,wys_mem-1,0,0,szer_mem-2,0

Border_mem_czarny:
	Dc.W	X_mem
	dc.w	Y_mem
	Dc.B	czarny
	dc.b	bialy
	Dc.B	Jam2
	dc.b	10
	dc.l	wspolrzedne_i_c
	Dc.L	Border_Logo_Bialy

;wspolrzedne_m_c:dc.w	szer_mem-2,wys_mem-2,szer_mem-2,1
;		dc.w	szer_mem-1,0,szer_mem-1,wys_mem-1,1,wys_mem-1

Border_Logo_Bialy:
	Dc.W	X_B_L
	dc.w	Y_B_L
	Dc.B	bialy
	dc.b	czarny
	Dc.B	Jam2
	dc.b	5
	dc.l	wspolrzedne_B_b
	Dc.L	border_Logo_czarny

wspolrzedne_b_b:dc.w	1,1,1,wys_b_logo-2,0,wys_b_logo-1
		dc.w	0,0,szer_b_logo-2,0

Border_Logo_czarny:
	Dc.W	X_B_L
	dc.w	Y_B_L
	Dc.B	czarny
	dc.b	bialy
	Dc.B	Jam2
	dc.b	5
	dc.l	wspolrzedne_b_c
	Dc.L	border_title_bialy

wspolrzedne_b_c:dc.w	szer_b_logo-2,wys_b_logo-2,szer_b_logo-2,1
		dc.w	szer_b_logo-1,0,szer_b_logo-1,wys_b_logo-1
		dc.w	1,wys_b_logo-1
Border_Title_Bialy:
	Dc.W	0
	dc.w	66
	Dc.B	bialy
	dc.b	czarny
	Dc.B	Jam2
	dc.b	5
	dc.l	wspolrzedne_T_B
	Dc.L	border_title_czarny

wspolrzedne_t_b:dc.w	1,1,1,11,0,12
		dc.w	0,0,szer_b_logo-2,0

Border_Title_czarny:
	Dc.W	0
	dc.w	66
	Dc.B	czarny
	dc.b	bialy
	Dc.B	Jam2
	dc.b	5
	dc.l	wspolrzedne_t_c
	Dc.L	0

wspolrzedne_t_c:dc.w	szer_b_logo-2,11,szer_b_logo-2,1
		dc.w	szer_b_logo-1,0,szer_b_logo-1,12
		dc.w	1,12

W_T_F:				;Gadget WindowToFront
	Dc.L	W_T_B
	Dc.W	640-24-3
	Dc.W	0
	Dc.W	24
	Dc.W	10
	Dc.W	GadgHComp
	Dc.W	RelVerify
	Dc.W	BoolGadget
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.W	WTF
	Dc.L	0

W_T_B:				;Gadget WindowToBack
	Dc.L	Gad_Tryb
	Dc.W	640-48-3-1
	Dc.W	0
	Dc.W	24
	Dc.W	10
	Dc.W	GadgHComp
	Dc.W	RelVerify
	Dc.W	BoolGadget
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.L	0
	Dc.W	WTB
	Dc.L	0

Gad_Tryb:
	Dc.L	0
	Dc.W	0
	Dc.W	0
	Dc.W	6*8
	Dc.W	12
	Dc.W	GadgHNone
	Dc.W	RelVerify
	Dc.W	BoolGadget
	Dc.L	0
	Dc.L	0
	Dc.L	G_TIText1
	Dc.L	0
	Dc.L	0
	Dc.W	TrybID
	Dc.L	0

G_TIText1:
	Dc.B	czarny
	Dc.B	tlo
	Dc.B	1
	Dc.B	0
	Dc.W	5
	Dc.W	2
	Dc.L	0
	Dc.L	Napis_Exec
	Dc.L	G_TIText2

G_TIText2:
	Dc.B	bialy
	Dc.B	tlo
	dc.b	Jam1
	Dc.B	0
	Dc.W	3
	Dc.W	2
	Dc.L	0
	Dc.L	Napis_Exec
	Dc.L	0

Napis_Exec:		dc.b	'Exec  ',0
Napis_Run:		dc.b	'Run   ',0
Napis_Launch:		dc.b	'Launch',0
_IntuitionName:	INTNAME	
_DosName:	DOSNAME	
_GfxName:	GRAFNAME
Def_Name:	dc.b	'S:Selector.Programs',0
Run_Name:	dc.b	'c:Run '
wybrany_rozkaz:	blk.b	st_r,0
mode:		dc.b	0
aktywnosc_okna	dc.b	0
male_okno_akt	dc.b	0
Eof:		dc.b	0
st_n		dc.b	15		;dlugosc napisu w gad
liczba_wierszy	dc.b	14
liczba_kolumn	dc.b	5
infotext1:	dc.b	'Written by Saint Group.',0
infotext2:	dc.b	'All ideas from',0
infotext3:	dc.b	'Nico Francois.',0
f_ctext:	dc.b	'CHIP  '
f_creszta:	dc.b	'         bytes free.',0
f_ftext:	dc.b	'FAST  '
f_freszta:	dc.b	'         bytes free.',0
f_ttext:	dc.b	'TOTAL '
f_treszta:	dc.b	'         bytes free.',0
WindowName	dc.b	'Con:145/100/350/38/'
nazwa_okna:	dc.b	'Saint Selector v1.29B',0
nazwa_ekranu	dc.b	'Saint Selector by B.B. & TC!',0
Przedmowa_P:	dc.b	10,$9b,'1mSaint Group Selector melduje: ',10
Przedmowa_K:	dc.b	$9b,'0m',10
Przedmowa_E:
Brak_Pamieci:	dc.b	'Brakuje pamieci dla danych programu.'
Blad_Odczytu:	dc.b	'Nie moge wczytac danych programu.   '
Brak_Intuition:	dc.b	'Nie moge otworzyc intuition.library.'
Brak_GFX:	dc.b	'Nie moge otworzyc graphics.library. '
Pozegnanie:	dc.b	'Pa,pa. Do nastepnego razu.          '
Koniec_Kom:	dc.b	0	;tutaj jest znacznik wydruku horiz-vertik
BodyText:	dc.b	'Czy chcesz wylaczyc Saint Selector''a ?',0
PTexttext:	dc.b	'Pewnie !',0
NTexttext:	dc.b	'Cos ty !',0
;=======================Wspolrzedne dla ramek i textow============
X_Info	=	0		;wspolrzedne do Bordera info
Y_Info	=	11
szer_info=	208+9+4
wys_info=	54
				;wspolrzedne do Bordera memory
szer_Mem=	208+9+4
wys_Mem	=	54
X_Mem	=	640-szer_Mem-X_Info
Y_Mem	=	11

odstep	=	(wys_info-3*8)/4
				;wspolrzedne do Intuitextow memory
X_f_c	=	X_Mem+(szer_mem-(f_ftext-f_ctext-1)*8)/2
Y_f_c	=	Y_Mem+odstep+1
X_f_f	=	X_Mem+(szer_mem-(f_ftext-f_ctext-1)*8)/2
Y_f_f	=	Y_Mem+2*odstep+8+1
X_f_t	=	X_Mem+(szer_mem-(f_ftext-f_ctext-1)*8)/2
Y_f_t	=	Y_Mem+3*odstep+2*8+1

				;wspolrzedne do Intuitextow info
X_i_1	=	X_Info+(szer_info-(infotext2-infotext1-1)*8)/2
Y_i_1	=	Y_Info+odstep+1
X_i_2	=	X_Info+(szer_info-(infotext3-infotext2-1)*8)/2
Y_i_2	=	Y_Info+2*odstep+8+1
X_i_3	=	X_Info+(szer_info-(f_ctext-infotext3-1)*8)/2
Y_i_3	=	Y_Info+3*odstep+2*8+1
				;wspolrzedne Bordera Logo
X_B_L	=	X_Info+szer_Info+4
Y_B_L	=	11
szer_B_logo=	X_Mem-X_B_L-4
wys_B_logo=	54
				;wspolrzedne Logo
szer_logo=	176
wys_logo=	49
X_Logo	=	X_B_L+(szer_b_Logo-szer_logo)/2
Y_Logo	=	Y_B_L+(wys_b_Logo-wys_logo)/2

st2:Section selector2,DATA_C

;Podkreslenie:	dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
;		dc.w	$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
	incdir df0:

Myszka:		incbin	piwo.raw
ImagePlane:	incbin	logos.RAW
