Subversion Repositories Kolibri OS

Rev

Rev 12 | Rev 106 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 ha 1
align 4
2
dtext:
3
        ; eax x & y
4
        ; ebx font ( 0xX0000000 ) & color ( 0x00RRGGBB )
5
        ; ecx start of text
6
        ; edx length
7
        ; edi 1 force
8
 
9
        test   ebx,0x10000000
10
        jnz    dtext2
11
 
12
        pushad
13
 
14
        mov    esi, edx
15
        and    esi, 0xff
16
        test   esi, esi    ; zero length ?
17
        jnz    @f
18
        popad
19
        ret
20
      @@:
21
        align 4
22
      .letnew:
23
 
24
        push   eax ecx edx
25
        movzx  ebx,ax
26
        shr    eax,16
27
        movzx  edx,byte [ecx]
28
        mov    ecx,[esp+3*4+32-16]
29
        call   drawletter
30
        pop    edx ecx eax
31
 
32
        add    eax,6*65536
33
 
34
        inc    ecx
35
        dec    edx
36
        jnz    .letnew
37
 
38
        popad
39
        ret
40
 
41
align 4
42
drawletter:
12 halyavin 43
;eax - x
44
;ebx - y
45
;ecx - color
46
;edx - ascii code
47
    pushad
48
    call  [disable_mouse]
49
    mov   esi,9
50
    lea   ebp,[0x3F600+8*edx+edx]
51
.symloop:
52
    push  esi
53
    mov   dl,byte [ebp]
54
    mov   esi,8
55
.pixloop:
56
    test  dl,1
57
    jz    .nopix
58
    call  [putpixel]
59
.nopix:
60
    shr   dl,1
61
    inc   eax
62
    dec   esi
63
    jnz   .pixloop
64
    sub   eax,8
65
    inc   ebx
66
    inc   ebp
67
    pop   esi
68
    dec   esi
69
    jnz   .symloop
70
    popad
71
    ret
72
 
1 ha 73
 
74
 
75
dtext2:
76
 
77
        ; eax x & y
78
        ; ebx color
79
        ; ecx start of text
80
        ; edx length
81
        ; edi 1 force
82
 
83
        pushad
84
 
85
        mov    esi,edx
86
        and    esi,0xff
87
        test   esi,esi    ; zero length ?
88
        jnz    @f
89
        popad
90
        ret
91
      @@:
92
 
93
      align 4
94
      letnew2:
95
 
96
        push   ecx
97
        push   edx
98
        movzx  ebx,ax
99
        shr    eax,16
100
        movzx  edx,byte [ecx]
12 halyavin 101
        mov    ecx,[esp+2*4+32-16]
1 ha 102
        call   drawletter2
12 halyavin 103
        shl    eax,16
104
        add    eax,ebx
1 ha 105
        pop    edx
106
        pop    ecx
107
 
108
        inc    ecx
109
        dec    edx
110
        jnz    letnew2
111
 
112
        popad
113
        ret
114
 
115
align 4
116
drawletter2:
12 halyavin 117
;eax - x
118
;ebx - y
119
;ecx - color
120
;edx - symbol
121
;edi - force?
122
;result - eax=eax+sym_size
123
    pushad
124
    call  [disable_mouse]
24 halyavin 125
    shl   edx,1
12 halyavin 126
    mov   esi,9
24 halyavin 127
    lea   ebp,[0x3EC00+4*edx+edx+1]
12 halyavin 128
.symloop:
129
    push  esi
130
    mov   dl,byte [ebp]
131
    xor   esi,esi
132
.pixloop:
133
    test  dl,1
134
    jz    .nopix
135
    call  [putpixel]
136
.nopix:
137
    shr   dl,1
138
    inc   esi
139
    inc   eax
140
    cmp   esi,8
141
    jl    .pixloop
142
    sub   eax,8
143
    inc   ebx
144
    pop   esi
145
    inc   ebp
146
    dec   esi
147
    jnz   .symloop
24 halyavin 148
    movzx edx,byte [ebp-10]
12 halyavin 149
    add   [esp+32-4],edx
150
    popad
151
    ret