Subversion Repositories Kolibri OS

Rev

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

Rev 551 Rev 2704
1
;  COLORREF.ASM - COLOR REFERENCE
1
;  COLORREF.ASM - COLOR REFERENCE
2
;
2
;
3
;  Compile with FASM for Menuet
3
;  Compile with FASM for Menuet
4
;
4
;
5
 
5
 
6
use32
6
use32
7
         org  0x0
7
         org  0x0
8
 
8
 
9
         db  'MENUET01'            ; 8 byte id
9
         db  'MENUET01'            ; 8 byte id
10
         dd   0x01                 ; header version
10
         dd   0x01                 ; header version
11
         dd   start                ; start of code
11
         dd   start                ; start of code
12
         dd   finis                ; size of image
12
         dd   finis                ; size of image
13
         dd   0x1000               ; memory for app
13
         dd   0x1000               ; memory for app
14
         dd   0x1000               ; esp
14
         dd   0x1000               ; esp
15
         dd   0x0,0x0              ; I_Param , I_Icon
15
         dd   0x0,0x0              ; I_Param , I_Icon
16
 
16
 
17
include 'lang.inc'
17
include 'lang.inc'
18
include '..\..\..\macros.inc'
18
include '..\..\..\macros.inc'
19
wide:    dd   0                    ; screen pixels width
19
wide:    dd   0                    ; screen pixels width
20
mouse:   dd   0                    ; 1=right,2=left [mouse click]
20
mouse:   dd   0                    ; 1=right,2=left [mouse click]
21
 
21
 
22
 
22
 
23
start:
23
start:
24
 
24
 
25
    mov  eax,14                    ; get screen size
25
    mov  eax,14                    ; get screen size
26
    mcall
26
    mcall
27
    shr  eax,16                    ; get width into AX
27
    shr  eax,16                    ; get width into AX
28
    inc  eax                       ; not 0 based
28
    inc  eax                       ; not 0 based
29
    mov  [wide],eax
29
    mov  [wide],eax
30
 
30
 
31
    call draw_window
31
    call draw_window
32
 
32
 
33
still:
33
still:
34
    mov  eax,23                    ; wait for event w/timeout
34
    mov  eax,23                    ; wait for event w/timeout
35
    mov  ebx,5                     ; delay in hundredths
35
    mov  ebx,5                     ; delay in hundredths
36
    mcall
36
    mcall
37
 
37
 
38
    cmp  eax,1                     ; redraw request ?
38
    cmp  eax,1                     ; redraw request ?
39
    jne  s1
39
    jne  s1
40
    jmp  red
40
    jmp  red
41
s1: cmp  eax,2                     ; key in buffer ?
41
s1: cmp  eax,2                     ; key in buffer ?
42
    jne  s2
42
    jne  s2
43
    jmp  key
43
    jmp  key
44
s2: cmp  eax,3                     ; button in buffer ?
44
s2: cmp  eax,3                     ; button in buffer ?
45
    jne  s3
45
    jne  s3
46
    jmp   button
46
    jmp   button
47
s3: mov  eax,9                     ; process info function
47
s3: mov  eax,9                     ; process info function
48
    mov  ebx,stat_table            ; return data table
48
    mov  ebx,stat_table            ; return data table
49
    mov  ecx,-1                    ; who am i
49
    mov  ecx,-1                    ; who am i
50
    mcall
50
    mcall
51
    cmp  ax,[stat_table+4]         ; are we active?
51
    cmp  ax,[stat_table+4]         ; are we active?
52
    je   active                    ; yep
52
    je   active                    ; yep
53
    jmp  still
53
    jmp  still
54
 
54
 
55
  active:
55
  active:
56
    mov  eax,37                    ; mouse info function
56
    mov  eax,37                    ; mouse info function
57
    mov  ebx,2                     ; get buttons
57
    mov  ebx,2                     ; get buttons
58
    mcall
58
    mcall
59
    cmp  eax,0                     ; mouse click?
59
    cmp  eax,0                     ; mouse click?
60
    jne  click
60
    jne  click
61
    jmp  still
61
    jmp  still
62
  click:
62
  click:
63
    mov  [mouse],eax               ; save mouse click
63
    mov  [mouse],eax               ; save mouse click
64
    mov  eax,37                    ; mouse info
64
    mov  eax,37                    ; mouse info
65
    xor  ebx,ebx                   ; get screen pos for mouse
65
    xor  ebx,ebx                   ; get screen pos for mouse
66
    mcall                      ; into EAX
66
    mcall                      ; into EAX
67
    xor  ebx,ebx
67
    xor  ebx,ebx
68
    mov  bx,ax                     ; BX=y screen position
68
    mov  bx,ax                     ; BX=y screen position
69
    shr  eax,16                    ; AX=x screen position
69
    shr  eax,16                    ; AX=x screen position
