Switching-on considerations for the telesoftware on radio project.
Saturday 24 September 2005
The telesoftware on radio project is, at the time of writing this document, a theoretical development. Hopefully the system will be developed into a practical, working, broadcasting system in the future.
The Unicode character stream of this telesoftware on radio project could be switched on by the person using the system at any time within a sequence of text, graphic codes or 1456 object code, simply by switching on the radio.
If processing of those Unicode character codes were to begin immediately, there is the possibility that a damaged display would be displayed. Thus, I have introduced a character, within the Unicode Private Use Area, of U+EBFE EUTOCODE SAFE POINT specifically for this project, with the intention that the system will ignore all Unicode characters which it receives until a U+EBFE character is received. When a U+EBFE character is received it is passed through to the eutocode graphics engine as an indication of provenance that such a character has been received. Within the eutocode engine it has a "do nothing" effect, though it should be passed through to the eutocode engine in case the characters in the eutocode engine are being recorded for testing purposes.
That means that the stream of Unicode characters being broadcast needs to have a U+EBFE character at places from where it is safe to begin processing from a standing start. The choice of such places is to some extent discretionary to a broadcaster.
As an assistance to authoring experiments, an authoring-time glyph for U+EBFE has been added-in to my Quest text font, from version 2.11. If using Microsoft WordPad, the Alt code is Alt 60414.
Quest text is designed to look good at 12 point, 18 point and 24 point on the Microsoft platform, where 12 points is 16 pixels. The glyph has the appearance of a large letter E, though aligned with the lowest horizontal at the lowest level of a descender on a character such as g: this is so that the symbol will stand out at authoring-time when used amongst other authoring-time representations of characters.
The Quest text font, which is my own font, is a free download from the following web page.
An important matter is that if the Unicode character stream has, say, a letter T in it, then that letter T could either be for direct display upon the screen or could be a character literal value within a 1456 object code program or could be a character within a string which string is within a 1456 object code program.
In the absence of any other indication, the letter T is for the screen. A single character with a literal value of T for a 1456 object program for the telesoftware on radio project would have a specific Private Use Area character immediately before the T. A string literal of characters within a string for a 1456 object code program for the telesoftware on radio project would have a specific Private Use Area character before the string and a different specific Private Use Area character after the string. These three specific Private Use Area characters are intended to be from the range U+EA00 to U+EA7F.
The U+EBFE EUTOCODE SAFE POINT code is intended for use for indicating points which are safe for both the eutocode stream and the 1456 object code stream, which are broadcast mixed-in together. With the eutocode stream, everything received after a U+EBFE code is for immediate use. With the 1456 object code stream, most items are not for immediate use but for storage for later use, not only that but some items will be ignored.
The reason for ignoring some items is that the telesoftware on radio service could be broadcasting cyclically several different 1456 object code programs of which only one would be used at any one time by any one end user.
Thus the system needs to be able to recognize and store the information which it needs at any one time and ignore the rest.
The method being considered at present is that U+EA00 to U+EA09 would be defined as software selection digits and U+EA0E as a selection indicator and U+EA0F as a deselection indicator. Thus, U+EA01 U+EA0E would indicate that the following information is for program 1 until a U+EA0F is received and a U+EA0F would be the end character for that block. The blocks could be of whatever length and it would be quite usual for broadcasting of a program to be done in many blocks so that eutocode graphics for the screen could be broadcast between blocks if desired.
This would enable a radio broadcaster both to broadcast a direct text and graphics support for a regular speech and music radio channel and to broadcast a telesoftware service. A broadcaster could broadcast just direct text and graphics support for a regular speech and music radio channel or broadcast just a telesoftware service if so desired, though please note that if just a telesoftware service is broadcast, the U+EBFE EUTOCODE SAFE POINT character is still used.
The receiver system would start-up by looking for program 1. A running 1456 object code program could change the program being looked for so that program 1 could be used as an index program.
Once running, a 1456 object code program would have control of the display, so direct display of eutocode graphics and text from the radio channel would then be inhibited. However, the 1456 object code program could generate eutocode graphics codes and text which are sent to the display. Nevertheless, the ordinary radio sound could still continue and in some circumstances, such as an educational radio channel, could be used to provide a commentary while the end user is running the program.
Thus a telesoftware on radio service would start-up with program 1. For a simple one program system, that could just load and start. For a system with more than one program available, program 1 would be an index program. Upon the end user making a selection, the system could change which program is being selected and that program gathered from the incoming stream and then run.
It is possible, due to the relatively slow speed of the radio transmission that all of the software characters received from the Unicode character stream, once a U+EBFE character has been received, could be stored locally, so that when the end user makes a choice from the menu of program 1, all of those previously received characters could be searched through for parts of the selected program.
Whether that is feasible in some, many or all telesoftware on radio receivers is a matter for investigation. If that possibility is used, a character needs to be defined such that its inclusion in the Unicode character stream causes the buffer to be cleared if the selection of 1456 object code programs being broadcast is changed. There could be a practice that that code would be broadcast several times within, say, a ten second period.
It is becoming clear that a method is needed, within each block of 1456 object code for a particular program, for indicating that it is, say, block 3 of 25. I am thinking that this could be done using U+EA10 to U+EA19 as digits and U+EA1E and U+EA1F for indicating the item number and the range. Thus, for example, program 1 block 3 of 25 would start as follows.
U+EA01 U+EA0E U+EA13 U+EA1E U+EA12 U+EA15 U+EA1F
This would then mean that a U+EA0F code could always cause a sumcheck or similar test on the block just received, using sumcheck data or data for whatever checking format is used and then, if it is correct, check to find out if checked blocks for all blocks for the program have been received and, if they have, start the program, or if they have not, do nothing.
This automated starting would mean that the 1456 object code system could be used to produce graphics effects to support a radio channel without the end user needing to press any buttons. The automated checking facility could be implemented by using characters from the U+EA10 to U+EA19 range to convey digits with one or more characters from the range U+EA1A to U+EA1D defined to convey the information that the information just received using characters from the U+EA10 to U+EA19 range as data has whatever meaning for checking purposes. That definition of one or more characters from the range U+EA1A to U+EA1D would be part of the specification for the telesoftware on radio project.
This automated starting would not necessarily mean that processing would start at label 1 within the program. The default could be label 1, but the actual label used could be set using digits from the U+EA10 to U+EA19 range together with a character from the U+EA1A to U+EA1D range.
The segmenting of a 1456 object code program is not a problem, though segmenting is not intended to be done at arbitrary points in the stream.
The idea is that each block would contain one or more subroutines, each identified using digits from the range U+EA30 to U+EA39 followed by a U+EA3A character and ended by a U+EA52 character. The 3A in U+EA3A comes the 3A in the code for a colon character and the 52 in U+EA52 comes from the 52 in the code for a R character. Those codes are chosen from the codes used for 1456 object code in its 8-bit character format used on the web.
I have wondered about which codes to use for 1456 object code for this project. For example, should I, for the equivalent of the I+ used for integer addition in the 8 bit format use two characters from the range U+EA20 to U+EA7F corresponding to I and + or should I use just one Private Use Area character for the whole I+ combination? I am thinking of using the two characters, partly because it makes the system able to be expanded without using any extra Private Use Area characters and because of the fact that U+EA.. characters are specified for efficient broadcasting. Some of the characters from U+EA80 to U+EAFF could potentially be suitable for such a purpose, though some of the characters of that range are intended for use for broadcasting font information for gatherable fonts, though the radio itself would have one font built-in.
End of document telesoftware_on_radio tor00200.htm.