Login

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

;╤А╨╡╨┤╨░╨║╤В╨╕╤А╤Г╨╡╤В ╤Б╤В╤А╨╛╨║╤Г, ╨╖╨░╨┐╨╛╨╗╨╜╨╡╨╜╨╜╤Г╤О ╨┐╤А╨╛╨▒╨╡╨╗╨░╨╝╨╕
EditLine_xyde_widb
        ld (EditLine_addr),hl
        ld (EditLine_xy),de
        ld a,b
        ld (EditLine_wid),a
;╨╕╤Й╨╡╨╝ ╨┐╨╡╤А╨▓╤Л╨╣ ╨╜╨╡╨┐╤А╨╛╨▒╨╡╨╗ ╤Б ╨║╨╛╨╜╤Ж╨░, ╤Б╤В╨░╨▓╨╕╨╝ ╤В╤Г╨┤╨░ ╨║╤Г╤А╤Б╨╛╤А ╨╕ ╨┤╨▓╨╕╨│╨░╨╡╨╝ ╨▓╨┐╤А╨░╨▓╨╛ ╤З╨╡╤А╨╡╨╖ ╤Д╤Г╨╜╨║╤Ж╨╕╤О (╤З╤В╨╛╨▒╤Л ╨╜╨╡ ╨▒╤Л╨╗╨╛ ╨┐╨╡╤А╨╡╨┐╨╛╨╗╨╜╨╡╨╜╨╕╤П)
        ld c,a
        ld b,0
        add hl,bc
        dec a
        ld b,a ;wid-1
        ld a,' '
EditLine_findend0
        dec hl
        cp (hl)
        jr nz,EditLine_findend0q
        djnz EditLine_findend0
EditLine_findend0q
        ld a,b ;0..wid-1
        ;xor a
        ld (EditLine_curx),a
        call EditLineRight
        call EditLine_Redraw
EditLine0
        call EditLine_drawcursor
        YIELDGETKEYLOOP
        push af
        ;call EditLine_undrawcursor
        call EditLine_Redraw
        pop af
        cp key_esc
        ret z
        cp key_enter
        ret z
        ld hl,EditLine0
        push hl
        cp key_left
        jr z,EditLineLeft
        cp key_right
        jr z,EditLineRight
        cp key_backspace
        jr z,EditLineBackSpace
        call EditLine_edit
EditLine_Redraw
        ld de,(EditLine_xy)
        OS_SETXY
        ld hl,disasmtextbuf
        ld a,(EditLine_wid)
        ld b,a
        jp Debugger_PrChars_hl_b

EditLineBackSpace
        call EditLineLeft
        call EditLine_curaddr
        ld (hl),' '
        jp EditLine_Redraw
       
EditLineLeft
        ld hl,EditLine_curx
        dec (hl)
        ret p
        inc (hl)
        ret
EditLineRight
        ld hl,EditLine_curx
        ld a,(EditLine_wid)
        inc (hl)
        cp (hl)
        ret nz
        dec (hl)
        ret

EditLine_edit
        call EditLine_curaddr
        ld (hl),a
        call EditLineRight
        jp EditLine_Redraw

EditLine_curaddr
        ld hl,(EditLine_addr)
        ld bc,(EditLine_curx)
        ld b,0
        add hl,bc
        ret

EditLine_drawcursor
        ld de,(EditLine_xy)
        ld a,(EditLine_curx)
        add a,e
        ld e,a
        OS_SETXY
        ld e,DEBUGGER_COLORCURSOR;0x38
        OS_PRATTR
        ret

EditLine_curx
        db 0
EditLine_xy
        dw 0
EditLine_wid
        db 0
EditLine_addr
        dw 0