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
|
||
|
||
;[]==========================================================[]
|