mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
1208 lines
28 KiB
NASM
Executable File
1208 lines
28 KiB
NASM
Executable File
; ‘®¤¥à¦¨â ®¡ê¥ªâë ~Input Line~ ¨ ~Inp Line~ (¢¢®¤ ¤ âë/¢à¥¬¥¨ ä ©«®¢)
|
||
;
|
||
|
||
|
||
|
||
|
||
|
||
;=====================================================================
|
||
; <20>à®à¨á®¢ª ®¡ê¥ªâ
|
||
; object ~Input Line~ (¨¬¥¥â 䮪ãá)
|
||
; Input: HL-®¯¨á â¥«ì ®¡ê¥ªâ
|
||
; Format table (¤ ï â ¡«¨æ ¢ DialTab):
|
||
; +0 - ®¬¥à ®¡ê¥ªâ ~Input Line~
|
||
; +1 - Xo «¥¢ ï ¯®§¨æ¨ï ®¡ê¥ªâ
|
||
; +2 - Xi ¯à ¢ ï ¯®§¨æ¨ï ®¡ê¥ªâ
|
||
; +3 - Y ¯®§¨æ¨ï ®¡ê¥ªâ
|
||
; +4 - Xi position text (¯®§¨æ¨ï ¨¬¥¨ ª« áâ¥à ?)
|
||
; +5 - Xo «¥¢ ï ¯®§¨æ¨ï ¯®«ï ¢¢®¤
|
||
; +6 - ;Hot-keys (¨¬¥¨ ª« áâ¥à )
|
||
; +7 - ª®â¥ªáâ
|
||
; +8,9 - ¤à¥á áâàãªâãàë áâப¨ ¢¢®¤
|
||
;---------------------------------------------------------------------
|
||
; ”®à¬ â ®¯¨á ⥫ï:
|
||
; db InputLine ; ®¬¥à ®¡ê¥ªâ
|
||
; dw 0503h ; Yo,Xo
|
||
; db 10 ; è¨à¨ ¯®«ï ¢¢®¤
|
||
; db 1 ; ª®â¥ªáâ
|
||
; dw InputBuffer ; áâàãªâãà áâப¨ ¢¢®¤
|
||
;=====================================================================
|
||
PutInputLine:
|
||
push iy ; iy=DialTab+5
|
||
inc iy ; ¯à®©â¨ ï祩ªã ¤«¨ë ¤ ®© â ¡«¨æë
|
||
ld (iy+0),a ;+0 ®¬¥à ®¡ê¥ªâ "Input Line"
|
||
ld a,(hl) ; X pos
|
||
inc hl
|
||
ld c,a
|
||
add a,(ix+0) ; X ¯®«®¦. ®â ç « íªà
|
||
ld (iy+1),a ;+1 Xo
|
||
ld (ix+4),a ; X temp coord
|
||
ld a,(hl) ; Y pos
|
||
inc hl
|
||
ld b,a
|
||
add a,(ix+1) ; Pos Y ®â ç « íªà
|
||
ld (iy+3),a ;+3 Yo ¯®§¨æ¨ï ªãàá®à
|
||
call GetPutA
|
||
ld a,(ix+4) ; «¥¢ë© ªà © ¯®«ï ¢¢®¤ (íªà . ª®®à¤¨ âë)
|
||
ld (iy+4),a ; Xi ¯à ¢ ï ¯®§¨æ¨ï ç « ⥪áâ
|
||
ld (iy+5),a ;+5 Xi ¯à ¢ ï ¯®§¨æ¨ï ªãàá®à
|
||
ld (pInputAddr+1),de ; ¤à¥á ¢ íªà . ¡ãä¥à¥
|
||
ld a,(hl) ; è¨à¨ ¯®«ï ¢¢®¤ (¨§ ®¯¨á ⥫ï)
|
||
ld (pInputWidth+1),a
|
||
inc hl
|
||
ld a,(hl) ; ª®â¥ªáâ
|
||
inc hl
|
||
ld (iy+7),a ;+7
|
||
ld e,(hl)
|
||
inc hl
|
||
ld d,(hl)
|
||
ld (iy+8),e ;+8 de=áâàãªâãà áâப¨ ¢¢®¤
|
||
ld (iy+9),d ;+9
|
||
inc hl
|
||
inc de ; ¯à®©â¨ ï祩ªã "+0"
|
||
; ˆ¨æ¨ «¨§ æ¨ï áâàãªâãàë áâப¨ ¢¢®¤
|
||
push hl
|
||
ld hl,4 ; ᬥé. ¤® ¡ãä¥à áâப¨
|
||
add hl,de
|
||
xor a
|
||
ld c,a
|
||
ld b,a
|
||
cpir ; ©â¨ ª®¥æ áâப¨
|
||
ld a,c
|
||
cpl
|
||
ld b,a ; ¤«¨ áâப¨
|
||
ld c,0 ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
ld a,(pInputWidth+1) ; è¨à¨ ¯®«ï ¢¢®¤
|
||
sub b ; è¨à¨ ¯®«ï - ¤«¨ áâப¨
|
||
jr nc,pInputLine1 ; áâப ª®à®ç¥ ¯®«ï । ªâ¨à®¢ ¨ï
|
||
neg
|
||
inc a
|
||
ld c,a ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
ld a,(pInputWidth+1) ; è¨à¨ ¯®«ï ¢¢®¤
|
||
dec a
|
||
jr $+3
|
||
pInputLine1:
|
||
ld a,b
|
||
pop hl
|
||
ex de,hl
|
||
ld (hl),1 ;+1 ä« £=1 ReadyString
|
||
inc hl
|
||
ld (hl),a ;+2 X ¯®§¨æ¨ï ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
inc hl
|
||
ld (hl),c ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
inc hl
|
||
ld (hl),b ;+4 ª®«-¢® ¢¢¥¤. ᨬ¢®«®¢
|
||
inc hl
|
||
ex de,hl
|
||
push hl
|
||
add a,(iy+5) ; X ¯®§¨æ¨ï ªãàá®à
|
||
ld l,a
|
||
ld h,(iy+3) ; Y ¯®§¨æ¨ï ªãàá®à
|
||
ld (CursorPos),hl ; Y/X ¯®§¨æ¨ï ªãàá®à
|
||
ld b,0
|
||
ex de,hl
|
||
add hl,bc ; de=®áâ ⮪ ¢¨¤¨¬®© áâப¨
|
||
ex de,hl
|
||
; ¯¥à¥ª ç âì ¤ ë¥ ¨§ ¡ãä¥à áâப¨ ¢ íªà . ¡ãä¥à
|
||
pInputAddr:
|
||
ld hl,0 ; ¤à¥á ¢ íªà . ¡ãä¥à¥
|
||
ld a,(color_array+33) ; 梥â áâப¨ ¢¢®¤
|
||
and 0F0h
|
||
or 08h
|
||
ld c,a ; 梥⠥ । ªâ. áâப¨ ¢¢®¤
|
||
pInputWidth:
|
||
ld b,1 ; è¨à¨ ¯®«ï ¢¢®¤
|
||
ld a,(de)
|
||
inc de
|
||
ld (hl),a
|
||
inc hl
|
||
ld (hl),c ; 梥â áâப¨
|
||
inc hl
|
||
inc (ix+4) ; X ++¯à ¢ë© ªà © ¯®«ï ¢¢®¤ (íªà . ª®®à¤¨ âë)
|
||
djnz $-9
|
||
pInputLine2: ; ¨§ "PutInpLine"
|
||
pop hl
|
||
ld a,(ix+4) ; X ¯à ¢ë© ªà © ¯®«ï ¢¢®¤ (íªà . ª®®à¤¨ âë)
|
||
ld (iy+2),a ; Xi ¯à ¢ ï ¯®§¨æ¨ï ®¡ê¥ªâ
|
||
ld bc,10 ; à §¬¥à â ¡«¨æë
|
||
add iy,bc ; IY-next element
|
||
; á®åà. à §¬¥à â ¡«¨æë ¢ ’ ¡«¨æ¥ ®¡ê¥ªâ®¢
|
||
push iy
|
||
exx
|
||
pop hl
|
||
pop de ; de=iy
|
||
and a
|
||
sbc hl,de ; ¤«¨ â ¡«¨æë "Input Line"
|
||
ld a,l
|
||
ld (de),a ; DialTab+5
|
||
exx
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
;=====================================================================
|
||
;
|
||
; Ž¡à ¡®â稪 ᮡë⨩ ®¡ê¥ªâ®¢ "Input Line"
|
||
;
|
||
;=====================================================================
|
||
step_scroll equ 1 ; è £ áªà®««¨£
|
||
|
||
|
||
EvInputLine:
|
||
ld hl,what ; ᯨ᮪ ᮡë⨩
|
||
ld a,(hl)
|
||
inc hl
|
||
cp evMouseFr
|
||
jr z,EvInputMouse
|
||
cp evKeyboard
|
||
jr z,EvInputKeys
|
||
cp evCombKey
|
||
jp z,EvInputComb
|
||
ret
|
||
|
||
; ‘®¡ë⨥ - Œëèª
|
||
EvInputMouse:
|
||
LD E,(HL) ; X coord
|
||
INC HL
|
||
LD D,(HL) ; Y coord
|
||
LD A,D
|
||
CP (IX+4) ; Y pos input line
|
||
RET NZ
|
||
LD A,E
|
||
BIT 7,(IX+2)
|
||
JR NZ,$+6
|
||
CP (IX+2) ; Xo pos
|
||
RET C
|
||
BIT 7,(IX+3)
|
||
RET NZ
|
||
CP (IX+3) ; Xi pos
|
||
RET NC
|
||
BIT 7,(IX+1) ; Sel or nosel
|
||
JR Z,SetInputLine ; ¢ë¤¥«¨âì, ®¡ê¥ªâ ¥ ¢ 䮪ãá¥
|
||
BIT 7,(IX+6)
|
||
JR NZ,$+6
|
||
CP (IX+6) ; Xo input line
|
||
RET C
|
||
SUB (IX+6) ; Shift from begin
|
||
LD C,A
|
||
LD L,(IX+9) ; áâàãªâãà ¡ãä¥à
|
||
LD H,(IX+10)
|
||
INC HL
|
||
LD (HL),0 ;+1 ãáâ. ä« £ "¥ áâ¨à âì áâபã"
|
||
INC HL
|
||
CP (HL) ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
RET Z
|
||
;PUSH HL
|
||
INC HL
|
||
ADD A,(HL) ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
INC HL
|
||
CP (HL) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
LD A,(HL)
|
||
;POP HL
|
||
dec hl;
|
||
dec hl;
|
||
JR Z,EIM
|
||
JR C,EIM
|
||
INC HL
|
||
SUB (HL) ;+3
|
||
DEC HL
|
||
LD C,A
|
||
EIM: ld (hl),c ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
dec hl
|
||
dec hl
|
||
push iy
|
||
push hl
|
||
pop iy
|
||
call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
pop iy
|
||
jr InputLineExt
|
||
|
||
; ‘®¡ë⨥ - ®¡ëç ï ª« ¢¨è
|
||
EvInputKeys:
|
||
bit 7,(ix+1) ; Sel or nosel
|
||
jr nz,InputLineWork ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥
|
||
ld a,(hl) ;+1 what
|
||
cp 9 ; Tab
|
||
ret nz
|
||
; 䮪ãá ®¡ê¥ªâ "Input Line"
|
||
SetInputLine:
|
||
call MoveObj ; Select "Input line"
|
||
call ResDialInv ; Reset previos object
|
||
ld ix,DialTab+5 ; ’ ¡«¨æ ®¡ê¥ªâ®¢
|
||
push iy
|
||
ld l,(ix+9) ; hl=áâàãªâãà áâப¨ ¢¢®¤ "Input Line"
|
||
ld h,(ix+10)
|
||
push hl
|
||
pop iy
|
||
inc hl
|
||
ld (hl),1 ;+1 ä« £ ReadyString (1=®ç¨áâ¨âì áâப㠯ਠ¢¢®¤¥)
|
||
ld a,(color_array+33) ; 梥â áâப¨ ¢¢®¤
|
||
and 0F0h
|
||
or 08h
|
||
ld (ColorInLn+1),a ; 梥⠥ । ªâ. áâப¨
|
||
call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
ld a,(color_array+33)
|
||
ld (ColorInLn+1),a ; ¢®ááâ. 梥â
|
||
pop iy
|
||
call PILCurs ; ¢ª«. ªãàá®à
|
||
ei
|
||
InputLineExt:
|
||
ld hl,what ; ¯®«¥ ᮡë⨩
|
||
ld (hl),evNothing
|
||
jp get_fire
|
||
|
||
; <20> ¡®â ¢ áâப¥ । ªâ¨à®¢ ¨ï
|
||
InputLineWork:
|
||
LD A,(HL) ; what+1 ª®¤ ª« ¢¨è¨
|
||
CP 8 ; "§ ¡®©"
|
||
JR Z,$+5
|
||
CP " "
|
||
RET C
|
||
PUSH IY
|
||
LD DE,InputLineWex
|
||
PUSH DE
|
||
LD L,(IX+9) ; hl=áâàãªâãà áâப¨ ¢¢®¤
|
||
LD H,(IX+10)
|
||
PUSH HL
|
||
POP IY
|
||
ex af,af'
|
||
res 7,(iy+1) ;+1 ä« £ ReadyString
|
||
ld a,(D0642) ; ä« £¨ ª« ¢ë
|
||
bit 1,a ; ¡¨â Ins
|
||
ld a,1 ; ¢áâ ¢ª
|
||
jr nz,$+3
|
||
dec a ; § ¬¥
|
||
and 1
|
||
rrca ; ¢¯à ¢® (¬«.¡¨â -> ¯¥à¥®á)
|
||
or (iy+1)
|
||
ld (iy+1),a
|
||
ex af,af'
|
||
CP 8 ; "§ ¡®©"
|
||
JP Z,BackDelete
|
||
EX AF,AF'
|
||
BIT 0,(IY+1) ;+1 ä« £ ReadyString
|
||
CALL NZ,ClearIL ; ®ç¨áâ¨âì ¢áî áâப㠨 ¥¥ ¡ãä¥à
|
||
LD A,(IY+4) ; InputSymb
|
||
CP (IY+0) ; Max len
|
||
JR NZ,InLineWork
|
||
LD A,(IY+2)
|
||
ADD A,(IY+3)
|
||
CP (IY+0)
|
||
RET NC
|
||
BIT 7,(IY+1)
|
||
RET NZ
|
||
InLineWork:
|
||
LD A,(IY+4)
|
||
SUB (IY+3)
|
||
SUB (IY+2)
|
||
JR Z,NoInsert
|
||
DEC (IY+4)
|
||
BIT 7,(IY+1)
|
||
JR Z,NoInsert
|
||
INC (IY+4)
|
||
; ¢¢®¤ ¢ á¥à¥¤¨ã ⥪áâ (¢áâ ¢ª )
|
||
LD C,A
|
||
LD B,0
|
||
LD L,(IX+9)
|
||
LD H,(IX+10)
|
||
LD A,(IY+4)
|
||
ADD A,L
|
||
LD L,A
|
||
JR NC,$+3
|
||
INC H
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
LD D,H
|
||
LD E,L
|
||
DEC HL
|
||
LDDR
|
||
NoInsert:
|
||
LD L,(IX+9)
|
||
LD H,(IX+10)
|
||
LD A,(IY+2)
|
||
ADD A,(IY+3)
|
||
ADD A,L
|
||
LD L,A
|
||
JR NC,$+3
|
||
INC H
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
EX AF,AF'
|
||
LD (HL),A
|
||
INC (IY+4)
|
||
INC (IY+2)
|
||
LD A,(IX+3)
|
||
SUB (IX+6)
|
||
CP (IY+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
CALL Z,OutIL ; ªãàá®à § ¯®«¥¬ ¢¢®¤
|
||
CALL PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
POP DE
|
||
InputLineWex:
|
||
LD HL,what ; ¯®«¥ ᮡë⨩
|
||
LD (HL),evNothing
|
||
POP IY
|
||
RET
|
||
|
||
; Šãàá®à § ¯®«¥¬ ¢¢®¤
|
||
OutIL: ld a,(iy+3)
|
||
add a,step_scroll ; è £ áªà®««¨£
|
||
ld (iy+3),a
|
||
ld a,(iy+2)
|
||
sub step_scroll ; è £ áªà®««¨£
|
||
ld (iy+2),a
|
||
ret
|
||
|
||
; Žç¨áâ¨âì । ªâ. áâபã
|
||
ClearIL:xor a
|
||
ld b,(iy+0) ;+0 ¤«¨ ¡ãä¥à । ªâ. áâப¨
|
||
ld l,(ix+9) ; hl=áâàãªâãà áâப¨ ¢¢®¤
|
||
ld h,(ix+10)
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl ;+5 ¡ãä¥à । ªâ. áâப¨
|
||
ld (hl),a
|
||
djnz $-2
|
||
ld (iy+2),a ;+2 X ¯®§¨æ¨ï ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
ld (iy+3),a ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
ld (iy+4),a ;+4 á¡à. ç¨á«® ¢¢¥¤¥ëå ᨬ¢®«®¢
|
||
res 0,(iy+1) ;+1 á¡à. ä« £ ReadyString
|
||
ret
|
||
|
||
; ‘®¡ë⨥ - ªãàá. ª« ¢¨è¨ ¨«¨ ª®¬¡¨ 樨
|
||
EvInputComb:
|
||
bit 7,(ix+1) ; sel or nosel
|
||
jr nz,EvInputComb1 ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥
|
||
ld b,(hl) ;+1 what
|
||
inc hl
|
||
ld a,(hl) ;+2 what
|
||
cp 56h ; ªãàá®à ¢¯à ¢®
|
||
jp z,SetInputLine
|
||
push ix
|
||
ld e,(ix+0) ; à §¬¥à â ¡«¨æë "Input Line"
|
||
ld d,0
|
||
add ix,de
|
||
bit 7,(ix+0)
|
||
pop ix
|
||
ret z ; ¥é¥ ¥ ª®¥æ ®¡ê¥ªâ®¢
|
||
cp 54h ; ªãàá®à ¢«¥¢®
|
||
jp z,SetInputLine
|
||
ld a,b
|
||
and 00111111b ; ¡¨âë Ctrl, Alt
|
||
ret nz
|
||
ld a,(hl) ;+2 what
|
||
cp 15+80h ; Tab ᪥-ª®¤+80h
|
||
ret nz
|
||
jp SetInputLine ; Shift+Tab, ¯à¥¤ë¤ã騩 ®¡ê¥ªâ
|
||
;
|
||
EvInputComb1:
|
||
push iy
|
||
inc hl
|
||
ld a,(hl) ;+2 what
|
||
ld l,(ix+9) ; Address buffer
|
||
ld h,(ix+10)
|
||
ld de,InputLineWex
|
||
push de
|
||
push hl
|
||
pop iy
|
||
cp 54h ; ªãàá®à ¢«¥¢®
|
||
jr z,InputLeft
|
||
cp 56h ; ªãàá®à ¢¯à ¢®
|
||
jr z,InputRight
|
||
cp 4Fh ; Del 㤠«¨âì ᨬ¢®« ¢ ⥪. ¯®§¨æ¨¨
|
||
jp z,InputDel
|
||
cp 57h ; Home ¢ ç «® áâப¨
|
||
jp z,InputHome
|
||
cp 51h ; End ¢ ª®¥æ áâப¨
|
||
jp z,InputEnd
|
||
pop de
|
||
pop iy
|
||
ret
|
||
|
||
; Šãàá®à ¢«¥¢® ®¤® ¬¥áâ®
|
||
InputLeft:
|
||
ld a,(iy+2)
|
||
dec a
|
||
jp p,InLeft
|
||
ld a,(iy+3)
|
||
sub step_scroll ; è £ áªà®««¨£
|
||
ret c ; ªãàá®à ¢ ªà ©¥¬ «¥¢®¬ ¯®«®¦.
|
||
ld (iy+3),a ; X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
||
ld a,(iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
add a,step_scroll-1 ; è £ áªà®««¨£
|
||
InLeft: ld (iy+2),a
|
||
call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
res 0,(iy+1) ;+1 ReadyString á¡à.ä« £ "áâ¥à¥âì áâபã"
|
||
ret
|
||
|
||
; Šãàá®à ¢¯à ¢® ®¤® ¬¥áâ®
|
||
InputRight:
|
||
ld a,(iy+2)
|
||
add a,(iy+3)
|
||
cp (iy+4)
|
||
jr z,InputRight2 ; ¤«ï "ᬥ¨âì æ¢¥â áâப¨"
|
||
ld a,(ix+3)
|
||
sub (ix+6)
|
||
ld b,a
|
||
ld a,(iy+2)
|
||
inc a
|
||
cp b
|
||
jr nz,InRight
|
||
ld a,(iy+3) ; X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
||
add a,step_scroll ; è £ áªà®««¨£
|
||
ld (iy+3),a
|
||
ld a,(iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
sub step_scroll-1 ; è £ áªà®««¨£
|
||
InRight:ld (iy+2),a
|
||
InputRight2:
|
||
call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
res 0,(iy+1) ;+1 ReadyString á¡à.ä« £ "áâ¥à¥âì áâபã"
|
||
ret
|
||
|
||
; ‡ ¡®© - 㤠«¨âì ᨬ¢®« «¥¢¥¥ ªãàá®à
|
||
BackDelete:
|
||
LD A,(IY+2)
|
||
OR A
|
||
JR NZ,BackDelete1
|
||
LD A,(IY+3)
|
||
SUB step_scroll ; è £ áªà®««¨£
|
||
RET C
|
||
LD (IY+3),A
|
||
LD A,(IY+2)
|
||
ADD A,step_scroll ; è £ áªà®««¨£
|
||
LD (IY+2),A
|
||
BackDelete1:
|
||
LD L,(IX+9)
|
||
LD H,(IX+10)
|
||
LD A,(IY+2)
|
||
ADD A,(IY+3)
|
||
ADD A,L
|
||
LD L,A
|
||
JR NC,$+3
|
||
INC H
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
LD D,H
|
||
LD E,L
|
||
DEC DE
|
||
LD A,(IY+4)
|
||
SUB (IY+3)
|
||
SUB (IY+2)
|
||
jr z,$+7
|
||
LD C,A
|
||
LD B,0
|
||
LDIR
|
||
xor a
|
||
ld (de),a
|
||
DEC (IY+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
DEC (IY+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
CALL PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
RES 0,(IY+1) ;+1 ReadyString á¡à.ä« £ "áâ¥à¥âì áâபã"
|
||
RET
|
||
|
||
; Delete - 㤠«¨âì ᨬ¢®« ¢ ⥪. ¯®§¨æ¨¨
|
||
InputDel:
|
||
LD L,(IX+9)
|
||
LD H,(IX+10)
|
||
LD A,(IY+2)
|
||
INC A
|
||
ADD A,(IY+3)
|
||
ADD A,L
|
||
LD L,A
|
||
JR NC,$+3
|
||
INC H
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
LD D,H
|
||
LD E,L
|
||
DEC DE
|
||
LD A,(IY+4)
|
||
SUB (IY+3)
|
||
SUB (IY+2)
|
||
RET Z
|
||
LD C,A
|
||
LD B,0
|
||
LDIR
|
||
SUB A
|
||
LD (DE),A
|
||
DEC (IY+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
CALL PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
RES 0,(IY+1) ;+1 ReadyString á¡à.ä« £ "áâ¥à¥âì áâபã"
|
||
RET
|
||
|
||
; Home - ¢ ç «® áâப¨
|
||
InputHome:
|
||
ld a,(iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
add a,(iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
ret z
|
||
xor a
|
||
ld (iy+2),a ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
ld (iy+3),a ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
res 0,(iy+1) ;+1 ReadyString á¡à.ä« £ "áâ¥à¥âì áâபã"
|
||
ret
|
||
|
||
; End - ¢ ª®¥æ áâப¨
|
||
InputEnd:
|
||
ld a,(iy+4)
|
||
sub (iy+3)
|
||
cp (iy+2)
|
||
jr z,InEnd1 ; ¤«ï "ᬥ¨âì æ¢¥â áâப¨"
|
||
add a,(iy+3)
|
||
ld c,a
|
||
ld (iy+3),0
|
||
ld a,(ix+3)
|
||
sub (ix+6)
|
||
sub c
|
||
jr z,$+6
|
||
jr nc,InEndNIL
|
||
neg
|
||
InEndLp:ld c,a
|
||
ld a,(iy+3) ; X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
||
add a,step_scroll ; è £ áªà®««¨£
|
||
ld (iy+3),a
|
||
ld a,c
|
||
sub step_scroll ; è £ áªà®««¨£
|
||
jr nc,InEndLp
|
||
InEndNIL:
|
||
ld a,(iy+4)
|
||
sub (iy+3)
|
||
ld (iy+2),a ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
InEnd1: call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
res 0,(iy+1) ;+1 ReadyString á¡à.ä« £ "áâ¥à¥âì áâபã"
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; ‚뢮¤ áâப¨ ®¡ê¥ªâ "Input Line" íªà
|
||
;-----------------------------------------------------------
|
||
PrnInLn:LD A,(CurILFl)
|
||
PUSH AF
|
||
CALL ResILCr ; ¢ëª«. ªãàá®à
|
||
LD HL,0
|
||
LD E,(IX+6) ;Xo pos inp.line
|
||
LD D,(IX+4) ;Y pos object
|
||
BIT 7,(IX+3)
|
||
JP NZ,prne
|
||
BIT 7,E
|
||
JR Z,$+7 ; -> "ld a,e"
|
||
LD A,E
|
||
NEG
|
||
LD L,A
|
||
LD E,H
|
||
LD (prnadd+1),HL
|
||
LD C,84h ; ãáâ. ¯®§¨æ¨î ªãàá®à
|
||
RST 08h
|
||
LD L,(IX+9) ; hl=áâàãªâãà áâப¨ ¢¢®¤
|
||
LD H,(IX+10)
|
||
LD A,(IY+3)
|
||
ADD A,L
|
||
LD L,A
|
||
JR NC,$+3
|
||
INC H
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
LD A,(IX+3) ; Xi - Xo (inp.line) = Len inp.line
|
||
SUB (IX+6)
|
||
LD E,A
|
||
LD C,A
|
||
LD B,A
|
||
LD A,(IX+6)
|
||
ADD A,C
|
||
CP 80+1
|
||
JR C,$+8
|
||
LD A,80
|
||
SUB (IX+6)
|
||
LD B,A
|
||
BIT 7,(IX+6)
|
||
JR Z,$+11
|
||
LD A,(IX+6)
|
||
NEG
|
||
SUB C
|
||
NEG
|
||
LD B,A
|
||
PUSH BC
|
||
SUB A
|
||
LD B,E
|
||
ld de,work_buffer ; à ¡. ¡ãä¥à InputLine
|
||
PUSH DE
|
||
LD (DE),A
|
||
INC DE
|
||
DJNZ $-2
|
||
LD A,(IY+0)
|
||
SUB (IY+3)
|
||
CP C
|
||
JR NC,$+3
|
||
LD C,A
|
||
LD B,0
|
||
LD A,(IY+4)
|
||
SUB C
|
||
JR NC,$+4
|
||
ADD A,C
|
||
LD C,A
|
||
POP DE
|
||
PUSH DE
|
||
LD A,B
|
||
OR C
|
||
JR Z,$+4
|
||
LDIR
|
||
POP HL
|
||
POP BC
|
||
prnadd: LD DE,0
|
||
ADD HL,DE
|
||
LD A,B ; ¤«¨ áâப¨
|
||
OR A
|
||
JR Z,prne
|
||
ColorInLn:
|
||
ld e,31h ; 梥⠢뤥«. ®¡ê¥ªâ (color_array+26)
|
||
ld c,85h ; ¢ë¢®¤ áâப¨ á âਡãâ ¬¨
|
||
RST 08h
|
||
prne: LD A,(IY+2)
|
||
ADD A,(IX+6)
|
||
LD E,A
|
||
LD D,(IX+4)
|
||
LD (CursorPos),de ; Y/X ¯®§¨æ¨ï ªãàá®à
|
||
POP AF
|
||
OR A
|
||
CALL NZ,PILCurs ; ¢ª«. ªãàá®à
|
||
EI
|
||
PUSH IY
|
||
LD IY,DialData ; â ¡«¨æ ®á. ¤¨ «. ®ª
|
||
LD A,(IX+6)
|
||
SUB (IY+0)
|
||
LD C,A
|
||
LD A,(IX+4)
|
||
SUB (IY+1)
|
||
LD B,A
|
||
POP IY
|
||
PUSH IX
|
||
LD IX,DialData ; â ¡«¨æ ®á. ¤¨ «. ®ª
|
||
CALL GetPutA
|
||
POP IX
|
||
ld hl,work_buffer ; à ¡. ¡ãä¥à InputLine
|
||
LD A,(IX+3) ; Xi - Xo (inp.line) = Len inp.line
|
||
SUB (IX+6)
|
||
LD C,A
|
||
LD B,0
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
LD A,(page_dial_screen)
|
||
OUT (SLOT3),A
|
||
LDI
|
||
INC DE
|
||
JP PE,$-3
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
RET
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; “áâ ®¢¨âì 䮪ãá ®¡ê¥ªâ "Input Line"
|
||
;-------------------------------------------------
|
||
InpLineI:
|
||
ld de,color_array+33 ; 梥â áâப¨ ¢¢®¤
|
||
ld (set_dial_tmp_inv+1),de
|
||
ld e,(ix+2) ; Xo left ª®®à¤. ¨¬¥¨ ª« áâ¥à
|
||
ld d,(ix+4) ; Y
|
||
ld a,(ix+5) ; Xi right ª®®à¤. ¨¬¥¨ ª« áâ¥à
|
||
sub e
|
||
ld c,a ; ¤«¨ ¢ë¤¥«. ¬¥âª¨
|
||
call SetDialInv
|
||
ld de,color_array+26 ; 梥â Selected title (®¡ê¥ªâ )
|
||
ld (set_dial_tmp_inv+1),de
|
||
ld de,(CursorPos) ; Y/X ¯®§¨æ¨ï ªãàá®à
|
||
call PILCurs ; ¢ª«. ªãàá®à
|
||
ei
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
|
||
|
||
|
||
|
||
|
||
;=====================================================================
|
||
; <20>à®à¨á®¢ª ®¡ê¥ªâ ~Inp Line~
|
||
;
|
||
; Žâ«¨ç¨¥ ®â "Input Line" - ०¨¬ "§ ¬¥ë" ⥪áâ ; ¥â 梥⠥ ।.
|
||
; áâப¨; ¯à¨ ¯®«ã票¨ 䮪ãá ªãàá®à ãáâ. ¢ ç «® áâப¨.
|
||
; ‚¢®¤ïâáï ⮫쪮 ᨬ¢®«ë 0..9, ".", ":".
|
||
;
|
||
; object ~Inp Line~ (¨¬¥¥â 䮪ãá)
|
||
; Input: HL-®¯¨á â¥«ì ®¡ê¥ªâ
|
||
; Format table (¤ ï â ¡«¨æ ¢ DialTab):
|
||
; +0 - ®¬¥à ®¡ê¥ªâ ~Input Line~
|
||
; +1 - Xo «¥¢ ï ¯®§¨æ¨ï ®¡ê¥ªâ
|
||
; +2 - Xi ¯à ¢ ï ¯®§¨æ¨ï ®¡ê¥ªâ
|
||
; +3 - Y ¯®§¨æ¨ï ®¡ê¥ªâ
|
||
; +4 - Xi position text (¯®§¨æ¨ï ¨¬¥¨ ª« áâ¥à ?)
|
||
; +5 - Xo «¥¢ ï ¯®§¨æ¨ï ¯®«ï ¢¢®¤
|
||
; +6 - ;Hot-keys (¨¬¥¨ ª« áâ¥à )
|
||
; +7 - ª®â¥ªáâ
|
||
; +8,9 - ¤à¥á áâàãªâãàë áâப¨ ¢¢®¤
|
||
;---------------------------------------------------------------------
|
||
; ”®à¬ â ®¯¨á ⥫ï:
|
||
; db InpLine ; ®¬¥à ®¡ê¥ªâ
|
||
; dw 0503h ; Yo,Xo
|
||
; db 12 ; è¨à¨ ¯®«ï ¢¢®¤
|
||
; db 4 ; ª®â¥ªáâ
|
||
; dw Buffer ; áâàãªâãà áâப¨ ¢¢®¤
|
||
;=====================================================================
|
||
PutInpLine:
|
||
push iy ; iy=DialTab+5
|
||
inc iy ; ¯à®©â¨ ï祩ªã ¤«¨ë ¤ ®© â ¡«¨æë
|
||
ld (iy+0),a ;+0 ®¬¥à ®¡ê¥ªâ "Input Line"
|
||
ld a,(hl) ; X pos
|
||
inc hl
|
||
ld c,a
|
||
add a,(ix+0) ; X ¯®«®¦. ®â ç « íªà
|
||
ld (iy+1),a ;+1 Xo
|
||
ld (ix+4),a ; X temp coord
|
||
ld a,(hl) ; Y pos
|
||
inc hl
|
||
ld b,a
|
||
add a,(ix+1) ; Pos Y ®â ç « íªà
|
||
ld (iy+3),a ;+3 Yo ¯®§¨æ¨ï ªãàá®à
|
||
call GetPutA
|
||
ld a,(ix+4) ; «¥¢ë© ªà © ¯®«ï ¢¢®¤ (íªà . ª®®à¤¨ âë)
|
||
ld (iy+4),a ; Xi ¯à ¢ ï ¯®§¨æ¨ï ç « ⥪áâ
|
||
ld (iy+5),a ;+5 Xi ¯à ¢ ï ¯®§¨æ¨ï ªãàá®à
|
||
ld (pInpAddr__+1),de ; ¤à¥á ¢ íªà . ¡ãä¥à¥
|
||
ld b,(hl) ; è¨à¨ ¯®«ï ¢¢®¤ (¨§ ®¯¨á ⥫ï)
|
||
inc hl
|
||
ld a,(hl) ; ª®â¥ªáâ
|
||
inc hl
|
||
ld (iy+7),a ;+7
|
||
ld e,(hl)
|
||
inc hl
|
||
ld d,(hl)
|
||
ld (iy+8),e ;+8 de=áâàãªâãà áâப¨ ¢¢®¤
|
||
ld (iy+9),d ;+9
|
||
inc hl
|
||
inc de ; ¯à®©â¨ ï祩ªã "+0"
|
||
; ¨¨æ. áâàãªâãàë áâப¨ ¢¢®¤
|
||
ex de,hl
|
||
xor a
|
||
ld (hl),a ;+1 ä« £=0 ReadyString (¥ ®ç¨é âì áâபã)
|
||
inc hl
|
||
ld (hl),a ;+2 X ¯®§¨æ¨ï ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
inc hl
|
||
ld (hl),a ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
inc hl
|
||
ld (hl),b ;+4 ª®«-¢® ¢¢¥¤. ᨬ¢®«®¢
|
||
inc hl
|
||
;cp (hl) ;+5 ¥áâì áâப ?
|
||
;jr nz,$+5 ; ¤
|
||
;dec hl
|
||
;ld (hl),a ;+4 ¥â ¢¢¥¤. ᨬ¢®«®¢
|
||
;inc hl
|
||
ex de,hl
|
||
push hl
|
||
add a,(iy+5) ; X ¯®§¨æ¨ï ªãàá®à
|
||
ld l,a
|
||
ld h,(iy+3) ; Y ¯®§¨æ¨ï ªãàá®à
|
||
ld (CursorPos),hl ; Y/X ¯®§¨æ¨ï ªãàá®à
|
||
; ¯¥à¥ª ç âì ¤ ë¥ ¨§ ¡ãä¥à áâப¨ ¢ íªà . ¡ãä¥à
|
||
pInpAddr__:
|
||
ld hl,0 ; ¤à¥á ¢ íªà . ¡ãä¥à¥
|
||
ld a,(color_array+33) ; 梥â áâப¨ ¢¢®¤
|
||
ld c,a
|
||
; b=è¨à¨ ¯®«ï ¢¢®¤
|
||
;dec de
|
||
;ld a,(de) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
;inc de
|
||
;or a
|
||
;jr z,pInpBlank ; ¥â áâப¨
|
||
ld a,(de)
|
||
inc de
|
||
ld (hl),a
|
||
inc hl
|
||
ld (hl),c ; 梥â áâப¨
|
||
inc hl
|
||
inc (ix+4) ; X ++¯à ¢ë© ªà © ¯®«ï ¢¢®¤ (íªà . ª®®à¤¨ âë)
|
||
djnz $-9
|
||
jp pInputLine2
|
||
;
|
||
;pInpBlank:
|
||
;ld a," "
|
||
;ld (hl),a
|
||
;inc hl
|
||
;ld (hl),c ; 梥â áâப¨
|
||
;inc hl
|
||
;inc (ix+4) ; X ++¯à ¢ë© ªà © ¯®«ï ¢¢®¤ (íªà . ª®®à¤¨ âë)
|
||
;djnz $-7
|
||
;jp pInputLine2
|
||
|
||
|
||
|
||
|
||
;=====================================================================
|
||
;
|
||
; Ž¡à ¡®â稪 ᮡë⨩ ®¡ê¥ªâ®¢ ~Inp Line~
|
||
;
|
||
;=====================================================================
|
||
EvInpLine:
|
||
ld hl,what ; ᯨ᮪ ᮡë⨩
|
||
ld a,(hl)
|
||
inc hl
|
||
cp evMouseFr
|
||
jr z,EvInpMouse
|
||
cp evKeyboard
|
||
jr z,EvInpKeys
|
||
cp evCombKey
|
||
jp z,EvInpComb
|
||
ret
|
||
|
||
; ‘®¡ë⨥ - Œëèª
|
||
EvInpMouse:
|
||
ld e,(hl) ; X coord
|
||
inc hl
|
||
ld d,(hl) ; Y coord
|
||
ld a,d
|
||
cp (ix+4) ; Y pos input line
|
||
ret nz
|
||
ld a,e
|
||
bit 7,(ix+2)
|
||
jr nz,$+6
|
||
cp (ix+2) ; Xo pos
|
||
ret c
|
||
bit 7,(ix+3) ; Xi ¯à ¢ë© ªà © ¯®«ï ¢¢®¤
|
||
ret nz
|
||
cp (ix+3) ; Xi ¯à ¢ë© ªà © ¯®«ï ¢¢®¤
|
||
ret nc
|
||
bit 7,(ix+1) ; Sel or nosel
|
||
jr z,SetInpLine ; ¢ë¤¥«¨âì - ®¡ê¥ªâ ¥ ¢ 䮪ãá¥
|
||
bit 7,(ix+6)
|
||
jr nz,$+6
|
||
cp (ix+6) ; Xo input line
|
||
ret c
|
||
sub (ix+6) ; Shift from begin
|
||
ld c,a
|
||
ld l,(ix+9) ; áâàãªâãà ¡ãä¥à
|
||
ld h,(ix+10)
|
||
inc hl
|
||
ld (hl),0 ;+1 ãáâ. ä« £ "¥ áâ¨à âì áâபã"
|
||
inc hl
|
||
cp (hl) ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
ret z
|
||
push hl
|
||
inc hl
|
||
inc hl
|
||
cp (hl) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
ld a,(hl)
|
||
pop hl
|
||
jr z,$+5
|
||
jr c,$+3
|
||
ld c,a ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
ld (hl),c
|
||
dec hl
|
||
dec hl
|
||
push iy
|
||
push hl
|
||
pop iy
|
||
call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
pop iy
|
||
jr InpLineExt
|
||
|
||
; ‘®¡ë⨥ - ®¡ëç ï ª« ¢¨è
|
||
EvInpKeys:
|
||
bit 7,(ix+1) ; Sel or nosel
|
||
jr nz,InpLineWork ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥
|
||
ld a,(hl) ;+1 what
|
||
cp 9 ; Tab
|
||
ret nz
|
||
; 䮪ãá ®¡ê¥ªâ "Inp Line"
|
||
SetInpLine:
|
||
call MoveObj ; Select "Inp line"
|
||
call ResDialInv ; Reset previos object
|
||
ld ix,DialTab+5 ; ’ ¡«¨æ ®¡ê¥ªâ®¢
|
||
push iy
|
||
ld l,(ix+9) ; hl=áâàãªâãà áâப¨ ¢¢®¤ "Inp Line"
|
||
ld h,(ix+10)
|
||
push hl
|
||
pop iy
|
||
inc hl
|
||
xor a
|
||
ld (hl),a ;+1 ä« £ ReadyString (1=®ç¨áâ¨âì áâப㠯ਠ¢¢®¤¥)
|
||
inc hl
|
||
ld (hl),a ;+2 X ¯®§¨æ¨ï ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||
inc hl
|
||
ld (hl),a ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||
inc hl
|
||
call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
pop iy
|
||
call PILCurs ; ¢ª«. ªãàá®à
|
||
ei
|
||
InpLineExt:
|
||
ld hl,what ; ¯®«¥ ᮡë⨩
|
||
ld (hl),evNothing
|
||
jp get_fire
|
||
|
||
; <20> ¡®â ¢ áâப¥ । ªâ¨à®¢ ¨ï
|
||
InpLineWork:
|
||
ld a,(hl) ; what+1 ª®¤ ª« ¢¨è¨
|
||
cp 8 ; "§ ¡®©"
|
||
jr z,$+12
|
||
cp "."
|
||
jr z,$+8
|
||
cp "0"
|
||
ret c
|
||
cp ":"+1
|
||
ret nc
|
||
; ᨬ¢®«ë ".", 0..9, ":"
|
||
push iy
|
||
ld de,InpLineWex
|
||
push de
|
||
ld l,(ix+9) ; áâàãªâãà ¡ãä¥à
|
||
ld h,(ix+10)
|
||
push hl
|
||
pop iy
|
||
ex af,af'
|
||
res 7,(iy+1) ;+1 ä« £ ReadyString
|
||
ld a,1; ; 01/00 ¢áâ ¢ª /§ ¬¥
|
||
and 1
|
||
rrca ; ¢¯à ¢® (¬«.¡¨â -> ¯¥à¥®á)
|
||
or (iy+1)
|
||
ld (iy+1),a ;+1 ä« £ ReadyString
|
||
ex af,af'
|
||
cp 8 ; "§ ¡®©"
|
||
jp z,BackDel
|
||
ex af,af'
|
||
ld a,(iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
cp (iy+0) ;+0 ¬ ªá. ¤«¨ áâப¨
|
||
jr z,no_ins
|
||
sub (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
jr z,no_ins ; ¥ à §¤¢. áâபã
|
||
dec (iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
bit 7,(iy+1) ;+1 ä« £ ReadyString
|
||
jr z,no_ins ; ¥ à §¤¢. áâபã
|
||
inc (iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
; ¢¢®¤ ¢ á¥à¥¤¨ã ⥪áâ (¢áâ ¢ª )
|
||
ld c,a
|
||
ld b,0
|
||
ld l,(ix+9) ; áâàãªâãà ¡ãä¥à
|
||
ld h,(ix+10)
|
||
ld a,(iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
add a,l
|
||
ld l,a
|
||
jr nc,$+3
|
||
inc h
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
ld d,h
|
||
ld e,l
|
||
dec hl
|
||
lddr
|
||
no_ins: ld l,(ix+9) ; áâàãªâãà ¡ãä¥à
|
||
ld h,(ix+10)
|
||
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
add a,l
|
||
ld l,a
|
||
jr nc,$+3
|
||
inc h
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
ex af,af'
|
||
ld (hl),a ; á®åà. ᨬ¢®« ¢ áâப¥
|
||
ld a,(iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
cp (iy+0) ; ¬ ªá. ¤«¨ áâப¨
|
||
jr z,$+5 ; ¢áï áâப § ¯®«¥
|
||
inc (iy+4) ; ++ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
inc (iy+2) ; X ++¯®«®¦. ªãàá®à ¢ áâப¥
|
||
ld a,(ix+3) ; Xi ¯à ¢ë© ªà © ¯®«ï ¢¢®¤
|
||
sub (ix+6) ; Xo «¥¢ë© ªà © ¯®«ï
|
||
cp (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
jr nz,$+5 ; ªãàá®à ¥ § ¯®«¥¬ ¢¢®¤
|
||
dec (iy+2) ; X --¯®«®¦. ªãàá®à
|
||
call PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
pop de
|
||
InpLineWex:
|
||
ld hl,what ; ¯®«¥ ᮡë⨩
|
||
ld (hl),evNothing
|
||
pop iy
|
||
ret
|
||
|
||
|
||
; ‘®¡ë⨥ - ªãàá. ª« ¢¨è¨ ¨«¨ ª®¬¡¨ 樨
|
||
EvInpComb:
|
||
bit 7,(ix+1) ; sel or nosel
|
||
jr nz,EvInpComb1 ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥
|
||
ld b,(hl) ;+1 what
|
||
inc hl
|
||
ld a,(hl) ;+2 what
|
||
cp 56h ; ªãàá®à ¢¯à ¢®
|
||
jp z,SetInpLine
|
||
push ix
|
||
ld e,(ix+0) ; à §¬¥à â ¡«¨æë "Inp Line"
|
||
ld d,0
|
||
add ix,de
|
||
bit 7,(ix+0)
|
||
pop ix
|
||
ret z ; ¥é¥ ¥ ª®¥æ ®¡ê¥ªâ®¢
|
||
cp 54h ; ªãàá®à ¢«¥¢®
|
||
jp z,SetInpLine
|
||
ld a,b
|
||
and 00111111b ; ¡¨âë Ctrl, Alt
|
||
ret nz
|
||
ld a,(hl) ;+2 what
|
||
cp 15+80h ; Tab ᪥-ª®¤+80h
|
||
ret nz
|
||
jp SetInpLine ; Shift+Tab, ¯à¥¤ë¤ã騩 ®¡ê¥ªâ
|
||
;
|
||
EvInpComb1:
|
||
push iy
|
||
inc hl
|
||
ld a,(hl) ;+2 what
|
||
ld l,(ix+9) ; áâàãªâãà ¡ãä¥à
|
||
ld h,(ix+10)
|
||
ld de,InpLineWex
|
||
push de
|
||
push hl
|
||
pop iy
|
||
cp 54h ; ªãàá®à ¢«¥¢®
|
||
jr z,InpLeft
|
||
cp 56h ; ªãàá®à ¢¯à ¢®
|
||
jr z,InpRight
|
||
cp 4Fh ; Del 㤠«¨âì ᨬ¢®« ¢ ⥪. ¯®§¨æ¨¨
|
||
jp z,InpDel
|
||
cp 57h ; Home ¢ ç «® áâப¨
|
||
jp z,InpHome
|
||
cp 51h ; End ¢ ª®¥æ áâப¨
|
||
jp z,InpEnd
|
||
pop de
|
||
pop iy
|
||
ret
|
||
|
||
; Šãàá®à ¢«¥¢® ®¤® ¬¥áâ®
|
||
InpLeft:ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
dec a
|
||
ret m ; § «¥¢ë¬ ªà ¥¬ ¯®«ï
|
||
InpPrint:
|
||
ld (iy+2),a
|
||
jp PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
|
||
; Šãàá®à ¢¯à ¢® ®¤® ¬¥áâ®
|
||
InpRight:
|
||
ld a,(iy+2) ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
cp (iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
ret z ; ª®¥æ áâப¨
|
||
ld a,(ix+3) ; Xi ¯à ¢ë© ªà © ¯®«ï ¢¢®¤
|
||
sub (ix+6) ; Xo «¥¢ë© ªà © ¯®«ï
|
||
ld b,a
|
||
ld a,(iy+2) ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
inc a
|
||
cp b
|
||
ret z ; 㯥૨áì ¢ ¯à ¢ë© ªà © ¯®«ï
|
||
jr InpPrint
|
||
|
||
; ‡ ¡®© - 㤠«¨âì ᨬ¢®« «¥¢¥¥ ªãàá®à
|
||
BackDel:ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
or a
|
||
ret z ; ¤®è«¨ ¤® «¥¢®£® ªà ï ¯®«ï
|
||
ld l,(ix+9) ; áâàãªâãà ¡ãä¥à
|
||
ld h,(ix+10)
|
||
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
add a,l
|
||
ld l,a
|
||
jr nc,$+3
|
||
inc h
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
ld d,h
|
||
ld e,l
|
||
dec de
|
||
ld a,(iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
sub (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
jr z,$+7 ; ªãàá®à § ª®æ®¬ áâப¨
|
||
ld c,a
|
||
ld b,0
|
||
ldir ; ®¡®¢¨âì ®áâ ⮪ áâப¨
|
||
xor a
|
||
ld (de),a ; ¢ ª®¥æ áâப¨
|
||
dec (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
dec (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
jp PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
|
||
; Delete - 㤠«¨âì ᨬ¢®« ¢ ⥪. ¯®§¨æ¨¨
|
||
InpDel: ld l,(ix+9) ; áâàãªâãà ¡ãä¥à
|
||
ld h,(ix+10)
|
||
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
inc a
|
||
add a,l
|
||
ld l,a
|
||
jr nc,$+3
|
||
inc h
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
ld d,h
|
||
ld e,l
|
||
dec de
|
||
ld a,(iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
sub (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
ret z ; ªãàá®à § ª®æ®¬ áâப¨
|
||
ld c,a
|
||
ld b,0
|
||
ldir ; ®¡®¢¨âì ®áâ ⮪ áâப¨
|
||
xor a
|
||
ld (de),a ; ¢ ª®¥æ áâப¨
|
||
dec (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
jp PrnInLn ; ¢ë¢¥á⨠áâபã íªà
|
||
|
||
; Home - ¢ ç «® áâப¨
|
||
InpHome:ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
or a
|
||
ret z
|
||
xor a ; X ¯®«®¦. ªãàá®à
|
||
jp InpPrint ; ¢ë¢¥á⨠áâபã íªà
|
||
|
||
; End - ¢ ª®¥æ áâப¨
|
||
InpEnd: ld a,(iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||
cp (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||
ret z
|
||
ld c,a
|
||
ld a,(ix+3) ; Xi ¯à ¢ë© ªà © ¯®«ï ¢¢®¤
|
||
sub (ix+6) ; Xo «¥¢ë© ªà © ¯®«ï
|
||
cp c
|
||
ld a,c
|
||
jp nz,InpPrint ; áâப ¬¥ìè¥ è¨à¨ë ¯®«ï
|
||
dec a ; --¯®«®¦. ªãàá®à
|
||
jp InpPrint ; ¢ë¢¥á⨠áâபã íªà
|