- переделано отображение даты/времени, в режиме 1 (формат 02.08.2025) неправильно конвертило год. - обновлено описание Flex Navigator API до версии 0.5. - удален один джамп из таблицы за ненадобностью. - большое перименование меток, пересборка всего для проверки.
717 lines
13 KiB
Plaintext
717 lines
13 KiB
Plaintext
|
||
; LAST UPDATE: 31.07.2025 savelij
|
||
|
||
;--------------------------------------------------------------
|
||
; <20>à®æ¥¤ãà ¯¥ç ⨠áâà ¨æë ¤ ¬¯ á ⥪.ᬥé. ®â ç « ä ©«
|
||
; <20> ¢å®¤:
|
||
; None
|
||
; <20> ¢ë室:
|
||
; None
|
||
PrnHEXpage LD HL,PrintVProc
|
||
PUSH HL
|
||
LD HL,(FileShift)
|
||
LD A,L
|
||
AND 0xF0
|
||
LD L,A
|
||
LD (FileShift),HL
|
||
LD (TempShift),HL ; ‡ ¯®¬¨ ¥¬ ⥪.ᬥ饨¥
|
||
LD HL,(FileShift+2)
|
||
LD (TempShift+2),HL
|
||
LD HL,LineBuffer
|
||
LD BC,0x5020
|
||
.L1 LD (HL),C
|
||
INC L
|
||
DJNZ .L1
|
||
LD B,0x1C ; ˆ§ ç.¯®§¨æ¨ï ¯¥ç â¨
|
||
PrnHEXl PUSH BC
|
||
CALL PutHLine ; ‚뢮¤¨¬ áâப㠢 ¡ãä¥à ¨ íªà
|
||
POP BC
|
||
JR C,FillDwnHex ; CY-‡ ª®ç¨«¨áì ¡ ©âë ¤«ï ¯¥ç â¨
|
||
LD HL,(TempShift)
|
||
LD DE,0x0010 ; €¤à¥á ¤ ¬¯ +16
|
||
ADD HL,DE
|
||
LD (TempShift),HL
|
||
LD HL,(TempShift+2)
|
||
LD E,D
|
||
ADC HL,DE
|
||
LD (TempShift+2),HL
|
||
LD A,B
|
||
ADD A,0x08
|
||
LD B,A
|
||
CP 0xE4
|
||
JR NZ,PrnHEXl
|
||
RET
|
||
|
||
; <20>à®æ¥¤ãà ®âç¨á⪨ ¨¦¥© ®¡« á⨠íªà
|
||
FillDwnHex LD A,B
|
||
CP 0xE4
|
||
RET Z ; Z-¥â ®âç¨á⪨
|
||
LD (FPosHex),A
|
||
LD A,0xE4
|
||
SUB B
|
||
LD (FLenHex),A
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
W_FILL 0,0,640,0,COLORI.PANEL
|
||
FPosHex EQU $ - 7
|
||
FLenHex EQU $ - 3
|
||
W_END
|
||
RET
|
||
|
||
; <20>à®æ¥¤ãà ¯¥ç ⨠⥪.áâப¨ ¢ ¡ãä¥à ¨ íªà
|
||
PutHLine LD IXL,0x00
|
||
LD IXH,B
|
||
LD HL,(FileLenght)
|
||
LD BC,(TempShift)
|
||
OR A
|
||
SBC HL,BC
|
||
EX DE,HL
|
||
LD HL,(FileLenght+2)
|
||
LD BC,(TempShift+2)
|
||
SBC HL,BC
|
||
RET C
|
||
LD B,0x10
|
||
JR NZ,PutHLn
|
||
LD A,D
|
||
OR A
|
||
JR NZ,PutHLn
|
||
OR E
|
||
SCF
|
||
RET Z
|
||
LD A,E
|
||
CP B
|
||
JR NC,PutHLn
|
||
LD B,E
|
||
PutHLn
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
CALL InitFPages
|
||
LD HL,LineBuffer+1 ; ¡ãä¥à áâப¨
|
||
EXX
|
||
LD HL,LineBuffer+0x3F ; ¬¥áâ® ¤«ï ASCII ª®¤®¢
|
||
EXX
|
||
; 32-å ¡¨â®¥ ᬥ饨¥
|
||
LD A,(TempShift+3) ; Š« ¤¥¬ ᬥ饨¥
|
||
CALL PutHexNumb ; ®â ç « ä ¨«
|
||
LD A,(TempShift+2)
|
||
CALL PutHexNumb
|
||
LD A,(TempShift+1)
|
||
CALL PutHexNumb
|
||
LD A,(TempShift)
|
||
CALL PutHexNumb
|
||
LD (HL),':'
|
||
INC L
|
||
INC L
|
||
PutHLoop CALL TestFPages
|
||
LD A,(DE)
|
||
INC DE
|
||
EXX
|
||
DECODE4HEX CALL DecodeSymbol
|
||
LD (HL),A ; ᨬ¢®« ¤«ï ®â®¡à ¦¥¨ï
|
||
INC L
|
||
EXX
|
||
CALL PutHexNumb ; <20>à®æ¥¤ãà ª®¢¥àâ
|
||
INC L
|
||
INC IXL ; “¢¥«¨ç.ª®«-¢® ¢¢¥¤¥ëå ¡ ©â®¢
|
||
LD A,IXL
|
||
CP 0x04
|
||
JR Z,.PtHNx1
|
||
CP 0x08
|
||
JR Z,.PtHNx1
|
||
CP 0x0C
|
||
JR NZ,.L1
|
||
.PtHNx1 INC L
|
||
.L1 DJNZ PutHLoop
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
; <20>à®æ¥¤ãà ®ç¨á⪨ § ª®ç¨¢è¨åáï ¡ ©â®¢
|
||
FillHex 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 ¯à®¡¥«
|
||
CP 0x04
|
||
JR Z,.FlHNx1
|
||
CP 0x08
|
||
JR Z,.FlHNx1
|
||
CP 0x0C
|
||
JR NZ,.L2
|
||
.FlHNx1 INC L
|
||
.L2 DJNZ .FillE1
|
||
.FillE2 LD HL,LineBuffer
|
||
LD DE,0x0000
|
||
LD B,0x50
|
||
LD C,IXH
|
||
LD A,COLORP.PANEL + COLORI.FILES
|
||
CALL JUMPS.PrintTxtLineNumsChar
|
||
OR A
|
||
RET ; CY-¡ë« ¯®á«¥¤ïï áâப
|
||
|
||
; <20>à®æ¥¤ãà ¯à¥®¡à §®¢ ¨ï 8¡¨â®¢ëå ç¨á¥« ¢ è¥áâ ¤æ. ⥪áâ
|
||
; <20> ¢å®¤:
|
||
; HL - ¤à¥á ¡ãä¥à
|
||
; € - ¡ ©â
|
||
; <20> ¢ë室:
|
||
; ¡ãä¥à á ⥪áâ.ç¨á«®¬
|
||
PutHexNumb PUSH AF
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
CALL .L1
|
||
POP AF
|
||
.L1 AND 0x0F
|
||
ADD A,0x90
|
||
DAA
|
||
ADC A,0x40
|
||
DAA
|
||
LD (HL),A
|
||
INC L
|
||
RET
|
||
|
||
;--------------------------------------------------------------
|
||
; <20>à®æ¥¤ãàë ®¡à ¡®âª¨ View
|
||
; <20> áâப㠢¢¥àå
|
||
HLineUpMs CALL FVHLineUp
|
||
RET C
|
||
LD B,0x0A
|
||
HUpMs1 PUSH BC
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
POP BC
|
||
BIT 0,A
|
||
RET Z
|
||
HALT
|
||
DJNZ HUpMs1
|
||
HUpMs2 CALL FVHLineUp
|
||
RET C
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
BIT 0,A
|
||
RET Z
|
||
JR HUpMs2
|
||
|
||
FVHLineUp LD HL,(FileShift)
|
||
LD DE,(FileShift+2)
|
||
LD A,H ; <20>஢¥à塞 ç «® ä ©«
|
||
OR D
|
||
OR L
|
||
OR E
|
||
SCF
|
||
RET Z ; Z- ç «® ä ©«
|
||
LD BC,0x0010
|
||
OR A
|
||
SBC HL,BC
|
||
LD (FileShift),HL ; FileShift-16¡ ©â(¯à¥¤¨¤.áâப )
|
||
LD (TempShift),HL ; ‡ ¯®¬¨ ¥¬ ⥪.ᬥ饨¥
|
||
LD C,B
|
||
EX DE,HL
|
||
SBC HL,BC
|
||
LD (FileShift+2),HL
|
||
LD (TempShift+2),HL
|
||
CALL ScrollSCRdown
|
||
LD B,0x1C
|
||
CALL PutHLine ; ‘®§¤ ¥¬ ¨ ¯¥ç â ¥¬ áâபã
|
||
CALL PrintVProc
|
||
OR A
|
||
RET
|
||
|
||
; <20> áâப㠢¨§
|
||
HLineDwnMs CALL HLineDwn
|
||
RET C
|
||
LD B,0x0A
|
||
HDnMs1 PUSH BC
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
POP BC
|
||
BIT 0,A
|
||
RET Z
|
||
HALT
|
||
DJNZ HDnMs1
|
||
HDnMs2 CALL HLineDwn
|
||
RET C
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
BIT 0,A
|
||
RET Z
|
||
JR HDnMs2
|
||
|
||
HLineDwn LD HL,(FileShift)
|
||
LD BC,(FileShift+2)
|
||
LD DE,0x0190
|
||
ADD HL,DE
|
||
LD (TempShift),HL ; ‡ ¯®¬¨ ¥¬ ⥪.ᬥ饨¥
|
||
JR NC,.L1 ; <20>ਡ ¢«ï¥¬ ª ᬥ饨î áâà ¨æã
|
||
INC BC ; ¡ ©â®¢ (480¡)
|
||
.L1 LD (TempShift+2),BC
|
||
EX DE,HL
|
||
LD HL,(FileLenght)
|
||
OR A
|
||
SBC HL,DE ; <20>஢¥à塞 ª®¥æ ä ©«
|
||
EX DE,HL
|
||
LD HL,(FileLenght+2)
|
||
SBC HL,BC
|
||
RET C
|
||
JR NZ,.L2
|
||
LD A,D
|
||
OR E
|
||
SCF
|
||
RET Z ; Z - ª®¥æ
|
||
.L2 LD HL,(FileShift)
|
||
LD DE,(FileShift+2)
|
||
LD BC,0x0010
|
||
ADD HL,BC
|
||
JR NC,.L3
|
||
INC DE
|
||
.L3 LD (FileShift),HL
|
||
LD (FileShift+2),DE
|
||
CALL ScrollSCRup
|
||
LD B,0xDC
|
||
CALL PutHLine ; ‘®§¤ ¥¬ ¨ ¯¥ç â ¥¬ áâபã
|
||
CALL PrintVProc
|
||
OR A
|
||
RET
|
||
|
||
; <20> áâà ¨æã ¢¢¥àå
|
||
HPageUpMs CALL FVHPageUp
|
||
RET C
|
||
LD B,0x0A
|
||
HUpMs1p PUSH BC
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
POP BC
|
||
BIT 0,A
|
||
RET Z
|
||
HALT
|
||
DJNZ HUpMs1p
|
||
HUpMs2p CALL FVHPageUp
|
||
RET C
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
BIT 0,A
|
||
RET Z
|
||
JR HUpMs2p
|
||
|
||
FVHPageUp LD HL,(FileShift)
|
||
LD BC,(FileShift+2)
|
||
LD A,H ; <20>஢¥à塞 ç «® ä ©«
|
||
OR B
|
||
OR L
|
||
OR C
|
||
SCF
|
||
RET Z
|
||
LD DE,0x0190 ; Žâ¨¬ ¥¬ ®â ⥪.ᬥé. áâà ¨æã ¡ ©â®¢
|
||
OR A
|
||
SBC HL,DE
|
||
JR NC,.HPgUp1
|
||
LD A,B
|
||
OR C
|
||
DEC BC ; <20>஢¥à塞,çâ® ¥ ¢ë¢ «¨«¨áì §
|
||
JR NZ,.HPgUp1 ; ç «® ä ©« Z - ¢ë¢ «¨«¨áì
|
||
INC BC
|
||
LD L,C ; ’®£¤ ᬥ饨¥ = 0
|
||
LD H,B
|
||
.HPgUp1 LD (FileShift),HL
|
||
LD (FileShift+2),BC
|
||
CALL PrnHEXpage ; <20>¥ç â ¥¬ áâà ¨æã
|
||
OR A
|
||
RET
|
||
|
||
; <20> áâà ¨æã ¢¨§
|
||
HPageDwnMs CALL HPageDwn
|
||
RET C
|
||
LD B,0x0A
|
||
HDnMs1p PUSH BC
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
POP BC
|
||
BIT 0,A
|
||
RET Z
|
||
HALT
|
||
DJNZ HDnMs1p
|
||
HDnMs2p CALL HPageDwn
|
||
RET C
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
BIT 0,A
|
||
RET Z
|
||
JR HDnMs2p
|
||
|
||
HPageDwn LD HL,(FileShift)
|
||
LD BC,(FileShift+2)
|
||
LD DE,0x0190 ; <20>«îá㥬 ª ⥪.ᬥé.
|
||
ADD HL,DE ; áâà ¨æã ¡ ©â®¢
|
||
PUSH HL
|
||
JR NC,.L1
|
||
INC BC
|
||
.L1 PUSH BC
|
||
EX DE,HL
|
||
LD HL,(FileLenght) ; <20>஢¥à塞,çâ® áâà ¨æ
|
||
OR A ; ¯®á«¥¤ïï
|
||
SBC HL,DE
|
||
EX DE,HL
|
||
LD HL,(FileLenght+2)
|
||
SBC HL,BC
|
||
POP BC
|
||
POP HL
|
||
RET C ; ‘ - ¥â
|
||
JR NZ,.L2
|
||
LD A,D
|
||
OR E
|
||
SCF
|
||
RET Z ; Z - ¥â
|
||
.L2 LD (FileShift),HL
|
||
LD (FileShift+2),BC
|
||
CALL PrnHEXpage ; <20>¥ç â ¥¬ áâà ¨æã
|
||
OR A
|
||
RET
|
||
|
||
; ‚ ç «® ä ©«
|
||
HBegFile LD HL,JUMPS.WaitUnpressMouse
|
||
PUSH HL
|
||
LD HL,(FileShift)
|
||
LD BC,(FileShift+2)
|
||
LD A,H ; <20>஢¥à塞 ç «® ä ©«
|
||
OR B
|
||
OR L
|
||
OR C
|
||
RET Z ; Z - <20> ç «®
|
||
LD HL,0x0000 ; ‘¬¥é¥¨¥ = 0000
|
||
LD (FileShift),HL
|
||
LD (FileShift+2),HL
|
||
JP PrnHEXpage ; <20>¥ç â ¥¬ áâà ¨æã
|
||
|
||
; ‚ ª®¥æ ä ©«
|
||
HEndFile LD HL,JUMPS.WaitUnpressMouse
|
||
PUSH HL
|
||
LD HL,(FileShift)
|
||
LD BC,(FileShift+2)
|
||
LD DE,0x0190
|
||
ADD HL,DE
|
||
JR NC,.L1
|
||
INC BC
|
||
.L1 EX DE,HL
|
||
LD HL,(FileLenght) ; <20>஢¥à塞,çâ® ¬ë ¯®á«¥¤¥©
|
||
PUSH HL ; áâà ¨æ¥
|
||
OR A
|
||
SBC HL,DE
|
||
EX DE,HL
|
||
LD HL,(FileLenght+2)
|
||
PUSH HL
|
||
SBC HL,BC
|
||
POP BC
|
||
POP HL
|
||
RET C ; ‘ - ¢ ª®æ¥
|
||
JR NZ,.L2
|
||
LD A,D
|
||
OR E
|
||
RET Z ; Z - ¢ ª®æ¥
|
||
.L2 LD DE,0x0190
|
||
OR A
|
||
SBC HL,DE ; <20>à®áç¨âë¢ ¥¬ ᬥ饨¥ ¯®á«¥¤¥© áâà ¨æë
|
||
JR NC,.L3
|
||
DEC BC
|
||
.L3 LD A,L ; ‘¬¥é¥¨¥ ªà â® 16
|
||
AND 0x0F
|
||
JR Z,.HEnd1
|
||
LD A,L
|
||
AND 0xF0
|
||
LD L,A
|
||
LD DE,0x0010
|
||
ADD HL,DE
|
||
JR NC,.HEnd1
|
||
INC BC
|
||
.HEnd1 LD (FileShift),HL
|
||
LD (FileShift+2),BC
|
||
JP PrnHEXpage ; <20>¥ç â ¥¬ áâà ¨æã
|
||
|
||
;--------------------------------------------------------------
|
||
; <20>à®æ¥¤ãà ¢¢®¤ ®¢®£® 㪠§ ⥫ï á¬¥é¥¨ï ¢ ä ©«¥
|
||
HGoTo LD HL,(FileLenght)
|
||
LD DE,(FileLenght+2)
|
||
LD A,H ; <20>஢¥à塞,çâ® ¤«¨
|
||
OR D ; ä ©« ¡®«ìè¥ 16 ¡ ©â
|
||
OR E
|
||
JR NZ,HGoToOk
|
||
LD A,L
|
||
CP 0x11
|
||
RET C ; ¬¥ìè¥ 16¡ ©â
|
||
HGoToOk LD HL,NewShift ; <20>ãä¥à ¤«ï ¢¢®¤ ®¢®£® 㪠§.
|
||
SUB A
|
||
LD (CursPos+1),A ; <20>®§¨æ¨ï ¢¢®¤ ¢ ¡ãä¥à¥
|
||
INC A
|
||
LD (BuffFlg),A
|
||
LD A,(FileShift+3)
|
||
CALL PutHexNumb ; ‡ ®á¨¬ ¢ ¡ãä¥à ⥪ã饥 ᬥé.
|
||
LD A,(FileShift+2) ; ¢ ⥪á⮢®¬ ¢¨¤¥
|
||
CALL PutHexNumb
|
||
LD A,(FileShift+1)
|
||
CALL PutHexNumb
|
||
LD A,(FileShift)
|
||
CALL PutHexNumb
|
||
; ‚뢮¤¨¬ íªà ¡ãä¥à ¨
|
||
HGoToRet CALL PrintHGT ; ¯¥ç â ¥¬ ªãàá®à
|
||
HGoToLp HALT ; ަ¨¤ ¥¬ ¯à¥àë¢ ¨¥
|
||
CALL ChangeCurs ; ¯à®¢¥àï¬ á¬¥ã ªãàá®à
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
BIT 0,A
|
||
JP NZ,HGTescape
|
||
SPDSS DSSF.SCANKEY ; ަ¨¤ ¥¬ ¦ â¨ï ª« ¢¨è¨
|
||
JR Z,HGoToLp ; Z - ¥ ¦ â
|
||
LD A,B
|
||
AND 0x3F
|
||
JR NZ,HGoToLp
|
||
LD A,E
|
||
OR A
|
||
JR Z,HGoToSys ; A=0 á¨áâ.ª« ¢¨è
|
||
CP 0x0D
|
||
JP Z,HGTenter ; ¦ â Enter
|
||
CP 0x08
|
||
JR Z,HGTdelete ; ¦ â BackSpace
|
||
CP 0x1B
|
||
JP Z,HGTescape ; ¦ â Esc
|
||
CP 0x20
|
||
JR C,HGoToLp ; ª®¤<0x20 ¬ ¥ ¯®¤å®¤¨â
|
||
LD C,A ; á®åà. ASCII ª®¤
|
||
LD A,0x00
|
||
BuffFlg EQU $-1
|
||
OR A
|
||
CALL NZ,ClearBuff
|
||
CursPos LD A,0x00 ; ⥪.¯®§¨æ¨ï ¯¥ç ⨠¢ ¡ãä¥à¥
|
||
LD B,A ; á®åà.⥪.¯®§.
|
||
LD HL,NewShift ; ‘¬¥é.®â ç « ¡ãä¥à
|
||
ADD A,L
|
||
LD L,A
|
||
JR NC,.L1
|
||
INC H
|
||
.L1 LD (HL),C ; ‡ ®á¨¬ ª®¤ ¢ ¡ãä¥à
|
||
LD A,B ; ⥪.¯®§.
|
||
CP 0x07 ; <20>®§¨æ¨ï ¢ ¡ãä¥à¥ (7-¯®á«¥¤ïï)
|
||
JR Z,HGoToRet ; ¯¥ç â ¥¬ áâப㠨 ªãàá®à
|
||
INC A ; á«¥¤.¯®§¨æ¨ï
|
||
LD (CursPos+1),A
|
||
JR HGoToRet ; ¯¥ç â ¥¬ áâப㠨 ªãàá®à
|
||
|
||
ClearBuff LD HL,NewShift
|
||
LD B,0x08
|
||
LD A,0x20
|
||
.L1 LD (HL),A
|
||
INC HL
|
||
DJNZ .L1
|
||
SUB A
|
||
LD (BuffFlg),A
|
||
RET
|
||
|
||
; ‡ ¡®©
|
||
HGTdelete SUB A
|
||
LD (BuffFlg),A
|
||
LD A,(CursPos+1) ; ’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
|
||
OR A
|
||
JR Z,HGoToLp ; 0 - ¢ë室¨¬
|
||
DEC A
|
||
LD (CursPos+1),A ; ¯à¥¤¨¤.¯®§¨æ¨ï
|
||
LD HL,NewShift
|
||
ADD A,L ; ᬥé.¢ ¡ãä¥à¥
|
||
LD L,A
|
||
JR NC,.L1
|
||
INC H
|
||
.L1 LD (HL)," " ; ‡ ¡¨¢ ¥¬ ¯à®¡¥«®¬
|
||
JR HGoToRet
|
||
|
||
; á¨á⥬ ï ª« ¢¨è
|
||
HGoToSys LD A,D
|
||
CP 0x54 ; <-
|
||
JR Z,HGTleft
|
||
CP 0x56 ; ->
|
||
JR Z,HGTright
|
||
JR HGoToLp
|
||
|
||
; Šãàá®à ¢«¥¢®
|
||
HGTleft SUB A
|
||
LD (BuffFlg),A
|
||
LD A,(CursPos+1) ; ’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
|
||
OR A
|
||
JP Z,HGoToLp ; 0 - ¢ë室¨¬
|
||
DEC A
|
||
LD (CursPos+1),A ; “¬¥ìè.¯®§.
|
||
JP HGoToRet
|
||
|
||
HGTright SUB A
|
||
LD (BuffFlg),A
|
||
LD A,(CursPos+1) ; ’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
|
||
CP 0x07
|
||
JP Z,HGoToLp ; 7 - ¯®á«¥¤ïï
|
||
INC A
|
||
LD (CursPos+1),A ; “¢¥«¨ç.¯®§.
|
||
JP HGoToRet
|
||
|
||
; <20>à®æ¥¤ãà ¢ë¢®¤ áâப¨ ¨ ªãàá®à
|
||
PrintHGT LD HL,NewShift
|
||
LD DE,0x0008
|
||
LD BC,0x081C
|
||
LD A,COLORP.PANEL + COLORI.FILES
|
||
CALL JUMPS.PrintTxtLineNumsChar
|
||
LD A,(CursPos+1) ; <20>®§¨æ¨ï ¢ë¢®¤ ªãàá®à
|
||
INC A
|
||
LD L,A
|
||
LD H,0x00
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
LD HL,TCursor
|
||
LD (HL),0xAB;"<"
|
||
LD BC,0x011C
|
||
LD A,COLORP.PANEL + COLORI.FILES
|
||
CALL JUMPS.PrintTxtLineNumsChar
|
||
LD A,0x01 ; <20>®¬¥à ¢ë¢¥¤¥®£® ªãàá®à
|
||
LD (CurCurs),A
|
||
LD A,0x06 ; ަ¨¤ ¨¥ ¤«ï á¬¥ë ªãàá®à
|
||
LD (CurWait),A
|
||
RET
|
||
|
||
; <20>à®æ¥¤ãà á¬¥ë ªãàá®à
|
||
ChangeCurs LD A,0x00 ; ‡ ¤¥à¦ª ¬¥¦¤ã ᬥ®© ªãàá®à
|
||
CurWait EQU $-1
|
||
DEC A
|
||
LD (CurWait),A
|
||
RET NZ ; ¥é¥ ¥ ¢à¥¬ï
|
||
LD A,(CursPos+1)
|
||
INC A
|
||
LD L,A
|
||
LD H,0x00 ; ’¥ª.§ ª®¬¥áâ®
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
LD HL,NewShift ; ‘¬¥é.¢ ¡ãä¥à¥
|
||
LD A,(CursPos+1)
|
||
ADD A,L
|
||
LD L,A
|
||
JR NC,.L2
|
||
INC H
|
||
.L2 LD A,0x00 ; <20>®¬¥à ⥪ã饣® ªãàá®à
|
||
CurCurs EQU $-1
|
||
XOR 0x01 ; Œ¥ï¥¬ ªãàá®à
|
||
LD (CurCurs),A
|
||
LD A,(HL)
|
||
JR Z,.L1 ; <20>¥ç â ¥¬
|
||
LD A,0xAB;"<"
|
||
.L1 LD HL,TCursor
|
||
LD (HL),A
|
||
LD BC,0x011C
|
||
LD A,COLORP.PANEL + COLORI.FILES
|
||
CALL JUMPS.PrintTxtLineNumsChar
|
||
LD A,0x0C ; ަ¨¤ ¨¥ ¤«ï á¬¥ë ªãàá®à
|
||
LD (CurWait),A
|
||
RET
|
||
|
||
TCursor DEFB " "
|
||
|
||
; Š« ¢¨è ENTER
|
||
HGTenter SUB A ; <20>ਠ®è¨¡ª¥ ¢¥à¥¬áï á ªãàá®à®¬
|
||
LD (CursPos+1),A ; ¢ ã«¥¢®© ¯®§¨æ¨¨
|
||
LD BC,NewShift ; <20>ãä¥à áâப¨
|
||
CALL GetHexNum32 ; <20>¥à¥¢®¤¨¬ ⥪áâ ¢ 32¡¨â ç¨á«®
|
||
JP C,HGoToRet ; CY - á¨â ªá.®è¨¡ª
|
||
LD C,E
|
||
LD B,D
|
||
LD A,L ; €¤à¥á ªà âë© 16
|
||
AND 0xF0
|
||
LD L,A
|
||
EX DE,HL ; ‘¬¥é.¢ BC+DE
|
||
LD HL,(FileLenght) ; <20>஢¥à塞,ç⮠ᬥ饨¥ ¢
|
||
OR A ; ¯à¥¤¥« å ä ©«
|
||
SBC HL,DE
|
||
LD HL,(FileLenght+2)
|
||
SBC HL,BC
|
||
JR C,HGTent ; CY-§ ¯à¥¤¥« ¬¨
|
||
JR NZ,HGTent1 ; NZ-¢ ¯à¥¤¥« å
|
||
LD A,D
|
||
OR E
|
||
JR NZ,HGTent1 ; NZ-¢ ¯à¥¤¥« å
|
||
HGTent LD HL,(FileLenght)
|
||
LD BC,0x0010
|
||
OR A
|
||
SBC HL,BC ; ᬥé.=¯®á«¥¤ïï áâப ä ©« 16 ¡ ©â
|
||
EX DE,HL
|
||
LD HL,(FileLenght+2)
|
||
JR NC,.L1
|
||
DEC HL
|
||
.L1 LD C,L
|
||
LD B,H
|
||
HGTent1 LD (FileShift),DE
|
||
LD (FileShift+2),BC
|
||
JP PrnHEXpage ; <20>¥ç â ¥¬ áâà ¨æã
|
||
|
||
; <20> ¦ â Escape
|
||
HGTescape LD HL,NewShift ; <20>ãä¥à áâப¨
|
||
PUSH HL
|
||
LD A,(FileShift+3) ; ‡ ®á¨¬ ⥪.ᬥ饨¥
|
||
CALL PutHexNumb
|
||
LD A,(FileShift+2)
|
||
CALL PutHexNumb
|
||
LD A,(FileShift+1)
|
||
CALL PutHexNumb
|
||
LD A,(FileShift)
|
||
CALL PutHexNumb
|
||
POP HL
|
||
LD DE,0x0008
|
||
LD BC,0x081C
|
||
LD A,COLORP.PANEL + COLORI.FILES
|
||
CALL JUMPS.PrintTxtLineNumsChar
|
||
JP JUMPS.WaitUnpressMouse ; ‚ë室¨¬
|
||
|
||
NewShift DEFB " ",0
|
||
|
||
; <20>à®æ¥¤ãà ª®¢¥àâ¨à®¢ ¨ï 32¡¨â®¢®£® è¥áâ.⥪á⮢®£® ç¨á«
|
||
; <20> ¢å®¤:
|
||
; BC - €¤à¥á ¡ãä¥à á ⥪á⮬ (0-ª®¥æ ¡ãä¥à )
|
||
; <20> ¢ë室:
|
||
; DEHL - —¨á«® 32¡¨â
|
||
; CY - á¨â ªá¨ç¥áª ï ®è¨¡ª
|
||
GetHexNum32 LD HL,0x0000
|
||
LD E,L
|
||
LD D,H
|
||
GetHNlp LD A,(BC)
|
||
INC BC
|
||
OR A
|
||
RET Z
|
||
CP " "
|
||
JR Z,GetHNlp
|
||
CP 0x61
|
||
JR C,.L1
|
||
SUB 0x20
|
||
.L1 CP 0x30
|
||
RET C
|
||
CP 0x47
|
||
CCF
|
||
RET C
|
||
SUB 0x30
|
||
CP 0x0A
|
||
JR C,GetHNum
|
||
SUB 0x07
|
||
CP 0x0A
|
||
RET C
|
||
GetHNum ADD HL,HL
|
||
EX DE,HL
|
||
ADC HL,HL
|
||
EX DE,HL
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
ADC HL,HL
|
||
EX DE,HL
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
ADC HL,HL
|
||
EX DE,HL
|
||
ADD HL,HL
|
||
EX DE,HL
|
||
ADC HL,HL
|
||
EX DE,HL
|
||
OR L
|
||
LD L,A
|
||
JR GetHNlp
|