70
    xchg eax,ebx                   ; EAX=y, EBX=x
70
    xchg eax,ebx                   ; EAX=y, EBX=x
71
    dec  eax                       ; don't calc mouse scanline
71
    dec  eax                       ; don't calc mouse scanline
72
    mov  ecx,[wide]                ; get pixels wide
72
    mov  ecx,[wide]                ; get pixels wide
73
    mul  ecx
73
    mul  ecx
74
    add  ebx,eax                   ; add x
74
    add  ebx,eax                   ; add x
75
    mov  eax,35                    ; get mouse pos pixel
75
    mov  eax,35                    ; get mouse pos pixel
76
    mcall                      ; EAX=mouse pixel color
76
    mcall                      ; EAX=mouse pixel color
77
    mov  ebx,eax                   ; EBX has color
77
    mov  ebx,eax                   ; EBX has color
78
    mov  esi,colors                ; color table
78
    mov  esi,colors                ; color table
79
    mov  ecx,72                    ; total colors
79
    mov  ecx,72                    ; total colors
80
    xor  edx,edx                   ; init a counter
80
    xor  edx,edx                   ; init a counter
81
  check:
81
  check:
82
    lodsd
82
    lodsd
83
    inc  edx                       ; update counter
83
    inc  edx                       ; update counter
84
    cmp  ebx,eax                   ; color match?
84
    cmp  ebx,eax                   ; color match?
85
    je   _match                     ; yep
85
    je   _match                     ; yep
86
    loop check                     ; check all colors
86
    loop check                     ; check all colors
87
    jmp still                      ; no match
87
    jmp still                      ; no match
88
  _match:
88
  _match:
89
    cmp  [mouse],dword 1           ; right click?
89
    cmp  [mouse],dword 1           ; right click?
90
    je   right                     ; yep
90
    je   right                     ; yep
91
  left:
91
  left:
92
    cmp  [picks],edx               ; changed left color yet?
92
    cmp  [picks],edx               ; changed left color yet?
93
    jne  l1                        ; no, do it
93
    jne  l1                        ; no, do it
94
    jmp  still
94
    jmp  still
95
l1: mov  [picks],edx               ; update left pick color
95
l1: mov  [picks],edx               ; update left pick color
96
    call clear                     ; erase old text
96
    call clear                     ; erase old text
97
    call draw_picks                ; redraw colors and text
97
    call draw_picks                ; redraw colors and text
98
    jmp  still
98
    jmp  still
99
  right:
99
  right:
100
    cmp  [picks+4],edx             ; changed right color yet?
100
    cmp  [picks+4],edx             ; changed right color yet?
101
    jne  r1                        ; no, do it
101
    jne  r1                        ; no, do it
102
    jmp  still
102
    jmp  still
103
r1: mov  [picks+4],edx             ; update right pick color
103
r1: mov  [picks+4],edx             ; update right pick color
104
    call clear                     ; erase old text
104
    call clear                     ; erase old text
105
    call draw_picks                ; redraw colors and text
105
    call draw_picks                ; redraw colors and text
106
    jmp  still
106
    jmp  still
107
 
107
 
108
  red:                             ; redraw
108
  red:                             ; redraw
109
    call draw_window
109
    call draw_window
110
    jmp  still
110
    jmp  still
111
 
111
 
112
  key:                             ; key
112
  key:                             ; key
113
    mov  eax,2                     ; just read it and ignore
113
    mov  eax,2                     ; just read it and ignore
114
    mcall
114
    mcall
115
    cmp  al,0                      ; key in buffer?
115
    cmp  al,0                      ; key in buffer?
116
    je   k1                        ; yep
116
    je   k1                        ; yep
117
    jmp  still
117
    jmp  still
118
k1: cmp  ah,'H'                    ; cap H ?
118
k1: cmp  ah,'H'                    ; cap H ?
119
    je   k2                        ; yep
119
    je   k2                        ; yep
120
    cmp  ah,'h'                    ; locase h ?
120
    cmp  ah,'h'                    ; locase h ?
121
    je   k2                        ; yep
121
    je   k2                        ; yep
122
    jmp  still
122
    jmp  still
123
k2: call help                      ; show help screen
123
k2: call help                      ; show help screen
124
    jmp  still
124
    jmp  still
125
 
125
 
126
  button:                          ; button
126
  button:                          ; button
127
    mov  eax,17                    ; get id
127
    mov  eax,17                    ; get id
128
    mcall
128
    mcall
129
    cmp  ah,1                      ; button id=1 ?
129
    cmp  ah,1                      ; button id=1 ?
130
    je   close
130
    je   close
131
    jmp  still
131
    jmp  still
132
 
132
 
133
  close:
133
  close:
134
    mov  eax,-1                    ; close this program
134
    mov  eax,-1                    ; close this program
135
    mcall
135
    mcall
136
 
136
 
137
 
137
 
138
;   *********************************************
138
;   *********************************************
139
;   *******  WINDOW DEFINITIONS AND DRAW ********
139
;   *******  WINDOW DEFINITIONS AND DRAW ********
140
;   *********************************************
140
;   *********************************************
141
 
141
 
142
 
142
 
143
draw_window:
143
draw_window:
144
 
-
 
145
    mov  eax,12                    ; tell os about windowdraw
-
 
146
    mov  ebx,1                     ; 1, start of draw
144
 
147
    mcall
145
    mcall 12,1
148
 
146
 
149
    mov  eax,0                     ; DRAW WINDOW
147
    mov  eax,0                     ; DRAW WINDOW
150
    mov  ebx,1*65536+200           ; [x start] *65536 + [x size]
148
    mov  ebx,1*65536+200           ; [x start] *65536 + [x size]
151
    mov  ecx,200*65536+240         ; [y start] *65536 + [y size]
149
    mov  ecx,200*65536+240         ; [y start] *65536 + [y size]
152
    mov  edx,0x14000000            ; work area color (type II)
150
    mov  edx,0x14000000            ; work area color (type II)
153
    mov  edi,title                ; frame color
151
    mov  edi,title                ; frame color
154
    mcall
152
    mcall
155
   
153
   
156
    call palette                   ; display color palette
154
    call palette                   ; display color palette
157
 
-
 
158
    mov  eax,12                    ; tell os about windowdraw
-
 
159
    mov  ebx,2                     ; 2, end of draw
155
 
160
    mcall
156
    mcall 12, 2
161
 
157
 
162
    ret
158
    ret
163
 
159
 
164
 
160
 
165
;   *********************************************
161
;   *********************************************
166
;   *******  COLOR PALETTE LAYOUT ROUTINES ******
162
;   *******  COLOR PALETTE LAYOUT ROUTINES ******
167
;   *********************************************
163
;   *********************************************
168
 
164
 
169
 
165
 
170
palette:
166
palette:
171
    mov  ebx,15*65536+18           ; LAYOUT: start x and width
167
    mov  ebx,15*65536+18           ; LAYOUT: start x and width
172
    mov  edx,32*65536+18           ; LAYOUT: start y and depth
168
    mov  edx,32*65536+18           ; LAYOUT: start y and depth
173
    mov  ecx,8                     ; 8 rows
169
    mov  ecx,8                     ; 8 rows
174
    mov  ebp,colors                ; color table
170
    mov  ebp,colors                ; color table
175
p1: push ecx
171
p1: push ecx
176
    mov  ecx,9                     ; 9 columns
172
    mov  ecx,9                     ; 9 columns
177
p2: push ecx
173
p2: push ecx
178
    push edx
174
    push edx
179
    mov  ecx,edx                   ; y coord
175
    mov  ecx,edx                   ; y coord
180
    mov  edx,[ebp]                 ; color
176
    mov  edx,[ebp]                 ; color
181
    mov  eax,13                    ; draw bar function
177
    mov  eax,13                    ; draw bar function
182
    mcall
178
    mcall
183
    pop  edx
179
    pop  edx
184
    pop  ecx
180
    pop  ecx
185
    add  ebx,19*65536              ; next column
181
    add  ebx,19*65536              ; next column
186
    add  ebp,4                     ; next color
182
    add  ebp,4                     ; next color
187
p3: loop p2
183
p3: loop p2
188
    pop  ecx
184
    pop  ecx
189
    mov  ebx,15*65536+18           ; restart x
185
    mov  ebx,15*65536+18           ; restart x
190
    add  edx,19*65536              ; next row
186
    add  edx,19*65536              ; next row
191
    loop p1
187
    loop p1
192
    call draw_picks
188
    call draw_picks
193
 
189
 
194
    ret
190
    ret
195
 
191
 
196
draw_picks:
192
draw_picks:
197
    mov  ebx,64*65536+24           ; draw x and width
193
    mov  ebx,64*65536+24           ; draw x and width
198
    mov  ecx,188*65536+42          ; draw y and depth
194
    mov  ecx,188*65536+42          ; draw y and depth
199
    mov  edx,0xc0c0c0              ; color grey
195
    mov  edx,0xc0c0c0              ; color grey
200
    mov  eax,13                    ; draw bar function
196
    mov  eax,13                    ; draw bar function
201
    mcall
197
    mcall
202
    mov  eax,[picks]               ; first picked color
198
    mov  eax,[picks]               ; first picked color
203
    mov  esi,22*65536+196          ; print at x and y
199
    mov  esi,22*65536+196          ; print at x and y
204
    call do_hex                    ; print color number
200
    call do_hex                    ; print color number
205
    mov  eax,[picks+4]             ; second picked color
201
    mov  eax,[picks+4]             ; second picked color
