Subversion Repositories Kolibri OS

Rev

Rev 485 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 485 Rev 551
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;                                          ;
2
;                                          ;
3
;   Color Slider Control Demonstration     ;
3
;   Color Slider Control Demonstration     ;
4
;                                          ;
4
;                                          ;
5
;   Compile with FASM for Menuet           ;
5
;   Compile with FASM for Menuet           ;
6
;                                          ;
6
;                                          ;
7
;   Author: Jason Delozier                 ;
7
;   Author: Jason Delozier                 ;
8
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9
 
9
 
10
use32
10
use32
11
 
11
 
12
               org    0x0
12
               org    0x0
13
 
13
 
14
               db     'MENUET01'              ; 8 byte id
14
               db     'MENUET01'              ; 8 byte id
15
               dd     0x01                    ; header version
15
               dd     0x01                    ; header version
16
               dd     START                   ; start of code
16
               dd     START                   ; start of code
17
               dd     I_END                   ; size of image
17
               dd     I_END                   ; size of image
18
               dd     0x1000                  ; memory for app
18
               dd     0x1000                  ; memory for app
19
               dd     0x1000                  ; esp
19
               dd     0x1000                  ; esp
20
               dd     0x0 , 0x0               ; I_Param , I_Icon
20
               dd     0x0 , 0x0               ; I_Param , I_Icon
21
 
21
 
22
include 'lang.inc'
22
include 'lang.inc'
23
include '..\..\..\macros.inc'
23
include '..\..\..\macros.inc'
24
START:                          ; start of execution
24
START:                          ; start of execution
25
 
25
 
26
    call draw_window            ; at first, draw the window
26
    call draw_window            ; at first, draw the window
27
 
27
 
28
still:
28
still:
29
    call mouse_info
29
    call mouse_info
30
 
30
 
31
    mov  eax,23
31
    mov  eax,23
32
    mov  ebx,2
32
    mov  ebx,2
33
    mcall
33
    mcall
34
 
34
 
35
    cmp  eax,1                  ; redraw request ?
35
    cmp  eax,1                  ; redraw request ?
36
    je   red
36
    je   red
37
    cmp  eax,2                  ; key in buffer ?
37
    cmp  eax,2                  ; key in buffer ?
38
    je   key
38
    je   key
39
    cmp  eax,3                  ; button in buffer ?
39
    cmp  eax,3                  ; button in buffer ?
40
    je   button
40
    je   button
41
 
41
 
42
    jmp  still
42
    jmp  still
43
 
43
 
44
  red:                          ; redraw
44
  red:                          ; redraw
45
    call draw_window
45
    call draw_window
46
    jmp  still
46
    jmp  still
47
 
47
 
48
  key:                          ; key
48
  key:                          ; key
49
    mov  eax,2                  ; just read it and ignore
49
    mov  eax,2                  ; just read it and ignore
50
    mcall
50
    mcall
51
    jmp  still
51
    jmp  still
52
 
52
 
53
  button:                       ; button
53
  button:                       ; button
54
    mov  eax,17                 ; get id
54
    mov  eax,17                 ; get id
55
    mcall
55
    mcall
56
 
56
 
57
    shr  eax,8
57
    shr  eax,8
58
 
58
 
59
    cmp  eax,1                   ; button id=1 ?
59
    cmp  eax,1                   ; button id=1 ?
60
    jne  noclose
60
    jne  noclose
61
    mov  eax,-1                 ; close this program
61
    mov  eax,-1                 ; close this program
62
    mcall
62
    mcall
63
  noclose:
63
  noclose:
64
 
64
 
65
 
65
 
66
  nofind:
66
  nofind:
67
    jmp still
67
    jmp still
68
 
68
 
69
 
69
 
70
;   *********************************************
70
;   *********************************************
71
;   *******  WINDOW DEFINITIONS AND DRAW ********
71
;   *******  WINDOW DEFINITIONS AND DRAW ********
72
;   *********************************************
72
;   *********************************************
73
 
73
 
74
 
74
 
75
draw_window:
75
draw_window:
76
    mov  eax,12                    ; function 12:tell os about windowdraw
76
    mov  eax,12                    ; function 12:tell os about windowdraw
77
    mov  ebx,1                     ; 1, start of draw
77
    mov  ebx,1                     ; 1, start of draw
78
    mcall
78
    mcall
79
                                   ; DRAW WINDOW
79
                                   ; DRAW WINDOW
80
    mov  eax,0                     ; function 0 : define and draw window
80
    mov  eax,0                     ; function 0 : define and draw window
81
    mov  ebx,100*65536+200         ; [x start] *65536 + [x size]
81
    mov  ebx,100*65536+200         ; [x start] *65536 + [x size]
82
    mov  ecx,100*65536+200         ; [y start] *65536 + [y size]
82
    mov  ecx,100*65536+200         ; [y start] *65536 + [y size]
83
    mov  edx,0x13ffffff            ; color of work area RRGGBB,8->color gl
83
    mov  edx,0x14ffffff            ; color of work area RRGGBB,8->color gl
84
    mov  edi,title                 ; WINDOW LABEL
84
    mov  edi,title                 ; WINDOW LABEL
85
    mcall
85
    mcall
86
 
86
 
87
    call draw_slider_info
87
    call draw_slider_info
88
 
88
 
89
    xor  ecx,ecx
89
    xor  ecx,ecx
90
Draw_Controls_Loop:
90
Draw_Controls_Loop:
91
    mov  ebp, [App_Controls+ecx]    ;get controls data location
91
    mov  ebp, [App_Controls+ecx]    ;get controls data location
92
    or   ebp,ebp
92
    or   ebp,ebp
93
    jz   Draw_Controls_Done
93
    jz   Draw_Controls_Done
94
    call dword [App_Controls+ecx+4] ;call controls draw function
94
    call dword [App_Controls+ecx+4] ;call controls draw function
95
    add  ecx, 12
95
    add  ecx, 12
96
    jmp  Draw_Controls_Loop
96
    jmp  Draw_Controls_Loop
97
Draw_Controls_Done:
97
Draw_Controls_Done:
98
 
98
 
99
 
99
 
100
    mov  eax,12                    ; function 12:tell os about windowdraw
100
    mov  eax,12                    ; function 12:tell os about windowdraw
101
    mov  ebx,2                     ; 2, end of draw
101
    mov  ebx,2                     ; 2, end of draw
102
    mcall
102
    mcall
103
 
103
 
104
    ret
104
    ret
105
 
105
 
106
 
106
 
107
;***********************************************
107
;***********************************************
108
;* Mouse Stuff
108
;* Mouse Stuff
109
;***********************************************
109
;***********************************************
110
mousey dw 0
110
mousey dw 0
111
mousex dw 0
111
mousex dw 0
112
mouseb dd 0
112
mouseb dd 0
113
 
113
 
114
mouse_info:
114
mouse_info:
115
   mov eax, 37            ;get mouse cordinates
115
   mov eax, 37            ;get mouse cordinates
116
   mov ebx, 1             ;
116
   mov ebx, 1             ;
117
   mcall               ;
117
   mcall               ;
118
   mov ecx, eax           ;
118
   mov ecx, eax           ;
119
   push ecx               ;
119
   push ecx               ;
120
   mov eax, 37            ;get mouse buttons
120
   mov eax, 37            ;get mouse buttons
121
   mov ebx, 2             ;
121
   mov ebx, 2             ;
122
   mcall               ;
122
   mcall               ;
123
   cmp [mouseb], eax      ;compare old mouse states to new states
123
   cmp [mouseb], eax      ;compare old mouse states to new states
124
   jne redraw_mouse_info  ;
124
   jne redraw_mouse_info  ;
125
   cmp [mousey], cx       ;
125
   cmp [mousey], cx       ;
126
   jne redraw_mouse_info  ;
126
   jne redraw_mouse_info  ;
127
   shr ecx, 16            ;
127
   shr ecx, 16            ;
128
   cmp [mousex], cx       ;
128
   cmp [mousex], cx       ;
129
   jne redraw_mouse_info  ;
129
   jne redraw_mouse_info  ;
130
   pop ecx                ;
130
   pop ecx                ;
131
ret                       ;return if no change in states
131
ret                       ;return if no change in states
132
 
132
 
133
 
133
 
134
redraw_mouse_info:
134
redraw_mouse_info:
135
   pop ecx
135
   pop ecx
136
   mov [mouseb], eax      ;save new mouse states
136
   mov [mouseb], eax      ;save new mouse states
137
   mov dword [mousey], ecx
137
   mov dword [mousey], ecx
138
 
138
 
139
   xor ecx, ecx
139
   xor ecx, ecx
140
Check_Mouse_Over_Controls_Loop:
140
Check_Mouse_Over_Controls_Loop:
141
   mov ebp, [App_Controls+ecx]
141
   mov ebp, [App_Controls+ecx]
142
   or  ebp,ebp
142
   or  ebp,ebp
143
   jz Check_Mouse_Over_Controls_Loop_done
143
   jz Check_Mouse_Over_Controls_Loop_done
144
   movzx eax,word [ebp+2]
144
   movzx eax,word [ebp+2]
145
   cmp    ax, [mousex]
145
   cmp    ax, [mousex]
146
   ja  mouse_not_on_control
146
   ja  mouse_not_on_control
147
   movzx eax,word [ebp+6]
147
   movzx eax,word [ebp+6]
148
   cmp    ax, [mousey]
148
   cmp    ax, [mousey]
149
   ja  mouse_not_on_control
149
   ja  mouse_not_on_control
150
   movzx eax,word [ebp]
150
   movzx eax,word [ebp]
151
   add    ax, [ebp+2]
151
   add    ax, [ebp+2]
152
   cmp    ax, [mousex]
152
   cmp    ax, [mousex]
153
   jb  mouse_not_on_control
153
   jb  mouse_not_on_control
154
   movzx eax,word [ebp+4]
154
   movzx eax,word [ebp+4]
155
   add    ax, [ebp+6]
155
   add    ax, [ebp+6]
156
   cmp    ax, [mousey]
156
   cmp    ax, [mousey]
157
   jb  mouse_not_on_control
157
   jb  mouse_not_on_control
158
   call dword [App_Controls+ecx+8]
158
   call dword [App_Controls+ecx+8]
159
mouse_not_on_control:
159
mouse_not_on_control:
160
   add ecx, 12
160
   add ecx, 12
161
   jmp Check_Mouse_Over_Controls_Loop
161
   jmp Check_Mouse_Over_Controls_Loop
162
Check_Mouse_Over_Controls_Loop_done:
162
Check_Mouse_Over_Controls_Loop_done:
163
 
163
 
164
ret
164
ret
165
 
165
 
166
 
166
 
167
 
167
 
168
 
168
 
169
;***********************************************
169
;***********************************************
170
 
170
 
171
 
171
 
172
draw_slider_info:
172
draw_slider_info:
173
;Repaint value background
173
;Repaint value background
174
   mov eax, 13
174
   mov eax, 13
175
   mov ebx, 0x00960028
175
   mov ebx, 0x00960028
176
   mov ecx, 0x00240010
176
   mov ecx, 0x00240010
177
   mov edx, 0x00ffffff
177
   mov edx, 0x00ffffff
178
   mcall
178
   mcall
179
;Draw Color Box
179
;Draw Color Box
180
   xor edx, edx
180
   xor edx, edx
181
   movzx ecx,word [slider_1+12]
181
   movzx ecx,word [slider_1+12]
182
   mov dh, cl
182
   mov dh, cl
183
   movzx ecx,word [slider_2+12]
183
   movzx ecx,word [slider_2+12]
184
   mov dl, cl
184
   mov dl, cl
185
   shl edx, 8
185
   shl edx, 8
186
   movzx ecx,word [slider_3+12]
186
   movzx ecx,word [slider_3+12]
187
   mov dl,cl
187
   mov dl,cl
188
   mov ebx, 0x00860035
188
   mov ebx, 0x00860035
189
   mov ecx, 0x00590040
189
   mov ecx, 0x00590040
190
   mov eax, 13
190
   mov eax, 13
191
   mcall
191
   mcall
192
;draw current value of slider
192
;draw current value of slider
193
   mov ecx, edx
193
   mov ecx, edx
194
   mov eax, 47
194
   mov eax, 47
195
   mov ebx, 0x00060100
195
   mov ebx, 0x00060100
196
   mov esi, 0
196
   mov esi, 0
197
   mov edx, 0x009A0029
197
   mov edx, 0x009A0029
198
   mcall
198
   mcall
199
ret
199
ret
200
 
200
 
201
 
201
 
202
;**************************************
202
;**************************************
203
;*
203
;*
204
;*   App Controls
204
;*   App Controls
205
;*
205
;*
206
;**************************************
206
;**************************************
207
 
207
 
208
App_Controls:
208
App_Controls:
209
     dd slider_1 , draw_slider, slider_mouse_over   ;
209
     dd slider_1 , draw_slider, slider_mouse_over   ;
210
     dd slider_2 , draw_slider, slider_mouse_over   ;
210
     dd slider_2 , draw_slider, slider_mouse_over   ;
211
     dd slider_3 , draw_slider, slider_mouse_over   ;
211
     dd slider_3 , draw_slider, slider_mouse_over   ;
212
     dd 0 , 0          ; denotes last control do not delete
212
     dd 0 , 0          ; denotes last control do not delete
213
 
213
 
214
;**************************************
214
;**************************************
215
;*
215
;*
216
;*   Slider data
216
;*   Slider data
217
;*
217
;*
218
;**************************************
218
;**************************************
219
 
219
 
220
slider_1:
220
slider_1:
221
   dw  25  ;width         +0
221
   dw  25  ;width         +0
222
   dw  10  ;x             +2
222
   dw  10  ;x             +2
223
   dw  150 ;height        +4
223
   dw  150 ;height        +4
224
   dw  30  ;y             +6
224
   dw  30  ;y             +6
225
   dw  0   ;min           +8
225
   dw  0   ;min           +8
226
   dw  255 ;max           +10
226
   dw  255 ;max           +10
227
   dw  128 ;current       +12
227
   dw  128 ;current       +12
228
   dw  1   ;small change  +14
228
   dw  1   ;small change  +14
229
   dw  5   ;big change    +16
229
   dw  5   ;big change    +16
230
 
230
 
231
slider_2:
231
slider_2:
232
   dw  25  ;width         +0
232
   dw  25  ;width         +0
233
   dw  55  ;x             +2
233
   dw  55  ;x             +2
234
   dw  150 ;height        +4
234
   dw  150 ;height        +4
235
   dw  30  ;y             +6
235
   dw  30  ;y             +6
236
   dw  0   ;min           +8
236
   dw  0   ;min           +8
237
   dw  255 ;max           +10
237
   dw  255 ;max           +10
238
   dw  128  ;current       +12
238
   dw  128  ;current       +12
239
   dw  1   ;small change  +14
239
   dw  1   ;small change  +14
240
   dw  5   ;big change    +16
240
   dw  5   ;big change    +16
241
 
241
 
242
slider_3:
242
slider_3:
243
   dw  25  ;width         +0
243
   dw  25  ;width         +0
244
   dw  100 ;x             +2
244
   dw  100 ;x             +2
245
   dw  150 ;height        +4
245
   dw  150 ;height        +4
246
   dw  30  ;y             +6
246
   dw  30  ;y             +6
247
   dw  0   ;min           +8
247
   dw  0   ;min           +8
248
   dw  255 ;max           +10
248
   dw  255 ;max           +10
249
   dw  128 ;current       +12
249
   dw  128 ;current       +12
250
   dw  1   ;small change  +14
250
   dw  1   ;small change  +14
251
   dw  5   ;big change    +16
251
   dw  5   ;big change    +16
252
 
252
 
253
;**************************************
253
;**************************************
254
;*
254
;*
255
;*   Slider Code
255
;*   Slider Code
256
;*
256
;*
257
;**************************************
257
;**************************************
258
 
258
 
259
box_h dw 10  ;static slider box height
259
box_h dw 10  ;static slider box height
260
 
260
 
261
draw_slider:
261
draw_slider:
262
   push eax
262
   push eax
263
   push ebx
263
   push ebx
264
   push ecx
264
   push ecx
265
   push edx
265
   push edx
266
;Draw slider background
266
;Draw slider background
267
   mov   eax, 13         ;slider background
267
   mov   eax, 13         ;slider background
268
   mov   ebx, [ebp]      ;x start/width
268
   mov   ebx, [ebp]      ;x start/width
269
   mov   ecx, [ebp+4]    ;y start/height
269
   mov   ecx, [ebp+4]    ;y start/height
270
   mov   edx, 0x002288DD ;color
270
   mov   edx, 0x002288DD ;color
271
   mcall                 ;draw bar
271
   mcall                 ;draw bar
272
;Draw line for slide rail
272
;Draw line for slide rail
273
   mov   eax, 38         ;draw vertical slide line
273
   mov   eax, 38         ;draw vertical slide line
274
   movzx ebx,word [ebp]  ;x
274
   movzx ebx,word [ebp]  ;x
275
   shr   ebx, 1          ;
275
   shr   ebx, 1          ;
276
   add    bx,word [ebp+2];
276
   add    bx,word [ebp+2];
277
   push   bx             ;
277
   push   bx             ;
278
   shl   ebx, 16         ;
278
   shl   ebx, 16         ;
279
   pop    bx             ;
279
   pop    bx             ;
280
   mov   ecx, [ebp+4]    ;y start / height
280
   mov   ecx, [ebp+4]    ;y start / height
281
   add   ecx, 0x000A0000 ;
281
   add   ecx, 0x000A0000 ;
282
   add   ecx, [ebp+6]    ;y start
282
   add   ecx, [ebp+6]    ;y start
283
   sub   ecx, 10         ;
283
   sub   ecx, 10         ;
284
   mov   edx, 0x00         ;color
284
   mov   edx, 0x00         ;color
285
   mcall              ;
285
   mcall              ;
286
;Draw slider box
286
;Draw slider box
287
   movzx eax,word [ebp+4]  ;height
287
   movzx eax,word [ebp+4]  ;height
288
   sub   eax, 20           ;
288
   sub   eax, 20           ;
289
   movzx ebx,word [ebp+10] ;max value
289
   movzx ebx,word [ebp+10] ;max value
290
   sub    bx,word [ebp+8]  ;min value
290
   sub    bx,word [ebp+8]  ;min value
291
   movzx ecx,word [ebp+12] ;
291
   movzx ecx,word [ebp+12] ;
292
   call  slider_fpu_calc   ;EAX = ((EAX/EBX)*ECX)
292
   call  slider_fpu_calc   ;EAX = ((EAX/EBX)*ECX)
293
   mov   ebx, [ebp]        ;x start / width
293
   mov   ebx, [ebp]        ;x start / width
294
   movzx ecx,word [ebp+4]  ;height
294
   movzx ecx,word [ebp+4]  ;height
295
   add    cx, [ebp+6]      ;y
295
   add    cx, [ebp+6]      ;y
296
   sub   ecx, 10           ;
296
   sub   ecx, 10           ;
297
   movzx edx, [box_h]      ;
297
   movzx edx, [box_h]      ;
298
   shr   edx, 1            ;
298
   shr   edx, 1            ;
299
   sub   ecx, edx          ;
299
   sub   ecx, edx          ;
300
   sub   ecx, eax          ;*slide box y position
300
   sub   ecx, eax          ;*slide box y position
301
   shl   ecx, 16           ;
301
   shl   ecx, 16           ;
302
   mov    cx, [box_h]      ;height
302
   mov    cx, [box_h]      ;height
303
   mov   eax, 13           ;draw bar sys function
303
   mov   eax, 13           ;draw bar sys function
304
   mov   edx, 0x00         ;color
304
   mov   edx, 0x00         ;color
305
   mcall               ;draw slider box
305
   mcall               ;draw slider box
306
   pop edx
306
   pop edx
307
   pop ecx
307
   pop ecx
308
   pop ebx
308
   pop ebx
309
   pop eax
309
   pop eax
310
ret
310
ret
311
 
311
 
312
slider_mouse_over:
312
slider_mouse_over:
313
   push eax
313
   push eax
314
   push ebx
314
   push ebx
315
   push ecx
315
   push ecx
316
   push edx
316
   push edx
317
   cmp [mouseb], 1
317
   cmp [mouseb], 1
318
   jne slider_mouse_over_done
318
   jne slider_mouse_over_done
319
   movzx eax,word [ebp+4]
319
   movzx eax,word [ebp+4]
320
   add    ax, [ebp+6]
320
   add    ax, [ebp+6]
321
   sub   eax, 10
321
   sub   eax, 10
322
   cmp [mousey], ax
322
   cmp [mousey], ax
323
   ja slider_mouse_min
323
   ja slider_mouse_min
324
   movzx eax,word [ebp+6]
324
   movzx eax,word [ebp+6]
325
   add   eax, 10
325
   add   eax, 10
326
   cmp [mousey], ax
326
   cmp [mousey], ax
327
   jb slider_mouse_max
327
   jb slider_mouse_max
328
;determine new current value
328
;determine new current value
329
   movzx eax,word  [ebp+10] ;slider max value
329
   movzx eax,word  [ebp+10] ;slider max value
330
   sub    ax,word  [ebp+8]  ;slider min value
330
   sub    ax,word  [ebp+8]  ;slider min value
331
   movzx ebx,word [ebp+4]   ;slider height
331
   movzx ebx,word [ebp+4]   ;slider height
332
   sub   ebx,20             ;rail size
332
   sub   ebx,20             ;rail size
333
   movzx ecx,word [mousey]  ;current mouse y pixel
333
   movzx ecx,word [mousey]  ;current mouse y pixel
334
   sub   cx,word  [ebp+6]   ;minus y start of slider
334
   sub   cx,word  [ebp+6]   ;minus y start of slider
335
   sub   ecx, 10            ;minus pixels to top of rail
335
   sub   ecx, 10            ;minus pixels to top of rail
336
   call  slider_fpu_calc    ;EAX = ((EAX/EBX)*ECX)
336
   call  slider_fpu_calc    ;EAX = ((EAX/EBX)*ECX)
337
   movzx ebx,word [ebp+10]  ;slider max
337
   movzx ebx,word [ebp+10]  ;slider max
338
   sub   ebx,eax            ;*current calculated position
338
   sub   ebx,eax            ;*current calculated position
339
   jmp   slider_mouse_change;
339
   jmp   slider_mouse_change;
340
slider_mouse_max:           ;
340
slider_mouse_max:           ;
341
   movzx ebx,word [ebp+10]  ;get maximum value
341
   movzx ebx,word [ebp+10]  ;get maximum value
342
   jmp slider_mouse_change  ;
342
   jmp slider_mouse_change  ;
343
slider_mouse_min:           ;
343
slider_mouse_min:           ;
344
   movzx ebx,word [ebp+8]   ;get minimum value
344
   movzx ebx,word [ebp+8]   ;get minimum value
345
slider_mouse_change:        ;
345
slider_mouse_change:        ;
346
   mov   [ebp+12],bx        ;new slider current position
346
   mov   [ebp+12],bx        ;new slider current position
347
   call draw_slider         ;
347
   call draw_slider         ;
348
   call draw_slider_info    ;
348
   call draw_slider_info    ;
349
slider_mouse_over_done:     ;
349
slider_mouse_over_done:     ;
350
   pop edx
350
   pop edx
351
   pop ecx
351
   pop ecx
352
   pop ebx
352
   pop ebx
353
   pop eax
353
   pop eax
354
ret
354
ret
355
 
355
 
356
 
356
 
357
temp  dd 0   ;temp varibles used in fpu computations
357
temp  dd 0   ;temp varibles used in fpu computations
358
temp2 dd 0
358
temp2 dd 0
359
temp3 dd 0
359
temp3 dd 0
360
 
360
 
361
slider_fpu_calc:
361
slider_fpu_calc:
362
   mov   [temp],  eax
362
   mov   [temp],  eax
363
   mov   [temp2], ebx
363
   mov   [temp2], ebx
364
   mov   [temp3], ecx
364
   mov   [temp3], ecx
365
   finit                   ;initilize FPU
365
   finit                   ;initilize FPU
366
   fld   dword  [temp]     ;load value
366
   fld   dword  [temp]     ;load value
367
   fdiv  dword  [temp2]    ;divide
367
   fdiv  dword  [temp2]    ;divide
368
   fmul  dword  [temp3]    ;multiply
368
   fmul  dword  [temp3]    ;multiply
369
   fst   dword  [temp]     ;store computed value
369
   fst   dword  [temp]     ;store computed value
370
   mov   eax,   [temp]
370
   mov   eax,   [temp]
371
ret
371
ret
372
 
372
 
373
;**************************************************
373
;**************************************************
374
;* End Slider Code
374
;* End Slider Code
375
;**************************************************
375
;**************************************************
376
 
376
 
377
; DATA AREA
377
; DATA AREA
378
title     db  'Color Slider',0
378
title     db  'Color Slider',0
379
I_END:
379
I_END: