Sequences of push button pushes to input information to Java Calculator Programs on the DVB-MHP platform using the minimum set of input events, part 2 of 3, with character codes.
William Overington
Copyright 2002 William Overington
Supplementary note of Saturday 19 October 2002
This document has now been adapted so as to include Unicode Private Use Area codes for full and partial sequences.
Apart from this supplementary note, the addition to the title, the change of file name and for the addition of the U+ entries in the notes column of the table, the contents of this document are the same as those of the ast02101.htm document of Saturday 2 February 2002.
The coding of the Private Use Area codes uses the following basis as far as possible. These coding codes are simply for convenience within this encoding. As it happens, for most of the codes this encoding basis give a good indication of the coding that is used and a coding gives a good indication of its meaning: however, that is not absolute in either encoding or deciphering as some codes, notably longer codes and the codes for the Unicode courtyard facility of a calculator, have needed fitting in to the encoding space in ways which do not fit the general encoding basis.
zero, and sometimes, enter 0
teletext 1
red 2 and A
green 3 and B
yellow 4 and C
blue 5 and D
up 6
down 7
left 8
right 9
partial F
escape or end or just some extra meaning E
The twenty buttons are regarded as producing the following character codes.
Incoming event |
Unicode Private Use Area code
suggested by the present author.
VK_0
|
U+E800
|
VK_1
|
U+E801
|
VK_2
|
U+E802
|
VK_3
|
U+E803
|
VK_4
|
U+E804
|
VK_5
|
U+E805
|
VK_6
|
U+E806
|
VK_7
|
U+E807
|
VK_8
|
U+E808
|
VK_9
|
U+E809
|
VK_UP
|
U+E80A
|
VK_DOWN
|
U+E80B
|
VK_LEFT
|
U+E80C
|
VK_RIGHT
|
U+E80D
|
VK_ENTER
|
U+E80E
|
VK_TELETEXT
|
U+E80F
|
VK_COLORED_KEY_0
|
U+E810
|
VK_COLORED_KEY_1
|
U+E811
|
VK_COLORED_KEY_2
|
U+E812
|
VK_COLORED_KEY_3
|
U+E813
| |
The above codes could be used for any desired purpose, not just for Java calculators.
Readers may like to know of my thinking as to how the Unicode Private Use Area characters for button push sequences could be used.
Suppose that the twenty minimum set button pushes on a hand held infra-red control device are interfaced in the Java program so that the program receives button pushes as the above twenty Unicode Private Use Area codes, this being regardless of whether a Java calculator or some other software construct is being used. These twenty character codes are then used to index a conversion array, where the output produced is also a character code from the Unicode Private Use Area. That character code is then processed by the Java program.
The advantage of this approach is that when a Java calculator using my suggested button push encoding is started up, the characters stored in the conversion array are twenty characters from the set encoded in this document.
Those twenty characters are the effects of pushing a button while on the base plane of the calculator encoding system.
Some of the character codes output from the conversion array, such as the character code corresponding to any of the digits U+E100 to U+E109 and the yellow button U+E114 and the blue button U+E115, will be programmed to perform a specific action within the calculator. Suppose however that VK_COLORED_KEY_1 is pushed (that is, the green button usually), then a character code U+E3FF will be generated which will be programmed to change the contents of the conversion array so that the incoming button pushes are converted to become the codes produced by pushing a button while upon the green disc of the calculator. So, now pushing, say, the 2 button, will generate U+E802 and that will be converted to a character code U+E3F2 that indicates that the "green 2" calculator function is to be carried out and the contents of the conversion array is to be reset to be the codes for the base plane of the Java calculator. The green 2 code is for the cosine function.
Thus, by having individual character codes for 2 U+E102, green .... U+E3FF, green 2 U+E3F2 and so on, programming of a Java calculator is simplified.
By having a published set of such codes, the possibility of increasing the portability of software for calculators running on the DVB-MHP platform is increased.
These particular encodings are essentially internal to Java programs, yet by being in the form of Unicode Private Use Area character codes they can also be stored in text files. Thus there are possibilities for storing macros and programmable calculator programs in text file format if so desired.
Button push complete sequence to leave the calculator. |
Notes
enter
|
U+E110
|
teletext
|
U+E111
| |
Button push complete sequence, for use in conjunction with a calculator, if so desired. Arrows may be implemented as either independent of a calculator or as part of a calculator as desired by the programmer of a particular calculator. |
Notes
up
|
U+E116
|
down
|
U+E117
|
left
|
U+E118
|
right
|
U+E119
| |
Here are the codes for partial sequences within the Java calculator universe. Please note that some partial sequences are included for which complete codes are not yet published.
Button push partially complete sequence. |
Notes
red ....
|
U+E2FF
|
red 0 ....
|
U+E20F
|
red up ....
|
U+E26F
|
red down ....
|
U+E27F
|
red teletext ....
|
U+E21F
|
red green ....
|
U+E23F
|
red yellow ....
|
U+E24F
|
red blue ....
|
U+E25F
|
green ....
|
U+E3FF
|
green 0 ....
|
U+E30F
|
green up ....
|
U+E36F
|
green down ....
|
U+E37F
|
green left ....
|
U+E38F
|
green right ....
|
U+E39F
|
green red ....
|
U+E32F
|
green yellow ....
|
U+E34F
|
green blue ....
|
U+E35F
|
green left red ....
|
U+E3AF
|
green left green ....
|
U+E3BF
|
green left yellow ....
|
U+E3CF
|
green left blue ....
|
U+E3DF
|
red down red ....
|
U+E2AF
|
red down green ....
|
U+E2BF
|
red down yellow ....
|
U+E2CF
|
red down blue ....
|
U+E2DF
|
red down right ....
|
U+E2EF
|
red down right 0 ....
|
U+E1EF
|
red up red ....
|
U+E12F
|
red up green ....
|
U+E13F
|
red up yellow ....
|
U+E14F
|
red up blue ....
|
U+E15F
| |
A table of codes for use within the Unicode Courtyard of the Java Calculator.
green right 0 | 0 within courtyard |
U+E190
green right 1
|
1 within courtyard
|
U+E191
|
green right 2
|
2 within courtyard
|
U+E192
|
green right 3
|
3 within courtyard
|
U+E193
|
green right 4
|
4 within courtyard
|
U+E194
|
green right 5
|
5 within courtyard
|
U+E195
|
green right 6
|
6 within courtyard
|
U+E196
|
green right 7
|
7 within courtyard
|
U+E197
|
green right 8
|
8 within courtyard
|
U+E198
|
green right 9
|
9 within courtyard
|
U+E199
|
green right red
|
A within courtyard
|
U+E19A
|
green right green
|
B within courtyard
|
U+E19B
|
green right yellow
|
C within courtyard
|
U+E19C
|
green right blue
|
D within courtyard
|
U+E19D
|
green right up
|
UP within courtyard
|
U+E396
|
green right down
|
DOWN within courtyard
|
U+E397
|
green right left
|
E within courtyard
|
U+E19E
|
green right right
|
F within courtyard
|
U+E19F
|
green right enter
|
Exit from the courtyard and go back to the base plane of the calculator,
transferring the information produced while within the courtyard.
|
U+E390
|
green right teletext
|
T within courtyard
|
U+E391
| |
End of supplementary note of Saturday 19 October 2002
The original text of Saturday 2 February 2002 with U+ code points added.
Here is a full list of the basic sequences thus far defined.
Button push sequence | Meaning |
Notes
0
|
0
|
U+E100
|
1
|
1
|
U+E101
|
2
|
2
|
U+E102
|
3
|
3
|
U+E103
|
4
|
4
|
U+E104
|
5
|
5
|
U+E105
|
6
|
6
|
U+E106
|
7
|
7
|
U+E107
|
8
|
8
|
U+E108
|
9
|
9
|
U+E109
|
yellow
|
negative data
|
U+E114
|
blue
|
decimal point
|
U+E115
|
red 1
|
+
|
U+E2F1
|
red 2
|
-
|
U+E2F2
|
red 3
|
*
|
U+E2F3
|
red 4
|
/
|
U+E2F4
|
red 5
|
=
|
U+E2F5
|
red 6
|
,
|
U+E2F6
| Please see note below
red 7
|
;
|
U+E2F7
| Please see note below
red 8
|
:
|
U+E2F8
| Please see note below
red 9
|
clear a,b,c,d
|
U+E2F9
|
red 0 1
|
a=b
|
U+E201
|
red 0 2
|
b=a
|
U+E202
|
red 0 3
|
swap a and b
|
U+E203
|
red 0 4
|
a=c
|
U+E204
|
red 0 5
|
c=a
|
U+E205
|
red 0 6
|
b=c
|
U+E206
|
red 0 7
|
c=b
|
U+E207
|
red 0 8
|
swap a and c
|
U+E208
|
red 0 9
|
swap b and c
|
U+E209
|
red up 0
|
in a macro, return from a call
|
U+E260
|
red up 1
|
in a macro, jump to label 1
|
U+E261
|
red up 2
|
in a macro, jump to label 2
|
U+E262
|
red up 3
|
in a macro, jump to label 3
|
U+E263
|
red up 4
|
in a macro, jump to label 4
|
U+E264
|
red up 5
|
in a macro, jump to label 5
|
U+E265
|
red up 6
|
in a macro, call to label 6
|
U+E266
|
red up 7
|
in a macro, call to label 7
|
U+E267
|
red up 8
|
in a macro, call to label 8
|
U+E268
|
red up 9
|
in a macro, call to label 9
|
U+E269
|
red down .... (next one not a digit)
|
General escape mechanism so as to allow longer sequences to be defined.
|
|
red down 0
|
in a macro, return from a call, if linkflag is true
|
U+E270
|
red down 1
|
in a macro, jump to label 1, if linkflag is true
|
U+E271
|
red down 2
|
in a macro, jump to label 2, if linkflag is true
|
U+E272
|
red down 3
|
in a macro, jump to label 3, if linkflag is true
|
U+E273
|
red down 4
|
in a macro, jump to label 4, if linkflag is true
|
U+E274
|
red down 5
|
in a macro, jump to label 5, if linkflag is true
|
U+E275
|
red down 6
|
in a macro, call to label 6, if linkflag is true
|
U+E276
|
red down 7
|
in a macro, call to label 7, if linkflag is true
|
U+E277
|
red down 8
|
in a macro, call to label 8, if linkflag is true
|
U+E278
|
red down 9
|
in a macro, call to label 9, if linkflag is true
|
U+E279
|
red left
|
get from memory
| As sequences are simply a method of inputting commands using the minimum set of input events, implementation is up to the Java programmer. However, for programmers who would prefer a specific recommendation, a=m[d] is suggested.
U+E28E
|
red right
|
store to memory
| As sequences are simply a method of inputting commands using the minimum set of input events, implementation is up to the Java programmer. However, for programmers who would prefer a specific recommendation, m[d]=a is suggested.
U+E29E
|
red teletext 0
|
|
U+E210
|
red teletext 1
|
define label 1 within a macro
|
U+E211
|
red teletext 2
|
define label 2 within a macro
|
U+E212
|
red teletext 3
|
define label 3 within a macro
|
U+E213
|
red teletext 4
|
define label 4 within a macro
|
U+E214
|
red teletext 5
|
define label 5 within a macro
|
U+E215
|
red teletext 6
|
define label 6 within a macro
|
U+E216
|
red teletext 7
|
define label 7 within a macro
|
U+E217
|
red teletext 8
|
define label 8 within a macro
|
U+E218
|
red teletext 9
|
define label 9 within a macro
|
U+E219
|
red green 0
|
clear a
|
U+E230
|
red green 1
|
a=d
|
U+E231
|
red green 2
|
d=a
|
U+E232
|
red green 3
|
b=d
|
U+E233
|
red green 4
|
d=b
|
U+E234
|
red green 5
|
c=d
|
U+E235
|
red green 6
|
d=c
|
U+E236
|
red green 7
|
clear b
|
U+E237
|
red green 8
|
clear c
|
U+E238
|
red green 9
|
clear d
|
U+E239
|
red yellow 0
|
|
U+E240
|
red yellow 1
|
a register gets the focus
|
U+E241
|
red yellow 2
|
b register gets the focus
|
U+E242
|
red yellow 3
|
c register gets the focus
|
U+E243
|
red yellow 4
|
d register gets the focus
|
U+E245
|
red yellow 5
|
|
U+E245
|
red yellow 6
|
|
U+E246
|
red yellow 7
|
|
U+E247
|
red yellow 8
|
Text box gets the focus
|
U+E248
|
red yellow 9
|
Text area gets the focus
|
U+E249
| |