; LAST UPDATE: 29.07.2025 savelij ENABLE_CODEPAGE EQU 0 INIT_VAR SETVAR CursorX SETVAR StringX SETVAR CursAddX SETVAR CursorY SETVAR LenString SETVAR PrvLenStr SETVAR ReadyStr SETVAR ReadyFile LineBuffer := WorkBuffer+0x200 TempBuffer := WorkBuffer+0x300 ;[]==========================================================[] CALL FELoadFile RET C call ReadEditorIni LD IY,EditData SUB A LD (EditMode),A LD (HEXmode),A LD (IY + EDBUF_.CursorX),A LD (IY + EDBUF_.StringX),A LD (IY + EDBUF_.CursAddX),A LD (IY + EDBUF_.CursorY),A LD (IY + EDBUF_.ReadyStr),A LD (IY + EDBUF_.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 SC.F10 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 SC.F1 JP Z,FEAbout CP SC.F2 JP Z,SaveFile CP SC.F4 JP Z,ChEditor ; Просмотр в HEX CP SC.F7 JP Z,FEPrintFile IF ENABLE_CODEPAGE CP SC.F8 JP Z,ChCodePage ENDIF CP SC.F9 JP Z,EditorSetup CP SC.XDEL JP Z,TDeleteSymbol CP SC.X4 JP Z,TCursorLeft CP SC.X6 JP Z,TCursorRight CP SC.X8 JP Z,TCursorUp CP SC.X2 JP Z,TCursorDown CP SC.X7 ; Home JP Z,THomeString CP SC.X1 ; End JP Z,TEndString CP SC.X9 ; PageUp JP Z,FETPageUp CP SC.X3 ; PageDown JP Z,TPageDown LD A,B AND KEYBSTAT.M_ALT + KEYBSTAT.M_CTRL CP KEYBSTAT.M_ALT + KEYBSTAT.M_CTRL RET Z bit KEYBSTAT.B_ALT,B ; При нажатом Alt jr z,.ctrl ld a,d and %01111111 CP SC.X4 ; Alt+< JP Z,THomeString CP SC.X6 ; Alt+> JP Z,TEndString ret .ctrl: BIT KEYBSTAT.B_CTRL,B ; При нажатом Ctrl RET Z LD A,D AND %01111111 CP SC.BKSP JP Z,TDeleteWord CP SC.Y ; Ctrl+Y - Delete String JP Z,TDeleteString CP SC.S ; Ctrl+S JP Z,SaveFile CP SC.D ; Ctrl+D JP Z,TDoubleString CP SC.P ; Ctrl+P JP Z,FEPrintFile cp SC.Z ; Ctrl+Z jp z,Undo CP SC.X4 JP Z,TWordLeft CP SC.X6 JP Z,TWordRight CP SC.X8 JP Z,TScrollUp CP SC.X2 JP Z,TScrollDown CP SC.X7 ; Ctrl+Home JP Z,FETBegFile ; в начало файла CP SC.X1 ; Ctrl+PageEnd JP Z,FETEndFile ; в конец файла RET ; режим редактирования HEX HEditLoop LD IX,FEHEXtab CALL JUMPS.TestCoords SPDSS DSSF.SCANKEY ; Ожидаем нажатия клавиш JP Z,EditorLoop LD A,D CP SC.F10 ; 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 SC.F1 JP Z,FEAbout CP SC.F2 JP Z,SaveFile CP SC.S + 0x80 ; Ctrl+S JP Z,SaveFile CP SC.F4 ; F4 JP Z,ChEditor ; Просмотр в тексте CP SC.F5 ; F5 JP Z,FEHGoTo ; Переход на адрес пользователя CP SC.F7 JP Z,FEPrintFile CP SC.F9 JP Z,EditorSetup CP SC.X4 JP Z,HCursorLeft CP SC.X6 JP Z,HCursorRight CP SC.X7 ; Home JP Z,HHomeString CP SC.X1 ; End JP Z,HEndString CP SC.X8 ; Стрелка вверх JP Z,HCursorUp CP SC.X2 ; Стрелка вниз JP Z,HCursorDown CP SC.X9 ; PageUp JP Z,FEHPageUp CP SC.X3 ; PageDown JP Z,FEHPageDown LD A,B AND KEYBSTAT.M_ALT + KEYBSTAT.M_CTRL CP KEYBSTAT.M_ALT + KEYBSTAT.M_CTRL RET Z BIT KEYBSTAT.B_CTRL,B RET Z LD A,D AND %01111111 CP SC.X8 JP Z,HScrollUp CP SC.X2 JP Z,HScrollDown CP SC.X7 ; Ctrl+PageUp JP Z,FEHBegFile ; в начало файла CP SC.X1 ; Ctrl+PageDown JP Z,FEHEndFile ; в конец файла CP SC.P ; Ctrl+P JP Z,FEPrintFile RET ;[]==========================================================[] 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 + EDBUF_.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 + EDBUF_.StringX),A LD (IY + EDBUF_.CursorY),A PUSH HL CALL GetString POP DE POP HL OR A SBC HL,DE LD A,L CP (IY + EDBUF_.LenString) JR C,.L1 LD A,(IY + EDBUF_.LenString) .L1 DEC A LD (IY + EDBUF_.StringX),A JP TCursorRight HEXEdit CALL PutString LD HL,(LineShift) LD A,(IY + EDBUF_.StringX) CP (IY + EDBUF_.LenString) JR C,.L1 LD A,(IY + EDBUF_.LenString) .L1 LD E,A LD D,0x00 ADD HL,DE LD A,L AND 0x0F ADD A,A LD (IY + EDBUF_.CursorX),A LD A,L AND 0xF0 LD L,A LD (LineShift),HL LD (FEPageShift),HL SUB A LD (IY + EDBUF_.CursorY),A RET ;[]==========================================================[] EditorExit CALL PutString CALL FEResCursor LD A,(IY + EDBUF_.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,SureOkey 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,'\\' 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 JP JUMPS.SetCMOSPrint ;[]==========================================================[] InitStatus IF ENABLE_CODEPAGE CALL InitCodePage ENDIF 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" IF ENABLE_CODEPAGE W_BUTTON 340,242,80,14 W_TEXT 362,245,COLORP.HIGHGRAY,"F7 Print" W_BUTTON 420,242,60,14 W_ADRTEXT 432,245,COLORP.HIGHGRAY,0 ASCIIenc1 EQU $ - 2 ELSE W_BUTTON 400,242,80,14 W_TEXT 422,245,COLORP.HIGHGRAY,"F7 Print" ENDIF 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" IF ENABLE_CODEPAGE W_BUTTON 340,242,80,14 W_TEXT 362,245,COLORP.HIGHGRAY,"F7 Print" W_BUTTON 420,242,60,14 W_ADRTEXT 432,245,COLORP.HIGHGRAY,0 ASCIIenc2 EQU $ - 2 ELSE W_BUTTON 400,242,80,14 W_TEXT 422,245,COLORP.HIGHGRAY,"F7 Print" ENDIF 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.InitScrollBar LD HL,0x00F0 LD (CScrnX),HL LD IX,EditHBar CALL JUMPS.InitScrollBar LD HL,0xFFFF LD (CLine),HL LD H,0x00 LD (CAddX),HL JP JUMPS.SetMouse 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.InitScrollBar LD HL,0xFFFF LD (CLine),HL RET EditVBar DW 624 ; X позиция скролбара DW 36 ; Y позиция скролбара DW 184 ; Max длина скролбара DW 0 ; тек.длина скролбара BarPgU DW 0 ; Адрес ячейки BarLeft BarPgD DW 0 ; Адрес ячейки BarRight DW 25 ; Кол-во строк на странице ELines DW 0 ; Общее кол-во строк CLine DW 0 ; Первая строка на странице EditHBar DW 16 ; X позиция скролбара DW 228 ; Y позиция скролбара DW 592 ; Max длина скролбара DW 0 ; тек.длина скролбара DW TBarL ; Адрес ячейки BarLeft DW TBarR ; Адрес ячейки BarRight DW 78 ; Кол-во строк на странице CScrnX DW 0 ; Общее кол-во строк CAddX DW 0 ; Первая строка на странице ;[]==========================================================[] 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 ;[]==========================================================[] 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 96,28,COLORP.HIGHGRAY,"v\{FLEX_VERS.EDITOR} build \{BUILDDATE}" 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 ;На вход: ; 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 IF ENABLE_CODEPAGE InitCodePage: LD A,0 CodePage EQU $-1 LD L,A ADD A,A ; *2 ADD A,L ; *3 ADD A,A ; *6 ADD A,L ; *7 LD HL,EncDos ADD A,L LD L,A ADC A,H SUB L LD H,A LD (ASCIIenc1),HL LD (ASCIIenc2),HL LD A, (CodePage) AND A JR NZ,.next LD HL,0 .call: LD (PutLineA2),A LD (PutLineA2 + 1),HL LD (InsSymbol),A LD (InsSymbol + 1),HL RET .next: DEC A LD HL,Table866 JR Z,.next1 LD HL,TableKoi .next1: LD (DecodeSymbol.table),HL LD HL,DecodeSymbol LD A,0xCD JR .call EncDos: DZ "F8 DOS" EncWin: DZ "F8 WIN" EncKoi: DZ "F8 KOI" ENDIF ;[]==========================================================[] include fedos.a80 include fetext.a80 include fehex.a80 include feprn.a80 include fesetup.a80 ;[]==========================================================[] FEASCIItab: DW 0,624, 28,228,%0000000000000000,%0000000000000000,TNewCrPos,0 DW 0, 80,242,256,%0000000000000001,%0000000000000000,FEAbout,0 ; F1 DW 80,160,242,256,%0000000000000001,%0000000000000000,SaveFile,0 ; F2 DW 160,240,242,256,%0000000000000001,%0000000000000000,ChEditor,0 ; F4 IF ENABLE_CODEPAGE DW 340,420,242,256,%0000000000000001,%0000000000000000,FEPrintFile,0 ; F7 DW 420,480,242,256,%0000000000000001,%0000000000000000,ChCodePage,0 ; F8 ELSE DW 400,480,242,256,%0000000000000001,%0000000000000000,FEPrintFile,0 ENDIF DW 480,560,242,256,%0000000000000001,%0000000000000000,EditorSetup,0 ; F9 DW 560,640,242,256,%0000000000100001,%0000000000000000,EditorExit,0 ; F10 DW 624,640, 28, 36,%0000000000000011,%0000000000000000,TCursorUp,0 DW 624,640,220,228,%0000000000000011,%0000000000000000,TCursorDown,0 TBarU EQU $+6 DW 624,640, 28, 0,%0000000000000000,%0000000000000000,FETPageUp,0 TBarD EQU $+4 DW 624,640, 0,228,%0000000000000000,%0000000000000000,TPageDown,0 DW 0, 16,228,236,%0000000000000011,%0000000000000000,TCursorLeft,0 DW 608,624,228,236,%0000000000000011,%0000000000000000,TCursorRight,0 TBarL EQU $+2 DW 16, 0,228,236,%0000000000000000,%0000000000000000,TCursorLeft,0 TBarR: DW 0,608,228,236,%0000000000000000,%0000000000000000,TCursorRight,0 DW 0x8000 FEHEXtab: DW 0, 80,242,256,%0000000000000001,%0000000000000000,FEAbout,0 ; F1 DW 80,160,242,256,%0000000000000001,%0000000000000000,SaveFile,0 ; F2 DW 160,240,242,256,%0000000000000001,%0000000000000000,ChEditor,0 ; F4 DW 240,320,242,256,%0000000000000001,%0000000000000000,FEHGoTo,0 ; F5 IF ENABLE_CODEPAGE DW 340,420,242,256,%0000000000000001,%0000000000000000,FEPrintFile,0 ; F7 DW 420,480,242,256,%0000000000000001,%0000000000000000,ChCodePage,0 ; F8 ELSE DW 400,480,242,256,%0000000000000001,%0000000000000000,FEPrintFile,0 ENDIF DW 480,560,242,256,%0000000000000001,%0000000000000000,EditorSetup,0 ; F9 DW 560,640,242,256,%0000000000100001,%0000000000000000,EditorExit,0 ; F10 DW 624,640, 28, 36,%0000000000000011,%0000000000000000,HCursorUp,0 DW 624,640,220,228,%0000000000000011,%0000000000000000,HCursorDown,0 DW 72,472, 28,228,%0000000000000000,%0000000000000000,HNewHEXPos,0 DW 488,616, 28,228,%0000000000000000,%0000000000000000,HNewASCPos,0 HBarU EQU $+6 DW 624,640, 28, 0,%0000000000000000,%0000000000000000,FEHPageUp,0 HBarD EQU $+4 DW 624,640, 0,228,%0000000000000000,%0000000000000000,FEHPageDown,0 DW 0x8000 FEAboutTab: DW 284,356,138,152,%0000000000100001,%0000000000000000,FEAboutExt,0 DW 0,160, 0,256,%0000000000100000,%0000000000000000,FEAboutExt,0 DW 480,640, 0,256,%0000000000100000,%0000000000000000,FEAboutExt,0 DW 0,640, 0, 72,%0000000000100000,%0000000000000000,FEAboutExt,0 DW 0,640,157,256,%0000000000100000,%0000000000000000,FEAboutExt,0 DW 0x8000 SureTab: DW 240,312,122,136,%0000000000100001,%0000000000000000,SureOkey,0 DW 328,400,122,136,%0000000000100001,%0000000000000000,SureExit,0 DW 0,208, 0,256,%0000000100100000,%0000000000000000,EditorLoop,0 DW 432,640, 0,256,%0000000100100000,%0000000000000000,EditorLoop,0 DW 0,640, 0, 80,%0000000100100000,%0000000000000000,EditorLoop,0 DW 0,640,140,256,%0000000100100000,%0000000000000000,EditorLoop,0 DW 0x8000 NewFileTab: DW 240,312,130,144,%0000000000100001,%0000000000000000,NewFExitO,0 DW 328,400,130,144,%0000000000100001,%0000000000000000,NewFExitC,0 DW 0,192, 0,256,%0000000000100000,%0000000000000000,NewFExitC,0 DW 448,640, 0,256,%0000000000100000,%0000000000000000,NewFExitC,0 DW 0,640, 0, 88,%0000000000100000,%0000000000000000,NewFExitC,0 DW 0,640,148,256,%0000000000100000,%0000000000000000,NewFExitC,0 DW 0x8000 FEQuitTab: DW 240,312,120,134,%0000000000100001,%0000000000000000,SureExit,0 DW 328,400,120,134,%0000000000100001,%0000000000000000,FEQuitAbort,0 DW 0,208, 0,256,%0000000000100000,%0000000000000000,FEQuitAbort,0 DW 432,640, 0,256,%0000000000100000,%0000000000000000,FEQuitAbort,0 DW 0,640, 0, 88,%0000000000100000,%0000000000000000,FEQuitAbort,0 DW 0,640,138,256,%0000000000100000,%0000000000000000,FEQuitAbort,0 DW 0x8000 SettingsFileName: DZ FILENAME.FNEDIT_INI ;[]==========================================================[] FECrTimer DB 1 EDBUF STRUCT .CursorX DB ? ; Cursor X .StringX DB ? ; String X .CursAddX DB ? ; Cursor add X .CursorY DB ? ; Cursor Y .LenString DB ? ; Len String .PrevLenString DB ? ; Previos Len String .ReadyStr DB ? ; Ready String .ReadyFile DB ? ; Ready File EDBUF ENDSTRUCT EditData EDBUF INIT_VAR $ SETVAR CurLine, WORD SETVAR EquipLines, WORD SETVAR LineShift, WORD SETVAR FEPageShift, WORD SETVAR FETempShift, WORD SETVAR FEFileLenght, WORD ; Длина файла (16бит) SETVAR FEEmptyLines, BYTE SETVAR FEMemIndef, BYTE SETVAR FEFHandle, BYTE SETVAR FEReadLen, 0 SETVAR SaveLen, WORD SETVAR EditMode, BYTE SETVAR HEXmode, BYTE SETVAR FECurCursor, BYTE SETVAR CursorPos, WORD SETVAR FECursBuffer, 8 SETVAR EditingFile, 0x30