850 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			850 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 11.03.2025 savelij
 | ||
| 
 | ||
|  INIT_VAR
 | ||
|  SETVAR CursorX		;EQU	0x00
 | ||
|  SETVAR StringX		;EQU	0x01
 | ||
|  SETVAR CursAddX	;EQU	0x02
 | ||
|  SETVAR CursorY		;EQU	0x03
 | ||
|  SETVAR LenString	;EQU	0x04
 | ||
|  SETVAR PrvLenStr	;EQU	0x05
 | ||
|  SETVAR ReadyStr	;EQU	0x06
 | ||
|  SETVAR ReadyFile	;EQU	0x07
 | ||
| 
 | ||
| LineBuffer := WorkBuffer+0x200
 | ||
| TempBuffer := WorkBuffer+0x300
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| 		JP	FileEditor
 | ||
| 	
 | ||
| 		DZ FLEX_VERS.EDITOR
 | ||
| 
 | ||
| FileEditor	CALL	FELoadFile
 | ||
| 		RET	C
 | ||
| 		call	ReadEditorIni
 | ||
| 		LD	IY,EditData
 | ||
| 		SUB	A
 | ||
| 		LD	(EditMode),A
 | ||
| 		LD	(HEXmode),A
 | ||
| 		LD	(IY+CursorX),A
 | ||
| 		LD	(IY+StringX),A
 | ||
| 		LD	(IY+CursAddX),A
 | ||
| 		LD	(IY+CursorY),A
 | ||
| 		LD	(IY+ReadyStr),A
 | ||
| 		LD	(IY+ReadyFile),A
 | ||
| 		INC	A
 | ||
| 		LD	(FECrTimer),A
 | ||
| 		LD	HL,0x0000
 | ||
| 		LD	(CurLine),HL
 | ||
| 		LD	(LineShift),HL
 | ||
| 		LD	(FEPageShift),HL
 | ||
| 		CALL	FEInitScreen
 | ||
| EditorBegin	CALL	InitStatus
 | ||
| 		CALL	InitFile
 | ||
| 		CALL	PrintPage
 | ||
| EditorLoop	CALL	FEChCursor
 | ||
| 		LD	A,(EditMode)
 | ||
| 		OR	A
 | ||
| 		JP	NZ,HEditLoop
 | ||
| TEditLoop	LD	IX,FEASCIItab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 	SPDSS DSSF.SCANKEY		;ަ¨¤ ¥¬  ¦ â¨ï ª« ¢¨è
 | ||
| 		JR	Z,EditorLoop
 | ||
| 		LD	A,D
 | ||
| 		CP	0x44
 | ||
| 		JP	Z,EditorExit
 | ||
| 		LD	A,E		;…-ASCII ª®¤
 | ||
| 		CP	0x1B		;Esc
 | ||
| 		JP	Z,EditorExit
 | ||
| 		LD	HL,EditorLoop
 | ||
| 		PUSH	HL
 | ||
| 		OR	A
 | ||
| 		JP	NZ,TInsertSymbol
 | ||
| 		LD	A,D
 | ||
| 		CP	0x3B
 | ||
| 		JP	Z,FEAbout
 | ||
| 		CP	0x3C
 | ||
| 		JP	Z,SaveFile
 | ||
| 		CP	0x3E
 | ||
| 		JP	Z,ChEditor	;<3B>à®á¬®âà ¢ HEX
 | ||
| 		CP	0x41
 | ||
| 		JP Z,FEPrintFile
 | ||
| 		CP	0x43
 | ||
| 		JP	Z,EditorSetup
 | ||
| 		CP	0x4F
 | ||
| 		JP	Z,TDeleteSymbol
 | ||
| 		CP	0x54
 | ||
| 		JP	Z,TCursorLeft
 | ||
| 		CP	0x56
 | ||
| 		JP	Z,TCursorRight
 | ||
| 		CP	0x58
 | ||
| 		JP	Z,TCursorUp
 | ||
| 		CP	0x52
 | ||
| 		JP	Z,TCursorDown
 | ||
| 		CP	0x57		;Home
 | ||
| 		JP	Z,THomeString
 | ||
| 		CP	0x51		;End
 | ||
| 		JP	Z,TEndString
 | ||
| 		CP	0x59		;PageUp
 | ||
| 		JP	Z,FETPageUp
 | ||
| 		CP	0x53		;PageDown
 | ||
| 		JP	Z,TPageDown
 | ||
| 		LD	A,B
 | ||
| 		AND	0x30
 | ||
| 		CP	0x30
 | ||
| 		RET	Z
 | ||
| 		bit	4,b		;<3B>ਠ ¦ â®¬ Alt
 | ||
| 		jr	z,.ctrl
 | ||
| 		ld	a,d
 | ||
| 		and	0x7f
 | ||
| 		CP	0x54		;Alt+<
 | ||
| 		JP	Z,THomeString
 | ||
| 		CP	0x56		;Alt+>
 | ||
| 		JP	Z,TEndString
 | ||
| 		ret
 | ||
| 
 | ||
| .ctrl:		BIT	5,B		;<3B>ਠ ¦ â®¬ Ctrl
 | ||
| 		RET	Z
 | ||
| 		LD	A,D
 | ||
| 		AND	0x7F
 | ||
| 		CP	0x0E
 | ||
| 		JP	Z,TDeleteWord
 | ||
| 		CP	0x15		;Ctrl+Y - Delete String
 | ||
| 		JP	Z,TDeleteString
 | ||
| 		CP	0x1E		;Ctrl+S
 | ||
| 		JP	Z,SaveFile
 | ||
| 		CP	0x1F		;Ctrl+D
 | ||
| 		JP	Z,TDoubleString
 | ||
| 		CP	0x19		;Ctrl+P
 | ||
| 		JP	Z,FEPrintFile
 | ||
| 		cp	0x2a		;Ctrl+Z
 | ||
| 		jp	z,Undo
 | ||
| 		CP	0x54
 | ||
| 		JP	Z,TWordLeft
 | ||
| 		CP	0x56
 | ||
| 		JP	Z,TWordRight
 | ||
| 		CP	0x58
 | ||
| 		JP	Z,TScrollUp
 | ||
| 		CP	0x52
 | ||
| 		JP	Z,TScrollDown
 | ||
| 		CP	0x57		;Ctrl+Home
 | ||
| 		JP	Z,FETBegFile	;¢  ç «® ä ©« 
 | ||
| 		CP	0x51		;Ctrl+PageEnd
 | ||
| 		JP	Z,FETEndFile	;¢ ª®¥æ ä ©« 
 | ||
| 		RET 
 | ||
| 
 | ||
| HEditLoop	LD	IX,FEHEXtab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 	SPDSS DSSF.SCANKEY		;ަ¨¤ ¥¬  ¦ â¨ï ª« ¢¨è
 | ||
| 		JP	Z,EditorLoop
 | ||
| 		LD	A,D		;
 | ||
| 		CP	0x44		;F10
 | ||
| 		JP	Z,EditorExit
 | ||
| 		LD	A,E		;…-ASCII ª®¤
 | ||
| 		CP	0x1B		;Esc
 | ||
| 		JP	Z,EditorExit
 | ||
| 		LD	HL,EditorLoop
 | ||
| 		PUSH	HL
 | ||
| 		OR	A
 | ||
| 		JP	NZ,HPutSymbol
 | ||
| 		LD	A,D
 | ||
| 		CP	0x3B
 | ||
| 		JP	Z,FEAbout
 | ||
| 		CP	0x3C
 | ||
| 		JP	Z,SaveFile
 | ||
| 		CP	0x9E		;Ctrl+S
 | ||
| 		JP	Z,SaveFile
 | ||
| 		CP	0x3E		;F4
 | ||
| 		JP	Z,ChEditor	;<3B>à®á¬®âà ¢ ⥪áâ¥
 | ||
| 		CP	0x3F		;F5
 | ||
| 		JP	Z,FEHGoTo		;<3B>¥à¥å®¤    ¤à¥á ¯®«ì§®¢ â¥«ï
 | ||
| 		CP	0x41
 | ||
| 		JP Z,FEPrintFile
 | ||
| 		CP	0x43
 | ||
| 		JP	Z,EditorSetup
 | ||
| 		CP	0x54
 | ||
| 		JP	Z,HCursorLeft
 | ||
| 		CP	0x56
 | ||
| 		JP	Z,HCursorRight
 | ||
| 		CP	0x57		;Home
 | ||
| 		JP	Z,HHomeString
 | ||
| 		CP	0x51		;End
 | ||
| 		JP	Z,HEndString
 | ||
| 		CP	0x58		 ;‘â५ª  ¢¢¥àå
 | ||
| 		JP	Z,HCursorUp
 | ||
| 		CP	0x52		 ;‘â५ª  ¢¨§
 | ||
| 		JP	Z,HCursorDown
 | ||
| 		CP	0x59		 ;PageUp
 | ||
| 		JP	Z,FEHPageUp
 | ||
| 		CP	0x53		 ;PageDown
 | ||
| 		JP	Z,FEHPageDown
 | ||
| 		LD	A,B
 | ||
| 		AND	0x30
 | ||
| 		CP	0x30
 | ||
| 		RET	Z
 | ||
| 		BIT	5,B
 | ||
| 		RET	Z
 | ||
| 		LD	A,D
 | ||
| 		AND	0x7F
 | ||
| 		CP	0x58
 | ||
| 		JP	Z,HScrollUp
 | ||
| 		CP	0x52
 | ||
| 		JP	Z,HScrollDown
 | ||
| 		CP	0x57		;Ctrl+PageUp
 | ||
| 		JP	Z,FEHBegFile	;¢  ç «® ä ©« 
 | ||
| 		CP	0x51		;Ctrl+PageDown
 | ||
| 		JP	Z,FEHEndFile	;¢ ª®¥æ ä ©« 
 | ||
| 		CP	0x19		;Ctrl+P
 | ||
| 		JP	Z,FEPrintFile
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| EditingFile	DUPL	0x30,0
 | ||
| EditMode	DEFB	0x00
 | ||
| HEXmode		DEFB	0x00
 | ||
| EditData	DEFB	0x00	;Cursor	X
 | ||
| 		DEFB	0x00	;String	X
 | ||
| 		DEFB	0x00	;Cursor	add X
 | ||
| 		DEFB	0x00	;Cursor	Y
 | ||
| 		DEFB	0x00	;Len String
 | ||
| 		DEFB	0x00	;Previos Len String
 | ||
| 		DEFB	0x00	;Ready String
 | ||
| 		DEFB	0x00	;Ready File
 | ||
| CurLine		DEFW	0x0000
 | ||
| EquipLines	DEFW	0x0000
 | ||
| LineShift	DEFW	0x0000
 | ||
| FEPageShift	DEFW	0x0000
 | ||
| FETempShift	DEFW	0x0000
 | ||
| FEFileLenght	DEFW	0x0000	;„«¨  ä ©«  (16¡¨â)
 | ||
| FEEmptyLines	DEFB	0x00
 | ||
| FEMemIndef	DEFB	0x00
 | ||
| FEFHandle	DEFB	0x00
 | ||
| FEReadLen
 | ||
| SaveLen		DEFW	0x0000
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| ChEditor	LD	HL,EditorBegin
 | ||
| 		EX	(SP),HL
 | ||
| 		LD	A,(EditMode)
 | ||
| 		XOR	0x01
 | ||
| 		LD	(EditMode),A
 | ||
| 		JR	NZ,HEXEdit
 | ||
| ASCIIEdit	LD	HL,(LineShift)
 | ||
| 		LD	E,(IY+CursorX)
 | ||
| 		SRL	E
 | ||
| 		LD	D,0x00
 | ||
| 		ADD	HL,DE
 | ||
| 		PUSH	HL
 | ||
| 		INC	HL
 | ||
| 		CALL	FESearchUp
 | ||
| 		LD	(LineShift),HL
 | ||
| 		LD	(FEPageShift),HL
 | ||
| 		SUB	A
 | ||
| 		LD	(IY+StringX),A
 | ||
| 		LD	(IY+CursorY),A
 | ||
| 		PUSH	HL
 | ||
| 		CALL	GetString
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		LD	A,L
 | ||
| 		CP	(IY+LenString)
 | ||
| 		JR	C,.L1
 | ||
| 		LD	A,(IY+LenString)
 | ||
| .L1		DEC	A
 | ||
| 		LD	(IY+StringX),A
 | ||
| 		JP	TCursorRight
 | ||
| 
 | ||
| HEXEdit		CALL	PutString
 | ||
| 		LD	HL,(LineShift)
 | ||
| 		LD	A,(IY+StringX)
 | ||
| 		CP	(IY+LenString)
 | ||
| 		JR	C,.L1
 | ||
| 		LD	A,(IY+LenString)
 | ||
| .L1		LD	E,A
 | ||
| 		LD	D,0x00
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	A,L
 | ||
| 		AND	0x0F
 | ||
| 		ADD	A,A
 | ||
| 		LD	(IY+CursorX),A
 | ||
| 		LD	A,L
 | ||
| 		AND	0xF0
 | ||
| 		LD	L,A
 | ||
| 		LD	(LineShift),HL
 | ||
| 		LD	(FEPageShift),HL
 | ||
| 		SUB	A
 | ||
| 		LD	(IY+CursorY),A
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| EditorExit	CALL	PutString
 | ||
| 		CALL	FEResCursor
 | ||
| 		LD	A,(IY+ReadyFile)
 | ||
| 		OR	A
 | ||
| 		JP	Z,QuitAsk;EditorE
 | ||
| 	MAKEWINDOW WINSUBOBJ.STORE
 | ||
| 	W_MAIN 208,80,224,60
 | ||
| 	W_FILL 4,2,216,10,COLORI.BLACK
 | ||
| 	W_TEXT 88,3,COLORI.WHITE,"Information"
 | ||
| 	W_TEXT 64,19,COLORP.HIGHGRAY,"File has been modified."
 | ||
| 	W_TEXT 96,29,COLORP.HIGHGRAY,"Save ?"
 | ||
| 	W_BUTTON 32,42,72,14
 | ||
| 	W_TEXT 58,45,COLORP.HIGHGRAY,"Yes"
 | ||
| 	W_BUTTON 120,42,72,14
 | ||
| 	W_TEXT 150,45,COLORP.HIGHGRAY,"No"
 | ||
| 	W_END
 | ||
| SureLoop	LD	IX,SureTab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 	SPDSS DSSF.SCANKEY
 | ||
| 		JR	Z,SureLoop
 | ||
| 		LD	A,B
 | ||
| 		OR	A
 | ||
| 		JR	NZ,SureLoop
 | ||
| 		LD	A,E
 | ||
| 		CP	0x1B
 | ||
| 		SCF 
 | ||
| 		JR	Z,SureExit
 | ||
| 		CP	0x0D
 | ||
| 		JR	Z,SureExit
 | ||
| 		RES	5,A
 | ||
| 		CP	'N'
 | ||
| 		JR	Z,SureExit
 | ||
| 		CP	'Y'
 | ||
| 		JR	NZ,SureLoop
 | ||
| SureOkey	CALL	SaveFile
 | ||
| 		OR	A
 | ||
| SureExit
 | ||
| 	WINDOWCLOSE
 | ||
| 		JP	C,EditorLoop
 | ||
| EditorE		LD	A,(FEMemIndef)
 | ||
| 	SPDSS DSSF.FREEMEM
 | ||
| 		OR	A
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| QuitAsk:	ld	a,0
 | ||
| .param		EQU $-1
 | ||
| 		and	a
 | ||
| 		jr	z,EditorE
 | ||
