Subversion Repositories Kolibri OS

Rev

Rev 3026 | Rev 3091 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3026 Rev 3088
Line 1... Line 1...
1
;#___________________________________________________________________________________________________
1
;#___________________________________________________________________________________________________
2
;****************************************************************************************************|
2
;****************************************************************************************************|
3
; Program Palitra (c) Sergei Steshin (Akyltist)                                                      |
3
; Program Palitra (c) Sergei Steshin (Akyltist)                                                      |
4
;----------------------------------------------------------------------------------------------------|
4
;----------------------------------------------------------------------------------------------------|
-
 
5
;; Charset:WIN-1251 Font:Courier New Size:9pt                                                         |
-
 
6
;.....................................................................................................
5
;; compiler:     FASM 1.69.31                                                                        |
7
;; compiler:     FASM 1.69.31                                                                        |
6
;; version:      0.3.0                                                                               |
8
;; version:      0.3.0                                                                               |
7
;; last update:  08/11/2012                                                                          |
9
;; last update:  08/11/2012                                                                          |
8
;; e-mail:       dr.steshin@gmail.com                                                                |
10
;; e-mail:       dr.steshin@gmail.com                                                                |
9
;.....................................................................................................
11
;.....................................................................................................
Line 15... Line 17...
15
;;       - Ìåëêàÿ êîñìåòèêà.                                                                         |
17
;;       - Ìåëêàÿ êîñìåòèêà.                                                                         |
16
;; 0.3.0 - Äîáàâëåíî ïåðåêëþ÷åíèå âèäîâ öâåòîâûõ ñõåì (êíîïêà NEXT)                                  |
18
;; 0.3.0 - Äîáàâëåíî ïåðåêëþ÷åíèå âèäîâ öâåòîâûõ ñõåì (êíîïêà NEXT)                                  |
17
;;       - Óëó÷øåíû ïîëçóíêè, ïðîèçâîäèòñÿ îáðàáîòêà íàæàòèÿ ðÿäîì ñ ïîëçóíêîì.                      |
19
;;       - Óëó÷øåíû ïîëçóíêè, ïðîèçâîäèòñÿ îáðàáîòêà íàæàòèÿ ðÿäîì ñ ïîëçóíêîì.                      |
18
;;       - ×èñëî ñåòîê â öâåòîâîé ñõåìå óìåíüøåíî ñ 6 äî 4 (êðàòíîñòü 256, èíà÷å äóáëèðîâàíèå öâåòà).|
20
;;       - ×èñëî ñåòîê â öâåòîâîé ñõåìå óìåíüøåíî ñ 6 äî 4 (êðàòíîñòü 256, èíà÷å äóáëèðîâàíèå öâåòà).|
19
;;       - Ìåëêàÿ êîñìåòèêà.                                                                         |
21
;;       - Ìåëêàÿ êîñìåòèêà.                                                                         |
-
 
22
;; 0.4.0 - Äîáàâëåíî ïåðåêëþ÷åíèå ìåæäó äâóìÿ öâåòàìè                                                |
-
 
23
;;       - Äîáàâëåí ïîëçóíîê ðåãóëèðîâàíèÿ ïðîçðà÷íîñòè (áåç âèçóàëèçàöèè).                          |
-
 
24
;;       - Äîáàâëåíî âûðàâíèâàíèå çíà÷åíèé rgba ïî öåíòðó, â çàâèñèìîñòè îò äëèííû.                  |
-
 
25
;;       - Êîñìåòè÷åñêèå ïðàâêè.                                                                     |
-
 
26
;;       - Íåáîëüøàÿ îïòèìèçàöèÿ.                                                                    |
20
;.....................................................................................................
27
;.....................................................................................................
21
;; All rights reserved.                                                                              |
28
;; All rights reserved.                                                                              |
22
;;                                                                                                   |
29
;;                                                                                                   |
23
;; Redistribution and use in source and binary forms, with or without modification, are permitted    |
30
;; Redistribution and use in source and binary forms, with or without modification, are permitted    |
24
;; provided that the following conditions are met:                                                   |
31
;; provided that the following conditions are met:                                                   |
Line 57... Line 64...
57
  dd	 0x1000
64
  dd	 0x1000
58
  dd	 0x0
65
  dd	 0x0
59
  dd	 0x0
66
  dd	 0x0
Line 60... Line 67...
60
 
67
 
61
include '../../../macros.inc'
-
 
-
 
68
include '../../../macros.inc'
-
 
69
  WIN_W      equ 271                      ; øèðèíà îêíà
-
 
70
  WIN_H      equ 192                      ; âûñîòà îêíà
-
 
71
  WIN_X      equ 250                      ; êîîðäèíàòà õ îêíà
Line 62... Line 72...
62
 
72
  WIN_Y      equ 190                      ; êîîðäèíàòà ó îêíà
63
 
73
 
64
START:
74
START:
65
;#___________________________________________________________________________________________________
75
;#___________________________________________________________________________________________________
Line 88... Line 98...
88
button:
98
button:
89
    mcall   17                            ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè
99
    mcall   17                            ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè
90
    cmp     ah, 1                         ; åñëè íàæàòà êíîïêà ñ íîìåðîì 1,
100
    cmp     ah, 1                         ; åñëè íàæàòà êíîïêà ñ íîìåðîì 1,
91
    jz      bexit                         ; âûõîäèì
101
    jz      bexit                         ; âûõîäèì
92
  ;îáðàáîòêà êíîïêè Next
102
  ;îáðàáîòêà êíîïêè Next
93
    cmp     ah, 11                        ; åñëè íàæàòà êíîïêà NEXT
103
    cmp     ah, 12                        ; åñëè íàæàòà êíîïêà NEXT
94
    jne     next_bg                       ; âûõîäèì
104
    jne     set_bg                        ; âûõîäèì
95
    inc     [pnext]                       ; óâåëè÷èâàåì ïðè íàæàòèè íîìåð ïàëèòðû
