flex_nav/plugins/fneditor/fehex.a80

1229 lines
20 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; LAST UPDATE: 20.03.2025 savelij
;[]==========================================================[]
;<3B>à®æ¥¤ãà  ¯¥ç â¨ áâà ­¨æë ¤ ¬¯  á ⥪.ᬥé. ®â ­ ç «  ä ©« 
;<3B>  ¢å®¤:
; None
;<3B>  ¢ë室:
; None
FEPrnHEXpage LD HL,PrnHEXinfo
PUSH HL
LD HL,(FEPageShift)
LD (FETempShift),HL ;‡ ¯®¬¨­ ¥¬ ⥪.ᬥ饭¨¥
LD HL,LineBuffer
LD BC,0x4E20
.L1 LD (HL),C
INC L
DJNZ .L1
LD B,0x1C ;ˆ§­ ç.¯®§¨æ¨ï ¯¥ç â¨
FEPrnHEXl PUSH BC
CALL FEPutHLine ;‚뢮¤¨¬ áâப㠢 ¡ãä¥à ¨ ­  íªà ­
POP BC
JR C,FEFillDwnHex ;CY-‡ ª®­ç¨«¨áì ¡ ©âë ¤«ï ¯¥ç â¨
LD HL,(FETempShift)
LD DE,0x0010 ;€¤à¥á ¤ ¬¯ +16
ADD HL,DE
LD (FETempShift),HL
LD A,B
ADD A,0x08
LD B,A
CP 0xE4
JR NZ,FEPrnHEXl
PrHEXCr LD HL,CursorTab1
LD A,(HEXmode)
OR A
JR Z,.L1
LD HL,CursorTab2
.L1 LD A,(IY+CursorX)
ADD A,L
LD L,A
LD A,H
ADC A,0x00
LD H,A
LD E,(HL)
LD D,(IY+CursorY)
CALL FESetCursor
RET
;<3B>à®æ¥¤ãà  ®âç¨á⪨ ­¨¦­¥© ®¡« á⨠íªà ­ 
FEFillDwnHex LD A,B
CP 0xE4
JR Z,PrHEXCr ;Z-­¥â ®âç¨á⪨
LD (FEFPosHex),A
LD A,0xE4
SUB B
LD (FEFLenHex),A
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 0,0,624,0,COLORI.PANEL
FEFPosHex EQU $ - 7
FEFLenHex EQU $ - 3
W_END
JR PrHEXCr
;<3B>à®æ¥¤ãà  ¯¥ç â¨ ⥪.áâப¨ ¢ ¡ãä¥à ¨ ­  íªà ­
FEPutHLine LD IXL,0x00
LD IXH,B
LD HL,(FEFileLenght)
LD BC,(FETempShift)
OR A
SBC HL,BC
RET C
LD B,0x10
LD A,H
OR A
JR NZ,.PutHLn
LD A,L
CP B
JR NC,.PutHLn
LD B,L
.PutHLn
GETPORT WINSP.CPU1
PUSH AF
LD DE,(FETempShift)
LD A,D ;‚뤥«ï¥¬ ­®¬¥à áâà ­¨æë
AND 0xC0
RLCA
RLCA
EXX
LD E,A ;DE - €¤à¥á áâà ­¨æë ¢ ᯨ᪥
LD D,HIGH (PagesList)
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
EXX
RES 7,D ;‚ª«.á 0x4000
SET 6,D
LD HL,LineBuffer+1 ;¡ãä¥à áâப¨
EXX
LD HL,LineBuffer+0x3D ;¬¥áâ® ¤«ï ASCII ª®¤®¢
EXX
LD (HL),'0'
INC L
LD A,(FETempShift+1)
CALL FEPutHexNumb
LD A,(FETempShift)
CALL FEPutHexNumb
LD (HL),':'
INC L
INC L
INC L
LD A,B
OR A
JR Z,PutHLp2
FEPutHLoop BIT 7,D
JR Z,PutHLp1
RES 7,D
SET 6,D
EXX
INC E ;DE - €¤à¥á áâà ­¨æë ¢ ᯨ᪥
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
EXX
PutHLp1 LD A,(DE)
INC DE
EXX
LD (HL),A
INC L
EXX
CALL FEPutHexNumb ;<3B>à®æ¥¤ãà  ª®­¢¥àâ 
INC L
INC IXL ;“¢¥«¨ç.ª®«-¢® ¢¢¥¤¥­­ëå ¡ ©â®¢
LD A,IXL
AND 0x03
JR NZ,.L1
INC L
.L1 DJNZ FEPutHLoop
PutHLp2 POP AF
SETPORT WINSP.CPU1,,0
;<3B>à®æ¥¤ãà  ®âç¨á⪨ § ª®­ç¨¢è¨åáï ¡ ©â®¢
FEFillHex LD A,0x10 ;Œ ªá.¡ ©â®¢
SUB IXL ;’¥ª.ª®«-¢® ¡ ©â®¢
JR Z,.FillE2
LD B,A
LD C,0x20
.FillE1 LD (HL),C
INC L
LD (HL),C
INC L
INC L
EXX
LD (HL),0x20
INC L
EXX
INC IXL
LD A,IXL ; 業âॠ2 ¯à®¡¥« 
AND 0x03
JR NZ,.L1
INC L
.L1 DJNZ .FillE1
.FillE2 LD HL,LineBuffer
LD DE,0x0000
LD B,0x4E
LD C,IXH
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
OR A
RET ;CY-¡ë«  ¯®á«¥¤­ïï áâப 
;<3B>à®æ¥¤ãà  ¯à¥®¡à §®¢ ­¨ï 8¡¨â®¢ëå ç¨á¥« ¢ è¥áâ­ ¤æ. ⥪áâ
;<3B>  ¢å®¤:
; HL -  ¤à¥á ¡ãä¥à 
; € - ¡ ©â
;<3B>  ¢ë室:
; ¡ãä¥à á ⥪áâ.ç¨á«®¬
FEPutHexNumb PUSH AF
RRCA
RRCA
RRCA
RRCA
AND 0x0F
ADD A,0x90
DAA
ADC A,0x40
DAA
LD (HL),A
INC L
POP AF
AND 0x0F
ADD A,0x90
DAA
ADC A,0x40
DAA
LD (HL),A
INC L
RET
CursorTab1 DEFB 9,10,12,13,15,16,18,19
DEFB 22,23,25,26,28,29,31,32
DEFB 35,36,38,39,41,42,44,45
DEFB 48,49,51,52,54,55,57,58
CursorTab2 DEFB 61,61,62,62,63,63,64,64
DEFB 65,65,66,66,67,67,68,68
DEFB 69,69,70,70,71,71,72,72
DEFB 73,73,74,74,75,75,76,76
;[]==========================================================[]
PrnHEXinfo LD HL,LineH
LD DE,ColH
LD BC,FreeH
LD A,0x01
REPT 0x04
LD (HL),A
INC HL
LD (DE),A
INC DE
LD (BC),A
INC BC
ENDM
LD (HL),A
LD (DE),A
LD (BC),A
LD HL,(CurLine)
LD DE,LineH
INC HL
CALL JUMPS.ConvNumTxt16
LD DE,ColH
LD A,(IY+CursorX)
SRL A
INC A
CALL JUMPS.ConvNumTxt8
LD HL,0xC000
LD DE,FreeH
LD BC,(FEFileLenght)
OR A
SBC HL,BC
CALL JUMPS.ConvNumTxt16
LD HL,ReadyNo
LD A,(IY+ReadyFile)
OR A
JR Z,.L1
LD HL,ReadyYes
.L1 LD DE,0x017E
LD BC,0x0011
LD A,0x80
CALL JUMPS.PrnTxtLnIFF
LD HL,LineH
LD DE,0x01AE
LD BC,0x0011
LD A,0x80
CALL JUMPS.PrnTxtLnIFF
LD HL,ColH
LD DE,0x01F8
LD BC,0x0011
LD A,0x80
CALL JUMPS.PrnTxtLnIFF
LD HL,FreeH
LD DE,0x0248
LD BC,0x0011
LD A,0x80
CALL JUMPS.PrnTxtLnIFF
LD IX,EditVBar
LD HL,(ELines)
LD DE,(EquipLines)
OR A
SBC HL,DE
JR Z,TstLinH
LD (ELines),DE
CALL JUMPS.InitScrBar
LD HL,(CurLine)
LD (CLine),HL
CALL JUMPS.PrnVScrBar
RET
TstLinH LD HL,(CLine)
LD DE,(CurLine)
OR A
SBC HL,DE
RET Z
LD (CLine),DE
CALL JUMPS.PrnVScrBar
RET
LineH DUPL 6,0
ColH DUPL 6,0
FreeH DUPL 6,0
;[]==========================================================[]
HPutSymbol CP 0x08
JP Z,HDeleteByte
CP 0x09
JP Z,ChHEXmode
LD C,A
LD HL,(LineShift)
LD E,(IY+CursorX)
SRL E
LD D,0x00
ADD HL,DE
LD A,H
CP 0xC0
RET NC
LD A,(HEXmode)
OR A
JR NZ,HPutSymbA
LD A,C
CP 'a'
JR C,.L1
RES 5,A
.L1 CP '0'
RET C
CP 'F'+1
RET NC
SUB '0'
CP 0x0A
JR C,HPutSH1
SUB 0x07
CP 0x0A
RET C
HPutSH1 LD C,A
BIT 0,(IY+CursorX)
LD B,0xF0
JR NZ,HPutSH2
LD B,0x0F
RLC C
RLC C
RLC C
RLC C
HPutSH2 EX DE,HL
LD HL,(FEFileLenght)
OR A
SBC HL,DE
EX DE,HL
LD A,0x00
JR Z,.L2
LD A,0x01
.L2 EX AF,AF'
GETPORT WINSP.CPU1
PUSH AF
LD A,H ;‚뤥«ï¥¬ ­®¬¥à áâà ­¨æë
AND 0xC0
RLCA
RLCA
LD E,A ;DE - €¤à¥á áâà ­¨æë ¢ ᯨ᪥
LD D,HIGH (PagesList)
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
RES 7,H ;‚ª«.á 0x4000
SET 6,H
EX AF,AF'
OR A
JR NZ,.L3
LD (HL),A
.L3 EX AF,AF'
LD A,(HL)
AND B
OR C
LD (HL),A
POP AF
SETPORT WINSP.CPU1,,0
JR HPrnSymbol
HPutSymbA EX DE,HL
LD HL,(FEFileLenght)
OR A
SBC HL,DE
EX DE,HL
LD A,0x00
JR Z,.L1
LD A,0x01
.L1 EX AF,AF'
GETPORT WINSP.CPU1
PUSH AF
LD A,H ;‚뤥«ï¥¬ ­®¬¥à áâà ­¨æë
AND 0xC0
RLCA
RLCA
LD E,A ;DE - €¤à¥á áâà ­¨æë ¢ ᯨ᪥
LD D,HIGH (PagesList)
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
RES 7,H ;‚ª«.á 0x4000
SET 6,H
LD (HL),C
POP AF
SETPORT WINSP.CPU1,,0
HPrnSymbol EX AF,AF'
OR A
JR NZ,HPrnS1
LD HL,(FEFileLenght)
INC HL
LD (FEFileLenght),HL
HPrnS1 CALL HPrnS2
LD (IY+ReadyFile),0x01
CALL HCursorRight
LD HL,(LineShift)
LD E,(IY+CursorX)
SRL E
LD D,0x00
ADD HL,DE
EX DE,HL
LD HL,(FEFileLenght)
OR A
SBC HL,DE
RET NZ
LD A,(IY+CursorX)
OR A
RET NZ
HPrnS2 CALL FEResCursor
LD HL,(LineShift)
LD (FETempShift),HL
LD A,(IY+CursorY)
ADD A,A
ADD A,A
ADD A,A
ADD A,0x1C
LD B,A
CALL FEPutHLine
CALL PrHEXCr
RET
;[]----------------------------------------------------------[]
HDeleteByte LD HL,(LineShift)
LD E,(IY+CursorX)
SRL E
LD D,0x00
ADD HL,DE
EX DE,HL
LD HL,(FEFileLenght)
OR A
PUSH HL
SBC HL,DE
POP HL
JP NZ,HCursorLeft
LD A,H
OR L
RET Z
DEC HL
LD (FEFileLenght),HL
LD A,E
AND 0x0F
JR NZ,HDelS1
LD HL,EmptyAddr
LD DE,0x0008
LD A,(IY+CursorY)
ADD A,A
ADD A,A
ADD A,A
ADD A,0x1C
LD C,A
LD B,0x06
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
HDelS1 LD (IY+ReadyFile),0x01
RES 0,(IY+CursorX)
LD A,0x01
CALL HCursorLeft+3
CALL FEResCursor
LD HL,(LineShift)
LD (FETempShift),HL
LD A,(IY+CursorY)
ADD A,A
ADD A,A
ADD A,A
ADD A,0x1C
LD B,A
CALL FEPutHLine
CALL PrHEXCr
RET
EmptyAddr DEFB " "
;[]----------------------------------------------------------[]
ChHEXmode CALL FEResCursor
RES 0,(IY+CursorX)
LD A,(HEXmode)
XOR 0x01
LD (HEXmode),A
CALL PrHEXCr
RET
;[]----------------------------------------------------------[]
;Šãàá®à ¢«¥¢® ­  ®¤­® ¬¥áâ®
HCursorLeft LD A,(HEXmode)
LD C,A
LD A,(IY+CursorX)
DEC A
AND 0x1F
CP 0x1F
JR NZ,HCurLf1
LD B,A
LD HL,(LineShift)
LD A,H
OR L
RET Z
LD A,B
SUB C
LD (IY+CursorX),A
JP HCursorUp
HCurLf1 SUB C
LD (IY+CursorX),A
CALL FEResCursor
CALL PrHEXCr
CALL PrnHEXinfo
RET
;[]----------------------------------------------------------[]
;Šãàá®à ¢¯à ¢® ­  ®¤­® ¬¥áâ®
HCursorRight LD HL,(LineShift)
LD DE,(FEFileLenght)
LD C,(IY+CursorX)
SRL C
LD B,0x00
ADD HL,BC
SBC HL,DE
RET Z
LD A,(HEXmode)
LD C,A
LD A,(IY+CursorX)
INC A
ADD A,C
AND 0x1F
JR NZ,HCurRg1
LD B,A
LD HL,(LineShift)
LD DE,0x0010
ADD HL,DE
EX DE,HL
LD HL,(FEFileLenght)
SBC HL,DE
RET C
LD A,B
LD (IY+CursorX),A
JP HCursorDown
HCurRg1 LD (IY+CursorX),A
CALL FEResCursor
CALL PrHEXCr
CALL PrnHEXinfo
RET
;[]----------------------------------------------------------[]
HHomeString LD A,(IY+CursorX)
CP 0x02
RET C
LD (IY+CursorX),0x00
CALL FEResCursor
CALL PrHEXCr
CALL PrnHEXinfo
RET
;[]----------------------------------------------------------[]
HEndString LD A,(IY+CursorX)
CP 0x1E
RET NC
LD (IY+CursorX),0x1E
CALL FEResCursor
CALL PrHEXCr
CALL PrnHEXinfo
RET
;[]----------------------------------------------------------[]
HCursorUp LD HL,(LineShift)
LD A,H
OR L
RET Z
LD A,(IY+CursorY)
OR A
JP Z,HScrollUp
LD DE,0x0010
SBC HL,DE
LD (LineShift),HL
DEC (IY+CursorY)
CALL FEResCursor
CALL PrHEXCr
JP HCursorExit
HCursorDown LD HL,(FEFileLenght)
LD DE,(LineShift)
LD A,(IY+CursorX)
SRL A
ADD A,0x10
LD C,A
LD B,0x00
EX DE,HL
ADD HL,BC
EX DE,HL
SBC HL,DE
JP C,FEHEndFile
LD A,(IY+CursorY)
CP 0x18
JP Z,HScrollDown
LD A,E
AND 0xF0
LD E,A
LD (LineShift),DE
INC (IY+CursorY)
CALL FEResCursor
CALL PrHEXCr
JP HCursorExit
HScrollUp LD HL,(FEPageShift)
LD A,H
OR L
JP Z,HCursorUp
LD DE,0x0010
SBC HL,DE
LD (FEPageShift),HL
LD (FETempShift),HL
LD HL,(LineShift)
SBC HL,DE
LD (LineShift),HL
CALL FEResCursor
CALL FEScrollSCRdown
LD B,0x1C
CALL FEPutHLine
CALL PrHEXCr
JP HCursorExit
HScrollDown LD HL,(FEPageShift)
LD DE,0x0190
ADD HL,DE
EX DE,HL
LD HL,(FEFileLenght)
OR A
SBC HL,DE ;<3B>஢¥à塞 ­  ª®­¥æ ä ©« 
JP C,HCursorDown
LD (FETempShift),DE ;‡ ¯®¬¨­ ¥¬ ⥪.ᬥ饭¨¥
LD HL,(FEPageShift)
LD DE,0x0010
ADD HL,DE
LD (FEPageShift),HL
LD HL,(LineShift)
ADD HL,DE
LD (LineShift),HL
CALL FEResCursor
CALL FEScrollSCRup
LD B,0xDC
CALL FEPutHLine
CALL PrHEXCr
HCursorExit LD HL,(LineShift)
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD (CurLine),HL
CALL PrnHEXinfo
RET
;[]----------------------------------------------------------[]
FEHPageUp LD HL,(FEPageShift)
LD A,H
OR L
JP Z,FEHBegFile
LD DE,0x0190
OR A
SBC HL,DE
JR NC,.L1
LD HL,0x0000
.L1 LD (FEPageShift),HL
LD HL,(LineShift)
OR A
SBC HL,DE
JR NC,.L2
LD HL,0x0000
.L2 LD (LineShift),HL
JR HPageExit
;[]----------------------------------------------------------[]
FEHPageDown LD HL,(FEPageShift)
LD BC,0x0190
ADD HL,BC
EX DE,HL
LD HL,(FEFileLenght)
OR A
SBC HL,DE ;<3B>஢¥à塞 ­  ª®­¥æ ä ©« 
JP C,FEHEndFile
LD (FEPageShift),DE
LD HL,(LineShift)
ADD HL,BC
EX DE,HL
LD HL,(FEFileLenght)
OR A
SBC HL,DE ;<3B>஢¥à塞 ­  ª®­¥æ ä ©« 
JP C,FEHEndFile
LD (LineShift),DE
HPageExit LD HL,(LineShift)
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD (CurLine),HL
CALL FEPrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
;[]----------------------------------------------------------[]
; ­ ç «® ä ©« 
FEHBegFile LD HL,(LineShift)
LD A,(IY+CursorX)
OR H
OR L
RET Z
SUB A
LD (IY+CursorX),A
LD (IY+CursorY),A
LD HL,0x0000 ;‘¬¥é¥­¨¥ = 0000
LD (LineShift),HL
LD (FEPageShift),HL
LD (CurLine),HL
CALL FEPrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
;[]----------------------------------------------------------[]
; ª®­¥æ ä ©« 
FEHEndFile LD HL,(LineShift)
LD E,(IY+CursorX)
SRL E
LD D,0x00
ADD HL,DE
EX DE,HL
LD HL,(FEFileLenght)
OR A
PUSH HL
SBC HL,DE ;<3B>஢¥à塞 ­  ª®­¥æ ä ©« 
POP HL
RET Z
LD HL,(FEPageShift)
LD BC,0x0190
ADD HL,BC
EX DE,HL
LD HL,(FEFileLenght)
OR A
SBC HL,DE ;<3B>஢¥à塞 ­  ª®­¥æ ä ©« 
ADD HL,DE
JR C,.HEnd1
SBC HL,BC
LD A,L
AND 0xF0
LD L,A
LD DE,0x0010
ADD HL,DE
LD (FEPageShift),HL
.HEnd1 LD HL,(FEFileLenght)
LD DE,(FEPageShift)
OR A
SBC HL,DE
PUSH HL
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD (IY+CursorY),L
POP DE
LD A,E
AND 0xF0
LD E,A
LD HL,(FEPageShift)
ADD HL,DE
LD (LineShift),HL
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD (CurLine),HL
LD A,(FEFileLenght)
AND 0x0F
ADD A,A
LD (IY+CursorX),A
CALL FEPrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
;[]----------------------------------------------------------[]
HNewHEXPos EX DE,HL
LD BC,0x001C
OR A
SBC HL,BC
LD A,L
AND 0xF8
LD L,A
SLA L
RL H
PUSH HL
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD A,L
EX AF,AF'
EX DE,HL
LD BC,0x0048
OR A
SBC HL,BC
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD A,L
LD HL,HNewPosTb
ADD A,A
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD A,(HL)
INC HL
LD L,(HL)
LD H,A
POP DE
OR A
RET M
PUSH HL
LD HL,(FEPageShift)
ADD HL,DE
EX DE,HL
PUSH DE
ADD A,E
LD E,A
JR NC,.L2
INC D
.L2 LD HL,(FEFileLenght)
OR A
SBC HL,DE
POP DE
POP HL
RET C
LD A,H
ADD A,A
ADD A,L
LD (IY+CursorX),A
EX AF,AF'
LD (IY+CursorY),A
LD (LineShift),DE
SRL D
RR E
SRL D
RR E
SRL D
RR E
SRL D
RR E
LD (CurLine),DE
CALL FEResCursor
SUB A
LD (HEXmode),A
CALL PrHEXCr
CALL PrnHEXinfo
RET
HNewPosTb DEFB 0,0,0,1,-1,-1
DEFB 1,0,1,1,-1,-1
DEFB 2,0,2,1,-1,-1
DEFB 3,0,3,1,-1,-1,-1,-1
DEFB 4,0,4,1,-1,-1
DEFB 5,0,5,1,-1,-1
DEFB 6,0,6,1,-1,-1
DEFB 7,0,7,1,-1,-1,-1,-1
DEFB 8,0,8,1,-1,-1
DEFB 9,0,9,1,-1,-1
DEFB 10,0,10,1,-1,-1
DEFB 11,0,11,1,-1,-1,-1,-1
DEFB 12,0,12,1,-1,-1
DEFB 13,0,13,1,-1,-1
DEFB 14,0,14,1,-1,-1
DEFB 15,0,15,1,-1,-1,-1,-1
HNewASCPos EX DE,HL
LD BC,0x001C
OR A
SBC HL,BC
LD A,L
AND 0xF8
LD L,A
SLA L
RL H
PUSH HL
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD A,L
EX AF,AF'
EX DE,HL
LD BC,0x01E8
OR A
SBC HL,BC
SRL H
RR L
SRL H
RR L
SRL H
RR L
POP DE
LD A,L
PUSH HL
LD HL,(FEPageShift)
ADD HL,DE
EX DE,HL
PUSH DE
ADD A,E
LD E,A
JR NC,.L1
INC D
.L1 LD HL,(FEFileLenght)
OR A
SBC HL,DE
POP DE
POP HL
RET C
LD A,L
ADD A,A
LD (IY+CursorX),A
EX AF,AF'
LD (IY+CursorY),A
LD (LineShift),DE
SRL D
RR E
SRL D
RR E
SRL D
RR E
SRL D
RR E
LD (CurLine),DE
CALL FEResCursor
LD A,0x01
LD (HEXmode),A
CALL PrHEXCr
CALL PrnHEXinfo
RET
;[]----------------------------------------------------------[]
;<3B>à®æ¥¤ãà  ¢¢®¤  ­®¢®£® 㪠§ â¥«ï ᬥ饭¨ï ¢ ä ©«¥
FEHGoTo LD HL,(FEFileLenght)
LD A,H ;<3B>஢¥à塞,çâ® ¤«¨­ 
OR A ;ä ©«  ¡®«ìè¥ 16 ¡ ©â
JR NZ,.HGoToOk
LD A,L
CP 0x11
RET C ;¬¥­ìè¥ 16¡ ©â
.HGoToOk CALL FEResCursor
LD HL,FENewShift ;<3B>ãä¥à ¤«ï ¢¢®¤  ­®¢®£® 㪠§.
SUB A
LD (FECursPos),A ;<3B>®§¨æ¨ï ¢¢®¤  ¢ ¡ãä¥à¥
INC A
LD (FEBuffFlg),A
LD (HL),'0'
INC HL
LD A,(FEPageShift+1)
CALL FEPutHexNumb ;‡ ­®á¨¬ ¢ ¡ãä¥à ⥪ã饥 ᬥé.
LD A,(FEPageShift) ;¢ ⥪á⮢®¬ ¢¨¤¥
CALL FEPutHexNumb
;‚뢮¤¨¬ ­  íªà ­ ¡ãä¥à ¨
FEHGoToRet CALL FEPrintHGT ;¯¥ç â ¥¬ ªãàá®à
FEHGoToLp HALT ;ަ¨¤ ¥¬ ¯à¥à뢠­¨¥
CALL FEChangeCurs ;¯à®¢¥àï¬ ­  ᬥ­ã ªãàá®à 
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
JP NZ,FEHGTescape
SPDSS DSSF.SCANKEY ;ަ¨¤ ¥¬ ­ ¦ â¨ï ª« ¢¨è¨
JR Z,FEHGoToLp ;Z - ­¥ ­ ¦ â 
LD A,B
AND 0x3F
JR NZ,FEHGoToLp
LD A,E
OR A
JR Z,FEHGoToSys ;A=0 á¨áâ.ª« ¢¨è 
CP 0x0D
JP Z,FEHGTenter ;­ ¦ â Enter
CP 0x08
JR Z,FEHGTdelete ;­ ¦ â BackSpace
CP 0x1B
JP Z,FEHGTescape ;­ ¦ â Esc
CP 0x20
JR C,FEHGoToLp ;ª®¤<0x20 ­ ¬ ­¥ ¯®¤å®¤¨â
LD C,A ;á®åà. ASCII ª®¤
LD A,0x00
FEBuffFlg EQU $-1
OR A
CALL NZ,FEClearBuff
LD A,0x00 ;⥪.¯®§¨æ¨ï ¯¥ç â¨ ¢ ¡ãä¥à¥
FECursPos EQU $-1
LD B,A ;á®åà.⥪.¯®§.
LD HL,FENewShift ;‘¬¥é.®â ­ ç «  ¡ãä¥à 
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD (HL),C ;‡ ­®á¨¬ ª®¤ ¢ ¡ãä¥à
LD A,B ;⥪.¯®§.
CP 0x04 ;<3B>®§¨æ¨ï ¢ ¡ãä¥à¥ (7-¯®á«¥¤­ïï)
JR Z,FEHGoToRet ;¯¥ç â ¥¬ áâப㠨 ªãàá®à
INC A ;á«¥¤.¯®§¨æ¨ï
LD (FECursPos),A
JR FEHGoToRet ;¯¥ç â ¥¬ áâப㠨 ªãàá®à
FEClearBuff LD HL,FENewShift
LD B,0x05
LD A,0x20
.L2 LD (HL),A
INC HL
DJNZ .L2
SUB A
LD (FEBuffFlg),A
RET
;‡ ¡®©
FEHGTdelete SUB A
LD (FEBuffFlg),A
LD A,(FECursPos) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
OR A
JR Z,FEHGoToLp ;0 - ¢ë室¨¬
DEC A
LD (FECursPos),A ;¯à¥¤¨¤.¯®§¨æ¨ï
LD HL,FENewShift
ADD A,L ;ᬥé.¢ ¡ãä¥à¥
LD L,A
JR NC,.L1
INC H
.L1 LD (HL),' ' ;‡ ¡¨¢ ¥¬ ¯à®¡¥«®¬
JR FEHGoToRet
;á¨á⥬­ ï ª« ¢¨è 
FEHGoToSys LD A,D
CP 0x54 ;<-
JR Z,.HGTleft
CP 0x56 ;->
JR Z,.HGTright
JR FEHGoToLp
;Šãàá®à ¢«¥¢®
.HGTleft SUB A
LD (FEBuffFlg),A
LD A,(FECursPos) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
OR A
JP Z,FEHGoToLp ;0 - ¢ë室¨¬
DEC A
LD (FECursPos),A ;“¬¥­ìè.¯®§.
JP FEHGoToRet
.HGTright SUB A
LD (FEBuffFlg),A
LD A,(FECursPos) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
CP 0x04
JP Z,FEHGoToLp ;7 - ¯®á«¥¤­ïï
INC A
LD (FECursPos),A ;“¢¥«¨ç.¯®§.
JP FEHGoToRet
;<3B>à®æ¥¤ãà  ¢ë¢®¤  áâப¨ ¨ ªãàá®à 
FEPrintHGT LD HL,FENewShift
LD DE,0x0008
LD BC,0x051C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,(FECursPos) ;<3B>®§¨æ¨ï ¢ë¢®¤  ªãàá®à 
INC A
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
EX DE,HL
LD HL,FETCursor
LD (HL),0xAB;'<'
LD BC,0x011C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,0x01 ;<3B>®¬¥à ¢ë¢¥¤¥­­®£® ªãàá®à 
LD (FECurCurs),A
LD A,0x06 ;ަ¨¤ ­¨¥ ¤«ï ᬥ­ë ªãàá®à 
LD (FECurWait),A
RET
;<3B>à®æ¥¤ãà  á¬¥­ë ªãàá®à 
FEChangeCurs LD A,0x00 ;‡ ¤¥à¦ª  ¬¥¦¤ã ᬥ­®© ªãàá®à 
FECurWait EQU $-1
DEC A
LD (FECurWait),A
RET NZ ;¥é¥ ­¥ ¢à¥¬ï
LD A,(FECursPos)
INC A
LD L,A
LD H,0x00 ;’¥ª.§­ ª®¬¥áâ®
ADD HL,HL
ADD HL,HL
ADD HL,HL
EX DE,HL
LD HL,FENewShift ;‘¬¥é.¢ ¡ãä¥à¥
LD A,(FECursPos)
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD A,0x00 ;<3B>®¬¥à ⥪ã饣® ªãàá®à 
FECurCurs EQU $-1
XOR 0x01 ;Œ¥­ï¥¬ ªãàá®à
LD (FECurCurs),A
LD A,(HL)
JR Z,.L2 ;<3B>¥ç â ¥¬
LD A,0xBB;'<'
.L2 LD HL,FETCursor
LD (HL),A
LD BC,0x011C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,0x0C ;ަ¨¤ ­¨¥ ¤«ï ᬥ­ë ªãàá®à 
LD (FECurWait),A
RET
FETCursor DEFB ' '
;Š« ¢¨è  ENTER
FEHGTenter SUB A ;<3B>ਠ®è¨¡ª¥ ¢¥à­¥¬áï á ªãàá®à®¬
LD (FECursPos),A ;¢ ­ã«¥¢®© ¯®§¨æ¨¨
LD BC,FENewShift ;<3B>ãä¥à áâப¨
CALL GetHexNum16 ;<3B>¥à¥¢®¤¨¬ ⥪áâ ¢ 32¡¨â ç¨á«®
JP C,FEHGoToRet ;CY - ᨭ⠪á.®è¨¡ª 
LD C,E
LD B,D
LD A,L ;€¤à¥á ªà â­ë© 16
AND 0xF0
LD L,A
EX DE,HL ;‘¬¥é.¢ BC+DE
LD HL,(FEFileLenght) ;<3B>஢¥à塞,ç⮠ᬥ饭¨¥ ¢
OR A ;¯à¥¤¥« å ä ©« 
SBC HL,DE
EX DE,HL
JR NC,.HGTent1 ;NZ-¢ ¯à¥¤¥« å
LD HL,(FEFileLenght)
LD A,L
AND 0xF0
LD L,A
.HGTent1 LD (FEPageShift),HL
LD (LineShift),HL
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD (CurLine),HL
SUB A
LD (IY+CursorX),A
LD (IY+CursorY),A
CALL FEPrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
;<3B> ¦ â Escape
FEHGTescape LD HL,FENewShift ;<3B>ãä¥à áâப¨
PUSH HL
LD (HL),'0'
INC HL
LD A,(FEPageShift+1) ;‡ ­®á¨¬ ⥪.ᬥ饭¨¥
CALL FEPutHexNumb
LD A,(FEPageShift)
CALL FEPutHexNumb
POP HL
LD DE,0x0008
LD BC,0x051C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
CALL PrHEXCr
CALL JUMPS.ResFire
RET ;‚ë室¨¬
FENewShift DEFB " ",0
;<3B>à®æ¥¤ãà  ª®­¢¥àâ¨à®¢ ­¨ï 32¡¨â®¢®£® è¥áâ­.⥪á⮢®£® ç¨á« 
;<3B>  ¢å®¤:
; BC - €¤à¥á ¡ãä¥à  á ⥪á⮬ (0-ª®­¥æ ¡ãä¥à )
;<3B>  ¢ë室:
; DE+HL - —¨á«® 32¡¨â
; CY - ᨭ⠪á¨ç¥áª ï ®è¨¡ª 
GetHexNum16 LD HL,0x0000
FEGetHNlp LD A,(BC)
INC BC
OR A
RET Z
CP ' '
JR Z,FEGetHNlp
CP 0x61
JR C,.L1
SUB 0x20
.L1 CP 0x30
RET C
CP 0x47
CCF
RET C
SUB 0x30
CP 0x0A
JR C,FEGetHNum
SUB 0x07
CP 0x0A
RET C
FEGetHNum ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
OR L
LD L,A
JR FEGetHNlp