Subversion Repositories Kolibri OS

Rev

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

Rev 3088 Rev 3091
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                                                         |
5
;; Charset:DOS-866 Font:Courier New Size:9pt                                                         |
6
;.....................................................................................................
6
;.....................................................................................................
7
;; compiler:     FASM 1.69.31                                                                        |
7
;; compiler:     FASM 1.69.31                                                                        |
8
;; version:      0.3.0                                                                               |
8
;; version:      0.3.0                                                                               |
9
;; last update:  08/11/2012                                                                          |
9
;; last update:  08/11/2012                                                                          |
10
;; e-mail:       dr.steshin@gmail.com                                                                |
10
;; e-mail:       dr.steshin@gmail.com                                                                |
11
;.....................................................................................................
11
;.....................................................................................................
12
;; History:                                                                                          |
12
;; History:                                                                                          |
13
;; 0.1.0 - Ïåðâàÿ âåðñèÿ ïðîãðàììû.                                                                  |
13
;; 0.1.0 - ¥à¢ ï ¢¥àá¨ï ¯à®£à ¬¬ë.                                                                  |
14
;; 0.2.0 - Èñïðàâëåíî ïîïàäàíèå â ñåòêó, áåðåòñÿ áëèæàéøèé ïî äèàãîíàëè ïèêñåëü.                     |
14
;; 0.2.0 - ˆá¯à ¢«¥­® ¯®¯ ¤ ­¨¥ ¢ á¥âªã, ¡¥à¥âáï ¡«¨¦ ©è¨© ¯® ¤¨ £®­ «¨ ¯¨ªá¥«ì.                     |
15
;;       - Äîáàâëåíû ïîëçóíêè, äëÿ ðåãóëèðîâàíèÿ rgb ñîñòàâëÿþùèõ öâåòà è âûâîä ýòèõ ñîñòàâëÿþùèõ.   |
15
;;       - „®¡ ¢«¥­ë ¯®«§ã­ª¨, ¤«ï ॣ㫨஢ ­¨ï rgb á®áâ ¢«ïîé¨å æ¢¥â  ¨ ¢ë¢®¤ íâ¨å á®áâ ¢«ïîé¨å.   |
16
;;       - Óáðàí âûâîä öâåòà â áèíàðíîì âèäå (ïîêà çà íå íàäîáíîñòüþ è íå àêòóàëüíîñòüþ).            |
16
;;       - “¡à ­ ¢ë¢®¤ æ¢¥â  ¢ ¡¨­ à­®¬ ¢¨¤¥ (¯®ª  §  ­¥ ­ ¤®¡­®áâìî ¨ ­¥  ªâã «ì­®áâìî).            |
17
;;       - Ìåëêàÿ êîñìåòèêà.                                                                         |
17
;;       - Œ¥«ª ï ª®á¬¥â¨ª .                                                                         |
18
;; 0.3.0 - Äîáàâëåíî ïåðåêëþ÷åíèå âèäîâ öâåòîâûõ ñõåì (êíîïêà NEXT)                                  |
18
;; 0.3.0 - „®¡ ¢«¥­® ¯¥à¥ª«î祭¨¥ ¢¨¤®¢ 梥⮢ëå á奬 (ª­®¯ª  NEXT)                                  |
19
;;       - Óëó÷øåíû ïîëçóíêè, ïðîèçâîäèòñÿ îáðàáîòêà íàæàòèÿ ðÿäîì ñ ïîëçóíêîì.                      |
19
;;       - “«ãçè¥­ë ¯®«§ã­ª¨, ¯à®¨§¢®¤¨âáï ®¡à ¡®âª  ­ ¦ â¨ï à冷¬ á ¯®«§ã­ª®¬.                      |
20
;;       - ×èñëî ñåòîê â öâåòîâîé ñõåìå óìåíüøåíî ñ 6 äî 4 (êðàòíîñòü 256, èíà÷å äóáëèðîâàíèå öâåòà).|
20
;;       - —¨á«® á¥â®ª ¢ 梥⮢®© á奬¥ 㬥­ì襭® á 6 ¤® 4 (ªà â­®áâì 256, ¨­ ç¥ ¤ã¡«¨à®¢ ­¨¥ 梥â ).|
21
;;       - Ìåëêàÿ êîñìåòèêà.                                                                         |
21
;;       - Œ¥«ª ï ª®á¬¥â¨ª .                                                                         |
22
;; 0.4.0 - Äîáàâëåíî ïåðåêëþ÷åíèå ìåæäó äâóìÿ öâåòàìè                                                |
22
;; 0.4.0 - „®¡ ¢«¥­® ¯¥à¥ª«î祭¨¥ ¬¥¦¤ã ¤¢ã¬ï 梥⠬¨                                                |
23
;;       - Äîáàâëåí ïîëçóíîê ðåãóëèðîâàíèÿ ïðîçðà÷íîñòè (áåç âèçóàëèçàöèè).                          |
23
;;       - „®¡ ¢«¥­ ¯®«§ã­®ª ॣ㫨஢ ­¨ï ¯à®§à ç­®á⨠(¡¥§ ¢¨§ã «¨§ æ¨¨).                          |
24
;;       - Äîáàâëåíî âûðàâíèâàíèå çíà÷åíèé rgba ïî öåíòðó, â çàâèñèìîñòè îò äëèííû.                  |
24
;;       - „®¡ ¢«¥­® ¢ëà ¢­¨¢ ­¨¥ §­ ç¥­¨© rgba ¯® 業âàã, ¢ § ¢¨á¨¬®á⨠®â ¤«¨­­ë.                  |
25
;;       - Êîñìåòè÷åñêèå ïðàâêè.                                                                     |
25
;;       - Š®á¬¥â¨ç¥áª¨¥ ¯à ¢ª¨.                                                                     |
26
;;       - Íåáîëüøàÿ îïòèìèçàöèÿ.                                                                    |
26
;;       - ¥¡®«ìè ï ®¯â¨¬¨§ æ¨ï.                                                                    |
-
 
27
;; 0.5.0 - „®¡ ¢«¥­  ª­®¯ª  ᬥ­ë ä®­  à ¡®ç¥£® á⮫  (®â Leency).                                   |
-
 
28
;;       - „®¡ ¢«¥­® ¨§¬¥­¥­¨¥ ä®­  à ¡®ç¥£® á⮫  £à ¤¨¥­â­®© § «¨¢ª®©.                             |
-
 
29
;;       - Š®á¬¥â¨ç¥áª¨¥ ¯à ¢ª¨.                                                                     |
-
 
30
;;       - ¥¡®«ìè ï ¤¥®¯â¨¬¨§ æ¨ï.                                                                  |
27
;.....................................................................................................
31
;.....................................................................................................
28
;; All rights reserved.                                                                              |
32
;; All rights reserved.                                                                              |
29
;;                                                                                                   |
33
;;                                                                                                   |
30
;; Redistribution and use in source and binary forms, with or without modification, are permitted    |
34
;; Redistribution and use in source and binary forms, with or without modification, are permitted    |
31
;; provided that the following conditions are met:                                                   |
35
;; provided that the following conditions are met:                                                   |
Line 49... Line 53...
49
;....................................................................................................|
53
;....................................................................................................|
Line 50... Line 54...
50
 
54
 
51
 
55
 
52
;#___________________________________________________________________________________________________
56
;#___________________________________________________________________________________________________
53
;****************************************************************************************************|
57
;****************************************************************************************************|
54
; ÇÀÃÎËÎÂÎÊ ÈÑÏÎËÍßÅÌÎÃÎ ÔÀÉËÀ ÏÐÈËÎÆÅÍÈß ÄËß ÊÎËÈÁÐÈ ÎÑ                                             |
58
; ‡€ƒŽ‹Ž‚ŽŠ ˆ‘Ž‹Ÿ…ŒŽƒŽ ”€‰‹€ ˆ‹Ž†…ˆŸ „‹Ÿ ŠŽ‹ˆˆ Ž‘                                             |
55
;----------------------------------------------------------------------------------------------------/
59
;----------------------------------------------------------------------------------------------------/
Line 56... Line 60...
56
  use32
60
  use32
57
  org	 0x0
61
  org	 0x0
58
 
62
 
59
  db	 'MENUET01'
63
  db	 'MENUET01'
60
  dd	 0x01
64
  dd	 0x01
61
  dd	 START
65
  dd	 START
62
  dd	 I_END
66
  dd	 I_END
63
  dd	 0x1000
67
  dd	 0x100000
Line 64... Line 68...
64
  dd	 0x1000
68
  dd	 0x1000
65
  dd	 0x0
69
  dd	 0x0
66
  dd	 0x0
70
  dd	 0x0
67
 
71
 
68
include '../../../macros.inc'
72
  include '..\..\..\macros.inc'
Line 69... Line 73...
69
  WIN_W      equ 271                      ; øèðèíà îêíà
73
  WIN_W      equ 295                      ; è¨à¨­  ®ª­ 
70
  WIN_H      equ 192                      ; âûñîòà îêíà
74
  WIN_H      equ 195                      ; ¢ëá®â  ®ª­ 
71
  WIN_X      equ 250                      ; êîîðäèíàòà õ îêíà
75
  WIN_X      equ 250                      ; ª®®à¤¨­ â  å ®ª­ 
72
  WIN_Y      equ 190                      ; êîîðäèíàòà ó îêíà
76
  WIN_Y      equ 190                      ; ª®®à¤¨­ â  ã ®ª­ 
73
 
77
 
74
START:
78
START:
75
;#___________________________________________________________________________________________________
79
;#___________________________________________________________________________________________________
76
;****************************************************************************************************|
80
;****************************************************************************************************|
77
; ÎÑÍÎÂÍÎÉ ÖÈÊË ÏÐÎÃÐÀÌÌÛ - ÎÁÐÀÁÎÒÊÀ ÑÎÁÛÒÈÉ                                                        |
81
; Ž‘Ž‚Ž‰ –ˆŠ‹ Žƒ€ŒŒ› - Ž€Ž’Š€ ‘Ž›’ˆ‰                                                        |
78
;----------------------------------------------------------------------------------------------------/
82
;----------------------------------------------------------------------------------------------------/
79
red:
83
red:
80
    call draw_window                      ; âûçûâàåì ïåðåðèñîâêó îêíà ïðèëîæåíèÿ
84
    call draw_main                        ; ¢ë§ë¢ ¥¬ ¯¥à¥à¨á®¢ªã ®ª­  ¯à¨«®¦¥­¨ï
81
still:
85
still:
82
    mcall   10                            ; ôóíêöèÿ 10 - æäàòü ñîáûòèÿ
86
    mcall   10                            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
83
    cmp     eax,1                         ; ïåðåðèñîâàòü îêíî ?
87
    cmp     eax,1                         ; ¯¥à¥à¨á®¢ âì ®ª­® ?
84
    je      red                           ; åñëè äà - íà ìåòêó red
88
    je      red                           ; ¥á«¨ ¤  - ­  ¬¥âªã red
85
    cmp     eax,2                         ; íàæàòà êëàâèøà ?
89
    cmp     eax,2                         ; ­ ¦ â  ª« ¢¨è  ?
Line 86... Line -...
86
    je      key                           ; åñëè äà - íà key
-
 
87
    cmp     eax,3                         ; íàæàòà êíîïêà ?
90
    je      key                           ; ¥á«¨ ¤  - ­  key
88
    je      button                        ; åñëè äà - íà button
91
    cmp     eax,3                         ; ­ ¦ â  ª­®¯ª  ?
89
    jmp     still                         ; åñëè äðóãîå ñîáûòèå - â íà÷àëî öèêëà
92
    je      button                        ; ¥á«¨ ¤  - ­  button
90
;end_still
93
    jmp     still                         ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
Line 91... Line 94...
91
 
94
;end_still
92
 
95
 
93
key:                                      ; íàæàòà êëàâèøà íà êëàâèàòóðå
96
key:                                      ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
94
    mcall   2                             ; ôóíêöèÿ 2 - ñ÷èòàòü êîä ñèìâîëà (â ah) (òóò â ïðèíöèïå íå íóæíà)
97
    mcall   2                             ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah) (âãâ ¢ ¯à¨­æ¨¯¥ ­¥ ­ã¦­ )
95
    jmp     still                         ; âåðíóòüñÿ ê íà÷àëó öèêëà
98
    jmp     still                         ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
96
;end_key
99
;end_key
97
 
100
 
98
button:
101
button:
-
 
102
    mcall   17                            ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
99
    mcall   17                            ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè
103
    cmp     ah, 1                         ; ¥á«¨ ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
100
    cmp     ah, 1                         ; åñëè íàæàòà êíîïêà ñ íîìåðîì 1,
104
    jz      bexit                         ; ¢ë室¨¬
101
    jz      bexit                         ; âûõîäèì
105
  ;®¡à ¡®âª  ª­®¯ª¨ Next
102
  ;îáðàáîòêà êíîïêè Next
106
    cmp     ah, 12                        ; ¥á«¨ ­ ¦ â  ª­®¯ª  NEXT
103
    cmp     ah, 12                        ; åñëè íàæàòà êíîïêà NEXT
107
    jne     next_bg                       ; ¢ë室¨¬
104
    jne     set_bg                        ; âûõîäèì
108
    inc     [pnext]                       ; 㢥«¨ç¨¢ ¥¬ ¯à¨ ­ ¦ â¨¨ ­®¬¥à ¯ «¨âàë
105
    inc     [pnext]                       ; óâåëè÷èâàåì ïðè íàæàòèè íîìåð ïàëèòðû
109
    mov     [renmode],0                   ; ¢ª«îç ¥¬ æ¢¥â®¢ë¥ á奬ë
106
    mov     eax,[pnext]                   ; çàíîñèì çíà÷åíèå â åàõ
110
    mov     eax,[pnext]                   ; § ­®á¨¬ §­ ç¥­¨¥ ¢ ¥ å
107
    cmp     al,6                          ; ñðàâíèâàåì ñ çàÿâëåííûì êîëè÷åñòâîì ïàëèòð
111
    cmp     al,6                          ; áà ¢­¨¢ ¥¬ á § ï¢«¥­­ë¬ ª®«¨ç¥á⢮¬ ¯ «¨âà
108
    jne     next_redraw                   ; åñëè íå áîëüøå ìàêñèìóìà òî íà âûçîâ îòðèñîâêè
112
    jne     next_redraw                   ; ¥á«¨ ­¥ ¡®«ìè¥ ¬ ªá¨¬ã¬  â® ­  ¢ë§®¢ ®âà¨á®¢ª¨
109
    xor     eax,eax                       ; èíà÷å çàíóëÿåì ïàëèòðó íà default
113
    xor     eax,eax                       ; ¨­ ç¥ § ­ã«ï¥¬ ¯ «¨âàã ­  default
-
 
114
    mov     [pnext],eax                   ; ¨ § ¯®¬¨­ ¥¬ çâ® á¡à®á¨«¨ ¯ «¨âàã ­  default
-
 
115
  next_redraw:
110
    mov     [pnext],eax                   ; è çàïîìèíàåì ÷òî ñáðîñèëè ïàëèòðó íà default
116
    call    draw_palitra                  ; ˆ‘“…Œ €‹ˆ’“
111
  next_redraw:
117
    jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
-
 
118
  next_bg:
-
 
119
    cmp     ah, 14                        ; Š­®¯ª  BACKGROUND
112
    call    draw_palitra                  ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ
120
    jne     circle_bg                     ; ¥á«¨ ­¥ ­ ¦ â  â® ¢ë室¨¬
113
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
-
 
114
  set_bg:
121
    call    set_background                ; ¨­ ç¥ ãáâ ­ ¢«¨¢ ¥¬ ä®­
115
    cmp     ah, 14                        ; åñëè íàæàòà êíîïêà BACKGROUND
122
    jmp     still                         ; ¨ ­  ®¦¨¤ ­¨¥ ᮡëâ¨ï
116
    jne     next_end                      ; âûõîäèì
123
  circle_bg:
117
	mcall   15,4,1
124
    cmp     ah, 15                        ; Š­®¯ª  Šà㣮¢ ï ¯ «¨âà 
118
	mcall   15,1,1,1
125
    jne     next_end                      ; ¥á«¨ ­¥ ­ ¦ â  â® ¢ë室¨¬
119
	mcall   15,5,color,0,3*1*1
126
    ;mov     [renmode],2                   ; ¢ª«îç ¥¬ ®âà¨á®¢ªã ªà㣮¢®© ¯ «¨âàë
120
	mcall   15,3
127
    call    draw_palitra                  ; ˆ‘“…Œ €‹ˆ’“
121
	jmp     still
128
    jmp     still                         ; ¨ ­  ®¦¨¤ ­¨¥ ᮡëâ¨ï
122
  next_end:
129
  next_end:
-
 
130
    cmp     ah,13                         ; COLOR SWAP
123
    cmp     ah,13                         ; COLOR SWAP
131
    jne     color_swap_end
124
    jne     color_swap_end
132
    push    [color2]
125
    push    [color2]
133
    push    [color]
126
    push    [color]
134
    pop     [color2]
127
    pop     [color2]
135
    pop     [color]
128
    pop     [color]
136
    call    draw_result
129
    call    draw_result
137
    jmp     still                         ; ˆ ã室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
130
  color_swap_end:
138
  color_swap_end:
131
    cmp     ah, 7                         ; Ïðîâåðÿåì íàæàòà êíîïêà ñ ID=7
139
    cmp     ah, 7                         ; à®¢¥à塞 ­ ¦ â  ª­®¯ª  á ID=7
132
    jne     color_button                  ; Åñëè íå íàæàòà, òî èä¸ì äàëüøå
140
    jne     color_button                  ; …᫨ ­¥ ­ ¦ â , â® ¨¤ñ¬ ¤ «ìè¥
133
    call    mouse_get                     ; Èíà÷å âêëþ÷àåì îáðàáîò÷èê ìûøè, ÷òîáû ñ÷èòàòü çíà÷åíèå öâåòà ñ ïàëèòðû
141
    call    mouse_get                     ; ˆ­ ç¥ ¢ª«îç ¥¬ ®¡à ¡®â稪 ¬ëè¨, ç⮡ë áç¨â âì §­ ç¥­¨¥ æ¢¥â  á ¯ «¨âàë
134
    jmp     still                         ; È óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
142
    jmp     still                         ; ˆ ã室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
135
  color_button:                           ; ÐÀÑ×¨Ò êîîðäèíàò äëÿ ïîëçóíêîâ RGBA
143
  color_button:                           ; €‘—ð’ ª®®à¤¨­ â ¤«ï ¯®«§ã­ª®¢ RGBA
136
    push    eax                           ; çàïîìèíàåì åàõ
144
    push    eax                           ; § ¯®¬¨­ ¥¬ ¥ å
137
    call    mouse_local                   ; ïîëó÷àåì ëîêàëüíûå êîîðäèíàòû
145
    call    mouse_local                   ; ¯®«ãç ¥¬ «®ª «ì­ë¥ ª®®à¤¨­ âë
138
    mov     ebx,137                       ; íèæíÿÿ ãðàíèöà ïîëçóíêà ïî Ó
146
    mov     ebx,137                       ; ­¨¦­ïï £à ­¨æ  ¯®«§ã­ª  ¯® “
139
    mov     ecx,[mouse_y]                 ; çàíèñèì â åñõ çíà÷åíèå êóðñîðà ïî Ó
147
    mov     ecx,[mouse_y]                 ; § ­¨á¨¬ ¢ ¥áå §­ ç¥­¨¥ ªãàá®à  ¯® “
140
    sub     ebx,ecx                       ; íàõîäèì ðàçíîñòü (ò.å. êóäà ñìåùàåòñÿ ïîëçóíîê)
148
    sub     ebx,ecx                       ; ­ å®¤¨¬ à §­®áâì (â.¥. ªã¤  ᬥ頥âáï ¯®«§ã­®ª)
141
    mov     ecx,3                         ; çàíîñèì â åñõ öèôðó 3 (256/3=85, ãäå 85-âûñîòà ïîëçóíêîâ)
149
    mov     ecx,3                         ; § ­®á¨¬ ¢ ¥áå æ¨äàã 3 (256/3=85, £¤¥ 85-¢ëá®â  ¯®«§ã­ª®¢)
142
    imul    ecx,ebx                       ; íàõîäèì èñòèííûé ïàðàìåòð öâåòà ñ ó÷¸òîì ìàñøòàáà ïîëçóíêà---+
150
    imul    ecx,ebx                       ; ­ å®¤¨¬ ¨á⨭­ë© ¯ à ¬¥âà æ¢¥â  á ãçñ⮬ ¬ áèâ ¡  ¯®«§ã­ª ---+
143
    pop     eax                           ; âîññòàíàâëèâàåì åàõ                                          :
151
    pop     eax                           ; ¢®ááâ ­ ¢«¨¢ ¥¬ ¥ å                                          :
144
  ;red_button:                            ; Êðàñíûé Òðåêáàð                                              :
152
  ;red_button:                            ; Šà á­ë© ’४¡ à                                              :
145
    cmp     ah, 8                         ; ID=8                                                         :
153
    cmp     ah, 8                         ; ID=8                                                         :
146
    jne     green_button                  ; åñëè íåò, òî ïðîâåðÿåì çåë¸íûé òðåêáàð                       :
154
    jne     green_button                  ; ¥á«¨ ­¥â, â® ¯à®¢¥à塞 §¥«ñ­ë© â४¡ à                       :
147
    mov     [cred],cl                     ; èíà÷å ïðèñâàèâàåì çíà÷åíèå, êðàñíîìó öâåòó ñïåêòðà    <------+
155
    mov     [cred],cl                     ; ¨­ ç¥ ¯à¨á¢ ¨¢ ¥¬ §­ ç¥­¨¥, ªà á­®¬ã 梥âã ᯥªâà     <------+
148
    call    set_spectr                    ; óñòàíàâëèâàåì ñïåêòð
156
    call    set_spectr                    ; ãáâ ­ ¢«¨¢ ¥¬ ᯥªâà
149
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
157
    jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
150
  green_button:
158
  green_button:
151
    cmp     ah, 9
159
    cmp     ah, 9
152
    jne     blue_button
160
    jne     blue_button
153
    mov     [cgreen],cl
161
    mov     [cgreen],cl
154
    call    set_spectr
162
    call    set_spectr
155
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
163
    jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
156
  blue_button:
164
  blue_button:
157
    cmp     ah, 10
165
    cmp     ah, 10
158
    jne     alpha_button
166
    jne     alpha_button
159
    mov     [cblue],cl
167
    mov     [cblue],cl
160
    call    set_spectr
168
    call    set_spectr
161
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
169
    jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
162
  alpha_button:
170
  alpha_button:
163
    cmp     ah, 11
171
    cmp     ah, 11
Line 164... Line 172...
164
    jne     still
172
    jne     still
165
    mov     [calpha],cl
173
    mov     [calpha],cl
166
    call    set_spectr
174
    call    set_spectr
167
    jmp     still                         ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ
175
    jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
168
  bexit:
176
  bexit:
169
    mcall -1                              ; èíà÷å êîíåö ïðîãðàììû
177
    mcall -1                              ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
170
;end_button
178
;end_button
171
 
179
 
172
;#___________________________________________________________________________________________________
180
;#___________________________________________________________________________________________________
173
;****************************************************************************************************|
181
;****************************************************************************************************|
174
; ÃËÀÂÍÛÉ ÌÎÄÓËÜ ÎÒÐÈÑÎÂÊÈ ÎÊÍÀ È ÝËÅÌÅÍÒÎÂ ÏÐÈËÎÆÅÍÈß                                               |
182
; ƒ‹€‚›‰ ŒŽ„“‹œ Ž’ˆ‘Ž‚Šˆ ŽŠ€ ˆ ‹…Œ…’Ž‚ ˆ‹Ž†…ˆŸ                                               |
175
;----------------------------------------------------------------------------------------------------/
183
;----------------------------------------------------------------------------------------------------/
176
draw_window:
184
draw_main:
177
    mov     eax,12                        ; ôóíêöèÿ 12: îçíà÷àåò, ÷òî áóäåò ðèñîâàòüñÿ îêíî
185
    mov     eax,12                        ; äã­ªæ¨ï 12: ®§­ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª­®
178
    mov     ebx,1                         ; 1,íà÷àëî ðèñîâàíèÿ
186
    mov     ebx,1                         ; 1,­ ç «® à¨á®¢ ­¨ï
179
    int     0x40                          ; Ïðåðûâàíèå
187
    int     0x40                          ; à¥à뢠­¨¥
180
 
188
 
181
    mov     eax,48                        ; Ôóíêöèÿ 48 - ñòèëè îòîáðàæåíèÿ îêîí
189
    mov     eax,48                        ; ”ã­ªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥­¨ï ®ª®­
182
    mov     ebx,3                         ; Ïîäôóíêöèÿ 3 - ïîëó÷èòü ñòàíäàðòíûå öâåòà îêîí.
190
    mov     ebx,3                         ; ®¤äã­ªæ¨ï 3 - ¯®«ãç¨âì áâ ­¤ àâ­ë¥ æ¢¥â  ®ª®­.
183
    mov     ecx,sc                        ; Óêàçàòåëü íà áóôåð ðàçìåðîì edx áàéò, ïîä ñòðóêòóðó
191
    mov     ecx,sc                        ; “ª § â¥«ì ­  ¡ãä¥à à §¬¥à®¬ edx ¡ ©â, ¯®¤ áâàãªâãàã
184
    mov     edx,sizeof.system_colors      ; Ðàçìåð òàáëèöû öâåòîâ (äîëæåí áûòü 40 áàéò)
192
    mov     edx,sizeof.system_colors      ;  §¬¥à â ¡«¨æë 梥⮢ (¤®«¦¥­ ¡ëâì 40 ¡ ©â)
185
    int     0x40                          ; Ïðåðûâàíèå
193
    int     0x40                          ; à¥à뢠­¨¥
186
 
194
 
187
    mov     eax,48                        ; Ôóíêöèÿ 48 - ñòèëè îòîáðàæåíèÿ îêîí.
195
    mov     eax,48                        ; ”ã­ªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥­¨ï ®ª®­.
188
    mov     ebx,4                         ; Ïîäôóíêöèÿ 4 - âîçâðàùàåò eax = âûñîòà ñêèíà.
196
    mov     ebx,4                         ; ®¤äã­ªæ¨ï 4 - ¢®§¢à é ¥â eax = ¢ëá®â  ᪨­ .
189
    int     0x40                          ; Ïðåðûâàíèå
197
    int     0x40                          ; à¥à뢠­¨¥
190
    mov     ecx,eax                       ; Çàïîìèíàåì âûñîòó ñêèíà
198
    mov     ecx,eax                       ; ‡ ¯®¬¨­ ¥¬ ¢ëá®âã ᪨­ 
-
 
199
 
191
 
200
    xor     eax,eax                       ; Žç¨é ¥¬ eax (mov eax,0) (”ã­ªæ¨ï 0)
192
    xor     eax,eax                       ; Î÷èùàåì eax (mov eax,0) (Ôóíêöèÿ 0)
201
    mov     ebx,WIN_X shl 16+WIN_W        ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x]
193
    mov     ebx,WIN_X shl 16+WIN_W        ; [êîîðäèíàòà ïî îñè x]*65536 + [ðàçìåð ïî îñè x]
202
    add     ecx,WIN_Y shl 16+WIN_H        ; ‚ëá®â  ᪨­  + [ª®®à¤¨­ â  ¯® y]*65536 + [à §¬¥à ¯® y] (168 ¤«ï ¢¥àᨨ 0.2)
194
    add     ecx,WIN_Y shl 16+WIN_H        ; Âûñîòà ñêèíà + [êîîðäèíàòà ïî y]*65536 + [ðàçìåð ïî y] (168 äëÿ âåðñèè 0.2)
203
    mov     edx,[sc.work]                 ; ‚¨¤¨¬® áâ¨«ì ®ª­  ¯® ¤¥ä®«âã
195
    mov     edx,[sc.work]                 ; Âèäèìî ñòèëü îêíà ïî äåôîëòó
204
    or      edx,0x34000000                ; ˆ«¨ ®ª­® ᮠ᪨­®¬ 䨪á¨à®¢ ­­ëå à §¬¥à®¢
196
    or      edx,0x34000000                ; Èëè îêíî ñî ñêèíîì ôèêñèðîâàííûõ ðàçìåðîâ
205
    mov     edi,title                     ; ‡ £®«®¢®ª ®ª­ 
197
    mov     edi,title                     ; Çàãîëîâîê îêíà
206
    int     0x40                          ; à¥à뢠­¨¥
198
    int     0x40                          ; Ïðåðûâàíèå
207
 
199
 
208
 
Line 200... Line 209...
200
    call    draw_palitra                  ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ
209
    call    draw_palitra                  ; ˆ‘“…Œ €‹ˆ’“
201
    call    draw_result                   ; ÐÈÑÓÅÌ ÐÅÇÓËÜÒÀÒ
210
    call    draw_result                   ; ˆ‘“…Œ …‡“‹œ’€’
202
 
211
 
203
    mov     eax,8                         ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó
212
    mov     eax,8                         ; ”ã­ªæ¨ï 8 - ®¯à¥¤¥«¨âì/㤠«¨âì ª­®¯ªã
204
    mov     ebx,110 shl 16+147            ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
213
    mov     ebx,110 shl 16+147            ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® å [ª-â  x]*65536 + [à §¬¥à]
205
    mov     ecx,9 shl 16+147              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
214
    mov     ecx,9 shl 16+147              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
206
    mov     edx,0x60000007                ; Íà÷àëüíîå ID êíîïîê - 0xXYnnnnnn
215
    mov     edx,0x60000007                ;  ç «ì­®¥ ID ª­®¯®ª - 0xXYnnnnnn
207
    int     0x40
216
    int     0x40
208
 
217
 
209
    mov     ebx,13 shl 16+12              ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
218
    mov     ebx,13 shl 16+12              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® å [ª-â  x]*65536 + [à §¬¥à]
210
    mov     edx,0x60000008                ; ID = 8
219
    mov     edx,0x60000008                ; ID = 8
211
    mov     ecx,51 shl 16+85              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
220
    mov     ecx,51 shl 16+85              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
212
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì red
221
    int     0x40                          ; ¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ red
Line 213... Line 222...
213
    add     ebx,23 shl 16                 ; Äîáàâëÿåì
222
    add     ebx,23 shl 16                 ; „®¡ ¢«ï¥¬
214
    inc     edx                           ; ID = 9
223
    inc     edx                           ; ID = 9
215
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì green
224
    int     0x40                          ; ¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ green
216
    add     ebx,23 shl 16                 ; Äîáàâëÿåì
225
    add     ebx,23 shl 16                 ; „®¡ ¢«ï¥¬
217
    inc     edx                           ; ID = 10
226
    inc     edx                           ; ID = 10
Line 218... Line -...
218
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì blue
-
 
219
    add     ebx,23 shl 16                 ; Äîáàâëÿåì
227
    int     0x40                          ; ¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ blue
220
    inc     edx                           ; ID = 11
228
    add     ebx,23 shl 16                 ; „®¡ ¢«ï¥¬
Line 221... Line -...
221
    int     0x40                          ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì alpha
-
 
222
 
-
 
223
    mov     eax,8                         ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó (ÑÌÅÍÀ ÖÂÅÒÀ)
-
 
224
    mov     ebx,11 shl 16+20              ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
-
 
225
    mov     ecx,12 shl 16+20              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
226
    mov     edx,0x6000000D                ; ID = 13
-
 
227
    int     0x40
-
 
228
 
-
 
229
    mov     eax,12                        ; ôóíêöèÿ 12: îçíà÷àåò, ÷òî áóäåò ðèñîâàòüñÿ îêíî
-
 
230
    mov     ebx,2                         ; 2 - êîíåö ðèñîâàíèÿ
-
 
231
    int     0x40                          ; Ïðåðûâàíèå
-
 
232
 
-
 
233
    ;.................................................................................................
-
 
234
    ; Îòðèñîâêà íèæíåé ïàíåëè
-
 
235
    ;.................................................................................................
-
 
236
    mov     eax,8                         ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó
-
 
237
    mov     ebx,4 shl 16+64               ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
-
 
238
    mov     ecx,169 shl 16+16             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
-
 
239
    mov     edx,12                        ; ID = 12
-
 
240
    mov     esi,[sc.work_button]          ; öâåò
-
 
241
    int     0x40
-
 
242
	
-
 
243
    mov     ebx,80 shl 16+102             ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
-
 
244
    mov     edx,14                        ; BACKGROUND button
-
 
245
    int     0x40
-
 
246
 
-
 
247
 
-
 
248
    mov     eax,4                         ; 4 - âûâåñòè ñòðîêó òåêñòà â îêíî
-
 
249
    mov     ebx,25 shl 16+174             ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y]
-
 
250
    mov     ecx,[sc.work_button_text]     ; 0xX0RRGGBB (RR, GG, BB çàäàþò öâåò òåêñòà)
-
 
251
    mov     edx,bnext                     ; óêàçàòåëü íà íà÷àëî ñòðîêè
-
 
252
    ;mov     esi,1                        ; âûâîäèòü esi ñèìâîëîâ
-
 
253
    int     0x40
-
 
Line -... Line 229...
-
 
229
    inc     edx                           ; ID = 11
-
 
230
    int     0x40                          ; ¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ alpha
-
 
231
 
-
 
232
    mov     eax,8                         ; ”ã­ªæ¨ï 8 - ®¯à¥¤¥«¨âì/㤠«¨âì ª­®¯ªã (‘Œ…€ –‚…’€)
Line 254... Line 233...
254
 
233
    mov     ebx,11 shl 16+20              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® å [ª-â  x]*65536 + [à §¬¥à]
255
    ;mov     ebx,247 shl 16+64             ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð]
234
    mov     ecx,12 shl 16+20              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
256
    ;mov     edx,12                        ; ID = 12
235
    mov     edx,0x6000000D                ; ID = 13
257
    ;int     0x40
236
    int     0x40
Line -... Line 237...
-
 
237
 
-
 
238
    call    draw_bottom_panel
-
 
239
    call    draw_left_panel
-
 
240
 
-
 
241
 
-
 
242
    mov     eax,12                        ; äã­ªæ¨ï 12: ®§­ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª­®
-
 
243
    mov     ebx,2                         ; 2 - ª®­¥æ à¨á®¢ ­¨ï
-
 
244
    int     0x40                          ; à¥à뢠­¨¥
-
 
245
    ret
-
 
246
 
-
 
247
;#___________________________________________________________________________________________________
-
 
248
;****************************************************************************************************|
-
 
249
; ‹ŽŠ ‚‘ŽŒŽƒ€’…‹œ›• Ž–…„“ ˆ ”“Š–ˆ‰ ˆ‹Ž†…ˆŸ                                                 |
-
 
250
;----------------------------------------------------------------------------------------------------/
-
 
251
 
-
 
252
 
-
 
253
    ;------------------------------------------------------------------------------------------------+
-
 
254
    draw_left_panel:                      ; Žâà¨á®¢ª  ¡®ª®¢®© ¯ ­¥«¨
-
 
255
    ;.................................................................................................
-
 
256
    mov     eax,8                         ; button_next_colorsheme
-
 
257
    mov     ebx,266 shl 16+16             ; [x] + [size]
-
 
258
    mov     ecx,9 shl 16+16               ; [y] + [size]
-
 
259
    mov     edx,0x6000000C                ; ID = 12
-
 
260
    mov     esi,[sc.work_button]          ; RGB
-
 
261
    int     0x40                          ; call
-
 
262
    mov     eax,13                        ; draw rect
-
 
263
    mov     ebx,266 shl 16+16             ; [x] + [size]
-
 
264
    mov     ecx,9 shl 16+16               ; [y] + [size]
-
 
265
    mov     edx,0x666666                  ; RGB
-
 
266
    push    esi                           ; backup esi
-
 
267
    mov     esi,8                         ; counter=8
-
 
268
    draw_lpanel:                          ; loop label
-
 
269
      int     0x40                        ; call draw black rect
-
 
270
      add     ecx,19 shl 16               ; move rect
-
 
271
      dec     esi                         ; decrement counter
-
 
272
      cmp     esi,0                       ; if counter!=zero
-
 
273
      jne     draw_lpanel                 ; then goto label
-
 
274
      mov     esi,8                       ; else counter=8
-
 
275
      mov     ebx,267 shl 16+14           ; [x] + [size]
-
 
276
      mov     ecx,10 shl 16+14            ; [y] + [size]
-
 
277
      mov     edx,0xF3F3F3                ; RGB
-
 
278
    draw_lpanel2:                         ; 2 loop label
-
 
279
      int     0x40                        ; call draw white rect
-
 
280
      add     ecx,19 shl 16               ; move rect
-
 
281
      dec     esi                         ; decrement counter
-
 
282
      cmp     esi,0                       ; if counter!=0
-
 
283
      jne     draw_lpanel2                ; then goto label2
-
 
284
    pop     esi                           ; restore esi
-
 
285
    ; draw_left_arrow for button_next_colorsheme
-
 
286
    mov     eax,4                         ; Write string
-
 
287
    mov     ebx,272 shl 16+13             ; [x] + [y]
-
 
288
    mov     ecx,0x0                       ; RGB
-
 
289
    mov     edx,larrow                    ; string pointer
-
 
290
    mov     esi,1                         ; count symbol
-
 
291
    int     0x40                          ; call
-
 
292
    mov     eax,38                        ; draw line
-
 
293
    mov     ebx,270 shl 16+272            ; [start x] + [end x] 
-
 
294
    mov     ecx,16 shl 16+16              ; [start y] + [end y] 
-
 
295
    mov     edx,0x0                       ; RGB
-
 
296
    int     0x40                          ; call
-
 
297
    ret                                   ; return
-
 
298
    ;.................................................................................................
-
 
299
 
-
 
300
 
-
 
301
    ;------------------------------------------------------------------------------------------------+
-
 
302
    draw_bottom_panel:                    ; Žâà¨á®¢ª  ­¨¦­¥© ¯ ­¥«¨
-
 
303
    ;.................................................................................................
-
 
304
    mov     eax,8                         ; draw button
-
 
305
    mov     ebx,92 shl 16+100             ; [x] + [size]
-
 
306
    mov     ecx,169 shl 16+16             ; [y] + [size]
-
 
307
    mov     edx,14                        ; ID = 14
-
 
308
    mov     esi,[sc.work_button]          ; RGB
258
 
309
    int     0x40                          ; call
259
    mov     eax,38                        ; Ôóíêöèÿ 38 - íàðèñîâàòü îòðåçîê.
310
    mov     eax,4                         ; Write string
260
    mov     ebx,4 shl 16+257              ;[êîîðäèíàòà íà÷àëà ïî îñè x]*65536 + [êîîðäèíàòà êîíöà ïî îñè x] 
311
    mov     ebx,113 shl 16+174            ; [x] + [y]
261
    mov     ecx,163 shl 16+163            ;[êîîðäèíàòà íà÷àëà ïî îñè y]*65536 + [êîîðäèíàòà êîíöà ïî îñè y] 
312
    mov     ecx,[sc.work_button_text]     ; RGB
262
    mov     edx,0x00666666                ;0x00RRGGBB - öâåò 
313
    mov     edx,bground                   ; string pointer
263
    int     0x40
314
    mov     esi,10                        ; count symbol
264
 
315
    int     0x40                          ; call
265
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
316
    mov     eax,38                        ; draw line
266
 
317
    mov     ebx,4 shl 16+282              ; [start x] + [end x] 
267
 
318
    mov     ecx,163 shl 16+163            ; [start y] + [end y] 
268
;#___________________________________________________________________________________________________
319
    mov     edx,0x00666666                ; RGB
269
;****************************************************************************************************|
320
    int     0x40                          ; call
270
; ÁËÎÊ ÂÑÏÎÌÎÃÀÒÅËÜÍÛÕ ÏÐÎÖÅÄÓÐ È ÔÓÍÊÖÈÉ ÏÐÈËÎÆÅÍÈß                                                 |
321
    ret                                   ; return
271
;----------------------------------------------------------------------------------------------------/
322
    ;.................................................................................................
272
 
323
 
273
mouse_global:
324
mouse_global:
Line 274... Line 325...
274
    ;.................................................................................................
325
    ;.................................................................................................
275
    ; Ïîëó÷àåì êîîðäèíàòû ìûøè
326
    ; ®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨
276
    ;.................................................................................................
327
    ;.................................................................................................
277
    mov     eax,37                        ; Ôóíêöèÿ 37 - ðàáîòà ñ ìûøüþ
328
    mov     eax,37                        ; ”ã­ªæ¨ï 37 - à ¡®â  á ¬ëèìî
278
    mov     ebx,0                         ; íàì íóæíû ãëîáàëüíûå êîîðäèíàòû
329
    mov     ebx,0                         ; ­ ¬ ­ã¦­ë £«®¡ «ì­ë¥ ª®®à¤¨­ âë
279
    int     0x40                          ; eax = x*65536 + y, (x,y)=êîîðäèíàòû êóðñîðà ìûøè
330
    int     0x40                          ; eax = x*65536 + y, (x,y)=ª®®à¤¨­ âë ªãàá®à  ¬ëè¨
280
    mov     ecx,eax                       ;
331
    mov     ecx,eax                       ;
281
    shr     ecx,16                        ; ecx = x+1
332
    shr     ecx,16                        ; ecx = x+1
282
    movzx   edx,ax                        ; edx = y+1
333
    movzx   edx,ax                        ; edx = y+1
283
    dec     ecx                           ; ecx = x
334
    dec     ecx                           ; ecx = x
284
    dec     edx                           ; edx = y
335
    dec     edx                           ; edx = y
285
    mov     [mouse_x],ecx                 ; mouse_x = x
336
    mov     [mouse_x],ecx                 ; mouse_x = x
286
    mov     [mouse_y],edx                 ; mouse_y = y
337
    mov     [mouse_y],edx                 ; mouse_y = y
287
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
338
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
288
;end_mouse_global
339
;end_mouse_global
289
 
340
 
Line -... Line 341...
-
 
341
mouse_local:
-
 
342
    ;.................................................................................................
-
 
343
    ; ®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
-
 
344
    ;.................................................................................................
-
 
345
    mov     eax,37                        ; ”ã­ªæ¨ï 37 - à ¡®â  á ¬ëèìî
-
 
346
    mov     ebx,1                         ; ­ ¬ ­ã¦­ë £«®¡ «ì­ë¥ ª®®à¤¨­ âë
-
 
347
    int     0x40                          ; eax = x*65536 + y, (x,y)=ª®®à¤¨­ âë ªãàá®à  ¬ëè¨
-
 
348
    mov     ecx,eax                       ;
-
 
349
    shr     ecx,16                        ; ecx = x+1
-
 
350
    movzx   edx,ax                        ; edx = y+1
-
 
351
    dec     ecx                           ; ecx = x
-
 
352
    dec     edx                           ; edx = y
-
 
353
    mov     [mouse_x],ecx                 ; mouse_x = x
-
 
354
    mov     [mouse_y],edx                 ; mouse_y = y
-
 
355
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
-
 
356
;end_mouse_local
-
 
357
 
-
 
358
set_background:
-
 
359
    ;.................................................................................................
-
 
360
    ; “áâ ­ ¢«¨¢ ¥â ä®­ à ¡®ç¥£® á⮫ 
-
 
361
    ;.................................................................................................
-
 
362
    mov     eax,15                        ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
-
 
363
    mov     ebx,4                         ; ®¤äã­ªæ¨ï 4 - ãáâ ­®¢¨âì ०¨¬ ®âà¨á®¢ª¨ ä®­ .
-
 
364
    mov     ecx,2                         ; ¥¦¨¬ ®âà¨á®¢ª¨ - § ¬®áâ¨âì (1)
-
 
365
    int     0x40                          ; ‚ë§ë¢ ¥¬
-
 
366
 
-
 
367
    mov     eax,15                        ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
-
 
368
    mov     ebx,1                         ; ®¤äã­ªæ¨ï 1 - ãáâ ­®¢¨âì à §¬¥à ä®­®¢®£® ¨§®¡à ¦¥­¨ï.
-
 
369
    mov     ecx,2                         ; ˜¨à¨­  ¨§®¡à ¦¥­¨ï
-
 
370
    mov     edx,2                         ; ‚ëá®â  ¨§®¡à ¦¥­¨ï
-
 
371
    int     0x40                          ; ‚ë§ë¢ ¥¬
-
 
372
 
-
 
373
    mov     eax,[color]
-
 
374
    mov     [cm+0],al
-
 
375
    mov     [cm+9],al
-
 
376
    shr     eax,8
-
 
377
    mov     [cm+1],al
-
 
378
    mov     [cm+10],al
-
 
379
    shr     eax,8
-
 
380
    mov     [cm+2],al
-
 
381
    mov     [cm+11],al
-
 
382
 
-
 
383
    mov     eax,[color2]
-
 
384
    mov     [cm+3],al
-
 
385
    mov     [cm+6],al
-
 
386
    shr     eax,8
-
 
387
    mov     [cm+4],al
-
 
388
    mov     [cm+7],al
-
 
389
    shr     eax,8
290
mouse_local:
390
    mov     [cm+5],al
291
    ;.................................................................................................
391
    mov     [cm+8],al
292
    ; Ïîëó÷àåì êîîðäèíàòû ìûøè îòíîñèòåëüíî îêíà
392
 
293
    ;.................................................................................................
393
    mov     eax,15                        ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
294
    mov     eax,37                        ; Ôóíêöèÿ 37 - ðàáîòà ñ ìûøüþ
394
    mov     ebx,5                         ; ®¤äã­ªæ¨ï 5 - ¯®¬¥áâ¨âì ¡«®ª ¯¨ªá¥«¥© ­  ä®­.
295
    mov     ebx,1                         ; íàì íóæíû ãëîáàëüíûå êîîðäèíàòû
395
    mov     ecx,cm                      ; “ª § â¥«ì ­  ¤ ­­ë¥ ¢ ä®à¬ â¥ BBGGRRBBGGRR
296
    int     0x40                          ; eax = x*65536 + y, (x,y)=êîîðäèíàòû êóðñîðà ìûøè
396
    mov     edx,0                         ; C¬¥é¥­¨¥ ¢ ¤ ­­ëå ä®­®¢®£® ¨§®¡à ¦¥­¨ï
297
    mov     ecx,eax                       ;
397
    mov     esi,3*4                      ;  §¬¥à ¤ ­­ëå ¢ ¡ ©â å = 3 * ç¨á«® ¯¨ªá¥«¥©
298
    shr     ecx,16                        ; ecx = x+1
398
    int     0x40                          ; ‚ë§ë¢ ¥¬
299
    movzx   edx,ax                        ; edx = y+1
399
 
300
    dec     ecx                           ; ecx = x
400
    mov     eax,15                        ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
301
    dec     edx                           ; edx = y
401
    mov     ebx,3                         ; ®¤äã­ªæ¨ï 3 - ¯¥à¥à¨á®¢ âì ä®­.
302
    mov     [mouse_x],ecx                 ; mouse_x = x
402
    int     0x40                          ; ‚ë§ë¢ ¥¬
303
    mov     [mouse_y],edx                 ; mouse_y = y
403
 
Line 304... Line 404...
304
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
404
    ret
305
;end_mouse_local
405
;end_set_background
306
 
406
 
307
desktop_get:
407
desktop_get:
308
    ;.................................................................................................
408
    ;.................................................................................................
309
    ; Îïðåäåëÿåì øèðèíó ýêðàíà
409
    ; Ž¯à¥¤¥«ï¥¬ è¨à¨­ã íªà ­ 
310
    ;.................................................................................................
410
    ;.................................................................................................
311
    mov     eax,14                        ; Îïðåäåëÿåì øèðèíó ýêðàíà (eax = [xsize]*65536 + [ysize])
411
    mov     eax,14                        ; Ž¯à¥¤¥«ï¥¬ è¨à¨­ã íªà ­  (eax = [xsize]*65536 + [ysize])
Line 312... Line 412...
312
    int     0x40                          ; xsize = ðàçìåð ïî ãîðèçîíòàëè - 1 
412
    int     0x40                          ; xsize = à §¬¥à ¯® £®à¨§®­â «¨ - 1 
313
    mov     ebx,eax                       ;
413
    mov     ebx,eax                       ;
314
    shr     ebx,16                        ; ebx = xsize-1
414
    shr     ebx,16                        ; ebx = xsize-1
315
    ;movzx   edx,ax                       ;; edx = ysize-1 (ëèøíèé êîä)
415
    ;movzx   edx,ax                       ;; edx = ysize-1 («¨è­¨© ª®¤)
316
    inc     ebx                           ; ebx = xsize
416
    inc     ebx                           ; ebx = xsize
317
    ;inc     edx                          ;; edx = ysize (ëèøíèé êîä)
417
    ;inc     edx                          ;; edx = ysize («¨è­¨© ª®¤)
318
    mov     [desctop_w],ebx
418
    mov     [desctop_w],ebx
319
    ret
419
    ret
320
;end_desktop_get
420
;end_desktop_get
321
 
421
 
322
mouse_get:
422
mouse_get:
323
    mov     esi,2                         ; ÊÎÑÒÛËÜ: ôëàã äëÿ èçáåæàíèÿ çàöèêëèâàíèÿ
423
    mov     esi,2                         ; ŠŽ‘’›‹œ: ä« £ ¤«ï ¨§¡¥¦ ­¨ï § æ¨ª«¨¢ ­¨ï
324
    call    mouse_global
424
    call    mouse_global
325
    call    desktop_get
425
    call    desktop_get
326
    re_mouse_loop:                        ; ÊÎÑÒÛËÜ: ìåòêà äëÿ âîçâðàòà åñëè ïîïàëè â ñåòêó
426
    re_mouse_loop:                        ; ŠŽ‘’›‹œ: ¬¥âª  ¤«ï ¢®§¢à â  ¥á«¨ ¯®¯ «¨ ¢ á¥âªã
327
      mov     ebx,[desctop_w]
427
      mov     ebx,[desctop_w]
328
      imul    ebx,[mouse_y]               ; ebx = y*xsize
428
      imul    ebx,[mouse_y]               ; ebx = y*xsize
329
      add     ebx,[mouse_x]               ; ebx = y*xsize+x
429
      add     ebx,[mouse_x]               ; ebx = y*xsize+x
330
 
430
 
331
      ;.................................................................................................
431
      ;.................................................................................................
332
      ; Áåðåì öâåò ñ ïàëèòðû â ïåðåìåííóþ
432
      ; ¥à¥¬ 梥â á ¯ «¨âàë ¢ ¯¥à¥¬¥­­ãî
333
      ;.................................................................................................
433
      ;.................................................................................................
334
      mov     eax,35                      ; Ôóíêöèÿ âçÿòèÿ öâåòà
434
      mov     eax,35                      ; ”ã­ªæ¨ï ¢§ïâ¨ï 梥â 
335
      ;mov     ebx,ecx                    ;; ebx = y*xsize+x (ëèøíèé êîä)
435
      ;mov     ebx,ecx                    ;; ebx = y*xsize+x («¨è­¨© ª®¤)
Line 336... Line 436...
336
      int     0x40                        ; Ïîëó÷àåì öâåò â eax
436
      int     0x40                        ; ®«ãç ¥¬ 梥⠢ eax
-
 
437
      cmp     eax,[sc.work]               ; ‘à ¢­¨¢ ¥¬ á ä®­®¬ ¯à¨«®¦¥­¨ï
-
 
438
      je      mouse_err                   ; …᫨ íâ® ®­ - â® ­¨ç¥£® ­¥ ¤¥« ¥¬
-
 
439
      cmp     eax,0x222222                ; ‘à ¢­¨¢ ¥¬ á 梥⮬ á¥âª¨
-
 
440
      je      mouse_err                   ; …᫨ íâ® ®­ - â® ­¨ç¥£® ­¥ ¤¥« ¥¬
-
 
441
      jmp     mouse_set                   ; ŠŽ‘’›‹œ: ¯à룠¥¬ çâ®¡ë ­¥ ¡à âì 梥â á¥âª¨
-
 
442
    mouse_err:                            ; ŠŽ‘’›‹œ: ¥á«¨ ¯®¯ «¨ ¢ á¥âªã ¨«¨ ä®­
-
 
443
      inc     [mouse_y]                   ; ŠŽ‘’›‹œ: ᬥ頥¬ ¯® ¤¨ £®­ «¨ á­ ç «  ¯® å
-
 
444
      inc     [mouse_x]                   ; ŠŽ‘’›‹œ: ᬥ頥¬ ¯® ¤¨ £®­ «¨ ¯®â®¬ ¯® ã
-
 
445
      dec     esi                         ; ŠŽ‘’›‹œ: “¬¥­ìè ¥¬ ä« £
-
 
446
      cmp     esi,0                       ; ŠŽ‘’›‹œ: ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
-
 
447
    jz        mouse_exit                  ; ŠŽ‘’›‹œ: …᫨ ­®«ì ⮠ᤥ« «¨ ¢áñ çâ® ¬®£«¨
-
 
448
    jmp    re_mouse_loop                  ; ŠŽ‘’›‹œ: …᫨ ­¥ ­®«ì â® ¯®¯à®¡ã¥¬ ¢§ïâì á®á¥«­¨© ¯¨ªá¥«ì
-
 
449
    mouse_set:
-
 
450
    mov     [color],eax                   ; ˆ­ ç¥ § ¯®¬¨­ ¥¬ ­®¢ë© 梥â
-
 
451
    call    draw_result                   ; ‚뢮¤¨¬ १ã«ìâ â
-
 
452
    mouse_exit:
-
 
453
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
-
 
454
;end_mouse_get----------------------------------------------------------------------------------------
-
 
455
 
-
 
456
draw_palitra:
-
 
457
    mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
-
 
458
    mov     ebx,110 shl 16+148            ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
-
 
459
    mov     ecx,9 shl 16+148              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
-
 
460
    mov     edx,[sc.work]                 ; 梥â
-
 
461
    int     0x40
-
 
462
 
-
 
463
    ;cmp     [renmode],2
-
 
464
    ;je      cyrcle_draw
337
      cmp     eax,[sc.work]               ; Ñðàâíèâàåì ñ ôîíîì ïðèëîæåíèÿ
465
    ;cmp     [renmode],1
338
      je      mouse_err                   ; Åñëè ýòî îí - òî íè÷åãî íå äåëàåì
466
    ;je      picker_draw
339
      cmp     eax,0x222222                ; Ñðàâíèâàåì ñ öâåòîì ñåòêè
467
    cmp     [renmode],0
-
 
468
    je      sheme_draw
340
      je      mouse_err                   ; Åñëè ýòî îí - òî íè÷åãî íå äåëàåì
469
    ret
341
      jmp     mouse_set                   ; ÊÎÑÒÛËÜ: ïðûãàåì ÷òîáû íå áðàòü öâåò ñåòêè
470
 
342
    mouse_err:                            ; ÊÎÑÒÛËÜ: åñëè ïîïàëè â ñåòêó èëè ôîí
471
    ;.................................................................................................
343
      inc     [mouse_y]                   ; ÊÎÑÒÛËÜ: ñìåùàåì ïî äèàãîíàëè ñíà÷àëà ïî õ
472
    ; Žâà¨á®¢ª  ªà㣮¢®© ¤¨ £à ¬¬ë
344
      inc     [mouse_x]                   ; ÊÎÑÒÛËÜ: ñìåùàåì ïî äèàãîíàëè ïîòîì ïî ó
473
    ;.................................................................................................
345
      dec     esi                         ; ÊÎÑÒÛËÜ: Óìåíüøàåì ôëàã
474
    ;cyrcle_draw:
346
      cmp     esi,0                       ; ÊÎÑÒÛËÜ: Ñðàâíèâàåì ñ íóëåì
475
    ;mov     eax,7                         ; 7 - ­®¬¥à ä㭪樨 
347
    jz        mouse_exit                  ; ÊÎÑÒÛËÜ: Åñëè íîëü òî ñäåëàëè âñ¸ ÷òî ìîãëè
476
    ;mov     ebx,circle                    ; 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥ ¢ ä®à¬ â¥ BBGGRRBBGGRR... 
348
    jmp    re_mouse_loop                  ; ÊÎÑÒÛËÜ: Åñëè íå íîëü òî ïîïðîáóåì âçÿòü ñîñåëíèé ïèêñåëü
477
    ;mov     ecx,148 shl 16 + 148          ; [à §¬¥à ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ y] 
349
    mouse_set:
478
    ;mov     edx,110 shl 16 + 9            ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
350
    mov     [color],eax                   ; Èíà÷å çàïîìèíàåì íîâûé öâåò
479
    ;int     0x40
351
    call    draw_result                   ; Âûâîäèì ðåçóëüòàò
480
    ;ret
352
    mouse_exit:
481
 
353
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
482
    ;picker_draw:
354
;end_mouse_get----------------------------------------------------------------------------------------
483
    ;ret
355
 
484
 
356
draw_palitra:
485
    ;.................................................................................................
357
    ;.................................................................................................
486
    ; Žâà¨á®¢ª  ä®­  ¯®¤ ª­®¯ª¨
358
    ; Îòðèñîâêà ôîíà ïîä êíîïêè
487
    ;.................................................................................................
359
    ;.................................................................................................
488
    sheme_draw:
360
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
489
    mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
361
    mov     edx,0x222222                  ; öâåò
490
    mov     edx,0x222222                  ; 梥â
362
    mov     ecx,9 shl 16+73               ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
491
    mov     ecx,9 shl 16+73               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
363
    mov     esi,2                         ; Ñ÷åò÷èê ëèíèé ïîäëîæåê
492
    mov     esi,2                         ; ‘ç¥â稪 «¨­¨© ¯®¤«®¦¥ª
364
    re_draw:
493
    re_draw:
365
    mov     ebx,110 shl 16+73             ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
494
    mov     ebx,110 shl 16+73             ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
366
    mov     edi,2                         ; Ñ÷åò÷èê êîëè÷åñòâà ïîäëîæåê
495
    mov     edi,2                         ; ‘ç¥â稪 ª®«¨ç¥á⢠ ¯®¤«®¦¥ª
367
    for_fon_loop:
496
    for_fon_loop:
368
      int     0x40                        ; Ïðåðûâàíèå
497
      int     0x40                        ; à¥à뢠­¨¥
369
      add     ebx,75 shl 16               ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî õ
498
      add     ebx,75 shl 16               ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® å
370
      dec     edi                         ; Óìåíüøàåì ñ÷åò÷èê êíîïîê
499
      dec     edi                         ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
371
      cmp     edi,0                       ; Ñðàâíèâàåì ñ íóëåì
500
      cmp     edi,0                       ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
372
    jnz     for_fon_loop                  ; Åñëè íå íîëü òî â íà÷àëî öèêëà
501
    jnz     for_fon_loop                  ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
373
    dec     esi                           ; Óìåíüøàåì åãî
502
    dec     esi                           ; “¬¥­ìè ¥¬ ¥£®
374
    cmp     esi,0                         ; Ñðàâíèâàåì ñ íóëåì
503
    cmp     esi,0                         ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
375
    mov     ecx,84 shl 16+73              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
504
    mov     ecx,84 shl 16+73              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
376
    jnz     re_draw                       ; Åñëè íå íîëü òî â íà÷àëî öèêëà
505
    jnz     re_draw                       ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
377
 
506
 
378
    ;.................................................................................................
507
    ;.................................................................................................
379
    ; Îòðèñîâêà êíîïîê ïî öèêëó
508
    ; Žâà¨á®¢ª  ª­®¯®ª ¯® 横«ã
380
    ;.................................................................................................
509
    ;.................................................................................................
381
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
510
    mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
382
    mov     edx,0x0FFFFFFF                ; öâåò
511
    mov     edx,0x0FFFFFFF                ; 梥â
383
    mov     esi,4                         ; Ñ÷åò÷èê êîëè÷åñòâà àáçàöåâ (#4,8)
512
    mov     esi,4                         ; ‘ç¥â稪 ª®«¨ç¥á⢠  ¡§ æ¥¢ (#4,8)
384
    mov     ebx,99 shl 16+8               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
513
    mov     ebx,99 shl 16+8               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
385
    for_abz:
514
    for_abz:
386
      ;;push    esi                       ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê
515
      ;;push    esi                       ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
387
      cmp     esi,2
516
      cmp     esi,2
388
      jne     x2_line
517
      jne     x2_line
389
      mov     ebx,99 shl 16+8
518
      mov     ebx,99 shl 16+8
390
      x2_line:
519
      x2_line:
391
      add     ebx,3 shl 16                ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî x
520
      add     ebx,3 shl 16                ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
392
      mov     edi,8                       ; Ñ÷åò÷èê êîëè÷åñòâà êíîïîê â ñòðîêå
521
      mov     edi,8                       ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
393
      for_stolbik:
522
      for_stolbik:
394
        push    edi                       ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê
523
        push    edi                       ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
395
        mov     edi,8                     ; Ñ÷åò÷èê êîëè÷åñòâà êíîïîê â ñòðîêå
524
        mov     edi,8                     ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
396
        mov     ecx,  1 shl 16+8          ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]  
525
        mov     ecx,  1 shl 16+8          ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]  
397
        cmp     esi,2
526
        cmp     esi,2
398
        jg      y2_line                   ; Åñëè áîëüøå 4 òî èãíîðèì
527
        jg      y2_line                   ; …᫨ ¡®«ìè¥ 4 â® ¨£­®à¨¬
399
        mov     ecx,76 shl 16+8
528
        mov     ecx,76 shl 16+8
400
        y2_line:
529
        y2_line:
Line 401... Line 530...
401
        add     ebx,9 shl 16              ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî x
530
        add     ebx,9 shl 16              ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
402
        for_loop:
531
        for_loop:
403
          add     ecx,9 shl 16            ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî y
532
          add     ecx,9 shl 16            ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® y
404
          int     0x40                    ; Ïðåðûâàíèå
533
          int     0x40                    ; à¥à뢠­¨¥
405
          call    sub_red
534
          call    sub_red
406
          dec     edi                     ; Óìåíüøàåì ñ÷åò÷èê êíîïîê
535
          dec     edi                     ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
407
          cmp     edi,0                   ; Ñðàâíèâàåì ñ íóëåì
536
          cmp     edi,0                   ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
408
          jnz     for_loop                ; Åñëè íå íîëü òî â íà÷àëî öèêëà
537
          jnz     for_loop                ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
409
      call    sub_green
538
      call    sub_green
410
      pop     edi                         ; Èíà÷å âîññòàíàâëèâàåì ñ÷åò÷èê ëèíèé
539
      pop     edi                         ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
411
      dec     edi                         ; Óìåíüøàåì åãî
540
      dec     edi                         ; “¬¥­ìè ¥¬ ¥£®
412
      cmp     edi,0                       ; Ñðàâíèâàåì ñ íóëåì
541
      cmp     edi,0                       ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
413
      jnz     for_stolbik                 ; Åñëè íå íîëü òî â íà÷àëî öèêëà
542
      jnz     for_stolbik                 ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
414
    call    sub_blue
543
    call    sub_blue
415
    ;;pop     esi                         ; Èíà÷å âîññòàíàâëèâàåì ñ÷åò÷èê ëèíèé
544
    ;;pop     esi                         ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
416
    dec     esi                           ; Óìåíüøàåì åãî
545
    dec     esi                           ; “¬¥­ìè ¥¬ ¥£®
417
    cmp     esi,0                         ; Ñðàâíèâàåì ñ íóëåì
546
    cmp     esi,0                         ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
418
    jnz     for_abz                       ; Åñëè íå íîëü òî â íà÷àëî öèêëà
547
    jnz     for_abz                       ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
419
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
548
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
420
;end_draw_palitra-------------------------------------------------------------------------------------
549
;end_draw_palitra-------------------------------------------------------------------------------------
Line 456... Line 585...
456
    jne     sub_red_e
585
    jne     sub_red_e
457
    sub     edx,0x010100
586
    sub     edx,0x010100
458
    jmp     sub_red_e
587
    jmp     sub_red_e
459
  sub_red_e:
588
  sub_red_e:
460
    pop     eax
589
    pop     eax
461
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
590
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
462
;end_sub_red------------------------------------------------------------------------------------------
591
;end_sub_red------------------------------------------------------------------------------------------
Line 463... Line 592...
463
 
592
 
464
sub_green:
593
sub_green:
465
    ;.................................................................................................
594
    ;.................................................................................................
466
    ; Ðàñ÷¸ò ñìåùåíèé êðàñíîãî öâåòà â ãåíåðàöèè öâåòà ïàëèòðû
595
    ;  áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
467
    ;.................................................................................................
596
    ;.................................................................................................
468
    push    eax
597
    push    eax
469
    mov     eax,[pnext]
598
    mov     eax,[pnext]
470
  ;sub_green_0
599
  ;sub_green_0
471
    cmp     al,0
600
    cmp     al,0
472
    jne     sub_green_1
601
    jne     sub_green_1
473
    sub     edx,0x2000
602
    sub     edx,0x4000
474
    jmp     sub_green_e
603
    jmp     sub_green_e
475
  sub_green_1:
604
  sub_green_1:
476
    cmp     al,1
605
    cmp     al,1
477
    jne     sub_green_e
606
    jne     sub_green_e
478
    sub     edx,0x4000
607
    sub     edx,0x2000
479
    ;jmp     sub_green_e
608
    ;jmp     sub_green_e
480
  sub_green_e:
609
  sub_green_e:
481
    pop     eax
610
    pop     eax
482
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
611
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
Line 483... Line 612...
483
;end_sub_green----------------------------------------------------------------------------------------
612
;end_sub_green----------------------------------------------------------------------------------------
484
 
613
 
485
 
614
 
486
sub_blue:
615
sub_blue:
487
    ;.................................................................................................
616
    ;.................................................................................................
488
    ; Ðàñ÷¸ò ñìåùåíèé êðàñíîãî öâåòà â ãåíåðàöèè öâåòà ïàëèòðû
617
    ;  áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
489
    ;.................................................................................................
618
    ;.................................................................................................
490
    push    eax
619
    push    eax
491
    mov     eax,[pnext]
620
    mov     eax,[pnext]
492
  ;sub_blue_0
621
  ;sub_blue_0
493
    cmp     al,0
622
    cmp     al,0
494
    jne     sub_blue_1
623
    jne     sub_blue_1
495
    sub     edx,0x400000
624
    sub     edx,0x600000
496
    jmp     sub_blue_e
625
    jmp     sub_blue_e
497
  sub_blue_1:
626
  sub_blue_1:
498
    cmp     al,1
627
    cmp     al,1
499
    jne     sub_blue_e
628
    jne     sub_blue_e
500
    sub     edx,0x600000
629
    sub     edx,0x400000
501
    ;jmp     sub_blue_e
630
    ;jmp     sub_blue_e
502
  sub_blue_e:
631
  sub_blue_e:
Line 503... Line 632...
503
    pop     eax
632
    pop     eax
504
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
633
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
505
;end_sub_blue-----------------------------------------------------------------------------------------
634
;end_sub_blue-----------------------------------------------------------------------------------------
506
 
635
 
507
draw_result:
636
draw_result:
508
    ;.................................................................................................
637
    ;.................................................................................................
509
    ; Áîëüøàÿ ðàìêà âûâîäà ðåçóëüòàòà
638
    ; ®«ìè ï à ¬ª  ¢ë¢®¤  १ã«ìâ â 
510
    ;.................................................................................................
639
    ;.................................................................................................
511
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
640
    mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
512
    mov     edx,0x00666666                ; öâåò-îáâîäêè
641
    mov     edx,0x00666666                ; 梥â-®¡¢®¤ª¨
513
    mov     ebx,4 shl 16+98               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
642
    mov     ebx,4 shl 16+98               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
514
    mov     ecx,9 shl 16+148              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
643
    mov     ecx,9 shl 16+148              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
515
    int     0x40
644
    int     0x40
Line 516... Line 645...
516
    mov     edx,0x00F3F3F3                ; öâåò-ôîíà
645
    mov     edx,0x00F3F3F3                ; 梥â-ä®­ 
517
    mov     ebx,5 shl 16+96               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
646
    mov     ebx,5 shl 16+96               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
518
    mov     ecx,10 shl 16+146             ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
647
    mov     ecx,10 shl 16+146             ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
519
    int     0x40
648
    int     0x40
520
 
649
 
521
    ;.................................................................................................
650
    ;.................................................................................................
522
    ; Îòðèñîâêà ðåçóëüòàòà öâåòà â hex color2
651
    ; Žâà¨á®¢ª  १ã«ìâ â  æ¢¥â  ¢ hex color2
523
    ;.................................................................................................
652
    ;.................................................................................................
524
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
653
    mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
525
    ; color 2 - draw fringle
654
    ; color 2 - draw fringle
526
    mov     edx,0x222222                  ; öâåò-îáâîäêè
655
    mov     edx,0x222222                  ; 梥â-®¡¢®¤ª¨
527
    mov     ebx,16 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
656
    mov     ebx,16 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
528
    mov     ecx,16 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
657
    mov     ecx,16 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
529
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
658
    int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
530
    ; color 2 - draw color
659
    ; color 2 - draw color
531
    mov     edx,[color2]                  ; öâåò
660
    mov     edx,[color2]                  ; 梥â
532
    mov     ebx,17 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
661
    mov     ebx,17 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
533
    mov     ecx,17 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
662
    mov     ecx,17 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
534
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
663
    int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
535
    ; color 1 - draw fringle
664
    ; color 1 - draw fringle
536
    mov     edx,0x222222                  ; öâåò-îáâîäêè
665
    mov     edx,0x222222                  ; 梥â-®¡¢®¤ª¨
537
    mov     ebx,11 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
666
    mov     ebx,11 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
538
    mov     ecx,12 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
667
    mov     ecx,12 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
Line 539... Line 668...
539
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
668
    int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
540
    ; value - draw fringle
669
    ; value - draw fringle
541
    mov     ebx,34 shl 16+62              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
670
    mov     ebx,34 shl 16+62              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
542
    mov     ecx,16 shl 16+15              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
671
    mov     ecx,16 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
543
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
672
    int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
544
 
673
 
545
    ; color 2 - draw color
674
    ; color 2 - draw color
546
    mov     edx,[color]                   ; öâåò
675
    mov     edx,[color]                   ; 梥â
547
    mov     ebx,12 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
676
    mov     ebx,12 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
548
    mov     ecx,13 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
677
    mov     ecx,13 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
Line 549... Line 678...
549
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
678
    int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
550
    ; value - draw background
679
    ; value - draw background
551
    mov     edx,0xFFFFFF                  ; öâåò-ôîíà
680
    mov     edx,0xFFFFFF                  ; 梥â-ä®­ 
552
    mov     ebx,35 shl 16+60              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
681
    mov     ebx,35 shl 16+60              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
553
    mov     ecx,17 shl 16+13              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
682
    mov     ecx,17 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
554
    int     0x40                          ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê)
683
    int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
Line 555... Line 684...
555
 
684
 
556
    mov     eax,47                        ; Ôóíêöèÿ 47 - âûâîä ÷èñëà â îêíî
685
    mov     eax,47                        ; ”ã­ªæ¨ï 47 - ¢ë¢®¤ ç¨á«  ¢ ®ª­®
557
    mov     ecx,[color]                   ; ÷èñëî (ïðè bl=0) èëè óêàçàòåëü (ïðè bl=1)
686
    mov     ecx,[color]                   ; ç¨á«® (¯à¨ bl=0) ¨«¨ 㪠§ â¥«ì (¯à¨ bl=1)
558
    mov     esi,0x0                       ; 0xX0RRGGBB
687
    mov     esi,0x0                       ; 0xX0RRGGBB
559
    mov     ebx,256+8 shl 16              ; ïàðàìåòðû ïðåîáðàçîâàíèÿ ÷èñëà â òåêñò (HEX)
688
    mov     ebx,256+8 shl 16              ; ¯ à ¬¥âàë ¯à¥®¡à §®¢ ­¨ï ç¨á«  ¢ ⥪áâ (HEX)
560
    mov     edx,45 shl 16+20              ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y]
689
    mov     edx,45 shl 16+20              ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
Line 561... Line 690...
561
    int     0x40                          ; Ïðåðûâàíèå - âûâîäèì ðåçóëüòàò â îêíî (HEX)
690
    int     0x40                          ; à¥à뢠­¨¥ - ¢ë¢®¤¨¬ १ã«ìâ â ¢ ®ª­® (HEX)
562
 
691
 
563
    mov     eax,4                         ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå
692
    mov     eax,4                         ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
564
    mov	    ebx,38*65536+20               ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
693
    mov	    ebx,38*65536+20               ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
Line 565... Line 694...
565
    mov	    ecx,0x0                       ; öâåò òåêñòà RRGGBB
694
    mov	    ecx,0x0                       ; 梥â ⥪áâ  RRGGBB
566
    mov	    edx,hex                       ; ðèñóåì '#'
695
    mov	    edx,hex                       ; à¨á㥬 '#'
567
    mov	    esi,1                         ; äëèíà òåêñòà â áàéòàõ
696
    mov	    esi,1                         ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
Line 568... Line 697...
568
    int	    0x40
697
    int	    0x40
569
 
698
 
570
    ;.................................................................................................
699
    ;.................................................................................................
Line 571... Line 700...
571
    ; Îòðèñîâêà r g b çíà÷åíèé
700
    ; Žâà¨á®¢ª  r g b §­ ç¥­¨©
572
    ;.................................................................................................
701
    ;.................................................................................................
573
    call    get_spectr
702
    call    get_spectr
Line 574... Line 703...
574
 
703
 
575
    movzx   eax,[cred]                    ; êðàñíûé
704
    movzx   eax,[cred]                    ; ªà á­ë©
576
    mov     ebx,9*65536+142               ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
705
    mov     ebx,9*65536+142               ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
Line 577... Line 706...
577
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
706
    call    draw_value                    ; ¢ë¢®¤¨¬ १ã«ìâ â
578
 
707
 
579
    movzx   eax,[cgreen]                  ; çåëåíûé
708
    movzx   eax,[cgreen]                  ; §¥«¥­ë©
580
    mov     ebx,32*65536+142              ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
709
    mov     ebx,32*65536+142              ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
581
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
710
    call    draw_value                    ; ¢ë¢®¤¨¬ १ã«ìâ â
582
 
711
 
583
    movzx   eax,[cblue]                   ; ñèíèé
712
    movzx   eax,[cblue]                   ; ᨭ¨©
584
    mov     ebx,55*65536+142              ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
713
    mov     ebx,55*65536+142              ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
585
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
714
    call    draw_value                    ; ¢ë¢®¤¨¬ १ã«ìâ â
586
 
715
 
587
    movzx   eax,[calpha]                  ; àëüôà
716
    movzx   eax,[calpha]                  ;  «ìä 
588
    mov     ebx,78*65536+142              ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé]
717
    mov     ebx,78*65536+142              ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
589
    call    draw_value                    ; âûâîäèì ðåçóëüòàò
718
    call    draw_value                    ; ¢ë¢®¤¨¬ १ã«ìâ â
590
 
719
 
Line 591... Line 720...
591
    ;.................................................................................................
720
    ;.................................................................................................
592
    ; Âûâîäèì áóêâû r g b a
721
    ; ‚뢮¤¨¬ ¡ãª¢ë r g b a
593
    ;.................................................................................................
722
    ;.................................................................................................
594
    mov     eax,4                         ; 4 - âûâåñòè ñòðîêó òåêñòà â îêíî
723
    mov     eax,4                         ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
595
    mov     ebx,16 shl 16+40              ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y]
724
    mov     ebx,16 shl 16+40              ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
596
    mov     ecx,0x0                       ; 0xX0RRGGBB (RR, GG, BB çàäàþò öâåò òåêñòà)
725
    mov     ecx,0x0                       ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
597
    mov     edx,cname                     ; óêàçàòåëü íà íà÷àëî ñòðîêè
726
    mov     edx,cname                     ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
598
    mov     esi,1                         ; âûâîäèòü esi ñèìâîëîâ
727
    mov     esi,1                         ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
599
    newline:                              ; öèêë
728
    newline:                              ; 横«
600
      int     0x40                        ; Ïðåðûâàíèå
729
      int     0x40                        ; à¥à뢠­¨¥
601
      add     ebx,23 shl 16               ; Äîáàâëÿåì
730
      add     ebx,23 shl 16               ; „®¡ ¢«ï¥¬
602
      add     edx,1                       ; Äîáàâëÿåì
731
      add     edx,1                       ; „®¡ ¢«ï¥¬
603
      cmp     [edx],byte 'x'              ; Ñðàâíåíèå ñ áàéòîì õ
732
      cmp     [edx],byte 'x'              ; ‘à ¢­¥­¨¥ á ¡ ©â®¬ å
604
    jne    newline                        ; Åñëè íå íóëü èëè íå ðàâíî
733
    jne    newline                        ; …᫨ ­¥ ­ã«ì ¨«¨ ­¥ à ¢­®
Line 605... Line 734...
605
 
734
 
606
    ;.................................................................................................
735
    ;.................................................................................................
607
    ; Îòðèñîâêà ñëàéäåðîâ
736
    ; Žâà¨á®¢ª  á« ©¤¥à®¢
608
    ;.................................................................................................
737
    ;.................................................................................................
609
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
738
    mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
610
    mov     edx,0x222222                  ; öâåò-îáâîäêè
739
    mov     edx,0x222222                  ; 梥â-®¡¢®¤ª¨
611
    mov     ebx,16 shl 16+4               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
740
    mov     ebx,16 shl 16+4               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
612
    mov     ecx,51 shl 16+86              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
741
    mov     ecx,51 shl 16+86              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
613
    int     0x40
742
    int     0x40
614
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
743
    add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
615
    int     0x40
744
    int     0x40
616
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
745
    add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
617
    int     0x40
746
    int     0x40
Line 618... Line 747...
618
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
747
    add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
619
    int     0x40
748
    int     0x40
620
 
749
 
621
    mov     edx,0xFA0919                  ; öâåò-îáâîäêè
750
    mov     edx,0xFA0919                  ; 梥â-®¡¢®¤ª¨
622
    mov     ebx,17 shl 16+2               ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
751
    mov     ebx,17 shl 16+2               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
623
    mov     ecx,52 shl 16+84              ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð]
752
    mov     ecx,52 shl 16+84              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
624
    int     0x40
753
    int     0x40
625
    mov     edx,0x08CE19                  ; öâåò-îáâîäêè
754
    mov     edx,0x08CE19                  ; 梥â-®¡¢®¤ª¨
626
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
755
    add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
627
    int     0x40
756
    int     0x40
628
    mov     edx,0x0909FF                  ; öâåò-îáâîäêè
757
    mov     edx,0x0909FF                  ; 梥â-®¡¢®¤ª¨
629
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
758
    add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
630
    int     0x40
759
    int     0x40
631
    mov     edx,0xE4E4E4                  ; öâåò-îáâîäêè
760
    mov     edx,0xE4E4E4                  ; 梥â-®¡¢®¤ª¨
632
    add     ebx,23 shl 16                 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð]
761
    add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
633
    int     0x40
762
    int     0x40
Line 634... Line 763...
634
 
763
 
635
    ;.................................................................................................
764
    ;.................................................................................................
Line 636... Line 765...
636
    ; Îòðèñîâêà ïîëçóíêîâ
765
    ; Žâà¨á®¢ª  ¯®«§ã­ª®¢
637
    ;.................................................................................................
766
    ;.................................................................................................
638
    mov     edx,0x0                       ; öâåò-ïîëçóíêîâ
767
    mov     edx,0x0                       ; 梥â-¯®«§ã­ª®¢
639
    mov     ebx,17 shl 16+11              ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð]
768
    mov     ebx,17 shl 16+11              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
640
    movzx   eax,[cred]                    ; áåðåì çíà÷åíèå öâåòà
769
    movzx   eax,[cred]                    ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
641
    call    draw_slider
770
    call    draw_slider
642
    add     ebx,23 shl 16
771
    add     ebx,23 shl 16
643
    movzx   eax,[cgreen]                  ; áåðåì çíà÷åíèå öâåòà
772
    movzx   eax,[cgreen]                  ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
644
    call    draw_slider
773
    call    draw_slider
645
    add     ebx,23 shl 16
774
    add     ebx,23 shl 16
646
    movzx   eax,[cblue]                   ; áåðåì çíà÷åíèå öâåòà
775
    movzx   eax,[cblue]                   ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
647
    call    draw_slider
776
    call    draw_slider
648
    add     ebx,23 shl 16
777
    add     ebx,23 shl 16
649
    movzx   eax,[calpha]                  ; áåðåì çíà÷åíèå öâåòà
778
    movzx   eax,[calpha]                  ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
650
    call    draw_slider
779
    call    draw_slider
651
 
780
 
652
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
781
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
653
;end_draw_result
782
;end_draw_result
Line 654... Line 783...
654
 
783
 
Line 655... Line 784...
655
draw_slider:
784
draw_slider:
656
    xor     ecx,ecx
785
    xor     ecx,ecx
657
    mov     cl,0x3                        ; áóäåì äåëèòü åãî íà 3 òàê êàê ïîëçóíêè äëèííîé 85 ïèêñåëåé
786
    mov     cl,0x3                        ; ¡ã¤¥¬ ¤¥«¨âì ¥£® ­  3 â ª ª ª ¯®«§ã­ª¨ ¤«¨­­®© 85 ¯¨ªá¥«¥©
658
    div     cl                            ; äåëèì - öåëîå â al îñòàòîê â ah
787
    div     cl                            ; ¤¥«¨¬ - 楫®¥ ¢ al ®áâ â®ª ¢ ah
659
    mov     cl,136                        ; íèæíÿÿ òî÷êà ïîëçóíêà
788
    mov     cl,136                        ; ­¨¦­ïï â®çª  ¯®«§ã­ª 
660
    sub     cl,al                         ; cl=cl-al
789
    sub     cl,al                         ; cl=cl-al
661
    shl     ecx,16
790
    shl     ecx,16
662
    add     ecx,1                         ; çàäàåì íà÷àëüíîå ïîëîæåíèå
791
    add     ecx,1                         ; § ¤ ¥¬ ­ ç «ì­®¥ ¯®«®¦¥­¨¥
663
    mov     eax,13                        ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê
792
    mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
664
    int     0x40
793
    int     0x40
665
    push    ebx                           ; ñîõðàíÿåì äëÿ ñëåäóþùåãî ïîëçóíêà x+w
794
    push    ebx                           ; á®å࠭塞 ¤«ï á«¥¤ãî饣® ¯®«§ã­ª  x+w
666
    sub     ebx,8                         ; òàê êàê øèðèíà ëèíèè 11 òî îòíèìàåì 8 ÷òîáû êóáèê ñòàë øèðèíîé 3
795
    sub     ebx,8                         ; â ª ª ª è¨à¨­  «¨­¨¨ 11 â® ®â­¨¬ ¥¬ 8 çâ®¡ë ªã¡¨ª áâ « è¨à¨­®© 3
667
    add     ebx,8 shl 16                  ; Êîîðäèíàòû ïî x äëÿ êâàäðàòà íà ïîëçóíêå ñìåùàåì íà 8 â ïðàâî
796
    add     ebx,8 shl 16                  ; Š®®à¤¨­ âë ¯® x ¤«ï ª¢ ¤à â  ­  ¯®«§ã­ª¥ ᬥ頥¬ ­  8 ¢ ¯à ¢®
668
    inc     ecx                           ; áûäëîêîäèì âûñîòó ïîëçóíêà äî 3-õ (1+1=2)
797
    inc     ecx                           ; ¡ë¤«®ª®¤¨¬ ¢ëá®âã ¯®«§ã­ª  ¤® 3-å (1+1=2)
669
    inc     ecx                           ; (2+1=3) íó âîò ó íàñ áóäåò êóáèê 3õ3 íà 8 â ïðàâî îò ëèíèè
798
    inc     ecx                           ; (2+1=3) ­ã ¢®â ã ­ á ¡ã¤¥â ªã¡¨ª 3å3 ­  8 ¢ ¯à ¢® ®â «¨­¨¨
670
    int     0x40                          ; ðèñóåì
799
    int     0x40                          ; à¨á㥬
671
    pop     ebx                           ; âîññòàíàâëèâàåì íîðìàëüíûå êîîðäèíàòû
800
    pop     ebx                           ; ¢®ááâ ­ ¢«¨¢ ¥¬ ­®à¬ «ì­ë¥ ª®®à¤¨­ âë
672
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
801
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
673
 
802
 
674
;end_slider
803
;end_slider
675
 
804
 
676
draw_value:
805
draw_value:
677
    ;.................................................................................................
806
    ;.................................................................................................
678
    ; Âûâîä ÷èñëà èç ñòðîêè â óêàçàííîé îáëàñòè
807
    ; ‚뢮¤ ç¨á«  ¨§ áâப¨ ¢ 㪠§ ­­®© ®¡« áâ¨
Line 679... Line 808...
679
    ;.................................................................................................
808
    ;.................................................................................................
680
    push    ebx                           ; ñîõðàíÿåì ïðèñëàííûå êîîðäèíàòû
809
    push    ebx                           ; á®å࠭塞 ¯à¨á« ­­ë¥ ª®®à¤¨­ âë
681
    mov     ebx,10                        ; óñòàíàâëèâàåì îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ
810
    mov     ebx,10                        ; ãáâ ­ ¢«¨¢ ¥¬ ®á­®¢ ­¨¥ á¨á⥬ë áç¨á«¥­¨ï
682
    mov     edi,buff                      ; óêàçàòåëü íà ñòðîêó áóôåðà
811
    mov     edi,buff                      ; 㪠§ â¥«ì ­  áâப㠡ãä¥à 
683
    call    int2ascii                     ; êîíâåðòèðóåì ÷èñëî è ëîæèì êàê ñòðîêó â áóôåð + esi äëèíà
812
    call    int2ascii                     ; ª®­¢¥àâ¨à㥬 ç¨á«® ¨ «®¦¨¬ ª ª áâப㠢 ¡ãä¥à + esi ¤«¨­ 
684
    mov     eax,4                         ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå
813
    mov     eax,4                         ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
685
    pop     ebx                           ; äîñòàåì èç ñòåêà ïðèñëàííûå êîîðäèíàòû
814
    pop     ebx                           ; ¤®áâ ¥¬ ¨§ á⥪  ¯à¨á« ­­ë¥ ª®®à¤¨­ âë
686
    cmp     esi,2                         ; ÖÅÍÒÐÈÐÎÂÀÍÈÅ ÒÅÊÑÒÀ
815
    cmp     esi,2                         ; –…’ˆŽ‚€ˆ… ’…Š‘’€
687
    jne     draw_value_1
816
    jne     draw_value_1
688
    add     ebx,4 shl 16
817
    add     ebx,4 shl 16
689
    jmp     draw_value_e
818
    jmp     draw_value_e
690
  draw_value_1:
819
  draw_value_1:
Line 691... Line 820...
691
    cmp     esi,1
820
    cmp     esi,1
692
    jne     draw_value_e
821
    jne     draw_value_e
693
    add     ebx,7 shl 16
822
    add     ebx,7 shl 16
694
  draw_value_e:
823
  draw_value_e:
695
    mov     ecx,0x0                       ; öâåò òåêñòà RRGGBB
824
    mov     ecx,0x0                       ; 梥â ⥪áâ  RRGGBB
696
    mov     edx,buff                      ; óêàçàòåëü íà íà÷àëî òåêñòà
825
    mov     edx,buff                      ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
697
    int     0x40
826
    int     0x40
698
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
827
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
699
;end_draw_value
828
;end_draw_value
700
 
829
 
701
hex_digit:
830
hex_digit:
702
    ;.................................................................................................
831
    ;.................................................................................................
703
    ; Ïðåîáðàçîâàíèå â ASCII (âíå çàâèñèìîñòè îò ñèñòåìû ñ÷èñëåíèÿ)
832
    ; à¥®¡à §®¢ ­¨¥ ¢ ASCII (¢­¥ § ¢¨á¨¬®á⨠®â á¨á⥬ë áç¨á«¥­¨ï)
704
    ;.................................................................................................
833
    ;.................................................................................................
705
    cmp    dl,10                          ; â dl îæèäàåòñÿ ÷èñëî îò 0 äî 15
834
    cmp    dl,10                          ; ¢ dl ®¦¨¤ ¥âáï ç¨á«® ®â 0 ¤® 15
706
    jb     .less                          ; åñëè dl<10 òî ïåðåõîäèì
835
    jb     .less                          ; ¥á«¨ dl<10 â® ¯¥à¥å®¤¨¬
707
    add    dl,'A'-10                      ; 10->A 11->B 12->C ...
836
    add    dl,'A'-10                      ; 10->A 11->B 12->C ...
708
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
837
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
709
    .less:
838
    .less:
710
    or     dl,'0'                         ; Åñëè ñèñòåìà ñ÷èñëåíèÿ 10-ÿ è ìåíåå
839
    or     dl,'0'                         ; …᫨ á¨á⥬  áç¨á«¥­¨ï 10-ï ¨ ¬¥­¥¥
711
    ret                                   ; Âîçâðàùàåì óïðàâëåíèå
840
    ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
712
;end_hex_digit
841
;end_hex_digit
713
 
842
 
714
int2ascii:
843
int2ascii:
715
    ;.................................................................................................
844
    ;.................................................................................................
716
    ; Ïðåîáðàçîâàíèå ÷èñëà â ñòðîêó
845
    ; à¥®¡à §®¢ ­¨¥ ç¨á«  ¢ áâபã
717
    ;.................................................................................................
846
    ;.................................................................................................
718
    ; eax - 32-õ çíà÷íîå ÷èñëî
847
    ; eax - 32-å §­ ç­®¥ ç¨á«®
719
    ; ebx - îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ
848
    ; ebx - ®á­®¢ ­¨¥ á¨á⥬ë áç¨á«¥­¨ï
720
    ; edi - óêàçàòåëü íà ñòðîêó áóôåðà
849
    ; edi - 㪠§ â¥«ì ­  áâப㠡ãä¥à 
721
    ; Âîçâðàùàåò çàïîëíåííûé áóôåð è esi - äëèíà ñòðîêè
850
    ; ‚®§¢à é ¥â § ¯®«­¥­­ë© ¡ãä¥à ¨ esi - ¤«¨­  áâப¨
722
    ;pushad
851
    ;pushad
723
    xor     esi,esi                       ; çàíóëÿåì ñ÷åò÷èê ñèìâîëîâ
852
    xor     esi,esi                       ; § ­ã«ï¥¬ áç¥â稪 ᨬ¢®«®¢
Line 724... Line 853...
724
    convert_loop:
853
    convert_loop:
725
    xor     edx,edx                       ; çàíóëÿåì ðåãèñòð ïîä îñòàòîê
854
    xor     edx,edx                       ; § ­ã«ï¥¬ ॣ¨áâà ¯®¤ ®áâ â®ª
726
    div     ebx                           ; eax/ebx - îñòàòîê â edx
855
    div     ebx                           ; eax/ebx - ®áâ â®ª ¢ edx
727
    call    hex_digit                     ; ïðåîáðàçóåì ñèìâîë
856
    call    hex_digit                     ; ¯à¥®¡à §ã¥¬ ᨬ¢®«
728
    push    edx                           ; ëîæèì â ñòåê
-
 
729
    inc     esi                           ; óâåëè÷èâàåì ñ÷åò÷èê
-
 
730
    test    eax,eax                       ; åñëè åùå ìîæíî äåëèòü
-
 
731
    jnz     convert_loop                  ; òî äåëèåì åùå
-
 
732
    cld                                   ; ÎÁßÇÀÒÅËÜÍÎ ñáðàñûâàåì ôëàã íàïðàâëåíèÿ DF (çàïèñü âïåð¸ä)
-
 
733
    write_loop:                           ; èíà÷å
-
 
734
    pop     eax                           ; äîñòàåì èç ñòåêà â åàõ
-
 
735
    stosb                                 ; çàïèñûâàåì â áóôåð ïî àäðåñó ES:(E)DI
-
 
736
    dec     esi                           ; óìåíüøàåì ñ÷åò÷èê
-
 
737
    test    esi,esi                       ; åñëè åñòü ÷òî äîñòàâàòü èç ñòåêà
-
 
738
    jnz     write_loop                    ; òî äîñòà¸ì
-
 
739
    mov     byte [edi],0                  ; èíà÷å äîïèñûûâàåì íóëåâîé áàéò
-
 
740
    ;popad                                 ; âîññòàíàâëèâàåì çíà÷åíèÿ ðåãèñòðîâ
-
 
741
    ; êîä íèæå íå èìååò íè÷åãî îáùåãî ê ôóíêöèè, ïðîñòî âîçâðàùàåò åùå äëèííó ïîëó÷åííîé ñòðîêè
-
 
742
    mov	    edi,buff                      ; óêàçàòåëü íà íà÷àëî òåêñòà
857
    push    edx                           ; «®¦¨¬ ¢ á⥪
743
    call    str_len
858
    inc     esi                           ; 㢥«¨ç¨¢ ¥¬ áç¥â稪
744
    mov     esi,eax
859
    test    eax,eax                       ; ¥á«¨ ¥é¥ ¬®¦­® ¤¥«¨âì
745
    ret                                   ; è âîçâðàùàåì óïðàâëåíèå
860
    jnz     convert_loop                  ; â® ¤¥«¨¥¬ ¥é¥
746
;end_int2ascii
861
    cld                                   ; ŽŸ‡€’…‹œŽ á¡à á뢠¥¬ ä« £ ­ ¯à ¢«¥­¨ï DF (§ ¯¨áì ¢¯¥àñ¤)
747
 
862
    write_loop:                           ; ¨­ ç¥
748
get_spectr:
863
    pop     eax                           ; ¤®áâ ¥¬ ¨§ á⥪  ¢ ¥ å
749
    ;.................................................................................................
864
    stosb                                 ; § ¯¨á뢠¥¬ ¢ ¡ãä¥à ¯®  ¤à¥áã ES:(E)DI
750
    ; âîçâðàùàåò r,g,b ñîñòîâëÿþùèå öâåòà
865
    dec     esi                           ; 㬥­ìè ¥¬ áç¥â稪
751
    ;.................................................................................................
866
    test    esi,esi                       ; ¥á«¨ ¥áâì çâ® ¤®áâ ¢ âì ¨§ á⥪ 
Line 752... Line 867...
752
    ;; get blue
867
    jnz     write_loop                    ; â® ¤®áâ ñ¬
753
    ;mov     ecx,[color]
868
    mov     byte [edi],0                  ; ¨­ ç¥ ¤®¯¨áë뢠¥¬ ­ã«¥¢®© ¡ ©â
754
    ;movzx   eax,cl
869
    ;popad                                 ; ¢®ááâ ­ ¢«¨¢ ¥¬ §­ ç¥­¨ï ॣ¨áâ஢
755
    ;mov     [cblue],al
870
    ; ª®¤ ­¨¦¥ ­¥ ¨¬¥¥â ­¨ç¥£® ®¡é¥£® ª ä㭪樨, ¯à®áâ® ¢®§¢à é ¥â ¥é¥ ¤«¨­­ã ¯®«ã祭­®© áâப¨
756
    ;; get red
871
    mov	    edi,buff                      ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
757
    ;mov     eax,ecx
872
    call    str_len
758
    ;xor     ax,ax     ; à íàäî ëè????
873
    mov     esi,eax
759
    ;shr     eax,16
874
    ret                                   ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
760
    ;mov     [cred],al
875
;end_int2ascii
761
    ;; get green
876
 
762
    ;shl      ecx,16
877
get_spectr:
763
    ;shr      ecx,24
878
    ;.................................................................................................
764
    ;mov      [cgreen],cl
879
    ; ¢®§¢à é ¥â r,g,b á®á⮢«ïî騥 梥â 
765
 
880
    ;.................................................................................................
766
    mov     ecx,[color]
881
    mov     ecx,[color]
Line 767... Line 882...
767
    mov     [cblue],cl
882
    mov     [cblue],cl
768
    shr     ecx,8
883
    shr     ecx,8
769
    mov     [cgreen],cl
884
    mov     [cgreen],cl
770
    shr     ecx,8
885
    shr     ecx,8
771
    mov     [cred],cl
886
    mov     [cred],cl
772
    shr     ecx,8
887
    shr     ecx,8
773
    mov     [calpha],cl
888
    mov     [calpha],cl
Line 813... Line 928...
813
 
928
 
814
	ret
929
	ret
815
;end_str_len
930
;end_str_len
816
;#___________________________________________________________________________________________________
931
;#___________________________________________________________________________________________________
817
;****************************************************************************************************|
932
;****************************************************************************************************|
818
; ÁËÎÊ ÏÅÐÅÌÅÍÍÛÕ È ÊÎÍÑÒÀÍÒ                                                                         |
933
; ‹ŽŠ ……Œ…›• ˆ ŠŽ‘’€’                                                                         |
Line -... Line 934...
-
 
934
;----------------------------------------------------------------------------------------------------/
-
 
935
 
-
 
936
struct map_colors
-
 
937
    c1         db 0
-
 
938
    c2         db 0
-
 
939
    c3         db 0
-
 
940
    c4         db 0
-
 
941
    c5         db 0
-
 
942
    c6         db 0
-
 
943
    c7         db 0
-
 
944
    c8         db 0
-
 
945
    c9         db 0
-
 
946
    c10        db 0
-
 
947
    c11        db 0
-
 
948
    c12        db 0
-
 
949
ends
819
;----------------------------------------------------------------------------------------------------/
950
 
820
 
951
    cm          db 12 dup(0)
821
    color       dd 00000000h              ; õðàíèò çíà÷åíèå âûáðàííîãî öâåòà
952
    color       dd 00000000h              ; åà ­¨â §­ ç¥­¨¥ ¢ë¡à ­­®£® 梥â 
822
    color2      dd 00FFFFFFh              ; õðàíèò çíà÷åíèå âòîðîãî âûáðàííîãî öâåòà
953
    color2      dd 00FFFFFFh              ; åà ­¨â §­ ç¥­¨¥ ¢â®à®£® ¢ë¡à ­­®£® 梥â 
-
 
954
    mouse_x     dd 0                      ; åà ­¨â £«®¡ «ì­ãî å ª®®à¤¨­ âã ¬ëè¨
823
    mouse_x     dd 0                      ; õðàíèò ãëîáàëüíóþ õ êîîðäèíàòó ìûøè
955
    mouse_y     dd 0                      ; åà ­¨â £«®¡ «ì­ãî ã ª®®à¤¨­ âã ¬ëè¨
824
    mouse_y     dd 0                      ; õðàíèò ãëîáàëüíóþ ó êîîðäèíàòó ìûøè
956
    mouse_f     dd 0                      ; åà ­¨â ¤ ­­ë¥ ® ⮬ ª ª ï ª­®¯ª  ¬ëè¨ ¡ë«  ­ ¦ â 
825
    desctop_w   dd 0                      ; õðàíèò øèðèíó ýêðàíà
957
    desctop_w   dd 0                      ; åà ­¨â è¨à¨­ã íªà ­ 
826
    sc          system_colors             ; õðàíèò ñòðóêòóðó ñèñòåìíûõ öâåòîâ ñêèíà
958
    sc          system_colors             ; åà ­¨â áâàãªâãàã á¨á⥬­ëå 梥⮢ ᪨­ 
827
    title       db 'Palitra v0.4',0       ; õðàíèò èìÿ ïðîãðàììû
959
    title       db 'Palitra v0.5',0       ; åà ­¨â ¨¬ï ¯à®£à ¬¬ë
828
    hex         db '#',0                  ; äëÿ âûâîäà ðåø¸òêè êàê òåêñòà
960
    hex         db '#',0                  ; ¤«ï ¢ë¢®¤  à¥èñ⪨ ª ª ⥪áâ 
829
    cname       db 'RGBAx'                ; õðàíèò ðàçðÿäû öâåòîâ (red,green,blue) x-ìåòêà êîíöà
961
    cname       db 'RGBAx'                ; åà ­¨â à §àï¤ë 梥⮢ (red,green,blue) x-¬¥âª  ª®­æ 
830
    cred        db 0                      ; õðàíèì êðàñíûé ñïåêðò
962
    cred        db 0                      ; åà ­¨¬ ªà á­ë© ᯥªàâ
831
    cgreen      db 0                      ; õðàíèì çåëåíûé ñïåêòð
963
    cgreen      db 0                      ; åà ­¨¬ §¥«¥­ë© ᯥªâà
-
 
964
    cblue       db 0                      ; åà ­¨¬ ᨭ¨© ᯥªâà
832
    cblue       db 0                      ; õðàíèì ñèíèé ñïåêòð
965
    calpha      db 0                      ; åà ­¨¬ ¯à®§à ç­®áâì
833
    calpha      db 0                      ; õðàíèì ïðîçðà÷íîñòü
966
    larrow      db 0x1A,0
834
    buff        db '000',0
967
    buff        db '000',0
835
    bnext       db 'NEXT         BACKGROUND',0; èìÿ êíîïêè
-
 
836
    pnext       dd 0                      ; ñ÷åò÷èê ïåðåêëþ÷åíèÿ ïàëèòðû
-
 
-
 
968
    bground     db 'BACKGROUND',0         ; ¨¬ï ª­®¯ª¨ - 14
837
 
969
    pnext       dd 0                      ; áç¥â稪 ¯¥à¥ª«î祭¨ï ¯ «¨âàë