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 3 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 ast02102.htm document of Saturday 2 February 2002.
End of supplementary note of Saturday 19 October 2002
The original text of Saturday 2 February 2002 with U+ code points added.
Here are some four button push codes that provide additional functions of vectors, matrices, complex numbers and quaternions.
Button push sequence | Meaning |
Notes
green left red 1
|
extract item from row vector
|
U+E3A1
|
green left red 2
|
extract item from column vector
|
U+E3A2
|
green left red 3
|
extract an item from a matrix
|
U+E3A3
|
green left red 4
|
vector dot product
|
U+E3A4
|
green left red 5
|
vector cross product
|
U+E3A5
|
green left red 6
|
transpose of a matrix
|
U+E3A6
|
green left red 7
|
inverse of a matrix
|
U+E3A7
|
green left green 1
|
re real part of a complex number
|
U+E3B1
|
green left green 2
|
im imaginary part of a complex number, the result is real
|
U+E3B2
|
green left green 3
|
complex conjugate
|
U+E3B3
|
green left green 4
|
modulus of a complex number
|
U+E3B4
|
green left yellow 1
|
re, the real part of a quaternion
|
U+E3C1
|
green left yellow 2
|
imi imaginary i part of a quaternion number, the result is real
|
U+E3C2
|
green left yellow 3
|
imj imaginary j part of a quaternion number, the result is real
|
U+E3C3
|
green left yellow 4
|
imk imaginary k part of a quaternion number, the result is real
|
U+E3C4
|
green left yellow 5
|
quaternion conjugate
|
U+E3C5
|
green left yellow 6
|
right side divide (that is, (conjugate/conjugate) is placed on the right
|
U+E3C6
|
green left yellow 7
|
left side divide (that is, (conjugate/conjugate) is placed on the left
|
U+E3C7
|
green left yellow 8
|
modulus of a quaternion
|
U+E3C8
|
green left yellow 9
|
dot product of the non-real parts of two quaternions as if they were each
three element real vectors
|
U+E3C9
| |
Here are some sequences that are not functions but that are used to enter data into individual parts of vectors, matrices, complex numbers and quaternions.
Button push sequence | Meaning |
Notes
red down red 1
|
load an item into a row vector, extending it if necessary
|
U+E2A1
|
red down red 2
|
load an item into a column vector, extending it if necessary
|
U+E2A2
|
red down red 3
|
load an item into a matrix, extending it if necessary
|
U+E2A3
|
red down green 1
|
load a real into the real part of a complex number
|
U+E2B1
|
red down green 2
|
load a real into the complex part of a complex number, generating a complex if necessary
|
U+E2B2
|
red down yellow 1
|
load a real into the real part of a quaternion
|
U+E2C1
|
red down yellow 2
|
load a real into the i part of a quaternion, generating a quaternion if necessary
|
U+E2C2
|
red down yellow 3
|
load a real into the j part of a quaternion, generating a quaternion if necessary
|
U+E2C3
|
red down yellow 4
|
load a real into the k part of a quaternion, generating a quaternion if necessary
|
U+E2C4
| |
In using these sequences for entering numerical data and commands into a Java calculator program, it will be important that there is good machine to end user communication so that at each stage an end user of such a Java calculator program will be able to navigate straightforwardly through the program.
I therefore suggest that the Java calculator program could have drawn upon its display area a number of buttons, square, or perhaps landscape format rectangular, with rounded corners. These buttons, perhaps "sequence buttons" is a good name, would just be a display feature, not in any way active in the manner that buttons on a web page can be active.
A sequence button would be drawn as square, or perhaps landscape format rectangular, with rounded corners, perhaps drawn so as to look raised, and would have a centred horizontal line across about seven eighths of the width of the sequence button. In the upper half of the sequence button would be a description of the button's effect in mathematical terms, such as a + symbol or the word cos or whatever is appropriate, and in the lower half would be the sequence of button pushes needed to use that sequence button. The sequence of button pushes could include coloured filled squares, arrows and digits and also a T character. In addition a pair of dots .. could be used to indicate a cascading menu of buttons. For example, a particular Java calculator could have sequence buttons for digits and for + - * / = and for sine, cosine etc and a sequence button labelled
f(x) ..
above the horizontal line of the sequence button and
green filled square 0 ..
below the horizontal line of the sequence button. Upon an end user entering green 0 the Java calculator program would draw a new set of sequence buttons as a cascading menu of sequence buttons showing functions such as green 0 1 arcsine and green 0 2 arccosine and so on.
The Enter key could be used at any time to cancel the sequence already started to be entered.
A sequence button could be greyed out once a sequence started to be entered and the particular sequence button could not be reached from the sequence already started.
Note on use of this system in conjunction with an Astrolabe Channel numerical pointer.
These are the notes mentioned above for the interest of readers who are also interested in the Astrolabe Channel numerical pointer.
The first scenario is that a calculator and an Astrolabe Channel numerical pointer are used in the same Java program and are entirely separate in their usage.
In this case, the VK_TELETEXT button will be used to access the Astrolabe Channel numerical pointer and some other button will be used to access the calculator, possibly the red button.
The second scenario is that a calculator and an Astrolabe Channel numerical pointer are used in the same Java program and are separate in their usage, yet push buttons are in great demand in the program and having separate access buttons is a problem.
In this case, the VK_TELETEXT button will be used to access the Astrolabe Channel numerical pointer and then the calculator is accessed as an escape from the Astrolabe Channel numerical pointer universe using the sequence VK_LEFT when the accumulator of the Astrolabe Channel numerical pointer is zero. As the accumulator of the Astrolabe Channel numerical pointer is set at zero upon entry to the Astrolabe Channel numerical pointer universe, then the sequence to enter the calculator from the main program is simply VK_TELETEXT VK_LEFT.
The implication of this for the design of the Astrolabe Channel numerical pointer is that storage of data in memory location 0 is not allowed and retrieval of data from memory location 0 is not allowed, so that the escape to the calculator may be used in this manner.
The third scenario is that a calculator and an Astrolabe Channel numerical pointer are used in the same Java program and are linked in their usage.
In this case, the VK_TELETEXT button will be used to access the Astrolabe Channel numerical pointer and then the calculator is accessed as an escape from the Astrolabe Channel numerical pointer universe using the sequence VK_LEFT when the accumulator of the Astrolabe Channel numerical pointer is zero. As the accumulator of the Astrolabe Channel numerical pointer is set at zero upon entry to the Astrolabe Channel numerical pointer universe, then the sequence to enter the calculator from the main program is simply VK_TELETEXT VK_LEFT.
In this case, when in the calculator universe, the VK_TELETEXT key may be used to go back to the Astrolabe Channel numerical pointer universe and the data in the a register of the calculator can be copied to the Astrolabe Channel numerical pointer.
It is recognized that at present that the only option really open is to copy an integer into the accumulator of the Astrolabe Channel numerical pointer. However, the options for an Astrolabe Channel numerical pointer are the subject of on-going research. This research includes using an Astrolabe Channel numerical pointer to input integers, reals, complex numbers and quaternions, and the issue of copying a value from a calculator and using that value as a parameter to a generated event is under consideration.
Astrolabe Channel
Copyright 2002 William Overington
This file is accessible as follows.