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.

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