Colour codes, both generally and in conjunction with the Astrolabe Channel numerical pointer.

William Overington

Copyright 2001 William Overington

Wednesday 26 September 2001

The eutocode character codes include codes using the names of various colours. There are codes for AC_BLACK, AC_BROWN, AC_RED, AC_ORANGE, AC_YELLOW, AC_GREEN, AC_BLUE, AC_MAGENTA, AC_GREY, AC_WHITE which allow VK_ events to be mapped to AC_ codes that represent colours using the vk_to_astrolabe array. The intention is that the number buttons on a hand held infra-red control device may be used to signal colours to a program. The colours above are intended to correspond in order to VK_0 through to VK_9 and are in the order of the resistor colour code well known to many people interested in electronics. That is, VK_0 may be used to indicate black, VK_1 may be used to indicate brown, VK_2 may be used to indicate red and so on through to VK_9 being used to indicate white.

The codes for AC_BLACK, AC_BROWN, AC_RED, AC_ORANGE, AC_YELLOW, AC_GREEN, AC_BLUE, AC_MAGENTA, AC_GREY, AC_WHITE are U+E916 through to U+E91F respectively. These codes are within the unicode private use area and are defined by the present author for use as an Astrolabe Channel standard. Readers may, but need not, choose to use these Astrolabe Channel codes. No claim for uniqueness (except for a uniqueness of definition within Astrolabe Channel) is made for these code point assignments. The situation is simply one author exercising the freedom to make code point assignments within the private use area, that freedom being provided by the unicode standard. The assignments are specified as an Astrolabe Channel standard. If other authors choose to make other assignments for these code points, for some purpose that is nothing to do with the DVB-MHP system, then that is their right. If other authors choose to make other assignments for these code points, for some purpose concerned with the DVB-MHP system, with assignments which are incompatible with these Astrolabe Channel definitions of these code points, then that is their right too.

For the avoidance of doubt, Astrolabe Channel character codes are not part of the DVB-MHP specification itself.

The codes for AC_BLACK_MEANING_1 through to AC_WHITE_MEANING_1 respectively are U+E936 through to U+E93F respectively.

The codes for AC_BLACK_MEANING_2 through to AC_WHITE_MEANING_2 respectively are U+E956 through to U+E95F respectively.

The codes for AC_BLACK_MEANING_3 through to AC_WHITE_MEANING_3 respectively are U+E976 through to U+E97F respectively.

These codes are available for use in the direct programming of Java programs for the DVB-MHP platform when loaded into the vk_to_astrolabe array. They are also generateable using an optional add on part of the Astrolabe Channel numerical pointer, named the colour studio.

Of the above colours, all except brown are standard Java colours. The brown colour, if used, will need to be defined within the program. The Astrolabe Channel standard mix for this brown colour is specified as red 255, green 102, blue 0.

An interesting point is that I am including an Astrolabe Channel programming convention that when using VK_0 through to VK_9 to enter colour information into a program using these colours and when it is desired to display an indicatory filled coloured area on the display screen the convention is to display the indicatory area on the screen as a filled lozenge of the colour and not as a filled rectangle. The Astrolabe Channel programming convention is that filled rectangles are used for the VK_COLORED_KEY_ keys. Lozenges have the advantage over discs as they will always look like a lozenge even if displayed on terminals with different aspect ratios for the display, whereas a disc may look like a filled ellipse on some terminals.

There are also codes for AC_CYAN and AC_PINK as cyan and pink are standard Java colours. VK_UP is designated for cyan and VK_DOWN is designated for pink. This need cause no problems as the only time that VK_UP would be pushed to indicate cyan would be in an end user response to a choice expressed on the screen using a cyan lozenge. A cyan lozenge would only appear under programmer control and the programmer should have then loaded one of AC_CYAN or AC_CYAN_MEANING_1 or AC_CYAN_MEANING_2 or AC_CYAN_MEANING_3 into the element of the vk_to_astrolabe array that is used to translate the meaning of pushing a VK_UP button. In a similar manner the use of VK_DOWN for pink would be suitable. VK_UP and VK_DOWN have been chosen here so as not to interact with the possible use of VK_LEFT to signal AC_COLORED_KEY_4 (in response to a choice indicated by a magenta rectangle) or VK_RIGHT to signal AC_COLORED_KEY_5 (in response to a choice indicated by an orange rectangle) or with the use of VK_LEFT and VK_RIGHT in the inputting of hexadecimal numbers.

There are also separate codes for dark grey and light grey as they are standard Java colours. It is anticipated that they will be rarely used with an on-screen lozenge, yet it is possible and so codes are specified. VK_LEFT is designated for use in inputting dark grey and VK_RIGHT is designated for use in inputting light grey. This certainly would clash with using VK_LEFT and VK_RIGHT for inputting AC_COLORED_KEY_4 and AC_COLORED_KEY_5 yet such a total use of lozenge colours could be achieved in this manner if so desired.

For completeness, a colour to be used with the VK_ENTER key is a lavender colour designated as red 204, green 153, blue 204.

I have wondered whether to include a colour to be associated with the VK_TELETEXT button, as that button may well be used to initiate usage of the Astrolabe Channel numerical pointer. However, for completeness I am including such a colour, on the basis that if a colour is to be used at some stage to correspond to the VK_TELETEXT button it is better to specify it now so that the suggested colour is known rather than a variety of colours be used due to lack of a clear statement now. The colour to be associated with the VK_TELETEXT key is thus defined to be called mint and is defined as being produced by red 204, green 255, blue 204. I am aware that in defining the lavender and mint colours to be used in this manner that I am choosing colours to be associated with buttons rather than choosing buttons to represent colours as I started off. However, the complete set, from the two approaches, is useful to have. Indeed a lozenge in the mint colour may, but need not, be used to indicate the availability of the Astrolabe Channel numerical pointer in a program.

Users of programs that use this Astrolabe Channel colour convention would simply learn the colour convention and then would know how to respond to a coloured lozenge given as an option on the display screen, that is, they would know which VK_ button to push. These fourteen buttons on a hand held infra-red control device would not usually be moulded in a colour.

The colours cyan, pink, dark grey, light grey, lavender, mint each have their own character codes AC_CYAN, AC_PINK, AC_DARK_GREY, AC_LIGHT_GREY, AC_LAVENDER, AC_MINT from U+E996 through to U+E99B.

AC_CYAN_MEANING_1 through to AC_MINT_MEANING_1 are from U+E9B6 through to U+E9BB.

AC_CYAN_MEANING_2 through to AC_MINT_MEANING_2 are from U+E9D6 through to U+E9DB.

AC_CYAN_MEANING_3 through to AC_MINT_MEANING_3 are from U+E9F6 through to U+E9FB.

An interesting aspect of the use of the VK_ buttons to produce so many different meanings within a Java program is that one may think of the hand held infra-red control device as just a way to transfer information from the mind of the end user to the computer system, comparing this with the way that a pencil may be used to transfer information from the mind of the end user to a piece of paper.

When purchasing a pencil one may well be concerned with the quality of the pencil, yet once chosen and in use, then unless it breaks or needs sharpening in some way, one disregards the pencil in one's thoughts as one uses it to transfer one's thoughts on other topics to the paper, whether those thoughts are expressed in text or drawing or some combination of the two.

Thus although the end user might be able to enter only twenty individual physical button pushes, he or she may enter many different types of information into the DVB-MHP terminal by means of a software environment.

Colour codes and the Astrolabe Channel numerical pointer.

The Astrolabe Channel numerical pointer is designed to simulate mouse events and to simulate keyboard events, particularly on DVB-MHP terminals that do not have a mouse unit or a keyboard, though with some uses on systems that have a mouse but no keyboard and a few uses on systems that have both a mouse and a keyboard.

An optional add on to an Astrolabe Channel numerical pointer is a colour studio. This is part of a policy that where Astrolabe Channel key codes are specified, then consideration is given to providing a way to produce them from within an Astrolabe Channel numerical pointer or from within an optional add on to an Astrolabe Channel numerical pointer.

Where implemented, an Astrolabe Channel numerical pointer colour studio works as follows.

Entry to the colour studio is from the Astrolabe Channel numerical pointer universe by popping up software button zero. This means that direct entry from a Java program that has an Astrolabe Channel numerical pointer included in it is by the following button push sequence.

VK_TELETEXT VK_UP

I find that it is helpful to visualize the system as if it were a real three-dimensional built environment. I imagine an Astrolabe Channel numerical pointer as having a corridor with an alcove off the corridor for each software button. Proceeding along the corridor, firstly there is an alcove for software button 0 on one's left. Proceeding along the corridor there is an alcove for software button 1 on one's left, and so on. Most of the alcoves have a large button standing on the floor. The buttons are cubes when up, with rounded corners and edges. Buttons may be pushed down to look fairly flat, almost flush with the floor. The alcove for software button zero has no button as such but has two parallel ramps. The ramp on the left hand side slopes gently upward and leads to level 1 of the colour studio. The ramp on the right hand side slopes gently downward and leads to the unicode courtyard.

Colour studio level 1.

Within level 1 of the colour studio are a set of four software radio buttons, the colour studio level 1 software buttons. They are numbered 0 through to 3 and correspond, for 1 through to 3, to the integer value of the _MEANING_ suffix, or, for 0, to the absence of a _MEANING_0 suffix, in the colour codes. The default is that colour studio level 1 software button 0 is down. VK_0, VK_1, VK_2, VK_3 and the VK_DOWN button may be used to push these software buttons. The VK_COLORED_KEY_0 button may be used to produce the ACNP_SET_COLOUR code so as to designate as a colour number the number that is in the Astrolabe Channel numerical pointer accumulator. Pushing VK_ENTER within level 1 of the colour studio will cause a colour code of the chosen colour to be produced and the operating point of the software to leave the Astrolabe Channel numerical pointer universe.

The colour numbers used are shown in the following table. These colour numbers are, in fact and quite deliberately, the same as used in the eutodraw system of the 1456 object code system, though lavender and mint are not at this time designated within the 1456 engine, though hopefully will be in due course.

0 Color.black
1 brown
2 Color.red
3 Color.orange
4 Color.yellow
5 Color.green
6 Color.blue
7 Color.magenta
8 Color.gray
9 Color.white
10 Color.cyan
11 Color.pink
12 Color.darkGray
13 Color.lightGray
14 lavender
15 mint
98 colour98
99 colour99

In the above table, please note that the particular colours given by colour98 and colour99 can be defined either by the programmer of the Java program or may be defined using level 2 of the colour studio, if available in the particular implementation of the Astrolabe Channel numerical pointer, or could be defined by the end user using some feature of a particular application program. If no particular choice is desired, the default for each of colour98 and colour99 is produced by red 0, green 0, blue 0.

The character code for AC_COLOUR98 is U+E99C and that for AC_COLOUR99 is U+E99D.

The character code for AC_COLOUR98_MEANING_1 is U+E9BC and that for AC_COLOUR99_MEANING_1 is U+E9BD.

The character code for AC_COLOUR98_MEANING_2 is U+E9DC and that for AC_COLOUR99_MEANING_2 is U+E9DD.

The character code for AC_COLOUR98_MEANING_3 is U+E9FC and that for AC_COLOUR99_MEANING_3 is U+E9FD.

The VK_TELETEXT button may be used to return to the main area of the Astrolabe Channel numerical pointer universe. The VK_UP button may be used to move up a gentle ramp into level 2 of the colour studio, if that is implemented within the particular implementation of the Astrolabe Channel numerical pointer, as it is an option of the option.

Colour studio level 2.

Level 2 of the colour studio may be used to generate particular colour mixes using numbers for red, green and blue values.

The colours represented by colour98 and by colour99 may be defined within level 2 or the Astrolabe Channel numerical pointer universe may be left and the colours defined in the main program in response to a code to signal that need to the main program.