105
    inc     [pnext]                       ; óâåëè÷èâàåì ïðè íàæàòèè íîìåð ïàëèòðû
96
    mov     eax,[pnext]
106
    mov     eax,[pnext]                   ; çàíîñèì çíà÷åíèå â åàõ
97
    cmp     al,6
107
    cmp     al,6                          ; ñðàâíèâàåì ñ çàÿâëåííûì êîëè÷åñòâîì ïàëèòð
98
    jne     next_redraw
108
    jne     next_redraw                   ; åñëè íå áîëüøå ìàêñèìóìà òî íà âûçîâ îòðèñîâêè
99
    xor     eax,eax
109
    xor     eax,eax                       ; èíà÷å çàíóëÿåì ïàëèòðó íà default
100
    mov     [pnext],eax
110
    mov     [pnext],eax                   ; è çàïîìèíàåì ÷òî ñáðîñèëè ïàëèòðó íà default
101
  next_redraw:
111
  next_redraw:
102
    call    draw_palitra                  ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ
112
    call    draw_palitra                  ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ
103
    ;call    draw_result                   ; ÐÈÑÓÅÌ ÐÅÇÓËÜÒÀÒ
113
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
104
    jmp     still
-
 
105
 
-
 
106
  next_bg:
114
  set_bg:
107
    cmp     ah, 12                        ; åñëè íàæàòà êíîïêà BACKGROUND
115
    cmp     ah, 14                        ; åñëè íàæàòà êíîïêà BACKGROUND
108
    jne     next_end                      ; âûõîäèì
116
    jne     next_end                      ; âûõîäèì
109
	mcall   15,4,1
117
	mcall   15,4,1
110
	mcall   15,1,1,1
118
	mcall   15,1,1,1
111
	mcall   15,5,color,0,3*1*1
119
	mcall   15,5,color,0,3*1*1
112
	mcall   15,3
120
	mcall   15,3
113
	jne     next_redraw
-
 
114
  next_end:
-
 
115
    cmp     ah, 7
-
 
116
    jne     color_button
-
 
117
    call    mouse_get
-
 
118
    jmp     still
-
 
119
  color_button:
-
 
120
    push    eax
-
 
121
    call    mouse_local                   ; ïîëó÷èë ëîêàëüíûå êîîðäèíàòû
-
 
122
    mov     ebx,129
-
 
123
    mov     ecx,[mouse_y]
-
 
124
    sub     ebx,ecx
-
 
125
    mov     ecx,3
-
 
126
    imul    ecx,ebx
-
 
127
    
-
 
128
    ;push    ecx
-
 
129
 
-
 
130
 
-
 
131
    pop     eax
-
 
132
  red_button:
-
 
133
    cmp     ah, 8
-
 
134
    jne     green_button
-
 
135
    mov     [cred],cl
-
 
136
    call    set_spectr
-
 
137
    jmp     still
121
	jmp     still
-
 
122
  next_end:
-
 
123
    cmp     ah,13                         ; COLOR SWAP
-
 
124
    jne     color_swap_end
-
 
125
    push    [color2]
-
 
126
    push    [color]
-
 
127
    pop     [color2]
-
 
128
    pop     [color]
-
 
129
    call    draw_result
-
 
130
  color_swap_end:
-
 
131
    cmp     ah, 7                         ; Ïðîâåðÿåì íàæàòà êíîïêà ñ ID=7
-
 
132
    jne     color_button                  ; Åñëè íå íàæàòà, òî èä¸ì äàëüøå
-
 
133
    call    mouse_get                     ; Èíà÷å âêëþ÷àåì îáðàáîò÷èê ìûøè, ÷òîáû ñ÷èòàòü çíà÷åíèå öâåòà ñ ïàëèòðû
-
 
134
    jmp     still                         ; È óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
-
 
135
  color_button:                           ; ÐÀÑ×¨Ò êîîðäèíàò äëÿ ïîëçóíêîâ RGBA
-
 
136
    push    eax                           ; çàïîìèíàåì åàõ
-
 
137
    call    mouse_local                   ; ïîëó÷àåì ëîêàëüíûå êîîðäèíàòû
-
 
138
    mov     ebx,137                       ; íèæíÿÿ ãðàíèöà ïîëçóíêà ïî Ó
-
 
139
    mov     ecx,[mouse_y]                 ; çàíèñèì â åñõ çíà÷åíèå êóðñîðà ïî Ó
-
 
140
    sub     ebx,ecx                       ; íàõîäèì ðàçíîñòü (ò.å. êóäà ñìåùàåòñÿ ïîëçóíîê)
-
 
141
    mov     ecx,3                         ; çàíîñèì â åñõ öèôðó 3 (256/3=85, ãäå 85-âûñîòà ïîëçóíêîâ)
-
 
142
    imul    ecx,ebx                       ; íàõîäèì èñòèííûé ïàðàìåòð öâåòà ñ ó÷¸òîì ìàñøòàáà ïîëçóíêà---+
-
 
143
    pop     eax                           ; âîññòàíàâëèâàåì åàõ                                          :
-
 
144
  ;red_button:                            ; Êðàñíûé Òðåêáàð                                              :
-
 
145
    cmp     ah, 8                         ; ID=8                                                         :
-
 
146
    jne     green_button                  ; åñëè íåò, òî ïðîâåðÿåì çåë¸íûé òðåêáàð                       :
-
 
147
    mov     [cred],cl                     ; èíà÷å ïðèñâàèâàåì çíà÷åíèå, êðàñíîìó öâåòó ñïåêòðà    <------+
-
 
148
    call    set_spectr                    ; óñòàíàâëèâàåì ñïåêòð
-
 
149
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
138
  green_button:
150
  green_button:
139
    cmp     ah, 9
151
    cmp     ah, 9
140
    jne     blue_button
152
    jne     blue_button
141
    mov     [cgreen],cl
153
    mov     [cgreen],cl
142
    call    set_spectr
154
    call    set_spectr
143
    jmp     still
155
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
144
  blue_button:
156
  blue_button:
145
    cmp     ah, 10
157
    cmp     ah, 10
146
    jne     still
158
    jne     alpha_button
147
    mov     [cblue],cl
159
    mov     [cblue],cl
148
    call    set_spectr
160
    call    set_spectr
-
 
161
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
-
 
162
  alpha_button:
-
 
163
    cmp     ah, 11
149
    jmp     still
164
    jne     still
-
 
165
    mov     [calpha],cl
-
 
166
    call    set_spectr
-
 
167
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
150
  bexit:
168
  bexit:
151
    mcall -1                              ; èíà÷å êîíåö ïðîãðàììû
169
    mcall -1                              ; èíà÷å êîíåö ïðîãðàììû
152
;end_button
170
;end_button
Line 153... Line 171...
153
 
171
 
Line 170... Line 188...
170
    mov     ebx,4                         ; Ïîäôóíêöèÿ 4 - âîçâðàùàåò eax = âûñîòà ñêèíà.
188
    mov     ebx,4                         ; Ïîäôóíêöèÿ 4 - âîçâðàùàåò eax = âûñîòà ñêèíà.
171
    int     0x40                          ; Ïðåðûâàíèå
189
    int     0x40                          ; Ïðåðûâàíèå
172
    mov     ecx,eax                       ; Çàïîìèíàåì âûñîòó ñêèíà
190
    mov     ecx,eax                       ; Çàïîìèíàåì âûñîòó ñêèíà
Line 173... Line 191...
173
 
191
 
174
    xor     eax,eax                       ; Î÷èùàåì eax (mov eax,0) (Ôóíêöèÿ 0)
192
    xor     eax,eax                       ; Î÷èùàåì eax (mov eax,0) (Ôóíêöèÿ 0)
175
    mov     ebx,200 shl 16+250            ; [êîîðäèíàòà ïî îñè x]*65536 + [ðàçìåð ïî îñè x]
193
    mov     ebx,WIN_X shl 16+WIN_W        ; [êîîðäèíàòà ïî îñè x]*65536 + [ðàçìåð ïî îñè x]
176
    add     ecx,200 shl 16+195            ; Âûñîòà ñêèíà + [êîîðäèíàòà ïî y]*65536 + [ðàçìåð ïî y] (168 äëÿ âåðñèè 0.2)
194
    add     ecx,WIN_Y shl 16+WIN_H        ; Âûñîòà ñêèíà + [êîîðäèíàòà ïî y]*65536 + [ðàçìåð ïî y] (168 äëÿ âåðñèè 0.2)
177
    mov     edx,[sc.work]                 ; Âèäèìî ñòèëü îêíà ïî äåôîëòó
195
    mov     edx,[sc.work]                 ; Âèäèìî ñòèëü îêíà ïî äåôîëòó
178
    or      edx,0x34000000                ; Èëè îêíî ñî ñêèíîì ôèêñèðîâàííûõ ðàçìåðîâ
196
    or      edx,0x34000000                ; Èëè îêíî ñî ñêèíîì ôèêñèðîâàííûõ ðàçìåðîâ
179
    mov     edi,title                     ; Çàãîëîâîê îêíà
197
    mov     edi,title                     ; Çàãîëîâîê îêíà
Line 180... Line 198...
180
    int     0x40                          ; Ïðåðûâàíèå
198
    int     0x40                          ; Ïðåðûâàíèå
181
 
199
 
Line 182... Line 200...
182
    call    draw_palitra                  ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ
200
    call    draw_palitra                  ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ
183
    call    draw_result                   ; ÐÈÑÓÅÌ ÐÅÇÓËÜÒÀÒ
201
    call    draw_result                   ; ÐÈÑÓÅÌ ÐÅÇÓËÜÒÀÒ
184
 
202
 
185
    mov     eax,8                         ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó
203
    mov     eax,8                         ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó
186
    mov     ebx,89 shl 16+147             ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
204
    mov     ebx,110 shl 16+147            ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
Line 187... Line 205...
187
    mov     ecx,9 shl 16+147              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
205
    mov     ecx,9 shl 16+147              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
188
    mov     edx,0x60000007                ; Íà÷àëüíîå ID êíîïîê - 0xXYnnnnnn
206
    mov     edx,0x60000007                ; Íà÷àëüíîå ID êíîïîê - 0xXYnnnnnn
189
    int     0x40
207
    int     0x40
190
 
208
 
191
    mov     ebx,9 shl 16+12               ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
209
    mov     ebx,13 shl 16+12              ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
192
    mov     edx,0x60000008                ; ID = 8
210
    mov     edx,0x60000008                ; ID = 8
193
    mov     ecx,45 shl 16+85              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
211
    mov     ecx,51 shl 16+85              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
194
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì red
212
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì red
195
    add     ebx,26 shl 16                 ; Äîáàâëÿåì
213
    add     ebx,23 shl 16                 ; Äîáàâëÿåì
196
    inc     edx                           ; ID = 9
214
    inc     edx                           ; ID = 9
-
 
215
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì green
-
 
216
    add     ebx,23 shl 16                 ; Äîáàâëÿåì
-
 
217
    inc     edx                           ; ID = 10
-
 
218
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì blue
-
 
219
    add     ebx,23 shl 16                 ; Äîáàâëÿåì
-
 
220
    inc     edx                           ; ID = 11
-
 
221
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì alpha
-
 
222
 
-
 
223
    mov     eax,8                         ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó (ÑÌÅÍÀ ÖÂÅÒÀ)
Line 197... Line 224...
197
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì green
224
    mov     ebx,11 shl 16+20              ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
198
    add     ebx,26 shl 16                 ; Äîáàâëÿåì
225
    mov     ecx,12 shl 16+20              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
199
    inc     edx                           ; ID = 10
226
    mov     edx,0x6000000D                ; ID = 13
Line 207... Line 234...
207
    ; Îòðèñîâêà íèæíåé ïàíåëè
234
    ; Îòðèñîâêà íèæíåé ïàíåëè
208
    ;.................................................................................................
235
    ;.................................................................................................
209
    mov     eax,8                         ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó
236
    mov     eax,8                         ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó
210
    mov     ebx,4 shl 16+64               ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
237
    mov     ebx,4 shl 16+64               ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
211
    mov     ecx,169 shl 16+16             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
238
    mov     ecx,169 shl 16+16             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
212
    mov     edx,11                        ; ID = 11
239
    mov     edx,12                        ; ID = 12
213
    mov     esi,[sc.work_button]          ; öâåò
240
    mov     esi,[sc.work_button]          ; öâåò
214
    int     0x40
241
    int     0x40
Line 215... Line 242...
215
 
242
	
216
    mov     ebx,80 shl 16+102             ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
243
    mov     ebx,80 shl 16+102             ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
217
    mov     edx,12                        ; ID = 11
244
    mov     edx,14                        ; BACKGROUND button
Line 218... Line 245...
218
    int     0x40
245
    int     0x40
219
	
246
 
Line 228... Line 255...
228
    ;mov     ebx,247 shl 16+64             ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
255
    ;mov     ebx,247 shl 16+64             ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
229
    ;mov     edx,12                        ; ID = 12
256
    ;mov     edx,12                        ; ID = 12
230
    ;int     0x40
257
    ;int     0x40
Line 231... Line 258...
231
 
258
 
232
    mov     eax,38                        ; Ôóíêöèÿ 38 - íàðèñîâàòü îòðåçîê.
259
    mov     eax,38                        ; Ôóíêöèÿ 38 - íàðèñîâàòü îòðåçîê.
233
    mov     ebx,4 shl 16+236              ;[êîîðäèíàòà íà÷àëà ïî îñè x]*65536 + [êîîðäèíàòà êîíöà ïî îñè x] 
260
    mov     ebx,4 shl 16+257              ;[êîîðäèíàòà íà÷àëà ïî îñè x]*65536 + [êîîðäèíàòà êîíöà ïî îñè x] 
234
    mov     ecx,163 shl 16+163            ;[êîîðäèíàòà íà÷àëà ïî îñè y]*65536 + [êîîðäèíàòà êîíöà ïî îñè y] 
261
    mov     ecx,163 shl 16+163            ;[êîîðäèíàòà íà÷àëà ïî îñè y]*65536 + [êîîðäèíàòà êîíöà ïî îñè y] 
235
    mov     edx,0x00666666                ;0x00RRGGBB - öâåò 
262
    mov     edx,0x00666666                ;0x00RRGGBB - öâåò 
Line 236... Line 263...
236
    int     0x40
263
    int     0x40
Line 333... Line 360...
333
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
360
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
334
    mov     edx,0x222222                  ; öâåò
361
    mov     edx,0x222222                  ; öâåò
335
    mov     ecx,9 shl 16+73               ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
362
    mov     ecx,9 shl 16+73               ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
336
    mov     esi,2                         ; Ñ÷åò÷èê ëèíèé ïîäëîæåê
363
    mov     esi,2                         ; Ñ÷åò÷èê ëèíèé ïîäëîæåê
337
    re_draw:
364
    re_draw:
338
    mov     ebx,89 shl 16+73              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
365
    mov     ebx,110 shl 16+73             ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
339
    mov     edi,2                         ; Ñ÷åò÷èê êîëè÷åñòâà ïîäëîæåê
366
    mov     edi,2                         ; Ñ÷åò÷èê êîëè÷åñòâà ïîäëîæåê
340
    for_fon_loop:
367
    for_fon_loop:
341
      int     0x40                        ; Ïðåðûâàíèå
368
      int     0x40                        ; Ïðåðûâàíèå
342
      add     ebx,75 shl 16               ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî õ
369
      add     ebx,75 shl 16               ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî õ
343
      dec     edi                         ; Óìåíüøàåì ñ÷åò÷èê êíîïîê
370
      dec     edi                         ; Óìåíüøàåì ñ÷åò÷èê êíîïîê
Line 352... Line 379...
352
    ; Îòðèñîâêà êíîïîê ïî öèêëó
379
    ; Îòðèñîâêà êíîïîê ïî öèêëó
353
    ;.................................................................................................
380
    ;.................................................................................................
354
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
381
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
355
    mov     edx,0x0FFFFFFF                ; öâåò
382
    mov     edx,0x0FFFFFFF                ; öâåò
356
    mov     esi,4                         ; Ñ÷åò÷èê êîëè÷åñòâà àáçàöåâ (#4,8)
383
    mov     esi,4                         ; Ñ÷åò÷èê êîëè÷åñòâà àáçàöåâ (#4,8)
357
    mov     ebx,78 shl 16+8               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
384
    mov     ebx,99 shl 16+8               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
358
    for_abz:
385
    for_abz:
359
      ;;push    esi                       ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê
386
      ;;push    esi                       ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê
360
      cmp     esi,2
387
      cmp     esi,2
361
      jne     x2_line
388
      jne     x2_line
362
      mov     ebx,78 shl 16+8
389
      mov     ebx,99 shl 16+8
363
      x2_line:
390
      x2_line:
364
      add     ebx,3 shl 16                ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî x
391
      add     ebx,3 shl 16                ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî x
365
      mov     edi,8                       ; Ñ÷åò÷èê êîëè÷åñòâà êíîïîê â ñòðîêå
392
      mov     edi,8                       ; Ñ÷åò÷èê êîëè÷åñòâà êíîïîê â ñòðîêå
366
      for_stolbik:
393
      for_stolbik:
367
        push    edi                       ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê
394
        push    edi                       ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê
Line 477... Line 504...
477
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
504
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
478
;end_sub_blue-----------------------------------------------------------------------------------------
505
;end_sub_blue-----------------------------------------------------------------------------------------
Line 479... Line 506...
479
 
506
 
480
draw_result:
507
draw_result:
-
 
508
    ;.................................................................................................
-
 
509
    ; Áîëüøàÿ ðàìêà âûâîäà ðåçóëüòàòà
-
 
510
    ;.................................................................................................
-
 
511
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
-
 
512
    mov     edx,0x00666666                ; öâåò-îáâîäêè
-
 
513
    mov     ebx,4 shl 16+98               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
514
    mov     ecx,9 shl 16+148              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
515
    int     0x40
-
 
516
    mov     edx,0x00F3F3F3                ; öâåò-ôîíà
-
 
517
    mov     ebx,5 shl 16+96               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
518
    mov     ecx,10 shl 16+146             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
519
    int     0x40
-
 
520
 
481
    ;.................................................................................................
521
    ;.................................................................................................
482
    ; Îòðèñîâêà ðåçóëüòàòà öâåòà â hex
522
    ; Îòðèñîâêà ðåçóëüòàòà öâåòà â hex color2
483
    ;.................................................................................................
523
    ;.................................................................................................
-
 
524
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
-
 
525
    ; color 2 - draw fringle
-
 
526
    mov     edx,0x222222                  ; öâåò-îáâîäêè
-
 
527
    mov     ebx,16 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
528
    mov     ecx,16 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
529
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
-
 
530
    ; color 2 - draw color
-
 
531
    mov     edx,[color2]                  ; öâåò
-
 
532
    mov     ebx,17 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
533
    mov     ecx,17 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
534
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
484
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
535
    ; color 1 - draw fringle
485
    mov     edx,0x222222                  ; öâåò-îáâîäêè
536
    mov     edx,0x222222                  ; öâåò-îáâîäêè
486
    mov     ebx,4 shl 16+15               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
537
    mov     ebx,11 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
487
    mov     ecx,9 shl 16+15               ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
538
    mov     ecx,12 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
539
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
488
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
540
    ; value - draw fringle
-
 
541
    mov     ebx,34 shl 16+62              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
489
    mov     ebx,23 shl 16+62              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
542
    mov     ecx,16 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
Line -... Line 543...
-
 
543
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
490
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
544
 
491
 
545
    ; color 2 - draw color
492
    mov     edx,[color]                   ; öâåò
546
    mov     edx,[color]                   ; öâåò
493
    mov     ebx,5 shl 16+13               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
547
    mov     ebx,12 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
548
    mov     ecx,13 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
494
    mov     ecx,10 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
549
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
495
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
550
    ; value - draw background
-
 
551
    mov     edx,0xFFFFFF                  ; öâåò-ôîíà
496
    mov     edx,0xFFFFFF                  ; öâåò-ôîíà
552
    mov     ebx,35 shl 16+60              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
Line 497... Line 553...
497
    mov     ebx,24 shl 16+60              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
553
    mov     ecx,17 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
498
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
554
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
499
 
555
 
500
    mov     eax,47                        ; Ôóíêöèÿ 47 - âûâîä ÷èñëà â îêíî
556
    mov     eax,47                        ; Ôóíêöèÿ 47 - âûâîä ÷èñëà â îêíî
501
    mov     ecx,[color]                   ; ÷èñëî (ïðè bl=0) èëè óêàçàòåëü (ïðè bl=1)
557
    mov     ecx,[color]                   ; ÷èñëî (ïðè bl=0) èëè óêàçàòåëü (ïðè bl=1)
502
    mov     esi,0x0                       ; 0xX0RRGGBB
558
    mov     esi,0x0                       ; 0xX0RRGGBB
Line 503... Line 559...
503
    mov     ebx,256+8 shl 16              ; ïàðàìåòðû ïðåîáðàçîâàíèÿ ÷èñëà â òåêñò (HEX)
559
    mov     ebx,256+8 shl 16              ; ïàðàìåòðû ïðåîáðàçîâàíèÿ ÷èñëà â òåêñò (HEX)
504
    mov     edx,34 shl 16+13              ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y]
560
    mov     edx,45 shl 16+20              ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y]
505
    int     0x40                          ; Ïðåðûâàíèå - âûâîäèì ðåçóëüòàò â îêíî (HEX)
561
    int     0x40                          ; Ïðåðûâàíèå - âûâîäèì ðåçóëüòàò â îêíî (HEX)
506
 
562
 
507
    mov     eax,4                         ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå
563
    mov     eax,4                         ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå
508
    mov	    ebx,27*65536+13               ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
564
    mov	    ebx,38*65536+20               ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
Line 509... Line 565...
509
    mov	    ecx,0x0                       ; öâåò òåêñòà RRGGBB
565
    mov	    ecx,0x0                       ; öâåò òåêñòà RRGGBB
510
    mov	    edx,hex                       ; ðèñóåì '#'
566
    mov	    edx,hex                       ; ðèñóåì '#'
511
    mov	    esi,1                         ; äëèíà òåêñòà â áàéòàõ
567
    mov	    esi,1                         ; äëèíà òåêñòà â áàéòàõ
512
    int	    0x40
568
    int	    0x40
513
 
-
 
514
    ;.................................................................................................
-
 
515
    ; Îòðèñîâêà ïîëåé äëÿ r g b çíà÷åíèé
-
 
516
    ;.................................................................................................
-
 
517
    call    get_spectr
-
 
518
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê Leency{
-
 
519
    mov     edx,0x222222                  ; öâåò-îáâîäêè
-
 
520
    mov     ebx,4 shl 16+24               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
521
    mov     ecx,142 shl 16+15             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
522
    int     0x40 
-
 
523
    mov     ebx,33 shl 16+24              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
524
    int     0x40 
-
 
525
    mov     ebx,62 shl 16+24              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
526
    int     0x40 
-
 
527
    mov     edx,0xFFFFFF                  ; öâåò-îáâîäêè
-
 
528
    mov     ebx,5 shl 16+22               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
529
    mov     ecx,143 shl 16+13             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
Line 530... Line -...
530
    int     0x40 
-
 
531
    mov     ebx,34 shl 16+22              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
532
    int     0x40 
-
 
533
    mov     ebx,63 shl 16+22              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
569
 
534
    int     0x40 
570
    ;.................................................................................................
535
 
571
    ; Îòðèñîâêà r g b çíà÷åíèé
Line 536... Line 572...
536
    ;.................................................................................................
572
    ;.................................................................................................
537
    ; Îòðèñîâêà r g b çíà÷åíèé
573
    call    get_spectr
538
    ;.................................................................................................
574
 
Line 539... Line 575...
539
    movzx   eax,[cred]                    ; êðàñíûé
575
    movzx   eax,[cred]                    ; êðàñíûé
540
    mov	    ebx,7*65536+146               ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
576
    mov     ebx,9*65536+142               ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
541
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
577
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
Line 542... Line -...
542
 
-
 
543
    movzx   eax,[cgreen]                  ; çåëåíûé
-
 
544
    mov	    ebx,36*65536+146              ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
-
 
545
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
-
 
546
 
578
 
547
    movzx   eax,[cblue]                   ; ñèíèé
-
 
548
    mov	    ebx,65*65536+146              ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
-
 
549
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
-
 
550
 
-
 
551
    ;.................................................................................................
-
 
552
    ; Îáíóëÿåì ôîí
-
 
553
    ;.................................................................................................
-
 
554
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
-
 
555
    mov     edx,[sc.work]                 ; öâåò-îáâîäêè
-
 
556
    mov     ebx,8 shl 16+66               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
-
 
557
    mov     ecx,40 shl 16+87              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
558
    int     0x40
-
 
559
 
-
 
560
    ; mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
-
 
561
    ; mov     edx,0x222222                  ; öâåò-îáâîäêè
579
    movzx   eax,[cgreen]                  ; çåëåíûé
562
    ; mov     ebx,4 shl 16+24               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
580
    mov     ebx,32*65536+142              ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
563
    ; mov     ecx,30 shl 16+105             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
564
    ; int     0x40
-
 
565
    ; add     ebx,29 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
-
 
566
    ; int     0x40
-
 
567
    ; add     ebx,29 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
-
 
568
    ; int     0x40
-
 
569
 
-
 
Line 570... Line 581...
570
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
581
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
571
    mov     edx,[sc.work]                 ; öâåò-îáâîäêè
582
 
572
    mov     ebx,5 shl 16+22               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
583
    movzx   eax,[cblue]                   ; ñèíèé
573
    mov     ecx,31 shl 16+103             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
584
    mov     ebx,55*65536+142              ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
574
    int     0x40
585
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
575
    add     ebx,29 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
586
 
576
    int     0x40
587
    movzx   eax,[calpha]                  ; àëüôà
577
    add     ebx,29 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
588
    mov     ebx,78*65536+142              ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
578
    int     0x40
589
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
579
 
590
 
580
    ;.................................................................................................
591
    ;.................................................................................................
581
    ; Âûâîäèì áóêâû r g b
592
    ; Âûâîäèì áóêâû r g b a
582
    ;.................................................................................................
593
    ;.................................................................................................
583
    mov     eax,4                         ; 4 - âûâåñòè ñòðîêó òåêñòà â îêíî
594
    mov     eax,4                         ; 4 - âûâåñòè ñòðîêó òåêñòà â îêíî
Line 584... Line 595...
584
    mov     ebx,12 shl 16+34              ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y]
595
    mov     ebx,16 shl 16+40              ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y]
585
    mov     ecx,0x0                       ; 0xX0RRGGBB (RR, GG, BB çàäàþò öâåò òåêñòà)
596
    mov     ecx,0x0                       ; 0xX0RRGGBB (RR, GG, BB çàäàþò öâåò òåêñòà)
586
    mov     edx,cname                     ; óêàçàòåëü íà íà÷àëî ñòðîêè
597
    mov     edx,cname                     ; óêàçàòåëü íà íà÷àëî ñòðîêè
587
    mov     esi,1                         ; âûâîäèòü esi ñèìâîëîâ
598
    mov     esi,1                         ; âûâîäèòü esi ñèìâîëîâ
588
    newline:                              ; öèêë
599
    newline:                              ; öèêë
589
      int     0x40                        ; Ïðåðûâàíèå
600
      int     0x40                        ; Ïðåðûâàíèå
590
      add     ebx,29 shl 16               ; Äîáàâëÿåì
601
      add     ebx,23 shl 16               ; Äîáàâëÿåì
591
      add     edx,1                       ; Äîáàâëÿåì
602
      add     edx,1                       ; Äîáàâëÿåì
592
      cmp     [edx],byte 'x'              ; Ñðàâíåíèå ñ áàéòîì õ
603
      cmp     [edx],byte 'x'              ; Ñðàâíåíèå ñ áàéòîì õ
593
    jne    newline                        ; Åñëè íå íóëü èëè íå ðàâíî
604
    jne    newline                        ; Åñëè íå íóëü èëè íå ðàâíî
594
 
605
 
-
 
606
    ;.................................................................................................
-
 
607
    ; Îòðèñîâêà ñëàéäåðîâ
595
    ;.................................................................................................
608
    ;.................................................................................................
Line 596... Line 609...
596
    ; Îòðèñîâêà ñëàéäåðîâ
609
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
597
    ;.................................................................................................
610
    mov     edx,0x222222                  ; öâåò-îáâîäêè
598
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
611
    mov     ebx,16 shl 16+4               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
599
    mov     edx,0x222222                  ; öâåò-îáâîäêè
612
    mov     ecx,51 shl 16+86              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
600
    mov     ebx,12 shl 16+4               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
613
    int     0x40
601
    mov     ecx,45 shl 16+85              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
614
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
602
    int     0x40
615
    int     0x40
603
    add     ebx,29 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
616
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
604
    int     0x40
617
    int     0x40
-
 
618
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
-
 
619
    int     0x40
-
 
620
 
605
    add     ebx,29 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
621
    mov     edx,0xFA0919                  ; öâåò-îáâîäêè
Line 606... Line 622...
606
    int     0x40
622
    mov     ebx,17 shl 16+2               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
607
 
623
    mov     ecx,52 shl 16+84              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
608
    mov     edx,0xFA0919                  ; öâåò-îáâîäêè
624
    int     0x40
609
    mov     ebx,13 shl 16+2               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
625
    mov     edx,0x08CE19                  ; öâåò-îáâîäêè
610
    mov     ecx,46 shl 16+83              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
626
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
611
    int     0x40
627
    int     0x40
612
    mov     edx,0x08CE19                  ; öâåò-îáâîäêè
628
    mov     edx,0x0909FF                  ; öâåò-îáâîäêè
613
    add     ebx,29 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
629
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
614
    int     0x40
630
    int     0x40
615
    mov     edx,0x0909FF                  ; öâåò-îáâîäêè
631
    mov     edx,0xE4E4E4                  ; öâåò-îáâîäêè
616
    add     ebx,29 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
632
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
617
    int     0x40
633
    int     0x40
618
 
634
 
-
 
635
    ;.................................................................................................
-
 
636
    ; Îòðèñîâêà ïîëçóíêîâ
-
 
637
    ;.................................................................................................
Line 619... Line 638...
619
    ;.................................................................................................
638
    mov     edx,0x0                       ; öâåò-ïîëçóíêîâ
620
    ; Îòðèñîâêà ïîëçóíêîâ
639
    mov     ebx,17 shl 16+11              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
Line 621... Line 640...
621
    ;.................................................................................................
640
    movzx   eax,[cred]                    ; áåðåì çíà÷åíèå öâåòà
622
    mov     edx,0x0                       ; öâåò-ïîëçóíêîâ
641
    call    draw_slider
623
    mov     ebx,10 shl 16+8               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
642
    add     ebx,23 shl 16
624
    movzx   eax,[cred]                    ; áåðåì çíà÷åíèå öâåòà
643
    movzx   eax,[cgreen]                  ; áåðåì çíà÷åíèå öâåòà
625
    call    draw_slider
644
    call    draw_slider
626
    add     ebx,29 shl 16
645
    add     ebx,23 shl 16
627
    movzx   eax,[cgreen]                  ; áåðåì çíà÷åíèå öâåòà
646
    movzx   eax,[cblue]                   ; áåðåì çíà÷åíèå öâåòà
628
    call    draw_slider
647
    call    draw_slider
629
    add     ebx,29 shl 16
648
    add     ebx,23 shl 16
630
    movzx   eax,[cblue]                   ; áåðåì çíà÷åíèå öâåòà
649
    movzx   eax,[calpha]                  ; áåðåì çíà÷åíèå öâåòà
-
 
650
    call    draw_slider
-
 
651
 
-
 
652
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
-
 
653
;end_draw_result
-
 
654
 
-
 
655
draw_slider:
-
 
656
    xor     ecx,ecx
631
    call    draw_slider
657
    mov     cl,0x3                        ; áóäåì äåëèòü åãî íà 3 òàê êàê ïîëçóíêè äëèííîé 85 ïèêñåëåé
Line 632... Line 658...
632
 
658
    div     cl                            ; äåëèì - öåëîå â al îñòàòîê â ah
Line 633... Line 659...
633
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
659
    mov     cl,136                        ; íèæíÿÿ òî÷êà ïîëçóíêà
Line 655... Line 681...
655
    mov     ebx,10                        ; óñòàíàâëèâàåì îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ
681
    mov     ebx,10                        ; óñòàíàâëèâàåì îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ
656
    mov     edi,buff                      ; óêàçàòåëü íà ñòðîêó áóôåðà
682
    mov     edi,buff                      ; óêàçàòåëü íà ñòðîêó áóôåðà
657
    call    int2ascii                     ; êîíâåðòèðóåì ÷èñëî è ëîæèì êàê ñòðîêó â áóôåð + esi äëèíà
683
    call    int2ascii                     ; êîíâåðòèðóåì ÷èñëî è ëîæèì êàê ñòðîêó â áóôåð + esi äëèíà
658
    mov     eax,4                         ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå
684
    mov     eax,4                         ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå
659
    pop     ebx                           ; äîñòàåì èç ñòåêà ïðèñëàííûå êîîðäèíàòû
685
    pop     ebx                           ; äîñòàåì èç ñòåêà ïðèñëàííûå êîîðäèíàòû
-
 
686
    cmp     esi,2                         ; ÖÅÍÒÐÈÐÎÂÀÍÈÅ ÒÅÊÑÒÀ
-
 
687
    jne     draw_value_1
-
 
688
    add     ebx,4 shl 16
-
 
689
    jmp     draw_value_e
-
 
690
  draw_value_1:
-
 
691
    cmp     esi,1
-
 
692
    jne     draw_value_e
-
 
693
    add     ebx,7 shl 16
-
 
694
  draw_value_e:
660
    mov	    ecx,0x0                       ; öâåò òåêñòà RRGGBB
695
    mov     ecx,0x0                       ; öâåò òåêñòà RRGGBB
661
    mov	    edx,buff                      ; óêàçàòåëü íà íà÷àëî òåêñòà
696
    mov     edx,buff                      ; óêàçàòåëü íà íà÷àëî òåêñòà
662
    int	    0x40
697
    int     0x40
663
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
698
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
664
;end_draw_value
699
;end_draw_value
Line 712... Line 747...
712
 
747
 
713
get_spectr:
748
get_spectr:
714
    ;.................................................................................................
749
    ;.................................................................................................
715
    ; âîçâðàùàåò r,g,b ñîñòîâëÿþùèå öâåòà
750
    ; âîçâðàùàåò r,g,b ñîñòîâëÿþùèå öâåòà
716
    ;.................................................................................................
751
    ;.................................................................................................
-
 
752
    ;; get blue
-
 
753
    ;mov     ecx,[color]
-
 
754
    ;movzx   eax,cl
-
 
755
    ;mov     [cblue],al
-
 
756
    ;; get red
-
 
757
    ;mov     eax,ecx
-
 
758
    ;xor     ax,ax     ; à íàäî ëè????
-
 
759
    ;shr     eax,16
-
 
760
    ;mov     [cred],al
-
 
761
    ;; get green
-
 
762
    ;shl      ecx,16
-
 
763
    ;shr      ecx,24
-
 
764
    ;mov      [cgreen],cl
717
    ; get blue
765
 
718
    mov     ecx,[color]
-
 
719
    movzx   eax,cl
766
    mov     ecx,[color]
720
    mov     [cblue],al
-
 
721
    ; get red
-
 
722
    mov     eax,ecx
-
 
723
    xor     ax,ax
-
 
724
    shr     eax,16
-
 
725
    mov     [cred],al
-
 
726
    ; get green
-
 
727
    shl      ecx,16
767
    mov     [cblue],cl
728
    shr      ecx,24
768
    shr     ecx,8
-
 
769
    mov     [cgreen],cl
-
 
770
    shr     ecx,8
-
 
771
    mov     [cred],cl
-
 
772
    shr     ecx,8
729
    mov      [cgreen],cl
773
    mov     [calpha],cl
730
    ret                                   ; è âîçâðàùàåì óïðàâëåíèå
774
    ret                                   ; è âîçâðàùàåì óïðàâëåíèå
Line 731... Line 775...
731
;end_get_spectr
775
;end_get_spectr
732
 
776
 
733
set_spectr:
777
set_spectr:
734
    ;.................................................................................................
778
    ;.................................................................................................
-
 
779
    ; óñòàíàâëèâàåò èç r,g,b öâåò
735
    ; óñòàíàâëèâàåò èç r,g,b öâåò
780
    ;.................................................................................................
736
    ;.................................................................................................
781
    movzx   eax,[calpha]
737
    ; get blue
782
    shl     eax,8
738
    movzx   eax,[cred]
783
    mov     al,[cred]
739
    shl     eax,8
784
    shl     eax,8
740
    mov     al,[cgreen]
785
    mov     al,[cgreen]
741
    shl     eax,8
786
    shl     eax,8
Line 772... Line 817...
772
;****************************************************************************************************|
817
;****************************************************************************************************|
773
; ÁËÎÊ ÏÅÐÅÌÅÍÍÛÕ È ÊÎÍÑÒÀÍÒ                                                                         |
818
; ÁËÎÊ ÏÅÐÅÌÅÍÍÛÕ È ÊÎÍÑÒÀÍÒ                                                                         |
774
;----------------------------------------------------------------------------------------------------/
819
;----------------------------------------------------------------------------------------------------/
Line 775... Line 820...
775
 
820
 
-
 
821
    color       dd 00000000h              ; õðàíèò çíà÷åíèå âûáðàííîãî öâåòà
776
    color       dd 00000000h              ; õðàíèò çíà÷åíèå âûáðàííîãî öâåòà
822
    color2      dd 00FFFFFFh              ; õðàíèò çíà÷åíèå âòîðîãî âûáðàííîãî öâåòà
777
    mouse_x     dd 0                      ; õðàíèò ãëîáàëüíóþ õ êîîðäèíàòó ìûøè
823
    mouse_x     dd 0                      ; õðàíèò ãëîáàëüíóþ õ êîîðäèíàòó ìûøè
778
    mouse_y     dd 0                      ; õðàíèò ãëîáàëüíóþ ó êîîðäèíàòó ìûøè
824
    mouse_y     dd 0                      ; õðàíèò ãëîáàëüíóþ ó êîîðäèíàòó ìûøè
779
    desctop_w   dd 0                      ; õðàíèò øèðèíó ýêðàíà
825
    desctop_w   dd 0                      ; õðàíèò øèðèíó ýêðàíà
780
    sc          system_colors             ; õðàíèò ñòðóêòóðó ñèñòåìíûõ öâåòîâ ñêèíà
826
    sc          system_colors             ; õðàíèò ñòðóêòóðó ñèñòåìíûõ öâåòîâ ñêèíà
781
    title       db 'Palitra v0.3',0       ; õðàíèò èìÿ ïðîãðàììû
827
    title       db 'Palitra v0.4',0       ; õðàíèò èìÿ ïðîãðàììû
782
    hex         db '#',0                  ; äëÿ âûâîäà ðåø¸òêè êàê òåêñòà
828
    hex         db '#',0                  ; äëÿ âûâîäà ðåø¸òêè êàê òåêñòà
783
    cname       db 'RGBx'                 ; õðàíèò ðàçðÿäû öâåòîâ (red,green,blue) x-ìåòêà êîíöà
829
    cname       db 'RGBAx'                ; õðàíèò ðàçðÿäû öâåòîâ (red,green,blue) x-ìåòêà êîíöà
784
    cred        db 0                      ; õðàíèì êðàñíûé ñïåêðò
830
    cred        db 0                      ; õðàíèì êðàñíûé ñïåêðò
785
    cgreen      db 0                      ; õðàíèì çåëåíûé ñïåêòð
831
    cgreen      db 0                      ; õðàíèì çåëåíûé ñïåêòð
-
 
832
    cblue       db 0                      ; õðàíèì ñèíèé ñïåêòð
786
    cblue       db 0                      ; õðàíèì ñèíèé ñïåêòð
833
    calpha      db 0                      ; õðàíèì ïðîçðà÷íîñòü
787
    buff        db '000',0
834
    buff        db '000',0
788
    bnext       db 'NEXT         BACKGROUND',0; èìÿ êíîïêè
835
    bnext       db 'NEXT         BACKGROUND',0; èìÿ êíîïêè
-
 
836
    pnext       dd 0                      ; ñ÷åò÷èê ïåðåêëþ÷åíèÿ ïàëèòðû
-
 
837
 
789
    pnext       dd 0                      ; ñ÷åò÷èê ïåðåêëþ÷åíèÿ ïàëèòðû
838