Subversion Repositories Kolibri OS

Rev

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

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