206
    mov  esi,22*65536+215          ; print at x and y
202
    mov  esi,22*65536+215          ; print at x and y
207
    call do_hex                    ; print color number
203
    call do_hex                    ; print color number
208
    mov  eax,[picks]               ; first picked color
204
    mov  eax,[picks]               ; first picked color
209
    mov  ebx,67*65536+18           ; x and width
205
    mov  ebx,67*65536+18           ; x and width
210
    mov  esi,191*65536+18          ; y and depth
206
    mov  esi,191*65536+18          ; y and depth
211
    call do_color                  ; paint color 1 square
207
    call do_color                  ; paint color 1 square
212
    mov  eax,[picks+4]             ; second picked color
208
    mov  eax,[picks+4]             ; second picked color
213
    mov  ebx,67*65536+18           ; x and width
209
    mov  ebx,67*65536+18           ; x and width
214
    mov  esi,209*65536+18          ; y and depth
210
    mov  esi,209*65536+18          ; y and depth
215
    call do_color                  ; paint color 2 square
211
    call do_color                  ; paint color 2 square
216
    mov  eax,[picks]               ; first picked color
212
    mov  eax,[picks]               ; first picked color
217
    mov  ebx,96*65536+196          ; x and y
213
    mov  ebx,96*65536+196          ; x and y
218
    call do_name                   ; print color's name
214
    call do_name                   ; print color's name
219
    mov  eax,[picks+4]             ; second picked color
215
    mov  eax,[picks+4]             ; second picked color
220
    mov  ebx,96*65536+215          ; x and y
216
    mov  ebx,96*65536+215          ; x and y
221
    call do_name                   ; print color's name
217
    call do_name                   ; print color's name
222
 
218
 
223
    ret
219
    ret
224
 
220
 
225
do_hex:
221
do_hex:
226
    dec  eax                       ; use 0 base
222
    dec  eax                       ; use 0 base
227
    mov  ecx,4                     ; dword length
223
    mov  ecx,4                     ; dword length
228
    mul  ecx                       ; calc pointer
224
    mul  ecx                       ; calc pointer
229
    mov  edi,colors                ; color table
225
    mov  edi,colors                ; color table
230
    add  edi,eax                   ; add offset
226
    add  edi,eax                   ; add offset
231
    mov  ecx,[edi]                 ; save color 1
227
    mov  ecx,[edi]                 ; save color 1
232
    mov  ebx,0x60100               ; print 6 hex digits
228
    mov  ebx,0x60100               ; print 6 hex digits
233
    mov  edx,esi                   ; copy color
229
    mov  edx,esi                   ; copy color
234
    mov  esi,0xe1e1e1              ; use white
230
    mov  esi,0xe1e1e1              ; use white
235
    mov  eax,47                    ; print number function
231
    mov  eax,47                    ; print number function
236
    mcall
232
    mcall
237
 
233
 
238
    ret
234
    ret
239
 
235
 
240
do_color:
236
do_color:
241
    dec  eax                       ; use 0 base
237
    dec  eax                       ; use 0 base
242
    mov  ecx,4                     ; dword length
238
    mov  ecx,4                     ; dword length
243
    mul  ecx                       ; calc pointer
239
    mul  ecx                       ; calc pointer
244
    mov  edi,colors                ; color table
240
    mov  edi,colors                ; color table
245
    add  edi,eax                   ; add offset
241
    add  edi,eax                   ; add offset
246
    mov  edx,[edi]                 ; color
242
    mov  edx,[edi]                 ; color
247
    mov  ecx,esi                   ; recover y an depth
243
    mov  ecx,esi                   ; recover y an depth
248
    mov  eax,13                    ; draw bar function
244
    mov  eax,13                    ; draw bar function
249
    mcall
245
    mcall
250
 
246
 
251
    ret
247
    ret
252
 
248
 
253
do_name:
249
do_name:
254
    dec  eax                       ; use 0 base
250
    dec  eax                       ; use 0 base
255
    mov  ecx,15                    ; string length
251
    mov  ecx,15                    ; string length
256
    mul  ecx                       ; calc pointer
252
    mul  ecx                       ; calc pointer
257
    mov  edx,names                 ; color table
253
    mov  edx,names                 ; color table
258
    add  edx,eax                   ; add offset
254
    add  edx,eax                   ; add offset
259
    mov  ecx,0xe1e1e1              ; color
255
    mov  ecx,0xe1e1e1              ; color
260
    mov  esi,15
256
    mov  esi,15
261
    mov  eax,4                     ; print text function
257
    mov  eax,4                     ; print text function
262
    mcall
258
    mcall
263
 
259
 
264
    ret
260
    ret
265
 
261
 
266
clear:
262
clear:
267
    mov  ebx,22*65536+36           ; x and width
263
    mov  ebx,22*65536+36           ; x and width
268
    mov  ecx,196*65536+26          ; y and depth
264
    mov  ecx,196*65536+26          ; y and depth
269
    mov  edx,0x000000              ; color
265
    mov  edx,0x000000              ; color
270
    mov  eax,13                    ; draw bar funx
266
    mov  eax,13                    ; draw bar funx
271
    mcall
267
    mcall
272
    mov  ebx,96*65536+90           ; x and width
268
    mov  ebx,96*65536+90           ; x and width
273
    mov  ecx,196*65536+26          ; y and depth
269
    mov  ecx,196*65536+26          ; y and depth
274
    mov  edx,0x000000              ; color
270
    mov  edx,0x000000              ; color
275
    mov  eax,13                    ; draw bar funx
271
    mov  eax,13                    ; draw bar funx
276
    mcall
272
    mcall
277
 
273
 
278
    ret
274
    ret
279
 
275
 
280
help:
276
help:
-
 
277
	mcall 48,4
281
    mov  ebx,4*65536+192           ; x and width
278
	mov ecx, eax
-
 
279
	shl ecx, 16
-
 
280
	add ecx, 236
-
 
281
	sub ecx, eax
-
 
282
 
-
 
283
	
282
    mov  ecx,20*65536+216          ; y and depth
284
    mov  ebx,5*65536+191           ; x and width
283
    mov  edx,0x465e8f              ; dark denim color
285
    mov  edx,0x465e8f              ; dark denim color
284
    mov  eax,13                    ; write text funx
286
    mov  eax,13                    ; write text funx
285
    mcall
287
    mcall
286
    mov  ebx,20*65536+40           ; starting x and y
288
    mov  ebx,20*65536+40           ; starting x and y
287
    mov  edx,text                  ; start of text
289
    mov  edx,text                  ; start of text
288
    mov  esi,27                    ; width of text
290
    mov  esi,27                    ; width of text
289
    mov  ecx,14                    ; 14 text lines to do
291
    mov  ecx,14                    ; 14 text lines to do
290
    mov  eax,4                     ; write text funx
292
    mov  eax,4                     ; write text funx
291
h1: push ecx
293
h1: push ecx
292
    sub  ebx,65537                 ; drop shadow x and y
294
    sub  ebx,65537                 ; drop shadow x and y
293
    mov  ecx,0x000000              ; black shadow
295
    mov  ecx,0x000000              ; black shadow
294
    mcall
296
    mcall
295
    add  ebx,65537                 ; original x and y
297
    add  ebx,65537                 ; original x and y
296
    mov  ecx,0xefefef              ; white text
298
    mov  ecx,0xefefef              ; white text
297
    mcall
299
    mcall
298
    add  edx,27                    ; next line of text
300
    add  edx,27                    ; next line of text
299
    add  bx,12                     ; next row
301
    add  bx,12                     ; next row
300
    pop  ecx
302
    pop  ecx
301
    loop h1
303
    loop h1
302
    mov  eax,10                    ; wait on event
304
    mov  eax,10                    ; wait on event
303
    mcall
305
    mcall
304
    cmp  eax,2                     ; got a key?
306
    cmp  eax,2                     ; got a key?
305
    jne  h2                        ; nope
307
    jne  h2                        ; nope
306
    mov  eax,2                     ; yep, burn it
308
    mov  eax,2                     ; yep, burn it
307
    mcall
309
    mcall
308
h2: mov  ebx,4*65536+192           ; y and width
-
 
309
    mov  ecx,20*65536+216          ; x and depth
-
 
310
    mov  edx,0x00000               ; restore black bkg
-
 
311
    mov  eax,13                    ; draw bar funx
-
 
312
    mcall
310
h2: 
313
    call palette                   ; redraw color palette
311
	call draw_window
314
 
312
 
315
    ret
313
    ret
316
 
314
 
317
 
315
 
318
;   *********************************************
316
;   *********************************************
319
;   **********  DATA DEFINITIONS AREA ***********
317
;   **********  DATA DEFINITIONS AREA ***********
320
;   *********************************************
318
;   *********************************************
321
 
319
 
322
title    db   'COLOR REFERENCE H>HELP',0
320
title    db   'COLOR REFERENCE H>HELP',0
323
 
321
 
324
picks:
322
picks:
325
    dd   31,2           ; selected top/bot colors
323
    dd   31,2           ; selected top/bot colors
326
 
324
 
327
colors:
325
colors:
328
    dd   0xe0e0e0       ; white
326
    dd   0xe0e0e0       ; white
329
    dd   0xe7e6a0       ; pale yellow
327
    dd   0xe7e6a0       ; pale yellow
330
    dd   0xe7e05a       ; lemon yellow
328
    dd   0xe7e05a       ; lemon yellow
331
    dd   0xe7c750       ; mustard
