This document, presented in a Unicode plain text file for maximum portability amongst various applications, includes a piece of writing which I have written for inclusion in a book about the designing of Astrolabe Channel, a utopian dream style book about the possibility of there being a worldwide telesoftware superstation, named Astrolabe Channel, implemented using a DVB-MHP (Digital Video Broadcasting - Multimedia Home Platform) channel. The book could be looked at in the context of science fiction, yet all of the technology discussed in the book either exists or appears to be straightforwardly implementable using existing technology, such as, for example, by someone who has the necessary skills and facilities programming a DVB-MHP Java application to use various Unicode Private Use Area character codes to produce various graphic effects such as drawing lines, rectangles, filled polygons and the like in accordance with the information in the book. The culture of Astrolabe Channel is that most of the DVB-MHP applications viewed by end users using their DVB-MHP television sets are produced by the customization of generic DVB-MHP Java applications by using Unicode plain text files and Portable Network Graphics illustration files. However, those plain text files can include codes for the eutocode graphics system, which allows graphics to be encoded in Unicode plain text files using various codes defined in the Private Use Area of Unicode by the present author. This means that a generic program which can accept those character codes and interpret them as graphics data and graphics commands is needed. However, if that generic DVB-MHP Java application can be produced, then a Unicode plain text file containing some Private Use Area codes can be used to produce Java quality graphics. The author of the Unicode plain text file need not necessarily have any knowledge of Java and does not need access to the specialist software needed to produce a DVB-MHP Java application. Thus the utopian dream of Astrolabe Channel is that the customization files can be produced by people around the world writing about their specialist knowledge in various subjects yet only needing widely available computing facilities, such as a Unicode capable text editor running on a Personal Computer, though use of a specialist font such as Quest text at authoring time so that the graphics codes show as logos in the text editor at authoring time is a great advantage. This file can be displayed using any widely available font for most of the text, yet to view the document fully one needs the Quest text font, at least version 1.14, which is available from the following web page. http://www.users.globalnet.co.uk/~ngo/font7007.htm Display at 12 point is recommended as the logos, and indeed the Quest text font, were designed for clarity at that size. In the piece of creative writing included in this document, the scene is set in the office of a programming adviser, who is approached by a content author who is learning how to customize the generic7 DVB-MHP Java application using a Unicode plain text file. The generic7 application (in speech please say “generic seven”) is presently intended to be a program specified in the book. The content author is intending to produce a multimedia presentation about his or her own specialist subject by producing a Unicode plain text file, yet for the moment is learning the techniques using short sections of text and graphics. Will the book be published? At present it is not written, though I do have available various documents which I have written. However, I am looking at various “publish on demand” facilities which are available whereby, by paying a one-off fee, an author can have a book made available with a copy produced promptly whenever someone orders a copy from a bookseller. This has the advantage for this project that the book would not need to be judged as a potentially commercially successful venture in an environment of competing against other books which are on entirely different topics and also that anyone who wants a copy could obtain one without me needing to handle the process for each of any such orders. Publication in such a form would have the advantage of having hard copy versions of the book available in a straightforward manner and there would be as many copies produced as desired by readers, regardless of whether that is a small number or a large number. This means that the publication of the book can be in a straightforward manner, as a parallel activity to making the text available in my own webspace. Hopefully Astrolabe Channel as a concept and as a topic in a book, and maybe as a real-life realized facility in some form, will be a catalyst to the application of the DVB-MHP system to free-to-the-end-user distance education around the world with a culture of access for content authors who produce their content using fairly readily available computing facilities, perhaps even the open access facilities of a public library. ---- “Good morning.” “Good morning. How may I help?” replies the programming adviser. “I’m learning to produce Unicode text files to customize the generic7 program. I have learned how to produce text and I have learned how to produce eutocode graphics. What I need to learn is how to produce text with graphics located amongst the text.” “Yes.” “I have used the web-based simulator of the generic7 program to observe what happens when I code a Unicode text file to have a sentence of text, then a yellow line drawn using eutocode graphics and then a second sentence of text. The simulator simply gives the two sentences one after the other within the central display area and the yellow line in the top left corner, which may not show on a television set using the generic7 program on a DVB-MHP channel, due to allowing for the edge effects of the television screen. The sequence which I have used is as follows.” A first sentence of text as a test.  A second sentence of text as a test. “The effect you want can be achieved by using three stages. The generic7 program presumes text to be in the central display area yet does not presume eutocode graphics to be in the central display area, because eutocode graphics can be used for drawing backgrounds which cover the whole screen area as well as for drawing graphics in line. I notice that you have used the following sequence for drawing the yellow line.”  “Yes, I read that the generic7 program will accept a sequence of multimedia authoring digits as data as well as the direct data codes in the range U+EC00 through to U+EF00, so I decided to use them for convenience. The sequence is to draw a line from x1=10, y1=20 to x2=30, y2=40, using colour 4, which is yellow in the eutocode colours.” “Well, in order to draw the graphics in the central area one needs to use a U+EB7E, decimal 60286, CENTRAL AREA GRAPHICS code before the drawing command so that the generic7 program knows to draw with the data points taken as being relative to the top left corner of the central display area rather than relative to the top left corner of the full screen. The Quest text font authoring-time symbol for that is a  symbol. So if we modify the graphics to have a  character in front of it when displayed with the Quest text font, we have the following.  Let us have a look at what the simulator produces now.” “Ah, the two sentences are in the same places as before but the yellow line is now drawn on top of part of the first sentence.” “Indeed. Now the interesting thing is that the text is always drawn relative to the top left corner of the central area. The coordinates of that top left corner are constants. The coordinates of where to display the next letter received are stored in two variables named textx and texty. The values of textx and texty are changed as characters are displayed and are as if they specify the top left corner of a rectangle which is to contain the next character. With eutocode graphics which are being displayed in the central area there is also another feature, in that each data value specified in the Unicode text file for a point on the screen has added to it not only the x or y coordinate of the top left corner of the central area but also the x or y coordinate of an offset. The offset is stored in variables offsetx and offsety. The values of offsetx and offsety start at 0 when a new display page is started. The adding is done dynamically by the generic7 program and does not alter the contents of the Unicode text file. The technique to use these offset values is quite straightforward. One simply uses a U+EB70, decimal 60272, SET ORIGIN OF THIS GRAPHIC code to copy the values in textx and texty into offsetx and offsety respectively. The Quest text font uses a  authoring-time symbol, indicating zeroing the eutocode graphics. This means that the data values for graphics points on the screen are drawn relative to where the next character was to be drawn. I notice that you have added a U+EBC0, decimal 60352, RETURN at the end of the first sentence so that the place for the next character is at the start of a line. This is useful for most situations and almost essential when learning. So let us change the graphics sequence to the following.  Now let us observe the display using the simulator.” “Ah, the two sentences are in the same places as before, yet the yellow line is lower down, though with part of the second sentence drawn over the yellow line. However, the first sentence and the yellow line are both in the right places, so it is now just a matter of repositioning the second sentence.” “Exactly. Now the first two changes each used one eutocode character. Moving the second character needs a rather more elaborate approach. The first thing to do is to decide that, say, 60 pixels is a reasonable height for the whole graphic. So we set up the following, as horizontal displacement is 0 pixels and vertical displacement is 60 pixels.  The only new code here is the U+EB72, decimal 60274, SET FORWARDING SIZE OF GRAPHIC code, for which the Quest text font has  as the authoring time symbol. Although the  and  codes are used, this is not a drawn point, the  causes the values to be copied into two variables named forwardingx and forwardingy. The code U+EB71, decimal 60273, ADJUST TEXT POSITIONING DATA FOR FORWARDING SIZE OF GRAPHIC for which the Quest text font has  as the symbol is used after the graphic so as to return to text. The  code simply adds the values in forwardingx and forwardingy to textx and texty and also sets the values in offsetx and offsety to zero. The reason why the  and  symbols are both used is so that the  symbol may be used at the start of the definition of the graphic if desired. So the whole sequence becomes as follows, taking the option to use the  symbol early on.  Let’s try that in the simulator.” “Success!” “Indeed. So the codes for the Unicode text file are as follows now.” A first sentence of text as a test.  A second sentence of text as a test. “Thank you.” “You’re welcome. One final point, if you do need to specify specifically that the full screen is to be used for graphics, the U+EB7F, decimal 60287, FULL SCREEN GRAPHICS code is provided. The Quest text font uses  as the authoring-time symbol. Using  and  does not alter the values in textx and texty or in offsetx and offsety or indeed in forwardingx and forwardingy, those values simply remain unused when drawing is in full screen and unchanged unless altered by the ,  and  codes.” William Overington 21 June 2003