Defining the colours represented by colour98 and by colour99 within level 2 of the colour studio is achieved in the following manner. One starts in level 1 of the colour studio. First choose the colour to be defined within level 1 of the colour studio using the VK_COLORED_KEY_0 button to produce the ACNP_SET_COLOUR code so as to designate as a colour number the number that is in the Astrolabe Channel numerical pointer accumulator, which number needs to be either 98 or 99. If it is desired to push a colour studio level 1 software button, it is pushed at this satge. One then uses the VK_UP button to enter level 2 of the colour studio. A value in the range from 0 to 255 is entered using the VK_0 through to VK_9 buttons. The value is in the Astrolabe Channel numerical pointer accumulator. While within level 2 of the colour studio, VK_COLORED_KEY_0 is mapped to ACNP_SET_RED_COMPONENT by the vk_to_astrolabe array. Similarly VK_COLORED_KEY_1 is mapped to ACNP_SET_GREEN_COMPONENT. VK_COLORED_KEY_2 and VK_COLORED_KEY_3 are both mapped to ACNP_SET_BLUE_COMPONENT. This is so that an end user may use either VK_COLORED_KEY_0, VK_COLORED_KEY_1 and VK_COLORED_KEY_2 for entering red, green, blue components or may use VK_COLORED_KEY_0, VK_COLORED_KEY_1 and VK_COLORED_KEY_3 for entering red, green, blue components as desired. This is because in many places VK_COLORED_KEY_0 through to VK_COLORED_KEY_3 are to be supplied as red, green, yellow, blue respectively and so it makes sense to have VK_COLORED_KEY_3 available to set the blue component. However, in some places VK_COLORED_KEY_0 through to VK_COLORED_KEY_3 may not be red, green, yellow, blue respectively and so it also makes sense for a specification for possible worldwide usage to have three buttons of the hand held infra-red control device specified in direct logical order as well. The colour components of the most recently defined colour are available in acnpr, acnpg, acnpb varaibles as integers, that is, each is stored in a Java int. Within level 2 of the colour studio, the VK_TELETEXT button may be pushed to return to level 1 of the colour studio.

Defining the actual colour that colour98 or colour99 is to become is done in either of two different ways, either by action within the colour studio or by leaving the Astrolabe Channel numerical pointer universe signalling to the main program the need to define colour98 or colour99. The intention is that the usual manner is by action within the colour studio. The option of leaving the Astrolabe Channel numerical pointer universe signalling to the main program is included in case action within the colour studio will, for some particular application, not be effective.

Action within the colour studio is by pushing VK_DOWN while within level 2 of the colour studio. This produces an ACNP_DEFINE_COLOUR code. This will make the chosen colour have the particular red, green and blue components that have been chosen, a component that has not been chosen having the value zero. The end user may then use VK_TELETEXT to return to level 1 of the colour studio.

Leaving the Astrolabe Channel numerical pointer universe signalling to the main program the need to define colour98 or colour99 is achieved in the following manner. Within level 2 of the colour studio, pushing the VK_ENTER button causes a code, either AC_DEFINE_COLOUR98 or AC_DEFINE_COLOUR99 to be produced with values of the desired red, green and blue values in acnpr, acnpg, acnpb varaibles as integers, that is, each is stored in a Java int. This enables the Astrolabe Channel numerical pointer to be used so that the colour is defined outside of the Astrolabe Channel numerical pointer if desired within any particular Java program.

Colour studio level 3.

Consideration is being given to adding an optional level 3 to the colour studio, wherein the end user may define colour98 and colour99 using hue, saturation and luminance. The values of hue, saturation and luminance used will be converted to red, green and blue values to represent the colour, so that the net effect will be the same as if the colour had been mixed in level 2 of the colour studio, including storing the colour in the acnpr, acnpg and acnpb variables. However, use of hue, saturation and luminance is useful when mixing two or more colours each which are to have the same hue and saturation and differ only in luminance, as might be needed for computer generated art such as a painting of a landscape. Looking at hue, saturation and luminance in various existing programs it appears that the numerical values used vary from program to program, as they all convert to the usual red, green and blue components and only use hue, saturation and luminance as a convenient way for the end user to choose colours. Accordingly, I am looking at what system to use and currently am considering a specific Astrolabe Channel system. My present thinking is that there would be a colour solid, consisting of two cones, one inverted, joined at their bases, so as to give a solid in the shape of the solid of rotation of a lozenge about its vertical axis. This would have hue from 0 to 360 degrees, saturation from 0 to 255 as a radius, with luminance then available as the vertical height within the limits of the solid.

 

Astrolabe Channel

Copyright 2001 William Overington

This file is accessible as follows.

http://www.users.globalnet.co.uk/~ngo/ast01300.htm