`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