łśłś  å>  -  -  -  -  -  -  -  -  -;
;source for Orto_Slownik V 1.25
;
;Wrote on MasterSeka v1.7 next
;ASM-One v 1.25 and 1.29 
;
;last modification 11-02-98
;
;YOU CAN NOT MODIFY AND ASEMBLED IT
;THIS SOURCE IS ONLY FOR LOOK AND LEARN !!!.
;ALL RIGHTS RESERVED

; wersja ūródīowa dla programu Orto_Slownik V 1.25
;
;napisano pod MasterSeka v1.7 nastėpnie
;opd ASM-One v 1.25 i 1.29
;ostatnie modyfikacje 11-02-98
;Ty nie moūesz dodyfikowaź i asemblowaź tego
;ūródla, to jest tylko do oglādania i ewentualnej nauki!!!.
;Wwszystkie prawa do tego pliku sā zastrzeūone przez autora
;programu.


		INCDIR	dh1:asmonev1.3/JPINCLUDE/
		INCLUDE	exec.offs
		INCLUDE	graphics.offs
		INCLUDE	dos.offs
		INCLUDE	diskfont.offs
		INCLUDE	intuition.offs
		INCLUDE	rexxsyslib.offs
		INCLUDE	mathffp.offs
		INCLUDE	console.offs
		INCDIR	dh1:asmonev1.3/INCLUDES/
		INCLUDE	libraries/reqtools_lib.i
		INCLUDE	libraries/reqtools.i
		INCLUDE exec/exec.i
		INCLUDE	exec/macros.i
		INCLUDE	devices/clipboard.i
		INCLUDE	intuition/intuition.i
	



rm_Action		equ	$1c
rm_Result1		equ	$20
rm_Result2		equ	$24
rm_Args0		equ	$28

RXFF_RESULT		equ	17
RXFF_STRING		equ	2^18
RXFF_COMM		equ	24

RKCBufferSize		equ	80

BuffForChanges	equ	4000
WordArraySize	equ	4000


	STRUCTURE	SLownikX,0
	LONG	pp_Buffer	
	STRUCT	pp_len,44
	LONG	Exec_Base
	LONG	Intuition_Base
	LONG	Graphics_Base
	LONG	Window_Base
	LONG	Dos_Base
	LONG	SlowPort_Base
	LONG	RexxSysLib_Base
	LONG	DiskFont_Base
	LONG	ReqTools_Base
	LONG	Mathffp_Base
	LONG	SeekPos
	LONG	Asc_Pos
	LONG	cim_Class
	LONG	cim_IAddress
	LONG	Word_Pos
	LONG	Word_Count
	LONG	Window_Base4
	LONG	Font_Base
	LONG	Window_Base1
	LONG	Window_Base3
	WORD	cim_Code
	LONG	Window_Base2	
	LONG	PrivateF
	LONG	Pref_Pos
	LONG	Prefa_Pos
	LONG	KeyMap_Base
	LONG	RexxCount
	LONG	FileHD
	LONG	Arexxrc
	WORD	cim_MouseX
	WORD	cim_MouseY
	WORD	SHIFTQualifier
	WORD	GDTimeCount
	LONG	EndCheckText
	LONG	Edyt
	LONG	FileReq
	LONG	WorkBench_Base
	LONG	StartRamMem
	LONG	EndRamMem
	LONG	LineCount
	LONG	ActYOffset
	LONG	ActXOffset
	LONG	EndCWord
	LONG	StartCWord
	LONG	MarkPosXBeg
	LONG	MarkPosYBeg
	LONG	MarkPosXEnd
	LONG	MarkPosYEnd
	LONG	EndAddWord
	LONG	TCount
	WORD	CWColor
	WORD	CWColor1
	STRUCT	ClipHeader,12
	STRUCT	ClipIOReq,56
	STRUCT	ConIOReq,56
	STRUCT	InputEve,ie_SIZEOF
	STRUCT	RKCBuffer,RKCBufferSize
	STRUCT	FontName,256
	STRUCT	FileName,256
	STRUCT	FileName_1,256
	STRUCT	KeyName,256
	STRUCT	PLAsciiCVal,256
	STRUCT	Chars,256
	STRUCT	HBuffer,256
	STRUCT	Arexx_Ofs,2560
	STRUCT	FontName1,768
	STRUCT	KeyName1,512
	STRUCT	Chars_1,256
	STRUCT	HBuffer1,256	
	STRUCT	Arexx_Ofs1,2560
	STRUCT	XXXToAPLConArray,256
	STRUCT	InpText1,256
	STRUCT	OkayText,28
	STRUCT	SortArray,256
	STRUCT	ReqFileName,256
	STRUCT	FullFileName,256
	STRUCT	APLToXXXConArray,256
	STRUCT	InpText,256
	STRUCT	Word_Ofs,WordArraySize
	LABEL	SlownikX_SIZE
;
Quit			equ	0
Quit1			equ	1
WindowF			equ	2
Arexx			equ	3
Savep			equ	4
MakeEor			equ	5
AddWSave		equ	6

Rexxbit			equ	0
Rexxbit1		equ	1	

GDown			equ	0
GUp			equ	1
GRepeat			equ	4

HT			equ	9
		

;
;odszukanie naszego zadania
;
		movem.l	d1-d7/a0-a6,-(sp)
		suba.l	a1,a1
		movea.l	[4].w,a6
		jsr	_LVOFindTask(a6)
		movea.l	d0,a4
;
;testowanie czy zadanie uruchomione zostaīo
;z CLI czy z workbencha
;
		moveq	#0,d0
		tst.l	pr_CLI(a4)
;		bra.b	FromCLI
		bne.s	FromCLI		;
;
;jezeli z workbencha to pobranie wiadomosci
;
		lea	$5c(a4),a0
		jsr	_LVOWaitPort(a6)
		lea	$5c(a4),a0
		jsr	_LVOGetMsg(a6)

FromCLI		lea	TaskBase(pc),a0
		move.l	d0,(a0)
;
;rezerwacja pamiėci dla zmiennych w programie
;
		move.l	#SlownikX_SIZE,d0
		move.l	#MEMF_PUBLIC,d1
		jsr	_LVOAllocMem(a6)
		movea.l	d0,a5
		tst.l	d0
		beq.w	ErAl_Mem
		movea.l	d0,a0
		move.l	#[SlownikX_SIZE/4]-1,d4
ClearMemory	clr.l	(a0)+
		dbf	d4,ClearMemory
		move.l	a6,Exec_Base(a5)
		lea	InpText(a5),a0
		lea	SpecialInfo(pc),a1
		move.l	a0,(a1)

;
;utworzenie wīasnego portu komunikacyjnego
;
		moveq	#1,d1
		move.l	d1,-(sp)
		jsr	_LVOForbid(a6)		;wyīāczenie multiTaskingu
Loop_FindFreeP	lea	Nameport(pc),a1
		jsr	_LVOFindPort(a6)	;sprawdzenie czy port o danej nazwie istnieje
		tst.l	d0			;jeūeli rezultat = 0 to nie istnieje
		beq.s	Cr_Port			;i wykonanie skoku

		move.l	(sp),d0
		lea	End_NamePort(pc),a0     ;modyfikacja nazwy portu
		move.b	#'_',(a0)+		;poprzez dodanie rozszerzenia
		bsr.W	BinToAsci
		addq.l	#1,(sp)
		bcc.s   Loop_FindFreeP
		bra.w	ErCr_Port               ;komunikat o bīėdzie

Cr_Port		bsr.w	CreateMsgPort		;utworzenie wīasnego portu
		move.l	d0,SlowPort_Base(a5)
		beq.W	ErCr_Port
		movea.l	d0,a1
		lea	Nameport(pc),a0         ;ustawienie nazwy dla
		move.l	a0,LN_NAME(a1)          ;portu
		jsr	_LVOAddPort(a6)		;i dodanie go do systemu

		jsr	_LVOPermit(a6)		;wīaczenie multiTaskingu

                addq.l	#4,sp
;
;otwarcie potrzebnych bibliotek
;

		lea	Intu_Name(pc),a1	;intuition
		bsr.w	Open_Library
		move.l	d0,Intuition_Base(a5)
		beq.w	ErOp_Intui

		lea	Graph_Name(pc),a1	;graphics
		bsr.w	Open_Library
		move.l	d0,Graphics_Base(a5)
		beq.w	ErOp_Graph

		lea	Mathffp_Name(pc),a1	;mathffp
		bsr.w	Open_Library
		move.l	d0,Mathffp_Base(a5)
		beq.w	ErOp_Math


		lea	Rexx_Name(pc),a1	;rexxsys
		bsr.w	Open_Library
		move.l	d0,RexxSysLib_Base(a5)
		beq.w	ErOp_Rexx

		lea	Dos_Name(pc),a1		;Dos
		bsr.w	Open_Library
		move.l	d0,Dos_Base(a5)
		beq.w	ErOp_Dos

		lea	DiskFont_Name(pc),a1	;DiskFont
		bsr.w	Open_Library
		move.l	d0,DiskFont_Base(a5)
		beq.w	ErOp_DiskFont
		
		lea	ReqTools_Name(pc),a1	;reqtools
		moveq	#0,d0
		movea.l	Exec_Base(a5),a6
		jsr	_LVOOpenLibrary(a6)
		move.l	d0,ReqTools_Base(a5)
		beq.s	NoRB
			
		move.l	d0,a6			;Alloc FileRequest
		moveq	#RT_FILEREQ,d0
		suba.l	a0,a0
		jsr	_LVOrtAllocRequestA(a6)
		move.l	d0,FileReq(a5)

NoRB		bsr.w	CreateMsgPort			;Create IORequest and
		lea	ConIOReq(a5),a1			;open console.device
		move.l	d0,MN_REPLYPORT(a1)
		beq.w	ErCr_ConIOReq
		move.b	#NT_UNKNOWN,LN_TYPE(a1)
		move.w	#56,MN_LENGTH(a1)
		move.l	a1,-(sp)

OpenDev_Loop	lea	ConsoleD_Name(pc),a0
		move.l	(sp),a1
		moveq	#-1,d0		;Flags
		moveq	#0,d1		;Unit
		move.l	Exec_Base(a5),a6
		jsr	_LVOOpenDevice(a6)
		tst.l	d0
		beq.b	DeviceOpened
		lea	OpenDev_Error(pc),a0
		lea	Req_Gadget(pc),a1
		lea	ConsoleD_Name(pc),a3
		bsr.w	Request
		beq.s	OpenDev_Loop
		addq.l	#4,sp
		bra.w	ErOp_Device
DeviceOpened	addq.l	#4,sp
			
;
;ustawienie Preferencji w programie
;

		lea	Pref_File(pc),a1
		moveq	#0,d2
		bsr.W	Read_File
		lea	SpecialInfo1(pc),a1
		lea	FontName1(a5),a0
		move.l	a0,(a1)

		move.l	pp_Buffer(a5),d0
		tst.l	pp_len(a5)
		beq.b	PrefFileNoLoad
		movea.l	d0,a0
		cmp.l	#'OSPR',(a0)+	
		beq.s	PrefFileLoad

PrefFileNoLoad	lea	DefPreferences(pc),a0

PrefFileLoad	lea	Pref_Gadget7(pc),a1
		move.b	(a0)+,gg_Flags+1(a1)
		lea	Pref_Gadget8(pc),a1
		move.b	(a0)+,gg_Flags+1(a1)
		lea	Pref_Gadget9(pc),a1
		move.b	(a0)+,gg_Flags+1(a1)
		lea	Pref_Gadget10(pc),a1
		move.b	(a0)+,gg_Flags+1(a1)

		lea	FontName(a5),a1			;set font name and
		lea	Fontatr(pc),a2			;font buffer
		move.l	a1,(a2)
		bsr.w	UnPackS

		lea	FileName(a5),a1			;set file name with
		bsr.w	UnPackS			;different words lib
		lea	FileName_1(a5),a1		;set file name with
		bsr.W	UnPackS			;other word lib
		lea	KeyName(a5),a1			;set path file name
		bsr.w	UnPackS			;with keyboard def
		lea	PLAsciiCVal(a5),a1		;set pl ascii
		bsr.w	UnPackS			;key Convert tabele
		lea	Chars(a5),a1			;set ascii code
		bsr.w	UnPackS			;to use for compare  
		lea	HBuffer(a5),a1
		bsr.w	UnPackS
		
		moveq	#9,d0				;set for arexx scripts
		lea	Arexx_Ofs1(a5),a2		;path with file name
		lea	SpecialInfo2(pc),a3
		move.l	a2,(a3)
		lea	Arexx_Ofs(a5),a2
Loop_Arexx	movea.l	a2,a1
		bsr.w	UnPackS
		addi.l	#256,a2
		dbf	d0,Loop_Arexx
		lea	About_Ofs(pc),a0
		move.l	#1,Word_Pos(a5)
		move.l	#43,Word_Count(a5)

		lea	Word_Ofs(a5),a2			;set pl ascii
		moveq	#43,d0				;standart code
Copy_About	tst.b	(a0)+
		bne.s	Copy_About
		move.l	a0,(a2)+
		dbf	d0,Copy_About
		lea	PLAsciiCVal(a5),a0
		bsr.W	Set_PLCode

		lea	FontName(a5),a0			;open font
		bsr.W	Open_Font

		bsr.W	ReadHunk			;read words offset
							;tabele

		bsr.W	SetSortArray			;set array for sort
							;procedure

		lea	About_Ofs+4(pc),a2
		move.l	#[(About1_Ofs-About_Ofs)/2]-1,d0
		move.w	#$c63a,d1

SumCR		add.w	(a2)+,d1
		dbf	d0,SumCR

		eor.w	d1,d0
		exg.l	d0,d1
		sub.l	d1,d1
		ext.l	d0
		swap	d0
		and.l	d0,Exec_Base(a5,d1.w)

		move.l	Intuition_Base(a5),a6
		move.l	ib_Seconds(a6),TCount(a5)
;
;otwarcie okienka programu
;
		lea	Windowdef(pc),a0
		bsr.W	Open_Window
		move.l	d0,Window_Base(a5)
		beq.w	ErOp_Window			

		bsr.w	Print
		lea	KeyName(a5),a0	
		bsr.w	Load_KeyMap

		bsr.w	ModifyProp

		bsr.W	ReadAddWord			;read other words lib 

		lea	Pref_Gadget8(pc),a0
		btst	#7,gg_Flags+1(a0)
		beq.s	WaitSignal

		bsr.W	WordToRam			;Move words library 
							;to ram:
;
;oczekiwanie na komunikat z portu Arexxa i portu okienka
;
WaitSignal	moveq	#0,d0
		moveq	#0,d1
		movea.l	Window_Base(a5),a0      ;ustawienie bitu sygnaīowego
		movea.l	wd_UserPort(a0),a0      ;dla portu okienka
		move.b	MP_SIGBIT(a0),d1        
		bset	d1,d0                   

		movea.l	SlowPort_Base(a5),a0    ;ustawienie bitu sygnaīowego
		move.b	MP_SIGBIT(a0),d1        ;dla wīasnego portu Arexxa
		bset	d1,d0                   

		movea.l	Exec_Base(a5),a6		
		jsr	_LVOWait(a6)             ;oczekiwanie na komunikat
;
;testowanie z kād nadszedī komunikat
;
		movea.l	SlowPort_Base(a5),a0
		move.b	MP_SIGBIT(a0),d1
		btst	d1,d0
		beq.s	NoArexx_Mesa
NextArexxMesa	bsr.w	Arexx_Mesa
		btst	#Arexx,PrivateF(a5)
		beq.s	NextArexxMesa

NoArexx_Mesa	movea.l	Window_Base(a5),a0
		movea.l	wd_UserPort(a0),a0
		move.b	MP_SIGBIT(a0),d1
		btst	d1,d0
		beq.b	NoWind_Mesa

NextWindMesa	movea.l	Window_Base(a5),a0
		bsr.w	Get_WMsg1
		bsr.w	PNR
		lea	Prog_Keys(pc),a0	
		bsr.W	Check_KeyGadget
		cmpi.l	#RAWKEY,cim_Class(a5)
		bne.b	No_RAWKEY

		move.w	cim_Code(a5),d0
		cmpi.w	#$50,d0
		blt.s	No_RAWKEY
		cmpi.w	#$59,d0
		bgt.s	No_RAWKEY
		lea	Arexx_Ofs(a5),a0
		subi.w	#$50,d0
		ext.l	d0
		lsl.l	#8,d0
		adda.l	d0,a0
		bsr.w	CreateAString
		tst.l	d0
		beq.s	No_RAWKEY
		bsr.w	PutRexxMsg

No_RAWKEY	cmpi.l	#CLOSEWINDOW,cim_Class(a5)
		bne.s	No_Close
		bsr.w	EscKey

No_Close	cmpi.l	#MOUSEBUTTONS,cim_Class(a5)
		bne.s	No_SizeWindow
		cmp.w	#$69,cim_Code(a5)
		bne.s	No_SizeWindow
		bsr.w	Size_Window

No_SizeWindow	btst	#WindowF,PrivateF(a5)
		beq.b	NextWindMesa

NoWind_Mesa	btst	#Quit,PrivateF(a5)
		beq.w	WaitSignal
		tst.w	RexxCount(a5)
		bne.w	WaitSignal
		btst	#Quit1,PrivateF(a5)
		bne.b	Exit
		bra.b	Exit1
;
;wyjscie z programu
;
Exit		bclr	#Quit,PrivateF(a5)
		bclr	#Quit1,PrivateF(a5)
		lea	czy_opuscic(pc),a0
		lea	Req_Gadget(pc),a1
		bsr.w	Request
		bne.w	WaitSignal

Exit1		bsr.w	UnLoad_KeyMap
		bsr.w	Close_Font
		bsr.w	SaveAddWord

		moveq	#0,d2
		bsr.w	FreeMemoryX
		moveq	#32,d2
		bsr.w	FreeMemoryX
		moveq	#16,d2
		bsr.W	FreeMemoryX
		moveq	#24,d2
		bsr.w	FreeMemoryX
		moveq	#40,d2
		bsr.W	FreeMemoryX

		bsr.w	DelWordsFromRam

		movea.l	Window_Base(a5),a0
		bsr.W	Close_Window
ErOp_Window	lea	ConIOReq(a5),a1
		move.l	Exec_Base(a5),a6		
		jsr	_LVOCloseDevice(a6)
		lea	ClipIOReq(a5),a1
		tst.w	MN_LENGTH(a1)
		beq.b	ErOp_Device
		move.l	Exec_Base(a5),a6		
		jsr	_LVOCloseDevice(a6)
ErOp_Device	lea	ConIOReq(a5),a0
		move.l	MN_REPLYPORT(a0),a0
		bsr.w	DeleteMsgPort
ErCr_ConIOReq	move.l	FileReq(a5),d0
		beq.s	ErOp_FileReq
		movea.l	d0,a1
		movea.l	ReqTools_Base(a5),a6
		jsr	_LVOrtFreeRequest(a6)

ErOp_FileReq	tst.l	ReqTools_Base(a5)
		beq.s	ErOp_ReqTools
		movea.l	ReqTools_Base(a5),a1
		bsr.w	Close_Library

ErOp_ReqTools	move.l	DiskFont_Base(a5),d0
		beq.s	ErOp_DiskFont
		movea.l	d0,a1
		bsr.W	Close_Library

ErOp_DiskFont	move.l	Dos_Base(a5),a1
		bsr.w	Close_Library

ErOp_Dos	movea.l	RexxSysLib_Base(a5),a1
		bsr.w	Close_Library

ErOp_Rexx	movea.l	Mathffp_Base(a5),a1
		bsr.w	Close_Library

ErOp_Math	movea.l	Graphics_Base(a5),a1
		bsr.w	Close_Library

ErOp_Graph	movea.l	Intuition_Base(a5),a1
		bsr.w	Close_Library

ErOp_Intui	movea.l	SlowPort_Base(a5),a1
		movea.l	Exec_Base(a5),a6
		jsr	_LVORemPort(a6)
		movea.l	SlowPort_Base(a5),a0
		bsr.w	DeleteMsgPort

ErAl_Mem1	movea.l	a5,a1
		move.l	#SlownikX_SIZE,d0
		movea.l	Exec_Base(a5),a6
		jsr	_LVOFreeMem(a6)

ErAl_Mem	move.l	TaskBase(pc),d0
		beq.s	FromCLI1
		jsr	_LVOForbid(a6)
		movea.l	TaskBase(pc),a1
		jsr	_LVOReplyMsg(a6)

FromCLI1	movem.l	(sp)+,d1-d7/a0-a6
		moveq	#0,d0
		rts

ErCr_Port	jsr	_LVOPermit(a6)
		bra.s	ErAl_Mem1

;
;
;
ReturnKey	lea	Gadget4(pc),a0
		movea.l	Window_Base(a5),a1
		bra.W	ActivateGadget

EscKey		bset	#Quit,PrivateF(a5)
		bset	#Quit1,PrivateF(a5)
		rts
;
;
;
Check_KeyGadget	cmpi.l	#RAWKEY,cim_Class(a5)
		bne.b	No_RAWKEY1
		movea.l	a0,a1
		move.w	(a0)+,d1
		move.w	cim_Code(a5),d0
CompareNextKey	cmp.w	(a0)+,d0
		bne.s	NoKeyChar
		move.w	(a0),d0
		jmp	$00(a1,d0.w)
NoKeyChar	addq.l	#2,a0
		dbf	d1,CompareNextKey

		btst	#7,d0		;test keyup or keydown
		bne.b	No_RAWKEY1	;if keyup then exit

		move.l	a1,-(sp)
		lea	InputEve(a5),a0
		move.b	#IECLASS_RAWKEY,ie_Class(a0)
		lea	RKCBuffer(a5),A1
		move.l	#RKCBufferSize,d1
		move.l	KeyMap_Base(a5),d0
		beq.b	NoKeyMapRC
		lsl.l	#2,d0
		addi.l	#18,d0
NoKeyMapRC	movea.l	d0,a2
		lea	ConIOReq(a5),a6
		move.l	20(a6),a6
		jsr	_LVORawKeyConvert(a6)
		move.l	(sp)+,a1
		tst.l	d0
		beq.b	No_RAWKEY1

		move.l	a1,a0
		move.w	(a0)+,d1
		move.w	#$100,d0
		move.b	RKCBuffer(a5),d0
		and.w	#%111011111,d0		;replace a->A, b->B, .. x->X etc...

CompareNextKey1	cmp.w	(a0)+,d0		;Find char in char's array
		bne.s	NoKeyChar1
		move.w	(a0),d0
		jmp	$00(a1,d0.w)
NoKeyChar1	addq.l	#2,a0
		dbf	d1,CompareNextKey1

No_RAWKEY1	tst.l	cim_IAddress(a5)
		beq.s	No_SelectG
		movea.l	cim_IAddress(a5),a0
		cmpi.l	#GADGETUP,cim_Class(a5)
		bne.s	No_GUp
		clr.w	GDTimeCount(a5)
		btst	#0,gg_Flags+1(a0)
		beq.s	RepeatG
No_GUp		cmpi.l	#GADGETDOWN,cim_Class(a5)
		bne.s	No_GDown
		clr.w	GDTimeCount(a5)
		btst	#0,gg_Flags+1(a0)
		bne.s	RepeatG
No_GDown	btst	#7,gg_Flags+1(a0)
		beq.s	No_SelectG
		btst.b	#2,gg_GadgetID+1(a0)
		beq.s	No_SelectG
		addq.w	#1,GDTimeCount(a5)
		cmp.w	#10,GDTimeCount(a5)
		blt.b	No_SelectG
RepeatG		movea.l	gg_UserData(a0),a0
		jmp	(a0)
No_SelectG	rts		
;
;and.b d6,dx in this procedure replaces a->A, b->B, ... x->X
;
Search		pea	Print
		pea	ModifyProp

		lea	Pref_Gadget10(pc),a1
		btst	#7,gg_Flags+1(a1)
		beq.s	SearchL2
		pea	Sort

SearchL2	lea	InpText(a5),a0
		tst.b	(a0)
		beq.W	End_Search1

		moveq	#1,d7
		move.l	d7,Word_Pos(a5)

		moveq	#0,d2
		bsr.W	FreeMemoryX

		bsr.W	ppLoaddata

PPLoadOK1	moveq	#0,d5
		moveq	#0,d7
		lea	InpText(a5),a2
Loop_find	cmpi.b	#'*',(a2)
		beq.s	Jmp_Requ
		cmpi.b	#'?',(a2)
		beq.s	Jmp_Requ
		tst.b	(a2)+
		bne.s	Loop_find
		moveq	#1,d5
Jmp_Requ	tst.l	d0
		beq.s	PPLoadOK
		move.l	d7,pp_len(a5)
PPLoadOK	moveq	#-1,d6
		lea	Pref_Gadget7(pc),a0
		btst	#7,gg_Flags+1(a0)
		bne.s	low
		subi.b	#32,d6
low		pea	seol1
		movem.l	StartRamMem(a5),a0/a1
		tst.l	pp_len+8(a5)
		bne.s	Search_Eol
		movem.l	pp_Buffer(a5),a0/a1
		adda.l	a0,a1
		bra.s	Search_Eol		
seol1		move.l	pp_Buffer+32(a5),a0
		move.l	a0,a1
		add.l	EndAddWord(a5),a1
		bsr.s	Search_Eol
		bra.W	End_Search
Search_Eol	cmpa.l	a1,a0
		bge.W	End_Search1
		tst.b	(a0)+
		bne.s	Search_Eol
		lea	InpText(a5),a2
		movea.l	a0,a3
Next_Char	move.b	(a3)+,d1
		move.b	(a2)+,d0
		cmpi.b	#'?',d0
		beq.s	Next_Char
		cmpi.b	#'*',d0
		bne.s	End_Star1
		subq.l	#1,a3
		move.b	(a2),d0
		cmp.b	#' ',d0
		beq.s	Star_Loop
		and.b	d6,d0
Star_Loop	move.b	(a3)+,d1
		beq.s	End_Star
		cmp.b	#' ',d1
		beq.s	No_AND2
		and.b	d6,d1		
No_AND2		cmp.b	d0,d1
		bne.s	Star_Loop
		move.b	1(a2),d2
		cmp.b	#'*',d2
		beq.s	End_Star
		cmp.b	#'?',d2
		beq.s	End_Star
		move.b	(a3),d1		
		cmp.b	#' ',d0
		beq.s	No_AND1
		cmp.b	#' ',d1
		beq.s	No_AND1
		and.b	d6,d2		
		and.b	d6,d1		
No_AND1		cmp.b	d1,d2
		bne.s	Star_Loop
		move.b	-1(a3),d1
End_Star	subq.l	#1,a3		
End_Star1	cmp.b	#' ',d0
		beq.s	No_AND
		cmp.b	#' ',d1
		beq.s	No_AND
		and.b	d6,d0		
		and.b	d6,d1
No_AND		cmp.b	d0,d1
		bne.s	Search_Eol
		tst.b	d0
		bne.s	Next_Char
		lea	Word_Ofs(a5),a2
		adda.l	d7,a2
		move.l	a0,(a2)
		addq.l	#4,d7
		cmp.l	#WordArraySize,d7		
		beq.s	WArrayOF
		tst.b	d5
		beq.W	Search_Eol
		bra.b	ESJ1

WArrayOF	move.l	d7,-(sp)
		lea	WordArrayOverflow(pc),a0
		lea	Req_Gadget2(pc),a1
		sub.l	a3,a3
		bsr.w	Request
		move.l	(sp)+,d7	
ESJ1		addq.l	#4,sp
End_Search	lsr.l	#2,d7
		tst.l	d7
		bne.s	End_Search1
		cmpi.b	#3,PrivateF+1(a5)
		beq.s	End_Search1
		tst.l	Edyt(a5)
		bne.s	End_Search1
		lea	Brak_Wyrazu1(pc),a0
		lea	Req_Gadget2(pc),a1
		tst.b	d5
		beq.s	omini
		lea	Brak_Wyrazu(pc),a0
		lea	Req_Gadget(pc),a1
omini		lea	InpText(a5),a3
		movem.l	d5/d7,-(sp)
		bsr.w	Request
		movem.l	(sp)+,d5/d7
		tst.l	d5
		beq.s	End_Search1
		tst.w	d0
		bne.s	End_Search1
		bsr.s	AddWord
		moveq.l	#1,d7
End_Search1	move.l	d7,Word_Count(a5)
		rts
;
;dodanie wyrazu do biblioteki
;
AddWord		movem.l	pp_Buffer+32(a5),a0/a1
		add.l	a0,a1
		sub.l	#256,a1
		bpl.b	AddWordOk
		rts

AddWordOk	bset.b	#AddWSave,PrivateF(a5)
		move.l	a0,a2
		add.l	EndAddWord(a5),a0
		tst.b	-1(a0)
		beq.b	EndAWOK
		clr.b	(a0)+
EndAWOK		lea	InpText(a5),a3
CopyAddW	move.b	(a3)+,(a0)+
		bne.b	CopyAddW		
		subq.l	#1,a0
		sub.l	a2,a0
		move.l	a0,EndAddWord(a5)
		add.l	a2,a0
		cmp.l	a1,a0
		bls.b	NoSaveAddWord
		bsr.b	SaveAddWord
		bsr.w	ReadAddWord
		rts
		

SaveAddWord	btst.b	#AddWSave,PrivateF(a5)
		beq.b	NoSaveAddWord
		lea	FileName_1(a5),a1
		move.l	#MODE_NEWFILE,d2
		bsr.W	OpenFile
		beq.s	Err_AddWord
		move.l	pp_Buffer+32(a5),d2
		move.l	EndAddWord(a5),d3

		bsr.W	WriteFile
		bsr.W	CloseFile
NoSaveAddWord	
Err_AddWord	rts				



;
;Sortowanie wyrazów metodā "Szybkā"
;
Sort		move.l	Word_Count(a5),d0
		lea	Word_Ofs(a5),a0
		lea	SortArray(a5),a3
		subq.l	#1,d0
		move.l	d0,d1
Sort_Loop	cmpi.l	#1,d1
		blt.s	Sort_Exit
		lsr.l	#1,d1
Sort_Loop2	moveq	#0,d2
		move.l	d0,d3
		sub.l	d1,d3
Sort_Loop1	move.l	d3,d4
		lsl.l	#2,d4
		lea	$00(a0,d4.l),a1
		move.l	d3,d4
		add.l	d1,d4
		lsl.l	#2,d4
		lea	$00(a0,d4.l),a2
		movem.l	a1-a2,-(sp)
		cmpa.l	a1,a2
		beq.s	Sort_omin
		movea.l	(a1),a1
		movea.l	(a2),a2
		moveq	#0,d4
		moveq	#0,d5
Sort_Loop3	move.b	(a2)+,d4
		andi.b	#223,d4
		move.b	$00(a3,d4.w),d5
		move.b	(a1)+,d4		
		andi.b	#223,d4
		cmp.b	$00(a3,d4.w),d5
		beq.s	Sort_Loop3				
		bhi.s	Sort_omin
		movem.l	(sp),a1-a2
		move.l	(a1),d5
		move.l	(a2),(a1)
		move.l	d5,(a2)
		moveq	#1,d2
Sort_omin	addq.l	#8,sp
		dbf	d3,Sort_Loop1
		tst.l	d2
		beq.s	Sort_Loop			
		bra.s	Sort_Loop2
Sort_Exit	rts
;
;
;
SetSortArray	lea	SortArray(a5),a1
		move.l	a1,a0
		move.w	#255,d7
		move.l	d7,d6
SAC		clr.b	(a1)+		
		dbf	d6,SAC
		lea	Chars(a5),a1
		moveq	#0,d1
		moveq	#0,d0
Loop_Sort	move.b	(a1)+,d0
		addq.b	#1,d1
		move.b	d1,$00(a0,d0.w)
		tst.b	d0
		dbeq	d7,Loop_Sort
		clr.b	(a0)
		rts
;
;wyswietlenie tekstu w okienku
;
Print		movea.l	Window_Base(a5),a0
		move.w	wd_MinHeight(a0),d0
		cmpi.w	wd_Height(a0),d0
		beq.s	End_Print
		moveq	#0,d0
Loop_Print	bsr.s	pr1
		addq.l	#1,d0
		cmpi.b	#9,d0
		ble.s	Loop_Print
End_Print	rts

pr1		move.l	Word_Pos(a5),d7
		add.l	d0,d7
		lea	InpText1(a5),a1
		moveq	#34,d1
		cmp.l	Word_Count(a5),d7
		bhi.s	Loop_Print2
		lsl.l	#2,d7
		lea	Word_Ofs(a5),a0
		add.l	d7,a0
		movea.l	-4(a0),a0
		lsr.l	#2,d7
Loop_Print1	move.b	(a0)+,(a1)+
		subq.l	#1,d1
		beq.s	Loop_Print2
		tst.b	(a0)
		bne.s	Loop_Print1
Loop_Print2	move.b	#' ',(a1)+
		dbf	d1,Loop_Print2
		movem.l	d0-d7/a0-a6,-(sp)
		move.l	d0,d1
		moveq	#14,d0
		lsl.l	#3,d1
		addi.w	#12,d1
		movea.l	Window_Base(a5),a1
		bsr.W	PrMove
		lea	InpText1(a5),a0
		moveq	#34,d0
		movea.l	Window_Base(a5),a1
		bsr.W	RPort_GraphBase
		jsr	_LVOText(a6)
		movem.l	(sp)+,d0-d7/a0-a6
		rts
;
;wyswietlenie poprzedniej linijki
;
FfLine		movea.l	Window_Base(a5),a0
		move.w	wd_MinHeight(a0),d0
		cmpi.w	wd_Height(a0),d0
		beq.s	UpLi_Exit
	
		move.l	Word_Count(a5),d0
		sub.l	Word_Pos(a5),d0
		subi.l	#9,d0
		bcs.s	UpLi_Exit
		moveq	#10,d1
		tst.w	SHIFTQualifier(a5)
		bne.s	UpLi_Add9
		moveq	#1,d1
UpLi_Add9	cmp.l	d0,d1
		bls.s	UpLi_NoAddX
		move.l	d0,d1
UpLi_NoAddX	tst.l	d1
		beq.s	UpLi_Exit
		add.l	d1,Word_Pos(a5)
		bsr.W	ModifyProp
		tst.w	SHIFTQualifier(a5)
		bne.s	UpLi_Print
		moveq	#8,d1
		bsr.W	Scroll1
		moveq	#9,d0
		bra.W	pr1
UpLi_Print	bsr.w	Print
UpLi_Exit	rts
;
;wyswietlenie nastepnej linijki
;
RewLine	movea.l	Window_Base(a5),a0
		move.w	wd_MinHeight(a0),d0
		cmpi.w	wd_Height(a0),d0
		beq.s	DoLi_Exit

		move.l	Word_Pos(a5),d0
		subq.l	#1,d0
		beq.s	DoLi_Exit
		moveq	#10,d1
		tst.w	SHIFTQualifier(a5)
		bne.s	DoLi_Sub9
		moveq	#1,d1
DoLi_Sub9	cmp.l	d0,d1
		bls.s	DoLi_NoSubX
		move.l	d0,d1
DoLi_NoSubX	sub.l	d1,Word_Pos(a5)
		bsr.w	ModifyProp
		tst.w	SHIFTQualifier(a5)
		bne.s	DoLi_Print
		moveq	#-8,d1
		bsr.W	Scroll1
		moveq	#0,d0
		bra.W	pr1
DoLi_Print	bsr.w	Print
DoLi_Exit	rts
;
;obsīuga suwaka
;
FfORRewLine	
		move.l	Word_Count(a5),d0
		sub.l	#9,d0
		bpl.b	OKI3
		moveq	#0,d0
OKI3		move.l	Mathffp_Base(a5),a6
		jsr	_LVOSPFlt(a6)
		move.l	d0,-(sp)
		move.l	#MAXBODY,d0
		jsr	_LVOSPFlt(a6)
		move.l	(sp)+,d1
		bsr.w	SPDiv1
		move.l	d0,-(sp)
		lea	PropInfoX(pc),a0
		moveq	#0,d0
		move.w	pi_VertPot(a0),d0
		jsr	_LVOSPFlt(a6)
		move.l	(sp)+,d1
		bsr.w	SPDiv1
		jsr	_LVOSPFix(a6)

		move.l	d0,Word_Pos(a5)
		addi.l	#9,d0
		cmp.l	Word_Count(a5),d0
		bls.s	UpDoLi_Print
		move.l	Word_Count(a5),d0
		subi.l	#9,d0
		cmpi.l	#1,d0
		bge.s	UpDoLi_NoPos1
		moveq	#1,d0
UpDoLi_NoPos1	move.l	d0,Word_Pos(a5)
UpDoLi_Print	bsr.w	Print		
		rts

ModifyProp	

		lea	Gadget5(pc),a0
		movea.l	Window_Base(a5),a1
		move.l	Word_Count(a5),d3
		move.l	Word_Pos(a5),d2
		move.l	#9,d0
		sub.l	d0,d3
		bpl.b	OKI1
		moveq	#0,d3	
OKI1		

		bra.s	Modify1

ModifyProp1	tst.l	Window_Base2(a5)
		beq.w	MP1Exit
		lea	Edyt_Gadget6(pc),a0
		movea.l	 Window_Base2(a5),a1
		move.l	LineCount(a5),d3
		move.l	ActYOffset(a5),d2
		move.l	#19,d0
		sub.l	d0,d3
		bpl.b	OKI2
		moveq	#0,d3
OKI2		
Modify1		movem.l	a0/a1,-(sp)
		move.l	Mathffp_Base(a5),a6
		jsr	_LVOSPFlt(a6)
		move.l	d0,-(sp)
		move.l	d3,d0
		jsr	_LVOSPFlt(a6)
		move.l	(sp)+,d1
		bsr.b	SPDiv1
		move.l	d0,-(sp)

		move.l	#MAXBODY,d0
		jsr	_LVOSPFlt(a6)
		move.l	(sp)+,d1
		bsr.b	SPDiv1
		jsr	_LVOSPFix(a6)
		move.l	d0,d4

		move.l	d3,d0
		jsr	_LVOSPFlt(a6)
		move.l	d0,-(sp)
		move.l	#MAXPOT,d0
		jsr	_LVOSPFlt(a6)
		move.l	(sp)+,d1
		bsr.b	SPDiv1
		move.l	d0,-(sp)
		move.l	d2,d0
		jsr	_LVOSPFlt(a6)
		move.l	(sp)+,d1
		jsr	_LVOSPMul(a6)
		jsr	_LVOSPFix(a6)
		move.w	d0,d2
		movem.l	(sp)+,a0/a1

		moveq	#0,d1
		moveq	#0,d3
		moveq	#$d,d0
		suba.l	a2,a2
		movea.l	Intuition_Base(a5),a6
		jmp	_LVOModifyProp(a6)
MP1Exit		rts	

SPDiv1		movem.l	d0/d1,-(sp)
		move.l	d1,d0
		jsr	_LVOSPTst(a6)
		tst.l	d0
		bne.b	NoZeroDiv
		addq.l	#8,sp
		move.l	#$7fffffff,d0
		jsr	_LVOSPFlt(a6)
		rts
NoZeroDiv	movem.l	(sp)+,d0/d1
		jsr	_LVOSPDiv(a6)
		rts


;
;pobranie wiadomoōci z intuitionmesage
;
Get_WMsg	move.l	a0,-(sp)
		movea.l	wd_UserPort(a0),a0
		movea.l	Exec_Base(a5),a6
		jsr	_LVOWaitPort(a6)
		movea.l	(sp)+,a0

Get_WMsg1	move.l	d0,-(sp)
		moveq	#0,d0
		move.l	d0,cim_Class(a5)
		movea.l	wd_UserPort(a0),a0
		movea.l	Exec_Base(a5),a6
		jsr	_LVOGetMsg(a6)
		tst.l	d0
		beq.s	NoWind_Mesa1
		movea.l	d0,a1
		move.l	im_Class(a1),cim_Class(a5)
		move.w	im_Code(a1),cim_Code(a5)
		move.w	im_MouseX(a1),cim_MouseX(a5)
		move.w	im_MouseY(a1),cim_MouseY(a5)

		cmpi.l	#RAWKEY,im_Class(a1)
		bne.s	No_RawKey
		lea	InputEve(a5),a0
		move.w	im_Code(a1),ie_Code(a0)
		move.w	im_Qualifier(a1),d2
		move.w	d2,ie_Qualifier(a0)
		and.w	#IEQUALIFIER_LSHIFT+IEQUALIFIER_RSHIFT,d2
		move.w	d2,SHIFTQualifier(a5)
		move.l	im_IAddress(a1),ie_EventAddress(a0)
		
No_RawKey	cmpi.l	#GADGETDOWN,im_Class(a1)
		bne.s	No_GadgDown
		move.l	im_IAddress(a1),cim_IAddress(a5)
No_GadgDown	cmpi.l	#GADGETUP,im_Class(a1)
		bne.s	No_GadgetUp
		move.l	im_IAddress(a1),cim_IAddress(a5)
No_GadgetUp	jsr	_LVOReplyMsg(a6)
		move.l	(sp)+,d0
		bclr	#WindowF,PrivateF(a5)
		rts
NoWind_Mesa1	move.l	(sp)+,d0
		bset	#WindowF,PrivateF(a5)
		rts
;
;pobranie wiadomosci z portu Arexxa
;
Arexx_Mesa	move.l	d0,-(sp)
		movea.l	SlowPort_Base(a5),a0
		movea.l	Exec_Base(a5),a6
		jsr	_LVOGetMsg(a6)
		tst.l	d0
		beq.w	No_ArexxMesa
		movea.l	d0,a1
		cmpi.b	#NT_REPLYMSG,LN_TYPE(a1)
		bne.s	noreply		

		move.l	a1,-(sp)
		move.l	rm_Result1(a1),d0
		beq.s	areturnOK
		lea	AReturnCode+29(pc),a0
		bsr.W	BinToAsci
		lea	AReturnCode(pc),a0
		lea	Req_Gadget2(pc),a1
		bsr.w	Request
		movea.l	(sp),a1
areturnOK	movea.l	rm_Args0(a1),a0
		movea.l	RexxSysLib_Base(a5),a6		
		jsr	_LVODeleteArgstring(a6)
		movea.l	(sp)+,a0
		jsr	_LVODeleteRexxMsg(a6)
		move.l	(sp)+,d0
		bclr	#Arexx,PrivateF(a5)
		subi.w	#1,RexxCount(a5)
		rts

noreply		clr.l	Arexxrc(a5)
		bset	#Rexxbit,PrivateF+1(a5)
		lea	Arex_instr(pc),a3
		move.w	(a3)+,d3
		ext.l	d3			;arex procedure's counter
		move.l	d3,d0
Loop_Instr	movea.l	rm_Args0(a1),a0
Loop_Instr1	move.b	(a3)+,d2
		beq.s	Find_Instr
		move.b	(a0)+,d1
		beq.s	Find_Zero
		cmp.b	d1,d2
		beq.s	Loop_Instr1
		eori.b	#%100000,d2
		cmp.b	d1,d2
		beq.s	Loop_Instr1
Find_Zero	tst.b	(a3)+
		bne.s	Find_Zero
		dbf	d3,Loop_Instr
		lea	OpNo(pc),a0
		move.l	#1,Arexxrc(a5)
		bra.s	arex_omin
Find_Instr	lea	Arex_Procedures(pc),a3
		sub.l	d3,d0
		lsl.l	#1,d0
		move.w	$00(a3,d0.w),d0
		move.l	a1,-(sp)
		jsr	$00(a3,d0.w)
		movea.l	(sp)+,a1
arex_omin	moveq	#0,d0
		move.l	rm_Action(a1),d2
		btst.l	#RXFF_RESULT,d2
		beq.s	no_aresult
		move.l	a1,-(sp)
		bsr.w	CreateAString
		movea.l	(sp)+,a1
no_aresult	move.l	d0,rm_Result2(a1)
		move.l	Arexxrc(a5),rm_Result1(a1)
		movea.l	Exec_Base(a5),a6
		jsr	_LVOReplyMsg(a6)
		move.l	(sp)+,d0
		bclr	#Arexx,PrivateF(a5)
		bclr	#Rexxbit,PrivateF+1(a5)
		rts
No_ArexxMesa	move.l	(sp)+,d0
		bset	#Arexx,PrivateF(a5)
		bclr	#Rexxbit,PrivateF+1(a5)
		rts

MoveScreenWindow
		bsr.W	GetWAddres
MSW_WBScreen	lea	Windowdef(pc),a0
		cmp.l	nw_Screen(a0),d0
		beq.s	MSW_Exit
		movea.l	Window_Base(a5),a0
		bsr.W	Close_Window
		lea	Windowdef(pc),a0
		bsr.W	Open_Window
		move.l	d0,Window_Base(a5)
		bne.s	MSW_Exit

		addq.l	#4,sp
		bra.w	ErOp_Window			
MSW_Exit	rts
;
;otwarcie biblioteki
;
Open_Library	move.l	a1,-(sp)
OpenLib_Loop	movea.l	(sp),a1
		moveq	#0,d0
		movea.l	Exec_Base(a5),a6
		jsr	_LVOOpenLibrary(a6)
		tst.l	d0
		bne.s	OpenLib_OK
		lea	OpenLib_Error(pc),a0
		lea	Req_Gadget(pc),a1
		movea.l	(sp),a3
		bsr.w	Request
		beq.s	OpenLib_Loop
		moveq	#0,d0

OpenLib_OK	addq.l	#4,sp
		rts
;
;zamkniėcie biblioteki
;
Close_Library	movea.l	Exec_Base(a5),a6
		jmp	_LVOCloseLibrary(a6)

;
;zwolnienie bloku pamieci
;
FreeMemoryX	move.l	pp_len(a5,d2.l),d0
		beq.s	FMNoAllocated
		movea.l	pp_Buffer(a5,d2.l),a1
		movea.l	Exec_Base(a5),a6
		clr.l	pp_len(a5,d2.l)
		jsr	_LVOFreeMem(a6)
FMNoAllocated	rts

AllocMem	move.l	d0,-(sp)
AMLoop		move.l	(sp),d0
		move.l	#MEMF_PUBLIC,d1
		movea.l	Exec_Base(a5),a6
		jsr	_LVOAllocMem(a6)
		tst.l	d0
		bne.s	AMOK
		lea	AllocMemError(pc),a0
		lea	Req_Gadget(pc),a1
		bsr.W	Request
		beq.s	AMLoop
		moveq	#0,d0
AMOK		addq.l	#4,sp
		rts

;
;przepisana orginalna procedura z Kick Startu 2.04
;CreateMsgPort
;
CreateMsgPort	moveq	#$22,d0
		bsr.s	AllocMem
		move.l	d0,-(sp)
		beq.s	lbc00003e
		moveq	#-1,d0
		jsr	_LVOAllocSignal(a6)
		movea.l	(sp),a0
		move.b	#4,LN_TYPE(a0)
		clr.b	MP_FLAGS(a0)
		move.b	d0,MP_SIGBIT(a0)
		bmi.s	lbc000042
		move.l	ThisTask(a6),MP_SIGTASK(a0)
		lea	MP_MSGLIST(a0),a1
		move.l	a1,8(a1)
		addq.l	#4,a1
		clr.l	(a1)
		move.l	a1,-(a1)
lbc00003e	move.l	(sp)+,d0
		rts

lbc000042	moveq	#$22,d0
		movea.l	a0,a1
		jsr	_LVOFreeMem(a6)
		clr.l	(sp)
		bra.s	lbc00003e
;
;przepisana orginalna procedura z Kick Startu 2.04
;DeleteMsgPort
;
DeleteMsgPort	move.l	a0,-(sp)
		beq.s	lbc00006e
		moveq	#0,d0
		move.b	MP_SIGBIT(a0),d0
		jsr	_LVOFreeSignal(a6)
		movea.l	(sp),a1
		moveq	#-1,d0
		move.l	d0,MP_MSGLIST(a1)
		move.l	d0,$00(a1)
		moveq	#$22,d0
		jsr	_LVOFreeMem(a6)

lbc00006e	addq.l	#4,sp
		rts
;
;otwarcie Fontu
;
Open_Font	move.l	a0,-(sp)
		lea	FontName(a5),a1
		bsr.W	Compare
		beq.s	OpFont_Loop
		tst.l	Font_Base(a5)
		beq.s	OpFont_Loop

		addq.l	#4,sp
		moveq	#0,d0
		rts

OpFont_Loop	lea	Fontatr(pc),a0
		move.l	(sp),(a0)
		movea.l	DiskFont_Base(a5),a6
		jsr	_LVOOpenDiskFont(a6)
		lea	FontName(a5),a1
		lea	Fontatr(pc),a2
		move.l	a1,(a2)
		tst.l	d0
		bne.s	Font_Open				
		lea	FontOper(pc),a0
		lea	Req_Gadget(pc),a1
		movea.l	(sp),a3
		bsr.W	Request
		beq.s	OpFont_Loop
		bra.s	ErrOp_Font
Font_Open	move.l	d0,-(sp)
		bsr.s	Close_Font
		lea	FontName(a5),a1
		lea	SG00_Extendet(pc),a2
		move.l	(sp),(a2)
		move.l	(sp)+,Font_Base(a5)
		movea.l	(sp)+,a0
		bsr.W	CopyString
		moveq	#0,d0
		rts

ErrOp_Font	lea	FontName(a5),a1
		lea	Fontatr(pc),a2
		move.l	a1,(a2)

		addq.l	#4,sp
		moveq	#-1,d0
		rts
Set_Font	moveq	#1,d0
		bsr.s	RPort_GraphBase
		move.l	a1,-(sp)
		jsr	_LVOSetAPen(a6)
		movea.l	(sp)+,a1
		tst.l	Font_Base(a5)
		beq.s	No_SetFont
		movea.l	Font_Base(a5),a0
		jmp	_LVOSetFont(a6)
No_SetFont	rts

RPort_GraphBase	movea.l	wd_RPort(a1),a1
		movea.l	Graphics_Base(a5),a6
		rts
;
;zamkniecie Fontu
;
Close_Font	tst.l	Font_Base(a5)
		beq.s	NoOp_Font
		movea.l	Font_Base(a5),a1
		movea.l	Graphics_Base(a5),a6
		jsr	_LVOCloseFont(a6)
		clr.l	Font_Base(a5)
NoOp_Font	rts
;
;
;
PNR		btst.b	#MakeEor,PrivateF(a5)
		bne.b	EorData3
		move.l	Intuition_Base(a5),a6
		move.l	ib_Seconds(a6),d0
		cmp.l	TCount(a5),d0
		ble.b	EorData3
		add.l	#60,d0
		move.l	d0,TCount(a5)
		lea	HBuffer(a5),a0
		moveq	#8,d1
		moveq	#0,d0
		move.l	(a0),d2
SPLoop		add.w	(a0)+,d0
		sub.b	d2,d0
		swap	d0
		neg.w	d0
		roxr.l	#2,d0
		sub.l	d0,d2
		not.l	d2
		roxl.l	#1,d2
		add.b	-1(a0),d0
		dbf	d1,SPLoop
		add.l	#$e5feb72c,d2
		beq.b	EorData3
		lea	ItIsNotRe(pc),a0
		lea	Req_Gadget2(pc),a1
		sub.l	a3,a3
		bsr.b	Request
EorData3	rts



;
;
;
Draw_Border	moveq	#0,d0			
		move.w	wd_MinHeight(a0),d1
		movea.l	wd_RPort(a0),a0		;w okienku
		movea.l	Intuition_Base(a5),a6	
		Jmp	_LVODrawBorder(a6)	

;
;wyswietlenie Requesta
;
Request		lea	OkayText+2(a5),a2
		moveq	#-1,d0
ReNextLine	move.l	a0,(a2)+
		addq.w	#1,d0
		cmpi.w	#3,d0
		beq.s	ReOKLineCount
ReNextChar	cmpi.b	#1,(a0)
		bne.s	ReNo1InString
		move.l	a3,(a2)+
		addq.w	#1,d0
ReNo1InString	cmpi.b	#LF,(a0)+
		beq.s	ReNextLine
		tst.b	-1(a0)			;if it's 0 then end request mesage
		bne.s	ReNextChar	
ReOKLineCount	lea	OkayText(a5),a0
		move.w	d0,(a0)

		movem.l	d1-d7/a0-a6,-(sp)
		move.l	a0,-(sp)
		lea	ekr_Requ(pc),a0
		move.l	a1,-6(a0)
		bsr.W	Open_Window
		move.l	d0,Window_Base1(a5)
		beq.w	ReErOp_Window1
		lea	ekr_Requ(pc),a1
		lea	Req_Gadget3(pc),a0
		cmp.l	nw_FirstGadget(a1),a0
		bne.s	ReNoStringG
		movea.l	Window_Base1(a5),a1
		bsr.W	ActivateGadget
ReNoStringG	movea.l	(sp)+,a0
		moveq	#14,d1
		move.w	(a0)+,d3
ReLoop		movea.l	(a0),a1
		moveq	#-1,d2
ReLoop1		addq.l	#1,d2
		cmpi.b	#LF,(a1)
		beq.s	ReJmp
		cmpi.b	#1,(a1)
		beq.s	ReJmp
		tst.b	(a1)+
		bne.s	ReLoop1
ReJmp		cmpi.l	#27,d2
		bls.s	ReCharCountOK
		moveq	#27,d2
ReCharCountOK	lsl.l	#3,d2
		move.l	#240-5,d0
		sub.l	d2,d0
		lsr.l	#3,d2
		lsr.l	#1,d0
		movea.l	(a0)+,a1
		movem.l	d1/d3/a0,-(sp)
		movem.l	a1/d2,-(sp)
		movea.l	Window_Base1(a5),a1
		bsr.W	PrMove
		movem.l	(sp)+,d0/a0
		movea.l	Window_Base1(a5),a1
		bsr.W	RPort_GraphBase
		jsr	_LVOText(a6)
		movem.l	(sp)+,d1/d3/a0
		addi.l	#9,d1
		dbf	d3,ReLoop
		movea.l	Window_Base1(a5),a0
		bsr.w	Get_WMsg
		moveq	#-1,d0
		cmpi.l	#GADGETUP,cim_Class(a5)
		bne.b	ReNoPushKey1
		movea.l	cim_IAddress(a5),a0
		btst.b	#3,gg_GadgetID+1(a0)
		beq.s	ReNoPushKey1
		moveq	#0,d0
ReNoPushKey1	cmpi.l	#VANILLAKEY,cim_Class(a5)
		bne.s	ReNoPushKey
		cmpi.w	#'t',cim_Code(a5)
		beq.s	Clrd0
		cmpi.w	#'T',cim_Code(a5)
		beq.s	Clrd0
		cmpi.w	#$0d,cim_Code(a5)
		bne.s	ReNoPushKey
Clrd0		moveq	#0,d0
ReNoPushKey	move.l	d0,-(sp)
		movea.l	Window_Base1(a5),a0
		bsr.w	Close_Window
		move.l	(sp)+,d0
		movem.l	(sp)+,d1-d7/a0-a6
		tst.w	d0
		rts

ReErOp_Window1	addq.l	#4,sp
		moveq	#-1,d0
		movem.l	(sp)+,d1-d7/a0-a6
		move.l	#2,Arexxrc(a5)
		tst.w	d0
		rts
;
;wyswietlenie okienka z Preferencjami
;
Prefe		lea	Pref_Gadget8(pc),a0		;biblioteka w ram
		bclr	#7,gg_Flags+1(a0)
		tst.l	pp_len+8(a5)
		beq.s	nor
		bset	#7,gg_Flags+1(a0)
nor		lea	FontName(a5),a0
		lea	FontName1(a5),a1
		moveq	#16,d0
Copy1		moveq	#-1,d1
Copyx1		addq.l	#1,d1
		move.b	$00(a0,d1.l),$00(a1,d1.l)
		bne.s	Copyx1
		addi.l	#256,a0
		addi.l	#256,a1
		dbf	d0,Copy1


		lea	ekr_Pref(pc),a0
		bsr.W	Open_Window
		move.l	d0,Window_Base2(a5)
		beq.b	ErOp_Window2
Next_Pref2	movea.l	Window_Base2(a5),a0
		bsr.w	Get_WMsg
		bsr.w	PNR
		lea	Pref_Keys(pc),a0
		bsr.W	Check_KeyGadget
		cmpi.l	#RAWKEY,cim_Class(a5)
		bne.s	No_PrefRAWKEY

		move.w	cim_Code(a5),d0
		cmpi.w	#$50,d0
		blt.s	No_FXX
		cmpi.w	#$59,d0
		bgt.s	No_FXX
		ext.l	d0
		subi.l	#$51,d0
		move.l	d0,Prefa_Pos(a5)		
		bsr.w	Next_Pref1

No_FXX		move.w	cim_Code(a5),d0
		cmpi.w	#$01,d0
		blt.s	No_PrefRAWKEY
		cmpi.w	#$07,d0
		bgt.s	No_PrefRAWKEY
		ext.l	d0
		subq.l	#$2,d0
		move.l	d0,Pref_Pos(a5)		
		bsr.W	Next_Pref
No_PrefRAWKEY	bra.s	Next_Pref2

Exit_Pref	addq.l	#4,sp
		movea.l	Window_Base2(a5),a0
		bsr.s	Close_Window
		clr.l	Window_Base2(a5)
ErOp_Window2	rts
Next_Pref3	rts

Close_Window	clr.l	cim_IAddress(a5)
		movea.l	Intuition_Base(a5),a6
		jmp	_LVOCloseWindow(a6)


bhg3		lea	Pref_Gadget10(pc),a0
		bra.s	bhgx
bhg2		lea	Pref_Gadget9(pc),a0
		bra.s	bhgx
bhg1		lea	Pref_Gadget8(pc),a0
		bra.s	bhgx
bhg		lea	Pref_Gadget7(pc),a0
bhgx		bchg	#7,gg_Flags+1(a0)
		suba.l	a2,a2
		movea.l	Window_Base2(a5),a1
		movea.l	Intuition_Base(a5),a6
		jmp	_LVORefreshGadgets(a6)

GetWAddres	movea.l	Intuition_Base(a5),a6
		move.l	ib_FirstScreen(a6),d1
		move.l	d1,d0
		lea	Pref_Gadget9(pc),a1
		btst	#7,gg_Flags+1(a1)
		beq.s	WBScreen
		movem.l	d1/a0,-(sp)
		jsr	_LVOOpenWorkBench(a6)
		movem.l	(sp)+,d1/a0
		tst.l	d0
		bne.s	WBScreen
		move.l	d1,d0
WBScreen	rts

Open_Window	move.l	a0,-(sp)
		clr.l	cim_IAddress(a5)
		bsr.s	GetWAddres
		move.l	d0,nw_Screen(a0)
		move.l	d0,a1
		moveq	#0,d0
		move.b	sc_BarHeight(a1),d0
		addq.w	#1,d0
		move.w	d0,nw_MinHeight(a0)
		add.w	-2(a0),d0
		move.w	d0,nw_Height(a0)
		move.w	d0,nw_MaxHeight(a0)
		move.l	-6(a0),-(sp)
		jsr	_LVOOpenWindow(a6)
		move.l	(sp)+,a1
		move.l	d0,-(sp)
		beq.s	errow
		move.l	d0,a0
		move.w	wd_MinHeight(a0),d2
		moveq	#0,d1
		move.l	a1,a2
Add_Gad		addq.l	#1,d1
		move.w	-2(a2),d0
		add.w	d2,d0
		move.w	d0,gg_TopEdge(a2)
		move.l	gg_NextGadget(a2),a2
		cmp.l	#0,a2
		bne.s	Add_Gad	
		moveq	#-1,d0
		sub.l	a2,a2
		move.l	a1,-(sp)
		jsr	_LVOAddGList(a6)
		move.l	(sp)+,a0
		move.l	(sp),a1
		sub.l	a2,a2		
		jsr	_LVORefreshGadgets(a6)
		movea.l	(sp),a0
		movea.l	4(sp),a2
		movea.l	48(a2),a2
		bsr.s	Draw_Index
		movea.l	4(sp),a2
		tst.l	52(a2)
		beq.s	No_Ren
		movea.l	52(a2),a1
		movea.l	(sp),a0
		bsr.W	Draw_Border
No_Ren		movea.l	(sp),a1
		bsr.W	Set_Font
errow		move.l	(sp)+,d0

		addq.l	#4,sp
		rts

Draw_Index	move.w	wd_MinHeight(a0),d3
		movea.l	wd_RPort(a0),a0
		cmp.l	#0,a2
		beq.s	Exit_DI
		move.w	(a2)+,d2
DBLoop		move.w	(a2)+,d1
		add.w	d3,d1
		move.w	(a2)+,d0
		lea	Index(pc),a1
		movem.l	d1-d3/a0-a3,-(sp)
		jsr	_LVODrawBorder(a6)
		movem.l	(sp)+,d1-d3/a0-a3
		dbf	d2,DBLoop
Exit_DI		rts



Next_Pref	move.l	Pref_Pos(a5),d0
		addq.l	#1,d0
		cmpi.l	#7,d0
		bne.s	Jmp_qwe
		moveq	#0,d0
Jmp_qwe		move.l	d0,Pref_Pos(a5)
		lsl.l	#4,d0
		lea	Text5(pc),a0
		adda.l	d0,a0
		lea	GName5(pc),a1
		move.l	a0,it_IText(a1)
		lsl.l	#4,d0
		lea	FontName1(a5),a0
		adda.l	d0,a0
		lea	SpecialInfo1(pc),a2
		move.l	a0,si_Buffer(a2)
		movea.l	Window_Base2(a5),a0
		move.w	wd_MinHeight(a0),d1
		movea.l	wd_RPort(a0),a0
		moveq	#77,d0
		add.w	#29-11,d1
		movea.l	Intuition_Base(a5),a6
		jsr	_LVOPrintIText(a6)
		lea	Pref_Gadget4(pc),a0
		movea.l	Window_Base2(a5),a1
		bsr.W	ActivateGadget
		lea	Pref_Gadget11(pc),a0
		move.l	Window_Base2(a5),a1
		sub.l	a2,a2
		cmp.l	#4,Pref_Pos(a5)
		bgt.s	OffGadget
		jmp	_LVOOnGadget(a6)
OffGadget	jmp	_LVOOffGadget(a6)		

Next_Pref1	move.l	Prefa_Pos(a5),d1
		addq.l	#1,d1
		cmpi.l	#10,d1
		bne.s	Jmp_qwe1
		moveq	#0,d1
Jmp_qwe1	move.l	d1,Prefa_Pos(a5)
		move.l	d1,d0
		lsl.l	#8,d0
		lea	Arexx_Ofs1(a5),a0
		adda.l	d0,a0
		lea	SpecialInfo2(pc),a1
		move.l	a0,si_Buffer(a1)
		addq.l	#1,d1
		move.l	d1,d0
		lea	fxxda_Text+1(pc),a0
		divu	#10,d1
		move.b	d1,(a0)
		addi.b	#'0',(a0)+
		mulu	#10,d1
		sub.b	d1,d0
		addi.b	#'0',d0
		move.b	d0,(a0)
		lea	GName9(pc),a1
		movea.l	Window_Base2(a5),a0

		move.w	wd_MinHeight(a0),d1
		movea.l	wd_RPort(a0),a0
		moveq	#77,d0
		add.w	#58-11,d1
		movea.l	Intuition_Base(a5),a6
		jsr	_LVOPrintIText(a6)
		lea	Pref_Gadget5(pc),a0
		movea.l	Window_Base2(a5),a1
		bra.W	ActivateGadget

Save_Pref	bset.b	#Savep,PrivateF(a5)
		bra.w	Use_Pref1

Pref1		tst.l	Pref_Pos(a5)
		bne.b	Pref1.J1
		bsr.w	GetFontName
		bra.b	Pref1.J2

Pref1.J1	cmp.l	#4,Pref_Pos(a5)
		bne.b	Pref1.J21
			
		bsr.b	ChoseAsc
		bra.b	Pref1.J2

Pref1.J21	bsr.W	GetFileName
		lea	FullFileName(a5),a0
		move.l	SpecialInfo1(pc),a1
		bsr.W	CopyString
Pref1.J2	lea	Pref_Gadget4(pc),a0
		movea.l	Window_Base2(a5),a1
		bra.W	ActivateGadget

Pref2		bsr.W	GetFileName
		lea	FullFileName(a5),a0
		move.l	SpecialInfo2(pc),a1
		bsr.W	CopyString
		lea	Pref_Gadget5(pc),a0
		movea.l	Window_Base2(a5),a1
		bra.W	ActivateGadget

;
;Wybor standartu kodowania polskich zanakow
;

ChoseAsc	lea	Windowdef1(pc),a0
		bsr.W	Open_Window
		move.l	d0,Window_Base3(a5)
AscLoop		movea.l	Window_Base3(a5),a0
		bsr.w	Get_WMsg

		lea	Asc_Keys(pc),a0
		bsr.W	Check_KeyGadget
		bra.b	AscLoop

Asc_Use		lea	PLAscCodes(pc),a0
		move.l	Asc_Pos(a5),d0
		mulu.w	#54,d0
		add.l	d0,a0
		lea	FontName1+1024(a5),a1
		bsr.w	CopyString
Asc_Cancel	addq.l	#4,sp
		movea.l	Window_Base3(a5),a0
		bsr.W	Close_Window
		rts
;
;Ustawieni nazwy w gadget-cie kolejnego zestawu polskich znakow
;
Asc_Previous	move.l	Asc_Pos(a5),d0
		subq.l	#1,d0
		bpl.b	Jmp_Asc
		moveq	#20,d0
		bra.b	Jmp_Asc	

Asc_Next	move.l	Asc_Pos(a5),d0
		addq.l	#1,d0
		cmpi.l	#21,d0
		bne.b	Jmp_Asc
		moveq	#0,d0
Jmp_Asc		move.l	d0,Asc_Pos(a5)
		lsl.l	#4,d0
		lea	Text6(pc),a0
		adda.l	d0,a0
		lea	AscName(pc),a1
		move.l	a0,it_IText(a1)
		movea.l	Window_Base3(a5),a0

		move.w	wd_MinHeight(a0),d1
		movea.l	wd_RPort(a0),a0
		moveq	#13,d0
		add.w	#14-11,d1
		movea.l	Intuition_Base(a5),a6
		jmp	_LVOPrintIText(a6)
		
;
;uūycie Preferencji
;
Use_Pref	bclr.b	#Savep,PrivateF(a5)	
Use_Pref1	lea	FontName1+1024(a5),a0
		bsr.W	Set_PLCode
		lea	FontName1(a5),a0
		bsr.W	Open_Font
		move.l	Window_Base(a5),a1	;ustawienie Fontu
		bsr.w	Set_Font		;dla okienka
		bsr.W	Print
		lea	KeyName1(a5),a0	
		bsr.w	Load_KeyMap
		
		lea	Chars(a5),a0
		lea	Chars_1(a5),a1
		move.l	#[12*256]-1,d0
Copy21		move.b	(a1)+,(a0)+
		dbf	d0,Copy21
		bsr.W	SetSortArray
		lea	FileName_1(a5),a1
		lea	FontName1+$200(a5),a0
		bsr.W	CopyString
		lea	FileName(a5),a1
		lea	FontName1+$100(a5),a0
		bsr.W	CopyString
		btst	#Savep,PrivateF(a5)
		beq.b	nosav
		bsr.W	Save_Prefe
nosav		lea	Pref_Gadget8(pc),a0
		btst	#7,gg_Flags+1(a0)
		beq.s	expr
		bsr.W	WordToRam
		bra.s	expr1
expr		bsr.W	DelWordsFromRam	
expr1		bsr.W	MoveScreenWindow
		bra.w	Exit_Pref

Compare		movem.l	a0/a1,-(sp)
		moveq	#-1,d0
		moveq	#1,d1
tensam		tst.b	d1
		beq.s	End_comp
		move.b	(a0)+,d1
		move.b	(a1)+,d2
		cmp.b	d1,d2
		beq.s	tensam
		moveq	#0,d0
End_comp	movem.l	(sp)+,a0/a1
		tst.l	d0
		rts
;
;
;
Set_PLCode	movea.l	a0,a3
		moveq	#17,d3
check		bsr.w	HexToDec
		bcc.s	hexconOK
		lea	kody(pc),a0
		lea	Req_Gadget2(pc),a1
		bsr.w	Request
		moveq	#-1,d0
		rts				
hexconOK	addq.l	#1,a0
		dbf	d3,check
		move.w	#255,d0
		lea	XXXToAPLConArray(a5),a1
		lea	APLToXXXConArray(a5),a4
Set_PLArray	move.b	d0,$00(a1,d0.w)
		move.b	d0,$00(a4,d0.w)
		dbf	d0,Set_PLArray
		moveq	#17,d3
		movea.l	a3,a0
		lea	Pl_String(pc),a2
Set1_PLArray	bsr.w	HexToDec
		addq.l	#1,a0
		moveq	#0,d1
		moveq	#0,d4
		move.b	d0,d1	
		move.b	(a2)+,d4
		move.b	d4,$00(a1,d1.w)
		move.b	d1,$00(a4,d4.w)
		dbf	d3,Set1_PLArray
		movea.l	a3,a0
		lea	PLAsciiCVal(a5),a1
		bsr.W	CopyString
		moveq	#0,d0
		rts
;
;
;
Size_Window	move.l	d0,-(sp)
		movea.l	Window_Base(a5),a0
		movea.l	Intuition_Base(a5),a6
		move.w	wd_MinWidth(a0),d0
		sub.w	wd_Width(a0),d0
		move.w	wd_MinHeight(a0),d1
		sub.w	wd_Height(a0),d1
		bne.s	Size_Sub
		move.w	wd_MaxWidth(a0),d0
		sub.w	wd_Width(a0),d0
		move.w	wd_MaxHeight(a0),d1
		sub.w	wd_Height(a0),d1

		movem.l	d0/d1/a0/a6,-(sp)
		move.w	wd_MaxWidth(a0),d0
		move.w	wd_MaxHeight(a0),d1
		add.w	wd_LeftEdge(a0),d0
		add.w	wd_TopEdge(a0),d1
		move.l	wd_WScreen(a0),a1
		sub.w	sc_Width(a1),d0
		neg.w	d0
		bmi.b	SW1
		moveq	#0,d0
SW1		sub.w	sc_Height(a1),d1
		neg.w	d1
		bmi.b	SW2
		moveq	#0,d1	
SW2		jsr	_LVOMoveWindow(a6)
		
		movem.l	(sp)+,d0/d1/a0/a6
Size_Sub	jsr	_LVOSizeWindow(a6)	
Loop_NewSize	movea.l	Window_Base(a5),a0
		bsr.w	Get_WMsg
		cmpi.l	#NEWSIZE,cim_Class(a5)
		bne.s	Loop_NewSize

		movea.l	Window_Base(a5),a0
		move.w	wd_MinHeight(a0),d0
		cmpi.w	wd_Height(a0),d0
		beq.s	Exit_Size
		movea.l	Window_Base(a5),a0
		lea	W_Render(pc),a1
		bsr.W	Draw_Border
		bsr.w	Print
		movea.l	Window_Base(a5),a0
		lea	Prog_Index(pc),a2
		bsr.W	Draw_Index
Exit_Size	move.l	(sp)+,d0
		rts

;
;
;
CopyString	move.l	d0,-(sp)
		move.w	#255,d0
CString_Loop	move.b	(a0)+,(a1)+
		dbeq	d0,CString_Loop
		move.l	(sp)+,d0
		rts


CopyStrAndConvert	
		movem.l	d0-d1/a3,-(sp)
		lea	XXXToAPLConArray(a5),a3
		move.w	#255,d0
		moveq	#0,d1
CSAConvert_Loop	move.b	(a0)+,d1
		move.b	(a3,d1.w),(a1)+
		dbeq	d0,CSAConvert_Loop
		movem.l	(sp)+,d0-d1/a3
		rts
;
;
;
ActivateGadget	move.l	a0,-(sp)
		movea.l	gg_SpecialInfo(a0),a2
		movea.l	si_Buffer(a2),a0
		bsr.W	GetSizeString
		move.w	d0,si_BufferPos(a2)
		move.w	d0,si_NumChars(a2)
		move.l	(sp)+,a0
		suba.l	a2,a2
		movea.l	Intuition_Base(a5),a6
		Jmp	_LVOActivateGadget(a6)
;
;
;
PrMove		add.w	wd_MinHeight(a1),d1
		bsr.W	RPort_GraphBase
		jmp	_LVOMove(a6)
;
;
;
Ort_Search	lea	InpText(a5),a1
		bsr.s	CopyStrAndConvert
		bsr.w	SearchL2
		lea	DigitResult(pc),a0
		move.l	d7,d0
		bsr.W	BinToAsci
		lea	DigitResult(pc),a0
Ort_SearchExit	rts
;
;
;
Ort_Quit	bset	#Quit,PrivateF(a5)
		lea	OpOK(pc),a0
		rts
;
;
;
Ort_ToFront	movea.l	Window_Base(a5),a0
		movea.l	Intuition_Base(a5),a6
		jsr	_LVOWindowToFront(a6)
		lea	OpOK(pc),a0
		rts
Ort_LoadFromClip
		move.l	#BuffForChanges,Edyt(a5)
		bsr.w	LoadFromClip1
		clr.l	Edyt(a5)
		lea	OpOK(pc),a0
		rts

Ort_SaveToClip	bsr.w	SaveToClip
		lea	OpOK(pc),a0
		rts
;
;
;
Ort_ToBack	movea.l	Window_Base(a5),a0
		movea.l	Intuition_Base(a5),a6
		jsr	_LVOWindowToBack(a6)
		lea	OpOK(pc),a0
		rts
;
;
;
Ort_SizeMax	movea.l	Window_Base(a5),a0
		movea.l	Intuition_Base(a5),a6
		jsr	_LVORefreshWindowFrame(a6)
		movea.l	Window_Base(a5),a0
		move.w	wd_MinHeight(a0),d1
		cmp.w	wd_Height(a0),d1
		beq.w	Size_Window
		lea	OpOK(pc),a0
		rts
;
;
;
Ort_SizeMin	movea.l	Window_Base(a5),a0
		movea.l	Intuition_Base(a5),a6
		jsr	_LVORefreshWindowFrame(a6)
		movea.l	Window_Base(a5),a0
		move.w	wd_MinHeight(a0),d1
		cmp.w	wd_Height(a0),d1
		bne.w	Size_Window
		lea	OpOK(pc),a0
		rts
;
;
;
Ort_SetKeyMap	bsr.W	Load_KeyMap
		lea	OpOK(pc),a0
		tst.w	d0
		beq.s	Exit_ortOkay
		lea	OpNo(pc),a0
		rts
;
;
;
Ort_SetFont	bsr.W	Open_Font
		lea	OpOK(pc),a0
		tst.w	d0
		beq.s	Ort_SetFontOK
		lea	OpNo(pc),a0
Ort_SetFontOK	move.l	a0,-(sp)	
		movea.l	Window_Base(a5),a1	;ustawienie Fontu
		bsr.w	Set_Font		;dla okienka
		bsr.W	Print
		movea.l	(sp)+,a0
		rts
;
;
;
Ort_SetPLCode	bsr.W	Set_PLCode
		lea	OpOK(pc),a0
		tst.w	d0
		beq.s	Exit_ortOkay
		lea	OpNo(pc),a0
		rts

;
;
;
Ort_GetPLCode	lea	PLAsciiCVal(a5),a0
		rts

Ort_WordToRam	bsr.W	WordToRam
		lea	OpOK(pc),a0
		tst.l	pp_len+8(a5)
		bne.s	Exit_ortdtr
		lea	OpNo(pc),a0
Exit_ortdtr	rts

Ort_DelWordFromRam
		bsr.W	DelWordsFromRam
		lea	OpOK(pc),a0
		rts		
;
;
;
Ort_Okay1	lea	Req_Gadget2(pc),a1
		bra.s	Ort_Okayjmp
Ort_Okay2	lea	Req_Gadget(pc),a1
Ort_Okayjmp	bsr.w	Request
		lea	OpOK(pc),a0
		tst.w	d0
		beq.s	Exit_ortOkay
		lea	OpNo(pc),a0
Exit_ortOkay	rts

Ort_Okay31	lea	nulText(pc),a0
Ort_Okay3	lea	Req_Gadget3(pc),a1
		movea.l	SpecialInfo2(pc),a2
		clr.b	(a2)
		bsr.w	Request
		move.l	SpecialInfo2(pc),a0
		tst.w	d0
		beq.s	Okay3
		clr.b	(a0)
Okay3		lea	FullFileName(a5),a1
		bsr.W	CopyString
		rts

Ort_AddWord	lea	InpText(a5),a1
		bsr.W	CopyStrAndConvert
		bsr.W	AddWord
		lea	OpOK(pc),a0
Exit_OrtAdd	rts

;
Ort_Requeston	bclr	#Rexxbit1,PrivateF+1(a5)
		lea	OpOK(pc),a0
		rts
Ort_Requestoff	bset	#Rexxbit1,PrivateF+1(a5)
		lea	OpOK(pc),a0
		rts
Ort_ActivateWindow
		movea.l	Window_Base(a5),a0
		movea.l	Intuition_Base(a5),a6
		jsr	_LVOActivateWindow(a6)
		lea	OpOK(pc),a0
		rts
Ort_ToFirstScreen
		lea	Pref_Gadget9(pc),a1
		bclr	#7,gg_Flags+1(a1)
		bsr.W	MoveScreenWindow
		lea	OpOK(pc),a0
		rts

Ort_ToWBScreen	lea	Pref_Gadget9(pc),a1
		bset	#7,gg_Flags+1(a1)
		bsr.W	MoveScreenWindow
		lea	OpOK(pc),a0
		rts

Load_KeyMap	move.l	a0,-(sp)
		lea	KeyName(a5),a1
		tst.b	(a0)
		beq.b	NoLoad_KeyMap
		bsr.W	Compare
		beq.s	Load_KeyMapLoop
		tst.l	KeyMap_Base(a5)
		beq.s	Load_KeyMapLoop
		addq.l	#4,sp
		moveq	#0,d0
		rts

NoLoad_KeyMap	clr.b	(a1)
		bsr.b	UnLoad_KeyMap
		addq.l	#4,sp
		moveq	#0,d0
		rts

Load_KeyMapLoop	move.l	(sp),d1
		movea.l	Dos_Base(a5),a6
		jsr	_LVOLoadSeg(a6)
		tst.l	d0
		bne.s	LoadKeyOK
		lea	KeyOper(pc),a0
		lea	Req_Gadget(pc),a1
		movea.l	(sp),a3
		bsr.w	Request
		beq.s	Load_KeyMapLoop

		addq.l	#4,sp
		moveq	#-1,d0
		rts
LoadKeyOK	move.l	d0,-(sp)
		bsr.s	UnLoad_KeyMap
		move.l	(sp)+,d0
		move.l	d0,KeyMap_Base(a5)
		lsl.l	#2,d0
		addi.l	#18,d0
		lea	SpecialInfo(pc),a0
		move.l	d0,si_AltKeyMap(a0)
		lea	SpecialInfo1(pc),a0
		move.l	d0,si_AltKeyMap(a0)
		lea	SpecialInfo2(pc),a0
		movea.l	(sp)+,a0
		lea	KeyName(a5),a1
		bsr.W	CopyString
		moveq	#0,d0
		rts

UnLoad_KeyMap	move.l	KeyMap_Base(a5),d1
		beq.s	NoLoadKey
		movea.l	Dos_Base(a5),a6
		jmp	_LVOUnLoadSeg(a6)
		clr.l	KeyMap_Base(a5)
NoLoadKey	rts
;
;wysīanie wiadmosci do portu Arexx-a
;

PutRexxMsg	move.l	d0,-(sp)
PutRexxMsg1	movea.l	Exec_Base(a5),a6
		jsr	_LVOForbid(a6)		;wyīāczenie multiTaskingu
		lea	Arexxport(pc),a1
		jsr	_LVOFindPort(a6)	;sprawdzenie czy port o danej nazwie istnieje
		tst.l	d0			;jeūeli rezultat = 0 to nie istnieje
		bne.s	ArexxPortFind		;i wykonanie skoku
		jsr	_LVOPermit(a6)
		lea	No_Host(pc),a0
		lea	Req_Gadget(pc),a1
		bsr.w	Request
		beq.s	PutRexxMsg1
		movea.l	(sp)+,a0
		movea.l	RexxSysLib_Base(a5),a6
		jmp	_LVODeleteArgstring(a6)

ArexxPortFind	move.l	d0,-(sp)
		movea.l	SlowPort_Base(a5),a0
		lea	sufix(pc),a1
		lea	Nameport(pc),a2
		movea.l	RexxSysLib_Base(a5),a6
		jsr	_LVOCreateRexxMsg(a6)
		movea.l	(sp)+,a0		
		tst.l	d0
		beq.s	Err_CrRexxMsg
		movea.l	d0,a1
		move.l	#2^RXFF_COMM,rm_Action(a1)
		move.l	(sp)+,rm_Args0(a1)
		movea.l	Exec_Base(a5),a6
		jsr	_LVOPutMsg(a6)
		addq.w	#1,RexxCount(a5)
		movea.l	Exec_Base(a5),a6
		jmp	_LVOPermit(a6)

Err_CrRexxMsg	movea.l	Exec_Base(a5),a6
		jsr	_LVOPermit(a6)
		movea.l	(sp)+,a0
		movea.l	RexxSysLib_Base(a5),a6
		jmp	_LVODeleteArgstring(a6)
;
;w a0 - string
;
CreateAString	bsr.s	GetSizeString
		movea.l	RexxSysLib_Base(a5),a6
		jmp	_LVOCreateArgstring(a6)
;
;opbranie dīugoōźi ciāgu 
;
GetSizeString	moveq	#-1,d0
GeSiSt_Loop	addq.l	#1,d0
		tst.b	$00(a0,d0.l)
		bne.s	GeSiSt_Loop
		rts
;
;
;
ReadAddWord	moveq	#32,d2
		bsr.W	FreeMemoryX
		moveq	#32,d2
		move.l	Edyt(a5),-(sp)
		move.l	#BuffForChanges,Edyt(a5)
		lea	FileName_1(a5),a1
		bsr.W	Read_File
		move.l	pp_len+32(a5),d0
		bne.b	RFOK
		
		move.l	Edyt(a5),d0
		bsr.W	AllocMem
		move.l	d0,pp_Buffer+32(a5)
		beq.b	RAWOK
		move.l	Edyt(a5),d0
		move.l	d0,pp_len+32(a5)
		
RFOK		sub.l	Edyt(a5),d0
		bpl.b	RAWOK
		moveq	#0,d0
RAWOK		move.l	d0,EndAddWord(a5)
		move.l	(sp)+,Edyt(a5)
		bclr.b	#AddWSave,PrivateF(a5)
		rts
;
;dane w ramie
;
WordToRam	moveq	#0,d2
		bsr.W	FreeMemoryX
		moveq	#8,d2
		tst.l	pp_len(a5,d2.l)
		bne.s	WoToRa_Exit
		lea	FileName(a5),a1
		bra.s	Read_File
WoToRa_Exit	rts
		

DelWordsFromRam	moveq	#8,d2
		bsr.W	FreeMemoryX
		rts
;
;zamiana ciagu asci na liczbe 
;wynik w d0
;
HexToDec	move.b	(a0)+,d1
		bsr.s	Hex
		move.b	d1,d0
		lsl.b	#4,d0
		move.b	(a0)+,d1
		bsr.s	Hex
		add.b	d1,d0
		rts
Hex		cmpi.b	#'9',d1
		bhi.s	Charaf
		subi.b	#48,d1
		rts
Charaf		bclr	#5,d1
		subi.b	#55,d1
		cmpi.b	#15,d1
		bls.s	HexToDecOK
		move.b	#255,d1
HexToDecOK	rts

;
;procedura zamieniajaca wartosc d0 na liczbe dziesietna
;a0-poczatek Bufora na wynik
;
BinToAsci	move.l	#10000,d2
		moveq	#0,d3
Loopbta		move.l	d0,d1
		divu	d2,d1
		ext.l	d1
		sub.l	d1,d3
		beq.s	ominbta
		move.b	d1,(a0)
		add.b	#'0',(a0)+
ominbta		mulu	d2,d1
		sub.l	d1,d0
		divu	#10,d2
		ext.l	d2
		bne.s	Loopbta
		tst.w	d3
		bne.s	nozero
		move.b	#'0',(a0)+
nozero		clr.b	(a0)
		rts
;
;odczyt pliku
;w a1-nazwa pliku do odczytania
;d2 - przesuniecie w tablicy na wynik
;
Read_File	move.l	d2,-(sp)
		move.l	#MODE_OLDFILE,d2
		bsr.s	OpenFile
		beq.s	Err_OpFile
		moveq	#0,d2
		moveq	#1,d3
		bsr.W	SeekFile
		bmi.s	Err_Seek
		moveq	#0,d2
		moveq	#-1,d3
		bsr.W	SeekFile
		bmi.s	Err_Seek		
		move.l	(sp),d3
		add.l	Edyt(a5),d0
		move.l	d0,pp_len(a5,d3.l)
		bsr.W	AllocMem
		move.l	(sp),d3
		move.l	d0,pp_Buffer(a5,d3.l)
		beq.s	Err_OpFile
		move.l	d0,d2
		move.l	pp_len(a5,d3.l),d3
		sub.l	Edyt(a5),d3
		bsr.s	ReadFile

Err_Seek	addq.l	#4,sp
		bra.s	CloseFile
Err_OpFile	move.l	(sp)+,d3
		clr.l	pp_len(a5,d3.l)
		rts
;
;otwarcie pliku
;a1-nazwa pliku
;d2-sPosób otwarcia
;
OpenFile	movem.l	a1/d2,-(sp)
rf_Loop		move.l	(sp),d2
		move.l	4(sp),d1
		movea.l	Dos_Base(a5),a6
		jsr	_LVOOpen(a6)
		move.l	d0,FileHD(a5)
		bne.s	OpenFile_OK		
		lea	Open_Error(pc),a0
		lea	Req_Gadget(pc),a1
		move.l	4(sp),a3
		bsr.w	Request
		beq.s	rf_Loop
OpenFile_OK	addq.l	#8,sp
		tst.l	FileHD(a5)
		rts
;
CloseFile	move.l	FileHD(a5),d1
		beq.s	Er_CloseFile
		movea.l	Dos_Base(a5),a6
		jmp	_LVOClose(a6)
Er_CloseFile	rts
;
ReadFile	move.l	FileHD(a5),d1
		movea.l	Dos_Base(a5),a6
		jmp	_LVORead(a6)
;
WriteFile	move.l	FileHD(a5),d1
		movea.l	Dos_Base(a5),a6
		jmp	_LVOWrite(a6)
;
SeekFile	move.l	FileHD(a5),d1
		movea.l	Dos_Base(a5),a6
		jsr	_LVOSeek(a6)
		tst.l	d0
		rts
;
;pobranie nazwy pliku
;
GetFileName	tst.l	FileReq(a5)
		beq.s	No_ReqLibrary
		movea.l	ReqTools_Base(a5),a6
		lea	InpText1(a5),a1
		movea.l	a1,a3
		lea	Nameport(pc),a0
		bsr.W	CopyString
		subq.l	#1,a1
		movea.l	a4,a0
		bsr.W	CopyString

		movea.l	FileReq(a5),a1
		lea	ReqFileName(a5),a2
		lea	FileReqTags(pc),a0
		movea.l	ReqTools_Base(a5),a6
		jsr	_LVOrtFileRequestA(a6)
		tst.l	d0
		beq.s	NoFileSelected
		lea	FullFileName(a5),a1
		movea.l	FileReq(a5),a0
		movea.l	$10(a0),a0
		tst.b	(a0)
		beq.b	Volume
		bsr.W	CopyString
		subq.l	#1,a1
		cmpi.b	#':',-1(a1)
		beq.s	Volume
		move.b	#'/',(a1)+
Volume		lea	ReqFileName(a5),a0
		bsr.W	CopyString
		moveq	#0,d0
		rts

NoFileSelected	lea	FullFileName(a5),a1
		clr.b	(a1)
		moveq	#0,d0
		rts
No_ReqLibrary	moveq	#-1,d0
		rts

;
;Wybor fontu dla programu
;

GetFontName	tst.l	ReqTools_Base(a5)
		beq.b	Err_AllReqA
		move.l	ReqTools_Base(a5),a6
		move.l	#RT_FONTREQ,d0
		sub.l	a0,a0
		jsr	_LVOrtAllocRequestA(a6)
		tst.l	d0
		beq.s	Err_AllReqA
		move.l	d0,-(sp)
		move.l	d0,a1
		move.l	#FREQF_COLORFONTS,rtfo_Flags(a1)
		lea	ReqSetFont_Text(pc),a3
		sub.l	a0,a0
		jsr	_LVOrtFontRequestA(a6)
		tst.l	d0
		beq.s	NoChoseFont
		move.l	(sp),a0
		move.l	rtfo_Attr+ta_Name(a0),a0
		move.l	SpecialInfo1(pc),a1
		bsr.w	CopyString


;		moveq	#0,d0
;		move.w	rtfo_Attr+ta_YSize(a0),d0
NoChoseFont	move.l	(sp)+,a1
		jsr	_LVOrtFreeRequest(a6)
Err_AllReqA	rts

;
;zapis  Preferencji
;
Save_Prefe	btst.b	#MakeEor,PrivateF(a5)
		bne.b	EorData

		lea	HBuffer(a5),a0
		moveq	#8,d1
		moveq	#0,d0
		move.l	(a0),d2
SPLoop1		add.w	(a0)+,d0
		sub.b	d2,d0
		swap	d0
		neg.w	d0
		roxr.l	#2,d0
		sub.l	d0,d2
		not.l	d2
		roxl.l	#1,d2
		add.b	-1(a0),d0
		dbf	d1,SPLoop1
		add.l	#$e5feb72c,d2
		beq.b	SaveOk

		lea	ItIsNotRe(pc),a0
		lea	Req_Gadget2(pc),a1
		sub.l	a3,a3
		bsr.w	Request
		rts

SaveOk		lea	EorData1(pc),a0
		move.l	#[[UnPackS-EorData1]/2]-1,d1
EDLoop		eor.w	d0,(a0)+
		ror.l	#1,d0
		dbf	d1,EDLoop
		bset.b	#MakeEor,PrivateF(a5)

EorData		lea	Pref_File(pc),a1
		move.l	#MODE_NEWFILE,d2
		bsr.W	OpenFile
		bne.s	OpFile1		
		rts

OpFile1		move.l	FileHD(a5),d1
		lea	FontName(a5),a0
		lea	Pref_Gadget7(pc),a1
		lea	InpText1(a5),a3
		movea.l	Dos_Base(a5),a6
		
		
EorData1	DC.B	$CC,$65,$C4,$C1,$46,$6D,$C7,$37
		DC.B	$B9,$99,$EC,$1C,$16,$26,$BB,$15
		DC.B	$12,$DA,$FE,$96,$A7,$61,$CF,$B8
		DC.B	$73,$5A,$BA,$EC,$DD,$7B,$98,$BA
		DC.B	$16,$5D,$BB,$96,$FF,$86,$BF,$23
		DC.B	$08,$9B,$83,$AA,$0B,$22,$6C,$6D
		DC.B	$88,$C7,$F7,$BB,$5F,$DD,$84,$DD
		DC.B	$A1,$F7,$06,$CB,$1E,$7D,$75,$3E
		DC.B	$76,$71,$E0,$C4,$30,$E4,$D0,$33
GeSS_Loop	DC.B	$D8,$8B,$3D,$B0,$76,$26,$BA,$13
		DC.B	$0C,$45,$51,$1E,$95,$71,$A5,$5F
		DC.B	$8A,$04,$F2,$0B,$15,$B4,$A0,$15
		DC.B	$88,$8D,$F7,$71,$9E,$C4,$A0,$9E
UnPackS		DC.B	$48,$E7,$C0,$00,$30,$3C,$00,$FF
		DC.B	$72,$FF,$52,$81,$12,$D8,$B3,$29
		DC.B	$FF,$FF,$57,$C8,$FF,$F6,$4C,$DF
		DC.B	$00,$03,$4E,$75

		addq.l	#1,d0
		tst.b	$00(a0,d0.l)

		bne.s	GeSS_Loop
		move.l	a0,d2
		move.l	d0,d3
		addq.l	#1,d3
		jsr	_LVOWrite(a6)
		move.l	FileHD(pc),d1
		jmp	_LVOClose(a6)

;
;Zaīadowanie tablicy osfetow dla wyrazow
;
ReadHunk	lea	FileName(a5),a1
		move.l	#MODE_OLDFILE,d2
		bsr.W	OpenFile
		beq.s	Err_OpFile6
		lea	pp_len+40(a5),a2
		move.l	a2,d2
		moveq	#4,d3
		bsr.W	ReadFile
		move.l	pp_len+40(a5),d0
		bsr.W	AllocMem
		tst.l	d0
		beq.s	Err_OpFile6
		move.l	d0,pp_Buffer+40(a5)
		move.l	d0,d2
		move.l	pp_len+40(a5),d3
		bsr.W	ReadFile
		bsr.W	CloseFile				
		moveq	#0,d0
		bra.s	HunkExit	
Err_OpFile6	bsr.W	CloseFile
		clr.l	pp_len+40(a5)
		moveq	#-1,d0
HunkExit	rts
;
;
;
ppLoaddata	tst.l	pp_len+40(a5)
		bne.s	LoadKey
		bsr.s	ReadHunk
		beq.s	LoadKey
		rts		

LoadKey		lea	InpText(a5),a1
		moveq	#0,d0
		move.l	#$ffffff,d3
		moveq	#2,d2
Loop		move.b	(a1)+,d0
		beq.s	YokerAsc
		cmp.b	#'*',d0
		beq.s	YokerAsc
		cmp.b	#'?',d0
		beq.s	YokerAsc
		lsl.l	#8,d0
		dbf	d2,Loop
		lsr.l	#8,d0
		bra.s	Fxxa
YokerAsc		addq.l	#1,d2
		lsl.l	#3,d2
		lsl.l	d2,d3
		subq.l	#8,d2
		lsl.l	d2,d0
		and.l	d3,d0
			
Fxxa		and.l	#$dfdfdf,d0		;chose 'abc' to 'ABC'
		move.l	pp_Buffer+40(a5),a0
Fxxal		move.l	(a0)+,d2
		beq.s	EndFxxa
		addq.l	#4,a0
		and.l	d3,d2
		cmp.l	d2,d0
		bne.s	Fxxal
		subq.l	#4,a0
		move.l	(a0),d1
Fxxal1		addq.l	#4,a0
		move.l	(a0)+,d2
		beq.s	KFxxa
		and.l	d3,d2
		cmp.l	d2,d0
		beq.s	Fxxal1
KFxxa		move.l	(a0),d0			

		tst.l	pp_len+8(a5)
		beq.s	NoInRAMWordsLib
		add.l	pp_Buffer+8(a5),d1
		add.l	pp_len+40(a5),d1
		move.l	d1,StartRamMem(a5)		
		add.l	pp_Buffer+8(a5),d0
		add.l	pp_len+40(a5),d0
		move.l	d0,EndRamMem(a5)
		moveq	#0,d0
		rts
EndFxxa	
errorppl	moveq	#-1,d0
		rts

NoInRAMWordsLib	sub.l	d1,d0
		add.l	pp_len+40(a5),d1
		move.l	d1,SeekPos(a5)
		addq.l	#1,d0
		move.l	d0,pp_len(a5)
		bsr.W	AllocMem
		tst.l	d0
		beq.s	errorppl
		move.l	d0,pp_Buffer(a5)
		lea	FileName(a5),a1
		move.l	#MODE_OLDFILE,d2
		bsr.W	OpenFile
		beq.s	Err_OpFile2
		move.l	SeekPos(a5),d2
		moveq	#-1,d3
		bsr.W	SeekFile
		bmi.s	Err_Seek2
		movem.l	pp_Buffer(a5),d2/d3
		bsr.W	ReadFile
		bsr.W	CloseFile	
		moveq	#0,d0
		rts

Err_Seek2	bsr.W	CloseFile	
Err_OpFile2	moveq	#0,d2
		bsr.W	FreeMemoryX
		moveq	#-1,d0
		rts
;
;
;
Edytor		move.l	#BuffForChanges,Edyt(a5)
		lea	ekr_Edyt(pc),a0
		bsr.W	Open_Window
		move.l	d0,Window_Base2(a5)
		beq.b	ErOp_Window3
		bsr.w	EdShowText
		bsr.w	ModifyProp1
Edyt_Next	movea.l	Window_Base2(a5),a0
		bsr.w	Get_WMsg
		bsr.w	PNR
		lea	Edyt_Keys(pc),a0
		bsr.W	Check_KeyGadget
		cmpi.l	#GADGETUP,cim_Class(a5)
		bne.s	Edyt_Next
		bsr.w	EdShowText
		bra.s	Edyt_Next

Edyt_Exit	addq.l	#4,sp
		movea.l	Window_Base2(a5),a0
		lea	ekr_Edyt(pc),a1
		move.l	4(a0),(a1)
		bsr.W	Close_Window
		clr.l	Window_Base2(a5)
ErOp_Window3	clr.l	Edyt(a5)
		rts
;
;
;
EdMarkBlock	move.l	Window_Base2(a5),a0
		move.w	cim_MouseX(a5),d2
		sub.l	#14,d2
		lsr.w	#3,d2
		ext.l	d2
		add.l	ActXOffset(a5),d2
		move.w	cim_MouseY(a5),d3
		subi.w	#4,d3
		sub.w	wd_MinHeight(a0),d3
		lsr.w	#3,d3
		ext.l	d3
		cmpi.w	#20,d3
		beq.s	falsePos3
		move.l	d3,d1
		add.l	ActYOffset(a5),d1
		cmp.l	LineCount(a5),d1
		bgt.s	min1		
		cmp.l	#GADGETDOWN,cim_Class(a5)
		bne.b	SetEndXY

		move.l	d1,MarkPosYBeg(a5)
		move.l	d2,MarkPosXBeg(a5)
		move.l	d1,MarkPosYEnd(a5)
		move.l	d2,MarkPosXEnd(a5)

		movem.l	d1-d3,-(sp)
		bsr.w	EdShowText
		movem.l	(sp)+,d1-d3


SetEndXY	move.l	d1,MarkPosYEnd(a5)
		move.l	d2,MarkPosXEnd(a5)	

		move.l	d3,-(sp)
		bsr.w	EdSearchLine
		move.l	(sp),d1
		bsr.w	EdST1
		move.l	(sp)+,d3


min1		tst.l	d3
		bne.s	falsePos2
		bsr.W	EdLineRew			
		bra.s	falsePos3
falsePos2	cmpi.w	#19,d3
		bne.s	falsePos3
		bsr.W	EdLineFf
falsePos3	rts
;
ShowCheckLN	movem.l	d0-d7/a0-a6,-(sp)
		lea	InpText1(a5),a1
		movea.l	a1,a3
		lea	Nameport(pc),a0
		bsr.W	CopyString
		subq.l	#1,a1
		lea	checkon(pc),a0
		bsr.W	CopyString
		move.b	#' ',-1(a1)
		movea.l	a1,a0
		bsr.W	BinToAsci
		movea.l	a0,a1
		lea	Line(pc),a0
		bsr.W	CopyString
		move.l	Window_Base2(a5),a0
		movea.l	a3,a1
		suba.l	a2,a2
		subq.l	#1,a2
		move.l	Intuition_Base(a5),a6
		jsr	_LVOSetWindowTitles(a6)
		movem.l	(sp)+,d0-d7/a0-a6
		rts
;
;
EdCheckMarkB	move.l	MarkPosYEnd(a5),d1
		bmi.b	NoCheck
		addq.l	#1,d1
		bsr.w	EdSearchLine
		move.l	a0,a1
		move.l	MarkPosYBeg(a5),d1
		move.l	d1,d0
		bsr.w	EdSearchLine		

		cmpa.l	a1,a0
		bne.b	ECMB1	

NoCheck		lea	NoText4Checked(pc),a0
		lea	Req_Gadget2(pc),a1
		sub.l	a3,a3
		bsr.w	Request
		bra.w	Exitcheck
		
ECMB1		lea	SortArray(a5),a3
		lea	XXXToAPLConArray(a5),a6
		bsr.w	ShowCheckLN
		move.l	a0,d3

FindStartWord	moveq	#0,d1
		moveq	#0,d2
FindStartWord1	cmpa.l	a1,a0
		bge.W	Exitcheck
		move.b	(a0)+,d1
		beq.b	IncLineN
		cmp.b	#LF,d1
		bne.b	NoIncLN
IncLineN	addq.l	#1,d0
		bsr.w	ShowCheckLN
NoIncLN		move.b	(a6,d1.w),d1
		tst.b	$00(a3,d1.w)
		beq.s	FindStartWord1
		subq.l	#1,a0
		movea.l	a0,a4
findEndWord	cmpa.l	a1,a0
		bge.s	check_Word
		move.b	(a0)+,d1
		move.b	(a6,d1.w),d1
		tst.b	$00(a3,d1.w)
		bne.s	findEndWord
		subq.l	#1,a0
		cmp.b	#'-',-1(a0)
		beq.b	FN
		cmp.b	#'-',(a0)
		bne.b	check_Word
		cmp.b	#LF,1(a0)
		beq.b	FindNext
		cmp.b	#0,1(a0)
		beq.b	FindNext
		cmp.b	#13,1(a0)
		beq.b	FindNext
		bra.b	check_Word
FN		cmp.b	#LF,(a0)
		beq.b	FindNext
		cmp.b	#0,(a0)
		beq.b	FindNext
		cmp.b	#13,(a0)
		bne.b	check_Word
FindNext	addq.l	#2,a0
		addq.l	#1,d0		
FindNext1	cmpa.l	a1,a0
		bge.B	check_Word
		move.b	(a0)+,d1
		move.b	(a6,d1.w),d1
		tst.b	$00(a3,d1.w)
		beq.s	FindNext1
		subq.l	#1,a0
		moveq	#-1,d2
		bra.b	findEndWord
check_Word	movem.l	d0-d7/a0-a6,-(sp)
		move.l	SpecialInfo2(pc),a2
		lea	InpText(a5),a1
		lea	XXXToAPLConArray(a5),a3
		movem.l	a0/a4,EndCWord(a5)
		move.w	#255,d0
CopycheckWord	move.b	(a4)+,d1
		tst.b	d2
		beq.b	CHW2
		cmp.b	#'-',d1
		beq.b	CHW1
CHW2		cmp.b	#LF,d1
		beq.b	CHW1
		cmp.b	#CR,d1
		beq.b	CHW1
		cmp.b	#0,d1
		beq.b	CHW1
		cmp.b	#9,d1
		beq.b	CHW1
		cmp.b	#' ',d1
		beq.b	CHW1
CHW		move.b	$00(a3,d1.w),(a1)+
		move.b	$00(a3,d1.w),(a2)+
CHW1		cmpa.l	a0,a4
		dbge	d0,CopycheckWord				
		clr.b	(a1)
		clr.b	(a2)
		bsr.W	SearchL2
		bne.W	yst

		move.l	(sp),d0
		move.l	d0,MarkPosYBeg(a5)
		tst.b	d2
		beq.b	dod1
		sub.l	#1,d0
		bcc.s	dod1
		moveq	#0,d0
dod1		move.l	d0,d1
		sub.l	#1,d0
		bcc.s	dod
		moveq	#0,d0
dod		move.l	d0,ActYOffset(a5)
		
		bsr.w	EdSearchLine		

CMNoNext	moveq	#0,d2

CMNoCWord	cmp.l	StartCWord(a5),a0
		bge.b	CMNoCWord1
		addq.l	#1,d2
		move.b	(a0)+,d1
		beq.b	CMNoNext
		cmp.b	#LF,d1
		beq.b	CMNoNext
		cmp.b	#HT,d1
		bne.b	CMNoCWord

		move.l	d2,d3
		lsr.l	#3,d3
		lsl.l	#3,d3
		addq.l	#8,d3
		sub.l	d2,d3
		add.l	d3,d2
		bra.b	CMNoCWord
CMNoCWord1	sub.l	#55,d2
		bmi.b	PosXOK
		move.l	d2,ActXOffset(a5)
PosXOK		bsr.W	EdShowText

		lea	Edyt_Gadget95(pc),a4
		btst	#7,gg_Flags+1(a4)
		beq.B	NoAddAll
		bsr.w	AddWord
		bra.w	yst

NoAddAll	move.l	Window_Base(a5),-(sp)
		lea	Windowdef4(pc),a0
		bsr.W	Open_Window
		move.l	d0,Window_Base(a5)
		beq.w	ErOp_Window4			
sPreNext1	lea	About1_Ofs(pc),a0
		move.l	#1,Word_Pos(a5)
		move.l	#3,Word_Count(a5)
		lea	Word_Ofs(a5),a2
		moveq	#1,d0
Copy1_About	tst.b	(a0)+
		bne.s	Copy1_About
		move.l	a0,(a2)+
		dbf	d0,Copy1_About
		lea	InpText(a5),a0
		move.l	a0,(a2)+
		bsr.W	Print	
sPreNext	movea.l	Window_Base(a5),a0
		bsr.w	Get_WMsg
		bsr.w	PNR
		lea	SReq_Keys(pc),a0
		bsr.W	Check_KeyGadget
		cmpi.l	#MOUSEBUTTONS,cim_Class(a5)
		bne.s	spfalsePos3
		movea.l	Window_Base(a5),a0
		move.w	cim_MouseY(a5),d0
		sub.w	wd_MinHeight(a0),d0
		cmpi.w	#4,d0
		blt.s	spfalsePos3
		cmpi.w	#85,d0
		bgt.s	spfalsePos3
		move.w	cim_MouseX(a5),d1
		cmpi.w	#294,d1
		bgt.s	spfalsePos3
		cmpi.w	#11,d1
		blt.s	spfalsePos3
		subi.w	#4,d0
		lsr.w	#3,d0
		ext.l	d0
		add.l	Word_Pos(a5),d0
		cmp.l	Word_Count(a5),d0
		bgt.s	spfalsePos3
		subq.l	#1,d0
		lsl.l	#2,d0
		lea	Word_Ofs(a5),a0
		adda.l	d0,a0
		movea.l	(a0),a0
		lea	InpText(a5),a1
		bsr.W	CopyString
		lea	Gadget4(pc),a0
		movea.l	Window_Base(a5),a1
		bsr.W	ActivateGadget
		bra.s	sPreNext
spfalsePos3	tst.l	Word_Count(a5)
		beq.W	sPreNext1
NO_Clik1	bra.w	sPreNext

Exit_sPre	addq.l	#4,sp
		movea.l	Window_Base(a5),a0
		lea	Windowdef4(pc),a1
		move.l	4(a0),(a1)
		bsr.W	Close_Window
ErOp_Window4	move.l	(sp)+,Window_Base(a5)

yst		movem.l	(sp)+,d0-d7/a0-a6
		clr.l	ActXOffset(a5)
		lea	Edyt_Gadget9(pc),a4
		btst	#7,gg_Flags+1(a4)
		beq.W	FindStartWord
Exitcheck	bsr.W	EdShowText
		rts
;
;
;
EdSelectAll	clr.l	MarkPosYBeg(a5)
		move.l	LineCount(a5),MarkPosYEnd(a5)
		bsr.W	EdShowText
		rts
;
;
;
EdClearAll	moveq	#-1,d0
		move.l	d0,MarkPosYBeg(a5)
		move.l	d0,MarkPosYEnd(a5)
		bsr.W	EdShowText
		rts
;
;
;
EdSaveText	lea	ReqSave_Text(pc),a4
		bsr.W	GetFileName
		beq.s	EdSa_Jmp
		lea	RSave_Text(pc),a0
		bsr.w	Ort_Okay3
EdSa_Jmp	lea	FullFileName(a5),a0
		tst.b	(a0)
		beq.s	EdSa_Exit
		movea.l	a0,a1
		move.l	#MODE_NEWFILE,d2
		bsr.W	OpenFile
		beq.s	EdSa_Exit		
		move.l	pp_Buffer+16(a5),d2
		move.l	EndCheckText(a5),d3
		sub.l	d2,d3
		bsr.W	WriteFile		
		bsr.W	CloseFile
EdSa_Exit	rts
;
;
;				
Edyt_ChoseAsc	bsr.w	ChoseAsc
		lea	FontName1+1024(a5),a0
		bsr.w	Set_PLCode
		bra.w	EdShowText			


;
;
;
EdLoadText	lea	ReqLoad_Text(pc),a4
		bsr.W	GetFileName
		beq.s	EdLo_Jmp
		lea	RLoad_Text(pc),a0
		bsr.W	Ort_Okay3
EdLo_Jmp	lea	FullFileName(a5),a0
		tst.b	(a0)
		beq.W	EdLo_Error
		clr.l	LineCount(a5)
		clr.l	ActYOffset(a5)
		clr.l	EndCheckText(a5)
		moveq	#-1,d0
		move.l	d0,MarkPosYBeg(a5)
		move.l	d0,MarkPosYEnd(a5)
		moveq	#16,d2
		movem.l	a0/d2,-(sp)
		bsr.W	FreeMemoryX
		movem.l	(sp)+,a1/d2
		bsr.W	Read_File
EdLo_JFClip	tst.l	pp_len+16(a5)
		beq.w	EdLo_Error
		moveq	#24,d2
		bsr.w	FreeMemoryX
		movem.l	pp_Buffer+16(a5),a0/a1
		sub.l	#BuffForChanges,a1
		adda.l	a0,a1
		moveq	#2,d0
EdLo_Loop	move.b	(a0)+,d3
		beq.s	EdLo_Zero
		cmpi.b	#LF,d3
		bne.s	EdLo_NoLF
EdLo_Zero	addq.l	#1,d0
EdLo_NoLF	cmpa.l	a1,a0
		bls.s	EdLo_Loop
		lsr.l	#6,d0
		lsl.l	#2,d0
		addq.l	#8,d0
		move.l	d0,-(sp)
		bsr.W	AllocMem
		move.l	(sp)+,d1
		tst.l	d0
		beq.s	EdLo_Error
		movem.l	d0-d1,pp_Buffer+24(a5)
		movem.l	pp_Buffer+16(a5),a0/a1
		sub.l	#BuffForChanges,a1
		adda.l	a0,a1
		move.l	a1,EndCheckText(a5)
		movea.l	d0,a2
		move.l	a0,(a2)+		;insert first line adrres
		moveq	#0,d0
		move.l	#64,d1
EdLo_Loop1	move.b	(a0)+,d3
		beq.s	EdLo_Zero1
		cmpi.b	#LF,d3
		bne.s	EdLo_NoLF1
EdLo_Zero1	addq.l	#1,d0
		cmp.l	d0,d1
		bne.b	EdLo_NoLF1
		add.l	#64,d1
		move.l	a0,(a2)+		;insert 64,128,... line adrres
EdLo_NoLF1	cmpa.l	a1,a0
		bls.s	EdLo_Loop1
		subq.l	#1,a0
		move.l	a0,(a2)+
		move.l	d0,LineCount(a5)
EdLo_Error	bsr.W	EdShowText
		bsr.W	ModifyProp1
		rts

CopyOffMemory	movea.l	SpecialInfo2(pc),a0
		lea	InpText(a5),a1
		bsr.W	CopyString
		lea	Gadget4(pc),a0
		movea.l	Window_Base(a5),a1
		bsr.W	ActivateGadget
		rts

InsertYoker	lea	InpText(a5),a1
		moveq	#-1,d0
InSt_Loop	addq.l	#1,d0
		cmpi.b	#'*',$00(a1,d0.l)
		beq.s	InSt_Jmp
		tst.b	$00(a1,d0.l)
		bne.s	InSt_Loop	
InSt_Jmp	subq.l	#1,d0
		bmi.s	InSt_Exit		
		move.b	#'*',$00(a1,d0.l)
		clr.b	1(a1,d0.l)
		lea	Gadget4(pc),a0
		movea.l	Window_Base(a5),a1
		bsr.W	ActivateGadget
InSt_Exit	rts
;
;
;
Add_EdytWord	bsr.W	SearchL2
		bne.s	AdEdWo_Exit
		lea	InpText(a5),a0
AdEdWo_Loop	cmpi.b	#'?',(a0)
		beq.s	AdEdWo_Exit
		cmpi.b	#'*',(a0)
		beq.s	AdEdWo_Exit
		tst.b	(a0)+
		bne.s	AdEdWo_Loop
		bsr.W	AddWord
		bra.W	Exit_sPre
AdEdWo_Exit	rts
;
;
;
Replace_Word	movea.l	40(sp),a4
		movea.l	56(sp),a1
		suba.l	a1,a4
		lea	InpText(a5),a0
		bsr.W	GetSizeString
		cmp.l	a4,d0
		beq.s	ReWo_OK
		blt.s	ReWo_Jmp
		suba.l	d0,a4
		movea.l	44(sp),a2
		suba.l	a4,a2
		move.l	a2,44(sp)
		movea.l	40(sp),a2
		suba.l	a4,a2
		move.l	a2,40(sp)
		adda.l	a4,a2
		movea.l	EndCheckText(a5),a6
		movea.l	a6,a3
		suba.l	a4,a6
		move.l	a6,EndCheckText(a5)
ReWo_Loop	move.b	-(a3),-(a6)
		cmpa.l	a2,a3
		bhi.s	ReWo_Loop
ReWo_OK		lea	APLToXXXConArray(a5),a2
		moveq	#0,d0
ReWo_OK1	tst.b	(a0)
		beq.s	ReWo_Exit
		move.b	(a0)+,d0
		move.b	(a2,d0.w),(a1)+
		bra.s	ReWo_OK1
ReWo_Exit	bsr.W	EdShowText
		bra.W	Exit_sPre
ReWo_Jmp	suba.l	d0,a4
		movea.l	44(sp),a2
		suba.l	a4,a2
		move.l	a2,44(sp)
		movea.l	40(sp),a2
		movea.l	a2,a3
		suba.l	a4,a2
		move.l	a2,40(sp)
		movea.l	EndCheckText(a5),a6
ReWo_Loop1	move.b	(a3)+,(a2)+
		cmpa.l	a6,a3
		bls.s	ReWo_Loop1
		suba.l	a4,a6
		move.l	a6,EndCheckText(a5)
		bra.s	ReWo_OK			
;
;wyswietlenie nastepnej linijki
;
EdLineRew	move.l	ActYOffset(a5),d0
		beq.s	Edyt_Stop
		moveq	#20,d1
		tst.w	SHIFTQualifier(a5)
		bne.s	Ednod9
		moveq	#1,d1
Ednod9		cmp.l	d0,d1
		bls.s	EdLineRew1
		move.l	d0,d1
EdLineRew1	sub.l	d1,ActYOffset(a5)
		bsr.W	ModifyProp1
		tst.w	SHIFTQualifier(a5)
		bne.s	No_DownLineEd
		moveq	#-8,d1
		bsr.W	Scroll
		move.l	ActYOffset(a5),d1
		bsr.w	EdSearchLine
		moveq	#0,d1
		bra.W	EdST1
No_DownLineEd	bsr.b	EdShowText
Edyt_Stop	rts

;
;wyswietlenie poprzedniej linijki
;
EdLineFf	move.l	LineCount(a5),d0
		sub.l	ActYOffset(a5),d0
		subi.l	#19,d0
		bls.s	No_UpLineEd
		moveq	#20,d1
		tst.w	SHIFTQualifier(a5)
		bne.s	no20
		moveq	#1,d1
no20		cmp.l	d0,d1
		bls.s	FfLine1Ed
		move.l	d0,d1
FfLine1Ed	add.l	d1,ActYOffset(a5)
		bsr.W	ModifyProp1
		tst.w	SHIFTQualifier(a5)
		bne.s	yst20
		moveq	#8,d1
		bsr.W	Scroll
		move.l	ActYOffset(a5),d1
		add.l	#19,d1
		bsr.w	EdSearchLine
		moveq	#19,d1
		bra.s	EdST1
yst20		bsr.b	EdShowText
No_UpLineEd	rts

EdLeft_Line	tst.l	ActXOffset(a5)
		beq.s	nosxPos
		sub.l	#1,ActXOffset(a5)
		lea	InpText(a5),a0
		lea	InpText1(a5),a1
		bsr.W	CopyString

		bra.s	EdShowText
nosxPos		rts

EdRight_Line	addi.l	#1,ActXOffset(a5)


;
;Show Text in Window
;
EdShowText	tst.l	Window_Base2(a5)
		beq.b	EdSTExit
		bsr.w	EdShowActPos
		move.l	ActYOffset(a5),d1
		bsr.w	EdSearchLine
		moveq	#0,d1
EdST_L1		bsr.b	EdST1

EdST_L2		cmp.l	EndCheckText(a5),a0
		bge.b	EdST_L3
		move.b	(a0)+,d0
		beq.b	EdST_L3
		cmp.b	#LF,d0
		bne.b	EdST_L2
EdST_L3		addq.w	#1,d1
		cmp.w	#20,d1	
		bne.b	EdST_L1
EdSTExit	rts

EdST1		movem.l	d0-d7/a0-a6,-(sp)
		move.l	Window_Base2(a5),a1
 		bsr.W	 RPort_GraphBase
		moveq	#14,d0
		lsl.l	#3,d1
		add.l	#12,d1
		movea.l	Window_Base2(a5),a1
		bsr.W	PrMove
		lea	XXXToAPLConArray(a5),a3
		move.l	32(sp),a0		;Get a0 from sp
		cmp.l	EndCWord(a5),a0
		bhi.b	EdOverCW
		cmp.l	StartCWord(a5),a0
		blt.b	EdOverCW

		move.w	CWColor1(a5),d7
		bne.b	NoPMB1
EdOverCW	moveq	#0,d7	
		move.l	4(sp),d1
		tst.l	MarkPosYBeg(a5)
		bmi.b	NoPMB1
		add.l	ActYOffset(a5),d1
		cmp.l	MarkPosYBeg(a5),d1
		blt.b	NoPMB
		moveq	#3,d7
NoPMB		cmp.l	MarkPosYEnd(a5),d1
		bls.b	NoPMB1
		moveq	#0,d7
NoPMB1		lea	InpText1(a5),a1
		moveq	#71,d0
		moveq	#0,d1
		move.l	d0,d5

		move.l	ActXOffset(a5),d4
		moveq	#0,d2	

EdST_CL		cmp.l	EndCheckText(a5),a0	;is end text
		bge.b	EdST_EndLine

		cmp.l	StartCWord(a5),a0
		bne.b	NoCWord
		bsr.w	EdST_Text1
		lea	InpText1(a5),a1
		move.w	d7,CWColor(a5)
		moveq	#2,d7
		move.w	d7,CWColor1(a5)
NoCWord		cmp.l	EndCWord(a5),a0
		bne.b	NoCWord1

		bsr.b	EdST_Text1
		lea	InpText1(a5),a1
		move.w	CWColor(a5),d7
		clr.w	CWColor1(a5)
NoCWord1	move.b	(a0)+,d1
		beq.b	EdST_EndLine		;if is end line
		cmp.b	#LF,d1			;is end line
		beq.b	EdST_EndLine
		cmp.b	#HT,d1			;is it tab key?
		bne.b	EdST_NoHT

		move.l	d2,d3
		lsr.l	#3,d3
		lsl.l	#3,d3
		addq.l	#8,d3
		sub.l	d2,d3
		sub.l	#1,d3
EdST_ISL	addq.l	#1,d2
		subq.l	#1,d4
		bpl.b	plus
		move.b	#' ',(a1)+
		subq.l	#1,d0		
plus		dbmi	d3,EdST_ISL
		bpl.b	EdST_CL
		bra.b	EdST_Text

EdST_NoHT	addq.l	#1,d2
		subq.l	#1,d4
		bpl.b	EdST_CL
		move.b	(a3,d1.w),d1
		move.b	d1,(a1)+	
		dbf	d0,EdST_CL
		move.b	#'>',-1(a1)
		bra.b	EdST_Text
EdST_EndLine	bsr.b	EdST_Text1
		moveq	#0,d7
		lea	InpText1(a5),a1
EdST_EndLine1	move.b	#' ',(a1)+
		dbf	d0,EdST_EndLine1
		bra.b	EdST_Text
		
EdST_Text1	movem.l	d0-d7/a0-a6,-(sp)
EdST_Text	clr.b	(a1)
		move.l	d7,d0
		move.l	Window_Base2(a5),a1
 		bsr.W	RPort_GraphBase
		jsr	_LVOSetBPen(a6)
		lea	InpText1(a5),a0
		move.l	a0,a1
		moveq	#-1,d0
EdST_GetTS	addq.l	#1,d0
		tst.b	(a1)+
		bne.b	EdST_GetTS
		move.l	Window_Base2(a5),a1
		bsr.W	RPort_GraphBase
		jsr	_LVOText(a6)
		movem.l	(sp)+,d0-d7/a0-a6
		rts
;
;d1 line number to search
;
EdSearchLine	movem.l	d0/d7,-(sp)
		move.l	pp_Buffer+24(a5),a0
		move.l	d1,d7
		lsr.l	#6,d7
		lsl.l	#2,d7
		move.l	(a0,d7.l),a0		;Get line addres from line's array
		lsl.l	#4,d7
		sub.l	d7,d1
		beq.b	EdST_L312
		subq.l	#1,d1
EdST_L21	cmp.l	EndCheckText(a5),a0
		bge.b	EdST_L312
		move.b	(a0)+,d0
		beq.b	EdST_L31
		cmp.b	#LF,d0
		bne.b	EdST_L21
EdST_L31	dbf	d1,EdST_L21		
EdST_L312	moveq	#0,d1
		movem.l	(sp)+,d0/d7
		rts


EdShowActPos	lea	InpText1(a5),a1
		movea.l	a1,a3
		lea	Nameport(pc),a0
		bsr.W	CopyString
		move.b	#' ',-1(a1)
		lea	Linia(pc),a0
		bsr.W	CopyString
		move.b	#' ',-(a1)
		movea.l	a1,a0
		move.l	ActYOffset(a5),d0
		bsr.W	BinToAsci
		movea.l	a0,a1
		lea	Z(pc),a0
		bsr.W	CopyString
		move.b	#' ',-1(a1)
		movea.l	a1,a0
		move.l	LineCount(a5),d0
		bsr.W	BinToAsci
		movea.l	a0,a1
		lea	ColumnX(pc),a0
		bsr.W	CopyString
		move.b	#' ',-1(a1)
		move.l	ActXOffset(a5),d0
		movea.l	a1,a0
		bsr.W	BinToAsci	
		movea.l	Window_Base2(a5),a0
		movea.l	a3,a1
		suba.l	a2,a2
		subq.l	#1,a2
		movea.l	Intuition_Base(a5),a6
		jmp	_LVOSetWindowTitles(a6)

Scroll		moveq	#0,d0
		moveq	#13,d2
		moveq	#6,d3
		move.w	#589,d4
		move.w	#165,d5
		movea.l	Window_Base2(a5),a1
		add.w	wd_MinHeight(a1),d3
		add.w	wd_MinHeight(a1),d5
		bsr.W	RPort_GraphBase	
		jsr	_LVOScrollRaster(a6)
		bra.W	EdShowActPos
Scroll1		moveq	#0,d0
		moveq	#13,d2
		moveq	#6,d3
		move.w	#293,d4
		move.w	#85,d5
		movea.l	Window_Base(a5),a1
		add.w	wd_MinHeight(a1),d3
		add.w	wd_MinHeight(a1),d5
		bsr.W	RPort_GraphBase	
		jmp	_LVOScrollRaster(a6)
;
;obsīuga suwaka
;
EdLineRewOrFf	move.l	LineCount(a5),d0
		sub.l	#19,d0
		bpl.b	OKI4
		moveq	#0,d0	
OKI4		move.l	Mathffp_Base(a5),a6
		jsr	_LVOSPFlt(a6)
		move.l	d0,-(sp)
		move.l	#MAXBODY,d0
		jsr	_LVOSPFlt(a6)
		move.l	(sp)+,d1
		bsr.w	SPDiv1
		move.l	d0,-(sp)
		lea	PropInfoX1(pc),a0
		moveq	#0,d0
		move.w	pi_VertPot(a0),d0
		jsr	_LVOSPFlt(a6)
		move.l	(sp)+,d1
		bsr.w	SPDiv1
		jsr	_LVOSPFix(a6)

		move.l	d0,ActYOffset(a5)
		addi.l	#19,d0
		cmp.l	LineCount(a5),d0
		bls.s	Okey11Ed
		move.l	LineCount(a5),d0
		subi.l	#19,d0
		cmpi.l	#0,d0
		bge.s	Okey22Ed
		moveq	#0,d0
Okey22Ed	move.l	d0,ActYOffset(a5)
Okey11Ed	bsr.w	EdShowText
		rts
;
;
;
LoadFromClip	move.l	pp_Buffer+16(a5),d2
		move.l	EndCheckText(a5),d3
		sub.l	d2,d3
		beq.b	LoadFromClip1
		lea	DoYouWantCopy(pc),a0
		lea	Req_Gadget(pc),a1
		sub.l	a3,a3
		bsr.w	Request
		beq.s	LoadFromClip1
		rts

LoadFromClip1	lea	ClipIOReq(a5),a1
		tst.w	MN_LENGTH(a1)
		bne.b	OpenedClip
OpenClipD_Loop	bsr.w	OpenClip
		beq.b	OpenedClip
		lea	OpenDev_Error(pc),a0
		lea	Req_Gadget(pc),a1
		lea	ClipboardD_Name(pc),a3
		bsr.w	Request
		beq.s	OpenClipD_Loop

		bra.w	NOOpClipDevice

OpenedClip	lea	ClipHeader(a5),a0
		movem.l	a0-a1,-(sp)
		move.w	#CMD_READ,io_Command(a1)
		clr.b	io_Error(a1)
		move.l	#12,io_Length(a1)
		move.l	a0,io_Data(a1)
		clr.l	io_Offset(a1)
		clr.l	io_ClipID(a1)
		movea.l	Exec_Base(a5),a6
		jsr	_LVODoIO(a6)
		movem.l	(sp),a0-a1
		tst.b	io_Error(a1)
		bne.w	ClipReadError
		cmp.l	#'FORM',(a0)+
		bne.w	BadClipType
		move.l	(a0)+,d7		;ClipLength
		cmp.l	#'FTXT',(a0)+
		bne.b	BadClipType				
NextChunk	move.l	#8,io_Length(a1)
		jsr	_LVODoIO(a6)
		movem.l	(sp),a0-a1
		tst.b	io_Error(a1)
		bne.b	ClipReadError
		move.l	4(a0),d0
		cmp.l	#'CHRS',(a0)
		beq.b	ChunkTypeOK
		move.l	d0,d1
		andi.b	#1,d1
		beq.b	pas
		addq.l	#1,d0
pas		add.l	d0,io_Offset(a1)
		bra.b	NextChunk
ChunkTypeOK	moveq	#16,d2
		movem.l	d0/d2,-(sp)
		bsr.w	FreeMemoryX
		movem.l	(sp)+,d0/d2
		add.l	Edyt(a5),d0
		move.l	d0,pp_len(a5,d2.l)
		bsr.W	AllocMem
		move.l	d0,pp_Buffer+16(a5)
		beq.b	ClipReadError
		movem.l	(sp),a0-a1
		move.l	d0,io_Data(a1)
		move.l	pp_len+16(a5),d0
		sub.l	Edyt(a5),d0		
		move.l	d0,io_Length(a1)
		jsr	_LVODoIO(a6)
		movem.l	(sp),a0-a1
		tst.b	io_Error(a1)
		beq.b	ClipReadError
		
		moveq	#16,d2
		bsr.w	FreeMemoryX
BadClipType

ClipReadError	movem.l	(sp)+,a0-a1
		move.l	#$ffffffff,io_Offset(a1)
		clr.l	io_Length(a1)
		move.l	a0,io_Data(a1)
		jsr	_LVODoIO(a6)
		clr.l	LineCount(a5)
		clr.l	ActYOffset(a5)
		clr.l	EndCheckText(a5)
		bra.w	EdLo_JFClip
NOOpClipDevice	rts


SaveToClip	lea	ClipIOReq(a5),a1
		tst.w	MN_LENGTH(a1)
		bne.b	OpenedClip1
OpenClipD_Loop1	bsr.w	OpenClip
		beq.b	OpenedClip1
		lea	OpenDev_Error(pc),a0
		lea	Req_Gadget(pc),a1
		lea	ClipboardD_Name(pc),a3
		bsr.w	Request
		beq.s	OpenClipD_Loop1

		bra.b	NOOpClipDevice

OpenedClip1	lea	ClipHunk(pc),a0
		move.l	pp_Buffer+16(a5),d2
		move.l	EndCheckText(a5),d3
		sub.l	d2,d3
		beq.b	NOOpClipDevice
		move.l	d3,16(a0)
		move.l	d3,d4
		andi.b	#1,d4	
		beq.b	SCJ1
		addq.l	#1,d3
SCJ1		move.l	d3,4(a0)
		add.l	#16,4(a0)
		movem.l	a1/d2/d3,-(sp)
		move.w	#CMD_WRITE,io_Command(a1)
		clr.b	io_Error(a1)
		move.l	#20,io_Length(a1)
		move.l	a0,io_Data(a1)
		clr.l	io_Offset(a1)
		clr.l	io_ClipID(a1)
		movea.l	Exec_Base(a5),a6
		jsr	_LVODoIO(a6)
		movem.l	(sp),a1/d2/d3
		move.l	d3,io_Length(a1)
		move.l	d2,io_Data(a1)
		jsr	_LVODoIO(a6)
		movem.l	(sp)+,a1/d2/d3
		move.w	#CMD_UPDATE,io_Command(a1)
		jsr	_LVODoIO(a6)
		rts



OpenClip	lea	ConIOReq(a5),a0
		lea	ClipIOReq(a5),a1
		move.l	MN_REPLYPORT(a0),MN_REPLYPORT(a1)
		move.b	#NT_UNKNOWN,LN_TYPE(a1)
		move.w	#56,MN_LENGTH(a1)
		lea	ClipboardD_Name(pc),a0
		moveq	#0,d0		;Flags
		moveq	#0,d1		;Unit
		move.l	Exec_Base(a5),a6
		jsr	_LVOOpenDevice(a6)
		tst.l	d0
		beq.b	ClipDOpened
		lea	ClipIOReq(a5),a1
		clr.w	MN_LENGTH(a1)
		moveq	#-1,d0
ClipDOpened	rts


TaskBase	dc.l	0
;
About_Ofs	
		dc.b	$0
		dc.b	'        Orto Sīownik v 1.25',$0
		dc.b	'              autor',$0
		dc.b	32,$0
		dc.b	'         Jarosīaw Paruzel',$0
		dc.b	32,$0,32,$0
		dc.b	'     47-100 Strzelce Oplskie',$0
		dc.b	'       K.Wyszyļskiego 8/34',$0
		dc.b	'            24-03-1994',$0
		dc.b	32,$0
		dc.b	'  ostatnie modyfikacje: 11-02-98',$0
		dc.b	32,0
		dc.b	"e-mail: yarex@zero.bg.po.opole.pl",0
		dc.b	'       jarekp@bet.po.opole.pl',$0

		dc.b	'        IRC-Nick: Yarex',$0
		dc.b	32,0
		dc.b	'  Program Shareware opīata 5 zī',0,32,0
		dc.b	'W celu rejestracji, wyōlij wyūej',0
		dc.b	'wymienionā kwotė na adres autora',0
		dc.b	'programu.',0,32,0 
		dc.b	'Zaīācz dodatkowo dane takie jak:',0
		dc.b	'imiė, nazwisko, adres domowy oraz',0
		dc.b	'emailowy, uūytkowany sprzėt.',0,32,0
		dc.b	'Gdy nie posiadasz e-mail adresu',0
		dc.b	'zaīācz zanczek na kartkė.',0
		dc.b	32,0
		dc.b	'Mile widzine wszelkie sugestie na',0
		dc.b	'temat programu. :-)',0,32,0
		dc.b	'Specialne pozdrowionka dla:',0,32,0
		dc.b	'       Kamila I., Dariusza Ū,',0
		dc.b	'    dla redakcji Magazynu Amiga,',0
		dc.b	'  oraz dla tych wszystkich którzy',0
		dc.b	'  wnieōli cokolwiek do Amigowego',0
		dc.b	'              Ōwiatka.',0
		dc.b	32,0
		dc.b	'Osobne pozdrowionka dla koleūanek',0
		dc.b	'      kumpli, ludzi z IRC-a.',0 
		dc.b	32,0
About1_Ofs	dc.b	$0,'Brak wyrazu -',0
		dc.b	32,$0
;
;nazwy otwieranych bibliotek
;
Intu_Name	dc.b	'intuition.library',0
Graph_Name	dc.b	'graphics.library',0
Rexx_Name	dc.b	'rexxsyslib.library',0
Dos_Name	dc.b	'dos.library',0
DiskFont_Name	dc.b	'diskfont.library',0
PP_Name		dc.b	'powerpacker.library',0
ReqTools_Name	dc.b	'reqtools.library',0
Mathffp_Name	dc.b	'mathffp.library',0
;
ConsoleD_Name	dc.b	'console.device',0
ClipboardD_Name	dc.b	'clipboard.device',0
;
sufix		dc.b	'ort',0
Arexxport	dc.b	'REXX',0
Nameport	dc.b	'Orto_Slownik'
End_NamePort	dc.b	0,0,0,0,0,0
;
OpOK		dc.b	'Y',0
OpNo		dc.b	'N',0
;
;tablica nazw arexowych procEdur rozumianych przez program
;
		even
Arex_instr	dc.w	23
		dc.b	'SSEARCH ',0
		dc.b	'SQUIT',0
		dc.b	'SGOTOFRONT',0
		dc.b	'SGOTOBACK',0
		dc.b	'SSIZEMAX',0
		dc.b	'SSIZEMIN',0
		dc.b	'SOKAY1 ',0
		dc.b	'SOKAY2 ',0
		dc.b	'SGETSTRING ',0
		dc.b	'SGETSTRING',0
		dc.b	'SREQUESTON',0
		dc.b	'SREQUESTOFF',0
		dc.b	'SSETPLCODE ',0
		dc.b	'SGETPLCODE',0
		dc.b	'SSETFONT ',0
		dc.b	'SSETKEYMAP ',0
		dc.b	'SADDWORD ',0
		dc.b	'SACTIVATEWINDOW',0
		dc.b	'SWORDTORAM',0
		dc.b	'SDELWORDFROMRAM',0
		dc.b	'SGOTOFIRSTSCREEN',0
		dc.b	'SGOTOWBSCREEN',0
		dc.b	'SLOADFROMCLIP',0
		dc.b	'SSAVETOCLIP',0
;
Pl_String	dc.b	'āźėīļóōśūĀŹĖĪĻÓŌŚŪ',0
Yes_Text	dc.b	'Tak',0
No_Text		dc.b	'Nie',0
ok_Text		dc.b	'Ok',0
Text5		dc.b	'  Nazwa Fontu  ',0
		dc.b	'    Dane w:    ',0
		dc.b	'  Dodatki w:   ',0
		dc.b	'Mapa klawiatury',0
		dc.b	' Polskie znaki ',0
		dc.b	'Tablica znaków ',0
		dc.b	'     Hasīo     ',0

Text6		dc.b	'   AmigaPL     ',0
		dc.b	'     xJP       ',0
		dc.b	'  ISO-8859-2   ',0
		dc.b	'  Windows-EE   ',0
		dc.b	'  IBM (CP852)  ',0
		dc.b	'    Mazovia    ',0
		dc.b	'      CSK      ',0
		dc.b	'   Cyfromat    ',0
		dc.b	'      DHN      ',0
		dc.b	'  IINTE-ISIS   ',0
		dc.b	'  IEA-Swierk   ',0
		dc.b	'    Logic      ',0
		dc.b	'   Microvex    ',0
		dc.b	'   Ventura     ',0
		dc.b	' ELWRO-Junior  ',0
		dc.b	'      Mac      ',0
		dc.b	'     TeXPL     ',0
		dc.b	' Atari-Calamus ',0
		dc.b	'  CorelDraw!   ',0
		dc.b	'      ATM      ',0
		dc.b	'     brak      ',0

E_Text		dc.b	'E',0
P_Text		dc.b	'P',0
M_Text		dc.b	'<',0
I_Text		dc.b	'I',0
Save_Text	dc.b	'Zapisz',0
Load_Text	dc.b	'Otwórz',0
Insert_Text	dc.b	'Wstaw',0
Copy_Text	dc.b	'Kopiuj',0
Check_Text	dc.b	'Sprawdś',0
Use_Text	dc.b	'Uūyj',0
Cancel_Text	dc.b	'Pomiļ',0
Select_Text	dc.b	'Zaznacz',0
Clear_Text	dc.b	'Wyczyōź',0
Stop_Text	dc.b	'Zatrzym',0
AddAll_Text	dc.b	"Dodaj W",0
Replace_Text	dc.b	'Wymieļ',0
Add_Text	dc.b	'Dodaj',0
Search_Text	dc.b	'Szukaj',0
Chose_Text	dc.b	'Zmieļ A',0
fxxda_Text	dc.b	'F01 Arexx',0
Text10		dc.b	'- rozróūniaź maīe duūe znaki',0
Text11		dc.b	'- biblioteka sīownika w ramie',0
Text12		dc.b	'- okno na ekranie Workbench-a',0
Text13		dc.b	'- sortowanie wyrazów',0
checkon		dc.b	' Sprawdzam -',0
Line		dc.b	' linie',0
Linia		dc.b	'- Linia ',0
Z		dc.b	' Z',0
ColumnX		dc.b	' Kolumna',0

DigitResult	dc.b	'0000',0


DefPreferences	DC.B	$02,$02,$02,$02,$73,$6D,$6D,$74
		DC.B	$6A,$6C,$6D,$29,$6E,$66,$64,$7F
		DC.B	$0C,$73,$78,$71,$39,$46,$6C,$61
		DC.B	$48,$7A,$7D,$46,$62,$6E,$0D,$73
		DC.B	$78,$71,$39,$45,$61,$62,$48,$7A
		DC.B	$7D,$46,$62,$6E,$0D,$00,$65,$33
		DC.B	$2E,$66,$65,$29,$63,$65,$24,$6C
		DC.B	$6F,$27,$69,$6B,$22,$69,$23,$3D
		DC.B	$74,$27,$38,$73,$77,$3B,$7E,$7B
		DC.B	$36,$78,$2E,$31,$7D,$7E,$0C,$42
		DC.B	$40,$0F,$47,$40,$0A,$44,$4E,$05
		DC.B	$4E,$18,$00,$49,$1A,$03,$54,$50
		DC.B	$1E,$57,$56,$35,$41,$60,$C0,$E1
		DC.B	$46,$67,$45,$64,$C2,$E3,$4E,$6F
		DC.B	$49,$68,$C5,$E4,$56,$77,$55,$74
		DC.B	$5C,$7D,$5F,$7E,$52,$73,$51,$70
		DC.B	$50,$71,$D0,$F1,$6D,$4C,$6C,$4D
		DC.B	$EB,$CA,$69,$48,$FB,$DA,$7A,$5B
		DC.B	$7D,$5C,$7C,$5D,$63,$42,$E6,$C7
		DC.B	$60,$41,$63,$42,$6E,$4F,$6D,$4C
		DC.B	$64,$45,$67,$46,$1A,$3B,$98,$B9
		DC.B	$9F,$BE,$6B,$47,$54,$74,$22,$74
		DC.B	$74,$6C,$75,$7D,$28,$61,$6B,$78
		DC.B	$E2,$62,$2E,$60,$64,$63,$68,$6A
		DC.B	$79,$74,$78,$72,$38,$76,$7E,$3B
		DC.B	$7D,$68,$6A,$70,$52,$40,$0E,$03
		DC.B	$54,$4A,$06,$5D,$49,$5B,$4F,$41
		DC.B	$49,$5E,$5A,$5D,$5F,$46,$53,$5D
		DC.B	$5D,$40,$16,$47,$4A,$56,$5D,$49
		DC.B	$5D,$50,$4B,$3F,$54,$74,$22,$76
		DC.B	$69,$6C,$63,$F3,$E2,$29,$FE,$68
		DC.B	$65,$68,$F5,$64,$FB,$31,$76,$7C
		DC.B	$67,$61,$FD,$67,$6D,$39,$7E,$74
		DC.B	$3C,$6E,$75,$6D,$59,$51,$56,$56
		DC.B	$04,$44,$54,$42,$50,$04,$4B,$2B
		DC.B	$00,$00,$00,$00,$00,$00,$00,$00
		DC.B	$00,$00
Pref_File	dc.b	'sys:s/orto.cfg',0
zero		dc.b	0

PLAscCodes      dc.b	'e2,ea,eb,ee,ef,f3,f4,fa,fb,c2,ca,cb,ce,cf,d3,d4,da,db',0
		dc.b	'e6,e7,ea,ee,f1,f3,f5,fb,fe,c6,c7,ca,ce,d1,d3,d5,db,de',0
		dc.b	'b1,e6,ea,b3,f1,f3,b6,bc,bf,A1,c6,ca,a3,d1,d3,a6,ac,af',0
		dc.b	'b9,e6,ea,b3,f1,f3,9c,9f,bf,a5,c6,ca,a3,d1,d3,8c,8f,af',0
		dc.b	'a5,86,a9,88,e4,a2,98,ab,be,a4,8f,a8,9d,e3,e0,97,8d,bd',0
		dc.b	'86,8d,91,92,a4,a2,9e,a6,a7,8f,95,90,9c,a5,a3,98,a0,a1',0
		dc.b	'a0,a1,a2,a3,a4,a5,a6,a8,a7,80,81,82,83,84,85,86,88,87',0
		dc.b	'90,91,92,93,94,95,96,98,97,80,81,82,83,84,85,86,88,87',0
		dc.b	'89,8a,8b,8c,8d,8e,8f,91,90,80,81,82,83,84,85,86,88,87',0
		dc.b	'90,91,92,93,94,95,96,97,98,80,81,82,83,84,85,86,87,88',0
		dc.b	'a0,9b,82,9f,a4,a2,87,a8,91,8f,80,90,9c,a5,99,eb,9d,92',0
		dc.b	'89,8a,8b,8c,8d,8e,8f,90,91,80,81,82,83,84,85,86,87,88',0
		dc.b	'a0,9b,82,9f,a4,a2,87,a8,91,8f,80,90,9c,a5,93,98,9d,92',0
		dc.b	'96,94,a4,a7,91,a2,84,82,87,97,99,a5,a6,92,8f,8e,90,80',0
		dc.b	'e1,e3,e5,ec,ee,ef,f3,fa,f9,c1,c3,c5,cc,ce,cf,d3,da,d9',0
		dc.b	'88,8d,ab,b8,c4,97,e6,90,fd,84,8c,a2,fc,c1,ee,e5,8f,fb',0
		dc.b	'a1,a2,a6,aa,ab,f3,b1,b9,bb,81,82,86,8a,8b,d3,91,99,9b',0
		dc.b	'd1,d2,d3,d4,d5,d6,d7,d8,d9,c1,c2,c3,c4,c5,c6,c7,c8,c9',0
		dc.b	'e5,ec,e6,c6,f1,f3,a5,aa,ba,c5,f2,c9,a3,d1,d3,ff,e1,ed',0
		dc.b	'e4,e7,eb,f0,f1,f3,f6,fa,fc,c4,c7,cb,d0,d1,d3,d6,da,dc',0
		dc.b	'61,63,65,6c,6e,6f,73,7a,7a,41,43,45,4c,4e,4f,53,5a,5a',0

;
;zbiór komunikatów dla programu
;
DoYouWantCopy	dc.b	'Czy mam wstawic dane',LF
		dc.b	'z Clipboardu ?',LF
		dc.b	'Operacja ta kasuje',LF
		dc.b	'dotychczasowe dane !',0

ItIsNotRe	dc.b	'Program niezarejestrowany',LF
		dc.b	'Zapis preferencji',LF
		dc.b	'niemoūliwy. !',0	

FontOper	dc.b	'Nie mogė otworzyź Fontu',1,LF
		dc.b	'Czy powtórzyź operacje ?',0

KeyOper		dc.b	'Nie mogė otworzyź',1,LF
		dc.b	'Czy powtórzyź operacje ?',0

Brak_Wyrazu	dc.b	'Brak sīowa',1,LF
		dc.b	'Czy dodaź je do biblioteki',LF
		dc.b	'Sīownika ?',0

Brak_Wyrazu1	dc.b	'Brak sīowa',1,0

Open_Error	dc.b	'Bīād otwarcia pliku',1,LF
		dc.b	'Czy powtórzyź operacje ?',0

OpenLib_Error	dc.b	'Bīād otwarcia biblioteki',1,LF
		dc.b	'Czy powtórzyź operacje ?',0

OpenDev_Error	dc.b	'Bīād otwarcia',1,LF
		dc.b	'Czy powtórzyź operacje ?',0
		
Read_Error	dc.b	'Bīād odczytu z pliku',1,LF
		dc.b	'Czy powtórzyź operacje ?',0
getokstring	dc.b	'Podaj poprawnā forme',0

No_Memory	dc.b	'Brak pamiėci dla',LF
		dc.b	'wczytania pliku',1,LF
		dc.b	'Czy powtórzyź operacje ?',0

AllocMemError	dc.b	'Nie mogė zarezerwowaź',LF
		dc.b	'pamiėci',LF
		dc.b	'Czy powtórzyź operacje ?',0

NoText4Checked	dc.b	'Brak lub nie zaznaczono',LF
		dc.b	'tekstu do sprawdzenia. !',0
			
WordArrayOverflow
		dc.b	"Bufor dla wzrazów",LF
		dc.b	"przepeīniony.",LF
		dc.b	"Nie bedzie dostėpu do",LF
		dc.b	"pozostaīych wyrazów !!!",0
		
czy_opuscic	dc.b	'Czy chcesz opuōciź',LF
		dc.b	'Sīownik Ortograficzny ?',0

No_Host		dc.b	'Serwer Arexx-a',LF
		dc.b	'nie aktywny',LF
		dc.b	'Czy powtórzyź operacje ?',0

kody		dc.b	'Bīād w definicji kodów',LF
		dc.b	'polskich znaków',0

AReturnCode	dc.b	'Serwer Arexx-a',LF
		dc.b	'zwróciī kod - 0000',0
nulText		dc.b	'Podaj nazwe pliku',0
RLoad_Text	dc.b	'Odczyt',LF
		dc.b	'Podaj nazwe pliku',0
RSave_Text	dc.b	'Zapis',LF
		dc.b	'Podaj nazwe pliku',0
ReqLoad_Text	dc.b	' - Odczyt Pliku',0
ReqSave_Text	dc.b	' - Zapis Pliku',0
ReqSetFont_Text	dc.b	'Wybierz font',0
		even
;
;TAG-List dal funkcji rtFileRequest
;
FileReqTags	dc.l	RTFI_Flags,FREQF_NOBUFFER
		dc.l	RTFI_OkText,TX3_Del
		dc.l	TAG_DONE
TX3_Del		dc.b	'OK',0
		even
;
;tablica z kodami klawiatury oraz odpowiadajacymi im procEdurami
;
Prog_Keys	dc.w	6
		dc.w	$45
		dc.w	EscKey-Prog_Keys
		dc.w	$44
		dc.w	ReturnKey-Prog_Keys
		dc.b	1,'P'
		dc.w	Prefe-Prog_Keys
		dc.b	1,'E'
		dc.w	Edytor-Prog_Keys
		dc.w	$4c
		dc.w	RewLine-Prog_Keys
		dc.w	$4d
		dc.w	FfLine-Prog_Keys
		dc.w	$46
		dc.w	Size_Window-Prog_Keys
;

Edyt_Keys	dc.w	14
		dc.b	1,'V'
		dc.w	LoadFromClip-Edyt_Keys
		dc.b	1,'T'
		dc.w	LoadFromClip-Edyt_Keys
		dc.b	1,'C'
		dc.w	SaveToClip-Edyt_Keys
		dc.b	1,'K'
		dc.w	SaveToClip-Edyt_Keys
		dc.b	1,'M'
		dc.w	Edyt_ChoseAsc-Edyt_Keys
		dc.b	1,'O'
		dc.w	EdLoadText-Edyt_Keys
		dc.b	1,'P'
		dc.w	Edyt_Exit-Edyt_Keys
		dc.w	$4d
		dc.w	EdLineFf-Edyt_Keys
		dc.w	$4c
		dc.w	EdLineRew-Edyt_Keys
		dc.b	1,'Z'
		dc.w	EdSaveText-Edyt_Keys
		dc.b	1,'A'
		dc.w	EdSelectAll-Edyt_Keys
		dc.b	1,'W'
		dc.w	EdClearAll-Edyt_Keys
		dc.b	1,'S'
		dc.w	EdCheckMarkB-Edyt_Keys
		dc.w	$4f
		dc.w	EdLeft_Line-Edyt_Keys
		dc.w	$4e
		dc.w	EdRight_Line-Edyt_Keys
;
Pref_Keys	dc.w	6
		dc.b	1,'P'
		dc.w	Exit_Pref-Pref_Keys
		dc.b	1,'U'
		dc.w	Use_Pref-Pref_Keys
		dc.b	1,'Z'
		dc.w	Save_Pref-Pref_Keys
		dc.b	1,'R'
		dc.w	bhg-Pref_Keys
		dc.b	1,'B'
		dc.w	bhg1-Pref_Keys
		dc.b	1,'O'
		dc.w	bhg2-Pref_Keys
		dc.b	1,'S'
		dc.w	bhg3-Pref_Keys

Asc_Keys	dc.w	3
		dc.b	1,'U'
		dc.w	Asc_Use-Asc_Keys
		dc.b	1,'P'
		dc.w	Asc_Cancel-Asc_Keys
		dc.b	1,11
		dc.w	Asc_Next-Asc_Keys
		dc.b	1,13
		dc.w	Asc_Previous-Asc_Keys

SReq_Keys	dc.w	8
		dc.b	1,'S'
		dc.w	Search-SReq_Keys
		dc.b	1,'W'
		dc.w	Replace_Word-SReq_Keys
		dc.b	1,'D'
		dc.w	Add_EdytWord-SReq_Keys
		dc.b	1,'P'
		dc.w	Exit_sPre-SReq_Keys
		dc.w	$4c
		dc.w	RewLine-SReq_Keys
		dc.w	$4d
		dc.w	FfLine-SReq_Keys
		dc.w	$44
		dc.w	ReturnKey-SReq_Keys
		dc.b	1,'I'
		dc.w	CopyOffMemory-SReq_Keys
		dc.w	$11c
		dc.w	InsertYoker-SReq_Keys
;
;tablica z adresami arexowych procedur
;
Arex_Procedures	dc.w	Ort_Search-Arex_Procedures
		dc.w	Ort_Quit-Arex_Procedures
		dc.w	Ort_ToFront-Arex_Procedures
		dc.w	Ort_ToBack-Arex_Procedures
		dc.w	Ort_SizeMax-Arex_Procedures
		dc.w	Ort_SizeMin-Arex_Procedures
		dc.w	Ort_Okay1-Arex_Procedures
		dc.w	Ort_Okay2-Arex_Procedures
		dc.w	Ort_Okay3-Arex_Procedures
		dc.w	Ort_Okay31-Arex_Procedures
		dc.w	Ort_Requeston-Arex_Procedures
		dc.w	Ort_Requestoff-Arex_Procedures
		dc.w	Ort_SetPLCode-Arex_Procedures
		dc.w	Ort_GetPLCode-Arex_Procedures
		dc.w	Ort_SetFont-Arex_Procedures
		dc.w	Ort_SetKeyMap-Arex_Procedures
		dc.w	Ort_AddWord-Arex_Procedures
		dc.w	Ort_ActivateWindow-Arex_Procedures
		dc.w	Ort_WordToRam-Arex_Procedures
		dc.w	Ort_DelWordFromRam-Arex_Procedures
		dc.w	Ort_ToFirstScreen-Arex_Procedures
		dc.w	Ort_ToWBScreen-Arex_Procedures
		dc.w	Ort_LoadFromClip-Arex_Procedures
		dc.w	Ort_SaveToClip-Arex_Procedures

Edyt_Index	dc.w	9
		dc.w	181+15,85,181,105,181,17,181+15,17,181+15,212,181,220,181,276+64,181,559,181,418
Pref_Index	dc.w	6
		dc.w	121+2,26,121+2,135,121+2,231,71,52,83,52,93+2,52,107,52
Prog_Index	dc.w	1
		dc.w	99,279,99,299
EdyReq_Index	dc.w	5
		dc.w	113,17,113,81,113,151,113,261,99,279,99,299
Requ_Index	dc.w	1
		dc.w	60,29,60,186
Requ1_Index	dc.w	1
		dc.w	28,25,28,106


ClipHunk	dc.l	'FORM'
		dc.l	0
		dc.l	'FTXT'
		dc.l	'CHRS'
		dc.l	0
		
;
;definicja otwieranego okienka
;
		dc.l	Gadget0
		dc.w	105
Windowdef	dc.w	0,0,322,11
		dc.b	0,1
		dc.l	CLOSEWINDOW+GADGETDOWN+GADGETUP+MENUPICK+NEWSIZE+RAWKEY+INTUITICKS+MOUSEBUTTONS
		dc.l	$2+$4+$20000+$20+$8+$10000
		dc.l	0,0,Nameport,0,0
		dc.w	196,12,322,116
		dc.w	$f
		dc.l	Prog_Index
		dc.l	W_Render

		dc.l	Gadget6
		dc.w	120
Windowdef4	dc.w	0,0,322,130
		dc.b	0,1
		dc.l	GADGETDOWN+GADGETUP+RAWKEY+MOUSEBUTTONS+INTUITICKS
		dc.l	$2+$4+$20000+$20+$1000+$10000
		dc.l	0,0,Nameport,0,0
		dc.w	322,12,322,250
		dc.w	$f
		dc.l	EdyReq_Index
		dc.l	W_Render

		dc.l	0
		dc.w	67
ekr_Requ	dc.w	0,0,240,77
		dc.b	0,1
		dc.l	GADGETUP+VANILLAKEY
		dc.l	$2+$4+$20000+$20+$1000+$10000
		dc.l	0,0,Nameport,0,0
		dc.w	240,12,240,77
		dc.w	$f
		dc.l	Requ_Index
		dc.l	WReq_Render


		dc.l	AscGad
		dc.w	35
Windowdef1	dc.w	0,0,167,77
		dc.b	0,1
		dc.l	RAWKEY+GADGETUP
		dc.l	$2+$4+$20000+$20+$1000+$10000
		dc.l	0,0,Nameport,0,0
		dc.w	240,12,240,77
		dc.w	$f
		dc.l	Requ1_Index
		dc.l	0


		dc.w	3
AscGad		dc.l	AscGad1
		dc.w	9,0,149,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Pre_Render,0,AscName,0,0
		dc.w	GUp
		dc.l	Asc_Next

		dc.w	18
AscGad1		dc.l	AscGad2
		dc.w	9,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Use_GName,0,0
		dc.w	GUp
		dc.l	Asc_Use

		dc.w	18
AscGad2		dc.l	0
		dc.w	94,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Cancel_GName,0,0
		dc.w	GUp
		dc.l	Asc_Cancel


		dc.l	Pref_Gadget
		dc.w	130
ekr_Pref	dc.w	0,0,282+20,116+12
		dc.b	0,1
		dc.l	GADGETUP+RAWKEY
		dc.l	$2+$4+$20000+$20+$1000+$10000
		dc.l	0,0,Nameport,0,0
		dc.w	282+20,116,282+20,116
		dc.w	$f
		dc.l	Pref_Index
		dc.l	0
		
		dc.l	Edyt_Gadget
		dc.w	190+13
ekr_Edyt	dc.w	0,0,620,200
		dc.b	0,1
		dc.l	GADGETDOWN+RAWKEY+INTUITICKS+GADGETUP
		dc.l	$2+$4+$20000+$20+$1000+$10000
		dc.l	0,0,Nameport,0,0
		dc.w	282,116,282,116
		dc.w	$f
		dc.l	Edyt_Index
		dc.l	Ed_Render
;
;strukturaFont
;
Fontatr		dc.l	0
		dc.w	8
		dc.b	FS_NORMAL
		dc.b	FPF_DISKFONT
;
;definicje gadzetow dla okienka 1
;
		dc.w	103
Gadget6		dc.l	Gadget7
		dc.w	9,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Search_GName,0,0
		dc.w	GUp
		dc.l	Search

		dc.w	103
Gadget7		dc.l	Gadget8
		dc.w	74,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Replace_GName,0,0
		dc.w	GUp
		dc.l	Replace_Word

		dc.w	103
Gadget8		dc.l	Gadget9
		dc.w	139,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Add_GName,0,0
		dc.w	GUp
		dc.l	Add_EdytWord

		dc.w	103
Gadget9		dc.l	Gadget10
		dc.w	249,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Cancel_GName,0,0
		dc.w	GUp
		dc.l	Exit_sPre
	
		dc.w	88
Gadget10	dc.l	Gadget11
		dc.w	273,0,20,14
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	G_Render,0,M_GName,0,0
		dc.w	GUp
		dc.l	InsertYoker

		dc.w	88
Gadget11	dc.l	Gadget2
		dc.w	293,0,20,14
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	G_Render,0,I_GName,0,0
		dc.w	GUp
		dc.l	CopyOffMemory

		dc.w	88
Gadget0		dc.l	Gadget1
		dc.w	273,0,20,14
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	G_Render,0,P_GName,0,0
		dc.w	GUp
		dc.l	Prefe

		dc.w	88
Gadget1		dc.l	Gadget2
		dc.w	293,0,20,14
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	G_Render,0,E_GName,0,0
		dc.w	GUp
		dc.l	Edytor

		dc.w	67
Gadget2		dc.l	Gadget3
		dc.w	297,0,16,10
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	W2_Render,0,0,0,0
		dc.w	GUp+GRepeat
		dc.l	RewLine

		dc.w	77
Gadget3		dc.l	Gadget4
		dc.w	297,0,16,10
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	W2_Render1,0,0,0,0
		dc.w	GUp+GRepeat
		dc.l	FfLine

		dc.w	91
Gadget4		dc.l	Gadget5
		dc.w	14,0,248,8
		dc.w	GFLG_GADGHCOMP+GFLG_STRINGEXTEND
		dc.w	GACT_IMMEDIATE+GACT_RELVERIFY+GACT_ALTKEYMAP
		dc.w	GTYP_STRGADGET
		dc.l	G1_Render,0,0,0,SpecialInfo
		dc.w	GDown
		dc.l	Search

		dc.w	5
Gadget5		dc.l	0
		dc.w	300,0,10,60
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_PROPGADGET
		dc.l	PropBuf,0,0,0,PropInfoX
		dc.w	GUp+GDown+GRepeat
		dc.l	FfORRewLine


;
;definicja gadzetów dla okienka 2
;
		dc.w	50
Req_Gadget	dc.l	Req_Gadget1
		dc.w	9,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Yes_GName,0,0
		dc.w	GUp+%1000
		dc.l	FfLine

		dc.w	50
Req_Gadget1	dc.l	0
		dc.w	167,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,No_GName,0,0
		dc.w	GUp
		dc.l	FfLine

		dc.w	50
Req_Gadget2	dc.l	0
		dc.w	88,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,GName3,0,0
		dc.w	GUp
		dc.l	FfLine

		dc.w	34
Req_Gadget3	dc.l	Req_Gadget
		dc.w	20,0,202,8
		dc.w	GFLG_GADGHCOMP+GFLG_STRINGEXTEND+$80
		dc.w	GACT_IMMEDIATE+GACT_RELVERIFY+GACT_ALTKEYMAP+$4000
		dc.w	GTYP_STRGADGET
		dc.l	G11_Render,0,0,0,SpecialInfo2
		dc.w	GDown+%1000
		dc.l	Next_Pref3
;
;definicja gaūetów dla okienka 3
;
		dc.w	18
Pref_Gadget	dc.l	Pref_Gadget1
		dc.w	67+10,0,149,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Pre_Render,0,GName5,0,0
		dc.w	GUp
		dc.l	Next_Pref


		dc.w	113
Pref_Gadget1	dc.l	Pref_Gadget2
		dc.w	9+10,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Save_GName,0,0
		dc.w	GUp
		dc.l	Save_Pref

		dc.w	113
Pref_Gadget2	dc.l	Pref_Gadget3
		dc.w	109+10,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Use_GName,0,0
		dc.w	GUp
		dc.l	Use_Pref

		dc.w	113
Pref_Gadget3	dc.l	Pref_Gadget4
		dc.w	209+10,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Cancel_GName,0,0
		dc.w	GUp
		dc.l	Exit_Pref

		dc.w	6
Pref_Gadget4	dc.l	Pref_Gadget5
		dc.w	14+20,0,248,8
		dc.w	GFLG_GADGHCOMP+GFLG_STRINGEXTEND
		dc.w	GACT_IMMEDIATE+GACT_RELVERIFY+GACT_ALTKEYMAP
		dc.w	GTYP_STRGADGET
		dc.l	G1_Render,0,0,0,SpecialInfo1
		dc.w	GUp
		dc.l	Next_Pref3

		dc.w	35
Pref_Gadget5	dc.l	Pref_Gadget6
		dc.w	14+20,0,248,8
		dc.w	GFLG_GADGHCOMP+GFLG_STRINGEXTEND
		dc.w	GACT_IMMEDIATE+GACT_RELVERIFY+GACT_ALTKEYMAP
		dc.w	GTYP_STRGADGET
		dc.l	G1_Render,0,0,0,SpecialInfo2
		dc.w	GDown
		dc.l	Next_Pref3

		dc.w	47
Pref_Gadget6	dc.l	Pref_Gadget7
		dc.w	67+10,0,149,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Pre_Render,0,GName9,0,0
		dc.w	GUp
		dc.l	Next_Pref1

		dc.w	62
Pref_Gadget7	dc.l	Pref_Gadget8
		dc.w	9+10,72,16,10
		dc.w	GFLG_GADGHCOMP+GFLG_GADGHIMAGE
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE+GACT_TOGGLESELECT
		dc.w	GTYP_BOOLGADGET
		dc.l	znacznik,znacznik1,GName10,0,0
		dc.w	GUp+GDown
		dc.l	Next_Pref3

		dc.w	74
Pref_Gadget8	dc.l	Pref_Gadget9
		dc.w	9+10,0,16,10
		dc.w	GFLG_GADGHCOMP+GFLG_GADGHIMAGE
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE+GACT_TOGGLESELECT
		dc.w	GTYP_BOOLGADGET
		dc.l	znacznik,znacznik1,GName11,0,0
		dc.w	GUp+GDown
		dc.l	Next_Pref3

		dc.w	86
Pref_Gadget9	dc.l	Pref_Gadget10
		dc.w	9+10,0,16,10
		dc.w	GFLG_GADGHCOMP+GFLG_GADGHIMAGE
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE+GACT_TOGGLESELECT
		dc.w	GTYP_BOOLGADGET
		dc.l	znacznik,znacznik1,GName12,0,0
		dc.w	GUp+GDown
		dc.l	Next_Pref3

		dc.w	98
Pref_Gadget10	dc.l	Pref_Gadget11
		dc.w	9+10,0,16,10
		dc.w	GFLG_GADGHCOMP+GFLG_GADGHIMAGE
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE+GACT_TOGGLESELECT
		dc.w	GTYP_BOOLGADGET
		dc.l	znacznik,znacznik1,GName13,0,0
		dc.w	GUp+GDown
		dc.l	Next_Pref3

		dc.w	3
Pref_Gadget11	dc.l	Pref_Gadget12
		dc.w	9,0,20,14
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Screen_Render,0,0,0,0
		dc.w	GUp
		dc.l	Pref1

		dc.w	32
Pref_Gadget12	dc.l	0
		dc.w	9,0,20,14
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Screen_Render,0,0,0,0
		dc.w	GUp
		dc.l	Pref2

;
;definicje gaūetów dla okienka edytora
;
		dc.w	171
Edyt_Gadget	dc.l	Edyt_Gadget1
		dc.w	547,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Cancel_GName,0,0
		dc.w	GUp
		dc.l	Edyt_Exit

		dc.w	130
Edyt_Gadget1	dc.l	Edyt_Gadget2
		dc.w	595,0,16,10
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	W2_Render,0,0,0,0
		dc.w	GUp+GRepeat
		dc.l	EdLineRew

		dc.w	140
Edyt_Gadget2	dc.l	Edyt_Gadget9
		dc.w	595,0,16,10
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	W2_Render1,0,0,0,0
		dc.w	GUp+GRepeat
		dc.l	EdLineFf

		dc.w	171+15
Edyt_Gadget9	dc.l	Edyt_Gadget95
		dc.w	338,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE+GACT_TOGGLESELECT
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Stop_GName,0,0
		dc.w	GUp
		dc.l	Edyt_Stop

		dc.w	171+15
Edyt_Gadget95	dc.l	Edyt_Gadget10
		dc.w	407,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE+GACT_TOGGLESELECT
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,AddAll_GName,0,0
		dc.w	GUp
		dc.l	Edyt_Stop

		dc.w	150
Edyt_Gadget10	dc.l	Edyt_Gadget11
		dc.w	595,0,16,10
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	W3_Render,0,0,0,0
		dc.w	GUp+GRepeat
		dc.l	EdLeft_Line

		dc.w	160
Edyt_Gadget11	dc.l	Edyt_Gadget12
		dc.w	595,0,16,10
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	W3_Render1,0,0,0,0
		dc.w	GUp+GRepeat
		dc.l	EdRight_Line

		dc.w	6
Edyt_Gadget12	dc.l	Edyt_Gadget3
		dc.w	14,0,575,160
		dc.w	GFLG_GADGHCOMP+GFLG_GADGHNONE
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	0,0,0,0,0
		dc.w	GDown+GUp+GRepeat
		dc.l	EdMarkBlock

		dc.w	171
Edyt_Gadget3	dc.l	Edyt_Gadget35
		dc.w	9,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Load_GName,0,0
		dc.w	GUp
		dc.l	EdLoadText
		dc.w	171
Edyt_Gadget35	dc.l	Edyt_Gadget36
		dc.w	78,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Insert_GName,0,0
		dc.w	GUp
		dc.l	LoadFromClip
		dc.w	171+15
Edyt_Gadget36	dc.l	Edyt_Gadget4
		dc.w	78,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Copy_GName,0,0
		dc.w	GUp
		dc.l	SaveToClip

		dc.w	171
Edyt_Gadget4	dc.l	Edyt_Gadget5
		dc.w	338,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Check_GName,0,0
		dc.w	GUp
		dc.l	EdCheckMarkB

		dc.w	171+15
Edyt_Gadget5	dc.l	Edyt_Gadget6
		dc.w	9,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Save_GName,0,0
		dc.w	GUp
		dc.l	EdSaveText

		dc.w	5
Edyt_Gadget6	dc.l	Edyt_Gadget7
		dc.w	598,0,10,143-20
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_PROPGADGET
		dc.l	PropBuf1,0,0,0,PropInfoX1
		dc.w	GUp+GDown+GRepeat
		dc.l	EdLineRewOrFf

		dc.w	171
Edyt_Gadget7	dc.l	Edyt_Gadget8
		dc.w	208,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Select_GName,0,0
		dc.w	GUp
		dc.l	EdSelectAll

		dc.w	171+15
Edyt_Gadget8	dc.l	Edyt_Gadget19
		dc.w	208,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Clear_GName,0,0
		dc.w	GUp
		dc.l	EdClearAll

		dc.w	171
Edyt_Gadget19	dc.l	0
		dc.w	407,0,64,13
		dc.w	GFLG_GADGHCOMP
		dc.w	GACT_RELVERIFY+GACT_IMMEDIATE
		dc.w	GTYP_BOOLGADGET
		dc.l	Req_Render,0,Chose_GName,0,0
		dc.w	GUp
		dc.l	Edyt_ChoseAsc

SpecialInfo2	dc.l	0
		dc.l	0,256,0,0,0,SG00_Extendet,0,0

SpecialInfo1	dc.l	0
		dc.l	0,256,0,0,0,SG00_Extendet,0,0

SpecialInfo	dc.l	0
		dc.l	0,31,0,0,0,SG00_Extendet,0,0

SG00_Extendet	dc.l	0
		dc.b	1,0
		dc.b	1,0
		blk.b	28,0

Yes_GName	dc.b	01,00,RP_JAM2,00
		dc.w	20,3-1
		dc.l	Fontatr,Yes_Text,0

No_GName	dc.b	01,00,RP_JAM2,00
		dc.w	20,3-1
		dc.l	Fontatr,No_Text,0

GName3		dc.b	01,00,RP_JAM2,00
		dc.w	24,3-1
		dc.l	Fontatr,ok_Text,0

GName5		dc.b	01,00,RP_JAM2,00
		dc.w	25,3
		dc.l	Fontatr,Text5,0

E_GName		dc.b	01,00,RP_JAM2,00
		dc.w	6,3
		dc.l	Fontatr,E_Text,0
P_GName		dc.b	01,00,RP_JAM2,00
		dc.w	6,3
		dc.l	Fontatr,P_Text,0
M_GName		dc.b	01,00,RP_JAM2,00
		dc.w	6,3
		dc.l	Fontatr,M_Text,0
I_GName		dc.b	01,00,RP_JAM2,00
		dc.w	6,3
		dc.l	Fontatr,I_Text,0

Insert_GName	dc.b	01,00,RP_JAM2,00
		dc.w	12,3-1
		dc.l	Fontatr,Insert_Text,0
Copy_GName	dc.b	01,00,RP_JAM2,00
		dc.w	8,3-1
		dc.l	Fontatr,Copy_Text,0

Save_GName	dc.b	01,00,RP_JAM2,00
		dc.w	8,3-1
		dc.l	Fontatr,Save_Text,0
Load_GName	dc.b	01,00,RP_JAM2,00
		dc.w	8,3-1
		dc.l	Fontatr,Load_Text,0
Check_GName	dc.b	01,00,RP_JAM2,00
		dc.w	4,3-1
		dc.l	Fontatr,Check_Text,0
Chose_GName	dc.b	01,00,RP_JAM2,00
		dc.w	4,3-1
		dc.l	Fontatr,Chose_Text,0
Select_GName	dc.b	01,00,RP_JAM2,00
		dc.w	4,3-1
		dc.l	Fontatr,Select_Text,0
Clear_GName	dc.b	01,00,RP_JAM2,00
		dc.w	4,3-1
		dc.l	Fontatr,Clear_Text,0
Stop_GName	dc.b	01,00,RP_JAM2,00
		dc.w	4,3-1
		dc.l	Fontatr,Stop_Text,0

AddAll_GName	dc.b	01,00,RP_JAM2,00
		dc.w	4,3-1
		dc.l	Fontatr,AddAll_Text,0

Use_GName	dc.b	01,00,RP_JAM2,00
		dc.w	16,3-1
		dc.l	Fontatr,Use_Text,0

Cancel_GName	dc.b	01,00,RP_JAM2,00
		dc.w	12,3-1
		dc.l	Fontatr,Cancel_Text,0
Replace_GName	dc.b	01,00,RP_JAM2,00
		dc.w	8,3-1
		dc.l	Fontatr,Replace_Text,0
Search_GName	dc.b	01,00,RP_JAM2,00
		dc.w	8,3-1
		dc.l	Fontatr,Search_Text,0
Add_GName	dc.b	01,00,RP_JAM2,00
		dc.w	12,3-1
		dc.l	Fontatr,Add_Text,0

AscName		dc.b	01,00,RP_JAM2,00
		dc.w	22,3
		dc.l	Fontatr,Text6,0

GName9		dc.b	01,00,RP_JAM2,00
		dc.w	49,3
		dc.l	Fontatr,fxxda_Text,0
GName10		dc.b	01,00,RP_JAM2,00
		dc.w	18,1
		dc.l	Fontatr,Text10,0
GName11		dc.b	01,00,RP_JAM2,00
		dc.w	18,1
		dc.l	Fontatr,Text11,0
GName12		dc.b	01,00,RP_JAM2,00
		dc.w	18,1
		dc.l	Fontatr,Text12,0
GName13		dc.b	01,00,RP_JAM2,00
		dc.w	18,1
		dc.l	Fontatr,Text13,0

Index		dc.w	0,0
		dc.b	$01,00,RP_JAM1,02
		dc.l	Index_xy,0
Index_xy	dc.w	0,0,7,0
;
;definicje ramek dla gadgetow
;
Screen_Render	dc.w	4,2
		dc.b	$01,00,RP_JAM1,13
		dc.l	Screen_xy,G_Render

G_Render	dc.w	0,0
		dc.b	$02,00,RP_JAM1,06
		dc.l	G_xy,G_Render1
G_Render1	dc.w	0,0
		dc.b	$01,00,RP_JAM1,06
		dc.l	G_xy1,0

G1_Render	dc.w	-5,-3
		dc.b	$02,00,RP_JAM1,11
		dc.l	G1_xy,G1_Render1
G1_Render1	dc.w	-5,-3
		dc.b	$01,00,RP_JAM1,12
		dc.l	G1_xy1,0

G11_Render	dc.w	-7,-3
		dc.b	$02,00,RP_JAM1,11
		dc.l	G11_xy,G11_Render1
G11_Render1	dc.w	-7,-3
		dc.b	$01,00,RP_JAM1,12
		dc.l	G11_xy1,0

G2_Render	dc.w	0,0
		dc.b	$02,00,RP_JAM1,6
		dc.l	G2_xy,G2_Render1
G2_Render1	dc.w	0,0
		dc.b	$01,00,RP_JAM1,6
		dc.l	G2_xy1,0

Req_Render	dc.w	0,0
		dc.b	$02,00,RP_JAM1,6
		dc.l	Req_xy,Req_Render1
Req_Render1	dc.w	0,0
		dc.b	$01,00,RP_JAM1,6
		dc.l	Req_xy1,0

Pre_Render	dc.w	0,0
		dc.b	$02,00,RP_JAM1,6
		dc.l	Pre_xy,Pre_Render1
Pre_Render1	dc.w	0,0
		dc.b	$01,00,RP_JAM1,6
		dc.l	Pre_xy1,Arrow_Render

Arrow_Render	dc.w	6,2
		dc.b	$01,00,RP_JAM1,15
		dc.l	Arrow_xy,Arrow_Render1
Arrow_Render1	dc.w	6,2
		dc.b	$01,00,RP_JAM1,2
		dc.l	Arrow_xy1,Arrow_Render2
Arrow_Render2	dc.w	6,2
		dc.b	$02,00,RP_JAM1,2
		dc.l	Arrow_xy2,0

G_xy		dc.w	0,13,0,0,1,0,1,12,1,0,18,0
G_xy1		dc.w	19,0,19,13,18,13,18,1,18,13,1,13

G1_xy		dc.w	0,13,0,0,1,12,1,0,262,0,261,0
		dc.w	261,12,260,12,260,2,260,12,3,12
G1_xy1		dc.w	263,0,263,13,262,13,262,1,262,13
		dc.w	1,13,2,13,2,1,3,1,3,11,3,1,260,1

G11_xy		dc.w	0,13,0,0,1,12,1,0,212,0,211,0
		dc.w	211,12,210,12,210,2,210,12,3,12
G11_xy1		dc.w	213,0,213,13,212,13,212,1,212,13
		dc.w	1,13,2,13,2,1,3,1,3,11,3,1,210,1

G2_xy		dc.w	0,9,0,0,1,0,1,8,1,0,14,0
G2_xy1		dc.w	15,0,15,9,14,9,14,1,14,9,1,9
Req_xy		dc.w	0,12,0,0,1,0,1,11,1,0,62,0
Req_xy1		dc.w	63,0,63,12,62,12,62,1,62,12,1,12
Pre_xy		dc.w	0,12,0,0,1,0,1,11,1,0,147,0
Pre_xy1		dc.w	148,0,148,12,147,12,147,1,147,12,1,12
;
;definicja ramki dla okna
;
Ed_Render	dc.w	9,3
		dc.b	$02,00,RP_JAM1,06
		dc.l	Ed_xy,Ed_Render1
Ed_Render1	dc.w	9,3
		dc.b	$01,00,RP_JAM1,06
		dc.l	Ed_xy1,Ed1_Render
Ed1_Render	dc.w	595,3
		dc.b	$02,00,RP_JAM1,06
		dc.l	Ed1_xy,Ed1_Render1
Ed1_Render1	dc.w	595,3
		dc.b	$01,00,RP_JAM1,06
		dc.l	Ed1_xy1,0

W_Render	dc.w	9,3
		dc.b	$02,00,RP_JAM1,06
		dc.l	W_xy,W_Render1
W_Render1	dc.w	9,3
		dc.b	$01,00,RP_JAM1,06
		dc.l	W_xy1,W1_Render
W1_Render	dc.w	297,3
		dc.b	$02,00,RP_JAM1,06
		dc.l	W1_xy,W1_Render1
W1_Render1	dc.w	297,3
		dc.b	$01,00,RP_JAM1,06
		dc.l	W1_xy1,0
W2_Render	dc.w	4,2
		dc.b	$01,00,RP_JAM1,08
		dc.l	W2_xy,G2_Render
W2_Render1	dc.w	4,2
		dc.b	$01,00,RP_JAM1,08
		dc.l	W2_xy1,G2_Render
W3_Render	dc.w	-1,-1
		dc.b	$01,00,RP_JAM1,03
		dc.l	W3_xy,G2_Render
W3_Render1	dc.w	-1,-1
		dc.b	$01,00,RP_JAM1,03
		dc.l	W3_xy1,G2_Render

WReq_Render	dc.w	9,3
		dc.b	$01,00,RP_JAM1,06
		dc.l	WReq_xy,WReq_Render1
WReq_Render1	dc.w	9,3
		dc.b	$02,00,RP_JAM1,06
		dc.l	WReq_xy1,0

znacznik	dc.w	4,2
		dc.b	$00,00,RP_JAM1,06
		dc.l	znaczxy,G2_Render
znacznik1	dc.w	4,2
		dc.b	$01,00,RP_JAM1,06
		dc.l	znaczxy,G2_Render

znaczxy		dc.w	0,2,3,5,8,0,7,0,3,4,1,2

Ed_xy		dc.w	$000,$0a6,$000,$000,$001,$000,$001,$0a5,$001,$000
		dc.w	$248,$000
Ed_xy1		dc.w	$249,$000,$249,$0a6,$248,$0a6,$248,$001,$248,$0a6
		dc.w	$001,$0a6
Ed1_xy		dc.w	$000,$092-20,$000,$000,$001,$000,$001,$091-20,$001,$000
		dc.w	$00e,$000
Ed1_xy1		dc.w	$00f,$000,$00f,$092-20,$00e,$092-20,$00e,$001,$00e,$092-20
		dc.w	$001,$092-20



W_xy		dc.w	$000,$053,$000,$000,$001,$000,$001,$052,$001,$000
		dc.w	$11e,$000
W_xy1		dc.w	$11f,$000,$11f,$053,$11e,$053,$11e,$001,$11e,$053
		dc.w	$001,$053
W1_xy		dc.w	$000,$03f,$000,$000,$001,$000,$001,$03e,$001,$000
		dc.w	$00e,$000
W1_xy1		dc.w	$00f,$000,$00f,$03f,$00e,$03f,$00e,$001,$00e,$03f
		dc.w	$001,$03f

W2_xy		dc.w	$0,$5,$3,$0,$4,$0,$7,$5,$6,$5,$4,$1,$3,$1,$1,$5

W2_xy1		dc.w	$0,$0,$3,$5,$4,$5,$7,$0,$6,$0,$4,$4,$3,$4,$1,$0

W3_xy		dc.w	13,3,4,5,13,7
W3_xy1		dc.w	4,3,13,5,4,7	
	
WReq_xy		dc.w	$000,$02c,$000,$000,$001,$000,$001,$02b,$001,$000
		dc.w	$0dc,$000
WReq_xy1	dc.w	$0dd,$000,$0dd,$02c,$0dc,$02c,$0dc,$001,$0dc,$02c
		dc.w	$001,$02c
Arrow_xy	dc.w	$008,$007,$007,$007,$007,$008,$001,$008,$001,$000
		dc.w	$000,$001,$000,$007,$000,$001,$001,$000,$007,$000
		dc.w	$007,$005,$005,$003,$00a,$003,$008,$005,$008,$001
Arrow_xy1	dc.w	$00e,$000,$00e,$008
Arrow_xy2	dc.w	$00f,$000,$00f,$008

Screen_xy	dc.w	0,8,11,8,11,2,9,0,6,0,4,2,0,2,0,8,1,7,1,3,5,3,6,4
		dc.w	11,4


PropBuf		blk.l	2,0

PropInfoX	dc.w	$8+$4+$1
		dc.w	0,0	;pot
		dc.w	0,$41	;body
		dc.w	0,0	;c
		dc.w	0,0	;potres
		dc.w	0,0	;boder
PropBuf1	blk.l	2,0
PropInfoX1	dc.w	$8+$4+$1
		dc.w	0,0	;pot
		dc.w	0,$ffff	;body
		dc.w	0,0	;c
		dc.w	0,0	;potres
		dc.w	0,0	;boder

