throbber
[19]
`United States Patent
`5,109,434
`[I 1] Patent Number:
`Apr. 28, 1992
`[451 Date of Patent:
`Hughes et a].
`
`||l|||||||l||lllllllll||||lIlllllllll||l||ll||||||||l||l|Illlllllllllllllll
`USOOS 1094mm
`
`................. .. 36-42211)
`364/900
`. . .. . .. 3642200
`340282508
`370/16
`364220.")
`. . . .. 370260
`3642200
`3702136
`3642422
`370256
`.. 3712111
`364/21]?
`
`
`
`“1987 Boultel'il'l el al.
`4.639.916
`521987 Saldm et a].
`4.665.501
`521937 House:- . . . . . . . . .
`4.669.044
`7/1937 Kelch et a1.
`..
`4.633.531
`721987 Rouse ......... ..
`4.633.563
`921987 Andreason
`4.695.946
`4.707.825 1121987 Amstutz . . . . . . .
`4.723.208
`221983 Chadimtt .... ..
`4.747.l00
`5/1933 Roach el til.
`.
`4.751.648
`62198! Sears. 111
`4.766.590
`821983 Ramada
`4.777.330 1021988 Nakayashi
`4.864.492
`921939 Biakely-Fosel ..........
`
`FOREIGN PATENT DOCUMENTS
`
`7142052
`8600733
`
`221986 Japan.
`721984 United Kingdom .............. .. 3642200
`
`OTHER PUBLICATIONS
`
`IBM Tech. Disc]. 3111., vol. 28. No. 5, Oct. 1985. pp.
`1920-1922.
`IBM Tech. Discl. Bul. vol. 27. No. 5, Oct. 1934. p.
`2853.
`Patent Abstracts of Japan. vol. 7. No. 67 (p-184).
`
`Primary Examiner—Thomas C . Lt:
`Assn-tan: Examiner—Eric Coleman
`Attorney. Agent. or Firm—Ioscelyn G. Cockburn
`
`[57]
`
`ABSTRACT
`
`Apparatus and method for defining 1/0 devices con-
`nected to terminals of a distributive data precessing
`system .and for downloading programs from a control
`computer into said terminals. A global listing containing
`identities ofall devices that can be coupled to the tenni-
`nal is prepared at each terminal. A configuration list of
`devices which are actually coupled to the terminal is
`derived from the global list. The configuration list is
`stored at
`the terminal and at
`the control computer.
`Thereafter. only programs that are required for control-
`ling the devices that are actually coupled to the terminal
`are downloaded into the terminal.
`
`0 Claims. 5 Drawing Sheets
`
`{54] SELF CONFIGURING TERMINAL WHICH
`POLLS LOOP NETWORK AND GENERATES
`LIST OF CONNECTED DEVICES FOR USE
`IN SELECTIVELY DOWNLOADING
`CONTROL PROGRAMS
`
`[75]
`
`Inventors:
`
`[73] Assignee:
`
`David E. Hughes. Raleigh; Hollis P.
`Pony. Cary. both ofN.C.
`International Business Machines
`Corporation. Amonlt. NY.
`
`[2|] App]. No.: 849.641
`
`[22] Filed:
`
`Apr. 9. 1986
`
`[51]
`
`Int. Cl.’ ...................... .. 00617 13222;G{16F 3/14;
`G06F 13/38
`395/200; 364/280;
`[52] U5. CI.
`364/280.2; 364/284; 364/2844; 364/2843;
`364/286; 3642286.]; 364/259; 364/259.3;
`364/2150; 364/2408; 364/240.9; 364/241.1;
`364/242.94; 3642940; 364294-01; 364/940.5:
`364/937; 364/940“; 364/DIG.
`l
`364/200 MS File. 900 MS File:
`340/825.08; 370290. 36
`
`[58] Field of Search
`
`
`
`37528
`4.055.110! 1021977 Holsinger et al. . .
`36422113
`4.070.704
`121978 Calla et 81.
`3642900
`4.071.903
`121973 Bropl‘ty .........
`3642200
`4.075.693
`221973 Fox ct a].
`..
`3642200
`4.177.512 1221979 Moggia
`3642470
`4.194.349
`321980 Lane .... ..
`3642900
`4.195.351
`321980 Barrier ........ ..
`36422411
`4.263.901
`521981 Subrizi et al.
`364/20)
`4.354.229 10/1982 Daviset a].
`370290
`4.360.912 11/1932 Met: ........... ..
`3642900
`4.403.303
`921953 Howe: et al.
`3642900
`4.441.160
`421984 Azcua ......... ..
`364/900
`4.468.750 321984 Chemo”
`364223}
`4.543.626
`921985 Bean ........... ..
`361-122(1)
`4.545.013 [0/1985 Lyon et al.
`364/410
`4,547.85] 1021935 Kurlartd
`. . . .. 310289
`4.510.259
`221986 Ishii . . . . . . . . . .
`4.595.921
`621986 Wang et al. ......................... .. 370/96
`
`[56}
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`...
`
`
`
`
`
`
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 1
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 1
`
`

`

`US. Patent
`
`Apr. 23, 1992
`
`Sheet 1 or 5
`
`5,109,484
`
`
`
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 2
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 2
`
`

`

`U.S. Patent
`
`Apr. 28, 1992
`
`Sheet 2 of 5
`
`5,109,484
`
`FIG. 2
`
`26
`
`32
`
`
`
`23
`
`Mafia?"
`
`MICRO-
`HARD
`PROCESSOR TOTALS
`M CODE MODULE
`
`BElféAL
`ADAPTER
`
`LOOP
`ADAPTER
`
`34
`
`40
`
`36
`
`1”—
`
`so
`
`KEYBOARD
`
`PRINTS?
`
`DISPLAY
`
`SCANNER
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 3
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 3
`
`

`

`US. Patent
`
`Apr. 23, 1992
`
`Sheét 3 of 5
`
`5,109,484
`
`44
`
`4a
`
`4a
`
`50
`
`52
`
`APPUCATION PROGRM
`
`CONHG—
`
`54
`
`CONTROL PROGRAM
`
`42
`
`KBD
`ORNER
`
`6
`
`53
`
`PTR
`DSPLY
`DRIVER DRIVER
`so
`
`SCANNER
`DRIVER
`52
`
`SERIAL 1/0 CHANNEL
`DRIVER
`
`
` V0
`
`
`
`TERMINAL
`PROGRAM
`STRUCTURE
`
`DEVICES
`PROGRAM
`STRUCTURE
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 4
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 4
`
`

`

`US. Patent
`
`Apr. 28. 1992
`
`Sheet 4 of 5
`
`5,109,484
`
`FIG. 4A
`
`a
`
`,
`
`. ea
`
`FIG. 4
`a
`
`YES
`
`OONHSUPE COMPLETE
`NDICATOR an
`
`N0
`
`as
`
`.
`
`'l'
`
`72
`
`D LOAD BOOT LOAD 0F 03
`
`
`PROGRAMS
`
`
`
`
`
`LOAD BOOT LOAD REQUEST
`
`1o
`
`EX”
`
`74
`
`‘
`SERIAL U0 POLL
`ALL POSSIBLE DEVICE
`ADDRESSES
`
`,
`
`1'8
`
`ASSEMBLE MODIFEED POLL BEST
`OF ONLY‘DEVICEB ANSWERING
`
`,
`
`we
`
`REQUEST LOADABLE DRIVERS
`
`so
`
`ACCEPT ONLY DRIVERS FOR
`DEVICES IN THE MODIFIED POLL UBT.
`CONTROLIE SENDS ALL DRIVERS
`
`,
`
`32
`
`PRINT OR DIBPLAY LIST OF
`ATTACHED DEVICES
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 5
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 5
`
`

`

`US. Patent
`
`Apr. 23, 1992
`
`Sheet 5 of 5
`
`5,109,484
`
`
`
`ENTER TBQMINAL
`ADDR. AND NAME OF
`STANDARD APPUCA'HON
`
`PROGRAM TO LOAD
`
`
`
`
`
`
`
`
`
`FIG. 4B
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 6
`
`STORE CONFIGURATION
`IN HARD TOTALS MODULE
`TRANSMFT T0 CONTROLLER
`SET CONFIGURATION BIT
`
`
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 6
`
`

`

`
`
`I
`
`5,109,484
`
`SELF CONFIGURING TERMINAL WHICH POLLS
`LOOP NM'ORK AND GENERATES LIST OF
`CONNECTED DEVICES FOR USE IN
`SELECTIVELY DOWNLOADING CONTROL
`PROGRAMS
`
`BACKGROUND OF THE INVENTION
`l. Field of the Invention
`The present invention relates to data processing sys-
`tems in general and. more particularly. to methods for
`initial program loading (IPL) terminals in said data
`processing systems.
`2. Prior Art
`A typical data processing system usually includes a
`host computer which is coupled by a communications
`network to a plurality of terminals. Each terminal is
`connected to one or more [/0 devices. Such 1/0 de~
`vices may include keyboards. printers. displays, etc. In
`order for the system to function satisfactorily. the host
`computer must know the system configuratiOn. This
`means that the host computer must ltnow the addresses
`of each terminal. controller and/or 1/0 devices con-
`nected to particular terminals. This information is used
`by the host computer to download programs into the
`controllers and/or the terminals. These programs pro-
`vide the interface through which data can be exchanged
`between a terminal and an attached l/O device.
`In the past. several
`techniques have been used to
`provide the host computer with information on the
`system configuration. In One such prior art technique
`the system configuration is defined manually. by an
`operator. at
`the host computer. The operator uses
`macro instructions to effectively build an operating
`system load image for each type of terminal
`to be
`loaded by the controller. The operating system is subse-
`quentl y transferred to the terminals. Although the tech-
`nique works well. it is time—consuming and labor-inns. It
`also requires a host computer and an experienced pro—
`grammer to enter the configuration profiles.
`Other techniques such as auIOmatic address assign—
`ment of different stations of the network and entering a
`serial number into a remove device are set forth in US.
`Pat. Nos. 4.423.414 and 4.424.573, respectively.
`SUMMARY OF THE INVENTION
`
`It is therefore a general object of the present inven-
`ti0n to provide a method which enables a terminal to
`determine its attached 1/0 devices and to download its
`operating systems for controlling operation of the ter-
`minal.
`The self-configuration process is automatic and
`worlts as follows. At Initial Program Load (IPL) time a
`section of the operating system called "Boot Load Im-
`age“ is downloaded into the terminal and prepares a
`poll list containing the addresses of all devices which
`can be attached to the terminal. The terminal then se-
`quentially polls each device on the list. If a device is
`attached. it will respond with a message which indicates
`its presence. Devices that are not attached will not
`respond. Non-responding devices are strilten from the
`list. Thus. a new poll list comaining only addresses of
`attached [i.e.. responding) devices is now available at
`the terminal).
`terminals
`to all
`Thereafter. a controller transmits.
`attached to it. programming support for all possible
`devices (e.g.. keyboard scanner. display. etc.) However.
`each terminal will only load those programs which are
`
`5
`
`)0
`
`IS
`
`25
`
`35
`
`45
`
`55
`
`60
`
`65
`
`2
`required to support its attached devices. Following the
`loading routine. the terminal will display or print a list
`of all attached devices and prompts an operator to ver'
`ify that the list is correct. At this point the operator may
`notify (via an input sequence} the terminal
`that
`the
`listing is correct or modify the listing by adding and/or
`deleting devices. The verified configuration is stored at
`each terminal and an indicator that the terminal is con-
`figured is set. The configuration can also be transmitted
`to the controller and/or host computer for subsequent
`use. Thereafter. on each subsequent 11"]... the terminal
`will select only the operator-approved program support
`which is required to control its attached devices. In one
`feature of the invention the “Boot load Image" pre-
`pares a list of only a subset of all the possible devices
`that can be attached to the terminal. Preferably. the list
`contains the addresses of essential devices such as key-
`boards. printers. etc.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 shows a schematic for a point of sale data
`processing system.
`FIG. 2 shows a hardware configuration of a terminal
`connected to the system of FIG. 1.
`FIG. 3 is a conceptual representation of a program
`structure for the terminal in FIG. 2.
`FIGS. 4A and 4B show flow charts of the process
`which allows a terminal to self-configure.
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`The present invention to be described hereinafter can
`be used to configure any data processing system. It
`works well with a point of sale data processing system
`and. as such. will be described in that environment.
`However. this should not be construed as a limitation on
`the scOpe of the present invention since it is well within
`the skills of one skilled in the art to make minor changes
`and adapt the teaching of the present invention to con-
`figure other types of data processing systems.
`FIG.
`‘I shows a schematic of a point of sale data
`processing system. The data processing system includes
`a controller identified by numeral 10. Although any
`type of conventional computer can be used as the con-
`troller. in the preferred embodiment of this invention
`the controller is an IBM PC/AT. The PC/AT is a
`well-known computer and details will not be given.
`Suffice it to say the controller supplies disk services and
`host communications access to a plurality of terminals
`12. The terminals are coupled through loop communi-
`cations network 1‘ and loop adapter 16 to controller Ill.
`File controller 18 intercormects controller 10 to a file
`facility identified by numeral 20. Data which is stored
`on the file facility 20 can be brought into controller ll)
`whenever it is needed. Host adapter 22 and communica—
`tions link 24 interconnects controller 10 to a host com-
`puter (not shown).
`Both controller Ill and terminals 12 are controlled by
`programs stored in their respective RAMs. Because the
`RAMs are volatile.
`the programs are permanently
`stored on a disk 2|! in the controller. The controller
`acquires its program to operate by transferring it from
`the disk to its RAM. Likewise, the terminals acquire
`their operating programs from the controller over loop
`communications network 1‘.
`In order to acquire their respective operating pro»
`grams. each terminal performs a configuration routine
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 7
`
`
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 7
`
`

`