329
    dd   0xe7c750       ; mustard
332
    dd   0xe7b850       ; cadium yellow
330
    dd   0xe7b850       ; cadium yellow
333
    dd   0xbfa461       ; yellow ocre
331
    dd   0xbfa461       ; yellow ocre
334
    dd   0xe0c090       ; cream
332
    dd   0xe0c090       ; cream
335
    dd   0xe0b27b       ; peach
333
    dd   0xe0b27b       ; peach
336
    dd   0xe2986d       ; dark peach
334
    dd   0xe2986d       ; dark peach
337
    dd   0xebb2c0       ; pink
335
    dd   0xebb2c0       ; pink
338
    dd   0xe0b0a0       ; flesh
336
    dd   0xe0b0a0       ; flesh
339
    dd   0xc79790       ; artificial arm
337
    dd   0xc79790       ; artificial arm
340
    dd   0xb88688       ; deep blush
338
    dd   0xb88688       ; deep blush
341
    dd   0xc4a077       ; washed khaki
339
    dd   0xc4a077       ; washed khaki
342
    dd   0xb69269       ; khaki
340
    dd   0xb69269       ; khaki
343
    dd   0xa8845b       ; dark khaki
341
    dd   0xa8845b       ; dark khaki
344
    dd   0xab937a       ; beige
342
    dd   0xab937a       ; beige
345
    dd   0xa39370       ; poupon
343
    dd   0xa39370       ; poupon
346
    dd   0x988c00       ; camouflage
344
    dd   0x988c00       ; camouflage
347
    dd   0x98a024       ; pale olive
345
    dd   0x98a024       ; pale olive
348
    dd   0x838b00       ; olive
346
    dd   0x838b00       ; olive
349
    dd   0x6d7600       ; dark olive
347
    dd   0x6d7600       ; dark olive
350
    dd   0x5b6200       ; black olive
348
    dd   0x5b6200       ; black olive
351
    dd   0x94946a       ; washed army
349
    dd   0x94946a       ; washed army
352
    dd   0x74744a       ; army
350
    dd   0x74744a       ; army
353
    dd   0x66a696       ; pale teal
351
    dd   0x66a696       ; pale teal
354
    dd   0x409b90       ; faded teal
352
    dd   0x409b90       ; faded teal
355
    dd   0x008d8d       ; pastel teal
353
    dd   0x008d8d       ; pastel teal
356
    dd   0x007c7c       ; teal
354
    dd   0x007c7c       ; teal
357
    dd   0x006464       ; dark teal
355
    dd   0x006464       ; dark teal
358
    dd   0x00b8ca       ; light turquoise
356
    dd   0x00b8ca       ; light turquoise
359
    dd   0x00a0b2       ; turquoise
357
    dd   0x00a0b2       ; turquoise
360
    dd   0x00889a       ; dark turquoise
358
    dd   0x00889a       ; dark turquoise
361
    dd   0x575f8c       ; medium cobalt
359
    dd   0x575f8c       ; medium cobalt
362
    dd   0x4e4e7c       ; cobalt
360
    dd   0x4e4e7c       ; cobalt
363
    dd   0x00459a       ; ultramarine
361
    dd   0x00459a       ; ultramarine
364
    dd   0x400088       ; navy blue
362
    dd   0x400088       ; navy blue
365
    dd   0x4e00e7       ; true blue
363
    dd   0x4e00e7       ; true blue
366
    dd   0x508cec       ; sky blue
364
    dd   0x508cec       ; sky blue
367
    dd   0x6a73d0       ; mountain blue
365
    dd   0x6a73d0       ; mountain blue
368
    dd   0x677ab0       ; faded jeans
366
    dd   0x677ab0       ; faded jeans
369
    dd   0x576fa0       ; denim
367
    dd   0x576fa0       ; denim
370
    dd   0xd048c8       ; fuschia
368
    dd   0xd048c8       ; fuschia
371
    dd   0xb800e7       ; lavendar
369
    dd   0xb800e7       ; lavendar
372
    dd   0xa800a8       ; light violet
370
    dd   0xa800a8       ; light violet
373
    dd   0x780078       ; violet
371
    dd   0x780078       ; violet
374
    dd   0x520064       ; purple
372
    dd   0x520064       ; purple
375
    dd   0xb800b8       ; magenta
373
    dd   0xb800b8       ; magenta
376
    dd   0xa4307a       ; rose
374
    dd   0xa4307a       ; rose
377
    dd   0x90207f       ; mauve
375
    dd   0x90207f       ; mauve
378
    dd   0xe76e83       ; salmon
376
    dd   0xe76e83       ; salmon
379
    dd   0xea7a7d       ; pastel orange
377
    dd   0xea7a7d       ; pastel orange
380
    dd   0xe26830       ; orange
378
    dd   0xe26830       ; orange
