Highly dynamic text display system

Highly dynamic text display system

HigMy dynamic text displaysystem lan Page and. Anthony Walsby describe a new text-handling system which is another step towards the automated office A...

413KB Sizes 28 Downloads 123 Views

HigMy dynamic text displaysystem lan Page and. Anthony Walsby describe a new text-handling system which is another step towards the automated office A new text-handling d/splay system (the QMC text terminal) is described. Its main features are the ability to subdivide the screen into pages and a co/our display. In this way, the user is able to consult a number o f pages at one time, extract them, update them and file them. This represents a step towards the 'electronic desk '.. There are many application areas which require interactive computer systems that have facilities for the simultaneous display of many separate streams of information. Amongst these, one very important application area is that of office automation. This area is under active study at Queen Mary College ((~MC) where among many other activities, we are attempting to develop and refine our concept of the principal component of the automated office, which is the workstation. Workstations will be highly intelligent and highly interactive computer systems intended to replace the traditional desk, filing cabinet and other information handling aspects of office work. These workstations (Figure I ) will require highly effective display systems so that the users have an information display which is at least as effective as that which they are used to-usually pieces of paper on a desk! This criterion is certainly not fulfilled by the traditional computer display device which is the visual display unit (VDU). Although the automated office is just one application area amongst many which require good display systems, we shall refer to it in our discussion since it is an extremely demanding area and contains elements of all the currently unsolved display problems. The (~MC text terminal, described in this paper, provides many of the features which we believe will be required in the next generation of text-handling display systems. As one of many possible examples, consider the basic task of sitting at a desk and writing a report. In order to write that report, it is necessary continually to refer to other documents, such as previous reports, letters and minutes. In an automated office this information would come from stored versions of those documents and could thus be viewed on a computer display. Since continual references are made between documents by the user, it is essential not to lose any of the displayed information as the user proceeds in his task. The use of several display screens each showing a different document could solve this problem. However, this solution is clearly uneconomic and it is also not ergonomically sound for the user to scan visually several physically separated screens. Thus, a mechanism for keeping several distinct items of information on one screen simultaneously is required. Computer Systems Laboratory, Queen Mary College, Mile End Road, London E1 4NS, UK

vol 3 no 2 march 79

/

Display

Display

Display

~

Display Display

Display

Display

Disploy

Display

00(3000000000000~00 DO0 00000000000000(3(~0[]0 DO0 O000OO00000000000~O 000 K~o~d

Positi~ing device

Figure 1 Workstation for an automated office

The display area of a traditional alphanumeric VDU terminal is simply a rectangular matrix of characters. We can, however, envisage a 'virtual display', which forms a rectangular subarea of the screen and which can hold information separate from that on the rest of the screen and will be unaffected by changes in the displayed information on any other parts of the screen (e.g. scrolling of text). We will refer to such a rectangular subarea of the screen as a page, because of its similarity to a page of text printed on paper. To make these pages an effective means of interaction for the user, it is necessary to give them other paper-like qualities, such as mobility and colour and it should be possible to pile these pages 'on top of each other' (or in front of each other if the display screen is vertical, as it usually is in display systems). If these 'pages' can then be made to be independently addressed by the applications software, viewed as separate objects on the screen and moved around the screen at will, then a very powerful text-manipulating display will result.

QMC TEXT T E R M I N A L The OMC text terminal goes a long way to meeting the objectives mentioned above. Figure 2 shows the basic organization of the Text Terminal, consisting of a microprocessor system which communicates over a serial line

0141-9331/79/020073-04 502.00 © 1979 I PC Business Press

73

Program I Display I Video t PROM processor generator

J

UNIX I PDP 11/40

Serial line

= Screen

16o%I Me!°ryI Keyboa~

Figure 2 Organization of the text terminal system

interface with a host processor running the application programs. The microprocessor updates an applicationoriented data structure (the display file) which is stored in its local memory. This display file is organized in terms of 'pages' of text, as outlined above, so that a 'page' becomes a hardware-supported entity which can be manipulated, separately from other pages, by the application programs. A fast, special-purpose 16-bit processor (the display processor) continuously examines this data structure and produces from it a sequence of filled character buffers which are passed on to a video generator which produces a television-compatible 625-1ine colour signal which can then be displayed on a conventional colour television monitor. The advantage of this system is the fact that the organization of the datastructure can be related to the needs of the application programs rather than to the needs of the display. The special-purpose display processor is then employed to transform that datastructure into a form which is related to the specific, and vastly different, needs of a raster-scanned television monitor. The net advantage is that application programs can directly manipulate the application-oriented pages without conearning themselves about the details of the display mechanism. In our display system a page is a rectangle of text characters which may be larger or smaller than the actual viewing screen. The screen can display any number of these 'pages' simultaneously and they can each be separately updated by the application software, repositioned on the screen or have their colour and fount characteristics altered. To ensure that it is easy to manipulate the pates separately, we provide a stored datastructure in memory which contains descriptors of all the currently active pages. These descriptors contain information specifying the size of the page, its position on the 'desktop', its colour and fount characteristics and a pointer to the memory which contains the text material which is to be displayed in that page (Figure 3). The desktop is simply a conceptual rectangular area, much larger than the actual screen viewing area, in which all the pages reside, Figure 4 shows the datastructure - and hence the logical structure - of the desktop. Only a part of the desktop may be displayed at any one time and the amount which can be displayed clearly corresponds to the size of the available screen viewing area. The screen can thus be regarded as a viewport onto a part of the deskto p. This viewport may be moved (i.e. panned) across the desktop t(~ enable other desktop areas, containing other pages, to be viewed. The use of a movable viewport onto a desktop is a very easy concept to master and to use effectively, given a suitable display system, and it is very similar to a person's normal use of a real desk.

74

However, to move the viewport around the desktop quickly and smoothly, and to move pages around the viewport, requires a large amount of real time computation and requires special hardware support. If the screen is displaying a number a separate pages of information, there is clearly a need to distinguish the pages from each other. There are various methods which can be employed, such as grey scale colour combinations (black-onwhite, white-on-black, black-on-grey, etc.) or bordering (with special characters) or various character founts or colour combinations. These methods can also be used to highlight information within a page, perhaps to indicate an error or some other item of particular interest to the user. Our display uses 64 colour combinations and 4 different character founts to distinguish pages from one another, and to highlight information. The above represents the software structure and the display characteristics which are required for an effective display system. It is a non-trivial task to provide a hardware system which can interface between the software (the display file) and the screen (the raster-scanned CRT) to provide these characteristics. We chose to follow the approach used in computer graphics terminals, which is to have a special-purpose display processor which scans the display file and generates the video signal from it. A small general-purpose microcomputer is used to construct the display file and to maintain it in a form suitable for the display processor and it will update the display file in response to commands from the host processor which runs all the applications programs. The whole display file is scanned and a complete new picture is generated fifty times per second (the screen refresh rate). The need for fast repetitive picture generation (and hence the special display processor) is not the refresh rate of the display screen, but rather to provide a dynamic picture which will respond immediately to changes in the display file. For instance, it enables the screen to be smoothly 'dragged' around the desktop and for pages to be readily repositioned on the screen.

MUT MICROCOMPUTER SYSTEM This is a microprocessor system, based on a Motorola 6800 processor, which was designed to have other uses besides in the text terminal and was thus designed in a modular fashion and is known as the Microprocessor UTility, or MUT for short. The primary job of this processor is to mainPage descriptor

ITopleftx

I Toplefty IWidth I Length [Co'our IPointer ~

8 - bits

8- bits

8-bits

8-bits

8-bits

16- bits

--I I I I I I I I I I I I I I I II

vRe°ctW°r -

I I

IIIIIIIII IIIIIII1,,1

Character strings for a 9 x 4 page

Figure 3 Datastructure tar a page of information

microprocessors and microsystems

Desktop descriptor

topleft x

toplefty

colour

Pointer

8- bits

8- bits

" 8-bits

16 - bits

~ , ~ vector ~ Page ~

-

~

.

Page descriptor of bottom page Page descriptor

~ ~

~

P~ge descri~or --'-"~ Page descriptor ~ ~

16- bits

End of ~ = vector

Page descdptor of top page

Figure 4 Datastructure for the desktop

MUT bus

L

I Keyboord

DMA connection from DP

Keyset

Mouse

ATN from DP

Figure 5 Support microcomputer for the text terminal rain the display file which is kept in the memory which is shared between the MUT and the display processor. It also interfaces to our PDP11134 host machine through a 9600 baud serial line interface. This host machine operates under the Unix operating system and runs all of the application programs. In our current configuration, the MUT also handles input from a variety of user input devices, the most important of these being a keyboard and a 'mouse' pointing device. The text terminal is thus an intelligent standalone terminal with very powerful features for displaying pages of text. The MUT microcomputer system (Figur~ 5) consists of: • a Motorola M6800 8-bit microprocessor • 16 kbytes of static random access memory (4 kbytes static RAM chips) • 512 bytes of read-only memory (used for initial program load from the serial line) • an asynchronous serial line interface • three 16 bit parallel interfaces for a keyboard and bleeper, sixteen function keys, and the mouse and joystick positioning devices • interval timer and video vertical blanking module (ATN) A typical M6800 control program for the text terminal occupies the first 6 kbytes of RAM storage with the remaining memory used to store the display structure.

face to the video generator row buffers and to the MUT memory. The display processor obeys a 20 bit instruction, stored in programmable read-only memory (PROM), in an average time of 400 ns. The PROM program store contains 256 20 bit words, although only about I00 are needed to interpret the current display structure. The display processor instructions are of the following types: • branch on condition • move register Y to register X (with optional shift'left or'right) • register X is loaded with a function of register X and register Y (optionally shifted left or right) The available functions ~re add, subtract, logical AND, and logical inclusive/exclusive OR. The Y value can optionally be a constant obtained from an instruction. The conditional branch instructions use six arithmetic conditions set by the last operation, or an indication of the vertical blanking period of the refresh display (activated for 4 ms in every 20 ms). The display processor has the task of interpreting the display file and generating a buffer containing 80 16-bit character definitions which are then passed on to the video generator for display. Two such buffers are used so that the display processor can update one buffer while the other is being displayed. This process is repeated, 'on the fly', for each of the 22 text rows displayed in every field. Each row of text as it appears on the screen consists of 26 horizontal lines of dots with adjacent pairs of lines showing the same information but in different fields of each frame. The video generator must therefore take a filled character buffer and generate 13 scan lines from it. In the 625 line televsion standard which we adopted, a scan line lasts for 64 #s. Thus, the video generator requires a filled buffer every 832 (13 x 64) ~s in order to function corr~tly. The display processor continuously executes a fixed program which is located in read-only memory. This program consists of two nested loops. The innermost loop is executed 22 times, once to generate each text row on the screen, thus completing one complete field scan. The outermost loop is executed indefinitely and consists simply of a delay to resynchronize the display processor and the video generator before the start of the next field scan (Figure 7). The maior part of the program is inside the inner loop and its function is to interrogate the display file held in the memory shared between the display processor and the MUT and to generate a filled character buffer corresponding to the row of text to be displayed. This involves DIN bus

:h

AL

l~g

DISPLAY PROCESSOR The design of the display processor (Figure 6) is based on the register-register system used in many 16 bit, microcoded minicomputers. The display processor has an address space of 32 registers. Sixteen of these are general purpose, for computation. The others are special purpose and inter-

vo/ 3 no 2 march 79

DOUT bus

Figure 6 Display processor for the text terminal

7~

Wait for top of screen

Blonk fill row b u f f e r ~_

No more 1.

Get next po:Je descriptor

No

Clip if necessary

Insert relevant characters into row buffer =l

No

No

~,

Figure 7 Flowchart for the d/splay processor system looking at every current page descriptor to assess its contribution to the complete row. These page.descriptors are kept in a vector in Z-order. In other words, those descriptors at the start of the vector correspond to pages which potentially lie under others, while those descriptors at the end of the vector correspond to pages which potentially overlay others and thus could mask them out and prevent all or part of them from being seen. The algorithm which we use is called 'back-to-front fill' and consists of firstly clearing the buffer and then entering into the buffer all contributions to the current text row from the 'back' page, i.e. the one furthest away ~rom the viewer and at the start of the vector of page descriptors. The contributions from the next nearest page are then also written into the buffer and this will automatically overwrite any contributions from the underlying page(s) wherever their positions overlap. This process is repeated for every page in the page vector after which the row in the buffer corresponds to the row to be displayed and the buffer is passed to the video generator.

MOUSE POINTING DEVICE This is one of the text terminal input devices and is used for virtually all our pointing and positioning interactions. It consists of a device which can be moved in both l e f t right and up-down directions by the user over the top of a horizontal working surface and a cursor on the screen moves in sympathy with it. This cursor can be used for all pointing applications such as menu selection, page selection, picking-up and dragging of pages and even the 'painting' of pictures by using the 'viewdata' style semigraphical fount. A number of push buttons located on top of the mouse enable control information to be sent to the MUT or to application programs in the host for such purposes as menu selection or attaching windows to the mouse cursor for 'dragging'.

76

The particular mouse which we use is a QMC patented invention and uses a novel principle. The mouse senses irregularities in the surface over which it moves, using a pair of ordinary phonograph pickups, and it converts the resulting electrical signals into relative, digital X- Y coordinate changes. The mouse has proved to be an extremely effective method of interacting with a display system and in fact it is possible to do many nontrivial information processing activities using only a mouse and its associated control buttons. One major advantage of this device is its simplicity and hence its robustness and its potential for very low cost production. In fact, it is envisaged that this device could be a very cheap add-on feature to many current VDU terminals for local cursor positioning.

CONCLUSIONS AND FUTURE WORK This terminal uses essentially graphics techniques to support a text display whose most notable features are pages and colour. We believe that the use of colour (or at least greyscale) to separate different information contexts on a single screen is highly important and that it leads to man machine interfaces which are easier and more effective to use. We also believe that it is important to be able to move these pages dynamically around the screen. This feature brings the electronic desk a step closer since the pages can behave very much like pieces of paper and can be filed, extracted, moved around at will and updated. This gives the user an easily understood and highly effective, electronic model of a desk. Although the QMC text terminal is demonstrably a considerable improvement over conventional displays in terms of effective man--machine interaction, we have come to realize that to progress any further it is necessary to be able to handle more complex objects than rectangular pages of text. For instance, a realistic electronic desk display will have to be capable of displaying text in many founts, proportionally spaced text, hand-written text, diagrams or indeed any other facsimile information, all with a flexible colouring scheme. This is possible with a bit-per-point display system, but to set the sorts of dynamic interaction which the text terminal offers is quite another story. The problems of updating a bit-map display 25 times per second in order to move arbitrary objects across the screen are truly enormous and if overcome would open the way to full real time animation with its almost unbounded possibilities. However, this cannot be achieved with a conventional display processor since it is a single sequential processor with a limited data throughput. To set the very much increased throughput necessary for fast bit-map updating we feel that it is necessary to employ many processors cooperating in the task of updating a single bit-map. The authors currently have an SRC-supported project in this laboratory to investigate and build a bit-mapped colour display system driven by a powerful, purpose-built array processor. The prototype 'Disarray' (Display Array) will have 256 processors, each executing simultaneously, to convert an application-oriented display file into a bitmap form. We hope that this device will significantly improve the effectiveness of man-machine interaction and provide the next step on the way to full real-time computer animntion.

microprocessors and microsystems