Method and apparatus for retrieving information distributed over nonconsecutive pages4768144Abstract This specification describes an information retrieval system such as a videotext or teletext system in which data is stored in conventional tree format, and the user has the usual capability to move vertically through the tree structure, but also has a novel capability to browse horizontally therethrough. This capability is achieved by providing each page of information with a browse link page pointer. The browse feature can be operated on an automatic repeat basis at a selected repetition rate, yet such automatic operation suspended at any time. In addition the user can return to normal vertical search procedure whenever desired. Claims We claim: Description CROSS REFERENCES TO RELATED APPLICATIONS
______________________________________
Integrated
Subsystem circuit
______________________________________
Modem 70A TCM3101
Tone dialer 70B MK5089
ACIA 72, 74, 92 SY6551
Video control logic 94 74123, LM1889
Video memory RAM 98 4416-2
Data Buffer 99 HFE4052B
Address Buffer 100 HC153
Color Map RAM 101 2148
CRT Controller 103 SY6545-1
Multiplexer 105 HC166, HC153
Data Buffer 107 HFE 4052B
Color composite video output 108
LM1886
Data buffer 112 HFE4052B
Non-volatile EEROM memory 114
SY2802E
PLPS ROM 116 SY23256A
PLPS "Scratch" RAM 118 4416-2
Telesoftware RAM 121 4416-2
Multi-tasking executive ROM 123
SY2365A
Session and link ROM 125
SY2365A
______________________________________
It should be understood that one skilled in the art may employ a plurality of each of the above-identified integrated circuits to serve the appropriate terminal subsystem, in order to provide the desired suitable capacity therefor. For example, a plurality of the ROM and RAM circuits are employed in an implemented embodiment of the system 10, to provide the desired memory storage capacity. III. KEYBOARD Referring now to FIG. 3, there is shown a membrane panel 128 of the keyboard 85 (FIG. 2). In the upper left hand corner of the panel 128, a set of user command keys are provided and are generally indicated at 130. These keys comprise a CALL key 132, a HANG UP key 134, a LOCK key 136 and a SURPRISE key 138. These user command keys 130 initiate and terminate the use of the terminal 20. At the central upper portion of the panel 128, there is disposed a set of service keys generally indicated at 141 for enabling the user to initiate service functions as identifed on the keycaps. The initiation occurs by a single keypress. The service keys 141 comprise a BANK key 143, a SHOP key 145, a RESERVE key 147, an INFORM key 149, a MAIL key 151 and a SPECIAL key 153. By pressing any one of the service keys, such, for example, as the BANK key 143, the communication path P is established automaticallly from the terminal 20 through the host computer 14 to the desired bank service computer 24. After pressing the BANK key, the user is enabled to perform banking transactions. In the upper right hand portion of the panel 128, there is a row of aid keys generally indicated at 155, and below it, a row of work keys generally indicated at 157. The Aid keys comprise a BROWSE key 159, a MARK key 162, an INDEX key 164, a GUIDE key 166, and a HELP key 168. The work keys comprise a SEEK key 170, a NEXT key 172, a BACK key 174, a REPEAT key 176 and a CANCEL key 178. A full QWERTY set of keys are generally indicated at 181 and are located at the central portion of the panel 128. To the right thereof, a set of function keys are generally indicated at 183, are each labelled 0-9, together with "*" and a pound sign. They are arranged in four rows and three columns. An ACTION key 185, disposed to the right of the function keys 183, is used to enter data into the terminal 20. To the left of the QWERTY keys 181, there are disposed a set of cursor control keys 187, which enable the movement of the cursor to be controlled by the user. Disposed therebelow, are a pair of keys labelled CLEAR and ADVANCE, indicated respectively at 189 and 191. IV. GENERAL OPERATION Considering now the operation of the system 10 with reference to FIGS. 1-3, the system 10 is initially activated by pushing a power-on switch (not shown) for the terminal. Assuming now for example that the user wishes to perform a banking function, the user pushes the CALL key 132 for the terminal 20. This action causes the modem-dialer 70 to send a telephone number to the central office 45 via the telephone line 62. As a result, a telephone connection , such as the communication path P, is established between the terminal 20 and the host computer 14. By extending this connection to the host computer, it recognizes the connection and establishes an identification sequence. In this regard, the host computer 14 sends a message to the terminal 20 in the form of a session inquiry. The terminal 20 receives the session inquiry message, and then returns a message to the host computer 14 to establish the identity of the terminal. The message includes the model number, serial number, and the manufacturer's identification of the terminal. The manufacturer's identification number and the model number determine what type of terminal is requesting service. In this regard, the call could be coming from any one of a large number of the terminals. The manufacturer's identification indicates that the terminal 20 is one of the terminals associated with the videotex office 12, as contrasted to independent personal computers (not shown) requesting service of the videotex office 12. If no user password is used, the identity of the user is then associated with the particular terminal serial number when the host computer 14 performs a table lookup sequence. In this manner, the user is then logged on to the host computer 14. The user then presses the BANK key 143 (FIG. 3). This action causes the host computer 14 to receive a message from the terminal 20 and an index page is then selected. The information indicative of the index page is then sent to the terminal 20, which in turn displays on the television receiver 83 a menu or index page of banks for selection by the user. The user then pushes one of the number keys of the function keys 183 to select one of the banks identified on the index. Thereafter, the user presses the ACTION key 185 for enabling transmission of the selected number key information to the host computer. This information is transferred to the host computer 14, which in turn, establishes the selected gateway connection 22 from the host computer to the selected bank computer. The gateway connection 22 is the connection extending between the host computer 14 and the bank service computer 24. Alternatively, without the need for the use of a menu page, if desired, the host computer 14 could establish a gateway connection to a particular bank when the user simultaneously pushes the BANK key 143 and the SHIFT key, to in turn connect the host computer directly to the selected bank computer. In this regard, instead of using the index page selection technique, the host computer 14 could also establish the connection to the desired one of banks in which the user has an account. The user presses the number key; e.g. "2 or the bank name" the SHIFT key, then BANK to identify the desired one of the banks to which the user's terminal is to be connected. Once the gateway connection is established to the bank computer, the host computer 14 maintains that connection. In order to perform a disconnect function for disconnecting the gateway connection 22, the bank computer 24 sends information for the terminal to graphically present an index page, offering several selections, one of which would be a QUIT function. Once the user selects the QUIT function to indicate that the banking function is complete, the bank computer 24 sends a message to the host computer 14 for establishing a disconnect cycle of operation. As a result, the host computer 14 then disconnects the gateway connection 22. Alternatively, the gateway connection can be disconnected when the user pushes another service key, for example, the SHOP key 145. When this is done, the host computer 14 disconnects automatically, the bank gateway connection 22, and then commences the cycle of operation for the new service function. Additionally, the gateway connection between the terminal 20 and the host computer 14 is disconnected when the HANG-UP key 134 is pressed. This action immediately causes a disconnect cycle of operation to occur, and the user is not required to perform any additional operations. When the HANG UP key 134 is pressed, a message is sent from the terminal to the host computer 14 to inform it that a disconnect cycle of operation has been selected. Simultaneously, the modem-dialer 70 in the terminal 20 responds to the pressing of the HANG-UP key 134 for disconnecting the telephone connection to the host computer 14. At the same time, the host computer performs a log-off procedure, which includes posting, disconnecting the gateway, if any, and disconnecting the host computer from the telephone connection with the terminal. In general, whenever a key is pressed, two characters of information are generated by the terminal and are sent over the telephone line to the host computer. The first character is an ASCII character code. For example, the code may indicate a lower case "n". The second character is an end of text (EOT) character to indicate to the host computer to enter and to commence the function. The activation characters are treated differently from the regular characters. In this regard, in connection with the activation characters, where there is no NAPLPS protected field, all information is immediately sent to the host computer 14. The CALL key 132 does not generate two characters for the host computer, instead it generates a signal, which is used by the terminal modem. In this regard, the CALL signal initiates a cycle of operation by the modem-dialer 70, which operation includes dialing the telephone number to the closest available multiplex office for establishing the connection therethrough to the host computer 14. It should be noted that the CALL key 132 establishes an automatic dialing function, and the HANG-UP key 134 generates an automatic disconnect cycle of operation. The HANG-UP signal is in the form of two characters which are transmitted from the terminal to the host computer 14. Considering now the LOCK key 136, the LOCK feature enables the user to prevent unauthorized use of the terminal. The LOCK key feature prevents access by unauthorized users to the host computer 14 for utilization of the system 10, by pressing the LOCK key 136, and by subsequently entering a lock password by means of the keys 181 of the keyboard 128. In this regard, the terminal can be temporarily locked to deny access to the system, in the event that the user decides to leave the terminal and go elsewhere for a short period of time. Upon returning, the user can readily unlock the terminal. While the terminal is locked, another person can automatically log-on the host computer 14 by pressing the CALL key 132. However, in so doing, a page is displayed on the television receiver 83, indicating that the terminal is locked and requests the current user to decide whether or not the terminal should be unlocked. If the present user is unable to enter the correct lock password, the host computer 14 disconnects automatically. In operation, in order to lock the terminal, the LOCK key 136 is pressed to generate a two character code, which is sent to the host computer 14. The host computer, in turn, causes the terminal to display a page on the television receiver 83 requesting the user to type in a lock password, and then type it in a second time. The host computer then compares both sets of information. If the two lock passwords do compare and are thus identical, the terminal is locked The reason for requesting the lock password to be entered twice is that it is not desirable to display the password for unauthorized persons to see. By typing it twice, the host computer then can ascertain whether or not the lock password was correctly entered. Additionally, there is then no need for displaying the lock password to the user to enable the user to determine whether or not the lock password was correctly entered. If the two lock passwords do not compare, or if the user presses another key, the lock program executed by the host computer is terminated In order to unlock the terminal, the user pushes the CALL key 132, and a page is then displayed on the television receiver 83, indicating that the user has three options. The first option is to hang up by pressing the HANG UP key 134, to initiate a disconnect sequence of operation. The second option is to unlock the terminal, by entering the proper password and user identity information, which is given to the authorized user when first acquiring the terminal. The third option is to enter a different user identification number, in the event that the current user is not the user who locked the terminal. The unlocking procedure commences by a page being displayed, which requests the lock password to be entered. The lock password is then entered once, and if correctly done, the host computer 14 then displays the last page, which was previously displayed before the terminal was locked. The host computer then changes the state to an unlocked condition. In such a condition, the user is free to access the host computer by the easy access method associated with merely pressing the CALL key 132. The third option of using a different user identity information, is used where a different person, other than the subscriber, desires to use the terminal. By selecting the third option, the new user types in a different user identification number, and then this unique password. By logging-on in this manner, the new user is then charged for the videotex service, similar to a credit card telephone call. If the user password is incorrectly entered on three consecutive tries, the host computer 14 causes a special page to be displayed on the screen, indicating that the person currently operating the terminal 20 is not an authorized user, and is attempting to use the system 10 in an unauthorized manner. The host computer 14 can then disconnect from the terminal 20 in such a case. It should be noted that the terminal is not completely locked, in that the security log-on feature is available to any user. In the easy mode, the CALL key 132 is used for automatic log-on. For the secure mode, both the user password, if any, and the user identification information, must be entered, before the user has access to the host computer. When the initial call is made from the terminal 20 to the host computer 14, the terminal identification information is supplied to the host computer, which in turn stores the information in a table to enable the host computer 14 to determine whether a particular user has chosen either maximum convenience or maximum security. Therefore, the terminal identification information is permanently stored in the host computer 14. However, the lock password is changed each time, and after it is used, the host computer 14 discards the information. Should the user decide to press another key, such as the SHOP key 145 or other service key 141, during the locking procedure, the lock program in the host computer 14 is prevented from executing or is "killed". Moreover, the program control in the host computer 14 is automatically transferred to the selected service program. Considering now the other service functions, each time a service key is pressed, two characters of information (the key code) and the end of text (EOT) characters are sent to the host computer 14. Thereafter, the host computer 14 matches the key code with a table to fetch a page from the host computer memory (not shown). Information is then transferred from the host computer 14 to the terminal 20 to cause it to display the page on the television receiver 83. Considering now the MAIL, SURPRISE and LOCK keys and their associated functions, when each one of these three functions are initiated, a page of text material is transferred from the host computer 14 to the terminal 20. A program associated with the page is then given control by the host computer 14. The user then is enabled to use the program and its facilities. Pressing the SURPRISE key 138 initiates the surprise feature, which enables the receiving of a randomly generated message. In this regard, a surprise page is transferred from the host computer 14 to the terminal 20. A program associated with the page is then given control by the host computer 14. The surprise page is displayed on the television receiver, once the SURPRISE key 138 is pressed. For example, the screen may display "the joke of the day". The page of information displayed on the screen would also ask the user if the user would like to see the joke of yesterday. If so, the SURPRISE key 138 is pressed a second time. By pressing it a third time, the joke of the day before is displayed. Therefore, the sequencing of the additional displays is under the surprise program control in the host computer 14. In this manner, the surprise message can be changed in accordance with the surprise program control. The surprise program, therefore, can, if desired, be a randomly generated form of information, and can even be a random generation of numbers for display to create a humorous nonsense message. Additionally, if desired, the surprise message can indicate that a special mail message is available by pressing the MAIL key 151. Alternatively, the surprise program can provide a special message associated with the previous page of text displayed on the television screen. In this regard, for example, if the user had previously been performing a SHOP key function, the surprise program would cause a page to be retrieved from the host computer 14 concerning shopping information, such as special items on sale. The surprise program counts the number of times the SURPRISE key is pressed, so that a different page of text can be displayed each time the SURPRISE key is pressed. When the MAIL key 151 is pressed, the host computer 14 sends a page of text to the terminal 20, and the page of text is displayed on the television receiver. The CANCEL key 178, when pressed, interrupts the execution of a program including the flushing of all enroute page transmissions, or terminate page reception. In this manner, the user can make corrections. The ACTION key 185 causes the generation of a two character message which is sent to the host computer 14 indicating that the host computer is to respond to the previously sent information. The HELP key 168, when pressed, causes the transferring of a page of helpful information from the host computer 14 to the terminal 20 or, so that the terminal 20 can cause the display of the last page. The helpful page is associated with the previously displayed page of text and contains explanations about the information contained in the previous page. For example, if the previous page requested the subscriber to enter the "SSN" information, and the user does not know what the term "SSN" means, the user presses the HELP key to display the help page. The help page then defines the terms on the previous page and explains that "SSN" means "social security number". In this manner, a user is then informed as to the meaning of the words or requests, previously contained in the last page of information. The user then merely presses the HELP key 168 again, and the last page of text is returned to the television screen. In the system of the present invention, each page of text has an associated help page. However, in certain types of pages, for example, menu or index pages, a generic help page is displayed to inform the user how to interact with the terminal 20 in regard to the last page of text displayed. In order to return to the last page of text displayed, the HELP key 168 is pressed. Alternatively, the BACK key 174 is pushed, and the preceeding page of text is then displayed. When the GUIDE key 166 is pushed, the subscriber is enabled to retrieve a display of information, which display of information is useful to render user guidance in facilitating the operation of the videotex system 10. For example, the guide page is used to explain how to use the terminal 20. The guide page varies for different users. Each user may have a different manner of using his or her terminal. For example, one user may have the convenient mode of operation, whereas another user may have the maximum security mode of access. The guide pages are, therefore, associated with individual types of terminals and terminal users. In operation, when the user presses the GUIDE key 166, a two character message is sent to the host computer 14, which in turn matches the key code signal in a table to determine a page of information to be displayed. The host computer 14 then returns a message to the terminal 20 and instructs the terminal 20 to display the guide page. Thereafter, once the user has completed the use of the guide page, the user then presses either the NEXT key 172, BACK key 174 or the GUIDE key 166. In this regard, the succeeding, preceeding or the page which was displayed immediately prior to pressing the GUIDE key, respectively is then displayed on the television screen. The INDEX key 164, when pressed, causes the last index page to be displayed. The MARK function is started by pressing the MARK key 162. The mark function is similar to a bookmark, in that the user can later retrieve the same page of information as previously viewed on the television screen. In order to mark a page, a coined name, such as "WEATHER" is typed into the terminal 20 for identifying the page. This is a reference operation. Once the name is typed in, the MARK key is pressed. These actions cause the host computer 14 to store the name in the user's personal table in the host computer memory (not shown). The page address information is stored next to the stored name information to provide an indirect reference. In the system 10, only ten pages may be stored, and if an eleventh page is attempted to be stored, a message is displayed on the television screen requesting the user to delete one of the previous pages. A mark key 162 may be used to bookmark a page, it should be understood that the marked page is not stored in the host memory, but instead, a mark is stored in an appropriate table indicating which page is to be called up at a later date, upon request. In this manner, the desired page may be updated at a later date. In this manner, when the user requests the marked page, the page which is displayed on the television screen is the updated page. Moreover, it should be noted that in order to access a particular service, such as a weather report, the user presses the INFORM key 149, to cause the display of a weather index or menu. The user must then select a particular city to determine the present weather report. If the user has previously marked such a page, all of these operations can be eliminated by merely typing in the word "WEATHER" and pushing the MARK key 162. The weather report for the selected city is then displayed on the television screen. When a question mark key 201 and then the MARK key 162 is pressed, a question mark page is displayed on the screen to illustrate a list of all the names of marks previously stored. In this manner, should the user forget which mark names are stored, the user merely presses the question mark key 201 and MARK key 162 to display the question mark page to refresh the memory of the user. Where the BROWSE key 159 is pressed, a series of pages are sequentially displayed concerning a particular subject. In this regard, since the pages for the system 10 are arranged in a tree configuration, each level of the tree can be sequentially displayed by use of the BROWSE key. Once this feature is activated, the pages may be "turned" each time the BROWSE key is pressed. Alternatively, the pages can be turned automatically at a predetermined rate, such as at a rate of once every thirty seconds, or at a desired subscriber rate. The automatic browse feature is initiated by first pressing a rate key such as the S key 203 and then the BROWSE key 159. The pressing of the S key 203, indicates the word "slow" for speed, and a timer rate may also be stated, such as "5" then browse to turn pages at a 5 second rate. Once the BROWSE key 159 is pressed, each one of the index pages for each one of the services is displayed sequentially. Once the desired index page is displayed, such as, for example, the bank index page, the user can then cause the display of additional index pages by making an appropriate selection. The choice made by the user causes an index page to be displayed at a lower level of the tree of pages. As an example, the user may select a shop index, and then decide that the user is not interested in shopping and would like to review the other possible services, which are available. The BROWSE key 159 is then pressed, and then the other shop index pages are displayed sequentially. The bank index is then displayed, followed by the information index and so on. The entire number of indices are displayed sequentially, each time the BROWSE key 159 is pressed. Once the user decides to proceed with any given service, such as the bank service, the user then makes a selection as indicated on the bank index page to decide which bank is to be selected. For example, the First National Bank may be selected, and if so, the First National Bank index page would then be displayed. Assuming that the user decides that another bank would be more suitable after the First National Bank index page is displayed, the BROWSE key 159 can then be pressed by the user, and the next bank index page would be displayed. Thereafter, each and every bank index page could be displayed, by repeatedly pressing the BROWSE key 159. In the videotex system 10 there are several index pages which are relational pages. In this regard, unlike an ordinary index page where a choice or selection made by the user results in the display of a single page, a relational index page enables a series of pages to be displayed on the screen, each one of which is related to the original choice made by the user. Once the user enters his or her choice, that choice is communicated to the host computer 14 and stored in appropriate memory therein. Thereafter, an appropriate page is displayed on the television screen. If that page is not acceptable to the user, or alternatively, if the user would like to see additional pages related to that same choice or selection, the user presses the NEXT key 172, and another page bearing information concerning the same interest as expressed in the initial choice, is then displayed. This process is repeated as long as there is a link to another page having the same interest or choice designation as originally stored. After the last relational index page is displayed, a page is displayed, indicating that there are no additional pages relating to the user's chosen interest. By pressing the NEXT key 172, the original relational index page is displayed. In this manner, the user can then choose another interest to gain access to all pages relating to that interest. By pressing the REPEAT key 176, the same page is then retransmitted displayed by the television screen. In this regard, the REPEAT key is pressed, whenever it is desirable to have a better copy of the page displayed. This is accomplished by causing the host computer 14 to send the same page to the terminal 20 so that another copy of the same page can be displayed. The service keys 141 comprise the BANK 143, the SHOP key 145, the RESERVE key 147, the INFORM key 149, the MAIL key 151 and the SPECIAL key 153. The BANK key 143 enables a gateway to be established to the bank computer such as the service computer 24, for enabling the user to perform banking functions. Similarly, the SHOP key 145 can be pressed by the user to enable a gateway to be established to a particular shop computer. In this regard, the user is able to do his or her shopping by communicating directly with the store's computer. The RESERVE key can be pressed to cause information to be displayed on the television screen concerning the making of reservations for airplanes, theatrical events, or the like. By pressing the INFORM key, news, sports or other information can be displayed on the television screen. In this regard, there is no limit on the number of pages of information that can be displayed. The SPECIAL key is used to initiate a display of information of a miscellaneous nature. In this regard, private data bases may be accessed for additional charges. For example, up to-the-minute stock reports could be presented for an additional monthly charge. The ADVANCE key 191 is used to cause the user input cursor to move to the next NAPLPS unprotected field displayed on the television screen. By pressing the SHIFT key simultaneously with the ADVANCE key, the cursor moves to the previous field as displayed on the televison screen. The function keys 183 can either be used alone, or can be used in combination with the NAPLPS macro information loaded into the terminal memory for each key. When the SHIFT key is used, in combination with the functions keys, the associated NAPLPS macro is activated. When the CALL key 132 is touched followed by touching the ACTION key, an auto-dialing sequence is initiated for connection from terminal to the host computer 14. Alternatively, the user may touch the CALL key 132, then type in a phone number and press the ACTION key, which initiates dialing. Once connection is established with the videotex office, the log-on sequence is started, and a service inquiry is sent to the terminal. The terminal 20 responds by sending its internally stored ID number to the host computer. When pressed, the HANG UP key 134 causes the sending of a "disconnect" code to the host computer, invoking the log-off sequence. The time of log-off is stored for billing. The SEEK key 170, when preceded by a keyword, invokes the keyword search program. If there is only one page with the given keyword, the user is shown that page. If there is more than one, an index page is generated with the available choices displayed. This index page is not stored on the index or back stack. Touching the SEEK key with no preceding keyword causes the index page generated by the previous SEEK operation to be re-displayed. If no SEEK operation had been previously executed, no action occurs. The GUIDE key 166 displays the system guidebook--an explanation of the keys, functions, services and the system, in general. Pressing the key a second time causes the return of the user to the page where he or she was viewing prior to entering the GUIDE operation. Touching the NEXT key 172 causes the display of the next page of a sequence, following a link on the present page. If no link is defined, as may be the case on an index page (where there may only be choices), a message appears on line 20 of the screen, stating that NEXT is an invalid choice. If the link is defined, but the page does not exist, a message appears on line 20, and a message is sent to the production staff informing them of the missing page and of the page with the bad link. Each user's sequence is maintained in a stack of page addresses. When a user touched the BACK key 174, the page previously displayed is shown with the exception of service program pages, overlay pages and generated keyword index pages. The GUIDE and HELP functions have associated therewith, an individual corresponding separate stack for this purpose. The BACK key 174 can be used successively until the stack, which is 63 pages long, is depleted. At that time, the last page is re-displayed, along with an explanatory message on line 20. To the user, the BACK key is the easiest way to recover from an error of pressing the wrong key. Alphabetic characters, number 0-9 and punctuation marks are used for choices or data entry. They do not have associated functions. The normal appearance of the alpha keys 181 is lower case. As in a typewriter, shift, by either pressing the left shift key 182 or the right shift key 184, with a letter displays upper case, or the upper key cap symbol. When used for choices or page selection, upper and lower case letters are treated the same. To obtain the special functions F1-F10, the 1-10 numeric keys 183 are shifted. The special functions F1-F10 are not yet specified. These function keys are directly related to the NAPLPS Macros M0-M9. The Macros are capable of transmitting information to the host computer 14 or causing a specific picture to be drawn on the screen. For example; answers to a quiz could be "hidden" from the user by sending them to the terminal using the same color for the text as the background color. Touching one of the special function keys can cause a macro to be executed which can change the color of the text and thus reveal the answers. V. SPECIFIC OPERATION As illustrated in FIG. 3B, the information in a database is organized in the conventional hierarchical manner starting with a main index, or menu, page 301. If, for example, the subject treated in a particular area of the database is services available by means of the present videotex system, the main index 301 would list such services as banking, shopping, travel reservations, electronic mail and the like. The user would call up this main index page 301, review the choices presented thereby, and press an appropriate key to select one of them. Depending upon which one is selected, the host computer then fetches one of the subsidiary index pages coming next in the hierarchical data structure, such as a bank index page 302, a shop index page 303, a reserve index page 304, a mail index page 305 or the like. Note that each of these possible search paths is illustrated by an arrow marked with a letter N to indicate that it represents a normal vertical search path extending down through the successive levels of the hierarchical data structure. Each of these subsidiary indices 302-305 represents an alternative branching of the possible data paths through the database. Moreover each of the subsidiary indices 302-305 itself represents a further branching point at which another choice must be made between another set of alternative paths. Hence the overall data structure, comprising all possible vertical paths extending down through successively lower levels of the database, takes on the appearance of an inverted tree, with branches coming off a common trunk, each branch further subdividing into twigs, and so on. For simplicity, only the branch represented by the shop index page 303 is followed in FIG. 3B. That page, when displayed on the video screen of the terminal, offers a further choice of types of products for which, and stores in which, to shop, i.e. cars, department stores, electrical equipment and the like. Depending upon which of these is selected, the host computer responds by transmitting a lower level index or menu page for the selected product or store category, i.e. a cars index page 306, a department store index page 307, an electrical equipment index page 308 or the like. Again pursuing just one of these alternatives for the sake of simplicity, if the department store category is selected the host computer responds by transmitting the department store index page 307 to the terminal for display on the video screen. This page presents still another range of options for proceeding to the next lower level of the hierarchical data structure via one of several alternative vertical paths. The options here are various specific stores within the department store category, i.e. store X, store Y, store Z and the like. Depending upon which one is chosen, the host computer responds by transmitting a still lower level index page, i.e. individual index pages 309-311 and the like relating specifically to the products available in stores X, Y and Z respectively. Following, once again, just one of the possible choices, store Y, when that store is selected the host computer responds by transmitting its individual index page 310. That page in turn presents still another range of choices representing the different types of products available in store Y, such as sporting goods, clothing, furniture and the like. Choosing one of these will cause the host computer to transmit an appropriate lower level index page such as a sport department index page 312, a clothing department index page 313, a furniture department index page 314 or the like. Assuming that the sport department is chosen, the host computer will respond by transmitting the appropriate index page 312. Following just that possibility a step further, said page presents the user with still another choice as between specific types of sporting goods such as baseball bats, balls, catcher's masks, and the like. These choices in turn each call for their own individual index pages such as a bats index page 315, a balls index page 316, a masks index page 317 or the like. In the same manner as has already been described, each of these choices will cause the host computer to transmit still another page offering information as to the various brands of bats, balls, masks and the like which are available in the sporting goods department of store Y. After another such choice is made, the host computer may then display still another subsidiary level index page offering a choice among various different models and prices offered by each manufacturer, and from this index page the user may then choose a purchase. Note that all paths described so far are normal vertical paths, designated N, descending through the successive levels of the hierarchical data structure. These paths are inefficient if used by someone who does not have a particular objective in mind such as the purchase of a Louisville Slugger brand of baseball bat, but who prefers instead to browse through the available alternatives to see what is available in a number of different branches of the data tree at any given level of the hierarchy, before coming to any specific purchase decisions. Such a user, for example, may wish to survey the entire third level of the database (index pages 306-308) in a cursory fashion before deciding whether to investigate baseball bats or Chevrolet sedans more closely. Such a "browsing" path requires the user to move horizontally between two parallel branches. Until now, such horizontal movement could have been accomplished only by first returning back up the inverted tree structure to the first common branching point between those two branches. In some cases it might even be necessary first to move all the way back up to the trunk. To be truly convenient, a BROWSE facility requires the ability to move horizontally through the data structure in a direct fashion; i.e. it requires the ability to jump from branch to branch at any given level without first retracing ones steps back up the hierarchy to the trunk or to some intermediate branching point. In accordance with the present invention, the system has the capability of proceeding horizontally across any level of the data structure as indicated by the arrows labeled B (for browse). When the user wishes to browse in this manner, he or she simply uses the Browse key on the terminal instead of the Next key. The Next key instructs the host computer to transmit the next page in numerical order of page number, and results in vertical moves such as those illustrated by arrows N down through the data structure. But the Browse key instructs the host computer to move horizontally across the data structure, as indicated by arrows B, at whatever vertical level of the structure was reached prior to actuating the Browse key. Thus, a user who is currently viewing the index page 302 for banking will be able, by means of the Browse key, to view the shopping, reservations etc. index pages 303, 304, etc. next in succession. It is not necessary first to return to index page 301 and then descend to pages 303, 304, etc. Moves within the data structure are not confined simply to the vertical direction. The manner in which this is accomplished is indicated in FIG. 3C. There it is seen that each page of the database is given a page number, and the page numbers run in numerical order. In addition, each page includes as part of its information two subsequent page numbers, a Next page number and a Browse page number. For each page in the database, the Next page number is the number of the page which the host computer will transmit next when the Next key is actuated, and the Browse page number is the number of the page which the host computer will transmit next when the BROWSE key actuated. The next page numbers are in numerical order, while the Browse page numbers in general are not. A collection of program flow charts is presented in FIG. 3A. In the illustrated example, page number 1 in the database contains information 318 which is displayed on the video screen when page number 1 is transmitted to the terminal. It also contains information 319 designating page number 2 as the page to jump to when page number 1 is currently being transmitted and the user presses the Next key, and pointer data 320 pointing to page number 3, not number 2, as the next page to jump to when page 1 is currently being transmitted and the user presses the Browse key. Similarly, page number 3 contains information 318 which is displayed on the video screen when page number 3 is transmitted to the terminal, plus information 319 designating page number 4 as the page to jump to when page number 3 is currently being transmitted and the user presses the Next key, and pointer data 320 pointing to page number 10, not page number 5, as the next page to jump to when page number 3 is currently being transmitted and the user presses the Browse key. In general the Next page and Browse page numbers are not the same, but there are special exceptions, such as page number 10 in the database, which for the purposes of illustration is assumed to be the last page in a sequence starting with page 1. Page number 10 contains information 318 which is displayed on the video screen when page 10 is transmitted to the terminal. It also contains information 319 designating page 1 as the page to jump to when page 10 is currently being transmitted and the user presses the Next key, so that the page sequence "wraps around" and returns to its starting point. For the same reason, it also contains pointer data 320 pointing to page 1 as the next page to jump to when page 10 is currently being transmitted and the user presses the Browse key. In each case, the Next pointer points to the next vertical page number in the tree structure of FIG. 3B, while the Browse pointer 320 points to the next horizontal page in the tree structure. Thus the user now has the option, at each location in the database, of moving either vertically by actuating the Next key or horizontally by actuating the Browse key on the terminal. Thus the user has great flexibility in searching, since he or she can either proceed in the conventional direct manner or else drift across the conventional search paths until coming to a place that seems to call for a resumption of the other approach. Sometimes the user may wish to browse for a considerable period of time, in which case it may become tiresome to have to keep pressing the Browse key whenever another page is desired. Therefore the host computer is programmed (see the program listing in Appendix A) so that when the user employs the alphanumeric keys of the terminal to enter an alphanumeric browse speed instruction, followed by just a single actuation of the Browse key, the host computer will then automatically send an uninterrupted series of pages in the Browse sequence at the requested repetition rate until any other activation key is pressed, whereupon the host computer will then cease sending any further pages until a further Browse key or Next key actuation. It will now be appreciated that the Browse feature greatly enhances the ease with which which a system of the present kind may be employed to obtain services or locate information. VI TERMINAL FIRMWARE Presentation videotex level features Screen resolution is 256 horizontal pixels by 200 vertical pixels (PLPS display area). A status line positioned below the unit-coordinate display area is provided for keyboard echo when the terminal 20 has no unprotected fields and local echo is in effect. The host computer 14 is not allowed to write into or affect the Status Line. The color of the border surrounding the PLPS unit display area is black (blanked beam). The terminal 20 employs a 16 by 9 bit color map for selection of 16 concurrent colors from a total of 512 possible colors. Blinking is performed by color map manipulation. Blink is implemented in color modes 1 and 2 only. The terminal 20 operates in a 7 or 8 bit NAPLPS environment. The host computer 14 initializes the terminal 20 for the 8-bit environment. A memory pool of 4 K-bytes is available for allocation to the support of DRCS, macro-PDIs, unprotected fields, and other memory intensive functions. The worst case DRCS storage requirements are computed by the following formula: w*h/8 bytes where w=width and h=height of the character cell size, and where h and w units are pixel counts for a screen resolution of 200.times.256. A contiguous RAM area of 16 K-bytes are available for telesoftware usage (code and data). NAPLPS Standard Conformance The terminal 20 provides the level of funtionality defined by the "General Service Reference Model (SRM) for Videotex," Appendix B of an ANSI X3L2.1 document, entitled "Videotex/Teletext Presentation Level Protocol Syntax (North American PLPS)," published Draft Proposed American National Standard, Oct. 1, 1982. Both functionality and specific implementation parameters are defined in that appendix. On power-up, NAPLPS attributes default as specified in Table 30 of that same reference. The terminal 20 accepts NAPLPS data encoding generated by conventional AT&T Frame Creation Terminal (FCT) (not shown). Any data base from a gateway system 10 is converted by the system 10 to conform to the foregoing standards. Telesoftware Requirements Downloaded software from the host computer 24 is supported in a manner as hereinbelow described. In this mode of operation, integrity of the terminal 20 can not be guaranteed, since the downloaded code can inadvertently destroy the PLPS RAM environment. According to the encoding scheme, the downloaded software is coded in absolute machine language, corresponding to the microprocessor 81 for the decoder 69. This software is transmitted from the host computer 14 in 8-bit binary format, to minimize transmission time. With reference to the callable firmware services, the downloaded code has the facility to read the keyboard 71, write to the television screen via the PLPS protocol, read or write the non-volatile memory 114, auto dial and disconnect, communicate with the host computer 14, and make use of a timing facility. Concerning hardware access, downloaded code has access to video memory, the color memory map, and the microprocessor bus extender. The bus extender provides the address, data, control, and status signals necessary to support external memory expansion (not shown), and/or a peripheral controller (not shown). No hardware write protect of the non-volatile memory 114 is implemented. ROM firmware called from telesoftware does not allow the terminal 20 ID field to be altered. If necessary, writing the terminal 20 ID (after the first time) is done via telesoftware, by accessing the non-volatile memory 114, without the assistance of firmware. Operational Features The following operational descriptions of the keyboard/display features are not addressed by the foregoing referenced NAPLPS document. Pre-Connect Operation After power up and prior to the call completion, the terminal 20 progresses through the following stages: Power up check Call setup Call progression. Throughout the pre-connect phase (excluding the power-on check), all keyboard entry appears in the status line. Function key depressions are displayed as the ASCII code equivalents, e.g. LOCK="A". Cursor positioning keys (e.g. HOME, ADVANCE, ARROW keys) cause responses as described in status line editing, as hereinafter described in greater detail. Power Up Check The terminal 20 automatically clears the screen, and then performs a short validation check, not to exceed four seconds in duration. A status message is displayed in the event of failure only. Refer to the operational messages description. A status line (with local echo) is provided for the user (after the power-up check) to verify remote keyboard operation. Any key pressed during this stage is not transmitted to the network, but is displayed in the status line. Call Set Up A total of 512 bytes for screen display, keyboard processing, and program logic, are available for the Logo/Call Advice display (excluding the auto-dial logic). Depression of the CALL key 132 results in a display that prompts the user for auto dial or manual dial options. Depression of the CALL key is ignored during a call sequence in process, or if a host connection exists. The selection of the manual dial option is determined by the presence of keyboard-entered numbers into the status line, otherwise the presorted auto dial sequence is initiated. The call is initiated at the depression of the ACTION key. Auto Dial Operation The depression of the CALL key 132 clears the status line, displays the call setup page, displays the first telephone number stored in the non-volatile memory 114, and displays "ACTION DIALS THE NUMBER" below the telephone number on the television receiver 83. Depression of the CALL key 132 is ignored during a call sequence in process, or if a host connection exists; and depressing the shift key and the CALL key 132 resets the terminal to the power up check and repeats the call set up sequence. The depression of the ACTION key 185 initiates the dial process. Next, the call progression sequence, as hereinafter described, is performed. If the call connect or host connect (terminal does not receive a message from the host) fails, the next sequential telephone number stored in non-volatile memory 114 is accessed and the dialing process is repeated. If all access numbers have been exhausted, the treminal enters a quiescent state (the screen is blanked, and the power-on page is displayed). The depression of the HANG UP key 134 terminates the current dialed number, and forces the access of the next telephone number. If there is no next number, the terminal enters a quiescent state (the screen is blanked and the power-on page is displayed). Manual Dial Operation The depression of the CALL key 132 clears the status line, displays the call setup page, displays the first telephone number stored in the non-volatile memory, and displays "ACTION DIALS THE NUMBER" below the telephone number. The depression of the CALL key is ignored during a call sequence in process, or if a host connection exists. The number to be dialed is typed from the keyboard and displayed on the status line. The CANCEL key 178 can be used to erase these characters if auto dial is desired. Upon depression of the ACTION key 185, the keyboard-entered number is displayed below the word "DIALING" as the digits are dialed. Next, the call progression sequence, as hereinafter described, is performed. If the call connect or host connect (terminal does not receive a message from the host) fails, the terminal enters a quiescent state (the screen is blanked, and the power-on page is displayed). The depression of the HANG UP key terminates the dialing activity, and then the terminal enters a quiescent state (the screen is blanked and the power-on page is displayed). The "-" key is interpreted as a pause so that telephone switching access delays can be specified. The terminal does not validate keyboard characters or the number of characters as the number is being dialed. Non-numeric characters (except -,*,#) are not dialed. Call Progression The depression of the ACTION key 185 initiates the dial process, displays the word "DIALING", overlaying "ACTION DIALS THE NUMBER" and displays the digits underneath the word "DIALING" as they are dialed. An approximate two second delay follows an off-hook condition (for assumed dial tone) for each telephone number attempted. Following the dial process, the word "WAITING" overlays the word "DIALING". If, however, carrier is not detected within about 20 seconds , the terminal proceeds with the appropriate auto or manual dial process. If carrier is detected, the screen is blanked and the terminal is reset to SRM default attributes. Each digit of the number is also displayed as it is dialed (nonvolatile memory code of "E" is displayed as "-"). Depression of the HANG UP key 134 aborts the current dialing sequence. For pulse code dialing, the lowest standard speed option (10 pulses per second) is used to accomodate all local telephone company switch hardware. Session Connect Upon recognition of carrier tone, the terminal expects to receive a (any) message from the host prior to the terminal transmitting any message to the host. Otherwise, the terminal initiates a disconnect procedure following a delay of about ten seconds, and enters a quiescent state, whereby the screen is blanked and the power-on page is displayed. Host-Interactive Operation After successful dial operation, the host-to-terminal interaction depends on the presence or absence of unprotected fields and session echo-control commands. For a fully protected display image on the terminal (no unprotected fields defined), two types of keyboard character echos are possible: Remote Echo (host-echoed), and Local Echo (terminal echoed). In both cases, characters are transmitted to the host computer 14, as the keys are pressed. Remote Echo An "echo" means that input characters are displayed by the terminal. The default state (immediately after successful connection to host) is one of remote echo. The keyboard characters are not displayed on the terminal until the host returns the character to the terminal. The host computer 14 has complete control of the display position (within the PLPS display area--for these characters. Any characters typed after call connection are sent (without local echo) to the network. Local Echo (Status Line) When a fully protected display image (no PLPS unprotected fields) and a session "local echo" command are in effect, the keyboard characters are automatically echoed by the terminal on a status line, which is positioned below the PLPS display area. Each character is also transmitted to the host computer 14 at the time a key is pressed. Note that the host computer 14 does not have write access to this display line. Status Line Editing The terminal (not the user) positions the cursor into the status line when the conditions specified in the preceding Local Echo section, are met. A limited editing capability is provided as follows: (1) RETURN key depression clears the status line and causes the cursor to move to column one of the status line. (2) When the 40th display is exceeded, the status line is cleared, and the cursor is moved to column one. (3) Activation key depressions cause the status line to be cleared. The next character is then placed column one. (4) The ARROW cursor keys 187 (excluding up and down) are used for non-destructive left and right positioning. HOME non-destructively position the cursor to column 1 and the ADVANCE key is ignored. Status Line Attributes The length of the displayable status line field is fixed at 40 characters. All attributes are fixed, i.e., not modifiable by the host computer 14 or telesoftware. Alphanumeric characters are drawn using 6.times.10 dot matrix, nominal white outline with nominal black background, and normal intercharacter spacing. Whenever the 40th display position is exceeded, or when the RETURN key is pressed, the terminal transmits a return (1/13) and EOT (0/4) to the host computer 14. This enables the host computer 14 to scroll the status line into the PLPS display area. The EOT (end of text) character is transmitted following all activation characters. Forms-Entry Operation When one or more unprotected fields appear on the screen, the terminal reverts to a "forms entry mode", in which keyboard characters are echoed internally on an unprotected field, and buffered internally. Data entry and editing are performed via the terminal without host interaction. Unprotected Field Editing Cursor positioning for entry and editing within the unprotected fields shall be constrained as follows: (1) The cursor is not allowed to move into any protected region. Depression of the HOME key places the cursor in the upper left corner of the current field. The RETURN key causes the cursor to move to the leftmost position of the next line down (if possible), within the current field. (2) The cursor is movable within a field in all eight directions via the cursor-arrow keys. For a diagonal cursor key, movement continues until one of the four corners of the field is hit: i.e., a right diagonal cursor key causes cursor movement until the cursor is positioned in the upper right corner of the field. (3) The cursor remains at the boundary of a field, if an attempt is made to move the cursor beyond that field via the cursor-arrow keys. Audible feedback (error beep) is generated when keyboard action attempts to move the cursor across a boundary. This includes the case of the cursor movement along a boundary when a diagonal arrow key follows the positive feedback that indicates correct keyboard character reception. (4) Movement between the fields occurs in a sequential order, either one field forward or backward. The function key, ADVANCE, moves the cursor to the last vacated position of the next field. The shifted function key, ADVANCE, moves the cursor to the last vacated position of the previous field. Wraparound occurs between the top and bottom fields of the screen. Unprotected Field Attributes Upon definition of an unprotected field, the text size and color atributes are fixed. Additional attribute handling is described in Appendix B, "A General Service Reference Model (SRM) for Videotex," paragraph 11.1, of the foregoing referenced NAPLPS document. Unprotected Field Transmission As defined in the NAPLPS document, the contents of all unprotected fields are transmitted to the host computer 14 upon depression of a special key. For the terminal, this "send" key has been labelled ACTION. Telesoftware Operation Downloaded software is responsible for reading and for interpreting data coming from the keyboard and communications line. Output from telesoftware may be directed to either the PLPS process or to the communication line. Output from PLPS can be directed to telesoftware (e.g., for possible encryption) or directed to the communication line. Refer to the routing diagram. Telesoftware is downloaded and activated by session conmmands. Telesoftware can drive the display by passing PLPS data into the PLPS firmware or by storing directly into video memory and the color map memory. After a host disconnect function is requested by telesoftware, the terminal permits telesoftware to continue in operation. Accessing of nonvolatile memory is accomplished via telesoftware only. Terminal firmware does not honor write requests from telesoftware that point to the terminal ID field. If this field must be changed, telesoftware performs th operation itself. Add-on memory or controllers attached to the Bus Extender are accessed via standard 8088 memory-accessing instructions. Downloading into external add-on RAM memory (not shown) must be accomplished with a downloaded telesoftware task (resident in the internal RAM partition) that relays host data into external RAM memory. Operational Messages After a successful power up check, the power-on page is displayed. If a failure is detected, a message is displayed (if possible) and the power-on page is not displayed. Message text: "Terminal Test Failed, Call KEYFAX" centered on the screen. The call then progresses according to the foregoing description under the foregoing Call Progression section. In a call waiting situation, a message is displayed upon loss of carrier for a period of time greater than 250 and less than 2250 milliseconds. Message Text: Blinking "CALL WAITING" centered on 20th line. Connectivity Controls Nonvolatile memory (256 bytes) is available for the following items. (1) Terminal identity comprised of manufacturer ID, Model number, and Serial Number. (Factory programmed - Write protected via terminal firmware, changeable if directly accessed by telesoftware). (2) First Use telephone number (factory programmed - changeable by telesoftware), (3) Log-on data stream (downloadable from Host) according to the host computer operating system log-on parameters. (4) Service Usage attributes (downloadable from Host). (5) The remainder of the storage area is available for a list of telephone numbers for auto dialer (including tone/pulse flag) (Downloadable from Host). Keyboard Functions (Terminal Responses Only) The appropriate terminal responses are summarized below. When telesoftware is executing, it must read and interpret all keys. The command keys are summarized as follows: (1) CALL--Prepares the terminal for manual or autodial sequence. Clears the Status Line and causes first access telephone number from nonvolatile memory to be displayed in PLPS area. The key is ignored if the terminal is not in a quiescent state. (2) HANG UP--Cancels dial operation for the current telephone number during Pre-Connect Operation. Key code and EOT are transmitted to host followed by an on-hook condition without disturbing the in-process operations of the terminal. (3) LOCK--Transmitted to the host only. (4) SURPRISE--Transmitted to the host only. The service keys are summarized, as follows: (1) BANK--Transmitted to host only. (2) SHOP--Transmitted to host only. (3) RESERVE--Transmitted to host only. (4) INFORM--Transmitted to host only. (5) MAIL--Transmitted to host only. (6) SPECIAL--Transmitted to host only. The aid keys are summarized as follows: (1) BROWSE--Transmitted to host only. (2) MARK--Transmitted to host only. (3) INDEX--Transmitted to host only. (4) GUIDE--Transmitted to host only. (5) HELP--Transmitted to host only. The work keys are summarized as follows: (1) SEEK--Transmitted to host only. (2) NEXT--Transmitted to host only. (3) BACK--Transmitted to host only. (4) REPEAT--Transmitted to host only. (5) CANCEL--Clears status line only in pre-connect operation, otherwise transmitted to host. The special function keys are summarized as follows: (1) ACTION For call sequence, this key initiates dial operation and does not transmit anything to the host computer. For forms entry, it initiates terminal-to-host transmission of unprotected fields. For other modes, the terminal treats it like any other activation key. The action character followed by the EOT character is transmitted to the host. Note that the ACTION/EOT sequence is appended to the end of the unprotected field message. (2) RETURN This key causes the performance of a new line function in unprotected field or status line. The return character followed by the EOT character is transmitted to the host computer, if entered in the status line. (3) HOME For forms entry or status line editing, this key controls cursor positioning. (4) ADVANCE For forms entry. this key controls cursor positioning. (5) The ARROWS For forms entry or status line editing, these keys control cursor positioning. The ALPHA keys normal unshifted appearance are lower case. Shift plus a letter displays upper case. Shift also displays the top character on the punctuation key caps. Concerning the numeric keys, unshifted is the normal position. A shifted number key (F1-F10) is an activation key, only if its associated NAPLPS macro, M0-M9, is undefined. If a macro is defined, the associated macro is invoked, i.e., F1=Macro 0 and F10=Macro 9. Remote Test Remote testing is accomplished by a program, which is downloaded from the host computer using the telesoftware capability. Communication Protocol Requirements The following is a characterization of the protocol to be followed in communicating data between the host computer and the terminal. Considering the Data Link Layer (Level 2), data is transmitted and received using the following asynchronous character formats:
______________________________________
S8 MOD S7 MODE
______________________________________
1 start bit 1 start bit
8 data bits 7 data bits
1 stop bit 8th bit = 0 (no parity)
1 stop bit
______________________________________
Note that eight bits are necessary to support pages created on an AT&T Frame Creation Terminal (FCT) and telesoftware. Concerning Flow Control, single control codes (Xon/Xoff) are sent to the host computer to start or stop the flow of data from the host to the terminal. The terminal also responds to Xon/Xoff transmitted by the host computer. Concerning binary transparency, a method of distinguishing random binary sequences from control codes, is provided. This feature allows transmission of binary data to and from the host computer and is especially useful for telesoftware downloading. Concerning Error Detection/Correction, host-to-terminal data integrity is accomplished at the link level and is enabled or disabled by the host computer via session command. Terminal-to-host data integrity is the responsibility of downloaded telesoftware. The process required to generate the 2-byte checksum, is described in a publication, entitled "An Arithmetic Checksum for Serial Transmission," by John G. Fletcher, published in IEEE Transactions on Communications, Volume Com-30, No. 1, January 1982. Network layer (level 3) and Transport layer (level 4) session protocols need not be implemented. The session layer (Level 5) is hereinafter described in greater detail. The host computer 14 has control over the terminal processing via session layer commands, which are encoded as escape sequences. Considering Presentation Entity Binding, initial communications between the host computer and the terminal occur at this level. The terminal responds to the host inquiry message with a response message that includes the terminal ID read from nonvolatile memory. Either 7 bit or 8 bit PLPS code set selection is also provided. Concerning Input Monitoring, this layer monitors all communication inputs during either PLPS or telesoftware processing. This mechanism provides host control of the terminal. Considering Error Detection/Correction Control, two session commands are provided to turn on and off the link layer data-integrity checking function. In regard to the Local Echo Control, activation of the status line when the PLPS display area is entirely protected (Post-connect default) and is controlled by the host computer via session command. Layered Definition Model The ISO layered system architecture is a seven layered assembly of interrelated protocols required to define an entire communications system, in such a way that other protocols may be substituted at various layers in order to operate over different media. The seven layers may be viewed in two major groupings. Levels 1 to 4 concern the transference of data while Levels 5 to 7 concern how the data is processed and used. The Physical Layer (Level 1) provides mechanical, electrical and procedural functions in order to establsh, maintain and release physical connections. The Data Link Layer (Level 2) provides a data transmission link across one or several physical connections. Error correction, sequencing, and flow control are performed in order to maintain integrity. The Network Layer (Level 3) provides routing, switching and network access consideration in order to make invisible to the transport layer how underlying transmission resources are utilized. The Transport Layer (Level 4) provides an end-to-end transparent virtual data circuit over one or several tandem network transmission facilities. The Session Layer (level 5) provides the means to establish a session connection and to support the orderly exchange of data and other related control functions for a particular communication service. The Presentation Layer (Level 6) provides the means to represent and interpret the information in a data coding format in a way that preserves it meaning. The detailed coding formats for the scheme described in the above references ANSI document, provide the basis of a Presentation Level Protocol for Videotex and related applications. The Presentation Level Protocol encodes text and graphic information in such a way as to enable it to be easily communicated. Independence of display or communications hardware constraints is achieved by using NAPLPS as the basis of the coding scheme. The Application Layer (Level 7) is the highest layer in the reference model and the protocols of this layer provide the actual service sought by the end user. As an example, the information retrieval service commands of a Videotex application form part of the application layer protocol. Key code Assignments (Decoder to Host Transmission) The following is a list of the codes for the information generated by the actuation of the keys on the keyboard:
______________________________________
Shifted Non-Shifted
Keycap Legend
Col. Row Col. Row Comments
______________________________________
A 4 1 6 1 A,a
B 4 2 6 2 B,b
C 4 3 6 3 C,c
D 4 4 6 4 D,d
E 4 5 6 5 E,e
F 4 6 6 6 F,f
G 4 7 6 7 G,g
H 4 8 6 8 H,h
I 4 9 6 9 I,i
J 4 10 6 10 J,j
K 4 11 6 11 K,k
L 4 12 6 12 L,l
M 4 13 6 13 M,m
N 4 14 6 14 N,n
O 4 15 6 15 O,o
P 5 0 7 0 P,p
Q 5 1 7 1 Q,q
R 5 2 7 2 R,r
S 5 3 7 3 S,s
T 5 4 7 4 T,t
U 5 5 7 5 U,u
V 5 6 7 6 V,v
W 5 7 7 7 W,w
X 5 8 7 8 X,x
Y 5 9 7 9 Y,y
Z 5 10 7 10 Z,z
F1 1 3 1 3 1 Activation when
shifted (Note 2)
F2 2 3 2 3 2 Activation when
shifted (Note 2)
F3 3 3 3 3 3 Activation when
shifted (Note 2)
F4 4 3 4 3 4 Activation when
shifted (Note 2)
F5 5 3 5 3 5 Activation when
shifted (Note 2)
F6 6 3 6 3 6 Activation when
shifted (Note 2)
F7 7 3 7 3 7 Activation when
shifted (Note 2)
F8 8 3 8 3 8 Activation when
shifted (Note 2)
F9 9 3 9 3 9 Activation when
shifted (Note 2)
F10 0 3 0 3 0 Activation when
shifted (Note 2)
* 2 10 2 10 Activation when
shifted (Note 2)
# 2 3 2 3 Activation when
shifted (Note 2)
! ? 2 1 3 15 Activation when
shifted (Note 2)
" ' 2 2 2 7 Activation when
shifted (Note 2)
______________________________________
When an activation key is pressed, the terminal sends the host an EOT (0/4) byte following the activation key code. A shifted number key (1-9,0) is an activation key as indicated above, only if its associated macro, M0-M9, is undefined. If a macro is defined, the associated macro is invoked. Keyboard-originated characters are transmitted to the host as a 7-bit code set. Activation codes are distinguished from alphabetic characters by their position as the last character prior to EOT message.
______________________________________
Keycap Shifted Non-Shifted
Legend Col. Row Col. Row Comments
______________________________________
$ 2 4 5 14
% / 2 5 2 15
& + 2 6 2 11
@ - 4 0 2 13 minus sign
( = 2 8 3 13
) -- 2 9 5 15 underscore
: ; 3 10 3 11
, 3 12 1 12
. 3 14 2 14
Shift not transmitted
Space 2 0 2 0
Return 0 13 0 13 activation when in
Status Line
Call 5 9 5 7 not transmitted
Hang Up 5 10 7 10 activation
Lock 4 1 6 1 activation
Surprise 4 2 6 2 activation
Bank 4 3 6 3 activation
Shop 4 4 6 4 activation
Reserve 4 5 6 5 activation
Inform 4 6 6 6 activation
Mail 4 7 6 7 activation
Special 4 8 6 8 activation
Browse 4 9 6 9 activation
Mark 4 10 6 10 activation
Seek 4 11 6 11 activation
Guide 4 12 6 12 activation
Help 4 13 6 13 activation
Action 4 14 6 14 activation
Next 4 15 6 15 activation
Back 5 0 7 0 activation
Repeat 5 1 7 1 activation
Cancel 5 2 7 2 activation
Index 5 3 7 3 activation
Left arrow
0 8 0 8
Right arrow
0 9 0 9
Down arrow
0 10 0 10
Up arrow 0 11 0 11
Rt. diag.
(shifted or not, sends 0/11 and 0/9)
up arrow
Rt. diag.
(shifted or not, sends 0/11 and 0/9)
down arrow
Lt. diag.
(shifted or not, sends 0/11 and 0/9)
down arrow
Lt. diag (shifted or not, sends 0/11 and 0/9)
up arrow
Home 1 14 1 14
Advance 7 11 7 13 next field
(shifted=previous)
Clear 1 2 1 2
______________________________________
Non-Volatile Memory Map Referring now to FIG. 8 there is shown the non-volatile memory map. The following information is applicable to:
______________________________________
N: One byte (at D'255, X'FF) giving the number of
access #'s present in memory.
Access #'s:
Each 12 bytes in length, encoded as 24
nybbles.
0-9 digits to dial
A *
B #
C pulse flag
D tone flag
E pause for 2.7 seconds (shown as "-" on
screen)
F filler (ignore and don't display)
Terminal ID (8 bytes, 16 nybbles)
Manufacture ID:
2 nybble
Model #: 4 nybbles
Serial #: 8 nybbles
Check Sum: 2 nybbles
______________________________________
The terminal identification number, first access telephone number, and N=1 information are initially stored in memory, prior to the use of the terminal by a user. Access telephone number btyes are read out from low to high address, and nybbles are processed, most significant first. In an autodial operation, telephone numbers are accessed in sequence and are read out from high to low address. As shown in FIG. 9, an example of the first access telephone number, 312-490-3200, is shown as stored in the EEROM nonvolatile memory and tone dialing will be employed ("D"). As shown in FIG. 10, an example of the terminal indentification number field, 01 3000 00000002 XX where XX=checksum and 3000=Model 3, is shown as stored in the EEROM memory. Link Layer Protocol The link layer code coresides with the session layer code in less than 6K bytes in the memory of 125 (FIG. 2). The purpose of the link layer protocol is to provide for data transparency and link flow control. All of the link layer commands are one byte sequences, as follows:
______________________________________
Value Mnemonic Command
______________________________________
1/1 Xon Transmit Enable
1/3 Xoff Transmit Disable
1/0 DLE Treat Next Byte as Data
1/4 DC4 Clear Input
0/4 EOT End of Link Layer Packet
______________________________________
The following is a list of the link layer functions: (1) Xon-Transmit Enable: After receiving an Xon command the transmit channel is enabled to send any data queued for transmission. (2) Xoff-Transmit Disable: Upon receiving an Xoff, the transmitted channel becomes idle after the current character has completed transmission. (3) DLE-Binary Transparency: To pass data to processes across a communications link where the data has a value between 0/0 and 1/15 inclusive, the transmitting link layer proceeds as follows: 1. Precede the character with DLE (1/0). 2. Add 2/0 to the character. Thus, the data 1/11 is transmitted as 1/0,3/11. The receiving link layer is searching for a DLE character. Upon receiving the DLE character, the process proceeds as follows: 1. Delete the DLE from the input stream. 2. If the next character lies in the range 2/0 to 3/15, subtract 2/0, otherwise do nothing to it. Thus, if a sequence 1/0, 3/11 is received, the link layer passe only 1/11 as data to the process. (3) DC4-Clear Input Upon receiving a DC4 character, all input queues, which are active, are initialized to zero. (4) EOT Character This character denotes the end of a link layer unit of data. The host computer receives this unit from a front end processor (FEP), which is not shown, in the host computer, when the FEP detects the EOT. Session Layer Protocol The session layer code coresides with the link layer code. The transmission considerations are as follows: Back channel responses at 150 baud are to be minimized. Minimal impact on PLP performance. The data protection considerations are as follows: Unspecified lengths of data may be protected. Not all data needs protection. Active processes in System to be controlled by the host computer as are follows: 1. PLPS 2. Telesoftware 3. Telesoftware Loader Session layer commands are invoked by the escape sequence ESC, 2/6, F, where F identifies the command. The value of F is 3/X, X=(0, . . . 15). The commands are listed below.
______________________________________
Value Mnemonic Parameters Command
______________________________________
3/0 SEM Session Enquiry Message
3/1 SRM (Term ID)- Session Response Message
(Class)
3/2 S7 (Process Id)
Set 7 Bit State
3/3 S8 (Process Id)
Set 8 Bit State
3/6 SFC (Frame Id) Start Frame Check
3/7 EFC (Checksum) End Frame Check
3/14 ACC (Frame Id) Accept Frame
3/15 REJ (Frame Id) Reject Frame
3/9 RLE Request Local Echo
3/10 RRE Request Remote Echo
______________________________________
Session commands, terminal to host, end with an EOT character. The sequence of establishing a session is as follows: (1) Terminal Call Sequence (1) Wait one "call waiting" period for the assumed telephone dial tone (2) Dial number (3) Establish modem interconnect (4) Send Xon to network (2) Host Initiate Session (1) Send ESC, 2/6, SEM to terminal (2) Wait for terminal response described in 3.3 (3) Terminal Receives SEM Command (1) Send ESC, 2/6, SRM, (Terminal ID), (Class), EOT to host (2) Wait for next session command from host. The terminal has the following process which may be activated from the host computer: 1. PLPS Decoder 2. Telesoftware 3. Telesoftware Loader Once a process has been activated by the host computer, it remains active until the host computer activates another process. In this way, the host computer communicates with only one process at a time. It should be noted that loading the nonvolatile memory is performed via telesoftware through a firmware interface, so that another layer of security is achieved for the autodial numbers. The host computer can activate any process by sending one of the following escape sequences. ESC, 2/6,S7, (Process Id) or ESC, 2/6,S8, (Process Id) Where process ids are: 4/1=PLPS 5/3=Telesoftware (Execute) These commands activate a seven bit process or an eight bit process respectively. The terminal intelligently switches between processes in response to host commands. The following four session commands are used to control Link Layer data integrity functions. The host defines the length of each frame to be checked. Use of these commands is hereinafter describes in connection with the telesoftware load sequence.
______________________________________
Host:
$3/6$ $byte0$ $byte1$
Start Frame Check with
Frame Id. (SCF)
$3/7$ $CSO$ $CSl$ End Frame Check with
Check sum. (EFC)
Terminal:
$3/14$ $byte0$ $byte1$ $0/4$
Accept Frame with Frame
Id. (ACC)
$3/15$ $byte0$ $byte1$ $0/4$
Reject Frame with Frame
Id. (REJ)
______________________________________
It should be noted that the terminal sets $byte0$ and $byte1$ are set to 13/14 and 10/13 respectively after transmitting an ACC, receiving a DC4 and during a power-on sequence. In hexidecimal this is $byte0$ $byte1$=DE AD. According to the preferred method, the terminal maintains a check sum during the transmission of a data frame. The length of each data frame is unspecified and is determined by the sending process. In order to initiate error checking, the host sends the session command (ESC, 2/6, SFC, $byte0$ $byte1$) followed by the data. The terminal detects this sequence, clears the sum register, and beings to accumulate the check sum with the first byte of data received. The length of a data frame is not fixed and is determined by the sending process before transmission. In order to terminate error checking, the sending sending process sends the escape sequence: ESC, 2/6, EFC, $CS0$ $CS1$. The terminal includes the escape sequence in its own check sum and compares that sum with the received check sum. If these values agree the terminal transmits a positive acknowledgement, if not, it transmits a negative acknowledgement. It should be noted that the check sum is a two-byte integer. Considering now the data frame acknowledgement, there is both a positive and negative acknowledgement. Considering the positive acknowledgement, if the check sum for a data frame is correct, the terminal sends the escape sequence: ESC, 2/6, ACC, $byte0$ $byte1$ $EOT$. This informs the host that the data frame associated with the telesoftware address was properly received. Considering the negative acknowledgement, if a data frame check sum is incorrect, the terminal sends: ESC, 2/6, REJ, $byte0 $byte1$ $EOT$. The host must insure that all data frames are received correctly. Considering now telesoftware downloading, the host transmits three session commands for telesoftware loading:
______________________________________
ESC, 2/6, S8, 5/1 =
Declare Telesoftware Address
5/2 = Load Telesoftware
5/3 = Telesoftware Execute
______________________________________
Telesoftware Load Sequence The following sequence must facilitate the downloading of telesoftware in a continuous stream of output until all message blocks have been positively acknowledged by the terminal. This implies that the host computer does not have to wait for each block to be acknowledged before transmitting the next. A positive acknowledgement may not be received by the host computer 14, (lost message) or may be received with bad checksum (also treated as a lost message), in which case the message block will be re-sent by the host computer to the terminal. The host computer 14 sends a Telesoftware Address (for subsequent load or start execution) via the following sequence:
______________________________________
ESC 2/6 S8 $Process:=T.S. Address Input$
ESC 2/6 SFC $a$ $b$
$x$ $y$ $L1$ $L2$
(Address-X(MSB) y(LSB) # of
bytes = L1 L2)
ESC 2/6 EFC $C0$ $C1$
Terminal: ACK/REJ using $a$ $b$
______________________________________
To transmit Telesoftware Data to the terminal, the following should be used: ESC 2/6 $Process=T.S. Load$ ESC 2/6 SFC $c$ $d$ $Telesoftware data$ ESC 2/6 EFC $CO$ $Cl$ Terminal: ACK/REJ using $c$ $d$ To transmit the Start Execution address $s$ $t$, the following should be used: ESC 2/6 S8 $Process:=T.S. Address Input$ ESC 2/6 SFC $e$ $f$ $s$ $t$ $don't care$ $don't care$ Terminal: ACK/REJ with $e$ $f$ To initiate Telesoftware execution, the following should be employed:
______________________________________
ESC 2/6 S8 $Process:=T.S. execute$
Note: (1) T.S. Address Input = 5/1
T.S. Load = 5/2
T.S. Execute = 5/3
(2) $$ are byte delimiters
(3) C0, C1 represent 16-bit checksum
______________________________________
Two echo control commands are provided to control the display of keyboard characters when the entire display area is protected. ESC, 2/6, RLE ESC, 2/6, RRE Considering the remote echo (PLPS State), all keyboard characters are transmitted to the host computer at the time the keys are struck. The characters are not displayed until the host computer transmits the characters back to the terminal. lf the "local echo" (Non-PLPS State) session command is in effect, the terminal displays these characters in the status line as the keys are struck. These characters are transmitted by the terminal, character by character. It should be noted that when one or more unprotected fields exist (forms entry mode) as controlled by the host computer, all keyboard characters are automatically displa | ||||||
