Subversion Repositories NedoOS

Rev

Details | Last modification | View Log

Rev Author Line No. Line
1285 alone 1
;редактирует строку, заполненную пробелами
2
EditLine_xyde_widb
3
        ld (EditLine_addr),hl
4
        ld (EditLine_xy),de
5
        ld a,b
6
        ld (EditLine_wid),a
7
;ищем первый непробел с конца, ставим туда курсор и двигаем вправо через функцию (чтобы не было переполнения)
8
        ld c,a
9
        ld b,0
10
        add hl,bc
11
        dec a
12
        ld b,a ;wid-1
13
        ld a,' '
14
EditLine_findend0
15
        dec hl
16
        cp (hl)
17
        jr nz,EditLine_findend0q
18
        djnz EditLine_findend0
19
EditLine_findend0q
20
        ld a,b ;0..wid-1
21
        ;xor a
22
        ld (EditLine_curx),a
23
        call EditLineRight
24
        call EditLine_Redraw
25
EditLine0
26
        call EditLine_drawcursor
27
        YIELDGETKEYLOOP
28
        push af
29
        ;call EditLine_undrawcursor
30
        call EditLine_Redraw
31
        pop af
32
        cp key_esc
33
        ret z
34
        cp key_enter
35
        ret z
36
        ld hl,EditLine0
37
        push hl
38
        cp key_left
39
        jr z,EditLineLeft
40
        cp key_right
41
        jr z,EditLineRight
42
        cp key_backspace
43
        jr z,EditLineBackSpace
44
        call EditLine_edit
45
EditLine_Redraw
46
        ld de,(EditLine_xy)
47
        OS_SETXY
48
        ld hl,disasmtextbuf
49
        ld a,(EditLine_wid)
50
        ld b,a
51
        jp Debugger_PrChars_hl_b
52
 
53
EditLineBackSpace
54
        call EditLineLeft
55
        call EditLine_curaddr
56
        ld (hl),' '
57
        jp EditLine_Redraw
58
 
59
EditLineLeft
60
        ld hl,EditLine_curx
61
        dec (hl)
62
        ret p
63
        inc (hl)
64
        ret
65
EditLineRight
66
        ld hl,EditLine_curx
67
        ld a,(EditLine_wid)
68
        inc (hl)
69
        cp (hl)
70
        ret nz
71
        dec (hl)
72
        ret
73
 
74
EditLine_edit
75
        call EditLine_curaddr
76
        ld (hl),a
77
        call EditLineRight
78
        jp EditLine_Redraw
79
 
80
EditLine_curaddr
81
        ld hl,(EditLine_addr)
82
        ld bc,(EditLine_curx)
83
        ld b,0
84
        add hl,bc
85
        ret
86
 
87
EditLine_drawcursor
88
        ld de,(EditLine_xy)
89
        ld a,(EditLine_curx)
90
        add a,e
91
        ld e,a
92
        OS_SETXY
93
        ld e,DEBUGGER_COLORCURSOR;0x38
94
        OS_PRATTR
95
        ret
96
 
97
EditLine_curx
98
        db 0
99
EditLine_xy
100
        dw 0
101
EditLine_wid
102
        db 0
103
EditLine_addr
104
        dw 0