`
`
`3
`in which it determines the 1/0 devices which are at-
`tached to it and downloads the appropriate programs
`for running (that is. operating the terminal). The con-
`troller 10 uses the well-known SDLC message format
`for communicating with the terminal. The SDLC mes-
`sage format is well known and as such. details will not
`be given in this application. However.
`if one is not
`familiar with the SDLC message format. an example of
`the well-known format can be found in US. Pat. No.
`3.812.430. The program which is downloaded into the
`terminals is comprised of three distinctive load aeg-
`ments. The load segments include an operating system
`boo: load which is common to every terminal and pro-
`vides the terminal with the capability to load further
`unique code from the controller; loadable drivers which
`are modules of code which control Specific devices
`such as keyboards. displays. printers. etc. and applica-
`tiOn program which determines the operation of the
`terminal as it proceeds through each transaction.
`FIG. 2 shows a terminal hardware configuration. The
`configuration includes microprocessor 26 which pro-
`cesses the program and comrols the terminal operation.
`RAM 28 is coupled to the microprocessor and stores
`the programs for execution and data. Loop adapter 30
`interfaces the terminal with loop communications net-
`work 14 (FIG. I). It prOvides the communication path
`between the terminal and the controller. Hard totals
`module 32 is a battery-powered RAM and is able to
`store data whenever power to the terminal is discon-
`nected. Microprocessor 26 writes information into the
`hard totals module. Serial l/O channel adapter 34 inter-
`connects the serial {/0 channel 36 to the terminal. The
`serial 1/0 channel is a multi-point communications link
`and provides a communication path between the termi-
`nal and its attached devices. The attached 1/0 devices
`may include keyboards. displays. printers. scanners. etc.
`A satellite terminal identified by numeral 38 is coupled
`over conductor 40 to serial I/O channel 36. Although
`not shown in FIG. 2. a set of I/O devices similar to
`those connected to serial 1/0 channel 36 are also con-
`nected to satellite terminal 38. A sub-set of the SDLC
`protocol
`is used for communicating over serial l/O
`channel 36. The protocol is described in a patent appli-
`cation entitled. “Method and Apparatus for Communi-
`cating with Remote Units in a Distributive Data Pro
`cessing System.“
`the terminal must
`In order to operate a terminal.
`ltnowv the 1/0 devices that are connected to it and ob-
`tain programs from the controller to control these de-
`vices. Thus. the present invention is concerned with a
`technique that allows a terminal to determine the 1/0
`devices that are connected to it and downloads the
`appropriate programs into its RAM. This procedure is
`referred to herein as "terminal configuration." It should
`be noted that the output of the routine as transmitted to
`the controller or host can also be used to determine the
`identity of any terminal and its [/0 attachments within
`the entire computing network. Before detailing the
`configuration routine. a summary description of the
`program structure in the terminal and 1/0 devices is in
`order.
`FIG. 3 shows a conceptual schematic of the program
`structure in the terminal and 1/0 devices. respectively.
`The terminal program includes operating system ‘2 and
`a plurality of application programs a through N dis~
`posed on top of the operating system. As is evident from
`the schematic. several application programs can co-
`exist in the terminal. each one being dedicated for per-
`
`lo
`
`I5
`
`25
`
`3D
`
`35
`
`45
`
`55
`
`60
`
`65
`
`4
`forming a special function. Thus. one application pro-
`gram may be used for controlling cash sales. Another
`can be used for controlling layaways and so forth.
`Among the application programs is configuration pro»
`gram 44. Functional details of this program will be
`given subsequently. Suffice it to say that this application
`program is used for configuring the terminal. Control
`program 54 controls the interaction between the appli-
`cation programs and device drivers 56-N. The device
`drivers (sometimes called “access method") are rnod~
`tiles of code which control particular devices. Thus.
`keyboard driver 56 (RED) controls the keyboard. dis-
`play (DSPLY) driver 58 controls the display and so
`forth. Serial 1/0 channel driver 64 is the access method
`for the serial 1/0 channel 36. The serial 1/0 channel
`driver receives messages from the attached devices and
`passes them on to their associated drivers. Similarly. it
`also accepts messages from the drivers and delivers
`these messages to the associated device. Since the serial
`1/0 channel 36 is a multi-point communication channel.
`a polling routine is used for communicating with the
`[/0 devices and the terminal.
`Still referring to FIG. 3. the program structure for
`each 1/0 device includes a serial [/0 microcode
`(SI/0U Code} and a device microcode. The serial 1/0
`microcode interfaces each device with Serial 1/0 chan-
`nel 36. The serial 1/0 microcode allows the transmis-
`sion of messages from the device to its driver and re-
`ceives messages at the device form its associated driver.
`The device microcode (one for each device) controls
`the actions of the device in response to commands con-
`tained in the device's received messages.
`As is evident from FIG. 3. many different types of
`devices may be attached to a terminal. In fact. multiples
`of the same ‘device may also be attached to a terminal
`(example. two displays). To communicate with these
`devices. each device is uniquely identified by its serial
`No channel address. This address is the first character
`of all messages that are transferred on the serial 1/0
`channel 36. Messages are solicited over serial l/O chan-
`nel 36 from the device by polling the device with its
`address. A device seeing its address in the message will
`forward data if it has any to be transmitted or respond
`with an end of poll (EDP) message.
`Having described the configuration of the terminal.
`the procedure which is provided for a terminal to auto-
`matically configure itself will now be described. The
`procedure is as follows:
`At IPL time the bring-up code in the terminal ROS
`receives and loads the boot load portion of the operat-
`ing system. The boot load portion is transmittal from
`the controller via the store loop.
`The serial 1/0 channel driver in the boot load then
`constructs a poll list comprising of all possible device
`addresses which can be connected to the terminal and
`starts the polling of each address.
`If a device does not respond to a poll after it has been
`polled a specified number of times [say 16]. a timer
`condition is posted by the driver and the device address
`is removed from the poll list.
`When the driver no longer receives any poll timeouts
`and all polled devices are responding. the drive stores
`the modified poll lists and requests the loadable driver
`portion of the operating system load from the control-
`ler.
`The controller then transmits all the device drivers
`(in the loop.
`
`5,109,484
`
`
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 8
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 8
`
`

`

`
`
`5,109,484
`
`5
`The terminal receives each driver transmitted and
`checks this driver against the addresses contained in the
`modified poll list.
`lfa match is found between the received driver and
`an address in the modified poll list. a terminal accepts
`the driver and installs it into its operating system.
`If a match is not found.
`the terminal discards the
`driver.
`This process coutinues until the terminal has loaded a
`driver for every address in the modified poll list. The
`station now has its operating system loaded and requests
`the configuration application load from the controller.
`With the configuration application program being
`loaded. the list of devices which are attached to the
`terminal is displayed and/or printed. The program. via
`the display. then prompts the operator for a terminal
`address and gives him an opportunity to verify the list
`by keying a specified key sequence into the terminal. At
`this time the operator may also key in changes to the list
`adding or deleting devices. The operator may also enter
`the name or other identifier of the normal application
`programs which should be loaded.
`Once the operator keys in verification of the configu-
`ration.
`the configuration is stored in the hard totals
`module ofthe terminal and is transmitted to the control-
`ler where it is stored on the disk.
`The terminal also sets the indicator in the control
`section of the hard totals module to signify that configu-
`ration has taken place and does not need to be run again.
`The procedure also includes a RAS routine wherein
`the terminal now resets itself and requests a complete
`program load from the controller. This time when the
`controller transmits its load and thereafter the control-
`ler sends only the load modules required by the terminal
`when requested. The application programs now loaded
`are the applications that
`the terminal normally runs
`rather than the configuration application. If the Opera-
`tor in the future wishes to add or remove devices from
`the terminal. a key sequence entered by the operator
`causes the terminal to request a load of the configura-
`tion application from the controller. and the above
`described routine is repeated. including the setting of
`the new configuration data in the hard totals module
`and the writing of this new data on the controller disk.
`FIGS. 4A and ‘8 show configuration flow charts for
`the above-described procedure. Block A is an entry
`block signifying the point whereat the program enters
`the routine. From Block A the program descends into
`block 66. In block 66 the program checks to see if the
`configuration complete bit is set. As stated above. this is
`an indicator in the control section of the hard totals
`module. If the bit
`is set. the program descends into
`block 68 where it loads the load boot load section of the
`
`Operating system. requests the loadable drivers and
`normal application programs (POMS) and exits the
`routine through block 70.
`1f the configuration indicator was not set. that is. in an
`"oil" state. the program then descends into block 72. In
`block 72. the load boot load segment of the operating
`system (05) is loaded and the program descends into
`block 74. In block 1‘4 the serial 1/0 polls all possible
`device addresses. In block 76 the program forms a mod-
`ified poll list of only devices answering to a poll. The
`program then descends into block 1'! where it requests
`loadable drivers from the controller. The program then
`descends into block 80 where it accepts only drivers for
`devices in the modified poll lists. The program then
`descends into block 82 where it prints or displays a
`
`5
`
`IO
`
`I5
`
`25
`
`35
`
`40
`
`45
`
`SO
`
`55
`
`60
`
`65
`
`6
`listing of attached devices. The program then descends
`into block 34. In block 84 an operator verifies the dis-
`playr list. If the list is unsatisfaCtory. the program de-
`socnds into block 86 where the operator makes changes
`to modify the poll list and loops into block 84 for verifi-
`catiou. Once the list is verified. the program then de-
`scends into block 35 where it performs the functions
`container therein and descends into block 88 where the
`verified configuration is stored in the hard totals mod-
`ule and is transmitted to the controller. The program
`also sets the configuration indicator. The program then
`descends into block 90 where it resets the terminal
`which causes execution to begin at Block A (FIG. 4A).
`Several benefits inure to a user of the present inven-
`tion. Among the benefits are the following:
`types
`The manual definition of generic terminal
`through selection of component pans in a separate step
`is not necessary.
`A disk space for generic load images is not required.
`The terminal RAM is loaded only for the devices
`actually attached.
`Each terminal is set up only once and retains its con-
`figuration until instructed to change. This step is per-
`formed as part of the initial terminal
`installation and
`hardware verification.
`All terminals requiring the same load element receive
`it simultaneously. thereby reducing loop transmission
`time.
`
`A variety of 1/0 gear can be supported throughout
`the product life without major network since a system
`unit can receive a RAM load without operator input.
`This initial RAM load can carry knowledge of newly
`available l/O units which have been attached to the
`system unit.
`Another benefit is that a terminal can be loaded with
`out knowing the address.
`While the invention has been particularly shown and
`described with reference to the preferred embodiments
`thereof. it will be understood by those skilled in the art
`that variOus changes in form and details may be made
`therein without departing from the spirit and scope of
`the invention.
`Having thus described our invention. what we claim
`and desired to secure as Letters Patent is as follows:
`1. In a distributive data processing system wherein a
`computer with an operating system having a boot load
`module is coupled through a loop communications net-
`work to a plurality of terminals and each terminal is
`connected by a serial channel to a plurality of [/0 de-
`vices a method for providing an operating system
`within each terminal comprising the steps of:
`(a) generating. at each terminal. with the boot load
`module a first list including identifying indicia for
`all devices that can be coupled to the terminal;
`(13) transmitting a status message from the terminal to
`each of the devices recorded in said list;
`(c) transmitting a response message to the terminal
`from a device that is active in response to receiving
`the status teenage;
`(d) generating in said terminal a second list including
`the identifying indicia of only those devices that
`have responded to the status message;
`(e) providing in said computer a plurality of program
`support modules. with each module including sup-
`port programs that control a particular [/0 device
`and indicia identifying the panicular l/O device
`that it controls;
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 9
`
`
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 9
`
`

`

`
`
`5,109,484
`
`7
`(f) transmitting from the computer to the loop com-
`munical ions network the plurality of program sup-
`port modules;
`(g) receiving and loading in the memory of said ter-
`minal only the program support modules whosa 5
`identifying indicia matches identifying indicia in
`the second list.
`2. In a distributive data processing system wherein a
`computer. having an operating system with a boot load
`driver module. is coupled thrOugh a loop communica-
`tions network to a plurality of terminals and each tenni-
`nal is connected by a serial channel to a plurality ofl/O
`devices a method for providing an operating system
`within each terminal comprising the steps of:
`(a) using the boot load driver module for generating
`at each terminal a first list
`including identifying
`indicia for all devices that can be coupled to the
`terminal;
`(b) transmitting a status message from the terminal to
`each of the devices recorded in said list;
`(c) transmitting a response message to the terminal
`from a device that is active in response to receiving
`the status message;
`(d) generating in said terminal a second list including
`the identifying indicia of only those devices that
`have responded to the status message;
`(e) providing in said computer a plurality of program
`support modules. with each module including sup«
`port programs that control a particular 1/0 device
`and indicia identifying the particular l/O device
`that it controls;
`(0 transmitting from the computer to the loop com-
`munications network the plurality of program sup-
`port modules;
`(g) receiving and loading in the memory of said ter-
`minal only the program support modules whose
`identifying indicia matches identifying indicia in
`the second list;
`(h) displaying. to a user. a visual listing of devices
`which are connected to the terminal;
`prompting the user to adjust and verify the correct-
`ness of the visually displayed list; and
`storing at each terminal a copy of a verified list of
`devices that are connected to the terminal.
`3. The method of claim 2 further including the steps
`
`of
`
`transmitting the verified list to the computer; and
`setting an indicator in said terminal thereby signifying
`that the operating system is loaded.
`4. The method of claim I further including the steps
`of electronically erasing stored program suppon mod-
`ules in the terminal;
`requesting a complete program load from the com-
`puter; and
`receiving and loading in the terminal only the pro-
`gram support modules that cantrol active devices
`connected to said terminal.
`’
`5. A method for providing operating systems to pro-
`cessors of: data processing system comprising the steps
`Of:
`(a) arranging a hierarchical structure having a control
`processor with an operating system which includes
`a boot load module coupled by a loop communica-
`tions network to a plurality of second order proces-
`sors and each second order processor coupled
`through a second communications network to a
`plurality of third order processors with each third
`
`55
`
`65
`
`ll}
`
`15
`
`20
`
`25
`
`35
`
`45
`
`order processor designated to control an 1/0 de»
`vice:
`
`(b) generating. at each second order processor. with
`the boot load module a first list including an identi-
`fying indicia of all possible third order processors
`that can be connected to said each second order
`processor;
`(c) transmitting a first message including the identify-
`ing indicia from said each second order processor
`to all third order processors recorded in said list;
`(d) receiving and copying. at each attached third
`order processor. said message only if the identify-
`ing indicia matches that of the third order proces-
`30!;
`(e) transmitting to the second order processor a re-
`sponse message from each active third order pro-
`cessor whose identifying indicia was in the first
`message;
`(D generating. at each said second order processor. a
`second list including the identifying indicia of only
`the third order processors responding to the first
`message:
`(g) issuing from each said second order prOCessor to
`the control processor a message requesting said
`conlrol processor to download program support
`modules. and
`(h) loading. at each second order processor only
`those program support modules whose identifying
`indicia are recorded in the second list.
`6. The method set forth in claim 5 wherein the identi-
`fying indicia includes an address for each third order
`processor.
`7. In a data processing system arranged in a hierarchi-
`cal structure with a control processor having an operat-
`ing system with at least one boot load driver module
`coupled by a loop communications network to a plural-
`ity of second order processors and each second order
`processor coupled through a serial communications
`network to a plurality of third order processors with
`each third order processor designated to control an 1/0
`device a method for providing an operating system in
`each second order processor comprising the steps of:
`generating. at each second order processor, with the
`boot load driver module a first list including an
`address for each of all possible third order proces-
`sors that can be connected to said second order
`processor;
`transmitting a first message including the address
`from said each second order processor to all third
`order prooessors recorded in said list;
`receiving and copying. at each third order processor.
`said message only if the address matches that of the
`third order processor;
`transmitting to the second order processor a response
`message from each third order processor whOSc
`address was in the first message;
`generating. at each said second order processor. a
`second list including addresses of only the third
`order processors responding to the first message;
`requesting program suppon modules from the con-
`trol processor;
`loading. at each second order processor. only those
`programs which are required to coutrol the at-
`tached third order processor;
`displaying to a user a configuration table that includes
`said second list;
`prompting the user to verify the configuration table;
`storing a copy of a verified configuration table;
`
`PMC Exhibit 2199
`
`Apple v. PMC
`|PR2016-01520
`
`Page 10
`
`
`
`PMC Exhibit 2199
`Apple v. PMC
`IPR2016-01520
`Page 10
`
`

`

`5,109,484
`
`5
`
`25
`
`30
`
`35
`
`4o
`
`45
`
`SD
`
`55
`
`60
`
`65
`
`10
`9
`cessor to all third order processors recorded in said
`utilizing said verified configuration table for loading
`list;
`said second order processor: and
`means for receiving and copying. at each attached
`thereafter polling only third order processors whOSe
`third order processor. said message if the identity
`addresses appear in the second list.
`indicia matches that of the third o

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket