Sequential text files and their applications.

William Overington

Copyright 2001 William Overington

Monday 6 August 2001

This document presents a web based simulation of using a data file in the format of a sequential text file as input to a Java program running upon the DVB-MHP platform.

The simulation uses the technique of presenting the data of the sequential text file as a series of param statements of a Java applet.

This is perhaps best explained using an example.

<param name="LINE0001" value="This is a simulated text file">
<param name="LINE0002" value="consisting of several lines">
<param name="LINE0003" value="of text, followed by">
<param name="LINE0004" value="an end of file marker.">
<param name="LINE0005" value="$$$$">

Here are links to viewing the web based simulations. A Java enabled browser is required. All three of these web based simulations use the same ast01001 program. The differences in the displays are produced by different data being in the param statements of the applet call. Other simulations using the same method of simulating a sequential text file are possible.

The web based simulation of a program to read a sequential text file.

The web based simulation of a program to read a sequential text file, reading a different file, but using the same ast01001 program.

The web based simulation of a program to read a sequential text file, where there is no end of file marker used in the simulation.

Here is the source code of the Java applet for the ast01001 program on sequential text files.

These simulated sequential text files may be used as in conventional computing both for text and for numerical data expressed in text format. A limitation of these simulated sequential text files is that a " character may not be included within them as that would clash with the way that the text data is being entered using param statements of an applet call. This document is setting the scene for simulating further developments for Astrolabe Channel. These further developments are as follows.

Astrolabe Channel Presentation Language.

Astrolabe Channel Presentation Language is a language where a sequential text file contains the details of a presentation. The sequential text file has some lines that commence with a full stop character and some lines that do not commence with a full stop character. The lines that commence with a full stop are command lines. The lines that do not commence with a full stop are text lines. The text on the text lines can be displayed on the screen or not displayed on the screen in accordance with the use by the DVB-MHP terminal of the commands on the command lines in conjunction with the button pushes made by the end user on his or her hand held infra-red control device or keyboard. This is made possible by use of .wait as one of the command lines. When a .wait command is reached, display waits until a button is pushed, whereupon the display is cleared and subsequent lines of the sequential text file are then processed by the Astrolabe Channel Presentation Language engine. The Astrolabe Channel Presentation Language engine remembers which button it was that was pushed. If a .match command occurs on a command line then subsequent text lines are only displayed if a command line with a matching of the button is received or a command line to accept any button is received. This is used particularly with coloured buttons.

The command line to accept any button is used as an "otherwise" command. Suppose for example that a multi-choice assessment presentation asks a question and offers four possible answers, coded to the four coloured buttons of the minimum set of user input events. Suppose that, for the particular question, the correct answer is given by VK_COLORED_KEY_2 (which, in many places, will be a yellow button) and that that response from the end user gets a message saying that the correct answer has been given and that other responses from the end user get a message giving the correct answer. After receiving the .match command the Astrolabe Channel Presentation Language engine works by ignoring all text lines until a command line matching the button that has been pushed is reached. After that, text lines are displayed until a .complete command is reached, whereupon the Astrolabe Channel Presentation Language engine ignores all input lines until a .confluence command is found. A .wait often follows a .confluence command.

Thus for this particular example, the command line matching VK_COLORED_KEY_2 is reached first, then there is all of the text for that display, then the .complete command. Then the .anycolour command is reached, followed by all of the text for that display, followed by a .complete command. Then there is a .confluence command. Then there is a .wait command. A .wait command automatically makes the choice of button push not a controlling factor unless and until a further .match command is encountered. Thus some text lines may be always displayed and some text lines may be displayed depending upon which buttons are pushed by the end user.

Astrolabe Channel Presentation Language can be used for programmed learning and multi-choice assessments. The author of a programmed learning presentation or a multi-choice assessment presentation would prepare a text file. The text file is then presented using an Astrolabe Channel Presentation Language play back program. The same Astrolabe Channel Presentation Language play back program would be used for many different presentations, each of which presentations would be written in Astrolabe Channel Presentation Language.

The eutocode system.

The eutocode system is the use of some of the character code points of the private use area of the unicode system to define various facilities, including a graphics capability where commands and data to produce graphics may be built into a text file. The codes used are in the range U+E800 through to U+EFFF. The codes in the range U+EC00 through to U+EFFF are each used to input 10 bits of data into the accumulator register of the eutocode engine. The value of the data item is found by subtracting the hexadecimal value EC00 from the code point of the eutocode code. For example, U+ECFF is used to enter the number 255, that is hexadecimal FF, into the accumulator register of the eutocode engine. For example, U+ED01 is used to enter the number 257, that is hexadecimal 101, into the accumulator register of the eutocode engine. Some of the codes in the range U+EB00 through to U+EBFF are used to manipulate that data, using it for defining graphics up to 1048576 pixels in each of three space dimensions and one time dimension and for defining colours. Some of the codes in the range U+EB00 through to U+EBFF are used to draw the graphics on the screen.

Although the eutocode system is designed to be comprehensive in its facilities, that availability of comprehensiveness does not place any coding size penalty on the use of two-dimensional graphics with a size less than 1024 pixels in either dimension: the higher order bits in those two space dimensions start at zero and remain at zero throughout, as do both the higher and lower order bits in the third space dimension and in the time dimension.

Astrolabe Channel Presentation Language can include eutocode codes.

Astrolabe Channel Presentation Language is intended to be able to have eutocode commands included within text lines if the content author of any particular Astrolabe Channel Presentation Language presentation chooses to use them.

Astrolabe Channel Presentation Language has facilities to accept unicode characters into it using an ordinary text keyboard. The idea is that a person could prepare a text file using just ascii codes in the range hexadecimal 00 through to hexadecimal 7F and that a program could then be used to convert the text file to unicode format. The author of the content of an Astrolabe Channel Presentation Language presentation may use a 'uhhhh sequence to enter unicode characters in four hexadecimal character format, where each use of the h character above represents any one of the hexadecimal characters 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, a, b, c, d, e, f. However when using the 'uhhhh format care will be needed to ensure that there is provision of the required fonts.

The 'uhhhh format also allows eutocode characters to be entered using ascii characters. That facility also allows demonstrations of eutocode in action for producing graphics to be simulated on web pages by including 'uhhhh format sequences in param statements of applets on the web.

The eutocode system can represent 1456 object code commands.

The eutocode system also allows, as an option, the building in of a 1456 object code program into a text file. This is provided by including a collection of 128 codes, namely U+EA00 through to U+EA7F, where the meaning is defined as being a 1456 object code input character equivalent to a character in the range U+0000 and U+007F used in a file that is specifically designated to be in 1456 object code. In this manner, 1456 object code may be included in a eutocode sequence. There is also the use of the equivalent of the ascii ~ character hexdecimal 7E, namely U+EA7E, to indicate that the obeying of the 1456 object code should commence.

When using eutocode, a eutocode engine is essential: a 1456 engine is optional. A eutocode engine is very much smaller than a 1456 engine.

Astrolabe Channel Presentation Language, the eutocode system and 1456 object code can all work together.

It is possible to include a 1456 object code program in an Astrolabe Channel Presentation Language file using eutocode codes; in this case the 1456 object code program would be in a number of text lines. However, Astrolabe Channel Presentation Language also has a command whereby a 1456 object code program may be included in an Astrolabe Channel Presentation Language file using a command line, where the 1456 object code is a parameter of a .1456 command and is expressed using some of the unicode characters in the range U+0020 through to U+007F which characters correspond to the ordinary ascii characters. The use of the .1456 command facilitates the use of 1456 object code in an Astrolabe Channel Presentation Language file that is being prepared using an ordinary text editor program.

Astrolabe Channel Presentation Language, the eutocode system and 1456 object code can all work together, or separately, or in any two of the three together.

There is an Astrolabe Channel Presentation Language engine, a eutocode engine and a 1456 engine. Each have different functions.

Here is a table outlining some of the various possibilities.

Astrolabe
Channel
Presentation
Language
in use?

eutocode
in use?

1456
object
code
in use?

Typical use for this set of choices.

No

No

No

Considerable computational power of a Java program upon the DVB-MHP platform.

No

No

Yes

Ordinary use of 1456 object code.

No

Yes

No

Display of previously prepared graphics from text strings.

No

Yes

Yes

Production of graphics displays from a combination of static diagrams and software produced graphics.

Yes

No

No

Presentations with just text and filled coloured squares to indicate choices.

Yes

No

Yes

Presentations with software produced graphics.

Yes

Yes

No

Presentations with static diagrams.

Yes

Yes

Yes

Presentations with graphics displays from a combination of static diagrams and software produced graphics.

Although produced in the hope of long term use, and knowing that generally available computing facilities may well improve, please note that Astrolabe Channel Presentation Language, the eutocode system and 1456 object code are all designed to be capable of being used by a content author with fairly minimum facilities, such as a text editor and a Java enabled browser together will a few ready prepared Java applets to view in simulation the broadcastable content that is produced.

In addition, the eutocode system is designed to be useful for use in general Java programming, on the DVB-MHP platform, the web and in stand alone applications.

 

Astrolabe Channel

Copyright 2001 William Overington

This file is accessible as follows.

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