1229 lines
20 KiB
Plaintext
1229 lines
20 KiB
Plaintext
|
||
; 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
|