`
`i -
`
`
`
`n.5,........k,;....‘
`
`= =
`
`PMC EXh
`
`Apple v. PMC
`|PR2016
`00755
`
`Page 1
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 1
`
`
`
`
`i i
`
`@ Online 1980
`
`ISBN 0 903796 52 X
`
`No part of this book may be reproduced, stored in a retrieval system,
`or transmitted in any form, by any means, electronic, mechanical,
`photocopying I microfilming I recording or otherwise 1 without written
`permission from the Publishers.
`
`Published by Online Publications Ltd. 1 Northwood Hills 1 Middx.
`
`Printed by The Chameleon Press Ltd. 1 London
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 2
`
`
`
`399
`
`The use of MicroCobol for Telesoftware
`
`E. C. Sedman
`Viewdata Manager
`CAP- CPP Micro Products Ltd
`
`England
`
`The concept of Telesoftware is described with particular
`reference to its implementation using MicroCobol - a
`machine invariant programming language developed by
`CAP-CPP.
`
`Examples are given both of the use of on-line programs
`as an enhancement to the standard viewdata facilities, and
`also examples of the types of program that could be
`distributed by telesoftware but run in "stand alone 11 mode .
`
`I
`· I
`
`I
`'l
`i
`••
`'-
`.:
`·I
`
`" l
`l;
`
`n .·,
`
`. \
`
`':I
`
`;·_I'
`,,:f
`
`fl '!.'
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 3
`
`
`
`400
`
`1.
`
`INTRODUCTION
`
`The Concept of Telesoftware
`When viewdata was invented a few years ago, no-one could fore(cid:173)
`see how rapidly microelectronics was going to develop. The
`result has been that except for a few of the very earliest sets,
`all viewdata receivers are built around a set of chips, rather
`than discrete logic circuits. Some of these chips are in fact
`general-purpose, programmable, microprocessors. The pressure
`is still very strong to minimise the number of components, and
`hence the cost, for the mass market domestic sets, but the
`marginal cost of providing additional capabilities is not high, and
`a number of "intelligent 11 sets are now being developed.
`
`Su.ch intelligent viewdata receivers give the capability to carry
`out more complex operations than are available with a standard
`terminal. For example, it is possible to process the data that
`is received, rather than just to display it, and it is also possHie
`to reprogram the device to perform different functions.
`
`Now a reprogrammable device requtres a means of getting the
`programs into it. But with viewdata we are talking about a
`terminal connected to the telephone network. So why don't we
`use the network itself to distribute, :not just data, but also the
`programs (software). This is the principle of telesoftware: the
`distribution of software via a communication medium, in this
`case the telephone.
`
`But telesoftware is not just an interesting technical idea: there
`is also a need for it. As the cost of hardware has been coming
`down rapidly there has not been a corresponding fall. in the
`cost of developing and maintaining software, which remains
`labour intensive and therefore increases with inflation. However,
`there is an alternative way to reduce the selling price, and thi~:>
`is to sell many copies of the same software. The ideal way to
`achieve this is to have a means of distribution whereby the
`software supplier can set up a single copy of a program which
`is updated when necessary. Purchasers can take copies paying
`a usage charge each time they do so. This is precisely the
`facility that telesoftware can provide.
`
`Compatibili_!x
`With the standard Pre§tel system, it is already possible to
`purchase terminals from many different suppliers, but all
`displaying information in the same way. When we come to ]YJge-
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 4
`
`
`
`401
`
`software we again want to achieve the same results, i.e. we
`want to have a single version of a program, stored on Pres tel,
`and capable of being brought down and executed in a range of
`different terminals.
`
`This is an extremely difficult problem to solve. Even with
`standard terminals, characters look different depending on the
`display chips used, and there is at least one inconsistency in
`interpretation of control characters (see Prestel pages 33822 and
`3382262 ). With software there is much greater scope for in(cid:173)
`consistency because the basic instructions are different between
`different processors.
`
`The problem has been solved completely in the implementation
`of MicroCobol, which is a programming language designed to be
`portable over a wide range of machines. Programs are compils::l
`to an intermediate code which is then interpreted identically on
`different processors. Even more significantly, the same result is
`obtai ned from a program which is in error, so it does not
`matter what machine is used to test out the program, the effect
`is always the same.
`
`Micro Cobol
`The MicroCobol languagJ has been designed specifically for
`business applications on microcomputers. Some of its features
`are:-
`
`the most commonly used language
`Based on COBOL,
`for business data processing, but modified to make it
`suitable for interactive use on small machines (rather
`than batch mainframe operations) and also extended to
`include modern structured prog~amming constructs. It
`is a language designed for professional programmers
`(unlike BASIC for example) but there is a large
`population of such programmers capable of using it
`with minimal retraining.
`
`Micro Cobol incorporates a powerful disk- based operating
`system with extensive file handling capabilities.
`It
`requires at least one and preferably two disks,
`the
`minimum being floppy disks of quarter megabyte capacity.
`Minimum. memory is 48K, but 64K is an advantage.
`
`Thus MicroCobol is suitable for an intelligent business viewdata
`terminal, rather than the lowest cost device for the domestic
`
`I
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 5
`
`
`
`402
`
`user. As a very rough figure, we would expect the cost of such
`a terminal to be about twice the cost of a high quality standard
`viewdata terminal, if produced in similar numbers. The early
`users are therefore expected to be large business organisations
`with a need for distributed computing power, but it is expected
`to spread to smaller businesses, and eventually to very small
`businesses such as the corner shop.
`
`2.
`
`THE MECHANISM OF TELESOFTW ARE
`
`Data Format
`A::, a starting point for our telesoftware development work we
`assumed that we could operate with no changes at all to the
`central software of Prestel. Although it was not by any means
`certain that this would be a valid assumption, it has proved to
`be so. Obviously, there would have been problems and delays
`if we had needed changes at the centre, but a more important
`point is the fact that our telesoftware will now work on any
`viewdata system which uses protocols similar to Prestel. Hence,
`our marketplace includes private as well as public viewdata
`systems.
`
`Prestel works on 7 data bits pll,1s parity which is probably the
`least convenient format for a compu'ter language based on an
`· eight bit byte. For simplicity our initial work was based on
`transmitting a pair of hexadecimal characters for each byte of
`program (i.e. using only 4 bits per character. } This gave a
`maximum of about 410 bytes per frame after allowing for control
`information. Further developments have achieved greater packing
`densities by recognising multiple repetitions of the same
`character, and -by allowing most ascii characters to be trans(cid:173)
`mitted as a single 7 bit character.
`
`Another serious deficier:cy of Prestel from this point of view is
`the lack of an "end of transmission" character, but this is
`overcome by having our own "end" sequence.
`
`The length of the. transmission at 960 characters is .longer than
`would normally be expected, so we allowed for shorter units.
`However, the overhead is minimised with longer !Ire cords rr, and
`we find the full length to be satisfactory from the point of view
`of error frequency, so this is what we use.
`
`Error Detection
`Unlike telesoftware broadcast by teletext, we can take a very
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 6
`
`
`
`403
`
`simplistic approach to errors. Because of teletext's delays be(cid:173)
`tween successive transmission~, they make every effort to
`correct transmission errors, by the use of Hamming codes. We
`simply detect errors, and request retransmission of the frame
`in error. Checking consists of the parity check on each charac(cid:173)
`ter, a checksum on the line of control information on each
`frame, a checksum on the data characters on each frame, and
`an overall checksum for the entire program, to ensure that we
`have not got out of step in reading the frames.
`
`We considered the desirability of a more complex cyclic re(cid:173)
`dundancy check, but came to the conclusion that the error rate
`at which the simple checksum is inadequate, is such that the
`time taken to transmit a program would be unacceptably long
`due to the number of retransmission:; needed. In practice we see
`very few errors in transmission; remember that we are always
`using a local call. The program tries each frame up to three
`times, and if the error persists the operator is given the choice
`of trying again or abandoning the run.
`
`Anti Piracy Protection
`If companies are going to invest in the development of programs
`and supply them via public viewdata services, they need protect(cid:173)
`ion against unauthorised copying of the programs. The first
`level of protection with MicroCobol arises from the fact that
`programs are distributed not in source form, but in a verion
`of the intermediate code. Some languages, such as Basic, are
`normally saved in source form, or in an intermediate language
`which is very similar to the source. In these cases it would be
`very easy for a customer to copy down the frames containing
`the program, and manipulate them to produce his own version.
`In fact he could even view the frames ·and simply rekey them if
`that were easier.
`
`Whi~e we cannot, of course, protect programs completely
`against the equivalent of the dedicated "phone freak", we can
`ensure that a significant amount of time and effort would be
`required to break the codes that we insert. And in the business
`environment to which MicroCobol programs are addressed, time
`is money. We have therefore included a riumber of complicating
`factors, one of which is an expiry date.
`
`The program provider specifies a retention period which is
`stored on the first frame of the program. It can be unspecified,
`in which case the program is available indefinitely. Otherwise
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 7
`
`
`
`404
`
`the operating system adds the retention period to the current
`date, and sets up an expiry date. Any attempt to run the
`program after the expiry date will fail with an appropriate
`message.
`
`As a further extension one of the frames could be a response
`frame. The date and time provided by Prestel give a unique
`identifier for the program, and the response frame identifies
`the purchaser. So if a
`''pirate If copy turns up its origin can be
`traced.
`
`Practical Use
`The telesoftware mechanism is in fact a general file transfer
`mechanism. Not just programs, but also data files can be
`transferred in the same way. Successive frames are used,
`called down by sending .#:. and if more than 26 are required,
`route 0 from the z frame gives the first frame of another page.
`
`From the user's point of view, he finds the program he wants
`via the normal menu selection process. The instructions on how
`to operate the program are also on Prestel, routed to in the
`normal way. Charging is via the normal Prestel frame charge,
`specified by the program provider, and collected on the user 1 s
`bill in the same way as all his other information charges.
`
`The major restriction that we can see on telesoftware is its
`speed. Assuming we can completely overlap the reading of a
`frame with the processing of the preceding one,
`the transfer
`rate is about 8 seconds per frame, i.e. ?t frames per minute.
`Depending on the packing density we can achieve this is likely
`to give up to about 4K bytes per minute,· i.e. 5 minutes for a
`typical program of 20K bytes. This should be acceptable, but if
`we want to transfer a suite of programs, say the sales ledger
`occupying about a quarter of a million bytes, the time taken
`will not be less than an hour.
`
`While it would be .possible to bring down a suite of programs
`of this size during lunch, say, it does not seem very practicatie.
`Until we have significantly faster transmission speeds, we there(cid:173)
`fore believe that telesoftware will be used only for individual
`programs and for amendments and updates to suites of programs,
`which will continue to be purchased initially by some other
`means, for example a floppy disk sent by the post. However,
`we envisage that the use of response frames, and in the future
`a message service, will play an important part in the remote
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 8
`
`
`
`405
`
`support and maintenance of software~
`
`3.
`
`EXTENSIONS TO VIEWDATA
`
`So far we have only considered the means by which telesoftware
`operates. But what can we do with it?
`
`Having brought down a program we can go off-line~ and treat
`the terminal as a completely stand-alone machine. However~ let
`us consider first some of the possible applications of the
`intelligent terminal when on-line to the viewdata centre, :::>o that
`it is used in effect to extend the viewdata capabilities.
`
`Improved Access Methods
`With Prestel, the standard method of accessing data is via a
`series of menu selections. The simplicity of this approach and
`the ease with which it can be learnt and used is probably the
`greatest strength of the viewdata concept. However,· it does
`mean that there can often be a large number of accesses
`before getting to the desired frame. This can be seen as a
`clear weakness of the system, which will be particularly
`serious for someone who needs to use the system frequently.
`
`It is also possible to go directly to a specific page, but of
`course it is necessary to know in advance the· page number for
`the information required. This knowledge can be achieved by an
`intelligent terminal which makes use of an index; for example,
`to select a railway timetable given the starting point and
`destination.
`
`The idea is that the index will be stored on Prestel by the IP to
`whose information it refers. Thus it will be kept up-to-date and
`called down only when needed. Alternatively, the index could be
`brought down onto local disk storage if required frequently. In
`this latter case it would be necessary to provide a means of
`checking to ensure that the index on disk had not got out of
`date and out of step with the data.
`
`Although the simplest approach is to obtain and display a com(cid:173)
`plete frame of data, it is possible to be more selective, only
`displaying a particular part of the data; for example a specific
`train time.
`
`The problem with the use of keywords etc is that their intra(cid:173)
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 9
`
`
`
`406
`
`duction removes some of the simplicity of the original idea. It
`is very important not to introduce the complexities of an
`elaborate data base system with its own special language. The
`preferred approach is to have a number of simple retrieval
`programs, each specific to a particular requirement. If the
`user requires access to data not covered in this way, he can
`always use the standard "menu'' approach. Thus we can add to
`the viewdata capabilities without undue complication and without
`removing existing facilities.
`
`Processing of Data
`Having retrieved data from Prestel as indicated above, it is a
`straightforward extension to want to process that data. Obviously
`this
`is easier if the information is displayed in a fixed format,
`as the program will then know exactly where to find a particular
`item. It is, however, also possible to scan the information
`looking for a particular key, and so find an item of data from
`a relatively free-format frame.
`
`Much of the data that is already on Prestel would be of greater
`value if it were possible to perform calculations directly on it.
`For example, it would be possible to calculate the current
`value of a portfolio of shares by accessing the stock exchange
`prices of each.
`
`A second use for this idea is in conjunction with closed user
`groups, using Prestel as a communication medium. For example,
`the head office could put up current price lists on Prestel for
`use by subsidiary companies or retail outlets. These latter
`could in turn use the response frame facility to send back
`orders.
`
`Input Validation
`The concept of response frames is a very" important and useful
`extension to viewdata. However, as currently implemented it
`has the serious weakness that no validity checking takes place
`on the trmessages" that are sent from the user to the IP. This
`means that if, say, alpha characters are included in what should
`be numeric data, it is only when the IP views the compJ.eted
`response frame that the error is seen.
`
`A program running in an intelligent terminal can overcome this
`problem by checking the data as it is entered, and only trans(cid:173)
`mitting valid data •.
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 10
`
`
`
`A good example of this is an order entry system in which
`checks can be carried out for valid item numbers and the
`availability of stock. In addition,
`the operator has an opportunity
`to reject entries if he realises that he has made an error.
`Finally, in transmitting the response frame the terminal can
`check that the correct characters are echoed, and in the event
`of line errors can transmit the whole frame again, without
`the operator having to re-enter it.
`
`I. P. Usage
`There are already on the market a number of special purpose
`intelligent editing terminals for information providers. These·
`are programmed to perform one particular job. The big ad(cid:173)
`vantage of telesoftware is that a general purpose intelligent
`terminal can. be reprogrammed via the viewdata network to
`perform a range of different jobs. Examples include:
`*
`
`Processing Response Frames. For example, with the
`order entry system mentioned earlier the information
`provider's machine could automatically process the
`orders, producing invoices, despatch notes etc and
`update central stock levels. Note than one should try
`not to develop this idea too far: Prestel is not
`sufficiently responsive to accept orders for individual
`items such as in a seat reservation system. On lhe
`other hand, it is much better than mail order.
`
`>:<
`
`~:~
`
`>:<
`
`Updating of Frames. In the order entry example it
`would be possible to update Prestel automatically
`to indicate changes in stock availability.
`
`Processing of Frame Information. It is possible to
`interrogate frames automaticaliy on a regular basis,
`to check the counts of the number of times accessed.
`
`Editing. Off-line editing facilities can be provided,
`either in a general way, or specific to a particular
`I. P. 's requirements.
`
`So the intelligent terminal can perform a wide range of tasks
`for both the Prestel user and the information provider.
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 11
`
`
`
`4.
`
`END USER COMPUTING
`
`So far we have been referring to an intelligent terminal attached
`to a viewdata network. However, by virtue of its intelligence,
`such a device is also capable of operating as a stand-alone
`machine, off-line from the network. In this mode the user is
`not paying a time based· charge, either for connection to a
`central system or for a telephone call. Instead he can run his
`own program entirely in his own time.
`
`Furthermore, because colour and graphics are available as
`standard from viewdata chip sets, we have a relatively low(cid:173)
`cost device with these features. It seems likely that colour will
`soon come to be the standard for displaying information in the
`office in the same way that colour television has taken over in
`th-e home. Thus, when combined with the distribution facilities
`of telesoftware, we have the ideal device for taking computing
`power to the end user.
`
`In this section we consider just a few of the possible business
`applications.
`
`Local Viewdata
`The development of a full private vi,ewdata system is a non(cid:173)
`trivial task if one is to handle closed user groups, response
`frames, etc, and provide full accounting facilities. On the other
`hand, a simple retrieval system using viewdata protocols can
`be implemented very easily on a microprocessor based intelligert
`terminal with a suitable file store.· And because of the great
`advantage of simplicity of use, this will be an attractive way
`to hold data.
`
`A standard, single density, floppy disk can hold about 2 00
`frames and can be carried around conveniently. It is possible
`to provide a password system for security protection but much
`greater protection is provided by the fact that the user can
`simply remove his disk and take it away with him.
`
`Because we are working with a system with a local intelligence
`we can do things that are not possible with Prestel. Firstly
`we can write directly into the display memory instead of using
`a serial link. This means that instead of taking up to eight
`seconds to fill the screen it can be done virtually instantaneousl;y.
`
`Another important feature is the ability to modify parts of the
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 12
`
`
`
`409
`
`screen, rather than displaying a whole page at a time. We can
`use this to create dynamic visuals, and, particularly in con(cid:173)
`junction with the use of colour, provide more interest ihrough
`the use of movement on the screen.
`
`Finally we can pre-program sequences of displays. In this way
`the device can be used as an aid to presentations, or to pro(cid:173)
`vide a continuous display facility.
`
`Jraining
`Computer assisted learning is an important topic in its own ·
`right. Usually it involves terminals on a mainframe computer,
`and is particularly relevant where there is a shortage of suit(cid:173)
`able teachers, or where the students need to fit: in training
`between other tasks, for example when on shift work.
`
`Prestel terminals with colour and graphics, c~m also be used,
`and with intelligent terminals used off-line,
`there is no usage
`charge. Prestel telesoftware can be used as the distribution
`medium or a private viewdata system can be used, so this will
`be particularly valuable for a company with scattered employees:
`maintenance engineers for example. And the fact that the
`program runs off-line after being brought down is an important
`psychological advantage to the slower student: it is not costing
`extra money if he takes his time. Furthermore, the intelligent
`viewdata terminal will be less expensive than most graphics
`terminals currently in use for CAL. So we are suggesting a
`very cost-effective solution.
`
`The dynamic visuals of our local viewdata system can provide
`an interesting and effective medium for putting across basic
`concepts and the menu selection technique allows for multiple
`choice questions in progress tests.
`The system keeps a count
`of the routes taken, and the teacher can subsequently analyse
`the performance of individual students, and also the effectiveness
`of the course as a whole. Standard tools have been created to
`facilitate the production of training courses by teachers without
`a knowledge of computer programming, so again the end users
`will interact directly with the terminal.
`
`Business Graphics
`The graphics capability of a viewdata terminal is not of a high
`enough quality to produce high resolution pictures, but it is very
`suitable for producing diagrams such as bar charts and histo(cid:173)
`grams, especially when use is made of the colour facilities.
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 13
`
`
`
`.--(cid:173)
`'
`
`,.
`,,
`•;.
`
`410
`
`The intelligent viewdata terminal with a file store is therefore
`an excellent device for an end user to store financial information
`which he can call up and display in a format of his own choice.
`
`For example one could compare different sets of figures on the
`same graph, plotting differences or ratios,
`It is possible to
`request further details for one particular set of results that
`appears to be anomalous; for example getting monthly figures
`for a particular year. And it is also possible for the user to
`save a particular display for future reference.
`
`All this can be provided via an easy-to-use interface, so that
`the system is "user friendly". As an example of this we can
`provide a "help 11 facility whereby the user can be prompted
`w~th a choice of possible actions at any point, by pressing a
`particular key. Another example is the user's ability to select
`his own colours. since we have found· from experience that a
`choice of colours that suits one person can be found tiring by
`another.
`
`Other Uses
`Clearly there is a wide range of other possible applications for
`an intelligent terminal. The ones highlighted above have been
`examples where the special viewdata' characteristics are
`important, but as a general purpose computer there is the full
`range of business applications, which would apply both to sub(cid:173)
`sidiary branches of large companies and also to the hundreds
`of thousands of small businesses.
`
`The viewdata standard of 40 characters per line is something of
`a restriction, since most small business cc:>mputers have an 80
`character vnu. and most business applications are programmed
`accordingly. It is possible to rewrite the programs to use the
`· more restricted screen width, and we have done· that in some
`cases. However, the answer is likely to come from hardware
`advances. Coloured terminals are being developed that are
`capable of displaying either 40 or 80 characters per line. An
`intelligent version of one of these would be software switchable
`"viewdata 11 format and 80 character
`between 40 character
`"business terminal" format, in the same way that the present
`terminal is switchable between the viewdata "page-at-a-time"
`. and computer "scrolling" modes. And it would be possible to
`go further and use standard Prestel protocols for distribution
`of programs which were capable of using high resolution
`graphics.
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 14
`
`
`
`411
`
`So with telesoftware there is enormous potential for further
`development of the viewdata concept. MicroCobol is specifically
`aimed at the business market, but when the cost of terminals
`becomes low enough the potential of telesoftware for the
`distribution of home entertainment and educational programs
`will be enormous. However the opportunities and problems
`associated with the development of that market are still to be
`explored.
`
`5.
`
`CONCLUSIONS
`
`This paper has attempted to give an indication of the concept
`and possible uses of telesoftware in business applications, but
`has not been in any way an exhaustive study of the topic.
`
`It is felt that most business users of viewdata systems will
`require some degree of intelligence in their terminals, and mary
`will need some local file store. For these, telesoftware offers
`the ability to extend the capabilities of viewdata while still
`retaining the advantages of the original concept.
`
`References
`
`1.
`
`A. d'Agapeyeff 11A platform for true program portability
`with examples from MicroCobol'', Fourth International
`Conference on Software Engineering, Munich, September
`1979.
`
`PMC Exhibit 2064
`Apple v. PMC
`IPR2016-00755
`Page 15