381
    dd   0xac5800       ; burnt sienna
379
    dd   0xac5800       ; burnt sienna
382
    dd   0xcc0000       ; red orange
380
    dd   0xcc0000       ; red orange
383
    dd   0xac0000       ; cadium red
381
    dd   0xac0000       ; cadium red
384
    dd   0x880040       ; brick red
382
    dd   0x880040       ; brick red
385
    dd   0x780000       ; rust
383
    dd   0x780000       ; rust
386
    dd   0x683020       ; terra cotta
384
    dd   0x683020       ; terra cotta
387
    dd   0x7f4658       ; light maroon
385
    dd   0x7f4658       ; light maroon
388
    dd   0x702050       ; maroon
386
    dd   0x702050       ; maroon
389
    dd   0x7a5b5f       ; umber blush
387
    dd   0x7a5b5f       ; umber blush
390
    dd   0x584838       ; burnt umber
388
    dd   0x584838       ; burnt umber
391
    dd   0x8a5d1a       ; cigar brown
389
    dd   0x8a5d1a       ; cigar brown
392
    dd   0x64504a       ; ice brown
390
    dd   0x64504a       ; ice brown
393
    dd   0x564242       ; dark chocolate
391
    dd   0x564242       ; dark chocolate
394
    dd   0x00aa66       ; celery stalk
392
    dd   0x00aa66       ; celery stalk
395
    dd   0x107a30       ; forest green
393
    dd   0x107a30       ; forest green
396
    dd   0x365800       ; hooker's green
394
    dd   0x365800       ; hooker's green
397
    dd   0x8beb88       ; pastel lime
395
    dd   0x8beb88       ; pastel lime
398
    dd   0x7bbb64       ; lime
396
    dd   0x7bbb64       ; lime
399
    dd   0x4ba010       ; dark lime
397
    dd   0x4ba010       ; dark lime
400
 
398
 
401
names:
399
names:
402
    db   'WHITE          '
400
    db   'WHITE          '
403
    db   'PALE YELLOW    '
401
    db   'PALE YELLOW    '
404
    db   'LEMON YELLOW   '
402
    db   'LEMON YELLOW   '
405
    db   'MUSTARD        '
403
    db   'MUSTARD        '
406
    db   'CADIUM YELLOW  '
404
    db   'CADIUM YELLOW  '
407
    db   'YELLOW OCRE    '
405
    db   'YELLOW OCRE    '
408
    db   'CREAM          '
406
    db   'CREAM          '
409
    db   'PEACH          '
407
    db   'PEACH          '
410
    db   'DARK PEACH     '
408
    db   'DARK PEACH     '
411
    db   'PINK           '
409
    db   'PINK           '
412
    db   'FLESH          '
410
    db   'FLESH          '
413
    db   'ARTIFICIAL ARM '
411
    db   'ARTIFICIAL ARM '
414
    db   'DEEP BLUSH     '
412
    db   'DEEP BLUSH     '
415
    db   'WASHED KHAKI   '
413
    db   'WASHED KHAKI   '
416
    db   'KHAKI          '
414
    db   'KHAKI          '
417
    db   'DARK KHAKI     '
415
    db   'DARK KHAKI     '
418
    db   'BEIGE          '
416
    db   'BEIGE          '
419
    db   'POUPON         '
417
    db   'POUPON         '
420
    db   'CAMOUFLAGE     '
418
    db   'CAMOUFLAGE     '
421
    db   'PALE OLIVE     '
419
    db   'PALE OLIVE     '
422
    db   'OLIVE          '
420
    db   'OLIVE          '
423
    db   'DARK OLIVE     '
421
    db   'DARK OLIVE     '
424
    db   'BLACK OLIVE    '
422
    db   'BLACK OLIVE    '
425
    db   'WASHED ARMY    '
423
    db   'WASHED ARMY    '
426
    db   'ARMY           '
424
    db   'ARMY           '
427
    db   'PALE TEAL      '
425
    db   'PALE TEAL      '
428
    db   'FADED TEAL     '
426
    db   'FADED TEAL     '
429
    db   'PASTEL TEAL    '
427
    db   'PASTEL TEAL    '
430
    db   'TEAL           '
428
    db   'TEAL           '
431
    db   'DARK TEAL      '
429
    db   'DARK TEAL      '
432
    db   'LIGHT TURQUOISE'
430
    db   'LIGHT TURQUOISE'
433
    db   'TURQUOISE      '
431
    db   'TURQUOISE      '
434
    db   'DARK TURQUOISE '
432
    db   'DARK TURQUOISE '
435
    db   'MEDIUM COBALT  '
433
    db   'MEDIUM COBALT  '
436
    db   'COBALT         '
434
    db   'COBALT         '
437
    db   'ULTRAMARINE    '
435
    db   'ULTRAMARINE    '
