
		INCDIR	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	INCLUDES/
		INCLUDE	libraries/reqtools_lib.i
		INCLUDE	libraries/reqtools.i
		INCLUDE exec/exec.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

	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	FontReq
	LONG	SeekPos
	LONG	cim_Class
	LONG	cim_IAddress
	LONG	Word_Pos
	LONG	Word_Count
	LONG	Window_Base4
	LONG	yPos
	LONG	Time_Count
	LONG	Char
	LONG	Font_Base
	LONG	Window_Base1
	LONG	tablica
	LONG	cim_Code
	LONG	Window_Base2
	LONG	Pr_Flags
	LONG	Pref_Pos
	LONG	Prefa_Pos
	LONG	KeyMap_Base
	LONG	RexxCount
	LONG	FileHD
	LONG	Arexxrc
	WORD	cim_MouseX
	WORD	cim_MouseY
	LONG	EndCheckText
	LONG	Edyt
	LONG	FileReq
	LONG	WorkBench_Base
	LONG	StartRamMem
	LONG	EndRamMem
	LONG	LineCount
	LONG	LinePos
	LONG	LinexPos
	LONG	LastLine
	LONG	EndCWord
	LONG	StartCWord
	WORD	CWColor
	STRUCT	IORequest,56
	STRUCT	InputEve,ie_SIZEOF
	STRUCT	RKCBuffer,RKCBufferSize
	STRUCT	FontName,256
	STRUCT	FileName,256
	STRUCT	FileName_1,256
	STRUCT	KeyName,256
	STRUCT	PLStandart,256
	STRUCT	Chars,256
	STRUCT	Arexx_Ofs,2560
	STRUCT	FontName1,768
	STRUCT	KeyName1,512
	STRUCT	Chars_1,256
	STRUCT	Arexx_Ofs1,2560
	STRUCT	PLArray,256
	STRUCT	InpText1,256
	STRUCT	OkayText,28
	STRUCT	SortArray,256
	STRUCT	ReqFileName,256
	STRUCT	FullFileName,256
	STRUCT	AllArray,256
	STRUCT	Word_Ofs,1024*40
	LABEL	SlownikX_SIZE
;
Quit			equ	0
Quit1			equ	1
WindowF			equ	2
Arexx			equ	3
ShiftKey		equ	4
Savep			equ	6
Rexxbit			equ	0
Rexxbit1		equ	1	

GDown			equ	0
GUp			equ	1
GRepeat			equ	4

		
;
;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)
;
;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
		bsr.w	Open_Library
		move.l	d0,Mathffp_Base(a5)
		beq.w	ErOp_Math


		lea	Rexx_Name(pc),a1	;rexxsyslibrary
		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
		moveq	#RT_FILEREQ,d0
		suba.l	a0,a0
		jsr	_LVOrtAllocRequestA(a6)
		move.l	d0,FileReq(a5)

NoRB		bsr.w	CreateMsgPort			;Create IORequest and
		lea	IORequest(a5),a1		;open console.device
		move.l	d0,MN_REPLYPORT(a1)
		beq.w	ErCr_IORequest
		move.b	#NT_REPLYMSG,LN_TYPE(a1)
		move.w	#56,MN_LENGTH(a1)
		move.l	a1,-(sp)
OpenDev_Loop	lea	Device_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	Device_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
		movea.l	d0,a0
		bne.s	PrefFileLoad

		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	CopyString

		lea	FileName(a5),a1			;set file name with
		bsr.w	CopyString			;different words lib
		lea	FileName_1(a5),a1		;set file name with
		bsr.W	CopyString			;other word lib
		lea	KeyName(a5),a1			;set path file name
		bsr.w	CopyString			;with keyboard def
		lea	PLStandart(a5),a1		;set pl ascii
		bsr.w	CopyString			;key Convert tabele
		lea	Chars(a5),a1			;set ascii code
		bsr.w	CopyString			;to use for compare  

		moveq	#9,d0				;set arexx scripts
		lea	Arexx_Ofs1(a5),a2		;path and file name
		lea	SpecialInfo2(pc),a3
		move.l	a2,(a3)
		lea	Arexx_Ofs(a5),a2
Loop_Arexx	movea.l	a2,a1
		bsr.w	CopyString
		addi.l	#256,a2
		dbf	d0,Loop_Arexx
		lea	About_Ofs(pc),a0
		move.l	#1,Word_Pos(a5)
		move.l	#16,Word_Count(a5)

		lea	Word_Ofs(a5),a2			;set pl ascii
		moveq	#16,d0				;standart code
Copy_About	tst.b	(a0)+
		bne.s	Copy_About
		move.l	a0,(a2)+
		dbf	d0,Copy_About
		lea	PLStandart(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	#$6a24,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)
;
;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	Readdodatki			;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,Pr_Flags(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
		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,Pr_Flags(a5)
		beq.b	NextWindMesa

NoWind_Mesa	btst	#Quit,Pr_Flags(a5)
		beq.w	WaitSignal
		tst.w	RexxCount(a5)
		bne.w	WaitSignal
		btst	#Quit1,Pr_Flags(a5)
		bne.b	Exit
		bra.b	Exit1
;
;wyjscie z programu
;
Exit		bclr	#Quit,Pr_Flags(a5)
		bclr	#Quit1,Pr_Flags(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

		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	IORequest(a5),a1
		move.l	Exec_Base(a5),a6		
		jsr	_LVOCloseDevice(a6)
ErOp_Device	lea	IORequest(a5),a0
		move.l	MN_REPLYPORT(a0),a0
		bsr.w	DeleteMsgPort
ErCr_IORequest	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

ShiftKey_Up	bset	#ShiftKey,pr_Flags(a5)
		rts

ShiftKey_Down	bclr	#ShiftKey,pr_Flags(a5)
		rts

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

EscKey		bset	#Quit,Pr_Flags(a5)
		bset	#Quit1,Pr_Flags(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
		bne.b	No_RAWKEY1

		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	IORequest(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

CompareNextKey1	cmp.w	(a0)+,d0
		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
		btst	#0,gg_Flags+1(a0)
		beq.s	RepeatG
No_GUp		cmpi.l	#GADGETDOWN,cim_Class(a5)
		bne.s	No_GDown
		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
RepeatG		movea.l	gg_UserData(a0),a0
		jmp	(a0)
No_SelectG	rts		
;
;
;
Search		pea	Print
		pea	ModifyProp

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

SearchL2	lea	InpText(pc),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(pc),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.w	d7,Char(a5)
		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		movem.l	pp_Buffer+32(a5),a0/a1
		adda.l	a0,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(pc),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	#31000,d7		
		beq.s	sko33
		tst.b	d5
		beq.W	Search_Eol

sko33		addq.l	#4,sp
End_Search	lsr.l	#2,d7
		tst.l	d7
		bne.s	End_Search1
		cmpi.b	#3,pr_Flags+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(pc),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
		bsr.W	Readdodatki
		moveq.l	#1,d7
End_Search1	move.l	d7,Word_Count(a5)
		rts
;
;dodanie wyrazu do biblioteki
;
AddWord		lea	FileName_1(a5),a1
		move.l	#MODE_OLDFILE,d2
		bsr.W	OpenFile
		beq.s	CreateNewFile
		moveq	#0,d2
		moveq	#1,d3
		bsr.W	SeekFile
		bmi.s	Err_SeekAdd
		bra.s	AddWord1
CreateNewFile	lea	FileName_1(a5),a1
		move.l	#MODE_NEWFILE,d2
		bsr.W	OpenFile
		beq.s	Err_AddWord
		movem.l	pp_Buffer+32(a5),d2/d3
		tst.l	d3
		bne.s	AddWordx
		lea	zero(pc),a0
		move.l	a0,d2
		moveq	#1,d3
AddWordx	bsr.W	WriteFile
AddWord1	lea	InpText(pc),a0
		bsr.W	GetSizeString
		move.l	a0,d2
		move.l	d0,d3
		addq.l	#1,d3
		bsr.W	WriteFile
		bsr.W	CloseFile
		moveq	#0,d0
		rts
Err_SeekAdd	bsr.W	CloseFile
Err_AddWord	moveq	#-1,d0
		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),a0
		lea	Chars(a5),a1
		moveq	#0,d1
		moveq	#0,d0
		move.w	#255,d7
Loop_Sort	move.b	(a1)+,d0
		addq.b	#1,d1
		move.b	d1,$00(a0,d0.w)
		tst.b	d0
		dbeq	d7,Loop_Sort
		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
;
Up_Line		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
		btst	#ShiftKey,pr_Flags(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
		btst	#ShiftKey,pr_Flags(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
;
Down_Line	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
		btst	#ShiftKey,pr_Flags(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
		btst	#ShiftKey,pr_Flags(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
;
UpOrDown_Line	
		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	lea	Edyt_Gadget6(pc),a0
		movea.l	Window_Base2(a5),a1
		move.l	LineCount(a5),d3
		move.l	LinePos(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)


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),ie_Qualifier(a0)
		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,Pr_Flags(a5)
		rts
NoWind_Mesa1	move.l	(sp)+,d0
		bset	#WindowF,Pr_Flags(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,Pr_Flags(a5)
		subi.w	#1,RexxCount(a5)
		rts

noreply		clr.l	Arexxrc(a5)
		bset	#Rexxbit,Pr_Flags+1(a5)
		lea	Arex_instr(pc),a3
		moveq	#21,d3			;ilosc instrukcji
Loop_Instr	movea.l	rm_Args0(a1),a0
Loop_Instr1	move.b	(a3)+,d0
		beq.s	Find_Instr
		move.b	(a0)+,d1
		beq.s	Find_Zero
		cmp.b	d1,d0
		beq.s	Loop_Instr1
		eori.b	#%100000,d0
		cmp.b	d1,d0
		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
		moveq	#21,d0			;ilosc instrukcji
		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,Pr_Flags(a5)
		bclr	#Rexxbit,Pr_Flags+1(a5)
		rts
No_ArexxMesa	move.l	(sp)+,d0
		bset	#Arexx,Pr_Flags(a5)
		bclr	#Rexxbit,Pr_Flags+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	no_free
		movea.l	pp_Buffer(a5,d2.l),a1
		movea.l	Exec_Base(a5),a6
		clr.l	pp_len(a5,d2.l)
		jsr	_LVOFreeMem(a6)
no_free		rts

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

AllocMem_OK	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
;
;
;
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
NextLine	move.l	a0,(a2)+
		addq.w	#1,d0
		cmpi.w	#3,d0
		beq.s	OkayLineCount
NextChar	cmpi.b	#1,(a0)
		bne.s	no1
		move.l	a3,(a2)+
		addq.w	#1,d0
no1		cmpi.b	#$0a,(a0)+
		beq.s	NextLine
		tst.b	-1(a0)
		bne.s	NextChar	
OkayLineCount	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	ErOp_Window1
		lea	ekr_Requ(pc),a1
		lea	Req_Gadget3(pc),a0
		cmp.l	nw_FirstGadget(a1),a0
		bne.s	nostringgadg
		movea.l	Window_Base1(a5),a1
		bsr.W	ActivateGadget
nostringgadg	movea.l	(sp)+,a0
		moveq	#14,d1
		move.w	(a0)+,d3
Requ_Loop	movea.l	(a0),a1
		moveq	#-1,d2
Requ_Loop1	addq.l	#1,d2
		cmpi.b	#$0a,(a1)
		beq.s	Requ_Jmp
		cmpi.b	#1,(a1)
		beq.s	Requ_Jmp
		tst.b	(a1)+
		bne.s	Requ_Loop1
Requ_Jmp	cmpi.l	#27,d2
		bls.s	CharCountOK
		moveq	#27,d2
CharCountOK	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,Requ_Loop
		movea.l	Window_Base1(a5),a0
		bsr.w	Get_WMsg
		movea.l	cim_IAddress(a5),a0
		moveq	#0,d0
		btst.b	#3,gg_GadgetID+1(a0)
		bne.s	No_Key1
		moveq	#-1,d0
No_Key1		cmpi.l	#VANILLAKEY,cim_Class(a5)
		bne.s	No_Key
		cmpi.w	#$74,cim_Code(a5)
		beq.s	Clrd0
		cmpi.w	#$0d,cim_Code(a5)
		bne.s	No_Key
Clrd0		moveq	#0,d0
No_Key		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

ErOp_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	#15,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
		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	#$06,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
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	#6,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
		movea.l	wd_RPort(a0),a0
		moveq	#77,d0
		moveq	#28,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	#3,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
		movea.l	wd_RPort(a0),a0
		moveq	#77,d0
		moveq	#57,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	#Savep,pr_Flags(a5)
		bra.s	Use_Pref1

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

Pref1.J1	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
;
;uûycie Preferencji
;
Use_Pref	bclr	#Savep,pr_Flags(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	#2815,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,pr_Flags(a5)
		beq.s	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	PLArray(a5),a1
		lea	AllArray(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	PLStandart(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	PLArray(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(pc),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,Pr_Flags(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_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	PLStandart(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(pc),a1
		bsr.W	CopyStrAndConvert
		bsr.W	AddWord
		lea	OpOK(pc),a0
		tst.w	d0
		beq.s	Exit_OrtAdd
		lea	OpNo(pc),a0
Exit_OrtAdd	rts

;
Ort_Requeston	bclr	#Rexxbit1,pr_Flags+1(a5)
		lea	OpOK(pc),a0
		rts
Ort_Requestoff	bset	#Rexxbit1,pr_Flags+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	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	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
;
;
;
Readdodatki	moveq	#32,d2
		bsr.W	FreeMemoryX
		moveq	#32,d2
		lea	FileName_1(a5),a1
		bsr.W	Read_File
		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
		clr.w	Char(a5)
WoToRa_Exit	rts
		

DelWordsFromRam	moveq	#8,d2
		bsr.W	FreeMemoryX
		clr.w	Char(a5)
		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)
		move.l	d0,FontReq(a5)
		beq.s	Err_AllReqA
		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	.ok23
		move.l	FontReq(a5),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
.ok23		move.l	FontReq(a5),a1
		jsr	_LVOrtFreeRequest(a6)
Err_AllReqA	rts

;
;zapis  Preferencji
;
Save_Prefe	lea	Pref_File(pc),a1
		move.l	#MODE_NEWFILE,d2
		bsr.W	OpenFile
		beq.s	Err_OpFile1		
		lea	Pref_Gadget7(pc),a1
		moveq	#3,d0
SaPr_Loop	move.l	a1,d2
		add.l	#gg_Flags+1,d2
		moveq	#1,d3
		movem.l	a1/d0,-(sp)
		bsr.W	WriteFile
		movem.l	(sp)+,a1/d0
		move.l	(a1),a1
		dbf	d0,SaPr_Loop
		moveq	#15,d4
		lea	FontName(a5),a0
Save_Next	bsr.W	GetSizeString
		move.l	a0,d2
		move.l	d0,d3
		addq.l	#1,d3
		movem.l	d4/a0,-(sp)
		bsr.W	WriteFile
		movem.l	(sp)+,d4/a0
		addi.l	#256,a0
		dbf	d4,Save_Next
		bra.W	CloseFile
Err_OpFile1	rts

;
;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(pc),a1
		moveq	#0,d0
		move.l	#$ffffff,d3
		moveq	#2,d2
Loop		move.b	(a1)+,d0
		beq.s	Star
		cmp.b	#'*',d0
		beq.s	Star
		cmp.b	#'?',d0
		beq.s	Star
		lsl.l	#8,d0
		dbf	d2,Loop
		lsr.l	#8,d0
		bra.s	Fxxa
Star		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
		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	noram
		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

noram		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	#-1,LastLine(a5)
		move.l	#1024,Edyt(a5)
		lea	ekr_Edyt(pc),a0
		bsr.W	Open_Window
		move.l	d0,Window_Base2(a5)
		beq.b	ErOp_Window3
		bsr.w	ShowChecksText
Edyt_Next	movea.l	Window_Base2(a5),a0
		bsr.w	Get_WMsg
		lea	Edyt_Keys(pc),a0
		bsr.W	Check_KeyGadget
		cmpi.l	#GADGETUP,cim_Class(a5)
		bne.s	Edyt_Next
		move.l	#-1,LastLine(a5)
		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
ErOp_Window3	clr.l	Edyt(a5)
		rts
;
;
;
SelectLine	move.l	Window_Base2(a5),a0
		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	LinePos(a5),d1
		cmp.l	LineCount(a5),d1
		bgt.s	min1		
		cmp.l	LastLine(a5),d1
		beq.s	min1
		move.l	d1,LastLine(a5)
		lsl.l	#2,d1
		movea.l	pp_Buffer+24(a5),a0
		bchg	#31,$00(a0,d1.l)
		bsr.W	Lp1
min1		tst.l	d3
		bne.s	falsePos2
		bsr.W	EdDown_Line			
		bra.s	falsePos3
falsePos2	cmpi.w	#19,d3
		bne.s	falsePos3
		bsr.W	EdUp_Line
falsePos3	rts
;
;
;
CheckText	moveq	#0,d0
		lea	SortArray(a5),a3
		lea	PLArray(a5),a6
		movea.l	pp_Buffer+24(a5),a2
check_Loop	lsl.l	#2,d0
		btst	#31,$00(a2,d0.l)
		beq.W	no_check
		movem.l	a2/a3/a6/d0,-(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)
		lsr.l	#2,d0
		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)+,a2/a3/a6/d0		
		move.l	$00(a2,d0.l),d1
		bclr	#31,d1
		movea.l	d1,a0
		move.l	4(a2,d0.l),d1
		bclr	#31,d1
		movea.l	d1,a1
FindStartWord	moveq	#0,d1
FindStartWord1	cmpa.l	a1,a0
		bge.W	no_check
		move.b	(a0)+,d1
		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
		bgt.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
check_Word	movem.l	d0-d7/a0-a6,-(sp)
		move.l	SpecialInfo2(pc),a2
		lea	InpText(pc),a1
		lea	PLArray(a5),a3
		movem.l	a4/a0,EndCWord(a5)
CopycheckWord	move.b	(a4)+,d1
		move.b	$00(a3,d1.w),(a1)+
		move.b	$00(a3,d1.w),(a2)+
		cmpa.l	a0,a4
		blt.s	CopycheckWord				
		clr.b	(a1)
		clr.b	(a2)
		bsr.W	SearchL2
		bne.W	yst
		move.l	(sp),d0
		lsr.l	#2,d0
		sub.l	#1,d0
		bcc.s	dod
		moveq	#0,d0
dod		move.l	d0,LinePos(a5)
		bsr.W	ShowChecksText
		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(pc),a0
		move.l	a0,(a2)+
		bsr.W	Print	
sPreNext	movea.l	Window_Base(a5),a0
		bsr.w	Get_WMsg
		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(pc),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.s	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
		lea	Edyt_Gadget9(pc),a4
		btst	#7,gg_Flags+1(a4)
		beq.W	FindStartWord
		bra.s	Exitcheck
no_check	bclr	#31,$00(a2,d0.l)
		lsr.l	#2,d0
		addq.l	#1,d0
		cmp.l	LineCount(a5),d0
		blt.W	check_Loop	
Exitcheck	bsr.W	ShowChecksText
		rts
;
;
;
Edyt_Select	moveq	#0,d0
EdSe_Loop	lsl.l	#2,d0
		lea	SortArray(a5),a3
		movea.l	pp_Buffer+24(a5),a2
		bset	#31,$00(a2,d0.l)
		lsr.l	#2,d0
		addq.l	#1,d0
		cmp.l	LineCount(a5),d0
		bls.s	EdSe_Loop	
		bsr.W	ShowChecksText
		rts
;
;
;
Edyt_Clear	moveq	#0,d0
EdCl_Loop	lsl.l	#2,d0
		lea	SortArray(a5),a3
		movea.l	pp_Buffer+24(a5),a2
		bclr	#31,$00(a2,d0.l)
		lsr.l	#2,d0
		addq.l	#1,d0
		cmp.l	LineCount(a5),d0
		bls.s	EdCl_Loop	
		bsr.W	ShowChecksText
		rts
;
;
;
Edyt_Save	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_Load	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	LinePos(a5)
		clr.l	EndCheckText(a5)
		moveq	#16,d2
		movem.l	a0/d2,-(sp)
		bsr.W	FreeMemoryX
		movem.l	(sp)+,a1/d2
		bsr.W	Read_File
		tst.l	pp_len+16(a5)
		beq.s	EdLo_Error
		moveq	#24,d2
		bsr.w	FreeMemoryX
		movem.l	pp_Buffer+16(a5),a0/a1
		sub.l	#1024,a1
		adda.l	a0,a1
		moveq	#2,d0
EdLo_Loop	move.b	(a0)+,d3
		beq.s	EdLo_Zero
		cmpi.b	#$0a,d3
		bne.s	EdLo_NoLF
EdLo_Zero	addq.l	#1,d0
EdLo_NoLF	cmpa.l	a1,a0
		bls.s	EdLo_Loop
		lsl.l	#2,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	#1024,a1
		adda.l	a0,a1
		move.l	a1,EndCheckText(a5)
		movea.l	d0,a2
		move.l	a0,(a2)+
		moveq	#1,d0
EdLo_Loop1	move.b	(a0)+,d3
		beq.s	EdLo_Zero1
		cmpi.b	#$0a,d3
		bne.s	EdLo_NoLF1
EdLo_Zero1	addq.l	#1,d0
		move.l	a0,(a2)+
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	ShowChecksText
		bsr.W	ModifyProp1
		rts

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

InsertStar	lea	InpText(pc),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(pc),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
		bsr.W	Readdodatki
		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(pc),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
		bra.s	ReWo_Jmp1
ReWo_OK		lea	AllArray(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	ShowChecksText
		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)
ReWo_Jmp1	move.l	8(sp),d0
		lsr.l	#2,d0
		movea.l	pp_Buffer+24(a5),a2
ReWo_Loop2	addq.l	#1,d0
		lsl.l	#2,d0
		move.l	$00(a2,d0.l),d2
		move.l	d2,d1
		andi.l	#%10000000000000000000000000000000,d1
		andi.l	#%01111111111111111111111111111111,d2
		sub.l	a4,d2
		or.l	d1,d2
		move.l	d2,$00(a2,d0.l)
		lsr.l	#2,d0	
		cmp.l	LineCount(a5),d0
		blt.s	ReWo_Loop2
		bra.s	ReWo_OK			
;
;wyswietlenie nastepnej linijki
;
EdDown_Line	move.l	LinePos(a5),d0
		beq.s	Edyt_Stop
		moveq	#20,d1
		btst	#ShiftKey,pr_Flags(a5)
		bne.s	Ednod9
		moveq	#1,d1
Ednod9		cmp.l	d0,d1
		bls.s	EdDown_Line1
		move.l	d0,d1
EdDown_Line1	sub.l	d1,LinePos(a5)
		bsr.W	ModifyProp1
		btst	#ShiftKey,pr_Flags(a5)
		bne.s	No_DownLineEd
		moveq	#-8,d1
		bsr.W	Scroll
		moveq	#0,d3
		bra.B	Lp1
No_DownLineEd	bsr.b	ShowChecksText
Edyt_Stop	rts

;
;wyswietlenie poprzedniej linijki
;
EdUp_Line	move.l	LineCount(a5),d0
		sub.l	LinePos(a5),d0
		subi.l	#19,d0
		bls.s	No_UpLineEd
		moveq	#20,d1
		btst	#ShiftKey,pr_Flags(a5)
		bne.s	no20
		moveq	#1,d1
no20		cmp.l	d0,d1
		bls.s	Up_Line1Ed
		move.l	d0,d1
Up_Line1Ed	add.l	d1,LinePos(a5)
		bsr.W	ModifyProp1
		btst	#ShiftKey,pr_Flags(a5)
		bne.s	yst20
		moveq	#8,d1
		bsr.W	Scroll
		moveq	#19,d3
		bra.s	Lp1
yst20		bsr.b	ShowChecksText
No_UpLineEd	rts

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

		bra.s	ShowChecksText
nosxPos		rts
EdRight_Line	addi.l	#1,LinexPos(a5)

ShowChecksText	bsr.W	Lp2
		moveq	#0,d3
Loop_PrintEd	bsr.s	Lp1
		addq.l	#1,d3
		cmpi.b	#19,d3
		ble.s	Loop_PrintEd
		rts
Lp1		movem.l	d0-d7/a0-a6,-(sp)
		move.l	Window_Base2(a5),a1
 		bsr.W	RPort_GraphBase
		moveq	#14,d0
		move.l	12(sp),d1
		lsl.l	#3,d1
		add.l	#12,d1
		movea.l	Window_Base2(a5),a1
		bsr.W	PrMove
		movem.l	(sp)+,d0-d7/a0-a6

		lea	PLArray(a5),a3
		moveq	#0,d2
		move.l	LinePos(a5),d7
		add.l	d3,d7
		moveq	#0,d0
		lea	InpText1(a5),a1
		moveq	#71,d1
		cmp.l	LineCount(a5),d7
		bge.w	Loop_Print2Ed
		lsl.l	#2,d7
		movea.l	pp_Buffer+24(a5),a2
		add.l	d7,a2
		lsr.l	#2,d7
		move.l	(a2),d4
		bclr	#31,d4
		beq.s	ustaw
		moveq	#3,d0
ustaw		move.l	d4,a0
		move.l	4(a2),d4
		bclr	#31,d4
		move.l	LinexPos(a5),d6
		add.l	d6,a0
Loop_Print1Ed	cmp.l	StartCWord(a5),a0
		bne.b	NoCWord
		bsr.b	CWPrint	
		lea	InpText1(a5),a1
		move.w	d0,CWColor(a5)
		move.w	#2,d0
NoCWord		cmp.l	EndCWord(a5),a0
		bne.b	NoCWord1
		bsr.b	CWPrint
		lea	InpText1(a5),a1
		move.w	CWColor(a5),d0
NoCWord1	tst.b	(a0)
		beq.s	Loop_Print2Ed
		cmpi.b	#$0a,(a0)
		beq.s	Loop_Print2Ed
		cmp.l	d4,a0
		bge.s	Loop_Print2Ed
		move.b	(a0)+,d2
		move.b	(a3,d2.w),(a1)+
		cmpi.b	#9,-1(a1)
		bne.s	notab
		move.b	#' ',-1(a1)
		moveq	#71,d6
		sub.l	d1,d6
		move.l	d6,d5
		lsr.l	#3,d6
		addq.l	#1,d6
		lsl.l	#3,d6
		sub.l	d5,d6
tabrep		move.b	#' ',(a1)+
		subq.l	#1,d1
		beq.s	Loop_Print2Ed
		dbf	d6,tabrep
notab		subq.l	#1,d1
		bne.s	Loop_Print1Ed
Loop_Print2Ed	move.b	#' ',(a1)+
		dbf	d1,Loop_Print2Ed
		addq.l	#1,d1
CWPrint		movem.l	d0-d7/a0-a6,-(sp)
		clr.b	(a1)
		move.l	Window_Base2(a5),a1
 		bsr.W	RPort_GraphBase
		jsr	_LVOSetBPen(a6)
		lea	InpText1(a5),a0
		move.l	a0,a1
		moveq	#-1,d0
GetCWSize	addq.l	#1,d0
		tst.b	(a1)+
		bne.b	GetCWSize
		move.l	Window_Base2(a5),a1
		bsr.W	RPort_GraphBase
		jsr	_LVOText(a6)
		movem.l	(sp)+,d0-d7/a0-a6
		rts
		
Lp2		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	LinePos(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	LinexPos(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	Lp2
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
;
LineUpDownEd	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,LinePos(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,LinePos(a5)
Okey11Ed	bsr.w	ShowChecksText		
		rts

TaskBase	dc.l	0
;
About_Ofs	
		dc.b	$0
		dc.b	'        Orto Sîownik v 1.21',$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: 18-10-97',$0
		dc.b	32,0
		dc.b	'  e-mail: jarekp@bet.po.opole.pl',$0
		dc.b	'        IRC-Nick: jarekp',$0
		dc.b	32,0,'  Program Shareware opîata 5 zî',0
		
		dc.b	32,0,32,0,32,0,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
;
Device_Name	dc.b	'console.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
;
Arex_instr	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
;
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
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
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
Replace_Text	dc.b	'Wymieï',0
Add_Text	dc.b	'Dodaj',0
Search_Text	dc.b	'Szukaj',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	2,2,2,2
		dc.b	'slownik.Font',0
		dc.b	'df0:ort_lib',0
		dc.b	'df0:ort_lib1',0
		dc.b	'sys:devs/keymaps/d_pl',0
		dc.b	'e2,ea,eb,ee,ef,f3,f4,fa,fb,c2,ca,cb,ce,cf'
		dc.b	',d3,d4,da,db',0
		dc.b	"AaÂâBbCcÊêDdEeËëFfGgHhIiJjKkLlÎîMmNnÏïOoÓóPpQqRrSsÔôTtUuVv"
		dc.b	"WwXxYyZzÚúÛû",0
		dc.b	0,0,0,0,0,0,0,0,0,0

Pref_File	dc.b	'sys:s/orto_Pref',0
zero		dc.b	0
;
;zbiór komunikatów dla programu
;
FontOper	dc.b	'Nie mogë otworzyê Fontu',1,$0a
		dc.b	'Czy powrórzyê operacje ?',0

KeyOper		dc.b	'Nie mogë otworzyê',1,$0a	
		dc.b	'Czy powrórzyê operacje ?',0

Brak_Wyrazu	dc.b	'Brak sîowa',1,$0a
		dc.b	'Czy dodaê je do biblioteki',$0a
		dc.b	'Sîownika ?',0

Brak_Wyrazu1	dc.b	'Brak sîowa',1,0
		
Open_Error	dc.b	'Bîâd otwarcia pliku',1,$0a
		dc.b	'Czy powrórzyê operacje ?',0

OpenLib_Error	dc.b	'Bîâd otwarcia biblioteki',1,$0a
		dc.b	'Czy powrórzyê operacje ?',0

OpenDev_Error	dc.b	'Bîâd otwarcia',1,$0a
		dc.b	'Czy powrórzyê operacje ?',0
		
Read_Error	dc.b	'Bîâd odczytu z pliku',1,$0a
		dc.b	'Czy powrórzyê operacje ?',0
getokstring	dc.b	'Podaj poprawnâ forme',0

No_Memory	dc.b	'Brak pamiëci dla',$0a
		dc.b	'wczytania pliku',1,$0a
		dc.b	'Czy powrórzyê operacje ?',0

AllocMemError	dc.b	'Nie mogë zarezerwowaê',$0a
		dc.b	'pamiëci',$0a
		dc.b	'Czy powrórzyê operacje ?',0

czy_opuscic	dc.b	'Czy chcesz opuôciê',$0a
		dc.b	'Sîownik Ortograficzny ?',0

No_Host		dc.b	'Serwer Arexx-a',$0a
		dc.b	'nie aktywny',$0a
		dc.b	'Czy powrórzyê operacje ?',0

kody		dc.b	'Bîâd w definicji kodów',$0a
		dc.b	'polskich znaków',0

AReturnCode	dc.b	'Serwer Arexx-a',$0a
		dc.b	'zwróciî kod - 0000',0
nulText		dc.b	'Podaj nazwe pliku',0
RLoad_Text	dc.b	'Odczyt',$0a
		dc.b	'Podaj nazwe pliku',0
RSave_Text	dc.b	'Zapis',$0a
		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	10
		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	Down_Line-Prog_Keys
		dc.w	$4d
		dc.w	Up_Line-Prog_Keys
		dc.w	$46
		dc.w	Size_Window-Prog_Keys
		dc.w	$60
		dc.w	ShiftKey_Up-Prog_Keys
		dc.w	$61
		dc.w	ShiftKey_Up-Prog_Keys
		dc.w	$e0
		dc.w	ShiftKey_Down-Prog_Keys
		dc.w	$e1
		dc.w	ShiftKey_Down-Prog_Keys
;

Edyt_Keys	dc.w	13
		dc.b	1,'O'
		dc.w	Edyt_Load-Edyt_Keys
		dc.b	1,'P'
		dc.w	Edyt_Exit-Edyt_Keys
		dc.w	$4d
		dc.w	EdUp_Line-Edyt_Keys
		dc.w	$4c
		dc.w	EdDown_Line-Edyt_Keys
		dc.b	1,'Z'
		dc.w	Edyt_Save-Edyt_Keys
		dc.b	1,'A'
		dc.w	Edyt_Select-Edyt_Keys
		dc.b	1,'W'
		dc.w	Edyt_Clear-Edyt_Keys
		dc.b	1,'S'
		dc.w	CheckText-Edyt_Keys
		dc.w	$60
		dc.w	ShiftKey_Up-Edyt_Keys
		dc.w	$61
		dc.w	ShiftKey_Up-Edyt_Keys
		dc.w	$e0
		dc.w	ShiftKey_Down-Edyt_Keys
		dc.w	$e1
		dc.w	ShiftKey_Down-Edyt_Keys
		dc.w	$4f
		dc.w	EdLeft_Line-Edyt_Keys
		dc.w	$4e
		dc.w	EdRight_Line-Edyt_Keys
;
Pref_Keys	dc.w	7
		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

SReq_Keys	dc.w	12
		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	Down_Line-SReq_Keys
		dc.w	$4d
		dc.w	Up_Line-SReq_Keys
		dc.w	$60
		dc.w	ShiftKey_Up-SReq_Keys
		dc.w	$61
		dc.w	ShiftKey_Up-SReq_Keys
		dc.w	$e0
		dc.w	ShiftKey_Down-SReq_Keys
		dc.w	$e1
		dc.w	ShiftKey_Down-SReq_Keys
		dc.w	$44
		dc.w	ReturnKey-SReq_Keys
		dc.b	1,'I'
		dc.w	CopyOffMemory-SReq_Keys
		dc.w	$11c
		dc.w	InsertStar-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

Edyt_Index	dc.w	5
		dc.w	181,17,181,78,181,146,181,220,181,276,181,559
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
;
;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,116
		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	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
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	InsertStar

		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	Down_Line

		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	Up_Line

		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	UpOrDown_Line


;
;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	Up_Line

		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	Up_Line

		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	Up_Line

		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	EdDown_Line

		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	EdUp_Line

		dc.w	171
Edyt_Gadget9	dc.l	Edyt_Gadget10
		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	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+GRepeat
		dc.l	SelectLine

		dc.w	171
Edyt_Gadget3	dc.l	Edyt_Gadget4
		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	Edyt_Load

		dc.w	171
Edyt_Gadget4	dc.l	Edyt_Gadget5
		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,Check_GName,0,0
		dc.w	GUp
		dc.l	CheckText

		dc.w	171
Edyt_Gadget5	dc.l	Edyt_Gadget6
		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,Save_GName,0,0
		dc.w	GUp
		dc.l	Edyt_Save

		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	LineUpDownEd

		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	Edyt_Select

		dc.w	171
Edyt_Gadget8	dc.l	0
		dc.w	273,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	Edyt_Clear

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	InpText
		dc.l	0,31,0,0,0,SG00_Extendet,0,0

InpText		blk.b	40,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-1
		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

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
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

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

GName9		dc.b	01,00,RP_JAM2,00
		dc.w	49,3-1
		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