| 	MAKEWINDOW WINSUBOBJ.STORE
 | ||
| 	W_MAIN 208,88,224,50
 | ||
| 	W_FILL 4,2,216,10,COLORI.BLACK
 | ||
| 	W_TEXT 104,3,COLORI.WHITE,"Quit"
 | ||
| 	W_TEXT 28,19,COLORP.HIGHGRAY,"Do you want to close the editor?"
 | ||
| 	W_BUTTON 32,32,72,14
 | ||
| 	W_TEXT 58,35,COLORP.HIGHGRAY,"Yes"
 | ||
| 	W_BUTTON 120,32,72,14
 | ||
| 	W_TEXT 150,35,COLORP.HIGHGRAY,"No"
 | ||
| 	W_END
 | ||
| FEQuitLoop:	LD	IX,FEQuitTab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 	SPDSS DSSF.SCANKEY
 | ||
| 		JR	Z,FEQuitLoop
 | ||
| 		LD	A,B
 | ||
| 		OR	A
 | ||
| 		JR	NZ,FEQuitLoop
 | ||
| 		LD	A,E
 | ||
| 		CP	0x1B
 | ||
| 		scf
 | ||
| 		JP	Z,SureExit
 | ||
| 		CP	0x0D
 | ||
| 		JP	Z,SureExit
 | ||
| 		RES	5,A
 | ||
| 		CP	'Y'
 | ||
| 		JP	Z,SureExit
 | ||
| 		CP	'N'
 | ||
| 		JR	NZ,FEQuitLoop
 | ||
| FEQuitAbort:	SCF
 | ||
| 		JP	SureExit
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| FEInitScreen
 | ||
| 	MAKEWINDOW WINSUBOBJ.NOSTORE
 | ||
| 	W_MAIN 0,0,640,256
 | ||
| 	W_FILL 4,2,632,10,COLORI.BLACK
 | ||
| 	W_TEXT 16,3,COLORI.WHITE,"FN File Editor v\{FLEX_VERS.EDITOR}"
 | ||
| 	W_HORIZLINE 0,13,640
 | ||
| 	W_TEXT 8,17,COLORP.HIGHGRAY,"Editing:"
 | ||
| 	W_VERTICLINE 366,16,10
 | ||
| 	W_TEXT 400,17,COLORP.HIGHGRAY,"Line:"
 | ||
| 	W_TEXT 480,17,COLORP.HIGHGRAY,"Col:"
 | ||
| 	W_TEXT 552,17,COLORP.HIGHGRAY,"Free:"
 | ||
| 	W_HORIZLINE 0,27,640
 | ||
| 	W_HORIZLINE 0,227,640
 | ||
| 	W_ICONUPARROW 624,28
 | ||
| 	W_FILL 624,36,16,184,COLORI.HIGHGRAY
 | ||
| 	W_ICONDOWNARROW 624,220
 | ||
| 	W_END
 | ||
| 	SPDSS DSSF.CURDISK
 | ||
| 		LD	HL,WorkBuffer
 | ||
| 		ADD	A,'A'
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),':'
 | ||
| 		INC	HL
 | ||
| 		PUSH	HL
 | ||
| 	SPDSS DSSF.CURDIR
 | ||
| 		POP	HL
 | ||
| 		SUB	A
 | ||
| .L1		INC	HL
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L1
 | ||
| 		DEC	HL
 | ||
| 		LD	A,0x5C
 | ||
| 		CP	(HL)
 | ||
| 		INC	HL
 | ||
| 		JR	Z,.L2
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| .L2		EX	DE,HL
 | ||
| 		LD	HL,EditingFile+33
 | ||
| 		SUB	A
 | ||
| .L3		LDI 
 | ||
| 		CP	(HL)
 | ||
| 		JR	NZ,.L3
 | ||
| 		LD	(DE),A
 | ||
| 		LD	IX,0x0130
 | ||
| 		LD	HL,WorkBuffer
 | ||
| 		LD	DE,0x0030
 | ||
| 		LD	BC,0x0011
 | ||
| 		LD	A,0x80
 | ||
| 		CALL	JUMPS.PrnRangPathL
 | ||
| 		LD	HL,0x01FC
 | ||
| 		LD	DE,0x0003
 | ||
| 		LD	B,0x08
 | ||
| 		EXX 
 | ||
| 		LD	HL,0x022E
 | ||
| 		LD	DE,0x0003
 | ||
| 		LD	B,0x08
 | ||
| 		EXX 
 | ||
| 		LD	A,0x02
 | ||
| 		CALL	JUMPS.SetCMOSPrint
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitStatus	LD	A,(EditMode)
 | ||
| 		OR	A
 | ||
| 		JP	NZ,InitHEXStatus
 | ||
| 	MAKEWINDOW WINSUBOBJ.WOBIND
 | ||
| 	W_HORIZLINE 0,235,626
 | ||
| 	W_VERTICLINE 622,228,8
 | ||
| 	W_ICONLEFTARROW 0,228
 | ||
| 	W_FILL 16,228,592,8,COLORI.HIGHGRAY
 | ||
| 	W_ICONRIGHTARROW 608,228
 | ||
| 	W_HORIZLINE 0,241,640
 | ||
| 	W_FILL 2,243,636,12,COLORI.HIGHGRAY
 | ||
| 	W_HORIZLINE 2,255,637
 | ||
| 	W_BUTTON 0,242,80,14
 | ||
| 	W_TEXT 18,245,COLORP.HIGHGRAY,"F1 About"
 | ||
| 	W_BUTTON 80,242,80,14
 | ||
| 	W_TEXT 100,245,COLORP.HIGHGRAY,"F2 Save"
 | ||
| 	W_BUTTON 160,242,80,14
 | ||
| 	W_TEXT 184,245,COLORP.HIGHGRAY,"F4 Hex"
 | ||
| 	W_BUTTON 400,242,80,14
 | ||
| 	W_TEXT 422,245,COLORP.HIGHGRAY,"F7 Print"
 | ||
| 	W_BUTTON 480,242,80,14
 | ||
| 	W_TEXT 492,245,COLORP.HIGHGRAY,"F9 Settings"
 | ||
| 	W_BUTTON 560,242,80,14
 | ||
| 	W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
 | ||
| 	W_END
 | ||
| 		RET 
 | ||
| 
 | ||
| InitHEXStatus
 | ||
| 	MAKEWINDOW WINSUBOBJ.WOBIND
 | ||
| 	W_HORIZLINE 0,227,640
 | ||
| 	W_FILL 2,229,636,10,COLORI.HIGHGRAY
 | ||
| 	W_HORIZLINE 2,241,640
 | ||
| 	W_FILL 2,243,636,12,COLORI.HIGHGRAY
 | ||
| 	W_HORIZLINE 2,255,638
 | ||
| 	W_BUTTON 0,242,80,14
 | ||
| 	W_TEXT 18,245,COLORP.HIGHGRAY,"F1 About"
 | ||
| 	W_BUTTON 80,242,80,14
 | ||
| 	W_TEXT 100,245,COLORP.HIGHGRAY,"F2 Save"
 | ||
| 	W_BUTTON 160,242,80,14
 | ||
| 	W_TEXT 182,245,COLORP.HIGHGRAY,"F4 ASCII"
 | ||
| 	W_BUTTON 240,242,80,14
 | ||
| 	W_TEXT 258,245,COLORP.HIGHGRAY,"F5 Go to"
 | ||
| 	W_BUTTON 400,242,80,14
 | ||
| 	W_TEXT 422,245,COLORP.HIGHGRAY,"F7 Print"
 | ||
| 	W_BUTTON 480,242,80,14
 | ||
| 	W_TEXT 492,245,COLORP.HIGHGRAY,"F9 Settings"
 | ||
| 	W_BUTTON 560,242,80,14
 | ||
| 	W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
 | ||
| 	W_END
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| InitFile	LD	A,(EditMode)
 | ||
| 		OR	A
 | ||
| 		JR	NZ,InitFileHex
 | ||
| 		CALL	JUMPS.SetClock
 | ||
| 		LD	HL,0x0000
 | ||
| 		LD	E,L
 | ||
| 		LD	D,H
 | ||
| InitAlp		PUSH	HL
 | ||
| 		LD	BC,(LineShift)
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		POP	HL
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	(CurLine),DE
 | ||
| .L1		PUSH	DE
 | ||
| 		CALL	FESearchDown
 | ||
| 		POP	DE
 | ||
| 		INC	DE
 | ||
| 		JR	NC,InitAlp
 | ||
| 		DEC	DE
 | ||
| 		LD	(EquipLines),DE
 | ||
| 		LD	(ELines),DE
 | ||
| 		LD	HL,TBarU
 | ||
| 		LD	(BarPgU),HL
 | ||
| 		LD	HL,TBarD
 | ||
| 		LD	(BarPgD),HL
 | ||
| 		LD	IX,EditVBar
 | ||
| 		CALL	JUMPS.InitScrBar
 | ||
| 		LD	HL,0x00F0
 | ||
| 		LD	(CScrnX),HL
 | ||
| 		LD	IX,EditHBar
 | ||
| 		CALL	JUMPS.InitScrBar
 | ||
| 		LD	HL,0xFFFF
 | ||
| 		LD	(CLine),HL
 | ||
| 		LD	H,0x00
 | ||
| 		LD	(CAddX),HL
 | ||
| 		CALL	JUMPS.SetMouse
 | ||
| 		RET 
 | ||
| 
 | ||
| InitFileHex	LD	HL,(FEFileLenght)
 | ||
| 		LD	A,L
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		AND	0x0F
 | ||
| 		JR	Z,.L1
 | ||
| 		INC	HL
 | ||
| .L1		LD	(EquipLines),HL
 | ||
| 		LD	(ELines),HL
 | ||
| 		LD	HL,(LineShift)
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		LD	(CurLine),HL
 | ||
| 		LD	HL,HBarU
 | ||
| 		LD	(BarPgU),HL
 | ||
| 		LD	HL,HBarD
 | ||
| 		LD	(BarPgD),HL
 | ||
| 		LD	IX,EditVBar
 | ||
| 		CALL	JUMPS.InitScrBar
 | ||
| 		LD	HL,0xFFFF
 | ||
| 		LD	(CLine),HL
 | ||
| 		RET 
 | ||
| 
 | ||
| EditVBar	DEFW	0x0270	;X ¯®§¨æ¨ï áªà®«¡ à 
 | ||
| 		DEFW	0x0024	;Y ¯®§¨æ¨ï áªà®«¡ à 
 | ||
| 		DEFW	0x00B8	;Max ¤«¨  áªà®«¡ à 
 | ||
| 		DEFW	0x0000	;⥪.¤«¨  áªà®«¡ à 
 | ||
| BarPgU		DEFW	0x0000	;€¤à¥á ï祩ª¨ BarLeft
 | ||
| BarPgD		DEFW	0x0000	;€¤à¥á ï祩ª¨ BarRight
 | ||
| 		DEFW	0x0019	;Š®«-¢®	áâப   áâà ¨æ¥
 | ||
| ELines		DEFW	0x0000	;ޡ饥 ª®«-¢® áâப
 | ||
| CLine		DEFW	0x0000	;<3B>¥à¢ ï	áâப    áâà ¨æ¥
 | ||
| EditHBar	DEFW	0x0010	;X ¯®§¨æ¨ï áªà®«¡ à 
 | ||
| 		DEFW	0x00E4	;Y ¯®§¨æ¨ï áªà®«¡ à 
 | ||
| 		DEFW	0x0250	;Max ¤«¨  áªà®«¡ à 
 | ||
| 		DEFW	0x0000	;⥪.¤«¨  áªà®«¡ à 
 | ||
| 		DEFW	TBarL	;€¤à¥á ï祩ª¨ BarLeft
 | ||
| 		DEFW	TBarR	;€¤à¥á ï祩ª¨ BarRight
 | ||
| 		DEFW	0x004E	;Š®«-¢®	áâப   áâà ¨æ¥
 | ||
| CScrnX		DEFW	0x0000	;ޡ饥 ª®«-¢® áâப
 | ||
| CAddX		DEFW	0x0000	;<3B>¥à¢ ï	áâப    áâà ¨æ¥
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| PrintPage	LD	A,(EditMode)
 | ||
| 		OR	A
 | ||
| 		JP	Z,FEPrnASCIIpage
 | ||
| 		JP	FEPrnHEXpage
 | ||
| 
 | ||
| PrnEDITinfo	LD	A,(EditMode)
 | ||
| 		OR	A
 | ||
| 		JP	Z,PrnASCIIinfo
 | ||
| 		JP	PrnHEXinfo
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| FEChCursor	HALT 
 | ||
| 		LD	HL,FECrTimer
 | ||
| 		DEC	(HL)
 | ||
| 		RET	NZ
 | ||
| 		LD	(HL),CursTimer
 | ||
| 		LD	A,(FECurCursor)
 | ||
| 		XOR	0x01
 | ||
| 		LD	(FECurCursor),A
 | ||
| 		JR	Z,ResCurs
 | ||
| 		JR	SetCurs
 | ||
| 
 | ||
| FESetCursor	LD	(CursorPos),DE
 | ||
| 		LD	A,0x01
 | ||
| 		LD	(FECurCursor),A
 | ||
| 		LD	A,CursTimer
 | ||
| 		LD	(FECrTimer),A
 | ||
| SetCurs
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.Y_PORT
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	DE,(CursorPos)
 | ||
| 		LD	L,E
 | ||
| 		LD	H,0x00
 | ||
| 		ADD	HL,HL
 | ||
| 		ADD	HL,HL
 | ||
| 		SET	6,H
 | ||
| 		LD	A,D
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,0x22
 | ||
| 		LD	C,A
 | ||
| 		LD	B,COLORP.FILES + COLORI.FILES
 | ||
| 		DI 
 | ||
| 		LD	DE,FECursBuffer
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x04
 | ||
| 	ACCEL ACCELCMD.COPY
 | ||
| 		LD	A,(HL)
 | ||
| 		LD	(DE),A
 | ||
| 	ACCEL ACCELCMD.FILL
 | ||
| 		LD	(HL),B
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	C
 | ||
| 		LD	DE,FECursBuffer+4
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY
 | ||
| 		LD	A,(HL)
 | ||
| 		LD	(DE),A
 | ||
| 	ACCEL ACCELCMD.FILL
 | ||
| 		LD	(HL),B
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| FEResCursor	SUB	A
 | ||
| 		LD	(FECurCursor),A
 | ||
| 		INC	A
 | ||
| 		LD	(FECrTimer),A
 | ||
| ResCurs
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.Y_PORT
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	DE,(CursorPos)
 | ||
| 		LD	L,E
 | ||
| 		LD	H,0x00
 | ||
| 		ADD	HL,HL
 | ||
| 		ADD	HL,HL
 | ||
| 		SET	6,H
 | ||
| 		LD	A,D
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,0x22
 | ||
| 		LD	C,A
 | ||
| 		DI 
 | ||
| 		LD	DE,FECursBuffer
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x04
 | ||
| 	ACCEL ACCELCMD.COPY
 | ||
| 		LD	A,(DE)
 | ||
| 		LD	(HL),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	C
 | ||
| 		LD	DE,FECursBuffer+4
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY
 | ||
| 		LD	A,(DE)
 | ||
| 		LD	(HL),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| FECrTimer	DEFB	0x01
 | ||
| FECurCursor	DEFB	0x00
 | ||
| CursorPos	DEFW	0x0000
 | ||
| FECursBuffer	DUPL	8,0
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| FEAbout		CALL	FEResCursor
 | ||
| 	MAKEWINDOW WINSUBOBJ.STORE
 | ||
| 	W_MAIN 160,72,320,85
 | ||
| 	W_FILL 4,2,312,10,COLORI.BLACK
 | ||
| 	W_TEXT 144,3,COLORI.WHITE,"About"
 | ||
| 	W_TEXT 96,18,COLORP.HIGHGRAY,"Flex Navigator File Editor"
 | ||
| 	W_TEXT 144,28,COLORP.HIGHGRAY,"v\{FLEX_VERS.EDITOR}"
 | ||
| 	W_TEXT 18,40,COLORP.HIGHGRAY,"Programming:  (C)2000 Enin Anton"
 | ||
| 	W_TEXT 92,50,COLORP.HIGHGRAY,"(C)2021 Mikhaltchenkov Dmitry"
 | ||
| 	W_BUTTON 124,66,72,14
 | ||
| 	W_TEXT 154,69,COLORP.HIGHGRAY,"Ok"
 | ||
| 	W_END
 | ||
| FEAboutLoop	LD	IX,FEAboutTab
 | ||
| 		CALL	JUMPS.TestCoords
 | ||
| 	SPDSS DSSF.SCANKEY
 | ||
| 		JR	Z,FEAboutLoop
 | ||
| 		LD	A,B
 | ||
| 		OR	A
 | ||
| 		JR	NZ,FEAboutLoop
 | ||
| 		LD	A,E
 | ||
| 		CP	0x1B
 | ||
| 		JR	Z,FEAboutExt
 | ||
| 		CP	0x0D
 | ||
| 		JR	Z,FEAboutExt
 | ||
| 		RES	5,A
 | ||
| 		CP	'O'
 | ||
| 		JR	NZ,FEAboutLoop
 | ||
| FEAboutExt
 | ||
| 	WINDOWCLOSE
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| FEScrollSCRup	LD	DE,0x241C
 | ||
| 		JR	FEScrlSCRDnUp
 | ||
| 
 | ||
| FEScrollSCRdown	LD	DE,0x1C24
 | ||
| ;<3B>  ¢å®¤:
 | ||
| ;	 D  - Y	®âªã¤ 
 | ||
| ;	 …  - Y	ªã¤ 
 | ||
| FEScrlSCRDnUp	DI 
 | ||
| 		PUSH	DE
 | ||
| 	SPMOUSE MOUSEF.REFRESH
 | ||
| 		POP	DE
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	HL,0x4000
 | ||
| 		LD	BC,312
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0xC0
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| .ScSCRN1	LD	A,D
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY_VERT
 | ||
| 		LD	A,(HL)
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	A,E
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY_VERT
 | ||
| 		LD	(HL),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		CPI
 | ||
| 		JP	PE,.ScSCRN1
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI 
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| 		include fedos.a80
 | ||
| 		include fetext.a80
 | ||
| 		include fehex.a80
 | ||
| 		include feprn.a80
 | ||
| 		include fesetup.a80
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| FEASCIItab:	DW 0x0000,0x0270,0x001C,0x00E4,0x00,0x0000,	TNewCrPos,	0x0000
 | ||
| 		DW 0x0000,0x0050,0x00F2,0x0100,0x01,0x0000,	FEAbout,	0x0000
 | ||
| 		DW 0x0050,0x00A0,0x00F2,0x0100,0x01,0x0000,	SaveFile,	0x0000
 | ||
| 		DW 0x00A0,0x00F0,0x00F2,0x0100,0x01,0x0000,	ChEditor,	0x0000
 | ||
| 		DW 0x0190,0x01E0,0x00F2,0x0100,0x01,0x0000,	EditorSetup,	0x0000
 | ||
| 		DW 0x01E0,0x0230,0x00F2,0x0100,0x01,0x0000,	FEPrintFile,	0x0000
 | ||
| 		DW 0x0230,0x0280,0x00F2,0x0100,0x21,0x0000,	EditorExit,	0x0000
 | ||
| 		DW 0x0270,0x0280,0x001C,0x0024,0x03,0x0000,	TCursorUp,	0x0000
 | ||
| 		DW 0x0270,0x0280,0x00DC,0x00E4,0x03,0x0000,	TCursorDown,	0x0000
 | ||
| TBarU		EQU $+6
 | ||
| 		DW 0x0270,0x0280,0x001C,0x0000,0x00,0x0000,	FETPageUp,	0x0000
 | ||
| TBarD		EQU $+4
 | ||
| 		DW 0x0270,0x0280,0x0000,0x00E4,0x00,0x0000,	TPageDown,	0x0000
 | ||
| 		DW 0x0000,0x0010,0x00E4,0x00EC,0x03,0x0000,	TCursorLeft,	0x0000
 | ||
| 		DW 0x0260,0x0270,0x00E4,0x00EC,0x03,0x0000,	TCursorRight,	0x0000
 | ||
| TBarL		EQU $+2
 | ||
| 		DW 0x0010,0x0000,0x00E4,0x00EC,0x00,0x0000,	TCursorLeft,	0x0000
 | ||
| TBarR:		DW 0x0000,0x0260,0x00E4,0x00EC,0x00,0x0000,	TCursorRight,	0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| FEHEXtab:	DW 0x0000,0x0050,0x00F2,0x0100,0x01,0x0000,	FEAbout,	0x0000
 | ||
| 		DW 0x0050,0x00A0,0x00F2,0x0100,0x01,0x0000,	SaveFile,	0x0000
 | ||
| 		DW 0x00A0,0x00F0,0x00F2,0x0100,0x01,0x0000,	ChEditor,	0x0000
 | ||
| 		DW 0x00F0,0x0140,0x00F2,0x0100,0x01,0x0000,	FEHGoTo,	0x0000
 | ||
| 		DW 0x0190,0x01E0,0x00F2,0x0100,0x01,0x0000,	EditorSetup,	0x0000
 | ||
| 		DW 0x01E0,0x0230,0x00F2,0x0100,0x01,0x0000,	FEPrintFile,	0x0000
 | ||
| 		DW 0x0230,0x0280,0x00F2,0x0100,0x21,0x0000,	EditorExit,	0x0000
 | ||
| 
 | ||
| 		DW 0x0270,0x0280,0x001C,0x0024,0x03,0x0000,	HCursorUp,	0x0000
 | ||
| 		DW 0x0270,0x0280,0x00DC,0x00E4,0x03,0x0000,	HCursorDown,	0x0000
 | ||
| 		DW 0x0048,0x01D8,0x001C,0x00E4,0x00,0x0000,	HNewHEXPos,	0x0000
 | ||
| 		DW 0x01E8,0x0268,0x001C,0x00E4,0x00,0x0000,	HNewASCPos,	0x0000
 | ||
| HBarU		EQU $+6
 | ||
| 		DW 0x0270,0x0280,0x001C,0x0000,0x00,0x0000,	FEHPageUp,	0x0000
 | ||
| HBarD		EQU $+4
 | ||
| 		DW 0x0270,0x0280,0x0000,0x00E4,0x00,0x0000,	FEHPageDown,	0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| FEAboutTab:	DEFW 0x011C,0x0164,0x008A,0x0098,0x21,0x0000,	FEAboutExt,	0x0000
 | ||
| 		DEFW 0x0000,0x00A0,0x0000,0x0100,0x20,0x0000,	FEAboutExt,	0x0000
 | ||
| 		DEFW 0x01E0,0x0280,0x0000,0x0100,0x20,0x0000,	FEAboutExt,	0x0000
 | ||
| 		DEFW 0x0000,0x0280,0x0000,0x0048,0x20,0x0000,	FEAboutExt,	0x0000
 | ||
| 		DEFW 0x0000,0x0280,0x009D,0x0100,0x20,0x0000,	FEAboutExt,	0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| SureTab:	DEFW 0x00F0,0x0138,0x007A,0x0088,0x021,0x0000,	SureOkey,	0x0000
 | ||
| 		DEFW 0x0148,0x0190,0x007A,0x0088,0x021,0x0000,	SureExit,	0x0000
 | ||
| 		DEFW 0x0000,0x00D0,0x0000,0x0100,0x120,0x0000,	EditorLoop,	0x0000
 | ||
| 		DEFW 0x01B0,0x0280,0x0000,0x0100,0x120,0x0000,	EditorLoop,	0x0000
 | ||
| 		DEFW 0x0000,0x0280,0x0000,0x0050,0x120,0x0000,	EditorLoop,	0x0000
 | ||
| 		DEFW 0x0000,0x0280,0x008C,0x0100,0x120,0x0000,	EditorLoop,	0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| NewFileTab:	DEFW 0x00F0,0x0138,0x0082,0x0090,0x021,0x0000,	NewFExitO,	0x0000
 | ||
| 		DEFW 0x0148,0x0190,0x0082,0x0090,0x021,0x0000,	NewFExitC,	0x0000
 | ||
| 		DEFW 0x0000,0x00C0,0x0000,0x0100,0x020,0x0000,	NewFExitC,	0x0000
 | ||
| 		DEFW 0x01C0,0x0280,0x0000,0x0100,0x020,0x0000,	NewFExitC,	0x0000
 | ||
| 		DEFW 0x0000,0x0280,0x0000,0x0058,0x020,0x0000,	NewFExitC,	0x0000
 | ||
| 		DEFW 0x0000,0x0280,0x0094,0x0100,0x020,0x0000,	NewFExitC,	0x0000
 | ||
| 		DEFW 0x8000
 | ||
| 
 | ||
| FEQuitTab:	DW 0x00F0,0x0138,0x0078,0x0086,0x21,0x0000,	SureExit,	0x0000
 | ||
| 		DW 0x0148,0x0190,0x0078,0x0086,0x21,0x0000,	FEQuitAbort,	0x0000
 | ||
| 		DW 0x0000,0x00D0,0x0000,0x0100,0x20,0x0000,	FEQuitAbort,	0x0000
 | ||
| 		DW 0x01B0,0x0280,0x0000,0x0100,0x20,0x0000,	FEQuitAbort,	0x0000
 | ||
| 		DW 0x0000,0x0280,0x0000,0x0058,0x20,0x0000,	FEQuitAbort,	0x0000
 | ||
| 		DW 0x0000,0x0280,0x008A,0x0100,0x20,0x0000,	FEQuitAbort,	0x0000
 | ||
| 		DW 0x8000
 | ||
| 
 | ||
| SettingsFileName:
 | ||
| 		DZ FILENAME.FNEDIT_INI
 | ||
| 
 | ||
| ;[]==========================================================[]
 |