438
    db   'NAVY BLUE      '
436
    db   'NAVY BLUE      '
439
    db   'TRUE BLUE      '
437
    db   'TRUE BLUE      '
440
    db   'SKY BLUE       '
438
    db   'SKY BLUE       '
441
    db   'MOUNTAIN BLUE  '
439
    db   'MOUNTAIN BLUE  '
442
    db   'FADED JEANS    '
440
    db   'FADED JEANS    '
443
    db   'DENIM          '
441
    db   'DENIM          '
444
    db   'FUSHIA         '
442
    db   'FUSHIA         '
445
    db   'LAVENDAR       '
443
    db   'LAVENDAR       '
446
    db   'LIGHT VIOLET   '
444
    db   'LIGHT VIOLET   '
447
    db   'VIOLET         '
445
    db   'VIOLET         '
448
    db   'PURPLE         '
446
    db   'PURPLE         '
449
    db   'MAGENTA        '
447
    db   'MAGENTA        '
450
    db   'ROSE           '
448
    db   'ROSE           '
451
    db   'MAUVE          '
449
    db   'MAUVE          '
452
    db   'SALMON         '
450
    db   'SALMON         '
453
    db   'PASTEL ORANGE  '
451
    db   'PASTEL ORANGE  '
454
    db   'ORANGE         '
452
    db   'ORANGE         '
455
    db   'BURNT SIENNA   '
453
    db   'BURNT SIENNA   '
456
    db   'RED ORANGE     '
454
    db   'RED ORANGE     '
457
    db   'CADIUM RED     '
455
    db   'CADIUM RED     '
458
    db   'BRICK RED      '
456
    db   'BRICK RED      '
459
    db   'RUST           '
457
    db   'RUST           '
460
    db   'TERRA COTTA    '
458
    db   'TERRA COTTA    '
461
    db   'LIGHT MAROON   '
459
    db   'LIGHT MAROON   '
462
    db   'MAROON         '
460
    db   'MAROON         '
463
    db   'UMBER BLUSH    '
461
    db   'UMBER BLUSH    '
464
    db   'BURNT UMBER    '
462
    db   'BURNT UMBER    '
465
    db   'CIGAR BROWN    '
463
    db   'CIGAR BROWN    '
466
    db   'ICE BROWN      '
464
    db   'ICE BROWN      '
467
    db   'DARK CHOCOLATE '
465
    db   'DARK CHOCOLATE '
468
    db   'CELERY STALK   '
466
    db   'CELERY STALK   '
469
    db   'FOREST GREEN   '
467
    db   'FOREST GREEN   '
470
    db   "HOOKER'S GREEN "
468
    db   "HOOKER'S GREEN "
471
    db   'PASTEL LIME    '
469
    db   'PASTEL LIME    '
472
    db   'LIME           '
470
    db   'LIME           '
473
    db   'DARK LIME      '
471
    db   'DARK LIME      '
474
 
472
 
475
 
473
 
476
text:
474
text:
477
    db   'TO SEE HOW COLORS COMPARE  '
475
    db   'TO SEE HOW COLORS COMPARE  '
478
    db   'TO ONE ANOTHER, LEFT CLICK '
476
    db   'TO ONE ANOTHER, LEFT CLICK '
479
    db   'THE FIRST COLOR AND RIGHT  '
477
    db   'THE FIRST COLOR AND RIGHT  '
480
    db   'CLICK THE SECOND. TO GET   '
478
    db   'CLICK THE SECOND. TO GET   '
481
    db   "A SENSE OF A COLOR'S TRUE  "
479
    db   "A SENSE OF A COLOR'S TRUE  "
482
    db   'HUE, RIGHT AND LEFT CLICK  '
480
    db   'HUE, RIGHT AND LEFT CLICK  '
483
    db   'THE SAME COLOR TO SEE IT   '
481
    db   'THE SAME COLOR TO SEE IT   '
484
    db   'ON THE NEUTRAL BACKGROUND. '
482
    db   'ON THE NEUTRAL BACKGROUND. '
485
    db   'TO USE A LIGHTER OR DARKER '
483
    db   'TO USE A LIGHTER OR DARKER '
486
    db   'VALUE OF A COLOR, ADD OR   '
484
    db   'VALUE OF A COLOR, ADD OR   '
487
    db   'SUBTRACT 0x10 OR 0x20 FROM '
485
    db   'SUBTRACT 0x10 OR 0x20 FROM '
488
    db   'EACH BYTE OF ITS HEX VALUE.'
486
    db   'EACH BYTE OF ITS HEX VALUE.'
489
    db   '                           '
487
    db   '                           '
490
    db   '       ANY KEY ...         '
488
    db   '       ANY KEY ...         '
491
 
489
 
492
stat_table:
490
stat_table:
493
 
491
 
494
 
492
 
495
finis:
493
finis: